From ce450d1c00e641f971e80040c326669393afb640 Mon Sep 17 00:00:00 2001 From: melex750 Date: Fri, 25 Jun 2021 18:47:25 -0400 Subject: [PATCH] Fix save/load programs for insects from AlienEgg fixes #1370 --- src/object/auto/autoegg.cpp | 5 ++++- src/object/old_object.cpp | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/object/auto/autoegg.cpp b/src/object/auto/autoegg.cpp index 6c0026d8..ad5d6e91 100644 --- a/src/object/auto/autoegg.cpp +++ b/src/object/auto/autoegg.cpp @@ -24,6 +24,7 @@ #include "graphics/engine/pyro_manager.h" +#include "level/parser/parser.h" #include "level/parser/parserline.h" #include "level/parser/parserparam.h" @@ -194,7 +195,9 @@ bool CAutoEgg::EventProcess(const Event &event) CProgramStorageObject* programStorage = dynamic_cast(alien); Program* program = programStorage->AddProgram(); - programStorage->ReadProgram(program, m_alienProgramName.c_str()); + programStorage->ReadProgram(program, InjectLevelPathsForCurrentLevel(m_alienProgramName, "ai")); + program->readOnly = true; + program->filename = m_alienProgramName; programmable->RunProgram(program); } Init(); diff --git a/src/object/old_object.cpp b/src/object/old_object.cpp index 7dedda8a..94cd7aa7 100644 --- a/src/object/old_object.cpp +++ b/src/object/old_object.cpp @@ -1226,7 +1226,7 @@ void COldObject::Read(CLevelParserLine* line) std::string op = "autoValue" + boost::lexical_cast(i+1); // autoValue1..autoValue5 m_auto->SetValue(i, line->GetParam(op)->AsFloat(0.0f)); } - m_auto->SetString(const_cast(line->GetParam("autoString")->AsPath("ai", "").c_str())); + m_auto->SetString(const_cast(line->GetParam("autoString")->AsString("").c_str())); int i = line->GetParam("run")->AsInt(-1); if (i != -1)