1
0
Fork 0
mirror of https://github.com/notwa/mm synced 2024-06-16 08:23:06 -07:00

reduce globals, more refactoring

This commit is contained in:
Connor Olding 2015-05-10 15:01:51 -07:00
parent 914c3575fa
commit 74164a2897
2 changed files with 47 additions and 44 deletions

38
Lua/addrs/addrs.lua Executable file
View File

@ -0,0 +1,38 @@
local basics = require "addrs.basics"
local versions = require "addrs.versions"
local same = {
["O JP10"] = "O US10",
["O JP11"] = "O US11",
["O JP12"] = "O US12",
--["O JPGC MQ"] = "O USGC", -- maybe?
}
return function(hash)
local version = versions[hash] or VERSION_OVERRIDE
if version == nil then
print('ERROR: unknown rom')
return
end
local v = version:sub(1, 2)
local rv = same[version] or version
local b = basics[rv]
function AL(a, s) return A(b.link + a, s) end
function AG(a, s)
if rv == 'M JP10' or rv == 'M JP11' then
if a >= 0x17000 then -- approximate
a = a - 0x20
end
end
return A(b.global + a, s)
end
function AA(a, s) return A(b.actor + a, s) end
local addrs = require("addrs."..rv)
addrs.version = version
addrs.oot = v == "O "
addrs.mm = v == "M "
local common = require("addrs."..v.."common")
return setmetatable(addrs, {__index=common})
end

53
Lua/addrs/init.lua Executable file → Normal file
View File

@ -1,44 +1,9 @@
local basics = require "addrs.basics"
local versions = require "addrs.versions"
local same = {
["O JP10"] = "O US10",
["O JP11"] = "O US11",
["O JP12"] = "O US12",
--["O JPGC MQ"] = "O USGC", -- maybe?
}
hash = gameinfo.getromhash() -- TODO: send as argument
version = versions[hash] or _version_override
if version == nil then
print('ERROR: unknown rom')
return
end
local v = version:sub(1, 2)
oot = v == "O "
mm = v == "M "
local rv = same[version] or version
local b = basics[rv]
function AL(a, s) return A(b.link + a, s) end
function AG(a, s)
if rv == 'M JP10' or rv == 'M JP11' then
if a >= 0x17000 then -- approximate
a = a - 0x20
end
end
return A(b.global + a, s)
end
function AA(a, s) return A(b.actor + a, s) end
addrs = require("addrs."..rv)
local common = require("addrs."..v.."common")
setmetatable(addrs, {__index=common})
return addrs
-- deprecated
local hash = gameinfo.getromhash()
local Game = require "addrs.addrs"
local game = Game(hash)
version = game.version
oot = game.oot
mm = game.mm
addrs = game
return game