1 
2 #ifndef _XBOSS_H
3 #define _XBOSS_H
4 
5 enum XBDir
6 {
7 	UL, UR, LL, LR
8 };
9 
10 class XBoss : public StageBoss
11 {
12 public:
13 	void OnMapEntry();
14 	void OnMapExit();
15 	void Run();
16 	void RunAftermove();
17 
18 private:
19 	void run_tread(int index);
20 	void run_body(int index);
21 	void run_door(int index);
22 	void run_target(int index);
23 	void run_fishy_spawner(int index);
24 	void run_internals();
25 
26 	bool AllTargetsDestroyed();
27 	void Init();
28 	Object *CreateTread(int x, int y, int sprite);
29 	Object *CreatePiece(int x, int y, int type);
30 
31 	void SetStates(Object *objects[], int nobjects, int state);
32 	void SetDirs(Object *objects[], int nobjects, int dir);
33 
34 	void DeleteMonster();
35 
36 	Object *mainobject;
37 	Object *body[4];
38 	Object *treads[4];
39 	Object *internals;
40 	Object *doors[2];
41 	Object *targets[4];
42 	Object *fishspawners[4];
43 
44 	Object *piecelist[24];
45 	int npieces;
46 
47 	struct
48 	{
49 		bool initilized;
50 	} X;
51 };
52 
53 
54 #endif
55