SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
Halo.hpp
1#pragma once
2
3#include "Game/MapObj/MapObjActor.hpp"
4
5struct HaloParam {
6 const char* haloName; // _0
7 f32 _4;
8 f32 _8;
9 f32 clippingRadius; // _C
10};
11
12namespace {
13 HaloParam sParams[2] = {
14 { "ZoneHalo", 70.0f, 20.0f, 4.0f },
15 { "PowerStarHalo", 80.0f, 20.0f, 30.0f }
16 };
17};
18
19class Halo : public MapObjActor {
20public:
21 Halo(const char *);
22
23 virtual ~Halo();
24 virtual void init(const JMapInfoIter &);
25 virtual void appear();
26 virtual void connectToScene(const MapObjActorInitInfo &);
27 virtual f32 getDistance() const;
28
29 bool isDistanceAppear() const;
30 bool isDistanceDisappear() const;
31 void exeDisappear();
32
33 inline HaloParam* getParam() const {
34 const char* objName = mObjectName;
35 for (u32 i = 0; i < 2; i++) {
36 HaloParam* curParam = &sParams[i];
37 if (MR::isEqualString(objName, curParam->haloName)) {
38 return curParam;
39 }
40 }
41
42 return NULL;
43 }
44
45 f32 mDistance; // _C4
46};
47
48class PowerStarHalo : public Halo {
49public:
50 PowerStarHalo(const char *);
51
52 virtual ~PowerStarHalo();
53 virtual void init(const JMapInfoIter &);
54 virtual void appear();
55 virtual f32 getDistance() const;
56
57 void exeWaitScenarioOpeningEnd();
58
59 s32 _C8;
60};
61
62namespace NrvHalo {
63 NERVE(HostTypeAppear);
64 NERVE(HostTypeDisappear);
65 INIT_NERVE(HostTypeAppear);
66 INIT_NERVE(HostTypeDisappear);
67};
68
69namespace NrvPowerStarHalo {
70 NERVE(HostTypeWaitScenarioOpeningEnd);
71 INIT_NERVE(HostTypeWaitScenarioOpeningEnd);
72};
Definition Halo.hpp:19
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.
Definition Halo.cpp:133