This commit is contained in:
Ethan Roseman 2020-12-23 15:56:34 +09:00
parent 594d5bd2c7
commit 696522aafe
10 changed files with 71 additions and 223 deletions

View File

@ -1,29 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800DD5B4
/* 76A64 800DD5B4 44863000 */ mtc1 $a2, $f6
/* 76A68 800DD5B8 C7A40010 */ lwc1 $f4, 0x10($sp)
/* 76A6C 800DD5BC 46043082 */ mul.s $f2, $f6, $f4
/* 76A70 800DD5C0 00000000 */ nop
/* 76A74 800DD5C4 44874000 */ mtc1 $a3, $f8
/* 76A78 800DD5C8 C7AA0014 */ lwc1 $f10, 0x14($sp)
/* 76A7C 800DD5CC 460A4002 */ mul.s $f0, $f8, $f10
/* 76A80 800DD5D0 00000000 */ nop
/* 76A84 800DD5D4 46001080 */ add.s $f2, $f2, $f0
/* 76A88 800DD5D8 46041102 */ mul.s $f4, $f2, $f4
/* 76A8C 800DD5DC 00000000 */ nop
/* 76A90 800DD5E0 460A1082 */ mul.s $f2, $f2, $f10
/* 76A94 800DD5E4 00000000 */ nop
/* 76A98 800DD5E8 46043181 */ sub.s $f6, $f6, $f4
/* 76A9C 800DD5EC 3C013F00 */ lui $at, 0x3f00
/* 76AA0 800DD5F0 44810000 */ mtc1 $at, $f0
/* 76AA4 800DD5F4 00000000 */ nop
/* 76AA8 800DD5F8 46003182 */ mul.s $f6, $f6, $f0
/* 76AAC 800DD5FC 00000000 */ nop
/* 76AB0 800DD600 46024201 */ sub.s $f8, $f8, $f2
/* 76AB4 800DD604 46004202 */ mul.s $f8, $f8, $f0
/* 76AB8 800DD608 00000000 */ nop
/* 76ABC 800DD60C E4860000 */ swc1 $f6, ($a0)
/* 76AC0 800DD610 03E00008 */ jr $ra
/* 76AC4 800DD614 E4A80000 */ swc1 $f8, ($a1)

View File

@ -1,29 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800DF3FC
/* 788AC 800DF3FC 44863000 */ mtc1 $a2, $f6
/* 788B0 800DF400 C7A40010 */ lwc1 $f4, 0x10($sp)
/* 788B4 800DF404 46043082 */ mul.s $f2, $f6, $f4
/* 788B8 800DF408 00000000 */ nop
/* 788BC 800DF40C 44874000 */ mtc1 $a3, $f8
/* 788C0 800DF410 C7AA0014 */ lwc1 $f10, 0x14($sp)
/* 788C4 800DF414 460A4002 */ mul.s $f0, $f8, $f10
/* 788C8 800DF418 00000000 */ nop
/* 788CC 800DF41C 46001080 */ add.s $f2, $f2, $f0
/* 788D0 800DF420 46041102 */ mul.s $f4, $f2, $f4
/* 788D4 800DF424 00000000 */ nop
/* 788D8 800DF428 460A1082 */ mul.s $f2, $f2, $f10
/* 788DC 800DF42C 00000000 */ nop
/* 788E0 800DF430 46043181 */ sub.s $f6, $f6, $f4
/* 788E4 800DF434 3C013F00 */ lui $at, 0x3f00
/* 788E8 800DF438 44810000 */ mtc1 $at, $f0
/* 788EC 800DF43C 00000000 */ nop
/* 788F0 800DF440 46003182 */ mul.s $f6, $f6, $f0
/* 788F4 800DF444 00000000 */ nop
/* 788F8 800DF448 46024201 */ sub.s $f8, $f8, $f2
/* 788FC 800DF44C 46004202 */ mul.s $f8, $f8, $f0
/* 78900 800DF450 00000000 */ nop
/* 78904 800DF454 E4860000 */ swc1 $f6, ($a0)
/* 78908 800DF458 03E00008 */ jr $ra
/* 7890C 800DF45C E4A80000 */ swc1 $f8, ($a1)

View File

@ -1,31 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800DFBE8
/* 79098 800DFBE8 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 7909C 800DFBEC AFBF0010 */ sw $ra, 0x10($sp)
/* 790A0 800DFBF0 0C03968B */ jal func_800E5A2C
/* 790A4 800DFBF4 00000000 */ nop
/* 790A8 800DFBF8 0C038D8F */ jal collision_main_lateral
/* 790AC 800DFBFC 00000000 */ nop
/* 790B0 800DFC00 0C0392EE */ jal func_800E4BB8
/* 790B4 800DFC04 00000000 */ nop
/* 790B8 800DFC08 3C04800F */ lui $a0, %hi(gPlayerStatusPtr)
/* 790BC 800DFC0C 8C847B30 */ lw $a0, %lo(gPlayerStatusPtr)($a0)
/* 790C0 800DFC10 8C820000 */ lw $v0, ($a0)
/* 790C4 800DFC14 3C030400 */ lui $v1, 0x400
/* 790C8 800DFC18 00431024 */ and $v0, $v0, $v1
/* 790CC 800DFC1C 14400009 */ bnez $v0, .L800DFC44
/* 790D0 800DFC20 00000000 */ nop
/* 790D4 800DFC24 C4800028 */ lwc1 $f0, 0x28($a0)
/* 790D8 800DFC28 3C02800B */ lui $v0, %hi(gCameras)
/* 790DC 800DFC2C 24421D80 */ addiu $v0, $v0, %lo(gCameras)
/* 790E0 800DFC30 E4400060 */ swc1 $f0, 0x60($v0)
/* 790E4 800DFC34 C480002C */ lwc1 $f0, 0x2c($a0)
/* 790E8 800DFC38 E4400064 */ swc1 $f0, 0x64($v0)
/* 790EC 800DFC3C C4800030 */ lwc1 $f0, 0x30($a0)
/* 790F0 800DFC40 E4400068 */ swc1 $f0, 0x68($v0)
.L800DFC44:
/* 790F4 800DFC44 8FBF0010 */ lw $ra, 0x10($sp)
/* 790F8 800DFC48 03E00008 */ jr $ra
/* 790FC 800DFC4C 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,36 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800DFC74
/* 79124 800DFC74 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 79128 800DFC78 AFB00010 */ sw $s0, 0x10($sp)
/* 7912C 800DFC7C 3C108011 */ lui $s0, %hi(gPlayerStatus)
/* 79130 800DFC80 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus)
/* 79134 800DFC84 0200202D */ daddu $a0, $s0, $zero
/* 79138 800DFC88 AFBF0014 */ sw $ra, 0x14($sp)
/* 7913C 800DFC8C 0C00A580 */ jal mem_clear
/* 79140 800DFC90 24050288 */ addiu $a1, $zero, 0x288
/* 79144 800DFC94 24020001 */ addiu $v0, $zero, 1
/* 79148 800DFC98 0C038817 */ jal func_800E205C
/* 7914C 800DFC9C AE020000 */ sw $v0, ($s0)
/* 79150 800DFCA0 8E050028 */ lw $a1, 0x28($s0)
/* 79154 800DFCA4 8E06002C */ lw $a2, 0x2c($s0)
/* 79158 800DFCA8 8E070030 */ lw $a3, 0x30($s0)
/* 7915C 800DFCAC 0C044898 */ jal create_shadow_type
/* 79160 800DFCB0 0000202D */ daddu $a0, $zero, $zero
/* 79164 800DFCB4 0C039ADA */ jal func_800E6B68
/* 79168 800DFCB8 AE0200CC */ sw $v0, 0xcc($s0)
/* 7916C 800DFCBC 0C0382C5 */ jal func_800E0B14
/* 79170 800DFCC0 00000000 */ nop
/* 79174 800DFCC4 0C0381A7 */ jal func_800E069C
/* 79178 800DFCC8 00000000 */ nop
/* 7917C 800DFCCC 0C038145 */ jal func_800E0514
/* 79180 800DFCD0 00000000 */ nop
/* 79184 800DFCD4 0C0380DD */ jal func_800E0374
/* 79188 800DFCD8 00000000 */ nop
/* 7918C 800DFCDC 0C039548 */ jal func_800E5520
/* 79190 800DFCE0 00000000 */ nop
/* 79194 800DFCE4 8FBF0014 */ lw $ra, 0x14($sp)
/* 79198 800DFCE8 8FB00010 */ lw $s0, 0x10($sp)
/* 7919C 800DFCEC 03E00008 */ jr $ra
/* 791A0 800DFCF0 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,27 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800DFCF4
/* 791A4 800DFCF4 3C048011 */ lui $a0, %hi(D_8010EBB0)
/* 791A8 800DFCF8 2484EBB0 */ addiu $a0, $a0, %lo(D_8010EBB0)
/* 791AC 800DFCFC 80830000 */ lb $v1, ($a0)
/* 791B0 800DFD00 24020001 */ addiu $v0, $zero, 1
/* 791B4 800DFD04 1462000E */ bne $v1, $v0, .L800DFD40
/* 791B8 800DFD08 24020006 */ addiu $v0, $zero, 6
/* 791BC 800DFD0C 80830003 */ lb $v1, 3($a0)
/* 791C0 800DFD10 10620009 */ beq $v1, $v0, .L800DFD38
/* 791C4 800DFD14 24020009 */ addiu $v0, $zero, 9
/* 791C8 800DFD18 10620007 */ beq $v1, $v0, .L800DFD38
/* 791CC 800DFD1C 24020007 */ addiu $v0, $zero, 7
/* 791D0 800DFD20 10620005 */ beq $v1, $v0, .L800DFD38
/* 791D4 800DFD24 24020004 */ addiu $v0, $zero, 4
/* 791D8 800DFD28 10620003 */ beq $v1, $v0, .L800DFD38
/* 791DC 800DFD2C 24020008 */ addiu $v0, $zero, 8
/* 791E0 800DFD30 14620003 */ bne $v1, $v0, .L800DFD40
/* 791E4 800DFD34 00000000 */ nop
.L800DFD38:
/* 791E8 800DFD38 03E00008 */ jr $ra
/* 791EC 800DFD3C 0000102D */ daddu $v0, $zero, $zero
.L800DFD40:
/* 791F0 800DFD40 03E00008 */ jr $ra
/* 791F4 800DFD44 24020001 */ addiu $v0, $zero, 1

View File

@ -1,27 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800E0208
/* 796B8 800E0208 3C038007 */ lui $v1, %hi(gGameStatusPtr)
/* 796BC 800E020C 8C63419C */ lw $v1, %lo(gGameStatusPtr)($v1)
/* 796C0 800E0210 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 796C4 800E0214 AFBF0010 */ sw $ra, 0x10($sp)
/* 796C8 800E0218 80620078 */ lb $v0, 0x78($v1)
/* 796CC 800E021C 1040000C */ beqz $v0, .L800E0250
/* 796D0 800E0220 0000202D */ daddu $a0, $zero, $zero
/* 796D4 800E0224 8C620000 */ lw $v0, ($v1)
/* 796D8 800E0228 30420010 */ andi $v0, $v0, 0x10
/* 796DC 800E022C 10400008 */ beqz $v0, .L800E0250
/* 796E0 800E0230 00000000 */ nop
/* 796E4 800E0234 3C028011 */ lui $v0, %hi(D_8010EBB0)
/* 796E8 800E0238 8042EBB0 */ lb $v0, %lo(D_8010EBB0)($v0)
/* 796EC 800E023C 54400004 */ bnel $v0, $zero, .L800E0250
/* 796F0 800E0240 24040001 */ addiu $a0, $zero, 1
/* 796F4 800E0244 0C039769 */ jal set_action_state
/* 796F8 800E0248 00000000 */ nop
/* 796FC 800E024C 24040001 */ addiu $a0, $zero, 1
.L800E0250:
/* 79700 800E0250 8FBF0010 */ lw $ra, 0x10($sp)
/* 79704 800E0254 0080102D */ daddu $v0, $a0, $zero
/* 79708 800E0258 03E00008 */ jr $ra
/* 7970C 800E025C 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,29 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800E0B38
/* 79FE8 800E0B38 3C028007 */ lui $v0, %hi(gGameStatusPtr)
/* 79FEC 800E0B3C 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
/* 79FF0 800E0B40 80420070 */ lb $v0, 0x70($v0)
/* 79FF4 800E0B44 3C048011 */ lui $a0, %hi(gPlayerData)
/* 79FF8 800E0B48 2484F290 */ addiu $a0, $a0, %lo(gPlayerData)
/* 79FFC 800E0B4C 1440000E */ bnez $v0, .L800E0B88
/* 7A000 800E0B50 24050001 */ addiu $a1, $zero, 1
/* 7A004 800E0B54 24830004 */ addiu $v1, $a0, 4
/* 7A008 800E0B58 24840008 */ addiu $a0, $a0, 8
.L800E0B5C:
/* 7A00C 800E0B5C 90820014 */ lbu $v0, 0x14($a0)
/* 7A010 800E0B60 50400005 */ beql $v0, $zero, .L800E0B78
/* 7A014 800E0B64 24630004 */ addiu $v1, $v1, 4
/* 7A018 800E0B68 8C6202C4 */ lw $v0, 0x2c4($v1)
/* 7A01C 800E0B6C 24420001 */ addiu $v0, $v0, 1
/* 7A020 800E0B70 AC6202C4 */ sw $v0, 0x2c4($v1)
/* 7A024 800E0B74 24630004 */ addiu $v1, $v1, 4
.L800E0B78:
/* 7A028 800E0B78 24A50001 */ addiu $a1, $a1, 1
/* 7A02C 800E0B7C 28A2000C */ slti $v0, $a1, 0xc
/* 7A030 800E0B80 1440FFF6 */ bnez $v0, .L800E0B5C
/* 7A034 800E0B84 24840008 */ addiu $a0, $a0, 8
.L800E0B88:
/* 7A038 800E0B88 03E00008 */ jr $ra
/* 7A03C 800E0B8C 00000000 */ nop

View File

@ -84,6 +84,7 @@ void func_800E06C0(s32);
void func_800E97B8(void);
s32 func_800EB168(s32);
Shadow* create_shadow_type(s32 type, f32 x, f32 y, f32 z);
PlayerData* get_player_data(void);

View File

@ -20,7 +20,12 @@ INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DD228);
INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DD44C);
INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DD5B4);
void func_800DD5B4(f32* arg0, f32* arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5) {
f32 temp = (arg2 * arg4) + (arg3 * arg5);
*arg0 = (arg2 - (temp * arg4)) * 0.5f;
*arg1 = (arg3 - (temp * arg5)) * 0.5f;
}
INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DD618);
@ -50,7 +55,12 @@ INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DEE5C);
INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DF15C);
INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DF3FC);
void func_800DF3FC(f32* arg0, f32* arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5) {
f32 temp = (arg2 * arg4) + (arg3 * arg5);
*arg0 = (arg2 - (temp * arg4)) * 0.5f;
*arg1 = (arg3 - (temp * arg5)) * 0.5f;
}
INCLUDE_ASM(s32, "code_759b0_len_61b0", test_player_lateral);
@ -60,15 +70,45 @@ INCLUDE_ASM(s32, "code_759b0_len_61b0", check_input_use_partner);
INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DFAAC);
INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DFBE8);
void func_800DFBE8(void) {
func_800E5A2C();
collision_main_lateral();
func_800E4BB8();
if (!(gPlayerStatusPtr->flags & 0x4000000)) {
Camera* camera = &gCameras[0];
camera->targetPos.x = gPlayerStatusPtr->position.x;
camera->targetPos.y = gPlayerStatusPtr->position.y;
camera->targetPos.z = gPlayerStatusPtr->position.z;
}
}
void clear_player_status(void) {
mem_clear(&gPlayerStatus, sizeof(gPlayerStatus));
}
INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DFC74);
void func_800DFC74(void) {
PlayerStatus* playerStatus = PLAYER_STATUS;
INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DFCF4);
mem_clear(playerStatus, sizeof(PlayerStatus));
playerStatus->flags = 1;
func_800E205C();
playerStatus->shadowID = create_shadow_type(0, playerStatus->position.x, playerStatus->position.y, playerStatus->position.z);
func_800E6B68();
func_800E0B14();
func_800E069C();
func_800E0514();
func_800E0374();
func_800E5520();
}
s32 func_800DFCF4(void) {
if (D_8010EBB0[0] == 1 && (D_8010EBB0[3] == 6 || D_8010EBB0[3] == 9 || D_8010EBB0[3] == 7 || D_8010EBB0[3] == 4 || D_8010EBB0[3] == 8)) {
return 0;
}
return 1;
}
INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DFD48);
@ -163,7 +203,18 @@ void func_800E01DC(void) {
}
}
INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800E0208);
s32 func_800E0208(void) {
GameStatus* gameStatus = GAME_STATUS;
s32 ret = 0;
if (gameStatus->disableScripts && (gameStatus->currentButtons & 0x10)) {
if (D_8010EBB0[0] == 0) {
set_action_state(ActionState_IDLE);
}
ret = 1;
}
return ret;
}
void func_800E0260(void) {
func_800E0658();
@ -243,7 +294,19 @@ void func_800E0B14(void) {
gPlayerStatusPtr->animFlags &= ~0x10;
}
INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800E0B38);
void func_800E0B38(void) {
PlayerData* playerData = PLAYER_DATA;
if (!GAME_STATUS->isBattle) {
s32 i;
for (i = 1; i < ARRAY_COUNT(playerData->unk_2C4); i++) {
if (playerData->partners[i].enabled) {
playerData->unk_2C4[i] += 1;
}
}
}
}
INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800E0B90);

View File

@ -1,8 +0,0 @@
#ifndef _CODE_A5DD0_LEN_114E0_H_
#define _CODE_A5DD0_LEN_114E0_H_
#include "common.h"
Shadow* create_shadow_type(s32 type, f32 x, f32 y, f32 z);
#endif