mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
Fix: Key data wasn't set correctly when the swap merc faces feature was used so the game couldn't load the savegame anymore.
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7534 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -6927,7 +6927,7 @@ void SwapMercPortraits ( SOLDIERTYPE *pSoldier, INT8 bDirection )
|
|||||||
UINT8 ubGroupID = pSoldier->ubGroupID;
|
UINT8 ubGroupID = pSoldier->ubGroupID;
|
||||||
INT8 bOldPosition = GetTeamSlotFromPlayerID ( MercPtrs[ ubSourceMerc ]->ubID );
|
INT8 bOldPosition = GetTeamSlotFromPlayerID ( MercPtrs[ ubSourceMerc ]->ubID );
|
||||||
INT8 bNewPosition = bOldPosition + bDirection;
|
INT8 bNewPosition = bOldPosition + bDirection;
|
||||||
SOLDIERTYPE *TempMercPtr = MercPtrs[ ubSourceMerc ];
|
SOLDIERTYPE TempMenptr = Menptr[ ubSourceMerc ];
|
||||||
|
|
||||||
// anv: vehicle passengers are swapped differently
|
// anv: vehicle passengers are swapped differently
|
||||||
if( pSoldier->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) )
|
if( pSoldier->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) )
|
||||||
@@ -6958,15 +6958,15 @@ void SwapMercPortraits ( SOLDIERTYPE *pSoldier, INT8 bDirection )
|
|||||||
FACETYPE TempFace = gFacesData[ iSourceFace ];
|
FACETYPE TempFace = gFacesData[ iSourceFace ];
|
||||||
|
|
||||||
// swap the data
|
// swap the data
|
||||||
MercPtrs[ ubSourceMerc ] = MercPtrs[ ubTargetMerc ];
|
Menptr[ ubSourceMerc ] = Menptr[ ubTargetMerc ];
|
||||||
MercPtrs[ ubTargetMerc ] = TempMercPtr;
|
Menptr[ ubTargetMerc ] = TempMenptr;
|
||||||
// also swap face data, otherwise face gear, opp count etc won't update
|
// also swap face data, otherwise face gear, opp count etc won't update
|
||||||
gFacesData[ iSourceFace ] = gFacesData[ iTargetFace ];
|
gFacesData[ iSourceFace ] = gFacesData[ iTargetFace ];
|
||||||
gFacesData[ iTargetFace ] = TempFace;
|
gFacesData[ iTargetFace ] = TempFace;
|
||||||
|
|
||||||
// update IDs in the data so they match array index again
|
// update IDs in the data so they match array index again
|
||||||
MercPtrs[ ubSourceMerc ]->ubID = ubSourceMerc;
|
Menptr[ ubSourceMerc ].ubID = ubSourceMerc;
|
||||||
MercPtrs[ ubTargetMerc ]->ubID = ubTargetMerc;
|
Menptr[ ubTargetMerc ].ubID = ubTargetMerc;
|
||||||
gFacesData[ iSourceFace ].iID = iSourceFace;
|
gFacesData[ iSourceFace ].iID = iSourceFace;
|
||||||
gFacesData[ iTargetFace ].iID = iTargetFace;
|
gFacesData[ iTargetFace ].iID = iTargetFace;
|
||||||
|
|
||||||
@@ -6975,8 +6975,8 @@ void SwapMercPortraits ( SOLDIERTYPE *pSoldier, INT8 bDirection )
|
|||||||
gFacesData[ iTargetFace ].ubSoldierID = ubTargetMerc;
|
gFacesData[ iTargetFace ].ubSoldierID = ubTargetMerc;
|
||||||
|
|
||||||
// update face index in merc data
|
// update face index in merc data
|
||||||
MercPtrs[ ubSourceMerc ]->iFaceIndex = iSourceFace;
|
Menptr[ ubSourceMerc ].iFaceIndex = iSourceFace;
|
||||||
MercPtrs[ ubTargetMerc ]->iFaceIndex = iTargetFace;
|
Menptr[ ubTargetMerc ].iFaceIndex = iTargetFace;
|
||||||
|
|
||||||
// update group info
|
// update group info
|
||||||
RemovePlayerFromGroup( ubGroupID, MercPtrs[ ubSourceMerc ] );
|
RemovePlayerFromGroup( ubGroupID, MercPtrs[ ubSourceMerc ] );
|
||||||
|
|||||||
Reference in New Issue
Block a user