X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fcommon%2Fweapons%2Fw_porto.qc;h=e1fb82f8f2bd427a0eb7767e43d5434f5fc7fb7d;hp=a4c3ce2c5f3e253010d29f67d2e30d44e77c4aa5;hb=a6a3b0cebd6928e3678ee4e97de4093f1b61c58b;hpb=15bc5f4be6f3f643d003aeda15c1eefa0b8e24da diff --git a/qcsrc/common/weapons/w_porto.qc b/qcsrc/common/weapons/w_porto.qc index a4c3ce2c5f..e1fb82f8f2 100644 --- a/qcsrc/common/weapons/w_porto.qc +++ b/qcsrc/common/weapons/w_porto.qc @@ -1,16 +1,18 @@ #ifdef REGISTER_WEAPON REGISTER_WEAPON( -/* WEP_##id */ PORTO, -/* function */ W_Porto, -/* ammotype */ ammo_none, -/* impulse */ 0, -/* flags */ WEP_TYPE_OTHER | WEP_FLAG_SUPERWEAPON, -/* rating */ 0, -/* color */ '0.5 0.5 0.5', -/* model */ "porto" , +/* WEP_##id */ PORTO, +/* function */ W_Porto, +/* ammotype */ ammo_none, +/* impulse */ 0, +/* flags */ WEP_TYPE_OTHER | WEP_FLAG_SUPERWEAPON, +/* rating */ 0, +/* color */ '0.5 0.5 0.5', +/* modelname */ "porto", +/* simplemdl */ "foobar", /* crosshair */ "gfx/crosshairporto 0.6", -/* netname */ "porto", -/* fullname */ _("Port-O-Launch") +/* wepimg */ "weaponporto", +/* refname */ "porto", +/* wepname */ _("Port-O-Launch") ); #define PORTO_SETTINGS(w_cvar,w_prop) PORTO_SETTINGS_LIST(w_cvar, w_prop, PORTO, porto) @@ -24,7 +26,8 @@ REGISTER_WEAPON( w_prop(id, sn, float, switchdelay_drop, switchdelay_drop) \ w_prop(id, sn, string, weaponreplace, weaponreplace) \ w_prop(id, sn, float, weaponstart, weaponstart) \ - w_prop(id, sn, float, weaponstartoverride, weaponstartoverride) + w_prop(id, sn, float, weaponstartoverride, weaponstartoverride) \ + w_prop(id, sn, float, weaponthrowable, weaponthrowable) #ifdef SVQC PORTO_SETTINGS(WEP_ADD_CVAR, WEP_ADD_PROP) @@ -35,9 +38,9 @@ PORTO_SETTINGS(WEP_ADD_CVAR, WEP_ADD_PROP) #endif #else #ifdef SVQC -void spawnfunc_weapon_porto (void) { weapon_defaultspawnfunc(WEP_PORTO); } +void spawnfunc_weapon_porto(void) { weapon_defaultspawnfunc(WEP_PORTO); } -void W_Porto_Success (void) +void W_Porto_Success(void) { if(self.realowner == world) { @@ -50,7 +53,7 @@ void W_Porto_Success (void) } string W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vector velo); -void W_Porto_Fail (float failhard) +void W_Porto_Fail(float failhard) { if(self.realowner == world) { @@ -68,7 +71,7 @@ void W_Porto_Fail (float failhard) if(self.cnt < 0 && !failhard && self.realowner.playerid == self.playerid && self.realowner.deadflag == DEAD_NO && !(self.realowner.weapons & WEPSET_PORTO)) { - setsize (self, '-16 -16 0', '16 16 32'); + setsize(self, '-16 -16 0', '16 16 32'); setorigin(self, self.origin + trace_plane_normal); if(move_out_of_solid(self)) { @@ -78,14 +81,14 @@ 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); } } } remove(self); } -void W_Porto_Remove (entity p) +void W_Porto_Remove(entity p) { if(p.porto_current.realowner == p && p.porto_current.classname == "porto") { @@ -97,7 +100,7 @@ void W_Porto_Remove (entity p) } } -void W_Porto_Think (void) +void W_Porto_Think(void) { trace_plane_normal = '0 0 0'; if(self.realowner.playerid != self.playerid) @@ -106,7 +109,7 @@ void W_Porto_Think (void) W_Porto_Fail(0); } -void W_Porto_Touch (void) +void W_Porto_Touch(void) { vector norm; @@ -154,7 +157,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 @@ -171,7 +174,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 @@ -188,7 +191,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); 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 @@ -209,7 +212,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 @@ -228,18 +231,18 @@ void W_Porto_Touch (void) } } -void W_Porto_Attack (float type) +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; //pointparticles(particleeffectnum("grenadelauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1); - gren = spawn (); + gren = spawn(); gren.cnt = type; gren.owner = gren.realowner = self; gren.playerid = self.playerid; @@ -262,7 +265,7 @@ void W_Porto_Attack (float type) else W_SetupProjVelocity_Basic(gren, WEP_CVAR_BOTH(porto, (type <= 0), speed), 0); - gren.angles = vectoangles (gren.velocity); + gren.angles = vectoangles(gren.velocity); gren.flags = FL_PROJECTILE; gren.portal_id = time; @@ -286,7 +289,7 @@ float W_Porto(float req) { //vector v_angle_save; - if (g_nexball) { return w_nexball_weapon(req); } + if(g_nexball) { return w_nexball_weapon(req); } switch(req) { @@ -309,19 +312,19 @@ float W_Porto(float req) { if(WEP_CVAR(porto, secondary)) { - if (self.BUTTON_ATCK) - if (!self.porto_current) - if (!self.porto_forbidden) - if (weapon_prepareattack(0, WEP_CVAR_PRI(porto, refire))) + if(self.BUTTON_ATCK) + if(!self.porto_current) + if(!self.porto_forbidden) + if(weapon_prepareattack(0, WEP_CVAR_PRI(porto, refire))) { W_Porto_Attack(0); weapon_thinkf(WFRAME_FIRE1, WEP_CVAR_PRI(porto, animtime), w_ready); } - if (self.BUTTON_ATCK2) - if (!self.porto_current) - if (!self.porto_forbidden) - if (weapon_prepareattack(1, WEP_CVAR_SEC(porto, refire))) + if(self.BUTTON_ATCK2) + if(!self.porto_current) + if(!self.porto_forbidden) + if(weapon_prepareattack(1, WEP_CVAR_SEC(porto, refire))) { W_Porto_Attack(1); weapon_thinkf(WFRAME_FIRE2, WEP_CVAR_SEC(porto, animtime), w_ready); @@ -351,10 +354,10 @@ float W_Porto(float req) if(self.porto_v_angle_held) makevectors(self.porto_v_angle); // override the previously set angles - if (self.BUTTON_ATCK) - if (!self.porto_current) - if (!self.porto_forbidden) - if (weapon_prepareattack(0, WEP_CVAR_PRI(porto, refire))) + if(self.BUTTON_ATCK) + if(!self.porto_current) + if(!self.porto_forbidden) + if(weapon_prepareattack(0, WEP_CVAR_PRI(porto, refire))) { W_Porto_Attack(-1); weapon_thinkf(WFRAME_FIRE1, WEP_CVAR_PRI(porto, animtime), w_ready); @@ -365,17 +368,17 @@ float W_Porto(float req) } case WR_INIT: { - precache_model ("models/weapons/g_porto.md3"); - precache_model ("models/weapons/v_porto.md3"); - precache_model ("models/weapons/h_porto.iqm"); - precache_model ("models/portal.md3"); - precache_sound ("porto/bounce.wav"); - precache_sound ("porto/create.wav"); - precache_sound ("porto/expire.wav"); - precache_sound ("porto/explode.wav"); - precache_sound ("porto/fire.wav"); - precache_sound ("porto/unsupported.wav"); - PORTO_SETTINGS(WEP_SKIPCVAR, WEP_SET_PROP) + precache_model("models/weapons/g_porto.md3"); + precache_model("models/weapons/v_porto.md3"); + precache_model("models/weapons/h_porto.iqm"); + precache_model("models/portal.md3"); + precache_sound("porto/bounce.wav"); + precache_sound("porto/create.wav"); + precache_sound("porto/expire.wav"); + 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; } case WR_SETUP: @@ -389,7 +392,7 @@ float W_Porto(float req) return TRUE; } } - return TRUE; + return FALSE; } #endif #ifdef CSQC @@ -413,7 +416,7 @@ float W_Porto(float req) return FALSE; } } - return TRUE; + return FALSE; } #endif #endif