Fixed a SHIP_FRAGMENT/EXTENDED_SHIP_FRAGMENT aliasing remnant in ship-spin code
git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@2787 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
@@ -124,14 +124,14 @@ hangar_anim_func (void *data)
|
|||||||
|
|
||||||
#ifdef WANT_SHIP_SPINS
|
#ifdef WANT_SHIP_SPINS
|
||||||
static void
|
static void
|
||||||
SpinStarShip (HSHIPFRAG hStarShip)
|
SpinStarShip (HFLEETINFO hStarShip)
|
||||||
{
|
{
|
||||||
int Index;
|
int Index;
|
||||||
SHIP_FRAGMENT *StarShipPtr;
|
FLEET_INFO *FleetPtr;
|
||||||
|
|
||||||
StarShipPtr = LockShipFrag (&GLOBAL (built_ship_q), hStarShip);
|
FleetPtr = LockFleetInfo (&GLOBAL (avail_race_q), hStarShip);
|
||||||
Index = FindMasterShipIndex (StarShipPtr->RaceResIndex);
|
Index = FindMasterShipIndex (FleetPtr->RaceResIndex);
|
||||||
UnlockShipFrag (&GLOBAL (built_ship_q), hStarShip);
|
UnlockFleetInfo (&GLOBAL (avail_race_q), hStarShip);
|
||||||
|
|
||||||
if (Index >= 0 && Index < NUM_MELEE_SHIPS)
|
if (Index >= 0 && Index < NUM_MELEE_SHIPS)
|
||||||
{
|
{
|
||||||
@@ -667,7 +667,7 @@ DoModifyShips (MENU_STATE *pMS)
|
|||||||
#ifdef WANT_SHIP_SPINS
|
#ifdef WANT_SHIP_SPINS
|
||||||
if (special)
|
if (special)
|
||||||
{
|
{
|
||||||
HSHIPFRAG hSpinShip;
|
HFLEETINFO hSpinShip = 0;
|
||||||
|
|
||||||
if ((special && (((hStarShip == 0
|
if ((special && (((hStarShip == 0
|
||||||
&& HINIBBLE (pMS->CurState) == 0)
|
&& HINIBBLE (pMS->CurState) == 0)
|
||||||
@@ -675,7 +675,7 @@ DoModifyShips (MENU_STATE *pMS)
|
|||||||
|| ((hStarShip != 0 &&
|
|| ((hStarShip != 0 &&
|
||||||
HINIBBLE (pMS->CurState) == 0)
|
HINIBBLE (pMS->CurState) == 0)
|
||||||
&& !(pMS->delta_item & MODIFY_CREW_FLAG))))
|
&& !(pMS->delta_item & MODIFY_CREW_FLAG))))
|
||||||
&& ((hSpinShip = hStarShip)
|
&& (hStarShip
|
||||||
|| (HINIBBLE (pMS->CurState) == 0
|
|| (HINIBBLE (pMS->CurState) == 0
|
||||||
&& (hSpinShip = GetAvailableRaceFromIndex (
|
&& (hSpinShip = GetAvailableRaceFromIndex (
|
||||||
LOBYTE (pMS->delta_item))))))
|
LOBYTE (pMS->delta_item))))))
|
||||||
@@ -683,6 +683,17 @@ DoModifyShips (MENU_STATE *pMS)
|
|||||||
CONTEXT OldContext;
|
CONTEXT OldContext;
|
||||||
RECT OldClipRect;
|
RECT OldClipRect;
|
||||||
RECT flash_r;
|
RECT flash_r;
|
||||||
|
|
||||||
|
if (!hSpinShip)
|
||||||
|
{ /* Get fleet info from selected escort */
|
||||||
|
SHIP_FRAGMENT *FragPtr = LockShipFrag (
|
||||||
|
&GLOBAL (built_ship_q), hStarShip);
|
||||||
|
BYTE Index = GET_RACE_ID (FragPtr);
|
||||||
|
hSpinShip = GetStarShipFromIndex (
|
||||||
|
&GLOBAL (avail_race_q), Index);
|
||||||
|
UnlockShipFrag (&GLOBAL (built_ship_q), hStarShip);
|
||||||
|
}
|
||||||
|
|
||||||
SetFlashRect (NULL, (FRAME)0);
|
SetFlashRect (NULL, (FRAME)0);
|
||||||
// Do not call EndHangarAnim() with GraphicsLock held!
|
// Do not call EndHangarAnim() with GraphicsLock held!
|
||||||
UnlockMutex (GraphicsLock);
|
UnlockMutex (GraphicsLock);
|
||||||
@@ -692,7 +703,6 @@ DoModifyShips (MENU_STATE *pMS)
|
|||||||
OldContext = SetContext (ScreenContext);
|
OldContext = SetContext (ScreenContext);
|
||||||
GetContextClipRect (&OldClipRect);
|
GetContextClipRect (&OldClipRect);
|
||||||
|
|
||||||
// XXX: this is broken; we pass an HSHIPFRAG or HFLEETINFO
|
|
||||||
SpinStarShip (hSpinShip);
|
SpinStarShip (hSpinShip);
|
||||||
|
|
||||||
SetContextClipRect (&OldClipRect);
|
SetContextClipRect (&OldClipRect);
|
||||||
|
|||||||
Reference in New Issue
Block a user