22 #ifndef DGDS_MINIGAMES_DRAGON_ARCADE_H 23 #define DGDS_MINIGAMES_DRAGON_ARCADE_H 25 #include "common/types.h" 26 #include "engines/dgds/minigames/dragon_arcade_ttm.h" 30 enum DragonBulletState {
33 kBulletHittingBlade = 2,
34 kBulletHittingEnemy = 3,
37 enum DragonBladeMoveFlag {
47 ArcadeNPCState() : xx(0), yy(0), x(0), y(0), x_11(0), y_11(0), x_12(0), y_12(0),
48 ttmPage(0), byte12(0), byte13(0), health(0), ttmNum(0), x_21(0), y_21(0),
72 _flipMode(kImageFlipNone), _bulletType(0), _ySpeed(0) {}
76 DragonBulletState _state;
77 ImageFlipMode _flipMode;
95 void drawBackgroundAndWeapons();
96 void checkToOpenMenu();
97 void clearAllBulletStates();
98 void clearAllNPCStates();
99 void createBullet(int16 x, int16 y, ImageFlipMode flipMode, int16 bulletType);
100 void bladeTakeHitAndCheck();
101 void enemyTakeHit() { _npcState[1].health--; }
102 void enemyTakeHitAndCheck();
103 void playSfx(int16 num)
const;
104 void drawBulletHitCircles(uint16 x, uint16 y,
bool colorFlag);
105 void drawHealthBars();
106 void runThenDrawBulletsInFlight();
109 void loadTTMScriptsForStage(uint16 stage);
110 void fadeInAndClearScreen();
112 void resetStageState();
113 void initValuesForStage();
114 void initValuesForStage0();
115 void initValuesForStage2();
116 void initValuesForStage3();
117 void initValuesForStage4();
118 void initValuesForStage6();
119 void setFinishCountdownIfLessThan0(int16 val);
120 void updateBladeWithInputs();
124 void decBossHealth();
125 void decBossHealthAndCheck();
128 void arcade16de(int16 param);
131 void arcade2754(int16 findResult);
135 void updateXScrollOffset();
136 bool isNpcInsideXRange(int16 num);
137 void updateBullets();
138 void checkBladeFireAllStages();
139 void checkEnemyFireStage0124();
140 void checkBossFireStage3();
141 void checkBossFireStage6();
142 void updateMouseAndJoystickStates();
143 int16 findFloorUnderBlade();
144 int16 checkBulletCollision(int16 num);
146 void keyboardUpdate();
147 void limitToCenterOfScreenAndUpdateCursor();
148 uint16 moveToNextStage();
149 void findFloorMatch();
150 void findFloorMinGT();
151 void findFloorMinGE();
152 void findFloorMatchOrMinOrMax();
154 void updateFloorsUnderBlade();
155 bool isFloorNotFound();
156 void playSFX55AndStuff();
158 void handleMouseStates();
159 void drawScrollBmp();
161 int16 _lastDrawnBladeHealth;
162 int16 _lastDrawnBossHealth;
163 uint16 _nextRandomVal;
164 int16 _loadedArcadeStage;
166 int16 _attemptCounter;
167 int16 _shouldUpdateState;
168 int16 _finishCountdown;
170 int16 _bladePageOffset;
171 uint16 _mouseButtonWentDown;
172 int16 _scrollXOffset;
174 int16 _startDifficultyMaybe;
175 int16 _bossStateUpdateCounter;
176 int16 _npcStateResetCounter;
177 int16 _scrollVelocityX;
179 int16 _currentYOffset;
185 bool _dontMoveBladeFlag;
186 int16 _scrollXIncrement;
187 bool _lMouseButtonState;
188 bool _rMouseButtonState;
189 bool _lastLMouseButtonState;
190 bool _lastRMouseButtonState;
192 int16 _currentArrowNum;
194 bool _foundFloorFlag;
199 bool _enemyHasSmallGun;
200 bool _dontRedrawBgndAndWeapons;
205 bool _stillLoadingScriptsMaybe;
208 int16 _someMoveDirection;
210 bool _mouseIsAvailable;
212 DragonBladeMoveFlag _bladeMoveFlag;
213 DragonBladeMoveFlag _keyStateFlags;
214 DragonBladeMoveFlag _bladeMoveFlagBeforeRButton;
215 DragonBladeMoveFlag _bladeHorizMoveAttempt;
228 #endif // DGDS_MINIGAMES_DRAGON_ARCADE_H Definition: dragon_arcade_ttm.h:76
Definition: dragon_arcade.h:69
Definition: dragon_arcade.h:85
Definition: keyboard.h:294
Definition: dragon_arcade.h:45