static bool GenerateColony_initNpcs (SOLARSYS_STATE *solarSys) { HIPGROUP hGroup; 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); ReinitQueue (&GLOBAL (npc_built_ship_q)); SET_GAME_STATE_32 (COLONY_GRPOFFS0, GLOBAL (BattleGroupRef)); } GenerateDefault_initNpcs (solarSys); if (GLOBAL (BattleGroupRef) && (hGroup = GetHeadLink (&GLOBAL (ip_group_q)))) { IP_GROUP *GroupPtr; GroupPtr = LockIpGroup (&GLOBAL (ip_group_q), hGroup); GroupPtr->task = IN_ORBIT; GroupPtr->sys_loc = 0 + 1; /* orbitting colony */ GroupPtr->dest_loc = 0 + 1; /* orbitting colony */ GroupPtr->loc.x = 0; GroupPtr->loc.y = 0; GroupPtr->group_counter = 0; UnlockIpGroup (&GLOBAL (ip_group_q), hGroup); } return true; }
static bool GenerateZoqFotPik_initNpcs (SOLARSYS_STATE *solarSys) { if (GET_GAME_STATE (ZOQFOT_DISTRESS) != 1) GenerateDefault_initNpcs (solarSys); return true; }
static bool GenerateUtwig_initNpcs (SOLARSYS_STATE *solarSys) { if (CurStarDescPtr->Index == BOMB_DEFINED && !GET_GAME_STATE (UTWIG_BOMB)) { ReinitQueue (&GLOBAL (ip_group_q)); assert (CountLinks (&GLOBAL (npc_built_ship_q)) == 0); } else { GenerateDefault_initNpcs (solarSys); } return true; }