mirror of
https://github.com/pret/pmd-red.git
synced 2026-06-22 12:30:31 -05:00
CallbackLivesMoveRelative
This commit is contained in:
parent
fa95910392
commit
8beb47ea4b
|
|
@ -6,457 +6,7 @@
|
|||
.text
|
||||
|
||||
|
||||
thumb_func_start sub_80AAF68
|
||||
sub_80AAF68:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
movs r1, 0x8E
|
||||
lsls r1, 1
|
||||
adds r0, r4, r1
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x80
|
||||
lsls r1, 7
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080AB002
|
||||
movs r2, 0
|
||||
ldrsh r0, [r4, r2]
|
||||
movs r1, 0x1
|
||||
bl sub_80A93F0
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080AAFD0
|
||||
movs r1, 0xE4
|
||||
lsls r1, 1
|
||||
adds r0, r4, r1
|
||||
movs r2, 0
|
||||
ldrsh r1, [r0, r2]
|
||||
cmp r1, 0
|
||||
bne _080AAFA6
|
||||
movs r0, 0xB5
|
||||
lsls r0, 1
|
||||
adds r1, r4, r0
|
||||
adds r0, 0x4C
|
||||
b _080AAFB4
|
||||
_080AAFA6:
|
||||
movs r0, 0xDB
|
||||
lsls r0, 1
|
||||
cmp r1, r0
|
||||
beq _080AAFC2
|
||||
subs r0, 0x4C
|
||||
adds r1, r4, r0
|
||||
adds r0, 0x56
|
||||
_080AAFB4:
|
||||
strh r0, [r1]
|
||||
movs r2, 0xB6
|
||||
lsls r2, 1
|
||||
adds r1, r4, r2
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
str r0, [r1]
|
||||
_080AAFC2:
|
||||
movs r1, 0
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r1, 0x80
|
||||
lsls r1, 17
|
||||
bl sub_80A8750
|
||||
b _080AB002
|
||||
_080AAFD0:
|
||||
movs r2, 0xE4
|
||||
lsls r2, 1
|
||||
adds r0, r4, r2
|
||||
movs r2, 0
|
||||
ldrsh r1, [r0, r2]
|
||||
movs r0, 0xDB
|
||||
lsls r0, 1
|
||||
cmp r1, r0
|
||||
bne _080AAFF6
|
||||
subs r0, 0x4C
|
||||
adds r1, r4, r0
|
||||
adds r0, 0x56
|
||||
strh r0, [r1]
|
||||
movs r2, 0xB6
|
||||
lsls r2, 1
|
||||
adds r1, r4, r2
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
str r0, [r1]
|
||||
_080AAFF6:
|
||||
movs r1, 0
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r1, 0x80
|
||||
lsls r1, 17
|
||||
bl sub_80A86C8
|
||||
_080AB002:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80AAF68
|
||||
|
||||
thumb_func_start CallbackLivesGetIndex
|
||||
CallbackLivesGetIndex:
|
||||
movs r1, 0
|
||||
ldrsh r0, [r0, r1]
|
||||
bx lr
|
||||
thumb_func_end CallbackLivesGetIndex
|
||||
|
||||
thumb_func_start CallbackLivesGetSize
|
||||
CallbackLivesGetSize:
|
||||
ldr r2, [r0, 0xC]
|
||||
ldr r3, [r0, 0x10]
|
||||
str r2, [r1]
|
||||
str r3, [r1, 0x4]
|
||||
bx lr
|
||||
thumb_func_end CallbackLivesGetSize
|
||||
|
||||
thumb_func_start CallbackLivesSetHitboxPos
|
||||
CallbackLivesSetHitboxPos:
|
||||
push {r4,lr}
|
||||
adds r3, r0, 0
|
||||
adds r4, r1, 0
|
||||
cmp r4, 0
|
||||
beq _080AB05C
|
||||
movs r0, 0xA2
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r3, 0x14]
|
||||
subs r0, r1, r0
|
||||
str r0, [r2]
|
||||
movs r0, 0xA6
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
ldr r0, [r3, 0x14]
|
||||
adds r1, r0
|
||||
str r1, [r2]
|
||||
movs r0, 0xA4
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
ldr r1, [r4, 0x4]
|
||||
ldr r0, [r3, 0x18]
|
||||
subs r0, r1, r0
|
||||
str r0, [r2]
|
||||
movs r0, 0xA8
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
ldr r0, [r3, 0x18]
|
||||
adds r1, r0
|
||||
str r1, [r2]
|
||||
b _080AB0C2
|
||||
_080AB05C:
|
||||
movs r0, 0xA2
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
ldr r0, [r3, 0x20]
|
||||
ldr r1, [r3, 0x14]
|
||||
subs r0, r1
|
||||
str r0, [r2]
|
||||
movs r0, 0xA6
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
ldr r0, [r3, 0x20]
|
||||
ldr r1, [r3, 0x14]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
movs r0, 0xA4
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
ldr r0, [r3, 0x24]
|
||||
ldr r1, [r3, 0x18]
|
||||
subs r0, r1
|
||||
str r0, [r2]
|
||||
movs r0, 0xA8
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
ldr r0, [r3, 0x24]
|
||||
ldr r1, [r3, 0x18]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
movs r2, 0xAA
|
||||
lsls r2, 1
|
||||
adds r1, r3, r2
|
||||
adds r2, 0x4
|
||||
adds r0, r3, r2
|
||||
str r4, [r0]
|
||||
str r4, [r1]
|
||||
movs r0, 0xA1
|
||||
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 _080AB0BE
|
||||
movs r0, 0xAE
|
||||
lsls r0, 1
|
||||
adds r1, r3, r0
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
_080AB0BE:
|
||||
ldrb r0, [r3, 0x1C]
|
||||
strb r0, [r2]
|
||||
_080AB0C2:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CallbackLivesSetHitboxPos
|
||||
|
||||
thumb_func_start CallbackLivesSetPositionBounds
|
||||
CallbackLivesSetPositionBounds:
|
||||
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 CallbackLivesSetPositionBounds
|
||||
|
||||
thumb_func_start CallbackLivesGetHitboxCenter
|
||||
CallbackLivesGetHitboxCenter:
|
||||
adds r3, r0, 0
|
||||
movs r2, 0xA2
|
||||
lsls r2, 1
|
||||
adds r0, r3, r2
|
||||
ldr r0, [r0]
|
||||
ldr r2, [r3, 0x14]
|
||||
adds r0, r2
|
||||
str r0, [r1]
|
||||
movs r2, 0xA4
|
||||
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 CallbackLivesGetHitboxCenter
|
||||
|
||||
thumb_func_start CallbackLivesMoveReal
|
||||
CallbackLivesMoveReal:
|
||||
push {lr}
|
||||
bl sub_80A9F20
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end CallbackLivesMoveReal
|
||||
|
||||
thumb_func_start CallbackLivesGetPosHeightAndUnk
|
||||
CallbackLivesGetPosHeightAndUnk:
|
||||
push {r4,lr}
|
||||
adds r3, r0, 0
|
||||
movs r4, 0xAA
|
||||
lsls r4, 1
|
||||
adds r0, r3, r4
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
movs r1, 0xAC
|
||||
lsls r1, 1
|
||||
adds r0, r3, r1
|
||||
ldr r0, [r0]
|
||||
str r0, [r2]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CallbackLivesGetPosHeightAndUnk
|
||||
|
||||
thumb_func_start CallbackLivesSetPosHeight
|
||||
CallbackLivesSetPosHeight:
|
||||
movs r2, 0xAA
|
||||
lsls r2, 1
|
||||
adds r0, r2
|
||||
str r1, [r0]
|
||||
bx lr
|
||||
thumb_func_end CallbackLivesSetPosHeight
|
||||
|
||||
thumb_func_start CallbackLivesGetDirection
|
||||
CallbackLivesGetDirection:
|
||||
movs r2, 0xA1
|
||||
lsls r2, 1
|
||||
adds r0, r2
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1]
|
||||
bx lr
|
||||
thumb_func_end CallbackLivesGetDirection
|
||||
|
||||
thumb_func_start CallbackLivesSetDirection
|
||||
CallbackLivesSetDirection:
|
||||
push {lr}
|
||||
adds r3, r0, 0
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
beq _080AB17C
|
||||
movs r0, 0xA1
|
||||
lsls r0, 1
|
||||
adds r2, r3, r0
|
||||
lsls r0, r1, 24
|
||||
lsrs r0, 24
|
||||
strb r0, [r2]
|
||||
ldr r2, _080AB180
|
||||
adds r1, r3, r2
|
||||
ldrb r1, [r1]
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
lsls r0, 24
|
||||
asrs r0, 24
|
||||
cmp r1, r0
|
||||
beq _080AB17C
|
||||
movs r0, 0xAE
|
||||
lsls r0, 1
|
||||
adds r1, r3, r0
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
_080AB17C:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080AB180: .4byte 0x0000015d
|
||||
thumb_func_end CallbackLivesSetDirection
|
||||
|
||||
thumb_func_start CallbackLivesSetEventIndex
|
||||
CallbackLivesSetEventIndex:
|
||||
push {lr}
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
bl sub_80A9750
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CallbackLivesSetEventIndex
|
||||
|
||||
thumb_func_start CallbackLivesSetUnk_80AB194
|
||||
CallbackLivesSetUnk_80AB194:
|
||||
push {lr}
|
||||
mov r12, r0
|
||||
lsls r1, 16
|
||||
asrs r1, 16
|
||||
adds r3, r1, 0
|
||||
cmp r1, 0
|
||||
bne _080AB1A8
|
||||
movs r0, 0xE0
|
||||
lsls r0, 1
|
||||
adds r3, r0, 0
|
||||
_080AB1A8:
|
||||
movs r0, 0xB5
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
strh r3, [r0]
|
||||
movs r0, 0xB6
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r2, [r0]
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CallbackLivesSetUnk_80AB194
|
||||
|
||||
thumb_func_start nullsub_211
|
||||
nullsub_211:
|
||||
bx lr
|
||||
thumb_func_end nullsub_211
|
||||
|
||||
thumb_func_start CallbackLivesSpriteRelatedCheck_80AB1C0
|
||||
CallbackLivesSpriteRelatedCheck_80AB1C0:
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
movs r2, 0xAE
|
||||
lsls r2, 1
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _080AB1DE
|
||||
adds r2, 0x14
|
||||
adds r0, r1, r2
|
||||
bl sub_80A66F8
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
b _080AB1E0
|
||||
_080AB1DE:
|
||||
movs r0, 0x1
|
||||
_080AB1E0:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end CallbackLivesSpriteRelatedCheck_80AB1C0
|
||||
|
||||
thumb_func_start CallbackLivesSpriteRelated_80AB1E4
|
||||
CallbackLivesSpriteRelated_80AB1E4:
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
movs r2, 0xB5
|
||||
lsls r2, 1
|
||||
adds r0, r1, r2
|
||||
movs r2, 0
|
||||
ldrsh r0, [r0, r2]
|
||||
cmp r0, 0
|
||||
bne _080AB206
|
||||
movs r2, 0xB8
|
||||
lsls r2, 1
|
||||
adds r0, r1, r2
|
||||
bl sub_80A671C
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
b _080AB208
|
||||
_080AB206:
|
||||
movs r0, 0x1
|
||||
_080AB208:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end CallbackLivesSpriteRelated_80AB1E4
|
||||
|
||||
thumb_func_start CallbackLivesGetFlags
|
||||
CallbackLivesGetFlags:
|
||||
movs r2, 0x8E
|
||||
lsls r2, 1
|
||||
adds r0, r2
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
bx lr
|
||||
thumb_func_end CallbackLivesGetFlags
|
||||
|
||||
thumb_func_start CallbackLivesSetFlags
|
||||
CallbackLivesSetFlags:
|
||||
push {lr}
|
||||
movs r2, 0
|
||||
ldrsh r0, [r0, r2]
|
||||
bl sub_80A86C8
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CallbackLivesSetFlags
|
||||
|
||||
thumb_func_start CallbackLivesClearFlags
|
||||
CallbackLivesClearFlags:
|
||||
push {lr}
|
||||
movs r2, 0
|
||||
ldrsh r0, [r0, r2]
|
||||
bl sub_80A8750
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CallbackLivesClearFlags
|
||||
|
||||
thumb_func_start CallbackLivesSpriteRelated_80AB238
|
||||
CallbackLivesSpriteRelated_80AB238:
|
||||
push {lr}
|
||||
movs r2, 0xB8
|
||||
lsls r2, 1
|
||||
adds r0, r2
|
||||
bl sub_80A6EC8
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CallbackLivesSpriteRelated_80AB238
|
||||
|
||||
thumb_func_start CallbackLivesMoveRelative
|
||||
CallbackLivesMoveRelative:
|
||||
push {lr}
|
||||
bl sub_80A9F94
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end CallbackLivesMoveRelative
|
||||
|
||||
thumb_func_start GroundLives_Action
|
||||
GroundLives_Action:
|
||||
|
|
|
|||
|
|
@ -65,8 +65,8 @@ struct unkStruct_3001B84_sub
|
|||
u16 unk160;
|
||||
s32 unk164;
|
||||
s16 unk168;
|
||||
u16 unk16A;
|
||||
u8 fill16C[1];
|
||||
s16 unk16A;
|
||||
s32 unk16C;
|
||||
struct UnkGroundSpriteStruct unk170;
|
||||
};
|
||||
|
||||
|
|
@ -906,7 +906,7 @@ void sub_80A8750(s32 id_, u32 flags)
|
|||
}
|
||||
|
||||
extern void sub_809CD8C(struct Struct3001B84_sub120 *dst, s32 a1);
|
||||
extern bool8 sub_809B1C0(s32 a0, u32 kind, u8 *a2);
|
||||
extern bool8 sub_809B1C0(s32 a0, u32 kind, PokemonStruct1 *a2);
|
||||
extern bool8 GetPredefinedScript(Action *param_1, ScriptInfoSmall *script, s32 _index);
|
||||
extern bool8 sub_809D678(Action *action);
|
||||
|
||||
|
|
@ -920,7 +920,7 @@ void sub_80A87AC(s32 id_, s32 a1)
|
|||
}
|
||||
}
|
||||
|
||||
bool8 sub_80A87E0(s32 id_, u8 *a1)
|
||||
bool8 sub_80A87E0(s32 id_, PokemonStruct1 *a1)
|
||||
{
|
||||
s32 id = (s16) id_;
|
||||
struct unkStruct_3001B84_sub *livesPtr = &gGroundLives->array[id];
|
||||
|
|
@ -1915,7 +1915,7 @@ s32 sub_80AA180(struct unkStruct_3001B84_sub *livesPtr, u32 flags, PixelPos *pix
|
|||
s8 *dirDst = &livesPtr->unk142;
|
||||
s8 dirS8 = (s8) dir;
|
||||
*dirDst = dirS8;
|
||||
if (livesPtr->unk15D != dirS8) {
|
||||
if (livesPtr->unk15D != livesPtr->unk142) {
|
||||
livesPtr->unk15C = 1;
|
||||
}
|
||||
if (sub_80AA3F8(livesPtr, livesPtr->unk142))
|
||||
|
|
@ -1938,7 +1938,7 @@ s32 sub_80AA180(struct unkStruct_3001B84_sub *livesPtr, u32 flags, PixelPos *pix
|
|||
s8 *dirDst = &livesPtr->unk142;
|
||||
s8 dirS8 = (s8) dir;
|
||||
*dirDst = dirS8;
|
||||
if (livesPtr->unk15D != dirS8) {
|
||||
if (livesPtr->unk15D != livesPtr->unk142) {
|
||||
livesPtr->unk15C = 1;
|
||||
}
|
||||
if (sub_80AA3F8(livesPtr, livesPtr->unk142))
|
||||
|
|
@ -2417,7 +2417,7 @@ void sub_80AAAE8(struct unkStruct_3001B84_sub *livesPtr, u32 a1, s32 dir_)
|
|||
GetFunctionScript(NULL, &scriptInfo, 6);
|
||||
GroundLives_ExecuteScript(sp, (void *) &livesPtr->unk38.unk8, &scriptInfo);
|
||||
_ExecutePlayerScript(livesPtr, NULL, NULL);
|
||||
sub_809B1C0(7, 0, (void *) sub_80A8E9C(sp)); // TODO: fix
|
||||
sub_809B1C0(7, 0, sub_80A8E9C(sp)); // TODO: fix
|
||||
}
|
||||
else {
|
||||
sub_809B1C0(7, 0, NULL);
|
||||
|
|
@ -2460,4 +2460,184 @@ void sub_80AAAE8(struct unkStruct_3001B84_sub *livesPtr, u32 a1, s32 dir_)
|
|||
}
|
||||
}
|
||||
|
||||
void sub_80AAF68(struct unkStruct_3001B84_sub *livesPtr, u32 unused)
|
||||
{
|
||||
if (livesPtr->unk11C & 0x4000) {
|
||||
if (sub_80A93F0(livesPtr->unk0, 1)) {
|
||||
if (livesPtr->unk170.unk58 == 0) {
|
||||
livesPtr->unk16A = 438;
|
||||
livesPtr->unk16C = -1;
|
||||
}
|
||||
else if (livesPtr->unk170.unk58 != 438) {
|
||||
livesPtr->unk16A = 448;
|
||||
livesPtr->unk16C = -1;
|
||||
}
|
||||
sub_80A8750(livesPtr->unk0, 0x1000000);
|
||||
}
|
||||
else {
|
||||
if (livesPtr->unk170.unk58 == 438) {
|
||||
livesPtr->unk16A = 448;
|
||||
livesPtr->unk16C = -1;
|
||||
}
|
||||
sub_80A86C8(livesPtr->unk0, 0x1000000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
s32 CallbackLivesGetIndex(struct unkStruct_3001B84_sub *livesPtr)
|
||||
{
|
||||
return livesPtr->unk0;
|
||||
}
|
||||
|
||||
void CallbackLivesGetSize(struct unkStruct_3001B84_sub *livesPtr, PixelPos *out)
|
||||
{
|
||||
*out = livesPtr->unkC;
|
||||
}
|
||||
|
||||
void CallbackLivesSetHitboxPos(struct unkStruct_3001B84_sub *livesPtr, PixelPos *posOrNull)
|
||||
{
|
||||
if (posOrNull != NULL) {
|
||||
livesPtr->unk144.x = posOrNull->x - livesPtr->unk14.x;
|
||||
livesPtr->unk14C.x = posOrNull->x + livesPtr->unk14.x;
|
||||
livesPtr->unk144.y = posOrNull->y - livesPtr->unk14.y;
|
||||
livesPtr->unk14C.y = posOrNull->y + livesPtr->unk14.y;
|
||||
}
|
||||
else {
|
||||
livesPtr->unk144.x = livesPtr->unk20.x - livesPtr->unk14.x;
|
||||
livesPtr->unk14C.x = livesPtr->unk20.x + livesPtr->unk14.x;
|
||||
livesPtr->unk144.y = livesPtr->unk20.y - livesPtr->unk14.y;
|
||||
livesPtr->unk14C.y = livesPtr->unk20.y + livesPtr->unk14.y;
|
||||
livesPtr->unk154.x = livesPtr->unk154.y = 0;
|
||||
if (livesPtr->unk142 != livesPtr->unk1C) {
|
||||
livesPtr->unk15C = 1;
|
||||
}
|
||||
livesPtr->unk142 = livesPtr->unk1C;
|
||||
}
|
||||
}
|
||||
|
||||
void CallbackLivesSetPositionBounds(struct unkStruct_3001B84_sub *livesPtr, PixelPos *from, PixelPos *to)
|
||||
{
|
||||
livesPtr->unk28 = *from;
|
||||
livesPtr->unk30 = *to;
|
||||
}
|
||||
|
||||
void CallbackLivesGetHitboxCenter(struct unkStruct_3001B84_sub *livesPtr, PixelPos *out)
|
||||
{
|
||||
out->x = livesPtr->unk144.x + livesPtr->unk14.x;
|
||||
out->y = livesPtr->unk144.y + livesPtr->unk14.y;
|
||||
}
|
||||
|
||||
bool32 CallbackLivesMoveReal(struct unkStruct_3001B84_sub *livesPtr, PixelPos *pos)
|
||||
{
|
||||
return sub_80A9F20(livesPtr, pos);
|
||||
}
|
||||
|
||||
void CallbackLivesGetPosHeightAndUnk(struct unkStruct_3001B84_sub *livesPtr, u32 *height, u32 *unk)
|
||||
{
|
||||
*height = livesPtr->unk154.x;
|
||||
*unk = livesPtr->unk154.y;
|
||||
}
|
||||
|
||||
void CallbackLivesSetPosHeight(struct unkStruct_3001B84_sub *livesPtr, u32 height)
|
||||
{
|
||||
livesPtr->unk154.x = height;
|
||||
}
|
||||
|
||||
void CallbackLivesGetDirection(struct unkStruct_3001B84_sub *livesPtr, s8 *dir)
|
||||
{
|
||||
*dir = livesPtr->unk142;
|
||||
}
|
||||
|
||||
void CallbackLivesSetDirection(struct unkStruct_3001B84_sub *livesPtr, s32 dir_)
|
||||
{
|
||||
s32 dir = (s8) dir_;
|
||||
|
||||
if (dir != -1) {
|
||||
// s8 memes
|
||||
s8 *dirDst = &livesPtr->unk142;
|
||||
s8 dirS8 = (s8) dir;
|
||||
*dirDst = dirS8;
|
||||
if (livesPtr->unk15D != livesPtr->unk142) {
|
||||
livesPtr->unk15C = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CallbackLivesSetEventIndex(struct unkStruct_3001B84_sub *livesPtr, u16 a1)
|
||||
{
|
||||
sub_80A9750(livesPtr, a1);
|
||||
}
|
||||
|
||||
// s16 memes forced a fakematch https://decomp.me/scratch/x2ALy
|
||||
void CallbackLivesSetUnk_80AB194(struct unkStruct_3001B84_sub *livesPtr, s32 a1_, s32 a2)
|
||||
{
|
||||
s32 a1Match = (s16) a1_;
|
||||
#ifndef NONMATCHING
|
||||
register s16 a1 asm("r3") = a1Match;
|
||||
#else
|
||||
s32 a1 = a1Match;
|
||||
#endif
|
||||
|
||||
if (a1Match == 0) {
|
||||
a1 = 448;
|
||||
}
|
||||
|
||||
livesPtr->unk16A = a1;
|
||||
livesPtr->unk16C = a2;
|
||||
}
|
||||
|
||||
void nullsub_211(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
extern bool8 sub_80A66F8(struct UnkGroundSpriteStruct *ptr);
|
||||
extern bool8 sub_80A671C(struct UnkGroundSpriteStruct *ptr);
|
||||
extern void sub_80A6EC8(struct UnkGroundSpriteStruct *ptr, s32 a1);
|
||||
|
||||
bool8 CallbackLivesSpriteRelatedCheck_80AB1C0(struct unkStruct_3001B84_sub *livesPtr)
|
||||
{
|
||||
if (livesPtr->unk15C != 0) {
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
return sub_80A66F8(&livesPtr->unk170);
|
||||
}
|
||||
}
|
||||
|
||||
bool8 CallbackLivesSpriteRelated_80AB1E4(struct unkStruct_3001B84_sub *livesPtr)
|
||||
{
|
||||
if (livesPtr->unk16A != 0) {
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
return sub_80A671C(&livesPtr->unk170);
|
||||
}
|
||||
}
|
||||
|
||||
void CallbackLivesGetFlags(struct unkStruct_3001B84_sub *livesPtr, u32 *flags)
|
||||
{
|
||||
*flags = livesPtr->unk11C;
|
||||
}
|
||||
|
||||
void CallbackLivesSetFlags(struct unkStruct_3001B84_sub *livesPtr, u32 flags)
|
||||
{
|
||||
sub_80A86C8(livesPtr->unk0, flags);
|
||||
}
|
||||
|
||||
void CallbackLivesClearFlags(struct unkStruct_3001B84_sub *livesPtr, u32 flags)
|
||||
{
|
||||
sub_80A8750(livesPtr->unk0, flags);
|
||||
}
|
||||
|
||||
void CallbackLivesSpriteRelated_80AB238(struct unkStruct_3001B84_sub *livesPtr, s32 a1)
|
||||
{
|
||||
sub_80A6EC8(&livesPtr->unk170, a1);
|
||||
}
|
||||
|
||||
s32 CallbackLivesMoveRelative(struct unkStruct_3001B84_sub *livesPtr, PixelPos *pos)
|
||||
{
|
||||
return sub_80A9F94(livesPtr, pos);
|
||||
}
|
||||
|
||||
//
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user