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:
lalien
2007-05-08 14:42:28 +00:00
parent 91016c3d6c
commit 30cc546c09
7 changed files with 40 additions and 9 deletions
+1 -1
View File
@@ -23,7 +23,7 @@ wchar_t zVersionLabel[256] = { L"Beta v. 0.98" };
#else
//RELEASE BUILD VERSION
wchar_t zVersionLabel[256] = { L"Release v1.13.861" };
wchar_t zVersionLabel[256] = { L"Release v1.13.867" };
#endif
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -546,7 +546,7 @@
<Tool
Name="VCLinkerTool"
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"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories=".\..\..\Standard Gaming Platform\"
+9 -2
View File
@@ -2638,12 +2638,19 @@ void RemovePGroup( GROUP *pGroup )
uniqueIDMask[ index ] -= mask;
if (gpBattleGroup == pGroup) {
gpBattleGroup = NULL;
}
MemFree( pGroup );
pGroup = NULL;
}
void RemoveAllGroups()
{
// Since we are removing all groups, clear the gpBattleGroup
gpBattleGroup = NULL;
gfRemovingAllGroups = TRUE;
while( gpGroupList )
{
@@ -3253,14 +3260,14 @@ BOOLEAN PlayersBetweenTheseSectors( INT16 sSource, INT16 sDest, INT32 *iCountEnt
if( gpBattleGroup )
{
Assert( gfPreBattleInterfaceActive );
// Assert( gfPreBattleInterfaceActive );
sBattleSector = (INT16)SECTOR( gpBattleGroup->ubSectorX, gpBattleGroup->ubSectorY );
}
// debug only
if ( gfDisplayPotentialRetreatPaths == TRUE )
{
Assert( gfPreBattleInterfaceActive );
// Assert( gfPreBattleInterfaceActive );
}
+3 -4
View File
@@ -12322,11 +12322,10 @@ void HandleNewDestConfirmation( INT16 sMapX, INT16 sMapY )
// 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
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();
}
+12
View File
@@ -554,6 +554,12 @@ INT16 FindBestNearbyCover(SOLDIERTYPE *pSoldier, INT32 morale, INT32 *piPercentB
UINT8 ubLightPercentDifference;
BOOLEAN fNight;
// There's no cover when boxing!
if (gTacticalStatus.bBoxingState == BOXING)
{
return (NOWHERE);
}
if ( gbWorldSectorZ > 0 )
{
fNight = FALSE;
@@ -1638,6 +1644,12 @@ INT8 SearchForItems( SOLDIERTYPE * pSoldier, INT8 bReason, UINT16 usItem )
iTempValue = -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)
{
return( AI_ACTION_NONE );
+14 -1
View File
@@ -982,6 +982,8 @@ UINT8 GetLandLevelDepth( UINT32 iMapIndex )
BOOLEAN GetSubIndexFromTileIndex( UINT16 usTileIndex, UINT16 *pusSubIndex )
{
UINT32 uiType=0;
*pusSubIndex = 0xffff;
if( GetTileType( usTileIndex, &uiType ) )
{
*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!
*pusSubIndex = 0xffff;
CHECKF ( uiCheckType < NUMBEROFTILETYPES );
*pusSubIndex = usIndex - gTileTypeStartIndex[ uiCheckType ] + 1;
@@ -1004,6 +1008,7 @@ BOOLEAN GetTypeSubIndexFromTileIndex( UINT32 uiCheckType, UINT16 usIndex, UINT16
BOOLEAN GetTypeSubIndexFromTileIndexChar( UINT32 uiCheckType, UINT16 usIndex, UINT8 *pubSubIndex )
{
*pubSubIndex = 0xff;
// 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!
*pusTileIndex = 0xffff;
CHECKF ( uiCheckType < NUMBEROFTILETYPES );
*pusTileIndex = usSubIndex + gTileTypeStartIndex[ uiCheckType ] - 1;
@@ -1045,6 +1052,8 @@ BOOLEAN GetTileType( UINT16 usIndex, UINT32 *puiType )
{
TILE_ELEMENT TileElem;
*puiType = 0xffffffff;
CHECKF( usIndex != NO_TILE );
CHECKF( usIndex < NUMBEROFTILES ); //lal bugfix
@@ -1060,6 +1069,8 @@ BOOLEAN GetTileFlags( UINT16 usIndex, UINT32 *puiFlags )
{
TILE_ELEMENT TileElem;
*puiFlags = 0;
CHECKF( usIndex != NO_TILE );
CHECKF( usIndex < NUMBEROFTILES );
@@ -1195,8 +1206,10 @@ BOOLEAN AnyLowerLand( UINT32 iMapIndex, UINT32 uiSrcType, UINT8 *pubLastLevel )
BOOLEAN GetWallOrientation( UINT16 usIndex, UINT16 *pusWallOrientation )
{
TILE_ELEMENT TileElem;
TILE_ELEMENT TileElem;
*pusWallOrientation = 0xffff;
CHECKF( usIndex != NO_TILE );
CHECKF( usIndex < NUMBEROFTILES ); //lal bugfix