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:
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user