mirror of
https://github.com/zeldaret/tmc
synced 2026-05-25 15:25:26 -04:00
Merge pull request #77 from HookedBehemoth:non-matchings
Decompile more stuff and match some other stuff
This commit is contained in:
+1
-1
@@ -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
@@ -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
@@ -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
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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:
|
||||
|
||||
@@ -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}
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
@@ -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
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+3
-3
@@ -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);
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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
@@ -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);
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user