Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- scroll to bottom for output folder
- -- Path to elunadoc
- local PATH = "E:/Cores/Eluna/core_trinity/trin_wotlk/source/src/LuaEngine"
- local function FindEnumsFromDoc(event, player, msg)
- if (msg:lower() ~= "mmeth") then
- return
- end
- -- utility
- local function WriteFile(path, str)
- local f = assert(io.open(path, "w"))
- f:write(str)
- f:close()
- end
- local function OpenFile(path)
- local f = assert(io.open(path, "r"))
- local str = f:read("*all")
- f:close()
- return str
- end
- local function scandir(path, files)
- local f = io.popen('dir "'..path..'" /b /s /A-D-H')
- if (not f) then return files end
- for fullpath in f:lines() do
- if (fullpath:find("Methods%.h$")) then
- table.insert(files, fullpath)
- end
- end
- f:close()
- return files
- end
- local listedfunc = {}
- local kk = 0
- local alt = {
- -- LuaPacket = "LuaWorldPacket",
- -- LuaQuery = "LuaElunaQuery",
- }
- for name, namesp in OpenFile(PATH.."/LuaFunctions.cpp"):gmatch("{%s*[%w_]+%s*,%s*\"(%w+)\"%s*,%s*&(%w+)::%w+%s*}") do
- namesp = alt[namesp] or namesp
- listedfunc[namesp.." "..name] = true
- kk = kk+1
- end
- local ik = 0
- for k,v in ipairs(scandir(PATH, {})) do
- local f = OpenFile(v)
- local namesp = f:match("namespace (%w+)")
- for name in f:gmatch("int%s+(%w+)%(lua_State%*%s+/?%*?L%*?/?") do
- -- print(namesp.."::"..name)
- if not listedfunc[namesp.." "..name] then
- print(namesp.."::"..name.." doesnt exist")
- end
- ik = ik+1
- end
- end
- print(kk, ik)
- return false
- end
- RegisterPlayerEvent(42, FindEnumsFromDoc)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement