work on dAcObjBase_c (ActorObjectBase)

This commit is contained in:
elijah-thomas774
2023-08-10 09:51:56 -04:00
parent 7b2677ff68
commit a547dc7997
11 changed files with 402 additions and 5 deletions
+11
View File
@@ -26,4 +26,15 @@ struct ObjInfoPtr {
/* 0x08 */ u16 fiTextEntryId;
/* 0x0A */ u8 unk_0xA;
/* 0x0B */ u8 subtype;
};
class fBase_c;
struct ActorReference {
ActorReference* prev;
ActorReference* next;
fBase_c* link;
};
class UnkCollider {
};
+1 -1
View File
@@ -5,6 +5,6 @@
// Ghidra: ActorEnemyBase
// size:
// non-official name
class dAcEnBase_c : public dAcOBase_c {
class dAcEnBase_c : public dAcObjBase_c {
};
+1 -1
View File
@@ -7,6 +7,6 @@
// Ghidra: ActorNpcBase
// size: 0x6e4
// official name
class dAcNpc_c : public dAcOBase_c {
class dAcNpc_c : public dAcObjBase_c {
};
+78 -1
View File
@@ -1,10 +1,87 @@
#pragma once
#include <d/a/d_a_base.h>
#include <m/types_m.h>
// Ghidra: ActorObjectBase
// size: 0x330
// vtable: 0x805015b8
// non-official name
class dAcOBase_c : public dAcBase_c {
class dAcObjBase_c : public dAcBase_c {
public:
// Data Members
public:
// could be their own thing?
/* 8002de40 */ static void* getOarcFile(char* oarcName, char* fileName);
/* 8002de60 */ static void* getOarcSubEntry(char* oarcName, char* fileName);
/* 8002de80 */ static void* getOarcResFile(char* oarcName);
/* 8002de90 */ static void* getOarcModelFile(char* oarcName);
/* 8002dea0 */ static void* getOarcZev(char* oarcName);
/* 8002deb0 */ static void* getOarcDZB(char* dzbName);
/* 8002ded0 */ static void* getOarcPLC(char* plcName);
public:
/* 8002def0 */ dAcObjBase_c();
/* 8002e050 */ virtual ~dAcObjBase_c();
/* 8002e0e0 */ virtual int preCreate();
/* 8002e150 */ virtual int preExecute();
/* 8002e2a0 */ virtual void postExecute();
/* 8002e330 */ virtual int preDraw();
/* 8002e5b0 */ virtual void* getObjectListEntry();
/* 8002e5c0 */ virtual bool restorePosRotFromCopy();
/* 8002ea10 */ virtual bool canBeLinkedToWoodTag();
/* 8002ea20 */ virtual bool drop();
public:
/* 8002e630 */ static dAcObjBase_c create( \
fProfile::PROFILE_NAME_e actorId, u32 roomId, u32 params1, \
Vec3f* pos, Vec3s* rot, Vec3f* scale, u32 params2 );
/* 8002e6d0 */ static dAcObjBase_c create( \
char* name, u32 roomId, u32 params1, \
Vec3f* pos, Vec3s* rot, Vec3f* scale, \
u32 params2, u16 id, u8 viewclipId);
/* 8002e770 */ static dAcObjBase_c* findObject(fProfile::PROFILE_NAME_e actorId,\
ActorReference* refList, dAcObjBase_c* parent);
/* 8002e7f0 */ static dAcObjBase_c* getNextObject(ActorReference* ref, dAcObjBase_c* parent);
/* 8002e850 */ bool isPlayer();
/* 8002e870 */ void calcVelocity(Vec3f& pos, f32 speed);
/* 8002e8e0 */ void calcVelocity();
/* 8002e9a0 */ void updateMatrix();
/* 8002ea00 */ void setDefaultCullDistance();
/* 8002ea30 */ void fn_8002EA30(f32,f32,f32,f32,f32, void*);
/* 8002ea60 */ void fn_8002EA60(void*);
/* 8002eb30 */ void fn_8002EB30(void*);
/* 8002eb90 */ void putInODesert(f32 depth, Vec3f* position);
// Disabling makes Items and Link Disappear
/* 8002ec70 */ void drawModelType1();
// Disabling make Lava and other objects Disappear
/* 8002ecd0 */ void drawModel2();
/* 8002ed20 */ void fn_8002ed20();
/* 8002edb0 */ void fn_8002edb0();
/* 8002ee40 */ void drawShadow();
/* 8002ef40 */ void createChildAttached( \
fProfile::PROFILE_NAME_e actorId, u32 params1, \
Vec3f* pos, Vec3s* rot, Vec3f* scale, u32 params2, \
u32 roomId );
/* 8002ef40 */ void createChildNonAttached( \
fProfile::PROFILE_NAME_e actorId, u32 params1, \
Vec3f* pos, Vec3s* rot, Vec3f* scale, u32 params2, \
u32 roomId );
/* 8002efa0 */ void fn_8002efa0();
/* 8002eff0 */ bool fn_8002eff0(f32*, s16*, UnkCollider*, f32*, f32*);
/* 8002f190 */ void createChildAttached2( \
fProfile::PROFILE_NAME_e actorId, u32 params1, \
Vec3f* pos, Vec3s* rot, Vec3f* scale, u32 params2, \
u32 roomId );
// These may not belong here
/* 8002f1c0 */ static dAcBase_c createActorUnkGroup3( \
fProfile::PROFILE_NAME_e actorId, u32 roomId, \
u32 params1, Vec3f* pos, Vec3s* rot, Vec3f* scale, \
u32 params2);
/* 8002f260 */ static dAcBase_c createActorUnkGroup3( \
char* name, u32 roomId, u32 params1, \
Vec3f* pos, Vec3s* rot, Vec3f* scale, \
u32 params2, u16 id, u8 viewclipId);
};
+1 -1
View File
@@ -5,6 +5,6 @@
// Ghidra: AcItem
// Size: 0xd68
// official name
class dAcItem_c : public dAcOBase_c {
class dAcItem_c : public dAcObjBase_c {
};
+93
View File
@@ -0,0 +1,93 @@
#pragma once
#include <types.h>
// Types pulled from ogws
// May need to remove/add later
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;
// math
template <typename T> struct Math;
struct Matrix33f;
struct Matrix34f;
struct Matrix44f;
struct Quatf;
struct Vector2f;
struct 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;
// audio
struct ArcPlayer;
struct IAudioMgr;
struct SimpleAudioMgr;
struct SoundHeapMgr;
// util
struct Exception;
struct MsgRes;
} // namespace EGG
+18
View File
@@ -0,0 +1,18 @@
#pragma once
#include <types.h>
namespace nw4r {
namespace g3d {
struct ResFileData {
};
struct ResFile
{
/* data */
};
};
};
+197
View File
@@ -0,0 +1,197 @@
#pragma once
#include <types.h>
namespace nw4r
{
namespace ut
{
template <typename T> struct TextWriterBase;
template <typename T> struct TagProcessorBase;
struct Color;
struct FileStream;
namespace detail
{
struct RuntimeTypeInfo;
}
}
namespace ef
{
struct DrawOrder;
struct DrawInfo;
struct DrawStrategy;
struct DrawStrategyImpl;
struct DrawStrategyBuilder;
struct Effect;
struct EffectSystem;
struct EffectProject;
struct Emitter;
struct EmitterDrawSetting;
struct EmitFormBuilder;
struct ResEmitter;
struct EmitterResource;
struct EmitterForm;
struct EmitterInheritSetting;
struct Particle;
struct ParticleManager;
struct MemoryManager;
struct MemoryManagerBase;
}
namespace math
{
struct VEC2;
struct VEC3;
struct MTX33;
struct MTX34;
struct AABB;
struct FRUSTUM;
}
namespace snd
{
struct FxBase;
struct SoundPlayer;
struct SoundHandle;
struct SeqSoundHandle;
struct SoundArchive;
struct SoundArchivePlayer;
struct Sound3DActor;
struct Sound3DListener;
struct Sound3DManager;
struct SoundHandle;
struct StrmSoundHandle;
struct WaveSoundHandle;
namespace detail
{
struct BasicSound;
struct BasicPlayer;
struct ChannelManager;
struct SeqSound;
struct SeqPlayer;
struct MmlParser;
struct MmlSeqTrack;
struct SeqTrack;
struct SeqTrackAllocator;
template <typename T> struct SoundInstanceManager;
struct StrmBufferPool;
struct StrmSound;
struct NoteOnCallback;
struct PlayerHeap;
struct SoundArchiveFileReader;
struct SoundThread;
struct WaveSound;
struct StrmPlayer;
struct WsdPlayer;
}
}
namespace g3d
{
struct AnmObjVis;
struct AnmObjVisNode;
struct AnmObjVisOR;
struct AnmObjVisRes;
struct AnmObj;
struct AnmObjChr;
struct FuncObjCalcWorld;
struct AnmScn;
struct AnmScnRes;
struct CameraAnmResult;
struct Draw1Mat1ShpSwap;
struct DrawResMdlReplacement;
struct FogAnmResult;
struct ResFile;
struct ResMdl;
struct ResPltt;
struct ResTex;
struct ResTexSrt;
struct ResMat;
struct ResTexPlttInfo;
struct ResShp;
struct ResFog;
struct ResAnmChr;
struct ResAnmVis;
struct ResAnmClr;
struct ResAnmTexPat;
struct ResAnmTexSrt;
struct ResAnmShp;
struct ResAnmScn;
struct ResAnmFog;
struct ResAnmCamera;
struct ResVtxPos;
struct ResVtxNrm;
struct ResVtxClr;
struct ResVtxTexCoord;
struct ClrAnmResult;
struct TexPatAnmResult;
struct TexSrtAnmResult;
struct ScnMdl1Mat1Shp;
struct TexSrt;
struct TexSrtTypedef;
struct LightObj;
struct LightAnmResult;
struct LightSet;
struct LightSetting;
struct LightSetData;
struct AmbLightObj;
struct AmbLightAnmResult;
struct Fog;
struct ScnRoot;
struct ScnProc;
struct ScnLeaf;
struct ScnObj;
struct ScnRfl;
struct ScnGroup;
struct ScnMdlSimple;
struct ScnMdl;
struct IScnObjGather;
struct IScnObjCallback;
namespace G3DState
{
struct IndMtxOp;
}
}
namespace lyt
{
struct Size;
namespace detail
{
struct PaneBase;
struct TexCoordAry;
}
namespace res
{
struct Group;
struct Pane;
struct Bounding;
struct AnimationBlock;
struct BinaryFileHeader;
}
struct Group;
struct GroupContainer;
struct Pane;
struct DrawInfo;
struct AnimResource;
struct AnimTransform;
struct AnimTransformBasic;
struct AnimationLink;
struct ResourceAccessor;
struct ArcResourceAccessor;
struct FontRefLink;
struct Material;
struct Layout;
struct Bounding;
struct ResBlockSet;
struct TexMap;
}
}
+1 -1
View File
@@ -56,7 +56,7 @@ int dAcBase_c::initAllocatorWork1Heap(int size, char* name, int align) {
initAllocator(size, name, dHeap::work1Heap, align);
}
extern "C" int fn_802EE510(mAllocator*, int size, EGG::Heap* heap, char* name, int align, int unk);
extern "C" int fn_802EE510(mAllocator_c*, int size, EGG::Heap* heap, char* name, int align, int unk);
/* 8002c720 */
int dAcBase_c::initAllocator(int size, char* name, EGG::Heap* heap, int align) {
+1
View File
@@ -0,0 +1 @@
#include <d/a/obj/d_a_obj_base.h>