diff options
Diffstat (limited to 'engines/supernova2/state.h')
-rw-r--r-- | engines/supernova2/state.h | 275 |
1 files changed, 0 insertions, 275 deletions
diff --git a/engines/supernova2/state.h b/engines/supernova2/state.h deleted file mode 100644 index 1a76a55587..0000000000 --- a/engines/supernova2/state.h +++ /dev/null @@ -1,275 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - */ - -#ifndef SUPERNOVA2_STATE_H -#define SUPERNOVA2_STATE_H - -#include "common/events.h" -#include "common/rect.h" -#include "common/keyboard.h" -#include "supernova2/rooms.h" -#include "supernova2/sound.h" -#include "supernova2/resman.h" - -namespace Supernova2 { - -struct ConstructionEntry { - int _e; - int _s; - int _z; - int _r; - int _a; -}; - -const int32 kMaxTimerValue = 0x7FFFFFFF; - -enum EventFunction { kNoFn, kSoberFn, kPyramidEndFn, kCaughtFn}; - -struct GameState { - int16 _money; - int32 _startTime; - bool _addressKnown; - Room *_previousRoom; - bool _poleMagnet; - char _admission; - bool _tipsy; - bool _dark; - char _elevatorE; - char _elevatorNumber; - bool _toMuseum; - EventFunction _eventCallback; - uint32 _eventTime; - int16 _pyraE; - char _pyraS; - char _pyraZ; - int16 _pyraDirection; - int16 _puzzleTab[15]; - bool _alarmCracked; - bool _alarmOn; - bool _haste; - byte _pressureCounter; - bool _sirenOn; - byte _taxiPossibility; -}; - -class Inventory { -public: - Inventory(Object *nullObject, int &inventoryScroll) - : _numObjects(0) - , _nullObject(nullObject) - , _inventoryScroll(inventoryScroll) { - for (int i = 0; i < kMaxCarry; ++i) - _inventory[i] = nullptr; - } - - void add(Object &obj); - void remove(Object &obj); - void clear(); - Object *get(int index) const; - Object *get(ObjectId id) const; - int getSize() const { return _numObjects; } - -private: - Object *_inventory[kMaxCarry]; - Object *_nullObject; - int &_inventoryScroll; - int _numObjects; -}; - -class GuiElement : public Common::Rect { -public: - GuiElement(); - - void setSize(int x1, int y1, int x2, int y2); - void setText(const char *text); - void setTextPosition(int x, int y); - void setColor(int bgColor, int textColor, int bgColorHighlighted, int textColorHightlighted); - void setHighlight(bool isHighlighted); - - const char *getText() const { - return _text; - } - int getBackgroundColor() const { - return _bgColor; - } - int getTextColor() const { - return _textColor; - } - const Common::Point &getTextPos() const { - return _textPosition; - } - bool isHighlighted() const { - return _isHighlighted; - } - -private: - Common::Point _textPosition; - char _text[128]; - int _bgColor; - int _textColor; - int _bgColorNormal; - int _bgColorHighlighted; - int _textColorNormal; - int _textColorHighlighted; - bool _isHighlighted; -}; - -class GameManager { -public: - GameManager(Supernova2Engine *vm, Sound *sound); - ~GameManager(); - - void updateEvents(); - void processInput(Common::KeyState &state); - void processInput(); - void executeRoom(); - bool serialize(Common::WriteStream *out); - bool deserialize(Common::ReadStream *in, int version); - - static StringId guiCommands[]; - static StringId guiStatusCommands[]; - Supernova2Engine *_vm; - Sound *_sound; - Common::KeyState _key; - Common::EventType _mouseClickType; - bool _mouseClicked; - bool _keyPressed; - int _mouseX; - int _mouseY; - int _mouseField; - Room *_currentRoom; - Room *_lastRoom; - bool _newRoom; - Room *_rooms[NUMROOMS]; - Inventory _inventory; - GameState _state; - bool _processInput; - bool _guiEnabled; - bool _animationEnabled; - byte _roomBrightness; - Action _inputVerb; - Object _nullObject; - Object *_currentInputObject; - Object *_inputObject[2]; - int32 _oldTime; - uint _timePaused; - bool _timerPaused; - int32 _messageDuration; - int32 _animationTimer; - int _inventoryScroll; - int _exitList[25]; - GuiElement _guiCommandButton[10]; - GuiElement _guiInventory[8]; - GuiElement _guiInventoryArrow[2]; - // Dialog - int _currentSentence; - int _sentenceNumber[6]; - StringId _texts[6]; - byte _rows[6]; - byte _rowsStart[6]; - byte _dials[6]; - - //state - unsigned char _puzzleField[16]; - bool _mapOn; - bool _steps; - bool _cracking; - bool _alarmBefore; - RoomId _securityTab[10]; - int _restTime; - - void takeObject(Object &obj); - void setObjectNull(Object *&obj); - bool isNullObject(Object *obj); - - void initState(); - void initRooms(); - void destroyRooms(); - void initGui(); - bool genericInteract(Action verb, Object &obj1, Object &obj2); - uint16 getKeyInput(bool blockForPrintChar = false); - void getInput(); - void wait(int ticks); - void waitOnInput(int ticks); - bool waitOnInput(int ticks, Common::KeyCode &keycode); - void screenShake(); - void roomBrightness() {} - void showMenu(); - void animationOff(); - void animationOn(); - void edit(Common::String &input, int x, int y, uint length); - int invertSection(int section); - void drawMapExits(); - void drawStatus(); - void drawCommandBox(); - void drawInventory(); - void changeRoom(RoomId id); - void resetInputState(); - void handleInput(); - void handleTime(); - void pauseTimer(bool pause); - void loadTime() {} - void saveTime() {} - void setAnimationTimer(int ticks); - void dead(StringId messageId); - int dialog(int num, byte rowLength[6], StringId text[6], int number); - void sentence(int number, bool brightness); - void say(StringId textId); - void say(const char *text); - void reply(StringId textId, int aus1, int aus2); - void reply(const char *text, int aus1, int aus2); - void mousePosDialog(int x, int y); - void takeMoney(int amount); - void taxi(); - void leaveTaxi(); - void taxiUnknownDestination(); - void taxiPayment(int price, int destination); - void playerTakeOut(); - void sober(); - void playCD(); - void drawGUI(); - bool talk(int mod1, int mod2, int rest, MessagePosition pos, StringId id); - bool talkRest(int mod1, int mod2, int rest); - void pyramidEnd(); - void passageConstruction(); - byte wall(int s, int z, int direction, int stepsForward, int stepsRight); - bool move(Action verb, Object &obj); - void compass(); - void puzzleConstruction(); - void drawClock(); - void caught(); - void caught2(); - void alarm(); - void crack(int time); - bool crackDoor(int time); - void museumDoorInteract(Action verb, Object &obj1, Object &obj2); - void securityEntrance(); - void pressureAlarmCount(); - void pressureAlarmEntrance(); - -private: - int _prevImgId; -}; - -} - -#endif // SUPERNOVA2_STATE_H |