Fixed 'use' behaviour across FreeHL and FreeCS, fixing chargers and whatnot. Cleaned up old usage of FL_USERELEASED too. Changed FL_FLASHLIGHT to its bit.
This commit is contained in:
parent
4ed25b810b
commit
02c7eeb671
6 changed files with 40 additions and 40 deletions
|
@ -36,28 +36,27 @@ const vector VEC_PLAYER_CVIEWPOS = [0,0,12];
|
|||
|
||||
// engine reserved flags
|
||||
#define FL_FLY (1<<0)
|
||||
#define FL_SWIM (1<<1)
|
||||
#define FL_SWIM (1<<1)
|
||||
#define FL_GLIMPSE (1<<2)
|
||||
#define FL_CLIENT (1<<3)
|
||||
#define FL_INWATER (1<<4)
|
||||
#define FL_MONSTER (1<<5)
|
||||
#define FL_GODMODE (1<<6)
|
||||
#define FL_NOTARGET (1<<7)
|
||||
#define FL_ITEM (1<<8)
|
||||
#define FL_ONGROUND (1<<9)
|
||||
#define FL_NOTARGET (1<<7)
|
||||
#define FL_ITEM (1<<8)
|
||||
#define FL_ONGROUND (1<<9)
|
||||
#define FL_PARTIALGROUND (1<<10)
|
||||
#define FL_WATERJUMP (1<<11)
|
||||
#define FL_JUMPRELEASED (1<<12)
|
||||
#define FL_JUMPRELEASED (1<<12)
|
||||
#define FL_FINDABLE_NONSOLID (1<<14)
|
||||
#define FLQW_LAGGEDMOVE (1<<16)
|
||||
#define FLQW_LAGGEDMOVE (1<<16)
|
||||
|
||||
// FreeCS flags
|
||||
#define FL_USERELEASED (1<<17)
|
||||
#define FL_REMOVEME (1<<18)
|
||||
#define FL_FLASHLIGHT (1<<17)
|
||||
#define FL_REMOVEME (1<<18)
|
||||
#define FL_CROUCHING (1<<19)
|
||||
#define FL_SEMI_TOGGLED (1<<20)
|
||||
#define FL_SEMI_TOGGLED (1<<20)
|
||||
#define FL_FROZEN (1<<21)
|
||||
#define FL_FLASHLIGHT (1<<21)
|
||||
|
||||
#define clamp(d,min,max) bound(min,d,max)
|
||||
|
||||
|
|
|
@ -16,14 +16,13 @@ class func_healthcharger:CBaseTrigger
|
|||
|
||||
void func_healthcharger::PlayerUse(void)
|
||||
{
|
||||
eActivator.gflags &= ~GF_USE_RELEASED;
|
||||
|
||||
eActivator.gflags |= GF_USE_RELEASED;
|
||||
if (m_flDelay > time) {
|
||||
return;
|
||||
}
|
||||
|
||||
eActivator.health = bound(0, eActivator.health += 15, 100);
|
||||
m_flDelay = time + 1.0f;
|
||||
eActivator.health = bound(0, eActivator.health += 1, 100);
|
||||
m_flDelay = time + 0.1f;
|
||||
}
|
||||
|
||||
void func_healthcharger::func_healthcharger(void)
|
||||
|
|
|
@ -16,14 +16,13 @@ class func_recharge:CBaseTrigger
|
|||
|
||||
void func_recharge::PlayerUse(void)
|
||||
{
|
||||
eActivator.gflags &= ~GF_USE_RELEASED;
|
||||
|
||||
eActivator.gflags |= GF_USE_RELEASED;
|
||||
if (m_flDelay > time) {
|
||||
return;
|
||||
}
|
||||
|
||||
eActivator.armor = bound(0, eActivator.armor += 15, 100);
|
||||
m_flDelay = time + 1.0f;
|
||||
eActivator.armor = bound(0, eActivator.armor += 1, 100);
|
||||
m_flDelay = time + 0.1f;
|
||||
}
|
||||
|
||||
void func_recharge::func_recharge(void)
|
||||
|
|
|
@ -191,28 +191,30 @@ Player_UseDown
|
|||
*/
|
||||
void Player_UseDown(void)
|
||||
{
|
||||
if (self.health <= 0) {
|
||||
if (self.health <= 0) {
|
||||
return;
|
||||
} else if (!(self.flags & FL_USERELEASED)) {
|
||||
} else if (!(self.gflags & GF_USE_RELEASED)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
vector vSource;
|
||||
|
||||
makevectors(self.v_angle);
|
||||
vSource = self.origin + self.view_ofs;
|
||||
traceline (vSource, vSource + (v_forward * 64), FALSE, self);
|
||||
|
||||
|
||||
if (trace_ent.PlayerUse) {
|
||||
if ((trace_ent.classname != "c4bomb") && (trace_ent.classname != "func_pushable")) {
|
||||
self.flags = (self.flags - FL_USERELEASED);
|
||||
sound(self, CHAN_ITEM, "common/wpn_select.wav", 0.25, ATTN_IDLE);
|
||||
}
|
||||
|
||||
self.gflags &= ~GF_USE_RELEASED;
|
||||
|
||||
UseWorkaround(trace_ent);
|
||||
|
||||
/* Some entities want to support Use spamming */
|
||||
if (!(self.gflags & GF_USE_RELEASED)) {
|
||||
sound(self, CHAN_ITEM, "common/wpn_select.wav", 0.25, ATTN_IDLE);
|
||||
}
|
||||
} else {
|
||||
sound(self, CHAN_ITEM, "common/wpn_denyselect.wav", 0.25, ATTN_IDLE);
|
||||
self.flags = (self.flags - FL_USERELEASED);
|
||||
self.gflags &= ~GF_USE_RELEASED;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -223,8 +225,8 @@ Player_UseUp
|
|||
*/
|
||||
void Player_UseUp(void)
|
||||
{
|
||||
if (!(self.frags & FL_USERELEASED)) {
|
||||
self.flags = self.flags | FL_USERELEASED;
|
||||
if (!(self.gflags & GF_USE_RELEASED)) {
|
||||
self.gflags |= GF_USE_RELEASED;
|
||||
self.fProgressBar = 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,12 +55,14 @@ void Player_UseDown(void)
|
|||
traceline (vSource, vSource + (v_forward * 64), FALSE, self);
|
||||
|
||||
if (trace_ent.PlayerUse) {
|
||||
if (trace_ent.classname != "func_pushable") {
|
||||
self.gflags &= ~GF_USE_RELEASED;
|
||||
sound(self, CHAN_ITEM, "common/wpn_select.wav", 0.25, ATTN_IDLE);
|
||||
}
|
||||
self.gflags &= ~GF_USE_RELEASED;
|
||||
|
||||
UseWorkaround(trace_ent);
|
||||
|
||||
/* Some entities want to support Use spamming */
|
||||
if (!(self.gflags & GF_USE_RELEASED)) {
|
||||
sound(self, CHAN_ITEM, "common/wpn_select.wav", 0.25, ATTN_IDLE);
|
||||
}
|
||||
} else {
|
||||
sound(self, CHAN_ITEM, "common/wpn_denyselect.wav", 0.25, ATTN_IDLE);
|
||||
self.gflags &= ~GF_USE_RELEASED;
|
||||
|
|
|
@ -53,10 +53,8 @@ var float fBeepTime; // Used for the beeping sounds that last 1.5 seconds
|
|||
var float fDefuseProgress; // Used to track... the progress
|
||||
|
||||
static void WeaponC4BOMB_Use( void ) {
|
||||
if ( cvar( "developer" ) == 0 ) {
|
||||
if ( eActivator.team != TEAM_CT ) {
|
||||
return;
|
||||
}
|
||||
if ( eActivator.team != TEAM_CT ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// On first use, play defusing sound
|
||||
|
@ -85,7 +83,8 @@ static void WeaponC4BOMB_Use( void ) {
|
|||
} else {
|
||||
fDefuseProgress += 0.01;
|
||||
}
|
||||
|
||||
|
||||
eActivator.gflags |= GF_USE_RELEASED;
|
||||
eActivator.fProgressBar = fDefuseProgress * 0.1;
|
||||
|
||||
// Make sure WeaponC4BOMB_Think knows who the user is
|
||||
|
@ -216,7 +215,7 @@ void WeaponC4BOMB_PrimaryFire( void ) {
|
|||
return;
|
||||
}
|
||||
|
||||
traceline( source, source + [0,0,-64], MOVE_OTHERONLY, self );
|
||||
traceline(source, source + [0,0,-64], MOVE_OTHERONLY, self);
|
||||
|
||||
// If we aren't aiming at a place or look in the wrong location... stop it
|
||||
if ( trace_fraction == 1 || self.fInBombZone == FALSE ) {
|
||||
|
|
Loading…
Reference in a new issue