Gun offset command added (v_gunofs)

This commit is contained in:
Marco Cawthorne 2018-12-27 18:19:14 +01:00
parent 468996b9e6
commit aaf8241bc2
3 changed files with 161 additions and 148 deletions

View file

@ -49,6 +49,7 @@ var float autocvar_v_bobcycle = 0.8;
var float autocvar_v_bobup = 0.5;
var int autocvar_v_bobclassic = FALSE;
var int autocvar_v_lefthanded = FALSE;
var vector autocvar_v_gunofs = [0,0,0];
var int autocvar_cl_thirdperson = FALSE;
var int autocvar_cl_radar = 1;
var int autocvar_cl_smoothstairs = TRUE;

View file

@ -29,42 +29,42 @@ typedef struct {
vector vOrigin;
} weaponsymbolinfo_t;
weaponsymbolinfo_t wpSymbolTable[ CS_WEAPON_COUNT ] = {
{ "", '0 0' }, //WEAPON_NONE
{ "sprites/640hud10.spr_0.tga", '0 0.52734375' }, //WEAPON_KNIFE
{ "sprites/640hud1.spr_0.tga", '0 0.3515625' }, //WEAPON_USP45
{ "sprites/640hud1.spr_0.tga", '0 0.17578125' }, //WEAPON_GLOCK18
{ "sprites/640hud10.spr_0.tga", '0 0.3515625' }, //WEAPON_DEAGLE
{ "sprites/640hud12.spr_0.tga", '0 0.3515625' }, //WEAPON_P228
{ "sprites/640hud14.spr_0.tga", '0 0.3515625' }, //WEAPON_ELITES
{ "sprites/640hud14.spr_0.tga", '0 0.52734375' }, //WEAPON_FIVESEVEN
{ "sprites/640hud1.spr_0.tga", '0 0.52734375' }, //WEAPON_M3
{ "sprites/640hud12.spr_0.tga", '0 0.52734375' }, //WEAPON_XM1014
{ "sprites/640hud1.spr_0.tga", '0 0.703125' }, //WEAPON_MP5
{ "sprites/640hud12.spr_0.tga", '0 0' }, //WEAPON_P90
{ "sprites/640hud16.spr_0.tga", '0 0' }, //WEAPON_UMP45
{ "sprites/640hud14.spr_0.tga", '0 0' }, //WEAPON_MAC10
{ "sprites/640hud5.spr_0.tga", '0 0' }, //WEAPON_TMP
{ "sprites/640hud10.spr_0.tga", '0 0' }, //WEAPON_AK47
{ "sprites/640hud10.spr_0.tga", '0 0.17578125' }, //WEAPON_SG552
{ "sprites/640hud2.spr_0.tga", '0 0.17578125' }, //WEAPON_M4A1
{ "sprites/640hud14.spr_0.tga", '0 0.17578125' }, //WEAPON_AUG
{ "sprites/640hud12.spr_0.tga", '0 0.17578125' }, //WEAPON_SCOUT
{ "sprites/640hud2.spr_0.tga", '0 0.52734375' }, //WEAPON_AWP
{ "sprites/640hud2.spr_0.tga", '0 0.703125' }, //WEAPON_G3SG1
{ "sprites/640hud14.spr_0.tga", '0 0.703125' }, //WEAPON_SG550
{ "sprites/640hud3.spr_0.tga", '0 0' }, //WEAPON_PARA
{ "sprites/640hud1.spr_0.tga", '0 0' }, //WEAPON_C4BOMB
{ "sprites/640hud3.spr_0.tga", '0 0.3515625' }, //WEAPON_FLASHBANG
{ "sprites/640hud3.spr_0.tga", '0 0.17578125' }, //WEAPON_HEGRENADE
{ "sprites/640hud3.spr_0.tga", '0 0.52734375' } //WEAPON_SMOKEGRENADE
weaponsymbolinfo_t wpSymbolTable[CS_WEAPON_COUNT] = {
{ "", [0,0] }, //WEAPON_NONE
{ "sprites/640hud10.spr_0.tga", [0,0.52734375] }, //WEAPON_KNIFE
{ "sprites/640hud1.spr_0.tga", [0,0.3515625] }, //WEAPON_USP45
{ "sprites/640hud1.spr_0.tga", [0,0.17578125] }, //WEAPON_GLOCK18
{ "sprites/640hud10.spr_0.tga", [0,0.3515625] }, //WEAPON_DEAGLE
{ "sprites/640hud12.spr_0.tga", [0,0.3515625] }, //WEAPON_P228
{ "sprites/640hud14.spr_0.tga", [0,0.3515625] }, //WEAPON_ELITES
{ "sprites/640hud14.spr_0.tga", [0,0.52734375] }, //WEAPON_FIVESEVEN
{ "sprites/640hud1.spr_0.tga", [0,0.52734375] }, //WEAPON_M3
{ "sprites/640hud12.spr_0.tga", [0,0.52734375] }, //WEAPON_XM1014
{ "sprites/640hud1.spr_0.tga", [0,0.703125] }, //WEAPON_MP5
{ "sprites/640hud12.spr_0.tga", [0,0] }, //WEAPON_P90
{ "sprites/640hud16.spr_0.tga", [0,0] }, //WEAPON_UMP45
{ "sprites/640hud14.spr_0.tga", [0,0] }, //WEAPON_MAC10
{ "sprites/640hud5.spr_0.tga", [0,0] }, //WEAPON_TMP
{ "sprites/640hud10.spr_0.tga", [0,0] }, //WEAPON_AK47
{ "sprites/640hud10.spr_0.tga", [0,0.17578125] }, //WEAPON_SG552
{ "sprites/640hud2.spr_0.tga", [0,0.17578125] }, //WEAPON_M4A1
{ "sprites/640hud14.spr_0.tga", [0,0.17578125] }, //WEAPON_AUG
{ "sprites/640hud12.spr_0.tga", [0,0.17578125] }, //WEAPON_SCOUT
{ "sprites/640hud2.spr_0.tga", [0,0.52734375] }, //WEAPON_AWP
{ "sprites/640hud2.spr_0.tga", [0,0.703125] }, //WEAPON_G3SG1
{ "sprites/640hud14.spr_0.tga", [0,0.703125] }, //WEAPON_SG550
{ "sprites/640hud3.spr_0.tga", [0,0] }, //WEAPON_PARA
{ "sprites/640hud1.spr_0.tga", [0,0] }, //WEAPON_C4BOMB
{ "sprites/640hud3.spr_0.tga", [0,0.3515625] }, //WEAPON_FLASHBANG
{ "sprites/640hud3.spr_0.tga", [0,0.17578125] }, //WEAPON_HEGRENADE
{ "sprites/640hud3.spr_0.tga", [0,0.52734375] } //WEAPON_SMOKEGRENADE
};
vector vHUDSlotNumPos[ 4 ] = {
'0.65625 0.28125 0', // 1 PRIMARY
'0.734375 0.28125 0', // 2 SECONDARY
'0.8125 0.28125 0', // 3 MELEE
'0.65625 0.359375 0', // 4 GRENADE
vector vHUDSlotNumPos[4] = {
[0.65625,0.28125], // 1 PRIMARY
[0.734375,0.28125], // 2 SECONDARY
[0.8125,0.28125], // 3 MELEE
[0.65625,0.359375] // 4 GRENADE
};
/*
@ -74,82 +74,83 @@ HUD_DrawWeaponSelect_NextItem
Checks and returns the next slot with a weapon in it
=================
*/
float HUD_DrawWeaponSelect_NextItem( float fSlot ) {
if ( fSlot == SLOT_PRIMARY ) {
if ( getstatf( STAT_SLOT_SECONDARY ) ) {
float HUD_DrawWeaponSelect_NextItem(float fSlot)
{
if (fSlot == SLOT_PRIMARY) {
if (getstatf(STAT_SLOT_SECONDARY)) {
return SLOT_SECONDARY;
} else {
return HUD_DrawWeaponSelect_NextItem( SLOT_SECONDARY );
return HUD_DrawWeaponSelect_NextItem(SLOT_SECONDARY);
}
} else if ( fSlot == SLOT_SECONDARY ) {
if ( getstatf( STAT_SLOT_MELEE ) ) {
} else if (fSlot == SLOT_SECONDARY) {
if (getstatf(STAT_SLOT_MELEE)) {
return SLOT_MELEE;
} else {
return HUD_DrawWeaponSelect_NextItem( SLOT_MELEE );
return HUD_DrawWeaponSelect_NextItem(SLOT_MELEE);
}
} else if ( fSlot == SLOT_MELEE ) {
} else if (fSlot == SLOT_MELEE) {
// This happens when we go into the slot for the first time
pSeat->iHUDGrenades = 0;
// Keep this order in order for the selection to work
if ( getstatf( STAT_SLOT_GRENADE ) ) {
pSeat->iHUDGrenadesSelected = getstatf( STAT_SLOT_GRENADE );
if (getstatf(STAT_SLOT_GRENADE)) {
pSeat->iHUDGrenadesSelected = getstatf(STAT_SLOT_GRENADE);
pSeat->iHUDGrenades++;
}
if ( getstati_punf( STAT_ITEM_SMOKEGRENADE ) ) {
if (getstati_punf(STAT_ITEM_SMOKEGRENADE)) {
pSeat->iHUDGrenadesSelected = WEAPON_SMOKEGRENADE;
pSeat->iHUDGrenades++;
}
if ( getstati_punf( STAT_ITEM_FLASHBANG ) ) {
if (getstati_punf(STAT_ITEM_FLASHBANG)) {
pSeat->iHUDGrenadesSelected = WEAPON_FLASHBANG;
pSeat->iHUDGrenades++;
}
if ( getstati_punf( STAT_ITEM_HEGRENADE ) ) {
if (getstati_punf(STAT_ITEM_HEGRENADE)) {
pSeat->iHUDGrenadesSelected = WEAPON_HEGRENADE;
pSeat->iHUDGrenades++;
}
// If we have any grenades, proceed with that slot
if ( pSeat->iHUDGrenades ) {
if (pSeat->iHUDGrenades) {
return SLOT_GRENADE;
} else {
return HUD_DrawWeaponSelect_NextItem( SLOT_GRENADE );
return HUD_DrawWeaponSelect_NextItem(SLOT_GRENADE);
}
} else {
// If we're in the grenade slot, go down
if ( pSeat->iHUDGrenadesSelected == WEAPON_HEGRENADE ) {
if (pSeat->iHUDGrenadesSelected == WEAPON_HEGRENADE) {
// Do we have a flash bang? If yes, select that thing
if ( getstati_punf( STAT_ITEM_FLASHBANG ) ) {
if (getstati_punf(STAT_ITEM_FLASHBANG)) {
pSeat->iHUDGrenadesSelected = WEAPON_FLASHBANG;
return SLOT_GRENADE;
} else if ( getstati_punf( STAT_ITEM_SMOKEGRENADE ) ) {
} else if (getstati_punf(STAT_ITEM_SMOKEGRENADE)) {
pSeat->iHUDGrenadesSelected = WEAPON_SMOKEGRENADE;
return SLOT_GRENADE;
} else if ( getstatf( STAT_SLOT_GRENADE ) ) {
pSeat->iHUDGrenadesSelected = getstatf( STAT_SLOT_GRENADE );
} else if (getstatf(STAT_SLOT_GRENADE)) {
pSeat->iHUDGrenadesSelected = getstatf(STAT_SLOT_GRENADE);
return SLOT_GRENADE;
}
} else if ( pSeat->iHUDGrenadesSelected == WEAPON_FLASHBANG ) {
if ( getstati_punf( STAT_ITEM_SMOKEGRENADE ) ) {
} else if (pSeat->iHUDGrenadesSelected == WEAPON_FLASHBANG) {
if (getstati_punf(STAT_ITEM_SMOKEGRENADE)) {
pSeat->iHUDGrenadesSelected = WEAPON_SMOKEGRENADE;
return SLOT_GRENADE;
} else if ( getstatf( STAT_SLOT_GRENADE ) ) {
pSeat->iHUDGrenadesSelected = getstatf( STAT_SLOT_GRENADE );
} else if (getstatf(STAT_SLOT_GRENADE)) {
pSeat->iHUDGrenadesSelected = getstatf(STAT_SLOT_GRENADE);
return SLOT_GRENADE;
}
} else if ( pSeat->iHUDGrenadesSelected == WEAPON_SMOKEGRENADE ) {
if ( getstatf( STAT_SLOT_GRENADE ) ) {
pSeat->iHUDGrenadesSelected = getstatf( STAT_SLOT_GRENADE );
} else if (pSeat->iHUDGrenadesSelected == WEAPON_SMOKEGRENADE) {
if (getstatf(STAT_SLOT_GRENADE)) {
pSeat->iHUDGrenadesSelected = getstatf(STAT_SLOT_GRENADE);
return SLOT_GRENADE;
}
}
if ( getstatf( STAT_SLOT_PRIMARY ) ) {
if (getstatf(STAT_SLOT_PRIMARY)) {
return SLOT_PRIMARY;
} else {
return HUD_DrawWeaponSelect_NextItem( SLOT_PRIMARY );
return HUD_DrawWeaponSelect_NextItem(SLOT_PRIMARY);
}
}
}
@ -161,76 +162,77 @@ HUD_DrawWeaponSelect_PreviousItem
Checks and returns the previous slot with a weapon in it
=================
*/
float HUD_DrawWeaponSelect_PreviousItem( float fSlot ) {
if ( fSlot == SLOT_PRIMARY ) {
float HUD_DrawWeaponSelect_PreviousItem(float fSlot)
{
if (fSlot == SLOT_PRIMARY) {
pSeat->iHUDGrenades = 0;
// Keep this order in order for the selection to work
if ( getstati_punf( STAT_ITEM_HEGRENADE ) ) {
if (getstati_punf(STAT_ITEM_HEGRENADE)) {
pSeat->iHUDGrenadesSelected = WEAPON_HEGRENADE;
pSeat->iHUDGrenades++;
}
if ( getstati_punf( STAT_ITEM_FLASHBANG ) ) {
if (getstati_punf(STAT_ITEM_FLASHBANG)) {
pSeat->iHUDGrenadesSelected = WEAPON_FLASHBANG;
pSeat->iHUDGrenades++;
}
if ( getstati_punf( STAT_ITEM_SMOKEGRENADE ) ) {
if (getstati_punf(STAT_ITEM_SMOKEGRENADE)) {
pSeat->iHUDGrenadesSelected = WEAPON_SMOKEGRENADE;
pSeat->iHUDGrenades++;
}
if ( getstatf( STAT_SLOT_GRENADE ) ) {
pSeat->iHUDGrenadesSelected = getstatf( STAT_SLOT_GRENADE );
if (getstatf(STAT_SLOT_GRENADE)) {
pSeat->iHUDGrenadesSelected = getstatf(STAT_SLOT_GRENADE);
pSeat->iHUDGrenades++;
}
if ( pSeat->iHUDGrenades ) {
if (pSeat->iHUDGrenades) {
return SLOT_GRENADE;
} else {
return HUD_DrawWeaponSelect_PreviousItem( SLOT_GRENADE );
return HUD_DrawWeaponSelect_PreviousItem(SLOT_GRENADE);
}
} else if ( fSlot == SLOT_SECONDARY ) {
if ( getstatf( STAT_SLOT_PRIMARY ) ) {
} else if (fSlot == SLOT_SECONDARY) {
if (getstatf(STAT_SLOT_PRIMARY)) {
return SLOT_PRIMARY;
} else {
return HUD_DrawWeaponSelect_PreviousItem( SLOT_PRIMARY );
return HUD_DrawWeaponSelect_PreviousItem(SLOT_PRIMARY);
}
} else if ( fSlot == SLOT_MELEE ) {
if ( getstatf( STAT_SLOT_SECONDARY ) ) {
} else if (fSlot == SLOT_MELEE) {
if (getstatf(STAT_SLOT_SECONDARY)) {
return SLOT_SECONDARY;
} else {
return HUD_DrawWeaponSelect_PreviousItem( SLOT_SECONDARY );
return HUD_DrawWeaponSelect_PreviousItem(SLOT_SECONDARY);
}
} else {
if ( pSeat->iHUDGrenadesSelected == getstatf( STAT_SLOT_GRENADE ) ) {
if ( getstati_punf( STAT_ITEM_SMOKEGRENADE ) ) {
if (pSeat->iHUDGrenadesSelected == getstatf(STAT_SLOT_GRENADE)) {
if (getstati_punf(STAT_ITEM_SMOKEGRENADE)) {
pSeat->iHUDGrenadesSelected = WEAPON_SMOKEGRENADE;
return SLOT_GRENADE;
} else if ( getstati_punf( STAT_ITEM_FLASHBANG ) ) {
} else if (getstati_punf(STAT_ITEM_FLASHBANG)) {
pSeat->iHUDGrenadesSelected = WEAPON_FLASHBANG;
return SLOT_GRENADE;
} else if ( getstati_punf( STAT_ITEM_HEGRENADE ) ) {
} else if (getstati_punf(STAT_ITEM_HEGRENADE)) {
pSeat->iHUDGrenadesSelected = WEAPON_HEGRENADE;
return SLOT_GRENADE;
}
}
if ( pSeat->iHUDGrenadesSelected == WEAPON_SMOKEGRENADE ) {
if ( getstati_punf( STAT_ITEM_FLASHBANG ) ) {
if (pSeat->iHUDGrenadesSelected == WEAPON_SMOKEGRENADE) {
if (getstati_punf(STAT_ITEM_FLASHBANG)) {
pSeat->iHUDGrenadesSelected = WEAPON_FLASHBANG;
return SLOT_GRENADE;
} else if ( getstati_punf( STAT_ITEM_HEGRENADE ) ) {
} else if (getstati_punf(STAT_ITEM_HEGRENADE)) {
pSeat->iHUDGrenadesSelected = WEAPON_HEGRENADE;
return SLOT_GRENADE;
}
} else if ( pSeat->iHUDGrenadesSelected == WEAPON_FLASHBANG ) {
if ( getstati_punf( STAT_ITEM_HEGRENADE ) ) {
} else if (pSeat->iHUDGrenadesSelected == WEAPON_FLASHBANG) {
if (getstati_punf(STAT_ITEM_HEGRENADE)) {
pSeat->iHUDGrenadesSelected = WEAPON_HEGRENADE;
return SLOT_GRENADE;
}
}
if ( getstatf( STAT_SLOT_MELEE ) ) {
if (getstatf(STAT_SLOT_MELEE)) {
return SLOT_MELEE;
} else {
return HUD_DrawWeaponSelect_PreviousItem( SLOT_MELEE );
return HUD_DrawWeaponSelect_PreviousItem(SLOT_MELEE);
}
}
}
@ -242,13 +244,14 @@ HUD_DrawWeaponSelect_GetWeapon
Returns what weapon is in which slot
=================
*/
float HUD_DrawWeaponSelect_GetWeapon( float fSlot ) {
if ( fSlot == SLOT_PRIMARY ) {
return getstatf( STAT_SLOT_PRIMARY );
} else if ( fSlot == SLOT_SECONDARY ) {
return getstatf( STAT_SLOT_SECONDARY );
} else if ( fSlot == SLOT_MELEE ) {
return getstatf( STAT_SLOT_MELEE );
float HUD_DrawWeaponSelect_GetWeapon(float fSlot)
{
if (fSlot == SLOT_PRIMARY) {
return getstatf(STAT_SLOT_PRIMARY);
} else if (fSlot == SLOT_SECONDARY) {
return getstatf(STAT_SLOT_SECONDARY);
} else if (fSlot == SLOT_MELEE) {
return getstatf(STAT_SLOT_MELEE);
} else {
return pSeat->iHUDGrenadesSelected;
}
@ -261,17 +264,18 @@ HUD_DrawWeaponSelect_Forward
Called via the invprev command
=================
*/
void HUD_DrawWeaponSelect_Forward( void ) {
if ( !getstatf( STAT_SLOT_MELEE ) && !getstatf( STAT_SLOT_MELEE ) && !getstatf( STAT_SLOT_MELEE ) && !getstatf( STAT_SLOT_MELEE ) ) {
void HUD_DrawWeaponSelect_Forward(void)
{
if (!getstatf(STAT_SLOT_MELEE) && !getstatf(STAT_SLOT_MELEE) && !getstatf(STAT_SLOT_MELEE) && !getstatf(STAT_SLOT_MELEE)) {
return;
}
if ( pSeat->fHUDWeaponSelected == 0 ) {
sound( self, CHAN_ITEM, "common/wpn_hudon.wav", 0.5, ATTN_NONE );
pSeat->fHUDWeaponSelected = HUD_DrawWeaponSelect_GetWeapon( HUD_DrawWeaponSelect_NextItem( wptTable[ getstatf( STAT_ACTIVEWEAPON ) ].iSlot ) );
if (pSeat->fHUDWeaponSelected == 0) {
sound(self, CHAN_ITEM, "common/wpn_hudon.wav", 0.5, ATTN_NONE);
pSeat->fHUDWeaponSelected = HUD_DrawWeaponSelect_GetWeapon(HUD_DrawWeaponSelect_NextItem(wptTable[getstatf(STAT_ACTIVEWEAPON)].iSlot));
} else {
sound( self, CHAN_ITEM, "common/wpn_moveselect.wav", 0.5, ATTN_NONE );
pSeat->fHUDWeaponSelected = HUD_DrawWeaponSelect_GetWeapon( HUD_DrawWeaponSelect_NextItem( wptTable[ pSeat->fHUDWeaponSelected ].iSlot ) );
sound(self, CHAN_ITEM, "common/wpn_moveselect.wav", 0.5, ATTN_NONE);
pSeat->fHUDWeaponSelected = HUD_DrawWeaponSelect_GetWeapon(HUD_DrawWeaponSelect_NextItem(wptTable[pSeat->fHUDWeaponSelected].iSlot));
}
pSeat->fHUDWeaponSelectTime = time + 3;
@ -284,17 +288,18 @@ HUD_DrawWeaponSelect_Back
Called via the invnext command
=================
*/
void HUD_DrawWeaponSelect_Back( void ) {
if ( !getstatf( STAT_SLOT_MELEE ) && !getstatf( STAT_SLOT_MELEE ) && !getstatf( STAT_SLOT_MELEE ) && !getstatf( STAT_SLOT_MELEE ) ) {
void HUD_DrawWeaponSelect_Back(void)
{
if (!getstatf(STAT_SLOT_MELEE) && !getstatf(STAT_SLOT_MELEE) && !getstatf(STAT_SLOT_MELEE) && !getstatf(STAT_SLOT_MELEE)) {
return;
}
if ( pSeat->fHUDWeaponSelected == 0 ) {
sound( self, CHAN_ITEM, "common/wpn_hudon.wav", 0.5, ATTN_NONE );
pSeat->fHUDWeaponSelected = HUD_DrawWeaponSelect_GetWeapon( HUD_DrawWeaponSelect_PreviousItem( wptTable[ getstatf( STAT_ACTIVEWEAPON ) ].iSlot ) );
if (pSeat->fHUDWeaponSelected == 0) {
sound(self, CHAN_ITEM, "common/wpn_hudon.wav", 0.5, ATTN_NONE);
pSeat->fHUDWeaponSelected = HUD_DrawWeaponSelect_GetWeapon(HUD_DrawWeaponSelect_PreviousItem(wptTable[getstatf(STAT_ACTIVEWEAPON)].iSlot));
} else {
sound( self, CHAN_ITEM, "common/wpn_moveselect.wav", 0.5, ATTN_NONE );
pSeat->fHUDWeaponSelected = HUD_DrawWeaponSelect_GetWeapon( HUD_DrawWeaponSelect_PreviousItem( wptTable[ pSeat->fHUDWeaponSelected ].iSlot ) );
sound(self, CHAN_ITEM, "common/wpn_moveselect.wav", 0.5, ATTN_NONE);
pSeat->fHUDWeaponSelected = HUD_DrawWeaponSelect_GetWeapon(HUD_DrawWeaponSelect_PreviousItem(wptTable[pSeat->fHUDWeaponSelected].iSlot));
}
pSeat->fHUDWeaponSelectTime = time + 3;
@ -307,8 +312,9 @@ HUD_DrawWeaponSelect_Num
Draws the numbers 1-4 on the selection display
=================
*/
void HUD_DrawWeaponSelect_Num( vector vPos, float fValue ) {
drawsubpic( vPos, '20 20', "sprites/640hud7.spr_0.tga", vHUDSlotNumPos[ fValue ], [ 0.078125, 0.078125 ], vHUDColor, 1, DRAWFLAG_ADDITIVE );
void HUD_DrawWeaponSelect_Num(vector vPos, float fValue)
{
drawsubpic(vPos, [20,20], "sprites/640hud7.spr_0.tga", vHUDSlotNumPos[fValue], [0.078125, 0.078125], vHUDColor, 1, DRAWFLAG_ADDITIVE);
}
/*
@ -318,56 +324,57 @@ HUD_DrawWeaponSelect
Drawn every frame through HUD.c
=================
*/
void HUD_DrawWeaponSelect( void ) {
if ( pSeat->fHUDWeaponSelectTime < time ) {
if ( pSeat->fHUDWeaponSelected ) {
sound( self, CHAN_ITEM, "common/wpn_hudoff.wav", 0.5, ATTN_NONE );
void HUD_DrawWeaponSelect(void)
{
if (pSeat->fHUDWeaponSelectTime < time) {
if (pSeat->fHUDWeaponSelected) {
sound(self, CHAN_ITEM, "common/wpn_hudoff.wav", 0.5, ATTN_NONE);
pSeat->fHUDWeaponSelected = 0;
}
return;
}
vector vSelectPos = vVideoMins + '160 12 0';
vector vSelectPos = vVideoMins + [160,12];
for ( int i = 0; i < 4; i++ ) {
HUD_DrawWeaponSelect_Num( vSelectPos, i );
for (int i = 0; i < 4; i++) {
HUD_DrawWeaponSelect_Num(vSelectPos, i);
// Again, grenades are treated seperately
if ( i == SLOT_GRENADE ) {
if ( wptTable[ pSeat->fHUDWeaponSelected ].iSlot == SLOT_GRENADE ) {
if ( getstati_punf( STAT_ITEM_HEGRENADE ) ) {
drawsubpic( vSelectPos + '0 20', '170 45', wpSymbolTable[ WEAPON_HEGRENADE ].sSprite, wpSymbolTable[ WEAPON_HEGRENADE ].vOrigin, [ 0.6640625, 0.17578125 ], vHUDColor, 1, DRAWFLAG_ADDITIVE );
if ( pSeat->iHUDGrenadesSelected == WEAPON_HEGRENADE ) {
drawsubpic( vSelectPos + '0 20', '170 45', "sprites/640hud3.spr_0.tga", '0 0.703125', [ 0.6640625, 0.17578125 ], vHUDColor, 1, DRAWFLAG_ADDITIVE );
if (i == SLOT_GRENADE) {
if (wptTable[pSeat->fHUDWeaponSelected].iSlot == SLOT_GRENADE) {
if (getstati_punf(STAT_ITEM_HEGRENADE)) {
drawsubpic(vSelectPos + [0,20], [170,45], wpSymbolTable[WEAPON_HEGRENADE].sSprite, wpSymbolTable[WEAPON_HEGRENADE].vOrigin, [0.6640625, 0.17578125], vHUDColor, 1, DRAWFLAG_ADDITIVE);
if (pSeat->iHUDGrenadesSelected == WEAPON_HEGRENADE) {
drawsubpic(vSelectPos + [0,20], [170,45], "sprites/640hud3.spr_0.tga", [0,0.703125], [0.6640625, 0.17578125], vHUDColor, 1, DRAWFLAG_ADDITIVE);
}
vSelectPos_y += 45;
}
if ( getstati_punf( STAT_ITEM_FLASHBANG ) ) {
drawsubpic( vSelectPos + '0 20', '170 45', wpSymbolTable[ WEAPON_FLASHBANG ].sSprite, wpSymbolTable[ WEAPON_FLASHBANG ].vOrigin, [ 0.6640625, 0.17578125 ], vHUDColor, 1, DRAWFLAG_ADDITIVE );
if ( pSeat->iHUDGrenadesSelected == WEAPON_FLASHBANG ) {
drawsubpic( vSelectPos + '0 20', '170 45', "sprites/640hud3.spr_0.tga", '0 0.703125', [ 0.6640625, 0.17578125 ], vHUDColor, 1, DRAWFLAG_ADDITIVE );
if (getstati_punf(STAT_ITEM_FLASHBANG)) {
drawsubpic(vSelectPos + [0,20], [170,45], wpSymbolTable[WEAPON_FLASHBANG].sSprite, wpSymbolTable[WEAPON_FLASHBANG].vOrigin, [0.6640625, 0.17578125], vHUDColor, 1, DRAWFLAG_ADDITIVE);
if (pSeat->iHUDGrenadesSelected == WEAPON_FLASHBANG) {
drawsubpic(vSelectPos + [0,20], [170,45], "sprites/640hud3.spr_0.tga", [0,0.703125], [0.6640625, 0.17578125], vHUDColor, 1, DRAWFLAG_ADDITIVE);
}
vSelectPos_y += 45;
}
if ( getstati_punf( STAT_ITEM_SMOKEGRENADE ) ) {
drawsubpic( vSelectPos + '0 20', '170 45', wpSymbolTable[ WEAPON_SMOKEGRENADE ].sSprite, wpSymbolTable[ WEAPON_SMOKEGRENADE ].vOrigin, [ 0.6640625, 0.17578125 ], vHUDColor, 1, DRAWFLAG_ADDITIVE );
if ( pSeat->iHUDGrenadesSelected == WEAPON_SMOKEGRENADE ) {
drawsubpic( vSelectPos + '0 20', '170 45', "sprites/640hud3.spr_0.tga", '0 0.703125', [ 0.6640625, 0.17578125 ], vHUDColor, 1, DRAWFLAG_ADDITIVE );
if (getstati_punf(STAT_ITEM_SMOKEGRENADE)) {
drawsubpic(vSelectPos + [0,20], [170,45], wpSymbolTable[WEAPON_SMOKEGRENADE].sSprite, wpSymbolTable[WEAPON_SMOKEGRENADE].vOrigin, [0.6640625, 0.17578125], vHUDColor, 1, DRAWFLAG_ADDITIVE);
if (pSeat->iHUDGrenadesSelected == WEAPON_SMOKEGRENADE) {
drawsubpic(vSelectPos + [0,20], [170,45], "sprites/640hud3.spr_0.tga", [0,0.703125], [0.6640625, 0.17578125], vHUDColor, 1, DRAWFLAG_ADDITIVE);
}
vSelectPos_y += 45;
}
if ( getstatf( STAT_SLOT_GRENADE ) ) {
drawsubpic( vSelectPos + '0 20', '170 45', wpSymbolTable[ getstatf( STAT_SLOT_GRENADE ) ].sSprite, wpSymbolTable[ getstatf( STAT_SLOT_GRENADE ) ].vOrigin, [ 0.6640625, 0.17578125 ], vHUDColor, 1, DRAWFLAG_ADDITIVE );
if ( pSeat->iHUDGrenadesSelected == getstatf( STAT_SLOT_GRENADE ) ) {
drawsubpic( vSelectPos + '0 20', '170 45', "sprites/640hud3.spr_0.tga", '0 0.703125', [ 0.6640625, 0.17578125 ], vHUDColor, 1, DRAWFLAG_ADDITIVE );
if (getstatf(STAT_SLOT_GRENADE)) {
drawsubpic(vSelectPos + [0,20], [170,45], wpSymbolTable[getstatf(STAT_SLOT_GRENADE)].sSprite, wpSymbolTable[getstatf(STAT_SLOT_GRENADE)].vOrigin, [0.6640625, 0.17578125], vHUDColor, 1, DRAWFLAG_ADDITIVE);
if (pSeat->iHUDGrenadesSelected == getstatf(STAT_SLOT_GRENADE)) {
drawsubpic(vSelectPos + [0,20], [170,45], "sprites/640hud3.spr_0.tga", [0,0.703125], [0.6640625, 0.17578125], vHUDColor, 1, DRAWFLAG_ADDITIVE);
}
vSelectPos_y += 45;
}
}
} else {
if ( wptTable[ pSeat->fHUDWeaponSelected ].iSlot == i ) {
drawsubpic( vSelectPos + '0 20', '170 45', wpSymbolTable[ pSeat->fHUDWeaponSelected ].sSprite, wpSymbolTable[ pSeat->fHUDWeaponSelected ].vOrigin, [ 0.6640625, 0.17578125 ], vHUDColor, 1, DRAWFLAG_ADDITIVE );
drawsubpic( vSelectPos + '0 20', '170 45', "sprites/640hud3.spr_0.tga", '0 0.703125', [ 0.6640625, 0.17578125 ], vHUDColor, 1, DRAWFLAG_ADDITIVE );
if (wptTable[pSeat->fHUDWeaponSelected].iSlot == i) {
drawsubpic(vSelectPos + [0,20], [170,45], wpSymbolTable[pSeat->fHUDWeaponSelected].sSprite, wpSymbolTable[pSeat->fHUDWeaponSelected].vOrigin, [0.6640625, 0.17578125], vHUDColor, 1, DRAWFLAG_ADDITIVE);
drawsubpic(vSelectPos + [0,20], [170,45], "sprites/640hud3.spr_0.tga", [0,0.703125], [0.6640625, 0.17578125], vHUDColor, 1, DRAWFLAG_ADDITIVE);
vSelectPos_x += 170;
} else {
vSelectPos_x += 20;
@ -385,10 +392,11 @@ HUD_DrawWeaponSelect_Trigger
Called by CSQC_Input_Frame when conditions are met
=================
*/
void HUD_DrawWeaponSelect_Trigger( void ) {
fHUDWeaponLast = getstatf( STAT_ACTIVEWEAPON );
sendevent( "PlayerSwitchWeapon", "f", pSeat->fHUDWeaponSelected );
sound( self, CHAN_ITEM, "common/wpn_select.wav", 0.5, ATTN_NONE );
void HUD_DrawWeaponSelect_Trigger(void)
{
fHUDWeaponLast = getstatf(STAT_ACTIVEWEAPON);
sendevent("PlayerSwitchWeapon", "f", pSeat->fHUDWeaponSelected);
sound(self, CHAN_ITEM, "common/wpn_select.wav", 0.5f, ATTN_NONE);
pSeat->fHUDWeaponSelectTime = 0;
pSeat->fHUDWeaponSelected = 0;
}
@ -400,7 +408,8 @@ HUD_DrawWeaponSelect_Last
Returns the last weapon we've used
=================
*/
void HUD_DrawWeaponSelect_Last( void ) {
sendevent( "PlayerSwitchWeapon", "f", fHUDWeaponLast );
fHUDWeaponLast = getstatf( STAT_ACTIVEWEAPON );
void HUD_DrawWeaponSelect_Last(void)
{
sendevent("PlayerSwitchWeapon", "f", fHUDWeaponLast);
fHUDWeaponLast = getstatf(STAT_ACTIVEWEAPON);
}

View file

@ -231,7 +231,10 @@ void View_DrawViewModel( void ) {
}
makevectors( '0 0 0');
eViewModel.origin = '0 0 -1' + ( v_forward * ( pSeat->fBob * 0.4 ) );
eViewModel.origin = '0 0 -1' + ( v_forward * ( pSeat->fBob * 0.4 ) )
+ ( v_forward * autocvar_v_gunofs[0] )
+ ( v_right * autocvar_v_gunofs[1] )
+ ( v_up * autocvar_v_gunofs[2] );;
// Left-handed weapons
if ( autocvar_v_lefthanded ) {