diff --git a/Source/Client/Defs.h b/Source/Client/Defs.h index 1dfdad3f..11f304e9 100755 --- a/Source/Client/Defs.h +++ b/Source/Client/Defs.h @@ -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; diff --git a/Source/Client/HUDWeaponSelect.c b/Source/Client/HUDWeaponSelect.c index b3422684..a1aca40e 100755 --- a/Source/Client/HUDWeaponSelect.c +++ b/Source/Client/HUDWeaponSelect.c @@ -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); } diff --git a/Source/Client/View.c b/Source/Client/View.c index f69db25b..4b07a548 100755 --- a/Source/Client/View.c +++ b/Source/Client/View.c @@ -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 ) {