Decompiled and Matched unknown_move (#663)

* Decompiled and Matched unknown_move

* Remove s32 cast

* Changed 0 to ABILITY_DODGE_MASTER

* Fix enemyTargetActor declaration and initialization
This commit is contained in:
Nasina 2022-03-16 23:09:16 -04:00 committed by GitHub
parent 83717471f9
commit 9dcb0616b6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 54 deletions

View File

@ -1,7 +1,32 @@
#include "common.h"
#include "battle/battle.h"
#define NAMESPACE battle_move_unknown_move
#include "world/common/UnkMoveFunc1.inc.c"
INCLUDE_ASM(s32, "battle/move/unknown_move/779C90", func_802A10E4_779D74);
extern s32 D_802A26D0_77B360;
ApiStatus func_802A10E4_779D74(Evt* script, s32 isInitialCall) {
Actor* enemyTargetActor = get_actor(get_actor(script->owner1.enemyID)->targetActorID);
u32 enemyTargetPowerBounceChance;
script->varTable[0] = 99;
enemyTargetPowerBounceChance = enemyTargetActor->actorBlueprint->powerBounceChance;
if (is_ability_active(ABILITY_DODGE_MASTER)) {
enemyTargetPowerBounceChance += 7;
}
D_802A26D0_77B360 *= enemyTargetPowerBounceChance;
D_802A26D0_77B360 /= 100;
if (D_802A26D0_77B360 < rand_int(100)) {
script->varTable[0] = 0;
}
return ApiStatus_DONE2;
}

View File

@ -1,53 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802A10E4_779D74
/* 779D74 802A10E4 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 779D78 802A10E8 AFB20018 */ sw $s2, 0x18($sp)
/* 779D7C 802A10EC 0080902D */ daddu $s2, $a0, $zero
/* 779D80 802A10F0 AFBF001C */ sw $ra, 0x1c($sp)
/* 779D84 802A10F4 AFB10014 */ sw $s1, 0x14($sp)
/* 779D88 802A10F8 AFB00010 */ sw $s0, 0x10($sp)
/* 779D8C 802A10FC 0C09A75B */ jal get_actor
/* 779D90 802A1100 8E440148 */ lw $a0, 0x148($s2)
/* 779D94 802A1104 0C09A75B */ jal get_actor
/* 779D98 802A1108 84440428 */ lh $a0, 0x428($v0)
/* 779D9C 802A110C 24030063 */ addiu $v1, $zero, 0x63
/* 779DA0 802A1110 AE430084 */ sw $v1, 0x84($s2)
/* 779DA4 802A1114 8C420008 */ lw $v0, 8($v0)
/* 779DA8 802A1118 9051001E */ lbu $s1, 0x1e($v0)
/* 779DAC 802A111C 0C03A752 */ jal is_ability_active
/* 779DB0 802A1120 0000202D */ daddu $a0, $zero, $zero
/* 779DB4 802A1124 54400001 */ bnel $v0, $zero, .L802A112C
/* 779DB8 802A1128 26310007 */ addiu $s1, $s1, 7
.L802A112C:
/* 779DBC 802A112C 3C10802A */ lui $s0, %hi(D_802A26D0_77B360)
/* 779DC0 802A1130 261026D0 */ addiu $s0, $s0, %lo(D_802A26D0_77B360)
/* 779DC4 802A1134 8E030000 */ lw $v1, ($s0)
/* 779DC8 802A1138 00710018 */ mult $v1, $s1
/* 779DCC 802A113C 00001812 */ mflo $v1
/* 779DD0 802A1140 3C0251EB */ lui $v0, 0x51eb
/* 779DD4 802A1144 3442851F */ ori $v0, $v0, 0x851f
/* 779DD8 802A1148 00620018 */ mult $v1, $v0
/* 779DDC 802A114C 24040064 */ addiu $a0, $zero, 0x64
/* 779DE0 802A1150 00031FC3 */ sra $v1, $v1, 0x1f
/* 779DE4 802A1154 00003010 */ mfhi $a2
/* 779DE8 802A1158 00061143 */ sra $v0, $a2, 5
/* 779DEC 802A115C 00431023 */ subu $v0, $v0, $v1
/* 779DF0 802A1160 0C00A67F */ jal rand_int
/* 779DF4 802A1164 AE020000 */ sw $v0, ($s0)
/* 779DF8 802A1168 8E030000 */ lw $v1, ($s0)
/* 779DFC 802A116C 0062182A */ slt $v1, $v1, $v0
/* 779E00 802A1170 54600001 */ bnel $v1, $zero, .L802A1178
/* 779E04 802A1174 AE400084 */ sw $zero, 0x84($s2)
.L802A1178:
/* 779E08 802A1178 8FBF001C */ lw $ra, 0x1c($sp)
/* 779E0C 802A117C 8FB20018 */ lw $s2, 0x18($sp)
/* 779E10 802A1180 8FB10014 */ lw $s1, 0x14($sp)
/* 779E14 802A1184 8FB00010 */ lw $s0, 0x10($sp)
/* 779E18 802A1188 24020002 */ addiu $v0, $zero, 2
/* 779E1C 802A118C 03E00008 */ jr $ra
/* 779E20 802A1190 27BD0020 */ addiu $sp, $sp, 0x20
/* 779E24 802A1194 00000000 */ nop
/* 779E28 802A1198 00000000 */ nop
/* 779E2C 802A119C 00000000 */ nop