Merge pull request #33 from notyouraveragehooman/master

menu work, rupeeLike.c OK
This commit is contained in:
notyouraveragehooman
2020-07-23 22:56:07 -07:00
committed by GitHub
60 changed files with 1105 additions and 2039 deletions
+1 -1
View File
@@ -237,7 +237,7 @@ sub_08030338: @ 0x08030338
_0803034C:
adds r0, r4, #0
movs r1, #3
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
adds r0, r4, #0
adds r0, #0x84
ldr r0, [r0]
+2 -2
View File
@@ -68,7 +68,7 @@ _08001230:
beq _0800123E
strb r1, [r0, #0xe]
movs r1, #4
ldr r3, _0800135C @ =InitializeAnimationAnimation
ldr r3, _0800135C @ =UpdateAnimationVariableFrames
bx r3
_0800123E:
ldr r3, _08001360 @ =sub_080043B4
@@ -238,7 +238,7 @@ _08001352:
bx lr
.align 2, 0
_08001358: .4byte gEnemyFunctions
_0800135C: .4byte InitializeAnimationAnimation
_0800135C: .4byte UpdateAnimationVariableFrames
_08001360: .4byte sub_080043B4
_08001364: .4byte 0x00001800
_08001368: .4byte gUnk_080012C8
+3 -3
View File
@@ -431,8 +431,8 @@ InitializeAnimation: @ 0x08004260
GetNextFrame: @ 0x08004274
movs r1, #1
non_word_aligned_thumb_func_start InitializeAnimationAnimation
InitializeAnimationAnimation: @ 0x08004276
non_word_aligned_thumb_func_start UpdateAnimationVariableFrames
UpdateAnimationVariableFrames: @ 0x08004276
movs r3, #0x59
ldrb r2, [r0, r3]
subs r2, r2, r1
@@ -478,7 +478,7 @@ UpdateAnimationSingleFrame: @ 0x080042B8
non_word_aligned_thumb_func_start sub_080042BA
sub_080042BA: @ 0x080042BA
push {lr}
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
_080042C0:
pop {r1}
mov lr, r1
+3 -3
View File
@@ -97,8 +97,8 @@ InitializeAnimation: @ 0x08004260
GetNextFrame: @ 0x08004274
movs r1, #1
non_word_aligned_thumb_func_start InitializeAnimationAnimation
InitializeAnimationAnimation: @ 0x08004276
non_word_aligned_thumb_func_start UpdateAnimationVariableFrames
UpdateAnimationVariableFrames: @ 0x08004276
movs r3, #0x59
ldrb r2, [r0, r3]
subs r2, r2, r1
@@ -144,7 +144,7 @@ UpdateAnimationSingleFrame: @ 0x080042B8
non_word_aligned_thumb_func_start sub_080042BA
sub_080042BA: @ 0x080042BA
push {lr}
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
_080042C0:
pop {r1}
mov lr, r1
-151
View File
@@ -5,157 +5,6 @@
.text
thumb_func_start sub_08050038
sub_08050038: @ 0x08050038
push {lr}
adds r3, r0, #0
ldr r2, _0805004C @ =gUnk_03000FD0
ldrh r1, [r2, #8]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08050050
strh r3, [r2, #0xe]
b _08050052
.align 2, 0
_0805004C: .4byte gUnk_03000FD0
_08050050:
strh r3, [r2, #0xc]
_08050052:
pop {pc}
thumb_func_start DoFade
DoFade: @ 0x08050054
push {r4, r5, lr}
adds r5, r0, #0
ldr r2, _08050078 @ =gUnk_03000FD0
movs r3, #0
strh r1, [r2, #0xa]
strh r5, [r2, #8]
movs r0, #1
strb r0, [r2]
adds r0, #0xff
strh r0, [r2, #0xc]
strh r3, [r2, #0xe]
movs r0, #2
ands r0, r5
adds r4, r2, #0
cmp r0, #0
beq _0805007C
movs r0, #0xf8
b _0805007E
.align 2, 0
_08050078: .4byte gUnk_03000FD0
_0805007C:
movs r0, #0
_0805007E:
strb r0, [r4, #2]
movs r0, #8
ands r0, r5
cmp r0, #0
beq _080500A4
ldr r1, _080500E4 @ =gUnk_03000000
movs r0, #1
strb r0, [r1, #2]
ldr r2, _080500E8 @ =gScreen
ldrh r0, [r2, #0x14]
movs r1, #0x40
orrs r0, r1
strh r0, [r2, #0x14]
ldrh r0, [r2, #0x20]
orrs r0, r1
strh r0, [r2, #0x20]
ldrh r0, [r2, #0x2c]
orrs r1, r0
strh r1, [r2, #0x2c]
_080500A4:
movs r0, #0x10
ands r0, r5
cmp r0, #0
beq _080500E0
ldrh r0, [r4, #0x16]
ldrh r1, [r4, #0x18]
bl sub_0801E1B8
movs r1, #0x12
ldrsh r0, [r4, r1]
movs r2, #0x14
ldrsh r1, [r4, r2]
movs r3, #0x10
ldrsh r2, [r4, r3]
bl sub_0801E1EC
movs r0, #1
ands r0, r5
cmp r0, #0
bne _080500E0
ldrh r1, [r4, #8]
ldr r0, _080500EC @ =0x0000FFFB
ands r0, r1
strh r0, [r4, #8]
bl sub_08050008
ldr r1, _080500F0 @ =gUnk_0200B644
movs r0, #1
rsbs r0, r0, #0
str r0, [r1]
_080500E0:
pop {r4, r5, pc}
.align 2, 0
_080500E4: .4byte gUnk_03000000
_080500E8: .4byte gScreen
_080500EC: .4byte 0x0000FFFB
_080500F0: .4byte gUnk_0200B644
thumb_func_start sub_080500F4
sub_080500F4: @ 0x080500F4
ldr r1, _0805010C @ =gUnk_03000FD0
strh r0, [r1, #0xa]
ldrh r0, [r1, #8]
movs r2, #1
eors r0, r2
strh r0, [r1, #8]
strb r2, [r1]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r1, #0xc]
bx lr
.align 2, 0
_0805010C: .4byte gUnk_03000FD0
thumb_func_start sub_08050110
sub_08050110: @ 0x08050110
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
adds r4, r2, #0
movs r1, #1
ands r1, r4
cmp r1, #0
beq _08050130
ldr r1, _0805012C @ =gUnk_03000FD0
movs r0, #0x96
strh r0, [r1, #0x10]
adds r2, r1, #0
b _08050136
.align 2, 0
_0805012C: .4byte gUnk_03000FD0
_08050130:
ldr r0, _0805014C @ =gUnk_03000FD0
strh r1, [r0, #0x10]
adds r2, r0, #0
_08050136:
movs r1, #0
strh r5, [r2, #0x12]
strh r6, [r2, #0x14]
ldr r0, _08050150 @ =0x00003F3F
strh r0, [r2, #0x16]
strh r1, [r2, #0x18]
adds r0, r4, #0
adds r1, r3, #0
bl DoFade
pop {r4, r5, r6, pc}
.align 2, 0
_0805014C: .4byte gUnk_03000FD0
_08050150: .4byte 0x00003F3F
thumb_func_start sub_08050154
sub_08050154: @ 0x08050154
push {r4, r5, r6, lr}
+4 -4
View File
@@ -671,7 +671,7 @@ SetSpriteSubEntryOffsetData1: @ 0x0806FF88
adds r4, r4, r2
ldrh r0, [r5, #2]
ldrb r1, [r5, #1]
bl sub_080700C8
bl GetSpriteSubEntryOffsetDataPointer
ldrb r1, [r5, #6]
ldrb r2, [r0]
adds r1, r1, r2
@@ -715,7 +715,7 @@ SetSpriteSubEntryOffsetData2: @ 0x0806FFD8
adds r4, r4, r2
ldrh r0, [r5, #2]
ldrb r1, [r5, #1]
bl sub_080700C8
bl GetSpriteSubEntryOffsetDataPointer
ldrb r1, [r5, #6]
ldrb r2, [r0, #2]
adds r1, r1, r2
@@ -826,8 +826,8 @@ _080700C4:
_080700C6:
pop {pc}
thumb_func_start sub_080700C8
sub_080700C8: @ 0x080700C8
thumb_func_start GetSpriteSubEntryOffsetDataPointer
GetSpriteSubEntryOffsetDataPointer: @ 0x080700C8
lsls r0, r0, #1
ldr r2, _080700E4 @ =gUnk_089FB780
adds r0, r0, r2
+1 -1
View File
@@ -1131,7 +1131,7 @@ sub_08070F50: @ 0x08070F50
bl PositionEntityOnTop
ldrh r0, [r4, #0x12]
ldrb r1, [r4, #0x1e]
bl sub_080700C8
bl GetSpriteSubEntryOffsetDataPointer
ldrb r1, [r0]
adds r2, r5, #0
adds r2, #0x62
-68
View File
@@ -6,74 +6,6 @@
.text
thumb_func_start sub_080A3BD0
sub_080A3BD0: @ 0x080A3BD0
push {r4, lr}
ldr r0, _080A3C54 @ =gMenu
movs r1, #0
movs r4, #1
strb r4, [r0, #1]
adds r0, #0x2a
strb r1, [r0]
bl sub_080A4D34
movs r0, #0xcb
bl LoadPalettesByPaletteGroupIndex
movs r0, #0x75
bl sub_0801D7EC
bl sub_080A4494
adds r1, r0, #7
cmp r1, #0
bge _080A3BFA
adds r1, #7
_080A3BFA:
asrs r0, r1, #3
subs r0, #6
cmp r0, #0
bge _080A3C04
movs r0, #0
_080A3C04:
cmp r0, #6
ble _080A3C0A
movs r0, #6
_080A3C0A:
adds r0, #0x76
bl sub_0801D7EC
ldr r1, _080A3C58 @ =gScreen
ldrh r2, [r1]
movs r3, #0xf0
lsls r3, r3, #5
adds r0, r3, #0
orrs r0, r2
strh r0, [r1]
ldr r0, _080A3C5C @ =0x00001C01
strh r0, [r1, #0x14]
ldr r0, _080A3C60 @ =0x00001D02
strh r0, [r1, #0x20]
ldr r0, _080A3C64 @ =0x00001E0B
strh r0, [r1, #0x2c]
strh r4, [r1, #0x1a]
strh r4, [r1, #0x26]
strh r4, [r1, #0x32]
bl sub_080A4528
bl sub_080A4398
movs r0, #0
bl sub_0801E738
ldr r0, _080A3C68 @ =gUnk_081280DC
bl sub_080A70AC
movs r0, #1
bl sub_080A7114
movs r0, #6
movs r1, #8
bl DoFade
pop {r4, pc}
.align 2, 0
_080A3C54: .4byte gMenu
_080A3C58: .4byte gScreen
_080A3C5C: .4byte 0x00001C01
_080A3C60: .4byte 0x00001D02
_080A3C64: .4byte 0x00001E0B
_080A3C68: .4byte gUnk_081280DC
thumb_func_start sub_080A3C6C
sub_080A3C6C: @ 0x080A3C6C
push {r4, r5, lr}
+2 -2
View File
@@ -9785,7 +9785,7 @@ _080AA052:
_080AA05E:
ldrh r0, [r5, #0x12]
ldrb r1, [r5, #0x1e]
bl sub_080700C8
bl GetSpriteSubEntryOffsetDataPointer
adds r3, r0, #0
ldrb r1, [r5, #0x14]
movs r0, #4
@@ -9989,7 +9989,7 @@ _080AA1EC:
bne _080AA26C
ldrh r0, [r4, #0x12]
ldrb r1, [r4, #0x1e]
bl sub_080700C8
bl GetSpriteSubEntryOffsetDataPointer
adds r3, r0, #0
ldrb r1, [r4, #0x14]
movs r0, #4
-37
View File
@@ -1,37 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_080A3B84
sub_080A3B84: @ 0x080A3B84
push {r4, r5, lr}
ldr r4, _080A3BC4 @ =gUnk_030010A0
adds r4, #0x2c
movs r5, #0
movs r0, #2
strb r0, [r4]
bl sub_080AD90C
ldr r1, _080A3BC8 @ =gUnk_081280C4
ldr r0, _080A3BCC @ =gMenu
ldrb r0, [r0, #5]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
bl sub_080A3B74
bl sub_080A4054
bl sub_0801C1D4
bl sub_0801C208
bl sub_0805E5C0
bl sub_080AD9B0
bl sub_080AD918
strb r5, [r4]
pop {r4, r5, pc}
.align 2, 0
_080A3BC4: .4byte gUnk_030010A0
_080A3BC8: .4byte gUnk_081280C4
_080A3BCC: .4byte gMenu
+2 -2
View File
@@ -391,7 +391,7 @@ _08048C6C:
bl InitializeAnimation
adds r0, r4, #0
movs r1, #7
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
adds r1, r6, #0
ldrb r4, [r4, #0xa]
lsls r1, r4
@@ -419,7 +419,7 @@ _08048CBC:
movs r1, #0x1c
ands r1, r0
adds r0, r4, #0
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
_08048CE4:
adds r0, r4, #0
bl GetNextFrame
+2 -2
View File
@@ -238,7 +238,7 @@ sub_0802BD10: @ 0x0802BD10
ands r1, r2
strb r1, [r0, #0x10]
movs r1, #2
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
pop {pc}
.align 2, 0
@@ -380,7 +380,7 @@ sub_0802BE18: @ 0x0802BE18
push {r4, lr}
adds r4, r0, #0
movs r1, #2
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
+2 -2
View File
@@ -412,7 +412,7 @@ sub_0802805C: @ 0x0802805C
push {r4, r5, lr}
adds r5, r0, #0
movs r1, #2
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
bl sub_0807953C
cmp r0, #0
beq _0802807E
@@ -454,7 +454,7 @@ _0802809C:
bl PositionRelative
ldrh r0, [r5, #0x12]
ldrb r1, [r5, #0x1e]
bl sub_080700C8
bl GetSpriteSubEntryOffsetDataPointer
ldrb r1, [r0]
adds r2, r4, #0
adds r2, #0x62
+1 -1
View File
@@ -23,7 +23,7 @@ Object29: @ 0x08089848
ands r1, r0
adds r1, #1
adds r0, r4, #0
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
pop {r4, pc}
.align 2, 0
_08089870: .4byte gUnk_08120D90
+1 -1
View File
@@ -2269,7 +2269,7 @@ _08095BAC:
strb r0, [r5, #0x18]
ldrh r0, [r2, #0x12]
ldrb r1, [r2, #0x1e]
bl sub_080700C8
bl GetSpriteSubEntryOffsetDataPointer
ldrb r1, [r0]
adds r2, r5, #0
adds r2, #0x62
+1 -1
View File
@@ -256,7 +256,7 @@ _080A273C:
bl PositionEntityOnTop
ldrh r0, [r4, #0x12]
ldrb r1, [r4, #0x1e]
bl sub_080700C8
bl GetSpriteSubEntryOffsetDataPointer
ldrb r1, [r0]
adds r2, r5, #0
adds r2, #0x62
+2 -2
View File
@@ -133,7 +133,7 @@ _08037D1C:
_08037D26:
adds r0, r4, #0
movs r1, #2
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
adds r0, r4, #0
bl sub_080AEF88
cmp r0, #0
@@ -158,7 +158,7 @@ sub_08037D54: @ 0x08037D54
push {r4, lr}
adds r4, r0, #0
movs r1, #2
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
adds r2, r4, #0
adds r2, #0x5a
ldrb r1, [r2]
-69
View File
@@ -1,69 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start PalaceArchway
PalaceArchway: @ 0x0809F288
push {lr}
ldr r2, _0809F29C @ =gUnk_081246EC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809F29C: .4byte gUnk_081246EC
thumb_func_start sub_0809F2A0
sub_0809F2A0: @ 0x0809F2A0
push {r4, r5, r6, lr}
movs r1, #1
strb r1, [r0, #0xc]
ldrb r1, [r0, #0xb]
strb r1, [r0, #0x1e]
ldrb r1, [r0, #0x19]
movs r2, #0xc0
orrs r1, r2
strb r1, [r0, #0x19]
adds r3, r0, #0
adds r3, #0x29
ldrb r1, [r3]
movs r2, #7
orrs r1, r2
strb r1, [r3]
ldr r5, _0809F2EC @ =0x00004069
movs r2, #0x2e
ldrsh r1, [r0, r2]
ldr r3, _0809F2F0 @ =gRoomControls
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r0, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r0, #0x38
ldrb r2, [r0]
adds r0, r5, #0
bl SetTile
pop {r4, r5, r6, pc}
.align 2, 0
_0809F2EC: .4byte 0x00004069
_0809F2F0: .4byte gRoomControls
thumb_func_start nullsub_537
nullsub_537: @ 0x0809F2F4
bx lr
.align 2, 0
+4 -4
View File
@@ -403,7 +403,7 @@ sub_08020220: @ 0x08020220
movs r1, #4
subs r1, r1, r0
adds r0, r5, #0
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
b _08020292
_0802024C:
movs r0, #3
@@ -437,7 +437,7 @@ _08020284:
_0802028A:
adds r0, r5, #0
movs r1, #4
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
_08020292:
pop {r4, r5, pc}
@@ -495,7 +495,7 @@ _080202F8:
_080202FE:
adds r0, r4, #0
movs r1, #4
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
pop {r4, pc}
thumb_func_start sub_08020308
@@ -533,7 +533,7 @@ _08020340:
bl sub_080AEFE0
adds r0, r4, #0
movs r1, #4
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
_0802034E:
pop {r4, pc}
+1 -1
View File
@@ -324,7 +324,7 @@ sub_080315BC: @ 0x080315BC
strb r0, [r4, #0xe]
adds r0, r4, #0
movs r1, #2
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
b _080315FC
_080315D4:
adds r0, r4, #0
+2 -2
View File
@@ -150,7 +150,7 @@ _080382B8: .4byte gLinkEntity
_080382BC:
adds r0, r4, #0
movs r1, #2
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
adds r0, r4, #0
bl sub_080AEF88
cmp r0, #0
@@ -192,7 +192,7 @@ sub_08038304: @ 0x08038304
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r1, #2
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
adds r0, r4, #0
bl sub_080AEF88
cmp r0, #0
-754
View File
@@ -1,754 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start RupeeLike
RupeeLike: @ 0x080292A0
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xb]
cmp r0, #0
bne _080292F8
adds r0, r5, #0
bl sub_080043E8
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0
beq _080292CE
ldrb r0, [r5, #0xc]
cmp r0, #4
bne _080292C4
adds r0, r5, #0
bl sub_080296D8
_080292C4:
adds r0, r5, #0
adds r1, r4, #0
bl sub_08001290
b _080292FE
_080292CE:
ldr r4, _080292F4 @ =gUnk_080CCC00
adds r0, r5, #0
bl GetNextFunction
lsls r0, r0, #2
adds r0, r0, r4
ldr r1, [r0]
adds r0, r5, #0
bl _call_via_r1
movs r3, #0x10
rsbs r3, r3, #0
adds r0, r5, #0
movs r1, #0
movs r2, #1
bl SetChildOffset
b _080292FE
.align 2, 0
_080292F4: .4byte gUnk_080CCC00
_080292F8:
adds r0, r5, #0
bl sub_080293DC
_080292FE:
pop {r4, r5, pc}
thumb_func_start sub_08029300
sub_08029300: @ 0x08029300
push {lr}
ldr r2, _08029314 @ =gUnk_080CCC18
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08029314: .4byte gUnk_080CCC18
thumb_func_start sub_08029318
sub_08029318: @ 0x08029318
push {r4, lr}
adds r4, r0, #0
adds r0, #0x3f
ldrb r0, [r0]
cmp r0, #0x8e
bne _0802932C
adds r0, r4, #0
bl sub_08029770
b _080293A6
_0802932C:
ldrb r0, [r4, #0xc]
cmp r0, #4
bne _08029338
adds r0, r4, #0
bl sub_080296D8
_08029338:
ldr r0, [r4, #0x4c]
ldrb r0, [r0, #8]
cmp r0, #1
bne _08029394
ldrb r0, [r4, #0xc]
cmp r0, #2
bne _08029356
adds r0, r4, #0
movs r1, #0
bl InitializeAnimation
ldr r0, [r4, #0x54]
movs r1, #4
bl InitializeAnimation
_08029356:
movs r1, #0
movs r0, #4
strb r0, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
strb r1, [r4, #0xf]
adds r1, r4, #0
adds r1, #0x83
movs r0, #0x41
strb r0, [r1]
adds r2, r4, #0
adds r2, #0x3b
ldrb r1, [r2]
movs r0, #0xfc
ands r0, r1
strb r0, [r2]
ldr r0, _08029390 @ =gLinkEntity
adds r0, #0x29
ldrb r0, [r0]
lsls r0, r0, #0x1a
lsrs r0, r0, #0x1d
adds r1, r4, #0
adds r1, #0x80
strb r0, [r1]
movs r0, #0x82
lsls r0, r0, #1
bl sub_08004488
b _080293A6
.align 2, 0
_08029390: .4byte gLinkEntity
_08029394:
adds r0, r4, #0
adds r0, #0x43
ldrb r0, [r0]
cmp r0, #0
beq _080293A6
adds r0, r4, #0
movs r1, #0x1c
bl sub_0804A9FC
_080293A6:
ldr r1, _080293B0 @ =gUnk_080CCC00
adds r0, r4, #0
bl sub_0804AA30
pop {r4, pc}
.align 2, 0
_080293B0: .4byte gUnk_080CCC00
thumb_func_start sub_080293B4
sub_080293B4: @ 0x080293B4
push {lr}
ldr r3, _080293D4 @ =gUnk_080CCC34
adds r1, r0, #0
adds r1, #0x84
ldrb r2, [r1]
lsls r1, r2, #1
adds r1, r1, r2
ldrb r2, [r0, #0xa]
adds r1, r1, r2
adds r1, r1, r3
ldrb r2, [r1]
movs r1, #0xff
bl CreateDeathFx
pop {pc}
.align 2, 0
_080293D4: .4byte gUnk_080CCC34
thumb_func_start nullsub_141
nullsub_141: @ 0x080293D8
bx lr
.align 2, 0
thumb_func_start sub_080293DC
sub_080293DC: @ 0x080293DC
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
adds r1, r4, #0
bl CopyPositionAndSpriteOffset
ldrh r0, [r4, #0x32]
adds r0, #1
strh r0, [r4, #0x32]
ldrh r0, [r4, #0x36]
subs r0, #1
strh r0, [r4, #0x36]
ldr r1, _08029408 @ =gUnk_080CCC3C
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
pop {r4, pc}
.align 2, 0
_08029408: .4byte gUnk_080CCC3C
thumb_func_start sub_0802940C
sub_0802940C: @ 0x0802940C
push {r4, r5, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xa]
movs r0, #0x17
bl CreateEnemy
adds r5, r0, #0
cmp r5, #0
beq _0802944A
adds r0, r4, #0
bl sub_0804A720
str r4, [r5, #0x50]
movs r1, #0
movs r0, #1
strb r0, [r5, #0xb]
str r5, [r4, #0x54]
adds r0, r4, #0
adds r0, #0x81
strb r1, [r0]
adds r0, #3
strb r1, [r0]
ldrb r0, [r4, #0x1a]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x1c
adds r1, r4, #0
adds r1, #0x82
strb r0, [r1]
adds r0, r4, #0
bl sub_080297F0
_0802944A:
pop {r4, r5, pc}
thumb_func_start sub_0802944C
sub_0802944C: @ 0x0802944C
push {r4, lr}
adds r4, r0, #0
bl sub_080296C8
adds r0, r4, #0
adds r0, #0x81
ldrb r0, [r0]
cmp r0, #0
beq _08029470
adds r0, r4, #0
movs r1, #1
bl sub_08049FDC
cmp r0, #0
beq _08029470
adds r0, r4, #0
bl sub_08029770
_08029470:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08029474
sub_08029474: @ 0x08029474
push {r4, lr}
adds r4, r0, #0
bl sub_080296C8
adds r3, r4, #0
adds r3, #0x5a
ldrb r2, [r3]
movs r0, #0x80
ands r0, r2
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
beq _080294C0
movs r0, #3
strb r0, [r4, #0xc]
movs r0, #8
strb r0, [r4, #0xe]
ldr r1, _080294BC @ =gLinkEntity
adds r0, r4, #0
bl GetFacingDirection
strb r0, [r4, #0x15]
lsls r0, r0, #0x18
lsrs r0, r0, #0x1c
strb r0, [r4, #0x14]
ldrb r1, [r4, #0x14]
adds r0, r4, #0
bl InitializeAnimation
ldr r0, [r4, #0x54]
ldrb r1, [r4, #0x14]
adds r1, #4
bl InitializeAnimation
b _080294D2
.align 2, 0
_080294BC: .4byte gLinkEntity
_080294C0:
lsls r0, r2, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bne _080294D2
strb r1, [r3]
ldrb r0, [r4, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
_080294D2:
pop {r4, pc}
thumb_func_start sub_080294D4
sub_080294D4: @ 0x080294D4
push {r4, lr}
adds r4, r0, #0
movs r1, #1
bl sub_08049FDC
cmp r0, #0
beq _0802951C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08029508
movs r0, #8
strb r0, [r4, #0xe]
ldr r1, _08029518 @ =gLinkEntity
adds r0, r4, #0
bl GetFacingDirection
adds r1, r0, #0
adds r0, r4, #0
bl sub_08004596
adds r0, r4, #0
bl sub_0802969C
_08029508:
adds r0, r4, #0
bl sub_080AEF88
adds r0, r4, #0
bl sub_080296C8
b _08029538
.align 2, 0
_08029518: .4byte gLinkEntity
_0802951C:
movs r0, #6
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
movs r1, #3
bl InitializeAnimation
ldr r0, [r4, #0x54]
movs r1, #7
bl InitializeAnimation
_08029538:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0802953C
sub_0802953C: @ 0x0802953C
push {r4, r5, lr}
adds r5, r0, #0
bl sub_080296C8
adds r0, r5, #0
bl sub_080296C8
bl sub_0807953C
cmp r0, #0
beq _08029558
ldrb r0, [r5, #0xf]
adds r0, #1
strb r0, [r5, #0xf]
_08029558:
ldrb r0, [r5, #0xe]
cmp r0, #0
beq _08029562
subs r0, #1
strb r0, [r5, #0xe]
_08029562:
ldrb r0, [r5, #0xf]
cmp r0, #0x2d
bhi _08029572
ldr r0, _08029580 @ =gUnk_02002A40
adds r0, #0xc0
ldrh r0, [r0]
cmp r0, #0
bne _08029584
_08029572:
ldrb r0, [r5, #0xe]
cmp r0, #0
bne _08029584
adds r0, r5, #0
bl sub_080296D8
b _080295FE
.align 2, 0
_08029580: .4byte gUnk_02002A40
_08029584:
bl sub_08077B2C
ldr r2, _08029600 @ =gLinkState
ldrb r1, [r2, #0x1a]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0x1a]
ldr r4, _08029604 @ =gLinkEntity
movs r3, #0x80
lsls r3, r3, #9
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0
bl PositionRelative
ldrh r0, [r5, #0x12]
ldrb r1, [r5, #0x1e]
bl sub_080700C8
ldrb r1, [r0]
adds r2, r4, #0
adds r2, #0x62
strb r1, [r2]
ldrb r0, [r0, #1]
subs r0, #1
adds r1, r4, #0
adds r1, #0x63
strb r0, [r1]
adds r4, #0x29
ldrb r1, [r4]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4]
adds r1, r5, #0
adds r1, #0x83
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
cmp r0, #0
bne _080295FE
movs r0, #0x41
strb r0, [r1]
ldr r0, _08029608 @ =gUnk_02002A40
adds r0, #0xc0
ldrh r0, [r0]
cmp r0, #0
beq _080295FE
ldr r1, _0802960C @ =gUnk_080CCC44
ldrb r0, [r5, #0xa]
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
bl ModRupees
adds r1, r5, #0
adds r1, #0x84
movs r0, #1
strb r0, [r1]
_080295FE:
pop {r4, r5, pc}
.align 2, 0
_08029600: .4byte gLinkState
_08029604: .4byte gLinkEntity
_08029608: .4byte gUnk_02002A40
_0802960C: .4byte gUnk_080CCC44
thumb_func_start sub_08029610
sub_08029610: @ 0x08029610
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xf]
subs r0, #1
strb r0, [r1, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _08029628
movs r0, #3
strb r0, [r1, #0xc]
movs r0, #1
strb r0, [r1, #0xe]
_08029628:
adds r0, r1, #0
bl sub_080296C8
pop {pc}
thumb_func_start sub_08029630
sub_08029630: @ 0x08029630
push {r4, lr}
adds r4, r0, #0
bl sub_080296C8
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0802965E
adds r1, r4, #0
adds r1, #0x81
movs r0, #1
strb r0, [r1]
ldr r2, [r4, #0x54]
ldrb r1, [r2, #0x18]
subs r0, #5
ands r0, r1
strb r0, [r2, #0x18]
adds r0, r4, #0
bl sub_080297F0
_0802965E:
pop {r4, pc}
thumb_func_start sub_08029660
sub_08029660: @ 0x08029660
movs r1, #1
strb r1, [r0, #0xc]
movs r1, #0xd1
strh r1, [r0, #0x12]
ldr r2, _08029684 @ =gUnk_080CCC47
ldrb r1, [r0, #0xa]
adds r1, r1, r2
ldrb r2, [r1]
movs r1, #0xf
ands r2, r1
ldrb r3, [r0, #0x1a]
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r3
orrs r1, r2
strb r1, [r0, #0x1a]
bx lr
.align 2, 0
_08029684: .4byte gUnk_080CCC47
thumb_func_start sub_08029688
sub_08029688: @ 0x08029688
push {lr}
adds r1, r0, #0
ldr r0, [r1, #0x50]
ldr r0, [r0, #4]
cmp r0, #0
bne _0802969A
adds r0, r1, #0
bl DeleteEntity
_0802969A:
pop {pc}
thumb_func_start sub_0802969C
sub_0802969C: @ 0x0802969C
push {r4, r5, lr}
adds r5, r0, #0
ldrb r1, [r5, #0x15]
movs r0, #0xf
ands r0, r1
cmp r0, #0
beq _080296C4
lsrs r4, r1, #4
ldrb r0, [r5, #0x14]
cmp r4, r0
beq _080296C4
strb r4, [r5, #0x14]
adds r0, r5, #0
adds r1, r4, #0
bl InitializeAnimation
ldr r0, [r5, #0x54]
adds r1, r4, #4
bl InitializeAnimation
_080296C4:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080296C8
sub_080296C8: @ 0x080296C8
push {r4, lr}
adds r4, r0, #0
bl GetNextFrame
ldr r0, [r4, #0x54]
bl GetNextFrame
pop {r4, pc}
thumb_func_start sub_080296D8
sub_080296D8: @ 0x080296D8
push {r4, r5, lr}
adds r4, r0, #0
ldr r2, _08029764 @ =gLinkState
movs r0, #0x41
strb r0, [r2, #2]
ldr r0, [r2, #0x30]
movs r1, #0x11
rsbs r1, r1, #0
ands r0, r1
str r0, [r2, #0x30]
ldr r0, _08029768 @ =gLinkEntity
mov ip, r0
ldrb r0, [r0, #0x10]
movs r1, #0x80
orrs r0, r1
mov r1, ip
strb r0, [r1, #0x10]
movs r0, #0xc0
lsls r0, r0, #9
str r0, [r1, #0x20]
adds r1, #0x3d
movs r0, #0xa6
strb r0, [r1]
movs r3, #0
ldr r0, _0802976C @ =0x0000FFFE
mov r1, ip
strh r0, [r1, #0x36]
ldrb r0, [r1, #0x14]
lsls r0, r0, #2
strb r0, [r1, #0x15]
adds r0, r4, #0
adds r0, #0x80
ldrb r0, [r0]
mov r5, ip
adds r5, #0x29
movs r1, #7
ands r1, r0
lsls r1, r1, #3
ldrb r2, [r5]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r5]
mov r0, ip
adds r0, #0x63
strb r3, [r0]
movs r0, #0xa0
lsls r0, r0, #1
mov r1, ip
strh r0, [r1, #0x24]
movs r0, #5
strb r0, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xf]
adds r2, r4, #0
adds r2, #0x3b
ldrb r1, [r2]
movs r0, #3
orrs r0, r1
strb r0, [r2]
adds r1, r4, #0
adds r1, #0x3d
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bne _08029762
movs r0, #0xf4
strb r0, [r1]
_08029762:
pop {r4, r5, pc}
.align 2, 0
_08029764: .4byte gLinkState
_08029768: .4byte gLinkEntity
_0802976C: .4byte 0x0000FFFE
thumb_func_start sub_08029770
sub_08029770: @ 0x08029770
push {r4, lr}
adds r4, r0, #0
movs r1, #0x73
bl LoadFixedGFX
cmp r0, #0
beq _080297E8
movs r0, #2
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
movs r0, #0xd1
strh r0, [r4, #0x12]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x18
orrs r0, r1
strb r0, [r2]
adds r0, r4, #0
adds r0, #0x82
ldrb r1, [r0]
movs r0, #0xf
ands r1, r0
ldrb r2, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1a]
adds r1, r4, #0
adds r1, #0x3f
movs r0, #0x8d
strb r0, [r1]
ldr r0, _080297EC @ =gUnk_080FD260
str r0, [r4, #0x48]
adds r0, r4, #0
movs r1, #2
bl InitializeAnimation
ldr r2, [r4, #0x54]
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2, #0x18]
ldr r0, [r4, #0x54]
movs r1, #6
bl InitializeAnimation
adds r0, r4, #0
bl sub_080A29BC
_080297E8:
pop {r4, pc}
.align 2, 0
_080297EC: .4byte gUnk_080FD260
thumb_func_start sub_080297F0
sub_080297F0: @ 0x080297F0
push {r4, lr}
adds r4, r0, #0
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x78
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
adds r1, r4, #0
adds r1, #0x3f
movs r0, #0x8e
strb r0, [r1]
adds r0, r4, #0
bl sub_080AE068
ldr r0, _08029850 @ =0x00000143
strh r0, [r4, #0x12]
ldr r1, _08029854 @ =gUnk_080CCC47
ldrb r0, [r4, #0xa]
adds r0, r0, r1
ldrb r1, [r0]
movs r0, #0xf
ands r1, r0
ldrb r2, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1a]
adds r1, r4, #0
adds r1, #0x60
movs r0, #9
strh r0, [r1]
adds r0, r4, #0
movs r1, #0x54
bl InitializeAnimation
pop {r4, pc}
.align 2, 0
_08029850: .4byte 0x00000143
_08029854: .4byte gUnk_080CCC47
+1 -1
View File
@@ -662,7 +662,7 @@ sub_08033C94: @ 0x08033C94
push {r4, lr}
adds r4, r0, #0
movs r1, #3
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
adds r1, r4, #0
adds r1, #0x79
ldrb r0, [r1]
-65
View File
@@ -1,65 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_080AD380
sub_080AD380: @ 0x080AD380
push {r4, lr}
bl sub_080AD90C
ldr r4, _080AD398 @ =gUnk_03001000
ldrb r0, [r4, #3]
cmp r0, #1
beq _080AD3BC
cmp r0, #1
bgt _080AD39C
cmp r0, #0
beq _080AD3A2
b _080AD3EA
.align 2, 0
_080AD398: .4byte gUnk_03001000
_080AD39C:
cmp r0, #2
beq _080AD3D8
b _080AD3EA
_080AD3A2:
bl sub_08056418
ldr r0, _080AD3B8 @ =gUnk_02032EC0
movs r1, #0xed
lsls r1, r1, #2
bl _DmaZero
movs r0, #0
bl IntroSetTransition
b _080AD3EA
.align 2, 0
_080AD3B8: .4byte gUnk_02032EC0
_080AD3BC:
ldr r1, _080AD3D0 @ =gUnk_081320F0
ldr r0, _080AD3D4 @ =gUnk_02032EC0
ldrb r0, [r0, #2]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
b _080AD3EA
.align 2, 0
_080AD3D0: .4byte gUnk_081320F0
_080AD3D4: .4byte gUnk_02032EC0
_080AD3D8:
ldr r0, _080AD3F0 @ =gUnk_03000FD0
ldrb r0, [r0]
cmp r0, #0
bne _080AD3EE
movs r0, #1
bl sub_0801DA90
movs r0, #1
strb r0, [r4, #3]
_080AD3EA:
bl sub_080AD918
_080AD3EE:
pop {r4, pc}
.align 2, 0
_080AD3F0: .4byte gUnk_03000FD0
-68
View File
@@ -1,68 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_080AD3F4
sub_080AD3F4: @ 0x080AD3F4
push {r4, r5, lr}
bl sub_080AD84C
adds r1, r0, #0
ldr r4, _080AD450 @ =gMenu
ldrb r0, [r4, #5]
cmp r0, #0
bne _080AD458
movs r0, #1
bl sub_0801DA90
movs r5, #1
strb r5, [r4, #5]
movs r0, #0x78
strh r0, [r4, #8]
movs r0, #0x10
bl sub_0801D7EC
movs r0, #1
bl sub_0801D7EC
movs r0, #0x80
lsls r0, r0, #0x12
ldrb r0, [r0, #7]
movs r1, #2
cmp r0, #0
bne _080AD42C
movs r1, #1
_080AD42C:
adds r0, r1, #0
bl LoadPalettesByPaletteGroupIndex
ldr r0, _080AD454 @ =gScreen
ldrh r1, [r0]
movs r3, #0x80
lsls r3, r3, #3
adds r2, r3, #0
orrs r1, r2
strh r1, [r0]
strh r5, [r0, #0x1a]
movs r0, #6
movs r1, #8
bl DoFade
movs r1, #0
b _080AD45E
.align 2, 0
_080AD450: .4byte gMenu
_080AD454: .4byte gScreen
_080AD458:
cmp r1, #1
bne _080AD45E
movs r1, #2
_080AD45E:
cmp r1, #2
bne _080AD46C
ldr r1, _080AD470 @ =gUnk_02000010
movs r0, #1
strb r0, [r1, #5]
bl IntroSetTransition
_080AD46C:
pop {r4, r5, pc}
.align 2, 0
_080AD470: .4byte gUnk_02000010
-224
View File
@@ -1,224 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_080AD474
sub_080AD474: @ 0x080AD474
push {r4, r5, r6, lr}
ldr r5, _080AD490 @ =gMenu
ldrb r0, [r5, #0x12]
adds r0, #1
strb r0, [r5, #0x12]
ldrb r0, [r5, #5]
cmp r0, #1
bne _080AD486
b _080AD588
_080AD486:
cmp r0, #1
bgt _080AD494
cmp r0, #0
beq _080AD49C
b _080AD5C8
.align 2, 0
_080AD490: .4byte gMenu
_080AD494:
cmp r0, #2
bne _080AD49A
b _080AD5AA
_080AD49A:
b _080AD5C8
_080AD49C:
movs r4, #1
strb r4, [r5, #5]
strb r0, [r5, #6]
movs r6, #0
movs r0, #0x1e
strh r0, [r5, #8]
movs r0, #7
strb r0, [r5, #4]
bl EraseAllEntities
movs r0, #0
bl sub_0801CFA8
bl sub_080ADD30
ldr r0, _080AD50C @ =gUnk_02024490
strb r4, [r0]
movs r0, #2
bl sub_0801D7EC
movs r4, #0x80
lsls r4, r4, #0x12
ldrb r0, [r4, #7]
movs r1, #4
cmp r0, #0
bne _080AD4D2
movs r1, #3
_080AD4D2:
adds r0, r1, #0
bl LoadPalettesByPaletteGroupIndex
ldrb r0, [r4, #7]
cmp r0, #0
bne _080AD524
ldr r2, _080AD510 @ =gScreen
adds r1, r2, #0
adds r1, #0x66
ldr r0, _080AD514 @ =0x00000844
strh r0, [r1]
adds r1, #2
adds r0, #0xc5
strh r0, [r1]
ldr r0, _080AD518 @ =0x00001C09
strh r0, [r2, #0x14]
adds r0, #0xf9
strh r0, [r2, #0x20]
ldr r0, _080AD51C @ =0x00001E03
strh r0, [r2, #0x2c]
ldrh r0, [r2]
movs r3, #0xf0
lsls r3, r3, #5
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r0, _080AD520 @ =0x0000FF60
strh r0, [r2, #0x18]
b _080AD55A
.align 2, 0
_080AD50C: .4byte gUnk_02024490
_080AD510: .4byte gScreen
_080AD514: .4byte 0x00000844
_080AD518: .4byte 0x00001C09
_080AD51C: .4byte 0x00001E03
_080AD520: .4byte 0x0000FF60
_080AD524:
ldr r2, _080AD570 @ =gScreen
adds r1, r2, #0
adds r1, #0x66
ldr r0, _080AD574 @ =0x00000241
strh r0, [r1]
adds r1, #2
ldr r0, _080AD578 @ =0x00000909
strh r0, [r1]
ldr r0, _080AD57C @ =0x00001D02
strh r0, [r2, #8]
ldr r0, _080AD580 @ =0x00001E03
strh r0, [r2, #0x14]
ldr r0, _080AD584 @ =0x00007C89
strh r0, [r2, #0x20]
ldrh r0, [r2]
movs r1, #1
orrs r0, r1
orrs r0, r6
movs r3, #0x98
lsls r3, r3, #5
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
movs r0, #0x10
str r0, [r5, #0x2c]
bl sub_080AD670
_080AD55A:
bl sub_080A3210
movs r0, #3
bl PlaySFX
movs r0, #6
movs r1, #8
bl DoFade
b _080AD610
.align 2, 0
_080AD570: .4byte gScreen
_080AD574: .4byte 0x00000241
_080AD578: .4byte 0x00000909
_080AD57C: .4byte 0x00001D02
_080AD580: .4byte 0x00001E03
_080AD584: .4byte 0x00007C89
_080AD588:
ldr r0, _080AD5A0 @ =gUnk_03000FD0
ldrb r0, [r0]
cmp r0, #0
bne _080AD632
movs r0, #0x80
lsls r0, r0, #0x12
ldrb r0, [r0, #7]
cmp r0, #0
bne _080AD5A4
bl sub_080AD6AC
b _080AD610
.align 2, 0
_080AD5A0: .4byte gUnk_03000FD0
_080AD5A4:
bl sub_080AD76C
b _080AD610
_080AD5AA:
ldrh r0, [r5, #8]
subs r0, #1
strh r0, [r5, #8]
lsls r0, r0, #0x10
cmp r0, #0
bne _080AD5C2
movs r0, #0xe1
lsls r0, r0, #4
strh r0, [r5, #8]
ldrb r0, [r5, #5]
adds r0, #1
strb r0, [r5, #5]
_080AD5C2:
bl sub_080AD644
b _080AD610
_080AD5C8:
bl sub_080AD84C
adds r4, r0, #0
cmp r4, #0
beq _080AD5EC
cmp r4, #2
bne _080AD5DE
movs r0, #0x6a
bl PlaySFX
b _080AD5E0
_080AD5DE:
movs r4, #0
_080AD5E0:
adds r0, r4, #0
bl IntroSetTransition
ldr r0, _080AD634 @ =0x80080000
bl PlaySFX
_080AD5EC:
bl sub_080AD644
ldr r0, _080AD638 @ =gMenu
ldrh r1, [r0, #8]
movs r0, #0x20
ands r0, r1
cmp r0, #0
bne _080AD610
ldr r1, _080AD63C @ =gUnk_03001010
movs r0, #0xe0
lsls r0, r0, #8
strh r0, [r1, #8]
movs r0, #0x84
strh r0, [r1, #2]
ldr r0, _080AD640 @ =0x000001FF
movs r1, #0
bl sub_080ADA14
_080AD610:
ldr r2, _080AD638 @ =gMenu
movs r0, #0x80
lsls r0, r0, #0x12
ldrb r1, [r0, #7]
ldrb r0, [r2, #4]
cmp r0, r1
beq _080AD626
strb r1, [r2, #4]
movs r0, #3
bl sub_0801D7EC
_080AD626:
bl sub_080AD89C
bl sub_0805E5C0
bl sub_080AD9B0
_080AD632:
pop {r4, r5, r6, pc}
.align 2, 0
_080AD634: .4byte 0x80080000
_080AD638: .4byte gMenu
_080AD63C: .4byte gUnk_03001010
_080AD640: .4byte 0x000001FF
-38
View File
@@ -1,38 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_080AD670
sub_080AD670: @ 0x080AD670
push {lr}
sub sp, #0x14
movs r0, #0x80
lsls r0, r0, #8
str r0, [sp, #4]
str r0, [sp]
mov r1, sp
movs r2, #0
movs r0, #0x78
strh r0, [r1, #8]
movs r0, #0x48
strh r0, [r1, #0xa]
mov r0, sp
strh r2, [r0, #0x10]
mov r2, sp
ldr r0, _080AD6A4 @ =gMenu
ldr r0, [r0, #0x2c]
strh r0, [r1, #0xc]
strh r0, [r2, #0xe]
ldr r1, _080AD6A8 @ =gBgControls
mov r0, sp
movs r2, #1
bl BgAffineSet
add sp, #0x14
pop {pc}
.align 2, 0
_080AD6A4: .4byte gMenu
_080AD6A8: .4byte gBgControls
-105
View File
@@ -1,105 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_080AD6AC
sub_080AD6AC: @ 0x080AD6AC
push {r4, r5, r6, lr}
ldr r4, _080AD6C0 @ =gMenu
ldrb r0, [r4, #6]
cmp r0, #1
beq _080AD724
cmp r0, #1
bgt _080AD6C4
cmp r0, #0
beq _080AD6CA
b _080AD76A
.align 2, 0
_080AD6C0: .4byte gMenu
_080AD6C4:
cmp r0, #2
beq _080AD758
b _080AD76A
_080AD6CA:
ldr r6, _080AD718 @ =gUnk_03000FD0
ldrb r5, [r6]
cmp r5, #0
bne _080AD76A
ldrb r1, [r4, #0x12]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _080AD6E4
ldr r1, _080AD71C @ =gScreen
ldrh r0, [r1, #0x18]
adds r0, #1
strh r0, [r1, #0x18]
_080AD6E4:
bl sub_080AD84C
cmp r0, #2
beq _080AD6F4
ldr r0, _080AD71C @ =gScreen
ldrh r0, [r0, #0x18]
cmp r0, #0
bne _080AD76A
_080AD6F4:
ldrb r0, [r4, #6]
adds r0, #1
strb r0, [r4, #6]
ldr r1, _080AD71C @ =gScreen
strh r5, [r1, #0x18]
ldr r0, _080AD720 @ =0x00000C09
strh r0, [r1, #0x14]
movs r0, #0x40
str r0, [r6, #4]
movs r0, #6
movs r1, #0x10
bl DoFade
movs r0, #0xf8
bl PlaySFX
b _080AD76A
.align 2, 0
_080AD718: .4byte gUnk_03000FD0
_080AD71C: .4byte gScreen
_080AD720: .4byte 0x00000C09
_080AD724:
ldr r1, _080AD754 @ =gUnk_03000FD0
ldrb r5, [r1]
cmp r5, #0
bne _080AD76A
movs r0, #1
rsbs r0, r0, #0
str r0, [r1, #4]
ldrb r0, [r4, #6]
adds r0, #1
strb r0, [r4, #6]
movs r0, #0x5a
strh r0, [r4, #8]
movs r0, #0xb4
movs r1, #0
movs r2, #0
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _080AD76A
strh r5, [r1, #0x2e]
movs r0, #0x48
strh r0, [r1, #0x32]
b _080AD76A
.align 2, 0
_080AD754: .4byte gUnk_03000FD0
_080AD758:
bl sub_080AD84C
cmp r0, #0
beq _080AD76A
ldrb r0, [r4, #5]
adds r0, #1
strb r0, [r4, #5]
movs r0, #0x3c
strh r0, [r4, #8]
_080AD76A:
pop {r4, r5, r6, pc}
+1 -1
View File
@@ -211,7 +211,7 @@ sub_0802F284: @ 0x0802F284
bls _0802F298
adds r0, r4, #0
movs r1, #2
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
b _0802F29E
_0802F298:
adds r0, r4, #0
+2 -204
View File
@@ -6,214 +6,12 @@
.text
thumb_func_start TektiteGolden
TektiteGolden: @ 0x08037EC8
push {r4, lr}
adds r4, r0, #0
ldr r1, _08037EE4 @ =gUnk_080CF4A0
bl EnemyFunctionHandler
movs r3, #0x10
rsbs r3, r3, #0
adds r0, r4, #0
movs r1, #0
movs r2, #1
bl SetChildOffset
pop {r4, pc}
.align 2, 0
_08037EE4: .4byte gUnk_080CF4A0
thumb_func_start sub_08037EE8
sub_08037EE8: @ 0x08037EE8
push {lr}
ldr r2, _08037EFC @ =gUnk_080CF4B8
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08037EFC: .4byte gUnk_080CF4B8
thumb_func_start sub_08037F00
sub_08037F00: @ 0x08037F00
push {r4, lr}
adds r4, r0, #0
adds r0, #0x43
ldrb r0, [r0]
cmp r0, #0
beq _08037F14
adds r0, r4, #0
movs r1, #0x1c
bl sub_0804A9FC
_08037F14:
ldr r1, _08037F54 @ =gUnk_080CF4A0
adds r0, r4, #0
bl sub_0804AA30
adds r0, r4, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0x94
bne _08037F50
movs r1, #0
movs r0, #1
strb r0, [r4, #0xc]
strb r1, [r4, #0xd]
movs r0, #0x14
strb r0, [r4, #0xe]
strb r1, [r4, #0xf]
adds r0, r4, #0
adds r0, #0x80
strb r1, [r0]
movs r1, #0x36
ldrsh r0, [r4, r1]
cmp r0, #0
beq _08037F46
ldr r0, [r4, #0x20]
asrs r0, r0, #2
_08037F46:
str r0, [r4, #0x20]
adds r0, r4, #0
movs r1, #0
bl InitializeAnimation
_08037F50:
pop {r4, pc}
.align 2, 0
_08037F54: .4byte gUnk_080CF4A0
thumb_func_start sub_08037F58
sub_08037F58: @ 0x08037F58
push {r4, lr}
adds r4, r0, #0
adds r0, #0x3a
ldrb r1, [r0]
movs r0, #2
ands r0, r1
cmp r0, #0
bne _08037F6E
ldrb r0, [r4, #0xb]
bl SetGlobalFlag
_08037F6E:
ldrb r0, [r4, #0xa]
movs r2, #0x58
cmp r0, #0
beq _08037F78
movs r2, #0x59
_08037F78:
adds r0, r4, #0
movs r1, #0xff
bl CreateDeathFx
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08037F84
sub_08037F84: @ 0x08037F84
push {r4, lr}
adds r4, r0, #0
bl sub_08001242
movs r1, #0x36
ldrsh r0, [r4, r1]
cmp r0, #0
beq _08037F9E
movs r1, #0xc0
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
_08037F9E:
pop {r4, pc}
thumb_func_start sub_08037FA0
sub_08037FA0: @ 0x08037FA0
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xb]
bl CheckGlobalFlag
cmp r0, #0
beq _08037FB2
bl DeleteThisEntity
_08037FB2:
adds r0, r5, #0
bl sub_0804A720
movs r4, #0
movs r0, #1
strb r0, [r5, #0xc]
strb r4, [r5, #0xd]
bl Random
movs r1, #0x1f
ands r0, r1
adds r0, #0x20
strb r0, [r5, #0xe]
strb r4, [r5, #0xf]
adds r0, r5, #0
adds r0, #0x80
strb r4, [r0]
adds r0, r5, #0
movs r1, #0
bl InitializeAnimation
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08037FE0
sub_08037FE0: @ 0x08037FE0
push {r4, lr}
adds r4, r0, #0
movs r1, #2
bl InitializeAnimationAnimation
ldrb r0, [r4, #0xe]
adds r2, r0, #0
cmp r2, #0
beq _08037FF8
subs r0, #1
strb r0, [r4, #0xe]
b _08038046
_08037FF8:
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _0803802C
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08038046
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #6
strb r0, [r4, #0xe]
strb r2, [r4, #0xf]
movs r0, #0xe0
lsls r0, r0, #0xa
str r0, [r4, #0x20]
adds r0, r4, #0
bl sub_08038168
adds r0, r4, #0
movs r1, #2
bl InitializeAnimation
b _08038046
_0803802C:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08038046
movs r0, #0x40
strb r0, [r4, #0xf]
adds r0, r4, #0
movs r1, #1
bl InitializeAnimation
_08038046:
pop {r4, pc}
thumb_func_start sub_08038048
sub_08038048: @ 0x08038048
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r1, #2
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
adds r0, r4, #0
bl sub_080AEF88
movs r0, #0x36
@@ -315,7 +113,7 @@ sub_08038110: @ 0x08038110
push {r4, lr}
adds r4, r0, #0
movs r1, #2
bl InitializeAnimationAnimation
bl UpdateAnimationVariableFrames
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
+9 -17
View File
@@ -25,20 +25,6 @@ typedef struct {
u8 unknown2[4];
} BoundingBox;
union SplitWord {
s32 WORD;
struct {
s16 LO, HI;
} HALF;
};
union SplitHWord {
u16 HWORD;
struct {
u8 LO, HI;
} PACKED HALF;
} PACKED;
typedef struct Entity {
/*0x00*/ u32* field_0x0;
/*0x04*/ u32* field_0x4;
@@ -73,7 +59,13 @@ typedef struct Entity {
/* */ u8 b2 : 2; //0x10
/* */ u8 b3 : 2; //0x40
/* */ } PACKED spriteRendering;
/*0x1a*/ u8 palette;
/*0x1a*/ union {
/* */ u8 raw;
/* */ struct {
/* */ u8 b0 : 4;
/* */ u8 b4 : 4;
/* */ } PACKED b;
/* */} PACKED palette;
/*0x1b*/ struct {
/* */ u8 b0 : 4;
/* */ u8 flipX : 2; //0x10
@@ -146,8 +138,8 @@ typedef struct Entity {
/*0x78*/ union SplitHWord field_0x78;
/*0x7a*/ u16 field_0x7a;
/*0x7c*/ union SplitWord field_0x7c;
/*0x80*/ u16 field_0x80;
/*0x82*/ u16 field_0x82;
/*0x80*/ union SplitHWord field_0x80;
/*0x82*/ union SplitHWord field_0x82;
/*0x84*/ union SplitHWord cutsceneBeh;
/*0x86*/ u16 field_0x86;
} Entity;
+9 -9
View File
@@ -30,15 +30,15 @@ extern u32 gRoomFlags;
enum {
NONE,
/*0x01*/ LV0_CLEAR, /* Simulation Lv. 0 */
/*0x02*/ LV1_CLEAR, /* Simulation Lv. 1 */
/*0x03*/ LV2_CLEAR, /* Simulation Lv. 2 */
/*0x04*/ LV3_CLEAR, /* Simulation Lv. 3 */
/*0x05*/ LV4_CLEAR, /* Simulation Lv. 4 */
/*0x06*/ LV5_CLEAR, /* Simulation Lv. 5 */
/*0x07*/ LV6_CLEAR, /* Simulation Lv. 6 */
/*0x08*/ LV7_CLEAR, /* Simulation Lv. 7 */
/*0x09*/ LV8_CLEAR, /* Simulation Lv. 8 */
/*0x01*/ LV0_CLEAR, /* */
/*0x02*/ LV1_CLEAR, /* */
/*0x03*/ LV2_CLEAR, /* */
/*0x04*/ LV3_CLEAR, /* */
/*0x05*/ LV4_CLEAR, /* */
/*0x06*/ LV5_CLEAR, /* */
/*0x07*/ LV6_CLEAR, /* */
/*0x08*/ LV7_CLEAR, /* */
/*0x09*/ LV8_CLEAR, /* */
/*0x0a*/ MACHI_SET_1, /* Defeated Big Green Chuchu */
/*0x0b*/ MACHI_SET_2, /* Defeated Gleerok */
/*0x0c*/ MACHI_SET_3, /* */
+39
View File
@@ -34,6 +34,11 @@ extern void EraseAllEntities(void);
extern void SetTile(u32, u32, u32);
extern void SetDirtTile(u32);
extern void LoadRoomTileEntities(); //tba
extern Entity* CreateDeathFx(Entity*, u32, u32);
extern void UpdateAnimationVariableFrames(Entity*, u32);
extern void CopyPositionAndSpriteOffset(Entity*, Entity*);
extern u8* GetSpriteSubEntryOffsetDataPointer(u32, u32);
extern u32 LoadFixedGFX(Entity*, u32);
// Unidentified
extern void sub_0806ED78(Entity*);
@@ -159,4 +164,38 @@ extern void sub_080AF2E4(void);
extern void sub_0805ADD8(u32);
extern void sub_0804F578(void);
extern void sub_08059994(void);
extern u32 sub_080AD84C();
extern void sub_0801D7EC(u32);
extern s32 sub_0801CFA8(u32);
extern void sub_080AD670();
extern void sub_080A3210();
extern void sub_080AD6AC();
extern void sub_080AD76C();
extern void sub_080AD644();
extern void sub_080ADA14(u32, u32);
extern void sub_080AD89C();
extern void sub_0801E1B8(u32, u32);
extern void sub_0801E1EC(s32, s32, s32);
extern void sub_08050008(void);
extern void sub_080A3B74(void);
extern void sub_080A4054(void);
extern void sub_0801C1D4(void);
extern void sub_0801C208(void);
extern void sub_080A4D34(void);
extern u32 sub_080A4494(void);
extern void sub_080A4528(void);
extern void sub_080A4398(void);
extern void sub_0801E738(u32);
extern void sub_080A70AC(void*);
extern void sub_080A7114(u32);
extern void sub_08001242(void);
extern void sub_08003FC4(Entity*, u32);
extern u8 sub_080043E8(Entity*);
extern void sub_08001290(Entity*, u32);
extern void sub_08004488(u32);
extern void sub_08004596(Entity*, u32);
extern u32 sub_0807953C(void);
extern void sub_08077B2C(void);
extern void sub_080A29BC(Entity*);
extern void sub_080AE068(Entity*);
#endif
+14
View File
@@ -59,4 +59,18 @@ struct UCoords16
u16 y;
};
union SplitWord {
s32 WORD;
struct {
s16 LO, HI;
} HALF;
};
union SplitHWord {
u16 HWORD;
struct {
u8 LO, HI;
} PACKED HALF;
} PACKED;
#endif // GUARD_GLOBAL_H
+1 -1
View File
@@ -94,7 +94,7 @@ extern Entity gLinkEntity;
extern u32 GetInventoryValue(u32);
extern s32 ModHealth(s32);
extern void ModRupees(s32);
#endif
// clang-format on
+31 -5
View File
@@ -14,6 +14,35 @@ typedef struct { // 0x03001000
u32 spritePriority;
} MainStruct;
typedef struct {
u8 interruptFlag;
u8 field_0x1;
u8 funcIndex;
u8 field_0x3;
u8 transition;
u8 field_0x5;
u8 muteAudio;
u8 field_0x8;
u8 countdown;
} Main;
typedef struct {
u16 nextToLoad;
u8 transitionType;
u8 field_0x3;
u8 state;
u8 field_0x5;
u8 field_0x6;
u8 pauseFadeIn;
u16 isLoading;
u16 fadeInTime;
} UI;
extern Main gUnk_03001000;
extern UI gUnk_02032EC0;
extern s32 sub_08055F70();
extern s32 sub_080A3204(s32);
extern s32 sub_0805616C(s32);
@@ -21,10 +50,9 @@ extern s32 sub_0807CE90(s32);
extern s32 sub_080560B8(s32);
extern void sub_08056208(s32);
extern void sub_0804FFE4();
extern s32 sub_0804FF84(s32);
extern s32 sub_08056418(s32);
extern s32 sub_08056418();
extern void sub_080ADD30(s32);
extern s32 _DmaZero(s32, u32, u32);
extern s32 sub_08056010(s32);
extern s32 sub_08016E78(s32);
extern s32 ReadKeyInput();
@@ -37,8 +65,6 @@ extern s32 sub_08056458(s32);
extern s32 sub_08050154(s32);
extern s32 sub_080A3480(s32);
extern s32 gUnk_02000010;
extern s32 gRand;
extern MainStruct gUnk_03001000;
extern s32 gUnk_08100CBC;
#endif
+9 -5
View File
@@ -19,15 +19,19 @@ typedef struct {
typedef struct {
u8 field_0x0;
u16 field_0x1;
u8 field_0x1;
u8 field_0x2;
u8 secret;
u8 field_0x3;
u8 field_0x4;
u8 menuType;
u8 overlayType;
u8 storyPanelIndex;
u8 field_0x7;
u8 transitionTimer;
u16 transitionTimer;
u8 field_0xa[8];
u8 field_0x11;
u8 field_0x12[0x16];
u32 field_0x2c;
} Menu;
extern Menu gMenu;
#endif
+3 -1
View File
@@ -15,7 +15,8 @@ typedef struct {
u16 bg0xOffset;
u16 bg0yOffset;
u16 bg0Updated;
u32 unk;
u16 unk;
u16 unk2;
} BgSettings;
typedef struct {
@@ -69,6 +70,7 @@ typedef struct {
BgControls controls;
} Screen;
extern BgControls gBgControls;
extern Screen gScreen;
#endif
+43
View File
@@ -0,0 +1,43 @@
#ifndef STRUCTURES_H
#define STRUCTURES_H
#include "global.h"
#include "entity.h"
#include "link.h"
typedef struct {
u8 filler[8];
u8 field_0x8;
u8 field_0x9[0x34];
u32 windcrests;
u8 field_0x44[0x64];
Stats stats;
} struct_02002A40;
extern struct_02002A40 gUnk_02002A40;
typedef struct {
u8 field_0x0[8];
u8 field_0x8;
u8 field_0x9;
u8 field_0xa[6];
union SplitWord field_0x10;
u8 field_0x14[0xc];
u16 field_0x20;
u16 field_0x22;
u8 field_0x24[0x14];
u8 field_0x38;
u8 field_0x39;
u16 field_0x3a;
u8 field_0x3c;
u8 filler[6];
u16 field_0x44;
u16 field_0x46;
u16 field_0x48;
u16 field_0x4a;
} struct_030010A0;
extern struct_030010A0 gUnk_030010A0;
#endif
+4 -9
View File
@@ -345,7 +345,7 @@ SECTIONS {
asm/likeLike.o(.text);
asm/spearMoblin.o(.text);
asm/businessScrub.o(.text);
asm/rupeeLike.o(.text);
src/enemy/rupeeLike.o(.text);
asm/madderpillar.o(.text);
asm/waterDrop.o(.text);
asm/wallMaster.o(.text);
@@ -385,6 +385,7 @@ SECTIONS {
asm/flyingPot.o(.text);
asm/gibdo.o(.text);
asm/octorokGolden.o(.text);
src/enemy/tektiteGolden.o(.text);
asm/tektiteGolden.o(.text);
asm/ropeGolden.o(.text);
asm/cloudPiranha.o(.text);
@@ -832,7 +833,7 @@ SECTIONS {
src/object/fan.o(.text);
asm/fan.o(.text);
asm/objectA0.o(.text);
asm/palaceArchway.o(.text);
src/object/palaceArchway.o(.text);
asm/objectA2.o(.text);
src/object/cloud.o(.text);
asm/minishLight.o(.text);
@@ -878,17 +879,11 @@ SECTIONS {
asm/code_080A29BC.o(.text);
asm/playSFX.o(.text);
asm/code_080A3480.o(.text);
asm/drawKinstoneMenu.o(.text);
src/sub_080A3B84.o(.text);
asm/code_080A3BD0.o(.text);
src/sub_080A554C.o(.text);
asm/code_080A5574.o(.text);
src/introSetTransition.o(.text);
asm/sub_080AD380.o(.text);
asm/sub_080AD3F4.o(.text);
asm/sub_080AD474.o(.text);
src/sub_080AD644.o(.text);
asm/sub_080AD670.o(.text);
asm/sub_080AD6Ac.o(.text);
asm/sub_080AD76C.o(.text);
src/sub_080AD834.o(.text);
asm/sub_080AD84C.o(.text);
+1 -1
View File
@@ -184,5 +184,5 @@ u32 sub_0805457C(u32 arg0, u32 arg1) {
void sub_08054870(void)
{
gUnk_080FE2A0[gMenu.secret]();
gUnk_080FE2A0[gMenu.menuType]();
}
+1 -1
View File
@@ -44,7 +44,7 @@ void sub_0802A84C(Entity* this) {
}
void sub_0802A8AC(Entity *this) {
*((u8 *)&this->field_0x80 + 1) = 0;
this->field_0x80.HALF.HI = 0;
if (this->entityType.form < 2) {
InitializeAnimation(this, 0);
}
+2 -2
View File
@@ -11,7 +11,7 @@ extern void sub_0801ECFC();
extern u32 sub_0806F520();
extern void sub_0806F4E8();
extern void sub_0806F3E4();
extern void InitializeAnimationAnimation();
extern void UpdateAnimationVariableFrames();
extern void sub_0804A720();
extern u32 Random();
extern void sub_0801ED14();
@@ -75,7 +75,7 @@ void sub_0801EB7C(Entity* ent) {
void sub_0801EB84(Entity* ent) {
ent->flags = ent->flags & 127;
InitializeAnimationAnimation(ent, 2);
UpdateAnimationVariableFrames(ent, 2);
}
void nullsub_3() {
+281
View File
@@ -0,0 +1,281 @@
#include "global.h"
#include "entity.h"
#include "enemy.h"
#include "functions.h"
#include "structures.h"
#include "link.h"
extern void sub_080293DC(Entity*);
extern void sub_080296D8(Entity*);
extern void sub_08029770(Entity*);
extern void sub_080297F0(Entity*);
extern void sub_080296C8(Entity*);
extern void sub_0802969C(Entity*);
extern void (*const gUnk_080CCC00[])(Entity*);
extern void (*const gUnk_080CCC18[])(Entity*);
extern void (*const gUnk_080CCC3C[])(Entity*);
extern u8 gUnk_080CCC34[];
extern u8 gUnk_080CCC47[];
extern BoundingBox gUnk_080FD260;
void RupeeLike(Entity* this) {
u32 uVar1;
if (this->entityType.parameter == 0) {
uVar1 = sub_080043E8(this);
if (uVar1 != 0) {
if (this->action == 4) {
sub_080296D8(this);
}
sub_08001290(this, uVar1);
} else {
gUnk_080CCC00[GetNextFunction(this)](this);
SetChildOffset(this, 0, 1, -0x10);
}
} else {
sub_080293DC(this);
}
}
void sub_08029300(Entity* this) {
gUnk_080CCC18[this->action](this);
}
void sub_08029318(Entity* this) {
if (this->damageType == 0x8e) {
sub_08029770(this);
} else {
if (this->action == 4) {
sub_080296D8(this);
}
if (*(u8*)(*(u32*)&this->field_0x4c + 8) == 1) {
if (this->action == 2) {
InitializeAnimation(this, 0);
InitializeAnimation(this->attachedEntity, 4);
}
this->action = 4;
this->actionDelay = 0x3c;
this->field_0xf = 0;
this->field_0x82.HALF.HI = 0x41;
this->flags2 &= 0xfc;
this->field_0x80.HALF.LO = gLinkEntity.spritePriority.b1;
sub_08004488(0x104);
} else {
if (this->field_0x43 != 0) {
sub_0804A9FC(this, 0x1c);
}
}
}
sub_0804AA30(this, gUnk_080CCC00);
}
void sub_080293B4(Entity* this) {
CreateDeathFx(this, 0xff, gUnk_080CCC34[this->cutsceneBeh.HALF.LO * 3 + this->entityType.form]);
}
void nullsub_141() {
}
void sub_080293DC(Entity* this) {
CopyPositionAndSpriteOffset(this->parent, this);
this->y.HALF.HI++;
this->height.HALF.HI--;
gUnk_080CCC3C[this->action](this);
}
void sub_0802940C(Entity* this) {
Entity* ent;
ent = CreateEnemy(0x17, this->entityType.form);
if (ent != NULL) {
sub_0804A720(this);
ent->parent = this;
ent->entityType.parameter = 1;
this->attachedEntity = ent;
this->field_0x80.HALF.HI = 0;
this->cutsceneBeh.HALF.LO = 0;
this->field_0x82.HALF.LO = this->palette.b.b0;
sub_080297F0(this);
}
}
void sub_0802944C(Entity* this) {
sub_080296C8(this);
if ((this->field_0x80.HALF.HI != 0) && sub_08049FDC(this, 1)) {
sub_08029770(this);
}
}
void sub_08029474(Entity* this) {
u32 bVar1;
sub_080296C8(this);
if (this->frames.b.f3) {
this->action = 3;
this->actionDelay = 8;
bVar1 = GetFacingDirection(this, &gLinkEntity);
this->direction = bVar1;
this->animationState = (bVar1 << 0x18) >> 0x1c;
InitializeAnimation(this, this->animationState);
InitializeAnimation(this->attachedEntity, this->animationState + 4);
} else {
if (this->frames.all == 1) {
this->frames.all = 0;
this->flags |= 0x80;
}
}
}
void sub_080294D4(Entity* this) {
if (sub_08049FDC(this, 1) != 0) {
if (--this->actionDelay == 0) {
this->actionDelay = 8;
sub_08004596(this, GetFacingDirection(this, &gLinkEntity));
sub_0802969C(this);
}
sub_080AEF88(this);
sub_080296C8(this);
} else {
this->action = 6;
this->flags &= 0x7f;
InitializeAnimation(this, 3);
InitializeAnimation(this->attachedEntity, 7);
}
}
extern s8 gUnk_080CCC44[];
void sub_0802953C(Entity* this) {
u8* pbVar3;
sub_080296C8(this);
sub_080296C8(this);
if (sub_0807953C() != 0) {
this->field_0xf++;
}
if (this->actionDelay != 0) {
this->actionDelay--;
}
if (((this->field_0xf > 0x2d) || (gUnk_02002A40.stats.rupees == 0)) && (this->actionDelay == 0)) {
sub_080296D8(this);
} else {
sub_08077B2C();
gLinkState.field_0x1a[0] |= 0x80;
PositionRelative(this, &gLinkEntity, 0, 0x10000);
pbVar3 = GetSpriteSubEntryOffsetDataPointer((u16)this->spriteIndex, this->frameIndex);
gLinkEntity.spriteOffsetX = pbVar3[0];
gLinkEntity.spriteOffsetY = pbVar3[1] - 1;
gLinkEntity.spritePriority.b1 = 0;
if (--this->field_0x82.HALF.HI == 0) {
this->field_0x82.HALF.HI = 0x41;
if (gUnk_02002A40.stats.rupees != 0) {
ModRupees(gUnk_080CCC44[this->entityType.form]);
this->cutsceneBeh.HALF.LO = 1;
}
}
}
}
void sub_08029610(Entity* this) {
if (--this->field_0xf == 0) {
this->action = 3;
this->actionDelay = 1;
}
sub_080296C8(this);
}
void sub_08029630(Entity* this) {
sub_080296C8(this);
if ((this->frames.b.f3) != 0) {
this->field_0x80.HALF.HI = 1;
this->attachedEntity->spriteSettings.b.draw = FALSE;
sub_080297F0(this);
}
}
void sub_08029660(Entity* this) {
u32 temp;
this->action = 1;
this->spriteIndex = 0xd1;
temp = gUnk_080CCC47[this->entityType.form];
this->palette.b.b0 = temp;
}
void sub_08029688(Entity* this) {
if (this->parent->field_0x4 == NULL) {
DeleteEntity(this);
}
}
void sub_0802969C(Entity* this) {
u32 bVar1;
if ((this->direction & 0xf) != 0) {
bVar1 = this->direction >> 4;
if (bVar1 != this->animationState) {
this->animationState = bVar1;
InitializeAnimation(this, bVar1);
InitializeAnimation(this->attachedEntity, bVar1 + 4);
}
}
}
void sub_080296C8(Entity* this) {
GetNextFrame(this);
GetNextFrame(this->attachedEntity);
}
void sub_080296D8(Entity* this) {
gLinkState.jumpStatus = 0x41;
gLinkState.flags.all &= 0xffffffef;
gLinkEntity.flags |= 0x80;
gLinkEntity.field_0x20 = 0x18000;
gLinkEntity.hurtBlinkTime = 0xa6;
gLinkEntity.height.HALF.HI = -2;
gLinkEntity.direction = gLinkEntity.animationState << 2;
gLinkEntity.spritePriority.b1 = this->field_0x80.HALF.LO;
gLinkEntity.spriteOffsetY = 0;
gLinkEntity.nonPlanarMovement = 0x140;
this->action = 5;
this->field_0xf = 0x3c;
this->flags2 |= 3;
if ((s8)this->hurtBlinkTime == 0) {
this->hurtBlinkTime = 0xf4;
}
}
void sub_08029770(Entity* this) {
u32 temp;
if (LoadFixedGFX(this, 0x73) != 0) {
this->action = 2;
this->flags = this->flags & 0x7f;
this->spriteIndex = 0xd1;
this->spritePriority.b1 = 3;
temp = this->field_0x82.HALF.LO;
this->palette.b.b0 = temp;
this->damageType = 0x8d;
this->boundingBox = &gUnk_080FD260;
InitializeAnimation(this, 2);
this->attachedEntity->spriteSettings.b.draw = TRUE;
InitializeAnimation(this->attachedEntity, 6);
sub_080A29BC(this);
}
}
void sub_080297F0(Entity* this) {
u32 temp;
this->action = 1;
this->actionDelay = 0x78;
this->flags = this->flags | 0x80;
this->spriteSettings.b.draw = TRUE;
this->damageType = 0x8e;
sub_080AE068(this);
this->spriteIndex = 0x143;
temp = gUnk_080CCC47[this->entityType.form];
this->palette.b.b0 = temp;
this->spriteVramOffset = 9;
InitializeAnimation(this, 0x54);
}
+108
View File
@@ -0,0 +1,108 @@
#include "global.h"
#include "entity.h"
#include "enemy.h"
#include "functions.h"
#include "flags.h"
extern void sub_08038168(Entity*);
extern void (*const gUnk_080CF4A0)(Entity*);
extern void (*const gUnk_080CF4B8[])(Entity*);
void TektiteGolden(Entity *this)
{
EnemyFunctionHandler(this, &gUnk_080CF4A0);
SetChildOffset(this, 0, 1, -0x10);
}
void sub_08037EE8(Entity* this)
{
gUnk_080CF4B8[this->action](this);
}
void sub_08037F00(Entity *this)
{
u32 uVar1;
if (this->field_0x43 != 0) {
sub_0804A9FC(this,0x1c);
}
sub_0804AA30(this, &gUnk_080CF4A0);
if (this->bitfield == 0x94) {
this->action = 1;
this->previousActionFlag = 0;
this->actionDelay = 0x14;
this->field_0xf = 0;
this->field_0x80.HALF.LO = 0;
uVar1 = this->height.HALF.HI;
if (uVar1 != 0) {
this->field_0x20 >>= 2;
}
else {
this->field_0x20 = uVar1;
}
InitializeAnimation(this,0);
}
}
void sub_08037F58(Entity *this)
{
u32 uVar1;
if ((this->field_0x3a & 2) == 0) {
SetGlobalFlag(this->entityType.parameter);
}
if ((this->entityType).form != 0) {
uVar1 = 0x59;
}
else {
uVar1 = 0x58;
}
CreateDeathFx(this, 0xff, uVar1);
}
void sub_08037F84(Entity *this)
{
sub_08001242();
if (this->height.HALF.HI != 0) {
sub_08003FC4(this, 0x3000);
}
}
void sub_08037FA0(Entity *this)
{
if (CheckGlobalFlag(this->entityType.parameter)) {
DeleteThisEntity();
}
sub_0804A720(this);
this->action = 1;
this->previousActionFlag = 0;
this->actionDelay = (Random() & 0x1f) + 0x20;
this->field_0xf = 0;
this->field_0x80.HALF.LO = 0;
InitializeAnimation(this,0);
}
void sub_08037Fe0(Entity *this)
{
UpdateAnimationVariableFrames(this, 2);
if (this->actionDelay != 0) {
this->actionDelay--;
}
else if (this->field_0xf != 0) {
if ((this->frames.b.f3) != 0) {
this->action = 2;
this->actionDelay = 6;
this->field_0xf = 0;
this->field_0x20 = 0x38000;
sub_08038168(this);
InitializeAnimation(this, 2);
}
}
else if ((this->frames.b.f3) != 0) {
this->field_0xf = 0x40;
InitializeAnimation(this, 1);
}
}
+255 -17
View File
@@ -1,27 +1,265 @@
#include "global.h"
#include "menu.h"
#include "main.h"
#include "entity.h"
#include "functions.h"
#include "screen.h"
extern void (*const gUnk_081320F0[])();
typedef struct {
u8 field_0x0;
u8 field_0x1;
u8 field_0x2;
u8 field_0x3;
u32 field_0x4;
} struct_03000FD0;
extern struct_03000FD0 gUnk_03000FD0;
typedef struct {
char header[4];
u8 saveFile;
u8 field_0x5;
u8 brightnessPref;
u8 gameLanguage;
} struct_02000000;
typedef struct {
u8 unk;
u8 unk2;
u8 unk3;
u8 functionIndex;
u16 unk6;
u8 filler[5];
u32 ticks;
u16 unk7;
} TransitionStruct;
u8 field_0x5;
} struct_02000010;
extern u32 DoFade(u32, u32);
extern void _DmaZero(u32*, u32, u32);
extern TransitionStruct gUnk_03001000;
extern MenuControls gUnk_02032EC0;
u32 IntroSetTransition(u8 transition, u32 param_2, u32 param_3)
extern struct_02000010 gUnk_02000010;
u32 IntroSetTransition(u32 transition)
{
gUnk_02032EC0.transitionType = transition;
gUnk_03001000.functionIndex = 2;
_DmaZero((u32 *)&gMenu, 48, param_3);
return DoFade(7, 8);
gUnk_03001000.field_0x3 = 2;
_DmaZero((u32 *)&gMenu, 48);
DoFade(7, 8);
}
void sub_080AD380()
{
sub_080AD90C();
switch (gUnk_03001000.field_0x3) {
case 0:
sub_08056418();
_DmaZero(&gUnk_02032EC0, 0x3b4);
IntroSetTransition(0);
break;
case 1:
gUnk_081320F0[gUnk_02032EC0.transitionType]();
break;
case 2:
if (gUnk_03000FD0.field_0x0 != 0) {
return;
}
sub_0801DA90(1);
gUnk_03001000.field_0x3 = 1;
break;
}
sub_080AD918();
}
void sub_080AD3F4(void)
{
u32 iVar1;
u32 uVar2;
iVar1 = sub_080AD84C();
if (gMenu.menuType == 0) {
sub_0801DA90(1);
gMenu.menuType = 1;
gMenu.transitionTimer = 0x78;
sub_0801D7EC(0x10);
sub_0801D7EC(1);
if (((struct_02000000 *)0x2000000)->gameLanguage == 0) {
uVar2 = 1;
}
else {
uVar2 = 2;
}
LoadPalettesByPaletteGroupIndex(uVar2);
gScreen.lcd.lcdControl2 |= 0x400;
gScreen.bg2.bg0xOffset = 1;
DoFade(6, 8);
iVar1 = 0;
}
else {
if (iVar1 == 1) {
iVar1 = 2;
}
}
if (iVar1 == 2) {
gUnk_02000010.field_0x5 = 1;
IntroSetTransition(1);
}
}
// typedef struct {
// u16 field_0x0[5];
// } struct_03001010;
extern u16 gUnk_03001010[5];
extern u8 gUnk_02024490;
void sub_080AD474(void)
{
int iVar2;
u32 uVar3;
gMenu.field_0x11++;
switch (gMenu.menuType) {
case 0:
gMenu.menuType = 1;
gMenu.overlayType = 0;
gMenu.transitionTimer = 0x1e;
gMenu.field_0x4 = 7;
EraseAllEntities();
sub_080ADD30(sub_0801CFA8(0));
gUnk_02024490 = 1;
sub_0801D7EC(2);
if (((struct_02000000*)0x2000000)->gameLanguage == 0) {
uVar3 = 3;
}
else {
uVar3 = 4;
}
LoadPalettesByPaletteGroupIndex(uVar3);
if (((struct_02000000*)0x2000000)->gameLanguage == 0) {
gScreen.controls.windowOutsideControl = 0x844;
gScreen.controls.mosaicSize = 0x909;
gScreen.bg1.unk = 0x1c09;
gScreen.bg2.unk = 0x1d02;
gScreen.affine.unk2 = 0x1e03;
gScreen.lcd.lcdControl2 |= 0x1e00;
gScreen.bg2.bg0Control = 0xff60;
}
else {
gScreen.controls.windowOutsideControl = 0x241;
gScreen.controls.mosaicSize = 0x909;
gScreen.lcd.lcdControl1 = 0x1d02;
gScreen.bg1.unk = 0x1E03;
gScreen.bg2.unk = 0x7C89;
gScreen.lcd.lcdControl2 |= 1;
gScreen.lcd.lcdControl2 |= 0x1300;
gMenu.field_0x2c = 0x10;
sub_080AD670();
}
sub_080A3210();
PlaySFX(3); //fanfare
DoFade(6, 8);
break;
case 1:
if (gUnk_03000FD0.field_0x0 != 0) {
return;
}
if (((struct_02000000*)0x2000000)->gameLanguage == 0) {
sub_080AD6AC();
}
else {
sub_080AD76C();
}
break;
case 2:
gMenu.transitionTimer--;
if (gMenu.transitionTimer == 0) {
gMenu.transitionTimer = 0xe10;
gMenu.menuType++;
}
sub_080AD644();
break;
default:
iVar2 = sub_080AD84C();
if (iVar2 != 0) {
if (iVar2 == 2) {
PlaySFX(0x6a);
}
else {
iVar2 = 0;
}
IntroSetTransition(iVar2);
PlaySFX(0x80080000);
}
sub_080AD644();
if ((gMenu.transitionTimer & 0x20) == 0) {
gUnk_03001010[4] = 0xe000;
gUnk_03001010[1] = 0x84;
sub_080ADA14(0x1ff,0);
}
}
if (gMenu.field_0x4 != ((struct_02000000*)0x2000000)->gameLanguage) {
gMenu.field_0x4 = ((struct_02000000*)0x2000000)->gameLanguage;
sub_0801D7EC(3);
}
sub_080AD89C();
sub_0805E5C0();
sub_080AD9B0();
}
void sub_080AD644(void) {
gUnk_03001010[2] = 0;
gUnk_03001010[3] = 0;
gUnk_03001010[4] = 57376;
gUnk_03001010[0] = 120;
gUnk_03001010[1] = 152;
sub_080ADA14(511, 1);
return;
}
void sub_080AD670(void)
{
struct BgAffineSrcData aff;
aff.texY = 0x8000;
aff.texX = 0x8000;
aff.scrX = 0x78;
aff.scrY = 0x48;
aff.alpha = 0;
aff.sy = aff.sx = gMenu.field_0x2c;
BgAffineSet(&aff, (struct BgAffineDstData*)&gBgControls, 1);
}
void sub_080AD6AC(void)
{
Entity *pEVar2;
switch (gMenu.overlayType) {
case 0:
if (gUnk_03000FD0.field_0x0 == 0) {
if ((gMenu.field_0x11 & 1) == 0) {
gScreen.bg2.bg0Control++;
}
if ((sub_080AD84C() == 2) || (gScreen.bg2.bg0Control == 0)) {
gMenu.overlayType++;
gScreen.bg2.bg0Control = 0;
gScreen.bg1.unk = 0xc09;
gUnk_03000FD0.field_0x4 = 0x40;
DoFade(6,0x10);
PlaySFX(0xf8);
}
}
break;
case 1:
if (gUnk_03000FD0.field_0x0 == '\0') {
gUnk_03000FD0.field_0x4 = -1;
gMenu.overlayType++;
gMenu.transitionTimer = 0x5a;
pEVar2 = CreateObject(0xb4,0,0);
if (pEVar2 != NULL) {
pEVar2->x.HALF.HI = 0;
pEVar2->y.HALF.HI = 0x48;
}
}
break;
case 2:
if (sub_080AD84C()) {
gMenu.menuType++;
gMenu.transitionTimer = 0x3c;
}
}
}
+1 -1
View File
@@ -57,7 +57,7 @@ void sub_08018CBC(Entity *this)
this->action = 2;
this->spriteSettings.b.draw = 1;
this->spriteIndex = 0xa6;
this->palette = 0x33;
this->palette.raw = 0x33;
this->spriteVramOffset = 0;
(this->entityType).form = gLinkState.field_0x1d[0] - 1;
this->actionDelay = gUnk_080B3DE0[(this->entityType).form * 2];
+4 -4
View File
@@ -90,9 +90,9 @@ void sub_080600F0(Entity* this) {
u32 uVar1;
u32 uVar2;
uVar2 = this->field_0x80;
if (this->field_0x80 < 8) {
if ((this->field_0x82 & 1) != 0) {
uVar2 = this->field_0x80.HWORD;
if (this->field_0x80.HWORD < 8) {
if ((this->field_0x82.HWORD & 1) != 0) {
uVar2 = (uVar2 & 0xfc) + (this->field_0xf >> 1);
} else {
uVar2 = (uVar2 & 0xfc) + (this->animationState >> 1);
@@ -102,7 +102,7 @@ void sub_080600F0(Entity* this) {
if (uVar2 != this->animIndex) {
InitAnimationForceUpdate(this, uVar2);
}
if ((this->field_0x82 & 4) != 0) {
if ((this->field_0x82.HWORD & 4) != 0) {
uVar1 = 2;
} else {
uVar1 = 1;
+2 -2
View File
@@ -63,7 +63,7 @@ void sub_08069428(Entity* this, s32 offsetX, bool32 createFx65);
void sub_080693D0(Entity* this) {
sub_0807DD94(this, 0);
if (this->animIndex == 8) {
u32 var0 = this->field_0x82 & 0xF;
u32 var0 = this->field_0x82.HWORD & 0xF;
bool32 createFx65 = ((-var0) | var0) >> 0x1F; // = !var0
if (this->frames.all == 1) {
@@ -121,7 +121,7 @@ void sub_080694EC(Entity* this) {
anim = 2;
if (!CheckKinstoneFused(47)) anim = 8;
InitAnimationForceUpdate(this, anim);
this->field_0x80 = anim;
this->field_0x80.HWORD = anim;
}
void Goron_Fusion(Entity* this) {
+2 -2
View File
@@ -157,8 +157,8 @@ void sub_080661BC(Entity *this)
if (this->animIndex == 0xc) {
UpdateAnimationSingleFrame(this);
if ((this->frames.b.f3) != 0) {
this->field_0x80 = GetAnimationState(this) + 8;
InitAnimationForceUpdate(this, this->field_0x80);
this->field_0x80.HWORD = GetAnimationState(this) + 8;
InitAnimationForceUpdate(this, this->field_0x80.HWORD);
}
}
else {
+1 -1
View File
@@ -41,7 +41,7 @@ void sub_0806A1F8(Entity *this)
void sub_0806A234(Entity *this)
{
sub_0807DD94(this, 0);
if ((this->field_0x82 & 4) != 0) {
if ((this->field_0x82.HWORD & 4) != 0) {
if ((gUnk_030010A0 & 7) == 0) {
sub_0806A26C(this);
}
+6 -6
View File
@@ -109,27 +109,27 @@ void sub_08066DE4(Entity* ent) {
void sub_08066E08(Entity* ent) {
InitAnimationForceUpdate(ent, 0x50);
ent->field_0x80 = ent->animIndex;
ent->field_0x80.HWORD = ent->animIndex;
}
void sub_08066E20(Entity* ent) {
InitAnimationForceUpdate(ent, 0x44);
ent->field_0x80 = ent->animIndex;
ent->field_0x80.HWORD = ent->animIndex;
}
void sub_08066E38(Entity* ent) {
InitAnimationForceUpdate(ent, 0x48);
ent->field_0x80 = ent->animIndex;
ent->field_0x80.HWORD = ent->animIndex;
}
void sub_08066E50(Entity* ent) {
InitAnimationForceUpdate(ent, 0x4C);
ent->field_0x80 = ent->animIndex;
ent->field_0x80.HWORD = ent->animIndex;
}
void sub_08066E68(Entity* ent) {
InitAnimationForceUpdate(ent, 0x54);
ent->field_0x80 = ent->animIndex;
ent->field_0x80.HWORD = ent->animIndex;
}
void sub_08066E80(Entity* ent, u8* param_2) {
@@ -172,7 +172,7 @@ void sub_08066E80(Entity* ent, u8* param_2) {
return;
}
}
ent->field_0x80 = ent->animIndex;
ent->field_0x80.HWORD = ent->animIndex;
gUnk_02033280[6] = 0;
}
+1 -1
View File
@@ -11,7 +11,7 @@ void Object1C(Entity *this)
if (this->action == 0) {
this->action = 1;
}
iVar1 = CheckRectOnScreen(this->field_0x80, this->field_0x82, 0x10, 0x10);
iVar1 = CheckRectOnScreen(this->field_0x80.HWORD, this->field_0x82.HWORD, 0x10, 0x10);
if (iVar1 == 0) {
this->parent->field_0x20 &= ~(1 << this->entityType.parameter);
DeleteThisEntity();
+21
View File
@@ -0,0 +1,21 @@
#include "global.h"
#include "entity.h"
#include "room.h"
#include "functions.h"
extern void (*const gUnk_081246EC[])(Entity*);
void PalaceArchway(Entity* this) {
gUnk_081246EC[this->action](this);
}
void sub_0809F2A0(Entity *this)
{
this->action = 1;
this->frameIndex = this->entityType.parameter;
this->spriteRendering.b3 = 3;
this->spritePriority.b0 = 7;
SetTile(0x4069, COORD_TO_TILE(this), this->collisionLayer);
}
void nullsub_537() {}
+3 -3
View File
@@ -19,14 +19,14 @@ void sub_080A0EB0(Entity* ent) {
ent->action = 1;
tilePos = COORD_TO_TILE(ent);
ent->field_0x80 = tilePos;
SetTile(16509, ent->field_0x80, 1);
ent->field_0x80.HWORD = tilePos;
SetTile(16509, ent->field_0x80.HWORD, 1);
}
void sub_080A0EF0(Entity* ent) {
s32 tileIndex;
tileIndex = GetTileType(ent->field_0x80, 1);
tileIndex = GetTileType(ent->field_0x80.HWORD, 1);
if (tileIndex != 0x407D) {
sub_08078B48();
gLinkEntity.x.WORD = ent->x.WORD;
+61 -105
View File
@@ -6,52 +6,8 @@
#include "flags.h"
#include "link.h"
#include "screen.h"
typedef struct {
u8 field_0x0[8];
u8 field_0x8;
u8 field_0x9;
u8 field_0xa[6];
union SplitWord field_0x10;
u8 field_0x14[0xc];
u16 field_0x20;
u16 field_0x22;
u8 field_0x24[0x14];
u8 field_0x38;
u8 field_0x39;
u16 field_0x3a;
u8 field_0x3c;
u8 filler[6];
u16 field_0x44;
u16 field_0x46;
u16 field_0x48;
u16 field_0x4a;
} struct_030010A0;
typedef struct {
u8 filler[8];
u8 field_0x8;
u8 field_0x9[0x34];
u32 windcrests;
u8 field_0x44[0x64];
Stats stats;
} struct_02002A40;
typedef struct {
u8 interruptFlag;
u8 field_0x1;
u8 funcIndex;
u8 field_0x3;
u8 transition;
u8 field_0x5;
u8 muteAudio;
u8 field_0x8;
u8 countdown;
} Main;
extern struct_030010A0 gUnk_030010A0;
extern struct_02002A40 gUnk_02002A40;
extern Main gUnk_03001000;
#include "main.h"
#include "structures.h"
void sub_0804B3C4(u32 arg0) {
sub_0804B29C(arg0);
@@ -4463,13 +4419,13 @@ extern EntityData gUnk_080F0920;
void sub_0804E27C(void)
{
if (!CheckGlobalFlag(0x15)) {
if (!CheckGlobalFlag(TABIDACHI)) {
LoadRoomEntityList(&gUnk_080F0650);
gArea.pMusicIndex = 0x13;
SetGlobalFlag(100);
SetGlobalFlag(CASTLE_BGM);
}
else {
if (CheckGlobalFlag(100)) {
if (CheckGlobalFlag(CASTLE_BGM)) {
gArea.pMusicIndex = 0x1b;
}
}
@@ -4525,7 +4481,7 @@ extern EntityData gUnk_080F1C88;
void sub_0804E460(void)
{
if (!CheckGlobalFlag(0x4a)) {
if (!CheckGlobalFlag(POWERGLOVE_HINT)) {
LoadRoomEntityList(&gUnk_080F1C68);
}
else {
@@ -4543,11 +4499,11 @@ extern EntityData gUnk_080F1DD0;
void sub_0804E488(void)
{
if (CheckGlobalFlag(0x2e)) {
if (CheckGlobalFlag(NEW_HOUSE_DIN)) {
LoadRoomEntityList(&gUnk_080F1D90);
} else if (CheckGlobalFlag(0x2f)) {
} else if (CheckGlobalFlag(NEW_HOUSE_NAYRU)) {
LoadRoomEntityList(&gUnk_080F1DB0);
} else if (CheckGlobalFlag(0x30)) {
} else if (CheckGlobalFlag(NEW_HOUSE_FARORE)) {
LoadRoomEntityList(&gUnk_080F1DD0);
}
}
@@ -4577,7 +4533,7 @@ void sub_0804E4E4(void)
LoadRoomEntityList(&gUnk_080F2174);
// picori legend book
if (!GetInventoryValue(0x3a) && CheckGlobalFlag(0x2a)) {
if (!GetInventoryValue(0x3a) && CheckGlobalFlag(MIZUKAKI_HARIFALL)) {
LoadRoomEntityList(&gUnk_080F2194);
}
if (gUnk_030010A0.field_0xa[5] == 1) {
@@ -4600,7 +4556,7 @@ void sub_0804E52C(void)
LoadRoomEntityList(&gUnk_080F23BC);
}
// flippers
if (!GetInventoryValue(0x46) && CheckGlobalFlag(0x29)) {
if (!GetInventoryValue(0x46) && CheckGlobalFlag(MIZUKAKI_START)) {
LoadRoomEntityList(&gUnk_080F238C);
}
else {
@@ -4631,7 +4587,7 @@ void sub_0804E574(void)
case 5:
// flippers
if (!GetInventoryValue(0x46)) {
if (!CheckGlobalFlag(0x29)) {
if (!CheckGlobalFlag(MIZUKAKI_START)) {
LoadRoomEntityList(&gUnk_080F2570);
break;
}
@@ -4692,11 +4648,11 @@ extern EntityData gUnk_080F2914;
void sub_0804E684(void)
{
if (CheckGlobalFlag(0x2b)) {
if (CheckGlobalFlag(RENTED_HOUSE_DIN)) {
LoadRoomEntityList(&gUnk_080F28D4);
} else if (CheckGlobalFlag(0x2c)) {
} else if (CheckGlobalFlag(RENTED_HOUSE_NAYRU)) {
LoadRoomEntityList(&gUnk_080F28F4);
} else if (CheckGlobalFlag(0x2d)) {
} else if (CheckGlobalFlag(RENTED_HOUSE_FARORE)) {
LoadRoomEntityList(&gUnk_080F2914);
}
}
@@ -4727,11 +4683,11 @@ extern EntityData gUnk_080F2E2C;
void sub_0804E6E8(void)
{
if (!CheckGlobalFlag(0x49)) {
if (!CheckGlobalFlag(OUTDOOR)) {
gArea.musicIndex = gArea.pMusicIndex;
PlaySFX(0x800b0036);
}
if (!CheckGlobalFlag(0x13)) {
if (!CheckGlobalFlag(START)) {
LoadRoomEntityList(&gUnk_080F2E2C);
}
}
@@ -4745,11 +4701,11 @@ extern EntityData gUnk_080F2EC4;
void sub_0804E72C(void)
{
if (!CheckGlobalFlag(0x49)) {
if (!CheckGlobalFlag(OUTDOOR)) {
gArea.musicIndex = gArea.pMusicIndex;
PlaySFX(0x800b0036);
}
if (!CheckGlobalFlag(0x13)) {
if (!CheckGlobalFlag(START)) {
LoadRoomEntityList(&gUnk_080F2E94);
}
else {
@@ -4780,7 +4736,7 @@ extern EntityData gUnk_080F30CC;
void sub_0804E7A4(void)
{
// dog food
if ((GetInventoryValue(0x36) == 1) && !CheckGlobalFlag(0x5b) &&
if ((GetInventoryValue(0x36) == 1) && !CheckGlobalFlag(BIN_DOGFOOD) &&
(gLinkState.flags.all & 0x80) == 0) {
LoadRoomEntityList(&gUnk_080F30CC);
}
@@ -4797,13 +4753,13 @@ extern u32 gUnk_08009B30;
void sub_0804E7DC(void)
{
if (!CheckGlobalFlag(0x13) && !CheckLocalFlag(0x46)) {
if (!CheckGlobalFlag(START) && !CheckLocalFlag(0x46)) {
sub_080A71C4(5, 1, 4, 4);
gUnk_02000070 = 0;
DoFade(5, 0x100);
sub_080751E8(0, 6, &gUnk_08009B30);
}
if (!CheckGlobalFlag(0x49)) {
if (!CheckGlobalFlag(OUTDOOR)) {
gArea.musicIndex = gArea.pMusicIndex;
PlaySFX(0x800b0036);
}
@@ -4857,7 +4813,7 @@ extern EntityData gUnk_080F3604;
void sub_0804E8FC(void)
{
if (!CheckGlobalFlag(0x1d)) {
if (!CheckGlobalFlag(INLOCK)) {
LoadRoomEntityList(&gUnk_080F36FC);
}
else if (gUnk_02002A40.field_0x8 < 4) {
@@ -4873,7 +4829,7 @@ extern EntityData gUnk_080F37D0;
void sub_0804E930(void)
{
if (CheckGlobalFlag(0x1d)) {
if (CheckGlobalFlag(INLOCK)) {
LoadRoomEntityList(&gUnk_080F37D0);
}
}
@@ -4893,7 +4849,7 @@ extern EntityData gUnk_080F3A48;
void sub_0804E954(void)
{
// flippers, history of masks
if (!GetInventoryValue(0x46) && CheckGlobalFlag(0x29) && !GetInventoryValue(0x3b)) {
if (!GetInventoryValue(0x46) && CheckGlobalFlag(MIZUKAKI_START) && !GetInventoryValue(0x3b)) {
LoadRoomEntityList(&gUnk_080F3A48);
}
gUnk_030010A0.field_0x20 = 0xf28;
@@ -4905,7 +4861,7 @@ extern u32 gUnk_080F3EA4;
u32 sub_0804E998(void)
{
if (CheckGlobalFlag(5) && !CheckLocalFlag(4)) {
if (CheckGlobalFlag(LV4_CLEAR) && !CheckLocalFlag(4)) {
gRoomVars.field_0x74 = &gUnk_080F3EA4;
}
else {
@@ -4920,13 +4876,13 @@ extern EntityData gUnk_080F3C44;
void sub_0804E9D0(void)
{
if (CheckGlobalFlag(5) && !CheckLocalFlag(4)) {
if (CheckGlobalFlag(LV4_CLEAR) && !CheckLocalFlag(4)) {
LoadRoomEntityList(&gUnk_080F3C64);
}
if (CheckKinstoneFused(0x12)) {
LoadRoomEntityList(&gUnk_080F3C94);
}
if ((gUnk_02002A40.field_0x8 > 3) && CheckGlobalFlag(0x5c)) {
if ((gUnk_02002A40.field_0x8 > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) {
LoadRoomEntityList(&gUnk_080F3C44);
}
SetTile(0x4091, 0x590, 1);
@@ -5054,7 +5010,7 @@ extern u32 gUnk_080F4EB0;
u32 sub_0804EBDC(void)
{
if (CheckGlobalFlag(0x51)) {
if (CheckGlobalFlag(ENDING)) {
gRoomVars.field_0x6c = &gUnk_080F4EB0;
gRoomVars.field_0x74 = NULL;
}
@@ -5070,10 +5026,10 @@ extern EntityData gUnk_080F4E10;
void sub_0804EC00(void)
{
if (CheckGlobalFlag(0x51)) {
if (CheckGlobalFlag(ENDING)) {
gArea.pMusicIndex = gArea.musicIndex;
}
if (!CheckGlobalFlag(0x14)) {
if (!CheckGlobalFlag(EZERO_1ST)) {
LoadRoomEntityList(&gUnk_080F4D50);
}
if (!CheckLocalFlag(0x3e)) {
@@ -5112,7 +5068,7 @@ extern u32 gUnk_080F5348;
u32 sub_0804ECBC(void)
{
if (CheckGlobalFlag(0x51)) {
if (CheckGlobalFlag(ENDING)) {
gRoomVars.field_0x6c = &gUnk_080F5348;
gRoomVars.field_0x88 = sub_0804ED18;
gRoomVars.field_0x74 = NULL;
@@ -5146,7 +5102,7 @@ u32 sub_0804ED30() {
void sub_0804ED34(void)
{
sub_080AF2E4();
if (CheckGlobalFlag(0x5d)) {
if (CheckGlobalFlag(SEIIKI_BGM)) {
gArea.pMusicIndex = 0x31;
}
}
@@ -5203,7 +5159,7 @@ void sub_0804ED5C(void)
if (CheckLocalFlag(0x7c)) {
LoadRoomEntityList(&gUnk_080F55B8);
}
if (CheckGlobalFlag(0x5d)) {
if (CheckGlobalFlag(SEIIKI_BGM)) {
gArea.pMusicIndex = 0x31;
}
}
@@ -5219,7 +5175,7 @@ void sub_0804EE78(void)
if (!CheckLocalFlag(0x78) && CheckLocalFlag(0x7c)) {
LoadRoomEntityList(&gUnk_080F5660);
}
if (CheckGlobalFlag(0x5d)) {
if (CheckGlobalFlag(SEIIKI_BGM)) {
gArea.pMusicIndex = 0x31;
}
}
@@ -5263,7 +5219,7 @@ void sub_0804EEBC(void)
}
}
}
if (GetInventoryValue(0x9) || CheckGlobalFlag(4)) {
if (GetInventoryValue(0x9) || CheckGlobalFlag(LV3_CLEAR)) {
LoadRoomEntityList(&gUnk_080F5868);
if (!CheckLocalFlag(0x56)) {
LoadRoomEntityList(&gUnk_080F5828);
@@ -5303,7 +5259,7 @@ void nullsub_398() {}
u32 sub_0804EFDC(void)
{
if (CheckGlobalFlag(0x50)) {
if (CheckGlobalFlag(MAROYA_WAKEUP)) {
gUnk_030010A0.field_0xa[5] = 5;
}
return 1;
@@ -5317,7 +5273,7 @@ void sub_0804EFF8(void)
if (gUnk_02002A40.field_0x8 > 7) {
LoadRoomEntityList(&gUnk_080F5DD0);
}
if (CheckGlobalFlag(0x50)) {
if (CheckGlobalFlag(MAROYA_WAKEUP)) {
sub_080751E8(1, 2, &gUnk_08011C50);
}
}
@@ -5371,8 +5327,8 @@ void nullsub_400() {}
u32 sub_0804F09C(void)
{
if (CheckGlobalFlag(0x24) && CheckLocalFlagByOffset(0x100, 0xdc)) {
SetGlobalFlag(0x58);
if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByOffset(0x100, 0xdc)) {
SetGlobalFlag(WARP_EVENT_END);
}
return 1;
}
@@ -5387,7 +5343,7 @@ void sub_0804F0C0(void)
if (CheckKinstoneFused(0xf)) {
LoadRoomEntityList(&gUnk_080F61BC);
}
if (!CheckGlobalFlag(0x58)) {
if (!CheckGlobalFlag(WARP_EVENT_END)) {
SetTileType(0x4072, 0x4c7, 1);
SetTileType(0x4072, 0x507, 1);
}
@@ -5403,7 +5359,7 @@ extern EntityData gUnk_080F6324;
void sub_0804F12C(void)
{
if (!CheckGlobalFlag(0x58)) {
if (!CheckGlobalFlag(WARP_EVENT_END)) {
LoadRoomEntityList(&gUnk_080F62E4);
}
else {
@@ -5446,7 +5402,7 @@ extern EntityData gUnk_080F66AC;
void sub_0804F190(void)
{
sub_0805B4D0(5);
if (CheckGlobalFlag(6) && !CheckLocalFlagByOffset(0x100, 5)) {
if (CheckGlobalFlag(LV5_CLEAR) && !CheckLocalFlagByOffset(0x100, 5)) {
LoadRoomEntityList(&gUnk_080F66AC);
}
sub_08052CA4(8, 0, 0x1e8, 0x158);
@@ -5526,7 +5482,7 @@ u32 sub_0804F23C(void)
if (!CheckLocalFlag(0x6d)) {
DoFade(7, 0x100);
}
SetGlobalFlag(0x49);
SetGlobalFlag(OUTDOOR);
return 1;
}
@@ -5539,9 +5495,9 @@ void sub_0804F25C(void)
sub_0805ADD8(0);
if (!CheckLocalFlag(0x6d)) {
LoadRoomEntityList(&gUnk_080F70A8);
ClearGlobalFlag(0x1c);
ClearGlobalFlag(ZELDA_CHASE);
}
if (!CheckGlobalFlag(0x15)) {
if (!CheckGlobalFlag(TABIDACHI)) {
gArea.pMusicIndex = 0x10;
}
if ((gUnk_02002A40.windcrests & 0x40000000) == 0) {
@@ -5620,14 +5576,14 @@ void sub_0804F3B0(void)
sub_0805ADD8(0);
if (CheckLocalFlagByOffset(0x200, 0x8f)) {
if (!CheckGlobalFlag(0x1d)) {
if (!CheckGlobalFlag(INLOCK)) {
LoadRoomEntityList(&gUnk_080F77C0);
}
}
else if (GetInventoryValue(0x40)) {
LoadRoomEntityList(&gUnk_080F77F0);
}
if (CheckGlobalFlag(0x15) && !GetInventoryValue(0x40)) {
if (CheckGlobalFlag(TABIDACHI) && !GetInventoryValue(0x40)) {
LoadRoomEntityList(&gUnk_080F7810);
}
if (!CheckKinstoneFused(0x29)) {
@@ -5635,7 +5591,7 @@ void sub_0804F3B0(void)
SetTile(0x4072, 0xd88, 1);
SetTile(0x4096, 0xdc8, 1);
}
if ((gUnk_02002A40.field_0x8 > 3) && CheckGlobalFlag(0x5c)) {
if ((gUnk_02002A40.field_0x8 > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) {
LoadRoomEntityList(&gUnk_080F78A0);
}
}
@@ -5647,17 +5603,17 @@ extern void sub_0804F4E4();
u32 sub_0804F468(void)
{
if (CheckGlobalFlag(0x15) && !GetInventoryValue(0x11)) {
if (CheckGlobalFlag(TABIDACHI) && !GetInventoryValue(0x11)) {
gRoomVars.field_0x6c = &gUnk_080F7CD0;
gRoomVars.field_0x88 = sub_0804F5E8;
}
if (CheckGlobalFlag(3) && GetInventoryValue(0x3) && !CheckLocalFlag(0x8c)) {
if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x8c)) {
gRoomVars.field_0x6c = &gUnk_080F7C80;
gRoomVars.field_0x88 = sub_0804F4E4;
gRoomVars.field_0x74 = NULL;
}
if (CheckGlobalFlag(0x15)) {
ClearGlobalFlag(100);
if (CheckGlobalFlag(TABIDACHI)) {
ClearGlobalFlag(CASTLE_BGM);
}
return 1;
}
@@ -5680,7 +5636,7 @@ void sub_0804F4F4(void)
SetTileType(0x174, 0x7a6, 1);
SetTileType(0x174, 0x7a7, 1);
}
if (!CheckGlobalFlag(0x15)) {
if (!CheckGlobalFlag(TABIDACHI)) {
gArea.pMusicIndex = 0x13;
}
}
@@ -5862,7 +5818,7 @@ extern EntityData gUnk_080F806C;
void sub_0804FA00(void) {
sub_0805ADD8(0);
if ((gUnk_02002A40.field_0x8 > 3) && CheckGlobalFlag(0x5c)) {
if ((gUnk_02002A40.field_0x8 > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) {
LoadRoomEntityList(&gUnk_080F806C);
}
}
@@ -5877,7 +5833,7 @@ void sub_0804FA30(void)
{
sub_0805ADD8(0);
if (CheckGlobalFlag(3) && GetInventoryValue(0x3) &&
if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) &&
!CheckLocalFlag(0x9c)) {
LoadRoomEntityList(&gUnk_080F82E0);
}
@@ -5908,7 +5864,7 @@ extern EntityData gUnk_080F85D8;
void sub_0804FA98(void)
{
if (CheckGlobalFlag(0x57)) {
if (CheckGlobalFlag(SOUGEN_06_HASHIGO)) {
LoadRoomEntityList(&gUnk_080F85D8);
}
else {
@@ -6407,7 +6363,7 @@ extern u32 gUnk_080FAD48;
u32 sub_0804FDE0(void)
{
if (CheckGlobalFlag(0x51)) {
if (CheckGlobalFlag(ENDING)) {
gRoomVars.field_0x6c = &gUnk_080FAD48;
gRoomVars.field_0x74 = NULL;
}
@@ -6418,7 +6374,7 @@ extern EntityData gUnk_080FACB8;
void sub_0804FE04(void)
{
if (CheckGlobalFlag(0x51)) {
if (CheckGlobalFlag(ENDING)) {
gArea.pMusicIndex = gArea.musicIndex;
}
else {
@@ -6449,14 +6405,14 @@ void sub_0804FE58(void)
{
sub_0805B4D0(1);
if (CheckGlobalFlag(3) && !CheckLocalFlag(2)) {
if (CheckGlobalFlag(LV2_CLEAR) && !CheckLocalFlag(LV1_CLEAR)) {
LoadRoomEntityList(&gUnk_080FAFE4);
}
if ((gUnk_02002A40.windcrests & 0x1000000) == 0) {
LoadRoomEntityList(&gUnk_080FB004);
}
if (GetInventoryValue(0x2)) {
SetGlobalFlag(0x56);
SetGlobalFlag(WHITE_SWORD_END);
}
}
+93 -11
View File
@@ -1,4 +1,35 @@
#include "global.h"
#include "functions.h"
#include "screen.h"
typedef struct {
u8 field_0x0;
u8 field_0x1;
u8 field_0x2;
u8 field_0x3;
u32 field_0x4;
u16 fadeType; // fade in or out, are there others?
u16 fadeSpeed; // subtracted from duration
u16 fadeDuration;
u16 field_0xe;
s16 field_0x10;
s16 field_0x12;
s16 field_0x14;
u16 field_0x16;
u16 field_0x18;
} struct_03000FD0;
extern struct_03000FD0 gUnk_03000FD0;
typedef struct {
u8 field_0x0;
u8 field_0x1;
u8 spritesOffset;
} struct_03000000;
extern struct_03000000 gUnk_03000000;
extern u32 gUnk_0200B644;
extern void sub_0801E104();
extern void DoFade(u32, u32);
@@ -9,14 +40,65 @@ void sub_08050024() {
return;
}
/* thumb_func_start sub_08050024
sub_08050024: @ 0x08050024
push {lr}
bl sub_0801E104
movs r1, #0x80
lsls r1, r1, #1
movs r0, #5
bl DoFade
pop {pc}
.align 2, 0
*/
void sub_08050038(u32 arg0)
{
if ((gUnk_03000FD0.fadeType & 1) != 0) {
gUnk_03000FD0.field_0xe = arg0;
}
else {
gUnk_03000FD0.fadeDuration = arg0;
}
}
void DoFade(u32 fadeType, u32 fadeSpeed)
{
gUnk_03000FD0.fadeSpeed = fadeSpeed;
gUnk_03000FD0.fadeType = fadeType;
gUnk_03000FD0.field_0x0 = 1;
gUnk_03000FD0.fadeDuration = 0x100;
gUnk_03000FD0.field_0xe = 0;
if ((gUnk_03000FD0.fadeType & 2) != 0) {
gUnk_03000FD0.field_0x2 = 0xf8;
}
else {
gUnk_03000FD0.field_0x2 = 0;
}
if ((fadeType & 8) != 0) {
gUnk_03000000.spritesOffset = 1;
gScreen.bg1.unk |= 0x40;
gScreen.bg2.unk |= 0x40;
gScreen.affine.unk2 |= 0x40;
}
if ((fadeType & 0x10) != 0) {
sub_0801E1B8(gUnk_03000FD0.field_0x16, gUnk_03000FD0.field_0x18);
sub_0801E1EC(gUnk_03000FD0.field_0x12, gUnk_03000FD0.field_0x14, gUnk_03000FD0.field_0x10);
if ((fadeType & 1) == 0) {
gUnk_03000FD0.fadeType &= 0xfffb;
sub_08050008();
gUnk_0200B644 = 0xffffffff;
}
}
}
void sub_080500F4(u32 arg0)
{
gUnk_03000FD0.fadeSpeed = arg0;
gUnk_03000FD0.fadeType ^= 1;
gUnk_03000FD0.field_0x0 = 1;
gUnk_03000FD0.fadeDuration = 0x100;
}
void sub_08050110(u32 param_1, u32 param_2, u32 fadeType, u32 fadeSpeed)
{
if ((fadeType & 1) != 0) {
gUnk_03000FD0.field_0x10 = 0x96;
}
else {
gUnk_03000FD0.field_0x10 = 0;
}
gUnk_03000FD0.field_0x12 = param_1;
gUnk_03000FD0.field_0x14 = param_2;
gUnk_03000FD0.field_0x16 = 0x3f3f;
gUnk_03000FD0.field_0x18 = 0;
DoFade(fadeType, fadeSpeed);
}
+61
View File
@@ -0,0 +1,61 @@
#include "global.h"
#include "functions.h"
#include "menu.h"
#include "structures.h"
#include "screen.h"
extern void (*const gUnk_081280C4[])();
void DrawKinstoneMenu(void)
{
gUnk_030010A0.field_0x24[8] = 2;
sub_080AD90C();
gUnk_081280C4[gMenu.menuType]();
sub_080A3B74();
sub_080A4054();
sub_0801C1D4();
sub_0801C208();
sub_0805E5C0();
sub_080AD9B0();
sub_080AD918();
gUnk_030010A0.field_0x24[8] = 0;
}
extern void gUnk_081280DC;
void sub_080A3BD0(void)
{
s32 iVar1;
s32 iVar2;
gMenu.field_0x1 = 1;
gMenu.field_0x12[0x17] = 0;
sub_080A4D34();
LoadPalettesByPaletteGroupIndex(0xcb);
sub_0801D7EC(0x75);
iVar1 = sub_080A4494();
iVar2 = iVar1 + 7;
if (iVar2 < 0) {
iVar2 += 0x7;
}
iVar1 = (iVar2 >> 3) - 6;
iVar1 = max(iVar1, 0);
iVar1 = min(iVar1, 6);
sub_0801D7EC(iVar1 + 0x76);
gScreen.lcd.lcdControl2 |= 0x1e00;
gScreen.bg1.unk = 0x1c01;
gScreen.bg2.unk = 0x1d02;
gScreen.affine.unk2 = 0x1e0b;
gScreen.bg2.bg0xOffset = 1;
gScreen.affine.bg2xOffset = 1;
gScreen.affine.bg3xOffset = 1;
sub_080A4528();
sub_080A4398();
sub_0801E738(0);
sub_080A70AC(&gUnk_081280DC);
sub_080A7114(1);
DoFade(6, 8);
}
+1 -1
View File
@@ -21,6 +21,6 @@ u32 sub_080A554C(u32 arg0)
void sub_080A5574(void)
{
gUnk_08128BF8[gMenu.secret]();
gUnk_08128BF8[gMenu.menuType]();
sub_080A57F4();
}
-15
View File
@@ -1,15 +0,0 @@
#include "global.h"
extern s32 sub_080ADA14(u32, u32);
extern u16 gUnk_03001010[4];
void sub_080AD644(void) {
gUnk_03001010[2] = 0;
gUnk_03001010[3] = 0;
gUnk_03001010[4] = 57376;
gUnk_03001010[0] = 120;
gUnk_03001010[1] = 152;
sub_080ADA14(511, 1);
return;
}