From: Mario Date: Thu, 31 Jan 2013 10:44:31 +0000 (+1100) Subject: Merge branch 'master' into mario/mutator_minstagib X-Git-Tag: xonotic-v0.7.0~55^2~3^2~25 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=8ca366ebd48869569fbc18c9cd854b705e04e540;p=xonotic%2Fxonotic-data.pk3dir.git Merge branch 'master' into mario/mutator_minstagib --- 8ca366ebd48869569fbc18c9cd854b705e04e540 diff --cc qcsrc/server/miscfunctions.qc index 974618340,7f8931bff..c303c14da --- a/qcsrc/server/miscfunctions.qc +++ b/qcsrc/server/miscfunctions.qc @@@ -1102,9 -1121,8 +1102,11 @@@ void readlevelcvars(void MUTATOR_ADD(mutator_dodging); if(cvar("g_spawn_near_teammate")) MUTATOR_ADD(mutator_spawn_near_teammate); + if(cvar("g_physical_items")) + MUTATOR_ADD(mutator_physical_items); + if(cvar("g_minstagib")) - MUTATOR_ADD(mutator_minstagib); - ++ MUTATOR_ADD(mutator_minstagib); ++ if(!g_minstagib) { if(cvar("g_invincible_projectiles")) diff --cc qcsrc/server/mutators/mutators.qh index c306c4d39,7fcfd9883..83c8e0143 --- a/qcsrc/server/mutators/mutators.qh +++ b/qcsrc/server/mutators/mutators.qh @@@ -11,8 -11,8 +11,9 @@@ MUTATOR_DECLARATION(mutator_new_toys) MUTATOR_DECLARATION(mutator_nix); MUTATOR_DECLARATION(mutator_rocketflying); MUTATOR_DECLARATION(mutator_spawn_near_teammate); + MUTATOR_DECLARATION(mutator_physical_items); MUTATOR_DECLARATION(mutator_vampire); MUTATOR_DECLARATION(mutator_superspec); +MUTATOR_DECLARATION(mutator_minstagib); MUTATOR_DECLARATION(sandbox); diff --cc qcsrc/server/progs.src index ea05945b9,36936e386..67100fbea --- a/qcsrc/server/progs.src +++ b/qcsrc/server/progs.src @@@ -220,9 -220,9 +220,10 @@@ mutators/mutator_dodging.q mutators/mutator_rocketflying.qc mutators/mutator_vampire.qc mutators/mutator_spawn_near_teammate.qc + mutators/mutator_physical_items.qc mutators/sandbox.qc mutators/mutator_superspec.qc +mutators/mutator_minstagib.qc ../warpzonelib/anglestransform.qc ../warpzonelib/mathlib.qc diff --cc qcsrc/server/t_items.qc index cecca909a,bf70da028..3a0c0d12e --- a/qcsrc/server/t_items.qc +++ b/qcsrc/server/t_items.qc @@@ -1143,8 -1214,79 +1143,16 @@@ void StartItem (string itemmodel, strin Item_Reset(); Net_LinkEntity(self, FALSE, 0, ItemSend); + + // call this hook after everything else has been done + if(MUTATOR_CALLHOOK(Item_Spawn)) + { + startitem_failed = TRUE; + remove(self); + return; + } } -/* replace items in minstagib - * IT_STRENGTH = invisibility - * IT_NAILS = extra lives - * IT_INVINCIBLE = speed - */ -void minstagib_items (float itemid) // will be deleted soon. -{ - float rnd; - self.classname = "minstagib"; // ...? - - // replace rocket launchers and nex guns with ammo cells - if (itemid == IT_CELLS) - { - self.ammo_cells = autocvar_g_minstagib_ammo_drop; - StartItem ("models/items/a_cells.md3", - "misc/itempickup.wav", 45, 0, - "MinstaNex Ammo", IT_CELLS, 0, 0, generic_pickupevalfunc, 100); - return; - } - - // randomize - rnd = random() * 3; - if (rnd <= 1) - itemid = IT_STRENGTH; - else if (rnd <= 2) - itemid = IT_NAILS; - else - itemid = IT_INVINCIBLE; - - // replace with invis - if (itemid == IT_STRENGTH) - { - if(!self.strength_finished) - self.strength_finished = autocvar_g_balance_powerup_strength_time; - StartItem ("models/items/g_strength.md3", - "misc/powerup.wav", g_pickup_respawntime_powerup, g_pickup_respawntimejitter_powerup, - "Invisibility", IT_STRENGTH, 0, FL_POWERUP, generic_pickupevalfunc, BOT_PICKUP_RATING_MID); - } - // replace with extra lives - if (itemid == IT_NAILS) - { - self.max_health = 1; - StartItem ("models/items/g_h100.md3", - "misc/megahealth.wav", g_pickup_respawntime_powerup, g_pickup_respawntimejitter_powerup, - "Extralife", IT_NAILS, 0, FL_POWERUP, generic_pickupevalfunc, BOT_PICKUP_RATING_HIGH); - } - // replace with speed - if (itemid == IT_INVINCIBLE) - { - if(!self.invincible_finished) - self.invincible_finished = autocvar_g_balance_powerup_invincible_time; - StartItem ("models/items/g_invincible.md3", - "misc/powerup_shield.wav", g_pickup_respawntime_powerup, g_pickup_respawntimejitter_powerup, - "Speed", IT_INVINCIBLE, 0, FL_POWERUP, generic_pickupevalfunc, BOT_PICKUP_RATING_MID); - } -} - -float minst_no_auto_cells; -void minst_remove_item (void) { - if(minst_no_auto_cells) - remove(self); -} - float weaponswapping; float internalteam;