From 7f57001e175ef2215e192968e9883e63145e7a50 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 7 Mar 2010 05:06:58 +0000 Subject: Split up the scene.cpp file into separate files for M4 and MADS specific scene code and support classes. Also have started adding code for textual display and proper current action display svn-id: r48172 --- engines/m4/scene.h | 123 ----------------------------------------------------- 1 file changed, 123 deletions(-) (limited to 'engines/m4/scene.h') diff --git a/engines/m4/scene.h b/engines/m4/scene.h index 78e179b4ac..0f4fc6c48d 100644 --- a/engines/m4/scene.h +++ b/engines/m4/scene.h @@ -41,16 +41,8 @@ class View; namespace M4 { -#define TITLE_SCENE_BURGER 951 // 951 = intro, 901 = demo menu, 971 = first scene -#define MAINMENU_SCENE_BURGER 903 -#define FIRST_SCENE 101 #define MAX_CHK_FILENAME_SIZE 144 -#define INTERFACE_HEIGHT 106 -#define MADS_SURFACE_HEIGHT 156 - -#define CHEAT_SEQUENCE_MAX 8 - enum MADSVerbs { kVerbNone = 0, kVerbLook = 3, @@ -136,121 +128,6 @@ public: bool onEvent(M4EventType eventType, int32 param1, int x, int y, bool &captureEvents); }; -class M4Scene : public Scene { -private: - M4Engine *_vm; - SpriteAsset *_sceneSprites; - SpriteAsset *_walkerSprite; - - void loadSceneSprites(int sceneNumber); - void nextCommonCursor(); -public: - M4Scene(M4Engine *vm); - virtual ~M4Scene(); - - // Methods that differ between engines - virtual void loadScene(int sceneNumber); - virtual void leaveScene() {}; - virtual void loadSceneCodes(int sceneNumber, int index = 0); - virtual void show(); - virtual void checkHotspotAtMousePos(int x, int y); - virtual void leftClick(int x, int y); - virtual void rightClick(int x, int y); - virtual void setAction(int action, int objectId = -1); - virtual void setStatusText(const char *text); - virtual void update(); - - M4InterfaceView *getInterface() { return (M4InterfaceView *)_interfaceSurface; }; -}; - -struct SpriteSlot { - int16 spriteId; - int16 scale; - uint16 spriteListIndex; -}; - -struct TextDisplay { - bool active; - int spacing; - Common::Rect bounds; - int16 field_A; - uint8 colour1, colour2; - Font *font; - char message[100]; -}; - -struct DirtyArea { - bool active; - bool active2; - Common::Rect bounds; -}; - -class MadsSceneInfo { -public: - int sceneId; - int artFileNum; - int field_4; - int width; - int height; - - int objectCount; - MadsObject objects[32]; - - int walkSize; - byte *walkData; - - MadsSceneInfo() { walkSize = 0; walkData = NULL; } - ~MadsSceneInfo() { delete walkData; } - void load(int sceneId); -}; - -typedef Common::Array SpriteAssetArray; - -#define SPRITE_SLOTS_SIZE 50 -#define TEXT_DISPLAY_SIZE 40 -#define DIRTY_AREA_SIZE 90 - -class MadsScene : public Scene { -private: - MadsEngine *_vm; - - int _currentAction; - char _statusText[100]; - MadsSceneLogic _sceneLogic; - MadsSceneInfo _sceneInfo; - SpriteAsset *_playerSprites; - SpriteAssetArray _sceneSprites; - SpriteSlot _spriteSlots[50]; - TextDisplay _textDisplay[TEXT_DISPLAY_SIZE]; - DirtyArea _dirtyAreas[DIRTY_AREA_SIZE]; - int _spriteSlotsStart; - - void drawElements(); - void loadScene2(const char *aaName); - void loadSceneTemporary(); -public: - char _aaName[100]; -public: - MadsScene(MadsEngine *vm); - - // Methods that differ between engines - virtual void loadScene(int sceneNumber); - virtual void leaveScene(); - virtual void loadSceneCodes(int sceneNumber, int index = 0); - virtual void show(); - virtual void checkHotspotAtMousePos(int x, int y); - virtual void leftClick(int x, int y); - virtual void rightClick(int x, int y); - virtual void setAction(int action, int objectId = -1); - virtual void setStatusText(const char *text); - virtual void update(); - - int loadSceneSpriteSet(const char *setName); - void loadPlayerSprites(const char *prefix); - - MadsInterfaceView *getInterface() { return (MadsInterfaceView *)_interfaceSurface; }; -}; - } // End of namespace M4 #endif -- cgit v1.2.3