Commit Graph

44 Commits

Author SHA1 Message Date
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
ab22c27f7a AGI: Cut menu in case menu names are too long
Required for games that add to many names or add names, that are
too long. The code needs to get adjusted anyway for different
platforms, so for now just cut the menu names instead
Required for at least the fan game Get Outta Space Quest
2016-02-09 14:54:46 +01:00
Martin Kiewitz
af8dbfc998 AGI: More accurate menu mouse support
Menu items did not switch to inverted state when they are disabled.
2016-02-04 16:42:41 +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
702b66a49d AGI: Make inner loop handlers consistent 2016-02-03 01:41:32 +01:00
Martin Kiewitz
8a29f98c9c AGI: Don't pause in game timer while in menus
Original interpreter did not do it and we paused music/sfx,
which the original interpreter also didn't do.
Shouldn't cause issues.
2016-02-02 21:28:47 +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
9ad3712aa3 AGI: Add WORKAROUND comment to "render after menu"
see commit 0b75bf3721
Original AGI did not do, what we are doing now
2016-02-02 19:58:55 +01:00
Martin Kiewitz
0b75bf3721 AGI: Render after menu, when playarea starts at 0
Fixes graphics glitch for Donald Duck
2016-02-02 17:44:53 +01:00
Martin Kiewitz
05a5fc1b65 AGI: mouse support for menu 2016-02-02 17:28:58 +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
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
Johannes Schickel
89abab97e3 JANITORIAL: Remove trailing whitespaces.
Powered by:
git ls-files "*.cpp" "*.h" "*.m" "*.mm" | xargs sed -i -e 's/[ \t]*$//'
2012-09-26 04:17:55 +02:00
D G Turner
f722542cee AGI: Replace usage of 'goto'. 2011-12-10 20:12:35 +00:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Max Horn
84184aabc0 ALL: colour -> color 2011-04-14 14:12:35 +02:00
Eugene Sandulenko
8ad5694cb1 Reduce header dependencies for AGI engine.
svn-id: r46942
2010-01-03 20:15:44 +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
Kari Salminen
2bd1f51d92 Possible fix for #2828330 (AGI: KQ1: Fast text box). If doesn't break anything else then should go to the branch-1-0-0 too, but haven't had the time to do much testing yet - thus committing to the trunk first.
svn-id: r43523
2009-08-18 21:37:31 +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
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
d6a4dbeb1d Implement fence.mouse opcode
svn-id: r41258
2009-06-06 17:47:29 +00:00
Eugene Sandulenko
2eb7e914e8 Fix bug #2026605: "SQ2: Have to wait after dying to do anything."
svn-id: r41250
2009-06-06 17:43:51 +00:00
Eugene Sandulenko
93d62da652 Whitespace fixes and C++ comments
svn-id: r41239
2009-06-06 17:39:13 +00:00
Filippos Karapetis
b2a085b26d Fix for bug #2538123 - "AGI: loading from launcher disables hotkeys"
svn-id: r36266
2009-02-11 15:36:13 +00:00
Filippos Karapetis
39da7deefb Fix for bug #1751483 - "AGI: The -x command-line option appears to be broken"
svn-id: r29346
2007-10-31 21:28:33 +00:00
Nicola Mettifogo
258901bab9 Merged common/stdafx.h into common/scummsys.h. All referencing files have been updated.
svn-id: r28966
2007-09-19 08:40:12 +00:00
Filippos Karapetis
6376321e5a Enabled menus in some old AGI games (released in 1986) which did not have menus them originally: KQ1 Amiga and ST and early versions of KQ3 Amiga, SQ1 ST, SQ1 DOS and SQ1 Amiga. The GF_FORCEMENUS flag has been remaned to GF_MENUS. Also, two problematic versions of KQ3, a problematic version of SQ1 and a problematic version of Mixed up Mother Goose have been disabled. Finally, a duplicate detection entry for SQ1 has been removed
svn-id: r28095
2007-07-15 06:24:39 +00:00
Filippos Karapetis
1dfc0614b7 Fix for bug #1751390 in LSL1. When choosing a menu option, an appropriate event is set. If that event is equal to 0x20, it was incorrectly triggered when the space bar key was pressed
svn-id: r28024
2007-07-11 11:46:02 +00:00
Filippos Karapetis
e10a6e6515 Fix for bug #1746661: "KQ3: Lockup when pressing ESC (Amiga version)"
svn-id: r27989
2007-07-09 12:03:53 +00:00
Max Horn
218e132e37 Updated legal headers in source files, based on what Pidgin (the IM client formerly knowns as Gaim) does; added new (incomplete) COPYRIGHT file; updated copyright dates in a few spots
svn-id: r27024
2007-05-30 21:56:52 +00:00
David Symonds
a2f49d31fb Remove #include "agi/text.h"; fixes build. Pointyhat to aquadran.
svn-id: r25103
2007-01-16 13:09:42 +00:00
Paweł Kołodziejski
b47eb95316 Formating names in source code
svn-id: r25101
2007-01-16 12:40:51 +00:00
David Symonds
f1e5f04287 Fix interpretation of enable.item() and disable.item() AGI functions; they affect *all* menu items with the given event code. This is most relevant to menu separators which are normally disabled, and often all share the same event code.
svn-id: r25046
2007-01-07 13:00:54 +00:00
David Symonds
61d741514e Extended text rendering code to allow "checkerboarding", and switch menu code
to using this checkerboard effect for disabled menu items (this is how Sierra's
interpreter works).

svn-id: r25024
2007-01-06 05:11:41 +00:00
David Symonds
a16a3f258d Menus should wrap around at top and bottom.
svn-id: r25023
2007-01-06 04:19:28 +00:00
Paweł Kołodziejski
1d3ca2e409 first phase of objectisation of agi engine
svn-id: r24808
2006-12-06 19:27:02 +00:00
James Brown
f5fdbcddfb Pop AGIs text.cpp into a class, for later cleanup.
svn-id: r23011
2006-06-10 13:20:29 +00:00
Max Horn
51f45f0840 Fixed many const related warnings
svn-id: r22794
2006-05-31 10:53:04 +00:00
Willem Jan Palenstijn
163ed1afd3 objectify AGI menu.h/cpp
svn-id: r22757
2006-05-29 21:30:48 +00:00
Willem Jan Palenstijn
7e287a08ce replace agi/list.h by Common::List; cleanup
svn-id: r22666
2006-05-26 17:38:12 +00:00
Paweł Kołodziejski
691ae72a59 include mouse support always
svn-id: r22605
2006-05-24 11:39:29 +00:00
Paweł Kołodziejski
107073537e imported AGI engine
svn-id: r22588
2006-05-23 23:43:52 +00:00