mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
Merged revision(s) 7082 from branches/ja2_source_official_2014:
Fix: huge amounts of memory are allocated for AStar pathing but are never used. This also causes a significant slowdown every time a turn ends git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7083 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+9
-9
@@ -15,9 +15,9 @@
|
|||||||
#ifdef JA2EDITOR
|
#ifdef JA2EDITOR
|
||||||
|
|
||||||
#ifdef JA2UB
|
#ifdef JA2UB
|
||||||
CHAR16 zVersionLabel[256] = { L"Unfinished Business - Map Editor v1.13.7057 (Development Build)" };
|
CHAR16 zVersionLabel[256] = { L"Unfinished Business - Map Editor v1.13.7083 (Development Build)" };
|
||||||
#else
|
#else
|
||||||
CHAR16 zVersionLabel[256] = { L"Map Editor v1.13.7057 (Development Build)" };
|
CHAR16 zVersionLabel[256] = { L"Map Editor v1.13.7083 (Development Build)" };
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// ------------------------------
|
// ------------------------------
|
||||||
@@ -27,11 +27,11 @@
|
|||||||
|
|
||||||
//DEBUG BUILD VERSION
|
//DEBUG BUILD VERSION
|
||||||
#ifdef JA2UB
|
#ifdef JA2UB
|
||||||
CHAR16 zVersionLabel[256] = { L"Debug: Unfinished Business - v1.13.7057 (Development Build)" };
|
CHAR16 zVersionLabel[256] = { L"Debug: Unfinished Business - v1.13.7083 (Development Build)" };
|
||||||
#elif defined (JA113DEMO)
|
#elif defined (JA113DEMO)
|
||||||
CHAR16 zVersionLabel[256] = { L"Debug: JA2 Demo - v1.13.7057 (Development Build)" };
|
CHAR16 zVersionLabel[256] = { L"Debug: JA2 Demo - v1.13.7083 (Development Build)" };
|
||||||
#else
|
#else
|
||||||
CHAR16 zVersionLabel[256] = { L"Debug: v1.13.7057 (Development Build)" };
|
CHAR16 zVersionLabel[256] = { L"Debug: v1.13.7083 (Development Build)" };
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#elif defined CRIPPLED_VERSION
|
#elif defined CRIPPLED_VERSION
|
||||||
@@ -46,16 +46,16 @@
|
|||||||
|
|
||||||
//RELEASE BUILD VERSION
|
//RELEASE BUILD VERSION
|
||||||
#ifdef JA2UB
|
#ifdef JA2UB
|
||||||
CHAR16 zVersionLabel[256] = { L"Release Unfinished Business - v1.13.7057 (Development Build)" };
|
CHAR16 zVersionLabel[256] = { L"Release Unfinished Business - v1.13.7083 (Development Build)" };
|
||||||
#elif defined (JA113DEMO)
|
#elif defined (JA113DEMO)
|
||||||
CHAR16 zVersionLabel[256] = { L"Release JA2 Demo - v1.13.7057 (Development Build)" };
|
CHAR16 zVersionLabel[256] = { L"Release JA2 Demo - v1.13.7083 (Development Build)" };
|
||||||
#else
|
#else
|
||||||
CHAR16 zVersionLabel[256] = { L"Release v1.13.7057 (Development Build)" };
|
CHAR16 zVersionLabel[256] = { L"Release v1.13.7083 (Development Build)" };
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
CHAR8 czVersionNumber[16] = { "Build 14.03.12" }; //YY.MM.DD
|
CHAR8 czVersionNumber[16] = { "Build 14.03.18" }; //YY.MM.DD
|
||||||
CHAR16 zTrackingNumber[16] = { L"Z" };
|
CHAR16 zTrackingNumber[16] = { L"Z" };
|
||||||
|
|
||||||
// SAVE_GAME_VERSION is defined in header, change it there
|
// SAVE_GAME_VERSION is defined in header, change it there
|
||||||
|
|||||||
+105
-177
@@ -532,12 +532,11 @@ void PreventFromTheFreezingBug(SOLDIERTYPE* pSoldier)
|
|||||||
// MAIN TACTICAL UI HANDLER
|
// MAIN TACTICAL UI HANDLER
|
||||||
UINT32 HandleTacticalUI( void )
|
UINT32 HandleTacticalUI( void )
|
||||||
{
|
{
|
||||||
UINT32 ReturnVal = GAME_SCREEN;
|
UINT32 ReturnVal = GAME_SCREEN;
|
||||||
UINT32 uiNewEvent;
|
UINT32 uiNewEvent;
|
||||||
INT32 usMapPos;
|
INT32 usMapPos;
|
||||||
LEVELNODE *pIntTile;
|
LEVELNODE *pIntTile;
|
||||||
static LEVELNODE *pOldIntTile = NULL;
|
static LEVELNODE *pOldIntTile = NULL;
|
||||||
|
|
||||||
|
|
||||||
// RESET FLAGS
|
// RESET FLAGS
|
||||||
gfUIDisplayActionPoints = FALSE;
|
gfUIDisplayActionPoints = FALSE;
|
||||||
@@ -630,7 +629,6 @@ UINT32 HandleTacticalUI( void )
|
|||||||
GetRTMouseButtonInput( &uiNewEvent );
|
GetRTMouseButtonInput( &uiNewEvent );
|
||||||
// FROM KEYBOARD
|
// FROM KEYBOARD
|
||||||
GetKeyboardInput( &uiNewEvent );
|
GetKeyboardInput( &uiNewEvent );
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -643,8 +641,6 @@ UINT32 HandleTacticalUI( void )
|
|||||||
// FROM KEYBOARD
|
// FROM KEYBOARD
|
||||||
GetKeyboardInput( &uiNewEvent );
|
GetKeyboardInput( &uiNewEvent );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -681,10 +677,8 @@ UINT32 HandleTacticalUI( void )
|
|||||||
{
|
{
|
||||||
gfUISelectiveTargetFound = TRUE;
|
gfUISelectiveTargetFound = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Check if current event has changed and clear event if so, to prepare it for execution
|
// Check if current event has changed and clear event if so, to prepare it for execution
|
||||||
// Clearing it does things like set first time flag, param variables, etc
|
// Clearing it does things like set first time flag, param variables, etc
|
||||||
if ( uiNewEvent != guiOldEvent )
|
if ( uiNewEvent != guiOldEvent )
|
||||||
@@ -739,7 +733,6 @@ UINT32 HandleTacticalUI( void )
|
|||||||
ErasePath( TRUE );
|
ErasePath( TRUE );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if menu event is done and if so set to privious mode
|
// Check if menu event is done and if so set to privious mode
|
||||||
@@ -777,7 +770,6 @@ UINT32 HandleTacticalUI( void )
|
|||||||
gfUIDisplayActionPoints = FALSE;
|
gfUIDisplayActionPoints = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Will set the cursor but only if different
|
// Will set the cursor but only if different
|
||||||
SetUIMouseCursor( );
|
SetUIMouseCursor( );
|
||||||
|
|
||||||
@@ -791,7 +783,6 @@ UINT32 HandleTacticalUI( void )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return( ReturnVal );
|
return( ReturnVal );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -804,7 +795,6 @@ void SetUIMouseCursor( )
|
|||||||
static INT32 sOldExitGridNo = NOWHERE;
|
static INT32 sOldExitGridNo = NOWHERE;
|
||||||
static BOOLEAN fOkForExit = FALSE;
|
static BOOLEAN fOkForExit = FALSE;
|
||||||
|
|
||||||
|
|
||||||
// Check if we moved from confirm mode on exit arrows
|
// Check if we moved from confirm mode on exit arrows
|
||||||
// If not in move mode, return!
|
// If not in move mode, return!
|
||||||
if ( gCurrentUIMode == MOVE_MODE )
|
if ( gCurrentUIMode == MOVE_MODE )
|
||||||
@@ -819,7 +809,6 @@ void SetUIMouseCursor( )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ( gfUIShowExitEast )
|
if ( gfUIShowExitEast )
|
||||||
{
|
{
|
||||||
gfUIDisplayActionPoints = FALSE;
|
gfUIDisplayActionPoints = FALSE;
|
||||||
@@ -901,7 +890,6 @@ void SetUIMouseCursor( )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ( gfUIShowExitSouth )
|
if ( gfUIShowExitSouth )
|
||||||
{
|
{
|
||||||
gfUIDisplayActionPoints = FALSE;
|
gfUIDisplayActionPoints = FALSE;
|
||||||
@@ -932,8 +920,7 @@ void SetUIMouseCursor( )
|
|||||||
|
|
||||||
MSYS_DefineRegion( &gViewportRegion, 0, 0 ,gsVIEWPORT_END_X, gsVIEWPORT_WINDOW_END_Y, MSYS_PRIORITY_NORMAL,
|
MSYS_DefineRegion( &gViewportRegion, 0, 0 ,gsVIEWPORT_END_X, gsVIEWPORT_WINDOW_END_Y, MSYS_PRIORITY_NORMAL,
|
||||||
VIDEO_NO_CURSOR, MSYS_NO_CALLBACK, MSYS_NO_CALLBACK );
|
VIDEO_NO_CURSOR, MSYS_NO_CALLBACK, MSYS_NO_CALLBACK );
|
||||||
|
|
||||||
|
|
||||||
// Adjust where we blit our cursor!
|
// Adjust where we blit our cursor!
|
||||||
gsGlobalCursorYOffset = 0;
|
gsGlobalCursorYOffset = 0;
|
||||||
SetCurrentCursorFromDatabase( CURSOR_NORMAL );
|
SetCurrentCursorFromDatabase( CURSOR_NORMAL );
|
||||||
@@ -956,7 +943,6 @@ void SetUIMouseCursor( )
|
|||||||
SetCurrentCursorFromDatabase( gUICursors[ guiNewUICursor ].usFreeCursorName );
|
SetCurrentCursorFromDatabase( gUICursors[ guiNewUICursor ].usFreeCursorName );
|
||||||
|
|
||||||
gfViewPortAdjustedForSouth = TRUE;
|
gfViewPortAdjustedForSouth = TRUE;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -970,7 +956,6 @@ void SetUIMouseCursor( )
|
|||||||
MSYS_DefineRegion( &gViewportRegion, 0, 0 ,gsVIEWPORT_END_X, gsVIEWPORT_WINDOW_END_Y, MSYS_PRIORITY_NORMAL,
|
MSYS_DefineRegion( &gViewportRegion, 0, 0 ,gsVIEWPORT_END_X, gsVIEWPORT_WINDOW_END_Y, MSYS_PRIORITY_NORMAL,
|
||||||
VIDEO_NO_CURSOR, MSYS_NO_CALLBACK, MSYS_NO_CALLBACK );
|
VIDEO_NO_CURSOR, MSYS_NO_CALLBACK, MSYS_NO_CALLBACK );
|
||||||
|
|
||||||
|
|
||||||
// Adjust where we blit our cursor!
|
// Adjust where we blit our cursor!
|
||||||
gsGlobalCursorYOffset = 0;
|
gsGlobalCursorYOffset = 0;
|
||||||
SetCurrentCursorFromDatabase( CURSOR_NORMAL );
|
SetCurrentCursorFromDatabase( CURSOR_NORMAL );
|
||||||
@@ -1032,7 +1017,6 @@ void SetUIMouseCursor( )
|
|||||||
{
|
{
|
||||||
sOldExitGridNo = NOWHERE;
|
sOldExitGridNo = NOWHERE;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1081,13 +1065,11 @@ void ClearEvent( UI_EVENT *pUIEvent )
|
|||||||
pUIEvent->fDoneMenu = FALSE;
|
pUIEvent->fDoneMenu = FALSE;
|
||||||
pUIEvent->fFirstTime = TRUE;
|
pUIEvent->fFirstTime = TRUE;
|
||||||
pUIEvent->uiMenuPreviousMode = 0;
|
pUIEvent->uiMenuPreviousMode = 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void EndMenuEvent( UINT32 uiEvent )
|
void EndMenuEvent( UINT32 uiEvent )
|
||||||
{
|
{
|
||||||
gEvents[ uiEvent ].fDoneMenu = TRUE;
|
gEvents[ uiEvent ].fDoneMenu = TRUE;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// HANDLER FUCNTIONS
|
// HANDLER FUCNTIONS
|
||||||
@@ -1108,13 +1090,12 @@ UINT32 UIHandleExit( UI_EVENT *pUIEvent )
|
|||||||
UINT32 UIHandleNewMerc( UI_EVENT *pUIEvent )
|
UINT32 UIHandleNewMerc( UI_EVENT *pUIEvent )
|
||||||
{
|
{
|
||||||
static UINT8 ubTemp = 3;
|
static UINT8 ubTemp = 3;
|
||||||
INT32 usMapPos;
|
INT32 usMapPos;
|
||||||
static INT32 iSoldierCount=0;
|
static INT32 iSoldierCount=0;
|
||||||
MERC_HIRE_STRUCT HireMercStruct;
|
MERC_HIRE_STRUCT HireMercStruct;
|
||||||
INT8 bReturnCode;
|
INT8 bReturnCode;
|
||||||
SOLDIERTYPE *pSoldier;
|
SOLDIERTYPE *pSoldier;
|
||||||
|
|
||||||
|
|
||||||
// Get Grid Corrdinates of mouse
|
// Get Grid Corrdinates of mouse
|
||||||
if( GetMouseMapPos( &usMapPos) )
|
if( GetMouseMapPos( &usMapPos) )
|
||||||
{
|
{
|
||||||
@@ -1204,9 +1185,9 @@ UINT32 UIHandleNewBadMerc( UI_EVENT *pUIEvent )
|
|||||||
{
|
{
|
||||||
switch( pSoldier->ubSoldierClass )
|
switch( pSoldier->ubSoldierClass )
|
||||||
{
|
{
|
||||||
case SOLDIER_CLASS_ADMINISTRATOR: pSector->ubNumAdmins++; pSector->ubAdminsInBattle++; break;
|
case SOLDIER_CLASS_ADMINISTRATOR: pSector->ubNumAdmins++; pSector->ubAdminsInBattle++; break;
|
||||||
case SOLDIER_CLASS_ARMY: pSector->ubNumTroops++; pSector->ubTroopsInBattle++; break;
|
case SOLDIER_CLASS_ARMY: pSector->ubNumTroops++; pSector->ubTroopsInBattle++; break;
|
||||||
case SOLDIER_CLASS_ELITE: pSector->ubNumElites++; pSector->ubElitesInBattle++; break;
|
case SOLDIER_CLASS_ELITE: pSector->ubNumElites++; pSector->ubElitesInBattle++; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1217,23 +1198,22 @@ UINT32 UIHandleNewBadMerc( UI_EVENT *pUIEvent )
|
|||||||
AllTeamsLookForAll( NO_INTERRUPTS );
|
AllTeamsLookForAll( NO_INTERRUPTS );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return( GAME_SCREEN );
|
return( GAME_SCREEN );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
UINT32 UIHandleEnterEditMode( UI_EVENT *pUIEvent )
|
UINT32 UIHandleEnterEditMode( UI_EVENT *pUIEvent )
|
||||||
{
|
{
|
||||||
return( EDIT_SCREEN );
|
return( EDIT_SCREEN );
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT32 UIHandleEnterPalEditMode( UI_EVENT *pUIEvent )
|
UINT32 UIHandleEnterPalEditMode( UI_EVENT *pUIEvent )
|
||||||
{
|
{
|
||||||
return( PALEDIT_SCREEN );
|
return( PALEDIT_SCREEN );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
UINT32 UIHandleEndTurn( UI_EVENT *pUIEvent )
|
UINT32 UIHandleEndTurn( UI_EVENT *pUIEvent )
|
||||||
{
|
{
|
||||||
CHAR16 zString[128];
|
CHAR16 zString[128];
|
||||||
@@ -1262,7 +1242,7 @@ UINT32 UIHandleEndTurn( UI_EVENT *pUIEvent )
|
|||||||
guiPreviousOptionScreen = guiCurrentScreen;
|
guiPreviousOptionScreen = guiCurrentScreen;
|
||||||
|
|
||||||
//increment end turn number
|
//increment end turn number
|
||||||
guiLastSaveGameNum++;
|
++guiLastSaveGameNum;
|
||||||
if( guiLastSaveGameNum == 2 )
|
if( guiLastSaveGameNum == 2 )
|
||||||
guiLastSaveGameNum = 0;
|
guiLastSaveGameNum = 0;
|
||||||
|
|
||||||
@@ -1270,65 +1250,75 @@ UINT32 UIHandleEndTurn( UI_EVENT *pUIEvent )
|
|||||||
SaveGame(SAVE__END_TURN_NUM, zString );
|
SaveGame(SAVE__END_TURN_NUM, zString );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Flugente: this stuff is only ever used in AStar pathing and is a unnecessary waste of resources otherwise, so I'm putting an end to this
|
||||||
|
#ifdef USE_ASTAR_PATHS
|
||||||
////ddd îïòèìèçàöèÿ äëÿ õîäà äðàíèêîâ
|
////ddd îïòèìèçàöèÿ äëÿ õîäà äðàíèêîâ
|
||||||
if ( (gTacticalStatus.uiFlags & TURNBASED) && (gTacticalStatus.uiFlags & INCOMBAT ) )
|
if ( (gTacticalStatus.uiFlags & TURNBASED) && (gTacticalStatus.uiFlags & INCOMBAT ) )
|
||||||
{
|
{
|
||||||
memset( gubWorldTileInLight, FALSE, sizeof( gubWorldTileInLight ) );
|
memset( gubWorldTileInLight, FALSE, sizeof( gubWorldTileInLight ) );
|
||||||
memset( gubIsCorpseThere, FALSE, sizeof( gubIsCorpseThere ) );
|
memset( gubIsCorpseThere, FALSE, sizeof( gubIsCorpseThere ) );
|
||||||
memset( gubMerkCanSeeThisTile, FALSE, sizeof( gubMerkCanSeeThisTile ) );
|
memset( gubMerkCanSeeThisTile, FALSE, sizeof( gubMerkCanSeeThisTile ) );
|
||||||
|
|
||||||
//ðàçâåðòêà öèêëà. ïðè èçìåíåíèè WORLD_MAX íà äð.çíà÷. íåîáõîäèìî áóäåò ïîä÷èùàòü õâîñòû! èáî îïàñíûé êîä!!! ;)
|
//ðàçâåðòêà öèêëà. ïðè èçìåíåíèè WORLD_MAX íà äð.çíà÷. íåîáõîäèìî áóäåò ïîä÷èùàòü õâîñòû! èáî îïàñíûé êîä!!! ;)
|
||||||
|
|
||||||
// WANNE: We had a custom user map (Tixa, J9), where the following loop caused an unhandled exception.
|
// WANNE: We had a custom user map (Tixa, J9), where the following loop caused an unhandled exception.
|
||||||
// The crash occurd at ~index 16000 when calling the method IsCorpseAtGridNo() ...
|
// The crash occurd at ~index 16000 when calling the method IsCorpseAtGridNo() ...
|
||||||
// I don't know what causes it ...
|
// I don't know what causes it ...
|
||||||
// Just try/catch (ugly, but works).
|
// Just try/catch (ugly, but works).
|
||||||
__try
|
__try
|
||||||
{
|
{
|
||||||
for(UINT32 i=0; i<(UINT32)WORLD_MAX ;i+=4)
|
for(UINT32 i=0; i<(UINT32)WORLD_MAX; i+=4)
|
||||||
{
|
{
|
||||||
gubWorldTileInLight[i] = InLightAtNight(i, gpWorldLevelData[ i ].sHeight);
|
gubWorldTileInLight[i] = InLightAtNight(i, gpWorldLevelData[ i ].sHeight);
|
||||||
gubIsCorpseThere[i] = IsCorpseAtGridNo( i, gpWorldLevelData[ i ].sHeight );
|
gubIsCorpseThere[i] = IsCorpseAtGridNo( i, gpWorldLevelData[ i ].sHeight );
|
||||||
gubWorldTileInLight[i+1] = InLightAtNight(i+1, gpWorldLevelData[ i+1 ].sHeight);
|
gubWorldTileInLight[i+1] = InLightAtNight(i+1, gpWorldLevelData[ i+1 ].sHeight);
|
||||||
gubIsCorpseThere[i+1] = IsCorpseAtGridNo( i+1, gpWorldLevelData[ i+1 ].sHeight );
|
gubIsCorpseThere[i+1] = IsCorpseAtGridNo( i+1, gpWorldLevelData[ i+1 ].sHeight );
|
||||||
gubWorldTileInLight[i+2] = InLightAtNight(i+2, gpWorldLevelData[ i+2 ].sHeight);
|
gubWorldTileInLight[i+2] = InLightAtNight(i+2, gpWorldLevelData[ i+2 ].sHeight);
|
||||||
gubIsCorpseThere[i+2] = IsCorpseAtGridNo( i+2, gpWorldLevelData[ i+2 ].sHeight );
|
gubIsCorpseThere[i+2] = IsCorpseAtGridNo( i+2, gpWorldLevelData[ i+2 ].sHeight );
|
||||||
gubWorldTileInLight[i+3] = InLightAtNight(i+3, gpWorldLevelData[ i+3 ].sHeight);
|
gubWorldTileInLight[i+3] = InLightAtNight(i+3, gpWorldLevelData[ i+3 ].sHeight);
|
||||||
gubIsCorpseThere[i+3] = IsCorpseAtGridNo( i+3, gpWorldLevelData[ i+3 ].sHeight );
|
gubIsCorpseThere[i+3] = IsCorpseAtGridNo( i+3, gpWorldLevelData[ i+3 ].sHeight );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
__except( EXCEPTION_EXECUTE_HANDLER )
|
__except( EXCEPTION_EXECUTE_HANDLER )
|
||||||
{
|
|
||||||
// WANNE: Ignore, so the game can continue ...
|
|
||||||
}
|
|
||||||
|
|
||||||
INT32 tcnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
|
|
||||||
SOLDIERTYPE *tS;
|
|
||||||
|
|
||||||
INT16 sXOffset, sYOffset;
|
|
||||||
INT32 sGridNo;UINT16 usSightLimit=0;
|
|
||||||
|
|
||||||
for ( tS = MercPtrs[ tcnt ]; tcnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; tcnt++,tS++ )
|
|
||||||
if ( tS->stats.bLife >= OKLIFE && tS->sGridNo != NOWHERE && tS->bInSector )
|
|
||||||
{
|
{
|
||||||
//loop through all the gridnos that we are interested in
|
// WANNE: Ignore, so the game can continue ...
|
||||||
for (sYOffset = -30; sYOffset <= 30; sYOffset++)
|
}
|
||||||
for (sXOffset = -30; sXOffset <= 30; sXOffset++)
|
|
||||||
{
|
|
||||||
sGridNo = tS->sGridNo + sXOffset + (MAXCOL * sYOffset);
|
|
||||||
if ( sGridNo <= 0 || sGridNo >= WORLD_MAX )
|
|
||||||
continue;
|
|
||||||
//usSightLimit = tS->GetMaxDistanceVisible(sGridNo, FALSE, CALC_FROM_WANTED_DIR);
|
|
||||||
if(gubMerkCanSeeThisTile[sGridNo]==0)
|
|
||||||
gubMerkCanSeeThisTile[sGridNo]=//SoldierToVirtualSoldierLineOfSightTest( tS, sGridNo, FALSE, ANIM_STAND, TRUE, usSightLimit );
|
|
||||||
SoldierToVirtualSoldierLineOfSightTest( tS, sGridNo, tS->pathing.bLevel,
|
|
||||||
ANIM_STAND, TRUE, CALC_FROM_WANTED_DIR);
|
|
||||||
|
|
||||||
}//fo
|
INT32 tcnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
|
||||||
}//if
|
SOLDIERTYPE *tS;
|
||||||
|
|
||||||
|
INT16 sXOffset, sYOffset;
|
||||||
|
INT32 sGridNo;
|
||||||
|
UINT16 usSightLimit=0;
|
||||||
|
|
||||||
|
for ( tS = MercPtrs[ tcnt ]; tcnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++tcnt, tS++ )
|
||||||
|
{
|
||||||
|
if ( tS->stats.bLife >= OKLIFE && tS->sGridNo != NOWHERE && tS->bInSector )
|
||||||
|
{
|
||||||
|
//loop through all the gridnos that we are interested in
|
||||||
|
for (sYOffset = -30; sYOffset <= 30; ++sYOffset)
|
||||||
|
{
|
||||||
|
for (sXOffset = -30; sXOffset <= 30; ++sXOffset)
|
||||||
|
{
|
||||||
|
sGridNo = tS->sGridNo + sXOffset + (MAXCOL * sYOffset);
|
||||||
|
|
||||||
|
if ( sGridNo <= 0 || sGridNo >= WORLD_MAX )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
//usSightLimit = tS->GetMaxDistanceVisible(sGridNo, FALSE, CALC_FROM_WANTED_DIR);
|
||||||
|
if(gubMerkCanSeeThisTile[sGridNo]==0)
|
||||||
|
{
|
||||||
|
gubMerkCanSeeThisTile[sGridNo]=//SoldierToVirtualSoldierLineOfSightTest( tS, sGridNo, FALSE, ANIM_STAND, TRUE, usSightLimit );
|
||||||
|
SoldierToVirtualSoldierLineOfSightTest( tS, sGridNo, tS->pathing.bLevel, ANIM_STAND, TRUE, CALC_FROM_WANTED_DIR);
|
||||||
|
}
|
||||||
|
}//fo
|
||||||
|
}
|
||||||
|
}//if
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//ddd îïòèìèçàöèÿ äëÿ õîäà äðàíèêîâ**
|
//ddd îïòèìèçàöèÿ äëÿ õîäà äðàíèêîâ**
|
||||||
|
#endif
|
||||||
|
|
||||||
// End our turn!
|
// End our turn!
|
||||||
if (is_server || !is_client)
|
if (is_server || !is_client)
|
||||||
{
|
{
|
||||||
@@ -1336,7 +1326,6 @@ UINT32 UIHandleEndTurn( UI_EVENT *pUIEvent )
|
|||||||
}
|
}
|
||||||
if(!is_server && is_client)
|
if(!is_server && is_client)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (INTERRUPT_QUEUED)
|
if (INTERRUPT_QUEUED)
|
||||||
{
|
{
|
||||||
EndTurn( gbPlayerNum + 1 );//is ending interrupt instead
|
EndTurn( gbPlayerNum + 1 );//is ending interrupt instead
|
||||||
@@ -1539,7 +1528,6 @@ UINT32 UIHandleMOnTerrain( UI_EVENT *pUIEvent )
|
|||||||
fOverItems = FALSE;
|
fOverItems = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ( GetSoldier( &pSoldier, gusSelectedSoldier ) )
|
if ( GetSoldier( &pSoldier, gusSelectedSoldier ) )
|
||||||
{
|
{
|
||||||
if ( GetExitGrid( usMapPos, &ExitGrid ) && pSoldier->pathing.bLevel == 0 )
|
if ( GetExitGrid( usMapPos, &ExitGrid ) && pSoldier->pathing.bLevel == 0 )
|
||||||
@@ -1628,9 +1616,7 @@ UINT32 UIHandleMOnTerrain( UI_EVENT *pUIEvent )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
//if ( fSetCursor && guiNewUICursor != ENTER_VEHICLE_UICURSOR )
|
//if ( fSetCursor && guiNewUICursor != ENTER_VEHICLE_UICURSOR )
|
||||||
if ( fSetCursor && !gfBeginVehicleCursor )
|
if ( fSetCursor && !gfBeginVehicleCursor )
|
||||||
{
|
{
|
||||||
@@ -1645,7 +1631,6 @@ UINT32 UIHandleMovementMenu( UI_EVENT *pUIEvent )
|
|||||||
{
|
{
|
||||||
SOLDIERTYPE *pSoldier;
|
SOLDIERTYPE *pSoldier;
|
||||||
|
|
||||||
|
|
||||||
// Get soldier
|
// Get soldier
|
||||||
if ( !GetSoldier( &pSoldier, gusSelectedSoldier ) )
|
if ( !GetSoldier( &pSoldier, gusSelectedSoldier ) )
|
||||||
{
|
{
|
||||||
@@ -1660,7 +1645,6 @@ UINT32 UIHandleMovementMenu( UI_EVENT *pUIEvent )
|
|||||||
|
|
||||||
// Change cusror to normal
|
// Change cusror to normal
|
||||||
guiNewUICursor = NORMAL_FREEUICURSOR;
|
guiNewUICursor = NORMAL_FREEUICURSOR;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check for done flag
|
// Check for done flag
|
||||||
@@ -1721,14 +1705,12 @@ UINT32 UIHandleMovementMenu( UI_EVENT *pUIEvent )
|
|||||||
|
|
||||||
UIHandleSoldierStanceChange( pSoldier->ubID, ANIM_PRONE );
|
UIHandleSoldierStanceChange( pSoldier->ubID, ANIM_PRONE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
guiPendingOverrideEvent = A_CHANGE_TO_MOVE;
|
guiPendingOverrideEvent = A_CHANGE_TO_MOVE;
|
||||||
|
|
||||||
//pSoldier->usUIMovementMode = (INT8)pUIEvent->uiParams[ 0 ];
|
//pSoldier->usUIMovementMode = (INT8)pUIEvent->uiParams[ 0 ];
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1738,7 +1720,6 @@ UINT32 UIHandleMovementMenu( UI_EVENT *pUIEvent )
|
|||||||
|
|
||||||
UINT32 UIHandlePositionMenu( UI_EVENT *pUIEvent )
|
UINT32 UIHandlePositionMenu( UI_EVENT *pUIEvent )
|
||||||
{
|
{
|
||||||
|
|
||||||
return( GAME_SCREEN );
|
return( GAME_SCREEN );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1791,7 +1772,6 @@ UINT32 UIHandleAOnTerrain( UI_EVENT *pUIEvent )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
guiNewUICursor = GetProperItemCursor( (UINT8)gusSelectedSoldier, pSoldier->inv[ HANDPOS ].usItem, usMapPos, FALSE );
|
guiNewUICursor = GetProperItemCursor( (UINT8)gusSelectedSoldier, pSoldier->inv[ HANDPOS ].usItem, usMapPos, FALSE );
|
||||||
@@ -1821,20 +1801,14 @@ UINT32 UIHandleAOnTerrain( UI_EVENT *pUIEvent )
|
|||||||
|
|
||||||
gUITargetReady = TRUE;
|
gUITargetReady = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gUITargetReady = FALSE;
|
gUITargetReady = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return( GAME_SCREEN );
|
return( GAME_SCREEN );
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1901,7 +1875,6 @@ UINT32 UIHandleCWait( UI_EVENT *pUIEvent )
|
|||||||
|
|
||||||
if ( pInvTile != NULL )
|
if ( pInvTile != NULL )
|
||||||
{
|
{
|
||||||
|
|
||||||
fSetCursor = HandleUIMovementCursor( pSoldier, uiCursorFlags, usMapPos, MOVEUI_TARGET_INTTILES );
|
fSetCursor = HandleUIMovementCursor( pSoldier, uiCursorFlags, usMapPos, MOVEUI_TARGET_INTTILES );
|
||||||
|
|
||||||
//Set UI CURSOR
|
//Set UI CURSOR
|
||||||
@@ -1913,7 +1886,6 @@ UINT32 UIHandleCWait( UI_EVENT *pUIEvent )
|
|||||||
gfUIHandleShowMoveGrid = 2;
|
gfUIHandleShowMoveGrid = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return( GAME_SCREEN );
|
return( GAME_SCREEN );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1934,7 +1906,6 @@ UINT32 UIHandleCWait( UI_EVENT *pUIEvent )
|
|||||||
//DrawUIMovementPath( pSoldier, sMapPos, 0 );
|
//DrawUIMovementPath( pSoldier, sMapPos, 0 );
|
||||||
fSetCursor = HandleUIMovementCursor( pSoldier, uiCursorFlags, usMapPos, 0 );
|
fSetCursor = HandleUIMovementCursor( pSoldier, uiCursorFlags, usMapPos, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return( GAME_SCREEN );
|
return( GAME_SCREEN );
|
||||||
@@ -1980,14 +1951,14 @@ UINT32 UIHandleCMoveMerc( UI_EVENT *pUIEvent )
|
|||||||
{
|
{
|
||||||
if ( OK_CONTROLLABLE_MERC( pSoldier ) && pSoldier->bAssignment == CurrentSquad( ) && !pSoldier->flags.fMercAsleep )
|
if ( OK_CONTROLLABLE_MERC( pSoldier ) && pSoldier->bAssignment == CurrentSquad( ) && !pSoldier->flags.fMercAsleep )
|
||||||
{
|
{
|
||||||
// If we can't be controlled, returninvalid...
|
// If we can't be controlled, returninvalid...
|
||||||
if ( pSoldier->flags.uiStatusFlags & SOLDIER_ROBOT )
|
if ( pSoldier->flags.uiStatusFlags & SOLDIER_ROBOT )
|
||||||
{
|
{
|
||||||
if ( !pSoldier->CanRobotBeControlled( ) )
|
if ( !pSoldier->CanRobotBeControlled( ) )
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pSoldier->AdjustNoAPToFinishMove( FALSE );
|
pSoldier->AdjustNoAPToFinishMove( FALSE );
|
||||||
|
|
||||||
@@ -2006,8 +1977,7 @@ UINT32 UIHandleCMoveMerc( UI_EVENT *pUIEvent )
|
|||||||
|
|
||||||
// Remove any previous actions
|
// Remove any previous actions
|
||||||
pSoldier->aiData.ubPendingAction = NO_PENDING_ACTION;
|
pSoldier->aiData.ubPendingAction = NO_PENDING_ACTION;
|
||||||
|
|
||||||
|
|
||||||
//if ( !( gTacticalStatus.uiFlags & INCOMBAT ) && ( gAnimControl[ pSoldier->usAnimState ].uiFlags & ANIM_MOVING ) )
|
//if ( !( gTacticalStatus.uiFlags & INCOMBAT ) && ( gAnimControl[ pSoldier->usAnimState ].uiFlags & ANIM_MOVING ) )
|
||||||
//{
|
//{
|
||||||
// pSoldier->sRTPendingMovementGridNo = sMapPos;
|
// pSoldier->sRTPendingMovementGridNo = sMapPos;
|
||||||
@@ -2033,7 +2003,6 @@ UINT32 UIHandleCMoveMerc( UI_EVENT *pUIEvent )
|
|||||||
SetConfirmMovementModeCursor( pSoldier, TRUE );
|
SetConfirmMovementModeCursor( pSoldier, TRUE );
|
||||||
|
|
||||||
gfUIAllMoveOn = 0;
|
gfUIAllMoveOn = 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -2061,11 +2030,9 @@ UINT32 UIHandleCMoveMerc( UI_EVENT *pUIEvent )
|
|||||||
{
|
{
|
||||||
pSoldier->usUIMovementMode = pSoldier->GetMoveStateBasedOnStance( gAnimControl[ pSoldier->usAnimState ].ubEndHeight );
|
pSoldier->usUIMovementMode = pSoldier->GetMoveStateBasedOnStance( gAnimControl[ pSoldier->usAnimState ].ubEndHeight );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sDestGridNo = usMapPos;
|
sDestGridNo = usMapPos;
|
||||||
|
|
||||||
|
|
||||||
// Get structure info for in tile!
|
// Get structure info for in tile!
|
||||||
pIntTile = GetCurInteractiveTileGridNoAndStructure( &sIntTileGridNo, &pStructure );
|
pIntTile = GetCurInteractiveTileGridNoAndStructure( &sIntTileGridNo, &pStructure );
|
||||||
|
|
||||||
@@ -2223,18 +2190,15 @@ UINT32 UIHandleMCycleMovement( UI_EVENT *pUIEvent )
|
|||||||
fGoodMode = TRUE;
|
fGoodMode = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} while( fGoodMode != TRUE );
|
} while( fGoodMode != TRUE );
|
||||||
|
|
||||||
gfPlotNewMovement = TRUE;
|
gfPlotNewMovement = TRUE;
|
||||||
|
|
||||||
|
|
||||||
return( GAME_SCREEN );
|
return( GAME_SCREEN );
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT32 UIHandleCOnTerrain( UI_EVENT *pUIEvent )
|
UINT32 UIHandleCOnTerrain( UI_EVENT *pUIEvent )
|
||||||
{
|
{
|
||||||
|
|
||||||
return( GAME_SCREEN );
|
return( GAME_SCREEN );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2242,19 +2206,18 @@ UINT32 UIHandleCOnTerrain( UI_EVENT *pUIEvent )
|
|||||||
UINT32 UIHandleMAdjustStanceMode( UI_EVENT *pUIEvent )
|
UINT32 UIHandleMAdjustStanceMode( UI_EVENT *pUIEvent )
|
||||||
{
|
{
|
||||||
SOLDIERTYPE *pSoldier;
|
SOLDIERTYPE *pSoldier;
|
||||||
INT32 iPosDiff;
|
INT32 iPosDiff;
|
||||||
static UINT16 gusAnchorMouseY;
|
static UINT16 gusAnchorMouseY;
|
||||||
static UINT16 usOldMouseY;
|
static UINT16 usOldMouseY;
|
||||||
static BOOLEAN ubNearHeigherLevel;
|
static BOOLEAN ubNearHeigherLevel;
|
||||||
static BOOLEAN ubNearLowerLevel;
|
static BOOLEAN ubNearLowerLevel;
|
||||||
static UINT8 ubUpHeight, ubDownDepth;
|
static UINT8 ubUpHeight, ubDownDepth;
|
||||||
static UINT32 uiOldShowUPDownArrows;
|
static UINT32 uiOldShowUPDownArrows;
|
||||||
INT8 bNewDirection;
|
INT8 bNewDirection;
|
||||||
|
|
||||||
// Change cusror to normal
|
// Change cusror to normal
|
||||||
guiNewUICursor = NO_UICURSOR;
|
guiNewUICursor = NO_UICURSOR;
|
||||||
|
|
||||||
|
|
||||||
if ( pUIEvent->fFirstTime )
|
if ( pUIEvent->fFirstTime )
|
||||||
{
|
{
|
||||||
gusAnchorMouseY = gusMouseYPos;
|
gusAnchorMouseY = gusMouseYPos;
|
||||||
@@ -2347,10 +2310,7 @@ UINT32 UIHandleMAdjustStanceMode( UI_EVENT *pUIEvent )
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if delta X has changed alot since last time
|
// Check if delta X has changed alot since last time
|
||||||
@@ -2411,12 +2371,10 @@ UINT32 UIHandleMAdjustStanceMode( UI_EVENT *pUIEvent )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( gusAnchorMouseY < gusMouseYPos )
|
if ( gusAnchorMouseY < gusMouseYPos )
|
||||||
{
|
{
|
||||||
|
|
||||||
// Get soldier
|
// Get soldier
|
||||||
if ( GetSoldier( &pSoldier, gusSelectedSoldier ) )
|
if ( GetSoldier( &pSoldier, gusSelectedSoldier ) )
|
||||||
{
|
{
|
||||||
@@ -2468,11 +2426,8 @@ UINT32 UIHandleMAdjustStanceMode( UI_EVENT *pUIEvent )
|
|||||||
gbClimbID = -1;
|
gbClimbID = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uiOldShowUPDownArrows = guiShowUPDownArrows;
|
uiOldShowUPDownArrows = guiShowUPDownArrows;
|
||||||
@@ -2487,7 +2442,6 @@ UINT32 UIHandleAChangeToConfirmAction( UI_EVENT *pUIEvent )
|
|||||||
if ( GetSoldier( &pSoldier, gusSelectedSoldier ) )
|
if ( GetSoldier( &pSoldier, gusSelectedSoldier ) )
|
||||||
{
|
{
|
||||||
HandleLeftClickCursor( pSoldier );
|
HandleLeftClickCursor( pSoldier );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ResetBurstLocations( );
|
ResetBurstLocations( );
|
||||||
@@ -2511,7 +2465,6 @@ UINT32 UIHandleCAOnTerrain( UI_EVENT *pUIEvent )
|
|||||||
guiNewUICursor = GetProperItemCursor( (UINT8)gusSelectedSoldier, pSoldier->inv[ HANDPOS ].usItem, usMapPos, TRUE );
|
guiNewUICursor = GetProperItemCursor( (UINT8)gusSelectedSoldier, pSoldier->inv[ HANDPOS ].usItem, usMapPos, TRUE );
|
||||||
|
|
||||||
UIHandleOnMerc( FALSE );
|
UIHandleOnMerc( FALSE );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return( GAME_SCREEN );
|
return( GAME_SCREEN );
|
||||||
@@ -2618,7 +2571,6 @@ void UIHandleMercAttack( SOLDIERTYPE *pSoldier , SOLDIERTYPE *pTargetSoldier, IN
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Cannot be fire if we are already in a fire animation....
|
// Cannot be fire if we are already in a fire animation....
|
||||||
// this is to stop the shooting trigger/happy duded from contiously pressing fire...
|
// this is to stop the shooting trigger/happy duded from contiously pressing fire...
|
||||||
if ( !(gTacticalStatus.uiFlags & INCOMBAT) )
|
if ( !(gTacticalStatus.uiFlags & INCOMBAT) )
|
||||||
@@ -2638,7 +2590,6 @@ void UIHandleMercAttack( SOLDIERTYPE *pSoldier , SOLDIERTYPE *pTargetSoldier, IN
|
|||||||
// guiPendingOverrideEvent = A_CHANGE_TO_MOVE;
|
// guiPendingOverrideEvent = A_CHANGE_TO_MOVE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (pSoldier->bWeaponMode == WM_ATTACHED_GL || pSoldier->bWeaponMode == WM_ATTACHED_GL_BURST || pSoldier->bWeaponMode == WM_ATTACHED_GL_AUTO )
|
if (pSoldier->bWeaponMode == WM_ATTACHED_GL || pSoldier->bWeaponMode == WM_ATTACHED_GL_BURST || pSoldier->bWeaponMode == WM_ATTACHED_GL_AUTO )
|
||||||
{
|
{
|
||||||
iHandleReturn = HandleItem( pSoldier, sTargetGridNo, bTargetLevel, GetAttachedGrenadeLauncher(pObj), TRUE );
|
iHandleReturn = HandleItem( pSoldier, sTargetGridNo, bTargetLevel, GetAttachedGrenadeLauncher(pObj), TRUE );
|
||||||
@@ -2663,7 +2614,6 @@ void UIHandleMercAttack( SOLDIERTYPE *pSoldier , SOLDIERTYPE *pTargetSoldier, IN
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ( gTacticalStatus.uiFlags & TURNBASED && !( gTacticalStatus.uiFlags & INCOMBAT ) )
|
if ( gTacticalStatus.uiFlags & TURNBASED && !( gTacticalStatus.uiFlags & INCOMBAT ) )
|
||||||
{
|
{
|
||||||
HandleUICursorRTFeedback( pSoldier );
|
HandleUICursorRTFeedback( pSoldier );
|
||||||
@@ -2711,11 +2661,10 @@ UINT32 UIHandleCAMercShoot( UI_EVENT *pUIEvent )
|
|||||||
{
|
{
|
||||||
INT32 usMapPos;
|
INT32 usMapPos;
|
||||||
SOLDIERTYPE *pSoldier, *pTSoldier = NULL;
|
SOLDIERTYPE *pSoldier, *pTSoldier = NULL;
|
||||||
BOOLEAN fDidRequester = FALSE;
|
BOOLEAN fDidRequester = FALSE;
|
||||||
|
|
||||||
if ( gusSelectedSoldier != NOBODY )
|
if ( gusSelectedSoldier != NOBODY )
|
||||||
{
|
{
|
||||||
|
|
||||||
if( !GetMouseMapPos( &usMapPos) )
|
if( !GetMouseMapPos( &usMapPos) )
|
||||||
{
|
{
|
||||||
return( GAME_SCREEN );
|
return( GAME_SCREEN );
|
||||||
@@ -2731,7 +2680,6 @@ UINT32 UIHandleCAMercShoot( UI_EVENT *pUIEvent )
|
|||||||
pTSoldier = MercPtrs[ gusUIFullTargetID ];
|
pTSoldier = MercPtrs[ gusUIFullTargetID ];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ( pTSoldier != NULL )
|
if ( pTSoldier != NULL )
|
||||||
{
|
{
|
||||||
// If this is one of our own guys.....pop up requiester...
|
// If this is one of our own guys.....pop up requiester...
|
||||||
@@ -2753,7 +2701,6 @@ UINT32 UIHandleCAMercShoot( UI_EVENT *pUIEvent )
|
|||||||
swprintf( zStr, TacticalStr[ ATTACK_OWN_GUY_PROMPT ], pTSoldier->GetName() );
|
swprintf( zStr, TacticalStr[ ATTACK_OWN_GUY_PROMPT ], pTSoldier->GetName() );
|
||||||
|
|
||||||
DoMessageBox( MSG_BOX_BASIC_STYLE, zStr, GAME_SCREEN, ( UINT8 )MSG_BOX_FLAG_YESNO, AttackRequesterCallback, NULL );
|
DoMessageBox( MSG_BOX_BASIC_STYLE, zStr, GAME_SCREEN, ( UINT8 )MSG_BOX_FLAG_YESNO, AttackRequesterCallback, NULL );
|
||||||
|
|
||||||
}
|
}
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// SANDRO - Should we ask if we really want to do the surgery?
|
// SANDRO - Should we ask if we really want to do the surgery?
|
||||||
@@ -2804,7 +2751,6 @@ UINT32 UIHandleAEndAction( UI_EVENT *pUIEvent )
|
|||||||
return( GAME_SCREEN );
|
return( GAME_SCREEN );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ( GetSoldier( &pSoldier, gusSelectedSoldier ) )
|
if ( GetSoldier( &pSoldier, gusSelectedSoldier ) )
|
||||||
{
|
{
|
||||||
if ( ( gTacticalStatus.uiFlags & REALTIME ) || !( gTacticalStatus.uiFlags & INCOMBAT ) )
|
if ( ( gTacticalStatus.uiFlags & REALTIME ) || !( gTacticalStatus.uiFlags & INCOMBAT ) )
|
||||||
@@ -2820,9 +2766,9 @@ UINT32 UIHandleAEndAction( UI_EVENT *pUIEvent )
|
|||||||
|
|
||||||
gUITargetReady = FALSE;
|
gUITargetReady = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return( GAME_SCREEN );
|
return( GAME_SCREEN );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2850,7 +2796,6 @@ UINT32 UIHandleIOnTerrain( UI_EVENT *pUIEvent )
|
|||||||
return( GAME_SCREEN );
|
return( GAME_SCREEN );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ( !UIHandleOnMerc( TRUE ) )
|
if ( !UIHandleOnMerc( TRUE ) )
|
||||||
{
|
{
|
||||||
// Check if dest is OK
|
// Check if dest is OK
|
||||||
@@ -2875,10 +2820,9 @@ UINT32 UIHandleIChangeToIdle( UI_EVENT *pUIEvent )
|
|||||||
UINT32 UIHandlePADJAdjustStance( UI_EVENT *pUIEvent )
|
UINT32 UIHandlePADJAdjustStance( UI_EVENT *pUIEvent )
|
||||||
{
|
{
|
||||||
SOLDIERTYPE *pSoldier;
|
SOLDIERTYPE *pSoldier;
|
||||||
UINT8 ubNewStance;
|
UINT8 ubNewStance;
|
||||||
|
|
||||||
guiShowUPDownArrows = ARROWS_HIDE_UP | ARROWS_HIDE_DOWN;
|
|
||||||
|
|
||||||
|
guiShowUPDownArrows = ARROWS_HIDE_UP | ARROWS_HIDE_DOWN;
|
||||||
|
|
||||||
gfIgnoreScrolling = FALSE;
|
gfIgnoreScrolling = FALSE;
|
||||||
|
|
||||||
@@ -2905,10 +2849,9 @@ UINT32 UIHandlePADJAdjustStance( UI_EVENT *pUIEvent )
|
|||||||
|
|
||||||
// Once we have APs, we can safely reset nomove flag!
|
// Once we have APs, we can safely reset nomove flag!
|
||||||
// AdjustNoAPToFinishMove( pSoldier, FALSE );
|
// AdjustNoAPToFinishMove( pSoldier, FALSE );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return( GAME_SCREEN );
|
return( GAME_SCREEN );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3018,11 +2961,10 @@ void AdjustSoldierCreationStartValues( )
|
|||||||
INT32 cnt;
|
INT32 cnt;
|
||||||
SOLDIERTYPE *pSoldier;
|
SOLDIERTYPE *pSoldier;
|
||||||
|
|
||||||
|
|
||||||
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
|
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
|
||||||
guiCreateGuyIndex = (INT16)cnt;
|
guiCreateGuyIndex = (INT16)cnt;
|
||||||
|
|
||||||
for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; pSoldier++, cnt++ )
|
for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; pSoldier++, ++cnt )
|
||||||
{
|
{
|
||||||
if ( !pSoldier->bActive )
|
if ( !pSoldier->bActive )
|
||||||
{
|
{
|
||||||
@@ -3034,7 +2976,7 @@ void AdjustSoldierCreationStartValues( )
|
|||||||
cnt = gTacticalStatus.Team[ gbPlayerNum ].bLastID + 1;
|
cnt = gTacticalStatus.Team[ gbPlayerNum ].bLastID + 1;
|
||||||
guiCreateBadGuyIndex = (INT16)cnt;
|
guiCreateBadGuyIndex = (INT16)cnt;
|
||||||
|
|
||||||
for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ LAST_TEAM ].bLastID; pSoldier++, cnt++ )
|
for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ LAST_TEAM ].bLastID; pSoldier++, ++cnt )
|
||||||
{
|
{
|
||||||
if ( !pSoldier->bActive && cnt > gTacticalStatus.Team[ gbPlayerNum ].bLastID )
|
if ( !pSoldier->bActive && cnt > gTacticalStatus.Team[ gbPlayerNum ].bLastID )
|
||||||
{
|
{
|
||||||
@@ -3042,7 +2984,6 @@ void AdjustSoldierCreationStartValues( )
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOLEAN SelectedMercCanAffordAttack( )
|
BOOLEAN SelectedMercCanAffordAttack( )
|
||||||
@@ -3057,14 +2998,13 @@ BOOLEAN SelectedMercCanAffordAttack( )
|
|||||||
|
|
||||||
if ( gusSelectedSoldier != NOBODY )
|
if ( gusSelectedSoldier != NOBODY )
|
||||||
{
|
{
|
||||||
|
|
||||||
if( !GetMouseMapPos( &usMapPos) )
|
if( !GetMouseMapPos( &usMapPos) )
|
||||||
{
|
{
|
||||||
return( GAME_SCREEN );
|
return( GAME_SCREEN );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get soldier
|
// Get soldier
|
||||||
if ( GetSoldier( &pSoldier, gusSelectedSoldier ) )
|
if ( GetSoldier( &pSoldier, gusSelectedSoldier ) )
|
||||||
{
|
{
|
||||||
// LOOK IN GUY'S HAND TO CHECK LOCATION
|
// LOOK IN GUY'S HAND TO CHECK LOCATION
|
||||||
usInHand = pSoldier->inv[HANDPOS].usItem;
|
usInHand = pSoldier->inv[HANDPOS].usItem;
|
||||||
@@ -3120,7 +3060,6 @@ BOOLEAN SelectedMercCanAffordAttack( )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return( FALSE );
|
return( FALSE );
|
||||||
@@ -3135,14 +3074,13 @@ BOOLEAN SelectedMercCanAffordMove( )
|
|||||||
LEVELNODE *pIntTile;
|
LEVELNODE *pIntTile;
|
||||||
|
|
||||||
// Get soldier
|
// Get soldier
|
||||||
if ( GetSoldier( &pSoldier, gusSelectedSoldier ) )
|
if ( GetSoldier( &pSoldier, gusSelectedSoldier ) )
|
||||||
{
|
{
|
||||||
if( !GetMouseMapPos( &usMapPos) )
|
if( !GetMouseMapPos( &usMapPos) )
|
||||||
{
|
{
|
||||||
return( GAME_SCREEN );
|
return( GAME_SCREEN );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// IF WE ARE OVER AN INTERACTIVE TILE, GIVE GRIDNO OF POSITION
|
// IF WE ARE OVER AN INTERACTIVE TILE, GIVE GRIDNO OF POSITION
|
||||||
pIntTile = GetCurInteractiveTile( );
|
pIntTile = GetCurInteractiveTile( );
|
||||||
|
|
||||||
@@ -3405,7 +3343,6 @@ BOOLEAN UIHandleOnMerc( BOOLEAN fMovementMode )
|
|||||||
guiShowUPDownArrows = ARROWS_SHOW_DOWN_BESIDE | ARROWS_SHOW_UP_BESIDE;
|
guiShowUPDownArrows = ARROWS_SHOW_DOWN_BESIDE | ARROWS_SHOW_UP_BESIDE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -3455,7 +3392,6 @@ BOOLEAN UIHandleOnMerc( BOOLEAN fMovementMode )
|
|||||||
{
|
{
|
||||||
if ( fMovementMode )
|
if ( fMovementMode )
|
||||||
{
|
{
|
||||||
|
|
||||||
// Check if this guy is on the enemy team....
|
// Check if this guy is on the enemy team....
|
||||||
if ( !pSoldier->aiData.bNeutral && (pSoldier->bSide != gbPlayerNum ) )
|
if ( !pSoldier->aiData.bNeutral && (pSoldier->bSide != gbPlayerNum ) )
|
||||||
{
|
{
|
||||||
@@ -3543,9 +3479,7 @@ UINT32 UIHandleIETOnTerrain( UI_EVENT *pUIEvent )
|
|||||||
|
|
||||||
void UIHandleSoldierStanceChange( UINT8 ubSoldierID, INT8 bNewStance )
|
void UIHandleSoldierStanceChange( UINT8 ubSoldierID, INT8 bNewStance )
|
||||||
{
|
{
|
||||||
SOLDIERTYPE *pSoldier;
|
SOLDIERTYPE *pSoldier = MercPtrs[ ubSoldierID ];
|
||||||
|
|
||||||
pSoldier = MercPtrs[ ubSoldierID ];
|
|
||||||
|
|
||||||
// Is this a valid stance for our position?
|
// Is this a valid stance for our position?
|
||||||
if ( !IsValidStance( pSoldier, bNewStance ) )
|
if ( !IsValidStance( pSoldier, bNewStance ) )
|
||||||
@@ -3554,9 +3488,7 @@ void UIHandleSoldierStanceChange( UINT8 ubSoldierID, INT8 bNewStance )
|
|||||||
{
|
{
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, gzLateLocalizedString[ 4 ], pSoldier->GetName() );
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, gzLateLocalizedString[ 4 ], pSoldier->GetName() );
|
||||||
}
|
}
|
||||||
else
|
else if ( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE )
|
||||||
{
|
|
||||||
if ( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE )
|
|
||||||
{
|
{
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ VEHICLES_NO_STANCE_CHANGE_STR ] );
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ VEHICLES_NO_STANCE_CHANGE_STR ] );
|
||||||
}
|
}
|
||||||
@@ -3564,18 +3496,15 @@ void UIHandleSoldierStanceChange( UINT8 ubSoldierID, INT8 bNewStance )
|
|||||||
{
|
{
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ ROBOT_NO_STANCE_CHANGE_STR ] );
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ ROBOT_NO_STANCE_CHANGE_STR ] );
|
||||||
}
|
}
|
||||||
|
else if ( pSoldier->bCollapsed )
|
||||||
|
{
|
||||||
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, pMessageStrings[ MSG_CANT_CHANGE_STANCE ], pSoldier->GetName() );
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( pSoldier->bCollapsed )
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ CANNOT_STANCE_CHANGE_STR ], pSoldier->GetName() );
|
||||||
{
|
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, pMessageStrings[ MSG_CANT_CHANGE_STANCE ], pSoldier->GetName() );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ CANNOT_STANCE_CHANGE_STR ], pSoldier->GetName() );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3614,7 +3543,6 @@ void UIHandleSoldierStanceChange( UINT8 ubSoldierID, INT8 bNewStance )
|
|||||||
{
|
{
|
||||||
// Change stance normally
|
// Change stance normally
|
||||||
SendChangeSoldierStanceEvent( pSoldier, bNewStance );
|
SendChangeSoldierStanceEvent( pSoldier, bNewStance );
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -165,11 +165,16 @@ INT32 *gpDirtyData;
|
|||||||
UINT32 gSurfaceMemUsage;
|
UINT32 gSurfaceMemUsage;
|
||||||
//UINT8 gubWorldMovementCosts[ WORLD_MAX ][MAXDIR][2];
|
//UINT8 gubWorldMovementCosts[ WORLD_MAX ][MAXDIR][2];
|
||||||
UINT8 (*gubWorldMovementCosts)[MAXDIR][2] = NULL;//dnl ch43 260909
|
UINT8 (*gubWorldMovementCosts)[MAXDIR][2] = NULL;//dnl ch43 260909
|
||||||
|
|
||||||
|
// Flugente: this stuff is only ever used in AStar pathing and is a unnecessary waste of resources otherwise, so I'm putting an end to this
|
||||||
|
#ifdef USE_ASTAR_PATHS
|
||||||
//ddd äëÿ óáûñòðåíèÿ ïîèñêà îñâåùåííûõ ó÷àñòêîâ â ïàòõàè.
|
//ddd äëÿ óáûñòðåíèÿ ïîèñêà îñâåùåííûõ ó÷àñòêîâ â ïàòõàè.
|
||||||
BOOLEAN gubWorldTileInLight[ MAX_ALLOWED_WORLD_MAX ];
|
BOOLEAN gubWorldTileInLight[ MAX_ALLOWED_WORLD_MAX ];
|
||||||
BOOLEAN gubIsCorpseThere[ MAX_ALLOWED_WORLD_MAX ];
|
BOOLEAN gubIsCorpseThere[ MAX_ALLOWED_WORLD_MAX ];
|
||||||
INT32 gubMerkCanSeeThisTile[ MAX_ALLOWED_WORLD_MAX ];
|
INT32 gubMerkCanSeeThisTile[ MAX_ALLOWED_WORLD_MAX ];
|
||||||
//ddd
|
//ddd
|
||||||
|
#endif
|
||||||
|
|
||||||
// set to nonzero (locs of base gridno of structure are good) to have it defined by structure code
|
// set to nonzero (locs of base gridno of structure are good) to have it defined by structure code
|
||||||
INT16 gsRecompileAreaTop = 0;
|
INT16 gsRecompileAreaTop = 0;
|
||||||
INT16 gsRecompileAreaLeft = 0;
|
INT16 gsRecompileAreaLeft = 0;
|
||||||
|
|||||||
@@ -283,6 +283,8 @@ typedef struct
|
|||||||
// World Data
|
// World Data
|
||||||
extern MAP_ELEMENT *gpWorldLevelData;
|
extern MAP_ELEMENT *gpWorldLevelData;
|
||||||
|
|
||||||
|
// Flugente: this stuff is only ever used in AStar pathing and is a unnecessary waste of resources otherwise, so I'm putting an end to this
|
||||||
|
#ifdef USE_ASTAR_PATHS
|
||||||
// World Movement Costs
|
// World Movement Costs
|
||||||
//UINT8 gubWorldMovementCosts[ WORLD_MAX ][MAXDIR][2];
|
//UINT8 gubWorldMovementCosts[ WORLD_MAX ][MAXDIR][2];
|
||||||
//ddd Tables to track tactical value of grid tiles
|
//ddd Tables to track tactical value of grid tiles
|
||||||
@@ -290,6 +292,7 @@ extern BOOLEAN gubWorldTileInLight[ MAX_ALLOWED_WORLD_MAX ];
|
|||||||
extern BOOLEAN gubIsCorpseThere[ MAX_ALLOWED_WORLD_MAX ]; //Tracks position of corpses for AI avoidance
|
extern BOOLEAN gubIsCorpseThere[ MAX_ALLOWED_WORLD_MAX ]; //Tracks position of corpses for AI avoidance
|
||||||
extern INT32 gubMerkCanSeeThisTile[ MAX_ALLOWED_WORLD_MAX ]; //Tracks visibility my mercs
|
extern INT32 gubMerkCanSeeThisTile[ MAX_ALLOWED_WORLD_MAX ]; //Tracks visibility my mercs
|
||||||
//ddd
|
//ddd
|
||||||
|
#endif
|
||||||
|
|
||||||
extern UINT8 (*gubWorldMovementCosts)[MAXDIR][2];//dnl ch43 260909
|
extern UINT8 (*gubWorldMovementCosts)[MAXDIR][2];//dnl ch43 260909
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user