From 3178ac72a2c373d588447843b1b1706783a1ca9a Mon Sep 17 00:00:00 2001 From: avolkov Date: Sun, 24 Apr 2011 19:47:22 +0000 Subject: [PATCH] Cannot communicate with Ilwrath via caster when they are dead (bug #850); some pOrbitalDesc usage cleanup git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@3586 8092fc87-c524-0410-9efc-e669fe64eaf9 --- sc2/ChangeLog | 1 + sc2/src/uqm/planets/devices.c | 15 +++++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/sc2/ChangeLog b/sc2/ChangeLog index c19fe89a1..f855d5d73 100644 --- a/sc2/ChangeLog +++ b/sc2/ChangeLog @@ -1,4 +1,5 @@ Changes towards version 0.7: +- Fixed 'caster comm with Ilwrath after they die off (bug #850) - Alex - Fixed Syreen Vault lander report infinite loop (bug #1118) - Alex - Same captain names are used on both net sides (bug #989) - Alex - Fixed sync loss in netplay games having duplicate ships (bug #1081) - Alex diff --git a/sc2/src/uqm/planets/devices.c b/sc2/src/uqm/planets/devices.c index 6504847ac..927c4ca25 100644 --- a/sc2/src/uqm/planets/devices.c +++ b/sc2/src/uqm/planets/devices.c @@ -231,8 +231,9 @@ UseCaster (void) || !playerInSolarSystem ()) return FALSE; - if (pSolarSysState->pOrbitalDesc == &pSolarSysState->PlanetDesc[1] - && playerInPlanetOrbit () + if (playerInPlanetOrbit () + && matchWorld (pSolarSysState, pSolarSysState->pOrbitalDesc, + 1, MATCH_PLANET) && CurStarDescPtr->Index == CHMMR_DEFINED && !GET_GAME_STATE (CHMMR_UNLEASHED)) { @@ -254,8 +255,9 @@ UseCaster (void) BOOLEAN FoundIlwrath; HIPGROUP hGroup; - FoundIlwrath = (BOOLEAN)(CurStarDescPtr->Index == ILWRATH_DEFINED); - // In the Ilwrath home system? + FoundIlwrath = (CurStarDescPtr->Index == ILWRATH_DEFINED) + && ActivateStarShip (ILWRATH_SHIP, SPHERE_TRACKING); + // In the Ilwrath home system and they are alive? if (!FoundIlwrath && (hGroup = GetHeadLink (&GLOBAL (ip_group_q)))) @@ -328,8 +330,9 @@ InvokeDevice (BYTE which_device) SleepThreadUntil (FadeScreen (FadeAllToWhite, ONE_SECOND * 1) + (ONE_SECOND * 2)); if (CurStarDescPtr->Index != CHMMR_DEFINED - || pSolarSysState->pOrbitalDesc != - &pSolarSysState->PlanetDesc[1]) + || !matchWorld (pSolarSysState, + pSolarSysState->pOrbitalDesc, + 1, MATCH_PLANET)) { FadeScreen (FadeAllToColor, ONE_SECOND * 2); }