mirror of https://github.com/zeldaret/tmc.git
menu main func OK
This commit is contained in:
parent
98f96793a9
commit
2555185721
|
|
@ -1,65 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_080AD380
|
||||
sub_080AD380: @ 0x080AD380
|
||||
push {r4, lr}
|
||||
bl sub_080AD90C
|
||||
ldr r4, _080AD398 @ =gUnk_03001000
|
||||
ldrb r0, [r4, #3]
|
||||
cmp r0, #1
|
||||
beq _080AD3BC
|
||||
cmp r0, #1
|
||||
bgt _080AD39C
|
||||
cmp r0, #0
|
||||
beq _080AD3A2
|
||||
b _080AD3EA
|
||||
.align 2, 0
|
||||
_080AD398: .4byte gUnk_03001000
|
||||
_080AD39C:
|
||||
cmp r0, #2
|
||||
beq _080AD3D8
|
||||
b _080AD3EA
|
||||
_080AD3A2:
|
||||
bl sub_08056418
|
||||
ldr r0, _080AD3B8 @ =gUnk_02032EC0
|
||||
movs r1, #0xed
|
||||
lsls r1, r1, #2
|
||||
bl _DmaZero
|
||||
movs r0, #0
|
||||
bl IntroSetTransition
|
||||
b _080AD3EA
|
||||
.align 2, 0
|
||||
_080AD3B8: .4byte gUnk_02032EC0
|
||||
_080AD3BC:
|
||||
ldr r1, _080AD3D0 @ =gUnk_081320F0
|
||||
ldr r0, _080AD3D4 @ =gUnk_02032EC0
|
||||
ldrb r0, [r0, #2]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
bl _call_via_r0
|
||||
b _080AD3EA
|
||||
.align 2, 0
|
||||
_080AD3D0: .4byte gUnk_081320F0
|
||||
_080AD3D4: .4byte gUnk_02032EC0
|
||||
_080AD3D8:
|
||||
ldr r0, _080AD3F0 @ =gUnk_03000FD0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080AD3EE
|
||||
movs r0, #1
|
||||
bl sub_0801DA90
|
||||
movs r0, #1
|
||||
strb r0, [r4, #3]
|
||||
_080AD3EA:
|
||||
bl sub_080AD918
|
||||
_080AD3EE:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080AD3F0: .4byte gUnk_03000FD0
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_080AD3F4
|
||||
sub_080AD3F4: @ 0x080AD3F4
|
||||
push {r4, r5, lr}
|
||||
bl sub_080AD84C
|
||||
adds r1, r0, #0
|
||||
ldr r4, _080AD450 @ =gMenu
|
||||
ldrb r0, [r4, #5]
|
||||
cmp r0, #0
|
||||
bne _080AD458
|
||||
movs r0, #1
|
||||
bl sub_0801DA90
|
||||
movs r5, #1
|
||||
strb r5, [r4, #5]
|
||||
movs r0, #0x78
|
||||
strh r0, [r4, #8]
|
||||
movs r0, #0x10
|
||||
bl sub_0801D7EC
|
||||
movs r0, #1
|
||||
bl sub_0801D7EC
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r0, [r0, #7]
|
||||
movs r1, #2
|
||||
cmp r0, #0
|
||||
bne _080AD42C
|
||||
movs r1, #1
|
||||
_080AD42C:
|
||||
adds r0, r1, #0
|
||||
bl LoadPalettesByPaletteGroupIndex
|
||||
ldr r0, _080AD454 @ =gScreen
|
||||
ldrh r1, [r0]
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #3
|
||||
adds r2, r3, #0
|
||||
orrs r1, r2
|
||||
strh r1, [r0]
|
||||
strh r5, [r0, #0x1a]
|
||||
movs r0, #6
|
||||
movs r1, #8
|
||||
bl DoFade
|
||||
movs r1, #0
|
||||
b _080AD45E
|
||||
.align 2, 0
|
||||
_080AD450: .4byte gMenu
|
||||
_080AD454: .4byte gScreen
|
||||
_080AD458:
|
||||
cmp r1, #1
|
||||
bne _080AD45E
|
||||
movs r1, #2
|
||||
_080AD45E:
|
||||
cmp r1, #2
|
||||
bne _080AD46C
|
||||
ldr r1, _080AD470 @ =gUnk_02000010
|
||||
movs r0, #1
|
||||
strb r0, [r1, #5]
|
||||
bl IntroSetTransition
|
||||
_080AD46C:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080AD470: .4byte gUnk_02000010
|
||||
|
|
@ -1,224 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_080AD474
|
||||
sub_080AD474: @ 0x080AD474
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r5, _080AD490 @ =gMenu
|
||||
ldrb r0, [r5, #0x12]
|
||||
adds r0, #1
|
||||
strb r0, [r5, #0x12]
|
||||
ldrb r0, [r5, #5]
|
||||
cmp r0, #1
|
||||
bne _080AD486
|
||||
b _080AD588
|
||||
_080AD486:
|
||||
cmp r0, #1
|
||||
bgt _080AD494
|
||||
cmp r0, #0
|
||||
beq _080AD49C
|
||||
b _080AD5C8
|
||||
.align 2, 0
|
||||
_080AD490: .4byte gMenu
|
||||
_080AD494:
|
||||
cmp r0, #2
|
||||
bne _080AD49A
|
||||
b _080AD5AA
|
||||
_080AD49A:
|
||||
b _080AD5C8
|
||||
_080AD49C:
|
||||
movs r4, #1
|
||||
strb r4, [r5, #5]
|
||||
strb r0, [r5, #6]
|
||||
movs r6, #0
|
||||
movs r0, #0x1e
|
||||
strh r0, [r5, #8]
|
||||
movs r0, #7
|
||||
strb r0, [r5, #4]
|
||||
bl EraseAllEntities
|
||||
movs r0, #0
|
||||
bl sub_0801CFA8
|
||||
bl sub_080ADD30
|
||||
ldr r0, _080AD50C @ =gUnk_02024490
|
||||
strb r4, [r0]
|
||||
movs r0, #2
|
||||
bl sub_0801D7EC
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #0x12
|
||||
ldrb r0, [r4, #7]
|
||||
movs r1, #4
|
||||
cmp r0, #0
|
||||
bne _080AD4D2
|
||||
movs r1, #3
|
||||
_080AD4D2:
|
||||
adds r0, r1, #0
|
||||
bl LoadPalettesByPaletteGroupIndex
|
||||
ldrb r0, [r4, #7]
|
||||
cmp r0, #0
|
||||
bne _080AD524
|
||||
ldr r2, _080AD510 @ =gScreen
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x66
|
||||
ldr r0, _080AD514 @ =0x00000844
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
adds r0, #0xc5
|
||||
strh r0, [r1]
|
||||
ldr r0, _080AD518 @ =0x00001C09
|
||||
strh r0, [r2, #0x14]
|
||||
adds r0, #0xf9
|
||||
strh r0, [r2, #0x20]
|
||||
ldr r0, _080AD51C @ =0x00001E03
|
||||
strh r0, [r2, #0x2c]
|
||||
ldrh r0, [r2]
|
||||
movs r3, #0xf0
|
||||
lsls r3, r3, #5
|
||||
adds r1, r3, #0
|
||||
orrs r0, r1
|
||||
strh r0, [r2]
|
||||
ldr r0, _080AD520 @ =0x0000FF60
|
||||
strh r0, [r2, #0x18]
|
||||
b _080AD55A
|
||||
.align 2, 0
|
||||
_080AD50C: .4byte gUnk_02024490
|
||||
_080AD510: .4byte gScreen
|
||||
_080AD514: .4byte 0x00000844
|
||||
_080AD518: .4byte 0x00001C09
|
||||
_080AD51C: .4byte 0x00001E03
|
||||
_080AD520: .4byte 0x0000FF60
|
||||
_080AD524:
|
||||
ldr r2, _080AD570 @ =gScreen
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x66
|
||||
ldr r0, _080AD574 @ =0x00000241
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
ldr r0, _080AD578 @ =0x00000909
|
||||
strh r0, [r1]
|
||||
ldr r0, _080AD57C @ =0x00001D02
|
||||
strh r0, [r2, #8]
|
||||
ldr r0, _080AD580 @ =0x00001E03
|
||||
strh r0, [r2, #0x14]
|
||||
ldr r0, _080AD584 @ =0x00007C89
|
||||
strh r0, [r2, #0x20]
|
||||
ldrh r0, [r2]
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
orrs r0, r6
|
||||
movs r3, #0x98
|
||||
lsls r3, r3, #5
|
||||
adds r1, r3, #0
|
||||
orrs r0, r1
|
||||
strh r0, [r2]
|
||||
movs r0, #0x10
|
||||
str r0, [r5, #0x2c]
|
||||
bl sub_080AD670
|
||||
_080AD55A:
|
||||
bl sub_080A3210
|
||||
movs r0, #3
|
||||
bl PlaySFX
|
||||
movs r0, #6
|
||||
movs r1, #8
|
||||
bl DoFade
|
||||
b _080AD610
|
||||
.align 2, 0
|
||||
_080AD570: .4byte gScreen
|
||||
_080AD574: .4byte 0x00000241
|
||||
_080AD578: .4byte 0x00000909
|
||||
_080AD57C: .4byte 0x00001D02
|
||||
_080AD580: .4byte 0x00001E03
|
||||
_080AD584: .4byte 0x00007C89
|
||||
_080AD588:
|
||||
ldr r0, _080AD5A0 @ =gUnk_03000FD0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080AD632
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r0, [r0, #7]
|
||||
cmp r0, #0
|
||||
bne _080AD5A4
|
||||
bl sub_080AD6AC
|
||||
b _080AD610
|
||||
.align 2, 0
|
||||
_080AD5A0: .4byte gUnk_03000FD0
|
||||
_080AD5A4:
|
||||
bl sub_080AD76C
|
||||
b _080AD610
|
||||
_080AD5AA:
|
||||
ldrh r0, [r5, #8]
|
||||
subs r0, #1
|
||||
strh r0, [r5, #8]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _080AD5C2
|
||||
movs r0, #0xe1
|
||||
lsls r0, r0, #4
|
||||
strh r0, [r5, #8]
|
||||
ldrb r0, [r5, #5]
|
||||
adds r0, #1
|
||||
strb r0, [r5, #5]
|
||||
_080AD5C2:
|
||||
bl sub_080AD644
|
||||
b _080AD610
|
||||
_080AD5C8:
|
||||
bl sub_080AD84C
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _080AD5EC
|
||||
cmp r4, #2
|
||||
bne _080AD5DE
|
||||
movs r0, #0x6a
|
||||
bl PlaySFX
|
||||
b _080AD5E0
|
||||
_080AD5DE:
|
||||
movs r4, #0
|
||||
_080AD5E0:
|
||||
adds r0, r4, #0
|
||||
bl IntroSetTransition
|
||||
ldr r0, _080AD634 @ =0x80080000
|
||||
bl PlaySFX
|
||||
_080AD5EC:
|
||||
bl sub_080AD644
|
||||
ldr r0, _080AD638 @ =gMenu
|
||||
ldrh r1, [r0, #8]
|
||||
movs r0, #0x20
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080AD610
|
||||
ldr r1, _080AD63C @ =gUnk_03001010
|
||||
movs r0, #0xe0
|
||||
lsls r0, r0, #8
|
||||
strh r0, [r1, #8]
|
||||
movs r0, #0x84
|
||||
strh r0, [r1, #2]
|
||||
ldr r0, _080AD640 @ =0x000001FF
|
||||
movs r1, #0
|
||||
bl sub_080ADA14
|
||||
_080AD610:
|
||||
ldr r2, _080AD638 @ =gMenu
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r1, [r0, #7]
|
||||
ldrb r0, [r2, #4]
|
||||
cmp r0, r1
|
||||
beq _080AD626
|
||||
strb r1, [r2, #4]
|
||||
movs r0, #3
|
||||
bl sub_0801D7EC
|
||||
_080AD626:
|
||||
bl sub_080AD89C
|
||||
bl sub_0805E5C0
|
||||
bl sub_080AD9B0
|
||||
_080AD632:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080AD634: .4byte 0x80080000
|
||||
_080AD638: .4byte gMenu
|
||||
_080AD63C: .4byte gUnk_03001010
|
||||
_080AD640: .4byte 0x000001FF
|
||||
|
|
@ -159,4 +159,14 @@ extern void sub_080AF2E4(void);
|
|||
extern void sub_0805ADD8(u32);
|
||||
extern void sub_0804F578(void);
|
||||
extern void sub_08059994(void);
|
||||
extern u32 sub_080AD84C();
|
||||
extern void sub_0801D7EC(u32);
|
||||
extern s32 sub_0801CFA8(u32);
|
||||
extern void sub_080AD670();
|
||||
extern void sub_080A3210();
|
||||
extern void sub_080AD6AC();
|
||||
extern void sub_080AD76C();
|
||||
extern void sub_080AD644();
|
||||
extern void sub_080ADA14(u32, u32);
|
||||
extern void sub_080AD89C();
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -14,6 +14,35 @@ typedef struct { // 0x03001000
|
|||
u32 spritePriority;
|
||||
} MainStruct;
|
||||
|
||||
typedef struct {
|
||||
u8 interruptFlag;
|
||||
u8 field_0x1;
|
||||
u8 funcIndex;
|
||||
u8 field_0x3;
|
||||
u8 transition;
|
||||
u8 field_0x5;
|
||||
u8 muteAudio;
|
||||
u8 field_0x8;
|
||||
u8 countdown;
|
||||
} Main;
|
||||
|
||||
typedef struct {
|
||||
u16 nextToLoad;
|
||||
u8 transitionType;
|
||||
u8 field_0x3;
|
||||
u8 state;
|
||||
u8 field_0x5;
|
||||
u8 field_0x6;
|
||||
u8 pauseFadeIn;
|
||||
u16 isLoading;
|
||||
u16 fadeInTime;
|
||||
} UI;
|
||||
|
||||
extern Main gUnk_03001000;
|
||||
extern UI gUnk_02032EC0;
|
||||
|
||||
|
||||
|
||||
extern s32 sub_08055F70();
|
||||
extern s32 sub_080A3204(s32);
|
||||
extern s32 sub_0805616C(s32);
|
||||
|
|
@ -21,10 +50,9 @@ extern s32 sub_0807CE90(s32);
|
|||
extern s32 sub_080560B8(s32);
|
||||
extern void sub_08056208(s32);
|
||||
extern void sub_0804FFE4();
|
||||
extern s32 sub_0804FF84(s32);
|
||||
extern s32 sub_08056418(s32);
|
||||
extern s32 sub_08056418();
|
||||
extern void sub_080ADD30(s32);
|
||||
extern s32 _DmaZero(s32, u32, u32);
|
||||
|
||||
extern s32 sub_08056010(s32);
|
||||
extern s32 sub_08016E78(s32);
|
||||
extern s32 ReadKeyInput();
|
||||
|
|
@ -37,8 +65,6 @@ extern s32 sub_08056458(s32);
|
|||
extern s32 sub_08050154(s32);
|
||||
extern s32 sub_080A3480(s32);
|
||||
|
||||
extern s32 gUnk_02000010;
|
||||
extern s32 gRand;
|
||||
extern MainStruct gUnk_03001000;
|
||||
extern s32 gUnk_08100CBC;
|
||||
#endif
|
||||
|
|
@ -24,10 +24,12 @@ typedef struct {
|
|||
u8 secret;
|
||||
u8 overlayType;
|
||||
u8 storyPanelIndex;
|
||||
u8 field_0x7;
|
||||
u8 transitionTimer;
|
||||
u16 transitionTimer;
|
||||
u8 field_0xa[8];
|
||||
u8 field_0x12;
|
||||
u8 field_0x13[22];
|
||||
u32 field_0x2c;
|
||||
} Menu;
|
||||
|
||||
extern Menu gMenu;
|
||||
|
||||
#endif
|
||||
|
|
@ -15,7 +15,8 @@ typedef struct {
|
|||
u16 bg0xOffset;
|
||||
u16 bg0yOffset;
|
||||
u16 bg0Updated;
|
||||
u32 unk;
|
||||
u16 unk;
|
||||
u16 unk2;
|
||||
} BgSettings;
|
||||
|
||||
typedef struct {
|
||||
|
|
|
|||
|
|
@ -883,9 +883,6 @@ SECTIONS {
|
|||
src/sub_080A554C.o(.text);
|
||||
asm/code_080A5574.o(.text);
|
||||
src/introSetTransition.o(.text);
|
||||
asm/sub_080AD380.o(.text);
|
||||
asm/sub_080AD3F4.o(.text);
|
||||
asm/sub_080AD474.o(.text);
|
||||
src/sub_080AD644.o(.text);
|
||||
asm/sub_080AD670.o(.text);
|
||||
asm/sub_080AD6Ac.o(.text);
|
||||
|
|
|
|||
|
|
@ -1,27 +1,197 @@
|
|||
#include "global.h"
|
||||
#include "menu.h"
|
||||
#include "main.h"
|
||||
#include "entity.h"
|
||||
#include "functions.h"
|
||||
#include "screen.h"
|
||||
|
||||
extern void (*const gUnk_081320F0[])();
|
||||
|
||||
extern u8 gUnk_03000FD0;
|
||||
|
||||
typedef struct {
|
||||
char header[4];
|
||||
u8 saveFile;
|
||||
u8 field_0x5;
|
||||
u8 brightnessPref;
|
||||
u8 gameLanguage;
|
||||
} struct_02000000;
|
||||
|
||||
typedef struct {
|
||||
u8 unk;
|
||||
u8 unk2;
|
||||
u8 unk3;
|
||||
u8 functionIndex;
|
||||
u16 unk6;
|
||||
u8 filler[5];
|
||||
u32 ticks;
|
||||
u16 unk7;
|
||||
} TransitionStruct;
|
||||
u8 field_0x5;
|
||||
} struct_02000010;
|
||||
|
||||
extern u32 DoFade(u32, u32);
|
||||
extern void _DmaZero(u32*, u32, u32);
|
||||
extern TransitionStruct gUnk_03001000;
|
||||
extern MenuControls gUnk_02032EC0;
|
||||
|
||||
u32 IntroSetTransition(u8 transition, u32 param_2, u32 param_3)
|
||||
extern struct_02000010 gUnk_02000010;
|
||||
|
||||
u32 IntroSetTransition(u32 transition)
|
||||
{
|
||||
gUnk_02032EC0.transitionType = transition;
|
||||
gUnk_03001000.functionIndex = 2;
|
||||
_DmaZero((u32 *)&gMenu, 48, param_3);
|
||||
return DoFade(7, 8);
|
||||
gUnk_03001000.field_0x3 = 2;
|
||||
_DmaZero((u32 *)&gMenu, 48);
|
||||
DoFade(7, 8);
|
||||
}
|
||||
|
||||
void sub_080AD380()
|
||||
{
|
||||
sub_080AD90C();
|
||||
switch (gUnk_03001000.field_0x3) {
|
||||
case 0:
|
||||
sub_08056418();
|
||||
_DmaZero(&gUnk_02032EC0, 0x3b4);
|
||||
IntroSetTransition(0);
|
||||
break;
|
||||
case 1:
|
||||
gUnk_081320F0[gUnk_02032EC0.transitionType]();
|
||||
break;
|
||||
case 2:
|
||||
if (gUnk_03000FD0 != 0) {
|
||||
return;
|
||||
}
|
||||
sub_0801DA90(1);
|
||||
gUnk_03001000.field_0x3 = 1;
|
||||
break;
|
||||
}
|
||||
sub_080AD918();
|
||||
}
|
||||
|
||||
void sub_080AD3F4(void)
|
||||
{
|
||||
u32 iVar1;
|
||||
u32 uVar2;
|
||||
|
||||
iVar1 = sub_080AD84C();
|
||||
if (gMenu.secret == 0) {
|
||||
sub_0801DA90(1);
|
||||
gMenu.secret = 1;
|
||||
gMenu.transitionTimer = 0x78;
|
||||
sub_0801D7EC(0x10);
|
||||
sub_0801D7EC(1);
|
||||
if (((struct_02000000 *)0x2000000)->gameLanguage == 0) {
|
||||
uVar2 = 1;
|
||||
}
|
||||
else {
|
||||
uVar2 = 2;
|
||||
}
|
||||
LoadPalettesByPaletteGroupIndex(uVar2);
|
||||
gScreen.lcd.lcdControl2 |= 0x400;
|
||||
gScreen.bg2.bg0xOffset = 1;
|
||||
DoFade(6, 8);
|
||||
iVar1 = 0;
|
||||
}
|
||||
else {
|
||||
if (iVar1 == 1) {
|
||||
iVar1 = 2;
|
||||
}
|
||||
}
|
||||
if (iVar1 == 2) {
|
||||
gUnk_02000010.field_0x5 = 1;
|
||||
IntroSetTransition(1);
|
||||
}
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
u16 field_0x0;
|
||||
u16 field_0x2;
|
||||
u16 field_0x4[2];
|
||||
u16 field_0x8;
|
||||
} struct_03001010;
|
||||
|
||||
extern struct_03001010 gUnk_03001010;
|
||||
|
||||
extern u8 gUnk_02024490;
|
||||
extern u8 gUnk_03000FD0;
|
||||
|
||||
void sub_080AD474(void)
|
||||
{
|
||||
int iVar2;
|
||||
u32 uVar3;
|
||||
|
||||
gMenu.field_0x12++;
|
||||
switch (gMenu.secret) {
|
||||
case 0:
|
||||
gMenu.secret = 1;
|
||||
gMenu.overlayType = 0;
|
||||
gMenu.transitionTimer = 0x1e;
|
||||
gMenu.field_0x2 = 7;
|
||||
EraseAllEntities();
|
||||
sub_080ADD30(sub_0801CFA8(0));
|
||||
gUnk_02024490 = 1;
|
||||
sub_0801D7EC(2);
|
||||
if (((struct_02000000*)0x2000000)->gameLanguage == 0) {
|
||||
uVar3 = 3;
|
||||
}
|
||||
else {
|
||||
uVar3 = 4;
|
||||
}
|
||||
LoadPalettesByPaletteGroupIndex(uVar3);
|
||||
if (((struct_02000000*)0x2000000)->gameLanguage == 0) {
|
||||
gScreen.controls.windowOutsideControl = 0x844;
|
||||
gScreen.controls.mosaicSize = 0x909;
|
||||
gScreen.bg1.unk = 0x1c09;
|
||||
gScreen.bg2.unk = 0x1d02;
|
||||
gScreen.affine.unk2 = 0x1e03;
|
||||
gScreen.lcd.lcdControl2 |= 0x1e00;
|
||||
gScreen.bg2.bg0Control = 0xff60;
|
||||
}
|
||||
else {
|
||||
gScreen.controls.windowOutsideControl = 0x241;
|
||||
gScreen.controls.mosaicSize = 0x909;
|
||||
gScreen.lcd.lcdControl1 = 0x1d02;
|
||||
gScreen.bg1.unk = 0x1E03;
|
||||
gScreen.bg2.unk = 0x7C89;
|
||||
gScreen.lcd.lcdControl2 |= 1;
|
||||
gScreen.lcd.lcdControl2 |= 0x1300;
|
||||
gMenu.field_0x2c = 0x10;
|
||||
sub_080AD670();
|
||||
}
|
||||
sub_080A3210();
|
||||
PlaySFX(3);
|
||||
DoFade(6, 8);
|
||||
break;
|
||||
case 1:
|
||||
if (gUnk_03000FD0 != 0) {
|
||||
return;
|
||||
}
|
||||
if (((struct_02000000*)0x2000000)->gameLanguage == 0) {
|
||||
sub_080AD6AC();
|
||||
}
|
||||
else {
|
||||
sub_080AD76C();
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
gMenu.transitionTimer--;
|
||||
if (gMenu.transitionTimer == 0) {
|
||||
gMenu.transitionTimer = 0xe10;
|
||||
gMenu.secret++;
|
||||
}
|
||||
sub_080AD644();
|
||||
break;
|
||||
default:
|
||||
iVar2 = sub_080AD84C();
|
||||
if (iVar2 != 0) {
|
||||
if (iVar2 == 2) {
|
||||
PlaySFX(0x6a);
|
||||
}
|
||||
else {
|
||||
iVar2 = 0;
|
||||
}
|
||||
IntroSetTransition(iVar2);
|
||||
PlaySFX(0x80080000);
|
||||
}
|
||||
sub_080AD644();
|
||||
if ((gMenu.transitionTimer & 0x20) == 0) {
|
||||
gUnk_03001010.field_0x8 = 0xe000;
|
||||
gUnk_03001010.field_0x2 = 0x84;
|
||||
sub_080ADA14(0x1ff,0);
|
||||
}
|
||||
}
|
||||
if (gMenu.field_0x2 != ((struct_02000000*)0x2000000)->gameLanguage) {
|
||||
gMenu.field_0x2 = ((struct_02000000*)0x2000000)->gameLanguage;
|
||||
sub_0801D7EC(3);
|
||||
}
|
||||
sub_080AD89C();
|
||||
sub_0805E5C0();
|
||||
sub_080AD9B0();
|
||||
}
|
||||
14
src/room.c
14
src/room.c
|
|
@ -6,6 +6,7 @@
|
|||
#include "flags.h"
|
||||
#include "link.h"
|
||||
#include "screen.h"
|
||||
#include "main.h"
|
||||
|
||||
typedef struct {
|
||||
u8 field_0x0[8];
|
||||
|
|
@ -37,21 +38,8 @@ typedef struct {
|
|||
Stats stats;
|
||||
} struct_02002A40;
|
||||
|
||||
typedef struct {
|
||||
u8 interruptFlag;
|
||||
u8 field_0x1;
|
||||
u8 funcIndex;
|
||||
u8 field_0x3;
|
||||
u8 transition;
|
||||
u8 field_0x5;
|
||||
u8 muteAudio;
|
||||
u8 field_0x8;
|
||||
u8 countdown;
|
||||
} Main;
|
||||
|
||||
extern struct_030010A0 gUnk_030010A0;
|
||||
extern struct_02002A40 gUnk_02002A40;
|
||||
extern Main gUnk_03001000;
|
||||
|
||||
void sub_0804B3C4(u32 arg0) {
|
||||
sub_0804B29C(arg0);
|
||||
|
|
|
|||
Loading…
Reference in New Issue