22 #ifndef NANCY_ACTION_NECKLACEPUZZLE_H 23 #define NANCY_ACTION_NECKLACEPUZZLE_H 25 #include "engines/nancy/commontypes.h" 26 #include "engines/nancy/action/puzzlerecord.h" 27 #include "engines/nancy/action/mousefollow.h" 47 void registerGraphics()
override;
50 void execute()
override;
53 bool isViewportRelative()
const override {
return true; }
56 Common::String getRecordTypeName()
const override {
return "NecklacePuzzle"; }
58 static const int16 kNoBead = -1;
59 static const int16 kNoTableIndex = 255;
65 bool overlaps =
false;
77 int16 tableIndex = kNoTableIndex;
86 bool grabByTopBead =
false;
87 bool allowSwap =
false;
92 float dropSeconds = 0.0f;
101 bool swapTop =
false;
104 int findBeadType(byte key)
const;
105 bool strandAccepts(
const Strand &strand, byte type)
const;
109 int stackTop(
const Strand &strand)
const;
110 int stackTopBelow(
const Strand &strand)
const;
114 int16 beadCount(
const Bead &bead)
const;
115 void adjustBeadCount(
const Bead &bead, int16 delta);
119 void dropBeadOn(
int strand);
124 void drawBeadCount(
const Bead &bead);
127 bool _refundOnExit =
false;
128 int32 _overlapPlaced = 0;
129 int32 _overlapFalling = 0;
131 uint16 _heldCursorType = 0;
132 uint16 _hoverCursorType = 0;
133 int32 _heldOffsetX = 0;
134 int32 _heldOffsetY = 0;
135 uint16 _countFontID = 0;
136 uint16 _unknownA0 = 0;
137 uint16 _countTextExtraY = 0;
138 int32 _countTextX = 0;
139 int32 _countTextY = 0;
160 int16 _heldBead = kNoBead;
163 int _fallingStrand = -1;
164 int _fallingStartY = 0;
165 int _fallingEndY = 0;
166 uint32 _fallStartTime = 0;
167 uint32 _fallDuration = 0;
169 bool _solved =
false;
170 bool _exitRequested =
false;
176 #endif // NANCY_ACTION_NECKLACEPUZZLE_H
Definition: commontypes.h:186
Definition: necklacepuzzle.h:85
Definition: necklacepuzzle.h:41
Definition: commontypes.h:324
Definition: necklacepuzzle.h:71
Definition: necklacepuzzle.h:80
Definition: necklacepuzzle.h:98
Definition: puzzlerecord.h:37
Definition: necklacepuzzle.h:63
Definition: mousefollow.h:50
Definition: commontypes.h:201
Definition: actionmanager.h:32