mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
Add Astars pathing to ingame options (#124)
* Enabled astars pathing * Add toggleable pathfinding choice to ingame options You can choose between original and A* pathfinding algorithms
This commit is contained in:
+4
-1
@@ -333,6 +333,7 @@ BOOLEAN LoadGameSettings()
|
|||||||
gGameSettings.fOptions[TOPTION_TOGGLE_TURN_MODE] = FALSE;
|
gGameSettings.fOptions[TOPTION_TOGGLE_TURN_MODE] = FALSE;
|
||||||
|
|
||||||
gGameSettings.fOptions[TOPTION_ALT_START_AIM] = iniReader.ReadBoolean("JA2 Game Settings", "TOPTION_ALT_START_AIM" , FALSE); // Start at max aiming level instead of default no aiming
|
gGameSettings.fOptions[TOPTION_ALT_START_AIM] = iniReader.ReadBoolean("JA2 Game Settings", "TOPTION_ALT_START_AIM" , FALSE); // Start at max aiming level instead of default no aiming
|
||||||
|
gGameSettings.fOptions[TOPTION_ALT_PATHFINDING] = iniReader.ReadBoolean("JA2 Game Settings", "TOPTION_ALT_PATHFINDING" , FALSE); // A* pathfinding
|
||||||
gGameSettings.fOptions[TOPTION_MERCENARY_FORMATIONS] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_MERCENARY_FORMATIONS" , TRUE ); // Flugente: mercenary formations
|
gGameSettings.fOptions[TOPTION_MERCENARY_FORMATIONS] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_MERCENARY_FORMATIONS" , TRUE ); // Flugente: mercenary formations
|
||||||
gGameSettings.fOptions[TOPTION_SHOW_ENEMY_LOCATION] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_SHOW_ENEMY_LOCATION" , FALSE); // sevenfm: show locations of known enemies
|
gGameSettings.fOptions[TOPTION_SHOW_ENEMY_LOCATION] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_SHOW_ENEMY_LOCATION" , FALSE); // sevenfm: show locations of known enemies
|
||||||
gGameSettings.fOptions[TOPTION_REPORT_MISS_MARGIN] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_REPORT_MISS_MARGIN" , FALSE ); // HEADROCK HAM 4: Shot offset report
|
gGameSettings.fOptions[TOPTION_REPORT_MISS_MARGIN] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_REPORT_MISS_MARGIN" , FALSE ); // HEADROCK HAM 4: Shot offset report
|
||||||
@@ -614,7 +615,8 @@ BOOLEAN SaveGameSettings()
|
|||||||
settings << "TOPTION_ENABLE_INVENTORY_POPUPS = " << (gGameSettings.fOptions[TOPTION_ENABLE_INVENTORY_POPUPS] ? "TRUE" : "FALSE" ) << endl; // the_bob : enable popups for picking items from sector inv
|
settings << "TOPTION_ENABLE_INVENTORY_POPUPS = " << (gGameSettings.fOptions[TOPTION_ENABLE_INVENTORY_POPUPS] ? "TRUE" : "FALSE" ) << endl; // the_bob : enable popups for picking items from sector inv
|
||||||
settings << "TOPTION_MERCENARY_FORMATIONS = " << (gGameSettings.fOptions[TOPTION_MERCENARY_FORMATIONS] ? "TRUE" : "FALSE" ) << endl;
|
settings << "TOPTION_MERCENARY_FORMATIONS = " << (gGameSettings.fOptions[TOPTION_MERCENARY_FORMATIONS] ? "TRUE" : "FALSE" ) << endl;
|
||||||
settings << "TOPTION_SHOW_ENEMY_LOCATION = " << (gGameSettings.fOptions[TOPTION_SHOW_ENEMY_LOCATION] ? "TRUE" : "FALSE" ) << endl;
|
settings << "TOPTION_SHOW_ENEMY_LOCATION = " << (gGameSettings.fOptions[TOPTION_SHOW_ENEMY_LOCATION] ? "TRUE" : "FALSE" ) << endl;
|
||||||
settings << "TOPTION_ALT_START_AIM = " << (gGameSettings.fOptions[TOPTION_ALT_START_AIM] ? "TRUE" : "FALSE") << endl;
|
settings << "TOPTION_ALT_START_AIM = " << (gGameSettings.fOptions[TOPTION_ALT_START_AIM] ? "TRUE" : "FALSE") << endl;
|
||||||
|
settings << "TOPTION_ALT_PATHFINDING = " << (gGameSettings.fOptions[TOPTION_ALT_PATHFINDING] ? "TRUE" : "FALSE") << endl;
|
||||||
|
|
||||||
settings << "TOPTION_CHEAT_MODE_OPTIONS_HEADER = " << (gGameSettings.fOptions[TOPTION_CHEAT_MODE_OPTIONS_HEADER] ? "TRUE" : "FALSE" ) << endl;
|
settings << "TOPTION_CHEAT_MODE_OPTIONS_HEADER = " << (gGameSettings.fOptions[TOPTION_CHEAT_MODE_OPTIONS_HEADER] ? "TRUE" : "FALSE" ) << endl;
|
||||||
settings << "TOPTION_FORCE_BOBBY_RAY_SHIPMENTS = " << (gGameSettings.fOptions[TOPTION_FORCE_BOBBY_RAY_SHIPMENTS] ? "TRUE" : "FALSE" ) << endl;
|
settings << "TOPTION_FORCE_BOBBY_RAY_SHIPMENTS = " << (gGameSettings.fOptions[TOPTION_FORCE_BOBBY_RAY_SHIPMENTS] ? "TRUE" : "FALSE" ) << endl;
|
||||||
@@ -843,6 +845,7 @@ void InitGameSettings()
|
|||||||
gGameSettings.fOptions[ TOPTION_MERCENARY_FORMATIONS ] = FALSE; // Flugente: mercenary formations
|
gGameSettings.fOptions[ TOPTION_MERCENARY_FORMATIONS ] = FALSE; // Flugente: mercenary formations
|
||||||
gGameSettings.fOptions[TOPTION_SHOW_ENEMY_LOCATION] = FALSE; // sevenfm: show locations of known enemies
|
gGameSettings.fOptions[TOPTION_SHOW_ENEMY_LOCATION] = FALSE; // sevenfm: show locations of known enemies
|
||||||
gGameSettings.fOptions[TOPTION_ALT_START_AIM] = FALSE;
|
gGameSettings.fOptions[TOPTION_ALT_START_AIM] = FALSE;
|
||||||
|
gGameSettings.fOptions[TOPTION_ALT_PATHFINDING] = FALSE;
|
||||||
|
|
||||||
// arynn: Cheat/Debug Menu
|
// arynn: Cheat/Debug Menu
|
||||||
gGameSettings.fOptions[ TOPTION_CHEAT_MODE_OPTIONS_HEADER ] = FALSE;
|
gGameSettings.fOptions[ TOPTION_CHEAT_MODE_OPTIONS_HEADER ] = FALSE;
|
||||||
|
|||||||
@@ -104,6 +104,7 @@ enum
|
|||||||
// sevenfm: new settings
|
// sevenfm: new settings
|
||||||
TOPTION_SHOW_ENEMY_LOCATION,
|
TOPTION_SHOW_ENEMY_LOCATION,
|
||||||
TOPTION_ALT_START_AIM,
|
TOPTION_ALT_START_AIM,
|
||||||
|
TOPTION_ALT_PATHFINDING,
|
||||||
|
|
||||||
// arynn: Debug/Cheat
|
// arynn: Debug/Cheat
|
||||||
TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
||||||
|
|||||||
+62
-57
@@ -88,6 +88,11 @@
|
|||||||
#include "Map Screen Interface.h" // added by Flugente for SquadNames
|
#include "Map Screen Interface.h" // added by Flugente for SquadNames
|
||||||
#include "Keys.h" // added by silversurfer for door handling from the side
|
#include "Keys.h" // added by silversurfer for door handling from the side
|
||||||
|
|
||||||
|
#include "AIInternals.h"
|
||||||
|
extern BOOLEAN gubWorldTileInLight[MAX_ALLOWED_WORLD_MAX];
|
||||||
|
extern BOOLEAN gubIsCorpseThere[MAX_ALLOWED_WORLD_MAX];
|
||||||
|
extern INT32 gubMerkCanSeeThisTile[MAX_ALLOWED_WORLD_MAX];
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
// SANDRO - In this file, all APBPConstants[AP_CROUCH] and APBPConstants[AP_PRONE] were changed to GetAPsCrouch() and GetAPsProne()
|
// SANDRO - In this file, all APBPConstants[AP_CROUCH] and APBPConstants[AP_PRONE] were changed to GetAPsCrouch() and GetAPsProne()
|
||||||
// On the bottom here, there are these functions made
|
// On the bottom here, there are these functions made
|
||||||
@@ -1365,74 +1370,74 @@ 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 enemy turn optimization
|
////ddd enemy turn optimization
|
||||||
if ( (gTacticalStatus.uiFlags & TURNBASED) && (gTacticalStatus.uiFlags & INCOMBAT ) )
|
if (gGameSettings.fOptions[TOPTION_ALT_PATHFINDING])
|
||||||
{
|
{
|
||||||
memset( gubWorldTileInLight, FALSE, sizeof( gubWorldTileInLight ) );
|
if ( (gTacticalStatus.uiFlags & TURNBASED) && (gTacticalStatus.uiFlags & INCOMBAT ) )
|
||||||
memset( gubIsCorpseThere, FALSE, sizeof( gubIsCorpseThere ) );
|
{
|
||||||
memset( gubMerkCanSeeThisTile, FALSE, sizeof( gubMerkCanSeeThisTile ) );
|
memset( gubWorldTileInLight, FALSE, sizeof( gubWorldTileInLight ) );
|
||||||
|
memset( gubIsCorpseThere, FALSE, sizeof( gubIsCorpseThere ) );
|
||||||
|
memset( gubMerkCanSeeThisTile, FALSE, sizeof( gubMerkCanSeeThisTile ) );
|
||||||
|
|
||||||
//sevenfm translated: unwinding of loop. When changing WORLD_MAX to another value will need some cleaning! dangerous code! ;)
|
//sevenfm translated: unwinding of loop. When changing WORLD_MAX to another value will need some cleaning! dangerous code! ;)
|
||||||
|
|
||||||
// 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)
|
}
|
||||||
|
|
||||||
|
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 )
|
||||||
{
|
{
|
||||||
for (sXOffset = -30; sXOffset <= 30; ++sXOffset)
|
//loop through all the gridnos that we are interested in
|
||||||
|
for (sYOffset = -30; sYOffset <= 30; ++sYOffset)
|
||||||
{
|
{
|
||||||
sGridNo = tS->sGridNo + sXOffset + (MAXCOL * sYOffset);
|
for (sXOffset = -30; sXOffset <= 30; ++sXOffset)
|
||||||
|
|
||||||
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 );
|
sGridNo = tS->sGridNo + sXOffset + (MAXCOL * sYOffset);
|
||||||
SoldierToVirtualSoldierLineOfSightTest( tS, sGridNo, tS->pathing.bLevel, ANIM_STAND, TRUE, CALC_FROM_WANTED_DIR);
|
|
||||||
}
|
if ( sGridNo <= 0 || sGridNo >= WORLD_MAX )
|
||||||
}//fo
|
continue;
|
||||||
}
|
|
||||||
}//if
|
//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 enemy turn optimization**
|
//ddd enemy turn optimization**
|
||||||
#endif
|
|
||||||
|
|
||||||
// End our turn!
|
// End our turn!
|
||||||
if (is_server || !is_client)
|
if (is_server || !is_client)
|
||||||
|
|||||||
@@ -10,12 +10,6 @@
|
|||||||
#define _PATHAI_H
|
#define _PATHAI_H
|
||||||
#include "isometric utils.h"
|
#include "isometric utils.h"
|
||||||
|
|
||||||
// WANNE: Please do not use ASTAR pathing,
|
|
||||||
// because it is a HUGH PERFORMANCE KILLER on big maps!!
|
|
||||||
//#define USE_ASTAR_PATHS
|
|
||||||
|
|
||||||
#ifdef USE_ASTAR_PATHS
|
|
||||||
|
|
||||||
namespace ASTAR {
|
namespace ASTAR {
|
||||||
#include "BinaryHeap.hpp"
|
#include "BinaryHeap.hpp"
|
||||||
#include <vector>
|
#include <vector>
|
||||||
@@ -188,8 +182,6 @@ private:
|
|||||||
|
|
||||||
};//end namespace ASTAR
|
};//end namespace ASTAR
|
||||||
|
|
||||||
#endif// USE_ASTAR_PATHS
|
|
||||||
|
|
||||||
|
|
||||||
BOOLEAN InitPathAI( void );
|
BOOLEAN InitPathAI( void );
|
||||||
void ShutDownPathAI( void );
|
void ShutDownPathAI( void );
|
||||||
|
|||||||
+27
-29
@@ -49,12 +49,12 @@
|
|||||||
class OBJECTTYPE;
|
class OBJECTTYPE;
|
||||||
class SOLDIERTYPE;
|
class SOLDIERTYPE;
|
||||||
|
|
||||||
#ifdef USE_ASTAR_PATHS
|
|
||||||
#include "BinaryHeap.hpp"
|
#include "BinaryHeap.hpp"
|
||||||
#include "AIInternals.h"
|
|
||||||
#include "opplist.h"
|
#include "opplist.h"
|
||||||
#include "weapons.h"
|
#include "weapons.h"
|
||||||
#endif
|
extern BOOLEAN gubWorldTileInLight[MAX_ALLOWED_WORLD_MAX];
|
||||||
|
extern BOOLEAN gubIsCorpseThere[MAX_ALLOWED_WORLD_MAX];
|
||||||
|
extern INT32 gubMerkCanSeeThisTile[MAX_ALLOWED_WORLD_MAX];
|
||||||
//#include "dnlprocesstalk.h"//dnl???
|
//#include "dnlprocesstalk.h"//dnl???
|
||||||
|
|
||||||
extern UINT16 gubAnimSurfaceIndex[ TOTALBODYTYPES ][ NUMANIMATIONSTATES ];
|
extern UINT16 gubAnimSurfaceIndex[ TOTALBODYTYPES ][ NUMANIMATIONSTATES ];
|
||||||
@@ -454,9 +454,6 @@ UINT32 guiFailedPathChecks = 0;
|
|||||||
UINT32 guiUnsuccessfulPathChecks = 0;
|
UINT32 guiUnsuccessfulPathChecks = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_ASTAR_PATHS
|
|
||||||
|
|
||||||
|
|
||||||
//ADB the extra cover feature is supposed to pick a path of the same distance as one calculated with the feature off,
|
//ADB the extra cover feature is supposed to pick a path of the same distance as one calculated with the feature off,
|
||||||
//but a safer path, usually farther away from an enemy or following behind some cover.
|
//but a safer path, usually farther away from an enemy or following behind some cover.
|
||||||
//however it has not been tested and it may need some work, I haven't touched it in a while
|
//however it has not been tested and it may need some work, I haven't touched it in a while
|
||||||
@@ -647,7 +644,7 @@ int AStarPathfinder::GetPath(SOLDIERTYPE *s ,
|
|||||||
fCloseGoodEnough = ( (fFlags & PATH_CLOSE_GOOD_ENOUGH) != 0);
|
fCloseGoodEnough = ( (fFlags & PATH_CLOSE_GOOD_ENOUGH) != 0);
|
||||||
fConsiderPersonAtDestAsObstacle = (BOOLEAN)( fPathingForPlayer && fPathAroundPeople && !(fFlags & PATH_IGNORE_PERSON_AT_DEST) );
|
fConsiderPersonAtDestAsObstacle = (BOOLEAN)( fPathingForPlayer && fPathAroundPeople && !(fFlags & PATH_IGNORE_PERSON_AT_DEST) );
|
||||||
|
|
||||||
if ( fNonSwimmer && Water( dest ) )
|
if ( fNonSwimmer && Water( dest, 0 ) )
|
||||||
{
|
{
|
||||||
DebugMsg( TOPIC_JA2, DBG_LEVEL_0, String( "ASTAR: path failed, water" ) );
|
DebugMsg( TOPIC_JA2, DBG_LEVEL_0, String( "ASTAR: path failed, water" ) );
|
||||||
return( 0 );
|
return( 0 );
|
||||||
@@ -1390,7 +1387,7 @@ INT16 AStarPathfinder::CalcAP(int const terrainCost, UINT8 const direction)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Flugente: dragging someone
|
// Flugente: dragging someone
|
||||||
if ( pSoldier->IsDraggingSomeone( ) )
|
if ( pSoldier->IsDragging( false ) )
|
||||||
{
|
{
|
||||||
movementAPCost *= gItemSettings.fDragAPCostModifier;
|
movementAPCost *= gItemSettings.fDragAPCostModifier;
|
||||||
}
|
}
|
||||||
@@ -2357,7 +2354,6 @@ bool AStarPathfinder::IsSomeoneInTheWay()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif//end ifdef USE_ASTAR_PATHS
|
|
||||||
|
|
||||||
INT8 RandomSkipListLevel( void )
|
INT8 RandomSkipListLevel( void )
|
||||||
{
|
{
|
||||||
@@ -2430,27 +2426,29 @@ INT32 FindBestPath(SOLDIERTYPE *s , INT32 sDestination, INT8 bLevel, INT16 usMov
|
|||||||
{
|
{
|
||||||
s->sPlotSrcGrid = s->sGridNo;
|
s->sPlotSrcGrid = s->sGridNo;
|
||||||
|
|
||||||
#ifdef USE_ASTAR_PATHS
|
if (gGameSettings.fOptions[TOPTION_ALT_PATHFINDING])
|
||||||
//ddd
|
|
||||||
CHAR8 errorBuf[511]; UINT32 b,e;
|
|
||||||
b=GetJA2Clock();//return s->sGridNo+6;
|
|
||||||
|
|
||||||
int retVal = ASTAR::AStarPathfinder::GetInstance().GetPath(s, sDestination, bLevel, usMovementMode, bCopy, fFlags);
|
|
||||||
|
|
||||||
e=GetJA2Clock();sprintf(errorBuf, "timefind bestpath= %d",e-b );LiveMessage(errorBuf);
|
|
||||||
|
|
||||||
if (retVal || TileIsOutOfBounds(sDestination)) {
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
DebugMsg( TOPIC_JA2, DBG_LEVEL_0, String( "ASTAR path failed!" ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
// if (TileIsOutOfBounds(sDestination))
|
|
||||||
{
|
{
|
||||||
return 0;
|
CHAR8 errorBuf[511]; UINT32 b,e;
|
||||||
|
b=GetJA2Clock();//return s->sGridNo+6;
|
||||||
|
|
||||||
|
int retVal = ASTAR::AStarPathfinder::GetInstance().GetPath(s, sDestination, bLevel, usMovementMode, bCopy, fFlags);
|
||||||
|
|
||||||
|
e=GetJA2Clock();sprintf(errorBuf, "timefind bestpath= %d",e-b );LiveMessage(errorBuf);
|
||||||
|
|
||||||
|
if (retVal || TileIsOutOfBounds(sDestination)) {
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
DebugMsg( TOPIC_JA2, DBG_LEVEL_0, String( "ASTAR path failed!" ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
// if (TileIsOutOfBounds(sDestination))
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#else
|
else
|
||||||
|
{
|
||||||
//__try
|
//__try
|
||||||
//{
|
//{
|
||||||
INT32 iDestination = sDestination, iOrigination;
|
INT32 iDestination = sDestination, iOrigination;
|
||||||
@@ -4210,7 +4208,7 @@ ENDOFLOOP:
|
|||||||
//{
|
//{
|
||||||
// return (0);
|
// return (0);
|
||||||
//}
|
//}
|
||||||
#endif
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GlobalReachableTest( INT32 sStartGridNo )
|
void GlobalReachableTest( INT32 sStartGridNo )
|
||||||
|
|||||||
+435
-587
File diff suppressed because it is too large
Load Diff
@@ -145,14 +145,11 @@ 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 to speed up search of illuminated tiles in PATH AI
|
//ddd to speed up search of illuminated tiles in PATH AI
|
||||||
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;
|
||||||
|
|||||||
@@ -281,18 +281,6 @@ 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
|
|
||||||
//UINT8 gubWorldMovementCosts[ WORLD_MAX ][MAXDIR][2];
|
|
||||||
//ddd Tables to track tactical value of grid tiles
|
|
||||||
extern BOOLEAN gubWorldTileInLight[ MAX_ALLOWED_WORLD_MAX ];
|
|
||||||
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
|
|
||||||
//ddd
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern UINT8 (*gubWorldMovementCosts)[MAXDIR][2];//dnl ch43 260909
|
extern UINT8 (*gubWorldMovementCosts)[MAXDIR][2];//dnl ch43 260909
|
||||||
|
|
||||||
//dnl ch44 290909 Translation routine
|
//dnl ch44 290909 Translation routine
|
||||||
|
|||||||
@@ -6575,6 +6575,7 @@ STR16 zOptionsToggleText[] =
|
|||||||
L"保持佣兵间距", // when multiple mercs are selected, they will try to keep their relative distances
|
L"保持佣兵间距", // when multiple mercs are selected, they will try to keep their relative distances
|
||||||
L"显示已知敌人位置", //L"Show enemy location", show locator on last known enemy location
|
L"显示已知敌人位置", //L"Show enemy location", show locator on last known enemy location
|
||||||
L"Start at maximum aim",
|
L"Start at maximum aim",
|
||||||
|
L"Alternative pathfinding",
|
||||||
L"--作弊模式选项--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
L"--作弊模式选项--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
||||||
L"强制 Bobby Ray 送货", // force all pending Bobby Ray shipments
|
L"强制 Bobby Ray 送货", // force all pending Bobby Ray shipments
|
||||||
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
||||||
@@ -6695,6 +6696,7 @@ STR16 zOptionsScreenHelpText[] =
|
|||||||
L"打开时,当选择多个佣兵,在前进时会保持彼此的间距。|C|t|r|l+|A|l|t+|G \n(按|S|h|i|f|t+点击人物头像可以加入或移出队伍)", //L"When ON and multiple mercs are selected, they will try to keep their relative distances while moving.\n(press |C|t|r|l+|A|l|t+|G to toggle mode or |S|h|i|f|t + click to move in formation)", TODO.Translate
|
L"打开时,当选择多个佣兵,在前进时会保持彼此的间距。|C|t|r|l+|A|l|t+|G \n(按|S|h|i|f|t+点击人物头像可以加入或移出队伍)", //L"When ON and multiple mercs are selected, they will try to keep their relative distances while moving.\n(press |C|t|r|l+|A|l|t+|G to toggle mode or |S|h|i|f|t + click to move in formation)", TODO.Translate
|
||||||
L"打开时,会显示已知敌人最后移动的位置。", //L"When ON, shows last known enemy location.",
|
L"打开时,会显示已知敌人最后移动的位置。", //L"When ON, shows last known enemy location.",
|
||||||
L"When ON, aiming at enemy will start at maximum aiming instead of default no aim",
|
L"When ON, aiming at enemy will start at maximum aiming instead of default no aim",
|
||||||
|
L"When ON, Use A* pathfinding algorithm, instead of original",
|
||||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
||||||
L"强制 Bobby Ray 出货",
|
L"强制 Bobby Ray 出货",
|
||||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
||||||
|
|||||||
@@ -6577,6 +6577,7 @@ STR16 zOptionsToggleText[] =
|
|||||||
L"Formation Movement", // when multiple mercs are selected, they will try to keep their relative distances // TODO.Translate
|
L"Formation Movement", // when multiple mercs are selected, they will try to keep their relative distances // TODO.Translate
|
||||||
L"Show enemy location", // show locator on last known enemy location
|
L"Show enemy location", // show locator on last known enemy location
|
||||||
L"Start at maximum aim",
|
L"Start at maximum aim",
|
||||||
|
L"Alternative pathfinding",
|
||||||
L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
||||||
L"Force Bobby Ray shipments", // force all pending Bobby Ray shipments
|
L"Force Bobby Ray shipments", // force all pending Bobby Ray shipments
|
||||||
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
||||||
@@ -6697,6 +6698,7 @@ STR16 zOptionsScreenHelpText[] =
|
|||||||
L"When ON and multiple mercs are selected, they will try to keep their relative distances while moving.\n(press |C|t|r|l+|A|l|t+|G to toggle mode or |S|h|i|f|t + click to move in formation)", //TODO.Translate
|
L"When ON and multiple mercs are selected, they will try to keep their relative distances while moving.\n(press |C|t|r|l+|A|l|t+|G to toggle mode or |S|h|i|f|t + click to move in formation)", //TODO.Translate
|
||||||
L"When ON, shows last known enemy location.", //TODO.Translate
|
L"When ON, shows last known enemy location.", //TODO.Translate
|
||||||
L"When ON, aiming at enemy will start at maximum aiming instead of default no aim",
|
L"When ON, aiming at enemy will start at maximum aiming instead of default no aim",
|
||||||
|
L"When ON, Use A* pathfinding algorithm, instead of original",
|
||||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
||||||
L"Force all pending Bobby Ray shipments",
|
L"Force all pending Bobby Ray shipments",
|
||||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
||||||
|
|||||||
@@ -6575,6 +6575,7 @@ STR16 zOptionsToggleText[] =
|
|||||||
L"Formation Movement", // when multiple mercs are selected, they will try to keep their relative distances
|
L"Formation Movement", // when multiple mercs are selected, they will try to keep their relative distances
|
||||||
L"Show enemy location", // show locator on last known enemy location
|
L"Show enemy location", // show locator on last known enemy location
|
||||||
L"Start at maximum aim",
|
L"Start at maximum aim",
|
||||||
|
L"Alternative pathfinding",
|
||||||
L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
||||||
L"Force Bobby Ray Shipments", // force all pending Bobby Ray shipments
|
L"Force Bobby Ray Shipments", // force all pending Bobby Ray shipments
|
||||||
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
||||||
@@ -6695,6 +6696,7 @@ STR16 zOptionsScreenHelpText[] =
|
|||||||
L"When ON and multiple mercs are selected, they will try to keep their relative distances while moving.\n(press |C|t|r|l+|A|l|t+|G to toggle mode or |S|h|i|f|t + click to move in formation)",
|
L"When ON and multiple mercs are selected, they will try to keep their relative distances while moving.\n(press |C|t|r|l+|A|l|t+|G to toggle mode or |S|h|i|f|t + click to move in formation)",
|
||||||
L"When ON, shows last known enemy location.",
|
L"When ON, shows last known enemy location.",
|
||||||
L"When ON, aiming at enemy will start at maximum aiming instead of default no aim",
|
L"When ON, aiming at enemy will start at maximum aiming instead of default no aim",
|
||||||
|
L"When ON, Use A* pathfinding algorithm, instead of original",
|
||||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
||||||
L"Force all pending Bobby Ray shipments",
|
L"Force all pending Bobby Ray shipments",
|
||||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
||||||
|
|||||||
@@ -6582,6 +6582,7 @@ STR16 zOptionsToggleText[] =
|
|||||||
L"Déplacement tactique", // when multiple mercs are selected, they will try to keep their relative distances
|
L"Déplacement tactique", // when multiple mercs are selected, they will try to keep their relative distances
|
||||||
L"Show enemy location", // show locator on last known enemy location
|
L"Show enemy location", // show locator on last known enemy location
|
||||||
L"Start at maximum aim",
|
L"Start at maximum aim",
|
||||||
|
L"Alternative pathfinding",
|
||||||
L"--Options mode triche--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
L"--Options mode triche--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
||||||
L"Forcer envois Bobby Ray", // force all pending Bobby Ray shipments
|
L"Forcer envois Bobby Ray", // force all pending Bobby Ray shipments
|
||||||
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
||||||
@@ -6701,6 +6702,7 @@ STR16 zOptionsScreenHelpText[] =
|
|||||||
L"When ON and multiple mercs are selected, they will try to keep their relative distances while moving.\n(press |C|t|r|l+|A|l|t+|G to toggle mode or |S|h|i|f|t + click to move in formation)", //TODO.Translate
|
L"When ON and multiple mercs are selected, they will try to keep their relative distances while moving.\n(press |C|t|r|l+|A|l|t+|G to toggle mode or |S|h|i|f|t + click to move in formation)", //TODO.Translate
|
||||||
L"When ON, shows last known enemy location.", //TODO.Translate
|
L"When ON, shows last known enemy location.", //TODO.Translate
|
||||||
L"When ON, aiming at enemy will start at maximum aiming instead of default no aim",
|
L"When ON, aiming at enemy will start at maximum aiming instead of default no aim",
|
||||||
|
L"When ON, Use A* pathfinding algorithm, instead of original",
|
||||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
||||||
L"Forcer tous les envois en attente de Bobby Ray",
|
L"Forcer tous les envois en attente de Bobby Ray",
|
||||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
||||||
|
|||||||
@@ -6448,6 +6448,7 @@ STR16 zOptionsToggleText[] =
|
|||||||
L"Bewegung in Formation", // when multiple mercs are selected, they will try to keep their relative distances
|
L"Bewegung in Formation", // when multiple mercs are selected, they will try to keep their relative distances
|
||||||
L"Show enemy location", // show locator on last known enemy location
|
L"Show enemy location", // show locator on last known enemy location
|
||||||
L"Start at maximum aim",
|
L"Start at maximum aim",
|
||||||
|
L"Alternative pathfinding",
|
||||||
L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
||||||
L"Erzwinge BR Lieferung", // force all pending Bobby Ray shipments
|
L"Erzwinge BR Lieferung", // force all pending Bobby Ray shipments
|
||||||
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
||||||
@@ -6568,6 +6569,7 @@ STR16 zOptionsScreenHelpText[] =
|
|||||||
L"When ON and multiple mercs are selected, they will try to keep their relative distances while moving.\n(press |C|t|r|l+|A|l|t+|G to toggle mode or |S|h|i|f|t + click to move in formation)", //TODO.Translate
|
L"When ON and multiple mercs are selected, they will try to keep their relative distances while moving.\n(press |C|t|r|l+|A|l|t+|G to toggle mode or |S|h|i|f|t + click to move in formation)", //TODO.Translate
|
||||||
L"When ON, shows last known enemy location.", //TODO.Translate
|
L"When ON, shows last known enemy location.", //TODO.Translate
|
||||||
L"When ON, aiming at enemy will start at maximum aiming instead of default no aim",
|
L"When ON, aiming at enemy will start at maximum aiming instead of default no aim",
|
||||||
|
L"When ON, Use A* pathfinding algorithm, instead of original",
|
||||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
||||||
L"Force all pending Bobby Ray shipments",
|
L"Force all pending Bobby Ray shipments",
|
||||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
||||||
|
|||||||
@@ -6560,6 +6560,7 @@ STR16 zOptionsToggleText[] =
|
|||||||
L"Formation Movement", // when multiple mercs are selected, they will try to keep their relative distances // TODO.Translate
|
L"Formation Movement", // when multiple mercs are selected, they will try to keep their relative distances // TODO.Translate
|
||||||
L"Show enemy location", // show locator on last known enemy location
|
L"Show enemy location", // show locator on last known enemy location
|
||||||
L"Start at maximum aim",
|
L"Start at maximum aim",
|
||||||
|
L"Alternative pathfinding",
|
||||||
L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
||||||
L"Force Bobby Ray shipments", // force all pending Bobby Ray shipments
|
L"Force Bobby Ray shipments", // force all pending Bobby Ray shipments
|
||||||
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
||||||
@@ -6680,6 +6681,7 @@ STR16 zOptionsScreenHelpText[] =
|
|||||||
L"When ON and multiple mercs are selected, they will try to keep their relative distances while moving.\n(press |C|t|r|l+|A|l|t+|G to toggle mode or |S|h|i|f|t + click to move in formation)", //TODO.Translate
|
L"When ON and multiple mercs are selected, they will try to keep their relative distances while moving.\n(press |C|t|r|l+|A|l|t+|G to toggle mode or |S|h|i|f|t + click to move in formation)", //TODO.Translate
|
||||||
L"When ON, shows last known enemy location.", //TODO.Translate
|
L"When ON, shows last known enemy location.", //TODO.Translate
|
||||||
L"When ON, aiming at enemy will start at maximum aiming instead of default no aim",
|
L"When ON, aiming at enemy will start at maximum aiming instead of default no aim",
|
||||||
|
L"When ON, Use A* pathfinding algorithm, instead of original",
|
||||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
||||||
L"Force all pending Bobby Ray shipments",
|
L"Force all pending Bobby Ray shipments",
|
||||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
||||||
|
|||||||
@@ -6579,6 +6579,7 @@ STR16 zOptionsToggleText[] =
|
|||||||
L"Formation Movement", // when multiple mercs are selected, they will try to keep their relative distances // TODO.Translate
|
L"Formation Movement", // when multiple mercs are selected, they will try to keep their relative distances // TODO.Translate
|
||||||
L"Show enemy location", // show locator on last known enemy location
|
L"Show enemy location", // show locator on last known enemy location
|
||||||
L"Start at maximum aim",
|
L"Start at maximum aim",
|
||||||
|
L"Alternative pathfinding",
|
||||||
L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
||||||
L"Force Bobby Ray shipments", // force all pending Bobby Ray shipments
|
L"Force Bobby Ray shipments", // force all pending Bobby Ray shipments
|
||||||
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
||||||
@@ -6699,6 +6700,7 @@ STR16 zOptionsScreenHelpText[] =
|
|||||||
L"When ON and multiple mercs are selected, they will try to keep their relative distances while moving.\n(press |C|t|r|l+|A|l|t+|G to toggle mode or |S|h|i|f|t + click to move in formation)", //TODO.Translate
|
L"When ON and multiple mercs are selected, they will try to keep their relative distances while moving.\n(press |C|t|r|l+|A|l|t+|G to toggle mode or |S|h|i|f|t + click to move in formation)", //TODO.Translate
|
||||||
L"When ON, shows last known enemy location.", //TODO.Translate
|
L"When ON, shows last known enemy location.", //TODO.Translate
|
||||||
L"When ON, aiming at enemy will start at maximum aiming instead of default no aim",
|
L"When ON, aiming at enemy will start at maximum aiming instead of default no aim",
|
||||||
|
L"When ON, Use A* pathfinding algorithm, instead of original",
|
||||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
||||||
L"Wymuś wszystkie oczekiwane dostawy od Bobby Ray's.",
|
L"Wymuś wszystkie oczekiwane dostawy od Bobby Ray's.",
|
||||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
||||||
|
|||||||
@@ -6571,6 +6571,7 @@ STR16 zOptionsToggleText[] =
|
|||||||
L"Боевой порядок", // when multiple mercs are selected, they will try to keep their relative distances
|
L"Боевой порядок", // when multiple mercs are selected, they will try to keep their relative distances
|
||||||
L"Показывать расположение", // show locator on last known enemy location
|
L"Показывать расположение", // show locator on last known enemy location
|
||||||
L"Start at maximum aim",
|
L"Start at maximum aim",
|
||||||
|
L"Alternative pathfinding",
|
||||||
L"--Читерские настройки--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
L"--Читерские настройки--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER,
|
||||||
L"Ускорить доставку Бобби Рэя", // force all pending Bobby Ray shipments
|
L"Ускорить доставку Бобби Рэя", // force all pending Bobby Ray shipments
|
||||||
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END
|
||||||
@@ -6691,6 +6692,7 @@ STR16 zOptionsScreenHelpText[] =
|
|||||||
L"Если выбрано несколько наёмников,\nони будут пытаться сохранять взаимное расположение\nи дистанцию при движении\n(нажмите |C|t|r|l+|A|l|t+|G для переключения или |S|h|i|f|t + клик для движения).",
|
L"Если выбрано несколько наёмников,\nони будут пытаться сохранять взаимное расположение\nи дистанцию при движении\n(нажмите |C|t|r|l+|A|l|t+|G для переключения или |S|h|i|f|t + клик для движения).",
|
||||||
L"Если включено, показывает известное расположение противника\n(нажмите |S|h|i|f|t, чтобы показать источник шума).",
|
L"Если включено, показывает известное расположение противника\n(нажмите |S|h|i|f|t, чтобы показать источник шума).",
|
||||||
L"When ON, aiming at enemy will start at maximum aiming instead of default no aim",
|
L"When ON, aiming at enemy will start at maximum aiming instead of default no aim",
|
||||||
|
L"When ON, Use A* pathfinding algorithm, instead of original",
|
||||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",
|
||||||
L"Выберите этот пункт,\nчтобы груз Бобби Рэя прибыл немедленно.",
|
L"Выберите этот пункт,\nчтобы груз Бобби Рэя прибыл немедленно.",
|
||||||
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END",
|
||||||
|
|||||||
Reference in New Issue
Block a user