Public Member Functions | |
| TotEngine (OSystem *syst, const ADGameDescription *gameDesc) | |
| uint32 | getFeatures () const |
| Common::String | getGameId () const |
| uint32 | getRandomNumber (uint maxNum) |
| bool | hasFeature (EngineFeature f) const override |
| void | drawFontSurface (Graphics::BgiFont &litt) |
| Common::Error | saveGameStream (Common::WriteStream *stream, bool isAutosave=false) override |
| Common::Error | loadGameStream (Common::SeekableReadStream *stream) override |
| bool | canLoadGameStateCurrently (Common::U32String *msg=nullptr) override |
| bool | canSaveGameStateCurrently (Common::U32String *msg=nullptr) override |
| void | loadScreenData (uint screenNumber) |
| void | clearScreenLayers () |
| void | clearAnimation () |
| void | buttonBorder (uint x1, uint y1, uint x2, uint y2, byte color1, byte color2, byte color3, byte color4, byte color5) |
| void | drawMenu (byte menuNumber) |
| void | drawLeftArrow (uint x, uint y) |
| void | drawRightArrow (uint x, uint y) |
| void | readTextFile () |
| void | loadAnimationForDirection (Common::SeekableReadStream *stream, int direction) |
| void | sayLine (uint textRef, byte textColor, byte shadowColor, uint &responseNumber, bool isWithinConversation) |
| void | goToObject (byte zone1, byte zone2) |
| void | readObject (uint objPos) |
| TextEntry | readTextRegister () |
| void | drawInventory () |
| void | drawInventoryMask () |
| void | setRoomTrajectories (int height, int width, TRAJECTORIES_OP op, bool fixGrids=true) |
| void | saveRoomData (RoomFileRegister *room, Common::SeekableWriteStream *stream) |
| void | initializeScreenFile () |
Public Member Functions inherited from Engine | |
| MetaEngine * | getMetaEngine () const |
| void | setMetaEngine (MetaEngine *metaEngine) |
| PauseToken | pauseEngine () |
| bool | isPaused () const |
| void | openMainMenuDialog () |
| uint32 | getTotalPlayTime () const |
| void | setTotalPlayTime (uint32 time=0) |
| Common::TimerManager * | getTimerManager () |
| Common::EventManager * | getEventManager () |
| Common::SaveFileManager * | getSaveFileManager () |
| bool | existExtractedCDAudioFiles (uint track=1) |
| bool | isDataAndCDAudioReadFromSameCD () |
| void | warnMissingExtractedCDAudio () |
| void | handleAutoSave () |
| void | saveAutosaveIfEnabled () |
| virtual bool | canSaveAutosaveCurrently () |
| virtual int | getAutosaveSlot () const |
| virtual bool | gameTypeHasAddOns () const |
| virtual bool | dirCanBeGameAddOn (const Common::FSDirectory &dir) const |
| virtual bool | dirMustBeGameAddOn (const Common::FSDirectory &dir) const |
| Common::ErrorCode | updateAddOns (const MetaEngine *metaEngine) const |
| Engine (OSystem *syst) | |
| virtual | ~Engine () |
| virtual void | initializePath (const Common::FSNode &gamePath) |
| virtual void | errorString (const char *buf_input, char *buf_output, int buf_output_size) |
| virtual GUI::Debugger * | getDebugger () final |
| void | setDebugger (GUI::Debugger *debugger) |
| GUI::Debugger * | getOrCreateDebugger () |
| bool | enhancementEnabled (int32 cls) |
| virtual void | applyGameSettings () |
| virtual void | flipMute () |
| virtual Common::String | getSaveStateName (int slot) const |
| virtual Common::Error | loadGameState (int slot) |
| void | setGameToLoadSlot (int slot) |
| virtual Common::Error | saveGameState (int slot, const Common::String &desc, bool isAutosave=false) |
| bool | saveGameDialog () |
| bool | loadGameDialog () |
Public Attributes | |
| Graphics::Screen * | _screen = nullptr |
| GraphicsManager * | _graphics = nullptr |
| SoundManager * | _sound = nullptr |
| MouseManager * | _mouse = nullptr |
| ChronoManager * | _chrono = nullptr |
| Tot::TotEventManager * | _events = nullptr |
| const ADGameDescription * | _gameDescription |
| bool | _showMouseGrid = false |
| bool | _showScreenGrid = false |
| bool | _showGameGrid = false |
| bool | _drawObjectAreas = false |
| Common::Language | _lang = Common::ES_ESP |
| Common::MemorySeekableReadWriteStream * | _conversationData = nullptr |
| Common::MemorySeekableReadWriteStream * | _rooms = nullptr |
| Common::MemorySeekableReadWriteStream * | _sceneObjectsData = nullptr |
| bool | _roomChange = false |
| bool | _isTVOn = false |
| bool | _isVasePlaced = false |
| bool | _isScytheTaken = false |
| bool | _isTridentTaken = false |
| bool | _isPottersWheelDelivered = false |
| bool | _isMudDelivered = false |
| bool | _isGreenDevilDelivered = false |
| bool | _isRedDevilCaptured = false |
| bool | _isPottersManualDelivered = false |
| bool | _isCupboardOpen = false |
| bool | _isChestOpen = false |
| bool | _isTrapSet = false |
| bool | _isPeterCoughing = false |
| bool | _isSealRemoved = false |
| bool | _inGame = false |
| bool | _firstTimeDone = false |
| bool | _isIntroSeen = false |
| bool | _shouldQuitGame = false |
| bool | _startNewGame = false |
| bool | _continueGame = false |
| bool | _isSavingDisabled = false |
| bool | _isDrawingEnabled = false |
| bool | _isSecondaryAnimationEnabled = false |
| InventoryEntry | _inventory [kInventoryIconCount] |
| byte * | _inventoryIconBitmaps [kInventoryIconCount] = { nullptr } |
| byte | _inventoryPosition = 0 |
| CharacterAnim | _mainCharAnimation |
| uint | _mainCharFrameSize = 0 |
| SecondaryAnim | _secondaryAnimation |
| uint | _secondaryAnimFrameSize = 0 |
| byte | _actionCode = 0 |
| byte | _oldActionCode = 0 |
| byte | _trajectorySteps = 0 |
| byte | _doorIndex = 0 |
| byte | _gamePart = 1 |
| byte | _secondaryAnimationFrameCount = 0 |
| byte | _secondaryAnimDirCount = 0 |
| byte | _cpCounter = 0 |
| byte | _cpCounter2 = 0 |
| byte | _destinationX = 0 |
| byte | _destinationY = 0 |
| byte | _charFacingDirection = 0 |
| uint | _secondaryAnimWidth = 0 |
| uint | _secondaryAnimHeight = 0 |
| uint | _backpackObjectCode = 0 |
| uint | _oldposx = 0 |
| uint | _oldposy = 0 |
| int | _element1 = 0 |
| int | _element2 = 0 |
| uint16 | _characterPosX = 0 |
| uint16 | _characterPosY = 0 |
| int | _xframe2 = 0 |
| int | _yframe2 = 0 |
| Common::File | _verbFile |
| Common::String | _oldInventoryObjectName |
| Common::String | _inventoryObjectName |
| Common::String | _characterName = "" |
| Common::String | _decryptionKey |
| uint | _niche [2][4] |
| RoomFileRegister * | _currentRoomData = nullptr |
| ScreenObject * | _curObject = nullptr |
| Route | _mainRoute |
| Common::Point | _trajectory [300] |
| uint | _trajectoryLength = 0 |
| uint | _currentTrajectoryIndex = 0 |
| uint | _currentSecondaryTrajectoryIndex = 0 |
| byte | _currentZone = 0 |
| byte | _targetZone = 0 |
| byte | _oldTargetZone = 0 |
| byte | _maxXGrid = 0 |
| byte | _maxYGrid = 0 |
| byte | _movementGridForSecondaryAnim [10][10] |
| byte | _mouseGridForSecondaryAnim [10][10] |
| byte | _maskGridSecondaryAnim [10][10] |
| byte | _maskMouseSecondaryAnim [10][10] |
| bool | _list1Complete = false |
| bool | _list2Complete = false |
| bool | _obtainedList1 = false |
| bool | _obtainedList2 = false |
| bool | _firstTimeTopicA [kCharacterCount] = { false } |
| bool | _firstTimeTopicB [kCharacterCount] = { false } |
| bool | _firstTimeTopicC [kCharacterCount] = { false } |
| bool | _bookTopic [kCharacterCount] = { false } |
| bool | _mintTopic [kCharacterCount] = { false } |
| bool | _caves [5] = { false } |
| uint16 | _firstList [5] = { 0 } |
| uint16 | _secondList [5] = { 0 } |
| int32 | _screenSize = 65520 |
| byte | _iframe = 0 |
| byte | _iframe2 = 0 |
| ObjectInfo | _depthMap [kNumScreenOverlays] |
| byte * | _screenLayers [kNumScreenOverlays] = { nullptr } |
| byte * | _curCharacterAnimationFrame = nullptr |
| byte * | _curSecondaryAnimationFrame = nullptr |
| byte * | _sceneBackground = nullptr |
| byte * | _characterDirtyRect = nullptr |
| byte * | _backgroundCopy = nullptr |
| uint | _currentRoomNumber = 0 |
| bool | _isLoadingFromLauncher = false |
| bool | _saveAllowed = false |
| uint | _oldGridX = 0 |
| uint | _oldGridY = 0 |
| uint | _curDepth = 0 |
| uint16 | _dirtyMainSpriteX = 0 |
| uint16 | _dirtyMainSpriteY = 0 |
| uint | _dirtyMainSpriteX2 = 0 |
| uint | _dirtyMainSpriteY2 = 0 |
| byte * | _spriteBackground = nullptr |
Public Attributes inherited from Engine | |
| OSystem * | _system |
| Audio::Mixer * | _mixer |
Protected Member Functions | |
| Common::Error | run () override |
| void | syncSoundSettings () override |
Protected Member Functions inherited from Engine | |
| virtual int | runDialog (GUI::Dialog &dialog) |
| void | defaultSyncSoundSettings () |
| virtual void | pauseEngineIntern (bool pause) |
Additional Inherited Members | |
Public Types inherited from Engine | |
| enum | EngineFeature { kSupportsSubtitleOptions, kSupportsReturnToLauncher, kSupportsLoadingDuringRuntime, kSupportsSavingDuringRuntime, kSupportsChangingOptionsDuringRuntime, kSupportsArbitraryResolutions, kSupportsHelp, kSupportsQuitDialogOverride } |
Static Public Member Functions inherited from Engine | |
| static void | quitGame () |
| static bool | shouldQuit () |
| static bool | warnUserAboutUnsupportedGame (Common::String msg=Common::String()) |
| static bool | warnUserAboutUnsupportedAddOn (Common::String addOnName) |
| static void | errorAddingAddOnWithoutBaseGame (Common::String addOnName, Common::String gameId) |
| static void | errorUnsupportedGame (Common::String extraMsg) |
Protected Attributes inherited from Engine | |
| Common::TimerManager * | _timer |
| Common::EventManager * | _eventMan |
| Common::SaveFileManager * | _saveFileMan |
| GUI::Dialog * | _mainMenuDialog |
| const Common::String | _targetName |
| int32 | _activeEnhancements = kEnhGameBreakingBugFixes |
|
overrideprotectedvirtual |
Initialize the engine and start its main loop.
Implements Engine.
|
overrideprotectedvirtual |
Notify the engine that the sound settings in the config manager might have changed and that it should adjust any internal volume (and other) values accordingly.
The default implementation sets the volume levels of all mixer sound types according to the config entries of the active domain. When overwriting, call the default implementation first, then adjust the volumes further (if required).
Reimplemented from Engine.
| Common::String Tot::TotEngine::getGameId | ( | ) | const |
Returns the game Id
|
inline |
Gets a random number
|
inlineoverridevirtual |
Determine whether the engine supports the specified feature.
Reimplemented from Engine.
|
overridevirtual |
Save a game state.
| stream | The write stream to save the savegame data to. |
| isAutosave | Expected to be true if an autosave is being created. |
Reimplemented from Engine.
|
overridevirtual |
Load a game state.
| stream | The stream to load the save state from. |
Reimplemented from Engine.
|
overridevirtual |
Indicate whether a game state can be loaded.
| msg | Optional pointer to message explaining why it is disabled |
Reimplemented from Engine.
|
overridevirtual |
Indicate whether a game state can be saved.
| msg | Optional pointer to message explaining why it is disabled |
Reimplemented from Engine.
| byte* Tot::TotEngine::_inventoryIconBitmaps[kInventoryIconCount] = { nullptr } |
Keeps an array of all inventory icon bitmaps
| byte Tot::TotEngine::_inventoryPosition = 0 |
Position within inventory
| CharacterAnim Tot::TotEngine::_mainCharAnimation |
Animation sequences
| byte Tot::TotEngine::_actionCode = 0 |
Currently selected action.
| byte Tot::TotEngine::_oldActionCode = 0 |
Previously selected action.
| byte Tot::TotEngine::_trajectorySteps = 0 |
Number of trajectory changes
| byte Tot::TotEngine::_doorIndex = 0 |
index of currently selected door.
| byte Tot::TotEngine::_gamePart = 1 |
1 first part, 2 second part
| byte Tot::TotEngine::_secondaryAnimationFrameCount = 0 |
Number of frames of secondary animation
| byte Tot::TotEngine::_secondaryAnimDirCount = 0 |
Number of directions of the secondary animation
| byte Tot::TotEngine::_cpCounter = 0 |
Data protection control
| byte Tot::TotEngine::_destinationX = 0 |
Coordinates of target step
| byte Tot::TotEngine::_charFacingDirection = 0 |
Current character facing direction 0: upwards 1: right 2: downwards 3: left
| uint Tot::TotEngine::_secondaryAnimWidth = 0 |
Width and height of secondary animation
| uint Tot::TotEngine::_backpackObjectCode = 0 |
Code of selected object in the backpack
| uint Tot::TotEngine::_oldposx = 0 |
Auxiliary vars for grid update
| int Tot::TotEngine::_element1 = 0 |
Amplitude of movement
| uint16 Tot::TotEngine::_characterPosX = 0 |
Current position of the main character
| int Tot::TotEngine::_xframe2 = 0 |
Target position of the main character?
| Common::File Tot::TotEngine::_verbFile |
Text map
| Common::String Tot::TotEngine::_oldInventoryObjectName |
Auxiliary vars with current inventory object name.
| Common::String Tot::TotEngine::_characterName = "" |
Name of player
| uint Tot::TotEngine::_niche[2][4] |
State of the niches in part 2
| Route Tot::TotEngine::_mainRoute |
New movement to execute.
| Common::Point Tot::TotEngine::_trajectory[300] |
Matrix of positions for a trajectory between two points
| uint Tot::TotEngine::_trajectoryLength = 0 |
Longitude of the trajectory matrix.
| uint Tot::TotEngine::_currentTrajectoryIndex = 0 |
Position within the trajectory matrix
| uint Tot::TotEngine::_currentSecondaryTrajectoryIndex = 0 |
Position within the trajectory matrix for secondary animation
| byte Tot::TotEngine::_currentZone = 0 |
Screen areas
| byte Tot::TotEngine::_maxXGrid = 0 |
Amplitude of grid slices
| byte Tot::TotEngine::_movementGridForSecondaryAnim[10][10] |
capture of movement grid of secondary animation
| byte Tot::TotEngine::_mouseGridForSecondaryAnim[10][10] |
capture of mouse grid of secondary animation
| byte Tot::TotEngine::_maskGridSecondaryAnim[10][10] |
movement mask for grid of secondary animation
| byte Tot::TotEngine::_maskMouseSecondaryAnim[10][10] |
mouse mask for grid of secondary animation
| bool Tot::TotEngine::_firstTimeTopicA[kCharacterCount] = { false } |
Conversation topic unlocks
| uint16 Tot::TotEngine::_firstList[5] = { 0 } |
First and second lists of objects to retrieve in the game
| byte Tot::TotEngine::_iframe = 0 |
Frame number for the animations
| ObjectInfo Tot::TotEngine::_depthMap[kNumScreenOverlays] |
Depth of screenobjects
| byte* Tot::TotEngine::_screenLayers[kNumScreenOverlays] = { nullptr } |
Bitmaps of screenobjects
| byte* Tot::TotEngine::_curCharacterAnimationFrame = nullptr |
Current frame of main character
| byte* Tot::TotEngine::_curSecondaryAnimationFrame = nullptr |
Current frame of secondary animation
| byte* Tot::TotEngine::_sceneBackground = nullptr |
Pointer storing the screen as it displays on the game
| byte* Tot::TotEngine::_characterDirtyRect = nullptr |
Dirty patch of screen to repaint on every frame
| byte* Tot::TotEngine::_backgroundCopy = nullptr |
Stores a copy of the background bitmap
| uint Tot::TotEngine::_oldGridX = 0 |
Previous positions of the mouse within the screen grid
| uint16 Tot::TotEngine::_dirtyMainSpriteX = 0 |
Point of origin of the area surrounding the main character. Calculated using the position of the character.
| uint Tot::TotEngine::_dirtyMainSpriteX2 = 0 |
End point of origin of the area surrounding the main character. Calculated using the position of the character + dimension