From: Samual Lenks Date: Thu, 13 Dec 2012 03:53:41 +0000 (-0500) Subject: Merge remote-tracking branch 'origin/master' into samual/notification_rewrite X-Git-Tag: xonotic-v0.7.0~62^2~23^2~368 X-Git-Url: http://git.xonotic.org/?a=commitdiff_plain;h=e1326a2cccc2d471cd11161ab7eda42dfe4d5d2f;hp=-c;p=xonotic%2Fxonotic-data.pk3dir.git Merge remote-tracking branch 'origin/master' into samual/notification_rewrite --- e1326a2cccc2d471cd11161ab7eda42dfe4d5d2f diff --combined qcsrc/client/View.qc index 086728bcb,9ffe5a738..84c54ecb2 --- a/qcsrc/client/View.qc +++ b/qcsrc/client/View.qc @@@ -240,7 -240,7 +240,7 @@@ float EnemyHitCheck( if(teamplay) if(t == myteam) return SHOTTYPE_HITTEAM; - if(t == COLOR_SPECTATOR) + if(t == FL_SPECTATOR) return SHOTTYPE_HITWORLD; return SHOTTYPE_HITENEMY; } @@@ -442,7 -442,7 +442,7 @@@ void CSQC_UpdateView(float w, float h { // make special vector since we can't use view_origin (It is one frame old as of this code, it gets set later with the results this code makes.) vector current_view_origin = getpropertyvec(VF_ORIGIN); - + // We must enable chase_active to get a third person view (weapon viewmodel hidden and own player model showing). // Ideally, there should be another way to enable third person cameras, such as through setproperty() if(!autocvar_chase_active) @@@ -473,6 -473,13 +473,13 @@@ eventchase_current_distance = 0; // start from 0 next time } } + // workaround for camera stuck between player's legs when using chase_active 1 + // because the engine stops updating the chase_active camera when the game ends + else if(intermission) + { + cvar_settemp("chase_active", "-1"); + eventchase_current_distance = 0; + } // do lockview after event chase camera so that it still applies whenever necessary. if(autocvar_cl_lockview || (!autocvar_hud_cursormode && (autocvar__hud_configure && spectatee_status <= 0 || intermission > 1))) @@@ -539,8 -546,8 +546,8 @@@ calledhooks |= HOOK_END; } } - - Announcer(); + + Announcer(); fov = autocvar_fov; if(fov <= 59.5) diff --combined qcsrc/client/scoreboard.qc index aa2d7259f,83991f6f1..0984f7ce1 --- a/qcsrc/client/scoreboard.qc +++ b/qcsrc/client/scoreboard.qc @@@ -136,16 -136,16 +136,16 @@@ float HUD_ComparePlayerScores(entity le vr = GetPlayerColor(right.sv_entnum); if(!left.gotscores) - vl = COLOR_SPECTATOR; + vl = FL_SPECTATOR; if(!right.gotscores) - vr = COLOR_SPECTATOR; + vr = FL_SPECTATOR; if(vl > vr) return true; if(vl < vr) return false; - if(vl == COLOR_SPECTATOR) + if(vl == FL_SPECTATOR) { // FIRST the one with scores (spectators), THEN the ones without (downloaders) // no other sorting @@@ -201,9 -201,9 +201,9 @@@ float HUD_CompareTeamScores(entity left { float vl, vr; - if(left.team == COLOR_SPECTATOR) + if(left.team == FL_SPECTATOR) return 1; - if(right.team == COLOR_SPECTATOR) + if(right.team == FL_SPECTATOR) return 0; vl = left.teamscores[ts_primary]; @@@ -311,15 -311,15 +311,15 @@@ void Cmd_HUD_SetFields(float argc // TODO: re enable with gametype dependant cvars? if(argc < 3) // no arguments provided - argc = tokenizebyseparator(strcat("x ", autocvar_scoreboard_columns), " "); + argc = tokenizebyseparator(strcat("0 1 ", autocvar_scoreboard_columns), " "); if(argc < 3) - argc = tokenizebyseparator(strcat("x ", HUD_DefaultColumnLayout()), " "); + argc = tokenizebyseparator(strcat("0 1 ", HUD_DefaultColumnLayout()), " "); if(argc == 3) { if(argv(2) == "default") - argc = tokenizebyseparator(strcat("x ", HUD_DefaultColumnLayout()), " "); + argc = tokenizebyseparator(strcat("0 1 ", HUD_DefaultColumnLayout()), " "); else if(argv(2) == "all") { string s; @@@ -334,17 -334,17 +334,17 @@@ if(ps_secondary != ps_primary) s = strcat(s, " ", scores_label[ps_secondary]); s = strcat(s, " ", scores_label[ps_primary]); - argc = tokenizebyseparator(strcat("x ", s), " "); + argc = tokenizebyseparator(strcat("0 1 ", s), " "); } } hud_num_fields = 0; - hud_fontsize = HUD_GetFontsize("hud_fontsize"); + hud_fontsize = HUD_GetFontsize("hud_fontsize"); draw_beginBoldFont(); - for(i = 0; i < argc - 1; ++i) + for(i = 1; i < argc - 1; ++i) { float nocomplain; str = argv(i+1); @@@ -659,11 -659,11 +659,11 @@@ string HUD_FixScoreboardColumnWidth(flo void HUD_PrintScoreboardItem(vector pos, entity pl, float is_self, float pl_number) { vector tmp, rgb; - rgb = GetTeamRGB(pl.team); + rgb = Team_ColorRGB(pl.team); string str; float i, field; float is_spec; - is_spec = (GetPlayerColor(pl.sv_entnum) == COLOR_SPECTATOR); + is_spec = (GetPlayerColor(pl.sv_entnum) == FL_SPECTATOR); if((rgb == '1 1 1') && (!is_spec)) { rgb_x = autocvar_scoreboard_color_bg_r + 0.5; @@@ -907,7 -907,7 +907,7 @@@ vector HUD_Scoreboard_MakeTable(vector else for(pl = players.sort_next; pl; pl = pl.sort_next) { - if(pl.team == COLOR_SPECTATOR) + if(pl.team == FL_SPECTATOR) continue; HUD_PrintScoreboardItem(pos, pl, (pl.sv_entnum == player_localnum), i); pos_y += 1.25 * hud_fontsize_y; @@@ -1124,7 -1124,7 +1124,7 @@@ vector HUD_DrawScoreboardRankings(vecto return pos; float is_spec; - is_spec = (GetPlayerColor(pl.sv_entnum) == COLOR_SPECTATOR); + is_spec = (GetPlayerColor(pl.sv_entnum) == FL_SPECTATOR); vector hl_rgb; hl_rgb_x = autocvar_scoreboard_color_bg_r + 0.5; hl_rgb_y = autocvar_scoreboard_color_bg_g + 0.5; @@@ -1241,11 -1241,11 +1241,11 @@@ void HUD_DrawScoreboard( team_score_baseoffset = eY * (2 * autocvar_scoreboard_border_thickness + hud_fontsize_y) - eX * (autocvar_scoreboard_border_thickness + hud_fontsize_x * 0.25); for(tm = teams.sort_next; tm; tm = tm.sort_next) { - if(tm.team == COLOR_SPECTATOR) + if(tm.team == FL_SPECTATOR) continue; draw_beginBoldFont(); - rgb = GetTeamRGB(tm.team); + rgb = Team_ColorRGB(tm.team); str = ftos(tm.(teamscores[ts_primary])); drawstring(pos + team_score_baseoffset - eX * stringwidth(str, FALSE, hud_fontsize * 1.5), str, hud_fontsize * 1.5, rgb, scoreboard_alpha_fg, DRAWFLAG_NORMAL); @@@ -1267,7 -1267,7 +1267,7 @@@ for(tm = teams.sort_next; tm; tm = tm.sort_next) { - if(tm.team == COLOR_SPECTATOR) + if(tm.team == FL_SPECTATOR) continue; pos = HUD_Scoreboard_MakeTable(pos, tm, rgb, bg_size); @@@ -1287,14 -1287,14 +1287,14 @@@ } else if(autocvar_scoreboard_accuracy && spectatee_status != -1 && !warmup_stage) { if(teamplay) - pos = HUD_DrawScoreboardAccuracyStats(pos, GetTeamRGB(myteam), bg_size); + pos = HUD_DrawScoreboardAccuracyStats(pos, Team_ColorRGB(myteam), bg_size); else pos = HUD_DrawScoreboardAccuracyStats(pos, rgb, bg_size); } if(teamplay) - pos = HUD_DrawMapStats(pos, GetTeamRGB(myteam), bg_size); + pos = HUD_DrawMapStats(pos, Team_ColorRGB(myteam), bg_size); else pos = HUD_DrawMapStats(pos, rgb, bg_size); @@@ -1304,7 -1304,7 +1304,7 @@@ tmp = pos; for(pl = players.sort_next; pl; pl = pl.sort_next) { - if(pl.team != COLOR_SPECTATOR) + if(pl.team != FL_SPECTATOR) continue; pos_y += 1.25 * hud_fontsize_y; HUD_PrintScoreboardItem(pos, pl, (pl.sv_entnum == player_localnum), specs); diff --combined qcsrc/common/command/generic.qc index 2e00ff03a,07998d09c..b7954e338 --- a/qcsrc/common/command/generic.qc +++ b/qcsrc/common/command/generic.qc @@@ -84,7 -84,7 +84,7 @@@ void GenericCommand_addtolist(float req print("Incorrect parameters for ^2addtolist^7\n"); case CMD_REQUEST_USAGE: { - print(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " addtolist variable value")); + print(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " addtolist variable value\n")); print(" Where 'variable' is what to add 'value' to.\n"); print("See also: ^2removefromlist^7\n"); return; @@@ -92,7 -92,7 +92,7 @@@ } } -void GenericCommand_curl(float request, float argc) +void GenericCommand_qc_curl(float request, float argc) { switch(request) { @@@ -165,7 -165,7 +165,7 @@@ default: case CMD_REQUEST_USAGE: { - print(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " curl [--key N] [--cvar] [--exec] URL [postargs...]")); + print(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " qc_curl [--key N] [--cvar] [--exec] URL [postargs...]")); return; } } @@@ -226,40 -226,6 +226,40 @@@ void GenericCommand_dumpcommands(float } } +void GenericCommand_dumpnotifs(float request) +{ + switch(request) + { + case CMD_REQUEST_COMMAND: + { + float fh; + string filename = "notifications_dump.txt"; + fh = fopen(filename, FILE_WRITE); + + if(fh >= 0) + { + fputs(fh, "dump of notifications list:\n"); + Dump_Notifications(fh); + print("Completed dump of notifications in ^2data/data/notifications_dump.txt^7.\n"); + fclose(fh); + } + else + { + print("^1Error: ^7Could not dump to file!\n"); + } + return; + } + + default: + case CMD_REQUEST_USAGE: + { + print(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " dumpnotifs")); + print(" No arguments required.\n"); + return; + } + } +} + void GenericCommand_maplist(float request, float argc) { switch(request) @@@ -341,7 -307,7 +341,7 @@@ print("Incorrect parameters for ^2maplist^7\n"); case CMD_REQUEST_USAGE: { - print(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " maplist action [map]")); + print(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " maplist action [map]\n")); print(" Where 'action' is the command to complete,\n"); print(" and 'map' is what it acts upon (if required).\n"); print(" Full list of commands here: \"add, cleanup, remove, shuffle.\"\n"); @@@ -363,7 -329,7 +363,7 @@@ void GenericCommand_nextframe(float req default: case CMD_REQUEST_USAGE: { - print(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " nextframe command...")); + print(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " nextframe command...\n")); print(" Where command will be executed next frame of this VM\n"); return; } @@@ -401,7 -367,7 +401,7 @@@ void GenericCommand_removefromlist(floa print("Incorrect parameters for ^2removefromlist^7\n"); case CMD_REQUEST_USAGE: { - print(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " removefromlist variable value")); + print(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " removefromlist variable value\n")); print(" Where 'variable' is what cvar to remove 'value' from.\n"); print("See also: ^2addtolist^7\n"); return; @@@ -417,15 -383,17 +417,17 @@@ void GenericCommand_settemp(float reque { if(argc >= 3) { - if(cvar_settemp(argv(1), argv(2))) + float f = cvar_settemp(argv(1), argv(2)); + if(f == 1) dprint("Creating new settemp tracker for ", argv(1), " and setting it to \"", argv(2), "\" temporarily.\n"); - else + else if(f == -1) dprint("Already had a tracker for ", argv(1), ", updating it to \"", argv(2), "\".\n"); - + // else cvar_settemp itself errors out + return; } } - + default: print("Incorrect parameters for ^2settemp^7\n"); case CMD_REQUEST_USAGE: @@@ -495,11 -463,10 +497,11 @@@ void GenericCommand_(float request // Do not hard code aliases for these, instead create them in commands.cfg... also: keep in alphabetical order, please ;) #define GENERIC_COMMANDS(request,arguments,command) \ GENERIC_COMMAND("addtolist", GenericCommand_addtolist(request, arguments), "Add a string to a cvar") \ - GENERIC_COMMAND("curl", GenericCommand_curl(request, arguments), "Queries an URL") \ GENERIC_COMMAND("dumpcommands", GenericCommand_dumpcommands(request), "Dump all commands on the program to *_cmd_dump.txt") \ + GENERIC_COMMAND("dumpnotifs", GenericCommand_dumpnotifs(request), "Dump all notifications into notifications_dump.txt") \ GENERIC_COMMAND("maplist", GenericCommand_maplist(request, arguments), "Automatic control of maplist") \ GENERIC_COMMAND("nextframe", GenericCommand_nextframe(request, arguments, command), "Execute the given command next frame of this VM") \ + GENERIC_COMMAND("qc_curl", GenericCommand_qc_curl(request, arguments), "Queries a URL") \ GENERIC_COMMAND("removefromlist", GenericCommand_removefromlist(request, arguments), "Remove a string from a cvar") \ GENERIC_COMMAND("rpn", GenericCommand_rpn(request, arguments, command), "RPN calculator") \ GENERIC_COMMAND("settemp", GenericCommand_settemp(request, arguments), "Temporarily set a value to a cvar which is restored later") \ diff --combined qcsrc/server/command/sv_cmd.qc index 0d1e22871,2dd523175..58644726e --- a/qcsrc/server/command/sv_cmd.qc +++ b/qcsrc/server/command/sv_cmd.qc @@@ -1019,21 -1019,21 +1019,21 @@@ void GameCommand_moveplayer(float reque if(teamplay) { // set up - float team_color; + float team_id; float save = client.team_forced; client.team_forced = 0; // find the team to move the player to - team_color = ColourToNumber(destination); - if(team_color == client.team) // already on the destination team + team_id = Team_ColorToTeam(destination); + if(team_id == client.team) // already on the destination team { // keep the forcing undone - print("Player ", ftos(GetFilteredNumber(t)), " (", client.netname, ") is already on the ", ColoredTeamName(client.team), (targets ? ", skipping to next player.\n" : ".\n")); + print("Player ", ftos(GetFilteredNumber(t)), " (", client.netname, ") is already on the ", Team_ColoredFullName(client.team), (targets ? "^7, skipping to next player.\n" : "^7.\n")); continue; } - else if(team_color == 0) // auto team + else if(team_id == 0) // auto team { - team_color = NumberToTeamNumber(FindSmallestTeam(client, FALSE)); + team_id = Team_NumberToTeam(FindSmallestTeam(client, FALSE)); } else { @@@ -1042,21 -1042,21 +1042,21 @@@ client.team_forced = save; // Check to see if the destination team is even available - switch(team_color) + switch(team_id) { - case COLOR_TEAM1: if(c1 == -1) { print("Sorry, can't move player to red team if it doesn't exist.\n"); return; } break; - case COLOR_TEAM2: if(c2 == -1) { print("Sorry, can't move player to blue team if it doesn't exist.\n"); return; } break; - case COLOR_TEAM3: if(c3 == -1) { print("Sorry, can't move player to yellow team if it doesn't exist.\n"); return; } break; - case COLOR_TEAM4: if(c4 == -1) { print("Sorry, can't move player to pink team if it doesn't exist.\n"); return; } break; + case FL_TEAM_1: if(c1 == -1) { print("Sorry, can't move player to red team if it doesn't exist.\n"); return; } break; + case FL_TEAM_2: if(c2 == -1) { print("Sorry, can't move player to blue team if it doesn't exist.\n"); return; } break; + case FL_TEAM_3: if(c3 == -1) { print("Sorry, can't move player to yellow team if it doesn't exist.\n"); return; } break; + case FL_TEAM_4: if(c4 == -1) { print("Sorry, can't move player to pink team if it doesn't exist.\n"); return; } break; default: print("Sorry, can't move player here if team ", destination, " doesn't exist.\n"); return; } // If so, lets continue and finally move the player client.team_forced = 0; - MoveToTeam(client, team_color, 6, stof(notify)); + MoveToTeam(client, team_id, 6, stof(notify)); successful = strcat(successful, (successful ? ", " : ""), client.netname); - print("Player ", ftos(GetFilteredNumber(t)), " (", client.netname, ") has been moved to the ", ColoredTeamName(team_color), ".\n"); + print("Player ", ftos(GetFilteredNumber(t)), " (", client.netname, ") has been moved to the ", Team_ColoredFullName(team_id), "^7.\n"); continue; } else @@@ -1356,7 -1356,7 +1356,7 @@@ void GameCommand_shuffleteams(float req x = (t_players / t_teams); x = ((i == 1) ? ceil(x) : floor(x)); - team_color = NumberToTeamNumber(i); + team_color = Team_NumberToTeam(i); // sort through the random list of players made earlier for(z = 1; z <= maxclients; ++z) @@@ -1689,8 -1689,9 +1689,9 @@@ void GameCommand_warp(float request, fl default: case CMD_REQUEST_USAGE: { - print("\nUsage:^3 sv_cmd level\n"); + print("\nUsage:^3 sv_cmd warp [level]\n"); print(" 'level' is the level to change campaign mode to.\n"); + print(" if 'level' is not provided it will change to the next level.\n"); return; } } diff --combined qcsrc/server/g_world.qc index dfef41e7b,a41389a4f..5bd1c86e3 --- a/qcsrc/server/g_world.qc +++ b/qcsrc/server/g_world.qc @@@ -553,8 -553,6 +553,8 @@@ void spawnfunc___init_dedicated_server( // needs to be done so early because of the constants they create CALL_ACCUMULATED_FUNCTION(RegisterWeapons); CALL_ACCUMULATED_FUNCTION(RegisterGametypes); + CALL_ACCUMULATED_FUNCTION(RegisterNotifications); + CALL_ACCUMULATED_FUNCTION(RegisterDeathtypes); MapInfo_Enumerate(); MapInfo_FilterGametype(MapInfo_CurrentGametype(), MapInfo_CurrentFeatures(), MapInfo_RequiredFlags(), MapInfo_ForbiddenFlags(), 0); @@@ -601,8 -599,6 +601,8 @@@ void spawnfunc_worldspawn (void // needs to be done so early because of the constants they create CALL_ACCUMULATED_FUNCTION(RegisterWeapons); CALL_ACCUMULATED_FUNCTION(RegisterGametypes); + CALL_ACCUMULATED_FUNCTION(RegisterNotifications); + CALL_ACCUMULATED_FUNCTION(RegisterDeathtypes); ServerProgsDB = db_load(strcat("server.db", autocvar_sessionid)); @@@ -830,18 -826,18 +830,18 @@@ addstat(STAT_MOVEVARS_MAXSPEED, AS_FLOAT, stat_sv_maxspeed); addstat(STAT_MOVEVARS_AIRACCEL_QW, AS_FLOAT, stat_sv_airaccel_qw); addstat(STAT_MOVEVARS_AIRSTRAFEACCEL_QW, AS_FLOAT, stat_sv_airstrafeaccel_qw); - + // secrets addstat(STAT_SECRETS_TOTAL, AS_FLOAT, stat_secrets_total); addstat(STAT_SECRETS_FOUND, AS_FLOAT, stat_secrets_found); // misc addstat(STAT_RESPAWN_TIME, AS_FLOAT, stat_respawn_time); - + next_pingtime = time + 5; detect_maptype(); - + // set up information replies for clients and server to use lsmaps_reply = "^7Maps available: "; lsnewmaps_reply = "^7Maps without a record set: "; @@@ -854,18 -850,18 +854,18 @@@ col = "^2"; else col = "^3"; - + ++j; - + lsmaps_reply = strcat(lsmaps_reply, col, MapInfo_Map_bspname, " "); - + if(g_race && !stof(db_get(ServerProgsDB, strcat(MapInfo_Map_bspname, RACE_RECORD, "time")))) lsnewmaps_reply = strcat(lsnewmaps_reply, col, MapInfo_Map_bspname, " "); else if(g_cts && !stof(db_get(ServerProgsDB, strcat(MapInfo_Map_bspname, CTS_RECORD, "time")))) lsnewmaps_reply = strcat(lsnewmaps_reply, col, MapInfo_Map_bspname, " "); } } - + lsmaps_reply = strzone(strcat(lsmaps_reply, "\n")); lsnewmaps_reply = strzone(strcat(((!g_race && !g_cts) ? "Need to be playing race or CTS for lsnewmaps to work." : lsnewmaps_reply), "\n")); @@@ -888,9 -884,11 +888,11 @@@ for(i = 0; i < 10; ++i) { - records_reply[i] = strzone(getrecords(i)); + s = getrecords(i); + if (s) + records_reply[i] = strzone(s); } - + ladder_reply = strzone(getladder()); rankings_reply = strzone(getrankings()); @@@ -1349,10 -1347,10 +1351,10 @@@ float mapvote_initialized void IntermissionThink() { FixIntermissionClient(self); - + float server_screenshot = (autocvar_sv_autoscreenshot && self.cvar_cl_autoscreenshot); float client_screenshot = (self.cvar_cl_autoscreenshot == 2); - + if( (server_screenshot || client_screenshot) && ((self.autoscreenshot > 0) && (time > self.autoscreenshot)) ) { @@@ -1761,10 -1759,10 +1763,10 @@@ float WinningCondition_Onslaught( { if (head.health > 0) { - if (head.team == COLOR_TEAM1) t1 = 1; - if (head.team == COLOR_TEAM2) t2 = 1; - if (head.team == COLOR_TEAM3) t3 = 1; - if (head.team == COLOR_TEAM4) t4 = 1; + if (head.team == FL_TEAM_1) t1 = 1; + if (head.team == FL_TEAM_2) t2 = 1; + if (head.team == FL_TEAM_3) t3 = 1; + if (head.team == FL_TEAM_4) t4 = 1; } head = find(head, classname, "onslaught_generator"); } @@@ -1772,10 -1770,10 +1774,10 @@@ { // game over, only one team remains (or none) ClearWinners(); - if (t1) SetWinners(team, COLOR_TEAM1); - if (t2) SetWinners(team, COLOR_TEAM2); - if (t3) SetWinners(team, COLOR_TEAM3); - if (t4) SetWinners(team, COLOR_TEAM4); + if (t1) SetWinners(team, FL_TEAM_1); + if (t2) SetWinners(team, FL_TEAM_2); + if (t3) SetWinners(team, FL_TEAM_3); + if (t4) SetWinners(team, FL_TEAM_4); dprint("Have a winner, ending game.\n"); return WINNING_YES; } @@@ -1813,13 -1811,13 +1815,13 @@@ float WinningCondition_Assault( status = WINNING_NO; // as the timelimit has not yet passed just assume the defending team will win - if(assault_attacker_team == COLOR_TEAM1) + if(assault_attacker_team == FL_TEAM_1) { - SetWinners(team, COLOR_TEAM2); + SetWinners(team, FL_TEAM_2); } else { - SetWinners(team, COLOR_TEAM1); + SetWinners(team, FL_TEAM_1); } entity ent; @@@ -1945,10 -1943,10 +1947,10 @@@ float WinningCondition_Scores(float lim if(teamplay) { - team1_score = TeamScore_GetCompareValue(COLOR_TEAM1); - team2_score = TeamScore_GetCompareValue(COLOR_TEAM2); - team3_score = TeamScore_GetCompareValue(COLOR_TEAM3); - team4_score = TeamScore_GetCompareValue(COLOR_TEAM4); + team1_score = TeamScore_GetCompareValue(FL_TEAM_1); + team2_score = TeamScore_GetCompareValue(FL_TEAM_2); + team3_score = TeamScore_GetCompareValue(FL_TEAM_3); + team4_score = TeamScore_GetCompareValue(FL_TEAM_4); } ClearWinners(); @@@ -2065,25 -2063,25 +2067,25 @@@ float WinningCondition_RanOutOfSpawns( FOR_EACH_PLAYER(head) if(head.deadflag == DEAD_NO) { - if(head.team == COLOR_TEAM1) + if(head.team == FL_TEAM_1) team1_score = 1; - else if(head.team == COLOR_TEAM2) + else if(head.team == FL_TEAM_2) team2_score = 1; - else if(head.team == COLOR_TEAM3) + else if(head.team == FL_TEAM_3) team3_score = 1; - else if(head.team == COLOR_TEAM4) + else if(head.team == FL_TEAM_4) team4_score = 1; } for(head = world; (head = find(head, classname, "info_player_deathmatch")) != world; ) { - if(head.team == COLOR_TEAM1) + if(head.team == FL_TEAM_1) team1_score = 1; - else if(head.team == COLOR_TEAM2) + else if(head.team == FL_TEAM_2) team2_score = 1; - else if(head.team == COLOR_TEAM3) + else if(head.team == FL_TEAM_3) team3_score = 1; - else if(head.team == COLOR_TEAM4) + else if(head.team == FL_TEAM_4) team4_score = 1; } @@@ -2097,20 -2095,20 +2099,20 @@@ { float t, i; if(team1_score) - t = COLOR_TEAM1; + t = FL_TEAM_1; else if(team2_score) - t = COLOR_TEAM2; + t = FL_TEAM_2; else if(team3_score) - t = COLOR_TEAM3; + t = FL_TEAM_3; else // if(team4_score) - t = COLOR_TEAM4; + t = FL_TEAM_4; CheckAllowedTeams(world); for(i = 0; i < MAX_TEAMSCORE; ++i) { - if(t != COLOR_TEAM1) if(c1 >= 0) TeamScore_AddToTeam(COLOR_TEAM1, i, -1000); - if(t != COLOR_TEAM2) if(c2 >= 0) TeamScore_AddToTeam(COLOR_TEAM2, i, -1000); - if(t != COLOR_TEAM3) if(c3 >= 0) TeamScore_AddToTeam(COLOR_TEAM3, i, -1000); - if(t != COLOR_TEAM4) if(c4 >= 0) TeamScore_AddToTeam(COLOR_TEAM4, i, -1000); + if(t != FL_TEAM_1) if(c1 >= 0) TeamScore_AddToTeam(FL_TEAM_1, i, -1000); + if(t != FL_TEAM_2) if(c2 >= 0) TeamScore_AddToTeam(FL_TEAM_2, i, -1000); + if(t != FL_TEAM_3) if(c3 >= 0) TeamScore_AddToTeam(FL_TEAM_3, i, -1000); + if(t != FL_TEAM_4) if(c4 >= 0) TeamScore_AddToTeam(FL_TEAM_4, i, -1000); } AddWinners(team, t);