DEADSOFTWARE

system: add option -dDISABLE_SYSTEM
[d2df-sdl.git] / src / game / g_window.pas
1 (* Copyright (C) Doom 2D: Forever Developers
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, version 3 of the License ONLY.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 *
12 * You should have received a copy of the GNU General Public License
13 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 *)
15 {$INCLUDE ../shared/a_modes.inc}
16 unit g_window;
18 interface
20 procedure ProcessLoading (forceUpdate: Boolean=false);
22 implementation
24 uses
25 {$IFDEF ENABLE_RENDER}
26 r_render,
27 {$ENDIF}
28 {$IFDEF ENABLE_SYSTEM}
29 g_system,
30 {$ENDIF}
31 e_sound, g_net
32 ;
34 procedure ProcessLoading (forceUpdate: Boolean = False);
35 var update: Boolean;
36 begin
37 {$IFDEF ENABLE_SYSTEM}
38 update := sys_HandleInput() = False;
39 {$ELSE}
40 update := True;
41 {$ENDIF}
42 if update then
43 begin
44 {$IFDEF ENABLE_RENDER}
45 r_Render_DrawLoading(forceUpdate);
46 {$ENDIF}
47 e_SoundUpdate();
48 // TODO: At the moment, I left here only host network processing, because the client code must
49 // handle network events on its own. Otherwise separate network cases that use different calls to
50 // enet_host_service() WILL lose their packets (for example, resource downloading). So they have
51 // to handle everything by themselves. But in general, this MUST be removed completely, since
52 // updating the window should never affect the network. Use single enet_host_service(), period.
53 if NetMode = NET_SERVER then g_Net_Host_Update();
54 end
55 end;
57 end.