From 0a102981f004733c9e7956ae58b4d0050db38e2b Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Wed, 23 Jun 2010 15:23:37 +0000 Subject: Moved the SelectorCache struct inside selector.h, where it belongs, and fixed some header dependencies in the process svn-id: r50183 --- engines/sci/console.cpp | 1 + engines/sci/engine/features.cpp | 1 + engines/sci/engine/kernel.h | 2 + engines/sci/engine/savegame.cpp | 1 + engines/sci/engine/selector.cpp | 1 + engines/sci/engine/selector.h | 112 ++++++++++++++++++++++++++++++++- engines/sci/engine/state.cpp | 1 + engines/sci/engine/vm.h | 111 -------------------------------- engines/sci/graphics/animate.cpp | 1 + engines/sci/graphics/compare.cpp | 1 + engines/sci/graphics/controls.cpp | 1 + engines/sci/graphics/coordadjuster.cpp | 1 + engines/sci/graphics/frameout.cpp | 2 +- engines/sci/graphics/maciconbar.cpp | 1 + engines/sci/graphics/menu.cpp | 1 + engines/sci/sound/soundcmd.cpp | 1 + 16 files changed, 126 insertions(+), 113 deletions(-) (limited to 'engines/sci') diff --git a/engines/sci/console.cpp b/engines/sci/console.cpp index 1fdcd579c0..cf87b34bba 100644 --- a/engines/sci/console.cpp +++ b/engines/sci/console.cpp @@ -31,6 +31,7 @@ #include "sci/event.h" #include "sci/resource.h" #include "sci/engine/state.h" +#include "sci/engine/kernel.h" #include "sci/engine/selector.h" #include "sci/engine/savegame.h" #include "sci/engine/gc.h" diff --git a/engines/sci/engine/features.cpp b/engines/sci/engine/features.cpp index e8f2fe326c..75f271f3ad 100644 --- a/engines/sci/engine/features.cpp +++ b/engines/sci/engine/features.cpp @@ -24,6 +24,7 @@ */ #include "sci/engine/features.h" +#include "sci/engine/kernel.h" #include "sci/engine/script.h" #include "sci/engine/selector.h" #include "sci/engine/vm.h" diff --git a/engines/sci/engine/kernel.h b/engines/sci/engine/kernel.h index 11bc76348d..802a2d5f0b 100644 --- a/engines/sci/engine/kernel.h +++ b/engines/sci/engine/kernel.h @@ -31,6 +31,7 @@ #include "common/rect.h" #include "common/str-array.h" +#include "sci/engine/selector.h" #include "sci/sci.h" // for USE_OLD_MUSIC_FUNCTIONS #include "sci/engine/vm_types.h" // for reg_t #include "sci/engine/vm.h" @@ -39,6 +40,7 @@ namespace Sci { struct Node; // from segment.h struct List; // from segment.h +struct SelectorCache; // from selector.h /** * @defgroup VocabularyResources Vocabulary resources in SCI diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp index 351e7c6a7b..f6a6afd196 100644 --- a/engines/sci/engine/savegame.cpp +++ b/engines/sci/engine/savegame.cpp @@ -33,6 +33,7 @@ #include "sci/event.h" #include "sci/engine/features.h" +#include "sci/engine/kernel.h" #include "sci/engine/state.h" #include "sci/engine/message.h" #include "sci/engine/savegame.h" diff --git a/engines/sci/engine/selector.cpp b/engines/sci/engine/selector.cpp index 65024742c7..00480743cc 100644 --- a/engines/sci/engine/selector.cpp +++ b/engines/sci/engine/selector.cpp @@ -24,6 +24,7 @@ */ #include "sci/sci.h" +#include "sci/engine/kernel.h" #include "sci/engine/state.h" #include "sci/engine/selector.h" diff --git a/engines/sci/engine/selector.h b/engines/sci/engine/selector.h index 851ff6bc81..acb7912d8d 100644 --- a/engines/sci/engine/selector.h +++ b/engines/sci/engine/selector.h @@ -30,10 +30,120 @@ #include "sci/engine/vm_types.h" // for reg_t #include "sci/engine/vm.h" -#include "sci/engine/kernel.h" // for Kernel::_selectorCache namespace Sci { +/** Contains selector IDs for a few selected selectors */ +struct SelectorCache { + SelectorCache() { + memset(this, 0, sizeof(*this)); + } + + // Statically defined selectors, (almost the) same in all SCI versions + Selector y; + Selector x; + Selector view, loop, cel; ///< Description of a specific image + Selector underBits; ///< Used by the graphics subroutines to store backupped BG pic data + Selector nsTop, nsLeft, nsBottom, nsRight; ///< View boundaries ('now seen') + Selector lsTop, lsLeft, lsBottom, lsRight; ///< Used by Animate() subfunctions and scroll list controls + Selector signal; ///< Used by Animate() to control a view's behaviour + Selector illegalBits; ///< Used by CanBeHere + Selector brTop, brLeft, brBottom, brRight; ///< Bounding Rectangle + // name, key, time + Selector text; ///< Used by controls + Selector elements; ///< Used by SetSynonyms() + // color, back + Selector mode; ///< Used by text controls (-> DrawControl()) + // style + Selector state, font, type;///< Used by controls + // window + Selector cursor, max; ///< Used by EditControl + // mark, who + Selector message; ///< Used by GetEvent + // edit + Selector play; ///< Play function (first function to be called) + Selector number; + Selector handle; ///< Replaced by nodePtr in SCI1+ + Selector nodePtr; ///< Replaces handle in SCI1+ + Selector client; ///< The object that wants to be moved + Selector dx, dy; ///< Deltas + Selector b_movCnt, b_i1, b_i2, b_di, b_xAxis, b_incr; ///< Various Bresenham vars + Selector xStep, yStep; ///< BR adjustments + Selector moveSpeed; ///< Used for DoBresen + Selector canBeHere; ///< Funcselector: Checks for movement validity in SCI0 + Selector heading, mover; ///< Used in DoAvoider + Selector doit; ///< Called (!) by the Animate() system call + Selector isBlocked, looper; ///< Used in DoAvoider + Selector priority; + Selector modifiers; ///< Used by GetEvent + Selector replay; ///< Replay function + // setPri, at, next, done, width + Selector wordFail, syntaxFail; ///< Used by Parse() + // semanticFail, pragmaFail + // said + Selector claimed; ///< Used generally by the event mechanism + // value, save, restore, title, button, icon, draw + Selector delete_; ///< Called by Animate() to dispose a view object + Selector z; + + // SCI1+ static selectors + Selector parseLang; + Selector printLang; ///< Used for i18n + Selector subtitleLang; + Selector size; + Selector points; ///< Used by AvoidPath() + Selector palette; + Selector dataInc; + // handle (in SCI1) + Selector min; ///< SMPTE time format + Selector sec; + Selector frame; + Selector vol; + Selector pri; + // perform + Selector moveDone; ///< used for DoBresen + + // SCI1 selectors which have been moved a bit in SCI1.1, but otherwise static + Selector cantBeHere; ///< Checks for movement avoidance in SCI1+. Replaces canBeHere + Selector topString; ///< SCI1 scroll lists use this instead of lsTop + Selector flags; + + // SCI1+ audio sync related selectors, not static. They're used for lip syncing in + // CD talkie games + Selector syncCue; ///< Used by DoSync() + Selector syncTime; + + // SCI1.1 specific selectors + Selector scaleSignal; //< Used by kAnimate() for cel scaling (SCI1.1+) + Selector scaleX, scaleY; ///< SCI1.1 view scaling + Selector maxScale; ///< SCI1.1 view scaling, limit for cel, when using global scaling + Selector vanishingX; ///< SCI1.1 view scaling, used by global scaling + Selector vanishingY; ///< SCI1.1 view scaling, used by global scaling + + // Used for auto detection purposes + Selector overlay; ///< Used to determine if a game is using old gfx functions or not + + // SCI1.1 Mac icon bar selectors + Selector iconIndex; ///< Used to index icon bar objects + +#ifdef ENABLE_SCI32 + Selector data; // Used by Array()/String() + Selector picture; // Used to hold the picture ID for SCI32 pictures + + Selector plane; + Selector top; + Selector left; + Selector bottom; + Selector right; + Selector resX; + Selector resY; + + Selector fore; + Selector back; + Selector dimmed; +#endif +}; + /** * Map a selector name to a selector id. Shortcut for accessing the selector cache. */ diff --git a/engines/sci/engine/state.cpp b/engines/sci/engine/state.cpp index 129976ce99..4b99097476 100644 --- a/engines/sci/engine/state.cpp +++ b/engines/sci/engine/state.cpp @@ -29,6 +29,7 @@ #include "sci/debug.h" // for g_debug_sleeptime_factor #include "sci/event.h" +#include "sci/engine/kernel.h" #include "sci/engine/state.h" #include "sci/engine/selector.h" #include "sci/engine/vm.h" diff --git a/engines/sci/engine/vm.h b/engines/sci/engine/vm.h index 9de7cc587c..88898cdbba 100644 --- a/engines/sci/engine/vm.h +++ b/engines/sci/engine/vm.h @@ -71,117 +71,6 @@ struct Class { #define RAW_IS_OBJECT(datablock) (READ_SCI11ENDIAN_UINT16(((byte *) datablock) + SCRIPT_OBJECT_MAGIC_OFFSET) == SCRIPT_OBJECT_MAGIC_NUMBER) -/** Contains selector IDs for a few selected selectors */ -struct SelectorCache { - SelectorCache() { - memset(this, 0, sizeof(*this)); - } - - // Statically defined selectors, (almost the) same in all SCI versions - Selector y; - Selector x; - Selector view, loop, cel; ///< Description of a specific image - Selector underBits; ///< Used by the graphics subroutines to store backupped BG pic data - Selector nsTop, nsLeft, nsBottom, nsRight; ///< View boundaries ('now seen') - Selector lsTop, lsLeft, lsBottom, lsRight; ///< Used by Animate() subfunctions and scroll list controls - Selector signal; ///< Used by Animate() to control a view's behaviour - Selector illegalBits; ///< Used by CanBeHere - Selector brTop, brLeft, brBottom, brRight; ///< Bounding Rectangle - // name, key, time - Selector text; ///< Used by controls - Selector elements; ///< Used by SetSynonyms() - // color, back - Selector mode; ///< Used by text controls (-> DrawControl()) - // style - Selector state, font, type;///< Used by controls - // window - Selector cursor, max; ///< Used by EditControl - // mark, who - Selector message; ///< Used by GetEvent - // edit - Selector play; ///< Play function (first function to be called) - Selector number; - Selector handle; ///< Replaced by nodePtr in SCI1+ - Selector nodePtr; ///< Replaces handle in SCI1+ - Selector client; ///< The object that wants to be moved - Selector dx, dy; ///< Deltas - Selector b_movCnt, b_i1, b_i2, b_di, b_xAxis, b_incr; ///< Various Bresenham vars - Selector xStep, yStep; ///< BR adjustments - Selector moveSpeed; ///< Used for DoBresen - Selector canBeHere; ///< Funcselector: Checks for movement validity in SCI0 - Selector heading, mover; ///< Used in DoAvoider - Selector doit; ///< Called (!) by the Animate() system call - Selector isBlocked, looper; ///< Used in DoAvoider - Selector priority; - Selector modifiers; ///< Used by GetEvent - Selector replay; ///< Replay function - // setPri, at, next, done, width - Selector wordFail, syntaxFail; ///< Used by Parse() - // semanticFail, pragmaFail - // said - Selector claimed; ///< Used generally by the event mechanism - // value, save, restore, title, button, icon, draw - Selector delete_; ///< Called by Animate() to dispose a view object - Selector z; - - // SCI1+ static selectors - Selector parseLang; - Selector printLang; ///< Used for i18n - Selector subtitleLang; - Selector size; - Selector points; ///< Used by AvoidPath() - Selector palette; - Selector dataInc; - // handle (in SCI1) - Selector min; ///< SMPTE time format - Selector sec; - Selector frame; - Selector vol; - Selector pri; - // perform - Selector moveDone; ///< used for DoBresen - - // SCI1 selectors which have been moved a bit in SCI1.1, but otherwise static - Selector cantBeHere; ///< Checks for movement avoidance in SCI1+. Replaces canBeHere - Selector topString; ///< SCI1 scroll lists use this instead of lsTop - Selector flags; - - // SCI1+ audio sync related selectors, not static. They're used for lip syncing in - // CD talkie games - Selector syncCue; ///< Used by DoSync() - Selector syncTime; - - // SCI1.1 specific selectors - Selector scaleSignal; //< Used by kAnimate() for cel scaling (SCI1.1+) - Selector scaleX, scaleY; ///< SCI1.1 view scaling - Selector maxScale; ///< SCI1.1 view scaling, limit for cel, when using global scaling - Selector vanishingX; ///< SCI1.1 view scaling, used by global scaling - Selector vanishingY; ///< SCI1.1 view scaling, used by global scaling - - // Used for auto detection purposes - Selector overlay; ///< Used to determine if a game is using old gfx functions or not - - // SCI1.1 Mac icon bar selectors - Selector iconIndex; ///< Used to index icon bar objects - -#ifdef ENABLE_SCI32 - Selector data; // Used by Array()/String() - Selector picture; // Used to hold the picture ID for SCI32 pictures - - Selector plane; - Selector top; - Selector left; - Selector bottom; - Selector right; - Selector resX; - Selector resY; - - Selector fore; - Selector back; - Selector dimmed; -#endif -}; - // A reference to an object's variable. // The object is stored as a reg_t, the variable as an index into _variables struct ObjVarRef { diff --git a/engines/sci/graphics/animate.cpp b/engines/sci/graphics/animate.cpp index 9051111d2d..59cbedd7a2 100644 --- a/engines/sci/graphics/animate.cpp +++ b/engines/sci/graphics/animate.cpp @@ -28,6 +28,7 @@ #include "graphics/primitives.h" #include "sci/sci.h" +#include "sci/engine/kernel.h" #include "sci/engine/state.h" #include "sci/engine/selector.h" #include "sci/engine/vm.h" diff --git a/engines/sci/graphics/compare.cpp b/engines/sci/graphics/compare.cpp index 47b4f22607..a245eefdda 100644 --- a/engines/sci/graphics/compare.cpp +++ b/engines/sci/graphics/compare.cpp @@ -28,6 +28,7 @@ #include "graphics/primitives.h" #include "sci/sci.h" +#include "sci/engine/kernel.h" #include "sci/engine/state.h" #include "sci/engine/selector.h" #include "sci/graphics/compare.h" diff --git a/engines/sci/graphics/controls.cpp b/engines/sci/graphics/controls.cpp index 26af9741c2..ff5a91eed4 100644 --- a/engines/sci/graphics/controls.cpp +++ b/engines/sci/graphics/controls.cpp @@ -30,6 +30,7 @@ #include "sci/sci.h" #include "sci/event.h" +#include "sci/engine/kernel.h" #include "sci/engine/state.h" #include "sci/engine/selector.h" #include "sci/graphics/ports.h" diff --git a/engines/sci/graphics/coordadjuster.cpp b/engines/sci/graphics/coordadjuster.cpp index 422df52f27..9481a68f13 100644 --- a/engines/sci/graphics/coordadjuster.cpp +++ b/engines/sci/graphics/coordadjuster.cpp @@ -26,6 +26,7 @@ #include "common/util.h" #include "sci/sci.h" +#include "sci/engine/kernel.h" #include "sci/engine/state.h" #include "sci/engine/selector.h" #include "sci/graphics/coordadjuster.h" diff --git a/engines/sci/graphics/frameout.cpp b/engines/sci/graphics/frameout.cpp index 05c2a1b7ad..4247c4db9e 100644 --- a/engines/sci/graphics/frameout.cpp +++ b/engines/sci/graphics/frameout.cpp @@ -28,6 +28,7 @@ #include "graphics/primitives.h" #include "sci/sci.h" +#include "sci/engine/kernel.h" #include "sci/engine/state.h" #include "sci/engine/selector.h" #include "sci/engine/vm.h" @@ -86,7 +87,6 @@ void GfxFrameout::kernelDeleteScreenItem(reg_t object) { int16 GfxFrameout::kernelGetHighPlanePri() { sortPlanes(); - reg_t object = _planes.back(); return readSelectorValue(g_sci->getEngineState()->_segMan, _planes.back(), SELECTOR(priority)); } diff --git a/engines/sci/graphics/maciconbar.cpp b/engines/sci/graphics/maciconbar.cpp index a06e98ccbf..6f2c9596db 100644 --- a/engines/sci/graphics/maciconbar.cpp +++ b/engines/sci/graphics/maciconbar.cpp @@ -24,6 +24,7 @@ */ #include "sci/sci.h" +#include "sci/engine/kernel.h" #include "sci/engine/selector.h" #include "sci/engine/state.h" #include "sci/graphics/maciconbar.h" diff --git a/engines/sci/graphics/menu.cpp b/engines/sci/graphics/menu.cpp index 00eb533b41..323539573b 100644 --- a/engines/sci/graphics/menu.cpp +++ b/engines/sci/graphics/menu.cpp @@ -29,6 +29,7 @@ #include "sci/sci.h" #include "sci/event.h" +#include "sci/engine/kernel.h" #include "sci/engine/state.h" #include "sci/engine/selector.h" #include "sci/graphics/ports.h" diff --git a/engines/sci/sound/soundcmd.cpp b/engines/sci/sound/soundcmd.cpp index 6470b17e83..043f2b8516 100644 --- a/engines/sci/sound/soundcmd.cpp +++ b/engines/sci/sound/soundcmd.cpp @@ -34,6 +34,7 @@ #include "sci/sound/music.h" #include "sci/sound/soundcmd.h" +#include "sci/engine/kernel.h" #include "sci/engine/selector.h" namespace Sci { -- cgit v1.2.3