aboutsummaryrefslogtreecommitdiff
path: root/engines/agi/cycle.cpp
AgeCommit message (Collapse)Author
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-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-18AGI: Apple IIgs time delay override KQ4 completedMartin 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: 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)
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-09AGI: Only set VAR_KEY,when no controller/directionMartin Kiewitz
Fixes Mixed Up Mother Goose Apple IIgs save/restore prompt
2016-02-07AGI: Do not set TIME_DELAY at all on restartMartin Kiewitz
Original AGI did not do it and it would ruin the game speed of at least Larry on Apple IIgs after dying.
2016-02-04AGI: Add Apple IIgs system UI buttonsMartin Kiewitz
For Restart/Quit/Pause dialog
2016-02-03AGI: Increase time delay for Apple IIgsMartin Kiewitz
It seems that either Apple IIgs ran very slowly or that its AGI interpreter didn't do the delays as on all the other platforms. Further investigation needed Fixes all sorts of games running now way too fast.
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-03AGI: Make inner loop handlers consistentMartin Kiewitz
2016-02-03AGI: Implement messageBox() as inner loopMartin Kiewitz
Also remove _game.keypress, _game.msgBoxTicks
2016-02-03AGI: Fix regression of have.key changesMartin Kiewitz
original commit 8269a94bcd55200f7ae8aba00c7b6fd0d37b9a37 Now hopefully properly implemented. Adjusted a few more inaccuracies (we set v19 to 0, where we shouldn't have)
2016-02-02AGI: Remove inputMode, not needed anyoreMartin Kiewitz
2016-02-02AGI: Use inner loop functionality for have.keyMartin Kiewitz
Also do it like the original interpreter did it
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-02AGI: mouse support for menuMartin Kiewitz
2016-02-01AGI: change how menus are triggered on Non-PCMartin Kiewitz
2016-02-01AGI: Remove _game.hasPrompt, no longer neededMartin Kiewitz
2016-02-01AGI: Remove old clockEnabled booleanMartin Kiewitz
No longer needed We use ScummVM system total play time functionality instead
2016-02-01AGI: implement predictive dialogMartin Kiewitz
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: adjust getFlag(), setVar() and getVar()Martin Kiewitz
2016-01-31AGI: getflag/setflag/etc. cleanupMartin Kiewitz
renamed getflag() to getFlag() renamed setflag() to setFlag() renamed flipflag() to flipFlag() preagi: renamed setFlag for this engine to setWinnieFlag
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-31AGI: copying between var + ego screen obj fixedMartin Kiewitz
We copied the wrong way see cycle.cpp This fixes the fan game 13th disciple. bug #3563 Also cleanup playercontrol variable is now a boolean
2016-01-30AGI: Ego motion type change on newroom only agi3Martin Kiewitz
Ego motion type change on newRoom() was only done for AGI3
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: 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-05AGI: stub for AGI1 newRoom()Eugene Sandulenko
2014-02-18AGI: Make GPL headers consistent in themselves.Johannes Schickel
2013-05-11AGI: Fix bug #3600733 - "AGI FANMADE: function slowing down game"Filippos Karapetis
We now only test for events in testKeypressed() without updating the game cycle at all (NAGI doesn't update the game cycle either). This fixes the slowdowns in some animations where have.key() is issued, like Manannan's lightnings in the intro of KQ3 and the bullets in the intro of PQ1
2013-05-02COMMON: Change kPlatformPC to kPlatformDOSMatthew Hoops
"PC" was very ambiguous and now it matches what we show in the GUI. This also corrects sword2's platform to Windows.
2011-12-10AGI: Replace usage of 'goto'.D G Turner
2011-11-03AGI: Commented out if statements that always evaluate to trueFilippos Karapetis
2011-09-26AGI: Fixed bug #3074570 - "AGI LSL1: TAB stops working after restart"Filippos Karapetis
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-25AGI: Switched to Common::String in the save/load codeFilippos Karapetis
2011-09-25AGI: Rewrite getSavegameFilename() so that it doesn't try to return a ↵Filippos Karapetis
pointer to a local variable
2011-08-14AGI: Renamed some #defines to our code conventions and moved them to enumsEugene Sandulenko
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2010-10-26AGI: Replace report() macro by debug() / warning()Max Horn
This makes AGI quite a bit less noisy by default. svn-id: r53868
2010-08-25AGI: Fix bug #3034370Eugene Sandulenko
Bug #3034370: "Manhunter: New York keyboard unresponsive". Actually the keyboard was made responsive after June implementation of set.key, still the game speed was increasing. Fixed that too. svn-id: r52369
2010-08-25AGI: Reset controllers on game restartEugene Sandulenko
svn-id: r52368
2010-07-16Use "true" instead of "1" in if statements to make clang a bit more happier ↵Johannes Schickel
with -Werror. svn-id: r50943
2010-06-20Don't go into "menu input mode" unless the game currently allows the menus toTorbjörn Andersson
be displayed. I hope this is the correct fix to keep Police Quest 1 from hanging if you press Escape while reading the newspaper in the briefing room. svn-id: r50072