mirror of
https://github.com/zeldaret/ss
synced 2026-09-01 09:32:58 -04:00
Improve dAcBase_c (#133)
* Improve dAcBase_c * Fix missed polyAttr0/1 renaming * Add getters for EventManager funcs used in dAcBase * Fix include * Replace actor_properties with helper calls * Fix SoundInfo TList function (thanks robo) * Make roundAngleToNearest90 static * Fix removeSoundInfo symbol * Revert d_a_item spawnItem and spawnDrop param change * Fix d_t_reaction and improve spawnHearts a bit * Also update special_item_drop_mgr * Fix special_item_drop_mgr * Small fixes --------- Co-authored-by: robojumper <robojumper@gmail.com> Co-authored-by: elijah-thomas774 <elijahthomas774@gmail.com>
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
namespace cLib {
|
||||
|
||||
s32 targetAngleY(const mVec3_c &target, const mVec3_c &source);
|
||||
s32 targetAngleX(const mVec3_c &target, const mVec3_c &source);
|
||||
f32 addCalcPosXZ(mVec3_c *src, const mVec3_c &target, f32 scale, f32 maxStep, f32 minStep);
|
||||
|
||||
} // namespace cLib
|
||||
|
||||
+15
-14
@@ -6,13 +6,14 @@
|
||||
#include "m/m_allocator.h"
|
||||
#include "m/m_angle.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "toBeSorted/raii_ptr.h"
|
||||
#include "toBeSorted/tlist.h"
|
||||
|
||||
class dAcBase_c;
|
||||
struct cBgS_PolyInfo;
|
||||
|
||||
struct SoundSource {
|
||||
// TODO
|
||||
virtual ~SoundSource() {}
|
||||
};
|
||||
|
||||
struct SoundInfo {
|
||||
@@ -71,7 +72,7 @@ public:
|
||||
/* 0x68 */ mHeapAllocator_c heap_allocator;
|
||||
/* 0x84 */ ObjInfo *obj_info;
|
||||
/* 0x88 */ TList<SoundInfo, 12> sound_list;
|
||||
/* 0x94 */ SoundSource *sound_source;
|
||||
/* 0x94 */ RaiiPtr<SoundSource> sound_source;
|
||||
/* 0x98 */ mVec3_c *obj_pos;
|
||||
/* 0x9C */ mVec3_c pos_copy;
|
||||
/* 0xA8 */ u32 params2;
|
||||
@@ -88,8 +89,8 @@ public:
|
||||
/* 0xE8 */ u32 field_0xe8;
|
||||
/* 0xEC */ s8 roomid;
|
||||
/* 0xED */ u8 actor_subtype;
|
||||
/* 0xEE */ u8 field_0xEE;
|
||||
/* 0xEF */ u8 field_0xEF;
|
||||
/* 0xEE */ u8 polyAttr0;
|
||||
/* 0xEF */ u8 polyAttr1;
|
||||
/* 0xF0 */ u32 JStudio_actor;
|
||||
/* 0xF4 */ char someStr[4];
|
||||
/* 0xF8 */ char field_0xf8[0xfc - 0xf8];
|
||||
@@ -176,8 +177,8 @@ public:
|
||||
public:
|
||||
// funcs found in TU
|
||||
/* 8002c650 */ static void setTempCreateParams(
|
||||
mVec3_c *pos, mAng3_c *rot, mVec3_c *scale, s32 roomId, u32 params2, dAcBase_c *parent, u8 subtype, s16 unkFlag,
|
||||
u8 viewClipIdx, ObjInfo *objInfo
|
||||
mVec3_c *pos, mAng3_c *rot, mVec3_c *scale, s32 roomId, u32 params2, dAcBase_c *parent, u8 subtype, u16 unkFlag,
|
||||
s8 viewClipIdx, ObjInfo *objInfo
|
||||
);
|
||||
|
||||
/* 8002c690 */ SoundSource *FUN_8002c690();
|
||||
@@ -232,7 +233,7 @@ public:
|
||||
/* 8002d880 */ SoundSource *getSoundSource();
|
||||
// End of SoundSource stuff
|
||||
|
||||
/* 8002d890 */ void FUN_8002d890();
|
||||
/* 8002d890 */ void removeSoundInfo(SoundInfo *);
|
||||
/* 8002d920 */ void setActorRef(dAcBase_c *);
|
||||
// next three funcs are related
|
||||
/* 8002d930 */ void setEnemyDefeatFlag();
|
||||
@@ -249,14 +250,14 @@ public:
|
||||
dBase_c *ref
|
||||
);
|
||||
|
||||
/* 8002dc20 */ void FUN_8002dc20(s16 *, s16 *);
|
||||
/* 8002dc20 */ static void roundAngleToNearest90(s16 *, s16 *);
|
||||
/* 8002dc50 */ void incrementKillCounter();
|
||||
/* 8002dcd0 */ void FUN_8002dcd0();
|
||||
/* 8002dd10 */ void FUN_8002dd10();
|
||||
/* 8002dd50 */ void FUN_8002dd50();
|
||||
/* 8002dd90 */ void FUN_8002dd90();
|
||||
/* 8002ddd0 */ void FUN_8002ddd0();
|
||||
/* 8002de30 */ void FUN_8002de30(cBgS_PolyInfo &p);
|
||||
/* 8002dcd0 */ void killNoItemDrop();
|
||||
/* 8002dd10 */ void killWithFlag();
|
||||
/* 8002dd50 */ void killWithFlagNoItemDrop();
|
||||
/* 8002dd90 */ void deleteWithFlagNoItemDrop();
|
||||
/* 8002ddd0 */ void setPolyAttrs(cBgS_PolyInfo &p);
|
||||
/* 8002de30 */ void setPolyAttrsDupe(cBgS_PolyInfo &p);
|
||||
|
||||
public:
|
||||
/* 80571920 */ static u32 s_Create_RoomId;
|
||||
|
||||
@@ -14,7 +14,7 @@ public:
|
||||
STATE_FUNC_DECLARE(dAcOVortex_c, Appear);
|
||||
|
||||
void triggerActivation() {
|
||||
actor_properties |= 0x4;
|
||||
setActorProperty(0x4);
|
||||
field_0x870 = 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
#include "d/a/obj/d_a_obj_base.h"
|
||||
#include "d/col/cc/d_cc_d.h"
|
||||
#include "m/m_angle.h"
|
||||
#include "s/s_State.hpp"
|
||||
#include "s/s_StateMgr.hpp"
|
||||
#include "toBeSorted/dowsing_target.h"
|
||||
|
||||
class dTgReaction_c : public dAcObjBase_c {
|
||||
|
||||
@@ -82,7 +82,9 @@ public:
|
||||
);
|
||||
|
||||
dAcObjBase_c *getActor(s32 i) {
|
||||
return i < mNumUsedRefs && mInfos[i].mActorIdx != 0xFF ? mRefs[mInfos[i].mActorIdx].get() : nullptr;
|
||||
// This only matches if the comparision is always true
|
||||
// Logic is hard sometimes I guess xD
|
||||
return i < mNumUsedRefs && mInfos[i].mActorIdx != -1 ? mRefs[mInfos[i].mActorIdx].get() : nullptr;
|
||||
}
|
||||
|
||||
void clear() {
|
||||
|
||||
@@ -23,8 +23,12 @@ public:
|
||||
return sInstance != nullptr && sInstance->mState != 0;
|
||||
}
|
||||
|
||||
static bool isInEventOtherThan7() {
|
||||
return isInEvent() && sInstance != nullptr && sInstance->mState != 7;
|
||||
static bool isInEvent0Or7() {
|
||||
return sInstance != nullptr && (sInstance->mState == 0 || sInstance->mState == 7);
|
||||
}
|
||||
|
||||
static bool isInEventOtherThan0Or7() {
|
||||
return isInEvent() && !isInEvent0Or7();
|
||||
}
|
||||
|
||||
static const char *getCurrentEventName() {
|
||||
@@ -35,7 +39,12 @@ public:
|
||||
return strequals(getCurrentEventName(), name);
|
||||
}
|
||||
|
||||
// Something like isActorInEvent maybe?
|
||||
static bool FUN_800a0570(dAcBase_c *actor);
|
||||
static bool FUN_800a0ba0();
|
||||
|
||||
private:
|
||||
|
||||
/* 0x000 */ u8 _000[0x084 - 0x000];
|
||||
/* 0x084 */ Event mCurrentEvent;
|
||||
/* 0x0C4 */ u8 _0C4[0x184 - 0x0C4];
|
||||
|
||||
@@ -25,6 +25,14 @@ public:
|
||||
return mPtr != nullptr;
|
||||
}
|
||||
|
||||
const T *get() const {
|
||||
return mPtr;
|
||||
}
|
||||
|
||||
T *get() {
|
||||
return mPtr;
|
||||
}
|
||||
|
||||
const T *operator->() const {
|
||||
return mPtr;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user