22#ifndef TINSEL_TINSEL_H
23#define TINSEL_TINSEL_H
25#include "common/scummsys.h"
26#include "common/system.h"
27#include "common/error.h"
28#include "common/events.h"
29#include "common/keyboard.h"
30#include "common/random.h"
31#include "common/util.h"
33#include "engines/engine.h"
34#include "gui/debugger.h"
36#include "tinsel/debugger.h"
37#include "tinsel/graphics.h"
38#include "tinsel/sound.h"
40#include "tinsel/detection.h"
97 kTinselDebugAnimations = 1,
104#define NOIR_SKIP_INTRO 0
107#define DEBUG_INTERMEDIATE 2
108#define DEBUG_DETAILED 3
110enum TinselKeyDirection {
111 MSK_LEFT = 1, MSK_RIGHT = 2, MSK_UP = 4, MSK_DOWN = 8,
112 MSK_DIRECTION = MSK_LEFT | MSK_RIGHT | MSK_UP | MSK_DOWN
117#define SCREEN_WIDTH (_vm->screen().w)
118#define SCREEN_HEIGHT (_vm->screen().h)
119#define SCRN_CENTER_X ((SCREEN_WIDTH - 1) / 2)
120#define SCRN_CENTER_Y ((SCREEN_HEIGHT - 1) / 2)
121#define UNUSED_LINES 48
122#define EXTRA_UNUSED_LINES 3
125#define SCREEN_BOX_HEIGHT1 SCREEN_HEIGHT
126#define SCREEN_BOX_HEIGHT2 SCREEN_HEIGHT
128#define GAME_FRAME_DELAY (1000 / ONE_SECOND)
130#define TinselVersion (_vm->getVersion())
131#define TinselV2Demo (TinselVersion == 2 && _vm->getIsADGFDemo())
132#define TinselV1PSX (TinselVersion == 1 && _vm->getPlatform() == Common::kPlatformPSX)
133#define TinselV1Mac (TinselVersion == 1 && _vm->getPlatform() == Common::kPlatformMacintosh)
134#define TinselV1Saturn (TinselVersion == 1 && _vm->getPlatform() == Common::kPlatformSaturn)
135#define TinselV1PSXJapan (TinselVersion == 1 && _vm->getPlatform() == Common::kPlatformPSX && _vm->getLanguage() == Common::JA_JPN)
137#define READ_16(v) (TinselV1Mac || TinselV1Saturn ? READ_BE_UINT16(v) : READ_LE_UINT16(v))
138#define READ_32(v) (TinselV1Mac || TinselV1Saturn ? READ_BE_UINT32(v) : READ_LE_UINT32(v))
139#define WRITE_16(p, v) (TinselV1Mac || TinselV1Saturn ? WRITE_BE_UINT16(p, v) : WRITE_LE_UINT16(p, v))
140#define WRITE_32(p, v) (TinselV1Mac || TinselV1Saturn ? WRITE_BE_UINT32(p, v) : WRITE_LE_UINT32(p, v))
141#define FROM_16(v) (TinselV1Mac || TinselV1Saturn ? FROM_BE_16(v) : FROM_LE_16(v))
142#define FROM_32(v) (TinselV1Mac || TinselV1Saturn ? FROM_BE_32(v) : FROM_LE_32(v))
143#define TO_32(v) (TinselV1Mac || TinselV1Saturn ? TO_BE_32(v) : TO_LE_32(v))
146extern TinselEngine *_vm;
156 static const char *
const _sampleIndices[][3];
157 static const char *
const _sampleFiles[][3];
158 static const char *
const _textFiles[][3];
159 static const char *
const _sceneFiles[];
184 uint32 getGameID()
const;
185 uint32 getFeatures()
const;
187 uint16 getVersion()
const;
189 bool getIsADGFDemo()
const;
192 const char *getSampleIndex(LANGUAGE lang);
193 const char *getSampleFile(LANGUAGE lang);
194 const char *getTextFile(LANGUAGE lang);
196 const char *getSceneFile(LANGUAGE lang);
215 bool _memoryManagerInitialized;
230 void NextGameCycle();
231 void CreateConstProcesses();
233 void RestartDrivers();
237 void addPsxArchive(
const char *indexFileName,
const char *dataFileName);
248 pt.
x = CLIP<int16>(pt.
x, 0, SCREEN_WIDTH - 1);
249 pt.
y = CLIP<int16>(pt.
y, 0, SCREEN_HEIGHT - 1);
251 int yOffset = (TinselVersion >= 2) ? (
g_system->
getHeight() - _screenSurface.
h) / 2 : 0;
255 void divertKeyInput(KEYFPTR fptr) { _keyHandler = fptr; }
256 int getRandomNumber(
int maxNumber) {
return _random.
getRandomNumber(maxNumber); }
257 uint8 getKeyDirection()
const {
return _dosPlayerDir; }
261void CuttingScene(
bool bCutting);
262void CDChangeForRestore(
int cdNumber);
uint getRandomNumber(uint max)
Definition: savefile.h:142
Common::SaveFileManager * _saveFileMan
Definition: engine.h:172
const Common::String _targetName
Definition: engine.h:186
EngineFeature
Definition: engine.h:282
virtual Common::Error saveGameState(int slot, const Common::String &desc, bool isAutosave=false)
virtual bool canSaveGameStateCurrently(Common::U32String *msg=nullptr)
Definition: mididrv.h:313
Definition: background.h:81
Definition: dialogs.h:267
Definition: notebook.h:60
Definition: spriter.h:200
Common::List< Common::Event > _keypresses
Definition: tinsel.h:223
Common::Error run() override
Common::Error loadGameState(int slot) override
bool canLoadGameStateCurrently(Common::U32String *msg=nullptr) override
void initializePath(const Common::FSNode &gamePath) override
Common::List< Common::EventType > _mouseButtons
Definition: tinsel.h:220
bool hasFeature(EngineFeature f) const override
RectList _clipRects
Definition: tinsel.h:227
uint32 CustomEventType
Definition: events.h:212
Language
Definition: language.h:45
virtual int16 getHeight()=0
virtual void warpMouse(int x, int y)=0
Definition: keyboard.h:294
Definition: atari-cursor.h:35
int16 h
Definition: surface.h:76
Definition: detection.h:69