Commit Graph
251 Commits
Author SHA1 Message Date
Martin Kiewitz df845be116 AGI: added/changed font warnings 2016-01-29 14:07:48 +01:00
Martin Kiewitz ccfd870c81 AGI: adjust mouse pos using render start Y
instead of having it hardcoded.
2016-01-29 14:03:47 +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 c1cfcea39a AGI: Remove superflous default value registration for extra GUI options. 2015-12-28 00:14:11 +01:00
Martin Kiewitz a709596b48 AGI: implement original sierra font, fix bug #6405
custom font is still used for fanmade games
i cannot test preAGI games, because I don't own
those.
2015-05-19 12:39:39 +02:00
Martin Kiewitz b39b15485b AGI: mouse support cleanup 2015-05-15 05:10:08 +02:00
Martin Kiewitz e339cd66c1 AGI: implement engine option to disable mouse
engine option gets disabled for all Amiga games
also disabled for certain fanmade games, which
require a mouse.
defaults to enabled mouse

Engine options are not shown for previously
detected games until those games get redetected
If there is a way to handle those cases, please
fix.
2015-05-15 04:09:55 +02:00
Filippos Karapetis b3e45ccc68 AGI: Disable/remove unused code
This is code that isn't used currently. Thanks to fingolfin for
pointing out these parts of the code
2014-12-07 15:33:11 +02:00
Filippos Karapetis 6ec077e1b9 AGI: Set the correct palette to use for each Amiga game
The Amiga palettes were added in 16529e58e6, but were never used.
A new game-specific option has been added for the old Amiga palette
2014-12-07 14:40:53 +02:00
Johannes Schickel 6aac905dfd AGI: Make GPL headers consistent in themselves. 2014-02-18 02:39:32 +01:00
Sven Hesse 989ea7cb56 JANITORIAL: Remove trailing whitespace 2013-07-14 19:01:47 +02:00
Eugene Sandulenko eddf8cba93 AGI: Fix unitialized variables. CID 1002922 2013-05-02 14:17:46 +03:00
Eugene Sandulenko 4a17b91db2 AGI: Fix sound deinit. CID 1004128
We really left sound gen leaked with preagi games.
2013-04-21 14:12:13 +03: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
Filippos Karapetis 5e10737015 AGI: Add played time information to saved games 2012-03-27 00:50:29 +03:00
Filippos Karapetis 85ca13db4b AGI: Use the ScummVM dialogs for saving/loading
An option has been added to use the original ones, if needed
2012-03-27 00:21:50 +03:00
D G Turner bbe686c507 AGI: Fix compilation on NDS, broken due to predictive text changes. 2012-03-26 01:09:15 +01:00
Oleksiy Kurochko ec32ccb6d6 GUI: Move predictive dialog to common gui 2012-03-25 12:21:38 +03:00
Max Horn 4f8665fc83 COMMON: Move isFoo functions to namespace Common, add doxygen comments 2012-02-20 16:18:27 +01:00
Max Horn 658080deed ALL: Avoid using is* macros from ctype.h
On some systems, passing signed chars to macros like isspace() etc. lead
to a runtime error. Hence, mark these macros as forbidden by default,
and introduce otherwise equivalent alternatives for them.
2012-02-15 16:51:37 +01:00
Filippos Karapetis 2be8db90ee AGI: Fixed bug #3196882 - "KQ3: PCSpeaker affects render mode" 2011-09-26 05:23:42 +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
Filippos Karapetis bc3c68c508 AGI: Fixed bug #3292784 - "AGI: SQ2: Name forgotten after game restart"
The string buffer should not be cleared on game restart, as game scripts
depend on it being maintained unchanged during restart.
2011-09-25 18:39:22 +03:00
Matthew Hoops de6390dddb AGI: Make the sound code use AgiBase instead of AgiEngine
In preparation of using the sound code with Winnie
2011-08-14 13:10:43 -04:00
Jussi Pitkanen a4e0cd53f0 AGI: Refactor interpreter core (somewhat akin to SCI)
* Instruction tables are now defined in opcodes.{cpp,h}.

* Move opcode handlers from Agi::AgiEngine to Agi
* Opcode handlers take as parameter a pointer to AGI state (AgiGame)
2011-08-13 23:26:51 +01:00
Max Horn 88913c0139 ALL: Remove trailing whitespaces
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-06-20 00:59:48 +02:00
D G Turner b5bb412569 AGI: Numeric Keypad Control in Predictive Dialog (Bug #3309376)
In AGI games, the numeric keypad is used as an alias for cursor keys to
allow stationary and 8 directional input, but while the predictive
dialog is open, this is more sensibly mapped to numeric input to
allow use of the predictive input on desktop ports.
2011-06-08 04:16:54 +01:00
Max Horn 44b798d107 AGI: Unify RandomSource instantiation
This fixes a leak in PreAGI games (which never deleted their
RandomSource), ensures that PreAGI's RandomSource has a name (and hence
is registered with the event recorder) and even slightly simplifies the
AgiEngine destructor.
2011-05-17 12:17:27 +02:00
Max Horn 4cbe4ede66 COMMON: Registers RandomSources in constructor with the event recorder
This also removes the dependency of engines on the event recorder header
and API, and will make it easier to RandomSources that are not properly
registered.
2011-05-17 12:17:26 +02:00
strangerke 69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Ori Avtalion 9414d7a6e2 JANITORIAL: Reduce header dependencies in shared code
Some backends may break as I only compiled SDL
2011-04-28 15:08:58 +03:00
dhewg 454bad69e9 AGI: Remove newlines from debug() 2011-03-16 20:58:57 +01:00
dhewg 69a026192e AGI: Kill the timer based counter
Using the timer mechanism for just a simple counter is not just
overkill, its also inaccurate. When using a call frequency of x,
and waiting for y callbacks, the passed time will not be x*y.
The problem amplifies on slower platforms and/or fair thread
schedulers.
Use absolute times instead. Most notably, the walking speed of
the avatar is now smooth on android, but probably on all other
handhelds we support too.
2011-03-05 11:00:37 +01:00
Max Horn 42ab839dd6 AUDIO: Rename sound/ dir to audio/
svn-id: r55850
2011-02-09 01:09:01 +00:00
Max Horn 2180b2d6b5 COMMON: Split common/stream.h into several headers
svn-id: r54385
2010-11-19 17:03:07 +00:00
Max Horn 4d3a07b494 COMMON: Rename and tweak MD5 functions
* names now comply to our naming conventions
* the function computeStreamMD5AsString which computes the MD5
  as a hex string now returns it as a Common::String
* add doxygen comments

svn-id: r54121
2010-11-07 17:16:59 +00:00
Max Horn 415f9a1b0b AGI: Add note about AgiEngine::parseFeatures
svn-id: r53872
2010-10-27 09:47:18 +00:00
Max Horn 2c99caa795 AGI: Fix memory leak in AgiEngine::parseFeatures()
svn-id: r53869
2010-10-26 22:35:37 +00: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
Torbjörn Andersson f994deb4ee AGI: Deconfusify the AGI music driver
(After a brief discussion with sev.) AdLib is now the old Sarien sound,
PCjr is the new PCjr emulation. PCjr is still the default; we don't
need to ask getMusicType() how to get there.

svn-id: r52838
2010-09-21 06:05:27 +00:00
Eugene Sandulenko d43ff54a08 AGI: Changed meaning of pcjr sound device. Now it is Sarien emu
Music drivers:
default: proper Tandy/PCJr
adlib: proper Tandy/PCJr
pcjr: old Sarien emu
amiga: old Sarien emu in Amiga mode
pcspk: Sarien emu in PCSpk mode (quite wrong)
midi: 4 channel MIDI

svn-id: r52836
2010-09-21 05:36:51 +00:00
Eugene Sandulenko 763c089d06 AGI: Fix bug #3061578: AGI: PCjr Mode Not Default for DOS Games
svn-id: r52831
2010-09-20 21:17:49 +00:00
Eugene Sandulenko fcdb349fa2 AGI: Respect mute setting
svn-id: r52373
2010-08-25 07:41:14 +00:00
Eugene Sandulenko 756d5e2847 AGI: Fix valgrind warning
svn-id: r51312
2010-07-26 14:22:16 +00:00
Eugene Sandulenko e4bc0c3a18 AGI: Fix crash on exit thanks to valgrind
svn-id: r51311
2010-07-26 14:21:59 +00:00
Max Horn 1d4c82885d DEBUGGER: Simplify how our console debugger works / is used
* Remove _isAttached member var and isAttached method
* Engines now always call the onFrame method; whether it does
  something is decided by the debugger class resp. its subclasses
* Make detach() protected instead of private, so that subclasses
  can invoke it
* Remove _detach_now member var (call detach() instead).
* Rename _frame_countdown to _frameCountdown and properly
  document it.
* Add more doxygen comments
* Cleanup

svn-id: r50963
2010-07-17 18:38:42 +00:00
Matthew Hoops 6c22d599ec Fix non-PCSPK sound types in AGI.
svn-id: r50891
2010-07-14 17:04:53 +00:00
Filippos Karapetis 4304a414ab AGI: Removed the deprecated (and confusing) getGameId() function inside the AgiEngine class, and fixed a related bug, too
svn-id: r50607
2010-07-02 23:12:17 +00:00
Max Horn bbad3f333a Patch #1956501: "GUI/LAUNCHER: Midi device selection"
svn-id: r50128
2010-06-21 21:36:36 +00:00
Max Horn c7a9865a73 AGI: Change a static var to member var AgiEngine::_lastTickTimer
svn-id: r50126
2010-06-21 21:33:45 +00:00