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);
51 void setAnimScripts(
bool london,
bool macTalkie);
52 uint animationFramePeriodMs();
57 uint bigMapPartnerFrameAtTick(uint numFrames, uint32 elapsedMs,
bool london);
61 uint bigMapDetailPartnerFrameAtTick(uint numFrames, uint32 elapsedMs);
66 int anchorX,
int anchorY);
78 int x,
int y,
bool flipX =
false);
80 int x,
int y,
bool flipX,
83 int anchorX,
int anchorY);
85 int anchorX,
int anchorY,
96 void cyclePaletteRange(uint8 start, uint8 end);
100 void cyclePaletteRangeReverse(uint8 start, uint8 end);
103 void applyHotspotGlowPalette(
bool macCD =
false);
107 int16 x1, y1, x2,
y2;
119 : _vm(vm), _mystery(mystery) {}
122 void enter(uint siteNum,
bool resetPartnerMood =
true);
130 void renderBackground(uint siteNum);
131 void renderHotspots(uint siteNum);
132 int hotspotAtPoint(uint siteNum,
int x,
int y)
const;
134 int hotspotCursorId(uint siteNum,
int idx)
const;
135 void updateHotspotCursor(uint siteNum,
int x,
int y);
136 void onHotspotClicked(uint siteNum, uint hotIdx);
140 void displayClueAndAutosave(
const byte *clueBlock,
bool forceSave =
false);
141 void initImpatienceCounter();
142 bool checkImpatienceCounter();
143 void notePartnerActivity();
144 bool playLondonTravelAnimation(uint fromSite, uint toSite);
147 bool enterSiteAnim();
151 void renderPartner(uint siteNum, uint32 tickMs);
156 bool partnerIdleAnimParams(uint siteNum, uint16 &animId,
int &x,
int &y);
159 bool renderFloppyHotspotPartnerPose(uint siteNum);
161 void renderStaticDrops(uint siteNum);
162 void renderFloppyDrops(uint siteNum);
163 void renderAnimatedDrops(uint siteNum, uint32 tickMs);
167 void captureBgSnapshot();
170 void restoreBgSnapshot();
176 void syncCompositedScreen();
180 void scanColorCycles(uint siteNum);
183 void applyColorCycles();
187 enum PartnerWaitMood {
190 kPartnerWaitImpatient
192 int _snapshotSite = -1;
194 uint32 _lastTickMs = 0;
195 uint32 _impatientDeadlineMs = 0;
196 PartnerWaitMood _partnerWaitMood = kPartnerWaitDefault;
199 uint32 _waitPhaseAnchor = 0;
202 struct ColorCycleRange { uint8 start, end; };
Definition: managed_surface.h:51
uint16 clueOffset
+8: byte offset of ClueBlock in the mystery file
Definition: site.h:108
uint16 hotspotIndex
+10: zero-based mystery-wide seen ordinal
Definition: site.h:109
One hotspot (search rectangle) within a site, 14 bytes on disk.
Definition: site.h:106
uint16 extra
+12: CD cursor ID for _SwitchMouse; shipped data uses 0
Definition: site.h:110
Definition: resource.h:48
Definition: animation.h:30
int16 y2
rectangle in screen coordinates
Definition: site.h:107
Site / scene controller.
Definition: site.h:116