Further general enemy mgr progress

This commit is contained in:
intns 2024-01-01 11:28:29 +00:00
parent 347df299f3
commit c91ce7991b
3 changed files with 16 additions and 8 deletions

View File

@ -163,12 +163,15 @@ int getEnemyID(char* name, int flags);
inline int getEnemyMgrID(int enemyID)
{
int idx = -1;
for (int i = 0; i < gEnemyInfoNum; i++) {
char id = gEnemyInfo[i].mId;
if (id == enemyID) {
idx = (gEnemyInfo[i].mFlags & 1) ? enemyID : gEnemyInfo[i].mParentID;
}
}
return idx;
}

View File

@ -74,6 +74,7 @@ struct EnemyNumInfo {
}
inline u8 getEnemyNumData(int enemyID)
{
// mr vs li issue here
for (int i = 0; i < gEnemyInfoNum; i++) {
if (mEnemyNumList[i].mEnemyID == enemyID) {
return mEnemyNumList[i].mCount;
@ -208,16 +209,17 @@ struct GeneralEnemyMgr : public GenericObjectMgr, public CNode {
inline char getEnemyMember(int id, int flags) { return EnemyInfoFunc::getEnemyMember(id, flags); }
inline u8 getEnemyCount(int enemyID, int mgrID)
{
u8 num = 0;
// clrlwi issue here
u8 num = enemyID;
for (int i = 0; i < gEnemyInfoNum; i++) {
EnemyTypeID* typeID = &mEnemyNumInfo.mEnemyNumList[i];
EnemyTypeID& typeID = mEnemyNumInfo.mEnemyNumList[i];
bool eq = (u8)(enemyID == mgrID);
int id = eq ? getEnemyMgrID(typeID->mEnemyID) : typeID->mEnemyID;
int id = eq ? getEnemyMgrID(typeID.mEnemyID) : typeID.mEnemyID;
if (id == enemyID) {
num += typeID->mCount;
num += typeID.mCount;
}
}

View File

@ -717,16 +717,19 @@ void GeneralEnemyMgr::addEnemyNum(int enemyID, u8 max, GenObjectEnemy* genObj)
*/
u8 GeneralEnemyMgr::getEnemyNum(int enemyID, bool doFullCount)
{
u8 count = 0;
if (doFullCount) {
if (mEnemyNumInfo.mEnemyNumList) {
return (u8)getEnemyCount(enemyID, getEnemyMgrID(enemyID));
// ISSUE IN HERE
count = getEnemyCount(enemyID, getEnemyMgrID(enemyID));
}
return 0;
} else {
// ISSUE IN HERE
count = mEnemyNumInfo.getEnemyNumData(enemyID);
}
return mEnemyNumInfo.getEnemyNumData(enemyID);
return count;
/*
stwu r1, -0x10(r1)