From: FruitieX Date: Tue, 30 Nov 2010 14:51:41 +0000 (+0200) Subject: Merge branch 'samual/keepaway' into fruitiex/freezetag_vs_keepaway X-Git-Tag: xonotic-v0.1.0preview~86^2~2^2~1 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=84de176ec42eeaeaa7f9b415b0f2b67adb1aa708;p=xonotic%2Fxonotic-data.pk3dir.git Merge branch 'samual/keepaway' into fruitiex/freezetag_vs_keepaway Conflicts: defaultXonotic.cfg qcsrc/client/hud.qc qcsrc/common/constants.qh qcsrc/common/mapinfo.qc qcsrc/common/mapinfo.qh qcsrc/common/util.qc qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c qcsrc/server/defs.qh qcsrc/server/mutators/mutators.qh qcsrc/server/progs.src qcsrc/server/teamplay.qc --- 84de176ec42eeaeaa7f9b415b0f2b67adb1aa708 diff --cc defaultXonotic.cfg index 13e5b7d67,cd16e4029..8a241f75a --- a/defaultXonotic.cfg +++ b/defaultXonotic.cfg @@@ -616,8 -607,8 +616,10 @@@ set g_cts_respawn_waves set g_cts_respawn_delay 0.25 set g_cts_selfdamage 1 "0 = disable all selfdamage and falldamage in cts" set g_cts_finish_kill_delay 10 "prevent cheating by running back to the start line, and starting out with more speed than otherwise possible" +set g_freezetag_respawn_waves 0 +set g_freezetag_respawn_delay 0.25 + set g_ka_respawn_delay 0 + set g_ka_respawn_waves 0 // overtime seta timelimit_overtime 2 "duration in minutes of one added overtime, added to the timelimit" diff --cc qcsrc/client/hud.qc index 74fa29c6e,d518e7549..f66e41748 --- a/qcsrc/client/hud.qc +++ b/qcsrc/client/hud.qc @@@ -4549,7 -4607,7 +4607,7 @@@ void HUD_ModIcons(void if(!autocvar_hud_panel_modicons && !autocvar__hud_configure) return; - if (gametype != GAME_KEYHUNT && gametype != GAME_CTF && gametype != GAME_NEXBALL && gametype != GAME_CTS && gametype != GAME_RACE && gametype != GAME_CA && gametype != GAME_FREEZETAG && !autocvar__hud_configure) - if (gametype != GAME_KEYHUNT && gametype != GAME_CTF && gametype != GAME_NEXBALL && gametype != GAME_CTS && gametype != GAME_RACE && gametype != GAME_CA && gametype != GAME_KEEPAWAY && !autocvar__hud_configure) ++ if (gametype != GAME_KEYHUNT && gametype != GAME_CTF && gametype != GAME_NEXBALL && gametype != GAME_CTS && gametype != GAME_RACE && gametype != GAME_CA && gametype != GAME_FREEZETAG && gametype != GAME_KEEPAWAY && !autocvar__hud_configure) return; active_panel = HUD_PANEL_MODICONS; @@@ -4586,8 -4644,10 +4644,10 @@@ HUD_Mod_NexBall(pos, mySize); else if(gametype == GAME_CTS || gametype == GAME_RACE) HUD_Mod_Race(pos, mySize); - else if(gametype == GAME_CA) + else if(gametype == GAME_CA || gametype == GAME_FREEZETAG) HUD_Mod_CA(pos, mySize); + else if(gametype == GAME_KEEPAWAY) + HUD_Mod_Keepaway(pos, mySize); } // Draw pressed keys (#11) diff --cc qcsrc/common/constants.qh index 839f70291,576be7c56..b3929c7cd --- a/qcsrc/common/constants.qh +++ b/qcsrc/common/constants.qh @@@ -34,12 -34,12 +34,13 @@@ const float GAME_LMS = 6 const float GAME_ARENA = 7; const float GAME_KEYHUNT = 8; const float GAME_ASSAULT = 9; -const float GAME_ONSLAUGHT = 10; -const float GAME_RACE = 11; -const float GAME_NEXBALL = 12; -const float GAME_CTS = 13; -const float GAME_CA = 14; -const float GAME_KEEPAWAY = 15; +const float GAME_ONSLAUGHT = 10; +const float GAME_RACE = 11; +const float GAME_NEXBALL = 12; +const float GAME_CTS = 13; +const float GAME_CA = 14; +const float GAME_FREEZETAG = 15; ++const float GAME_KEEPAWAY = 16; const float AS_STRING = 1; const float AS_INT = 2; diff --cc qcsrc/common/mapinfo.qc index 895639e54,187bf63be..35a827f90 --- a/qcsrc/common/mapinfo.qc +++ b/qcsrc/common/mapinfo.qc @@@ -407,7 -407,7 +408,8 @@@ string _MapInfo_GetDefault(float t case MAPINFO_TYPE_ONSLAUGHT: return "20 0"; case MAPINFO_TYPE_NEXBALL: return "5 20 0"; case MAPINFO_TYPE_CTS: return "20 0 0"; + case MAPINFO_TYPE_FREEZETAG: return "10 20 0"; + case MAPINFO_TYPE_KEEPAWAY: return "30 20 0"; default: return ""; } } @@@ -528,7 -536,7 +538,8 @@@ string _MapInfo_GetDefaultEx(float t case MAPINFO_TYPE_ONSLAUGHT: return "timelimit=20"; case MAPINFO_TYPE_NEXBALL: return "timelimit=20 pointlimit=5 leadlimit=0"; case MAPINFO_TYPE_CTS: return "timelimit=20 skill=-1"; + case MAPINFO_TYPE_FREEZETAG: return "timelimit=20 pointlimit=10 teams=2 leadlimit=0"; + case MAPINFO_TYPE_KEEPAWAY: return "timelimit=20 pointlimit=30"; default: return ""; } } @@@ -653,7 -661,7 +664,8 @@@ float MapInfo_Type_FromString(string t else if(t == "rc") return MAPINFO_TYPE_RACE; else if(t == "nexball") return MAPINFO_TYPE_NEXBALL; else if(t == "cts") return MAPINFO_TYPE_CTS; + else if(t == "freezetag") return MAPINFO_TYPE_FREEZETAG; + else if(t == "keepaway") return MAPINFO_TYPE_KEEPAWAY; else if(t == "all") return MAPINFO_TYPE_ALL; else return 0; } @@@ -674,7 -682,7 +686,8 @@@ string MapInfo_Type_ToString(float t else if(t == MAPINFO_TYPE_RACE) return "rc"; else if(t == MAPINFO_TYPE_NEXBALL) return "nexball"; else if(t == MAPINFO_TYPE_CTS) return "cts"; + else if(t == MAPINFO_TYPE_FREEZETAG) return "freezetag"; + else if(t == MAPINFO_TYPE_KEEPAWAY) return "keepaway"; else if(t == MAPINFO_TYPE_ALL) return "all"; else return ""; } @@@ -1139,8 -1147,8 +1152,10 @@@ float MapInfo_CurrentGametype( return MAPINFO_TYPE_NEXBALL; else if(cvar("g_cts")) return MAPINFO_TYPE_CTS; + else if(cvar("g_freezetag")) + return MAPINFO_TYPE_FREEZETAG; + else if(cvar("g_keepaway")) + return MAPINFO_TYPE_KEEPAWAY; else return MAPINFO_TYPE_DEATHMATCH; } @@@ -1168,21 -1176,21 +1183,22 @@@ string MapInfo_GetGameTypeCvar(float t { switch(t) { - case MAPINFO_TYPE_DEATHMATCH: return "g_dm"; - case MAPINFO_TYPE_TEAM_DEATHMATCH: return "g_tdm"; - case MAPINFO_TYPE_DOMINATION: return "g_domination"; - case MAPINFO_TYPE_CTF: return "g_ctf"; - case MAPINFO_TYPE_RUNEMATCH: return "g_runematch"; - case MAPINFO_TYPE_LMS: return "g_lms"; - case MAPINFO_TYPE_ARENA: return "g_arena"; - case MAPINFO_TYPE_CA: return "g_ca"; - case MAPINFO_TYPE_KEYHUNT: return "g_kh"; - case MAPINFO_TYPE_ASSAULT: return "g_assault"; - case MAPINFO_TYPE_ONSLAUGHT: return "g_onslaught"; - case MAPINFO_TYPE_RACE: return "g_race"; - case MAPINFO_TYPE_NEXBALL: return "g_nexball"; - case MAPINFO_TYPE_CTS: return "g_cts"; + case MAPINFO_TYPE_DEATHMATCH: return "g_dm"; + case MAPINFO_TYPE_TEAM_DEATHMATCH: return "g_tdm"; + case MAPINFO_TYPE_DOMINATION: return "g_domination"; + case MAPINFO_TYPE_CTF: return "g_ctf"; + case MAPINFO_TYPE_RUNEMATCH: return "g_runematch"; + case MAPINFO_TYPE_LMS: return "g_lms"; + case MAPINFO_TYPE_ARENA: return "g_arena"; + case MAPINFO_TYPE_CA: return "g_ca"; + case MAPINFO_TYPE_KEYHUNT: return "g_kh"; + case MAPINFO_TYPE_ASSAULT: return "g_assault"; + case MAPINFO_TYPE_ONSLAUGHT: return "g_onslaught"; + case MAPINFO_TYPE_RACE: return "g_race"; + case MAPINFO_TYPE_NEXBALL: return "g_nexball"; + case MAPINFO_TYPE_FREEZETAG: return "g_freezetag"; + case MAPINFO_TYPE_CTS: return "g_cts"; + case MAPINFO_TYPE_KEEPAWAY: return "g_keepaway"; default: return ""; } } @@@ -1204,7 -1212,7 +1220,8 @@@ void MapInfo_SwitchGameType(float t cvar_set("g_race", (t == MAPINFO_TYPE_RACE) ? "1" : "0"); cvar_set("g_nexball", (t == MAPINFO_TYPE_NEXBALL) ? "1" : "0"); cvar_set("g_cts", (t == MAPINFO_TYPE_CTS) ? "1" : "0"); + cvar_set("g_freezetag", (t == MAPINFO_TYPE_FREEZETAG) ? "1" : "0"); + cvar_set("g_keepaway", (t == MAPINFO_TYPE_KEEPAWAY) ? "1" : "0"); } void MapInfo_LoadMap(string s) diff --cc qcsrc/common/mapinfo.qh index 641de1b8a,64076e712..12026689b --- a/qcsrc/common/mapinfo.qh +++ b/qcsrc/common/mapinfo.qh @@@ -12,8 -12,8 +12,9 @@@ float MAPINFO_TYPE_KEYHUNT = 1024 float MAPINFO_TYPE_ASSAULT = 2048; float MAPINFO_TYPE_ONSLAUGHT = 4096; float MAPINFO_TYPE_NEXBALL = 8192; -float MAPINFO_TYPE_KEEPAWAY = 16384; -float MAPINFO_TYPE_ALL = 32767; // this has to include all above bits +float MAPINFO_TYPE_FREEZETAG = 16384; - float MAPINFO_TYPE_ALL = 32767; // this has to include all above bits ++float MAPINFO_TYPE_KEEPAWAY = 32768; ++float MAPINFO_TYPE_ALL = 65535; // this has to include all above bits float MAPINFO_FEATURE_WEAPONS = 1; // not defined for minstagib-only maps diff --cc qcsrc/common/util.qc index 76d602dec,176ac8fc6..44f875173 --- a/qcsrc/common/util.qc +++ b/qcsrc/common/util.qc @@@ -399,7 -399,7 +399,8 @@@ string GametypeNameFromType(float g else if (g == GAME_RACE) return "rc"; else if (g == GAME_NEXBALL) return "nexball"; else if (g == GAME_CTS) return "cts"; + else if (g == GAME_FREEZETAG) return "freezetag"; + else if (g == GAME_KEEPAWAY) return "ka"; return "dm"; } diff --cc qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c index 5664eee0a,4abb65ae3..f3f620d73 --- a/qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c +++ b/qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c @@@ -28,7 -28,7 +28,8 @@@ CLASS(XonoticMapInfoDialog) EXTENDS(Xon ATTRIB(XonoticMapInfoDialog, typeRaceLabel, entity, NULL) ATTRIB(XonoticMapInfoDialog, typeCTSLabel, entity, NULL) ATTRIB(XonoticMapInfoDialog, typeNexballLabel, entity, NULL) + ATTRIB(XonoticMapInfoDialog, typeFreezetagLabel, entity, NULL) + ATTRIB(XonoticMapInfoDialog, typeKeepawayLabel, entity, NULL) ATTRIB(XonoticMapInfoDialog, currentMapIndex, float, 0) ATTRIB(XonoticMapInfoDialog, currentMapBSPName, string, string_null) @@@ -84,7 -84,7 +85,8 @@@ void XonoticMapInfoDialog_loadMapInfo(e me.typeRaceLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_RACE); me.typeCTSLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_CTS); me.typeNexballLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_NEXBALL); + me.typeFreezetagLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_FREEZETAG); + me.typeKeepawayLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_KEEPAWAY); MapInfo_ClearTemps(); } @@@ -148,8 -148,8 +150,10 @@@ void XonoticMapInfoDialog_fill(entity m me.typeCTSLabel = e; me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, "Nexball")); me.typeNexballLabel = e; + me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, "Freezetag")); + me.typeFreezetagLabel = e; + me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, "Keepaway")); + me.typeKeepawayLabel = e; me.gotoRC(me, me.rows - 2, 0); me.TD(me, 1, me.columns, e = makeXonoticTextLabel(0.5, "")); diff --cc qcsrc/server/defs.qh index 29e0cab02,cff78f191..381543fae --- a/qcsrc/server/defs.qh +++ b/qcsrc/server/defs.qh @@@ -17,7 -17,7 +17,7 @@@ float require_spawnfunc_prefix; // if t float ctf_score_value(string parameter); - float g_dm, g_domination, g_ctf, g_tdm, g_keyhunt, g_onslaught, g_assault, g_arena, g_ca, g_lms, g_runematch, g_race, g_nexball, g_cts, g_freezetag; -float g_dm, g_domination, g_ctf, g_tdm, g_keyhunt, g_onslaught, g_assault, g_arena, g_ca, g_lms, g_runematch, g_race, g_nexball, g_cts, g_keepaway; ++float g_dm, g_domination, g_ctf, g_tdm, g_keyhunt, g_onslaught, g_assault, g_arena, g_ca, g_lms, g_runematch, g_race, g_nexball, g_cts, g_freezetag, g_keepaway; float g_cloaked, g_footsteps, g_jump_grunt, g_grappling_hook, g_midair, g_minstagib, g_pinata, g_norecoil, g_minstagib_invis_alpha, g_bloodloss; float g_warmup_limit; float g_warmup_allguns; diff --cc qcsrc/server/mutators/mutators.qh index a57db07fd,d0cf0f721..d9fff4490 --- a/qcsrc/server/mutators/mutators.qh +++ b/qcsrc/server/mutators/mutators.qh @@@ -1,5 -1,5 +1,6 @@@ MUTATOR_DECLARATION(gamemode_keyhunt); +MUTATOR_DECLARATION(gamemode_freezetag); + MUTATOR_DECLARATION(gamemode_keepaway); MUTATOR_DECLARATION(mutator_nix); MUTATOR_DECLARATION(mutator_dodging); diff --cc qcsrc/server/progs.src index 3c1e4f521,9d40e0692..c76395fdb --- a/qcsrc/server/progs.src +++ b/qcsrc/server/progs.src @@@ -181,7 -181,7 +181,8 @@@ playerstats.q mutators/base.qc mutators/gamemode_keyhunt.qc +mutators/gamemode_freezetag.qc + mutators/gamemode_keepaway.qc mutators/mutator_nix.qc mutators/mutator_dodging.qc mutators/mutator_rocketflying.qc diff --cc qcsrc/server/teamplay.qc index 003ca2742,7e73bc142..7df082c87 --- a/qcsrc/server/teamplay.qc +++ b/qcsrc/server/teamplay.qc @@@ -101,7 -101,7 +101,8 @@@ void WriteGameCvars( cvar_set("g_race", ftos(g_race)); cvar_set("g_nexball", ftos(g_nexball)); cvar_set("g_cts", ftos(g_cts)); + cvar_set("g_freezetag", ftos(g_freezetag)); + cvar_set("g_keepaway", ftos(g_keepaway)); } void ReadGameCvars() @@@ -128,7 -128,7 +129,8 @@@ found += (g_race = (!found && (prev != GAME_RACE) && cvar("g_race"))); found += (g_nexball = (!found && (prev != GAME_NEXBALL) && cvar("g_nexball"))); found += (g_cts = (!found && (prev != GAME_CTS) && cvar("g_cts"))); + found += (g_freezetag = (!found && (prev != GAME_FREEZETAG) && cvar("g_freezetag"))); + found += (g_keepaway = (!found && (prev != GAME_KEEPAWAY) && cvar("g_keepaway"))); if(found) break;