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:
Wanne
2014-06-03 18:13:23 +00:00
parent b118cf07b7
commit fa29d9be26
20 changed files with 64 additions and 64 deletions
+3 -3
View File
@@ -8,7 +8,7 @@
#elif defined( WIZ8_PRECOMPILED_HEADERS )
#include "WIZ8 SGP ALL.H"
#else
//** dd äëÿ ïîäêëþ÷åíèÿ äåôàéíîâ äîï. êíîïîê ìûøè
//** dd for defines that needed for additional mouse buttons
#define _WIN32_WINNT 0x500
//**
@@ -159,7 +159,7 @@ LRESULT CALLBACK MouseHandler(int Code, WPARAM wParam, LPARAM lParam)
switch (wParam)
{
case WM_XBUTTONDOWN://** êîä ðàáî÷èé
case WM_XBUTTONDOWN://** code is working
if( p_mhs->mouseData== (XBUTTON1<<16) ) //MessageBeep(-1);
{
gfX1ButtonState = TRUE;
@@ -173,7 +173,7 @@ LRESULT CALLBACK MouseHandler(int Code, WPARAM wParam, LPARAM lParam)
QueueEvent(X2_BUTTON_DOWN, 0, uiParam);
}
break;
case WM_XBUTTONUP://** êîä ðàáî÷èé
case WM_XBUTTONUP://** code is working
if( p_mhs->mouseData== (XBUTTON1<<16) )
{
gfX1ButtonState = FALSE;
+2 -2
View File
@@ -1466,10 +1466,10 @@ void InitAnimationSurfacesPerBodytype( )
gubAnimSurfaceIndex[ REGMALE ][ SWATTING_WK ] = RGMSWKNIFE;
gubAnimSurfaceIndex[ REGMALE ][ SWAT_BACKWARDS_WK ] = RGMSWKNIFE;
gubAnimSurfaceIndex[ REGMALE ][ SWAT_BACKWARDS_NOTHING ] = RGMNOTHING_SWAT;
//кидание гранаты
//grenade throwing
gubAnimSurfaceIndex[ REGMALE ][ THROW_GRENADE_STANCE ] = RGMSTHRG;
gubAnimSurfaceIndex[ REGMALE ][ LOB_GRENADE_STANCE ] = RGMSLOBG;
//перекат
//roll over
gubAnimSurfaceIndex[ REGMALE ][ ROLL_PRONE_L ] = RGMROLL_PR;
gubAnimSurfaceIndex[ REGMALE ][ ROLL_PRONE_R ] = RGMROLL_PR;
+3 -3
View File
@@ -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,
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,
//äëÿ áàáû ïîêà ñòàíäàðòíàÿ àíèìàöèÿ
//for woman - standart animation
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,
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,
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,
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,
+5 -5
View File
@@ -85,12 +85,12 @@
#include "Map Information.h"
#include "Soldier Control.h"
#include "DisplayCover.h"
//ddd îïòèìèçàöèÿ äëÿ õîäà äðàíèêîâ
//ddd optimization of enemy turn
#include "aiinternals.h"
//#include "los.h"
//#include "structure wrap.h"
//#include "DisplayCover.h"
//ddd îïòèìèçàöèÿ äëÿ õîäà äðàíèêîâ
//ddd optimization of enemy turn
#endif
#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
#ifdef USE_ASTAR_PATHS
////ddd îïòèìèçàöèÿ äëÿ õîäà äðàíèêîâ
////ddd enemy turn optimization
if ( (gTacticalStatus.uiFlags & TURNBASED) && (gTacticalStatus.uiFlags & INCOMBAT ) )
{
memset( gubWorldTileInLight, FALSE, sizeof( gubWorldTileInLight ) );
memset( gubIsCorpseThere, FALSE, sizeof( gubIsCorpseThere ) );
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.
// The crash occurd at ~index 16000 when calling the method IsCorpseAtGridNo() ...
@@ -1316,7 +1316,7 @@ UINT32 UIHandleEndTurn( UI_EVENT *pUIEvent )
}//if
}
}
//ddd îïòèìèçàöèÿ äëÿ õîäà äðàíèêîâ**
//ddd enemy turn optimization**
#endif
// End our turn!
+1 -1
View File
@@ -121,7 +121,7 @@ INT32 giMenuAnchorX, giMenuAnchorY;
//#define PROG_BAR_START_Y 2
//**ddd{
//поставить дефайн в 0 если использовать большой прогресс бар
//assign 0 to define if using large progress bar
//#define fSmallSizeProgressbar 1
INT32 HEIGHT_PROGRESSBAR, PROG_BAR_START_Y;
//ddd}
+2 -2
View File
@@ -278,11 +278,11 @@ extern UINT8 gubGlobalPathFlags;
#define TRAVELCOST_WALL 254
#define TRAVELCOST_EXITGRID 255
///ddd{okno
///ddd { window
#define TRAVELCOST_JUMPABLEWINDOW 46
#define TRAVELCOST_JUMPABLEWINDOW_N 47
#define TRAVELCOST_JUMPABLEWINDOW_W 48
///dddokno}
///ddd window }
#define TRAVELCOST_TRAINTRACKS 30
#define TRAVELCOST_DIRTROAD 9
+7 -7
View File
@@ -508,7 +508,7 @@ void AStarPathfinder::ResetAStarList()
//ddd{
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+2].status = AStarData[node+3].status = AStar_Init;
@@ -1119,7 +1119,7 @@ void AStarPathfinder::ExecuteAStarLogic()
continue;
}
//dddokno здесь можно запретить вставать на оконные клетки ;)
//ddd: window. we can forbid standing on tiles with windows
//if (gubWorldMovementCosts[CurrentNode][direction][pSoldier->pathing.bLevel] == TRAVELCOST_JUMPABLEWINDOW)
// continue;
@@ -1516,8 +1516,8 @@ int AStarPathfinder::CalcG(int* pPrevCost)
}
}
//dddokno { проверить 2 условия 1 если след. тайл окно и надо будет перелезать через него
//2. если тек. тайл окно и надо перейти на другой тайл через окно.
//ddd: window. { check 2 conditions: 1. if next tile is a window and we will have to hump through it
//2. if current tile is a window and we should jump through the window to reach another tile
else if ( nextCost == TRAVELCOST_JUMPABLEWINDOW
|| nextCost == TRAVELCOST_JUMPABLEWINDOW_N
|| nextCost == TRAVELCOST_JUMPABLEWINDOW_W)
@@ -1531,7 +1531,7 @@ int AStarPathfinder::CalcG(int* pPrevCost)
nextCost = gTileTypeMovementCost[ gpWorldLevelData[ CurrentNode ].ubTerrainID ];//?
}
//dddokno }
//ddd: window }
else if ( nextCost == TRAVELCOST_FENCE && fNonFenceJumper )
{
@@ -2325,7 +2325,7 @@ bool AStarPathfinder::WantToTraverse()
///ddd{
if(gGameExternalOptions.bNewTacticalAIBehavior)
{
// по трупам не бегаем . ТОДО: в 80% случаев не бегаем?
// don't walk over corpses. TODO: only avoid in 80% ?
if ( ( (gTacticalStatus.uiFlags & TURNBASED) && (gTacticalStatus.uiFlags & INCOMBAT) )
&& pSoldier->bTeam == ENEMY_TEAM
//&& IsCorpseAtGridNo( CurrentNode, pSoldier->pathing.bLevel )
@@ -2333,7 +2333,7 @@ bool AStarPathfinder::WantToTraverse()
)
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) )
&& pSoldier->bTeam == ENEMY_TEAM && pSoldier->ubProfile == NO_PROFILE
&& pSoldier->aiData.bAction != AI_ACTION_LEAVE_WATER_GAS
+6 -6
View File
@@ -80,7 +80,7 @@ INT16 TerrainActionPoints( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bDir, INT8
}
}
}
//dddokno
//ddd window
if ( sSwitchValue == TRAVELCOST_JUMPABLEWINDOW
|| sSwitchValue == TRAVELCOST_JUMPABLEWINDOW_N
|| sSwitchValue == TRAVELCOST_JUMPABLEWINDOW_W)
@@ -89,8 +89,8 @@ INT16 TerrainActionPoints( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bDir, INT8
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)
{
// 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!
case TRAVELCOST_FENCE :
//dddokno{
//ddd window{
case TRAVELCOST_JUMPABLEWINDOW:
case TRAVELCOST_JUMPABLEWINDOW_N:
case TRAVELCOST_JUMPABLEWINDOW_W:
//dddokno}
//ddd window}
if (!IS_MERC_BODY_TYPE( pSoldier ))
{
return -1;
@@ -4268,7 +4268,7 @@ INT32 GetBPCostPer10APsForGunHolding( SOLDIERTYPE * pSoldier, BOOLEAN fEstimate
// Alternative weapon holding?
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
else // holding pistol in one hand is worse in this case
dModifier -= 25; // increased cost by 25%
+8 -8
View File
@@ -1674,8 +1674,8 @@ void GetRTMousePositionInput( UINT32 *puiNewEvent )
}
}
//***13.02.2008*** постановка в тактике мешков с песком
//usSubIndex может быть от 1 до 10
//***13.02.2008*** place sandbags in tactics
//usSubIndex may be [ 1 .. 10 ]
//void PlaceSandbag (UINT16 usSubIndex)
//{
// INT16 sGridNo;
@@ -1727,20 +1727,20 @@ void GetRTMousePositionInput( UINT32 *puiNewEvent )
// // return;
//
// //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");
// //}
//usIndex =1;
// //GetTileIndexFromTypeSubIndex( SECONDLARGEEXPDEBRIS, usSubIndex, &usIndex ); //только для 0 тайлсета
//GetTileIndexFromTypeSubIndex( 150, usSubIndex, &usIndex ); //только для 0 тайлсета
// //GetTileIndexFromTypeSubIndex( SECONDLARGEEXPDEBRIS, usSubIndex, &usIndex ); //only for tileset 0
//GetTileIndexFromTypeSubIndex( 150, usSubIndex, &usIndex ); //only for tileset 0
//ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"No Sandbags");
// //GetTileIndexFromTypeSubIndex( SECONDLARGEEXPDEBRIS, usSubIndex, &usIndex );
// ApplyMapChangesToMapTempFile( TRUE );
// AddStructToHead( sGridNo, usIndex);
// //if( pSector->bUSUSED <= 0 || !AddStructToHead( sGridNo, usIndex ) )
// //{
// //перебор для удаления всех видов мешков
// //loop to delete all sandbags
// // for(cnt = 1; cnt <= 10; cnt++)
// // {
// // GetTileIndexFromTypeSubIndex( uiType, cnt, &usIndex );
@@ -1832,7 +1832,7 @@ void QueryRTWheels( UINT32 *puiNewEvent )
case TALKCURSOR_MODE:
case MENU_MODE:
break;
case CONFIRM_ACTION_MODE: //стрелять здесь. но до сюда не доходит ;)
case CONFIRM_ACTION_MODE: //shoot here. but is never gets here :)
break;
}//switch
}//if ( gusSelectedSoldier != NOBODY )
@@ -2048,7 +2048,7 @@ void HandleMouseRTWheel( void )
if ( !( gTacticalStatus.uiFlags & ENGAGED_IN_CONV ) &&
( ( gsCurInterfacePanel != SM_PANEL ) || ( ButtonList[ iSMPanelButtons[ NEXTMERC_BUTTON ] ]->uiFlags & BUTTON_ENABLED ) ) )
{
if ( gViewportRegion.WheelState > 0 ) //колесо от себя
if ( gViewportRegion.WheelState > 0 ) //wheel up
{
//change stance ->DOWN
if ( _KeyDown( ALT ) )
+1 -1
View File
@@ -835,7 +835,7 @@ BOOLEAN TurnSoldierIntoCorpse( SOLDIERTYPE *pSoldier, BOOLEAN fRemoveMerc, BOOLE
Corpse.dYPos = pSoldier->dYPos;
Corpse.bLevel = pSoldier->pathing.bLevel;
Corpse.ubProfile = pSoldier->ubProfile;
///ddd{ для обнаружения трупов драниками.
///ddd{ for the enemy to be able to detect corpses
if ( pSoldier->bTeam != gbPlayerNum )
Corpse.ubAIWarningValue = 1;
//def.ubAIWarningValue = 1; //not used value!
+2 -2
View File
@@ -958,10 +958,10 @@ BOOLEAN AdjustToNextAnimationFrame( SOLDIERTYPE *pSoldier )
//CODE: BEGINHOPFENCE
// MOVE TWO FACGIN GRIDNOS
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 )
sNewGridNo = NewGridNo( sNewGridNo, (UINT16)( DirectionInc( pSoldier->ubDirection ) ) );
//dddokno}
//ddd window}
//comm by ddd
//sNewGridNo = NewGridNo( sNewGridNo, (UINT16)( DirectionInc( pSoldier->ubDirection ) ) );
+5 -5
View File
@@ -3422,7 +3422,7 @@ BOOLEAN SOLDIERTYPE::EVENT_InitNewSoldierAnim( UINT16 usNewState, UINT16 usStart
usNewState = SWAT_BACKWARDS;
else
usNewState = SWAT_BACKWARDS_NOTHING;
// движение назад вприсядку с ножом ;)
// move backward crouching, with a knife
if( this->inv[ HANDPOS ].exists() == true &&
//(this->ubBodyType == BIGMALE || this->ubBodyType == REGFEMALE )&&
(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
&& this->ubDirection ==
gPurpendicularDirection[ this->ubDirection ][ this->pathing.usPathingData
@@ -4638,12 +4638,12 @@ void SOLDIERTYPE::SetSoldierGridNo( INT32 sNewGridNo, BOOLEAN fForceRemove )
}
*/
//dddokno{ ???????
//ddd window{ ???????
//if ( IsOknoFencePresentAtGridno( sNewGridNo ) )
//{
// this->sZLevelOverride = TOPMOST_Z_LEVEL;
//}
//dddokno}
//ddd window}
// Add/ remove tree if we are near it
// CheckForFullStructures( this );
@@ -5321,7 +5321,7 @@ UINT16 SOLDIERTYPE::GetMoveStateBasedOnStance( UINT8 ubStanceHeight )
else
{
//***ddd
// т.к. пока отрисован 1 бодитайп, остальные добавить
// only 1 bodytime is ready (drawn) currently, the rest need to be added
UINT16 usItem = this->inv[ HANDPOS ].usItem;
if( this->inv[ HANDPOS ].exists() == true &&
//(this->ubBodyType == BIGMALE || this->ubBodyType == REGFEMALE )&&
+1 -1
View File
@@ -1242,7 +1242,7 @@ void GetTBMousePositionInput( UINT32 *puiNewEvent )
if ( MercPtrs[ gusUIFullTargetID ]->bTeam != gbPlayerNum )
{
fOnValidGuy = TRUE;
//ddd сброс флажка, отвечающего за режим прицеливания\регулировки очереди (прицельная очередь)
//ddd turn off flag that indicates aim/autofire mode adjustment (aimed burst/auto)
brstmode = 0;
}
else
+2 -2
View File
@@ -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 )
{
UINT16 usInHand;
@@ -3434,7 +3434,7 @@ void HandleWheelAdjustCursor( SOLDIERTYPE *pSoldier, INT32 sMapPos, INT32 sDelta
{
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;
+3 -3
View File
@@ -2514,7 +2514,7 @@ BOOLEAN UseGun( SOLDIERTYPE *pSoldier , INT32 sTargetGridNo )
}
fCalculateCTHDuringGunfire = FALSE;
//ddd{èçíîñ îáúåêòîâ ñ ìóççëå ôëàø. silencer
//ddd{ muzzle flash objects wearing. silencer
if ( (Item[ usUBItem ].usItemClass == IC_GUN) && gGameExternalOptions.bAllowWearSuppressor )
{
if ( IsFlashSuppressor(pObjUsed, pSoldier ) )
@@ -5115,9 +5115,9 @@ void WindowHit( INT32 sGridNo, UINT16 usStructureID, BOOLEAN fBlowWindowSouth, B
AniParams.uiFlags = ANITILE_FORWARD;
pNode = CreateAnimationTile( &AniParams );
//dddokno{
//ddd window{
CompileWorldMovementCosts();
//dddokno}
//ddd window}
PlayJA2Sample( GLASS_SHATTER1 + Random(2), RATE_11025, MIDVOLUME, 1, SoundDir( sGridNo ) );
}
+1 -1
View File
@@ -6247,7 +6247,7 @@ UINT8 CalcEffVolume(SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel, UINT8 ubN
// effective volume fades over distance beyond 1 tile away
iEffVolume -= (iDistance - 1);
//ddd{ цивилы плохо слышат ;)
//ddd{ civilians have bad hearing ;)
if(gGameExternalOptions.bLazyCivilians)
if (pSoldier->bTeam == CIV_TEAM && pSoldier->ubBodyType != CROW )
if (pSoldier->ubCivilianGroup == 0 && pSoldier->ubProfile == NO_PROFILE)
+1 -1
View File
@@ -145,7 +145,7 @@ void ResetWeaponMode( SOLDIERTYPE * pSoldier )
pSoldier->aiData.bShownAimTime = REFINE_AIM_1;
//!pSoldier->aiData.ubBurstAP = 0; //SB reset long burst length
//^^^^такого свойства нет, добавлять в солжер контрол.х
//^^^^no such property, add to soldier control
// gfDisplayFullCountRing = FALSE;
// gfDisplayFullCountRingBurst = FALSE;
//</DR>
+3 -3
View File
@@ -902,9 +902,9 @@ INT8 DecideActionGreen(SOLDIERTYPE *pSoldier)
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
//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 ) )
@@ -3165,7 +3165,7 @@ INT8 DecideActionRed(SOLDIERTYPE *pSoldier, UINT8 ubUnconsciousOK)
////////////////////////////////////////////////////////////////////////////
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)
pSoldier->aiData.bAction = AI_ACTION_LEAVE_WATER_GAS;
//ddd
+1 -1
View File
@@ -209,7 +209,7 @@ void ExportTilesets(vfs::Path const& filename)
// Set into database
strcpy( gTilesets[ cnt ].TileSurfaceFilenames[ cnt2 ], zName );
//ddd{ добавляем в индекс 250 файл окоп.
//ddd{ add trench to index 250
// if((cnt==0)&&(cnt2+1 == uiNumFiles))
// { strcpy( gTilesets[ cnt ].TileSurfaceFilenames[ 151 ], "okop.sti" );
// xmlw.AddAttributeToNextValue("index",(int)151); //for exp in xml
+7 -7
View File
@@ -97,7 +97,7 @@
//<SB> variable map size
INT32 guiWorldCols = OLD_WORLD_COLS;
INT32 guiWorldRows = OLD_WORLD_ROWS;
// размеры должны быть произведением 8
// size must be multiple of 8
//SB: resize all service array due to tactical map size change
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
#ifdef USE_ASTAR_PATHS
//ddd для убыстрения поиска освещенных участков в патхаи.
//ddd to speed up search of illuminated tiles in PATH AI
BOOLEAN gubWorldTileInLight[ MAX_ALLOWED_WORLD_MAX ];
BOOLEAN gubIsCorpseThere[ MAX_ALLOWED_WORLD_MAX ];
INT32 gubMerkCanSeeThisTile[ MAX_ALLOWED_WORLD_MAX ];
@@ -859,8 +859,8 @@ BOOLEAN IsNotRestrictedWindow(STRUCTURE * pStructure)
&& (pStructure->fFlags & STRUCTURE_OPEN)
&& (pStructure->pDBStructureRef->pDBStructure->bPartnerDelta == NO_PARTNER_STRUCTURE) )
{
//ручная проверка на заколоченые окна ;( {
//build_13.sti - заколоченные окна ндекс:
//manual check for closed (unbreakable?) windows
//build_13.sti - closed ( shielded ) windows index:
LEVELNODE *pNode = NULL;// STRUCTURE *pBase=NULL;
UINT32 uiTileType=0;
@@ -875,11 +875,11 @@ BOOLEAN IsNotRestrictedWindow(STRUCTURE * pStructure)
Assert(pNode);
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
//&& ( 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 == 43 || RestrSubIndex == 44 || RestrSubIndex == 46 || RestrSubIndex == 47) //номера фреймов в стишке
|| RestrSubIndex == 43 || RestrSubIndex == 44 || RestrSubIndex == 46 || RestrSubIndex == 47) //frame numbers in STI
)
return FALSE;