X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame_sp%2FBugsTerminals.c;h=afa7345e8bf40d7a843b5df8cdbf18667cecdd3f;hp=ec4be1ea66feebb06629dd91ae7d23c4b8f881c2;hb=3ff2e8a0b5c27b99a9920bdf5ed82bc41bf40181;hpb=d45b35552f4ca1ada1266fb7e8b6968d878019a6 diff --git a/src/game_sp/BugsTerminals.c b/src/game_sp/BugsTerminals.c index ec4be1ea..afa7345e 100644 --- a/src/game_sp/BugsTerminals.c +++ b/src/game_sp/BugsTerminals.c @@ -5,7 +5,8 @@ #include "BugsTerminals.h" -byte *TerminalState; +byte TerminalState[SP_MAX_PLAYFIELD_SIZE + SP_HEADER_SIZE]; + int TerminalMaxCycles; @@ -26,7 +27,7 @@ void subAnimateBugs(int si) if ((TimerVar & 3) == 0) { bl = bl + 1; - if (bl >= 0xE) + if (bl >= 14) // bugs animation has 14 frames { bl = subGetRandomNumber(); // generate new random number bl = -((bl & 0x3F) + 0x20); @@ -65,7 +66,7 @@ void subAnimateBugs(int si) void subAnimateTerminals(int si) { - short bl; + int bl; int lx = GetX(si); int ly = GetY(si); @@ -79,9 +80,7 @@ void subAnimateTerminals(int si) GfxFrame[lx][ly]--; /* get last random animation delay */ - bl = HighByte(PlayField16[si]); - if ((bl & 0x80) == 0x80) - bl = (bl | 0xFF00); + bl = SgnHighByte(PlayField16[si]); bl = bl + 1; if (bl <= 0) /* return if random animation delay not yet reached */ @@ -124,7 +123,7 @@ void subAnimateTerminals(int si) void subRandomize() { - long Tick = MyGetTickCount(); + int Tick = MyGetTickCount(); RandomSeed = (Tick ^ (Tick >> 16)) & 0xFFFF; }