From bc73e6c570ea4dc04ecbb501a90bfc670141e161 Mon Sep 17 00:00:00 2001 From: "Dmitry D. Chernov" Date: Sat, 15 Jul 2023 20:46:45 +1000 Subject: [PATCH] Select bot preset randomly if no arguments are given to the 'bot_addlist' console command --- src/game/g_game.pas | 41 +++++++++++++++++++---------------------- src/game/g_player.pas | 29 +++++++++++++++++------------ 2 files changed, 36 insertions(+), 34 deletions(-) diff --git a/src/game/g_game.pas b/src/game/g_game.pas index 4fbede4..71eb609 100644 --- a/src/game/g_game.pas +++ b/src/game/g_game.pas @@ -6978,32 +6978,29 @@ begin else if (cmd = 'addbot') or (cmd = 'bot_add') then begin - if Length(P) > 2 then - g_Bot_Add(TEAM_NONE, StrToIntDef(P[1], 2), StrToIntDef(P[2], 100)) - else if Length(P) > 1 then - g_Bot_Add(TEAM_NONE, StrToIntDef(P[1], 2)) + case Length(P) of + 1: g_Bot_Add(TEAM_NONE, 2); + 2: g_Bot_Add(TEAM_NONE, StrToIntDef(P[1], 2)); else - g_Bot_Add(TEAM_NONE, 2); + g_Bot_Add(TEAM_NONE, StrToIntDef(P[1], 2), StrToIntDef(P[2], 100)); + end; end else if cmd = 'bot_addlist' then begin - if Length(P) > 1 then - begin - if Length(P) = 2 then - g_Bot_AddList(TEAM_NONE, P[1], StrToIntDef(P[1], -1)) - else - begin - if P[2] = 'red' then - t := TEAM_RED - else if P[2] = 'blue' then - t := TEAM_BLUE - else - t := TEAM_NONE; - - if Length(P) = 3 - then g_Bot_AddList(t, P[1], StrToIntDef(P[1], -1)) - else g_Bot_AddList(t, P[1], StrToIntDef(P[1], -1), StrToIntDef(P[3], 100)); - end; + case Length(P) of + 1: g_Bot_AddList(TEAM_NONE, ''); + 2: g_Bot_AddList(TEAM_NONE, P[1], StrToIntDef(P[1], -1)); + else + if P[2] = 'red' then + t := TEAM_RED + else if P[2] = 'blue' then + t := TEAM_BLUE + else + t := TEAM_NONE; + + if Length(P) = 3 + then g_Bot_AddList(t, P[1], StrToIntDef(P[1], -1)) + else g_Bot_AddList(t, P[1], StrToIntDef(P[1], -1), StrToIntDef(P[3], 100)); end; end else if cmd = 'bot_removeall' then diff --git a/src/game/g_player.pas b/src/game/g_player.pas index 06176d9..cda360c 100644 --- a/src/game/g_player.pas +++ b/src/game/g_player.pas @@ -1096,18 +1096,23 @@ begin Team := BotList[num].team; // CTF / TDM // Âûáèðàåì íàñòðîéêè áîòà èç ñïèñêà ïî íîìåðó èëè èìåíè: - lName := AnsiLowerCase(lName); - if (num < 0) or (num > Length(BotList)-1) then - num := -1; - if (num = -1) and (lName <> '') and (BotList <> nil) then - for a := 0 to High(BotList) do - if AnsiLowerCase(BotList[a].name) = lName then - begin - num := a; - Break; - end; - if num = -1 then - Exit; + if lName = '' then + num := Random(Length(BotList)) + else + begin + if (num < 0) or (num > Length(BotList)-1) then + num := -1; + if (num = -1) and (BotList <> nil) then + lName := AnsiLowerCase(lName); + for a := 0 to High(BotList) do + if AnsiLowerCase(BotList[a].name) = lName then + begin + num := a; + Break; + end; + if num = -1 then + Exit; + end; // Èìÿ áîòà: _name := BotList[num].name; -- 2.29.2