From fd7acde70b59bbb647185407237182715ea001bb Mon Sep 17 00:00:00 2001 From: JoshDuMan <40190173+JoshDuMan@users.noreply.github.com> Date: Wed, 10 Nov 2021 13:57:55 -0500 Subject: [PATCH] Match attack submenus (#523) * Match func_80263914 * Match func_802634B8 * Match func_802636E4 --- include/common_structs.h | 2 +- include/enums.h | 1 + src/190B20.c | 218 +++++++++++++++++- .../asm/nonmatchings/190B20/func_802634B8.s | 156 ------------- .../asm/nonmatchings/190B20/func_802636E4.s | 157 ------------- .../asm/nonmatchings/190B20/func_80263914.s | 142 ------------ 6 files changed, 217 insertions(+), 459 deletions(-) delete mode 100644 ver/us/asm/nonmatchings/190B20/func_802634B8.s delete mode 100644 ver/us/asm/nonmatchings/190B20/func_802636E4.s delete mode 100644 ver/us/asm/nonmatchings/190B20/func_80263914.s diff --git a/include/common_structs.h b/include/common_structs.h index 8a09b64957..20177535d3 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -766,7 +766,7 @@ typedef struct BattleStatus { /* 0x1AA */ char unk_1AA[4]; /* 0x1AE */ s16 submenuIcons[24]; /* icon IDs */ /* 0x1DE */ u8 submenuMoves[24]; /* move IDs */ - /* 0x1F6 */ u8 submenuEnabled[24]; + /* 0x1F6 */ s8 submenuEnabled[24]; /* 0x20E */ u8 submenuMoveCount; /* 0x20F */ char unk_20F; /* 0x210 */ s32 currentButtonsDown; diff --git a/include/enums.h b/include/enums.h index 895dd97b9f..8caa35ff9f 100644 --- a/include/enums.h +++ b/include/enums.h @@ -1803,6 +1803,7 @@ enum BattleStatusFlags1 { }; enum BattleStatusFlags2 { + BS_FLAGS2_1000 = 0x1000, BS_FLAGS2_1000000 = 0x1000000, }; diff --git a/src/190B20.c b/src/190B20.c index 124e00cf32..38c722d035 100644 --- a/src/190B20.c +++ b/src/190B20.c @@ -1129,11 +1129,223 @@ s32 btl_check_player_defeated(void) { return TRUE; } -INCLUDE_ASM(s32, "190B20", func_802634B8); +void func_802634B8(void) { + BattleStatus* battleStatus = &gBattleStatus; + PlayerData* playerData = &gPlayerData; + Actor* player = battleStatus->playerActor; + StaticMove* move; + s32 i; + s32 moveCount; + s32 phi_s6; + s32 fpCost; -INCLUDE_ASM(s32, "190B20", func_802636E4); + if (playerData->bootsLevel == -1) { + battleStatus->unk_7D[1] = 0; + return; + } -INCLUDE_ASM(s32, "190B20", func_80263914); + for (i = 0; i < ARRAY_COUNT(battleStatus->submenuMoves); i++) { + battleStatus->submenuMoves[i] = 0; + } + + moveCount = 1; + battleStatus->submenuMoves[0] = playerData->bootsLevel + 26; + battleStatus->submenuIcons[0] = 0x155; + do { + for (i = 0; i < ARRAY_COUNT(playerData->equippedBadges); i++) { + s16 badges = playerData->equippedBadges[i]; + if (badges != 0) { + StaticMove* moveTable = gMoveTable; + u8 moveID = gItemTable[badges].moveID; + move = &moveTable[moveID]; + if ((s8) move->battleSubmenu == 2) { + battleStatus->submenuMoves[moveCount] = moveID; + battleStatus->submenuIcons[moveCount] = playerData->equippedBadges[i]; + moveCount++; + } + } + } + } while (0); + battleStatus->submenuMoveCount = moveCount; + + phi_s6 = FALSE; + for (i = 0; i < battleStatus->submenuMoveCount; i++) { + move = &gMoveTable[battleStatus->submenuMoves[i]]; + fpCost = move->costFP; + if (fpCost != 0) { + fpCost -= player_team_is_ability_active(player, ABILITY_FLOWER_SAVER); + fpCost -= player_team_is_ability_active(player, ABILITY_FLOWER_FANATIC) * 2; + if (fpCost < 1) { + fpCost = 1; + } + } + battleStatus->moveCategory = 0; + battleStatus->selectedItemID = playerData->bootsLevel; + battleStatus->currentTargetListFlags = move->flags; + player_create_target_list(player); + if (player->targetListLength != 0) { + phi_s6 = TRUE; + battleStatus->submenuEnabled[i] = 1; + } + + if (playerData->curFP < fpCost) { + battleStatus->submenuEnabled[i] = 0; + } + if (player->targetListLength == 0) { + battleStatus->submenuEnabled[i] = -2; + } + if ((gBattleStatus.flags2 & BS_FLAGS2_1000) != 0) { + battleStatus->submenuEnabled[moveCount] = -1; + } + } + + if (!phi_s6) { + battleStatus->unk_7D[1] = -1; + } else { + battleStatus->unk_7D[1] = 1; + } +} + +void func_802636E4(void) { + BattleStatus* battleStatus = &gBattleStatus; + PlayerData* playerData = &gPlayerData; + Actor* player = battleStatus->playerActor; + StaticMove* move; + s32 i; + s32 moveCount; + s32 phi_s6; + s32 fpCost; + + if (playerData->hammerLevel == -1) { + battleStatus->unk_7D[2] = 0; + return; + } + + for (i = 0; i < ARRAY_COUNT(battleStatus->submenuMoves); i++) { + battleStatus->submenuMoves[i] = 0; + } + + moveCount = 1; + battleStatus->submenuMoves[0] = playerData->hammerLevel + 3; + battleStatus->submenuIcons[0] = 0x155; + do { + for (i = 0; i < ARRAY_COUNT(playerData->equippedBadges); i++) { + s16 badges = playerData->equippedBadges[i]; + if (badges != 0) { + StaticMove* moveTable = gMoveTable; + u8 moveID = gItemTable[badges].moveID; + move = &moveTable[moveID]; + if ((s8) move->battleSubmenu == 1) { + battleStatus->submenuMoves[moveCount] = moveID; + battleStatus->submenuIcons[moveCount] = playerData->equippedBadges[i]; + moveCount++; + } + } + } + } while (0); + battleStatus->submenuMoveCount = moveCount; + + phi_s6 = FALSE; + for (i = 0; i < battleStatus->submenuMoveCount; i++) { + move = &gMoveTable[battleStatus->submenuMoves[i]]; + fpCost = move->costFP; + if (fpCost != 0) { + fpCost -= player_team_is_ability_active(player, ABILITY_FLOWER_SAVER); + fpCost -= player_team_is_ability_active(player, ABILITY_FLOWER_FANATIC) * 2; + if (fpCost < 1) { + fpCost = 1; + } + } + battleStatus->moveCategory = 1; + battleStatus->selectedItemID = playerData->hammerLevel; + battleStatus->currentTargetListFlags = move->flags; + player_create_target_list(player); + if (player->targetListLength != 0) { + phi_s6 = TRUE; + battleStatus->submenuEnabled[i] = 1; + } + + if (playerData->curFP < fpCost) { + battleStatus->submenuEnabled[i] = 0; + } + if (player->targetListLength == 0) { + battleStatus->submenuEnabled[i] = -2; + } + if ((gBattleStatus.flags2 & BS_FLAGS2_1000) != 0) { + battleStatus->submenuEnabled[moveCount] = -1; + } + } + + if (!phi_s6) { + battleStatus->unk_7D[2] = -1; + } else { + battleStatus->unk_7D[2] = 1; + } +} + +void func_80263914(void) { + PlayerData* playerData = &gPlayerData; + BattleStatus* battleStatus = &gBattleStatus; + Actor* player = battleStatus->playerActor; + Actor* partner = battleStatus->partnerActor; + s32 fpCost; + s32 i; + s32 phi_s6; + + for (i = 0; i < ARRAY_COUNT(battleStatus->submenuMoves); i++) { + battleStatus->submenuMoves[i] = 0; + } + + battleStatus->submenuMoveCount = partner->staticActorData->level + 2; + // First move is changed each level + battleStatus->submenuMoves[0] = playerData->currentPartner * 6 + 0x7D + partner->staticActorData->level; + + for (i = 1; i < battleStatus->submenuMoveCount; i++) { + battleStatus->submenuMoves[i] = playerData->currentPartner * 6 + 0x7F + i; + } + + phi_s6 = FALSE; + for (i = 0; i < battleStatus->submenuMoveCount; i++){ + StaticMove* move = &gMoveTable[battleStatus->submenuMoves[i]]; + fpCost = move->costFP; + if (fpCost != 0) { + fpCost -= player_team_is_ability_active(player, ABILITY_FLOWER_SAVER); + fpCost -= player_team_is_ability_active(player, ABILITY_FLOWER_FANATIC) * 2; + if (fpCost < 1) { + fpCost = 1; + } + } + + battleStatus->moveCategory = 5; + battleStatus->selectedItemID = partner->staticActorData->level; + battleStatus->currentTargetListFlags = move->flags; + + player_create_target_list(partner); + if (partner->targetListLength != 0){ + phi_s6 = TRUE; + battleStatus->submenuEnabled[i] = 1; + } + + if (partner->targetListLength == 0) { + battleStatus->submenuEnabled[i] = -2; + } + + if (playerData->curFP < fpCost) { + battleStatus->submenuEnabled[i] = 0; + } + + if (gBattleStatus.flags2 & BS_FLAGS2_1000) { + battleStatus->submenuEnabled[i] = -1; + } + + } + + if (!phi_s6) { + battleStatus->unk_7D[3] = -1; + } else { + battleStatus->unk_7D[3] = 1; + } +} s32 count_power_plus(s32 arg0) { s32 pp; diff --git a/ver/us/asm/nonmatchings/190B20/func_802634B8.s b/ver/us/asm/nonmatchings/190B20/func_802634B8.s deleted file mode 100644 index b1cf428ced..0000000000 --- a/ver/us/asm/nonmatchings/190B20/func_802634B8.s +++ /dev/null @@ -1,156 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802634B8 -/* 191D98 802634B8 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 191D9C 802634BC AFB40020 */ sw $s4, 0x20($sp) -/* 191DA0 802634C0 3C14800E */ lui $s4, %hi(gBattleStatus) -/* 191DA4 802634C4 2694C070 */ addiu $s4, $s4, %lo(gBattleStatus) -/* 191DA8 802634C8 AFB7002C */ sw $s7, 0x2c($sp) -/* 191DAC 802634CC 3C178011 */ lui $s7, %hi(gPlayerData) -/* 191DB0 802634D0 26F7F290 */ addiu $s7, $s7, %lo(gPlayerData) -/* 191DB4 802634D4 2403FFFF */ addiu $v1, $zero, -1 -/* 191DB8 802634D8 AFBF0034 */ sw $ra, 0x34($sp) -/* 191DBC 802634DC AFBE0030 */ sw $fp, 0x30($sp) -/* 191DC0 802634E0 AFB60028 */ sw $s6, 0x28($sp) -/* 191DC4 802634E4 AFB50024 */ sw $s5, 0x24($sp) -/* 191DC8 802634E8 AFB3001C */ sw $s3, 0x1c($sp) -/* 191DCC 802634EC AFB20018 */ sw $s2, 0x18($sp) -/* 191DD0 802634F0 AFB10014 */ sw $s1, 0x14($sp) -/* 191DD4 802634F4 AFB00010 */ sw $s0, 0x10($sp) -/* 191DD8 802634F8 82E20000 */ lb $v0, ($s7) -/* 191DDC 802634FC 8E9500D8 */ lw $s5, 0xd8($s4) -/* 191DE0 80263500 14430003 */ bne $v0, $v1, .L80263510 -/* 191DE4 80263504 24120017 */ addiu $s2, $zero, 0x17 -/* 191DE8 80263508 08098DAD */ j .L802636B4 -/* 191DEC 8026350C A280007E */ sb $zero, 0x7e($s4) -.L80263510: -/* 191DF0 80263510 02921021 */ addu $v0, $s4, $s2 -.L80263514: -/* 191DF4 80263514 A04001DE */ sb $zero, 0x1de($v0) -/* 191DF8 80263518 2652FFFF */ addiu $s2, $s2, -1 -/* 191DFC 8026351C 0641FFFD */ bgez $s2, .L80263514 -/* 191E00 80263520 2442FFFF */ addiu $v0, $v0, -1 -/* 191E04 80263524 24060001 */ addiu $a2, $zero, 1 -/* 191E08 80263528 92E20000 */ lbu $v0, ($s7) -/* 191E0C 8026352C 24030155 */ addiu $v1, $zero, 0x155 -/* 191E10 80263530 A68301AE */ sh $v1, 0x1ae($s4) -/* 191E14 80263534 2442001A */ addiu $v0, $v0, 0x1a -/* 191E18 80263538 A28201DE */ sb $v0, 0x1de($s4) -/* 191E1C 8026353C 0000902D */ daddu $s2, $zero, $zero -/* 191E20 80263540 3C098009 */ lui $t1, %hi(gMoveTable) -/* 191E24 80263544 2529F060 */ addiu $t1, $t1, %lo(gMoveTable) -/* 191E28 80263548 3C088008 */ lui $t0, %hi(gItemTable) -/* 191E2C 8026354C 250878E0 */ addiu $t0, $t0, %lo(gItemTable) -/* 191E30 80263550 24070002 */ addiu $a3, $zero, 2 -/* 191E34 80263554 02E0202D */ daddu $a0, $s7, $zero -/* 191E38 80263558 02872821 */ addu $a1, $s4, $a3 -.L8026355C: -/* 191E3C 8026355C 84820208 */ lh $v0, 0x208($a0) -/* 191E40 80263560 10400011 */ beqz $v0, .L802635A8 -/* 191E44 80263564 26520001 */ addiu $s2, $s2, 1 -/* 191E48 80263568 00021140 */ sll $v0, $v0, 5 -/* 191E4C 8026356C 00481021 */ addu $v0, $v0, $t0 -/* 191E50 80263570 9043001A */ lbu $v1, 0x1a($v0) -/* 191E54 80263574 00031080 */ sll $v0, $v1, 2 -/* 191E58 80263578 00431021 */ addu $v0, $v0, $v1 -/* 191E5C 8026357C 00021080 */ sll $v0, $v0, 2 -/* 191E60 80263580 00498821 */ addu $s1, $v0, $t1 -/* 191E64 80263584 82220010 */ lb $v0, 0x10($s1) -/* 191E68 80263588 14470007 */ bne $v0, $a3, .L802635A8 -/* 191E6C 8026358C 00000000 */ nop -/* 191E70 80263590 02861021 */ addu $v0, $s4, $a2 -/* 191E74 80263594 A04301DE */ sb $v1, 0x1de($v0) -/* 191E78 80263598 94820208 */ lhu $v0, 0x208($a0) -/* 191E7C 8026359C 24C60001 */ addiu $a2, $a2, 1 -/* 191E80 802635A0 A4A201AE */ sh $v0, 0x1ae($a1) -/* 191E84 802635A4 24A50002 */ addiu $a1, $a1, 2 -.L802635A8: -/* 191E88 802635A8 2A420040 */ slti $v0, $s2, 0x40 -/* 191E8C 802635AC 1440FFEB */ bnez $v0, .L8026355C -/* 191E90 802635B0 24840002 */ addiu $a0, $a0, 2 -/* 191E94 802635B4 A286020E */ sb $a2, 0x20e($s4) -/* 191E98 802635B8 0000902D */ daddu $s2, $zero, $zero -/* 191E9C 802635BC 30C200FF */ andi $v0, $a2, 0xff -/* 191EA0 802635C0 10400038 */ beqz $v0, .L802636A4 -/* 191EA4 802635C4 0240B02D */ daddu $s6, $s2, $zero -/* 191EA8 802635C8 0286F021 */ addu $fp, $s4, $a2 -/* 191EAC 802635CC 0280982D */ daddu $s3, $s4, $zero -.L802635D0: -/* 191EB0 802635D0 926301DE */ lbu $v1, 0x1de($s3) -/* 191EB4 802635D4 3C0A8009 */ lui $t2, %hi(gMoveTable) -/* 191EB8 802635D8 254AF060 */ addiu $t2, $t2, %lo(gMoveTable) -/* 191EBC 802635DC 00031080 */ sll $v0, $v1, 2 -/* 191EC0 802635E0 00431021 */ addu $v0, $v0, $v1 -/* 191EC4 802635E4 00021080 */ sll $v0, $v0, 2 -/* 191EC8 802635E8 004A8821 */ addu $s1, $v0, $t2 -/* 191ECC 802635EC 82300011 */ lb $s0, 0x11($s1) -/* 191ED0 802635F0 1200000B */ beqz $s0, .L80263620 -/* 191ED4 802635F4 02A0202D */ daddu $a0, $s5, $zero -/* 191ED8 802635F8 0C099CAB */ jal player_team_is_ability_active -/* 191EDC 802635FC 24050018 */ addiu $a1, $zero, 0x18 -/* 191EE0 80263600 02028023 */ subu $s0, $s0, $v0 -/* 191EE4 80263604 02A0202D */ daddu $a0, $s5, $zero -/* 191EE8 80263608 0C099CAB */ jal player_team_is_ability_active -/* 191EEC 8026360C 24050026 */ addiu $a1, $zero, 0x26 -/* 191EF0 80263610 00021040 */ sll $v0, $v0, 1 -/* 191EF4 80263614 02028023 */ subu $s0, $s0, $v0 -/* 191EF8 80263618 5A000001 */ blezl $s0, .L80263620 -/* 191EFC 8026361C 24100001 */ addiu $s0, $zero, 1 -.L80263620: -/* 191F00 80263620 92E20000 */ lbu $v0, ($s7) -/* 191F04 80263624 A2800178 */ sb $zero, 0x178($s4) -/* 191F08 80263628 00021600 */ sll $v0, $v0, 0x18 -/* 191F0C 8026362C 00021603 */ sra $v0, $v0, 0x18 -/* 191F10 80263630 A682017A */ sh $v0, 0x17a($s4) -/* 191F14 80263634 8E220004 */ lw $v0, 4($s1) -/* 191F18 80263638 02A0202D */ daddu $a0, $s5, $zero -/* 191F1C 8026363C 0C098C0B */ jal player_create_target_list -/* 191F20 80263640 AE820184 */ sw $v0, 0x184($s4) -/* 191F24 80263644 82A2040C */ lb $v0, 0x40c($s5) -/* 191F28 80263648 10400003 */ beqz $v0, .L80263658 -/* 191F2C 8026364C 00000000 */ nop -/* 191F30 80263650 24160001 */ addiu $s6, $zero, 1 -/* 191F34 80263654 A27601F6 */ sb $s6, 0x1f6($s3) -.L80263658: -/* 191F38 80263658 82E20005 */ lb $v0, 5($s7) -/* 191F3C 8026365C 0050102A */ slt $v0, $v0, $s0 -/* 191F40 80263660 54400001 */ bnel $v0, $zero, .L80263668 -/* 191F44 80263664 A26001F6 */ sb $zero, 0x1f6($s3) -.L80263668: -/* 191F48 80263668 82A2040C */ lb $v0, 0x40c($s5) -/* 191F4C 8026366C 14400002 */ bnez $v0, .L80263678 -/* 191F50 80263670 2402FFFE */ addiu $v0, $zero, -2 -/* 191F54 80263674 A26201F6 */ sb $v0, 0x1f6($s3) -.L80263678: -/* 191F58 80263678 3C02800E */ lui $v0, %hi(gBattleStatus+0x4) -/* 191F5C 8026367C 8C42C074 */ lw $v0, %lo(gBattleStatus+0x4)($v0) -/* 191F60 80263680 30421000 */ andi $v0, $v0, 0x1000 -/* 191F64 80263684 10400002 */ beqz $v0, .L80263690 -/* 191F68 80263688 2402FFFF */ addiu $v0, $zero, -1 -/* 191F6C 8026368C A3C201F6 */ sb $v0, 0x1f6($fp) -.L80263690: -/* 191F70 80263690 9282020E */ lbu $v0, 0x20e($s4) -/* 191F74 80263694 26520001 */ addiu $s2, $s2, 1 -/* 191F78 80263698 0242102A */ slt $v0, $s2, $v0 -/* 191F7C 8026369C 1440FFCC */ bnez $v0, .L802635D0 -/* 191F80 802636A0 26730001 */ addiu $s3, $s3, 1 -.L802636A4: -/* 191F84 802636A4 16C00002 */ bnez $s6, .L802636B0 -/* 191F88 802636A8 24020001 */ addiu $v0, $zero, 1 -/* 191F8C 802636AC 2402FFFF */ addiu $v0, $zero, -1 -.L802636B0: -/* 191F90 802636B0 A282007E */ sb $v0, 0x7e($s4) -.L802636B4: -/* 191F94 802636B4 8FBF0034 */ lw $ra, 0x34($sp) -/* 191F98 802636B8 8FBE0030 */ lw $fp, 0x30($sp) -/* 191F9C 802636BC 8FB7002C */ lw $s7, 0x2c($sp) -/* 191FA0 802636C0 8FB60028 */ lw $s6, 0x28($sp) -/* 191FA4 802636C4 8FB50024 */ lw $s5, 0x24($sp) -/* 191FA8 802636C8 8FB40020 */ lw $s4, 0x20($sp) -/* 191FAC 802636CC 8FB3001C */ lw $s3, 0x1c($sp) -/* 191FB0 802636D0 8FB20018 */ lw $s2, 0x18($sp) -/* 191FB4 802636D4 8FB10014 */ lw $s1, 0x14($sp) -/* 191FB8 802636D8 8FB00010 */ lw $s0, 0x10($sp) -/* 191FBC 802636DC 03E00008 */ jr $ra -/* 191FC0 802636E0 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/ver/us/asm/nonmatchings/190B20/func_802636E4.s b/ver/us/asm/nonmatchings/190B20/func_802636E4.s deleted file mode 100644 index e8a933cbea..0000000000 --- a/ver/us/asm/nonmatchings/190B20/func_802636E4.s +++ /dev/null @@ -1,157 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802636E4 -/* 191FC4 802636E4 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 191FC8 802636E8 AFB40020 */ sw $s4, 0x20($sp) -/* 191FCC 802636EC 3C14800E */ lui $s4, %hi(gBattleStatus) -/* 191FD0 802636F0 2694C070 */ addiu $s4, $s4, %lo(gBattleStatus) -/* 191FD4 802636F4 AFB7002C */ sw $s7, 0x2c($sp) -/* 191FD8 802636F8 3C178011 */ lui $s7, %hi(gPlayerData) -/* 191FDC 802636FC 26F7F290 */ addiu $s7, $s7, %lo(gPlayerData) -/* 191FE0 80263700 2403FFFF */ addiu $v1, $zero, -1 -/* 191FE4 80263704 AFBF0034 */ sw $ra, 0x34($sp) -/* 191FE8 80263708 AFBE0030 */ sw $fp, 0x30($sp) -/* 191FEC 8026370C AFB60028 */ sw $s6, 0x28($sp) -/* 191FF0 80263710 AFB50024 */ sw $s5, 0x24($sp) -/* 191FF4 80263714 AFB3001C */ sw $s3, 0x1c($sp) -/* 191FF8 80263718 AFB20018 */ sw $s2, 0x18($sp) -/* 191FFC 8026371C AFB10014 */ sw $s1, 0x14($sp) -/* 192000 80263720 AFB00010 */ sw $s0, 0x10($sp) -/* 192004 80263724 82E20001 */ lb $v0, 1($s7) -/* 192008 80263728 8E9500D8 */ lw $s5, 0xd8($s4) -/* 19200C 8026372C 14430003 */ bne $v0, $v1, .L8026373C -/* 192010 80263730 24120017 */ addiu $s2, $zero, 0x17 -/* 192014 80263734 08098E39 */ j .L802638E4 -/* 192018 80263738 A280007F */ sb $zero, 0x7f($s4) -.L8026373C: -/* 19201C 8026373C 02921021 */ addu $v0, $s4, $s2 -.L80263740: -/* 192020 80263740 A04001DE */ sb $zero, 0x1de($v0) -/* 192024 80263744 2652FFFF */ addiu $s2, $s2, -1 -/* 192028 80263748 0641FFFD */ bgez $s2, .L80263740 -/* 19202C 8026374C 2442FFFF */ addiu $v0, $v0, -1 -/* 192030 80263750 24060001 */ addiu $a2, $zero, 1 -/* 192034 80263754 92E20001 */ lbu $v0, 1($s7) -/* 192038 80263758 24030155 */ addiu $v1, $zero, 0x155 -/* 19203C 8026375C A68301AE */ sh $v1, 0x1ae($s4) -/* 192040 80263760 24420003 */ addiu $v0, $v0, 3 -/* 192044 80263764 A28201DE */ sb $v0, 0x1de($s4) -/* 192048 80263768 0000902D */ daddu $s2, $zero, $zero -/* 19204C 8026376C 3C098009 */ lui $t1, %hi(gMoveTable) -/* 192050 80263770 2529F060 */ addiu $t1, $t1, %lo(gMoveTable) -/* 192054 80263774 3C088008 */ lui $t0, %hi(gItemTable) -/* 192058 80263778 250878E0 */ addiu $t0, $t0, %lo(gItemTable) -/* 19205C 8026377C 00C0382D */ daddu $a3, $a2, $zero -/* 192060 80263780 02E0202D */ daddu $a0, $s7, $zero -/* 192064 80263784 26850002 */ addiu $a1, $s4, 2 -.L80263788: -/* 192068 80263788 84820208 */ lh $v0, 0x208($a0) -/* 19206C 8026378C 10400011 */ beqz $v0, .L802637D4 -/* 192070 80263790 26520001 */ addiu $s2, $s2, 1 -/* 192074 80263794 00021140 */ sll $v0, $v0, 5 -/* 192078 80263798 00481021 */ addu $v0, $v0, $t0 -/* 19207C 8026379C 9043001A */ lbu $v1, 0x1a($v0) -/* 192080 802637A0 00031080 */ sll $v0, $v1, 2 -/* 192084 802637A4 00431021 */ addu $v0, $v0, $v1 -/* 192088 802637A8 00021080 */ sll $v0, $v0, 2 -/* 19208C 802637AC 00498821 */ addu $s1, $v0, $t1 -/* 192090 802637B0 82220010 */ lb $v0, 0x10($s1) -/* 192094 802637B4 14470007 */ bne $v0, $a3, .L802637D4 -/* 192098 802637B8 00000000 */ nop -/* 19209C 802637BC 02861021 */ addu $v0, $s4, $a2 -/* 1920A0 802637C0 A04301DE */ sb $v1, 0x1de($v0) -/* 1920A4 802637C4 94820208 */ lhu $v0, 0x208($a0) -/* 1920A8 802637C8 24C60001 */ addiu $a2, $a2, 1 -/* 1920AC 802637CC A4A201AE */ sh $v0, 0x1ae($a1) -/* 1920B0 802637D0 24A50002 */ addiu $a1, $a1, 2 -.L802637D4: -/* 1920B4 802637D4 2A420040 */ slti $v0, $s2, 0x40 -/* 1920B8 802637D8 1440FFEB */ bnez $v0, .L80263788 -/* 1920BC 802637DC 24840002 */ addiu $a0, $a0, 2 -/* 1920C0 802637E0 A286020E */ sb $a2, 0x20e($s4) -/* 1920C4 802637E4 0000902D */ daddu $s2, $zero, $zero -/* 1920C8 802637E8 30C200FF */ andi $v0, $a2, 0xff -/* 1920CC 802637EC 10400039 */ beqz $v0, .L802638D4 -/* 1920D0 802637F0 0240B02D */ daddu $s6, $s2, $zero -/* 1920D4 802637F4 0286F021 */ addu $fp, $s4, $a2 -/* 1920D8 802637F8 0280982D */ daddu $s3, $s4, $zero -.L802637FC: -/* 1920DC 802637FC 926301DE */ lbu $v1, 0x1de($s3) -/* 1920E0 80263800 3C0A8009 */ lui $t2, %hi(gMoveTable) -/* 1920E4 80263804 254AF060 */ addiu $t2, $t2, %lo(gMoveTable) -/* 1920E8 80263808 00031080 */ sll $v0, $v1, 2 -/* 1920EC 8026380C 00431021 */ addu $v0, $v0, $v1 -/* 1920F0 80263810 00021080 */ sll $v0, $v0, 2 -/* 1920F4 80263814 004A8821 */ addu $s1, $v0, $t2 -/* 1920F8 80263818 82300011 */ lb $s0, 0x11($s1) -/* 1920FC 8026381C 1200000B */ beqz $s0, .L8026384C -/* 192100 80263820 02A0202D */ daddu $a0, $s5, $zero -/* 192104 80263824 0C099CAB */ jal player_team_is_ability_active -/* 192108 80263828 24050018 */ addiu $a1, $zero, 0x18 -/* 19210C 8026382C 02028023 */ subu $s0, $s0, $v0 -/* 192110 80263830 02A0202D */ daddu $a0, $s5, $zero -/* 192114 80263834 0C099CAB */ jal player_team_is_ability_active -/* 192118 80263838 24050026 */ addiu $a1, $zero, 0x26 -/* 19211C 8026383C 00021040 */ sll $v0, $v0, 1 -/* 192120 80263840 02028023 */ subu $s0, $s0, $v0 -/* 192124 80263844 5A000001 */ blezl $s0, .L8026384C -/* 192128 80263848 24100001 */ addiu $s0, $zero, 1 -.L8026384C: -/* 19212C 8026384C 92E30001 */ lbu $v1, 1($s7) -/* 192130 80263850 24020001 */ addiu $v0, $zero, 1 -/* 192134 80263854 A2820178 */ sb $v0, 0x178($s4) -/* 192138 80263858 00031E00 */ sll $v1, $v1, 0x18 -/* 19213C 8026385C 00031E03 */ sra $v1, $v1, 0x18 -/* 192140 80263860 A683017A */ sh $v1, 0x17a($s4) -/* 192144 80263864 8E220004 */ lw $v0, 4($s1) -/* 192148 80263868 02A0202D */ daddu $a0, $s5, $zero -/* 19214C 8026386C 0C098C0B */ jal player_create_target_list -/* 192150 80263870 AE820184 */ sw $v0, 0x184($s4) -/* 192154 80263874 82A2040C */ lb $v0, 0x40c($s5) -/* 192158 80263878 10400003 */ beqz $v0, .L80263888 -/* 19215C 8026387C 00000000 */ nop -/* 192160 80263880 24160001 */ addiu $s6, $zero, 1 -/* 192164 80263884 A27601F6 */ sb $s6, 0x1f6($s3) -.L80263888: -/* 192168 80263888 82E20005 */ lb $v0, 5($s7) -/* 19216C 8026388C 0050102A */ slt $v0, $v0, $s0 -/* 192170 80263890 54400001 */ bnel $v0, $zero, .L80263898 -/* 192174 80263894 A26001F6 */ sb $zero, 0x1f6($s3) -.L80263898: -/* 192178 80263898 82A2040C */ lb $v0, 0x40c($s5) -/* 19217C 8026389C 14400002 */ bnez $v0, .L802638A8 -/* 192180 802638A0 2402FFFE */ addiu $v0, $zero, -2 -/* 192184 802638A4 A26201F6 */ sb $v0, 0x1f6($s3) -.L802638A8: -/* 192188 802638A8 3C02800E */ lui $v0, %hi(gBattleStatus+0x4) -/* 19218C 802638AC 8C42C074 */ lw $v0, %lo(gBattleStatus+0x4)($v0) -/* 192190 802638B0 30421000 */ andi $v0, $v0, 0x1000 -/* 192194 802638B4 10400002 */ beqz $v0, .L802638C0 -/* 192198 802638B8 2402FFFF */ addiu $v0, $zero, -1 -/* 19219C 802638BC A3C201F6 */ sb $v0, 0x1f6($fp) -.L802638C0: -/* 1921A0 802638C0 9282020E */ lbu $v0, 0x20e($s4) -/* 1921A4 802638C4 26520001 */ addiu $s2, $s2, 1 -/* 1921A8 802638C8 0242102A */ slt $v0, $s2, $v0 -/* 1921AC 802638CC 1440FFCB */ bnez $v0, .L802637FC -/* 1921B0 802638D0 26730001 */ addiu $s3, $s3, 1 -.L802638D4: -/* 1921B4 802638D4 16C00002 */ bnez $s6, .L802638E0 -/* 1921B8 802638D8 24020001 */ addiu $v0, $zero, 1 -/* 1921BC 802638DC 2402FFFF */ addiu $v0, $zero, -1 -.L802638E0: -/* 1921C0 802638E0 A282007F */ sb $v0, 0x7f($s4) -.L802638E4: -/* 1921C4 802638E4 8FBF0034 */ lw $ra, 0x34($sp) -/* 1921C8 802638E8 8FBE0030 */ lw $fp, 0x30($sp) -/* 1921CC 802638EC 8FB7002C */ lw $s7, 0x2c($sp) -/* 1921D0 802638F0 8FB60028 */ lw $s6, 0x28($sp) -/* 1921D4 802638F4 8FB50024 */ lw $s5, 0x24($sp) -/* 1921D8 802638F8 8FB40020 */ lw $s4, 0x20($sp) -/* 1921DC 802638FC 8FB3001C */ lw $s3, 0x1c($sp) -/* 1921E0 80263900 8FB20018 */ lw $s2, 0x18($sp) -/* 1921E4 80263904 8FB10014 */ lw $s1, 0x14($sp) -/* 1921E8 80263908 8FB00010 */ lw $s0, 0x10($sp) -/* 1921EC 8026390C 03E00008 */ jr $ra -/* 1921F0 80263910 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/ver/us/asm/nonmatchings/190B20/func_80263914.s b/ver/us/asm/nonmatchings/190B20/func_80263914.s deleted file mode 100644 index d2493a0405..0000000000 --- a/ver/us/asm/nonmatchings/190B20/func_80263914.s +++ /dev/null @@ -1,142 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80263914 -/* 1921F4 80263914 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 1921F8 80263918 AFBE0030 */ sw $fp, 0x30($sp) -/* 1921FC 8026391C 3C1E8011 */ lui $fp, %hi(gPlayerData) -/* 192200 80263920 27DEF290 */ addiu $fp, $fp, %lo(gPlayerData) -/* 192204 80263924 AFB10014 */ sw $s1, 0x14($sp) -/* 192208 80263928 24110017 */ addiu $s1, $zero, 0x17 -/* 19220C 8026392C AFB40020 */ sw $s4, 0x20($sp) -/* 192210 80263930 3C14800E */ lui $s4, %hi(gBattleStatus) -/* 192214 80263934 2694C070 */ addiu $s4, $s4, %lo(gBattleStatus) -/* 192218 80263938 02911021 */ addu $v0, $s4, $s1 -/* 19221C 8026393C AFBF0034 */ sw $ra, 0x34($sp) -/* 192220 80263940 AFB7002C */ sw $s7, 0x2c($sp) -/* 192224 80263944 AFB60028 */ sw $s6, 0x28($sp) -/* 192228 80263948 AFB50024 */ sw $s5, 0x24($sp) -/* 19222C 8026394C AFB3001C */ sw $s3, 0x1c($sp) -/* 192230 80263950 AFB20018 */ sw $s2, 0x18($sp) -/* 192234 80263954 AFB00010 */ sw $s0, 0x10($sp) -/* 192238 80263958 8E9700D8 */ lw $s7, 0xd8($s4) -/* 19223C 8026395C 8E9500DC */ lw $s5, 0xdc($s4) -.L80263960: -/* 192240 80263960 A04001DE */ sb $zero, 0x1de($v0) -/* 192244 80263964 2631FFFF */ addiu $s1, $s1, -1 -/* 192248 80263968 0621FFFD */ bgez $s1, .L80263960 -/* 19224C 8026396C 2442FFFF */ addiu $v0, $v0, -1 -/* 192250 80263970 8EA20008 */ lw $v0, 8($s5) -/* 192254 80263974 24110001 */ addiu $s1, $zero, 1 -/* 192258 80263978 90420006 */ lbu $v0, 6($v0) -/* 19225C 8026397C 83C30012 */ lb $v1, 0x12($fp) -/* 192260 80263980 24420002 */ addiu $v0, $v0, 2 -/* 192264 80263984 A282020E */ sb $v0, 0x20e($s4) -/* 192268 80263988 02231004 */ sllv $v0, $v1, $s1 -/* 19226C 8026398C 00431021 */ addu $v0, $v0, $v1 -/* 192270 80263990 02221004 */ sllv $v0, $v0, $s1 -/* 192274 80263994 2442007D */ addiu $v0, $v0, 0x7d -/* 192278 80263998 8EA30008 */ lw $v1, 8($s5) -/* 19227C 8026399C 9284020E */ lbu $a0, 0x20e($s4) -/* 192280 802639A0 90630006 */ lbu $v1, 6($v1) -/* 192284 802639A4 0224202A */ slt $a0, $s1, $a0 -/* 192288 802639A8 00621821 */ addu $v1, $v1, $v0 -/* 19228C 802639AC 1080000E */ beqz $a0, .L802639E8 -/* 192290 802639B0 A28301DE */ sb $v1, 0x1de($s4) -.L802639B4: -/* 192294 802639B4 83C30012 */ lb $v1, 0x12($fp) -/* 192298 802639B8 02912021 */ addu $a0, $s4, $s1 -/* 19229C 802639BC 00031040 */ sll $v0, $v1, 1 -/* 1922A0 802639C0 00431021 */ addu $v0, $v0, $v1 -/* 1922A4 802639C4 00021040 */ sll $v0, $v0, 1 -/* 1922A8 802639C8 2442007F */ addiu $v0, $v0, 0x7f -/* 1922AC 802639CC 00511021 */ addu $v0, $v0, $s1 -/* 1922B0 802639D0 A08201DE */ sb $v0, 0x1de($a0) -/* 1922B4 802639D4 9282020E */ lbu $v0, 0x20e($s4) -/* 1922B8 802639D8 26310001 */ addiu $s1, $s1, 1 -/* 1922BC 802639DC 0222102A */ slt $v0, $s1, $v0 -/* 1922C0 802639E0 1440FFF4 */ bnez $v0, .L802639B4 -/* 1922C4 802639E4 00000000 */ nop -.L802639E8: -/* 1922C8 802639E8 0000882D */ daddu $s1, $zero, $zero -/* 1922CC 802639EC 9282020E */ lbu $v0, 0x20e($s4) -/* 1922D0 802639F0 10400037 */ beqz $v0, .L80263AD0 -/* 1922D4 802639F4 0220B02D */ daddu $s6, $s1, $zero -/* 1922D8 802639F8 0280902D */ daddu $s2, $s4, $zero -.L802639FC: -/* 1922DC 802639FC 924301DE */ lbu $v1, 0x1de($s2) -/* 1922E0 80263A00 3C068009 */ lui $a2, %hi(gMoveTable) -/* 1922E4 80263A04 24C6F060 */ addiu $a2, $a2, %lo(gMoveTable) -/* 1922E8 80263A08 00031080 */ sll $v0, $v1, 2 -/* 1922EC 80263A0C 00431021 */ addu $v0, $v0, $v1 -/* 1922F0 80263A10 00021080 */ sll $v0, $v0, 2 -/* 1922F4 80263A14 00469821 */ addu $s3, $v0, $a2 -/* 1922F8 80263A18 82700011 */ lb $s0, 0x11($s3) -/* 1922FC 80263A1C 1200000B */ beqz $s0, .L80263A4C -/* 192300 80263A20 02E0202D */ daddu $a0, $s7, $zero -/* 192304 80263A24 0C099CAB */ jal player_team_is_ability_active -/* 192308 80263A28 24050018 */ addiu $a1, $zero, 0x18 -/* 19230C 80263A2C 02028023 */ subu $s0, $s0, $v0 -/* 192310 80263A30 02E0202D */ daddu $a0, $s7, $zero -/* 192314 80263A34 0C099CAB */ jal player_team_is_ability_active -/* 192318 80263A38 24050026 */ addiu $a1, $zero, 0x26 -/* 19231C 80263A3C 00021040 */ sll $v0, $v0, 1 -/* 192320 80263A40 02028023 */ subu $s0, $s0, $v0 -/* 192324 80263A44 5A000001 */ blezl $s0, .L80263A4C -/* 192328 80263A48 24100001 */ addiu $s0, $zero, 1 -.L80263A4C: -/* 19232C 80263A4C 24020005 */ addiu $v0, $zero, 5 -/* 192330 80263A50 A2820178 */ sb $v0, 0x178($s4) -/* 192334 80263A54 8EA20008 */ lw $v0, 8($s5) -/* 192338 80263A58 90420006 */ lbu $v0, 6($v0) -/* 19233C 80263A5C A682017A */ sh $v0, 0x17a($s4) -/* 192340 80263A60 8E620004 */ lw $v0, 4($s3) -/* 192344 80263A64 02A0202D */ daddu $a0, $s5, $zero -/* 192348 80263A68 0C098C0B */ jal player_create_target_list -/* 19234C 80263A6C AE820184 */ sw $v0, 0x184($s4) -/* 192350 80263A70 82A2040C */ lb $v0, 0x40c($s5) -/* 192354 80263A74 10400006 */ beqz $v0, .L80263A90 -/* 192358 80263A78 2402FFFE */ addiu $v0, $zero, -2 -/* 19235C 80263A7C 24160001 */ addiu $s6, $zero, 1 -/* 192360 80263A80 A25601F6 */ sb $s6, 0x1f6($s2) -/* 192364 80263A84 82A2040C */ lb $v0, 0x40c($s5) -/* 192368 80263A88 14400002 */ bnez $v0, .L80263A94 -/* 19236C 80263A8C 2402FFFE */ addiu $v0, $zero, -2 -.L80263A90: -/* 192370 80263A90 A24201F6 */ sb $v0, 0x1f6($s2) -.L80263A94: -/* 192374 80263A94 83C20005 */ lb $v0, 5($fp) -/* 192378 80263A98 0050102A */ slt $v0, $v0, $s0 -/* 19237C 80263A9C 54400001 */ bnel $v0, $zero, .L80263AA4 -/* 192380 80263AA0 A24001F6 */ sb $zero, 0x1f6($s2) -.L80263AA4: -/* 192384 80263AA4 3C02800E */ lui $v0, %hi(gBattleStatus+0x4) -/* 192388 80263AA8 8C42C074 */ lw $v0, %lo(gBattleStatus+0x4)($v0) -/* 19238C 80263AAC 30421000 */ andi $v0, $v0, 0x1000 -/* 192390 80263AB0 10400002 */ beqz $v0, .L80263ABC -/* 192394 80263AB4 2402FFFF */ addiu $v0, $zero, -1 -/* 192398 80263AB8 A24201F6 */ sb $v0, 0x1f6($s2) -.L80263ABC: -/* 19239C 80263ABC 9282020E */ lbu $v0, 0x20e($s4) -/* 1923A0 80263AC0 26310001 */ addiu $s1, $s1, 1 -/* 1923A4 80263AC4 0222102A */ slt $v0, $s1, $v0 -/* 1923A8 80263AC8 1440FFCC */ bnez $v0, .L802639FC -/* 1923AC 80263ACC 26520001 */ addiu $s2, $s2, 1 -.L80263AD0: -/* 1923B0 80263AD0 16C00002 */ bnez $s6, .L80263ADC -/* 1923B4 80263AD4 24020001 */ addiu $v0, $zero, 1 -/* 1923B8 80263AD8 2402FFFF */ addiu $v0, $zero, -1 -.L80263ADC: -/* 1923BC 80263ADC A2820080 */ sb $v0, 0x80($s4) -/* 1923C0 80263AE0 8FBF0034 */ lw $ra, 0x34($sp) -/* 1923C4 80263AE4 8FBE0030 */ lw $fp, 0x30($sp) -/* 1923C8 80263AE8 8FB7002C */ lw $s7, 0x2c($sp) -/* 1923CC 80263AEC 8FB60028 */ lw $s6, 0x28($sp) -/* 1923D0 80263AF0 8FB50024 */ lw $s5, 0x24($sp) -/* 1923D4 80263AF4 8FB40020 */ lw $s4, 0x20($sp) -/* 1923D8 80263AF8 8FB3001C */ lw $s3, 0x1c($sp) -/* 1923DC 80263AFC 8FB20018 */ lw $s2, 0x18($sp) -/* 1923E0 80263B00 8FB10014 */ lw $s1, 0x14($sp) -/* 1923E4 80263B04 8FB00010 */ lw $s0, 0x10($sp) -/* 1923E8 80263B08 03E00008 */ jr $ra -/* 1923EC 80263B0C 27BD0038 */ addiu $sp, $sp, 0x38