Match attack submenus (#523)

* Match func_80263914
* Match func_802634B8
* Match func_802636E4
This commit is contained in:
JoshDuMan 2021-11-10 13:57:55 -05:00 committed by GitHub
parent 4733902ec8
commit fd7acde70b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 217 additions and 459 deletions

View File

@ -766,7 +766,7 @@ typedef struct BattleStatus {
/* 0x1AA */ char unk_1AA[4]; /* 0x1AA */ char unk_1AA[4];
/* 0x1AE */ s16 submenuIcons[24]; /* icon IDs */ /* 0x1AE */ s16 submenuIcons[24]; /* icon IDs */
/* 0x1DE */ u8 submenuMoves[24]; /* move IDs */ /* 0x1DE */ u8 submenuMoves[24]; /* move IDs */
/* 0x1F6 */ u8 submenuEnabled[24]; /* 0x1F6 */ s8 submenuEnabled[24];
/* 0x20E */ u8 submenuMoveCount; /* 0x20E */ u8 submenuMoveCount;
/* 0x20F */ char unk_20F; /* 0x20F */ char unk_20F;
/* 0x210 */ s32 currentButtonsDown; /* 0x210 */ s32 currentButtonsDown;

View File

@ -1803,6 +1803,7 @@ enum BattleStatusFlags1 {
}; };
enum BattleStatusFlags2 { enum BattleStatusFlags2 {
BS_FLAGS2_1000 = 0x1000,
BS_FLAGS2_1000000 = 0x1000000, BS_FLAGS2_1000000 = 0x1000000,
}; };

View File

@ -1129,11 +1129,223 @@ s32 btl_check_player_defeated(void) {
return TRUE; 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 count_power_plus(s32 arg0) {
s32 pp; s32 pp;

View File

@ -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

View File

@ -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

View File

@ -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