comparison support/gen-mount-db.lua @ 65:8b8b0bade520

Fixed support for mounts using the new MountJournal and mount IDs (no conversion of old profiles at the moment).
author Jerome Vuarand <jerome.vuarand@gmail.com>
date Thu, 23 Oct 2014 13:44:59 +0100
parents
children
comparison
equal deleted inserted replaced
64:49ae7191821f 65:8b8b0bade520
1 local dump = require 'dump'
2 local path = require 'path'
3 local registry = require 'registry'
4 local casc = require 'casc'
5 local dbc = require 'casc.dbc'
6
7
8 local root =
9 registry.HKLM.SOFTWARE['Blizzard Entertainment']['World of Warcraft'] 'InstallPath' or
10 registry.HKLM.SOFTWARE.Wow6432Node['Blizzard Entertainment']['World of Warcraft'] 'InstallPath'
11 root = path.split(root)
12
13 -- load local build config
14 local buildKey,cdnBase,cdnKey = assert(casc.localbuild(tostring(root / '.build.info'), casc.selectActiveBuild))
15
16 -- open the CASC
17 local handle = casc.open(tostring(root / 'Data'), buildKey, cdnBase, cdnKey)
18
19 -- read the mount database
20 local Mount = handle:readFile("DBFilesClient/Mount.db2")
21
22 -- create a mapping from mount ID to spell ID
23 local map = {}
24 for _,mount,spell in dbc.rows(Mount, 'u7.u.') do
25 map[mount] = spell
26 end
27
28 -- save
29 local file = assert(io.open("../MountMap.lua", 'wb'))
30 assert(file:write("-- this is a generated file, do not edit, see support/gen-mount-db.lua\n"))
31 assert(file:write("CyborgMMO_MountMap = "..dump.tostring(map).."\n"))
32 assert(file:write("CyborgMMO_LocalMountMap = {}\n"))
33 assert(file:close())
34