#ifndef D_T_BEETLE_H #define D_T_BEETLE_H #include "d/a/obj/d_a_obj_boomerang.h" #include "d/t/d_tg.h" #include "m/m_mtx.h" // This is a tag actor for controlling where the beetle can fly // BtlTgC is leaves (beetle plays leaf animation as it passes through) class dTgBeetle_c : public dTg_c { public: dTgBeetle_c() {} virtual ~dTgBeetle_c() {} virtual int create() override; virtual int doDelete() override; virtual int actorExecute() override; u32 isWithinSphere(const mVec3_c ¶m) const; u32 isWithinCylinder(const mVec3_c ¶m) const; void updateBeetle(dAcBoomerang_c &boomerang); virtual int draw() override; enum Variant_e { BtlTg, BtlTgA, // is this even used? BtlTgB, // is this even used? BtlTgC, // spherical leaf object }; enum ZoneType_e { LeafZone = 1, BorderZone = 2, UnknownZone = 3, }; enum ZoneShape_e { RectangularPrismShape, CylinderShape, SphereShape, }; private: /* 0xFC */ mMtx_c mMatrix1; /* 0x12C*/ u8 mZoneType; // defines what this object does /* 0x12D*/ u8 mZoneShape; // the shape created inside the object that it checks /* 0x12E*/ u8 mUnknown; // unused /* 0x12F*/ u8 mBeetleFlag; /* 0x130*/ u8 mPastOnly; // object only exists in past state }; #endif