1
0
Fork 0
mirror of https://github.com/notwa/mm synced 2024-11-05 02:29:03 -08: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]"
return {[0]=
{name="Southern Swamp (Clean)",
return {
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",
"from Tourists'",
"from Woodfall",
@ -42,8 +180,8 @@ return {[0]=
"Beehive",
"Magic Bean Seller",
"Peahat",
"JP grotto (straight) (start?)",
"JP grotto (vines) (upper)",
"JP Grotto (straight) (start?)",
"JP Grotto (vines) (upper)",
"Lone Peak Shrine (Lens of Truth Cave)",
},
@ -109,7 +247,7 @@ return {[0]=
"from Beneath the Well",
"from Sakon's Hideout",
"after beating Temple",
"from castle",
"from Castle",
"Gibdo cutscene",
"Sharp's cave (cutscene)",
"from Fairy's Fountain",
@ -189,7 +327,7 @@ return {[0]=
"from boss room",
},
{name="Deku Flower Minigame",
{name="(Deku Flower Minigame)",
[0]="from Clock Town",
"after beating minigame",
},
@ -250,7 +388,7 @@ return {[0]=
"from Woodfall",
"from Snowhead",
"from Great Bay",
"from Ikana canyon",
"from Ikana Canyon",
"learning magic",
"learning spin attack",
"learning double magic",
@ -283,11 +421,11 @@ return {[0]=
"from Monkey's cell",
"from Deku Shrine",
"from Swamp (above)",
"from JP grotto 1",
"from JP grotto 2",
"from JP grotto 3",
"from Bean Seller's grotto",
"from JP grotto 4",
"from JP Grotto 1",
"from JP Grotto 2",
"from JP Grotto 3",
"from Bean Seller's Grotto",
"from JP Grotto 4",
},
{name="Mountain Smithy",
@ -405,7 +543,7 @@ return {[0]=
{name=bad},
{name="Pirates' Fortress (Outside)",
{name="Pirates' Fortress (Exterior)",
[0]="from Great Bay",
"from outside Pirates'",
"from underwater passage",
@ -477,7 +615,7 @@ return {[0]=
"from Owl Statue",
},
{name="Woodfall Temple (Outside)",
{name="Woodfall",
[0]="from Swamp",
"from Temple",
"from Great Fairy's fountain",
@ -510,8 +648,8 @@ return {[0]=
},
{name="Beneath the Well",
[0]="from Ikana canyon",
"from Ikana castle",
[0]="from Ikana Canyon",
"from Ikana Castle",
},
{name="(Zora Band Member Rooms)",
@ -554,7 +692,7 @@ return {[0]=
},
{name="Ghost Hut",
[0]="from Ikana canyon",
[0]="from Ikana Canyon",
"from minigame",
"after beating minigame",
},
@ -565,7 +703,7 @@ return {[0]=
{name="(Road to Ikana)",
[0]="from Termina Field",
"from Ikana canyon",
"from Ikana Canyon",
"from Ikana Graveyard",
},
@ -588,7 +726,7 @@ return {[0]=
},
{name="Stone Tower",
[0]="from Ikana canyon",
[0]="from Ikana Canyon",
"from inverting",
"from Temple",
"from Owl Statue",
@ -596,7 +734,7 @@ return {[0]=
{name="Inverted Stone Tower",
[0]="from inverting",
"from stone Tower",
"from Stone Tower",
},
{name="Mountain Village (Thawed)",
@ -669,7 +807,7 @@ return {[0]=
{name="Woods of Mystery",
[0]="from Swamp",
-- "from grotto?", -- did i just dream this up?
-- "from Grotto?", -- did i just dream this up?
},
{name="Lost Woods (Gain Control)",

View file

@ -8,27 +8,7 @@ end
local per_page = 16
local scenes_pages = {}
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) ))
local function fill_entrances(entrance_items, entrances, si)
for j=0,32 do
local ename = entrances[j]
if ename == nil then
@ -46,22 +26,83 @@ for si=0x00,0x7F do
ins(entrance_items, Text("Cutscenes... (TODO)"))
ins(entrance_items, Text(""))
ins(entrance_items, Back())
local entrance_menu = Menu{Screen(entrance_items)}
ins(scenes_pages[page], LinkTo(scene_name, entrance_menu))
end
if si % per_page == per_page - 1 then
ins(scenes_pages[page], Text(""))
ins(scenes_pages[page], Back())
local scenes_pages = {}
if entrance_names.custom_order then
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
return Menu{
Screen(scenes_pages[1]),
Screen(scenes_pages[2]),
Screen(scenes_pages[3]),
Screen(scenes_pages[4]),
Screen(scenes_pages[5]),
Screen(scenes_pages[6]),
Screen(scenes_pages[7]),
Screen(scenes_pages[8]),
}
local screens = {}
for i, v in ipairs(scenes_pages) do
ins(screens, Screen(v))
end
return Menu(screens)