5 // Stage Bosses are "big" boss enemies used in some stages.
7 // The stage boss class runs at a conceptual level "above"
8 // normal AI routines, more like at the level of the game loop.
10 // This gives these complex bosses a good way to control more
11 // things than just a single object (some bosses for example have
12 // multiple parts which need to be coordinated, such as Omega).
14 // A pointer to the "main" object of a stage boss is stored by
15 // the derived class at game.stageboss.object.
17 // The script command <BSL0000 refers to opening a boss bar
18 // against game.stageboss.object.
39 virtual void OnMapEntry() { }
40 virtual void OnMapExit() { }
42 // called every tick (for logic only, please don't draw from here)
43 virtual void Run() { }
44 virtual void RunAftermove() { }
46 virtual void SetState(int newstate
);
50 class StageBossManager
55 bool SetType(int newtype
);
58 // safe interface to the current StageBoss instance
59 // (they safely do nothing if called in a stage without a stage boss)
65 void SetState(int newstate
);
67 // pointer to the "main object" of a stage boss
68 // (the one to show the boss bar for)
69 // this is set by the derived class, and is cleared in OnMapExit
70 // of the derived class and on a SetType().