diff --git a/src/game/g_holmes.pas b/src/game/g_holmes.pas
index cf6a2bdbca084623e91ff9c2a06968f4746a6604..79c4349a32a98180e1be54c1ee5524f99d5b2a16 100644 (file)
--- a/src/game/g_holmes.pas
+++ b/src/game/g_holmes.pas
procedure g_Holmes_Draw ();
procedure g_Holmes_DrawUI ();
-function g_Holmes_MouseEvent (var ev: THMouseEvent): Boolean; // returns `true` if event was eaten
-function g_Holmes_KeyEvent (var ev: THKeyEvent): Boolean; // returns `true` if event was eaten
+procedure g_Holmes_MouseEvent (var ev: THMouseEvent);
+procedure g_Holmes_KeyEvent (var ev: THKeyEvent);
// hooks for player
procedure g_Holmes_plrViewPos (viewPortX, viewPortY: Integer);
// ////////////////////////////////////////////////////////////////////////// //
-function g_Holmes_MouseEvent (var ev: THMouseEvent): Boolean;
+procedure g_Holmes_MouseEvent (var ev: THMouseEvent);
var
he: THMouseEvent;
begin
- if g_Game_IsNet then begin result := false; exit; end;
- if not g_holmes_enabled then begin result := false; exit; end;
+ if g_Game_IsNet then exit;
+ if not g_holmes_enabled then exit;
holmesInitCommands();
holmesInitBinds();
- result := true;
msX := ev.x;
msY := ev.y;
msB := ev.bstate;
he := ev;
he.x := he.x;
he.y := he.y;
- if not uiMouseEvent(he) then plrDebugMouse(he);
+ uiMouseEvent(he);
+ if (not he.eaten) then plrDebugMouse(he);
+ ev.eat();
end;
// ////////////////////////////////////////////////////////////////////////// //
-function g_Holmes_KeyEvent (var ev: THKeyEvent): Boolean;
-{$IF DEFINED(D2F_DEBUG)}
+procedure g_Holmes_KeyEvent (var ev: THKeyEvent);
var
+ doeat: Boolean = false;
+{$IF DEFINED(D2F_DEBUG)}
pan: TPanel;
ex, ey: Integer;
dx, dy: Integer;
end;
begin
- if g_Game_IsNet then begin result := false; exit; end;
- if not g_holmes_enabled then begin result := false; exit; end;
+ if g_Game_IsNet then exit;
+ if not g_holmes_enabled then exit;
holmesInitCommands();
holmesInitBinds();
- result := false;
+
msB := ev.bstate;
kbS := ev.kstate;
case ev.scan of
SDL_SCANCODE_LCTRL, SDL_SCANCODE_RCTRL,
SDL_SCANCODE_LALT, SDL_SCANCODE_RALT,
SDL_SCANCODE_LSHIFT, SDL_SCANCODE_RSHIFT:
- result := true;
+ doeat := true;
end;
- if uiKeyEvent(ev) then begin result := true; exit; end;
- if keybindExecute(ev) then begin result := true; exit; end;
+
+ uiKeyEvent(ev);
+ if (ev.eaten) then exit;
+ if keybindExecute(ev) then begin ev.eat(); exit; end;
// press
if (ev.press) then
begin
if ((ev.scan = SDL_SCANCODE_UP) or (ev.scan = SDL_SCANCODE_DOWN) or (ev.scan = SDL_SCANCODE_LEFT) or (ev.scan = SDL_SCANCODE_RIGHT)) and
((ev.kstate and THKeyEvent.ModCtrl) <> 0) then
begin
- result := true;
+ ev.eat();
dx := pmsCurMapX;
dy := pmsCurMapY;
case ev.scan of
end;
{$ENDIF}
end;
+ if (doeat) then ev.eat();
end;
end;
-function onMouseEvent (var ev: THMouseEvent): Boolean;
+procedure onMouseEvent (var ev: THMouseEvent);
begin
- result := g_Holmes_MouseEvent(ev);
+ if not g_holmes_enabled then exit;
+ g_Holmes_MouseEvent(ev);
end;
-function onKeyEvent (var ev: THKeyEvent): Boolean;
+procedure onKeyEvent (var ev: THKeyEvent);
begin
- if not g_holmes_enabled then begin result := false; exit; end;
- result := g_Holmes_keyEvent(ev);
+ if not g_holmes_enabled then exit;
+ g_Holmes_KeyEvent(ev);
end;