1
0
Fork 0
mirror of https://github.com/notwa/mm synced 2024-05-17 21:23:22 -07:00

add custom scene order for warp menu; adjust names

This commit is contained in:
Connor Olding 2016-10-02 14:42:45 -07:00
parent e8af41902c
commit 43315e1ea3
2 changed files with 237 additions and 58 deletions

View File

@ -1,7 +1,145 @@
-- entrance order, not scene order. i know it's confusing.
local bad="[crash]" local bad="[crash]"
return {[0]= return {
{name="Southern Swamp (Clean)", custom_order = {
"Intro Map",
"Lost Woods (Gain Control)",
"(Deku Intro Area before Clock Tower)",
"Clock Tower (Inside)",
"South Clock Town",
"West Clock Town",
"North Clock Town",
"East Clock Town",
"Laundry Pool",
"Astral Observatory (Bomber's Hideout)",
"",
"Fairy's Fountain",
"Termina Field",
"Grottos",
"Atop Clock Tower",
"\n",
"Curiosity Shop",
"Trading Post",
"Bomb Shop",
"Swordsman's School",
"Post Office",
"Lottery Shop",
"",
"(Deku Flower Minigame)",
"",
"Mayor's Residence",
"Milk Bar",
"Honey & Darling's Shop",
"Town Shooting Gallery",
"Treasure Chest Shop",
"Stock Pot Inn",
"\n",
"(Road to Swamp)",
"Swamp Shooting Gallery",
"",
"Southern Swamp (Poisoned)",
"Southern Swamp (Clean)",
"Tourist Information",
"Magic Hags' Potion Shop",
"Woods of Mystery",
"Swamp Spider House",
"",
"Deku Palace",
"Deku King's Chamber",
"Deku Shrine",
"",
"Woodfall",
"Woodfall Temple",
"Woodfall Temple - Odolwa",
"\n",
"Snowhead Passage", -- (Road to Mountain Village) ?
"Mountain Village (Frozen)",
"Mountain Village (Thawed)",
"Mountain Smithy",
"Goron Graveyard",
"",
"(Road to Goron Village) (Frozen)",
"(Road to Goron Village) (Thawed)",
"Goron Racetrack",
"",
"Goron Village (Frozen)",
"Goron Village (Thawed)",
"Goron Shrine",
"Goron Shop",
"",
"(Road to Snowhead Temple)",
"Snowhead",
"Snowhead Temple",
"Snowhead Temple - Goht",
"\n",
"Milk Road",
"Gorman Track",
"",
"Romani Ranch",
"Mama's House / Barn",
"Cucco Shack",
"Doggy Racetrack",
"\n",
"Great Bay Coast",
"Fisherman's Hut",
"Oceanside Spider House",
"Marine Research Lab",
"",
"Pinnacle Rock",
"",
"Pirates' Fortress (Exterior)",
"Pirates' Fortress (Outside)",
"Pirates' Fortress (Inside)",
"",
"Zora Cape",
"Waterfall Rapids",
"Zora Hall",
"(Zora Hall Rooms)",
"",
"(Cutscene before Great Bay Temple)",
"Great Bay Temple",
"Great Bay Temple - Gyorg",
"\n",
"(Road to Ikana)",
"Ikana Graveyard",
"Beneath the Graveyard",
"Beneath the Graveyard (Dampe)",
"",
"Ikana Canyon",
"Sakon's Hideout",
"Music Box House",
"Ghost Hut",
"Beneath the Well",
"Secret Shrine",
"",
"Ikana Castle",
"Ikana Castle Boss Room",
"",
"Stone Tower",
"Inverted Stone Tower",
"",
"Stone Tower Temple",
"Inverted Stone Tower Temple",
"Stone Tower Temple - Twinmold",
"\n",
"Giants' Chamber",
"Moon",
"Woodfall Trial",
"Snowhead Trial",
"Great Bay Trial",
"Ikana Trial",
"Majora",
},
-- entrance order, not scene order. i know it's confusing.
[0]={name="Southern Swamp (Clean)",
[0]="from road", [0]="from road",
"from Tourists'", "from Tourists'",
"from Woodfall", "from Woodfall",
@ -42,8 +180,8 @@ return {[0]=
"Beehive", "Beehive",
"Magic Bean Seller", "Magic Bean Seller",
"Peahat", "Peahat",
"JP grotto (straight) (start?)", "JP Grotto (straight) (start?)",
"JP grotto (vines) (upper)", "JP Grotto (vines) (upper)",
"Lone Peak Shrine (Lens of Truth Cave)", "Lone Peak Shrine (Lens of Truth Cave)",
}, },
@ -109,7 +247,7 @@ return {[0]=
"from Beneath the Well", "from Beneath the Well",
"from Sakon's Hideout", "from Sakon's Hideout",
"after beating Temple", "after beating Temple",
"from castle", "from Castle",
"Gibdo cutscene", "Gibdo cutscene",
"Sharp's cave (cutscene)", "Sharp's cave (cutscene)",
"from Fairy's Fountain", "from Fairy's Fountain",
@ -189,7 +327,7 @@ return {[0]=
"from boss room", "from boss room",
}, },
{name="Deku Flower Minigame", {name="(Deku Flower Minigame)",
[0]="from Clock Town", [0]="from Clock Town",
"after beating minigame", "after beating minigame",
}, },
@ -250,7 +388,7 @@ return {[0]=
"from Woodfall", "from Woodfall",
"from Snowhead", "from Snowhead",
"from Great Bay", "from Great Bay",
"from Ikana canyon", "from Ikana Canyon",
"learning magic", "learning magic",
"learning spin attack", "learning spin attack",
"learning double magic", "learning double magic",
@ -283,11 +421,11 @@ return {[0]=
"from Monkey's cell", "from Monkey's cell",
"from Deku Shrine", "from Deku Shrine",
"from Swamp (above)", "from Swamp (above)",
"from JP grotto 1", "from JP Grotto 1",
"from JP grotto 2", "from JP Grotto 2",
"from JP grotto 3", "from JP Grotto 3",
"from Bean Seller's grotto", "from Bean Seller's Grotto",
"from JP grotto 4", "from JP Grotto 4",
}, },
{name="Mountain Smithy", {name="Mountain Smithy",
@ -405,7 +543,7 @@ return {[0]=
{name=bad}, {name=bad},
{name="Pirates' Fortress (Outside)", {name="Pirates' Fortress (Exterior)",
[0]="from Great Bay", [0]="from Great Bay",
"from outside Pirates'", "from outside Pirates'",
"from underwater passage", "from underwater passage",
@ -477,7 +615,7 @@ return {[0]=
"from Owl Statue", "from Owl Statue",
}, },
{name="Woodfall Temple (Outside)", {name="Woodfall",
[0]="from Swamp", [0]="from Swamp",
"from Temple", "from Temple",
"from Great Fairy's fountain", "from Great Fairy's fountain",
@ -510,8 +648,8 @@ return {[0]=
}, },
{name="Beneath the Well", {name="Beneath the Well",
[0]="from Ikana canyon", [0]="from Ikana Canyon",
"from Ikana castle", "from Ikana Castle",
}, },
{name="(Zora Band Member Rooms)", {name="(Zora Band Member Rooms)",
@ -554,7 +692,7 @@ return {[0]=
}, },
{name="Ghost Hut", {name="Ghost Hut",
[0]="from Ikana canyon", [0]="from Ikana Canyon",
"from minigame", "from minigame",
"after beating minigame", "after beating minigame",
}, },
@ -565,7 +703,7 @@ return {[0]=
{name="(Road to Ikana)", {name="(Road to Ikana)",
[0]="from Termina Field", [0]="from Termina Field",
"from Ikana canyon", "from Ikana Canyon",
"from Ikana Graveyard", "from Ikana Graveyard",
}, },
@ -588,7 +726,7 @@ return {[0]=
}, },
{name="Stone Tower", {name="Stone Tower",
[0]="from Ikana canyon", [0]="from Ikana Canyon",
"from inverting", "from inverting",
"from Temple", "from Temple",
"from Owl Statue", "from Owl Statue",
@ -596,7 +734,7 @@ return {[0]=
{name="Inverted Stone Tower", {name="Inverted Stone Tower",
[0]="from inverting", [0]="from inverting",
"from stone Tower", "from Stone Tower",
}, },
{name="Mountain Village (Thawed)", {name="Mountain Village (Thawed)",
@ -669,7 +807,7 @@ return {[0]=
{name="Woods of Mystery", {name="Woods of Mystery",
[0]="from Swamp", [0]="from Swamp",
-- "from grotto?", -- did i just dream this up? -- "from Grotto?", -- did i just dream this up?
}, },
{name="Lost Woods (Gain Control)", {name="Lost Woods (Gain Control)",

View File

@ -8,27 +8,7 @@ end
local per_page = 16 local per_page = 16
local scenes_pages = {} local function fill_entrances(entrance_items, entrances, si)
for si=0x00,0x7F do
local i = scene_id_to_entrance_id[si]
local page = math.floor(si/per_page) + 1
if si % per_page == 0 then
scenes_pages[page] = {}
local s = ("Warp to Scene #%i/8"):format(page)
ins(scenes_pages[page], Text(s))
end
local entrance_items = {}
local entrances = {}
local scene_name = '[crash]'
if i ~= nil then
entrances = entrance_names[i]
scene_name = entrances.name
end
ins(entrance_items, Text( ("Warp to %s"):format(scene_name) ))
for j=0,32 do for j=0,32 do
local ename = entrances[j] local ename = entrances[j]
if ename == nil then if ename == nil then
@ -46,22 +26,83 @@ for si=0x00,0x7F do
ins(entrance_items, Text("Cutscenes... (TODO)")) ins(entrance_items, Text("Cutscenes... (TODO)"))
ins(entrance_items, Text("")) ins(entrance_items, Text(""))
ins(entrance_items, Back()) ins(entrance_items, Back())
local entrance_menu = Menu{Screen(entrance_items)} end
ins(scenes_pages[page], LinkTo(scene_name, entrance_menu))
if si % per_page == per_page - 1 then local scenes_pages = {}
ins(scenes_pages[page], Text("")) if entrance_names.custom_order then
ins(scenes_pages[page], Back()) local lut = {}
for si=0x00,0x7F do
local i = scene_id_to_entrance_id[si]
if i ~= nil then
local e = entrance_names[i]
if e.name ~= nil then
--print(e.name, ("%04X"):format(si * 0x200))
lut[e.name] = {si=si, i=i}
end
end
end
local page = 1
scenes_pages[page] = {}
for i, v in ipairs(entrance_names.custom_order) do
if v == "\n" then
page = page + 1
scenes_pages[page] = {}
elseif lut[v] ~= nil then
local entrance_items = {}
local entrances = entrance_names[lut[v].i]
local scene_name = entrances.name
ins(entrance_items, Text( ("Warp to %s"):format(scene_name) ))
fill_entrances(entrance_items, entrances, lut[v].si)
local entrance_menu = Menu{Screen(entrance_items)}
ins(scenes_pages[page], LinkTo(scene_name, entrance_menu))
else
ins(scenes_pages[page], Text(v))
end
end
for i=1,page do
local s = ("Warp to Scene #%i/%i"):format(i, page)
ins(scenes_pages[i], 1, Text(s))
ins(scenes_pages[i], Text(""))
ins(scenes_pages[i], Back())
end
else
for si=0x00,0x7F do
local i = scene_id_to_entrance_id[si]
local page = math.floor(si/per_page) + 1
if si % per_page == 0 then
scenes_pages[page] = {}
local s = ("Warp to Scene #%i/8"):format(page)
ins(scenes_pages[page], Text(s))
end
local entrance_items = {}
local entrances = {}
local scene_name = '[crash]'
if i ~= nil then
entrances = entrance_names[i]
scene_name = entrances.name
end
ins(entrance_items, Text( ("Warp to %s"):format(scene_name) ))
fill_entrances(entrance_items, entrances, si)
local entrance_menu = Menu{Screen(entrance_items)}
ins(scenes_pages[page], LinkTo(scene_name, entrance_menu))
if si % per_page == per_page - 1 then
ins(scenes_pages[page], Text(""))
ins(scenes_pages[page], Back())
end
end end
end end
return Menu{ local screens = {}
Screen(scenes_pages[1]), for i, v in ipairs(scenes_pages) do
Screen(scenes_pages[2]), ins(screens, Screen(v))
Screen(scenes_pages[3]), end
Screen(scenes_pages[4]),
Screen(scenes_pages[5]), return Menu(screens)
Screen(scenes_pages[6]),
Screen(scenes_pages[7]),
Screen(scenes_pages[8]),
}