From 8510baca6ca2462e1bc74d0bc69f6fa142005d9a Mon Sep 17 00:00:00 2001 From: Zack Middleton Date: Wed, 17 Oct 2018 13:00:30 -0500 Subject: [PATCH 01/10] mint-arena: Fix voice taunt not being sent to speaker if other is bot My commit "mint-arena: Merge G_Say changes into G_Voice" (Aug 2017) caused voice taunts to no longer be sent back to the speaker player if the target is a bot. This commit restore that. However it also causes voice taunts to be sent to bots. Bots don't response to them but it seems harmless enough (see code/game/ai_vcmd.c). Reported by DarkPatro56 on youtube. --- code/game/g_cmds.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/code/game/g_cmds.c b/code/game/g_cmds.c index da58bfdda..305ac2744 100644 --- a/code/game/g_cmds.c +++ b/code/game/g_cmds.c @@ -1255,9 +1255,7 @@ static void Cmd_VoiceTaunt_f( gentity_t *ent ) { // insult someone who just killed you if (ent->enemy && ent->enemy->player && ent->enemy->player->lastkilled_player == ent->s.number) { // i am a dead corpse - if (!(ent->enemy->r.svFlags & SVF_BOT)) { - G_Voice( ent, ent->enemy, SAY_TELL, VOICECHAT_DEATHINSULT, qfalse ); - } + G_Voice( ent, ent->enemy, SAY_TELL, VOICECHAT_DEATHINSULT, qfalse ); ent->enemy = NULL; return; } @@ -1267,13 +1265,9 @@ static void Cmd_VoiceTaunt_f( gentity_t *ent ) { if (who->player) { // who is the person I just killed if (who->player->lasthurt_mod == MOD_GAUNTLET) { - if (!(who->r.svFlags & SVF_BOT)) { - G_Voice( ent, who, SAY_TELL, VOICECHAT_KILLGAUNTLET, qfalse ); // and I killed them with a gauntlet - } + G_Voice( ent, who, SAY_TELL, VOICECHAT_KILLGAUNTLET, qfalse ); // and I killed them with a gauntlet } else { - if (!(who->r.svFlags & SVF_BOT)) { - G_Voice( ent, who, SAY_TELL, VOICECHAT_KILLINSULT, qfalse ); // and I killed them with something else - } + G_Voice( ent, who, SAY_TELL, VOICECHAT_KILLINSULT, qfalse ); // and I killed them with something else } ent->player->lastkilled_player = -1; return; @@ -1286,9 +1280,7 @@ static void Cmd_VoiceTaunt_f( gentity_t *ent ) { who = g_entities + i; if (who->player && who != ent && who->player->sess.sessionTeam == ent->player->sess.sessionTeam) { if (who->player->rewardTime > level.time) { - if (!(who->r.svFlags & SVF_BOT)) { - G_Voice( ent, who, SAY_TELL, VOICECHAT_PRAISE, qfalse ); - } + G_Voice( ent, who, SAY_TELL, VOICECHAT_PRAISE, qfalse ); return; } } From 6846bc8536878f0ac268baa0cc168cde935eb1c9 Mon Sep 17 00:00:00 2001 From: Zack Middleton Date: Wed, 17 Oct 2018 13:20:16 -0500 Subject: [PATCH 02/10] Make Team Arena prevTeamMember command loop around player list Team Arena HUD's team member info box can be cycled through using nextTeamMember and prevTeamMember commands. nextTeamMember command loops around when end of list is reached but prevTeamMember command got stuck at last entry in list (team overview). --- code/cgame/cg_newdraw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/cgame/cg_newdraw.c b/code/cgame/cg_newdraw.c index 82989cab9..22dcdd983 100644 --- a/code/cgame/cg_newdraw.c +++ b/code/cgame/cg_newdraw.c @@ -279,7 +279,7 @@ void CG_SelectPrevPlayer( int localPlayerNum ) { team = cg.snap->pss[ localPlayerNum ].persistant[PERS_TEAM]; CG_CheckOrderPending( localPlayerNum ); - if (cg_currentSelectedPlayer[ localPlayerNum ].integer > 0 && cg_currentSelectedPlayer[ localPlayerNum ].integer < numSortedTeamPlayers[team]) { + if (cg_currentSelectedPlayer[ localPlayerNum ].integer > 0 && cg_currentSelectedPlayer[ localPlayerNum ].integer <= numSortedTeamPlayers[team]) { cg_currentSelectedPlayer[ localPlayerNum ].integer--; } else { cg_currentSelectedPlayer[ localPlayerNum ].integer = numSortedTeamPlayers[team]; From 01726d27b35548cab972070233a5dc287963ae87 Mon Sep 17 00:00:00 2001 From: Zack Middleton Date: Thu, 15 Nov 2018 18:43:52 -0600 Subject: [PATCH 03/10] mint-arena: Change version to 1.0.1 --- Makefile | 2 +- code/game/bg_public.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 04efe32a6..7112bb475 100644 --- a/Makefile +++ b/Makefile @@ -98,7 +98,7 @@ endif export CROSS_COMPILING ifndef VERSION -VERSION=1.0.0 +VERSION=1.0.1 endif ifndef VM_PREFIX diff --git a/code/game/bg_public.h b/code/game/bg_public.h index 2a7526e50..eb065304b 100644 --- a/code/game/bg_public.h +++ b/code/game/bg_public.h @@ -44,7 +44,7 @@ Suite 120, Rockville, Maryland 20850 USA. // Keep this in-sync with VERSION in Makefile. #ifndef PRODUCT_VERSION - #define PRODUCT_VERSION "1.0.0" + #define PRODUCT_VERSION "1.0.1" #endif // because games can change separately from the main system protocol, we need a From 21d91ce001f90f2172e541274587fa485b802e63 Mon Sep 17 00:00:00 2001 From: Zack Middleton Date: Sun, 7 Apr 2019 20:40:42 -0500 Subject: [PATCH 04/10] mint-arena: Fix QVM printf %g trailing zero removal I added support for removing trailing zeros for %g in QVMs in 2015. It's easier to look for differences in lots of debug text without trailing zeros. However it did not work correctly if there are leading zeros or a zero in middle of digits. So fix those and also add support for %#g to disable removing trailing zeros. Still missing exponent notation. Before: printf( %g, 0.000125 ) -> 0.22 printf( %g, 0.125000 ) -> 0.125 printf( %g, 0.001250 ) -> 0.255 printf( %g, 0.000000 ) -> 0 printf( %g, 0.010200 ) -> 0.1 After: printf( %g, 0.000125 ) -> 0.000125 printf( %g, 0.125000 ) -> 0.125 printf( %g, 0.001250 ) -> 0.00125 printf( %g, 0.000000 ) -> 0 printf( %g, 0.010200 ) -> 0.0102 --- code/game/bg_lib.c | 65 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 58 insertions(+), 7 deletions(-) diff --git a/code/game/bg_lib.c b/code/game/bg_lib.c index 2a2da556e..dfb2a85ba 100644 --- a/code/game/bg_lib.c +++ b/code/game/bg_lib.c @@ -1732,6 +1732,7 @@ static int dopr (char *buffer, size_t maxlen, const char *format, va_list args) case 'E': flags |= DP_F_UP; case 'e': + /* ZTM: TODO: %e is missing exponent notation */ if (cflags == DP_C_LDOUBLE) fvalue = va_arg (args, LDOUBLE); else @@ -1742,7 +1743,11 @@ static int dopr (char *buffer, size_t maxlen, const char *format, va_list args) case 'G': flags |= DP_F_UP; case 'g': - flags |= DP_F_STRIP_TRAILING_ZEROS; + /* ZTM: TODO: Unlike %f, %g percision ("max" variable) isn't suppose + to count leading zeros in value and suppose to switch + to exponent notation if value has four leading zeros */ + if (!(flags & DP_F_NUM)) + flags |= DP_F_STRIP_TRAILING_ZEROS; if (cflags == DP_C_LDOUBLE) fvalue = va_arg (args, LDOUBLE); else @@ -2059,17 +2064,63 @@ static int fmtfp (char *buffer, size_t *currlen, size_t maxlen, { int i; +#ifdef DEBUG_SNPRINTF_G_FORMAT + trap_Print( " Before strip trailing zeros: " ); + + for (i = fplace-1; i >= 0; i--) { + char str[2]; + str[0] = fconvert[i]; + str[1] = '\0'; + trap_Print( str ); + } + trap_Print( "\n" ); + + trap_Print( " Found non-zero at: " ); +#endif + /* fconvert is reverse order... */ - for ( i = 1; i < fplace && i < max; i++ ) { - if ( fconvert[fplace-i] == '0' || fconvert[fplace-i] == '\0' ) { + for (i = 0; i < fplace; i++) + { + if (fconvert[i] != '0') + { +#ifdef DEBUG_SNPRINTF_G_FORMAT + char str[2]; + str[0] = "0123456789abcdef"[i]; + str[1] = '\0'; + trap_Print( str ); +#endif + break; } } - i--; - if ( i > 0 ) { - memmove( &fconvert[0], &fconvert[fplace-i], sizeof(char) * fplace-i ); + +#ifdef DEBUG_SNPRINTF_G_FORMAT + trap_Print( "\n" ); +#endif + + if (i == fplace) + { + /* fractional part is zero, don't display it */ + max = fplace = 0; + } + else + { + max -= i; + fplace -= i; + memmove(&fconvert[0], &fconvert[i], sizeof(char) * (fplace+1)); + } + +#ifdef DEBUG_SNPRINTF_G_FORMAT + trap_Print( " After strip trailing zeros: " ); + + for (i = fplace-1; i >= 0; i--) { + char str[2]; + str[0] = fconvert[i]; + str[1] = '\0'; + trap_Print( str ); } - max = fplace = i; + trap_Print( "\n" ); +#endif } /* -1 for decimal point, another -1 if we are printing a sign */ From 41c691b67c547f3f8120e5b819a6c6c0fb32155d Mon Sep 17 00:00:00 2001 From: Zack Middleton Date: Tue, 13 Aug 2019 21:56:17 -0500 Subject: [PATCH 05/10] mint-arena: Fix select order for joystick analog in controls menu Keyboard arrow key selection order for joystick analog and threshhold settings were reversed. --- code/q3_ui/ui_controls2.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/code/q3_ui/ui_controls2.c b/code/q3_ui/ui_controls2.c index b5a9f3e82..3ef767cf1 100644 --- a/code/q3_ui/ui_controls2.c +++ b/code/q3_ui/ui_controls2.c @@ -129,8 +129,8 @@ enum { ID_AUTOSWITCH, ID_MOUSESPEED, ID_SELECTJOY, - ID_JOYANALOG, ID_JOYTHRESHOLD, + ID_JOYANALOG, ID_SMOOTHMOUSE }; @@ -234,8 +234,8 @@ typedef struct menuaction_s togglemenu; menutext_s selectjoy; - menuradiobutton_s joyanalog; menuslider_s joythreshold; + menuradiobutton_s joyanalog; int section; char playerModel[MAX_QPATH]; char playerHead[MAX_QPATH]; @@ -1044,8 +1044,8 @@ static void Controls_GetConfig( void ) s_controls.alwaysrun.curvalue = Com_Clamp( 0, 1, Controls_GetCvarValue( Com_LocalPlayerCvarName(s_controls.localPlayerNum, "cl_run" ) ) ); s_controls.cyclepastgauntlet.curvalue = Com_Clamp( 0, 1, Controls_GetCvarValue( Com_LocalPlayerCvarName(s_controls.localPlayerNum, "cg_cyclePastGauntlet" ) ) ); s_controls.autoswitch.curvalue = Com_Clamp( 0, 1, Controls_GetCvarValue( Com_LocalPlayerCvarName(s_controls.localPlayerNum, "cg_autoswitch" ) ) ); - s_controls.joyanalog.curvalue = Com_Clamp( 0, 1, Controls_GetCvarValue( Com_LocalPlayerCvarName(s_controls.localPlayerNum, "in_joystickUseAnalog" ) ) ); s_controls.joythreshold.curvalue = Com_Clamp( 0.05f, 0.75f, Controls_GetCvarValue( Com_LocalPlayerCvarName(s_controls.localPlayerNum, "in_joystickThreshold" ) ) ); + s_controls.joyanalog.curvalue = Com_Clamp( 0, 1, Controls_GetCvarValue( Com_LocalPlayerCvarName(s_controls.localPlayerNum, "in_joystickUseAnalog" ) ) ); } /* @@ -1093,8 +1093,8 @@ static void Controls_SetConfig( void ) trap_Cvar_SetValue( Com_LocalPlayerCvarName( s_controls.localPlayerNum, "cl_run" ), s_controls.alwaysrun.curvalue ); trap_Cvar_SetValue( Com_LocalPlayerCvarName( s_controls.localPlayerNum, "cg_cyclePastGauntlet" ), s_controls.cyclepastgauntlet.curvalue ); trap_Cvar_SetValue( Com_LocalPlayerCvarName( s_controls.localPlayerNum, "cg_autoswitch" ), s_controls.autoswitch.curvalue ); - trap_Cvar_SetValue( Com_LocalPlayerCvarName( s_controls.localPlayerNum, "in_joystickUseAnalog" ), s_controls.joyanalog.curvalue ); trap_Cvar_SetValue( Com_LocalPlayerCvarName( s_controls.localPlayerNum, "in_joystickThreshold" ), s_controls.joythreshold.curvalue ); + trap_Cvar_SetValue( Com_LocalPlayerCvarName( s_controls.localPlayerNum, "in_joystickUseAnalog" ), s_controls.joyanalog.curvalue ); } /* @@ -1132,8 +1132,8 @@ static void Controls_SetDefaults( void ) s_controls.autoswitch.curvalue = Controls_GetCvarDefault( Com_LocalPlayerCvarName(s_controls.localPlayerNum, "cg_autoswitch" ) ); trap_Cvar_SetValue(Com_LocalPlayerCvarName(s_controls.localPlayerNum, "in_joystick"), 0); trap_Cvar_SetValue(Com_LocalPlayerCvarName(s_controls.localPlayerNum, "in_joystickNo"), 0); - s_controls.joyanalog.curvalue = Controls_GetCvarDefault( Com_LocalPlayerCvarName(s_controls.localPlayerNum, "in_joystickUseAnalog" ) ); s_controls.joythreshold.curvalue = Controls_GetCvarDefault( Com_LocalPlayerCvarName(s_controls.localPlayerNum, "in_joystickThreshold" ) ); + s_controls.joyanalog.curvalue = Controls_GetCvarDefault( Com_LocalPlayerCvarName(s_controls.localPlayerNum, "in_joystickUseAnalog" ) ); } /* @@ -1410,8 +1410,8 @@ static void Controls_MenuEvent( void* ptr, int event ) case ID_ALWAYSRUN: case ID_CYCLEPASTGAUNTLET: case ID_AUTOSWITCH: - case ID_JOYANALOG: case ID_JOYTHRESHOLD: + case ID_JOYANALOG: if (event == QM_ACTIVATED) { s_controls.changesmade = qtrue; @@ -1919,14 +1919,6 @@ static void Controls_MenuInit( int localPlayerNum ) s_controls.selectjoy.color = text_color_normal; s_controls.selectjoy.style = UI_RIGHT|UI_SMALLFONT; - s_controls.joyanalog.generic.type = MTYPE_RADIOBUTTON; - s_controls.joyanalog.generic.flags = QMF_SMALLFONT; - s_controls.joyanalog.generic.x = SCREEN_WIDTH/2; - s_controls.joyanalog.generic.name = "analog input"; - s_controls.joyanalog.generic.id = ID_JOYANALOG; - s_controls.joyanalog.generic.callback = Controls_MenuEvent; - s_controls.joyanalog.generic.statusbar = Controls_StatusBar; - s_controls.joythreshold.generic.type = MTYPE_SLIDER; s_controls.joythreshold.generic.x = SCREEN_WIDTH/2; s_controls.joythreshold.generic.flags = QMF_SMALLFONT; @@ -1937,6 +1929,14 @@ static void Controls_MenuInit( int localPlayerNum ) s_controls.joythreshold.maxvalue = 0.75f; s_controls.joythreshold.generic.statusbar = Controls_StatusBar; + s_controls.joyanalog.generic.type = MTYPE_RADIOBUTTON; + s_controls.joyanalog.generic.flags = QMF_SMALLFONT; + s_controls.joyanalog.generic.x = SCREEN_WIDTH/2; + s_controls.joyanalog.generic.name = "analog input"; + s_controls.joyanalog.generic.id = ID_JOYANALOG; + s_controls.joyanalog.generic.callback = Controls_MenuEvent; + s_controls.joyanalog.generic.statusbar = Controls_StatusBar; + s_controls.name.generic.type = MTYPE_PTEXT; s_controls.name.generic.flags = QMF_CENTER_JUSTIFY|QMF_INACTIVE; s_controls.name.generic.x = 320; @@ -1967,8 +1967,8 @@ static void Controls_MenuInit( int localPlayerNum ) Menu_AddItem( &s_controls.menu, &s_controls.centerview ); Menu_AddItem( &s_controls.menu, &s_controls.zoomview ); Menu_AddItem( &s_controls.menu, &s_controls.selectjoy ); - Menu_AddItem( &s_controls.menu, &s_controls.joyanalog ); Menu_AddItem( &s_controls.menu, &s_controls.joythreshold ); + Menu_AddItem( &s_controls.menu, &s_controls.joyanalog ); Menu_AddItem( &s_controls.menu, &s_controls.alwaysrun ); Menu_AddItem( &s_controls.menu, &s_controls.run ); From e38b3aa6ad5161b5a4e0f0aa8b483ed0a6773ed0 Mon Sep 17 00:00:00 2001 From: Zack Middleton Date: Tue, 13 Aug 2019 22:46:02 -0500 Subject: [PATCH 06/10] mint-arena: Change console to use font actually included with Spearmint --- code/cgame/cg_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/cgame/cg_main.c b/code/cgame/cg_main.c index 8edb00c0e..4c2b9b104 100644 --- a/code/cgame/cg_main.c +++ b/code/cgame/cg_main.c @@ -515,7 +515,7 @@ static cvarTable_t cgameCvarTable[] = { { &cg_forceBitmapFonts, "cg_forceBitmapFonts", "0", CVAR_ARCHIVE | CVAR_LATCH, RANGE_BOOL }, { &cg_drawGrappleHook, "cg_drawGrappleHook", "1", CVAR_ARCHIVE, RANGE_BOOL }, { &cg_drawBBox, "cg_drawBBox", "0", CVAR_CHEAT, RANGE_BOOL }, - { &cg_consoleFont, "cg_consoleFont", "fonts/LiberationMono-Bold.ttf", CVAR_ARCHIVE | CVAR_LATCH, RANGE_ALL }, + { &cg_consoleFont, "cg_consoleFont", "fonts/LiberationMono-Regular.ttf", CVAR_ARCHIVE | CVAR_LATCH, RANGE_ALL }, { &cg_consoleFontSize, "cg_consoleFontSize", "8", CVAR_ARCHIVE | CVAR_LATCH, RANGE_INT( 4, 24 ) }, { &cg_hudFont, "cg_hudFont", "fonts/LiberationSans-Bold.ttf", CVAR_ARCHIVE | CVAR_LATCH, RANGE_ALL }, { &cg_hudFontBorder, "cg_hudFontBorder", "2", CVAR_ARCHIVE | CVAR_LATCH, RANGE_FLOAT( 0, 10 ) }, From 8395beb4a9c772a71ff85682f302c2e949d7036e Mon Sep 17 00:00:00 2001 From: Zack Middleton Date: Fri, 11 Oct 2019 20:04:03 -0500 Subject: [PATCH 07/10] mint-arena: Fix third person lightning bolt without weapon model Lightning bolt for world/third person player model when missing weapon model was only added if the local player was firing but should be added if the player entity is firing. (It was copy-paste error from first person view weapon code.) --- code/cgame/cg_weapons.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/cgame/cg_weapons.c b/code/cgame/cg_weapons.c index 0baef59df..27ba08a7b 100644 --- a/code/cgame/cg_weapons.c +++ b/code/cgame/cg_weapons.c @@ -1252,7 +1252,7 @@ void CG_AddPlayerWeapon( refEntity_t *parent, playerState_t *ps, centity_t *cent VectorCopy( nonPredictedCent->pe.flashOrigin, flash.origin ); } - if ( ( cg.cur_lc->predictedPlayerState.eFlags & EF_FIRING ) + if ( ( nonPredictedCent->currentState.eFlags & EF_FIRING ) && ( ps || cg.cur_lc->renderingThirdPerson || cent->currentState.number != cg.cur_lc->predictedPlayerState.playerNum ) ) { // special hack for lightning gun... From 5395d023d8691d7848f8a8aa37139caa00a57b5a Mon Sep 17 00:00:00 2001 From: Zack Middleton Date: Fri, 11 Oct 2019 20:41:28 -0500 Subject: [PATCH 08/10] mint-arena: Fix lightning trail being fired from corpses The lightning trail is fired from the real non-predicted entity for the local client so it can show the server location. The real client entity was always used to check if a player entity is firing the lighting gun. This potentially causes corpses and players on single player podiums with lightning gun or missing weapon model to render the lightning trail if the real (living) client is firing the lightning gun. This is an issue for corpses as they have WP_NONE and thus always missing the weapon model. It's not an issue for podium players as it's not possible to fire during intermission. Note: This was committed to ioquake3, which doesn't draw lightning if missing weapon model, as "Fix lightning gun handling for corpses and single player podiums". --- code/cgame/cg_weapons.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/code/cgame/cg_weapons.c b/code/cgame/cg_weapons.c index 27ba08a7b..aaa761d20 100644 --- a/code/cgame/cg_weapons.c +++ b/code/cgame/cg_weapons.c @@ -1230,7 +1230,11 @@ void CG_AddPlayerWeapon( refEntity_t *parent, playerState_t *ps, centity_t *cent } // make sure we aren't looking at cg.cur_lc->predictedPlayerEntity for LG - nonPredictedCent = &cg_entities[cent->currentState.playerNum]; + if ( cent == &cg.cur_lc->predictedPlayerEntity ) { + nonPredictedCent = &cg_entities[cent->currentState.playerNum]; + } else { + nonPredictedCent = cent; + } if ( !weapon->weaponModel || !weapon->flashModel ) { // use default flash origin when no flash model @@ -1314,13 +1318,6 @@ void CG_AddPlayerWeapon( refEntity_t *parent, playerState_t *ps, centity_t *cent CG_AddWeaponWithPowerups( &barrel, cent->currentState.powerups ); } - // if the index of the nonPredictedCent is not the same as the playerNum - // then this is a fake player (like on the single player podiums), so - // go ahead and use the cent - if( ( nonPredictedCent - cg_entities ) != cent->currentState.playerNum ) { - nonPredictedCent = cent; - } - memset( &flash, 0, sizeof( flash ) ); VectorCopy( parent->lightingOrigin, flash.lightingOrigin ); flash.shadowPlane = parent->shadowPlane; From 95c184ea338d0248eb360ac5b4951cdc5f2733db Mon Sep 17 00:00:00 2001 From: Zack Middleton Date: Mon, 28 Oct 2019 23:25:05 -0500 Subject: [PATCH 09/10] Fix team orders menu not listing clients with lower clientnums If bots join before the local client (dedicated server) the bots would not be listed in the Q3A team orders menu and so they could not be given orders using the menu. The Q3A team orders menu got local client's team while looping through all clients. Ignoring any bots with clientnum lower than the local client. Get local client's team before the loop so all bots are listed. --- code/q3_ui/ui_teamorders.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/code/q3_ui/ui_teamorders.c b/code/q3_ui/ui_teamorders.c index 82c174307..deb125f5c 100644 --- a/code/q3_ui/ui_teamorders.c +++ b/code/q3_ui/ui_teamorders.c @@ -393,7 +393,7 @@ static void UI_TeamOrdersMenu_BuildBotList( void ) { int numPlayers; int isBot; int n; - char playerTeam = '3'; + char playerTeam; char botTeam; char info[MAX_INFO_STRING]; @@ -408,14 +408,16 @@ static void UI_TeamOrdersMenu_BuildBotList( void ) { numPlayers = atoi( Info_ValueForKey( info, "sv_maxclients" ) ); teamOrdersMenuInfo.gametype = atoi( Info_ValueForKey( info, "g_gametype" ) ); - for( n = 0; n < numPlayers && teamOrdersMenuInfo.numBots < 9; n++ ) { - trap_GetConfigString( CS_PLAYERS + n, info, MAX_INFO_STRING ); + trap_GetConfigString( CS_PLAYERS + cg.localPlayers[0].playerNum, info, MAX_INFO_STRING ); + playerTeam = *Info_ValueForKey( info, "t" ); + for( n = 0; n < numPlayers && teamOrdersMenuInfo.numBots < 9; n++ ) { if( n == cg.localPlayers[0].playerNum ) { - playerTeam = *Info_ValueForKey( info, "t" ); continue; } + trap_GetConfigString( CS_PLAYERS + n, info, MAX_INFO_STRING ); + isBot = atoi( Info_ValueForKey( info, "skill" ) ); if( !isBot ) { continue; From 34320156df2b6c34f36e55d3688ce409bb86d3da Mon Sep 17 00:00:00 2001 From: Zack Middleton Date: Sun, 3 Nov 2019 15:25:03 -0600 Subject: [PATCH 10/10] mint-arena: Change version to 1.0.2 --- Makefile | 2 +- code/game/bg_public.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 7112bb475..f981b8c65 100644 --- a/Makefile +++ b/Makefile @@ -98,7 +98,7 @@ endif export CROSS_COMPILING ifndef VERSION -VERSION=1.0.1 +VERSION=1.0.2 endif ifndef VM_PREFIX diff --git a/code/game/bg_public.h b/code/game/bg_public.h index eb065304b..4e769a286 100644 --- a/code/game/bg_public.h +++ b/code/game/bg_public.h @@ -44,7 +44,7 @@ Suite 120, Rockville, Maryland 20850 USA. // Keep this in-sync with VERSION in Makefile. #ifndef PRODUCT_VERSION - #define PRODUCT_VERSION "1.0.1" + #define PRODUCT_VERSION "1.0.2" #endif // because games can change separately from the main system protocol, we need a