diff --git a/src/game/g_game.pas b/src/game/g_game.pas
index e16a3661a00c169e0fac650d0554e3ae72be4c73..b1a10ea8ba434ccaf0394d86b186678309e2ffaa 100644 (file)
--- a/src/game/g_game.pas
+++ b/src/game/g_game.pas
gWeaponAction: Array [0..1, WP_FACT..WP_LACT] of Boolean; // [player, weapon_action]
gSelectWeapon: Array [0..1, WP_FIRST..WP_LAST] of Boolean; // [player, weapon]
gInterReadyCount: Integer = 0;
+ gMaxBots: Integer = 127;
g_dbg_ignore_bounds: Boolean = false;
r_smallmap_h: Integer = 0; // 0: left; 1: center; 2: right
begin
if (NetEvent.kind = ENET_EVENT_TYPE_RECEIVE) then
begin
- if (NetEvent.channelID = NET_CHAN_DOWNLOAD_EX) then
- begin
- // ignore all download packets, they're processed by separate code
- enet_packet_destroy(NetEvent.packet);
- continue;
- end;
Ptr := NetEvent.packet^.data;
if not InMsg.Init(Ptr, NetEvent.packet^.dataLength, True) then
begin
end;
end;
- ProcessLoading(true);
-
+ ProcessLoading(True);
if g_Net_UserRequestExit() then
begin
State := 0;
if NetMode = NET_SERVER then
begin
+ // reset full state flags
+ if NetClients <> nil then
+ for I := 0 to High(NetClients) do
+ NetClients[I].FullUpdateSent := False;
+
MH_SEND_GameEvent(NET_EV_MAPSTART, gGameSettings.GameMode, Map);
// Ìàñòåðñåðâåð
(gsTimeLimit div 60) mod 60,
gsTimeLimit mod 60]));
end
+ else if cmd = 'g_max_bots' then
+ begin
+ if Length(P) > 1 then
+ gMaxBots := nclamp(StrToIntDef(P[1], gMaxBots), 0, 127);
+ g_Console_Add('g_max_bots = ' + IntToStr(gMaxBots));
+ end
else if cmd = 'g_maxlives' then
begin
if Length(P) > 1 then
end else
g_Console_Add(_lc[I_MSG_GM_UNAVAIL]);
end
+ else if (cmd = 'an') or (cmd = 'announce') then
+ begin
+ if g_Game_IsNet then
+ begin
+ if Length(P) > 1 then
+ begin
+ for a := 1 to High(P) do
+ chstr := chstr + P[a] + ' ';
+
+ if Length(chstr) > 200 then SetLength(chstr, 200);
+
+ if Length(chstr) < 1 then
+ begin
+ g_Console_Add('announce <text>');
+ Exit;
+ end;
+
+ chstr := 'centerprint 100 ' + b_Text_Format(chstr);
+ if g_Game_IsClient then
+ MC_SEND_RCONCommand(chstr)
+ else
+ g_Console_Process(chstr, True);
+ end
+ else
+ g_Console_Add('announce <text>');
+ end else
+ g_Console_Add(_lc[I_MSG_GM_UNAVAIL]);
+ end
else if cmd = 'game' then
begin
if gGameSettings.GameType <> GT_NONE then
name := e_CatPath(dir, Filename + '.png');
s := createDiskFile(name);
try
- e_MakeScreenshot(s, gScreenWidth, gScreenHeight);
+ e_MakeScreenshot(s, gWinSizeX, gWinSizeY);
s.Free;
g_Console_Add(Format(_lc[I_CONSOLE_SCREENSHOT], [name]))
except
end;
g_ActiveWindow := nil;
-
- ProcessLoading(true);
+ ProcessLoading(True);
end;
procedure g_Game_StepLoading(Value: Integer = -1);
end
else
CurValue := Value;
+
if (ShowCount > LOADING_SHOW_STEP) or (Value > -1) then
begin
ShowCount := 0;
- ProcessLoading();
+ ProcessLoading(False);
end;
end;
end;