4#include <collision/BgUnitCode.h>
5#include <utility/Direction.h>
7#include <heap/seadDisposer.h>
8#include <math/seadVector.h>
51 static_assert(
sizeof(
GustType) == 1,
"Bg::GustType size mismatch");
60 static_assert(
sizeof(
Gust) == 0x14,
"Bg::Gust size mismatch");
69 static u16*
getUnit(u16 x, u16 y, u32 file, u8 layer, s32* block_idx =
nullptr);
76 return getBgCheckData(u16(x), u16(-y), layer, with_p_sw);
82 return getUnitHitType(u16(x), u16(-y), layer);
88 return getUnitType(u16(x), u16(-y), layer);
94 return getUnitTypeInfo(u16(x), u16(-y), layer);
98 void setUnit(u16 x, u16 y, u32 file, u8 layer, u16 unit);
126
127
128
129
134 return mWaveSurfaceX[index];
139 return mWaveSurfaceY[index];
144 return mGrassDecorationInfo[index];
149 return mFlowerDecorationInfo[index];
154 return mButterflyDecorationInfo[index];
206static_assert(
sizeof(
Bg) == 0x9B88,
"Bg size mismatch");
bool mHasLavaWaves
Definition Bg.h:183
void setWaterInWave(const sead::Vector2f &pos, u8 wave_scale)
f32 _18
Definition Bg.h:180
BgUnitCode::TypeInfo getUnitTypeInfo(u16 x, u16 y, u8 layer)
u8 _3f24[100]
Definition Bg.h:199
u8 getFlowerType() const
Definition Bg.h:162
u64 getBgCheckData(u16 x, u16 y, u8 layer, bool with_p_sw=true)
DecorationInfo & getButterflyDecorationInfo(u32 index)
Definition Bg.h:152
DecorationInfo * mGrassDecorationInfo
Definition Bg.h:193
u32 _3744[100]
Definition Bg.h:192
DecorationInfo * mButterflyDecorationInfo
Definition Bg.h:195
sead::Vector2f mFlowerPositions[100]
Definition Bg.h:198
u8 _2d7c[0x558]
Definition Bg.h:187
void setUnitCurrentCdFile(u16 x, u16 y, u8 layer, u16 unit)
u8 _367c[100]
Definition Bg.h:190
f32 mWaveSurfaceX[1280]
Definition Bg.h:181
void setUnit(u16 x, u16 y, u32 file, u8 layer, u16 unit)
u32 _10
Definition Bg.h:178
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:197
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:179
void deleteFlower(u8 index)
u8 _7e20[0x1D64]
Definition Bg.h:204
u32 _2820
Definition Bg.h:185
u8 mFlowerType
Definition Bg.h:201
DecorationInfo & getFlowerDecorationInfo(u32 index)
Definition Bg.h:147
f32 mWaveSurfaceY[1280]
Definition Bg.h:182
GustType
Definition Bg.h:44
@ cGustType_2
Definition Bg.h:47
@ cGustType_Spin
Definition Bg.h:48
@ cGustType_Invalid
Definition Bg.h:45
@ cGustType_Run
Definition Bg.h:49
@ cGustType_1
Definition Bg.h:46
bool mHasFlowers
Definition Bg.h:202
DecorationInfo & getGrassDecorationInfo(u32 index)
Definition Bg.h:142
BgDeco mBgDeco
Definition Bg.h:203
u32 _3f88
Definition Bg.h:200
void setFlowerType(u8 type)
Definition Bg.h:167
DecorationInfo * mFlowerDecorationInfo
Definition Bg.h:194
u8 _32d4[0x88]
Definition Bg.h:188
f32 getWaveSurfaceX(s32 index) const
Definition Bg.h:132
static u16 * getUnitCurrentCdFile(u16 x, u16 y, u8 layer, s32 *block_idx=nullptr)
void registerFlower(f32 x, f32 y, f32 z, u8 color, u8 index, u8)
bool mHasTerrain
Definition Bg.h:184
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:196
BgUnitCode::Type getUnitType(u16 x, u16 y, u8 layer)
u8 _335c[800]
Definition Bg.h:189
void registerButterfly(f32 x, f32 y, f32 z, u8, u8 index, u8)
u8 _36e0[100]
Definition Bg.h:191
u8 _2824[0x558]
Definition Bg.h:186
f32 getWaveSurfaceY(s32 index) const
Definition Bg.h:137
BgUnitCode::HitType getUnitHitType(u16 x, u16 y, u8 layer)
u32 getFlowerCount() const
Definition Bg.h:157
BgDeco & getBgDeco()
Definition Bg.h:172
sead::Vector3f pos
Definition Bg.h:55
s8 direction
Definition Bg.h:58
f32 radius
Definition Bg.h:56