Get/Put GroupInfo cleanup; using symbolic constants for clarity
git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@2384 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
+44
-41
@@ -232,12 +232,12 @@ FoundHome:
|
||||
&GLOBAL (npc_built_ship_q), 0);
|
||||
}
|
||||
|
||||
PutGroupInfo (0L, ++which_group);
|
||||
PutGroupInfo (GROUPS_RANDOM, ++which_group);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
} while (--num_groups);
|
||||
}
|
||||
|
||||
GetGroupInfo (0L, (BYTE)~0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_INIT_IP);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -247,15 +247,14 @@ FlushGroupInfo (GROUP_HEADER *pGH, DWORD offset, BYTE which_group, PVOID fp)
|
||||
HSTARSHIP hStarShip;
|
||||
SHIP_FRAGMENTPTR FragPtr;
|
||||
|
||||
if (which_group == 0)
|
||||
{
|
||||
if (pGH->GroupOffset[0] == 0)
|
||||
pGH->GroupOffset[0] = LengthStateFile (fp);
|
||||
|
||||
if (which_group == GROUP_LIST)
|
||||
{
|
||||
QUEUE temp_q;
|
||||
HSTARSHIP hNextShip;
|
||||
|
||||
if (pGH->GroupOffset[0] == 0)
|
||||
pGH->GroupOffset[0] = LengthStateFile (fp);
|
||||
|
||||
temp_q = GLOBAL (npc_built_ship_q);
|
||||
SetHeadLink (&GLOBAL (npc_built_ship_q), 0);
|
||||
SetTailLink (&GLOBAL (npc_built_ship_q), 0);
|
||||
@@ -276,7 +275,7 @@ FlushGroupInfo (GROUP_HEADER *pGH, DWORD offset, BYTE which_group, PVOID fp)
|
||||
if (GLOBAL (BattleGroupRef))
|
||||
PutGroupInfo (GLOBAL (BattleGroupRef), which_group);
|
||||
else
|
||||
FlushGroupInfo (pGH, 0L, which_group, fp);
|
||||
FlushGroupInfo (pGH, GROUPS_RANDOM, which_group, fp);
|
||||
pGH->GroupOffset[which_group] = 0;
|
||||
RemoveQueue (&temp_q, hStarShip);
|
||||
FreeStarShip (&temp_q, hStarShip);
|
||||
@@ -284,8 +283,7 @@ FlushGroupInfo (GROUP_HEADER *pGH, DWORD offset, BYTE which_group, PVOID fp)
|
||||
}
|
||||
GLOBAL (npc_built_ship_q) = temp_q;
|
||||
|
||||
which_group = 0;
|
||||
}
|
||||
which_group = GROUP_LIST;
|
||||
}
|
||||
else if (which_group > pGH->NumGroups)
|
||||
{
|
||||
@@ -297,7 +295,7 @@ FlushGroupInfo (GROUP_HEADER *pGH, DWORD offset, BYTE which_group, PVOID fp)
|
||||
&GLOBAL (npc_built_ship_q), hStarShip);
|
||||
RaceType = GET_RACE_ID (FragPtr);
|
||||
SeekStateFile (fp, pGH->GroupOffset[which_group], SEEK_SET);
|
||||
WriteStateFile ((PBYTE)&RaceType, sizeof (RaceType), 1, fp);
|
||||
WriteStateFile (&RaceType, sizeof (RaceType), 1, fp);
|
||||
UnlockStarShip (&GLOBAL (npc_built_ship_q), hStarShip);
|
||||
}
|
||||
SeekStateFile (fp, offset, SEEK_SET);
|
||||
@@ -310,14 +308,16 @@ FlushGroupInfo (GROUP_HEADER *pGH, DWORD offset, BYTE which_group, PVOID fp)
|
||||
|
||||
NumShips = (BYTE)CountLinks (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
if (which_group)
|
||||
if (which_group != GROUP_LIST)
|
||||
{
|
||||
SeekStateFile (fp, pGH->GroupOffset[which_group]
|
||||
+ sizeof (RaceType), SEEK_SET);
|
||||
}
|
||||
else
|
||||
{
|
||||
RaceType = (BYTE)cur_player;
|
||||
BYTE BaseGroup = (BYTE)cur_player;
|
||||
SeekStateFile (fp, pGH->GroupOffset[0], SEEK_SET);
|
||||
WriteStateFile (&RaceType, sizeof (RaceType), 1, fp);
|
||||
WriteStateFile (&BaseGroup, sizeof (BaseGroup), 1, fp);
|
||||
}
|
||||
WriteStateFile (&NumShips, sizeof (NumShips), 1, fp);
|
||||
|
||||
@@ -333,10 +333,10 @@ FlushGroupInfo (GROUP_HEADER *pGH, DWORD offset, BYTE which_group, PVOID fp)
|
||||
hNextShip = _GetSuccLink (FragPtr);
|
||||
|
||||
RaceType = GET_RACE_ID (FragPtr);
|
||||
WriteStateFile ((PBYTE)&RaceType, sizeof (RaceType), 1, fp);
|
||||
WriteStateFile (&RaceType, sizeof (RaceType), 1, fp);
|
||||
|
||||
#ifdef DEBUG_GROUPS
|
||||
if (which_group == 0)
|
||||
if (which_group == GROUP_LIST)
|
||||
log_add (log_Debug, "F) type %u, loc %u<%d, %d>, task 0x%02x:%u",
|
||||
RaceType,
|
||||
GET_GROUP_LOC (FragPtr),
|
||||
@@ -346,7 +346,7 @@ FlushGroupInfo (GROUP_HEADER *pGH, DWORD offset, BYTE which_group, PVOID fp)
|
||||
GET_GROUP_DEST (FragPtr));
|
||||
#endif /* DEBUG_GROUPS */
|
||||
Ptr = (PBYTE)&FragPtr->RaceDescPtr;
|
||||
WriteStateFile ((PBYTE)Ptr,
|
||||
WriteStateFile (Ptr,
|
||||
((PBYTE)&FragPtr->ShipInfo.race_strings) - Ptr, 1, fp);
|
||||
UnlockStarShip (&GLOBAL (npc_built_ship_q), hStarShip);
|
||||
hStarShip = hNextShip;
|
||||
@@ -358,9 +358,11 @@ GetGroupInfo (DWORD offset, BYTE which_group)
|
||||
{
|
||||
PVOID fp;
|
||||
|
||||
fp = OpenStateFile (
|
||||
offset && which_group ? DEFGRPINFO_FILE : RANDGRPINFO_FILE,
|
||||
"r+b");
|
||||
if (offset != GROUPS_RANDOM && which_group != GROUP_LIST)
|
||||
fp = OpenStateFile (DEFGRPINFO_FILE, "r+b");
|
||||
else
|
||||
fp = OpenStateFile (RANDGRPINFO_FILE, "r+b");
|
||||
|
||||
if (fp)
|
||||
{
|
||||
BYTE RaceType, NumShips;
|
||||
@@ -374,7 +376,7 @@ GetGroupInfo (DWORD offset, BYTE which_group)
|
||||
log_add (log_Debug, "GetGroupInfo(%lu): %u(%lu) out of %u", offset,
|
||||
which_group, GH.GroupOffset[which_group], GH.NumGroups);
|
||||
#endif /* DEBUG_GROUPS */
|
||||
if (which_group == (BYTE)~0)
|
||||
if (which_group == GROUP_INIT_IP)
|
||||
{
|
||||
COUNT month_index, day_index, year_index;
|
||||
|
||||
@@ -386,7 +388,7 @@ GetGroupInfo (DWORD offset, BYTE which_group)
|
||||
day_index = GH.day_index;
|
||||
month_index = GH.month_index;
|
||||
year_index = GH.year_index;
|
||||
if (offset == 0
|
||||
if (offset == GROUPS_RANDOM
|
||||
&& (GH.star_index != (COUNT)(CurStarDescPtr - star_array)
|
||||
|| !ValidateEvent (ABSOLUTE_EVENT,
|
||||
&month_index, &day_index, &year_index)))
|
||||
@@ -495,9 +497,8 @@ GetGroupInfo (DWORD offset, BYTE which_group)
|
||||
}
|
||||
}
|
||||
|
||||
if (offset)
|
||||
InitGroupInfo (FALSE);
|
||||
/* Random battle group */
|
||||
if (offset != GROUPS_RANDOM)
|
||||
InitGroupInfo (FALSE); /* Wipe out random battle groups */
|
||||
else if (ValidateEvent (ABSOLUTE_EVENT, /* still fresh */
|
||||
&month_index, &day_index, &year_index))
|
||||
{
|
||||
@@ -512,7 +513,7 @@ GetGroupInfo (DWORD offset, BYTE which_group)
|
||||
COUNT ShipsLeft;
|
||||
|
||||
ShipsLeft = CountLinks (&GLOBAL (npc_built_ship_q));
|
||||
if (which_group == 0)
|
||||
if (which_group == GROUP_LIST)
|
||||
{
|
||||
SeekStateFile (fp, GH.GroupOffset[0], SEEK_SET);
|
||||
ReadStateFile (&BaseGroup, sizeof (BaseGroup), 1, fp);
|
||||
@@ -528,10 +529,10 @@ GetGroupInfo (DWORD offset, BYTE which_group)
|
||||
else
|
||||
{
|
||||
cur_player = (SIZE)which_group;
|
||||
if (offset)
|
||||
PutGroupInfo (0L, 0);
|
||||
if (offset != GROUPS_RANDOM)
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_LIST);
|
||||
else
|
||||
FlushGroupInfo (&GH, 0L, 0, fp);
|
||||
FlushGroupInfo (&GH, GROUPS_RANDOM, GROUP_LIST, fp);
|
||||
|
||||
BaseGroup = which_group;
|
||||
}
|
||||
@@ -545,7 +546,7 @@ GetGroupInfo (DWORD offset, BYTE which_group)
|
||||
{
|
||||
PBYTE Ptr;
|
||||
|
||||
ReadStateFile ((PBYTE)&RaceType, sizeof (RaceType), 1, fp);
|
||||
ReadStateFile (&RaceType, sizeof (RaceType), 1, fp);
|
||||
|
||||
hStarShip = CloneShipFragment (RaceType,
|
||||
&GLOBAL (npc_built_ship_q), 0);
|
||||
@@ -553,12 +554,12 @@ GetGroupInfo (DWORD offset, BYTE which_group)
|
||||
FragPtr = (SHIP_FRAGMENTPTR)LockStarShip (
|
||||
&GLOBAL (npc_built_ship_q), hStarShip);
|
||||
Ptr = (PBYTE)&FragPtr->RaceDescPtr;
|
||||
ReadStateFile ((PBYTE)Ptr,
|
||||
ReadStateFile (Ptr,
|
||||
((PBYTE)&FragPtr->ShipInfo.race_strings) - Ptr, 1,
|
||||
fp);
|
||||
|
||||
#ifdef DEBUG_GROUPS
|
||||
if (which_group == 0)
|
||||
if (which_group == GROUP_LIST)
|
||||
log_add (log_Debug, "G) type %u, loc %u<%d, %d>, "
|
||||
"task 0x%02x:%u",
|
||||
RaceType,
|
||||
@@ -569,14 +570,14 @@ GetGroupInfo (DWORD offset, BYTE which_group)
|
||||
GET_GROUP_DEST (FragPtr));
|
||||
#endif /* DEBUG_GROUPS */
|
||||
if (GET_GROUP_ID (FragPtr) != BaseGroup
|
||||
|| which_group
|
||||
|| which_group != GROUP_LIST
|
||||
|| ShipsLeft)
|
||||
{
|
||||
#ifdef DEBUG_GROUPS
|
||||
log_add (log_Debug, "\n");
|
||||
#endif /* DEBUG_GROUPS */
|
||||
if (RaceType == SHOFIXTI_SHIP
|
||||
&& which_group
|
||||
&& which_group != GROUP_LIST
|
||||
&& !GET_GAME_STATE (SHOFIXTI_RECRUITED))
|
||||
{
|
||||
BYTE captains_name_index;
|
||||
@@ -614,14 +615,16 @@ PutGroupInfo (DWORD offset, BYTE which_group)
|
||||
{
|
||||
PVOID fp;
|
||||
|
||||
fp = OpenStateFile (
|
||||
offset && which_group ? DEFGRPINFO_FILE : RANDGRPINFO_FILE,
|
||||
"r+b");
|
||||
if (offset != GROUPS_RANDOM && which_group != GROUP_LIST)
|
||||
fp = OpenStateFile (DEFGRPINFO_FILE, "r+b");
|
||||
else
|
||||
fp = OpenStateFile (RANDGRPINFO_FILE, "r+b");
|
||||
|
||||
if (fp)
|
||||
{
|
||||
GROUP_HEADER GH;
|
||||
|
||||
if (offset == (DWORD) ~0L)
|
||||
if (offset == GROUPS_ADD_NEW)
|
||||
{
|
||||
offset = LengthStateFile (fp);
|
||||
GH.NumGroups = 0;
|
||||
@@ -632,13 +635,13 @@ PutGroupInfo (DWORD offset, BYTE which_group)
|
||||
// Some garbage is saved. -- SvdB
|
||||
}
|
||||
|
||||
if (which_group)
|
||||
if (which_group != GROUP_LIST)
|
||||
{
|
||||
SeekStateFile (fp, offset, SEEK_SET);
|
||||
if (which_group == (BYTE)~0)
|
||||
if (which_group == GROUP_SAVE_IP)
|
||||
{
|
||||
cur_player = 0;
|
||||
which_group = 0;
|
||||
which_group = GROUP_LIST;
|
||||
}
|
||||
}
|
||||
ReadStateFile (&GH, sizeof (GH), 1, fp);
|
||||
|
||||
@@ -229,7 +229,7 @@ DeviceFailed (BYTE which_device)
|
||||
battle_counter = 0;
|
||||
GLOBAL (CurrentActivity) |= START_ENCOUNTER;
|
||||
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
CloneShipFragment (CHMMR_SHIP,
|
||||
@@ -272,7 +272,7 @@ DeviceFailed (BYTE which_device)
|
||||
{
|
||||
SET_GAME_STATE (SHIP_TO_COMPEL, 1);
|
||||
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
}
|
||||
|
||||
@@ -330,7 +330,7 @@ DeviceFailed (BYTE which_device)
|
||||
GLOBAL (CurrentActivity) |= START_ENCOUNTER;
|
||||
|
||||
battle_counter = 0;
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
SET_GAME_STATE (GLOBAL_FLAGS_AND_DATA, 1 << 7);
|
||||
@@ -367,7 +367,7 @@ DeviceFailed (BYTE which_device)
|
||||
GLOBAL (CurrentActivity) |= START_ENCOUNTER;
|
||||
|
||||
battle_counter = 0;
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
if (CurStarDescPtr->Index == ILWRATH_DEFINED)
|
||||
|
||||
@@ -78,7 +78,7 @@ GenerateChmmr (BYTE control)
|
||||
&& !GET_GAME_STATE (ILWRATH_DECEIVED)
|
||||
&& ActivateStarShip (ILWRATH_SHIP, SPHERE_TRACKING))
|
||||
{
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
CloneShipFragment (ILWRATH_SHIP,
|
||||
@@ -94,7 +94,7 @@ GenerateChmmr (BYTE control)
|
||||
{
|
||||
GLOBAL (CurrentActivity) &= ~START_INTERPLANETARY;
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
GetGroupInfo (0L, 0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ GenerateColony (BYTE control)
|
||||
CloneShipFragment (URQUAN_SHIP,
|
||||
&GLOBAL (npc_built_ship_q), 0);
|
||||
|
||||
GLOBAL (BattleGroupRef) = PutGroupInfo (~0L, 1);
|
||||
GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1);
|
||||
b0 = LOBYTE (LOWORD (GLOBAL (BattleGroupRef)));
|
||||
b1 = HIBYTE (LOWORD (GLOBAL (BattleGroupRef)));
|
||||
b2 = LOBYTE (HIWORD (GLOBAL (BattleGroupRef)));
|
||||
|
||||
@@ -114,7 +114,7 @@ GenerateDruuge (BYTE control)
|
||||
if (ActivateStarShip (DRUUGE_SHIP, SPHERE_TRACKING))
|
||||
{
|
||||
NotifyOthers (DRUUGE_SHIP, (BYTE)~0);
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
CloneShipFragment (DRUUGE_SHIP,
|
||||
@@ -129,7 +129,7 @@ GenerateDruuge (BYTE control)
|
||||
{
|
||||
GLOBAL (CurrentActivity) &= ~START_INTERPLANETARY;
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
GetGroupInfo (0L, 0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ GenerateIlwrath (BYTE control)
|
||||
if (ActivateStarShip (ILWRATH_SHIP, SPHERE_TRACKING))
|
||||
{
|
||||
NotifyOthers (ILWRATH_SHIP, (BYTE)~0);
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
CloneShipFragment (ILWRATH_SHIP,
|
||||
@@ -103,7 +103,7 @@ GenerateIlwrath (BYTE control)
|
||||
{
|
||||
GLOBAL (CurrentActivity) &= ~START_INTERPLANETARY;
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
GetGroupInfo (0L, 0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -169,7 +169,7 @@ GenerateMelnorme (BYTE control)
|
||||
{
|
||||
CloneShipFragment (MELNORME_SHIP,
|
||||
&GLOBAL (npc_built_ship_q), 0);
|
||||
GLOBAL (BattleGroupRef) = PutGroupInfo (~0L, 1);
|
||||
GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1);
|
||||
SetMelnormeRef (GLOBAL (BattleGroupRef));
|
||||
}
|
||||
GenerateRandomIP (INIT_NPCS);
|
||||
|
||||
@@ -134,7 +134,7 @@ GenerateMycon (BYTE control)
|
||||
|| !GET_GAME_STATE (SUN_DEVICE_UNGUARDED))
|
||||
{
|
||||
NotifyOthers (MYCON_SHIP, (BYTE)~0);
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
if (CurStarDescPtr->Index == MYCON_DEFINED
|
||||
@@ -176,7 +176,7 @@ GenerateMycon (BYTE control)
|
||||
|
||||
GLOBAL (CurrentActivity) &= ~START_INTERPLANETARY;
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
GetGroupInfo (0L, 0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
|
||||
if (MyconSurvivors)
|
||||
break;
|
||||
|
||||
@@ -302,7 +302,7 @@ GenerateOrz (BYTE control)
|
||||
&& ActivateStarShip (ORZ_SHIP, SPHERE_TRACKING))
|
||||
{
|
||||
NotifyOthers (ORZ_SHIP, (BYTE)~0);
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
if (CurStarDescPtr->Index == ORZ_DEFINED)
|
||||
@@ -335,7 +335,7 @@ GenerateOrz (BYTE control)
|
||||
|
||||
GLOBAL (CurrentActivity) &= ~START_INTERPLANETARY;
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
GetGroupInfo (0L, 0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
|
||||
if (OrzSurvivors)
|
||||
break;
|
||||
|
||||
@@ -172,7 +172,7 @@ GenerateTalkingPet (BYTE control)
|
||||
|| ActivateStarShip (UMGAH_SHIP, SPHERE_TRACKING)))
|
||||
{
|
||||
NotifyOthers (UMGAH_SHIP, (BYTE)~0);
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
if (ActivateStarShip (UMGAH_SHIP, SPHERE_TRACKING))
|
||||
@@ -223,7 +223,7 @@ GenerateTalkingPet (BYTE control)
|
||||
}
|
||||
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
GetGroupInfo (0L, 0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ GeneratePkunk (BYTE control)
|
||||
if (ActivateStarShip (PKUNK_SHIP, SPHERE_TRACKING))
|
||||
{
|
||||
NotifyOthers (PKUNK_SHIP, (BYTE)~0);
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
CloneShipFragment (PKUNK_SHIP,
|
||||
@@ -122,7 +122,7 @@ GeneratePkunk (BYTE control)
|
||||
{
|
||||
GLOBAL (CurrentActivity) &= ~START_INTERPLANETARY;
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
GetGroupInfo (0L, 0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ BuildUrquanGuard (void)
|
||||
|
||||
if (GLOBAL (BattleGroupRef) == 0)
|
||||
{
|
||||
GLOBAL (BattleGroupRef) = PutGroupInfo (~0L, 1);
|
||||
GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1);
|
||||
b0 = LOBYTE (LOWORD (GLOBAL (BattleGroupRef)));
|
||||
b1 = HIBYTE (LOWORD (GLOBAL (BattleGroupRef)));
|
||||
b2 = LOBYTE (HIWORD (GLOBAL (BattleGroupRef)));
|
||||
@@ -76,7 +76,7 @@ BuildUrquanGuard (void)
|
||||
for (b0 = 1; b0 <= NUM_URQUAN_GUARDS1; ++b0)
|
||||
PutGroupInfo (GLOBAL (BattleGroupRef), (BYTE)(NUM_URQUAN_GUARDS0 + b0));
|
||||
|
||||
GetGroupInfo (GLOBAL (BattleGroupRef), (BYTE)~0);
|
||||
GetGroupInfo (GLOBAL (BattleGroupRef), GROUP_INIT_IP);
|
||||
|
||||
XFormIPLoc (
|
||||
&pSolarSysState->PlanetDesc[4].image.origin,
|
||||
@@ -150,11 +150,11 @@ GenerateSamatra (BYTE control)
|
||||
BuildUrquanGuard ();
|
||||
else
|
||||
{ // Exorcise Ur-Quan ghosts upon system reentry
|
||||
PutGroupInfo (0L, (BYTE)~0); // wipe out the group
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP); // wipe out the group
|
||||
}
|
||||
break;
|
||||
case REINIT_NPCS:
|
||||
GetGroupInfo (0L, 0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
battle_counter = 0;
|
||||
{
|
||||
BOOLEAN GuardEngaged;
|
||||
@@ -246,7 +246,7 @@ GenerateSamatra (BYTE control)
|
||||
if (pSolarSysState->pOrbitalDesc->pPrevDesc == &pSolarSysState->PlanetDesc[4]
|
||||
&& pSolarSysState->pOrbitalDesc == &pSolarSysState->MoonDesc[0])
|
||||
{
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
if (!GET_GAME_STATE (URQUAN_MESSED_UP))
|
||||
@@ -283,7 +283,7 @@ GenerateSamatra (BYTE control)
|
||||
|
||||
GLOBAL (CurrentActivity) &= ~START_INTERPLANETARY;
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
GetGroupInfo (0L, 0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
if (UrquanSurvivors)
|
||||
{
|
||||
SET_GAME_STATE (URQUAN_PROTECTING_SAMATRA, 0);
|
||||
|
||||
@@ -67,7 +67,7 @@ GenerateShofixti (BYTE control)
|
||||
MAKE_WORD (b0, b1), MAKE_WORD (b2, b3)
|
||||
);
|
||||
if (GLOBAL (BattleGroupRef) == 0
|
||||
|| !GetGroupInfo (GLOBAL (BattleGroupRef), (BYTE)~0))
|
||||
|| !GetGroupInfo (GLOBAL (BattleGroupRef), GROUP_INIT_IP))
|
||||
{
|
||||
if (GLOBAL (BattleGroupRef) == 0)
|
||||
GLOBAL (BattleGroupRef) = ~0L;
|
||||
|
||||
@@ -64,7 +64,7 @@ init_probe (void)
|
||||
HSTARSHIP hStarShip;
|
||||
|
||||
if (!GET_GAME_STATE (PROBE_MESSAGE_DELIVERED)
|
||||
&& GetGroupInfo (GLOBAL (BattleGroupRef), (BYTE)~0)
|
||||
&& GetGroupInfo (GLOBAL (BattleGroupRef), GROUP_INIT_IP)
|
||||
&& (hStarShip = GetHeadLink (
|
||||
&GLOBAL (npc_built_ship_q)
|
||||
)))
|
||||
@@ -186,7 +186,7 @@ generate_orbital (void)
|
||||
if (pSolarSysState->pOrbitalDesc->pPrevDesc == &pSolarSysState->PlanetDesc[2]
|
||||
&& pSolarSysState->pOrbitalDesc == &pSolarSysState->MoonDesc[0])
|
||||
{
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
battle_counter = 0;
|
||||
@@ -438,7 +438,7 @@ GenerateSOL (BYTE control)
|
||||
CloneShipFragment (URQUAN_PROBE_SHIP,
|
||||
&GLOBAL (npc_built_ship_q), 0);
|
||||
|
||||
GLOBAL (BattleGroupRef) = PutGroupInfo (~0L, 1);
|
||||
GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1);
|
||||
SetProbeRef (GLOBAL (BattleGroupRef));
|
||||
}
|
||||
if (!init_probe ())
|
||||
|
||||
@@ -159,7 +159,7 @@ GenerateSpathi (BYTE control)
|
||||
&& ActivateStarShip (SPATHI_SHIP, SPHERE_TRACKING))
|
||||
{
|
||||
NotifyOthers (SPATHI_SHIP, (BYTE)~0);
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
CloneShipFragment (SPATHI_SHIP,
|
||||
@@ -175,7 +175,7 @@ GenerateSpathi (BYTE control)
|
||||
{
|
||||
GLOBAL (CurrentActivity) &= ~START_INTERPLANETARY;
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
GetGroupInfo (0L, 0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ GenerateSupox (BYTE control)
|
||||
if (ActivateStarShip (SUPOX_SHIP, SPHERE_TRACKING))
|
||||
{
|
||||
NotifyOthers (SUPOX_SHIP, (BYTE)~0);
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
CloneShipFragment (SUPOX_SHIP,
|
||||
@@ -120,7 +120,7 @@ GenerateSupox (BYTE control)
|
||||
{
|
||||
GLOBAL (CurrentActivity) &= ~START_INTERPLANETARY;
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
GetGroupInfo (0L, 0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -145,7 +145,7 @@ GenerateThradd (BYTE control)
|
||||
&& (BYTE)(GET_GAME_STATE (THRADD_MISSION) - 1) >= 3)))
|
||||
{
|
||||
NotifyOthers (THRADDASH_SHIP, (BYTE)~0);
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
CloneShipFragment (THRADDASH_SHIP,
|
||||
@@ -169,7 +169,7 @@ GenerateThradd (BYTE control)
|
||||
|
||||
GLOBAL (CurrentActivity) &= ~START_INTERPLANETARY;
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
GetGroupInfo (0L, 0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
|
||||
if (CurStarDescPtr->Index == THRADD_DEFINED
|
||||
|| (!GET_GAME_STATE (HELIX_UNPROTECTED)
|
||||
|
||||
@@ -146,7 +146,7 @@ GenerateUtwig (BYTE control)
|
||||
&& ActivateStarShip (UTWIG_SHIP, SPHERE_TRACKING))
|
||||
{
|
||||
NotifyOthers (UTWIG_SHIP, (BYTE)~0);
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
CloneShipFragment (UTWIG_SHIP,
|
||||
@@ -169,7 +169,7 @@ GenerateUtwig (BYTE control)
|
||||
{
|
||||
GLOBAL (CurrentActivity) &= ~START_INTERPLANETARY;
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
GetGroupInfo (0L, 0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -179,7 +179,7 @@ GenerateUtwig (BYTE control)
|
||||
{
|
||||
COUNT i;
|
||||
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
for (i = 0; i < 5; ++i)
|
||||
@@ -203,7 +203,7 @@ GenerateUtwig (BYTE control)
|
||||
|
||||
GLOBAL (CurrentActivity) &= ~START_INTERPLANETARY;
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
GetGroupInfo (0L, 0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
|
||||
if (DruugeSurvivors)
|
||||
break;
|
||||
|
||||
@@ -159,7 +159,7 @@ GenerateVUX (BYTE control)
|
||||
&& ActivateStarShip (VUX_SHIP, SPHERE_TRACKING))
|
||||
{
|
||||
NotifyOthers (VUX_SHIP, (BYTE)~0);
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
CloneShipFragment (VUX_SHIP,
|
||||
@@ -184,7 +184,7 @@ GenerateVUX (BYTE control)
|
||||
{
|
||||
GLOBAL (CurrentActivity) &= ~START_INTERPLANETARY;
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
GetGroupInfo (0L, 0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
|
||||
if (CurStarDescPtr->Index == VUX_DEFINED
|
||||
|| !GET_GAME_STATE (ZEX_IS_DEAD))
|
||||
|
||||
@@ -88,7 +88,7 @@ GenerateYehat (BYTE control)
|
||||
if (ActivateStarShip (YEHAT_SHIP, SPHERE_TRACKING))
|
||||
{
|
||||
NotifyOthers (YEHAT_SHIP, (BYTE)~0);
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
CloneShipFragment (YEHAT_SHIP,
|
||||
@@ -104,7 +104,7 @@ GenerateYehat (BYTE control)
|
||||
{
|
||||
GLOBAL (CurrentActivity) &= ~START_INTERPLANETARY;
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
GetGroupInfo (0L, 0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ GenerateScout (BYTE control)
|
||||
CloneShipFragment (ZOQFOTPIK_SHIP,
|
||||
&GLOBAL (npc_built_ship_q), 0);
|
||||
|
||||
GLOBAL (BattleGroupRef) = PutGroupInfo (~0L, 1);
|
||||
GLOBAL (BattleGroupRef) = PutGroupInfo (GROUPS_ADD_NEW, 1);
|
||||
b0 = LOBYTE (LOWORD (GLOBAL (BattleGroupRef)));
|
||||
b1 = HIBYTE (LOWORD (GLOBAL (BattleGroupRef)));
|
||||
b2 = LOBYTE (HIWORD (GLOBAL (BattleGroupRef)));
|
||||
@@ -171,7 +171,7 @@ GenerateZoqFotPik (BYTE control)
|
||||
{
|
||||
if (ActivateStarShip (ZOQFOTPIK_SHIP, SPHERE_TRACKING))
|
||||
{
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
if (GET_GAME_STATE (ZOQFOT_DISTRESS))
|
||||
@@ -192,8 +192,7 @@ GenerateZoqFotPik (BYTE control)
|
||||
{
|
||||
GLOBAL (CurrentActivity) &= ~START_INTERPLANETARY;
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
GetGroupInfo (0L, 0);
|
||||
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -210,7 +209,7 @@ GenerateZoqFotPik (BYTE control)
|
||||
{
|
||||
GLOBAL (CurrentActivity) &= ~START_INTERPLANETARY;
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
GetGroupInfo (0L, 0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -768,7 +768,7 @@ PickPlanetSide (PMENU_STATE pMS)
|
||||
GLOBAL (CurrentActivity) |= START_ENCOUNTER;
|
||||
|
||||
battle_counter = 0;
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
|
||||
hStarShip = CloneShipFragment (SPATHI_SHIP,
|
||||
|
||||
@@ -1573,17 +1573,17 @@ GenerateRandomIP (BYTE control)
|
||||
switch (control)
|
||||
{
|
||||
case INIT_NPCS:
|
||||
if (!GetGroupInfo (GLOBAL (BattleGroupRef), (BYTE)~0))
|
||||
if (!GetGroupInfo (GLOBAL (BattleGroupRef), GROUP_INIT_IP))
|
||||
{
|
||||
GLOBAL (BattleGroupRef) = 0;
|
||||
BuildGroups ();
|
||||
}
|
||||
break;
|
||||
case REINIT_NPCS:
|
||||
GetGroupInfo (0L, 0);
|
||||
GetGroupInfo (GROUPS_RANDOM, GROUP_LOAD_IP);
|
||||
break;
|
||||
case UNINIT_NPCS:
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
ReinitQueue (&GLOBAL (npc_built_ship_q));
|
||||
break;
|
||||
case GENERATE_MINERAL:
|
||||
|
||||
@@ -344,14 +344,7 @@ RetrySave:
|
||||
if (CurStarDescPtr)
|
||||
SD = *CurStarDescPtr;
|
||||
else
|
||||
{
|
||||
SD.star_pt.x = 0;
|
||||
SD.star_pt.y = 0;
|
||||
SD.Type = 0;
|
||||
SD.Index = 0;
|
||||
SD.Prefix = 0;
|
||||
SD.Postfix = 0;
|
||||
}
|
||||
memset (&SD, 0, sizeof (SD));
|
||||
|
||||
frame = GLOBAL (ShipStamp.frame);
|
||||
pt = GLOBAL (ip_location);
|
||||
@@ -359,7 +352,7 @@ RetrySave:
|
||||
if (LOBYTE (GLOBAL (CurrentActivity)) == IN_INTERPLANETARY
|
||||
&& !(GLOBAL (CurrentActivity)
|
||||
& (START_ENCOUNTER | START_INTERPLANETARY)))
|
||||
PutGroupInfo (0L, (BYTE)~0);
|
||||
PutGroupInfo (GROUPS_RANDOM, GROUP_SAVE_IP);
|
||||
|
||||
cwrite ((PBYTE)&GlobData.Game_state, sizeof (GlobData.Game_state),
|
||||
1, fh);
|
||||
|
||||
@@ -30,6 +30,12 @@ extern void InitGroupInfo (BOOLEAN FirstTime);
|
||||
extern void UninitGroupInfo (void);
|
||||
extern BOOLEAN GetGroupInfo (DWORD offset, BYTE which_group);
|
||||
extern DWORD PutGroupInfo (DWORD offset, BYTE which_group);
|
||||
#define GROUPS_RANDOM 0L
|
||||
#define GROUPS_ADD_NEW (~0L)
|
||||
#define GROUP_LIST 0
|
||||
#define GROUP_INIT_IP ((BYTE)~0)
|
||||
#define GROUP_LOAD_IP GROUP_LIST
|
||||
#define GROUP_SAVE_IP ((BYTE)~0)
|
||||
extern void BuildGroups (void);
|
||||
|
||||
#define MAX_DESC_CHARS 60
|
||||
|
||||
Reference in New Issue
Block a user