X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Ft_quake3.qc;h=7f8cb82921ee3ae2a3b068ac331bbff891a13949;hb=9a199db20227fab8dd8d446f2ef59f74b8178f06;hp=11bf880e60bf102b1d992c25698e8ff471973fbd;hpb=fafdede133b68205760773e29f89b52e304034aa;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/t_quake3.qc b/qcsrc/server/t_quake3.qc index 11bf880e6..7f8cb8292 100644 --- a/qcsrc/server/t_quake3.qc +++ b/qcsrc/server/t_quake3.qc @@ -22,9 +22,9 @@ void spawnfunc_ammo_lightning() { spawnfunc_item_cells(); } void spawnfunc_weapon_plasmagun() { spawnfunc_weapon_hagar(); } void spawnfunc_ammo_cells() { spawnfunc_item_rockets(); } -// Rail -> Rifle -void spawnfunc_weapon_railgun() { spawnfunc_weapon_sniperrifle(); } -void spawnfunc_ammo_slugs() { spawnfunc_item_bullets(); } +// Rail -> Nex +void spawnfunc_weapon_railgun() { spawnfunc_weapon_nex(); } +void spawnfunc_ammo_slugs() { spawnfunc_item_cells(); } // BFG -> Crylink void spawnfunc_weapon_bfg() { spawnfunc_weapon_crylink(); } @@ -122,11 +122,58 @@ void spawnfunc_target_give() //void spawnfunc_item_health_mega() /* handled in t_items.qc */ //void spawnfunc_item_invis() /* not supported */ //void spawnfunc_item_regen() /* not supported */ -void spawnfunc_team_CTF_redflag() { spawnfunc_item_flag_team1(); } -void spawnfunc_team_CTF_blueflag() { spawnfunc_item_flag_team2(); } -void spawnfunc_team_CTF_redplayer() { spawnfunc_info_player_team1(); } -void spawnfunc_team_CTF_blueplayer() { spawnfunc_info_player_team2(); } -void spawnfunc_team_CTF_redspawn() { spawnfunc_info_player_team1(); } -void spawnfunc_team_CTF_bluespawn() { spawnfunc_info_player_team2(); } + +// CTF spawnfuncs handled in mutators/gamemode_ctf.qc now void spawnfunc_item_flight() { spawnfunc_item_jetpack(); } + +.float notteam; +.float notsingle; +.float notfree; +.float notq3a; +.float notta; +.string gametype; +float DoesQ3ARemoveThisEntity() +{ + // Q3 style filters (DO NOT USE, THIS IS COMPAT ONLY) + + if(self.notq3a) + if(!teamplay || g_tdm || g_ctf) + return 1; + + if(self.notta) + if not(!teamplay || g_tdm || g_ctf) + return 1; + + if(self.notsingle) + if(maxclients == 1) + return 1; + + if(self.notteam) + if(teamplay) + return 1; + + if(self.notfree) + if(!teamplay) + return 1; + + if(self.gametype) + { + string gametypename; + // static char *gametypeNames[] = {"ffa", "tournament", "single", "team", "ctf", "oneflag", "obelisk", "harvester", "teamtournament"} + gametypename = "ffa"; + if(teamplay) + gametypename = "team"; + if(g_arena) + gametypename = "tournament"; + if(g_ctf) + gametypename = "ctf"; + if(maxclients == 1) + gametypename = "single"; + // we do not have the other types (oneflag, obelisk, harvester, teamtournament) + if(strstrofs(self.gametype, gametypename, 0) < 0) + return 1; + } + + return 0; +}