mirror of
https://github.com/zeldaret/tmc
synced 2026-06-01 01:39:50 -04:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
+8
-8
@@ -140,13 +140,13 @@ _08000224: .4byte gUnk_08000228
|
||||
gUnk_08000228::
|
||||
.4byte gUnk_02025EB4
|
||||
gUnk_0800022C::
|
||||
.4byte gUnk_0202AEB4
|
||||
.4byte gMetatileTypesBottom
|
||||
.4byte gUnk_02025EB4
|
||||
.4byte gUnk_0202AEB4
|
||||
.4byte gMetatileTypesBottom
|
||||
.4byte gUnk_0200B654
|
||||
.4byte gUnk_02010654
|
||||
.4byte gMetatileTypesTop
|
||||
.4byte gUnk_02025EB4
|
||||
.4byte gUnk_0202AEB4
|
||||
.4byte gMetatileTypesBottom
|
||||
gUnk_08000248::
|
||||
.4byte gUnk_02027EB4
|
||||
.4byte gUnk_02027EB4
|
||||
@@ -154,13 +154,13 @@ gUnk_08000248::
|
||||
.4byte gUnk_02027EB4
|
||||
gUnk_08000258::
|
||||
.4byte gUnk_02028EB4
|
||||
.4byte gUnk_0202AEB4
|
||||
.4byte gMetatileTypesBottom
|
||||
.4byte gUnk_02028EB4
|
||||
.4byte gUnk_0202AEB4
|
||||
.4byte gMetatileTypesBottom
|
||||
.4byte gUnk_0200E654
|
||||
.4byte gUnk_02010654
|
||||
.4byte gMetatileTypesTop
|
||||
.4byte gUnk_02028EB4
|
||||
.4byte gUnk_0202AEB4
|
||||
.4byte gMetatileTypesBottom
|
||||
gUnk_08000278::
|
||||
.4byte gUnk_02030EB4
|
||||
.4byte gUnk_02030EB4
|
||||
|
||||
+8
-8
@@ -491,7 +491,7 @@ _0801DC26:
|
||||
ldr r3, [sp]
|
||||
cmp r0, #0
|
||||
bne _0801DCA6
|
||||
ldr r0, _0801DC88 @ =gUnk_0811E214
|
||||
ldr r0, _0801DC88 @ =gAreaRoomHeaders
|
||||
ldrb r2, [r6]
|
||||
lsls r2, r2, #2
|
||||
adds r2, r2, r0
|
||||
@@ -526,7 +526,7 @@ _0801DC26:
|
||||
b _0801DC9E
|
||||
.align 2, 0
|
||||
_0801DC84: .4byte 0x000007FF
|
||||
_0801DC88: .4byte gUnk_0811E214
|
||||
_0801DC88: .4byte gAreaRoomHeaders
|
||||
_0801DC8C:
|
||||
ldrh r0, [r2]
|
||||
ands r0, r7
|
||||
@@ -562,7 +562,7 @@ _0801DCAE:
|
||||
bl CheckGlobalFlag
|
||||
cmp r0, #0
|
||||
bne _0801DD16
|
||||
ldr r0, _0801DD50 @ =gUnk_0811E214
|
||||
ldr r0, _0801DD50 @ =gAreaRoomHeaders
|
||||
ldrb r2, [r6]
|
||||
lsls r2, r2, #2
|
||||
adds r2, r2, r0
|
||||
@@ -632,12 +632,12 @@ _0801DD42:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801DD4C: .4byte gArea
|
||||
_0801DD50: .4byte gUnk_0811E214
|
||||
_0801DD50: .4byte gAreaRoomHeaders
|
||||
_0801DD54: .4byte gScreenTransition
|
||||
|
||||
thumb_func_start sub_0801DD58
|
||||
sub_0801DD58: @ 0x0801DD58
|
||||
ldr r2, _0801DD7C @ =gUnk_0811E214
|
||||
ldr r2, _0801DD7C @ =gAreaRoomHeaders
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r2
|
||||
lsls r2, r1, #2
|
||||
@@ -656,7 +656,7 @@ sub_0801DD58: @ 0x0801DD58
|
||||
strh r0, [r1, #6]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0801DD7C: .4byte gUnk_0811E214
|
||||
_0801DD7C: .4byte gAreaRoomHeaders
|
||||
_0801DD80: .4byte gArea
|
||||
_0801DD84: .4byte 0x0000085C
|
||||
|
||||
@@ -770,7 +770,7 @@ _0801DE46:
|
||||
ldr r0, _0801DF04 @ =0x84000100
|
||||
str r0, [r2, #8]
|
||||
ldr r0, [r2, #8]
|
||||
ldr r0, _0801DF08 @ =gUnk_0811E214
|
||||
ldr r0, _0801DF08 @ =gAreaRoomHeaders
|
||||
ldrb r2, [r4]
|
||||
lsls r2, r2, #2
|
||||
adds r2, r2, r0
|
||||
@@ -850,7 +850,7 @@ _0801DEF8: .4byte 0x040000D4
|
||||
_0801DEFC: .4byte gUnk_08324AE4
|
||||
_0801DF00: .4byte gUnk_02019EE0
|
||||
_0801DF04: .4byte 0x84000100
|
||||
_0801DF08: .4byte gUnk_0811E214
|
||||
_0801DF08: .4byte gAreaRoomHeaders
|
||||
_0801DF0C: .4byte 0x000007FF
|
||||
|
||||
thumb_func_start sub_0801DF10
|
||||
|
||||
+2
-2
@@ -1161,7 +1161,7 @@ sub_0804A4E4: @ 0x0804A4E4
|
||||
beq _0804A550
|
||||
adds r0, r5, #0
|
||||
adds r1, r6, #0
|
||||
bl sub_08058800
|
||||
bl ReplaceMonitoredEntity
|
||||
_0804A550:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
@@ -1828,4 +1828,4 @@ sub_0804AA1C: @ 0x0804AA1C
|
||||
str r0, [r2, #0x68]
|
||||
_0804AA2C:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
.align 2, 0
|
||||
|
||||
+18
-18
@@ -742,7 +742,7 @@ _08052CA0: .4byte gPlayerEntity
|
||||
thumb_func_start sub_08052CA4
|
||||
sub_08052CA4: @ 0x08052CA4
|
||||
push {r4, lr}
|
||||
ldr r4, _08052CC8 @ =gUnk_0811E214
|
||||
ldr r4, _08052CC8 @ =gAreaRoomHeaders
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r4
|
||||
lsls r4, r1, #2
|
||||
@@ -759,13 +759,13 @@ sub_08052CA4: @ 0x08052CA4
|
||||
strh r0, [r4, #0x22]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08052CC8: .4byte gUnk_0811E214
|
||||
_08052CC8: .4byte gAreaRoomHeaders
|
||||
_08052CCC: .4byte gScreenTransition
|
||||
|
||||
thumb_func_start sub_08052CD0
|
||||
sub_08052CD0: @ 0x08052CD0
|
||||
push {r4, lr}
|
||||
ldr r4, _08052CF4 @ =gUnk_0811E214
|
||||
ldr r4, _08052CF4 @ =gAreaRoomHeaders
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r4
|
||||
lsls r4, r1, #2
|
||||
@@ -782,7 +782,7 @@ sub_08052CD0: @ 0x08052CD0
|
||||
strh r0, [r4, #0x1e]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08052CF4: .4byte gUnk_0811E214
|
||||
_08052CF4: .4byte gAreaRoomHeaders
|
||||
_08052CF8: .4byte gScreenTransition
|
||||
|
||||
thumb_func_start sub_08052CFC
|
||||
@@ -871,7 +871,7 @@ _08052DA4: .4byte 0x0000088C
|
||||
thumb_func_start sub_08052DA8
|
||||
sub_08052DA8: @ 0x08052DA8
|
||||
push {r4, r5, r6, r7, lr}
|
||||
ldr r1, _08052DF8 @ =gUnk_0811E214
|
||||
ldr r1, _08052DF8 @ =gAreaRoomHeaders
|
||||
ldr r0, _08052DFC @ =gRoomControls
|
||||
ldrb r0, [r0, #4]
|
||||
lsls r0, r0, #2
|
||||
@@ -911,7 +911,7 @@ _08052DE8:
|
||||
str r0, [r1]
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08052DF8: .4byte gUnk_0811E214
|
||||
_08052DF8: .4byte gAreaRoomHeaders
|
||||
_08052DFC: .4byte gRoomControls
|
||||
_08052E00: .4byte gUnk_02033ACC
|
||||
_08052E04: .4byte 0x0000FFFF
|
||||
@@ -930,7 +930,7 @@ sub_08052E10: @ 0x08052E10
|
||||
strh r0, [r5]
|
||||
ldrh r0, [r1, #6]
|
||||
strh r0, [r5, #2]
|
||||
ldr r4, _08052E74 @ =gUnk_0810246C
|
||||
ldr r4, _08052E74 @ =gAreaTilesets
|
||||
lsls r2, r2, #2
|
||||
adds r4, r2, r4
|
||||
ldrh r0, [r1, #8]
|
||||
@@ -946,7 +946,7 @@ sub_08052E10: @ 0x08052E10
|
||||
adds r0, r3, r0
|
||||
ldr r0, [r0]
|
||||
str r0, [r5, #0xc]
|
||||
ldr r0, _08052E7C @ =gUnk_0810309C
|
||||
ldr r0, _08052E7C @ =gAreaMetatiles
|
||||
adds r0, r2, r0
|
||||
ldr r0, [r0]
|
||||
str r0, [r5, #0x10]
|
||||
@@ -971,9 +971,9 @@ sub_08052E10: @ 0x08052E10
|
||||
_08052E70:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08052E74: .4byte gUnk_0810246C
|
||||
_08052E74: .4byte gAreaTilesets
|
||||
_08052E78: .4byte gUnk_08107988
|
||||
_08052E7C: .4byte gUnk_0810309C
|
||||
_08052E7C: .4byte gAreaMetatiles
|
||||
_08052E80: .4byte gUnk_080B755C
|
||||
_08052E84: .4byte gUnk_0813A7F0
|
||||
_08052E88: .4byte gUnk_080D50FC
|
||||
@@ -1180,7 +1180,7 @@ sub_08052FF4: @ 0x08052FF4
|
||||
movs r1, #0x20
|
||||
bl _DmaZero
|
||||
str r5, [r5, #0x20]
|
||||
ldr r0, _08053078 @ =gUnk_0811E214
|
||||
ldr r0, _08053078 @ =gAreaRoomHeaders
|
||||
lsls r6, r6, #2
|
||||
adds r0, r6, r0
|
||||
lsls r2, r4, #2
|
||||
@@ -1196,7 +1196,7 @@ sub_08052FF4: @ 0x08052FF4
|
||||
strh r1, [r5]
|
||||
ldrh r1, [r0, #6]
|
||||
strh r1, [r5, #2]
|
||||
ldr r1, _0805307C @ =gUnk_0810246C
|
||||
ldr r1, _0805307C @ =gAreaTilesets
|
||||
adds r1, r6, r1
|
||||
ldrh r0, [r0, #8]
|
||||
ldr r1, [r1]
|
||||
@@ -1210,7 +1210,7 @@ sub_08052FF4: @ 0x08052FF4
|
||||
adds r2, r2, r0
|
||||
ldr r0, [r2]
|
||||
str r0, [r5, #0xc]
|
||||
ldr r0, _08053084 @ =gUnk_0810309C
|
||||
ldr r0, _08053084 @ =gAreaMetatiles
|
||||
adds r0, r6, r0
|
||||
ldr r0, [r0]
|
||||
str r0, [r5, #0x10]
|
||||
@@ -1223,10 +1223,10 @@ sub_08052FF4: @ 0x08052FF4
|
||||
_0805306C: .4byte gRoomControls
|
||||
_08053070: .4byte gScreen
|
||||
_08053074: .4byte gUnk_020342CC
|
||||
_08053078: .4byte gUnk_0811E214
|
||||
_0805307C: .4byte gUnk_0810246C
|
||||
_08053078: .4byte gAreaRoomHeaders
|
||||
_0805307C: .4byte gAreaTilesets
|
||||
_08053080: .4byte gUnk_08107988
|
||||
_08053084: .4byte gUnk_0810309C
|
||||
_08053084: .4byte gAreaMetatiles
|
||||
_08053088: .4byte gUnk_080B755C
|
||||
|
||||
thumb_func_start sub_0805308C
|
||||
@@ -1533,7 +1533,7 @@ _080532E0:
|
||||
|
||||
thumb_func_start sub_080532E4
|
||||
sub_080532E4: @ 0x080532E4
|
||||
ldr r0, _08053318 @ =gUnk_0811E214
|
||||
ldr r0, _08053318 @ =gAreaRoomHeaders
|
||||
movs r1, #0xb0
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
@@ -1560,7 +1560,7 @@ sub_080532E4: @ 0x080532E4
|
||||
strh r0, [r1, #0x1e]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08053318: .4byte gUnk_0811E214
|
||||
_08053318: .4byte gAreaRoomHeaders
|
||||
_0805331C: .4byte gScreenTransition
|
||||
|
||||
thumb_func_start sub_08053320
|
||||
|
||||
+9
-9
@@ -286,9 +286,9 @@ sub_0807BBE4: @ 0x0807BBE4
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
ldr r0, _0807BC28 @ =gUnk_0202AEB4
|
||||
ldr r0, _0807BC28 @ =gMetatileTypesBottom
|
||||
mov sl, r0
|
||||
ldr r0, _0807BC2C @ =gUnk_02010654
|
||||
ldr r0, _0807BC2C @ =gMetatileTypesTop
|
||||
mov sb, r0
|
||||
ldr r5, _0807BC30 @ =0xFFFFB000
|
||||
add r5, sl
|
||||
@@ -316,8 +316,8 @@ _0807BC14:
|
||||
add r0, ip
|
||||
b _0807BC4C
|
||||
.align 2, 0
|
||||
_0807BC28: .4byte gUnk_0202AEB4
|
||||
_0807BC2C: .4byte gUnk_02010654
|
||||
_0807BC28: .4byte gMetatileTypesBottom
|
||||
_0807BC2C: .4byte gMetatileTypesTop
|
||||
_0807BC30: .4byte 0xFFFFB000
|
||||
_0807BC34: .4byte 0xFFFFD000
|
||||
_0807BC38: .4byte 0x00003FFF
|
||||
@@ -815,7 +815,7 @@ sub_0807BFD0: @ 0x0807BFD0
|
||||
bl sub_0801B170
|
||||
bl sub_0807BFA8
|
||||
ldr r7, _0807C0B8 @ =0x0000FFFF
|
||||
ldr r6, _0807C0BC @ =gUnk_0202AEB4
|
||||
ldr r6, _0807C0BC @ =gMetatileTypesBottom
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #5
|
||||
mov r8, r0
|
||||
@@ -825,7 +825,7 @@ sub_0807BFD0: @ 0x0807BFD0
|
||||
bl _DmaFill16
|
||||
movs r5, #0
|
||||
strh r5, [r6]
|
||||
ldr r4, _0807C0C0 @ =gUnk_02010654
|
||||
ldr r4, _0807C0C0 @ =gMetatileTypesTop
|
||||
adds r0, r7, #0
|
||||
adds r1, r4, #0
|
||||
mov r2, r8
|
||||
@@ -894,7 +894,7 @@ _0807C078:
|
||||
ble _0807C066
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #5
|
||||
ldr r5, _0807C0C0 @ =gUnk_02010654
|
||||
ldr r5, _0807C0C0 @ =gMetatileTypesTop
|
||||
adds r6, r5, r2
|
||||
ldr r4, _0807C0B8 @ =0x0000FFFF
|
||||
adds r0, r4, #0
|
||||
@@ -922,8 +922,8 @@ _0807C0A8:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0807C0B8: .4byte 0x0000FFFF
|
||||
_0807C0BC: .4byte gUnk_0202AEB4
|
||||
_0807C0C0: .4byte gUnk_02010654
|
||||
_0807C0BC: .4byte gMetatileTypesBottom
|
||||
_0807C0C0: .4byte gMetatileTypesTop
|
||||
_0807C0C4: .4byte gRoomControls
|
||||
_0807C0C8: .4byte gArea
|
||||
_0807C0CC: .4byte 0x0000085C
|
||||
|
||||
+4
-4
@@ -2632,7 +2632,7 @@ _080A6A26:
|
||||
bne _080A6A30
|
||||
movs r2, #9
|
||||
_080A6A30:
|
||||
ldr r1, _080A6A40 @ =gUnk_0811E214
|
||||
ldr r1, _080A6A40 @ =gAreaRoomHeaders
|
||||
lsls r0, r2, #2
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
@@ -2640,7 +2640,7 @@ _080A6A30:
|
||||
subs r6, r6, r0
|
||||
b _080A6A48
|
||||
.align 2, 0
|
||||
_080A6A40: .4byte gUnk_0811E214
|
||||
_080A6A40: .4byte gAreaRoomHeaders
|
||||
_080A6A44:
|
||||
ldr r0, _080A6A78 @ =0xFFFFFEF8
|
||||
adds r7, r7, r0
|
||||
@@ -3233,7 +3233,7 @@ sub_080A6EE0: @ 0x080A6EE0
|
||||
adds r1, r1, r0
|
||||
ldrh r3, [r1, #6]
|
||||
ldrh r4, [r1, #8]
|
||||
ldr r0, _080A6F38 @ =gUnk_0811E214
|
||||
ldr r0, _080A6F38 @ =gAreaRoomHeaders
|
||||
ldrb r2, [r1, #0xb]
|
||||
lsls r2, r2, #2
|
||||
adds r2, r2, r0
|
||||
@@ -3267,7 +3267,7 @@ sub_080A6EE0: @ 0x080A6EE0
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080A6F34: .4byte gUnk_08128024
|
||||
_080A6F38: .4byte gUnk_0811E214
|
||||
_080A6F38: .4byte gAreaRoomHeaders
|
||||
_080A6F3C: .4byte gUnk_03001010
|
||||
|
||||
thumb_func_start sub_080A6F40
|
||||
|
||||
@@ -1,283 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start FireballGuy
|
||||
FireballGuy: @ 0x08045394
|
||||
push {lr}
|
||||
ldr r1, _080453A0 @ =gUnk_080D17E8
|
||||
bl EnemyFunctionHandler
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080453A0: .4byte gUnk_080D17E8
|
||||
|
||||
thumb_func_start sub_080453A4
|
||||
sub_080453A4: @ 0x080453A4
|
||||
push {lr}
|
||||
ldr r2, _080453B8 @ =gUnk_080D1800
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080453B8: .4byte gUnk_080D1800
|
||||
|
||||
thumb_func_start sub_080453BC
|
||||
sub_080453BC: @ 0x080453BC
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
adds r0, #0x45
|
||||
ldrb r1, [r0]
|
||||
cmp r1, #0
|
||||
beq _080453D6
|
||||
adds r0, #0x3f
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r1
|
||||
beq _080453D6
|
||||
movs r0, #2
|
||||
strb r0, [r2, #0xc]
|
||||
b _080453DE
|
||||
_080453D6:
|
||||
ldr r1, _080453E0 @ =gUnk_080D17E8
|
||||
adds r0, r2, #0
|
||||
bl sub_0804AA30
|
||||
_080453DE:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080453E0: .4byte gUnk_080D17E8
|
||||
|
||||
thumb_func_start nullsub_172
|
||||
nullsub_172: @ 0x080453E4
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080453E8
|
||||
sub_080453E8: @ 0x080453E8
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #0
|
||||
movs r2, #1
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
strb r1, [r4, #0xe]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #5
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
movs r0, #0x80
|
||||
strh r0, [r4, #0x24]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x45
|
||||
ldrb r1, [r0]
|
||||
adds r0, #0x3f
|
||||
strb r1, [r0]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x3c
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x10
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
bl sub_0804A720
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
adds r0, r4, #0
|
||||
bl sub_08045524
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08045430
|
||||
sub_08045430: @ 0x08045430
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_080AEFE0
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #5
|
||||
adds r0, r4, #0
|
||||
bl sub_08003FC4
|
||||
cmp r0, #0
|
||||
bne _08045452
|
||||
adds r0, r4, #0
|
||||
bl sub_08045524
|
||||
_08045452:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08045454
|
||||
sub_08045454: @ 0x08045454
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
sub sp, #0x10
|
||||
mov r8, r0
|
||||
ldr r1, _08045518 @ =gUnk_080D180C
|
||||
ldrb r0, [r0, #0xa]
|
||||
adds r0, r0, r1
|
||||
ldrb r7, [r0]
|
||||
movs r0, #0x48
|
||||
subs r0, r0, r7
|
||||
ldr r1, _0804551C @ =gEntCount
|
||||
ldrb r1, [r1]
|
||||
cmp r0, r1
|
||||
ble _0804550C
|
||||
cmp r7, #0
|
||||
beq _0804548E
|
||||
mov r4, sp
|
||||
adds r5, r7, #0
|
||||
_0804547C:
|
||||
mov r0, r8
|
||||
ldrb r1, [r0, #0xa]
|
||||
movs r0, #0x59
|
||||
bl CreateEnemy
|
||||
stm r4!, {r0}
|
||||
subs r5, #1
|
||||
cmp r5, #0
|
||||
bne _0804547C
|
||||
_0804548E:
|
||||
ldr r2, _08045520 @ =gUnk_080D1810
|
||||
mov sb, r2
|
||||
movs r5, #0
|
||||
cmp r5, r7
|
||||
bge _080454EE
|
||||
_08045498:
|
||||
lsls r0, r5, #2
|
||||
add r0, sp
|
||||
ldr r6, [r0]
|
||||
adds r4, r5, #1
|
||||
adds r0, r4, #0
|
||||
adds r1, r7, #0
|
||||
bl __modsi3
|
||||
lsls r0, r0, #2
|
||||
add r0, sp
|
||||
ldr r0, [r0]
|
||||
str r0, [r6, #0x54]
|
||||
adds r0, r5, r7
|
||||
subs r0, #1
|
||||
adds r1, r7, #0
|
||||
bl __modsi3
|
||||
lsls r0, r0, #2
|
||||
add r0, sp
|
||||
ldr r0, [r0]
|
||||
str r0, [r6, #0x50]
|
||||
movs r1, #0
|
||||
movs r0, #1
|
||||
strb r0, [r6, #0xb]
|
||||
strh r1, [r6, #0x36]
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x3d
|
||||
movs r0, #0xf0
|
||||
strb r0, [r1]
|
||||
mov r0, sb
|
||||
movs r2, #0
|
||||
ldrsb r2, [r0, r2]
|
||||
movs r3, #1
|
||||
ldrsb r3, [r0, r3]
|
||||
mov r0, r8
|
||||
adds r1, r6, #0
|
||||
bl sub_08045178
|
||||
movs r2, #2
|
||||
add sb, r2
|
||||
adds r5, r4, #0
|
||||
cmp r5, r7
|
||||
blt _08045498
|
||||
_080454EE:
|
||||
mov r0, r8
|
||||
movs r1, #2
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
adds r6, r0, #0
|
||||
cmp r6, #0
|
||||
beq _08045506
|
||||
mov r0, r8
|
||||
adds r1, r6, #0
|
||||
bl CopyPosition
|
||||
_08045506:
|
||||
mov r0, r8
|
||||
bl DeleteEntity
|
||||
_0804550C:
|
||||
add sp, #0x10
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08045518: .4byte gUnk_080D180C
|
||||
_0804551C: .4byte gEntCount
|
||||
_08045520: .4byte gUnk_080D1810
|
||||
|
||||
thumb_func_start sub_08045524
|
||||
sub_08045524: @ 0x08045524
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
movs r0, #0xe0
|
||||
lsls r0, r0, #9
|
||||
str r0, [r5, #0x20]
|
||||
adds r0, r5, #0
|
||||
movs r1, #1
|
||||
movs r2, #8
|
||||
bl sub_0804A024
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0xff
|
||||
beq _08045556
|
||||
bl Random
|
||||
movs r1, #3
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
bne _08045556
|
||||
bl Random
|
||||
movs r1, #3
|
||||
ands r0, r1
|
||||
strb r0, [r5, #0xe]
|
||||
b _08045596
|
||||
_08045556:
|
||||
ldrb r0, [r5, #0xe]
|
||||
cmp r0, #0
|
||||
beq _08045562
|
||||
subs r0, #1
|
||||
strb r0, [r5, #0xe]
|
||||
b _080455A8
|
||||
_08045562:
|
||||
bl Random
|
||||
movs r1, #3
|
||||
ands r0, r1
|
||||
strb r0, [r5, #0xe]
|
||||
adds r0, r5, #0
|
||||
bl sub_08049FA0
|
||||
cmp r0, #0
|
||||
bne _0804559E
|
||||
bl Random
|
||||
movs r1, #3
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
beq _0804559E
|
||||
adds r0, r5, #0
|
||||
bl sub_08049EE4
|
||||
adds r4, r0, #0
|
||||
bl Random
|
||||
movs r1, #8
|
||||
ands r0, r1
|
||||
adds r0, #0xfc
|
||||
adds r4, r4, r0
|
||||
_08045596:
|
||||
movs r0, #0x18
|
||||
ands r4, r0
|
||||
strb r4, [r5, #0x15]
|
||||
b _080455A8
|
||||
_0804559E:
|
||||
bl Random
|
||||
movs r1, #0x18
|
||||
ands r0, r1
|
||||
strb r0, [r5, #0x15]
|
||||
_080455A8:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
+3
-3
@@ -505,7 +505,7 @@ sub_08046518: @ 0x08046518
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #8
|
||||
ldr r1, _080465AC @ =gUnk_02010654
|
||||
ldr r1, _080465AC @ =gMetatileTypesTop
|
||||
ldr r2, _080465B0 @ =0xFFFFBCB0
|
||||
adds r0, r1, r2
|
||||
ldr r3, _080465B4 @ =0xFFFFECB0
|
||||
@@ -541,7 +541,7 @@ _08046560:
|
||||
strh r0, [r4]
|
||||
ldrh r0, [r3]
|
||||
lsls r0, r0, #1
|
||||
ldr r7, _080465AC @ =gUnk_02010654
|
||||
ldr r7, _080465AC @ =gMetatileTypesTop
|
||||
adds r0, r0, r7
|
||||
ldrh r1, [r0]
|
||||
ldr r0, [sp, #4]
|
||||
@@ -575,7 +575,7 @@ _08046560:
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080465AC: .4byte gUnk_02010654
|
||||
_080465AC: .4byte gMetatileTypesTop
|
||||
_080465B0: .4byte 0xFFFFBCB0
|
||||
_080465B4: .4byte 0xFFFFECB0
|
||||
_080465B8: .4byte 0x00006658
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
.include "asm/macros/asm.inc"
|
||||
.include "asm/macros/function.inc"
|
||||
.include "asm/macros/m4a.inc"
|
||||
.include "asm/macros/map.inc"
|
||||
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
.ifndef GUARD_ASM_MACROS_MAP_INC
|
||||
.set GUARD_ASM_MACROS_MAP_INC, 1
|
||||
|
||||
.macro room_header map_x, map_y, pixel_width, pixel_height, tileset_id
|
||||
.2byte (\map_x) << 4
|
||||
.2byte (\map_y) << 4
|
||||
.2byte \pixel_width
|
||||
.2byte \pixel_height
|
||||
.2byte \tileset_id
|
||||
.endm
|
||||
|
||||
.macro tileset_tiles src_offset, dest, size, compressed, terminator=0
|
||||
.4byte (!(\terminator) << 0x1F) | (\src_offset)
|
||||
.4byte \dest
|
||||
.4byte (\compressed << 0x1F) | (\size)
|
||||
.endm
|
||||
|
||||
.macro tileset_palette_set id, terminator=0
|
||||
.4byte (!(\terminator) << 0x1F) | (\id)
|
||||
.4byte 0x0
|
||||
.4byte 0x0
|
||||
.endm
|
||||
|
||||
.endif @ GUARD_ASM_MACROS_MAP_INC
|
||||
-221
@@ -1,221 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start MiniSlime
|
||||
MiniSlime: @ 0x08045200
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r1, _0804521C @ =gUnk_080D17C0
|
||||
bl EnemyFunctionHandler
|
||||
movs r3, #8
|
||||
rsbs r3, r3, #0
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
movs r2, #1
|
||||
bl SetChildOffset
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0804521C: .4byte gUnk_080D17C0
|
||||
|
||||
thumb_func_start sub_08045220
|
||||
sub_08045220: @ 0x08045220
|
||||
push {lr}
|
||||
ldr r2, _08045234 @ =gUnk_080D17D8
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08045234: .4byte gUnk_080D17D8
|
||||
|
||||
thumb_func_start sub_08045238
|
||||
sub_08045238: @ 0x08045238
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x43
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0804524C
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x1c
|
||||
bl sub_0804A9FC
|
||||
_0804524C:
|
||||
ldr r1, _08045258 @ =gUnk_080D17C0
|
||||
adds r0, r4, #0
|
||||
bl sub_0804AA30
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08045258: .4byte gUnk_080D17C0
|
||||
|
||||
thumb_func_start sub_0804525C
|
||||
sub_0804525C: @ 0x0804525C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r3, [r4, #0x50]
|
||||
cmp r4, r3
|
||||
beq _08045298
|
||||
cmp r3, #0
|
||||
beq _08045298
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x6c
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r1, [r4, #0x50]
|
||||
ldr r0, [r4, #0x54]
|
||||
str r0, [r1, #0x54]
|
||||
ldr r1, [r4, #0x54]
|
||||
ldr r0, [r4, #0x50]
|
||||
str r0, [r1, #0x50]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x6d
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08045298
|
||||
adds r0, r4, #0
|
||||
adds r1, r3, #0
|
||||
bl sub_08058800
|
||||
_08045298:
|
||||
adds r0, r4, #0
|
||||
bl sub_0804A7D4
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start nullsub_22
|
||||
nullsub_22: @ 0x080452A0
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080452A4
|
||||
sub_080452A4: @ 0x080452A4
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
movs r2, #1
|
||||
movs r5, #1
|
||||
strb r5, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r4, #0x24]
|
||||
adds r0, r4, #0
|
||||
bl sub_0804A720
|
||||
adds r0, r4, #0
|
||||
movs r1, #6
|
||||
bl InitializeAnimation
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
beq _080452DC
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
strb r5, [r4, #0xe]
|
||||
b _080452E2
|
||||
_080452DC:
|
||||
adds r0, r4, #0
|
||||
bl sub_080452E4
|
||||
_080452E2:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_080452E4
|
||||
sub_080452E4: @ 0x080452E4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
bl Random
|
||||
movs r1, #0x1f
|
||||
ands r0, r1
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080452FC
|
||||
sub_080452FC: @ 0x080452FC
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
bl GetNextFrame
|
||||
ldrb r0, [r5, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r5, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08045370
|
||||
movs r4, #3
|
||||
strb r4, [r5, #0xc]
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0xe]
|
||||
movs r1, #0x24
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r0, #0
|
||||
ble _08045330
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #5
|
||||
movs r2, #0x24
|
||||
ldrsh r1, [r5, r2]
|
||||
bl sub_0806FA04
|
||||
lsrs r0, r0, #8
|
||||
strb r0, [r5, #0xe]
|
||||
_08045330:
|
||||
adds r0, r5, #0
|
||||
bl sub_08049FA0
|
||||
cmp r0, #0
|
||||
bne _08045360
|
||||
bl Random
|
||||
ands r0, r4
|
||||
cmp r0, #0
|
||||
beq _08045360
|
||||
adds r0, r5, #0
|
||||
bl sub_08049EE4
|
||||
adds r4, r0, #0
|
||||
bl Random
|
||||
movs r1, #8
|
||||
ands r0, r1
|
||||
adds r0, #0xfc
|
||||
adds r4, r4, r0
|
||||
movs r0, #0x18
|
||||
ands r4, r0
|
||||
strb r4, [r5, #0x15]
|
||||
b _08045370
|
||||
_08045360:
|
||||
bl Random
|
||||
movs r1, #0x18
|
||||
ands r0, r1
|
||||
strb r0, [r5, #0x15]
|
||||
adds r0, r5, #0
|
||||
bl sub_08045374
|
||||
_08045370:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08045374
|
||||
sub_08045374: @ 0x08045374
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_080AEF88
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08045392
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
_08045392:
|
||||
pop {r4, pc}
|
||||
@@ -1,109 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
sub sp, #0x10
|
||||
mov r8, r0
|
||||
ldr r1, _0804516C @ =gUnk_080D16D0
|
||||
ldrb r0, [r0, #0xa]
|
||||
adds r0, r0, r1
|
||||
ldrb r7, [r0]
|
||||
movs r0, #0x48
|
||||
subs r0, r0, r7
|
||||
ldr r1, _08045170 @ =gEntCount
|
||||
ldrb r1, [r1]
|
||||
cmp r0, r1
|
||||
ble _08045160
|
||||
cmp r7, #0
|
||||
beq _080450E2
|
||||
mov r4, sp
|
||||
adds r5, r7, #0
|
||||
_080450D0:
|
||||
mov r0, r8
|
||||
ldrb r1, [r0, #0xa]
|
||||
movs r0, #0x57
|
||||
bl CreateEnemy
|
||||
stm r4!, {r0}
|
||||
subs r5, #1
|
||||
cmp r5, #0
|
||||
bne _080450D0
|
||||
_080450E2:
|
||||
ldr r2, _08045174 @ =gUnk_080D16D4
|
||||
mov sb, r2
|
||||
movs r5, #0
|
||||
cmp r5, r7
|
||||
bge _08045142
|
||||
_080450EC:
|
||||
lsls r0, r5, #2
|
||||
add r0, sp
|
||||
ldr r6, [r0]
|
||||
adds r4, r5, #1
|
||||
adds r0, r4, #0
|
||||
adds r1, r7, #0
|
||||
bl __modsi3
|
||||
lsls r0, r0, #2
|
||||
add r0, sp
|
||||
ldr r0, [r0]
|
||||
str r0, [r6, #0x54]
|
||||
adds r0, r5, r7
|
||||
subs r0, #1
|
||||
adds r1, r7, #0
|
||||
bl __modsi3
|
||||
lsls r0, r0, #2
|
||||
add r0, sp
|
||||
ldr r0, [r0]
|
||||
str r0, [r6, #0x50]
|
||||
movs r1, #0
|
||||
movs r0, #1
|
||||
strb r0, [r6, #0xb]
|
||||
strh r1, [r6, #0x36]
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x3d
|
||||
movs r0, #0xf0
|
||||
strb r0, [r1]
|
||||
mov r0, sb
|
||||
movs r2, #0
|
||||
ldrsb r2, [r0, r2]
|
||||
movs r3, #1
|
||||
ldrsb r3, [r0, r3]
|
||||
mov r0, r8
|
||||
adds r1, r6, #0
|
||||
bl sub_08045178
|
||||
movs r2, #2
|
||||
add sb, r2
|
||||
adds r5, r4, #0
|
||||
cmp r5, r7
|
||||
blt _080450EC
|
||||
_08045142:
|
||||
mov r0, r8
|
||||
movs r1, #2
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
adds r6, r0, #0
|
||||
cmp r6, #0
|
||||
beq _0804515A
|
||||
mov r0, r8
|
||||
adds r1, r6, #0
|
||||
bl CopyPosition
|
||||
_0804515A:
|
||||
mov r0, r8
|
||||
bl DeleteEntity
|
||||
_08045160:
|
||||
add sp, #0x10
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0804516C: .4byte gUnk_080D16D0
|
||||
_08045170: .4byte gEntCount
|
||||
_08045174: .4byte gUnk_080D16D4
|
||||
.syntax divided
|
||||
-146
@@ -6,152 +6,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_0806B41C
|
||||
sub_0806B41C: @ 0x0806B41C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #1
|
||||
beq _0806B470
|
||||
cmp r0, #1
|
||||
bgt _0806B430
|
||||
cmp r0, #0
|
||||
beq _0806B436
|
||||
b _0806B4EC
|
||||
_0806B430:
|
||||
cmp r0, #2
|
||||
beq _0806B4DE
|
||||
b _0806B4EC
|
||||
_0806B436:
|
||||
ldr r1, _0806B46C @ =gUnk_08112E1C
|
||||
adds r0, r4, #0
|
||||
bl LoadExtraSpriteData
|
||||
cmp r0, #0
|
||||
beq _0806B4EC
|
||||
movs r2, #1
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #5
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #2
|
||||
bne _0806B462
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x25
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
_0806B462:
|
||||
adds r0, r4, #0
|
||||
bl sub_0807DD50
|
||||
b _0806B4EC
|
||||
.align 2, 0
|
||||
_0806B46C: .4byte gUnk_08112E1C
|
||||
_0806B470:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x39
|
||||
movs r1, #0
|
||||
ldrsb r1, [r2, r1]
|
||||
cmp r1, #2
|
||||
bne _0806B4D4
|
||||
movs r0, #0
|
||||
strb r1, [r4, #0xc]
|
||||
strb r0, [r2]
|
||||
ldr r1, _0806B4C8 @ =gPlayerEntity
|
||||
adds r0, r4, #0
|
||||
bl GetFacingDirection
|
||||
bl sub_0806F5A4
|
||||
adds r1, r0, #0
|
||||
adds r1, #4
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
adds r0, r4, #0
|
||||
bl sub_08002632
|
||||
ldr r1, _0806B4CC @ =gUnk_08001A7C
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r3, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x68
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x21
|
||||
bne _0806B4B2
|
||||
adds r3, #6
|
||||
_0806B4B2:
|
||||
ldrh r1, [r3]
|
||||
ldrh r2, [r3, #2]
|
||||
ldrh r3, [r3, #4]
|
||||
adds r0, r4, #0
|
||||
bl sub_0801DFB4
|
||||
ldr r0, _0806B4D0 @ =gPlayerState
|
||||
adds r0, #0x8b
|
||||
movs r1, #3
|
||||
strb r1, [r0]
|
||||
b _0806B4EC
|
||||
.align 2, 0
|
||||
_0806B4C8: .4byte gPlayerEntity
|
||||
_0806B4CC: .4byte gUnk_08001A7C
|
||||
_0806B4D0: .4byte gPlayerState
|
||||
_0806B4D4:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl sub_0807DD94
|
||||
b _0806B4EC
|
||||
_0806B4DE:
|
||||
adds r0, r4, #0
|
||||
bl UpdateFuseInteraction
|
||||
cmp r0, #0
|
||||
beq _0806B4EC
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
_0806B4EC:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0806B4F0
|
||||
sub_0806B4F0: @ 0x0806B4F0
|
||||
push {lr}
|
||||
ldrb r1, [r0, #0xb]
|
||||
lsls r1, r1, #3
|
||||
ldr r2, _0806B500 @ =gUnk_08112E2C
|
||||
adds r1, r1, r2
|
||||
bl ShowNPCDialogue
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0806B500: .4byte gUnk_08112E2C
|
||||
|
||||
thumb_func_start sub_0806B504
|
||||
sub_0806B504: @ 0x0806B504
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
movs r4, #1
|
||||
movs r0, #0x21
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
beq _0806B518
|
||||
movs r4, #3
|
||||
b _0806B52A
|
||||
_0806B518:
|
||||
movs r0, #0x86
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _0806B52A
|
||||
movs r4, #0
|
||||
movs r0, #0x86
|
||||
bl SetLocalFlag
|
||||
_0806B52A:
|
||||
ldr r0, _0806B53C @ =gUnk_08112E54
|
||||
lsls r1, r4, #1
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r1]
|
||||
adds r1, r5, #0
|
||||
bl TextboxNoOverlap
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0806B53C: .4byte gUnk_08112E54
|
||||
|
||||
thumb_func_start sub_0806B540
|
||||
sub_0806B540: @ 0x0806B540
|
||||
push {r4, lr}
|
||||
|
||||
-81
@@ -1,81 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_08045178
|
||||
sub_08045178: @ 0x08045178
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r1, #0
|
||||
adds r5, r2, #0
|
||||
adds r6, r3, #0
|
||||
cmp r4, #0
|
||||
beq _080451C6
|
||||
bl sub_0804A4E4
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
adds r2, r6, #0
|
||||
bl sub_080002CC
|
||||
cmp r0, #0
|
||||
bne _080451C6
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
adds r2, r0, r5
|
||||
cmp r2, #0
|
||||
blt _080451AE
|
||||
ldr r0, _080451C8 @ =gRoomControls
|
||||
ldrh r1, [r0, #6]
|
||||
ldrh r0, [r0, #0x1e]
|
||||
adds r1, r1, r0
|
||||
cmp r2, r1
|
||||
bge _080451AE
|
||||
strh r2, [r4, #0x2e]
|
||||
_080451AE:
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r4, r1]
|
||||
adds r2, r0, r6
|
||||
cmp r2, #0
|
||||
blt _080451C6
|
||||
ldr r0, _080451C8 @ =gRoomControls
|
||||
ldrh r1, [r0, #8]
|
||||
ldrh r0, [r0, #0x20]
|
||||
adds r1, r1, r0
|
||||
cmp r2, r1
|
||||
bge _080451C6
|
||||
strh r2, [r4, #0x32]
|
||||
_080451C6:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080451C8: .4byte gRoomControls
|
||||
|
||||
thumb_func_start sub_080451CC
|
||||
sub_080451CC: @ 0x080451CC
|
||||
ldrb r3, [r0, #0x10]
|
||||
movs r2, #0xfe
|
||||
ands r2, r3
|
||||
strb r2, [r1, #0x10]
|
||||
ldr r2, [r0, #0x2c]
|
||||
str r2, [r1, #0x2c]
|
||||
ldr r2, [r0, #0x30]
|
||||
str r2, [r1, #0x30]
|
||||
ldr r2, [r0, #0x34]
|
||||
str r2, [r1, #0x34]
|
||||
adds r0, #0x68
|
||||
adds r1, #0x68
|
||||
ldrb r2, [r0, #4]
|
||||
strb r2, [r1, #4]
|
||||
ldrb r2, [r0, #5]
|
||||
strb r2, [r1, #5]
|
||||
ldrb r2, [r0, #6]
|
||||
strb r2, [r1, #6]
|
||||
ldrb r2, [r0, #7]
|
||||
strb r2, [r1, #7]
|
||||
ldrh r2, [r0, #8]
|
||||
strh r2, [r1, #8]
|
||||
ldrh r0, [r0, #0xa]
|
||||
strh r0, [r1, #0xa]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
@@ -0,0 +1,36 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_080451CC
|
||||
sub_080451CC: @ 0x080451CC
|
||||
ldrb r3, [r0, #0x10]
|
||||
movs r2, #0xfe
|
||||
ands r2, r3
|
||||
strb r2, [r1, #0x10]
|
||||
ldr r2, [r0, #0x2c]
|
||||
str r2, [r1, #0x2c]
|
||||
ldr r2, [r0, #0x30]
|
||||
str r2, [r1, #0x30]
|
||||
ldr r2, [r0, #0x34]
|
||||
str r2, [r1, #0x34]
|
||||
adds r0, #0x68
|
||||
adds r1, #0x68
|
||||
ldrb r2, [r0, #4]
|
||||
strb r2, [r1, #4]
|
||||
ldrb r2, [r0, #5]
|
||||
strb r2, [r1, #5]
|
||||
ldrb r2, [r0, #6]
|
||||
strb r2, [r1, #6]
|
||||
ldrb r2, [r0, #7]
|
||||
strb r2, [r1, #7]
|
||||
ldrh r2, [r0, #8]
|
||||
strh r2, [r1, #8]
|
||||
ldrh r0, [r0, #0xa]
|
||||
strh r0, [r1, #0xa]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
@@ -1,740 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_0806AC3C
|
||||
sub_0806AC3C: @ 0x0806AC3C
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
adds r0, #0x58
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #3
|
||||
bhi _0806ACBA
|
||||
ldr r4, _0806AC6C @ =gPlayerEntity
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
movs r2, #0x18
|
||||
movs r3, #0x18
|
||||
bl sub_080041A0
|
||||
cmp r0, #0
|
||||
beq _0806AC70
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl GetFacingDirection
|
||||
adds r2, r0, #0
|
||||
movs r0, #0x1e
|
||||
ands r2, r0
|
||||
b _0806AC74
|
||||
.align 2, 0
|
||||
_0806AC6C: .4byte gPlayerEntity
|
||||
_0806AC70:
|
||||
ldrb r0, [r5, #0x14]
|
||||
lsls r2, r0, #2
|
||||
_0806AC74:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x69
|
||||
ldrb r3, [r0]
|
||||
adds r4, r0, #0
|
||||
cmp r2, r3
|
||||
beq _0806AC9A
|
||||
subs r0, r2, r3
|
||||
movs r1, #0x1f
|
||||
ands r0, r1
|
||||
cmp r0, #0xf
|
||||
bgt _0806AC8E
|
||||
subs r0, r3, #1
|
||||
b _0806AC90
|
||||
_0806AC8E:
|
||||
adds r0, r3, #1
|
||||
_0806AC90:
|
||||
strb r0, [r4]
|
||||
ldrb r1, [r4]
|
||||
movs r0, #0x1f
|
||||
ands r0, r1
|
||||
strb r0, [r4]
|
||||
_0806AC9A:
|
||||
ldrb r1, [r4]
|
||||
movs r0, #7
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0806ACBA
|
||||
ldrb r0, [r4]
|
||||
bl sub_0806F5B0
|
||||
strb r0, [r5, #0x14]
|
||||
ldrb r1, [r5, #0x14]
|
||||
lsrs r1, r1, #1
|
||||
movs r0, #2
|
||||
eors r1, r0
|
||||
adds r0, r5, #0
|
||||
bl InitializeAnimation
|
||||
_0806ACBA:
|
||||
adds r0, r5, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0806ACC4
|
||||
sub_0806ACC4: @ 0x0806ACC4
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r5, [r4, #0xc]
|
||||
cmp r5, #1
|
||||
beq _0806AD28
|
||||
cmp r5, #1
|
||||
bgt _0806ACD8
|
||||
cmp r5, #0
|
||||
beq _0806ACE4
|
||||
b _0806ADEA
|
||||
_0806ACD8:
|
||||
cmp r5, #2
|
||||
beq _0806ADB8
|
||||
cmp r5, #3
|
||||
bne _0806ACE2
|
||||
b _0806ADDC
|
||||
_0806ACE2:
|
||||
b _0806ADEA
|
||||
_0806ACE4:
|
||||
ldrb r1, [r4, #0xa]
|
||||
lsls r1, r1, #4
|
||||
ldr r0, _0806AD24 @ =gUnk_08112674
|
||||
adds r1, r1, r0
|
||||
adds r0, r4, #0
|
||||
bl LoadExtraSpriteData
|
||||
cmp r0, #0
|
||||
bne _0806ACF8
|
||||
b _0806ADFA
|
||||
_0806ACF8:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x6a
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #1
|
||||
strb r0, [r4, #0x14]
|
||||
strb r5, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
bl sub_0801E99C
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_0807DD50
|
||||
ldrb r1, [r4, #0x14]
|
||||
lsrs r1, r1, #1
|
||||
adds r1, #8
|
||||
b _0806ADCE
|
||||
.align 2, 0
|
||||
_0806AD24: .4byte gUnk_08112674
|
||||
_0806AD28:
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x39
|
||||
movs r0, #0
|
||||
ldrsb r0, [r5, r0]
|
||||
cmp r0, #2
|
||||
bne _0806AD44
|
||||
movs r1, #0
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
strb r1, [r5]
|
||||
adds r0, r4, #0
|
||||
bl sub_0806F118
|
||||
b _0806ADEA
|
||||
_0806AD44:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl sub_0807DDAC
|
||||
adds r0, r4, #0
|
||||
bl sub_0806AEA8
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0xa
|
||||
bne _0806AD8A
|
||||
movs r0, #0
|
||||
ldrsb r0, [r5, r0]
|
||||
cmp r0, #0
|
||||
beq _0806AD8A
|
||||
movs r1, #0
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
strb r1, [r5]
|
||||
ldr r1, _0806ADAC @ =gPlayerEntity
|
||||
adds r0, r4, #0
|
||||
bl GetFacingDirection
|
||||
bl sub_0806F5A4
|
||||
adds r1, r0, #0
|
||||
adds r1, #8
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x84
|
||||
ldr r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl sub_0806AFE8
|
||||
_0806AD8A:
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #1
|
||||
bne _0806ADEA
|
||||
ldr r0, _0806ADAC @ =gPlayerEntity
|
||||
ldrb r3, [r0, #0x14]
|
||||
lsrs r3, r3, #1
|
||||
ldr r0, _0806ADB0 @ =gUnk_081126E4
|
||||
adds r0, r3, r0
|
||||
ldrb r2, [r0]
|
||||
lsls r3, r3, #2
|
||||
ldr r0, _0806ADB4 @ =gUnk_081126D4
|
||||
adds r3, r3, r0
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl sub_08078850
|
||||
b _0806ADEA
|
||||
.align 2, 0
|
||||
_0806ADAC: .4byte gPlayerEntity
|
||||
_0806ADB0: .4byte gUnk_081126E4
|
||||
_0806ADB4: .4byte gUnk_081126D4
|
||||
_0806ADB8:
|
||||
ldr r0, _0806ADD8 @ =gTextBox
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0806ADEA
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x14]
|
||||
lsrs r1, r1, #1
|
||||
adds r1, #4
|
||||
_0806ADCE:
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
b _0806ADEA
|
||||
.align 2, 0
|
||||
_0806ADD8: .4byte gTextBox
|
||||
_0806ADDC:
|
||||
adds r0, r4, #0
|
||||
bl UpdateFuseInteraction
|
||||
cmp r0, #0
|
||||
beq _0806ADEA
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
_0806ADEA:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x59
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xff
|
||||
beq _0806ADFA
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
_0806ADFA:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_0806ADFC
|
||||
sub_0806ADFC: @ 0x0806ADFC
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x68
|
||||
ldrb r1, [r1]
|
||||
bl sub_08078784
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start TownMinish_Head
|
||||
TownMinish_Head: @ 0x0806AE0C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0806AE62
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x69
|
||||
ldrb r0, [r0]
|
||||
lsrs r2, r0, #1
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5b
|
||||
ldrb r1, [r0]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806AE3C
|
||||
adds r2, #0x1c
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl SetExtraSpriteFrame
|
||||
b _0806AE46
|
||||
_0806AE3C:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
movs r2, #0xff
|
||||
bl SetExtraSpriteFrame
|
||||
_0806AE46:
|
||||
ldrb r2, [r4, #0x1e]
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl SetExtraSpriteFrame
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
movs r2, #0
|
||||
bl SetSpriteSubEntryOffsetData1
|
||||
adds r0, r4, #0
|
||||
bl sub_0807000C
|
||||
b _0806AEA4
|
||||
_0806AE62:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r2, [r0]
|
||||
cmp r2, #0xff
|
||||
beq _0806AE72
|
||||
movs r0, #0x81
|
||||
rsbs r0, r0, #0
|
||||
ands r2, r0
|
||||
_0806AE72:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5b
|
||||
ldrb r1, [r0]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0806AE82
|
||||
movs r2, #0xff
|
||||
_0806AE82:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl SetExtraSpriteFrame
|
||||
ldrb r2, [r4, #0x1e]
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl SetExtraSpriteFrame
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
movs r2, #0
|
||||
bl SetSpriteSubEntryOffsetData1
|
||||
adds r0, r4, #0
|
||||
bl sub_0807000C
|
||||
_0806AEA4:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0806AEA8
|
||||
sub_0806AEA8: @ 0x0806AEA8
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x82
|
||||
ldrh r5, [r6]
|
||||
ldr r0, _0806AED4 @ =0x0000FFDF
|
||||
ands r0, r5
|
||||
strh r0, [r6]
|
||||
movs r0, #0x20
|
||||
ands r0, r5
|
||||
cmp r0, #0
|
||||
beq _0806AECA
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #7
|
||||
adds r0, r4, #0
|
||||
bl sub_08003FC4
|
||||
_0806AECA:
|
||||
adds r0, r4, #0
|
||||
bl sub_0807DDE4
|
||||
strh r5, [r6]
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0806AED4: .4byte 0x0000FFDF
|
||||
|
||||
thumb_func_start sub_0806AED8
|
||||
sub_0806AED8: @ 0x0806AED8
|
||||
push {lr}
|
||||
movs r1, #0
|
||||
strb r1, [r0, #0xe]
|
||||
bl sub_0806AEE4
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_0806AEE4
|
||||
sub_0806AEE4: @ 0x0806AEE4
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r7, r0, #0
|
||||
cmp r7, #0
|
||||
beq _0806AEF6
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
b _0806AF5A
|
||||
_0806AEF6:
|
||||
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 _0806AF16
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x6a
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, #1
|
||||
strb r0, [r4, #0x14]
|
||||
lsls r3, r1, #3
|
||||
_0806AF16:
|
||||
ldrb r0, [r4, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
lsls r0, r0, #5
|
||||
asrs r1, r3, #1
|
||||
lsls r1, r1, #1
|
||||
ldr r2, _0806AF5C @ =gUnk_081125F4
|
||||
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 _0806AF3A
|
||||
adds r0, r3, #0
|
||||
bl sub_0806F5B0
|
||||
strb r0, [r4, #0x14]
|
||||
_0806AF3A:
|
||||
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, #0xff
|
||||
strb r0, [r1]
|
||||
_0806AF5A:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0806AF5C: .4byte gUnk_081125F4
|
||||
|
||||
thumb_func_start sub_0806AF60
|
||||
sub_0806AF60: @ 0x0806AF60
|
||||
push {lr}
|
||||
ldrb r2, [r0, #0x14]
|
||||
lsrs r2, r2, #1
|
||||
ldr r1, [r1, #4]
|
||||
adds r1, r1, r2
|
||||
bl InitializeAnimation
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_0806AF70
|
||||
sub_0806AF70: @ 0x0806AF70
|
||||
movs r1, #0x90
|
||||
lsls r1, r1, #0xa
|
||||
str r1, [r0, #0x20]
|
||||
bx lr
|
||||
|
||||
thumb_func_start sub_0806AF78
|
||||
sub_0806AF78: @ 0x0806AF78
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r5, r1, #0
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #5
|
||||
bl sub_08003FC4
|
||||
ldr r0, [r4, #0x34]
|
||||
cmp r0, #0
|
||||
blt _0806AF9E
|
||||
ldr r0, [r4, #0x20]
|
||||
cmp r0, #0
|
||||
bgt _0806AF9E
|
||||
movs r0, #0
|
||||
str r0, [r4, #0x34]
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl sub_0806AF70
|
||||
_0806AF9E:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_0806AFA0
|
||||
sub_0806AFA0: @ 0x0806AFA0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_0806ED78
|
||||
cmp r0, #0
|
||||
beq _0806AFBA
|
||||
movs r0, #0x24
|
||||
ldrsh r1, [r4, r0]
|
||||
rsbs r1, r1, #0
|
||||
ldrb r2, [r4, #0x15]
|
||||
adds r0, r4, #0
|
||||
bl sub_0806F62C
|
||||
_0806AFBA:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0806AFBC
|
||||
sub_0806AFBC: @ 0x0806AFBC
|
||||
push {lr}
|
||||
adds r3, r0, #0
|
||||
ldr r0, _0806AFE0 @ =gUnk_02002A40
|
||||
ldrb r0, [r0, #8]
|
||||
subs r0, #2
|
||||
cmp r0, #0
|
||||
bge _0806AFCC
|
||||
movs r0, #0
|
||||
_0806AFCC:
|
||||
ldrb r1, [r3, #0xb]
|
||||
lsls r1, r1, #6
|
||||
lsls r0, r0, #3
|
||||
ldr r2, _0806AFE4 @ =gUnk_081126F0
|
||||
adds r0, r0, r2
|
||||
adds r1, r1, r0
|
||||
adds r0, r3, #0
|
||||
bl ShowNPCDialogue
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0806AFE0: .4byte gUnk_02002A40
|
||||
_0806AFE4: .4byte gUnk_081126F0
|
||||
|
||||
thumb_func_start sub_0806AFE8
|
||||
sub_0806AFE8: @ 0x0806AFE8
|
||||
push {lr}
|
||||
movs r2, #0
|
||||
str r2, [r1, #0x14]
|
||||
ldr r3, _0806B000 @ =gUnk_08112BF0
|
||||
ldrb r2, [r0, #0xb]
|
||||
lsls r2, r2, #2
|
||||
adds r2, r2, r3
|
||||
ldr r2, [r2]
|
||||
bl _call_via_r2
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0806B000: .4byte gUnk_08112BF0
|
||||
|
||||
thumb_func_start sub_0806B004
|
||||
sub_0806B004: @ 0x0806B004
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
adds r5, r1, #0
|
||||
movs r4, #0
|
||||
movs r0, #0x29
|
||||
bl CheckGlobalFlag
|
||||
cmp r0, #0
|
||||
beq _0806B050
|
||||
movs r0, #0x73
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
beq _0806B048
|
||||
movs r0, #0x46
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
bne _0806B044
|
||||
movs r4, #3
|
||||
movs r0, #0x78
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _0806B050
|
||||
movs r4, #2
|
||||
movs r0, #1
|
||||
str r0, [r5, #0x14]
|
||||
movs r0, #0x78
|
||||
bl SetLocalFlag
|
||||
b _0806B050
|
||||
_0806B044:
|
||||
movs r4, #4
|
||||
b _0806B050
|
||||
_0806B048:
|
||||
movs r4, #1
|
||||
movs r0, #0x6a
|
||||
bl SetLocalFlag
|
||||
_0806B050:
|
||||
ldr r0, _0806B060 @ =gUnk_08112C40
|
||||
lsls r1, r4, #1
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r1]
|
||||
adds r1, r6, #0
|
||||
bl TextboxNoOverlap
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0806B060: .4byte gUnk_08112C40
|
||||
|
||||
thumb_func_start sub_0806B064
|
||||
sub_0806B064: @ 0x0806B064
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
movs r4, #0
|
||||
movs r0, #0x29
|
||||
bl CheckGlobalFlag
|
||||
cmp r0, #0
|
||||
beq _0806B082
|
||||
movs r4, #1
|
||||
movs r0, #0x73
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
beq _0806B082
|
||||
movs r4, #2
|
||||
_0806B082:
|
||||
ldr r0, _0806B094 @ =gUnk_08112C4A
|
||||
lsls r1, r4, #1
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r1]
|
||||
adds r1, r5, #0
|
||||
bl TextboxNoOverlap
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0806B094: .4byte gUnk_08112C4A
|
||||
|
||||
thumb_func_start sub_0806B098
|
||||
sub_0806B098: @ 0x0806B098
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
movs r4, #2
|
||||
movs r0, #0x46
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
bne _0806B0C0
|
||||
movs r4, #1
|
||||
movs r0, #0x29
|
||||
bl CheckGlobalFlag
|
||||
cmp r0, #0
|
||||
beq _0806B0C0
|
||||
movs r0, #0x2a
|
||||
bl CheckGlobalFlag
|
||||
rsbs r1, r0, #0
|
||||
orrs r1, r0
|
||||
lsrs r4, r1, #0x1f
|
||||
_0806B0C0:
|
||||
ldr r2, _0806B0DC @ =gUnk_08112C50
|
||||
ldrb r1, [r5, #0xb]
|
||||
subs r1, #7
|
||||
lsls r0, r1, #1
|
||||
adds r0, r0, r1
|
||||
adds r0, r0, r4
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r2
|
||||
ldrh r0, [r0]
|
||||
adds r1, r5, #0
|
||||
bl TextboxNoOverlap
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0806B0DC: .4byte gUnk_08112C50
|
||||
|
||||
thumb_func_start sub_0806B0E0
|
||||
sub_0806B0E0: @ 0x0806B0E0
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
movs r5, #0
|
||||
movs r0, #0x38
|
||||
movs r1, #0xb8
|
||||
movs r2, #1
|
||||
bl sub_080002C0
|
||||
cmp r0, #0x57
|
||||
bne _0806B120
|
||||
movs r0, #0x48
|
||||
movs r1, #0xb8
|
||||
movs r2, #1
|
||||
bl sub_080002C0
|
||||
cmp r0, #0x57
|
||||
bne _0806B120
|
||||
movs r0, #0x38
|
||||
movs r1, #0xc8
|
||||
movs r2, #1
|
||||
bl sub_080002C0
|
||||
cmp r0, #0x57
|
||||
bne _0806B120
|
||||
movs r0, #0x48
|
||||
movs r1, #0xc8
|
||||
movs r2, #1
|
||||
bl sub_080002C0
|
||||
cmp r0, #0x57
|
||||
bne _0806B120
|
||||
movs r5, #1
|
||||
_0806B120:
|
||||
ldr r0, _0806B130 @ =gUnk_08112C5C
|
||||
lsls r1, r5, #1
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r1]
|
||||
adds r1, r4, #0
|
||||
bl TextboxNoOverlap
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0806B130: .4byte gUnk_08112C5C
|
||||
|
||||
thumb_func_start sub_0806B134
|
||||
sub_0806B134: @ 0x0806B134
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
movs r0, #0x45
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
beq _0806B158
|
||||
movs r4, #2
|
||||
movs r0, #0x7b
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _0806B160
|
||||
movs r4, #1
|
||||
movs r0, #0x7b
|
||||
bl SetLocalFlag
|
||||
b _0806B160
|
||||
_0806B158:
|
||||
movs r4, #0
|
||||
movs r0, #0x4a
|
||||
bl SetGlobalFlag
|
||||
_0806B160:
|
||||
ldr r0, _0806B17C @ =gUnk_02002A40
|
||||
ldrb r0, [r0, #8]
|
||||
cmp r0, #5
|
||||
bls _0806B16A
|
||||
movs r4, #3
|
||||
_0806B16A:
|
||||
ldr r0, _0806B180 @ =gUnk_08112C60
|
||||
lsls r1, r4, #1
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r1]
|
||||
adds r1, r5, #0
|
||||
bl TextboxNoOverlap
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0806B17C: .4byte gUnk_02002A40
|
||||
_0806B180: .4byte gUnk_08112C60
|
||||
|
||||
thumb_func_start TownMinish_Fusion
|
||||
TownMinish_Fusion: @ 0x0806B184
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
bne _0806B1C4
|
||||
ldrb r1, [r4, #0xa]
|
||||
lsls r1, r1, #4
|
||||
ldr r0, _0806B1C0 @ =gUnk_08112674
|
||||
adds r1, r1, r0
|
||||
adds r0, r4, #0
|
||||
bl LoadExtraSpriteData
|
||||
cmp r0, #0
|
||||
beq _0806B1CA
|
||||
ldrb r0, [r4, #0xc]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
movs r1, #6
|
||||
bl InitializeAnimation
|
||||
b _0806B1CA
|
||||
.align 2, 0
|
||||
_0806B1C0: .4byte gUnk_08112674
|
||||
_0806B1C4:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
_0806B1CA:
|
||||
pop {r4, pc}
|
||||
File diff suppressed because it is too large
Load Diff
Executable
+2570
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Executable
+992
@@ -0,0 +1,992 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_0811E454:: @ 0811E454
|
||||
.incbin "baserom.gba", 0x11E454, 0x000001C
|
||||
|
||||
gUnk_0811E470:: @ 0811E470
|
||||
.incbin "baserom.gba", 0x11E470, 0x0000008
|
||||
|
||||
gUnk_0811E478:: @ 0811E478
|
||||
.incbin "baserom.gba", 0x11E478, 0x000000C
|
||||
|
||||
gUnk_0811E484:: @ 0811E484
|
||||
.incbin "baserom.gba", 0x11E484, 0x0000020
|
||||
|
||||
gUnk_0811E4A4:: @ 0811E4A4
|
||||
.incbin "baserom.gba", 0x11E4A4, 0x0000008
|
||||
|
||||
gUnk_0811E4AC:: @ 0811E4AC
|
||||
.incbin "baserom.gba", 0x11E4AC, 0x0000001
|
||||
|
||||
gUnk_0811E4AD:: @ 0811E4AD
|
||||
.incbin "baserom.gba", 0x11E4AD, 0x0000007
|
||||
|
||||
gUnk_0811E4B4:: @ 0811E4B4
|
||||
.incbin "baserom.gba", 0x11E4B4, 0x0000008
|
||||
|
||||
gUnk_0811E4BC:: @ 0811E4BC
|
||||
.incbin "baserom.gba", 0x11E4BC, 0x0000054
|
||||
|
||||
gUnk_0811E510:: @ 0811E510
|
||||
.incbin "baserom.gba", 0x11E510, 0x0000004
|
||||
|
||||
gUnk_0811E514:: @ 0811E514
|
||||
.incbin "baserom.gba", 0x11E514, 0x0000010
|
||||
|
||||
gUnk_0811E524:: @ 0811E524
|
||||
.incbin "baserom.gba", 0x11E524, 0x000022C
|
||||
|
||||
gUnk_0811E750:: @ 0811E750
|
||||
.incbin "baserom.gba", 0x11E750, 0x0000008
|
||||
|
||||
gUnk_0811E758:: @ 0811E758
|
||||
.incbin "baserom.gba", 0x11E758, 0x0000008
|
||||
|
||||
gUnk_0811E760:: @ 0811E760
|
||||
.incbin "baserom.gba", 0x11E760, 0x0000008
|
||||
|
||||
gUnk_0811E768:: @ 0811E768
|
||||
.incbin "baserom.gba", 0x11E768, 0x0000018
|
||||
|
||||
gUnk_0811E780:: @ 0811E780
|
||||
.incbin "baserom.gba", 0x11E780, 0x000000C
|
||||
|
||||
gUnk_0811E78C:: @ 0811E78C
|
||||
.incbin "baserom.gba", 0x11E78C, 0x0000008
|
||||
|
||||
gUnk_0811E794:: @ 0811E794
|
||||
.incbin "baserom.gba", 0x11E794, 0x0000018
|
||||
|
||||
gUnk_0811E7AC:: @ 0811E7AC
|
||||
.incbin "baserom.gba", 0x11E7AC, 0x0000010
|
||||
|
||||
gUnk_0811E7BC:: @ 0811E7BC
|
||||
.incbin "baserom.gba", 0x11E7BC, 0x0000008
|
||||
|
||||
gUnk_0811E7C4:: @ 0811E7C4
|
||||
.incbin "baserom.gba", 0x11E7C4, 0x0000010
|
||||
|
||||
gUnk_0811E7D4:: @ 0811E7D4
|
||||
.incbin "baserom.gba", 0x11E7D4, 0x0000014
|
||||
|
||||
gUnk_0811E7E8:: @ 0811E7E8
|
||||
.incbin "baserom.gba", 0x11E7E8, 0x000002C
|
||||
|
||||
gUnk_0811E814:: @ 0811E814
|
||||
.incbin "baserom.gba", 0x11E814, 0x000002C
|
||||
|
||||
gUnk_0811E840:: @ 0811E840
|
||||
.incbin "baserom.gba", 0x11E840, 0x000000C
|
||||
|
||||
gUnk_0811E84C:: @ 0811E84C
|
||||
.incbin "baserom.gba", 0x11E84C, 0x00000B0
|
||||
|
||||
gUnk_0811E8FC:: @ 0811E8FC
|
||||
.incbin "baserom.gba", 0x11E8FC, 0x00000FA
|
||||
|
||||
gUnk_0811E9F6:: @ 0811E9F6
|
||||
.incbin "baserom.gba", 0x11E9F6, 0x0000001
|
||||
|
||||
gUnk_0811E9F7:: @ 0811E9F7
|
||||
.incbin "baserom.gba", 0x11E9F7, 0x0000124
|
||||
|
||||
gUnk_0811EB1B:: @ 0811EB1B
|
||||
.incbin "baserom.gba", 0x11EB1B, 0x00000DE
|
||||
|
||||
gUnk_0811EBF9:: @ 0811EBF9
|
||||
.incbin "baserom.gba", 0x11EBF9, 0x0000003
|
||||
|
||||
gUnk_0811EBFC:: @ 0811EBFC
|
||||
.incbin "baserom.gba", 0x11EBFC, 0x0000007
|
||||
|
||||
gUnk_0811EC03:: @ 0811EC03
|
||||
.incbin "baserom.gba", 0x11EC03, 0x0000005
|
||||
|
||||
gUnk_0811EC08:: @ 0811EC08
|
||||
.incbin "baserom.gba", 0x11EC08, 0x0000018
|
||||
|
||||
gUnk_0811EC20:: @ 0811EC20
|
||||
.incbin "baserom.gba", 0x11EC20, 0x0000004
|
||||
|
||||
gUnk_0811EC24:: @ 0811EC24
|
||||
.incbin "baserom.gba", 0x11EC24, 0x0000040
|
||||
|
||||
gUnk_0811EC64:: @ 0811EC64
|
||||
.incbin "baserom.gba", 0x11EC64, 0x0000070
|
||||
|
||||
gUnk_0811ECD4:: @ 0811ECD4
|
||||
.incbin "baserom.gba", 0x11ECD4, 0x0000079
|
||||
|
||||
gUnk_0811ED4D:: @ 0811ED4D
|
||||
.incbin "baserom.gba", 0x11ED4D, 0x0000039
|
||||
|
||||
gUnk_0811ED86:: @ 0811ED86
|
||||
.incbin "baserom.gba", 0x11ED86, 0x0000031
|
||||
|
||||
gUnk_0811EDB7:: @ 0811EDB7
|
||||
.incbin "baserom.gba", 0x11EDB7, 0x0000034
|
||||
|
||||
gUnk_0811EDEB:: @ 0811EDEB
|
||||
.incbin "baserom.gba", 0x11EDEB, 0x0000014
|
||||
|
||||
gUnk_0811EDFF:: @ 0811EDFF
|
||||
.incbin "baserom.gba", 0x11EDFF, 0x0000011
|
||||
|
||||
gUnk_0811EE10:: @ 0811EE10
|
||||
.incbin "baserom.gba", 0x11EE10, 0x0000010
|
||||
|
||||
gUnk_0811EE20:: @ 0811EE20
|
||||
.incbin "baserom.gba", 0x11EE20, 0x0000008
|
||||
|
||||
gUnk_0811EE28:: @ 0811EE28
|
||||
.incbin "baserom.gba", 0x11EE28, 0x0000010
|
||||
|
||||
gUnk_0811EE38:: @ 0811EE38
|
||||
.incbin "baserom.gba", 0x11EE38, 0x0000018
|
||||
|
||||
gUnk_0811EE50:: @ 0811EE50
|
||||
.incbin "baserom.gba", 0x11EE50, 0x000000C
|
||||
|
||||
gUnk_0811EE5C:: @ 0811EE5C
|
||||
.incbin "baserom.gba", 0x11EE5C, 0x0000008
|
||||
|
||||
gUnk_0811EE64:: @ 0811EE64
|
||||
.incbin "baserom.gba", 0x11EE64, 0x0000029
|
||||
|
||||
gUnk_0811EE8D:: @ 0811EE8D
|
||||
.incbin "baserom.gba", 0x11EE8D, 0x0000004
|
||||
|
||||
gUnk_0811EE91:: @ 0811EE91
|
||||
.incbin "baserom.gba", 0x11EE91, 0x0000029
|
||||
|
||||
gUnk_0811EEBA:: @ 0811EEBA
|
||||
.incbin "baserom.gba", 0x11EEBA, 0x0000004
|
||||
|
||||
gUnk_0811EEBE:: @ 0811EEBE
|
||||
.incbin "baserom.gba", 0x11EEBE, 0x0000005
|
||||
|
||||
gUnk_0811EEC3:: @ 0811EEC3
|
||||
.incbin "baserom.gba", 0x11EEC3, 0x0000004
|
||||
|
||||
gUnk_0811EEC7:: @ 0811EEC7
|
||||
.incbin "baserom.gba", 0x11EEC7, 0x0000029
|
||||
|
||||
gUnk_0811EEF0:: @ 0811EEF0
|
||||
.incbin "baserom.gba", 0x11EEF0, 0x0000004
|
||||
|
||||
gUnk_0811EEF4:: @ 0811EEF4
|
||||
.incbin "baserom.gba", 0x11EEF4, 0x0000009
|
||||
|
||||
gUnk_0811EEFD:: @ 0811EEFD
|
||||
.incbin "baserom.gba", 0x11EEFD, 0x0000009
|
||||
|
||||
gUnk_0811EF06:: @ 0811EF06
|
||||
.incbin "baserom.gba", 0x11EF06, 0x0000009
|
||||
|
||||
gUnk_0811EF0F:: @ 0811EF0F
|
||||
.incbin "baserom.gba", 0x11EF0F, 0x0000028
|
||||
|
||||
gUnk_0811EF37:: @ 0811EF37
|
||||
.incbin "baserom.gba", 0x11EF37, 0x0000018
|
||||
|
||||
gUnk_0811EF4F:: @ 0811EF4F
|
||||
.incbin "baserom.gba", 0x11EF4F, 0x0000018
|
||||
|
||||
gUnk_0811EF67:: @ 0811EF67
|
||||
.incbin "baserom.gba", 0x11EF67, 0x0000018
|
||||
|
||||
gUnk_0811EF7F:: @ 0811EF7F
|
||||
.incbin "baserom.gba", 0x11EF7F, 0x0000018
|
||||
|
||||
gUnk_0811EF97:: @ 0811EF97
|
||||
.incbin "baserom.gba", 0x11EF97, 0x0000009
|
||||
|
||||
gUnk_0811EFA0:: @ 0811EFA0
|
||||
.incbin "baserom.gba", 0x11EFA0, 0x0000009
|
||||
|
||||
gUnk_0811EFA9:: @ 0811EFA9
|
||||
.incbin "baserom.gba", 0x11EFA9, 0x0000009
|
||||
|
||||
gUnk_0811EFB2:: @ 0811EFB2
|
||||
.incbin "baserom.gba", 0x11EFB2, 0x0000009
|
||||
|
||||
gUnk_0811EFBB:: @ 0811EFBB
|
||||
.incbin "baserom.gba", 0x11EFBB, 0x0000009
|
||||
|
||||
gUnk_0811EFC4:: @ 0811EFC4
|
||||
.incbin "baserom.gba", 0x11EFC4, 0x0000015
|
||||
|
||||
gUnk_0811EFD9:: @ 0811EFD9
|
||||
.incbin "baserom.gba", 0x11EFD9, 0x0000015
|
||||
|
||||
gUnk_0811EFEE:: @ 0811EFEE
|
||||
.incbin "baserom.gba", 0x11EFEE, 0x000000E
|
||||
|
||||
gUnk_0811EFFC:: @ 0811EFFC
|
||||
.incbin "baserom.gba", 0x11EFFC, 0x0000007
|
||||
|
||||
gUnk_0811F003:: @ 0811F003
|
||||
.incbin "baserom.gba", 0x11F003, 0x0000015
|
||||
|
||||
gUnk_0811F018:: @ 0811F018
|
||||
.incbin "baserom.gba", 0x11F018, 0x0000078
|
||||
|
||||
gUnk_0811F090:: @ 0811F090
|
||||
.incbin "baserom.gba", 0x11F090, 0x0000018
|
||||
|
||||
gUnk_0811F0A8:: @ 0811F0A8
|
||||
.incbin "baserom.gba", 0x11F0A8, 0x000001C
|
||||
|
||||
gUnk_0811F0C4:: @ 0811F0C4
|
||||
.incbin "baserom.gba", 0x11F0C4, 0x0000018
|
||||
|
||||
gUnk_0811F0DC:: @ 0811F0DC
|
||||
.incbin "baserom.gba", 0x11F0DC, 0x0000005
|
||||
|
||||
gUnk_0811F0E1:: @ 0811F0E1
|
||||
.incbin "baserom.gba", 0x11F0E1, 0x0000005
|
||||
|
||||
gUnk_0811F0E6:: @ 0811F0E6
|
||||
.incbin "baserom.gba", 0x11F0E6, 0x0000005
|
||||
|
||||
gUnk_0811F0EB:: @ 0811F0EB
|
||||
.incbin "baserom.gba", 0x11F0EB, 0x0000005
|
||||
|
||||
gUnk_0811F0F0:: @ 0811F0F0
|
||||
.incbin "baserom.gba", 0x11F0F0, 0x0000005
|
||||
|
||||
gUnk_0811F0F5:: @ 0811F0F5
|
||||
.incbin "baserom.gba", 0x11F0F5, 0x0000003
|
||||
|
||||
gUnk_0811F0F8:: @ 0811F0F8
|
||||
.incbin "baserom.gba", 0x11F0F8, 0x0000002
|
||||
|
||||
gUnk_0811F0FA:: @ 0811F0FA
|
||||
.incbin "baserom.gba", 0x11F0FA, 0x0000005
|
||||
|
||||
gUnk_0811F0FF:: @ 0811F0FF
|
||||
.incbin "baserom.gba", 0x11F0FF, 0x0000001
|
||||
|
||||
gUnk_0811F100:: @ 0811F100
|
||||
.incbin "baserom.gba", 0x11F100, 0x0000004
|
||||
|
||||
gUnk_0811F104:: @ 0811F104
|
||||
.incbin "baserom.gba", 0x11F104, 0x0000005
|
||||
|
||||
gUnk_0811F109:: @ 0811F109
|
||||
.incbin "baserom.gba", 0x11F109, 0x0000005
|
||||
|
||||
gUnk_0811F10E:: @ 0811F10E
|
||||
.incbin "baserom.gba", 0x11F10E, 0x0000005
|
||||
|
||||
gUnk_0811F113:: @ 0811F113
|
||||
.incbin "baserom.gba", 0x11F113, 0x0000005
|
||||
|
||||
gUnk_0811F118:: @ 0811F118
|
||||
.incbin "baserom.gba", 0x11F118, 0x0000034
|
||||
|
||||
gUnk_0811F14C:: @ 0811F14C
|
||||
.incbin "baserom.gba", 0x11F14C, 0x0000008
|
||||
|
||||
gUnk_0811F154:: @ 0811F154
|
||||
.incbin "baserom.gba", 0x11F154, 0x0000008
|
||||
|
||||
gUnk_0811F15C:: @ 0811F15C
|
||||
.incbin "baserom.gba", 0x11F15C, 0x0000010
|
||||
|
||||
gUnk_0811F16C:: @ 0811F16C
|
||||
.incbin "baserom.gba", 0x11F16C, 0x000000C
|
||||
|
||||
gUnk_0811F178:: @ 0811F178
|
||||
.incbin "baserom.gba", 0x11F178, 0x0000014
|
||||
|
||||
gUnk_0811F18C:: @ 0811F18C
|
||||
.incbin "baserom.gba", 0x11F18C, 0x0000004
|
||||
|
||||
gUnk_0811F190:: @ 0811F190
|
||||
.incbin "baserom.gba", 0x11F190, 0x000001D
|
||||
|
||||
gUnk_0811F1AD:: @ 0811F1AD
|
||||
.incbin "baserom.gba", 0x11F1AD, 0x000001D
|
||||
|
||||
gUnk_0811F1CA:: @ 0811F1CA
|
||||
.incbin "baserom.gba", 0x11F1CA, 0x000001D
|
||||
|
||||
gUnk_0811F1E7:: @ 0811F1E7
|
||||
.incbin "baserom.gba", 0x11F1E7, 0x0000029
|
||||
|
||||
gUnk_0811F210:: @ 0811F210
|
||||
.incbin "baserom.gba", 0x11F210, 0x000001D
|
||||
|
||||
gUnk_0811F22D:: @ 0811F22D
|
||||
.incbin "baserom.gba", 0x11F22D, 0x000001D
|
||||
|
||||
gUnk_0811F24A:: @ 0811F24A
|
||||
.incbin "baserom.gba", 0x11F24A, 0x000001D
|
||||
|
||||
gUnk_0811F267:: @ 0811F267
|
||||
.incbin "baserom.gba", 0x11F267, 0x0000029
|
||||
|
||||
gUnk_0811F290:: @ 0811F290
|
||||
.incbin "baserom.gba", 0x11F290, 0x000001D
|
||||
|
||||
gUnk_0811F2AD:: @ 0811F2AD
|
||||
.incbin "baserom.gba", 0x11F2AD, 0x000001D
|
||||
|
||||
gUnk_0811F2CA:: @ 0811F2CA
|
||||
.incbin "baserom.gba", 0x11F2CA, 0x000001D
|
||||
|
||||
gUnk_0811F2E7:: @ 0811F2E7
|
||||
.incbin "baserom.gba", 0x11F2E7, 0x0000029
|
||||
|
||||
gUnk_0811F310:: @ 0811F310
|
||||
.incbin "baserom.gba", 0x11F310, 0x000000D
|
||||
|
||||
gUnk_0811F31D:: @ 0811F31D
|
||||
.incbin "baserom.gba", 0x11F31D, 0x000000D
|
||||
|
||||
gUnk_0811F32A:: @ 0811F32A
|
||||
.incbin "baserom.gba", 0x11F32A, 0x000000D
|
||||
|
||||
gUnk_0811F337:: @ 0811F337
|
||||
.incbin "baserom.gba", 0x11F337, 0x0000029
|
||||
|
||||
gUnk_0811F360:: @ 0811F360
|
||||
.incbin "baserom.gba", 0x11F360, 0x000000D
|
||||
|
||||
gUnk_0811F36D:: @ 0811F36D
|
||||
.incbin "baserom.gba", 0x11F36D, 0x000000D
|
||||
|
||||
gUnk_0811F37A:: @ 0811F37A
|
||||
.incbin "baserom.gba", 0x11F37A, 0x000000D
|
||||
|
||||
gUnk_0811F387:: @ 0811F387
|
||||
.incbin "baserom.gba", 0x11F387, 0x0000029
|
||||
|
||||
gUnk_0811F3B0:: @ 0811F3B0
|
||||
.incbin "baserom.gba", 0x11F3B0, 0x000000D
|
||||
|
||||
gUnk_0811F3BD:: @ 0811F3BD
|
||||
.incbin "baserom.gba", 0x11F3BD, 0x000000D
|
||||
|
||||
gUnk_0811F3CA:: @ 0811F3CA
|
||||
.incbin "baserom.gba", 0x11F3CA, 0x000000D
|
||||
|
||||
gUnk_0811F3D7:: @ 0811F3D7
|
||||
.incbin "baserom.gba", 0x11F3D7, 0x0000029
|
||||
|
||||
gUnk_0811F400:: @ 0811F400
|
||||
.incbin "baserom.gba", 0x11F400, 0x0000005
|
||||
|
||||
gUnk_0811F405:: @ 0811F405
|
||||
.incbin "baserom.gba", 0x11F405, 0x0000011
|
||||
|
||||
gUnk_0811F416:: @ 0811F416
|
||||
.incbin "baserom.gba", 0x11F416, 0x0000029
|
||||
|
||||
gUnk_0811F43F:: @ 0811F43F
|
||||
.incbin "baserom.gba", 0x11F43F, 0x0000029
|
||||
|
||||
gUnk_0811F468:: @ 0811F468
|
||||
.incbin "baserom.gba", 0x11F468, 0x0000051
|
||||
|
||||
gUnk_0811F4B9:: @ 0811F4B9
|
||||
.incbin "baserom.gba", 0x11F4B9, 0x0000019
|
||||
|
||||
gUnk_0811F4D2:: @ 0811F4D2
|
||||
.incbin "baserom.gba", 0x11F4D2, 0x0000005
|
||||
|
||||
gUnk_0811F4D7:: @ 0811F4D7
|
||||
.incbin "baserom.gba", 0x11F4D7, 0x0000074
|
||||
|
||||
gUnk_0811F54B:: @ 0811F54B
|
||||
.incbin "baserom.gba", 0x11F54B, 0x0000015
|
||||
|
||||
gUnk_0811F560:: @ 0811F560
|
||||
.incbin "baserom.gba", 0x11F560, 0x0000015
|
||||
|
||||
gUnk_0811F575:: @ 0811F575
|
||||
.incbin "baserom.gba", 0x11F575, 0x0000015
|
||||
|
||||
gUnk_0811F58A:: @ 0811F58A
|
||||
.incbin "baserom.gba", 0x11F58A, 0x0000006
|
||||
|
||||
gUnk_0811F590:: @ 0811F590
|
||||
.incbin "baserom.gba", 0x11F590, 0x0000065
|
||||
|
||||
gUnk_0811F5F5:: @ 0811F5F5
|
||||
.incbin "baserom.gba", 0x11F5F5, 0x0000010
|
||||
|
||||
gUnk_0811F605:: @ 0811F605
|
||||
.incbin "baserom.gba", 0x11F605, 0x000001F
|
||||
|
||||
gUnk_0811F624:: @ 0811F624
|
||||
.incbin "baserom.gba", 0x11F624, 0x0000008
|
||||
|
||||
gUnk_0811F62C:: @ 0811F62C
|
||||
.incbin "baserom.gba", 0x11F62C, 0x0000008
|
||||
|
||||
gUnk_0811F634:: @ 0811F634
|
||||
.incbin "baserom.gba", 0x11F634, 0x0000008
|
||||
|
||||
gUnk_0811F63C:: @ 0811F63C
|
||||
.incbin "baserom.gba", 0x11F63C, 0x0000008
|
||||
|
||||
gUnk_0811F644:: @ 0811F644
|
||||
.incbin "baserom.gba", 0x11F644, 0x0000008
|
||||
|
||||
gUnk_0811F64C:: @ 0811F64C
|
||||
.incbin "baserom.gba", 0x11F64C, 0x0000010
|
||||
|
||||
gUnk_0811F65C:: @ 0811F65C
|
||||
.incbin "baserom.gba", 0x11F65C, 0x0000024
|
||||
|
||||
gUnk_0811F680:: @ 0811F680
|
||||
.incbin "baserom.gba", 0x11F680, 0x0000008
|
||||
|
||||
gUnk_0811F688:: @ 0811F688
|
||||
.incbin "baserom.gba", 0x11F688, 0x0000008
|
||||
|
||||
gUnk_0811F690:: @ 0811F690
|
||||
.incbin "baserom.gba", 0x11F690, 0x00000A0
|
||||
|
||||
gUnk_0811F730:: @ 0811F730
|
||||
.incbin "baserom.gba", 0x11F730, 0x0000010
|
||||
|
||||
gUnk_0811F740:: @ 0811F740
|
||||
.incbin "baserom.gba", 0x11F740, 0x0000004
|
||||
|
||||
gUnk_0811F744:: @ 0811F744
|
||||
.incbin "baserom.gba", 0x11F744, 0x0000010
|
||||
|
||||
gUnk_0811F754:: @ 0811F754
|
||||
.incbin "baserom.gba", 0x11F754, 0x000000C
|
||||
|
||||
gUnk_0811F760:: @ 0811F760
|
||||
.incbin "baserom.gba", 0x11F760, 0x0000035
|
||||
|
||||
gUnk_0811F795:: @ 0811F795
|
||||
.incbin "baserom.gba", 0x11F795, 0x0000037
|
||||
|
||||
gUnk_0811F7CC:: @ 0811F7CC
|
||||
.incbin "baserom.gba", 0x11F7CC, 0x000000C
|
||||
|
||||
gUnk_0811F7D8:: @ 0811F7D8
|
||||
.incbin "baserom.gba", 0x11F7D8, 0x000000D
|
||||
|
||||
gUnk_0811F7E5:: @ 0811F7E5
|
||||
.incbin "baserom.gba", 0x11F7E5, 0x0000003
|
||||
|
||||
gUnk_0811F7E8:: @ 0811F7E8
|
||||
.incbin "baserom.gba", 0x11F7E8, 0x0000020
|
||||
|
||||
gUnk_0811F808:: @ 0811F808
|
||||
.incbin "baserom.gba", 0x11F808, 0x0000010
|
||||
|
||||
gUnk_0811F818:: @ 0811F818
|
||||
.incbin "baserom.gba", 0x11F818, 0x0000020
|
||||
|
||||
gUnk_0811F838:: @ 0811F838
|
||||
.incbin "baserom.gba", 0x11F838, 0x0000008
|
||||
|
||||
gUnk_0811F840:: @ 0811F840
|
||||
.incbin "baserom.gba", 0x11F840, 0x0000010
|
||||
|
||||
gUnk_0811F850:: @ 0811F850
|
||||
.incbin "baserom.gba", 0x11F850, 0x0000004
|
||||
|
||||
gUnk_0811F854:: @ 0811F854
|
||||
.incbin "baserom.gba", 0x11F854, 0x0000012
|
||||
|
||||
gUnk_0811F866:: @ 0811F866
|
||||
.incbin "baserom.gba", 0x11F866, 0x000001A
|
||||
|
||||
gUnk_0811F880:: @ 0811F880
|
||||
.incbin "baserom.gba", 0x11F880, 0x000000A
|
||||
|
||||
gUnk_0811F88A:: @ 0811F88A
|
||||
.incbin "baserom.gba", 0x11F88A, 0x000000E
|
||||
|
||||
gUnk_0811F898:: @ 0811F898
|
||||
.incbin "baserom.gba", 0x11F898, 0x0000010
|
||||
|
||||
gUnk_0811F8A8:: @ 0811F8A8
|
||||
.incbin "baserom.gba", 0x11F8A8, 0x0000008
|
||||
|
||||
gUnk_0811F8B0:: @ 0811F8B0
|
||||
.incbin "baserom.gba", 0x11F8B0, 0x0000008
|
||||
|
||||
gUnk_0811F8B8:: @ 0811F8B8
|
||||
.incbin "baserom.gba", 0x11F8B8, 0x0000011
|
||||
|
||||
gUnk_0811F8C9:: @ 0811F8C9
|
||||
.incbin "baserom.gba", 0x11F8C9, 0x0000005
|
||||
|
||||
gUnk_0811F8CE:: @ 0811F8CE
|
||||
.incbin "baserom.gba", 0x11F8CE, 0x0000005
|
||||
|
||||
gUnk_0811F8D3:: @ 0811F8D3
|
||||
.incbin "baserom.gba", 0x11F8D3, 0x0000015
|
||||
|
||||
gUnk_0811F8E8:: @ 0811F8E8
|
||||
.incbin "baserom.gba", 0x11F8E8, 0x0000008
|
||||
|
||||
gUnk_0811F8F0:: @ 0811F8F0
|
||||
.incbin "baserom.gba", 0x11F8F0, 0x0000008
|
||||
|
||||
gUnk_0811F8F8:: @ 0811F8F8
|
||||
.incbin "baserom.gba", 0x11F8F8, 0x0000010
|
||||
|
||||
gUnk_0811F908:: @ 0811F908
|
||||
.incbin "baserom.gba", 0x11F908, 0x0000010
|
||||
|
||||
gUnk_0811F918:: @ 0811F918
|
||||
.incbin "baserom.gba", 0x11F918, 0x000002D
|
||||
|
||||
gUnk_0811F945:: @ 0811F945
|
||||
.incbin "baserom.gba", 0x11F945, 0x000000F
|
||||
|
||||
gUnk_0811F954:: @ 0811F954
|
||||
.incbin "baserom.gba", 0x11F954, 0x000000C
|
||||
|
||||
gUnk_0811F960:: @ 0811F960
|
||||
.incbin "baserom.gba", 0x11F960, 0x000009B
|
||||
|
||||
gUnk_0811F9FB:: @ 0811F9FB
|
||||
.incbin "baserom.gba", 0x11F9FB, 0x00000C5
|
||||
|
||||
gUnk_0811FAC0:: @ 0811FAC0
|
||||
.incbin "baserom.gba", 0x11FAC0, 0x0000008
|
||||
|
||||
gUnk_0811FAC8:: @ 0811FAC8
|
||||
.incbin "baserom.gba", 0x11FAC8, 0x0000004
|
||||
|
||||
gUnk_0811FACC:: @ 0811FACC
|
||||
.incbin "baserom.gba", 0x11FACC, 0x0000004
|
||||
|
||||
gUnk_0811FAD0:: @ 0811FAD0
|
||||
.incbin "baserom.gba", 0x11FAD0, 0x0000038
|
||||
|
||||
gUnk_0811FB08:: @ 0811FB08
|
||||
.incbin "baserom.gba", 0x11FB08, 0x0000008
|
||||
|
||||
gUnk_0811FB10:: @ 0811FB10
|
||||
.incbin "baserom.gba", 0x11FB10, 0x0000015
|
||||
|
||||
gUnk_0811FB25:: @ 0811FB25
|
||||
.incbin "baserom.gba", 0x11FB25, 0x0000058
|
||||
|
||||
gUnk_0811FB7D:: @ 0811FB7D
|
||||
.incbin "baserom.gba", 0x11FB7D, 0x0000044
|
||||
|
||||
gUnk_0811FBC1:: @ 0811FBC1
|
||||
.incbin "baserom.gba", 0x11FBC1, 0x0000020
|
||||
|
||||
gUnk_0811FBE1:: @ 0811FBE1
|
||||
.incbin "baserom.gba", 0x11FBE1, 0x000000C
|
||||
|
||||
gUnk_0811FBED:: @ 0811FBED
|
||||
.incbin "baserom.gba", 0x11FBED, 0x0000010
|
||||
|
||||
gUnk_0811FBFD:: @ 0811FBFD
|
||||
.incbin "baserom.gba", 0x11FBFD, 0x0000014
|
||||
|
||||
gUnk_0811FC11:: @ 0811FC11
|
||||
.incbin "baserom.gba", 0x11FC11, 0x000001C
|
||||
|
||||
gUnk_0811FC2D:: @ 0811FC2D
|
||||
.incbin "baserom.gba", 0x11FC2D, 0x0000024
|
||||
|
||||
gUnk_0811FC51:: @ 0811FC51
|
||||
.incbin "baserom.gba", 0x11FC51, 0x0000021
|
||||
|
||||
gUnk_0811FC72:: @ 0811FC72
|
||||
.incbin "baserom.gba", 0x11FC72, 0x0000015
|
||||
|
||||
gUnk_0811FC87:: @ 0811FC87
|
||||
.incbin "baserom.gba", 0x11FC87, 0x0000024
|
||||
|
||||
gUnk_0811FCAB:: @ 0811FCAB
|
||||
.incbin "baserom.gba", 0x11FCAB, 0x0000034
|
||||
|
||||
gUnk_0811FCDF:: @ 0811FCDF
|
||||
.incbin "baserom.gba", 0x11FCDF, 0x0000044
|
||||
|
||||
gUnk_0811FD23:: @ 0811FD23
|
||||
.incbin "baserom.gba", 0x11FD23, 0x0000018
|
||||
|
||||
gUnk_0811FD3B:: @ 0811FD3B
|
||||
.incbin "baserom.gba", 0x11FD3B, 0x000001C
|
||||
|
||||
gUnk_0811FD57:: @ 0811FD57
|
||||
.incbin "baserom.gba", 0x11FD57, 0x000001C
|
||||
|
||||
gUnk_0811FD73:: @ 0811FD73
|
||||
.incbin "baserom.gba", 0x11FD73, 0x000000C
|
||||
|
||||
gUnk_0811FD7F:: @ 0811FD7F
|
||||
.incbin "baserom.gba", 0x11FD7F, 0x0000010
|
||||
|
||||
gUnk_0811FD8F:: @ 0811FD8F
|
||||
.incbin "baserom.gba", 0x11FD8F, 0x0000014
|
||||
|
||||
gUnk_0811FDA3:: @ 0811FDA3
|
||||
.incbin "baserom.gba", 0x11FDA3, 0x0000015
|
||||
|
||||
gUnk_0811FDB8:: @ 0811FDB8
|
||||
.incbin "baserom.gba", 0x11FDB8, 0x0000014
|
||||
|
||||
gUnk_0811FDCC:: @ 0811FDCC
|
||||
.incbin "baserom.gba", 0x11FDCC, 0x0000008
|
||||
|
||||
gUnk_0811FDD4:: @ 0811FDD4
|
||||
.incbin "baserom.gba", 0x11FDD4, 0x0000018
|
||||
|
||||
gUnk_0811FDEC:: @ 0811FDEC
|
||||
.incbin "baserom.gba", 0x11FDEC, 0x0000010
|
||||
|
||||
gUnk_0811FDFC:: @ 0811FDFC
|
||||
.incbin "baserom.gba", 0x11FDFC, 0x0000019
|
||||
|
||||
gUnk_0811FE15:: @ 0811FE15
|
||||
.incbin "baserom.gba", 0x11FE15, 0x0000041
|
||||
|
||||
gUnk_0811FE56:: @ 0811FE56
|
||||
.incbin "baserom.gba", 0x11FE56, 0x0000008
|
||||
|
||||
gUnk_0811FE5E:: @ 0811FE5E
|
||||
.incbin "baserom.gba", 0x11FE5E, 0x0000018
|
||||
|
||||
gUnk_0811FE76:: @ 0811FE76
|
||||
.incbin "baserom.gba", 0x11FE76, 0x0000018
|
||||
|
||||
gUnk_0811FE8E:: @ 0811FE8E
|
||||
.incbin "baserom.gba", 0x11FE8E, 0x0000014
|
||||
|
||||
gUnk_0811FEA2:: @ 0811FEA2
|
||||
.incbin "baserom.gba", 0x11FEA2, 0x000000C
|
||||
|
||||
gUnk_0811FEAE:: @ 0811FEAE
|
||||
.incbin "baserom.gba", 0x11FEAE, 0x000000C
|
||||
|
||||
gUnk_0811FEBA:: @ 0811FEBA
|
||||
.incbin "baserom.gba", 0x11FEBA, 0x0000028
|
||||
|
||||
gUnk_0811FEE2:: @ 0811FEE2
|
||||
.incbin "baserom.gba", 0x11FEE2, 0x000000D
|
||||
|
||||
gUnk_0811FEEF:: @ 0811FEEF
|
||||
.incbin "baserom.gba", 0x11FEEF, 0x0000020
|
||||
|
||||
gUnk_0811FF0F:: @ 0811FF0F
|
||||
.incbin "baserom.gba", 0x11FF0F, 0x0000020
|
||||
|
||||
gUnk_0811FF2F:: @ 0811FF2F
|
||||
.incbin "baserom.gba", 0x11FF2F, 0x0000020
|
||||
|
||||
gUnk_0811FF4F:: @ 0811FF4F
|
||||
.incbin "baserom.gba", 0x11FF4F, 0x0000020
|
||||
|
||||
gUnk_0811FF6F:: @ 0811FF6F
|
||||
.incbin "baserom.gba", 0x11FF6F, 0x0000020
|
||||
|
||||
gUnk_0811FF8F:: @ 0811FF8F
|
||||
.incbin "baserom.gba", 0x11FF8F, 0x0000018
|
||||
|
||||
gUnk_0811FFA7:: @ 0811FFA7
|
||||
.incbin "baserom.gba", 0x11FFA7, 0x0000020
|
||||
|
||||
gUnk_0811FFC7:: @ 0811FFC7
|
||||
.incbin "baserom.gba", 0x11FFC7, 0x0000018
|
||||
|
||||
gUnk_0811FFDF:: @ 0811FFDF
|
||||
.incbin "baserom.gba", 0x11FFDF, 0x0000018
|
||||
|
||||
gUnk_0811FFF7:: @ 0811FFF7
|
||||
.incbin "baserom.gba", 0x11FFF7, 0x0000009
|
||||
|
||||
gUnk_08120000:: @ 08120000
|
||||
.incbin "baserom.gba", 0x120000, 0x0000004
|
||||
|
||||
gUnk_08120004:: @ 08120004
|
||||
.incbin "baserom.gba", 0x120004, 0x0000006
|
||||
|
||||
gUnk_0812000A:: @ 0812000A
|
||||
.incbin "baserom.gba", 0x12000A, 0x0000004
|
||||
|
||||
gUnk_0812000E:: @ 0812000E
|
||||
.incbin "baserom.gba", 0x12000E, 0x0000001
|
||||
|
||||
gUnk_0812000F:: @ 0812000F
|
||||
.incbin "baserom.gba", 0x12000F, 0x0000001
|
||||
|
||||
gUnk_08120010:: @ 08120010
|
||||
.incbin "baserom.gba", 0x120010, 0x0000007
|
||||
|
||||
gUnk_08120017:: @ 08120017
|
||||
.incbin "baserom.gba", 0x120017, 0x0000011
|
||||
|
||||
gUnk_08120028:: @ 08120028
|
||||
.incbin "baserom.gba", 0x120028, 0x0000004
|
||||
|
||||
gUnk_0812002C:: @ 0812002C
|
||||
.incbin "baserom.gba", 0x12002C, 0x000000F
|
||||
|
||||
gUnk_0812003B:: @ 0812003B
|
||||
.incbin "baserom.gba", 0x12003B, 0x0000017
|
||||
|
||||
gUnk_08120052:: @ 08120052
|
||||
.incbin "baserom.gba", 0x120052, 0x000000A
|
||||
|
||||
gUnk_0812005C:: @ 0812005C
|
||||
.incbin "baserom.gba", 0x12005C, 0x0000007
|
||||
|
||||
gUnk_08120063:: @ 08120063
|
||||
.incbin "baserom.gba", 0x120063, 0x000001C
|
||||
|
||||
gUnk_0812007F:: @ 0812007F
|
||||
.incbin "baserom.gba", 0x12007F, 0x0000009
|
||||
|
||||
gUnk_08120088:: @ 08120088
|
||||
.incbin "baserom.gba", 0x120088, 0x0000013
|
||||
|
||||
gUnk_0812009B:: @ 0812009B
|
||||
.incbin "baserom.gba", 0x12009B, 0x0000014
|
||||
|
||||
gUnk_081200AF:: @ 081200AF
|
||||
.incbin "baserom.gba", 0x1200AF, 0x000001B
|
||||
|
||||
gUnk_081200CA:: @ 081200CA
|
||||
.incbin "baserom.gba", 0x1200CA, 0x0000001
|
||||
|
||||
gUnk_081200CB:: @ 081200CB
|
||||
.incbin "baserom.gba", 0x1200CB, 0x0000005
|
||||
|
||||
gUnk_081200D0:: @ 081200D0
|
||||
.incbin "baserom.gba", 0x1200D0, 0x0000012
|
||||
|
||||
gUnk_081200E2:: @ 081200E2
|
||||
.incbin "baserom.gba", 0x1200E2, 0x0000009
|
||||
|
||||
gUnk_081200EB:: @ 081200EB
|
||||
.incbin "baserom.gba", 0x1200EB, 0x0000013
|
||||
|
||||
gUnk_081200FE:: @ 081200FE
|
||||
.incbin "baserom.gba", 0x1200FE, 0x0000001
|
||||
|
||||
gUnk_081200FF:: @ 081200FF
|
||||
.incbin "baserom.gba", 0x1200FF, 0x0000024
|
||||
|
||||
gUnk_08120123:: @ 08120123
|
||||
.incbin "baserom.gba", 0x120123, 0x0000024
|
||||
|
||||
gUnk_08120147:: @ 08120147
|
||||
.incbin "baserom.gba", 0x120147, 0x0000020
|
||||
|
||||
gUnk_08120167:: @ 08120167
|
||||
.incbin "baserom.gba", 0x120167, 0x0000018
|
||||
|
||||
gUnk_0812017F:: @ 0812017F
|
||||
.incbin "baserom.gba", 0x12017F, 0x0000011
|
||||
|
||||
gUnk_08120190:: @ 08120190
|
||||
.incbin "baserom.gba", 0x120190, 0x0000007
|
||||
|
||||
gUnk_08120197:: @ 08120197
|
||||
.incbin "baserom.gba", 0x120197, 0x0000018
|
||||
|
||||
gUnk_081201AF:: @ 081201AF
|
||||
.incbin "baserom.gba", 0x1201AF, 0x0000031
|
||||
|
||||
gUnk_081201E0:: @ 081201E0
|
||||
.incbin "baserom.gba", 0x1201E0, 0x000000D
|
||||
|
||||
gUnk_081201ED:: @ 081201ED
|
||||
.incbin "baserom.gba", 0x1201ED, 0x000000B
|
||||
|
||||
gUnk_081201F8:: @ 081201F8
|
||||
.incbin "baserom.gba", 0x1201F8, 0x0000011
|
||||
|
||||
gUnk_08120209:: @ 08120209
|
||||
.incbin "baserom.gba", 0x120209, 0x0000038
|
||||
|
||||
gUnk_08120241:: @ 08120241
|
||||
.incbin "baserom.gba", 0x120241, 0x0000038
|
||||
|
||||
gUnk_08120279:: @ 08120279
|
||||
.incbin "baserom.gba", 0x120279, 0x0000007
|
||||
|
||||
gUnk_08120280:: @ 08120280
|
||||
.incbin "baserom.gba", 0x120280, 0x000002D
|
||||
|
||||
gUnk_081202AD:: @ 081202AD
|
||||
.incbin "baserom.gba", 0x1202AD, 0x0000011
|
||||
|
||||
gUnk_081202BE:: @ 081202BE
|
||||
.incbin "baserom.gba", 0x1202BE, 0x0000025
|
||||
|
||||
gUnk_081202E3:: @ 081202E3
|
||||
.incbin "baserom.gba", 0x1202E3, 0x0000009
|
||||
|
||||
gUnk_081202EC:: @ 081202EC
|
||||
.incbin "baserom.gba", 0x1202EC, 0x0000020
|
||||
|
||||
gUnk_0812030C:: @ 0812030C
|
||||
.incbin "baserom.gba", 0x12030C, 0x0000014
|
||||
|
||||
gUnk_08120320:: @ 08120320
|
||||
.incbin "baserom.gba", 0x120320, 0x0000030
|
||||
|
||||
gUnk_08120350:: @ 08120350
|
||||
.incbin "baserom.gba", 0x120350, 0x000001C
|
||||
|
||||
gUnk_0812036C:: @ 0812036C
|
||||
.incbin "baserom.gba", 0x12036C, 0x0000020
|
||||
|
||||
gUnk_0812038C:: @ 0812038C
|
||||
.incbin "baserom.gba", 0x12038C, 0x0000038
|
||||
|
||||
gUnk_081203C4:: @ 081203C4
|
||||
.incbin "baserom.gba", 0x1203C4, 0x0000026
|
||||
|
||||
gUnk_081203EA:: @ 081203EA
|
||||
.incbin "baserom.gba", 0x1203EA, 0x0000012
|
||||
|
||||
gUnk_081203FC:: @ 081203FC
|
||||
.incbin "baserom.gba", 0x1203FC, 0x0000005
|
||||
|
||||
gUnk_08120401:: @ 08120401
|
||||
.incbin "baserom.gba", 0x120401, 0x0000001
|
||||
|
||||
gUnk_08120402:: @ 08120402
|
||||
.incbin "baserom.gba", 0x120402, 0x0000011
|
||||
|
||||
gUnk_08120413:: @ 08120413
|
||||
.incbin "baserom.gba", 0x120413, 0x0000030
|
||||
|
||||
gUnk_08120443:: @ 08120443
|
||||
.incbin "baserom.gba", 0x120443, 0x0000001
|
||||
|
||||
gUnk_08120444:: @ 08120444
|
||||
.incbin "baserom.gba", 0x120444, 0x0000015
|
||||
|
||||
gUnk_08120459:: @ 08120459
|
||||
.incbin "baserom.gba", 0x120459, 0x000000A
|
||||
|
||||
gUnk_08120463:: @ 08120463
|
||||
.incbin "baserom.gba", 0x120463, 0x000009B
|
||||
|
||||
gUnk_081204FE:: @ 081204FE
|
||||
.incbin "baserom.gba", 0x1204FE, 0x0000062
|
||||
|
||||
gUnk_08120560:: @ 08120560
|
||||
.incbin "baserom.gba", 0x120560, 0x000000C
|
||||
|
||||
gUnk_0812056C:: @ 0812056C
|
||||
.incbin "baserom.gba", 0x12056C, 0x0000008
|
||||
|
||||
gUnk_08120574:: @ 08120574
|
||||
.incbin "baserom.gba", 0x120574, 0x0000008
|
||||
|
||||
gUnk_0812057C:: @ 0812057C
|
||||
.incbin "baserom.gba", 0x12057C, 0x000000C
|
||||
|
||||
gUnk_08120588:: @ 08120588
|
||||
.incbin "baserom.gba", 0x120588, 0x0000014
|
||||
|
||||
gUnk_0812059C:: @ 0812059C
|
||||
.incbin "baserom.gba", 0x12059C, 0x0000018
|
||||
|
||||
gUnk_081205B4:: @ 081205B4
|
||||
.incbin "baserom.gba", 0x1205B4, 0x0000008
|
||||
|
||||
gUnk_081205BC:: @ 081205BC
|
||||
.incbin "baserom.gba", 0x1205BC, 0x0000014
|
||||
|
||||
gUnk_081205D0:: @ 081205D0
|
||||
.incbin "baserom.gba", 0x1205D0, 0x0000010
|
||||
|
||||
gUnk_081205E0:: @ 081205E0
|
||||
.incbin "baserom.gba", 0x1205E0, 0x0000004
|
||||
|
||||
gUnk_081205E4:: @ 081205E4
|
||||
.incbin "baserom.gba", 0x1205E4, 0x0000004
|
||||
|
||||
gUnk_081205E8:: @ 081205E8
|
||||
.incbin "baserom.gba", 0x1205E8, 0x0000004
|
||||
|
||||
gUnk_081205EC:: @ 081205EC
|
||||
.incbin "baserom.gba", 0x1205EC, 0x0000004
|
||||
|
||||
gUnk_081205F0:: @ 081205F0
|
||||
.incbin "baserom.gba", 0x1205F0, 0x0000004
|
||||
|
||||
gUnk_081205F4:: @ 081205F4
|
||||
.incbin "baserom.gba", 0x1205F4, 0x0000009
|
||||
|
||||
gUnk_081205FD:: @ 081205FD
|
||||
.incbin "baserom.gba", 0x1205FD, 0x000000B
|
||||
|
||||
gUnk_08120608:: @ 08120608
|
||||
.incbin "baserom.gba", 0x120608, 0x0000018
|
||||
|
||||
gUnk_08120620:: @ 08120620
|
||||
.incbin "baserom.gba", 0x120620, 0x000000C
|
||||
|
||||
gUnk_0812062C:: @ 0812062C
|
||||
.incbin "baserom.gba", 0x12062C, 0x000000C
|
||||
|
||||
gUnk_08120638:: @ 08120638
|
||||
.incbin "baserom.gba", 0x120638, 0x0000008
|
||||
|
||||
gUnk_08120640:: @ 08120640
|
||||
.incbin "baserom.gba", 0x120640, 0x0000008
|
||||
|
||||
gUnk_08120648:: @ 08120648
|
||||
.incbin "baserom.gba", 0x120648, 0x0000008
|
||||
|
||||
gUnk_08120650:: @ 08120650
|
||||
.incbin "baserom.gba", 0x120650, 0x0000008
|
||||
|
||||
gUnk_08120658:: @ 08120658
|
||||
.incbin "baserom.gba", 0x120658, 0x0000008
|
||||
|
||||
gUnk_08120660:: @ 08120660
|
||||
.incbin "baserom.gba", 0x120660, 0x0000008
|
||||
|
||||
gUnk_08120668:: @ 08120668
|
||||
.incbin "baserom.gba", 0x120668, 0x0000010
|
||||
|
||||
gUnk_08120678:: @ 08120678
|
||||
.incbin "baserom.gba", 0x120678, 0x000000A
|
||||
|
||||
gUnk_08120682:: @ 08120682
|
||||
.incbin "baserom.gba", 0x120682, 0x0000004
|
||||
|
||||
gUnk_08120686:: @ 08120686
|
||||
.incbin "baserom.gba", 0x120686, 0x0000004
|
||||
|
||||
gUnk_0812068A:: @ 0812068A
|
||||
.incbin "baserom.gba", 0x12068A, 0x0000004
|
||||
|
||||
gUnk_0812068E:: @ 0812068E
|
||||
.incbin "baserom.gba", 0x12068E, 0x0000004
|
||||
|
||||
gUnk_08120692:: @ 08120692
|
||||
.incbin "baserom.gba", 0x120692, 0x0000006
|
||||
|
||||
gUnk_08120698:: @ 08120698
|
||||
.incbin "baserom.gba", 0x120698, 0x0000014
|
||||
|
||||
gUnk_081206AC:: @ 081206AC
|
||||
.incbin "baserom.gba", 0x1206AC, 0x0000008
|
||||
|
||||
gUnk_081206B4:: @ 081206B4
|
||||
.incbin "baserom.gba", 0x1206B4, 0x0000010
|
||||
|
||||
gUnk_081206C4:: @ 081206C4
|
||||
.incbin "baserom.gba", 0x1206C4, 0x000000C
|
||||
@@ -7633,16 +7633,13 @@ gUnk_08324AE4:: @ 08324AE4
|
||||
.incbin "baserom.gba", 0x324AE4, 0x000018F
|
||||
|
||||
gUnk_08324C73:: @ 08324C73
|
||||
.incbin "baserom.gba", 0x324C73, 0x00007FA
|
||||
.incbin "baserom.gba", 0x324C73, 0x0000241
|
||||
|
||||
gUnk_0832546D:: @ 0832546D
|
||||
.incbin "baserom.gba", 0x32546D, 0x000041B
|
||||
gUnk_08324EB4:: @ 08324EB4
|
||||
.incbin "data/tilesets/minish_woods/tiles_bottom.4bpp.lz"
|
||||
|
||||
gUnk_08325888:: @ 08325888
|
||||
.incbin "baserom.gba", 0x325888, 0x00010E9
|
||||
|
||||
gUnk_08326971:: @ 08326971
|
||||
.incbin "baserom.gba", 0x326971, 0x0002C90
|
||||
gUnk_08327B08:: @ 08327B08
|
||||
.incbin "baserom.gba", 0x327B08, 0x0001AF9
|
||||
|
||||
gUnk_08329601:: @ 08329601
|
||||
.incbin "baserom.gba", 0x329601, 0x00053C2
|
||||
|
||||
Executable
+1166
File diff suppressed because it is too large
Load Diff
Executable
+1145
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
After Width: | Height: | Size: 9.4 KiB |
+4
-1
@@ -167,7 +167,10 @@ extern void SetSpriteSubEntryOffsetData2(Entity*, u32, u32);
|
||||
|
||||
extern u32 GetFacingDirection(Entity*, Entity*);
|
||||
|
||||
extern void DeleteThisEntity();
|
||||
extern void DeleteThisEntity(void);
|
||||
extern void CopyPosition(Entity*, Entity*);
|
||||
extern void DeleteEntity(Entity*);
|
||||
extern void PositionRelative(Entity*, Entity*, s32, s32);
|
||||
|
||||
extern Entity gUnk_03003DA0;
|
||||
|
||||
|
||||
+3
-4
@@ -13,7 +13,7 @@
|
||||
// Identified - to be sorted into header files
|
||||
extern u32 Random(void);
|
||||
extern void PlaySFX(u32);
|
||||
extern void ShowNPCDialogue(Entity*, u32*);
|
||||
extern void ShowNPCDialogue(Entity*, Dialog*);
|
||||
extern u32 UpdateFuseInteraction();
|
||||
extern void DeleteEntity(Entity*);
|
||||
extern u32 __modsi3(u32, u32);
|
||||
@@ -46,7 +46,7 @@ extern void ExecuteScriptCommandSet(Entity*, void *);
|
||||
extern void _DmaFill32(u32, void*, u32);
|
||||
|
||||
// Unidentified
|
||||
extern void sub_0806ED78(Entity*);
|
||||
extern u32 sub_0806ED78(Entity*);
|
||||
extern void sub_0806920C(Entity*);
|
||||
extern u32 sub_0805ACC0(Entity*);
|
||||
extern u32 sub_0801E99C(Entity*);
|
||||
@@ -78,7 +78,6 @@ extern s32 sub_0806ED9C(Entity*, u32, u32);
|
||||
extern void sub_0807000C(Entity*);
|
||||
extern void sub_0805E47C(Entity*);
|
||||
extern void sub_0805E584(Entity*);
|
||||
extern void sub_0806ED78(Entity*);
|
||||
extern void sub_08068BEC(Entity*, u32);
|
||||
extern void sub_08078778(Entity*);
|
||||
extern s32 sub_0806ED9C(Entity*, u32, u32);
|
||||
@@ -103,7 +102,7 @@ extern u32 sub_08049EE4(Entity*);
|
||||
extern Entity *sub_0804A98C(Entity *, u32, u32);
|
||||
extern u32 sub_080544DC(u8);
|
||||
extern void sub_08077E54(Entity*);
|
||||
extern void sub_080042BA(Entity*);
|
||||
extern void sub_080042BA(Entity*, u32);
|
||||
extern void _DmaZero(void*, u32);
|
||||
extern void sub_08077F24(ItemBehavior*, u32);
|
||||
extern void sub_08079184();
|
||||
|
||||
@@ -171,7 +171,6 @@ extern void NPC58(Entity*);
|
||||
extern void NPC58_Head(Entity*);
|
||||
|
||||
extern u32 UpdateFuseInteraction(Entity*);
|
||||
extern void ShowNPCDialogue(Entity*, u32*);
|
||||
|
||||
|
||||
#endif
|
||||
+4
-2
@@ -27,8 +27,10 @@ typedef struct {
|
||||
u8 screenShakeMagnitude;
|
||||
u8 unk7;
|
||||
u16 screenShakeTime;
|
||||
u16 filler2[6];
|
||||
u8 filler3[4];
|
||||
u16 filler2[3];
|
||||
u16 width;
|
||||
u16 height;
|
||||
u8 filler3[6];
|
||||
union SplitWord bg3OffsetX;
|
||||
union SplitWord bg3OffsetY;
|
||||
Entity* cameraTarget;
|
||||
|
||||
+17
-3
@@ -23,7 +23,7 @@ typedef struct {
|
||||
} struct_0807D1C4;
|
||||
|
||||
#define gUnk_02000000 ((struct_02000000*)(0x2000000))
|
||||
//extern struct_02000000 gUnk_02000000;
|
||||
// extern struct_02000000 gUnk_02000000;
|
||||
|
||||
typedef struct {
|
||||
u8 filler0[0x4];
|
||||
@@ -57,7 +57,7 @@ typedef struct {
|
||||
extern SaveFile gUnk_02002A40;
|
||||
|
||||
typedef struct {
|
||||
u32 frameCount; // regular frame count? does anything reset it?
|
||||
u32 frameCount; // regular frame count? does anything reset it?
|
||||
u8 field_0x4[0x4];
|
||||
bool8 transitioningOut;
|
||||
u8 transitionType; // transition when changing areas
|
||||
@@ -123,7 +123,7 @@ typedef struct {
|
||||
u8 field_0x2;
|
||||
u8 field_0x3;
|
||||
u32 field_0x4;
|
||||
u16 fadeType; // fade in or out, are there others?
|
||||
u16 fadeType; // fade in or out, are there others?
|
||||
u16 fadeSpeed; // subtracted from duration
|
||||
u16 fadeDuration;
|
||||
u16 field_0xe;
|
||||
@@ -160,4 +160,18 @@ typedef struct {
|
||||
} struct_02034480;
|
||||
extern struct_02034480 gUnk_02034480;
|
||||
|
||||
typedef struct {
|
||||
u32 flag : 12;
|
||||
u32 flagType : 4;
|
||||
u32 type : 4;
|
||||
u32 unk : 1;
|
||||
union {
|
||||
struct {
|
||||
u16 a;
|
||||
u16 b;
|
||||
} indices;
|
||||
void (*func)(Entity*);
|
||||
} data;
|
||||
} Dialog;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -56,9 +56,9 @@ SECTIONS {
|
||||
. = 0x0000B654; gUnk_0200B654 = .;
|
||||
. = 0x0000D654; gUnk_0200D654 = .;
|
||||
. = 0x0000E654; gUnk_0200E654 = .;
|
||||
. = 0x00010654; gUnk_02010654 = .;
|
||||
. = 0x00010654; gMetatileTypesTop = .;
|
||||
. = 0x00011654; gUnk_02011654 = .;
|
||||
. = 0x00012654; gUnk_02012654 = .;
|
||||
. = 0x00012654; gMetatilesTop = .;
|
||||
. = 0x00016654; gUnk_02016654 = .;
|
||||
. = 0x00017654; gUnk_02017654 = .;
|
||||
. = 0x00017660; gUnk_02017660 = .;
|
||||
@@ -101,9 +101,9 @@ SECTIONS {
|
||||
. = 0x00025EB4; gUnk_02025EB4 = .;
|
||||
. = 0x00027EB4; gUnk_02027EB4 = .;
|
||||
. = 0x00028EB4; gUnk_02028EB4 = .;
|
||||
. = 0x0002AEB4; gUnk_0202AEB4 = .;
|
||||
. = 0x0002AEB4; gMetatileTypesBottom = .;
|
||||
. = 0x0002BEB4; gUnk_0202BEB4 = .;
|
||||
. = 0x0002CEB4; gUnk_0202CEB4 = .;
|
||||
. = 0x0002CEB4; gMetatilesBottom = .;
|
||||
. = 0x00030EB4; gUnk_02030EB4 = .;
|
||||
. = 0x00031EC0; gUnk_02031EC0 = .;
|
||||
. = 0x00032EC0; gUnk_02032EC0 = .;
|
||||
@@ -419,9 +419,9 @@ SECTIONS {
|
||||
asm/dust.o(.text);
|
||||
asm/vaatiBall.o(.text);
|
||||
src/enemy/slime.o(.text);
|
||||
asm/slime.o(.text);
|
||||
asm/miniSlime.o(.text);
|
||||
asm/fireballGuy.o(.text);
|
||||
asm/sub_080451CC.o(.text);
|
||||
src/enemy/miniSlime.o(.text);
|
||||
src/enemy/fireballGuy.o(.text);
|
||||
src/enemy/miniFireballGuy.o(.text);
|
||||
asm/enemy5A.o(.text);
|
||||
asm/businessScrubPrologue.o(.text);
|
||||
@@ -601,7 +601,6 @@ SECTIONS {
|
||||
src/npc/rem.o(.text);
|
||||
asm/rem.o(.text);
|
||||
src/npc/townMinish.o(.text);
|
||||
asm/townMinish.o(.text);
|
||||
src/npc/librari.o(.text);
|
||||
src/npc/percy.o(.text);
|
||||
asm/percy.o(.text);
|
||||
@@ -918,8 +917,14 @@ SECTIONS {
|
||||
data/data_080D5360.o(.rodata);
|
||||
src/mainLoop.o(.rodata);
|
||||
data/data_08100CD4.o(.rodata);
|
||||
data/tileset_headers.o(.rodata);
|
||||
data/data_081026AC.o(.rodata);
|
||||
src/manager/managerB.o(.rodata);
|
||||
data/data_0810821C.o(.rodata);
|
||||
src/item.o(.rodata);
|
||||
data/data_0811BD44.o(.rodata);
|
||||
data/room_headers.o(.rodata);
|
||||
data/data_0811E454.o(.rodata);
|
||||
src/object/greatFairy.o(.rodata);
|
||||
data/greatFairyAnimations.o(.rodata);
|
||||
data/data_081208A0.o(.rodata);
|
||||
|
||||
+2
-2
@@ -29,9 +29,9 @@ void UpdateItemAnim(Entity *ent)
|
||||
sub_08077E54(ent);
|
||||
}
|
||||
|
||||
void sub_08077E3C(Entity *ent)
|
||||
void sub_08077E3C(Entity *ent, u32 idx)
|
||||
{
|
||||
sub_080042BA(&gPlayerEntity);
|
||||
sub_080042BA(&gPlayerEntity, idx);
|
||||
sub_08077E54(ent);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
#include "global.h"
|
||||
#include "entity.h"
|
||||
|
||||
extern Entity* CreateObject();
|
||||
extern void CopyPosition();
|
||||
|
||||
Entity* CreateObjectWithParent(Entity* parentEnt, u32 subtype, u32 param1, u32 param2) {
|
||||
Entity* ent;
|
||||
|
||||
|
||||
@@ -0,0 +1,121 @@
|
||||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "functions.h"
|
||||
|
||||
typedef struct {
|
||||
s8 h, v;
|
||||
} PACKED PosOffset;
|
||||
|
||||
extern void sub_08045524(Entity*);
|
||||
void sub_08045178(Entity*, Entity*, int, int);
|
||||
|
||||
extern void (*const gUnk_080D17E8[])(Entity*);
|
||||
extern void (*const gUnk_080D1800[])(Entity*);
|
||||
extern u8 gUnk_080D180C[4]; // Entity count per form
|
||||
extern PosOffset gUnk_080D1810[4];
|
||||
|
||||
extern u8 gEntCount;
|
||||
|
||||
void FireballGuy(Entity* this) {
|
||||
EnemyFunctionHandler(this, gUnk_080D17E8);
|
||||
}
|
||||
|
||||
void sub_080453A4(Entity* this) {
|
||||
gUnk_080D1800[this->action](this);
|
||||
}
|
||||
|
||||
void sub_080453BC(Entity* this) {
|
||||
if (this->currentHealth && this->cutsceneBeh.HALF.LO != this->currentHealth) {
|
||||
this->action = 2;
|
||||
} else {
|
||||
sub_0804AA30(this, gUnk_080D17E8);
|
||||
}
|
||||
}
|
||||
|
||||
void nullsub_172(void) {
|
||||
}
|
||||
|
||||
void sub_080453E8(Entity* this) {
|
||||
this->action = 1;
|
||||
this->actionDelay = 0;
|
||||
this->spriteSettings.b.draw = 1;
|
||||
this->nonPlanarMovement = 0x80;
|
||||
this->cutsceneBeh.HALF.LO = this->currentHealth;
|
||||
this->field_0x3c |= 0x10;
|
||||
sub_0804A720(this);
|
||||
InitializeAnimation(this, 0);
|
||||
sub_08045524(this);
|
||||
}
|
||||
|
||||
void sub_08045430(Entity* this) {
|
||||
sub_080AEFE0(this);
|
||||
GetNextFrame(this);
|
||||
if (sub_08003FC4(this, 0x1800) == 0)
|
||||
sub_08045524(this);
|
||||
}
|
||||
|
||||
/* Split FireballGuy into new ones */
|
||||
void sub_08045454(Entity* this) {
|
||||
Entity* entities[4];
|
||||
Entity* ent;
|
||||
s32 count, i;
|
||||
PosOffset* off;
|
||||
u32 tmp;
|
||||
|
||||
/* Can we create enough new entities? */
|
||||
count = gUnk_080D180C[this->entityType.form];
|
||||
if (72 - count <= gEntCount)
|
||||
return;
|
||||
|
||||
/* Create 2-5 new MiniFireballGuy */
|
||||
for (i = 0; i < count; i++)
|
||||
entities[i] = CreateEnemy(0x59, this->entityType.form);
|
||||
|
||||
off = gUnk_080D1810;
|
||||
for (i = 0; i < count; i++) {
|
||||
ent = entities[i];
|
||||
ent->attachedEntity = entities[(i + 1) % count];
|
||||
ent->parent = entities[(i + count - 1) % count];
|
||||
tmp = 0;
|
||||
ent->entityType.parameter = 1;
|
||||
ent->height.HALF.HI = tmp;
|
||||
ent->hurtBlinkTime = -0x10;
|
||||
|
||||
/* Set MiniFireballGuy offset relative to killed slime. */
|
||||
sub_08045178(this, ent, off->h, off->v);
|
||||
off++;
|
||||
}
|
||||
|
||||
ent = CreateFx(this, 2, 0);
|
||||
if (ent)
|
||||
CopyPosition(this, ent);
|
||||
|
||||
DeleteEntity(this);
|
||||
}
|
||||
|
||||
u32 sub_0804A024(Entity*, u32, u32);
|
||||
|
||||
void sub_08045524(Entity *this) {
|
||||
u32 tmp, tmp1, tmp2;
|
||||
|
||||
this->field_0x20 = 0x1c000;
|
||||
tmp = sub_0804A024(this,1,8);
|
||||
if (tmp != 0xff && (Random() & 3) == 0) {
|
||||
this->actionDelay = Random() & 3;
|
||||
this->direction = tmp & 0x18;
|
||||
} else {
|
||||
if (this->actionDelay) {
|
||||
this->actionDelay--;
|
||||
return;
|
||||
}
|
||||
this->actionDelay = Random() & 3;
|
||||
if (sub_08049FA0(this) == 0 && (Random() & 3)) {
|
||||
tmp1 = sub_08049EE4(this);
|
||||
tmp2 = Random() & 8;
|
||||
tmp2 += 0xfc;
|
||||
this->direction = (tmp1 + tmp2) & 0x18;
|
||||
} else {
|
||||
this->direction = Random() & 0x18;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "room.h"
|
||||
#include "functions.h"
|
||||
|
||||
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*);
|
||||
|
||||
extern void (*const gUnk_080D17C0[])(Entity*);
|
||||
extern void (*const gUnk_080D17D8[])(Entity*);
|
||||
|
||||
void MiniSlime(Entity* this) {
|
||||
EnemyFunctionHandler(this, gUnk_080D17C0);
|
||||
SetChildOffset(this, 0, 1, -8);
|
||||
}
|
||||
|
||||
void sub_08045220(Entity* this) {
|
||||
gUnk_080D17D8[this->action](this);
|
||||
}
|
||||
|
||||
void sub_08045238(Entity* this) {
|
||||
if (this->field_0x43)
|
||||
sub_0804A9FC(this, 0x1c);
|
||||
|
||||
sub_0804AA30(this, gUnk_080D17C0);
|
||||
}
|
||||
|
||||
void sub_0804525C(Entity* this) {
|
||||
Entity* parent = this->parent;
|
||||
if (this != parent && parent) {
|
||||
this->field_0x6c.HALF.LO &= 0x7f;
|
||||
this->parent->attachedEntity = this->attachedEntity;
|
||||
this->attachedEntity->parent = this->parent;
|
||||
if (this->field_0x6c.HALF.HI & 0x40)
|
||||
ReplaceMonitoredEntity(this, parent);
|
||||
}
|
||||
sub_0804A7D4(this);
|
||||
}
|
||||
|
||||
void nullsub_22(void) {
|
||||
}
|
||||
|
||||
void sub_080452A4(Entity* this) {
|
||||
this->action = 1;
|
||||
this->spriteSettings.b.draw = 1;
|
||||
this->nonPlanarMovement = 0x100;
|
||||
sub_0804A720(this);
|
||||
InitializeAnimation(this, 6);
|
||||
if (this->entityType.parameter) {
|
||||
this->action = 2;
|
||||
this->actionDelay = 1;
|
||||
} else {
|
||||
sub_080452E4(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_080452E4(Entity* this) {
|
||||
this->action = 2;
|
||||
this->actionDelay = (Random() & 0x1f) + 1;
|
||||
}
|
||||
|
||||
void sub_080452FC(Entity *this) {
|
||||
u32 cVar2, bVar3;
|
||||
GetNextFrame(this);
|
||||
if (--this->actionDelay == 0) {
|
||||
this->action = 3;
|
||||
this->actionDelay = 1;
|
||||
if (0 < this->nonPlanarMovement)
|
||||
this->actionDelay = sub_0806FA04(0x1000, this->nonPlanarMovement) >> 0x8;
|
||||
|
||||
if (sub_08049FA0(this) == 0 && (Random() & 3)) {
|
||||
cVar2 = sub_08049EE4(this);
|
||||
bVar3 = Random() & 8;
|
||||
bVar3 += 0xfc;
|
||||
this->direction = (cVar2 + bVar3) & 0x18;
|
||||
} else {
|
||||
this->direction = Random() & 0x18;
|
||||
sub_08045374(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08045374(Entity* this) {
|
||||
sub_080AEF88(this);
|
||||
GetNextFrame(this);
|
||||
if (--this->actionDelay == 0)
|
||||
this->action = 1;
|
||||
}
|
||||
+78
-93
@@ -1,5 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "room.h"
|
||||
#include "functions.h"
|
||||
|
||||
typedef struct {
|
||||
void* field_0x0;
|
||||
@@ -7,28 +9,31 @@ typedef struct {
|
||||
u8 freezeTime;
|
||||
} EntityHandler;
|
||||
|
||||
extern void EnemyFunctionHandler(Entity*, void*);
|
||||
extern void SetChildOffset(Entity*, u32, u32, u32);
|
||||
extern void sub_0804AA30(Entity*, void*);
|
||||
typedef struct {
|
||||
s8 h, v;
|
||||
} PACKED PosOffset;
|
||||
|
||||
void sub_08044FF8(Entity*);
|
||||
void sub_08045178(Entity*, Entity*, int, int);
|
||||
|
||||
extern void sub_0804A9FC(Entity*, u32);
|
||||
extern void sub_0804A720(Entity*);
|
||||
extern void sub_08044FF8(Entity*);
|
||||
extern u32 Random(void);
|
||||
extern u32 sub_0806FA04(u32, u32);
|
||||
extern u32 sub_08049FA0(Entity*);
|
||||
extern u32 sub_08049EE4(Entity*);
|
||||
extern u32 sub_080AEF88(void);
|
||||
extern void sub_0804A4E4(Entity*, Entity*);
|
||||
extern u32 sub_080002CC(Entity*, s32, s32);
|
||||
|
||||
extern void (*gUnk_080D16BC[])(Entity*);
|
||||
extern void (*gUnk_080D16A4[])(Entity*);
|
||||
extern void (*const gUnk_080D16BC[])(Entity*);
|
||||
extern void (*const gUnk_080D16A4[])(Entity*);
|
||||
extern u8 gUnk_080D16D0[4]; // Entity count per form
|
||||
extern PosOffset gUnk_080D16D4[4];
|
||||
|
||||
extern u8 gUnk_080D16D0;
|
||||
extern u8 gEntCount;
|
||||
extern EntityHandler gUnk_03003DB8;
|
||||
|
||||
void Slime(Entity* this)
|
||||
|
||||
{
|
||||
EnemyFunctionHandler(this, &gUnk_080D16A4);
|
||||
void Slime(Entity* this) {
|
||||
EnemyFunctionHandler(this, gUnk_080D16A4);
|
||||
SetChildOffset(this, 0, 1, -12);
|
||||
}
|
||||
|
||||
@@ -40,7 +45,7 @@ void sub_08044F88(Entity* this) {
|
||||
if ((this->currentHealth != 0) && (this->cutsceneBeh.HALF.LO != this->currentHealth)) {
|
||||
this->action = 4;
|
||||
} else {
|
||||
sub_0804AA30(this, &gUnk_080D16A4);
|
||||
sub_0804AA30(this, gUnk_080D16A4);
|
||||
}
|
||||
|
||||
if (this->field_0x43 != 0) {
|
||||
@@ -61,32 +66,21 @@ void sub_08044FC8(Entity* this) {
|
||||
}
|
||||
|
||||
void sub_08044FF8(Entity* this) {
|
||||
u32 bVar1;
|
||||
|
||||
this->action = 2;
|
||||
bVar1 = Random();
|
||||
this->actionDelay = (bVar1 & 31) + 30;
|
||||
this->actionDelay = (Random() & 31) + 30;
|
||||
this->cutsceneBeh.HALF.LO = this->currentHealth;
|
||||
}
|
||||
|
||||
void sub_08045018(Entity* this) {
|
||||
u32 cVar1;
|
||||
u32 param3;
|
||||
u32 iVar3;
|
||||
u32 randValue;
|
||||
|
||||
GetNextFrame(this);
|
||||
param3 = this->actionDelay -= 1;
|
||||
if (param3 == 0) {
|
||||
if (--this->actionDelay == 0) {
|
||||
this->action = 3;
|
||||
this->actionDelay = 1;
|
||||
if (0 < this->nonPlanarMovement) {
|
||||
this->actionDelay = sub_0806FA04(4096, this->nonPlanarMovement) >> 8;
|
||||
}
|
||||
iVar3 = sub_08049FA0(this);
|
||||
if ((iVar3 == 0) && (randValue = Random(), (randValue & 3) != 0)) {
|
||||
cVar1 = sub_08049EE4(this);
|
||||
this->direction = (cVar1 + 0xfc + (Random() & 8)) & 24;
|
||||
if (sub_08049FA0(this) == 0 && (Random() & 3)) {
|
||||
this->direction = (sub_08049EE4(this) + 0xfc + (Random() & 8)) & 24;
|
||||
return;
|
||||
}
|
||||
this->direction = Random() & 24;
|
||||
@@ -94,74 +88,65 @@ void sub_08045018(Entity* this) {
|
||||
}
|
||||
|
||||
void sub_08045088(Entity* this) {
|
||||
u8 bVar1;
|
||||
|
||||
sub_080AEF88();
|
||||
sub_080AEF88(this);
|
||||
GetNextFrame(this);
|
||||
bVar1 = this->actionDelay -= 1;
|
||||
if (bVar1 == 0) {
|
||||
if (--this->actionDelay == 0) {
|
||||
this->action = 1;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
void sub_080450A8(Entity* this)
|
||||
|
||||
{
|
||||
u8 bVar1;
|
||||
u32 uVar2;
|
||||
s32 iVar3;
|
||||
s32 iVar4;
|
||||
Entity* pEVar5;
|
||||
Entity** ppEVar6;
|
||||
s32 dividend;
|
||||
u32 uVar7;
|
||||
Entity* local_r6_72;
|
||||
u32 divisor;
|
||||
u8* pcVar8;
|
||||
Entity* local_2c[4];
|
||||
|
||||
ppEVar6 = local_2c;
|
||||
bVar1 = (&gUnk_080D16D0)[(this->entityType).form];
|
||||
divisor = (u32)bVar1;
|
||||
if ((int)gUnk_03003DB8.entityCount < (int)(72 - divisor)) {
|
||||
uVar7 = divisor;
|
||||
if (bVar1 != 0) {
|
||||
do {
|
||||
uVar2 = CreateEnemy(87, this->entityType.form);
|
||||
*ppEVar6 = uVar2;
|
||||
ppEVar6 = ppEVar6 + 1;
|
||||
uVar7 = uVar7 - 1;
|
||||
} while (uVar7 != 0);
|
||||
}
|
||||
pcVar8 = "\x06";
|
||||
iVar4 = 0;
|
||||
if (bVar1 != 0) {
|
||||
do {
|
||||
local_r6_72 = local_2c[iVar4];
|
||||
dividend = iVar4 + 1;
|
||||
iVar3 = Div(dividend, divisor);
|
||||
local_r6_72->attachedEntity = local_2c[iVar3];
|
||||
iVar4 = Div(iVar4 + divisor + -1, divisor);
|
||||
local_r6_72->parent = local_2c[iVar4];
|
||||
(local_r6_72->entityType).parameter = 1;
|
||||
local_r6_72->height.WORD = 0;
|
||||
local_r6_72->hurtBlinkTime = 240;
|
||||
sub_08045178(this, local_r6_72, *pcVar8, pcVar8[1]);
|
||||
pcVar8 = pcVar8 + 2;
|
||||
iVar4 = dividend;
|
||||
} while (dividend < divisor);
|
||||
}
|
||||
pEVar5 = CreateFx(this, 2, 0);
|
||||
if (pEVar5 != NULL) {
|
||||
CopyPosition(this, pEVar5);
|
||||
}
|
||||
DeleteEnemy(this);
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
/* Split slime into new ones */
|
||||
void sub_080450A8(Entity* this) {
|
||||
asm(".include \"asm/non_matching/slime/sub_080450A8.inc\"");
|
||||
Entity* entities[4];
|
||||
Entity* ent;
|
||||
s32 count, i;
|
||||
PosOffset* off;
|
||||
|
||||
/* Can we create enough new entities? */
|
||||
count = gUnk_080D16D0[this->entityType.form];
|
||||
if (72 - count <= gEntCount)
|
||||
return;
|
||||
|
||||
/* Create 2-4 new MiniSlime */
|
||||
for (i = 0; i < count; i++)
|
||||
entities[i] = CreateEnemy(0x57, this->entityType.form);
|
||||
|
||||
off = gUnk_080D16D4;
|
||||
for (i = 0; i < count; i++) {
|
||||
ent = entities[i];
|
||||
ent->attachedEntity = entities[(i + 1) % count];
|
||||
ent->parent = entities[(i + count - 1) % count];
|
||||
ent->entityType.parameter = 1;
|
||||
ent->height.HALF.HI = 0;
|
||||
ent->hurtBlinkTime = -0x10;
|
||||
|
||||
/* Set MiniSlime offset relative to killed slime. */
|
||||
sub_08045178(this, ent, off->h, off->v);
|
||||
off++;
|
||||
}
|
||||
|
||||
ent = CreateFx(this, 2, 0);
|
||||
if (ent)
|
||||
CopyPosition(this, ent);
|
||||
|
||||
DeleteEntity(this);
|
||||
}
|
||||
|
||||
void sub_08045178(Entity* this, Entity* child, int h, int v) {
|
||||
int x, y;
|
||||
|
||||
if (child == NULL)
|
||||
return;
|
||||
|
||||
sub_0804A4E4(this, child);
|
||||
if (sub_080002CC(child, h, v))
|
||||
return;
|
||||
|
||||
x = child->x.HALF.HI + h;
|
||||
if (0 <= x && x < (gRoomControls.roomOriginX + gRoomControls.width))
|
||||
child->x.HALF.HI = x;
|
||||
|
||||
y = child->y.HALF.HI + v;
|
||||
if (0 <= y && y < (gRoomControls.roomOriginY + gRoomControls.height))
|
||||
child->y.HALF.HI = y;
|
||||
}
|
||||
#endif
|
||||
|
||||
+80
-39
@@ -6,25 +6,42 @@
|
||||
#include "area.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern void (*(gUnk_08108208[]))(Manager*);
|
||||
/*
|
||||
* Manager B is used to create fights:
|
||||
* It possibly waits for an inhibitor flag to be set, then spawns a bunch of entities (based on room data).
|
||||
* Once all enemies created this way are dead, it sets a flag.
|
||||
* (There is also a part about changing the music and setting it back when the fight is done, which is song 0x33 (a fight theme) by default but can be overridden through room data)
|
||||
*/
|
||||
|
||||
void (*const ManagerB_ActionFuncs[])(Manager*);
|
||||
|
||||
void sub_080585F0(Manager* this) {
|
||||
gUnk_08108208[this->unk_0a](this);
|
||||
//make a distincion if this is a controller (unk_0a = 0) or a helper (unk_0a = 1)
|
||||
ManagerB_ActionFuncs[this->unk_0a](this);
|
||||
}
|
||||
|
||||
extern void (*(gUnk_08108210[]))(Manager*);
|
||||
enum ManagerB_State {
|
||||
Init,
|
||||
WaitForFlag,
|
||||
WaitForDone
|
||||
};
|
||||
|
||||
void sub_08058608(Manager* this) {
|
||||
gUnk_08108210[this->action](this);
|
||||
void (*const ManagerB_StateFuncs[])(ManagerB*);
|
||||
|
||||
void ManagerB_Main(ManagerB* this) {
|
||||
//make a distinction based on the state of this controller
|
||||
ManagerB_StateFuncs[this->manager.action](this);
|
||||
}
|
||||
|
||||
void sub_080586EC(Manager*);
|
||||
void ManagerB_LoadFight(Manager*);
|
||||
|
||||
void sub_08058620(ManagerB* this) {
|
||||
void ManagerB_Init(ManagerB* this) {
|
||||
//check if the fight was already completed previously (checks the flag that gets set after the fight is done)
|
||||
if (!CheckFlags(this->unk_3e)) {
|
||||
this->manager.action = 1;
|
||||
this->manager.action = WaitForFlag;
|
||||
//if there is no flag that needs to be set before the fight is started, start it immediately
|
||||
if (!this->unk_3c) {
|
||||
sub_080586EC(&this->manager);
|
||||
ManagerB_LoadFight(&this->manager);
|
||||
}
|
||||
sub_0805E3A0(this, 3);
|
||||
} else {
|
||||
@@ -33,10 +50,10 @@ void sub_08058620(ManagerB* this) {
|
||||
}
|
||||
extern void sub_080186C0(u32);
|
||||
|
||||
void sub_08058650(ManagerB* this) {
|
||||
void ManagerB_WaitForFlag(ManagerB* this) {
|
||||
int tmp;
|
||||
if (CheckFlags(this->unk_3c)) {
|
||||
sub_080586EC(&this->manager);
|
||||
ManagerB_LoadFight(&this->manager);
|
||||
if (!this->unk_35) {
|
||||
tmp = gRoomVars.field_0x9 ? gRoomVars.field_0x9 : 0x33;
|
||||
this->unk_20 = gArea.musicIndex;
|
||||
@@ -49,9 +66,12 @@ void sub_08058650(ManagerB* this) {
|
||||
|
||||
extern void sub_0801855C(void);
|
||||
|
||||
void sub_080586A8(ManagerB* this) {
|
||||
void ManagerB_WaitForDone(ManagerB* this) {
|
||||
//check if all helpers are done
|
||||
if (this->manager.unk_0e) return;
|
||||
//set the completion flag for the fight
|
||||
SetFlag(this->unk_3e);
|
||||
//restore music (if it was set, which apparently is only possible if there's a flag the fight waited for)
|
||||
if (this->unk_3c) {
|
||||
if (!this->unk_35) {
|
||||
gArea.musicIndex = this->unk_20;
|
||||
@@ -62,40 +82,45 @@ void sub_080586A8(ManagerB* this) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
|
||||
ManagerBHelper* sub_08058760(Manager*);
|
||||
void sub_08058798(ManagerBHelper*, Entity*, u32);
|
||||
ManagerBHelper* CreateHelper(Manager*);
|
||||
void ManagerBHelper_Monitor(ManagerBHelper*, Entity*, u32);
|
||||
|
||||
extern EntityData* GetCurrentRoomProperty(u8);
|
||||
extern Entity* LoadRoomEntity(EntityData*);
|
||||
|
||||
void sub_080586EC(Manager* this) {
|
||||
ManagerBHelper* tmp;
|
||||
void ManagerB_LoadFight(Manager* this) {
|
||||
ManagerBHelper* monitor;
|
||||
EntityData* prop;
|
||||
Entity* ent;
|
||||
u32 counter;
|
||||
this->action = 2;
|
||||
this->unk_0e = 0;
|
||||
counter = 0;
|
||||
tmp = sub_08058760(this);
|
||||
if (!tmp) DeleteThisEntity();
|
||||
//Create a helper to keep track of the created entities.
|
||||
monitor = CreateHelper(this);
|
||||
if (!monitor) DeleteThisEntity();
|
||||
prop = (EntityData*) GetCurrentRoomProperty(this->unk_0b);
|
||||
if (prop) {
|
||||
while (*((u8*)prop) != 0xFF) {
|
||||
ent = LoadRoomEntity(prop++);
|
||||
if (ent && (ent->entityType.type == 3)) {
|
||||
ent->field_0x6c.HALF.HI |= 0x40;
|
||||
sub_08058798(tmp, ent, counter++);
|
||||
ManagerBHelper_Monitor(monitor, ent, counter++);
|
||||
}
|
||||
if (counter >= 7) {
|
||||
counter = 0;
|
||||
tmp = sub_08058760(this);
|
||||
if (!tmp) return;
|
||||
monitor = CreateHelper(this);
|
||||
if (!monitor) return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ManagerBHelper* sub_08058760(Manager* this) {
|
||||
/*
|
||||
* Create a helper and increment the counter for the number of helpers (unk_0e).
|
||||
* The helper will decrease said counter when it deletes itself (when none of the enemies it monitors remain).
|
||||
*/
|
||||
ManagerBHelper* CreateHelper(Manager* this) {
|
||||
ManagerBHelper* extra;
|
||||
extra = (ManagerBHelper*) GetEmptyManager();
|
||||
if (extra) {
|
||||
@@ -110,51 +135,67 @@ ManagerBHelper* sub_08058760(Manager* this) {
|
||||
return extra;
|
||||
}
|
||||
|
||||
void sub_08058798(ManagerBHelper* this, Entity* value, u32 index) {
|
||||
this->enemies[index]=value;
|
||||
void ManagerBHelper_Monitor(ManagerBHelper* this, Entity* ent, u32 index) {
|
||||
this->enemies[index]=ent;
|
||||
this->manager.unk_0e++;
|
||||
}
|
||||
|
||||
void sub_080587AC(ManagerBHelper* this) {
|
||||
u8 i, tmp;
|
||||
//case unk_0a is 1: The manager is a helper
|
||||
|
||||
void ManagerBHelper_Main(Manager* this) {
|
||||
u8 i, anyRemaining;
|
||||
Entity* current;
|
||||
if (this->manager.action == 0) {
|
||||
this->manager.action = 1;
|
||||
if (this->action == 0) {
|
||||
this->action = 1;
|
||||
sub_0805E3A0(this,3);
|
||||
}
|
||||
tmp = 0;
|
||||
//go through and check all monitored enemies.
|
||||
anyRemaining = 0;
|
||||
for (i = 0; i < 8; i++) {
|
||||
if ((current = this->enemies[i])) {
|
||||
if ((current = ((ManagerBHelper*)this)->enemies[i])) {
|
||||
if (!current->next) {
|
||||
this->enemies[i] = 0;
|
||||
((ManagerBHelper*) this)->enemies[i] = 0;
|
||||
} else {
|
||||
tmp = 1;
|
||||
anyRemaining = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!tmp) {
|
||||
if (((ManagerB*) this->manager.parent)->manager.unk_0e) {
|
||||
((ManagerB*) this->manager.parent)->manager.unk_0e--;
|
||||
if (!anyRemaining) {
|
||||
//inform the parent that we're done
|
||||
if (((ManagerB*) this->parent)->manager.unk_0e) {
|
||||
((ManagerB*) this->parent)->manager.unk_0e--;
|
||||
}
|
||||
DeleteThisEntity();
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern Manager gUnk_03003DB0;
|
||||
|
||||
void sub_08058800(Entity* this, Entity* unk1) {
|
||||
/*
|
||||
* Replace an entity that is currently being monitored with a new one
|
||||
*/
|
||||
void ReplaceMonitoredEntity(Entity* old, Entity* new) {
|
||||
ManagerBHelper* current;
|
||||
Manager* end = &gUnk_03003DB0;
|
||||
u32 i;
|
||||
for (current = (ManagerBHelper*) end->next; (Manager*)current != end; current=(ManagerBHelper*)current->manager.next) {
|
||||
if (current->manager.type != 0x9 || current->manager.subtype != 0xB) continue;
|
||||
for (i = 0; i < 8; i++) {
|
||||
if (this == current->enemies[i]) {
|
||||
current->enemies[i] = unk1;
|
||||
if (old == current->enemies[i]) {
|
||||
current->enemies[i] = new;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void (*const ManagerB_ActionFuncs[])(Manager*) = {
|
||||
(void (*)(Manager*)) ManagerB_Main,
|
||||
(void (*)(Manager*)) ManagerBHelper_Main
|
||||
};
|
||||
void (*const ManagerB_StateFuncs[])(ManagerB*) = {
|
||||
ManagerB_Init,
|
||||
ManagerB_WaitForFlag,
|
||||
ManagerB_WaitForDone
|
||||
};
|
||||
|
||||
+3
-7
@@ -1,21 +1,19 @@
|
||||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "player.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern void sub_0806ED78(Entity*);
|
||||
extern void sub_0806920C(Entity*);
|
||||
extern u32 sub_0805ACC0(Entity*);
|
||||
extern u32 sub_0801E99C(Entity*);
|
||||
extern void sub_0806924C(Entity*);
|
||||
extern void sub_080AEF88(Entity*);
|
||||
extern void ShowNPCDialogue(Entity*, u32*);
|
||||
extern void sub_08078778(Entity*);
|
||||
extern void sub_080787A8(Entity*, u32);
|
||||
extern void sub_0806F118(Entity*);
|
||||
extern void sub_080791D0();
|
||||
extern void (*gUnk_08111914[])(Entity*);
|
||||
extern void (*gUnk_08111928[])(Entity*);
|
||||
extern u32 gUnk_08111938[];
|
||||
extern Dialog gUnk_08111938[];
|
||||
extern void PlaySFX(u32);
|
||||
extern u32 Random();
|
||||
extern u32 UpdateFuseInteraction(Entity*);
|
||||
@@ -184,9 +182,7 @@ void sub_080691E0(Entity* ent) {
|
||||
|
||||
// Show dialogue
|
||||
void Cow_ShowDialogue(Entity* ent) {
|
||||
u32 var0 = ent->entityType.form;
|
||||
u32* var1 = gUnk_08111938 + (var0 * 2);
|
||||
ShowNPCDialogue(ent, var1);
|
||||
ShowNPCDialogue(ent, &gUnk_08111938[ent->entityType.form]);
|
||||
}
|
||||
|
||||
void sub_0806920C(Entity* ent) {
|
||||
|
||||
+2
-2
@@ -8,7 +8,7 @@ void sub_08065A64(Entity* this);
|
||||
void sub_08065AA4(Entity*);
|
||||
|
||||
extern void (*gUnk_0811006C[])(Entity*);
|
||||
extern u32 gUnk_08110080[];
|
||||
extern Dialog gUnk_08110080[];
|
||||
|
||||
void Epona(Entity* this) {
|
||||
gUnk_0811006C[this->action](this);
|
||||
@@ -50,7 +50,7 @@ void sub_08065A34(Entity* this) {
|
||||
}
|
||||
|
||||
void sub_08065A50(Entity* this) {
|
||||
ShowNPCDialogue(this, &gUnk_08110080[this->entityType.form * 2]);
|
||||
ShowNPCDialogue(this, &gUnk_08110080[this->entityType.form]);
|
||||
}
|
||||
|
||||
void sub_08065A64(Entity* this) {
|
||||
|
||||
@@ -10,7 +10,6 @@ extern void sub_0807DD50(Entity*);
|
||||
extern void sub_0806F118(Entity*);
|
||||
extern void ExecuteScriptCommandSet(Entity*, void *);
|
||||
extern void sub_0805FF2C(Entity*, void*);
|
||||
extern void sub_0806ED78(Entity*);
|
||||
|
||||
extern void (*const gUnk_08109BBC[])(Entity*);
|
||||
|
||||
|
||||
+100
-118
@@ -5,9 +5,8 @@
|
||||
#include "textbox.h"
|
||||
#include "player.h"
|
||||
#include "structures.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern void sub_0805E3A0(Entity*, u32);
|
||||
extern void StartCutscene(Entity*, void*);
|
||||
extern void sub_0807DD50(Entity*);
|
||||
extern void sub_0806F118(Entity*);
|
||||
extern void sub_0807DDAC(Entity*, u32);
|
||||
@@ -16,7 +15,6 @@ extern void sub_080600F0(Entity*);
|
||||
extern u32 sub_0801E99C(Entity*);
|
||||
extern void sub_08078784(Entity*, u32);
|
||||
extern void sub_0807000C(Entity*);
|
||||
extern void sub_080042BA(Entity*, u32);
|
||||
extern void sub_08060158(Entity*);
|
||||
extern u32 CheckKinstoneFused(u32);
|
||||
extern Entity* FindEntityInListBySubtype(u32, u32, u32);
|
||||
@@ -26,10 +24,10 @@ extern u32 Random(void);
|
||||
extern void ModBombs(s32);
|
||||
|
||||
extern SpriteLoadData gUnk_0810A348;
|
||||
extern void* gUnk_08109D18[];
|
||||
extern u8* gUnk_08109D18[];
|
||||
extern u8 gUnk_08109C98[];
|
||||
extern u16 gUnk_0810A354[];
|
||||
extern u32 gUnk_08109DC8[];
|
||||
extern Dialog gUnk_08109DC8[];
|
||||
extern u16 gUnk_0810A35A[];
|
||||
extern u16 gUnk_0810A362[];
|
||||
|
||||
@@ -165,141 +163,125 @@ void sub_080601D4(Entity* this) {
|
||||
TextboxNoOverlap(gUnk_0810A354[uVar2], this);
|
||||
}
|
||||
|
||||
void sub_08060208(Entity *this)
|
||||
{
|
||||
ShowNPCDialogue(this, &gUnk_08109DC8[this->entityType.parameter * 0x8]);
|
||||
void sub_08060208(Entity* this) {
|
||||
ShowNPCDialogue(this, &gUnk_08109DC8[this->entityType.parameter * 0x4]);
|
||||
}
|
||||
|
||||
void sub_0806021C(Entity *this)
|
||||
{
|
||||
u32 uVar1;
|
||||
u32 uVar2;
|
||||
void sub_0806021C(Entity* this) {
|
||||
u32 uVar1;
|
||||
u32 uVar2;
|
||||
|
||||
//jabber nut
|
||||
uVar1 = GetInventoryValue(0x5B);
|
||||
uVar2 = (-uVar1 | uVar1) >> 0x1f;
|
||||
// jabber nut
|
||||
uVar1 = GetInventoryValue(0x5B);
|
||||
uVar2 = (-uVar1 | uVar1) >> 0x1f;
|
||||
|
||||
//earth element
|
||||
if (GetInventoryValue(0x40)) {
|
||||
uVar2 = 2;
|
||||
}
|
||||
|
||||
//mole mitts
|
||||
if (GetInventoryValue(0x13)) {
|
||||
uVar2 = 3;
|
||||
}
|
||||
ShowNPCDialogue(this, gUnk_08109DC8 + this->entityType.parameter * 0x8 + uVar2 * 2);
|
||||
}
|
||||
|
||||
void sub_0806025C(Entity *this)
|
||||
{
|
||||
ShowNPCDialogue(this, &gUnk_08109DC8[this->entityType.parameter * 0x8]);
|
||||
}
|
||||
|
||||
void sub_08060270(Entity *this)
|
||||
{
|
||||
u32 index;
|
||||
|
||||
//flippers
|
||||
if (GetInventoryValue(0x46) == 0) {
|
||||
index = 1;
|
||||
if (CheckGlobalFlag(MIZUKAKI_START) == 0) {
|
||||
index = 0;
|
||||
SetGlobalFlag(MIZUKAKI_START);
|
||||
// earth element
|
||||
if (GetInventoryValue(0x40)) {
|
||||
uVar2 = 2;
|
||||
}
|
||||
}
|
||||
else {
|
||||
index = 3;
|
||||
if (CheckLocalFlag(0x76) == 0) {
|
||||
index = 2;
|
||||
SetLocalFlag(0x76);
|
||||
|
||||
// mole mitts
|
||||
if (GetInventoryValue(0x13)) {
|
||||
uVar2 = 3;
|
||||
}
|
||||
}
|
||||
TextboxNoOverlap(gUnk_0810A35A[index], this);
|
||||
ShowNPCDialogue(this, gUnk_08109DC8 + this->entityType.parameter * 0x4 + uVar2);
|
||||
}
|
||||
|
||||
void sub_080602BC(Entity *this)
|
||||
{
|
||||
u32 index;
|
||||
|
||||
//spin attack
|
||||
void sub_0806025C(Entity* this) {
|
||||
ShowNPCDialogue(this, &gUnk_08109DC8[this->entityType.parameter * 0x4]);
|
||||
}
|
||||
|
||||
void sub_08060270(Entity* this) {
|
||||
u32 index;
|
||||
|
||||
// flippers
|
||||
if (GetInventoryValue(0x46) == 0) {
|
||||
index = 1;
|
||||
if (CheckGlobalFlag(MIZUKAKI_START) == 0) {
|
||||
index = 0;
|
||||
SetGlobalFlag(MIZUKAKI_START);
|
||||
}
|
||||
} else {
|
||||
index = 3;
|
||||
if (CheckLocalFlag(0x76) == 0) {
|
||||
index = 2;
|
||||
SetLocalFlag(0x76);
|
||||
}
|
||||
}
|
||||
TextboxNoOverlap(gUnk_0810A35A[index], this);
|
||||
}
|
||||
|
||||
void sub_080602BC(Entity* this) {
|
||||
u32 index;
|
||||
|
||||
// spin attack
|
||||
if (GetInventoryValue(0x48) != 0) {
|
||||
index = (Random() & 1) + 2;
|
||||
index = (Random() & 1) + 2;
|
||||
} else {
|
||||
if (gUnk_02002A40.stats.bombCount < gBombBagSizes[gUnk_02002A40.stats.bombBagType]) {
|
||||
index = 1;
|
||||
} else {
|
||||
index = 0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (gUnk_02002A40.stats.bombCount < gBombBagSizes[gUnk_02002A40.stats.bombBagType]) {
|
||||
index = 1;
|
||||
}
|
||||
else {
|
||||
index = 0;
|
||||
}
|
||||
}
|
||||
TextboxNoOverlap(gUnk_0810A362[index], this);
|
||||
TextboxNoOverlap(gUnk_0810A362[index], this);
|
||||
}
|
||||
|
||||
void sub_0806030C(Entity* this, u32 *arg1)
|
||||
{
|
||||
void sub_0806030C(Entity* this, u32* arg1) {
|
||||
ModBombs(*(arg1 + 1));
|
||||
}
|
||||
|
||||
void sub_08060318(void)
|
||||
{
|
||||
Entity *ent;
|
||||
int i;
|
||||
|
||||
for (i = 2; i >= 0; i--) {
|
||||
ent = FindEntityInListBySubtype(8, 2, 2);
|
||||
if (ent != NULL) {
|
||||
sub_080A29BC(ent);
|
||||
DeleteEntity(ent);
|
||||
void sub_08060318(void) {
|
||||
Entity* ent;
|
||||
int i;
|
||||
|
||||
for (i = 2; i >= 0; i--) {
|
||||
ent = FindEntityInListBySubtype(8, 2, 2);
|
||||
if (ent != NULL) {
|
||||
sub_080A29BC(ent);
|
||||
DeleteEntity(ent);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08060340(void)
|
||||
{
|
||||
gUnk_02002A40.unk490 = gUnk_02002A40.unk50;
|
||||
void sub_08060340(void) {
|
||||
gUnk_02002A40.unk490 = gUnk_02002A40.unk50;
|
||||
}
|
||||
|
||||
u32 sub_08060354(void)
|
||||
{
|
||||
u32 iVar1;
|
||||
s32 iVar2;
|
||||
|
||||
iVar2 = gUnk_02002A40.unk50 - gUnk_02002A40.unk490;
|
||||
if (CheckGlobalFlag(DRUG_1) == 0) {
|
||||
if (4 < iVar2) {
|
||||
return 0x8444;
|
||||
u32 sub_08060354(void) {
|
||||
u32 iVar1;
|
||||
s32 iVar2;
|
||||
|
||||
iVar2 = gUnk_02002A40.unk50 - gUnk_02002A40.unk490;
|
||||
if (CheckGlobalFlag(DRUG_1) == 0) {
|
||||
if (4 < iVar2) {
|
||||
return 0x8444;
|
||||
}
|
||||
} else {
|
||||
if (CheckGlobalFlag(DRUG_2) == 0) {
|
||||
if (iVar2 > 9) {
|
||||
return 0x8444;
|
||||
}
|
||||
} else {
|
||||
if (CheckGlobalFlag(DRUG_3) == 0) {
|
||||
if (iVar2 > 14) {
|
||||
return 0x8444;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (CheckGlobalFlag(DRUG_2) == 0) {
|
||||
if (iVar2 > 9) {
|
||||
return 0x8444;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (CheckGlobalFlag(DRUG_3) == 0) {
|
||||
if (iVar2 > 14) {
|
||||
return 0x8444;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ForestMinish_Fusion(Entity *this)
|
||||
{
|
||||
if (this->action == 0) {
|
||||
if (LoadExtraSpriteData(this, &gUnk_0810A348)) {
|
||||
this->action++;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
sub_0805E3A0(this, 2);
|
||||
InitializeAnimation(this, 6);
|
||||
void ForestMinish_Fusion(Entity* this) {
|
||||
if (this->action == 0) {
|
||||
if (LoadExtraSpriteData(this, &gUnk_0810A348)) {
|
||||
this->action++;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
sub_0805E3A0(this, 2);
|
||||
InitializeAnimation(this, 6);
|
||||
}
|
||||
} else {
|
||||
GetNextFrame(this);
|
||||
}
|
||||
}
|
||||
else {
|
||||
GetNextFrame(this);
|
||||
}
|
||||
}
|
||||
+6
-5
@@ -3,9 +3,10 @@
|
||||
#include "functions.h"
|
||||
#include "textbox.h"
|
||||
|
||||
extern u8 gUnk_02033280[];
|
||||
extern void (*gUnk_08111A80[])(Entity*);
|
||||
extern void (*gUnk_08111A8C[])(Entity*);
|
||||
extern u8 gUnk_02033280[];
|
||||
extern Dialog gUnk_08111A94[];
|
||||
|
||||
void Goron(Entity* this) {
|
||||
if (this->flags & 2) {
|
||||
@@ -72,7 +73,7 @@ void sub_080693D0(Entity* this) {
|
||||
}
|
||||
if (this->frames.all == 2) {
|
||||
this->frames.all = 0;
|
||||
sub_08069428(this, 0x80<<12, createFx65);
|
||||
sub_08069428(this, 0x80 << 12, createFx65);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -110,16 +111,16 @@ void sub_080694B0(Entity* this) {
|
||||
}
|
||||
}
|
||||
|
||||
extern u64 gUnk_08111A94[]; //array of unknown 64 bit structure type
|
||||
void sub_080694D8(Entity* this) {
|
||||
ShowNPCDialogue(this, (u32*)&gUnk_08111A94[this->entityType.form]);
|
||||
ShowNPCDialogue(this, &gUnk_08111A94[this->entityType.form]);
|
||||
}
|
||||
|
||||
void sub_080694EC(Entity* this) {
|
||||
u32 anim;
|
||||
this->animationState = 4;
|
||||
anim = 2;
|
||||
if (!CheckKinstoneFused(47)) anim = 8;
|
||||
if (!CheckKinstoneFused(47))
|
||||
anim = 8;
|
||||
InitAnimationForceUpdate(this, anim);
|
||||
this->field_0x80.HWORD = anim;
|
||||
}
|
||||
|
||||
+8
-20
@@ -84,24 +84,12 @@ void sub_0806b2b4(Entity* this) {
|
||||
TextboxNoOverlap(gUnk_08112D50[index], this);
|
||||
}
|
||||
|
||||
void Librari_Fusion(Entity *this)
|
||||
{
|
||||
if (this->action == 0) {
|
||||
this->action++;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
InitAnimationForceUpdate(this, 9);
|
||||
}
|
||||
else {
|
||||
UpdateAnimationSingleFrame(this);
|
||||
}
|
||||
void Librari_Fusion(Entity* this) {
|
||||
if (this->action == 0) {
|
||||
this->action++;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
InitAnimationForceUpdate(this, 9);
|
||||
} else {
|
||||
UpdateAnimationSingleFrame(this);
|
||||
}
|
||||
}
|
||||
|
||||
void Percy_Head(Entity *this) // ???
|
||||
{
|
||||
SetExtraSpriteFrame(this, 0, (this->frameSpriteSettings & 0x3f) + 0x13);
|
||||
SetExtraSpriteFrame(this, 1, (this->frames.all & 0x7f) + 0xb);
|
||||
SetExtraSpriteFrame(this, 2, this->frameIndex);
|
||||
SetSpriteSubEntryOffsetData1(this, 2, 1);
|
||||
SetSpriteSubEntryOffsetData2(this, 2, 0);
|
||||
sub_0807000C(this);
|
||||
}
|
||||
+39
-48
@@ -7,33 +7,30 @@
|
||||
#include "textbox.h"
|
||||
#include "npc.h"
|
||||
#include "structures.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern void sub_0807DD50(Entity*);
|
||||
extern u32 sub_0806F5A4(u32);
|
||||
extern void sub_0806F118(Entity*);
|
||||
extern u32 sub_0801E99C();
|
||||
extern void sub_08078784(Entity*,u32);
|
||||
extern void sub_0807DDAC(Entity*,u32);
|
||||
extern void sub_0805E3A0(Entity*,u32);
|
||||
extern void sub_08078784(Entity*, u32);
|
||||
extern void sub_0807DDAC(Entity*, u32);
|
||||
extern void sub_0807DDE4(Entity*);
|
||||
extern void sub_08078850();
|
||||
extern u32 gUnk_08113F44;
|
||||
extern u32 gUnk_08113F48;
|
||||
extern Dialog gUnk_08113F48[];
|
||||
extern u32 GetInventoryValue(u32);
|
||||
extern u32 CheckLocalFlag(u32);
|
||||
extern void SetLocalFlag();
|
||||
extern void ShowNPCDialogue();
|
||||
|
||||
void MayorHagen(Entity *this)
|
||||
{
|
||||
void MayorHagen(Entity* this) {
|
||||
u32 v;
|
||||
switch (this->action) {
|
||||
case 0:
|
||||
this->action = 1;
|
||||
this->field_0x68.HALF.HI = 0;
|
||||
this->field_0x68.HALF.LO = sub_0801E99C(this);
|
||||
sub_0805E3A0(this, 2);
|
||||
sub_0807DD50(this);
|
||||
this->action = 1;
|
||||
this->field_0x68.HALF.HI = 0;
|
||||
this->field_0x68.HALF.LO = sub_0801E99C(this);
|
||||
sub_0805E3A0(this, 2);
|
||||
sub_0807DD50(this);
|
||||
break;
|
||||
case 1:
|
||||
v = this->interactType;
|
||||
@@ -41,11 +38,11 @@ void MayorHagen(Entity *this)
|
||||
this->action = v;
|
||||
this->interactType = 0;
|
||||
this->field_0x68.HALF.HI = this->animIndex;
|
||||
InitAnimationForceUpdate(this,4 + sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity)));
|
||||
InitAnimationForceUpdate(this, 4 + sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity)));
|
||||
sub_0806F118(this);
|
||||
break;
|
||||
}
|
||||
sub_0807DDAC(this,0);
|
||||
sub_0807DDAC(this, 0);
|
||||
sub_0807DDE4(this);
|
||||
UpdateAnimationSingleFrame(this);
|
||||
break;
|
||||
@@ -57,49 +54,43 @@ void MayorHagen(Entity *this)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806CE5C(Entity *this)
|
||||
{
|
||||
sub_08078784(this,sub_0801E99C());
|
||||
sub_08078850(this,1,0,&gUnk_08113F44);
|
||||
void sub_0806CE5C(Entity* this) {
|
||||
sub_08078784(this, sub_0801E99C(this));
|
||||
sub_08078850(this, 1, 0, &gUnk_08113F44);
|
||||
}
|
||||
|
||||
void sub_0806CE80(Entity *this)
|
||||
{
|
||||
void sub_0806CE80(Entity* this) {
|
||||
u32 v;
|
||||
u32 v2;
|
||||
v = gUnk_02002A40.unk8;
|
||||
if (v == 5) {
|
||||
//flippers
|
||||
if (GetInventoryValue(0x46) == 0) {
|
||||
if (CheckLocalFlag(0x70) != 0) {
|
||||
v2 = CheckLocalFlag(0x71);
|
||||
if (v2 == 0) {
|
||||
v = 0xb;
|
||||
SetLocalFlag(0x71);
|
||||
}
|
||||
else {
|
||||
v = 0xc;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (v == 5) {
|
||||
// flippers
|
||||
if (GetInventoryValue(0x46) == 0) {
|
||||
if (CheckLocalFlag(0x70) != 0) {
|
||||
v2 = CheckLocalFlag(0x71);
|
||||
if (v2 == 0) {
|
||||
v = 0xb;
|
||||
SetLocalFlag(0x71);
|
||||
} else {
|
||||
v = 0xc;
|
||||
}
|
||||
} else {
|
||||
v = 0xa;
|
||||
}
|
||||
}
|
||||
else {
|
||||
v2 = CheckLocalFlag(0x89);
|
||||
if (v2 == 0) {
|
||||
v = 0xd;
|
||||
SetLocalFlag(0x89);
|
||||
}
|
||||
else {
|
||||
v = 0xe;
|
||||
}
|
||||
} else {
|
||||
v2 = CheckLocalFlag(0x89);
|
||||
if (v2 == 0) {
|
||||
v = 0xd;
|
||||
SetLocalFlag(0x89);
|
||||
} else {
|
||||
v = 0xe;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ShowNPCDialogue(this,&gUnk_08113F48 + 2*v);
|
||||
ShowNPCDialogue(this, &gUnk_08113F48[v]);
|
||||
}
|
||||
|
||||
void MayorHagen_Fusion(Entity *this) {
|
||||
void MayorHagen_Fusion(Entity* this) {
|
||||
if (this->action == 0) {
|
||||
this->action++;
|
||||
this->spriteSettings.b.draw = 1;
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
#include "textbox.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern void sub_0806ED78(Entity*);
|
||||
extern void sub_08068780(Entity*);
|
||||
extern void sub_08078778(Entity*);
|
||||
extern u32 Random(void);
|
||||
|
||||
+42
-49
@@ -5,8 +5,8 @@
|
||||
#include "textbox.h"
|
||||
#include "npc.h"
|
||||
#include "structures.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern void sub_0805E3A0(Entity*, u32);
|
||||
extern void sub_0807DD50(Entity*);
|
||||
extern u32 GetFacingDirection(Entity*, Entity*);
|
||||
extern u32 sub_0806F5A4(u32);
|
||||
@@ -19,10 +19,9 @@ extern void sub_08078784(Entity*, u32);
|
||||
|
||||
extern SpriteLoadData gUnk_08110C00;
|
||||
extern u16 gUnk_08110C0C[];
|
||||
extern u32 gUnk_08110C10[];
|
||||
extern Dialog gUnk_08110C10[];
|
||||
|
||||
void Mutoh(Entity* this)
|
||||
{
|
||||
void Mutoh(Entity* this) {
|
||||
if (*(u32*)&this->cutsceneBeh == 0) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
@@ -30,11 +29,11 @@ void Mutoh(Entity* this)
|
||||
switch (this->action) {
|
||||
case 0:
|
||||
if (LoadExtraSpriteData(this, &gUnk_08110C00)) {
|
||||
this->action = 1;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
sub_0805E3A0(this, 2);
|
||||
sub_0807DD50(this);
|
||||
}
|
||||
this->action = 1;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
sub_0805E3A0(this, 2);
|
||||
sub_0807DD50(this);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (this->interactType == 2) {
|
||||
@@ -53,48 +52,42 @@ void Mutoh(Entity* this)
|
||||
}
|
||||
}
|
||||
|
||||
void Mutoh_Head(Entity *this)
|
||||
{
|
||||
SetExtraSpriteFrame(this, 0, (this->frames.all & -0x81));
|
||||
SetExtraSpriteFrame(this, 1, this->frameIndex);
|
||||
SetSpriteSubEntryOffsetData1(this,1,0);
|
||||
sub_0807000C(this);
|
||||
void Mutoh_Head(Entity* this) {
|
||||
SetExtraSpriteFrame(this, 0, (this->frames.all & -0x81));
|
||||
SetExtraSpriteFrame(this, 1, this->frameIndex);
|
||||
SetSpriteSubEntryOffsetData1(this, 1, 0);
|
||||
sub_0807000C(this);
|
||||
}
|
||||
|
||||
void sub_080670B4(Entity *this)
|
||||
{
|
||||
u32 uVar1;
|
||||
u32 uVar2;
|
||||
|
||||
uVar2 = 0;
|
||||
if (GetInventoryValue(0x11) == 0) {
|
||||
uVar1 = CheckGlobalFlag(TABIDACHI);
|
||||
uVar2 = (-uVar1 | uVar1) >> 0x1f;
|
||||
}
|
||||
TextboxNoOverlap(gUnk_08110C0C[uVar2],this);
|
||||
}
|
||||
void sub_080670B4(Entity* this) {
|
||||
u32 uVar1;
|
||||
u32 uVar2;
|
||||
|
||||
void sub_080670E4(Entity *this)
|
||||
{
|
||||
ShowNPCDialogue(this, &gUnk_08110C10[gUnk_02002A40.unk8 * 2]);
|
||||
}
|
||||
|
||||
void sub_08067100(Entity *this)
|
||||
{
|
||||
this->field_0x68.HALF.LO = sub_0801E99C(this);
|
||||
sub_08078784(this, this->field_0x68.HALF.LO);
|
||||
}
|
||||
|
||||
void Mutoh_Fusion(Entity *this)
|
||||
{
|
||||
if (this->action == 0) {
|
||||
if (LoadExtraSpriteData(this, &gUnk_08110C00) != 0) {
|
||||
this->action++;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
InitializeAnimation(this, 2);
|
||||
uVar2 = 0;
|
||||
if (GetInventoryValue(0x11) == 0) {
|
||||
uVar1 = CheckGlobalFlag(TABIDACHI);
|
||||
uVar2 = (-uVar1 | uVar1) >> 0x1f;
|
||||
}
|
||||
TextboxNoOverlap(gUnk_08110C0C[uVar2], this);
|
||||
}
|
||||
|
||||
void sub_080670E4(Entity* this) {
|
||||
ShowNPCDialogue(this, &gUnk_08110C10[gUnk_02002A40.unk8]);
|
||||
}
|
||||
|
||||
void sub_08067100(Entity* this) {
|
||||
this->field_0x68.HALF.LO = sub_0801E99C(this);
|
||||
sub_08078784(this, this->field_0x68.HALF.LO);
|
||||
}
|
||||
|
||||
void Mutoh_Fusion(Entity* this) {
|
||||
if (this->action == 0) {
|
||||
if (LoadExtraSpriteData(this, &gUnk_08110C00) != 0) {
|
||||
this->action++;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
InitializeAnimation(this, 2);
|
||||
}
|
||||
} else {
|
||||
GetNextFrame(this);
|
||||
}
|
||||
}
|
||||
else {
|
||||
GetNextFrame(this);
|
||||
}
|
||||
}
|
||||
+87
-16
@@ -3,12 +3,28 @@
|
||||
#include "npc.h"
|
||||
#include "textbox.h"
|
||||
#include "functions.h"
|
||||
#include "flags.h"
|
||||
|
||||
extern void sub_0806B41C(Entity*);
|
||||
void sub_0806B3CC(Entity*);
|
||||
extern void sub_0806B3CC(Entity*);
|
||||
|
||||
extern u32 sub_08002632(Entity*);
|
||||
extern void sub_0801DFB4(Entity*, u32, u32, u32);
|
||||
|
||||
extern u16* gUnk_08001A7C[40];
|
||||
extern u16 gUnk_08112E54[4];
|
||||
extern Dialog gUnk_08112E2C[5];
|
||||
extern SpriteLoadData gUnk_08112E1C;
|
||||
|
||||
void Percy_Head(Entity* this) {
|
||||
SetExtraSpriteFrame(this, 0, (this->frameSpriteSettings & 0x3f) + 0x13);
|
||||
SetExtraSpriteFrame(this, 1, (this->frames.all & 0x7f) + 0xb);
|
||||
SetExtraSpriteFrame(this, 2, this->frameIndex);
|
||||
SetSpriteSubEntryOffsetData1(this, 2, 1);
|
||||
SetSpriteSubEntryOffsetData2(this, 2, 0);
|
||||
sub_0807000C(this);
|
||||
}
|
||||
|
||||
void Percy(Entity* this) {
|
||||
if ((this->flags & 2) != 0) {
|
||||
sub_0806B41C(this);
|
||||
@@ -17,20 +33,75 @@ void Percy(Entity* this) {
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806B3CC(Entity *this)
|
||||
{
|
||||
if (this->action == 0) {
|
||||
if (!LoadExtraSpriteData(this, &gUnk_08112E1C)) {
|
||||
return;
|
||||
void sub_0806B3CC(Entity* this) {
|
||||
if (this->action == 0) {
|
||||
if (!LoadExtraSpriteData(this, &gUnk_08112E1C)) {
|
||||
return;
|
||||
}
|
||||
this->action = 1;
|
||||
InitializeAnimation(this, 0);
|
||||
sub_08078778(this);
|
||||
}
|
||||
this->action = 1;
|
||||
InitializeAnimation(this, 0);
|
||||
sub_08078778(this);
|
||||
}
|
||||
GetNextFrame(this);
|
||||
if (this->interactType != 0) {
|
||||
this->interactType = 0;
|
||||
TextboxNoOverlapFollow(0);
|
||||
}
|
||||
sub_0806ED78(this);
|
||||
GetNextFrame(this);
|
||||
if (this->interactType != 0) {
|
||||
this->interactType = 0;
|
||||
TextboxNoOverlapFollow(0);
|
||||
}
|
||||
sub_0806ED78(this);
|
||||
}
|
||||
|
||||
void sub_0806B41C(Entity* this) {
|
||||
u16* tmp;
|
||||
u32 idx;
|
||||
|
||||
switch (this->action) {
|
||||
case 0:
|
||||
if (LoadExtraSpriteData(this, &gUnk_08112E1C)) {
|
||||
this->action = 1;
|
||||
this->spriteSettings.b.draw = 1;
|
||||
if (this->entityType.parameter == 2) {
|
||||
CreateFx(this, 0x25, 0);
|
||||
}
|
||||
sub_0807DD50(this);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (this->interactType == 2) {
|
||||
this->action = 2;
|
||||
this->interactType = 0;
|
||||
InitializeAnimation(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity)) + 4);
|
||||
idx = sub_08002632(this);
|
||||
tmp = gUnk_08001A7C[idx];
|
||||
if (this->field_0x68.HALF.LO == 33)
|
||||
tmp += 3;
|
||||
sub_0801DFB4(this, tmp[0], tmp[1], tmp[2]);
|
||||
gPlayerState.field_0x8b = 3;
|
||||
} else {
|
||||
sub_0807DD94(this, 0);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (UpdateFuseInteraction(this)) {
|
||||
this->action = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806B4F0(Entity* this) {
|
||||
ShowNPCDialogue(this, &gUnk_08112E2C[this->entityType.parameter]);
|
||||
}
|
||||
|
||||
void sub_0806B504(Entity* this) {
|
||||
int idx;
|
||||
|
||||
idx = 1;
|
||||
if (CheckKinstoneFused(0x21)) {
|
||||
idx = 3;
|
||||
} else if (!CheckLocalFlag(0x86)) {
|
||||
idx = 0;
|
||||
SetLocalFlag(0x86);
|
||||
}
|
||||
|
||||
TextboxNoOverlap(gUnk_08112E54[idx], this);
|
||||
}
|
||||
|
||||
+6
-7
@@ -18,7 +18,6 @@ extern void sub_0806EE04(Entity*, void*, u32);
|
||||
extern void sub_080604DC(Entity*);
|
||||
extern s32 sub_0806ED9C(Entity*, u32, u32);
|
||||
extern void sub_0806EE20(Entity*);
|
||||
extern void sub_0806ED78(Entity*);
|
||||
extern u32 sub_080040A8(Entity*);
|
||||
extern u32 sub_0801E99C(Entity*);
|
||||
extern void sub_0807DD50(Entity*);
|
||||
@@ -43,7 +42,7 @@ extern Coords16 gUnk_0810A66C[];
|
||||
extern s8* gUnk_0810A918[];
|
||||
|
||||
extern void (*const gUnk_0810AA24[])(Entity*);
|
||||
extern u32 gUnk_0810AA30[];
|
||||
extern Dialog gUnk_0810AA30[];
|
||||
extern struct_02033280 gUnk_02033280;
|
||||
|
||||
void Postman(Entity* this) {
|
||||
@@ -205,13 +204,13 @@ void sub_080606C0(Entity *this)
|
||||
|
||||
void sub_080606D8(Entity* this)
|
||||
{
|
||||
s32 iVar1;
|
||||
s32 index;
|
||||
|
||||
iVar1 = gUnk_02002A40.unk8 - 2;
|
||||
if (iVar1 < 0) {
|
||||
iVar1 = 0;
|
||||
index = gUnk_02002A40.unk8 - 2;
|
||||
if (index < 0) {
|
||||
index = 0;
|
||||
}
|
||||
ShowNPCDialogue(this, &gUnk_0810AA30[iVar1 * 2]);
|
||||
ShowNPCDialogue(this, &gUnk_0810AA30[index]);
|
||||
}
|
||||
|
||||
void sub_08060700(Entity *entity, u32 arg1)
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
|
||||
extern void sub_0807DDAC(Entity*, u32);
|
||||
extern void sub_0807DDE4(Entity*);
|
||||
extern void sub_0806ED78(Entity*);
|
||||
extern void PlaySFX(u32);
|
||||
extern void sub_0806A8C8(Entity*);
|
||||
extern void sub_0807DD94(Entity*, u32);
|
||||
|
||||
+137
-168
@@ -1,30 +1,22 @@
|
||||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "textbox.h"
|
||||
|
||||
typedef struct {
|
||||
u8 filler[8];
|
||||
u8 unk;
|
||||
} SaveFile;
|
||||
#include "functions.h"
|
||||
|
||||
extern u32 GetFacingDirection(Entity*, Entity*);
|
||||
extern u32 sub_0806F5A4(u32);
|
||||
extern void sub_0806F118(Entity*);
|
||||
extern void sub_0806ED78(Entity*);
|
||||
extern Entity* CreateFx(Entity*, u32, u32);
|
||||
extern void PlaySFX(u32);
|
||||
extern u32 Random(void);
|
||||
extern void sub_0807000C(Entity*);
|
||||
extern u32 sub_0801E99C(Entity*);
|
||||
extern u32 sub_0806ED9C(Entity*, u32, u32);
|
||||
extern u32 sub_0806F078(Entity*, u32);
|
||||
extern void sub_0807DD50(Entity*);
|
||||
extern void sub_0807DD94(Entity*, u32);
|
||||
extern void sub_0807DDAC(Entity*, u32);
|
||||
extern void sub_0807DDE4(Entity*);
|
||||
extern u32 UpdateFuseInteraction(Entity*);
|
||||
extern u32 GetAnimationState(Entity*);
|
||||
extern void ShowNPCDialogue(Entity*, u32*);
|
||||
extern void sub_08078850(u32, u32, u32, u32*);
|
||||
extern void sub_08078784(Entity*, u32);
|
||||
|
||||
@@ -33,193 +25,170 @@ extern void (*const gUnk_0811036C[])(Entity*);
|
||||
|
||||
extern u16 gUnk_08110380[];
|
||||
extern SpriteLoadData gUnk_08110354;
|
||||
extern SaveFile gUnk_02002A40;
|
||||
extern u32 gUnk_08110390[];
|
||||
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;
|
||||
|
||||
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);
|
||||
sub_0806F118(this);
|
||||
#if NON_MATCHING // reg-alloc
|
||||
void Smith(Entity* this) {
|
||||
u32 iVar2;
|
||||
u32 iVar4;
|
||||
|
||||
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);
|
||||
sub_0806F118(this);
|
||||
}
|
||||
gUnk_0811036C[this->action](this);
|
||||
} else {
|
||||
gUnk_08110360[this->action](this);
|
||||
sub_0806ED78(this);
|
||||
}
|
||||
if (this->animIndex == 0xc) {
|
||||
this->spritePriority.b1 = 0;
|
||||
} else {
|
||||
this->spritePriority.b1 = 1;
|
||||
}
|
||||
if ((this->frames.all & 1) != 0) {
|
||||
this->frames.all &= 0xfe;
|
||||
CreateFx(this, 0x3d, 0x20);
|
||||
PlaySFX(gUnk_08110380[(Random() & 7)]);
|
||||
}
|
||||
gUnk_0811036C[this->action](this);
|
||||
}
|
||||
else {
|
||||
gUnk_08110360[this->action](this);
|
||||
sub_0806ED78(this);
|
||||
}
|
||||
if (this->animIndex == 0xc) {
|
||||
this->spritePriority.b1 = 0;
|
||||
}
|
||||
else {
|
||||
this->spritePriority.b1 = 1;
|
||||
}
|
||||
if ((this->frames.all & 1) != 0) {
|
||||
this->frames.all &= 0xfe;
|
||||
CreateFx(this, 0x3d, 0x20);
|
||||
PlaySFX(gUnk_08110380[(Random() & 7)]);
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
void Smith(Entity *this) {
|
||||
void Smith(Entity* this) {
|
||||
asm(".include \"asm/non_matching/smith/smith.inc\"");
|
||||
}
|
||||
#endif
|
||||
|
||||
void Smith_Head(Entity *this)
|
||||
{
|
||||
u8 bVar1;
|
||||
|
||||
bVar1 = this->frames.all;
|
||||
SetExtraSpriteFrame(this, 0, this->frameIndex);
|
||||
if ((bVar1 & 0x40) != 0) {
|
||||
SetExtraSpriteFrame(this, 1, 0x16);
|
||||
}
|
||||
else {
|
||||
SetExtraSpriteFrame(this, 1, 0xff);
|
||||
}
|
||||
SetSpriteSubEntryOffsetData1(this,0,1);
|
||||
sub_0807000C(this);
|
||||
void Smith_Head(Entity* this) {
|
||||
u8 bVar1;
|
||||
|
||||
bVar1 = this->frames.all;
|
||||
SetExtraSpriteFrame(this, 0, this->frameIndex);
|
||||
if ((bVar1 & 0x40) != 0) {
|
||||
SetExtraSpriteFrame(this, 1, 0x16);
|
||||
} else {
|
||||
SetExtraSpriteFrame(this, 1, 0xff);
|
||||
}
|
||||
SetSpriteSubEntryOffsetData1(this, 0, 1);
|
||||
sub_0807000C(this);
|
||||
}
|
||||
|
||||
void sub_080660EC(Entity *this)
|
||||
{
|
||||
void sub_080660EC(Entity* this) {
|
||||
if (LoadExtraSpriteData(this, &gUnk_08110354) != 0) {
|
||||
this->action = 1;
|
||||
this->field_0x68.HALF.LO = sub_0801E99C(this);
|
||||
InitAnimationForceUpdate(this, 2);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08066118(Entity *this)
|
||||
{
|
||||
s32 uVar1;
|
||||
u32 iVar2;
|
||||
|
||||
uVar1 = sub_0806ED9C(this, 0x28, 0x28);
|
||||
if (uVar1 < 0) {
|
||||
uVar1 = 2;
|
||||
}
|
||||
else {
|
||||
if (this->field_0xf == 0) {
|
||||
this->field_0xf = 0x10;
|
||||
this->action = 1;
|
||||
this->field_0x68.HALF.LO = sub_0801E99C(this);
|
||||
InitAnimationForceUpdate(this, 2);
|
||||
}
|
||||
else {
|
||||
--this->field_0xf;
|
||||
uVar1 = this->animIndex;
|
||||
}
|
||||
|
||||
void sub_08066118(Entity* this) {
|
||||
s32 uVar1;
|
||||
u32 iVar2;
|
||||
|
||||
uVar1 = sub_0806ED9C(this, 0x28, 0x28);
|
||||
if (uVar1 < 0) {
|
||||
uVar1 = 2;
|
||||
} else {
|
||||
if (this->field_0xf == 0) {
|
||||
this->field_0xf = 0x10;
|
||||
} else {
|
||||
--this->field_0xf;
|
||||
uVar1 = this->animIndex;
|
||||
}
|
||||
}
|
||||
if (sub_0806F078(this, uVar1) == 0) {
|
||||
UpdateAnimationSingleFrame(this);
|
||||
}
|
||||
if (this->interactType != 0) {
|
||||
this->action = 2;
|
||||
TextboxNoOverlapFollow(0);
|
||||
}
|
||||
}
|
||||
if (sub_0806F078(this, uVar1) == 0) {
|
||||
UpdateAnimationSingleFrame(this);
|
||||
}
|
||||
if (this->interactType != 0) {
|
||||
this->action = 2;
|
||||
TextboxNoOverlapFollow(0);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08066170(Entity *this)
|
||||
{
|
||||
void sub_08066170(Entity* this) {
|
||||
this->action = 1;
|
||||
}
|
||||
|
||||
void sub_08066178(Entity *this)
|
||||
{
|
||||
if (LoadExtraSpriteData(this, &gUnk_08110354) != 0) {
|
||||
this->action = 1;
|
||||
this->spriteSettings.b.draw = 1;
|
||||
this->field_0x68.HALF.LO = sub_0801E99C(this);
|
||||
sub_0807DD50(this);
|
||||
}
|
||||
void sub_08066178(Entity* this) {
|
||||
if (LoadExtraSpriteData(this, &gUnk_08110354) != 0) {
|
||||
this->action = 1;
|
||||
this->spriteSettings.b.draw = 1;
|
||||
this->field_0x68.HALF.LO = sub_0801E99C(this);
|
||||
sub_0807DD50(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_080661B0(Entity *this)
|
||||
{
|
||||
void sub_080661B0(Entity* this) {
|
||||
sub_0807DD94(this, 0);
|
||||
}
|
||||
|
||||
void sub_080661BC(Entity *this)
|
||||
{
|
||||
u32 sVar1;
|
||||
|
||||
if (this->animIndex == 0xc) {
|
||||
UpdateAnimationSingleFrame(this);
|
||||
if ((this->frames.b.f3) != 0) {
|
||||
this->field_0x80.HWORD = GetAnimationState(this) + 8;
|
||||
InitAnimationForceUpdate(this, this->field_0x80.HWORD);
|
||||
void sub_080661BC(Entity* this) {
|
||||
u32 sVar1;
|
||||
|
||||
if (this->animIndex == 0xc) {
|
||||
UpdateAnimationSingleFrame(this);
|
||||
if ((this->frames.b.f3) != 0) {
|
||||
this->field_0x80.HWORD = GetAnimationState(this) + 8;
|
||||
InitAnimationForceUpdate(this, this->field_0x80.HWORD);
|
||||
}
|
||||
} else {
|
||||
sub_0807DD94(this, 0);
|
||||
}
|
||||
}
|
||||
else {
|
||||
sub_0807DD94(this,0);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08066200(Entity *this)
|
||||
{
|
||||
sub_0807DDAC(this, 0);
|
||||
sub_0807DDE4(this);
|
||||
UpdateAnimationSingleFrame(this);
|
||||
}
|
||||
|
||||
void sub_08066218(Entity *this)
|
||||
{
|
||||
if (UpdateFuseInteraction(this) != 0) {
|
||||
this->action = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806622C(Entity *this)
|
||||
{
|
||||
u32 iVar1;
|
||||
|
||||
if (gUnk_02002A40.unk - 2 < 0) {
|
||||
iVar1 = 0;
|
||||
}
|
||||
else {
|
||||
iVar1 = gUnk_02002A40.unk - 2;
|
||||
}
|
||||
ShowNPCDialogue(this, &gUnk_08110390[iVar1 * 2]);
|
||||
}
|
||||
|
||||
void nullsub_501(Entity* this) {}
|
||||
|
||||
void sub_08066258(void)
|
||||
{
|
||||
PlaySFX(gUnk_081103D0[Random() & 7]);
|
||||
}
|
||||
|
||||
void sub_08066274(u32 arg0)
|
||||
{
|
||||
sub_08078850(arg0, 1, 0, &gUnk_081103E0);
|
||||
}
|
||||
|
||||
void sub_08066288(Entity *arg0)
|
||||
{
|
||||
sub_08078784(arg0, arg0->field_0x68.HALF.LO);
|
||||
}
|
||||
|
||||
void Smith_Fusion(Entity *this)
|
||||
{
|
||||
if (this->action == 0) {
|
||||
if (LoadExtraSpriteData(this, &gUnk_08110354) != 0) {
|
||||
this->action++;
|
||||
this->spriteSettings.b.draw = 1;
|
||||
InitAnimationForceUpdate(this, 6);
|
||||
}
|
||||
}
|
||||
else {
|
||||
void sub_08066200(Entity* this) {
|
||||
sub_0807DDAC(this, 0);
|
||||
sub_0807DDE4(this);
|
||||
UpdateAnimationSingleFrame(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08066218(Entity* this) {
|
||||
if (UpdateFuseInteraction(this) != 0) {
|
||||
this->action = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806622C(Entity* this) {
|
||||
u32 index;
|
||||
|
||||
if (gUnk_02002A40.unk8 - 2 < 0) {
|
||||
index = 0;
|
||||
} else {
|
||||
index = gUnk_02002A40.unk8 - 2;
|
||||
}
|
||||
ShowNPCDialogue(this, &gUnk_08110390[index]);
|
||||
}
|
||||
|
||||
void nullsub_501(Entity* this) {
|
||||
}
|
||||
|
||||
void sub_08066258(void) {
|
||||
PlaySFX(gUnk_081103D0[Random() & 7]);
|
||||
}
|
||||
|
||||
void sub_08066274(u32 arg0) {
|
||||
sub_08078850(arg0, 1, 0, &gUnk_081103E0);
|
||||
}
|
||||
|
||||
void sub_08066288(Entity* arg0) {
|
||||
sub_08078784(arg0, arg0->field_0x68.HALF.LO);
|
||||
}
|
||||
|
||||
void Smith_Fusion(Entity* this) {
|
||||
if (this->action == 0) {
|
||||
if (LoadExtraSpriteData(this, &gUnk_08110354) != 0) {
|
||||
this->action++;
|
||||
this->spriteSettings.b.draw = 1;
|
||||
InitAnimationForceUpdate(this, 6);
|
||||
}
|
||||
} else {
|
||||
UpdateAnimationSingleFrame(this);
|
||||
}
|
||||
}
|
||||
+3
-6
@@ -1,24 +1,21 @@
|
||||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "textbox.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern void sub_08078778(Entity*);
|
||||
extern void sub_0805E47C(Entity*);
|
||||
extern void sub_0806ED78(Entity*);
|
||||
extern void sub_0805E584();
|
||||
extern void sub_0807DD64();
|
||||
extern void sub_08062CA4();
|
||||
extern void sub_0807DDAC();
|
||||
extern void sub_0807DDE4();
|
||||
extern u32 CheckKinstoneFused();
|
||||
extern void ShowNPCDialogue();
|
||||
|
||||
extern void (*gStampBehaviors1[4])(Entity*);
|
||||
extern void (*gStampBehaviors2[2])(Entity*);
|
||||
|
||||
extern u32 gUnk_0810C2E4;
|
||||
|
||||
|
||||
extern Dialog gUnk_0810C2E4[2];
|
||||
|
||||
void Stamp(Entity* ent) {
|
||||
if ((ent->flags & 2) != 0) {
|
||||
@@ -80,7 +77,7 @@ void sub_08062CBC(Entity* ent) {
|
||||
u32 uVar1;
|
||||
|
||||
uVar1 = CheckKinstoneFused(44);
|
||||
ShowNPCDialogue(ent, &gUnk_0810C2E4 + ((-uVar1 | uVar1) >> 31) * 2);
|
||||
ShowNPCDialogue(ent, &gUnk_0810C2E4[(-uVar1 | uVar1) >> 31]);
|
||||
}
|
||||
|
||||
void sub_08062CE0(Entity* ent) {
|
||||
|
||||
+45
-60
@@ -1,27 +1,19 @@
|
||||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "player.h"
|
||||
|
||||
typedef struct {
|
||||
u8 filler[8];
|
||||
u8 unk;
|
||||
} SaveFile;
|
||||
#include "functions.h"
|
||||
|
||||
extern SpriteLoadData gUnk_08113910[];
|
||||
extern void sub_0805E3A0(Entity*, u32);
|
||||
extern void sub_0807DD50(Entity*);
|
||||
extern u32 GetFacingDirection(Entity*, Entity*);
|
||||
extern u32 sub_0806F5A4(u32);
|
||||
extern void sub_0806F118(Entity*);
|
||||
extern void sub_0807DD94(Entity*, u32);
|
||||
extern u32 sub_0801E99C();
|
||||
extern void sub_08078784(Entity*, u32);
|
||||
extern u32 UpdateFuseInteraction(Entity*);
|
||||
extern void sub_0807000C(Entity*);
|
||||
extern void ShowNPCDialogue(Entity*, u16*);
|
||||
|
||||
extern SaveFile gUnk_02002A40;
|
||||
extern u16 gUnk_08113930[];
|
||||
extern Dialog gUnk_08113930[];
|
||||
|
||||
void Teachers(Entity* this) {
|
||||
switch (this->action) {
|
||||
@@ -55,59 +47,52 @@ void Teachers(Entity* this) {
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806C674(Entity *this)
|
||||
{
|
||||
this->field_0x68.HALF.LO = sub_0801E99C();
|
||||
void sub_0806C674(Entity* this) {
|
||||
this->field_0x68.HALF.LO = sub_0801E99C(this);
|
||||
sub_08078784(this, this->field_0x68.HALF.LO);
|
||||
}
|
||||
|
||||
void Teachers_Head(Entity *this)
|
||||
{
|
||||
u8 bVar1;
|
||||
u8 bVar2;
|
||||
u32 uVar3;
|
||||
void Teachers_Head(Entity* this) {
|
||||
u8 bVar1;
|
||||
u8 bVar2;
|
||||
u32 uVar3;
|
||||
|
||||
|
||||
uVar3 = this->frames.all & -0x81;
|
||||
bVar1 = this->frameIndex;
|
||||
bVar2 = this->frameSpriteSettings & 0x3f;
|
||||
if ((this->entityType).form == 0) {
|
||||
SetExtraSpriteFrame(this,0, (uVar3 + 3));
|
||||
SetExtraSpriteFrame(this,1, bVar1);
|
||||
SetSpriteSubEntryOffsetData1(this, 1, 0);
|
||||
sub_0807000C(this);
|
||||
}
|
||||
else {
|
||||
SetExtraSpriteFrame(this, 0, (uVar3 + 6));
|
||||
SetExtraSpriteFrame(this, 1, ((bVar2) + 3));
|
||||
SetExtraSpriteFrame(this, 2, bVar1);
|
||||
SetSpriteSubEntryOffsetData1(this, 2, 1);
|
||||
SetSpriteSubEntryOffsetData2(this, 2, 0);
|
||||
sub_0807000C(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806C70C(Entity *this)
|
||||
{
|
||||
int offset;
|
||||
|
||||
offset = gUnk_02002A40.unk - 2;
|
||||
if (offset < 0) {
|
||||
offset = 0;
|
||||
}
|
||||
ShowNPCDialogue(this, gUnk_08113930 + this->entityType.form * 0x20 + offset * 4);
|
||||
}
|
||||
|
||||
void Teachers_Fusion(Entity *this)
|
||||
{
|
||||
if (this->action == 0) {
|
||||
if (LoadExtraSpriteData(this, &gUnk_08113910[this->entityType.form * 4])) {
|
||||
this->action++;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
InitializeAnimation(this, 2);
|
||||
uVar3 = this->frames.all & -0x81;
|
||||
bVar1 = this->frameIndex;
|
||||
bVar2 = this->frameSpriteSettings & 0x3f;
|
||||
if ((this->entityType).form == 0) {
|
||||
SetExtraSpriteFrame(this, 0, (uVar3 + 3));
|
||||
SetExtraSpriteFrame(this, 1, bVar1);
|
||||
SetSpriteSubEntryOffsetData1(this, 1, 0);
|
||||
sub_0807000C(this);
|
||||
} else {
|
||||
SetExtraSpriteFrame(this, 0, (uVar3 + 6));
|
||||
SetExtraSpriteFrame(this, 1, ((bVar2) + 3));
|
||||
SetExtraSpriteFrame(this, 2, bVar1);
|
||||
SetSpriteSubEntryOffsetData1(this, 2, 1);
|
||||
SetSpriteSubEntryOffsetData2(this, 2, 0);
|
||||
sub_0807000C(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806C70C(Entity* this) {
|
||||
int offset;
|
||||
|
||||
offset = gUnk_02002A40.unk8 - 2;
|
||||
if (offset < 0)
|
||||
offset = 0;
|
||||
|
||||
ShowNPCDialogue(this, gUnk_08113930 + this->entityType.form * 8 + offset);
|
||||
}
|
||||
|
||||
void Teachers_Fusion(Entity* this) {
|
||||
if (this->action == 0) {
|
||||
if (LoadExtraSpriteData(this, &gUnk_08113910[this->entityType.form * 4])) {
|
||||
this->action++;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
InitializeAnimation(this, 2);
|
||||
}
|
||||
} else {
|
||||
GetNextFrame(this);
|
||||
}
|
||||
}
|
||||
else {
|
||||
GetNextFrame(this);
|
||||
}
|
||||
}
|
||||
+308
-43
@@ -1,35 +1,49 @@
|
||||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "npc.h"
|
||||
#include "functions.h"
|
||||
#include "textbox.h"
|
||||
#include "flags.h"
|
||||
|
||||
extern void InitializeAnimation(Entity *, u32);
|
||||
extern void InitializeAnimation(Entity*, u32);
|
||||
extern u32 LoadExtraSpriteData(Entity*, SpriteLoadData*);
|
||||
|
||||
extern void sub_0806ED78(Entity *);
|
||||
extern u32 sub_080002C0();
|
||||
extern void sub_0806ACC4(Entity*);
|
||||
extern void sub_0806AEA8();
|
||||
extern void sub_0806AEE4(Entity*);
|
||||
extern void sub_0806AFE8(Entity*, s32*);
|
||||
extern s32 sub_0806EDD8(Entity*, u32, u32);
|
||||
extern u32 sub_0806F5B0(u32);
|
||||
extern void sub_0806F62C(Entity*, s32, s32);
|
||||
extern void sub_08078784(Entity*, u32);
|
||||
extern void sub_08078850(Entity*, u32, u32, u32*);
|
||||
|
||||
extern void (*gUnk_081126E8[])();
|
||||
extern void sub_0806ACC4(Entity *);
|
||||
|
||||
extern u32 LoadExtraSpriteData(Entity *, SpriteLoadData *);
|
||||
extern u8 gUnk_081125F4[12];
|
||||
extern SpriteLoadData gUnk_08112674[];
|
||||
extern u32 gUnk_081126D4[4];
|
||||
extern u8 gUnk_081126E4[4];
|
||||
extern void (*gUnk_081126E8[])();
|
||||
extern Dialog gUnk_081126F0[0x10];
|
||||
extern void (*gUnk_08112BF0[])(Entity*, s32*);
|
||||
extern u16 gUnk_08112C40[5];
|
||||
extern u16 gUnk_08112C4A[3];
|
||||
extern u16 gUnk_08112C50[6];
|
||||
extern u16 gUnk_08112C5C[2];
|
||||
extern u16 gUnk_08112C60[4];
|
||||
|
||||
void TownMinish(Entity *this)
|
||||
{
|
||||
void TownMinish(Entity* this) {
|
||||
if ((this->flags & 2) == 0) {
|
||||
(*gUnk_081126E8[this->action])(this);
|
||||
gUnk_081126E8[this->action](this);
|
||||
sub_0806ED78(this);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
sub_0806ACC4(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806ABFC(Entity *this)
|
||||
{
|
||||
u8 animationState;
|
||||
|
||||
SpriteLoadData* SpriteLoadData = &gUnk_08112674[this->entityType.form << 2];
|
||||
if (!LoadExtraSpriteData(this, SpriteLoadData))
|
||||
{
|
||||
void sub_0806ABFC(Entity* this) {
|
||||
SpriteLoadData* SpriteLoadData = &gUnk_08112674[this->entityType.form * 4];
|
||||
if (!LoadExtraSpriteData(this, SpriteLoadData)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -38,47 +52,298 @@ void sub_0806ABFC(Entity *this)
|
||||
this->field_0x6a.HALF.LO = this->actionDelay;
|
||||
|
||||
this->animationState = this->field_0x6a.HALF.LO << 1;
|
||||
animationState = this->animationState;
|
||||
this->field_0x68.HALF.HI = animationState << 2;
|
||||
this->field_0x68.HALF.HI = this->animationState * 4;
|
||||
|
||||
this->actionDelay = 0;
|
||||
}
|
||||
|
||||
// Not matching yet, not 100% sure it's functionally identical
|
||||
/*void sub_0806AC3C(Entity *this) {
|
||||
if (this->field_0x58 <= 3) {
|
||||
void sub_0806AC3C(Entity* this) {
|
||||
if (this->animIndex <= 3) {
|
||||
s32 unk;
|
||||
u8 field_0x68;
|
||||
|
||||
Entity *link = &gPlayerEntity;
|
||||
Entity* link = &gPlayerEntity;
|
||||
if (sub_080041A0(this, link, 0x18, 0x18)) {
|
||||
unk = GetFacingDirection(this, link) & (u8)0x1e;
|
||||
}
|
||||
else {
|
||||
unk = this->animationState << 2;
|
||||
unk = GetFacingDirection(this, link) & 0x1e;
|
||||
} else {
|
||||
unk = this->animationState * 4;
|
||||
}
|
||||
|
||||
field_0x68.HALF.HI = this->field_0x68.HALF.HI;
|
||||
|
||||
if (unk != field_0x68.HALF.HI) {
|
||||
if (unk != this->field_0x68.HALF.HI) {
|
||||
s32 temp;
|
||||
|
||||
if (((unk - field_0x68.HALF.HI) & 0x1f) <= 0xf) {
|
||||
field_0x68.HALF.HI--;
|
||||
}
|
||||
else {
|
||||
field_0x68.HALF.HI++;
|
||||
if (((unk - this->field_0x68.HALF.HI) & 0x1f) <= 0xf) {
|
||||
this->field_0x68.HALF.HI--;
|
||||
} else {
|
||||
this->field_0x68.HALF.HI++;
|
||||
}
|
||||
|
||||
temp = field_0x68.HALF.HI;
|
||||
this->field_0x68.HALF.HI = temp & 0x1f;
|
||||
this->field_0x68.HALF.HI &= 0x1f;
|
||||
}
|
||||
|
||||
if (!(this->field_0x68.HALF.HI & 7)) {
|
||||
this->animationState = sub_0806F5B0(this->field_0x68.HALF.HI);
|
||||
UpdateSprite(this, (this->animationState >> 1) ^ 2);
|
||||
InitializeAnimation(this, (this->animationState / 2) ^ 2);
|
||||
}
|
||||
}
|
||||
|
||||
sub_080042B8(this);
|
||||
}*/
|
||||
UpdateAnimationSingleFrame(this);
|
||||
}
|
||||
|
||||
void sub_0806ACC4(Entity* this) {
|
||||
u8 delay;
|
||||
switch (this->action) {
|
||||
case 0:
|
||||
if (LoadExtraSpriteData(this, &gUnk_08112674[this->entityType.form * 4]) == 0)
|
||||
return;
|
||||
|
||||
this->action = 1;
|
||||
delay = this->actionDelay;
|
||||
this->field_0x6a.HALF.LO = delay;
|
||||
this->animationState = delay * 2;
|
||||
this->actionDelay = 0;
|
||||
|
||||
this->field_0x68.HALF.LO = sub_0801E99C(this);
|
||||
sub_0807DD50(this);
|
||||
InitializeAnimation(this, (this->animationState / 2) + 8);
|
||||
break;
|
||||
case 1:
|
||||
if (this->interactType == 2) {
|
||||
this->action = 3;
|
||||
this->interactType = 0;
|
||||
sub_0806F118(this);
|
||||
} else {
|
||||
sub_0807DDAC(this, 0);
|
||||
sub_0806AEA8(this);
|
||||
if (this->entityType.parameter == 10 && this->interactType) {
|
||||
this->action = 2;
|
||||
this->interactType = 0;
|
||||
InitializeAnimation(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity)) + 8);
|
||||
sub_0806AFE8(this, *(s32**)&this->cutsceneBeh);
|
||||
}
|
||||
if (this->entityType.form == 1) {
|
||||
u8 idx = gPlayerEntity.animationState >> 1;
|
||||
sub_08078850(this, 1, gUnk_081126E4[idx], &gUnk_081126D4[idx]);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (gTextBox.doTextBox & 0x7f)
|
||||
break;
|
||||
|
||||
this->action = 1;
|
||||
InitializeAnimation(this, this->animationState / 2 + 4);
|
||||
break;
|
||||
case 3:
|
||||
if (UpdateFuseInteraction(this))
|
||||
this->action = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
if (this->frameDuration != 0xff) {
|
||||
GetNextFrame(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806ADFC(Entity* this) {
|
||||
sub_08078784(this, this->field_0x68.HALF.LO);
|
||||
}
|
||||
|
||||
void TownMinish_Head(Entity* this) {
|
||||
u32 frames;
|
||||
|
||||
if ((this->flags & 2) == 0) {
|
||||
frames = this->field_0x68.HALF.HI / 2;
|
||||
if ((this->frameSpriteSettings & 1)) {
|
||||
SetExtraSpriteFrame(this, 0, frames + 0x1c);
|
||||
} else {
|
||||
SetExtraSpriteFrame(this, 0, 0xff);
|
||||
}
|
||||
SetExtraSpriteFrame(this, 1, this->frameIndex);
|
||||
SetSpriteSubEntryOffsetData1(this, 1, 0);
|
||||
sub_0807000C(this);
|
||||
} else {
|
||||
frames = this->frames.all;
|
||||
if (frames != 0xff) {
|
||||
frames &= ~0x80;
|
||||
}
|
||||
if ((this->frameSpriteSettings & 1) == 0) {
|
||||
frames = 0xff;
|
||||
}
|
||||
SetExtraSpriteFrame(this, 0, frames);
|
||||
SetExtraSpriteFrame(this, 1, this->frameIndex);
|
||||
SetSpriteSubEntryOffsetData1(this, 1, 0);
|
||||
sub_0807000C(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806AEA8(Entity* this) {
|
||||
int old = this->field_0x82.HWORD;
|
||||
this->field_0x82.HWORD &= ~0x20;
|
||||
if (old & 0x20) {
|
||||
sub_08003FC4(this, 0x4000);
|
||||
}
|
||||
sub_0807DDE4(this);
|
||||
this->field_0x82.HWORD = old;
|
||||
}
|
||||
|
||||
void sub_0806AED8(Entity* this) {
|
||||
this->actionDelay = 0;
|
||||
sub_0806AEE4(this);
|
||||
}
|
||||
|
||||
void sub_0806AEE4(Entity* this) {
|
||||
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_0x6a.HALF.LO;
|
||||
this->animationState = state * 2;
|
||||
index = state * 8;
|
||||
}
|
||||
|
||||
idx3 = gUnk_081125F4 + (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 = 0xff;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806AF60(Entity* this, int* idx) {
|
||||
InitializeAnimation(this, idx[1] + (this->animationState / 2));
|
||||
}
|
||||
|
||||
void sub_0806AF70(Entity* this, u32 arg1) {
|
||||
this->field_0x20 = 0x24000;
|
||||
}
|
||||
|
||||
void sub_0806AF78(Entity* this, u32 arg1) {
|
||||
sub_08003FC4(this, 0x1800);
|
||||
if (0 <= this->height.WORD && this->field_0x20 < 1) {
|
||||
this->height.WORD = 0;
|
||||
sub_0806AF70(this, arg1);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806AFA0(Entity* this) {
|
||||
if (sub_0806ED78(this)) {
|
||||
sub_0806F62C(this, -this->nonPlanarMovement, this->direction);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806AFBC(Entity* this) {
|
||||
int idx = gUnk_02002A40.unk8 - 2;
|
||||
if (idx < 0)
|
||||
idx = 0;
|
||||
|
||||
ShowNPCDialogue(this, gUnk_081126F0 + this->entityType.parameter * 8 + idx);
|
||||
}
|
||||
|
||||
void sub_0806AFE8(Entity* this, s32* unk) {
|
||||
unk[5] = 0;
|
||||
gUnk_08112BF0[this->entityType.parameter](this, unk);
|
||||
}
|
||||
|
||||
void sub_0806B004(Entity* this, int* unk) {
|
||||
int idx = 0;
|
||||
|
||||
if (CheckGlobalFlag(0x29)) {
|
||||
if (CheckLocalFlag(0x73)) {
|
||||
if (GetInventoryValue(0x46) == 0) {
|
||||
idx = 3;
|
||||
if (CheckLocalFlag(0x78) == 0) {
|
||||
idx = 2;
|
||||
unk[5] = 1;
|
||||
SetLocalFlag(0x78);
|
||||
}
|
||||
} else {
|
||||
idx = 4;
|
||||
}
|
||||
} else {
|
||||
idx = 1;
|
||||
SetLocalFlag(0x6a);
|
||||
}
|
||||
}
|
||||
TextboxNoOverlap(gUnk_08112C40[idx], this);
|
||||
}
|
||||
|
||||
void sub_0806B064(Entity* this) {
|
||||
int idx = 0;
|
||||
|
||||
if (CheckGlobalFlag(0x29)) {
|
||||
idx = 1;
|
||||
if (CheckLocalFlag(0x73)) {
|
||||
idx = 2;
|
||||
}
|
||||
}
|
||||
TextboxNoOverlap(gUnk_08112C4A[idx], this);
|
||||
}
|
||||
|
||||
void sub_0806B098(Entity* this) {
|
||||
u32 f;
|
||||
int idx = 2;
|
||||
|
||||
if (GetInventoryValue(0x46) == 0) {
|
||||
idx = 1;
|
||||
if (CheckGlobalFlag(0x29)) {
|
||||
f = CheckGlobalFlag(0x2a);
|
||||
idx = (-f | f) >> 0x1f;
|
||||
}
|
||||
}
|
||||
TextboxNoOverlap(gUnk_08112C50[(this->entityType.parameter - 7) * 3 + idx], this);
|
||||
}
|
||||
|
||||
void sub_0806B0E0(Entity* this) {
|
||||
int idx = 0;
|
||||
|
||||
if (sub_080002C0(0x38, 0xb8, 1) == 0x57 && sub_080002C0(0x48, 0xb8, 1) == 0x57 &&
|
||||
sub_080002C0(0x38, 200, 1) == 0x57 && sub_080002C0(0x48, 200, 1) == 0x57) {
|
||||
idx = 1;
|
||||
}
|
||||
|
||||
TextboxNoOverlap(gUnk_08112C5C[idx], this);
|
||||
}
|
||||
|
||||
void sub_0806B134(Entity* this) {
|
||||
int idx;
|
||||
|
||||
if (GetInventoryValue(0x45)) {
|
||||
idx = 2;
|
||||
if (CheckLocalFlag(0x7b) == 0) {
|
||||
idx = 1;
|
||||
SetLocalFlag(0x7b);
|
||||
}
|
||||
} else {
|
||||
idx = 0;
|
||||
SetGlobalFlag(0x4a);
|
||||
}
|
||||
if (5 < gUnk_02002A40.unk8) {
|
||||
idx = 3;
|
||||
}
|
||||
TextboxNoOverlap(gUnk_08112C60[idx], this);
|
||||
}
|
||||
|
||||
void TownMinish_Fusion(Entity* this) {
|
||||
if (this->action == 0) {
|
||||
if (LoadExtraSpriteData(this, &gUnk_08112674[this->entityType.form * 4])) {
|
||||
this->action++;
|
||||
this->spriteSettings.b.draw = 1;
|
||||
InitializeAnimation(this, 6);
|
||||
}
|
||||
} else {
|
||||
GetNextFrame(this);
|
||||
}
|
||||
}
|
||||
|
||||
+21
-26
@@ -5,6 +5,7 @@
|
||||
#include "textbox.h"
|
||||
#include "flags.h"
|
||||
#include "structures.h"
|
||||
#include "functions.h"
|
||||
|
||||
typedef struct {
|
||||
u8 frame1;
|
||||
@@ -21,8 +22,6 @@ typedef struct {
|
||||
extern void (*const gUnk_0810B774[])(Entity*);
|
||||
extern void (*const gUnk_0810B77C[])(Entity*);
|
||||
extern void sub_08061CB4(Entity*, u32);
|
||||
extern u32 sub_0806ED9C(Entity*, u32, u32);
|
||||
extern void sub_0806ED78(Entity*);
|
||||
extern u32 sub_0805ACC0(Entity*);
|
||||
extern u32 sub_0801E99C(Entity*);
|
||||
extern void sub_0807DD64(Entity*);
|
||||
@@ -36,7 +35,6 @@ extern void sub_08062048(Entity*);
|
||||
extern void sub_08078784(Entity*, u32);
|
||||
extern void sub_08078778(Entity*);
|
||||
extern u32 sub_0806F5B0(u32);
|
||||
extern void sub_080AEF88(Entity*);
|
||||
extern u32 Random(void);
|
||||
extern void ResolveEntityOnTop(Entity*, Entity*);
|
||||
extern void sub_08078850(Entity*, u32, u8, u32*);
|
||||
@@ -50,7 +48,7 @@ extern u8 gUnk_0810B748[];
|
||||
extern u32 gUnk_0810B740[];
|
||||
extern u16 gUnk_0810B790[];
|
||||
extern u16 gUnk_0810B7BA[];
|
||||
extern u32 gUnk_0810B7C0[];
|
||||
extern Dialog gUnk_0810B7C0[];
|
||||
|
||||
void Townsperson(Entity* this) {
|
||||
if ((this->flags & 2) != 0) {
|
||||
@@ -296,30 +294,27 @@ void sub_0806200C(Entity* this) {
|
||||
TextboxNoOverlap(gUnk_0810B7BA[index], this);
|
||||
}
|
||||
|
||||
void sub_08062048(Entity *this)
|
||||
{
|
||||
int iVar1;
|
||||
|
||||
if ((this->entityType).subtype == 6) {
|
||||
iVar1 = gUnk_02002A40.unk8 - 2;
|
||||
if (iVar1 < 0) {
|
||||
iVar1 = 0;
|
||||
void sub_08062048(Entity* this) {
|
||||
int iVar1;
|
||||
|
||||
if ((this->entityType).subtype == 6) {
|
||||
iVar1 = gUnk_02002A40.unk8 - 2;
|
||||
if (iVar1 < 0) {
|
||||
iVar1 = 0;
|
||||
}
|
||||
ShowNPCDialogue(this, gUnk_0810B7C0 + this->entityType.form * 0x8 + iVar1);
|
||||
} else {
|
||||
TextboxNoOverlap(0, this);
|
||||
}
|
||||
ShowNPCDialogue(this, gUnk_0810B7C0 + this->entityType.form * 0x10 + iVar1 * 2);
|
||||
}
|
||||
else {
|
||||
TextboxNoOverlap(0, this);
|
||||
}
|
||||
}
|
||||
|
||||
void Townsperson_Fusion(Entity *this)
|
||||
{
|
||||
if (this->action == 0) {
|
||||
if (LoadExtraSpriteData(this, gUnk_0810B6EC[this->entityType.form]) == 0) {
|
||||
return;
|
||||
void Townsperson_Fusion(Entity* this) {
|
||||
if (this->action == 0) {
|
||||
if (LoadExtraSpriteData(this, gUnk_0810B6EC[this->entityType.form]) == 0) {
|
||||
return;
|
||||
}
|
||||
this->action++;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
}
|
||||
this->action++;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
}
|
||||
sub_08061CB4(this, 6);
|
||||
sub_08061CB4(this, 6);
|
||||
}
|
||||
+59
-66
@@ -4,6 +4,7 @@
|
||||
#include "textbox.h"
|
||||
#include "flags.h"
|
||||
#include "structures.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern u32 LoadExtraSpriteData(Entity*, SpriteLoadData*);
|
||||
extern void sub_0807DD50(Entity*);
|
||||
@@ -23,7 +24,7 @@ extern void (*const gUnk_08113A8C[])(Entity*, Entity*);
|
||||
|
||||
extern SpriteLoadData gUnk_08113A1C[];
|
||||
extern u32 gUnk_08014A80;
|
||||
extern u32 gUnk_08113ABC[];
|
||||
extern Dialog gUnk_08113ABC[];
|
||||
extern u16 gUnk_08113B0C[];
|
||||
|
||||
void WindTribespeople(Entity* this) {
|
||||
@@ -74,73 +75,65 @@ void sub_0806C85C(Entity* this) {
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806C870(Entity *this)
|
||||
{
|
||||
u8 bVar1;
|
||||
|
||||
bVar1 = sub_0801E99C();
|
||||
this->field_0x68.HALF.LO = bVar1;
|
||||
sub_08078784(this, this->field_0x68.HALF.LO);
|
||||
void sub_0806C870(Entity* this) {
|
||||
u8 bVar1;
|
||||
|
||||
bVar1 = sub_0801E99C(this);
|
||||
this->field_0x68.HALF.LO = bVar1;
|
||||
sub_08078784(this, this->field_0x68.HALF.LO);
|
||||
}
|
||||
|
||||
void WindTribespeople_Head(Entity *this)
|
||||
{
|
||||
u32 uVar1;
|
||||
u32 uVar2;
|
||||
u8 pbVar3;
|
||||
|
||||
pbVar3 = (this->frames.all & 0x3F);
|
||||
if (this->entityType.form == 4) {
|
||||
SetExtraSpriteFrame(this, 0, 9);
|
||||
SetExtraSpriteFrame(this, 1, pbVar3);
|
||||
SetExtraSpriteFrame(this, 2, this->frameIndex);
|
||||
SetSpriteSubEntryOffsetData2(this, 2, 0);
|
||||
SetSpriteSubEntryOffsetData1(this, 2, 1);
|
||||
sub_0807000C(this);
|
||||
}
|
||||
else {
|
||||
if (this->frames.b.f2 != 0) {
|
||||
uVar2 = 1;
|
||||
uVar1 = 0;
|
||||
void WindTribespeople_Head(Entity* this) {
|
||||
u32 uVar1;
|
||||
u32 uVar2;
|
||||
u8 pbVar3;
|
||||
|
||||
pbVar3 = (this->frames.all & 0x3F);
|
||||
if (this->entityType.form == 4) {
|
||||
SetExtraSpriteFrame(this, 0, 9);
|
||||
SetExtraSpriteFrame(this, 1, pbVar3);
|
||||
SetExtraSpriteFrame(this, 2, this->frameIndex);
|
||||
SetSpriteSubEntryOffsetData2(this, 2, 0);
|
||||
SetSpriteSubEntryOffsetData1(this, 2, 1);
|
||||
sub_0807000C(this);
|
||||
} else {
|
||||
if (this->frames.b.f2 != 0) {
|
||||
uVar2 = 1;
|
||||
uVar1 = 0;
|
||||
} else {
|
||||
uVar2 = 0;
|
||||
uVar1 = 1;
|
||||
}
|
||||
SetExtraSpriteFrame(this, uVar2, pbVar3);
|
||||
SetExtraSpriteFrame(this, uVar1, this->frameIndex);
|
||||
SetSpriteSubEntryOffsetData1(this, uVar1, uVar2);
|
||||
sub_0807000C(this);
|
||||
}
|
||||
else {
|
||||
uVar2 = 0;
|
||||
uVar1 = 1;
|
||||
}
|
||||
|
||||
// body and head entities?
|
||||
void sub_0806C90C(Entity* param_1, Entity* param_2) {
|
||||
*(u32*)¶m_2->animationState = 0;
|
||||
gUnk_08113A8C[param_1->entityType.parameter](param_1, param_2);
|
||||
}
|
||||
|
||||
void sub_0806C928(Entity* this) {
|
||||
ShowNPCDialogue(this, &gUnk_08113ABC[gUnk_02002A40.unk8]);
|
||||
}
|
||||
|
||||
void sub_0806C944(Entity* this) {
|
||||
int iVar1;
|
||||
int iVar2;
|
||||
|
||||
iVar1 = CheckGlobalFlag(WARP_EVENT_END);
|
||||
if (iVar1 == 0) {
|
||||
iVar2 = 0;
|
||||
} else {
|
||||
iVar1 = CheckLocalFlag(0x63);
|
||||
iVar2 = 2;
|
||||
if (iVar1 != 0) {
|
||||
iVar2 = 1;
|
||||
}
|
||||
}
|
||||
SetExtraSpriteFrame(this, uVar2, pbVar3);
|
||||
SetExtraSpriteFrame(this, uVar1, this->frameIndex);
|
||||
SetSpriteSubEntryOffsetData1(this, uVar1, uVar2);
|
||||
sub_0807000C(this);
|
||||
}
|
||||
}
|
||||
|
||||
//body and head entities?
|
||||
void sub_0806C90C(Entity *param_1,Entity *param_2)
|
||||
{
|
||||
*(u32 *)¶m_2->animationState = 0;
|
||||
gUnk_08113A8C[param_1->entityType.parameter](param_1, param_2);
|
||||
}
|
||||
|
||||
void sub_0806C928(Entity *this)
|
||||
{
|
||||
ShowNPCDialogue(this, &gUnk_08113ABC[gUnk_02002A40.unk8 * 2]);
|
||||
}
|
||||
|
||||
void sub_0806C944(Entity *this)
|
||||
{
|
||||
int iVar1;
|
||||
int iVar2;
|
||||
|
||||
iVar1 = CheckGlobalFlag(WARP_EVENT_END);
|
||||
if (iVar1 == 0) {
|
||||
iVar2 = 0;
|
||||
}
|
||||
else {
|
||||
iVar1 = CheckLocalFlag(0x63);
|
||||
iVar2 = 2;
|
||||
if (iVar1 != 0) {
|
||||
iVar2 = 1;
|
||||
}
|
||||
}
|
||||
TextboxNoOverlap(gUnk_08113B0C[iVar2], this);
|
||||
TextboxNoOverlap(gUnk_08113B0C[iVar2], this);
|
||||
}
|
||||
@@ -20,7 +20,7 @@ void sub_0808F658(Entity* this) {
|
||||
this->direction = 8;
|
||||
this->nonPlanarMovement = gUnk_08121EB0[(this->entityType).form];
|
||||
this->field_0x78.HWORD = gRoomControls.roomOriginX - 0x60;
|
||||
this->field_0x7a.HWORD = gRoomControls.roomOriginX + gRoomControls.filler2[3] + 0x60;
|
||||
this->field_0x7a.HWORD = gRoomControls.roomOriginX + gRoomControls.width + 0x60;
|
||||
this->animationState = 0;
|
||||
this->x.HALF.HI += (Random() & 0xf) << 4;
|
||||
this->actionDelay = 0;
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
#include "global.h"
|
||||
#include "entity.h"
|
||||
|
||||
extern void CopyPosition();
|
||||
extern void sub_08086A6C();
|
||||
extern s32 sub_080044EC();
|
||||
extern void sub_080AEF88();
|
||||
extern void DeleteThisEntity();
|
||||
extern u32 Random(void);
|
||||
|
||||
extern void (*gUnk_081206C4[99])(Entity*);
|
||||
|
||||
@@ -7,7 +7,6 @@ extern u32 sub_080041A0(Entity*, Entity*, u32, u32);
|
||||
void sub_08099ECC(Entity*);
|
||||
extern void sub_0805E4E0(Entity*, u32);
|
||||
extern void sub_0805B390(u32);
|
||||
extern void CopyPosition(Entity*, Entity*);
|
||||
|
||||
extern void (*const gUnk_081237F8[])(Entity*);
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
extern BoundingBox gUnk_080FD168;
|
||||
|
||||
extern void SetTile(u32, u32, u32);
|
||||
extern void CopyPosition(Entity*, Entity*);
|
||||
|
||||
void Object9E(Entity *this)
|
||||
{
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
#include "entity.h"
|
||||
|
||||
extern void sub_080A0640(Entity*);
|
||||
extern void PositionRelative(Entity*, Entity*, s32, s32);
|
||||
extern void CopyPosition(Entity*, Entity*);
|
||||
|
||||
extern void (*const gUnk_081248C4[])(Entity*);
|
||||
|
||||
|
||||
@@ -2,9 +2,7 @@
|
||||
#include "entity.h"
|
||||
|
||||
extern u32 Random(void);
|
||||
extern void CopyPosition(Entity*, Entity*);
|
||||
extern void sub_0806F69C(Entity*);
|
||||
extern void DeleteEntity(Entity*);
|
||||
|
||||
extern void (*const gUnk_08121060[])(Entity*);
|
||||
extern void (*const gUnk_08121070[])(Entity*);
|
||||
|
||||
+1
-1
@@ -2057,7 +2057,7 @@ extern EntityData gUnk_080DE4C8;
|
||||
|
||||
void sub_0804CBB0(void) {
|
||||
|
||||
if ((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) < (gRoomControls.filler2[4] >> 1)) {
|
||||
if ((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) < (gRoomControls.height >> 1)) {
|
||||
if (!CheckLocalFlag(0x17)) {
|
||||
LoadRoomEntityList(&gUnk_080DE4C8);
|
||||
}
|
||||
|
||||
+10
-10
@@ -2,28 +2,28 @@
|
||||
#include "entity.h"
|
||||
|
||||
extern void sub_0807C960();
|
||||
extern u32 gUnk_0202CEB4;
|
||||
extern u32 gUnk_02012654;
|
||||
extern u16 gMetatilesBottom[];
|
||||
extern u16 gMetatilesTop[];
|
||||
extern u8 gUnk_08324AE4;
|
||||
|
||||
void sub_0807C960(void* dest, u32 offset)
|
||||
{
|
||||
void* temp;
|
||||
void* src;
|
||||
|
||||
if (offset != -1) {
|
||||
temp = &gUnk_08324AE4 + (offset & 0x7fffffff);
|
||||
src = &gUnk_08324AE4 + (offset & 0x7fffffff);
|
||||
if ((u32)dest >> 0x18 == 6) {
|
||||
LZ77UnCompVram(temp, (void *)dest);
|
||||
LZ77UnCompVram(src, (void *)dest);
|
||||
}
|
||||
else {
|
||||
LZ77UnCompWram(temp, (void *)dest);
|
||||
LZ77UnCompWram(src, (void *)dest);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0807C998(u32* a1) {
|
||||
sub_0807C960(&gUnk_0202CEB4, a1[0]);
|
||||
sub_0807C960(&gUnk_0202CEB4 - 0x800, a1[1]);
|
||||
sub_0807C960(&gUnk_02012654, a1[2]);
|
||||
sub_0807C960(&gUnk_02012654 - 0x800, a1[3]);
|
||||
sub_0807C960(gMetatilesBottom, a1[0]);
|
||||
sub_0807C960(gMetatilesBottom - 0x1000, a1[1]);
|
||||
sub_0807C960(gMetatilesTop, a1[2]);
|
||||
sub_0807C960(gMetatilesTop - 0x1000, a1[3]);
|
||||
}
|
||||
Reference in New Issue
Block a user