1
0
mirror of https://github.com/OpenTTD/OpenTTD.git synced 2025-08-28 17:09:10 +00:00

Fix: [Script] Access to enum/consts defined outside of main.nut (#10573)

This commit is contained in:
Loïc Guilloux
2023-03-25 23:07:47 +01:00
committed by rubidium42
parent 261d674866
commit 86beadc00b

View File

@@ -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);