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;
53 bool _smushVideoShouldFinish;
61 SmushPlayer *_splayer;
64 struct LangIndexNode {
70 TextRenderer_v7 *_textV7;
73 bool _newTextRenderStyle;
74 int _blastTextRectsQueue = 0;
77 bool _existLanguageFile;
78 char *_languageBuffer;
79 LangIndexNode *_languageIndex;
80 int _languageIndexSize;
81 char _lastStringTag[12+1];
83 struct SubtitleText : TextObject {
86 actorSpeechMsg = center = wrap =
false;
95 int _subtitleQueuePos;
96 SubtitleText _subtitleQueue[20];
99 void processSubtitleQueue();
100 void addSubtitleToQueue(
const byte *text,
const Common::Point &pos, byte color, byte charset,
bool center,
bool wrap);
101 void clearSubtitleQueue();
102 void CHARSET_1()
override;
103 bool isSmushActive()
override {
return _smushActive; }
104 bool isInsaneActive()
override {
return _insane ? _insane->isInsaneActive() :
false; }
105 void removeBlastTexts()
override;
106 void restoreBlastTextsRects();
110 void scummLoop_handleSound()
override;
111 void scummLoop_handleDrawing()
override;
112 void processInput()
override;
115 void setupScumm(
const Common::Path &macResourceFile)
override;
116 void resetScumm()
override;
118 void setupScummVars()
override;
119 void resetScummVars()
override;
121 void akos_processQueue()
override;
125 void readMAXS(
int blockSize)
override;
126 void readGlobalObjects()
override;
127 void readIndexBlock(uint32 blocktype, uint32 itemsize)
override;
129 void setCameraAt(
int pos_x,
int pos_y)
override;
130 void setCameraFollows(Actor *a,
bool setCamera =
false)
override;
131 void moveCamera()
override;
132 void panCameraTo(
int x,
int y)
override;
134 int getObjectIdFromOBIM(
const byte *obim)
override;
136 void createTextRenderer(GlyphRenderer_v7 *gr)
override;
137 void enqueueText(
const byte *text,
int x,
int y, byte color, byte charset, TextStyleFlags flags);
138 void drawTextImmediately(
const byte *text,
Common::Rect *clipRect,
int x,
int y, byte color, byte charset, TextStyleFlags flags);
139 void drawBlastTexts()
override;
140 void showMessageDialog(
const byte *msg)
override;
142 void actorTalk(
const byte *msg)
override;
143 void translateText(
const byte *text, byte *trans_buff,
int transBufferSize)
override;
144 void loadLanguageBundle()
override;
145 void playSpeech(
const byte *ptr);
147 void queryQuit(
bool returnToLauncher)
override;
148 int getBannerColor(
int bannerId)
override;
149 const char *getGUIString(
int stringId)
override;
150 int getGUIStringHeight(
const char *str)
override;
151 int getGUIStringWidth(
const char *str)
override;
152 void drawGUIText(
const char *buttonString,
Common::Rect *clipRect,
int textXPos,
int textYPos,
int textColor,
bool centerFlag)
override;
153 int getMusicVolume()
override;
154 int getSpeechVolume()
override;
155 int getSFXVolume()
override;
156 void setMusicVolume(
int volume)
override;
157 void setSpeechVolume(
int volume)
override;
158 void setSFXVolume(
int volume)
override;
159 void toggleVoiceMode()
override;
160 void handleLoadDuringSmush()
override;
162 void setDefaultCursor()
override;
163 void updateCursor()
override;
164 void setCursorTransparency(
int a)
override;
165 void setCursorFromImg(uint img, uint room, uint imgindex)
override;
167 void drawVerb(
int verb,
int mode)
override;
169 void pauseEngineIntern(
bool pause)
override;
171 void o6_kernelSetFunctions()
override;
173 struct BlastText : TextObject {
175 TextStyleFlags flags;
178 this->TextObject::clear();
183 int _blastTextQueuePos;
184 BlastText _blastTextQueue[50];
186 byte *_guiStringTransBuff =
nullptr;
192 #endif // ENABLE_SCUMM_7_8
Definition: serializer.h:79
Definition: keyboard.h:294