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:
@@ -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)
|
||||||
|
{
|
||||||
|
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_GRPOFFS0, b0);
|
||||||
SET_GAME_STATE (URQUAN_PROBE_GRPOFFS1, b1);
|
SET_GAME_STATE (URQUAN_PROBE_GRPOFFS1, b1);
|
||||||
SET_GAME_STATE (URQUAN_PROBE_GRPOFFS2, b2);
|
SET_GAME_STATE (URQUAN_PROBE_GRPOFFS2, b2);
|
||||||
SET_GAME_STATE (URQUAN_PROBE_GRPOFFS3, b3);
|
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user