Age | Commit message (Collapse) | Author |
|
Convert macros and vars to enums, rename keyboard events in
preparation for adding key up events, clean up unnecessary nested
conditionals, add TODOs for potential future work.
|
|
|
|
In b4c0be8b42d63cbf3c808be1a94839483f674ce9 keyboard events were
adjusted to send control characters to game scripts, which matches
how keyboard input works in SSCI. Unfortunately this broke games
using kMenuSelect because that kernel code was not expecting to
receive control characters.
Here is an amended list of known types of keyboard shortcuts, for
future reference:
* All games with text inputs (Ctrl+C clears text boxes)
* Most games using MenuBar, like QFG1EGA (Ctrl+P pauses the
game, Tab or Ctrl+I show inventory)
* QFG1VGA (Ctrl+S shows stats)
* Torin (Ctrl+N, Ctrl+O, Ctrl+S, etc. activate menu commands)
* LSL1VGA & LSL3 (Ctrl+Alt+X to bypass age check)
* Most in-game debuggers (Alt+T for teleport)
The shortcut handling code is still not 100% accurate since there
are some edge cases that are not implemented (e.g. in DOS/SSCI,
Shift+Ctrl+<key> usually sends the same key information as
Ctrl+<key>, but not if <key> is Tab), but it should now be working
in a consistent and rational manner for end-users.
|
|
Was the ScummVM-system-Keycode, sometimes modified.
Changed Menu/Portrait/Controls32-code to use .character instead.
Cleaned up a bit of code in getScummVMEvent()
|
|
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.
|
|
|
|
|
|
|
|
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)
|
|
|
|
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]*$//'
|
|
shortcuts"
|
|
|
|
Thanks to waltervn for his work and help on this
|
|
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.
|
|
|
|
- Plugged 2 memory leaks in the SCI0 menu code (the lists of menu and submenu entries)
- Got rid of the _listCount variable
svn-id: r55254
|
|
Draw_Status -> DrawStatus
Draw_String -> DrawString
svn-id: r55178
|
|
svn-id: r55086
|
|
svn-id: r54037
|
|
now also draws "IV" in KQ4 correctly. This wasn't the case before because we reused the regular drawing code, which would see the 0xA ("IV") as linebreak
save for backport
svn-id: r52913
|
|
This fixes two fan games: Al Pond 2 and Aquarius. The original interpreter did this as well.
svn-id: r51477
|
|
Get a pointer to the said spec instead of copying to a buffer. The fan games use a said spec with size < 64. Also, make said() take a const pointer as the spec cannot change. Thanks to waltervn and wjp.
svn-id: r51432
|
|
svn-id: r51407
|
|
svn-id: r51294
|
|
getPortById() error was caused by us remembering port when going interactive, restoring it and restoring it all the time afterwards as well
svn-id: r51071
|
|
the reason why we sometimes had issues drawing parts of the menu (random issue)
svn-id: r50784
|
|
svn-id: r50724
|
|
svn-id: r50500
|
|
fixed some header dependencies in the process
svn-id: r50183
|
|
svn-id: r49960
|
|
* 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
|
|
svn-id: r49860
|
|
structure, and removed it from the engine state
svn-id: r49534
|
|
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
|
|
- makes TAB work for inventory in iceman/qfg1ega
svn-id: r49044
|
|
GFX_SCREEN_UPSCALED_*
svn-id: r49039
|
|
text on kernelDrawMenuBar() as well - fixes menu not displaying all the time in hoyle 1&2
svn-id: r48791
|
|
handle "=" as being a supported shortcut key
svn-id: r48747
|
|
"wrongly" aligned menu items in some games
svn-id: r48746
|
|
svn-id: r48698
|
|
in multilingual sq3 and lsl3)
svn-id: r48686
|
|
separators with a language separator inbetween)
svn-id: r48685
|
|
svn-id: r48683
|
|
makes on-the-fly menu language changes possible (used by multilingual SCI01 games)
svn-id: r48659
|
|
svn-id: r48119
|
|
svn-id: r48052
|
|
svn-id: r48046
|
|
lsl2 and other games that reset game engine inbetween
svn-id: r48015
|
|
svn-id: r47918
|