Attempt to decompile func0f028e6c

This commit is contained in:
Ryan Dwyer
2021-04-26 10:55:11 +10:00
parent 0b23d0f956
commit 59597d85de
3 changed files with 52 additions and 15 deletions
+48 -10
View File
@@ -17156,6 +17156,44 @@ glabel func0f028e6c
/* f028f78: 00601025 */ or $v0,$v1,$zero
);
// Mismatch: Reordered instructions
//bool func0f028e6c(s32 arg0, struct prop *prop, struct prop **propptr, struct modelnode **nodeptr, struct model **modelptr)
//{
// while (true) {
// bool result = false;
// struct model *model;
// s32 stack;
//
// if (prop->type == PROPTYPE_CHR || prop->type == PROPTYPE_PLAYER) {
// model = prop->chr->model;
// } else {
// model = prop->obj->model;
// }
//
// if (1);
//
// if (arg0 >= model->filedata->nummatrices) {
// arg0 -= model->filedata->nummatrices;
//
// if (prop->child) {
// result = func0f028e6c(arg0, prop->child, propptr, nodeptr, modelptr);
// }
//
// if (prop->next && !result) {
// prop = prop->next;
// continue;
// }
// } else {
// *propptr = prop;
// *nodeptr = func0001a634(model, arg0);
// *modelptr = model;
// result = true;
// }
//
// return result;
// }
//}
GLOBAL_ASM(
glabel func0f028f7c
/* f028f7c: 27bdffd8 */ addiu $sp,$sp,-40
@@ -17383,18 +17421,18 @@ void func0f0292bc(struct prop *prop)
s32 func0f02932c(struct prop *prop, s32 arg1)
{
s32 result = -1;
struct prop *sp38;
struct prop *sp34;
struct prop *sp30;
struct prop *sp2c;
struct modelnode *node2;
struct prop *prop2;
struct modelnode *node;
struct model *model;
if (func0f028e6c(arg1, prop, &sp34, &sp30, &sp2c) && sp30) {
sp38 = func0001a784(sp30);
if (func0f028e6c(arg1, prop, &prop2, &node, &model) && node) {
node2 = func0001a784(node);
if (sp38) {
result = func0f028e18(sp34, sp38, sp2c, prop);
} else if (sp34->parent && sp2c->parent && sp2c->child) {
result = func0f028e18(sp34->parent, sp2c->child, sp2c->parent, prop);
if (node2) {
result = func0f028e18(prop2, node2, model, prop);
} else if (prop2->parent && model->attachedto && model->unk1c) {
result = func0f028e18(prop2->parent, model->unk1c, model->attachedto, prop);
}
}
+2 -3
View File
@@ -46,9 +46,8 @@ u32 func0f027e1c(void);
void func0f028498(bool value);
void func0f028590(f32 arg0);
u32 func0f028a50(void);
u32 func0f028d50(void);
s32 func0f028e18(struct prop *arg0, struct prop *arg1, struct prop *arg2, struct prop *arg3);
s32 func0f028e6c(s32 arg0, struct prop *arg1, struct prop **arg2, struct prop **arg3, struct prop **arg4);
s32 func0f028e18(struct prop *arg0, struct modelnode *arg1, struct model *arg2, struct prop *arg3);
bool func0f028e6c(s32 arg0, struct prop *prop, struct prop **propptr, struct modelnode **nodeptr, struct model **modelptr);
void func0f028f7c(struct prop *prop, f32 shield, struct prop *arg2, struct modelnode *node, struct model *model, s32 side, s32 arg6);
void func0f0291d4(struct var80062a8c *thing);
void func0f0292bc(struct prop *prop);
+2 -2
View File
@@ -10,9 +10,9 @@ void func0001a518(void *callback);
s32 func0001a524(struct modelnode *node, s32 arg1);
Mtxf *func0001a5cc(struct model *model, struct modelnode *node, s32 arg2);
u32 func0001a60c(void);
u32 func0001a634(void);
struct modelnode *func0001a634(struct model *model, s32 arg1);
u32 func0001a740(void);
struct prop *func0001a784(struct prop *prop);
struct modelnode *func0001a784(struct modelnode *node);
u32 func0001a7cc(void);
u32 func0001a85c(void);
struct modelnode *modelGetPart(struct modelfiledata *arg0, s32 partnum);