mirror of https://github.com/zeldaret/tmc.git
upperInn OK
This commit is contained in:
parent
2123c91b9a
commit
25a3b49d4b
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
149
src/room.c
149
src/room.c
|
@ -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;
|
||||
|
||||
if (CheckLocalFlag(0x91) != 0) {
|
||||
index = Random() & 1;
|
||||
ClearLocalFlag(2);
|
||||
}
|
||||
else {
|
||||
index = 0;
|
||||
SetLocalFlag(2);
|
||||
}
|
||||
gRoomVars.field_0x78 = gUnk_080D6B18[index];
|
||||
return 1;
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
if (CheckLocalFlag(0x91) != 0) {
|
||||
index = (s32)Random() % 3;
|
||||
ClearLocalFlag(3);
|
||||
}
|
||||
else {
|
||||
index = 0;
|
||||
SetLocalFlag(3);
|
||||
}
|
||||
gRoomVars.field_0x78 = gUnk_080D6BB8[index];
|
||||
return 1;
|
||||
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;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue