25 #include "common/events.h" 26 #include "common/rect.h" 27 #include "common/scummsys.h" 29 #include "graphics/managed_surface.h" 31 #include "eem/resource.h" 43 uint partnerFrameAtTick(uint16 seqnum, uint numFrames, uint32 tickMs);
46 uint oneShotFrameAtTick(uint16 seqnum, uint numFrames, uint32 tickMs);
49 uint32 oneShotDurationMs(uint16 seqnum, uint numFrames);
54 void setLondonAnimScripts(
bool enabled);
59 uint bigMapPartnerFrameAtTick(uint numFrames, uint32 elapsedMs,
bool london);
63 uint bigMapDetailPartnerFrameAtTick(uint numFrames, uint32 elapsedMs);
68 int anchorX,
int anchorY);
80 int x,
int y,
bool flipX =
false);
82 int x,
int y,
bool flipX,
85 int anchorX,
int anchorY);
87 int anchorX,
int anchorY,
98 void cyclePaletteRange(uint8 start, uint8 end);
102 void cyclePaletteRangeReverse(uint8 start, uint8 end);
105 void applyHotspotGlowPalette();
109 int16 x1, y1, x2,
y2;
121 : _vm(vm), _mystery(mystery) {}
124 void enter(uint siteNum,
bool resetPartnerMood =
true);
132 void renderBackground(uint siteNum);
133 void renderHotspots(uint siteNum);
134 int hotspotAtPoint(uint siteNum,
int x,
int y)
const;
136 int hotspotCursorId(uint siteNum,
int idx)
const;
137 void updateHotspotCursor(uint siteNum,
int x,
int y);
138 void onHotspotClicked(uint siteNum, uint hotIdx);
142 void displayClueAndAutosave(
const byte *clueBlock,
bool forceSave =
false);
143 void initImpatienceCounter();
144 bool checkImpatienceCounter();
145 void notePartnerActivity();
146 bool playLondonTravelAnimation(uint fromSite, uint toSite);
149 bool enterSiteAnim();
152 void renderPartner(uint siteNum, uint32 tickMs);
157 bool partnerIdleAnimParams(uint siteNum, uint16 &animId,
int &x,
int &y);
160 bool renderFloppyHotspotPartnerPose(uint siteNum);
162 void renderStaticDrops(uint siteNum);
163 void renderFloppyDrops(uint siteNum);
164 void renderAnimatedDrops(uint siteNum, uint32 tickMs);
168 void captureBgSnapshot();
171 void restoreBgSnapshot();
177 void syncCompositedScreen();
181 void scanColorCycles(uint siteNum);
184 void applyColorCycles();
188 enum PartnerWaitMood {
191 kPartnerWaitImpatient
193 int _snapshotSite = -1;
195 uint32 _lastTickMs = 0;
196 uint32 _impatientDeadlineMs = 0;
197 PartnerWaitMood _partnerWaitMood = kPartnerWaitDefault;
200 uint32 _waitPhaseAnchor = 0;
203 struct ColorCycleRange { uint8 start, end; };
Definition: managed_surface.h:51
uint16 clueOffset
+8: byte offset of ClueBlock in the mystery file
Definition: site.h:110
uint16 hotspotIndex
+10: zero-based mystery-wide seen ordinal
Definition: site.h:111
One hotspot (search rectangle) within a site, 14 bytes on disk.
Definition: site.h:108
uint16 extra
+12: CD cursor ID for _SwitchMouse; shipped data uses 0
Definition: site.h:112
Definition: resource.h:46
Definition: animation.h:30
int16 y2
rectangle in screen coordinates
Definition: site.h:109
Site / scene controller.
Definition: site.h:118