mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
bug fixes from Overhaul:
- CTD when someone fell off the west side of a building - Assertion failure when Skyrider leaves a sector where a merc cannot be woken up - Boxing fixes: Opponent no longer "seeks cover", ie jumps back out of the ring; no longer will pick up a gun from the ground while boxing - Disappearing corpses (and possibly items) when cursor hovers over a square on the rooftop; also fixes a "write to freed memory" heap check git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@867 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+1
-1
@@ -23,7 +23,7 @@ wchar_t zVersionLabel[256] = { L"Beta v. 0.98" };
|
|||||||
#else
|
#else
|
||||||
|
|
||||||
//RELEASE BUILD VERSION
|
//RELEASE BUILD VERSION
|
||||||
wchar_t zVersionLabel[256] = { L"Release v1.13.861" };
|
wchar_t zVersionLabel[256] = { L"Release v1.13.867" };
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
+1
-1
@@ -546,7 +546,7 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="libexpatMT.lib winmm.lib smackw32.lib mss32.lib fmodvc.lib"
|
AdditionalDependencies="libexpatMT.lib winmm.lib smackw32.lib mss32.lib fmodvc.lib"
|
||||||
OutputFile="D:\games\Jagged Alliance 2 v1.13\JA2 v1.13.861_EN.exe"
|
OutputFile="D:\games\Jagged Alliance 2 v1.13\JA2 v1.13.867_EN.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SuppressStartupBanner="TRUE"
|
SuppressStartupBanner="TRUE"
|
||||||
AdditionalLibraryDirectories=".\..\..\Standard Gaming Platform\"
|
AdditionalLibraryDirectories=".\..\..\Standard Gaming Platform\"
|
||||||
|
|||||||
@@ -2638,12 +2638,19 @@ void RemovePGroup( GROUP *pGroup )
|
|||||||
|
|
||||||
uniqueIDMask[ index ] -= mask;
|
uniqueIDMask[ index ] -= mask;
|
||||||
|
|
||||||
|
if (gpBattleGroup == pGroup) {
|
||||||
|
gpBattleGroup = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
MemFree( pGroup );
|
MemFree( pGroup );
|
||||||
pGroup = NULL;
|
pGroup = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RemoveAllGroups()
|
void RemoveAllGroups()
|
||||||
{
|
{
|
||||||
|
// Since we are removing all groups, clear the gpBattleGroup
|
||||||
|
gpBattleGroup = NULL;
|
||||||
|
|
||||||
gfRemovingAllGroups = TRUE;
|
gfRemovingAllGroups = TRUE;
|
||||||
while( gpGroupList )
|
while( gpGroupList )
|
||||||
{
|
{
|
||||||
@@ -3253,14 +3260,14 @@ BOOLEAN PlayersBetweenTheseSectors( INT16 sSource, INT16 sDest, INT32 *iCountEnt
|
|||||||
|
|
||||||
if( gpBattleGroup )
|
if( gpBattleGroup )
|
||||||
{
|
{
|
||||||
Assert( gfPreBattleInterfaceActive );
|
// Assert( gfPreBattleInterfaceActive );
|
||||||
sBattleSector = (INT16)SECTOR( gpBattleGroup->ubSectorX, gpBattleGroup->ubSectorY );
|
sBattleSector = (INT16)SECTOR( gpBattleGroup->ubSectorX, gpBattleGroup->ubSectorY );
|
||||||
}
|
}
|
||||||
|
|
||||||
// debug only
|
// debug only
|
||||||
if ( gfDisplayPotentialRetreatPaths == TRUE )
|
if ( gfDisplayPotentialRetreatPaths == TRUE )
|
||||||
{
|
{
|
||||||
Assert( gfPreBattleInterfaceActive );
|
// Assert( gfPreBattleInterfaceActive );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -12322,11 +12322,10 @@ void HandleNewDestConfirmation( INT16 sMapX, INT16 sMapY )
|
|||||||
// tell player the route was CONFIRMED
|
// tell player the route was CONFIRMED
|
||||||
// NOTE: We don't this this for the helicopter any more, since it clashes with Skyrider's own confirmation msg
|
// NOTE: We don't this this for the helicopter any more, since it clashes with Skyrider's own confirmation msg
|
||||||
MapScreenMessage( FONT_MCOLOR_LTYELLOW, MSG_MAP_UI_POSITION_MIDDLE, pMapPlotStrings[ 1 ] );
|
MapScreenMessage( FONT_MCOLOR_LTYELLOW, MSG_MAP_UI_POSITION_MIDDLE, pMapPlotStrings[ 1 ] );
|
||||||
|
|
||||||
|
// wake up anybody who needs to be awake to travel
|
||||||
|
WakeUpAnySleepingSelectedMercsOnFootOrDriving();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// wake up anybody who needs to be awake to travel
|
|
||||||
WakeUpAnySleepingSelectedMercsOnFootOrDriving();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -554,6 +554,12 @@ INT16 FindBestNearbyCover(SOLDIERTYPE *pSoldier, INT32 morale, INT32 *piPercentB
|
|||||||
UINT8 ubLightPercentDifference;
|
UINT8 ubLightPercentDifference;
|
||||||
BOOLEAN fNight;
|
BOOLEAN fNight;
|
||||||
|
|
||||||
|
// There's no cover when boxing!
|
||||||
|
if (gTacticalStatus.bBoxingState == BOXING)
|
||||||
|
{
|
||||||
|
return (NOWHERE);
|
||||||
|
}
|
||||||
|
|
||||||
if ( gbWorldSectorZ > 0 )
|
if ( gbWorldSectorZ > 0 )
|
||||||
{
|
{
|
||||||
fNight = FALSE;
|
fNight = FALSE;
|
||||||
@@ -1638,6 +1644,12 @@ INT8 SearchForItems( SOLDIERTYPE * pSoldier, INT8 bReason, UINT16 usItem )
|
|||||||
iTempValue = -1;
|
iTempValue = -1;
|
||||||
iItemIndex = iBestItemIndex = -1;
|
iItemIndex = iBestItemIndex = -1;
|
||||||
|
|
||||||
|
// No fair picking up weapons while boxing!
|
||||||
|
if (gTacticalStatus.bBoxingState == BOXING)
|
||||||
|
{
|
||||||
|
return AI_ACTION_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
if (pSoldier->bActionPoints < AP_PICKUP_ITEM)
|
if (pSoldier->bActionPoints < AP_PICKUP_ITEM)
|
||||||
{
|
{
|
||||||
return( AI_ACTION_NONE );
|
return( AI_ACTION_NONE );
|
||||||
|
|||||||
+14
-1
@@ -982,6 +982,8 @@ UINT8 GetLandLevelDepth( UINT32 iMapIndex )
|
|||||||
BOOLEAN GetSubIndexFromTileIndex( UINT16 usTileIndex, UINT16 *pusSubIndex )
|
BOOLEAN GetSubIndexFromTileIndex( UINT16 usTileIndex, UINT16 *pusSubIndex )
|
||||||
{
|
{
|
||||||
UINT32 uiType=0;
|
UINT32 uiType=0;
|
||||||
|
*pusSubIndex = 0xffff;
|
||||||
|
|
||||||
if( GetTileType( usTileIndex, &uiType ) )
|
if( GetTileType( usTileIndex, &uiType ) )
|
||||||
{
|
{
|
||||||
*pusSubIndex = usTileIndex - gTileTypeStartIndex[ uiType ] + 1;
|
*pusSubIndex = usTileIndex - gTileTypeStartIndex[ uiType ] + 1;
|
||||||
@@ -995,6 +997,8 @@ BOOLEAN GetTypeSubIndexFromTileIndex( UINT32 uiCheckType, UINT16 usIndex, UINT16
|
|||||||
|
|
||||||
// Tile database is zero-based, Type indecies are 1-based!
|
// Tile database is zero-based, Type indecies are 1-based!
|
||||||
|
|
||||||
|
*pusSubIndex = 0xffff;
|
||||||
|
|
||||||
CHECKF ( uiCheckType < NUMBEROFTILETYPES );
|
CHECKF ( uiCheckType < NUMBEROFTILETYPES );
|
||||||
|
|
||||||
*pusSubIndex = usIndex - gTileTypeStartIndex[ uiCheckType ] + 1;
|
*pusSubIndex = usIndex - gTileTypeStartIndex[ uiCheckType ] + 1;
|
||||||
@@ -1004,6 +1008,7 @@ BOOLEAN GetTypeSubIndexFromTileIndex( UINT32 uiCheckType, UINT16 usIndex, UINT16
|
|||||||
|
|
||||||
BOOLEAN GetTypeSubIndexFromTileIndexChar( UINT32 uiCheckType, UINT16 usIndex, UINT8 *pubSubIndex )
|
BOOLEAN GetTypeSubIndexFromTileIndexChar( UINT32 uiCheckType, UINT16 usIndex, UINT8 *pubSubIndex )
|
||||||
{
|
{
|
||||||
|
*pubSubIndex = 0xff;
|
||||||
|
|
||||||
// Tile database is zero-based, Type indecies are 1-based!
|
// Tile database is zero-based, Type indecies are 1-based!
|
||||||
|
|
||||||
@@ -1018,6 +1023,8 @@ BOOLEAN GetTileIndexFromTypeSubIndex( UINT32 uiCheckType, UINT16 usSubIndex, UIN
|
|||||||
{
|
{
|
||||||
// Tile database is zero-based, Type indecies are 1-based!
|
// Tile database is zero-based, Type indecies are 1-based!
|
||||||
|
|
||||||
|
*pusTileIndex = 0xffff;
|
||||||
|
|
||||||
CHECKF ( uiCheckType < NUMBEROFTILETYPES );
|
CHECKF ( uiCheckType < NUMBEROFTILETYPES );
|
||||||
|
|
||||||
*pusTileIndex = usSubIndex + gTileTypeStartIndex[ uiCheckType ] - 1;
|
*pusTileIndex = usSubIndex + gTileTypeStartIndex[ uiCheckType ] - 1;
|
||||||
@@ -1045,6 +1052,8 @@ BOOLEAN GetTileType( UINT16 usIndex, UINT32 *puiType )
|
|||||||
{
|
{
|
||||||
TILE_ELEMENT TileElem;
|
TILE_ELEMENT TileElem;
|
||||||
|
|
||||||
|
*puiType = 0xffffffff;
|
||||||
|
|
||||||
CHECKF( usIndex != NO_TILE );
|
CHECKF( usIndex != NO_TILE );
|
||||||
CHECKF( usIndex < NUMBEROFTILES ); //lal bugfix
|
CHECKF( usIndex < NUMBEROFTILES ); //lal bugfix
|
||||||
|
|
||||||
@@ -1060,6 +1069,8 @@ BOOLEAN GetTileFlags( UINT16 usIndex, UINT32 *puiFlags )
|
|||||||
{
|
{
|
||||||
TILE_ELEMENT TileElem;
|
TILE_ELEMENT TileElem;
|
||||||
|
|
||||||
|
*puiFlags = 0;
|
||||||
|
|
||||||
CHECKF( usIndex != NO_TILE );
|
CHECKF( usIndex != NO_TILE );
|
||||||
CHECKF( usIndex < NUMBEROFTILES );
|
CHECKF( usIndex < NUMBEROFTILES );
|
||||||
|
|
||||||
@@ -1195,8 +1206,10 @@ BOOLEAN AnyLowerLand( UINT32 iMapIndex, UINT32 uiSrcType, UINT8 *pubLastLevel )
|
|||||||
|
|
||||||
BOOLEAN GetWallOrientation( UINT16 usIndex, UINT16 *pusWallOrientation )
|
BOOLEAN GetWallOrientation( UINT16 usIndex, UINT16 *pusWallOrientation )
|
||||||
{
|
{
|
||||||
TILE_ELEMENT TileElem;
|
TILE_ELEMENT TileElem;
|
||||||
|
|
||||||
|
*pusWallOrientation = 0xffff;
|
||||||
|
|
||||||
CHECKF( usIndex != NO_TILE );
|
CHECKF( usIndex != NO_TILE );
|
||||||
CHECKF( usIndex < NUMBEROFTILES ); //lal bugfix
|
CHECKF( usIndex < NUMBEROFTILES ); //lal bugfix
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user