func_8005CA88 ok

This commit is contained in:
mzxrules 2020-03-30 17:47:07 -04:00
parent 3191f36e3f
commit da9bad7810
2 changed files with 30 additions and 99 deletions

View File

@ -1,98 +0,0 @@
.rdata
glabel D_8013A7B8
.asciz "../z_collision_check.c"
.balign 4
glabel D_8013A7D0
.asciz "\x1b[31m"
.balign 4
glabel D_8013A7D8
.asciz "ClObjTris_set5():zelda_malloc\n"
# EUC-JP: | Can not.
.balign 4
glabel D_8013A804
.asciz "\x1b[m"
.balign 4
.text
glabel func_8005CA88
/* AD3C28 8005CA88 27BDFFD0 */ addiu $sp, $sp, -0x30
/* AD3C2C 8005CA8C AFBF002C */ sw $ra, 0x2c($sp)
/* AD3C30 8005CA90 AFB30024 */ sw $s3, 0x24($sp)
/* AD3C34 8005CA94 AFB20020 */ sw $s2, 0x20($sp)
/* AD3C38 8005CA98 00809025 */ move $s2, $a0
/* AD3C3C 8005CA9C 00A09825 */ move $s3, $a1
/* AD3C40 8005CAA0 AFB40028 */ sw $s4, 0x28($sp)
/* AD3C44 8005CAA4 AFB1001C */ sw $s1, 0x1c($sp)
/* AD3C48 8005CAA8 AFB00018 */ sw $s0, 0x18($sp)
/* AD3C4C 8005CAAC 0C016DCB */ jal func_8005B72C
/* AD3C50 8005CAB0 AFA7003C */ sw $a3, 0x3c($sp)
/* AD3C54 8005CAB4 8FAE003C */ lw $t6, 0x3c($sp)
/* AD3C58 8005CAB8 3C058014 */ lui $a1, %hi(D_8013A7B8) # $a1, 0x8014
/* AD3C5C 8005CABC 24A5A7B8 */ addiu $a1, %lo(D_8013A7B8) # addiu $a1, $a1, -0x5848
/* AD3C60 8005CAC0 8DCF0008 */ lw $t7, 8($t6)
/* AD3C64 8005CAC4 2406089F */ li $a2, 2207
/* AD3C68 8005CAC8 000F2080 */ sll $a0, $t7, 2
/* AD3C6C 8005CACC 008F2023 */ subu $a0, $a0, $t7
/* AD3C70 8005CAD0 000420C0 */ sll $a0, $a0, 3
/* AD3C74 8005CAD4 008F2023 */ subu $a0, $a0, $t7
/* AD3C78 8005CAD8 00042080 */ sll $a0, $a0, 2
/* AD3C7C 8005CADC 0C01EBB8 */ jal ZeldaArena_MallocDebug
/* AD3C80 8005CAE0 AE6F0018 */ sw $t7, 0x18($s3)
/* AD3C84 8005CAE4 1440000D */ bnez $v0, .L8005CB1C
/* AD3C88 8005CAE8 AE62001C */ sw $v0, 0x1c($s3)
/* AD3C8C 8005CAEC 3C048014 */ lui $a0, %hi(D_8013A7D0) # $a0, 0x8014
/* AD3C90 8005CAF0 0C00084C */ jal osSyncPrintf
/* AD3C94 8005CAF4 2484A7D0 */ addiu $a0, %lo(D_8013A7D0) # addiu $a0, $a0, -0x5830
/* AD3C98 8005CAF8 3C048014 */ lui $a0, %hi(D_8013A7D8) # $a0, 0x8014
/* AD3C9C 8005CAFC 0C00084C */ jal osSyncPrintf
/* AD3CA0 8005CB00 2484A7D8 */ addiu $a0, %lo(D_8013A7D8) # addiu $a0, $a0, -0x5828
/* AD3CA4 8005CB04 3C048014 */ lui $a0, %hi(D_8013A804) # $a0, 0x8014
/* AD3CA8 8005CB08 0C00084C */ jal osSyncPrintf
/* AD3CAC 8005CB0C 2484A804 */ addiu $a0, %lo(D_8013A804) # addiu $a0, $a0, -0x57fc
/* AD3CB0 8005CB10 AE600018 */ sw $zero, 0x18($s3)
/* AD3CB4 8005CB14 1000001D */ b .L8005CB8C
/* AD3CB8 8005CB18 00001025 */ move $v0, $zero
.L8005CB1C:
/* AD3CBC 8005CB1C 8E790018 */ lw $t9, 0x18($s3)
/* AD3CC0 8005CB20 2414005C */ li $s4, 92
/* AD3CC4 8005CB24 8E70001C */ lw $s0, 0x1c($s3)
/* AD3CC8 8005CB28 03340019 */ multu $t9, $s4
/* AD3CCC 8005CB2C 8FB8003C */ lw $t8, 0x3c($sp)
/* AD3CD0 8005CB30 8F11000C */ lw $s1, 0xc($t8)
/* AD3CD4 8005CB34 00004012 */ mflo $t0
/* AD3CD8 8005CB38 02084821 */ addu $t1, $s0, $t0
/* AD3CDC 8005CB3C 0209082B */ sltu $at, $s0, $t1
/* AD3CE0 8005CB40 10200011 */ beqz $at, .L8005CB88
/* AD3CE4 8005CB44 02402025 */ move $a0, $s2
.L8005CB48:
/* AD3CE8 8005CB48 0C0171B0 */ jal func_8005C6C0
/* AD3CEC 8005CB4C 02002825 */ move $a1, $s0
/* AD3CF0 8005CB50 02402025 */ move $a0, $s2
/* AD3CF4 8005CB54 02002825 */ move $a1, $s0
/* AD3CF8 8005CB58 0C0171CC */ jal func_8005C730
/* AD3CFC 8005CB5C 02203025 */ move $a2, $s1
/* AD3D00 8005CB60 8E6B0018 */ lw $t3, 0x18($s3)
/* AD3D04 8005CB64 8E6A001C */ lw $t2, 0x1c($s3)
/* AD3D08 8005CB68 2610005C */ addiu $s0, $s0, 0x5c
/* AD3D0C 8005CB6C 01740019 */ multu $t3, $s4
/* AD3D10 8005CB70 2631003C */ addiu $s1, $s1, 0x3c
/* AD3D14 8005CB74 00006012 */ mflo $t4
/* AD3D18 8005CB78 014C6821 */ addu $t5, $t2, $t4
/* AD3D1C 8005CB7C 020D082B */ sltu $at, $s0, $t5
/* AD3D20 8005CB80 5420FFF1 */ bnezl $at, .L8005CB48
/* AD3D24 8005CB84 02402025 */ move $a0, $s2
.L8005CB88:
/* AD3D28 8005CB88 24020001 */ li $v0, 1
.L8005CB8C:
/* AD3D2C 8005CB8C 8FBF002C */ lw $ra, 0x2c($sp)
/* AD3D30 8005CB90 8FB00018 */ lw $s0, 0x18($sp)
/* AD3D34 8005CB94 8FB1001C */ lw $s1, 0x1c($sp)
/* AD3D38 8005CB98 8FB20020 */ lw $s2, 0x20($sp)
/* AD3D3C 8005CB9C 8FB30024 */ lw $s3, 0x24($sp)
/* AD3D40 8005CBA0 8FB40028 */ lw $s4, 0x28($sp)
/* AD3D44 8005CBA4 03E00008 */ jr $ra
/* AD3D48 8005CBA8 27BD0030 */ addiu $sp, $sp, 0x30

View File

@ -730,7 +730,36 @@ s32 func_8005C964(GlobalContext* globalCtx, ColliderTris* dest, Actor* actor, Co
return 1;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005CA88.s")
//ClObjTris_set5 (maskB = src->maskB)
s32 func_8005CA88(GlobalContext* globalCtx, ColliderTris* dest, Actor* actor, ColliderTrisInit* src) {
ColliderTriItem* destNext;
ColliderTriItemInit* srcNext;
func_8005B72C(globalCtx, &dest->base, actor, &src->body);
dest->count = src->count;
dest->list = ZeldaArena_MallocDebug(dest->count * sizeof(ColliderTriItem), "../z_collision_check.c", 2207);
if (dest->list == NULL) {
osSyncPrintf("\x1b[31m");
osSyncPrintf("ClObjTris_set5():zelda_malloc出来ません\n"); //EUC-JP: 出来ません。 | Can not.
osSyncPrintf("\x1b[m");
dest->count = 0;
return 0;
}
destNext = dest->list;
srcNext = src->list;
while (destNext < dest->list + dest->count)
{
func_8005C6C0(globalCtx, destNext);
func_8005C730(globalCtx, destNext, srcNext);
destNext++;
srcNext++;
}
return 1;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005CBAC.s")