Discover MoveEntity

This commit is contained in:
Luciano Ciccariello 2022-03-03 23:38:38 +00:00
parent cf2024e014
commit 1083b1750d
9 changed files with 30 additions and 16 deletions

View File

@ -51,6 +51,7 @@ LoadObjLayout = 0x80190D8C;
DestroyEntity = 0x80191D3C;
DestroyEntityFromIndex = 0x80191DA8;
AnimateEntity = 0x80191E6C;
MoveEntity = 0x801920F0;
FallEntity = 0x80192120;
AllocEntity = 0x80192800;
InitializeEntity = 0x80192CAC;

View File

@ -8,6 +8,8 @@ EntityCandle = 0x801B7A64;
EntityDamage = 0x801C2D98;
SpawnExplosionEntity = 0x801C3EC4;
AnimateEntity = 0x801C4D94;
MoveEntity = 0x801C5018;
FallEntity = 0x801C5048;
AllocEntity = 0x801C54D4;
InitializeEntity = 0x801C5974;
ReplaceCandleWithDrop = 0x801C605C;

View File

@ -18,6 +18,7 @@ Random = 0x801B186C;
CreateEntity = 0x801B30E0;
DestroyEntity = 0x801B4908;
AnimateEntity = 0x801B4A38;
MoveEntity = 0x801B4CBC;
FallEntity = 0x801B4CEC;
AllocEntity = 0x801B53CC;
InitializeEntity = 0x801B584C;

View File

@ -8,6 +8,7 @@ SpawnExplosionEntity = 0x8018A860;
DestroyEntity = 0x8018B600;
DestroyEntityFromIndex = 0x8018B66C;
AnimateEntity = 0x8018B730;
MoveEntity = 0x8018B9B4;
FallEntity = 0x8018B9E4;
AllocEntity = 0x8018BE70;
InitializeEntity = 0x8018C310;

View File

@ -9,6 +9,8 @@ void CreateEntity(Entity *entity, ObjectInit* initDesc);
void DestroyEntity(Entity *);
void DestroyEntityFromIndex(s16 index);
s32 AnimateEntity(u8 *frames, Entity *entity);
void MoveEntity(void);
void FallEntity(void);
Entity *AllocEntity(Entity* start, Entity* end);
void InitializeEntity(u16 *arg0);

View File

@ -541,14 +541,14 @@ s32 func_801920AC(void) {
}
#endif
void func_801920F0(void) {
D_8006C26C->posX.value = D_8006C26C->posX.value + D_8006C26C->accelerationX;
D_8006C26C->posY.value = D_8006C26C->posY.value + D_8006C26C->accelerationY;
void MoveEntity(void) {
D_8006C26C->posX.value += D_8006C26C->accelerationX;
D_8006C26C->posY.value += D_8006C26C->accelerationY;
}
void FallEntity(void) {
if (D_8006C26C->accelerationY < FALL_TERMINAL_VELOCITY) {
D_8006C26C->accelerationY = D_8006C26C->accelerationY + FALL_GRAVITY;
D_8006C26C->accelerationY += FALL_GRAVITY;
}
}

View File

@ -250,9 +250,16 @@ INCLUDE_ASM("asm/st/no3/nonmatchings/377D4", func_801C4FA0);
INCLUDE_ASM("asm/st/no3/nonmatchings/377D4", func_801C4FD4);
INCLUDE_ASM("asm/st/no3/nonmatchings/377D4", func_801C5018);
void MoveEntity(void) {
D_8006C3B8->posX.value += D_8006C3B8->accelerationX;
D_8006C3B8->posY.value += D_8006C3B8->accelerationY;
}
INCLUDE_ASM("asm/st/no3/nonmatchings/377D4", func_801C5048);
void FallEntity(void) {
if (D_8006C3B8->accelerationY < FALL_TERMINAL_VELOCITY) {
D_8006C3B8->accelerationY += FALL_GRAVITY;
}
}
INCLUDE_ASM("asm/st/no3/nonmatchings/377D4", func_801C5074);

View File

@ -5,7 +5,7 @@ extern bool g_isSecretStairsButtonPressed;
void func_801B3BDC(u16 objectId, Entity *source, Entity *entity);
s32 func_801B4C78();
void func_801B4CBC();
void MoveEntity();
void func_801B5794(u8);
INCLUDE_ASM("asm/st/st0/nonmatchings/27D64", func_801A7D64);
@ -192,7 +192,7 @@ void EntityDraculaGlass(Entity* entity) {
func_801B5794(3);
}
case 1:
func_801B4CBC();
MoveEntity();
entity->unk1E += 0x20;
entity->accelerationY += 0x2000;
if (entity->posY.Data.high >= 205) {
@ -216,7 +216,7 @@ void EntityDraculaGlass(Entity* entity) {
}
break;
case 3:
func_801B4CBC();
MoveEntity();
entity->accelerationY += 0x2000;
if (entity->posY.Data.high >= 205) {
DestroyEntity(entity);
@ -370,14 +370,14 @@ s32 func_801B4C44(void) {
INCLUDE_ASM("asm/st/st0/nonmatchings/27D64", func_801B4C78);
void func_801B4CBC(void) {
void MoveEntity(void) {
D_8006C3B8->posX.value += D_8006C3B8->accelerationX;
D_8006C3B8->posY.value += D_8006C3B8->accelerationY;
}
void FallEntity(void) {
if (D_8006C3B8->accelerationY < FALL_TERMINAL_VELOCITY) {
D_8006C3B8->accelerationY = D_8006C3B8->accelerationY + FALL_GRAVITY;
D_8006C3B8->accelerationY += FALL_GRAVITY;
}
}

View File

@ -368,14 +368,14 @@ s32 func_8018B93C(void) {
INCLUDE_ASM("asm/st/wrp/nonmatchings/6FD0", func_8018B970);
void func_8018B9B4(void) {
D_8006C3B8->posX.value = D_8006C3B8->posX.value + D_8006C3B8->accelerationX;
D_8006C3B8->posY.value = D_8006C3B8->posY.value + D_8006C3B8->accelerationY;
void MoveEntity(void) {
D_8006C3B8->posX.value += D_8006C3B8->accelerationX;
D_8006C3B8->posY.value += D_8006C3B8->accelerationY;
}
void FallEntity(void) {
if (D_8006C3B8->accelerationY < FALL_TERMINAL_VELOCITY) {
D_8006C3B8->accelerationY = D_8006C3B8->accelerationY + FALL_GRAVITY;
D_8006C3B8->accelerationY += FALL_GRAVITY;
}
}
@ -881,7 +881,7 @@ void func_801903C8(Entity *entity) {
entity->initState++;
} else {
func_8018B9B4();
MoveEntity();
if (AnimateEntity(D_8018104C, entity) == 0) {
DestroyEntity(entity);
}