mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +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 )
|
||||
#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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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!
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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%
|
||||
|
||||
@@ -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 ) )
|
||||
|
||||
@@ -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!
|
||||
|
||||
@@ -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 ) ) );
|
||||
|
||||
@@ -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 )&&
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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 ) );
|
||||
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user