Skip to content

Commit 1763300

Browse files
authored
Add metatable to correctly handle FSO objects (#7190)
* Add metatable to correctly handle FSO objects * Avoid infinite recursion
1 parent 405de8d commit 1763300

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

code/def_files/data/scripts/forwarders.lua

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,21 @@ setmetatable(Globals, mt)
8484
Globals.nullVec = ba.createVector(0, 0, 0)
8585
Globals.zeroVec = Globals.nullVec
8686
Globals.identityOrient = ba.createOrientationFromVectors(ba.createVector(0, 0, 1), ba.createVector(0, 1, 0), ba.createVector(1, 0, 0))
87+
Globals.FSOObjectsTableMetatable = {
88+
__newindex = function(tbl, key, value)
89+
for k, v in pairs(tbl) do
90+
if k == key then
91+
rawset(tbl, k, value)
92+
return
93+
end
94+
end
95+
rawset(tbl, key, value)
96+
end,
97+
__index = function(tbl, key)
98+
for k, v in pairs(tbl) do
99+
if k == key then
100+
return v
101+
end
102+
end
103+
end
104+
}

0 commit comments

Comments
 (0)