Added SET_GAME_STATE_32/GET_GAME_STATE_32 to clean up some code

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@2387 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
avolkov
2006-06-09 20:43:17 +00:00
parent 5ed4bcc0dd
commit 0413e40e6c
11 changed files with 130 additions and 284 deletions
+3 -8
View File
@@ -435,7 +435,7 @@ DieHuman (RESPONSE_REF R)
static void static void
Intro (void) Intro (void)
{ {
BYTE b0, b1, b2, b3; DWORD GrpOffs;
if (LOBYTE (GLOBAL (CurrentActivity)) == WON_LAST_BATTLE) if (LOBYTE (GLOBAL (CurrentActivity)) == WON_LAST_BATTLE)
{ {
@@ -460,15 +460,10 @@ Intro (void)
SET_GAME_STATE (KOHR_AH_SENSES_EVIL, 1); SET_GAME_STATE (KOHR_AH_SENSES_EVIL, 1);
} }
b0 = GET_GAME_STATE (SAMATRA_GRPOFFS0); GrpOffs = GET_GAME_STATE_32 (SAMATRA_GRPOFFS0);
b1 = GET_GAME_STATE (SAMATRA_GRPOFFS1);
b2 = GET_GAME_STATE (SAMATRA_GRPOFFS2);
b3 = GET_GAME_STATE (SAMATRA_GRPOFFS3);
if (LOBYTE (GLOBAL (CurrentActivity)) == IN_INTERPLANETARY if (LOBYTE (GLOBAL (CurrentActivity)) == IN_INTERPLANETARY
&& GLOBAL (BattleGroupRef) && GLOBAL (BattleGroupRef)
&& GLOBAL (BattleGroupRef) == MAKE_DWORD ( && GLOBAL (BattleGroupRef) == GrpOffs)
MAKE_WORD (b0, b1), MAKE_WORD (b2, b3)
))
{ {
NPCPhrase (HELLO_SAMATRA); NPCPhrase (HELLO_SAMATRA);
+7 -39
View File
@@ -157,24 +157,10 @@ static DWORD CurBulletinMask;
static void static void
ByeBye (RESPONSE_REF R) ByeBye (RESPONSE_REF R)
{ {
BYTE b0, b1, b2, b3;
(void) R; // ignored (void) R; // ignored
b0 = GET_GAME_STATE (STARBASE_BULLETS0);
b1 = GET_GAME_STATE (STARBASE_BULLETS1); CurBulletinMask |= GET_GAME_STATE_32 (STARBASE_BULLETS0);
b2 = GET_GAME_STATE (STARBASE_BULLETS2); SET_GAME_STATE_32 (STARBASE_BULLETS0, CurBulletinMask);
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);
/* if (R == goodbye_starbase_commander) */ /* if (R == goodbye_starbase_commander) */
if (GET_GAME_STATE (CHMMR_BOMB_STATE) >= 2) if (GET_GAME_STATE (CHMMR_BOMB_STATE) >= 2)
@@ -1350,19 +1336,13 @@ static void
CheckBulletins (BOOLEAN Repeat) CheckBulletins (BOOLEAN Repeat)
{ {
RESPONSE_REF pIntro; RESPONSE_REF pIntro;
BYTE b0, b1, b2, b3; BYTE b0;
DWORD BulletinMask; DWORD BulletinMask;
if (Repeat) if (Repeat)
BulletinMask = CurBulletinMask ^ 0xFFFFFFFFL; BulletinMask = CurBulletinMask ^ 0xFFFFFFFFL;
else else
{ BulletinMask = GET_GAME_STATE_32 (STARBASE_BULLETS0);
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));
}
pIntro = 0; pIntro = 0;
for (b0 = 0; b0 < 32; ++b0) for (b0 = 0; b0 < 32; ++b0)
@@ -1461,10 +1441,7 @@ CheckBulletins (BOOLEAN Repeat)
break; break;
case 11: case 11:
if (GET_GAME_STATE (ZOQFOT_HOME_VISITS) if (GET_GAME_STATE (ZOQFOT_HOME_VISITS)
|| GET_GAME_STATE (ZOQFOT_GRPOFFS0) || GET_GAME_STATE_32 (ZOQFOT_GRPOFFS0))
|| GET_GAME_STATE (ZOQFOT_GRPOFFS1)
|| GET_GAME_STATE (ZOQFOT_GRPOFFS2)
|| GET_GAME_STATE (ZOQFOT_GRPOFFS3))
BulletinMask |= 1L << b0; BulletinMask |= 1L << b0;
else if (CheckTiming (0, 42)) else if (CheckTiming (0, 42))
{ {
@@ -1637,16 +1614,7 @@ CheckBulletins (BOOLEAN Repeat)
if (pIntro == 0 && GET_GAME_STATE (STARBASE_VISITED)) if (pIntro == 0 && GET_GAME_STATE (STARBASE_VISITED))
NPCPhrase (RETURN_HELLO); NPCPhrase (RETURN_HELLO);
else if (!Repeat) else if (!Repeat)
{ SET_GAME_STATE_32 (STARBASE_BULLETS0, BulletinMask);
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);
}
} }
static void static void
+10 -30
View File
@@ -403,7 +403,7 @@ LoserUrquan (RESPONSE_REF R)
static void static void
Intro (void) Intro (void)
{ {
BYTE b0, b1, b2, b3; DWORD GrpOffs;
if (LOBYTE (GLOBAL (CurrentActivity)) == WON_LAST_BATTLE) if (LOBYTE (GLOBAL (CurrentActivity)) == WON_LAST_BATTLE)
{ {
@@ -413,15 +413,10 @@ Intro (void)
return; return;
} }
b0 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS0); GrpOffs = GET_GAME_STATE_32 (URQUAN_PROBE_GRPOFFS0);
b1 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS1);
b2 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS2);
b3 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS3);
if (LOBYTE (GLOBAL (CurrentActivity)) == IN_INTERPLANETARY if (LOBYTE (GLOBAL (CurrentActivity)) == IN_INTERPLANETARY
&& GLOBAL (BattleGroupRef) && GLOBAL (BattleGroupRef)
&& GLOBAL (BattleGroupRef) == MAKE_DWORD ( && GLOBAL (BattleGroupRef) == GrpOffs)
MAKE_WORD (b0, b1), MAKE_WORD (b2, b3)
))
{ {
NPCPhrase (SEND_MESSAGE); NPCPhrase (SEND_MESSAGE);
SET_GAME_STATE (PROBE_MESSAGE_DELIVERED, 1); SET_GAME_STATE (PROBE_MESSAGE_DELIVERED, 1);
@@ -441,15 +436,10 @@ Intro (void)
SET_GAME_STATE (URQUAN_SENSES_EVIL, 1); SET_GAME_STATE (URQUAN_SENSES_EVIL, 1);
} }
b0 = GET_GAME_STATE (COLONY_GRPOFFS0); GrpOffs = GET_GAME_STATE_32 (COLONY_GRPOFFS0);
b1 = GET_GAME_STATE (COLONY_GRPOFFS1);
b2 = GET_GAME_STATE (COLONY_GRPOFFS2);
b3 = GET_GAME_STATE (COLONY_GRPOFFS3);
if (LOBYTE (GLOBAL (CurrentActivity)) == IN_INTERPLANETARY if (LOBYTE (GLOBAL (CurrentActivity)) == IN_INTERPLANETARY
&& GLOBAL (BattleGroupRef) && GLOBAL (BattleGroupRef)
&& GLOBAL (BattleGroupRef) == MAKE_DWORD ( && GLOBAL (BattleGroupRef) == GrpOffs)
MAKE_WORD (b0, b1), MAKE_WORD (b2, b3)
))
{ {
NPCPhrase (CAUGHT_YA); NPCPhrase (CAUGHT_YA);
@@ -457,15 +447,10 @@ Intro (void)
return; return;
} }
b0 = GET_GAME_STATE (SAMATRA_GRPOFFS0); GrpOffs = GET_GAME_STATE_32 (SAMATRA_GRPOFFS0);
b1 = GET_GAME_STATE (SAMATRA_GRPOFFS1);
b2 = GET_GAME_STATE (SAMATRA_GRPOFFS2);
b3 = GET_GAME_STATE (SAMATRA_GRPOFFS3);
if (LOBYTE (GLOBAL (CurrentActivity)) == IN_INTERPLANETARY if (LOBYTE (GLOBAL (CurrentActivity)) == IN_INTERPLANETARY
&& GLOBAL (BattleGroupRef) && GLOBAL (BattleGroupRef)
&& GLOBAL (BattleGroupRef) == MAKE_DWORD ( && GLOBAL (BattleGroupRef) == GrpOffs)
MAKE_WORD (b0, b1), MAKE_WORD (b2, b3)
))
{ {
NPCPhrase (HELLO_SAMATRA); NPCPhrase (HELLO_SAMATRA);
@@ -536,7 +521,7 @@ init_urquan_comm (void)
{ {
LOCDATAPTR retval; LOCDATAPTR retval;
BYTE b0, b1, b2, b3; DWORD GrpOffs;
urquan_desc.init_encounter_func = Intro; urquan_desc.init_encounter_func = Intro;
urquan_desc.post_encounter_func = post_urquan_enc; urquan_desc.post_encounter_func = post_urquan_enc;
@@ -548,17 +533,12 @@ init_urquan_comm (void)
urquan_desc.AlienTextTemplate.align = ALIGN_CENTER; urquan_desc.AlienTextTemplate.align = ALIGN_CENTER;
urquan_desc.AlienTextWidth = SIS_TEXT_WIDTH - 16; urquan_desc.AlienTextWidth = SIS_TEXT_WIDTH - 16;
b0 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS0); GrpOffs = GET_GAME_STATE_32 (URQUAN_PROBE_GRPOFFS0);
b1 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS1);
b2 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS2);
b3 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS3);
if (GET_GAME_STATE (PLAYER_HYPNOTIZED) if (GET_GAME_STATE (PLAYER_HYPNOTIZED)
|| LOBYTE (GLOBAL (CurrentActivity)) == WON_LAST_BATTLE || LOBYTE (GLOBAL (CurrentActivity)) == WON_LAST_BATTLE
|| (LOBYTE (GLOBAL (CurrentActivity)) == IN_INTERPLANETARY || (LOBYTE (GLOBAL (CurrentActivity)) == IN_INTERPLANETARY
&& GLOBAL (BattleGroupRef) && GLOBAL (BattleGroupRef)
&& GLOBAL (BattleGroupRef) == MAKE_DWORD ( && GLOBAL (BattleGroupRef) == GrpOffs))
MAKE_WORD (b0, b1), MAKE_WORD (b2, b3)
)))
{ {
SET_GAME_STATE (BATTLE_SEGUE, 0); SET_GAME_STATE (BATTLE_SEGUE, 0);
} }
+38 -1
View File
@@ -73,10 +73,47 @@ setGameState (int startBit, int endBit, BYTE val
| (BYTE)((val) >> (endBit - startBit - (endBit & 7))); | (BYTE)((val) >> (endBit - startBit - (endBit & 7)));
} }
#ifdef STATE_DEBUG #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 #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 static void
CreateRadar (void) CreateRadar (void)
+16
View File
@@ -964,6 +964,22 @@ extern void setGameState (int startBit, int endBit, BYTE val
setGameState ((SName), (END_##SName), (val)) setGameState ((SName), (END_##SName), (val))
#endif #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; extern CONTEXT RadarContext;
+2 -16
View File
@@ -29,30 +29,16 @@ GenerateColony (BYTE control)
{ {
case INIT_NPCS: case INIT_NPCS:
{ {
BYTE b0, b1, b2, b3;
HSTARSHIP hStarShip; HSTARSHIP hStarShip;
b0 = GET_GAME_STATE (COLONY_GRPOFFS0); GLOBAL (BattleGroupRef) = GET_GAME_STATE_32 (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)
);
if (GLOBAL (BattleGroupRef) == 0) if (GLOBAL (BattleGroupRef) == 0)
{ {
CloneShipFragment (URQUAN_SHIP, CloneShipFragment (URQUAN_SHIP,
&GLOBAL (npc_built_ship_q), 0); &GLOBAL (npc_built_ship_q), 0);
GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1); GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1);
b0 = LOBYTE (LOWORD (GLOBAL (BattleGroupRef))); SET_GAME_STATE_32 (COLONY_GRPOFFS0, 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);
} }
GenerateRandomIP (INIT_NPCS); GenerateRandomIP (INIT_NPCS);
+34 -102
View File
@@ -21,141 +21,73 @@
#include "globdata.h" #include "globdata.h"
#include "state.h" #include "state.h"
#include "planets/genall.h" #include "planets/genall.h"
#include "libs/log.h"
static int
static DWORD SelectMelnormeRefVar (void)
GetMelnormeRef (void)
{ {
BYTE b0, b1, b2, b3; int RefVar;
switch (CurStarDescPtr->Index) switch (CurStarDescPtr->Index)
{ {
case MELNORME0_DEFINED: case MELNORME0_DEFINED:
b0 = GET_GAME_STATE (MELNORME0_GRPOFFS0); RefVar = MELNORME0_GRPOFFS0;
b1 = GET_GAME_STATE (MELNORME0_GRPOFFS1);
b2 = GET_GAME_STATE (MELNORME0_GRPOFFS2);
b3 = GET_GAME_STATE (MELNORME0_GRPOFFS3);
break; break;
case MELNORME1_DEFINED: case MELNORME1_DEFINED:
b0 = GET_GAME_STATE (MELNORME1_GRPOFFS0); RefVar = MELNORME1_GRPOFFS0;
b1 = GET_GAME_STATE (MELNORME1_GRPOFFS1);
b2 = GET_GAME_STATE (MELNORME1_GRPOFFS2);
b3 = GET_GAME_STATE (MELNORME1_GRPOFFS3);
break; break;
case MELNORME2_DEFINED: case MELNORME2_DEFINED:
b0 = GET_GAME_STATE (MELNORME2_GRPOFFS0); RefVar = MELNORME2_GRPOFFS0;
b1 = GET_GAME_STATE (MELNORME2_GRPOFFS1);
b2 = GET_GAME_STATE (MELNORME2_GRPOFFS2);
b3 = GET_GAME_STATE (MELNORME2_GRPOFFS3);
break; break;
case MELNORME3_DEFINED: case MELNORME3_DEFINED:
b0 = GET_GAME_STATE (MELNORME3_GRPOFFS0); RefVar = MELNORME3_GRPOFFS0;
b1 = GET_GAME_STATE (MELNORME3_GRPOFFS1);
b2 = GET_GAME_STATE (MELNORME3_GRPOFFS2);
b3 = GET_GAME_STATE (MELNORME3_GRPOFFS3);
break; break;
case MELNORME4_DEFINED: case MELNORME4_DEFINED:
b0 = GET_GAME_STATE (MELNORME4_GRPOFFS0); RefVar = MELNORME4_GRPOFFS0;
b1 = GET_GAME_STATE (MELNORME4_GRPOFFS1);
b2 = GET_GAME_STATE (MELNORME4_GRPOFFS2);
b3 = GET_GAME_STATE (MELNORME4_GRPOFFS3);
break; break;
case MELNORME5_DEFINED: case MELNORME5_DEFINED:
b0 = GET_GAME_STATE (MELNORME5_GRPOFFS0); RefVar = MELNORME5_GRPOFFS0;
b1 = GET_GAME_STATE (MELNORME5_GRPOFFS1);
b2 = GET_GAME_STATE (MELNORME5_GRPOFFS2);
b3 = GET_GAME_STATE (MELNORME5_GRPOFFS3);
break; break;
case MELNORME6_DEFINED: case MELNORME6_DEFINED:
b0 = GET_GAME_STATE (MELNORME6_GRPOFFS0); RefVar = MELNORME6_GRPOFFS0;
b1 = GET_GAME_STATE (MELNORME6_GRPOFFS1);
b2 = GET_GAME_STATE (MELNORME6_GRPOFFS2);
b3 = GET_GAME_STATE (MELNORME6_GRPOFFS3);
break; break;
case MELNORME7_DEFINED: case MELNORME7_DEFINED:
b0 = GET_GAME_STATE (MELNORME7_GRPOFFS0); RefVar = MELNORME7_GRPOFFS0;
b1 = GET_GAME_STATE (MELNORME7_GRPOFFS1);
b2 = GET_GAME_STATE (MELNORME7_GRPOFFS2);
b3 = GET_GAME_STATE (MELNORME7_GRPOFFS3);
break; break;
case MELNORME8_DEFINED: case MELNORME8_DEFINED:
b0 = GET_GAME_STATE (MELNORME8_GRPOFFS0); RefVar = MELNORME8_GRPOFFS0;
b1 = GET_GAME_STATE (MELNORME8_GRPOFFS1);
b2 = GET_GAME_STATE (MELNORME8_GRPOFFS2);
b3 = GET_GAME_STATE (MELNORME8_GRPOFFS3);
break; break;
default:
RefVar = -1;
}
return RefVar;
} }
return (MAKE_DWORD (MAKE_WORD (b0, b1), MAKE_WORD (b2, b3))); static DWORD
GetMelnormeRef (void)
{
int RefVar = SelectMelnormeRefVar ();
if (RefVar < 0)
{
log_add (log_Warning, "GetMelnormeRef(): reference unknown");
return 0;
}
return GET_GAME_STATE_32 (RefVar);
} }
static void static void
SetMelnormeRef (DWORD Ref) SetMelnormeRef (DWORD Ref)
{ {
BYTE b0, b1, b2, b3; int RefVar = SelectMelnormeRefVar ();
if (RefVar < 0)
b0 = LOBYTE (LOWORD (Ref));
b1 = HIBYTE (LOWORD (Ref));
b2 = LOBYTE (HIWORD (Ref));
b3 = HIBYTE (HIWORD (Ref));
switch (CurStarDescPtr->Index)
{ {
case MELNORME0_DEFINED: log_add (log_Warning, "SetMelnormeRef(): reference unknown");
SET_GAME_STATE (MELNORME0_GRPOFFS0, b0); return;
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;
} }
SET_GAME_STATE_32 (RefVar, Ref);
} }
void void
+3 -16
View File
@@ -30,17 +30,11 @@ static void
BuildUrquanGuard (void) BuildUrquanGuard (void)
{ {
BYTE ship1, ship2; BYTE ship1, ship2;
BYTE b0, b1, b2, b3; BYTE b0, b1;
POINT org; POINT org;
HSTARSHIP hStarShip, hNextShip; HSTARSHIP hStarShip, hNextShip;
b0 = GET_GAME_STATE (SAMATRA_GRPOFFS0); GLOBAL (BattleGroupRef) = GET_GAME_STATE_32 (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)
);
if (!GET_GAME_STATE (KOHR_AH_FRENZY)) if (!GET_GAME_STATE (KOHR_AH_FRENZY))
ship1 = URQUAN_SHIP, ship2 = BLACK_URQUAN_SHIP; ship1 = URQUAN_SHIP, ship2 = BLACK_URQUAN_SHIP;
@@ -54,14 +48,7 @@ BuildUrquanGuard (void)
if (GLOBAL (BattleGroupRef) == 0) if (GLOBAL (BattleGroupRef) == 0)
{ {
GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1); GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1);
b0 = LOBYTE (LOWORD (GLOBAL (BattleGroupRef))); SET_GAME_STATE_32 (SAMATRA_GRPOFFS0, 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);
} }
#define NUM_URQUAN_GUARDS0 12 #define NUM_URQUAN_GUARDS0 12
+3 -17
View File
@@ -57,15 +57,7 @@ GenerateShofixti (BYTE control)
|| (!GET_GAME_STATE (SHOFIXTI_BRO_KIA) || (!GET_GAME_STATE (SHOFIXTI_BRO_KIA)
&& GET_GAME_STATE (MAIDENS_ON_SHIP)))) && GET_GAME_STATE (MAIDENS_ON_SHIP))))
{ {
BYTE b0, b1, b2, b3; GLOBAL (BattleGroupRef) = GET_GAME_STATE_32 (SHOFIXTI_GRPOFFS0);
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)
);
if (GLOBAL (BattleGroupRef) == 0 if (GLOBAL (BattleGroupRef) == 0
|| !GetGroupInfo (GLOBAL (BattleGroupRef), GROUP_INIT_IP)) || !GetGroupInfo (GLOBAL (BattleGroupRef), GROUP_INIT_IP))
{ {
@@ -77,14 +69,8 @@ GenerateShofixti (BYTE control)
GLOBAL (BattleGroupRef) = PutGroupInfo ( GLOBAL (BattleGroupRef) = PutGroupInfo (
GLOBAL (BattleGroupRef), 1); GLOBAL (BattleGroupRef), 1);
b0 = LOBYTE (LOWORD (GLOBAL (BattleGroupRef))); SET_GAME_STATE_32 (SHOFIXTI_GRPOFFS0,
b1 = HIBYTE (LOWORD (GLOBAL (BattleGroupRef))); 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);
} }
} }
case REINIT_NPCS: case REINIT_NPCS:
+4 -31
View File
@@ -30,35 +30,6 @@
#include "libs/mathlib.h" #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 static int
init_probe (void) init_probe (void)
{ {
@@ -433,14 +404,16 @@ GenerateSOL (BYTE control)
switch (control) switch (control)
{ {
case INIT_NPCS: case INIT_NPCS:
GLOBAL (BattleGroupRef) = GetProbeRef (); GLOBAL (BattleGroupRef) =
GET_GAME_STATE_32 (URQUAN_PROBE_GRPOFFS0);
if (GLOBAL (BattleGroupRef) == 0) if (GLOBAL (BattleGroupRef) == 0)
{ {
CloneShipFragment (URQUAN_PROBE_SHIP, CloneShipFragment (URQUAN_PROBE_SHIP,
&GLOBAL (npc_built_ship_q), 0); &GLOBAL (npc_built_ship_q), 0);
GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1); GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1);
SetProbeRef (GLOBAL (BattleGroupRef)); SET_GAME_STATE_32 (URQUAN_PROBE_GRPOFFS0,
GLOBAL (BattleGroupRef));
} }
if (!init_probe ()) if (!init_probe ())
GenerateRandomIP (INIT_NPCS); GenerateRandomIP (INIT_NPCS);
+3 -17
View File
@@ -63,29 +63,15 @@ GenerateScout (BYTE control)
case INIT_NPCS: case INIT_NPCS:
if (!GET_GAME_STATE (MET_ZOQFOT)) if (!GET_GAME_STATE (MET_ZOQFOT))
{ {
BYTE b0, b1, b2, b3; GLOBAL (BattleGroupRef) = GET_GAME_STATE_32 (ZOQFOT_GRPOFFS0);
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)
);
if (GLOBAL (BattleGroupRef) == 0) if (GLOBAL (BattleGroupRef) == 0)
{ {
CloneShipFragment (ZOQFOTPIK_SHIP, CloneShipFragment (ZOQFOTPIK_SHIP,
&GLOBAL (npc_built_ship_q), 0); &GLOBAL (npc_built_ship_q), 0);
GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1); GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1);
b0 = LOBYTE (LOWORD (GLOBAL (BattleGroupRef))); SET_GAME_STATE_32 (ZOQFOT_GRPOFFS0,
b1 = HIBYTE (LOWORD (GLOBAL (BattleGroupRef))); 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);
} }
} }
GenerateRandomIP (INIT_NPCS); GenerateRandomIP (INIT_NPCS);