mirror of
https://github.com/OpenArena/gamecode
synced 2026-08-20 18:23:03 -04:00
Merge branch 'master' into grapple
This commit is contained in:
commit
ec18065fdb
7 changed files with 79 additions and 31 deletions
|
|
@ -1495,6 +1495,10 @@ extern vmCvar_t cg_weaponOrder;
|
|||
extern vmCvar_t cg_chatBeep;
|
||||
extern vmCvar_t cg_teamChatBeep;
|
||||
|
||||
/* Neon_Knight: Toggleable missionpack checks. */
|
||||
extern vmCvar_t cg_missionpackChecks;
|
||||
/* /Neon_Knight */
|
||||
|
||||
//unlagged - cg_unlagged.c
|
||||
void CG_PredictWeaponEffects( centity_t *cent );
|
||||
//void CG_AddBoundingBox( centity_t *cent );
|
||||
|
|
|
|||
|
|
@ -298,6 +298,10 @@ vmCvar_t cg_weaponBarStyle;
|
|||
vmCvar_t cg_chatBeep;
|
||||
vmCvar_t cg_teamChatBeep;
|
||||
|
||||
/* Neon_Knight: Missionpack checks toggle. Just because. */
|
||||
vmCvar_t cg_missionpackChecks;
|
||||
/* /Neon_Knight */
|
||||
|
||||
typedef struct {
|
||||
vmCvar_t *vmCvar;
|
||||
char *cvarName;
|
||||
|
|
@ -509,7 +513,10 @@ static cvarTable_t cvarTable[] = {// bk001129
|
|||
{ &cg_weaponOrder, "cg_weaponOrder", "/1/2/4/3/6/7/8/5/9/", CVAR_ARCHIVE},
|
||||
{&cg_chatBeep, "cg_chatBeep", "1", CVAR_ARCHIVE},
|
||||
{&cg_teamChatBeep, "cg_teamChatBeep", "1", CVAR_ARCHIVE},
|
||||
{ &cg_muzzleflashStyle, "cg_muzzleflashStyle", "1", CVAR_ARCHIVE}
|
||||
{ &cg_muzzleflashStyle, "cg_muzzleflashStyle", "1", CVAR_ARCHIVE},
|
||||
/* Neon_Knight: Enables MP checks. */
|
||||
{ &cg_missionpackChecks, "cg_missionpackChecks", "1", CVAR_ARCHIVE}
|
||||
/* /Neon_Knight */
|
||||
};
|
||||
|
||||
static int cvarTableSize = sizeof ( cvarTable) / sizeof ( cvarTable[0]);
|
||||
|
|
@ -537,8 +544,11 @@ void CG_RegisterCvars(void) {
|
|||
|
||||
trap_Cvar_Register(NULL, "model", DEFAULT_MODEL, CVAR_USERINFO | CVAR_ARCHIVE);
|
||||
trap_Cvar_Register(NULL, "headmodel", DEFAULT_MODEL, CVAR_USERINFO | CVAR_ARCHIVE);
|
||||
trap_Cvar_Register(NULL, "team_model", DEFAULT_TEAM_MODEL, CVAR_USERINFO | CVAR_ARCHIVE);
|
||||
trap_Cvar_Register(NULL, "team_headmodel", DEFAULT_TEAM_HEAD, CVAR_USERINFO | CVAR_ARCHIVE);
|
||||
/* Neon_Knight: Missionpack checks, if != 0, enables this. */
|
||||
if (cg_missionpackChecks.integer) {
|
||||
trap_Cvar_Register(NULL, "team_model", DEFAULT_TEAM_MODEL, CVAR_USERINFO | CVAR_ARCHIVE);
|
||||
trap_Cvar_Register(NULL, "team_headmodel", DEFAULT_TEAM_HEAD, CVAR_USERINFO | CVAR_ARCHIVE);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -882,9 +882,13 @@ static void CG_LoadClientInfo(int clientNum, clientInfo_t *ci) {
|
|||
} else {
|
||||
Q_strncpyz(teamname, DEFAULT_REDTEAM_NAME, sizeof (teamname));
|
||||
}
|
||||
if (!CG_RegisterClientModelname(ci, DEFAULT_TEAM_MODEL, ci->skinName, DEFAULT_TEAM_HEAD, ci->skinName, teamname)) {
|
||||
CG_Error("DEFAULT_TEAM_MODEL / skin (%s/%s) failed to register", DEFAULT_TEAM_MODEL, ci->skinName);
|
||||
/* Neon_Knight: Missionpack checks, if != 0, enables this. */
|
||||
if (cg_missionpackChecks.integer != 0) {
|
||||
if (!CG_RegisterClientModelname(ci, DEFAULT_TEAM_MODEL, ci->skinName, DEFAULT_TEAM_HEAD, ci->skinName, teamname)) {
|
||||
CG_Error("DEFAULT_TEAM_MODEL / skin (%s/%s) failed to register", DEFAULT_TEAM_MODEL, ci->skinName);
|
||||
}
|
||||
}
|
||||
/* /Neon_Knight */
|
||||
} else {
|
||||
if (!CG_RegisterClientModelname(ci, DEFAULT_MODEL, "default", DEFAULT_MODEL, "default", teamname)) {
|
||||
CG_Error("DEFAULT_MODEL (%s) failed to register", DEFAULT_MODEL);
|
||||
|
|
@ -916,9 +920,13 @@ static void CG_LoadClientInfo(int clientNum, clientInfo_t *ci) {
|
|||
if (modelloaded) {
|
||||
ci->sounds[i] = trap_S_RegisterSound(va("sound/player/%s/%s", dir, s + 1), qfalse);
|
||||
}
|
||||
if (!ci->sounds[i]) {
|
||||
ci->sounds[i] = trap_S_RegisterSound(va("sound/player/%s/%s", fallback, s + 1), qfalse);
|
||||
/* Neon_Knight: Missionpack checks, if != 0, enables this. */
|
||||
if (cg_missionpackChecks.integer) {
|
||||
if (!ci->sounds[i]) {
|
||||
ci->sounds[i] = trap_S_RegisterSound(va("sound/player/%s/%s", fallback, s + 1), qfalse);
|
||||
}
|
||||
}
|
||||
/* /Neon_Knight */
|
||||
}
|
||||
|
||||
ci->deferred = qfalse;
|
||||
|
|
@ -1143,9 +1151,12 @@ void CG_NewClientInfo(int clientNum) {
|
|||
char modelStr[MAX_QPATH];
|
||||
char *skin;
|
||||
|
||||
if (CG_IsATeamGametype(cgs.gametype) && CG_UsesKeyObjectives(cgs.gametype)) {
|
||||
Q_strncpyz(newInfo.modelName, DEFAULT_TEAM_MODEL, sizeof ( newInfo.modelName));
|
||||
Q_strncpyz(newInfo.skinName, "default", sizeof ( newInfo.skinName));
|
||||
/* Neon_Knight: Missionpack checks, if != 0, enables this. */
|
||||
if (cg_missionpackChecks.integer) {
|
||||
if (CG_IsATeamGametype(cgs.gametype) && CG_UsesKeyObjectives(cgs.gametype)) {
|
||||
Q_strncpyz(newInfo.modelName, DEFAULT_TEAM_MODEL, sizeof ( newInfo.modelName));
|
||||
Q_strncpyz(newInfo.skinName, "default", sizeof ( newInfo.skinName));
|
||||
}
|
||||
} else {
|
||||
trap_Cvar_VariableStringBuffer("model", modelStr, sizeof ( modelStr));
|
||||
if ((skin = strchr(modelStr, '/')) == NULL) {
|
||||
|
|
@ -1157,7 +1168,7 @@ void CG_NewClientInfo(int clientNum) {
|
|||
Q_strncpyz(newInfo.skinName, skin, sizeof ( newInfo.skinName));
|
||||
Q_strncpyz(newInfo.modelName, modelStr, sizeof ( newInfo.modelName));
|
||||
}
|
||||
|
||||
/* /Neon_Knight */
|
||||
if (CG_IsATeamGametype(cgs.gametype) && CG_UsesKeyObjectives(cgs.gametype)) {
|
||||
// keep skin name
|
||||
slash = strchr(v, '/');
|
||||
|
|
@ -1187,9 +1198,12 @@ void CG_NewClientInfo(int clientNum) {
|
|||
char modelStr[MAX_QPATH];
|
||||
char *skin;
|
||||
|
||||
if (CG_IsATeamGametype(cgs.gametype) && CG_UsesKeyObjectives(cgs.gametype)) {
|
||||
Q_strncpyz(newInfo.headModelName, DEFAULT_TEAM_MODEL, sizeof ( newInfo.headModelName));
|
||||
Q_strncpyz(newInfo.headSkinName, "default", sizeof ( newInfo.headSkinName));
|
||||
/* Neon_Knight: Missionpack checks, if != 0, enables this. */
|
||||
if (cg_missionpackChecks.integer) {
|
||||
if (CG_IsATeamGametype(cgs.gametype) && CG_UsesKeyObjectives(cgs.gametype)) {
|
||||
Q_strncpyz(newInfo.headModelName, DEFAULT_TEAM_MODEL, sizeof ( newInfo.headModelName));
|
||||
Q_strncpyz(newInfo.headSkinName, "default", sizeof ( newInfo.headSkinName));
|
||||
}
|
||||
} else {
|
||||
trap_Cvar_VariableStringBuffer("headmodel", modelStr, sizeof ( modelStr));
|
||||
if ((skin = strchr(modelStr, '/')) == NULL) {
|
||||
|
|
@ -1201,6 +1215,7 @@ void CG_NewClientInfo(int clientNum) {
|
|||
Q_strncpyz(newInfo.headSkinName, skin, sizeof ( newInfo.headSkinName));
|
||||
Q_strncpyz(newInfo.headModelName, modelStr, sizeof ( newInfo.headModelName));
|
||||
}
|
||||
/* /Neon_Knight */
|
||||
|
||||
if (CG_IsATeamGametype(cgs.gametype) && CG_UsesKeyObjectives(cgs.gametype)) {
|
||||
// keep skin name
|
||||
|
|
|
|||
|
|
@ -2480,10 +2480,10 @@ qboolean G_admin_admintest( gentity_t *ent, int skiparg )
|
|||
}
|
||||
}
|
||||
|
||||
if (!found) {
|
||||
if (!found || i == MAX_ADMIN_ADMINS) {
|
||||
//The i == MAX_ADMIN_ADMINS check makes it easier for static analysers to rationate about the code
|
||||
return qfalse;
|
||||
}
|
||||
|
||||
l = g_admin_admins[ i ]->level;
|
||||
for( i = 0; i < MAX_ADMIN_LEVELS && g_admin_levels[ i ]; i++ ) {
|
||||
if( g_admin_levels[ i ]->level != l )
|
||||
|
|
|
|||
|
|
@ -311,9 +311,8 @@ static cvarTable_t gameCvarTable[] = {
|
|||
{ &g_proxMineTimeout, "g_proxMineTimeout", "20000", 0, 0, qfalse },
|
||||
|
||||
{ &g_smoothClients, "g_smoothClients", "1", 0, 0, qfalse},
|
||||
{ &pmove_fixed, "pmove_fixed", "0", CVAR_SYSTEMINFO | CVAR_ARCHIVE, 0, qfalse},
|
||||
{ &pmove_msec, "pmove_msec", "11", CVAR_SYSTEMINFO | CVAR_ARCHIVE, 0, qfalse},
|
||||
|
||||
{ &pmove_fixed, "pmove_fixed", "0", CVAR_SYSTEMINFO | CVAR_ARCHIVE, 0, qtrue},
|
||||
{ &pmove_msec, "pmove_msec", "11", CVAR_SYSTEMINFO | CVAR_ARCHIVE, 0, qtrue},
|
||||
{ &pmove_float, "pmove_float", "1", CVAR_SYSTEMINFO | CVAR_ARCHIVE, 0, qtrue},
|
||||
|
||||
//unlagged - server options
|
||||
|
|
|
|||
|
|
@ -168,6 +168,10 @@ extern vmCvar_t ui_humansonly;
|
|||
|
||||
extern vmCvar_t ui_introPlayed;
|
||||
|
||||
/* Neon_Knight: Additional missionpack check */
|
||||
extern vmCvar_t ui_missionpackChecks;
|
||||
/* /Neon_Knight */
|
||||
|
||||
//
|
||||
// ui_qmenu.c
|
||||
//
|
||||
|
|
|
|||
|
|
@ -3830,18 +3830,29 @@ static void UI_StartSkirmish(qboolean next, char *name)
|
|||
}
|
||||
else {
|
||||
temp = uiInfo.mapList[ui_currentMap.integer].teamMembers * 2;
|
||||
trap_Cvar_Set("sv_maxClients", va("%d", temp));
|
||||
for (i =0; i < uiInfo.mapList[ui_currentMap.integer].teamMembers; i++) {
|
||||
Com_sprintf( buff, sizeof(buff), "addbot %s %f %s %i %s\n", UI_AIFromName(uiInfo.teamList[k].teamMembers[i]), skill, (g == GT_FFA) ? "" : "Blue", delay, uiInfo.teamList[k].teamMembers[i]);
|
||||
trap_Cmd_ExecuteText( EXEC_APPEND, buff );
|
||||
delay += 500;
|
||||
/* Neon_Knight: Missionpack checks, if != 0, enables this. */
|
||||
if(ui_missionpackChecks.integer) {
|
||||
trap_Cvar_Set("sv_maxClients", va("%i", temp));
|
||||
for (i =0; i < uiInfo.mapList[ui_currentMap.integer].teamMembers; i++) {
|
||||
Com_sprintf( buff, sizeof(buff), "addbot %s %f %s %i %s\n", UI_AIFromName(uiInfo.teamList[k].teamMembers[i]), skill, (g == GT_FFA) ? "" : "Blue", delay, uiInfo.teamList[k].teamMembers[i]);
|
||||
trap_Cmd_ExecuteText( EXEC_APPEND, buff );
|
||||
delay += 500;
|
||||
}
|
||||
k = UI_TeamIndexFromName(UI_Cvar_VariableString("ui_teamName"));
|
||||
for (i =0; i < uiInfo.mapList[ui_currentMap.integer].teamMembers-1; i++) {
|
||||
Com_sprintf( buff, sizeof(buff), "addbot %s %f %s %i %s\n", UI_AIFromName(uiInfo.teamList[k].teamMembers[i]), skill, (g == GT_FFA) ? "" : "Red", delay, uiInfo.teamList[k].teamMembers[i]);
|
||||
trap_Cmd_ExecuteText( EXEC_APPEND, buff );
|
||||
delay += 500;
|
||||
}
|
||||
}
|
||||
k = UI_TeamIndexFromName(UI_Cvar_VariableString("ui_teamName"));
|
||||
for (i =0; i < uiInfo.mapList[ui_currentMap.integer].teamMembers-1; i++) {
|
||||
Com_sprintf( buff, sizeof(buff), "addbot %s %f %s %i %s\n", UI_AIFromName(uiInfo.teamList[k].teamMembers[i]), skill, (g == GT_FFA) ? "" : "Red", delay, uiInfo.teamList[k].teamMembers[i]);
|
||||
else {
|
||||
trap_Cvar_Set("sv_maxClients", va("%i", temp+2));
|
||||
trap_Cvar_Set("bot_minplayers", va("%i", temp));
|
||||
trap_Cvar_Set("skill", va("%f", skill));
|
||||
Com_sprintf( buff, sizeof(buff), "wait ;\n");
|
||||
trap_Cmd_ExecuteText( EXEC_APPEND, buff );
|
||||
delay += 500;
|
||||
}
|
||||
/* /Neon_Knight */
|
||||
}
|
||||
if (UI_IsATeamGametype(g) && UI_UsesKeyObjectives(g)) {
|
||||
trap_Cmd_ExecuteText( EXEC_APPEND, "wait 5; team Red\n" );
|
||||
|
|
@ -4391,12 +4402,15 @@ static void UI_RunMenuScript(char **args)
|
|||
}
|
||||
}
|
||||
else if (Q_strequal(name, "addBot") ) {
|
||||
/* Neon_Knight: Missionpack checks, if != 0, enables this. */
|
||||
if (ui_missionpackChecks.integer) {
|
||||
if (UI_IsATeamGametype(trap_Cvar_VariableValue("g_gametype")) && UI_UsesKeyObjectives(trap_Cvar_VariableValue("g_gametype"))) {
|
||||
/* /Neon_Knight */
|
||||
trap_Cmd_ExecuteText( EXEC_APPEND, va("addbot %s %i %s\n", UI_GetBotNameByNumber(uiInfo.botIndex), uiInfo.skillIndex+1, (uiInfo.redBlue == 0) ? "Red" : "Blue") );
|
||||
}
|
||||
} else {
|
||||
trap_Cmd_ExecuteText( EXEC_APPEND, va("addbot %s %i %s\n", uiInfo.characterList[uiInfo.botIndex].name, uiInfo.skillIndex+1, (uiInfo.redBlue == 0) ? "Red" : "Blue") );
|
||||
}
|
||||
else {
|
||||
trap_Cmd_ExecuteText( EXEC_APPEND, va("addbot %s %i %s\n", UI_GetBotNameByNumber(uiInfo.botIndex), uiInfo.skillIndex+1, (uiInfo.redBlue == 0) ? "Red" : "Blue") );
|
||||
}
|
||||
// Changed RD
|
||||
}
|
||||
else if (Q_stricmp(name, "getHostName") == 0) {
|
||||
|
|
@ -7080,6 +7094,7 @@ vmCvar_t ui_introPlayed;
|
|||
|
||||
vmCvar_t ui_humansonly;
|
||||
|
||||
vmCvar_t ui_missionpackChecks;
|
||||
|
||||
// bk001129 - made static to avoid aliasing
|
||||
static cvarTable_t cvarTable[] = {
|
||||
|
|
@ -7257,6 +7272,7 @@ static cvarTable_t cvarTable[] = {
|
|||
{ &gameover, "gameover", "0", CVAR_INIT}, // ai script
|
||||
// end changed RD
|
||||
{ &ui_introPlayed, "ui_introPlayed", "0", CVAR_INIT },
|
||||
{ &ui_missionpackChecks, "ui_missionpackChecks", "1", CVAR_INIT },
|
||||
};
|
||||
|
||||
// bk001129 - made static to avoid aliasing
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue