InitGameplayMode();
readlevelcvars();
GrappleHookInit();
+ ElectroInit();
+ LaserInit();
player_count = 0;
bot_waypoints_for_items = cvar("g_waypoints_for_items");
CheatInit();
- localcmd("\n_sv_hook_gamestart ", GetGametype(), ";");
+ localcmd("\n_sv_hook_gamestart ", GetGametype(), "\n");
+
+ // fill sv_curl_serverpackages from .serverpackage files
+ if(cvar("sv_curl_serverpackages_auto"))
+ {
+ fd = search_begin("*.serverpackage", TRUE, FALSE);
+ s = "";
+ if(fd >= 0)
+ {
+ j = search_getsize(fd);
+ for(i = 0; i < j; ++i)
+ s = strcat(s, " ", search_getfilename(fd, i));
+ search_end(fd);
+ }
+ cvar_set("sv_curl_serverpackages", substring(s, 1, -1));
+ }
world_initialized = 1;
}
if(cvar("g_campaign"))
CampaignPreIntermission();
- localcmd("\nsv_hook_gameend;");
+ localcmd("\nsv_hook_gameend\n");
}
/*
float leaderfrags;
float WinningCondition_Scores(float limit, float leadlimit)
{
+ float limitreached;
+
// TODO make everything use THIS winning condition (except LMS)
WinningConditionHelper();
}
}
+ limitreached = FALSE;
+ if(limit)
+ if(WinningConditionHelper_topscore >= limit)
+ limitreached = TRUE;
+ if(leadlimit)
+ {
+ float leadlimitreached;
+ leadlimitreached = (WinningConditionHelper_topscore - WinningConditionHelper_secondscore >= leadlimit);
+ if(cvar("leadlimit_and_fraglimit"))
+ limitreached = (limitreached && leadlimitreached);
+ else
+ limitreached = (limitreached || leadlimitreached);
+ }
+
return GetWinningCode(
- WinningConditionHelper_topscore &&
- (
- (limit && (WinningConditionHelper_topscore >= limit))
- ||
- (leadlimit && (WinningConditionHelper_topscore - WinningConditionHelper_secondscore >= leadlimit))
- ),
+ WinningConditionHelper_topscore && limitreached,
WinningConditionHelper_equality
);
}