X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fweapons%2Fw_porto.qc;h=40964891d2bdcf849702533fd893214fc9c63b9e;hb=c14f2b067c9ab0b4fb8a5b7805c8679be61f1fe0;hp=49fb47e43e9d7626a31ffc4d5a1f3be82d6e5cd2;hpb=8956fac358b1f67619049037f188cbffd6fe1b36;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/weapons/w_porto.qc b/qcsrc/common/weapons/w_porto.qc index 49fb47e43..40964891d 100644 --- a/qcsrc/common/weapons/w_porto.qc +++ b/qcsrc/common/weapons/w_porto.qc @@ -38,6 +38,8 @@ PORTO_SETTINGS(WEP_ADD_CVAR, WEP_ADD_PROP) #endif #else #ifdef SVQC +#include "../triggers/trigger/jumppads.qh" + void spawnfunc_weapon_porto(void) { weapon_defaultspawnfunc(WEP_PORTO); } void W_Porto_Success(void) @@ -81,7 +83,7 @@ void W_Porto_Fail(float failhard) if(vlen(trace_endpos - self.realowner.origin) < 128) { W_ThrowNewWeapon(self.realowner, WEP_PORTO, 0, self.origin, self.velocity); - centerprint(self.realowner, "^1Portal deployment failed.\n\n^2Catch it to try again!"); + Send_Notification(NOTIF_ONE, self.realowner, MSG_CENTER, CENTER_PORTO_FAILED); } } } @@ -122,7 +124,7 @@ void W_Porto_Touch(void) norm = trace_plane_normal; if(trace_ent.iscreature) { - traceline(trace_ent.origin, trace_ent.origin + '0 0 2' * PL_MIN_z, MOVE_WORLDONLY, self); + traceline(trace_ent.origin, trace_ent.origin + '0 0 2' * PL_MIN.z, MOVE_WORLDONLY, self); if(trace_fraction >= 1) return; if(trace_dphitq3surfaceflags & Q3SURFACEFLAG_SLICK || trace_dphitcontents & DPCONTENTS_PLAYERCLIP) @@ -157,7 +159,7 @@ void W_Porto_Touch(void) { sound(self, CH_SHOTS, "porto/create.wav", VOL_BASE, ATTEN_NORM); trace_plane_normal = norm; - centerprint(self.realowner, "^1In^7-portal created."); + Send_Notification(NOTIF_ONE, self.realowner, MSG_CENTER, CENTER_PORTO_CREATED_IN); W_Porto_Success(); } else @@ -174,7 +176,7 @@ void W_Porto_Touch(void) { sound(self, CH_SHOTS, "porto/create.wav", VOL_BASE, ATTEN_NORM); trace_plane_normal = norm; - centerprint(self.realowner, "^4Out^7-portal created."); + Send_Notification(NOTIF_ONE, self.realowner, MSG_CENTER, CENTER_PORTO_CREATED_OUT); W_Porto_Success(); } else @@ -191,10 +193,10 @@ void W_Porto_Touch(void) { sound(self, CH_SHOTS, "porto/create.wav", VOL_BASE, ATTEN_NORM); trace_plane_normal = norm; - centerprint(self.realowner, "^1In^7-portal created."); + Send_Notification(NOTIF_ONE, self.realowner, MSG_CENTER, CENTER_PORTO_CREATED_IN); self.right_vector = self.right_vector - 2 * trace_plane_normal * (self.right_vector * norm); self.angles = vectoangles(self.velocity - 2 * trace_plane_normal * (self.velocity * norm)); - CSQCProjectile(self, TRUE, PROJECTILE_PORTO_BLUE, TRUE); // change type + CSQCProjectile(self, true, PROJECTILE_PORTO_BLUE, true); // change type } else { @@ -212,7 +214,7 @@ void W_Porto_Touch(void) { sound(self, CH_SHOTS, "porto/create.wav", VOL_BASE, ATTEN_NORM); trace_plane_normal = norm; - centerprint(self.realowner, "^4Out^7-portal created."); + Send_Notification(NOTIF_ONE, self.realowner, MSG_CENTER, CENTER_PORTO_CREATED_OUT); W_Porto_Success(); } else @@ -235,7 +237,7 @@ void W_Porto_Attack(float type) { entity gren; - W_SetupShot(self, FALSE, 4, "porto/fire.wav", CH_WEAPON_A, 0); + W_SetupShot(self, false, 4, "porto/fire.wav", CH_WEAPON_A, 0); // always shoot from the eye w_shotdir = v_forward; w_shotorg = self.origin + self.view_ofs + ((w_shotorg - self.origin - self.view_ofs) * v_forward) * v_forward; @@ -247,7 +249,7 @@ void W_Porto_Attack(float type) gren.owner = gren.realowner = self; gren.playerid = self.playerid; gren.classname = "porto"; - gren.bot_dodge = TRUE; + gren.bot_dodge = true; gren.bot_dodgerating = 200; gren.movetype = MOVETYPE_BOUNCEMISSILE; PROJECTILE_MAKETRIGGER(gren); @@ -255,11 +257,11 @@ void W_Porto_Attack(float type) gren.scale = 4; setorigin(gren, w_shotorg); setsize(gren, '0 0 0', '0 0 0'); - + gren.nextthink = time + WEP_CVAR_BOTH(porto, (type <= 0), lifetime); gren.think = W_Porto_Think; gren.touch = W_Porto_Touch; - + if(self.items & IT_STRENGTH) W_SetupProjVelocity_Basic(gren, WEP_CVAR_BOTH(porto, (type <= 0), speed) * autocvar_g_balance_powerup_strength_force, 0); else @@ -277,36 +279,36 @@ void W_Porto_Attack(float type) gren.dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_PLAYERCLIP; if(type > 0) - CSQCProjectile(gren, TRUE, PROJECTILE_PORTO_BLUE, TRUE); + CSQCProjectile(gren, true, PROJECTILE_PORTO_BLUE, true); else - CSQCProjectile(gren, TRUE, PROJECTILE_PORTO_RED, TRUE); + CSQCProjectile(gren, true, PROJECTILE_PORTO_RED, true); - other = gren; MUTATOR_CALLHOOK(EditProjectile); + MUTATOR_CALLHOOK(EditProjectile, self, gren); } -float w_nexball_weapon(float req); // WEAPONTODO -float W_Porto(float req) +bool w_nexball_weapon(int req); // WEAPONTODO +bool W_Porto(int req) { //vector v_angle_save; if(g_nexball) { return w_nexball_weapon(req); } - + switch(req) { case WR_AIM: { - self.BUTTON_ATCK = FALSE; - self.BUTTON_ATCK2 = FALSE; + self.BUTTON_ATCK = false; + self.BUTTON_ATCK2 = false; if(!WEP_CVAR(porto, secondary)) - if(bot_aim(WEP_CVAR_PRI(porto, speed), 0, WEP_CVAR_PRI(porto, lifetime), FALSE)) - self.BUTTON_ATCK = TRUE; - - return TRUE; + if(bot_aim(WEP_CVAR_PRI(porto, speed), 0, WEP_CVAR_PRI(porto, lifetime), false)) + self.BUTTON_ATCK = true; + + return true; } case WR_CONFIG: { - PORTO_SETTINGS(WEP_CONFIG_WRITE_CVARS, WEP_CONFIG_WRITE_PROPS) - return TRUE; + PORTO_SETTINGS(WEP_CONFIG_WRITE_CVARS, WEP_CONFIG_WRITE_PROPS); + return true; } case WR_THINK: { @@ -363,8 +365,8 @@ float W_Porto(float req) weapon_thinkf(WFRAME_FIRE1, WEP_CVAR_PRI(porto, animtime), w_ready); } } - - return TRUE; + + return true; } case WR_INIT: { @@ -378,45 +380,45 @@ float W_Porto(float req) precache_sound("porto/explode.wav"); precache_sound("porto/fire.wav"); precache_sound("porto/unsupported.wav"); - PORTO_SETTINGS(WEP_SKIP_CVAR, WEP_SET_PROP) - return TRUE; + PORTO_SETTINGS(WEP_SKIP_CVAR, WEP_SET_PROP); + return true; } case WR_SETUP: { self.ammo_field = ammo_none; - return TRUE; + return true; } case WR_RESETPLAYER: { self.porto_current = world; - return TRUE; + return true; } } - return FALSE; + return false; } #endif #ifdef CSQC -float W_Porto(float req) +bool W_Porto(int req) { switch(req) { case WR_IMPACTEFFECT: { print("Since when does Porto send DamageInfo?\n"); - return TRUE; + return true; } case WR_INIT: { // nothing to do - return TRUE; + return true; } case WR_ZOOMRETICLE: { // no weapon specific image for this weapon - return FALSE; + return false; } } - return FALSE; + return false; } #endif #endif