25 #include "common/random.h" 26 #include "common/serializer.h" 27 #include "engines/engine.h" 28 #include "graphics/managed_surface.h" 29 #include "graphics/wincursor.h" 30 #include "video/smk_decoder.h" 31 #include "video/subtitles.h" 33 #include "private/grammar.h" 57 kPrivateDebugFunction = 1,
64 const int kPaperShuffleSound[7] = {32, 33, 34, 35, 36, 37, 39};
68 const int kPoliceBustVideos[6] = {1, 2, 4, 5, 7, 8};
72 const int kOriginZero[2] = {0, 0};
73 const int kOriginOne[2] = {64, 48};
77 extern Gen::VM *Gen::g_vm;
101 bool useBoxCollision;
110 useBoxCollision =
false;
117 inventoryItem.
clear();
121 enum PhoneStatus : byte {
123 kPhoneStatusAvailable,
151 int disabledPriority1;
152 bool exactPriorityMatch1;
153 int disabledPriority2;
154 bool exactPriorityMatch2;
165 Radio() : sound(
nullptr) {
171 for (uint i = 0; i <
ARRAYSIZE(channels); i++) {
238 int _screenW, _screenH;
241 bool _shouldHighlightMasks;
242 bool _highlightMasks;
261 void pauseEngineIntern(
bool pause)
override;
267 NameToPtr _functions;
306 void destroySubtitles();
307 void adjustSubtitleSize();
309 Sound *_subtitledSound;
316 static uint32 findMaskTransparentColor(
const byte *palette, uint32 defaultColor);
317 static void swapImageColors(
Graphics::Surface *image, byte *palette, uint32 a, uint32 b);
319 void drawScreenFrame(
const byte *videoPalette);
337 uint32 _transparentColor;
347 bool _needToDrawScreenFrame;
368 const char *getSymbolName(
const char *name,
const char *strippedName,
const char *demoName =
nullptr);
375 DossierArray _dossiers;
376 uint _dossierSuspect;
392 bool _policeBustEnabled;
393 bool _policeSirenPlayed;
395 int _numberClicksAfterSiren;
396 int _policeBustMovieIndex;
399 void resetPoliceBust();
400 void startPoliceBust();
401 void stopPoliceBust();
402 void wallSafeAlarm();
403 void completePoliceBust();
404 void checkPoliceBust();
411 void removeRandomInventory();
417 DiaryPages _diaryPages;
418 int _currentDiaryPage;
424 void loadMemories(
const Common::Rect &rect, uint rightPageOffset, uint verticalOffset);
429 void setLocationAsVisited(
Symbol *location);
430 int getMaxLocationValue();
440 PlayedMediaTable _playedMovies;
452 void stopForegroundSounds();
454 void stopSound(
Sound &sound);
455 bool isSoundPlaying();
456 bool isSoundPlaying(
Sound &sound);
457 void waitForSoundsToStop();
458 bool consumeEvents();
461 Sound _phoneCallSound;
463 Sound _policeRadioSound;
464 Sound _takeLeaveSound;
483 int disabledPriority1,
bool exactPriorityMatch1,
484 int disabledPriority2,
bool exactPriorityMatch2,
486 void initializeAMRadioChannels(uint clipCount);
487 void initializePoliceRadioChannels();
488 void disableRadioClips(
Radio &radio,
int priority);
489 void playRadio(
Radio &radio,
bool randomlyDisableClips);
498 void initializePhoneOnDesktop();
499 void checkPhoneCall();
508 void initializeWallSafeValue();
511 int getSafeDigit(uint32 d);
512 void incrementSafeDigit(uint32 d);
515 bool getRandomBool(uint);
520 uint32 _timerStartTime;
#define ARRAYSIZE(x)
Definition: util.h:112
Definition: managed_surface.h:51
Definition: image_decoder.h:53
Definition: wincursor.h:54
EngineFeature
Definition: engine.h:258
Definition: private.h:159
Definition: advancedDetector.h:164
void clear()
Definition: array.h:321
Definition: private.h:134
Definition: smk_decoder.h:77
bool canSaveAutosaveCurrently() override
Definition: private.h:289
Definition: archive.h:141
bool canLoadGameStateCurrently(Common::U32String *msg=nullptr) override
Definition: private.h:286
Definition: subtitles.h:77
Definition: private.h:129
Definition: private.h:233
Definition: algorithm.h:29
Definition: private.h:200
Definition: private.h:147
Definition: formatinfo.h:28
Definition: decompiler.h:30
Definition: private.h:182
bool canSaveGameStateCurrently(Common::U32String *msg=nullptr) override
Definition: private.h:292
Definition: private.h:189
Definition: private.h:177
Definition: private.h:194
Definition: movie_decoder.h:32
Definition: private.h:207
void setEmpty()
Definition: rect.h:363
Language
Definition: language.h:45