Decompile modelPromoteTypeToPointer
This commit is contained in:
parent
01ad7bdfa5
commit
0def638ed9
|
|
@ -1886,8 +1886,8 @@ glabel func0f00e980
|
|||
/* f00e9e0: 004e1021 */ addu $v0,$v0,$t6
|
||||
/* f00e9e4: 9444fcce */ lhu $a0,%lo(g_Stages+0xe)($v0)
|
||||
/* f00e9e8: 240f0003 */ addiu $t7,$zero,0x3
|
||||
/* f00e9ec: 3c018006 */ lui $at,%hi(g_LoadState)
|
||||
/* f00e9f0: a02fd9a0 */ sb $t7,%lo(g_LoadState)($at)
|
||||
/* f00e9ec: 3c018006 */ lui $at,%hi(g_LoadType)
|
||||
/* f00e9f0: a02fd9a0 */ sb $t7,%lo(g_LoadType)($at)
|
||||
/* f00e9f4: 24050022 */ addiu $a1,$zero,0x22
|
||||
/* f00e9f8: 02403025 */ or $a2,$s2,$zero
|
||||
/* f00e9fc: 02a03825 */ or $a3,$s5,$zero
|
||||
|
|
@ -2019,7 +2019,7 @@ void setupLoadFiles(s32 stagenum)
|
|||
filenum = g_Stages[g_StageIndex].setupfileid;
|
||||
}
|
||||
|
||||
g_LoadState = LOADSTATE_SETUP;
|
||||
g_LoadType = LOADTYPE_SETUP;
|
||||
|
||||
g_GeCreditsData = (u8 *)func0f1670fc(filenum, 0x22);
|
||||
setup = (struct stagesetup *)g_GeCreditsData;
|
||||
|
|
@ -2030,7 +2030,7 @@ void setupLoadFiles(s32 stagenum)
|
|||
g_StageSetup.paths = (struct path *)((u32)setup + (u32)setup->paths);
|
||||
g_StageSetup.ailists = (struct ailist *)((u32)setup + (u32)setup->ailists);
|
||||
|
||||
g_LoadState = LOADSTATE_PADS;
|
||||
g_LoadType = LOADTYPE_PADS;
|
||||
|
||||
g_StageSetup.padfiledata = func0f1670fc(g_Stages[g_StageIndex].padsfileid, 0x22);
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ void stageLoadTiles(void)
|
|||
index = 0;
|
||||
}
|
||||
|
||||
g_LoadState = LOADSTATE_TILES;
|
||||
g_LoadType = LOADTYPE_TILES;
|
||||
g_TileFileData.u8 = func0f1670fc(g_Stages[index].tilefileid, 0x22);
|
||||
g_TileNumRooms = *g_TileFileData.u32;
|
||||
g_TileRooms = g_TileFileData.u32 + 1;
|
||||
|
|
|
|||
|
|
@ -8228,8 +8228,8 @@ glabel func0f09e144
|
|||
/* f09e1cc: 240b0007 */ addiu $t3,$zero,0x7
|
||||
/* f09e1d0: 02003825 */ or $a3,$s0,$zero
|
||||
.L0f09e1d4:
|
||||
/* f09e1d4: 3c018006 */ lui $at,%hi(g_LoadState)
|
||||
/* f09e1d8: a02bd9a0 */ sb $t3,%lo(g_LoadState)($at)
|
||||
/* f09e1d4: 3c018006 */ lui $at,%hi(g_LoadType)
|
||||
/* f09e1d8: a02bd9a0 */ sb $t3,%lo(g_LoadType)($at)
|
||||
/* f09e1dc: 964415b2 */ lhu $a0,0x15b2($s2)
|
||||
/* f09e1e0: 24050011 */ addiu $a1,$zero,0x11
|
||||
/* f09e1e4: 0fc59c80 */ jal func0f167200
|
||||
|
|
@ -8258,7 +8258,7 @@ glabel func0f09e144
|
|||
/* f09e240: 00af3823 */ subu $a3,$a1,$t7
|
||||
/* f09e244: 0fc5cb9c */ jal func0f172e70
|
||||
/* f09e248: 02073023 */ subu $a2,$s0,$a3
|
||||
/* f09e24c: 0fc69dcc */ jal func0f1a7730
|
||||
/* f09e24c: 0fc69dcc */ jal modelPromoteTypeToPointer
|
||||
/* f09e250: 02202025 */ or $a0,$s1,$zero
|
||||
/* f09e254: 02202025 */ or $a0,$s1,$zero
|
||||
/* f09e258: 3c050500 */ lui $a1,0x500
|
||||
|
|
|
|||
|
|
@ -233,55 +233,37 @@ glabel func0f1a7560
|
|||
/* f1a772c: 27bd0090 */ addiu $sp,$sp,0x90
|
||||
);
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f1a7730
|
||||
/* f1a7730: 8c820004 */ lw $v0,0x4($a0)
|
||||
/* f1a7734: 3c010001 */ lui $at,0x1
|
||||
/* f1a7738: 3c0e8009 */ lui $t6,%hi(g_ModelTypes)
|
||||
/* f1a773c: 0041082b */ sltu $at,$v0,$at
|
||||
/* f1a7740: 10200012 */ beqz $at,.L0f1a778c
|
||||
/* f1a7744: 00000000 */ nop
|
||||
/* f1a7748: 8dce9990 */ lw $t6,%lo(g_ModelTypes)($t6)
|
||||
/* f1a774c: 00021c00 */ sll $v1,$v0,0x10
|
||||
/* f1a7750: 00037c03 */ sra $t7,$v1,0x10
|
||||
/* f1a7754: 11c0000d */ beqz $t6,.L0f1a778c
|
||||
/* f1a7758: 01e01825 */ or $v1,$t7,$zero
|
||||
/* f1a775c: 3c188009 */ lui $t8,%hi(g_ModelTypes)
|
||||
/* f1a7760: 27059990 */ addiu $a1,$t8,%lo(g_ModelTypes)
|
||||
/* f1a7764: 8ca60000 */ lw $a2,0x0($a1)
|
||||
/* f1a7768: 84d90000 */ lh $t9,0x0($a2)
|
||||
.L0f1a776c:
|
||||
/* f1a776c: 54790004 */ bnel $v1,$t9,.L0f1a7780
|
||||
/* f1a7770: 8ca60004 */ lw $a2,0x4($a1)
|
||||
/* f1a7774: 03e00008 */ jr $ra
|
||||
/* f1a7778: ac860004 */ sw $a2,0x4($a0)
|
||||
/* f1a777c: 8ca60004 */ lw $a2,0x4($a1)
|
||||
.L0f1a7780:
|
||||
/* f1a7780: 24a50004 */ addiu $a1,$a1,0x4
|
||||
/* f1a7784: 54c0fff9 */ bnezl $a2,.L0f1a776c
|
||||
/* f1a7788: 84d90000 */ lh $t9,0x0($a2)
|
||||
.L0f1a778c:
|
||||
/* f1a778c: 03e00008 */ jr $ra
|
||||
/* f1a7790: 00000000 */ nop
|
||||
);
|
||||
void modelPromoteTypeToPointer(struct modelfiledata *filedata)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
if ((u32)filedata->type < 0x10000) {
|
||||
for (i = 0; g_ModelTypes[i] != NULL; i++) {
|
||||
if ((s16)filedata->type == g_ModelTypes[i]->type) {
|
||||
filedata->type = g_ModelTypes[i];
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void *func0f1a7794(u16 fileid, u8 *arg1, s32 arg2, s32 arg3)
|
||||
{
|
||||
void *ptr;
|
||||
void *filedata;
|
||||
|
||||
g_LoadState = LOADSTATE_6;
|
||||
g_LoadType = LOADTYPE_MODEL;
|
||||
|
||||
if (arg1) {
|
||||
ptr = func0f167200(fileid, 0x11, arg1, arg2);
|
||||
filedata = func0f167200(fileid, 0x11, arg1, arg2);
|
||||
} else {
|
||||
ptr = func0f1670fc(fileid, 0x11);
|
||||
filedata = func0f1670fc(fileid, 0x11);
|
||||
}
|
||||
|
||||
func0f1a7730(ptr);
|
||||
func00022a24(ptr, 0x5000000, ptr);
|
||||
func0f1a7560(ptr, fileid, 0x5000000, ptr, arg3, arg1 == NULL);
|
||||
modelPromoteTypeToPointer(filedata);
|
||||
func00022a24(filedata, 0x5000000, filedata);
|
||||
func0f1a7560(filedata, fileid, 0x5000000, filedata, arg3, arg1 == NULL);
|
||||
|
||||
return ptr;
|
||||
return filedata;
|
||||
}
|
||||
|
||||
void *fileLoad(u16 fileid)
|
||||
|
|
|
|||
|
|
@ -3807,7 +3807,7 @@ void bgInit(s32 stagenum)
|
|||
scratch = ((u32)g_BgPrimaryData + inflatedsize) - primcompsize;
|
||||
scratch = ALIGN16(scratch + 0x8000);
|
||||
|
||||
g_LoadState = LOADSTATE_BG;
|
||||
g_LoadType = LOADTYPE_BG;
|
||||
|
||||
// Copy section 1 header + compressed primary to scratch space
|
||||
bgLoadFile((u8 *)scratch, 0, ALIGN16(primcompsize + 15));
|
||||
|
|
|
|||
|
|
@ -1136,12 +1136,12 @@
|
|||
#define LIGHTOP_TURNON 6
|
||||
#define LIGHTOP_TURNOFF 7
|
||||
|
||||
#define LOADSTATE_NONE 0
|
||||
#define LOADSTATE_BG 1
|
||||
#define LOADSTATE_TILES 2
|
||||
#define LOADSTATE_SETUP 4
|
||||
#define LOADSTATE_PADS 5
|
||||
#define LOADSTATE_6 6
|
||||
#define LOADTYPE_NONE 0
|
||||
#define LOADTYPE_BG 1
|
||||
#define LOADTYPE_TILES 2
|
||||
#define LOADTYPE_SETUP 4
|
||||
#define LOADTYPE_PADS 5
|
||||
#define LOADTYPE_MODEL 6
|
||||
|
||||
// These actions are assigned to chr->myaction
|
||||
#define MA_NONE 0
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ extern s32 osViClock;
|
|||
extern u32 var8005cf6c;
|
||||
extern u32 __osGlobalIntMask;
|
||||
extern u32 var8005cf84;
|
||||
extern u8 g_LoadState;
|
||||
extern u8 g_LoadType;
|
||||
extern s32 var8005d9d0;
|
||||
extern s32 var8005dd18;
|
||||
extern u32 var8005dd58;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
#include "types.h"
|
||||
|
||||
void func0f1a7560(void *ptr, u16 fileid, u32 arg2, void *arg3, s32 arg4, bool arg5);
|
||||
void func0f1a7730(void *ptr);
|
||||
void modelPromoteTypeToPointer(struct modelfiledata *filedata);
|
||||
void *func0f1a7794(u16 fileid, u8 *arg1, s32 arg2, s32 arg3);
|
||||
void *fileLoad(u16 fileid);
|
||||
|
||||
|
|
|
|||
|
|
@ -175,7 +175,7 @@ struct anim {
|
|||
};
|
||||
|
||||
struct modeltype {
|
||||
u16 stage;
|
||||
s16 type;
|
||||
u16 numthings;
|
||||
u16 *things;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
#include "data.h"
|
||||
#include "types.h"
|
||||
|
||||
u8 g_LoadState = 0;
|
||||
u8 g_LoadType = 0;
|
||||
|
||||
void dmaInit(void)
|
||||
{
|
||||
|
|
@ -77,7 +77,7 @@ u32 xorDeadbabe(u32 value)
|
|||
*/
|
||||
void dmaCheckPiracy(void *memaddr, u32 len)
|
||||
{
|
||||
if (g_LoadState != LOADSTATE_NONE && len > 128) {
|
||||
if (g_LoadType != LOADTYPE_NONE && len > 128) {
|
||||
#if PIRACYCHECKS
|
||||
u32 value = xorDeadbeef(0x0330c820 ^ 0xdeadbeef);
|
||||
u32 *ptr = (u32 *)memaddr;
|
||||
|
|
@ -98,7 +98,7 @@ void dmaCheckPiracy(void *memaddr, u32 len)
|
|||
}
|
||||
#endif
|
||||
|
||||
g_LoadState = LOADSTATE_NONE;
|
||||
g_LoadType = LOADTYPE_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue