Document event_object_80688E4
This commit is contained in:
@@ -1645,7 +1645,7 @@ sprite_new: @ 805E9F8
|
|||||||
adds r0, r5, 0
|
adds r0, r5, 0
|
||||||
bl GetObjectEventGraphicsInfo
|
bl GetObjectEventGraphicsInfo
|
||||||
adds r4, r0, 0
|
adds r4, r0, 0
|
||||||
ldr r1, _0805EB38 @ =UpdateEventObjectSpriteSubpriorityAndVisibility
|
ldr r1, _0805EB38 @ =UpdateObjectEventSpriteSubpriorityAndVisibility
|
||||||
add r3, sp, 0x1C
|
add r3, sp, 0x1C
|
||||||
adds r0, r5, 0
|
adds r0, r5, 0
|
||||||
mov r2, sp
|
mov r2, sp
|
||||||
@@ -1769,7 +1769,7 @@ _0805EB24:
|
|||||||
pop {r1}
|
pop {r1}
|
||||||
bx r1
|
bx r1
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0805EB38: .4byte UpdateEventObjectSpriteSubpriorityAndVisibility
|
_0805EB38: .4byte UpdateObjectEventSpriteSubpriorityAndVisibility
|
||||||
_0805EB3C: .4byte 0x0000ffff
|
_0805EB3C: .4byte 0x0000ffff
|
||||||
_0805EB40: .4byte gSprites
|
_0805EB40: .4byte gSprites
|
||||||
thumb_func_end sprite_new
|
thumb_func_end sprite_new
|
||||||
|
|||||||
+13
-13
@@ -951,7 +951,7 @@ _080DB4C0:
|
|||||||
_080DB4CE:
|
_080DB4CE:
|
||||||
adds r0, r5, 0
|
adds r0, r5, 0
|
||||||
movs r1, 0
|
movs r1, 0
|
||||||
bl UpdateEventObjectSpriteVisibility
|
bl UpdateObjectEventSpriteVisibility
|
||||||
ldrh r1, [r5, 0x2E]
|
ldrh r1, [r5, 0x2E]
|
||||||
lsls r1, 24
|
lsls r1, 24
|
||||||
lsrs r1, 24
|
lsrs r1, 24
|
||||||
@@ -1294,7 +1294,7 @@ _080DB750:
|
|||||||
_080DB770:
|
_080DB770:
|
||||||
adds r0, r5, 0
|
adds r0, r5, 0
|
||||||
movs r1, 0
|
movs r1, 0
|
||||||
bl UpdateEventObjectSpriteVisibility
|
bl UpdateObjectEventSpriteVisibility
|
||||||
ldrh r1, [r5, 0x2E]
|
ldrh r1, [r5, 0x2E]
|
||||||
lsls r1, 24
|
lsls r1, 24
|
||||||
lsrs r1, 24
|
lsrs r1, 24
|
||||||
@@ -1564,7 +1564,7 @@ _080DB94E:
|
|||||||
lsls r1, 29
|
lsls r1, 29
|
||||||
lsrs r1, 31
|
lsrs r1, 31
|
||||||
adds r0, r4, 0
|
adds r0, r4, 0
|
||||||
bl UpdateEventObjectSpriteVisibility
|
bl UpdateObjectEventSpriteVisibility
|
||||||
_080DB98E:
|
_080DB98E:
|
||||||
add sp, 0x4
|
add sp, 0x4
|
||||||
pop {r3}
|
pop {r3}
|
||||||
@@ -1781,7 +1781,7 @@ sub_80DBB18: @ 80DBB18
|
|||||||
_080DBB2E:
|
_080DBB2E:
|
||||||
adds r0, r1, 0
|
adds r0, r1, 0
|
||||||
movs r1, 0
|
movs r1, 0
|
||||||
bl UpdateEventObjectSpriteVisibility
|
bl UpdateObjectEventSpriteVisibility
|
||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
thumb_func_end sub_80DBB18
|
thumb_func_end sub_80DBB18
|
||||||
@@ -1810,7 +1810,7 @@ sub_80DBB3C: @ 80DBB3C
|
|||||||
lsls r1, 29
|
lsls r1, 29
|
||||||
lsrs r1, 31
|
lsrs r1, 31
|
||||||
adds r0, r4, 0
|
adds r0, r4, 0
|
||||||
bl UpdateEventObjectSpriteVisibility
|
bl UpdateObjectEventSpriteVisibility
|
||||||
movs r1, 0x30
|
movs r1, 0x30
|
||||||
ldrsh r0, [r4, r1]
|
ldrsh r0, [r4, r1]
|
||||||
cmp r0, 0x38
|
cmp r0, 0x38
|
||||||
@@ -1966,7 +1966,7 @@ _080DBC66:
|
|||||||
strh r0, [r4, 0x22]
|
strh r0, [r4, 0x22]
|
||||||
adds r0, r4, 0
|
adds r0, r4, 0
|
||||||
movs r1, 0
|
movs r1, 0
|
||||||
bl UpdateEventObjectSpriteVisibility
|
bl UpdateObjectEventSpriteVisibility
|
||||||
_080DBCA6:
|
_080DBCA6:
|
||||||
add sp, 0x4
|
add sp, 0x4
|
||||||
pop {r4}
|
pop {r4}
|
||||||
@@ -2233,7 +2233,7 @@ _080DBE98:
|
|||||||
strb r0, [r1]
|
strb r0, [r1]
|
||||||
adds r0, r4, 0
|
adds r0, r4, 0
|
||||||
movs r1, 0
|
movs r1, 0
|
||||||
bl UpdateEventObjectSpriteVisibility
|
bl UpdateObjectEventSpriteVisibility
|
||||||
ldr r1, [r5, 0x10]
|
ldr r1, [r5, 0x10]
|
||||||
ldr r0, [r4, 0x34]
|
ldr r0, [r4, 0x34]
|
||||||
cmp r1, r0
|
cmp r1, r0
|
||||||
@@ -2461,7 +2461,7 @@ _080DC03C:
|
|||||||
strb r0, [r1]
|
strb r0, [r1]
|
||||||
adds r0, r4, 0
|
adds r0, r4, 0
|
||||||
movs r1, 0
|
movs r1, 0
|
||||||
bl UpdateEventObjectSpriteVisibility
|
bl UpdateObjectEventSpriteVisibility
|
||||||
_080DC080:
|
_080DC080:
|
||||||
add sp, 0x4
|
add sp, 0x4
|
||||||
pop {r4,r5}
|
pop {r4,r5}
|
||||||
@@ -2889,7 +2889,7 @@ sub_80DC3A8: @ 80DC3A8
|
|||||||
push {r4,lr}
|
push {r4,lr}
|
||||||
adds r4, r0, 0
|
adds r4, r0, 0
|
||||||
movs r1, 0
|
movs r1, 0
|
||||||
bl UpdateEventObjectSpriteVisibility
|
bl UpdateObjectEventSpriteVisibility
|
||||||
adds r0, r4, 0
|
adds r0, r4, 0
|
||||||
adds r0, 0x3F
|
adds r0, 0x3F
|
||||||
ldrb r1, [r0]
|
ldrb r1, [r0]
|
||||||
@@ -3627,7 +3627,7 @@ _080DC8F6:
|
|||||||
strb r0, [r1]
|
strb r0, [r1]
|
||||||
adds r0, r4, 0
|
adds r0, r4, 0
|
||||||
movs r1, 0
|
movs r1, 0
|
||||||
bl UpdateEventObjectSpriteVisibility
|
bl UpdateObjectEventSpriteVisibility
|
||||||
_080DC926:
|
_080DC926:
|
||||||
add sp, 0x4
|
add sp, 0x4
|
||||||
pop {r4-r6}
|
pop {r4-r6}
|
||||||
@@ -3706,7 +3706,7 @@ sub_80DC99C: @ 80DC99C
|
|||||||
strh r1, [r4, 0x22]
|
strh r1, [r4, 0x22]
|
||||||
adds r0, r4, 0
|
adds r0, r4, 0
|
||||||
movs r1, 0
|
movs r1, 0
|
||||||
bl UpdateEventObjectSpriteVisibility
|
bl UpdateObjectEventSpriteVisibility
|
||||||
ldrh r1, [r4, 0x3E]
|
ldrh r1, [r4, 0x3E]
|
||||||
ldr r0, _080DC9D8 @ =0x00001004
|
ldr r0, _080DC9D8 @ =0x00001004
|
||||||
ands r0, r1
|
ands r0, r1
|
||||||
@@ -4163,7 +4163,7 @@ sub_80DCCE0: @ 80DCCE0
|
|||||||
_080DCCFE:
|
_080DCCFE:
|
||||||
adds r0, r4, 0
|
adds r0, r4, 0
|
||||||
movs r1, 0
|
movs r1, 0
|
||||||
bl UpdateEventObjectSpriteVisibility
|
bl UpdateObjectEventSpriteVisibility
|
||||||
ldrh r0, [r4, 0x2E]
|
ldrh r0, [r4, 0x2E]
|
||||||
lsls r0, 24
|
lsls r0, 24
|
||||||
lsrs r0, 24
|
lsrs r0, 24
|
||||||
@@ -4195,7 +4195,7 @@ sub_80DCD1C: @ 80DCD1C
|
|||||||
_080DCD3A:
|
_080DCD3A:
|
||||||
adds r0, r2, 0
|
adds r0, r2, 0
|
||||||
movs r1, 0
|
movs r1, 0
|
||||||
bl UpdateEventObjectSpriteVisibility
|
bl UpdateObjectEventSpriteVisibility
|
||||||
_080DCD42:
|
_080DCD42:
|
||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
|
|||||||
+1
-1
@@ -7979,7 +7979,7 @@ _08058978:
|
|||||||
_0805898A:
|
_0805898A:
|
||||||
adds r0, r5, 0
|
adds r0, r5, 0
|
||||||
movs r1, 0
|
movs r1, 0
|
||||||
bl UpdateEventObjectSpriteVisibility
|
bl UpdateObjectEventSpriteVisibility
|
||||||
ldrb r0, [r6]
|
ldrb r0, [r6]
|
||||||
lsls r0, 29
|
lsls r0, 29
|
||||||
cmp r0, 0
|
cmp r0, 0
|
||||||
|
|||||||
@@ -6,10 +6,10 @@
|
|||||||
void FreezeObjectEvents(void);
|
void FreezeObjectEvents(void);
|
||||||
bool8 FreezeObjectEvent(struct ObjectEvent *);
|
bool8 FreezeObjectEvent(struct ObjectEvent *);
|
||||||
void FreezeObjectEventsExceptOne(u8 objEventId);
|
void FreezeObjectEventsExceptOne(u8 objEventId);
|
||||||
void sub_8069124(u8 a0, bool32 a1);
|
void RfuUnionObjectToggleInvisibility(u8 a0, bool32 a1);
|
||||||
u32 sub_806916C(u8 a0);
|
u32 RfuUnionObjectIsInvisible(u8 a0);
|
||||||
void sub_80691A4(u8 a0, u8 a1);
|
void RfuUnionObjectStartWarp(u8 a0, u8 a1);
|
||||||
void sub_8069094(u8 a0, u8 a1);
|
void RfuUnionObjectSetFacingDirection(u8 a0, u8 a1);
|
||||||
bool32 sub_8069294(u8 a0);
|
bool32 RfuUnionObjectIsWarping(u8 a0);
|
||||||
|
|
||||||
#endif // GUARD_EVENT_OBJECT_80688E4_H
|
#endif // GUARD_EVENT_OBJECT_80688E4_H
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ u8 sub_8063F84(u8 direction);
|
|||||||
u8 GetTrainerFacingDirectionMovementType(u8 direction);
|
u8 GetTrainerFacingDirectionMovementType(u8 direction);
|
||||||
void CameraObjectSetFollowedObjectId(u8 spriteId);
|
void CameraObjectSetFollowedObjectId(u8 spriteId);
|
||||||
void UnfreezeObjectEvents(void);
|
void UnfreezeObjectEvents(void);
|
||||||
void TurnEventObject(u8, u8);
|
void TurnObjectEvent(u8, u8);
|
||||||
|
|
||||||
// Exported data declarations
|
// Exported data declarations
|
||||||
|
|
||||||
|
|||||||
+197
-147
@@ -4,7 +4,9 @@
|
|||||||
#include "field_effect.h"
|
#include "field_effect.h"
|
||||||
#include "field_ground_effect.h"
|
#include "field_ground_effect.h"
|
||||||
|
|
||||||
void sub_8069248(struct Sprite * sprite);
|
// This is part of evobjmv.c (see assert statement in DoObjectUnionRoomWarpYDisplacement).
|
||||||
|
|
||||||
|
static void DoObjectUnionRoomWarpYDisplacement(struct Sprite * sprite);
|
||||||
|
|
||||||
bool8 FreezeObjectEvent(struct ObjectEvent * objectEvent)
|
bool8 FreezeObjectEvent(struct ObjectEvent * objectEvent)
|
||||||
{
|
{
|
||||||
@@ -58,31 +60,39 @@ void UnfreezeObjectEvents(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void little_step(struct Sprite * sprite, u8 direction)
|
#define tObjectEventId data[0]
|
||||||
|
#define tZCoord data[1]
|
||||||
|
#define tInvisible data[2]
|
||||||
|
|
||||||
|
#define tDirection data[3]
|
||||||
|
#define tSpeed data[4]
|
||||||
|
#define tStepNo data[5]
|
||||||
|
|
||||||
|
static void little_step(struct Sprite * sprite, u8 direction)
|
||||||
{
|
{
|
||||||
sprite->pos1.x += gUnknown_83A64C8[direction].x;
|
sprite->pos1.x += gUnknown_83A64C8[direction].x;
|
||||||
sprite->pos1.y += gUnknown_83A64C8[direction].y;
|
sprite->pos1.y += gUnknown_83A64C8[direction].y;
|
||||||
}
|
}
|
||||||
|
|
||||||
void double_little_steps(struct Sprite * sprite, u8 direction)
|
static void double_little_steps(struct Sprite * sprite, u8 direction)
|
||||||
{
|
{
|
||||||
sprite->pos1.x += 2 * gUnknown_83A64C8[direction].x;
|
sprite->pos1.x += 2 * gUnknown_83A64C8[direction].x;
|
||||||
sprite->pos1.y += 2 * gUnknown_83A64C8[direction].y;
|
sprite->pos1.y += 2 * gUnknown_83A64C8[direction].y;
|
||||||
}
|
}
|
||||||
|
|
||||||
void triple_little_steps(struct Sprite * sprite, u8 direction)
|
static void triple_little_steps(struct Sprite * sprite, u8 direction)
|
||||||
{
|
{
|
||||||
sprite->pos1.x += 2 * gUnknown_83A64C8[direction].x + gUnknown_83A64C8[direction].x;
|
sprite->pos1.x += 2 * gUnknown_83A64C8[direction].x + gUnknown_83A64C8[direction].x;
|
||||||
sprite->pos1.y += 2 * gUnknown_83A64C8[direction].y + gUnknown_83A64C8[direction].y;
|
sprite->pos1.y += 2 * gUnknown_83A64C8[direction].y + gUnknown_83A64C8[direction].y;
|
||||||
}
|
}
|
||||||
|
|
||||||
void quad_little_steps(struct Sprite * sprite, u8 direction)
|
static void quad_little_steps(struct Sprite * sprite, u8 direction)
|
||||||
{
|
{
|
||||||
sprite->pos1.x += 4 * gUnknown_83A64C8[direction].x;
|
sprite->pos1.x += 4 * gUnknown_83A64C8[direction].x;
|
||||||
sprite->pos1.y += 4 * gUnknown_83A64C8[direction].y;
|
sprite->pos1.y += 4 * gUnknown_83A64C8[direction].y;
|
||||||
}
|
}
|
||||||
|
|
||||||
void oct_little_steps(struct Sprite * sprite, u8 direction)
|
static void oct_little_steps(struct Sprite * sprite, u8 direction)
|
||||||
{
|
{
|
||||||
sprite->pos1.x += 8 * gUnknown_83A64C8[direction].x;
|
sprite->pos1.x += 8 * gUnknown_83A64C8[direction].x;
|
||||||
sprite->pos1.y += 8 * gUnknown_83A64C8[direction].y;
|
sprite->pos1.y += 8 * gUnknown_83A64C8[direction].y;
|
||||||
@@ -90,15 +100,14 @@ void oct_little_steps(struct Sprite * sprite, u8 direction)
|
|||||||
|
|
||||||
void oamt_npc_ministep_reset(struct Sprite * sprite, u8 direction, u8 speed)
|
void oamt_npc_ministep_reset(struct Sprite * sprite, u8 direction, u8 speed)
|
||||||
{
|
{
|
||||||
sprite->data[3] = direction;
|
sprite->tDirection = direction;
|
||||||
sprite->data[4] = speed;
|
sprite->tSpeed = speed;
|
||||||
sprite->data[5] = 0;
|
sprite->tStepNo = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
typedef void (*SpriteStepFunc)(struct Sprite *sprite, u8 direction);
|
typedef void (*SpriteStepFunc)(struct Sprite *sprite, u8 direction);
|
||||||
|
|
||||||
static const SpriteStepFunc gUnknown_83A710C[] = {
|
static const SpriteStepFunc sSpeed0[] = {
|
||||||
little_step,
|
little_step,
|
||||||
little_step,
|
little_step,
|
||||||
little_step,
|
little_step,
|
||||||
@@ -117,7 +126,7 @@ static const SpriteStepFunc gUnknown_83A710C[] = {
|
|||||||
little_step
|
little_step
|
||||||
};
|
};
|
||||||
|
|
||||||
static const SpriteStepFunc gUnknown_83A714C[] = {
|
static const SpriteStepFunc sSpeed1[] = {
|
||||||
double_little_steps,
|
double_little_steps,
|
||||||
double_little_steps,
|
double_little_steps,
|
||||||
double_little_steps,
|
double_little_steps,
|
||||||
@@ -128,7 +137,7 @@ static const SpriteStepFunc gUnknown_83A714C[] = {
|
|||||||
double_little_steps
|
double_little_steps
|
||||||
};
|
};
|
||||||
|
|
||||||
static const SpriteStepFunc gUnknown_83A716C[] = {
|
static const SpriteStepFunc sSpeed2[] = {
|
||||||
double_little_steps,
|
double_little_steps,
|
||||||
triple_little_steps,
|
triple_little_steps,
|
||||||
triple_little_steps,
|
triple_little_steps,
|
||||||
@@ -137,63 +146,75 @@ static const SpriteStepFunc gUnknown_83A716C[] = {
|
|||||||
triple_little_steps
|
triple_little_steps
|
||||||
};
|
};
|
||||||
|
|
||||||
static const SpriteStepFunc gUnknown_83A7184[] = {
|
static const SpriteStepFunc sSpeed3[] = {
|
||||||
quad_little_steps,
|
quad_little_steps,
|
||||||
quad_little_steps,
|
quad_little_steps,
|
||||||
quad_little_steps,
|
quad_little_steps,
|
||||||
quad_little_steps
|
quad_little_steps
|
||||||
};
|
};
|
||||||
|
|
||||||
static const SpriteStepFunc gUnknown_83A7194[] = {
|
static const SpriteStepFunc sSpeed4[] = {
|
||||||
oct_little_steps,
|
oct_little_steps,
|
||||||
oct_little_steps
|
oct_little_steps
|
||||||
};
|
};
|
||||||
|
|
||||||
static const SpriteStepFunc *const gUnknown_83A719C[] = {
|
static const SpriteStepFunc *const sSpriteStepFuncsBySpeed[] = {
|
||||||
gUnknown_83A710C,
|
sSpeed0,
|
||||||
gUnknown_83A714C,
|
sSpeed1,
|
||||||
gUnknown_83A716C,
|
sSpeed2,
|
||||||
gUnknown_83A7184,
|
sSpeed3,
|
||||||
gUnknown_83A7194
|
sSpeed4
|
||||||
};
|
};
|
||||||
|
|
||||||
static const s16 gUnknown_83A71B0[] = {
|
static const s16 sSpriteStepCountsBySpeed[] = {
|
||||||
16, 8, 6, 4, 2
|
NELEMS(sSpeed0),
|
||||||
|
NELEMS(sSpeed1),
|
||||||
|
NELEMS(sSpeed2),
|
||||||
|
NELEMS(sSpeed3),
|
||||||
|
NELEMS(sSpeed4)
|
||||||
};
|
};
|
||||||
|
|
||||||
bool8 obj_npc_ministep(struct Sprite *sprite)
|
bool8 obj_npc_ministep(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
if (sprite->data[5] >= gUnknown_83A71B0[sprite->data[4]])
|
if (sprite->tStepNo >= sSpriteStepCountsBySpeed[sprite->tSpeed])
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
gUnknown_83A719C[sprite->data[4]][sprite->data[5]](sprite, sprite->data[3]);
|
sSpriteStepFuncsBySpeed[sprite->tSpeed][sprite->tStepNo](sprite, sprite->tDirection);
|
||||||
|
|
||||||
sprite->data[5]++;
|
sprite->tStepNo++;
|
||||||
|
|
||||||
if (sprite->data[5] < gUnknown_83A71B0[sprite->data[4]])
|
if (sprite->tStepNo < sSpriteStepCountsBySpeed[sprite->tSpeed])
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef tStepNo
|
||||||
|
#undef tSpeed
|
||||||
|
#undef tDirection
|
||||||
|
|
||||||
|
#define tDirection data[3]
|
||||||
|
#define tDelay data[4]
|
||||||
|
#define tStepNo data[5]
|
||||||
|
|
||||||
void sub_8068BBC(struct Sprite *sprite, u8 direction)
|
void sub_8068BBC(struct Sprite *sprite, u8 direction)
|
||||||
{
|
{
|
||||||
sprite->data[3] = direction;
|
sprite->tDirection = direction;
|
||||||
sprite->data[4] = 0;
|
sprite->tDelay = 0;
|
||||||
sprite->data[5] = 0;
|
sprite->tStepNo = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool8 sub_8068BCC(struct Sprite *sprite)
|
bool8 sub_8068BCC(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
if (!(sprite->data[4] & 1))
|
if (!(sprite->tDelay & 1))
|
||||||
{
|
{
|
||||||
little_step(sprite, sprite->data[3]);
|
little_step(sprite, sprite->tDirection);
|
||||||
sprite->data[5]++;
|
sprite->tStepNo++;
|
||||||
}
|
}
|
||||||
|
|
||||||
sprite->data[4]++;
|
sprite->tDelay++;
|
||||||
|
|
||||||
if (sprite->data[5] > 15)
|
if (sprite->tStepNo > 15)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
else
|
else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -201,22 +222,22 @@ bool8 sub_8068BCC(struct Sprite *sprite)
|
|||||||
|
|
||||||
void sub_8068C08(struct Sprite *sprite, u8 direction)
|
void sub_8068C08(struct Sprite *sprite, u8 direction)
|
||||||
{
|
{
|
||||||
sprite->data[3] = direction;
|
sprite->tDirection = direction;
|
||||||
sprite->data[4] = 0;
|
sprite->tDelay = 0;
|
||||||
sprite->data[5] = 0;
|
sprite->tStepNo = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool8 sub_8068C18(struct Sprite *sprite)
|
bool8 sub_8068C18(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
if (++sprite->data[4] < 3)
|
if (++sprite->tDelay < 3)
|
||||||
{
|
{
|
||||||
little_step(sprite, sprite->data[3]);
|
little_step(sprite, sprite->tDirection);
|
||||||
sprite->data[5]++;
|
sprite->tStepNo++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
sprite->data[4] = 0;
|
sprite->tDelay = 0;
|
||||||
|
|
||||||
if (sprite->data[5] > 15)
|
if (sprite->tStepNo > 15)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
else
|
else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -224,21 +245,21 @@ bool8 sub_8068C18(struct Sprite *sprite)
|
|||||||
|
|
||||||
void sub_8068C58(struct Sprite *sprite, u8 direction)
|
void sub_8068C58(struct Sprite *sprite, u8 direction)
|
||||||
{
|
{
|
||||||
sprite->data[3] = direction;
|
sprite->tDirection = direction;
|
||||||
sprite->data[4] = 0;
|
sprite->tDelay = 0;
|
||||||
sprite->data[5] = 0;
|
sprite->tStepNo = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool8 sub_8068C68(struct Sprite *sprite)
|
bool8 sub_8068C68(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
if (++sprite->data[4] > 9)
|
if (++sprite->tDelay > 9)
|
||||||
{
|
{
|
||||||
sprite->data[4] = 0;
|
sprite->tDelay = 0;
|
||||||
little_step(sprite, sprite->data[3]);
|
little_step(sprite, sprite->tDirection);
|
||||||
sprite->data[5]++;
|
sprite->tStepNo++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sprite->data[5] > 15)
|
if (sprite->tStepNo > 15)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
else
|
else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -246,126 +267,144 @@ bool8 sub_8068C68(struct Sprite *sprite)
|
|||||||
|
|
||||||
void sub_8068CA4(struct Sprite *sprite, u8 direction)
|
void sub_8068CA4(struct Sprite *sprite, u8 direction)
|
||||||
{
|
{
|
||||||
sprite->data[3] = direction;
|
sprite->tDirection = direction;
|
||||||
sprite->data[4] = 0;
|
sprite->tDelay = 0;
|
||||||
sprite->data[5] = 0;
|
sprite->tStepNo = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool8 sub_8068CB4(struct Sprite *sprite)
|
bool8 sub_8068CB4(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
if ((++sprite->data[4]) & 1)
|
if ((++sprite->tDelay) & 1)
|
||||||
{
|
{
|
||||||
little_step(sprite, sprite->data[3]);
|
little_step(sprite, sprite->tDirection);
|
||||||
sprite->data[5]++;
|
sprite->tStepNo++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
double_little_steps(sprite, sprite->data[3]);
|
double_little_steps(sprite, sprite->tDirection);
|
||||||
sprite->data[5] += 2;
|
sprite->tStepNo += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sprite->data[5] > 15)
|
if (sprite->tStepNo > 15)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
else
|
else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const s8 gUnknown_83A71BA[] = {
|
#undef tStepNo
|
||||||
|
#undef tDelay
|
||||||
|
#undef tDirection
|
||||||
|
|
||||||
|
#define tDirection data[3]
|
||||||
|
#define tJumpSpeed data[4]
|
||||||
|
#define tJumpHeight data[5]
|
||||||
|
#define tStepNo data[6]
|
||||||
|
|
||||||
|
static const s8 sJumpHeight12[] = {
|
||||||
-4, -6, -8, -10, -11, -12, -12, -12, -11, -10, -9, -8, -6, -4, 0, 0
|
-4, -6, -8, -10, -11, -12, -12, -12, -11, -10, -9, -8, -6, -4, 0, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
static const s8 gUnknown_83A71CA[] = {
|
static const s8 sJumpHeight6[] = {
|
||||||
0, -2, -3, -4, -5, -6, -6, -6, -5, -5, -4, -3, -2, 0, 0, 0
|
0, -2, -3, -4, -5, -6, -6, -6, -5, -5, -4, -3, -2, 0, 0, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
static const s8 gUnknown_83A71DA[] = {
|
static const s8 sJumpHeight10[] = {
|
||||||
-2, -4, -6, -8, -9, -10, -10, -10, -9, -8, -6, -5, -3, -2, 0, 0
|
-2, -4, -6, -8, -9, -10, -10, -10, -9, -8, -6, -5, -3, -2, 0, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
static const s8 *const gUnknown_83A71EC[] = {
|
static const s8 *const sYDisplacementPtrs[] = {
|
||||||
gUnknown_83A71BA,
|
sJumpHeight12,
|
||||||
gUnknown_83A71CA,
|
sJumpHeight6,
|
||||||
gUnknown_83A71DA
|
sJumpHeight10
|
||||||
};
|
};
|
||||||
|
|
||||||
s16 sub_8068D00(s16 a1, u8 a2)
|
static s16 GetJumpYDisplacement(s16 stepno, u8 jumpno)
|
||||||
{
|
{
|
||||||
return gUnknown_83A71EC[a2][a1];
|
return sYDisplacementPtrs[jumpno][stepno];
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8068D1C(struct Sprite *sprite, u8 a2, u8 a3, u8 a4)
|
void sub_8068D1C(struct Sprite *sprite, u8 direction, u8 speed, u8 height)
|
||||||
{
|
{
|
||||||
sprite->data[3] = a2;
|
sprite->tDirection = direction;
|
||||||
sprite->data[4] = a3;
|
sprite->tJumpSpeed = speed;
|
||||||
sprite->data[5] = a4;
|
sprite->tJumpHeight = height;
|
||||||
sprite->data[6] = 0;
|
sprite->tStepNo = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sub_8068D3C(struct Sprite *sprite)
|
u8 sub_8068D3C(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
s16 v5[3] = {0x10, 0x10, 0x20};
|
s16 duration[3] = {0x10, 0x10, 0x20};
|
||||||
u8 v6[3] = {0, 0, 1};
|
u8 shifts[3] = {0, 0, 1};
|
||||||
u8 v2 = 0;
|
u8 jumpPhase = 0;
|
||||||
|
|
||||||
if (sprite->data[4])
|
if (sprite->tJumpSpeed != 0)
|
||||||
little_step(sprite, sprite->data[3]);
|
little_step(sprite, sprite->tDirection);
|
||||||
|
|
||||||
sprite->pos2.y = sub_8068D00(sprite->data[6] >> v6[sprite->data[4]], sprite->data[5]);
|
sprite->pos2.y = GetJumpYDisplacement(sprite->tStepNo >> shifts[sprite->tJumpSpeed], sprite->tJumpHeight);
|
||||||
|
|
||||||
sprite->data[6]++;
|
sprite->tStepNo++;
|
||||||
|
|
||||||
if (sprite->data[6] == (v5[sprite->data[4]] >> 1))
|
if (sprite->tStepNo == (duration[sprite->tJumpSpeed] >> 1))
|
||||||
v2 = 1;
|
jumpPhase = 1;
|
||||||
|
|
||||||
if (sprite->data[6] >= v5[sprite->data[4]])
|
if (sprite->tStepNo >= duration[sprite->tJumpSpeed])
|
||||||
{
|
{
|
||||||
sprite->pos2.y = 0;
|
sprite->pos2.y = 0;
|
||||||
v2 = -1;
|
jumpPhase = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return v2;
|
return jumpPhase;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sub_8068DC4(struct Sprite *sprite)
|
u8 sub_8068DC4(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
s16 v5[3] = {0x20, 0x20, 0x40};
|
s16 duration[3] = {0x20, 0x20, 0x40};
|
||||||
u8 v6[3] = {1, 1, 2};
|
u8 shifts[3] = {1, 1, 2};
|
||||||
u8 v2 = 0;
|
u8 jumpPhase = 0;
|
||||||
|
|
||||||
if (sprite->data[4] && !(sprite->data[6] & 1))
|
if (sprite->tJumpSpeed != 0 && !(sprite->tStepNo & 1))
|
||||||
little_step(sprite, sprite->data[3]);
|
little_step(sprite, sprite->tDirection);
|
||||||
|
|
||||||
sprite->pos2.y = sub_8068D00(sprite->data[6] >> v6[sprite->data[4]], sprite->data[5]);
|
sprite->pos2.y = GetJumpYDisplacement(sprite->tStepNo >> shifts[sprite->tJumpSpeed], sprite->tJumpHeight);
|
||||||
|
|
||||||
sprite->data[6]++;
|
sprite->tStepNo++;
|
||||||
|
|
||||||
if (sprite->data[6] == (v5[sprite->data[4]] >> 1))
|
if (sprite->tStepNo == (duration[sprite->tJumpSpeed] >> 1))
|
||||||
v2 = 1;
|
jumpPhase = 1;
|
||||||
|
|
||||||
if (sprite->data[6] >= v5[sprite->data[4]])
|
if (sprite->tStepNo >= duration[sprite->tJumpSpeed])
|
||||||
{
|
{
|
||||||
sprite->pos2.y = 0;
|
sprite->pos2.y = 0;
|
||||||
v2 = -1;
|
jumpPhase = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return v2;
|
return jumpPhase;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef tStepNo
|
||||||
|
#undef tJumpHeight
|
||||||
|
#undef tJumpSpeed
|
||||||
|
#undef tDirection
|
||||||
|
|
||||||
|
#define tDelay data[3]
|
||||||
|
|
||||||
void SetObjectEventStepTimer(struct Sprite *sprite, s16 delay)
|
void SetObjectEventStepTimer(struct Sprite *sprite, s16 delay)
|
||||||
{
|
{
|
||||||
sprite->data[3] = delay;
|
sprite->tDelay = delay;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool8 RunObjectEventStepTimer(struct Sprite *sprite)
|
bool8 RunObjectEventStepTimer(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
sprite->data[3]--;
|
sprite->tDelay--;
|
||||||
|
|
||||||
if (sprite->data[3] == 0)
|
if (sprite->tDelay == 0)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
else
|
else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef tDelay
|
||||||
|
|
||||||
void obj_anim_image_set_and_seek(struct Sprite *sprite, u8 animNum, u8 animCmdIndex)
|
void obj_anim_image_set_and_seek(struct Sprite *sprite, u8 animNum, u8 animCmdIndex)
|
||||||
{
|
{
|
||||||
sprite->animNum = animNum;
|
sprite->animNum = animNum;
|
||||||
@@ -381,7 +420,7 @@ bool8 SpriteAnimEnded(struct Sprite *sprite)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateEventObjectSpriteVisibility(struct Sprite *sprite, bool8 invisible)
|
void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible)
|
||||||
{
|
{
|
||||||
u16 x, y;
|
u16 x, y;
|
||||||
s16 x2, y2;
|
s16 x2, y2;
|
||||||
@@ -408,11 +447,11 @@ void UpdateEventObjectSpriteVisibility(struct Sprite *sprite, bool8 invisible)
|
|||||||
sprite->invisible = TRUE;
|
sprite->invisible = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateEventObjectSpriteSubpriorityAndVisibility(struct Sprite *sprite)
|
void UpdateObjectEventSpriteSubpriorityAndVisibility(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
sub_8069248(sprite);
|
DoObjectUnionRoomWarpYDisplacement(sprite);
|
||||||
SetObjectSubpriorityByZCoord(sprite->data[1], sprite, 1);
|
SetObjectSubpriorityByZCoord(sprite->tZCoord, sprite, 1);
|
||||||
UpdateEventObjectSpriteVisibility(sprite, sprite->data[2]);
|
UpdateObjectEventSpriteVisibility(sprite, sprite->tInvisible);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8068FD0(void)
|
void sub_8068FD0(void)
|
||||||
@@ -421,20 +460,23 @@ void sub_8068FD0(void)
|
|||||||
for (i = 0; i < MAX_SPRITES; i++)
|
for (i = 0; i < MAX_SPRITES; i++)
|
||||||
{
|
{
|
||||||
struct Sprite *sprite = &gSprites[i];
|
struct Sprite *sprite = &gSprites[i];
|
||||||
if (sprite->inUse && sprite->callback == UpdateEventObjectSpriteSubpriorityAndVisibility)
|
if (sprite->inUse && sprite->callback == UpdateObjectEventSpriteSubpriorityAndVisibility)
|
||||||
{
|
{
|
||||||
DestroySprite(sprite);
|
DestroySprite(sprite);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 sub_806900C(u8 objectEventId)
|
#define tUnionRoomWarpAnimNo data[3]
|
||||||
|
#define tUnionRoomWarpAnimState data[4]
|
||||||
|
|
||||||
|
static int GetObjectEventSpriteId(u8 objectEventId)
|
||||||
{
|
{
|
||||||
s32 i;
|
int i;
|
||||||
for (i = 0; i < MAX_SPRITES; i++)
|
for (i = 0; i < MAX_SPRITES; i++)
|
||||||
{
|
{
|
||||||
struct Sprite *sprite = &gSprites[i];
|
struct Sprite *sprite = &gSprites[i];
|
||||||
if (sprite->inUse && sprite->callback == UpdateEventObjectSpriteSubpriorityAndVisibility && (u8)sprite->data[0] == objectEventId)
|
if (sprite->inUse && sprite->callback == UpdateObjectEventSpriteSubpriorityAndVisibility && (u8)sprite->tObjectEventId == objectEventId)
|
||||||
{
|
{
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
@@ -442,10 +484,10 @@ s32 sub_806900C(u8 objectEventId)
|
|||||||
return MAX_SPRITES;
|
return MAX_SPRITES;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TurnEventObject(u8 objectEventId, u8 direction)
|
void TurnObjectEvent(u8 objectEventId, u8 direction)
|
||||||
{
|
{
|
||||||
u8 animNum;
|
u8 animNum;
|
||||||
u8 spriteId = sub_806900C(objectEventId);
|
u8 spriteId = GetObjectEventSpriteId(objectEventId);
|
||||||
if (spriteId != MAX_SPRITES)
|
if (spriteId != MAX_SPRITES)
|
||||||
{
|
{
|
||||||
struct Sprite *sprite = &gSprites[spriteId];
|
struct Sprite *sprite = &gSprites[spriteId];
|
||||||
@@ -453,10 +495,10 @@ void TurnEventObject(u8 objectEventId, u8 direction)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8069094(u8 objectEventId, u8 direction)
|
void RfuUnionObjectSetFacingDirection(u8 objectEventId, u8 direction)
|
||||||
{
|
{
|
||||||
u8 animNum;
|
u8 animNum;
|
||||||
s32 spriteId = sub_806900C(objectEventId);
|
int spriteId = GetObjectEventSpriteId(objectEventId);
|
||||||
u16 baseBlock;
|
u16 baseBlock;
|
||||||
if (spriteId != MAX_SPRITES)
|
if (spriteId != MAX_SPRITES)
|
||||||
{
|
{
|
||||||
@@ -471,112 +513,120 @@ void sub_8069094(u8 objectEventId, u8 direction)
|
|||||||
{
|
{
|
||||||
sprite->subspriteTables = NULL;
|
sprite->subspriteTables = NULL;
|
||||||
sprite->subspriteTableNum = 0;
|
sprite->subspriteTableNum = 0;
|
||||||
sprite->subspriteMode = 0;
|
sprite->subspriteMode = SUBSPRITES_OFF;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SetSubspriteTables(sprite, info->subspriteTables);
|
SetSubspriteTables(sprite, info->subspriteTables);
|
||||||
sprite->subspriteMode = 2;
|
sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
|
||||||
}
|
}
|
||||||
StartSpriteAnim(sprite, 0);
|
StartSpriteAnim(sprite, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8069124(u8 objectEventId, bool32 arg1)
|
void RfuUnionObjectToggleInvisibility(u8 objectEventId, bool32 arg1)
|
||||||
{
|
{
|
||||||
u8 spriteId = sub_806900C(objectEventId);
|
u8 spriteId = GetObjectEventSpriteId(objectEventId);
|
||||||
if (spriteId != MAX_SPRITES)
|
if (spriteId != MAX_SPRITES)
|
||||||
{
|
{
|
||||||
if (arg1)
|
if (arg1)
|
||||||
gSprites[spriteId].data[2] = TRUE;
|
gSprites[spriteId].tInvisible = TRUE;
|
||||||
else
|
else
|
||||||
gSprites[spriteId].data[2] = FALSE;
|
gSprites[spriteId].tInvisible = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 sub_806916C(u8 objectEventId)
|
bool32 RfuUnionObjectIsInvisible(u8 objectEventId)
|
||||||
{
|
{
|
||||||
u8 spriteId = sub_806900C(objectEventId);
|
u8 spriteId = GetObjectEventSpriteId(objectEventId);
|
||||||
if (spriteId == MAX_SPRITES)
|
if (spriteId == MAX_SPRITES)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
return gSprites[spriteId].data[2] == TRUE;
|
return gSprites[spriteId].tInvisible == TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_80691A4(u8 objectEventId, u8 direction)
|
void RfuUnionObjectStartWarp(u8 objectEventId, u8 direction)
|
||||||
{
|
{
|
||||||
u8 spriteId = sub_806900C(objectEventId);
|
u8 spriteId = GetObjectEventSpriteId(objectEventId);
|
||||||
if (spriteId != MAX_SPRITES)
|
if (spriteId != MAX_SPRITES)
|
||||||
{
|
{
|
||||||
gSprites[spriteId].data[3] = direction;
|
gSprites[spriteId].tUnionRoomWarpAnimNo = direction;
|
||||||
gSprites[spriteId].data[4] = 0;
|
gSprites[spriteId].tUnionRoomWarpAnimState = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_80691D4(struct Sprite * sprite)
|
static void DoObjectUnionRoomWarpYDisplacementUpwards(struct Sprite * sprite)
|
||||||
{
|
{
|
||||||
switch (sprite->data[4])
|
switch (sprite->tUnionRoomWarpAnimState)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
sprite->pos2.y = 0;
|
sprite->pos2.y = 0;
|
||||||
sprite->data[4]++;
|
sprite->tUnionRoomWarpAnimState++;
|
||||||
// fallthrough
|
// fallthrough
|
||||||
case 1:
|
case 1:
|
||||||
if ((sprite->pos2.y -= 8) == -160)
|
if ((sprite->pos2.y -= 8) == -160)
|
||||||
{
|
{
|
||||||
sprite->pos2.y = 0;
|
sprite->pos2.y = 0;
|
||||||
sprite->data[2] = 1;
|
sprite->tInvisible = 1;
|
||||||
sprite->data[3] = 0;
|
sprite->tUnionRoomWarpAnimNo = 0;
|
||||||
sprite->data[4] = 0;
|
sprite->tUnionRoomWarpAnimState = 0;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8069210(struct Sprite * sprite)
|
static void DoObjectUnionRoomWarpYDisplacementDownwards(struct Sprite * sprite)
|
||||||
{
|
{
|
||||||
switch (sprite->data[4])
|
switch (sprite->tUnionRoomWarpAnimState)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
sprite->pos2.y = -160;
|
sprite->pos2.y = -160;
|
||||||
sprite->data[4]++;
|
sprite->tUnionRoomWarpAnimState++;
|
||||||
// fallthrough
|
// fallthrough
|
||||||
case 1:
|
case 1:
|
||||||
if ((sprite->pos2.y += 8) == 0)
|
if ((sprite->pos2.y += 8) == 0)
|
||||||
{
|
{
|
||||||
sprite->data[3] = 0;
|
sprite->tUnionRoomWarpAnimNo = 0;
|
||||||
sprite->data[4] = 0;
|
sprite->tUnionRoomWarpAnimState = 0;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8069248(struct Sprite * sprite)
|
static void DoObjectUnionRoomWarpYDisplacement(struct Sprite * sprite)
|
||||||
{
|
{
|
||||||
switch (sprite->data[3])
|
switch (sprite->tUnionRoomWarpAnimNo)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
sub_8069210(sprite);
|
DoObjectUnionRoomWarpYDisplacementDownwards(sprite);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
sub_80691D4(sprite);
|
DoObjectUnionRoomWarpYDisplacementUpwards(sprite);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
sprite->data[3] = 0;
|
sprite->tUnionRoomWarpAnimNo = 0;
|
||||||
AGB_ASSERT_EX(0, ABSPATH("evobjmv.c"), 13331);
|
AGB_ASSERT_EX(0, ABSPATH("evobjmv.c"), 13331);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 sub_8069294(u8 objectEventId)
|
bool32 RfuUnionObjectIsWarping(u8 objectEventId)
|
||||||
{
|
{
|
||||||
u8 spriteId = sub_806900C(objectEventId);
|
u8 spriteId = GetObjectEventSpriteId(objectEventId);
|
||||||
if (spriteId == MAX_SPRITES)
|
if (spriteId == MAX_SPRITES)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
if (gSprites[spriteId].data[3])
|
if (gSprites[spriteId].tUnionRoomWarpAnimNo)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
else
|
else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef tUnionRoomWarpAnimState
|
||||||
|
#undef tUnionRoomWarpAnimNo
|
||||||
|
#undef tInvisible
|
||||||
|
#undef tZCoord
|
||||||
|
#undef tObjectEventId
|
||||||
|
|
||||||
u32 oe_exec_and_other_stuff(u8 fieldEffectId, struct ObjectEvent * objectEvent)
|
u32 oe_exec_and_other_stuff(u8 fieldEffectId, struct ObjectEvent * objectEvent)
|
||||||
{
|
{
|
||||||
ObjectEventGetLocalIdAndMap(objectEvent, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
|
ObjectEventGetLocalIdAndMap(objectEvent, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
|
||||||
@@ -587,7 +637,7 @@ void DoShadowFieldEffect(struct ObjectEvent *objectEvent)
|
|||||||
{
|
{
|
||||||
if (!objectEvent->hasShadow)
|
if (!objectEvent->hasShadow)
|
||||||
{
|
{
|
||||||
objectEvent->hasShadow = 1;
|
objectEvent->hasShadow = TRUE;
|
||||||
oe_exec_and_other_stuff(FLDEFF_SHADOW, objectEvent);
|
oe_exec_and_other_stuff(FLDEFF_SHADOW, objectEvent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-10
@@ -441,7 +441,7 @@ void sub_811BAAC(u8 * sp8, s32 r9)
|
|||||||
{
|
{
|
||||||
s32 r5 = 5 * r9 + r7;
|
s32 r5 = 5 * r9 + r7;
|
||||||
sp8[r5] = sprite_new(OBJECT_EVENT_GFX_MAN, r5 - 0x38, sUnionPartnerCoords[r9][0] + sFacingDirectionOffsets[r7][0], sUnionPartnerCoords[r9][1] + sFacingDirectionOffsets[r7][1], 3, 1);
|
sp8[r5] = sprite_new(OBJECT_EVENT_GFX_MAN, r5 - 0x38, sUnionPartnerCoords[r9][0] + sFacingDirectionOffsets[r7][0], sUnionPartnerCoords[r9][1] + sFacingDirectionOffsets[r7][1], 3, 1);
|
||||||
sub_8069124(r5 - 0x38, TRUE);
|
RfuUnionObjectToggleInvisibility(r5 - 0x38, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -485,7 +485,7 @@ static u8 sub_811BBA0(u32 r1, u32 unused, struct GFtgtGname * r2)
|
|||||||
|
|
||||||
static u32 sub_811BBC8(u32 a0, u32 a1)
|
static u32 sub_811BBC8(u32 a0, u32 a1)
|
||||||
{
|
{
|
||||||
return sub_806916C(5 * a0 + a1 - 0x38);
|
return RfuUnionObjectIsInvisible(5 * a0 + a1 - 0x38);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_811BBE0(u32 r5, u32 r6, u8 r8, struct GFtgtGname * r9)
|
static void sub_811BBE0(u32 r5, u32 r6, u8 r8, struct GFtgtGname * r9)
|
||||||
@@ -494,10 +494,10 @@ static void sub_811BBE0(u32 r5, u32 r6, u8 r8, struct GFtgtGname * r9)
|
|||||||
s32 r7 = 5 * r5 + r6;
|
s32 r7 = 5 * r5 + r6;
|
||||||
if (sub_811BBC8(r5, r6) == 1)
|
if (sub_811BBC8(r5, r6) == 1)
|
||||||
{
|
{
|
||||||
sub_8069124(r7 - 0x38, FALSE);
|
RfuUnionObjectToggleInvisibility(r7 - 0x38, FALSE);
|
||||||
sub_80691A4(r7 - 0x38, 1);
|
RfuUnionObjectStartWarp(r7 - 0x38, 1);
|
||||||
}
|
}
|
||||||
sub_8069094(r7 - 0x38, r8);
|
RfuUnionObjectSetFacingDirection(r7 - 0x38, r8);
|
||||||
sub_811C008(r6, r5, sub_811BBA0(r6, r5, r9));
|
sub_811C008(r6, r5, sub_811BBA0(r6, r5, r9));
|
||||||
GetUnionRoomPlayerFacingCoords(r5, r6, &x, &y);
|
GetUnionRoomPlayerFacingCoords(r5, r6, &x, &y);
|
||||||
sub_8059024(x, y, 1);
|
sub_8059024(x, y, 1);
|
||||||
@@ -506,7 +506,7 @@ static void sub_811BBE0(u32 r5, u32 r6, u8 r8, struct GFtgtGname * r9)
|
|||||||
static void sub_811BC68(u32 a0, u32 a1)
|
static void sub_811BC68(u32 a0, u32 a1)
|
||||||
{
|
{
|
||||||
s32 x, y;
|
s32 x, y;
|
||||||
sub_80691A4(5 * a0 + a1 - 0x38, 2);
|
RfuUnionObjectStartWarp(5 * a0 + a1 - 0x38, 2);
|
||||||
GetUnionRoomPlayerFacingCoords(a0, a1, &x, &y);
|
GetUnionRoomPlayerFacingCoords(a0, a1, &x, &y);
|
||||||
sub_8059024(x, y, 0);
|
sub_8059024(x, y, 0);
|
||||||
}
|
}
|
||||||
@@ -518,7 +518,7 @@ static void sub_811BCA0(u32 r7, struct GFtgtGname * r8)
|
|||||||
|
|
||||||
PlayerGetDestCoords(&x, &y);
|
PlayerGetDestCoords(&x, &y);
|
||||||
player_get_pos_including_state_based_drift(&x2, &y2);
|
player_get_pos_including_state_based_drift(&x2, &y2);
|
||||||
if (sub_806916C(5 * r7 - 0x38) == 1)
|
if (RfuUnionObjectIsInvisible(5 * r7 - 0x38) == 1)
|
||||||
{
|
{
|
||||||
if (sub_811B58C(r7, 0, x, y) == TRUE || sub_811B58C(r7, 0, x2, y2) == TRUE)
|
if (sub_811B58C(r7, 0, x, y) == TRUE || sub_811B58C(r7, 0, x2, y2) == TRUE)
|
||||||
{
|
{
|
||||||
@@ -631,11 +631,11 @@ bool32 sub_811BF00(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3)
|
|||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (sub_806916C(r3 - 0x38) != 0)
|
if (RfuUnionObjectIsInvisible(r3 - 0x38) != 0)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (sub_8069294(r3 - 0x38) != 0)
|
if (RfuUnionObjectIsWarping(r3 - 0x38) != 0)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -654,7 +654,7 @@ bool32 sub_811BF00(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3)
|
|||||||
|
|
||||||
static void sub_811C008(s32 arg0, s32 arg1, u8 arg2)
|
static void sub_811C008(s32 arg0, s32 arg1, u8 arg2)
|
||||||
{
|
{
|
||||||
TurnEventObject(5 * arg1 - 0x38 + arg0, arg2);
|
TurnObjectEvent(5 * arg1 - 0x38 + arg0, arg2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_811C028(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2)
|
void sub_811C028(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2)
|
||||||
|
|||||||
+1
-1
@@ -1193,7 +1193,7 @@ bool8 ScrCmd_turnvobject(struct ScriptContext *ctx)
|
|||||||
u8 v1 = ScriptReadByte(ctx);
|
u8 v1 = ScriptReadByte(ctx);
|
||||||
u8 direction = ScriptReadByte(ctx);
|
u8 direction = ScriptReadByte(ctx);
|
||||||
|
|
||||||
TurnEventObject(v1, direction);
|
TurnObjectEvent(v1, direction);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user