Use metatables to make gGlobalSoundSource readonly
This commit is contained in:
parent
07d3fe3b93
commit
a905f317a7
|
@ -306,8 +306,20 @@ end
|
||||||
-- sound --
|
-- sound --
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
|
local function read_only(t)
|
||||||
|
local proxy = {}
|
||||||
|
local mt = { -- create metatable
|
||||||
|
__index = t,
|
||||||
|
__newindex = function()
|
||||||
|
error('attempt to update a read-only table', 2)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
setmetatable(proxy, mt)
|
||||||
|
return proxy
|
||||||
|
end
|
||||||
|
|
||||||
--- @type Vec3f
|
--- @type Vec3f
|
||||||
gGlobalSoundSource = { x = 0, y = 0, z = 0 }
|
gGlobalSoundSource = read_only({ x = 0, y = 0, z = 0 })
|
||||||
|
|
||||||
--- @param bank number
|
--- @param bank number
|
||||||
--- @param soundID number
|
--- @param soundID number
|
||||||
|
|
|
@ -308,8 +308,20 @@ end
|
||||||
-- sound --
|
-- sound --
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
|
local function read_only(t)
|
||||||
|
local proxy = {}
|
||||||
|
local mt = { -- create metatable
|
||||||
|
__index = t,
|
||||||
|
__newindex = function()
|
||||||
|
error('attempt to update a read-only table', 2)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
setmetatable(proxy, mt)
|
||||||
|
return proxy
|
||||||
|
end
|
||||||
|
|
||||||
--- @type Vec3f
|
--- @type Vec3f
|
||||||
gGlobalSoundSource = { x = 0, y = 0, z = 0 }
|
gGlobalSoundSource = read_only({ x = 0, y = 0, z = 0 })
|
||||||
|
|
||||||
--- @param bank number
|
--- @param bank number
|
||||||
--- @param soundID number
|
--- @param soundID number
|
||||||
|
|
|
@ -272,8 +272,19 @@ char gSmluaConstants[] = ""
|
||||||
"-----------\n"
|
"-----------\n"
|
||||||
"-- sound --\n"
|
"-- sound --\n"
|
||||||
"-----------\n"
|
"-----------\n"
|
||||||
|
"local function read_only(t)\n"
|
||||||
|
" local proxy = {}\n"
|
||||||
|
" local mt = { -- create metatable\n"
|
||||||
|
" __index = t,\n"
|
||||||
|
" __newindex = function()\n"
|
||||||
|
" error('attempt to update a read-only table', 2)\n"
|
||||||
|
" end\n"
|
||||||
|
" }\n"
|
||||||
|
" setmetatable(proxy, mt)\n"
|
||||||
|
" return proxy\n"
|
||||||
|
"end\n"
|
||||||
"--- @type Vec3f\n"
|
"--- @type Vec3f\n"
|
||||||
"gGlobalSoundSource = { x = 0, y = 0, z = 0 }\n"
|
"gGlobalSoundSource = read_only({ x = 0, y = 0, z = 0 })\n"
|
||||||
"--- @param bank number\n"
|
"--- @param bank number\n"
|
||||||
"--- @param soundID number\n"
|
"--- @param soundID number\n"
|
||||||
"--- @param priority number\n"
|
"--- @param priority number\n"
|
||||||
|
|
Loading…
Reference in New Issue