Attempt to decompile func0f011130

This commit is contained in:
Ryan Dwyer
2022-07-06 23:38:45 +10:00
parent e82da009d2
commit 1f121a34ec
3 changed files with 108 additions and 5 deletions
+2 -3
View File
@@ -9,10 +9,9 @@
struct model *var8009dd00;
struct anim *var8009dd04;
u32 var8009dd08;
u32 var8009dd0c;
s32 var8009dd08;
s32 var8009dd0c;
struct var8009dd10 *var8009dd10[3];
u32 var8009dd1c;
s32 var800705a0 = 0;
s32 var800705a4 = 0;
+104
View File
@@ -24,6 +24,11 @@
#include "data.h"
#include "types.h"
#define NUMTHINGS1() (IS4MB() ? 0 : 35)
#define NUMTHINGS2() (IS4MB() ? 24 : 25)
#define NUMTHINGS3() (IS4MB() ? 0 : 20)
#define NUMTHINGS4() (IS4MB() ? 40 : 60)
void func0f011110(void)
{
var800705a4 = 0;
@@ -352,6 +357,105 @@ glabel func0f011130
/* f01155c: 27bd0040 */ addiu $sp,$sp,0x40
);
extern s32 var800705a0_2;
extern s32 var800705a4_2;
// Mismatch: Regalloc, although the _2 trick is certainly fake (they're the same
// variables as used earlier, but we need to force address recalculations)
//void func0f011130(s32 arg0, s32 numchrs)
//{
// s32 v1;
// s32 v0;
// s32 a2;
// s32 tmp;
// u8 *ptr;
// s32 i;
// s32 totalsize;
// s32 modelssize; // 20
// s32 animssize; // 1c
// s32 rwdatasize1 = 0x10;
// s32 rwdatasize2 = 0xd0;
// s32 rwdatasize3 = 0;
//
// var8009dd08 = arg0;
// var8009dd0c = numchrs;
//
// var800705a0 = arg0 + NUMTHINGS4() + numchrs + 20;
// var800705a4 = numchrs + 20;
//
// a2 = (NUMTHINGS1() + NUMTHINGS2() + NUMTHINGS3()) * sizeof(struct var8009dd10);
// v0 = NUMTHINGS1() * rwdatasize1;
// v1 = NUMTHINGS2() * rwdatasize2;
// tmp = NUMTHINGS3() * rwdatasize3;
//
// modelssize = ALIGN16(var800705a0_2 * sizeof(struct model));
// animssize = ALIGN16(var800705a4_2 * sizeof(struct anim));
//
// totalsize = ALIGN16(a2 + v0 + v1 + tmp + modelssize + animssize);
//
// var8009dd10[0] = NULL;
// var8009dd10[1] = NULL;
// var8009dd10[2] = NULL;
//
// ptr = mempAlloc(totalsize, MEMPOOL_STAGE);
//
// if (NUMTHINGS1()) {
// var8009dd10[0] = (struct var8009dd10 *)ptr;
// ptr += NUMTHINGS1() * 8;
// }
//
// if (NUMTHINGS2()) {
// var8009dd10[1] = (struct var8009dd10 *)ptr;
// ptr += NUMTHINGS2() * 8;
// }
//
// if (NUMTHINGS3()) {
// var8009dd10[2] = (struct var8009dd10 *)ptr;
// ptr += NUMTHINGS3() * 8;
// }
//
// var8009dd00 = (struct model *)ptr;
// ptr += modelssize;
// var8009dd04 = (struct anim *)ptr;
// ptr += animssize;
//
// for (i = 0; i < NUMTHINGS1(); i++) {
// var8009dd10[0][i].rwdata = ptr;
// var8009dd10[0][i].model = NULL;
//
// ptr += rwdatasize1;
// }
//
// for (i = 0; i < NUMTHINGS2(); i++) {
// var8009dd10[1][i].rwdata = ptr;
// var8009dd10[1][i].model = NULL;
//
// ptr += rwdatasize2;
// }
//
// for (i = 0; i < NUMTHINGS3(); i++) {
// var8009dd10[2][i].rwdata = NULL;
// var8009dd10[2][i].model = NULL;
//
// ptr += rwdatasize3;
// }
//
// for (i = 0; i < var800705a0_2; i++) {
// var8009dd00[i].filedata = NULL;
// var8009dd00[i].rwdatas = NULL;
// }
//
// for (i = 0; i < var800705a4_2; i++) {
// var8009dd04[i].animnum = -1;
// }
//
// var800705ac = 0;
// var800705b0 = 0;
// var800705b4 = 0;
// var800705b8 = 0;
// var800705bc = 0;
//}
bool weaponLoadProjectileModels(s32 weaponnum)
{
bool result = false;
+2 -2
View File
@@ -136,8 +136,8 @@ extern struct boltbeam g_BoltBeams[8];
extern struct lasersight g_LaserSights[4];
extern struct model *var8009dd00;
extern struct anim *var8009dd04;
extern u32 var8009dd08;
extern u32 var8009dd0c;
extern s32 var8009dd08;
extern s32 var8009dd0c;
extern struct var8009dd10 *var8009dd10[3];
extern struct coord var8009dd20;
extern f32 var8009dd2c;