diff --git a/src/game/g_window.pas b/src/game/g_window.pas
index 1db0c639efbfe27713abca1491ad2723fc4de1d5..d73dd537bec5d24a18a18998f8a6fd1764a417df 100644 (file)
--- a/src/game/g_window.pas
+++ b/src/game/g_window.pas
-(* Copyright (C) DooM 2D:Forever Developers
+(* Copyright (C) Doom 2D: Forever Developers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
g_console, e_input, g_options, g_game,
g_basic, g_textures, e_sound, g_sound, g_menu, ENet, g_net,
g_map, g_gfx, g_monsters, g_holmes, xprofiler,
- sdlcarcass, gh_ui;
+ sdlcarcass, fui_ctls;
const
procedure KillGLWindow ();
begin
- if (h_Wnd <> nil) then
- begin
- if assigned(oglDeinitCB) then oglDeinitCB();
- end;
+ if (h_GL <> nil) then begin if (assigned(oglDeinitCB)) then oglDeinitCB(); end;
if (h_Wnd <> nil) then SDL_DestroyWindow(h_Wnd);
if (h_GL <> nil) then SDL_GL_DeleteContext(h_GL);
h_Wnd := nil;
SDL_GL_MakeCurrent(h_Wnd, h_GL);
SDL_ShowCursor(SDL_DISABLE);
- if (h_GL <> nil) then
- begin
- if assigned(oglInitCB) then oglInitCB();
- end;
+ fuiScrWdt := gScreenWidth;
+ fuiScrHgt := gScreenHeight;
+ if (h_GL <> nil) then begin if (assigned(oglInitCB)) then oglInitCB(); end;
{$ENDIF}
result := true;
gWinSizeX := gScreenWidth;
gWinSizeY := gScreenHeight;
{$IF not DEFINED(HEADLESS)}
+ fuiScrWdt := gScreenWidth;
+ fuiScrHgt := gScreenHeight;
e_ResizeWindow(gScreenWidth, gScreenHeight);
g_Game_SetupScreenSize();
g_Menu_Reset();
key := ev.key.keysym.scancode;
down := (ev.type_ = SDL_KEYDOWN);
{$IF not DEFINED(HEADLESS)}
- if evSDLCB(ev) then
+ if fuiOnSDLEvent(ev) then
begin
// event eaten, but...
if not down then e_KeyUpDown(key, false);
{$IF not DEFINED(HEADLESS)}
SDL_MOUSEBUTTONDOWN, SDL_MOUSEBUTTONUP, SDL_MOUSEWHEEL, SDL_MOUSEMOTION:
- evSDLCB(ev);
+ fuiOnSDLEvent(ev);
{$ENDIF}
SDL_TEXTINPUT:
{$IF not DEFINED(HEADLESS)}
h_Gl := SDL_GL_CreateContext(h_Wnd);
if (h_Gl = nil) then exit;
- if assigned(oglInitCB) then oglInitCB();
+ fuiScrWdt := gScreenWidth;
+ fuiScrHgt := gScreenHeight;
+ if (assigned(oglInitCB)) then oglInitCB();
{$ENDIF}
e_ResizeWindow(gScreenWidth, gScreenHeight);
{$ENDIF}
arg: AnsiString;
mdfo: TStream;
+ itmp: Integer;
+ valres: Word;
begin
{$IFDEF HEADLESS}
e_NoGraphics := true;
+{$ELSE}
+ if (not g_holmes_imfunctional) then
+ begin
+ uiInitialize();
+ uiContext.font := 'win14';
+ end;
{$ENDIF}
idx := 1;
{.$ENDIF}
if arg = '--holmes' then begin g_holmes_enabled := true; g_Game_SetDebugMode(); end;
+
if (arg = '--holmes-ui-scale') or (arg = '-holmes-ui-scale') then
begin
if (idx <= ParamCount) then
begin
- if not conParseFloat(gh_ui_scale, ParamStr(idx)) then gh_ui_scale := 1.0;
+ if not conParseFloat(fuiRenderScale, ParamStr(idx)) then fuiRenderScale := 1.0;
+ Inc(idx);
+ end;
+ end;
+
+ if (arg = '--holmes-font') or (arg = '-holmes-font') then
+ begin
+ if (idx <= ParamCount) then
+ begin
+ itmp := 0;
+ val(ParamStr(idx), itmp, valres);
+ {$IFNDEF HEADLESS}
+ if (valres = 0) and (not g_holmes_imfunctional) then
+ begin
+ case itmp of
+ 8: uiContext.font := 'win8';
+ 14: uiContext.font := 'win14';
+ 16: uiContext.font := 'win16';
+ end;
+ end;
+ {$ELSE}
+ // fuck off, fpc!
+ itmp := itmp;
+ valres := valres;
+ {$ENDIF}
Inc(idx);
end;
end;