1oom-fork / 1oom

1oom is a Master of Orion (1993) game engine recreation that requires the original files to run.
GNU General Public License v2.0
52 stars 7 forks source link

Combat screen hit / death explosion effects #1

Closed tewey closed 2 years ago

tewey commented 2 years ago

Build: 1.6.2 Bug / unexpected behavior:

It seems that this is the reverse of the behavior in Master of Orion 1.3. Tested on both the DOS and the SDL2 executables with default settings / New Game and the behavior is the same.

1oom-fork commented 2 years ago

The second case is actually a scaled "big explosion" so we need to better understand the expected behavior. ui/classic/uibattle.c(1161): si = (b->hp1 > 0) ? b->hp1 3 : 1; if ((b->num > 0) || (si < damage)) { v4 = si; } else { v4 = damage; / & 0xffff / } if ((si / v4) >= 3) { v4 = si / 3 + 1; } scale = (v4 100) / si;

tewey commented 2 years ago

Interesting, the scaling bit was news for me. I did some more manual testing and this is what I found out:

MoO 1.3:

1oom-fork:

Essentially the cases are reversed based on what I can gather from this admittedly quick manual testing. So my guess is the scaling is applied in the wrong case.

This got me thinking that the different scales of explosion in MoO were probably put in place to convey useful information to the player. During huge fleet battles it's easier to see at glance when a connecting hit is particularly nasty.

1oom-fork commented 2 years ago

Thanks for the feedback. Feel free to make other suggestions on this issue