mirror of https://github.com/zeldaret/tmc.git
Menu struct fixed for good this time
This commit is contained in:
parent
e0cfbb15a5
commit
f4320b6fcd
|
@ -6,74 +6,6 @@
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_080A3BD0
|
|
||||||
sub_080A3BD0: @ 0x080A3BD0
|
|
||||||
push {r4, lr}
|
|
||||||
ldr r0, _080A3C54 @ =gMenu
|
|
||||||
movs r1, #0
|
|
||||||
movs r4, #1
|
|
||||||
strb r4, [r0, #1]
|
|
||||||
adds r0, #0x2a
|
|
||||||
strb r1, [r0]
|
|
||||||
bl sub_080A4D34
|
|
||||||
movs r0, #0xcb
|
|
||||||
bl LoadPalettesByPaletteGroupIndex
|
|
||||||
movs r0, #0x75
|
|
||||||
bl sub_0801D7EC
|
|
||||||
bl sub_080A4494
|
|
||||||
adds r1, r0, #7
|
|
||||||
cmp r1, #0
|
|
||||||
bge _080A3BFA
|
|
||||||
adds r1, #7
|
|
||||||
_080A3BFA:
|
|
||||||
asrs r0, r1, #3
|
|
||||||
subs r0, #6
|
|
||||||
cmp r0, #0
|
|
||||||
bge _080A3C04
|
|
||||||
movs r0, #0
|
|
||||||
_080A3C04:
|
|
||||||
cmp r0, #6
|
|
||||||
ble _080A3C0A
|
|
||||||
movs r0, #6
|
|
||||||
_080A3C0A:
|
|
||||||
adds r0, #0x76
|
|
||||||
bl sub_0801D7EC
|
|
||||||
ldr r1, _080A3C58 @ =gScreen
|
|
||||||
ldrh r2, [r1]
|
|
||||||
movs r3, #0xf0
|
|
||||||
lsls r3, r3, #5
|
|
||||||
adds r0, r3, #0
|
|
||||||
orrs r0, r2
|
|
||||||
strh r0, [r1]
|
|
||||||
ldr r0, _080A3C5C @ =0x00001C01
|
|
||||||
strh r0, [r1, #0x14]
|
|
||||||
ldr r0, _080A3C60 @ =0x00001D02
|
|
||||||
strh r0, [r1, #0x20]
|
|
||||||
ldr r0, _080A3C64 @ =0x00001E0B
|
|
||||||
strh r0, [r1, #0x2c]
|
|
||||||
strh r4, [r1, #0x1a]
|
|
||||||
strh r4, [r1, #0x26]
|
|
||||||
strh r4, [r1, #0x32]
|
|
||||||
bl sub_080A4528
|
|
||||||
bl sub_080A4398
|
|
||||||
movs r0, #0
|
|
||||||
bl sub_0801E738
|
|
||||||
ldr r0, _080A3C68 @ =gUnk_081280DC
|
|
||||||
bl sub_080A70AC
|
|
||||||
movs r0, #1
|
|
||||||
bl sub_080A7114
|
|
||||||
movs r0, #6
|
|
||||||
movs r1, #8
|
|
||||||
bl DoFade
|
|
||||||
pop {r4, pc}
|
|
||||||
.align 2, 0
|
|
||||||
_080A3C54: .4byte gMenu
|
|
||||||
_080A3C58: .4byte gScreen
|
|
||||||
_080A3C5C: .4byte 0x00001C01
|
|
||||||
_080A3C60: .4byte 0x00001D02
|
|
||||||
_080A3C64: .4byte 0x00001E0B
|
|
||||||
_080A3C68: .4byte gUnk_081280DC
|
|
||||||
|
|
||||||
thumb_func_start sub_080A3C6C
|
thumb_func_start sub_080A3C6C
|
||||||
sub_080A3C6C: @ 0x080A3C6C
|
sub_080A3C6C: @ 0x080A3C6C
|
||||||
push {r4, r5, lr}
|
push {r4, r5, lr}
|
||||||
|
|
|
@ -176,4 +176,11 @@ extern void sub_080A3B74(void);
|
||||||
extern void sub_080A4054(void);
|
extern void sub_080A4054(void);
|
||||||
extern void sub_0801C1D4(void);
|
extern void sub_0801C1D4(void);
|
||||||
extern void sub_0801C208(void);
|
extern void sub_0801C208(void);
|
||||||
|
extern void sub_080A4D34(void);
|
||||||
|
extern u32 sub_080A4494(void);
|
||||||
|
extern void sub_080A4528(void);
|
||||||
|
extern void sub_080A4398(void);
|
||||||
|
extern void sub_0801E738(u32);
|
||||||
|
extern void sub_080A70AC(void*);
|
||||||
|
extern void sub_080A7114(u32);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -19,8 +19,10 @@ typedef struct {
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u8 field_0x0;
|
u8 field_0x0;
|
||||||
u16 field_0x1;
|
u8 field_0x1;
|
||||||
|
u8 field_0x2;
|
||||||
u8 field_0x3;
|
u8 field_0x3;
|
||||||
|
u8 field_0x4;
|
||||||
u8 menuType;
|
u8 menuType;
|
||||||
u8 overlayType;
|
u8 overlayType;
|
||||||
u8 storyPanelIndex;
|
u8 storyPanelIndex;
|
||||||
|
|
|
@ -117,7 +117,7 @@ void sub_080AD474(void)
|
||||||
gMenu.menuType = 1;
|
gMenu.menuType = 1;
|
||||||
gMenu.overlayType = 0;
|
gMenu.overlayType = 0;
|
||||||
gMenu.transitionTimer = 0x1e;
|
gMenu.transitionTimer = 0x1e;
|
||||||
gMenu.field_0x3 = 7;
|
gMenu.field_0x4 = 7;
|
||||||
EraseAllEntities();
|
EraseAllEntities();
|
||||||
sub_080ADD30(sub_0801CFA8(0));
|
sub_080ADD30(sub_0801CFA8(0));
|
||||||
gUnk_02024490 = 1;
|
gUnk_02024490 = 1;
|
||||||
|
@ -191,8 +191,8 @@ void sub_080AD474(void)
|
||||||
sub_080ADA14(0x1ff,0);
|
sub_080ADA14(0x1ff,0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (gMenu.field_0x3 != ((struct_02000000*)0x2000000)->gameLanguage) {
|
if (gMenu.field_0x4 != ((struct_02000000*)0x2000000)->gameLanguage) {
|
||||||
gMenu.field_0x3 = ((struct_02000000*)0x2000000)->gameLanguage;
|
gMenu.field_0x4 = ((struct_02000000*)0x2000000)->gameLanguage;
|
||||||
sub_0801D7EC(3);
|
sub_0801D7EC(3);
|
||||||
}
|
}
|
||||||
sub_080AD89C();
|
sub_080AD89C();
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#include "functions.h"
|
#include "functions.h"
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
#include "structures.h"
|
#include "structures.h"
|
||||||
|
#include "screen.h"
|
||||||
|
|
||||||
extern void (*const gUnk_081280C4[])();
|
extern void (*const gUnk_081280C4[])();
|
||||||
|
|
||||||
|
@ -18,4 +19,43 @@ void DrawKinstoneMenu(void)
|
||||||
sub_080AD9B0();
|
sub_080AD9B0();
|
||||||
sub_080AD918();
|
sub_080AD918();
|
||||||
gUnk_030010A0.field_0x24[8] = 0;
|
gUnk_030010A0.field_0x24[8] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
extern void gUnk_081280DC;
|
||||||
|
|
||||||
|
void sub_080A3BD0(void)
|
||||||
|
{
|
||||||
|
s32 iVar1;
|
||||||
|
s32 iVar2;
|
||||||
|
|
||||||
|
gMenu.field_0x1 = 1;
|
||||||
|
gMenu.field_0x12[0x17] = 0;
|
||||||
|
sub_080A4D34();
|
||||||
|
LoadPalettesByPaletteGroupIndex(0xcb);
|
||||||
|
sub_0801D7EC(0x75);
|
||||||
|
|
||||||
|
iVar1 = sub_080A4494();
|
||||||
|
iVar2 = iVar1 + 7;
|
||||||
|
if (iVar2 < 0) {
|
||||||
|
iVar2 += 0x7;
|
||||||
|
}
|
||||||
|
|
||||||
|
iVar1 = (iVar2 >> 3) - 6;
|
||||||
|
iVar1 = max(iVar1, 0);
|
||||||
|
iVar1 = min(iVar1, 6);
|
||||||
|
|
||||||
|
sub_0801D7EC(iVar1 + 0x76);
|
||||||
|
gScreen.lcd.lcdControl2 |= 0x1e00;
|
||||||
|
gScreen.bg1.unk = 0x1c01;
|
||||||
|
gScreen.bg2.unk = 0x1d02;
|
||||||
|
gScreen.affine.unk2 = 0x1e0b;
|
||||||
|
gScreen.bg2.bg0xOffset = 1;
|
||||||
|
gScreen.affine.bg2xOffset = 1;
|
||||||
|
gScreen.affine.bg3xOffset = 1;
|
||||||
|
sub_080A4528();
|
||||||
|
sub_080A4398();
|
||||||
|
sub_0801E738(0);
|
||||||
|
sub_080A70AC(&gUnk_081280DC);
|
||||||
|
sub_080A7114(1);
|
||||||
|
DoFade(6, 8);
|
||||||
}
|
}
|
Loading…
Reference in New Issue