1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--
-- file: parse_snd.lua
-- brief: sounds.tdf parser
-- author: Dave Rodgers
--
-- Copyright (C) 2007.
-- Licensed under the terms of the GNU GPL, v2 or later.
--
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
local TDF = VFS.Include('gamedata/parse_tdf.lua')
local function SetupSounds(soundTable)
local newTbl = {}
for k, v in pairs(soundTable) do
if ((type(k) == 'string') and (type(v) == 'string')) then
local lower = string.lower(k)
local s, e, name, num = string.find(lower, '([^%d]+)(%d*)')
if (name) then
num = tonumber(num)
if (num) then
newTbl[name] = newTbl[name] or {}
newTbl[name][num] = string.lower(v)
else
newTbl[name] = string.lower(v)
end
end
end
end
return newTbl
end
local function ParseSND(filename)
local snds, err = TDF.Parse(filename)
if (snds == nil) then
return nil, err
end
for k,v in pairs(snds) do
-- print('sound.tdf: ' .. tostring(k) .. ' = ' .. tostring(v))
local luaSnds = SetupSounds(v)
snds[k] = luaSnds
for kx,vx in pairs(luaSnds) do
-- print(tostring(kx), tostring(vx))
if (type(vx) == 'table') then
for kt,vt in pairs(vx) do
-- print(kt, vt)
end
end
end
end
return snds
end
return { Parse = ParseSND }
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
|