aboutsummaryrefslogtreecommitdiff
path: root/engines/agi
AgeCommit message (Collapse)Author
2016-05-25JANITORIAL: Remove unnecessary semicolonsTorbjörn Andersson
2016-05-22AGI: Fix invalid read (/crash), when shaking screenMartin Kiewitz
Was a regression caused by commit e1c36a52b561463217e22687605d2f4f1dc33be6 (upscaling + hercules font support) Thanks to salty-horse for reporting this issue
2016-05-17AGI: Remove useless code.Eugene Sandulenko
We set vtEntries to SCREENOBJECTS_MAX, thus, the loop for (i = vtEntries; i < SCREENOBJECTS_MAX; i++) is a no-op.
2016-05-17ALL: Change main engine header guard defines to <directory>_<engine>_HEugene Sandulenko
Recently we started to use this as new semantics, although in the past we used simly <engine>_H. Now these guard defines are consistent with rest of the files which are used in the engines.
2016-05-10AGI: Safer string copyingEugene Sandulenko
2016-05-07AGI: Reset all timers on startupEugene Sandulenko
2016-04-14JANITORIAL: Reduce audio header dependenciesOri Avtalion
2016-04-13AGI: Move predictivedialog.h out of agi.hOri Avtalion
2016-03-23AGI: Fix inaccurate predictive dialog trigger rectMartin Kiewitz
Trigger rect is the rect, that the user needs to click to trigger the predictive dialog. Previously cursor char got drawn, rect started right afterwards In case cursor char is enabled, the rect will get adjusted accordingly now.
2016-03-08ENGINES: Make variable names of ADGameDescription conform to our guidelines.Johannes Schickel
gameid -> gameId guioptions -> guiOptions
2016-03-08ENGINES: Make variable names of AdvancedMetaEngine conform to our guidelines.Johannes Schickel
_singleid -> _singleId _gameids -> _gameIds _guioptions -> _guiOptions
2016-02-28AGI: Remove comma from "Pause when entering commands"Martin Kiewitz
2016-02-28AGI: Add optional "pause, when entering commands" featureMartin Kiewitz
Shows a prompt window and pauses the game (just like original AGI did, but original AGI only did it in Hercules rendering mode).
2016-02-28AGI: Fix small memory leak in Hercules font loaderTorbjörn Andersson
2016-02-28AGI: Set monitor VM var to EGA for Hercules renderingMartin Kiewitz
Original AGI Hercules rendering was restricted by the Hercules resolution, which is why they had to remove the AGI prompt and replace it with a prompt window like the one used in SCI. We are not and even when we support that prompt window, we will still support the original AGI prompt even for Hercules rendering. Maybe some games had special graphic code, when Hercules rendering is active. This needs to get checked. We are now telling the scripts that we are running on EGA, so that they don't put text at different coordinates. Hercules rendering also used a different grid for putting text for example Space Quest 2 right at the start. This change avoids problems with such placement. We don't really want to restrict ourselves by implementing that different text grid resolution. Also added comments on game feature flags.
2016-02-28AGI: Disable font loading from HGC_GRAF.OVL (AGI3)Martin Kiewitz
It seems Sierra basically put a low res font in there, so it's useless. We should rather directly use the PC BIOS font in those cases. The code could be useful at some point in case we add support for the AGI3 Hercules rendering, although I think it looks worse, because graphics are basically "compressed".
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-25AGI: Let listSaves return list sorted on slot numbers.Johannes Schickel
2016-02-25AGI: Add detection for 13th Disciple 1.01 bug #7010Martin Kiewitz
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-20AGI: Added comments about Black Cauldron+KQ2, removed warningMartin Kiewitz
Also removed old comments about testing needed for IIgs Also removed warning when game speed is overwritten for IIgs, b/c all games were tested and should run properly now.
2016-02-19AGI: Comment about another artificial delay situationMartin Kiewitz
Gold Rush, Stagecoach path, after solving steep hill
2016-02-19AGI: Fix a tiny inaccuracy in string word wrapperMartin Kiewitz
Fixes one message box in Gold Rush during Stagecoach path, that wasn't wrapped correctly.
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-19AGI: Fix comment about end.of.loop/motionMartin Kiewitz
2016-02-19AGI: Add detection+workaround for endofloop+motion at the same timeMartin Kiewitz
Detects when end.of.loop + motions are used on the same screen object at the same time, which would have resulted in flag corruption in the original interpreter. We detect this situation now, show a warning and disable the cycler in case cycler was activated first. This solves a new issue in kq1, when grabbing the eagle in room 22, that was previously hidden just like in the original AGI. Fixes bug #7046
2016-02-19AGI: Save screen object loop_flagMartin Kiewitz
loop_flag was previously vt.parm1, which was shared for multiple uses. Was split up during graphics rewrite in commit 8a595e7771aa89d06876e13d7ab6751e26da8982 Is indirectly part of bug #7046. Saving, restarting ScummVM and restoring right after grabbing the eagle resulted in the glitch not happening (which was of course an inaccuracy anyway). This was caused by AGI currently not saving/restoring the loop_flag. Needs to get further figured out what's exactly happening internally and if this issue was just hidden by the shared vt.parm1 in previous versions. If triggered, it would have just set another pseudo-random flag on end-of-loop.
2016-02-18AGI: Add missed commaEugene Sandulenko
2016-02-18AGI: Apple IIgs time delay override MH1 completedMartin Kiewitz
+ Disable hide.mouse for MH1 Apple IIgs
2016-02-18AGI: Apple IIgs time delay override KQ4 completedMartin Kiewitz
2016-02-17AGI: Make SQ2 Apple IIgs get a AGI 2.917 equivalent and not 2.936Martin Kiewitz
Solves the priority issues at the end, because the set.pri.base call is now rejected by us. The IIgs interpreter seems to feature 177 kernel calls, but the last few are not what we expect them to be. It seems set.pri.base was discard.sound for this interpreter. It seems it was cleaned up for kq4. That one actually uses dynamic priority bands and it's working properly. Fixes bug #7034
2016-02-16AGI: Added comment about artificial delay sq2 sceneMartin Kiewitz
2016-02-16AGI: Set.pri.base comments added (Apple IIgs KQ3+SQ2)Martin Kiewitz
For KQ3 the calls are currently blocked b/c interpreter version For SQ2 they aren't, which causes a few priority issues at the end
2016-02-16AGI: Added console command to disable automatic savesMartin Kiewitz
Helps creating various saved games for Mixed Up Mother Goose
2016-02-16AGI: Change how VM timer vars are handledMartin Kiewitz
Instead of directly converting play time to VM timer vars, we only adjust VM timer vars according to play time seconds delta. This is needed for at least Mixed Up Mother Goose. The game sets the VM "second" variable to 0 and then uses it for syncing the text to the songs. We even adjust second calculation, so that the timing should always be the same and not depend on basically luck (seconds may wrap right after setting it, because internal cycles counter is not changed).
2016-02-14AGI: Changes to vm var seconds heuristic (delay loop detection)Martin Kiewitz
- small fix (forgot to reset the hit counter) - rename methods - added more information about PQ1 in comment
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-14AGI: Added a few comments about KQ1Martin Kiewitz
set.simple gets called when killing the witch + planting beans Right after bowing to the king, ego faces away from him. This issue was already present in 1.7.0. Could probably get solved later via script patcher.
2016-02-14AGI: Fix another comment about dynamic priority tableMartin Kiewitz
Available also in 2.425, then removed until 2.936, yada yada. priorityToY-Glitch is definitely present in 2.425 as well.
2016-02-14AGI: set.pri.base was actually available in AGI2.425Martin Kiewitz
Was available only in 2.425 and in 2.936+. Fixing comment accordingly. Also allowing the command for 2.425.
2016-02-13AGI: Fix new createDefaultPriorityTable() codeMartin Kiewitz
2016-02-13AGI: Fix priority band handlingMartin Kiewitz
- Fix saving/loading priority bands table. Now saving the actual raw data - Now also saving the flag, that defines if the priority table got modified by scripts - For older saved games it will try to figure out the state of that flag - Blocking set.pri.base for AGI below 2.936 - set.pri.base was actually introduced in 2.936 and not AGI3 - The set.pri.base bug was present in 2.936 as well - Saved games created between the graphics rewrite and this commit may have priority issues for games, that used AGI2.936+
2016-02-13AGI: Add another situation that needs artificial delayMartin Kiewitz
Comment only SQ1, right at the end of the asteroids
2016-02-13AGI: Apple IIgs time delay override SQ1 completedMartin Kiewitz
2016-02-13AGI: Adding seconds of current time to saved gamesMartin Kiewitz
Useful to properly detect the most recent saved game (that's done by the original save/restore dialogs)
2016-02-13AGI: Apple IIgs time delay override KQ4 data addedMartin Kiewitz
2016-02-13AGI: Apple IIgs time delay override SQ2 data addedMartin Kiewitz
2016-02-13AGI: Add time delay overwrite for AppleIIgsMartin Kiewitz
Should somewhat fix bug #7026 Needs testing (although AGI games need to get tested for 1.8.0 anyway)