22 #ifndef SCUMM_SCRIPT_V7_H 23 #define SCUMM_SCRIPT_V7_H 25 #ifdef ENABLE_SCUMM_7_8 27 #include "scumm/scumm_v6.h" 28 #include "scumm/charset_v7.h" 29 #include "scumm/insane/insane.h" 36 class TextRenderer_v7;
38 class ScummEngine_v7 :
public ScummEngine_v6 {
39 friend class SmushPlayer;
42 ScummEngine_v7(
OSystem *syst,
const DetectorResult &dr);
43 ~ScummEngine_v7()
override;
47 int _smushFrameRate = 0;
53 bool _smushVideoShouldFinish =
false;
55 bool _smushActive =
false;
60 void syncSoundSettings()
override;
63 SmushPlayer *_splayer;
66 struct LangIndexNode {
72 TextRenderer_v7 *_textV7;
75 bool _newTextRenderStyle =
false;
76 int _blastTextRectsQueue = 0;
78 int _verbLineSpacing = 0;
79 bool _existLanguageFile =
false;
80 char *_languageBuffer =
nullptr;
81 LangIndexNode *_languageIndex;
82 int _languageIndexSize = 0;
83 char _lastStringTag[12+1] = {};
85 struct SubtitleText : TextObject {
88 actorSpeechMsg = center = wrap =
false;
97 int _subtitleQueuePos;
98 SubtitleText _subtitleQueue[20];
101 void processSubtitleQueue();
102 void addSubtitleToQueue(
const byte *text,
const Common::Point &pos, byte color, byte charset,
bool center,
bool wrap);
103 void clearSubtitleQueue();
104 void displayDialog()
override;
105 bool isSmushActive()
override {
return _smushActive; }
106 bool isInsaneActive()
override {
return _insane ? _insane->isInsaneActive() :
false; }
107 void removeBlastTexts()
override;
108 void restoreBlastTextsRects();
112 void scummLoop_handleSound()
override;
113 void scummLoop_handleDrawing()
override;
114 void processInput()
override;
117 void setupScumm(
const Common::Path &macResourceFile)
override;
118 void resetScumm()
override;
120 void setupScummVars()
override;
121 void resetScummVars()
override;
123 void akos_processQueue()
override;
127 void readMAXS(
int blockSize)
override;
128 void readGlobalObjects()
override;
129 void readIndexBlock(uint32 blocktype, uint32 itemsize)
override;
131 void setCameraAt(
int pos_x,
int pos_y)
override;
132 void setCameraFollows(Actor *a,
bool setCamera =
false)
override;
133 void moveCamera()
override;
134 void panCameraTo(
int x,
int y)
override;
136 int getObjectIdFromOBIM(
const byte *obim)
override;
138 void createTextRenderer(GlyphRenderer_v7 *gr)
override;
139 void enqueueText(
const byte *text,
int x,
int y, byte color, byte charset, TextStyleFlags flags);
140 void drawTextImmediately(
const byte *text,
Common::Rect *clipRect,
int x,
int y, byte color, byte charset, TextStyleFlags flags);
141 void drawBlastTexts()
override;
142 void showMessageDialog(
const byte *msg)
override;
144 void actorTalk(
const byte *msg)
override;
145 void translateText(
const byte *text, byte *trans_buff,
int transBufferSize)
override;
146 void loadLanguageBundle()
override;
147 void playSpeech(
const byte *ptr);
149 void queryQuit(
bool returnToLauncher)
override;
150 int getBannerColor(
int bannerId)
override;
151 const char *getGUIString(
int stringId)
override;
152 int getGUIStringHeight(
const char *str)
override;
153 int getGUIStringWidth(
const char *str)
override;
154 void drawGUIText(
const char *buttonString,
Common::Rect *clipRect,
int textXPos,
int textYPos,
int textColor,
bool centerFlag)
override;
155 int getMusicVolume()
override;
156 int getSpeechVolume()
override;
157 int getSFXVolume()
override;
158 void setMusicVolume(
int volume)
override;
159 void setSpeechVolume(
int volume)
override;
160 void setSFXVolume(
int volume)
override;
161 void toggleVoiceMode()
override;
162 void handleLoadDuringSmush()
override;
164 void setDefaultCursor()
override;
165 void updateCursor()
override;
166 void setCursorTransparency(
int a)
override;
167 void setCursorFromImg(uint img, uint room, uint imgindex)
override;
169 void drawVerb(
int verb,
int mode)
override;
171 void pauseEngineIntern(
bool pause)
override;
173 void o6_kernelSetFunctions()
override;
175 struct BlastText : TextObject {
177 TextStyleFlags flags;
180 this->TextObject::clear();
185 int _blastTextQueuePos;
186 BlastText _blastTextQueue[50];
188 byte *_guiStringTransBuff =
nullptr;
194 #endif // ENABLE_SCUMM_7_8
Definition: serializer.h:79
Definition: keyboard.h:294