clover we miss you

This commit is contained in:
Ethan Roseman 2020-10-16 22:36:28 -04:00
parent 9866661518
commit 36f2fc2f86
12 changed files with 98 additions and 203 deletions

View File

@ -25,7 +25,7 @@ glabel func_8023F088
/* 16D9B8 8023F0D8 000218C0 */ sll $v1, $v0, 3 /* 16D9B8 8023F0D8 000218C0 */ sll $v1, $v0, 3
/* 16D9BC 8023F0DC 00431021 */ addu $v0, $v0, $v1 /* 16D9BC 8023F0DC 00431021 */ addu $v0, $v0, $v1
/* 16D9C0 8023F0E0 000210C0 */ sll $v0, $v0, 3 /* 16D9C0 8023F0E0 000210C0 */ sll $v0, $v0, 3
/* 16D9C4 8023F0E4 0C099EF7 */ jal hide_foreground_models_unchecked /* 16D9C4 8023F0E4 0C099EF7 */ jal hide_foreground_models_unsafe
/* 16D9C8 8023F0E8 0044B821 */ addu $s7, $v0, $a0 /* 16D9C8 8023F0E8 0044B821 */ addu $s7, $v0, $a0
/* 16D9CC 8023F0EC 0C046EE9 */ jal is_world_fog_enabled /* 16D9CC 8023F0EC 0C046EE9 */ jal is_world_fog_enabled
/* 16D9D0 8023F0F0 00000000 */ nop /* 16D9D0 8023F0F0 00000000 */ nop

View File

@ -4,7 +4,7 @@
glabel func_8023FF84 glabel func_8023FF84
/* 16E864 8023FF84 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 16E864 8023FF84 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 16E868 8023FF88 AFBF0010 */ sw $ra, 0x10($sp) /* 16E868 8023FF88 AFBF0010 */ sw $ra, 0x10($sp)
/* 16E86C 8023FF8C 0C099F12 */ jal show_foreground_models_unchecked /* 16E86C 8023FF8C 0C099F12 */ jal show_foreground_models_unsafe
/* 16E870 8023FF90 00000000 */ nop /* 16E870 8023FF90 00000000 */ nop
/* 16E874 8023FF94 8FBF0010 */ lw $ra, 0x10($sp) /* 16E874 8023FF94 8FBF0010 */ lw $ra, 0x10($sp)
/* 16E878 8023FF98 03E00008 */ jr $ra /* 16E878 8023FF98 03E00008 */ jr $ra

View File

@ -9,12 +9,12 @@ glabel SetForegroundModelsVisibleUnchecked
/* 182398 80253AB8 8C450000 */ lw $a1, ($v0) /* 182398 80253AB8 8C450000 */ lw $a1, ($v0)
/* 18239C 80253ABC 10400005 */ beqz $v0, .L80253AD4 /* 18239C 80253ABC 10400005 */ beqz $v0, .L80253AD4
/* 1823A0 80253AC0 00000000 */ nop /* 1823A0 80253AC0 00000000 */ nop
/* 1823A4 80253AC4 0C099F12 */ jal show_foreground_models_unchecked /* 1823A4 80253AC4 0C099F12 */ jal show_foreground_models_unsafe
/* 1823A8 80253AC8 00000000 */ nop /* 1823A8 80253AC8 00000000 */ nop
/* 1823AC 80253ACC 08094EB7 */ j .L80253ADC /* 1823AC 80253ACC 08094EB7 */ j .L80253ADC
/* 1823B0 80253AD0 00000000 */ nop /* 1823B0 80253AD0 00000000 */ nop
.L80253AD4: .L80253AD4:
/* 1823B4 80253AD4 0C099EF7 */ jal hide_foreground_models_unchecked /* 1823B4 80253AD4 0C099EF7 */ jal hide_foreground_models_unsafe
/* 1823B8 80253AD8 00000000 */ nop /* 1823B8 80253AD8 00000000 */ nop
.L80253ADC: .L80253ADC:
/* 1823BC 80253ADC 8FBF0010 */ lw $ra, 0x10($sp) /* 1823BC 80253ADC 8FBF0010 */ lw $ra, 0x10($sp)

View File

@ -1,26 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel StartRumbleWithParams
/* 19667C 80267D9C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 196680 80267DA0 AFB10014 */ sw $s1, 0x14($sp)
/* 196684 80267DA4 0080882D */ daddu $s1, $a0, $zero
/* 196688 80267DA8 AFBF0018 */ sw $ra, 0x18($sp)
/* 19668C 80267DAC AFB00010 */ sw $s0, 0x10($sp)
/* 196690 80267DB0 8E30000C */ lw $s0, 0xc($s1)
/* 196694 80267DB4 8E050000 */ lw $a1, ($s0)
/* 196698 80267DB8 0C0B1EAF */ jal get_variable
/* 19669C 80267DBC 26100004 */ addiu $s0, $s0, 4
/* 1966A0 80267DC0 0220202D */ daddu $a0, $s1, $zero
/* 1966A4 80267DC4 8E050000 */ lw $a1, ($s0)
/* 1966A8 80267DC8 0C0B1EAF */ jal get_variable
/* 1966AC 80267DCC 0040802D */ daddu $s0, $v0, $zero
/* 1966B0 80267DD0 0200202D */ daddu $a0, $s0, $zero
/* 1966B4 80267DD4 0C00A3C2 */ jal start_rumble
/* 1966B8 80267DD8 0040282D */ daddu $a1, $v0, $zero
/* 1966BC 80267DDC 8FBF0018 */ lw $ra, 0x18($sp)
/* 1966C0 80267DE0 8FB10014 */ lw $s1, 0x14($sp)
/* 1966C4 80267DE4 8FB00010 */ lw $s0, 0x10($sp)
/* 1966C8 80267DE8 24020002 */ addiu $v0, $zero, 2
/* 1966CC 80267DEC 03E00008 */ jr $ra
/* 1966D0 80267DF0 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,26 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel get_actor_part
/* 192D3C 8026445C 04A00004 */ bltz $a1, .L80264470
/* 192D40 80264460 8C8301F4 */ lw $v1, 0x1f4($a0)
/* 192D44 80264464 8C62000C */ lw $v0, 0xc($v1)
/* 192D48 80264468 14400003 */ bnez $v0, .L80264478
/* 192D4C 8026446C 00000000 */ nop
.L80264470:
/* 192D50 80264470 03E00008 */ jr $ra
/* 192D54 80264474 0060102D */ daddu $v0, $v1, $zero
.L80264478:
/* 192D58 80264478 10600008 */ beqz $v1, .L8026449C
/* 192D5C 8026447C 00000000 */ nop
.L80264480:
/* 192D60 80264480 8C620008 */ lw $v0, 8($v1)
/* 192D64 80264484 80420004 */ lb $v0, 4($v0)
/* 192D68 80264488 1045FFF9 */ beq $v0, $a1, .L80264470
/* 192D6C 8026448C 00000000 */ nop
/* 192D70 80264490 8C63000C */ lw $v1, 0xc($v1)
/* 192D74 80264494 1460FFFA */ bnez $v1, .L80264480
/* 192D78 80264498 00000000 */ nop
.L8026449C:
/* 192D7C 8026449C 03E00008 */ jr $ra
/* 192D80 802644A0 0000102D */ daddu $v0, $zero, $zero

View File

@ -1,35 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel hide_foreground_models
/* 196594 80267CB4 3C02800E */ lui $v0, 0x800e
/* 196598 80267CB8 8C42C4A8 */ lw $v0, -0x3b58($v0)
/* 19659C 80267CBC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 1965A0 80267CC0 AFBF0014 */ sw $ra, 0x14($sp)
/* 1965A4 80267CC4 10400014 */ beqz $v0, .L80267D18
/* 1965A8 80267CC8 AFB00010 */ sw $s0, 0x10($sp)
/* 1965AC 80267CCC 8C420018 */ lw $v0, 0x18($v0)
/* 1965B0 80267CD0 10400011 */ beqz $v0, .L80267D18
/* 1965B4 80267CD4 0040802D */ daddu $s0, $v0, $zero
/* 1965B8 80267CD8 8E020000 */ lw $v0, ($s0)
/* 1965BC 80267CDC 1040000E */ beqz $v0, .L80267D18
/* 1965C0 80267CE0 00000000 */ nop
.L80267CE4:
/* 1965C4 80267CE4 8E040000 */ lw $a0, ($s0)
/* 1965C8 80267CE8 0480000B */ bltz $a0, .L80267D18
/* 1965CC 80267CEC 26100004 */ addiu $s0, $s0, 4
/* 1965D0 80267CF0 0C046C04 */ jal get_model_list_index_from_tree_index
/* 1965D4 80267CF4 00000000 */ nop
/* 1965D8 80267CF8 0C046B4C */ jal get_model_from_list_index
/* 1965DC 80267CFC 0040202D */ daddu $a0, $v0, $zero
/* 1965E0 80267D00 94430000 */ lhu $v1, ($v0)
/* 1965E4 80267D04 34630002 */ ori $v1, $v1, 2
/* 1965E8 80267D08 A4430000 */ sh $v1, ($v0)
/* 1965EC 80267D0C 8E020000 */ lw $v0, ($s0)
/* 1965F0 80267D10 1440FFF4 */ bnez $v0, .L80267CE4
/* 1965F4 80267D14 00000000 */ nop
.L80267D18:
/* 1965F8 80267D18 8FBF0014 */ lw $ra, 0x14($sp)
/* 1965FC 80267D1C 8FB00010 */ lw $s0, 0x10($sp)
/* 196600 80267D20 03E00008 */ jr $ra
/* 196604 80267D24 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,33 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel hide_foreground_models_unchecked
/* 1964BC 80267BDC 3C02800E */ lui $v0, 0x800e
/* 1964C0 80267BE0 8C42C4A8 */ lw $v0, -0x3b58($v0)
/* 1964C4 80267BE4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 1964C8 80267BE8 AFBF0014 */ sw $ra, 0x14($sp)
/* 1964CC 80267BEC 10400012 */ beqz $v0, .L80267C38
/* 1964D0 80267BF0 AFB00010 */ sw $s0, 0x10($sp)
/* 1964D4 80267BF4 8C420018 */ lw $v0, 0x18($v0)
/* 1964D8 80267BF8 1040000F */ beqz $v0, .L80267C38
/* 1964DC 80267BFC 0040802D */ daddu $s0, $v0, $zero
.L80267C00:
/* 1964E0 80267C00 8E020000 */ lw $v0, ($s0)
/* 1964E4 80267C04 1040000C */ beqz $v0, .L80267C38
/* 1964E8 80267C08 00000000 */ nop
/* 1964EC 80267C0C 8E040000 */ lw $a0, ($s0)
/* 1964F0 80267C10 0480FFFB */ bltz $a0, .L80267C00
/* 1964F4 80267C14 26100004 */ addiu $s0, $s0, 4
/* 1964F8 80267C18 0C046C04 */ jal get_model_list_index_from_tree_index
/* 1964FC 80267C1C 00000000 */ nop
/* 196500 80267C20 0C046B4C */ jal get_model_from_list_index
/* 196504 80267C24 0040202D */ daddu $a0, $v0, $zero
/* 196508 80267C28 94430000 */ lhu $v1, ($v0)
/* 19650C 80267C2C 34630002 */ ori $v1, $v1, 2
/* 196510 80267C30 08099F00 */ j .L80267C00
/* 196514 80267C34 A4430000 */ sh $v1, ($v0)
.L80267C38:
/* 196518 80267C38 8FBF0014 */ lw $ra, 0x14($sp)
/* 19651C 80267C3C 8FB00010 */ lw $s0, 0x10($sp)
/* 196520 80267C40 03E00008 */ jr $ra
/* 196524 80267C44 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,35 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel show_foreground_models
/* 196608 80267D28 3C02800E */ lui $v0, 0x800e
/* 19660C 80267D2C 8C42C4A8 */ lw $v0, -0x3b58($v0)
/* 196610 80267D30 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 196614 80267D34 AFBF0014 */ sw $ra, 0x14($sp)
/* 196618 80267D38 10400014 */ beqz $v0, .L80267D8C
/* 19661C 80267D3C AFB00010 */ sw $s0, 0x10($sp)
/* 196620 80267D40 8C420018 */ lw $v0, 0x18($v0)
/* 196624 80267D44 10400011 */ beqz $v0, .L80267D8C
/* 196628 80267D48 0040802D */ daddu $s0, $v0, $zero
/* 19662C 80267D4C 8E020000 */ lw $v0, ($s0)
/* 196630 80267D50 1040000E */ beqz $v0, .L80267D8C
/* 196634 80267D54 00000000 */ nop
.L80267D58:
/* 196638 80267D58 8E040000 */ lw $a0, ($s0)
/* 19663C 80267D5C 0480000B */ bltz $a0, .L80267D8C
/* 196640 80267D60 26100004 */ addiu $s0, $s0, 4
/* 196644 80267D64 0C046C04 */ jal get_model_list_index_from_tree_index
/* 196648 80267D68 00000000 */ nop
/* 19664C 80267D6C 0C046B4C */ jal get_model_from_list_index
/* 196650 80267D70 0040202D */ daddu $a0, $v0, $zero
/* 196654 80267D74 94430000 */ lhu $v1, ($v0)
/* 196658 80267D78 3063FFFD */ andi $v1, $v1, 0xfffd
/* 19665C 80267D7C A4430000 */ sh $v1, ($v0)
/* 196660 80267D80 8E020000 */ lw $v0, ($s0)
/* 196664 80267D84 1440FFF4 */ bnez $v0, .L80267D58
/* 196668 80267D88 00000000 */ nop
.L80267D8C:
/* 19666C 80267D8C 8FBF0014 */ lw $ra, 0x14($sp)
/* 196670 80267D90 8FB00010 */ lw $s0, 0x10($sp)
/* 196674 80267D94 03E00008 */ jr $ra
/* 196678 80267D98 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,33 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel show_foreground_models_unchecked
/* 196528 80267C48 3C02800E */ lui $v0, 0x800e
/* 19652C 80267C4C 8C42C4A8 */ lw $v0, -0x3b58($v0)
/* 196530 80267C50 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 196534 80267C54 AFBF0014 */ sw $ra, 0x14($sp)
/* 196538 80267C58 10400012 */ beqz $v0, .L80267CA4
/* 19653C 80267C5C AFB00010 */ sw $s0, 0x10($sp)
/* 196540 80267C60 8C420018 */ lw $v0, 0x18($v0)
/* 196544 80267C64 1040000F */ beqz $v0, .L80267CA4
/* 196548 80267C68 0040802D */ daddu $s0, $v0, $zero
.L80267C6C:
/* 19654C 80267C6C 8E020000 */ lw $v0, ($s0)
/* 196550 80267C70 1040000C */ beqz $v0, .L80267CA4
/* 196554 80267C74 00000000 */ nop
/* 196558 80267C78 8E040000 */ lw $a0, ($s0)
/* 19655C 80267C7C 0480FFFB */ bltz $a0, .L80267C6C
/* 196560 80267C80 26100004 */ addiu $s0, $s0, 4
/* 196564 80267C84 0C046C04 */ jal get_model_list_index_from_tree_index
/* 196568 80267C88 00000000 */ nop
/* 19656C 80267C8C 0C046B4C */ jal get_model_from_list_index
/* 196570 80267C90 0040202D */ daddu $a0, $v0, $zero
/* 196574 80267C94 94430000 */ lhu $v1, ($v0)
/* 196578 80267C98 3063FFFD */ andi $v1, $v1, 0xfffd
/* 19657C 80267C9C 08099F1B */ j .L80267C6C
/* 196580 80267CA0 A4430000 */ sh $v1, ($v0)
.L80267CA4:
/* 196584 80267CA4 8FBF0014 */ lw $ra, 0x14($sp)
/* 196588 80267CA8 8FB00010 */ lw $s0, 0x10($sp)
/* 19658C 80267CAC 03E00008 */ jr $ra
/* 196590 80267CB0 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -538,6 +538,11 @@ typedef struct BattleStatusUnk {
/* 0x0C */ BattleStatusUnkInner* unk_0C; /* 0x0C */ BattleStatusUnkInner* unk_0C;
} BattleStatusUnk; // size = unknown } BattleStatusUnk; // size = unknown
typedef struct FGModelData {
/* 0x00 */ char unk_00[0x18];
/* 0x18 */ s32* idList;
} FGModelData; // size = unknown
typedef struct BattleStatus { typedef struct BattleStatus {
/* 0x000 */ s32 flags1; /* 0x000 */ s32 flags1;
/* 0x004 */ s32 flags2; /* 0x004 */ s32 flags2;
@ -647,7 +652,7 @@ typedef struct BattleStatus {
/* 0x431 */ u8 inputBufferPos; /* 0x431 */ u8 inputBufferPos;
/* 0x432 */ char unk_432[2]; /* 0x432 */ char unk_432[2];
/* 0x434 */ s32 unk_434; /* 0x434 */ s32 unk_434;
/* 0x438 */ s32* foregroundModelList; /* 0x438 */ FGModelData* foregroundModelData;
/* 0x43C */ BattleStatusUnk* unk_43C; /* 0x43C */ BattleStatusUnk* unk_43C;
/* 0x440 */ u8 tattleFlags[27]; /* 0x440 */ u8 tattleFlags[27];
/* 0x45B */ char unk_45B[17]; /* 0x45B */ char unk_45B[17];
@ -718,7 +723,7 @@ typedef struct CollisionData {
} CollisionData; // size = 0x10 } CollisionData; // size = 0x10
typedef struct Model { typedef struct Model {
/* 0x00 */ s16 flags; /* 0x00 */ u16 flags;
/* 0x02 */ s16 modelID; /* 0x02 */ s16 modelID;
/* 0x04 */ char unk_04[4]; /* 0x04 */ char unk_04[4];
/* 0x08 */ s32* modelNode; /* 0x08 */ s32* modelNode;
@ -1338,7 +1343,7 @@ typedef struct Actor {
typedef struct StaticActorPart { typedef struct StaticActorPart {
/* 0x00 */ s32 flags; /* 0x00 */ s32 flags;
/* 0x04 */ u8 index; /* 0x04 */ s8 index;
/* 0x05 */ u8 posOffset[3]; /* 0x05 */ u8 posOffset[3];
/* 0x08 */ u8 targetOffset[2]; /* 0x08 */ u8 targetOffset[2];
/* 0x0A */ s16 opacity; /* 0x0A */ s16 opacity;

View File

@ -66,7 +66,22 @@ INCLUDE_ASM(s32, "code_190B20", add_xz_vec3f_copy2);
INCLUDE_ASM(s32, "code_190B20", play_movement_dust_effects); INCLUDE_ASM(s32, "code_190B20", play_movement_dust_effects);
INCLUDE_ASM(ActorPart*, "code_190B20", get_actor_part, Actor* actor, s32 partIndex); ActorPart* get_actor_part(Actor* actor, s32 partIndex) {
ActorPart* part = &actor->partsTable[0];
if (partIndex < 0 || part->nextPart == NULL) {
return part;
}
while (part != NULL) {
if (part->staticData->index == partIndex) {
return part;
}
part = part->nextPart;
}
return NULL;
}
INCLUDE_ASM(s32, "code_190B20", load_player_actor); INCLUDE_ASM(s32, "code_190B20", load_player_actor);
@ -424,15 +439,78 @@ INCLUDE_ASM(s32, "code_190B20", func_80267A3C);
INCLUDE_ASM(s32, "code_190B20", reset_all_actor_sounds); INCLUDE_ASM(s32, "code_190B20", reset_all_actor_sounds);
INCLUDE_ASM(s32, "code_190B20", hide_foreground_models_unchecked); void hide_foreground_models_unsafe(void) {
FGModelData* data = gBattleStatus.foregroundModelData;
INCLUDE_ASM(s32, "code_190B20", show_foreground_models_unchecked); if (data != NULL && data->idList != NULL) {
s32* idList = data->idList;
while (*idList != 0) {
s32 id = *idList++;
if (id >= 0) {
Model* model = get_model_from_list_index(get_model_list_index_from_tree_index(id));
model->flags |= 2;
}
}
}
}
INCLUDE_ASM(s32, "code_190B20", hide_foreground_models); void show_foreground_models_unsafe(void) {
FGModelData* data = gBattleStatus.foregroundModelData;
INCLUDE_ASM(s32, "code_190B20", show_foreground_models); if (data != NULL && data->idList != NULL) {
s32* idList = data->idList;
while (*idList != 0) {
s32 id = *idList++;
if (id >= 0) {
Model* model = get_model_from_list_index(get_model_list_index_from_tree_index(id));
model->flags &= ~2;
}
}
}
}
INCLUDE_ASM(s32, "code_190B20", StartRumbleWithParams); void hide_foreground_models(void) {
FGModelData* data = gBattleStatus.foregroundModelData;
if (data != NULL && data->idList != NULL) {
s32* idList = data->idList;
while (*idList != 0) {
s32 id = *idList++;
if (id < 0) {
break;
} else {
Model* model = get_model_from_list_index(get_model_list_index_from_tree_index(id));
model->flags |= 2;
}
}
}
}
void show_foreground_models(void) {
FGModelData* data = gBattleStatus.foregroundModelData;
if (data != NULL && data->idList != NULL) {
s32* idList = data->idList;
while (*idList != 0) {
s32 id = *idList++;
if (id < 0) {
break;
} else {
Model* model = get_model_from_list_index(get_model_list_index_from_tree_index(id));
model->flags &= ~2;
}
}
}
}
ApiStatus StartRumbleWithParams(ScriptInstance* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
start_rumble(get_variable(script, *args++), get_variable(script, *args++));
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "code_190B20", start_rumble_type); INCLUDE_ASM(s32, "code_190B20", start_rumble_type);

View File

@ -995,7 +995,7 @@ heap_malloc;0x8002ACE4
heroes_is_ability_active;0x802672AC heroes_is_ability_active;0x802672AC
hide_coin_counter;0x800E9698 hide_coin_counter;0x800E9698
hide_foreground_models;0x80267CB4 hide_foreground_models;0x80267CB4
hide_foreground_models_unchecked;0x80267BDC hide_foreground_models_unsafe;0x80267BDC
icon_set_opacity;0x80144EB0 icon_set_opacity;0x80144EB0
icon_set_tint;0x80144EFC icon_set_tint;0x80144EFC
increment_max_SP;0x800EA1B4 increment_max_SP;0x800EA1B4
@ -1541,7 +1541,7 @@ show_coin_counter;0x800E9518
show_damage_popup;0x802665AC show_damage_popup;0x802665AC
show_first_strike_message;0x80041C5C show_first_strike_message;0x80041C5C
show_foreground_models;0x80267D28 show_foreground_models;0x80267D28
show_foreground_models_unchecked;0x80267C48 show_foreground_models_unsafe;0x80267C48
show_message_popup;0x80250EA4 show_message_popup;0x80250EA4
show_variable_battle_message;0x8024FA04 show_variable_battle_message;0x8024FA04
si;0x8006AD90 si;0x8006AD90