diff --git a/src/script/squirrel.cpp b/src/script/squirrel.cpp index 2485ed791a..a57d364fb4 100644 --- a/src/script/squirrel.cpp +++ b/src/script/squirrel.cpp @@ -566,6 +566,10 @@ void Squirrel::Initialize() sq_pushroottable(this->vm); squirrel_register_global_std(this); + + /* Set consts table as delegate of root table, so consts/enums defined via require() are accessible */ + sq_pushconsttable(this->vm); + sq_setdelegate(this->vm, -2); } class SQFile { @@ -764,6 +768,12 @@ void Squirrel::Uninitialize() { ScriptAllocatorScope alloc_scope(this); + /* Remove the delegation */ + sq_pushroottable(this->vm); + sq_pushnull(this->vm); + sq_setdelegate(this->vm, -2); + sq_pop(this->vm, 1); + /* Clean up the stuff */ sq_pop(this->vm, 1); sq_close(this->vm);