summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorElijah Thomas <elijahthomas774@gmail.com>2023-08-12 10:47:25 -0400
committerElijah Thomas <elijahthomas774@gmail.com>2023-08-12 10:47:25 -0400
commit683dc91a53be327409ed7efb636626d9f3b9cfac (patch)
tree34f017619e9965e5892d2e76df38644fce0cb196 /include
parentde8b60021c270b1a46fa13edfa3bd248b23e35e7 (diff)
starting to organize and progress on dAcBase_c
Diffstat (limited to 'include')
-rw-r--r--include/UnknownTypeBelongings.h2
-rw-r--r--include/d/a/d_a_base.h79
-rw-r--r--include/d/d_base.h2
-rw-r--r--include/d/d_room.h0
-rw-r--r--include/f/f_base.h1
-rw-r--r--include/f/f_list_nd.h2
-rw-r--r--include/lib/egg/audio/eggAudioArcPlayerMgr.h0
-rw-r--r--include/lib/egg/audio/eggAudioHeapMgr.h0
-rw-r--r--include/lib/egg/audio/eggAudioMgr.h25
-rw-r--r--include/lib/egg/egg_types.h148
-rw-r--r--include/lib/nw4r/math/vec.h15
-rw-r--r--include/lib/nw4r/nw4r_types.h12
-rw-r--r--include/lib/nw4r/snd/snd_SoundSystem.h23
-rw-r--r--include/m/m_angle.h7
-rw-r--r--include/m/m_vec.h85
-rw-r--r--include/sound_mgrs/sound_audio_manager.h11
-rw-r--r--include/toBeSorted/room_manager.h31
-rw-r--r--include/toBeSorted/save_file.h66
-rw-r--r--include/types.h15
19 files changed, 381 insertions, 143 deletions
diff --git a/include/UnknownTypeBelongings.h b/include/UnknownTypeBelongings.h
index 93f9c3f7..8fc742bf 100644
--- a/include/UnknownTypeBelongings.h
+++ b/include/UnknownTypeBelongings.h
@@ -19,7 +19,7 @@ struct Vec3s
s16 x, y, z;
};
-struct ObjInfoPtr {
+struct ObjInfo {
/* 0x00 */ char* name;
/* 0x04 */ u16 obj_id;
/* 0x06 */ u16 obj_id2;
diff --git a/include/d/a/d_a_base.h b/include/d/a/d_a_base.h
index f9b1799d..229fbdba 100644
--- a/include/d/a/d_a_base.h
+++ b/include/d/a/d_a_base.h
@@ -4,20 +4,50 @@
#include <d/d_heap.h>
#include <m/m_allocator.h>
#include <UnknownTypeBelongings.h>
-#include <m/types_m.h>
+// #include <m/types_m.h>
#include <m/m_angle.h>
+#include <m/m_vec.h>
+#include <toBeSorted/room_manager.h>
+
+class dAcBase_c;
+struct SoundInfo {
+ dAcBase_c* actor;
+ void* obj_sound;
+ mVec3_c* obj_pos;
+ SoundInfo* next;
+ SoundInfo* prev;
+};
// Ghidra: ActorBase
// size: 0xFC
// non-official name
class dAcBase_c : public dBase_c {
public:
- /* 0x68 */ mHeapAllocator_c mHeapAllocator; // mHeapAlloctor
- /* 0x84 */ ObjInfoPtr* objInfo; //
- /* 0x88 */ int field_0x88;
- /* 0x8C */ int field_0x8C;
- /* 0x90 */ int field_0x90;
- /* 0x94 */ void* soundRelated;
+ /* 0x68 */ mHeapAllocator_c heap_allocator;
+ /* 0x84 */ ObjInfo* obj_info;
+ /* 0x88 */ void* sound_info_tail;
+ /* 0x8c */ SoundInfo* sound_info_next;
+ /* 0x90 */ int count;
+ /* 0x94 */ void* obj_sound;
+ /* 0x9C */ mVec3_c* obj_pos;
+ /* 0x9c */ mVec3_c pos_copy;
+ /* 0xa8 */ u32 params2;
+ /* 0xAC */ mAng3_c rot_copy;
+ /* 0xB2 */ u16 obj_id; // enemydefeat flag / id on obj-map
+ /* 0xB4 */ u8 room_id_copy;
+ /* 0xB5 */ u8 viewclip_index;
+ /* 0xB6 */ u8 subtype;
+ /* 0xB8 */ mAng3_c rotation;
+ /* 0xC0 */ mVec3_c position;
+ /* 0xCC */ mVec3_c scale;
+ /* 0xD8 */ u32 actor_properties;
+ /* 0xDC */ fLiNdBa_c actor_node;
+ /* 0xE8 */ u32 field_0xe8;
+ /* 0xEC */ u8 roomid;
+ /* 0xED */ u8 actor_subtype;
+ /* 0xF0 */ u32 field_0xF0;
+ /* 0xF4 */ char someStr[4];
+ /* 0xF8 */ char field_0xf8[0xfc - 0xf8];
protected:
/* 80501544 */ // vtable
/* 0x08 | 8002c880 */ virtual int create();
@@ -29,7 +59,7 @@ protected:
/* 0x44 | 8002c3a0 */ virtual bool createHeap();
/* 0x48 | 8002c590 */ virtual ~dAcBase_c();
/* 0x4C | 8002c860 */ virtual int actorCreate(); // name is assumed
- /* 0x50 | 8002c870 */ virtual int actorReCreate(); // name is assumed
+ /* 0x50 | 8002c870 */ virtual int actorPostCreate(); // name is assumed
/* 0x54 | 8002cca0 */ virtual int actorExecute(); // name is assumed
/* 0x58 | 8002ccb0 */ virtual int actorExecuteInEvent(); // name is assumed
/* 0x5C | 8002ce90 */ virtual void unkVirtFunc_0x5C();
@@ -42,13 +72,32 @@ protected:
public:
/* 8002c3b0 */ dAcBase_c();
+ void setPostion(mVec3_c* r) {
+ position.set(r->x, r->y, r->z);
+ }
+ void setScale(f32 x, f32 y, f32 z) {
+ scale.set(x, y, z);
+ }
+ void setScale(mVec3_c* r) {
+ scale.set(r->x, r->y, r->z);
+ }
+ void setRotation(mAng3_c* r) {
+ rotation = *r;
+ }
+
+ void copyPosition() {
+ pos_copy = position;
+ }
+ void copyRotation() {
+ rot_copy = rotation;
+ }
public:
// funcs found in TU
/* 8002c650 */ static void setTempCreateParams( \
- Vec3f* pos, Vec3s* rot, Vec3f* scale, \
+ mVec3_c* pos, mAng3_c* rot, mVec3_c* scale, \
s32 roomId, u32 params2, dAcBase_c* parent, \
u8 subtype, s16 unkFlag, u8 viewClipIdx,\
- ObjInfoPtr* objInfo );
+ ObjInfo* objInfo );
/* 8002c690 */ void* FUN_8002c690();
/* 8002c710 */ int initAllocatorWork1Heap(int size, char* name, int align);
@@ -98,7 +147,7 @@ public:
/* 8002d880 */ void FUN_8002d880();
// End Sound Effect Related
/* 8002d890 */ void FUN_8002d890();
- /* 8002d920 */ void setActorRef(dBase_c&);
+ /* 8002d920 */ void setActorRef(dBase_c*);
// next three funcs are related
/* 8002d930 */ void setUnkFlag();
/* 8002d940 */ void FUN_8002d940();
@@ -124,10 +173,10 @@ public:
/* 80571924 */ static u32 s_Create_Params2;
/* 80571928 */ static u16 s_Create_UnkFlags;
/* 8057192A */ static u8 s_Create_ViewClipIdx;
- /* 80575080 */ static Vec3f* s_Create_Position;
- /* 80575084 */ static Vec3s* s_Create_Rotation;
- /* 80575088 */ static Vec3f* s_Create_Scale;
+ /* 80575080 */ static mVec3_c* s_Create_Position;
+ /* 80575084 */ static mAng3_c* s_Create_Rotation;
+ /* 80575088 */ static mVec3_c* s_Create_Scale;
/* 8057508C */ static dAcBase_c* s_Create_Parent;
- /* 80575090 */ static ObjInfoPtr* s_Create_ObjInfo;
+ /* 80575090 */ static ObjInfo* s_Create_ObjInfo;
/* 80575094 */ static u8 s_Create_Subtype;
}; \ No newline at end of file
diff --git a/include/d/d_base.h b/include/d/d_base.h
index 606ef0e8..d8499771 100644
--- a/include/d/d_base.h
+++ b/include/d/d_base.h
@@ -1,7 +1,7 @@
#pragma once
#include <f/f_base.h>
-#include <c/c_owner_set.h>
+// #include <c/c_owner_set.h>
// Ghidra: dBase_c
// size: 0x68
diff --git a/include/d/d_room.h b/include/d/d_room.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/include/d/d_room.h
diff --git a/include/f/f_base.h b/include/f/f_base.h
index db596901..e47b0508 100644
--- a/include/f/f_base.h
+++ b/include/f/f_base.h
@@ -82,6 +82,7 @@ public:
/* 802e1f90 */ fBase_c *getConnectParent() const;
/* 802e1fb0 */ fBase_c *getConnectChild() const;
/* 802e1fd0 */ fBase_c *getConnectBrNext() const;
+ /* 802e2090 */ bool setConnectChild(fBase_c* child);
/* 802e2420 */ void runCreate();
/* 802e24a0 */ fBase_c *getChildProcessCreateState() const;
/* 802e2510 */ bool checkChildProcessCreateState() const;
diff --git a/include/f/f_list_nd.h b/include/f/f_list_nd.h
index 1961d767..23f4ad14 100644
--- a/include/f/f_list_nd.h
+++ b/include/f/f_list_nd.h
@@ -7,10 +7,10 @@
class fBase_c;
-// Ghidra: Used to be ActorReference
class fLiNdBa_c : public cListNd_c {
public:
+ fLiNdBa_c() : p_owner(nullptr) {}
fLiNdBa_c(fBase_c *owner) : p_owner(owner) {}
inline fLiNdBa_c *getPrev() const {
diff --git a/include/lib/egg/audio/eggAudioArcPlayerMgr.h b/include/lib/egg/audio/eggAudioArcPlayerMgr.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/include/lib/egg/audio/eggAudioArcPlayerMgr.h
diff --git a/include/lib/egg/audio/eggAudioHeapMgr.h b/include/lib/egg/audio/eggAudioHeapMgr.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/include/lib/egg/audio/eggAudioHeapMgr.h
diff --git a/include/lib/egg/audio/eggAudioMgr.h b/include/lib/egg/audio/eggAudioMgr.h
new file mode 100644
index 00000000..e1cb29bf
--- /dev/null
+++ b/include/lib/egg/audio/eggAudioMgr.h
@@ -0,0 +1,25 @@
+#pragma once
+
+#include <lib/egg/egg_types.h>
+#include <lib/egg/core/eggHeap.h>
+
+namespace EGG {
+ class IAudioMgr {
+ public:
+ struct Arg {
+ /* 0x00 */ EGG::Heap* heap;
+ /* 0x04 */ char* soundFileName;
+ /* 0x08 */ int sndThreadPriority;
+ /* 0x0c */ int sndThreadStackSize;
+ /* 0x10 */ int dvdThreadPriority;
+ /* 0x14 */ int dvdThreadStackSize;
+ /* 0x18 */ u32 blocks;
+ /* 0x1c */ u8 field_0x1C;
+ };
+
+ };
+
+ class SimpleAudioMgr : public IAudioMgr, public SoundHeapMgr, public ArcPlayer {
+
+ };
+} \ No newline at end of file
diff --git a/include/lib/egg/egg_types.h b/include/lib/egg/egg_types.h
index 890b1465..68ec4f10 100644
--- a/include/lib/egg/egg_types.h
+++ b/include/lib/egg/egg_types.h
@@ -8,86 +8,86 @@
namespace EGG
{
// gfx
- struct CapTexture;
- struct CpuTexture;
- struct DrawGX;
- struct DrawPathBase;
- struct DrawPathBloom;
- struct DrawPathDOF;
- struct DrawPathHDR;
- struct DrawPathLightMap;
- struct DrawPathShadowVolume;
- struct Fog;
- struct FogManager;
- struct G3DUtility;
- struct GfxEngine;
- struct GXUtility;
- struct IDrawGX;
- struct IScnProc;
- struct IScnProcModel;
- struct LightObj;
- struct LightManager;
- struct LightTexture;
- struct LightTextureManager;
- struct ModelBoundingInfo;
- struct ModelEx;
- struct ModelSnapshot;
- struct PostEffectBase;
- struct PostEffectBlur;
- struct PostEffectBlurGather;
- struct PostEffectHDR;
- struct PostEffectSimple;
- struct ResTIMG;
- struct ScnRenderer;
- struct ScnRootEx;
- struct Screen;
- struct ScreenEffectBase;
- struct ShadowTextureManager;
- struct ShadowTexture;
- struct StateGX;
- struct StateGX;
- struct TextureBuffer;
+ class CapTexture;
+ class CpuTexture;
+ class DrawGX;
+ class DrawPathBase;
+ class DrawPathBloom;
+ class DrawPathDOF;
+ class DrawPathHDR;
+ class DrawPathLightMap;
+ class DrawPathShadowVolume;
+ class Fog;
+ class FogManager;
+ class G3DUtility;
+ class GfxEngine;
+ class GXUtility;
+ class IDrawGX;
+ class IScnProc;
+ class IScnProcModel;
+ class LightObj;
+ class LightManager;
+ class LightTexture;
+ class LightTextureManager;
+ class ModelBoundingInfo;
+ class ModelEx;
+ class ModelSnapshot;
+ class PostEffectBase;
+ class PostEffectBlur;
+ class PostEffectBlurGather;
+ class PostEffectHDR;
+ class PostEffectSimple;
+ class ResTIMG;
+ class ScnRenderer;
+ class ScnRootEx;
+ class Screen;
+ class ScreenEffectBase;
+ class ShadowTextureManager;
+ class ShadowTexture;
+ class StateGX;
+ class StateGX;
+ class TextureBuffer;
// math
- template <typename T> struct Math;
- struct Matrix33f;
- struct Matrix34f;
- struct Matrix44f;
- struct Quatf;
- struct Vector2f;
- struct Vector3f;
+ template <typename T> class Math;
+ class Matrix33f;
+ class Matrix34f;
+ class Matrix44f;
+ class Quatf;
+ class Vector2f;
+ class Vector3f;
// core
- struct Allocator;
- struct Archive;
- struct AsyncDisplay;
- template <typename T> struct IBinary;
- template <typename T> struct TBitFlag;
- struct CntFile;
- struct ColorFader;
- struct Decomp;
- struct Display;
- struct Disposer;
- struct DvdFile;
- struct DvdRipper;
- struct ExpHeap;
- struct Fader;
- struct FrmHeap;
- struct Heap;
- struct Scene;
- struct SceneManager;
- struct Thread;
- struct Video;
- struct Xfb;
- struct XfbManager;
+ class Allocator;
+ class Archive;
+ class AsyncDisplay;
+ template <typename T> class IBinary;
+ template <typename T> class TBitFlag;
+ class CntFile;
+ class ColorFader;
+ class Decomp;
+ class Display;
+ class Disposer;
+ class DvdFile;
+ class DvdRipper;
+ class ExpHeap;
+ class Fader;
+ class FrmHeap;
+ class Heap;
+ class Scene;
+ class SceneManager;
+ class Thread;
+ class Video;
+ class Xfb;
+ class XfbManager;
// audio
- struct ArcPlayer;
- struct IAudioMgr;
- struct SimpleAudioMgr;
- struct SoundHeapMgr;
+ class ArcPlayer;
+ class IAudioMgr;
+ class SimpleAudioMgr;
+ class SoundHeapMgr;
// util
- struct Exception;
- struct MsgRes;
+ class Exception;
+ class MsgRes;
} // namespace EGG
diff --git a/include/lib/nw4r/math/vec.h b/include/lib/nw4r/math/vec.h
new file mode 100644
index 00000000..a94642a2
--- /dev/null
+++ b/include/lib/nw4r/math/vec.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#include <lib/nw4r/nw4r_types.h>
+
+namespace nw4r
+{
+ namespace math
+ {
+ class VEC3 {
+ public:
+ f32 x,y,z;
+ };
+ } // namespace math
+
+} // namespace nw4r
diff --git a/include/lib/nw4r/nw4r_types.h b/include/lib/nw4r/nw4r_types.h
index 9b528a46..aab87ea2 100644
--- a/include/lib/nw4r/nw4r_types.h
+++ b/include/lib/nw4r/nw4r_types.h
@@ -43,12 +43,12 @@ namespace nw4r
namespace math
{
- struct VEC2;
- struct VEC3;
- struct MTX33;
- struct MTX34;
- struct AABB;
- struct FRUSTUM;
+ class VEC2;
+ class VEC3;
+ class MTX33;
+ class MTX34;
+ class AABB;
+ class FRUSTUM;
}
namespace snd
diff --git a/include/lib/nw4r/snd/snd_SoundSystem.h b/include/lib/nw4r/snd/snd_SoundSystem.h
new file mode 100644
index 00000000..b49cd273
--- /dev/null
+++ b/include/lib/nw4r/snd/snd_SoundSystem.h
@@ -0,0 +1,23 @@
+#pragma once
+
+#include <lib/nw4r/nw4r_types.h>
+
+namespace nw4r
+{
+namespace snd
+{
+
+class SoundSystem {
+public:
+ struct SoundSystemParam {
+ int soundThreadPriority;
+ int soundThreadStackSize;
+ int dvdThreadPriority;
+ int dvdThreadStackSize;
+ };
+};
+
+} // namespace snd
+
+} // namespace nw4r
+
diff --git a/include/m/m_angle.h b/include/m/m_angle.h
index 059e34bb..f808a310 100644
--- a/include/m/m_angle.h
+++ b/include/m/m_angle.h
@@ -3,9 +3,16 @@
#include <types.h>
struct mAng {
+ public:
s16 val;
};
class mAng3_c {
+ public:
s16 x,y,z;
+ void set(s16 fx, s16 fy, s16 fz) {
+ x = fx;
+ y = fy;
+ z = fz;
+ }
}; \ No newline at end of file
diff --git a/include/m/m_vec.h b/include/m/m_vec.h
index e69de29b..06979348 100644
--- a/include/m/m_vec.h
+++ b/include/m/m_vec.h
@@ -0,0 +1,85 @@
+#pragma once
+
+#include <types.h>
+#include <lib/rvl/MTX.h>
+#include <lib/nw4r/math/vec.h>
+
+class mVec3_c {
+ public:
+ f32 x;
+ f32 y;
+ f32 z;
+
+ /// @brief Constructs an empty vector.
+ mVec3_c() {}
+
+ /// @brief Constructs a vector from a float array.
+ mVec3_c(const f32 *p) { x = p[0]; y = p[1]; z = p[2]; }
+
+
+ /// @brief Constructs a vector from three floating point values.
+ mVec3_c(f32 fx, f32 fy, f32 fz) { x = fx; y = fy; z = fz; }
+
+ void set(f32 fx, f32 fy, f32 fz) { x = fx; y = fy; z = fz; }
+ mVec3_c& operator=(mVec3_c& r) { x = r.x; y = r.y; z = r.z; return *this;}
+
+ /// @brief Constructs a new vector from an existing vector from the MTX library.
+ mVec3_c(const Vec &v) { x = v.x; y = v.y; z = v.z; }
+
+ /// @brief Constructs a new vector from an existing vector from the nw4r::math library.
+ mVec3_c(const nw4r::math::VEC3 &v) { x = v.x; y = v.y; z = v.z; }
+
+ /// @brief Float cast operator.
+ operator f32*() { return &x; }
+
+ /// @brief Const float cast operator.
+ operator const f32*() const { return &x; }
+
+ /// @brief Vec cast operator.
+ operator Vec*() { return (Vec*)&x; }
+
+ /// @brief Const Vec cast operator.
+ operator const Vec*() const { return (const Vec*)&x; }
+
+ /// @brief nw4r::math::VEC3 cast operator.
+ operator nw4r::math::VEC3*() { return (nw4r::math::VEC3*)&x; }
+
+ /// @brief Const nw4r::math::VEC3 cast operator.
+ operator const nw4r::math::VEC3*() const { return (const nw4r::math::VEC3*)&x; }
+
+ /// @brief Augmented addition operator.
+ mVec3_c &operator+=(const mVec3_c &v) { x += v.x; y += v.y; z += v.z; return *this; }
+
+ /// @brief Augmented subtraction operator.
+ mVec3_c &operator-=(const mVec3_c &v) { x -= v.x; y -= v.y; z -= v.z; return *this; }
+
+ /// @brief Augmented scalar product operator.
+ mVec3_c &operator*=(f32 f) { x *= f; y *= f; z *= f; return *this; }
+
+ /// @brief Augmented scalar division operator.
+ mVec3_c &operator/=(f32 f) { return operator*=(1.0f / f); }
+
+ /// @brief Positive operator.
+ mVec3_c operator+() const { return *this; }
+
+ /// @brief Negative operator.
+ mVec3_c operator-() const { return mVec3_c(-x, -y, -z); }
+
+ /// @brief Addition operator.
+ mVec3_c operator+(const mVec3_c &v) const { return mVec3_c(x + v.x, y + v.y, z + v.z); }
+
+ /// @brief Subtraction operator.
+ mVec3_c operator-(const mVec3_c &v) const { return mVec3_c(x - v.x, y - v.y, z - v.z); }
+
+ /// @brief Scalar product operator.
+ mVec3_c operator*(f32 f) const { return mVec3_c(f * x, f * y, f * z); }
+
+ /// @brief Scalar division operator.
+ mVec3_c operator/(f32 f) const { f32 r = 1.0f / f; return operator*(r); }
+
+ /// @brief Equality operator.
+ bool operator==(const mVec3_c &v) const { return x == v.x && y == v.y && z == v.z; }
+
+ /// @brief Inequality operator.
+ bool operator!=(const mVec3_c &v) const { return x != v.x || y != v.y || z != v.z; }
+};
diff --git a/include/sound_mgrs/sound_audio_manager.h b/include/sound_mgrs/sound_audio_manager.h
new file mode 100644
index 00000000..0bc1e156
--- /dev/null
+++ b/include/sound_mgrs/sound_audio_manager.h
@@ -0,0 +1,11 @@
+#pragma once
+
+#include <types.h>
+#include <lib/egg/audio/eggAudioMgr.h>
+
+
+// Size: 0x6d0
+class SndAudioMgr : public EGG::SimpleAudioMgr {
+public:
+
+}; \ No newline at end of file
diff --git a/include/toBeSorted/room_manager.h b/include/toBeSorted/room_manager.h
new file mode 100644
index 00000000..15c7a2ff
--- /dev/null
+++ b/include/toBeSorted/room_manager.h
@@ -0,0 +1,31 @@
+#pragma once
+
+#include <types.h>
+#include <d/d_base.h>
+
+#define MAX_ROOM_NUMBER 64
+
+class dRoom;
+class RoomTable {
+ RoomTable();
+ virtual ~RoomTable();
+ dRoom* rooms[MAX_ROOM_NUMBER-1];
+};
+
+// OBJ NAME: STAGE
+// Ghidra: RoomManager
+// size: 0x239c
+// vtable: 8052dff4
+class RoomManager : public dBase_c {
+public:
+ /* 0068 */ char field_0x68[0x7C - 0x68];
+ /* 007C */ RoomTable rooms;
+ /* 017c */ char fader[0x1a0 - 0x17c]; // size unk
+ /* 01a0 */ char mapRelated[0x39c - 0x1a0]; // size unk
+ /* 039c */ u32 loaded_entities[2047];
+ /* 2398 */ u8 curr_room_id;
+public:
+ /* 80575760 */ static RoomManager* m_Instance;
+public:
+ /* 801b42b0 */ static dBase_c* getRoom(int roomid);
+}; \ No newline at end of file
diff --git a/include/toBeSorted/save_file.h b/include/toBeSorted/save_file.h
index 5aff34cd..a7c40e8b 100644
--- a/include/toBeSorted/save_file.h
+++ b/include/toBeSorted/save_file.h
@@ -85,49 +85,27 @@ public:
// it could also potentially be a static function
// ----------------------------------------------------------
public:
- // 0x800099b0
- u16* getStoryFlags0();
- // 0x800099c0
- u16* getStoryFlags1();
- // 0x800099d0
- u16* getItemFlags0();
- // 0x800099e0
- u16* getItemFlags1();
- // 0x800099F0
- u16* getDungeonFlags0();
- // 0x80009A00
- u16* getDungeonFlags1();
- // 0x80009A10
- u16* getSceneFlags0();
- // 0x80009A20
- u16* getSceneFlags1();
- // 0x80009A30
- u16* getTboxFlags0();
- // 0x80009A40
- u16* getTboxFlags1();
- // 0x80009A50
- u16* getTempFlags0();
- // 0x80009A60
- u16* getTempFlags1();
- // 0x80009A70
- u16* getZoneFlags0();
- // 0x80009A80
- u16* getZoneFlags1();
- // 0x80009A90
- u16* getUnkFlags0();
- // 0x80009AA0
- u16* getUnkFlags1();
- // 0x80009AB0
- s16* getPlayerName(); // UTF16-BE
- // 0x80009AC0
- void setAreaT1(char* name);
- // 0x80009BE0
- s8* getAreaT1();
- // 0x80009BF0
- void setAreaT2(char* name);
- // lbl_80009D10
- s8* getAreaT2();
- // lbl_80009D20
- s8* getAreaT3();
+ /* 800099b0 */ u16* getStoryFlags0();
+ /* 800099c0 */ u16* getStoryFlags1();
+ /* 800099d0 */ u16* getItemFlags0();
+ /* 800099e0 */ u16* getItemFlags1();
+ /* 800099F0 */ u16* getDungeonFlags0();
+ /* 80009A00 */ u16* getDungeonFlags1();
+ /* 80009A10 */ u16* getSceneFlags0();
+ /* 80009A20 */ u16* getSceneFlags1();
+ /* 80009A30 */ u16* getTboxFlags0();
+ /* 80009A40 */ u16* getTboxFlags1();
+ /* 80009A50 */ u16* getTempFlags0();
+ /* 80009A60 */ u16* getTempFlags1();
+ /* 80009A70 */ u16* getZoneFlags0();
+ /* 80009A80 */ u16* getZoneFlags1();
+ /* 80009A90 */ u16* getUnkFlags0();
+ /* 80009AA0 */ u16* getUnkFlags1();
+ /* 80009AB0 */ s16* getPlayerName(); // UTF16-BE
+ /* 80009AC0 */ void setAreaT1(char* name);
+ /* 80009BE0 */ s8* getAreaT1();
+ /* 80009BF0 */ void setAreaT2(char* name);
+ /* 80009D10 */ s8* getAreaT2();
+ /* 80009D20 */ s8* getAreaT3();
}; \ No newline at end of file
diff --git a/include/types.h b/include/types.h
index 3f15f0a4..0b39a176 100644
--- a/include/types.h
+++ b/include/types.h
@@ -1,5 +1,8 @@
#pragma once
#define TYPES_H
+
+#include <lib/rvl/macros.h>
+
typedef signed char s8;
typedef signed short s16;
typedef signed int s32;
@@ -32,7 +35,17 @@ typedef double f64;
typedef volatile f32 vf32;
typedef volatile f64 vf64;
-#define nullptr 0
+// Necesary for CW
+#if __cplusplus < 201103L && !defined(_WIN32)
+#define override
+#define noexcept
+#define nullptr NULL
+#endif
+
+#ifndef NULL
+#define NULL 0
+#endif
+#define nullptr NULL
// taken from mkw
#ifdef __cplusplus