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:
parent
e8af41902c
commit
43315e1ea3
|
@ -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)",
|
||||||
|
|
|
@ -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]),
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user