diff --git a/src/game/g_window.pas b/src/game/g_window.pas
index 998c681e91992f8722c847c3546e4a162afc8b78..40f74029241e05bdffc5aee7fc686c0d009fd98f 100644 (file)
--- a/src/game/g_window.pas
+++ b/src/game/g_window.pas
uc: UnicodeChar;
//joy: Integer;
msev: THMouseEvent;
+ kbev: THKeyEvent;
function buildBut (b: Byte): Word;
begin
Result := WindowEventHandler(ev.window);
SDL_QUITEV:
- begin
- if gExit <> EXIT_QUIT then
begin
- if not wLoadingProgress then
+ if gExit <> EXIT_QUIT then
begin
- g_Game_Free();
- g_Game_Quit();
- end
- else
- wLoadingQuit := True;
+ if not wLoadingProgress then
+ begin
+ g_Game_Free();
+ g_Game_Quit();
+ end
+ else
+ wLoadingQuit := True;
+ end;
+ Result := True;
end;
- Result := True;
- end;
- SDL_KEYDOWN:
- begin
- key := ev.key.keysym.scancode;
- KeyPress(key);
- end;
+ SDL_KEYDOWN, SDL_KEYUP:
+ begin
+ key := ev.key.keysym.scancode;
+ if (g_holmes_enabled) then
+ begin
+ if (ev.type_ = SDL_KEYDOWN) then kbev.kind := THKeyEvent.Press else kbev.kind := THKeyEvent.Release;
+ kbev.scan := ev.key.keysym.scancode;
+ kbev.sym := ev.key.keysym.sym;
+ kbev.bstate := curMsButState;
+ kbev.kstate := curKbState;
+ if g_Holmes_keyEvent(kbev) then exit;
+ end;
+ if (ev.type_ = SDL_KEYDOWN) then KeyPress(key);
+ end;
SDL_MOUSEBUTTONDOWN, SDL_MOUSEBUTTONUP:
begin
curMsButState := curMsButState or msev.but;
msev.bstate := curMsButState;
msev.kstate := curKbState;
- g_Holmes_mouseEvent(msev);
+ if (g_holmes_enabled) then g_Holmes_mouseEvent(msev);
end;
end;
SDL_MOUSEWHEEL:
msev.y := curMsY;
msev.bstate := curMsButState;
msev.kstate := curKbState;
- g_Holmes_mouseEvent(msev);
+ if (g_holmes_enabled) then g_Holmes_mouseEvent(msev);
end;
end;
SDL_MOUSEMOTION:
msev.y := curMsY;
msev.bstate := curMsButState;
msev.kstate := curKbState;
- g_Holmes_mouseEvent(msev);
+ if (g_holmes_enabled) then g_Holmes_mouseEvent(msev);
end;
SDL_TEXTINPUT:
- begin
- Utf8ToUnicode(@uc, PChar(ev.text.text), 1);
- keychr := Word(uc);
- if (keychr > 127) then
- keychr := WCharToCP1251(keychr);
- CharPress(Chr(keychr));
- end;
+ begin
+ Utf8ToUnicode(@uc, PChar(ev.text.text), 1);
+ keychr := Word(uc);
+ if (keychr > 127) then keychr := WCharToCP1251(keychr);
+ CharPress(Chr(keychr));
+ end;
// other key presses and joysticks are handled in e_input
end;
if ParamStr(idx) = '--opengl-dump-exts' then gwin_dump_extensions := true;
if ParamStr(idx) = '--twinkletwinkle' then gwin_k8_enable_light_experiments := true;
if ParamStr(idx) = '--jah' then g_profile_history_size := 100;
- //if ParamStr(idx) = '--tree-draw' then gdbg_map_use_tree_draw := true;
- //if ParamStr(idx) = '--grid-draw' then gdbg_map_use_tree_draw := false;
- //if ParamStr(idx) = '--tree-coldet' then gdbg_map_use_tree_coldet := true;
- //if ParamStr(idx) = '--grid-coldet' then gdbg_map_use_tree_coldet := false;
if ParamStr(idx) = '--no-particles' then gpart_dbg_enabled := false;
if ParamStr(idx) = '--no-los' then gmon_dbg_los_enabled := false;
if ParamStr(idx) = '--no-particles-physics' then gpart_dbg_phys_enabled := false;
if ParamStr(idx) = '--no-particle-phys' then gpart_dbg_phys_enabled := false;
if ParamStr(idx) = '--no-particle-physics' then gpart_dbg_phys_enabled := false;
- end;
- //if gdbg_map_use_tree_draw then e_WriteLog('using TREE renderer', MSG_NOTIFY);
- //if not gdbg_map_use_tree_draw then e_WriteLog('using GRID renderer', MSG_NOTIFY);
-
- //if gdbg_map_use_tree_coldet then e_WriteLog('using TREE coldet', MSG_NOTIFY);
- //if not gdbg_map_use_tree_coldet then e_WriteLog('using GRID coldet', MSG_NOTIFY);
+ if ParamStr(idx) = '--holmes' then begin g_holmes_enabled := true; g_Game_SetDebugMode(); end;
+ end;
e_WriteLog('Initializing OpenGL', MSG_NOTIFY);
InitOpenGL(gVSync);