Merge pull request #3 from OpenArena/master

Updating the code.
This commit is contained in:
NeonKnightOA 2018-12-01 20:35:43 -03:00 committed by GitHub
commit e0f7240797
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 79 additions and 31 deletions

View file

@ -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 );

View file

@ -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);
}
}
/*

View file

@ -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

View file

@ -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 )

View file

@ -306,9 +306,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

View file

@ -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
//

View file

@ -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