X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fweapons%2Fw_hlac.qc;h=ebcd5d2f179a776918891eaf8e572d0944468cc9;hb=823702246ca2f7b69a926fcf266911bd35f3c1b5;hp=d3dbed2f9c9fd9a88d974d227c378460016570b4;hpb=28931c8069eb1d283f01a26f31ad91d921294d9c;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/weapons/w_hlac.qc b/qcsrc/common/weapons/w_hlac.qc index d3dbed2f9..ebcd5d2f1 100644 --- a/qcsrc/common/weapons/w_hlac.qc +++ b/qcsrc/common/weapons/w_hlac.qc @@ -1,4 +1,4 @@ -#ifdef REGISTER_WEAPON +#ifndef IMPLEMENTATION REGISTER_WEAPON( /* WEP_##id */ HLAC, /* function */ W_HLAC, @@ -45,9 +45,10 @@ REGISTER_WEAPON( #ifdef SVQC HLAC_SETTINGS(WEP_ADD_CVAR, WEP_ADD_PROP) #endif -#else +#endif +#ifdef IMPLEMENTATION #ifdef SVQC -void spawnfunc_weapon_hlac(void) { weapon_defaultspawnfunc(WEP_HLAC); } +void spawnfunc_weapon_hlac(void) { weapon_defaultspawnfunc(WEP_HLAC.m_id); } void W_HLAC_Touch(void) { @@ -56,9 +57,9 @@ void W_HLAC_Touch(void) PROJECTILE_TOUCH; self.event_damage = func_null; - + isprimary = !(self.projectiledeathtype & HITTYPE_SECONDARY); - + RadiusDamage(self, self.realowner, WEP_CVAR_BOTH(hlac, isprimary, damage), WEP_CVAR_BOTH(hlac, isprimary, edgedamage), WEP_CVAR_BOTH(hlac, isprimary, radius), world, world, WEP_CVAR_BOTH(hlac, isprimary, force), self.projectiledeathtype, other); remove(self); @@ -76,8 +77,8 @@ void W_HLAC_Attack(void) if(self.crouch) spread = spread * WEP_CVAR_PRI(hlac, spread_crouchmod); - W_SetupShot(self, FALSE, 3, "weapons/lasergun_fire.wav", CH_WEAPON_A, WEP_CVAR_PRI(hlac, damage)); - pointparticles(particleeffectnum("laser_muzzleflash"), w_shotorg, w_shotdir * 1000, 1); + W_SetupShot(self, false, 3, W_Sound("lasergun_fire"), CH_WEAPON_A, WEP_CVAR_PRI(hlac, damage)); + Send_Effect("laser_muzzleflash", w_shotorg, w_shotdir * 1000, 1); if(!autocvar_g_norecoil) { self.punchangle_x = random() - 0.5; @@ -87,7 +88,7 @@ void W_HLAC_Attack(void) missile = spawn(); missile.owner = missile.realowner = self; missile.classname = "hlacbolt"; - missile.bot_dodge = TRUE; + missile.bot_dodge = true; missile.bot_dodgerating = WEP_CVAR_PRI(hlac, damage); @@ -106,11 +107,11 @@ void W_HLAC_Attack(void) missile.nextthink = time + WEP_CVAR_PRI(hlac, lifetime); missile.flags = FL_PROJECTILE; - missile.projectiledeathtype = WEP_HLAC; + missile.projectiledeathtype = WEP_HLAC.m_id; - CSQCProjectile(missile, TRUE, PROJECTILE_HLAC, TRUE); + CSQCProjectile(missile, true, PROJECTILE_HLAC, true); - other = missile; MUTATOR_CALLHOOK(EditProjectile); + MUTATOR_CALLHOOK(EditProjectile, self, missile); } void W_HLAC_Attack2(void) @@ -124,13 +125,13 @@ void W_HLAC_Attack2(void) if(self.crouch) spread = spread * WEP_CVAR_SEC(hlac, spread_crouchmod); - W_SetupShot(self, FALSE, 3, "weapons/lasergun_fire.wav", CH_WEAPON_A, WEP_CVAR_SEC(hlac, damage)); - pointparticles(particleeffectnum("laser_muzzleflash"), w_shotorg, w_shotdir * 1000, 1); + W_SetupShot(self, false, 3, W_Sound("lasergun_fire"), CH_WEAPON_A, WEP_CVAR_SEC(hlac, damage)); + Send_Effect("laser_muzzleflash", w_shotorg, w_shotdir * 1000, 1); missile = spawn(); missile.owner = missile.realowner = self; missile.classname = "hlacbolt"; - missile.bot_dodge = TRUE; + missile.bot_dodge = true; missile.bot_dodgerating = WEP_CVAR_SEC(hlac, damage); @@ -149,12 +150,12 @@ void W_HLAC_Attack2(void) missile.nextthink = time + WEP_CVAR_SEC(hlac, lifetime); missile.flags = FL_PROJECTILE; - missile.missile_flags = MIF_SPLASH; - missile.projectiledeathtype = WEP_HLAC | HITTYPE_SECONDARY; + missile.missile_flags = MIF_SPLASH; + missile.projectiledeathtype = WEP_HLAC.m_id | HITTYPE_SECONDARY; - CSQCProjectile(missile, TRUE, PROJECTILE_HLAC, TRUE); + CSQCProjectile(missile, true, PROJECTILE_HLAC, true); - other = missile; MUTATOR_CALLHOOK(EditProjectile); + MUTATOR_CALLHOOK(EditProjectile, self, missile); } // weapon frames @@ -203,15 +204,15 @@ void W_HLAC_Attack2_Frame(void) } } -float W_HLAC(float req) +bool W_HLAC(int req) { float ammo_amount; switch(req) { case WR_AIM: { - self.BUTTON_ATCK = bot_aim(WEP_CVAR_PRI(hlac, speed), 0, WEP_CVAR_PRI(hlac, lifetime), FALSE); - return TRUE; + self.BUTTON_ATCK = bot_aim(WEP_CVAR_PRI(hlac, speed), 0, WEP_CVAR_PRI(hlac, lifetime), false); + return true; } case WR_THINK: { @@ -235,39 +236,39 @@ float W_HLAC(float req) weapon_thinkf(WFRAME_FIRE2, WEP_CVAR_SEC(hlac, animtime), w_ready); } } - - return TRUE; + + return true; } case WR_INIT: { - precache_model("models/weapons/g_hlac.md3"); - precache_model("models/weapons/v_hlac.md3"); - precache_model("models/weapons/h_hlac.iqm"); - precache_sound("weapons/lasergun_fire.wav"); - HLAC_SETTINGS(WEP_SKIP_CVAR, WEP_SET_PROP) - return TRUE; + precache_model(W_Model("g_hlac.md3")); + precache_model(W_Model("v_hlac.md3")); + precache_model(W_Model("h_hlac.iqm")); + precache_sound(W_Sound("lasergun_fire")); + HLAC_SETTINGS(WEP_SKIP_CVAR, WEP_SET_PROP); + return true; } case WR_CHECKAMMO1: { ammo_amount = self.WEP_AMMO(HLAC) >= WEP_CVAR_PRI(hlac, ammo); - ammo_amount += self.(weapon_load[WEP_HLAC]) >= WEP_CVAR_PRI(hlac, ammo); + ammo_amount += self.(weapon_load[WEP_HLAC.m_id]) >= WEP_CVAR_PRI(hlac, ammo); return ammo_amount; } case WR_CHECKAMMO2: { ammo_amount = self.WEP_AMMO(HLAC) >= WEP_CVAR_SEC(hlac, ammo); - ammo_amount += self.(weapon_load[WEP_HLAC]) >= WEP_CVAR_SEC(hlac, ammo); + ammo_amount += self.(weapon_load[WEP_HLAC.m_id]) >= WEP_CVAR_SEC(hlac, ammo); return ammo_amount; } case WR_CONFIG: { - HLAC_SETTINGS(WEP_CONFIG_WRITE_CVARS, WEP_CONFIG_WRITE_PROPS) - return TRUE; + HLAC_SETTINGS(WEP_CONFIG_WRITE_CVARS, WEP_CONFIG_WRITE_PROPS); + return true; } case WR_RELOAD: { - W_Reload(min(WEP_CVAR_PRI(hlac, ammo), WEP_CVAR_SEC(hlac, ammo)), "weapons/reload.wav"); - return TRUE; + W_Reload(min(WEP_CVAR_PRI(hlac, ammo), WEP_CVAR_SEC(hlac, ammo)), W_Sound("reload")); + return true; } case WR_SUICIDEMESSAGE: { @@ -278,11 +279,11 @@ float W_HLAC(float req) return WEAPON_HLAC_MURDER; } } - return FALSE; + return false; } #endif #ifdef CSQC -float W_HLAC(float req) +bool W_HLAC(int req) { switch(req) { @@ -292,22 +293,22 @@ float W_HLAC(float req) org2 = w_org + w_backoff * 6; pointparticles(particleeffectnum("laser_impact"), org2, w_backoff * 1000, 1); if(!w_issilent) - sound(self, CH_SHOTS, "weapons/laserimpact.wav", VOL_BASE, ATTN_NORM); - - return TRUE; + sound(self, CH_SHOTS, W_Sound("laserimpact"), VOL_BASE, ATTN_NORM); + + return true; } case WR_INIT: { - precache_sound("weapons/laserimpact.wav"); - return TRUE; + precache_sound(W_Sound("laserimpact")); + return true; } case WR_ZOOMRETICLE: { // no weapon specific image for this weapon - return FALSE; + return false; } } - return FALSE; + return false; } #endif #endif