Simplify prediction code with the help from upstream SDK changes.

This commit is contained in:
Marco Cawthorne 2021-05-08 17:46:20 +02:00
parent 73c834c3eb
commit 133bf4fec2
38 changed files with 605 additions and 935 deletions

View file

@ -77,10 +77,10 @@ switch (fHeader) {
FX_BreakModel(count, vecPos, vSize, [0,0,0], fStyle);
break;
case EV_IMPACT:
int iType;
impactType_t iType;
vector vOrigin, vNormal;
iType = (int)readbyte();
iType = (impactType_t)readbyte();
vOrigin[0] = readcoord();
vOrigin[1] = readcoord();
vOrigin[2] = readcoord();

View file

@ -18,56 +18,56 @@ static CUIWindow winChooseTeam;
static CUIWindow winCTTeam;
static CUIWindow winTTeam;
void
void
T_Skin1(void)
{
sendevent("GamePlayerSpawn", "f", 1);
winTTeam.Hide();
}
void
void
T_Skin2(void)
{
sendevent("GamePlayerSpawn", "f", 2);
winTTeam.Hide();
}
void
void
T_Skin3(void)
{
sendevent("GamePlayerSpawn", "f", 3);
winTTeam.Hide();
}
void
void
T_Skin4(void)
{
sendevent("GamePlayerSpawn", "f", 4);
winTTeam.Hide();
}
void
void
CT_Skin1(void)
{
sendevent("GamePlayerSpawn", "f", 5);
winCTTeam.Hide();
}
void
void
CT_Skin2(void)
{
sendevent("GamePlayerSpawn", "f", 6);
winCTTeam.Hide();
}
void
void
CT_Skin3(void)
{
sendevent("GamePlayerSpawn", "f", 7);
winCTTeam.Hide();
}
void
void
CT_Skin4(void)
{
sendevent("GamePlayerSpawn", "f", 8);
winCTTeam.Hide();
}
void
void
VGUI_GoSpectator(void)
{
sendevent("GamePlayerSpawn", "f", 0);

View file

@ -936,7 +936,8 @@ CSEv_JoinTeam_f
Event Handling, called by the Client codebase via 'sendevent'
=================
*/
void CSEv_JoinTeam_f(float flChar)
void
CSEv_JoinTeam_f(float flChar)
{
CSMultiplayerRules rules = (CSMultiplayerRules)g_grMode;
player pl = (player)self;
@ -1004,7 +1005,8 @@ void CSEv_JoinTeam_f(float flChar)
}
}
void CSEv_JoinAuto(void)
void
CSEv_JoinAuto(void)
{
int ct_count = 0;
int t_count = 1;

View file

@ -159,7 +159,7 @@ hostage_entity::Pain(void)
Money_AddMoney((base_player)g_dmg_eAttacker, -(g_dmg_iDamage * 25));
}
void
void
hostage_entity::Death(void)
{
WarnAllies();

View file

@ -22,7 +22,8 @@ class item_suit:CBaseTrigger
virtual void(void) Respawn;
};
void item_suit::touch(void)
void
item_suit::touch(void)
{
player pl = (player)other;
@ -48,7 +49,8 @@ void item_suit::touch(void)
}
}
void item_suit::Respawn(void)
void
item_suit::Respawn(void)
{
SetSolid(SOLID_TRIGGER);
SetMovetype(MOVETYPE_TOSS);
@ -60,7 +62,8 @@ void item_suit::Respawn(void)
nextthink = -1;
}
void item_suit::item_suit(void)
void
item_suit::item_suit(void)
{
model = "models/w_kevlar.mdl";
precache_sound("items/tr_kevlar.wav");

View file

@ -19,7 +19,8 @@
UseWorkaround
====================
*/
void UseWorkaround(entity eTarget)
void
UseWorkaround(entity eTarget)
{
eActivator = self;
entity eOldSelf = self;
@ -33,7 +34,8 @@ void UseWorkaround(entity eTarget)
Player_UseDown
====================
*/
void Player_UseDown(void)
void
Player_UseDown(void)
{
if (self.health <= 0) {
return;
@ -67,14 +69,18 @@ void Player_UseDown(void)
Player_UseUp
====================
*/
void Player_UseUp(void) {
void
Player_UseUp(void)
{
if (!(self.flags & FL_USE_RELEASED)) {
self.flags |= FL_USE_RELEASED;
}
}
void Weapons_Draw(void);
void CSEv_PlayerSwitchWeapon_i(int w)
void
CSEv_PlayerSwitchWeapon_i(int w)
{
player pl = (player)self;
pl.activeweapon = w;

View file

@ -1,4 +1,4 @@
void Radio_BroadcastMessage(float fMessage)
void Radio_TeamMessage(float fMessage, float fTeam)
float Radio_DefaultStart(void)
void Radio_StartMessage(void)
void Radio_BroadcastMessage(float fMessage);
void Radio_TeamMessage(float fMessage, float fTeam);
float Radio_DefaultStart(void);
void Radio_StartMessage(void);

View file

@ -24,7 +24,8 @@ Game_InitRules(void)
}
}
void Game_Worldspawn(void)
void
Game_Worldspawn(void)
{
precache_model("models/player/arctic/arctic.mdl");
precache_model("models/player/gign/gign.mdl");

View file

@ -21,7 +21,8 @@ info_player_start
Counter-Terrorist Spawnpoints
=================
*/
void info_player_start(void)
void
info_player_start(void)
{
if (autocvar_fcs_swapteams == TRUE) {
self.classname = "info_player_deathmatch";
@ -36,7 +37,8 @@ info_player_deathmatch
Terrorist Spawnpoints
=================
*/
void info_player_deathmatch(void)
void
info_player_deathmatch(void)
{
if (autocvar_fcs_swapteams == TRUE) {
self.classname = "info_player_start";
@ -45,14 +47,16 @@ void info_player_deathmatch(void)
}
/* Counter-Strike: Source compat */
void info_player_counterterrorist(void)
void
info_player_counterterrorist(void)
{
setorigin(self, self.origin + [0,0,32]);
self.classname = "info_player_start";
info_player_start();
}
void info_player_terrorist(void)
void
info_player_terrorist(void)
{
setorigin(self, self.origin + [0,0,32]);
self.classname = "info_player_deathmatch";
@ -64,6 +68,7 @@ void info_player_terrorist(void)
info_vip_start
=================
*/
void info_vip_start(void)
void
info_vip_start(void)
{
}

View file

@ -15,7 +15,8 @@
*/
#ifdef SERVER
void CSEv_PlayerBuyEquipment_f(float fID) {
void
CSEv_PlayerBuyEquipment_f(float fID) {
/* if (Rules_BuyingPossible() == FALSE) {
return;
}

View file

@ -42,7 +42,7 @@ FX_Impact_Init(void)
#endif
void
FX_Impact(int iType, vector vecPos, vector vNormal)
FX_Impact(impactType_t iType, vector vecPos, vector vNormal)
{
#ifdef SERVER
WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET);

View file

@ -41,154 +41,61 @@ enumflags
PLAYER_CSSHOTTIME
};
enumflags
{
AMMO1_USP45,
AMMO1_GLOCK18,
AMMO1_DEAGLE,
AMMO1_P228,
AMMO1_ELITES,
AMMO1_FIVESEVEN,
AMMO1_M3,
AMMO1_XM1014,
AMMO1_MP5,
AMMO1_P90,
AMMO1_UMP45,
AMMO1_MAC10,
AMMO1_TMP,
AMMO1_AK47,
AMMO1_SG552,
AMMO1_M4A1,
AMMO1_AUG,
AMMO1_SCOUT,
AMMO1_AWP,
AMMO1_G3SG1,
AMMO1_SG550,
AMMO1_PARA,
};
enumflags
{
AMMO2_50AE,
AMMO2_762MM,
AMMO2_556MM,
AMMO2_556MMBOX,
AMMO2_338MAG,
AMMO2_9MM,
AMMO2_BUCKSHOT,
AMMO2_45ACP,
AMMO2_357SIG,
AMMO2_57MM,
AMMO2_HEGRENADE,
AMMO2_FBGRENADE,
AMMO2_SMOKEGRENADE,
};
enumflags
{
AMMO3_MODE_USP45,
AMMO3_MODE_M4A1,
AMMO3_MODE_GLOCK18,
};
noref int input_sequence;
class player:base_player
{
int ingame;
int ammo_50ae;
int ammo_50ae_net;
int ammo_762mm;
int ammo_762mm_net;
int ammo_556mm;
int ammo_556mm_net;
int ammo_556mmbox;
int ammo_556mmbox_net;
int ammo_338mag;
int ammo_338mag_net;
int ammo_9mm;
int ammo_9mm_net;
int ammo_buckshot;
int ammo_buckshot_net;
int ammo_45acp;
int ammo_45acp_net;
int ammo_357sig;
int ammo_357sig_net;
int ammo_57mm;
int ammo_57mm_net;
int ammo_hegrenade;
int ammo_hegrenade_net;
int ammo_fbgrenade;
int ammo_fbgrenade_net;
int ammo_smokegrenade;
int ammo_smokegrenade_net;
PREDICTED_INT(usp45_mag);
PREDICTED_INT(glock18_mag);
PREDICTED_INT(deagle_mag);
PREDICTED_INT(p228_mag);
PREDICTED_INT(elites_mag);
PREDICTED_INT(fiveseven_mag);
PREDICTED_INT(m3_mag);
PREDICTED_INT(xm1014_mag);
PREDICTED_INT(mp5_mag);
PREDICTED_INT(p90_mag);
PREDICTED_INT(ump45_mag);
PREDICTED_INT(mac10_mag);
PREDICTED_INT(tmp_mag);
PREDICTED_INT(ak47_mag);
PREDICTED_INT(sg552_mag);
PREDICTED_INT(m4a1_mag);
PREDICTED_INT(aug_mag);
PREDICTED_INT(scout_mag);
PREDICTED_INT(awp_mag);
PREDICTED_INT(g3sg1_mag);
PREDICTED_INT(sg550_mag);
PREDICTED_INT(para_mag);
/* Weapon specific */
int usp45_mag;
int usp45_mag_net;
int glock18_mag;
int glock18_mag_net;
int deagle_mag;
int deagle_mag_net;
int p228_mag;
int p228_mag_net;
int elites_mag;
int elites_mag_net;
int fiveseven_mag;
int fiveseven_mag_net;
int m3_mag;
int m3_mag_net;
int xm1014_mag;
int xm1014_mag_net;
int mp5_mag;
int mp5_mag_net;
int p90_mag;
int p90_mag_net;
int ump45_mag;
int ump45_mag_net;
int mac10_mag;
int mac10_mag_net;
int tmp_mag;
int tmp_mag_net;
int ak47_mag;
int ak47_mag_net;
int sg552_mag;
int sg552_mag_net;
int m4a1_mag;
int m4a1_mag_net;
int aug_mag;
int aug_mag_net;
int scout_mag;
int scout_mag_net;
int awp_mag;
int awp_mag_net;
int g3sg1_mag;
int g3sg1_mag_net;
int sg550_mag;
int sg550_mag_net;
int para_mag;
int para_mag_net;
PREDICTED_INT(ammo_50ae);
PREDICTED_INT(ammo_762mm);
PREDICTED_INT(ammo_556mm);
PREDICTED_INT(ammo_556mmbox);
PREDICTED_INT(ammo_338mag);
PREDICTED_INT(ammo_9mm);
PREDICTED_INT(ammo_buckshot);
PREDICTED_INT(ammo_45acp);
PREDICTED_INT(ammo_357sig);
PREDICTED_INT(ammo_57mm);
PREDICTED_INT(ammo_hegrenade);
PREDICTED_INT(ammo_fbgrenade);
PREDICTED_INT(ammo_smokegrenade);
int mode_usp45;
int mode_usp45_net;
int mode_m4a1;
int mode_m4a1_net;
int mode_glock18;
int mode_glock18_net;
PREDICTED_INT(mode_usp45);
PREDICTED_INT(mode_m4a1);
PREDICTED_INT(mode_glock18);
PREDICTED_INT(mode_temp);
int mode_temp;
int mode_temp_net;
PREDICTED_INT(cs_shotmultiplier);
PREDICTED_FLOAT(cs_shottime);
int cs_shotmultiplier;
int cs_shotmultiplier_net;
float cs_shottime;
float cs_shottime_net;
float anim_top; float anim_top_net;
float anim_top_time; float anim_top_time_net;
float anim_top_delay; float anim_top_delay_net;
float anim_bottom; float anim_bottom_net;
float anim_bottom_time; float anim_bottom_time_net;
PREDICTED_FLOAT(anim_top);
PREDICTED_FLOAT(anim_top_time);
PREDICTED_FLOAT(anim_top_delay);
PREDICTED_FLOAT(anim_bottom);
PREDICTED_FLOAT(anim_bottom_time);
#ifdef CLIENT
/* External model */
@ -205,7 +112,7 @@ class player:base_player
virtual void(void) draw;
virtual float() predraw;
virtual void(void) postdraw;
virtual void(float) ReceiveEntity;
virtual void(float, float) ReceiveEntity;
virtual void(void) PredictPreFrame;
virtual void(void) PredictPostFrame;
#else
@ -227,65 +134,9 @@ player::ReceiveEntity
=================
*/
void
player::ReceiveEntity(float new)
player::ReceiveEntity(float new, float fl)
{
float fl;
/* seed for our prediction table */
sequence = servercommandframe;
fl = readfloat();
/* HACK: we need to make this more reliable */
if (fl == UPDATE_ALL) {
/* we respawned */
gravity = __NULL__;
}
if (fl & PLAYER_MODELINDEX)
modelindex = readshort();
if (fl & PLAYER_ORIGIN) {
origin[0] = readcoord();
origin[1] = readcoord();
}
if (fl & PLAYER_ORIGIN_Z)
origin[2] = readcoord();
if (fl & PLAYER_ANGLES_X)
v_angle[0] = pitch = readfloat();
if (fl & PLAYER_ANGLES_Y) {
angles[1] = readfloat();
v_angle[1] = readfloat();
}
if (fl & PLAYER_ANGLES_Z) {
angles[2] = readfloat();
v_angle[1] = readfloat();
}
if (fl & PLAYER_VELOCITY) {
velocity[0] = readcoord();
velocity[1] = readcoord();
}
if (fl & PLAYER_VELOCITY_Z)
velocity[2] = readcoord();
if (fl & PLAYER_FLAGS) {
flags = readfloat();
gflags = readfloat();
}
if (fl & PLAYER_WEAPON)
activeweapon = readbyte();
if (fl & PLAYER_ITEMS)
g_items = (__variant)readfloat();
if (fl & PLAYER_HEALTH)
health = readbyte();
if (fl & PLAYER_ARMOR)
armor = readbyte();
if (fl & PLAYER_MOVETYPE)
movetype = readbyte();
if (fl & PLAYER_VIEWOFS)
view_ofs[2] = readfloat();
base_player::ReceiveEntity(new, fl);
/* animation */
if (fl & PLAYER_TOPFRAME) {
@ -370,56 +221,58 @@ so we can roll them back later.
void
player::PredictPreFrame(void)
{
usp45_mag_net = usp45_mag;
glock18_mag_net = glock18_mag;
deagle_mag_net = deagle_mag;
p228_mag_net = p228_mag;
elites_mag_net = elites_mag;
fiveseven_mag_net = fiveseven_mag;
m3_mag_net = m3_mag;
xm1014_mag_net = xm1014_mag;
mp5_mag_net = mp5_mag;
p90_mag_net = p90_mag;
ump45_mag_net = ump45_mag;
mac10_mag_net = mac10_mag;
tmp_mag_net = tmp_mag;
ak47_mag_net = ak47_mag;
sg552_mag_net = sg552_mag;
m4a1_mag_net = m4a1_mag;
aug_mag_net = aug_mag;
scout_mag_net = scout_mag;
awp_mag_net = awp_mag;
g3sg1_mag_net = g3sg1_mag;
sg550_mag_net = sg550_mag;
para_mag_net = para_mag;
base_player::PredictPreFrame();
ammo_50ae_net = ammo_50ae;
ammo_762mm_net = ammo_762mm;
ammo_556mm_net = ammo_556mm;
ammo_556mmbox_net = ammo_556mmbox;
ammo_338mag_net = ammo_338mag;
ammo_9mm_net = ammo_9mm;
ammo_buckshot_net = ammo_buckshot;
ammo_45acp_net = ammo_45acp;
ammo_357sig_net = ammo_357sig;
ammo_57mm_net = ammo_57mm;
ammo_hegrenade_net = ammo_hegrenade;
ammo_fbgrenade_net = ammo_fbgrenade;
ammo_smokegrenade_net = ammo_smokegrenade;
SAVE_STATE(usp45_mag);
SAVE_STATE(glock18_mag);
SAVE_STATE(deagle_mag);
SAVE_STATE(p228_mag);
SAVE_STATE(elites_mag);
SAVE_STATE(fiveseven_mag);
SAVE_STATE(m3_mag);
SAVE_STATE(xm1014_mag);
SAVE_STATE(mp5_mag);
SAVE_STATE(p90_mag);
SAVE_STATE(ump45_mag);
SAVE_STATE(mac10_mag);
SAVE_STATE(tmp_mag);
SAVE_STATE(ak47_mag);
SAVE_STATE(sg552_mag);
SAVE_STATE(m4a1_mag);
SAVE_STATE(aug_mag);
SAVE_STATE(scout_mag);
SAVE_STATE(awp_mag);
SAVE_STATE(g3sg1_mag);
SAVE_STATE(sg550_mag);
SAVE_STATE(para_mag);
mode_usp45_net = mode_usp45;
mode_m4a1_net = mode_m4a1;
mode_glock18_net = mode_glock18;
mode_temp_net = mode_temp;
SAVE_STATE(ammo_50ae);
SAVE_STATE(ammo_762mm);
SAVE_STATE(ammo_556mm);
SAVE_STATE(ammo_556mmbox);
SAVE_STATE(ammo_338mag);
SAVE_STATE(ammo_9mm);
SAVE_STATE(ammo_buckshot);
SAVE_STATE(ammo_45acp);
SAVE_STATE(ammo_357sig);
SAVE_STATE(ammo_57mm);
SAVE_STATE(ammo_hegrenade);
SAVE_STATE(ammo_fbgrenade);
SAVE_STATE(ammo_smokegrenade);
cs_shotmultiplier_net = cs_shotmultiplier;
cs_shottime_net = cs_shottime;
SAVE_STATE(mode_usp45);
SAVE_STATE(mode_m4a1);
SAVE_STATE(mode_glock18);
SAVE_STATE(mode_temp);
anim_top_net = anim_top;
anim_top_delay_net = anim_top_delay;
anim_top_time_net = anim_top_time;
anim_bottom_net = anim_bottom;
anim_bottom_time_net = anim_bottom_time;
SAVE_STATE(cs_shotmultiplier);
SAVE_STATE(cs_shottime);
SAVE_STATE(anim_top);
SAVE_STATE(anim_top_time);
SAVE_STATE(anim_top_delay);
SAVE_STATE(anim_bottom);
SAVE_STATE(anim_bottom_time);
}
/*
@ -432,117 +285,65 @@ Where we roll back our values to the ones last sent/verified by the server.
void
player::PredictPostFrame(void)
{
usp45_mag = usp45_mag_net;
glock18_mag = glock18_mag_net;
deagle_mag = deagle_mag_net;
p228_mag = p228_mag_net;
elites_mag = elites_mag_net;
fiveseven_mag = fiveseven_mag_net;
m3_mag = m3_mag_net;
xm1014_mag = xm1014_mag_net;
mp5_mag = mp5_mag_net;
p90_mag = p90_mag_net;
ump45_mag = ump45_mag_net;
mac10_mag = mac10_mag_net;
tmp_mag = tmp_mag_net;
ak47_mag = ak47_mag_net;
sg552_mag = sg552_mag_net;
m4a1_mag = m4a1_mag_net;
aug_mag = aug_mag_net;
scout_mag = scout_mag_net;
awp_mag = awp_mag_net;
g3sg1_mag = g3sg1_mag_net;
sg550_mag = sg550_mag_net;
para_mag = para_mag_net;
base_player::PredictPostFrame();
ammo_50ae = ammo_50ae_net;
ammo_762mm = ammo_762mm_net;
ammo_556mm = ammo_556mm_net;
ammo_556mmbox = ammo_556mmbox_net;
ammo_338mag = ammo_338mag_net;
ammo_9mm = ammo_9mm_net;
ammo_buckshot = ammo_buckshot_net;
ammo_45acp = ammo_45acp_net;
ammo_357sig = ammo_357sig_net;
ammo_57mm = ammo_57mm_net;
ammo_hegrenade = ammo_hegrenade_net;
ammo_fbgrenade = ammo_fbgrenade_net;
ammo_smokegrenade = ammo_smokegrenade_net;
ROLL_BACK(usp45_mag);
ROLL_BACK(glock18_mag);
ROLL_BACK(deagle_mag);
ROLL_BACK(p228_mag);
ROLL_BACK(elites_mag);
ROLL_BACK(fiveseven_mag);
ROLL_BACK(m3_mag);
ROLL_BACK(xm1014_mag);
ROLL_BACK(mp5_mag);
ROLL_BACK(p90_mag);
ROLL_BACK(ump45_mag);
ROLL_BACK(mac10_mag);
ROLL_BACK(tmp_mag);
ROLL_BACK(ak47_mag);
ROLL_BACK(sg552_mag);
ROLL_BACK(m4a1_mag);
ROLL_BACK(aug_mag);
ROLL_BACK(scout_mag);
ROLL_BACK(awp_mag);
ROLL_BACK(g3sg1_mag);
ROLL_BACK(sg550_mag);
ROLL_BACK(para_mag);
mode_usp45 = mode_usp45_net;
mode_m4a1 = mode_m4a1_net;
mode_glock18 = mode_glock18_net;
mode_temp = mode_temp_net;
ROLL_BACK(ammo_50ae);
ROLL_BACK(ammo_762mm);
ROLL_BACK(ammo_556mm);
ROLL_BACK(ammo_556mmbox);
ROLL_BACK(ammo_338mag);
ROLL_BACK(ammo_9mm);
ROLL_BACK(ammo_buckshot);
ROLL_BACK(ammo_45acp);
ROLL_BACK(ammo_357sig);
ROLL_BACK(ammo_57mm);
ROLL_BACK(ammo_hegrenade);
ROLL_BACK(ammo_fbgrenade);
ROLL_BACK(ammo_smokegrenade);
cs_shotmultiplier = cs_shotmultiplier_net;
cs_shottime = cs_shottime_net;
ROLL_BACK(mode_usp45);
ROLL_BACK(mode_m4a1);
ROLL_BACK(mode_glock18);
ROLL_BACK(mode_temp);
anim_top = anim_top_net;
anim_top_delay = anim_top_delay_net;
anim_top_time = anim_top_time_net;
anim_bottom = anim_bottom_net;
anim_bottom_time = anim_bottom_time_net;
ROLL_BACK(cs_shotmultiplier);
ROLL_BACK(cs_shottime);
ROLL_BACK(anim_top);
ROLL_BACK(anim_top_time);
ROLL_BACK(anim_top_delay);
ROLL_BACK(anim_bottom);
ROLL_BACK(anim_bottom_time);
}
#else
void
player::EvaluateEntity(void)
{
SendFlags |= PLAYER_KEEPALIVE;
if (old_modelindex != modelindex)
SendFlags |= PLAYER_MODELINDEX;
if (old_origin[0] != origin[0])
SendFlags |= PLAYER_ORIGIN;
if (old_origin[1] != origin[1])
SendFlags |= PLAYER_ORIGIN;
if (old_origin[2] != origin[2])
SendFlags |= PLAYER_ORIGIN_Z;
if (old_angles[0] != v_angle[0])
SendFlags |= PLAYER_ANGLES_X;
if (old_angles[1] != angles[1])
SendFlags |= PLAYER_ANGLES_Y;
if (old_angles[2] != angles[2])
SendFlags |= PLAYER_ANGLES_Z;
if (old_velocity[0] != velocity[0])
SendFlags |= PLAYER_VELOCITY;
if (old_velocity[1] != velocity[1])
SendFlags |= PLAYER_VELOCITY;
if (old_velocity[2] != velocity[2])
SendFlags |= PLAYER_VELOCITY_Z;
if (old_flags != flags)
SendFlags |= PLAYER_FLAGS;
if (old_gflags != gflags)
SendFlags |= PLAYER_FLAGS;
if (old_activeweapon != activeweapon)
SendFlags |= PLAYER_WEAPON;
if (old_items != g_items)
SendFlags |= PLAYER_ITEMS;
if (old_health != health)
SendFlags |= PLAYER_HEALTH;
if (old_armor != armor)
SendFlags |= PLAYER_ARMOR;
if (old_movetype != movetype)
SendFlags |= PLAYER_MOVETYPE;
if (old_viewofs != view_ofs[2])
SendFlags |= PLAYER_VIEWOFS;
base_player::EvaluateEntity();
/* animation */
if (anim_bottom_net != anim_bottom || anim_bottom_time != anim_bottom_time_net)
@ -551,160 +352,144 @@ player::EvaluateEntity(void)
SendFlags |= PLAYER_TOPFRAME;
/* ammo 1 type updates */
if (glock18_mag_net != glock18_mag)
if (ATTR_CHANGED(glock18_mag))
SendFlags |= PLAYER_AMMO1;
if (usp45_mag_net != usp45_mag)
else if (ATTR_CHANGED(usp45_mag))
SendFlags |= PLAYER_AMMO1;
if (glock18_mag_net != glock18_mag)
else if (ATTR_CHANGED(glock18_mag))
SendFlags |= PLAYER_AMMO1;
if (deagle_mag_net != deagle_mag)
else if (ATTR_CHANGED(deagle_mag))
SendFlags |= PLAYER_AMMO1;
if (p228_mag_net != p228_mag)
else if (ATTR_CHANGED(p228_mag))
SendFlags |= PLAYER_AMMO1;
if (elites_mag_net != elites_mag)
else if (ATTR_CHANGED(elites_mag))
SendFlags |= PLAYER_AMMO1;
if (fiveseven_mag_net != fiveseven_mag)
else if (ATTR_CHANGED(fiveseven_mag))
SendFlags |= PLAYER_AMMO1;
if (m3_mag_net != m3_mag)
else if (ATTR_CHANGED(m3_mag))
SendFlags |= PLAYER_AMMO1;
if (xm1014_mag_net != xm1014_mag)
else if (ATTR_CHANGED(xm1014_mag))
SendFlags |= PLAYER_AMMO1;
if (mp5_mag_net != mp5_mag)
else if (ATTR_CHANGED(mp5_mag))
SendFlags |= PLAYER_AMMO1;
if (p90_mag_net != p90_mag)
else if (ATTR_CHANGED(p90_mag))
SendFlags |= PLAYER_AMMO1;
if (ump45_mag_net != ump45_mag)
else if (ATTR_CHANGED(ump45_mag))
SendFlags |= PLAYER_AMMO1;
if (mac10_mag_net != mac10_mag)
else if (ATTR_CHANGED(mac10_mag))
SendFlags |= PLAYER_AMMO1;
if (tmp_mag_net != tmp_mag)
else if (ATTR_CHANGED(tmp_mag))
SendFlags |= PLAYER_AMMO1;
if (ak47_mag_net != ak47_mag)
else if (ATTR_CHANGED(ak47_mag))
SendFlags |= PLAYER_AMMO1;
if (sg552_mag_net != sg552_mag)
else if (ATTR_CHANGED(sg552_mag))
SendFlags |= PLAYER_AMMO1;
if (m4a1_mag_net != m4a1_mag)
else if (ATTR_CHANGED(m4a1_mag))
SendFlags |= PLAYER_AMMO1;
if (aug_mag_net != aug_mag)
else if (ATTR_CHANGED(aug_mag))
SendFlags |= PLAYER_AMMO1;
if (scout_mag_net != scout_mag)
else if (ATTR_CHANGED(scout_mag))
SendFlags |= PLAYER_AMMO1;
if (awp_mag_net != awp_mag)
else if (ATTR_CHANGED(awp_mag))
SendFlags |= PLAYER_AMMO1;
if (g3sg1_mag_net != g3sg1_mag)
else if (ATTR_CHANGED(g3sg1_mag))
SendFlags |= PLAYER_AMMO1;
if (sg550_mag_net != sg550_mag)
else if (ATTR_CHANGED(sg550_mag))
SendFlags |= PLAYER_AMMO1;
if (para_mag_net != para_mag)
else if (ATTR_CHANGED(para_mag))
SendFlags |= PLAYER_AMMO1;
if (ammo_50ae_net != ammo_50ae)
if (ATTR_CHANGED(ammo_50ae))
SendFlags |= PLAYER_AMMO2;
if (ammo_762mm_net != ammo_762mm)
else if (ATTR_CHANGED(ammo_762mm))
SendFlags |= PLAYER_AMMO2;
if (ammo_556mm_net != ammo_556mm)
else if (ATTR_CHANGED(ammo_556mm))
SendFlags |= PLAYER_AMMO2;
if (ammo_556mmbox_net != ammo_556mmbox)
else if (ATTR_CHANGED(ammo_556mmbox))
SendFlags |= PLAYER_AMMO2;
if (ammo_338mag_net != ammo_338mag)
else if (ATTR_CHANGED(ammo_338mag))
SendFlags |= PLAYER_AMMO2;
if (ammo_9mm_net != ammo_9mm)
else if (ATTR_CHANGED(ammo_9mm))
SendFlags |= PLAYER_AMMO2;
if (ammo_buckshot_net != ammo_buckshot)
else if (ATTR_CHANGED(ammo_buckshot))
SendFlags |= PLAYER_AMMO2;
if (ammo_45acp_net != ammo_45acp)
else if (ATTR_CHANGED(ammo_45acp))
SendFlags |= PLAYER_AMMO2;
if (ammo_357sig_net != ammo_357sig)
else if (ATTR_CHANGED(ammo_357sig))
SendFlags |= PLAYER_AMMO2;
if (ammo_57mm_net != ammo_57mm)
else if (ATTR_CHANGED(ammo_57mm))
SendFlags |= PLAYER_AMMO2;
if (ammo_hegrenade_net != ammo_hegrenade)
else if (ATTR_CHANGED(ammo_hegrenade))
SendFlags |= PLAYER_AMMO2;
if (ammo_fbgrenade_net != ammo_fbgrenade)
else if (ATTR_CHANGED(ammo_fbgrenade))
SendFlags |= PLAYER_AMMO2;
if (ammo_smokegrenade_net != ammo_smokegrenade)
else if (ATTR_CHANGED(ammo_smokegrenade))
SendFlags |= PLAYER_AMMO2;
if (mode_usp45_net != mode_usp45)
if (ATTR_CHANGED(mode_usp45))
SendFlags |= PLAYER_AMMO3;
if (mode_m4a1_net != mode_m4a1)
else if (ATTR_CHANGED(mode_m4a1))
SendFlags |= PLAYER_AMMO3;
if (mode_glock18_net != mode_glock18)
else if (ATTR_CHANGED(mode_glock18))
SendFlags |= PLAYER_AMMO3;
if (mode_temp_net != mode_temp)
else if (ATTR_CHANGED(mode_temp))
SendFlags |= PLAYER_AMMO3;
if (cs_shotmultiplier != cs_shotmultiplier_net)
if (ATTR_CHANGED(cs_shotmultiplier))
SendFlags |= PLAYER_CSSHOT;
if (cs_shottime != cs_shottime_net)
if (ATTR_CHANGED(cs_shottime))
SendFlags |= PLAYER_CSSHOTTIME;
old_modelindex = modelindex;
old_origin = origin;
old_angles = angles;
old_angles[0] = v_angle[0];
old_velocity = velocity;
old_flags = flags;
old_gflags = gflags;
old_activeweapon = activeweapon;
old_items = g_items;
old_health = health;
old_armor = armor;
old_movetype = movetype;
old_viewofs = view_ofs[2];
old_baseframe = baseframe;
old_frame = frame;
SAVE_STATE(usp45_mag);
SAVE_STATE(glock18_mag);
SAVE_STATE(deagle_mag);
SAVE_STATE(p228_mag);
SAVE_STATE(elites_mag);
SAVE_STATE(fiveseven_mag);
SAVE_STATE(m3_mag);
SAVE_STATE(xm1014_mag);
SAVE_STATE(mp5_mag);
SAVE_STATE(p90_mag);
SAVE_STATE(ump45_mag);
SAVE_STATE(mac10_mag);
SAVE_STATE(tmp_mag);
SAVE_STATE(ak47_mag);
SAVE_STATE(sg552_mag);
SAVE_STATE(m4a1_mag);
SAVE_STATE(aug_mag);
SAVE_STATE(scout_mag);
SAVE_STATE(awp_mag);
SAVE_STATE(g3sg1_mag);
SAVE_STATE(sg550_mag);
SAVE_STATE(para_mag);
glock18_mag_net = glock18_mag;
usp45_mag_net = usp45_mag;
glock18_mag_net = glock18_mag;
deagle_mag_net = deagle_mag;
p228_mag_net = p228_mag;
elites_mag_net = elites_mag;
fiveseven_mag_net = fiveseven_mag;
m3_mag_net = m3_mag;
xm1014_mag_net = xm1014_mag;
mp5_mag_net = mp5_mag;
p90_mag_net = p90_mag;
ump45_mag_net = ump45_mag;
mac10_mag_net = mac10_mag;
tmp_mag_net = tmp_mag;
ak47_mag_net = ak47_mag;
sg552_mag_net = sg552_mag;
m4a1_mag_net = m4a1_mag;
aug_mag_net = aug_mag;
scout_mag_net = scout_mag;
awp_mag_net = awp_mag;
g3sg1_mag_net = g3sg1_mag;
sg550_mag_net = sg550_mag;
para_mag_net = para_mag;
SAVE_STATE(ammo_50ae);
SAVE_STATE(ammo_762mm);
SAVE_STATE(ammo_556mm);
SAVE_STATE(ammo_556mmbox);
SAVE_STATE(ammo_338mag);
SAVE_STATE(ammo_9mm);
SAVE_STATE(ammo_buckshot);
SAVE_STATE(ammo_45acp);
SAVE_STATE(ammo_357sig);
SAVE_STATE(ammo_57mm);
SAVE_STATE(ammo_hegrenade);
SAVE_STATE(ammo_fbgrenade);
SAVE_STATE(ammo_smokegrenade);
ammo_50ae_net = ammo_50ae;
ammo_762mm_net = ammo_762mm;
ammo_556mm_net = ammo_556mm;
ammo_556mmbox_net = ammo_556mmbox;
ammo_338mag_net = ammo_338mag;
ammo_9mm_net = ammo_9mm;
ammo_buckshot_net = ammo_buckshot;
ammo_45acp_net = ammo_45acp;
ammo_357sig_net = ammo_357sig;
ammo_57mm_net = ammo_57mm;
ammo_hegrenade_net = ammo_hegrenade;
ammo_fbgrenade_net = ammo_fbgrenade;
ammo_smokegrenade_net = ammo_smokegrenade;
SAVE_STATE(mode_usp45);
SAVE_STATE(mode_m4a1);
SAVE_STATE(mode_glock18);
SAVE_STATE(mode_temp);
mode_usp45_net = mode_usp45;
mode_m4a1_net = mode_m4a1;
mode_glock18_net = mode_glock18;
mode_temp_net = mode_temp;
SAVE_STATE(cs_shotmultiplier);
SAVE_STATE(cs_shottime);
cs_shotmultiplier_net = cs_shotmultiplier;
cs_shottime_net = cs_shottime;
anim_top_net = anim_top;
anim_top_delay_net = anim_top_delay;
anim_top_time_net = anim_top_time;
anim_bottom_net = anim_bottom;
anim_bottom_time_net = anim_bottom_time;
SAVE_STATE(anim_top);
SAVE_STATE(anim_top_time);
SAVE_STATE(anim_top_delay);
SAVE_STATE(anim_bottom);
SAVE_STATE(anim_bottom_time);
if (g_cs_gamestate != GAME_FREEZE) {
if (progress <= 0.0f) {
@ -743,47 +528,7 @@ player::SendEntity(entity ePEnt, float fChanged)
WriteByte(MSG_ENTITY, ENT_PLAYER);
WriteFloat(MSG_ENTITY, fChanged);
/* really trying to get our moneys worth with 23 bits of mantissa */
if (fChanged & PLAYER_MODELINDEX)
WriteShort(MSG_ENTITY, modelindex);
if (fChanged & PLAYER_ORIGIN) {
WriteCoord(MSG_ENTITY, origin[0]);
WriteCoord(MSG_ENTITY, origin[1]);
}
if (fChanged & PLAYER_ORIGIN_Z)
WriteCoord(MSG_ENTITY, origin[2]);
if (fChanged & PLAYER_ANGLES_X)
WriteFloat(MSG_ENTITY, v_angle[0]);
if (fChanged & PLAYER_ANGLES_Y) {
WriteFloat(MSG_ENTITY, angles[1]);
WriteFloat(MSG_ENTITY, v_angle[1]);
}
if (fChanged & PLAYER_ANGLES_Z) {
WriteFloat(MSG_ENTITY, angles[2]);
WriteFloat(MSG_ENTITY, v_angle[2]);
}
if (fChanged & PLAYER_VELOCITY) {
WriteCoord(MSG_ENTITY, velocity[0]);
WriteCoord(MSG_ENTITY, velocity[1]);
}
if (fChanged & PLAYER_VELOCITY_Z)
WriteCoord(MSG_ENTITY, velocity[2]);
if (fChanged & PLAYER_FLAGS) {
WriteFloat(MSG_ENTITY, flags);
WriteFloat(MSG_ENTITY, gflags);
}
if (fChanged & PLAYER_WEAPON)
WriteByte(MSG_ENTITY, activeweapon);
if (fChanged & PLAYER_ITEMS)
WriteFloat(MSG_ENTITY, (__variant)g_items);
if (fChanged & PLAYER_HEALTH)
WriteByte(MSG_ENTITY, bound(0, health, 255));
if (fChanged & PLAYER_ARMOR)
WriteByte(MSG_ENTITY, armor);
if (fChanged & PLAYER_MOVETYPE)
WriteByte(MSG_ENTITY, movetype);
if (fChanged & PLAYER_VIEWOFS)
WriteFloat(MSG_ENTITY, view_ofs[2]);
base_player::SendEntity(ePEnt, fChanged);
if (fChanged & PLAYER_TOPFRAME) {
WriteByte(MSG_ENTITY, anim_top);

View file

@ -28,7 +28,8 @@ Terrorists only weapon
*/
#ifdef CLIENT
void w_rifle_ejectshell(void)
void
w_rifle_ejectshell(void)
{
static void w_rifle_ejectshell_death(void) {
remove(self);
@ -157,9 +158,6 @@ w_ak47_primary(void)
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
pl.ak47_mag--;
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
int r = (float)input_sequence % 3;
switch (r) {
case 0:
@ -172,16 +170,18 @@ w_ak47_primary(void)
Weapons_ViewAnimation(AK47_SHOOT3);
break;
}
View_AddEvent(w_rifle_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(1);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 36, [accuracy,accuracy], WEAPON_AK47);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_AK47, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_AK47, 0.45f);
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_rifle_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(1);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 36, [accuracy,accuracy], WEAPON_AK47);
Sound_Play(pl, CHAN_WEAPON, "weapon_ak47.fire");
#endif
@ -204,9 +204,9 @@ w_ak47_reload(void)
return;
}
#ifdef CLIENT
Weapons_ViewAnimation(AK47_RELOAD);
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::ak47_mag, player::ammo_762mm, 30);
#endif

View file

@ -124,9 +124,6 @@ w_aug_primary(void)
float accuracy = Cstrike_CalculateAccuracy(pl, 215);
pl.aug_mag--;
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
int r = (float)input_sequence % 3;
switch (r) {
case 0:
@ -139,16 +136,18 @@ w_aug_primary(void)
Weapons_ViewAnimation(AUG_SHOOT3);
break;
}
View_AddEvent(w_rifle_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(1);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 32, [accuracy,accuracy], WEAPON_AUG);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_RIFLE, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_RIFLE, 0.45f);
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_rifle_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(1);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 32, [accuracy,accuracy], WEAPON_AUG);
Sound_Play(pl, CHAN_WEAPON, "weapon_aug.fire");
#endif
@ -190,10 +189,9 @@ w_aug_reload(void)
if (!pl.ammo_762mm) {
return;
}
#ifdef CLIENT
Weapons_ViewAnimation(AUG_RELOAD);
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::aug_mag, player::ammo_762mm, 30);
#endif

View file

@ -27,7 +27,8 @@ Price: $4750
*/
#ifdef CLIENT
void w_sniper_ejectshell(void)
void
w_sniper_ejectshell(void)
{
static void w_sniper_ejectshelldeath(void) {
remove(self);
@ -212,9 +213,6 @@ w_awp_primary(void)
float accuracy = Cstrike_CalculateAccuracy(pl, -1);
pl.awp_mag--;
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
int r = (float)input_sequence % 3;
switch (r) {
case 0:
@ -227,16 +225,19 @@ w_awp_primary(void)
Weapons_ViewAnimation(AWP_SHOOT3);
break;
}
View_AddEvent(w_sniper_ejectshell, 0.9f);
#else
TraceAttack_SetPenetrationPower(2);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 115, [accuracy,accuracy], WEAPON_AWP);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_RIFLE, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_RIFLE, 0.45f);
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_sniper_ejectshell, 0.9f);
#else
TraceAttack_SetPenetrationPower(2);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 115, [accuracy,accuracy], WEAPON_AWP);
Sound_Play(pl, CHAN_WEAPON, "weapon_awp.fire");
#endif
@ -249,19 +250,16 @@ w_awp_reload(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.awp_mag >= 10) {
if (pl.awp_mag >= 10)
return;
}
if (!pl.ammo_338mag) {
if (!pl.ammo_338mag)
return;
}
#ifdef CLIENT
Weapons_ViewAnimation(AWP_RELOAD);
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::awp_mag, player::ammo_338mag, 10);
#endif

View file

@ -27,7 +27,8 @@ Price: $650
*/
#ifdef CLIENT
void w_pistol_ejectshell(void)
void
w_pistol_ejectshell(void)
{
static void w_pistol_ejectshell_death(void) {
remove(self);
@ -144,24 +145,17 @@ w_deagle_primary(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.gflags & GF_SEMI_TOGGLED) {
if (pl.gflags & GF_SEMI_TOGGLED)
return;
}
if (!pl.deagle_mag) {
if (!pl.deagle_mag)
return;
}
Cstrike_ShotMultiplierAdd(pl, 1);
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
pl.deagle_mag--;
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
if (pl.deagle_mag <= 0) {
Weapons_ViewAnimation(DEAGLE_SHOOT_EMPTY);
} else {
@ -175,16 +169,18 @@ w_deagle_primary(void)
break;
}
}
View_AddEvent(w_pistol_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(1);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 54, [accuracy,accuracy], WEAPON_DEAGLE);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_ONEHAND, 0.45f);
else
Animation_PlayerTop(pl, ANIM_SHOOT_ONEHAND, 0.45f);
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_pistol_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(1);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 54, [accuracy,accuracy], WEAPON_DEAGLE);
Sound_Play(pl, CHAN_WEAPON, "weapon_deagle.fire");
#endif
@ -207,10 +203,9 @@ w_deagle_reload(void)
if (!pl.ammo_50ae) {
return;
}
#ifdef CLIENT
Weapons_ViewAnimation(DEAGLE_RELOAD);
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::deagle_mag, player::ammo_50ae, 7);
#endif

View file

@ -27,7 +27,8 @@ Price: $1000
*/
#ifdef CLIENT
void w_elites_ejectshell(int side)
void
w_elites_ejectshell(int side)
{
static void w_elites_ejectshell_death(void) {
remove(self);
@ -57,12 +58,14 @@ void w_elites_ejectshell(int side)
setorigin(eShell, gettaginfo(pSeat->m_eViewModel, pSeat->m_iVMBones + 1 + side));
}
void w_pistol_ejectshell_left(void)
void
w_pistol_ejectshell_left(void)
{
w_elites_ejectshell(1);
}
void w_pistol_ejectshell_right(void)
void
w_pistol_ejectshell_right(void)
{
w_elites_ejectshell(0);
}
@ -181,9 +184,6 @@ w_elites_primary(void)
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
pl.elites_mag--;
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
int r = (float)input_sequence % 5;
if (pl.mode_temp) {
if (pl.elites_mag <= 0) {
@ -207,7 +207,6 @@ w_elites_primary(void)
break;
}
}
View_AddEvent(w_pistol_ejectshell_left, 0.0f);
} else {
if (pl.elites_mag <= 0) {
Weapons_ViewAnimation(ELITES_SHOOT_RIGHTLAST);
@ -230,11 +229,7 @@ w_elites_primary(void)
break;
}
}
View_AddEvent(w_pistol_ejectshell_right, 0.0f);
}
#else
TraceAttack_SetPenetrationPower(0);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 45, [accuracy,accuracy], WEAPON_ELITES);
if (self.flags & FL_CROUCHING) {
if (pl.mode_temp)
@ -248,6 +243,16 @@ w_elites_primary(void)
Animation_PlayerTop(pl, ANIM_SHOOT_DUALPISTOLS, 0.45f);
}
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
if (pl.mode_temp)
View_AddEvent(w_pistol_ejectshell_left, 0.0f);
else
View_AddEvent(w_pistol_ejectshell_right, 0.0f);
#else
TraceAttack_SetPenetrationPower(0);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 45, [accuracy,accuracy], WEAPON_ELITES);
Sound_Play(pl, CHAN_WEAPON, "weapon_elites.fire");
#endif
@ -261,19 +266,16 @@ w_elites_reload(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.elites_mag >= 30) {
if (pl.elites_mag >= 30)
return;
}
if (!pl.ammo_9mm) {
if (!pl.ammo_9mm)
return;
}
#ifdef CLIENT
Weapons_ViewAnimation(ELITES_RELOAD);
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::elites_mag, player::ammo_9mm, 30);
#endif

View file

@ -127,9 +127,6 @@ w_fiveseven_primary(void)
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
pl.fiveseven_mag--;
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
if (pl.fiveseven_mag <= 0) {
Weapons_ViewAnimation(FIVESEVEN_SHOOT_EMPTY);
} else {
@ -143,16 +140,18 @@ w_fiveseven_primary(void)
break;
}
}
View_AddEvent(w_pistol_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(0);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 25, [accuracy,accuracy], WEAPON_FIVESEVEN);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_ONEHAND, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_ONEHAND, 0.45f);
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_pistol_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(0);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 25, [accuracy,accuracy], WEAPON_FIVESEVEN);
Sound_Play(pl, CHAN_WEAPON, "weapon_fiveseven.fire");
#endif
@ -166,19 +165,16 @@ w_fiveseven_reload(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.fiveseven_mag >= 20) {
if (pl.fiveseven_mag >= 20)
return;
}
if (!pl.ammo_57mm) {
if (!pl.ammo_57mm)
return;
}
#ifdef CLIENT
Weapons_ViewAnimation(FIVESEVEN_RELOAD);
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::fiveseven_mag, player::ammo_57mm, 20);
#endif

View file

@ -98,7 +98,8 @@ w_flashbang_draw(void)
}
#ifdef SERVER
void w_flashbang_throw(void)
void
w_flashbang_throw(void)
{
static void flashbang_explode(void)
{

View file

@ -122,9 +122,6 @@ w_g3sg1_primary(void)
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
pl.g3sg1_mag--;
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
int r = (float)input_sequence % 2;
switch (r) {
case 0:
@ -134,16 +131,18 @@ w_g3sg1_primary(void)
Weapons_ViewAnimation(SCOUT_SHOOT2);
break;
}
View_AddEvent(w_rifle_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(2);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 80, [accuracy,accuracy], WEAPON_G3SG1);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_RIFLE, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_RIFLE, 0.45f);
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_rifle_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(2);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 80, [accuracy,accuracy], WEAPON_G3SG1);
Sound_Play(pl, CHAN_WEAPON, "weapon_g3sg1.fire");
#endif
@ -174,19 +173,16 @@ w_g3sg1_reload(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.g3sg1_mag >= 20) {
if (pl.g3sg1_mag >= 20)
return;
}
if (!pl.ammo_762mm) {
if (!pl.ammo_762mm)
return;
}
#ifdef CLIENT
Weapons_ViewAnimation(G3SG1_RELOAD);
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::g3sg1_mag, player::ammo_762mm, 20);
Weapons_UpdateAmmo(pl, pl.g3sg1_mag, pl.ammo_762mm, -1);
#endif

View file

@ -109,6 +109,7 @@ w_glock18_draw(void)
{
player pl = (player)self;
Weapons_SetModel("models/v_glock18.mdl");
int r = (float)input_sequence % 2;
switch (r) {
case 0:
@ -130,16 +131,12 @@ w_glock18_primary(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.gflags & GF_SEMI_TOGGLED) {
if (pl.gflags & GF_SEMI_TOGGLED)
return;
}
if (!pl.glock18_mag) {
if (!pl.glock18_mag)
return;
}
int shotcount = (pl.mode_glock18) ? 3 : 1;
@ -177,15 +174,15 @@ w_glock18_primary(void)
pl.w_attack_next = 0.15f;
}
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_pistol_ejectshell, 0.0f);
#else
if (pl.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_ONEHAND, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_ONEHAND, 0.45f);
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_pistol_ejectshell, 0.0f);
#else
if (pl.mode_glock18) {
Sound_Play(pl, CHAN_WEAPON, "weapon_glock18.burstfire");
} else {
@ -226,17 +223,13 @@ w_glock18_reload(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.glock18_mag >= 20) {
if (pl.glock18_mag >= 20)
return;
}
if (!pl.ammo_9mm) {
if (!pl.ammo_9mm)
return;
}
#ifdef CLIENT
int r = (float)input_sequence % 2;
switch (r) {
case 0:
@ -246,8 +239,8 @@ w_glock18_reload(void)
Weapons_ViewAnimation(GLOCK_RELOAD2);
break;
}
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::glock18_mag, player::ammo_9mm, 20);
Weapons_UpdateAmmo(pl, pl.glock18_mag, pl.ammo_9mm, -1);
#endif

View file

@ -98,7 +98,8 @@ w_hegrenade_draw(void)
}
#ifdef SERVER
void w_hegrenade_throw(void)
void
w_hegrenade_throw(void)
{
static void hegrenade_explode(void)
{

View file

@ -79,10 +79,8 @@ w_knife_deathmsg(void)
void
w_knife_draw(void)
{
#ifdef CLIENT
Weapons_SetModel("models/v_knife.mdl");
Weapons_ViewAnimation(KNIFE_DRAW);
#endif
}
void
@ -95,7 +93,6 @@ w_knife_primary(void)
}
pl.w_attack_next = 0.7f;
#ifdef CLIENT
int r = (float)input_sequence % 2;
switch (r) {
case 0:
@ -105,7 +102,13 @@ w_knife_primary(void)
Weapons_ViewAnimation(KNIFE_SLASH2);
break;
}
#else
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_KNIFE, 1.33f);
else
Animation_PlayerTop(pl, ANIM_SHOOT_KNIFE, 1.33f);
#ifdef SERVER
vector src;
Weapons_MakeVectors();
src = pl.origin + pl.view_ofs;
@ -113,11 +116,6 @@ w_knife_primary(void)
Sound_Play(pl, CHAN_WEAPON, "weapon_knife.miss");
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_KNIFE, 1.33f);
else
Animation_PlayerTop(pl, ANIM_SHOOT_KNIFE, 1.33f);
if (trace_fraction >= 1.0) {
return;
}
@ -145,10 +143,15 @@ w_knife_secondary(void)
}
pl.w_attack_next = 1.2f;
#ifdef CLIENT
Weapons_ViewAnimation(KNIFE_STAB);
#else
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_KNIFE, 1.33f);
else
Animation_PlayerTop(pl, ANIM_SHOOT_KNIFE, 1.33f);
#ifdef SERVER
vector src;
Weapons_MakeVectors();
src = pl.origin + pl.view_ofs;

View file

@ -27,7 +27,8 @@ Price: $1700
*/
#ifdef CLIENT
void w_m3_ejectshell(void)
void
w_m3_ejectshell(void)
{
static void w_m3_ejectshell_death(void) {
remove(self);
@ -243,9 +244,6 @@ w_m3_release(void)
pl.m3_mag++;
pl.ammo_buckshot--;
w_m3_updateammo(pl);
#ifdef SERVER
//Sound_Play(pl, CHAN_WEAPON, "weapon_m3.insertshell");
#endif
if (pl.ammo_buckshot <= 0 || pl.m3_mag >= 8) {
pl.mode_temp = M3S_RELOAD_END;
}

View file

@ -139,15 +139,6 @@ w_m4a1_primary(void)
float accuracy = Cstrike_CalculateAccuracy(pl, 220);
pl.m4a1_mag--;
/* actual firing */
#ifdef CLIENT
if (pl.mode_m4a1 == 1) {
View_SetMuzzleflash(0);
} else {
View_SetMuzzleflash(MUZZLE_RIFLE);
}
/* this stuff is predicted */
int r = (float)input_sequence % 3;
if (pl.mode_m4a1 == 1) {
switch (r) {
@ -174,6 +165,19 @@ w_m4a1_primary(void)
break;
}
}
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_RIFLE, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_RIFLE, 0.45f);
/* actual firing */
#ifdef CLIENT
if (pl.mode_m4a1 == 1) {
View_SetMuzzleflash(0);
} else {
View_SetMuzzleflash(MUZZLE_RIFLE);
}
View_AddEvent(w_rifle_ejectshell, 0.0f);
#else
/* Different sounds without silencer */
@ -185,11 +189,6 @@ w_m4a1_primary(void)
TraceAttack_SetPenetrationPower(1);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [accuracy,accuracy], WEAPON_M4A1);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_RIFLE, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_RIFLE, 0.45f);
#endif
pl.w_attack_next = 0.0875f;
@ -224,23 +223,19 @@ w_m4a1_reload(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.m4a1_mag >= 30) {
if (pl.m4a1_mag >= 30)
return;
}
if (!pl.ammo_556mm) {
if (!pl.ammo_556mm)
return;
}
#ifdef CLIENT
if (pl.mode_m4a1 == 1) {
if (pl.mode_m4a1 == 1)
Weapons_ViewAnimation(M4A1_RELOAD);
} else {
else
Weapons_ViewAnimation(M4A1_RELOADUNSIL);
}
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::m4a1_mag, player::ammo_556mm, 30);
#endif

View file

@ -123,9 +123,6 @@ w_mac10_primary(void)
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
pl.mac10_mag--;
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
int r = (float)input_sequence % 3;
switch (r) {
case 0:
@ -138,16 +135,18 @@ w_mac10_primary(void)
Weapons_ViewAnimation(MAC10_SHOOT3);
break;
}
View_AddEvent(w_pistol_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(0);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 29, [accuracy,accuracy], WEAPON_MAC10);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_MP5, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_MP5, 0.45f);
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_pistol_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(0);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 29, [accuracy,accuracy], WEAPON_MAC10);
Sound_Play(pl, CHAN_WEAPON, "weapon_mac10.fire");
#endif
@ -160,19 +159,16 @@ w_mac10_reload(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.mac10_mag >= 30) {
if (pl.mac10_mag >= 30)
return;
}
if (!pl.ammo_45acp) {
if (!pl.ammo_45acp)
return;
}
#ifdef CLIENT
Weapons_ViewAnimation(MAC10_RELOAD);
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::mac10_mag, player::ammo_45acp, 30);
Weapons_UpdateAmmo(pl, pl.mac10_mag, pl.ammo_45acp, -1);
#endif

View file

@ -112,20 +112,15 @@ w_mp5_primary(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (!pl.mp5_mag) {
if (!pl.mp5_mag)
return;
}
Cstrike_ShotMultiplierAdd(pl, 1);
float accuracy = Cstrike_CalculateAccuracy(pl, 220);
pl.mp5_mag--;
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
int r = (float)input_sequence % 3;
switch (r) {
case 0:
@ -138,16 +133,18 @@ w_mp5_primary(void)
Weapons_ViewAnimation(MP5_SHOOT3);
break;
}
View_AddEvent(w_pistol_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(0);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_MP5);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_MP5, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_MP5, 0.45f);
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_pistol_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(0);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_MP5);
Sound_Play(pl, CHAN_WEAPON, "weapon_mp5.fire");
#endif
@ -160,19 +157,16 @@ w_mp5_reload(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.mp5_mag >= 30) {
if (pl.mp5_mag >= 30)
return;
}
if (!pl.ammo_9mm) {
if (!pl.ammo_9mm)
return;
}
#ifdef CLIENT
Weapons_ViewAnimation(MP5_RELOAD);
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::mp5_mag, player::ammo_9mm, 30);
Weapons_UpdateAmmo(pl, pl.mp5_mag, pl.ammo_9mm, -1);
#endif

View file

@ -113,23 +113,17 @@ w_p228_primary(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.gflags & GF_SEMI_TOGGLED) {
if (pl.gflags & GF_SEMI_TOGGLED)
return;
}
if (!pl.p228_mag) {
if (!pl.p228_mag)
return;
}
Cstrike_ShotMultiplierAdd(pl, 1);
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
pl.p228_mag--;
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
if (pl.p228_mag <= 0) {
Weapons_ViewAnimation(P228_SHOOT_EMPTY);
} else {
@ -146,16 +140,18 @@ w_p228_primary(void)
break;
}
}
View_AddEvent(w_pistol_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(0);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 40, [accuracy,accuracy], WEAPON_P228);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_ONEHAND, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_ONEHAND, 0.45f);
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_pistol_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(0);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 40, [accuracy,accuracy], WEAPON_P228);
Sound_Play(pl, CHAN_WEAPON, "weapon_p228.fire");
#endif
@ -169,19 +165,16 @@ w_p228_reload(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.p228_mag >= 30) {
if (pl.p228_mag >= 30)
return;
}
if (!pl.ammo_357sig) {
if (!pl.ammo_357sig)
return;
}
#ifdef CLIENT
Weapons_ViewAnimation(P228_RELOAD);
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::p228_mag, player::ammo_357sig, 13);
Weapons_UpdateAmmo(pl, pl.p228_mag, pl.ammo_357sig, -1);
#endif

View file

@ -112,20 +112,15 @@ w_p90_primary(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (!pl.p90_mag) {
if (!pl.p90_mag)
return;
}
Cstrike_ShotMultiplierAdd(pl, 1);
float accuracy = Cstrike_CalculateAccuracy(pl, 175);
pl.p90_mag--;
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
int r = (float)input_sequence % 3;
switch (r) {
case 0:
@ -138,16 +133,18 @@ w_p90_primary(void)
Weapons_ViewAnimation(P90_SHOOT3);
break;
}
View_AddEvent(w_pistol_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(0);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_P90);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_MP5, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_MP5, 0.45f);
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_pistol_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(0);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_P90);
Sound_Play(pl, CHAN_WEAPON, "weapon_p90.fire");
#endif
@ -160,19 +157,16 @@ w_p90_reload(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.p90_mag >= 50) {
if (pl.p90_mag >= 50)
return;
}
if (!pl.ammo_57mm) {
if (!pl.ammo_57mm)
return;
}
#ifdef CLIENT
Weapons_ViewAnimation(P90_RELOAD);
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::p90_mag, player::ammo_57mm, 50);
Weapons_UpdateAmmo(pl, pl.p90_mag, pl.ammo_57mm, -1);
#endif

View file

@ -111,20 +111,15 @@ w_para_primary(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (!pl.para_mag) {
if (!pl.para_mag)
return;
}
Cstrike_ShotMultiplierAdd(pl, 1);
float accuracy = Cstrike_CalculateAccuracy(pl, 175);
pl.para_mag--;
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
int r = (float)input_sequence % 2;
switch (r) {
case 0:
@ -134,16 +129,18 @@ w_para_primary(void)
Weapons_ViewAnimation(SCOUT_SHOOT2);
break;
}
View_AddEvent(w_rifle_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(1);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 35, [accuracy,accuracy], WEAPON_PARA);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_PARA, 0.45f);
else
Animation_PlayerTop(pl, ANIM_SHOOT_PARA, 0.45f);
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_rifle_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(1);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 35, [accuracy,accuracy], WEAPON_PARA);
Sound_Play(pl, CHAN_WEAPON, "weapon_para.fire");
#endif
@ -156,19 +153,16 @@ w_para_reload(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.para_mag >= 100) {
if (pl.para_mag >= 100)
return;
}
if (!pl.ammo_556mmbox) {
if (!pl.ammo_556mmbox)
return;
}
#ifdef CLIENT
Weapons_ViewAnimation(PARA_RELOAD);
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::para_mag, player::ammo_556mmbox, 100);
Weapons_UpdateAmmo(pl, pl.para_mag, pl.ammo_556mmbox, -1);
#endif

View file

@ -140,22 +140,21 @@ void
w_scout_secondary(void)
{
player pl = (player)self;
if (pl.w_attack_next) {
if (pl.w_attack_next)
return;
}
#ifdef SSQC
Sound_Play(pl, CHAN_WEAPON, "weapon_awp.zoom");
#endif
/* Simple toggle of fovs */
if (pl.mode_temp == 1) {
if (pl.mode_temp == 1)
pl.mode_temp = 2;
} else if (pl.mode_temp == 2) {
else if (pl.mode_temp == 2)
pl.mode_temp = 0;
} else {
else
pl.mode_temp = 1;
}
pl.w_attack_next = 0.3f;
pl.w_idle_next = 0.0f;
@ -179,9 +178,6 @@ w_scout_primary(void)
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
pl.scout_mag--;
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
int r = (float)input_sequence % 2;
switch (r) {
case 0:
@ -191,16 +187,19 @@ w_scout_primary(void)
Weapons_ViewAnimation(SCOUT_SHOOT2);
break;
}
View_AddEvent(w_rifle_ejectshell, 0.5f);
#else
TraceAttack_SetPenetrationPower(2);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 75, [accuracy,accuracy], WEAPON_SCOUT);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_RIFLE, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_RIFLE, 0.45f);
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_rifle_ejectshell, 0.5f);
#else
TraceAttack_SetPenetrationPower(2);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 75, [accuracy,accuracy], WEAPON_SCOUT);
Sound_Play(pl, CHAN_WEAPON, "weapon_scout.fire");
#endif
@ -213,19 +212,16 @@ w_scout_reload(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.scout_mag >= 10) {
if (pl.scout_mag >= 10)
return;
}
if (!pl.ammo_762mm) {
if (!pl.ammo_762mm)
return;
}
#ifdef CLIENT
Weapons_ViewAnimation(SCOUT_RELOAD);
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::scout_mag, player::ammo_762mm, 10);
Weapons_UpdateAmmo(pl, pl.scout_mag, pl.ammo_762mm, -1);
#endif

View file

@ -111,20 +111,15 @@ w_sg550_primary(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (!pl.sg550_mag) {
if (!pl.sg550_mag)
return;
}
Cstrike_ShotMultiplierAdd(pl, 1);
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
pl.sg550_mag--;
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
int r = (float)input_sequence % 2;
switch (r) {
case 0:
@ -134,16 +129,19 @@ w_sg550_primary(void)
Weapons_ViewAnimation(SCOUT_SHOOT2);
break;
}
View_AddEvent(w_rifle_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(1);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 70, [accuracy,accuracy], WEAPON_SG550);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_RIFLE, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_RIFLE, 0.45f);
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_rifle_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(1);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 70, [accuracy,accuracy], WEAPON_SG550);
Sound_Play(pl, CHAN_WEAPON, "weapon_sg550.fire");
#endif
@ -155,17 +153,18 @@ void
w_sg550_secondary(void)
{
player pl = (player)self;
if (pl.w_attack_next) {
if (pl.w_attack_next)
return;
}
/* Simple toggle of fovs */
if (pl.viewzoom == 1.0f) {
if (pl.viewzoom == 1.0f)
pl.viewzoom = 0.45f;
} else if (pl.viewzoom == 0.45f) {
else if (pl.viewzoom == 0.45f)
pl.viewzoom = 0.1f;
} else {
else
pl.viewzoom = 1.0f;
}
pl.w_attack_next = 0.5f;
}
@ -174,19 +173,16 @@ w_sg550_reload(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.sg550_mag >= 30) {
if (pl.sg550_mag >= 30)
return;
}
if (!pl.ammo_556mm) {
if (!pl.ammo_556mm)
return;
}
#ifdef CLIENT
Weapons_ViewAnimation(SG550_RELOAD);
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::sg550_mag, player::ammo_556mm, 30);
Weapons_UpdateAmmo(pl, pl.sg550_mag, pl.ammo_556mm, -1);
#endif

View file

@ -112,20 +112,15 @@ w_sg552_primary(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (!pl.sg552_mag) {
if (!pl.sg552_mag)
return;
}
Cstrike_ShotMultiplierAdd(pl, 1);
float accuracy = Cstrike_CalculateAccuracy(pl, 220);
pl.sg552_mag--;
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
int r = (float)input_sequence % 3;
switch (r) {
case 0:
@ -138,24 +133,26 @@ w_sg552_primary(void)
Weapons_ViewAnimation(SG552_SHOOT3);
break;
}
View_AddEvent(w_rifle_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(1);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [accuracy,accuracy], WEAPON_SG552);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_RIFLE, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_RIFLE, 0.45f);
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_rifle_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(1);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [accuracy,accuracy], WEAPON_SG552);
Sound_Play(pl, CHAN_WEAPON, "weapon_sg552.fire");
#endif
if (pl.viewzoom == 1.0f) {
if (pl.viewzoom == 1.0f)
pl.w_attack_next = 0.0825f;
} else {
else
pl.w_attack_next = 0.15f;
}
pl.w_idle_next = pl.w_attack_next;
}
@ -163,15 +160,16 @@ void
w_sg552_secondary(void)
{
player pl = (player)self;
if (pl.w_attack_next) {
if (pl.w_attack_next)
return;
}
/* Simple toggle of fovs */
if (pl.viewzoom == 1.0f) {
if (pl.viewzoom == 1.0f)
pl.viewzoom = 0.2f;
} else {
else
pl.viewzoom = 1.0f;
}
pl.w_attack_next = 0.5f;
}
@ -180,19 +178,16 @@ w_sg552_reload(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.sg552_mag >= 30) {
if (pl.sg552_mag >= 30)
return;
}
if (!pl.ammo_556mm) {
if (!pl.ammo_556mm)
return;
}
#ifdef CLIENT
Weapons_ViewAnimation(SG552_RELOAD);
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::sg552_mag, player::ammo_556mm, 30);
Weapons_UpdateAmmo(pl, pl.sg552_mag, pl.ammo_556mm, -1);
#endif

View file

@ -98,7 +98,8 @@ w_smokegrenade_draw(void)
}
#ifdef SERVER
void w_smokegrenade_throw(void)
void
w_smokegrenade_throw(void)
{
static void smokegrenade_explode(void)
{

View file

@ -112,22 +112,15 @@ w_tmp_primary(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
/* ammo check */
if (!pl.tmp_mag) {
if (!pl.tmp_mag)
return;
}
Cstrike_ShotMultiplierAdd(pl, 1);
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
pl.tmp_mag--;
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
int r = (float)input_sequence % 3;
switch (r) {
case 0:
@ -140,16 +133,18 @@ w_tmp_primary(void)
Weapons_ViewAnimation(TMP_SHOOT3);
break;
}
View_AddEvent(w_pistol_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(0);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_TMP);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_MP5, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_MP5, 0.45f);
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_pistol_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(0);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 26, [accuracy,accuracy], WEAPON_TMP);
Sound_Play(pl, CHAN_WEAPON, "weapon_tmp.fire");
#endif
@ -162,19 +157,16 @@ w_tmp_reload(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.tmp_mag >= 30) {
if (pl.tmp_mag >= 30)
return;
}
if (!pl.ammo_9mm) {
if (!pl.ammo_9mm)
return;
}
#ifdef CLIENT
Weapons_ViewAnimation(TMP_RELOAD);
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::tmp_mag, player::ammo_9mm, 30);
Weapons_UpdateAmmo(pl, pl.tmp_mag, pl.ammo_9mm, -1);
#endif

View file

@ -112,14 +112,10 @@ w_ump45_primary(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
/* ammo check */
if (!pl.ump45_mag) {
if (!pl.ump45_mag)
return;
}
Cstrike_ShotMultiplierAdd(pl, 1);
float accuracy = Cstrike_CalculateAccuracy(pl, 210);
@ -138,18 +134,17 @@ w_ump45_primary(void)
break;
}
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_MP5, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_MP5, 0.45f);
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_pistol_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(0);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 30, [accuracy,accuracy], WEAPON_UMP45);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_MP5, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_MP5, 0.45f);
Sound_Play(pl, CHAN_WEAPON, "weapon_ump45.fire");
#endif
@ -162,19 +157,16 @@ w_ump45_reload(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.ump45_mag >= 25) {
if (pl.ump45_mag >= 25)
return;
}
if (!pl.ammo_45acp) {
if (!pl.ammo_45acp)
return;
}
#ifdef CLIENT
Weapons_ViewAnimation(UMP45_RELOAD);
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::ump45_mag, player::ammo_45acp, 25);
Weapons_UpdateAmmo(pl, pl.ump45_mag, pl.ammo_45acp, -1);
#endif

View file

@ -130,18 +130,12 @@ w_usp45_primary(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.gflags & GF_SEMI_TOGGLED) {
if (pl.gflags & GF_SEMI_TOGGLED)
return;
}
/* ammo check */
if (!pl.usp45_mag) {
if (!pl.usp45_mag)
return;
}
Cstrike_ShotMultiplierAdd(pl, 1);
float accuracy = Cstrike_CalculateAccuracy(pl, 200);
@ -183,6 +177,11 @@ w_usp45_primary(void)
}
}
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_ONEHAND, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_ONEHAND, 0.45f);
#ifdef CLIENT
if (pl.mode_usp45 == 1) {
View_SetMuzzleflash(0);
@ -202,11 +201,6 @@ w_usp45_primary(void)
/* actual firing */
TraceAttack_SetPenetrationPower(0);
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 33, [accuracy,accuracy], WEAPON_USP45);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_ONEHAND, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_ONEHAND, 0.45f);
#endif
pl.gflags |= GF_SEMI_TOGGLED;
@ -219,19 +213,17 @@ w_usp45_secondary(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0) {
if (pl.w_attack_next > 0)
return;
}
/* toggle silencer */
pl.mode_usp45 = 1 - pl.mode_usp45;
/* play the animation */
if (pl.mode_usp45) {
if (pl.mode_usp45)
Weapons_ViewAnimation(USP45_ADDSIL);
} else {
else
Weapons_ViewAnimation(USP45_DETACHSIL);
}
pl.w_attack_next = 3.1f;
pl.w_idle_next = pl.w_attack_next;
@ -242,23 +234,19 @@ w_usp45_reload(void)
{
player pl = (player)self;
if (pl.w_attack_next > 0.0) {
if (pl.w_attack_next > 0.0)
return;
}
if (pl.usp45_mag >= 12) {
if (pl.usp45_mag >= 12)
return;
}
if (!pl.ammo_45acp) {
if (!pl.ammo_45acp)
return;
}
#ifdef CLIENT
if (pl.mode_usp45 == 1) {
if (pl.mode_usp45 == 1)
Weapons_ViewAnimation(USP45_RELOAD);
} else {
else
Weapons_ViewAnimation(USP45_RELOADUNSIL);
}
#else
#ifdef SERVER
Weapons_ReloadWeapon(pl, player::usp45_mag, player::ammo_45acp, 12);
#endif

View file

@ -27,7 +27,8 @@ Price: $3000
*/
#ifdef CLIENT
void w_xm1014_ejectshell(void)
void
w_xm1014_ejectshell(void)
{
static void w_xm1014_ejectshell_death(void) {
remove(self);
@ -178,18 +179,17 @@ w_xm1014_primary(void)
break;
}
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_SHOTGUN, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_SHOTGUN, 0.45f);
#ifdef CLIENT
View_SetMuzzleflash(MUZZLE_RIFLE);
View_AddEvent(w_xm1014_ejectshell, 0.0f);
#else
TraceAttack_SetPenetrationPower(0);
TraceAttack_FireBullets(6, pl.origin + pl.view_ofs, 22, [accuracy,accuracy], WEAPON_XM1014);
if (self.flags & FL_CROUCHING)
Animation_PlayerTop(pl, ANIM_SHOOT_SHOTGUN, 0.45f);
else
Animation_PlayerTop(pl, ANIM_CROUCH_SHOOT_SHOTGUN, 0.45f);
Sound_Play(pl, CHAN_WEAPON, "weapon_xm1014.fire");
#endif