X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_game.pas;h=d1e15d1f55ec4cd84a08288df971a121e09a0dcc;hb=6837a957a80cae5f212cc5a1447b2e7dac15c159;hp=01b7d02e1e5499845e7ae9f1b6200183e454ef7c;hpb=6cdd36d2fb73f13be7b6ea1870a8b3b0817b37f1;p=d2df-sdl.git diff --git a/src/game/g_game.pas b/src/game/g_game.pas index 01b7d02..d1e15d1 100644 --- a/src/game/g_game.pas +++ b/src/game/g_game.pas @@ -132,7 +132,7 @@ procedure g_Game_Announce_KillCombo(Param: Integer); 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); @@ -159,9 +159,10 @@ procedure SortGameStat(var stat: TPlayerStatArray); {$IFDEF ENABLE_MENU} procedure g_Game_InGameMenu(Show: Boolean); {$ENDIF} -{$IFNDEF HEADLESS} +{$IFDEF ENABLE_SYSTEM} procedure CharPress (C: AnsiChar); {$ENDIF} + procedure KeyPress (K: Word); { procedure SetWinPause(Enable: Boolean); } @@ -460,8 +461,20 @@ uses {$IFDEF ENABLE_GFX} g_gfx, {$ENDIF} - {$IFNDEF HEADLESS} - r_render, g_system, + {$IFDEF ENABLE_GIBS} + g_gibs, + {$ENDIF} + {$IFDEF ENABLE_SHELLS} + g_shells, + {$ENDIF} + {$IFDEF ENABLE_CORPSES} + g_corpses, + {$ENDIF} + {$IFDEF ENABLE_RENDER} + r_render, + {$ENDIF} + {$IFDEF ENABLE_SYSTEM} + g_system, {$ENDIF} e_res, g_window, e_input, e_log, g_console, g_items, g_map, g_panel, @@ -799,7 +812,7 @@ end; end; {$ENDIF} -{$IFNDEF HEADLESS} +{$IFDEF ENABLE_SYSTEM} procedure CharPress (C: AnsiChar); {$IFDEF ENABLE_MENU} var Msg: g_gui.TMessage; @@ -1492,7 +1505,16 @@ begin 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 @@ -2210,7 +2232,15 @@ begin 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 @@ -2320,7 +2350,7 @@ begin // Нужно сменить разрешение: if gResolutionChange then begin - {$IFNDEF HEADLESS} + {$IFDEF ENABLE_RENDER} e_WriteLog('Changing resolution', TMsgType.Notify); r_Render_Apply; {$ENDIF} @@ -2557,9 +2587,9 @@ begin gMusic.Free(); g_Game_FreeData(); g_PlayerModel_FreeData(); -{$IFNDEF HEADLESS} - //g_Menu_Free(); //k8: this segfaults after resolution change; who cares? -{$ENDIF} + {$IFDEF ENABLE_MENU} + // g_Menu_Free(); //k8: this segfaults after resolution change; who cares? + {$ENDIF} if NetInitDone then g_Net_Free; @@ -2569,7 +2599,7 @@ begin gExit := EXIT_QUIT; - {$IFNDEF HEADLESS} + {$IFDEF ENABLE_SYSTEM} sys_RequestQuit; {$ENDIF} end; @@ -3349,7 +3379,16 @@ var 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 @@ -3418,7 +3457,7 @@ begin begin //result := g_Map_Load(gGameSettings.WAD + ':\' + ResName); result := g_Map_Load(NewWAD+':\'+ResName); - {$IFNDEF HEADLESS} + {$IFDEF ENABLE_RENDER} r_Render_LoadTextures; {$ENDIF} end; @@ -3679,7 +3718,16 @@ begin 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); @@ -4060,12 +4108,18 @@ 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 @@ -4076,12 +4130,18 @@ 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 @@ -4092,12 +4152,18 @@ 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 @@ -5857,8 +5923,8 @@ 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 @@ -6143,7 +6209,7 @@ begin g_Game_Free(); g_Game_Quit(); end; -{$IFNDEF HEADLESS} +{$IFDEF ENABLE_RENDER} 'r_reset': r_Render_Apply; {$ENDIF} @@ -6192,7 +6258,7 @@ begin end; end; -{$IFNDEF HEADLESS} +{$IFDEF ENABLE_RENDER} procedure g_TakeScreenShot(Filename: string = ''); var t: TDateTime; dir, date, name: String; begin