sMove.iAttackRuns is UDWORD and thus should get endianized like that, since it is a potential bug... Reported on IRC.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@3907 4a71c877-e1ca-e34f-864e-861f7616d084master
parent
5afe39703c
commit
c796c09971
38
src/game.c
38
src/game.c
|
@ -2370,8 +2370,8 @@ BOOL loadGame(const char *pGameToLoad, BOOL keepObjects, BOOL freeMem, BOOL User
|
||||||
memset(asBodyUpgrade, 0, MAX_PLAYERS * sizeof(BODY_UPGRADE) * BODY_TYPE);
|
memset(asBodyUpgrade, 0, MAX_PLAYERS * sizeof(BODY_UPGRADE) * BODY_TYPE);
|
||||||
//JPS 25 feb
|
//JPS 25 feb
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (saveGameVersion >= VERSION_11)
|
if (saveGameVersion >= VERSION_11)
|
||||||
{
|
{
|
||||||
//camera position
|
//camera position
|
||||||
|
@ -3289,7 +3289,7 @@ BOOL loadGame(const char *pGameToLoad, BOOL keepObjects, BOOL freeMem, BOOL User
|
||||||
//load in the command list file
|
//load in the command list file
|
||||||
aFileName[fileExten] = '\0';
|
aFileName[fileExten] = '\0';
|
||||||
strcat(aFileName, "firesupport.tag");
|
strcat(aFileName, "firesupport.tag");
|
||||||
|
|
||||||
if (!readFiresupportDesignators(aFileName))
|
if (!readFiresupportDesignators(aFileName))
|
||||||
{
|
{
|
||||||
debug( LOG_NEVER, "loadMissionExtras: readFiresupportDesignators(%s) failed\n", aFileName );
|
debug( LOG_NEVER, "loadMissionExtras: readFiresupportDesignators(%s) failed\n", aFileName );
|
||||||
|
@ -5599,7 +5599,7 @@ static void SaveDroidMoveControl(SAVE_DROID * const psSaveDroid, DROID const * c
|
||||||
psSaveDroid->sMove.numPoints = psDroid->sMove.numPoints;
|
psSaveDroid->sMove.numPoints = psDroid->sMove.numPoints;
|
||||||
memcpy(&psSaveDroid->sMove.asPath, &psDroid->sMove.asPath, sizeof(psSaveDroid->sMove.asPath));
|
memcpy(&psSaveDroid->sMove.asPath, &psDroid->sMove.asPath, sizeof(psSaveDroid->sMove.asPath));
|
||||||
|
|
||||||
|
|
||||||
// Little endian SDWORDs
|
// Little endian SDWORDs
|
||||||
psSaveDroid->sMove.DestinationX = PHYSFS_swapSLE32(psDroid->sMove.DestinationX);
|
psSaveDroid->sMove.DestinationX = PHYSFS_swapSLE32(psDroid->sMove.DestinationX);
|
||||||
psSaveDroid->sMove.DestinationY = PHYSFS_swapSLE32(psDroid->sMove.DestinationY);
|
psSaveDroid->sMove.DestinationY = PHYSFS_swapSLE32(psDroid->sMove.DestinationY);
|
||||||
|
@ -5667,7 +5667,7 @@ static void LoadDroidMoveControl(DROID * const psDroid, SAVE_DROID const * const
|
||||||
psDroid->sMove.numPoints = psSaveDroid->sMove.numPoints;
|
psDroid->sMove.numPoints = psSaveDroid->sMove.numPoints;
|
||||||
memcpy(&psDroid->sMove.asPath, &psSaveDroid->sMove.asPath, sizeof(psSaveDroid->sMove.asPath));
|
memcpy(&psDroid->sMove.asPath, &psSaveDroid->sMove.asPath, sizeof(psSaveDroid->sMove.asPath));
|
||||||
|
|
||||||
|
|
||||||
// Little endian SDWORDs
|
// Little endian SDWORDs
|
||||||
psDroid->sMove.DestinationX = PHYSFS_swapSLE32(psSaveDroid->sMove.DestinationX);
|
psDroid->sMove.DestinationX = PHYSFS_swapSLE32(psSaveDroid->sMove.DestinationX);
|
||||||
psDroid->sMove.DestinationY = PHYSFS_swapSLE32(psSaveDroid->sMove.DestinationY);
|
psDroid->sMove.DestinationY = PHYSFS_swapSLE32(psSaveDroid->sMove.DestinationY);
|
||||||
|
@ -6490,13 +6490,13 @@ BOOL loadSaveDroidV(char *pFileData, UDWORD filesize, UDWORD numDroids, UDWORD v
|
||||||
{
|
{
|
||||||
for(i = 0;i < psSaveDroid->numWeaps;i++)
|
for(i = 0;i < psSaveDroid->numWeaps;i++)
|
||||||
{
|
{
|
||||||
endian_uword(&psSaveDroid->sMove.iAttackRuns[i]);
|
endian_udword(&psSaveDroid->sMove.iAttackRuns[i]);
|
||||||
}
|
}
|
||||||
//endian_uword(&psSaveDroid->sMove.iGuardRadius);
|
//endian_uword(&psSaveDroid->sMove.iGuardRadius);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
endian_uword(&psSaveDroid->sMove.iAttackRuns[0]);
|
endian_udword(&psSaveDroid->sMove.iAttackRuns[0]);
|
||||||
}
|
}
|
||||||
for(i = 0; i < TEMP_DROID_MAXPROGS; i++) {
|
for(i = 0; i < TEMP_DROID_MAXPROGS; i++) {
|
||||||
/* SAVE_WEAPON */
|
/* SAVE_WEAPON */
|
||||||
|
@ -6632,24 +6632,24 @@ static BOOL buildSaveDroidFromDroid(SAVE_DROID* psSaveDroid, DROID* psCurr, DROI
|
||||||
psSaveDroid->orderX2 = psCurr->orderX2;
|
psSaveDroid->orderX2 = psCurr->orderX2;
|
||||||
psSaveDroid->orderY2 = psCurr->orderY2;
|
psSaveDroid->orderY2 = psCurr->orderY2;
|
||||||
psSaveDroid->timeLastHit = psCurr->timeLastHit;
|
psSaveDroid->timeLastHit = psCurr->timeLastHit;
|
||||||
|
|
||||||
psSaveDroid->targetID = NULL_ID;
|
psSaveDroid->targetID = NULL_ID;
|
||||||
if (psCurr->psTarget != NULL && psCurr->psTarget->died <= 1 && checkValidId(psCurr->psTarget->id))
|
if (psCurr->psTarget != NULL && psCurr->psTarget->died <= 1 && checkValidId(psCurr->psTarget->id))
|
||||||
{
|
{
|
||||||
psSaveDroid->targetID = psCurr->psTarget->id;
|
psSaveDroid->targetID = psCurr->psTarget->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
psSaveDroid->secondaryOrder = psCurr->secondaryOrder;
|
psSaveDroid->secondaryOrder = psCurr->secondaryOrder;
|
||||||
psSaveDroid->action = psCurr->action;
|
psSaveDroid->action = psCurr->action;
|
||||||
psSaveDroid->actionX = psCurr->actionX;
|
psSaveDroid->actionX = psCurr->actionX;
|
||||||
psSaveDroid->actionY = psCurr->actionY;
|
psSaveDroid->actionY = psCurr->actionY;
|
||||||
|
|
||||||
psSaveDroid->actionTargetID = NULL_ID;
|
psSaveDroid->actionTargetID = NULL_ID;
|
||||||
if (psCurr->psActionTarget[0] != NULL && psCurr->psActionTarget[0]->died <= 1 && checkValidId( psCurr->psActionTarget[0]->id))
|
if (psCurr->psActionTarget[0] != NULL && psCurr->psActionTarget[0]->died <= 1 && checkValidId( psCurr->psActionTarget[0]->id))
|
||||||
{
|
{
|
||||||
psSaveDroid->actionTargetID = psCurr->psActionTarget[0]->id;
|
psSaveDroid->actionTargetID = psCurr->psActionTarget[0]->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
psSaveDroid->actionStarted = psCurr->actionStarted;
|
psSaveDroid->actionStarted = psCurr->actionStarted;
|
||||||
psSaveDroid->actionPoints = psCurr->actionPoints;
|
psSaveDroid->actionPoints = psCurr->actionPoints;
|
||||||
psSaveDroid->actionHeight = psCurr->powerAccrued;
|
psSaveDroid->actionHeight = psCurr->powerAccrued;
|
||||||
|
@ -6664,7 +6664,7 @@ static BOOL buildSaveDroidFromDroid(SAVE_DROID* psSaveDroid, DROID* psCurr, DROI
|
||||||
{
|
{
|
||||||
strcpy(psSaveDroid->tarStatName,"");
|
strcpy(psSaveDroid->tarStatName,"");
|
||||||
}
|
}
|
||||||
|
|
||||||
psSaveDroid->baseStructID = NULL_ID;
|
psSaveDroid->baseStructID = NULL_ID;
|
||||||
if ((psCurr->psBaseStruct != NULL))
|
if ((psCurr->psBaseStruct != NULL))
|
||||||
{
|
{
|
||||||
|
@ -6675,7 +6675,7 @@ static BOOL buildSaveDroidFromDroid(SAVE_DROID* psSaveDroid, DROID* psCurr, DROI
|
||||||
psSaveDroid->baseStructID = psCurr->psBaseStruct->id;
|
psSaveDroid->baseStructID = psCurr->psBaseStruct->id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
psSaveDroid->group = psCurr->group;
|
psSaveDroid->group = psCurr->group;
|
||||||
psSaveDroid->selected = psCurr->selected;
|
psSaveDroid->selected = psCurr->selected;
|
||||||
//20feb psSaveDroid->cluster = psCurr->cluster;
|
//20feb psSaveDroid->cluster = psCurr->cluster;
|
||||||
|
@ -11429,14 +11429,14 @@ BOOL readFiresupportDesignators(char *pFileName)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
debug(LOG_MAP, "Reading tagged savegame %s with definition %s:", pFileName, FireSupport_tag_definition);
|
debug(LOG_MAP, "Reading tagged savegame %s with definition %s:", pFileName, FireSupport_tag_definition);
|
||||||
|
|
||||||
tagReadString(0x01, 12, formatIdentifier);
|
tagReadString(0x01, 12, formatIdentifier);
|
||||||
if (strcmp(formatIdentifier, FireSupport_file_identifier) != 0)
|
if (strcmp(formatIdentifier, FireSupport_file_identifier) != 0)
|
||||||
{
|
{
|
||||||
debug(LOG_ERROR, "readFiresupportDesignators: Incompatble %s, 'FIRESUPPORT' expected", pFileName);
|
debug(LOG_ERROR, "readFiresupportDesignators: Incompatble %s, 'FIRESUPPORT' expected", pFileName);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
numPlayers = tagReadEnter(0x02);
|
numPlayers = tagReadEnter(0x02);
|
||||||
for (player = 0; player < numPlayers; player++)
|
for (player = 0; player < numPlayers; player++)
|
||||||
{
|
{
|
||||||
|
@ -11448,7 +11448,7 @@ BOOL readFiresupportDesignators(char *pFileName)
|
||||||
tagReadNext();
|
tagReadNext();
|
||||||
}
|
}
|
||||||
tagReadLeave(0x02);
|
tagReadLeave(0x02);
|
||||||
|
|
||||||
tagClose();
|
tagClose();
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -11468,7 +11468,7 @@ BOOL writeFiresupportDesignators(char *pFileName)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
debug(LOG_MAP, "Creating tagged savegame %s with definition %s:", pFileName, FireSupport_tag_definition);
|
debug(LOG_MAP, "Creating tagged savegame %s with definition %s:", pFileName, FireSupport_tag_definition);
|
||||||
|
|
||||||
tagWriteString(0x01, FireSupport_file_identifier);
|
tagWriteString(0x01, FireSupport_file_identifier);
|
||||||
tagWriteEnter(0x02, MAX_PLAYERS);
|
tagWriteEnter(0x02, MAX_PLAYERS);
|
||||||
for (player = 0; player < MAX_PLAYERS; player++)
|
for (player = 0; player < MAX_PLAYERS; player++)
|
||||||
|
@ -11485,9 +11485,9 @@ BOOL writeFiresupportDesignators(char *pFileName)
|
||||||
tagWriteNext();
|
tagWriteNext();
|
||||||
}
|
}
|
||||||
tagWriteLeave(0x02);
|
tagWriteLeave(0x02);
|
||||||
|
|
||||||
tagClose();
|
tagClose();
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue