diff --git a/configure.py b/configure.py index c8e4253f..3461bfd4 100644 --- a/configure.py +++ b/configure.py @@ -2966,7 +2966,7 @@ config.libs = [ Rel(Matching, "d_t_time_area_check", "REL/d/t/d_t_time_area_check.cpp"), Rel(Matching, "d_t_time_door_beam", "REL/d/t/d_t_time_door_beam.cpp"), Rel(Matching, "d_t_touch", "REL/d/t/d_t_touch.cpp"), - Rel(NonMatching, "d_t_tumble_weed", "REL/d/t/d_t_tumble_weed.cpp"), + Rel(Matching, "d_t_tumble_weed", "REL/d/t/d_t_tumble_weed.cpp"), ] diff --git a/include/d/a/obj/d_a_obj_tumble_weed.h b/include/d/a/obj/d_a_obj_tumble_weed.h index e87012ad..a449b1c5 100644 --- a/include/d/a/obj/d_a_obj_tumble_weed.h +++ b/include/d/a/obj/d_a_obj_tumble_weed.h @@ -59,6 +59,8 @@ public: STATE_FUNC_DECLARE(dAcOTumbleWeed_c, Wait); STATE_FUNC_DECLARE(dAcOTumbleWeed_c, Slope); + STATE_MGR_DEFINE_UTIL_EXECUTESTATE(dTgTumbleWeed_c); + private: /* 0x330 */ nw4r::g3d::ResFile mResFile; /* 0x334 */ m3d::smdl_c mMdl; diff --git a/include/d/t/d_t_tumble_weed.h b/include/d/t/d_t_tumble_weed.h index 85fb4193..0b51027d 100644 --- a/include/d/t/d_t_tumble_weed.h +++ b/include/d/t/d_t_tumble_weed.h @@ -18,6 +18,8 @@ public: STATE_FUNC_DECLARE(dTgTumbleWeed_c, AreaIn); STATE_FUNC_DECLARE(dTgTumbleWeed_c, Wind); + STATE_MGR_DEFINE_UTIL_EXECUTESTATE(dTgTumbleWeed_c); + private: bool shouldSpawnTumbleweed(); bool shouldDoWind(); @@ -25,6 +27,7 @@ private: void getWind(mVec3_c &); STATE_MGR_DECLARE(dTgTumbleWeed_c); + u16 mSpawnTimer; u16 padding; u16 mWindTimer; diff --git a/include/s/s_State.hpp b/include/s/s_State.hpp index d461f630..807a1bd9 100644 --- a/include/s/s_State.hpp +++ b/include/s/s_State.hpp @@ -38,6 +38,10 @@ void changeState(const sStateIDIf_c &value) { \ mStateMgr.changeState(value); \ } +#define STATE_MGR_DEFINE_UTIL_EXECUTESTATE(class_name) \ + void executeState() { \ + mStateMgr.executeState(); \ + } #define STATE_MGR_DEFINE_UTIL_ISSTATE(class_name) \ bool isState(const sFStateID_c &value) const { \