aboutsummaryrefslogtreecommitdiff
path: root/gamemode/core/dataloader/sv_loadglobals.lua
diff options
context:
space:
mode:
Diffstat (limited to 'gamemode/core/dataloader/sv_loadglobals.lua')
-rw-r--r--gamemode/core/dataloader/sv_loadglobals.lua34
1 files changed, 25 insertions, 9 deletions
diff --git a/gamemode/core/dataloader/sv_loadglobals.lua b/gamemode/core/dataloader/sv_loadglobals.lua
index cf6f838..7689c54 100644
--- a/gamemode/core/dataloader/sv_loadglobals.lua
+++ b/gamemode/core/dataloader/sv_loadglobals.lua
@@ -5,6 +5,11 @@ local function ExecuteOnFolder(dir, recursive, func)
local path = "data/artery/"
local fpath = table.concat({path,dir,"/*"})
local files, directories = file.Find(fpath,"GAME")
+ print("Looking for files in ", fpath, "Found:")
+ print("files:")
+ PrintTable(files)
+ print("dirs:")
+ PrintTable(directories)
for k,v in pairs(files) do
local callpath = table.concat({path,dir,"/",v})
func(callpath)
@@ -25,17 +30,30 @@ local co
local function loadglobals()
co = coroutine.create(function()
ExecuteOnFolder("global",true,function(f)
- print("Loading global file:", f)
+ log.debug("Loading global file : " .. f)
local filetxt = file.Read(f,"GAME")
local filename = string.GetFileFromFilename(f)
if string.find(filename,"^cl_") then
- print("Added",f,"to be loaded clientside")
coroutine.yield(f,filetxt)
elseif string.find(filename,"^sv_") then
- CompileString(filetxt,f)()
+ local func = CompileString(filetxt,f,false)
+ if type(func) == "function" then
+ xpcall(func,function(e)
+ log.error(string.format("%s : %s",f,e))
+ end)
+ else
+ log.error(string.format("Failed to compile file %s :\n%s"),filename,func)
+ end
coroutine.yield()
else
- CompileString(filetxt,f)()
+ local func = CompileString(filetxt,f,false)
+ if type(func) == "function" then
+ xpcall(func,function(e)
+ log.error(string.format("%s : %s",f,e))
+ end)
+ else
+ log.error(string.format("Failed to compile file %s :\n%s",filename,func))
+ end
coroutine.yield(f,filetxt)
end
end)
@@ -44,12 +62,11 @@ end
local csco = {}
local function load_cs_files(ply)
- print("Told to load csfiles for", ply:Nick())
+ log.debug("Told to load csfiles for", ply:Nick())
csco[ply] = coroutine.create(function()
- print("Loading cs files, toload is")
for k,v in pairs(toload) do print(k) end
for k,v in pairs(toload) do
- print("Loading cs file:", k,"for",ply:Nick())
+ log.debug("Loading cs file:", k,"for",ply:Nick())
net.Start("artery_loadfile")
net.WriteString(k)
local hash = util.CRC(v)
@@ -64,7 +81,6 @@ local state = "done"
local n
timer.Create("inc_load_timer",0.1,0,function()
if state == "loading_sv" then
- print("co is", co)
if coroutine.status(co) == "suspended" then
local _,fn,t = coroutine.resume(co)
if fn and t then
@@ -106,7 +122,7 @@ end)
loadglobals()
state = "loading_sv"
hook.Add("PlayerInitialSpawn","artery_loadglobals",function(ply)
- print("Doing player inital span, loading globals for " , ply:Nick())
+ log.debug("Doing player inital spawn, loading globals for " , ply:Nick())
timer.Simple(1,function()
load_cs_files(ply)
state = "loading_cl"