Merge pull request #77 from HookedBehemoth:non-matchings

Decompile more stuff and match some other stuff
This commit is contained in:
notyouraveragehooman
2020-08-26 18:47:58 -07:00
committed by GitHub
89 changed files with 7320 additions and 9147 deletions
+1 -1
View File
@@ -409,7 +409,7 @@ _0802C964:
cmp r1, #8
bne _0802C972
adds r0, r4, #0
bl sub_080A29FC
bl CreateDustSmall
_0802C972:
adds r0, r4, #0
bl sub_0802CC18
+2 -2
View File
@@ -532,7 +532,7 @@ _0808424C:
movs r0, #0x72
bl PlaySFX
adds r0, r4, #0
bl sub_080A29BC
bl CreateDust
_08084258:
movs r0, #3
strb r0, [r4, #0xc]
@@ -596,7 +596,7 @@ _080842BA:
ldrb r1, [r1]
bl sub_0807BA8C
adds r0, r4, #0
bl sub_080A29BC
bl CreateDust
_080842D4:
pop {r4, pc}
.align 2, 0
+4 -4
View File
@@ -1204,7 +1204,7 @@ sub_08051458: @ 0x08051458
ldr r1, _0805147C @ =gUnk_02022030
movs r2, #0x80
lsls r2, r2, #3
bl sub_0801D66C
bl _DmaCopy
pop {pc}
.align 2, 0
_08051474: .4byte gMenu
@@ -1364,7 +1364,7 @@ sub_08051574: @ 0x08051574
muls r1, r2, r1
adds r3, #0xc
adds r1, r1, r3
bl sub_0801D66C
bl _DmaCopy
bl sub_0805070C
pop {pc}
.align 2, 0
@@ -1742,7 +1742,7 @@ sub_08051874: @ 0x08051874
adds r3, r4, #0
adds r3, #0xc
adds r1, r1, r3
bl sub_0801D66C
bl _DmaCopy
movs r0, #0
bl sub_080503BC
b _080518DE
@@ -1895,7 +1895,7 @@ sub_080519B0: @ 0x080519B0
adds r1, r4, #0
adds r1, #0xc
movs r2, #0x20
bl sub_0801D66C
bl _DmaCopy
movs r0, #4
strb r0, [r4, #9]
bl sub_08053518
-1867
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -469,7 +469,7 @@ _08017196:
cmp r1, #0
bne _080171A4
adds r0, r5, #0
bl sub_080A2B80
bl CreateSparkle
_080171A4:
ldr r0, _080171B8 @ =gUnk_02002A40
adds r3, r0, #0
+1 -1
View File
@@ -884,7 +884,7 @@ sub_08018BB4: @ 0x08018BB4
mov r5, sp
mov r1, sp
movs r2, #8
bl sub_0801D66C
bl _DmaCopy
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, r0, #2
+2 -2
View File
@@ -495,7 +495,7 @@ _08019810:
_0801981A:
adds r0, r1, #0
adds r1, r3, #0
bl sub_0801D66C
bl _DmaCopy
b _0801982E
_08019824:
ldrh r0, [r4]
@@ -3815,7 +3815,7 @@ _0801B114:
adds r1, r3, r0
lsls r2, r2, #5
adds r0, r5, #0
bl sub_0801D66C
bl _DmaCopy
_0801B122:
ldr r0, [r4]
cmp r0, #0
+1 -1
View File
@@ -730,7 +730,7 @@ _0801D4C8:
adds r1, r7, #0
movs r2, #0x20
str r3, [sp]
bl sub_0801D66C
bl _DmaCopy
adds r6, #0x20
adds r4, #4
adds r7, #0x20
+2 -2
View File
@@ -2142,11 +2142,11 @@ _0801E86C:
adds r0, r6, #0
adds r1, r7, #0
adds r2, r4, #0
bl sub_0801D66C
bl _DmaCopy
mov r0, r8
mov r1, sb
adds r2, r4, #0
bl sub_0801D66C
bl _DmaCopy
_0801E890:
movs r3, #1
add sb, r3
+1 -1
View File
@@ -45,7 +45,7 @@ _0804ABA4:
lsls r2, r2, #2
adds r1, r0, r2
movs r2, #0x20
bl sub_0801D66C
bl _DmaCopy
ldr r2, _0804AC14 @ =gUsedPalettes
ldr r0, [r2]
movs r1, #0x80
+1 -1
View File
@@ -50,7 +50,7 @@ _0804AEF6:
_0804AF00:
adds r0, r6, #0
movs r2, #0x10
bl sub_0801D66C
bl _DmaCopy
pop {r4, r5, r6, pc}
.align 2, 0
+2 -2
View File
@@ -173,7 +173,7 @@ sub_0804B260: @ 0x0804B260
adds r0, r0, r1
ldr r1, _0804B278 @ =gUnk_02034398
movs r2, #0x20
bl sub_0801D66C
bl _DmaCopy
pop {pc}
.align 2, 0
_0804B274: .4byte gUnk_080015BC
@@ -211,7 +211,7 @@ _0804B2A4:
adds r0, r2, #0
adds r1, r4, #0
movs r2, #8
bl sub_0801D66C
bl _DmaCopy
ldrb r1, [r4, #6]
movs r0, #1
ands r0, r1
+4 -4
View File
@@ -161,7 +161,7 @@ sub_080527FC: @ 0x080527FC
ldr r1, _08052834 @ =gPaletteBuffer
movs r2, #0x80
lsls r2, r2, #3
bl sub_0801D66C
bl _DmaCopy
ldr r1, _08052838 @ =gUsedPalettes
movs r0, #1
rsbs r0, r0, #0
@@ -1258,7 +1258,7 @@ sub_080530B0: @ 0x080530B0
ldr r0, _080530C0 @ =gUnk_080FCAF8
ldr r1, _080530C4 @ =gUnk_030010EC
movs r2, #0x20
bl sub_0801D66C
bl _DmaCopy
pop {pc}
.align 2, 0
_080530C0: .4byte gUnk_080FCAF8
@@ -1431,7 +1431,7 @@ sub_080531F8: @ 0x080531F8
ldr r1, _08053248 @ =gUnk_02002AC8
adds r0, r5, #0
movs r2, #0x20
bl sub_0801D66C
bl _DmaCopy
bl CheckIsDungeon
cmp r0, #0
beq _08053238
@@ -1483,7 +1483,7 @@ sub_08053250: @ 0x08053250
adds r0, #0xc
ldr r1, _08053298 @ =gUnk_02002AC8
movs r2, #0x20
bl sub_0801D66C
bl _DmaCopy
pop {r4, pc}
.align 2, 0
_0805328C: .4byte gScreenTransition
+1 -1
View File
@@ -32,7 +32,7 @@ _080560E4:
lsls r4, r4, #0x12
adds r1, r4, #0
movs r2, #0x10
bl sub_0801D66C
bl _DmaCopy
adds r0, r4, #0
bl sub_0807CF10
_080560F8:
+1 -1
View File
@@ -102,7 +102,7 @@ sub_080564EC: @ 0x080564EC
ldr r0, _080565A4 @ =gTextBox
adds r1, r4, #0
movs r2, #0x20
bl sub_0801D66C
bl _DmaCopy
ldrb r0, [r4, #2]
cmp r0, #0x63
bne _08056520
+3 -3
View File
@@ -966,7 +966,7 @@ sub_0805F324: @ 0x0805F324
adds r7, r1, #0
mov r1, sp
movs r2, #0x30
bl sub_0801D66C
bl _DmaCopy
movs r0, #0
str r0, [sp, #0x34]
movs r1, #0
@@ -1142,7 +1142,7 @@ _0805F486:
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0x18
bl sub_0801D66C
bl _DmaCopy
mov r0, sp
adds r1, r6, #0
bl sub_0805F440
@@ -1372,7 +1372,7 @@ _0805F63A:
ldr r0, [r4, #8]
ldr r1, [r4, #4]
adds r2, r5, #0
bl sub_0801D66C
bl _DmaCopy
ldr r0, [r4, #4]
adds r0, r0, r5
str r0, [r4, #4]
+1 -1
View File
@@ -542,7 +542,7 @@ _08070BC8:
cmp r0, #0
bne _08070BE4
adds r0, r5, #0
bl sub_080A2A64
bl CreateWaterTrace
_08070BE4:
pop {r4, r5, r6, r7, pc}
.align 2, 0
+4 -4
View File
@@ -3691,14 +3691,14 @@ _08074E54:
movs r1, #8
movs r2, #0x18
rsbs r2, r2, #0
bl sub_080A2CFC
bl CreateSpeechBubbleExclamationMark
b _08074EF0
_08074E62:
adds r0, r4, #0
movs r1, #8
movs r2, #0x18
rsbs r2, r2, #0
bl sub_080A2D0C
bl CreateSpeechBubbleQuestionMark
b _08074EF0
_08074E70:
ldrb r0, [r4, #0x18]
@@ -4261,7 +4261,7 @@ _08075270:
movs r2, #0x1c
rsbs r2, r2, #0
adds r0, r4, #0
bl sub_080A2D1C
bl CreateSpeechBubbleSleep
str r0, [r4, #0x6c]
cmp r0, #0
beq _0807528C
@@ -4280,7 +4280,7 @@ sub_0807529C: @ 0x0807529C
movs r2, #0x20
rsbs r2, r2, #0
movs r1, #8
bl sub_080A2D0C
bl CreateSpeechBubbleQuestionMark
pop {pc}
.align 2, 0
+2 -2
View File
@@ -5117,7 +5117,7 @@ _0807AECC:
cmp r0, #0
bne _0807AEDE
adds r0, r4, #0
bl sub_080A2A64
bl CreateWaterTrace
_0807AEDE:
pop {r4, pc}
.align 2, 0
@@ -5517,7 +5517,7 @@ sub_0807B1A8: @ 0x0807B1A8
cmp r0, #0
bne _0807B1D0
adds r0, r4, #0
bl sub_080A2B80
bl CreateSparkle
_0807B1D0:
pop {r4, pc}
.align 2, 0
+21 -21
View File
@@ -853,7 +853,7 @@ _0807C01C:
lsls r2, r2, #2
adds r1, r1, r2
movs r2, #0x20
bl sub_0801D66C
bl _DmaCopy
ldr r2, _0807C0D4 @ =gUsedPalettes
ldr r0, [r2]
movs r1, #0x80
@@ -1015,13 +1015,13 @@ _0807C184:
movs r4, #0x80
lsls r4, r4, #6
adds r2, r4, #0
bl sub_0801D66C
bl _DmaCopy
ldr r0, _0807C1B8 @ =gUnk_0200B654
movs r3, #0xc0
lsls r3, r3, #6
adds r1, r0, r3
adds r2, r4, #0
bl sub_0801D66C
bl _DmaCopy
b _0807C26C
.align 2, 0
_0807C1B0: .4byte gScreenTransition
@@ -1040,34 +1040,34 @@ _0807C1BC:
adds r0, r4, #0
mov r1, r8
adds r2, r5, #0
bl sub_0801D66C
bl _DmaCopy
movs r1, #0xc0
lsls r1, r1, #6
adds r6, r4, r1
adds r0, r6, #0
adds r1, r4, #0
adds r2, r5, #0
bl sub_0801D66C
bl _DmaCopy
mov r0, r8
adds r1, r6, #0
adds r2, r5, #0
bl sub_0801D66C
bl _DmaCopy
adds r6, r4, r5
adds r0, r6, #0
mov r1, r8
adds r2, r5, #0
bl sub_0801D66C
bl _DmaCopy
movs r2, #0x80
lsls r2, r2, #7
adds r4, r4, r2
adds r0, r4, #0
adds r1, r6, #0
adds r2, r5, #0
bl sub_0801D66C
bl _DmaCopy
mov r0, r8
adds r1, r4, #0
adds r2, r5, #0
bl sub_0801D66C
bl _DmaCopy
ldr r4, _0807C27C @ =gUnk_0200B654
movs r3, #0xb0
lsls r3, r3, #8
@@ -1076,34 +1076,34 @@ _0807C1BC:
adds r0, r4, #0
mov r1, r8
adds r2, r5, #0
bl sub_0801D66C
bl _DmaCopy
movs r0, #0xc0
lsls r0, r0, #6
adds r6, r4, r0
adds r0, r6, #0
adds r1, r4, #0
adds r2, r5, #0
bl sub_0801D66C
bl _DmaCopy
mov r0, r8
adds r1, r6, #0
adds r2, r5, #0
bl sub_0801D66C
bl _DmaCopy
adds r6, r4, r5
adds r0, r6, #0
mov r1, r8
adds r2, r5, #0
bl sub_0801D66C
bl _DmaCopy
movs r1, #0x80
lsls r1, r1, #7
adds r4, r4, r1
adds r0, r4, #0
adds r1, r6, #0
adds r2, r5, #0
bl sub_0801D66C
bl _DmaCopy
mov r0, r8
adds r1, r4, #0
adds r2, r5, #0
bl sub_0801D66C
bl _DmaCopy
_0807C26C:
mov r2, sb
cmp r2, #0
@@ -1161,7 +1161,7 @@ _0807C2E4:
adds r0, r4, #0
adds r1, r5, #0
adds r2, r6, #0
bl sub_0801D66C
bl _DmaCopy
adds r0, r4, #0
adds r1, r5, #0
bl sub_0807C5F4
@@ -1173,7 +1173,7 @@ _0807C2E4:
adds r0, r4, #0
adds r1, r5, #0
adds r2, r6, #0
bl sub_0801D66C
bl _DmaCopy
adds r0, r4, #0
adds r1, r5, #0
bl sub_0807C5F4
@@ -1449,7 +1449,7 @@ _0807C54A:
adds r0, r4, #0
adds r1, r5, #0
adds r2, r6, #0
bl sub_0801D66C
bl _DmaCopy
adds r0, r4, #0
adds r1, r5, #0
bl sub_0807C5F4
@@ -1461,7 +1461,7 @@ _0807C54A:
adds r0, r4, #0
adds r1, r5, #0
adds r2, r6, #0
bl sub_0801D66C
bl _DmaCopy
adds r0, r4, #0
adds r1, r5, #0
bl sub_0807C5F4
@@ -1870,13 +1870,13 @@ sub_0807C860: @ 0x0807C860
movs r4, #0x80
lsls r4, r4, #6
adds r2, r4, #0
bl sub_0801D66C
bl _DmaCopy
ldr r0, _0807C894 @ =gUnk_0200B654
movs r2, #0xc0
lsls r2, r2, #6
adds r1, r0, r2
adds r2, r4, #0
bl sub_0801D66C
bl _DmaCopy
pop {r4, pc}
.align 2, 0
_0807C88C: .4byte gScreenTransition
+8 -8
View File
@@ -1806,14 +1806,14 @@ _0807DC82:
movs r1, #8
movs r2, #0x18
rsbs r2, r2, #0
bl sub_080A2CFC
bl CreateSpeechBubbleExclamationMark
b _0807DD40
_0807DC90:
adds r0, r5, #0
movs r1, #8
movs r2, #0x18
rsbs r2, r2, #0
bl sub_080A2D0C
bl CreateSpeechBubbleQuestionMark
b _0807DD40
_0807DC9E:
adds r0, r6, #0
@@ -5183,7 +5183,7 @@ sub_0807F3F8: @ 0x0807F3F8
movs r2, #0x18
rsbs r2, r2, #0
movs r1, #8
bl sub_080A2CFC
bl CreateSpeechBubbleExclamationMark
pop {pc}
.align 2, 0
_0807F408: .4byte gPlayerEntity
@@ -5195,7 +5195,7 @@ sub_0807F40C: @ 0x0807F40C
movs r2, #0x18
rsbs r2, r2, #0
movs r1, #8
bl sub_080A2D0C
bl CreateSpeechBubbleQuestionMark
pop {pc}
.align 2, 0
_0807F41C: .4byte gPlayerEntity
@@ -5936,7 +5936,7 @@ sub_0807F93C: @ 0x0807F93C
movs r3, #0xff
ands r1, r3
ands r2, r3
bl sub_080A2D1C
bl CreateSpeechBubbleSleep
pop {pc}
.align 2, 0
@@ -6978,14 +6978,14 @@ sub_08080108: @ 0x08080108
lsls r6, r6, #6
adds r0, r5, #0
adds r2, r6, #0
bl sub_0801D66C
bl _DmaCopy
ldr r4, _0808017C @ =gUnk_0200B654
movs r0, #0xc0
lsls r0, r0, #6
adds r1, r4, r0
adds r0, r4, #0
adds r2, r6, #0
bl sub_0801D66C
bl _DmaCopy
bl sub_08080368
ldr r1, _08080180 @ =gUnk_02034480
ldr r0, _08080184 @ =gUnk_0200B640
@@ -6995,7 +6995,7 @@ sub_08080108: @ 0x08080108
ldr r1, _0808018C @ =gUnk_020246B0
movs r2, #0xc0
lsls r2, r2, #5
bl sub_0801D66C
bl _DmaCopy
subs r5, #4
adds r0, r5, #0
bl sub_08080B60
+14 -14
View File
@@ -9,7 +9,7 @@
sub_080A2A84: @ 0x080A2A84
push {r4, r5, r6, r7, lr}
adds r5, r1, #0
bl sub_080A2A64
bl CreateWaterTrace
adds r6, r0, #0
cmp r6, #0
beq _080A2AD2
@@ -132,8 +132,8 @@ _080A2B74:
.align 2, 0
_080A2B7C: .4byte gSineTable
thumb_func_start sub_080A2B80
sub_080A2B80: @ 0x080A2B80
thumb_func_start CreateSparkle
CreateSparkle: @ 0x080A2B80
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #0xf
@@ -331,38 +331,38 @@ _080A2CF8:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080A2CFC
sub_080A2CFC: @ 0x080A2CFC
thumb_func_start CreateSpeechBubbleExclamationMark
CreateSpeechBubbleExclamationMark: @ 0x080A2CFC
push {r4, lr}
adds r4, r1, #0
adds r3, r2, #0
movs r1, #0
adds r2, r4, #0
bl sub_080A2D2C
bl CreateSpeechBubble
pop {r4, pc}
thumb_func_start sub_080A2D0C
sub_080A2D0C: @ 0x080A2D0C
thumb_func_start CreateSpeechBubbleQuestionMark
CreateSpeechBubbleQuestionMark: @ 0x080A2D0C
push {r4, lr}
adds r4, r1, #0
adds r3, r2, #0
movs r1, #1
adds r2, r4, #0
bl sub_080A2D2C
bl CreateSpeechBubble
pop {r4, pc}
thumb_func_start sub_080A2D1C
sub_080A2D1C: @ 0x080A2D1C
thumb_func_start CreateSpeechBubbleSleep
CreateSpeechBubbleSleep: @ 0x080A2D1C
push {r4, lr}
adds r4, r1, #0
adds r3, r2, #0
movs r1, #2
adds r2, r4, #0
bl sub_080A2D2C
bl CreateSpeechBubble
pop {r4, pc}
thumb_func_start sub_080A2D2C
sub_080A2D2C: @ 0x080A2D2C
thumb_func_start CreateSpeechBubble
CreateSpeechBubble: @ 0x080A2D2C
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r4, r1, #0
+4 -4
View File
@@ -1130,7 +1130,7 @@ sub_080A44E0: @ 0x080A44E0
adds r5, r5, r1
adds r1, r5, #0
mov r2, r8
bl sub_0801D66C
bl _DmaCopy
adds r0, r6, #0
pop {r3}
mov r8, r3
@@ -1980,12 +1980,12 @@ sub_080A4BA0: @ 0x080A4BA0
ldr r0, _080A4C08 @ =gUnk_0812816C
mov r1, sp
movs r2, #0x18
bl sub_0801D66C
bl _DmaCopy
ldr r0, _080A4C0C @ =gUnk_08128184
add r4, sp, #0x48
adds r1, r4, #0
movs r2, #0xc
bl sub_0801D66C
bl _DmaCopy
lsls r1, r6, #1
adds r1, r1, r6
lsls r2, r1, #9
@@ -2127,7 +2127,7 @@ sub_080A4CBC: @ 0x080A4CBC
ldr r1, _080A4D14 @ =0x0600E000
adds r0, r4, #0
adds r2, r5, #0
bl sub_0801D66C
bl _DmaCopy
adds r0, r6, #0
bl sub_080A4948
cmp r0, #0
+19 -19
View File
@@ -867,7 +867,7 @@ sub_080A5BF0: @ 0x080A5BF0
adds r0, r4, #2
adds r1, r4, #0
movs r2, #0xe
bl sub_0801D66C
bl _DmaCopy
strh r5, [r4, #0xe]
ldr r2, _080A5C40 @ =gUsedPalettes
ldr r0, [r2]
@@ -3420,7 +3420,7 @@ sub_080A7040: @ 0x080A7040
movs r2, #0x80
lsls r2, r2, #4
adds r0, r4, #0
bl sub_0801D66C
bl _DmaCopy
ldr r1, _080A70A0 @ =gUnk_08128D70
lsls r0, r5, #3
adds r4, r0, r1
@@ -3679,42 +3679,42 @@ sub_080A7250: @ 0x080A7250
ldr r0, _080A72EC @ =gScreen
ldr r1, _080A72F0 @ =gUnk_03001020
movs r2, #0x7c
bl sub_0801D66C
bl _DmaCopy
ldr r0, _080A72F4 @ =gPaletteBuffer
ldr r1, _080A72F8 @ =gUnk_02024090
movs r2, #0x80
lsls r2, r2, #3
bl sub_0801D66C
bl _DmaCopy
ldr r0, _080A72FC @ =gUnk_02024490
ldr r4, _080A7300 @ =gUnk_02032F14
movs r2, #0x85
lsls r2, r2, #2
adds r1, r4, #0
bl sub_0801D66C
bl _DmaCopy
ldr r0, _080A7304 @ =gUnk_02001A00
movs r2, #0x85
lsls r2, r2, #2
adds r1, r4, r2
movs r2, #0x40
bl sub_0801D66C
bl _DmaCopy
ldr r0, _080A7308 @ =gRoomControls
adds r1, r4, #0
subs r1, #0x38
movs r2, #0x38
bl sub_0801D66C
bl _DmaCopy
ldr r0, _080A730C @ =gUnk_03000420
movs r2, #0x95
lsls r2, r2, #2
adds r1, r4, r2
movs r2, #0x80
lsls r2, r2, #1
bl sub_0801D66C
bl _DmaCopy
ldr r0, _080A7310 @ =gUnk_02033280
movs r2, #0xd5
lsls r2, r2, #2
adds r1, r4, r2
movs r2, #0xc
bl sub_0801D66C
bl _DmaCopy
bl sub_0805E958
adds r1, r4, #0
subs r1, #0x54
@@ -3838,36 +3838,36 @@ _080A73B4:
adds r0, r5, r1
ldr r1, _080A7480 @ =gUnk_02033280
movs r2, #0xc
bl sub_0801D66C
bl _DmaCopy
movs r1, #0xaa
lsls r1, r1, #2
adds r0, r5, r1
ldr r1, _080A7484 @ =gUnk_03000420
movs r2, #0x80
lsls r2, r2, #1
bl sub_0801D66C
bl _DmaCopy
movs r1, #0x9a
lsls r1, r1, #2
adds r0, r5, r1
ldr r1, _080A7488 @ =gUnk_02001A00
movs r2, #0x40
bl sub_0801D66C
bl _DmaCopy
adds r0, r5, #0
adds r0, #0x54
ldr r1, _080A748C @ =gUnk_02024490
movs r2, #0x85
lsls r2, r2, #2
bl sub_0801D66C
bl _DmaCopy
adds r0, r5, #0
adds r0, #0x1c
ldr r4, _080A7490 @ =gRoomControls
adds r1, r4, #0
movs r2, #0x38
bl sub_0801D66C
bl _DmaCopy
ldr r0, _080A7494 @ =gUnk_03001020
ldr r1, _080A7498 @ =gScreen
movs r2, #0x7c
bl sub_0801D66C
bl _DmaCopy
ldrb r0, [r4, #4]
bl sub_08052D58
ldr r4, _080A749C @ =gArea
@@ -8153,7 +8153,7 @@ sub_080A9448: @ 0x080A9448
cmp r0, #0
bne _080A9464
adds r0, r4, #0
bl sub_080A29BC
bl CreateDust
bl DeleteThisEntity
b _080A9486
_080A9464:
@@ -10572,7 +10572,7 @@ sub_080AA654: @ 0x080AA654
ldr r0, _080AA688 @ =gUnk_0812A004
adds r1, r4, #0
movs r2, #0x10
bl sub_0801D66C
bl _DmaCopy
movs r1, #0x3f
adds r0, r5, #0
ands r0, r1
@@ -13189,7 +13189,7 @@ sub_080AB9DC: @ 0x080AB9DC
adds r1, r4, #0
adds r1, #0x68
movs r2, #0x1c
bl sub_0801D66C
bl _DmaCopy
ldrh r1, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x84
@@ -13507,7 +13507,7 @@ _080ABC2A:
bl ModHealth
_080ABC32:
adds r0, r4, #0
bl sub_080A29BC
bl CreateDust
bl DeleteThisEntity
b _080ABC52
_080ABC3E:
-13
View File
@@ -1,13 +0,0 @@
.include "asm/macros.inc"
.text
.syntax unified
thumb_func_start CreateFx
CreateFx: @ 0x080A29AC
push {r4, lr}
adds r4, r1, #0
adds r3, r2, #0
movs r1, #0xf
adds r2, r4, #0
bl CreateObjectWithParent
pop {r4, pc}
+1 -1
View File
@@ -603,7 +603,7 @@ sub_08096780: @ 0x08096780
strb r0, [r5, #0xc]
strb r1, [r5, #0xd]
adds r0, r5, #0
bl sub_080A29BC
bl CreateDust
b _080967E0
.align 2, 0
_080967D4: .4byte gUnk_0812319C
+1 -1
View File
@@ -146,7 +146,7 @@ _080441F2:
beq _0804429A
adds r0, r6, #0
adds r2, r5, #0
bl sub_0801D66C
bl _DmaCopy
adds r1, r4, #0
adds r1, #0x28
movs r0, #0xff
+1 -1
View File
@@ -857,7 +857,7 @@ _0802D6C4:
rsbs r2, r2, #0
adds r0, r5, #0
movs r1, #0xc
bl sub_080A2CFC
bl CreateSpeechBubbleExclamationMark
_0802D6D8:
strb r6, [r5, #0x14]
b _0802D6EC
+4 -4
View File
@@ -234,7 +234,7 @@ _080641E6:
cmp r0, #0
bne _08064222
adds r0, r5, #0
bl sub_080A29FC
bl CreateDustSmall
_08064222:
adds r4, r5, #0
adds r4, #0x71
@@ -299,7 +299,7 @@ _0806428C:
cmp r0, #0
bne _080642AC
adds r0, r5, #0
bl sub_080A29FC
bl CreateDustSmall
_080642AC:
pop {r4, r5, r6, pc}
.align 2, 0
@@ -379,7 +379,7 @@ _08064306:
cmp r0, #0
bne _08064342
adds r0, r5, #0
bl sub_080A29FC
bl CreateDustSmall
_08064342:
adds r4, r5, #0
adds r4, #0x71
@@ -444,7 +444,7 @@ _080643AC:
cmp r0, #0
bne _080643CC
adds r0, r5, #0
bl sub_080A29FC
bl CreateDustSmall
_080643CC:
pop {r4, r5, r6, pc}
.align 2, 0
+1 -1
View File
@@ -475,7 +475,7 @@ _080464DE:
adds r0, r4, #0
adds r1, r5, #0
movs r2, #0x40
bl sub_0801D66C
bl _DmaCopy
movs r0, #0x80
lsls r0, r0, #1
adds r5, r5, r0
+1 -1
View File
@@ -545,7 +545,7 @@ _08080DEE:
cmp r0, #0
bne _08080E00
adds r0, r4, #0
bl sub_080A2B80
bl CreateSparkle
_08080E00:
pop {r4, r5, pc}
.align 2, 0
+2 -2
View File
@@ -312,7 +312,7 @@ sub_08027F84: @ 0x08027F84
movs r1, #0
bl InitializeAnimation
adds r0, r4, #0
bl sub_080A29BC
bl CreateDust
_08027FB0:
pop {r4, pc}
.align 2, 0
@@ -403,7 +403,7 @@ sub_0802802C: @ 0x0802802C
strb r2, [r4, #0x15]
strb r2, [r4, #0xe]
adds r0, r4, #0
bl sub_080A29BC
bl CreateDust
_0802805A:
pop {r4, pc}
+1 -1
View File
@@ -440,7 +440,7 @@ _080598AA:
lsls r2, r2, #2
adds r1, r0, r2
movs r2, #0x20
bl sub_0801D66C
bl _DmaCopy
ldr r2, _080598F0 @ =gUsedPalettes
ldr r0, [r2]
ldr r1, _080598F4 @ =0x00207FFC
+1 -1
View File
@@ -188,7 +188,7 @@ sub_0805BDB4: @ 0x0805BDB4
movs r2, #0x3a
ldrsh r1, [r4, r2]
ldrb r2, [r4, #0xb]
bl sub_080A29C8
bl CreateDustAt
ldrh r0, [r4, #0x3e]
bl ClearFlag
ldrh r0, [r4, #0x20]
+1 -1
View File
@@ -124,7 +124,7 @@ _0805DF1A:
rsbs r2, r2, #0
adds r0, r5, #0
movs r1, #8
bl sub_080A2CFC
bl CreateSpeechBubbleExclamationMark
adds r2, r0, #0
cmp r2, #0
beq _0805DF3C
+1 -1
View File
@@ -142,7 +142,7 @@ sub_0805E1F8: @ 0x0805E1F8
ldr r0, _0805E238 @ =gUnk_08108E60
mov r1, sp
movs r2, #9
bl sub_0801D66C
bl _DmaCopy
mov r1, sp
lsrs r0, r4, #8
strb r0, [r1, #4]
+1 -1
View File
@@ -653,7 +653,7 @@ sub_08058D34: @ 0x08058D34
lsls r2, r2, #2
adds r1, r0, r2
movs r2, #0x20
bl sub_0801D66C
bl _DmaCopy
ldr r2, _08058DB0 @ =gUsedPalettes
ldr r0, [r2]
movs r1, #0x80
+1 -1
View File
@@ -333,7 +333,7 @@ sub_08059124: @ 0x08059124
movs r2, #0x3a
ldrsh r1, [r4, r2]
ldrb r2, [r4, #0xb]
bl sub_080A29C8
bl CreateDustAt
ldrh r0, [r4, #0x38]
lsls r0, r0, #0x10
asrs r0, r0, #0x14
@@ -1,136 +0,0 @@
.syntax unified
.text
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r7, r0, #0
bl GetNextFrame
adds r3, r7, #0
adds r3, #0x5a
ldrb r1, [r3]
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, #0
beq _08031D54
ldr r0, _08031D50 @ =gEntCount
ldrb r0, [r0]
cmp r0, #0x42
bhi _08031D66
bl Random
adds r6, r0, #0
movs r0, #3
mov sb, r0
ands r6, r0
movs r0, #0x2e
movs r1, #1
bl CreateEnemy
adds r4, r0, #0
movs r0, #0
mov r8, r0
mov r0, r8
strb r0, [r4, #0xb]
mov r0, r8
str r0, [r4, #0x50]
adds r0, r4, #0
adds r0, #0x74
strb r6, [r0]
adds r0, r7, #0
adds r1, r4, #0
bl sub_08031E48
movs r0, #0x2e
movs r1, #1
bl CreateEnemy
adds r5, r0, #0
str r5, [r4, #0x54]
movs r0, #1
strb r0, [r5, #0xb]
str r4, [r5, #0x50]
adds r0, r5, #0
adds r0, #0x74
strb r6, [r0]
adds r0, r7, #0
adds r1, r5, #0
bl sub_08031E48
movs r0, #0x2e
movs r1, #1
bl CreateEnemy
adds r4, r0, #0
str r4, [r5, #0x54]
movs r0, #2
strb r0, [r4, #0xb]
str r5, [r4, #0x50]
adds r0, r4, #0
adds r0, #0x74
strb r6, [r0]
adds r0, r7, #0
adds r1, r4, #0
bl sub_08031E48
movs r0, #0x2e
movs r1, #1
bl CreateEnemy
adds r5, r0, #0
str r5, [r4, #0x54]
mov r0, sb
strb r0, [r5, #0xb]
str r4, [r5, #0x50]
adds r0, r5, #0
adds r0, #0x74
strb r6, [r0]
adds r0, r7, #0
adds r1, r5, #0
bl sub_08031E48
movs r0, #0x2e
movs r1, #1
bl CreateEnemy
adds r1, r0, #0
str r1, [r5, #0x54]
movs r0, #4
strb r0, [r1, #0xb]
str r5, [r1, #0x50]
mov r0, r8
str r0, [r1, #0x54]
adds r0, r1, #0
adds r0, #0x74
strb r6, [r0]
adds r0, r7, #0
bl sub_08031E48
movs r0, #6
strb r0, [r7, #0xc]
movs r0, #0x14
strb r0, [r7, #0xe]
adds r2, r7, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
adds r0, r7, #0
movs r1, #7
bl InitializeAnimation
b _08031D66
.align 2, 0
_08031D50: .4byte gEntCount
_08031D54:
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08031D66
strb r2, [r3]
ldrb r1, [r7, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r7, #0x10]
_08031D66:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
.syntax divided
@@ -1,41 +0,0 @@
.syntax unified
.text
push {r4, lr}
adds r4, r0, #0
movs r0, #1
bl sub_08049DF4
adds r2, r0, #0
cmp r2, #0
beq _08031E44
adds r0, r4, #0
adds r0, #0x5a
ldrb r0, [r0]
movs r3, #6
ands r3, r0
ldr r0, _08031E40 @ =gUnk_080CE5C0
adds r3, r3, r0
movs r0, #0x2e
ldrsh r1, [r2, r0]
movs r0, #0
ldrsb r0, [r3, r0]
adds r1, r1, r0
movs r0, #0x32
ldrsh r2, [r2, r0]
movs r0, #1
ldrsb r0, [r3, r0]
adds r2, r2, r0
adds r0, r4, #0
movs r3, #0x50
bl sub_0806FCB8
b _08031E46
.align 2, 0
_08031E40: .4byte gUnk_080CE5C0
_08031E44:
movs r0, #0
_08031E46:
pop {r4, pc}
.syntax divided
@@ -1,72 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
adds r7, r0, #0
cmp r7, #0
beq _0806016A
subs r0, #1
strb r0, [r4, #0xe]
b _080601CC
_0806016A:
movs r0, #2
strb r0, [r4, #0xe]
adds r0, r4, #0
movs r1, #0x20
movs r2, #0x20
bl sub_0806EDD8
adds r3, r0, #0
cmp r3, #0
bge _08060188
adds r0, r4, #0
adds r0, #0x69
ldrb r0, [r0]
strb r0, [r4, #0x14]
lsls r3, r0, #2
_08060188:
ldrb r0, [r4, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #5
asrs r1, r3, #1
lsls r1, r1, #1
ldr r2, _080601D0 @ =gUnk_08109C98
adds r1, r1, r2
adds r0, r0, r1
ldrb r6, [r0]
ldrb r5, [r0, #1]
movs r0, #0x80
ands r0, r5
cmp r0, #0
beq _080601AC
adds r0, r3, #0
bl sub_0806F5B0
strb r0, [r4, #0x14]
_080601AC:
movs r0, #0x7f
ands r5, r0
adds r0, r4, #0
adds r0, #0x5a
strb r6, [r0]
strb r5, [r4, #0x1e]
adds r1, r4, #0
adds r1, #0x5b
movs r0, #1
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x58
strb r7, [r0]
subs r1, #2
movs r0, #0xf0
strb r0, [r1]
_080601CC:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080601D0: .4byte gUnk_08109C98
.syntax divided
@@ -1,87 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r7, r0, #0
ldr r0, _08085430 @ =gUnk_081205E0
ldrb r2, [r7, #0x14]
lsrs r2, r2, #1
lsls r2, r2, #1
adds r0, r2, r0
ldrh r0, [r0]
mov sl, r0
ldr r0, _08085434 @ =gUnk_080B4488
adds r2, r2, r0
ldr r0, [r7, #0x70]
mov sb, r0
movs r1, #0x2e
ldrsh r4, [r7, r1]
ldr r1, _08085438 @ =gRoomControls
ldrh r0, [r1, #6]
subs r4, r4, r0
asrs r4, r4, #4
movs r3, #0x3f
ands r4, r3
movs r5, #0x32
ldrsh r0, [r7, r5]
ldrh r1, [r1, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r4, r0
ldrb r2, [r2]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
mov r8, r2
lsls r5, r2, #1
mov r1, sb
subs r0, r1, r5
ldrh r1, [r0]
adds r0, r7, #0
adds r0, #0x74
strh r1, [r0]
subs r1, r4, r2
adds r6, r7, #0
adds r6, #0x38
ldrb r2, [r6]
mov r0, sl
bl SetTile
mov r1, sb
ldrh r0, [r1]
adds r1, r7, #0
adds r1, #0x76
strh r0, [r1]
ldrb r2, [r6]
mov r0, sl
adds r1, r4, #0
bl SetTile
add r5, sb
ldrh r1, [r5]
adds r0, r7, #0
adds r0, #0x78
strh r1, [r0]
add r4, r8
ldrb r2, [r6]
mov r0, sl
adds r1, r4, #0
bl SetTile
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08085430: .4byte gUnk_081205E0
_08085434: .4byte gUnk_080B4488
_08085438: .4byte gRoomControls
.syntax divided
-119
View File
@@ -1,119 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x10]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08066028
adds r2, r4, #0
adds r2, #0x39
movs r0, #0
ldrsb r0, [r2, r0]
adds r6, r4, #0
adds r6, #0x58
cmp r0, #2
bne _0806600C
movs r0, #0
movs r1, #4
strb r1, [r4, #0xc]
strb r0, [r2]
ldrb r0, [r6]
movs r5, #0
cmp r0, #0xc
bne _08065FF0
movs r5, #8
_08065FF0:
ldr r1, _08066020 @ =gPlayerEntity
adds r0, r4, #0
bl GetFacingDirection
bl sub_0806F5A4
adds r5, r5, r0
adds r0, r4, #0
adds r1, r5, #0
bl InitAnimationForceUpdate
adds r0, r4, #0
bl sub_0806F118
_0806600C:
ldr r0, _08066024 @ =gUnk_0811036C
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
b _08066042
.align 2, 0
_08066020: .4byte gPlayerEntity
_08066024: .4byte gUnk_0811036C
_08066028:
ldr r0, _08066058 @ =gUnk_08110360
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_0806ED78
adds r6, r4, #0
adds r6, #0x58
_08066042:
ldrb r0, [r6]
cmp r0, #0xc
bne _0806605C
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
b _0806606E
.align 2, 0
_08066058: .4byte gUnk_08110360
_0806605C:
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #0x39
rsbs r1, r1, #0
ands r1, r0
movs r0, #8
orrs r1, r0
strb r1, [r2]
_0806606E:
adds r2, r4, #0
adds r2, #0x5a
ldrb r1, [r2]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080660A0
movs r0, #0xfe
ands r0, r1
strb r0, [r2]
adds r0, r4, #0
movs r1, #0x3d
movs r2, #0x20
bl CreateFx
ldr r4, _080660A4 @ =gUnk_08110380
bl Random
movs r1, #7
ands r1, r0
lsls r1, r1, #1
adds r1, r1, r4
ldrh r0, [r1]
bl PlaySFX
_080660A0:
pop {r4, r5, r6, pc}
.align 2, 0
_080660A4: .4byte gUnk_08110380
.syntax divided
+1 -1
View File
@@ -20,7 +20,7 @@ _0805453A:
adds r0, r0, r1
ldr r1, _08054560 @ =gUnk_02034398
movs r2, #0x20
bl sub_0801D66C
bl _DmaCopy
pop {pc}
.align 2, 0
_08054550: .4byte gArea
+1 -1
View File
@@ -356,7 +356,7 @@ _0808BAEA:
strb r4, [r2, #0x1e]
_0808BAFC:
adds r0, r2, #0
bl sub_080A29BC
bl CreateDust
pop {r4, pc}
thumb_func_start sub_0808BB04
+2 -2
View File
@@ -211,7 +211,7 @@ sub_08094B94: @ 0x08094B94
adds r1, #0x84
str r0, [r1]
adds r0, r4, #0
bl sub_080A29BC
bl CreateDust
ldrh r0, [r4, #0x36]
adds r0, #0x10
strh r0, [r4, #0x36]
@@ -1692,7 +1692,7 @@ _0809572C:
adds r0, #0x6c
adds r1, r4, #0
movs r2, #0x1c
bl sub_0801D66C
bl _DmaCopy
ldrh r0, [r4, #0x14]
strh r0, [r5, #0x2e]
ldrh r0, [r4, #0x16]
+1 -1
View File
@@ -470,7 +470,7 @@ _0809C74A:
cmp r0, #0
bne _0809C772
ldr r0, [r5, #0x54]
bl sub_080A2B80
bl CreateSparkle
_0809C772:
adds r3, r5, #0
adds r3, #0x7e
-246
View File
@@ -1,246 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0801EC2C
sub_0801EC2C: @ 0x0801EC2C
push {r4, r5, lr}
adds r5, r0, #0
bl sub_080AEF88
adds r0, r5, #0
bl GetNextFrame
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0801EC7E
adds r0, r5, #0
bl sub_0801EDEC
cmp r0, #0
beq _0801EC78
ldr r1, _0801EC74 @ =gUnk_080CA174
ldrb r0, [r5, #0xa]
adds r0, r0, r1
ldrb r4, [r0]
bl Random
movs r1, #3
ands r0, r1
cmp r4, r0
bhi _0801EC78
strb r1, [r5, #0xc]
ldrb r1, [r5, #0x14]
adds r1, #4
adds r0, r5, #0
bl InitializeAnimation
b _0801EC7E
.align 2, 0
_0801EC74: .4byte gUnk_080CA174
_0801EC78:
adds r0, r5, #0
bl sub_0801ECFC
_0801EC7E:
pop {r4, r5, pc}
thumb_func_start sub_0801EC80
sub_0801EC80: @ 0x0801EC80
push {r4, r5, lr}
adds r4, r0, #0
bl GetNextFrame
adds r5, r4, #0
adds r5, #0x5a
ldrb r1, [r5]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0801ECD8
adds r0, r4, #0
movs r1, #1
movs r2, #0
bl sub_0804A98C
adds r2, r0, #0
cmp r2, #0
beq _0801ECD8
ldrb r0, [r4, #0x15]
strb r0, [r2, #0x15]
ldrb r1, [r4, #0x15]
lsrs r1, r1, #2
ldr r0, _0801ECF0 @ =gUnk_080CA176
adds r1, r1, r0
movs r0, #0
ldrsb r0, [r1, r0]
ldrh r3, [r2, #0x2e]
adds r0, r0, r3
strh r0, [r2, #0x2e]
movs r0, #1
ldrsb r0, [r1, r0]
ldrh r1, [r2, #0x32]
adds r0, r0, r1
strh r0, [r2, #0x32]
ldr r0, _0801ECF4 @ =0x0000FFFD
strh r0, [r2, #0x36]
ldrb r1, [r5]
movs r0, #0xfe
ands r0, r1
strb r0, [r5]
ldr r0, _0801ECF8 @ =0x0000018D
bl sub_08004488
_0801ECD8:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0801ECEC
adds r0, r4, #0
bl sub_0801ECFC
_0801ECEC:
pop {r4, r5, pc}
.align 2, 0
_0801ECF0: .4byte gUnk_080CA176
_0801ECF4: .4byte 0x0000FFFD
_0801ECF8: .4byte 0x0000018D
thumb_func_start sub_0801ECFC
sub_0801ECFC: @ 0x0801ECFC
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
bl Random
movs r1, #0x38
ands r0, r1
adds r0, #0x18
strb r0, [r4, #0xe]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0801ED14
sub_0801ED14: @ 0x0801ED14
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xa]
cmp r0, #2
beq _0801ED7E
adds r0, r5, #0
bl sub_08049FA0
cmp r0, #0
beq _0801ED4C
ldrb r0, [r5, #0xa]
cmp r0, #1
bne _0801ED46
bl Random
movs r1, #3
ands r1, r0
cmp r1, #0
bne _0801ED46
adds r0, r5, #0
movs r1, #1
bl sub_08049FDC
cmp r0, #0
bne _0801EDC4
_0801ED46:
bl Random
b _0801EDD0
_0801ED4C:
bl Random
movs r1, #3
ands r1, r0
cmp r1, #0
beq _0801ED78
adds r0, r5, #0
bl sub_08049EE4
adds r4, r0, #0
bl Random
ldr r2, _0801ED74 @ =gUnk_080CA17E
movs r1, #1
ands r1, r0
adds r1, r1, r2
ldrb r0, [r1]
adds r0, r0, r4
b _0801EDD0
.align 2, 0
_0801ED74: .4byte gUnk_080CA17E
_0801ED78:
bl Random
b _0801EDD0
_0801ED7E:
adds r0, r5, #0
movs r1, #1
bl sub_08049FDC
cmp r0, #0
bne _0801EDC4
adds r0, r5, #0
bl sub_08049FA0
cmp r0, #0
beq _0801ED9A
bl Random
b _0801EDD0
_0801ED9A:
bl Random
movs r1, #3
ands r1, r0
cmp r1, #0
beq _0801EDC4
adds r0, r5, #0
bl sub_08049EE4
adds r4, r0, #0
bl Random
ldr r2, _0801EDC0 @ =gUnk_080CA17E
movs r1, #1
ands r1, r0
adds r1, r1, r2
ldrb r0, [r1]
adds r0, r0, r4
b _0801EDD0
.align 2, 0
_0801EDC0: .4byte gUnk_080CA17E
_0801EDC4:
ldr r0, _0801EDE8 @ =gUnk_020000B0
ldr r1, [r0]
adds r0, r5, #0
bl GetFacingDirection
adds r0, #4
_0801EDD0:
movs r1, #0x18
ands r0, r1
strb r0, [r5, #0x15]
ldrb r0, [r5, #0x15]
lsrs r0, r0, #3
strb r0, [r5, #0x14]
ldrb r1, [r5, #0x14]
adds r0, r5, #0
bl InitializeAnimation
pop {r4, r5, pc}
.align 2, 0
_0801EDE8: .4byte gUnk_020000B0
thumb_func_start sub_0801EDEC
sub_0801EDEC: @ 0x0801EDEC
push {r4, lr}
adds r4, r0, #0
movs r0, #1
bl sub_08049DF4
adds r1, r0, #0
cmp r1, #0
beq _0801EE12
adds r0, r4, #0
bl GetFacingDirection
adds r0, #4
movs r1, #0x18
ands r0, r1
ldrb r4, [r4, #0x15]
cmp r0, r4
bne _0801EE12
movs r0, #1
b _0801EE14
_0801EE12:
movs r0, #0
_0801EE14:
pop {r4, pc}
.align 2, 0
-28
View File
@@ -1,28 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.text
.syntax unified
push {r4, lr}
adds r4, r0, #0
bl sub_0804A720
ldrb r0, [r4, #0xa]
cmp r0, #2
beq _0801EBDE
bl Random
movs r1, #3
ands r0, r1
_0801EBDE:
strb r0, [r4, #0x14]
movs r0, #0x12
strb r0, [r4, #0x1c]
adds r0, r4, #0
bl sub_0801ECFC
ldrb r1, [r4, #0x14]
adds r0, r4, #0
bl InitializeAnimation
pop {r4, pc}
.syntax divided
+1 -1
View File
@@ -1233,7 +1233,7 @@ _08035B18:
movs r2, #0x18
rsbs r2, r2, #0
movs r1, #0xc
bl sub_080A2CFC
bl CreateSpeechBubbleExclamationMark
_08035B2C:
pop {pc}
.align 2, 0
+1 -1
View File
@@ -229,7 +229,7 @@ sub_0802409C: @ 0x0802409C
adds r0, r4, #0
bl InitializeAnimation
adds r0, r4, #0
bl sub_080A29BC
bl CreateDust
pop {r4, pc}
thumb_func_start sub_080240B8
+1 -1
View File
@@ -297,7 +297,7 @@ sub_08063C74: @ 0x08063C74
movs r2, #0x18
rsbs r2, r2, #0
movs r1, #8
bl sub_080A2CFC
bl CreateSpeechBubbleExclamationMark
_08063C8C:
pop {pc}
.align 2, 0
+1 -1
View File
@@ -84,7 +84,7 @@ sub_080A2420: @ 0x080A2420
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_080A29BC
bl CreateDust
_080A243A:
pop {r4, pc}
+1 -1
View File
@@ -933,7 +933,7 @@ sub_08033E1C: @ 0x08033E1C
rsbs r2, r2, #0
adds r0, r4, #0
movs r1, #0xa
bl sub_080A2CFC
bl CreateSpeechBubbleExclamationMark
pop {r4, pc}
.align 2, 0
_08033EA4: .4byte 0xFFF00000
+4 -4
View File
@@ -233,7 +233,7 @@ sub_080651F8: @ 0x080651F8
rsbs r2, r2, #0
adds r0, r4, #0
movs r1, #8
bl sub_080A2CFC
bl CreateSpeechBubbleExclamationMark
movs r0, #1
bl sub_08078A90
_0806522A:
@@ -281,7 +281,7 @@ _08065264:
rsbs r2, r2, #0
adds r0, r4, #0
movs r1, #8
bl sub_080A2CFC
bl CreateSpeechBubbleExclamationMark
b _0806528A
_0806527E:
movs r0, #0
@@ -612,7 +612,7 @@ sub_080654DC: @ 0x080654DC
movs r2, #0x18
rsbs r2, r2, #0
movs r1, #8
bl sub_080A2D0C
bl CreateSpeechBubbleQuestionMark
pop {pc}
.align 2, 0
@@ -622,7 +622,7 @@ sub_080654EC: @ 0x080654EC
movs r2, #0x18
rsbs r2, r2, #0
movs r1, #8
bl sub_080A2CFC
bl CreateSpeechBubbleExclamationMark
pop {pc}
.align 2, 0
+1 -1
View File
@@ -282,7 +282,7 @@ sub_08064C9C: @ 0x08064C9C
cmp r0, #0
bne _08064CB8
adds r0, r2, #0
bl sub_080A29BC
bl CreateDust
_08064CB8:
pop {pc}
.align 2, 0
-56
View File
@@ -1,56 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0801D66C
sub_0801D66C: @ 0x0801D66C
push {r4, lr}
adds r3, r0, #0
adds r4, r2, #0
adds r2, r3, #0
orrs r2, r1
orrs r2, r4
movs r0, #3
ands r2, r0
cmp r2, #0
beq _0801D686
cmp r2, #2
beq _0801D698
b _0801D6B0
_0801D686:
ldr r2, _0801D694 @ =0x040000D4
str r3, [r2]
str r1, [r2, #4]
lsrs r0, r4, #2
movs r1, #0x84
lsls r1, r1, #0x18
b _0801D6A4
.align 2, 0
_0801D694: .4byte 0x040000D4
_0801D698:
ldr r2, _0801D6AC @ =0x040000D4
str r3, [r2]
str r1, [r2, #4]
lsrs r0, r4, #1
movs r1, #0x80
lsls r1, r1, #0x18
_0801D6A4:
orrs r0, r1
str r0, [r2, #8]
ldr r0, [r2, #8]
b _0801D6BE
.align 2, 0
_0801D6AC: .4byte 0x040000D4
_0801D6B0:
ldrb r0, [r3]
strb r0, [r1]
adds r3, #1
adds r1, #1
subs r4, #1
cmp r4, #0
bne _0801D6B0
_0801D6BE:
pop {r4, pc}
+1 -1
View File
@@ -30,7 +30,7 @@ sub_08052418: @ 0x08052418
adds r0, r4, #0
mov r1, sp
movs r2, #0x18
bl sub_0801D66C
bl _DmaCopy
lsls r2, r6, #1
adds r2, r2, r6
lsls r2, r2, #2
+1 -1
View File
@@ -54,7 +54,7 @@ _0807CA66:
bne _0807CA78
ldr r0, _0807CA80 @ =gUnk_0811E470
movs r2, #5
bl sub_0801D66C
bl _DmaCopy
_0807CA78:
movs r0, #1
pop {pc}
-6042
View File
File diff suppressed because it is too large Load Diff
+6035
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -92,7 +92,7 @@ extern void sub_0805ED14(u32*);
extern void sub_080A7C18(u32, u32, u32);
extern void sub_08068BEC(Entity*, u32);
extern void sub_0804AA30(Entity*, void (*const funcs[])(Entity*));
extern void sub_0804A9FC(Entity*, u32);
extern Entity* sub_0804A9FC(Entity*, u32);
extern void sub_0804A720(Entity*);
extern u32 sub_080AEFE0(Entity*);
extern u32 sub_08049FA0(Entity*);
@@ -186,7 +186,7 @@ extern void sub_080A4398(void);
extern void sub_0801E738(u32);
extern void sub_080A70AC(const void*);
extern void sub_080A7114(u32);
extern void sub_08001242(void);
extern void sub_08001242(Entity*);
extern u32 sub_08003FC4(Entity*, u32);
extern u32 sub_080043E8(Entity*);
extern void sub_08001290(Entity*, u32);
@@ -194,7 +194,7 @@ extern void sub_08004488(u32);
extern void sub_08004596(Entity*, u32);
extern u32 sub_0807953C(void);
extern void ResetPlayer(void);
extern void sub_080A29BC(Entity*);
extern void CreateDust(Entity*);
extern void sub_080AE068(Entity*);
extern Manager* GetEmptyManager(void);
extern void AppendEntityToList(void*, u32);
+3 -6
View File
@@ -320,15 +320,13 @@ SECTIONS {
src/ezloNag.o(.text);
asm/code_0801CEC0.o(.text);
src/dma.o(.text);
asm/sub_0801D66C.o(.text);
src/input.o(.text);
src/code_0801D714.o(.text);
src/code_0801D79C.o(.text);
asm/code_0801D79C.o(.text);
/* enemies */
src/enemy/octorok.o(.text);
asm/octorok.o(.text);
asm/chuchu.o(.text);
src/enemy/chuchu.o(.text);
src/enemy/leever.o(.text);
asm/peahat.o(.text);
asm/rollobite.o(.text);
@@ -880,9 +878,6 @@ SECTIONS {
asm/sub_080A2838.o(.text);
asm/sub_080A285C.o(.text);
src/createObject.o(.text);
src/createObjectWithParent.o(.text);
asm/createFx.o(.text);
src/code_080A29BC.o(.text);
asm/code_080A29BC.o(.text);
asm/playSFX.o(.text);
asm/code_080A3480.o(.text);
@@ -911,6 +906,8 @@ SECTIONS {
data/data_080B3740.o(.rodata);
src/trig.o(.rodata);
data/data_080C93E0.o(.rodata);
src/enemy/chuchu.o(.rodata);
data/data_080CA2B4.o(.rodata);
src/enemy.o(.rodata);
data/data_080D3D94.o(.rodata);
data/areaPropertyLists.o(.rodata);
+5 -5
View File
@@ -55,7 +55,7 @@ static void sub_08050624(u32);
static void sub_0805066C(void);
static void sub_080507FC(void);
extern void sub_0801D66C(const void* src, void* dest, u32 size);
extern void _DmaCopy(const void* src, void* dest, u32 size);
extern void sub_08056FEC(u32, struct_020227E8*);
extern void sub_0805F46C(u32, struct_080FC844*);
extern void sub_0801C4A0(u32, u32);
@@ -83,7 +83,7 @@ void sub_08050318(u32 arg0, u32 arg1) {
struct_080FC844 var0;
sub_08050384();
sub_0801D66C(&gUnk_080FC844, &var0, sizeof(gUnk_080FC844));
_DmaCopy(&gUnk_080FC844, &var0, sizeof(gUnk_080FC844));
sub_08056FEC(arg1, &gUnk_020227E8);
var0.unk10 |= gUnk_080FC85C[arg0][0] << 0xC;
sub_0805F46C(gUnk_080FC85C[arg0][1], &var0);
@@ -136,7 +136,7 @@ void sub_0805041C(u32 saveFileId) {
if (saveFileId < 3) {
((struct_02000000 *)0x2000000)->saveFileId = saveFileId;
saveFile = &gSaveFiles[saveFileId];
sub_0801D66C(saveFile, &gUnk_02002A40, sizeof(*saveFile));
_DmaCopy(saveFile, &gUnk_02002A40, sizeof(*saveFile));
}
sub_080503E4(saveFileId);
}
@@ -281,7 +281,7 @@ void sub_0805070C(void) {
for (j = 0; j < 6; j++) {
sub_0805F7DC(playerName[j], var0);
}
sub_0801D66C(var0->unk8, (void*)(OBJ_VRAM0 + 0x4000 + i * 0x200), 0x200);
_DmaCopy(var0->unk8, (void*)(OBJ_VRAM0 + 0x4000 + i * 0x200), 0x200);
}
sub_0805F300(var0);
}
@@ -307,7 +307,7 @@ void sub_08050790(void) {
sub_0805F7DC(var1, var0);
var1++;
}
sub_0801D66C(gUnk_02000D00, (void*)(BG_VRAM + i * 0x400), 0x400);
_DmaCopy(gUnk_02000D00, (void*)(BG_VRAM + i * 0x400), 0x400);
}
sub_0805F300(var0);
}
+1 -1
View File
@@ -160,7 +160,7 @@ void sub_08054524(void) {
bVar1 = 0;
}
sub_0801D66C(&gUnk_080015BC + gUnk_080FE1C6[bVar1] * 0x8, &gUnk_02034398, 0x20);
_DmaCopy(&gUnk_080015BC + gUnk_080FE1C6[bVar1] * 0x8, &gUnk_02034398, 0x20);
}
#else
NAKED
-69
View File
@@ -1,69 +0,0 @@
#include "global.h"
#include "entity.h"
#include "room.h"
void sub_080A29BC(Entity *parent)
{
CreateFx(parent, 2, 0);
}
void sub_080A29C8(s32 xOff, s32 yOff, u32 layer)
{
Entity *pEVar1;
pEVar1 = CreateObject(0xf, 2, 0);
if (pEVar1 != NULL) {
pEVar1->x.HALF.HI = gRoomControls.roomOriginX + xOff;
pEVar1->y.HALF.HI = gRoomControls.roomOriginY + yOff;
pEVar1->collisionLayer = layer;
}
}
void sub_080A29FC(Entity *parent)
{
CreateFx(parent, 0x11, 0);
}
void sub_080A2A08(Entity *parent)
{
CreateFx(parent, 0x6, 0);
}
void sub_080A2A14(Entity *parent)
{
CreateFx(parent, 0xb, 0);
}
Entity * sub_080A2A20(Entity *parent, u32 form, u32 parameter)
{
Entity *pEVar1;
pEVar1 = CreateObjectWithParent(parent, 0, form, parameter);
if (pEVar1 != NULL) {
pEVar1->actionDelay = 5;
}
return pEVar1;
}
Entity * sub_080A2A3C(Entity *parent, u32 form, u32 subtype, u32 param_4)
{
Entity *ent;
ent = CreateObjectWithParent(parent, 0, form, subtype);
if (ent != NULL) {
ent->actionDelay = 5;
ent->field_0x86 = param_4;
}
return ent;
}
Entity * sub_080A2A64(Entity *parent)
{
Entity *pEVar1;
pEVar1 = CreateFx(parent, 0x20, 0);
if (pEVar1 != NULL) {
pEVar1->spritePriority.b0 = 7;
}
return pEVar1;
}
+85 -12
View File
@@ -1,21 +1,94 @@
#include "global.h"
#include "entity.h"
#include "room.h"
extern Entity* GetEmptyEntity();
extern void AppendEntityToList(Entity*, u8);
Entity* CreateObject(u32 subtype, u32 param1, u32 param2)
Entity* CreateObject(u32 subtype, u32 form, u32 parameter) {
Entity* ent;
{
Entity* newEnt;
newEnt = GetEmptyEntity();
if (newEnt != NULL) {
(newEnt->entityType).type = 6;
(newEnt->entityType).subtype = subtype;
(newEnt->entityType).form = param1;
(newEnt->entityType).parameter = param2;
AppendEntityToList(newEnt, 6);
ent = GetEmptyEntity();
if (ent != NULL) {
ent->entityType.type = 6;
ent->entityType.subtype = subtype;
ent->entityType.form = form;
ent->entityType.parameter = parameter;
AppendEntityToList(ent, 6);
}
return newEnt;
return ent;
}
Entity* CreateObjectWithParent(Entity* parentEnt, u32 subtype, u32 form, u32 parameter) {
Entity* ent;
ent = CreateObject(subtype, form, parameter);
if (ent != NULL) {
ent->parent = parentEnt;
CopyPosition(parentEnt, ent);
}
return ent;
}
Entity* CreateFx(Entity* parentEnt, u32 form, u32 parameter) {
CreateObjectWithParent(parentEnt, 0xf, form, parameter);
}
void CreateDust(Entity* parent) {
CreateFx(parent, 2, 0);
}
void CreateDustAt(s32 xOff, s32 yOff, u32 layer) {
Entity* ent;
ent = CreateObject(0xf, 2, 0);
if (ent != NULL) {
ent->x.HALF.HI = gRoomControls.roomOriginX + xOff;
ent->y.HALF.HI = gRoomControls.roomOriginY + yOff;
ent->collisionLayer = layer;
}
}
void CreateDustSmall(Entity* parent) {
CreateFx(parent, 0x11, 0);
}
void CreateExplosionBroken(Entity* parent) {
CreateFx(parent, 0x6, 0);
}
void CreateWaterSplash(Entity* parent) {
CreateFx(parent, 0xb, 0);
}
Entity* sub_080A2A20(Entity* parent, u32 form, u32 parameter) {
Entity* ent;
ent = CreateObjectWithParent(parent, 0, form, parameter);
if (ent != NULL) {
ent->actionDelay = 5;
}
return ent;
}
Entity* sub_080A2A3C(Entity* parent, u32 form, u32 subtype, u32 param_4) {
Entity* ent;
ent = CreateObjectWithParent(parent, 0, form, subtype);
if (ent != NULL) {
ent->actionDelay = 5;
ent->field_0x86 = param_4;
}
return ent;
}
Entity* CreateWaterTrace(Entity* parent) {
Entity* ent;
ent = CreateFx(parent, 0x20, 0);
if (ent != NULL) {
ent->spritePriority.b0 = 7;
}
return ent;
}
-14
View File
@@ -1,14 +0,0 @@
#include "global.h"
#include "entity.h"
Entity* CreateObjectWithParent(Entity* parentEnt, u32 subtype, u32 param1, u32 param2) {
Entity* ent;
ent = CreateObject(subtype, param1, param2);
if (ent != NULL) {
ent->parent = parentEnt;
CopyPosition(parentEnt, ent);
}
return ent;
}
+21 -5
View File
@@ -12,13 +12,12 @@ void _DmaFill32(u32 value, u8* dest, u32 size) {
DmaFill32(3, value, dest, size);
}
void _DmaZero(u8 *src, u32 size)
{
void _DmaZero(u8* src, u32 size) {
u32 zero = 0;
switch (((u32)src | size) & 3) {
case 0:
_DmaFill32(0,src, size);
_DmaFill32(0, src, size);
break;
case 2:
_DmaFill16(0, src, size);
@@ -28,6 +27,23 @@ void _DmaZero(u8 *src, u32 size)
*src = zero;
src++;
size--;
} while (size != 0);
} while (size != 0);
}
}
}
void _DmaCopy(const u8* src, u8* dst, u32 size) {
switch (((u32)src | (u32)dst | size) & 3) {
case 0:
DmaCopy32(3, src, dst, size);
break;
case 2:
DmaCopy16(3, src, dst, size);
break;
default:
do {
*dst = *src;
src++;
dst++;
} while (--size);
}
}
+13 -31
View File
@@ -13,7 +13,6 @@ extern u32 sub_080322A4(Entity*);
void sub_080322E8(Entity*);
extern void sub_08032338(Entity*);
extern Entity* sub_08049DF4(u32);
extern void sub_0804A9FC(Entity*, u32);
extern void sub_0804AA30(Entity*, void (*const funcs[])(Entity*));
extern u32 sub_0806FCB8(Entity*, u32, u32, u32);
extern u32 GetNextFunction(Entity*);
@@ -29,7 +28,7 @@ extern void (*const gUnk_080CE58C[])(Entity*);
extern void (*const gUnk_080CE5C8[])(Entity*);
extern u8 gUnk_080CE5B0[8];
extern u8 gUnk_080CE5B8[8];
extern union SplitHWord gUnk_080CE5C0[4];
extern s8 gUnk_080CE5C0[8];
extern u16 gUnk_080CE5F0[5];
extern u8 gUnk_080CE5FA[20]; // Directions
@@ -209,15 +208,14 @@ void sub_08031C1C(Entity* this) {
}
}
#if NON_MATCHING
void sub_08031C58(Entity* this) {
u8 tmp;
Entity *a, *b;
GetNextFrame(this);
if (this->frames.b.f3) {
if (gEntCount < 0x43) {
tmp = Random();
u32 tmp = Random();
tmp &= 3;
a = CreateEnemy(0x2e, 1);
@@ -225,30 +223,30 @@ void sub_08031C58(Entity* this) {
a->parent = NULL;
a->field_0x74.HALF.LO = tmp;
sub_08031E48(this, a);
a->attachedEntity = CreateEnemy(0x2e, 1);
b = CreateEnemy(0x2e, 1);
a->attachedEntity = b;
b = a->attachedEntity;
b->entityType.parameter = 1;
b->parent = a;
b->field_0x74.HALF.LO = tmp;
sub_08031E48(this, b);
b->attachedEntity = CreateEnemy(0x2e, 1);
a = CreateEnemy(0x2e, 1);
b->attachedEntity = a;
a = b->attachedEntity;
a->entityType.parameter = 2;
a->parent = b;
a->field_0x74.HALF.LO = tmp;
sub_08031E48(this, a);
a->attachedEntity = CreateEnemy(0x2e, 1);
b = CreateEnemy(0x2e, 1);
a->attachedEntity = b;
b = a->attachedEntity;
b->entityType.parameter = 3;
b->parent = a;
b->field_0x74.HALF.LO = tmp;
sub_08031E48(this, b);
b->attachedEntity = CreateEnemy(0x2e, 1);
a = CreateEnemy(0x2e, 1);
b->attachedEntity = a;
a = b->attachedEntity;
a->entityType.parameter = 4;
a->parent = b;
a->attachedEntity = NULL;
@@ -267,12 +265,6 @@ void sub_08031C58(Entity* this) {
}
}
}
#else
NAKED
void sub_08031C58(Entity* this) {
asm(".include \"asm/non_matching/acroBandits/sub_08031C58.inc\"");
}
#endif
void sub_08031D70(Entity* this) {
GetNextFrame(this);
@@ -308,27 +300,17 @@ void sub_08031DC4(Entity* this) {
}
}
#if NON_MATCHING
u32 sub_08031E04(Entity* this) {
Entity* ent;
union SplitHWord* tmp;
int x, y;
s8* tmp;
ent = sub_08049DF4(1);
if (ent == NULL)
return 0;
tmp = &gUnk_080CE5C0[this->frames.all & 6];
x = ent->x.HALF.HI + tmp->HALF.LO;
y = ent->y.HALF.HI + tmp->HALF.HI;
return sub_0806FCB8(this, x, y, 0x50);
return sub_0806FCB8(this, ent->x.HALF.HI + tmp[0], ent->y.HALF.HI + tmp[1], 0x50);
}
#else
NAKED
u32 sub_08031E04(Entity* this) {
asm(".include \"asm/non_matching/acroBandits/sub_08031E04.inc\"");
}
#endif
void sub_08031E48(Entity* this, Entity* child) {
CopyPosition(this, child);
+764
View File
@@ -0,0 +1,764 @@
#include "enemy.h"
#include "entity.h"
#include "functions.h"
extern s32 sub_080012DC(Entity*);
extern void sub_08001318(Entity*);
extern void sub_080043A8(Entity*);
extern u32 sub_08049F1C(Entity*, Entity*, u32);
extern u32 sub_08049F64(Entity*, u32, u32);
extern void sub_0804AA1C(Entity*);
extern void sub_080AF160(Entity*);
extern Entity* gUnk_020000B0;
void sub_0801F328(Entity*);
void sub_0801F340(Entity*);
void sub_0801F360(Entity*);
void sub_0801F3AC(Entity*);
void sub_0801F730(Entity*);
void sub_0801F748(Entity*);
void sub_0801F764(Entity*);
void sub_0801FAE0(Entity*);
void sub_0801FAF8(Entity*);
void sub_0801FB14(Entity*);
void sub_0801FB34(Entity*);
void sub_0801FB68(Entity*);
u32 sub_0801FBD0(Entity*);
void sub_0801FBE4(Entity*);
extern void (*const gUnk_080012C8[])(Entity*);
extern void (*const gUnk_080CA21C[])(Entity*);
extern void (*const gUnk_080CA234[])(Entity*);
extern void (*const gUnk_080CA25C[])(Entity*);
extern void (*const gUnk_080CA288[])(Entity*);
extern const s8 gUnk_080CA2B4[];
void Chuchu(Entity* this) {
int index;
index = sub_080012DC(this);
switch (index) {
default:
gUnk_080012C8[index](this);
return;
case 0:
/* ... */
break;
case 2:
this->field_0x3a &= 0xfe;
if (index != this->field_0x80.HALF.HI) {
switch (this->entityType.form) {
case 0:
if (this->flags & 0x80) {
this->action = 6;
this->flags &= ~0x80;
this->nonPlanarMovement = 0x20;
this->damageType = 0x5c;
InitializeAnimation(this, 5);
}
break;
case 1:
/* ... */
break;
case 2:
sub_080043A8(this);
return;
}
}
break;
}
this->field_0x80.HALF.HI = index;
gUnk_080CA21C[GetNextFunction(this)](this);
if (*(char*)(*(int*)&this->field_0x68 + 10) == 0x1c) {
SetChildOffset(this, 0, 1, -0x10);
} else if (this->entityType.form == 2) {
sub_0801FB34(this);
}
}
void sub_0801EEE4(Entity* this) {
switch (this->entityType.form) {
case 0:
sub_0801F3AC(this);
gUnk_080CA234[this->action](this);
break;
case 1:
sub_0801F764(this);
gUnk_080CA25C[this->action](this);
break;
case 2:
gUnk_080CA288[this->action](this);
break;
}
}
void sub_0801EF40(Entity* this) {
u8 health;
if (this->entityType.form == 2) {
if (this->bitfield == 0x8e || this->bitfield == 0x95) {
this->flags &= ~0x80;
this->currentHealth = 0;
}
}
health = this->currentHealth;
if (health) {
if (this->bitfield == 0x94) {
sub_0801FB68(this);
sub_0804A9FC(this, 0x1c);
InitializeAnimation(this, 6);
} else if (this->field_0x80.HALF.LO != health) {
sub_0801FB68(this);
InitializeAnimation(this, 6);
}
} else {
sub_0804AA1C(this);
this->field_0x20 = 0;
InitializeAnimation(this, 9);
}
this->field_0x80.HALF.LO = this->currentHealth;
sub_0804AA30(this, gUnk_080CA21C);
}
void sub_0801EFD8(Entity* this) {
if (sub_0806F520(this) == 0 && this->field_0x43) {
sub_0804A9FC(this, 0x1c);
InitializeAnimation(this, 6);
} else {
if (this->animIndex != 8) {
sub_0801FB68(this);
InitializeAnimation(this, 8);
}
sub_08003FC4(this, 0x1800);
GetNextFrame(this);
}
}
void sub_0801F02C(Entity* this) {
if (this->animIndex == 6)
GetNextFrame(this);
sub_08001318(this);
}
void sub_0801F048(Entity* this) {
sub_08003FC4(this, 0x1800);
GetNextFrame(this);
if (this->entityType.form == 0) {
sub_0804A7D4(this);
} else if (this->entityType.form == 1) {
CreateDeathFx(this, 0xf2, 0);
} else {
CreateDeathFx(this, 0xf1, 0);
}
}
void sub_0801F084(Entity* this) {
if ((this->frames.all & 0x80) == 0)
GetNextFrame(this);
sub_08001242(this);
}
void sub_0801F0A4(Entity* this) {
sub_0804A720(this);
this->action = 1;
this->field_0x80.HALF.LO = this->currentHealth;
this->field_0x82.HALF.LO = 0;
}
void nullsub_4(Entity* this) {
(void)this;
}
void sub_0801F0C8(Entity* this) {
GetNextFrame(this);
if (this->frames.all & 0x80) {
this->action = 3;
this->actionDelay = (Random() & 3) + 0xc;
this->field_0xf = Random();
this->direction = sub_08049F84(this, 1);
this->flags |= 0x80;
this->spritePriority.b0 = 4;
this->spritePriority.b1 = 3;
InitializeAnimation(this, 2);
}
}
void sub_0801F12C(Entity* this) {
if (sub_0801FBD0(this)) {
sub_0801F328(this);
} else {
if ((this->field_0xf++ & 7) == 0) {
this->direction = sub_08049F84(this, 1);
}
sub_080AEF88(this);
GetNextFrame(this);
if (--this->actionDelay == 0) {
if (sub_08049F64(this, 1, 0x38)) {
this->action = 4;
sub_0801FBE4(this);
} else if (sub_08049F64(this, 1, 0x48)) {
this->actionDelay = (Random() & 3) + 0xc;
} else {
sub_0801F328(this);
}
}
}
}
void sub_0801F1B0(Entity* this) {
if (this->frames.all & 0x10) {
if (this->frames.all & 1) {
this->frames.all ^= 1;
this->damageType = 90;
sub_08004488(299);
}
sub_080AEFE0(this);
if (sub_08003FC4(this, 0x4000) == 0)
GetNextFrame(this);
} else {
GetNextFrame(this);
}
if (this->frames.all & 0x80) {
if (sub_0801FBD0(this)) {
sub_0801F328(this);
} else {
sub_0801F340(this);
}
}
}
void sub_0801F228(Entity* this) {
if (--this->actionDelay == 0) {
this->action = 3;
this->direction = sub_08049F84(this, 1);
}
GetNextFrame(this);
}
void sub_0801F250(Entity* this) {
GetNextFrame(this);
if (this->frames.all & 0x80)
sub_0801F360(this);
}
void sub_0801F270(Entity* this) {
if ((this->field_0xf++ & 7) == 0) {
this->direction = sub_08049F84(this, 1);
}
sub_080AF160(this);
GetNextFrame(this);
if (sub_0801FBD0(this))
return;
if (--this->actionDelay)
return;
if (this->field_0x80.HALF.HI == 0) {
this->action = 2;
InitializeAnimation(this, 4);
} else {
this->actionDelay = 8;
}
}
void sub_0801F2CC(Entity* this) {
GetNextFrame(this);
if (this->frames.all & 0x80) {
this->action = 1;
this->spriteSettings.b.draw = 0;
InitializeAnimation(this, 4);
}
}
void sub_0801F2F8(Entity* this) {
sub_08003FC4(this, 0x1800);
GetNextFrame(this);
if (this->frames.all & 0x80) {
sub_0801F340(this);
sub_0804AA1C(this);
}
}
void sub_0801F328(Entity* this) {
this->action = 6;
this->flags &= ~0x80;
InitializeAnimation(this, 5);
}
void sub_0801F340(Entity* this) {
this->action = 5;
this->actionDelay = 60;
this->nonPlanarMovement = 0x20;
this->damageType = 92;
InitializeAnimation(this, 2);
}
void sub_0801F360(Entity* this) {
this->action = 7;
this->actionDelay = (Random() & 0x38) + 0xb4;
this->field_0xf = Random();
this->direction = sub_08049F84(this, 1);
this->spritePriority.b1 = 2;
this->spritePriority.b0 = 6;
InitializeAnimation(this, 1);
}
void sub_0801F3AC(Entity* this) {
if (this->action == 9 || this->action == 0)
return;
if (sub_08049FDC(this, 1)) {
if (this->field_0x82.HALF.LO || sub_08049F64(this, 1, 0x48)) {
if (this->action == 1) {
this->action = 2;
this->spriteSettings.b.draw = 1;
this->field_0x82.HALF.LO = 1;
InitializeAnimation(this, 0);
}
} else if (this->action == 3) {
sub_0801F328(this);
}
} else if (this->action == 3) {
sub_0801F328(this);
} else if (this->action == 7) {
this->action = 8;
InitializeAnimation(this, 7);
}
}
void sub_0801F428(Entity* this) {
sub_0804A720(this);
this->action = 1;
this->actionDelay = Random();
this->field_0x80.HALF.LO = this->currentHealth;
this->field_0x82.HALF.LO = 0;
if (this->entityType.parameter == 0)
return;
this->action = 3;
this->field_0xf = 30;
this->flags |= 0x80;
this->spritePriority.b1 = 3;
this->spriteSettings.b.draw = 1;
InitializeAnimation(this, 2);
}
void sub_0801F48C(Entity* this) {
GetNextFrame(this);
}
void sub_0801F494(Entity* this) {
GetNextFrame(this);
if (this->frames.all & 0x80) {
this->action = 3;
this->field_0xf = 30;
this->direction = sub_08049F84(this, 1);
this->flags |= 0x80;
this->spritePriority.b0 = 4;
this->spritePriority.b1 = 3;
InitializeAnimation(this, 2);
}
}
void sub_0801F4EC(Entity* this) {
GetNextFrame(this);
if (--this->field_0xf == 0)
this->action = 4;
}
void sub_0801F508(Entity* this) {
if (sub_0801FBD0(this)) {
this->field_0x82.HALF.HI = 0;
sub_0801F730(this);
} else {
u8 tmp = ++this->actionDelay & 7;
if (tmp == 0 && sub_08049F64(this, 1, 0x38)) {
if (Random() & 1) {
this->action = 5;
sub_0801FBE4(this);
} else {
this->field_0x82.HALF.HI = 120;
sub_0801F730(this);
}
} else {
if (tmp == 4) {
this->direction = sub_08049F84(this, 1);
}
sub_080AEF88(this);
GetNextFrame(this);
}
}
}
void sub_0801F584(Entity* this) {
if (this->frames.all & 0x10) {
if (this->frames.all & 0x1) {
this->frames.all ^= 1;
this->damageType = 91;
sub_08004488(299);
}
sub_080AEFE0(this);
if (sub_08003FC4(this, 0x4000) == 0)
GetNextFrame(this);
} else {
GetNextFrame(this);
}
if (this->frames.all & 0x80) {
if (sub_0801FBD0(this)) {
this->field_0x82.HALF.HI = 0;
sub_0801F730(this);
} else {
this->action = 6;
this->field_0xf = 60;
this->nonPlanarMovement = 0x20;
this->damageType = 92;
InitializeAnimation(this, 2);
}
}
}
void sub_0801F61C(Entity* this) {
if (--this->field_0xf == 0)
this->action = 4;
GetNextFrame(this);
}
void sub_0801F638(Entity* this) {
GetNextFrame(this);
if (this->frames.all & 0x80) {
this->action = 8;
this->field_0xf = 30;
this->direction = sub_08049F84(this, 1);
this->spritePriority.b1 = 2;
this->spritePriority.b0 = 6;
InitializeAnimation(this, 1);
}
}
void sub_0801F688(Entity* this) {
if (this->field_0x82.HALF.HI)
this->field_0x82.HALF.HI--;
if (sub_0801FBD0(this) || this->field_0x82.HALF.HI) {
this->direction = sub_08049F84(this, 1);
sub_080AF160(this);
GetNextFrame(this);
} else {
sub_0801F748(this);
}
}
void sub_0801F6CC(Entity* this) {
GetNextFrame(this);
if (this->frames.all & 0x80) {
this->action = 1;
this->spriteSettings.b.draw = 0;
InitializeAnimation(this, 4);
}
}
void sub_0801F6F8(Entity* this) {
sub_08003FC4(this, 0x1800);
GetNextFrame(this);
if (this->frames.all & 0x80) {
this->action = 4;
this->nonPlanarMovement = 0x20;
sub_0804AA1C(this);
InitializeAnimation(this, 2);
}
}
void sub_0801F730(Entity* this) {
this->action = 7;
this->flags &= ~0x80;
InitializeAnimation(this, 5);
}
void sub_0801F748(Entity* this) {
this->action = 2;
this->spriteSettings.b.draw = 1;
InitializeAnimation(this, 4);
}
void sub_0801F764(Entity* this) {
if (this->action == 10 || this->action == 0)
return;
if (sub_08049FDC(this, 1)) {
if (this->action == 1) {
if (this->field_0x82.HALF.LO || sub_08049F64(this, 1, 0x48)) {
this->action = 2;
this->spriteSettings.b.draw = 1;
this->field_0x82.HALF.LO = 1;
InitializeAnimation(this, 0);
}
}
} else if (this->action == 4) {
sub_0801F730(this);
} else if (this->action == 8) {
this->action = 9;
InitializeAnimation(this, 7);
}
}
void sub_0801F7D8(Entity* this) {
sub_0804A720(this);
this->action = 1;
this->actionDelay = Random();
this->field_0x80.HALF.LO = this->currentHealth;
this->field_0x82.HALF.LO = 0;
}
void sub_0801F7FC(Entity* this) {
if (sub_08049FDC(this, 1) == 0)
return;
if (this->field_0x82.HALF.LO || sub_08049F64(this, 1, 0x48)) {
this->action = 2;
this->spriteSettings.b.draw = 1;
this->field_0x82.HALF.LO = 1;
InitializeAnimation(this, 0);
}
}
void sub_0801F840(Entity* this) {
GetNextFrame(this);
if (this->frames.all & 0x80) {
sub_0801FB14(this);
this->flags |= 0x80;
this->spritePriority.b0 = 4;
this->spritePriority.b1 = 3;
}
}
void sub_0801F884(Entity* this) {
GetNextFrame(this);
if (this->field_0xf) {
this->field_0xf--;
} else {
Entity* ent = sub_0804A9FC(this, 0x1b);
if (ent) {
ent->entityType.parameter = 64;
this->action = 4;
this->damageType = 165;
sub_08004488(0x193);
}
}
}
void sub_0801F8C0(Entity* this) {
if (sub_0801FBD0(this)) {
sub_0801FAE0(this);
} else if (sub_08049FDC(this, 1) == 0) {
sub_0801F730(this);
} else {
u8 tmp = ++this->actionDelay & 7;
if (tmp == 0 && sub_08049F1C(this, gUnk_020000B0, 0x38)) {
this->action = 5;
sub_0801FBE4(this);
} else {
if (tmp == 4) {
this->direction = GetFacingDirection(this, gUnk_020000B0);
}
sub_080AEF88(this);
GetNextFrame(this);
}
}
}
void sub_0801F940(Entity* this) {
if (this->frames.all & 0x10) {
if (this->frames.all & 1) {
this->frames.all ^= 1;
sub_08004488(299);
}
sub_080AEFE0(this);
if (sub_08003FC4(this, 0x4000) == 0)
GetNextFrame(this);
} else {
GetNextFrame(this);
}
if (this->frames.all & 0x80) {
if (sub_0801FBD0(this)) {
sub_0801FAE0(this);
} else {
this->action = 6;
this->field_0xf = 60;
this->nonPlanarMovement = 0x20;
InitializeAnimation(this, 2);
}
}
}
void sub_0801F9C4(Entity* this) {
if (--this->field_0xf == 0)
this->action = 4;
GetNextFrame(this);
}
void sub_0801F9E0(Entity* this) {
GetNextFrame(this);
if (this->frames.all & 0x80) {
this->action = 8;
this->field_0xf = 30;
this->direction = sub_08049F84(this, 1);
this->spritePriority.b1 = 2;
this->spritePriority.b0 = 6;
InitializeAnimation(this, 1);
}
}
void sub_0801FA30(Entity* this) {
if (sub_0801FBD0(this)) {
this->direction = sub_08049F84(this, 1);
sub_080AF160(this);
GetNextFrame(this);
} else if (sub_08049FDC(this, 1) == 0) {
this->action = 9;
InitializeAnimation(this, 7);
} else {
sub_0801FAF8(this);
}
}
void sub_0801FA78(Entity* this) {
GetNextFrame(this);
if (this->frames.all & 0x80) {
this->action = 1;
this->spriteSettings.b.draw = 0;
InitializeAnimation(this, 4);
sub_0804AA1C(this);
}
}
void sub_0801FAAC(Entity* this) {
sub_08003FC4(this, 0x1800);
GetNextFrame(this);
if (this->frames.all & 0x80) {
sub_0801FB14(this);
this->nonPlanarMovement = 0x20;
sub_0804AA1C(this);
}
}
void sub_0801FAE0(Entity* this) {
this->action = 7;
this->flags &= ~0x80;
InitializeAnimation(this, 5);
}
void sub_0801FAF8(Entity* this) {
this->action = 2;
this->spriteSettings.b.draw = 1;
InitializeAnimation(this, 4);
}
void sub_0801FB14(Entity* this) {
this->action = 3;
this->field_0xf = 30;
this->direction = sub_08049F84(this, 1);
InitializeAnimation(this, 2);
}
void sub_0801FB34(Entity* this) {
if (*(Entity**)&this->field_0x68) {
sub_0806FA90(this, *(Entity**)&this->field_0x68, gUnk_080CA2B4[this->frames.all & 0xf], 1);
(*(Entity**)&this->field_0x68)->spriteOffsetY--;
}
}
void sub_0801FB68(Entity* this) {
switch (this->entityType.form) {
case 0:
this->action = 9;
break;
case 1:
this->action = 10;
this->flags |= 0x80;
this->spriteSettings.b.draw = 1;
this->spritePriority.b1 = 3;
break;
case 2:
this->action = 10;
this->damageType = 92;
sub_0804AA1C(this);
break;
}
this->field_0x20 = 0;
}
u32 sub_0801FBD0(Entity* this) {
if (sub_080002B8(this) == 0x10) {
return 1;
} else {
return 0;
}
}
void sub_0801FBE4(Entity* this) {
this->nonPlanarMovement = 0x180;
this->field_0x20 = 0x20000;
this->direction = sub_08049F84(this, 1);
InitializeAnimation(this, 3);
}
// clang-format off
void (*const gUnk_080CA21C[])(Entity*) = {
sub_0801EEE4,
sub_0801EF40,
sub_0801F02C,
sub_0801F048,
sub_0801F084,
sub_0801EFD8,
};
void (*const gUnk_080CA234[])(Entity*) = {
sub_0801F0A4,
nullsub_4,
sub_0801F0C8,
sub_0801F12C,
sub_0801F1B0,
sub_0801F228,
sub_0801F250,
sub_0801F270,
sub_0801F2CC,
sub_0801F2F8,
};
void (*const gUnk_080CA25C[])(Entity*) = {
sub_0801F428,
sub_0801F48C,
sub_0801F494,
sub_0801F4EC,
sub_0801F508,
sub_0801F584,
sub_0801F61C,
sub_0801F638,
sub_0801F688,
sub_0801F6CC,
sub_0801F6F8,
};
void (*const gUnk_080CA288[])(Entity*) = {
sub_0801F7D8,
sub_0801F7FC,
sub_0801F840,
sub_0801F884,
sub_0801F8C0,
sub_0801F940,
sub_0801F9C4,
sub_0801F9E0,
sub_0801FA30,
sub_0801FA78,
sub_0801FAAC,
};
// clang-format on
-1
View File
@@ -14,7 +14,6 @@ extern void sub_0803CAD0(Entity *);
// sub_0803C784
extern void sub_0803CBAC(Entity *); // Also used in sub_0803C86C
extern Entity *CreateFx(Entity*, u32, u32);
extern void sub_0804A9FC(Entity *, u32);
extern void sub_0804AA30(Entity *, void (*const funcs[])(Entity *));
// sub_0803C820
-1
View File
@@ -4,7 +4,6 @@
#include "functions.h"
extern void SetChildOffset(Entity*, s32, s32, s32);
extern void sub_0804A9FC(Entity*, u32);
extern void sub_0804AA30(Entity*, void (*const func[])(Entity*));
extern void sub_0804A7D4(Entity*);
extern Entity* CreateDeathFx(Entity*, u32, u32);
-1
View File
@@ -8,7 +8,6 @@ void sub_08045374(Entity*);
extern u32 sub_0806FA04(u32, u32);
extern void sub_0804A720();
extern void sub_080452E4();
extern void sub_0804A9FC();
extern void sub_0804AA30();
extern void ReplaceMonitoredEntity(Entity*, Entity*);
extern void sub_0804A7D4(Entity*);
+139 -58
View File
@@ -1,119 +1,200 @@
#include "global.h"
#include "entity.h"
#include "functions.h"
extern void EnemyFunctionHandler();
extern void SetChildOffset();
extern void sub_0804AA30();
extern void sub_0804A9FC();
extern void sub_0804A7D4();
extern void CreateDeathFx();
extern void sub_0801ECFC();
extern u32 sub_0806F520();
extern void sub_0806F4E8();
extern void sub_0806F3E4();
extern void UpdateAnimationVariableFrames();
extern void sub_0804A720();
extern u32 Random();
extern void sub_0801ED14();
extern u32 sub_0801EDEC();
extern Entity *sub_08049DF4(u32);
extern void(*gOctorok[2]);
extern void (*gOctorokIdle[4])(Entity*);
extern void (*gUnk_080CA158[4])(Entity*);
extern void (*const gOctorok[6])(Entity*);
extern void (*const gOctorokIdle[4])(Entity*);
extern void (*const gUnk_080CA158[4])(Entity*);
extern Entity* gUnk_020000B0;
extern s8 gUnk_080CA17E[2];
extern u8 gUnk_080CA170[8];
extern u8 gUnk_080CA174[2];
extern u8 gUnk_080CA176[8];
// Main
void Octorok(Entity* ent) {
EnemyFunctionHandler(ent, gOctorok);
SetChildOffset(ent, 0, 1, -16);
void Octorok(Entity* this) {
EnemyFunctionHandler(this, gOctorok);
SetChildOffset(this, 0, 1, -16);
}
// Idle
void sub_0801EAD0(Entity* ent) {
gOctorokIdle[ent->action](ent);
void sub_0801EAD0(Entity* this) {
gOctorokIdle[this->action](this);
}
// Touch player
void sub_0801EAE8(Entity* ent) {
if (ent->field_0x43 != 0) {
sub_0804A9FC(ent, 28);
void sub_0801EAE8(Entity* this) {
if (this->field_0x43 != 0) {
sub_0804A9FC(this, 28);
}
sub_0804AA30(ent, gOctorok);
sub_0804AA30(this, gOctorok);
}
// Death
void sub_0801EB0C(Entity* ent) {
if ((ent->entityType).form == 0) {
sub_0804A7D4(ent);
void sub_0801EB0C(Entity* this) {
if ((this->entityType).form == 0) {
sub_0804A7D4(this);
} else {
CreateDeathFx(ent, 241, 0);
CreateDeathFx(this, 241, 0);
}
}
void sub_0801EB2C(Entity* ent) {
void sub_0801EB2C(Entity* this) {
s32 iVar1;
if ((ent->previousActionFlag < 3) && (iVar1 = sub_0806F520(ent), iVar1 == 0)) {
sub_0801ECFC(ent);
InitializeAnimation(ent, ent->animationState);
if ((this->previousActionFlag < 3) && (iVar1 = sub_0806F520(this), iVar1 == 0)) {
sub_0801ECFC(this);
InitializeAnimation(this, this->animationState);
} else {
gUnk_080CA158[ent->previousActionFlag](ent);
gUnk_080CA158[this->previousActionFlag](this);
}
}
void sub_0801EB68(Entity* ent) {
ent->previousActionFlag = 1;
ent->field_0x1d = 60;
void sub_0801EB68(Entity* this) {
this->previousActionFlag = 1;
this->field_0x1d = 60;
}
void sub_0801EB74(Entity* ent) {
sub_0806F4E8(ent);
void sub_0801EB74(Entity* this) {
sub_0806F4E8(this);
}
void sub_0801EB7C(Entity* ent) {
sub_0806F3E4(ent);
void sub_0801EB7C(Entity* this) {
sub_0806F3E4(this);
}
void sub_0801EB84(Entity* ent) {
ent->flags = ent->flags & 127;
UpdateAnimationVariableFrames(ent, 2);
void sub_0801EB84(Entity* this) {
this->flags &= 0x7f;
UpdateAnimationVariableFrames(this, 2);
}
void nullsub_3() {
}
void sub_0801EB9C(Entity* ent) {
if ((ent->flags & 128) != 0) {
ent->flags = ent->flags | 128;
ent->field_0x3a = ent->field_0x3a & 251;
void sub_0801EB9C(Entity* this) {
if (this->flags & 0x80) {
this->flags |= 0x80;
this->field_0x3a &= 0xfb;
} else {
ent->currentHealth = 0;
this->currentHealth = 0;
}
}
// Init
#ifdef NON_MATCHING
void sub_0801EBC8(Entity* ent) {
sub_0804A720();
ent->animationState = (ent->entityType).form == 2 ? (ent->entityType).form : Random() & 3;
ent->filler[0] = 18;
sub_0801ECFC(ent);
InitializeAnimation(ent, ent->animationState);
void sub_0801EBC8(Entity* this) {
sub_0804A720(this);
if (this->entityType.form == 2) {
this->animationState = this->entityType.form;
} else {
this->animationState = Random() & 3;
}
this->field_0x1c = 18;
sub_0801ECFC(this);
InitializeAnimation(this, this->animationState);
}
#else
NAKED
void sub_0801EBC8(Entity* ent) {
asm(".include \"asm/octorok/sub_0801EBC8.inc\"");
}
#endif
void sub_0801EBF4(Entity* ent) {
void sub_0801EBF4(Entity* this) {
u32 uVar2;
if (--ent->actionDelay == 0) {
ent->action = 2;
if (--this->actionDelay == 0) {
this->action = 2;
uVar2 = Random();
ent->actionDelay = gUnk_080CA170[uVar2 & 3];
sub_0801ED14(ent);
this->actionDelay = gUnk_080CA170[uVar2 & 3];
sub_0801ED14(this);
}
GetNextFrame(ent);
GetNextFrame(this);
}
void sub_0801EC2C(Entity* this) {
sub_080AEF88(this);
GetNextFrame(this);
if (--this->actionDelay == 0) {
if (sub_0801EDEC(this) && gUnk_080CA174[this->entityType.form] <= (Random() & 3)) {
this->action = 3;
InitializeAnimation(this, this->animationState + 4);
} else {
sub_0801ECFC(this);
}
}
}
void sub_0801EC80(Entity* this) {
GetNextFrame(this);
if (this->frames.all & 1) {
Entity* ent = sub_0804A98C(this, 1, 0);
if (ent) {
s8* off;
ent->direction = this->direction;
off = &gUnk_080CA176[this->direction / 4];
ent->x.HALF.HI += off[0];
ent->y.HALF.HI += off[1];
ent->height.HALF.HI = -3;
this->frames.all &= 0xfe;
sub_08004488(0x18d);
}
}
if (this->frames.all & 0x80)
sub_0801ECFC(this);
}
void sub_0801ECFC(Entity* this) {
this->action = 1;
this->actionDelay = (Random() & 0x38) + 0x18;
}
void sub_0801ED14(Entity* this) {
if (this->entityType.form != 2) {
if (sub_08049FA0(this)) {
if (this->entityType.form == 1 && (Random() & 3) == 0 && sub_08049FDC(this, 1)) {
this->direction = (GetFacingDirection(this, gUnk_020000B0) + 4) & 0x18;
} else {
this->direction = Random() & 0x18;
}
} else if ((Random() & 3)) {
this->direction = (sub_08049EE4(this) + gUnk_080CA17E[Random() & 1]) & 0x18;
} else {
this->direction = Random() & 0x18;
}
} else {
if (sub_08049FDC(this, 1) == 0) {
if (sub_08049FA0(this)) {
this->direction = Random() & 0x18;
} else if (Random() & 3) {
this->direction = (sub_08049EE4(this) + gUnk_080CA17E[Random() & 1]) & 0x18;
} else {
this->direction = (GetFacingDirection(this, gUnk_020000B0) + 4) & 0x18;
}
} else {
this->direction = (GetFacingDirection(this, gUnk_020000B0) + 4) & 0x18;
}
}
this->animationState = this->direction >> 3;
InitializeAnimation(this, this->animationState);
}
u32 sub_0801EDEC(Entity *this) {
Entity* ent = sub_08049DF4(1);
if (ent == NULL)
return 0;
if (((GetFacingDirection(this, ent) + 4) & 0x18) != this->direction)
return 0;
return 1;
}
+1 -1
View File
@@ -262,7 +262,7 @@ void sub_08029770(Entity* this) {
InitializeAnimation(this, 2);
this->attachedEntity->spriteSettings.b.draw = TRUE;
InitializeAnimation(this->attachedEntity, 6);
sub_080A29BC(this);
CreateDust(this);
}
}
-1
View File
@@ -16,7 +16,6 @@ typedef struct {
void sub_08044FF8(Entity*);
void sub_08045178(Entity*, Entity*, int, int);
extern void sub_0804A9FC(Entity*, u32);
extern void sub_0804A720(Entity*);
extern u32 sub_0806FA04(u32, u32);
extern u32 sub_08049FA0(Entity*);
+1 -1
View File
@@ -56,7 +56,7 @@ void nullsub_16(Entity* this) {
}
void sub_0802F1F0(Entity* this) {
sub_08001242();
sub_08001242(this);
if (this->height.HALF.HI != 0) {
sub_08003FC4(this, this->field_0x80.HWORD);
}
+1 -1
View File
@@ -56,7 +56,7 @@ void sub_08037F58(Entity* this) {
}
void sub_08037F84(Entity* this) {
sub_08001242();
sub_08001242(this);
if (this->height.HALF.HI != 0) {
sub_08003FC4(this, 0x3000);
}
+1 -1
View File
@@ -37,7 +37,7 @@ void VaatiBall(Entity* this) {
this->flags &= 0x7f;
this->currentHealth = -1;
parent->field_0x80.HALF.LO--;
sub_080A29BC(this);
CreateDust(this);
PlaySFX(0x1c3);
}
}
+1 -1
View File
@@ -109,7 +109,7 @@ void sub_080336DC(Entity* this) {
this->y.HALF.HI = this->field_0x82.HWORD;
break;
case 0x18:
sub_080A29BC(this);
CreateDust(this);
break;
case 0xc:
this->spriteSettings.b.draw = TRUE;
+3 -3
View File
@@ -193,16 +193,16 @@ void sub_0805E92C(u32 param_1) {
}
extern Entity gUnk_020369F0;
extern void sub_0801D66C(const void* src, void* dest, size_t size); // dma copy
extern void _DmaCopy(const void* src, void* dest, size_t size); // dma copy
extern void sub_0805E98C(void);
void sub_0805E958(void) {
sub_0801D66C(&gEntityLists, &gUnk_020369F0, 0x48);
_DmaCopy(&gEntityLists, &gUnk_020369F0, 0x48);
sub_0805E98C();
}
void sub_0805E974(void) {
sub_0801D66C(&gUnk_020369F0, &gEntityLists, 0x48);
_DmaCopy(&gUnk_020369F0, &gEntityLists, 0x48);
}
void sub_0805E98C(void) {
+3 -3
View File
@@ -8,7 +8,7 @@ extern void sub_0804FF84(u32);
extern u16 gPaletteBuffer[];
extern void VBlankInterruptWait(void);
extern void DisableInterruptsAndDMA(void);
extern void sub_0801D66C(void*, u8*, int);
extern void _DmaCopy(void*, u8*, int);
extern void sub_08016B34(void);
static void sub_08055F70(void);
@@ -99,12 +99,12 @@ static void sub_08055F70(void) {
_DmaZero(gUnk_02000030, size);
size = (u32)gUnk_080B2CD8 - (u32)sub_080B197C;
if (size != 0) {
sub_0801D66C(sub_080B197C, gUnk_030056F0, size);
_DmaCopy(sub_080B197C, gUnk_030056F0, size);
}
size = (u32)gUnk_080B2CD8_2 - (u32)gUnk_080B2CD8_3;
if (size != 0) {
sub_0801D66C(gUnk_080B2CD8_3, gUnk_02038560, size);
_DmaCopy(gUnk_080B2CD8_3, gUnk_02038560, size);
}
sub_0801DA90(0);
+32 -35
View File
@@ -12,13 +12,14 @@ extern void sub_0806F118(Entity*);
extern void sub_0807DDAC(Entity*, u32);
extern void sub_0807DDE4(Entity*);
extern void sub_080600F0(Entity*);
extern s32 sub_0806EDD8(Entity*, u32, u32);
extern u32 sub_0806F5B0(u32);
extern u32 sub_0801E99C(Entity*);
extern void sub_08078784(Entity*, u32);
extern void sub_0807000C(Entity*);
extern void sub_08060158(Entity*);
extern u32 CheckKinstoneFused(u32);
extern Entity* FindEntityInListBySubtype(u32, u32, u32);
extern void sub_080A29BC(Entity* parent);
extern void DeleteEntity(Entity*);
extern u32 Random(void);
extern void ModBombs(s32);
@@ -114,40 +115,36 @@ void sub_0806014C(Entity* this) {
sub_08060158(this);
}
#if 0
void sub_08060158(Entity *this)
{
u8 bVar1;
u8 bVar2;
s32 iVar4;
u32 temp;
if (this->actionDelay != 0) {
this->actionDelay--;
}
else {
this->actionDelay = 2;
iVar4 = sub_0806EDD8(this, 0x20, 0x20);
if (iVar4 < 0) {
this->animationState = this->field_0x68.HALF.HI;
iVar4 = this->field_0x68.HALF.HI << 2;
}
temp = (this->animationState >> 1) * 0x20 + (iVar4 >> 1) * 2;
bVar1 = gUnk_08109C98[temp];
bVar2 = gUnk_08109C98[temp + 1];
if ((bVar2 & 0x80) != 0) {
this->animationState = sub_0806F5B0(iVar4);
}
this->frames.all = bVar1;
this->frameIndex = bVar2 & 0x7f;
this->frameSpriteSettings = 1;
this->animIndex = 0;
this->frameDuration = 0xf0;
}
}
#endif
NAKED
void sub_08060158(Entity* this) {
asm(".include \"asm/non_matching/forestMinish/sub_08060158.inc\"");
int index;
u8* idx3;
u8 tmp1, tmp2;
if (this->actionDelay) {
this->actionDelay--;
} else {
this->actionDelay = 2;
index = sub_0806EDD8(this, 0x20, 0x20);
if (index < 0) {
int state = this->field_0x68.HALF.HI;
this->animationState = state;
index = state * 4;
}
idx3 = gUnk_08109C98 + (this->animationState / 2) * 0x20 + (index >> 1) * 2;
tmp1 = idx3[0];
tmp2 = idx3[1];
if (tmp2 & 0x80) {
this->animationState = sub_0806F5B0(index);
}
tmp2 &= 0x7f;
this->frames.all = tmp1;
this->frameIndex = tmp2;
this->frameSpriteSettings = 1;
this->animIndex = 0;
this->frameDuration = 0xf0;
}
}
void sub_080601D4(Entity* this) {
@@ -238,7 +235,7 @@ void sub_08060318(void) {
for (i = 2; i >= 0; i--) {
ent = FindEntityInListBySubtype(8, 2, 2);
if (ent != NULL) {
sub_080A29BC(ent);
CreateDust(ent);
DeleteEntity(ent);
}
}
+4 -12
View File
@@ -29,18 +29,16 @@ extern Dialog gUnk_08110390[];
extern u16 gUnk_081103D0[];
extern u32 gUnk_081103E0;
#if NON_MATCHING // reg-alloc
void Smith(Entity* this) {
u32 iVar2;
u32 iVar4;
u32 index;
if ((this->flags & 2) != 0) {
if (this->interactType == 2) {
this->action = 4;
this->interactType = 0;
iVar4 = (this->animIndex == 0xc) ? 8 : 0;
iVar2 = sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity));
InitAnimationForceUpdate(this, iVar2 + iVar4);
index = (this->animIndex == 0xc) ? 8 : 0;
index += sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity));
InitAnimationForceUpdate(this, index);
sub_0806F118(this);
}
gUnk_0811036C[this->action](this);
@@ -59,12 +57,6 @@ void Smith(Entity* this) {
PlaySFX(gUnk_08110380[(Random() & 7)]);
}
}
#else
NAKED
void Smith(Entity* this) {
asm(".include \"asm/non_matching/smith/smith.inc\"");
}
#endif
void Smith_Head(Entity* this) {
u8 bVar1;
+41 -3
View File
@@ -12,8 +12,7 @@ extern void (*const gUnk_0810FBFC[])(Entity*);
void TingleSiblings(Entity* this) {
if ((this->flags & 2) != 0) {
sub_08064DE4(this);
}
else {
} else {
sub_08064D78(this);
}
}
@@ -40,4 +39,43 @@ void sub_08064DCC(Entity* this) {
sub_08064EE8(this);
InitAnimationForceUpdate(this, 2);
this->action = 1;
}
}
/*
void sub_08064DE4(Entity* this) {
switch (this->action) {
case 0:
this->action = 1;
this->spriteSettings = this->spriteSettings & 0xfc | 1;
this->animationState = '\x04';
sub_0807DD50(this);
break;
case 1:
if (this->interactType == 2) {
this->action = 2;
this->interactType = 0;
GetFacingDirection(this, &gPlayerEntity);
InitAnimationForceUpdate(this, sub_0806F5A4());
sub_0806F118(this);
} else {
sub_0807DD94(this, 0);
}
break;
case 2:
if (UpdateFuseInteraction(this)) {
this->action = 1;
sub_0801E99C(this);
}
break;
}
{
u8 bVar1 = this->frames.all;
u8 bVar5 = bVar1 & 0xf;
this->frames.all = bVar5 ^ bVar1;
if (bVar1 & 0xf) {
Entity* fx = CreateFx(this, bVar5 == 3 ? 0x2a : 0x29, 0);
if (fx && bVar5 == 2) {
fx->spriteSettings.b.flipX = 1;
}
}
}
}*/
+1 -1
View File
@@ -32,7 +32,7 @@ void ObjectA(Entity *this) {
} else if (this->interactType != 0) {
SetTileType(*(u16*)&this->field_0x70.HALF.LO, COORD_TO_TILE(this), this->collisionLayer);
SetFlag(this->field_0x86);
sub_080A29BC(this);
CreateDust(this);
sub_080526F8(-1);
DeleteThisEntity();
}
+26 -34
View File
@@ -101,55 +101,47 @@ void sub_08085308(Entity* this) {
}
}
#if 0
void sub_08085394(Entity *this)
{
void sub_08085394(Entity* this) {
u32 uVar1;
u16 *layerData;
u32 iVar3;
u32 uVar4;
u8 *pbVar5;
u16* layerData;
u32 tile;
s8 off;
uVar1 = gUnk_081205E0[this->animationState / 2];
iVar3 = this->animationState / 2;
layerData = *(u16 **)&this->field_0x70;
uVar4 = COORD_TO_TILE(this);
this->field_0x74.HWORD = layerData[gUnk_080B4488[iVar3]];
pbVar5 = &this->collisionLayer;
SetTile(uVar1, uVar4 - iVar3, *pbVar5);
this->field_0x76 = layerData[0];
SetTile(uVar1,uVar4, *pbVar5);
*(u16 *)&this->field_0x78 = layerData[iVar3];
SetTile(uVar1,uVar4 + iVar3, *pbVar5);
}
#endif
off = gUnk_080B4488[this->animationState / 2][0];
layerData = (u16*)this->field_0x70.WORD;
tile = COORD_TO_TILE(this);
NAKED
void sub_08085394(Entity* this) {
asm(".include \"asm/non_matching/railtrack/sub_08085394.inc\"");
this->field_0x74.HWORD = *(layerData - off);
SetTile(uVar1, tile - off, this->collisionLayer);
this->field_0x76.HWORD = layerData[0x0];
SetTile(uVar1, tile - 0x0, this->collisionLayer);
this->field_0x78.HWORD = layerData[off];
SetTile(uVar1, tile + off, this->collisionLayer);
}
void sub_0808543C(Entity *this)
{
s8 *cVar1;
u32 uVar2;
s8 temp;
void sub_0808543C(Entity* this) {
s8* cVar1;
u32 uVar2;
s8 temp;
temp = gUnk_080B4488[this->animationState / 2][0];
uVar2 = COORD_TO_TILE(this);
SetTile(this->field_0x74.HWORD, uVar2 - temp, this->collisionLayer);
SetTile(this->field_0x76.HWORD, uVar2, this->collisionLayer);
SetTile(this->field_0x78.HWORD, uVar2 + temp, this->collisionLayer);
temp = gUnk_080B4488[this->animationState / 2][0];
uVar2 = COORD_TO_TILE(this);
SetTile(this->field_0x74.HWORD, uVar2 - temp, this->collisionLayer);
SetTile(this->field_0x76.HWORD, uVar2, this->collisionLayer);
SetTile(this->field_0x78.HWORD, uVar2 + temp, this->collisionLayer);
}
u32 sub_080854A8(Entity *this) {
u32 sub_080854A8(Entity* this) {
u16 var0;
u16* var1;
s8* var2;
var0 = gUnk_081205E0[this->animationState / 2];
var2 = gUnk_080B4488[this->animationState / 2];
var1 = (u16 *)this->field_0x70.WORD;
var1 = (u16*)this->field_0x70.WORD;
if (var0 != *(var1 - var2[0])) {
return TRUE;
}
+2 -2
View File
@@ -6,7 +6,7 @@
extern void sub_0809E96C(Entity*);
extern u32 sub_0800419C(Entity*, Entity*, u32, u32);
extern void sub_080A2B80(Entity*);
extern void CreateSparkle(Entity*);
extern u32 sub_0809E9A0(void);
extern void sub_08078A90(u32);
extern void sub_0809E918(Entity*);
@@ -37,7 +37,7 @@ void sub_0809E86C(Entity* this) {
if (sub_0800419C(this, &gPlayerEntity, 0x30, 0x30)) {
if (CheckGlobalFlag(EZERO_1ST)) {
if (((gScreenTransition & 3) == 0)) {
sub_080A2B80(this);
CreateSparkle(this);
}
}
}