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:
parent
e8af41902c
commit
43315e1ea3
2 changed files with 237 additions and 58 deletions
|
@ -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)",
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue