New Feature: tracking allows rangers to track past movements.

Fro more info, see http://www.ja-galaxy-forum.com/ubbthreads.php/topics/337545#Post337545

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7646 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2014-11-04 20:03:18 +00:00
parent 60bffb1352
commit 94ded57962
30 changed files with 599 additions and 614 deletions
+2
View File
@@ -2313,6 +2313,8 @@ void LoadSkillTraitsExternalSettings()
gSkillTraitValues.ubRAWeatherPenaltiesReduction = iniReader.ReadInteger("Ranger","WEATHER_PENALTIES_REDUCTION", 50, 0, 100);
//gSkillTraitValues.ubRACamoEffectivenessBonus = iniReader.ReadInteger("Ranger","CAMO_EFFECTIVENESS_BONUS_PERCENT", 10, 0, 100);
gSkillTraitValues.ubRACamoWornountSpeedReduction = iniReader.ReadInteger("Ranger","CAMO_WORNOUT_SPEED_REDUCTION", 50, 0, 100);
gSkillTraitValues.usTrackerMaxRange = iniReader.ReadInteger( "Ranger", "TRACKER_MAX_RANGE", 30, 0, 50 );
gSkillTraitValues.usTrackerAbility = iniReader.ReadInteger( "Ranger", "TRACKER_ABILITY", 30, 0, 50 );
// GUNSLINGER
gSkillTraitValues.ubGSFiringSpeedBonusPistols = iniReader.ReadInteger("Gunslinger","FIRING_SPEED_BONUS_PISTOLS", 15, 0, 45);
+2
View File
@@ -1608,6 +1608,8 @@ typedef struct
UINT8 ubRACamoWornountSpeedReduction;
UINT8 ubRAFiringSpeedBonusShotguns;
UINT8 ubRAAimClicksAdded;
UINT16 usTrackerMaxRange;
UINT8 usTrackerAbility;
// GUNSLINGER
UINT8 ubGSFiringSpeedBonusPistols;
+9 -9
View File
@@ -15,9 +15,9 @@
#ifdef JA2EDITOR
#ifdef JA2UB
CHAR16 zVersionLabel[256] = { L"Unfinished Business - Map Editor v1.13.7614 (Development Build)" };
CHAR16 zVersionLabel[256] = { L"Unfinished Business - Map Editor v1.13.7646 (Development Build)" };
#else
CHAR16 zVersionLabel[256] = { L"Map Editor v1.13.7614 (Development Build)" };
CHAR16 zVersionLabel[256] = { L"Map Editor v1.13.7646 (Development Build)" };
#endif
// ------------------------------
@@ -27,11 +27,11 @@
//DEBUG BUILD VERSION
#ifdef JA2UB
CHAR16 zVersionLabel[256] = { L"Debug: Unfinished Business - v1.13.7614 (Development Build)" };
CHAR16 zVersionLabel[256] = { L"Debug: Unfinished Business - v1.13.7646 (Development Build)" };
#elif defined (JA113DEMO)
CHAR16 zVersionLabel[256] = { L"Debug: JA2 Demo - v1.13.7614 (Development Build)" };
CHAR16 zVersionLabel[256] = { L"Debug: JA2 Demo - v1.13.7646 (Development Build)" };
#else
CHAR16 zVersionLabel[256] = { L"Debug: v1.13.7614 (Development Build)" };
CHAR16 zVersionLabel[256] = { L"Debug: v1.13.7646 (Development Build)" };
#endif
#elif defined CRIPPLED_VERSION
@@ -46,16 +46,16 @@
//RELEASE BUILD VERSION
#ifdef JA2UB
CHAR16 zVersionLabel[256] = { L"Release Unfinished Business - v1.13.7614 (Development Build)" };
CHAR16 zVersionLabel[256] = { L"Release Unfinished Business - v1.13.7646 (Development Build)" };
#elif defined (JA113DEMO)
CHAR16 zVersionLabel[256] = { L"Release JA2 Demo - v1.13.7614 (Development Build)" };
CHAR16 zVersionLabel[256] = { L"Release JA2 Demo - v1.13.7646 (Development Build)" };
#else
CHAR16 zVersionLabel[256] = { L"Release v1.13.7614 (Development Build)" };
CHAR16 zVersionLabel[256] = { L"Release v1.13.7646 (Development Build)" };
#endif
#endif
CHAR8 czVersionNumber[16] = { "Build 14.10.26" }; //YY.MM.DD
CHAR8 czVersionNumber[16] = { "Build 14.11.3" }; //YY.MM.DD
CHAR16 zTrackingNumber[16] = { L"Z" };
// SAVE_GAME_VERSION is defined in header, change it there
+5
View File
@@ -499,6 +499,11 @@ void AssignBackgroundHelpText( UINT16 ubNumber, MOUSE_REGION* pMouseregion )
swprintf( atStr, szBackgroundText_Value[i] );
wcscat( apStr, atStr );
}
else if ( BG_TRACKER_ABILITY == i && zBackground[ubNumber].value[i] )
{
swprintf( atStr, szBackgroundText_Value[i], (UINT16)((gSkillTraitValues.usTrackerMaxRange * zBackground[ubNumber].value[i]) / 100) );
wcscat( apStr, atStr );
}
else if ( zBackground[ ubNumber ].value[i] )
{
swprintf(atStr, szBackgroundText_Value[ i ], zBackground[ ubNumber ].value[i] > 0 ? L"+" : L"", zBackground[ ubNumber ].value[i] );
+7
View File
@@ -7444,6 +7444,13 @@ void AssignPersonnelSkillTraitHelpText( UINT8 ubTraitNumber, BOOLEAN fExpertLeve
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[11], ( gSkillTraitValues.ubRACamoWornountSpeedReduction * (fExpertLevel ? 2 : 1)), sSpecialCharacters[0]);
wcscat( apStr, atStr );
}
if ( gSkillTraitValues.usTrackerMaxRange && gSkillTraitValues.usTrackerAbility )
{
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[12], (gSkillTraitValues.usTrackerAbility * (fExpertLevel ? 2 : 1) * gSkillTraitValues.usTrackerMaxRange / 100) );
wcscat( apStr, atStr );
}
break;
}
case GUNSLINGER_NT:
+412 -492
View File
File diff suppressed because it is too large Load Diff
+73 -48
View File
@@ -1,8 +1,8 @@
#ifndef _DISPLAY_COVER__H_
#define _DISPLAY_COVER__H_
void DisplayCoverOfSelectedGridNo( );
void RemoveCoverOfSelectedGridNo();
// resets the overlay modes so that everything will be reset at the NEXT display cycle
void ResetOverlayModes();
void DisplayRangeToTarget( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo );
void DisplayCover(const BOOLEAN& forceUpdate = FALSE);
@@ -14,29 +14,66 @@ void SwitchViewOff();
void ToggleMercView();
void ToggleEnemyView();
void SwitchCoverDrawMode();
void RemoveVisibleGridNoAtSelectedGridNo();
void DisplayGridNoVisibleToSoldierGrid( );
void CalculateCoverForSoldier( SOLDIERTYPE* pForSoldier, const INT32& sTargetGridNo, const BOOLEAN& fRoof, INT8& bCover );
void CalculateCoverFromSoldier( SOLDIERTYPE* pFromSoldier, const INT32& sTargetGridNo, const BOOLEAN& fRoof, INT8& bCover, SOLDIERTYPE* pToSoldier = NULL );
BOOLEAN CanSoldierSeeFloor( SOLDIERTYPE* pSoldier, INT32 sGridNo, INT8 bLevel );
#define DC_MAX_COVER_RANGE 43 //31
#define DC__SOLDIER_VISIBLE_RANGE 43 //31
#define DC__MIN_SIZE 4
#define DC__MAX_SIZE 21 //11
enum COVER_VALUES
// Flugente: all different overlays in one enum
enum OVERLAY_VALUES
{
INVALID_COVER = -1,
NO_COVER = 0,
MIN_COVER = 1,
MED_COVER = 2,
MAX_COVER = 3
NO_COVER,
MIN_COVER,
MED_COVER,
MAX_COVER,
NO_SEE,
MIN_SEE,
MED_SEE,
MAX_SEE,
MINES_ALL,
MINE_BOMB,
MINE_WIRE,
MINE_BOMB_AND_WIRE,
MINES_NET_1,
MINES_NET_2,
MINES_NET_3,
MINES_NET_4,
MINES_LVL_1,
MINES_LVL_2,
MINES_LVL_3,
MINES_LVL_4,
MAX_MINES,
TRAIT_ALL,
TRAIT_1,
TRAIT_2,
MAX_TRAIT,
TRACKS_VERYOLD,
TRACKS_OLD,
TRACKS_RECENT,
TRACKS_BLOOD,
MAX_TRACKS,
};
enum COVER_DRAW_MODE {
COVER_DRAW_OFF,
COVER_DRAW_MERC_VIEW,
COVER_DRAW_ENEMY_VIEW
};
void ChangeSizeOfDisplayCover( INT32 iNewSize );
void ChangeSizeOfLOS( INT32 iNewSize );
//ddd for optimize oppponent turn
INT8 CalcCoverForGridNoBasedOnTeamKnownEnemies( SOLDIERTYPE *pSoldier, INT16 sTargetGridNo, INT8 bStance );
//ddd for optimize oppponent turn
// ----------------------------- Mines display after this ----------------------------------------
// added by Flugente: display of mine, bombs and tripwire
// Flugente: mines display - stuff needs to be here
// Sevenfm: moved here from DisplayCover.cpp
enum MINES_DRAW_MODE {
@@ -51,35 +88,6 @@ enum MINES_DRAW_MODE {
MINES_DRAW_MAX
};
// Flugente: trait draw mode
enum TRAIT_DRAW_MODE {
TRAIT_DRAW_OFF,
TRAIT_DRAW_RANGE,
TRAIT_DRAW_MAX
};
enum COVER_DRAW_MODE {
COVER_DRAW_OFF,
COVER_DRAW_MERC_VIEW,
COVER_DRAW_ENEMY_VIEW
};
#ifdef JA2TESTVERSION
void DisplayLosAndDisplayCoverUsageScreenMsg();
#endif
void ChangeSizeOfDisplayCover( INT32 iNewSize );
void ChangeSizeOfLOS( INT32 iNewSize );
//ddd for optimize oppponent turn
INT8 CalcCoverForGridNoBasedOnTeamKnownEnemies( SOLDIERTYPE *pSoldier, INT16 sTargetGridNo, INT8 bStance );
//ddd for optimize oppponent turn
// ----------------------------- Mines display after this ----------------------------------------
// added by Flugente: display of mine, bombs and tripwire
void DisplayMines(const BOOLEAN& forceUpdate = FALSE);
void SwitchToTrapNetworkView();
void SwitchToHostileTrapsView();
void SwitchMineViewOff();
@@ -91,10 +99,27 @@ void SwitchMinesDrawModeForNetworks();
// ----------------------------- trait range display after this ----------------------------------------
// added by Flugente: display of ranges and areas of effects for traits
void DisplayTraitRange(const BOOLEAN& forceUpdate = FALSE);
// Flugente: trait draw mode
enum TRAIT_DRAW_MODE {
TRAIT_DRAW_OFF,
TRAIT_DRAW_RANGE,
TRAIT_DRAW_MAX
};
void ToggleTraitRangeView(BOOLEAN fOn = TRUE);
void SetTraitToDisplay( UINT32 aTrait );
void SetGridNoForTraitDisplay( INT32 sGridNo );
// ----------------------------- tracker display after this ----------------------------------------
// added by Flugente: display of ranges and areas of effects for traits
// Flugente: trait draw mode
enum TRACKER_DRAW_MODE {
TRACKER_DRAW_OFF,
TRACKER_DRAW_SMELL,
TRACKER_DRAW_MAX
};
extern TRACKER_DRAW_MODE gubDrawModeTracker;
#endif
-2
View File
@@ -650,8 +650,6 @@ UINT32 HandleTacticalUI( void )
DisplayCover();
DisplayMines(); // added by Flugente
if ( HandleItemPickupMenu( ) )
{
uiNewEvent = A_CHANGE_TO_MOVE;
+1
View File
@@ -189,6 +189,7 @@ enum {
BG_PERC_SPOTTER,
BG_PERC_DISEASE_DIAGNOSE,
BG_PERC_DISEASE_TREAT,
BG_TRACKER_ABILITY,
BG_DISLIKEBG, // dislike any other background that has the negative of this value set
+6
View File
@@ -2691,6 +2691,7 @@ void HandleJohnArrival( SOLDIERTYPE * pSoldier )
}
}
extern void DisplayCover( const BOOLEAN& forceUpdate );
BOOLEAN HandleAtNewGridNo( SOLDIERTYPE *pSoldier, BOOLEAN *pfKeepMoving )
{
@@ -2940,6 +2941,11 @@ BOOLEAN HandleAtNewGridNo( SOLDIERTYPE *pSoldier, BOOLEAN *pfKeepMoving )
HandleSystemNewAISituation( pSoldier, FALSE );
// Flugente: tracker...
if ( pSoldier->bInSector && gusSelectedSoldier == pSoldier->ubID && !pSoldier->bCollapsed )
{
DisplayCover( TRUE );
}
#ifdef LUA_OVERHEAD
LetLuaMyCustomHandleAtNewGridNo(NULL,pSoldier->ubProfile, 0);
+7
View File
@@ -17372,6 +17372,8 @@ INT16 SOLDIERTYPE::GetInterruptModifier( UINT8 usDistance )
return bonus;
}
extern void DisplayCover( const BOOLEAN& forceUpdate );
void SOLDIERTYPE::SoldierPropertyUpkeep( )
{
// these effects last only one turn
@@ -17427,7 +17429,12 @@ void SOLDIERTYPE::SoldierPropertyUpkeep( )
{
this->usSoldierFlagMask &= ~SOLDIER_BATTLE_PARTICIPATION;
}
if ( this->bInSector && this->bTeam == gbPlayerNum && !this->bCollapsed )
{
DisplayCover( TRUE );
}
}
// check if Soldier can use the spell skillwise, with fAPCheck = TRUE also check current APs
BOOLEAN SOLDIERTYPE::CanUseSkill( INT8 iSkill, BOOLEAN fAPCheck )
+23 -14
View File
@@ -8231,6 +8231,7 @@ void HandleTacticalCoverMenu( void )
gzUserDefinedButtonColor[1] = FONT_MCOLOR_LTYELLOW;
gzUserDefinedButtonColor[2] = FONT_MCOLOR_LTYELLOW;
gzUserDefinedButtonColor[4] = gDisplayEnemyRoles ? FONT_MCOLOR_LTGREEN : FONT_LTRED;
gzUserDefinedButtonColor[6] = (gubDrawModeTracker == TRACKER_DRAW_OFF) ? FONT_LTRED : FONT_MCOLOR_LTGREEN;
gzUserDefinedButtonColor[8] = FONT_ORANGE;
gzUserDefinedButtonColor[9] = FONT_ORANGE;
gzUserDefinedButtonColor[10] = FONT_ORANGE;
@@ -8244,22 +8245,18 @@ void HandleTacticalCoverMenu( void )
void TacticalCoverMessageBoxCallBack( UINT8 ubExitValue )
{
gubDrawModeMine = MINES_DRAW_OFF;
gubDrawMode = COVER_DRAW_OFF;
switch( ubExitValue )
{
case 1:
gubDrawModeMine = MINES_DRAW_OFF;
gubDrawMode = COVER_DRAW_OFF;
DisplayMines(TRUE);
ResetOverlayModes( );
break;
case 2:
ResetOverlayModes( );
gubDrawMode = COVER_DRAW_ENEMY_VIEW;
DisplayCover(TRUE);
break;
case 3:
ResetOverlayModes( );
gubDrawMode = COVER_DRAW_MERC_VIEW;
DisplayCover(TRUE);
break;
case 4:
break;
@@ -8269,40 +8266,52 @@ void TacticalCoverMessageBoxCallBack( UINT8 ubExitValue )
case 6:
break;
case 7:
if ( gubDrawModeTracker == TRACKER_DRAW_SMELL )
{
ResetOverlayModes( );
}
else
{
ResetOverlayModes( );
gubDrawModeTracker = TRACKER_DRAW_SMELL;
}
break;
case 8:
break;
case 9:
ResetOverlayModes( );
gubDrawModeMine = MINES_DRAW_PLAYERTEAM_NETWORKS;
DisplayMines(TRUE);
break;
case 10:
ResetOverlayModes( );
gubDrawModeMine = MINES_DRAW_NETWORKCOLOURING;
DisplayMines(TRUE);
break;
case 11:
ResetOverlayModes( );
gubDrawModeMine = MINES_DRAW_DETECT_ENEMY;
DisplayMines(TRUE);
break;
case 12:
break;
case 13:
ResetOverlayModes( );
gubDrawModeMine = MINES_DRAW_NET_A;
DisplayMines(TRUE);
break;
case 14:
ResetOverlayModes( );
gubDrawModeMine = MINES_DRAW_NET_B;
DisplayMines(TRUE);
break;
case 15:
ResetOverlayModes( );
gubDrawModeMine = MINES_DRAW_NET_C;
DisplayMines(TRUE);
break;
case 16:
ResetOverlayModes( );
gubDrawModeMine = MINES_DRAW_NET_D;
DisplayMines(TRUE);
break;
}
DisplayCover( TRUE );
if( ubExitValue <= TACTICAL_COVER_DIALOG_NUM )
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szTacticalCoverDialogPrintString[ubExitValue-1]);
}
+7 -1
View File
@@ -128,6 +128,7 @@ backgroundStartElementHandle(void *userData, const XML_Char *name, const XML_Cha
strcmp(name, "spotter") == 0 ||
strcmp(name, "disease_diagnose" ) == 0 ||
strcmp(name, "disease_treatment" ) == 0 ||
strcmp(name, "tracker_ability" ) == 0 ||
strcmp(name, "dislikebackground" ) == 0 ||
strcmp(name, "druguse") == 0 ||
strcmp(name, "xenophobic") == 0 ||
@@ -137,7 +138,7 @@ backgroundStartElementHandle(void *userData, const XML_Char *name, const XML_Cha
strcmp(name, "traplevel") == 0 ||
strcmp(name, "no_male") == 0 ||
strcmp(name, "no_female") == 0 ||
strcmp( name, "loyalitylossondeath" ) == 0 ))
strcmp(name, "loyalitylossondeath" ) == 0 ))
{
pData->curElement = ELEMENT_PROPERTY;
@@ -538,6 +539,11 @@ backgroundEndElementHandle(void *userData, const XML_Char *name)
pData->curElement = ELEMENT;
pData->curBackground.value[BG_PERC_DISEASE_TREAT] = min( 50, max( -50, (INT16)atol( pData->szCharData ) ) );
}
else if ( strcmp( name, "tracker_ability" ) == 0 )
{
pData->curElement = ELEMENT;
pData->curBackground.value[BG_TRACKER_ABILITY] = min( 40, max( 0, (INT16)atol( pData->szCharData ) ) );
}
else if ( strcmp( name, "dislikebackground" ) == 0 )
{
pData->curElement = ELEMENT;
+21 -40
View File
@@ -63,19 +63,19 @@
UINT8 ubBloodGraphicLUT [ ] = { 3, 3, 2, 2, 1, 1, 0, 0 };
#define SMELL_STRENGTH_MAX 63
#define BLOOD_STRENGTH_MAX 7
#define BLOOD_DELAY_MAX 3
#define SMELL_STRENGTH_MAX 63
#define BLOOD_STRENGTH_MAX 7
#define BLOOD_DELAY_MAX 3
#define SMELL_TYPE_BITS( s ) (s & 0x03)
#define SMELL_TYPE_BITS( s ) (s & 0x03)
#define BLOOD_ROOF_TYPE( s ) (s & 0x02)
#define BLOOD_FLOOR_TYPE( s ) (s & 0x01)
#define BLOOD_ROOF_TYPE( s ) (s & 0x02)
#define BLOOD_FLOOR_TYPE( s ) (s & 0x01)
#define BLOOD_ROOF_STRENGTH( b ) (b & 0xE0)
#define BLOOD_FLOOR_STRENGTH( b ) ( (b & 0x1C) >> 2 )
#define BLOOD_DELAY_TIME( b ) (b & 0x03)
#define NO_BLOOD_STRENGTH( b ) ((b & 0xFC) == 0)
#define BLOOD_FLOOR_STRENGTH( b ) ( (b & 0x1C) >> 2 )
#define BLOOD_DELAY_TIME( b ) (b & 0x03)
#define NO_BLOOD_STRENGTH( b ) ((b & 0xFC) == 0)
#define DECAY_SMELL_STRENGTH( s ) \
{ \
@@ -150,17 +150,13 @@ void RemoveBlood( INT32 sGridNo, INT8 bLevel )
UpdateBloodGraphics( sGridNo, bLevel );
}
void DecaySmells( void )
{
INT32 uiLoop;
MAP_ELEMENT * pMapElement;
//return;
for (uiLoop = 0, pMapElement = gpWorldLevelData; uiLoop < WORLD_MAX; uiLoop++, pMapElement++)
for ( uiLoop = 0, pMapElement = gpWorldLevelData; uiLoop < WORLD_MAX; ++uiLoop, ++pMapElement )
{
if (pMapElement->ubSmellInfo)
{
// decay smell strength!
@@ -174,13 +170,12 @@ void DecaySmells( void )
}
}
void DecayBlood()
{
INT32 uiLoop;
MAP_ELEMENT * pMapElement;
for (uiLoop = 0, pMapElement = gpWorldLevelData; uiLoop < WORLD_MAX; uiLoop++, pMapElement++)
for (uiLoop = 0, pMapElement = gpWorldLevelData; uiLoop < WORLD_MAX; ++uiLoop, ++pMapElement)
{
if (pMapElement->ubBloodInfo)
{
@@ -274,10 +269,10 @@ void DecayBloodAndSmells( UINT32 uiTime )
void DropSmell( SOLDIERTYPE * pSoldier )
{
MAP_ELEMENT * pMapElement;
UINT8 ubOldSmell;
UINT8 ubOldStrength;
UINT8 ubSmell;
UINT8 ubStrength;
UINT8 ubOldSmell;
UINT8 ubOldStrength;
UINT8 ubSmell;
UINT8 ubStrength;
/*
* Here we are creating a new smell on the ground. If there is blood in
@@ -354,7 +349,6 @@ void DropSmell( SOLDIERTYPE * pSoldier )
// otherwise skip dropping smell
}
void InternalDropBlood( INT32 sGridNo, INT8 bLevel, UINT8 ubType, UINT8 ubStrength, INT8 bVisible )
{
CHAR tmpMPDbgString[512];
@@ -381,9 +375,9 @@ void InternalDropBlood( INT32 sGridNo, INT8 bLevel, UINT8 ubType, UINT8 ubStreng
// ATE: Send warning if dropping blood nowhere....
if (TileIsOutOfBounds(sGridNo))
{
#ifdef JA2BETAVERSION
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_TESTVERSION, L"Attempting to drop blood NOWHERE" );
#endif
#ifdef JA2BETAVERSION
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_TESTVERSION, L"Attempting to drop blood NOWHERE" );
#endif
return;
}
@@ -469,10 +463,8 @@ void InternalDropBlood( INT32 sGridNo, INT8 bLevel, UINT8 ubType, UINT8 ubStreng
{
UpdateBloodGraphics( sGridNo, bLevel );
}
}
void DropBlood( SOLDIERTYPE * pSoldier, UINT8 ubStrength, INT8 bVisible )
{
UINT8 ubType;
@@ -485,30 +477,23 @@ void DropBlood( SOLDIERTYPE * pSoldier, UINT8 ubStrength, INT8 bVisible )
if ( pSoldier->flags.uiStatusFlags & SOLDIER_MONSTER )
{
if ( pSoldier->pathing.bLevel == 0 )
{
ubType = CREATURE_ON_FLOOR;
}
else
{
ubType = CREATURE_ON_ROOF;
}
}
else
{
ubType = 0;
ubType = HUMAN;
}
InternalDropBlood( pSoldier->sGridNo, pSoldier->pathing.bLevel, ubType, ubStrength, bVisible );
}
void UpdateBloodGraphics( INT32 sGridNo, INT8 bLevel )
{
MAP_ELEMENT * pMapElement;
INT8 bValue;
UINT16 usIndex, usNewIndex;
INT8 bValue;
UINT16 usIndex, usNewIndex;
// OK, based on level, type, display graphics for blood
pMapElement = &(gpWorldLevelData[ sGridNo ]);
@@ -521,7 +506,6 @@ void UpdateBloodGraphics( INT32 sGridNo, INT8 bLevel )
if ( pMapElement->uiFlags & MAPELEMENT_REEVALUATEBLOOD )
{
// Turn off flag!
pMapElement->uiFlags &= ( ~MAPELEMENT_REEVALUATEBLOOD );
@@ -567,18 +551,15 @@ void UpdateBloodGraphics( INT32 sGridNo, INT8 bLevel )
//ApplyMapChangesToMapTempFile( FALSE );
// Update rendering!
pMapElement->uiFlags|=MAPELEMENT_REDRAW;
SetRenderFlags(RENDER_FLAG_MARKED);
}
}
// Roof
else
{
}
}
}
+2 -1
View File
@@ -8247,6 +8247,7 @@ STR16 szBackgroundText_Value[]=
L" %s%d%%发现狙击手的成功率\n",
L" %s%d%% effectiveness at diagnosing diseases\n", // TODO.Translate
L" %s%d%% effectiveness at treating population against diseases\n",
L"Can spot tracks up to %d tiles away\n",
L" dislikes some other backgrounds", // TODO.Translate
};
@@ -9109,7 +9110,7 @@ STR16 szTacticalCoverDialogString[]=
L"Roles", // TODO.Translate
L"",
L"",
L"Tracker",
L"",
L"陷阱",
+2 -1
View File
@@ -8260,6 +8260,7 @@ STR16 szBackgroundText_Value[]=
L" %s%d%% effectiveness as spotter for fellow snipers\n", // TODO.Translate
L" %s%d%% effectiveness at diagnosing diseases\n", // TODO.Translate
L" %s%d%% effectiveness at treating population against diseases\n",
L"Can spot tracks up to %d tiles away\n",
L" dislikes some other backgrounds", // TODO.Translate
};
@@ -9120,7 +9121,7 @@ STR16 szTacticalCoverDialogString[]=
L"Roles", // TODO.Translate
L"",
L"",
L"Tracker",
L"",
L"Traps",
+2 -1
View File
@@ -8245,6 +8245,7 @@ STR16 szBackgroundText_Value[]=
L" %s%d%% effectiveness as spotter for fellow snipers\n",
L" %s%d%% effectiveness at diagnosing diseases\n",
L" %s%d%% effectiveness at treating population against diseases\n",
L"Can spot tracks up to %d tiles away\n",
L" dislikes some other backgrounds",
};
@@ -9158,7 +9159,7 @@ STR16 szTacticalCoverDialogString[]=
L"Roles",
L"",
L"",
L"Tracker",
L"",
L"Traps",
+2 -1
View File
@@ -8246,6 +8246,7 @@ STR16 szBackgroundText_Value[]=
L" %s%d%% d'efficacité comme guetteur pour vos tireurs d'élite\n",
L" %s%d%% effectiveness at diagnosing diseases\n", // TODO.Translate
L" %s%d%% effectiveness at treating population against diseases\n",
L"Can spot tracks up to %d tiles away\n",
L" dislikes some other backgrounds", // TODO.Translate
};
@@ -9106,7 +9107,7 @@ STR16 szTacticalCoverDialogString[]=
L"Roles", // TODO.Translate
L"",
L"",
L"Tracker",
L"",
L"Pièges",
+2 -1
View File
@@ -8077,6 +8077,7 @@ STR16 szBackgroundText_Value[]=
L" %s%d%% effectiveness as spotter for fellow snipers\n", // TODO.Translate
L" %s%d%% effectiveness at diagnosing diseases\n", // TODO.Translate
L" %s%d%% effectiveness at treating population against diseases\n",
L"Can spot tracks up to %d tiles away\n",
L" dislikes some other backgrounds", // TODO.Translate
};
@@ -8937,7 +8938,7 @@ STR16 szTacticalCoverDialogString[]=
L"Roles", // TODO.Translate
L"",
L"",
L"Tracker",
L"",
L"Traps",
+2 -1
View File
@@ -8256,6 +8256,7 @@ STR16 szBackgroundText_Value[]=
L" %s%d%% effectiveness as spotter for fellow snipers\n", // TODO.Translate
L" %s%d%% effectiveness at diagnosing diseases\n", // TODO.Translate
L" %s%d%% effectiveness at treating population against diseases\n",
L"Can spot tracks up to %d tiles away\n",
L" dislikes some other backgrounds", // TODO.Translate
};
@@ -9116,7 +9117,7 @@ STR16 szTacticalCoverDialogString[]=
L"Roles", // TODO.Translate
L"",
L"",
L"Tracker",
L"",
L"Traps",
+1
View File
@@ -155,6 +155,7 @@ STR16 gzIMPMajorTraitsHelpTextsRanger[]=
L"天气效果惩罚 -%d%s\n",// L"-%d%s weather penalties\n",
L"迷彩涂装效果 +%d%s\n",// L"+%d%s camouflage effectiveness\n",
L"迷彩涂装退色的速度 -%d%s\n",// L"-%d%s worn out speed of camouflage by water or time\n",
L"Can spot tracks up to %d tiles away\n", // TODO.Translate
};
STR16 gzIMPMajorTraitsHelpTextsGunslinger[]=
+1
View File
@@ -155,6 +155,7 @@ STR16 gzIMPMajorTraitsHelpTextsRanger[]=
L"-%d%s weather penalties\n",
L"+%d%s camouflage effectiveness\n",
L"-%d%s worn out speed of camouflage by water or time\n",
L"Can spot tracks up to %d tiles away\n", // TODO.Translate
};
STR16 gzIMPMajorTraitsHelpTextsGunslinger[]=
+1
View File
@@ -155,6 +155,7 @@ STR16 gzIMPMajorTraitsHelpTextsRanger[]=
L"-%d%s weather penalties\n",
L"+%d%s camouflage effectiveness\n",
L"-%d%s worn out speed of camouflage by water or time\n",
L"Can spot tracks up to %d tiles away\n",
};
STR16 gzIMPMajorTraitsHelpTextsGunslinger[]=
+1
View File
@@ -156,6 +156,7 @@ STR16 gzIMPMajorTraitsHelpTextsRanger[]=
L"-%d%s de pénalités du temps\n",
L"+%d%s d'efficacité du camouflage\n",
L"-%d%s de l'usure du camouflage due au temps ou à l'eau\n",
L"Can spot tracks up to %d tiles away\n", // TODO.Translate
};
STR16 gzIMPMajorTraitsHelpTextsGunslinger[]=
+1
View File
@@ -155,6 +155,7 @@ STR16 gzIMPMajorTraitsHelpTextsRanger[]=
L"-%d%s Einfluss durch schlechtes Wetter\n",
L"+%d%s Tarnungs-Effektivität\n",
L"-%d%s Abnutzung von Tarnfarbe durch Wasser oder Zeit\n",
L"Can spot tracks up to %d tiles away\n", // TODO.Translate
};
STR16 gzIMPMajorTraitsHelpTextsGunslinger[]=
+1
View File
@@ -153,6 +153,7 @@ STR16 gzIMPMajorTraitsHelpTextsRanger[]=
L"-%d%s weather penalties\n",
L"+%d%s camouflage effectiveness\n",
L"-%d%s worn out speed of camouflage by water or time\n",
L"Can spot tracks up to %d tiles away\n", // TODO.Translate
};
STR16 gzIMPMajorTraitsHelpTextsGunslinger[]=
+1
View File
@@ -155,6 +155,7 @@ STR16 gzIMPMajorTraitsHelpTextsRanger[]=
L"-%d%s weather penalties\n",
L"+%d%s camouflage effectiveness\n",
L"-%d%s worn out speed of camouflage by water or time\n",
L"Can spot tracks up to %d tiles away\n", // TODO.Translate
};
STR16 gzIMPMajorTraitsHelpTextsGunslinger[]=
+1
View File
@@ -155,6 +155,7 @@ STR16 gzIMPMajorTraitsHelpTextsRanger[]=
L"-%d%s к штрафам от погодных условий\n",
L"+%d%s к эффективности камуфляжа\n",
L"-%d%s на скорость ухудшения камуфляжа от воды и времени\n",
L"Can spot tracks up to %d tiles away\n", // TODO.Translate
};
STR16 gzIMPMajorTraitsHelpTextsGunslinger[]=
+2 -1
View File
@@ -8271,6 +8271,7 @@ STR16 szBackgroundText_Value[]=
L" %s%d%% effectiveness as spotter for fellow snipers\n", // TODO.Translate
L" %s%d%% effectiveness at diagnosing diseases\n", // TODO.Translate
L" %s%d%% effectiveness at treating population against diseases\n",
L"Can spot tracks up to %d tiles away\n",
L" dislikes some other backgrounds", // TODO.Translate
};
@@ -9131,7 +9132,7 @@ STR16 szTacticalCoverDialogString[]=
L"Roles", // TODO.Translate
L"",
L"",
L"Tracker",
L"",
L"Traps",
+2 -1
View File
@@ -8243,6 +8243,7 @@ STR16 szBackgroundText_Value[]=
L" %s%d%% effectiveness at diagnosing diseases\n", // TODO.Translate
L" %s%d%% effectiveness at treating population against diseases\n",
L"Can spot tracks up to %d tiles away\n",
L" dislikes some other backgrounds", // TODO.Translate
};
@@ -9102,7 +9103,7 @@ STR16 szTacticalCoverDialogString[]=
L"Roles", // TODO.Translate
L"",
L"",
L"Tracker",
L"",
L"Ловушки",