diff --git a/src/game/g_game.pas b/src/game/g_game.pas
index 2debca1f909544d3fe6dc55b70cee0347675ebc5..602fa4207f83800a25267accedefe238d58b35af 100644 (file)
--- a/src/game/g_game.pas
+++ b/src/game/g_game.pas
{$IFDEF ENABLE_MENU}
g_gui,
{$ENDIF}
- {$IFNDEF HEADLESS}
- g_touch,
- {$ENDIF}
SysUtils, Classes, MAPDEF,
g_base, g_basic, g_player, g_res_downloader,
g_sound, utils, md5, mempool, xprofiler,
procedure g_Game_Announce_BodyKill(SpawnerUID: Word);
procedure g_Game_StartVote(Command, Initiator: string);
procedure g_Game_CheckVote;
-{$IFNDEF HEADLESS}
+{$IFDEF ENABLE_RENDER}
procedure g_TakeScreenShot(Filename: string = '');
{$ENDIF}
procedure g_FatalError(Text: String);
{$IFDEF ENABLE_MENU}
g_menu,
{$ENDIF}
+ {$IFDEF ENABLE_GFX}
+ g_gfx,
+ {$ENDIF}
+ {$IFDEF ENABLE_GIBS}
+ g_gibs,
+ {$ENDIF}
+ {$IFDEF ENABLE_SHELLS}
+ g_shells,
+ {$ENDIF}
+ {$IFDEF ENABLE_CORPSES}
+ g_corpses,
+ {$ENDIF}
+ {$IFDEF ENABLE_RENDER}
+ r_render,
+ {$ENDIF}
{$IFNDEF HEADLESS}
- r_render, g_system,
+ g_system,
{$ENDIF}
e_res, g_window,
e_input, e_log, g_console, g_items, g_map, g_panel,
- g_playermodel, g_gfx, g_options, Math,
+ g_playermodel, g_options, Math,
g_triggers, g_monsters, e_sound, CONFIG,
g_language, g_net, g_phys,
ENet, e_msg, g_netmsg, g_netmaster,
g_Map_Free(freeTextures);
g_Player_Free();
- g_Player_RemoveAllCorpses();
+
+ {$IFDEF ENABLE_GIBS}
+ g_Gibs_RemoveAll;
+ {$ENDIF}
+ {$IFDEF ENALBE_SHELLS}
+ g_Shells_RemoveAll;
+ {$ENDIF}
+ {$IFDEF ENABLE_CORPSES}
+ g_Corpses_RemoveAll;
+ {$ENDIF}
gGameSettings.GameType := GT_NONE;
if gGameSettings.GameMode = GM_SINGLE then
g_Triggers_Update();
g_Weapon_Update();
g_Monsters_Update();
- g_GFX_Update();
+ {$IFDEF ENABLE_GFX}
+ g_GFX_Update;
+ {$ENDIF}
g_Player_UpdateAll();
- g_Player_UpdatePhysicalObjects();
+ {$IFDEF ENABLE_GIBS}
+ g_Gibs_Update;
+ {$ENDIF}
+ {$IFDEF ENABLE_CORPSES}
+ g_Corpses_Update;
+ {$ENDIF}
+ {$IFDEF ENABLE_SHELLS}
+ g_Shells_Update;
+ {$ENDIF}
// server: send newly spawned monsters unconditionally
if (gGameSettings.GameType = GT_SERVER) then
nws: AnsiString;
begin
g_Map_Free((Map <> gCurrentMapFileName) and (oldMapPath <> gCurrentMapFileName));
- g_Player_RemoveAllCorpses();
+
+ {$IFDEF ENABLE_GIBS}
+ g_Gibs_RemoveAll;
+ {$ENDIF}
+ {$IFDEF ENALBE_SHELLS}
+ g_Shells_RemoveAll;
+ {$ENDIF}
+ {$IFDEF ENABLE_CORPSES}
+ g_Corpses_RemoveAll;
+ {$ENDIF}
if (not g_Game_IsClient) and
(gSwitchGameMode <> gGameSettings.GameMode) and
begin
//result := g_Map_Load(gGameSettings.WAD + ':\' + ResName);
result := g_Map_Load(NewWAD+':\'+ResName);
- {$IFNDEF HEADLESS}
+ {$IFDEF ENABLE_RENDER}
r_Render_LoadTextures;
{$ENDIF}
end;
Exit;
end;
- g_Player_RemoveAllCorpses;
+ {$IFDEF ENABLE_GIBS}
+ g_Gibs_RemoveAll;
+ {$ENDIF}
+ {$IFDEF ENALBE_SHELLS}
+ g_Shells_RemoveAll;
+ {$ENDIF}
+ {$IFDEF ENABLE_CORPSES}
+ g_Corpses_RemoveAll;
+ {$ENDIF}
+
g_Game_Message(_lc[I_MESSAGE_LMS_START], 144);
if g_Game_IsNet then
MH_SEND_GameEvent(NET_EV_LMS_START);
begin
if Length(p) = 2 then
begin
- a := Max(0, StrToIntDef(p[1], 0));
- g_GFX_SetMax(a)
+ {$IFDEF ENABLE_GFX}
+ a := Max(0, StrToIntDef(p[1], 0));
+ g_GFX_SetMax(a)
+ {$ENDIF}
end
else if Length(p) = 1 then
begin
- e_LogWritefln('%s', [g_GFX_GetMax()])
+ {$IFDEF ENABLE_GFX}
+ e_LogWritefln('%s', [g_GFX_GetMax()])
+ {$ELSE}
+ e_LogWritefln('%s', [0])
+ {$ENDIF}
end
else
begin
begin
if Length(p) = 2 then
begin
- a := Max(0, StrToIntDef(p[1], 0));
- g_Shells_SetMax(a)
+ {$IFDEF ENABLE_SHELLS}
+ a := Max(0, StrToIntDef(p[1], 0));
+ g_Shells_SetMax(a)
+ {$ENDIF}
end
else if Length(p) = 1 then
begin
- e_LogWritefln('%s', [g_Shells_GetMax()])
+ {$IFDEF ENABLE_SHELLS}
+ e_LogWritefln('%s', [g_Shells_GetMax()])
+ {$ELSE}
+ e_LogWritefln('%s', [0])
+ {$ENDIF}
end
else
begin
begin
if Length(p) = 2 then
begin
- a := Max(0, StrToIntDef(p[1], 0));
- g_Gibs_SetMax(a)
+ {$IFDEF ENABLE_GIBS}
+ a := Max(0, StrToIntDef(p[1], 0));
+ g_Gibs_SetMax(a)
+ {$ENDIF}
end
else if Length(p) = 1 then
begin
- e_LogWritefln('%s', [g_Gibs_GetMax()])
+ {$IFDEF ENABLE_GIBS}
+ e_LogWritefln('%s', [g_Gibs_GetMax()])
+ {$ELSE}
+ e_LogWritefln('%s', [0])
+ {$ENDIF}
end
else
begin
begin
if Length(p) = 2 then
begin
- a := Max(0, StrToIntDef(p[1], 0));
- g_Corpses_SetMax(a)
+ {$IFDEF ENABLE_CORPSES}
+ a := Max(0, StrToIntDef(p[1], 0));
+ g_Corpses_SetMax(a)
+ {$ENDIF}
end
else if Length(p) = 1 then
begin
- e_LogWritefln('%s', [g_Corpses_GetMax()])
+ {$IFDEF ENABLE_CORPSES}
+ e_LogWritefln('%s', [g_Corpses_GetMax()])
+ {$ELSE}
+ e_LogWritefln('%s', [0])
+ {$ENDIF}
end
else
begin
end
else if cmd = 'screenshot' then
begin
- {$IFNDEF HEADLESS}
- g_TakeScreenShot()
+ {$IFDEF ENABLE_RENDER}
+ g_TakeScreenShot;
{$ENDIF}
end
else if (cmd = 'weapnext') or (cmd = 'weapprev') then
g_Game_Free();
g_Game_Quit();
end;
-{$IFNDEF HEADLESS}
+{$IFDEF ENABLE_RENDER}
'r_reset':
r_Render_Apply;
{$ENDIF}
end;
end;
-{$IFNDEF HEADLESS}
+{$IFDEF ENABLE_RENDER}
procedure g_TakeScreenShot(Filename: string = '');
var t: TDateTime; dir, date, name: String;
begin
conRegVar('mon_sq_enabled', @gmon_debug_use_sqaccel, 'accelerated spatial queries for monsters', 'accelerated monster coldet');
conRegVar('wtrace_sq_enabled', @gwep_debug_fast_trace, 'accelerated spatial queries for weapon hitscan trace', 'accelerated weapon hitscan');
+{$IFDEF ENABLE_GFX}
conRegVar('pr_enabled', @gpart_dbg_enabled, 'enable/disable particles', 'particles');
conRegVar('pr_phys_enabled', @gpart_dbg_phys_enabled, 'enable/disable particle physics', 'particle physics');
+{$ENDIF}
conRegVar('los_enabled', @gmon_dbg_los_enabled, 'enable/disable monster LOS calculations', 'monster LOS', true);
conRegVar('mon_think', @gmon_debug_think, 'enable/disable monster thinking', 'monster thinking', true);