papermario/ver/us/asm/nonmatchings/20ec0_len_5040/func_80047928.s
eldexterr cb1bc0c312
BattleStatus (0x436) added (from common_structs.h) (#427)
* Update common_structs.h

This ones are actually flags used by Power Rush and Mega Rush, I dunno if they're used for something else tho.

But if you enter in Danger State (2-5HP) and you have equipped Power Rush dangerFlags will be 0x02 not 0x01.

* BattleStatus(0x172-0x177)

Added missing notes from BattleStatus(0x172) & (0x174)

* Update common_structs.h

0x174 declaration is fixed, and now uses currentTurnEnemy instead of currentTurnActor

* BattleStatus  (0x436) added (common_structs.h)

This is defined every time an actor is created with ~Func:create_actor (802653A4, 193C84), at ~Func:create_actor(0x908)

It retrieves the ID two lines before by using function 80047608 and will get the next available index.

* hudElementDataIndex fixed, and I renamed some status functions

HudElementDataIndex now uses the proper name and it has the name change on all files.

Also I changed the names for the following functions to:

remove_status_1 > remove_status_debuff
remove_status_2 > remove_status_static
remove_status_3 > remove_status_transparent

remove_status_4 seems to still be a mystery, maybe is for a unused status?
2021-09-25 08:15:45 +09:00

36 lines
1.8 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80047928
/* 22D28 80047928 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 22D2C 8004792C 0080302D */ daddu $a2, $a0, $zero
/* 22D30 80047930 AFB10014 */ sw $s1, 0x14($sp)
/* 22D34 80047934 00A0882D */ daddu $s1, $a1, $zero
/* 22D38 80047938 00061040 */ sll $v0, $a2, 1
/* 22D3C 8004793C 00461021 */ addu $v0, $v0, $a2
/* 22D40 80047940 00021080 */ sll $v0, $v0, 2
/* 22D44 80047944 00461023 */ subu $v0, $v0, $a2
/* 22D48 80047948 3C03800A */ lui $v1, %hi(D_800A0F44)
/* 22D4C 8004794C 8C630F44 */ lw $v1, %lo(D_800A0F44)($v1)
/* 22D50 80047950 00021100 */ sll $v0, $v0, 4
/* 22D54 80047954 AFBF0018 */ sw $ra, 0x18($sp)
/* 22D58 80047958 AFB00010 */ sw $s0, 0x10($sp)
/* 22D5C 8004795C 00628021 */ addu $s0, $v1, $v0
/* 22D60 80047960 2403FFF7 */ addiu $v1, $zero, -9
/* 22D64 80047964 8E020000 */ lw $v0, ($s0)
/* 22D68 80047968 82040048 */ lb $a0, 0x48($s0)
/* 22D6C 8004796C 00431024 */ and $v0, $v0, $v1
/* 22D70 80047970 10910006 */ beq $a0, $s1, .L8004798C
/* 22D74 80047974 AE020000 */ sw $v0, ($s0)
/* 22D78 80047978 0C011E68 */ jal remove_status_static
/* 22D7C 8004797C 00C0202D */ daddu $a0, $a2, $zero
/* 22D80 80047980 24020001 */ addiu $v0, $zero, 1
/* 22D84 80047984 A2110048 */ sb $s1, 0x48($s0)
/* 22D88 80047988 A202004A */ sb $v0, 0x4a($s0)
.L8004798C:
/* 22D8C 8004798C 8FBF0018 */ lw $ra, 0x18($sp)
/* 22D90 80047990 8FB10014 */ lw $s1, 0x14($sp)
/* 22D94 80047994 8FB00010 */ lw $s0, 0x10($sp)
/* 22D98 80047998 03E00008 */ jr $ra
/* 22D9C 8004799C 27BD0020 */ addiu $sp, $sp, 0x20