mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-24 15:07:09 -05:00
move most ground_effects funcs to src
This commit is contained in:
parent
c41404b429
commit
6fe3168caf
|
|
@ -1,677 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start sub_80AD3E0
|
||||
sub_80AD3E0:
|
||||
push {r4-r7,lr}
|
||||
mov r12, r0
|
||||
ldr r3, [r1]
|
||||
ldr r2, [r0, 0x14]
|
||||
subs r6, r3, r2
|
||||
ldr r1, [r1, 0x4]
|
||||
ldr r0, [r0, 0x18]
|
||||
subs r7, r1, r0
|
||||
adds r4, r3, r2
|
||||
adds r5, r1, r0
|
||||
mov r1, r12
|
||||
ldr r0, [r1, 0x28]
|
||||
cmp r6, r0
|
||||
blt _080AD40E
|
||||
ldr r0, [r1, 0x30]
|
||||
cmp r4, r0
|
||||
bge _080AD40E
|
||||
ldr r0, [r1, 0x2C]
|
||||
cmp r7, r0
|
||||
blt _080AD40E
|
||||
ldr r0, [r1, 0x34]
|
||||
cmp r5, r0
|
||||
blt _080AD412
|
||||
_080AD40E:
|
||||
movs r0, 0x1
|
||||
b _080AD428
|
||||
_080AD412:
|
||||
movs r0, 0x92
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r6, [r0]
|
||||
str r7, [r0, 0x4]
|
||||
movs r0, 0x96
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r4, [r0]
|
||||
str r5, [r0, 0x4]
|
||||
movs r0, 0
|
||||
_080AD428:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80AD3E0
|
||||
|
||||
thumb_func_start sub_80AD430
|
||||
sub_80AD430:
|
||||
push {r4-r6,lr}
|
||||
mov r12, r0
|
||||
movs r0, 0x92
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
ldr r0, [r0]
|
||||
ldr r2, [r1]
|
||||
adds r5, r0, r2
|
||||
movs r0, 0x94
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
ldr r0, [r0]
|
||||
ldr r1, [r1, 0x4]
|
||||
adds r6, r0, r1
|
||||
movs r0, 0x96
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
ldr r0, [r0]
|
||||
adds r3, r0, r2
|
||||
movs r0, 0x98
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
ldr r0, [r0]
|
||||
adds r4, r0, r1
|
||||
mov r0, r12
|
||||
ldr r1, [r0, 0x28]
|
||||
cmp r5, r1
|
||||
bge _080AD470
|
||||
adds r5, r1, 0
|
||||
ldr r0, [r0, 0xC]
|
||||
adds r3, r1, r0
|
||||
b _080AD47E
|
||||
_080AD470:
|
||||
mov r2, r12
|
||||
ldr r1, [r2, 0x30]
|
||||
cmp r3, r1
|
||||
blt _080AD47E
|
||||
ldr r0, [r2, 0xC]
|
||||
subs r5, r1, r0
|
||||
adds r3, r1, 0
|
||||
_080AD47E:
|
||||
mov r0, r12
|
||||
ldr r1, [r0, 0x2C]
|
||||
cmp r6, r1
|
||||
bge _080AD48E
|
||||
adds r6, r1, 0
|
||||
ldr r0, [r0, 0x10]
|
||||
adds r4, r1, r0
|
||||
b _080AD49C
|
||||
_080AD48E:
|
||||
mov r2, r12
|
||||
ldr r1, [r2, 0x34]
|
||||
cmp r4, r1
|
||||
blt _080AD49C
|
||||
ldr r0, [r2, 0x10]
|
||||
subs r6, r1, r0
|
||||
adds r4, r1, 0
|
||||
_080AD49C:
|
||||
movs r0, 0x92
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r5, [r0]
|
||||
str r6, [r0, 0x4]
|
||||
movs r0, 0x96
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r3, [r0]
|
||||
str r4, [r0, 0x4]
|
||||
movs r0, 0
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80AD430
|
||||
|
||||
thumb_func_start CallbackEffectGetIndex
|
||||
CallbackEffectGetIndex:
|
||||
movs r1, 0x4
|
||||
ldrsh r0, [r0, r1]
|
||||
bx lr
|
||||
thumb_func_end CallbackEffectGetIndex
|
||||
|
||||
thumb_func_start CallbackEffectGetSize
|
||||
CallbackEffectGetSize:
|
||||
ldr r2, [r0, 0xC]
|
||||
ldr r3, [r0, 0x10]
|
||||
str r2, [r1]
|
||||
str r3, [r1, 0x4]
|
||||
bx lr
|
||||
thumb_func_end CallbackEffectGetSize
|
||||
|
||||
thumb_func_start CallbackEffectSetHitboxPos
|
||||
CallbackEffectSetHitboxPos:
|
||||
push {r4,lr}
|
||||
adds r3, r0, 0
|
||||
adds r4, r1, 0
|
||||
cmp r4, 0
|
||||
beq _080AD50C
|
||||
movs r0, 0x92
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r3, 0x14]
|
||||
subs r0, r1, r0
|
||||
str r0, [r2]
|
||||
movs r0, 0x96
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
ldr r0, [r3, 0x14]
|
||||
adds r1, r0
|
||||
str r1, [r2]
|
||||
movs r0, 0x94
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
ldr r1, [r4, 0x4]
|
||||
ldr r0, [r3, 0x18]
|
||||
subs r0, r1, r0
|
||||
str r0, [r2]
|
||||
movs r0, 0x98
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
ldr r0, [r3, 0x18]
|
||||
adds r1, r0
|
||||
str r1, [r2]
|
||||
b _080AD572
|
||||
_080AD50C:
|
||||
movs r0, 0x92
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
ldr r0, [r3, 0x20]
|
||||
ldr r1, [r3, 0x14]
|
||||
subs r0, r1
|
||||
str r0, [r2]
|
||||
movs r0, 0x96
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
ldr r0, [r3, 0x20]
|
||||
ldr r1, [r3, 0x14]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
movs r0, 0x94
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
ldr r0, [r3, 0x24]
|
||||
ldr r1, [r3, 0x18]
|
||||
subs r0, r1
|
||||
str r0, [r2]
|
||||
movs r0, 0x98
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
ldr r0, [r3, 0x24]
|
||||
ldr r1, [r3, 0x18]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
movs r2, 0x9A
|
||||
lsls r2, 1
|
||||
adds r1, r3, r2
|
||||
adds r2, 0x4
|
||||
adds r0, r3, r2
|
||||
str r4, [r0]
|
||||
str r4, [r1]
|
||||
movs r0, 0x90
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
movs r1, 0
|
||||
ldrsb r1, [r2, r1]
|
||||
movs r0, 0x1C
|
||||
ldrsb r0, [r3, r0]
|
||||
cmp r1, r0
|
||||
beq _080AD56E
|
||||
movs r0, 0x9E
|
||||
lsls r0, 1
|
||||
adds r1, r3, r0
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
_080AD56E:
|
||||
ldrb r0, [r3, 0x1C]
|
||||
strb r0, [r2]
|
||||
_080AD572:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CallbackEffectSetHitboxPos
|
||||
|
||||
thumb_func_start CallbackEffectSetPositionBounds
|
||||
CallbackEffectSetPositionBounds:
|
||||
push {r4,lr}
|
||||
ldr r3, [r1]
|
||||
ldr r4, [r1, 0x4]
|
||||
str r3, [r0, 0x28]
|
||||
str r4, [r0, 0x2C]
|
||||
ldr r1, [r2]
|
||||
ldr r2, [r2, 0x4]
|
||||
str r1, [r0, 0x30]
|
||||
str r2, [r0, 0x34]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CallbackEffectSetPositionBounds
|
||||
|
||||
thumb_func_start CallbackEffectGetHitboxCenter
|
||||
CallbackEffectGetHitboxCenter:
|
||||
adds r3, r0, 0
|
||||
movs r2, 0x92
|
||||
lsls r2, 1
|
||||
adds r0, r3, r2
|
||||
ldr r0, [r0]
|
||||
ldr r2, [r3, 0x14]
|
||||
adds r0, r2
|
||||
str r0, [r1]
|
||||
movs r2, 0x94
|
||||
lsls r2, 1
|
||||
adds r0, r3, r2
|
||||
ldr r0, [r0]
|
||||
ldr r2, [r3, 0x18]
|
||||
adds r0, r2
|
||||
str r0, [r1, 0x4]
|
||||
bx lr
|
||||
thumb_func_end CallbackEffectGetHitboxCenter
|
||||
|
||||
thumb_func_start CallbackEffectMoveReal
|
||||
CallbackEffectMoveReal:
|
||||
push {lr}
|
||||
bl sub_80AD3E0
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end CallbackEffectMoveReal
|
||||
|
||||
thumb_func_start CallbackEffectGetPosHeightAndUnk
|
||||
CallbackEffectGetPosHeightAndUnk:
|
||||
push {r4,lr}
|
||||
adds r3, r0, 0
|
||||
movs r4, 0x9A
|
||||
lsls r4, 1
|
||||
adds r0, r3, r4
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0x9C
|
||||
lsls r1, 1
|
||||
adds r0, r3, r1
|
||||
ldr r0, [r0]
|
||||
str r0, [r2]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CallbackEffectGetPosHeightAndUnk
|
||||
|
||||
thumb_func_start CallbackEffectSetPosHeight
|
||||
CallbackEffectSetPosHeight:
|
||||
movs r2, 0x9A
|
||||
lsls r2, 1
|
||||
adds r0, r2
|
||||
str r1, [r0]
|
||||
bx lr
|
||||
thumb_func_end CallbackEffectSetPosHeight
|
||||
|
||||
thumb_func_start CallbackEffectGetDirection
|
||||
CallbackEffectGetDirection:
|
||||
movs r2, 0x90
|
||||
lsls r2, 1
|
||||
adds r0, r2
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1]
|
||||
bx lr
|
||||
thumb_func_end CallbackEffectGetDirection
|
||||
|
||||
thumb_func_start CallbackEffectSetDirection
|
||||
CallbackEffectSetDirection:
|
||||
push {lr}
|
||||
adds r2, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
beq _080AD60C
|
||||
movs r3, 0x90
|
||||
lsls r3, 1
|
||||
adds r0, r2, r3
|
||||
strb r1, [r0]
|
||||
_080AD60C:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CallbackEffectSetDirection
|
||||
|
||||
thumb_func_start CallbackEffectSetEventIndex
|
||||
CallbackEffectSetEventIndex:
|
||||
push {r4,r5,lr}
|
||||
lsls r1, 16
|
||||
adds r3, r0, 0
|
||||
movs r0, 0xFF
|
||||
lsls r0, 16
|
||||
ands r0, r1
|
||||
lsrs r0, 16
|
||||
cmp r0, 0
|
||||
beq _080AD630
|
||||
ldr r1, _080AD62C
|
||||
lsls r0, 1
|
||||
adds r0, r1
|
||||
b _080AD636
|
||||
.align 2, 0
|
||||
_080AD62C: .4byte gUnknown_81185F2
|
||||
_080AD630:
|
||||
movs r5, 0x9F
|
||||
lsls r5, 1
|
||||
adds r0, r3, r5
|
||||
_080AD636:
|
||||
movs r1, 0
|
||||
ldrsh r2, [r0, r1]
|
||||
movs r5, 0x9F
|
||||
lsls r5, 1
|
||||
adds r1, r3, r5
|
||||
ldrh r4, [r1]
|
||||
movs r5, 0
|
||||
ldrsh r0, [r1, r5]
|
||||
cmp r0, r2
|
||||
beq _080AD654
|
||||
strh r2, [r1]
|
||||
movs r0, 0x9E
|
||||
lsls r0, 1
|
||||
adds r1, r3, r0
|
||||
b _080AD664
|
||||
_080AD654:
|
||||
movs r0, 0x80
|
||||
lsls r0, 5
|
||||
ands r0, r4
|
||||
cmp r0, 0
|
||||
beq _080AD668
|
||||
movs r5, 0x9E
|
||||
lsls r5, 1
|
||||
adds r1, r3, r5
|
||||
_080AD664:
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
_080AD668:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CallbackEffectSetEventIndex
|
||||
|
||||
thumb_func_start CallbackEffectSetUnk_80AD670
|
||||
CallbackEffectSetUnk_80AD670:
|
||||
push {lr}
|
||||
lsls r1, 16
|
||||
asrs r1, 16
|
||||
adds r2, r1, 0
|
||||
cmp r1, 0
|
||||
bne _080AD682
|
||||
movs r1, 0xE0
|
||||
lsls r1, 1
|
||||
adds r2, r1, 0
|
||||
_080AD682:
|
||||
movs r1, 0xA0
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
strh r2, [r0]
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CallbackEffectSetUnk_80AD670
|
||||
|
||||
thumb_func_start CallbackEffectSpriteRelatedCheck_80AD690
|
||||
CallbackEffectSpriteRelatedCheck_80AD690:
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
movs r2, 0x9E
|
||||
lsls r2, 1
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _080AD6AE
|
||||
adds r2, 0x8
|
||||
adds r0, r1, r2
|
||||
bl sub_80A66F8
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
b _080AD6B0
|
||||
_080AD6AE:
|
||||
movs r0, 0x1
|
||||
_080AD6B0:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end CallbackEffectSpriteRelatedCheck_80AD690
|
||||
|
||||
thumb_func_start CallbackEffectSpriteRelated_80AD6B4
|
||||
CallbackEffectSpriteRelated_80AD6B4:
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
movs r2, 0xA0
|
||||
lsls r2, 1
|
||||
adds r0, r1, r2
|
||||
movs r2, 0
|
||||
ldrsh r0, [r0, r2]
|
||||
cmp r0, 0
|
||||
bne _080AD6D6
|
||||
movs r2, 0xA2
|
||||
lsls r2, 1
|
||||
adds r0, r1, r2
|
||||
bl sub_80A671C
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
b _080AD6D8
|
||||
_080AD6D6:
|
||||
movs r0, 0x1
|
||||
_080AD6D8:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end CallbackEffectSpriteRelated_80AD6B4
|
||||
|
||||
thumb_func_start CallbackEffectGetFlags
|
||||
CallbackEffectGetFlags:
|
||||
movs r2, 0x8E
|
||||
lsls r2, 1
|
||||
adds r0, r2
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
bx lr
|
||||
thumb_func_end CallbackEffectGetFlags
|
||||
|
||||
thumb_func_start CallbackEffectSetFlags
|
||||
CallbackEffectSetFlags:
|
||||
push {lr}
|
||||
movs r2, 0x4
|
||||
ldrsh r0, [r0, r2]
|
||||
bl sub_80AD0C8
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CallbackEffectSetFlags
|
||||
|
||||
thumb_func_start CallbackEffectClearFlags
|
||||
CallbackEffectClearFlags:
|
||||
push {lr}
|
||||
movs r2, 0x4
|
||||
ldrsh r0, [r0, r2]
|
||||
bl sub_80AD10C
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CallbackEffectClearFlags
|
||||
|
||||
thumb_func_start CallbackEffectMoveRelative
|
||||
CallbackEffectMoveRelative:
|
||||
push {lr}
|
||||
bl sub_80AD430
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end CallbackEffectMoveRelative
|
||||
|
||||
thumb_func_start GroundEffect_Action
|
||||
GroundEffect_Action:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
ldr r0, _080AD754
|
||||
ldr r5, [r0]
|
||||
movs r7, 0
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
mov r8, r0
|
||||
movs r1, 0x9E
|
||||
lsls r1, 1
|
||||
adds r6, r5, r1
|
||||
_080AD72C:
|
||||
movs r3, 0x6
|
||||
ldrsh r0, [r5, r3]
|
||||
cmp r0, r8
|
||||
beq _080AD78A
|
||||
adds r4, r5, 0
|
||||
adds r4, 0x38
|
||||
adds r0, r4, 0
|
||||
ldr r1, _080AD758
|
||||
bl HandleAction
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0
|
||||
beq _080AD75C
|
||||
cmp r0, 0x4
|
||||
bne _080AD768
|
||||
adds r0, r7, 0
|
||||
bl GroundEffect_Delete
|
||||
b _080AD78A
|
||||
.align 2, 0
|
||||
_080AD754: .4byte gGroundEffects
|
||||
_080AD758: .4byte gUnknown_811874C
|
||||
_080AD75C:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
movs r2, 0x1
|
||||
ldr r3, _080AD7A8
|
||||
bl ExecutePredefinedScript
|
||||
_080AD768:
|
||||
ldrb r0, [r6]
|
||||
cmp r0, 0
|
||||
beq _080AD78A
|
||||
movs r0, 0
|
||||
strb r0, [r6]
|
||||
movs r1, 0xA2
|
||||
lsls r1, 1
|
||||
adds r0, r5, r1
|
||||
ldrh r2, [r6, 0x2]
|
||||
movs r3, 0xF8
|
||||
lsls r3, 5
|
||||
adds r1, r3, 0
|
||||
ands r1, r2
|
||||
lsls r2, 24
|
||||
asrs r2, 24
|
||||
bl sub_80A6EFC
|
||||
_080AD78A:
|
||||
adds r0, r7, 0x1
|
||||
lsls r0, 16
|
||||
asrs r7, r0, 16
|
||||
movs r0, 0xE2
|
||||
lsls r0, 1
|
||||
adds r6, r0
|
||||
adds r5, r0
|
||||
cmp r7, 0xF
|
||||
ble _080AD72C
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080AD7A8: .4byte gUnknown_8118758
|
||||
thumb_func_end GroundEffect_Action
|
||||
|
||||
thumb_func_start sub_80AD7AC
|
||||
sub_80AD7AC:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
sub sp, 0x8
|
||||
ldr r0, _080AD864
|
||||
ldr r6, [r0]
|
||||
movs r0, 0
|
||||
mov r8, r0
|
||||
movs r1, 0x1
|
||||
negs r1, r1
|
||||
mov r9, r1
|
||||
movs r2, 0x90
|
||||
lsls r2, 1
|
||||
adds r4, r6, r2
|
||||
_080AD7CA:
|
||||
movs r0, 0x6
|
||||
ldrsh r1, [r6, r0]
|
||||
mov r2, r9
|
||||
lsls r0, r2, 16
|
||||
asrs r0, 16
|
||||
cmp r1, r0
|
||||
beq _080AD83C
|
||||
ldr r0, [r4, 0x4]
|
||||
ldr r1, [r6, 0x14]
|
||||
adds r0, r1
|
||||
str r0, [sp]
|
||||
ldr r0, [r4, 0x8]
|
||||
ldr r1, [r6, 0x18]
|
||||
adds r0, r1
|
||||
str r0, [sp, 0x4]
|
||||
ldr r1, [r4, 0x14]
|
||||
ldr r0, [r4, 0x18]
|
||||
adds r7, r1, r0
|
||||
movs r0, 0xA2
|
||||
lsls r0, 1
|
||||
adds r5, r6, r0
|
||||
adds r0, r5, 0
|
||||
bl sub_80A66D4
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080AD818
|
||||
movs r0, 0
|
||||
strb r0, [r4, 0x1C]
|
||||
ldrh r2, [r4, 0x1E]
|
||||
movs r0, 0xF8
|
||||
lsls r0, 5
|
||||
adds r1, r0, 0
|
||||
ands r1, r2
|
||||
lsls r2, 24
|
||||
asrs r2, 24
|
||||
adds r0, r5, 0
|
||||
bl sub_80A6EFC
|
||||
_080AD818:
|
||||
movs r1, 0x20
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0
|
||||
beq _080AD832
|
||||
adds r1, r0, 0
|
||||
movs r2, 0
|
||||
ldrsb r2, [r4, r2]
|
||||
adds r0, r5, 0
|
||||
movs r3, 0
|
||||
bl sub_80A7040
|
||||
movs r0, 0
|
||||
strh r0, [r4, 0x20]
|
||||
_080AD832:
|
||||
adds r0, r5, 0
|
||||
mov r1, sp
|
||||
adds r2, r7, 0
|
||||
bl sub_80A7720
|
||||
_080AD83C:
|
||||
mov r0, r8
|
||||
adds r0, 0x1
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
mov r8, r0
|
||||
movs r0, 0xE2
|
||||
lsls r0, 1
|
||||
adds r4, r0
|
||||
adds r6, r0
|
||||
mov r1, r8
|
||||
cmp r1, 0xF
|
||||
ble _080AD7CA
|
||||
add sp, 0x8
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080AD864: .4byte gGroundEffects
|
||||
thumb_func_end sub_80AD7AC
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -1,15 +1,7 @@
|
|||
.section .rodata
|
||||
|
||||
.align 2
|
||||
|
||||
@ ground_effect.c
|
||||
|
||||
.byte 0xf6, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_81185D8
|
||||
.byte 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0xdb, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_81185D8
|
||||
gUnknown_81185D8: @ 81185D8
|
||||
.string "../ground/ground_effect.c\0"
|
||||
|
|
|
|||
|
|
@ -357,7 +357,6 @@ SECTIONS {
|
|||
src/ground_lives.o(.text);
|
||||
src/ground_object.o(.text);
|
||||
src/ground_effect.o(.text);
|
||||
asm/ground_effect.o(.text);
|
||||
src/ground_link.o(.text);
|
||||
src/ground_event.o(.text);
|
||||
src/unk_dungeon_load_maybe.o(.text);
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ struct GroundEffectTypeData
|
|||
|
||||
extern struct GroundEffectTypeData gGroundEffectTypes[];
|
||||
|
||||
extern const s16 gUnknown_81185F2[];
|
||||
extern DebugLocation gUnknown_8118610;
|
||||
extern const u8 gUnknown_811861C[];
|
||||
extern const u8 gUnknown_8118640[];
|
||||
|
|
@ -75,25 +76,31 @@ void sub_80A7714(struct UnkGroundSpriteStruct *);
|
|||
void sub_80A6688(struct UnkGroundSpriteStruct *, s32);
|
||||
extern bool8 GroundScriptNotify(Action*, s32);
|
||||
extern bool8 GroundScript_Cancel(Action *r0);
|
||||
s32 sub_80AD3E0(GroundEffect *, PixelPos *);
|
||||
extern bool8 sub_80A66F8(struct UnkGroundSpriteStruct *ptr);
|
||||
extern bool8 sub_80A671C(struct UnkGroundSpriteStruct *ptr);
|
||||
bool8 sub_80A66D4(struct UnkGroundSpriteStruct *ptr);
|
||||
void sub_80A7720(struct UnkGroundSpriteStruct *ptr, PixelPos *pixelPos, s32 a2);
|
||||
|
||||
extern s16 CallbackEffectGetIndex(void *ptr);
|
||||
extern void CallbackEffectGetSize(void *effectPtr_, PixelPos *out);
|
||||
extern void CallbackEffectSetHitboxPos(void *effectPtr_, PixelPos *posOrNull);
|
||||
extern void CallbackEffectSetPositionBounds(void *effectPtr_, PixelPos *from, PixelPos *to);
|
||||
extern void CallbackEffectGetHitboxCenter(void *effectPtr_, PixelPos *out);
|
||||
extern s32 CallbackEffectMoveReal(void *effectPtr_, PixelPos *pos);
|
||||
extern void CallbackEffectGetPosHeightAndUnk(void *effectPtr_, u32 *height, u32 *unk);
|
||||
extern void CallbackEffectSetPosHeight(void *effectPtr_, u32 height);
|
||||
extern void CallbackEffectGetDirection(void *effectPtr_, s8 *dir);
|
||||
extern void CallbackEffectSetDirection(void *effectPtr_, s32 dir_);
|
||||
extern void CallbackEffectSetEventIndex(void *effectPtr_, u16 a1);
|
||||
extern void CallbackEffectSetUnk_80AD670(void *effectPtr_, s32 a1_, s32 a2);
|
||||
extern bool8 CallbackEffectSpriteRelatedCheck_80AD690(void *effectPtr_);
|
||||
extern bool8 CallbackEffectSpriteRelated_80AD6B4(void *effectPtr_);
|
||||
extern void CallbackEffectGetFlags(void *effectPtr_, u32 *flags);
|
||||
extern void CallbackEffectSetFlags(void *effectPtr_, u32 flags);
|
||||
extern void CallbackEffectClearFlags(void *effectPtr_, u32 flags);
|
||||
extern s32 CallbackEffectMoveRelative(void *effectPtr_, PixelPos *pos);
|
||||
|
||||
static s16 CallbackEffectGetIndex(void *ptr);
|
||||
static void CallbackEffectGetSize(void *effectPtr_, PixelPos *out);
|
||||
static void CallbackEffectSetHitboxPos(void *effectPtr_, PixelPos *posOrNull);
|
||||
static void CallbackEffectSetPositionBounds(void *effectPtr_, PixelPos *from, PixelPos *to);
|
||||
static void CallbackEffectGetHitboxCenter(void *effectPtr_, PixelPos *out);
|
||||
static s32 CallbackEffectMoveReal(void *effectPtr_, PixelPos *pos);
|
||||
static void CallbackEffectGetPosHeightAndUnk(void *effectPtr_, u32 *height, u32 *unk);
|
||||
static void CallbackEffectSetPosHeight(void *effectPtr_, u32 height);
|
||||
static void CallbackEffectGetDirection(void *effectPtr_, s8 *dir);
|
||||
static void CallbackEffectSetDirection(void *effectPtr_, s32 dir_);
|
||||
static void CallbackEffectSetEventIndex(void *effectPtr_, u16 a1);
|
||||
static void CallbackEffectSetUnk_80AD670(void *effectPtr_, s32 a1_, s32 a2);
|
||||
static bool8 CallbackEffectSpriteRelatedCheck_80AD690(void *effectPtr_);
|
||||
static bool8 CallbackEffectSpriteRelated_80AD6B4(void *effectPtr_);
|
||||
static void CallbackEffectGetFlags(void *effectPtr_, u32 *flags);
|
||||
static void CallbackEffectSetFlags(void *effectPtr_, u32 flags);
|
||||
static void CallbackEffectClearFlags(void *effectPtr_, u32 flags);
|
||||
static s32 CallbackEffectMoveRelative(void *effectPtr_, PixelPos *pos);
|
||||
|
||||
static const CallbackData gGroundEffectCallbacks = {
|
||||
.maybeId = 3,
|
||||
|
|
@ -118,6 +125,40 @@ static const CallbackData gGroundEffectCallbacks = {
|
|||
.func4C_spriteRelatedCheck = CallbackEffectSpriteRelatedCheck_80AD690,
|
||||
.func50_spriteRelated = CallbackEffectSpriteRelated_80AD6B4,
|
||||
};
|
||||
extern const u8 gUnknown_81185D8[];
|
||||
#define FAKE_FILENAME gUnknown_81185D8
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
static const struct ScriptCommand gUnusedScript[] = {
|
||||
DEBUGINFO, // Needs to be line 155
|
||||
LABEL(0),
|
||||
WAIT(0x78),
|
||||
JUMP_LABEL(0),
|
||||
};
|
||||
//ALIGNED(4) const u8 gUnknown_81185D8[] = "../ground/ground_effect.c";
|
||||
|
||||
|
||||
void AllocGroundEffects()
|
||||
{
|
||||
|
|
@ -765,9 +806,6 @@ s16 sub_80AD360(s32 index_, PixelPos *pos)
|
|||
return parent->kind;
|
||||
}
|
||||
|
||||
extern s32 sub_80AD3E0(GroundEffect *, PixelPos *);
|
||||
|
||||
|
||||
s16 sub_80AD3B4(s32 index_, PixelPos *pos)
|
||||
{
|
||||
s32 index = (s16)index_;
|
||||
|
|
@ -778,3 +816,371 @@ s16 sub_80AD3B4(s32 index_, PixelPos *pos)
|
|||
return parent->kind;
|
||||
}
|
||||
|
||||
NAKED
|
||||
s32 sub_80AD3E0(GroundEffect *r0, PixelPos *r1)
|
||||
{
|
||||
asm_unified(
|
||||
"\tpush {r4-r7,lr}\n"
|
||||
"\tmov r12, r0\n"
|
||||
"\tldr r3, [r1]\n"
|
||||
"\tldr r2, [r0, 0x14]\n"
|
||||
"\tsubs r6, r3, r2\n"
|
||||
"\tldr r1, [r1, 0x4]\n"
|
||||
"\tldr r0, [r0, 0x18]\n"
|
||||
"\tsubs r7, r1, r0\n"
|
||||
"\tadds r4, r3, r2\n"
|
||||
"\tadds r5, r1, r0\n"
|
||||
"\tmov r1, r12\n"
|
||||
"\tldr r0, [r1, 0x28]\n"
|
||||
"\tcmp r6, r0\n"
|
||||
"\tblt _080AD40E\n"
|
||||
"\tldr r0, [r1, 0x30]\n"
|
||||
"\tcmp r4, r0\n"
|
||||
"\tbge _080AD40E\n"
|
||||
"\tldr r0, [r1, 0x2C]\n"
|
||||
"\tcmp r7, r0\n"
|
||||
"\tblt _080AD40E\n"
|
||||
"\tldr r0, [r1, 0x34]\n"
|
||||
"\tcmp r5, r0\n"
|
||||
"\tblt _080AD412\n"
|
||||
"_080AD40E:\n"
|
||||
"\tmovs r0, 0x1\n"
|
||||
"\tb _080AD428\n"
|
||||
"_080AD412:\n"
|
||||
"\tmovs r0, 0x92\n"
|
||||
"\tlsls r0, 1\n"
|
||||
"\tadd r0, r12\n"
|
||||
"\tstr r6, [r0]\n"
|
||||
"\tstr r7, [r0, 0x4]\n"
|
||||
"\tmovs r0, 0x96\n"
|
||||
"\tlsls r0, 1\n"
|
||||
"\tadd r0, r12\n"
|
||||
"\tstr r4, [r0]\n"
|
||||
"\tstr r5, [r0, 0x4]\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"_080AD428:\n"
|
||||
"\tpop {r4-r7}\n"
|
||||
"\tpop {r1}\n"
|
||||
"\tbx r1");
|
||||
}
|
||||
|
||||
NAKED
|
||||
s32 sub_80AD430(GroundEffect *r0, PixelPos *r1)
|
||||
{
|
||||
asm_unified(
|
||||
"\tpush {r4-r6,lr}\n"
|
||||
"\tmov r12, r0\n"
|
||||
"\tmovs r0, 0x92\n"
|
||||
"\tlsls r0, 1\n"
|
||||
"\tadd r0, r12\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"\tldr r2, [r1]\n"
|
||||
"\tadds r5, r0, r2\n"
|
||||
"\tmovs r0, 0x94\n"
|
||||
"\tlsls r0, 1\n"
|
||||
"\tadd r0, r12\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"\tldr r1, [r1, 0x4]\n"
|
||||
"\tadds r6, r0, r1\n"
|
||||
"\tmovs r0, 0x96\n"
|
||||
"\tlsls r0, 1\n"
|
||||
"\tadd r0, r12\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"\tadds r3, r0, r2\n"
|
||||
"\tmovs r0, 0x98\n"
|
||||
"\tlsls r0, 1\n"
|
||||
"\tadd r0, r12\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"\tadds r4, r0, r1\n"
|
||||
"\tmov r0, r12\n"
|
||||
"\tldr r1, [r0, 0x28]\n"
|
||||
"\tcmp r5, r1\n"
|
||||
"\tbge _080AD470\n"
|
||||
"\tadds r5, r1, 0\n"
|
||||
"\tldr r0, [r0, 0xC]\n"
|
||||
"\tadds r3, r1, r0\n"
|
||||
"\tb _080AD47E\n"
|
||||
"_080AD470:\n"
|
||||
"\tmov r2, r12\n"
|
||||
"\tldr r1, [r2, 0x30]\n"
|
||||
"\tcmp r3, r1\n"
|
||||
"\tblt _080AD47E\n"
|
||||
"\tldr r0, [r2, 0xC]\n"
|
||||
"\tsubs r5, r1, r0\n"
|
||||
"\tadds r3, r1, 0\n"
|
||||
"_080AD47E:\n"
|
||||
"\tmov r0, r12\n"
|
||||
"\tldr r1, [r0, 0x2C]\n"
|
||||
"\tcmp r6, r1\n"
|
||||
"\tbge _080AD48E\n"
|
||||
"\tadds r6, r1, 0\n"
|
||||
"\tldr r0, [r0, 0x10]\n"
|
||||
"\tadds r4, r1, r0\n"
|
||||
"\tb _080AD49C\n"
|
||||
"_080AD48E:\n"
|
||||
"\tmov r2, r12\n"
|
||||
"\tldr r1, [r2, 0x34]\n"
|
||||
"\tcmp r4, r1\n"
|
||||
"\tblt _080AD49C\n"
|
||||
"\tldr r0, [r2, 0x10]\n"
|
||||
"\tsubs r6, r1, r0\n"
|
||||
"\tadds r4, r1, 0\n"
|
||||
"_080AD49C:\n"
|
||||
"\tmovs r0, 0x92\n"
|
||||
"\tlsls r0, 1\n"
|
||||
"\tadd r0, r12\n"
|
||||
"\tstr r5, [r0]\n"
|
||||
"\tstr r6, [r0, 0x4]\n"
|
||||
"\tmovs r0, 0x96\n"
|
||||
"\tlsls r0, 1\n"
|
||||
"\tadd r0, r12\n"
|
||||
"\tstr r3, [r0]\n"
|
||||
"\tstr r4, [r0, 0x4]\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"\tpop {r4-r6}\n"
|
||||
"\tpop {r1}\n"
|
||||
"\tbx r1");
|
||||
|
||||
}
|
||||
|
||||
static s16 CallbackEffectGetIndex(void *ptr)
|
||||
{
|
||||
struct GroundEffect *groundObject = ptr;
|
||||
return groundObject->id;
|
||||
}
|
||||
|
||||
static void CallbackEffectGetSize(void *objectPtr_, PixelPos *out)
|
||||
{
|
||||
struct GroundEffect *objectPtr = objectPtr_;
|
||||
*out = objectPtr->unkC;
|
||||
}
|
||||
|
||||
static void CallbackEffectSetHitboxPos(void *objectPtr_, PixelPos *posOrNull)
|
||||
{
|
||||
struct GroundEffect *objectPtr = objectPtr_;
|
||||
|
||||
if (posOrNull != NULL) {
|
||||
objectPtr->unk124.x = posOrNull->x - objectPtr->unk14.x;
|
||||
objectPtr->unk12C.x = posOrNull->x + objectPtr->unk14.x;
|
||||
objectPtr->unk124.y = posOrNull->y - objectPtr->unk14.y;
|
||||
objectPtr->unk12C.y = posOrNull->y + objectPtr->unk14.y;
|
||||
}
|
||||
else {
|
||||
objectPtr->unk124.x = objectPtr->unk20.x - objectPtr->unk14.x;
|
||||
objectPtr->unk12C.x = objectPtr->unk20.x + objectPtr->unk14.x;
|
||||
objectPtr->unk124.y = objectPtr->unk20.y - objectPtr->unk14.y;
|
||||
objectPtr->unk12C.y = objectPtr->unk20.y + objectPtr->unk14.y;
|
||||
objectPtr->unk134.x = objectPtr->unk134.y = 0;
|
||||
if (objectPtr->direction != objectPtr->direction1) {
|
||||
objectPtr->directionRelated = TRUE;
|
||||
}
|
||||
objectPtr->direction = objectPtr->direction1;
|
||||
}
|
||||
}
|
||||
|
||||
static void CallbackEffectSetPositionBounds(void *objectPtr_, PixelPos *from, PixelPos *to)
|
||||
{
|
||||
struct GroundEffect *objectPtr = objectPtr_;
|
||||
|
||||
objectPtr->unk28 = *from;
|
||||
objectPtr->unk30 = *to;
|
||||
}
|
||||
|
||||
static void CallbackEffectGetHitboxCenter(void *objectPtr_, PixelPos *out)
|
||||
{
|
||||
struct GroundEffect *objectPtr = objectPtr_;
|
||||
|
||||
out->x = objectPtr->unk124.x + objectPtr->unk14.x;
|
||||
out->y = objectPtr->unk124.y + objectPtr->unk14.y;
|
||||
}
|
||||
|
||||
static s32 CallbackEffectMoveReal(void *objectPtr_, PixelPos *pos)
|
||||
{
|
||||
struct GroundEffect *objectPtr = objectPtr_;
|
||||
return sub_80AD3E0(objectPtr, pos);
|
||||
}
|
||||
|
||||
static void CallbackEffectGetPosHeightAndUnk(void *objectPtr_, u32 *height, u32 *unk)
|
||||
{
|
||||
struct GroundEffect *objectPtr = objectPtr_;
|
||||
|
||||
*height = objectPtr->unk134.x;
|
||||
*unk= objectPtr->unk134.y;
|
||||
}
|
||||
|
||||
static void CallbackEffectSetPosHeight(void *objectPtr_, u32 height)
|
||||
{
|
||||
struct GroundEffect *objectPtr = objectPtr_;
|
||||
objectPtr->unk134.x = height;
|
||||
|
||||
}
|
||||
|
||||
static void CallbackEffectGetDirection(void *objectPtr_, s8 *dir)
|
||||
{
|
||||
struct GroundEffect *objectPtr = objectPtr_;
|
||||
*dir = objectPtr->direction;
|
||||
|
||||
}
|
||||
|
||||
static void CallbackEffectSetDirection(void *livesPtr_, s32 direction)
|
||||
{
|
||||
struct GroundEffect *livesPtr = livesPtr_;
|
||||
s32 dir = (s8) direction;
|
||||
|
||||
if (dir != -1) {
|
||||
livesPtr->direction = dir;
|
||||
}
|
||||
}
|
||||
|
||||
static void CallbackEffectSetEventIndex(void *livesPtr_, u16 a1) {
|
||||
struct GroundEffect *livesPtr = livesPtr_;
|
||||
|
||||
u32 r1;
|
||||
u16 f1 = a1 & 0xFF;
|
||||
|
||||
if (f1 != 0)
|
||||
{
|
||||
r1 = gUnknown_81185F2[f1];
|
||||
}
|
||||
else
|
||||
{
|
||||
r1 = livesPtr->unk13E;
|
||||
}
|
||||
|
||||
if(livesPtr->unk13E != (s16) r1)
|
||||
{
|
||||
livesPtr->unk13E = r1;
|
||||
livesPtr->directionRelated = 1;
|
||||
}
|
||||
else if((livesPtr->unk13E & 0x1000))
|
||||
livesPtr->directionRelated = 1;
|
||||
}
|
||||
|
||||
static void CallbackEffectSetUnk_80AD670(void *objectPtr_, s32 a1_, s32 a2) {
|
||||
struct GroundEffect *livesPtr = objectPtr_;
|
||||
|
||||
s32 a1Match = (s16) a1_;
|
||||
#ifndef NONMATCHING
|
||||
register s16 a1 asm("r2") = a1Match;
|
||||
#else
|
||||
s32 a1 = a1Match;
|
||||
#endif
|
||||
|
||||
if (a1Match == 0) {
|
||||
a1 = 448;
|
||||
}
|
||||
|
||||
livesPtr->unk140 = a1;
|
||||
}
|
||||
|
||||
static bool8 CallbackEffectSpriteRelatedCheck_80AD690(void *objectPtr_)
|
||||
{
|
||||
struct GroundEffect *livesPtr = objectPtr_;
|
||||
|
||||
if (livesPtr->directionRelated) {
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
return sub_80A66F8(&livesPtr->unk144);
|
||||
}
|
||||
}
|
||||
|
||||
static bool8 CallbackEffectSpriteRelated_80AD6B4(void *objectPtr_)
|
||||
{
|
||||
struct GroundEffect *livesPtr = objectPtr_;
|
||||
|
||||
if (livesPtr->unk140 != 0) {
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
return sub_80A671C(&livesPtr->unk144);
|
||||
}
|
||||
}
|
||||
|
||||
static void CallbackEffectGetFlags(void *livesPtr_, u32 *flags)
|
||||
{
|
||||
struct GroundEffect *livesPtr = livesPtr_;
|
||||
|
||||
*flags = livesPtr->flags;
|
||||
}
|
||||
|
||||
static void CallbackEffectSetFlags(void *livesPtr_, u32 flags)
|
||||
{
|
||||
struct GroundEffect *livesPtr = livesPtr_;
|
||||
|
||||
sub_80AD0C8(livesPtr->id, flags);
|
||||
}
|
||||
|
||||
static void CallbackEffectClearFlags(void *livesPtr_, u32 flags)
|
||||
{
|
||||
struct GroundEffect *livesPtr = livesPtr_;
|
||||
|
||||
sub_80AD10C(livesPtr->id, flags);
|
||||
}
|
||||
|
||||
static s32 CallbackEffectMoveRelative(void *livesPtr_, PixelPos *pos)
|
||||
{
|
||||
struct GroundEffect *livesPtr = livesPtr_;
|
||||
|
||||
return sub_80AD430(livesPtr, pos);
|
||||
}
|
||||
|
||||
extern DebugLocation gUnknown_811874C;
|
||||
extern DebugLocation gUnknown_8118758;
|
||||
extern s16 HandleAction(Action *action, DebugLocation *debug);
|
||||
|
||||
void GroundEffect_Action(void)
|
||||
{
|
||||
GroundEffect *objectPtr;
|
||||
s32 i;
|
||||
s32 ret;
|
||||
|
||||
for (objectPtr = &gGroundEffects[0], i = 0; i < NUM_GROUND_EFFECTS; i = (s16)(i + 1), objectPtr++)
|
||||
{
|
||||
if (objectPtr->kind != -1) {
|
||||
ret = HandleAction(&objectPtr->action, &gUnknown_811874C);
|
||||
switch(ret)
|
||||
{
|
||||
case 4:
|
||||
GroundEffect_Delete(i);
|
||||
continue;
|
||||
case 0:
|
||||
ExecutePredefinedScript(&objectPtr->action, NULL, 1, &gUnknown_8118758);
|
||||
break;
|
||||
}
|
||||
|
||||
if (objectPtr->directionRelated) {
|
||||
objectPtr->directionRelated = FALSE;
|
||||
sub_80A6EFC(&objectPtr->unk144,objectPtr->unk13E & 0x1f00,(s8)objectPtr->unk13E);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80AD7AC(void)
|
||||
{
|
||||
GroundEffect *objectPtr;
|
||||
s32 i;
|
||||
s32 minus1;
|
||||
|
||||
|
||||
for (objectPtr = &gGroundEffects[0], i = 0, minus1 = -1; i < NUM_GROUND_EFFECTS; i = (s16)(i + 1), objectPtr++)
|
||||
{
|
||||
minus1 = (s16)minus1;
|
||||
if (objectPtr->kind != (s16)minus1) {
|
||||
|
||||
PixelPos pos = {objectPtr->unk124.x + (objectPtr->unk14).x, objectPtr->unk124.y + (objectPtr->unk14).y};
|
||||
s32 num = objectPtr->unk134.x + objectPtr->unk134.y;
|
||||
|
||||
if ((sub_80A66D4(&objectPtr->unk144))) {
|
||||
objectPtr->directionRelated = 0;
|
||||
sub_80A6EFC(&objectPtr->unk144,objectPtr->unk13E & 0x1f00,(s8)objectPtr->unk13E);
|
||||
}
|
||||
if (objectPtr->unk140 != 0) {
|
||||
sub_80A7040(&objectPtr->unk144,objectPtr->unk140,objectPtr->direction,0);
|
||||
objectPtr->unk140 = 0;
|
||||
}
|
||||
sub_80A7720(&objectPtr->unk144, &pos, num);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user