Decompile chrRender

This commit is contained in:
Ryan Dwyer
2021-01-06 12:13:14 +10:00
parent b94443ee27
commit 3e550e4dc3
40 changed files with 603 additions and 1131 deletions
+3 -1
View File
@@ -464,7 +464,7 @@
#define CHRCFLAG_HIDDEN 0x00000400
#define CHRCFLAG_NOAUTOAIM 0x00000800
#define CHRCFLAG_UNEXPLODABLE 0x00001000
#define CHRCFLAG_00002000 0x00002000 // Not used in scripts
#define CHRCFLAG_NOSHADOW 0x00002000
#define CHRCFLAG_HAS_SPECIAL_DEATH_ANIMATION 0x00004000
#define CHRCFLAG_00008000 0x00008000 // Not used in scripts
#define CHRCFLAG_00010000 0x00010000 // Related to dead people in intro cutscenes
@@ -1694,6 +1694,8 @@
#define MODELPART_03 0x03
#define MODELPART_ROBOTMUZZLEFLASHL 0x03
#define MODELPART_HUDPIECE 0x04
#define MODELPART_04 0x04
#define MODELPART_05 0x05
#define MODELPART_NECKLACE 0x07
#define MODELPART_NEWCLIP 0x28
#define MODELPART_NEWCLIP2 0x29
+7 -7
View File
@@ -21,7 +21,7 @@ void func0f021fa8(struct chrdata *chr, struct coord *pos, s16 *rooms);
void func0f0220ec(struct chrdata *chr, s32 arg1, s32 arg2);
u32 func0f022214(void);
void chrUpdateCloak(struct chrdata *chr);
u32 func0f022be4(void);
s32 func0f022be4(struct chrdata *chr);
void chrSetPoisoned(struct chrdata *chr, void *arg1);
u32 func0f022d60(void);
bool propchrDoFireslotThing(struct prop *prop);
@@ -30,11 +30,11 @@ void chrDropItems(struct chrdata *chr);
void chrSetHudpieceVisible(struct chrdata *chr, bool visible);
void chrDropWeapons(struct chrdata *chr);
void func0f0246e4(u8 *arg0);
u32 func0f024738(void);
bool func0f024738(struct chrdata *chr);
u32 func0f024b18(void);
u32 func0f025074(void);
void func0f025074(struct prop *prop, struct modelrenderdata *renderdata, bool withalpha, struct chrdata *chr);
void bodyGetBloodColour(s16 bodynum, u8 *colour1, u32 *colour2);
Gfx *propchrRender(struct prop *prop, Gfx *gdl, bool arg2);
Gfx *chrRender(struct prop *prop, Gfx *gdl, bool withalpha);
void chrEmitSparks(struct chrdata *chr, struct prop *prop, s32 arg2, struct coord *coord, struct coord *coord2, struct chrdata *chr2);
u32 func0f0260c4(void);
u32 func0f0268bc(void);
@@ -58,10 +58,10 @@ void func0f0295f8(f32 arg0, s32 *arg1, s32 *arg2, s32 *arg3);
f32 propGetShieldThing(struct prop **propptr);
u32 func0f02983c(void);
u32 func0f02b7d4(void);
u32 func0f02bdf8(void);
u32 func0f02c6e0(void);
Gfx *func0f02bdf8(Gfx *gdl, struct prop *chr1, struct prop *chr2);
Gfx *func0f02c6e0(Gfx *gdl, struct chrdata *chr, u32 alpha);
u32 func0f02c9b0(void);
u32 func0f02ccb4(void);
void func0f02ccb4(struct chrdata *drcaroll, s32 imageleft, s32 imageright);
s32 getNumChrSlots(void);
void chrRegister(s32 chrnum, s32 chrindex);
void func0f01e760(s32 arg0);
+1 -1
View File
@@ -66,7 +66,7 @@ extern u32 var80070748;
extern u32 var8007074c;
extern bool g_PlayersWithControl[];
extern bool g_PlayerInvincible;
extern s32 var80070764;
extern s32 g_InCutscene;
extern s16 g_DeathAnimations[];
extern u32 g_NumDeathAnimations;
extern u32 var80070780;
+1 -1
View File
@@ -15,7 +15,7 @@ bool func0f12af5c(struct explosion *exp, struct prop *prop, struct coord *pos1,
u32 func0f12b0e0(void);
u32 func0f12bbdc(struct prop *prop);
u32 explosionUpdateZ(struct prop *prop);
Gfx *explosionRender(struct prop *prop, Gfx *gdl, bool arg2);
Gfx *explosionRender(struct prop *prop, Gfx *gdl, bool withalpha);
u32 func0f12cd64(void);
#endif
+1 -1
View File
@@ -15,7 +15,7 @@ void func0f060538(struct prop *prop);
void func0f0605c4(struct prop *prop);
void propReparent(struct prop *mover, struct prop *adopter);
void propDetach(struct prop *prop);
Gfx *propRender(Gfx *gdl, struct prop *prop, bool arg2);
Gfx *propRender(Gfx *gdl, struct prop *prop, bool withalpha);
Gfx *propsRender(Gfx *gdl, s16 arg1, s32 arg2, s16 *arg3);
u32 func0f060984(void);
u32 func0f060bac(void);
+1 -1
View File
@@ -84,7 +84,7 @@ s32 getMissionTime(void);
s32 func0f0c228c(struct prop *prop);
u32 func0f0c2364(void);
u32 func0f0c2a58(void);
Gfx *playerRender(struct prop *prop, Gfx *gdl, bool arg2);
Gfx *playerRender(struct prop *prop, Gfx *gdl, bool withalpha);
Gfx *currentPlayerLoadMatrix(Gfx *gdl);
u32 func0f0c3320(void);
void setTickMode(s32 tickmode);
+1 -1
View File
@@ -3,6 +3,6 @@
#include <ultra64.h>
#include "types.h"
u32 func0f0c33f0(void);
void func0f0c33f0(Mtxf *matrix, s32 arg1);
#endif
+1 -1
View File
@@ -17,6 +17,6 @@ Gfx *func0f1664a0(Gfx *gdl, u32 arg1);
Gfx *gfxConsiderDisableFog(Gfx *gdl);
u32 func0f1666f8(void);
u32 func0f1667e8(void);
u32 func0f1667f4(void);
s32 func0f1667f4(struct prop *prop, f32 *arg1);
#endif
+1 -1
View File
@@ -106,7 +106,7 @@ s32 menuhandler00185068(u32 operation, struct menuitem *item, union handlerdata
void func0f185568(void);
Gfx *func0f185774(Gfx *gdl);
u32 func0f185c14(void);
u32 func0f185e20(void);
bool func0f185e20(struct prop *prop, s32 *arg1);
void mpPrepareScenario(void);
u32 func0f186508(void);
void func0f1866b8(s32 playernum, char *message);
+10 -10
View File
@@ -84,11 +84,11 @@ u32 func0f068ad4(void);
struct model08thing *func0f068af4(struct defaultobj *obj);
u32 func0f068b14(void);
u32 func0f068c04(void);
u32 func0f068fc8(void);
s32 func0f068fc8(struct prop *prop, bool arg1);
void func0f069144(struct prop *prop, u8 *nextcol, u16 floorcol);
void func0f069630(struct prop *prop, u8 *nextcol, u16 floorcol);
void func0f069710(u8 *shadecol, u8 *nextcol);
u32 func0f069750(void);
void func0f069750(s32 *arg0, s32 arg1, f32 *arg2);
void func0f069850(struct defaultobj *obj, struct coord *pos, f32 *realrot, struct geo *geo);
void func0f069b4c(struct defaultobj *obj);
void func0f069c1c(struct defaultobj *obj);
@@ -96,8 +96,8 @@ void func0f069c70(struct defaultobj *obj, bool arg1, bool arg2);
u32 func0f069cd8(void);
u32 func0f069d38(void);
u32 func0f06a170(void);
struct prop *func0f06a1ec(struct singlemonitorobj *monitor, struct model08 *filedata, u32 arg2, u32 arg3);
struct prop *func0f06a52c(struct singlemonitorobj *monitor, struct model08 *model08);
struct prop *func0f06a1ec(struct singlemonitorobj *monitor, struct modelfiledata *filedata, u32 arg2, u32 arg3);
struct prop *func0f06a52c(struct singlemonitorobj *monitor, struct modelfiledata *modelfiledata);
struct prop *func0f06a550(struct singlemonitorobj *monitor);
u32 func0f06a580(void);
f32 func0f06a620(struct defaultobj *obj);
@@ -208,9 +208,9 @@ void imageSlotSetImage(struct monitorscreen *screen, u32 arg1);
u32 func0f07fbf0(void);
u32 func0f07fbf8(void);
u32 func0f0809c4(void);
u32 func0f080f8c(void);
Gfx *gfxRenderRadialShadow(Gfx *gdl, f32 x, f32 y, f32 z, f32 angle, f32 size, u32 alpha);
u32 func0f081220(void);
Gfx *propobjRender(struct prop *prop, Gfx *gdl, bool arg2);
Gfx *propobjRender(struct prop *prop, Gfx *gdl, bool withalpha);
u32 func0f081c18(void);
u32 func0f081ccc(void);
u32 func0f0826cc(void);
@@ -262,7 +262,7 @@ u32 func0f088840(struct prop *prop, bool showhudmsg);
u32 func0f089014(void);
bool func0f0899dc(struct prop *prop, f32 *arg0, f32 *arg1, f32 *arg2);
void func0f089a94(bool arg0, struct model *model);
void func0f089c70(struct hatobj *hat, struct chrdata *chr, struct model08 *filedata, u32 arg3, u32 arg4);
void func0f089c70(struct hatobj *hat, struct chrdata *chr, struct modelfiledata *filedata, u32 arg3, u32 arg4);
void func0f089d64(struct hatobj *hat, struct chrdata *chr);
void hatAssignToChr(struct hatobj *hat, struct chrdata *chr);
u32 chrTryEquipHat(struct chrdata *chr, u32 model, u32 flags);
@@ -281,7 +281,7 @@ void propweaponSetDual(struct weaponobj *weapon1, struct weaponobj *weapon2);
u32 func0f08adc8(void);
u32 func0f08ae0c(void);
u32 func0f08ae54(struct defaultobj *obj, struct chrdata *chr);
u32 func0f08b108(struct weaponobj *weapon, struct chrdata *chr, struct model08 *model08, u32 arg3, u32 arg4);
u32 func0f08b108(struct weaponobj *weapon, struct chrdata *chr, struct modelfiledata *modelfiledata, u32 arg3, u32 arg4);
void func0f08b208(struct weaponobj *weapon, struct chrdata *chr);
void func0f08b25c(struct weaponobj *weapon, struct chrdata *chr);
u32 func0f08b27c(void);
@@ -322,8 +322,8 @@ void doorSetMode(struct doorobj *door, s32 newmode);
void doorActivate(struct doorobj *door, s32 newmode);
s32 doorIsClosed(struct doorobj *door);
s32 doorIsOpen(struct doorobj *door);
u32 func0f08e5a8(void);
u32 func0f08e6bc(void);
s32 func0f08e5a8(s16 *rooms, struct screenbox *box);
f32 func0f08e6bc(struct prop *prop, f32 arg1);
u32 func0f08e794(void);
bool func0f08e8ac(struct prop *prop, struct coord *coord, f32 arg2, u32 arg3);
bool posIsInDrawDistance(struct coord *arg);
+1 -1
View File
@@ -13,7 +13,7 @@ void smokeClearForProp(struct prop *prop);
struct smoke *smokeCreateSimple(struct coord *pos, s16 *rooms, s16 type);
u32 func0f12e848(struct prop *prop);
u32 smokeUpdateZ(struct prop *prop);
Gfx *smokeRender(struct prop *prop, Gfx *gdl, bool arg2);
Gfx *smokeRender(struct prop *prop, Gfx *gdl, bool withalpha);
u32 func0f12f5f8(void);
#endif
+1 -1
View File
@@ -491,7 +491,7 @@ extern u32 var8009ca84;
extern u32 var8009cad0;
extern u32 var8009cadc;
extern u32 var8009cae0;
extern u8 var8009caec;
extern u8 var8009caec[4];
extern u8 var8009caf0;
extern struct var8009cb08 var8009cb08[6];
extern u32 var8009cbf8;
+3 -3
View File
@@ -14,8 +14,8 @@ u32 func0001a740(void);
u32 func0001a784(void);
u32 func0001a7cc(void);
u32 func0001a85c(void);
struct modelnode *modelGetPart(struct model08 *arg0, s32 partnum);
union modelnode_data *modelGetPartNodeData(struct model08 *model08, s32 partnum);
struct modelnode *modelGetPart(struct modelfiledata *arg0, s32 partnum);
union modelnode_data *modelGetPartNodeData(struct modelfiledata *modelfiledata, s32 partnum);
u32 func0001a9e8(void);
void *modelGetNodeData(struct model *model, struct modelnode *node);
void modelNodeGetPosition(struct model *model, struct modelnode *node, struct coord *pos);
@@ -88,7 +88,7 @@ u32 func00020f30(void);
u32 func0002124c(void);
u32 func000216cc(void);
u32 func0002170c(void);
u32 func00021ef4(void);
void modelRender(struct modelrenderdata *renderdata, struct model *model);
u32 func000220fc(void);
u32 func000225d4(void);
u32 func000227a4(void);
+30 -9
View File
@@ -275,7 +275,7 @@ struct modelnode {
/*0x14*/ struct modelnode *child;
};
struct model08 { // raw model file data
struct modelfiledata {
struct modelnode *rootnode;
struct stagethinglist *unk04;
@@ -292,7 +292,7 @@ struct model {
/*0x00*/ u8 unk00;
/*0x01*/ u8 unk01;
/*0x04*/ struct chrdata *chr;
/*0x08*/ struct model08 *unk08;
/*0x08*/ struct modelfiledata *filedata;
/*0x0c*/ Mtxf *unk0c;
/*0x10*/ void **datas; // array of pointers to modeldata structs
/*0x14*/ f32 unk14;
@@ -331,7 +331,7 @@ struct modeldata_05 {
};
struct modeldata_headspot { // type 0x17
struct model08 *model08;
struct modelfiledata *modelfiledata;
void *datas;
};
@@ -2188,10 +2188,8 @@ struct player {
/*0x0004*/ struct coord memcampos;
/*0x0010*/ u16 visionmode;
/*0x0014*/ s32 memcamroom;
/*0x0018*/ u32 unk0018;
/*0x001c*/ u32 unk001c;
/*0x0020*/ u32 unk0020;
/*0x0024*/ u32 unk0024;
/*0x0018*/ struct coord eraserpos;
/*0x0024*/ f32 eraserpropdist;
/*0x0028*/ u32 unk0028;
/*0x002c*/ u32 unk002c;
/*0x0030*/ bool isfalling;
@@ -2335,7 +2333,10 @@ struct player {
/*0x0264*/ struct weaponobj *slayerrocket;
/*0x0268*/ bool eyesshut;
/*0x026c*/ f32 eyesshutfrac;
/*0x0270*/ u32 unk0270;
/*0x0270*/ u8 epcol_0;
/*0x0270*/ u8 epcol_1;
/*0x0270*/ u8 epcol_2;
/*0x0270*/ u8 flashbang;
/*0x0274*/ bool waitforzrelease;
/*0x0278*/ f32 shieldshowrot;
/*0x027c*/ u32 shieldshowrnd;
@@ -4931,7 +4932,7 @@ struct chrnumaction {
};
struct propdefinition {
struct model08 *filedata;
struct modelfiledata *filedata;
u16 fileid;
u16 scale;
};
@@ -5887,6 +5888,26 @@ struct objticksp476 {
/*0x3c*/ u32 unk3c;
};
// Suspected to be the same as objticksp476
struct modelrenderdata {
/*0x00*/ u32 unk00;
/*0x04*/ s32 unk04;
/*0x08*/ u32 unk08;
/*0x0c*/ Gfx *gdl;
/*0x10*/ u32 unk10;
/*0x14*/ u32 unk14;
/*0x18*/ u32 unk18;
/*0x1c*/ u32 unk1c;
/*0x20*/ u32 unk20;
/*0x24*/ u32 unk24;
/*0x28*/ u32 unk28;
/*0x2c*/ u32 unk2c;
/*0x30*/ u32 unk30;
/*0x34*/ u32 colour34;
/*0x38*/ u32 colour38;
/*0x3c*/ u32 unk3c;
};
struct rend_vidat {
/*0x00*/ void *unk00;
/*0x04*/ u16 x;