aboutsummaryrefslogtreecommitdiff
path: root/engines/agi/agi.cpp
AgeCommit message (Collapse)Author
2019-10-14AGI: Fix Missing Default Switch CasesD G Turner
These are flagged by GCC if -Wswitch-default is enabled.
2019-08-25AGI: Fix Remaining GCC Compiler WarningsD G Turner
These were the remaining memset on non-trivial structure warnings.
2019-08-25AGI: Fix GCC Compiler Warnings from memset of Game State StructuresD G Turner
This fixes these, but adding constructors causes further memset usage warnings on the structures which are now "non-trivial" due to the addition of constructors. Should be able to fix by repeating this process to remove further memset usage.
2019-08-24AGI: Fix some GCC Compilation WarningsD G Turner
These were associated with memset() of Mouse structure which now has a constructor method to do this instead.
2019-05-08AGI: Fix Several GCC Compiler WarningsD G Turner
2018-08-18AGI: Replace use of strdup with Common::StringColin Snover
It was also necessary to make sure that the Common::String objects were initialised correctly by switching to use a C++ container for engine objects instead of calloc, since they were no longer C-compatible PODs.
2017-02-23AGI: Clean up VM opcode handlingMartin Kiewitz
so that invalid opcodes won't crash ScummVM anymore
2017-02-11AGI: Hold-key-mode fixMartin Kiewitz
Original AGI only created a stationary event, when the last pressed direction key was released. We do that now as well. Makes cursor in MH1 behave properly. Thanks to waltervn for pointing this out.
2016-05-07AGI: Reset all timers on startupEugene Sandulenko
2016-04-14JANITORIAL: Reduce audio header dependenciesOri Avtalion
2016-02-28AGI: Hercules rendering for game screenMartin Kiewitz
2016-02-27AGI: Add support for upscaling and Hercules hires fontMartin Kiewitz
- 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-20AGI: Add detection for fan games with broken volume bug #7035Martin Kiewitz
Plenty of fan games set volume to mute, because they thought 15 would be loudest. It's in fact "mute" in AGI. Those games were made primarily for PC AGI, which did not use the volume setting. We do, so such games would get muted audio. We try to detect such games. Hopefully fully fixes bug #7035. Too many games to try them all out.
2016-02-19AGI: Comment about another artificial delay situationMartin Kiewitz
Gold Rush, Stagecoach path, after solving steep hill
2016-02-19AGI: Add artificial delay for GR stagecoach pathMartin Kiewitz
2016-02-19AGI: Slightly change artificial delay to detect GR muleMartin Kiewitz
Now also detects the text, that is shown when following your mule in Gold Rush!
2016-02-18AGI: Apple IIgs time delay override MH1 completedMartin Kiewitz
+ Disable hide.mouse for MH1 Apple IIgs
2016-02-16AGI: Added comment about artificial delay sq2 sceneMartin Kiewitz
2016-02-14AGI: Add heuristic to detect delay loops within scriptsMartin Kiewitz
And in that case poll events, delay for a few milliseconds and update screen. This somewhat worked before the graphics rewrite because of a timer hack. This one tries to detect actual inner loops. Happens in at least Police Quest 1 when playing poker.
2016-02-13AGI: Add another situation that needs artificial delayMartin Kiewitz
Comment only SQ1, right at the end of the asteroids
2016-02-11AGI: Rename nonBlockingText -> artificialDelayMartin Kiewitz
Also add a table for Apple IIgs games for music issues like in PQ1 intro, where the developers thought that loading a new room would take X amount of time and they started loading before the music was done. In our AGI music may get cut off because of this. It of course also happens, when using the original interpreter, as soon as you emulate a faster processor. Which means this is also a workaround. See bug #7026
2016-02-10AGI: Init video before font + text initMartin Kiewitz
2016-02-05AGI: Make it possible to also force CGA/EGA/VGAMartin Kiewitz
...rendering
2016-02-05AGI: Render mode Macintosh addedMartin Kiewitz
Palette + mouse cursor + box frame color only atm Thanks to wjp for gamma correction Not sure, if our current color adjustment is correct Should be checked by using actual hardware
2016-02-04AGI: Fix Hold-Key-Mode implementationMartin Kiewitz
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-03AGI: Remove _game.state, not needed anymoreMartin Kiewitz
2016-02-03AGI: Change cycle delay handling, seems to fix GRMartin Kiewitz
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-03AGI: Cycle event processing changedMartin Kiewitz
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-02AGI: Remove inputMode, not needed anyoreMartin Kiewitz
2016-02-02AGI: Fix formatting.Johannes Schickel
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-01AGI: Remove old clockEnabled booleanMartin Kiewitz
No longer needed We use ScummVM system total play time functionality instead
2016-01-31AGI: vol system setting gets sent to scriptsMartin Kiewitz
Volume changes in ScummVM system menu now gets sent to scripts as well.
2016-01-31AGI: properly implement volume control + syncMartin Kiewitz
Original code did assume that AGI volume level is 0-15 (0 for silence, 15 for maximum volume). It actually is the other way. 0 is maximum, 15 is silence. Fixed that. Also implemented sync with ScummVM settings dialog. In case "mute" is enabled by the user, any volume changes done by scripts are ignored. Fixes Manhunter 1 Apple IIgs not getting sound anymore since the VM Var cleanup (the script volume change by the scripts didn't reach us before)
2016-01-31AGI: remove timer hack, implement in game timerMartin Kiewitz
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-31AGI: VM Var code cleanupMartin Kiewitz
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-29AGI: new font class createdMartin Kiewitz
moved font stuff into GfxFont class removed Mickey Mouse font data (is loaded from mickey.exe)
2016-01-29AGI: use Common::RenderMode instead of its ownMartin Kiewitz
AppleIIgs + Atari ST weren't available back then in the enum. They now are, so I can use the Common one.
2016-01-29AGI: remove initGraphics commentMartin Kiewitz
2016-01-29AGI: added/changed font warningsMartin Kiewitz
2016-01-29AGI: adjust mouse pos using render start YMartin Kiewitz
instead of having it hardcoded.
2016-01-29AGI: graphics rewrite + cleanupMartin Kiewitz
- 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
2015-12-28AGI: Remove superflous default value registration for extra GUI options.Johannes Schickel
2015-05-19AGI: implement original sierra font, fix bug #6405Martin Kiewitz
custom font is still used for fanmade games i cannot test preAGI games, because I don't own those.
2015-05-15AGI: mouse support cleanupMartin Kiewitz
2015-05-15AGI: implement engine option to disable mouseMartin Kiewitz
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.
2014-12-07AGI: Disable/remove unused codeFilippos Karapetis
This is code that isn't used currently. Thanks to fingolfin for pointing out these parts of the code
2014-12-07AGI: Set the correct palette to use for each Amiga gameFilippos Karapetis
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-02-18AGI: Make GPL headers consistent in themselves.Johannes Schickel
2013-07-14JANITORIAL: Remove trailing whitespaceSven Hesse
2013-05-02AGI: Fix unitialized variables. CID 1002922Eugene Sandulenko