mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
Update inventory arrays to be vectors. Add class for inventory. Change some structs that use inventories to classes to provide constructors, destructors, etc. Note that with this update all file operations should still be compatible with previous files.
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@968 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+12
-7
@@ -1972,8 +1972,8 @@ void InitDetailedPlacementForMerc()
|
|||||||
{
|
{
|
||||||
Assert( !gpSelected->pDetailedPlacement );
|
Assert( !gpSelected->pDetailedPlacement );
|
||||||
|
|
||||||
gpSelected->pDetailedPlacement = (SOLDIERCREATE_STRUCT*)MemAlloc(sizeof(SOLDIERCREATE_STRUCT));
|
// WDS - Clean up inventory handling
|
||||||
|
gpSelected->pDetailedPlacement = new (MemAlloc(SIZEOF_SOLDIERCREATE_STRUCT)) SOLDIERCREATE_STRUCT;
|
||||||
Assert( gpSelected->pDetailedPlacement );
|
Assert( gpSelected->pDetailedPlacement );
|
||||||
|
|
||||||
gpSelected->pBasicPlacement->fDetailedPlacement = TRUE;
|
gpSelected->pBasicPlacement->fDetailedPlacement = TRUE;
|
||||||
@@ -3604,7 +3604,8 @@ void CopyMercPlacement( INT32 iMapIndex )
|
|||||||
memcpy( &gSaveBufferBasicPlacement, gpSelected->pBasicPlacement, sizeof( BASIC_SOLDIERCREATE_STRUCT ) );
|
memcpy( &gSaveBufferBasicPlacement, gpSelected->pBasicPlacement, sizeof( BASIC_SOLDIERCREATE_STRUCT ) );
|
||||||
if( gSaveBufferBasicPlacement.fDetailedPlacement )
|
if( gSaveBufferBasicPlacement.fDetailedPlacement )
|
||||||
{
|
{
|
||||||
memcpy( &gSaveBufferDetailedPlacement, gpSelected->pDetailedPlacement, sizeof( SOLDIERCREATE_STRUCT ) );
|
// WDS - Clean up inventory handling
|
||||||
|
gSaveBufferDetailedPlacement = *gpSelected->pDetailedPlacement;
|
||||||
}
|
}
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Placement copied." );
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Placement copied." );
|
||||||
}
|
}
|
||||||
@@ -3667,7 +3668,8 @@ void PasteMercPlacement( INT32 iMapIndex )
|
|||||||
//Generate detailed placement information given the temp placement information.
|
//Generate detailed placement information given the temp placement information.
|
||||||
if( gTempBasicPlacement.fDetailedPlacement )
|
if( gTempBasicPlacement.fDetailedPlacement )
|
||||||
{
|
{
|
||||||
memcpy( &gTempDetailedPlacement, &gSaveBufferDetailedPlacement, sizeof( SOLDIERCREATE_STRUCT ) );
|
// WDS - Clean up inventory handling
|
||||||
|
gTempDetailedPlacement = *gSaveBufferDetailedPlacement
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -3684,7 +3686,8 @@ void PasteMercPlacement( INT32 iMapIndex )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
memcpy( &tempDetailedPlacement, &gTempDetailedPlacement, sizeof( SOLDIERCREATE_STRUCT ) );
|
// WDS - Clean up inventory handling
|
||||||
|
tempDetailedPlacement = gTempDetailedPlacement;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Create the soldier, but don't place it yet.
|
//Create the soldier, but don't place it yet.
|
||||||
@@ -3703,14 +3706,16 @@ void PasteMercPlacement( INT32 iMapIndex )
|
|||||||
//allocate memory for new static detailed placement
|
//allocate memory for new static detailed placement
|
||||||
gTempBasicPlacement.fDetailedPlacement = TRUE;
|
gTempBasicPlacement.fDetailedPlacement = TRUE;
|
||||||
gTempBasicPlacement.fPriorityExistance = gSaveBufferBasicPlacement.fPriorityExistance;
|
gTempBasicPlacement.fPriorityExistance = gSaveBufferBasicPlacement.fPriorityExistance;
|
||||||
pNode->pDetailedPlacement = (SOLDIERCREATE_STRUCT*)MemAlloc( sizeof( SOLDIERCREATE_STRUCT ) );
|
// WDS - Clean up inventory handling
|
||||||
|
pNode->pDetailedPlacement = new (MemAlloc( SIZEOF_SOLDIERCREATE_STRUCT )) SOLDIERCREATE_STRUCT;
|
||||||
if( !pNode->pDetailedPlacement )
|
if( !pNode->pDetailedPlacement )
|
||||||
{
|
{
|
||||||
AssertMsg( 0, "Failed to allocate memory for new detailed placement in PasteMercPlacement." );
|
AssertMsg( 0, "Failed to allocate memory for new detailed placement in PasteMercPlacement." );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//copy the file information from temp var to node in list.
|
//copy the file information from temp var to node in list.
|
||||||
memcpy( pNode->pDetailedPlacement, &gSaveBufferDetailedPlacement, sizeof( SOLDIERCREATE_STRUCT ) );
|
// WDS - Clean up inventory handling
|
||||||
|
*pNode->pDetailedPlacement = gSaveBufferDetailedPlacement;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Add the soldier to physically appear on the map now.
|
//Add the soldier to physically appear on the map now.
|
||||||
|
|||||||
@@ -2998,8 +2998,9 @@ void SetupItemDetailsMode( BOOLEAN fAllowRecursion )
|
|||||||
}
|
}
|
||||||
if( basic.fDetailedPlacement )
|
if( basic.fDetailedPlacement )
|
||||||
{ //skip static priority placement
|
{ //skip static priority placement
|
||||||
FileRead( hfile, &priority, sizeof( SOLDIERCREATE_STRUCT ), &uiNumBytesRead );
|
// WDS - Clean up inventory handling
|
||||||
if( uiNumBytesRead != sizeof( SOLDIERCREATE_STRUCT ) )
|
FileRead( hfile, &priority, SIZEOF_SOLDIERCREATE_STRUCT, &uiNumBytesRead );
|
||||||
|
if( uiNumBytesRead != SIZEOF_SOLDIERCREATE_STRUCT )
|
||||||
{ //Invalid situation.
|
{ //Invalid situation.
|
||||||
FileClose( hfile );
|
FileClose( hfile );
|
||||||
return;
|
return;
|
||||||
@@ -3062,8 +3063,9 @@ void SetupItemDetailsMode( BOOLEAN fAllowRecursion )
|
|||||||
}
|
}
|
||||||
if( basic.fDetailedPlacement )
|
if( basic.fDetailedPlacement )
|
||||||
{ //skip static priority placement
|
{ //skip static priority placement
|
||||||
FileRead( hfile, &priority, sizeof( SOLDIERCREATE_STRUCT ), &uiNumBytesRead );
|
// WDS - Clean up inventory handling
|
||||||
if( uiNumBytesRead != sizeof( SOLDIERCREATE_STRUCT ) )
|
FileRead( hfile, &priority, SIZEOF_SOLDIERCREATE_STRUCT, &uiNumBytesRead );
|
||||||
|
if( uiNumBytesRead != SIZEOF_SOLDIERCREATE_STRUCT )
|
||||||
{ //Invalid situation.
|
{ //Invalid situation.
|
||||||
FileClose( hfile );
|
FileClose( hfile );
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user