22 #ifndef NANCY_ACTION_CONVERSATION_H 23 #define NANCY_ACTION_CONVERSATION_H 25 #include "engines/nancy/action/actionrecord.h" 26 #include "engines/nancy/movieplayer.h" 48 void execute()
override;
50 virtual bool isVideoDonePlaying() {
return true; }
52 virtual void skipVideo() {}
53 bool isViewportRelative()
const override {
return true; }
66 bool isSatisfied()
const;
74 bool isSatisfied()
const;
78 enum AddRule { kAddIfNotFound, kRemoveAndAddToEnd, kRemove };
83 byte addRule = kAddIfNotFound;
87 bool isOnScreen =
false;
100 static const byte kDefaultNextSceneEnabled = 1;
101 static const byte kDefaultNextSceneDisabled = 2;
103 static const byte kPopNextScene = 1;
104 static const byte kNoPopNextScene = 2;
106 Common::String getRecordTypeName()
const override {
return "ConversationSound"; }
124 void addConditionalDialogue();
126 void addConditionalDialogueNancy12();
127 void addGoodbyeNancy12();
137 uint _curConcatSound = 0;
139 byte _conditionalResponseCharacterID;
140 byte _goodbyeResponseCharacterID;
144 byte _defaultNextScene = kDefaultNextSceneEnabled;
145 byte _popNextScene = kNoPopNextScene;
152 bool _hasDrawnTextbox;
153 bool _isDialogOpen =
false;
154 int16 _pickedResponse;
155 bool _isSkipped =
false;
157 const byte _noResponse;
163 void init()
override;
164 void updateGraphics()
override;
165 void onPause(
bool pause)
override;
169 bool isVideoDonePlaying()
override;
176 uint _videoFormat = kLargeVideoFormat;
177 uint16 _firstFrame = 0;
178 int16 _lastFrame = 0;
182 class ConversationCelLoader;
191 void init()
override;
192 void registerGraphics()
override;
193 void updateGraphics()
override;
194 void onPause(
bool pause)
override;
199 uint getCurFrame()
const {
return _curFrame; }
202 Common::String getRecordTypeName()
const override {
return "ConversationCel"; }
213 bool isViewportRelative()
const override {
return true; }
219 static const byte kCelOverrideTreeRectsOff = 1;
220 static const byte kCelOverrideTreeRectsOn = 2;
222 bool isVideoDonePlaying()
override;
223 void skipVideo()
override;
232 uint32 _frameTime = 0;
233 uint _videoFormat = kLargeVideoFormat;
234 uint16 _firstFrame = 0;
235 uint16 _lastFrame = 0;
253 static const int32 kMovieFrameFreeRunning = -1;
257 bool isTreeFreeRunning(uint tree)
const;
258 void showMovieFrame(uint tree, uint xsheetFrame);
261 uint32 _nextFrameTime = 0;
272 Common::String getRecordTypeName()
const override {
return "ConversationSoundT"; }
281 Common::String getRecordTypeName()
const override {
return "ConversationCelT"; }
293 Common::String getRecordTypeName()
const override {
return "ConversationSoundTerse"; }
302 Common::String getRecordTypeName()
const override {
return "ConversationCelTerse"; }
309 Common::String getRecordTypeName()
const override {
return "ConversationInfoCheck"; }
319 Common::String getRecordTypeName()
const override {
return "ConversationGoodbye"; }
328 #endif // NANCY_ACTION_CONVERSATION_H Definition: managed_surface.h:51
Definition: conversation.h:204
Definition: commontypes.h:186
Definition: movieplayer.h:56
Definition: conversation.h:60
Definition: conversation.h:161
Definition: conversation.h:41
Definition: conversation.h:95
Definition: actionrecord.h:169
Definition: renderobject.h:36
Definition: conversation.h:306
Definition: conversation.h:316
Definition: conversation.h:288
Definition: conversation.h:70
Definition: actionrecord.h:107
Definition: conversation.h:297
Definition: conversation.h:77
Definition: conversation.h:186
Definition: conversation.h:90
Definition: conversation.h:210
Definition: commontypes.h:306
Definition: conversation.h:270
Definition: conversation.h:279
Definition: commontypes.h:201
Definition: actionmanager.h:32