Properly call GenerateRandomIP(INIT_NPCS) from GenerateSOL() when needed. Fixes #109.

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@1133 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
avolkov
2003-08-27 22:57:43 +00:00
parent 6c035c669d
commit 9af1a05141
+40 -21
View File
@@ -20,34 +20,39 @@
#include "lifeform.h" #include "lifeform.h"
#include "lander.h" #include "lander.h"
static void static DWORD
init_probe (void) GetProbeRef (void)
{ {
BYTE b0, b1, b2, b3; BYTE b0, b1, b2, b3;
HSTARSHIP hStarShip;
b0 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS0); b0 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS0);
b1 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS1); b1 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS1);
b2 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS2); b2 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS2);
b3 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS3); b3 = GET_GAME_STATE (URQUAN_PROBE_GRPOFFS3);
GLOBAL (BattleGroupRef) = MAKE_DWORD (
MAKE_WORD (b0, b1), MAKE_WORD (b2, b3)
);
if (GLOBAL (BattleGroupRef) == 0)
{
CloneShipFragment (URQUAN_PROBE_SHIP,
&GLOBAL (npc_built_ship_q), 0);
GLOBAL (BattleGroupRef) = PutGroupInfo (~0L, 1); return (MAKE_DWORD (MAKE_WORD (b0, b1), MAKE_WORD (b2, b3)));
b0 = LOBYTE (LOWORD (GLOBAL (BattleGroupRef))); }
b1 = HIBYTE (LOWORD (GLOBAL (BattleGroupRef)));
b2 = LOBYTE (HIWORD (GLOBAL (BattleGroupRef))); static void
b3 = HIBYTE (HIWORD (GLOBAL (BattleGroupRef))); SetProbeRef (DWORD Ref)
SET_GAME_STATE (URQUAN_PROBE_GRPOFFS0, b0); {
SET_GAME_STATE (URQUAN_PROBE_GRPOFFS1, b1); BYTE b0, b1, b2, b3;
SET_GAME_STATE (URQUAN_PROBE_GRPOFFS2, b2);
SET_GAME_STATE (URQUAN_PROBE_GRPOFFS3, 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)
{
HSTARSHIP hStarShip;
if (!GET_GAME_STATE (PROBE_MESSAGE_DELIVERED) if (!GET_GAME_STATE (PROBE_MESSAGE_DELIVERED)
&& GetGroupInfo (GLOBAL (BattleGroupRef), (BYTE)~0) && GetGroupInfo (GLOBAL (BattleGroupRef), (BYTE)~0)
@@ -68,7 +73,11 @@ init_probe (void)
UnlockStarShip ( UnlockStarShip (
&GLOBAL (npc_built_ship_q), hStarShip &GLOBAL (npc_built_ship_q), hStarShip
); );
return 1;
} }
else
return 0;
} }
static void static void
@@ -417,7 +426,17 @@ GenerateSOL (BYTE control)
switch (control) switch (control)
{ {
case INIT_NPCS: case INIT_NPCS:
init_probe (); GLOBAL (BattleGroupRef) = GetProbeRef ();
if (GLOBAL (BattleGroupRef) == 0)
{
CloneShipFragment (URQUAN_PROBE_SHIP,
&GLOBAL (npc_built_ship_q), 0);
GLOBAL (BattleGroupRef) = PutGroupInfo (~0L, 1);
SetProbeRef (GLOBAL (BattleGroupRef));
}
if (!init_probe ())
GenerateRandomIP (INIT_NPCS);
break; break;
case REINIT_NPCS: case REINIT_NPCS:
if (GET_GAME_STATE (CHMMR_BOMB_STATE) != 3) if (GET_GAME_STATE (CHMMR_BOMB_STATE) != 3)