mirror of https://github.com/zeldaret/tmc.git
code_0804AA84.c
This commit is contained in:
parent
18069fcd80
commit
0f07e1ab9b
|
|
@ -675,7 +675,7 @@ _0809D454:
|
|||
str r1, [r0, #0x40]
|
||||
movs r0, #9
|
||||
movs r1, #0
|
||||
bl sub_080A7138
|
||||
bl MenuFadeIn
|
||||
_0809D478:
|
||||
ldr r4, [r5, #0x54]
|
||||
cmp r4, #0
|
||||
|
|
|
|||
|
|
@ -434,7 +434,7 @@ sub_080197A0: @ 0x080197A0
|
|||
push {lr}
|
||||
movs r0, #2
|
||||
movs r1, #0xb
|
||||
bl sub_080A7138
|
||||
bl MenuFadeIn
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_080197AC
|
||||
|
|
|
|||
|
|
@ -1178,7 +1178,7 @@ sub_0801E044: @ 0x0801E044
|
|||
bne _0801E06A
|
||||
movs r0, #4
|
||||
movs r1, #0
|
||||
bl sub_080A7138
|
||||
bl MenuFadeIn
|
||||
ldr r0, _0801E070 @ =gUnk_02022740
|
||||
movs r1, #4
|
||||
strb r1, [r0]
|
||||
|
|
|
|||
|
|
@ -4,127 +4,6 @@
|
|||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_0804AA84
|
||||
sub_0804AA84: @ 0x0804AA84
|
||||
push {lr}
|
||||
ldr r3, _0804AA98 @ =gArea
|
||||
ldrb r0, [r3, #0x19]
|
||||
cmp r0, #0
|
||||
bne _0804AA9C
|
||||
strb r0, [r3, #0x18]
|
||||
strb r0, [r3, #0x19]
|
||||
movs r0, #0
|
||||
b _0804AAB0
|
||||
.align 2, 0
|
||||
_0804AA98: .4byte gArea
|
||||
_0804AA9C:
|
||||
ldr r2, _0804AAB4 @ =gUnk_03001000
|
||||
movs r1, #0
|
||||
movs r0, #4
|
||||
strb r0, [r2, #4]
|
||||
strb r1, [r3, #0xe]
|
||||
strb r1, [r3, #0xf]
|
||||
strh r1, [r3, #0x10]
|
||||
bl sub_0805E5A8
|
||||
movs r0, #1
|
||||
_0804AAB0:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0804AAB4: .4byte gUnk_03001000
|
||||
|
||||
thumb_func_start sub_0804AAB8
|
||||
sub_0804AAB8: @ 0x0804AAB8
|
||||
push {lr}
|
||||
ldr r1, _0804AACC @ =gUnk_080D4120
|
||||
ldr r0, _0804AAD0 @ =gArea
|
||||
ldrb r0, [r0, #0xe]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
bl _call_via_r0
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0804AACC: .4byte gUnk_080D4120
|
||||
_0804AAD0: .4byte gArea
|
||||
|
||||
thumb_func_start sub_0804AAD4
|
||||
sub_0804AAD4: @ 0x0804AAD4
|
||||
push {r4, lr}
|
||||
ldr r4, _0804AAFC @ =gUnk_02018EB0
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x28
|
||||
bl _DmaZero
|
||||
movs r0, #0
|
||||
str r0, [r4, #0x14]
|
||||
bl sub_0805E60C
|
||||
ldr r4, _0804AB00 @ =gArea
|
||||
ldrb r1, [r4, #0x17]
|
||||
movs r0, #0x3d
|
||||
movs r2, #0
|
||||
bl CreateObject
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0804AAFC: .4byte gUnk_02018EB0
|
||||
_0804AB00: .4byte gArea
|
||||
|
||||
thumb_func_start sub_0804AB04
|
||||
sub_0804AB04: @ 0x0804AB04
|
||||
push {lr}
|
||||
bl sub_0805E5C0
|
||||
ldr r0, _0804AB20 @ =gArea
|
||||
ldrh r0, [r0, #0x10]
|
||||
cmp r0, #0
|
||||
beq _0804AB1E
|
||||
bl sub_080AD90C
|
||||
bl sub_080AD9B0
|
||||
bl sub_080AD918
|
||||
_0804AB1E:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0804AB20: .4byte gArea
|
||||
|
||||
thumb_func_start sub_0804AB24
|
||||
sub_0804AB24: @ 0x0804AB24
|
||||
push {r4, r5, lr}
|
||||
ldr r5, _0804AB48 @ =gUnk_03000FD0
|
||||
ldrb r1, [r5]
|
||||
cmp r1, #0
|
||||
bne _0804AB46
|
||||
ldr r0, _0804AB4C @ =gScreen
|
||||
movs r4, #0
|
||||
strh r1, [r0]
|
||||
bl sub_0801E104
|
||||
ldr r0, _0804AB50 @ =gArea
|
||||
strb r4, [r0, #0xe]
|
||||
movs r0, #6
|
||||
movs r1, #0
|
||||
bl sub_080A7138
|
||||
strb r4, [r5]
|
||||
_0804AB46:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0804AB48: .4byte gUnk_03000FD0
|
||||
_0804AB4C: .4byte gScreen
|
||||
_0804AB50: .4byte gArea
|
||||
|
||||
thumb_func_start sub_0804AB54
|
||||
sub_0804AB54: @ 0x0804AB54
|
||||
push {lr}
|
||||
ldr r1, _0804AB68 @ =gUnk_080D412C
|
||||
ldr r0, _0804AB6C @ =gArea
|
||||
ldrb r0, [r0, #0xe]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
bl _call_via_r0
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0804AB68: .4byte gUnk_080D412C
|
||||
_0804AB6C: .4byte gArea
|
||||
|
||||
thumb_func_start sub_0804AB70
|
||||
sub_0804AB70: @ 0x0804AB70
|
||||
|
|
@ -173,7 +52,7 @@ _0804ABA4:
|
|||
lsls r1, r1, #0xe
|
||||
orrs r0, r1
|
||||
str r0, [r2]
|
||||
bl sub_0805E60C
|
||||
bl EraseAllEntities
|
||||
ldr r1, _0804AC18 @ =gUnk_080D4110
|
||||
lsls r0, r5, #2
|
||||
adds r0, r0, r1
|
||||
|
|
|
|||
|
|
@ -3176,7 +3176,7 @@ sub_0804CD48: @ 0x0804CD48
|
|||
bl SetLocalFlag
|
||||
movs r0, #5
|
||||
movs r1, #0
|
||||
bl sub_080A7138
|
||||
bl MenuFadeIn
|
||||
ldr r0, _0804CD94 @ =gUnk_02000070
|
||||
strb r4, [r0]
|
||||
ldr r0, _0804CD98 @ =gUnk_03000FD0
|
||||
|
|
|
|||
|
|
@ -634,7 +634,7 @@ sub_080504F4: @ 0x080504F4
|
|||
movs r1, #0x80
|
||||
bl _DmaZero
|
||||
bl sub_08056418
|
||||
bl sub_0805E60C
|
||||
bl EraseAllEntities
|
||||
bl sub_08080668
|
||||
bl sub_080ADD30
|
||||
movs r0, #0
|
||||
|
|
@ -3331,7 +3331,7 @@ sub_08051A14: @ 0x08051A14
|
|||
movs r1, #0xed
|
||||
lsls r1, r1, #2
|
||||
bl _DmaZero
|
||||
bl sub_0805E60C
|
||||
bl EraseAllEntities
|
||||
bl sub_080197AC
|
||||
bl sub_08080668
|
||||
bl sub_080ADD30
|
||||
|
|
@ -3881,7 +3881,7 @@ sub_08051F40: @ 0x08051F40
|
|||
beq _08051F68
|
||||
lsrs r1, r1, #4
|
||||
movs r0, #2
|
||||
bl sub_080A7138
|
||||
bl MenuFadeIn
|
||||
b _08051F76
|
||||
.align 2, 0
|
||||
_08051F60: .4byte gUnk_080FCA20
|
||||
|
|
|
|||
|
|
@ -1712,7 +1712,7 @@ sub_08053434: @ 0x08053434
|
|||
bl sub_08053460
|
||||
movs r0, #5
|
||||
movs r1, #6
|
||||
bl sub_080A7138
|
||||
bl MenuFadeIn
|
||||
_0805345A:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ sub_08054920: @ 0x08054920
|
|||
ldr r0, _08054950 @ =gUnk_02032EC0
|
||||
ldrb r1, [r0, #3]
|
||||
movs r0, #0xa
|
||||
bl sub_080A7138
|
||||
bl MenuFadeIn
|
||||
b _08054962
|
||||
.align 2, 0
|
||||
_08054948: .4byte gUnk_080C9CBC
|
||||
|
|
|
|||
|
|
@ -354,8 +354,8 @@ sub_0805E5F8: @ 0x0805E5F8
|
|||
.align 2, 0
|
||||
_0805E608: .4byte gUnk_03005F40
|
||||
|
||||
thumb_func_start sub_0805E60C
|
||||
sub_0805E60C: @ 0x0805E60C
|
||||
thumb_func_start EraseAllEntities
|
||||
EraseAllEntities: @ 0x0805E60C
|
||||
push {lr}
|
||||
bl sub_0805E89C
|
||||
ldr r0, _0805E654 @ =gUnk_03003DC0
|
||||
|
|
|
|||
|
|
@ -5472,7 +5472,7 @@ sub_0807F420: @ 0x0807F420
|
|||
lsls r2, r2, #0x18
|
||||
lsrs r2, r2, #0x18
|
||||
adds r1, r2, #0
|
||||
bl sub_080A7138
|
||||
bl MenuFadeIn
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_0807F434
|
||||
|
|
|
|||
|
|
@ -264,7 +264,7 @@ sub_080A3DB8: @ 0x080A3DB8
|
|||
cmp r0, #0
|
||||
beq _080A3DE8
|
||||
ldrb r1, [r1, #4]
|
||||
bl sub_080A7138
|
||||
bl MenuFadeIn
|
||||
b _080A3DF8
|
||||
.align 2, 0
|
||||
_080A3DDC: .4byte gMenu
|
||||
|
|
@ -2288,7 +2288,7 @@ sub_080A4D88: @ 0x080A4D88
|
|||
bl _DmaZero
|
||||
movs r0, #1
|
||||
movs r1, #0
|
||||
bl sub_080A7138
|
||||
bl MenuFadeIn
|
||||
movs r0, #0x80
|
||||
bl sub_080A3248
|
||||
pop {pc}
|
||||
|
|
|
|||
|
|
@ -3540,8 +3540,8 @@ sub_080A7124: @ 0x080A7124
|
|||
.align 2, 0
|
||||
_080A7134: .4byte gUnk_02032EC0
|
||||
|
||||
thumb_func_start sub_080A7138
|
||||
sub_080A7138: @ 0x080A7138
|
||||
thumb_func_start MenuFadeIn
|
||||
MenuFadeIn: @ 0x080A7138
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
adds r6, r1, #0
|
||||
|
|
@ -3608,7 +3608,7 @@ _080A71B8:
|
|||
strb r2, [r3, #0xf]
|
||||
_080A71BA:
|
||||
adds r0, r4, #0
|
||||
bl sub_080A7138
|
||||
bl MenuFadeIn
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
|
|
@ -3617,7 +3617,7 @@ sub_080A71C4: @ 0x080A71C4
|
|||
push {r4, r5, lr}
|
||||
adds r4, r2, #0
|
||||
adds r5, r3, #0
|
||||
bl sub_080A7138
|
||||
bl MenuFadeIn
|
||||
ldr r0, _080A71D8 @ =gUnk_02032EC0
|
||||
strh r4, [r0, #8]
|
||||
strh r5, [r0, #0xa]
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@ _08087CCA:
|
|||
bl SetRoomFlag
|
||||
movs r0, #7
|
||||
movs r1, #0xff
|
||||
bl sub_080A7138
|
||||
bl MenuFadeIn
|
||||
b _08087D1A
|
||||
_08087CFA:
|
||||
movs r0, #5
|
||||
|
|
@ -332,7 +332,7 @@ _08087E10:
|
|||
bl SetRoomFlag
|
||||
ldrb r1, [r4, #0xf]
|
||||
movs r0, #7
|
||||
bl sub_080A7138
|
||||
bl MenuFadeIn
|
||||
b _08087E5A
|
||||
_08087E3C:
|
||||
movs r0, #2
|
||||
|
|
|
|||
|
|
@ -199,7 +199,7 @@ _08059034:
|
|||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0xd]
|
||||
movs r0, #5
|
||||
bl sub_080A7138
|
||||
bl MenuFadeIn
|
||||
b _08059060
|
||||
.align 2, 0
|
||||
_0805904C: .4byte gLinkEntity
|
||||
|
|
|
|||
|
|
@ -382,7 +382,7 @@ sub_08065314: @ 0x08065314
|
|||
strb r0, [r2, #0xd]
|
||||
movs r0, #3
|
||||
movs r1, #3
|
||||
bl sub_080A7138
|
||||
bl MenuFadeIn
|
||||
_08065332:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ _080AD49C:
|
|||
strh r0, [r5, #8]
|
||||
movs r0, #7
|
||||
strb r0, [r5, #4]
|
||||
bl sub_0805E60C
|
||||
bl EraseAllEntities
|
||||
movs r0, #0
|
||||
bl sub_0801CFA8
|
||||
bl sub_080ADD30
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@ typedef struct {
|
|||
u8 locationIndex;
|
||||
u8 unk;
|
||||
u16 localFlagOffset;
|
||||
u8 filler[19];
|
||||
u8 filler[10];
|
||||
u16 field_0x10;
|
||||
u8 filler3[7];
|
||||
u8 fadeOut;
|
||||
u8 filler2[14];
|
||||
} Area;
|
||||
|
|
|
|||
|
|
@ -29,6 +29,8 @@ extern u32 GetFacingDirection(Entity*, Entity*);
|
|||
extern Entity* CreatePlayerItem(u32, u32, u32, u32);
|
||||
extern Entity* GetEmptyEntity(void);
|
||||
extern u32 GetTileTypeByPos(s32 x, s32 y, u32 layer);
|
||||
extern void _DmaZero(void* src, u32 count);
|
||||
extern void EraseAllEntities(void);
|
||||
|
||||
// Unidentified
|
||||
extern void sub_0806ED78(Entity*);
|
||||
|
|
@ -96,4 +98,11 @@ extern void sub_08077F50(ItemBehavior *beh, u32 arg1);
|
|||
extern void sub_0807AA80(Entity*);
|
||||
extern s32 sub_0807887C(Entity*, u32, u32);
|
||||
extern s32 sub_08078904();
|
||||
extern void sub_0805E5A8(void);
|
||||
extern void sub_0805E5C0(void);
|
||||
extern void sub_080AD90C(void);
|
||||
extern void sub_080AD9B0(void);
|
||||
extern void sub_080AD918(void);
|
||||
extern void sub_0801E104(void);
|
||||
extern void MenuFadeIn(u32, u32);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
typedef struct {
|
||||
u16 lcdControl2;
|
||||
u16 unk2;
|
||||
u32 unk;
|
||||
u16 lcdControl1;
|
||||
} LcdControls;
|
||||
|
|
|
|||
|
|
@ -433,7 +433,7 @@ SECTIONS {
|
|||
asm/code_08049CD4.o(.text);
|
||||
asm/sub_0804AA30.o(.text);
|
||||
src/createEnemy.o(.text);
|
||||
src/sub_0804AA84.o(.text);
|
||||
src/code_0804AA84.o(.text);
|
||||
asm/code_0804AA84.o(.text);
|
||||
src/loadRoomEntityList.o(.text);
|
||||
asm/createEntity.o(.text);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,94 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "area.h"
|
||||
#include "functions.h"
|
||||
#include "screen.h"
|
||||
|
||||
typedef struct {
|
||||
u8 interruptFlag;
|
||||
u8 field_0x1;
|
||||
u8 loadType;
|
||||
u8 funcIndex;
|
||||
u8 transition;
|
||||
u16 field_0x5;
|
||||
u8 muteAudio;
|
||||
u8 field_0x8;
|
||||
u8 countdown;
|
||||
u8 field_0xa;
|
||||
u8 field_0xb;
|
||||
u8 ticks;
|
||||
u8 field_0xe;
|
||||
u8 field_0xf;
|
||||
} Main;
|
||||
|
||||
typedef struct {
|
||||
u8 filler [18];
|
||||
u32 unk;
|
||||
} struct_02018EB0;
|
||||
|
||||
extern void sub_0805E5A8();
|
||||
|
||||
extern void (*const gUnk_080D4120[])();
|
||||
extern void (*const gUnk_080D412C[])();
|
||||
|
||||
|
||||
extern Main gUnk_03001000;
|
||||
extern struct_02018EB0 gUnk_02018EB0;
|
||||
extern u8 gUnk_03000FD0;
|
||||
|
||||
u32 sub_0804AA84(void)
|
||||
{
|
||||
if (gArea.fadeOut != 0) {
|
||||
gUnk_03001000.transition = 4;
|
||||
gArea.filler[8] = 0;
|
||||
gArea.filler[9] = 0;
|
||||
*(u16*)&gArea.filler[10] = 0;
|
||||
sub_0805E5A8();
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
gArea.filler[18] = gArea.fadeOut;
|
||||
*(vu8*)&gArea.fadeOut = gArea.fadeOut;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0804AAB8(void)
|
||||
{
|
||||
gUnk_080D4120[gArea.filler[8]]();
|
||||
}
|
||||
|
||||
void sub_0804AAD4(void)
|
||||
{
|
||||
_DmaZero((void *)&gUnk_02018EB0, 0x28);
|
||||
gUnk_02018EB0.unk = 0;
|
||||
EraseAllEntities();
|
||||
CreateObject(0x3d, gArea.filler3[5], 0);
|
||||
gArea.filler[8]++;
|
||||
}
|
||||
|
||||
void sub_0804AB04(void)
|
||||
{
|
||||
sub_0805E5C0();
|
||||
if (gArea.field_0x10 != 0) {
|
||||
sub_080AD90C();
|
||||
sub_080AD9B0();
|
||||
sub_080AD918();
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0804AB24(void)
|
||||
{
|
||||
if (gUnk_03000FD0 == 0) {
|
||||
gScreen.lcd.lcdControl2 = 0;
|
||||
sub_0801E104();
|
||||
gArea.filler[8] = 0;
|
||||
MenuFadeIn(6, 0);
|
||||
gUnk_03000FD0 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0804AB54(void)
|
||||
{
|
||||
gUnk_080D412C[gArea.filler[8]]();
|
||||
}
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
#include "global.h"
|
||||
|
||||
// Very close!
|
||||
|
||||
/* extern void sub_0805E5A8();
|
||||
|
||||
extern u8 gArea;
|
||||
extern u8 gUnk_03001000;
|
||||
|
||||
u32 sub_0804AA84(void)
|
||||
|
||||
{
|
||||
u8 * r3 = &gArea;
|
||||
u8 * r2;
|
||||
u8 r0 = *(u8 *)(r3 + 0x19);
|
||||
u8 r1;
|
||||
|
||||
if (!r0) {
|
||||
*(r3 + 0x18) = r0;
|
||||
*(r3 + 0x19) = r0;
|
||||
r0 = 0;
|
||||
}
|
||||
else {
|
||||
r2 = &gUnk_03001000;
|
||||
r1 = 0;
|
||||
r0 = 4;
|
||||
*(r2 + 0x4) = r0;
|
||||
*(r3 + 0xe) = r1;
|
||||
*(r3 + 0xf) = r1;
|
||||
*(u16*)(r3 + 0x10) = r1;
|
||||
sub_0805E5A8();
|
||||
r0 = 1;
|
||||
}
|
||||
return r0;
|
||||
} */
|
||||
|
||||
// void sub_0804AA9C() {
|
||||
Loading…
Reference in New Issue