kirby64/include/D_8004A7C4.h

176 lines
3.0 KiB
C
Raw Normal View History

#ifndef D_8004A7C4_H
#define D_8004A7C4_H
2020-08-30 02:31:51 +00:00
#include "types.h"
2021-01-06 02:56:39 +00:00
#include "ovl0/ovl0_2_5.h"
2020-08-17 22:47:10 +00:00
2021-01-26 01:49:55 +00:00
// same as D_800E1B50?
struct UnkStruct8004A7C4_3C_80 {
2021-06-06 04:22:06 +00:00
struct UnkStruct8004A7C4_3C_80 *unk0;
2021-01-26 01:49:55 +00:00
u32 unk4;
struct UnkStruct8004A7C4_3C_80 *unk8;
2021-01-26 01:49:55 +00:00
u32 unkC;
u32 unk10;
u32 unk14;
u32 unk18;
u32 unk1C;
u32 unk20;
u32 unk24;
u32 unk28;
u32 unk2C;
u32 unk30;
u32 unk34;
u32 unk38;
u32 unk3C;
u32 unk40;
u32 unk44;
u32 unk48;
u32 unk4C;
u8 unk50;
u8 unk51;
u8 unk52;
u8 unk53;
2021-01-26 01:49:55 +00:00
u32 unk54;
u8 unk58;
u8 unk59;
u8 unk5A;
u8 unk5B;
2021-01-26 01:49:55 +00:00
u32 unk5C;
u32 unk60;
u32 unk64;
u32 unk68;
u32 unk6C;
u32 unk70;
u32 unk74;
u32 unk78;
u32 unk7C;
u32 unk80;
u32 unk84;
2021-06-06 04:22:06 +00:00
f32 unk88;
2021-01-26 01:49:55 +00:00
u32 unk8C;
u32 unk90;
u32 unk94;
f32 unk98;
u32 unk9C;
f32 unkA0;
};
2022-12-29 23:39:22 +00:00
struct UnkStruct8004A7C4_3C_10 {
u8 pad[0x30];
// vec?
Vector unk30;
2022-12-29 23:39:22 +00:00
};
2021-01-04 20:09:06 +00:00
assets.o tracking (#56) * models migrated to new build system * bank 0 and 1 images * bank 0 converted * update PR action * dont run level settings converter anymore * update gitignore; actually add asset makefiles (hopefully this passes CI) * actually add tools * bank1 tabled * cleanup * pass CI now * bank2 image * bank 2 anim * bank2 tabled * bank 3 tabled * ldscript generator works; bank4 tabled * bank5 tabled * bank6 tabled * all banks tabled * asset linkscripts are fully transient now * test empty commit * backup * did you know that um... if you do file: dep that $< will eval to dep? * transient filetable+headers; game is playable but doesnt match * assets OK besides objcopy * OK * actually commit tools wowie * hopefully no more assets memes * remove rogue O file that was destroying CI * the first .png file * more bank0 png's * add tools to make future texture PR better * n64graphics mod to export kirby64 backgrounds * _actually_ add backgrounds to build system * simplify asset image build rule * n64graphics background heuristic in place for all formats * bank0 backgrounds reintroduced * revert ci8 background because I don't have n64graphics ci * bank 0 1 and 2 new I4 textures matched * filetable linter; banks 0-4 i4 images matched * bank 5 too * images all matched; next is to revert all backgrounds that report incorrect sizes * assets makefile converted to use ld -r -b; runs much faster * i4 textures reverted * some ia4 textures * some ia8 and i8 images * use single static pattern for backgrounds * significantly simplify o file generation in asset makefile * add the two labeled rgba16 images * support for relatively arbitrary paths for images/probably others * remove two now-useless bin container tools * upgrade n64graphics to 0.4 * new asset extractor implemented (full game doesnt build) * start separating assets json * rgb2c submodule; img_getprop (almost done) * binaries in the repo fail * it wasnt a binary it was the folder i was using... * add the tool for real * move folder * game builds again; doesnt match nor boot * OK * assets skip palettes now; func_8000BE90 * renamed some lbvector functions * some lbreflect matches * more HS64 work including initial Camera struct doc * more camera struct; renamed AObj; OMMtx initial doc * lots of renamings Co-authored-by: Faris Awan <farisawan.2000@gmail.com>
2022-04-07 21:41:21 +00:00
// SOME chunk of the beginning of the struct is a union
2020-08-30 02:31:51 +00:00
struct UnkStruct8004A7C4_3C {
2021-01-04 20:09:06 +00:00
// u32 unk0;
// u32 unk4;
// u32 unk8;
Vector unk0;
2020-08-30 02:31:51 +00:00
u32 unkC;
2022-12-29 23:39:22 +00:00
struct UnkStruct8004A7C4_3C_10 *unk10;
2020-08-30 02:31:51 +00:00
u32 unk14;
u32 unk18;
2021-06-06 02:46:11 +00:00
// pos
Vector posVec;
2020-08-30 02:31:51 +00:00
u32 unk28;
u32 unk2C;
2021-06-06 02:46:11 +00:00
// angle
Vector angleVec;
2020-08-30 02:31:51 +00:00
2021-01-04 20:09:06 +00:00
// TODO: how is this actually structured?
// some code thinks unk3C is the vector while others
// think unk40 is
f32 unk3C;
2021-06-06 02:46:11 +00:00
// scale
Vector scaleVec;
2020-08-30 02:31:51 +00:00
u32 unk4C;
2020-10-29 02:14:41 +00:00
u32 unk50[4];
u32 unk60[4];
2021-01-27 23:27:46 +00:00
s32 unk70;
s32 unk74;
f32 unk78;
s32 unk7C;
2021-01-26 01:49:55 +00:00
struct UnkStruct8004A7C4_3C_80 *unk80;
2020-10-29 02:14:41 +00:00
u32 unk84;
2020-08-30 02:31:51 +00:00
};
2021-01-04 20:09:06 +00:00
// only difference is that unk3C is a vector now
struct UnkStruct8004A7C4_3C_duplicate {
// u32 unk0;
// u32 unk4;
// u32 unk8;
Vector unk0;
u32 unkC;
2022-12-29 23:39:22 +00:00
struct UnkStruct8004A7C4_3C_10 *unk10;
2021-01-04 20:09:06 +00:00
u32 unk14;
u32 unk18;
Vector unk1C;
u32 unk28;
u32 unk2C;
Vector unk30;
Vector unk3C;
f32 unk40;
u32 unk4C;
u32 unk50[4];
u32 unk60[4];
u32 unk70[4];
u32 unk80;
u32 unk84;
};
// GObj?
2022-12-29 23:39:22 +00:00
typedef struct GObj {
assets.o tracking (#56) * models migrated to new build system * bank 0 and 1 images * bank 0 converted * update PR action * dont run level settings converter anymore * update gitignore; actually add asset makefiles (hopefully this passes CI) * actually add tools * bank1 tabled * cleanup * pass CI now * bank2 image * bank 2 anim * bank2 tabled * bank 3 tabled * ldscript generator works; bank4 tabled * bank5 tabled * bank6 tabled * all banks tabled * asset linkscripts are fully transient now * test empty commit * backup * did you know that um... if you do file: dep that $< will eval to dep? * transient filetable+headers; game is playable but doesnt match * assets OK besides objcopy * OK * actually commit tools wowie * hopefully no more assets memes * remove rogue O file that was destroying CI * the first .png file * more bank0 png's * add tools to make future texture PR better * n64graphics mod to export kirby64 backgrounds * _actually_ add backgrounds to build system * simplify asset image build rule * n64graphics background heuristic in place for all formats * bank0 backgrounds reintroduced * revert ci8 background because I don't have n64graphics ci * bank 0 1 and 2 new I4 textures matched * filetable linter; banks 0-4 i4 images matched * bank 5 too * images all matched; next is to revert all backgrounds that report incorrect sizes * assets makefile converted to use ld -r -b; runs much faster * i4 textures reverted * some ia4 textures * some ia8 and i8 images * use single static pattern for backgrounds * significantly simplify o file generation in asset makefile * add the two labeled rgba16 images * support for relatively arbitrary paths for images/probably others * remove two now-useless bin container tools * upgrade n64graphics to 0.4 * new asset extractor implemented (full game doesnt build) * start separating assets json * rgb2c submodule; img_getprop (almost done) * binaries in the repo fail * it wasnt a binary it was the folder i was using... * add the tool for real * move folder * game builds again; doesnt match nor boot * OK * assets skip palettes now; func_8000BE90 * renamed some lbvector functions * some lbreflect matches * more HS64 work including initial Camera struct doc * more camera struct; renamed AObj; OMMtx initial doc * lots of renamings Co-authored-by: Faris Awan <farisawan.2000@gmail.com>
2022-04-07 21:41:21 +00:00
/* 0x00 */ u32 objId;
/* 0x04 */ struct GObj* unk4;
/* 0x08 */ struct GObj* unk8;
/* 0x0C */ u8 link;
// todo: find the array this indexes
assets.o tracking (#56) * models migrated to new build system * bank 0 and 1 images * bank 0 converted * update PR action * dont run level settings converter anymore * update gitignore; actually add asset makefiles (hopefully this passes CI) * actually add tools * bank1 tabled * cleanup * pass CI now * bank2 image * bank 2 anim * bank2 tabled * bank 3 tabled * ldscript generator works; bank4 tabled * bank5 tabled * bank6 tabled * all banks tabled * asset linkscripts are fully transient now * test empty commit * backup * did you know that um... if you do file: dep that $< will eval to dep? * transient filetable+headers; game is playable but doesnt match * assets OK besides objcopy * OK * actually commit tools wowie * hopefully no more assets memes * remove rogue O file that was destroying CI * the first .png file * more bank0 png's * add tools to make future texture PR better * n64graphics mod to export kirby64 backgrounds * _actually_ add backgrounds to build system * simplify asset image build rule * n64graphics background heuristic in place for all formats * bank0 backgrounds reintroduced * revert ci8 background because I don't have n64graphics ci * bank 0 1 and 2 new I4 textures matched * filetable linter; banks 0-4 i4 images matched * bank 5 too * images all matched; next is to revert all backgrounds that report incorrect sizes * assets makefile converted to use ld -r -b; runs much faster * i4 textures reverted * some ia4 textures * some ia8 and i8 images * use single static pattern for backgrounds * significantly simplify o file generation in asset makefile * add the two labeled rgba16 images * support for relatively arbitrary paths for images/probably others * remove two now-useless bin container tools * upgrade n64graphics to 0.4 * new asset extractor implemented (full game doesnt build) * start separating assets json * rgb2c submodule; img_getprop (almost done) * binaries in the repo fail * it wasnt a binary it was the folder i was using... * add the tool for real * move folder * game builds again; doesnt match nor boot * OK * assets skip palettes now; func_8000BE90 * renamed some lbvector functions * some lbreflect matches * more HS64 work including initial Camera struct doc * more camera struct; renamed AObj; OMMtx initial doc * lots of renamings Co-authored-by: Faris Awan <farisawan.2000@gmail.com>
2022-04-07 21:41:21 +00:00
/* 0x0D */ u8 dl_link;
// seems to be similar to other GObj's in proximity
2020-10-28 20:40:24 +00:00
u8 unkE;
u8 unkF;
2020-10-08 01:58:11 +00:00
u32 unk10;
assets.o tracking (#56) * models migrated to new build system * bank 0 and 1 images * bank 0 converted * update PR action * dont run level settings converter anymore * update gitignore; actually add asset makefiles (hopefully this passes CI) * actually add tools * bank1 tabled * cleanup * pass CI now * bank2 image * bank 2 anim * bank2 tabled * bank 3 tabled * ldscript generator works; bank4 tabled * bank5 tabled * bank6 tabled * all banks tabled * asset linkscripts are fully transient now * test empty commit * backup * did you know that um... if you do file: dep that $< will eval to dep? * transient filetable+headers; game is playable but doesnt match * assets OK besides objcopy * OK * actually commit tools wowie * hopefully no more assets memes * remove rogue O file that was destroying CI * the first .png file * more bank0 png's * add tools to make future texture PR better * n64graphics mod to export kirby64 backgrounds * _actually_ add backgrounds to build system * simplify asset image build rule * n64graphics background heuristic in place for all formats * bank0 backgrounds reintroduced * revert ci8 background because I don't have n64graphics ci * bank 0 1 and 2 new I4 textures matched * filetable linter; banks 0-4 i4 images matched * bank 5 too * images all matched; next is to revert all backgrounds that report incorrect sizes * assets makefile converted to use ld -r -b; runs much faster * i4 textures reverted * some ia4 textures * some ia8 and i8 images * use single static pattern for backgrounds * significantly simplify o file generation in asset makefile * add the two labeled rgba16 images * support for relatively arbitrary paths for images/probably others * remove two now-useless bin container tools * upgrade n64graphics to 0.4 * new asset extractor implemented (full game doesnt build) * start separating assets json * rgb2c submodule; img_getprop (almost done) * binaries in the repo fail * it wasnt a binary it was the folder i was using... * add the tool for real * move folder * game builds again; doesnt match nor boot * OK * assets skip palettes now; func_8000BE90 * renamed some lbvector functions * some lbreflect matches * more HS64 work including initial Camera struct doc * more camera struct; renamed AObj; OMMtx initial doc * lots of renamings Co-authored-by: Faris Awan <farisawan.2000@gmail.com>
2022-04-07 21:41:21 +00:00
// location of render callback according to HSD
2020-10-28 20:40:24 +00:00
void (*unk14)(void);
struct GObjProcess *proc;
2020-10-28 20:40:24 +00:00
u32 unk1C;
2021-08-26 14:49:57 +00:00
struct GObj* nextDL;
struct GObj* prevDL;
u32 renderPriority;
assets.o tracking (#56) * models migrated to new build system * bank 0 and 1 images * bank 0 converted * update PR action * dont run level settings converter anymore * update gitignore; actually add asset makefiles (hopefully this passes CI) * actually add tools * bank1 tabled * cleanup * pass CI now * bank2 image * bank 2 anim * bank2 tabled * bank 3 tabled * ldscript generator works; bank4 tabled * bank5 tabled * bank6 tabled * all banks tabled * asset linkscripts are fully transient now * test empty commit * backup * did you know that um... if you do file: dep that $< will eval to dep? * transient filetable+headers; game is playable but doesnt match * assets OK besides objcopy * OK * actually commit tools wowie * hopefully no more assets memes * remove rogue O file that was destroying CI * the first .png file * more bank0 png's * add tools to make future texture PR better * n64graphics mod to export kirby64 backgrounds * _actually_ add backgrounds to build system * simplify asset image build rule * n64graphics background heuristic in place for all formats * bank0 backgrounds reintroduced * revert ci8 background because I don't have n64graphics ci * bank 0 1 and 2 new I4 textures matched * filetable linter; banks 0-4 i4 images matched * bank 5 too * images all matched; next is to revert all backgrounds that report incorrect sizes * assets makefile converted to use ld -r -b; runs much faster * i4 textures reverted * some ia4 textures * some ia8 and i8 images * use single static pattern for backgrounds * significantly simplify o file generation in asset makefile * add the two labeled rgba16 images * support for relatively arbitrary paths for images/probably others * remove two now-useless bin container tools * upgrade n64graphics to 0.4 * new asset extractor implemented (full game doesnt build) * start separating assets json * rgb2c submodule; img_getprop (almost done) * binaries in the repo fail * it wasnt a binary it was the folder i was using... * add the tool for real * move folder * game builds again; doesnt match nor boot * OK * assets skip palettes now; func_8000BE90 * renamed some lbvector functions * some lbreflect matches * more HS64 work including initial Camera struct doc * more camera struct; renamed AObj; OMMtx initial doc * lots of renamings Co-authored-by: Faris Awan <farisawan.2000@gmail.com>
2022-04-07 21:41:21 +00:00
// location of user data removal function according to HSD
// based on usage this might actually be the render callback
2021-08-14 05:36:39 +00:00
void (*unk2C)(struct GObj *);
2020-10-29 04:27:31 +00:00
u32 unk30;
u32 unk34;
u32 unk38;
assets.o tracking (#56) * models migrated to new build system * bank 0 and 1 images * bank 0 converted * update PR action * dont run level settings converter anymore * update gitignore; actually add asset makefiles (hopefully this passes CI) * actually add tools * bank1 tabled * cleanup * pass CI now * bank2 image * bank 2 anim * bank2 tabled * bank 3 tabled * ldscript generator works; bank4 tabled * bank5 tabled * bank6 tabled * all banks tabled * asset linkscripts are fully transient now * test empty commit * backup * did you know that um... if you do file: dep that $< will eval to dep? * transient filetable+headers; game is playable but doesnt match * assets OK besides objcopy * OK * actually commit tools wowie * hopefully no more assets memes * remove rogue O file that was destroying CI * the first .png file * more bank0 png's * add tools to make future texture PR better * n64graphics mod to export kirby64 backgrounds * _actually_ add backgrounds to build system * simplify asset image build rule * n64graphics background heuristic in place for all formats * bank0 backgrounds reintroduced * revert ci8 background because I don't have n64graphics ci * bank 0 1 and 2 new I4 textures matched * filetable linter; banks 0-4 i4 images matched * bank 5 too * images all matched; next is to revert all backgrounds that report incorrect sizes * assets makefile converted to use ld -r -b; runs much faster * i4 textures reverted * some ia4 textures * some ia8 and i8 images * use single static pattern for backgrounds * significantly simplify o file generation in asset makefile * add the two labeled rgba16 images * support for relatively arbitrary paths for images/probably others * remove two now-useless bin container tools * upgrade n64graphics to 0.4 * new asset extractor implemented (full game doesnt build) * start separating assets json * rgb2c submodule; img_getprop (almost done) * binaries in the repo fail * it wasnt a binary it was the folder i was using... * add the tool for real * move folder * game builds again; doesnt match nor boot * OK * assets skip palettes now; func_8000BE90 * renamed some lbvector functions * some lbreflect matches * more HS64 work including initial Camera struct doc * more camera struct; renamed AObj; OMMtx initial doc * lots of renamings Co-authored-by: Faris Awan <farisawan.2000@gmail.com>
2022-04-07 21:41:21 +00:00
// user_data???
2020-08-30 02:31:51 +00:00
struct UnkStruct8004A7C4_3C *unk3C;
// goes up by 2.0f per frame until it hits 40.0f, then resets to 0.0f
2020-10-29 02:14:41 +00:00
f32 unk40;
u32 unk44;
2021-06-06 04:22:06 +00:00
// grab arguments
void (*unk48)(void);
2020-10-29 02:14:41 +00:00
u32 unk4C;
2022-12-29 23:39:22 +00:00
} GObj;
// size: 0x50
2021-08-14 05:36:39 +00:00
extern struct GObj *D_8004A7C4, *D_8004A7C8, *D_8004A7CC;
extern struct GObj *D_800DE44C;
2021-05-28 21:17:33 +00:00
2021-08-14 05:36:39 +00:00
typedef void (*VTABLE[])(struct GObj *);
2021-05-28 21:17:33 +00:00
#endif