Files
ss/include/d/t/d_t_tumble_weed.h
T
Elijah Thomas c235e32d95 d_a_obj_tumble_weed mostly done (#88)
* mostly done

* Update d_t_tumble_weed.cpp

* remove cM::calcTimer

* just regswap on adjustSpeed

* Create inlines for angle between vectors

* name data symbols

---------

Co-authored-by: robojumper <robojumper@gmail.com>
2024-11-06 16:36:17 -05:00

36 lines
910 B
C++

#ifndef D_T_TUMBLE_WEED_H
#define D_T_TUMBLE_WEED_H
#include "d/a/obj/d_a_obj_tumble_weed.h"
#include "d/t/d_tg.h"
#include "s/s_State.hpp"
class dTgTumbleWeed_c : public dTg_c {
public:
dTgTumbleWeed_c() : mStateMgr(*this, sStateID::null), childTumbleweed(nullptr) {}
virtual ~dTgTumbleWeed_c() {}
virtual int create() override;
virtual int actorExecute() override;
virtual int draw() override;
virtual int doDelete() override;
STATE_FUNC_DECLARE(dTgTumbleWeed_c, AreaOut);
STATE_FUNC_DECLARE(dTgTumbleWeed_c, AreaIn);
STATE_FUNC_DECLARE(dTgTumbleWeed_c, Wind);
private:
bool shouldSpawnTumbleweed();
bool shouldDoWind();
void doSpawnTumbleweed();
void getWind(mVec3_c *);
STATE_MGR_DECLARE(dTgTumbleWeed_c);
u16 tumbleweedTimer;
u16 padding;
u16 windTimer;
dAcRef_c<dAcOTumbleWeed_c> childTumbleweed;
u16 someField;
};
#endif