diff --git a/src/game/g_game.pas b/src/game/g_game.pas
index cc71ea1a8c64fde887d14fa2a1e908600ada9bfd..9ec96396134f776058e72cb7616103bd7a116501 100644 (file)
--- a/src/game/g_game.pas
+++ b/src/game/g_game.pas
function g_Game_IsServer(): Boolean;
function g_Game_IsClient(): Boolean;
procedure g_Game_Init();
function g_Game_IsServer(): Boolean;
function g_Game_IsClient(): Boolean;
procedure g_Game_Init();
-procedure g_Game_Free();
+procedure g_Game_Free (freeTextures: Boolean=true);
procedure g_Game_LoadData();
procedure g_Game_FreeData();
procedure g_Game_Update();
procedure g_Game_LoadData();
procedure g_Game_FreeData();
procedure g_Game_Update();
procedure g_Game_RestartRound(NoMapRestart: Boolean = False);
procedure g_Game_ClientWAD(NewWAD: String; WHash: TMD5Digest);
procedure g_Game_SaveOptions();
procedure g_Game_RestartRound(NoMapRestart: Boolean = False);
procedure g_Game_ClientWAD(NewWAD: String; WHash: TMD5Digest);
procedure g_Game_SaveOptions();
-function g_Game_StartMap(Map: String; Force: Boolean = False): Boolean;
+function g_Game_StartMap(Map: String; Force: Boolean = False; const oldMapPath: AnsiString=''): Boolean;
procedure g_Game_ChangeMap(MapPath: String);
procedure g_Game_ExitLevel(Map: Char16);
function g_Game_GetFirstMap(WAD: String): String;
procedure g_Game_ChangeMap(MapPath: String);
procedure g_Game_ExitLevel(Map: Char16);
function g_Game_GetFirstMap(WAD: String): String;
g_rlayer_water: Boolean = true;
g_rlayer_fore: Boolean = true;
g_rlayer_water: Boolean = true;
g_rlayer_fore: Boolean = true;
- g_dbg_scale_05: Boolean = false;
+ g_dbg_scale: Single = 1.0;
procedure g_ResetDynlights ();
procedure g_ResetDynlights ();
end;
end;
end;
end;
-procedure g_Game_Free();
+procedure g_Game_Free(freeTextures: Boolean=true);
begin
if NetMode = NET_CLIENT then g_Net_Disconnect();
if NetMode = NET_SERVER then g_Net_Host_Die();
begin
if NetMode = NET_CLIENT then g_Net_Disconnect();
if NetMode = NET_SERVER then g_Net_Host_Die();
- g_Map_Free();
+ g_Map_Free(freeTextures);
g_Player_Free();
g_Player_RemoveAllCorpses();
g_Player_Free();
g_Player_RemoveAllCorpses();
profileFrameDraw.sectionBegin('collect');
if gdbg_map_use_accel_render then
begin
profileFrameDraw.sectionBegin('collect');
if gdbg_map_use_accel_render then
begin
- if g_dbg_scale_05 then
+ if (g_dbg_scale <> 1.0) then
begin
begin
- g_Map_CollectDrawPanels(sX, sY, sWidth*2, sHeight*2);
+ g_Map_CollectDrawPanels(sX, sY, round(sWidth/g_dbg_scale)+1, round(sHeight/g_dbg_scale)+1);
end
else
begin
end
else
begin
g_Map_DrawBack(backXOfs, backYOfs);
profileFrameDraw.sectionEnd();
g_Map_DrawBack(backXOfs, backYOfs);
profileFrameDraw.sectionEnd();
- if (setTransMatrix) then
+ if setTransMatrix then
begin
begin
- if g_dbg_scale_05 then
- begin
- glScalef(0.5, 0.5, 1.0);
- glTranslatef(transX, transY, 0);
- end
- else
- begin
- glTranslatef(transX, transY, 0);
- end;
+ glScalef(g_dbg_scale, g_dbg_scale, 1.0);
+ glTranslatef(transX, transY, 0);
end;
drawPanelType('*back', PANEL_BACK, g_rlayer_back);
end;
drawPanelType('*back', PANEL_BACK, g_rlayer_back);
begin
if (gState = STATE_MENU) then
begin
begin
if (gState = STATE_MENU) then
begin
- if ((g_ActiveWindow = nil) or (g_ActiveWindow.BackTexture = '')) then
+ if (g_ActiveWindow = nil) or (g_ActiveWindow.BackTexture = '') then
begin
begin
- if g_Texture_Get('MENU_BACKGROUND', ID) then
- e_DrawSize(ID, 0, 0, 0, False, False, gScreenWidth, gScreenHeight)
+ if g_Texture_Get('MENU_BACKGROUND', ID) then e_DrawSize(ID, 0, 0, 0, False, False, gScreenWidth, gScreenHeight)
else e_Clear(GL_COLOR_BUFFER_BIT, 0, 0, 0);
end;
else e_Clear(GL_COLOR_BUFFER_BIT, 0, 0, 0);
end;
- if g_ActiveWindow <> nil then
+ // F3 at menu will show game loading dialog
+ if e_KeyPressed(IK_F3) then g_Menu_Show_LoadMenu(true);
+ if (g_ActiveWindow <> nil) then
begin
//e_DrawFillQuad(0, 0, gScreenWidth-1, gScreenHeight-1, 48, 48, 48, 180);
e_DarkenQuadWH(0, 0, gScreenWidth, gScreenHeight, 150);
begin
//e_DrawFillQuad(0, 0, gScreenWidth-1, gScreenHeight-1, 48, 48, 48, 180);
e_DarkenQuadWH(0, 0, gScreenWidth, gScreenHeight, 150);
+ end
+ else
+ begin
+ // F3 at titlepic will show game loading dialog
+ if e_KeyPressed(IK_F3) then
+ begin
+ g_Menu_Show_LoadMenu(true);
+ if (g_ActiveWindow <> nil) then e_DarkenQuadWH(0, 0, gScreenWidth, gScreenHeight, 150);
+ end;
end;
end;
end;
end;
MessageTime := 0;
gGameOn := False;
g_Game_ClearLoading();
MessageTime := 0;
gGameOn := False;
g_Game_ClearLoading();
- g_Game_StartMap(Map, True);
+ g_Game_StartMap(Map, True, gCurrentMapFileName);
end;
end;
-function g_Game_StartMap(Map: String; Force: Boolean = False): Boolean;
+function g_Game_StartMap(Map: String; Force: Boolean = False; const oldMapPath: AnsiString=''): Boolean;
var
NewWAD, ResName: String;
I: Integer;
begin
var
NewWAD, ResName: String;
I: Integer;
begin
- g_Map_Free();
+ g_Map_Free((Map <> gCurrentMapFileName) and (oldMapPath <> gCurrentMapFileName));
g_Player_RemoveAllCorpses();
if (not g_Game_IsClient) and
g_Player_RemoveAllCorpses();
if (not g_Game_IsClient) and
conRegVar('dbg_holmes', @g_holmes_enabled, 'enable/disable Holmes', 'Holmes', true);
conRegVar('dbg_holmes', @g_holmes_enabled, 'enable/disable Holmes', 'Holmes', true);
- conRegVar('dbg_scale_half', @g_dbg_scale_05, 'experimental deBUG scale*0.5 mode', 'Scale0.5', true);
+ conRegVar('dbg_scale', @g_dbg_scale, 0.01, 5.0, 'experimental deBUG scale mode', '', true);
end.
end.