New ingame option: Smart tree tops.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8936 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Sevenfm
2021-02-16 17:22:44 +00:00
parent 0ccecc472c
commit 7c1e9e3200
17 changed files with 209 additions and 33 deletions
+3
View File
@@ -219,6 +219,7 @@ BOOLEAN LoadGameSettings()
gGameSettings.fOptions[TOPTION_SNAP_CURSOR_TO_DOOR] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_SNAP_CURSOR_TO_DOOR" , TRUE ); gGameSettings.fOptions[TOPTION_SNAP_CURSOR_TO_DOOR] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_SNAP_CURSOR_TO_DOOR" , TRUE );
gGameSettings.fOptions[TOPTION_GLOW_ITEMS] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_GLOW_ITEMS" , TRUE ); gGameSettings.fOptions[TOPTION_GLOW_ITEMS] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_GLOW_ITEMS" , TRUE );
gGameSettings.fOptions[TOPTION_TOGGLE_TREE_TOPS] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_TOGGLE_TREE_TOPS" , TRUE ); gGameSettings.fOptions[TOPTION_TOGGLE_TREE_TOPS] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_TOGGLE_TREE_TOPS" , TRUE );
gGameSettings.fOptions[TOPTION_SMART_TREE_TOPS] = iniReader.ReadBoolean("JA2 Game Settings", "TOPTION_SMART_TREE_TOPS" , FALSE );
gGameSettings.fOptions[TOPTION_TOGGLE_WIREFRAME] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_TOGGLE_WIREFRAME" , TRUE ); gGameSettings.fOptions[TOPTION_TOGGLE_WIREFRAME] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_TOGGLE_WIREFRAME" , TRUE );
gGameSettings.fOptions[TOPTION_3D_CURSOR] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_3D_CURSOR" , FALSE ); gGameSettings.fOptions[TOPTION_3D_CURSOR] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_3D_CURSOR" , FALSE );
gGameSettings.fOptions[TOPTION_CTH_CURSOR] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_CTH_CURSOR" , TRUE ); gGameSettings.fOptions[TOPTION_CTH_CURSOR] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_CTH_CURSOR" , TRUE );
@@ -436,6 +437,7 @@ BOOLEAN SaveGameSettings()
settings << "TOPTION_SNAP_CURSOR_TO_DOOR = " << (gGameSettings.fOptions[TOPTION_SNAP_CURSOR_TO_DOOR] ? "TRUE" : "FALSE" ) << endl; settings << "TOPTION_SNAP_CURSOR_TO_DOOR = " << (gGameSettings.fOptions[TOPTION_SNAP_CURSOR_TO_DOOR] ? "TRUE" : "FALSE" ) << endl;
settings << "TOPTION_GLOW_ITEMS = " << (gGameSettings.fOptions[TOPTION_GLOW_ITEMS] ? "TRUE" : "FALSE" ) << endl; settings << "TOPTION_GLOW_ITEMS = " << (gGameSettings.fOptions[TOPTION_GLOW_ITEMS] ? "TRUE" : "FALSE" ) << endl;
settings << "TOPTION_TOGGLE_TREE_TOPS = " << (gGameSettings.fOptions[TOPTION_TOGGLE_TREE_TOPS] ? "TRUE" : "FALSE" ) << endl; settings << "TOPTION_TOGGLE_TREE_TOPS = " << (gGameSettings.fOptions[TOPTION_TOGGLE_TREE_TOPS] ? "TRUE" : "FALSE" ) << endl;
settings << "TOPTION_SMART_TREE_TOPS = " << (gGameSettings.fOptions[TOPTION_SMART_TREE_TOPS] ? "TRUE" : "FALSE" ) << endl;
settings << "TOPTION_TOGGLE_WIREFRAME = " << (gGameSettings.fOptions[TOPTION_TOGGLE_WIREFRAME] ? "TRUE" : "FALSE" ) << endl; settings << "TOPTION_TOGGLE_WIREFRAME = " << (gGameSettings.fOptions[TOPTION_TOGGLE_WIREFRAME] ? "TRUE" : "FALSE" ) << endl;
settings << "TOPTION_3D_CURSOR = " << (gGameSettings.fOptions[TOPTION_3D_CURSOR] ? "TRUE" : "FALSE" ) << endl; settings << "TOPTION_3D_CURSOR = " << (gGameSettings.fOptions[TOPTION_3D_CURSOR] ? "TRUE" : "FALSE" ) << endl;
settings << "TOPTION_CTH_CURSOR = " << (gGameSettings.fOptions[TOPTION_CTH_CURSOR] ? "TRUE" : "FALSE" ) << endl; settings << "TOPTION_CTH_CURSOR = " << (gGameSettings.fOptions[TOPTION_CTH_CURSOR] ? "TRUE" : "FALSE" ) << endl;
@@ -551,6 +553,7 @@ void InitGameSettings()
gGameSettings.fOptions[ TOPTION_SNAP_CURSOR_TO_DOOR ] = TRUE; gGameSettings.fOptions[ TOPTION_SNAP_CURSOR_TO_DOOR ] = TRUE;
gGameSettings.fOptions[ TOPTION_GLOW_ITEMS ] = TRUE; gGameSettings.fOptions[ TOPTION_GLOW_ITEMS ] = TRUE;
gGameSettings.fOptions[ TOPTION_TOGGLE_TREE_TOPS ] = TRUE; gGameSettings.fOptions[ TOPTION_TOGGLE_TREE_TOPS ] = TRUE;
gGameSettings.fOptions[ TOPTION_SMART_TREE_TOPS ] = FALSE;
gGameSettings.fOptions[ TOPTION_TOGGLE_WIREFRAME ] = TRUE; gGameSettings.fOptions[ TOPTION_TOGGLE_WIREFRAME ] = TRUE;
gGameSettings.fOptions[ TOPTION_3D_CURSOR ] = FALSE; gGameSettings.fOptions[ TOPTION_3D_CURSOR ] = FALSE;
gGameSettings.fOptions[ TOPTION_CTH_CURSOR ] = TRUE; gGameSettings.fOptions[ TOPTION_CTH_CURSOR ] = TRUE;
+1
View File
@@ -38,6 +38,7 @@ enum
TOPTION_SNAP_CURSOR_TO_DOOR, TOPTION_SNAP_CURSOR_TO_DOOR,
TOPTION_GLOW_ITEMS, TOPTION_GLOW_ITEMS,
TOPTION_TOGGLE_TREE_TOPS, TOPTION_TOGGLE_TREE_TOPS,
TOPTION_SMART_TREE_TOPS,
TOPTION_TOGGLE_WIREFRAME, TOPTION_TOGGLE_WIREFRAME,
TOPTION_3D_CURSOR, TOPTION_3D_CURSOR,
TOPTION_CTH_CURSOR, TOPTION_CTH_CURSOR,
+3 -1
View File
@@ -904,7 +904,9 @@ void ExitOptionsScreen()
} }
//if the user changed the TREE TOP option, AND a world is loaded //if the user changed the TREE TOP option, AND a world is loaded
if( gfSettingOfTreeTopStatusOnEnterOfOptionScreen != gGameSettings.fOptions[ TOPTION_TOGGLE_TREE_TOPS ] && gfWorldLoaded ) // sevenfm: always update tree top state
//if( gfSettingOfTreeTopStatusOnEnterOfOptionScreen != gGameSettings.fOptions[ TOPTION_TOGGLE_TREE_TOPS ] && gfWorldLoaded )
if (gfWorldLoaded)
{ {
SetTreeTopStateForMap(); SetTreeTopStateForMap();
} }
+9
View File
@@ -526,6 +526,8 @@ void PreventFromTheFreezingBug(SOLDIERTYPE* pSoldier)
UIHandleLUIEndLock( NULL ); UIHandleLUIEndLock( NULL );
} }
INT32 gOldMapSpot = NOWHERE;
// MAIN TACTICAL UI HANDLER // MAIN TACTICAL UI HANDLER
UINT32 HandleTacticalUI( void ) UINT32 HandleTacticalUI( void )
{ {
@@ -661,6 +663,13 @@ UINT32 HandleTacticalUI( void )
if ( GetMouseMapPos( &usMapPos ) ) if ( GetMouseMapPos( &usMapPos ) )
{ {
// sevenfm: update trees
if (usMapPos != gOldMapSpot)
{
gOldMapSpot = usMapPos;
UpdateTreeVisibility();
}
// Look for soldier full // Look for soldier full
if ( FindSoldier( usMapPos, &gusUIFullTargetID, &guiUIFullTargetFlags, ( FINDSOLDIERSAMELEVEL( gsInterfaceLevel ) ) ) ) if ( FindSoldier( usMapPos, &gusUIFullTargetID, &guiUIFullTargetFlags, ( FINDSOLDIERSAMELEVEL( gsInterfaceLevel ) ) ) )
{ {
+12
View File
@@ -2854,12 +2854,18 @@ BOOLEAN HandleAtNewGridNo( SOLDIERTYPE *pSoldier, BOOLEAN *pfKeepMoving )
// trversing... // trversing...
if ( gubWaitingForAllMercsToExitCode == WAIT_FOR_MERCS_TO_WALKOFF_SCREEN || gubWaitingForAllMercsToExitCode == WAIT_FOR_MERCS_TO_WALK_TO_GRIDNO ) if ( gubWaitingForAllMercsToExitCode == WAIT_FOR_MERCS_TO_WALKOFF_SCREEN || gubWaitingForAllMercsToExitCode == WAIT_FOR_MERCS_TO_WALK_TO_GRIDNO )
{ {
// sevenfm: update tree visibility
UpdateTreeVisibility();
return( TRUE ); return( TRUE );
} }
// Check if they are out of breath // Check if they are out of breath
if ( pSoldier->CheckForBreathCollapse( ) ) if ( pSoldier->CheckForBreathCollapse( ) )
{ {
// sevenfm: update tree visibility
UpdateTreeVisibility();
(*pfKeepMoving ) = TRUE; (*pfKeepMoving ) = TRUE;
return( FALSE ); return( FALSE );
} }
@@ -2867,6 +2873,9 @@ BOOLEAN HandleAtNewGridNo( SOLDIERTYPE *pSoldier, BOOLEAN *pfKeepMoving )
// see if a mine gets set off... // see if a mine gets set off...
if (SetOffBombsInGridNo( pSoldier->ubID, pSoldier->sGridNo, FALSE, pSoldier->pathing.bLevel ) ) if (SetOffBombsInGridNo( pSoldier->ubID, pSoldier->sGridNo, FALSE, pSoldier->pathing.bLevel ) )
{ {
// sevenfm: update tree visibility
UpdateTreeVisibility();
(*pfKeepMoving) = FALSE; (*pfKeepMoving) = FALSE;
pSoldier->EVENT_StopMerc( pSoldier->sGridNo, pSoldier->ubDirection ); pSoldier->EVENT_StopMerc( pSoldier->sGridNo, pSoldier->ubDirection );
return( FALSE ); return( FALSE );
@@ -2897,6 +2906,9 @@ BOOLEAN HandleAtNewGridNo( SOLDIERTYPE *pSoldier, BOOLEAN *pfKeepMoving )
HandleSight(pSoldier,SIGHT_LOOK | SIGHT_RADIO | SIGHT_INTERRUPT); HandleSight(pSoldier,SIGHT_LOOK | SIGHT_RADIO | SIGHT_INTERRUPT);
} }
// sevenfm: update tree visibility
UpdateTreeVisibility();
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// SANDRO - if pending interrupt flag was set for movement type of interupt, resolve it here // SANDRO - if pending interrupt flag was set for movement type of interupt, resolve it here
if ( UsingImprovedInterruptSystem() ) if ( UsingImprovedInterruptSystem() )
+1 -1
View File
@@ -7571,7 +7571,7 @@ void SOLDIERTYPE::ChangeSoldierStance( UINT8 ubDesiredStance )
// Set desired stance // Set desired stance
this->ubDesiredHeight = ubDesiredStance; this->ubDesiredHeight = ubDesiredStance;
this->EVENT_InitNewSoldierAnim(usNewState, 0, FALSE); this->EVENT_InitNewSoldierAnim(usNewState, 0, FALSE);
} }
this->usSoldierFlagMask |= SOLDIER_REDOFLASHLIGHT; this->usSoldierFlagMask |= SOLDIER_REDOFLASHLIGHT;
+2 -1
View File
@@ -5091,6 +5091,7 @@ void ToggleTreeTops()
if ( gGameSettings.fOptions[ TOPTION_TOGGLE_TREE_TOPS ] ) if ( gGameSettings.fOptions[ TOPTION_TOGGLE_TREE_TOPS ] )
{ {
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, TacticalStr[ REMOVING_TREETOPS_STR ] ); ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, TacticalStr[ REMOVING_TREETOPS_STR ] );
gGameSettings.fOptions[TOPTION_TOGGLE_TREE_TOPS] = FALSE;
WorldHideTrees( ); WorldHideTrees( );
gTacticalStatus.uiFlags |= NOHIDE_REDUNDENCY; gTacticalStatus.uiFlags |= NOHIDE_REDUNDENCY;
} }
@@ -5098,9 +5099,9 @@ void ToggleTreeTops()
{ {
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, TacticalStr[ SHOWING_TREETOPS_STR ]); ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, TacticalStr[ SHOWING_TREETOPS_STR ]);
WorldShowTrees( ); WorldShowTrees( );
gGameSettings.fOptions[TOPTION_TOGGLE_TREE_TOPS] = TRUE;
gTacticalStatus.uiFlags &= (~NOHIDE_REDUNDENCY); gTacticalStatus.uiFlags &= (~NOHIDE_REDUNDENCY);
} }
gGameSettings.fOptions[ TOPTION_TOGGLE_TREE_TOPS ] = !gGameSettings.fOptions[ TOPTION_TOGGLE_TREE_TOPS ];
// FOR THE NEXT RENDER LOOP, RE-EVALUATE REDUNDENT TILES // FOR THE NEXT RENDER LOOP, RE-EVALUATE REDUNDENT TILES
InvalidateWorldRedundency( ); InvalidateWorldRedundency( );
+145 -29
View File
@@ -4000,30 +4000,30 @@ LEVELNODE* FindShadow(INT32 sGridNo, UINT16 usStructIndex)
} }
void WorldHideTrees( ) void WorldHideTrees()
{ {
LEVELNODE *pNode; LEVELNODE *pNode;
BOOLEAN fRerender=FALSE; BOOLEAN fRerender = FALSE;
UINT32 fTileFlags; UINT32 fTileFlags;
INT32 cnt; INT32 cnt;
for ( cnt = 0; cnt < WORLD_MAX; cnt++ ) for (cnt = 0; cnt < WORLD_MAX; cnt++)
{ {
pNode=gpWorldLevelData[ cnt ].pStructHead; pNode = gpWorldLevelData[cnt].pStructHead;
while(pNode!=NULL) while (pNode != NULL)
{ {
GetTileFlags( pNode->usIndex, &fTileFlags ); GetTileFlags(pNode->usIndex, &fTileFlags);
if ( fTileFlags & FULL3D_TILE ) if (fTileFlags & FULL3D_TILE)
{ {
if ( !( pNode->uiFlags & LEVELNODE_REVEALTREES ) ) if (!(pNode->uiFlags & LEVELNODE_REVEALTREES))
{ {
pNode->uiFlags |= ( LEVELNODE_REVEALTREES ); pNode->uiFlags |= (LEVELNODE_REVEALTREES);
} }
fRerender=TRUE; fRerender = TRUE;
} }
pNode=pNode->pNext; pNode = pNode->pNext;
} }
} }
@@ -4031,39 +4031,155 @@ INT32 cnt;
} }
void WorldShowTrees( ) void WorldShowTrees()
{ {
LEVELNODE *pNode; LEVELNODE *pNode;
BOOLEAN fRerender=FALSE; BOOLEAN fRerender = FALSE;
UINT32 fTileFlags; UINT32 fTileFlags;
INT32 cnt; INT32 cnt;
for ( cnt = 0; cnt < WORLD_MAX; cnt++ ) for (cnt = 0; cnt < WORLD_MAX; cnt++)
{ {
pNode=gpWorldLevelData[cnt].pStructHead; pNode = gpWorldLevelData[cnt].pStructHead;
while(pNode!=NULL) while (pNode != NULL)
{ {
GetTileFlags( pNode->usIndex, &fTileFlags ); GetTileFlags(pNode->usIndex, &fTileFlags);
if ( fTileFlags & FULL3D_TILE ) if (fTileFlags & FULL3D_TILE)
{ {
if ( ( pNode->uiFlags & LEVELNODE_REVEALTREES ) ) if ((pNode->uiFlags & LEVELNODE_REVEALTREES))
{ {
pNode->uiFlags &=(~( LEVELNODE_REVEALTREES ) ); pNode->uiFlags &= (~(LEVELNODE_REVEALTREES));
} }
fRerender=TRUE; fRerender = TRUE;
} }
pNode=pNode->pNext; pNode = pNode->pNext;
} }
} }
SetRenderFlags(RENDER_FLAG_FULL ); // sevenfm: also update smart tree tops
if (gGameSettings.fOptions[TOPTION_SMART_TREE_TOPS])
UpdateTreeVisibility();
SetRenderFlags(RENDER_FLAG_FULL);
} }
void UpdateTreeVisibility()
{
if (!gGameSettings.fOptions[TOPTION_SMART_TREE_TOPS] || !gGameSettings.fOptions[TOPTION_TOGGLE_TREE_TOPS])
return;
LEVELNODE *pNode;
BOOLEAN fRerender = FALSE;
BOOLEAN fHidden = FALSE;
UINT32 fTileFlags;
INT32 cnt;
SOLDIERTYPE *pOpponent;
STRUCTURE *pStructureData;
INT32 sSpot;
BOOLEAN fHideTree;
INT32 usMouseSpot;
//Get the gridno the cursor is at
GetMouseMapPos(&usMouseSpot);
// first show all trees
for (cnt = 0; cnt < WORLD_MAX; cnt++)
{
pNode = gpWorldLevelData[cnt].pStructHead;
while (pNode != NULL)
{
GetTileFlags(pNode->usIndex, &fTileFlags);
if (fTileFlags & FULL3D_TILE)
{
if ((pNode->uiFlags & LEVELNODE_REVEALTREES))
{
pNode->uiFlags &= ~(LEVELNODE_REVEALTREES);
fRerender = TRUE;
}
}
pNode = pNode->pNext;
}
}
// now show all trees except trees near visible soldiers
for (cnt = 0; cnt < WORLD_MAX; cnt++)
{
pNode = gpWorldLevelData[cnt].pStructHead;
while (pNode != NULL)
{
pStructureData = pNode->pStructureData;
if (pStructureData)
sSpot = pNode->pStructureData->sGridNo;
//sSpot = pNode->pStructureData->sBaseGridNo;
else
sSpot = NOWHERE;
fHideTree = FALSE;
// check trees near cursor position
if (!TileIsOutOfBounds(usMouseSpot) &&
(PythSpacesAway(sSpot, usMouseSpot) <= 2 && AIDirection(sSpot, usMouseSpot) == 0 ||
PythSpacesAway(sSpot, usMouseSpot) <= 5 && AIDirection(sSpot, usMouseSpot) == 7 ||
PythSpacesAway(sSpot, usMouseSpot) <= 2 && AIDirection(sSpot, usMouseSpot) == 6))
{
fHideTree = TRUE;
}
// find visible soldier near spot
if (!TileIsOutOfBounds(sSpot) && !fHideTree)
{
for (UINT8 uiLoop = 0; uiLoop < guiNumMercSlots; uiLoop++)
{
pOpponent = MercSlots[uiLoop];
if (pOpponent &&
pOpponent->bVisible != -1 &&
!TileIsOutOfBounds(pOpponent->sGridNo) &&
(PythSpacesAway(sSpot, pOpponent->sGridNo) <= 2 && AIDirection(sSpot, pOpponent->sGridNo) == 0 ||
PythSpacesAway(sSpot, pOpponent->sGridNo) <= 5 && AIDirection(sSpot, pOpponent->sGridNo) == 7 ||
PythSpacesAway(sSpot, pOpponent->sGridNo) <= 2 && AIDirection(sSpot, pOpponent->sGridNo) == 6))
{
fHideTree = TRUE;
break;
}
}
}
if (fHideTree)
{
GetTileFlags(pNode->usIndex, &fTileFlags);
if (fTileFlags & FULL3D_TILE)
{
if (!(pNode->uiFlags & LEVELNODE_REVEALTREES))
{
pNode->uiFlags |= (LEVELNODE_REVEALTREES);
fRerender = TRUE;
fHidden = TRUE;
}
}
}
pNode = pNode->pNext;
}
}
if (fRerender)
{
SetRenderFlags(RENDER_FLAG_FULL);
if (fHidden)
{
gTacticalStatus.uiFlags |= NOHIDE_REDUNDENCY;
//gTacticalStatus.uiFlags &= (~NOHIDE_REDUNDENCY);
InvalidateWorldRedundency();
}
}
}
void SetWorldFlagsFromNewNode( INT32 sGridNo, UINT16 usIndex ) void SetWorldFlagsFromNewNode( INT32 sGridNo, UINT16 usIndex )
+1 -1
View File
@@ -158,7 +158,7 @@ LEVELNODE * FindShadow( INT32 sGridNo, UINT16 usStructIndex );
void WorldHideTrees( ); void WorldHideTrees( );
void WorldShowTrees( ); void WorldShowTrees( );
void UpdateTreeVisibility();
BOOLEAN IsTileRedundent( UINT32 uiDestPitchBYTES, UINT16 *pZBuffer, UINT16 usZValue, HVOBJECT hSrcVObject, INT32 iX, INT32 iY, UINT16 usIndex ); BOOLEAN IsTileRedundent( UINT32 uiDestPitchBYTES, UINT16 *pZBuffer, UINT16 usZValue, HVOBJECT hSrcVObject, INT32 iX, INT32 iY, UINT16 usIndex );
+4
View File
@@ -6340,6 +6340,7 @@ STR16 zOptionsToggleText[] =
L"锁定门", //"Snap Cursor to Doors", L"锁定门", //"Snap Cursor to Doors",
L"物品闪亮", //"Make Items Glow", L"物品闪亮", //"Make Items Glow",
L"显示树冠", //"Show Tree Tops", L"显示树冠", //"Show Tree Tops",
L"Smart Tree Tops", // TODO. Translate
L"显示轮廓", //"Show Wireframes", L"显示轮廓", //"Show Wireframes",
L"显示3D光标", //"Show 3D Cursor", L"显示3D光标", //"Show 3D Cursor",
L"显示命中机率", //"Show Chance to Hit on cursor", L"显示命中机率", //"Show Chance to Hit on cursor",
@@ -6451,6 +6452,9 @@ STR16 zOptionsScreenHelpText[] =
//toggle tree tops //toggle tree tops
L"打开时,显示树冠。(|T)", L"打开时,显示树冠。(|T)",
//smart tree tops
L"When ON, hides tree tops near visible mercs and cursor position.", // TODO.Translate
//toggle wireframe //toggle wireframe
L"打开时,显示未探明的墙的轮廓。(|C|t|r|l+|A|l|t+|W)", L"打开时,显示未探明的墙的轮廓。(|C|t|r|l+|A|l|t+|W)",
+4
View File
@@ -6347,6 +6347,7 @@ STR16 zOptionsToggleText[] =
L"Auto-Cursor naar Deuren", L"Auto-Cursor naar Deuren",
L"Items Oplichten", L"Items Oplichten",
L"Toon Boomtoppen", L"Toon Boomtoppen",
L"Smart Tree Tops", // TODO. Translate
L"Toon Draadmodellen", L"Toon Draadmodellen",
L"Toon 3D Cursor", L"Toon 3D Cursor",
L"Show Chance to Hit on cursor", L"Show Chance to Hit on cursor",
@@ -6458,6 +6459,9 @@ STR16 zOptionsScreenHelpText[] =
//toggle tree tops //toggle tree tops
L"Wanneer INGESCHAKELD worden Boom|toppen getoond.", L"Wanneer INGESCHAKELD worden Boom|toppen getoond.",
//smart tree tops
L"When ON, hides tree tops near visible mercs and cursor position.", // TODO.Translate
//toggle wireframe //toggle wireframe
L"Wanneer INGESCHAKELD worden Draadmodellen van niet-zichtbare muren getoond. (|C|t|r|l+|A|l|t+|W)", L"Wanneer INGESCHAKELD worden Draadmodellen van niet-zichtbare muren getoond. (|C|t|r|l+|A|l|t+|W)",
+4
View File
@@ -6354,6 +6354,7 @@ STR16 zOptionsToggleText[] =
L"Snap Cursor to Doors", L"Snap Cursor to Doors",
L"Make Items Glow", L"Make Items Glow",
L"Show Tree Tops", L"Show Tree Tops",
L"Smart Tree Tops",
L"Show Wireframes", L"Show Wireframes",
L"Show 3D Cursor", L"Show 3D Cursor",
L"Show Chance to Hit on Cursor", L"Show Chance to Hit on Cursor",
@@ -6465,6 +6466,9 @@ STR16 zOptionsScreenHelpText[] =
//toggle tree tops //toggle tree tops
L"When ON, shows the |Tree tops.", L"When ON, shows the |Tree tops.",
//smart tree tops
L"When ON, hides tree tops near visible mercs and cursor position.",
//toggle wireframe //toggle wireframe
L"When ON, displays Wireframes for obscured walls. (|C|t|r|l+|A|l|t+|W)", L"When ON, displays Wireframes for obscured walls. (|C|t|r|l+|A|l|t+|W)",
+4
View File
@@ -6352,6 +6352,7 @@ STR16 zOptionsToggleText[] =
L"Figer curseur sur les portes", L"Figer curseur sur les portes",
L"Objets en surbrillance", L"Objets en surbrillance",
L"Afficher cimes", L"Afficher cimes",
L"Smart Tree Tops", // TODO. Translate
L"Affichage fil de fer", L"Affichage fil de fer",
L"Curseur toit", L"Curseur toit",
L"Afficher chance de toucher", L"Afficher chance de toucher",
@@ -6462,6 +6463,9 @@ STR16 zOptionsScreenHelpText[] =
//toggle tree tops //toggle tree tops
L"Activez cette option pour afficher la cime des arbres. (|T)", L"Activez cette option pour afficher la cime des arbres. (|T)",
//smart tree tops
L"When ON, hides tree tops near visible mercs and cursor position.", // TODO.Translate
//toggle wireframe //toggle wireframe
L"Activez cette option pour afficher les murs en fil de fer. (|C|T|R|L+|A|L|T+||W)", L"Activez cette option pour afficher les murs en fil de fer. (|C|T|R|L+|A|L|T+||W)",
+4
View File
@@ -6217,6 +6217,7 @@ STR16 zOptionsToggleText[] =
L"Cursor autom. auf Türen", L"Cursor autom. auf Türen",
L"Gegenstände leuchten", L"Gegenstände leuchten",
L"Baumkronen zeigen", L"Baumkronen zeigen",
L"Smart Tree Tops", // TODO. Translate
L"Drahtgitter zeigen", L"Drahtgitter zeigen",
L"3D Cursor zeigen", L"3D Cursor zeigen",
L"Trefferchance anzeigen", L"Trefferchance anzeigen",
@@ -6328,6 +6329,9 @@ STR16 zOptionsScreenHelpText[] =
//toggle tree tops //toggle tree tops
L"Mit der Deaktivierung dieser Funktion lassen sich Baumkronen ausblenden um bessere Sicht auf das Geschehen zu ermöglichen (|T).", L"Mit der Deaktivierung dieser Funktion lassen sich Baumkronen ausblenden um bessere Sicht auf das Geschehen zu ermöglichen (|T).",
//smart tree tops
L"When ON, hides tree tops near visible mercs and cursor position.", // TODO.Translate
//toggle wireframe //toggle wireframe
L"Wenn diese Funktion aktiviert ist, werden Drahtgitter verborgener Wände gezeigt um z.B. perspektivisch verdeckte Fenster zu erkennen (|C|t|r|l+|A|l|t+|W).", L"Wenn diese Funktion aktiviert ist, werden Drahtgitter verborgener Wände gezeigt um z.B. perspektivisch verdeckte Fenster zu erkennen (|C|t|r|l+|A|l|t+|W).",
+4
View File
@@ -6330,6 +6330,7 @@ STR16 zOptionsToggleText[] =
L"Sposta il cursore sulle porte", L"Sposta il cursore sulle porte",
L"Evidenzia gli oggetti", L"Evidenzia gli oggetti",
L"Mostra le fronde degli alberi", L"Mostra le fronde degli alberi",
L"Smart Tree Tops", // TODO. Translate
L"Mostra strutture", L"Mostra strutture",
L"Mostra il cursore 3D", L"Mostra il cursore 3D",
L"Show Chance to Hit on cursor", L"Show Chance to Hit on cursor",
@@ -6441,6 +6442,9 @@ STR16 zOptionsScreenHelpText[] =
//toggle tree tops //toggle tree tops
L"Se attivata, mostra le fronde degli alberi. (|T)", L"Se attivata, mostra le fronde degli alberi. (|T)",
//smart tree tops
L"When ON, hides tree tops near visible mercs and cursor position.", // TODO.Translate
//toggle wireframe //toggle wireframe
L"Se attivata, visualizza le |Strutture dei muri nascosti. (|C|t|r|l+|A|l|t+|W)", L"Se attivata, visualizza le |Strutture dei muri nascosti. (|C|t|r|l+|A|l|t+|W)",
+4
View File
@@ -6348,6 +6348,7 @@ STR16 zOptionsToggleText[] =
L"Przyciągaj kursor do drzwi", L"Przyciągaj kursor do drzwi",
L"Pulsujące przedmioty", L"Pulsujące przedmioty",
L"Pokazuj korony drzew", L"Pokazuj korony drzew",
L"Smart Tree Tops", // TODO. Translate
L"Pokazuj siatkę", L"Pokazuj siatkę",
L"Pokazuj kursor 3D", L"Pokazuj kursor 3D",
L"Pokazuj szansę na trafienie", L"Pokazuj szansę na trafienie",
@@ -6460,6 +6461,9 @@ STR16 zOptionsScreenHelpText[] =
//toggle tree tops //toggle tree tops
L"Jeśli WŁĄCZONE, wyświetlane będą korony drzew. ( |T )", L"Jeśli WŁĄCZONE, wyświetlane będą korony drzew. ( |T )",
//smart tree tops
L"When ON, hides tree tops near visible mercs and cursor position.", // TODO.Translate
//toggle wireframe //toggle wireframe
L"Jeśli WŁĄCZONE, wyświetlane będą zarysy niewidocznych ścian. ( |C|t|r|l+|A|l|t+|W )", L"Jeśli WŁĄCZONE, wyświetlane będą zarysy niewidocznych ścian. ( |C|t|r|l+|A|l|t+|W )",
+4
View File
@@ -6340,6 +6340,7 @@ STR16 zOptionsToggleText[] =
L"Курсор на дверь", L"Курсор на дверь",
L"Мерцание вещей", L"Мерцание вещей",
L"Показать кроны деревьев", L"Показать кроны деревьев",
L"Скрывать мешающие кроны",
L"Показать каркасы", L"Показать каркасы",
L"Трехмерный курсор", L"Трехмерный курсор",
L"Показать шанс попадания", L"Показать шанс попадания",
@@ -6451,6 +6452,9 @@ STR16 zOptionsScreenHelpText[] =
//toggle tree tops //toggle tree tops
L"Если включено, то отображаются кроны деревьев (|T).", L"Если включено, то отображаются кроны деревьев (|T).",
//smart tree tops
L"Если включено, кроны деревьев не будут отображаться около видимых солдат и около курсора.",
//toggle wireframe //toggle wireframe
L"Если включено, то у препятствий\nдополнительно показывается каркас (|C|t|r|l+|A|l|t+|W).", L"Если включено, то у препятствий\nдополнительно показывается каркас (|C|t|r|l+|A|l|t+|W).",