aboutsummaryrefslogtreecommitdiff
path: root/engines/agi/op_test.cpp
AgeCommit message (Collapse)Author
2017-02-24AGI: act on exitAllLogics in testIfCode (fixes bug #9707)Martin Kiewitz
Thanks waltervn for finding this one. Was a regression caused by the timer heuristic for detecting bad script code. When the heuristic identified being in an inner timer loop, it told ScummVM to sleep + process events. During that time a restore can get triggered by the user via GMM. When that happens, the restore is executed immediately. When still being inside testIfCode(), it may happen that execution goes beyond the end of the current logic incl. error/crash. TODO: maybe better change GMM as a whole for AGI, that restores are always processed in a delayed way after main loop got processed once?
2017-02-23AGI: Clean up VM opcode handlingMartin Kiewitz
so that invalid opcodes won't crash ScummVM anymore
2016-05-10AGI: Safer string copyingEugene Sandulenko
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: Call update screen in have.key for nowMartin Kiewitz
Some games call it in an endless loop until a key is returned
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: test commands cleanupMartin 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-01AGI: Pass vm pointer directly to commandsMartin Kiewitz
No functional change
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: 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: hardcoded value replaced with VM_VAR_SECONDSMartin Kiewitz
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
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-04-18AGI: Fix typo in issetv opcodeWillem Jan Palenstijn
This fixes bug #3611262
2012-09-26JANITORIAL: Remove trailing whitespaces.Johannes Schickel
Powered by: git ls-files "*.cpp" "*.h" "*.m" "*.mm" | xargs sed -i -e 's/[ \t]*$//'
2011-08-14AGI: Renamed some #defines to our code conventions and moved them to enumsEugene Sandulenko
2011-08-13AGI: Further work on v1 opcode differenceEugene Sandulenko
2011-08-13AGI: Fix warning messages about undefined opcodesJussi Pitkanen
2011-08-13AGI: Add last undefined V1 test command that tests if a bit of var is setJussi Pitkanen
Also fix skipInstruction() for V1.
2011-08-13AGI: Rename cmd_what_ever to cmdWhatEverJussi Pitkanen
2011-08-13AGI: Fix and clarify IF expression handlingJussi Pitkanen
2011-08-13AGI: Implement V1 SAID test commandsJussi Pitkanen
Yes, V1 has three versions of SAID, for one, two and three arguments. Also add a few corrections to V1 instruction tables.
2011-08-13AGI: Execute test commands only when neededJussi Pitkanen
2011-08-13AGI: Refactor interpreter core (somewhat akin to SCI)Jussi Pitkanen
* 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-13AGI: Comment cleanupJussi Pitkanen
2011-08-13AGI: Simplify handling of IF conditionsJussi Pitkanen
Execute all test commands in a condition even when not strictly needed.
2011-08-13AGI: Use a jump table for test commands instead of switch/caseJussi Pitkanen
Preparations for V1 support.
2011-05-25ALL: behaviour -> behaviorMatthew Hoops
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-04-14ALL: centre -> centerMax Horn
2010-06-21AGI: Turn some more AGI static functions into AgiEngine methodsMax Horn
svn-id: r50127
2010-06-21AGI: Turn timerHack and curLogic into AgiEngine members; get rid of some ↵Max Horn
#defines svn-id: r50125
2010-06-18AGI: Change some #defines to enumsMax Horn
svn-id: r50033
2010-01-25Strip trailing spaces/tabs.Johannes Schickel
svn-id: r47541
2010-01-03Reduce header dependencies for AGI engine.Eugene Sandulenko
svn-id: r46942
2009-11-02Changed foo(void) to foo() in almost all non-backend source filesMax Horn
svn-id: r45616
2009-06-06Correct implementation for set.key opcode. Fixes #2605104: "AGI: Manhunter, ↵Eugene Sandulenko
F3 hotkey dosent work", removed number of hacks svn-id: r41259
2009-06-06Fix bug #2721940: "AGI: Gold Rush! Restart Option differs from original"Eugene Sandulenko
svn-id: r41243
2009-06-06Whitespace fixes and C++ commentsEugene Sandulenko
svn-id: r41239
2009-02-12Fix for bug #2541237 - "AGI: Restart quits ScummVM"Filippos Karapetis
svn-id: r36279
2008-09-30Renamed Engine::quit to Engine::shouldQuit (previously, it was easily ↵Max Horn
confused with Engine::quitGame); also cleaned up engine.h a bit svn-id: r34700
2008-07-10Removed unnecessary #inlcudesChristopher Page
svn-id: r32984
2008-07-09Reimplemented pushEvent() and artificialEventQueue to work with Events ↵Christopher Page
instead of EventTypes. Reimplemented Queue as a List instead of Array. Updated AGOS, AGI, CINE, GOB, and KYRA to work with the current implementation of the GMM svn-id: r32971
2008-07-07Agi works with the new GMM implementationChristopher Page
svn-id: r32953
2008-06-24Created Global Main Menu Dialog. Made a uniform _quit flag for engines. So ↵Christopher Page
far agi, agos, and cine are now using the new _quit flag. svn-id: r32770
2008-01-05Fixed warning.Torbjörn Andersson
svn-id: r30269