aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kevent.cpp
AgeCommit message (Collapse)Author
2016-08-19SCI32: Fix kGlobalToLocal and kLocalToGlobalColin Snover
Fixes (at least) the native SCI save dialogs.
2016-08-19SCI32: Implement SCI32 cursor supportColin Snover
2016-08-13SCI: Fix pseudo mouse in various SCI1 games like e.g. Larry5Martin Kiewitz
Pseudo mouse was functionality in SCI1+ games, that allowed the user to control the mouse via keyboard cursor keys. This new class only worked, when a tiny difference inside the keyboard driver happened on kMapKeyToDir calls. We previously tried to enable this behavior depending on cursor type, but this didn't work correctly (Larry 5 for example was not detected as such, but had PseudoMouse support).
2016-03-11SCI32: Fix incorrect mouse event coordinates in SCI2 hiresColin Snover
2016-03-05SCI: Make cursor workaround work properly on OpenPandoraMartin Kiewitz
Other platforms, that support analog stick + touch screen at the same time, are possibly also affected. Cursor workarounds exist for qfg1vga, qfg3, lsl5 and Island of Dr. Brain. Those sometimes worked and sometimes didn't on at least OpenPandora and should be fixed now.
2016-02-02SCI: Do not pass/use .data for mouse button typeMartin Kiewitz
Also added comment about .data field. Should be renamed.
2016-02-02SCI: Fix control/Fx keys not working anymoreMartin Kiewitz
Was effectively caused by commit adding the keyboard driver bug for SCI0/SCI01, although the bug is actually real and happens. It seems Sierra did not check the key-modifier in kMenuSelect. We do and that's why the code didn't recognize all sorts of menu keys anymore. We now isolate the lower byte before comparing. I also noticed, that Sierra passed keyboard modifiers in mouse events. This was probably done, so that owners of a 1-button mouse were able to right-click. We do this now too. Also added information about mouse modifiers in kGetEvent. Moved the mouse modifier code into getScummVMEvent(). This should fix bug #7009.
2016-01-03SCI: kGetEvent modifiers bug was fixed in SCI1Martin Kiewitz
- SCI1 EGA QfG2 keyboard driver resets AH In the original commit I forgot to mention: - thanks to lskovlun for figuring out that bit 9 is checked/set - thanks to wjp for checking SCI32
2016-01-03SCI: implement kGetEvent modifiers DOS bugMartin Kiewitz
Will fix darts minigame in the fan game "Betrayed Alliance" This bug in the original interpreter/keyboard driver seems to have been fixed in SCI32.
2015-12-29SCI32: split up SCI2.1 into EARLY/MIDDLE/LATEMartin Kiewitz
- Detection works via signatures (couldn't find a better way) - new kString subcalls were introduced SCI2.1 LATE - kString now has signatures and is split via subcall table - kString fix, so that KQ7 doesn't crash, when starting a chapter - Sci2StringFunctionType removed, because no longer needed
2015-04-26SCI: implement delayed restore via ScummVM menuMartin Kiewitz
will delay restoring a saved game until the next kGetEvent or kWait also implement aborting playback for kPortrait and kShowMovie
2015-04-26SCI: Stop processing in kGetEvent after loadingWillem Jan Palenstijn
getSciEvent can trigger the main ScummVM menu, which can trigger loading a game, which will invalidate the game state that kGetEvent is operating on. Other kernel functions may still have the same problem, and a better solution may be necessary.
2014-05-27ALL: Rename Debugger::DebugPrintf to Debugger::debugPrintf.Johannes Schickel
2014-02-18SCI: Make GPL headers consistent in themselves.Johannes Schickel
2013-04-28SCI: Change wording for the cursor position workaroundsFilippos Karapetis
2012-06-18SCI: Add setter/getter methods to reg_t'sFilippos Karapetis
No functionality change has been made with this commit. This avoids setting and getting the reg_t members directly, and is the basis of any future work on large SCI3 scripts (larger than 64KB)
2011-06-20ALL: Remove trailing whitespacesMax Horn
This tries to make our code a bit more compliant with our code formatting conventions. For future use, this is the command I used: git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-03-09SCI: Implement Mac iconbar event handling.Walter van Niftrik
2011-03-09SCI: Save mouse position in SciEvent.Johannes Schickel
Instead of querying the event manager for the current mouse cursor coordinates kGetEvent now uses the saved mouse positions, which will assure every event will be processed with the correct coordinates instead of the current ones. Various other functions using SciEvent directly were adapted too. This fixes cursor click positions for the WinCE backend. Thanks to wjp and waltervn for helping me with this.
2011-02-15SCI: Cleaned up kMapKeyToDir and removed an incorrect heuristicmd5
The heuristic in question was used to detect the pseudo mouse control functionality, however the change in controls seems to have occurred with the transition to cursor views. Fixes keypad control in Conquest of the Longbow. Moreover, the code also checked for key scan code 76 when checking for the middle keypad button, which seems to be a mistake, as that case never occurred.
2010-12-26SCI: A more efficient solution for bug #3037874 (SCI high CPU usage), which ↵Filippos Karapetis
will hopefully not clash with the speed throttler. This is a more proper fix for bug #3058865, and a partial fix for bug #3127824 svn-id: r55046
2010-09-03SCI: Fixed bug #3058865 - "Jones in the Fast Lane CD: Graphics Missing"Filippos Karapetis
svn-id: r52511
2010-08-31SCI: adding workaround for platform-specificMartin Kiewitz
incompatibility with some sierra games. Some games open a new menu, set mouse cursor within that menu and expect the mouse cursor to be in there and will close it, if it's outside. In case of Wiimote/touch interfaces this logic won't work of course. Fixes island of dr. brain and QfG1VGA on Wii and touch-interface platforms svn-id: r52474
2010-08-29SCI: Fixed bug #3037874 - "SCI1.1: High cpu usage when a textbox is displayed"Filippos Karapetis
svn-id: r52432
2010-07-25SCI: sci32 coord adjustment changesMartin Kiewitz
- fixes lsl6hires inventory svn-id: r51275
2010-07-25SCI: sci32 changesMartin Kiewitz
- mouse position now gets adjusted inside kGetEvent - priority is read out during kFrameout - check planeRect - check if plane picture resource actually exists fixes sq6 svn-id: r51270
2010-07-21SCI: more work on coordadjustment sci32Martin Kiewitz
svn-id: r51084
2010-07-19SCI: fixing commentMartin Kiewitz
svn-id: r51037
2010-07-12SCI: Turn global object g_debugState into SciEngine member varMax Horn
svn-id: r50836
2010-06-30SCI: Removed the FreeSCI music codeFilippos Karapetis
svn-id: r50532
2010-06-29SCI: Made the SoundCommandParser a member of the SciEngine class and removed ↵Filippos Karapetis
it from the EngineState, since it's static throughout the course of a game svn-id: r50484
2010-06-19SCI: implemented checking of keyboard driver in case of SCI1EGA/EARLY, also ↵Martin Kiewitz
renamed SCI_EVENT_JOYSTICK to SCI_EVENT_DIRECTION svn-id: r50045
2010-06-18SCI: set resulting type to keyboard+joystick for sci1middle+ in kMapKeyToDir ↵Martin Kiewitz
- fixes keyboard controlling of mouse in all sorts of games - although this is not 100% done, the change actually happened inbetween sci1early, added fixme svn-id: r50034
2010-06-17SCI: Rename sciEvent to SciEventMax Horn
svn-id: r49960
2010-06-17SCI: Moved the event code a little bit around.Max Horn
* Move sleep() from EventManager to SciEngine * Rename EventManager methods: get -> getSciEvent, and getFromScummVM -> getScummVMEvent * Make scancode_rows static const * Turn altify & numlockify from EventManager methods into static functions (and comment out the currently unused numlockify) svn-id: r49959
2010-06-15SCI: SciGui/SciGui32 gone for good...Martin Kiewitz
svn-id: r49860
2010-06-15Fix spelling, cleanupMax Horn
svn-id: r49843
2010-06-09Renamed the SciEvent class to EventManager, to separate it from the sciEvent ↵Filippos Karapetis
structure, and removed it from the engine state svn-id: r49534
2010-06-08Merged the restarting_flags, script_abort_flag, and restoring members of the ↵Filippos Karapetis
EngineState class into one variable, abortScriptProcessing. The flag kept to signify a game restart has been placed in a boolean, gameWasRestarted svn-id: r49518
2010-06-08Merged _game_run() inside game_run(). Some cleanupFilippos Karapetis
svn-id: r49513
2010-06-06Now that EngineState is not deleted when loading games, we can move some ↵Filippos Karapetis
more state-related variables to it, and remove several FIXME's about non-const global variables. Also, the entries in the data stack are now deleted when loading (fixes a memory leak - thanks to digitall for this). svn-id: r49465
2010-06-03Re-enabled the cursor position limiting codeFilippos Karapetis
svn-id: r49413
2010-06-01The parser vocabulary remains static throughout the game, thus it has been ↵Filippos Karapetis
removed from the engine state svn-id: r49373
2010-05-29Mass renaming of selector-related functions, and removed some defines which ↵Filippos Karapetis
were just cloaking functions with a different name - GET_SEL32 -> readSelector - GET_SEL32V -> readSelectorValue - PUT_SEL32 -> writeSelector - PUT_SEL32V -> writeSelectorValue Also, changed some selector-related function names and variables to CamelCase svn-id: r49317
2010-02-13SCI: Move GameFeatures from EngineState to SciEngineMax Horn
svn-id: r48049
2010-02-13SCI: Move Gui/Gfx related permanent objects from EngineState to SciEngineMax Horn
svn-id: r48047
2010-02-13SCI: Add global g_sci pointer to the active SciEngine instanceMax Horn
svn-id: r48046
2010-02-05SCI: Add a 'SELECTOR' macroMax Horn
svn-id: r47918
2010-02-05SCI: GfxCoordAdjuster class added, local2Global and global2Local use that ↵Martin Kiewitz
class directly, kGraph / RedrawBox is now using GfxPaint16 directly svn-id: r47908