diff --git a/Strategic/strategicmap.cpp b/Strategic/strategicmap.cpp index 2b3b244c..faed22da 100644 --- a/Strategic/strategicmap.cpp +++ b/Strategic/strategicmap.cpp @@ -5863,3 +5863,15 @@ void CrippledVersionFailureToLoadMapCallBack( UINT8 bExitValue ) } } #endif +BOOLEAN EscapeDirectionIsValid( INT8 * pbDirection ) +{ + switch( *pbDirection ) + { + case NORTHEAST: if( gWorldSectorX + 1 > MAXIMUM_VALID_X_COORDINATE ) *pbDirection = -1; break; // east + case SOUTHEAST: if( gWorldSectorY + 1 > MAXIMUM_VALID_Y_COORDINATE ) *pbDirection = -1; break; // south + case SOUTHWEST: if( gWorldSectorX - 1 < MINIMUM_VALID_X_COORDINATE ) *pbDirection = -1; break; // west + case NORTHWEST: if( gWorldSectorY - 1 < MINIMUM_VALID_Y_COORDINATE ) *pbDirection = -1; break; // north + default: *pbDirection = -1; + } + return( *pbDirection != -1 ); +} diff --git a/Strategic/strategicmap.h b/Strategic/strategicmap.h index 81db938a..5c0e86ca 100644 --- a/Strategic/strategicmap.h +++ b/Strategic/strategicmap.h @@ -170,6 +170,7 @@ void SetupProfileInsertionDataForSoldier( SOLDIERTYPE *pSoldier ); BOOLEAN HandlePotentialBringUpAutoresolveToFinishBattle( int pSectorX, int pSectorY, int pSectorZ ); +BOOLEAN EscapeDirectionIsValid( INT8 * pbDirection ); //Used for determining the type of error message that comes up when you can't traverse to //an adjacent sector. THESE VALUES DO NOT NEED TO BE SAVED! extern BOOLEAN gfInvalidTraversal; diff --git a/TacticalAI/FindLocations.cpp b/TacticalAI/FindLocations.cpp index 4d558242..1d89b73e 100644 --- a/TacticalAI/FindLocations.cpp +++ b/TacticalAI/FindLocations.cpp @@ -1334,7 +1334,7 @@ INT16 FindSpotMaxDistFromOpponents(SOLDIERTYPE *pSoldier) iSpotClosestThreatRange = 1500; - if ( pSoldier->bTeam == ENEMY_TEAM && GridNoOnEdgeOfMap( sGridNo, &bEscapeDirection ) ) + if ( pSoldier->bTeam == ENEMY_TEAM && GridNoOnEdgeOfMap( sGridNo, &bEscapeDirection ) && EscapeDirectionIsValid( &bEscapeDirection ) ) { // We can escape! This is better than anything else except a closer spot which we can // cross over from. diff --git a/Utils/_ChineseText.cpp b/Utils/_ChineseText.cpp index aeff565a..69d67013 100644 --- a/Utils/_ChineseText.cpp +++ b/Utils/_ChineseText.cpp @@ -915,7 +915,7 @@ STR16 gzMercSkillText[] = L"偷窃", //"Thief", L"武术", //"Martial Arts", L"刀技", //"Knifing", - L"神射手", //"Sniper", + L"狙击手", //"Sniper", L"伪装", //"Camouflage", //JA25: modified L"伪装(城市)", //"Camouflage (Urban)", L"伪装(沙漠)", //"Camouflage (Desert)", diff --git a/Utils/_Ja25ChineseText.cpp b/Utils/_Ja25ChineseText.cpp index 901a072d..100bc612 100644 --- a/Utils/_Ja25ChineseText.cpp +++ b/Utils/_Ja25ChineseText.cpp @@ -88,7 +88,7 @@ STR16 gzIMPSkillTraitsText[]= L"潜行", //"Stealth", L"双手武器", //"Ambidextrous", L"刀技", //"Knifing", - L"神射手", //"Sniper", + L"狙击手", //"Sniper", L"伪装", //"Camouflage", L"武术", //"Martial Arts",