raze/polymer/eduke32/source/lunatic/defs_m32.ilua
helixhorned 13c125db02 Lunatic: add 'engine' module, currently allowing to create custom shade tables.
Available in the game and editor. Provide test/shadexfog.lua, containing a
function to creating a set of 32 shade tables corresponding to different shades
of the same fog palookup table, together with some tests and convenience
functions.

Also,
- Add gv.LUNATIC_CLIENT{,_EDUKE32,_MAPSTER32}
- Add LUNATIC_FIRST_TIME in the global env for the game
- defs_m32.lua: add reload() convenience function
- Failed attempt at recreating the base shade table. It is NOT a linear ramp
  of the base palette colors to (0,0,0). That is, it's not created by
  build/util/transpal.exe!

git-svn-id: https://svn.eduke32.com/eduke32@4236 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-31 11:52:00 +00:00

55 lines
1.1 KiB
Text

-- 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)