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
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);
+7 -39
View File
@@ -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
+10 -30
View File
@@ -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);
}
+38 -1
View File
@@ -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)
+16
View File
@@ -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;
+2 -16
View File
@@ -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);
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);
SET_GAME_STATE_32 (COLONY_GRPOFFS0, GLOBAL (BattleGroupRef));
}
GenerateRandomIP (INIT_NPCS);
+34 -102
View File
@@ -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
+3 -16
View File
@@ -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;
@@ -54,14 +48,7 @@ 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);
SET_GAME_STATE_32 (SAMATRA_GRPOFFS0, GLOBAL (BattleGroupRef));
}
#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 (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:
+4 -31
View File
@@ -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);
+3 -17
View File
@@ -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);
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);
SET_GAME_STATE_32 (ZOQFOT_GRPOFFS0,
GLOBAL (BattleGroupRef));
}
}
GenerateRandomIP (INIT_NPCS);