mirror of https://github.com/zeldaret/tmc
Extract some map data definitions
This commit is contained in:
parent
99c0d42297
commit
551cb72093
|
|
@ -1,274 +0,0 @@
|
|||
.syntax unified
|
||||
.text
|
||||
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
adds r7, r0, #0
|
||||
ldr r0, _0806239C @ =gPlayerEntity
|
||||
mov r8, r0
|
||||
ldrh r1, [r0, #0x2e]
|
||||
ldr r3, _080623A0 @ =0xFFFF0000
|
||||
adds r0, r3, #0
|
||||
ands r0, r5
|
||||
orrs r0, r1
|
||||
mov r2, r8
|
||||
ldrh r1, [r2, #0x32]
|
||||
lsls r1, r1, #0x10
|
||||
ldr r2, _080623A4 @ =0x0000FFFF
|
||||
ands r0, r2
|
||||
adds r5, r0, #0
|
||||
orrs r5, r1
|
||||
mov r1, r8
|
||||
ldrh r0, [r1, #0x36]
|
||||
ands r3, r6
|
||||
orrs r3, r0
|
||||
ldr r0, _080623A8 @ =gPlayerState
|
||||
adds r0, #0xa8
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x10
|
||||
ldr r2, _080623AC @ =0xFF00FFFF
|
||||
ands r2, r3
|
||||
orrs r2, r0
|
||||
ldrb r1, [r1, #0x14]
|
||||
movs r0, #0x3f
|
||||
ands r1, r0
|
||||
lsls r1, r1, #0x18
|
||||
ldr r0, _080623B0 @ =0xC0FFFFFF
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
mov r1, r8
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
lsls r1, r1, #0x1e
|
||||
ldr r2, _080623B4 @ =0x3FFFFFFF
|
||||
ands r0, r2
|
||||
adds r6, r0, #0
|
||||
orrs r6, r1
|
||||
ldr r4, [r7, #0x64]
|
||||
ldrb r0, [r4, #6]
|
||||
cmp r0, #0x16
|
||||
bne _080623BE
|
||||
lsrs r0, r6, #0x10
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x16
|
||||
beq _080623BE
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r7, r2]
|
||||
mov r3, r8
|
||||
movs r2, #0x2e
|
||||
ldrsh r0, [r3, r2]
|
||||
subs r2, r1, r0
|
||||
movs r0, #0x32
|
||||
ldrsh r3, [r7, r0]
|
||||
mov sb, r3
|
||||
mov r1, r8
|
||||
movs r3, #0x32
|
||||
ldrsh r0, [r1, r3]
|
||||
mov r3, sb
|
||||
subs r1, r3, r0
|
||||
cmp r2, #0
|
||||
bge _08062382
|
||||
rsbs r2, r2, #0
|
||||
_08062382:
|
||||
cmp r1, #0
|
||||
bge _08062388
|
||||
rsbs r1, r1, #0
|
||||
_08062388:
|
||||
cmp r2, #0x78
|
||||
bgt _08062390
|
||||
cmp r1, #0x50
|
||||
ble _080623B8
|
||||
_08062390:
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x68
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
b _080624F8
|
||||
.align 2, 0
|
||||
_0806239C: .4byte gPlayerEntity
|
||||
_080623A0: .4byte 0xFFFF0000
|
||||
_080623A4: .4byte 0x0000FFFF
|
||||
_080623A8: .4byte gPlayerState
|
||||
_080623AC: .4byte 0xFF00FFFF
|
||||
_080623B0: .4byte 0xC0FFFFFF
|
||||
_080623B4: .4byte 0x3FFFFFFF
|
||||
_080623B8:
|
||||
adds r0, r7, #0
|
||||
bl sub_0806252C
|
||||
_080623BE:
|
||||
movs r0, #0
|
||||
mov sb, r0
|
||||
ldr r0, [r4]
|
||||
cmp r5, r0
|
||||
bne _080623CE
|
||||
ldr r0, [r4, #4]
|
||||
cmp r6, r0
|
||||
beq _08062410
|
||||
_080623CE:
|
||||
ldr r4, [r7, #0x64]
|
||||
adds r4, #0x90
|
||||
movs r1, #0x69
|
||||
adds r1, r1, r7
|
||||
mov r8, r1
|
||||
adds r3, r7, #0
|
||||
adds r3, #0x38
|
||||
movs r2, #0x58
|
||||
adds r2, r2, r7
|
||||
mov ip, r2
|
||||
movs r2, #0x12
|
||||
_080623E4:
|
||||
ldr r0, [r4]
|
||||
ldr r1, [r4, #4]
|
||||
str r0, [r4, #8]
|
||||
str r1, [r4, #0xc]
|
||||
subs r4, #8
|
||||
subs r2, #1
|
||||
cmp r2, #0
|
||||
bge _080623E4
|
||||
ldr r4, [r7, #0x64]
|
||||
str r5, [r4]
|
||||
str r6, [r4, #4]
|
||||
movs r0, #4
|
||||
mov sb, r0
|
||||
mov r2, r8
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0
|
||||
ldrsb r0, [r2, r0]
|
||||
cmp r0, #0
|
||||
ble _08062484
|
||||
subs r0, r1, #1
|
||||
strb r0, [r2]
|
||||
b _08062484
|
||||
_08062410:
|
||||
adds r4, #0x98
|
||||
movs r3, #4
|
||||
ldrsh r0, [r4, r3]
|
||||
cmp r0, #0
|
||||
bge _08062442
|
||||
ldr r4, [r7, #0x64]
|
||||
adds r4, #0x90
|
||||
movs r0, #0x69
|
||||
adds r0, r0, r7
|
||||
mov r8, r0
|
||||
adds r3, r7, #0
|
||||
adds r3, #0x38
|
||||
movs r1, #0x58
|
||||
adds r1, r1, r7
|
||||
mov ip, r1
|
||||
movs r2, #0x12
|
||||
_08062430:
|
||||
ldr r0, [r4]
|
||||
ldr r1, [r4, #4]
|
||||
str r0, [r4, #8]
|
||||
str r1, [r4, #0xc]
|
||||
subs r4, #8
|
||||
subs r2, #1
|
||||
cmp r2, #0
|
||||
bge _08062430
|
||||
b _08062480
|
||||
_08062442:
|
||||
ldr r1, _080624E8 @ =gPlayerEntity
|
||||
movs r3, #0x2e
|
||||
ldrsh r0, [r1, r3]
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r1, r2]
|
||||
ldrh r2, [r4]
|
||||
ldrh r3, [r4, #2]
|
||||
bl sub_080041E8
|
||||
lsrs r0, r0, #4
|
||||
movs r3, #0x69
|
||||
adds r3, r3, r7
|
||||
mov r8, r3
|
||||
adds r3, r7, #0
|
||||
adds r3, #0x38
|
||||
movs r1, #0x58
|
||||
adds r1, r1, r7
|
||||
mov ip, r1
|
||||
cmp r0, #0x18
|
||||
ble _08062484
|
||||
ldr r4, [r7, #0x64]
|
||||
adds r4, #0x90
|
||||
movs r2, #0x12
|
||||
_08062470:
|
||||
ldr r0, [r4]
|
||||
ldr r1, [r4, #4]
|
||||
str r0, [r4, #8]
|
||||
str r1, [r4, #0xc]
|
||||
subs r4, #8
|
||||
subs r2, #1
|
||||
cmp r2, #0
|
||||
bge _08062470
|
||||
_08062480:
|
||||
movs r2, #4
|
||||
mov sb, r2
|
||||
_08062484:
|
||||
ldr r4, [r7, #0x64]
|
||||
adds r4, #0x98
|
||||
ldrh r0, [r4]
|
||||
strh r0, [r7, #0x2e]
|
||||
ldrh r0, [r4, #2]
|
||||
strh r0, [r7, #0x32]
|
||||
ldrh r0, [r4, #4]
|
||||
strh r0, [r7, #0x36]
|
||||
ldrb r0, [r4, #7]
|
||||
lsls r0, r0, #0x1a
|
||||
lsrs r0, r0, #0x1a
|
||||
strb r0, [r7, #0x14]
|
||||
ldrb r0, [r4, #7]
|
||||
lsrs r0, r0, #6
|
||||
strb r0, [r3]
|
||||
mov r1, r8
|
||||
ldrb r2, [r1]
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #0
|
||||
ble _080624B2
|
||||
subs r0, r2, #1
|
||||
strb r0, [r1]
|
||||
_080624B2:
|
||||
mov r2, sb
|
||||
ldrb r0, [r7, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
add sb, r0
|
||||
ldrb r0, [r7, #0xa]
|
||||
cmp r0, #6
|
||||
bne _080624C4
|
||||
movs r3, #0x10
|
||||
add sb, r3
|
||||
_080624C4:
|
||||
mov r0, ip
|
||||
ldrb r0, [r0]
|
||||
cmp sb, r0
|
||||
beq _080624EC
|
||||
cmp r2, #0
|
||||
bne _080624D8
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #0
|
||||
bgt _080624EC
|
||||
_080624D8:
|
||||
adds r0, r7, #0
|
||||
mov r1, sb
|
||||
bl InitAnimationForceUpdate
|
||||
movs r0, #0x1e
|
||||
mov r1, r8
|
||||
strb r0, [r1]
|
||||
b _080624F2
|
||||
.align 2, 0
|
||||
_080624E8: .4byte gPlayerEntity
|
||||
_080624EC:
|
||||
adds r0, r7, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
_080624F2:
|
||||
adds r0, r7, #0
|
||||
bl sub_0800451C
|
||||
_080624F8:
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
|
||||
.syntax divided
|
||||
|
|
@ -100,7 +100,7 @@ _0807A3AA:
|
|||
lsrs r4, r7, #1
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl sub_080B1B44
|
||||
bl GetCollisionData
|
||||
cmp r0, #0
|
||||
beq _0807A3FC
|
||||
lsls r0, r4, #0x10
|
||||
|
|
@ -138,7 +138,7 @@ _0807A400:
|
|||
lsrs r4, r6, #1
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl sub_080B1B44
|
||||
bl GetCollisionData
|
||||
cmp r0, #0
|
||||
beq _0807A44C
|
||||
lsls r0, r4, #0x10
|
||||
|
|
@ -195,7 +195,7 @@ _0807A46E:
|
|||
adds r7, r0, #0
|
||||
lsrs r0, r7, #1
|
||||
movs r1, #2
|
||||
bl sub_080B1B44
|
||||
bl GetCollisionData
|
||||
cmp r0, #0
|
||||
bne _0807A4F2
|
||||
adds r0, r4, #0
|
||||
|
|
@ -206,7 +206,7 @@ _0807A46E:
|
|||
lsrs r0, r6, #1
|
||||
movs r1, #2
|
||||
_0807A4A0:
|
||||
bl sub_080B1B44
|
||||
bl GetCollisionData
|
||||
cmp r0, #0
|
||||
beq _0807A4EC
|
||||
b _0807A4F2
|
||||
|
|
@ -224,7 +224,7 @@ _0807A4B0:
|
|||
_0807A4C2:
|
||||
lsrs r0, r7, #1
|
||||
movs r1, #1
|
||||
bl sub_080B1B44
|
||||
bl GetCollisionData
|
||||
cmp r0, #0
|
||||
bne _0807A4F2
|
||||
mov r1, sb
|
||||
|
|
|
|||
|
|
@ -210,7 +210,7 @@ _080040F2:
|
|||
movs r3, #0x38
|
||||
ldrb r3, [r0, r3]
|
||||
lsls r3, r3, #2
|
||||
ldr r4, _08004380 @ =gUnk_08000248
|
||||
ldr r4, _08004380 @ =gCollisionDataPtrs
|
||||
ldr r3, [r4, r3]
|
||||
ldrb r4, [r3, r2]
|
||||
pop {r2, r3}
|
||||
|
|
@ -403,7 +403,7 @@ _0800423C:
|
|||
movs r4, #0x38
|
||||
ldrb r4, [r0, r4]
|
||||
lsls r4, r4, #3
|
||||
ldr r3, _08004394 @ =gUnk_08000228
|
||||
ldr r3, _08004394 @ =gMapDataPtrs
|
||||
adds r3, r3, r4
|
||||
ldr r4, [r3]
|
||||
ldrh r1, [r4, r2]
|
||||
|
|
@ -610,12 +610,12 @@ _08004370: .4byte 0x0000011E
|
|||
_08004374: .4byte gRoomControls + 6
|
||||
_08004378: .4byte gRoomControls + 8
|
||||
_0800437C: .4byte 0x000003F0
|
||||
_08004380: .4byte gUnk_08000248
|
||||
_08004380: .4byte gCollisionDataPtrs
|
||||
_08004384: .4byte 0x000FFFFF
|
||||
_08004388: .4byte 0x00080000
|
||||
_0800438C: .4byte 0x0000EE00
|
||||
_08004390: .4byte 0x00001FFF
|
||||
_08004394: .4byte gUnk_08000228
|
||||
_08004394: .4byte gMapDataPtrs
|
||||
_08004398: .4byte 0x00004000
|
||||
_0800439C: .4byte gSpritePtrs
|
||||
_080043A0: .4byte gSpritePtrs
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
.global RAMFUNCS_BASE
|
||||
RAMFUNCS_BASE::
|
||||
|
||||
@ Called when gUpdateVisibleTiles == 1
|
||||
sub_080B197C:: @ 0x080B197C
|
||||
push {r4, r5, r6}
|
||||
ldr r2, _080B19C0 @ =gRoomControls
|
||||
|
|
@ -107,7 +108,7 @@ arm_sub_080B1A58:
|
|||
|
||||
arm_func_start arm_GetTileType
|
||||
arm_GetTileType: @ 0x080B1A60
|
||||
ldr r2, _080B1C1C @ =gUnk_08000228
|
||||
ldr r2, _080B1C1C @ =gMapDataPtrs
|
||||
_080B1A64:
|
||||
add r2, r2, r1, lsl #3
|
||||
ldr r1, [r2]
|
||||
|
|
@ -180,8 +181,8 @@ arm_sub_080B1B2C:
|
|||
arm_sub_080B1B3C:
|
||||
add r0, r0, r1, lsl #6
|
||||
mov r1, r2
|
||||
arm_sub_080B1B44:
|
||||
ldr r2, _080B1C2C @ =gUnk_08000248
|
||||
arm_GetCollisionData:
|
||||
ldr r2, _080B1C2C @ =gCollisionDataPtrs
|
||||
ldr r1, [r2, r1, lsl #2]
|
||||
ldrb r0, [r1, r0]
|
||||
bx lr
|
||||
|
|
@ -198,7 +199,7 @@ arm_sub_080B1B54: @ 0x080B1B54
|
|||
arm_sub_080B1B68: @ 0x080B1B68
|
||||
lsrs r2, r0, #0xe
|
||||
bxne lr
|
||||
ldr r2, _080B1C38 @ =gUnk_0800022C
|
||||
ldr r2, _080B1C38 @ =gMetatileTypesPtrs
|
||||
ldr r1, [r2, r1, lsl #3]
|
||||
lsl r0, r0, #1
|
||||
ldrh r0, [r1, r0]
|
||||
|
|
@ -251,14 +252,14 @@ sub_080B1BCC: @ 0x080B1BCC
|
|||
_080B1C10: .4byte gRoomControls
|
||||
_080B1C14: .4byte gUnk_08000258
|
||||
_080B1C18: .4byte gRoomControls
|
||||
_080B1C1C: .4byte gUnk_08000228
|
||||
_080B1C1C: .4byte gMapDataPtrs
|
||||
_080B1C20: .4byte gRoomControls
|
||||
_080B1C24: .4byte gUnk_08000278
|
||||
_080B1C28: .4byte gRoomControls
|
||||
_080B1C2C: .4byte gUnk_08000248
|
||||
_080B1C2C: .4byte gCollisionDataPtrs
|
||||
_080B1C30: .4byte gUnk_080B37A0
|
||||
_080B1C34: .4byte gUnk_080B7910
|
||||
_080B1C38: .4byte gUnk_0800022C
|
||||
_080B1C38: .4byte gMetatileTypesPtrs
|
||||
_080B1C3C: .4byte gUnk_08000360
|
||||
_080B1C40: .4byte gUnk_080B7A3E
|
||||
_080B1C44: .4byte gUnk_08000360
|
||||
|
|
@ -1697,7 +1698,7 @@ _080B1FBC:
|
|||
mov r3, #0
|
||||
bl arm_CheckBitsEU
|
||||
mov r5, #0
|
||||
ldr r4, _080B2194 @ =0x03003DF8
|
||||
ldr r4, _080B2194 @ =gInteractableObjects
|
||||
_080B1FECEU:
|
||||
ldr r0, [r4, #8]
|
||||
cmp r0, #0
|
||||
|
|
@ -1813,7 +1814,7 @@ _080B1FBC:
|
|||
mov r3, #0
|
||||
bl arm_CheckBitsEU
|
||||
mov r5, #0
|
||||
ldr r4, _080B2194 @ =0x03003DF8
|
||||
ldr r4, _080B2194 @ =gInteractableObjects
|
||||
_080B1FECEU:
|
||||
ldr r0, [r4, #8]
|
||||
cmp r0, #0
|
||||
|
|
@ -1940,8 +1941,8 @@ _080B2A64: .4byte gOAMControls
|
|||
_080B2A68: .4byte ram_0x80b2be8
|
||||
_080B2A6C: .4byte 0x3E003F00
|
||||
.ifdef EU
|
||||
_080B2194: .4byte 0x03003DF8 @TODO pointer?
|
||||
_080B2194: .4byte gInteractableObjects
|
||||
.endif
|
||||
.ifdef DEMO_JP @ TODO deduplicate same as EU
|
||||
_080B2194: .4byte 0x03003DF8 @TODO pointer?
|
||||
_080B2194: .4byte gInteractableObjects
|
||||
.endif
|
||||
|
|
|
|||
|
|
@ -205,7 +205,7 @@ sub_080086D8: @ 0x080086D8
|
|||
movs r3, #0x38
|
||||
ldrb r3, [r2, r3]
|
||||
lsls r3, r3, #2
|
||||
ldr r1, _080088C4 @ =gUnk_08000248
|
||||
ldr r1, _080088C4 @ =gCollisionDataPtrs
|
||||
ldr r1, [r1, r3]
|
||||
ldrb r2, [r0, r1]
|
||||
push {r2}
|
||||
|
|
@ -451,7 +451,7 @@ _080088B4: .4byte gRoomControls + 6
|
|||
_080088B8: .4byte gRoomControls + 8
|
||||
_080088BC: .4byte gPlayerEntity
|
||||
_080088C0: .4byte 0x000003F0
|
||||
_080088C4: .4byte gUnk_08000248
|
||||
_080088C4: .4byte gCollisionDataPtrs
|
||||
_080088C8: .4byte gPlayerState
|
||||
_080088CC: .4byte gUnk_0800823C
|
||||
_080088D0: .4byte gUnk_08007DF4
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@ UpdateScrollVram: @ 0x08000108
|
|||
ldr r0, _080001E8 @ =gUpdateVisibleTiles
|
||||
ldrb r1, [r0]
|
||||
lsls r1, r1, #2
|
||||
beq _08000136
|
||||
add r4, pc, #0x20
|
||||
ldr r4, [r4, r1]
|
||||
beq _08000136 @ jump if gUpdateVisibleTiles == 0
|
||||
add r4, pc, #0x20 @ r4 = 0x8000134
|
||||
ldr r4, [r4, r1] @ r4 = r4[gUpdateVisibleTiles] (1: _08000138, 2: _0800013C, 3: _08000140, 4:_08000144)
|
||||
ldr r0, _080001EC @ =gMapBottom
|
||||
ldr r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08000126
|
||||
beq _08000126 @ jump if gMapBottom.bgSettings == NULL
|
||||
ldr r0, _080001F0 @ =gMapDataBottomSpecial
|
||||
ldr r1, _080001F4 @ =gBG1Buffer+0x40
|
||||
bl _call_via_r4
|
||||
|
|
@ -25,7 +25,7 @@ _08000126:
|
|||
ldr r0, _080001F8 @ =gMapTop
|
||||
ldr r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08000136
|
||||
beq _08000136 @ jump if gMapTop.bgSettings == NULL
|
||||
ldr r0, _080001FC @ =gMapDataTopSpecial
|
||||
ldr r1, _08000200 @ =gBG2Buffer+0x40
|
||||
bl _call_via_r4
|
||||
|
|
@ -37,10 +37,10 @@ _0800013C: .4byte sub_0807D280 @ layer 1, 2, 3?
|
|||
_08000140: .4byte sub_0807D46C
|
||||
_08000144: .4byte sub_0807D6D8
|
||||
|
||||
thumb_func_start sub_08000148
|
||||
sub_08000148: @ 0x08000148
|
||||
thumb_func_start SetCollisionData
|
||||
SetCollisionData: @ 0x08000148
|
||||
lsls r2, r2, #2
|
||||
ldr r3, _08000204 @ =gUnk_08000248
|
||||
ldr r3, _08000204 @ =gCollisionDataPtrs
|
||||
ldr r2, [r3, r2]
|
||||
strb r0, [r2, r1]
|
||||
bx lr
|
||||
|
|
@ -58,7 +58,7 @@ CloneTile: @ 0x08000152
|
|||
SetTile: @ r0 = tile type, r1, = tile position, r2 = layer
|
||||
push {r4-r7, lr}
|
||||
lsls r3, r2, #3
|
||||
ldr r4, _08000208 @ =gUnk_08000228
|
||||
ldr r4, _08000208 @ =gMapDataPtrs
|
||||
ldr r5, [r4, r3]
|
||||
lsls r6, r1, #1
|
||||
ldrh r7, [r5, r6]
|
||||
|
|
@ -74,7 +74,7 @@ SetTile: @ r0 = tile type, r1, = tile position, r2 = layer
|
|||
ldr r3, _08000214 @ =gUnk_080B79A7
|
||||
ldrb r0, [r3, r4]
|
||||
lsrs r2, r2, #2
|
||||
bl sub_08000148
|
||||
bl SetCollisionData
|
||||
pop {r0, r1} @ tilepos, layer
|
||||
push {r0, r1}
|
||||
bl DeleteLoadedTileEntity
|
||||
|
|
@ -94,7 +94,7 @@ _0800019A:
|
|||
ldr r3, _0800021C @ =gUnk_080B3E80
|
||||
ldrb r0, [r3, r4]
|
||||
lsrs r2, r2, #2
|
||||
bl sub_08000148
|
||||
bl SetCollisionData
|
||||
pop {r0, r1}
|
||||
bl DeleteLoadedTileEntity
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
|
|
@ -115,7 +115,7 @@ sub_080001D0: @ 0x080001D0
|
|||
non_word_aligned_thumb_func_start GetTileIndex
|
||||
GetTileIndex: @ 0x080001DA
|
||||
lsls r1, r1, #3
|
||||
ldr r2, _08000224 @ =gUnk_08000228
|
||||
ldr r2, _08000224 @ =gMapDataPtrs
|
||||
ldr r1, [r2, r1]
|
||||
lsls r0, r0, #1
|
||||
ldrh r0, [r1, r0]
|
||||
|
|
@ -128,44 +128,45 @@ _080001F4: .4byte gBG1Buffer+0x40
|
|||
_080001F8: .4byte gMapTop
|
||||
_080001FC: .4byte gMapDataTopSpecial
|
||||
_08000200: .4byte gBG2Buffer+0x40
|
||||
_08000204: .4byte gUnk_08000248
|
||||
_08000208: .4byte gUnk_08000228
|
||||
_08000204: .4byte gCollisionDataPtrs
|
||||
_08000208: .4byte gMapDataPtrs
|
||||
_0800020C: .4byte 0x00004000
|
||||
_08000210: .4byte gUnk_080B7910
|
||||
_08000214: .4byte gUnk_080B79A7
|
||||
_08000218: .4byte gUnk_080B37A0
|
||||
_0800021C: .4byte gUnk_080B3E80
|
||||
_08000220: .4byte gUnk_08000278
|
||||
_08000224: .4byte gUnk_08000228
|
||||
gUnk_08000228::
|
||||
.4byte gMapBottom+0x0004
|
||||
gUnk_0800022C::
|
||||
_08000224: .4byte gMapDataPtrs
|
||||
|
||||
gMapDataPtrs::
|
||||
.4byte gMapBottom+0x0004 @ layer 0
|
||||
gMetatileTypesPtrs::
|
||||
.4byte gMapBottom+0x5004
|
||||
.4byte gMapBottom+0x0004
|
||||
.4byte gMapBottom+0x0004 @ layer 1
|
||||
.4byte gMapBottom+0x5004
|
||||
.4byte gMapTop+0x0004
|
||||
.4byte gMapTop+0x0004 @ layer 2
|
||||
.4byte gMapTop+0x5004
|
||||
.4byte gMapBottom+0x0004
|
||||
.4byte gMapBottom+0x0004 @ layer 3
|
||||
.4byte gMapBottom+0x5004
|
||||
gUnk_08000248::
|
||||
.4byte gMapBottom+0x2004
|
||||
.4byte gMapBottom+0x2004
|
||||
.4byte gMapTop+0x2004
|
||||
.4byte gMapBottom+0x2004
|
||||
gUnk_08000258::
|
||||
.4byte gMapBottom+0x3004
|
||||
gCollisionDataPtrs::
|
||||
.4byte gMapBottom+0x2004 @ layer 0
|
||||
.4byte gMapBottom+0x2004 @ layer 1
|
||||
.4byte gMapTop+0x2004 @ layer 2
|
||||
.4byte gMapBottom+0x2004 @ layer 3
|
||||
gUnk_08000258:: @ mapDataClone and metatileTypes
|
||||
.4byte gMapBottom+0x3004 @ layer 0
|
||||
.4byte gMapBottom+0x5004
|
||||
.4byte gMapBottom+0x3004
|
||||
.4byte gMapBottom+0x3004 @ layer 1
|
||||
.4byte gMapBottom+0x5004
|
||||
.4byte gMapTop+0x3004
|
||||
.4byte gMapTop+0x3004 @ layer 2
|
||||
.4byte gMapTop+0x5004
|
||||
.4byte gMapBottom+0x3004
|
||||
.4byte gMapBottom+0x3004 @ layer 3
|
||||
.4byte gMapBottom+0x5004
|
||||
gUnk_08000278:: @ unkData3 for layers
|
||||
.4byte gMapBottom+0xb004
|
||||
.4byte gMapBottom+0xb004
|
||||
.4byte gMapTop+0xb004
|
||||
.4byte gMapBottom+0xb004
|
||||
.4byte gMapBottom+0xb004 @ layer 0
|
||||
.4byte gMapBottom+0xb004 @ layer 1
|
||||
.4byte gMapTop+0xb004 @ layer 2
|
||||
.4byte gMapBottom+0xb004 @ layer 3
|
||||
|
||||
@ call 0x80B19CC
|
||||
@ ========
|
||||
|
|
@ -364,9 +365,9 @@ sub_080B1B3C: @ 0x080002DC
|
|||
@ call 0x080B1B44
|
||||
@ ========
|
||||
@ Unused? Doesn't seem to be called by anything in Ghidra.
|
||||
thumb_func_start sub_080B1B44
|
||||
sub_080B1B44: @ 0x080002E0
|
||||
ldr r3, _0800034C @ =ram_sub_080B1B44
|
||||
thumb_func_start GetCollisionData
|
||||
GetCollisionData: @ 0x080002E0
|
||||
ldr r3, _0800034C @ =ram_GetCollisionData
|
||||
bx r3
|
||||
|
||||
@ call 0x080B1B54
|
||||
|
|
@ -423,7 +424,7 @@ _0800033C: .4byte ram_sub_080B1B0C
|
|||
_08000340: .4byte ram_sub_080B1B18
|
||||
_08000344: .4byte ram_sub_080B1B2C
|
||||
_08000348: .4byte ram_sub_080B1B3C
|
||||
_0800034C: .4byte ram_sub_080B1B44
|
||||
_0800034C: .4byte ram_GetCollisionData
|
||||
_08000350: .4byte ram_sub_080B1B54
|
||||
_08000354: .4byte ram_sub_080B1B68
|
||||
_08000358: .4byte ram_sub_080B1B84
|
||||
|
|
|
|||
|
|
@ -13324,814 +13324,6 @@
|
|||
"start": 1085024,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108E6C.bin",
|
||||
"start": 1085036,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108E78_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1082828
|
||||
},
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108E78_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085048,
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108E98_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1082860
|
||||
},
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108E98_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085080,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108EA4.bin",
|
||||
"start": 1085092,
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108EC4_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1082904
|
||||
},
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108EC4_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085124,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108ED0_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1082916
|
||||
},
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108ED0_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085136,
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108EF0_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1082948
|
||||
},
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108EF0_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085168,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108EFC_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1082960
|
||||
},
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108EFC_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085180,
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108F1C_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1082992
|
||||
},
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108F1C_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085212,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108F28_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083004
|
||||
},
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108F28_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085224,
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108F48_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083036
|
||||
},
|
||||
"size": 4
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108F48_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085256,
|
||||
"size": 4
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108F48_2_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083040
|
||||
},
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108F48_3_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085260,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108F54_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083048
|
||||
},
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108F54_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085268,
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108F74_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083080
|
||||
},
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108F74_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085300,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108F80_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083092
|
||||
},
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108F80_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085312,
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108FA0_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083124
|
||||
},
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108FA0_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085344,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108FAC_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083136
|
||||
},
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108FAC_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085356,
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108FCC_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083168
|
||||
},
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108FCC_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085388,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108FD8_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083180
|
||||
},
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108FD8_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085400,
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108FF8_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083212
|
||||
},
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08108FF8_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085432,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109004_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083224
|
||||
},
|
||||
"size": 1
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109004_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085444,
|
||||
"size": 1
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109004_2_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083225
|
||||
},
|
||||
"size": 20
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109004_3_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085445,
|
||||
"size": 20
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109004_4_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083245
|
||||
},
|
||||
"size": 3
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109004_5_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085465,
|
||||
"size": 3
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109024_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083256
|
||||
},
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109024_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085476,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109030_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083268
|
||||
},
|
||||
"size": 3
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109030_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085488,
|
||||
"size": 3
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109030_2_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083271
|
||||
},
|
||||
"size": 21
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109030_3_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085491,
|
||||
"size": 21
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109050_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083300
|
||||
},
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109050_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085520,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_0810905C_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083312
|
||||
},
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_0810905C_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085532,
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_0810907C_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083344
|
||||
},
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_0810907C_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085564,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109088_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083356
|
||||
},
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109088_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085576,
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_081090A8_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083388
|
||||
},
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_081090A8_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085608,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_081090B4_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083400
|
||||
},
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_081090B4_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085620,
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_081090D4_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083432
|
||||
},
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_081090D4_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085652,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_081090E0_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083444
|
||||
},
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_081090E0_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085664,
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109100_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083476
|
||||
},
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109100_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085696,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_0810910C_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083488
|
||||
},
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_0810910C_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085708,
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_0810912C_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083520
|
||||
},
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_0810912C_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085740,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109140_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083540
|
||||
},
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109140_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085760,
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109160_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083572
|
||||
},
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109160_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085792,
|
||||
"size": 24
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109180_EU.bin",
|
||||
"variants": [
|
||||
"EU"
|
||||
],
|
||||
"starts": {
|
||||
"EU": 1083604
|
||||
},
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109180_1_USA-JP-DEMO_USA-DEMO_JP.bin",
|
||||
"variants": [
|
||||
"USA",
|
||||
"JP",
|
||||
"DEMO_USA",
|
||||
"DEMO_JP"
|
||||
],
|
||||
"start": 1085824,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "data_08108E6C/gUnk_08109230.bin",
|
||||
"start": 1086000,
|
||||
|
|
|
|||
154
assets/map.json
154
assets/map.json
|
|
@ -72,11 +72,16 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_0.bin",
|
||||
"path": "maps/areas/000_MinishWoods/rooms/00_Main/gCaveBorder_LakeWoods_outside.bin.lz",
|
||||
"start": 3344536,
|
||||
"size": 2176,
|
||||
"type": "unknown",
|
||||
"TODO": "Two metatilemaps of size 63x63"
|
||||
"size": 1010,
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/000_MinishWoods/rooms/00_Main/gCaveBorder_LakeWoods_unused.bin.lz",
|
||||
"start": 3345546,
|
||||
"size": 1166,
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/011_LakeHylia/tilesets/0/gAreaTileset_LakeHylia_0_0.4bpp.lz",
|
||||
|
|
@ -133,11 +138,10 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_1.bin",
|
||||
"path": "maps/areas/011_LakeHylia/rooms/00_Main/gCaveBorder_LakeHyliaNorth_outside.bin.lz",
|
||||
"start": 3388144,
|
||||
"size": 760,
|
||||
"type": "unknown",
|
||||
"TODO": "1 metatilemap 48x60"
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/011_LakeHylia/rooms/01_Beanstalk/gAreaRoomMap_LakeHylia_Beanstalk_bottom.bin.lz",
|
||||
|
|
@ -226,11 +230,10 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_2.bin",
|
||||
"path": "maps/areas/004_CastorWilds/rooms/00_Main/gCaveBorder_CastorWilds_outside.bin.lz",
|
||||
"start": 3434608,
|
||||
"size": 964,
|
||||
"type": "unknown",
|
||||
"TODO": "metatilemap 63x60"
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/005_Ruins/rooms/00_Entrance/gAreaRoomMap_Ruins_Entrance_bottom.bin.lz",
|
||||
|
|
@ -384,11 +387,10 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_4.bin",
|
||||
"path": "maps/areas/002_HyruleTown/rooms/00_Main/gCaveBorder_HyruleTown_outside.bin.lz",
|
||||
"start": 3541432,
|
||||
"size": 956,
|
||||
"type": "unknown",
|
||||
"TODO": "metatilemap 63x60"
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/021_FestivalTown/rooms/00_Main/gAreaRoomMap_FestivalTown_Main_bottom.bin.lz",
|
||||
|
|
@ -469,11 +471,10 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_5.bin",
|
||||
"path": "maps/areas/006_MtCrenel/rooms/01_WallClimb/gCaveBorder_Crenel_outside.bin.lz",
|
||||
"start": 3589952,
|
||||
"size": 264,
|
||||
"type": "unknown",
|
||||
"TODO": "metatilemap 24x38"
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/006_MtCrenel/rooms/02_CavernOfFlamesEntrance/gAreaRoomMap_MtCrenel_CavernOfFlamesEntrance_bottom.bin.lz",
|
||||
|
|
@ -620,47 +621,46 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/003_HyruleField/rooms/02_EasternHilllsSouth/gAreaRoomMap_HyruleField_EasternHilllsSouth_bottom.bin.lz",
|
||||
"path": "maps/areas/003_HyruleField/rooms/02_EasternHillsSouth/gAreaRoomMap_HyruleField_EasternHillsSouth_bottom.bin.lz",
|
||||
"start": 3698280,
|
||||
"size": 564,
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/003_HyruleField/rooms/02_EasternHilllsSouth/gAreaRoomMap_HyruleField_EasternHilllsSouth_top.bin.lz",
|
||||
"path": "maps/areas/003_HyruleField/rooms/02_EasternHillsSouth/gAreaRoomMap_HyruleField_EasternHillsSouth_top.bin.lz",
|
||||
"start": 3698844,
|
||||
"size": 208,
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/003_HyruleField/rooms/03_EasternHilllsCenter/gAreaRoomMap_HyruleField_EasternHilllsCenter_bottom.bin.lz",
|
||||
"path": "maps/areas/003_HyruleField/rooms/03_EasternHillsCenter/gAreaRoomMap_HyruleField_EasternHillsCenter_bottom.bin.lz",
|
||||
"start": 3699052,
|
||||
"size": 584,
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/003_HyruleField/rooms/03_EasternHilllsCenter/gAreaRoomMap_HyruleField_EasternHilllsCenter_top.bin.lz",
|
||||
"path": "maps/areas/003_HyruleField/rooms/03_EasternHillsCenter/gAreaRoomMap_HyruleField_EasternHillsCenter_top.bin.lz",
|
||||
"start": 3699636,
|
||||
"size": 216,
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/003_HyruleField/rooms/04_EasternHilllsNorth/gAreaRoomMap_HyruleField_EasternHilllsNorth_bottom.bin.lz",
|
||||
"path": "maps/areas/003_HyruleField/rooms/04_EasternHillsNorth/gAreaRoomMap_HyruleField_EasternHillsNorth_bottom.bin.lz",
|
||||
"start": 3699852,
|
||||
"size": 1228,
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/003_HyruleField/rooms/04_EasternHilllsNorth/gAreaRoomMap_HyruleField_EasternHilllsNorth_top.bin.lz",
|
||||
"path": "maps/areas/003_HyruleField/rooms/04_EasternHillsNorth/gAreaRoomMap_HyruleField_EasternHillsNorth_top.bin.lz",
|
||||
"start": 3701080,
|
||||
"size": 424,
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_6.bin",
|
||||
"path": "maps/areas/003_HyruleField/rooms/04_EasternHillsNorth/gCaveBorder_EasternHills_outside.bin.lz",
|
||||
"start": 3701504,
|
||||
"size": 296,
|
||||
"type": "unknown",
|
||||
"TODO": "metatilemap 30x34"
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/003_HyruleField/rooms/05_LonLonRanch/gAreaRoomMap_HyruleField_LonLonRanch_bottom.bin.lz",
|
||||
|
|
@ -675,11 +675,10 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_7.bin",
|
||||
"path": "maps/areas/003_HyruleField/rooms/05_LonLonRanch/gCaveBorder_LonLonRanch_outside.bin.lz",
|
||||
"start": 3705976,
|
||||
"size": 684,
|
||||
"type": "unknown",
|
||||
"TODO": "metatilemap 45x60"
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/003_HyruleField/rooms/06_NorthHyruleField/gAreaRoomMap_HyruleField_NorthHyruleField_bottom.bin.lz",
|
||||
|
|
@ -706,11 +705,10 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_8.bin",
|
||||
"path": "maps/areas/003_HyruleField/rooms/07_TrilbyHighlands/gCaveBorder_TrilbyHighlands_outside.bin.lz",
|
||||
"start": 3713808,
|
||||
"size": 480,
|
||||
"type": "unknown",
|
||||
"TODO": "metatilemap 30x60"
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/003_HyruleField/rooms/08_WesternWoodsNorth/gAreaRoomMap_HyruleField_WesternWoodsNorth_bottom.bin.lz",
|
||||
|
|
@ -978,11 +976,10 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_10.bin",
|
||||
"path": "maps/areas/010_VeilFalls/rooms/00_Main/gCaveBorder_VeilFalls_outside.bin.lz",
|
||||
"start": 3846752,
|
||||
"size": 520,
|
||||
"type": "unknown",
|
||||
"TODO": "metatilemap 30x63"
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/026_VeilFallsTop/tilesets/0/gAreaTileset_VeilFallsTop_0_2.4bpp.lz",
|
||||
|
|
@ -2504,11 +2501,10 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_12.bin",
|
||||
"path": "maps/areas/012_LakeWoodsCave/rooms/00_Main/gCaveBorder_LakeWoods_inside.bin.lz",
|
||||
"start": 4139404,
|
||||
"size": 1028,
|
||||
"type": "unknown",
|
||||
"TODO": "metatilemap 63x63"
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/012_LakeWoodsCave/rooms/00_Main/gAreaRoomMap_LakeWoodsCave_Main_top.bin.lz",
|
||||
|
|
@ -2523,11 +2519,10 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_13.bin",
|
||||
"path": "maps/areas/025_HyliaDigCaves/rooms/00_0/gCaveBorder_LakeHyliaCenter_inside.bin.lz",
|
||||
"start": 4141884,
|
||||
"size": 116,
|
||||
"type": "unknown",
|
||||
"TODO": "metatilemap 17x16"
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/025_HyliaDigCaves/rooms/00_0/gAreaRoomMap_HyliaDigCaves_0_top.bin.lz",
|
||||
|
|
@ -2542,11 +2537,10 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_14.bin",
|
||||
"path": "maps/areas/025_HyliaDigCaves/rooms/01_1/gCaveBorder_LakeHyliaNorth_inside.bin.lz",
|
||||
"start": 4143120,
|
||||
"size": 460,
|
||||
"type": "unknown",
|
||||
"TODO": "metatilemap 63x27"
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/025_HyliaDigCaves/rooms/01_1/gAreaRoomMap_HyliaDigCaves_1_top.bin.lz",
|
||||
|
|
@ -2561,11 +2555,10 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_15.bin",
|
||||
"path": "maps/areas/023_CastorWildsDigCave/rooms/00_0/gCaveBorder_CastorWilds_inside.bin.lz",
|
||||
"start": 4145644,
|
||||
"size": 964,
|
||||
"type": "unknown",
|
||||
"TODO": "metatilemap 63x60"
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/023_CastorWildsDigCave/rooms/00_0/gAreaRoomMap_CastorWildsDigCave_0_top.bin.lz",
|
||||
|
|
@ -2580,11 +2573,10 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_16.bin",
|
||||
"path": "maps/areas/015_HyruleDigCaves/rooms/00_Town/gCaveBorder_HyruleTown_inside.bin.lz",
|
||||
"start": 4148968,
|
||||
"size": 956,
|
||||
"type": "unknown",
|
||||
"TODO": "metatilemap 63x60"
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/015_HyruleDigCaves/rooms/00_Town/gAreaRoomMap_HyruleDigCaves_Town_top.bin.lz",
|
||||
|
|
@ -2599,11 +2591,10 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_17.bin",
|
||||
"path": "maps/areas/020_CrenelDigCave/rooms/00_0/gCaveBorder_Crenel_inside.bin.lz",
|
||||
"start": 4152076,
|
||||
"size": 280,
|
||||
"type": "unknown",
|
||||
"TODO": "metatilemap 31x32"
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/020_CrenelDigCave/rooms/00_0/gAreaRoomMap_CrenelDigCave_0_top.bin.lz",
|
||||
|
|
@ -2618,11 +2609,10 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_18.bin",
|
||||
"path": "maps/areas/019_DigCaves/rooms/00_EasternHills/gCaveBorder_EasternHills_inside.bin.lz",
|
||||
"start": 4153476,
|
||||
"size": 296,
|
||||
"type": "unknown",
|
||||
"TODO": "metatilemap 30x34"
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/019_DigCaves/rooms/00_EasternHills/gAreaRoomMap_DigCaves_EasternHills_top.bin.lz",
|
||||
|
|
@ -2637,11 +2627,10 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_19.bin",
|
||||
"path": "maps/areas/019_DigCaves/rooms/03_TrilbyHighlands/gCaveBorder_TrilbyHighlands_inside.bin.lz",
|
||||
"start": 4154928,
|
||||
"size": 480,
|
||||
"type": "unknown",
|
||||
"TODO": "metatilemap 30x60"
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/019_DigCaves/rooms/03_TrilbyHighlands/gAreaRoomMap_DigCaves_TrilbyHighlands_top.bin.lz",
|
||||
|
|
@ -2656,11 +2645,10 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_20.bin",
|
||||
"path": "maps/areas/022_VeilFallsDigCave/rooms/00_0/gCaveBorder_VeilFalls_inside.bin.lz",
|
||||
"start": 4156888,
|
||||
"size": 520,
|
||||
"type": "unknown",
|
||||
"TODO": "metatilemap 30x63"
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/022_VeilFallsDigCave/rooms/00_0/gAreaRoomMap_VeilFallsDigCave_0_top.bin.lz",
|
||||
|
|
@ -8692,11 +8680,28 @@
|
|||
"type": "metatileset_types"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_134.bin",
|
||||
"path": "maps/areas/113_PalaceOfWindsBoss/mappings/gyorgMapping_2_bottom.bin.lz",
|
||||
"start": 5538132,
|
||||
"size": 3628,
|
||||
"type": "unknown",
|
||||
"TODO": "4 mappings?"
|
||||
"size": 916,
|
||||
"type": "map_mapping2"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/113_PalaceOfWindsBoss/mappings/gyorgMapping_3_bottom.bin.lz",
|
||||
"start": 5539048,
|
||||
"size": 900,
|
||||
"type": "map_mapping2"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/113_PalaceOfWindsBoss/mappings/gyorgMapping_1_bottom.bin.lz",
|
||||
"start": 5539948,
|
||||
"size": 896,
|
||||
"type": "map_mapping2"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/113_PalaceOfWindsBoss/mappings/gyorgMapping_0_bottom.bin.lz",
|
||||
"start": 5540844,
|
||||
"size": 916,
|
||||
"type": "map_mapping2"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/113_PalaceOfWindsBoss/tilesets/0/gAreaTileset_PalaceOfWindsBoss_0_2.4bpp.lz",
|
||||
|
|
@ -9899,11 +9904,22 @@
|
|||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "assets/unknown_186.bin",
|
||||
"path": "maps/areas/113_PalaceOfWindsBoss/rooms/00_0/gyorgRoomMap_1_top.bin.lz",
|
||||
"start": 5579112,
|
||||
"size": 2904,
|
||||
"type": "unknown",
|
||||
"TODO": "3* 0x1f80 10 00"
|
||||
"size": 968,
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/113_PalaceOfWindsBoss/rooms/00_0/gyorgRoomMap_2_top.bin.lz",
|
||||
"start": 5580080,
|
||||
"size": 968,
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/113_PalaceOfWindsBoss/rooms/00_0/gyorgRoomMap_3_top.bin.lz",
|
||||
"start": 5581048,
|
||||
"size": 968,
|
||||
"type": "metatilemap"
|
||||
},
|
||||
{
|
||||
"path": "maps/areas/120_Sanctuary/tilesets/0/gAreaTileset_Sanctuary_0_0.4bpp.lz",
|
||||
|
|
|
|||
|
|
@ -1,380 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_08108E6C:: @ 08108E6C
|
||||
.incbin "data_08108E6C/gUnk_08108E6C.bin"
|
||||
|
||||
gUnk_08108E78:: @ 08108E78
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "data_08108E6C/gUnk_08108E78_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08108E78_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08108E90:: @ 08108E90
|
||||
.4byte gUnk_08108E6C
|
||||
.4byte gUnk_08108E78
|
||||
|
||||
gUnk_08108E98:: @ 08108E98
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "data_08108E6C/gUnk_08108E98_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08108E98_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08108EA4:: @ 08108EA4
|
||||
.incbin "data_08108E6C/gUnk_08108EA4.bin"
|
||||
|
||||
gUnk_08108EBC:: @ 08108EBC
|
||||
.4byte gUnk_08108E98
|
||||
.4byte gUnk_08108EA4
|
||||
|
||||
gUnk_08108EC4:: @ 08108EC4
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "data_08108E6C/gUnk_08108EC4_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08108EC4_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08108ED0:: @ 08108ED0
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "data_08108E6C/gUnk_08108ED0_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08108ED0_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08108EE8:: @ 08108EE8
|
||||
.4byte gUnk_08108EC4
|
||||
.4byte gUnk_08108ED0
|
||||
|
||||
gUnk_08108EF0:: @ 08108EF0
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "data_08108E6C/gUnk_08108EF0_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08108EF0_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08108EFC:: @ 08108EFC
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08108EFC_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08108EFC_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08108F14:: @ 08108F14
|
||||
.4byte gUnk_08108EF0
|
||||
.4byte gUnk_08108EFC
|
||||
|
||||
gUnk_08108F1C:: @ 08108F1C
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "data_08108E6C/gUnk_08108F1C_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08108F1C_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08108F28:: @ 08108F28
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "data_08108E6C/gUnk_08108F28_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08108F28_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08108F40:: @ 08108F40
|
||||
.4byte gUnk_08108F1C
|
||||
.4byte gUnk_08108F28
|
||||
|
||||
gUnk_08108F48:: @ 08108F48
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08108F48_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08108F48_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08108F48_2_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08108F48_3_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08108F54:: @ 08108F54
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08108F54_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08108F54_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08108F6C:: @ 08108F6C
|
||||
.4byte gUnk_08108F48
|
||||
.4byte gUnk_08108F54
|
||||
|
||||
gUnk_08108F74:: @ 08108F74
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08108F74_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08108F74_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08108F80:: @ 08108F80
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08108F80_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08108F80_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08108F98:: @ 08108F98
|
||||
.4byte gUnk_08108F74
|
||||
.4byte gUnk_08108F80
|
||||
|
||||
gUnk_08108FA0:: @ 08108FA0
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08108FA0_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08108FA0_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08108FAC:: @ 08108FAC
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08108FAC_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08108FAC_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08108FC4:: @ 08108FC4
|
||||
.4byte gUnk_08108FA0
|
||||
.4byte gUnk_08108FAC
|
||||
|
||||
gUnk_08108FCC:: @ 08108FCC
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08108FCC_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08108FCC_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08108FD8:: @ 08108FD8
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08108FD8_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08108FD8_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08108FF0:: @ 08108FF0
|
||||
.4byte gUnk_08108FCC
|
||||
.4byte gUnk_08108FD8
|
||||
|
||||
gUnk_08108FF8:: @ 08108FF8
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08108FF8_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08108FF8_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08109004:: @ 08109004
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08109004_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08109004_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08109004_2_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08109004_3_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08109004_4_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08109004_5_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_0810901C:: @ 0810901C
|
||||
.4byte gUnk_08108FF8
|
||||
.4byte gUnk_08109004
|
||||
|
||||
gUnk_08109024:: @ 08109024
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08109024_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08109024_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08109030:: @ 08109030
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08109030_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08109030_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08109030_2_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08109030_3_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08109048:: @ 08109048
|
||||
.4byte gUnk_08109024
|
||||
.4byte gUnk_08109030
|
||||
|
||||
gUnk_08109050:: @ 08109050
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08109050_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08109050_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_0810905C:: @ 0810905C
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_0810905C_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_0810905C_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08109074:: @ 08109074
|
||||
.4byte gUnk_08109050
|
||||
.4byte gUnk_0810905C
|
||||
|
||||
gUnk_0810907C:: @ 0810907C
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_0810907C_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_0810907C_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08109088:: @ 08109088
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08109088_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08109088_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_081090A0:: @ 081090A0
|
||||
.4byte gUnk_0810907C
|
||||
.4byte gUnk_08109088
|
||||
|
||||
gUnk_081090A8:: @ 081090A8
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_081090A8_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_081090A8_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_081090B4:: @ 081090B4
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_081090B4_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_081090B4_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_081090CC:: @ 081090CC
|
||||
.4byte gUnk_081090A8
|
||||
.4byte gUnk_081090B4
|
||||
|
||||
gUnk_081090D4:: @ 081090D4
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_081090D4_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_081090D4_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_081090E0:: @ 081090E0
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_081090E0_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_081090E0_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_081090F8:: @ 081090F8
|
||||
.4byte gUnk_081090D4
|
||||
.4byte gUnk_081090E0
|
||||
|
||||
gUnk_08109100:: @ 08109100
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08109100_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08109100_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_0810910C:: @ 0810910C
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_0810910C_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_0810910C_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08109124:: @ 08109124
|
||||
.4byte gUnk_08109100
|
||||
.4byte gUnk_0810910C
|
||||
|
||||
gUnk_0810912C:: @ 0810912C
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_0810912C_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_0810912C_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08109138:: @ 08109138
|
||||
.4byte gUnk_0810912C
|
||||
.4byte gUnk_081090E0
|
||||
|
||||
gUnk_08109140:: @ 08109140
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08109140_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08109140_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08109158:: @ 08109158
|
||||
.4byte gUnk_08109100
|
||||
.4byte gUnk_08109140
|
||||
|
||||
gUnk_08109160:: @ 08109160
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "data_08108E6C/gUnk_08109160_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08109160_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_08109178:: @ 08109178
|
||||
.4byte gUnk_081090D4
|
||||
.4byte gUnk_08109160
|
||||
|
||||
gUnk_08109180:: @ 08109180
|
||||
.ifdef EU
|
||||
.incbin "data_08108E6C/gUnk_08109180_EU.bin"
|
||||
.else
|
||||
.incbin "data_08108E6C/gUnk_08109180_1_USA-JP-DEMO_USA-DEMO_JP.bin"
|
||||
.endif
|
||||
|
||||
gUnk_0810918C:: @ 0810918C
|
||||
.4byte gUnk_08109180
|
||||
.4byte gUnk_0810910C
|
||||
|
||||
@ scroll.c
|
||||
gUnk_08109194:: @ 08109194
|
||||
.4byte gUnk_08108E90
|
||||
.4byte gUnk_08108EBC
|
||||
.4byte gUnk_08108EE8
|
||||
.4byte gUnk_08108F14
|
||||
.4byte gUnk_08108F40
|
||||
.4byte gUnk_08108F6C
|
||||
.4byte gUnk_08108F98
|
||||
.4byte gUnk_08108FC4
|
||||
.4byte gUnk_08108FF0
|
||||
.4byte gUnk_0810901C
|
||||
.4byte gUnk_08109048
|
||||
.4byte gUnk_08109074
|
||||
.4byte gUnk_081090A0
|
||||
.4byte gUnk_081090CC
|
||||
.4byte gUnk_081090F8
|
||||
.4byte gUnk_08109124
|
||||
.4byte gUnk_08109138
|
||||
.4byte gUnk_08109158
|
||||
.4byte gUnk_08109178
|
||||
.4byte gUnk_0810918C
|
||||
|
|
@ -27,8 +27,10 @@ gAreaRoomMap_MinishWoods_Main_bottom::
|
|||
.incbin "maps/areas/000_MinishWoods/rooms/00_Main/gAreaRoomMap_MinishWoods_Main_bottom.bin.lz"
|
||||
gAreaRoomMap_MinishWoods_Main_top::
|
||||
.incbin "maps/areas/000_MinishWoods/rooms/00_Main/gAreaRoomMap_MinishWoods_Main_top.bin.lz"
|
||||
unknown_0::
|
||||
.incbin "assets/unknown_0.bin"
|
||||
gCaveBorder_LakeWoods_outside::
|
||||
.incbin "maps/areas/000_MinishWoods/rooms/00_Main/gCaveBorder_LakeWoods_outside.bin.lz"
|
||||
gCaveBorder_LakeWoods_unused::
|
||||
.incbin "maps/areas/000_MinishWoods/rooms/00_Main/gCaveBorder_LakeWoods_unused.bin.lz"
|
||||
gAreaTileset_LakeHylia_0_0::
|
||||
.incbin "maps/areas/011_LakeHylia/tilesets/0/gAreaTileset_LakeHylia_0_0.4bpp.lz"
|
||||
gAreaTileset_LakeHylia_0_1::
|
||||
|
|
@ -47,8 +49,8 @@ gAreaRoomMap_LakeHylia_Main_bottom::
|
|||
.incbin "maps/areas/011_LakeHylia/rooms/00_Main/gAreaRoomMap_LakeHylia_Main_bottom.bin.lz"
|
||||
gAreaRoomMap_LakeHylia_Main_top::
|
||||
.incbin "maps/areas/011_LakeHylia/rooms/00_Main/gAreaRoomMap_LakeHylia_Main_top.bin.lz"
|
||||
unknown_1::
|
||||
.incbin "assets/unknown_1.bin"
|
||||
gCaveBorder_LakeHyliaNorth_outside::
|
||||
.incbin "maps/areas/011_LakeHylia/rooms/00_Main/gCaveBorder_LakeHyliaNorth_outside.bin.lz"
|
||||
gAreaRoomMap_LakeHylia_Beanstalk_bottom::
|
||||
.incbin "maps/areas/011_LakeHylia/rooms/01_Beanstalk/gAreaRoomMap_LakeHylia_Beanstalk_bottom.bin.lz"
|
||||
gAreaRoomMap_LakeHylia_Beanstalk_top::
|
||||
|
|
@ -71,8 +73,8 @@ gAreaRoomMap_CastorWilds_Main_bottom::
|
|||
.incbin "maps/areas/004_CastorWilds/rooms/00_Main/gAreaRoomMap_CastorWilds_Main_bottom.bin.lz"
|
||||
gAreaRoomMap_CastorWilds_Main_top::
|
||||
.incbin "maps/areas/004_CastorWilds/rooms/00_Main/gAreaRoomMap_CastorWilds_Main_top.bin.lz"
|
||||
unknown_2::
|
||||
.incbin "assets/unknown_2.bin"
|
||||
gCaveBorder_CastorWilds_outside::
|
||||
.incbin "maps/areas/004_CastorWilds/rooms/00_Main/gCaveBorder_CastorWilds_outside.bin.lz"
|
||||
gAreaRoomMap_Ruins_Entrance_bottom::
|
||||
.incbin "maps/areas/005_Ruins/rooms/00_Entrance/gAreaRoomMap_Ruins_Entrance_bottom.bin.lz"
|
||||
gAreaRoomMap_Ruins_Entrance_top::
|
||||
|
|
@ -123,8 +125,8 @@ gAreaRoomMap_HyruleTown_Main_bottom::
|
|||
.incbin "maps/areas/002_HyruleTown/rooms/00_Main/gAreaRoomMap_HyruleTown_Main_bottom.bin.lz"
|
||||
gAreaRoomMap_HyruleTown_Main_top::
|
||||
.incbin "maps/areas/002_HyruleTown/rooms/00_Main/gAreaRoomMap_HyruleTown_Main_top.bin.lz"
|
||||
unknown_4::
|
||||
.incbin "assets/unknown_4.bin"
|
||||
gCaveBorder_HyruleTown_outside::
|
||||
.incbin "maps/areas/002_HyruleTown/rooms/00_Main/gCaveBorder_HyruleTown_outside.bin.lz"
|
||||
gAreaRoomMap_FestivalTown_Main_bottom::
|
||||
.incbin "maps/areas/021_FestivalTown/rooms/00_Main/gAreaRoomMap_FestivalTown_Main_bottom.bin.lz"
|
||||
gAreaRoomMap_FestivalTown_Main_top::
|
||||
|
|
@ -151,8 +153,8 @@ gAreaRoomMap_MtCrenel_WallClimb_bottom::
|
|||
.incbin "maps/areas/006_MtCrenel/rooms/01_WallClimb/gAreaRoomMap_MtCrenel_WallClimb_bottom.bin.lz"
|
||||
gAreaRoomMap_MtCrenel_WallClimb_top::
|
||||
.incbin "maps/areas/006_MtCrenel/rooms/01_WallClimb/gAreaRoomMap_MtCrenel_WallClimb_top.bin.lz"
|
||||
unknown_5::
|
||||
.incbin "assets/unknown_5.bin"
|
||||
gCaveBorder_Crenel_outside::
|
||||
.incbin "maps/areas/006_MtCrenel/rooms/01_WallClimb/gCaveBorder_Crenel_outside.bin.lz"
|
||||
gAreaRoomMap_MtCrenel_CavernOfFlamesEntrance_bottom::
|
||||
.incbin "maps/areas/006_MtCrenel/rooms/02_CavernOfFlamesEntrance/gAreaRoomMap_MtCrenel_CavernOfFlamesEntrance_bottom.bin.lz"
|
||||
gAreaRoomMap_MtCrenel_CavernOfFlamesEntrance_top::
|
||||
|
|
@ -201,26 +203,26 @@ gAreaRoomMap_HyruleField_SouthHyruleField_bottom::
|
|||
.incbin "maps/areas/003_HyruleField/rooms/01_SouthHyruleField/gAreaRoomMap_HyruleField_SouthHyruleField_bottom.bin.lz"
|
||||
gAreaRoomMap_HyruleField_SouthHyruleField_top::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/01_SouthHyruleField/gAreaRoomMap_HyruleField_SouthHyruleField_top.bin.lz"
|
||||
gAreaRoomMap_HyruleField_EasternHilllsSouth_bottom::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/02_EasternHilllsSouth/gAreaRoomMap_HyruleField_EasternHilllsSouth_bottom.bin.lz"
|
||||
gAreaRoomMap_HyruleField_EasternHilllsSouth_top::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/02_EasternHilllsSouth/gAreaRoomMap_HyruleField_EasternHilllsSouth_top.bin.lz"
|
||||
gAreaRoomMap_HyruleField_EasternHilllsCenter_bottom::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/03_EasternHilllsCenter/gAreaRoomMap_HyruleField_EasternHilllsCenter_bottom.bin.lz"
|
||||
gAreaRoomMap_HyruleField_EasternHilllsCenter_top::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/03_EasternHilllsCenter/gAreaRoomMap_HyruleField_EasternHilllsCenter_top.bin.lz"
|
||||
gAreaRoomMap_HyruleField_EasternHilllsNorth_bottom::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/04_EasternHilllsNorth/gAreaRoomMap_HyruleField_EasternHilllsNorth_bottom.bin.lz"
|
||||
gAreaRoomMap_HyruleField_EasternHilllsNorth_top::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/04_EasternHilllsNorth/gAreaRoomMap_HyruleField_EasternHilllsNorth_top.bin.lz"
|
||||
unknown_6::
|
||||
.incbin "assets/unknown_6.bin"
|
||||
gAreaRoomMap_HyruleField_EasternHillsSouth_bottom::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/02_EasternHillsSouth/gAreaRoomMap_HyruleField_EasternHillsSouth_bottom.bin.lz"
|
||||
gAreaRoomMap_HyruleField_EasternHillsSouth_top::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/02_EasternHillsSouth/gAreaRoomMap_HyruleField_EasternHillsSouth_top.bin.lz"
|
||||
gAreaRoomMap_HyruleField_EasternHillsCenter_bottom::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/03_EasternHillsCenter/gAreaRoomMap_HyruleField_EasternHillsCenter_bottom.bin.lz"
|
||||
gAreaRoomMap_HyruleField_EasternHillsCenter_top::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/03_EasternHillsCenter/gAreaRoomMap_HyruleField_EasternHillsCenter_top.bin.lz"
|
||||
gAreaRoomMap_HyruleField_EasternHillsNorth_bottom::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/04_EasternHillsNorth/gAreaRoomMap_HyruleField_EasternHillsNorth_bottom.bin.lz"
|
||||
gAreaRoomMap_HyruleField_EasternHillsNorth_top::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/04_EasternHillsNorth/gAreaRoomMap_HyruleField_EasternHillsNorth_top.bin.lz"
|
||||
gCaveBorder_EasternHills_outside::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/04_EasternHillsNorth/gCaveBorder_EasternHills_outside.bin.lz"
|
||||
gAreaRoomMap_HyruleField_LonLonRanch_bottom::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/05_LonLonRanch/gAreaRoomMap_HyruleField_LonLonRanch_bottom.bin.lz"
|
||||
gAreaRoomMap_HyruleField_LonLonRanch_top::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/05_LonLonRanch/gAreaRoomMap_HyruleField_LonLonRanch_top.bin.lz"
|
||||
unknown_7::
|
||||
.incbin "assets/unknown_7.bin"
|
||||
gCaveBorder_LonLonRanch_outside::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/05_LonLonRanch/gCaveBorder_LonLonRanch_outside.bin.lz"
|
||||
gAreaRoomMap_HyruleField_NorthHyruleField_bottom::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/06_NorthHyruleField/gAreaRoomMap_HyruleField_NorthHyruleField_bottom.bin.lz"
|
||||
gAreaRoomMap_HyruleField_NorthHyruleField_top::
|
||||
|
|
@ -229,8 +231,8 @@ gAreaRoomMap_HyruleField_TrilbyHighlands_bottom::
|
|||
.incbin "maps/areas/003_HyruleField/rooms/07_TrilbyHighlands/gAreaRoomMap_HyruleField_TrilbyHighlands_bottom.bin.lz"
|
||||
gAreaRoomMap_HyruleField_TrilbyHighlands_top::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/07_TrilbyHighlands/gAreaRoomMap_HyruleField_TrilbyHighlands_top.bin.lz"
|
||||
unknown_8::
|
||||
.incbin "assets/unknown_8.bin"
|
||||
gCaveBorder_TrilbyHighlands_outside::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/07_TrilbyHighlands/gCaveBorder_TrilbyHighlands_outside.bin.lz"
|
||||
gAreaRoomMap_HyruleField_WesternWoodsNorth_bottom::
|
||||
.incbin "maps/areas/003_HyruleField/rooms/08_WesternWoodsNorth/gAreaRoomMap_HyruleField_WesternWoodsNorth_bottom.bin.lz"
|
||||
gAreaRoomMap_HyruleField_WesternWoodsNorth_top::
|
||||
|
|
@ -319,8 +321,8 @@ gAreaRoomMap_VeilFalls_Main_bottom::
|
|||
.incbin "maps/areas/010_VeilFalls/rooms/00_Main/gAreaRoomMap_VeilFalls_Main_bottom.bin.lz"
|
||||
gAreaRoomMap_VeilFalls_Main_top::
|
||||
.incbin "maps/areas/010_VeilFalls/rooms/00_Main/gAreaRoomMap_VeilFalls_Main_top.bin.lz"
|
||||
unknown_10::
|
||||
.incbin "assets/unknown_10.bin"
|
||||
gCaveBorder_VeilFalls_outside::
|
||||
.incbin "maps/areas/010_VeilFalls/rooms/00_Main/gCaveBorder_VeilFalls_outside.bin.lz"
|
||||
gAreaTileset_VeilFallsTop_0_2::
|
||||
.incbin "maps/areas/026_VeilFallsTop/tilesets/0/gAreaTileset_VeilFallsTop_0_2.4bpp.lz"
|
||||
gAreaRoomMap_VeilFallsTop_0_bottom::
|
||||
|
|
@ -827,56 +829,56 @@ gAreaTileset_HyliaDigCaves_0_4::
|
|||
.incbin "maps/areas/025_HyliaDigCaves/tilesets/0/gAreaTileset_HyliaDigCaves_0_4.4bpp.lz"
|
||||
gAreaRoomMap_LakeWoodsCave_Main_bottom::
|
||||
.incbin "maps/areas/012_LakeWoodsCave/rooms/00_Main/gAreaRoomMap_LakeWoodsCave_Main_bottom.bin.lz"
|
||||
unknown_12::
|
||||
.incbin "assets/unknown_12.bin"
|
||||
gCaveBorder_LakeWoods_inside::
|
||||
.incbin "maps/areas/012_LakeWoodsCave/rooms/00_Main/gCaveBorder_LakeWoods_inside.bin.lz"
|
||||
gAreaRoomMap_LakeWoodsCave_Main_top::
|
||||
.incbin "maps/areas/012_LakeWoodsCave/rooms/00_Main/gAreaRoomMap_LakeWoodsCave_Main_top.bin.lz"
|
||||
gAreaRoomMap_HyliaDigCaves_0_bottom::
|
||||
.incbin "maps/areas/025_HyliaDigCaves/rooms/00_0/gAreaRoomMap_HyliaDigCaves_0_bottom.bin.lz"
|
||||
unknown_13::
|
||||
.incbin "assets/unknown_13.bin"
|
||||
gCaveBorder_LakeHyliaCenter_inside::
|
||||
.incbin "maps/areas/025_HyliaDigCaves/rooms/00_0/gCaveBorder_LakeHyliaCenter_inside.bin.lz"
|
||||
gAreaRoomMap_HyliaDigCaves_0_top::
|
||||
.incbin "maps/areas/025_HyliaDigCaves/rooms/00_0/gAreaRoomMap_HyliaDigCaves_0_top.bin.lz"
|
||||
gAreaRoomMap_HyliaDigCaves_1_bottom::
|
||||
.incbin "maps/areas/025_HyliaDigCaves/rooms/01_1/gAreaRoomMap_HyliaDigCaves_1_bottom.bin.lz"
|
||||
unknown_14::
|
||||
.incbin "assets/unknown_14.bin"
|
||||
gCaveBorder_LakeHyliaNorth_inside::
|
||||
.incbin "maps/areas/025_HyliaDigCaves/rooms/01_1/gCaveBorder_LakeHyliaNorth_inside.bin.lz"
|
||||
gAreaRoomMap_HyliaDigCaves_1_top::
|
||||
.incbin "maps/areas/025_HyliaDigCaves/rooms/01_1/gAreaRoomMap_HyliaDigCaves_1_top.bin.lz"
|
||||
gAreaRoomMap_CastorWildsDigCave_0_bottom::
|
||||
.incbin "maps/areas/023_CastorWildsDigCave/rooms/00_0/gAreaRoomMap_CastorWildsDigCave_0_bottom.bin.lz"
|
||||
unknown_15::
|
||||
.incbin "assets/unknown_15.bin"
|
||||
gCaveBorder_CastorWilds_inside::
|
||||
.incbin "maps/areas/023_CastorWildsDigCave/rooms/00_0/gCaveBorder_CastorWilds_inside.bin.lz"
|
||||
gAreaRoomMap_CastorWildsDigCave_0_top::
|
||||
.incbin "maps/areas/023_CastorWildsDigCave/rooms/00_0/gAreaRoomMap_CastorWildsDigCave_0_top.bin.lz"
|
||||
gAreaRoomMap_HyruleDigCaves_Town_bottom::
|
||||
.incbin "maps/areas/015_HyruleDigCaves/rooms/00_Town/gAreaRoomMap_HyruleDigCaves_Town_bottom.bin.lz"
|
||||
unknown_16::
|
||||
.incbin "assets/unknown_16.bin"
|
||||
gCaveBorder_HyruleTown_inside::
|
||||
.incbin "maps/areas/015_HyruleDigCaves/rooms/00_Town/gCaveBorder_HyruleTown_inside.bin.lz"
|
||||
gAreaRoomMap_HyruleDigCaves_Town_top::
|
||||
.incbin "maps/areas/015_HyruleDigCaves/rooms/00_Town/gAreaRoomMap_HyruleDigCaves_Town_top.bin.lz"
|
||||
gAreaRoomMap_CrenelDigCave_0_bottom::
|
||||
.incbin "maps/areas/020_CrenelDigCave/rooms/00_0/gAreaRoomMap_CrenelDigCave_0_bottom.bin.lz"
|
||||
unknown_17::
|
||||
.incbin "assets/unknown_17.bin"
|
||||
gCaveBorder_Crenel_inside::
|
||||
.incbin "maps/areas/020_CrenelDigCave/rooms/00_0/gCaveBorder_Crenel_inside.bin.lz"
|
||||
gAreaRoomMap_CrenelDigCave_0_top::
|
||||
.incbin "maps/areas/020_CrenelDigCave/rooms/00_0/gAreaRoomMap_CrenelDigCave_0_top.bin.lz"
|
||||
gAreaRoomMap_DigCaves_EasternHills_bottom::
|
||||
.incbin "maps/areas/019_DigCaves/rooms/00_EasternHills/gAreaRoomMap_DigCaves_EasternHills_bottom.bin.lz"
|
||||
unknown_18::
|
||||
.incbin "assets/unknown_18.bin"
|
||||
gCaveBorder_EasternHills_inside::
|
||||
.incbin "maps/areas/019_DigCaves/rooms/00_EasternHills/gCaveBorder_EasternHills_inside.bin.lz"
|
||||
gAreaRoomMap_DigCaves_EasternHills_top::
|
||||
.incbin "maps/areas/019_DigCaves/rooms/00_EasternHills/gAreaRoomMap_DigCaves_EasternHills_top.bin.lz"
|
||||
gAreaRoomMap_DigCaves_TrilbyHighlands_bottom::
|
||||
.incbin "maps/areas/019_DigCaves/rooms/03_TrilbyHighlands/gAreaRoomMap_DigCaves_TrilbyHighlands_bottom.bin.lz"
|
||||
unknown_19::
|
||||
.incbin "assets/unknown_19.bin"
|
||||
gCaveBorder_TrilbyHighlands_inside::
|
||||
.incbin "maps/areas/019_DigCaves/rooms/03_TrilbyHighlands/gCaveBorder_TrilbyHighlands_inside.bin.lz"
|
||||
gAreaRoomMap_DigCaves_TrilbyHighlands_top::
|
||||
.incbin "maps/areas/019_DigCaves/rooms/03_TrilbyHighlands/gAreaRoomMap_DigCaves_TrilbyHighlands_top.bin.lz"
|
||||
gAreaRoomMap_VeilFallsDigCave_0_bottom::
|
||||
.incbin "maps/areas/022_VeilFallsDigCave/rooms/00_0/gAreaRoomMap_VeilFallsDigCave_0_bottom.bin.lz"
|
||||
unknown_20::
|
||||
.incbin "assets/unknown_20.bin"
|
||||
gCaveBorder_VeilFalls_inside::
|
||||
.incbin "maps/areas/022_VeilFallsDigCave/rooms/00_0/gCaveBorder_VeilFalls_inside.bin.lz"
|
||||
gAreaRoomMap_VeilFallsDigCave_0_top::
|
||||
.incbin "maps/areas/022_VeilFallsDigCave/rooms/00_0/gAreaRoomMap_VeilFallsDigCave_0_top.bin.lz"
|
||||
gAreaRoomMap_OuterFortressOfWinds_EntranceHall_bottom::
|
||||
|
|
@ -2685,8 +2687,14 @@ gAreaMetaTileset_PalaceOfWindsBoss_top::
|
|||
.incbin "maps/areas/113_PalaceOfWindsBoss/metatileset/gAreaMetaTileset_PalaceOfWindsBoss_top.bin.lz"
|
||||
gAreaMetaTilesetTypes_PalaceOfWindsBoss_top::
|
||||
.incbin "maps/areas/113_PalaceOfWindsBoss/metatileset/gAreaMetaTilesetTypes_PalaceOfWindsBoss_top.bin.lz"
|
||||
unknown_134::
|
||||
.incbin "assets/unknown_134.bin"
|
||||
gyorgMapping_2_bottom::
|
||||
.incbin "maps/areas/113_PalaceOfWindsBoss/mappings/gyorgMapping_2_bottom.bin.lz"
|
||||
gyorgMapping_3_bottom::
|
||||
.incbin "maps/areas/113_PalaceOfWindsBoss/mappings/gyorgMapping_3_bottom.bin.lz"
|
||||
gyorgMapping_1_bottom::
|
||||
.incbin "maps/areas/113_PalaceOfWindsBoss/mappings/gyorgMapping_1_bottom.bin.lz"
|
||||
gyorgMapping_0_bottom::
|
||||
.incbin "maps/areas/113_PalaceOfWindsBoss/mappings/gyorgMapping_0_bottom.bin.lz"
|
||||
gAreaTileset_PalaceOfWindsBoss_0_2::
|
||||
.incbin "maps/areas/113_PalaceOfWindsBoss/tilesets/0/gAreaTileset_PalaceOfWindsBoss_0_2.4bpp.lz"
|
||||
gAreaRoomMap_PalaceOfWinds_GyorgTornado_bottom::
|
||||
|
|
@ -2997,8 +3005,12 @@ gAreaRoomMap_PalaceOfWinds_DarkCompassHall_top::
|
|||
.incbin "maps/areas/112_PalaceOfWinds/rooms/50_DarkCompassHall/dungeon_map.bin"
|
||||
gAreaRoomMap_PalaceOfWindsBoss_0_top::
|
||||
.incbin "maps/areas/113_PalaceOfWindsBoss/rooms/00_0/gAreaRoomMap_PalaceOfWindsBoss_0_top.bin.lz"
|
||||
unknown_186::
|
||||
.incbin "assets/unknown_186.bin"
|
||||
gyorgRoomMap_1_top::
|
||||
.incbin "maps/areas/113_PalaceOfWindsBoss/rooms/00_0/gyorgRoomMap_1_top.bin.lz"
|
||||
gyorgRoomMap_2_top::
|
||||
.incbin "maps/areas/113_PalaceOfWindsBoss/rooms/00_0/gyorgRoomMap_2_top.bin.lz"
|
||||
gyorgRoomMap_3_top::
|
||||
.incbin "maps/areas/113_PalaceOfWindsBoss/rooms/00_0/gyorgRoomMap_3_top.bin.lz"
|
||||
gAreaTileset_Sanctuary_0_0::
|
||||
.incbin "maps/areas/120_Sanctuary/tilesets/0/gAreaTileset_Sanctuary_0_0.4bpp.lz"
|
||||
gAreaTileset_Sanctuary_0_1::
|
||||
|
|
|
|||
|
|
@ -117,22 +117,22 @@ gAreaRoomMap_HyruleField_1:: @ 081034D0
|
|||
map_top offset_gAreaRoomMap_HyruleField_SouthHyruleField_top, 0x152A, 1, 1
|
||||
|
||||
gAreaRoomMap_HyruleField_2:: @ 0810350C
|
||||
map_bottom offset_gAreaRoomMap_HyruleField_EasternHilllsSouth_bottom, 0x30C, 1
|
||||
map_top offset_gAreaRoomMap_HyruleField_EasternHilllsSouth_top, 0x30C, 1, 1
|
||||
map_bottom offset_gAreaRoomMap_HyruleField_EasternHillsSouth_bottom, 0x30C, 1
|
||||
map_top offset_gAreaRoomMap_HyruleField_EasternHillsSouth_top, 0x30C, 1, 1
|
||||
|
||||
gAreaRoomMap_HyruleField_3:: @ 08103524
|
||||
tileset_tiles offset_gAreaTileset_HyruleField_0_0, 0x6000000, 0x4000, 1
|
||||
tileset_tiles offset_gAreaTileset_HyruleField_0_2, 0x6008000, 0x4000, 1
|
||||
.4byte 0x80000010, 0x0, 0x0
|
||||
map_bottom offset_gAreaRoomMap_HyruleField_EasternHilllsCenter_bottom, 0x3C0, 1
|
||||
map_top offset_gAreaRoomMap_HyruleField_EasternHilllsCenter_top, 0x3C0, 1, 1
|
||||
map_bottom offset_gAreaRoomMap_HyruleField_EasternHillsCenter_bottom, 0x3C0, 1
|
||||
map_top offset_gAreaRoomMap_HyruleField_EasternHillsCenter_top, 0x3C0, 1, 1
|
||||
|
||||
gAreaRoomMap_HyruleField_4:: @ 08103560
|
||||
tileset_tiles offset_gAreaTileset_HyruleField_1_0, 0x6000000, 0x4000, 1
|
||||
tileset_tiles offset_gAreaTileset_HyruleField_1_2, 0x6008000, 0x4000, 1
|
||||
.4byte 0x80000043, 0x0, 0x0
|
||||
map_bottom offset_gAreaRoomMap_HyruleField_EasternHilllsNorth_bottom, 0x7F8, 1
|
||||
map_top offset_gAreaRoomMap_HyruleField_EasternHilllsNorth_top, 0x7F8, 1, 1
|
||||
map_bottom offset_gAreaRoomMap_HyruleField_EasternHillsNorth_bottom, 0x7F8, 1
|
||||
map_top offset_gAreaRoomMap_HyruleField_EasternHillsNorth_top, 0x7F8, 1, 1
|
||||
|
||||
gAreaRoomMap_HyruleField_5:: @ 0810359C
|
||||
tileset_tiles offset_gAreaTileset_HyruleField_1_0, 0x6000000, 0x4000, 1
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ extern u32 GetTileTypeByPos(s32 x, s32 y, u32 layer);
|
|||
extern u32 GetTileType(u32 position, u32 layer);
|
||||
extern void SetTile(u32 index, u32 position, u32 layer);
|
||||
extern void UpdateScrollVram(void);
|
||||
extern u32 sub_080B1B0C(struct Entity_*);
|
||||
extern u32 sub_080B1BA4(u32, u32, u32);
|
||||
extern void LoadResourceAsync(const void* src, u32 dest, u32 size);
|
||||
extern void GenericConfused(struct Entity_*);
|
||||
|
|
@ -37,9 +36,34 @@ extern u32 sub_0800442E(struct Entity_*);
|
|||
extern u32 sub_08007DD6(u32, const u16*);
|
||||
extern void SoundReqClipped(struct Entity_*, u32);
|
||||
extern u32 sub_0800132C(struct Entity_*, struct Entity_*);
|
||||
extern u32 sub_080B1B44(u32, u32);
|
||||
|
||||
/**
|
||||
* Sets the collision data for one metatile.
|
||||
*/
|
||||
extern void SetCollisionData(u32 collisionData, u32 metaTilePos, u32 layer);
|
||||
/**
|
||||
* Returns the collision data for one metatile.
|
||||
*/
|
||||
extern u32 GetCollisionData(u32 metaTilePos, u32 layer);
|
||||
/**
|
||||
* Returns the collision data for one metatile. (x, y in metatiles relative to the room)
|
||||
*/
|
||||
extern u32 sub_080B1B3C(u32 x, u32 y, u32 layer);
|
||||
/**
|
||||
* Returns the collision data for one metatile. (x, y in pixels relative to the room)
|
||||
*/
|
||||
extern u32 sub_080B1B2C(u32 x, u32 y, u32 layer);
|
||||
/**
|
||||
* Returns the collision data for one metatile. (x, y in pixels relative to the world)
|
||||
*/
|
||||
extern u32 sub_080B1B18(u32 x, u32 y, u32 layer);
|
||||
|
||||
extern u32 sub_080B1B0C(struct Entity_* entity);
|
||||
|
||||
// Get CollisionData for entity (relative to entity?)
|
||||
extern u32 sub_080B1AF0(struct Entity_*, s32 xOffset, s32 yOffset);
|
||||
|
||||
extern u32 sub_080B1A48(u32, u32, u32);
|
||||
extern u32 sub_080B1B18(s32, s32, u32);
|
||||
extern u32 sub_080B1AE0(u16, u8);
|
||||
extern u32 GetTileUnderEntity(struct Entity_*);
|
||||
extern u32 sub_0800445C(struct Entity_*);
|
||||
|
|
|
|||
|
|
@ -135,7 +135,6 @@ typedef struct {
|
|||
|
||||
extern const DungeonFloorMetadata gDungeonFloorMetadatas[];
|
||||
|
||||
|
||||
typedef struct {
|
||||
u8 area;
|
||||
u8 room;
|
||||
|
|
|
|||
|
|
@ -519,6 +519,8 @@ extern u8 gManagerCount;
|
|||
|
||||
/** @name Tile Macros */ /// @{
|
||||
#define TILE(x, y) (((((x)-gRoomControls.origin_x) >> 4) & 0x3F) | ((((y)-gRoomControls.origin_y) >> 4) & 0x3F) << 6)
|
||||
// Calculate metatilePosition from x and y coordinates where x and y are already relative to the current room.
|
||||
#define TILE_LOCAL(x, y) ((((x) >> 4) & 0x3F) | (((y) >> 4) & 0x3F) << 6)
|
||||
#define TILE_POS(x, y) (x + (y << 6))
|
||||
#define TILE_POS_X_COMPONENT 0x3f
|
||||
#define TILE_POS_Y_COMPONENT 0xfc0
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ extern void CreateMinishEntrance(u32 tile);
|
|||
extern u32 CreateRandomItemDrop(Entity*, u32);
|
||||
extern void DrawDirect(u32 spriteIndex, u32 frameIndex);
|
||||
extern void DrawEntities(void);
|
||||
extern bool32 EntityWithinDistance(Entity*, s32, s32, s32);
|
||||
extern void FlushSprites(void);
|
||||
extern LayerStruct* GetLayerByIndex(u32);
|
||||
extern u32 GetTileIndex(u32 tilePos, u32 layer);
|
||||
|
|
@ -49,12 +48,8 @@ extern void ClearBgAnimations(void);
|
|||
extern void SetBGDefaults(void);
|
||||
|
||||
// Unidentified
|
||||
extern void sub_08000148(u32, u32, u32);
|
||||
extern u32 sub_080B1A0C(Entity*, s32, s32);
|
||||
extern u32 sub_080B1AE0(u16, u8);
|
||||
extern u32 sub_080B1AF0(Entity*, s32, s32);
|
||||
extern u32 sub_080B1B18(s32, s32, u32);
|
||||
extern u32 sub_080B1B44(u32, u32);
|
||||
extern s32 sub_080012DC(Entity*);
|
||||
extern void sub_08001318(Entity*);
|
||||
extern void sub_080027EA(Entity*, u32, u32);
|
||||
|
|
|
|||
|
|
@ -295,7 +295,7 @@ typedef struct {
|
|||
u8 maxX;
|
||||
u8 maxY;
|
||||
u8 windcrestId; /**< Id to set in gSave.windcrests when the user entered a room in the boundaries specified above.*/
|
||||
//u8 pad;
|
||||
// u8 pad;
|
||||
u16 textIndex; /**< The text to show for this area.*/
|
||||
} OverworldLocation;
|
||||
extern const OverworldLocation gOverworldLocations[];
|
||||
|
|
|
|||
|
|
@ -78,10 +78,8 @@
|
|||
#if NON_MATCHING
|
||||
#define ASM_FUNC(path, decl)
|
||||
#else
|
||||
#define ASM_FUNC(path, decl) \
|
||||
NAKED decl { \
|
||||
asm(".include " #path); \
|
||||
}
|
||||
#define ASM_FUNC(path, decl) \
|
||||
NAKED decl { asm(".include " #path); }
|
||||
#endif
|
||||
|
||||
#if NON_MATCHING
|
||||
|
|
|
|||
|
|
@ -64,8 +64,8 @@ typedef struct {
|
|||
u8 pauseFrames; /**< Number of frames to pause. */
|
||||
u8 pauseCount; /**< Number of pauses to make. */
|
||||
u8 pauseInterval; /**< Number of frames to play between each pause. */
|
||||
u8 pad;
|
||||
u16 ticks; /**< Current time. */
|
||||
u8 pad; // TODO actually used in CopyOAM()
|
||||
u16 ticks; /**< Current time. */
|
||||
} Main;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -7,12 +7,35 @@ typedef struct {
|
|||
Manager base;
|
||||
} DiggingCaveEntranceManager;
|
||||
|
||||
enum DiggingCaveEntranceType {
|
||||
CAVE_LAKE_WOODS_ENTER,
|
||||
CAVE_LAKE_WOODS_LEAVE,
|
||||
CAVE_HYRULE_TOWN_ENTER,
|
||||
CAVE_HYRULE_TOWN_LEAVE,
|
||||
CAVE_EASTERN_HILL_ENTER,
|
||||
CAVE_EASTERN_HILL_LEAVE,
|
||||
CAVE_CRENEL_ENTER,
|
||||
CAVE_CRENEL_LEAVE,
|
||||
CAVE_VEIL_FALLS_ENTER,
|
||||
CAVE_VEIL_FALLS_LEAVE,
|
||||
CAVE_TRILBY_HIGHLANDS_ENTER,
|
||||
CAVE_TRILBY_HIGHLANDS_LEAVE,
|
||||
CAVE_CASTOR_WILDS_ENTER,
|
||||
CAVE_CASTOR_WILDS_LEAVE,
|
||||
CAVE_LAKE_HYLIA_NORTH_ENTER,
|
||||
CAVE_LAKE_HYLIA_NORTH_LEAVE,
|
||||
CAVE_LON_LON_RANCH_ENTER,
|
||||
CAVE_LON_LON_RANCH_LEAVE,
|
||||
CAVE_LAKE_HYLIA_CENTER_ENTER,
|
||||
CAVE_LAKE_HYLIA_CENTER_LEAVE,
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
u16 sourceTilePosition; /**< Tile position for the entrance in the source room. */
|
||||
u8 sourceRoom;
|
||||
u8 type; // TODO some sort of type that is used to index gUnk_08109194
|
||||
u8 targetArea;
|
||||
u8 targetRoom;
|
||||
u8 sourceRoom; /**< @see RoomID */
|
||||
u8 type; /**< @see DiggingCaveEntranceType */
|
||||
u8 targetArea; /**< @see AreaID */
|
||||
u8 targetRoom; /**< @see RoomID */
|
||||
u16 targetTilePosition; /**< Tile position for the entrance in the target room. */
|
||||
} DiggingCaveEntrance;
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ typedef struct {
|
|||
u16* unk_28;
|
||||
u16* unk_2c;
|
||||
u8 filler[0x4];
|
||||
u8 unk_34;
|
||||
u8 layer;
|
||||
u8 unk_35;
|
||||
u8 unk_36;
|
||||
u8 unk_37;
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@
|
|||
typedef struct {
|
||||
Manager base;
|
||||
u8 unk_20[0x18];
|
||||
s16 unk_38;
|
||||
s16 unk_3a;
|
||||
s16 x;
|
||||
s16 y;
|
||||
u16 unk_3c;
|
||||
u16 flags;
|
||||
} MiscManager;
|
||||
|
|
|
|||
|
|
@ -6,14 +6,18 @@
|
|||
|
||||
typedef struct {
|
||||
/*0x0000*/ BgSettings* bgSettings;
|
||||
/*0x0004*/ u16 mapData[0x40*0x40]; /**< MetaTileIndex for each tile on the current layer. */ // tilemap data? <-- gMapDataTop / gMapDataBottom
|
||||
/*0x2004*/ u8 collisionData[0x40*0x40]; // more tilemap data? <-- gUnk_0200D654 / gUnk_02027EB4
|
||||
/*0x3004*/ u16 mapDataClone[0x40*0x40]; // more tilemap data? <-- gUnk_0200E654 / gUnk_02028EB4
|
||||
// Tileset
|
||||
/*0x5004*/ u16 metatileTypes[0x800]; /**< Maps from the MetaTileIndex to the MetaTileType. */ // gMetatileTypesTop, gMetatileTypesBottom
|
||||
/*0x6004*/ u16 unkData2[0x800]; /**< Maps from a MetaTileType to a MetaTileIndex. */ // gUnk_02011654,gUnk_0202BEB4 // TODO metatile index for the metatile type??
|
||||
/*0x7004*/ u16 metatiles[0x800 * 4]; /**< Mapping from a metatile to the four tile_attrs it consists of.*/ // gMetatilesTop, gMetatilesBottom
|
||||
|
||||
/*0x0004*/ u16 mapData[0x40 * 0x40];
|
||||
/**< MetaTileIndex for each tile on the current layer. */ // tilemap data? <-- gMapDataTop / gMapDataBottom
|
||||
/*0x2004*/ u8 collisionData[0x40 * 0x40]; // more tilemap data? <-- gUnk_0200D654 / gUnk_02027EB4
|
||||
/*0x3004*/ u16 mapDataClone[0x40 * 0x40]; // more tilemap data? <-- gUnk_0200E654 / gUnk_02028EB4
|
||||
// Tileset
|
||||
/*0x5004*/ u16 metatileTypes[0x800];
|
||||
/**< Maps from the MetaTileIndex to the MetaTileType. */ // gMetatileTypesTop, gMetatileTypesBottom
|
||||
/*0x6004*/ u16 unkData2[0x800];
|
||||
/**< Maps from a MetaTileType to a MetaTileIndex. */ // gUnk_02011654,gUnk_0202BEB4 // TODO metatile index for
|
||||
// the metatile type??
|
||||
/*0x7004*/ u16 metatiles[0x800 * 4];
|
||||
/**< Mapping from a metatile to the four tile_attrs it consists of.*/ // gMetatilesTop, gMetatilesBottom
|
||||
|
||||
/*0xb004*/ u8 unkData3[0x40*0x40]; /**< Some sort of special behavior for tiles? Falling into holes or jumping off walls does not work when this is all zero.*/ // gUnk_02016654, gUnk_02030EB4
|
||||
// TODO check with debugger what accesses this
|
||||
|
|
@ -33,12 +37,11 @@ extern LayerStruct gMapTop;
|
|||
extern LayerStruct gMapBottom;
|
||||
|
||||
// Rendered tilemaps https://www.coranac.com/tonc/text/regbg.htm#sec-map
|
||||
//extern u16 gMapDataTopSpecial[0x4000];
|
||||
//extern u16 gMapDataBottomSpecial[0x4000];
|
||||
// extern u16 gMapDataTopSpecial[0x4000];
|
||||
// extern u16 gMapDataBottomSpecial[0x4000];
|
||||
|
||||
LayerStruct* GetLayerByIndex(u32);
|
||||
|
||||
|
||||
/*
|
||||
Definition where some map data is found and where it should be copied to.
|
||||
Defined using the map_data asm macro, e.g. in map_headers.s
|
||||
|
|
@ -49,5 +52,9 @@ typedef struct {
|
|||
u32 size;
|
||||
} MapDataDefinition;
|
||||
|
||||
// There is another map data definition following.
|
||||
#define MAP_MULTIPLE 0x80000000
|
||||
// The src is compressed.
|
||||
#define MAP_COMPRESSED 0x80000000
|
||||
|
||||
#endif // MAP_H
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ void SortEntityBelow(Entity* above_ent, Entity* below_ent);
|
|||
void LinearMoveDirection(Entity* ent, u32 a, u32 b);
|
||||
void LinearMoveAngle(Entity* ent, u32 a, u32 b);
|
||||
|
||||
bool32 EntityWithinDistance(Entity*, s32, s32, s32);
|
||||
bool32 EntityWithinDistance(Entity* entity, s32 x, s32 y, s32 distance);
|
||||
u32 sub_0806FCA0(Entity*, Entity*);
|
||||
u32 sub_0806F58C(Entity*, Entity*);
|
||||
u32 PointInsideRadius(s32 x, s32 y, s32 radius);
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ typedef struct {
|
|||
/*0x18*/ u16 unk_18; // progress during transition in same area?
|
||||
/*0x1A*/ u16 unk_1a; // calculated from unk_18
|
||||
/*0x1C*/ u16 unk_1c; // 0, 0xff
|
||||
/*0x1E*/ u16 width;
|
||||
/*0x20*/ u16 height;
|
||||
/*0x1E*/ u16 width; /**< Width in pixels. */
|
||||
/*0x20*/ u16 height; /**< Height in pixels. */
|
||||
/*0x22*/ u16 unk_22; // so far always 0xffff
|
||||
/*0x24*/ s8 aff_x;
|
||||
/*0x25*/ s8 aff_y;
|
||||
|
|
@ -91,7 +91,8 @@ typedef struct {
|
|||
u8 area;
|
||||
u8 room;
|
||||
u16 unk_02;
|
||||
u32 flags; /**< Flags that can be set on the tracked rooms. Used e.g. by the door mimic. (TODO probably to start in the discovered state?)*/
|
||||
u32 flags; /**< Flags that can be set on the tracked rooms. Used e.g. by the door mimic. (TODO probably to start in
|
||||
the discovered state?)*/
|
||||
} RoomMemory;
|
||||
|
||||
extern RoomMemory* gRoomMemoryPtr;
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@ typedef enum {
|
|||
// AREA_HYRULE_FIELD
|
||||
ROOM_HYRULE_FIELD_WESTERN_WOODS_SOUTH = 0,
|
||||
ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD,
|
||||
ROOM_HYRULE_FIELD_EASTERN_HILLLS_SOUTH,
|
||||
ROOM_HYRULE_FIELD_EASTERN_HILLLS_CENTER,
|
||||
ROOM_HYRULE_FIELD_EASTERN_HILLLS_NORTH,
|
||||
ROOM_HYRULE_FIELD_EASTERN_HILLS_SOUTH,
|
||||
ROOM_HYRULE_FIELD_EASTERN_HILLS_CENTER,
|
||||
ROOM_HYRULE_FIELD_EASTERN_HILLS_NORTH,
|
||||
ROOM_HYRULE_FIELD_LON_LON_RANCH,
|
||||
ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
|
||||
ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
|
||||
|
|
|
|||
|
|
@ -44,7 +44,8 @@ typedef struct {
|
|||
/*0x009*/ u8 field_0x9[0x17];
|
||||
/*0x020*/ u16 field_0x20;
|
||||
/*0x022*/ u8 field_0x22[0x1e];
|
||||
/*0x040*/ u32 windcrests; /**< Windcrest flags. bits 0 - 0x10: Visited area of the overworld. Above 0x18: windcrest activated. */
|
||||
/*0x040*/ u32 windcrests; /**< Windcrest flags. bits 0 - 0x10: Visited area of the overworld. Above 0x18: windcrest
|
||||
activated. */
|
||||
/*0x044*/ u8 filler44[0xC];
|
||||
/*0x050*/ u32 unk50;
|
||||
/*0x054*/ u8 filler54[0x8];
|
||||
|
|
|
|||
|
|
@ -40,11 +40,7 @@ SECTIONS {
|
|||
. = 0x00017654; gCurrentRoomProperties = .;
|
||||
. = 0x00017660; gSmallChests = .;
|
||||
. = 0x000176A0; gPaletteBuffer = .;
|
||||
. = 0x000176E0; gUnk_020176E0 = .;
|
||||
. = 0x00017700; gUnk_02017700 = .;
|
||||
. = 0x00017760; gUnk_02017760 = .;
|
||||
. = 0x00017830; gUnk_02017830 = .;
|
||||
. = 0x000178E0; gUnk_020178E0 = .;
|
||||
. = 0x00017AA0; gUnk_02017AA0 = .;
|
||||
. = 0x00017BA0; gUnk_02017BA0 = .;
|
||||
. = 0x00018EA0; gUnk_02018EA0 = .;
|
||||
|
|
@ -180,7 +176,7 @@ SECTIONS {
|
|||
. = 0x0000588C; ram_sub_080B1B18 = .;
|
||||
. = 0x000058A0; ram_sub_080B1B2C = .;
|
||||
. = 0x000058B0; ram_sub_080B1B3C = .;
|
||||
. = 0x000058B8; ram_sub_080B1B44 = .;
|
||||
. = 0x000058B8; ram_GetCollisionData = .;
|
||||
. = 0x000058C8; ram_sub_080B1B54 = .;
|
||||
. = 0x000058DC; ram_sub_080B1B68 = .;
|
||||
. = 0x000058F8; ram_sub_080B1B84 = .;
|
||||
|
|
@ -1172,7 +1168,7 @@ SECTIONS {
|
|||
src/manager/floatingPlatformManager.o(.rodata);
|
||||
src/manager/enterRoomTextboxManager.o(.rodata);
|
||||
data/const/manager/enterRoomTextboxManager.o(.rodata);
|
||||
data/const/entity.o(.rodata);
|
||||
src/data/caveBorderMapData.o(.rodata);
|
||||
src/entity.o(.rodata);
|
||||
src/code_0805EC04.o(.rodata);
|
||||
data/const/text.o(.rodata);
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@ void LoadMapData(MapDataDefinition* dataDefinition) {
|
|||
dest = dataDefinition->dest;
|
||||
if (dest != NULL) {
|
||||
src = &gMapData + (dataDefinition->src & 0x7fffffff);
|
||||
if ((dataDefinition->size & 0x80000000) != 0) {
|
||||
if ((dataDefinition->size & MAP_COMPRESSED) != 0) {
|
||||
if ((u32)dest >> 0x18 == 6) {
|
||||
LZ77UnCompVram(src, dest);
|
||||
} else {
|
||||
|
|
@ -155,7 +155,7 @@ void LoadMapData(MapDataDefinition* dataDefinition) {
|
|||
sub_080533CC();
|
||||
}
|
||||
dataDefinition++;
|
||||
} while (((dataDefinition - 1)->src & 0x80000000) != 0);
|
||||
} while (((dataDefinition - 1)->src & MAP_MULTIPLE) != 0);
|
||||
}
|
||||
|
||||
// Has ifdefs for other variants
|
||||
|
|
@ -202,8 +202,8 @@ u32 UpdatePlayerCollision(void) {
|
|||
index = sub_0807BDB8(&gPlayerEntity, direction >> 2);
|
||||
if (index != 0xff && (gRoomControls.scroll_flags & 4) == 0) {
|
||||
ptr1 = &gUnk_080B4490[index * 2];
|
||||
if (sub_080B1B44(COORD_TO_TILE_OFFSET(&gPlayerEntity, -ptr1[0], -ptr1[1]), gPlayerEntity.collisionLayer) ==
|
||||
0xff) {
|
||||
if (GetCollisionData(COORD_TO_TILE_OFFSET(&gPlayerEntity, -ptr1[0], -ptr1[1]),
|
||||
gPlayerEntity.collisionLayer) == 0xff) {
|
||||
if ((((gPlayerState.flags & (PL_FLAGS10000 | PL_FLAGS2)) != 0) ||
|
||||
((gPlayerState.sword_state & 0x10) != 0)) ||
|
||||
((sub_080806BC(gPlayerEntity.x.HALF.HI - gRoomControls.origin_x,
|
||||
|
|
@ -260,7 +260,7 @@ u32 UpdatePlayerCollision(void) {
|
|||
if ((gPlayerEntity.direction & 0x80) != 0) {
|
||||
return 0;
|
||||
}
|
||||
if (sub_080B1B44(position, gPlayerEntity.collisionLayer) != 0xf) {
|
||||
if (GetCollisionData(position, gPlayerEntity.collisionLayer) != 0xf) {
|
||||
return 0;
|
||||
}
|
||||
if (sub_08079778() == 0) {
|
||||
|
|
|
|||
11
src/color.c
11
src/color.c
|
|
@ -240,18 +240,18 @@ void ChangeObjPalette(Entity* entity, u32 objPaletteId) {
|
|||
void LoadObjPaletteAtIndex(u32 objPaletteId, u32 a2) {
|
||||
u16* buffer;
|
||||
|
||||
gUsedPalettes |= 1 << (a2 + 0x10);
|
||||
gUsedPalettes |= 1 << (a2 + 16);
|
||||
if (objPaletteId > 5) {
|
||||
if (objPaletteId == 0x15) {
|
||||
buffer = gPaletteBuffer;
|
||||
MemFill16(buffer[0x3C], buffer + (a2 + 0x10) * 0x10, 0x20);
|
||||
MemFill16(buffer[0x3C], buffer + (a2 + 16) * 16, 0x20);
|
||||
} else if (objPaletteId < 0x15) {
|
||||
LoadPalettes((u8*)(gPaletteBuffer + (objPaletteId - 6) * 0x10), a2 + 0x10, 1);
|
||||
LoadPalettes((u8*)(gPaletteBuffer + (objPaletteId - 6) * 16), a2 + 16, 1);
|
||||
} else {
|
||||
u32 offset = gUnk_08133368[(objPaletteId - 0x16)].WORD_U;
|
||||
u32 numPalettes = (offset >> 0x18) & 0xf;
|
||||
offset &= 0xffffff;
|
||||
LoadPalettes(gGlobalGfxAndPalettes + offset, a2 + 0x10, numPalettes);
|
||||
LoadPalettes(gGlobalGfxAndPalettes + offset, a2 + 16, numPalettes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -361,5 +361,6 @@ void sub_0801D48C(u32 a1, u32 a2) {
|
|||
} while (iVar2 != -1);
|
||||
}
|
||||
|
||||
gUsedPalettes |= 0xffff0000;
|
||||
gUsedPalettes |= 1 << 16 | 1 << 17 | 1 << 18 | 1 << 19 | 1 << 20 | 1 << 21 | 1 << 22 | 1 << 23 | 1 << 24 | 1 << 25 |
|
||||
1 << 26 | 1 << 27 | 1 << 28 | 1 << 29 | 1 << 30 | 1 << 31;
|
||||
}
|
||||
|
|
|
|||
496
src/common.c
496
src/common.c
|
|
@ -17,7 +17,6 @@
|
|||
#include "sound.h"
|
||||
#include "structures.h"
|
||||
|
||||
|
||||
extern u8 gUnk_03003DE0;
|
||||
extern u8 gzHeap[0x1000];
|
||||
extern u32 gDungeonMap[0x800];
|
||||
|
|
@ -344,8 +343,7 @@ void sub_0801D898(void* dest, void* src, u32 word, u32 size) {
|
|||
|
||||
ASM_FUNC("asm/non_matching/common/zMalloc.inc", void* zMalloc(u32 size));
|
||||
|
||||
|
||||
typedef struct {
|
||||
typedef struct {
|
||||
u16 start; // chunk start (offset from gzHeap)
|
||||
u16 end; // chunk end (offset from gzHeap)
|
||||
} HEAP_ENTRY;
|
||||
|
|
@ -353,12 +351,11 @@ typedef struct {
|
|||
typedef struct {
|
||||
u16 num_entries; // allocated HEAP_ENTRYs in entries
|
||||
|
||||
// maybe union, HEAP_ENTRY and heap space share the same space
|
||||
// maybe union, HEAP_ENTRY and heap space share the same space
|
||||
HEAP_ENTRY entries[0];
|
||||
u8 buf[4096 - 4]; // pads to 0x1000
|
||||
u8 buf[4096 - 4]; // pads to 0x1000
|
||||
} HEAP;
|
||||
|
||||
|
||||
void zFree(void* ptr) {
|
||||
u32 uVar1;
|
||||
u32 i;
|
||||
|
|
@ -1124,49 +1121,445 @@ KinstoneId GetFusionToOffer(Entity* entity) {
|
|||
return offeredFusion;
|
||||
}
|
||||
|
||||
const u16 gUnk_080C93E0[] = { 3, 9, 16, 22, 28, 35, 41, 48, 54, 61, 67, 74, 81, 88, 95, 102, 110, 117, 125, 133, 141, 149, 158, 167, 176, 185, 195, 205, 215, 226, 238, 250, 262, 276, 290, 304, 320, 336, 354, 373, 394, 415, 439, 465, 493, 525, 559, 597, 640, 689, 744, 808, 883, 971, 1078, 1209, 1375, 1591, 1885, 2308, 2973, 4167, 6950, 20860 };
|
||||
const u16 gUnk_080C93E0[] = {
|
||||
3, 9, 16, 22, 28, 35, 41, 48, 54, 61, 67, 74, 81, 88, 95, 102,
|
||||
110, 117, 125, 133, 141, 149, 158, 167, 176, 185, 195, 205, 215, 226, 238, 250,
|
||||
262, 276, 290, 304, 320, 336, 354, 373, 394, 415, 439, 465, 493, 525, 559, 597,
|
||||
640, 689, 744, 808, 883, 971, 1078, 1209, 1375, 1591, 1885, 2308, 2973, 4167, 6950, 20860
|
||||
};
|
||||
|
||||
const u32 gUnk_080C9460[] = {
|
||||
0xfffffff0, 0xffffff0f, 0xfffff0ff, 0xffff0fff, 0xfff0ffff, 0xff0fffff, 0xf0ffffff, 0xfffffff,
|
||||
};
|
||||
|
||||
const DungeonLayout gDungeonLayouts_None_None[] = { { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout* const gDungeonLayouts_None[] = {gDungeonLayouts_None_None, };
|
||||
const DungeonLayout gDungeonLayouts_None_None[] = {
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout* const gDungeonLayouts_None[] = {
|
||||
gDungeonLayouts_None_None,
|
||||
};
|
||||
|
||||
const DungeonLayout gDungeonLayouts_DeepwoodShrine_1F[] = { { AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BOSS_DOOR, 0, 0, offset_gDungeonMaps_DeepwoodShrine_BossDoor }, { AREA_DEEPWOOD_SHRINE_BOSS, ROOM_DEEPWOOD_SHRINE_BOSS_MAIN, 2, 0, offset_gDungeonMaps_DeepwoodShrineBoss_Main }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout gDungeonLayouts_DeepwoodShrine_B1[] = { { AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_MADDERPILLAR, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Madderpillar }, { AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BLUE_PORTAL, 0, 0, offset_gDungeonMaps_DeepwoodShrine_BluePortal }, { AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_STAIRS_TO_B1, 0, 0, offset_gDungeonMaps_DeepwoodShrine_StairsToB1 }, { AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_POT_BRIDGE, 0, 0, offset_gDungeonMaps_DeepwoodShrine_PotBridge }, { AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_DOUBLE_STATUE, 0, 0, offset_gDungeonMaps_DeepwoodShrine_DoubleStatue }, { AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_MAP, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Map }, { AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BARREL, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Barrel }, { AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BUTTON, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Button }, { AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_MULLDOZER, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Mulldozer }, { AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_PILLARS, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Pillars }, { AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_LEVER, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Lever }, { AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_ENTRANCE, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Entrance }, { AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_TORCHES, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Torches }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout gDungeonLayouts_DeepwoodShrine_B2[] = { { AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BOSS_KEY, 0, 0, offset_gDungeonMaps_DeepwoodShrine_BossKey }, { AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_COMPASS, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Compass }, { AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_LILY_PAD_WEST, 0, 0, offset_gDungeonMaps_DeepwoodShrine_LilyPadWest }, { AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_LILY_PAD_EAST, 0, 0, offset_gDungeonMaps_DeepwoodShrine_LilyPadEast }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout* const gDungeonLayouts_DeepwoodShrine[] = {gDungeonLayouts_DeepwoodShrine_1F, gDungeonLayouts_DeepwoodShrine_B1, gDungeonLayouts_DeepwoodShrine_B2, };
|
||||
const DungeonLayout gDungeonLayouts_DeepwoodShrine_1F[] = {
|
||||
{ AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BOSS_DOOR, 0, 0, offset_gDungeonMaps_DeepwoodShrine_BossDoor },
|
||||
{ AREA_DEEPWOOD_SHRINE_BOSS, ROOM_DEEPWOOD_SHRINE_BOSS_MAIN, 2, 0, offset_gDungeonMaps_DeepwoodShrineBoss_Main },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout gDungeonLayouts_DeepwoodShrine_B1[] = {
|
||||
{ AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_MADDERPILLAR, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Madderpillar },
|
||||
{ AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BLUE_PORTAL, 0, 0, offset_gDungeonMaps_DeepwoodShrine_BluePortal },
|
||||
{ AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_STAIRS_TO_B1, 0, 0, offset_gDungeonMaps_DeepwoodShrine_StairsToB1 },
|
||||
{ AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_POT_BRIDGE, 0, 0, offset_gDungeonMaps_DeepwoodShrine_PotBridge },
|
||||
{ AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_DOUBLE_STATUE, 0, 0, offset_gDungeonMaps_DeepwoodShrine_DoubleStatue },
|
||||
{ AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_MAP, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Map },
|
||||
{ AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BARREL, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Barrel },
|
||||
{ AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BUTTON, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Button },
|
||||
{ AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_MULLDOZER, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Mulldozer },
|
||||
{ AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_PILLARS, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Pillars },
|
||||
{ AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_LEVER, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Lever },
|
||||
{ AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_ENTRANCE, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Entrance },
|
||||
{ AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_TORCHES, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Torches },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout gDungeonLayouts_DeepwoodShrine_B2[] = {
|
||||
{ AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BOSS_KEY, 0, 0, offset_gDungeonMaps_DeepwoodShrine_BossKey },
|
||||
{ AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_COMPASS, 0, 0, offset_gDungeonMaps_DeepwoodShrine_Compass },
|
||||
{ AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_LILY_PAD_WEST, 0, 0, offset_gDungeonMaps_DeepwoodShrine_LilyPadWest },
|
||||
{ AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_LILY_PAD_EAST, 0, 0, offset_gDungeonMaps_DeepwoodShrine_LilyPadEast },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout* const gDungeonLayouts_DeepwoodShrine[] = {
|
||||
gDungeonLayouts_DeepwoodShrine_1F,
|
||||
gDungeonLayouts_DeepwoodShrine_B1,
|
||||
gDungeonLayouts_DeepwoodShrine_B2,
|
||||
};
|
||||
|
||||
const DungeonLayout gDungeonLayouts_CaveOfFlames_1F[] = { { AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_ENTRANCE, 0, 0, offset_gDungeonMaps_CaveOfFlames_Entrance }, { AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_NORTH_ENTRANCE, 0, 0, offset_gDungeonMaps_CaveOfFlames_NorthEntrance }, { AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_COMPASS, 0, 0, offset_gDungeonMaps_CaveOfFlames_Compass }, { AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_BOB_OMB_WALL, 0, 0, offset_gDungeonMaps_CaveOfFlames_BobOmbWall }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout gDungeonLayouts_CaveOfFlames_B1[] = { { AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_AFTER_CANE, 0, 0, offset_gDungeonMaps_CaveOfFlames_AfterCane }, { AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_SPINY_CHU, 0, 0, offset_gDungeonMaps_CaveOfFlames_SpinyChu }, { AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_CART_TO_SPINY_CHU, 0, 0, offset_gDungeonMaps_CaveOfFlames_CartToSpinyChu }, { AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_MAIN_CART, 0, 0, offset_gDungeonMaps_CaveOfFlames_MainCart }, { AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_CART_WEST, 0, 0, offset_gDungeonMaps_CaveOfFlames_CartWest }, { AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_HELMASAUR_FIGHT, 0, 0, offset_gDungeonMaps_CaveOfFlames_HelmasaurFight }, { AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_ROLLOBITE_LAVA_ROOM, 0, 0, offset_gDungeonMaps_CaveOfFlames_RollobiteLavaRoom }, { AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_MINISH_LAVA_ROOM, 0, 0, offset_gDungeonMaps_CaveOfFlames_MinishLavaRoom }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout gDungeonLayouts_CaveOfFlames_B2[] = { { AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_MINISH_SPIKES, 0, 0, offset_gDungeonMaps_CaveOfFlames_MinishSpikes }, { AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_TOMPAS_DOOM, 0, 0, offset_gDungeonMaps_CaveOfFlames_TompasDoom }, { AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_BEFORE_GLEEROK, 0, 0, offset_gDungeonMaps_CaveOfFlames_BeforeGleerok }, { AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_BOSSKEY_PATH1, 0, 0, offset_gDungeonMaps_CaveOfFlames_BosskeyPath1 }, { AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_BOSSKEY_PATH2, 0, 0, offset_gDungeonMaps_CaveOfFlames_BosskeyPath2 }, { AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_BOSS_DOOR, 0, 0, offset_gDungeonMaps_CaveOfFlames_BossDoor }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout gDungeonLayouts_CaveOfFlames_B3[] = { { AREA_CAVE_OF_FLAMES_BOSS, ROOM_CAVE_OF_FLAMES_BOSS_0, 2, 0, offset_gDungeonMaps_CaveOfFlamesBoss_0 }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout* const gDungeonLayouts_CaveOfFlames[] = {gDungeonLayouts_CaveOfFlames_1F, gDungeonLayouts_CaveOfFlames_B1, gDungeonLayouts_CaveOfFlames_B2, gDungeonLayouts_CaveOfFlames_B3, };
|
||||
const DungeonLayout gDungeonLayouts_CaveOfFlames_1F[] = {
|
||||
{ AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_ENTRANCE, 0, 0, offset_gDungeonMaps_CaveOfFlames_Entrance },
|
||||
{ AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_NORTH_ENTRANCE, 0, 0, offset_gDungeonMaps_CaveOfFlames_NorthEntrance },
|
||||
{ AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_COMPASS, 0, 0, offset_gDungeonMaps_CaveOfFlames_Compass },
|
||||
{ AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_BOB_OMB_WALL, 0, 0, offset_gDungeonMaps_CaveOfFlames_BobOmbWall },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout gDungeonLayouts_CaveOfFlames_B1[] = {
|
||||
{ AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_AFTER_CANE, 0, 0, offset_gDungeonMaps_CaveOfFlames_AfterCane },
|
||||
{ AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_SPINY_CHU, 0, 0, offset_gDungeonMaps_CaveOfFlames_SpinyChu },
|
||||
{ AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_CART_TO_SPINY_CHU, 0, 0,
|
||||
offset_gDungeonMaps_CaveOfFlames_CartToSpinyChu },
|
||||
{ AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_MAIN_CART, 0, 0, offset_gDungeonMaps_CaveOfFlames_MainCart },
|
||||
{ AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_CART_WEST, 0, 0, offset_gDungeonMaps_CaveOfFlames_CartWest },
|
||||
{ AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_HELMASAUR_FIGHT, 0, 0, offset_gDungeonMaps_CaveOfFlames_HelmasaurFight },
|
||||
{ AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_ROLLOBITE_LAVA_ROOM, 0, 0,
|
||||
offset_gDungeonMaps_CaveOfFlames_RollobiteLavaRoom },
|
||||
{ AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_MINISH_LAVA_ROOM, 0, 0,
|
||||
offset_gDungeonMaps_CaveOfFlames_MinishLavaRoom },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout gDungeonLayouts_CaveOfFlames_B2[] = {
|
||||
{ AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_MINISH_SPIKES, 0, 0, offset_gDungeonMaps_CaveOfFlames_MinishSpikes },
|
||||
{ AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_TOMPAS_DOOM, 0, 0, offset_gDungeonMaps_CaveOfFlames_TompasDoom },
|
||||
{ AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_BEFORE_GLEEROK, 0, 0, offset_gDungeonMaps_CaveOfFlames_BeforeGleerok },
|
||||
{ AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_BOSSKEY_PATH1, 0, 0, offset_gDungeonMaps_CaveOfFlames_BosskeyPath1 },
|
||||
{ AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_BOSSKEY_PATH2, 0, 0, offset_gDungeonMaps_CaveOfFlames_BosskeyPath2 },
|
||||
{ AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_BOSS_DOOR, 0, 0, offset_gDungeonMaps_CaveOfFlames_BossDoor },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout gDungeonLayouts_CaveOfFlames_B3[] = {
|
||||
{ AREA_CAVE_OF_FLAMES_BOSS, ROOM_CAVE_OF_FLAMES_BOSS_0, 2, 0, offset_gDungeonMaps_CaveOfFlamesBoss_0 },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout* const gDungeonLayouts_CaveOfFlames[] = {
|
||||
gDungeonLayouts_CaveOfFlames_1F,
|
||||
gDungeonLayouts_CaveOfFlames_B1,
|
||||
gDungeonLayouts_CaveOfFlames_B2,
|
||||
gDungeonLayouts_CaveOfFlames_B3,
|
||||
};
|
||||
|
||||
const DungeonLayout gDungeonLayouts_FortressOfWinds_3F[] = {
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_DOUBLE_EYEGORE, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_DoubleEyegore },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_KEY_LEVER, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_EastKeyLever },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_PIT_PLATFORMS, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_PitPlatforms },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WEST_KEY_LEVER, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_WestKeyLever },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MAZAAL, 2, 0, offset_gDungeonMaps_FortressOfWinds_Mazaal },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_BEFORE_MAZAAL, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_BeforeMazaal },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout gDungeonLayouts_FortressOfWinds_2F[] = {
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_DARKNUT_ROOM, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_DarknutRoom },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_ARROW_EYE_BRIDGE, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_ArrowEyeBridge },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_NORTH_SPLIT_PATH_PIT, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_NorthSplitPathPit },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WALLMASTER_MINISH_PORTAL, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_WallmasterMinishPortal },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_PILLAR_CLONE_BUTTONS, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_PillarCloneButtons },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_ROTATING_SPIKE_TRAPS, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_RotatingSpikeTraps },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_STALFOS, 0, 0, offset_gDungeonMaps_FortressOfWinds_Stalfos },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_ENTRANCE_MOLE_MITTS, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_EntranceMoleMitts },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MAIN_2F, 0, 0, offset_gDungeonMaps_FortressOfWinds_Main2f },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MINISH_HOLE, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_MinishHole },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_BOSS_KEY, 0, 0, offset_gDungeonMaps_FortressOfWinds_BossKey },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WEST_STAIRS_2F, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_WestStairs2f },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_STAIRS_2F, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_EastStairs2f },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_5, 1, 1, offset_gDungeonMaps_FortressOfWinds_5 },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_6, 1, 1, offset_gDungeonMaps_FortressOfWinds_6 },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout gDungeonLayouts_FortressOfWinds_1F[] = {
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WEST_STAIRS_1F, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_WestStairs1f },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_CENTER_STAIRS_1F, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_CenterStairs1f },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_STAIRS_1F, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_EastStairs1f },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WIZZROBE, 0, 0, offset_gDungeonMaps_FortressOfWinds_Wizzrobe },
|
||||
{ AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_HEART_PIECE, 0, 0,
|
||||
offset_gDungeonMaps_FortressOfWinds_HeartPiece },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout* const gDungeonLayouts_FortressOfWinds[] = {
|
||||
gDungeonLayouts_FortressOfWinds_3F,
|
||||
gDungeonLayouts_FortressOfWinds_2F,
|
||||
gDungeonLayouts_FortressOfWinds_1F,
|
||||
};
|
||||
|
||||
const DungeonLayout gDungeonLayouts_FortressOfWinds_3F[] = { { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_DOUBLE_EYEGORE, 0, 0, offset_gDungeonMaps_FortressOfWinds_DoubleEyegore }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_KEY_LEVER, 0, 0, offset_gDungeonMaps_FortressOfWinds_EastKeyLever }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_PIT_PLATFORMS, 0, 0, offset_gDungeonMaps_FortressOfWinds_PitPlatforms }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WEST_KEY_LEVER, 0, 0, offset_gDungeonMaps_FortressOfWinds_WestKeyLever }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MAZAAL, 2, 0, offset_gDungeonMaps_FortressOfWinds_Mazaal }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_BEFORE_MAZAAL, 0, 0, offset_gDungeonMaps_FortressOfWinds_BeforeMazaal }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout gDungeonLayouts_FortressOfWinds_2F[] = { { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_DARKNUT_ROOM, 0, 0, offset_gDungeonMaps_FortressOfWinds_DarknutRoom }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_ARROW_EYE_BRIDGE, 0, 0, offset_gDungeonMaps_FortressOfWinds_ArrowEyeBridge }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_NORTH_SPLIT_PATH_PIT, 0, 0, offset_gDungeonMaps_FortressOfWinds_NorthSplitPathPit }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WALLMASTER_MINISH_PORTAL, 0, 0, offset_gDungeonMaps_FortressOfWinds_WallmasterMinishPortal }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_PILLAR_CLONE_BUTTONS, 0, 0, offset_gDungeonMaps_FortressOfWinds_PillarCloneButtons }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_ROTATING_SPIKE_TRAPS, 0, 0, offset_gDungeonMaps_FortressOfWinds_RotatingSpikeTraps }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_STALFOS, 0, 0, offset_gDungeonMaps_FortressOfWinds_Stalfos }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_ENTRANCE_MOLE_MITTS, 0, 0, offset_gDungeonMaps_FortressOfWinds_EntranceMoleMitts }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MAIN_2F, 0, 0, offset_gDungeonMaps_FortressOfWinds_Main2f }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MINISH_HOLE, 0, 0, offset_gDungeonMaps_FortressOfWinds_MinishHole }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_BOSS_KEY, 0, 0, offset_gDungeonMaps_FortressOfWinds_BossKey }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WEST_STAIRS_2F, 0, 0, offset_gDungeonMaps_FortressOfWinds_WestStairs2f }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_STAIRS_2F, 0, 0, offset_gDungeonMaps_FortressOfWinds_EastStairs2f }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_5, 1, 1, offset_gDungeonMaps_FortressOfWinds_5 }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_6, 1, 1, offset_gDungeonMaps_FortressOfWinds_6 }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout gDungeonLayouts_FortressOfWinds_1F[] = { { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WEST_STAIRS_1F, 0, 0, offset_gDungeonMaps_FortressOfWinds_WestStairs1f }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_CENTER_STAIRS_1F, 0, 0, offset_gDungeonMaps_FortressOfWinds_CenterStairs1f }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_STAIRS_1F, 0, 0, offset_gDungeonMaps_FortressOfWinds_EastStairs1f }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WIZZROBE, 0, 0, offset_gDungeonMaps_FortressOfWinds_Wizzrobe }, { AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_HEART_PIECE, 0, 0, offset_gDungeonMaps_FortressOfWinds_HeartPiece }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout* const gDungeonLayouts_FortressOfWinds[] = {gDungeonLayouts_FortressOfWinds_3F, gDungeonLayouts_FortressOfWinds_2F, gDungeonLayouts_FortressOfWinds_1F, };
|
||||
const DungeonLayout gDungeonLayouts_TempleOfDroplets_B1[] = {
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_WEST_HOLE, 0, 0, offset_gDungeonMaps_TempleOfDroplets_WestHole },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_NORTH_SPLIT_ROOM, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_NorthSplitRoom },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_EAST_HOLE, 0, 0, offset_gDungeonMaps_TempleOfDroplets_EastHole },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ENTRANCE, 0, 0, offset_gDungeonMaps_TempleOfDroplets_Entrance },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_NORTHWEST_STAIRS, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_NorthwestStairs },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_SCISSORS_MINIBOSS, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_ScissorsMiniboss },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_WATERFALL_NORTHWEST, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_WaterfallNorthwest },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_WATERFALL_NORTHEAST, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_WaterfallNortheast },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ELEMENT, 0, 0, offset_gDungeonMaps_TempleOfDroplets_Element },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ICE_CORNER, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_IceCorner },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ICE_PIT_MAZE, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_IcePitMaze },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_HOLE_TO_BLUE_CHU_KEY, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_HoleToBlueChuKey },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_WEST_WATERFALL_SOUTHEAST, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_WestWaterfallSoutheast },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_WEST_WATERFALL_SOUTHWEST, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_WestWaterfallSouthwest },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BIG_OCTO, 2, 0, offset_gDungeonMaps_TempleOfDroplets_BigOcto },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_TO_BLUE_CHU, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_ToBlueChu },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BLUE_CHU, 0, 0, offset_gDungeonMaps_TempleOfDroplets_BlueChu },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout gDungeonLayouts_TempleOfDroplets_B2[] = {
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BOSS_KEY, 0, 0, offset_gDungeonMaps_TempleOfDroplets_BossKey },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_NORTH_SMALL_KEY, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_NorthSmallKey },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BLOCK_CLONE_BUTTON_PUZZLE, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_BlockCloneButtonPuzzle },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BLOCK_CLONE_PUZZLE, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_BlockClonePuzzle },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BLOCK_CLONE_ICE_BRIDGE, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_BlockCloneIceBridge },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_STAIRS_TO_SCISSORS_MINIBOSS, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_StairsToScissorsMiniboss },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_SPIKE_BAR_FLIPPER_ROOM, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_SpikeBarFlipperRoom },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_9_LANTERNS, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_9Lanterns },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_LILYPAD_ICE_BLOCKS, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_LilypadIceBlocks },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_29, 0, 0, offset_gDungeonMaps_TempleOfDroplets_29 },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_MULLDOZERS_FIRE_BARS, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_MulldozersFireBars },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_DARK_MAZE, 0, 0, offset_gDungeonMaps_TempleOfDroplets_DarkMaze },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_TWIN_MADDERPILLARS, 1, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_TwinMadderpillars },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_AFTER_TWIN_MADDERPILLARS, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_AfterTwinMadderpillars },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BLUE_CHU_KEY_LEVER, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_BlueChuKeyLever },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_MULLDOZER_KEY, 1, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_MulldozerKey },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BEFORE_TWIN_MADDERPILLARS, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_BeforeTwinMadderpillars },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_LILYPAD_B2_WEST, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_LilypadB2West },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_COMPASS, 0, 0, offset_gDungeonMaps_TempleOfDroplets_Compass },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_DARK_SCISSOR_BEETLES, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_DarkScissorBeetles },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_LILYPAD_B2_MIDDLE, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_LilypadB2Middle },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ICE_MADDERPILLAR, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_IceMadderpillar },
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_FLAMEBAR_BLOCK_PUZZLE, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_FlamebarBlockPuzzle },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout gDungeonLayouts_TempleOfDroplets_B3[] = {
|
||||
{ AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BLUE_CHU_KEY, 0, 0,
|
||||
offset_gDungeonMaps_TempleOfDroplets_BlueChuKey },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout* const gDungeonLayouts_TempleOfDroplets[] = {
|
||||
gDungeonLayouts_TempleOfDroplets_B1,
|
||||
gDungeonLayouts_TempleOfDroplets_B2,
|
||||
gDungeonLayouts_TempleOfDroplets_B3,
|
||||
};
|
||||
|
||||
const DungeonLayout gDungeonLayouts_PalaceOfWinds_5F[] = {
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GYORG_TORNADO, 2, 0, offset_gDungeonMaps_PalaceOfWinds_GyorgTornado },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BOSS_KEY, 0, 0, offset_gDungeonMaps_PalaceOfWinds_BossKey },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BEFORE_BALL_AND_CHAIN_SOLDIERS, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_BeforeBallAndChainSoldiers },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GYORG_BOSS_DOOR, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_GyorgBossDoor },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_EAST_CHEST_FROM_GYORG_BOSS_DOOR, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_EastChestFromGyorgBossDoor },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_MOBLIN_AND_WIZZROBE_FIGHT, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_MoblinAndWizzrobeFight },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_FOUR_BUTTON_STALFOS, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_FourButtonStalfos },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_FAN_AND_KEY_TO_BOSS_KEY, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_FanAndKeyToBossKey },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BALL_AND_CHAIN_SOLDIERS, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_BallAndChainSoldiers },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BOMBAROSSA_PATH, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_BombarossaPath },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_HOLE_TO_DARKNUT, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_HoleToDarknut },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_TO_BOMBAROSSA_PATH, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_ToBombarossaPath },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BOMB_WALL_INSIDE, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_BombWallInside },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BOMB_WALL_OUTSIDE, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_BombWallOutside },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout gDungeonLayouts_PalaceOfWinds_4F[] = {
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_CLOUD_JUMPS, 0, 0, offset_gDungeonMaps_PalaceOfWinds_CloudJumps },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BLOCK_MAZE_TO_BOSS_DOOR, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_BlockMazeToBossDoor },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_CRACKED_FLOOR_LAKITU, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_CrackedFloorLakitu },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_HEART_PIECE_BRIDGE, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_HeartPieceBridge },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_FAN_BRIDGE, 0, 0, offset_gDungeonMaps_PalaceOfWinds_FanBridge },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_TO_FAN_BRIDGE, 0, 0, offset_gDungeonMaps_PalaceOfWinds_ToFanBridge },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_RED_WARP_HALL, 0, 0, offset_gDungeonMaps_PalaceOfWinds_RedWarpHall },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout gDungeonLayouts_PalaceOfWinds_3F[] = {
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_PLATFORM_CLONE_RIDE, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_PlatformCloneRide },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_PIT_CORNER_AFTER_KEY, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_PitCornerAfterKey },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_PLATFORM_CROW_RIDE, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_PlatformCrowRide },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GRATE_PLATFORM_RIDE, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_GratePlatformRide },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_POT_PUSH, 0, 0, offset_gDungeonMaps_PalaceOfWinds_PotPush },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_FLOORMASTER_LEVER, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_FloormasterLever },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_MAP, 0, 0, offset_gDungeonMaps_PalaceOfWinds_Map },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_CORNER_TO_MAP, 0, 0, offset_gDungeonMaps_PalaceOfWinds_CornerToMap },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_STAIRS_AFTER_FLOORMASTER, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_StairsAfterFloormaster },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_HOLE_TO_KINSTONE_WIZZROBE, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_HoleToKinstoneWizzrobe },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_KEY_ARROW_BUTTON, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_KeyArrowButton },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout gDungeonLayouts_PalaceOfWinds_2F[] = {
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GRATES_TO_3F, 0, 0, offset_gDungeonMaps_PalaceOfWinds_GratesTo3f },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_SPINY_FIGHT, 0, 0, offset_gDungeonMaps_PalaceOfWinds_SpinyFight },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_PEAHAT_SWITCH, 0, 0, offset_gDungeonMaps_PalaceOfWinds_PeahatSwitch },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_WHIRLWIND_BOMBAROSSA, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_WhirlwindBombarossa },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_DOOR_TO_STALFOS_FIREBAR, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_DoorToStalfosFirebar },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_STALFOS_FIREBAR_HOLE, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_StalfosFirebarHole },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_SHORTCUT_DOOR_BUTTONS, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_ShortcutDoorButtons },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_TO_PEAHAT_SWITCH, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_ToPeahatSwitch },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_KINSTONE_WIZZROBE_FIGHT, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_KinstoneWizzrobeFight },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GIBDO_STAIRS, 0, 0, offset_gDungeonMaps_PalaceOfWinds_GibdoStairs },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_SPIKE_BAR_SMALL_KEY, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_SpikeBarSmallKey },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout gDungeonLayouts_PalaceOfWinds_1F[] = {
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_DARKNUT_MINIBOSS, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_DarknutMiniboss },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_ROC_CAPE, 0, 0, offset_gDungeonMaps_PalaceOfWinds_RocCape },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_FIRE_BAR_GRATES, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_FireBarGrates },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_PLATFORM_RIDE_BOMBAROSSAS, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_PlatformRideBombarossas },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BRIDGE_AFTER_DARKNUT, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_BridgeAfterDarknut },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BRIDGE_SWITCHES_CLONE_BLOCK, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_BridgeSwitchesCloneBlock },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_ENTRANCE_ROOM, 0, 0, offset_gDungeonMaps_PalaceOfWinds_EntranceRoom },
|
||||
{ AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_DARK_COMPASS_HALL, 0, 0,
|
||||
offset_gDungeonMaps_PalaceOfWinds_DarkCompassHall },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout* const gDungeonLayouts_PalaceOfWinds[] = {
|
||||
gDungeonLayouts_PalaceOfWinds_5F, gDungeonLayouts_PalaceOfWinds_4F, gDungeonLayouts_PalaceOfWinds_3F,
|
||||
gDungeonLayouts_PalaceOfWinds_2F, gDungeonLayouts_PalaceOfWinds_1F,
|
||||
};
|
||||
|
||||
const DungeonLayout gDungeonLayouts_TempleOfDroplets_B1[] = { { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_WEST_HOLE, 0, 0, offset_gDungeonMaps_TempleOfDroplets_WestHole }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_NORTH_SPLIT_ROOM, 0, 0, offset_gDungeonMaps_TempleOfDroplets_NorthSplitRoom }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_EAST_HOLE, 0, 0, offset_gDungeonMaps_TempleOfDroplets_EastHole }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ENTRANCE, 0, 0, offset_gDungeonMaps_TempleOfDroplets_Entrance }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_NORTHWEST_STAIRS, 0, 0, offset_gDungeonMaps_TempleOfDroplets_NorthwestStairs }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_SCISSORS_MINIBOSS, 0, 0, offset_gDungeonMaps_TempleOfDroplets_ScissorsMiniboss }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_WATERFALL_NORTHWEST, 0, 0, offset_gDungeonMaps_TempleOfDroplets_WaterfallNorthwest }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_WATERFALL_NORTHEAST, 0, 0, offset_gDungeonMaps_TempleOfDroplets_WaterfallNortheast }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ELEMENT, 0, 0, offset_gDungeonMaps_TempleOfDroplets_Element }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ICE_CORNER, 0, 0, offset_gDungeonMaps_TempleOfDroplets_IceCorner }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ICE_PIT_MAZE, 0, 0, offset_gDungeonMaps_TempleOfDroplets_IcePitMaze }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_HOLE_TO_BLUE_CHU_KEY, 0, 0, offset_gDungeonMaps_TempleOfDroplets_HoleToBlueChuKey }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_WEST_WATERFALL_SOUTHEAST, 0, 0, offset_gDungeonMaps_TempleOfDroplets_WestWaterfallSoutheast }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_WEST_WATERFALL_SOUTHWEST, 0, 0, offset_gDungeonMaps_TempleOfDroplets_WestWaterfallSouthwest }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BIG_OCTO, 2, 0, offset_gDungeonMaps_TempleOfDroplets_BigOcto }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_TO_BLUE_CHU, 0, 0, offset_gDungeonMaps_TempleOfDroplets_ToBlueChu }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BLUE_CHU, 0, 0, offset_gDungeonMaps_TempleOfDroplets_BlueChu }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout gDungeonLayouts_TempleOfDroplets_B2[] = { { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BOSS_KEY, 0, 0, offset_gDungeonMaps_TempleOfDroplets_BossKey }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_NORTH_SMALL_KEY, 0, 0, offset_gDungeonMaps_TempleOfDroplets_NorthSmallKey }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BLOCK_CLONE_BUTTON_PUZZLE, 0, 0, offset_gDungeonMaps_TempleOfDroplets_BlockCloneButtonPuzzle }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BLOCK_CLONE_PUZZLE, 0, 0, offset_gDungeonMaps_TempleOfDroplets_BlockClonePuzzle }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BLOCK_CLONE_ICE_BRIDGE, 0, 0, offset_gDungeonMaps_TempleOfDroplets_BlockCloneIceBridge }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_STAIRS_TO_SCISSORS_MINIBOSS, 0, 0, offset_gDungeonMaps_TempleOfDroplets_StairsToScissorsMiniboss }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_SPIKE_BAR_FLIPPER_ROOM, 0, 0, offset_gDungeonMaps_TempleOfDroplets_SpikeBarFlipperRoom }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_9_LANTERNS, 0, 0, offset_gDungeonMaps_TempleOfDroplets_9Lanterns }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_LILYPAD_ICE_BLOCKS, 0, 0, offset_gDungeonMaps_TempleOfDroplets_LilypadIceBlocks }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_29, 0, 0, offset_gDungeonMaps_TempleOfDroplets_29 }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_MULLDOZERS_FIRE_BARS, 0, 0, offset_gDungeonMaps_TempleOfDroplets_MulldozersFireBars }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_DARK_MAZE, 0, 0, offset_gDungeonMaps_TempleOfDroplets_DarkMaze }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_TWIN_MADDERPILLARS, 1, 0, offset_gDungeonMaps_TempleOfDroplets_TwinMadderpillars }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_AFTER_TWIN_MADDERPILLARS, 0, 0, offset_gDungeonMaps_TempleOfDroplets_AfterTwinMadderpillars }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BLUE_CHU_KEY_LEVER, 0, 0, offset_gDungeonMaps_TempleOfDroplets_BlueChuKeyLever }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_MULLDOZER_KEY, 1, 0, offset_gDungeonMaps_TempleOfDroplets_MulldozerKey }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BEFORE_TWIN_MADDERPILLARS, 0, 0, offset_gDungeonMaps_TempleOfDroplets_BeforeTwinMadderpillars }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_LILYPAD_B2_WEST, 0, 0, offset_gDungeonMaps_TempleOfDroplets_LilypadB2West }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_COMPASS, 0, 0, offset_gDungeonMaps_TempleOfDroplets_Compass }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_DARK_SCISSOR_BEETLES, 0, 0, offset_gDungeonMaps_TempleOfDroplets_DarkScissorBeetles }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_LILYPAD_B2_MIDDLE, 0, 0, offset_gDungeonMaps_TempleOfDroplets_LilypadB2Middle }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ICE_MADDERPILLAR, 0, 0, offset_gDungeonMaps_TempleOfDroplets_IceMadderpillar }, { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_FLAMEBAR_BLOCK_PUZZLE, 0, 0, offset_gDungeonMaps_TempleOfDroplets_FlamebarBlockPuzzle }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout gDungeonLayouts_TempleOfDroplets_B3[] = { { AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BLUE_CHU_KEY, 0, 0, offset_gDungeonMaps_TempleOfDroplets_BlueChuKey }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout* const gDungeonLayouts_TempleOfDroplets[] = {gDungeonLayouts_TempleOfDroplets_B1, gDungeonLayouts_TempleOfDroplets_B2, gDungeonLayouts_TempleOfDroplets_B3, };
|
||||
|
||||
const DungeonLayout gDungeonLayouts_PalaceOfWinds_5F[] = { { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GYORG_TORNADO, 2, 0, offset_gDungeonMaps_PalaceOfWinds_GyorgTornado }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BOSS_KEY, 0, 0, offset_gDungeonMaps_PalaceOfWinds_BossKey }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BEFORE_BALL_AND_CHAIN_SOLDIERS, 0, 0, offset_gDungeonMaps_PalaceOfWinds_BeforeBallAndChainSoldiers }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GYORG_BOSS_DOOR, 0, 0, offset_gDungeonMaps_PalaceOfWinds_GyorgBossDoor }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_EAST_CHEST_FROM_GYORG_BOSS_DOOR, 0, 0, offset_gDungeonMaps_PalaceOfWinds_EastChestFromGyorgBossDoor }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_MOBLIN_AND_WIZZROBE_FIGHT, 0, 0, offset_gDungeonMaps_PalaceOfWinds_MoblinAndWizzrobeFight }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_FOUR_BUTTON_STALFOS, 0, 0, offset_gDungeonMaps_PalaceOfWinds_FourButtonStalfos }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_FAN_AND_KEY_TO_BOSS_KEY, 0, 0, offset_gDungeonMaps_PalaceOfWinds_FanAndKeyToBossKey }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BALL_AND_CHAIN_SOLDIERS, 0, 0, offset_gDungeonMaps_PalaceOfWinds_BallAndChainSoldiers }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BOMBAROSSA_PATH, 0, 0, offset_gDungeonMaps_PalaceOfWinds_BombarossaPath }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_HOLE_TO_DARKNUT, 0, 0, offset_gDungeonMaps_PalaceOfWinds_HoleToDarknut }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_TO_BOMBAROSSA_PATH, 0, 0, offset_gDungeonMaps_PalaceOfWinds_ToBombarossaPath }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BOMB_WALL_INSIDE, 0, 0, offset_gDungeonMaps_PalaceOfWinds_BombWallInside }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BOMB_WALL_OUTSIDE, 0, 0, offset_gDungeonMaps_PalaceOfWinds_BombWallOutside }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout gDungeonLayouts_PalaceOfWinds_4F[] = { { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_CLOUD_JUMPS, 0, 0, offset_gDungeonMaps_PalaceOfWinds_CloudJumps }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BLOCK_MAZE_TO_BOSS_DOOR, 0, 0, offset_gDungeonMaps_PalaceOfWinds_BlockMazeToBossDoor }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_CRACKED_FLOOR_LAKITU, 0, 0, offset_gDungeonMaps_PalaceOfWinds_CrackedFloorLakitu }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_HEART_PIECE_BRIDGE, 0, 0, offset_gDungeonMaps_PalaceOfWinds_HeartPieceBridge }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_FAN_BRIDGE, 0, 0, offset_gDungeonMaps_PalaceOfWinds_FanBridge }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_TO_FAN_BRIDGE, 0, 0, offset_gDungeonMaps_PalaceOfWinds_ToFanBridge }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_RED_WARP_HALL, 0, 0, offset_gDungeonMaps_PalaceOfWinds_RedWarpHall }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout gDungeonLayouts_PalaceOfWinds_3F[] = { { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_PLATFORM_CLONE_RIDE, 0, 0, offset_gDungeonMaps_PalaceOfWinds_PlatformCloneRide }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_PIT_CORNER_AFTER_KEY, 0, 0, offset_gDungeonMaps_PalaceOfWinds_PitCornerAfterKey }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_PLATFORM_CROW_RIDE, 0, 0, offset_gDungeonMaps_PalaceOfWinds_PlatformCrowRide }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GRATE_PLATFORM_RIDE, 0, 0, offset_gDungeonMaps_PalaceOfWinds_GratePlatformRide }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_POT_PUSH, 0, 0, offset_gDungeonMaps_PalaceOfWinds_PotPush }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_FLOORMASTER_LEVER, 0, 0, offset_gDungeonMaps_PalaceOfWinds_FloormasterLever }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_MAP, 0, 0, offset_gDungeonMaps_PalaceOfWinds_Map }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_CORNER_TO_MAP, 0, 0, offset_gDungeonMaps_PalaceOfWinds_CornerToMap }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_STAIRS_AFTER_FLOORMASTER, 0, 0, offset_gDungeonMaps_PalaceOfWinds_StairsAfterFloormaster }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_HOLE_TO_KINSTONE_WIZZROBE, 0, 0, offset_gDungeonMaps_PalaceOfWinds_HoleToKinstoneWizzrobe }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_KEY_ARROW_BUTTON, 0, 0, offset_gDungeonMaps_PalaceOfWinds_KeyArrowButton }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout gDungeonLayouts_PalaceOfWinds_2F[] = { { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GRATES_TO_3F, 0, 0, offset_gDungeonMaps_PalaceOfWinds_GratesTo3f }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_SPINY_FIGHT, 0, 0, offset_gDungeonMaps_PalaceOfWinds_SpinyFight }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_PEAHAT_SWITCH, 0, 0, offset_gDungeonMaps_PalaceOfWinds_PeahatSwitch }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_WHIRLWIND_BOMBAROSSA, 0, 0, offset_gDungeonMaps_PalaceOfWinds_WhirlwindBombarossa }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_DOOR_TO_STALFOS_FIREBAR, 0, 0, offset_gDungeonMaps_PalaceOfWinds_DoorToStalfosFirebar }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_STALFOS_FIREBAR_HOLE, 0, 0, offset_gDungeonMaps_PalaceOfWinds_StalfosFirebarHole }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_SHORTCUT_DOOR_BUTTONS, 0, 0, offset_gDungeonMaps_PalaceOfWinds_ShortcutDoorButtons }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_TO_PEAHAT_SWITCH, 0, 0, offset_gDungeonMaps_PalaceOfWinds_ToPeahatSwitch }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_KINSTONE_WIZZROBE_FIGHT, 0, 0, offset_gDungeonMaps_PalaceOfWinds_KinstoneWizzrobeFight }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GIBDO_STAIRS, 0, 0, offset_gDungeonMaps_PalaceOfWinds_GibdoStairs }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_SPIKE_BAR_SMALL_KEY, 0, 0, offset_gDungeonMaps_PalaceOfWinds_SpikeBarSmallKey }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout gDungeonLayouts_PalaceOfWinds_1F[] = { { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_DARKNUT_MINIBOSS, 0, 0, offset_gDungeonMaps_PalaceOfWinds_DarknutMiniboss }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_ROC_CAPE, 0, 0, offset_gDungeonMaps_PalaceOfWinds_RocCape }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_FIRE_BAR_GRATES, 0, 0, offset_gDungeonMaps_PalaceOfWinds_FireBarGrates }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_PLATFORM_RIDE_BOMBAROSSAS, 0, 0, offset_gDungeonMaps_PalaceOfWinds_PlatformRideBombarossas }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BRIDGE_AFTER_DARKNUT, 0, 0, offset_gDungeonMaps_PalaceOfWinds_BridgeAfterDarknut }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BRIDGE_SWITCHES_CLONE_BLOCK, 0, 0, offset_gDungeonMaps_PalaceOfWinds_BridgeSwitchesCloneBlock }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_ENTRANCE_ROOM, 0, 0, offset_gDungeonMaps_PalaceOfWinds_EntranceRoom }, { AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_DARK_COMPASS_HALL, 0, 0, offset_gDungeonMaps_PalaceOfWinds_DarkCompassHall }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout* const gDungeonLayouts_PalaceOfWinds[] = {gDungeonLayouts_PalaceOfWinds_5F, gDungeonLayouts_PalaceOfWinds_4F, gDungeonLayouts_PalaceOfWinds_3F, gDungeonLayouts_PalaceOfWinds_2F, gDungeonLayouts_PalaceOfWinds_1F, };
|
||||
|
||||
|
||||
const DungeonLayout gDungeonLayouts_DarkHyruleCastle_3F[] = { { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_3F_TOP_LEFT_TOWER, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_3fTopLeftTower }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_3F_TOP_RIGHT_TOWER, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_3fTopRightTower }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_3F_BOTTOM_LEFT_TOWER, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_3fBottomLeftTower }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_3F_BOTTOM_RIGHT_TOWER, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_3fBottomRightTower }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_3F_KEATON_HALL_TO_VAATI, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_3fKeatonHallToVaati }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_3F_TRIPLE_DARKNUT, 2, 0, offset_gDungeonMaps_DarkHyruleCastle_3fTripleDarknut }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout gDungeonLayouts_DarkHyruleCastle_2F[] = { { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_LEFT_TOWER, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fTopLeftTower }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_LEFT_CORNER, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fTopLeftCorner }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOSS_KEY, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fBossKey }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BLUE_WARP, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fBlueWarp }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_RIGHT_CORNER_GHINI, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fTopRightCornerGhini }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_RIGHT_CORNER_TORCHES, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fTopRightCornerTorches }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_RIGHT_TOWER, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fTopRightTower }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_LEFT_DARKNUT, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fTopLeftDarknut }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_SPARKS, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fSparks }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_RIGHT_DARKNUTS, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fTopRightDarknuts }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_LEFT, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fLeft }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_RIGHT, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fRight }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_LEFT_DARKNUTS, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fBottomLeftDarknuts }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOSS_DOOR, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fBossDoor }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_RIGHT_DARKNUT, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fBottomRightDarknut }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_LEFT_CORNER_PUZZLE, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fBottomLeftCornerPuzzle }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_ENTRANCE, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fEntrance }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_RIGHT_CORNER, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fBottomRightCorner }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_LEFT_TOWER, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fBottomLeftTower }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_LEFT_GHINI, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fBottomLeftGhini }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_RIGHT_TOWER, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fBottomRightTower }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout gDungeonLayouts_DarkHyruleCastle_1F[] = { { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_ENTRANCE, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_1fEntrance }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_TOP_LEFT_TOWER, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_1fTopLeftTower }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_THRONE_ROOM, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_1fThroneRoom }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_COMPASS, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_1fCompass }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_TOP_RIGHT_TOWER, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_1fTopRightTower }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_BEFORE_THRONE, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_1fBeforeThrone }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_LOOP_TOP_LEFT, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_1fLoopTopLeft }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_LOOP_TOP, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_1fLoopTop }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_LOOP_TOP_RIGHT, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_1fLoopTopRight }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_LOOP_LEFT, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_1fLoopLeft }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_LOOP_RIGHT, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_1fLoopRight }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_LOOP_BOTTOM_LEFT, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_1fLoopBottomLeft }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_LOOP_BOTTOM, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_1fLoopBottom }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_LOOP_BOTTOM_RIGHT, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_1fLoopBottomRight }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_BOTTOM_LEFT_TOWER, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_1fBottomLeftTower }, { AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_BOTTOM_RIGHT_TOWER, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_1fBottomRightTower }, { 0, 0, 0, 0, 0 }, };
|
||||
const DungeonLayout gDungeonLayouts_DarkHyruleCastle_3F[] = {
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_3F_TOP_LEFT_TOWER, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_3fTopLeftTower },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_3F_TOP_RIGHT_TOWER, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_3fTopRightTower },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_3F_BOTTOM_LEFT_TOWER, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_3fBottomLeftTower },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_3F_BOTTOM_RIGHT_TOWER, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_3fBottomRightTower },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_3F_KEATON_HALL_TO_VAATI, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_3fKeatonHallToVaati },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_3F_TRIPLE_DARKNUT, 2, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_3fTripleDarknut },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout gDungeonLayouts_DarkHyruleCastle_2F[] = {
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_LEFT_TOWER, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_2fTopLeftTower },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_LEFT_CORNER, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_2fTopLeftCorner },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOSS_KEY, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_2fBossKey },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BLUE_WARP, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_2fBlueWarp },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_RIGHT_CORNER_GHINI, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_2fTopRightCornerGhini },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_RIGHT_CORNER_TORCHES, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_2fTopRightCornerTorches },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_RIGHT_TOWER, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_2fTopRightTower },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_LEFT_DARKNUT, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_2fTopLeftDarknut },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_SPARKS, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fSparks },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_RIGHT_DARKNUTS, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_2fTopRightDarknuts },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_LEFT, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fLeft },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_RIGHT, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_2fRight },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_LEFT_DARKNUTS, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_2fBottomLeftDarknuts },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOSS_DOOR, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_2fBossDoor },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_RIGHT_DARKNUT, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_2fBottomRightDarknut },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_LEFT_CORNER_PUZZLE, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_2fBottomLeftCornerPuzzle },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_ENTRANCE, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_2fEntrance },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_RIGHT_CORNER, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_2fBottomRightCorner },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_LEFT_TOWER, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_2fBottomLeftTower },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_LEFT_GHINI, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_2fBottomLeftGhini },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_RIGHT_TOWER, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_2fBottomRightTower },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
const DungeonLayout gDungeonLayouts_DarkHyruleCastle_1F[] = {
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_ENTRANCE, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_1fEntrance },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_TOP_LEFT_TOWER, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_1fTopLeftTower },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_THRONE_ROOM, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_1fThroneRoom },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_COMPASS, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_1fCompass },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_TOP_RIGHT_TOWER, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_1fTopRightTower },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_BEFORE_THRONE, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_1fBeforeThrone },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_LOOP_TOP_LEFT, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_1fLoopTopLeft },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_LOOP_TOP, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_1fLoopTop },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_LOOP_TOP_RIGHT, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_1fLoopTopRight },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_LOOP_LEFT, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_1fLoopLeft },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_LOOP_RIGHT, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_1fLoopRight },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_LOOP_BOTTOM_LEFT, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_1fLoopBottomLeft },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_LOOP_BOTTOM, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_1fLoopBottom },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_LOOP_BOTTOM_RIGHT, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_1fLoopBottomRight },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_BOTTOM_LEFT_TOWER, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_1fBottomLeftTower },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_BOTTOM_RIGHT_TOWER, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_1fBottomRightTower },
|
||||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
|
||||
const DungeonLayout gDungeonLayouts_DarkHyruleCastle_B1[] = {
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_ENTRANCE, 0, 0,
|
||||
|
|
@ -1185,8 +1578,13 @@ const DungeonLayout gDungeonLayouts_DarkHyruleCastle_B1[] = {
|
|||
offset_gDungeonMaps_DarkHyruleCastle_B1Keatons },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_TO_PRISON_FIREBAR, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_B1ToPrisonFirebar },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_CANNONS, 0, 0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_B1Cannons, },
|
||||
{
|
||||
AREA_DARK_HYRULE_CASTLE,
|
||||
ROOM_DARK_HYRULE_CASTLE_B1_CANNONS,
|
||||
0,
|
||||
0,
|
||||
offset_gDungeonMaps_DarkHyruleCastle_B1Cannons,
|
||||
},
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_LEFT, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_B1Left },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_RIGHT, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_B1Right },
|
||||
{ AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_MAP, 0, 0, offset_gDungeonMaps_DarkHyruleCastle_B1Map },
|
||||
|
|
@ -1201,12 +1599,20 @@ const DungeonLayout gDungeonLayouts_DarkHyruleCastle_B2[] = {
|
|||
{ 0, 0, 0, 0, 0 },
|
||||
};
|
||||
|
||||
const DungeonLayout* const gDungeonLayouts_DarkHyruleCastle[] = {gDungeonLayouts_DarkHyruleCastle_3F, gDungeonLayouts_DarkHyruleCastle_2F, gDungeonLayouts_DarkHyruleCastle_1F, gDungeonLayouts_DarkHyruleCastle_B1, gDungeonLayouts_DarkHyruleCastle_B2, };
|
||||
|
||||
|
||||
const DungeonLayout* const* const gDungeonLayouts[] = {gDungeonLayouts_None, gDungeonLayouts_DeepwoodShrine, gDungeonLayouts_CaveOfFlames, gDungeonLayouts_FortressOfWinds, gDungeonLayouts_TempleOfDroplets, gDungeonLayouts_PalaceOfWinds, gDungeonLayouts_DarkHyruleCastle, };
|
||||
|
||||
const DungeonLayout* const gDungeonLayouts_DarkHyruleCastle[] = {
|
||||
gDungeonLayouts_DarkHyruleCastle_3F, gDungeonLayouts_DarkHyruleCastle_2F, gDungeonLayouts_DarkHyruleCastle_1F,
|
||||
gDungeonLayouts_DarkHyruleCastle_B1, gDungeonLayouts_DarkHyruleCastle_B2,
|
||||
};
|
||||
|
||||
const DungeonLayout* const* const gDungeonLayouts[] = {
|
||||
gDungeonLayouts_None,
|
||||
gDungeonLayouts_DeepwoodShrine,
|
||||
gDungeonLayouts_CaveOfFlames,
|
||||
gDungeonLayouts_FortressOfWinds,
|
||||
gDungeonLayouts_TempleOfDroplets,
|
||||
gDungeonLayouts_PalaceOfWinds,
|
||||
gDungeonLayouts_DarkHyruleCastle,
|
||||
};
|
||||
|
||||
const DungeonFloorMetadata gDungeonFloorMetadatas[] = {
|
||||
{ 1, 2, 2 }, { 3, 3, 3 }, { 4, 3, 0 }, { 3, 5, 5 }, { 3, 2, 2 }, { 5, 7, 7 }, { 5, 5, 5 }, { 1, 3, 3 },
|
||||
|
|
|
|||
|
|
@ -165,7 +165,6 @@ const AreaHeader gAreaMetadata[] = {
|
|||
{ 0, 0, 0, 0 },
|
||||
};
|
||||
|
||||
|
||||
const OverworldLocation gOverworldLocations[] = {
|
||||
{ 0, 0, 62, 74, 0, TEXT_INDEX(TEXT_WINDCRESTS, 0x0b) },
|
||||
{ 0, 75, 62, 104, 1, TEXT_INDEX(TEXT_WINDCRESTS, 0x0c) },
|
||||
|
|
|
|||
|
|
@ -0,0 +1,247 @@
|
|||
#include "assets/map_offsets.h"
|
||||
#include "map.h"
|
||||
|
||||
/*
|
||||
Tiles for the borders of the cave that are loaded during the transition.
|
||||
When the player goes inside a cave during the start of the enter transition the border metatilemap is loaded and at the
|
||||
end the metatilemap for the cave is loaded. When the player goes out of a cave during the start of the leave transition
|
||||
the border metatilemap is loaded and at the end the metatilemap for the outside is loaded.
|
||||
*/
|
||||
|
||||
const MapDataDefinition gCaveBorder_LakeWoods_enter_start[] = {
|
||||
{ offset_gCaveBorder_LakeWoods_outside, gMapTop.mapData, MAP_COMPRESSED | 7938 },
|
||||
};
|
||||
const MapDataDefinition gCaveBorder_LakeWoods_enter_end[] = {
|
||||
{ MAP_MULTIPLE | offset_gAreaRoomMap_LakeWoodsCave_Main_bottom, gMapBottom.mapData, MAP_COMPRESSED | 7938 },
|
||||
{ offset_gAreaRoomMap_LakeWoodsCave_Main_top, gMapTop.mapData, MAP_COMPRESSED | 7938 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_LakeWoods_enter[] = {
|
||||
gCaveBorder_LakeWoods_enter_start,
|
||||
gCaveBorder_LakeWoods_enter_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_LakeWoods_leave_start[] = {
|
||||
{ offset_gCaveBorder_LakeWoods_inside, gMapTop.mapData, MAP_COMPRESSED | 7938 },
|
||||
};
|
||||
const MapDataDefinition gCaveBorder_LakeWoods_leave_end[] = {
|
||||
{ MAP_MULTIPLE | offset_gAreaRoomMap_MinishWoods_Main_bottom, gMapBottom.mapData, MAP_COMPRESSED | 7938 },
|
||||
{ offset_gAreaRoomMap_MinishWoods_Main_top, gMapTop.mapData, MAP_COMPRESSED | 7938 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_LakeWoods_leave[] = {
|
||||
gCaveBorder_LakeWoods_leave_start,
|
||||
gCaveBorder_LakeWoods_leave_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_HyruleTown_enter_start[] = {
|
||||
{ offset_gCaveBorder_HyruleTown_outside, gMapTop.mapData, MAP_COMPRESSED | 7560 },
|
||||
};
|
||||
const MapDataDefinition gCaveBorder_HyruleTown_enter_end[] = {
|
||||
{ MAP_MULTIPLE | offset_gAreaRoomMap_HyruleDigCaves_Town_bottom, gMapBottom.mapData, MAP_COMPRESSED | 7560 },
|
||||
{ offset_gAreaRoomMap_HyruleDigCaves_Town_top, gMapTop.mapData, MAP_COMPRESSED | 7560 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_HyruleTown_enter[] = {
|
||||
gCaveBorder_HyruleTown_enter_start,
|
||||
gCaveBorder_HyruleTown_enter_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_HyruleTown_leave_start[] = {
|
||||
{ offset_gCaveBorder_HyruleTown_inside, gMapTop.mapData, MAP_COMPRESSED | 7560 },
|
||||
};
|
||||
const MapDataDefinition gCaveBorder_HyruleTown_leave_end[] = {
|
||||
{ MAP_MULTIPLE | offset_gAreaRoomMap_HyruleTown_Main_bottom, gMapBottom.mapData, MAP_COMPRESSED | 7560 },
|
||||
{ offset_gAreaRoomMap_HyruleTown_Main_top, gMapTop.mapData, MAP_COMPRESSED | 7560 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_HyruleTown_leave[] = {
|
||||
gCaveBorder_HyruleTown_leave_start,
|
||||
gCaveBorder_HyruleTown_leave_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_EasternHills_enter_start[] = {
|
||||
{ offset_gCaveBorder_EasternHills_outside, gMapTop.mapData, MAP_COMPRESSED | 2040 },
|
||||
};
|
||||
const MapDataDefinition gCaveBorder_EasternHills_enter_end[] = {
|
||||
{ MAP_MULTIPLE | offset_gAreaRoomMap_DigCaves_EasternHills_bottom, gMapBottom.mapData, MAP_COMPRESSED | 2040 },
|
||||
{ offset_gAreaRoomMap_DigCaves_EasternHills_top, gMapTop.mapData, MAP_COMPRESSED | 2040 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_EasternHills_enter[] = {
|
||||
gCaveBorder_EasternHills_enter_start,
|
||||
gCaveBorder_EasternHills_enter_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_EasternHills_leave_start[] = {
|
||||
{ offset_gCaveBorder_EasternHills_inside, gMapTop.mapData, MAP_COMPRESSED | 2040 },
|
||||
};
|
||||
const MapDataDefinition gCaveBorder_EasternHills_leave_end[] = {
|
||||
{ MAP_MULTIPLE | offset_gAreaRoomMap_HyruleField_EasternHillsNorth_bottom, gMapBottom.mapData,
|
||||
MAP_COMPRESSED | 2040 },
|
||||
{ offset_gAreaRoomMap_HyruleField_EasternHillsNorth_top, gMapTop.mapData, MAP_COMPRESSED | 2040 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_EasternHills_leave[] = {
|
||||
gCaveBorder_EasternHills_leave_start,
|
||||
gCaveBorder_EasternHills_leave_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_Crenel_enter_start[] = {
|
||||
{ offset_gCaveBorder_Crenel_outside, gMapTop.mapData, MAP_COMPRESSED | 1824 },
|
||||
};
|
||||
const MapDataDefinition gCaveBorder_Crenel_enter_end[] = {
|
||||
{ MAP_MULTIPLE | offset_gAreaRoomMap_CrenelDigCave_0_bottom, gMapBottom.mapData, MAP_COMPRESSED | 1984 },
|
||||
{ offset_gAreaRoomMap_CrenelDigCave_0_top, gMapTop.mapData, MAP_COMPRESSED | 1984 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_Crenel_enter[] = {
|
||||
gCaveBorder_Crenel_enter_start,
|
||||
gCaveBorder_Crenel_enter_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_Crenel_leave_start[] = {
|
||||
{ offset_gCaveBorder_Crenel_inside, gMapTop.mapData, MAP_COMPRESSED | 1984 },
|
||||
};
|
||||
const MapDataDefinition gCaveBorder_Crenel_leave_end[] = {
|
||||
{ MAP_MULTIPLE | offset_gAreaRoomMap_MtCrenel_WallClimb_bottom, gMapBottom.mapData, MAP_COMPRESSED | 1824 },
|
||||
{ offset_gAreaRoomMap_MtCrenel_WallClimb_top, gMapTop.mapData, MAP_COMPRESSED | 1824 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_Crenel_leave[] = {
|
||||
gCaveBorder_Crenel_leave_start,
|
||||
gCaveBorder_Crenel_leave_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_VeilFalls_enter_start[] = {
|
||||
{ offset_gCaveBorder_VeilFalls_outside, gMapTop.mapData, MAP_COMPRESSED | 3780 },
|
||||
};
|
||||
const MapDataDefinition gCaveBorder_VeilFalls_enter_end[] = {
|
||||
{ MAP_MULTIPLE | offset_gAreaRoomMap_VeilFallsDigCave_0_bottom, gMapBottom.mapData, MAP_COMPRESSED | 3780 },
|
||||
{ offset_gAreaRoomMap_VeilFallsDigCave_0_top, gMapTop.mapData, MAP_COMPRESSED | 3780 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_VeilFalls_enter[] = {
|
||||
gCaveBorder_VeilFalls_enter_start,
|
||||
gCaveBorder_VeilFalls_enter_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_VeilFalls_leave_start[] = {
|
||||
{ offset_gCaveBorder_VeilFalls_inside, gMapTop.mapData, MAP_COMPRESSED | 3780 },
|
||||
};
|
||||
const MapDataDefinition gCaveBorder_VeilFalls_leave_end[] = {
|
||||
{ MAP_MULTIPLE | offset_gAreaRoomMap_VeilFalls_Main_bottom, gMapBottom.mapData, MAP_COMPRESSED | 3780 },
|
||||
{ offset_gAreaRoomMap_VeilFalls_Main_top, gMapTop.mapData, MAP_COMPRESSED | 3780 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_VeilFalls_leave[] = {
|
||||
gCaveBorder_VeilFalls_leave_start,
|
||||
gCaveBorder_VeilFalls_leave_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_TrilbyHighlands_enter_start[] = {
|
||||
{ offset_gCaveBorder_TrilbyHighlands_outside, gMapTop.mapData, MAP_COMPRESSED | 3600 },
|
||||
};
|
||||
const MapDataDefinition gCaveBorder_TrilbyHighlands_enter_end[] = {
|
||||
{ MAP_MULTIPLE | offset_gAreaRoomMap_DigCaves_TrilbyHighlands_bottom, gMapBottom.mapData, MAP_COMPRESSED | 3600 },
|
||||
{ offset_gAreaRoomMap_DigCaves_TrilbyHighlands_top, gMapTop.mapData, MAP_COMPRESSED | 3600 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_TrilbyHighlands_enter[] = {
|
||||
gCaveBorder_TrilbyHighlands_enter_start,
|
||||
gCaveBorder_TrilbyHighlands_enter_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_TrilbyHighlands_leave_start[] = {
|
||||
{ offset_gCaveBorder_TrilbyHighlands_inside, gMapTop.mapData, MAP_COMPRESSED | 3600 },
|
||||
};
|
||||
const MapDataDefinition gCaveBorder_TrilbyHighlands_leave_end[] = {
|
||||
{ MAP_MULTIPLE | offset_gAreaRoomMap_HyruleField_TrilbyHighlands_bottom, gMapBottom.mapData,
|
||||
MAP_COMPRESSED | 3600 },
|
||||
{ offset_gAreaRoomMap_HyruleField_TrilbyHighlands_top, gMapTop.mapData, MAP_COMPRESSED | 3600 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_TrilbyHighlands_leave[] = {
|
||||
gCaveBorder_TrilbyHighlands_leave_start,
|
||||
gCaveBorder_TrilbyHighlands_leave_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_CastorWilds_enter_start[] = {
|
||||
{ offset_gCaveBorder_CastorWilds_outside, gMapTop.mapData, MAP_COMPRESSED | 7560 },
|
||||
};
|
||||
const MapDataDefinition gCaveBorder_CastorWilds_enter_end[] = {
|
||||
{ MAP_MULTIPLE | offset_gAreaRoomMap_CastorWildsDigCave_0_bottom, gMapBottom.mapData, MAP_COMPRESSED | 7560 },
|
||||
{ offset_gAreaRoomMap_CastorWildsDigCave_0_top, gMapTop.mapData, MAP_COMPRESSED | 7560 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_CastorWilds_enter[] = {
|
||||
gCaveBorder_CastorWilds_enter_start,
|
||||
gCaveBorder_CastorWilds_enter_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_CastorWilds_leave_start[] = {
|
||||
{ offset_gCaveBorder_CastorWilds_inside, gMapTop.mapData, MAP_COMPRESSED | 7560 },
|
||||
};
|
||||
const MapDataDefinition gCaveBorder_CastorWilds_leave_end[] = {
|
||||
{ MAP_MULTIPLE | offset_gAreaRoomMap_CastorWilds_Main_bottom, gMapBottom.mapData, MAP_COMPRESSED | 7560 },
|
||||
{ offset_gAreaRoomMap_CastorWilds_Main_top, gMapTop.mapData, MAP_COMPRESSED | 7560 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_CastorWilds_leave[] = {
|
||||
gCaveBorder_CastorWilds_leave_start,
|
||||
gCaveBorder_CastorWilds_leave_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_LakeHyliaNorth_enter_start[] = {
|
||||
{ offset_gCaveBorder_LakeHyliaNorth_outside, gMapTop.mapData, MAP_COMPRESSED | 5760 },
|
||||
};
|
||||
const MapDataDefinition gCaveBorder_LakeHyliaNorth_enter_end[] = {
|
||||
{ MAP_MULTIPLE | offset_gAreaRoomMap_HyliaDigCaves_1_bottom, gMapBottom.mapData, MAP_COMPRESSED | 3402 },
|
||||
{ offset_gAreaRoomMap_HyliaDigCaves_1_top, gMapTop.mapData, MAP_COMPRESSED | 3402 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_LakeHyliaNorth_enter[] = {
|
||||
gCaveBorder_LakeHyliaNorth_enter_start,
|
||||
gCaveBorder_LakeHyliaNorth_enter_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_LakeHyliaNorth_leave_start[] = {
|
||||
{ offset_gCaveBorder_LakeHyliaNorth_inside, gMapTop.mapData, MAP_COMPRESSED | 3402 },
|
||||
};
|
||||
const MapDataDefinition gCaveBorder_LakeHyliaNorth_leave_end[] = {
|
||||
{ MAP_MULTIPLE | offset_gAreaRoomMap_LakeHylia_Main_bottom, gMapBottom.mapData, MAP_COMPRESSED | 5760 },
|
||||
{ offset_gAreaRoomMap_LakeHylia_Main_top, gMapTop.mapData, MAP_COMPRESSED | 5760 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_LakeHyliaNorth_leave[] = {
|
||||
gCaveBorder_LakeHyliaNorth_leave_start,
|
||||
gCaveBorder_LakeHyliaNorth_leave_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_LonLonRanch_enter_start[] = {
|
||||
{ offset_gCaveBorder_LonLonRanch_outside, gMapTop.mapData, MAP_COMPRESSED | 7938 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_LonLonRanch_enter[] = {
|
||||
gCaveBorder_LonLonRanch_enter_start,
|
||||
gCaveBorder_LakeHyliaNorth_enter_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_LonLonRanch_leave_end[] = {
|
||||
{ MAP_MULTIPLE | offset_gAreaRoomMap_HyruleField_LonLonRanch_bottom, gMapBottom.mapData, MAP_COMPRESSED | 5400 },
|
||||
{ offset_gAreaRoomMap_HyruleField_LonLonRanch_top, gMapTop.mapData, MAP_COMPRESSED | 5400 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_LonLonRanch_leave[] = {
|
||||
gCaveBorder_LakeHyliaNorth_leave_start,
|
||||
gCaveBorder_LonLonRanch_leave_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_LakeHyliaCenter_enter_end[] = {
|
||||
{ MAP_MULTIPLE | offset_gAreaRoomMap_HyliaDigCaves_0_bottom, gMapBottom.mapData, MAP_COMPRESSED | 544 },
|
||||
{ offset_gAreaRoomMap_HyliaDigCaves_0_top, gMapTop.mapData, MAP_COMPRESSED | 544 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_LakeHyliaCenter_enter[] = {
|
||||
gCaveBorder_LakeHyliaNorth_enter_start,
|
||||
gCaveBorder_LakeHyliaCenter_enter_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition gCaveBorder_LakeHyliaCenter_leave_start[] = {
|
||||
{ offset_gCaveBorder_LakeHyliaCenter_inside, gMapTop.mapData, MAP_COMPRESSED | 544 },
|
||||
};
|
||||
const MapDataDefinition* const gCaveBorder_LakeHyliaCenter_leave[] = {
|
||||
gCaveBorder_LakeHyliaCenter_leave_start,
|
||||
gCaveBorder_LakeHyliaNorth_leave_end,
|
||||
};
|
||||
|
||||
const MapDataDefinition* const* const gCaveBorderMapData[] = {
|
||||
gCaveBorder_LakeWoods_enter, gCaveBorder_LakeWoods_leave, gCaveBorder_HyruleTown_enter,
|
||||
gCaveBorder_HyruleTown_leave, gCaveBorder_EasternHills_enter, gCaveBorder_EasternHills_leave,
|
||||
gCaveBorder_Crenel_enter, gCaveBorder_Crenel_leave, gCaveBorder_VeilFalls_enter,
|
||||
gCaveBorder_VeilFalls_leave, gCaveBorder_TrilbyHighlands_enter, gCaveBorder_TrilbyHighlands_leave,
|
||||
gCaveBorder_CastorWilds_enter, gCaveBorder_CastorWilds_leave, gCaveBorder_LakeHyliaNorth_enter,
|
||||
gCaveBorder_LakeHyliaNorth_leave, gCaveBorder_LonLonRanch_enter, gCaveBorder_LonLonRanch_leave,
|
||||
gCaveBorder_LakeHyliaCenter_enter, gCaveBorder_LakeHyliaCenter_leave,
|
||||
};
|
||||
|
|
@ -46,9 +46,9 @@ const Transition gExitList_MinishWoods_Main[] = {
|
|||
{ WARP_TYPE_AREA, 0x00, 0x0088, 0x0218, 0x0218, 0x0118, 0x00, AREA_MINISH_CAVES,
|
||||
ROOM_MINISH_CAVES_MINISH_WOODS_SOUTHWEST, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
||||
{ WARP_TYPE_BORDER, 0x00, 0x0000, 0x0000, 0x01d8, 0x0fff, 0x40, AREA_HYRULE_FIELD,
|
||||
ROOM_HYRULE_FIELD_EASTERN_HILLLS_NORTH, 1, TRANSITION_TYPE_NORMAL, 0x06, 0x00, 0x00, 0x00, 0x00 },
|
||||
ROOM_HYRULE_FIELD_EASTERN_HILLS_NORTH, 1, TRANSITION_TYPE_NORMAL, 0x06, 0x00, 0x00, 0x00, 0x00 },
|
||||
{ WARP_TYPE_BORDER, 0x00, 0x0000, 0x0000, 0x01d8, 0x00a0, 0x80, AREA_HYRULE_FIELD,
|
||||
ROOM_HYRULE_FIELD_EASTERN_HILLLS_SOUTH, 1, TRANSITION_TYPE_NORMAL, 0x06, 0x00, 0x00, 0x00, 0x00 },
|
||||
ROOM_HYRULE_FIELD_EASTERN_HILLS_SOUTH, 1, TRANSITION_TYPE_NORMAL, 0x06, 0x00, 0x00, 0x00, 0x00 },
|
||||
{ WARP_TYPE_BORDER, 0x00, 0x0000, 0x0000, 0x0fff, 0x03b8, 0x01, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1,
|
||||
TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
||||
{ WARP_TYPE_BORDER, 0x00, 0x0000, 0x0000, 0x0fff, 0x03ac, 0x02, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1,
|
||||
|
|
@ -446,9 +446,9 @@ const Transition gExitList_HyruleField_WesternWoodsCenter[] = {
|
|||
const Transition* const gExitLists_HyruleField[] = {
|
||||
[ROOM_HYRULE_FIELD_WESTERN_WOODS_SOUTH] = gExitList_HyruleField_WesternWoodSouth,
|
||||
[ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD] = gExitList_HyruleField_SouthHyruleField,
|
||||
[ROOM_HYRULE_FIELD_EASTERN_HILLLS_SOUTH] = gExitList_HyruleField_EasternHillsSouth,
|
||||
[ROOM_HYRULE_FIELD_EASTERN_HILLLS_CENTER] = gExitList_HyruleField_EasternHillsCenter,
|
||||
[ROOM_HYRULE_FIELD_EASTERN_HILLLS_NORTH] = gExitList_HyruleField_EasternHillsNorth,
|
||||
[ROOM_HYRULE_FIELD_EASTERN_HILLS_SOUTH] = gExitList_HyruleField_EasternHillsSouth,
|
||||
[ROOM_HYRULE_FIELD_EASTERN_HILLS_CENTER] = gExitList_HyruleField_EasternHillsCenter,
|
||||
[ROOM_HYRULE_FIELD_EASTERN_HILLS_NORTH] = gExitList_HyruleField_EasternHillsNorth,
|
||||
[ROOM_HYRULE_FIELD_LON_LON_RANCH] = gExitList_HyruleField_LonLonRanch,
|
||||
[ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD] = gExitList_HyruleField_NorthHyruleField,
|
||||
[ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS] = gExitList_HyruleField_TrilbyHighlands,
|
||||
|
|
@ -628,7 +628,7 @@ const Transition gExitList_Beanstalks_RuinsClimb[] = {
|
|||
const Transition gExitList_Beanstalks_EasternHillsClimb[] = {
|
||||
{ WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x58, 0x68, 0x3, AREA_BEANSTALKS, ROOM_BEANSTALKS_EASTERN_HILLS, 1,
|
||||
TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x48, 0x18, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLLS_CENTER,
|
||||
{ WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x48, 0x18, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_CENTER,
|
||||
1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
TransitionListEnd,
|
||||
};
|
||||
|
|
@ -923,7 +923,7 @@ const Transition gExitList_MinishHouseInteriors_Librari[] = {
|
|||
TransitionListEnd,
|
||||
};
|
||||
const Transition gExitList_MinishHouseInteriors_HyruleFieldExit[] = {
|
||||
{ WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x38, 0x35, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLLS_SOUTH,
|
||||
{ WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x38, 0x35, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_SOUTH,
|
||||
1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
|
||||
TransitionListEnd,
|
||||
};
|
||||
|
|
@ -1108,7 +1108,7 @@ const Transition gExitList_HouseInteriors2_DrLeft[] = {
|
|||
TransitionListEnd,
|
||||
};
|
||||
const Transition gExitList_HouseInteriors2_NULL1[] = {
|
||||
{ WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x40, 0x5c, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLLS_NORTH,
|
||||
{ WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x40, 0x5c, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_NORTH,
|
||||
1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
|
||||
TransitionListEnd,
|
||||
};
|
||||
|
|
@ -1244,7 +1244,7 @@ const Transition gExitList_HouseInteriors4_RanchHouseEast[] = {
|
|||
TransitionListEnd,
|
||||
};
|
||||
const Transition gExitList_HouseInteriors4_FarmHouse[] = {
|
||||
{ WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x40, 0x5c, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLLS_NORTH,
|
||||
{ WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x40, 0x5c, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_NORTH,
|
||||
1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
|
||||
TransitionListEnd,
|
||||
};
|
||||
|
|
@ -2273,7 +2273,7 @@ const Transition gExitList_Caves_TrilbyMittsFairyFountain[] = {
|
|||
TransitionListEnd,
|
||||
};
|
||||
const Transition gExitList_Caves_HillsKeeseChest[] = {
|
||||
{ WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xa8, 0xa8, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLLS_CENTER,
|
||||
{ WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xa8, 0xa8, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_CENTER,
|
||||
1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
|
||||
TransitionListEnd,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ void sub_080A2F8C(void);
|
|||
extern u8 gUnk_02000004;
|
||||
void sub_080A3198(u32, u32);
|
||||
|
||||
extern u8 gUnk_02017760[];
|
||||
extern u8 gUnk_08A05751[];
|
||||
|
||||
// sprite_table
|
||||
|
|
@ -59,8 +58,8 @@ void sub_080A2E40(void) {
|
|||
LoadGfxGroups();
|
||||
LoadPaletteGroup(0xb5);
|
||||
LoadGfxGroup(0x56);
|
||||
MemCopy(&gUnk_089FD1B4, &gUnk_02017760[0], 0x100);
|
||||
MemCopy(&gUnk_089FD1B4, &gUnk_02017760[0x200], 0x100);
|
||||
MemCopy(&gUnk_089FD1B4, gPaletteBuffer + 96, 0x100);
|
||||
MemCopy(&gUnk_089FD1B4, gPaletteBuffer + 352, 0x100);
|
||||
MemCopy(&gUnk_089FD2F4, (void*)0x6000000, 0x8000);
|
||||
MemCopy(&gUnk_089FD2F4, (void*)0x6010000, 0x8000);
|
||||
MemCopy(&gUnk_08A05751, &gBG1Buffer, 0x800);
|
||||
|
|
|
|||
|
|
@ -171,7 +171,7 @@ void AcroBandit_Type0Action1(Entity* this) {
|
|||
if (this->timer != 0) {
|
||||
this->timer--;
|
||||
} else {
|
||||
if (sub_08049FDC(this, 1)) {
|
||||
if (sub_08049FDC(this, 1) != 0) {
|
||||
rand = Random();
|
||||
x = this->field_0x74.HWORD + ((s32)rand % 5) * 0x10 - 0x20;
|
||||
y = this->field_0x76.HWORD + ((s32)(rand >> 4) % 5) * 0x10 - 0x20;
|
||||
|
|
|
|||
|
|
@ -200,7 +200,7 @@ void sub_0802AAC0(Entity* this) {
|
|||
this->child = NULL;
|
||||
#ifdef EU
|
||||
} else if (ent->timer == 0) {
|
||||
if (sub_080B1B44(COORD_TO_TILE(this), 1) == 0) {
|
||||
if (GetCollisionData(COORD_TO_TILE(this), 1) == 0) {
|
||||
if (EntityInRectRadius(this, &gPlayerEntity, 0x10, 0x10) && ent->subtimer <= 0x50) {
|
||||
this->field_0x80.HALF.HI = 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -245,7 +245,7 @@ void sub_080387F0(CloudPiranhaEntity* this) {
|
|||
const s8* ptr;
|
||||
|
||||
if ((super->action != 4) && (this->unk_82 == 0)) {
|
||||
iVar4 = sub_080B1B44(COORD_TO_TILE(super), super->collisionLayer);
|
||||
iVar4 = GetCollisionData(COORD_TO_TILE(super), super->collisionLayer);
|
||||
if ((iVar4 == 0xf) || (iVar4 == 0x2a)) {
|
||||
this->unk_82 = 0x20;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -294,7 +294,7 @@ void Enemy64_Action3(Enemy64Entity* this) {
|
|||
|
||||
void Enemy64_Action3_SubAction0(Enemy64Entity* this) {
|
||||
u32 tmp = CalculateDirectionFromOffsets(gRoomControls.origin_x + 0xa8 - super->x.HALF.HI,
|
||||
gRoomControls.origin_y + 0x80 - super->y.HALF.HI);
|
||||
gRoomControls.origin_y + 0x80 - super->y.HALF.HI);
|
||||
if (tmp != super->direction) {
|
||||
if (((tmp - super->direction) & 0x80) != 0) {
|
||||
super->direction--;
|
||||
|
|
@ -494,7 +494,7 @@ void sub_080499F0(Enemy64Entity* this) {
|
|||
if (EntityWithinDistance(&gPlayerEntity, super->x.HALF.HI, super->y.HALF.HI, 0x24) &&
|
||||
((this->unk_7c & 2) == 0)) {
|
||||
tmp = CalculateDirectionFromOffsets((s32)gPlayerEntity.x.HALF.HI - super->x.HALF.HI,
|
||||
(s32)gPlayerEntity.y.HALF.HI - super->y.HALF.HI);
|
||||
(s32)gPlayerEntity.y.HALF.HI - super->y.HALF.HI);
|
||||
gPlayerEntity.x.WORD = super->x.WORD + gSineTable[tmp] * 0x2400;
|
||||
gPlayerEntity.y.WORD = super->y.WORD + gSineTable[tmp + 0x40] * -0x2400;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
#include "entity.h"
|
||||
#include "functions.h"
|
||||
#include "sound.h"
|
||||
#include "assets/map_offsets.h"
|
||||
|
||||
extern u8 gEntCount;
|
||||
extern u8 gMapDataTopSpecial[];
|
||||
|
|
@ -29,10 +30,10 @@ void sub_080467DC(GyorgFemaleEntity*);
|
|||
extern u8 gUpdateVisibleTiles;
|
||||
extern u8 gUnk_080B3E80[];
|
||||
|
||||
extern const u8 gUnk_080D1A94[];
|
||||
extern const u8 gUnk_080D1AAC[];
|
||||
extern const u8 gUnk_080D1AC4[];
|
||||
extern const u8 gUnk_080D1ADC[];
|
||||
extern const MapDataDefinition gGyorgMapping0[];
|
||||
extern const MapDataDefinition gGyorgMapping1[];
|
||||
extern const MapDataDefinition gGyorgMapping2[];
|
||||
extern const MapDataDefinition gGyorgMapping3[];
|
||||
|
||||
void GyorgFemale_Setup(GyorgFemaleEntity* this);
|
||||
void GyorgFemale_Action1(GyorgFemaleEntity* this);
|
||||
|
|
@ -219,16 +220,16 @@ void sub_08046498(GyorgFemaleEntity* this) {
|
|||
#endif
|
||||
|
||||
void sub_080464C0(GyorgFemaleEntity* this) {
|
||||
static const void* const gUnk_080D1A74[] = {
|
||||
gUnk_080D1A94,
|
||||
gUnk_080D1AAC,
|
||||
gUnk_080D1AC4,
|
||||
gUnk_080D1ADC,
|
||||
static const MapDataDefinition* const gyorgMappings[] = {
|
||||
gGyorgMapping0,
|
||||
gGyorgMapping1,
|
||||
gGyorgMapping2,
|
||||
gGyorgMapping3,
|
||||
};
|
||||
s32 i;
|
||||
u8* src;
|
||||
u8* dst;
|
||||
LoadMapData((MapDataDefinition*)gUnk_080D1A74[super->animationState >> 6]);
|
||||
LoadMapData((MapDataDefinition*)gyorgMappings[super->animationState >> 6]);
|
||||
sub_08046518();
|
||||
for (i = 0x20, src = ((u8*)&gMapDataBottomSpecial), dst = ((u8*)&gMapDataBottomSpecial) + 0x3260; i != 0; i--) {
|
||||
MemCopy(src, dst, 0x40);
|
||||
|
|
@ -284,81 +285,24 @@ void sub_0804660C(GyorgFemaleEntity* this, u32 unk1) {
|
|||
super->y.HALF.HI = p[1] + gRoomControls.origin_y;
|
||||
}
|
||||
|
||||
// todo: correct type
|
||||
const u8 gUnk_080D1A94[] = {
|
||||
#if defined(JP) || defined(DEMO_JP)
|
||||
0x7C,
|
||||
#elif defined(EU)
|
||||
0x50,
|
||||
#else
|
||||
0x08,
|
||||
#endif
|
||||
0x41, 0x22, 0x80, 0xE0, 0x9E, 0x01, 0x02, 0x00, 0x08, 0x00, 0x80,
|
||||
#if defined(JP) || defined(DEMO_JP)
|
||||
0x2C, 0xD3,
|
||||
#elif defined(EU)
|
||||
0x00, 0xD3,
|
||||
#else
|
||||
0xB8, 0xD2,
|
||||
#endif
|
||||
0x22, 0x00, 0x54, 0xB6, 0x00, 0x02, 0x80, 0x1F, 0x00, 0x80,
|
||||
const MapDataDefinition gGyorgMapping0[] = {
|
||||
{ MAP_MULTIPLE | offset_gyorgMapping_0_bottom, gMapDataBottomSpecial, MAP_COMPRESSED | 2048 },
|
||||
{ offset_gAreaRoomMap_PalaceOfWindsBoss_0_top, gMapTop.mapData, MAP_COMPRESSED | 8064 },
|
||||
};
|
||||
|
||||
const u8 gUnk_080D1AAC[] = {
|
||||
#if defined(JP) || defined(DEMO_JP)
|
||||
0xFC,
|
||||
#elif defined(EU)
|
||||
0xD0,
|
||||
#else
|
||||
0x88,
|
||||
#endif
|
||||
0x3D, 0x22, 0x80, 0xE0, 0x9E, 0x01, 0x02, 0x00, 0x08, 0x00, 0x80,
|
||||
#if defined(JP) || defined(DEMO_JP)
|
||||
0xF8,
|
||||
#elif defined(EU)
|
||||
0xCC,
|
||||
#else
|
||||
0x84,
|
||||
#endif
|
||||
0xD6, 0x22, 0x00, 0x54, 0xB6, 0x00, 0x02, 0x80, 0x1F, 0x00, 0x80,
|
||||
const MapDataDefinition gGyorgMapping1[] = {
|
||||
{ MAP_MULTIPLE | offset_gyorgMapping_1_bottom, gMapDataBottomSpecial, MAP_COMPRESSED | 2048 },
|
||||
{ offset_gyorgRoomMap_1_top, gMapTop.mapData, MAP_COMPRESSED | 8064 },
|
||||
};
|
||||
|
||||
const u8 gUnk_080D1AC4[] = {
|
||||
#if defined(JP) || defined(DEMO_JP)
|
||||
0xE4,
|
||||
#elif defined(EU)
|
||||
0xB8,
|
||||
#else
|
||||
0x70,
|
||||
#endif
|
||||
0x36, 0x22, 0x80, 0xE0, 0x9E, 0x01, 0x02, 0x00, 0x08, 0x00, 0x80,
|
||||
#if defined(JP) || defined(DEMO_JP)
|
||||
0xC0,
|
||||
#elif defined(EU)
|
||||
0x94,
|
||||
#else
|
||||
0x4C,
|
||||
#endif
|
||||
0xDA, 0x22, 0x00, 0x54, 0xB6, 0x00, 0x02, 0x80, 0x1F, 0x00, 0x80,
|
||||
const MapDataDefinition gGyorgMapping2[] = {
|
||||
{ MAP_MULTIPLE | offset_gyorgMapping_2_bottom, gMapDataBottomSpecial, MAP_COMPRESSED | 2048 },
|
||||
{ offset_gyorgRoomMap_2_top, gMapTop.mapData, MAP_COMPRESSED | 8064 },
|
||||
};
|
||||
|
||||
const u8 gUnk_080D1ADC[] = {
|
||||
#if defined(JP) || defined(DEMO_JP)
|
||||
0x78,
|
||||
#elif defined(EU)
|
||||
0x4C,
|
||||
#else
|
||||
0x04,
|
||||
#endif
|
||||
0x3A, 0x22, 0x80, 0xE0, 0x9E, 0x01, 0x02, 0x00, 0x08, 0x00, 0x80,
|
||||
#if defined(JP) || defined(DEMO_JP)
|
||||
0x88,
|
||||
#elif defined(EU)
|
||||
0x5C,
|
||||
#else
|
||||
0x14,
|
||||
#endif
|
||||
0xDE, 0x22, 0x00, 0x54, 0xB6, 0x00, 0x02, 0x80, 0x1F, 0x00, 0x80,
|
||||
const MapDataDefinition gGyorgMapping3[] = {
|
||||
{ MAP_MULTIPLE | offset_gyorgMapping_3_bottom, gMapDataBottomSpecial, MAP_COMPRESSED | 2048 },
|
||||
{ offset_gyorgRoomMap_3_top, gMapTop.mapData, MAP_COMPRESSED | 8064 },
|
||||
};
|
||||
|
||||
void GyorgFemale_SpawnChildren(GyorgFemaleEntity* this, bool32 unlimit_tmp) {
|
||||
|
|
|
|||
|
|
@ -286,7 +286,8 @@ void sub_08046B8C(GyorgMaleEntity* this) {
|
|||
this->unk_82 = gRoomControls.origin_y + 0x210;
|
||||
sub_08047D88(this);
|
||||
} else {
|
||||
super->direction = CalculateDirectionFromOffsets(this->unk_80 - super->x.HALF.HI, this->unk_82 - super->y.HALF.HI);
|
||||
super->direction =
|
||||
CalculateDirectionFromOffsets(this->unk_80 - super->x.HALF.HI, this->unk_82 - super->y.HALF.HI);
|
||||
sub_08047DF0(this, ((0x100 - super->direction) & 0xFF) << 8);
|
||||
}
|
||||
}
|
||||
|
|
@ -314,7 +315,8 @@ void sub_08046C88(GyorgMaleEntity* this) {
|
|||
sub_08048178(this, sub_08048158(this->unk_70));
|
||||
sub_08047D88(this);
|
||||
} else {
|
||||
super->direction = CalculateDirectionFromOffsets(this->unk_80 - super->x.HALF.HI, this->unk_82 - super->y.HALF.HI);
|
||||
super->direction =
|
||||
CalculateDirectionFromOffsets(this->unk_80 - super->x.HALF.HI, this->unk_82 - super->y.HALF.HI);
|
||||
sub_08047DF0(this, ((0x100 - super->direction) & 0xFF) << 8);
|
||||
}
|
||||
}
|
||||
|
|
@ -372,7 +374,8 @@ void sub_08046E0C(GyorgMaleEntity* this) {
|
|||
this->unk_76 = super->direction << 8;
|
||||
sub_08047D88(this);
|
||||
} else {
|
||||
super->direction = CalculateDirectionFromOffsets(this->unk_80 - super->x.HALF.HI, this->unk_82 - super->y.HALF.HI);
|
||||
super->direction =
|
||||
CalculateDirectionFromOffsets(this->unk_80 - super->x.HALF.HI, this->unk_82 - super->y.HALF.HI);
|
||||
sub_08047DF0(this, ((0x100 - super->direction) & 0xFF) << 8);
|
||||
}
|
||||
}
|
||||
|
|
@ -1069,7 +1072,8 @@ void sub_08047EA4(GyorgMaleEntity* this, u32 unk1) {
|
|||
return;
|
||||
if (this->unk_7c & 1) {
|
||||
tmp2 = sub_08047F68(this) << 8;
|
||||
dir = CalculateDirectionFromOffsets(gPlayerEntity.x.HALF.HI - super->x.HALF.HI, gPlayerEntity.y.HALF.HI - super->y.HALF.HI);
|
||||
dir = CalculateDirectionFromOffsets(gPlayerEntity.x.HALF.HI - super->x.HALF.HI,
|
||||
gPlayerEntity.y.HALF.HI - super->y.HALF.HI);
|
||||
tmp = dir - (tmp / 256);
|
||||
tmp &= 0xFF;
|
||||
gPlayerEntity.x.WORD += (gSineTable[tmp] - gSineTable[dir]) * tmp2;
|
||||
|
|
@ -1152,7 +1156,7 @@ void sub_08048004(GyorgMaleEntity* this) {
|
|||
if (EntityWithinDistance(&gPlayerEntity, super->x.HALF.HI, super->y.HALF.HI, 0x24)) {
|
||||
if (!(this->unk_7c & 2)) {
|
||||
u32 tmp = CalculateDirectionFromOffsets(gPlayerEntity.x.HALF.HI - super->x.HALF.HI,
|
||||
gPlayerEntity.y.HALF.HI - super->y.HALF.HI);
|
||||
gPlayerEntity.y.HALF.HI - super->y.HALF.HI);
|
||||
gPlayerEntity.x.WORD = super->x.WORD + (gSineTable[tmp] * 9216);
|
||||
gPlayerEntity.y.WORD = super->y.WORD - (gSineTable[tmp + 0x40] * 9216);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@
|
|||
#include "enemy.h"
|
||||
#include "physics.h"
|
||||
|
||||
extern u32 sub_080B1B18(s32, s32, u32);
|
||||
extern u32 sub_080B1AB4(s32, s32, u32);
|
||||
|
||||
extern Entity* gUnk_020000B0;
|
||||
|
|
|
|||
|
|
@ -340,7 +340,7 @@ void sub_08029E0C(Entity* this) {
|
|||
tile = COORD_TO_TILE(this);
|
||||
for (i = 0; i < 3; i++) {
|
||||
dir = ptr[iVar3];
|
||||
if (sub_080B1B44(gUnk_080B4488[dir >> 3] + tile, this->collisionLayer) == 0) {
|
||||
if (GetCollisionData(gUnk_080B4488[dir >> 3] + tile, this->collisionLayer) == 0) {
|
||||
local_24 = dir;
|
||||
if (this->direction - this->field_0x74.HALF.LO != dir - this->direction)
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -168,12 +168,13 @@ void OctorokBoss_Hit_SubAction1(OctorokBossEntity* this) {
|
|||
if (diffX > 8 || diffY > 8) {
|
||||
this->heap->field_0x2 = 1;
|
||||
#if defined(JP) || defined(DEMO_JP) || defined(EU)
|
||||
super->direction = ((s32)CalculateDirectionFromOffsets((((gRoomControls.origin_x + 0x108) << 0x10) - super->x.WORD),
|
||||
(((gRoomControls.origin_y + 0x88) << 0x10) - super->y.WORD))) >>
|
||||
3;
|
||||
super->direction =
|
||||
((s32)CalculateDirectionFromOffsets((((gRoomControls.origin_x + 0x108) << 0x10) - super->x.WORD),
|
||||
(((gRoomControls.origin_y + 0x88) << 0x10) - super->y.WORD))) >>
|
||||
3;
|
||||
#else
|
||||
super->direction = ((s32)CalculateDirectionFromOffsets(gRoomControls.origin_x + 0x108 - super->x.HALF.HI,
|
||||
gRoomControls.origin_y + 0x88 - super->y.HALF.HI)) >>
|
||||
gRoomControls.origin_y + 0x88 - super->y.HALF.HI)) >>
|
||||
3;
|
||||
#endif
|
||||
super->speed = 0x100;
|
||||
|
|
@ -690,8 +691,9 @@ void OctorokBoss_Action1_AimTowardsPlayer(OctorokBossEntity* this) {
|
|||
s32 tmp1;
|
||||
s32 tmp2;
|
||||
|
||||
tmp1 = (u8)(CalculateDirectionFromOffsets(gPlayerEntity.x.WORD - super->x.WORD, gPlayerEntity.y.WORD - super->y.WORD) -
|
||||
(((u8)(-this->angle.HALF.HI) ^ 0x80)));
|
||||
tmp1 =
|
||||
(u8)(CalculateDirectionFromOffsets(gPlayerEntity.x.WORD - super->x.WORD, gPlayerEntity.y.WORD - super->y.WORD) -
|
||||
(((u8)(-this->angle.HALF.HI) ^ 0x80)));
|
||||
if (IS_FROZEN(this) == FALSE) {
|
||||
tmp2 = 8;
|
||||
} else {
|
||||
|
|
@ -898,7 +900,8 @@ void OctorokBoss_ExecuteAttackVacuum(OctorokBossEntity* this) {
|
|||
s32 tmp;
|
||||
|
||||
if (this->unk_80 == 0) {
|
||||
super->direction = CalculateDirectionFromOffsets(gPlayerEntity.x.WORD - super->x.WORD, gPlayerEntity.y.WORD - super->y.WORD);
|
||||
super->direction =
|
||||
CalculateDirectionFromOffsets(gPlayerEntity.x.WORD - super->x.WORD, gPlayerEntity.y.WORD - super->y.WORD);
|
||||
tmp = ((u8) - (this->angle.HALF.HI + 0x80)) - super->direction;
|
||||
if (tmp < 0) {
|
||||
tmp = -tmp;
|
||||
|
|
@ -911,9 +914,9 @@ void OctorokBoss_ExecuteAttackVacuum(OctorokBossEntity* this) {
|
|||
if (sub_0806FC80(super, &gPlayerEntity, 0x48) != 0) {
|
||||
this->unk_80 = 1;
|
||||
this->timer = 2;
|
||||
this->heap->targetAngle =
|
||||
CalculateDirectionFromOffsets((gRoomControls.origin_x + 0x108) * 0x10000 - super->x.WORD,
|
||||
(gRoomControls.origin_y + 0x88) * 0x10000 - super->y.WORD);
|
||||
this->heap->targetAngle = CalculateDirectionFromOffsets(
|
||||
(gRoomControls.origin_x + 0x108) * 0x10000 - super->x.WORD,
|
||||
(gRoomControls.origin_y + 0x88) * 0x10000 - super->y.WORD);
|
||||
this->heap->targetAngle = (u8) - (this->heap->targetAngle + 0x80);
|
||||
SoundReq(SFX_ED);
|
||||
}
|
||||
|
|
@ -956,7 +959,8 @@ void OctorokBoss_ExecuteAttackVacuum(OctorokBossEntity* this) {
|
|||
} else {
|
||||
this->timer--;
|
||||
if ((gPlayerState.flags == PL_FROZEN) && (this->timer == 0x3c)) {
|
||||
tmp = CalculateDirectionFromOffsets(gPlayerEntity.x.WORD - super->x.WORD, gPlayerEntity.y.WORD - super->y.WORD);
|
||||
tmp = CalculateDirectionFromOffsets(gPlayerEntity.x.WORD - super->x.WORD,
|
||||
gPlayerEntity.y.WORD - super->y.WORD);
|
||||
if ((u8)((tmp - ((u8) - this->angle.HALF.HI ^ 0x80))) > 0x80) {
|
||||
this->heap->targetAngle = this->angle.HALF.HI + 0x30;
|
||||
} else {
|
||||
|
|
@ -1177,9 +1181,9 @@ void sub_08036AF0(OctorokBossEntity* this, s32 radius, s32 angleSpeed) {
|
|||
heap->tailObjects[index - 1]->base.y.HALF.HI)) {
|
||||
continue;
|
||||
} else {
|
||||
heap->tailObjects[index - 1]->angle.HALF.HI =
|
||||
CalculateDirectionFromOffsets(heap->tailObjects[index - 1]->base.x.WORD - heap->tailObjects[index]->base.x.WORD,
|
||||
heap->tailObjects[index - 1]->base.y.WORD - heap->tailObjects[index]->base.y.WORD);
|
||||
heap->tailObjects[index - 1]->angle.HALF.HI = CalculateDirectionFromOffsets(
|
||||
heap->tailObjects[index - 1]->base.x.WORD - heap->tailObjects[index]->base.x.WORD,
|
||||
heap->tailObjects[index - 1]->base.y.WORD - heap->tailObjects[index]->base.y.WORD);
|
||||
tmp = FixedMul(gSineTable[heap->tailObjects[index - 1]->angle.HALF.HI], radius << 4);
|
||||
tmp = FixedDiv(tmp, 0x100);
|
||||
heap->tailObjects[index - 1]->base.x.WORD = heap->tailObjects[index]->base.x.WORD + ((s32)tmp << 8);
|
||||
|
|
|
|||
|
|
@ -336,7 +336,7 @@ void sub_080244E8(Entity* this) {
|
|||
switch (this->field_0x80.HALF.LO) {
|
||||
case 0:
|
||||
if (--this->timer == 0) {
|
||||
if (sub_080B1B44(COORD_TO_TILE(this), 1) == 0) {
|
||||
if (GetCollisionData(COORD_TO_TILE(this), 1) == 0) {
|
||||
this->field_0x80.HALF.LO++;
|
||||
this->field_0x82.HALF.LO++;
|
||||
this->subtimer = 0;
|
||||
|
|
|
|||
|
|
@ -510,7 +510,7 @@ void sub_08025A54(Entity* this) {
|
|||
}
|
||||
|
||||
bool32 sub_08025AB8(u32 tile, u32 layer) {
|
||||
if (sub_080B1B44(tile, layer))
|
||||
if (GetCollisionData(tile, layer))
|
||||
return FALSE;
|
||||
|
||||
if (sub_080B1AE0(tile, layer) == 10) {
|
||||
|
|
|
|||
|
|
@ -323,7 +323,7 @@ void sub_08033D78(SpinyBeetleEntity* this) {
|
|||
case 0x1c5:
|
||||
break;
|
||||
default:
|
||||
if (sub_080B1B44(tile, super->collisionLayer) - 1 > 0x3e)
|
||||
if (GetCollisionData(tile, super->collisionLayer) - 1 > 0x3e)
|
||||
ProcessMovement0(super);
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -230,7 +230,7 @@ void sub_0802EFB8(Entity* this) {
|
|||
uVar3 = GetFacingDirection(&gPlayerEntity, this);
|
||||
uVar1 = (uVar3 + 4) & 0x18;
|
||||
}
|
||||
iVar4 = sub_080B1B44(TILE(this->x.HALF.HI, this->y.HALF.HI) + gUnk_080B4488[((uVar1) >> 3)], 1);
|
||||
iVar4 = GetCollisionData(TILE(this->x.HALF.HI, this->y.HALF.HI) + gUnk_080B4488[((uVar1) >> 3)], 1);
|
||||
if (iVar4 != 0) {
|
||||
this->direction = 0xff;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -276,7 +276,7 @@ void sub_0803E4D8(Entity* this) {
|
|||
u32 tile;
|
||||
|
||||
tile = TILE(this->x.HALF.HI, this->y.HALF.HI + 8);
|
||||
if (sub_080B1B44(tile, gPlayerEntity.collisionLayer) != 0xff) {
|
||||
if (GetCollisionData(tile, gPlayerEntity.collisionLayer) != 0xff) {
|
||||
SetTile(0x4074, tile, gPlayerEntity.collisionLayer);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -236,7 +236,7 @@ void sub_0802F8E4(WizzrobeEntity* this) {
|
|||
iVar4 = ((s32)(rand)&0x7ff0) % (this->unk_6f << 3);
|
||||
uVar7 = (uVar1 + iVar4) | 8;
|
||||
uVar6 = TILE(uVar8, uVar7);
|
||||
if ((sub_080B1B44(uVar6, super->collisionLayer) == 0) &&
|
||||
if ((GetCollisionData(uVar6, super->collisionLayer) == 0) &&
|
||||
(GetTileIndex(uVar6, super->collisionLayer) != 0x4071)) {
|
||||
super->x.HALF.HI = (s16)uVar8;
|
||||
super->y.HALF.HI = (s16)uVar7;
|
||||
|
|
|
|||
|
|
@ -20,8 +20,6 @@
|
|||
extern void ClearArmosData(void);
|
||||
extern void sub_080300C4(void);
|
||||
|
||||
extern u8 gUnk_02017700[];
|
||||
|
||||
bool32 sub_0804AD18(void);
|
||||
void sub_0804AD6C(RoomControls*);
|
||||
bool32 sub_0804ACA8(void);
|
||||
|
|
@ -185,8 +183,8 @@ void Subtask_PortalCutscene_0(void) {
|
|||
ptr = &gUnk_080D4138[portalId];
|
||||
LoadPaletteGroup(ptr->paletteGroup);
|
||||
LoadGfxGroup(ptr->gfxGroup);
|
||||
MemCopy(&gUnk_02017700, gUnk_02017700 + 0x240, 0x20);
|
||||
gUsedPalettes |= 0x200000;
|
||||
MemCopy(gPaletteBuffer + 3 * 16, gPaletteBuffer + 21 * 16, 16 * 2);
|
||||
gUsedPalettes |= 1 << 21;
|
||||
EraseAllEntities();
|
||||
LoadRoomEntityList(gUnk_080D4110[portalId]);
|
||||
ResetSystemPriority();
|
||||
|
|
|
|||
|
|
@ -350,7 +350,7 @@ void LoadOptionsFromSave(u32 idx) {
|
|||
|
||||
gSaveHeader->msg_speed = msg_speed;
|
||||
gSaveHeader->brightness = brightness;
|
||||
gUsedPalettes = 0xFFFFFFFF;
|
||||
gUsedPalettes = 0xffffffff;
|
||||
}
|
||||
|
||||
void SetActiveSave(u32 idx) {
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ const WorldEvent gWorldEvents[] = {
|
|||
OUGONTEKI_B },
|
||||
{ WORLD_EVENT_TYPE_1, 2, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 480, 80, 600, 168, 600, 1848, CND_1,
|
||||
LOCAL_BANK_0, OUGONTEKI_C },
|
||||
{ WORLD_EVENT_TYPE_1, 3, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLLS_NORTH, 0, 352, 120, 440, 2616, 2600,
|
||||
{ WORLD_EVENT_TYPE_1, 3, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_NORTH, 0, 352, 120, 440, 2616, 2600,
|
||||
CND_1, LOCAL_BANK_0, OUGONTEKI_D },
|
||||
{ WORLD_EVENT_TYPE_1, 4, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 768, 160, 936, 248, 2424, 440, CND_1,
|
||||
LOCAL_BANK_0, OUGONTEKI_E },
|
||||
|
|
@ -97,7 +97,7 @@ const WorldEvent gWorldEvents[] = {
|
|||
LOCAL_BANK_0, OUGONTEKI_H },
|
||||
{ WORLD_EVENT_TYPE_1, 8, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_CENTER, 176, 0, 312, 88, 1320, 2888,
|
||||
CND_1, LOCAL_BANK_0, OUGONTEKI_I },
|
||||
{ WORLD_EVENT_TYPE_2, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLLS_NORTH, 80, 288, 200, 376, 2696, 2536,
|
||||
{ WORLD_EVENT_TYPE_2, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_NORTH, 80, 288, 200, 376, 2696, 2536,
|
||||
CND_1, LOCAL_BANK_1, KAKERA_TAKARA_A },
|
||||
{ WORLD_EVENT_TYPE_2, 0, AREA_CRENEL_MINISH_PATHS, ROOM_CRENEL_MINISH_PATHS_RAIN, 272, 16, 392, 88, 744, 152, CND_1,
|
||||
LOCAL_BANK_3, KAKERA_TAKARA_B },
|
||||
|
|
@ -228,7 +228,7 @@ const WorldEvent gWorldEvents[] = {
|
|||
LOCAL_BANK_1, BEANDEMO_01 }, // uses different flags due to CND_6
|
||||
{ WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_RUINS, ROOM_RUINS_BEANSTALK, 0, 0, 72, 72, 312, 2712, CND_7, LOCAL_BANK_1,
|
||||
BEANDEMO_02 }, // uses different flags due to CND_7
|
||||
{ WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLLS_CENTER, 0, 0, 72, 56, 2568,
|
||||
{ WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_CENTER, 0, 0, 72, 56, 2568,
|
||||
2760, CND_8, LOCAL_BANK_1, BEANDEMO_03 }, // uses different flags due to CND_8
|
||||
{ WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_SOUTH, 0, 0, 56, 56, 1064, 3016,
|
||||
CND_9, LOCAL_BANK_1, BEANDEMO_04 }, // uses different flags due to CND_9
|
||||
|
|
@ -245,7 +245,7 @@ const WorldEvent gWorldEvents[] = {
|
|||
LOCAL_BANK_1, BEANDEMO_01 }, // uses different flags due to CND_6
|
||||
{ WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_RUINS, ROOM_RUINS_BEANSTALK, 0, 0, 72, 72, 312, 2712, CND_0, LOCAL_BANK_1,
|
||||
BEANDEMO_02 }, // uses different flags due to CND_7
|
||||
{ WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLLS_CENTER, 0, 0, 72, 56, 2568,
|
||||
{ WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_CENTER, 0, 0, 72, 56, 2568,
|
||||
2760, CND_0, LOCAL_BANK_1, BEANDEMO_03 }, // uses different flags due to CND_8
|
||||
{ WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_SOUTH, 0, 0, 56, 56, 1064, 3016,
|
||||
CND_0, LOCAL_BANK_1, BEANDEMO_04 }, // uses different flags due to CND_9
|
||||
|
|
@ -341,7 +341,7 @@ const WorldEvent gWorldEvents[] = {
|
|||
LOCAL_BANK_1, BEANDEMO_01 }, // uses different flags due to CND_6
|
||||
{ WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_RUINS, ROOM_RUINS_BEANSTALK, 0, 0, 72, 72, 312, 2712, CND_7, LOCAL_BANK_1,
|
||||
BEANDEMO_02 }, // uses different flags due to CND_7
|
||||
{ WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLLS_CENTER, 0, 0, 72, 56, 2568,
|
||||
{ WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_CENTER, 0, 0, 72, 56, 2568,
|
||||
2760, CND_8, LOCAL_BANK_1, BEANDEMO_03 }, // uses different flags due to CND_8
|
||||
{ WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_SOUTH, 0, 0, 56, 56, 1064, 3016,
|
||||
CND_9, LOCAL_BANK_1, BEANDEMO_04 }, // uses different flags due to CND_9
|
||||
|
|
|
|||
|
|
@ -824,16 +824,15 @@ void LoadItemGfx(void) {
|
|||
LoadGfxGroup(GetInventoryValue(ITEM_MAGIC_BOOMERANG) ? 28 : 27);
|
||||
}
|
||||
|
||||
extern u16 gUnk_020178E0[];
|
||||
void sub_080533CC(void) {
|
||||
u16* p1 = gUnk_020178E0;
|
||||
u16* p2 = gUnk_020178E0 - 0x100;
|
||||
u16* p1 = gPaletteBuffer + 288;
|
||||
u16* p2 = gPaletteBuffer + 32;
|
||||
*p2++ = *p1++;
|
||||
*p2++ = *p1++;
|
||||
*p2++ = *p1++;
|
||||
*p2++ = *p1++;
|
||||
*p2++ = *p1++;
|
||||
gUsedPalettes |= 8;
|
||||
gUsedPalettes |= 1 << 3;
|
||||
}
|
||||
|
||||
void UpdateTimerCallbacks(void) {
|
||||
|
|
|
|||
|
|
@ -181,7 +181,7 @@ s32 sub_080774A0(void) {
|
|||
uVar3 = COORD_TO_TILE_OFFSET((&gPlayerEntity), -gUnk_0811BE1E[gPlayerEntity.animationState & 6],
|
||||
-gUnk_0811BE1E[(gPlayerEntity.animationState & 6) + 1]);
|
||||
|
||||
iVar2 = sub_080B1B44(uVar3, gPlayerEntity.collisionLayer);
|
||||
iVar2 = GetCollisionData(uVar3, gPlayerEntity.collisionLayer);
|
||||
|
||||
if (iVar2 > 0x16)
|
||||
return 0;
|
||||
|
|
|
|||
118
src/manager.c
118
src/manager.c
|
|
@ -1,64 +1,66 @@
|
|||
#include "manager.h"
|
||||
|
||||
// TODO: change all manager arguments to be Entity* and cast to specific type later.
|
||||
void (*const gMiscManagerunctions[])() = { NULL,
|
||||
LightRayManager_Main,
|
||||
VerticalMinishPathBackgroundManager_Main,
|
||||
MinishPortalManager_Main,
|
||||
DiggingCaveEntranceManager_Main,
|
||||
BridgeManager_Main,
|
||||
SpecialWarpManager_Main,
|
||||
MinishVillageTilesetManager_Main,
|
||||
HorizontalMinishPathBackgroundManager_Main,
|
||||
MinishRaftersBackgroundManager_Main,
|
||||
EzloHintManager_Main,
|
||||
FightManager_Main,
|
||||
RollingBarrelManager_Main,
|
||||
TileChangeObserveManager_Main,
|
||||
EntitySpawnManager_Main,
|
||||
MiscManager_Main,
|
||||
WeatherChangeManager_Main,
|
||||
FlagAndOperatorManager_Main,
|
||||
HyruleTownTilesetManager_Main,
|
||||
HouseSignManager_Main,
|
||||
SteamOverlayManager_Main,
|
||||
TempleOfDropletsManager_Main,
|
||||
DelayedEntityLoadManager_Main,
|
||||
FallingItemManager_Main,
|
||||
CloudOverlayManager_Main,
|
||||
PowBackgroundManager_Main,
|
||||
HoleManager_Main,
|
||||
StaticBackgroundManager_Main,
|
||||
RainfallManager_Main,
|
||||
AnimatedBackgroundManager_Main,
|
||||
RegionTriggerManager_Main,
|
||||
RailIntersectionManager_Main,
|
||||
MoveableObjectManager_Main,
|
||||
MinishSizedEntranceManager_Main,
|
||||
LightManager_Main,
|
||||
LightLevelSetManager_Main,
|
||||
BombableWallManager_Main,
|
||||
FlameManager_Main,
|
||||
PushableFurnitureManager_Main,
|
||||
ArmosInteriorManager_Main,
|
||||
EnemyInteractionManager_Main,
|
||||
Manager29_Main,
|
||||
DestructibleTileObserveManager_Main,
|
||||
AngryStatueManager_Main,
|
||||
CloudStaircaseTransitionManager_Main,
|
||||
WaterfallBottomManager_Main,
|
||||
SecretManager_Main,
|
||||
Vaati3BackgroundManager_Main,
|
||||
TilePuzzleManager_Main,
|
||||
GoronMerchantShopManager_Main,
|
||||
VaatiAppearingManager_Main,
|
||||
HyruleTownBellManager_Main,
|
||||
Vaati3InsideArmManager_Main,
|
||||
CameraTargetManager_Main,
|
||||
RepeatedSoundManager_Main,
|
||||
Vaati3StartManager_Main,
|
||||
FloatingPlatformManager_Main,
|
||||
EnterRoomTextboxManager_Main };
|
||||
void (*const gMiscManagerunctions[])() = {
|
||||
NULL,
|
||||
LightRayManager_Main,
|
||||
VerticalMinishPathBackgroundManager_Main,
|
||||
MinishPortalManager_Main,
|
||||
DiggingCaveEntranceManager_Main,
|
||||
BridgeManager_Main,
|
||||
SpecialWarpManager_Main,
|
||||
MinishVillageTilesetManager_Main,
|
||||
HorizontalMinishPathBackgroundManager_Main,
|
||||
MinishRaftersBackgroundManager_Main,
|
||||
EzloHintManager_Main,
|
||||
FightManager_Main,
|
||||
RollingBarrelManager_Main,
|
||||
TileChangeObserveManager_Main,
|
||||
EntitySpawnManager_Main,
|
||||
MiscManager_Main,
|
||||
WeatherChangeManager_Main,
|
||||
FlagAndOperatorManager_Main,
|
||||
HyruleTownTilesetManager_Main,
|
||||
HouseSignManager_Main,
|
||||
SteamOverlayManager_Main,
|
||||
TempleOfDropletsManager_Main,
|
||||
DelayedEntityLoadManager_Main,
|
||||
FallingItemManager_Main,
|
||||
CloudOverlayManager_Main,
|
||||
PowBackgroundManager_Main,
|
||||
HoleManager_Main,
|
||||
StaticBackgroundManager_Main,
|
||||
RainfallManager_Main,
|
||||
AnimatedBackgroundManager_Main,
|
||||
RegionTriggerManager_Main,
|
||||
RailIntersectionManager_Main,
|
||||
MoveableObjectManager_Main,
|
||||
MinishSizedEntranceManager_Main,
|
||||
LightManager_Main,
|
||||
LightLevelSetManager_Main,
|
||||
BombableWallManager_Main,
|
||||
FlameManager_Main,
|
||||
PushableFurnitureManager_Main,
|
||||
ArmosInteriorManager_Main,
|
||||
EnemyInteractionManager_Main,
|
||||
Manager29_Main,
|
||||
DestructibleTileObserveManager_Main,
|
||||
AngryStatueManager_Main,
|
||||
CloudStaircaseTransitionManager_Main,
|
||||
WaterfallBottomManager_Main,
|
||||
SecretManager_Main,
|
||||
Vaati3BackgroundManager_Main,
|
||||
TilePuzzleManager_Main,
|
||||
GoronMerchantShopManager_Main,
|
||||
VaatiAppearingManager_Main,
|
||||
HyruleTownBellManager_Main,
|
||||
Vaati3InsideArmManager_Main,
|
||||
CameraTargetManager_Main,
|
||||
RepeatedSoundManager_Main,
|
||||
Vaati3StartManager_Main,
|
||||
FloatingPlatformManager_Main,
|
||||
EnterRoomTextboxManager_Main,
|
||||
};
|
||||
|
||||
void ManagerUpdate(Entity* this) {
|
||||
if (!EntityIsDeleted(this))
|
||||
|
|
|
|||
|
|
@ -141,85 +141,94 @@ const DiggingCaveEntrance* GetDiggingCaveEntranceForRoom(const DiggingCaveEntran
|
|||
|
||||
static const DiggingCaveEntrance diggingCaveEntrancesEmpty[] = { END_OF_LIST };
|
||||
static const DiggingCaveEntrance diggingCaveEntrancesMinishWoods[] = {
|
||||
{ TILE_POS(37, 19), ROOM_MINISH_WOODS_MAIN, 0x0, AREA_LAKE_WOODS_CAVE, ROOM_LAKE_WOODS_CAVE_MAIN,
|
||||
{ TILE_POS(37, 19), ROOM_MINISH_WOODS_MAIN, CAVE_LAKE_WOODS_ENTER, AREA_LAKE_WOODS_CAVE, ROOM_LAKE_WOODS_CAVE_MAIN,
|
||||
TILE_POS(37, 51) },
|
||||
{ TILE_POS(31, 15), ROOM_MINISH_WOODS_MAIN, 0x0, AREA_LAKE_WOODS_CAVE, ROOM_LAKE_WOODS_CAVE_MAIN,
|
||||
{ TILE_POS(31, 15), ROOM_MINISH_WOODS_MAIN, CAVE_LAKE_WOODS_ENTER, AREA_LAKE_WOODS_CAVE, ROOM_LAKE_WOODS_CAVE_MAIN,
|
||||
TILE_POS(31, 47) },
|
||||
END_OF_LIST
|
||||
};
|
||||
static const DiggingCaveEntrance diggingCaveEntrancesHyruleField[] = {
|
||||
{ TILE_POS(3, 11), ROOM_HYRULE_FIELD_EASTERN_HILLLS_NORTH, 0x4, AREA_DIG_CAVES, ROOM_DIG_CAVES_EASTERN_HILLS,
|
||||
TILE_POS(3, 11) },
|
||||
{ TILE_POS(35, 5), ROOM_HYRULE_FIELD_LON_LON_RANCH, 0x10, AREA_HYLIA_DIG_CAVES, ROOM_HYLIA_DIG_CAVES_1,
|
||||
TILE_POS(8, 17) },
|
||||
{ TILE_POS(5, 14), ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS, 0xa, AREA_DIG_CAVES, ROOM_DIG_CAVES_TRILBY_HIGHLANDS,
|
||||
TILE_POS(5, 14) },
|
||||
{ TILE_POS(16, 14), ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS, 0xa, AREA_DIG_CAVES, ROOM_DIG_CAVES_TRILBY_HIGHLANDS,
|
||||
TILE_POS(16, 14) },
|
||||
{ TILE_POS(3, 11), ROOM_HYRULE_FIELD_EASTERN_HILLS_NORTH, CAVE_EASTERN_HILL_ENTER, AREA_DIG_CAVES,
|
||||
ROOM_DIG_CAVES_EASTERN_HILLS, TILE_POS(3, 11) },
|
||||
{ TILE_POS(35, 5), ROOM_HYRULE_FIELD_LON_LON_RANCH, CAVE_LON_LON_RANCH_ENTER, AREA_HYLIA_DIG_CAVES,
|
||||
ROOM_HYLIA_DIG_CAVES_1, TILE_POS(8, 17) },
|
||||
{ TILE_POS(5, 14), ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS, CAVE_TRILBY_HIGHLANDS_ENTER, AREA_DIG_CAVES,
|
||||
ROOM_DIG_CAVES_TRILBY_HIGHLANDS, TILE_POS(5, 14) },
|
||||
{ TILE_POS(16, 14), ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS, CAVE_TRILBY_HIGHLANDS_ENTER, AREA_DIG_CAVES,
|
||||
ROOM_DIG_CAVES_TRILBY_HIGHLANDS, TILE_POS(16, 14) },
|
||||
END_OF_LIST
|
||||
};
|
||||
static const DiggingCaveEntrance diggingCaveEntrancesHyruleTown[] = { { TILE_POS(45, 24), ROOM_HYRULE_TOWN_MAIN, 0x2,
|
||||
AREA_HYRULE_DIG_CAVES,
|
||||
static const DiggingCaveEntrance diggingCaveEntrancesHyruleTown[] = { { TILE_POS(45, 24), ROOM_HYRULE_TOWN_MAIN,
|
||||
CAVE_HYRULE_TOWN_ENTER, AREA_HYRULE_DIG_CAVES,
|
||||
ROOM_HYRULE_DIG_CAVES_TOWN, TILE_POS(45, 40) },
|
||||
END_OF_LIST };
|
||||
static const DiggingCaveEntrance diggingCaveEntrancesMtCrenel[] = {
|
||||
{ TILE_POS(3, 5), ROOM_MT_CRENEL_WALL_CLIMB, 0x6, AREA_CRENEL_DIG_CAVE, ROOM_CRENEL_DIG_CAVE_0, TILE_POS(3, 25) },
|
||||
END_OF_LIST
|
||||
};
|
||||
static const DiggingCaveEntrance diggingCaveEntrancesMtCrenel[] = { { TILE_POS(3, 5), ROOM_MT_CRENEL_WALL_CLIMB,
|
||||
CAVE_CRENEL_ENTER, AREA_CRENEL_DIG_CAVE,
|
||||
ROOM_CRENEL_DIG_CAVE_0, TILE_POS(3, 25) },
|
||||
END_OF_LIST };
|
||||
static const DiggingCaveEntrance diggingCaveEntrancesVeilFalls[] = {
|
||||
{ TILE_POS(26, 37), ROOM_VEIL_FALLS_MAIN, 0x8, AREA_VEIL_FALLS_DIG_CAVE, ROOM_VEIL_FALLS_DIG_CAVE_0,
|
||||
TILE_POS(26, 37) },
|
||||
{ TILE_POS(14, 39), ROOM_VEIL_FALLS_MAIN, 0x8, AREA_VEIL_FALLS_DIG_CAVE, ROOM_VEIL_FALLS_DIG_CAVE_0,
|
||||
TILE_POS(14, 39) },
|
||||
{ TILE_POS(26, 37), ROOM_VEIL_FALLS_MAIN, CAVE_VEIL_FALLS_ENTER, AREA_VEIL_FALLS_DIG_CAVE,
|
||||
ROOM_VEIL_FALLS_DIG_CAVE_0, TILE_POS(26, 37) },
|
||||
{ TILE_POS(14, 39), ROOM_VEIL_FALLS_MAIN, CAVE_VEIL_FALLS_ENTER, AREA_VEIL_FALLS_DIG_CAVE,
|
||||
ROOM_VEIL_FALLS_DIG_CAVE_0, TILE_POS(14, 39) },
|
||||
END_OF_LIST
|
||||
};
|
||||
static const DiggingCaveEntrance diggingCaveEntrancesCastorWilds[] = {
|
||||
{ TILE_POS(48, 25), ROOM_CASTOR_WILDS_MAIN, 0xc, AREA_CASTOR_WILDS_DIG_CAVE, ROOM_CASTOR_WILDS_DIG_CAVE_0,
|
||||
TILE_POS(48, 25) },
|
||||
{ TILE_POS(48, 25), ROOM_CASTOR_WILDS_MAIN, CAVE_CASTOR_WILDS_ENTER, AREA_CASTOR_WILDS_DIG_CAVE,
|
||||
ROOM_CASTOR_WILDS_DIG_CAVE_0, TILE_POS(48, 25) },
|
||||
END_OF_LIST
|
||||
};
|
||||
static const DiggingCaveEntrance diggingCaveEntrancesLakeHylia[] = {
|
||||
{ TILE_POS(30, 5), ROOM_LAKE_HYLIA_MAIN, 0xe, AREA_HYLIA_DIG_CAVES, ROOM_HYLIA_DIG_CAVES_1, TILE_POS(46, 17) },
|
||||
{ TILE_POS(30, 30), ROOM_LAKE_HYLIA_MAIN, 0x12, AREA_HYLIA_DIG_CAVES, ROOM_HYLIA_DIG_CAVES_0, TILE_POS(8, 9) },
|
||||
{ TILE_POS(30, 5), ROOM_LAKE_HYLIA_MAIN, CAVE_LAKE_HYLIA_NORTH_ENTER, AREA_HYLIA_DIG_CAVES, ROOM_HYLIA_DIG_CAVES_1,
|
||||
TILE_POS(46, 17) },
|
||||
{ TILE_POS(30, 30), ROOM_LAKE_HYLIA_MAIN, CAVE_LAKE_HYLIA_CENTER_ENTER, AREA_HYLIA_DIG_CAVES,
|
||||
ROOM_HYLIA_DIG_CAVES_0, TILE_POS(8, 9) },
|
||||
END_OF_LIST
|
||||
};
|
||||
static const DiggingCaveEntrance diggingCaveEntrancesLakeWoodsCave[] = {
|
||||
{ TILE_POS(37, 51), ROOM_LAKE_WOODS_CAVE_MAIN, 0x1, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, TILE_POS(37, 19) },
|
||||
{ TILE_POS(31, 47), ROOM_LAKE_WOODS_CAVE_MAIN, 0x1, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, TILE_POS(31, 15) },
|
||||
{ TILE_POS(37, 51), ROOM_LAKE_WOODS_CAVE_MAIN, CAVE_LAKE_WOODS_LEAVE, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN,
|
||||
TILE_POS(37, 19) },
|
||||
{ TILE_POS(31, 47), ROOM_LAKE_WOODS_CAVE_MAIN, CAVE_LAKE_WOODS_LEAVE, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN,
|
||||
TILE_POS(31, 15) },
|
||||
END_OF_LIST
|
||||
};
|
||||
static const DiggingCaveEntrance diggingCaveEntrancesHyruleDigCaves[] = {
|
||||
{ TILE_POS(45, 40), ROOM_HYRULE_DIG_CAVES_TOWN, 0x3, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, TILE_POS(45, 24) },
|
||||
{ TILE_POS(45, 40), ROOM_HYRULE_DIG_CAVES_TOWN, CAVE_HYRULE_TOWN_LEAVE, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN,
|
||||
TILE_POS(45, 24) },
|
||||
END_OF_LIST
|
||||
};
|
||||
static const DiggingCaveEntrance diggingCaveEntrancesAreaDigCaves[] = {
|
||||
{ TILE_POS(3, 11), ROOM_DIG_CAVES_EASTERN_HILLS, 0x5, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLLS_NORTH,
|
||||
TILE_POS(3, 11) },
|
||||
{ TILE_POS(5, 14), ROOM_DIG_CAVES_TRILBY_HIGHLANDS, 0xb, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
|
||||
TILE_POS(5, 14) },
|
||||
{ TILE_POS(16, 14), ROOM_DIG_CAVES_TRILBY_HIGHLANDS, 0xb, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
|
||||
TILE_POS(16, 14) },
|
||||
END_OF_LIST
|
||||
};
|
||||
static const DiggingCaveEntrance diggingCaveEntrancesCrenelDigCave[] = {
|
||||
{ TILE_POS(3, 25), ROOM_CRENEL_DIG_CAVE_0, 0x7, AREA_MT_CRENEL, ROOM_MT_CRENEL_WALL_CLIMB, TILE_POS(3, 5) },
|
||||
{ TILE_POS(3, 11), ROOM_DIG_CAVES_EASTERN_HILLS, CAVE_EASTERN_HILL_LEAVE, AREA_HYRULE_FIELD,
|
||||
ROOM_HYRULE_FIELD_EASTERN_HILLS_NORTH, TILE_POS(3, 11) },
|
||||
{ TILE_POS(5, 14), ROOM_DIG_CAVES_TRILBY_HIGHLANDS, CAVE_TRILBY_HIGHLANDS_LEAVE, AREA_HYRULE_FIELD,
|
||||
ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS, TILE_POS(5, 14) },
|
||||
{ TILE_POS(16, 14), ROOM_DIG_CAVES_TRILBY_HIGHLANDS, CAVE_TRILBY_HIGHLANDS_LEAVE, AREA_HYRULE_FIELD,
|
||||
ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS, TILE_POS(16, 14) },
|
||||
END_OF_LIST
|
||||
};
|
||||
static const DiggingCaveEntrance diggingCaveEntrancesCrenelDigCave[] = { { TILE_POS(3, 25), ROOM_CRENEL_DIG_CAVE_0,
|
||||
CAVE_CRENEL_LEAVE, AREA_MT_CRENEL,
|
||||
ROOM_MT_CRENEL_WALL_CLIMB, TILE_POS(3, 5) },
|
||||
END_OF_LIST };
|
||||
static const DiggingCaveEntrance diggingCaveEntrancesVeilFallsDigCave[] = {
|
||||
{ TILE_POS(26, 37), ROOM_VEIL_FALLS_DIG_CAVE_0, 0x9, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, TILE_POS(26, 37) },
|
||||
{ TILE_POS(14, 39), ROOM_VEIL_FALLS_DIG_CAVE_0, 0x9, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, TILE_POS(14, 39) },
|
||||
{ TILE_POS(26, 37), ROOM_VEIL_FALLS_DIG_CAVE_0, CAVE_VEIL_FALLS_LEAVE, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN,
|
||||
TILE_POS(26, 37) },
|
||||
{ TILE_POS(14, 39), ROOM_VEIL_FALLS_DIG_CAVE_0, CAVE_VEIL_FALLS_LEAVE, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN,
|
||||
TILE_POS(14, 39) },
|
||||
END_OF_LIST
|
||||
};
|
||||
static const DiggingCaveEntrance diggingCaveEntrancesCastorWildsDigCave[] = {
|
||||
{ TILE_POS(48, 25), ROOM_CASTOR_WILDS_DIG_CAVE_0, 0xd, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN,
|
||||
TILE_POS(48, 25) },
|
||||
{ TILE_POS(48, 25), ROOM_CASTOR_WILDS_DIG_CAVE_0, CAVE_CASTOR_WILDS_LEAVE, AREA_CASTOR_WILDS,
|
||||
ROOM_CASTOR_WILDS_MAIN, TILE_POS(48, 25) },
|
||||
END_OF_LIST
|
||||
};
|
||||
static const DiggingCaveEntrance diggingCaveEntrancesHyliaDigCaves[] = {
|
||||
{ TILE_POS(46, 17), ROOM_HYLIA_DIG_CAVES_1, 0xf, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, TILE_POS(30, 5) },
|
||||
{ TILE_POS(8, 17), ROOM_HYLIA_DIG_CAVES_1, 0x11, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
|
||||
TILE_POS(35, 5) },
|
||||
{ TILE_POS(8, 9), ROOM_HYLIA_DIG_CAVES_0, 0x13, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, TILE_POS(30, 30) },
|
||||
{ TILE_POS(46, 17), ROOM_HYLIA_DIG_CAVES_1, CAVE_LAKE_HYLIA_NORTH_LEAVE, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN,
|
||||
TILE_POS(30, 5) },
|
||||
{ TILE_POS(8, 17), ROOM_HYLIA_DIG_CAVES_1, CAVE_LON_LON_RANCH_LEAVE, AREA_HYRULE_FIELD,
|
||||
ROOM_HYRULE_FIELD_LON_LON_RANCH, TILE_POS(35, 5) },
|
||||
{ TILE_POS(8, 9), ROOM_HYLIA_DIG_CAVES_0, CAVE_LAKE_HYLIA_CENTER_LEAVE, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN,
|
||||
TILE_POS(30, 30) },
|
||||
END_OF_LIST
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -37,14 +37,14 @@ typedef struct struct_08108764 {
|
|||
u16 unk_06;
|
||||
u16 unk_08;
|
||||
u16 unk_0a;
|
||||
} * unk_0c;
|
||||
}* unk_0c;
|
||||
struct {
|
||||
u8 unk_00;
|
||||
u8 unk_01;
|
||||
u8 unk_02[2];
|
||||
u16 unk_04;
|
||||
u16 unk_06;
|
||||
} * unk_10;
|
||||
}* unk_10;
|
||||
} struct_08108764;
|
||||
|
||||
extern struct_08108764 gUnk_08108764[];
|
||||
|
|
|
|||
|
|
@ -113,15 +113,15 @@ void sub_08059B18(void) {
|
|||
if (CheckGlobalFlag(TATEKAKE_HOUSE) != 0) {
|
||||
for (loopVar = 0; loopVar < 4; ++loopVar) {
|
||||
for (innerLoopVar = 0; innerLoopVar < 4; ++innerLoopVar) {
|
||||
SetMetaTileByIndex(loopVar * 0x10 + 0x4ab + innerLoopVar, COMMON(0x28 + 0x10 * innerLoopVar, loopVar * 0x10),
|
||||
1);
|
||||
SetMetaTileByIndex(loopVar * 0x10 + 0x4ab + innerLoopVar,
|
||||
COMMON(0x28 + 0x10 * innerLoopVar, loopVar * 0x10), 1);
|
||||
}
|
||||
}
|
||||
|
||||
for (loopVar = 0; loopVar < 3; ++loopVar) {
|
||||
for (innerLoopVar = 0; innerLoopVar < 4; ++innerLoopVar) {
|
||||
SetMetaTileByIndex(loopVar * 0x10 + 0x440 + innerLoopVar, COMMON(0x28 + 0x10 * innerLoopVar, loopVar * 0x10),
|
||||
2);
|
||||
SetMetaTileByIndex(loopVar * 0x10 + 0x440 + innerLoopVar,
|
||||
COMMON(0x28 + 0x10 * innerLoopVar, loopVar * 0x10), 2);
|
||||
}
|
||||
}
|
||||
SetMetaTileByIndex(0xd6, 0x5c2, 2);
|
||||
|
|
@ -132,7 +132,7 @@ void sub_08059B18(void) {
|
|||
for (loopVar = 0; loopVar < 5; ++loopVar) {
|
||||
for (innerLoopVar = 0; innerLoopVar < 4; ++innerLoopVar) {
|
||||
SetMetaTileByIndex(loopVar * 0x10 + 0x4a6 + innerLoopVar,
|
||||
COMMON(0x28 + 0x10 * innerLoopVar, loopVar * 0x10), 1);
|
||||
COMMON(0x28 + 0x10 * innerLoopVar, loopVar * 0x10), 1);
|
||||
}
|
||||
}
|
||||
SetMetaTileByIndex(0x444, 0x602, 2);
|
||||
|
|
|
|||
|
|
@ -32,8 +32,8 @@ void sub_0805CBD0(Manager29* this) {
|
|||
super->action = 1;
|
||||
this->unk_38 = (this->unk_38 >> 4 & 0x3fU) | (((this->unk_3a << 0x10) >> 0x14 & 0x3fU) << 6);
|
||||
this->unk_3a = (this->unk_3c >> 4 & 0x3f) | (((this->unk_36 + this->unk_37 * 0x100) >> 4 & 0x3fU) << 6);
|
||||
this->unk_3c = GetTileType(this->unk_38, this->unk_34);
|
||||
layer = GetLayerByIndex(this->unk_34);
|
||||
this->unk_3c = GetTileType(this->unk_38, this->layer);
|
||||
layer = GetLayerByIndex(this->layer);
|
||||
this->unk_28 = (u16*)layer->metatileTypes;
|
||||
this->unk_2c = &layer->mapData[(s16)this->unk_3a];
|
||||
}
|
||||
|
|
@ -46,7 +46,7 @@ void sub_0805CC3C(Manager29* this) {
|
|||
iVar3 = this->unk_38;
|
||||
iVar2 = (short)this->unk_3a;
|
||||
|
||||
if (this->unk_34 == 1) {
|
||||
if (this->layer == 1) {
|
||||
uVar4 = 0x321;
|
||||
} else {
|
||||
uVar4 = 0x322;
|
||||
|
|
@ -54,74 +54,74 @@ void sub_0805CC3C(Manager29* this) {
|
|||
|
||||
switch (super->type) {
|
||||
default:
|
||||
sub_0807B7D8(uVar4, iVar3, this->unk_34);
|
||||
sub_0807B7D8(0x365, iVar2, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3, this->layer);
|
||||
sub_0807B7D8(0x365, iVar2, this->layer);
|
||||
break;
|
||||
case 1:
|
||||
sub_0807B7D8(uVar4, iVar3, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 1, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x40, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x41, this->unk_34);
|
||||
sub_0807B7D8(this->unk_3c, iVar2, this->unk_34);
|
||||
sub_0807B7D8(0x36f, iVar2 + 1, this->unk_34);
|
||||
sub_0807B7D8(0x370, iVar2 + 0x40, this->unk_34);
|
||||
sub_0807B7D8(0x371, iVar2 + 0x41, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 1, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x40, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x41, this->layer);
|
||||
sub_0807B7D8(this->unk_3c, iVar2, this->layer);
|
||||
sub_0807B7D8(0x36f, iVar2 + 1, this->layer);
|
||||
sub_0807B7D8(0x370, iVar2 + 0x40, this->layer);
|
||||
sub_0807B7D8(0x371, iVar2 + 0x41, this->layer);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
sub_0807B7D8(uVar4, iVar3, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 1, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 2, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x40, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x41, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x42, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x80, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x81, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x82, this->unk_34);
|
||||
sub_0807B7D8(this->unk_3c, iVar2, this->unk_34);
|
||||
sub_0807B7D8(0x372, iVar2 + 1, this->unk_34);
|
||||
sub_0807B7D8(0x36f, iVar2 + 2, this->unk_34);
|
||||
sub_0807B7D8(0x374, iVar2 + 0x40, this->unk_34);
|
||||
sub_0807B7D8(0x376, iVar2 + 0x41, this->unk_34);
|
||||
sub_0807B7D8(0x375, iVar2 + 0x42, this->unk_34);
|
||||
sub_0807B7D8(0x370, iVar2 + 0x80, this->unk_34);
|
||||
sub_0807B7D8(0x373, iVar2 + 0x81, this->unk_34);
|
||||
sub_0807B7D8(0x371, iVar2 + 0x82, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 1, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 2, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x40, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x41, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x42, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x80, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x81, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x82, this->layer);
|
||||
sub_0807B7D8(this->unk_3c, iVar2, this->layer);
|
||||
sub_0807B7D8(0x372, iVar2 + 1, this->layer);
|
||||
sub_0807B7D8(0x36f, iVar2 + 2, this->layer);
|
||||
sub_0807B7D8(0x374, iVar2 + 0x40, this->layer);
|
||||
sub_0807B7D8(0x376, iVar2 + 0x41, this->layer);
|
||||
sub_0807B7D8(0x375, iVar2 + 0x42, this->layer);
|
||||
sub_0807B7D8(0x370, iVar2 + 0x80, this->layer);
|
||||
sub_0807B7D8(0x373, iVar2 + 0x81, this->layer);
|
||||
sub_0807B7D8(0x371, iVar2 + 0x82, this->layer);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
sub_0807B7D8(uVar4, iVar3, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 1, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 2, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 3, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x40, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x41, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x42, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x43, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x80, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x81, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x82, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x83, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0xc0, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0xc1, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0xc2, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0xc3, this->unk_34);
|
||||
sub_0807B7D8(this->unk_3c, iVar2, this->unk_34);
|
||||
sub_0807B7D8(0x372, iVar2 + 1, this->unk_34);
|
||||
sub_0807B7D8(0x372, iVar2 + 2, this->unk_34);
|
||||
sub_0807B7D8(0x36f, iVar2 + 3, this->unk_34);
|
||||
sub_0807B7D8(0x374, iVar2 + 0x40, this->unk_34);
|
||||
sub_0807B7D8(0x376, iVar2 + 0x41, this->unk_34);
|
||||
sub_0807B7D8(0x376, iVar2 + 0x42, this->unk_34);
|
||||
sub_0807B7D8(0x375, iVar2 + 0x43, this->unk_34);
|
||||
sub_0807B7D8(0x374, iVar2 + 0x80, this->unk_34);
|
||||
sub_0807B7D8(0x376, iVar2 + 0x81, this->unk_34);
|
||||
sub_0807B7D8(0x376, iVar2 + 0x82, this->unk_34);
|
||||
sub_0807B7D8(0x375, iVar2 + 0x83, this->unk_34);
|
||||
sub_0807B7D8(0x370, iVar2 + 0xc0, this->unk_34);
|
||||
sub_0807B7D8(0x373, iVar2 + 0xc1, this->unk_34);
|
||||
sub_0807B7D8(0x373, iVar2 + 0xc2, this->unk_34);
|
||||
sub_0807B7D8(0x371, iVar2 + 0xc3, this->unk_34);
|
||||
sub_0807B7D8(uVar4, iVar3, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 1, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 2, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 3, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x40, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x41, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x42, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x43, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x80, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x81, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x82, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0x83, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0xc0, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0xc1, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0xc2, this->layer);
|
||||
sub_0807B7D8(uVar4, iVar3 + 0xc3, this->layer);
|
||||
sub_0807B7D8(this->unk_3c, iVar2, this->layer);
|
||||
sub_0807B7D8(0x372, iVar2 + 1, this->layer);
|
||||
sub_0807B7D8(0x372, iVar2 + 2, this->layer);
|
||||
sub_0807B7D8(0x36f, iVar2 + 3, this->layer);
|
||||
sub_0807B7D8(0x374, iVar2 + 0x40, this->layer);
|
||||
sub_0807B7D8(0x376, iVar2 + 0x41, this->layer);
|
||||
sub_0807B7D8(0x376, iVar2 + 0x42, this->layer);
|
||||
sub_0807B7D8(0x375, iVar2 + 0x43, this->layer);
|
||||
sub_0807B7D8(0x374, iVar2 + 0x80, this->layer);
|
||||
sub_0807B7D8(0x376, iVar2 + 0x81, this->layer);
|
||||
sub_0807B7D8(0x376, iVar2 + 0x82, this->layer);
|
||||
sub_0807B7D8(0x375, iVar2 + 0x83, this->layer);
|
||||
sub_0807B7D8(0x370, iVar2 + 0xc0, this->layer);
|
||||
sub_0807B7D8(0x373, iVar2 + 0xc1, this->layer);
|
||||
sub_0807B7D8(0x373, iVar2 + 0xc2, this->layer);
|
||||
sub_0807B7D8(0x371, iVar2 + 0xc3, this->layer);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -179,13 +179,13 @@ void MiscManager_Type1(MiscManager* this) {
|
|||
}
|
||||
|
||||
void sub_08059064(MiscManager* this) {
|
||||
Entity* tmp;
|
||||
tmp = CreateObject(GROUND_ITEM, ITEM_SMALL_KEY, 0);
|
||||
if (!tmp)
|
||||
Entity* key;
|
||||
key = CreateObject(GROUND_ITEM, ITEM_SMALL_KEY, 0);
|
||||
if (!key)
|
||||
return;
|
||||
tmp->timer = 2;
|
||||
tmp->x.HALF.HI = this->unk_38 + gRoomControls.origin_x;
|
||||
tmp->y.HALF.HI = this->unk_3a + gRoomControls.origin_y;
|
||||
key->timer = 2;
|
||||
key->x.HALF.HI = this->x + gRoomControls.origin_x;
|
||||
key->y.HALF.HI = this->y + gRoomControls.origin_y;
|
||||
}
|
||||
|
||||
void MiscManager_Type3(MiscManager* this) {
|
||||
|
|
@ -229,8 +229,8 @@ void MiscManager_Type5(MiscManager* this) {
|
|||
switch (super->action) {
|
||||
default:
|
||||
if (!--super->timer) {
|
||||
CreateDustAt(this->unk_38, this->unk_3a, super->type2);
|
||||
RestorePrevTileEntity(((this->unk_38 >> 4) & 0x3f) | ((this->unk_3a >> 4) & 0x3f) << 6, super->type2);
|
||||
CreateDustAt(this->x, this->y, super->type2);
|
||||
RestorePrevTileEntity(TILE_LOCAL(this->x, this->y), super->type2);
|
||||
SoundReq(SFX_TASK_COMPLETE);
|
||||
DeleteThisEntity();
|
||||
}
|
||||
|
|
@ -240,7 +240,7 @@ void MiscManager_Type5(MiscManager* this) {
|
|||
DeleteThisEntity();
|
||||
}
|
||||
super->action = 1;
|
||||
SetTileType(0x365, ((this->unk_38 >> 4) & 0x3f) | ((this->unk_3a >> 4) & 0x3f) << 6, super->type2);
|
||||
SetTileType(0x365, TILE_LOCAL(this->x, this->y), super->type2);
|
||||
break;
|
||||
case 1:
|
||||
if (CheckFlags(this->flags)) {
|
||||
|
|
@ -256,18 +256,18 @@ void MiscManager_Type6(MiscManager* this) {
|
|||
super->action = 1;
|
||||
super->type2 = CheckFlags(this->flags);
|
||||
if (super->type2) {
|
||||
gRoomVars.lightLevel = this->unk_3a;
|
||||
gRoomVars.lightLevel = this->y;
|
||||
} else {
|
||||
gRoomVars.lightLevel = this->unk_38;
|
||||
gRoomVars.lightLevel = this->x;
|
||||
}
|
||||
} else {
|
||||
u32 tmp = CheckFlags(this->flags);
|
||||
if (super->type2 != tmp) {
|
||||
super->type2 = tmp;
|
||||
if (tmp) {
|
||||
gRoomVars.lightLevel = this->unk_3a;
|
||||
gRoomVars.lightLevel = this->y;
|
||||
} else {
|
||||
gRoomVars.lightLevel = this->unk_38;
|
||||
gRoomVars.lightLevel = this->x;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -321,7 +321,7 @@ void MiscManager_Type9(MiscManager* this) {
|
|||
}
|
||||
|
||||
void sub_080592EC(MiscManager* this) {
|
||||
SetDirtTile(((this->unk_38 >> 4) & 0x3F) | (((this->unk_3a >> 4) & 0x3F) << 6));
|
||||
SetDirtTile(TILE_LOCAL(this->x, this->y));
|
||||
}
|
||||
|
||||
void sub_0805930C(MiscManager* this) {
|
||||
|
|
@ -333,8 +333,8 @@ void sub_0805930C(MiscManager* this) {
|
|||
#endif
|
||||
if (!tmp)
|
||||
return;
|
||||
tmp->x.HALF.HI = this->unk_38 + gRoomControls.origin_x;
|
||||
tmp->y.HALF.HI = this->unk_3a + gRoomControls.origin_y;
|
||||
tmp->x.HALF.HI = this->x + gRoomControls.origin_x;
|
||||
tmp->y.HALF.HI = this->y + gRoomControls.origin_y;
|
||||
tmp->collisionLayer = 1;
|
||||
}
|
||||
|
||||
|
|
@ -355,7 +355,7 @@ void MiscManager_TypeA(MiscManager* this) {
|
|||
void MiscManager_TypeB(MiscManager* this) {
|
||||
if (sub_080593CC(this)) {
|
||||
if (++super->timer >= 8) {
|
||||
sub_080806BC(this->unk_38 - gRoomControls.origin_x, this->unk_3a - gRoomControls.origin_y, 0xFF, 0xA);
|
||||
sub_080806BC(this->x - gRoomControls.origin_x, this->y - gRoomControls.origin_y, 0xFF, 0xA);
|
||||
}
|
||||
} else {
|
||||
super->timer = 0;
|
||||
|
|
@ -365,7 +365,7 @@ void MiscManager_TypeB(MiscManager* this) {
|
|||
bool32 sub_080593CC(MiscManager* this) {
|
||||
if (!(gPlayerState.flags & PL_MINISH) && gPlayerState.swim_state != 0 && gPlayerEntity.animationState == 0 &&
|
||||
(gPlayerState.playerInput.heldInput & PLAYER_INPUT_ANY_DIRECTION) == PLAYER_INPUT_UP) {
|
||||
return EntityWithinDistance(&gPlayerEntity, this->unk_38, this->unk_3a + 0xC, 6);
|
||||
return EntityWithinDistance(&gPlayerEntity, this->x, this->y + 12, 6);
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -381,8 +381,8 @@ void MiscManager_TypeC(MiscManager* this) {
|
|||
if (!tmp)
|
||||
return;
|
||||
tmp->collisionLayer = 2;
|
||||
tmp->x.HALF.HI = this->unk_38 + gRoomControls.origin_x;
|
||||
tmp->y.HALF.HI = this->unk_3a + gRoomControls.origin_y;
|
||||
tmp->x.HALF.HI = this->x + gRoomControls.origin_x;
|
||||
tmp->y.HALF.HI = this->y + gRoomControls.origin_y;
|
||||
EnqueueSFX(SFX_1B0);
|
||||
DeleteThisEntity();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
extern struct BgAffineDstData gUnk_02017AA0[];
|
||||
extern struct BgAffineDstData gUnk_02017BA0[];
|
||||
extern u8 gUnk_02017700[];
|
||||
extern u8 gUpdateVisibleTiles;
|
||||
extern u32 gUsedPalettes;
|
||||
|
||||
|
|
@ -261,8 +260,8 @@ void sub_08058D34(void) {
|
|||
u16 tmp;
|
||||
u32 tmp2;
|
||||
LoadPaletteGroup(0x28);
|
||||
MemCopy(gUnk_02017700, gUnk_02017700 + 0x240, 0x20);
|
||||
gUsedPalettes |= 0x200000;
|
||||
MemCopy(gPaletteBuffer + 3 * 16, gPaletteBuffer + 21 * 16, 16 * 2);
|
||||
gUsedPalettes |= 1 << 21;
|
||||
LoadGfxGroup(0x16);
|
||||
tmp = gScreen.lcd.displayControl;
|
||||
tmp2 = 0;
|
||||
|
|
|
|||
|
|
@ -488,7 +488,9 @@ void sub_0805A9CC(TempleOfDropletsManager* this) {
|
|||
gScreen.bg3.updated = 1;
|
||||
}
|
||||
|
||||
extern struct { u8 unk_00[0x20]; } gUnk_085A97A0[];
|
||||
extern struct {
|
||||
u8 unk_00[0x20];
|
||||
} gUnk_085A97A0[];
|
||||
|
||||
void sub_0805AA58(TempleOfDropletsManager* this) {
|
||||
if (--super->timer == 0) {
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
#include "common.h"
|
||||
#include "fileselect.h"
|
||||
#include "functions.h"
|
||||
#include "main.h"
|
||||
#include "room.h"
|
||||
#include "screen.h"
|
||||
#include "sound.h"
|
||||
|
|
@ -21,16 +22,13 @@ void sub_080596E0(WeatherChangeManager*);
|
|||
u32 sub_08059844(void);
|
||||
u32 sub_0805986C(void);
|
||||
void sub_08059894(const u16*, const u16*, u32);
|
||||
u32 sub_080598F8(u32, u32, u32);
|
||||
void sub_08059960(const u16*, const u16*, u16*, u8);
|
||||
u32 MixColors(u32, u32, u32);
|
||||
void MixPalettes(const u16*, const u16*, u16*, u8);
|
||||
|
||||
const u8 gUnk_08108390[6] = {
|
||||
0x0F, 0x1E, 0x2D, 0x3C, 0x01, 0x01,
|
||||
};
|
||||
|
||||
extern u16 gUnk_020176E0[];
|
||||
extern u8 gUnk_02017700[];
|
||||
|
||||
extern const u16 gPalette_549[];
|
||||
|
||||
void WeatherChangeManager_Main(WeatherChangeManager* this) {
|
||||
|
|
@ -160,54 +158,56 @@ u32 sub_0805986C(void) {
|
|||
return gPlayerEntity.x.HALF.HI - gRoomControls.origin_x > 0x200;
|
||||
}
|
||||
|
||||
void sub_08059894(const u16* unk1, const u16* unk2, u32 unk3) {
|
||||
void sub_08059894(const u16* palette1, const u16* palette2, u32 factor) {
|
||||
const u16* tmp1;
|
||||
const u16* tmp2;
|
||||
u16* tmp3;
|
||||
u32 tmp4;
|
||||
u32 i;
|
||||
tmp1 = unk1;
|
||||
tmp2 = unk2;
|
||||
tmp3 = gUnk_020176E0;
|
||||
tmp1 = palette1;
|
||||
tmp2 = palette2;
|
||||
tmp3 = gPaletteBuffer + 2 * 16;
|
||||
for (i = 0; i < 13; i++) {
|
||||
sub_08059960(tmp1, tmp2, tmp3, unk3);
|
||||
MixPalettes(tmp1, tmp2, tmp3, factor);
|
||||
tmp1 += 0x10;
|
||||
tmp2 += 0x10;
|
||||
tmp3 += 0x10;
|
||||
}
|
||||
MemCopy(gUnk_02017700, gUnk_02017700 + 0x240, 0x20);
|
||||
gUsedPalettes |= 0x207ffc;
|
||||
MemCopy(gPaletteBuffer + 3 * 16, gPaletteBuffer + 21 * 16, 16 * 2);
|
||||
// Use palettes 2 to 14 and 21.
|
||||
gUsedPalettes |= 1 << 2 | 1 << 3 | 1 << 4 | 1 << 5 | 1 << 6 | 1 << 7 | 1 << 8 | 1 << 9 | 1 << 10 | 1 << 11 |
|
||||
1 << 12 | 1 << 13 | 1 << 14 | 1 << 21;
|
||||
}
|
||||
|
||||
u32 sub_080598F8(u32 unk1, u32 unk2, u32 unk3) {
|
||||
u32 MixColors(u32 color1, u32 color2, u32 factor) {
|
||||
u32 tmp1, tmp2, tmp3;
|
||||
u32 tmp4, tmp5, tmp6;
|
||||
|
||||
tmp1 = (unk1 & 0x1F) << 8;
|
||||
tmp1 = (tmp1 * unk3) >> 5;
|
||||
tmp4 = (unk2 & 0x1F) << 8;
|
||||
tmp4 = (tmp4 * (0x20 - unk3)) >> 5;
|
||||
tmp1 = (color1 & 0x1F) << 8;
|
||||
tmp1 = (tmp1 * factor) >> 5;
|
||||
tmp4 = (color2 & 0x1F) << 8;
|
||||
tmp4 = (tmp4 * (0x20 - factor)) >> 5;
|
||||
tmp1 = (tmp1 + tmp4) >> 8;
|
||||
|
||||
tmp2 = (unk1 & 0x3E0) << 3;
|
||||
tmp2 = (tmp2 * unk3) >> 5;
|
||||
tmp5 = (unk2 & 0x3E0) << 3;
|
||||
tmp5 = (tmp5 * (0x20 - unk3)) >> 5;
|
||||
tmp2 = (color1 & 0x3E0) << 3;
|
||||
tmp2 = (tmp2 * factor) >> 5;
|
||||
tmp5 = (color2 & 0x3E0) << 3;
|
||||
tmp5 = (tmp5 * (0x20 - factor)) >> 5;
|
||||
tmp2 = (tmp2 + tmp5) >> 8;
|
||||
|
||||
tmp3 = (unk1 & 0x7C00) >> 2;
|
||||
tmp3 = (tmp3 * unk3) >> 5;
|
||||
tmp6 = (unk2 & 0x7C00) >> 2;
|
||||
tmp6 = (tmp6 * (0x20 - unk3)) >> 5;
|
||||
tmp3 = (color1 & 0x7C00) >> 2;
|
||||
tmp3 = (tmp3 * factor) >> 5;
|
||||
tmp6 = (color2 & 0x7C00) >> 2;
|
||||
tmp6 = (tmp6 * (0x20 - factor)) >> 5;
|
||||
tmp3 = (tmp3 + tmp6) >> 8;
|
||||
|
||||
return tmp1 | (tmp2 << 5) | (tmp3 << 10);
|
||||
}
|
||||
|
||||
void sub_08059960(const u16* unk1, const u16* unk2, u16* unk3, u8 unk4) {
|
||||
void MixPalettes(const u16* srcPalette1, const u16* srcPalette2, u16* destPalette, u8 factor) {
|
||||
u32 i;
|
||||
for (i = 0; i < 0x10; i++) {
|
||||
*unk3++ = sub_080598F8(*unk1++, *unk2++, unk4);
|
||||
*destPalette++ = MixColors(*srcPalette1++, *srcPalette2++, factor);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -98,8 +98,8 @@ void FigurineMenu_080A4608(void) {
|
|||
|
||||
SetBgmVolume(0x80);
|
||||
sub_080A4DA8(3);
|
||||
SetColor(0, gPaletteBuffer[0xfb]);
|
||||
SetColor(0x15c, gPaletteBuffer[0xd3]);
|
||||
SetColor(0, gPaletteBuffer[251]);
|
||||
SetColor(0x15c, gPaletteBuffer[211]);
|
||||
MemClear(&gBG0Buffer, sizeof(gBG0Buffer));
|
||||
MemClear(&gBG3Buffer, sizeof(gBG3Buffer));
|
||||
gScreen.controls.window0HorizontalDimensions = DISPLAY_WIDTH;
|
||||
|
|
|
|||
|
|
@ -57,7 +57,6 @@ void Subtask_PauseMenu(void) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
extern u8 gUnk_02034492[];
|
||||
void UpdateVisibleFusionMapMarkers(void);
|
||||
s32 sub_080A50A0(s32);
|
||||
|
|
@ -74,7 +73,7 @@ void PauseMenu_Variant0(void) {
|
|||
r1++;
|
||||
} while (r1 <= 0xd);
|
||||
location = GetOverworldLocation((u16)gRoomTransition.player_status.overworld_map_x,
|
||||
(u16)gRoomTransition.player_status.overworld_map_y);
|
||||
(u16)gRoomTransition.player_status.overworld_map_y);
|
||||
gPauseMenuOptions.unk2[4] = location->windcrestId;
|
||||
gPauseMenuOptions.unk2[5] = sub_0801DB94();
|
||||
if (IsItemEquipped(ITEM_LANTERN_ON) != EQUIP_SLOT_NONE) {
|
||||
|
|
@ -1062,17 +1061,19 @@ void sub_080A5BB8(void) {
|
|||
|
||||
void PauseMenu_Screen_5(void) {
|
||||
extern void (*const gUnk_08128D30[])(void);
|
||||
u32 uVar1;
|
||||
u32 temp;
|
||||
u32 paletteColor;
|
||||
u32 ticks;
|
||||
|
||||
gUnk_08128D30[gMenu.menuType]();
|
||||
DrawDungeonMapActually();
|
||||
temp = gMain.ticks;
|
||||
if ((temp & 7) == 0) {
|
||||
uVar1 = *gUnk_02017830;
|
||||
MemCopy(gUnk_02017830 + 1, gUnk_02017830, 0xe);
|
||||
gUnk_02017830[7] = uVar1;
|
||||
gUsedPalettes |= 0x1000;
|
||||
ticks = gMain.ticks;
|
||||
// TODO gUnk_02017830 is gPaletteBuffer[200]
|
||||
if ((ticks & 7) == 0) {
|
||||
// Rotate these 8 palette colors.
|
||||
paletteColor = *gUnk_02017830;
|
||||
MemCopy(gUnk_02017830 + 1, gUnk_02017830, 7 * 2);
|
||||
gUnk_02017830[7] = paletteColor;
|
||||
gUsedPalettes |= 1 << 12;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ void sub_080A698C(u32 param_1, u32 param_2, u32 param_3, u32 param_4) {
|
|||
int iVar1;
|
||||
|
||||
iVar1 = sub_080A69E0(param_1, param_2);
|
||||
if (iVar1 > 0) {
|
||||
if (iVar1 > 0) {
|
||||
((struct_sub_080A698C*)&gMapDataBottomSpecial)[gGenericMenu.unk2d].unk0 = param_4 >> 8;
|
||||
((struct_sub_080A698C*)&gMapDataBottomSpecial)[gGenericMenu.unk2d].unk1 = param_4;
|
||||
((struct_sub_080A698C*)&gMapDataBottomSpecial)[gGenericMenu.unk2d].unk2 = param_3;
|
||||
|
|
|
|||
|
|
@ -551,7 +551,8 @@ void sub_080626E0(Entity* this, ScriptExecutionContext* context) {
|
|||
}
|
||||
if (--context->unk_19 == 0) {
|
||||
context->unk_19 = 10;
|
||||
uVar4 = CalculateDirectionFromOffsets(context->x.HALF.HI - this->x.HALF.HI, context->y.HALF.HI - this->y.HALF.HI);
|
||||
uVar4 =
|
||||
CalculateDirectionFromOffsets(context->x.HALF.HI - this->x.HALF.HI, context->y.HALF.HI - this->y.HALF.HI);
|
||||
this->direction = (u8)uVar4;
|
||||
uVar4 = Random();
|
||||
this->direction = (this->direction + uVar4 % 0xb) - 5;
|
||||
|
|
|
|||
|
|
@ -180,11 +180,9 @@ const NPCDefinition gNPCDefinition_52[] = {
|
|||
};
|
||||
#endif
|
||||
|
||||
#define MULTI_FORM(definition_ptr) \
|
||||
{ \
|
||||
{ 2, 0, 0, 0, 0, 0, 0 }, { \
|
||||
.definition = (definition_ptr) \
|
||||
} \
|
||||
#define MULTI_FORM(definition_ptr) \
|
||||
{ \
|
||||
{ 2, 0, 0, 0, 0, 0, 0 }, { .definition = (definition_ptr) } \
|
||||
}
|
||||
|
||||
const NPCDefinition gNPCDefinitions[] = {
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
* @brief Bench object
|
||||
*/
|
||||
#define NENT_DEPRECATED
|
||||
#include "asm.h"
|
||||
#include "entity.h"
|
||||
#include "functions.h"
|
||||
#include "player.h"
|
||||
|
|
@ -38,7 +39,7 @@ void Bench_Init(BenchEntity* this) {
|
|||
super->collisionLayer = 1;
|
||||
}
|
||||
UpdateSpriteForCollisionLayer(super);
|
||||
sub_08000148(0x47, this->tilePos - 0x40, 1);
|
||||
SetCollisionData(0x47, this->tilePos - 0x40, 1);
|
||||
}
|
||||
|
||||
void Bench_Action1(BenchEntity* this) {
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ void sub_0808B3AC(BollardEntity* this) {
|
|||
super->spritePriority.b0 = 4;
|
||||
this->tile = COORD_TO_TILE(super);
|
||||
this->tileIndex = GetTileIndex(this->tile, super->collisionLayer);
|
||||
this->unk74 = sub_080B1B44(this->tile, super->collisionLayer);
|
||||
this->unk74 = GetCollisionData(this->tile, super->collisionLayer);
|
||||
SetTile(0x400b, this->tile, super->collisionLayer);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ u32 sub_08081E0C(Entity*);
|
|||
|
||||
Entity* sub_08081D74(Entity* this) {
|
||||
Entity* ent;
|
||||
if (sub_080B1B44(this->field_0x74.HWORD, this->collisionLayer) == 0xF) {
|
||||
if (GetCollisionData(this->field_0x74.HWORD, this->collisionLayer) == 0xF) {
|
||||
return 0;
|
||||
}
|
||||
ent = 0;
|
||||
|
|
@ -233,7 +233,7 @@ void sub_08081E6C(Entity* this) {
|
|||
|
||||
// Are the two tiles already set to the correct one
|
||||
bool32 sub_08081F00(u32* screenblock, u32* metatileList) {
|
||||
if (screenblock[0] != metatileList[0])
|
||||
if (screenblock[0] != metatileList[0])
|
||||
return FALSE;
|
||||
if (screenblock[0x40] != metatileList[1])
|
||||
return FALSE;
|
||||
|
|
|
|||
|
|
@ -714,7 +714,8 @@ void sub_0809567C(CutsceneMiscObjectEntity* this) {
|
|||
super->action = 3;
|
||||
super->subAction = 1;
|
||||
super->speed = 0x400;
|
||||
super->direction = CalculateDirectionFromOffsets(super->x.WORD - ((s16)this->px << 16), super->y.WORD - ((s16)this->py << 16));
|
||||
super->direction =
|
||||
CalculateDirectionFromOffsets(super->x.WORD - ((s16)this->px << 16), super->y.WORD - ((s16)this->py << 16));
|
||||
}
|
||||
|
||||
void sub_080956B4(CutsceneMiscObjectEntity* this) {
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ void Mask_Init(Entity* this) {
|
|||
this->field_0x7c.HALF_U.HI = COORD_TO_TILE(this);
|
||||
this->field_0x7c.HALF_U.LO = GetTileIndex(this->field_0x7c.HALF_U.HI, 1);
|
||||
|
||||
this->field_0x7a.HWORD = sub_080B1B44((u16)this->field_0x7c.HALF.HI, 1);
|
||||
this->field_0x7a.HWORD = GetCollisionData((u16)this->field_0x7c.HALF.HI, 1);
|
||||
|
||||
SetTile(0x4022, this->field_0x7c.HALF_U.HI, 1);
|
||||
}
|
||||
|
|
@ -90,7 +90,7 @@ void Mask_Action1(Entity* this) {
|
|||
// Presumably, make the mask fall
|
||||
SetTile(this->field_0x7c.HALF_U.LO, this->field_0x7c.HALF_U.HI, 1);
|
||||
|
||||
sub_08000148(this->field_0x7a.HWORD, (u16)this->field_0x7c.HALF.HI, 1);
|
||||
SetCollisionData(this->field_0x7a.HWORD, (u16)this->field_0x7c.HALF.HI, 1);
|
||||
|
||||
this->action = 2;
|
||||
|
||||
|
|
|
|||
|
|
@ -171,8 +171,9 @@ void OctorokBossObject_Action1(Entity* this) {
|
|||
return;
|
||||
}
|
||||
case 1:
|
||||
this->direction = CalculateDirectionFromOffsets(GET_HELPER(this)->tailObjects[this->timer]->x.WORD - this->x.WORD,
|
||||
GET_HELPER(this)->tailObjects[this->timer]->y.WORD - this->y.WORD);
|
||||
this->direction =
|
||||
CalculateDirectionFromOffsets(GET_HELPER(this)->tailObjects[this->timer]->x.WORD - this->x.WORD,
|
||||
GET_HELPER(this)->tailObjects[this->timer]->y.WORD - this->y.WORD);
|
||||
LinearMoveAngle(this, this->speed, this->direction);
|
||||
if (EntityInRectRadius(this, GET_HELPER(this)->tailObjects[this->timer], 2, 2) == 0) {
|
||||
return;
|
||||
|
|
@ -197,7 +198,8 @@ void OctorokBossObject_Action1(Entity* this) {
|
|||
case 2:
|
||||
if (this->parent->type2 == 3) {
|
||||
Entity* object = GET_HELPER(this->parent)->mouthObject;
|
||||
this->direction = CalculateDirectionFromOffsets(object->x.WORD - this->x.WORD, object->y.WORD - this->y.WORD);
|
||||
this->direction =
|
||||
CalculateDirectionFromOffsets(object->x.WORD - this->x.WORD, object->y.WORD - this->y.WORD);
|
||||
LinearMoveAngle(this, 0x280, this->direction);
|
||||
if (sub_0806FC80(this, this->parent, 0x48) == 0) {
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -312,27 +312,27 @@ void sub_0808FDE8(PushableFurnitureEntity* this) {
|
|||
u32 uVar3;
|
||||
|
||||
uVar3 = (u32)this->unk_70;
|
||||
uVar1 = sub_080B1B44(uVar3 - 1, 1);
|
||||
uVar1 = GetCollisionData(uVar3 - 1, 1);
|
||||
iVar2 = GetTileIndex(uVar3, 1);
|
||||
if (iVar2 == 0x402e) {
|
||||
if ((((uVar1 & 0xf0) != 0) && ((uVar1 & 0xf0) != 0x50)) || ((uVar1 & 5) == 0)) {
|
||||
SetTile(0x402c, uVar3, 1);
|
||||
}
|
||||
} else {
|
||||
iVar2 = sub_080B1B44(uVar3, 1);
|
||||
iVar2 = GetCollisionData(uVar3, 1);
|
||||
if ((iVar2 == 5) && ((((uVar1 & 0xf0) == 0 || ((uVar1 & 0xf0) == 0x50)) && ((uVar1 & 5) != 0)))) {
|
||||
SetTile(0x402e, uVar3, 1);
|
||||
}
|
||||
}
|
||||
uVar3 = (u32)this->unk_72;
|
||||
uVar1 = sub_080B1B44(uVar3 + 1, 1);
|
||||
uVar1 = GetCollisionData(uVar3 + 1, 1);
|
||||
iVar2 = GetTileIndex(uVar3, 1);
|
||||
if (iVar2 == 0x402f) {
|
||||
if ((((uVar1 & 0xf0) != 0) && ((uVar1 & 0xf0) != 0x50)) || ((uVar1 & 10) == 0)) {
|
||||
SetTile(0x402d, uVar3, 1);
|
||||
}
|
||||
} else {
|
||||
iVar2 = sub_080B1B44(uVar3, 1);
|
||||
iVar2 = GetCollisionData(uVar3, 1);
|
||||
if (((iVar2 == 10) && (((uVar1 & 0xf0) == 0 || ((uVar1 & 0xf0) == 0x50)))) && ((uVar1 & 10) != 0)) {
|
||||
SetTile(0x402f, uVar3, 1);
|
||||
}
|
||||
|
|
@ -411,7 +411,7 @@ void sub_08090094(PushableFurnitureEntity* this, u32 param_2, u32 tilePos) {
|
|||
u32 index;
|
||||
u32 tmp2;
|
||||
|
||||
tmp1 = sub_080B1B44(tilePos, 1);
|
||||
tmp1 = GetCollisionData(tilePos, 1);
|
||||
index = GetTileIndex(tilePos, 1);
|
||||
if ((index & 0x4000) == 0) {
|
||||
index = param_2;
|
||||
|
|
@ -599,12 +599,12 @@ void sub_08090498(PushableFurnitureEntity* this) {
|
|||
u32 tmp = this->unk_70 - 0x80;
|
||||
RestorePrevTileEntity(tmp, 1);
|
||||
if (((this->unk_83 & 1) != 0) && (GetTileType(tmp, 2) == 0x306)) {
|
||||
sub_08000148(0x62, tmp, 1);
|
||||
SetCollisionData(0x62, tmp, 1);
|
||||
}
|
||||
tmp = this->unk_72 - 0x80;
|
||||
RestorePrevTileEntity(tmp, 1);
|
||||
if (((this->unk_83 & 2) != 0) && (GetTileType(tmp, 2) == 0x308)) {
|
||||
sub_08000148(99, tmp, 1);
|
||||
SetCollisionData(99, tmp, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ void sub_0808A644(PushableRockEntity* this) {
|
|||
u32 tmp;
|
||||
this->tilePosition = COORD_TO_TILE(super);
|
||||
this->tileIndex = GetTileIndex(this->tilePosition, super->collisionLayer);
|
||||
this->unk_72 = sub_080B1B44(this->tilePosition, super->collisionLayer);
|
||||
this->unk_72 = GetCollisionData(this->tilePosition, super->collisionLayer);
|
||||
tmp = sub_080B1AE0(this->tilePosition, super->collisionLayer);
|
||||
if ((tmp == 0x19) || (tmp == 0xf0)) {
|
||||
SetTile(0x4015, this->tilePosition, super->collisionLayer);
|
||||
|
|
|
|||
|
|
@ -201,7 +201,8 @@ void sub_080845DC(SpecialFxObject* this) {
|
|||
|
||||
void sub_080845F8(SpecialFxObject* this) {
|
||||
if (((8 - (super->x.HALF.HI & 0xF)) | (8 - (super->y.HALF.HI & 0xF))) != 0) {
|
||||
super->direction = CalculateDirectionFromOffsets((8 - (super->x.HALF.HI & 0xF)), (8 - (super->y.HALF.HI & 0xF))) >> 3;
|
||||
super->direction =
|
||||
CalculateDirectionFromOffsets((8 - (super->x.HALF.HI & 0xF)), (8 - (super->y.HALF.HI & 0xF))) >> 3;
|
||||
LinearMoveUpdate(super);
|
||||
}
|
||||
sub_08084630(this);
|
||||
|
|
|
|||
|
|
@ -1431,11 +1431,9 @@ const ObjectDefinition gObjectDefinition_0[] = {
|
|||
};
|
||||
#endif
|
||||
|
||||
#define MULTI_FORM(definition_ptr) \
|
||||
{ \
|
||||
{ 2, 0, 0, 0, 0, 0, 0 }, { \
|
||||
.definition = definition_ptr \
|
||||
} \
|
||||
#define MULTI_FORM(definition_ptr) \
|
||||
{ \
|
||||
{ 2, 0, 0, 0, 0, 0, 0 }, { .definition = definition_ptr } \
|
||||
}
|
||||
const ObjectDefinition gObjectDefinitions[] = {
|
||||
MULTI_FORM(gObjectDefinition_0),
|
||||
|
|
|
|||
|
|
@ -442,8 +442,8 @@ u32 sub_0806FCAC(Entity* this, Entity* other) {
|
|||
return sub_0806F5B0(GetFacingDirection(this, other));
|
||||
}
|
||||
|
||||
bool32 EntityWithinDistance(Entity* ent, s32 x, s32 y, s32 distance) {
|
||||
return PointInsideRadius(ent->x.HALF.HI - x, ent->y.HALF.HI - y, distance);
|
||||
bool32 EntityWithinDistance(Entity* entity, s32 x, s32 y, s32 distance) {
|
||||
return PointInsideRadius(entity->x.HALF.HI - x, entity->y.HALF.HI - y, distance);
|
||||
}
|
||||
|
||||
bool32 PointInsideRadius(s32 x, s32 y, s32 distance) {
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
#include "global.h"
|
||||
#include "item.h"
|
||||
#include "kinstone.h"
|
||||
#include "main.h"
|
||||
#include "manager/diggingCaveEntranceManager.h"
|
||||
#include "message.h"
|
||||
#include "new_player.h"
|
||||
|
|
@ -33,7 +34,6 @@ void sub_080790E4(Entity* this);
|
|||
void sub_08079064(Entity*);
|
||||
|
||||
extern u8 gMapData;
|
||||
extern const u8 gUnk_020176E0[];
|
||||
extern const u8 gUnk_0800851C[];
|
||||
extern const u8 gUnk_080084BC[];
|
||||
extern const u8 gUnk_0800845C[];
|
||||
|
|
@ -126,8 +126,6 @@ extern const u8 gUnk_080B3E80[];
|
|||
// collisions for tiles > 0x4000
|
||||
extern const u8 gUnk_080B79A7[];
|
||||
|
||||
extern void RenderTilemapToScreenblock(u16*, LayerStruct*);
|
||||
|
||||
extern u16 gUnk_080B77C0[];
|
||||
|
||||
void sub_0807BFA8(void);
|
||||
|
|
@ -1736,7 +1734,7 @@ void RespawnPlayer(void) {
|
|||
index = 0;
|
||||
if (gPlayerState.path_memory[0] != 0xffffffff) {
|
||||
ptr1 = gPlayerState.path_memory;
|
||||
while (sub_080B1B44((u16)*ptr1, *ptr1 >> 0x1e) == 0xf) {
|
||||
while (GetCollisionData((u16)*ptr1, *ptr1 >> 0x1e) == 0xf) {
|
||||
ptr1++;
|
||||
index++;
|
||||
if ((index > 0xf) || (*ptr1 == -1)) {
|
||||
|
|
@ -1886,7 +1884,7 @@ void sub_080797EC(void) {
|
|||
} else {
|
||||
animation = 0x16c;
|
||||
if (sub_080793E4(0)) {
|
||||
if (sub_080B1B44(GetPlayerTilePos(), gPlayerEntity.collisionLayer) != 0xff) {
|
||||
if (GetCollisionData(GetPlayerTilePos(), gPlayerEntity.collisionLayer) != 0xff) {
|
||||
gPlayerState.sword_state &= ~8;
|
||||
animation = 0x170;
|
||||
}
|
||||
|
|
@ -1920,7 +1918,7 @@ void sub_080797EC(void) {
|
|||
} else if (gPlayerState.sword_state != 0) {
|
||||
animation = 0x16c;
|
||||
if (sub_080793E4(0)) {
|
||||
if (sub_080B1B44(GetPlayerTilePos(), (u32)gPlayerEntity.collisionLayer) != 0xff) {
|
||||
if (GetCollisionData(GetPlayerTilePos(), (u32)gPlayerEntity.collisionLayer) != 0xff) {
|
||||
gPlayerState.sword_state &= ~8;
|
||||
animation = 0x170;
|
||||
}
|
||||
|
|
@ -2476,7 +2474,7 @@ void sub_0807A750(u32 param_1, u32 param_2, const u8* param_3, u32 param_4) {
|
|||
index = param_1 % 16;
|
||||
}
|
||||
if ((index != 0) && (index != 0xf)) {
|
||||
uVar2 = sub_080B1B44((param_1 >> 4 & 0x3f) | (param_2 >> 4 & 0x3f) << 6, gPlayerEntity.collisionLayer);
|
||||
uVar2 = GetCollisionData((param_1 >> 4 & 0x3f) | (param_2 >> 4 & 0x3f) << 6, gPlayerEntity.collisionLayer);
|
||||
if (uVar2 > 0xf) {
|
||||
if (uVar2 != 0xff) {
|
||||
uVar2 = param_3[uVar2 - 0x10];
|
||||
|
|
@ -2957,7 +2955,6 @@ void sub_0807B2F8(PlayerEntity* this) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
// tileType < 0x800 : set the MetaTileType
|
||||
// tileType >= 0x4000 : call SetTile directly
|
||||
// else : restore the previous tile entity
|
||||
|
|
@ -3095,10 +3092,10 @@ u32 sub_0807B600(u32 param_1) {
|
|||
} else {
|
||||
if (GetTileType(param_1, 2) != 0) {
|
||||
SetTileType(0x2f2, param_1, 1);
|
||||
if (sub_080B1B44(tile, 1) == 3) {
|
||||
if (GetCollisionData(tile, 1) == 3) {
|
||||
SetTileType(0x2f4, tile, 1);
|
||||
}
|
||||
if (sub_080B1B44(param_1 + 0x40, 1) == 3) {
|
||||
if (GetCollisionData(param_1 + 0x40, 1) == 3) {
|
||||
SetTileType(0x2f4, param_1, 1);
|
||||
}
|
||||
} else {
|
||||
|
|
@ -3630,18 +3627,20 @@ void sub_0807C460(void) {
|
|||
}
|
||||
|
||||
void sub_0807C4F8(void) {
|
||||
// TODO convert to MapDataDefinition*
|
||||
u32* puVar1;
|
||||
u32* ptr;
|
||||
|
||||
if (gRoomControls.area != 0x71) {
|
||||
if (gRoomControls.area != AREA_PALACE_OF_WINDS_BOSS) {
|
||||
MemClear(gMapDataBottomSpecial, 0x8000);
|
||||
MemClear(&gMapDataTopSpecial, 0x8000);
|
||||
MemClear(gMapDataTopSpecial, 0x8000);
|
||||
ptr = gUnk_02022830;
|
||||
puVar1 = (u32*)(gArea.pCurrentRoomInfo)->map;
|
||||
puVar1 -= 3;
|
||||
do {
|
||||
puVar1 += 3;
|
||||
if (((u16*)puVar1[1] == gMapDataBottomSpecial) || ((u16*)puVar1[1] == (u16*)&gMapDataTopSpecial)) {
|
||||
// only store the map data definitions for bitmap backgrounds in gUnk_02022830?
|
||||
ptr[0] = puVar1[0] & 0x7fffffff;
|
||||
ptr[1] = puVar1[1];
|
||||
ptr[2] = puVar1[2];
|
||||
|
|
@ -3895,8 +3894,8 @@ void sub_0807C9D8(u32* a1) {
|
|||
LoadCompressedMapData((u8*)0x6004000, *a1);
|
||||
LoadCompressedMapData((u8*)0x6000000, v1[1]);
|
||||
LoadCompressedMapData((u8*)0x6008000, v1[2]);
|
||||
LoadCompressedMapData((u8*)gUnk_020176E0, v1[3]);
|
||||
LoadPalettes(gUnk_020176E0, 2, 13);
|
||||
LoadCompressedMapData((u8*)(gPaletteBuffer + 32), v1[3]);
|
||||
LoadPalettes((u8*)(gPaletteBuffer + 32), 2, 13);
|
||||
}
|
||||
|
||||
u32 FinalizeSave(void) {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
#include "room.h"
|
||||
#include "physics.h"
|
||||
|
||||
extern u32 sub_080B1B44(u32, u32);
|
||||
extern u32 GetCollisionData(u32, u32);
|
||||
|
||||
extern void (*const Projectile5_Functions[])(Entity*);
|
||||
extern void (*const Projectile5_Actions[])(Entity*);
|
||||
|
|
@ -28,7 +28,7 @@ void sub_080A86F0(Entity* this) {
|
|||
pbVar2 = &this->parent->field_0x82.HALF.HI;
|
||||
if ((this->parent->field_0x82.HALF.HI & 0x3f) == 3) {
|
||||
if (gPlayerState.hurtBlinkSpeed != 0) {
|
||||
if (sub_080B1B44(TILE(this->x.HALF.HI, this->y.HALF.HI), gPlayerEntity.collisionLayer) == 0) {
|
||||
if (GetCollisionData(TILE(this->x.HALF.HI, this->y.HALF.HI), gPlayerEntity.collisionLayer) == 0) {
|
||||
if (this->contactFlags == 0x80) {
|
||||
*pbVar2 = *pbVar2 & 0x7f;
|
||||
DeleteThisEntity();
|
||||
|
|
|
|||
|
|
@ -194,10 +194,12 @@ static void sub_0804B058(EntityData* dat) {
|
|||
uVar2 = 0;
|
||||
do {
|
||||
if ((uVar2 < 0x20) && ((dat->kind & 0xF) == 3)) {
|
||||
if (IsRoomTrackerFlagSet(uVar2) ) {
|
||||
if (IsRoomTrackerFlagSet(uVar2)) {
|
||||
ent = LoadRoomEntity(dat);
|
||||
if ((ent != NULL) && (ent->kind == ENEMY)) {
|
||||
ent->field_0x6c.HALF.LO = uVar2 | 0x80; // TODO Set the room tracker flag that can be set by the enemy so it does not appear next time the room is visited?
|
||||
ent->field_0x6c.HALF.LO =
|
||||
uVar2 | 0x80; // TODO Set the room tracker flag that can be set by the enemy so it does not
|
||||
// appear next time the room is visited?
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
#include "global.h"
|
||||
|
||||
// Called when gUpdateVisibleTiles == 2
|
||||
ASM_FUNC("asm/non_matching/code_0807CC3C/sub_0807D280.inc", void sub_0807D280(u32 unk_1, u32 unk_2))
|
||||
|
||||
// Called when gUpdateVisibleTiles == 3
|
||||
ASM_FUNC("asm/non_matching/code_0807CC3C/sub_0807D46C.inc", void sub_0807D46C(u32 unk_1, u32 unk_2))
|
||||
|
||||
// Called when gUpdateVisibleTiles == 4
|
||||
ASM_FUNC("asm/non_matching/code_0807CC3C/sub_0807D6D8.inc", void sub_0807D6D8(u32 unk_1, u32 unk_2))
|
||||
|
|
|
|||
|
|
@ -1382,7 +1382,7 @@ void ScriptCommand_MoveTo(Entity* entity, ScriptExecutionContext* context) {
|
|||
|
||||
void ScriptCommand_LookAt(Entity* entity, ScriptExecutionContext* context) {
|
||||
LookAt(entity, context, context->scriptInstructionPointer[1] + gRoomControls.origin_x,
|
||||
context->scriptInstructionPointer[2] + gRoomControls.origin_y);
|
||||
context->scriptInstructionPointer[2] + gRoomControls.origin_y);
|
||||
gActiveScriptInfo.flags |= 1;
|
||||
}
|
||||
|
||||
|
|
@ -1390,8 +1390,8 @@ void ScriptCommand_MoveTowardsTarget(Entity* entity, ScriptExecutionContext* con
|
|||
s32 tmp, tmp2;
|
||||
if (!--context->unk_19) {
|
||||
context->unk_19 = 8;
|
||||
entity->direction =
|
||||
CalculateDirectionFromOffsets(context->x.HALF.HI - entity->x.HALF.HI, context->y.HALF.HI - entity->y.HALF.HI);
|
||||
entity->direction = CalculateDirectionFromOffsets(context->x.HALF.HI - entity->x.HALF.HI,
|
||||
context->y.HALF.HI - entity->y.HALF.HI);
|
||||
}
|
||||
tmp = entity->x.HALF.HI - context->x.HALF.HI;
|
||||
tmp2 = entity->y.HALF.HI - context->y.HALF.HI;
|
||||
|
|
@ -1423,7 +1423,7 @@ void ScriptCommand_MoveToOffset(Entity* entity, ScriptExecutionContext* context)
|
|||
if (!context->unk_18) {
|
||||
context->unk_18 = 1;
|
||||
LookAt(entity, context, entity->x.HALF.HI + ((s16)context->scriptInstructionPointer[1]),
|
||||
entity->y.HALF.HI + ((s16)context->scriptInstructionPointer[2]));
|
||||
entity->y.HALF.HI + ((s16)context->scriptInstructionPointer[2]));
|
||||
}
|
||||
ScriptCommand_MoveTowardsTarget(entity, context);
|
||||
// Repeat this command until we are at the target.
|
||||
|
|
|
|||
264
src/scroll.c
264
src/scroll.c
|
|
@ -27,29 +27,29 @@ extern void sub_0805E248();
|
|||
|
||||
extern u8 gUpdateVisibleTiles;
|
||||
extern u16 gUnk_0200B640;
|
||||
extern u32** gUnk_08109194[];
|
||||
extern MapDataDefinition** gCaveBorderMapData[];
|
||||
extern u32 gUnk_02022830[];
|
||||
extern u16 gUnk_020246B0[];
|
||||
extern u8 gUnk_080B7910[];
|
||||
|
||||
void sub_0807FC64(RoomControls*);
|
||||
void sub_0807FC7C(RoomControls*);
|
||||
void sub_0807FDB0(RoomControls*);
|
||||
void sub_0807FEF0(RoomControls*);
|
||||
void sub_0807FF54(RoomControls*);
|
||||
void sub_0807FDC8(RoomControls*);
|
||||
void sub_0807FDE4(RoomControls*);
|
||||
void sub_0807FDF8(RoomControls*);
|
||||
void Scroll0(RoomControls*);
|
||||
void Scroll1(RoomControls*);
|
||||
void Scroll2(RoomControls*);
|
||||
void Scroll4(RoomControls*);
|
||||
void Scroll5(RoomControls*);
|
||||
void Scroll2Sub0(RoomControls*);
|
||||
void Scroll2Sub1(RoomControls*);
|
||||
void Scroll2Sub2(RoomControls*);
|
||||
void sub_0807FEC8(RoomControls*);
|
||||
void sub_0807FF08(RoomControls*);
|
||||
void sub_0807FF1C(RoomControls*);
|
||||
void Scroll4Sub0(RoomControls*);
|
||||
void Scroll4Sub1(RoomControls*);
|
||||
|
||||
void sub_0807FF6C(RoomControls*);
|
||||
void sub_0807FFE4(RoomControls*);
|
||||
void sub_08080040(RoomControls*);
|
||||
void sub_08080108(RoomControls*);
|
||||
void sub_08080198(RoomControls*);
|
||||
void sub_080801BC(RoomControls*);
|
||||
void Scroll5Sub0(RoomControls*);
|
||||
void Scroll5Sub1(RoomControls*);
|
||||
void Scroll5Sub2(RoomControls*);
|
||||
void Scroll5Sub3(RoomControls*);
|
||||
void Scroll5Sub4(RoomControls*);
|
||||
void Scroll5Sub5(RoomControls*);
|
||||
u32 sub_080803D0();
|
||||
u32 sub_08080278();
|
||||
void sub_08080C80(MapDataDefinition*);
|
||||
|
|
@ -68,32 +68,32 @@ extern const s8 gScreenShakeOffsets[];
|
|||
|
||||
void UpdateScroll(void) {
|
||||
static void (*const gUnk_0811E768[])(RoomControls*) = {
|
||||
sub_0807FC64, sub_0807FC7C, sub_0807FDB0, NULL, sub_0807FEF0, sub_0807FF54,
|
||||
Scroll0, Scroll1, Scroll2, NULL, Scroll4, Scroll5,
|
||||
};
|
||||
|
||||
gRoomControls.scroll_flags &= 0xfb;
|
||||
gUnk_0811E768[gRoomControls.scrollAction](&gRoomControls);
|
||||
}
|
||||
|
||||
void sub_0807FC64(RoomControls* controls) {
|
||||
void Scroll0(RoomControls* controls) {
|
||||
controls->scrollAction = 1;
|
||||
controls->reload_flags = 0;
|
||||
controls->scrollSpeed = 4;
|
||||
sub_0807FC7C(controls);
|
||||
Scroll1(controls);
|
||||
UpdateIsDiggingCave();
|
||||
}
|
||||
|
||||
// Scroll until target is at the center of the screen.
|
||||
void sub_0807FC7C(RoomControls* controls) {
|
||||
void Scroll1(RoomControls* controls) {
|
||||
s32 uVar2;
|
||||
s32 diff;
|
||||
s32 iVar4;
|
||||
s32 unused;
|
||||
s32 uVar5;
|
||||
s32 targetValue;
|
||||
|
||||
if (controls->camera_target != NULL) {
|
||||
// Scroll in x direction.
|
||||
iVar4 = controls->scroll_x;
|
||||
unused = controls->scroll_x;
|
||||
targetValue = controls->camera_target->x.HALF.HI - 0x78;
|
||||
diff = controls->scroll_x - targetValue;
|
||||
if (diff != 0) {
|
||||
|
|
@ -131,7 +131,7 @@ void sub_0807FC7C(RoomControls* controls) {
|
|||
}
|
||||
|
||||
// Scroll in y direction.
|
||||
iVar4 = controls->scroll_y;
|
||||
unused = controls->scroll_y;
|
||||
targetValue = controls->camera_target->y.HALF.HI - 0x50;
|
||||
diff = controls->scroll_y - (targetValue);
|
||||
if (diff != 0) {
|
||||
|
|
@ -171,41 +171,39 @@ void sub_0807FC7C(RoomControls* controls) {
|
|||
UpdateScreenShake();
|
||||
}
|
||||
|
||||
void sub_0807FDB0(RoomControls* controls) {
|
||||
static void (*const gUnk_0811E780[])(RoomControls*) = {
|
||||
sub_0807FDC8,
|
||||
sub_0807FDE4,
|
||||
sub_0807FDF8,
|
||||
void Scroll2(RoomControls* controls) {
|
||||
static void (*const Scroll2_SubActions[])(RoomControls*) = {
|
||||
Scroll2Sub0,
|
||||
Scroll2Sub1,
|
||||
Scroll2Sub2,
|
||||
};
|
||||
gUnk_0811E780[controls->scrollSubAction](controls);
|
||||
Scroll2_SubActions[controls->scrollSubAction](controls);
|
||||
}
|
||||
|
||||
void sub_0807FDC8(RoomControls* controls) {
|
||||
void Scroll2Sub0(RoomControls* controls) {
|
||||
gUpdateVisibleTiles = 1;
|
||||
UpdateScrollVram();
|
||||
controls->scrollSubAction = 1;
|
||||
gUpdateVisibleTiles = 0;
|
||||
}
|
||||
|
||||
void sub_0807FDE4(RoomControls* controls) {
|
||||
void Scroll2Sub1(RoomControls* controls) {
|
||||
controls->scrollSubAction = 2;
|
||||
controls->unk_18 = 0;
|
||||
gUpdateVisibleTiles = 2;
|
||||
}
|
||||
|
||||
void sub_0807FDF8(RoomControls* controls) {
|
||||
u32 bVar1;
|
||||
Entity* pEVar2;
|
||||
s32 iVar3;
|
||||
void Scroll2Sub2(RoomControls* controls) {
|
||||
Entity* target;
|
||||
|
||||
gUpdateVisibleTiles = 2;
|
||||
controls->unk_18++;
|
||||
switch (controls->scroll_direction) {
|
||||
case 0:
|
||||
controls->scroll_y -= 4;
|
||||
pEVar2 = controls->camera_target;
|
||||
if (pEVar2 == &gPlayerEntity) {
|
||||
pEVar2->y.WORD = gPlayerEntity.y.WORD - Q_16_16(0.375);
|
||||
target = controls->camera_target;
|
||||
if (target == &gPlayerEntity) {
|
||||
target->y.WORD = gPlayerEntity.y.WORD - Q_16_16(0.375);
|
||||
}
|
||||
if (controls->unk_18 == 0x28) {
|
||||
sub_0807FEC8(controls);
|
||||
|
|
@ -222,9 +220,9 @@ void sub_0807FDF8(RoomControls* controls) {
|
|||
break;
|
||||
case 2:
|
||||
controls->scroll_y = controls->scroll_y + 4;
|
||||
pEVar2 = controls->camera_target;
|
||||
if (pEVar2 == &gPlayerEntity) {
|
||||
pEVar2->y.WORD = gPlayerEntity.y.WORD + Q_16_16(0.375);
|
||||
target = controls->camera_target;
|
||||
if (target == &gPlayerEntity) {
|
||||
target->y.WORD = gPlayerEntity.y.WORD + Q_16_16(0.375);
|
||||
}
|
||||
if (controls->unk_18 == 0x28) {
|
||||
sub_0807FEC8(controls);
|
||||
|
|
@ -252,21 +250,21 @@ void sub_0807FEC8(RoomControls* controls) {
|
|||
gPlayerState.startPosY = controls->camera_target->y.HALF.HI;
|
||||
}
|
||||
|
||||
void sub_0807FEF0(RoomControls* controls) {
|
||||
static void (*const gUnk_0811E78C[])(RoomControls*) = {
|
||||
sub_0807FF08,
|
||||
sub_0807FF1C,
|
||||
void Scroll4(RoomControls* controls) {
|
||||
static void (*const Scroll4_SubActions[])(RoomControls*) = {
|
||||
Scroll4Sub0,
|
||||
Scroll4Sub1,
|
||||
};
|
||||
gUnk_0811E78C[controls->scrollSubAction](controls);
|
||||
Scroll4_SubActions[controls->scrollSubAction](controls);
|
||||
}
|
||||
|
||||
void sub_0807FF08(RoomControls* controls) {
|
||||
void Scroll4Sub0(RoomControls* controls) {
|
||||
controls->scrollSubAction = 1;
|
||||
controls->unk_18 = 0;
|
||||
gUpdateVisibleTiles = 3;
|
||||
}
|
||||
|
||||
void sub_0807FF1C(RoomControls* controls) {
|
||||
void Scroll4Sub1(RoomControls* controls) {
|
||||
if ((gRoomTransition.frameCount & 1U) == 0) {
|
||||
gUpdateVisibleTiles = 3;
|
||||
if (++controls->unk_18 > 0x13) {
|
||||
|
|
@ -276,14 +274,15 @@ void sub_0807FF1C(RoomControls* controls) {
|
|||
}
|
||||
}
|
||||
|
||||
void sub_0807FF54(RoomControls* controls) {
|
||||
static void (*const gUnk_0811E794[])(RoomControls*) = {
|
||||
sub_0807FF6C, sub_0807FFE4, sub_08080040, sub_08080108, sub_08080198, sub_080801BC,
|
||||
// Circular screen transition when entering a diggingCaveEntrance.
|
||||
void Scroll5(RoomControls* controls) {
|
||||
static void (*const Scroll5_SubActions[])(RoomControls*) = {
|
||||
Scroll5Sub0, Scroll5Sub1, Scroll5Sub2, Scroll5Sub3, Scroll5Sub4, Scroll5Sub5,
|
||||
};
|
||||
gUnk_0811E794[controls->scrollSubAction](controls);
|
||||
Scroll5_SubActions[controls->scrollSubAction](controls);
|
||||
}
|
||||
|
||||
void sub_0807FF6C(RoomControls* controls) {
|
||||
void Scroll5Sub0(RoomControls* controls) {
|
||||
controls->scrollSubAction = 1;
|
||||
gScreen.lcd.displayControl |= DISPCNT_WIN1_ON;
|
||||
gScreen.controls.windowInsideControl = (u8)gScreen.controls.windowInsideControl | 0x1700;
|
||||
|
|
@ -300,58 +299,58 @@ void sub_0807FF6C(RoomControls* controls) {
|
|||
sub_080809D4();
|
||||
}
|
||||
|
||||
void sub_0807FFE4(RoomControls* controls) {
|
||||
void Scroll5Sub1(RoomControls* controls) {
|
||||
controls->scrollSubAction = 2;
|
||||
controls->unk_18 = sub_080803D0() + 6;
|
||||
gUnk_0200B640 = sub_08080278();
|
||||
LoadMapData((MapDataDefinition*)*gUnk_08109194[gDiggingCaveEntranceTransition.entrance->type]);
|
||||
LoadMapData(gCaveBorderMapData[gDiggingCaveEntranceTransition.entrance->type][0]);
|
||||
sub_0807C8B0(gMapTop.mapData, controls->width >> 4, controls->height >> 4);
|
||||
RenderTilemapToScreenblock(gMapDataTopSpecial, &gMapTop);
|
||||
}
|
||||
|
||||
void sub_08080040(RoomControls* controls) {
|
||||
s32 iVar2;
|
||||
s32 iVar3;
|
||||
s32 uVar5;
|
||||
s32 uVar6;
|
||||
s32 iVar7;
|
||||
s32 temp;
|
||||
void Scroll5Sub2(RoomControls* controls) {
|
||||
s32 diffX;
|
||||
s32 diffY;
|
||||
s32 left;
|
||||
s32 right;
|
||||
s32 bottom;
|
||||
s32 top;
|
||||
|
||||
controls->unk_18 -= 6;
|
||||
controls->unk_1a = (controls->unk_18 << 1) / 3;
|
||||
if (0x2a < controls->unk_18) {
|
||||
iVar2 = controls->camera_target->x.HALF.HI - controls->scroll_x;
|
||||
uVar6 = (iVar2 - controls->unk_18) + 8;
|
||||
if (uVar6 < 0) {
|
||||
uVar6 = 0;
|
||||
controls->unk_1a = (controls->unk_18 * 2) / 3;
|
||||
if (controls->unk_18 > 0x2a) {
|
||||
diffX = controls->camera_target->x.HALF.HI - controls->scroll_x;
|
||||
left = (diffX - controls->unk_18) + 8;
|
||||
if (left < 0) {
|
||||
left = 0;
|
||||
}
|
||||
iVar7 = iVar2 + controls->unk_18 - 8;
|
||||
if (DISPLAY_WIDTH < iVar7) {
|
||||
iVar7 = DISPLAY_WIDTH;
|
||||
right = diffX + controls->unk_18 - 8;
|
||||
if (right > DISPLAY_WIDTH) {
|
||||
right = DISPLAY_WIDTH;
|
||||
}
|
||||
temp = controls->camera_target->y.HALF.HI - controls->scroll_y;
|
||||
uVar5 = (temp - controls->unk_1a) + 8;
|
||||
if (uVar5 < 0) {
|
||||
uVar5 = 0;
|
||||
diffY = controls->camera_target->y.HALF.HI - controls->scroll_y;
|
||||
bottom = (diffY - controls->unk_1a) + 8;
|
||||
if (bottom < 0) {
|
||||
bottom = 0;
|
||||
}
|
||||
iVar3 = temp + controls->unk_1a - 8;
|
||||
if (DISPLAY_HEIGHT < iVar3) {
|
||||
iVar3 = DISPLAY_HEIGHT;
|
||||
top = diffY + controls->unk_1a - 8;
|
||||
if (top > DISPLAY_HEIGHT) {
|
||||
top = DISPLAY_HEIGHT;
|
||||
}
|
||||
gScreen.controls.window1HorizontalDimensions = ((uVar6 & 0xff) << 8) | (iVar7 & 0xff);
|
||||
gScreen.controls.window1VerticalDimensions = ((uVar5 & 0xff) << 8) | (iVar3 & 0xff);
|
||||
gScreen.controls.window1HorizontalDimensions = ((left & 0xff) << 8) | (right & 0xff);
|
||||
gScreen.controls.window1VerticalDimensions = ((bottom & 0xff) << 8) | (top & 0xff);
|
||||
}
|
||||
if (controls->unk_18 == 0) {
|
||||
controls->scrollSubAction = 3;
|
||||
DeleteSleepingEntities();
|
||||
sub_0807C810();
|
||||
sub_08080C80((MapDataDefinition*)*(gUnk_08109194[gDiggingCaveEntranceTransition.entrance->type] + 1));
|
||||
sub_08080C80(gCaveBorderMapData[gDiggingCaveEntranceTransition.entrance->type][1]);
|
||||
} else {
|
||||
gUpdateVisibleTiles = 4;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08080108(RoomControls* controls) {
|
||||
void Scroll5Sub3(RoomControls* controls) {
|
||||
controls->scrollSubAction = 4;
|
||||
MemCopy(gMapBottom.mapData, gMapBottom.mapDataClone, sizeof(gMapBottom.mapData));
|
||||
MemCopy(gMapTop.mapData, gMapTop.mapDataClone, sizeof(gMapTop.mapData));
|
||||
|
|
@ -367,7 +366,7 @@ void sub_08080108(RoomControls* controls) {
|
|||
RenderTilemapToScreenblock(gMapDataTopSpecial, &gMapTop);
|
||||
}
|
||||
|
||||
void sub_08080198(RoomControls* controls) {
|
||||
void Scroll5Sub4(RoomControls* controls) {
|
||||
controls->scrollSubAction = 5;
|
||||
controls->unk_1c = 0xff;
|
||||
LoadRoom();
|
||||
|
|
@ -376,37 +375,37 @@ void sub_08080198(RoomControls* controls) {
|
|||
UpdateIsDiggingCave();
|
||||
}
|
||||
|
||||
void sub_080801BC(RoomControls* controls) {
|
||||
s32 iVar2;
|
||||
s32 iVar3;
|
||||
s32 uVar5;
|
||||
s32 uVar6;
|
||||
s32 iVar7;
|
||||
s32 temp;
|
||||
void Scroll5Sub5(RoomControls* controls) {
|
||||
s32 diffX;
|
||||
s32 diffY;
|
||||
s32 left;
|
||||
s32 right;
|
||||
s32 bottom;
|
||||
s32 top;
|
||||
|
||||
controls->unk_18 += 6;
|
||||
controls->unk_1a = (controls->unk_18 << 1) / 3;
|
||||
if (0x1e < controls->unk_18) {
|
||||
iVar2 = controls->camera_target->x.HALF.HI - controls->scroll_x;
|
||||
uVar6 = (iVar2 - controls->unk_18);
|
||||
if (uVar6 < 0) {
|
||||
uVar6 = 0;
|
||||
controls->unk_1a = (controls->unk_18 * 2) / 3;
|
||||
if (controls->unk_18 > 0x1e) {
|
||||
diffX = controls->camera_target->x.HALF.HI - controls->scroll_x;
|
||||
left = (diffX - controls->unk_18);
|
||||
if (left < 0) {
|
||||
left = 0;
|
||||
}
|
||||
iVar7 = iVar2 + controls->unk_18;
|
||||
if (DISPLAY_WIDTH < iVar7) {
|
||||
iVar7 = DISPLAY_WIDTH;
|
||||
right = diffX + controls->unk_18;
|
||||
if (right > DISPLAY_WIDTH) {
|
||||
right = DISPLAY_WIDTH;
|
||||
}
|
||||
temp = controls->camera_target->y.HALF.HI - controls->scroll_y;
|
||||
uVar5 = (temp - controls->unk_1a);
|
||||
if (uVar5 < 0) {
|
||||
uVar5 = 0;
|
||||
diffY = controls->camera_target->y.HALF.HI - controls->scroll_y;
|
||||
bottom = (diffY - controls->unk_1a);
|
||||
if (bottom < 0) {
|
||||
bottom = 0;
|
||||
}
|
||||
iVar3 = temp + controls->unk_1a;
|
||||
if (DISPLAY_HEIGHT < iVar3) {
|
||||
iVar3 = DISPLAY_HEIGHT;
|
||||
top = diffY + controls->unk_1a;
|
||||
if (top > DISPLAY_HEIGHT) {
|
||||
top = DISPLAY_HEIGHT;
|
||||
}
|
||||
gScreen.controls.window1HorizontalDimensions = ((uVar6 & 0xff) << 8) | (iVar7 & 0xff);
|
||||
gScreen.controls.window1VerticalDimensions = ((uVar5 & 0xff) << 8) | (iVar3 & 0xff);
|
||||
gScreen.controls.window1HorizontalDimensions = ((left & 0xff) << 8) | (right & 0xff);
|
||||
gScreen.controls.window1VerticalDimensions = ((bottom & 0xff) << 8) | (top & 0xff);
|
||||
}
|
||||
if (controls->unk_1c == 0) {
|
||||
controls->scrollAction = 0;
|
||||
|
|
@ -532,7 +531,7 @@ void ClearTilemaps(void) {
|
|||
MemClear(&gMapDataTopSpecial, 0x8000);
|
||||
}
|
||||
|
||||
bool32 sub_080806BC(u32 param_1, u32 param_2, u32 param_3, u32 param_4) {
|
||||
bool32 sub_080806BC(u32 x, u32 y, u32 param_3, u32 param_4) {
|
||||
static bool32 (*const gUnk_0811E7AC[])(const Transition*, u32, u32, u32) = {
|
||||
sub_08080794,
|
||||
sub_08080808,
|
||||
|
|
@ -546,7 +545,7 @@ bool32 sub_080806BC(u32 param_1, u32 param_2, u32 param_3, u32 param_4) {
|
|||
puVar3 = (gArea.pCurrentRoomInfo->exits);
|
||||
while (*(u16*)puVar3 != 0xffff) {
|
||||
u32 uVar3 = *(u16*)puVar3;
|
||||
if ((((1 << uVar3) & param_4) != 0) && (gUnk_0811E7AC[uVar3](puVar3, param_1, param_2, param_3))) {
|
||||
if ((((1 << uVar3) & param_4) != 0) && (gUnk_0811E7AC[uVar3](puVar3, x, y, param_3))) {
|
||||
DoExitTransition((const ScreenTransitionData*)puVar3);
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -572,49 +571,49 @@ const Transition* sub_08080734(u32 param_1, u32 param_2) {
|
|||
return NULL;
|
||||
}
|
||||
|
||||
bool32 sub_08080794(const Transition* transition, u32 param_2, u32 param_3, u32 param_4) {
|
||||
u32 bVar1;
|
||||
bool32 sub_08080794(const Transition* transition, u32 x, u32 y, u32 param_4) {
|
||||
u32 shapeBitmask;
|
||||
|
||||
switch (param_4) {
|
||||
default:
|
||||
return 0;
|
||||
case 0:
|
||||
if (gRoomControls.width >> 1 < param_2) {
|
||||
bVar1 = 2;
|
||||
if (gRoomControls.width / 2 < x) {
|
||||
shapeBitmask = 2;
|
||||
} else {
|
||||
bVar1 = 1;
|
||||
shapeBitmask = 1;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (gRoomControls.height >> 1 < param_3) {
|
||||
bVar1 = 8;
|
||||
if (gRoomControls.height / 2 < y) {
|
||||
shapeBitmask = 8;
|
||||
} else {
|
||||
bVar1 = 4;
|
||||
shapeBitmask = 4;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (gRoomControls.width >> 1 < param_2) {
|
||||
bVar1 = 0x20;
|
||||
if (gRoomControls.width / 2 < x) {
|
||||
shapeBitmask = 0x20;
|
||||
} else {
|
||||
bVar1 = 0x10;
|
||||
shapeBitmask = 0x10;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (gRoomControls.height >> 1 < param_3) {
|
||||
bVar1 = 0x80;
|
||||
if (gRoomControls.height / 2 < y) {
|
||||
shapeBitmask = 0x80;
|
||||
} else {
|
||||
bVar1 = 0x40;
|
||||
shapeBitmask = 0x40;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ((transition->shape & bVar1) != 0) {
|
||||
return 1;
|
||||
if ((transition->shape & shapeBitmask) != 0) {
|
||||
return TRUE;
|
||||
}
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool32 sub_08080808(const Transition* param_1, u32 param_2, u32 param_3, u32 param_4) {
|
||||
bool32 sub_08080808(const Transition* param_1, u32 x, u32 y, u32 param_4) {
|
||||
static const u8 gUnk_0811E7BC[] = { 6, 6, 6, 14, 14, 6, 22, 6 };
|
||||
const u8* ptr;
|
||||
u32 temp;
|
||||
|
|
@ -623,10 +622,10 @@ bool32 sub_08080808(const Transition* param_1, u32 param_2, u32 param_3, u32 par
|
|||
u32 temp4;
|
||||
ptr = &gUnk_0811E7BC[param_1->shape * 2];
|
||||
temp = ptr[0];
|
||||
temp2 = param_2 - param_1->startX;
|
||||
temp2 = x - param_1->startX;
|
||||
if ((temp2 + temp <= ptr[0] * 2)) {
|
||||
temp3 = ptr[1];
|
||||
temp4 = param_3 - param_1->startY;
|
||||
temp4 = y - param_1->startY;
|
||||
if (temp4 + temp3 <= ptr[1] * 2) {
|
||||
return TRUE;
|
||||
} else {
|
||||
|
|
@ -842,7 +841,8 @@ void UpdateScreenShake(void) {
|
|||
s32 roomOffsetY = ((gRoomControls.scroll_y - gRoomControls.origin_y) & 0xf) + 8;
|
||||
if (gRoomControls.shake_duration != 0) {
|
||||
gRoomControls.shake_duration--;
|
||||
screenShakeOffset = &gScreenShakeOffsets[gRoomControls.shake_magnitude * 0x10 + (gRoomControls.shake_duration & 0xe)];
|
||||
screenShakeOffset =
|
||||
&gScreenShakeOffsets[gRoomControls.shake_magnitude * 0x10 + (gRoomControls.shake_duration & 0xe)];
|
||||
if (gMapBottom.bgSettings != NULL) {
|
||||
gMapBottom.bgSettings->xOffset = screenShakeOffset[0] + roomOffsetX;
|
||||
gMapBottom.bgSettings->yOffset = screenShakeOffset[1] + roomOffsetY;
|
||||
|
|
|
|||
|
|
@ -30,9 +30,6 @@ typedef struct {
|
|||
} StaffrollMenu;
|
||||
#define gStaffrollMenu (*(StaffrollMenu*)&gMenu)
|
||||
|
||||
|
||||
|
||||
|
||||
const Font gUnk_08127280 = {
|
||||
&gBG1Buffer[0x21], BG_TILE_ADDR(0x188), gTextGfxBuffer, 0, 61472, 240, 0, 0, 0, 0, 0, 5, 0, 1, 0
|
||||
};
|
||||
|
|
@ -53,8 +50,6 @@ const Font* const gStaffrollFonts[] = {
|
|||
&gUnk_081272C8,
|
||||
};
|
||||
|
||||
|
||||
|
||||
// TODO figure out structure of gStaffrollMenu.base.field_0xc
|
||||
extern StaffrollEntry gUnk_081272F0[];
|
||||
extern StaffrollEntry gUnk_08127644[];
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ void Subtask_MapHint_0(void) {
|
|||
sub_080A4DB8(4);
|
||||
sub_080A6290();
|
||||
gScreen.lcd.displayControl = gScreen.lcd.displayControl & 0xf7ff;
|
||||
SetColor(0, gPaletteBuffer[0x51]);
|
||||
SetColor(0, gPaletteBuffer[81]);
|
||||
val = gUnk_08128F4C[gUI.field_0x3];
|
||||
gSave.field_0x20 |= val;
|
||||
gGenericMenu.unk10.h[1] = val & gGenericMenu.unk10.h[0];
|
||||
|
|
|
|||
9
src/ui.c
9
src/ui.c
|
|
@ -257,8 +257,7 @@ void DrawRupees(void) {
|
|||
SoundReq(SFX_RUPEE_GET);
|
||||
}
|
||||
case 1:
|
||||
RenderDigits(0x70, gHUD.rupees,
|
||||
gWalletSizes[(u32)gSave.stats.walletType].size <= gHUD.rupees, 3);
|
||||
RenderDigits(0x70, gHUD.rupees, gWalletSizes[(u32)gSave.stats.walletType].size <= gHUD.rupees, 3);
|
||||
cVar1 = gHUD.unk_c + 1;
|
||||
default:
|
||||
gHUD.unk_c = cVar1;
|
||||
|
|
@ -384,7 +383,7 @@ void DrawHearts(void) {
|
|||
}
|
||||
if ((gHUD.unk_2 == 0) || (maxHealth != 0)) {
|
||||
gHUD.unk_2 = 2;
|
||||
uVar2 = gHUD.health >> 2;
|
||||
uVar2 = gHUD.health / 4;
|
||||
if (uVar2 > 10) {
|
||||
tmp1 = 10;
|
||||
uVar6 = uVar2 - 10;
|
||||
|
|
@ -393,7 +392,7 @@ void DrawHearts(void) {
|
|||
uVar6 = 0;
|
||||
}
|
||||
|
||||
maxHealth = gHUD.maxHealth >> 2;
|
||||
maxHealth = gHUD.maxHealth / 4;
|
||||
uVar1 = maxHealth;
|
||||
if (maxHealth > 10) {
|
||||
maxHealth = 10;
|
||||
|
|
@ -503,7 +502,7 @@ void DrawKeys(void) {
|
|||
u16* row2;
|
||||
u32 temp;
|
||||
|
||||
if (!(((gHUD.hideFlags & HUD_HIDE_KEYS) == 0)&& (AreaHasKeys()))) {
|
||||
if (!(((gHUD.hideFlags & HUD_HIDE_KEYS) == 0) && (AreaHasKeys()))) {
|
||||
if (gHUD.unk_10 != 0) {
|
||||
gHUD.unk_10 = 0;
|
||||
row1 = &gBG0Buffer[0x219];
|
||||
|
|
|
|||
Loading…
Reference in New Issue