room.c work

This commit is contained in:
theo3
2020-07-21 01:43:36 -07:00
parent a4a0193480
commit 58e70886ed
10 changed files with 3017 additions and 5010 deletions
+2 -2
View File
@@ -78,8 +78,8 @@ _0804B198:
_0804B1A4: .4byte gUnk_02017660
_0804B1A8: .4byte gUnk_020176A0
thumb_func_start sub_0804B1AC
sub_0804B1AC: @ 0x0804B1AC
thumb_func_start LoadRoomTileEntities
LoadRoomTileEntities: @ 0x0804B1AC
push {r4, lr}
adds r4, r0, #0
cmp r4, #0
-4965
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -126,7 +126,7 @@ _0804C206:
bl SetTileType
_0804C228:
ldr r0, _0804C248 @ =gUnk_080D9328
bl sub_0804B1AC
bl LoadRoomTileEntities
movs r0, #0x62
bl SetGlobalFlag
bl sub_0804C290
+91
View File
@@ -0,0 +1,91 @@
.syntax unified
push {r4, r5, r6, lr}
bl sub_080530C8
movs r0, #0xb
bl CheckKinstoneFused
cmp r0, #0
beq _0804DE32
movs r0, #0x19
bl CheckGlobalFlag
cmp r0, #0
bne _0804DE22
movs r0, #0x19
bl SetGlobalFlag
b _0804DE32
_0804DE22:
movs r0, #0x18
bl CheckGlobalFlag
cmp r0, #0
bne _0804DE32
movs r0, #0x18
bl SetGlobalFlag
_0804DE32:
ldr r5, _0804DE50 @ =gUnk_080D4250
ldr r4, _0804DE54 @ =gUnk_02002A40
ldrb r0, [r4, #8]
lsls r0, r0, #2
adds r0, r0, r5
ldr r0, [r0]
bl sub_0804AFB0
ldrb r0, [r4, #8]
cmp r0, #1
beq _0804DE5C
ldr r1, _0804DE58 @ =gUnk_02017654
ldr r0, [r5]
str r0, [r1]
b _0804DECC
.align 2, 0
_0804DE50: .4byte gUnk_080D4250
_0804DE54: .4byte gUnk_02002A40
_0804DE58: .4byte gUnk_02017654
_0804DE5C:
movs r0, #0x1c
bl SetGlobalFlag
ldr r4, _0804DEB4 @ =gArea
ldr r0, _0804DEB8 @ =0x0000085C
adds r4, r4, r0
ldr r0, [r4]
ldrh r5, [r0, #4]
ldrh r6, [r0, #6]
ldr r1, _0804DEBC @ =gRoomControls
movs r2, #0
movs r0, #0x15
strb r0, [r1, #4]
strb r2, [r1, #5]
bl sub_08052CFC
ldr r0, [r4]
movs r1, #0x98
lsls r1, r1, #1
adds r5, r5, r1
strh r5, [r0, #4]
ldr r0, [r4]
strh r6, [r0, #6]
ldr r1, _0804DEC0 @ =gUnk_030010A0
ldr r0, [r4]
ldrh r0, [r0]
lsrs r0, r0, #1
strh r0, [r1, #0x10]
bl sub_08052EA0
bl sub_0804AF90
movs r0, #0xcd
bl CheckLocalFlag
cmp r0, #0
bne _0804DEC4
movs r1, #0x80
lsls r1, r1, #1
movs r0, #7
bl DoFade
b _0804DECC
.align 2, 0
_0804DEB4: .4byte gArea
_0804DEB8: .4byte 0x0000085C
_0804DEBC: .4byte gRoomControls
_0804DEC0: .4byte gUnk_030010A0
_0804DEC4:
movs r0, #6
movs r1, #0x10
bl DoFade
_0804DECC:
movs r0, #1
pop {r4, r5, r6, pc}
.syntax divided
+86
View File
@@ -0,0 +1,86 @@
.syntax unified
push {r4, r5, lr}
ldr r4, _0804E160 @ =gUnk_080EED2C
ldr r0, _0804E164 @ =gUnk_02002A40
movs r5, #1
ldrb r0, [r0, #8]
lsls r5, r0
b _0804E17C
.align 2, 0
_0804E160: .4byte gUnk_080EED2C
_0804E164: .4byte gUnk_02002A40
_0804E168:
ldrh r0, [r4]
ands r0, r5
cmp r0, #0
beq _0804E17A
ldrh r0, [r4, #4]
ldrh r1, [r4, #2]
movs r2, #1
bl SetTile
_0804E17A:
adds r4, #6
_0804E17C:
ldrh r0, [r4, #2]
cmp r0, #0
bne _0804E168
movs r0, #0xd1
bl CheckLocalFlag
cmp r0, #0
bne _0804E1BA
ldr r4, _0804E198 @ =gUnk_080EED7A
ldr r0, _0804E19C @ =gUnk_02002A40
movs r5, #1
ldrb r0, [r0, #8]
lsls r5, r0
b _0804E1B4
.align 2, 0
_0804E198: .4byte gUnk_080EED7A
_0804E19C: .4byte gUnk_02002A40
_0804E1A0:
ldrh r0, [r4]
ands r0, r5
cmp r0, #0
beq _0804E1B2
ldrh r0, [r4, #4]
ldrh r1, [r4, #2]
movs r2, #1
bl SetTile
_0804E1B2:
adds r4, #6
_0804E1B4:
ldrh r0, [r4]
cmp r0, #0
bne _0804E1A0
_0804E1BA:
movs r0, #0x29
bl CheckGlobalFlag
cmp r0, #0
bne _0804E1F2
ldr r4, _0804E1D0 @ =gUnk_080EED8C
ldr r0, _0804E1D4 @ =gUnk_02002A40
movs r5, #1
ldrb r0, [r0, #8]
lsls r5, r0
b _0804E1EC
.align 2, 0
_0804E1D0: .4byte gUnk_080EED8C
_0804E1D4: .4byte gUnk_02002A40
_0804E1D8:
ldrh r0, [r4]
ands r0, r5
cmp r0, #0
beq _0804E1EA
ldrh r0, [r4, #4]
ldrh r1, [r4, #2]
movs r2, #1
bl SetTile
_0804E1EA:
adds r4, #6
_0804E1EC:
ldrh r0, [r4]
cmp r0, #0
bne _0804E1D8
_0804E1F2:
pop {r4, r5, pc}
.syntax divided
+68
View File
@@ -0,0 +1,68 @@
.syntax unified
push {r4, r5, r6, lr}
movs r0, #5
bl CheckGlobalFlag
rsbs r1, r0, #0
orrs r1, r0
lsrs r6, r1, #0x1f
movs r0, #6
bl CheckGlobalFlag
cmp r0, #0
beq _0804E3DE
movs r6, #2
_0804E3DE:
movs r0, #0x55
bl CheckGlobalFlag
cmp r0, #0
beq _0804E3EA
movs r6, #3
_0804E3EA:
bl Random
adds r4, r0, #0
ldr r1, _0804E448 @ =gUnk_080F0D58
lsls r0, r6, #2
adds r0, r0, r1
movs r5, #0x1f
adds r1, r4, #0
ands r1, r5
ldr r0, [r0]
adds r0, r0, r1
ldrb r6, [r0]
ldr r1, _0804E44C @ =gUnk_080F0CB8
movs r0, #0xf
ands r0, r6
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl LoadRoomEntityList
lsrs r6, r6, #4
lsrs r4, r4, #8
ldr r1, _0804E450 @ =gUnk_080F0E08
lsls r0, r6, #2
adds r0, r0, r1
ands r4, r5
ldr r0, [r0]
adds r0, r0, r4
ldrb r6, [r0]
movs r0, #0xc6
bl CheckLocalFlag
cmp r0, #0
bne _0804E436
movs r0, #0xc6
bl SetLocalFlag
movs r6, #0xe
_0804E436:
lsls r0, r6, #3
ldr r1, _0804E454 @ =gUnk_080F0E1C
adds r0, r0, r1
bl sub_0804B3C4
ldr r0, _0804E458 @ =0x80100000
bl PlaySFX
pop {r4, r5, r6, pc}
.align 2, 0
_0804E448: .4byte gUnk_080F0D58
_0804E44C: .4byte gUnk_080F0CB8
_0804E450: .4byte gUnk_080F0E08
_0804E454: .4byte gUnk_080F0E1C
_0804E458: .4byte 0x80100000
.syntax divided
+20
View File
@@ -33,6 +33,7 @@ extern void _DmaZero(void* src, u32 count);
extern void EraseAllEntities(void);
extern void SetTile(u32, u32, u32);
extern void SetDirtTile(u32);
extern void LoadRoomTileEntities(); //tba
// Unidentified
extern void sub_0806ED78(Entity*);
@@ -133,4 +134,23 @@ extern void sub_0809F814(u32);
extern void sub_080300E8(void);
extern void sub_0801DA90(u32);
extern void sub_08058D34(void);
extern void sub_0807AABC(Entity*);
extern void sub_08078A90(u32);
extern void sub_080530C8(void);
extern void sub_0805B4D0(u32);
extern void sub_0804D0B4(void);
extern void sub_0805308C(u32);
extern void sub_0805AF60();
extern void sub_0805D3C8(u32);
extern void sub_080534AC();
extern void sub_0807BA8C(u32, u32);
extern void sub_0804D9B0();
extern void sub_0807BB98(u32, u32, u32, u32);
extern void sub_08059D18(void);
extern void sub_0801D000(u32);
extern void sub_08018C58(u32);
extern void sub_0804E150(void);
extern void sub_080AF284(void);
extern void sub_080A71C4(u32, u32, u32, u32);
extern void sub_08054564();
#endif
+4 -2
View File
@@ -45,9 +45,11 @@ typedef struct {
u8 filler5[28];
u32 greatFairyState;
u32* field_0x6c;
u32 field_0x70;
u32 field_0x74;
u32* field_0x70;
u32* field_0x74;
u32 field_0x78;
u8 field_0x79[10];
void* field_0x88;
} RoomVars;
+2 -2
View File
@@ -5,7 +5,7 @@
void LoadRoomEntityList(EntityData* dat);
extern EntityData* GetCurrentRoomProperty(u32 unk);
extern void sub_0804B058(EntityData* dat);
extern void sub_0804B1AC(EntityData* dat);
extern void LoadRoomTileEntities(EntityData* dat);
extern void sub_0801AC98();
extern u32 sub_08049D1C(u32);
extern Entity* CreateEntity(EntityData*);
@@ -24,7 +24,7 @@ void LoadRoom(void) {
if (CheckGlobalFlag(TABIDACHI))
sub_0804B058(GetCurrentRoomProperty(2));
sub_0804B1AC(GetCurrentRoomProperty(3));
LoadRoomTileEntities(GetCurrentRoomProperty(3));
sub_0801AC98();
}
+2743 -38
View File
File diff suppressed because it is too large Load Diff