Replace WarningsAsErrors usage with ScriptAssert usage.

For recoverable errors, add some recovery behaviour and logging so a level designer can see in the log what was done as a result of the error.

Warn about default behaviour if no callbacks are added.
This commit is contained in:
hispidence 2021-08-04 16:51:28 +01:00
parent 052b03ec96
commit ead31e63f2
9 changed files with 36 additions and 61 deletions

View file

@ -1,5 +1,6 @@
#pragma once
#include "framework.h"
#include "ScriptAssert.h"
#include "GameScriptMeshInfo.h"
#include "GameScriptPosition.h"
#include "GameScriptColor.h"
@ -11,8 +12,6 @@ Mesh info
@pragma nostrip
*/
extern bool const WarningsAsErrors;
constexpr auto LUA_CLASS_NAME{ "MeshInfo" };
static auto index_error = index_error_maker(GameScriptMeshInfo, LUA_CLASS_NAME);
@ -88,8 +87,7 @@ std::string GameScriptMeshInfo::GetName() const
void GameScriptMeshInfo::SetName(std::string const & id)
{
if (id.empty() && WarningsAsErrors)
throw TENScriptException("Name cannot be blank");
ScriptAssert(!id.empty(), "Name cannot be blank", ERROR_MODE::TERMINATE);
// remove the old name if we have one
s_callbackRemoveName(m_mesh.luaName);