-- INTERNAL -- definitions of BUILD and game types for the Lunatic Interpreter local ffi = require("ffi") local ffiC = ffi.C ffi.cdef[[ enum { LUNATIC_CLIENT_MAPSTER32 = 0, LUNATIC_CLIENT_EDUKE32 = 1, LUNATIC_CLIENT = LUNATIC_CLIENT_MAPSTER32 } ]] --== First, load the definitions common to the game's and editor's Lua interface. decl = ffi.cdef local defs_c = require("defs_common") defs_c.finish_spritetype({}) defs_c.create_globals(_G) -- TODO: provide access to only a subset, restict access to ffiC? gv = ffiC --== Mapster32-specific initialization ffi.cdef "char *listsearchpath(int32_t initp);" -- Add the search path directories to the Lua load path. local initp = 1 while (true) do local sp_c = ffiC.listsearchpath(initp) if (sp_c == nil) then break end local sp = ffi.string(sp_c) assert(sp:sub(-1)=='/') package.path = sp..'?.lua;'..package.path initp = 0 end -- Helper functions local package = package local require = require function reload(modname) package.loaded[modname] = nil return require(modname) end --print('Lua load path: '..package.path)