mirror of
https://github.com/zeldaret/ss
synced 2026-07-05 21:09:07 -04:00
+1
-15
@@ -10,6 +10,7 @@
|
||||
#include "m/m_angle.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "toBeSorted/room_manager.h"
|
||||
#include "toBeSorted/tlist.h"
|
||||
|
||||
class dAcBase_c;
|
||||
|
||||
@@ -60,21 +61,6 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
template <typename T, int offset>
|
||||
struct TList {
|
||||
T *GetOffset() {
|
||||
return (T *)((u8 *)this - offset);
|
||||
}
|
||||
TList() {
|
||||
sound_info_next = GetOffset();
|
||||
sound_info_tail = GetOffset();
|
||||
count = 0;
|
||||
}
|
||||
T *sound_info_tail;
|
||||
T *sound_info_next;
|
||||
s32 count;
|
||||
};
|
||||
|
||||
// Ghidra: ActorBase
|
||||
// size: 0xFC
|
||||
// non-official name
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
class dPlayer: public dAcObjBase_c {
|
||||
public:
|
||||
/* 0x330 */ u8 unk_0x330[0x350 - 0x330];
|
||||
/* 0x350 */ u32 someFlags;
|
||||
|
||||
|
||||
/* 0x350 */ u32 someFlags_0x350;
|
||||
u8 UNK_0x354[0x35C - 0x354];
|
||||
/* 0x35C */ u32 mForceOrPreventActionFlags;
|
||||
|
||||
static dPlayer *LINK;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
#ifndef D_T_DOWSING_H
|
||||
#define D_T_DOWSING_H
|
||||
|
||||
#include <d/tg/d_tg.h>
|
||||
#include <toBeSorted/dowsing_target.h>
|
||||
|
||||
class dTgDowsing_c : public dTg_c {
|
||||
public:
|
||||
dTgDowsing_c();
|
||||
virtual ~dTgDowsing_c() {}
|
||||
|
||||
virtual int create() override;
|
||||
virtual int doDelete() override;
|
||||
virtual int actorExecute() override;
|
||||
virtual int draw() override;
|
||||
|
||||
bool checkDowsing() const;
|
||||
|
||||
private:
|
||||
enum DowsingOption {
|
||||
TRIAL_0,
|
||||
TRIAL_1,
|
||||
TRIAL_2,
|
||||
TRIAL_3,
|
||||
PROPELLER,
|
||||
WATER_BASIN,
|
||||
CRYSTAL_BALL,
|
||||
PUMPKIN,
|
||||
NEW_PLANT_SPECIES,
|
||||
PARTY_WHEEL,
|
||||
ZELDA,
|
||||
DOWSING_MAX
|
||||
};
|
||||
|
||||
DowsingTarget mDowsingTarget; // 0x0FC
|
||||
DowsingOption mDowsingOption; // 0x11C
|
||||
u16 mUntriggerStoryFlag; // 0x120
|
||||
u16 mTriggerStoryFlag; // 0x122
|
||||
bool mTargetActive; // 0x124
|
||||
|
||||
u16 getTriggerSceneFlag() {
|
||||
return params & 0xFF;
|
||||
}
|
||||
|
||||
u16 getUntriggerSceneFlag() {
|
||||
return params >> 0x8 & 0xFF;
|
||||
}
|
||||
|
||||
DowsingOption getDowsingOption() {
|
||||
return (DowsingOption)(params >> 0x10 & 0xF);
|
||||
}
|
||||
|
||||
u32 getDowsingOptionNum() {
|
||||
return mDowsingOption;
|
||||
}
|
||||
|
||||
u16 getUntriggerStoryFlag() {
|
||||
return params >> 0x14 & 0x7FF;
|
||||
}
|
||||
|
||||
u16 getTriggerStoryFlag() {
|
||||
return rotation.z.mVal & 0x7FF;
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,23 @@
|
||||
#ifndef D_T_GENKI_DWS_TGT_H
|
||||
#define D_T_GENKI_DWS_TGT_H
|
||||
|
||||
#include <d/tg/d_tg.h>
|
||||
#include <toBeSorted/dowsing_target.h>
|
||||
|
||||
class dTgGenkiDwsTgt_c : public dTg_c {
|
||||
public:
|
||||
dTgGenkiDwsTgt_c() : mDowsingTarget(this, DowsingTarget::SLOT_NONE) {}
|
||||
virtual ~dTgGenkiDwsTgt_c() {}
|
||||
|
||||
virtual int create() override;
|
||||
virtual int doDelete() override;
|
||||
virtual int actorExecute() override;
|
||||
|
||||
|
||||
private:
|
||||
u16 getSceneFlagFromParams();
|
||||
|
||||
DowsingTarget mDowsingTarget; // 0xFC
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,24 @@
|
||||
#ifndef D_T_HOLY_WATER_H
|
||||
#define D_T_HOLY_WATER_H
|
||||
|
||||
#include <d/tg/d_tg.h>
|
||||
#include <toBeSorted/dowsing_target.h>
|
||||
|
||||
class dTgHolyWater_c : public dTg_c {
|
||||
public:
|
||||
dTgHolyWater_c() : mDowsingTarget(this, DowsingTarget::SLOT_NONE) {}
|
||||
virtual ~dTgHolyWater_c() {}
|
||||
|
||||
virtual int create() override;
|
||||
virtual int doDelete() override;
|
||||
virtual int actorExecute() override;
|
||||
virtual int draw() override;
|
||||
|
||||
bool isLinkNearby();
|
||||
bool dowsingActive();
|
||||
|
||||
private:
|
||||
DowsingTarget mDowsingTarget; // 0x0FC
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -7,6 +7,11 @@ class dTgLightShaftEff_c : public dTg_c {
|
||||
public:
|
||||
dTgLightShaftEff_c() {}
|
||||
virtual ~dTgLightShaftEff_c() {}
|
||||
|
||||
virtual int create() override;
|
||||
virtual int doDelete() override;
|
||||
virtual int actorExecute() override;
|
||||
virtual int draw() override;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -9,6 +9,9 @@ public:
|
||||
virtual ~dTgMapInst_c() {}
|
||||
|
||||
virtual int create() override;
|
||||
virtual int doDelete() override;
|
||||
virtual int actorExecute() override;
|
||||
virtual int draw() override;
|
||||
|
||||
u8 field_0xfc;
|
||||
};
|
||||
|
||||
@@ -7,6 +7,11 @@ class dTgTackle_c : public dTg_c {
|
||||
public:
|
||||
dTgTackle_c() {}
|
||||
virtual ~dTgTackle_c() {}
|
||||
|
||||
virtual int create() override;
|
||||
virtual int doDelete() override;
|
||||
virtual int actorExecute() override;
|
||||
virtual int draw() override;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -6,18 +6,6 @@
|
||||
class dTg_c : public dAcBase_c {
|
||||
public:
|
||||
virtual ~dTg_c() {}
|
||||
virtual int draw() override {
|
||||
return 1;
|
||||
}
|
||||
virtual int actorExecute() override {
|
||||
return 1;
|
||||
}
|
||||
virtual int doDelete() override {
|
||||
return 1;
|
||||
}
|
||||
virtual int create() override {
|
||||
return 1;
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user