mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
Merged from revision: 7258
- Translated russian source code comments (by Sevenfm) git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7259 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -8,7 +8,7 @@
|
|||||||
#elif defined( WIZ8_PRECOMPILED_HEADERS )
|
#elif defined( WIZ8_PRECOMPILED_HEADERS )
|
||||||
#include "WIZ8 SGP ALL.H"
|
#include "WIZ8 SGP ALL.H"
|
||||||
#else
|
#else
|
||||||
//** dd äëÿ ïîäêëþ÷åíèÿ äåôàéíîâ äîï. êíîïîê ìûøè
|
//** dd for defines that needed for additional mouse buttons
|
||||||
#define _WIN32_WINNT 0x500
|
#define _WIN32_WINNT 0x500
|
||||||
|
|
||||||
//**
|
//**
|
||||||
@@ -159,7 +159,7 @@ LRESULT CALLBACK MouseHandler(int Code, WPARAM wParam, LPARAM lParam)
|
|||||||
|
|
||||||
switch (wParam)
|
switch (wParam)
|
||||||
{
|
{
|
||||||
case WM_XBUTTONDOWN://** êîä ðàáî÷èé
|
case WM_XBUTTONDOWN://** code is working
|
||||||
if( p_mhs->mouseData== (XBUTTON1<<16) ) //MessageBeep(-1);
|
if( p_mhs->mouseData== (XBUTTON1<<16) ) //MessageBeep(-1);
|
||||||
{
|
{
|
||||||
gfX1ButtonState = TRUE;
|
gfX1ButtonState = TRUE;
|
||||||
@@ -173,7 +173,7 @@ LRESULT CALLBACK MouseHandler(int Code, WPARAM wParam, LPARAM lParam)
|
|||||||
QueueEvent(X2_BUTTON_DOWN, 0, uiParam);
|
QueueEvent(X2_BUTTON_DOWN, 0, uiParam);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WM_XBUTTONUP://** êîä ðàáî÷èé
|
case WM_XBUTTONUP://** code is working
|
||||||
if( p_mhs->mouseData== (XBUTTON1<<16) )
|
if( p_mhs->mouseData== (XBUTTON1<<16) )
|
||||||
{
|
{
|
||||||
gfX1ButtonState = FALSE;
|
gfX1ButtonState = FALSE;
|
||||||
|
|||||||
@@ -1466,10 +1466,10 @@ void InitAnimationSurfacesPerBodytype( )
|
|||||||
gubAnimSurfaceIndex[ REGMALE ][ SWATTING_WK ] = RGMSWKNIFE;
|
gubAnimSurfaceIndex[ REGMALE ][ SWATTING_WK ] = RGMSWKNIFE;
|
||||||
gubAnimSurfaceIndex[ REGMALE ][ SWAT_BACKWARDS_WK ] = RGMSWKNIFE;
|
gubAnimSurfaceIndex[ REGMALE ][ SWAT_BACKWARDS_WK ] = RGMSWKNIFE;
|
||||||
gubAnimSurfaceIndex[ REGMALE ][ SWAT_BACKWARDS_NOTHING ] = RGMNOTHING_SWAT;
|
gubAnimSurfaceIndex[ REGMALE ][ SWAT_BACKWARDS_NOTHING ] = RGMNOTHING_SWAT;
|
||||||
//кидание гранаты
|
//grenade throwing
|
||||||
gubAnimSurfaceIndex[ REGMALE ][ THROW_GRENADE_STANCE ] = RGMSTHRG;
|
gubAnimSurfaceIndex[ REGMALE ][ THROW_GRENADE_STANCE ] = RGMSTHRG;
|
||||||
gubAnimSurfaceIndex[ REGMALE ][ LOB_GRENADE_STANCE ] = RGMSLOBG;
|
gubAnimSurfaceIndex[ REGMALE ][ LOB_GRENADE_STANCE ] = RGMSLOBG;
|
||||||
//перекат
|
//roll over
|
||||||
gubAnimSurfaceIndex[ REGMALE ][ ROLL_PRONE_L ] = RGMROLL_PR;
|
gubAnimSurfaceIndex[ REGMALE ][ ROLL_PRONE_L ] = RGMROLL_PR;
|
||||||
gubAnimSurfaceIndex[ REGMALE ][ ROLL_PRONE_R ] = RGMROLL_PR;
|
gubAnimSurfaceIndex[ REGMALE ][ ROLL_PRONE_R ] = RGMROLL_PR;
|
||||||
|
|
||||||
|
|||||||
@@ -488,16 +488,16 @@ AnimationSurfaceType gAnimSurfaceDatabase[ NUMANIMATIONSURFACETYPES ] =
|
|||||||
RGFSWKNIFE , "ANIMS\\F_MERC\\F_K_SWAT_K.sti", C_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
RGFSWKNIFE , "ANIMS\\F_MERC\\F_K_SWAT_K.sti", C_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||||
RGMSWKNIFE , "ANIMS\\S_MERC\\S_K_SWAT.sti", C_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
RGMSWKNIFE , "ANIMS\\S_MERC\\S_K_SWAT.sti", C_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||||
|
|
||||||
//êèäàíèå ãðàíàòû ñòîÿ ñ âûäåðãèâàíèåì ÷åêè 2 âàðèàíòà
|
// grenade throwing when standing (pull the pin out of a grenade), 2 variants
|
||||||
BGMSTHRG, "ANIMS\\M_MERC\\M_THROW_G.sti", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
BGMSTHRG, "ANIMS\\M_MERC\\M_THROW_G.sti", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||||
//äëÿ áàáû ïîêà ñòàíäàðòíàÿ àíèìàöèÿ
|
//for woman - standart animation
|
||||||
RGFSTHRG, "ANIMS\\F_MERC\\F_THROW.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
RGFSTHRG, "ANIMS\\F_MERC\\F_THROW.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||||
RGMSTHRG, "ANIMS\\S_MERC\\S_THROW_G.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
RGMSTHRG, "ANIMS\\S_MERC\\S_THROW_G.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||||
|
|
||||||
BGMSLOBG, "ANIMS\\M_MERC\\M_THROW_GLOB.sti", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
BGMSLOBG, "ANIMS\\M_MERC\\M_THROW_GLOB.sti", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||||
RGFSLOBG, "ANIMS\\F_MERC\\F_LOB.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
RGFSLOBG, "ANIMS\\F_MERC\\F_LOB.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||||
RGMSLOBG, "ANIMS\\S_MERC\\S_THROW_GLOB.sti", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
RGMSLOBG, "ANIMS\\S_MERC\\S_THROW_GLOB.sti", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||||
//ïåðåêàò
|
//roll over
|
||||||
RGMROLL_PR, "ANIMS\\S_MERC\\S_ROLL_N.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
RGMROLL_PR, "ANIMS\\S_MERC\\S_ROLL_N.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||||
BGMROLL_PR, "ANIMS\\M_MERC\\M_ROLL_N.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
BGMROLL_PR, "ANIMS\\M_MERC\\M_ROLL_N.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||||
RGFROLL_PR, "ANIMS\\F_MERC\\F_ROLL_N.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
RGFROLL_PR, "ANIMS\\F_MERC\\F_ROLL_N.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||||
|
|||||||
@@ -85,12 +85,12 @@
|
|||||||
#include "Map Information.h"
|
#include "Map Information.h"
|
||||||
#include "Soldier Control.h"
|
#include "Soldier Control.h"
|
||||||
#include "DisplayCover.h"
|
#include "DisplayCover.h"
|
||||||
//ddd îïòèìèçàöèÿ äëÿ õîäà äðàíèêîâ
|
//ddd optimization of enemy turn
|
||||||
#include "aiinternals.h"
|
#include "aiinternals.h"
|
||||||
//#include "los.h"
|
//#include "los.h"
|
||||||
//#include "structure wrap.h"
|
//#include "structure wrap.h"
|
||||||
//#include "DisplayCover.h"
|
//#include "DisplayCover.h"
|
||||||
//ddd îïòèìèçàöèÿ äëÿ õîäà äðàíèêîâ
|
//ddd optimization of enemy turn
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "teamturns.h"
|
#include "teamturns.h"
|
||||||
@@ -1252,14 +1252,14 @@ UINT32 UIHandleEndTurn( UI_EVENT *pUIEvent )
|
|||||||
|
|
||||||
// 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
|
// 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
|
#ifdef USE_ASTAR_PATHS
|
||||||
////ddd îïòèìèçàöèÿ äëÿ õîäà äðàíèêîâ
|
////ddd enemy turn optimization
|
||||||
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 íà äð.çíà÷. íåîáõîäèìî áóäåò ïîä÷èùàòü õâîñòû! èáî îïàñíûé êîä!!! ;)
|
//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() ...
|
||||||
@@ -1316,7 +1316,7 @@ UINT32 UIHandleEndTurn( UI_EVENT *pUIEvent )
|
|||||||
}//if
|
}//if
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//ddd îïòèìèçàöèÿ äëÿ õîäà äðàíèêîâ**
|
//ddd enemy turn optimization**
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// End our turn!
|
// End our turn!
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ INT32 giMenuAnchorX, giMenuAnchorY;
|
|||||||
//#define PROG_BAR_START_Y 2
|
//#define PROG_BAR_START_Y 2
|
||||||
|
|
||||||
//**ddd{
|
//**ddd{
|
||||||
//поставить дефайн в 0 если использовать большой прогресс бар
|
//assign 0 to define if using large progress bar
|
||||||
//#define fSmallSizeProgressbar 1
|
//#define fSmallSizeProgressbar 1
|
||||||
INT32 HEIGHT_PROGRESSBAR, PROG_BAR_START_Y;
|
INT32 HEIGHT_PROGRESSBAR, PROG_BAR_START_Y;
|
||||||
//ddd}
|
//ddd}
|
||||||
|
|||||||
+2
-2
@@ -278,11 +278,11 @@ extern UINT8 gubGlobalPathFlags;
|
|||||||
#define TRAVELCOST_WALL 254
|
#define TRAVELCOST_WALL 254
|
||||||
#define TRAVELCOST_EXITGRID 255
|
#define TRAVELCOST_EXITGRID 255
|
||||||
|
|
||||||
///ddd{okno
|
///ddd { window
|
||||||
#define TRAVELCOST_JUMPABLEWINDOW 46
|
#define TRAVELCOST_JUMPABLEWINDOW 46
|
||||||
#define TRAVELCOST_JUMPABLEWINDOW_N 47
|
#define TRAVELCOST_JUMPABLEWINDOW_N 47
|
||||||
#define TRAVELCOST_JUMPABLEWINDOW_W 48
|
#define TRAVELCOST_JUMPABLEWINDOW_W 48
|
||||||
///dddokno}
|
///ddd window }
|
||||||
|
|
||||||
#define TRAVELCOST_TRAINTRACKS 30
|
#define TRAVELCOST_TRAINTRACKS 30
|
||||||
#define TRAVELCOST_DIRTROAD 9
|
#define TRAVELCOST_DIRTROAD 9
|
||||||
|
|||||||
+7
-7
@@ -508,7 +508,7 @@ void AStarPathfinder::ResetAStarList()
|
|||||||
//ddd{
|
//ddd{
|
||||||
|
|
||||||
INT32 node;
|
INT32 node;
|
||||||
for (node = 0; node < (WORLD_MAX & ~3); node+=4) //ddd разворот цикла
|
for (node = 0; node < (WORLD_MAX & ~3); node+=4) //ddd loop unwinding
|
||||||
{
|
{
|
||||||
AStarData[node].status = AStarData[node+1].status
|
AStarData[node].status = AStarData[node+1].status
|
||||||
= AStarData[node+2].status = AStarData[node+3].status = AStar_Init;
|
= AStarData[node+2].status = AStarData[node+3].status = AStar_Init;
|
||||||
@@ -1119,7 +1119,7 @@ void AStarPathfinder::ExecuteAStarLogic()
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
//dddokno здесь можно запретить вставать на оконные клетки ;)
|
//ddd: window. we can forbid standing on tiles with windows
|
||||||
//if (gubWorldMovementCosts[CurrentNode][direction][pSoldier->pathing.bLevel] == TRAVELCOST_JUMPABLEWINDOW)
|
//if (gubWorldMovementCosts[CurrentNode][direction][pSoldier->pathing.bLevel] == TRAVELCOST_JUMPABLEWINDOW)
|
||||||
// continue;
|
// continue;
|
||||||
|
|
||||||
@@ -1516,8 +1516,8 @@ int AStarPathfinder::CalcG(int* pPrevCost)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//dddokno { проверить 2 условия 1 если след. тайл окно и надо будет перелезать через него
|
//ddd: window. { check 2 conditions: 1. if next tile is a window and we will have to hump through it
|
||||||
//2. если тек. тайл окно и надо перейти на другой тайл через окно.
|
//2. if current tile is a window and we should jump through the window to reach another tile
|
||||||
else if ( nextCost == TRAVELCOST_JUMPABLEWINDOW
|
else if ( nextCost == TRAVELCOST_JUMPABLEWINDOW
|
||||||
|| nextCost == TRAVELCOST_JUMPABLEWINDOW_N
|
|| nextCost == TRAVELCOST_JUMPABLEWINDOW_N
|
||||||
|| nextCost == TRAVELCOST_JUMPABLEWINDOW_W)
|
|| nextCost == TRAVELCOST_JUMPABLEWINDOW_W)
|
||||||
@@ -1531,7 +1531,7 @@ int AStarPathfinder::CalcG(int* pPrevCost)
|
|||||||
nextCost = gTileTypeMovementCost[ gpWorldLevelData[ CurrentNode ].ubTerrainID ];//?
|
nextCost = gTileTypeMovementCost[ gpWorldLevelData[ CurrentNode ].ubTerrainID ];//?
|
||||||
|
|
||||||
}
|
}
|
||||||
//dddokno }
|
//ddd: window }
|
||||||
|
|
||||||
else if ( nextCost == TRAVELCOST_FENCE && fNonFenceJumper )
|
else if ( nextCost == TRAVELCOST_FENCE && fNonFenceJumper )
|
||||||
{
|
{
|
||||||
@@ -2325,7 +2325,7 @@ bool AStarPathfinder::WantToTraverse()
|
|||||||
///ddd{
|
///ddd{
|
||||||
if(gGameExternalOptions.bNewTacticalAIBehavior)
|
if(gGameExternalOptions.bNewTacticalAIBehavior)
|
||||||
{
|
{
|
||||||
// по трупам не бегаем . ТОДО: в 80% случаев не бегаем?
|
// don't walk over corpses. TODO: only avoid in 80% ?
|
||||||
if ( ( (gTacticalStatus.uiFlags & TURNBASED) && (gTacticalStatus.uiFlags & INCOMBAT) )
|
if ( ( (gTacticalStatus.uiFlags & TURNBASED) && (gTacticalStatus.uiFlags & INCOMBAT) )
|
||||||
&& pSoldier->bTeam == ENEMY_TEAM
|
&& pSoldier->bTeam == ENEMY_TEAM
|
||||||
//&& IsCorpseAtGridNo( CurrentNode, pSoldier->pathing.bLevel )
|
//&& IsCorpseAtGridNo( CurrentNode, pSoldier->pathing.bLevel )
|
||||||
@@ -2333,7 +2333,7 @@ bool AStarPathfinder::WantToTraverse()
|
|||||||
)
|
)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
//from niht ops //элита AI не ходит по освещённым участкам, которые просматриваются противником
|
//from NightOps // elite AI will not walk on illuminated tiles, which are seen by the enemy
|
||||||
if( ( (gTacticalStatus.uiFlags & TURNBASED) && (gTacticalStatus.uiFlags & INCOMBAT) )
|
if( ( (gTacticalStatus.uiFlags & TURNBASED) && (gTacticalStatus.uiFlags & INCOMBAT) )
|
||||||
&& pSoldier->bTeam == ENEMY_TEAM && pSoldier->ubProfile == NO_PROFILE
|
&& pSoldier->bTeam == ENEMY_TEAM && pSoldier->ubProfile == NO_PROFILE
|
||||||
&& pSoldier->aiData.bAction != AI_ACTION_LEAVE_WATER_GAS
|
&& pSoldier->aiData.bAction != AI_ACTION_LEAVE_WATER_GAS
|
||||||
|
|||||||
+6
-6
@@ -80,7 +80,7 @@ INT16 TerrainActionPoints( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bDir, INT8
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//dddokno
|
//ddd window
|
||||||
if ( sSwitchValue == TRAVELCOST_JUMPABLEWINDOW
|
if ( sSwitchValue == TRAVELCOST_JUMPABLEWINDOW
|
||||||
|| sSwitchValue == TRAVELCOST_JUMPABLEWINDOW_N
|
|| sSwitchValue == TRAVELCOST_JUMPABLEWINDOW_N
|
||||||
|| sSwitchValue == TRAVELCOST_JUMPABLEWINDOW_W)
|
|| sSwitchValue == TRAVELCOST_JUMPABLEWINDOW_W)
|
||||||
@@ -89,8 +89,8 @@ INT16 TerrainActionPoints( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bDir, INT8
|
|||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
}
|
}
|
||||||
//ddd ^^^^^^если не ставить здесь условие, то при подходе к клетке с окном ,когда расст до клетки с окном 1
|
//ddd if we don't check this condition, then when we approach to the tile with a window, when the distance to that tile will be 1
|
||||||
//получим милое сообщение, что путь заблокирован
|
//we'll get nice message, that the way is blocked
|
||||||
if ( sSwitchValue == TRAVELCOST_NOT_STANDING)// || sSwitchValue == TRAVELCOST_JUMPABLEWINDOW)
|
if ( sSwitchValue == TRAVELCOST_NOT_STANDING)// || sSwitchValue == TRAVELCOST_JUMPABLEWINDOW)
|
||||||
{
|
{
|
||||||
// use the cost of the terrain!
|
// use the cost of the terrain!
|
||||||
@@ -169,11 +169,11 @@ INT16 TerrainActionPoints( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bDir, INT8
|
|||||||
|
|
||||||
// cost for jumping a fence REPLACES all other AP costs!
|
// cost for jumping a fence REPLACES all other AP costs!
|
||||||
case TRAVELCOST_FENCE :
|
case TRAVELCOST_FENCE :
|
||||||
//dddokno{
|
//ddd window{
|
||||||
case TRAVELCOST_JUMPABLEWINDOW:
|
case TRAVELCOST_JUMPABLEWINDOW:
|
||||||
case TRAVELCOST_JUMPABLEWINDOW_N:
|
case TRAVELCOST_JUMPABLEWINDOW_N:
|
||||||
case TRAVELCOST_JUMPABLEWINDOW_W:
|
case TRAVELCOST_JUMPABLEWINDOW_W:
|
||||||
//dddokno}
|
//ddd window}
|
||||||
if (!IS_MERC_BODY_TYPE( pSoldier ))
|
if (!IS_MERC_BODY_TYPE( pSoldier ))
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
@@ -4268,7 +4268,7 @@ INT32 GetBPCostPer10APsForGunHolding( SOLDIERTYPE * pSoldier, BOOLEAN fEstimate
|
|||||||
// Alternative weapon holding?
|
// Alternative weapon holding?
|
||||||
if (( gAnimControl[ pSoldier->usAnimState ].uiFlags & ANIM_ALT_WEAPON_HOLDING ) || (fEstimate && pSoldier->bScopeMode == USE_ALT_WEAPON_HOLD) )
|
if (( gAnimControl[ pSoldier->usAnimState ].uiFlags & ANIM_ALT_WEAPON_HOLDING ) || (fEstimate && pSoldier->bScopeMode == USE_ALT_WEAPON_HOLD) )
|
||||||
{
|
{
|
||||||
if ( Item[pSoldier->inv[pSoldier->ubAttackingHand].usItem].twohanded ) // firing from hip is not nearly бn effort
|
if ( Item[pSoldier->inv[pSoldier->ubAttackingHand].usItem].twohanded ) // firing from hip is not nearly ?n effort
|
||||||
dModifier += 80; // only 20% cost if on hip
|
dModifier += 80; // only 20% cost if on hip
|
||||||
else // holding pistol in one hand is worse in this case
|
else // holding pistol in one hand is worse in this case
|
||||||
dModifier -= 25; // increased cost by 25%
|
dModifier -= 25; // increased cost by 25%
|
||||||
|
|||||||
@@ -1674,8 +1674,8 @@ void GetRTMousePositionInput( UINT32 *puiNewEvent )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//***13.02.2008*** постановка в тактике мешков с песком
|
//***13.02.2008*** place sandbags in tactics
|
||||||
//usSubIndex может быть от 1 до 10
|
//usSubIndex may be [ 1 .. 10 ]
|
||||||
//void PlaceSandbag (UINT16 usSubIndex)
|
//void PlaceSandbag (UINT16 usSubIndex)
|
||||||
//{
|
//{
|
||||||
// INT16 sGridNo;
|
// INT16 sGridNo;
|
||||||
@@ -1727,20 +1727,20 @@ void GetRTMousePositionInput( UINT32 *puiNewEvent )
|
|||||||
// // return;
|
// // return;
|
||||||
//
|
//
|
||||||
// //pSector = &SectorInfo[ SECTOR(gWorldSectorX, gWorldSectorY) ];
|
// //pSector = &SectorInfo[ SECTOR(gWorldSectorX, gWorldSectorY) ];
|
||||||
// //if( pSector->bUSUSED <= 0 ) //проверяем число доступных мешков
|
// //if( pSector->bUSUSED <= 0 ) //check the number of available sandbags
|
||||||
// //{
|
// //{
|
||||||
// // ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"No Sandbags");
|
// // ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"No Sandbags");
|
||||||
// //}
|
// //}
|
||||||
//usIndex =1;
|
//usIndex =1;
|
||||||
// //GetTileIndexFromTypeSubIndex( SECONDLARGEEXPDEBRIS, usSubIndex, &usIndex ); //только для 0 тайлсета
|
// //GetTileIndexFromTypeSubIndex( SECONDLARGEEXPDEBRIS, usSubIndex, &usIndex ); //only for tileset 0
|
||||||
//GetTileIndexFromTypeSubIndex( 150, usSubIndex, &usIndex ); //только для 0 тайлсета
|
//GetTileIndexFromTypeSubIndex( 150, usSubIndex, &usIndex ); //only for tileset 0
|
||||||
//ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"No Sandbags");
|
//ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"No Sandbags");
|
||||||
// //GetTileIndexFromTypeSubIndex( SECONDLARGEEXPDEBRIS, usSubIndex, &usIndex );
|
// //GetTileIndexFromTypeSubIndex( SECONDLARGEEXPDEBRIS, usSubIndex, &usIndex );
|
||||||
// ApplyMapChangesToMapTempFile( TRUE );
|
// ApplyMapChangesToMapTempFile( TRUE );
|
||||||
// AddStructToHead( sGridNo, usIndex);
|
// AddStructToHead( sGridNo, usIndex);
|
||||||
// //if( pSector->bUSUSED <= 0 || !AddStructToHead( sGridNo, usIndex ) )
|
// //if( pSector->bUSUSED <= 0 || !AddStructToHead( sGridNo, usIndex ) )
|
||||||
// //{
|
// //{
|
||||||
// //перебор для удаления всех видов мешков
|
// //loop to delete all sandbags
|
||||||
// // for(cnt = 1; cnt <= 10; cnt++)
|
// // for(cnt = 1; cnt <= 10; cnt++)
|
||||||
// // {
|
// // {
|
||||||
// // GetTileIndexFromTypeSubIndex( uiType, cnt, &usIndex );
|
// // GetTileIndexFromTypeSubIndex( uiType, cnt, &usIndex );
|
||||||
@@ -1832,7 +1832,7 @@ void QueryRTWheels( UINT32 *puiNewEvent )
|
|||||||
case TALKCURSOR_MODE:
|
case TALKCURSOR_MODE:
|
||||||
case MENU_MODE:
|
case MENU_MODE:
|
||||||
break;
|
break;
|
||||||
case CONFIRM_ACTION_MODE: //стрелять здесь. но до сюда не доходит ;)
|
case CONFIRM_ACTION_MODE: //shoot here. but is never gets here :)
|
||||||
break;
|
break;
|
||||||
}//switch
|
}//switch
|
||||||
}//if ( gusSelectedSoldier != NOBODY )
|
}//if ( gusSelectedSoldier != NOBODY )
|
||||||
@@ -2048,7 +2048,7 @@ void HandleMouseRTWheel( void )
|
|||||||
if ( !( gTacticalStatus.uiFlags & ENGAGED_IN_CONV ) &&
|
if ( !( gTacticalStatus.uiFlags & ENGAGED_IN_CONV ) &&
|
||||||
( ( gsCurInterfacePanel != SM_PANEL ) || ( ButtonList[ iSMPanelButtons[ NEXTMERC_BUTTON ] ]->uiFlags & BUTTON_ENABLED ) ) )
|
( ( gsCurInterfacePanel != SM_PANEL ) || ( ButtonList[ iSMPanelButtons[ NEXTMERC_BUTTON ] ]->uiFlags & BUTTON_ENABLED ) ) )
|
||||||
{
|
{
|
||||||
if ( gViewportRegion.WheelState > 0 ) //колесо от себя
|
if ( gViewportRegion.WheelState > 0 ) //wheel up
|
||||||
{
|
{
|
||||||
//change stance ->DOWN
|
//change stance ->DOWN
|
||||||
if ( _KeyDown( ALT ) )
|
if ( _KeyDown( ALT ) )
|
||||||
|
|||||||
@@ -835,7 +835,7 @@ BOOLEAN TurnSoldierIntoCorpse( SOLDIERTYPE *pSoldier, BOOLEAN fRemoveMerc, BOOLE
|
|||||||
Corpse.dYPos = pSoldier->dYPos;
|
Corpse.dYPos = pSoldier->dYPos;
|
||||||
Corpse.bLevel = pSoldier->pathing.bLevel;
|
Corpse.bLevel = pSoldier->pathing.bLevel;
|
||||||
Corpse.ubProfile = pSoldier->ubProfile;
|
Corpse.ubProfile = pSoldier->ubProfile;
|
||||||
///ddd{ для обнаружения трупов драниками.
|
///ddd{ for the enemy to be able to detect corpses
|
||||||
if ( pSoldier->bTeam != gbPlayerNum )
|
if ( pSoldier->bTeam != gbPlayerNum )
|
||||||
Corpse.ubAIWarningValue = 1;
|
Corpse.ubAIWarningValue = 1;
|
||||||
//def.ubAIWarningValue = 1; //not used value!
|
//def.ubAIWarningValue = 1; //not used value!
|
||||||
|
|||||||
@@ -958,10 +958,10 @@ BOOLEAN AdjustToNextAnimationFrame( SOLDIERTYPE *pSoldier )
|
|||||||
//CODE: BEGINHOPFENCE
|
//CODE: BEGINHOPFENCE
|
||||||
// MOVE TWO FACGIN GRIDNOS
|
// MOVE TWO FACGIN GRIDNOS
|
||||||
sNewGridNo = NewGridNo( pSoldier->sGridNo, (UINT16)( DirectionInc( pSoldier->ubDirection ) ) );
|
sNewGridNo = NewGridNo( pSoldier->sGridNo, (UINT16)( DirectionInc( pSoldier->ubDirection ) ) );
|
||||||
//dddokno{
|
//ddd window{
|
||||||
if ( gubWorldMovementCosts[ sNewGridNo ][ (UINT8)pSoldier->pathing.usPathingData[ pSoldier->pathing.usPathIndex ] ][ pSoldier->pathing.bLevel ] == TRAVELCOST_FENCE )
|
if ( gubWorldMovementCosts[ sNewGridNo ][ (UINT8)pSoldier->pathing.usPathingData[ pSoldier->pathing.usPathIndex ] ][ pSoldier->pathing.bLevel ] == TRAVELCOST_FENCE )
|
||||||
sNewGridNo = NewGridNo( sNewGridNo, (UINT16)( DirectionInc( pSoldier->ubDirection ) ) );
|
sNewGridNo = NewGridNo( sNewGridNo, (UINT16)( DirectionInc( pSoldier->ubDirection ) ) );
|
||||||
//dddokno}
|
//ddd window}
|
||||||
|
|
||||||
//comm by ddd
|
//comm by ddd
|
||||||
//sNewGridNo = NewGridNo( sNewGridNo, (UINT16)( DirectionInc( pSoldier->ubDirection ) ) );
|
//sNewGridNo = NewGridNo( sNewGridNo, (UINT16)( DirectionInc( pSoldier->ubDirection ) ) );
|
||||||
|
|||||||
@@ -3422,7 +3422,7 @@ BOOLEAN SOLDIERTYPE::EVENT_InitNewSoldierAnim( UINT16 usNewState, UINT16 usStart
|
|||||||
usNewState = SWAT_BACKWARDS;
|
usNewState = SWAT_BACKWARDS;
|
||||||
else
|
else
|
||||||
usNewState = SWAT_BACKWARDS_NOTHING;
|
usNewState = SWAT_BACKWARDS_NOTHING;
|
||||||
// движение назад вприсядку с ножом ;)
|
// move backward crouching, with a knife
|
||||||
if( this->inv[ HANDPOS ].exists() == true &&
|
if( this->inv[ HANDPOS ].exists() == true &&
|
||||||
//(this->ubBodyType == BIGMALE || this->ubBodyType == REGFEMALE )&&
|
//(this->ubBodyType == BIGMALE || this->ubBodyType == REGFEMALE )&&
|
||||||
(Item[ usItem ].usItemClass == IC_BLADE || Item[ usItem ].usItemClass == IC_THROWING_KNIFE) )
|
(Item[ usItem ].usItemClass == IC_BLADE || Item[ usItem ].usItemClass == IC_THROWING_KNIFE) )
|
||||||
@@ -3436,7 +3436,7 @@ BOOLEAN SOLDIERTYPE::EVENT_InitNewSoldierAnim( UINT16 usNewState, UINT16 usStart
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//***08.12.2008*** добавлена анимация переката -стырено ;) ddd
|
//***08.12.2008*** added roll animation ;) ddd
|
||||||
else if( usNewState == CRAWLING
|
else if( usNewState == CRAWLING
|
||||||
&& this->ubDirection ==
|
&& this->ubDirection ==
|
||||||
gPurpendicularDirection[ this->ubDirection ][ this->pathing.usPathingData
|
gPurpendicularDirection[ this->ubDirection ][ this->pathing.usPathingData
|
||||||
@@ -4638,12 +4638,12 @@ void SOLDIERTYPE::SetSoldierGridNo( INT32 sNewGridNo, BOOLEAN fForceRemove )
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//dddokno{ ???????
|
//ddd window{ ???????
|
||||||
//if ( IsOknoFencePresentAtGridno( sNewGridNo ) )
|
//if ( IsOknoFencePresentAtGridno( sNewGridNo ) )
|
||||||
//{
|
//{
|
||||||
// this->sZLevelOverride = TOPMOST_Z_LEVEL;
|
// this->sZLevelOverride = TOPMOST_Z_LEVEL;
|
||||||
//}
|
//}
|
||||||
//dddokno}
|
//ddd window}
|
||||||
|
|
||||||
// Add/ remove tree if we are near it
|
// Add/ remove tree if we are near it
|
||||||
// CheckForFullStructures( this );
|
// CheckForFullStructures( this );
|
||||||
@@ -5321,7 +5321,7 @@ UINT16 SOLDIERTYPE::GetMoveStateBasedOnStance( UINT8 ubStanceHeight )
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
//***ddd
|
//***ddd
|
||||||
// т.к. пока отрисован 1 бодитайп, остальные добавить
|
// only 1 bodytime is ready (drawn) currently, the rest need to be added
|
||||||
UINT16 usItem = this->inv[ HANDPOS ].usItem;
|
UINT16 usItem = this->inv[ HANDPOS ].usItem;
|
||||||
if( this->inv[ HANDPOS ].exists() == true &&
|
if( this->inv[ HANDPOS ].exists() == true &&
|
||||||
//(this->ubBodyType == BIGMALE || this->ubBodyType == REGFEMALE )&&
|
//(this->ubBodyType == BIGMALE || this->ubBodyType == REGFEMALE )&&
|
||||||
|
|||||||
@@ -1242,7 +1242,7 @@ void GetTBMousePositionInput( UINT32 *puiNewEvent )
|
|||||||
if ( MercPtrs[ gusUIFullTargetID ]->bTeam != gbPlayerNum )
|
if ( MercPtrs[ gusUIFullTargetID ]->bTeam != gbPlayerNum )
|
||||||
{
|
{
|
||||||
fOnValidGuy = TRUE;
|
fOnValidGuy = TRUE;
|
||||||
//ddd сброс флажка, отвечающего за режим прицеливания\регулировки очереди (прицельная очередь)
|
//ddd turn off flag that indicates aim/autofire mode adjustment (aimed burst/auto)
|
||||||
brstmode = 0;
|
brstmode = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -3163,7 +3163,7 @@ UINT32 ChanceToHitApproximation( SOLDIERTYPE * pSoldier, UINT32 uiChance )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* //ïî÷òè îòëàæåííûé õåäðîêîâñêèé êîä. äîäåëàòü ïðèöåëû äëÿ êóëàêà è íîæûãà
|
/* //nearly debugged Headrock code, need to finish aiming for fist and knife
|
||||||
void HandleWheelAdjustCursor( SOLDIERTYPE *pSoldier, INT16 sMapPos, INT16 sDelta )
|
void HandleWheelAdjustCursor( SOLDIERTYPE *pSoldier, INT16 sMapPos, INT16 sDelta )
|
||||||
{
|
{
|
||||||
UINT16 usInHand;
|
UINT16 usInHand;
|
||||||
@@ -3434,7 +3434,7 @@ void HandleWheelAdjustCursor( SOLDIERTYPE *pSoldier, INT32 sMapPos, INT32 sDelta
|
|||||||
{
|
{
|
||||||
case TARGETCURS:
|
case TARGETCURS:
|
||||||
{
|
{
|
||||||
if(pSoldier->bDoAutofire && (gfKeyState[ ALT ] || brstmode) ) //íàêðóòêà êîë-âà ïóëåé â î÷åðåäè // Flugente: how the fuck is this comment useful?
|
if(pSoldier->bDoAutofire && (gfKeyState[ ALT ] || brstmode) ) //add bullets to autofire
|
||||||
{
|
{
|
||||||
INT16 sCurAPCosts;
|
INT16 sCurAPCosts;
|
||||||
|
|
||||||
|
|||||||
@@ -2514,7 +2514,7 @@ BOOLEAN UseGun( SOLDIERTYPE *pSoldier , INT32 sTargetGridNo )
|
|||||||
}
|
}
|
||||||
fCalculateCTHDuringGunfire = FALSE;
|
fCalculateCTHDuringGunfire = FALSE;
|
||||||
|
|
||||||
//ddd{èçíîñ îáúåêòîâ ñ ìóççëå ôëàø. silencer
|
//ddd{ muzzle flash objects wearing. silencer
|
||||||
if ( (Item[ usUBItem ].usItemClass == IC_GUN) && gGameExternalOptions.bAllowWearSuppressor )
|
if ( (Item[ usUBItem ].usItemClass == IC_GUN) && gGameExternalOptions.bAllowWearSuppressor )
|
||||||
{
|
{
|
||||||
if ( IsFlashSuppressor(pObjUsed, pSoldier ) )
|
if ( IsFlashSuppressor(pObjUsed, pSoldier ) )
|
||||||
@@ -5115,9 +5115,9 @@ void WindowHit( INT32 sGridNo, UINT16 usStructureID, BOOLEAN fBlowWindowSouth, B
|
|||||||
AniParams.uiFlags = ANITILE_FORWARD;
|
AniParams.uiFlags = ANITILE_FORWARD;
|
||||||
|
|
||||||
pNode = CreateAnimationTile( &AniParams );
|
pNode = CreateAnimationTile( &AniParams );
|
||||||
//dddokno{
|
//ddd window{
|
||||||
CompileWorldMovementCosts();
|
CompileWorldMovementCosts();
|
||||||
//dddokno}
|
//ddd window}
|
||||||
PlayJA2Sample( GLASS_SHATTER1 + Random(2), RATE_11025, MIDVOLUME, 1, SoundDir( sGridNo ) );
|
PlayJA2Sample( GLASS_SHATTER1 + Random(2), RATE_11025, MIDVOLUME, 1, SoundDir( sGridNo ) );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6247,7 +6247,7 @@ UINT8 CalcEffVolume(SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel, UINT8 ubN
|
|||||||
// effective volume fades over distance beyond 1 tile away
|
// effective volume fades over distance beyond 1 tile away
|
||||||
iEffVolume -= (iDistance - 1);
|
iEffVolume -= (iDistance - 1);
|
||||||
|
|
||||||
//ddd{ цивилы плохо слышат ;)
|
//ddd{ civilians have bad hearing ;)
|
||||||
if(gGameExternalOptions.bLazyCivilians)
|
if(gGameExternalOptions.bLazyCivilians)
|
||||||
if (pSoldier->bTeam == CIV_TEAM && pSoldier->ubBodyType != CROW )
|
if (pSoldier->bTeam == CIV_TEAM && pSoldier->ubBodyType != CROW )
|
||||||
if (pSoldier->ubCivilianGroup == 0 && pSoldier->ubProfile == NO_PROFILE)
|
if (pSoldier->ubCivilianGroup == 0 && pSoldier->ubProfile == NO_PROFILE)
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ void ResetWeaponMode( SOLDIERTYPE * pSoldier )
|
|||||||
pSoldier->aiData.bShownAimTime = REFINE_AIM_1;
|
pSoldier->aiData.bShownAimTime = REFINE_AIM_1;
|
||||||
|
|
||||||
//!pSoldier->aiData.ubBurstAP = 0; //SB reset long burst length
|
//!pSoldier->aiData.ubBurstAP = 0; //SB reset long burst length
|
||||||
//^^^^такого свойства нет, добавлять в солжер контрол.х
|
//^^^^no such property, add to soldier control
|
||||||
// gfDisplayFullCountRing = FALSE;
|
// gfDisplayFullCountRing = FALSE;
|
||||||
// gfDisplayFullCountRingBurst = FALSE;
|
// gfDisplayFullCountRingBurst = FALSE;
|
||||||
//</DR>
|
//</DR>
|
||||||
|
|||||||
@@ -902,9 +902,9 @@ INT8 DecideActionGreen(SOLDIERTYPE *pSoldier)
|
|||||||
|
|
||||||
if ( pCorpse->fActivated && pCorpse->def.ubAIWarningValue > 0 )
|
if ( pCorpse->fActivated && pCorpse->def.ubAIWarningValue > 0 )
|
||||||
{
|
{
|
||||||
if ( PythSpacesAway( pSoldier->sGridNo, pCorpse->def.sGridNo ) <= 5 )//приделать сравнение переменно дальности видения (smaxvid ?)
|
if ( PythSpacesAway( pSoldier->sGridNo, pCorpse->def.sGridNo ) <= 5 )//add check(comparison) of sight range variable (smaxvid ?)
|
||||||
{
|
{
|
||||||
//проверить, находится ли труп в поле зрения драника.мента?
|
//check if the corpse is in the enemny/militia field of view?
|
||||||
//CHRISL: Shouldn't we be using the corpse's bLevel? Otherwise a soldier inside a building can see a corpse on the roof of that building
|
//CHRISL: Shouldn't we be using the corpse's bLevel? Otherwise a soldier inside a building can see a corpse on the roof of that building
|
||||||
//if ( SoldierTo3DLocationLineOfSightTest( pSoldier, pCorpse->def.sGridNo, pSoldier->pathing.bLevel, 3, TRUE, CALC_FROM_WANTED_DIR ) )
|
//if ( SoldierTo3DLocationLineOfSightTest( pSoldier, pCorpse->def.sGridNo, pSoldier->pathing.bLevel, 3, TRUE, CALC_FROM_WANTED_DIR ) )
|
||||||
if ( SoldierTo3DLocationLineOfSightTest( pSoldier, pCorpse->def.sGridNo, pCorpse->def.bLevel, 3, TRUE, CALC_FROM_WANTED_DIR ) )
|
if ( SoldierTo3DLocationLineOfSightTest( pSoldier, pCorpse->def.sGridNo, pCorpse->def.bLevel, 3, TRUE, CALC_FROM_WANTED_DIR ) )
|
||||||
@@ -3165,7 +3165,7 @@ INT8 DecideActionRed(SOLDIERTYPE *pSoldier, UINT8 ubUnconsciousOK)
|
|||||||
////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////
|
||||||
if ( ubCanMove && InLightAtNight( pSoldier->sGridNo, pSoldier->pathing.bLevel ) && pSoldier->aiData.bOrders != STATIONARY )
|
if ( ubCanMove && InLightAtNight( pSoldier->sGridNo, pSoldier->pathing.bLevel ) && pSoldier->aiData.bOrders != STATIONARY )
|
||||||
{
|
{
|
||||||
//ddd чтобы убегали, когда подсветят фальшвейером ночью
|
//ddd for the enemy to run away from lighht
|
||||||
if(gGameExternalOptions.bNewTacticalAIBehavior)
|
if(gGameExternalOptions.bNewTacticalAIBehavior)
|
||||||
pSoldier->aiData.bAction = AI_ACTION_LEAVE_WATER_GAS;
|
pSoldier->aiData.bAction = AI_ACTION_LEAVE_WATER_GAS;
|
||||||
//ddd
|
//ddd
|
||||||
|
|||||||
@@ -209,7 +209,7 @@ void ExportTilesets(vfs::Path const& filename)
|
|||||||
|
|
||||||
// Set into database
|
// Set into database
|
||||||
strcpy( gTilesets[ cnt ].TileSurfaceFilenames[ cnt2 ], zName );
|
strcpy( gTilesets[ cnt ].TileSurfaceFilenames[ cnt2 ], zName );
|
||||||
//ddd{ добавляем в индекс 250 файл окоп.
|
//ddd{ add trench to index 250
|
||||||
// if((cnt==0)&&(cnt2+1 == uiNumFiles))
|
// if((cnt==0)&&(cnt2+1 == uiNumFiles))
|
||||||
// { strcpy( gTilesets[ cnt ].TileSurfaceFilenames[ 151 ], "okop.sti" );
|
// { strcpy( gTilesets[ cnt ].TileSurfaceFilenames[ 151 ], "okop.sti" );
|
||||||
// xmlw.AddAttributeToNextValue("index",(int)151); //for exp in xml
|
// xmlw.AddAttributeToNextValue("index",(int)151); //for exp in xml
|
||||||
|
|||||||
@@ -97,7 +97,7 @@
|
|||||||
//<SB> variable map size
|
//<SB> variable map size
|
||||||
INT32 guiWorldCols = OLD_WORLD_COLS;
|
INT32 guiWorldCols = OLD_WORLD_COLS;
|
||||||
INT32 guiWorldRows = OLD_WORLD_ROWS;
|
INT32 guiWorldRows = OLD_WORLD_ROWS;
|
||||||
// размеры должны быть произведением 8
|
|
||||||
// size must be multiple of 8
|
// size must be multiple of 8
|
||||||
//SB: resize all service array due to tactical map size change
|
//SB: resize all service array due to tactical map size change
|
||||||
extern UINT8 *gubGridNoMarkers;
|
extern UINT8 *gubGridNoMarkers;
|
||||||
@@ -168,7 +168,7 @@ 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
|
// 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
|
#ifdef USE_ASTAR_PATHS
|
||||||
//ddd для убыстрения поиска освещенных участков в патхаи.
|
//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 ];
|
||||||
@@ -859,8 +859,8 @@ BOOLEAN IsNotRestrictedWindow(STRUCTURE * pStructure)
|
|||||||
&& (pStructure->fFlags & STRUCTURE_OPEN)
|
&& (pStructure->fFlags & STRUCTURE_OPEN)
|
||||||
&& (pStructure->pDBStructureRef->pDBStructure->bPartnerDelta == NO_PARTNER_STRUCTURE) )
|
&& (pStructure->pDBStructureRef->pDBStructure->bPartnerDelta == NO_PARTNER_STRUCTURE) )
|
||||||
{
|
{
|
||||||
//ручная проверка на заколоченые окна ;( {
|
//manual check for closed (unbreakable?) windows
|
||||||
//build_13.sti - заколоченные окна ндекс:
|
//build_13.sti - closed ( shielded ) windows index:
|
||||||
|
|
||||||
LEVELNODE *pNode = NULL;// STRUCTURE *pBase=NULL;
|
LEVELNODE *pNode = NULL;// STRUCTURE *pBase=NULL;
|
||||||
UINT32 uiTileType=0;
|
UINT32 uiTileType=0;
|
||||||
@@ -875,11 +875,11 @@ BOOLEAN IsNotRestrictedWindow(STRUCTURE * pStructure)
|
|||||||
Assert(pNode);
|
Assert(pNode);
|
||||||
GetSubIndexFromTileIndex( pNode->usIndex, (UINT16 *)&RestrSubIndex );
|
GetSubIndexFromTileIndex( pNode->usIndex, (UINT16 *)&RestrSubIndex );
|
||||||
|
|
||||||
//этот тип окон не содержится в 0 тайлсете, проверка нулевого тайлсета в этом случае не нужна
|
//this type of window is not present in tileset 0, checking tileset 0 is not necessary in this case
|
||||||
if ( _stricmp( gTilesets[ giCurrentTilesetID ].TileSurfaceFilenames[ uiTileType ], "build_13.sti" ) == 0
|
if ( _stricmp( gTilesets[ giCurrentTilesetID ].TileSurfaceFilenames[ uiTileType ], "build_13.sti" ) == 0
|
||||||
//&& ( pNode->usIndex == 814 || pNode->usIndex == 816 || pNode->usIndex == 817 || pNode->usIndex == 823) -запрещает только в конкретном тайлсете ;( в другом не сработает
|
//&& ( pNode->usIndex == 814 || pNode->usIndex == 816 || pNode->usIndex == 817 || pNode->usIndex == 823) - restricts only in particular tileset, doesn't work with others
|
||||||
&& (RestrSubIndex == 40 || RestrSubIndex == 41 || RestrSubIndex == 37 || RestrSubIndex == 38
|
&& (RestrSubIndex == 40 || RestrSubIndex == 41 || RestrSubIndex == 37 || RestrSubIndex == 38
|
||||||
|| RestrSubIndex == 43 || RestrSubIndex == 44 || RestrSubIndex == 46 || RestrSubIndex == 47) //номера фреймов в стишке
|
|| RestrSubIndex == 43 || RestrSubIndex == 44 || RestrSubIndex == 46 || RestrSubIndex == 47) //frame numbers in STI
|
||||||
|
|
||||||
)
|
)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|||||||
Reference in New Issue
Block a user