X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_sp%2FMurphy.c;h=c50ecb87f68273d4a3b38d95e1f1bbf3c5ec4cf6;hb=3b19d917acb541df11a45e0d4b4e40ad4e38a717;hp=a646978b61b1fb617845c383ae5c8700c698acfd;hpb=2d62255a9cc1edc3692c2597cf338ce50744da96;p=rocksndiamonds.git diff --git a/src/game_sp/Murphy.c b/src/game_sp/Murphy.c index a646978b..c50ecb87 100644 --- a/src/game_sp/Murphy.c +++ b/src/game_sp/Murphy.c @@ -932,7 +932,12 @@ loc_g_6756: return subAnimateMurphy; #if 1 - printf("::: Murphy.c: !!!!!!!!!! GAME SOLVED !!!!!!!!!!\n"); + if (!game_sp_info.LevelSolved) + printf("::: Murphy.c: !!!!!!!!!! LEVEL %d SOLVED !!!!!!!!!!\n",LevelNumber); +#endif + +#if 1 + game_sp_info.LevelSolved = TRUE; #endif subSoundFXExit(); @@ -1815,6 +1820,11 @@ loc_g_6F3B: loc_g_6F77: ExitToMenuFlag = 1; + +#if 1 + PlayField16[*si] = fiSpace; // remove Murphy from playfield after exiting +#endif + return subAnimateMurphy; // ========================================================================== @@ -2328,6 +2338,34 @@ int subSpPortTest(int si) int i, cx, bx; +#if 1 + cx = LInfo.SpecialPortCount; // number of special ports + + for (i = 0; i < cx; i++) + { +#if 1 + /* this assumes that PortLocation is stored as big endian */ + bx = LInfo.SpecialPort[i].PortLocation; +#else + /* this assumes that PortLocation is stored as little endian */ + bx = HighByte(LInfo.SpecialPort[i].PortLocation); + MovHighByte(&bx, LowByte(LInfo.SpecialPort[i].PortLocation)); +#endif + + if (bx / 2 == si) + { + GravityFlag = LInfo.SpecialPort[i].Gravity; + FreezeZonks = LInfo.SpecialPort[i].FreezeZonks; + SnikSnaksElectronsFrozen = LInfo.SpecialPort[i].FreezeEnemies; + + // RandomTime = RandomTime Xor RandomSeed 'is RandomTime used at all? no! + + break; + } + } + +#else + cx = LInfo.SpecialPortCount; // number of special ports for (i = 1; i <= cx; i++) { @@ -2342,9 +2380,9 @@ int subSpPortTest(int si) // RandomTime = RandomTime Xor RandomSeed 'is RandomTime used at all? no! i = cx + 1; } - } } +#endif return subSpPortTest; } // subSpPortTest