Use PSP InitializeEntity Impl (#1394)

Update `InitializeEntity` to use the PSP decompilation and remove
duplicate implmeentations across stages.
This commit is contained in:
Jonathan Hohle 2024-07-08 12:16:47 -07:00 committed by GitHub
parent d3c209eab9
commit 2220f6c5bd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 9 additions and 89 deletions

View File

@ -7,8 +7,9 @@ void InitializeEntity(u16 arg0[]) {
g_CurrentEntity->unk5A = *arg0++;
g_CurrentEntity->palette = *arg0++;
enemyId = *arg0++;
g_CurrentEntity->enemyId = enemyId;
// n.b.! the post increment of arg0 is optimized out
// on the PS1 version, but not on the PSP version.
enemyId = g_CurrentEntity->enemyId = *arg0++;
enemyDef = &g_api.enemyDefs[enemyId];
g_CurrentEntity->hitPoints = enemyDef->hitPoints;
g_CurrentEntity->attack = enemyDef->attack;
@ -19,9 +20,9 @@ void InitializeEntity(u16 arg0[]) {
g_CurrentEntity->flags = enemyDef->flags;
g_CurrentEntity->hitboxOffX = 0;
g_CurrentEntity->hitboxOffY = 0;
g_CurrentEntity->step_s = 0;
g_CurrentEntity->step++;
if (g_CurrentEntity->zPriority == 0) {
g_CurrentEntity->step_s = 0;
if (!g_CurrentEntity->zPriority) {
g_CurrentEntity->zPriority =
g_unkGraphicsStruct.g_zEntityCenter.unk - 0xC;
}

View File

@ -303,35 +303,7 @@ void EntityExplosionSpawn(u16 arg0, u16 arg1) {
g_CurrentEntity->step_s = 0;
}
void InitializeEntity(u16 arg0[]) {
u16 enemyId;
EnemyDef* enemyDef;
g_CurrentEntity->animSet = *arg0++;
g_CurrentEntity->animCurFrame = *arg0++;
g_CurrentEntity->unk5A = *arg0++;
g_CurrentEntity->palette = *arg0++;
enemyId = *arg0++;
g_CurrentEntity->enemyId = enemyId;
enemyDef = &g_api.enemyDefs[enemyId];
g_CurrentEntity->hitPoints = enemyDef->hitPoints;
g_CurrentEntity->attack = enemyDef->attack;
g_CurrentEntity->attackElement = enemyDef->attackElement;
g_CurrentEntity->hitboxState = enemyDef->hitboxState;
g_CurrentEntity->hitboxWidth = enemyDef->hitboxWidth;
g_CurrentEntity->hitboxHeight = enemyDef->hitboxHeight;
g_CurrentEntity->flags = enemyDef->flags;
g_CurrentEntity->hitboxOffX = 0;
g_CurrentEntity->hitboxOffY = 0;
g_CurrentEntity->step_s = 0;
g_CurrentEntity->step++;
if (g_CurrentEntity->zPriority == 0) {
g_CurrentEntity->zPriority =
g_unkGraphicsStruct.g_zEntityCenter.unk - 0xC;
}
}
#include "../init_entity.h"
void EntityDummy(Entity* arg0) {
if (arg0->step == 0) {
arg0->step++;

View File

@ -292,34 +292,7 @@ void EntityExplosionSpawn(u16 arg0, u16 sfxId) {
g_CurrentEntity->step_s = 0;
}
void InitializeEntity(u16 arg0[]) {
u16 enemyId;
EnemyDef* enemyDef;
g_CurrentEntity->animSet = *arg0++;
g_CurrentEntity->animCurFrame = *arg0++;
g_CurrentEntity->unk5A = *arg0++;
g_CurrentEntity->palette = *arg0++;
enemyId = *arg0++;
g_CurrentEntity->enemyId = enemyId;
enemyDef = &g_api.enemyDefs[enemyId];
g_CurrentEntity->hitPoints = enemyDef->hitPoints;
g_CurrentEntity->attack = enemyDef->attack;
g_CurrentEntity->attackElement = enemyDef->attackElement;
g_CurrentEntity->hitboxState = enemyDef->hitboxState;
g_CurrentEntity->hitboxWidth = enemyDef->hitboxWidth;
g_CurrentEntity->hitboxHeight = enemyDef->hitboxHeight;
g_CurrentEntity->flags = enemyDef->flags;
g_CurrentEntity->hitboxOffX = 0;
g_CurrentEntity->hitboxOffY = 0;
g_CurrentEntity->step_s = 0;
g_CurrentEntity->step++;
if (g_CurrentEntity->zPriority == 0) {
g_CurrentEntity->zPriority =
g_unkGraphicsStruct.g_zEntityCenter.unk - 0xC;
}
}
#include "../init_entity.h"
void EntityDummy(Entity* arg0) {
if (arg0->step == 0) {

View File

@ -233,7 +233,7 @@ void EntityExplosionSpawn(u16 arg0, u16 sfxId) {
g_CurrentEntity->step_s = 0;
}
INCLUDE_ASM("st/rwrp/nonmatchings/D580", InitializeEntity);
#include "../init_entity.h"
void EntityDummy(Entity* entity) {
if (entity->step == 0) {

View File

@ -348,33 +348,7 @@ void EntityExplosionSpawn(u16 arg0, u16 arg1) {
}
#endif
void InitializeEntity(u16 arg0[]) {
u16 enemyId;
EnemyDef* enemyDef;
g_CurrentEntity->animSet = *arg0++;
g_CurrentEntity->animCurFrame = *arg0++;
g_CurrentEntity->unk5A = *arg0++;
g_CurrentEntity->palette = *arg0++;
enemyId = g_CurrentEntity->enemyId = *arg0++;
enemyDef = &g_api.enemyDefs[enemyId];
g_CurrentEntity->hitPoints = enemyDef->hitPoints;
g_CurrentEntity->attack = enemyDef->attack;
g_CurrentEntity->attackElement = enemyDef->attackElement;
g_CurrentEntity->hitboxState = enemyDef->hitboxState;
g_CurrentEntity->hitboxWidth = enemyDef->hitboxWidth;
g_CurrentEntity->hitboxHeight = enemyDef->hitboxHeight;
g_CurrentEntity->flags = enemyDef->flags;
g_CurrentEntity->hitboxOffX = 0;
g_CurrentEntity->hitboxOffY = 0;
g_CurrentEntity->step++;
g_CurrentEntity->step_s = 0;
if (!g_CurrentEntity->zPriority) {
g_CurrentEntity->zPriority =
g_unkGraphicsStruct.g_zEntityCenter.unk - 0xC;
}
}
#include "../init_entity.h"
void EntityDummy(Entity* arg0) {
if (!arg0->step) {