summaryrefslogtreecommitdiff
path: root/include/g3dhax.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/g3dhax.h')
-rw-r--r--include/g3dhax.h268
1 files changed, 160 insertions, 108 deletions
diff --git a/include/g3dhax.h b/include/g3dhax.h
index c3aeaef..ac5ba80 100644
--- a/include/g3dhax.h
+++ b/include/g3dhax.h
@@ -1,159 +1,209 @@
+#ifndef __KAMEK_G3DHAX_H
+#define __KAMEK_G3DHAX_H
+
// nw4r::g3d wrapper
namespace nw4r {
-namespace g3d {
+ namespace g3d {
-class ResName {
-public:
- const char *name;
+ class ResName {
+ public:
+ const char *name;
+
+ ResName(const char *p = NULL) {
+ name = p;
+ }
+ };
- ResName(const char *p = NULL) {
- name = p;
- }
-};
+ class ResMdl {
+ public:
+ void * /*ResMdlData*/ data;
-class ResFile {
-public:
- void * /*ResFileData*/ data;
+ ResMdl(void *p = NULL) {
+ data = p;
+ }
- ResFile(void *p = NULL) {
- data = p;
- }
+ void * /*ResMat*/ GetResMat(const char *str) const;
+ };
- void Init();
- bool CheckRevision() const;
-
- void * /*ResMdl*/ GetResMdl(const char *str) const;
- void * /*ResPltt*/ GetResPltt(const ResName n) const;
- void * /*ResTex*/ GetResTex(const char *str) const;
- void * /*ResTex*/ GetResTex(const ResName n) const;
- void * /*ResTex*/ GetResTex(u32 idx) const;
- void * /*ResAnmChr*/ GetResAnmChr(const char *str) const;
- void * /*ResAnmVis*/ GetResAnmVis(const char *str) const;
- void * /*ResAnmClr*/ GetResAnmClr(const char *str) const;
- void * /*ResAnmTexPat*/ GetResAnmTexPat(const char *str) const;
- void * /*ResAnmTexSrt*/ GetResAnmTexSrt(const char *str) const;
- void * /*ResAnmScn*/ GetResAnmScn(const char *str) const;
-
- bool Bind(ResFile rhs);
-};
+ class ResFile {
+ public:
+ void * /*ResFileData*/ data;
-void *__ScnMdlSimple__Construct(
- void * /*MEMAllocator*/ pHeap,
- u32 *pSize,
- void * /*ResMdl*/ mdl,
- int nView = 1);
+ ResFile(void *p = NULL) {
+ data = p;
+ }
+ void Init();
+ bool CheckRevision() const;
-void *__ScnMdl__Construct(
- void * /*MEMAllocator*/ pHeap,
- u32 *pSize,
- void * /*ResMdl*/ mdl,
- u32 bufferOption,
- int nView = 1);
+ ResMdl GetResMdl(const char *str) const;
+ void * /*ResPltt*/ GetResPltt(const ResName n) const;
+ void * /*ResTex*/ GetResTex(const char *str) const;
+ void * /*ResTex*/ GetResTex(const ResName n) const;
+ void * /*ResTex*/ GetResTex(u32 idx) const;
+ void * /*ResAnmChr*/ GetResAnmChr(const char *str) const;
+ void * /*ResAnmVis*/ GetResAnmVis(const char *str) const;
+ void * /*ResAnmClr*/ GetResAnmClr(const char *str) const;
+ void * /*ResAnmTexPat*/ GetResAnmTexPat(const char *str) const;
+ void * /*ResAnmTexSrt*/ GetResAnmTexSrt(const char *str) const;
+ void * /*ResAnmScn*/ GetResAnmScn(const char *str) const;
+ bool Bind(ResFile rhs);
+ };
-void *__AnmObjChrRes__Construct(
- void * /*MEMAllocator*/ pHeap,
- u32 *pSize,
- void * /*ResAnmChr*/ resAnm,
- void * /*ResMdl*/ resMdl,
- bool bHasCache);
+ void *__ScnMdlSimple__Construct(
+ void * /*MEMAllocator*/ pHeap,
+ u32 *pSize,
+ void * /*ResMdl*/ mdl,
+ int nView = 1);
-void *__AnmObjVisRes__Construct(
- void * /*MEMAllocator*/ pHeap,
- u32 *pSize,
- void * /*ResAnmVis*/ resAnm,
- void * /*ResMdl*/ resMdl);
+ void *__ScnMdl__Construct(
+ void * /*MEMAllocator*/ pHeap,
+ u32 *pSize,
+ void * /*ResMdl*/ mdl,
+ u32 bufferOption,
+ int nView = 1);
-void *__AnmObjTexPatRes__Construct(
- void * /*MEMAllocator*/ pHeap,
- u32 *pSize,
- void * /*ResAnmTexPat*/ resAnm,
- void * /*ResMdl*/ resMdl,
- bool bHasCache);
+ void *__AnmObjChrRes__Construct(
+ void * /*MEMAllocator*/ pHeap,
+ u32 *pSize,
+ void * /*ResAnmChr*/ resAnm,
+ void * /*ResMdl*/ resMdl,
+ bool bHasCache);
-void *__AnmObjTexSrtRes__Construct(
- void * /*MEMAllocator*/ pHeap,
- u32 *pSize,
- void * /*ResAnmTexSrt*/ resAnm,
- void * /*ResMdl*/ resMdl,
- bool bHasCache);
+ void *__AnmObjVisRes__Construct(
+ void * /*MEMAllocator*/ pHeap,
+ u32 *pSize,
+ void * /*ResAnmVis*/ resAnm,
+ void * /*ResMdl*/ resMdl);
-void *__AnmObjMatClrRes__Construct(
- void * /*MEMAllocator*/ pHeap,
- u32 *pSize,
- void * /*ResAnmMatClr*/ resAnm,
- void * /*ResMdl*/ resMdl,
- bool bHasCache);
+ void *__AnmObjTexPatRes__Construct(
+ void * /*MEMAllocator*/ pHeap,
+ u32 *pSize,
+ void * /*ResAnmTexPat*/ resAnm,
+ void * /*ResMdl*/ resMdl,
+ bool bHasCache);
-void *__AnmObjShpRes__Construct(
- void * /*MEMAllocator*/ pHeap,
- u32 *pSize,
- void * /*ResAnmShp*/ resAnm,
- void * /*ResMdl*/ resMdl,
- bool bHasCache);
+ void *__AnmObjTexSrtRes__Construct(
+ void * /*MEMAllocator*/ pHeap,
+ u32 *pSize,
+ void * /*ResAnmTexSrt*/ resAnm,
+ void * /*ResMdl*/ resMdl,
+ bool bHasCache);
+ void *__AnmObjMatClrRes__Construct(
+ void * /*MEMAllocator*/ pHeap,
+ u32 *pSize,
+ void * /*ResAnmMatClr*/ resAnm,
+ void * /*ResMdl*/ resMdl,
+ bool bHasCache);
-bool InsertIntoScene(void *scnObj); // 80164F90
-extern void *g3dMemAllocator; // 8042A6A8
+ void *__AnmObjShpRes__Construct(
+ void * /*MEMAllocator*/ pHeap,
+ u32 *pSize,
+ void * /*ResAnmShp*/ resAnm,
+ void * /*ResMdl*/ resMdl,
+ bool bHasCache);
-inline void *ConstructScnMdlSimple(void *mdl, int nView = 1) {
- return __ScnMdlSimple__Construct(g3dMemAllocator, 0, mdl, nView);
-}
-inline void *ConstructScnMdl(void *mdl, u32 bufferOption, int nView = 1) {
- return __ScnMdl__Construct(g3dMemAllocator, 0, mdl, bufferOption, nView);
-}
+ bool InsertIntoScene(void *scnObj); // 80164F90
+ extern void *g3dMemAllocator; // 8042A6A8
-}
+ inline void *ConstructScnMdlSimple(void *mdl, int nView = 1) {
+ return __ScnMdlSimple__Construct(g3dMemAllocator, 0, mdl, nView);
+ }
+
+ inline void *ConstructScnMdl(void *mdl, u32 bufferOption, int nView = 1) {
+ return __ScnMdl__Construct(g3dMemAllocator, 0, mdl, bufferOption, nView);
+ }
+
+
+
+ }
}
class mHeapAllocator_c { // Actually that weird subclass. INCOMPLETE!!
-public:
- char data1[0x10];
+ public:
+ char data1[0x10];
- mHeapAllocator_c();
- virtual ~mHeapAllocator_c();
- virtual void *alloc(u32 size);
- virtual void free(void *block);
+ mHeapAllocator_c();
+ virtual ~mHeapAllocator_c();
+ virtual void *alloc(u32 size);
+ virtual void free(void *block);
- bool link(s32 size, void *heap, const char *name, int align);
- u32 unlink();
+ bool link(s32 size, void *heap, const char *name, int align);
+ u32 unlink();
- char data2[8];
+ char data2[8];
};
namespace m3d {
+ // random, just dumped it here because I dunno where else
+ void DisableIndirectTexturing();
+ void InitTexObjWithResTex(GXTexObj *obj, /* ResTex */ void *resTex, GXTexWrapMode wrapS, GXTexWrapMode wrapT, GXTexFilter minFilt, GXTexFilter magFilt);
+
+ // I need to do scnLeaf_c some time...
+
+ class proc_c {
+ public:
+ proc_c();
+ virtual ~proc_c();
+
+ void setup(void *allocator = 0, u32 *size = 0);
+ virtual int returnUnknown();
+ virtual void free();
+ virtual bool scheduleForDrawing();
+ virtual void drawOpa();
+ virtual void drawXlu();
+
+ void setScnObjOption(ulong, ulong);
+ bool getScnObjOption(ulong, ulong*);
+
+ void setScale(float x, float y, float z);
+ void setScale(Vec vec);
+
+ void setDrawMatrix(Mtx *mtx);
+ void getLocalMatrix(Mtx *mtx);
+ void getViewMatrix(Mtx *mtx);
+
+ void calcWorld(bool);
+ void calcView(bool);
+
+ void setDrawPriorities(int opa, int xlu);
+
+ void *scnObj;
+ };
+
class mdl_c {
- public:
- mdl_c();
- virtual ~mdl_c();
+ public:
+ mdl_c();
+ virtual ~mdl_c();
- virtual void _vf0C();
- virtual void _vf10();
- virtual bool scheduleForDrawing();
- virtual void bindAnim(void *anim, float boo);
- virtual void _vf1C();
+ virtual void _vf0C();
+ virtual void _vf10();
+ virtual bool scheduleForDrawing();
+ virtual void bindAnim(void *anim, float boo);
+ virtual void _vf1C();
- bool setup(void *model, void *allocator, u32 bufferOption, int nView, u32 *size);
- void oneSetupType();
- void sub_80064BF0();
+ bool setup(nw4r::g3d::ResMdl model, void *allocator, u32 bufferOption, int nView, u32 *size);
+ void oneSetupType();
+ void sub_80064BF0();
- void setDrawMatrix(const Mtx matrix);
+ void setDrawMatrix(const Mtx matrix);
- char data[0x3C];
+ char data[0x3C];
};
};
@@ -166,3 +216,5 @@ void SetupTextures_Enemy(m3d::mdl_c *model, int sceneID); // 800B4170
void SetupTextures_MapObj(m3d::mdl_c *model, int sceneID); // 800B42B0
void SetupTextures_Item(m3d::mdl_c *model, int sceneID); // 800B43D0
+#endif
+