Doom-Utils / deutex

WAD composer for Doom, Heretic, Hexen, and Strife
Other
63 stars 18 forks source link

Sprite offsets should always be horizontally centered #50

Open fragglet opened 7 years ago

fragglet commented 7 years ago

There is a bug in vanilla Doom where horizontally mirrored sprites don't have their horizontal offsets mirrored to match. So monsters can end up "jumping around" all over the place when viewed mirrored.

Example from Freedoom: freedoom/freedoom@f6f5ee88365c6846726

There's a fairly simple solution which is to add blank space on the left or right size, so that horizontal offset = sprite width / 2. It would be nice if there was an option for deutex to just do this automatically for all sprites, or at least those with a mirrored version.

Voros2 commented 7 years ago

Does it matter which side the blank space is added? How can Deutex recognise sprites that are mirrored and are not from the commercial games?

Voros2 commented 7 years ago

Or should it just add the blank space to all the sprites by default?

fragglet commented 7 years ago

Spaces only need adding for mirrored sprites. You can tell if it's mirrored by the lump name (PLAYA1 not mirrored, PLAYA2A8 is).

Side to add depends on X offset and width. X offset should always be half the width. Consider a sprite 30 pixels wide. If X offset is 20, add 10 pixels of empty space to the right to correct. If X offset is 10, add 10 pixels of space to the left and adjust X offset to 20.

On Oct 7, 2017 4:04 AM, "Ayub Ahmed" notifications@github.com wrote:

Or should it just add the blank space to all the sprites by default?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Doom-Utils/deutex/issues/50#issuecomment-334918240, or mute the thread https://github.com/notifications/unsubscribe-auth/AAF6NUc62cnGxTUjsvE_mqnTwkFn88W8ks5spzCegaJpZM4PMNza .