mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-28 20:07:51 -05:00
more work on ground_object
This commit is contained in:
@@ -5,978 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start GroundObject_Add
|
||||
GroundObject_Add:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x14
|
||||
mov r8, r1
|
||||
lsls r0, 16
|
||||
asrs r7, r0, 16
|
||||
lsls r2, 16
|
||||
asrs r2, 16
|
||||
mov r10, r2
|
||||
lsls r3, 24
|
||||
asrs r3, 24
|
||||
mov r9, r3
|
||||
ldrb r4, [r1]
|
||||
cmp r4, 0x1A
|
||||
bne _080ABDDA
|
||||
movs r0, 0
|
||||
movs r1, 0x28
|
||||
bl GetScriptVarValue
|
||||
cmp r0, 0x1
|
||||
bgt _080ABDBC
|
||||
movs r4, 0x1B
|
||||
b _080ABDDA
|
||||
_080ABDBC:
|
||||
movs r0, 0
|
||||
movs r1, 0x29
|
||||
bl GetScriptVarValue
|
||||
cmp r0, 0
|
||||
bne _080ABDD4
|
||||
movs r0, 0
|
||||
movs r1, 0x27
|
||||
bl GetScriptVarValue
|
||||
adds r0, 0x1C
|
||||
b _080ABDD6
|
||||
_080ABDD4:
|
||||
adds r0, 0x2B
|
||||
_080ABDD6:
|
||||
lsls r0, 16
|
||||
asrs r4, r0, 16
|
||||
_080ABDDA:
|
||||
lsls r1, r4, 2
|
||||
ldr r0, _080ABE10
|
||||
adds r6, r1, r0
|
||||
cmp r7, 0
|
||||
bge _080ABE40
|
||||
cmp r4, 0xE
|
||||
bgt _080ABDF4
|
||||
cmp r4, 0xD
|
||||
blt _080ABDF4
|
||||
adds r0, r4, 0
|
||||
bl sub_80ABD48
|
||||
adds r7, r0, 0
|
||||
_080ABDF4:
|
||||
cmp r7, 0
|
||||
bge _080ABE40
|
||||
movs r3, 0
|
||||
ldr r0, _080ABE14
|
||||
ldr r5, [r0]
|
||||
movs r0, 0x6
|
||||
ldrsh r1, [r5, r0]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
bne _080ABE18
|
||||
movs r7, 0
|
||||
b _080ABE40
|
||||
.align 2, 0
|
||||
_080ABE10: .4byte gGroundObjectTypes
|
||||
_080ABE14: .4byte gGroundObjects
|
||||
_080ABE18:
|
||||
adds r0, r3, 0x1
|
||||
lsls r0, 16
|
||||
asrs r3, r0, 16
|
||||
movs r1, 0xE2
|
||||
lsls r1, 1
|
||||
adds r5, r1
|
||||
cmp r3, 0xF
|
||||
bgt _080ABE36
|
||||
movs r2, 0x6
|
||||
ldrsh r1, [r5, r2]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
bne _080ABE18
|
||||
adds r7, r3, 0
|
||||
_080ABE36:
|
||||
cmp r7, 0
|
||||
bge _080ABE40
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
b _080AC142
|
||||
_080ABE40:
|
||||
ldr r1, _080ABEA8
|
||||
lsls r0, r7, 3
|
||||
subs r0, r7
|
||||
lsls r0, 4
|
||||
adds r0, r7
|
||||
lsls r0, 2
|
||||
ldr r1, [r1]
|
||||
adds r5, r1, r0
|
||||
ldr r1, _080ABEAC
|
||||
mov r3, r8
|
||||
ldrb r0, [r3]
|
||||
str r0, [sp]
|
||||
movs r2, 0
|
||||
ldrsh r0, [r6, r2]
|
||||
str r0, [sp, 0x4]
|
||||
mov r3, r10
|
||||
str r3, [sp, 0x8]
|
||||
mov r0, r9
|
||||
str r0, [sp, 0xC]
|
||||
movs r0, 0
|
||||
adds r2, r7, 0
|
||||
adds r3, r4, 0
|
||||
bl Log
|
||||
movs r2, 0
|
||||
movs r3, 0x6
|
||||
ldrsh r1, [r5, r3]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
bne _080ABE80
|
||||
movs r2, 0x1
|
||||
_080ABE80:
|
||||
str r2, [sp, 0x10]
|
||||
strh r7, [r5, 0x4]
|
||||
strh r4, [r5, 0x6]
|
||||
mov r0, r10
|
||||
strh r0, [r5, 0x8]
|
||||
mov r1, r9
|
||||
strb r1, [r5, 0xA]
|
||||
ldrh r0, [r6]
|
||||
subs r0, 0x1
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0xE
|
||||
bls _080ABE9C
|
||||
b _080ABF8C
|
||||
_080ABE9C:
|
||||
lsls r0, 2
|
||||
ldr r1, _080ABEB0
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080ABEA8: .4byte gGroundObjects
|
||||
_080ABEAC: .4byte gUnknown_8118448
|
||||
_080ABEB0: .4byte _080ABEB4
|
||||
.align 2, 0
|
||||
_080ABEB4:
|
||||
.4byte _080ABEF0
|
||||
.4byte _080ABF7C
|
||||
.4byte _080ABF46
|
||||
.4byte _080ABF54
|
||||
.4byte _080ABF54
|
||||
.4byte _080ABF5E
|
||||
.4byte _080ABF68
|
||||
.4byte _080ABF72
|
||||
.4byte _080ABF3C
|
||||
.4byte _080ABEFA
|
||||
.4byte _080ABEF0
|
||||
.4byte _080ABF06
|
||||
.4byte _080ABF2C
|
||||
.4byte _080ABF1E
|
||||
.4byte _080ABF12
|
||||
_080ABEF0:
|
||||
movs r2, 0x8E
|
||||
lsls r2, 1
|
||||
adds r1, r5, r2
|
||||
movs r0, 0
|
||||
b _080ABF94
|
||||
_080ABEFA:
|
||||
movs r3, 0x8E
|
||||
lsls r3, 1
|
||||
adds r1, r5, r3
|
||||
movs r0, 0x80
|
||||
lsls r0, 10
|
||||
b _080ABF94
|
||||
_080ABF06:
|
||||
movs r0, 0x8E
|
||||
lsls r0, 1
|
||||
adds r1, r5, r0
|
||||
movs r0, 0x80
|
||||
lsls r0, 11
|
||||
b _080ABF94
|
||||
_080ABF12:
|
||||
movs r2, 0x8E
|
||||
lsls r2, 1
|
||||
adds r1, r5, r2
|
||||
movs r0, 0x83
|
||||
lsls r0, 18
|
||||
b _080ABF94
|
||||
_080ABF1E:
|
||||
movs r3, 0x8E
|
||||
lsls r3, 1
|
||||
adds r1, r5, r3
|
||||
ldr r0, _080ABF28
|
||||
b _080ABF94
|
||||
.align 2, 0
|
||||
_080ABF28: .4byte 0x220c0000
|
||||
_080ABF2C:
|
||||
movs r0, 0x8E
|
||||
lsls r0, 1
|
||||
adds r1, r5, r0
|
||||
ldr r0, _080ABF38
|
||||
b _080ABF94
|
||||
.align 2, 0
|
||||
_080ABF38: .4byte 0x20010000
|
||||
_080ABF3C:
|
||||
movs r2, 0x8E
|
||||
lsls r2, 1
|
||||
adds r1, r5, r2
|
||||
movs r0, 0x5
|
||||
b _080ABF94
|
||||
_080ABF46:
|
||||
movs r3, 0x8E
|
||||
lsls r3, 1
|
||||
adds r1, r5, r3
|
||||
ldr r0, _080ABF50
|
||||
b _080ABF94
|
||||
.align 2, 0
|
||||
_080ABF50: .4byte 0x22000184
|
||||
_080ABF54:
|
||||
movs r0, 0x8E
|
||||
lsls r0, 1
|
||||
adds r1, r5, r0
|
||||
adds r0, 0x68
|
||||
b _080ABF94
|
||||
_080ABF5E:
|
||||
movs r2, 0x8E
|
||||
lsls r2, 1
|
||||
adds r1, r5, r2
|
||||
movs r0, 0x44
|
||||
b _080ABF94
|
||||
_080ABF68:
|
||||
movs r3, 0x8E
|
||||
lsls r3, 1
|
||||
adds r1, r5, r3
|
||||
movs r0, 0x84
|
||||
b _080ABF94
|
||||
_080ABF72:
|
||||
movs r0, 0x8E
|
||||
lsls r0, 1
|
||||
adds r1, r5, r0
|
||||
adds r0, 0x64
|
||||
b _080ABF94
|
||||
_080ABF7C:
|
||||
movs r2, 0x8E
|
||||
lsls r2, 1
|
||||
adds r1, r5, r2
|
||||
ldr r0, _080ABF88
|
||||
b _080ABF94
|
||||
.align 2, 0
|
||||
_080ABF88: .4byte 0x020000c4
|
||||
_080ABF8C:
|
||||
movs r3, 0x8E
|
||||
lsls r3, 1
|
||||
adds r1, r5, r3
|
||||
ldr r0, _080ABFA8
|
||||
_080ABF94:
|
||||
str r0, [r1]
|
||||
ldrb r0, [r6, 0x2]
|
||||
cmp r0, 0
|
||||
bne _080ABFAC
|
||||
mov r1, r8
|
||||
ldrb r0, [r1, 0x2]
|
||||
lsls r0, 11
|
||||
str r0, [r5, 0xC]
|
||||
ldrb r0, [r1, 0x3]
|
||||
b _080ABFB4
|
||||
.align 2, 0
|
||||
_080ABFA8: .4byte 0x02000185
|
||||
_080ABFAC:
|
||||
ldrb r0, [r6, 0x2]
|
||||
lsls r0, 11
|
||||
str r0, [r5, 0xC]
|
||||
ldrb r0, [r6, 0x3]
|
||||
_080ABFB4:
|
||||
lsls r0, 11
|
||||
str r0, [r5, 0x10]
|
||||
ldr r0, [r5, 0xC]
|
||||
lsrs r1, r0, 31
|
||||
adds r0, r1
|
||||
asrs r0, 1
|
||||
str r0, [r5, 0x14]
|
||||
ldr r0, [r5, 0x10]
|
||||
lsrs r1, r0, 31
|
||||
adds r0, r1
|
||||
asrs r0, 1
|
||||
str r0, [r5, 0x18]
|
||||
mov r2, r8
|
||||
ldrb r0, [r2, 0x1]
|
||||
strb r0, [r5, 0x1C]
|
||||
adds r2, 0x4
|
||||
adds r4, r5, 0
|
||||
adds r4, 0x20
|
||||
ldrb r1, [r2, 0x2]
|
||||
movs r0, 0x4
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _080ABFFC
|
||||
mov r3, r8
|
||||
ldrb r0, [r3, 0x4]
|
||||
lsls r3, r0, 11
|
||||
str r3, [r5, 0x20]
|
||||
ldrb r1, [r2, 0x2]
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080ABFFC
|
||||
movs r1, 0x80
|
||||
lsls r1, 3
|
||||
adds r0, r3, r1
|
||||
str r0, [r5, 0x20]
|
||||
_080ABFFC:
|
||||
ldrb r1, [r2, 0x3]
|
||||
movs r0, 0x4
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _080AC01E
|
||||
ldrb r0, [r2, 0x1]
|
||||
lsls r3, r0, 11
|
||||
str r3, [r4, 0x4]
|
||||
ldrb r1, [r2, 0x3]
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080AC01E
|
||||
movs r2, 0x80
|
||||
lsls r2, 3
|
||||
adds r0, r3, r2
|
||||
str r0, [r4, 0x4]
|
||||
_080AC01E:
|
||||
ldr r3, [sp, 0x10]
|
||||
cmp r3, 0
|
||||
beq _080AC076
|
||||
ldrb r1, [r5, 0x1C]
|
||||
movs r2, 0x90
|
||||
lsls r2, 1
|
||||
adds r0, r5, r2
|
||||
movs r3, 0
|
||||
strb r1, [r0]
|
||||
movs r0, 0x92
|
||||
lsls r0, 1
|
||||
adds r2, r5, r0
|
||||
ldr r0, [r5, 0x20]
|
||||
ldr r1, [r5, 0x14]
|
||||
subs r0, r1
|
||||
str r0, [r2]
|
||||
movs r1, 0x96
|
||||
lsls r1, 1
|
||||
adds r2, r5, r1
|
||||
ldr r0, [r5, 0x20]
|
||||
ldr r1, [r5, 0x14]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
movs r0, 0x94
|
||||
lsls r0, 1
|
||||
adds r2, r5, r0
|
||||
ldr r0, [r5, 0x24]
|
||||
ldr r1, [r5, 0x18]
|
||||
subs r0, r1
|
||||
str r0, [r2]
|
||||
movs r1, 0x98
|
||||
lsls r1, 1
|
||||
adds r2, r5, r1
|
||||
ldr r0, [r5, 0x24]
|
||||
ldr r1, [r5, 0x18]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
movs r2, 0x9A
|
||||
lsls r2, 1
|
||||
adds r1, r5, r2
|
||||
adds r2, 0x4
|
||||
adds r0, r5, r2
|
||||
str r3, [r0]
|
||||
str r3, [r1]
|
||||
_080AC076:
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x28
|
||||
adds r1, r5, 0
|
||||
adds r1, 0x30
|
||||
bl GetCurrentDungeonBounds
|
||||
ldr r3, [sp, 0x10]
|
||||
cmp r3, 0
|
||||
beq _080AC0C0
|
||||
movs r0, 0x9F
|
||||
lsls r0, 1
|
||||
adds r1, r5, r0
|
||||
movs r2, 0
|
||||
movs r0, 0x80
|
||||
lsls r0, 4
|
||||
strh r0, [r1]
|
||||
movs r3, 0x9E
|
||||
lsls r3, 1
|
||||
adds r1, r5, r3
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
movs r1, 0xA0
|
||||
lsls r1, 1
|
||||
adds r0, r5, r1
|
||||
strh r2, [r0]
|
||||
movs r2, 0xA2
|
||||
lsls r2, 1
|
||||
adds r0, r5, r2
|
||||
movs r3, 0x6
|
||||
ldrsh r2, [r5, r3]
|
||||
movs r3, 0x8E
|
||||
lsls r3, 1
|
||||
adds r1, r5, r3
|
||||
ldr r3, [r1]
|
||||
adds r1, r7, 0
|
||||
bl sub_80A75CC
|
||||
_080AC0C0:
|
||||
adds r4, r5, 0
|
||||
adds r4, 0x38
|
||||
ldr r1, _080AC154
|
||||
mov r0, r9
|
||||
str r0, [sp]
|
||||
adds r0, r4, 0
|
||||
adds r2, r5, 0
|
||||
mov r3, r10
|
||||
bl InitActionWithParams
|
||||
adds r6, r4, 0
|
||||
mov r1, r8
|
||||
ldr r2, [r1, 0xC]
|
||||
cmp r2, 0
|
||||
bne _080AC0F2
|
||||
movs r2, 0xA2
|
||||
lsls r2, 1
|
||||
adds r0, r5, r2
|
||||
bl SpriteHasPokemonSize_80A66A4
|
||||
lsls r0, 24
|
||||
ldr r2, _080AC158
|
||||
cmp r0, 0
|
||||
beq _080AC0F2
|
||||
ldr r2, _080AC15C
|
||||
_080AC0F2:
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x1
|
||||
bl SetPredefinedScript
|
||||
adds r1, r4, 0
|
||||
mov r3, r8
|
||||
ldr r2, [r3, 0x10]
|
||||
cmp r2, 0
|
||||
bne _080AC108
|
||||
ldr r0, _080AC160
|
||||
ldr r2, [r0, 0x38]
|
||||
_080AC108:
|
||||
adds r0, r1, 0
|
||||
movs r1, 0x2
|
||||
bl SetPredefinedScript
|
||||
mov r0, r8
|
||||
ldr r2, [r0, 0x14]
|
||||
cmp r2, 0
|
||||
bne _080AC11C
|
||||
ldr r0, _080AC160
|
||||
ldr r2, [r0, 0x68]
|
||||
_080AC11C:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x3
|
||||
bl SetPredefinedScript
|
||||
mov r1, r8
|
||||
ldr r2, [r1, 0x8]
|
||||
cmp r2, 0
|
||||
beq _080AC140
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
bl SetPredefinedScript
|
||||
ldr r3, _080AC164
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
bl ExecutePredefinedScript
|
||||
_080AC140:
|
||||
adds r0, r7, 0
|
||||
_080AC142:
|
||||
add sp, 0x14
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080AC154: .4byte gGroundObjectCallbacks
|
||||
_080AC158: .4byte gUnknown_81182F4
|
||||
_080AC15C: .4byte gUnknown_8118350
|
||||
_080AC160: .4byte gFunctionScriptTable
|
||||
_080AC164: .4byte gUnknown_81184A4
|
||||
thumb_func_end GroundObject_Add
|
||||
|
||||
thumb_func_start GroundObject_Delete
|
||||
GroundObject_Delete:
|
||||
push {r4,lr}
|
||||
adds r2, r0, 0
|
||||
lsls r2, 16
|
||||
asrs r2, 16
|
||||
ldr r1, _080AC1A4
|
||||
lsls r0, r2, 3
|
||||
subs r0, r2
|
||||
lsls r0, 4
|
||||
adds r0, r2
|
||||
lsls r0, 2
|
||||
ldr r1, [r1]
|
||||
adds r4, r1, r0
|
||||
ldr r1, _080AC1A8
|
||||
movs r0, 0
|
||||
bl Log
|
||||
movs r1, 0xA2
|
||||
lsls r1, 1
|
||||
adds r0, r4, r1
|
||||
bl sub_80A7658
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x38
|
||||
bl InitAction2
|
||||
ldr r0, _080AC1AC
|
||||
strh r0, [r4, 0x6]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080AC1A4: .4byte gGroundObjects
|
||||
_080AC1A8: .4byte gUnknown_81184B0
|
||||
_080AC1AC: .4byte 0x0000ffff
|
||||
thumb_func_end GroundObject_Delete
|
||||
|
||||
thumb_func_start sub_80AC1B0
|
||||
sub_80AC1B0:
|
||||
push {lr}
|
||||
adds r3, r1, 0
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
ldr r2, _080AC1F0
|
||||
lsls r1, r0, 3
|
||||
subs r1, r0
|
||||
lsls r1, 4
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
ldr r0, [r2]
|
||||
adds r2, r0, r1
|
||||
movs r0, 0x6
|
||||
ldrsh r1, [r2, r0]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
beq _080AC1EA
|
||||
movs r1, 0x8E
|
||||
lsls r1, 1
|
||||
adds r0, r2, r1
|
||||
ldr r1, [r0]
|
||||
orrs r1, r3
|
||||
str r1, [r0]
|
||||
movs r3, 0xA2
|
||||
lsls r3, 1
|
||||
adds r0, r2, r3
|
||||
bl sub_80A6688
|
||||
_080AC1EA:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080AC1F0: .4byte gGroundObjects
|
||||
thumb_func_end sub_80AC1B0
|
||||
|
||||
thumb_func_start sub_80AC1F4
|
||||
sub_80AC1F4:
|
||||
push {r4,lr}
|
||||
adds r4, r1, 0
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
ldr r2, _080AC238
|
||||
lsls r1, r0, 3
|
||||
subs r1, r0
|
||||
lsls r1, 4
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
ldr r0, [r2]
|
||||
adds r3, r0, r1
|
||||
movs r0, 0x6
|
||||
ldrsh r1, [r3, r0]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
beq _080AC232
|
||||
movs r0, 0x8E
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
ldr r0, _080AC23C
|
||||
eors r0, r4
|
||||
ldr r1, [r2]
|
||||
ands r1, r0
|
||||
str r1, [r2]
|
||||
movs r2, 0xA2
|
||||
lsls r2, 1
|
||||
adds r0, r3, r2
|
||||
bl sub_80A6688
|
||||
_080AC232:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080AC238: .4byte gGroundObjects
|
||||
_080AC23C: .4byte 0x337fffff
|
||||
thumb_func_end sub_80AC1F4
|
||||
|
||||
thumb_func_start sub_80AC240
|
||||
sub_80AC240:
|
||||
push {lr}
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
ldr r2, _080AC268
|
||||
lsls r1, r0, 3
|
||||
subs r1, r0
|
||||
lsls r1, 4
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
ldr r0, [r2]
|
||||
adds r2, r0, r1
|
||||
movs r0, 0x6
|
||||
ldrsh r1, [r2, r0]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
bne _080AC26C
|
||||
movs r0, 0
|
||||
b _080AC270
|
||||
.align 2, 0
|
||||
_080AC268: .4byte gGroundObjects
|
||||
_080AC26C:
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x38
|
||||
_080AC270:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80AC240
|
||||
|
||||
thumb_func_start sub_80AC274
|
||||
sub_80AC274:
|
||||
push {r4,lr}
|
||||
adds r4, r1, 0
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
lsls r2, 16
|
||||
asrs r3, r2, 16
|
||||
ldr r2, _080AC2A0
|
||||
lsls r1, r0, 3
|
||||
subs r1, r0
|
||||
lsls r1, 4
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
ldr r0, [r2]
|
||||
adds r2, r0, r1
|
||||
movs r0, 0x6
|
||||
ldrsh r1, [r2, r0]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
bne _080AC2A4
|
||||
movs r0, 0
|
||||
b _080AC2B4
|
||||
.align 2, 0
|
||||
_080AC2A0: .4byte gGroundObjects
|
||||
_080AC2A4:
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x38
|
||||
adds r1, r4, 0
|
||||
adds r2, r3, 0
|
||||
bl GetPredefinedScript
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
_080AC2B4:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80AC274
|
||||
|
||||
thumb_func_start GroundObject_ExecuteScript
|
||||
GroundObject_ExecuteScript:
|
||||
push {r4-r6,lr}
|
||||
adds r3, r0, 0
|
||||
adds r5, r1, 0
|
||||
adds r6, r2, 0
|
||||
lsls r3, 16
|
||||
asrs r3, 16
|
||||
ldr r1, _080AC2F4
|
||||
lsls r0, r3, 3
|
||||
subs r0, r3
|
||||
lsls r0, 4
|
||||
adds r0, r3
|
||||
lsls r0, 2
|
||||
ldr r1, [r1]
|
||||
adds r4, r1, r0
|
||||
ldr r1, _080AC2F8
|
||||
movs r0, 0
|
||||
adds r2, r3, 0
|
||||
bl Log
|
||||
movs r0, 0x6
|
||||
ldrsh r1, [r4, r0]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
bne _080AC2FC
|
||||
movs r0, 0
|
||||
b _080AC314
|
||||
.align 2, 0
|
||||
_080AC2F4: .4byte gGroundObjects
|
||||
_080AC2F8: .4byte gUnknown_81184CC
|
||||
_080AC2FC:
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x38
|
||||
ldr r3, _080AC31C
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
bl GroundScript_ExecutePP
|
||||
movs r0, 0x9E
|
||||
lsls r0, 1
|
||||
adds r1, r4, r0
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
_080AC314:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080AC31C: .4byte gUnknown_8118504
|
||||
thumb_func_end GroundObject_ExecuteScript
|
||||
|
||||
thumb_func_start GroundObjectsNotifyAll
|
||||
GroundObjectsNotifyAll:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
lsls r0, 16
|
||||
asrs r7, r0, 16
|
||||
ldr r0, _080AC374
|
||||
ldr r4, [r0]
|
||||
movs r5, 0
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
mov r8, r0
|
||||
movs r6, 0x80
|
||||
lsls r6, 9
|
||||
_080AC33A:
|
||||
movs r1, 0x6
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, r8
|
||||
beq _080AC352
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x38
|
||||
adds r1, r7, 0
|
||||
bl GroundScriptNotify
|
||||
orrs r5, r0
|
||||
lsls r0, r5, 24
|
||||
lsrs r5, r0, 24
|
||||
_080AC352:
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x80
|
||||
lsls r1, 9
|
||||
adds r6, r1
|
||||
asrs r0, 16
|
||||
movs r1, 0xE2
|
||||
lsls r1, 1
|
||||
adds r4, r1
|
||||
cmp r0, 0xF
|
||||
ble _080AC33A
|
||||
adds r0, r5, 0
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080AC374: .4byte gGroundObjects
|
||||
thumb_func_end GroundObjectsNotifyAll
|
||||
|
||||
thumb_func_start GroundObjectsCancellAll
|
||||
GroundObjectsCancellAll:
|
||||
push {r4-r7,lr}
|
||||
ldr r0, _080AC3BC
|
||||
ldr r4, [r0]
|
||||
movs r5, 0
|
||||
movs r7, 0x1
|
||||
negs r7, r7
|
||||
movs r6, 0x80
|
||||
lsls r6, 9
|
||||
_080AC388:
|
||||
movs r1, 0x6
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, r7
|
||||
beq _080AC39E
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x38
|
||||
bl GroundScript_Cancel
|
||||
orrs r5, r0
|
||||
lsls r0, r5, 24
|
||||
lsrs r5, r0, 24
|
||||
_080AC39E:
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x80
|
||||
lsls r1, 9
|
||||
adds r6, r1
|
||||
asrs r0, 16
|
||||
movs r1, 0xE2
|
||||
lsls r1, 1
|
||||
adds r4, r1
|
||||
cmp r0, 0xF
|
||||
ble _080AC388
|
||||
adds r0, r5, 0
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080AC3BC: .4byte gGroundObjects
|
||||
thumb_func_end GroundObjectsCancellAll
|
||||
|
||||
thumb_func_start sub_80AC3C0
|
||||
sub_80AC3C0:
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
ldr r2, _080AC3DC
|
||||
lsls r1, r0, 3
|
||||
subs r1, r0
|
||||
lsls r1, 4
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
movs r1, 0x6
|
||||
ldrsh r0, [r0, r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080AC3DC: .4byte gGroundObjects
|
||||
thumb_func_end sub_80AC3C0
|
||||
|
||||
thumb_func_start sub_80AC3E0
|
||||
sub_80AC3E0:
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
ldr r3, _080AC404
|
||||
lsls r2, r0, 3
|
||||
subs r2, r0
|
||||
lsls r2, 4
|
||||
adds r2, r0
|
||||
lsls r2, 2
|
||||
ldr r0, [r3]
|
||||
adds r0, r2
|
||||
movs r3, 0x8E
|
||||
lsls r3, 1
|
||||
adds r2, r0, r3
|
||||
ldr r2, [r2]
|
||||
str r2, [r1]
|
||||
movs r1, 0x6
|
||||
ldrsh r0, [r0, r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080AC404: .4byte gGroundObjects
|
||||
thumb_func_end sub_80AC3E0
|
||||
|
||||
thumb_func_start sub_80AC408
|
||||
sub_80AC408:
|
||||
push {lr}
|
||||
adds r3, r1, 0
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
ldr r2, _080AC434
|
||||
lsls r1, r0, 3
|
||||
subs r1, r0
|
||||
lsls r1, 4
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
ldr r0, [r2]
|
||||
adds r2, r0, r1
|
||||
movs r0, 0x6
|
||||
ldrsh r1, [r2, r0]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
bne _080AC438
|
||||
movs r0, 0
|
||||
str r0, [r3]
|
||||
str r0, [r3, 0x4]
|
||||
b _080AC440
|
||||
.align 2, 0
|
||||
_080AC434: .4byte gGroundObjects
|
||||
_080AC438:
|
||||
ldr r0, [r2, 0xC]
|
||||
ldr r1, [r2, 0x10]
|
||||
str r0, [r3]
|
||||
str r1, [r3, 0x4]
|
||||
_080AC440:
|
||||
movs r1, 0x6
|
||||
ldrsh r0, [r2, r1]
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80AC408
|
||||
|
||||
thumb_func_start sub_80AC448
|
||||
sub_80AC448:
|
||||
push {lr}
|
||||
adds r3, r1, 0
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
ldr r2, _080AC474
|
||||
lsls r1, r0, 3
|
||||
subs r1, r0
|
||||
lsls r1, 4
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
ldr r0, [r2]
|
||||
adds r2, r0, r1
|
||||
movs r0, 0x6
|
||||
ldrsh r1, [r2, r0]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
bne _080AC478
|
||||
movs r0, 0
|
||||
str r0, [r3]
|
||||
b _080AC492
|
||||
.align 2, 0
|
||||
_080AC474: .4byte gGroundObjects
|
||||
_080AC478:
|
||||
movs r1, 0x92
|
||||
lsls r1, 1
|
||||
adds r0, r2, r1
|
||||
ldr r0, [r0]
|
||||
ldr r1, [r2, 0x14]
|
||||
adds r0, r1
|
||||
str r0, [r3]
|
||||
movs r1, 0x94
|
||||
lsls r1, 1
|
||||
adds r0, r2, r1
|
||||
ldr r0, [r0]
|
||||
ldr r1, [r2, 0x18]
|
||||
adds r0, r1
|
||||
_080AC492:
|
||||
str r0, [r3, 0x4]
|
||||
movs r1, 0x6
|
||||
ldrsh r0, [r2, r1]
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80AC448
|
||||
|
||||
thumb_func_start sub_80AC49C
|
||||
sub_80AC49C:
|
||||
push {r4,lr}
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
ldr r3, _080AC4C4
|
||||
lsls r2, r0, 3
|
||||
subs r2, r0
|
||||
lsls r2, 4
|
||||
adds r2, r0
|
||||
lsls r2, 2
|
||||
ldr r4, [r3]
|
||||
adds r4, r2
|
||||
adds r0, r4, 0
|
||||
bl TryMoveObjectRelative_80AC6AC
|
||||
movs r1, 0x6
|
||||
ldrsh r0, [r4, r1]
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080AC4C4: .4byte gGroundObjects
|
||||
thumb_func_end sub_80AC49C
|
||||
|
||||
thumb_func_start sub_80AC4C8
|
||||
sub_80AC4C8:
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -1,7 +1,15 @@
|
||||
#include "gba/types.h"
|
||||
#include "global.h"
|
||||
#include "structs/str_ground_script.h"
|
||||
#include "ground_script.h"
|
||||
#include "ground_sprite.h"
|
||||
#include "memory.h"
|
||||
|
||||
// TODO: figure out if this is used anywhere else
|
||||
struct GroundObjectSub {
|
||||
s32 a0[2];
|
||||
};
|
||||
|
||||
typedef struct GroundObject {
|
||||
// size: 0x1C4
|
||||
u8 unk0[4];
|
||||
@@ -9,15 +17,26 @@ typedef struct GroundObject {
|
||||
s16 unk6; // kind
|
||||
s16 unk8; // scriptID / group
|
||||
s8 unkA; // sector
|
||||
u8 fillB[0x14 - 0xB];
|
||||
u32 unk14;
|
||||
u32 unk18;
|
||||
u8 fill1C[0x38 - 0x1C];
|
||||
u8 unkB;
|
||||
struct GroundObjectSub unkC;
|
||||
PixelPos unk14;
|
||||
//s32 unk18;
|
||||
u8 unk1C;
|
||||
PixelPos unk20;
|
||||
s32 unk28[2];
|
||||
s32 unk30[2];
|
||||
Action unk38;
|
||||
u8 unk11C[0x124 - 0x11C];
|
||||
u32 unk124[2];
|
||||
u8 unk12C[0x144 - 0x12C];
|
||||
u8 unk144[0x1C4 - 0x144];
|
||||
u32 flags;
|
||||
u8 unk120;
|
||||
PixelPos unk124;
|
||||
u32 unk12C;
|
||||
u32 unk130;
|
||||
PixelPos unk134;
|
||||
//u32 unk138;
|
||||
u8 unk13C;
|
||||
u16 unk13E;
|
||||
u16 unk140;
|
||||
struct UnkGroundSpriteStruct unk144;
|
||||
} GroundObject;
|
||||
|
||||
IWRAM_INIT GroundObject *gGroundObjects = NULL;
|
||||
@@ -25,13 +44,19 @@ IWRAM_INIT GroundObject *gGroundObjects = NULL;
|
||||
void DeleteGroundObjects(void);
|
||||
void GroundObject_Delete(s32);
|
||||
|
||||
extern u8 gUnknown_811842C[];
|
||||
extern u8 gUnknown_8118414[];
|
||||
extern u8 gUnknown_81183F0[];
|
||||
s16 GroundObject_Add(s32 id, const GroundObjectData*, s32 group, s32 sector);
|
||||
extern DebugLocation gUnknown_81183E4;
|
||||
extern u8 gUnknown_81183F0[];
|
||||
extern u8 gUnknown_8118414[];
|
||||
extern u8 gUnknown_811842C[];
|
||||
extern u8 gUnknown_81184B0[];
|
||||
|
||||
const struct GroundScriptHeader *GetGroundScript(s16 a0, DebugLocation *);
|
||||
bool8 IsOnscreen_80A675C(u8 *, u32 *);
|
||||
void sub_80A7658(struct UnkGroundSpriteStruct *);
|
||||
extern bool8 GroundScriptNotify(Action*, s32);
|
||||
extern bool8 GroundScript_Cancel(Action *r0);
|
||||
|
||||
|
||||
s16 GroundObject_Add(s32 id, const GroundObjectData*, s32 group, s32 sector);
|
||||
|
||||
void AllocGroundObjects(void)
|
||||
{
|
||||
@@ -125,7 +150,7 @@ void GroundObject_CancelBlank(void)
|
||||
{
|
||||
s32 index;
|
||||
GroundObject *ptr;
|
||||
u32 stack[2];
|
||||
PixelPos stack;
|
||||
|
||||
Log('\0',gUnknown_811842C);
|
||||
|
||||
@@ -135,9 +160,9 @@ void GroundObject_CancelBlank(void)
|
||||
{
|
||||
if(ptr->unk6 != -1)
|
||||
{
|
||||
stack[0] = ptr->unk124[0] + ptr->unk14;
|
||||
stack[1] = ptr->unk124[1] + ptr->unk18;
|
||||
if(!IsOnscreen_80A675C(ptr->unk144, stack))
|
||||
stack.x = ptr->unk124.x + ptr->unk14.x;
|
||||
stack.y = ptr->unk124.y + ptr->unk14.y;
|
||||
if(!IsOnscreen_80A675C(&ptr->unk144, &stack))
|
||||
GroundObject_Delete(index);
|
||||
}
|
||||
}
|
||||
@@ -159,3 +184,678 @@ s32 sub_80ABD48(s32 r0)
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
NAKED
|
||||
s16 GroundObject_Add(s32 id, const GroundObjectData *objectData, s32 group, s32 sector)
|
||||
{
|
||||
asm_unified(
|
||||
" push {r4-r7,lr} \n"
|
||||
" mov r7, r10 \n"
|
||||
" mov r6, r9 \n"
|
||||
" mov r5, r8 \n"
|
||||
" push {r5-r7} \n"
|
||||
" sub sp, 0x14 \n"
|
||||
" mov r8, r1 \n"
|
||||
" lsls r0, 16 \n"
|
||||
" asrs r7, r0, 16 \n"
|
||||
" lsls r2, 16 \n"
|
||||
" asrs r2, 16 \n"
|
||||
" mov r10, r2 \n"
|
||||
" lsls r3, 24 \n"
|
||||
" asrs r3, 24 \n"
|
||||
" mov r9, r3 \n"
|
||||
" ldrb r4, [r1] \n"
|
||||
" cmp r4, 0x1A \n"
|
||||
" bne _080ABDDA \n"
|
||||
" movs r0, 0 \n"
|
||||
" movs r1, 0x28 \n"
|
||||
" bl GetScriptVarValue \n"
|
||||
" cmp r0, 0x1 \n"
|
||||
" bgt _080ABDBC \n"
|
||||
" movs r4, 0x1B \n"
|
||||
" b _080ABDDA \n"
|
||||
"_080ABDBC: \n"
|
||||
" movs r0, 0 \n"
|
||||
" movs r1, 0x29 \n"
|
||||
" bl GetScriptVarValue \n"
|
||||
" cmp r0, 0 \n"
|
||||
" bne _080ABDD4 \n"
|
||||
" movs r0, 0 \n"
|
||||
" movs r1, 0x27 \n"
|
||||
" bl GetScriptVarValue \n"
|
||||
" adds r0, 0x1C \n"
|
||||
" b _080ABDD6 \n"
|
||||
"_080ABDD4: \n"
|
||||
" adds r0, 0x2B \n"
|
||||
"_080ABDD6: \n"
|
||||
" lsls r0, 16 \n"
|
||||
" asrs r4, r0, 16 \n"
|
||||
"_080ABDDA: \n"
|
||||
" lsls r1, r4, 2 \n"
|
||||
" ldr r0, _080ABE10 \n"
|
||||
" adds r6, r1, r0 \n"
|
||||
" cmp r7, 0 \n"
|
||||
" bge _080ABE40 \n"
|
||||
" cmp r4, 0xE \n"
|
||||
" bgt _080ABDF4 \n"
|
||||
" cmp r4, 0xD \n"
|
||||
" blt _080ABDF4 \n"
|
||||
" adds r0, r4, 0 \n"
|
||||
" bl sub_80ABD48 \n"
|
||||
" adds r7, r0, 0 \n"
|
||||
"_080ABDF4: \n"
|
||||
" cmp r7, 0 \n"
|
||||
" bge _080ABE40 \n"
|
||||
" movs r3, 0 \n"
|
||||
" ldr r0, _080ABE14 \n"
|
||||
" ldr r5, [r0] \n"
|
||||
" movs r0, 0x6 \n"
|
||||
" ldrsh r1, [r5, r0] \n"
|
||||
" movs r0, 0x1 \n"
|
||||
" negs r0, r0 \n"
|
||||
" cmp r1, r0 \n"
|
||||
" bne _080ABE18 \n"
|
||||
" movs r7, 0 \n"
|
||||
" b _080ABE40 \n"
|
||||
" .align 2, 0 \n"
|
||||
"_080ABE10: .4byte gGroundObjectTypes\n"
|
||||
"_080ABE14: .4byte gGroundObjects \n"
|
||||
"_080ABE18: \n"
|
||||
" adds r0, r3, 0x1 \n"
|
||||
" lsls r0, 16 \n"
|
||||
" asrs r3, r0, 16 \n"
|
||||
" movs r1, 0xE2 \n"
|
||||
" lsls r1, 1 \n"
|
||||
" adds r5, r1 \n"
|
||||
" cmp r3, 0xF \n"
|
||||
" bgt _080ABE36 \n"
|
||||
" movs r2, 0x6 \n"
|
||||
" ldrsh r1, [r5, r2] \n"
|
||||
" movs r0, 0x1 \n"
|
||||
" negs r0, r0 \n"
|
||||
" cmp r1, r0 \n"
|
||||
" bne _080ABE18 \n"
|
||||
" adds r7, r3, 0 \n"
|
||||
"_080ABE36: \n"
|
||||
" cmp r7, 0 \n"
|
||||
" bge _080ABE40 \n"
|
||||
" movs r0, 0x1 \n"
|
||||
" negs r0, r0 \n"
|
||||
" b _080AC142 \n"
|
||||
"_080ABE40: \n"
|
||||
" ldr r1, _080ABEA8 \n"
|
||||
" lsls r0, r7, 3 \n"
|
||||
" subs r0, r7 \n"
|
||||
" lsls r0, 4 \n"
|
||||
" adds r0, r7 \n"
|
||||
" lsls r0, 2 \n"
|
||||
" ldr r1, [r1] \n"
|
||||
" adds r5, r1, r0 \n"
|
||||
" ldr r1, _080ABEAC \n"
|
||||
" mov r3, r8 \n"
|
||||
" ldrb r0, [r3] \n"
|
||||
" str r0, [sp] \n"
|
||||
" movs r2, 0 \n"
|
||||
" ldrsh r0, [r6, r2] \n"
|
||||
" str r0, [sp, 0x4] \n"
|
||||
" mov r3, r10 \n"
|
||||
" str r3, [sp, 0x8] \n"
|
||||
" mov r0, r9 \n"
|
||||
" str r0, [sp, 0xC] \n"
|
||||
" movs r0, 0 \n"
|
||||
" adds r2, r7, 0 \n"
|
||||
" adds r3, r4, 0 \n"
|
||||
" bl Log \n"
|
||||
" movs r2, 0 \n"
|
||||
" movs r3, 0x6 \n"
|
||||
" ldrsh r1, [r5, r3] \n"
|
||||
" movs r0, 0x1 \n"
|
||||
" negs r0, r0 \n"
|
||||
" cmp r1, r0 \n"
|
||||
" bne _080ABE80 \n"
|
||||
" movs r2, 0x1 \n"
|
||||
"_080ABE80: \n"
|
||||
" str r2, [sp, 0x10] \n"
|
||||
" strh r7, [r5, 0x4] \n"
|
||||
" strh r4, [r5, 0x6] \n"
|
||||
" mov r0, r10 \n"
|
||||
" strh r0, [r5, 0x8] \n"
|
||||
" mov r1, r9 \n"
|
||||
" strb r1, [r5, 0xA] \n"
|
||||
" ldrh r0, [r6] \n"
|
||||
" subs r0, 0x1 \n"
|
||||
" lsls r0, 16 \n"
|
||||
" asrs r0, 16 \n"
|
||||
" cmp r0, 0xE \n"
|
||||
" bls _080ABE9C \n"
|
||||
" b _080ABF8C \n"
|
||||
"_080ABE9C: \n"
|
||||
" lsls r0, 2 \n"
|
||||
" ldr r1, _080ABEB0 \n"
|
||||
" adds r0, r1 \n"
|
||||
" ldr r0, [r0] \n"
|
||||
" mov pc, r0 \n"
|
||||
" .align 2, 0 \n"
|
||||
"_080ABEA8: .4byte gGroundObjects \n"
|
||||
"_080ABEAC: .4byte gUnknown_8118448\n"
|
||||
"_080ABEB0: .4byte _080ABEB4 \n"
|
||||
" .align 2, 0 \n"
|
||||
"_080ABEB4: \n"
|
||||
" .4byte _080ABEF0 \n"
|
||||
" .4byte _080ABF7C \n"
|
||||
" .4byte _080ABF46 \n"
|
||||
" .4byte _080ABF54 \n"
|
||||
" .4byte _080ABF54 \n"
|
||||
" .4byte _080ABF5E \n"
|
||||
" .4byte _080ABF68 \n"
|
||||
" .4byte _080ABF72 \n"
|
||||
" .4byte _080ABF3C \n"
|
||||
" .4byte _080ABEFA \n"
|
||||
" .4byte _080ABEF0 \n"
|
||||
" .4byte _080ABF06 \n"
|
||||
" .4byte _080ABF2C \n"
|
||||
" .4byte _080ABF1E \n"
|
||||
" .4byte _080ABF12 \n"
|
||||
"_080ABEF0: \n"
|
||||
" movs r2, 0x8E \n"
|
||||
" lsls r2, 1 \n"
|
||||
" adds r1, r5, r2 \n"
|
||||
" movs r0, 0 \n"
|
||||
" b _080ABF94 \n"
|
||||
"_080ABEFA: \n"
|
||||
" movs r3, 0x8E \n"
|
||||
" lsls r3, 1 \n"
|
||||
" adds r1, r5, r3 \n"
|
||||
" movs r0, 0x80 \n"
|
||||
" lsls r0, 10 \n"
|
||||
" b _080ABF94 \n"
|
||||
"_080ABF06: \n"
|
||||
" movs r0, 0x8E \n"
|
||||
" lsls r0, 1 \n"
|
||||
" adds r1, r5, r0 \n"
|
||||
" movs r0, 0x80 \n"
|
||||
" lsls r0, 11 \n"
|
||||
" b _080ABF94 \n"
|
||||
"_080ABF12: \n"
|
||||
" movs r2, 0x8E \n"
|
||||
" lsls r2, 1 \n"
|
||||
" adds r1, r5, r2 \n"
|
||||
" movs r0, 0x83 \n"
|
||||
" lsls r0, 18 \n"
|
||||
" b _080ABF94 \n"
|
||||
"_080ABF1E: \n"
|
||||
" movs r3, 0x8E \n"
|
||||
" lsls r3, 1 \n"
|
||||
" adds r1, r5, r3 \n"
|
||||
" ldr r0, _080ABF28 \n"
|
||||
" b _080ABF94 \n"
|
||||
" .align 2, 0 \n"
|
||||
"_080ABF28: .4byte 0x220c0000 \n"
|
||||
"_080ABF2C: \n"
|
||||
" movs r0, 0x8E \n"
|
||||
" lsls r0, 1 \n"
|
||||
" adds r1, r5, r0 \n"
|
||||
" ldr r0, _080ABF38 \n"
|
||||
" b _080ABF94 \n"
|
||||
" .align 2, 0 \n"
|
||||
"_080ABF38: .4byte 0x20010000 \n"
|
||||
"_080ABF3C: \n"
|
||||
" movs r2, 0x8E \n"
|
||||
" lsls r2, 1 \n"
|
||||
" adds r1, r5, r2 \n"
|
||||
" movs r0, 0x5 \n"
|
||||
" b _080ABF94 \n"
|
||||
"_080ABF46: \n"
|
||||
" movs r3, 0x8E \n"
|
||||
" lsls r3, 1 \n"
|
||||
" adds r1, r5, r3 \n"
|
||||
" ldr r0, _080ABF50 \n"
|
||||
" b _080ABF94 \n"
|
||||
" .align 2, 0 \n"
|
||||
"_080ABF50: .4byte 0x22000184 \n"
|
||||
"_080ABF54: \n"
|
||||
" movs r0, 0x8E \n"
|
||||
" lsls r0, 1 \n"
|
||||
" adds r1, r5, r0 \n"
|
||||
" adds r0, 0x68 \n"
|
||||
" b _080ABF94 \n"
|
||||
"_080ABF5E: \n"
|
||||
" movs r2, 0x8E \n"
|
||||
" lsls r2, 1 \n"
|
||||
" adds r1, r5, r2 \n"
|
||||
" movs r0, 0x44 \n"
|
||||
" b _080ABF94 \n"
|
||||
"_080ABF68: \n"
|
||||
" movs r3, 0x8E \n"
|
||||
" lsls r3, 1 \n"
|
||||
" adds r1, r5, r3 \n"
|
||||
" movs r0, 0x84 \n"
|
||||
" b _080ABF94 \n"
|
||||
"_080ABF72: \n"
|
||||
" movs r0, 0x8E \n"
|
||||
" lsls r0, 1 \n"
|
||||
" adds r1, r5, r0 \n"
|
||||
" adds r0, 0x64 \n"
|
||||
" b _080ABF94 \n"
|
||||
"_080ABF7C: \n"
|
||||
" movs r2, 0x8E \n"
|
||||
" lsls r2, 1 \n"
|
||||
" adds r1, r5, r2 \n"
|
||||
" ldr r0, _080ABF88 \n"
|
||||
" b _080ABF94 \n"
|
||||
" .align 2, 0 \n"
|
||||
"_080ABF88: .4byte 0x020000c4 \n"
|
||||
"_080ABF8C: \n"
|
||||
" movs r3, 0x8E \n"
|
||||
" lsls r3, 1 \n"
|
||||
" adds r1, r5, r3 \n"
|
||||
" ldr r0, _080ABFA8 \n"
|
||||
"_080ABF94: \n"
|
||||
" str r0, [r1] \n"
|
||||
" ldrb r0, [r6, 0x2] \n"
|
||||
" cmp r0, 0 \n"
|
||||
" bne _080ABFAC \n"
|
||||
" mov r1, r8 \n"
|
||||
" ldrb r0, [r1, 0x2] \n"
|
||||
" lsls r0, 11 \n"
|
||||
" str r0, [r5, 0xC] \n"
|
||||
" ldrb r0, [r1, 0x3] \n"
|
||||
" b _080ABFB4 \n"
|
||||
" .align 2, 0 \n"
|
||||
"_080ABFA8: .4byte 0x02000185 \n"
|
||||
"_080ABFAC: \n"
|
||||
" ldrb r0, [r6, 0x2] \n"
|
||||
" lsls r0, 11 \n"
|
||||
" str r0, [r5, 0xC] \n"
|
||||
" ldrb r0, [r6, 0x3] \n"
|
||||
"_080ABFB4: \n"
|
||||
" lsls r0, 11 \n"
|
||||
" str r0, [r5, 0x10] \n"
|
||||
" ldr r0, [r5, 0xC] \n"
|
||||
" lsrs r1, r0, 31 \n"
|
||||
" adds r0, r1 \n"
|
||||
" asrs r0, 1 \n"
|
||||
" str r0, [r5, 0x14] \n"
|
||||
" ldr r0, [r5, 0x10] \n"
|
||||
" lsrs r1, r0, 31 \n"
|
||||
" adds r0, r1 \n"
|
||||
" asrs r0, 1 \n"
|
||||
" str r0, [r5, 0x18] \n"
|
||||
" mov r2, r8 \n"
|
||||
" ldrb r0, [r2, 0x1] \n"
|
||||
" strb r0, [r5, 0x1C] \n"
|
||||
" adds r2, 0x4 \n"
|
||||
" adds r4, r5, 0 \n"
|
||||
" adds r4, 0x20 \n"
|
||||
" ldrb r1, [r2, 0x2] \n"
|
||||
" movs r0, 0x4 \n"
|
||||
" ands r0, r1 \n"
|
||||
" cmp r0, 0 \n"
|
||||
" bne _080ABFFC \n"
|
||||
" mov r3, r8 \n"
|
||||
" ldrb r0, [r3, 0x4] \n"
|
||||
" lsls r3, r0, 11 \n"
|
||||
" str r3, [r5, 0x20] \n"
|
||||
" ldrb r1, [r2, 0x2] \n"
|
||||
" movs r0, 0x2 \n"
|
||||
" ands r0, r1 \n"
|
||||
" cmp r0, 0 \n"
|
||||
" beq _080ABFFC \n"
|
||||
" movs r1, 0x80 \n"
|
||||
" lsls r1, 3 \n"
|
||||
" adds r0, r3, r1 \n"
|
||||
" str r0, [r5, 0x20] \n"
|
||||
"_080ABFFC: \n"
|
||||
" ldrb r1, [r2, 0x3] \n"
|
||||
" movs r0, 0x4 \n"
|
||||
" ands r0, r1 \n"
|
||||
" cmp r0, 0 \n"
|
||||
" bne _080AC01E \n"
|
||||
" ldrb r0, [r2, 0x1] \n"
|
||||
" lsls r3, r0, 11 \n"
|
||||
" str r3, [r4, 0x4] \n"
|
||||
" ldrb r1, [r2, 0x3] \n"
|
||||
" movs r0, 0x2 \n"
|
||||
" ands r0, r1 \n"
|
||||
" cmp r0, 0 \n"
|
||||
" beq _080AC01E \n"
|
||||
" movs r2, 0x80 \n"
|
||||
" lsls r2, 3 \n"
|
||||
" adds r0, r3, r2 \n"
|
||||
" str r0, [r4, 0x4] \n"
|
||||
"_080AC01E: \n"
|
||||
" ldr r3, [sp, 0x10] \n"
|
||||
" cmp r3, 0 \n"
|
||||
" beq _080AC076 \n"
|
||||
" ldrb r1, [r5, 0x1C] \n"
|
||||
" movs r2, 0x90 \n"
|
||||
" lsls r2, 1 \n"
|
||||
" adds r0, r5, r2 \n"
|
||||
" movs r3, 0 \n"
|
||||
" strb r1, [r0] \n"
|
||||
" movs r0, 0x92 \n"
|
||||
" lsls r0, 1 \n"
|
||||
" adds r2, r5, r0 \n"
|
||||
" ldr r0, [r5, 0x20] \n"
|
||||
" ldr r1, [r5, 0x14] \n"
|
||||
" subs r0, r1 \n"
|
||||
" str r0, [r2] \n"
|
||||
" movs r1, 0x96 \n"
|
||||
" lsls r1, 1 \n"
|
||||
" adds r2, r5, r1 \n"
|
||||
" ldr r0, [r5, 0x20] \n"
|
||||
" ldr r1, [r5, 0x14] \n"
|
||||
" adds r0, r1 \n"
|
||||
" str r0, [r2] \n"
|
||||
" movs r0, 0x94 \n"
|
||||
" lsls r0, 1 \n"
|
||||
" adds r2, r5, r0 \n"
|
||||
" ldr r0, [r5, 0x24] \n"
|
||||
" ldr r1, [r5, 0x18] \n"
|
||||
" subs r0, r1 \n"
|
||||
" str r0, [r2] \n"
|
||||
" movs r1, 0x98 \n"
|
||||
" lsls r1, 1 \n"
|
||||
" adds r2, r5, r1 \n"
|
||||
" ldr r0, [r5, 0x24] \n"
|
||||
" ldr r1, [r5, 0x18] \n"
|
||||
" adds r0, r1 \n"
|
||||
" str r0, [r2] \n"
|
||||
" movs r2, 0x9A \n"
|
||||
" lsls r2, 1 \n"
|
||||
" adds r1, r5, r2 \n"
|
||||
" adds r2, 0x4 \n"
|
||||
" adds r0, r5, r2 \n"
|
||||
" str r3, [r0] \n"
|
||||
" str r3, [r1] \n"
|
||||
"_080AC076: \n"
|
||||
" adds r0, r5, 0 \n"
|
||||
" adds r0, 0x28 \n"
|
||||
" adds r1, r5, 0 \n"
|
||||
" adds r1, 0x30 \n"
|
||||
" bl GetCurrentDungeonBounds \n"
|
||||
" ldr r3, [sp, 0x10] \n"
|
||||
" cmp r3, 0 \n"
|
||||
" beq _080AC0C0 \n"
|
||||
" movs r0, 0x9F \n"
|
||||
" lsls r0, 1 \n"
|
||||
" adds r1, r5, r0 \n"
|
||||
" movs r2, 0 \n"
|
||||
" movs r0, 0x80 \n"
|
||||
" lsls r0, 4 \n"
|
||||
" strh r0, [r1] \n"
|
||||
" movs r3, 0x9E \n"
|
||||
" lsls r3, 1 \n"
|
||||
" adds r1, r5, r3 \n"
|
||||
" movs r0, 0x1 \n"
|
||||
" strb r0, [r1] \n"
|
||||
" movs r1, 0xA0 \n"
|
||||
" lsls r1, 1 \n"
|
||||
" adds r0, r5, r1 \n"
|
||||
" strh r2, [r0] \n"
|
||||
" movs r2, 0xA2 \n"
|
||||
" lsls r2, 1 \n"
|
||||
" adds r0, r5, r2 \n"
|
||||
" movs r3, 0x6 \n"
|
||||
" ldrsh r2, [r5, r3] \n"
|
||||
" movs r3, 0x8E \n"
|
||||
" lsls r3, 1 \n"
|
||||
" adds r1, r5, r3 \n"
|
||||
" ldr r3, [r1] \n"
|
||||
" adds r1, r7, 0 \n"
|
||||
" bl sub_80A75CC \n"
|
||||
"_080AC0C0: \n"
|
||||
" adds r4, r5, 0 \n"
|
||||
" adds r4, 0x38 \n"
|
||||
" ldr r1, _080AC154 \n"
|
||||
" mov r0, r9 \n"
|
||||
" str r0, [sp] \n"
|
||||
" adds r0, r4, 0 \n"
|
||||
" adds r2, r5, 0 \n"
|
||||
" mov r3, r10 \n"
|
||||
" bl InitActionWithParams \n"
|
||||
" adds r6, r4, 0 \n"
|
||||
" mov r1, r8 \n"
|
||||
" ldr r2, [r1, 0xC] \n"
|
||||
" cmp r2, 0 \n"
|
||||
" bne _080AC0F2 \n"
|
||||
" movs r2, 0xA2 \n"
|
||||
" lsls r2, 1 \n"
|
||||
" adds r0, r5, r2 \n"
|
||||
" bl SpriteHasPokemonSize_80A66A4\n"
|
||||
" lsls r0, 24 \n"
|
||||
" ldr r2, _080AC158 \n"
|
||||
" cmp r0, 0 \n"
|
||||
" beq _080AC0F2 \n"
|
||||
" ldr r2, _080AC15C \n"
|
||||
"_080AC0F2: \n"
|
||||
" adds r0, r6, 0 \n"
|
||||
" movs r1, 0x1 \n"
|
||||
" bl SetPredefinedScript \n"
|
||||
" adds r1, r4, 0 \n"
|
||||
" mov r3, r8 \n"
|
||||
" ldr r2, [r3, 0x10] \n"
|
||||
" cmp r2, 0 \n"
|
||||
" bne _080AC108 \n"
|
||||
" ldr r0, _080AC160 \n"
|
||||
" ldr r2, [r0, 0x38] \n"
|
||||
"_080AC108: \n"
|
||||
" adds r0, r1, 0 \n"
|
||||
" movs r1, 0x2 \n"
|
||||
" bl SetPredefinedScript \n"
|
||||
" mov r0, r8 \n"
|
||||
" ldr r2, [r0, 0x14] \n"
|
||||
" cmp r2, 0 \n"
|
||||
" bne _080AC11C \n"
|
||||
" ldr r0, _080AC160 \n"
|
||||
" ldr r2, [r0, 0x68] \n"
|
||||
"_080AC11C: \n"
|
||||
" adds r0, r4, 0 \n"
|
||||
" movs r1, 0x3 \n"
|
||||
" bl SetPredefinedScript \n"
|
||||
" mov r1, r8 \n"
|
||||
" ldr r2, [r1, 0x8] \n"
|
||||
" cmp r2, 0 \n"
|
||||
" beq _080AC140 \n"
|
||||
" adds r0, r4, 0 \n"
|
||||
" movs r1, 0 \n"
|
||||
" bl SetPredefinedScript \n"
|
||||
" ldr r3, _080AC164 \n"
|
||||
" adds r0, r4, 0 \n"
|
||||
" movs r1, 0 \n"
|
||||
" movs r2, 0 \n"
|
||||
" bl ExecutePredefinedScript \n"
|
||||
"_080AC140: \n"
|
||||
" adds r0, r7, 0 \n"
|
||||
"_080AC142: \n"
|
||||
" add sp, 0x14 \n"
|
||||
" pop {r3-r5} \n"
|
||||
" mov r8, r3 \n"
|
||||
" mov r9, r4 \n"
|
||||
" mov r10, r5 \n"
|
||||
" pop {r4-r7} \n"
|
||||
" pop {r1} \n"
|
||||
" bx r1 \n"
|
||||
" .align 2, 0 \n"
|
||||
"_080AC154: .4byte gGroundObjectCallbacks\n"
|
||||
"_080AC158: .4byte gUnknown_81182F4\n"
|
||||
"_080AC15C: .4byte gUnknown_8118350\n"
|
||||
"_080AC160: .4byte gFunctionScriptTable\n"
|
||||
"_080AC164: .4byte gUnknown_81184A4");
|
||||
}
|
||||
|
||||
void sub_80A6688(struct UnkGroundSpriteStruct *, s32);
|
||||
|
||||
void GroundObject_Delete(s32 index_) {
|
||||
s32 index = (s16)index_;
|
||||
GroundObject *parent = &gGroundObjects[index];
|
||||
|
||||
Log(0, gUnknown_81184B0, index);
|
||||
sub_80A7658(&parent->unk144);
|
||||
InitAction2(&parent->unk38);
|
||||
parent->unk6 = -1;
|
||||
}
|
||||
|
||||
void sub_80AC1B0(s32 index_, s32 flag)
|
||||
{
|
||||
s32 index = (s16)index_;
|
||||
GroundObject *parent = &gGroundObjects[index];
|
||||
|
||||
if(parent->unk6 != -1)
|
||||
{
|
||||
parent->flags |= flag;
|
||||
sub_80A6688(&parent->unk144, parent->flags);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80AC1F4(s32 index_, s32 flag)
|
||||
{
|
||||
s32 index = (s16)index_;
|
||||
GroundObject *parent = &gGroundObjects[index];
|
||||
|
||||
if(parent->unk6 != -1)
|
||||
{
|
||||
parent->flags &= (0x337fffff ^ flag);
|
||||
sub_80A6688(&parent->unk144, parent->flags);
|
||||
}
|
||||
}
|
||||
|
||||
Action *sub_80AC240(s32 index_)
|
||||
{
|
||||
s32 index = (s16)index_;
|
||||
GroundObject *parent = &gGroundObjects[index];
|
||||
|
||||
if(parent->unk6 != -1)
|
||||
return &parent->unk38;
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
extern bool8 GetPredefinedScript(Action *param_1, ScriptInfoSmall *script, s32 _index);
|
||||
|
||||
|
||||
bool8 sub_80AC274(s32 index_, ScriptInfoSmall *scriptInfo, s32 a2_)
|
||||
{
|
||||
s32 index = (s16)index_;
|
||||
s32 a2 = (s16)a2_;
|
||||
GroundObject *parent = &gGroundObjects[index];
|
||||
|
||||
if(parent->unk6 != -1)
|
||||
return GetPredefinedScript(&parent->unk38, scriptInfo, a2);
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
extern u8 gUnknown_81184CC[];
|
||||
extern DebugLocation gUnknown_8118504;
|
||||
|
||||
bool8 GroundObject_ExecuteScript(s32 index_, void *a1, ScriptInfoSmall *script)
|
||||
{
|
||||
s32 index = (s16)index_;
|
||||
GroundObject *parent = &gGroundObjects[index];
|
||||
|
||||
Log(0, gUnknown_81184CC, index);
|
||||
|
||||
if(parent->unk6 != -1)
|
||||
{
|
||||
GroundScript_ExecutePP(&parent->unk38, (ActionUnkIds *)a1, script, &gUnknown_8118504);
|
||||
parent->unk13C = 1;
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 GroundObjectsNotifyAll(s32 index_)
|
||||
{
|
||||
s32 index = (s16)index_;
|
||||
s32 counter;
|
||||
GroundObject *parent = &gGroundObjects[0];
|
||||
bool8 flag = FALSE;
|
||||
|
||||
for(counter = 0; counter < 0x10; counter = (s16)(counter + 1), parent++)
|
||||
{
|
||||
if(parent->unk6 != -1)
|
||||
flag |= GroundScriptNotify(&parent->unk38, index);
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 GroundObjectsCancelAll(void)
|
||||
{
|
||||
s32 counter;
|
||||
GroundObject *parent = &gGroundObjects[0];
|
||||
bool8 flag = FALSE;
|
||||
|
||||
for(counter = 0; counter < 0x10; counter = (s16)(counter + 1), parent++)
|
||||
{
|
||||
if(parent->unk6 != -1)
|
||||
flag |= GroundScript_Cancel(&parent->unk38);
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
static UNUSED s16 sub_80AC3C0(s32 index_)
|
||||
{
|
||||
s32 index = (s16)index_;
|
||||
GroundObject *parent = &gGroundObjects[index];
|
||||
return parent->unk6;
|
||||
}
|
||||
|
||||
s16 sub_80AC3E0(s32 index_, s32 *a1)
|
||||
{
|
||||
s32 index = (s16)index_;
|
||||
GroundObject *parent = &gGroundObjects[index];
|
||||
*a1 = parent->flags;
|
||||
return parent->unk6;
|
||||
}
|
||||
|
||||
static UNUSED s16 sub_80AC408(s32 index_, struct GroundObjectSub *a1)
|
||||
{
|
||||
s32 index = (s16)index_;
|
||||
GroundObject *parent = &gGroundObjects[index];
|
||||
if(parent->unk6 == -1)
|
||||
{
|
||||
a1->a0[0] = 0;
|
||||
a1->a0[1] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
*a1 = parent->unkC;
|
||||
}
|
||||
return parent->unk6;
|
||||
}
|
||||
|
||||
s16 sub_80AC448(s32 index_, PixelPos *pos)
|
||||
{
|
||||
s32 index = (s16)index_;
|
||||
GroundObject *parent = &gGroundObjects[index];
|
||||
|
||||
if(parent->unk6 == -1)
|
||||
{
|
||||
pos->x = 0;
|
||||
pos->y = 0;
|
||||
}
|
||||
else {
|
||||
pos->x = parent->unk124.x + parent->unk14.x;
|
||||
pos->y = parent->unk124.y + parent->unk14.y;
|
||||
}
|
||||
|
||||
return parent->unk6;
|
||||
}
|
||||
|
||||
extern void TryMoveObjectRelative_80AC6AC(void *, PixelPos *);
|
||||
|
||||
|
||||
s16 sub_80AC49C(s32 index_, PixelPos *pos)
|
||||
{
|
||||
s32 index = (s16)index_;
|
||||
GroundObject *parent = &gGroundObjects[index];
|
||||
|
||||
TryMoveObjectRelative_80AC6AC(parent, pos);
|
||||
|
||||
return parent->unk6;
|
||||
}
|
||||
|
||||
@@ -128,17 +128,42 @@ bool8 sub_809D234(void);
|
||||
s32 sub_80A14E8(Action *, u8, u32, s32);
|
||||
u8 sub_80990EC(struct DungeonSetupInfo *param_1, s32 param_2);
|
||||
|
||||
extern u8 GroundObjectsCancellAll(void);
|
||||
extern u8 GroundObjectsCancelAll(void);
|
||||
extern u8 GroundEffectsCancelAll(void);
|
||||
extern u8 GroundLivesCancelAll(void);
|
||||
extern u8 IsTextboxOpen_809A750(void);
|
||||
extern Action *sub_80A882C(s16);
|
||||
extern Action *sub_80AC240(s16);
|
||||
extern Action *sub_80AD158(s16);
|
||||
extern Action *sub_80A882C(s32);
|
||||
extern Action *sub_80AC240(s32);
|
||||
extern Action *sub_80AD158(s32);
|
||||
extern void sub_809AB4C(s32, s32);
|
||||
extern void sub_809ABB4(s32, s32);
|
||||
extern void sub_809AC18(s32, s32);
|
||||
extern s16 sub_80A8BBC(s32 id_);
|
||||
extern char gUnknown_81165D4[];
|
||||
extern char gUnknown_81165F4[];
|
||||
extern char gUnknown_811660C[];
|
||||
extern char gUnknown_8116628[];
|
||||
extern char gUnknown_8116644[];
|
||||
extern char gUnknown_8116664[];
|
||||
extern char gUnknown_8116684[];
|
||||
extern char gUnknown_81166C0[];
|
||||
extern char gUnknown_81166D8[];
|
||||
|
||||
extern const CallbackData gGroundScriptTriggerCallbacks;
|
||||
extern DebugLocation gUnknown_81166B4;
|
||||
extern DebugLocation gUnknown_81166F8;
|
||||
extern DebugLocation gUnknown_8116704;
|
||||
|
||||
extern const DebugLocation gUnknown_8116588;
|
||||
extern const DebugLocation gUnknown_8116538;
|
||||
extern const DebugLocation gUnknown_8116560;
|
||||
extern u8 gUnknown_8116594[];
|
||||
extern u8 gUnknown_8116544[];
|
||||
extern u8 gUnknown_811656C[];
|
||||
|
||||
extern DebugLocation gUnknown_81165C8;
|
||||
|
||||
extern u8 gUnknown_8116848[];
|
||||
|
||||
bool8 GroundLivesNotifyAll(s16);
|
||||
bool8 GroundObjectsNotifyAll(s16);
|
||||
@@ -528,7 +553,7 @@ u8 GroundCancelAllEntities(void)
|
||||
u8 ret;
|
||||
|
||||
ret = GroundLivesCancelAll();
|
||||
ret |= GroundObjectsCancellAll();
|
||||
ret |= GroundObjectsCancelAll();
|
||||
ret |= GroundEffectsCancelAll();
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user