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?
This commit is contained in:
eldexterr 2021-09-24 16:15:45 -07:00 committed by GitHub
parent 9a50c4cbe1
commit cb1bc0c312
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 46 additions and 46 deletions

View File

@ -1768,7 +1768,7 @@ typedef struct Actor {
/* 0x42C */ struct Shadow* shadow; /* might be shadow ID */
/* 0x430 */ f32 shadowScale; /* = actor size / 24.0 */
/* 0x434 */ s16 renderMode; /* initially 0xD, set to 0x22 if any part is transparent */
/* 0x436 */ s16 unk_436;
/* 0x436 */ s16 hudElementDataIndex;
/* 0x438 */ s32 x[2]; /* ??? see FUN_80253974 */
/* 0x440 */ struct HudElement* ptrDefuffIcon;
} Actor; // size = 0x444

View File

@ -632,7 +632,7 @@ void btl_delete_actor(Actor* actor) {
}
delete_shadow(actor->shadow);
remove_all_status_icons(actor->unk_436);
remove_all_status_icons(actor->hudElementDataIndex);
remove_effect(actor->ptrDefuffIcon);
if (actor->unk_200 != NULL) {
@ -675,7 +675,7 @@ void btl_delete_player_actor(Actor* player) {
movement = partsTable->movement;
delete_shadow(player->shadow);
remove_all_status_icons(player->unk_436);
remove_all_status_icons(player->hudElementDataIndex);
remove_effect(player->ptrDefuffIcon);
if (player->unk_200 != NULL) {

View File

@ -1259,30 +1259,30 @@ s32 inflict_status(Actor* target, s32 statusTypeKey, s32 duration) {
}
target->unk_228 = playFX_81(0, target->currentPos.x, target->currentPos.y,
target->currentPos.z, 1.0f, 0);
func_80047820(target->unk_436, STATUS_FROZEN);
func_80047820(target->hudElementDataIndex, STATUS_FROZEN);
}
return TRUE;
case STATUS_SLEEP:
func_80266DAC(target, 3);
func_80047820(target->unk_436, STATUS_SLEEP);
func_80047820(target->hudElementDataIndex, STATUS_SLEEP);
return TRUE;
case STATUS_PARALYZE:
func_80266DAC(target, 7);
func_80047820(target->unk_436, STATUS_PARALYZE);
func_80047820(target->hudElementDataIndex, STATUS_PARALYZE);
return TRUE;
case STATUS_DIZZY:
func_80047820(target->unk_436, STATUS_DIZZY);
func_80047820(target->hudElementDataIndex, STATUS_DIZZY);
return TRUE;
case STATUS_FEAR:
func_80266DAC(target, 5);
func_80047820(target->unk_436, STATUS_FEAR);
func_80047820(target->hudElementDataIndex, STATUS_FEAR);
return TRUE;
case STATUS_POISON:
func_80266DAC(target, 6);
func_80047820(target->unk_436, STATUS_POISON);
func_80047820(target->hudElementDataIndex, STATUS_POISON);
return TRUE;
case STATUS_SHRINK:
func_80047820(target->unk_436, STATUS_SHRINK);
func_80047820(target->hudElementDataIndex, STATUS_SHRINK);
return TRUE;
}
}
@ -1300,7 +1300,7 @@ s32 inflict_status(Actor* target, s32 statusTypeKey, s32 duration) {
}
target->status = STATUS_STATIC;
func_80266DAC(target, 4);
func_80047928(target->unk_436, STATUS_STATIC);
func_80047928(target->hudElementDataIndex, STATUS_STATIC);
}
return TRUE;
case STATUS_STONE:
@ -1331,7 +1331,7 @@ s32 inflict_status(Actor* target, s32 statusTypeKey, s32 duration) {
target->transDuration = 9;
}
target->status = STATUS_E;
func_80047A30(target->unk_436, STATUS_E);
func_80047A30(target->hudElementDataIndex, STATUS_E);
}
return TRUE;
case STATUS_END:
@ -1618,13 +1618,13 @@ void remove_player_buffs(PlayerBuff buffs) {
if (buffs & 0x20 && (player->staticStatus != 0)) {
player->staticDuration = 0;
player->staticStatus = 0;
remove_status_2(player->unk_436);
remove_status_static(player->hudElementDataIndex);
}
if (buffs & 0x40 && (player->transStatus != 0)) {
player->transDuration = 0;
player->transStatus = 0;
playerPartsTable->flags &= ~0x100;
remove_status_3(player->unk_436);
remove_status_transparent(player->hudElementDataIndex);
}
if (buffs & 0x200 && (battleStatus->waterBlockTurnsLeft != 0)) {
battleStatus->waterBlockTurnsLeft = 0;

View File

@ -1846,19 +1846,19 @@ ApiStatus ClearStatusEffects(Evt* script, s32 isInitialCall) {
if (actor->debuff != STATUS_END) {
actor->debuffDuration = 0;
actor->debuff = STATUS_END;
remove_status_1(actor->unk_436);
remove_status_debuff(actor->hudElementDataIndex);
}
if (actor->staticStatus != 0) {
actor->staticDuration = 0;
actor->staticStatus = 0;
remove_status_2(actor->unk_436);
remove_status_static(actor->hudElementDataIndex);
}
if (actor->transStatus != 0) {
actor->transDuration = 0;
actor->transStatus = 0;
remove_status_3(actor->unk_436);
remove_status_transparent(actor->hudElementDataIndex);
}
if (actor->stoneStatus != 0) {

View File

@ -45,19 +45,19 @@ INCLUDE_ASM(s32, "20ec0_len_5040", func_800477F4);
INCLUDE_ASM(s32, "20ec0_len_5040", func_80047820);
INCLUDE_ASM(s32, "20ec0_len_5040", remove_status_1);
INCLUDE_ASM(s32, "20ec0_len_5040", remove_status_debuff);
INCLUDE_ASM(s32, "20ec0_len_5040", enable_status_1);
INCLUDE_ASM(s32, "20ec0_len_5040", func_80047928);
INCLUDE_ASM(s32, "20ec0_len_5040", remove_status_2);
INCLUDE_ASM(s32, "20ec0_len_5040", remove_status_static);
INCLUDE_ASM(s32, "20ec0_len_5040", enable_status_2);
INCLUDE_ASM(s32, "20ec0_len_5040", func_80047A30);
INCLUDE_ASM(s32, "20ec0_len_5040", remove_status_3);
INCLUDE_ASM(s32, "20ec0_len_5040", remove_status_transparent);
INCLUDE_ASM(s32, "20ec0_len_5040", enable_status_3);

View File

@ -9,12 +9,12 @@ ApiStatus N(func_802A123C_72619C)(Evt* script, s32 isInitialCall) {
if (player->debuff != 0) {
player->debuffDuration = 0;
player->debuff = 0;
remove_status_1(player->unk_436);
remove_status_debuff(player->hudElementDataIndex);
}
if (player->staticStatus != 0) {
player->staticDuration = 0;
player->staticStatus = 0;
remove_status_2(player->unk_436);
remove_status_static(player->hudElementDataIndex);
}
if (player->stoneStatus != 0) {
player->stoneDuration = 0;

View File

@ -49,7 +49,7 @@ ApiStatus N(func_802A1378_725058)(Evt* script, s32 isInitialCall) {
if (actor->debuff != STATUS_END) {
actor->debuffDuration = 0;
actor->debuff = 0;
remove_status_1(actor->unk_436);
remove_status_debuff(actor->hudElementDataIndex);
}
if (actor->koStatus != 0) {

View File

@ -10,7 +10,7 @@ ApiStatus N(func_802A123C_72223C)(Evt* script, s32 isInitialCall) {
if (actor->debuff != STATUS_END) {
actor->debuffDuration = 0;
actor->debuff = 0;
remove_status_1(actor->unk_436);
remove_status_debuff(actor->hudElementDataIndex);
}
if (actor->koStatus != 0) {

View File

@ -12,7 +12,7 @@ ApiStatus func_802A17D4_78BDD4(Evt* script, s32 isInitialCall) {
if (actor->debuff != STATUS_END) {
actor->debuffDuration = 0;
actor->debuff = 0;
remove_status_1(actor->unk_436);
remove_status_debuff(actor->hudElementDataIndex);
}
if (actor->koStatus != 0) {

View File

@ -477,7 +477,7 @@ glabel btl_state_update_begin_player_turn
/* 170FDC 802426FC 1C400004 */ bgtz $v0, .L80242710
/* 170FE0 80242700 00000000 */ nop
/* 170FE4 80242704 86240436 */ lh $a0, 0x436($s1)
/* 170FE8 80242708 0C011E68 */ jal remove_status_2
/* 170FE8 80242708 0C011E68 */ jal remove_status_static
/* 170FEC 8024270C A2200212 */ sb $zero, 0x212($s1)
.L80242710:
/* 170FF0 80242710 82220218 */ lb $v0, 0x218($s1)
@ -496,7 +496,7 @@ glabel btl_state_update_begin_player_turn
/* 171024 80242744 8E820000 */ lw $v0, ($s4)
/* 171028 80242748 00431024 */ and $v0, $v0, $v1
/* 17102C 8024274C AE820000 */ sw $v0, ($s4)
/* 171030 80242750 0C011EAA */ jal remove_status_3
/* 171030 80242750 0C011EAA */ jal remove_status_transparent
/* 171034 80242754 86240436 */ lh $a0, 0x436($s1)
.L80242758:
/* 171038 80242758 82220210 */ lb $v0, 0x210($s1)
@ -532,7 +532,7 @@ glabel btl_state_update_begin_player_turn
/* 1710A8 802427C8 00000000 */ nop
/* 1710AC 802427CC 86240436 */ lh $a0, 0x436($s1)
/* 1710B0 802427D0 A2200210 */ sb $zero, 0x210($s1)
/* 1710B4 802427D4 0C011E26 */ jal remove_status_1
/* 1710B4 802427D4 0C011E26 */ jal remove_status_debuff
/* 1710B8 802427D8 A2200211 */ sb $zero, 0x211($s1)
.L802427DC:
/* 1710BC 802427DC 92220211 */ lbu $v0, 0x211($s1)

View File

@ -58,7 +58,7 @@ glabel btl_state_update_defeat
.L8024550C:
/* 173DEC 8024550C 86040436 */ lh $a0, 0x436($s0)
/* 173DF0 80245510 A2000210 */ sb $zero, 0x210($s0)
/* 173DF4 80245514 0C011E26 */ jal remove_status_1
/* 173DF4 80245514 0C011E26 */ jal remove_status_debuff
/* 173DF8 80245518 A2000211 */ sb $zero, 0x211($s0)
/* 173DFC 8024551C 8E020440 */ lw $v0, 0x440($s0)
/* 173E00 80245520 A2000216 */ sb $zero, 0x216($s0)

View File

@ -133,7 +133,7 @@ glabel func_80242FE0
/* 171A9C 802431BC 1C400009 */ bgtz $v0, .L802431E4
/* 171AA0 802431C0 00000000 */ nop
/* 171AA4 802431C4 86040436 */ lh $a0, 0x436($s0)
/* 171AA8 802431C8 0C011E26 */ jal remove_status_1
/* 171AA8 802431C8 0C011E26 */ jal remove_status_debuff
/* 171AAC 802431CC A2000210 */ sb $zero, 0x210($s0)
/* 171AB0 802431D0 0200202D */ daddu $a0, $s0, $zero
/* 171AB4 802431D4 0C09DC58 */ jal dispatch_event_actor
@ -151,7 +151,7 @@ glabel func_80242FE0
/* 171AE0 80243200 1C400006 */ bgtz $v0, .L8024321C
/* 171AE4 80243204 00000000 */ nop
/* 171AE8 80243208 86040436 */ lh $a0, 0x436($s0)
/* 171AEC 8024320C 0C011E68 */ jal remove_status_2
/* 171AEC 8024320C 0C011E68 */ jal remove_status_static
/* 171AF0 80243210 A2000212 */ sb $zero, 0x212($s0)
/* 171AF4 80243214 3C01802A */ lui $at, %hi(D_8029F258)
/* 171AF8 80243218 AC33F258 */ sw $s3, %lo(D_8029F258)($at)
@ -166,7 +166,7 @@ glabel func_80242FE0
/* 171B18 80243238 1C400006 */ bgtz $v0, .L80243254
/* 171B1C 8024323C 00000000 */ nop
/* 171B20 80243240 86040436 */ lh $a0, 0x436($s0)
/* 171B24 80243244 0C011EAA */ jal remove_status_3
/* 171B24 80243244 0C011EAA */ jal remove_status_transparent
/* 171B28 80243248 A2000218 */ sb $zero, 0x218($s0)
/* 171B2C 8024324C 3C01802A */ lui $at, %hi(D_8029F258)
/* 171B30 80243250 AC33F258 */ sw $s3, %lo(D_8029F258)($at)

View File

@ -385,7 +385,7 @@ glabel calc_item_damage_enemy
/* 180538 80251C58 A2600220 */ sb $zero, 0x220($s3)
/* 18053C 80251C5C 86640436 */ lh $a0, 0x436($s3)
/* 180540 80251C60 A2600212 */ sb $zero, 0x212($s3)
/* 180544 80251C64 0C011E68 */ jal remove_status_2
/* 180544 80251C64 0C011E68 */ jal remove_status_static
/* 180548 80251C68 A2600213 */ sb $zero, 0x213($s3)
.L80251C6C:
/* 18054C 80251C6C 82620218 */ lb $v0, 0x218($s3)
@ -393,7 +393,7 @@ glabel calc_item_damage_enemy
/* 180554 80251C74 24150001 */ addiu $s5, $zero, 1
/* 180558 80251C78 86640436 */ lh $a0, 0x436($s3)
/* 18055C 80251C7C A2600218 */ sb $zero, 0x218($s3)
/* 180560 80251C80 0C011EAA */ jal remove_status_3
/* 180560 80251C80 0C011EAA */ jal remove_status_transparent
/* 180564 80251C84 A2600219 */ sb $zero, 0x219($s3)
/* 180568 80251C88 24150001 */ addiu $s5, $zero, 1
.L80251C8C:

View File

@ -22,7 +22,7 @@ glabel func_80047820
/* 22C64 80047864 00431024 */ and $v0, $v0, $v1
/* 22C68 80047868 10910006 */ beq $a0, $s1, .L80047884
/* 22C6C 8004786C AE020000 */ sw $v0, ($s0)
/* 22C70 80047870 0C011E26 */ jal remove_status_1
/* 22C70 80047870 0C011E26 */ jal remove_status_debuff
/* 22C74 80047874 00C0202D */ daddu $a0, $a2, $zero
/* 22C78 80047878 24020001 */ addiu $v0, $zero, 1
/* 22C7C 8004787C A2110038 */ sb $s1, 0x38($s0)

View File

@ -22,7 +22,7 @@ glabel func_80047928
/* 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_2
/* 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)

View File

@ -22,7 +22,7 @@ glabel func_80047A30
/* 22E74 80047A74 00431024 */ and $v0, $v0, $v1
/* 22E78 80047A78 10910006 */ beq $a0, $s1, .L80047A94
/* 22E7C 80047A7C AE020000 */ sw $v0, ($s0)
/* 22E80 80047A80 0C011EAA */ jal remove_status_3
/* 22E80 80047A80 0C011EAA */ jal remove_status_transparent
/* 22E84 80047A84 00C0202D */ daddu $a0, $a2, $zero
/* 22E88 80047A88 24020001 */ addiu $v0, $zero, 1
/* 22E8C 80047A8C A2110058 */ sb $s1, 0x58($s0)

View File

@ -14,11 +14,11 @@ glabel remove_all_status_icons
/* 22B18 80047718 8E310F44 */ lw $s1, %lo(D_800A0F44)($s1)
/* 22B1C 8004771C 00021100 */ sll $v0, $v0, 4
/* 22B20 80047720 AFBF0018 */ sw $ra, 0x18($sp)
/* 22B24 80047724 0C011E26 */ jal remove_status_1
/* 22B24 80047724 0C011E26 */ jal remove_status_debuff
/* 22B28 80047728 02228821 */ addu $s1, $s1, $v0
/* 22B2C 8004772C 0C011E68 */ jal remove_status_2
/* 22B2C 8004772C 0C011E68 */ jal remove_status_static
/* 22B30 80047730 0200202D */ daddu $a0, $s0, $zero
/* 22B34 80047734 0C011EAA */ jal remove_status_3
/* 22B34 80047734 0C011EAA */ jal remove_status_transparent
/* 22B38 80047738 0200202D */ daddu $a0, $s0, $zero
/* 22B3C 8004773C 0C011EE1 */ jal remove_status_4
/* 22B40 80047740 0200202D */ daddu $a0, $s0, $zero

View File

@ -1,7 +1,7 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel remove_status_1
glabel remove_status_debuff
/* 22C98 80047898 00041040 */ sll $v0, $a0, 1
/* 22C9C 8004789C 00441021 */ addu $v0, $v0, $a0
/* 22CA0 800478A0 00021080 */ sll $v0, $v0, 2

View File

@ -1,7 +1,7 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel remove_status_2
glabel remove_status_static
/* 22DA0 800479A0 00041040 */ sll $v0, $a0, 1
/* 22DA4 800479A4 00441021 */ addu $v0, $v0, $a0
/* 22DA8 800479A8 00021080 */ sll $v0, $v0, 2

View File

@ -1,7 +1,7 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel remove_status_3
glabel remove_status_transparent
/* 22EA8 80047AA8 00041040 */ sll $v0, $a0, 1
/* 22EAC 80047AAC 00441021 */ addu $v0, $v0, $a0
/* 22EB0 80047AB0 00021080 */ sll $v0, $v0, 2

View File

@ -429,13 +429,13 @@ remove_all_status_icons = 0x800476F4; // type:func rom:0x22AF4
set_status_icons_properties = 0x8004778C; // type:func rom:0x22B8C
func_800477F4 = 0x800477F4; // type:func rom:0x22BF4
func_80047820 = 0x80047820; // type:func rom:0x22C20
remove_status_1 = 0x80047898; // type:func rom:0x22C98
remove_status_debuff = 0x80047898; // type:func rom:0x22C98
enable_status_1 = 0x800478F8; // type:func rom:0x22CF8
func_80047928 = 0x80047928; // type:func rom:0x22D28
remove_status_2 = 0x800479A0; // type:func rom:0x22DA0
remove_status_static = 0x800479A0; // type:func rom:0x22DA0
enable_status_2 = 0x80047A00; // type:func rom:0x22E00
func_80047A30 = 0x80047A30; // type:func rom:0x22E30
remove_status_3 = 0x80047AA8; // type:func rom:0x22EA8
remove_status_transparent = 0x80047AA8; // type:func rom:0x22EA8
enable_status_3 = 0x80047B08; // type:func rom:0x22F08
func_80047B38 = 0x80047B38; // type:func rom:0x22F38
remove_status_4 = 0x80047B84; // type:func rom:0x22F84