diff --git a/sc2/src/sc2code/comm/blackur/blackurc.c b/sc2/src/sc2code/comm/blackur/blackurc.c index aa812e5b2..6376e1af1 100644 --- a/sc2/src/sc2code/comm/blackur/blackurc.c +++ b/sc2/src/sc2code/comm/blackur/blackurc.c @@ -435,7 +435,7 @@ DieHuman (RESPONSE_REF R) static void Intro (void) { - BYTE b0, b1, b2, b3; + DWORD GrpOffs; if (LOBYTE (GLOBAL (CurrentActivity)) == WON_LAST_BATTLE) { @@ -460,15 +460,10 @@ Intro (void) SET_GAME_STATE (KOHR_AH_SENSES_EVIL, 1); } - b0 = GET_GAME_STATE (SAMATRA_GRPOFFS0); - b1 = GET_GAME_STATE (SAMATRA_GRPOFFS1); - b2 = GET_GAME_STATE (SAMATRA_GRPOFFS2); - b3 = GET_GAME_STATE (SAMATRA_GRPOFFS3); + GrpOffs = GET_GAME_STATE_32 (SAMATRA_GRPOFFS0); if (LOBYTE (GLOBAL (CurrentActivity)) == IN_INTERPLANETARY && GLOBAL (BattleGroupRef) - && GLOBAL (BattleGroupRef) == MAKE_DWORD ( - MAKE_WORD (b0, b1), MAKE_WORD (b2, b3) - )) + && GLOBAL (BattleGroupRef) == GrpOffs) { NPCPhrase (HELLO_SAMATRA); diff --git a/sc2/src/sc2code/comm/starbas/starbas.c b/sc2/src/sc2code/comm/starbas/starbas.c index 68443e75b..00eeee8a5 100644 --- a/sc2/src/sc2code/comm/starbas/starbas.c +++ b/sc2/src/sc2code/comm/starbas/starbas.c @@ -157,24 +157,10 @@ static DWORD CurBulletinMask; static void ByeBye (RESPONSE_REF R) { - BYTE b0, b1, b2, b3; - (void) R; // ignored - b0 = GET_GAME_STATE (STARBASE_BULLETS0); - b1 = GET_GAME_STATE (STARBASE_BULLETS1); - b2 = GET_GAME_STATE (STARBASE_BULLETS2); - b3 = GET_GAME_STATE (STARBASE_BULLETS3); - CurBulletinMask |= MAKE_DWORD ( - MAKE_WORD (b0, b1), MAKE_WORD (b2, b3) - ); - b0 = LOBYTE (LOWORD (CurBulletinMask)); - b1 = HIBYTE (LOWORD (CurBulletinMask)); - b2 = LOBYTE (HIWORD (CurBulletinMask)); - b3 = HIBYTE (HIWORD (CurBulletinMask)); - SET_GAME_STATE (STARBASE_BULLETS0, b0); - SET_GAME_STATE (STARBASE_BULLETS1, b1); - SET_GAME_STATE (STARBASE_BULLETS2, b2); - SET_GAME_STATE (STARBASE_BULLETS3, b3); + + CurBulletinMask |= GET_GAME_STATE_32 (STARBASE_BULLETS0); + SET_GAME_STATE_32 (STARBASE_BULLETS0, CurBulletinMask); /* if (R == goodbye_starbase_commander) */ if (GET_GAME_STATE (CHMMR_BOMB_STATE) >= 2) @@ -1350,19 +1336,13 @@ static void CheckBulletins (BOOLEAN Repeat) { RESPONSE_REF pIntro; - BYTE b0, b1, b2, b3; + BYTE b0; DWORD BulletinMask; if (Repeat) BulletinMask = CurBulletinMask ^ 0xFFFFFFFFL; else - { - b0 = GET_GAME_STATE (STARBASE_BULLETS0); - b1 = GET_GAME_STATE (STARBASE_BULLETS1); - b2 = GET_GAME_STATE (STARBASE_BULLETS2); - b3 = GET_GAME_STATE (STARBASE_BULLETS3); - BulletinMask = MAKE_DWORD (MAKE_WORD (b0, b1), MAKE_WORD (b2, b3)); - } + BulletinMask = GET_GAME_STATE_32 (STARBASE_BULLETS0); pIntro = 0; for (b0 = 0; b0 < 32; ++b0) @@ -1461,10 +1441,7 @@ CheckBulletins (BOOLEAN Repeat) break; case 11: if (GET_GAME_STATE (ZOQFOT_HOME_VISITS) - || GET_GAME_STATE (ZOQFOT_GRPOFFS0) - || GET_GAME_STATE (ZOQFOT_GRPOFFS1) - || GET_GAME_STATE (ZOQFOT_GRPOFFS2) - || GET_GAME_STATE (ZOQFOT_GRPOFFS3)) + || GET_GAME_STATE_32 (ZOQFOT_GRPOFFS0)) BulletinMask |= 1L << b0; else if (CheckTiming (0, 42)) { @@ -1637,16 +1614,7 @@ CheckBulletins (BOOLEAN Repeat) if (pIntro == 0 && GET_GAME_STATE (STARBASE_VISITED)) NPCPhrase (RETURN_HELLO); else if (!Repeat) - { - b0 = LOBYTE (LOWORD (BulletinMask)); - b1 = HIBYTE (LOWORD (BulletinMask)); - b2 = LOBYTE (HIWORD (BulletinMask)); - b3 = HIBYTE (HIWORD (BulletinMask)); - SET_GAME_STATE (STARBASE_BULLETS0, b0); - SET_GAME_STATE (STARBASE_BULLETS1, b1); - SET_GAME_STATE (STARBASE_BULLETS2, b2); - SET_GAME_STATE (STARBASE_BULLETS3, b3); - } + SET_GAME_STATE_32 (STARBASE_BULLETS0, BulletinMask); } static void diff --git a/sc2/src/sc2code/comm/urquan/urquanc.c b/sc2/src/sc2code/comm/urquan/urquanc.c index 076e6bb41..3fe404175 100644 --- a/sc2/src/sc2code/comm/urquan/urquanc.c +++ b/sc2/src/sc2code/comm/urquan/urquanc.c @@ -403,7 +403,7 @@ LoserUrquan (RESPONSE_REF R) static void Intro (void) { - BYTE b0, b1, b2, b3; + DWORD GrpOffs; if (LOBYTE (GLOBAL (CurrentActivity)) == WON_LAST_BATTLE) { @@ -413,15 +413,10 @@ Intro (void) return; } - b0 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS0); - b1 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS1); - b2 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS2); - b3 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS3); + GrpOffs = GET_GAME_STATE_32 (URQUAN_PROBE_GRPOFFS0); if (LOBYTE (GLOBAL (CurrentActivity)) == IN_INTERPLANETARY && GLOBAL (BattleGroupRef) - && GLOBAL (BattleGroupRef) == MAKE_DWORD ( - MAKE_WORD (b0, b1), MAKE_WORD (b2, b3) - )) + && GLOBAL (BattleGroupRef) == GrpOffs) { NPCPhrase (SEND_MESSAGE); SET_GAME_STATE (PROBE_MESSAGE_DELIVERED, 1); @@ -441,15 +436,10 @@ Intro (void) SET_GAME_STATE (URQUAN_SENSES_EVIL, 1); } - b0 = GET_GAME_STATE (COLONY_GRPOFFS0); - b1 = GET_GAME_STATE (COLONY_GRPOFFS1); - b2 = GET_GAME_STATE (COLONY_GRPOFFS2); - b3 = GET_GAME_STATE (COLONY_GRPOFFS3); + GrpOffs = GET_GAME_STATE_32 (COLONY_GRPOFFS0); if (LOBYTE (GLOBAL (CurrentActivity)) == IN_INTERPLANETARY && GLOBAL (BattleGroupRef) - && GLOBAL (BattleGroupRef) == MAKE_DWORD ( - MAKE_WORD (b0, b1), MAKE_WORD (b2, b3) - )) + && GLOBAL (BattleGroupRef) == GrpOffs) { NPCPhrase (CAUGHT_YA); @@ -457,15 +447,10 @@ Intro (void) return; } - b0 = GET_GAME_STATE (SAMATRA_GRPOFFS0); - b1 = GET_GAME_STATE (SAMATRA_GRPOFFS1); - b2 = GET_GAME_STATE (SAMATRA_GRPOFFS2); - b3 = GET_GAME_STATE (SAMATRA_GRPOFFS3); + GrpOffs = GET_GAME_STATE_32 (SAMATRA_GRPOFFS0); if (LOBYTE (GLOBAL (CurrentActivity)) == IN_INTERPLANETARY && GLOBAL (BattleGroupRef) - && GLOBAL (BattleGroupRef) == MAKE_DWORD ( - MAKE_WORD (b0, b1), MAKE_WORD (b2, b3) - )) + && GLOBAL (BattleGroupRef) == GrpOffs) { NPCPhrase (HELLO_SAMATRA); @@ -536,7 +521,7 @@ init_urquan_comm (void) { LOCDATAPTR retval; - BYTE b0, b1, b2, b3; + DWORD GrpOffs; urquan_desc.init_encounter_func = Intro; urquan_desc.post_encounter_func = post_urquan_enc; @@ -548,17 +533,12 @@ init_urquan_comm (void) urquan_desc.AlienTextTemplate.align = ALIGN_CENTER; urquan_desc.AlienTextWidth = SIS_TEXT_WIDTH - 16; - b0 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS0); - b1 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS1); - b2 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS2); - b3 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS3); + GrpOffs = GET_GAME_STATE_32 (URQUAN_PROBE_GRPOFFS0); if (GET_GAME_STATE (PLAYER_HYPNOTIZED) || LOBYTE (GLOBAL (CurrentActivity)) == WON_LAST_BATTLE || (LOBYTE (GLOBAL (CurrentActivity)) == IN_INTERPLANETARY && GLOBAL (BattleGroupRef) - && GLOBAL (BattleGroupRef) == MAKE_DWORD ( - MAKE_WORD (b0, b1), MAKE_WORD (b2, b3) - ))) + && GLOBAL (BattleGroupRef) == GrpOffs)) { SET_GAME_STATE (BATTLE_SEGUE, 0); } diff --git a/sc2/src/sc2code/globdata.c b/sc2/src/sc2code/globdata.c index ffe699a55..2b5202959 100644 --- a/sc2/src/sc2code/globdata.c +++ b/sc2/src/sc2code/globdata.c @@ -73,10 +73,47 @@ setGameState (int startBit, int endBit, BYTE val | (BYTE)((val) >> (endBit - startBit - (endBit & 7))); } #ifdef STATE_DEBUG - log_add (log_Debug, "State '%s' set to %d.", name, val); + log_add (log_Debug, "State '%s' set to %d.", name, (int)val); #endif } +DWORD +getGameState32 (int startBit) +{ + DWORD v; + int shift; + + for (v = 0, shift = 0; shift < 32; shift += 8, startBit += 8) + { + v |= getGameState (startBit, startBit + 7) << shift; + } + + return v; +} + +void +setGameState32 (int startBit, DWORD val +#ifdef STATE_DEBUG + , const char *name +#endif +) +{ + DWORD v = val; + int i; + + for (i = 0; i < 4; ++i, v >>= 8, startBit += 8) + { + setGameState (startBit, startBit + 7, v & 0xff +#ifdef STATE_DEBUG + , "(ignored)" +#endif + ); + } + +#ifdef STATE_DEBUG + log_add (log_Debug, "State '%s' set to %u.", name, (unsigned)val); +#endif +} static void CreateRadar (void) diff --git a/sc2/src/sc2code/globdata.h b/sc2/src/sc2code/globdata.h index 444a8d916..c8db47904 100644 --- a/sc2/src/sc2code/globdata.h +++ b/sc2/src/sc2code/globdata.h @@ -964,6 +964,22 @@ extern void setGameState (int startBit, int endBit, BYTE val setGameState ((SName), (END_##SName), (val)) #endif +extern DWORD getGameState32 (int startBit); +extern void setGameState32 (int startBit, DWORD val +#ifdef STATE_DEBUG + , const char *name +#endif + ); + +#define GET_GAME_STATE_32(SName) getGameState32 ((SName)) +#ifdef STATE_DEBUG +# define SET_GAME_STATE_32(SName, val) \ + setGameState32 ((SName), (val), #SName) +#else +# define SET_GAME_STATE_32(SName, val) \ + setGameState32 ((SName), (val)) +#endif + extern CONTEXT RadarContext; diff --git a/sc2/src/sc2code/planets/gencol.c b/sc2/src/sc2code/planets/gencol.c index 3d01755f7..9a54ea781 100644 --- a/sc2/src/sc2code/planets/gencol.c +++ b/sc2/src/sc2code/planets/gencol.c @@ -29,30 +29,16 @@ GenerateColony (BYTE control) { case INIT_NPCS: { - BYTE b0, b1, b2, b3; HSTARSHIP hStarShip; - b0 = GET_GAME_STATE (COLONY_GRPOFFS0); - b1 = GET_GAME_STATE (COLONY_GRPOFFS1); - b2 = GET_GAME_STATE (COLONY_GRPOFFS2); - b3 = GET_GAME_STATE (COLONY_GRPOFFS3); - GLOBAL (BattleGroupRef) = MAKE_DWORD ( - MAKE_WORD (b0, b1), MAKE_WORD (b2, b3) - ); + GLOBAL (BattleGroupRef) = GET_GAME_STATE_32 (COLONY_GRPOFFS0); if (GLOBAL (BattleGroupRef) == 0) { - CloneShipFragment (URQUAN_SHIP, - &GLOBAL (npc_built_ship_q), 0); + CloneShipFragment (URQUAN_SHIP, + &GLOBAL (npc_built_ship_q), 0); - GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1); - b0 = LOBYTE (LOWORD (GLOBAL (BattleGroupRef))); - b1 = HIBYTE (LOWORD (GLOBAL (BattleGroupRef))); - b2 = LOBYTE (HIWORD (GLOBAL (BattleGroupRef))); - b3 = HIBYTE (HIWORD (GLOBAL (BattleGroupRef))); - SET_GAME_STATE (COLONY_GRPOFFS0, b0); - SET_GAME_STATE (COLONY_GRPOFFS1, b1); - SET_GAME_STATE (COLONY_GRPOFFS2, b2); - SET_GAME_STATE (COLONY_GRPOFFS3, b3); + GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1); + SET_GAME_STATE_32 (COLONY_GRPOFFS0, GLOBAL (BattleGroupRef)); } GenerateRandomIP (INIT_NPCS); diff --git a/sc2/src/sc2code/planets/genmel.c b/sc2/src/sc2code/planets/genmel.c index 652f0b108..f3bd5440d 100644 --- a/sc2/src/sc2code/planets/genmel.c +++ b/sc2/src/sc2code/planets/genmel.c @@ -21,141 +21,73 @@ #include "globdata.h" #include "state.h" #include "planets/genall.h" +#include "libs/log.h" - -static DWORD -GetMelnormeRef (void) +static int +SelectMelnormeRefVar (void) { - BYTE b0, b1, b2, b3; + int RefVar; switch (CurStarDescPtr->Index) { case MELNORME0_DEFINED: - b0 = GET_GAME_STATE (MELNORME0_GRPOFFS0); - b1 = GET_GAME_STATE (MELNORME0_GRPOFFS1); - b2 = GET_GAME_STATE (MELNORME0_GRPOFFS2); - b3 = GET_GAME_STATE (MELNORME0_GRPOFFS3); + RefVar = MELNORME0_GRPOFFS0; break; case MELNORME1_DEFINED: - b0 = GET_GAME_STATE (MELNORME1_GRPOFFS0); - b1 = GET_GAME_STATE (MELNORME1_GRPOFFS1); - b2 = GET_GAME_STATE (MELNORME1_GRPOFFS2); - b3 = GET_GAME_STATE (MELNORME1_GRPOFFS3); + RefVar = MELNORME1_GRPOFFS0; break; case MELNORME2_DEFINED: - b0 = GET_GAME_STATE (MELNORME2_GRPOFFS0); - b1 = GET_GAME_STATE (MELNORME2_GRPOFFS1); - b2 = GET_GAME_STATE (MELNORME2_GRPOFFS2); - b3 = GET_GAME_STATE (MELNORME2_GRPOFFS3); + RefVar = MELNORME2_GRPOFFS0; break; case MELNORME3_DEFINED: - b0 = GET_GAME_STATE (MELNORME3_GRPOFFS0); - b1 = GET_GAME_STATE (MELNORME3_GRPOFFS1); - b2 = GET_GAME_STATE (MELNORME3_GRPOFFS2); - b3 = GET_GAME_STATE (MELNORME3_GRPOFFS3); + RefVar = MELNORME3_GRPOFFS0; break; case MELNORME4_DEFINED: - b0 = GET_GAME_STATE (MELNORME4_GRPOFFS0); - b1 = GET_GAME_STATE (MELNORME4_GRPOFFS1); - b2 = GET_GAME_STATE (MELNORME4_GRPOFFS2); - b3 = GET_GAME_STATE (MELNORME4_GRPOFFS3); + RefVar = MELNORME4_GRPOFFS0; break; case MELNORME5_DEFINED: - b0 = GET_GAME_STATE (MELNORME5_GRPOFFS0); - b1 = GET_GAME_STATE (MELNORME5_GRPOFFS1); - b2 = GET_GAME_STATE (MELNORME5_GRPOFFS2); - b3 = GET_GAME_STATE (MELNORME5_GRPOFFS3); + RefVar = MELNORME5_GRPOFFS0; break; case MELNORME6_DEFINED: - b0 = GET_GAME_STATE (MELNORME6_GRPOFFS0); - b1 = GET_GAME_STATE (MELNORME6_GRPOFFS1); - b2 = GET_GAME_STATE (MELNORME6_GRPOFFS2); - b3 = GET_GAME_STATE (MELNORME6_GRPOFFS3); + RefVar = MELNORME6_GRPOFFS0; break; case MELNORME7_DEFINED: - b0 = GET_GAME_STATE (MELNORME7_GRPOFFS0); - b1 = GET_GAME_STATE (MELNORME7_GRPOFFS1); - b2 = GET_GAME_STATE (MELNORME7_GRPOFFS2); - b3 = GET_GAME_STATE (MELNORME7_GRPOFFS3); + RefVar = MELNORME7_GRPOFFS0; break; case MELNORME8_DEFINED: - b0 = GET_GAME_STATE (MELNORME8_GRPOFFS0); - b1 = GET_GAME_STATE (MELNORME8_GRPOFFS1); - b2 = GET_GAME_STATE (MELNORME8_GRPOFFS2); - b3 = GET_GAME_STATE (MELNORME8_GRPOFFS3); + RefVar = MELNORME8_GRPOFFS0; break; + default: + RefVar = -1; + } + return RefVar; +} + +static DWORD +GetMelnormeRef (void) +{ + int RefVar = SelectMelnormeRefVar (); + if (RefVar < 0) + { + log_add (log_Warning, "GetMelnormeRef(): reference unknown"); + return 0; } - return (MAKE_DWORD (MAKE_WORD (b0, b1), MAKE_WORD (b2, b3))); + return GET_GAME_STATE_32 (RefVar); } static void SetMelnormeRef (DWORD Ref) { - BYTE b0, b1, b2, b3; - - b0 = LOBYTE (LOWORD (Ref)); - b1 = HIBYTE (LOWORD (Ref)); - b2 = LOBYTE (HIWORD (Ref)); - b3 = HIBYTE (HIWORD (Ref)); - switch (CurStarDescPtr->Index) + int RefVar = SelectMelnormeRefVar (); + if (RefVar < 0) { - case MELNORME0_DEFINED: - SET_GAME_STATE (MELNORME0_GRPOFFS0, b0); - SET_GAME_STATE (MELNORME0_GRPOFFS1, b1); - SET_GAME_STATE (MELNORME0_GRPOFFS2, b2); - SET_GAME_STATE (MELNORME0_GRPOFFS3, b3); - break; - case MELNORME1_DEFINED: - SET_GAME_STATE (MELNORME1_GRPOFFS0, b0); - SET_GAME_STATE (MELNORME1_GRPOFFS1, b1); - SET_GAME_STATE (MELNORME1_GRPOFFS2, b2); - SET_GAME_STATE (MELNORME1_GRPOFFS3, b3); - break; - case MELNORME2_DEFINED: - SET_GAME_STATE (MELNORME2_GRPOFFS0, b0); - SET_GAME_STATE (MELNORME2_GRPOFFS1, b1); - SET_GAME_STATE (MELNORME2_GRPOFFS2, b2); - SET_GAME_STATE (MELNORME2_GRPOFFS3, b3); - break; - case MELNORME3_DEFINED: - SET_GAME_STATE (MELNORME3_GRPOFFS0, b0); - SET_GAME_STATE (MELNORME3_GRPOFFS1, b1); - SET_GAME_STATE (MELNORME3_GRPOFFS2, b2); - SET_GAME_STATE (MELNORME3_GRPOFFS3, b3); - break; - case MELNORME4_DEFINED: - SET_GAME_STATE (MELNORME4_GRPOFFS0, b0); - SET_GAME_STATE (MELNORME4_GRPOFFS1, b1); - SET_GAME_STATE (MELNORME4_GRPOFFS2, b2); - SET_GAME_STATE (MELNORME4_GRPOFFS3, b3); - break; - case MELNORME5_DEFINED: - SET_GAME_STATE (MELNORME5_GRPOFFS0, b0); - SET_GAME_STATE (MELNORME5_GRPOFFS1, b1); - SET_GAME_STATE (MELNORME5_GRPOFFS2, b2); - SET_GAME_STATE (MELNORME5_GRPOFFS3, b3); - break; - case MELNORME6_DEFINED: - SET_GAME_STATE (MELNORME6_GRPOFFS0, b0); - SET_GAME_STATE (MELNORME6_GRPOFFS1, b1); - SET_GAME_STATE (MELNORME6_GRPOFFS2, b2); - SET_GAME_STATE (MELNORME6_GRPOFFS3, b3); - break; - case MELNORME7_DEFINED: - SET_GAME_STATE (MELNORME7_GRPOFFS0, b0); - SET_GAME_STATE (MELNORME7_GRPOFFS1, b1); - SET_GAME_STATE (MELNORME7_GRPOFFS2, b2); - SET_GAME_STATE (MELNORME7_GRPOFFS3, b3); - break; - case MELNORME8_DEFINED: - SET_GAME_STATE (MELNORME8_GRPOFFS0, b0); - SET_GAME_STATE (MELNORME8_GRPOFFS1, b1); - SET_GAME_STATE (MELNORME8_GRPOFFS2, b2); - SET_GAME_STATE (MELNORME8_GRPOFFS3, b3); - break; + log_add (log_Warning, "SetMelnormeRef(): reference unknown"); + return; } + + SET_GAME_STATE_32 (RefVar, Ref); } void diff --git a/sc2/src/sc2code/planets/gensam.c b/sc2/src/sc2code/planets/gensam.c index ffa56d6fe..2adfde691 100644 --- a/sc2/src/sc2code/planets/gensam.c +++ b/sc2/src/sc2code/planets/gensam.c @@ -30,17 +30,11 @@ static void BuildUrquanGuard (void) { BYTE ship1, ship2; - BYTE b0, b1, b2, b3; + BYTE b0, b1; POINT org; HSTARSHIP hStarShip, hNextShip; - b0 = GET_GAME_STATE (SAMATRA_GRPOFFS0); - b1 = GET_GAME_STATE (SAMATRA_GRPOFFS1); - b2 = GET_GAME_STATE (SAMATRA_GRPOFFS2); - b3 = GET_GAME_STATE (SAMATRA_GRPOFFS3); - GLOBAL (BattleGroupRef) = MAKE_DWORD ( - MAKE_WORD (b0, b1), MAKE_WORD (b2, b3) - ); + GLOBAL (BattleGroupRef) = GET_GAME_STATE_32 (SAMATRA_GRPOFFS0); if (!GET_GAME_STATE (KOHR_AH_FRENZY)) ship1 = URQUAN_SHIP, ship2 = BLACK_URQUAN_SHIP; @@ -53,15 +47,8 @@ BuildUrquanGuard (void) if (GLOBAL (BattleGroupRef) == 0) { - GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1); - b0 = LOBYTE (LOWORD (GLOBAL (BattleGroupRef))); - b1 = HIBYTE (LOWORD (GLOBAL (BattleGroupRef))); - b2 = LOBYTE (HIWORD (GLOBAL (BattleGroupRef))); - b3 = HIBYTE (HIWORD (GLOBAL (BattleGroupRef))); - SET_GAME_STATE (SAMATRA_GRPOFFS0, b0); - SET_GAME_STATE (SAMATRA_GRPOFFS1, b1); - SET_GAME_STATE (SAMATRA_GRPOFFS2, b2); - SET_GAME_STATE (SAMATRA_GRPOFFS3, b3); + GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1); + SET_GAME_STATE_32 (SAMATRA_GRPOFFS0, GLOBAL (BattleGroupRef)); } #define NUM_URQUAN_GUARDS0 12 diff --git a/sc2/src/sc2code/planets/genshof.c b/sc2/src/sc2code/planets/genshof.c index d5725849e..4db54369e 100644 --- a/sc2/src/sc2code/planets/genshof.c +++ b/sc2/src/sc2code/planets/genshof.c @@ -57,15 +57,7 @@ GenerateShofixti (BYTE control) || (!GET_GAME_STATE (SHOFIXTI_BRO_KIA) && GET_GAME_STATE (MAIDENS_ON_SHIP)))) { - BYTE b0, b1, b2, b3; - - b0 = GET_GAME_STATE (SHOFIXTI_GRPOFFS0); - b1 = GET_GAME_STATE (SHOFIXTI_GRPOFFS1); - b2 = GET_GAME_STATE (SHOFIXTI_GRPOFFS2); - b3 = GET_GAME_STATE (SHOFIXTI_GRPOFFS3); - GLOBAL (BattleGroupRef) = MAKE_DWORD ( - MAKE_WORD (b0, b1), MAKE_WORD (b2, b3) - ); + GLOBAL (BattleGroupRef) = GET_GAME_STATE_32 (SHOFIXTI_GRPOFFS0); if (GLOBAL (BattleGroupRef) == 0 || !GetGroupInfo (GLOBAL (BattleGroupRef), GROUP_INIT_IP)) { @@ -77,14 +69,8 @@ GenerateShofixti (BYTE control) GLOBAL (BattleGroupRef) = PutGroupInfo ( GLOBAL (BattleGroupRef), 1); - b0 = LOBYTE (LOWORD (GLOBAL (BattleGroupRef))); - b1 = HIBYTE (LOWORD (GLOBAL (BattleGroupRef))); - b2 = LOBYTE (HIWORD (GLOBAL (BattleGroupRef))); - b3 = HIBYTE (HIWORD (GLOBAL (BattleGroupRef))); - SET_GAME_STATE (SHOFIXTI_GRPOFFS0, b0); - SET_GAME_STATE (SHOFIXTI_GRPOFFS1, b1); - SET_GAME_STATE (SHOFIXTI_GRPOFFS2, b2); - SET_GAME_STATE (SHOFIXTI_GRPOFFS3, b3); + SET_GAME_STATE_32 (SHOFIXTI_GRPOFFS0, + GLOBAL (BattleGroupRef)); } } case REINIT_NPCS: diff --git a/sc2/src/sc2code/planets/gensol.c b/sc2/src/sc2code/planets/gensol.c index b65a46248..a137ceb25 100644 --- a/sc2/src/sc2code/planets/gensol.c +++ b/sc2/src/sc2code/planets/gensol.c @@ -30,35 +30,6 @@ #include "libs/mathlib.h" -static DWORD -GetProbeRef (void) -{ - BYTE b0, b1, b2, b3; - - b0 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS0); - b1 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS1); - b2 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS2); - b3 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS3); - - return (MAKE_DWORD (MAKE_WORD (b0, b1), MAKE_WORD (b2, b3))); -} - -static void -SetProbeRef (DWORD Ref) -{ - BYTE b0, b1, b2, b3; - - b0 = LOBYTE (LOWORD (Ref)); - b1 = HIBYTE (LOWORD (Ref)); - b2 = LOBYTE (HIWORD (Ref)); - b3 = HIBYTE (HIWORD (Ref)); - - SET_GAME_STATE (URQUAN_PROBE_GRPOFFS0, b0); - SET_GAME_STATE (URQUAN_PROBE_GRPOFFS1, b1); - SET_GAME_STATE (URQUAN_PROBE_GRPOFFS2, b2); - SET_GAME_STATE (URQUAN_PROBE_GRPOFFS3, b3); -} - static int init_probe (void) { @@ -433,14 +404,16 @@ GenerateSOL (BYTE control) switch (control) { case INIT_NPCS: - GLOBAL (BattleGroupRef) = GetProbeRef (); + GLOBAL (BattleGroupRef) = + GET_GAME_STATE_32 (URQUAN_PROBE_GRPOFFS0); if (GLOBAL (BattleGroupRef) == 0) { CloneShipFragment (URQUAN_PROBE_SHIP, &GLOBAL (npc_built_ship_q), 0); GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1); - SetProbeRef (GLOBAL (BattleGroupRef)); + SET_GAME_STATE_32 (URQUAN_PROBE_GRPOFFS0, + GLOBAL (BattleGroupRef)); } if (!init_probe ()) GenerateRandomIP (INIT_NPCS); diff --git a/sc2/src/sc2code/planets/genzoq.c b/sc2/src/sc2code/planets/genzoq.c index 60dfc99cb..a9ed2ed13 100644 --- a/sc2/src/sc2code/planets/genzoq.c +++ b/sc2/src/sc2code/planets/genzoq.c @@ -63,29 +63,15 @@ GenerateScout (BYTE control) case INIT_NPCS: if (!GET_GAME_STATE (MET_ZOQFOT)) { - BYTE b0, b1, b2, b3; - - b0 = GET_GAME_STATE (ZOQFOT_GRPOFFS0); - b1 = GET_GAME_STATE (ZOQFOT_GRPOFFS1); - b2 = GET_GAME_STATE (ZOQFOT_GRPOFFS2); - b3 = GET_GAME_STATE (ZOQFOT_GRPOFFS3); - GLOBAL (BattleGroupRef) = MAKE_DWORD ( - MAKE_WORD (b0, b1), MAKE_WORD (b2, b3) - ); + GLOBAL (BattleGroupRef) = GET_GAME_STATE_32 (ZOQFOT_GRPOFFS0); if (GLOBAL (BattleGroupRef) == 0) { - CloneShipFragment (ZOQFOTPIK_SHIP, - &GLOBAL (npc_built_ship_q), 0); + CloneShipFragment (ZOQFOTPIK_SHIP, + &GLOBAL (npc_built_ship_q), 0); - GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1); - b0 = LOBYTE (LOWORD (GLOBAL (BattleGroupRef))); - b1 = HIBYTE (LOWORD (GLOBAL (BattleGroupRef))); - b2 = LOBYTE (HIWORD (GLOBAL (BattleGroupRef))); - b3 = HIBYTE (HIWORD (GLOBAL (BattleGroupRef))); - SET_GAME_STATE (ZOQFOT_GRPOFFS0, b0); - SET_GAME_STATE (ZOQFOT_GRPOFFS1, b1); - SET_GAME_STATE (ZOQFOT_GRPOFFS2, b2); - SET_GAME_STATE (ZOQFOT_GRPOFFS3, b3); + GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1); + SET_GAME_STATE_32 (ZOQFOT_GRPOFFS0, + GLOBAL (BattleGroupRef)); } } GenerateRandomIP (INIT_NPCS);