Merge branch 'fix_global_iteration' into 'master'

Lua: Fix Global Variable Iteration

See merge request OpenMW/openmw!3835
This commit is contained in:
Alexei Kotov 2024-03-24 09:44:15 +00:00
commit 38eb741bfd
2 changed files with 100 additions and 31 deletions

View file

@ -2,6 +2,7 @@ local testing = require('testing_util')
local core = require('openmw.core')
local async = require('openmw.async')
local util = require('openmw.util')
local world = require('openmw.world')
local function testTimers()
testing.expectAlmostEqual(core.getGameTimeScale(), 30, 'incorrect getGameTimeScale() result')
@ -64,6 +65,28 @@ local function testGetGMST()
testing.expectEqual(core.getGMST('Level_Up_Level2'), 'something')
end
local function testMWScript()
local variableStoreCount = 18
local variableStore = world.mwscript.getGlobalVariables(player)
testing.expectEqual(variableStoreCount, #variableStore)
variableStore.year = 5
testing.expectEqual(5, variableStore.year)
variableStore.year = 1
local indexCheck = 0
for index, value in ipairs(variableStore) do
testing.expectEqual(variableStore[index], value)
indexCheck = indexCheck + 1
end
testing.expectEqual(variableStoreCount, indexCheck)
indexCheck = 0
for index, value in pairs(variableStore) do
testing.expectEqual(variableStore[index], value)
indexCheck = indexCheck + 1
end
testing.expectEqual(variableStoreCount, indexCheck)
end
local function initPlayer()
player:teleport('', util.vector3(4096, 4096, 867.237), util.transform.identity)
coroutine.yield()
@ -101,6 +124,7 @@ tests = {
end},
{'teleport', testTeleport},
{'getGMST', testGetGMST},
{'mwscript', testMWScript},
}
return {