25#include "agds/database.h"
26#include "agds/detection.h"
27#include "agds/dialog.h"
28#include "agds/inventory.h"
29#include "agds/mouseMap.h"
30#include "agds/processExitCode.h"
31#include "agds/resourceManager.h"
32#include "agds/screen.h"
33#include "agds/soundManager.h"
34#include "agds/textLayout.h"
35#include "common/array.h"
36#include "common/hashmap.h"
37#include "common/ptr.h"
38#include "common/random.h"
39#include "common/rect.h"
40#include "common/scummsys.h"
41#include "engines/advancedDetector.h"
42#include "graphics/pixelformat.h"
43#include "video/flic_decoder.h"
85 static constexpr uint MaxProcesses = 100;
113 bool initGraphics(
int w,
int h);
117 void fadeAndReactivate();
129 void runProcess(
const ObjectPtr &
object, uint ip = 0);
133 void runPendingReactivatedProcesses();
135 void resetCurrentScreen();
136 void loadScreen(
const Common::String &name, ScreenLoadingType type,
bool savePatch =
true);
137 void loadNextScreen();
138 void saveScreenPatch();
146 bool active()
const {
return !_mjpgPlayer; }
150 ResourceManager &resourceManager() {
151 return _resourceManager;
154 SoundManager &soundManager() {
155 return _soundManager;
158 Inventory &inventory() {
166 const ProcessListType &processes()
const {
170 TextLayout &textLayout() {
174 Screen *getCurrentScreen() {
175 return _currentScreen.get();
177 Console *getConsole();
180 return _currentScreenName;
196 void loadFont(
int id,
const Common::String &name,
int gw,
int gh);
201 AnimationPtr findAnimationByPhaseVar(
const Common::String &phaseVar);
204 return _currentCharacterName == name ? _currentCharacter.get() :
nullptr;
206 Character *currentCharacter()
const {
207 return _currentCharacter.get();
209 Character *jokes()
const {
214 _defaultMouseCursorName = name;
215 _defaultMouseCursor = loadMouseCursor(name);
218 void changeMouseArea(
int id,
int enabled);
220 void enableUser(
bool enabled) {
221 _userEnabled = enabled;
223 void enableSystemUser(
bool enabled) {
224 _systemUserEnabled = enabled;
227 bool userEnabled()
const {
228 return _userEnabled && _systemUserEnabled && !_mjpgPlayer;
232 void initSystemVariables();
235 void setNextScreenName(
const Common::String &nextScreenName, ScreenLoadingType type);
236 void returnToPreviousScreen();
238 void tickInventory();
240 void playSoundSync(
int syncSoundId) {
241 _syncSoundId = syncSoundId;
244 void setAmbientSoundId(
int id) {
246 _ambientSoundId = id;
251 bool fastMode()
const {
259 void currentInventoryObject(
const ObjectPtr &
object);
260 void resetCurrentInventoryObject();
261 ObjectPtr popCurrentInventoryObject();
262 const ObjectPtr ¤tInventoryObject()
const {
263 return _currentInventoryObject;
266 bool showHints()
const {
272 ObjectPatchPtr getObjectPatch(
const Common::String &screenName)
const;
273 ObjectPatchPtr createObjectPatch(
const Common::String &screenName);
275 void shadowIntensity(
int intensity) {
276 _shadowIntensity = intensity;
278 int getRandomNumber(
int max);
280 void curtain(
const Common::String &process,
int screen,
int sound,
int music,
bool updateGlobals);
281 bool activeCurtain()
const {
282 return _curtainTimer >= 0;
286 bool versionAtLeast(
int target)
const;
290 void stopAmbientSound();
304 ResourceManager _resourceManager;
305 SoundManager _soundManager;
307 PictureCacheType _pictureCache;
308 PictureCacheLookup _pictureCacheLookup;
311 ProcessListType _processes;
312 ProcessListType _pendingReactivatedProcesses;
313 PatchesType _patches;
314 ObjectPatchesType _objectPatches;
315 int _sharedStorageIndex;
317 GlobalsType _globals;
318 SystemVariablesListType _systemVarList;
319 SystemVariablesType _systemVars;
322 Color _minShadowColor;
323 Color _maxShadowColor;
324 int _shadowIntensity;
332 Common::String _currentCharacterName, _currentCharacterFilename, _currentCharacterObject;
334 ScreenLoadingType _nextScreenType;
336 AnimationPtr _defaultMouseCursor;
339 bool _systemUserEnabled;
343 Inventory _inventory;
345 RegionPtr _inventoryRegion;
346 ObjectPtr _currentInventoryObject;
352 TextLayout _textLayout;
Common::Error run() override
bool canLoadGameStateCurrently(Common::U32String *msg) override
Definition: agds.h:123
Common::Error saveGameState(int slot, const Common::String &desc, bool isAutosave=false) override
bool canSaveGameStateCurrently(Common::U32String *msg) override
Definition: agds.h:124
Common::Error loadGameState(int slot) override
bool hasFeature(EngineFeature f) const override
Definition: systemVariable.h:35
EngineFeature
Definition: engine.h:282
Definition: managed_surface.h:51
bool contains(const Key &key) const
Definition: hashmap.h:598
Language
Definition: language.h:45
Definition: formatinfo.h:28
Definition: advancedDetector.h:164
Definition: atari-screen.h:58