summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMegaMech <MegaMech@users.noreply.github.com>2025-11-09 20:40:09 -0700
committerGitHub <noreply@github.com>2025-11-09 20:40:09 -0700
commitfb7bd7ba11f8c15d371c770cb12b4de73be9f156 (patch)
tree13b4da626832b90ad4295720d15ba025d8e50e56
parentde9c5d510175bba11ab8704e67be3a3a94f9149e (diff)
Fix Sherbet (#558)
* Update Game.cpp * Update Penguin.cpp
-rw-r--r--src/engine/objects/Penguin.cpp5
-rw-r--r--src/port/Game.cpp6
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<PenguinType>(Type)) {
+ Type = static_cast<PenguinType>(params.Type.value_or(0));
+ SpawnBhv = static_cast<OPenguin::Behaviour>(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);
+ }
}
}