forked from FWGS/Paranoia2
CP1251 to UTF-8 (to preserve original comments)
This commit is contained in:
parent
5cc388c45e
commit
72dd8114eb
@ -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);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -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; // начало списка свободных элементов
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -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;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -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( ))
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -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 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -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;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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 )
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -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();
|
||||||
|
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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 )
|
||||||
|
@ -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:
|
||||||
|
@ -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)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -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"
|
||||||
|
@ -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();
|
||||||
|
|
||||||
|
@ -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"))
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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 );
|
||||||
|
|
||||||
|
@ -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 );
|
||||||
|
@ -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" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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
|
||||||
{
|
{
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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();
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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[];
|
||||||
|
@ -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
|
||||||
|
@ -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));
|
||||||
|
@ -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;
|
||||||
|
@ -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];
|
||||||
|
@ -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
|
||||||
//
|
//
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// Wargon: AI для крыс. Основан на оригинальном коде monster_cockroach.
|
// Wargon: AI для крыс. Основан на оригинальном коде monster_cockroach.
|
||||||
// Тараканы и крысы переживут и нас, и наших потомков, и тебя тоже. )
|
// Тараканы и крысы переживут и нас, и наших потомков, и тебя тоже. )
|
||||||
|
|
||||||
#include "extdll.h"
|
#include "extdll.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
@ -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 );
|
||||||
|
@ -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");
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
||||||
|
@ -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 );
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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
|
||||||
//
|
//
|
||||||
|
@ -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
|
||||||
//
|
//
|
||||||
|
@ -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;
|
||||||
|
@ -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 );
|
||||||
|
@ -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;
|
||||||
|
@ -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[];
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -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.
|
||||||
//
|
//
|
||||||
|
@ -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.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======//
|
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
|
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======//
|
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//====== Copyright © 1996-2005, Valve Corporation, All rights reserved. =======//
|
//====== Copyright © 1996-2005, Valve Corporation, All rights reserved. =======//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======//
|
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======//
|
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
|
@ -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
Loading…
Reference in New Issue
Block a user