Files
st/src/ITCM/ITCM_MapObjectManager.cpp
T
Yanis 4074a603d2 Decompile overlay 1 (Part 3) (#95)
* ZeldaArrangeBinary OK

* ZeldaMapBinary 26%

* UnkStruct_SceneChange1 -> EntranceInfo

* cleanup EntranceInfo ctors

* fix regressions

* ZeldaMapBinary 47%

* fix regressions

* ZeldaMapBinary 73%

* ZeldaMapBinary 89%

* ZeldaMapBinary 99%
2026-07-01 04:09:04 +02:00

74 lines
1.6 KiB
C++

#include "MapObject/MapObjectManager.hpp"
struct UnkStruct {
unk32 one;
unk32 two;
unk32 three;
unk32 four;
};
extern "C" void func_01ffecdc(int, void *);
MapObject *MapObjectManager::func_01fff498(Vec2bCpp param1) {
if (this->mUnk_0C[param1.y][param1.x] < 0) {
return NULL;
}
return this->mMapObjTable[this->mUnk_0C[param1.y][param1.x]];
}
void MapObjectManager::func_01fff4cc(UnkCallback_func_01fff4cc param1, void *param2) {
MapObject **ptr = this->mMapObjTable;
while (ptr != this->mUnk_08) {
if (*ptr != NULL && GET_FLAG((*ptr)->mFlags, MapObjFlag_Alive)) {
param1(*ptr, param2);
}
ptr++;
}
}
// non-matching
MapObject **MapObjectManager::func_01fff520(UnkStruct_ov000_020b34c4 *param1, MapObject **param2) {
MapObject **ptr = param2;
while (ptr != this->mUnk_08) {
MapObject *ptr2 = *ptr;
if (ptr2 != NULL && GET_FLAG((ptr2)->mFlags, MapObjFlag_Alive)) {
UnkStruct_ov000_020b34c4_Callback cb = *param1->mUnk_00;
if ((*cb)(param1, ptr2)) {
break;
}
}
ptr++;
}
return ptr;
}
MapObjectId MapObject::GetMapObjectId() {
return this->mpProfile->mMapObjId;
}
void MapObject::func_01fff590(unk32 param2) {
UnkStruct stack;
unk32 one;
unk32 two;
unk32 three;
unk32 four;
four = this->mpProfile->mUnk_08;
one = (three = this->mPos.x);
two = this->mPos.y;
three = this->mPos.z;
stack.one = one;
stack.two = two;
stack.three = three;
stack.four = four;
func_01ffecdc(param2, &stack);
}