mirror of
https://github.com/zeldaret/tmc
synced 2026-06-09 04:40:07 -04:00
Match sub_080A56A0
This commit is contained in:
@@ -1,117 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
ldr r0, _080A7468 @ =gFadeControl
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _080A73B4
|
||||
b _080A74BC
|
||||
_080A73B4:
|
||||
bl DeleteAllEntities
|
||||
bl sub_0805E974
|
||||
ldr r1, _080A746C @ =gCurrentRoomProperties
|
||||
ldr r5, _080A7470 @ =gUI
|
||||
ldr r0, [r5, #0x10]
|
||||
str r0, [r1]
|
||||
ldr r0, _080A7474 @ =gPlayerState
|
||||
ldrb r1, [r5, #0xc]
|
||||
adds r0, #0x8b
|
||||
strb r1, [r0]
|
||||
ldr r1, _080A7478 @ =gMapBottom
|
||||
ldr r0, [r5, #0x14]
|
||||
str r0, [r1]
|
||||
ldr r1, _080A747C @ =gMapTop
|
||||
ldr r0, [r5, #0x18]
|
||||
str r0, [r1]
|
||||
movs r1, #0xea
|
||||
lsls r1, r1, #2
|
||||
adds r0, r5, r1
|
||||
ldr r1, _080A7480 @ =gActiveScriptInfo
|
||||
movs r2, #0xc
|
||||
bl MemCopy
|
||||
movs r1, #0xaa
|
||||
lsls r1, r1, #2
|
||||
adds r0, r5, r1
|
||||
ldr r1, _080A7484 @ =gUnk_03000420
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #1
|
||||
bl MemCopy
|
||||
movs r1, #0x9a
|
||||
lsls r1, r1, #2
|
||||
adds r0, r5, r1
|
||||
ldr r1, _080A7488 @ =gPaletteList
|
||||
movs r2, #0x40
|
||||
bl MemCopy
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x54
|
||||
ldr r1, _080A748C @ =gGFXSlots
|
||||
movs r2, #0x85
|
||||
lsls r2, r2, #2
|
||||
bl MemCopy
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x1c
|
||||
ldr r4, _080A7490 @ =gRoomControls
|
||||
adds r1, r4, #0
|
||||
movs r2, #0x38
|
||||
bl MemCopy
|
||||
ldr r0, _080A7494 @ =gUnk_03001020
|
||||
ldr r1, _080A7498 @ =gScreen
|
||||
movs r2, #0x7c
|
||||
bl MemCopy
|
||||
ldrb r0, [r4, #4]
|
||||
bl GetFlagBankOffset
|
||||
ldr r4, _080A749C @ =gArea
|
||||
strh r0, [r4, #4]
|
||||
bl GetCurrentRoomInfo
|
||||
ldr r1, _080A74A0 @ =0x0000085C
|
||||
adds r4, r4, r1
|
||||
str r0, [r4]
|
||||
ldrb r0, [r5, #6]
|
||||
bl RestoreGameTask
|
||||
ldrb r1, [r5, #0xd]
|
||||
rsbs r0, r1, #0
|
||||
orrs r0, r1
|
||||
lsrs r0, r0, #0x1f
|
||||
bl sub_0801D000
|
||||
bl sub_080A74F4
|
||||
ldrh r1, [r5, #8]
|
||||
ldr r0, _080A74A4 @ =0x0000FFFF
|
||||
cmp r1, r0
|
||||
beq _080A74A8
|
||||
adds r0, r1, #0
|
||||
ldrh r1, [r5, #0xa]
|
||||
bl SetFade
|
||||
b _080A74AE
|
||||
.align 2, 0
|
||||
_080A7468: .4byte gFadeControl
|
||||
_080A746C: .4byte gCurrentRoomProperties
|
||||
_080A7470: .4byte gUI
|
||||
_080A7474: .4byte gPlayerState
|
||||
_080A7478: .4byte gMapBottom
|
||||
_080A747C: .4byte gMapTop
|
||||
_080A7480: .4byte gActiveScriptInfo
|
||||
_080A7484: .4byte gUnk_03000420
|
||||
_080A7488: .4byte gPaletteList
|
||||
_080A748C: .4byte gGFXSlots
|
||||
_080A7490: .4byte gRoomControls
|
||||
_080A7494: .4byte gUnk_03001020
|
||||
_080A7498: .4byte gScreen
|
||||
_080A749C: .4byte gArea
|
||||
_080A74A0: .4byte 0x0000085C
|
||||
_080A74A4: .4byte 0x0000FFFF
|
||||
_080A74A8:
|
||||
ldrh r0, [r5, #0xa]
|
||||
bl SetFadeInverted
|
||||
_080A74AE:
|
||||
ldr r1, _080A74C0 @ =gUI
|
||||
movs r2, #0
|
||||
movs r0, #4
|
||||
strb r0, [r1]
|
||||
ldr r0, _080A74C4 @ =gRoomTransition
|
||||
adds r0, #0x30
|
||||
strb r2, [r0]
|
||||
_080A74BC:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080A74C0: .4byte gUI
|
||||
_080A74C4: .4byte gRoomTransition
|
||||
.syntax divided
|
||||
@@ -1,236 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
bl sub_080A51F4
|
||||
cmp r0, #0
|
||||
bne _080A56AC
|
||||
b _080A57F0
|
||||
_080A56AC:
|
||||
ldr r2, _080A56D0 @ =gMenu
|
||||
ldr r0, _080A56D4 @ =gUnk_08128C00
|
||||
str r0, [r2, #0xc]
|
||||
ldrb r0, [r2, #3]
|
||||
lsls r0, r0, #3
|
||||
ldr r1, _080A56D8 @ =gUnk_08128C14
|
||||
adds r4, r0, r1
|
||||
movs r3, #0xff
|
||||
ldr r0, _080A56DC @ =gInput
|
||||
ldrh r1, [r0, #4]
|
||||
cmp r1, #0x20
|
||||
beq _080A56F2
|
||||
cmp r1, #0x20
|
||||
bgt _080A56E0
|
||||
cmp r1, #0x10
|
||||
beq _080A56F6
|
||||
b _080A56F8
|
||||
.align 2, 0
|
||||
_080A56D0: .4byte gMenu
|
||||
_080A56D4: .4byte gUnk_08128C00
|
||||
_080A56D8: .4byte gUnk_08128C14
|
||||
_080A56DC: .4byte gInput
|
||||
_080A56E0:
|
||||
cmp r1, #0x40
|
||||
beq _080A56EA
|
||||
cmp r1, #0x80
|
||||
beq _080A56EE
|
||||
b _080A56F8
|
||||
_080A56EA:
|
||||
ldrb r3, [r4]
|
||||
b _080A56F8
|
||||
_080A56EE:
|
||||
ldrb r3, [r4, #1]
|
||||
b _080A56F8
|
||||
_080A56F2:
|
||||
ldrb r3, [r4, #2]
|
||||
b _080A56F8
|
||||
_080A56F6:
|
||||
ldrb r3, [r4, #3]
|
||||
_080A56F8:
|
||||
cmp r3, #0xff
|
||||
beq _080A570C
|
||||
ldr r0, _080A5708 @ =gMenu
|
||||
strb r3, [r0, #3]
|
||||
movs r0, #0x69
|
||||
bl SoundReq
|
||||
b _080A575E
|
||||
.align 2, 0
|
||||
_080A5708: .4byte gMenu
|
||||
_080A570C:
|
||||
ldrh r0, [r0, #2]
|
||||
cmp r0, #1
|
||||
bne _080A575E
|
||||
ldrb r3, [r2, #3]
|
||||
.ifdef DEMO_USA
|
||||
movs r4, #0
|
||||
.else
|
||||
.ifdef DEMO_JP
|
||||
movs r4, #0
|
||||
.else
|
||||
movs r1, #0
|
||||
.endif
|
||||
.endif
|
||||
cmp r3, #2
|
||||
beq _080A572E
|
||||
cmp r3, #2
|
||||
bhi _080A5724
|
||||
cmp r3, #0
|
||||
beq _080A572E
|
||||
b _080A574E
|
||||
_080A5724:
|
||||
cmp r3, #4
|
||||
beq _080A5748
|
||||
cmp r3, #5
|
||||
beq _080A574C
|
||||
b _080A574E
|
||||
_080A572E:
|
||||
ldr r0, _080A5744 @ =gMenu
|
||||
adds r0, #0x10
|
||||
adds r0, r3, r0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _080A574E
|
||||
.ifdef DEMO_USA
|
||||
movs r4, #8
|
||||
.else
|
||||
.ifdef DEMO_JP
|
||||
movs r4, #8
|
||||
.else
|
||||
movs r1, #8
|
||||
.endif
|
||||
.endif
|
||||
cmp r3, #0
|
||||
bne _080A574E
|
||||
.ifdef DEMO_USA
|
||||
movs r4, #7
|
||||
.else
|
||||
.ifdef DEMO_JP
|
||||
movs r4, #7
|
||||
.else
|
||||
movs r1, #7
|
||||
.endif
|
||||
.endif
|
||||
b _080A5752
|
||||
.align 2, 0
|
||||
_080A5744: .4byte gMenu
|
||||
_080A5748:
|
||||
.ifdef DEMO_USA
|
||||
movs r0, #0x6d
|
||||
bl SoundReq
|
||||
b _080A574E
|
||||
_080A574C:
|
||||
movs r0, #0x6d
|
||||
bl SoundReq
|
||||
.else
|
||||
.ifdef DEMO_JP
|
||||
movs r0, #0x6d
|
||||
bl SoundReq
|
||||
b _080A574E
|
||||
_080A574C:
|
||||
movs r0, #0x6d
|
||||
bl SoundReq
|
||||
.else
|
||||
movs r1, #9
|
||||
b _080A5752
|
||||
_080A574C:
|
||||
movs r1, #0xa
|
||||
.endif
|
||||
.endif
|
||||
_080A574E:
|
||||
.ifdef DEMO_USA
|
||||
cmp r4, #0
|
||||
.else
|
||||
.ifdef DEMO_JP
|
||||
cmp r4, #0
|
||||
.else
|
||||
cmp r1, #0
|
||||
.endif
|
||||
.endif
|
||||
beq _080A575E
|
||||
_080A5752:
|
||||
.ifdef DEMO_USA
|
||||
adds r0, r4, #0
|
||||
.else
|
||||
.ifdef DEMO_JP
|
||||
adds r0, r4, #0
|
||||
.else
|
||||
adds r0, r1, #0
|
||||
.endif
|
||||
.endif
|
||||
bl sub_080A4E84
|
||||
movs r0, #0x6a
|
||||
bl SoundReq
|
||||
_080A575E:
|
||||
ldr r0, _080A5780 @ =gMenu
|
||||
ldrb r1, [r0, #3]
|
||||
adds r2, r0, #0
|
||||
cmp r1, #0
|
||||
beq _080A576C
|
||||
cmp r1, #2
|
||||
bne _080A5788
|
||||
_080A576C:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x10
|
||||
adds r0, r1, r0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _080A5788
|
||||
ldr r1, _080A5784 @ =gUnk_0200AF00
|
||||
movs r0, #0x10
|
||||
b _080A578C
|
||||
.align 2, 0
|
||||
_080A5780: .4byte gMenu
|
||||
_080A5784: .4byte gUnk_0200AF00
|
||||
_080A5788:
|
||||
ldr r1, _080A57AC @ =gUnk_0200AF00
|
||||
ldr r0, _080A57B0 @ =0x0000FFF0
|
||||
_080A578C:
|
||||
strh r0, [r1, #0x1c]
|
||||
ldrb r3, [r2, #3]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x10
|
||||
adds r0, r3, r0
|
||||
ldrb r2, [r0]
|
||||
cmp r2, #0
|
||||
beq _080A57E6
|
||||
cmp r3, #5
|
||||
bhi _080A57E6
|
||||
lsls r0, r3, #2
|
||||
ldr r1, _080A57B4 @ =_080A57B8
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080A57AC: .4byte gUnk_0200AF00
|
||||
_080A57B0: .4byte 0x0000FFF0
|
||||
_080A57B4: .4byte _080A57B8
|
||||
_080A57B8: @ jump table
|
||||
.4byte _080A57D0 @ case 0
|
||||
.4byte _080A57D8 @ case 1
|
||||
.4byte _080A57DC @ case 2
|
||||
.4byte _080A57E6 @ case 3
|
||||
.4byte _080A57E0 @ case 4
|
||||
.4byte _080A57E4 @ case 5
|
||||
_080A57D0:
|
||||
cmp r2, #0x3d
|
||||
beq _080A57E6
|
||||
movs r2, #0x67
|
||||
b _080A57E6
|
||||
_080A57D8:
|
||||
movs r2, #0x63
|
||||
b _080A57E6
|
||||
_080A57DC:
|
||||
movs r2, #0x70
|
||||
b _080A57E6
|
||||
_080A57E0:
|
||||
movs r2, #0x74
|
||||
b _080A57E6
|
||||
_080A57E4:
|
||||
movs r2, #0x73
|
||||
_080A57E6:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #3
|
||||
adds r0, r2, r0
|
||||
bl sub_080A6F6C
|
||||
_080A57F0:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -1,18 +0,0 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
ldr r0, _080A6670 @ =gUnk_08128E84
|
||||
bl sub_080A70AC
|
||||
ldr r0, _080A6674 @ =gPauseMenuOptions
|
||||
ldrb r0, [r0, #6]
|
||||
ldr r1, _080A6678 @ =gMenu
|
||||
strb r0, [r1, #3]
|
||||
bl sub_080A67C4
|
||||
bl sub_080A68D4
|
||||
movs r0, #1
|
||||
bl SetMenuType
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080A6670: .4byte gUnk_08128E84
|
||||
_080A6674: .4byte gPauseMenuOptions
|
||||
_080A6678: .4byte gMenu
|
||||
.syntax divided
|
||||
@@ -1,29 +0,0 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
bl sub_08056338
|
||||
cmp r0, #0
|
||||
beq _080A65CC
|
||||
cmp r0, #1
|
||||
beq _080A65D8
|
||||
b _080A65EA
|
||||
_080A65CC:
|
||||
ldr r1, _080A65D4 @ =gMenu
|
||||
movs r0, #2
|
||||
b _080A65DC
|
||||
.align 2, 0
|
||||
_080A65D4: .4byte gMenu
|
||||
_080A65D8:
|
||||
ldr r1, _080A65ECEU @ =gMenu
|
||||
movs r0, #3
|
||||
_080A65DC:
|
||||
strb r0, [r1]
|
||||
movs r0, #1
|
||||
cmp r0, #0
|
||||
beq _080A65EA
|
||||
movs r0, #3
|
||||
bl SetMenuType
|
||||
_080A65EA:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080A65ECEU: .4byte gMenu
|
||||
.syntax divided
|
||||
+104
-1
@@ -49,6 +49,7 @@ struct_08127F94* sub_080A6A80(u32 param_1, u32 param_2);
|
||||
void sub_080A698C(u32 param_1, u32 param_2, u32 param_3, u32 param_4);
|
||||
void sub_080A6438();
|
||||
void sub_080A5F48(u32, u32);
|
||||
void sub_080A6F6C(u32);
|
||||
|
||||
extern void DrawDungeonMap(u32 floor, struct_02019EE0* data, u32 size);
|
||||
extern void LoadDungeonMap(void);
|
||||
@@ -126,6 +127,7 @@ typedef struct {
|
||||
} struct_gUnk_08128E94;
|
||||
|
||||
extern const struct_gUnk_08128E94 gUnk_08128E94[];
|
||||
extern struct_gUnk_08128E94 gUnk_08128C14[];
|
||||
|
||||
typedef struct {
|
||||
u8 unk00 : 5;
|
||||
@@ -223,7 +225,108 @@ void sub_080A5594(void) {
|
||||
SetMenuType(1);
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/subtask2/sub_080A56A0.inc", void sub_080A56A0())
|
||||
void sub_080A56A0(void) {
|
||||
int iVar1;
|
||||
u32 uVar2;
|
||||
u32 uVar4;
|
||||
struct_gUnk_08128E94* ptr;
|
||||
|
||||
if (!sub_080A51F4()) {
|
||||
return;
|
||||
}
|
||||
gMenu.field_0xc = gUnk_08128C00;
|
||||
ptr = &gUnk_08128C14[gMenu.field_0x3];
|
||||
uVar2 = 0xff;
|
||||
switch (gInput.unk4) {
|
||||
case 0x40:
|
||||
uVar2 = ptr->unk0;
|
||||
break;
|
||||
case 0x80:
|
||||
uVar2 = ptr->unk1;
|
||||
break;
|
||||
case 0x20:
|
||||
uVar2 = ptr->unk2;
|
||||
break;
|
||||
case 0x10:
|
||||
uVar2 = ptr->unk3;
|
||||
break;
|
||||
}
|
||||
|
||||
if (uVar2 != 0xff) {
|
||||
gMenu.field_0x3 = uVar2;
|
||||
SoundReq(SFX_TEXTBOX_CHOICE);
|
||||
} else if (gInput.newKeys == 1) {
|
||||
uVar2 = gMenu.field_0x3;
|
||||
iVar1 = 0;
|
||||
switch (uVar2) {
|
||||
case 0:
|
||||
case 2:
|
||||
if (gGenericMenu.unk10.a[uVar2] != 0) {
|
||||
iVar1 = 8;
|
||||
if (uVar2 == 0) {
|
||||
iVar1 = 7;
|
||||
}
|
||||
}
|
||||
break;
|
||||
#if !defined(DEMO_USA) && !defined(DEMO_JP)
|
||||
case 4:
|
||||
iVar1 = 9;
|
||||
break;
|
||||
case 5:
|
||||
iVar1 = 10;
|
||||
break;
|
||||
#else
|
||||
case 4:
|
||||
SoundReq(SFX_MENU_ERROR);
|
||||
break;
|
||||
case 5:
|
||||
SoundReq(SFX_MENU_ERROR);
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
if (iVar1 != 0) {
|
||||
sub_080A4E84(iVar1);
|
||||
SoundReq(SFX_TEXTBOX_SELECT);
|
||||
}
|
||||
}
|
||||
switch (gMenu.field_0x3) {
|
||||
case 0:
|
||||
case 2:
|
||||
if (gGenericMenu.unk10.a[gMenu.field_0x3] != 0) {
|
||||
gUnk_0200AF00.buttonY[0] = 0x10;
|
||||
} else {
|
||||
gUnk_0200AF00.buttonY[0] = 0xfff0;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
gUnk_0200AF00.buttonY[0] = 0xfff0;
|
||||
break;
|
||||
}
|
||||
|
||||
uVar2 = gMenu.field_0x3;
|
||||
uVar4 = gGenericMenu.unk10.a[uVar2];
|
||||
if (uVar4 != 0) {
|
||||
switch (uVar2) {
|
||||
case 0:
|
||||
if (uVar4 != 0x3d) {
|
||||
uVar4 = 0x67;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
uVar4 = 99;
|
||||
break;
|
||||
case 2:
|
||||
uVar4 = 0x70;
|
||||
break;
|
||||
case 4:
|
||||
uVar4 = 0x74;
|
||||
break;
|
||||
case 5:
|
||||
uVar4 = 0x73;
|
||||
}
|
||||
}
|
||||
sub_080A6F6C(uVar4 + 0x400);
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/subtask2/sub_080A57F4.inc", void sub_080A57F4())
|
||||
|
||||
|
||||
Reference in New Issue
Block a user