NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
d_bc.hpp
1#pragma once
2
3#include <game/bases/d_rc.hpp>
4
5/// @unofficial
6class dBcSensor_c;
7
8class dBc_c {
9public:
10 dBc_c();
11 virtual ~dBc_c();
12 void checkLink();
13 bool checkRide();
14 bool checkHead(unsigned long);
15 int getSakaMoveAngle(u8);
16 void checkWall(float *);
17 u32 checkWallEnm(float *);
18
19 bool checkFootEnm();
20 bool hasSensorFoot() { return mpSensorFoot != nullptr; }
21 bool hasSensorHead() { return mpSensorHead != nullptr; }
22 bool hasSensorWall() { return mpSensorWall != nullptr; }
23 u32 getFootAttr();
24
25 enum WATER_TYPE_e {
26 WATER_CHECK_NONE,
27 WATER_CHECK_WATER,
28 WATER_CHECK_WATER_BUBBLE,
29 WATER_CHECK_YOGAN,
30 WATER_CHECK_POISON
31 };
32
33 dActor_c *mpOwner;
34 dBcSensor_c *mpSensorFoot;
35 dBcSensor_c *mpSensorHead;
36 dBcSensor_c *mpSensorWall;
37 mVec3_c *mpOwnerPos;
38 mVec3_c *mpOwnerLastPos;
39 mVec3_c *mpOwnerSpeed;
40 mVec3_c mPushForce;
41 mVec2_c mOwnerPosDelta;
42 mVec2_c m_34;
43 mVec2_c m_3c;
44 float m_44;
45 float m_48;
46 float m_4c;
47 dRc_c *mpRc;
48 char mPad2[0x34];
49 u32 mFlags;
50 char mPad3[0x59];
51 u8 mAmiLine;
52 char mPad4[0x6];
53 u8 mLayer;
54
55 static int checkWaterDepth(float, float, u8, u8, float *);
56 static WATER_TYPE_e checkWater(float, float, u8, float *);
57 static bool checkBg(float, float, u8, u8, unsigned long);
58
59 bool isHead() { return mFlags & 0b00000000000000000000000000010101; }
60 bool isWallL() { return mFlags & 0b00000000000000000000000000101010; }
61 bool isFoot(); // { return mFlags & 0b00000000000111111110000000000000; }
62 bool isWallR() { return mFlags & 0b00111100000000000000000000000000; }
63
64};
The minimum required implementation for a stage actor.
Definition d_actor.hpp:17
Definition d_rc.hpp:10
A two-dimensional floating point vector.
Definition m_vec.hpp:16
A three-dimensional floating point vector.
Definition m_vec.hpp:107