diff options
author | k-m_schindler <k-m_schindler@b956fd51-792f-4845-bead-9b4dfca2ff2c> | 2016-01-01 23:13:16 +0000 |
---|---|---|
committer | k-m_schindler <k-m_schindler@b956fd51-792f-4845-bead-9b4dfca2ff2c> | 2016-01-01 23:13:16 +0000 |
commit | 9156ce62f34de5c80d5103d874e20f231f22a054 (patch) | |
tree | 724336b982c7eded547a61f1905e5c2a51eb024b | |
parent | b0cfae07aef875c49684c189c484bb698352d1be (diff) | |
download | usdx-9156ce62f34de5c80d5103d874e20f231f22a054.tar.gz usdx-9156ce62f34de5c80d5103d874e20f231f22a054.tar.xz usdx-9156ce62f34de5c80d5103d874e20f231f22a054.zip |
add checkmousebutton
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@3163 b956fd51-792f-4845-bead-9b4dfca2ff2c
-rw-r--r-- | src/base/UMain.pas | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/src/base/UMain.pas b/src/base/UMain.pas index f0dc3d4e..416e0a50 100644 --- a/src/base/UMain.pas +++ b/src/base/UMain.pas @@ -37,6 +37,11 @@ uses SysUtils, SDL; +var + CheckMouseButton: boolean; // for checking mouse motion + MAX_FPS: byte; // 0 to 255 is enough + + procedure Main; procedure MainLoop; procedure CheckEvents; @@ -106,6 +111,14 @@ begin WindowTitle := USDXVersionStr; Platform.Init; + + // Commandline Parameter Parser + Params := TCMDParams.Create; + + // Log + Benchmark + Log := TLog.Create; + Log.Title := WindowTitle; + //Log.FileOutputEnabled := not Params.NoLog; if Platform.TerminateIfAlreadyRunning(WindowTitle) then Exit; @@ -136,14 +149,6 @@ begin USTime := TTime.Create; VideoBGTimer := TRelativeTimer.Create; - // Commandline Parameter Parser - Params := TCMDParams.Create; - - // Log + Benchmark - Log := TLog.Create; - Log.Title := WindowTitle; - Log.FileOutputEnabled := not Params.NoLog; - // Language Log.LogStatus('Initialize Paths', 'Initialization'); InitializePaths; @@ -301,7 +306,7 @@ begin CountSkipTime(); // JB - for some reason this seems to be needed when we use the SDL Timer functions. repeat TicksBeforeFrame := SDL_GetTicks; - + // joypad if (Ini.Joypad = 1) or (Params.Joypad) then Joy.Update; @@ -365,14 +370,17 @@ begin case Event.type_ of SDL_MOUSEMOTION: begin - mouseDown := false; + if (CheckMouseButton) then + mouseDown := true + else + mouseDown := false; mouseBtn := 0; end; SDL_MOUSEBUTTONDOWN: begin mouseDown := true; mouseBtn := Event.button.button; - + CheckMouseButton := true; if (mouseBtn = SDL_BUTTON_LEFT) or (mouseBtn = SDL_BUTTON_RIGHT) then Display.OnMouseButton(true); end; @@ -380,7 +388,7 @@ begin begin mouseDown := false; mouseBtn := Event.button.button; - + CheckMouseButton := false; if (mouseBtn = SDL_BUTTON_LEFT) or (mouseBtn = SDL_BUTTON_RIGHT) then Display.OnMouseButton(false); end; |