Impl objects for editor

This commit is contained in:
MegaMech
2025-03-01 21:43:47 -07:00
parent 842042d515
commit b5a7b69a42
25 changed files with 34 additions and 137 deletions
-2
View File
@@ -51,10 +51,8 @@ public:
void func_8007D794(s32 objectIndex);
void func_8007DA4C(s32 objectIndex);
private:
FVector _pos;
static size_t _count;
size_t _idx;
s32 _objectIndex;
};
+14 -14
View File
@@ -72,7 +72,7 @@ OBombKart::OBombKart(Vec3f pos, TrackWaypoint* waypoint, uint16_t waypointIndex,
WheelPos[3][2] = _pos[2];
check_bounding_collision(&_Collision, 2.0f, _pos[0], _pos[1], _pos[2]);
find_unused_obj_index(&ObjectIndex);
find_unused_obj_index(&_objectIndex);
_count++;
}
@@ -329,7 +329,7 @@ void OBombKart::Tick() {
void OBombKart::Draw(s32 cameraId) {
if (gModeSelection == BATTLE) {
for (size_t playerId = 0; playerId < NUM_BOMB_KARTS_BATTLE; playerId++) {
Object* object = &gObjectList[ObjectIndex];
Object* object = &gObjectList[_objectIndex];
if (object->state != 0) {
s32 primAlpha = object->primAlpha;
Player* player = &gPlayerOne[playerId];
@@ -337,9 +337,9 @@ void OBombKart::Draw(s32 cameraId) {
object->pos[1] = player->pos[1] - 2.0;
object->pos[2] = player->pos[2];
object->surfaceHeight = player->unk_074;
func_800563DC(ObjectIndex, cameraId, primAlpha);
func_8005669C(ObjectIndex, cameraId, primAlpha);
func_800568A0(ObjectIndex, cameraId);
func_800563DC(_objectIndex, cameraId, primAlpha);
func_8005669C(_objectIndex, cameraId, primAlpha);
func_800568A0(_objectIndex, cameraId);
}
}
return;
@@ -358,27 +358,27 @@ void OBombKart::Draw(s32 cameraId) {
}
Camera* camera = &camera1[cameraId];
if (cameraId == PLAYER_ONE) {
if (is_obj_flag_status_active(ObjectIndex, 0x00200000) != 0) {
if (is_obj_flag_status_active(_objectIndex, 0x00200000) != 0) {
Unk_4A = 0;
} else if (gGamestate != ENDING) {
Unk_4A = 1;
}
clear_object_flag(ObjectIndex, 0x00200000);
clear_object_flag(_objectIndex, 0x00200000);
}
// huh???
s32 state = State;
if (State != States::DISABLED) {
gObjectList[ObjectIndex].pos[0] = Pos[0];
gObjectList[ObjectIndex].pos[1] = Pos[1];
gObjectList[ObjectIndex].pos[2] = Pos[2];
s32 temp_s4 = func_8008A364(ObjectIndex, cameraId, 0x31C4U, 0x000001F4);
if (is_obj_flag_status_active(ObjectIndex, VISIBLE) != 0) {
set_object_flag(ObjectIndex, 0x00200000);
gObjectList[_objectIndex].pos[0] = Pos[0];
gObjectList[_objectIndex].pos[1] = Pos[1];
gObjectList[_objectIndex].pos[2] = Pos[2];
s32 temp_s4 = func_8008A364(_objectIndex, cameraId, 0x31C4U, 0x000001F4);
if (is_obj_flag_status_active(_objectIndex, VISIBLE) != 0) {
set_object_flag(_objectIndex, 0x00200000);
D_80183E80[0] = 0;
D_80183E80[1] = func_800418AC(Pos[0], Pos[2], camera->pos);
D_80183E80[2] = 0x8000;
func_800563DC(ObjectIndex, cameraId, 0x000000FF);
func_800563DC(_objectIndex, cameraId, 0x000000FF);
OBombKart::SomeRender(camera->pos);
if (((u32) temp_s4 < 0x4E21U) && (state != BOMB_STATE_EXPLODED)) {
OBombKart::LoadMtx();
-1
View File
@@ -47,7 +47,6 @@ public:
u16 Unk_4A = 0;
s16 Unk_4C = 1;
f32 CenterY; // Center of the circle
s32 ObjectIndex = 0; // Index into gObjectList
Collision _Collision;
// Set waypoint to NULL if using a spawn position and not a waypoint.
+1 -1
View File
@@ -19,7 +19,7 @@ size_t OChainChomp::_count = 0;
OChainChomp::OChainChomp() {
_idx = _count;
init_object(indexObjectList2[_count], 0);
_objectIndex = indexObjectList2[_count];
_count++;
}
-1
View File
@@ -46,5 +46,4 @@ private:
FVector2D _end;
static size_t _count;
s32 _idx;
s32 _objectIndex;
};
-1
View File
@@ -42,5 +42,4 @@ private:
s16 _direction;
static size_t _count;
size_t _idx;
s32 _objectIndex;
};
+1
View File
@@ -19,6 +19,7 @@ OHedgehog::OHedgehog(const FVector& pos, const FVector2D& patrolPoint, s16 unk)
_pos = pos;
s32 objectId = indexObjectList2[_idx];
_objectIndex = objectId;
init_object(objectId, 0);
gObjectList[objectId].pos[0] = gObjectList[objectId].origin_pos[0] = pos.x * xOrientation;
gObjectList[objectId].pos[1] = gObjectList[objectId].surfaceHeight = pos.y + 6.0;
-1
View File
@@ -31,5 +31,4 @@ public:
private:
FVector _pos;
bool *_visible;
s32 _objectIndex;
};
-1
View File
@@ -40,7 +40,6 @@ public:
void func_80081790(s32 objectIndex);
void func_8008153C(s32 objectIndex);
s32 _objectIndex;
s32 _moleIndex;
private:
static size_t _count;
+1
View File
@@ -12,6 +12,7 @@ public:
uint8_t uuid[16];
Object o;
bool PendingDestroy = false;
s32 _objectIndex = -1;
virtual ~OObject() = default;
-1
View File
@@ -55,7 +55,6 @@ private:
void InitOtherPenguin(s32 objectIndex);
static bool _toggle;
s32 _objectIndex;
PenguinType _type;
Behaviour _bhv;
};
-1
View File
@@ -38,7 +38,6 @@ public:
void func_8008241C(s32 objectIndex, s32 arg1);
void func_80082714(s32 objectIndex, s32 arg1);
private:
s32 _objectIndex;
FVector _pos;
static size_t _count;
s32 _idx;
+1
View File
@@ -22,6 +22,7 @@ OSnowman::OSnowman(const FVector& pos) {
find_unused_obj_index(&_headIndex);
init_object(_headIndex, 0);
_objectIndex = _headIndex;
gObjectList[_headIndex].origin_pos[0] = pos.x * xOrientation;
gObjectList[_headIndex].origin_pos[1] = pos.y + 5.0 + 3.0;
gObjectList[_headIndex].origin_pos[2] = pos.z;
-1
View File
@@ -50,7 +50,6 @@ private:
FVector _pos;
static size_t _count;
size_t _idx;
s32 _objectIndex;
s32 _headIndex;
s32 _bodyIndex;
};
-1
View File
@@ -113,7 +113,6 @@ public:
private:
static size_t _count;
s32 _idx;
s32 _objectIndex;
s16 _faceDirection;
//! @todo Write this better. This effects the squish size and the bounding box size.
// We should probably return to the programmer the pointer to the actor so they can do thwomp->squishSize = value.
-1
View File
@@ -41,6 +41,5 @@ private:
FRotation _rot;
float _scale;
size_t _idx;
s32 _objectIndex;
bool _drawBin = false;
};
-1
View File
@@ -48,7 +48,6 @@ public:
private:
StarEmitter* _emitter;
s32 _objectIndex;
TrophyType _trophy;
FVector _spawnPos;
Behaviour _bhv;