From fb7bd7ba11f8c15d371c770cb12b4de73be9f156 Mon Sep 17 00:00:00 2001 From: MegaMech Date: Sun, 9 Nov 2025 20:40:09 -0700 Subject: [PATCH] Fix Sherbet (#558) * Update Game.cpp * Update Penguin.cpp --- src/engine/objects/Penguin.cpp | 5 ++++- src/port/Game.cpp | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/engine/objects/Penguin.cpp b/src/engine/objects/Penguin.cpp index 34c7248dd..262446abb 100644 --- a/src/engine/objects/Penguin.cpp +++ b/src/engine/objects/Penguin.cpp @@ -48,7 +48,10 @@ OPenguin::OPenguin(const SpawnParams& params) : OObject(params) { object->origin_pos[2] = pos.z; object->unk_0C6 = params.Rotation.value_or(IRotator(0, 0, 0)).yaw; - switch(static_cast(Type)) { + Type = static_cast(params.Type.value_or(0)); + SpawnBhv = static_cast(params.Behaviour.value_or(0)); + + switch(Type) { case PenguinType::CHICK: object->surfaceHeight = 5.0f; object->sizeScaling = 0.04f; diff --git a/src/port/Game.cpp b/src/port/Game.cpp index 2d42bb1ac..37282346d 100644 --- a/src/port/Game.cpp +++ b/src/port/Game.cpp @@ -704,8 +704,10 @@ void CM_ActorBeginPlay(struct Actor* actor) { void CM_ActorGenerateCollision(struct Actor* actor) { AActor* act = gWorldInstance.ConvertActorToAActor(actor); - if (act->Triangles.size() == 0) { - Editor::GenerateCollisionMesh(act, (Gfx*)LOAD_ASSET_RAW(act->Model), 1.0f); + if ((nullptr != act->Model) && (act->Model[0] != '\0')) { + if (act->Triangles.size() == 0) { + Editor::GenerateCollisionMesh(act, (Gfx*)LOAD_ASSET_RAW(act->Model), 1.0f); + } } }