upperInn OK

This commit is contained in:
theo3 2020-07-18 14:50:31 -07:00
parent 2123c91b9a
commit 25a3b49d4b
4 changed files with 101 additions and 159 deletions

View File

@ -1,96 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0804B938
sub_0804B938: @ 0x0804B938
push {lr}
ldr r0, _0804B968 @ =gUnk_02002A40
ldrb r0, [r0, #8]
cmp r0, #3
bls _0804B9F2
movs r0, #0x2b
bl CheckGlobalFlag
cmp r0, #0
beq _0804B970
movs r0, #0x2f
bl CheckGlobalFlag
cmp r0, #0
bne _0804B984
movs r0, #0x30
bl CheckGlobalFlag
cmp r0, #0
bne _0804B9BC
ldr r0, _0804B96C @ =gUnk_080D6C64
bl LoadRoomEntityList
b _0804B9F2
.align 2, 0
_0804B968: .4byte gUnk_02002A40
_0804B96C: .4byte gUnk_080D6C64
_0804B970:
movs r0, #0x2c
bl CheckGlobalFlag
cmp r0, #0
beq _0804B9A8
movs r0, #0x2e
bl CheckGlobalFlag
cmp r0, #0
beq _0804B990
_0804B984:
ldr r0, _0804B98C @ =gUnk_080D6D04
bl LoadRoomEntityList
b _0804B9F2
.align 2, 0
_0804B98C: .4byte gUnk_080D6D04
_0804B990:
movs r0, #0x30
bl CheckGlobalFlag
cmp r0, #0
bne _0804B9D2
ldr r0, _0804B9A4 @ =gUnk_080D6C94
bl LoadRoomEntityList
b _0804B9F2
.align 2, 0
_0804B9A4: .4byte gUnk_080D6C94
_0804B9A8:
movs r0, #0x2d
bl CheckGlobalFlag
cmp r0, #0
beq _0804B9EC
movs r0, #0x2e
bl CheckGlobalFlag
cmp r0, #0
beq _0804B9C8
_0804B9BC:
ldr r0, _0804B9C4 @ =gUnk_080D6CE4
bl LoadRoomEntityList
b _0804B9F2
.align 2, 0
_0804B9C4: .4byte gUnk_080D6CE4
_0804B9C8:
movs r0, #0x2f
bl CheckGlobalFlag
cmp r0, #0
beq _0804B9E0
_0804B9D2:
ldr r0, _0804B9DC @ =gUnk_080D6CC4
bl LoadRoomEntityList
b _0804B9F2
.align 2, 0
_0804B9DC: .4byte gUnk_080D6CC4
_0804B9E0:
ldr r0, _0804B9E8 @ =gUnk_080D6C34
bl LoadRoomEntityList
b _0804B9F2
.align 2, 0
_0804B9E8: .4byte gUnk_080D6C34
_0804B9EC:
ldr r0, _0804B9F4 @ =gUnk_080D6BF4
bl LoadRoomEntityList
_0804B9F2:
pop {pc}
.align 2, 0
_0804B9F4: .4byte gUnk_080D6BF4

View File

@ -499,25 +499,25 @@ gUnk_080D6BC4:: @ 080D6BC4
gUnk_080D6BE4:: @ 080D6BE4
.incbin "baserom.gba", 0x0D6BE4, 0x0000010
gUnk_080D6BF4:: @ 080D6BF4
UpperInn_Oracles:: @ 080D6BF4
.incbin "baserom.gba", 0x0D6BF4, 0x0000040
gUnk_080D6C34:: @ 080D6C34
UpperInn_NoFarore:: @ 080D6C34
.incbin "baserom.gba", 0x0D6C34, 0x0000030
gUnk_080D6C64:: @ 080D6C64
UpperInn_NoDin:: @ 080D6C64
.incbin "baserom.gba", 0x0D6C64, 0x0000030
gUnk_080D6C94:: @ 080D6C94
UpperInn_NoNayru:: @ 080D6C94
.incbin "baserom.gba", 0x0D6C94, 0x0000030
gUnk_080D6CC4:: @ 080D6CC4
UpperInn_Din:: @ 080D6CC4
.incbin "baserom.gba", 0x0D6CC4, 0x0000020
gUnk_080D6CE4:: @ 080D6CE4
UpperInn_Nayru:: @ 080D6CE4
.incbin "baserom.gba", 0x0D6CE4, 0x0000020
gUnk_080D6D04:: @ 080D6D04
UpperInn_Farore:: @ 080D6D04
.incbin "baserom.gba", 0x0D6D04, 0x0000020
gUnk_080D6D24:: @ 080D6D24

View File

@ -442,7 +442,6 @@ SECTIONS {
src/loadRoom.o(.text);
asm/code_0804B058.o(.text);
src/room.o(.text);
asm/upperInn.o(.text);
asm/code_0804B9F8.o(.text);
src/sub_08050008.o(.text);
src/sub_08050024.o(.text);

View File

@ -398,77 +398,116 @@ u32 sub_0804B7A8(void) {
extern void* gUnk_08010A5C[];
void sub_0804B7E8(void)
{
if (CheckLocalFlag(0x91)) {
ClearLocalFlag(0x91);
DoFade(5, 0x100);
gLinkEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50;
gLinkEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38;
sub_080751E8(1, 2, &gUnk_08010A5C);
}
void sub_0804B7E8(void) {
if (CheckLocalFlag(0x91)) {
ClearLocalFlag(0x91);
DoFade(5, 0x100);
gLinkEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50;
gLinkEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38;
sub_080751E8(1, 2, &gUnk_08010A5C);
}
}
extern u32 gUnk_080D6B18[];
u32 sub_0804B82C(void)
{
u32 index;
u32 sub_0804B82C(void) {
u32 index;
if (CheckLocalFlag(0x91) != 0) {
index = Random() & 1;
ClearLocalFlag(2);
}
else {
index = 0;
SetLocalFlag(2);
}
gRoomVars.field_0x78 = gUnk_080D6B18[index];
return 1;
if (CheckLocalFlag(0x91) != 0) {
index = Random() & 1;
ClearLocalFlag(2);
} else {
index = 0;
SetLocalFlag(2);
}
gRoomVars.field_0x78 = gUnk_080D6B18[index];
return 1;
}
void sub_0804B86C(void)
{
if (CheckLocalFlag(0x91) != 0) {
ClearLocalFlag(0x91);
DoFade(5, 0x100);
gLinkEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50;
gLinkEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38;
sub_080751E8(1, 2, &gUnk_08010A5C);
}
void sub_0804B86C(void) {
if (CheckLocalFlag(0x91) != 0) {
ClearLocalFlag(0x91);
DoFade(5, 0x100);
gLinkEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50;
gLinkEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38;
sub_080751E8(1, 2, &gUnk_08010A5C);
}
}
extern u32 gUnk_080D6BB8[];
u32 sub_0804B8B0(void)
{
s32 index;
u32 sub_0804B8B0(void) {
s32 index;
if (CheckLocalFlag(0x91) != 0) {
index = (s32)Random() % 3;
ClearLocalFlag(3);
}
else {
index = 0;
SetLocalFlag(3);
}
gRoomVars.field_0x78 = gUnk_080D6BB8[index];
return 1;
if (CheckLocalFlag(0x91) != 0) {
index = (s32)Random() % 3;
ClearLocalFlag(3);
} else {
index = 0;
SetLocalFlag(3);
}
gRoomVars.field_0x78 = gUnk_080D6BB8[index];
return 1;
}
extern void* gUnk_08010A5C[];
void sub_0804B8F0(void)
{
if (CheckLocalFlag(0x91)) {
ClearLocalFlag(0x91);
DoFade(5 ,0x100);
gLinkEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x60;
gLinkEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38;
sub_080751E8(1,2, &gUnk_08010A5C);
}
void sub_0804B8F0(void) {
if (CheckLocalFlag(0x91)) {
ClearLocalFlag(0x91);
DoFade(5, 0x100);
gLinkEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x60;
gLinkEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38;
sub_080751E8(1, 2, &gUnk_08010A5C);
}
}
u32 sub_0804B934() {
return 1;
}
extern EntityData* UpperInn_Oracles;
extern EntityData* UpperInn_NoFarore;
extern EntityData* UpperInn_NoNayru;
extern EntityData* UpperInn_NoDin;
extern EntityData* UpperInn_Farore;
extern EntityData* UpperInn_Nayru;
extern EntityData* UpperInn_Din;
void sub_0804B938(void) {
int iVar1;
if (gUnk_02002A40.field_0x8 < 4) {
return;
}
if (CheckGlobalFlag(0x2b)) {
if (!CheckGlobalFlag(0x2f)) {
if (!CheckGlobalFlag(0x30)) {
LoadRoomEntityList(&UpperInn_NoDin);
} else {
LoadRoomEntityList(&UpperInn_Nayru);
}
} else {
LoadRoomEntityList(&UpperInn_Farore);
}
} else if (CheckGlobalFlag(0x2c)) {
if (CheckGlobalFlag(0x2e)) {
LoadRoomEntityList(&UpperInn_Farore);
} else if (!CheckGlobalFlag(0x30)) {
LoadRoomEntityList(&UpperInn_NoNayru);
} else {
LoadRoomEntityList(&UpperInn_Din);
}
} else if (CheckGlobalFlag(0x2d)) {
if (CheckGlobalFlag(0x2e)) {
LoadRoomEntityList(&UpperInn_Nayru);
} else if (CheckGlobalFlag(0x2f)) {
LoadRoomEntityList(&UpperInn_Din);
} else {
LoadRoomEntityList(&UpperInn_NoFarore);
}
} else {
LoadRoomEntityList(&UpperInn_Oracles);
}
}