1 
2 #ifndef _BALLOS_H
3 #define _BALLOS_H
4 #include "../../object.h"
5 #include "../../stageboss.h"
6 
7 #define NUM_EYES 2
8 enum TRIGDIR
9 {
10   LESS_THAN    = 0,
11   GREATER_THAN = 1
12 };
13 
14 class BallosBoss : public StageBoss
15 {
16 public:
17   void OnMapEntry();
18   void Run();
19   void RunAftermove();
20 
21 private:
22   void RunForm1(Object *o);
23   void RunForm2(Object *o);
24   void RunForm3(Object *o);
25   void RunComeDown(Object *o);
26   void RunDefeated(Object *o);
27 
28   void run_eye(int index);
29   void place_eye(int index);
30   void SetEyeStates(int newstate);
31 
32   bool passed_xcoord(bool ltgt, int xcoord, bool reset = false);
33   bool passed_ycoord(bool ltgt, int ycoord, bool reset = false);
34 
35   Object *main;
36   Object *body;
37   Object *eye[NUM_EYES];
38   Object *shield; // top shield to cover eyes from above
39 };
40 
41 void ondeath_ballos(Object *o);
42 void ai_ballos_rotator(Object *o);
43 void aftermove_ballos_rotator(Object *o);
44 void ai_ballos_platform(Object *o);
45 
46 #endif
47