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 | 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 () |
![]() | |
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 | syncSoundSettings () |
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 |
Tot::GraphicsManager * | _graphics = nullptr |
SoundManager * | _sound = nullptr |
MouseManager * | _mouse = nullptr |
ChronoManager * | _chrono = nullptr |
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] |
byte | _inventoryPosition = 0 |
CharacterAnim | _mainCharAnimation |
uint | _mainCharFrameSize |
SecondaryAnim | _secondaryAnimation |
uint | _secondaryAnimFrameSize |
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 |
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] |
byte * | _curCharacterAnimationFrame |
byte * | _curSecondaryAnimationFrame |
byte * | _sceneBackground |
byte * | _characterDirtyRect |
byte * | _backgroundCopy |
uint | _currentRoomNumber = 0 |
bool | _isLoadingFromLauncher = false |
bool | _saveAllowed = false |
uint | _oldGridX = 0 |
uint | _oldGridY = 0 |
SavedGame | _savedGame |
uint | _curDepth = 0 |
uint16 | _dirtyMainSpriteX = 0 |
uint16 | _dirtyMainSpriteY = 0 |
uint | _dirtyMainSpriteX2 = 0 |
uint | _dirtyMainSpriteY2 = 0 |
byte * | _spriteBackground |
![]() | |
OSystem * | _system |
Audio::Mixer * | _mixer |
Protected Member Functions | |
Common::Error | run () override |
![]() | |
virtual int | runDialog (GUI::Dialog &dialog) |
void | defaultSyncSoundSettings () |
virtual void | pauseEngineIntern (bool pause) |
Additional Inherited Members | |
![]() | |
enum | EngineFeature { kSupportsSubtitleOptions, kSupportsReturnToLauncher, kSupportsLoadingDuringRuntime, kSupportsSavingDuringRuntime, kSupportsChangingOptionsDuringRuntime, kSupportsArbitraryResolutions, kSupportsHelp, kSupportsQuitDialogOverride } |
![]() | |
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) |
![]() | |
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.
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] |
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] |
Bitmaps of screenobjects
byte* Tot::TotEngine::_curCharacterAnimationFrame |
Current frame of main character
byte* Tot::TotEngine::_curSecondaryAnimationFrame |
Current frame of secondary animation
byte* Tot::TotEngine::_sceneBackground |
Pointer storing the screen as it displays on the game
byte* Tot::TotEngine::_characterDirtyRect |
Dirty patch of screen to repaint on every frame
byte* Tot::TotEngine::_backgroundCopy |
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