This commit is contained in:
theo
2020-06-12 02:56:57 -07:00
7 changed files with 115 additions and 171 deletions
+28
View File
@@ -0,0 +1,28 @@
#include "entity.h"
#include "global.h"
extern void sub_080042B8();
extern void (*gUnk_08123384[])(Entity*);
extern void UpdateSpriteOrderAndFlip(Entity*);
extern void LoadAnimation();
void sub_08097D78(Entity *ent)
{
gUnk_08123384[ent->action](ent);
}
void sub_08097D90(Entity *ent)
{
ent->action = 1;
ent->spriteSettings.b.ss0 = 1;
ent->collisionLayer = 1;
ent->ticks.b0 = 0;
UpdateSpriteOrderAndFlip(ent);
LoadAnimation(ent, 0);
}
void sub_08097DCC(Entity *ent)
{
sub_080042B8(ent);
}
+38
View File
@@ -0,0 +1,38 @@
#include "global.h"
#include "entity.h"
#include "room.h"
void SetTile(u32 tileIndex, s32 tilePosition, s32 layerIndex);
void sub_0808D618(Entity* ent);
extern RoomControls gRoomControls;
extern s16 gUnk_08121750[];
extern s16 gUnk_0812176A[];
void sub_0808D5DC(Entity* ent)
{
if (ent->action == 0)
{
ent->action = 1;
ent->spriteSettings.b.ss0 = 1;
ent->spriteOrder.b3 = 3;
ent->ticks.b0 = 7;
ent->animationList = ent->entityType.parameter1;
sub_0808D618(ent);
}
}
void sub_0808D618(Entity *ent)
{
u32 tilePos;
s16 *arr;
u32 i;
arr = (ent->entityType.parameter1 != 0) ? gUnk_0812176A : gUnk_08121750;
tilePos = (((ent->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 0x3F) | ((((ent->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 0x3F) * 64);
for (i = 0; i < 13; i++)
{
SetTile(16500, tilePos + arr[i], 1);
}
}
+41
View File
@@ -0,0 +1,41 @@
#include "global.h"
#include "entity.h"
#include "room.h"
void SetTile(u32 tileIndex, s32 tilePosition, s32 layerIndex);
s32 GetTileType(s32 tilePosition, s32 layerIndex);
void sub_08078B48();
void sub_0805E780();
extern Entity gLinkEntity;
extern RoomControls gRoomControls;
extern void (*gUnk_08124C08[])(Entity *);
void sub_080A0E98(Entity* ent)
{
gUnk_08124C08[ent->action](ent);
}
void sub_080A0EB0(Entity* ent)
{
u32 tilePos;
ent->action = 1;
tilePos = (((ent->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 0x3F) | ((((ent->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 0x3F) * 64);
ent->field_0x80 = tilePos;
SetTile(16509, ent->field_0x80, 1);
}
void sub_080A0EF0(Entity* ent)
{
s32 tileIndex;
tileIndex = GetTileType(ent->field_0x80, 1);
if (tileIndex != 16509)
{
sub_08078B48();
gLinkEntity.x.WORD = ent->x.WORD;
gLinkEntity.y.HALF.HI = ent->y.HALF.HI + 4;
sub_0805E780();
}
}