CP1251 to UTF-8 (to preserve original comments)

This commit is contained in:
Alibek Omarov 2020-08-31 19:55:47 +03:00
parent 5cc388c45e
commit 72dd8114eb
211 changed files with 399 additions and 399 deletions

View File

@ -32,7 +32,7 @@
WEAPON *gpActiveSel; // NULL means off, 1 means just the menu bar, otherwise WEAPON *gpActiveSel; // NULL means off, 1 means just the menu bar, otherwise
// this points to the active weapon menu item // this points to the active weapon menu item
//WEAPON *gpLastSel; // Last weapon menu selection buz: íàõ //WEAPON *gpLastSel; // Last weapon menu selection buz: нах
client_sprite_t *GetSpriteList(client_sprite_t *pList, const char *psz, int iRes, int iCount); client_sprite_t *GetSpriteList(client_sprite_t *pList, const char *psz, int iRes, int iCount);
@ -612,7 +612,7 @@ void WeaponsResource :: SelectSlot( int iSlot, int fAdvance, int iDirection )
m_rgColumnSizes[iSlot] = 1; m_rgColumnSizes[iSlot] = 1;
gpActiveSel = GetFirstPos( iSlot ); gpActiveSel = GetFirstPos( iSlot );
// Wargon: hud_fastswitch äëÿ íîâîãî HUD'à. // Wargon: hud_fastswitch для нового HUD'а.
if (gpActiveSel && fastSwitch && !(GetNextActivePos(gpActiveSel->iSlot, gpActiveSel->iSlotPos)) && (iSlot != 0)) if (gpActiveSel && fastSwitch && !(GetNextActivePos(gpActiveSel->iSlot, gpActiveSel->iSlotPos)) && (iSlot != 0))
{ {
ServerCmd(gpActiveSel->szName); ServerCmd(gpActiveSel->szName);
@ -642,7 +642,7 @@ void WeaponsResource :: SelectSlot( int iSlot, int fAdvance, int iDirection )
m_iSelectedColumn = iSlot; m_iSelectedColumn = iSlot;
gpActiveSel = GetFirstPos( iSlot ); gpActiveSel = GetFirstPos( iSlot );
// Wargon: hud_fastswitch äëÿ íîâîãî HUD'à. // Wargon: hud_fastswitch для нового HUD'а.
if (gpActiveSel && fastSwitch && !(GetNextActivePos(gpActiveSel->iSlot, gpActiveSel->iSlotPos)) && (iSlot != 0)) if (gpActiveSel && fastSwitch && !(GetNextActivePos(gpActiveSel->iSlot, gpActiveSel->iSlotPos)) && (iSlot != 0))
{ {
ServerCmd(gpActiveSel->szName); ServerCmd(gpActiveSel->szName);

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -14,7 +14,7 @@ class MemBlock
public: public:
MemBlock(int numElements) MemBlock(int numElements)
{ {
// элемент 0 используется в качестве начала списка занятых ячеек // элемент 0 используется в качестве начала списка занятых ячеек
m_iArraySize = numElements + 1; m_iArraySize = numElements + 1;
m_pArray = new chunk_t[m_iArraySize]; m_pArray = new chunk_t[m_iArraySize];
@ -38,7 +38,7 @@ public:
{ {
if (m_iArraySize > 1) if (m_iArraySize > 1)
{ {
m_pArray[0].next = 0; // если он ссылается сам на себя, значит список занятых пуст m_pArray[0].next = 0; // если он ссылается сам на себя, значит список занятых пуст
m_iFirstFree = 1; m_iFirstFree = 1;
for (int i = 1; i < m_iArraySize; ++i) for (int i = 1; i < m_iArraySize; ++i)
@ -51,9 +51,9 @@ public:
if (m_iFirstFree != m_iArraySize) if (m_iFirstFree != m_iArraySize)
{ {
int savedFirstFree = m_pArray[m_iFirstFree].next; int savedFirstFree = m_pArray[m_iFirstFree].next;
m_pArray[m_iFirstFree].next = m_pArray[0].next; // добавляем свободную ячейку в m_pArray[m_iFirstFree].next = m_pArray[0].next; // добавляем свободную ячейку в
m_pArray[0].next = m_iFirstFree; // список занятых m_pArray[0].next = m_iFirstFree; // список занятых
m_iFirstFree = savedFirstFree; // исключаем ячейку из списка свободных m_iFirstFree = savedFirstFree; // исключаем ячейку из списка свободных
return &(m_pArray[m_pArray[0].next].data); return &(m_pArray[m_pArray[0].next].data);
} }
else else
@ -67,7 +67,7 @@ public:
bool StartPass( void ) bool StartPass( void )
{ {
m_iCurrent = 0; // начинаем обход с нулевого элемента m_iCurrent = 0; // начинаем обход с нулевого элемента
if (m_iArraySize > 1) if (m_iArraySize > 1)
return true; return true;
@ -92,17 +92,17 @@ public:
void DeleteCurrent( void ) void DeleteCurrent( void )
{ {
int delindex = m_pArray[m_iCurrent].next; int delindex = m_pArray[m_iCurrent].next;
m_pArray[m_iCurrent].next = m_pArray[delindex].next; // выбрасываем элемент из цепи занятых m_pArray[m_iCurrent].next = m_pArray[delindex].next; // выбрасываем элемент из цепи занятых
m_pArray[delindex].next = m_iFirstFree; m_pArray[delindex].next = m_iFirstFree;
m_iFirstFree = delindex; // включаем элемент в начало цепи свободных m_iFirstFree = delindex; // включаем элемент в начало цепи свободных
} }
private: private:
chunk_t *m_pArray; chunk_t *m_pArray;
int m_iArraySize; int m_iArraySize;
int m_iCurrent; // для прохождения через массив int m_iCurrent; // для прохождения через массив
int m_iFirstFree; // начало списка свободных элементов int m_iFirstFree; // начало списка свободных элементов
}; };

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -471,7 +471,7 @@ void MakeLight( void )
void GammaGraphInit(); void GammaGraphInit();
void CanUseInit( void ); // Wargon: Èêîíêà þçà. void CanUseInit( void ); // Wargon: Иконка юза.
// This is called every time the DLL is loaded // This is called every time the DLL is loaded
void CHud :: Init( void ) void CHud :: Init( void )
@ -484,7 +484,7 @@ void CHud :: Init( void )
SubtitleInit(); // buz SubtitleInit(); // buz
TabPanelInit(); // buz TabPanelInit(); // buz
CanUseInit(); // Wargon: Èêîíêà þçà. CanUseInit(); // Wargon: Иконка юза.
// pointer to headshield entity // pointer to headshield entity
m_pHeadShieldEnt = &head_shield; m_pHeadShieldEnt = &head_shield;

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -58,7 +58,7 @@ void CHud::Think(void)
m_flDeadTime = gEngfuncs.GetClientTime(); m_flDeadTime = gEngfuncs.GetClientTime();
} }
// Wargon: Исправление бага эффекта grayscale, остававшегося после загрузки из мертвого состояния. // Wargon: Исправление бага эффекта grayscale, остававшегося после загрузки из мертвого состояния.
if (gHUD.m_Health.m_iHealth > 0) if (gHUD.m_Health.m_iHealth > 0)
{ {
m_flDeadTime = 0; m_flDeadTime = 0;
@ -97,7 +97,7 @@ void CHud::Think(void)
if( mod < 30 ) mod = 30; if( mod < 30 ) mod = 30;
if( g_iGunMode == 3 || lastFixedFov == 30 ) if( g_iGunMode == 3 || lastFixedFov == 30 )
mod *= 2; // хаками халфа полнится (c) mod *= 2; // хаками халфа полнится (c)
mod /= 30; mod /= 30;
if( m_flFOV < targetFOV ) if( m_flFOV < targetFOV )
@ -258,7 +258,7 @@ int CHud :: Redraw( float flTime, int intermission )
} }
// buz: draw crosshair // buz: draw crosshair
// Wargon: Прицел рисуется только если hud_draw = 1. // Wargon: Прицел рисуется только если hud_draw = 1.
if(( g_vSpread[0] && g_iGunMode == 1 && m_SpecTank_on == 0 ) && gHUD.m_pCvarDraw->value && cv_crosshair->value ) if(( g_vSpread[0] && g_iGunMode == 1 && m_SpecTank_on == 0 ) && gHUD.m_pCvarDraw->value && cv_crosshair->value )
{ {
if( gViewPort && gViewPort->m_pParanoiaText && gViewPort->m_pParanoiaText->isVisible( )) if( gViewPort && gViewPort->m_pParanoiaText && gViewPort->m_pParanoiaText->isVisible( ))

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //
@ -773,7 +773,7 @@ void DLLEXPORT CL_CreateMove ( float frametime, struct usercmd_s *cmd, int activ
else if (viewangles[PITCH] < -gHUD.m_SpecTank_coneVer) else if (viewangles[PITCH] < -gHUD.m_SpecTank_coneVer)
viewangles[PITCH] = -gHUD.m_SpecTank_coneVer; viewangles[PITCH] = -gHUD.m_SpecTank_coneVer;
// âñåì ñïàñèáî, âñå ñâîáîäíû // всем спасибо, все свободны
gEngfuncs.SetViewAngles( (float *)viewangles ); gEngfuncs.SetViewAngles( (float *)viewangles );
} }

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -29,7 +29,7 @@ void ShowTip( client_textmessage_t *tempMessage ); // buz
void VGuiAddScreenMessage( client_textmessage_t *msg ); // buz void VGuiAddScreenMessage( client_textmessage_t *msg ); // buz
void VGuiAddPickupMessage( client_textmessage_t *msg ); // buz void VGuiAddPickupMessage( client_textmessage_t *msg ); // buz
// Wargon: Ñêðîëëÿùèéñÿ òåêñò. // Wargon: Скроллящийся текст.
void VGuiAddScrollingMessage( client_textmessage_t *msg ); void VGuiAddScrollingMessage( client_textmessage_t *msg );
DECLARE_MESSAGE( m_Message, HudText ) DECLARE_MESSAGE( m_Message, HudText )
@ -445,7 +445,7 @@ void CHudMessage::MessageAdd( const char *pName, float time )
VGuiAddPickupMessage( tempMessage ); VGuiAddPickupMessage( tempMessage );
return; return;
} }
else if (tempMessage->effect == 6) // Wargon: Ñêðîëëÿùèéñÿ òåêñò. else if (tempMessage->effect == 6) // Wargon: Скроллящийся текст.
{ {
VGuiAddScrollingMessage( tempMessage ); VGuiAddScrollingMessage( tempMessage );
return; return;

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -646,7 +646,7 @@ StudioInterpolateControllers
*/ */
void CStudioModelRenderer :: StudioInterpolateControllers( cl_entity_t *e, float dadt ) void CStudioModelRenderer :: StudioInterpolateControllers( cl_entity_t *e, float dadt )
{ {
// buz: хак, позволяющий не интерполировать контроллеры для стационарного пулемета // buz: хак, позволяющий не интерполировать контроллеры для стационарного пулемета
if( RI->currententity->curstate.renderfx == 51 ) if( RI->currententity->curstate.renderfx == 51 )
dadt = 1.0f; dadt = 1.0f;

View File

@ -16,15 +16,15 @@
#include "triangleapi.h" #include "triangleapi.h"
#include "gl_local.h" #include "gl_local.h"
#define DRIPSPEED 900 // скорость падения капель (пикс в сек) #define DRIPSPEED 900 // скорость падения капель (пикс в сек)
#define SNOWSPEED 200 // скорость падения снежинок #define SNOWSPEED 200 // скорость падения снежинок
#define SNOWFADEDIST 80 #define SNOWFADEDIST 80
#define MAX_RAIN_VERTICES 65536 // snowflakes and waterrings draw as quads #define MAX_RAIN_VERTICES 65536 // snowflakes and waterrings draw as quads
#define MAX_RAIN_INDICES MAX_RAIN_VERTICES * 4 #define MAX_RAIN_INDICES MAX_RAIN_VERTICES * 4
#define MAXDRIPS 40000 // лимит капель (можно увеличить при необходимости) #define MAXDRIPS 40000 // лимит капель (можно увеличить при необходимости)
#define MAXFX 20000 // лимит дополнительных частиц (круги по воде и т.п.) #define MAXFX 20000 // лимит дополнительных частиц (круги по воде и т.п.)
#define MODE_RAIN 0 #define MODE_RAIN 0
#define MODE_SNOW 1 #define MODE_SNOW 1
@ -32,7 +32,7 @@
#define DRIP_SPRITE_HALFHEIGHT 46 #define DRIP_SPRITE_HALFHEIGHT 46
#define DRIP_SPRITE_HALFWIDTH 8 #define DRIP_SPRITE_HALFWIDTH 8
#define SNOW_SPRITE_HALFSIZE 3 #define SNOW_SPRITE_HALFSIZE 3
#define MAX_RING_HALFSIZE 25 // "радиус" круга на воде, до которого он разрастается за секунду #define MAX_RING_HALFSIZE 25 // "радиус" круга на воде, до которого он разрастается за секунду
typedef struct typedef struct
{ {
@ -47,7 +47,7 @@ typedef struct
typedef struct cl_drip typedef struct cl_drip
{ {
float birthTime; float birthTime;
float minHeight; // капля будет уничтожена на этой высоте. float minHeight; // капля будет уничтожена на этой высоте.
Vector origin; Vector origin;
float alpha; float alpha;
float xDelta; // side speed float xDelta; // side speed
@ -90,10 +90,10 @@ static int m_iNumVerts, m_iNumIndex;
/* /*
================================= =================================
ProcessRain ProcessRain
Перемещает существующие объекты, удаляет их при надобности, Перемещает существующие объекты, удаляет их при надобности,
и, если дождь включен, создает новые. и, если дождь включен, создает новые.
Должна вызываться каждый кадр. Должна вызываться каждый кадр.
================================= =================================
*/ */
void ProcessRain( void ) void ProcessRain( void )
@ -132,7 +132,7 @@ void ProcessRain( void )
cl_drip *curDrip = g_dripsArray.GetCurrent(); cl_drip *curDrip = g_dripsArray.GetCurrent();
// хранение отладочной информации // хранение отладочной информации
float debug_lifetime = 0; float debug_lifetime = 0;
int debug_howmany = 0; int debug_howmany = 0;
int debug_attempted = 0; int debug_attempted = 0;
@ -330,7 +330,7 @@ void ProcessRain( void )
/* /*
================================= =================================
WaterLandingEffect WaterLandingEffect
создает круг на водной поверхности создает круг на водной поверхности
================================= =================================
*/ */
void WaterLandingEffect( cl_drip *drip ) void WaterLandingEffect( cl_drip *drip )
@ -362,9 +362,9 @@ void WaterLandingEffect( cl_drip *drip )
/* /*
================================= =================================
ProcessFXObjects ProcessFXObjects
удаляет FX объекты, у которых вышел срок жизни удаляет FX объекты, у которых вышел срок жизни
Каждый кадр вызывается перед ProcessRain Каждый кадр вызывается перед ProcessRain
================================= =================================
*/ */
void ProcessFXObjects( void ) void ProcessFXObjects( void )
@ -396,7 +396,7 @@ void ProcessFXObjects( void )
/* /*
================================= =================================
ResetRain ResetRain
очищает память, удаляя все объекты. очищает память, удаляя все объекты.
================================= =================================
*/ */
void ResetRain( void ) void ResetRain( void )
@ -415,7 +415,7 @@ void ResetRain( void )
================================= =================================
DrawRain DrawRain
Рисование капель и снежинок. Рисование капель и снежинок.
================================= =================================
*/ */
void DrawRain( void ) void DrawRain( void )
@ -628,7 +628,7 @@ void DrawRain( void )
================================= =================================
DrawFXObjects DrawFXObjects
Рисование водяных кругов Рисование водяных кругов
================================= =================================
*/ */
void DrawFXObjects( void ) void DrawFXObjects( void )
@ -738,7 +738,7 @@ void DrawFXObjects( void )
/* /*
================================= =================================
InitRain InitRain
Инициализирует все переменные нулевыми значениями. Инициализирует все переменные нулевыми значениями.
================================= =================================
*/ */
void InitRain( void ) void InitRain( void )

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -158,7 +158,7 @@ public:
drawSetTextFont(m_pFont); drawSetTextFont(m_pFont);
drawSetTextColor(0, 250, 0, 0); drawSetTextColor(0, 250, 0, 0);
fff char* pos = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"; fff char* pos = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
int xpos = 0; int xpos = 0;
while(*pos != 0) while(*pos != 0)
@ -168,7 +168,7 @@ public:
xpos += 16; xpos += 16;
} }
pos = "абвгдежзийклмнопрстуфхцчшщъыьэюя"; pos = "абвгдежзийклмнопрстуфхцчшщъыьэюя";
xpos = 0; xpos = 0;
while(*pos != 0) while(*pos != 0)
@ -178,7 +178,7 @@ public:
xpos += 16; xpos += 16;
} fffffffffff } fffffffffff
drawSetTextPos(0,17); drawSetTextPos(0,17);
char* textstring = "Изначально именовалась в правительственных объектах..."; char* textstring = "Изначально именовалась в правительственных объектах...";
drawPrintText(textstring, strlen(textstring) - 1); drawPrintText(textstring, strlen(textstring) - 1);
int xpos = 0; int xpos = 0;
@ -192,7 +192,7 @@ public:
} }
int wide, tall; int wide, tall;
m_pFont->getTextSize("Изначально именовалась в правительственных объектах...", wide, tall); m_pFont->getTextSize("Изначально именовалась в правительственных объектах...", wide, tall);
drawSetColor(100, 0, 0, 0); drawSetColor(100, 0, 0, 0);
drawFilledRect(0, 34, wide, 34+tall); drawFilledRect(0, 34, wide, 34+tall);
//gEngfuncs.Con_Printf("wide %d, tall %d\n", wide, tall); //gEngfuncs.Con_Printf("wide %d, tall %d\n", wide, tall);
@ -650,7 +650,7 @@ TeamFortressViewport::TeamFortressViewport(int x,int y,int wide,int tall) : Pane
m_pRadio = NULL; // buz m_pRadio = NULL; // buz
m_pGamma = NULL; // buz m_pGamma = NULL; // buz
// Wargon: Скроллящийся текст. // Wargon: Скроллящийся текст.
m_pScrollingMsg = NULL; m_pScrollingMsg = NULL;
CreatePickupMessagePanels(); // buz CreatePickupMessagePanels(); // buz
@ -754,7 +754,7 @@ TeamFortressViewport::TeamFortressViewport(int x,int y,int wide,int tall) : Pane
m_pScreenMsg = new CScreenMessage(); m_pScreenMsg = new CScreenMessage();
m_pScreenMsg->setParent(this); m_pScreenMsg->setParent(this);
// Wargon: Скроллящийся текст. // Wargon: Скроллящийся текст.
m_pScrollingMsg = new CScrollingMessage(); m_pScrollingMsg = new CScrollingMessage();
m_pScrollingMsg->setParent(this); m_pScrollingMsg->setParent(this);
} }
@ -802,7 +802,7 @@ void TeamFortressViewport::Initialize( void )
m_pTips->Initialize(); // buz m_pTips->Initialize(); // buz
if (m_pScreenMsg) if (m_pScreenMsg)
m_pScreenMsg->Initialize(); // buz m_pScreenMsg->Initialize(); // buz
// Wargon: Скроллящийся текст. // Wargon: Скроллящийся текст.
if (m_pScrollingMsg) if (m_pScrollingMsg)
m_pScrollingMsg->Initialize(); m_pScrollingMsg->Initialize();

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //
@ -137,7 +137,7 @@ class CTips;
class CScreenMessage; class CScreenMessage;
class CGammaView; class CGammaView;
// Wargon: Ñêðîëëÿùèéñÿ òåêñò. // Wargon: Скроллящийся текст.
class CScrollingMessage; class CScrollingMessage;
char* GetVGUITGAName(const char *pszName); char* GetVGUITGAName(const char *pszName);
@ -670,7 +670,7 @@ public:
CGammaView *m_pGamma; CGammaView *m_pGamma;
CScreenMessage *m_pScreenMsg; CScreenMessage *m_pScreenMsg;
// Wargon: Ñêðîëëÿùèéñÿ òåêñò. // Wargon: Скроллящийся текст.
CScrollingMessage *m_pScrollingMsg; CScrollingMessage *m_pScrollingMsg;
}; };

View File

@ -30,13 +30,13 @@
#define HEALTH_ZERO_ALPHA 150 #define HEALTH_ZERO_ALPHA 150
#define HEALTH_ALPHA 70 #define HEALTH_ALPHA 70
// Wargon: Èêîíêà þçà. // Wargon: Иконка юза.
#define USAGE_FADE_TIME 1 #define USAGE_FADE_TIME 1
#define USAGE_ALPHA 70 #define USAGE_ALPHA 70
static int resArray[] = { 320, 400, 512, 640, 800, 1024, 1152, 1280, 1600 }; static int resArray[] = { 320, 400, 512, 640, 800, 1024, 1152, 1280, 1600 };
// Wargon: Èêîíêà þçà. // Wargon: Иконка юза.
int CanUseStatus; int CanUseStatus;
int __MsgFunc_CanUse( const char *pszName, int iSize, void *pbuf ) int __MsgFunc_CanUse( const char *pszName, int iSize, void *pbuf )
{ {
@ -160,7 +160,7 @@ void CHud2::Initialize()
armor = -1; armor = -1;
stamina = 1; stamina = 1;
m_fMedkitUpdateTime = 0; m_fMedkitUpdateTime = 0;
m_fUsageUpdateTime = 0; // Wargon: Èêîíêà þçà. m_fUsageUpdateTime = 0; // Wargon: Иконка юза.
} }
CHud2::CHud2() : Panel(0, 0, XRES(640), YRES(480)) CHud2::CHud2() : Panel(0, 0, XRES(640), YRES(480))
@ -396,7 +396,7 @@ CHud2::CHud2() : Panel(0, 0, XRES(640), YRES(480))
} }
// //
// Wargon: Èêîíêà þçà. // Wargon: Иконка юза.
// //
m_pUsageIcon = new CImageLabel( "usage", ScreenWidth / 2 - 12, ScreenHeight / 2 + 100 ); m_pUsageIcon = new CImageLabel( "usage", ScreenWidth / 2 - 12, ScreenHeight / 2 + 100 );
@ -443,7 +443,7 @@ void CHud2::solve()
{ {
float curtime = gEngfuncs.GetClientTime(); float curtime = gEngfuncs.GetClientTime();
// Wargon: Èêîíêà þçà. // Wargon: Иконка юза.
if (m_pUsageIcon) if (m_pUsageIcon)
{ {
m_fUsageUpdateTime = curtime; m_fUsageUpdateTime = curtime;
@ -685,7 +685,7 @@ void CHud2::paint()
// //
// draw ammo counters // draw ammo counters
// //
if ( ShouldDrawHUD() ) // Wargon: Èíôîðìàöèÿ î ïàòðîíàõ ðèñóåòñÿ òîëüêî åñëè hud_draw = 1. if ( ShouldDrawHUD() ) // Wargon: Информация о патронах рисуется только если hud_draw = 1.
{ {
WEAPON *pw = gHUD.m_Ammo.m_pWeapon; // shorthand WEAPON *pw = gHUD.m_Ammo.m_pWeapon; // shorthand
if (gHUD.m_SpecTank_on) if (gHUD.m_SpecTank_on)

View File

@ -30,7 +30,7 @@ protected:
virtual void paint(); virtual void paint();
protected: protected:
// Wargon: <EFBFBD>ךמםךא ‏חא. // Wargon: Иконка юза.
CImageLabel *m_pUsageIcon; CImageLabel *m_pUsageIcon;
float m_fUsageUpdateTime; float m_fUsageUpdateTime;

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -17,8 +17,8 @@ extern engine_studio_api_t IEngineStudio;
#define WSIZE_X XRES(400); #define WSIZE_X XRES(400);
#define WSIZE_Y YRES(400); #define WSIZE_Y YRES(400);
// возвращает 1, если тэг существует, и 0 в случае конца файла // возвращает 1, если тэг существует, и 0 в случае конца файла
// ptext останавливается на открывающей скобке тэга // ptext останавливается на открывающей скобке тэга
int FindNextTag(char* &ptext) int FindNextTag(char* &ptext)
{ {
while (*ptext != '<') while (*ptext != '<')
@ -29,7 +29,7 @@ int FindNextTag(char* &ptext)
ptext++; ptext++;
} }
// теперь надо убедиться, что тэг имеет закрывающую скобку // теперь надо убедиться, что тэг имеет закрывающую скобку
char* hlp = ptext; char* hlp = ptext;
while (*hlp != '>') while (*hlp != '>')
{ {
@ -43,10 +43,10 @@ int FindNextTag(char* &ptext)
} }
// получает указатель на начало названия тэга, и доходит либо до пробела, либо // получает указатель на начало названия тэга, и доходит либо до пробела, либо
// до закрывающей скобки // до закрывающей скобки
// размер буфера - 32 символа // размер буфера - 32 символа
// возвращает 1, если у тэга есть параметры, и 0 - если нету // возвращает 1, если у тэга есть параметры, и 0 - если нету
int GetTagName(char* &ptext, char* bufTagName) int GetTagName(char* &ptext, char* bufTagName)
{ {
char* pstart = ptext; char* pstart = ptext;
@ -79,40 +79,40 @@ int GetTagName(char* &ptext, char* bufTagName)
} }
// получает указатель на место сразу за именем тэга, и возвращает его параметры в буферах // получает указатель на место сразу за именем тэга, и возвращает его параметры в буферах
// буферы должны быть размером в 32 байта // буферы должны быть размером в 32 байта
// предполагает, что конец файла наступить не должен до закрывающей скобки // предполагает, что конец файла наступить не должен до закрывающей скобки
int GetTagParameter(char* &ptext, char* bufParamName, char* bufParamValue) int GetTagParameter(char* &ptext, char* bufParamName, char* bufParamValue)
{ {
// пропускаем начальные пробелы и переносы // пропускаем начальные пробелы и переносы
while (*ptext == ' ' || *ptext == '\n') while (*ptext == ' ' || *ptext == '\n')
ptext++; ptext++;
// начинаем чтение названия параметра // начинаем чтение названия параметра
char* start = ptext; char* start = ptext;
while (*ptext != '=') while (*ptext != '=')
{ {
if (*ptext == '>') if (*ptext == '>')
{ {
ptext++; ptext++;
return 0; // тэг кончился return 0; // тэг кончился
} }
ptext++; ptext++;
} }
int paramNameLength = ptext - start; int paramNameLength = ptext - start;
if (paramNameLength > 31) paramNameLength = 31; // обрезать по буферу if (paramNameLength > 31) paramNameLength = 31; // обрезать по буферу
memcpy(bufParamName, start, paramNameLength); memcpy(bufParamName, start, paramNameLength);
bufParamName[paramNameLength] = 0; bufParamName[paramNameLength] = 0;
// теперь читаем его значение // теперь читаем его значение
ptext++; // перепрыгиваем знак равно ptext++; // перепрыгиваем знак равно
if (*ptext == '\"') if (*ptext == '\"')
{ {
// аргумент заключен в кавычки // аргумент заключен в кавычки
ptext++; ptext++;
start = ptext; start = ptext;
while (1) while (1)
@ -339,7 +339,7 @@ private:
void OrthoQuad(int x1, int y1, int x2, int y2); void OrthoQuad(int x1, int y1, int x2, int y2);
//================================== //==================================
// CMainPanel - главная панель окна. // CMainPanel - главная панель окна.
//================================== //==================================
class CMainPanel : public Panel, public CRenderable class CMainPanel : public Panel, public CRenderable
{ {
@ -473,7 +473,7 @@ private:
}; };
//================================== //==================================
// CMyButton - кнопка закрытия окна // CMyButton - кнопка закрытия окна
//================================== //==================================
class CMyButton : public Button, public CRenderable class CMyButton : public Button, public CRenderable
{ {
@ -569,7 +569,7 @@ private:
//================================== //==================================
// CMySlider - ползунок прокрутки в стиле паранойи // CMySlider - ползунок прокрутки в стиле паранойи
//================================== //==================================
class CMySlider : public Slider class CMySlider : public Slider
{ {
@ -603,7 +603,7 @@ public:
//================================== //==================================
// CMyScrollButton - кнопка прокрутки // CMyScrollButton - кнопка прокрутки
//================================== //==================================
class CMyScrollbutton : public Button class CMyScrollbutton : public Button
{ {
@ -656,7 +656,7 @@ public:
//================================== //==================================
// CMyScrollPanel - прокручиваемая панель // CMyScrollPanel - прокручиваемая панель
//================================== //==================================
class CMyScrollPanel : public ScrollPanel, public CRenderable class CMyScrollPanel : public ScrollPanel, public CRenderable
{ {
@ -1336,7 +1336,7 @@ int CParanoiaTextPanel::KeyInput(int down, int keynum, const char *pszCurrentBin
return 0; return 0;
} }
// Wargon: Консоль, функциональные клавиши и кнопки мыши пропускаются. // Wargon: Консоль, функциональные клавиши и кнопки мыши пропускаются.
case 96: case 96:
case 126: case 126:
case K_F1: case K_F1:
@ -1359,7 +1359,7 @@ int CParanoiaTextPanel::KeyInput(int down, int keynum, const char *pszCurrentBin
return 1; return 1;
} }
// Wargon: Все остальные клавиши блокируются. // Wargon: Все остальные клавиши блокируются.
return 0; return 0;
} }

View File

@ -24,7 +24,7 @@ public:
int KeyInput(int down, int keynum, const char *pszCurrentBinding); int KeyInput(int down, int keynum, const char *pszCurrentBinding);
void paint(); void paint();
void ResetBackground(); void ResetBackground();
// void StateChanged(CCheckButton2 *pButton); // будет использовано для переключения режима отрисовки мира // void StateChanged(CCheckButton2 *pButton); // будет использовано для переключения режима отрисовки мира
char m_loadedFileName[128]; char m_loadedFileName[128];
void Render( void ) void Render( void )

View File

@ -38,7 +38,7 @@ public:
m_fadein = msg->fadein; m_fadein = msg->fadein;
m_fadeout = msg->fadeout; m_fadeout = msg->fadeout;
// Wargon: Если координаты заданы неправильно, то текст просто центрируется. // Wargon: Если координаты заданы неправильно, то текст просто центрируется.
if (msg->x < 0 || msg->x > 1 || msg->y < 0 || msg->y > 1) if (msg->x < 0 || msg->x > 1 || msg->y < 0 || msg->y > 1)
{ {
// gEngfuncs.Con_Printf("Error: invalid message coordinates!\n"); // gEngfuncs.Con_Printf("Error: invalid message coordinates!\n");
@ -98,7 +98,7 @@ protected:
float m_fadeout; float m_fadeout;
}; };
// Wargon: Код скроллящегося снизу вверх текста. Использован $effect 6. // Wargon: Код скроллящегося снизу вверх текста. Использован $effect 6.
class CScrollingMessage : public ShadowTextPanel class CScrollingMessage : public ShadowTextPanel
{ {
public: public:

View File

@ -196,7 +196,7 @@ void CTips::paintBackground()
// неважно, куда-бы это засунуть.. // неважно, куда-бы это засунуть..
#include "vgui_screenmsg.h" #include "vgui_screenmsg.h"
@ -210,7 +210,7 @@ void VGuiAddScreenMessage( client_textmessage_t *msg )
gEngfuncs.Con_Printf("Screenmessage error: ViewPort is not constructed!\n"); gEngfuncs.Con_Printf("Screenmessage error: ViewPort is not constructed!\n");
} }
// Wargon: Засуну и я это сюда. ) // Wargon: Засуну и я это сюда. )
void VGuiAddScrollingMessage( client_textmessage_t *msg ) void VGuiAddScrollingMessage( client_textmessage_t *msg )
{ {
if (gViewPort && gViewPort->m_pScrollingMsg) if (gViewPort && gViewPort->m_pScrollingMsg)

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 2003, Valve LLC, All rights reserved. ========== //========= Copyright © 2003, Valve LLC, All rights reserved. ==========
// //
// Purpose: Hooks and classes for the support of humanoid NPCs with // Purpose: Hooks and classes for the support of humanoid NPCs with
// groovy facial animation capabilities, aka, "Actors" // groovy facial animation capabilities, aka, "Actors"

View File

@ -333,7 +333,7 @@ void UTIL_InitAmmoDescription( const char *filename )
LINK_ENTITY_TO_CLASS( ammo_generic, CBasePlayerAmmo ); LINK_ENTITY_TO_CLASS( ammo_generic, CBasePlayerAmmo );
// Wargon: SaveData для юзабельности патронов. // Wargon: SaveData для юзабельности патронов.
TYPEDESCRIPTION CBasePlayerAmmo::m_SaveData[] = TYPEDESCRIPTION CBasePlayerAmmo::m_SaveData[] =
{ {
DEFINE_FIELD( CBasePlayerAmmo, m_bCustomAmmo, FIELD_BOOLEAN ), DEFINE_FIELD( CBasePlayerAmmo, m_bCustomAmmo, FIELD_BOOLEAN ),
@ -412,7 +412,7 @@ void CBasePlayerAmmo :: Spawn( void )
if( !FBitSet( ObjectCaps(), FCAP_USE_ONLY ) || FBitSet( pev->spawnflags, SF_NORESPAWN )) if( !FBitSet( ObjectCaps(), FCAP_USE_ONLY ) || FBitSet( pev->spawnflags, SF_NORESPAWN ))
SetTouch( &CBasePlayerAmmo:: DefaultTouch ); SetTouch( &CBasePlayerAmmo:: DefaultTouch );
// Wargon: Патроны юзабельны. // Wargon: Патроны юзабельны.
SetUse( &CBasePlayerAmmo :: DefaultUse ); SetUse( &CBasePlayerAmmo :: DefaultUse );
m_iAmmoCaps = CBaseEntity::ObjectCaps() | FCAP_IMPULSE_USE; m_iAmmoCaps = CBaseEntity::ObjectCaps() | FCAP_IMPULSE_USE;
} }
@ -433,7 +433,7 @@ CBaseEntity *CBasePlayerAmmo :: Respawn( void )
SetBits( pev->effects, EF_NODRAW ); SetBits( pev->effects, EF_NODRAW );
SetTouch( NULL ); SetTouch( NULL );
// Wargon: Патроны неюзабельны. // Wargon: Патроны неюзабельны.
SetUse( NULL ); SetUse( NULL );
m_iAmmoCaps = CBaseEntity::ObjectCaps(); m_iAmmoCaps = CBaseEntity::ObjectCaps();
@ -459,7 +459,7 @@ void CBasePlayerAmmo :: Materialize( void )
if( !FBitSet( ObjectCaps(), FCAP_USE_ONLY )) if( !FBitSet( ObjectCaps(), FCAP_USE_ONLY ))
SetTouch( &CBasePlayerAmmo:: DefaultTouch ); SetTouch( &CBasePlayerAmmo:: DefaultTouch );
// Wargon: Патроны юзабельны. // Wargon: Патроны юзабельны.
SetUse( &CBasePlayerAmmo :: DefaultUse ); SetUse( &CBasePlayerAmmo :: DefaultUse );
m_iAmmoCaps = CBaseEntity :: ObjectCaps() | FCAP_IMPULSE_USE; m_iAmmoCaps = CBaseEntity :: ObjectCaps() | FCAP_IMPULSE_USE;
} }
@ -481,7 +481,7 @@ void CBasePlayerAmmo :: DefaultTouch( CBaseEntity *pOther )
{ {
SetTouch( NULL ); SetTouch( NULL );
// Wargon: Патроны неюзабельны. // Wargon: Патроны неюзабельны.
SetUse( NULL ); SetUse( NULL );
m_iAmmoCaps = CBaseEntity :: ObjectCaps(); m_iAmmoCaps = CBaseEntity :: ObjectCaps();
SetThink( &CBasePlayerAmmo :: SUB_Remove ); SetThink( &CBasePlayerAmmo :: SUB_Remove );
@ -493,7 +493,7 @@ void CBasePlayerAmmo :: DefaultTouch( CBaseEntity *pOther )
// evil impulse 101 hack, kill always // evil impulse 101 hack, kill always
SetTouch( NULL ); SetTouch( NULL );
// Wargon: Патроны неюзабельны. // Wargon: Патроны неюзабельны.
SetUse( NULL ); SetUse( NULL );
m_iAmmoCaps = CBaseEntity :: ObjectCaps(); m_iAmmoCaps = CBaseEntity :: ObjectCaps();

View File

@ -61,7 +61,7 @@ class CApache : public CBaseMonster
int TakeDamage( entvars_t* pevInflictor, entvars_t* pevAttacker, float flDamage, int bitsDamageType ); int TakeDamage( entvars_t* pevInflictor, entvars_t* pevAttacker, float flDamage, int bitsDamageType );
void TraceAttack( entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType); void TraceAttack( entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType);
// Wargon: Оверрайд релатионшипа вертолета. (1.1) // Wargon: Оверрайд релатионшипа вертолета. (1.1)
int IRelationship( CBaseEntity *pTarget ); int IRelationship( CBaseEntity *pTarget );
int m_iRockets; int m_iRockets;
@ -196,7 +196,7 @@ void CApache::NullThink( void )
void CApache::StartupUse( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value ) void CApache::StartupUse( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value )
{ {
// Wargon: Фикс несбиваемости вертолета. // Wargon: Фикс несбиваемости вертолета.
pev->spawnflags &= ~SF_MONSTER_INVINCIBLE; pev->spawnflags &= ~SF_MONSTER_INVINCIBLE;
SetThink(&CApache:: HuntThink ); SetThink(&CApache:: HuntThink );
@ -219,7 +219,7 @@ void CApache :: Killed( entvars_t *pevAttacker, int iGib )
pev->health = 0; pev->health = 0;
pev->takedamage = DAMAGE_NO; pev->takedamage = DAMAGE_NO;
// Wargon: Фикс несрабатывания триггера при смерти вертолета. // Wargon: Фикс несрабатывания триггера при смерти вертолета.
pev->deadflag = DEAD_DEAD; pev->deadflag = DEAD_DEAD;
FCheckAITrigger(); FCheckAITrigger();
@ -494,7 +494,7 @@ void CApache :: HuntThink( void )
m_flPrevSeen = gpGlobals->time; m_flPrevSeen = gpGlobals->time;
m_flLastSeen = gpGlobals->time; m_flLastSeen = gpGlobals->time;
// Wargon: Фикс точки прицеливания. // Wargon: Фикс точки прицеливания.
m_posTarget = m_hEnemy->Center() + Vector( -16, 16, 64 ); m_posTarget = m_hEnemy->Center() + Vector( -16, 16, 64 );
} }
else else
@ -958,7 +958,7 @@ void CApache::TraceAttack( entvars_t *pevAttacker, float flDamage, Vector vecDir
} }
} }
// Wargon: Вертолет не считает альфовцев врагами. (1.1) // Wargon: Вертолет не считает альфовцев врагами. (1.1)
int CApache::IRelationship ( CBaseEntity *pTarget ) int CApache::IRelationship ( CBaseEntity *pTarget )
{ {
if (FClassnameIs(pTarget->pev, "monster_human_alpha")) if (FClassnameIs(pTarget->pev, "monster_human_alpha"))

View File

@ -56,7 +56,7 @@ public:
void RunTask( Task_t *pTask ); void RunTask( Task_t *pTask );
void StartTask( Task_t *pTask ); void StartTask( Task_t *pTask );
// Wargon: Юзать монстра можно только если он жив. Это нужно чтобы иконка юза не показывалась на мертвых монстрах. // Wargon: Юзать монстра можно только если он жив. Это нужно чтобы иконка юза не показывалась на мертвых монстрах.
virtual int ObjectCaps( void ) { if (pev->deadflag == DEAD_NO) return CTalkMonster :: ObjectCaps() | FCAP_IMPULSE_USE | FCAP_DISTANCE_USE; else return CTalkMonster::ObjectCaps(); } virtual int ObjectCaps( void ) { if (pev->deadflag == DEAD_NO) return CTalkMonster :: ObjectCaps() | FCAP_IMPULSE_USE | FCAP_DISTANCE_USE; else return CTalkMonster::ObjectCaps(); }
int TakeDamage( entvars_t* pevInflictor, entvars_t* pevAttacker, float flDamage, int bitsDamageType); int TakeDamage( entvars_t* pevInflictor, entvars_t* pevAttacker, float flDamage, int bitsDamageType);

View File

@ -549,7 +549,7 @@ int CBaseButton::ObjectCaps( void )
return (CBaseToggle:: ObjectCaps() & ~FCAP_ACROSS_TRANSITION) | return (CBaseToggle:: ObjectCaps() & ~FCAP_ACROSS_TRANSITION) |
(pev->takedamage?0:FCAP_IMPULSE_USE) | (pev->takedamage?0:FCAP_IMPULSE_USE) |
(pev->spawnflags & SF_BUTTON_ONLYDIRECT?FCAP_ONLYDIRECT_USE:0) | (pev->spawnflags & SF_BUTTON_ONLYDIRECT?FCAP_ONLYDIRECT_USE:0) |
(m_hide_use?FCAP_HIDE_USE:0); // Wargon: Иконка юза не будет отображаться на этой энтити если m_hide_use = 1. (m_hide_use?FCAP_HIDE_USE:0); // Wargon: Иконка юза не будет отображаться на этой энтити если m_hide_use = 1.
} }
TYPEDESCRIPTION CBaseButton::m_SaveData[] = TYPEDESCRIPTION CBaseButton::m_SaveData[] =
@ -557,7 +557,7 @@ TYPEDESCRIPTION CBaseButton::m_SaveData[] =
DEFINE_FIELD( CBaseButton, m_fStayPushed, FIELD_BOOLEAN ), DEFINE_FIELD( CBaseButton, m_fStayPushed, FIELD_BOOLEAN ),
DEFINE_FIELD( CBaseButton, m_fRotating, FIELD_BOOLEAN ), DEFINE_FIELD( CBaseButton, m_fRotating, FIELD_BOOLEAN ),
// Wargon: Сохранение m_hide_use. // Wargon: Сохранение m_hide_use.
DEFINE_FIELD( CBaseButton, m_hide_use, FIELD_INTEGER ), DEFINE_FIELD( CBaseButton, m_hide_use, FIELD_INTEGER ),
DEFINE_FIELD( CBaseButton, m_sounds, FIELD_INTEGER ), DEFINE_FIELD( CBaseButton, m_sounds, FIELD_INTEGER ),
@ -670,7 +670,7 @@ void CBaseButton::KeyValue( KeyValueData *pkvd )
m_sounds = atoi(pkvd->szValue); m_sounds = atoi(pkvd->szValue);
pkvd->fHandled = TRUE; pkvd->fHandled = TRUE;
} }
// Wargon: hide_use используется для скрытия иконки юза. // Wargon: hide_use используется для скрытия иконки юза.
else if (FStrEq(pkvd->szKeyName, "hide_use")) else if (FStrEq(pkvd->szKeyName, "hide_use"))
{ {
m_hide_use = atoi(pkvd->szValue); m_hide_use = atoi(pkvd->szValue);

View File

@ -53,7 +53,7 @@ CBaseEntity
// UNDONE: This will ignore transition volumes (trigger_transition), but not the PVS!!! // UNDONE: This will ignore transition volumes (trigger_transition), but not the PVS!!!
#define FCAP_FORCE_TRANSITION 0x00000080 // ALWAYS goes across transitions #define FCAP_FORCE_TRANSITION 0x00000080 // ALWAYS goes across transitions
// Wargon: Ýíòèòÿ íå áóäåò ïîêàçûâàòü èêîíêó þçà, äàæå åñëè îíà þçàáåëüíà. // Wargon: Энтитя не будет показывать иконку юза, даже если она юзабельна.
#define FCAP_HIDE_USE 0x00000400 #define FCAP_HIDE_USE 0x00000400
#include "saverestore.h" #include "saverestore.h"
@ -191,7 +191,7 @@ public:
Vector m_vecPostAssistVel; // LRC Vector m_vecPostAssistVel; // LRC
Vector m_vecPostAssistAVel; // LRC Vector m_vecPostAssistAVel; // LRC
float m_fNextThink; // LRC - for SetNextThink and SetPhysThink. Marks the time when a think will be performed - not necessarily the same as pev->nextthink! float m_fNextThink; // LRC - for SetNextThink and SetPhysThink. Marks the time when a think will be performed - not necessarily the same as pev->nextthink!
float m_fPevNextThink; // LRC - always set equal to pev->nextthink, so that we can tell when the latter gets changed by the @#$^¬! engine. float m_fPevNextThink; // LRC - always set equal to pev->nextthink, so that we can tell when the latter gets changed by the @#$^В¬! engine.
int m_iLFlags; // LRC- a new set of flags. (pev->spawnflags and pev->flags are full...) int m_iLFlags; // LRC- a new set of flags. (pev->spawnflags and pev->flags are full...)
virtual void DesiredAction( void ) {}; // LRC - for postponing stuff until PostThink time, not as a think. virtual void DesiredAction( void ) {}; // LRC - for postponing stuff until PostThink time, not as a think.
int m_iStyle; // LRC - almost anything can have a lightstyle these days... int m_iStyle; // LRC - almost anything can have a lightstyle these days...
@ -788,7 +788,7 @@ public:
#define DMG_MORTAR (1 << 23) // Hit by air raid (done to distinguish grenade from mortar) #define DMG_MORTAR (1 << 23) // Hit by air raid (done to distinguish grenade from mortar)
// these are the damage types that are allowed to gib corpses // these are the damage types that are allowed to gib corpses
#define DMG_GIB_CORPSE ( DMG_CRUSH | DMG_FALL | DMG_BLAST | DMG_SONIC /* | DMG_CLUB */ ) // Wargon: DMG_CLUB íå ìîæåò ãèáàòü òðóïû. #define DMG_GIB_CORPSE ( DMG_CRUSH | DMG_FALL | DMG_BLAST | DMG_SONIC /* | DMG_CLUB */ ) // Wargon: DMG_CLUB не может гибать трупы.
// these are the damage types that have client hud art // these are the damage types that have client hud art
#define DMG_SHOWNHUD (DMG_POISON | DMG_ACID | DMG_FREEZE | DMG_SLOWFREEZE | DMG_DROWN | DMG_BURN | DMG_SLOWBURN | DMG_NERVEGAS | DMG_RADIATION | DMG_SHOCK) #define DMG_SHOWNHUD (DMG_POISON | DMG_ACID | DMG_FREEZE | DMG_SLOWFREEZE | DMG_DROWN | DMG_BURN | DMG_SLOWBURN | DMG_NERVEGAS | DMG_RADIATION | DMG_SHOCK)
@ -891,7 +891,7 @@ public:
BYTE m_bUnlockedSentence; BYTE m_bUnlockedSentence;
int m_sounds; int m_sounds;
// Wargon: Ïåðåìåííàÿ äëÿ ñêðûòèÿ èêîíêè þçà. // Wargon: Переменная для скрытия иконки юза.
int m_hide_use; int m_hide_use;
}; };

View File

@ -1136,7 +1136,7 @@ int CBaseMonster :: TakeDamage( entvars_t *pevInflictor, entvars_t *pevAttacker,
{ {
Killed( pevAttacker, GIB_ALWAYS ); Killed( pevAttacker, GIB_ALWAYS );
} }
// Wargon: Никогда не гибать если тип дамаги - DMG_SLASH. (1.1) // Wargon: Никогда не гибать если тип дамаги - DMG_SLASH. (1.1)
else if ((bitsDamageType & DMG_NEVERGIB) || (bitsDamageType & DMG_SLASH)) else if ((bitsDamageType & DMG_NEVERGIB) || (bitsDamageType & DMG_SLASH))
{ {
Killed( pevAttacker, GIB_NEVER ); Killed( pevAttacker, GIB_NEVER );
@ -1636,14 +1636,14 @@ void CBaseMonster :: TraceAttack( entvars_t *pevAttacker, float flDamage, Vector
m_LastHitGroup = ptr->iHitgroup; m_LastHitGroup = ptr->iHitgroup;
TraceBleed( flDamage, vecDir, ptr, bitsDamageType ); TraceBleed( flDamage, vecDir, ptr, bitsDamageType );
TraceResult btr; // Wargon: Переменная для трейса декали мозгов от хедшотов. TraceResult btr; // Wargon: Переменная для трейса декали мозгов от хедшотов.
switch ( ptr->iHitgroup ) switch ( ptr->iHitgroup )
{ {
case HITGROUP_GENERIC: case HITGROUP_GENERIC:
break; break;
case HITGROUP_HEAD: case HITGROUP_HEAD:
// Wargon: Декаль мозгов от хедшотов. // Wargon: Декаль мозгов от хедшотов.
UTIL_TraceLine( ptr->vecEndPos, ptr->vecEndPos + vecDir * 172, ignore_monsters, ENT(pev), &btr ); UTIL_TraceLine( ptr->vecEndPos, ptr->vecEndPos + vecDir * 172, ignore_monsters, ENT(pev), &btr );
UTIL_TraceCustomDecal( &btr, "brains", RANDOM_FLOAT( 0.0f, 360.0f )); UTIL_TraceCustomDecal( &btr, "brains", RANDOM_FLOAT( 0.0f, 360.0f ));
@ -1669,7 +1669,7 @@ void CBaseMonster :: TraceAttack( entvars_t *pevAttacker, float flDamage, Vector
break; break;
} }
SpawnBlood(ptr->vecEndPos, BloodColor(), flDamage * 2); // Wargon: Побольше крови. SpawnBlood(ptr->vecEndPos, BloodColor(), flDamage * 2); // Wargon: Побольше крови.
AddMultiDamage( pevAttacker, this, flDamage, bitsDamageType ); AddMultiDamage( pevAttacker, this, flDamage, bitsDamageType );
} }
} }

View File

@ -39,7 +39,7 @@ public:
inline float MaxSpeed( void ) { return m_maxSpeed; } inline float MaxSpeed( void ) { return m_maxSpeed; }
// NCL: Ĺńëč ńňîčň ôëŕă Breakable // NCL: Если стоит флаг Breakable
virtual int TakeDamage( entvars_t* pevInflictor, entvars_t* pevAttacker, float flDamage, int bitsDamageType ); virtual int TakeDamage( entvars_t* pevInflictor, entvars_t* pevAttacker, float flDamage, int bitsDamageType );
static TYPEDESCRIPTION m_SaveData[]; static TYPEDESCRIPTION m_SaveData[];
@ -561,7 +561,7 @@ If the material is "plaster" let's do more movement.
// pev->avelocity.z = cos( AngleBetweenVectors( vecDir, rup ) ) * force * 2;//fooz // pev->avelocity.z = cos( AngleBetweenVectors( vecDir, rup ) ) * force * 2;//fooz
// pev->avelocity.z = sin( AngleBetweenVectors( vecDir, rup ) ) * force * 2;//fooz // pev->avelocity.z = sin( AngleBetweenVectors( vecDir, rup ) ) * force * 2;//fooz
ALERT( at_console, "X : %3.1f %3.1f° Y: %3.1f %3.1f°\n", pev->avelocity.x, AngleBetweenVectors( vecDir, rup ), pev->avelocity.y, AngleBetweenVectors( vecDir, -rright ) ); ALERT( at_console, "X : %3.1f %3.1f° Y: %3.1f %3.1f°\n", pev->avelocity.x, AngleBetweenVectors( vecDir, rup ), pev->avelocity.y, AngleBetweenVectors( vecDir, -rright ) );
pev->velocity = pev->velocity /*+ gpGlobals->v_up * force * RANDOM_FLOAT( 0, 0.5 )*/ + vecDir * force * RANDOM_FLOAT( 0.5, 1.0 ); pev->velocity = pev->velocity /*+ gpGlobals->v_up * force * RANDOM_FLOAT( 0, 0.5 )*/ + vecDir * force * RANDOM_FLOAT( 0.5, 1.0 );

View File

@ -419,7 +419,7 @@ cvar_t sk_player_leg1 = { "sk_player_leg1","1" };
cvar_t sk_player_leg2 = { "sk_player_leg2","1" }; cvar_t sk_player_leg2 = { "sk_player_leg2","1" };
cvar_t sk_player_leg3 = { "sk_player_leg3","1" }; cvar_t sk_player_leg3 = { "sk_player_leg3","1" };
// Wargon: Ìíîæèòåëè äàìàãè äëÿ monster_zombie. (1.1) // Wargon: Множители дамаги для monster_zombie. (1.1)
cvar_t sk_zombie_head1 = { "sk_zombie_head1","2" }; cvar_t sk_zombie_head1 = { "sk_zombie_head1","2" };
cvar_t sk_zombie_head2 = { "sk_zombie_head2","2" }; cvar_t sk_zombie_head2 = { "sk_zombie_head2","2" };
cvar_t sk_zombie_head3 = { "sk_zombie_head3","2" }; cvar_t sk_zombie_head3 = { "sk_zombie_head3","2" };
@ -540,7 +540,7 @@ cvar_t bullet_punch_divide = {"bullet_punch_divide","8"};
cvar_t blast_punch_max = {"blast_punch_max","100"}; cvar_t blast_punch_max = {"blast_punch_max","100"};
cvar_t blast_punch_divide = {"blast_punch_divide","5"}; cvar_t blast_punch_divide = {"blast_punch_divide","5"};
// Wargon: Ïàòðîíû èç ìåðòâûõ âðàæèí. (1.1) // Wargon: Патроны из мертвых вражин. (1.1)
cvar_t sk_dead_enemy_ammo1 = {"sk_dead_enemy_ammo1","0"}; cvar_t sk_dead_enemy_ammo1 = {"sk_dead_enemy_ammo1","0"};
cvar_t sk_dead_enemy_ammo2 = {"sk_dead_enemy_ammo2","0"}; cvar_t sk_dead_enemy_ammo2 = {"sk_dead_enemy_ammo2","0"};
cvar_t sk_dead_enemy_ammo3 = {"sk_dead_enemy_ammo3","0"}; cvar_t sk_dead_enemy_ammo3 = {"sk_dead_enemy_ammo3","0"};
@ -952,7 +952,7 @@ void GameDLLInit( void )
CVAR_REGISTER ( &sk_player_leg2 ); CVAR_REGISTER ( &sk_player_leg2 );
CVAR_REGISTER ( &sk_player_leg3 ); CVAR_REGISTER ( &sk_player_leg3 );
// Wargon: Ìíîæèòåëè äàìàãè äëÿ monster_zombie. (1.1) // Wargon: Множители дамаги для monster_zombie. (1.1)
CVAR_REGISTER ( &sk_zombie_head1 ); CVAR_REGISTER ( &sk_zombie_head1 );
CVAR_REGISTER ( &sk_zombie_head2 ); CVAR_REGISTER ( &sk_zombie_head2 );
CVAR_REGISTER ( &sk_zombie_head3 ); CVAR_REGISTER ( &sk_zombie_head3 );
@ -1063,7 +1063,7 @@ void GameDLLInit( void )
CVAR_REGISTER ( &blast_punch_max ); CVAR_REGISTER ( &blast_punch_max );
CVAR_REGISTER ( &blast_punch_divide ); CVAR_REGISTER ( &blast_punch_divide );
// Wargon: Ïàòðîíû èç ìåðòâûõ âðàæèí. (1.1) // Wargon: Патроны из мертвых вражин. (1.1)
CVAR_REGISTER ( &sk_dead_enemy_ammo1 ); CVAR_REGISTER ( &sk_dead_enemy_ammo1 );
CVAR_REGISTER ( &sk_dead_enemy_ammo2 ); CVAR_REGISTER ( &sk_dead_enemy_ammo2 );
CVAR_REGISTER ( &sk_dead_enemy_ammo3 ); CVAR_REGISTER ( &sk_dead_enemy_ammo3 );

View File

@ -301,7 +301,7 @@ void CGameRules::RefreshSkillData ( void )
gSkillData.plrLeg = GetSkillCvar( "sk_player_leg" ); gSkillData.plrLeg = GetSkillCvar( "sk_player_leg" );
gSkillData.plrArm = GetSkillCvar( "sk_player_arm" ); gSkillData.plrArm = GetSkillCvar( "sk_player_arm" );
// Wargon: Ìíîæèòåëè äàìàãè äëÿ monster_zombie. (1.1) // Wargon: Множители дамаги для monster_zombie. (1.1)
gSkillData.zomHead = GetSkillCvar( "sk_zombie_head" ); gSkillData.zomHead = GetSkillCvar( "sk_zombie_head" );
gSkillData.zomChest = GetSkillCvar( "sk_zombie_chest" ); gSkillData.zomChest = GetSkillCvar( "sk_zombie_chest" );
gSkillData.zomStomach = GetSkillCvar( "sk_zombie_stomach" ); gSkillData.zomStomach = GetSkillCvar( "sk_zombie_stomach" );
@ -317,7 +317,7 @@ void CGameRules::RefreshSkillData ( void )
gSkillData.plrPrimaryMaxSpeed = GetSkillCvar( "sk_primary_speed" ); gSkillData.plrPrimaryMaxSpeed = GetSkillCvar( "sk_primary_speed" );
gSkillData.plrSecondaryMaxSpeed = GetSkillCvar( "sk_secondary_speed" ); gSkillData.plrSecondaryMaxSpeed = GetSkillCvar( "sk_secondary_speed" );
// Wargon: Ïàòðîíû èç ìåðòâûõ âðàæèí. (1.1) // Wargon: Патроны из мертвых вражин. (1.1)
gSkillData.maxDeadEnemyAmmo = GetSkillCvar( "sk_dead_enemy_ammo" ); gSkillData.maxDeadEnemyAmmo = GetSkillCvar( "sk_dead_enemy_ammo" );
} }

View File

@ -74,7 +74,7 @@ void CGrenade::Explode( TraceResult *pTrace, int bitsDamageType )
WRITE_COORD( pev->origin.z -= 18 ); WRITE_COORD( pev->origin.z -= 18 );
if (iContents != CONTENTS_WATER) if (iContents != CONTENTS_WATER)
{ {
WRITE_SHORT( g_sModelIndexNull ); // çàãëóøêà... WRITE_SHORT( g_sModelIndexNull ); // заглушка...
} }
else else
{ {

View File

@ -74,7 +74,7 @@ void CHandGrenade :: WeaponIdle( void )
{ {
if ( m_flReleaseThrow > 0.0f ) if ( m_flReleaseThrow > 0.0f )
{ {
// buz: уже кинули, теперь надо достать новую или переключить оружие // buz: уже кинули, теперь надо достать новую или переключить оружие
m_flStartThrow = 0.0f; m_flStartThrow = 0.0f;
m_flReleaseThrow = -1.0f; m_flReleaseThrow = -1.0f;

View File

@ -201,7 +201,7 @@ public:
virtual void SpeakSentence( void ); virtual void SpeakSentence( void );
virtual void SetEyePosition ( void ); // buz virtual void SetEyePosition ( void ); // buz
// Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1) // Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1)
virtual int ObjectCaps( void ) { return CSquadMonster::ObjectCaps() | (m_iDeadAmmo?FCAP_IMPULSE_USE:0); } virtual int ObjectCaps( void ) { return CSquadMonster::ObjectCaps() | (m_iDeadAmmo?FCAP_IMPULSE_USE:0); }
int m_iDeadAmmo; int m_iDeadAmmo;
void EXPORT DeadUse( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value ); void EXPORT DeadUse( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value );
@ -277,7 +277,7 @@ TYPEDESCRIPTION CHGrunt::m_SaveData[] =
// DEFINE_FIELD( CShotgun, m_iBrassShell, FIELD_INTEGER ), // DEFINE_FIELD( CShotgun, m_iBrassShell, FIELD_INTEGER ),
// DEFINE_FIELD( CShotgun, m_iShotgunShell, FIELD_INTEGER ), // DEFINE_FIELD( CShotgun, m_iShotgunShell, FIELD_INTEGER ),
DEFINE_FIELD( CHGrunt, m_iSentence, FIELD_INTEGER ), DEFINE_FIELD( CHGrunt, m_iSentence, FIELD_INTEGER ),
// Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1) // Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1)
DEFINE_FIELD( CHGrunt, m_iDeadAmmo, FIELD_INTEGER ), DEFINE_FIELD( CHGrunt, m_iDeadAmmo, FIELD_INTEGER ),
}; };
@ -1211,7 +1211,7 @@ void CHGrunt :: Spawn()
CTalkMonster::g_talkWaitTime = 0; CTalkMonster::g_talkWaitTime = 0;
// Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1) // Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1)
m_iDeadAmmo = 0; m_iDeadAmmo = 0;
MonsterInit(); MonsterInit();
@ -1252,7 +1252,7 @@ void CHGrunt :: Precache()
PRECACHE_SOUND("zombie/claw_miss2.wav");// because we use the basemonster SWIPE animation event PRECACHE_SOUND("zombie/claw_miss2.wav");// because we use the basemonster SWIPE animation event
// Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1) // Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1)
PRECACHE_SOUND("items/9mmclip1.wav"); PRECACHE_SOUND("items/9mmclip1.wav");
// get voice pitch // get voice pitch
@ -2338,7 +2338,7 @@ Schedule_t *CHGrunt :: GetSchedule( void )
} }
switch ( m_MonsterState ) switch ( m_MonsterState )
{ {
case MONSTERSTATE_IDLE: // buz: перезарядиться, если врага нет и магазин полупуст case MONSTERSTATE_IDLE: // buz: перезарядиться, если врага нет и магазин полупуст
case MONSTERSTATE_ALERT: case MONSTERSTATE_ALERT:
if (m_cAmmoLoaded < m_cClipSize / 2) if (m_cAmmoLoaded < m_cClipSize / 2)
@ -2893,7 +2893,7 @@ void CHGrunt :: SetEyePosition ( void )
} }
} }
// Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1) // Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1)
void CHGrunt :: DeadUse ( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value ) void CHGrunt :: DeadUse ( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value )
{ {
if (!pActivator->IsPlayer()) if (!pActivator->IsPlayer())
@ -2912,7 +2912,7 @@ void CHGrunt :: DeadUse ( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYP
} }
} }
// Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1) // Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1)
void CHGrunt :: Killed( entvars_t *pevAttacker, int iGib ) void CHGrunt :: Killed( entvars_t *pevAttacker, int iGib )
{ {
if (gSkillData.maxDeadEnemyAmmo >= 1 && !ShouldGibMonster(iGib)) if (gSkillData.maxDeadEnemyAmmo >= 1 && !ShouldGibMonster(iGib))
@ -2938,7 +2938,7 @@ public:
void HandleAnimEvent( MonsterEvent_t *pEvent ); void HandleAnimEvent( MonsterEvent_t *pEvent );
void Shoot ( void ); void Shoot ( void );
void SetActivity ( Activity NewActivity ); void SetActivity ( Activity NewActivity );
// Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1) // Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1)
void EXPORT DeadUse( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value ); void EXPORT DeadUse( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value );
void Killed( entvars_t *pevAttacker, int iGib ); void Killed( entvars_t *pevAttacker, int iGib );
}; };
@ -2993,7 +2993,7 @@ void CHGruntGlock :: Spawn()
CTalkMonster::g_talkWaitTime = 0; CTalkMonster::g_talkWaitTime = 0;
// Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1) // Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1)
m_iDeadAmmo = 0; m_iDeadAmmo = 0;
MonsterInit(); MonsterInit();
@ -3232,7 +3232,7 @@ void CHGruntGlock :: SetActivity ( Activity NewActivity )
} }
} }
// Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1) // Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1)
void CHGruntGlock :: DeadUse ( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value ) void CHGruntGlock :: DeadUse ( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value )
{ {
if (!pActivator->IsPlayer()) if (!pActivator->IsPlayer())
@ -3245,7 +3245,7 @@ void CHGruntGlock :: DeadUse ( CBaseEntity *pActivator, CBaseEntity *pCaller, US
} }
} }
// Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1) // Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1)
void CHGruntGlock :: Killed( entvars_t *pevAttacker, int iGib ) void CHGruntGlock :: Killed( entvars_t *pevAttacker, int iGib )
{ {
if (gSkillData.maxDeadEnemyAmmo >= 1 && !ShouldGibMonster(iGib)) if (gSkillData.maxDeadEnemyAmmo >= 1 && !ShouldGibMonster(iGib))
@ -3316,7 +3316,7 @@ public:
int m_iNoGasDamage; int m_iNoGasDamage;
// Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1) // Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1)
void EXPORT DeadUse( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value ); void EXPORT DeadUse( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value );
void Killed( entvars_t *pevAttacker, int iGib ); void Killed( entvars_t *pevAttacker, int iGib );
}; };
@ -3398,7 +3398,7 @@ void CTerror :: Spawn()
CTalkMonster::g_talkWaitTime = 0; CTalkMonster::g_talkWaitTime = 0;
// Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1) // Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1)
m_iDeadAmmo = 0; m_iDeadAmmo = 0;
MonsterInit(); MonsterInit();
@ -3870,7 +3870,7 @@ Schedule_t *CTerror :: GetSchedule( void )
} }
switch ( m_MonsterState ) switch ( m_MonsterState )
{ {
case MONSTERSTATE_IDLE: // buz: перезарядиться, если врага нет и магазин полупуст case MONSTERSTATE_IDLE: // buz: перезарядиться, если врага нет и магазин полупуст
case MONSTERSTATE_ALERT: case MONSTERSTATE_ALERT:
if (m_cAmmoLoaded < m_cClipSize / 2) if (m_cAmmoLoaded < m_cClipSize / 2)
@ -4204,7 +4204,7 @@ void CTerror :: IdleSound( void )
} }
} }
// Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1) // Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1)
void CTerror :: DeadUse ( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value ) void CTerror :: DeadUse ( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value )
{ {
if (!pActivator->IsPlayer()) if (!pActivator->IsPlayer())
@ -4223,7 +4223,7 @@ void CTerror :: DeadUse ( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYP
} }
} }
// Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1) // Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1)
void CTerror :: Killed( entvars_t *pevAttacker, int iGib ) void CTerror :: Killed( entvars_t *pevAttacker, int iGib )
{ {
if (gSkillData.maxDeadEnemyAmmo >= 1 && !ShouldGibMonster(iGib)) if (gSkillData.maxDeadEnemyAmmo >= 1 && !ShouldGibMonster(iGib))
@ -4339,7 +4339,7 @@ void CClone :: Spawn()
CTalkMonster::g_talkWaitTime = 0; CTalkMonster::g_talkWaitTime = 0;
m_iNoGasDamage = 0; m_iNoGasDamage = 0;
// Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1) // Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1)
m_iDeadAmmo = 0; m_iDeadAmmo = 0;
MonsterInit(); MonsterInit();
@ -4613,7 +4613,7 @@ Schedule_t *CClone :: GetSchedule( void )
} }
switch ( m_MonsterState ) switch ( m_MonsterState )
{ {
case MONSTERSTATE_IDLE: // buz: перезарядиться, если врага нет и магазин полупуст case MONSTERSTATE_IDLE: // buz: перезарядиться, если врага нет и магазин полупуст
case MONSTERSTATE_ALERT: case MONSTERSTATE_ALERT:
if (m_cAmmoLoaded < m_cClipSize / 2) if (m_cAmmoLoaded < m_cClipSize / 2)
@ -4913,7 +4913,7 @@ void CCloneHeavy :: Spawn()
CTalkMonster::g_talkWaitTime = 0; CTalkMonster::g_talkWaitTime = 0;
m_iNoGasDamage = 0; m_iNoGasDamage = 0;
// Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1) // Wargon: Возможность подбирать патроны юзом из мертвых вражин. (1.1)
m_iDeadAmmo = 0; m_iDeadAmmo = 0;
MonsterInit(); MonsterInit();

View File

@ -86,7 +86,7 @@ void CWorldItem::Spawn( void )
REMOVE_ENTITY(edict()); REMOVE_ENTITY(edict());
} }
// Wargon: SaveData для юзабельных итемов. // Wargon: SaveData для юзабельных итемов.
TYPEDESCRIPTION CItem::m_SaveData[] = TYPEDESCRIPTION CItem::m_SaveData[] =
{ {
DEFINE_FIELD( CItem, m_iCurrCaps, FIELD_INTEGER ), DEFINE_FIELD( CItem, m_iCurrCaps, FIELD_INTEGER ),
@ -103,7 +103,7 @@ void CItem::Spawn( void )
if( !FBitSet( ObjectCaps(), FCAP_USE_ONLY ) || FBitSet( pev->spawnflags, SF_NORESPAWN )) if( !FBitSet( ObjectCaps(), FCAP_USE_ONLY ) || FBitSet( pev->spawnflags, SF_NORESPAWN ))
SetTouch(&CItem::ItemTouch); SetTouch(&CItem::ItemTouch);
// Wargon: Итем юзабельный. // Wargon: Итем юзабельный.
SetUse( &CItem::ItemUse ); SetUse( &CItem::ItemUse );
m_iCurrCaps = CBaseEntity::ObjectCaps() | FCAP_IMPULSE_USE; m_iCurrCaps = CBaseEntity::ObjectCaps() | FCAP_IMPULSE_USE;
@ -134,7 +134,7 @@ void CItem::ItemTouch( CBaseEntity *pOther )
SUB_UseTargets( pOther, USE_TOGGLE, 0 ); SUB_UseTargets( pOther, USE_TOGGLE, 0 );
SetTouch( NULL ); SetTouch( NULL );
// Wargon: Итем неюзабельный. // Wargon: Итем неюзабельный.
SetUse( NULL ); SetUse( NULL );
m_iCurrCaps = CBaseEntity::ObjectCaps(); m_iCurrCaps = CBaseEntity::ObjectCaps();
@ -157,7 +157,7 @@ void CItem::ItemTouch( CBaseEntity *pOther )
CBaseEntity* CItem::Respawn( void ) CBaseEntity* CItem::Respawn( void )
{ {
// Wargon: Итем юзабельный. // Wargon: Итем юзабельный.
SetUse( NULL ); SetUse( NULL );
m_iCurrCaps = CBaseEntity::ObjectCaps(); m_iCurrCaps = CBaseEntity::ObjectCaps();
@ -184,7 +184,7 @@ void CItem::Materialize( void )
if( !FBitSet( ObjectCaps(), FCAP_USE_ONLY )) if( !FBitSet( ObjectCaps(), FCAP_USE_ONLY ))
SetTouch(&CItem:: ItemTouch ); SetTouch(&CItem:: ItemTouch );
// Wargon: Итем юзабельный. // Wargon: Итем юзабельный.
SetUse( &CItem::ItemUse ); SetUse( &CItem::ItemUse );
m_iCurrCaps = CBaseEntity::ObjectCaps() | FCAP_IMPULSE_USE; m_iCurrCaps = CBaseEntity::ObjectCaps() | FCAP_IMPULSE_USE;
} }

View File

@ -22,7 +22,7 @@ public:
void Spawn( void ); void Spawn( void );
CBaseEntity* Respawn( void ); CBaseEntity* Respawn( void );
// Wargon: Переменные для юзабельных итемов. // Wargon: Переменные для юзабельных итемов.
virtual int Save( CSave &save ); virtual int Save( CSave &save );
virtual int Restore( CRestore &restore ); virtual int Restore( CRestore &restore );
static TYPEDESCRIPTION m_SaveData[]; static TYPEDESCRIPTION m_SaveData[];

View File

@ -186,7 +186,7 @@ public:
return pev->origin + pev->view_ofs; return pev->origin + pev->view_ofs;
} }
// Wargon: Юзать монстра можно только если он жив. Это нужно чтобы иконка юза не показывалась на мертвых монстрах. // Wargon: Юзать монстра можно только если он жив. Это нужно чтобы иконка юза не показывалась на мертвых монстрах.
virtual int ObjectCaps( void ) { if (pev->deadflag == DEAD_NO) return CTalkMonster :: ObjectCaps() | FCAP_IMPULSE_USE | FCAP_DISTANCE_USE; else return CTalkMonster::ObjectCaps(); } virtual int ObjectCaps( void ) { if (pev->deadflag == DEAD_NO) return CTalkMonster :: ObjectCaps() | FCAP_IMPULSE_USE | FCAP_DISTANCE_USE; else return CTalkMonster::ObjectCaps(); }
int Save( CSave &save ); int Save( CSave &save );
@ -218,7 +218,7 @@ public:
Vector m_vecTossVelocity; Vector m_vecTossVelocity;
// Wargon: Если враг взят из данных игрока, то TRUE. Иначе FALSE. (1.1) // Wargon: Если враг взят из данных игрока, то TRUE. Иначе FALSE. (1.1)
BOOL m_fEnemyFromPlayer; BOOL m_fEnemyFromPlayer;
BOOL m_fThrowGrenade; BOOL m_fThrowGrenade;
@ -320,7 +320,7 @@ void CMilitary :: TalkAboutDeadFriend( CTalkMonster *pfriend )
//========================================================= //=========================================================
BOOL CMilitary :: GetEnemy ( void ) BOOL CMilitary :: GetEnemy ( void )
{ {
// Wargon: Если врага нет, то переменная сбрасывается. (1.1) // Wargon: Если врага нет, то переменная сбрасывается. (1.1)
if (m_hEnemy == NULL) if (m_hEnemy == NULL)
{ {
m_fEnemyFromPlayer = FALSE; m_fEnemyFromPlayer = FALSE;
@ -345,7 +345,7 @@ BOOL CMilitary :: GetEnemy ( void )
m_hEnemy = pMyMaster->m_hLastEnemy; m_hEnemy = pMyMaster->m_hLastEnemy;
m_vecEnemyLKP = m_hEnemy->pev->origin; m_vecEnemyLKP = m_hEnemy->pev->origin;
// Wargon: Враг взят из данных игрока. (1.1) // Wargon: Враг взят из данных игрока. (1.1)
m_fEnemyFromPlayer = TRUE; m_fEnemyFromPlayer = TRUE;
if ( m_pSchedule ) if ( m_pSchedule )
@ -396,7 +396,7 @@ void CMilitary :: SpeakSentence( void )
} }
//========================================================= //=========================================================
//MaSTeR: Инициализация фонаря (создание энтити и проверка спаунфлагов) //MaSTeR: Инициализация фонаря (создание энтити и проверка спаунфлагов)
//========================================================= //=========================================================
void CMilitary :: InitHeadController( void ) void CMilitary :: InitHeadController( void )
{ {
@ -423,7 +423,7 @@ void CMilitary :: InitFlashlight( void )
} }
//========================================================= //=========================================================
//MaSTeR: Переключение фонарика (вкл\выкл) //MaSTeR: Переключение фонарика (вкл\выкл)
//========================================================= //=========================================================
void CMilitary :: ToggleFlashlight( void ) void CMilitary :: ToggleFlashlight( void )
{ {
@ -484,9 +484,9 @@ int CMilitary :: ISoundMask ( void )
} }
//========================================================= //=========================================================
// buz: у грунтов FOkToSpeak очень простой - всего-лишь проверка на Gag. // buz: у грунтов FOkToSpeak очень простой - всего-лишь проверка на Gag.
// но у дружественных игроку монстров эта функция означает возможность // но у дружественных игроку монстров эта функция означает возможность
// базарить о всякой фигне - задавать друг другу вопросы, разговаривать о том о сем.. // базарить о всякой фигне - задавать друг другу вопросы, разговаривать о том о сем..
//========================================================= //=========================================================
BOOL CMilitary :: FOkToSpeak( void ) BOOL CMilitary :: FOkToSpeak( void )
{ {
@ -562,7 +562,7 @@ BOOL CMilitary :: CheckMeleeAttack1 ( float flDot, float flDist )
} }
} }
// Wargon: Расстояние flDist уменьшено с 64 до 48. (1.1) // Wargon: Расстояние flDist уменьшено с 64 до 48. (1.1)
if ( flDist <= 48 && flDot >= 0.7 && if ( flDist <= 48 && flDot >= 0.7 &&
pEnemy->Classify() != CLASS_ALIEN_BIOWEAPON && pEnemy->Classify() != CLASS_ALIEN_BIOWEAPON &&
pEnemy->Classify() != CLASS_PLAYER_BIOWEAPON ) pEnemy->Classify() != CLASS_PLAYER_BIOWEAPON )
@ -691,7 +691,7 @@ BOOL CMilitary :: CheckRangeAttack1 ( float flDot, float flDist )
{ {
TraceResult tr; TraceResult tr;
if ( !m_hEnemy->IsPlayer() && flDist <= 48 ) // Wargon: Расстояние flDist уменьшено с 64 до 48. (1.1) if ( !m_hEnemy->IsPlayer() && flDist <= 48 ) // Wargon: Расстояние flDist уменьшено с 64 до 48. (1.1)
{ {
// kick nonclients who are close enough, but don't shoot at them. // kick nonclients who are close enough, but don't shoot at them.
return FALSE; return FALSE;
@ -922,7 +922,7 @@ int CMilitary :: TakeDamage( entvars_t *pevInflictor, entvars_t *pevAttacker, fl
Forget( bits_MEMORY_INCOVER ); Forget( bits_MEMORY_INCOVER );
// Wargon: Союзники не должны восставать против игрока. // Wargon: Союзники не должны восставать против игрока.
return CBaseMonster::TakeDamage(pevInflictor, pevAttacker, flDamage, bitsDamageType); return CBaseMonster::TakeDamage(pevInflictor, pevAttacker, flDamage, bitsDamageType);
/* // make sure friends talk about it if player hurts talkmonsters... /* // make sure friends talk about it if player hurts talkmonsters...
@ -1072,7 +1072,7 @@ CBaseEntity *CMilitary :: Kick( void )
UTIL_MakeVectors( pev->angles ); UTIL_MakeVectors( pev->angles );
Vector vecStart = pev->origin; Vector vecStart = pev->origin;
vecStart.z += pev->size.z * 0.5; vecStart.z += pev->size.z * 0.5;
Vector vecEnd = vecStart + (gpGlobals->v_forward * 48); // Wargon: Расстояние уменьшено с 70 до 48. (1.1) Vector vecEnd = vecStart + (gpGlobals->v_forward * 48); // Wargon: Расстояние уменьшено с 70 до 48. (1.1)
UTIL_TraceHull( vecStart, vecEnd, dont_ignore_monsters, head_hull, ENT(pev), &tr ); UTIL_TraceHull( vecStart, vecEnd, dont_ignore_monsters, head_hull, ENT(pev), &tr );
@ -2023,14 +2023,14 @@ Schedule_t slMilTossGrenadeCover[] =
//========================================================= //=========================================================
Task_t tlMilTakeCoverFromBestSound[] = Task_t tlMilTakeCoverFromBestSound[] =
{ {
// Wargon: Теперь союзники не ищут укрытия от врагов. (1.1) // Wargon: Теперь союзники не ищут укрытия от врагов. (1.1)
// { TASK_SET_FAIL_SCHEDULE, (float)SCHED_COWER },// duck and cover if cannot move from explosion // { TASK_SET_FAIL_SCHEDULE, (float)SCHED_COWER },// duck and cover if cannot move from explosion
{ TASK_STOP_MOVING, (float)0 }, { TASK_STOP_MOVING, (float)0 },
{ TASK_FIND_COVER_FROM_BEST_SOUND, (float)0 }, { TASK_FIND_COVER_FROM_BEST_SOUND, (float)0 },
{ TASK_RUN_PATH, (float)0 }, { TASK_RUN_PATH, (float)0 },
{ TASK_WAIT_FOR_MOVEMENT, (float)0 }, { TASK_WAIT_FOR_MOVEMENT, (float)0 },
{ TASK_REMEMBER, (float)bits_MEMORY_INCOVER }, { TASK_REMEMBER, (float)bits_MEMORY_INCOVER },
// Wargon: Теперь союзники не ищут укрытия от врагов. (1.1) // Wargon: Теперь союзники не ищут укрытия от врагов. (1.1)
// { TASK_TURN_LEFT, (float)179 }, // { TASK_TURN_LEFT, (float)179 },
}; };
@ -2588,7 +2588,7 @@ Schedule_t *CMilitary :: GetSchedule( void )
return GetScheduleOfType(SCHED_MIL_FLASHLIGHT); return GetScheduleOfType(SCHED_MIL_FLASHLIGHT);
} }
} }
// buz: перезарядиться, если врага нет и магазин полупуст // buz: перезарядиться, если врага нет и магазин полупуст
if (m_cAmmoLoaded < m_cClipSize / 2) if (m_cAmmoLoaded < m_cClipSize / 2)
{ {
return GetScheduleOfType ( SCHED_RELOAD ); return GetScheduleOfType ( SCHED_RELOAD );
@ -2640,7 +2640,7 @@ Schedule_t *CMilitary :: GetSchedule( void )
case MONSTERSTATE_COMBAT: case MONSTERSTATE_COMBAT:
{ {
// dead enemy // dead enemy
// Wargon: Кроме случаев, когда враг взят из данных игрока. (1.1) // Wargon: Кроме случаев, когда враг взят из данных игрока. (1.1)
if ( HasConditions( bits_COND_ENEMY_DEAD ) && !m_fEnemyFromPlayer ) if ( HasConditions( bits_COND_ENEMY_DEAD ) && !m_fEnemyFromPlayer )
{ {
if (m_iszSpeakAs) if (m_iszSpeakAs)
@ -2844,7 +2844,7 @@ Schedule_t* CMilitary :: GetScheduleOfType ( int Type )
// } // }
// else // else
// { // {
// Wargon: Теперь союзники не ищут укрытия от врагов. (1.1) // Wargon: Теперь союзники не ищут укрытия от врагов. (1.1)
// return &slMilTakeCover[ 0 ]; // return &slMilTakeCover[ 0 ];
// } // }
} }
@ -3167,9 +3167,9 @@ public:
Schedule_t *GetSchedule( void ); Schedule_t *GetSchedule( void );
Schedule_t *GetScheduleOfType(int Type); Schedule_t *GetScheduleOfType(int Type);
// имеет шлем // имеет шлем
void TraceAttack( entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType); void TraceAttack( entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType);
// другие сентенсы // другие сентенсы
int TakeDamage( entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType ); int TakeDamage( entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType );
void GibMonster( void ); void GibMonster( void );
@ -3178,7 +3178,7 @@ public:
float m_fNextRadioNoise; // 0 - no noise float m_fNextRadioNoise; // 0 - no noise
static const char *pSpetsnazSentences[]; static const char *pSpetsnazSentences[];
// Wargon: При смерти спецназовца имитируется действие энтити player_loadsaved. (1.1) // Wargon: При смерти спецназовца имитируется действие энтити player_loadsaved. (1.1)
void RunTask( Task_t *pTask ); void RunTask( Task_t *pTask );
void EXPORT MonsterDeadThink( void ); void EXPORT MonsterDeadThink( void );
}; };
@ -3277,7 +3277,7 @@ void CSpetsnaz :: Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_RED; m_bloodColor = BLOOD_COLOR_RED;
// Wargon: Хелсы спецназовцев, заданные в параметрах энтити, игнорируются. (1.1) // Wargon: Хелсы спецназовцев, заданные в параметрах энтити, игнорируются. (1.1)
// if (pev->health == 0) // if (pev->health == 0)
pev->health = gSkillData.alphaHealth; pev->health = gSkillData.alphaHealth;
m_flFieldOfView = VIEW_FIELD_FULL;//0.2; m_flFieldOfView = VIEW_FIELD_FULL;//0.2;
@ -3594,7 +3594,7 @@ int CSpetsnaz :: TakeDamage( entvars_t *pevInflictor, entvars_t *pevAttacker, fl
{ {
Forget( bits_MEMORY_INCOVER ); Forget( bits_MEMORY_INCOVER );
// Wargon: Союзники не должны восставать против игрока. И исключена возможность гибания спецназовцев - этого требует автозагрузка при смерти. (1.1) // Wargon: Союзники не должны восставать против игрока. И исключена возможность гибания спецназовцев - этого требует автозагрузка при смерти. (1.1)
return CBaseMonster::TakeDamage(pevInflictor, pevAttacker, flDamage, bitsDamageType | DMG_NEVERGIB); return CBaseMonster::TakeDamage(pevInflictor, pevAttacker, flDamage, bitsDamageType | DMG_NEVERGIB);
/* // make sure friends talk about it if player hurts talkmonsters... /* // make sure friends talk about it if player hurts talkmonsters...
@ -3841,7 +3841,7 @@ void CSpetsnaz :: HandleAnimEvent( MonsterEvent_t *pEvent )
case MIL_AE_RELOAD: case MIL_AE_RELOAD:
EMIT_SOUND( ENT(pev), CHAN_WEAPON, "alpha/alpha_reload.wav", 1, ATTN_NORM ); EMIT_SOUND( ENT(pev), CHAN_WEAPON, "alpha/alpha_reload.wav", 1, ATTN_NORM );
m_cAmmoLoaded = m_cClipSize; m_cAmmoLoaded = m_cClipSize;
pev->health = gSkillData.alphaHealth; // Wargon: Пополнение хелсов при перезарядке. (1.1) pev->health = gSkillData.alphaHealth; // Wargon: Пополнение хелсов при перезарядке. (1.1)
ClearConditions(bits_COND_NO_AMMO_LOADED); ClearConditions(bits_COND_NO_AMMO_LOADED);
break; break;
@ -3946,7 +3946,7 @@ Schedule_t *CSpetsnaz :: GetSchedule( void )
return GetScheduleOfType(SCHED_MIL_FLASHLIGHT); return GetScheduleOfType(SCHED_MIL_FLASHLIGHT);
} }
} }
// buz: перезарядиться, если врага нет и магазин полупуст // buz: перезарядиться, если врага нет и магазин полупуст
if (m_cAmmoLoaded < m_cClipSize / 2) if (m_cAmmoLoaded < m_cClipSize / 2)
{ {
return GetScheduleOfType ( SCHED_RELOAD ); return GetScheduleOfType ( SCHED_RELOAD );
@ -3998,7 +3998,7 @@ Schedule_t *CSpetsnaz :: GetSchedule( void )
case MONSTERSTATE_COMBAT: case MONSTERSTATE_COMBAT:
{ {
// dead enemy // dead enemy
// Wargon: Кроме случаев, когда враг взят из данных игрока. (1.1) // Wargon: Кроме случаев, когда враг взят из данных игрока. (1.1)
if ( HasConditions( bits_COND_ENEMY_DEAD ) && !m_fEnemyFromPlayer ) if ( HasConditions( bits_COND_ENEMY_DEAD ) && !m_fEnemyFromPlayer )
{ {
if (m_iszSpeakAs) if (m_iszSpeakAs)
@ -4050,7 +4050,7 @@ Schedule_t *CSpetsnaz :: GetSchedule( void )
// no ammo // no ammo
else if ( HasConditions ( bits_COND_NO_AMMO_LOADED ) ) else if ( HasConditions ( bits_COND_NO_AMMO_LOADED ) )
{ {
// Wargon: Спецназовец часто бегает в укрытие через всю карту. Нам это не нужно. (1.1) // Wargon: Спецназовец часто бегает в укрытие через всю карту. Нам это не нужно. (1.1)
// if ((m_afCapability & bits_CAP_CROUCH_COVER) && !HasConditions(bits_COND_CROUCH_NOT_SAFE) ) // buz: reload here, if safe // if ((m_afCapability & bits_CAP_CROUCH_COVER) && !HasConditions(bits_COND_CROUCH_NOT_SAFE) ) // buz: reload here, if safe
return GetScheduleOfType ( SCHED_RELOAD ); return GetScheduleOfType ( SCHED_RELOAD );
// else // else
@ -4215,7 +4215,7 @@ void CSpetsnaz :: RunAI ( void )
CMilitary::RunAI(); CMilitary::RunAI();
} }
// Wargon: Дефолтный TASK_DIE оверрайден для имитации действия энтити player_loadsaved. (1.1) // Wargon: Дефолтный TASK_DIE оверрайден для имитации действия энтити player_loadsaved. (1.1)
void CSpetsnaz :: RunTask ( Task_t *pTask ) void CSpetsnaz :: RunTask ( Task_t *pTask )
{ {
switch (pTask->iTask) switch (pTask->iTask)
@ -4265,7 +4265,7 @@ void CSpetsnaz :: RunTask ( Task_t *pTask )
} }
} }
// Wargon: Автозагрузка срабатывает с задержкой после смерти спецназовца. (1.1) // Wargon: Автозагрузка срабатывает с задержкой после смерти спецназовца. (1.1)
void CSpetsnaz :: MonsterDeadThink ( void ) void CSpetsnaz :: MonsterDeadThink ( void )
{ {
SERVER_COMMAND("reload\n"); SERVER_COMMAND("reload\n");
@ -4310,7 +4310,7 @@ void CSpetsnazAPS :: Spawn()
pev->solid = SOLID_SLIDEBOX; pev->solid = SOLID_SLIDEBOX;
pev->movetype = MOVETYPE_STEP; pev->movetype = MOVETYPE_STEP;
m_bloodColor = BLOOD_COLOR_RED; m_bloodColor = BLOOD_COLOR_RED;
// Wargon: Хелсы спецназовцев, заданные в параметрах энтити, игнорируются. (1.1) // Wargon: Хелсы спецназовцев, заданные в параметрах энтити, игнорируются. (1.1)
// if (pev->health == 0) // if (pev->health == 0)
pev->health = gSkillData.alphaHealth; pev->health = gSkillData.alphaHealth;
m_flFieldOfView = VIEW_FIELD_FULL; //0.2; m_flFieldOfView = VIEW_FIELD_FULL; //0.2;
@ -4787,7 +4787,7 @@ Schedule_t *CSoldierInfected :: GetSchedule( void )
// no ammo // no ammo
if ( HasConditions ( bits_COND_NO_AMMO_LOADED ) ) if ( HasConditions ( bits_COND_NO_AMMO_LOADED ) )
{ {
// Wargon: Спецназовец часто бегает в укрытие через всю карту. Нам это не нужно. (1.1) // Wargon: Спецназовец часто бегает в укрытие через всю карту. Нам это не нужно. (1.1)
// if ((m_afCapability & bits_CAP_CROUCH_COVER) && !HasConditions(bits_COND_CROUCH_NOT_SAFE) ) // buz: reload here, if safe // if ((m_afCapability & bits_CAP_CROUCH_COVER) && !HasConditions(bits_COND_CROUCH_NOT_SAFE) ) // buz: reload here, if safe
return GetScheduleOfType ( SCHED_RELOAD ); return GetScheduleOfType ( SCHED_RELOAD );
// else // else

View File

@ -142,7 +142,7 @@ void CFuncMachinegun::Spawn()
pev->solid = SOLID_BBOX; pev->solid = SOLID_BBOX;
pev->angles.x = 0; // remove pitch pev->angles.x = 0; // remove pitch
// m_flLastAnimTime = gpGlobals->time; // m_flLastAnimTime = gpGlobals->time;
pev->renderfx = 51; // хак для рендерера, чтобы он не интерполировал контроллеры pev->renderfx = 51; // хак для рендерера, чтобы он не интерполировал контроллеры
SET_MODEL( ENT(pev), STRING(pev->model) ); SET_MODEL( ENT(pev), STRING(pev->model) );
UTIL_SetSize( pev, Vector(-25,-25,0), Vector(25,25,60)); UTIL_SetSize( pev, Vector(-25,-25,0), Vector(25,25,60));

View File

@ -268,7 +268,7 @@ int gmsgWeaponSkin = 0;
int gmsgPartEffect = 0; int gmsgPartEffect = 0;
int gmsgBlurEffect = 0; int gmsgBlurEffect = 0;
int gmsgLevelTime = 0; int gmsgLevelTime = 0;
// Wargon: Иконка юза. // Wargon: Иконка юза.
int gmsgCanUse = 0; int gmsgCanUse = 0;
void LinkUserMessages( void ) void LinkUserMessages( void )
@ -348,7 +348,7 @@ void LinkUserMessages( void )
gmsgBlurEffect = REG_USER_MSG( "BlurEffect", 2 ); gmsgBlurEffect = REG_USER_MSG( "BlurEffect", 2 );
gmsgLevelTime = REG_USER_MSG( "LevelTime", 4 ); gmsgLevelTime = REG_USER_MSG( "LevelTime", 4 );
// Wargon: Иконка юза. // Wargon: Иконка юза.
gmsgCanUse = REG_USER_MSG("CanUse", -1); gmsgCanUse = REG_USER_MSG("CanUse", -1);
} }
@ -598,8 +598,8 @@ int CBasePlayer :: TakeDamage( entvars_t *pevInflictor, entvars_t *pevAttacker,
} }
// Armor. // Armor.
// buz: броня не спасает от ударов вплотную // buz: броня не спасает от ударов вплотную
// Wargon: Броня также не защищает от газа. (1.1) // Wargon: Броня также не защищает от газа. (1.1)
if (pev->armorvalue && !(bitsDamageType & (DMG_FALL | DMG_DROWN | DMG_CLUB | DMG_SLASH | DMG_NERVEGAS)) )// armor doesn't protect against fall or drown damage! if (pev->armorvalue && !(bitsDamageType & (DMG_FALL | DMG_DROWN | DMG_CLUB | DMG_SLASH | DMG_NERVEGAS)) )// armor doesn't protect against fall or drown damage!
{ {
float flNew = flDamage * flRatio; float flNew = flDamage * flRatio;
@ -1020,7 +1020,7 @@ entvars_t *g_pevLastInflictor; // Set in combat.cpp. Used to pass the damage i
void CBasePlayer::Killed( entvars_t *pevAttacker, int iGib ) void CBasePlayer::Killed( entvars_t *pevAttacker, int iGib )
{ {
// Wargon: Если игрока убили хедшотом, то выводится соответствующая мессага. // Wargon: Если игрока убили хедшотом, то выводится соответствующая мессага.
if (m_LastHitGroup == HITGROUP_HEAD) if (m_LastHitGroup == HITGROUP_HEAD)
UTIL_ShowMessage("#TIPS_HEADSHOOT", this ); UTIL_ShowMessage("#TIPS_HEADSHOOT", this );
@ -1585,7 +1585,7 @@ void CBasePlayer::StartObserver( Vector vecPosition, Vector vecViewAngle )
// PlayerUse - handles USE keypress // PlayerUse - handles USE keypress
// //
#define PLAYER_SEARCH_RADIUS (float)64 #define PLAYER_SEARCH_RADIUS (float)64
#define PLAYER_DISTUSE_RADIUS (float)128 // Wargon: Расстояние дальнего юза уменьшено. #define PLAYER_DISTUSE_RADIUS (float)128 // Wargon: Расстояние дальнего юза уменьшено.
void CBasePlayer::PlayerUse ( void ) void CBasePlayer::PlayerUse ( void )
{ {
@ -4810,14 +4810,14 @@ void CBasePlayer :: UpdateClientData( void )
m_flNextSBarUpdateTime = gpGlobals->time + 0.2; m_flNextSBarUpdateTime = gpGlobals->time + 0.2;
} }
// Wargon: Если костюма нет, то фонарик выключается. // Wargon: Если костюма нет, то фонарик выключается.
if (!FBitSet( m_iHideHUD, ITEM_SUIT ) && FlashlightIsOn()) if (!FBitSet( m_iHideHUD, ITEM_SUIT ) && FlashlightIsOn())
FlashlightTurnOff(); FlashlightTurnOff();
// if ( pev->waterlevel == 3 && FlashlightIsOn()) // if ( pev->waterlevel == 3 && FlashlightIsOn())
// FlashlightTurnOff(); // FlashlightTurnOff();
// Wargon: Серверный код иконки юза. // Wargon: Серверный код иконки юза.
CBaseEntity *pObject = NULL; CBaseEntity *pObject = NULL;
CBaseEntity *pClosest = NULL; CBaseEntity *pClosest = NULL;
Vector vecLOS; Vector vecLOS;

View File

@ -209,7 +209,7 @@ public:
float m_flClientBlurAmount; float m_flClientBlurAmount;
float m_flClientLevelTime; float m_flClientLevelTime;
void ViewPunch( float p, float y, float r ); // buz - íàãëî ñïåð èç õë2 void ViewPunch( float p, float y, float r ); // buz - нагло спер из хл2
// usable player items // usable player items
CBasePlayerItem *m_rgpPlayerItems[MAX_ITEM_TYPES]; CBasePlayerItem *m_rgpPlayerItems[MAX_ITEM_TYPES];

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: New version of the slider bar // Purpose: New version of the slider bar
// //

View File

@ -1,5 +1,5 @@
// Wargon: AI для крыс. Основан на оригинальном коде monster_cockroach. // Wargon: AI для крыс. Основан на оригинальном коде monster_cockroach.
// Тараканы и крысы переживут и нас, и наших потомков, и тебя тоже. ) // Тараканы и крысы переживут и нас, и наших потомков, и тебя тоже. )
#include "extdll.h" #include "extdll.h"
#include "util.h" #include "util.h"

View File

@ -109,7 +109,7 @@ void CLaserSpot::Precache( void )
LINK_ENTITY_TO_CLASS( rpg_rocket, CRpgRocket ); LINK_ENTITY_TO_CLASS( rpg_rocket, CRpgRocket );
// Wargon: SaveData перемещен из weapons.cpp. // Wargon: SaveData перемещен из weapons.cpp.
TYPEDESCRIPTION CRpgRocket :: m_SaveData[] = TYPEDESCRIPTION CRpgRocket :: m_SaveData[] =
{ {
DEFINE_FIELD( CRpgRocket, m_flIgniteTime, FIELD_TIME ), DEFINE_FIELD( CRpgRocket, m_flIgniteTime, FIELD_TIME ),
@ -178,7 +178,7 @@ void CRpgRocket :: Precache( void )
{ {
PRECACHE_MODEL( "models/rpgrocket.mdl" ); PRECACHE_MODEL( "models/rpgrocket.mdl" );
m_iTrail = PRECACHE_MODEL("sprites/smoke.spr"); m_iTrail = PRECACHE_MODEL("sprites/smoke.spr");
m_iFireTrail = PRECACHE_MODEL( "sprites/muz3.spr" ); // Wargon: Спрайт для огненного следа у ракет. m_iFireTrail = PRECACHE_MODEL( "sprites/muz3.spr" ); // Wargon: Спрайт для огненного следа у ракет.
PRECACHE_SOUND ("weapons/rocket1.wav"); PRECACHE_SOUND ("weapons/rocket1.wav");
} }
@ -286,7 +286,7 @@ void CRpgRocket :: FollowThink( void )
} }
} }
// Wargon: Непонятно, почему у ракет не рисуется glow-спрайт. Исправил положение, сделав свой огонь для ракеты через мессагу. // Wargon: Непонятно, почему у ракет не рисуется glow-спрайт. Исправил положение, сделав свой огонь для ракеты через мессагу.
MESSAGE_BEGIN( MSG_PVS, SVC_TEMPENTITY, pev->origin ); MESSAGE_BEGIN( MSG_PVS, SVC_TEMPENTITY, pev->origin );
WRITE_BYTE( TE_SPRITE ); WRITE_BYTE( TE_SPRITE );
WRITE_COORD( pev->origin.x ); WRITE_COORD( pev->origin.x );

View File

@ -453,8 +453,8 @@ void CBaseMonster :: RunTask ( Task_t *pTask )
// Re-evaluate when you think your finished, or the target has moved too far // Re-evaluate when you think your finished, or the target has moved too far
if ( (distance < m_flRushDistance) || (m_vecMoveGoal - m_hTargetEnt->pev->origin).Length() > m_flRushDistance * 0.5 ) if ( (distance < m_flRushDistance) || (m_vecMoveGoal - m_hTargetEnt->pev->origin).Length() > m_flRushDistance * 0.5 )
{ {
// buz: за то время, пока мы бежали к цели, она могла обновиться. // buz: за то время, пока мы бежали к цели, она могла обновиться.
// спрашиваем цель еще раз. // спрашиваем цель еще раз.
CStartRush* pRush = (CStartRush*)UTIL_FindEntityByTargetname(NULL, STRING( m_hRushEntity )); CStartRush* pRush = (CStartRush*)UTIL_FindEntityByTargetname(NULL, STRING( m_hRushEntity ));
if (pRush) if (pRush)
m_hTargetEnt = pRush->GetDestinationEntity(); m_hTargetEnt = pRush->GetDestinationEntity();
@ -1008,7 +1008,7 @@ void CBaseMonster :: StartTask ( Task_t *pTask )
if ( !MoveToTarget( act, 0.5 ) ) if ( !MoveToTarget( act, 0.5 ) )
{ {
m_flRushNextTime = gpGlobals->time + 3;// попробуем через три секунды еще раз m_flRushNextTime = gpGlobals->time + 3;// попробуем через три секунды еще раз
TaskFail(); TaskFail();
// ALERT(at_console, "NO PATH!!!\n"); // ALERT(at_console, "NO PATH!!!\n");
} }

View File

@ -75,7 +75,7 @@ public:
void RunTask( Task_t *pTask ); void RunTask( Task_t *pTask );
void StartTask( Task_t *pTask ); void StartTask( Task_t *pTask );
// Wargon: Юзать монстра можно только если он жив. Это нужно чтобы иконка юза не показывалась на мертвых монстрах. // Wargon: Юзать монстра можно только если он жив. Это нужно чтобы иконка юза не показывалась на мертвых монстрах.
int ObjectCaps( void ) { if (pev->deadflag == DEAD_NO) return CTalkMonster :: ObjectCaps() | FCAP_IMPULSE_USE | FCAP_DISTANCE_USE; else return CTalkMonster::ObjectCaps(); } int ObjectCaps( void ) { if (pev->deadflag == DEAD_NO) return CTalkMonster :: ObjectCaps() | FCAP_IMPULSE_USE | FCAP_DISTANCE_USE; else return CTalkMonster::ObjectCaps(); }
int TakeDamage( entvars_t* pevInflictor, entvars_t* pevAttacker, float flDamage, int bitsDamageType); int TakeDamage( entvars_t* pevInflictor, entvars_t* pevAttacker, float flDamage, int bitsDamageType);

View File

@ -85,7 +85,7 @@ BOOL CHalfLifeRules::FShouldSwitchWeapon( CBasePlayer *pPlayer, CBasePlayerItem
//========================================================= //=========================================================
//========================================================= //=========================================================
// buz: ñêîïèðîâàíî èç MultiplayerRules // buz: скопировано из MultiplayerRules
BOOL CHalfLifeRules :: GetNextBestWeapon( CBasePlayer *pPlayer, CBasePlayerItem *pCurrentWeapon ) BOOL CHalfLifeRules :: GetNextBestWeapon( CBasePlayer *pPlayer, CBasePlayerItem *pCurrentWeapon )
{ {
CBasePlayerItem *pCheck; CBasePlayerItem *pCheck;

View File

@ -37,7 +37,7 @@ float GetSkillCvar( char *pName )
flValue = CVAR_GET_FLOAT ( szBuffer ); flValue = CVAR_GET_FLOAT ( szBuffer );
// Wargon: Это сообщение не нужно. В skill.cfg нулевые значения допустимы. // Wargon: Это сообщение не нужно. В skill.cfg нулевые значения допустимы.
// if ( flValue <= 0 ) // if ( flValue <= 0 )
// { // {
// ALERT ( at_debug, "\n\n** GetSkillCVar Got a zero for %s **\n\n", szBuffer ); // ALERT ( at_debug, "\n\n** GetSkillCVar Got a zero for %s **\n\n", szBuffer );

View File

@ -152,7 +152,7 @@ struct skilldata_t
float plrLeg; float plrLeg;
float plrArm; float plrArm;
// Wargon: Ìíîæèòåëè äàìàãè äëÿ monster_zombie. (1.1) // Wargon: Множители дамаги для monster_zombie. (1.1)
float zomHead; float zomHead;
float zomChest; float zomChest;
float zomStomach; float zomStomach;
@ -168,7 +168,7 @@ struct skilldata_t
float plrPrimaryMaxSpeed; // in primary weapon mode float plrPrimaryMaxSpeed; // in primary weapon mode
float plrSecondaryMaxSpeed; // in secondary weapon mode float plrSecondaryMaxSpeed; // in secondary weapon mode
// Wargon: Ïàòðîíû èç ìåðòâûõ âðàæèí. (1.1) // Wargon: Патроны из мертвых вражин. (1.1)
float maxDeadEnemyAmmo; float maxDeadEnemyAmmo;
}; };

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: New version of the slider bar // Purpose: New version of the slider bar
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright В© 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: New version of the slider bar // Purpose: New version of the slider bar
// //

View File

@ -1649,7 +1649,7 @@ void UTIL_DecalTrace( TraceResult *pTrace, const char *decalName )
} }
// buz // buz
BOOL UTIL_TraceCustomDecal( TraceResult *pTrace, const char *name, float angle, int persistent ) // Wargon: Çíà÷åíèå ïî óìîë÷àíèþ ïðîïèñàíî â util.h. BOOL UTIL_TraceCustomDecal( TraceResult *pTrace, const char *name, float angle, int persistent ) // Wargon: Значение по умолчанию прописано в util.h.
{ {
short entityIndex; short entityIndex;
short modelIndex = 0; short modelIndex = 0;

View File

@ -281,7 +281,7 @@ extern int UTIL_IsMasterTriggered (string_t sMaster, CBaseEntity *pActivator);
extern void UTIL_BloodStream( const Vector &origin, const Vector &direction, int color, int amount ); extern void UTIL_BloodStream( const Vector &origin, const Vector &direction, int color, int amount );
extern void UTIL_BloodDrips( const Vector &origin, const Vector &direction, int color, int amount ); extern void UTIL_BloodDrips( const Vector &origin, const Vector &direction, int color, int amount );
extern Vector UTIL_RandomBloodVector( void ); extern Vector UTIL_RandomBloodVector( void );
extern BOOL UTIL_TraceCustomDecal( TraceResult *pTrace, const char *name, float angle = 0.0f, int persistent = 0 ); // Wargon: Это должно быть объявлено здесь чтобы можно было рисовать кастомне декали из кода монстриков. extern BOOL UTIL_TraceCustomDecal( TraceResult *pTrace, const char *name, float angle = 0.0f, int persistent = 0 ); // Wargon: Это должно быть объявлено здесь чтобы можно было рисовать кастомне декали из кода монстриков.
extern void UTIL_RestoreCustomDecal( const Vector &vecPos, const Vector &vecNormal, int entityIndex, int modelIndex, const char *name, int flags, float angle ); extern void UTIL_RestoreCustomDecal( const Vector &vecPos, const Vector &vecNormal, int entityIndex, int modelIndex, const char *name, int flags, float angle );
extern BOOL UTIL_StudioDecalTrace( TraceResult *pTrace, const char *name, int flags = 0 ); extern BOOL UTIL_StudioDecalTrace( TraceResult *pTrace, const char *name, int flags = 0 );
extern void UTIL_RestoreStudioDecal( const Vector &vecEnd, const Vector &vecNormal, int entityIndex, int modelIndex, const char *name, int flags, struct modelstate_s *state, int lightcache, const Vector &scale ); extern void UTIL_RestoreStudioDecal( const Vector &vecEnd, const Vector &vecNormal, int entityIndex, int modelIndex, const char *name, int flags, struct modelstate_s *state, int lightcache, const Vector &scale );

View File

@ -167,7 +167,7 @@ void CBasePlayerItem :: FallInit( void )
UTIL_SetOrigin( this, pev->origin ); UTIL_SetOrigin( this, pev->origin );
UTIL_SetSize( pev, g_vecZero, g_vecZero ); // pointsize until it lands on the ground. UTIL_SetSize( pev, g_vecZero, g_vecZero ); // pointsize until it lands on the ground.
// Wargon: Оружие юзабельно. // Wargon: Оружие юзабельно.
SetUse( &CBasePlayerItem::DefaultUse ); SetUse( &CBasePlayerItem::DefaultUse );
m_iItemCaps = CBaseEntity::ObjectCaps() | FCAP_IMPULSE_USE; m_iItemCaps = CBaseEntity::ObjectCaps() | FCAP_IMPULSE_USE;
@ -212,7 +212,7 @@ void CBasePlayerItem :: Materialize( void )
UTIL_SetOrigin( this, pev->origin ); // link into world. UTIL_SetOrigin( this, pev->origin ); // link into world.
// Wargon: Оружие юзабельно. // Wargon: Оружие юзабельно.
SetUse( &CBasePlayerItem::DefaultUse ); SetUse( &CBasePlayerItem::DefaultUse );
m_iItemCaps = CBaseEntity::ObjectCaps() | FCAP_IMPULSE_USE; m_iItemCaps = CBaseEntity::ObjectCaps() | FCAP_IMPULSE_USE;
@ -253,7 +253,7 @@ CBaseEntity* CBasePlayerItem :: Respawn( void )
{ {
pNewWeapon->pev->effects |= EF_NODRAW;// invisible for now pNewWeapon->pev->effects |= EF_NODRAW;// invisible for now
// Wargon: Оружие неюзабельно. // Wargon: Оружие неюзабельно.
pNewWeapon->SetUse( NULL ); pNewWeapon->SetUse( NULL );
m_iItemCaps = CBaseEntity :: ObjectCaps(); m_iItemCaps = CBaseEntity :: ObjectCaps();
@ -1678,7 +1678,7 @@ BOOL CBasePlayerItem :: DefaultSwing( int primary )
ClearMultiDamage( ); ClearMultiDamage( );
// Wargon: Исправлено гибание ножем. // Wargon: Исправлено гибание ножем.
if( primary ) pEntity->TraceAttack(m_pPlayer->pev, gSkillData.plrDmgCrowbar, gpGlobals->v_forward, &tr, DMG_CLUB | DMG_NEVERGIB ); if( primary ) pEntity->TraceAttack(m_pPlayer->pev, gSkillData.plrDmgCrowbar, gpGlobals->v_forward, &tr, DMG_CLUB | DMG_NEVERGIB );
else pEntity->TraceAttack(m_pPlayer->pev, gSkillData.plrDmgCrowbarSec, gpGlobals->v_forward, &tr, DMG_CLUB | DMG_NEVERGIB ); else pEntity->TraceAttack(m_pPlayer->pev, gSkillData.plrDmgCrowbarSec, gpGlobals->v_forward, &tr, DMG_CLUB | DMG_NEVERGIB );
@ -2477,7 +2477,7 @@ int CBasePlayerItem :: AddToPlayer( CBasePlayer *pPlayer )
void CBasePlayerItem :: Drop( void ) void CBasePlayerItem :: Drop( void )
{ {
// Wargon: Оружие неюзабельно. // Wargon: Оружие неюзабельно.
SetUse( NULL ); SetUse( NULL );
m_iItemCaps = CBaseEntity :: ObjectCaps(); m_iItemCaps = CBaseEntity :: ObjectCaps();
@ -2488,7 +2488,7 @@ void CBasePlayerItem :: Drop( void )
void CBasePlayerItem :: Kill( void ) void CBasePlayerItem :: Kill( void )
{ {
// Wargon: Оружие неюзабельно. // Wargon: Оружие неюзабельно.
SetUse( NULL ); SetUse( NULL );
m_iItemCaps = CBaseEntity :: ObjectCaps(); m_iItemCaps = CBaseEntity :: ObjectCaps();
@ -3059,7 +3059,7 @@ class CPainkiller : public CBasePlayerAmmo
{ {
EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/painkiller_pickup.wav", 1, ATTN_NORM); EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/painkiller_pickup.wav", 1, ATTN_NORM);
pOther->pev->weapons |= (1<<WEAPON_PAINKILLER); pOther->pev->weapons |= (1<<WEAPON_PAINKILLER);
// Wargon: Возможность таргетить энтити подбором паинкиллера. // Wargon: Возможность таргетить энтити подбором паинкиллера.
SUB_UseTargets( pOther, USE_TOGGLE, 0 ); SUB_UseTargets( pOther, USE_TOGGLE, 0 );
} }
return bResult; return bResult;

View File

@ -67,7 +67,7 @@ public:
void EXPORT RocketTouch( CBaseEntity *pOther ); void EXPORT RocketTouch( CBaseEntity *pOther );
static CRpgRocket *CreateRpgRocket( Vector vecOrigin, Vector vecAngles, CBaseEntity *pOwner, CBasePlayerItem *pLauncher ); static CRpgRocket *CreateRpgRocket( Vector vecOrigin, Vector vecAngles, CBaseEntity *pOwner, CBasePlayerItem *pLauncher );
int m_iFireTrail; // Wargon: переменная для огненного следа у ракет. int m_iFireTrail; // Wargon: переменная для огненного следа у ракет.
int m_iTrail; int m_iTrail;
float m_flIgniteTime; float m_flIgniteTime;
CBasePlayerItem *m_pLauncher;// pointer back to the launcher that fired me. CBasePlayerItem *m_pLauncher;// pointer back to the launcher that fired me.
@ -162,10 +162,10 @@ typedef enum
enum enum
{ {
SPREAD_LINEAR = 0, // изменение разброса линейно во времени SPREAD_LINEAR = 0, // изменение разброса линейно во времени
SPREAD_QUAD, // по параболе (вначале узкий, потом резко расширяется) SPREAD_QUAD, // по параболе (вначале узкий, потом резко расширяется)
SPREAD_CUBE, // кубическая парабола SPREAD_CUBE, // кубическая парабола
SPREAD_SQRT, // наоборот (быстро расширяется и плавно переходит в максимальный) SPREAD_SQRT, // наоборот (быстро расширяется и плавно переходит в максимальный)
}; };
typedef struct typedef struct
@ -296,7 +296,7 @@ public:
void Precache( void ); void Precache( void );
void Spawn( void ); void Spawn( void );
// Wargon: Переменные для юзабельности оружий. // Wargon: Переменные для юзабельности оружий.
void EXPORT DefaultUse( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value ) { DefaultTouch( pActivator ); } void EXPORT DefaultUse( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value ) { DefaultTouch( pActivator ); }
virtual int ObjectCaps( void ) { return m_iItemCaps | FCAP_ACROSS_TRANSITION | FCAP_USE_ONLY; } virtual int ObjectCaps( void ) { return m_iItemCaps | FCAP_ACROSS_TRANSITION | FCAP_USE_ONLY; }
@ -580,7 +580,7 @@ public:
void Precache( void ); void Precache( void );
void Spawn( void ); void Spawn( void );
// Wargon: Переменные для юзабельности патронов. // Wargon: Переменные для юзабельности патронов.
virtual int Save( CSave &save ); virtual int Save( CSave &save );
virtual int Restore( CRestore &restore ); virtual int Restore( CRestore &restore );
static TYPEDESCRIPTION m_SaveData[]; static TYPEDESCRIPTION m_SaveData[];

View File

@ -24,7 +24,7 @@
#include "monsters.h" #include "monsters.h"
#include "schedule.h" #include "schedule.h"
#include "player.h" #include "player.h"
// Wargon: Чтобы работали SpawnBlood и AddMultiDamage. (1.1) // Wargon: Чтобы работали SpawnBlood и AddMultiDamage. (1.1)
#include "weapons.h" #include "weapons.h"
@ -61,7 +61,7 @@ public:
static const char *pAttackHitSounds[]; static const char *pAttackHitSounds[];
static const char *pAttackMissSounds[]; static const char *pAttackMissSounds[];
// Wargon: Особые звуки для потолочника и паука. // Wargon: Особые звуки для потолочника и паука.
static const char *pCeilingAlertSounds[]; static const char *pCeilingAlertSounds[];
static const char *pCeilingAttackSounds[]; static const char *pCeilingAttackSounds[];
static const char *pCeilingPainSounds[]; static const char *pCeilingPainSounds[];
@ -69,7 +69,7 @@ public:
static const char *pSpiderAttackSounds[]; static const char *pSpiderAttackSounds[];
static const char *pSpiderPainSounds[]; static const char *pSpiderPainSounds[];
//Lev: Ещё звуки для толстяка //Lev: Ещё звуки для толстяка
static const char *pStrikerAlertSounds[]; static const char *pStrikerAlertSounds[];
static const char *pStrikerAttackSounds[]; static const char *pStrikerAttackSounds[];
static const char *pStrikerPainSounds[]; static const char *pStrikerPainSounds[];
@ -81,7 +81,7 @@ public:
virtual Vector BodyTarget( const Vector &posSrc ) { return Center() + Vector( 0.0f, 0.0f, RANDOM_FLOAT( 1.0, 20.0f )); }; // position to shoot at virtual Vector BodyTarget( const Vector &posSrc ) { return Center() + Vector( 0.0f, 0.0f, RANDOM_FLOAT( 1.0, 20.0f )); }; // position to shoot at
// Wargon: Отдельные множители повреждений по хитгруппам для monster_zombie. (1.1) // Wargon: Отдельные множители повреждений по хитгруппам для monster_zombie. (1.1)
void TraceAttack( entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType ); void TraceAttack( entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType );
// void RunAI( void ); // void RunAI( void );
@ -129,7 +129,7 @@ const char *CZombie::pPainSounds[] =
"zombie/zo_pain2.wav", "zombie/zo_pain2.wav",
}; };
// Wargon: Особые звуки для потолочника и паука. // Wargon: Особые звуки для потолочника и паука.
const char *CZombie::pCeilingAlertSounds[] = const char *CZombie::pCeilingAlertSounds[] =
{ {
"potolo4nik/zo_alert10.wav", "potolo4nik/zo_alert10.wav",
@ -237,7 +237,7 @@ int CZombie :: TakeDamage( entvars_t *pevInflictor, entvars_t *pevAttacker, floa
return CBaseMonster::TakeDamage( pevInflictor, pevAttacker, flDamage, bitsDamageType ); return CBaseMonster::TakeDamage( pevInflictor, pevAttacker, flDamage, bitsDamageType );
} }
// Wargon: Отдельные множители повреждений по хитгруппам для monster_zombie. (1.1) // Wargon: Отдельные множители повреждений по хитгруппам для monster_zombie. (1.1)
void CZombie :: TraceAttack( entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType ) void CZombie :: TraceAttack( entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType )
{ {
if (pev->takedamage) if (pev->takedamage)
@ -289,7 +289,7 @@ void CZombie :: TraceAttack( entvars_t *pevAttacker, float flDamage, Vector vecD
} }
} }
// Wargon: Добавлены особые звуки в Alert, Attack и Pain для потолочника и паука. // Wargon: Добавлены особые звуки в Alert, Attack и Pain для потолочника и паука.
void CZombie :: AlertSound( void ) void CZombie :: AlertSound( void )
{ {
int pitch = 95 + RANDOM_LONG(0,9); int pitch = 95 + RANDOM_LONG(0,9);
@ -459,7 +459,7 @@ void CZombie :: Spawn()
else else
SET_MODEL(ENT(pev), "models/zombie.mdl"); SET_MODEL(ENT(pev), "models/zombie.mdl");
// Wargon: Особые размеры для потолочника и паука. // Wargon: Особые размеры для потолочника и паука.
if ( FStrEq( STRING(pev->model), "models/zombie_c.mdl" ) ) if ( FStrEq( STRING(pev->model), "models/zombie_c.mdl" ) )
UTIL_SetSize( pev, Vector(-16, -16, 0), Vector(16, 16, 128) ); UTIL_SetSize( pev, Vector(-16, -16, 0), Vector(16, 16, 128) );
else if ( FStrEq( STRING(pev->model), "models/spider.mdl" ) ) else if ( FStrEq( STRING(pev->model), "models/spider.mdl" ) )
@ -485,7 +485,7 @@ void CZombie :: Spawn()
//========================================================= //=========================================================
// Precache - precaches all resources this monster needs // Precache - precaches all resources this monster needs
//========================================================= //=========================================================
void CZombie :: Precache() // Wargon: Особые звуки для потолочника и паука. void CZombie :: Precache() // Wargon: Особые звуки для потолочника и паука.
{ {
int i; int i;

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//===== Copyright © 1996-2007, Valve Corporation, All rights reserved. ======// //===== Copyright © 1996-2007, Valve Corporation, All rights reserved. ======//
// //
// Purpose: a class for performing cube-mapped spherical sample lookups. // Purpose: a class for performing cube-mapped spherical sample lookups.
// //

View File

@ -49,14 +49,14 @@ public:
X[i] = P[i]; X[i] = P[i];
normalize( X ); normalize( X );
// Its y axis is perpendicular to P, so Y = unit( E - X(E·X) ). // Its y axis is perpendicular to P, so Y = unit( E - X(E·X) ).
float dDOTx = dot( D, X ); float dDOTx = dot( D, X );
for( i = 0; i < 3; i++ ) for( i = 0; i < 3; i++ )
Y[i] = D[i] - dDOTx * X[i]; Y[i] = D[i] - dDOTx * X[i];
normalize( Y ); normalize( Y );
// Its z axis is perpendicular to both X and Y, so Z = X×Y. // Its z axis is perpendicular to both X and Y, so Z = XЧY.
cross( X, Y, Z ); cross( X, Y, Z );
// Mfwd = (Minv)T, since transposing inverts a rotation matrix. // Mfwd = (Minv)T, since transposing inverts a rotation matrix.

View File

@ -1,4 +1,4 @@
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======// //===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======//
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============// //========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======// //===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======//
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//====== Copyright © 1996-2005, Valve Corporation, All rights reserved. =======// //====== Copyright © 1996-2005, Valve Corporation, All rights reserved. =======//
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======// //===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======//
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======// //===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======//
// //
// Purpose: // Purpose:
// //

View File

@ -1,4 +1,4 @@
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ //========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
// //
// Purpose: // Purpose:
// //

Some files were not shown because too many files have changed in this diff Show More