Shifted CodeBlock::smCurrentLineText to be a const char* so it's use is clearer

Ensured CodeBlock::smCurrentLineText is cleared at the end of execution
Tweaked and cleaned up the context lines passed along for further debugging data in the event of a script assert
This commit is contained in:
JeffR 2026-02-22 18:18:42 -06:00
parent 171211c4e2
commit 9084e81bc1
11 changed files with 107 additions and 23 deletions

View file

@ -704,7 +704,17 @@ bool Trigger::testCondition()
String resVar = getIdString() + String(".result");
Con::setBoolVariable(resVar.c_str(), false);
String command = resVar + "=" + mTripIf + ";";
Con::evaluatef(command.c_str());
StringTableEntry objectName = getName();
if (objectName != NULL)
objectName = getIdString();
StringTableEntry groupName = getGroup()->getName();
if (groupName != NULL)
groupName = getGroup()->getIdString();
String context = String::ToString("%s\nGroup: %s, Object: %s", getFilename(), groupName, objectName);
Con::evaluate(command.c_str(), false, context);
if (Con::getBoolVariable(resVar.c_str()) == 1)
{
return true;
@ -743,8 +753,15 @@ void Trigger::potentialEnterObject(GameBase* enter)
String command = String("%obj = ") + enter->getIdString() + ";";
command = command + String("%this = ") + getIdString() + ";" + mEnterCommand;
StringTableEntry objectName = getName() != StringTable->EmptyString() ? getName() : getIdString();
String context = String::ToString("%s, %s", getGroup(), objectName);
StringTableEntry objectName = getName();
if (objectName != NULL)
objectName = getIdString();
StringTableEntry groupName = getGroup()->getName();
if (groupName != NULL)
groupName = getGroup()->getIdString();
String context = String::ToString("%s\nGroup: %s, Object: %s", getFilename(), groupName, objectName);
Con::evaluate(command.c_str(), false, context);
}
@ -795,8 +812,15 @@ void Trigger::processTick(const Move* move)
String command = String("%obj = ") + remove->getIdString() + ";";
command = command + String("%this = ") + getIdString() + ";" + mLeaveCommand;
StringTableEntry objectName = getName() != StringTable->EmptyString() ? getName() : getIdString();
String context = String::ToString("%s, %s", getGroup(), objectName);
StringTableEntry objectName = getName();
if (objectName != NULL)
objectName = getIdString();
StringTableEntry groupName = getGroup()->getName();
if (groupName != NULL)
groupName = getGroup()->getIdString();
String context = String::ToString("%s\nGroup: %s, Object: %s", getFilename(), groupName, objectName);
Con::evaluate(command.c_str(), false, context);
}
if (testTrippable() && testCondition())
@ -807,8 +831,15 @@ void Trigger::processTick(const Move* move)
if (evalCmD(&mTickCommand))
{
StringTableEntry objectName = getName() != StringTable->EmptyString() ? getName() : getIdString();
String context = String::ToString("%s, %s", getGroup(), objectName);
StringTableEntry objectName = getName();
if (objectName != NULL)
objectName = getIdString();
StringTableEntry groupName = getGroup()->getName();
if (groupName != NULL)
groupName = getGroup()->getIdString();
String context = String::ToString("%s\nGroup: %s, Object: %s", getFilename(), groupName, objectName);
Con::evaluate(mTickCommand.c_str(), false, context);
}