Commit Graph

82 Commits

Author SHA1 Message Date
Ori Avtalion
31130f08dc AGI: Move predictivedialog.h out of agi.h 2016-04-13 14:27:21 +03:00
Martin Kiewitz
e1c36a52b5 AGI: Add support for upscaling and Hercules hires font
- User option to force Hercules hires font for any rendering mode
- Also change mouse cursor hotspots from 1,1 to 0,0
- Fix inaccuracy in mouse controlled game menu
- Change render_Block(), drawBox(), drawDisplayRect() to use
  upper Y instead of lower Y. Original AGI uses lower Y, but
  upper Y makes upscaling way easier.
2016-02-27 21:44:21 +01:00
Martin Kiewitz
73cf4a80e8 AGI: Hold-Key: only send stationary for directions 2016-02-09 19:34:50 +01:00
Martin Kiewitz
2b216e1494 AGI: Move debugger to Ctrl-Shift-D
because of Police Quest 1 using Ctrl-D for calling dispatch.
Solves FR #395
2016-02-06 03:00:20 +01:00
Martin Kiewitz
4b7d49dcff AGI: Fix Hold-Key-Mode implementation
Hold-Key-Mode got introduced v2.425, it was simply not possible
to disable it until 3.098.
Now creating a AGI_KEY_STATIONARY event, so that it works properly

Fixes Mixed Up Mother Goose
2016-02-04 22:53:15 +01:00
Martin Kiewitz
a9bb8c3a50 AGI: Message box mouse support 2016-02-03 08:27:44 +01:00
Martin Kiewitz
34117170f2 AGI: Change cycle delay handling, seems to fix GR
Removed pollTimer()
Renamed pause() to wait()
Doing 10 msec delays instead of at least 50 msec per EventProcess
Seems to fix weird Gold Rush ingame timer issue?! bug #4147
2016-02-03 02:40:01 +01:00
Martin Kiewitz
778c1ddb69 AGI: Cycle event processing changed
processEvents() renamed to processScummVMEvents()
mainCycle() renamed to processAGIEvents()
have.key now sets up an inner loop and calls processAGIEvents()
to avoid any further cycle work processing
2016-02-03 02:21:07 +01:00
Martin Kiewitz
8271058a45 AGI: Implement messageBox() as inner loop
Also remove _game.keypress, _game.msgBoxTicks
2016-02-03 01:32:57 +01:00
Martin Kiewitz
5f41a09701 AGI: Remove inputMode, not needed anyore 2016-02-02 23:02:50 +01:00
Johannes Schickel
6778175f6d AGI: Fix formatting.
This mostly enforces tabs for indentation and spaces for formatting. But also
fixes spaces on empty lines, some extra/missing spaces.

astyle + manual fixup
2016-02-02 20:15:18 +01:00
Martin Kiewitz
223ce70eab AGI: Don't use status row for menu mouse trigger
Use hardcoded first line instead
In Donald Duck the status line is at line 24, but also hidden
2016-02-02 17:47:17 +01:00
Martin Kiewitz
05a5fc1b65 AGI: mouse support for menu 2016-02-02 17:28:58 +01:00
Martin Kiewitz
2a4a290d31 AGI: change how menus are triggered on Non-PC 2016-02-01 19:08:22 +01:00
Martin Kiewitz
14f338e2dd AGI: Revert revert the keyboard handling changes
It seems the issues on AmigaOS aren't actually caused by the new
code. Reverting the revert.
2016-02-01 15:02:52 +01:00
Martin Kiewitz
83ad64f947 AGI: Keyboard handling change
It seems the current code causes issues on at least AmigaOS.
Changed current code to the way SCI handled it.
Needs to get investigated in detail.
Added FIXME. Also see engines/sci/event.cpp
2016-02-01 02:17:47 +01:00
Martin Kiewitz
c28e101cdb AGI: implement predictive dialog 2016-02-01 01:34:36 +01:00
Martin Kiewitz
fd9c46831d AGI: remove timer hack, implement in game timer
in game timer is now updated, when scripts read in game timer
VM variables and during main loop. ScummVM total play time feature
is used for it. Game cycle syncing is done at the same time.
2016-01-31 20:53:36 +01:00
Martin Kiewitz
4bc01ab7d5 AGI: getflag/setflag/etc. cleanup
renamed getflag() to getFlag()
renamed setflag() to setFlag()
renamed flipflag() to flipFlag()
preagi: renamed setFlag for this engine to setWinnieFlag
2016-01-31 17:56:53 +01:00
Martin Kiewitz
82b958f274 AGI: VM Var code cleanup
Don't access variables directly, but through method
Shouldn't include any functional differences
Also changed several hardcoded values to the corresponding enums.
2016-01-31 17:35:13 +01:00
Martin Kiewitz
83495eab28 AGI: change key -> direction handling
After the VM Var 6 <-> ego direction change, this is required
Also our original behavior was inaccurate in that part as well.
2016-01-31 01:52:00 +01:00
Martin Kiewitz
72f0d012c6 AGI: fix keyboard input code for keycodes
Reset key, when no valid .ascii was received.
2016-01-30 02:43:08 +01:00
Martin Kiewitz
e8791ac979 AGI: add hack to make numpad cursor keys work
should probably get fixed at some point in backend
2016-01-29 22:49:24 +01:00
Martin Kiewitz
8a595e7771 AGI: graphics rewrite + cleanup
- graphics code fully rewritten
- Apple IIgs font support
- Amiga Topaz support
- Word parser rewritten
- menu code rewritten
- removed forced 2 second delay on all room changes
  replaced with heuristic to detect situations, where it's required
- lots of naming cleanup
- new console commands show_map, screenobj, vmvars and vmflags
- all sorts of hacks/workarounds removed
- added SCI wait mouse cursor
- added Apple IIgs mouse cursor
- added Atari ST mouse cursor
- added Amiga/Apple IIgs transition
- added Atari ST transition
- user can select another render mode and
  use Apple IIgs palette + transition for PC versions
- inventory screen rewritten
- SetSimple command now properly implemented
- PreAGI Mickey: Sierra logo now shown
- saved games: now saving controller key mapping
  also saving automatic save data (SetSimple command)
- fixed invalid memory access when saving games (31 bytes were saved
  using Common::String c_ptr()

Special Thanks to:
- fuzzie for helping out with the Apple IIgs font + valgrind
- eriktorbjorn for helping out with valgrind
- LordHoto for figuring out the code, that caused invalid memory
  access in the original code, when saving a game
- sev for help out with reversing the Amiga transition

currently missing:
- mouse support for menu
- mouse support for system dialogs
- predictive dialog support
2016-01-29 13:22:22 +01:00
Johannes Schickel
6aac905dfd AGI: Make GPL headers consistent in themselves. 2014-02-18 02:39:32 +01:00
Oleksiy Kurochko
ec32ccb6d6 GUI: Move predictive dialog to common gui 2012-03-25 12:21:38 +03:00
Filippos Karapetis
5dbb51db6d AGI: Marked 4070342 as a workaround 2011-09-26 04:29:41 +03:00
Filippos Karapetis
40703426c9 AGI: Fix for bug #3018770 - "AGI: PQ1: Flickering newspaper" 2011-09-26 04:23:03 +03:00
Filippos Karapetis
81fdf2c103 AGI: Fixed bug #3074570 - "AGI LSL1: TAB stops working after restart"
Applied eriktorbjorn's patch from that bug tracker item (slightly
modified), which is what NAGI does, and which fixes restarting in LSL1
and PQ1 (bug #2823762), and other AGI games that do not reset the
controller keys when restarting.
2011-09-26 00:56:10 +03:00
Eugene Sandulenko
273e37f726 AGI: Renamed some #defines to our code conventions and moved them to enums 2011-08-14 18:48:59 +01:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Eugene Sandulenko
52c05acd95 AGI: Fix bug #3087825: AGI: Code analysis warnings 2011-04-24 12:28:22 +03:00
Max Horn
7c2323bdc3 AGI: Replace report() macro by debug() / warning()
This makes AGI quite a bit less noisy by default.

svn-id: r53868
2010-10-26 22:33:49 +00:00
Max Horn
651e2760a3 Fix spelling, cleanup
svn-id: r49843
2010-06-15 12:33:20 +00:00
Eugene Sandulenko
81870dba58 AGI: Fix bug #2825273.
Bug #2825273: "AGI: KQ4: Dwarf sequence". Always allow ESC to work
in KQ4.

svn-id: r49746
2010-06-15 10:32:44 +00:00
Eugene Sandulenko
462d1afed8 AGI: Fix bug #1875842.
Bug #1875842: "AGI: Character loses final walking position".
Do not reset ADJ_EGO_XY if non-directional keys were pressed.

svn-id: r49744
2010-06-15 10:32:01 +00:00
Eugene Sandulenko
14205bdbc0 AGI: add more status-related debug output.
svn-id: r49731
2010-06-15 10:27:23 +00:00
Eugene Sandulenko
8ad5694cb1 Reduce header dependencies for AGI engine.
svn-id: r46942
2010-01-03 20:15:44 +00:00
Max Horn
51933629d1 Changed foo(void) to foo() in almost all non-backend source files
svn-id: r45616
2009-11-02 21:54:57 +00:00
Max Horn
3a1495f247 AGI: Make scancodeTable const
svn-id: r45261
2009-10-20 11:13:42 +00:00
Max Horn
50435d6bae AGI: Turn g_tickTimer & g_mouse into members of class AgiEngine resp. AgiBase
svn-id: r45259
2009-10-20 11:13:00 +00:00
Eugene Sandulenko
483a4c0eeb Move functions from agi.cpp to more appropriate files.
svn-id: r42662
2009-07-22 15:55:33 +00:00
Eugene Sandulenko
88395007fb Fix bug #2823759: "AGI: PQ1 help not showing the first time you press F1"
svn-id: r42659
2009-07-22 12:24:55 +00:00
Eugene Sandulenko
ea3373708c Correct implementation for set.key opcode. Fixes #2605104: "AGI: Manhunter, F3 hotkey dosent work", removed number of hacks
svn-id: r41259
2009-06-06 17:48:09 +00:00
Eugene Sandulenko
1a321a2064 Cleanup
svn-id: r41254
2009-06-06 17:45:52 +00:00
Eugene Sandulenko
26d8b2bb72 Fix bug #2721940: "AGI: Gold Rush! Restart Option differs from original"
svn-id: r41243
2009-06-06 17:40:56 +00:00
Eugene Sandulenko
93d62da652 Whitespace fixes and C++ comments
svn-id: r41239
2009-06-06 17:39:13 +00:00
Eugene Sandulenko
40dd214789 Start of fixing bug #2537054: "AGI: Using GMM to load causes graphics glitches"
The engine still crashes when load from GMM occured with a text box on screen.

svn-id: r40733
2009-05-19 21:09:43 +00:00
Eugene Sandulenko
565c23b601 Fix bug #1946262: "LSL1: Age Verification answer input not working"
svn-id: r40468
2009-05-11 20:58:55 +00:00
Filippos Karapetis
0015657caa Fix for bug #2541237 - "AGI: Restart quits ScummVM"
svn-id: r36279
2009-02-12 15:13:52 +00:00