3#include <collision/BgUnitCode.h>
5#include <map/WaveType.h>
6#include <utility/Direction.h>
8#include <heap/seadDisposer.h>
9#include <math/seadVector.h>
54 static_assert(
sizeof(
GustType) == 1,
"Bg::GustType size mismatch");
63 static_assert(
sizeof(
Gust) == 0x14,
"Bg::Gust size mismatch");
72 static u16*
getUnit(u16 x, u16 y, u32 file, u8 layer, s32* block_idx =
nullptr);
80 return getBgCheckData(u16(x), u16(-y), layer, with_p_sw);
86 return getUnitHitType(u16(x), u16(-y), layer);
92 return getUnitType(u16(x), u16(-y), layer);
98 return getUnitTypeInfo(u16(x), u16(-y), layer);
102 void setUnit(u16 x, u16 y, u32 file, u8 layer, u16 unit);
131
132
133
134
142 return mWaveSurfaceX[index];
147 return mWaveSurfaceY[index];
152 return mGrassDecorationInfo[index];
157 return mFlowerDecorationInfo[index];
162 return mButterflyDecorationInfo[index];
234static_assert(
sizeof(
Bg) == 0x9B88,
"Bg size mismatch");
bool mHasLavaWaves
Definition Bg.h:211
f32 _18
Definition Bg.h:208
BgUnitCode::TypeInfo getUnitTypeInfo(u16 x, u16 y, u8 layer)
bool getHasLavaWaves() const
Definition Bg.h:185
u8 _3f24[100]
Definition Bg.h:227
u8 getFlowerType() const
Definition Bg.h:170
u64 getBgCheckData(u16 x, u16 y, u8 layer, bool with_p_sw=true)
DecorationInfo & getButterflyDecorationInfo(u32 index)
Definition Bg.h:160
bool mHasLiquid
Definition Bg.h:212
DecorationInfo * mGrassDecorationInfo
Definition Bg.h:221
u32 _3744[100]
Definition Bg.h:220
DecorationInfo * mButterflyDecorationInfo
Definition Bg.h:223
sead::Vector2f mFlowerPositions[100]
Definition Bg.h:226
u8 _2d7c[0x558]
Definition Bg.h:215
u32 FUN_026854c0(u16, u16, u8 layer, bool)
void setUnitCurrentCdFile(u16 x, u16 y, u8 layer, u16 unit)
u8 _367c[100]
Definition Bg.h:218
f32 mWaveSurfaceX[1280]
Definition Bg.h:209
void setUnit(u16 x, u16 y, u32 file, u8 layer, u16 unit)
u32 _10
Definition Bg.h:206
void updateFlower(f32 x, f32 y, u8 index, bool enabled)
static u16 * getUnit(u16 x, u16 y, u32 file, u8 layer, s32 *block_idx=nullptr)
Gust mGust[40]
Definition Bg.h:225
s8 checkGust(GustType type, const sead::Vector3f &pos, f32 *dist)
Checks for gusts of wind caused by players affecting grass/flowers.
f32 _14
Definition Bg.h:207
void deleteFlower(u8 index)
u8 _7e20[0x1D64]
Definition Bg.h:232
u32 _2820
Definition Bg.h:213
u8 mFlowerType
Definition Bg.h:229
DecorationInfo & getFlowerDecorationInfo(u32 index)
Definition Bg.h:155
f32 mWaveSurfaceY[1280]
Definition Bg.h:210
GustType
Definition Bg.h:47
@ cGustType_2
Definition Bg.h:50
@ cGustType_Spin
Definition Bg.h:51
@ cGustType_Invalid
Definition Bg.h:48
@ cGustType_Run
Definition Bg.h:52
@ cGustType_1
Definition Bg.h:49
bool mHasFlowers
Definition Bg.h:230
DecorationInfo & getGrassDecorationInfo(u32 index)
Definition Bg.h:150
BgDeco mBgDeco
Definition Bg.h:231
u32 _3f88
Definition Bg.h:228
void setFlowerType(u8 type)
Definition Bg.h:175
DecorationInfo * mFlowerDecorationInfo
Definition Bg.h:222
u8 _32d4[0x88]
Definition Bg.h:216
f32 getWaveSurfaceX(s32 index) const
Definition Bg.h:140
static u16 * getUnitCurrentCdFile(u16 x, u16 y, u8 layer, s32 *block_idx=nullptr)
void setHasLiquid(bool has_liquid)
Definition Bg.h:200
void registerFlower(f32 x, f32 y, f32 z, u8 color, u8 index, u8)
void registerGust(GustType type, const sead::Vector3f &pos, u8, s8 direction)
void registerGrass(f32 x, f32 y, f32 z, u8, u8 index, u8)
u32 mFlowerNo
Definition Bg.h:224
BgUnitCode::Type getUnitType(u16 x, u16 y, u8 layer)
u8 _335c[800]
Definition Bg.h:217
void registerButterfly(f32 x, f32 y, f32 z, u8, u8 index, u8)
u8 _36e0[100]
Definition Bg.h:219
u8 _2824[0x558]
Definition Bg.h:214
void setHasLavaWaves(u8 has_waves)
Definition Bg.h:190
f32 getWaveSurfaceY(s32 index) const
Definition Bg.h:145
BgUnitCode::HitType getUnitHitType(u16 x, u16 y, u8 layer)
u32 getFlowerCount() const
Definition Bg.h:165
bool getHasLiquid() const
Definition Bg.h:195
BgDeco & getBgDeco()
Definition Bg.h:180
void setWaterWave(const sead::Vector2f &pos, WaveType type)
sead::Vector3f pos
Definition Bg.h:58
s8 direction
Definition Bg.h:61
f32 radius
Definition Bg.h:59