mirror of
https://github.com/zeldaret/st
synced 2026-08-07 10:15:54 -04:00
4074a603d2
* ZeldaArrangeBinary OK * ZeldaMapBinary 26% * UnkStruct_SceneChange1 -> EntranceInfo * cleanup EntranceInfo ctors * fix regressions * ZeldaMapBinary 47% * fix regressions * ZeldaMapBinary 73% * ZeldaMapBinary 89% * ZeldaMapBinary 99%
74 lines
1.6 KiB
C++
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);
|
|
}
|