mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-21 14:37:40 -05:00
Change some struct usage to their first substruct where appropriate
This commit is contained in:
parent
20a3f2251a
commit
ea037dfcb5
|
|
@ -42,6 +42,6 @@ void sub_800533C(ax_pose **, UnkSpriteMem **, axdata1 *, u16 *, bool8);
|
|||
void AxResInitFile(axdata *, OpenedFile *, u32, u32, u32, u32, bool8);
|
||||
void AxResInit(axdata *, axmain *, u32, u32, u32, u32, bool8);
|
||||
void AxResInitUnorientedFile(axdata *, OpenedFile *, u32, u32, u32, bool8);
|
||||
void RunAxAnimationFrame(struct axPokemon *);
|
||||
void RunAxAnimationFrame(struct axObject *);
|
||||
|
||||
#endif // GUARD_SPRITE_H
|
||||
|
|
|
|||
|
|
@ -34,26 +34,26 @@ extern s32 cos_4096(s32);
|
|||
static void sub_800561C(struct unkStructFor800561C *, s32, s32, u8 *);
|
||||
s32 *sub_8005674(struct unkStructFor800561C *, s32);
|
||||
|
||||
void DoAxFrame_800558C(struct axPokemon *a0, s32 spriteX, s32 spriteY, u32 a3, u32 paletteNum, u16 *spriteMasks)
|
||||
void DoAxFrame_800558C(struct axObject *a0, s32 spriteX, s32 spriteY, u32 a3, u32 paletteNum, u16 *spriteMasks)
|
||||
{
|
||||
if (!(a0->obj.axdata.flags >> 15))
|
||||
if (!(a0->axdata.flags >> 15))
|
||||
return;
|
||||
|
||||
if (a0->obj.axdata.sub1.poseId < 0)
|
||||
if (a0->axdata.sub1.poseId < 0)
|
||||
RunAxAnimationFrame(a0);
|
||||
|
||||
if (!(a0->obj.axdata.flags >> 15))
|
||||
if (!(a0->axdata.flags >> 15))
|
||||
return;
|
||||
|
||||
a0->obj.axdata.sub1.pos.x = a0->obj.axdata.sub1.offset.x + spriteX;
|
||||
a0->obj.axdata.sub1.pos.y = a0->obj.axdata.sub1.offset.y + spriteY;
|
||||
a0->obj.axdata.sub1.paletteNum = paletteNum;
|
||||
a0->obj.axdata.sub1.unk16 = a3;
|
||||
sub_800533C(a0->obj.axdata.poseData, a0->obj.axdata.spriteData, &a0->obj.axdata.sub1, spriteMasks, !!(a0->obj.axdata.sub1.lastPoseId ^ a0->obj.axdata.sub1.poseId));
|
||||
a0->obj.axdata.sub1.lastPoseId = a0->obj.axdata.sub1.poseId;
|
||||
a0->axdata.sub1.pos.x = a0->axdata.sub1.offset.x + spriteX;
|
||||
a0->axdata.sub1.pos.y = a0->axdata.sub1.offset.y + spriteY;
|
||||
a0->axdata.sub1.paletteNum = paletteNum;
|
||||
a0->axdata.sub1.unk16 = a3;
|
||||
sub_800533C(a0->axdata.poseData, a0->axdata.spriteData, &a0->axdata.sub1, spriteMasks, !!(a0->axdata.sub1.lastPoseId ^ a0->axdata.sub1.poseId));
|
||||
a0->axdata.sub1.lastPoseId = a0->axdata.sub1.poseId;
|
||||
|
||||
if (a0->obj.axdata.flags & 0x800)
|
||||
a0->obj.axdata.flags &= 0xF7FF;
|
||||
if (a0->axdata.flags & 0x800)
|
||||
a0->axdata.flags &= 0xF7FF;
|
||||
}
|
||||
|
||||
void sub_8005610(OpenedFile *a0, s32 a1, s32 a2, u8 *a3)
|
||||
|
|
@ -87,68 +87,64 @@ s32 *sub_8005674(struct unkStructFor800561C *a0, s32 a1)
|
|||
return a0->unk18;
|
||||
}
|
||||
|
||||
// a0 is an s16[2] and a1 is not confirmed to be (struct axPokemon *) yet
|
||||
void sub_800569C(s16 *a0, struct axPokemon *a1, u8 a2)
|
||||
void sub_800569C(Position *a0, struct axObject *a1, u8 a2)
|
||||
{
|
||||
s16 *ptr;
|
||||
s16 *ptr2;
|
||||
s16 *ptr3;
|
||||
Position *ptr;
|
||||
Position *ptr2;
|
||||
Position *ptr3;
|
||||
|
||||
a0[0] = 0;
|
||||
a0[1] = 0;
|
||||
a0->x = 0;
|
||||
a0->y = 0;
|
||||
|
||||
if (!(a1->obj.axdata.flags >> 15) || a2 >= 4)
|
||||
if (!(a1->axdata.flags >> 15) || a2 >= 4)
|
||||
return;
|
||||
|
||||
if (a1->obj.axdata.paletteData != NULL) {
|
||||
ptr = (s16 *)a1->obj.axdata.paletteData;
|
||||
ptr += a1->obj.axdata.sub1.poseId * 8;
|
||||
ptr2 = ptr + (a2 * 2);
|
||||
if (ptr2[0] == 99 && ptr2[1] == 99) {
|
||||
a0[0] = 99;
|
||||
a0[1] = 99;
|
||||
if (a1->axdata.paletteData != NULL) {
|
||||
ptr = &((Position*)a1->axdata.paletteData)[a1->axdata.sub1.poseId * 4];
|
||||
ptr2 = &ptr[a2];
|
||||
if (*&ptr2->x == 99 && *&ptr2->y == 99) {
|
||||
a0->x = 99;
|
||||
a0->y = 99;
|
||||
}
|
||||
else {
|
||||
ptr3 = ptr + (a2 * 2);
|
||||
a0[0] = a1->obj.axdata.sub1.offset.x + ptr3[0];
|
||||
a0[1] = a1->obj.axdata.sub1.offset.y + ptr3[1];
|
||||
ptr3 = &ptr[a2];
|
||||
a0->x = a1->axdata.sub1.offset.x + ptr3->x;
|
||||
a0->y = a1->axdata.sub1.offset.y + ptr3->y;
|
||||
}
|
||||
}
|
||||
else {
|
||||
a0[0] = 99;
|
||||
a0[1] = 99;
|
||||
a0->x = 99;
|
||||
a0->y = 99;
|
||||
}
|
||||
}
|
||||
|
||||
// a0 is an s16[12] and a1 is not confirmed to be (struct axPokemon *) yet
|
||||
void sub_8005700(s16 *a0, struct axPokemon *a1)
|
||||
void sub_8005700(Position *a0, struct axObject *a1)
|
||||
{
|
||||
s32 i;
|
||||
s16 *ptr;
|
||||
Position *ptr;
|
||||
|
||||
if (!(a1->obj.axdata.flags >> 15))
|
||||
if (!(a1->axdata.flags >> 15))
|
||||
return;
|
||||
|
||||
if (a1->obj.axdata.paletteData != NULL) {
|
||||
ptr = (s16 *)a1->obj.axdata.paletteData;
|
||||
ptr += a1->obj.axdata.sub1.poseId * 8;
|
||||
for (i = 0; i <= 6; i += 2) {
|
||||
if (ptr[i] == 99 && ptr[i + 1] == 99) {
|
||||
a0[0] = 99;
|
||||
a0[1] = 99;
|
||||
if (a1->axdata.paletteData != NULL) {
|
||||
ptr = &((Position*)a1->axdata.paletteData)[a1->axdata.sub1.poseId * 4];
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (*&ptr[i].x == 99 && *&ptr[i].y == 99) {
|
||||
a0->x = 99;
|
||||
a0->y = 99;
|
||||
}
|
||||
else {
|
||||
a0[0] = a1->obj.axdata.sub1.offset.x + ptr[i];
|
||||
a0[1] = a1->obj.axdata.sub1.offset.y + ptr[i + 1];
|
||||
a0->x = a1->axdata.sub1.offset.x + ptr[i].x;
|
||||
a0->y = a1->axdata.sub1.offset.y + ptr[i].y;
|
||||
}
|
||||
a0 += 2;
|
||||
a0++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (i = 0; i < 4; i++) {
|
||||
a0[0] = 99;
|
||||
a0[1] = 99;
|
||||
a0 += 2;
|
||||
a0->x = 99;
|
||||
a0->y = 99;
|
||||
a0++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
50
src/sprite.c
50
src/sprite.c
|
|
@ -964,49 +964,49 @@ static inline s16 check_flag_for_80054BC(u16 flags) {
|
|||
}
|
||||
|
||||
|
||||
void RunAxAnimationFrame(struct axPokemon *a0)
|
||||
void RunAxAnimationFrame(struct axObject *a0)
|
||||
{
|
||||
ax_anim *aData;
|
||||
|
||||
if (!check_flag_for_80054BC(a0->obj.axdata.flags))
|
||||
if (!check_flag_for_80054BC(a0->axdata.flags))
|
||||
return;
|
||||
|
||||
if (a0->obj.axdata.sub1.poseId >= 0) {
|
||||
if (a0->obj.axdata.flags & 0x4000)
|
||||
if (a0->axdata.sub1.poseId >= 0) {
|
||||
if (a0->axdata.flags & 0x4000)
|
||||
return;
|
||||
|
||||
if (a0->obj.axdata.totalFrames < 30000)
|
||||
a0->obj.axdata.totalFrames++;
|
||||
if (a0->axdata.totalFrames < 30000)
|
||||
a0->axdata.totalFrames++;
|
||||
|
||||
if (a0->obj.axdata.animWaitFrames != 0) {
|
||||
a0->obj.axdata.animWaitFrames--;
|
||||
if (a0->axdata.animWaitFrames != 0) {
|
||||
a0->axdata.animWaitFrames--;
|
||||
return;
|
||||
}
|
||||
|
||||
if (a0->obj.axdata.animFrames != 0 && --a0->obj.axdata.animFrames > 0)
|
||||
if (a0->axdata.animFrames != 0 && --a0->axdata.animFrames > 0)
|
||||
return;
|
||||
}
|
||||
|
||||
if (a0->obj.axdata.activeAnimData->frames == 0) {
|
||||
if (!(a0->obj.axdata.flags & 0x1000)) {
|
||||
a0->obj.axdata.flags |= 0x2000;
|
||||
if (a0->axdata.activeAnimData->frames == 0) {
|
||||
if (!(a0->axdata.flags & 0x1000)) {
|
||||
a0->axdata.flags |= 0x2000;
|
||||
return;
|
||||
}
|
||||
|
||||
a0->obj.axdata.activeAnimData = a0->obj.axdata.nextAnimData;
|
||||
a0->obj.axdata.animWaitFrames = Rand32Bit() & 1;
|
||||
a0->axdata.activeAnimData = a0->axdata.nextAnimData;
|
||||
a0->axdata.animWaitFrames = Rand32Bit() & 1;
|
||||
}
|
||||
|
||||
a0->obj.axdata.flags |= 0x800;
|
||||
a0->axdata.flags |= 0x800;
|
||||
|
||||
aData = a0->obj.axdata.activeAnimData;
|
||||
a0->obj.axdata.animFrames = aData->frames;
|
||||
a0->obj.axdata.sub1.poseId = aData->poseId;
|
||||
a0->obj.axdata.sub1.offset.x = aData->offset.x;
|
||||
a0->obj.axdata.sub1.offset.y = aData->offset.y;
|
||||
a0->obj.axdata.sub1.shadow.x = aData->shadow.x;
|
||||
a0->obj.axdata.sub1.shadow.y = aData->shadow.y;
|
||||
a0->obj.axdata.sub1.unkC = aData->unkFlags;
|
||||
a0->obj.axdata.sub1.unk10 |= aData->unkFlags;
|
||||
a0->obj.axdata.activeAnimData = aData + 1;
|
||||
aData = a0->axdata.activeAnimData;
|
||||
a0->axdata.animFrames = aData->frames;
|
||||
a0->axdata.sub1.poseId = aData->poseId;
|
||||
a0->axdata.sub1.offset.x = aData->offset.x;
|
||||
a0->axdata.sub1.offset.y = aData->offset.y;
|
||||
a0->axdata.sub1.shadow.x = aData->shadow.x;
|
||||
a0->axdata.sub1.shadow.y = aData->shadow.y;
|
||||
a0->axdata.sub1.unkC = aData->unkFlags;
|
||||
a0->axdata.sub1.unk10 |= aData->unkFlags;
|
||||
a0->axdata.activeAnimData = aData + 1;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user