You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
167 lines
3.6 KiB
167 lines
3.6 KiB
//--------------------------------------------------------- |
|
//--------------------------------------------------------- |
|
//- --- |
|
//- clientlbriquet.cpp --- |
|
//- --- |
|
//--------------------------------------------------------- |
|
//--------------------------------------------------------- |
|
//- code serveur du briquet --- |
|
//--------------------------------------------------------- |
|
//--------------------------------------------------------- |
|
|
|
|
|
|
|
//--------------------------------------------------------- |
|
//inclusions |
|
|
|
#include "hud.h" |
|
#include "cl_util.h" |
|
#include "const.h" |
|
#include "parsemsg.h" |
|
#include "triangleapi.h" |
|
#include "cl_entity.h" |
|
#include "eventscripts.h" |
|
|
|
extern vec3_t v_angles; // angles de la vue du joueur |
|
|
|
|
|
#define FLAMME_SPR "sprites/briquet.spr" |
|
#define FLAMME_X_SCALE 1 |
|
#define FLAMME_Y_SCALE 3 |
|
#define SPR_FRAMES 4 |
|
#define SPR_FRAMERATE 10 |
|
|
|
|
|
|
|
//------------------------------------ |
|
// |
|
// déclaration du message : |
|
// gmsgLFlammes |
|
|
|
DECLARE_MESSAGE(m_Briquet, Briquet ); |
|
|
|
|
|
//------------------------------------ |
|
// |
|
// gestion des messages serveur |
|
|
|
|
|
int CHudBriquet::MsgFunc_Briquet( const char *pszName, int iSize, void *pbuf ) |
|
{ |
|
BEGIN_READ( pbuf, iSize ); |
|
|
|
int iOnOff = READ_BYTE(); |
|
|
|
if ( iOnOff == 1 ) |
|
{ // allume |
|
m_iFlags |= HUD_ACTIVE; |
|
} |
|
else |
|
{ |
|
m_iFlags &= ~HUD_ACTIVE; |
|
} |
|
|
|
return 1; |
|
} |
|
|
|
|
|
|
|
|
|
//------------------------------------ |
|
// |
|
// rafraichissement de l'affichage |
|
|
|
|
|
int CHudBriquet :: Draw ( float flTime ) |
|
{ |
|
return 1; |
|
} |
|
|
|
|
|
void CHudBriquet :: DrawFlamme ( void ) |
|
{ |
|
// hud éteint |
|
if ( ! (m_iFlags & HUD_ACTIVE)) |
|
return; |
|
|
|
// ptr pour le viewmodel |
|
cl_entity_t *pViewmodel = GetViewEntity(); |
|
if ( !pViewmodel ) |
|
return; |
|
|
|
// vectors |
|
|
|
vec3_t v_right, v_up; |
|
AngleVectors ( v_angles, Vector(0,0,0), v_right, v_up ); |
|
|
|
vec3_t vecPos = pViewmodel->attachment[0]; |
|
vec3_t right = v_right * FLAMME_X_SCALE; |
|
vec3_t up = v_up * FLAMME_Y_SCALE; |
|
vec3_t vertex; |
|
|
|
// initialisation triapi |
|
|
|
int frame = (int)(gEngfuncs.GetClientTime()*SPR_FRAMERATE) % SPR_FRAMES; |
|
|
|
int modelindex; |
|
struct model_s *mod = gEngfuncs.CL_LoadModel( FLAMME_SPR , &modelindex ); |
|
gEngfuncs.pTriAPI->SpriteTexture( (struct model_s *)mod, frame ); |
|
|
|
gEngfuncs.pTriAPI->RenderMode( kRenderTransAdd ); //mode de transparence |
|
gEngfuncs.pTriAPI->CullFace( TRI_NONE ); //(des)activer le face culling |
|
gEngfuncs.pTriAPI->Brightness( 0.8 ); |
|
gEngfuncs.pTriAPI->Color4f( 1.0, 1.0, 1.0, 1.0 ); |
|
|
|
gEngfuncs.pTriAPI->Begin( TRI_QUADS ); //démarrage du tracé, en mode quads - carrés . |
|
|
|
gEngfuncs.pTriAPI->TexCoord2f( 0, 0 ); //premier vertex |
|
vertex = vecPos - right + up; |
|
gEngfuncs.pTriAPI->Vertex3f( vertex.x, vertex.y, vertex.z ); |
|
|
|
gEngfuncs.pTriAPI->TexCoord2f( 1, 0 ); //deuxieme vertex |
|
vertex = vecPos + right + up; |
|
gEngfuncs.pTriAPI->Vertex3f( vertex.x, vertex.y, vertex.z ); |
|
|
|
gEngfuncs.pTriAPI->TexCoord2f( 1, 1 ); //troisieme vertex |
|
vertex = vecPos + right; |
|
gEngfuncs.pTriAPI->Vertex3f( vertex.x, vertex.y, vertex.z ); |
|
|
|
gEngfuncs.pTriAPI->TexCoord2f( 0, 1 ); //quatrieme vertex |
|
vertex = vecPos - right; |
|
gEngfuncs.pTriAPI->Vertex3f( vertex.x, vertex.y, vertex.z ); |
|
|
|
gEngfuncs.pTriAPI->End(); //fin du tracé |
|
} |
|
|
|
|
|
|
|
//------------------------------------ |
|
// |
|
// initialisation au chargement de la dll |
|
|
|
int CHudBriquet :: Init( void ) |
|
{ |
|
HOOK_MESSAGE( Briquet ); |
|
|
|
m_iFlags &= ~HUD_ACTIVE; |
|
|
|
gHUD.AddHudElem(this); |
|
return 1; |
|
} |
|
|
|
|
|
//------------------------------------ |
|
// |
|
// initialisation après le chargement |
|
|
|
|
|
int CHudBriquet :: VidInit( void ) |
|
{ |
|
HOOK_MESSAGE( Briquet ); |
|
|
|
m_iFlags &= ~HUD_ACTIVE; |
|
|
|
gHUD.AddHudElem(this); |
|
return 1; |
|
} |
|
|
|
|