1
0
Fork 0
mirror of https://github.com/notwa/mm synced 2024-11-04 22:39:02 -08:00

preliminary OoT warp support

this is bad and i hate it
This commit is contained in:
Connor Olding 2016-01-17 12:54:37 -08:00
parent d5725d105e
commit 897be1f3f4
6 changed files with 1106 additions and 130 deletions

View file

@ -258,7 +258,7 @@ globalize{
Passive = Passive, Passive = Passive,
reload_scene = reload_scene, reload_scene = reload_scene,
} }
local warp_menu = require "menus.warp" local warp_menu = require(mm and "menus.warp" or "menus.warp oot")
local progress_menu = require "menus.progress" local progress_menu = require "menus.progress"
local playas_menu = require "menus.playas" local playas_menu = require "menus.playas"
@ -276,7 +276,7 @@ local main_menu = Menu{
Oneshot("Escape Cutscene", Setter{[addrs.cutscene_status_2]=3}), Oneshot("Escape Cutscene", Setter{[addrs.cutscene_status_2]=3}),
Text(""), Text(""),
LinkTo("Play as...", playas_menu), LinkTo("Play as...", playas_menu),
Oneshot("Store Epona", Setter{[addrs.stored_epona]=1}), --Oneshot("Store Epona", Setter{[addrs.stored_epona]=1}),
Oneshot("Kill Link", Setter{[addrs.hearts]=0}), Oneshot("Kill Link", Setter{[addrs.hearts]=0}),
Text(""), Text(""),
Back(), Back(),

View file

@ -0,0 +1,806 @@
return {[0]=
{[0]=
{"from Kokiri Forest", 0x0000},
{"from Deku Tree Boss", 0x0252},
},
{[0]=
{"from Death Mountain Trail", 0x0004},
{"from Dodongo's Cavern Boss", 0x00C5},
},
{[0]=
{"from Zora's Fountain", 0x0028},
{"Map 14, from Inside Jabu Jabu's Belly Boss", 0x0407},
},
{[0]=
{"from Sacred Forest Meadow", 0x0169},
{"Outside Boss Door, from Forest Temple Boss, Secret Map #0", 0x024E},
{"Ceiling Crush room", 0x0584},
},
{[0]=
{"from Death Mountain Crater", 0x0165},
{"Outside Boss Door, from Fire Temple Boss, Secret Map #0", 0x0175},
},
{[0]=
{"from Lake Hylia", 0x0010},
{"Main Entrance, from Water Temple Boss", 0x0423},
},
{[0]=
{"from Desert Colossus", 0x0082},
{"Boss Room Entrance, from Spirit Temple Boss", 0x02F5},
{"from Desert Colossus, Silver Gauntlets Chest", 0x03F0},
{"from Desert Colossus, Mirror Shield Chest", 0x03F4},
{"Crashes (Bad Map)", 0x03F8},
},
{[0]=
{"from Graveyard", 0x0037},
{"Outside Boss Door", 0x02B2},
{"from Shadow Temple Boss, Secret Map #0", 0x02B6},
{"?", 0x04EA},
},
{[0]=
{"from Kakariko Village", 0x0098},
{"???", 0x05CC},
},
{[0]=
{"from Zora's Fountain", 0x0088},
{"?", 0x05D8},
},
{[0]=
{"from Inside Ganon's Castle", 0x041B},
{"from Outside Boss Door", 0x0427},
{"Facing Boss Key Door", 0x042B},
},
{[0]=
{"from Gerudo Fortress", 0x0008},
},
{[0]=
{"from Gerudo Fortress", 0x0486},
{"from Gerudo Fortress", 0x048A},
{"from Gerudo Fortress", 0x048E},
{"from Gerudo Fortress", 0x0492},
{"from Gerudo Fortress", 0x0496},
{"from Gerudo Fortress", 0x049A},
{"from Gerudo Fortress", 0x049E},
{"from Gerudo Fortress", 0x04A2},
{"from Gerudo Fortress", 0x04A6},
{"from Gerudo Fortress", 0x04AA},
{"from Gerudo Fortress", 0x04AE},
{"from Gerudo Fortress", 0x04B2},
{"from Gerudo Fortress", 0x0570},
},
{[0]=
{"from Castle", 0x0467},
{"from Ganon's Tower Climb", 0x0534},
{"Clear Forest Trial, from Inside Ganon's Castle", 0x0538},
{"Clear Water Trial, from Inside Ganon's Castle", 0x053C},
{"Clear Shadow Trial, from Inside Ganon's Castle", 0x0540},
{"Clear Fire Trial, from Inside Ganon's Castle", 0x0544},
{"Clear Light Trial, from Inside Ganon's Castle", 0x0548},
{"Clear Spirit Trial, from Inside Ganon's Castle", 0x054C},
},
{[0]=
{"Bottom of Boss Room, from Tower Collapse Exterior, (Higher)", 0x0179},
{"Bottom of Boss Room, from Tower Collapse Exterior, (Lower)", 0x0134},
{"Burning Rocks, from Tower Collapse Exterior, (Higher)", 0x01B5},
{"Burning Rocks, from Tower Collapse Exterior, (Lower)", 0x0256},
{"Stalfos Fight Room, from Tower Collapse Exterior, (Higher)", 0x03DC},
{"Stalfos Fight Room, from Tower Collapse Exterior, (Lower)", 0x03E0},
{"Staircase Down, from Tower Collapse Exterior, (Higher)", 0x03E4},
{"Staircase Down, from Tower Collapse Interior Exit", 0x04B6},
},
{[0]=
{"from Tower Collapse Interior, Stairs", 0x056C},
},
{[0]=
{"from Market", 0x0063},
},
{[0]=
{"from Deku Tree", 0x040F},
},
{[0]=
{"from Dodongo's Cavern", 0x040B},
},
{[0]=
{"from Inside Jabu Jabu's Belly", 0x0301},
},
{[0]=
{"from Forest Temple", 0x000C},
},
{[0]=
{"from Fire Temple", 0x0305},
},
{[0]=
{"from Water Temple", 0x0417},
},
{[0]=
{"from Spirit Temple", 0x008D},
{},
{"Inside Boss Map", 0x05EC},
-- [0]={"from Spirit Temple", 0x0091},
},
{[0]=
{"from Shadow Temple", 0x0413},
},
{[0]=
{"from Ganon's Tower Climb", 0x041F},
},
{[0]=
{"Death Cutscene, from Ganondorf Boss Room", 0x043F},
{"from Tower Collapse Interior, Boss Room Floor (Higher)", 0x04BA},
{"from Tower Collapse Interior, Boss Room Floor (Lower)", 0x032C},
{"from Tower Collapse Interior, Burning Rocks (Higher)", 0x0330},
{"from Tower Collapse Interior, Burning Rocks (Lower)", 0x0334},
{"from Tower Collapse Interior, Stalfos Room (Higher)", 0x01C9},
{"from Tower Collapse Interior, Stalfos Fight (Lower)", 0x051C},
{"from Tower Collapse Interior, Stairs", 0x0524},
},
{[0]=
{"from Market", 0x0033},
{"from Hyrule Field", 0x0276},
{"from Lots 'o Pots", 0x026E},
},
{[0]=
{"from Market", 0x0034},
{"from Hyrule Field", 0x0277},
{"from Lots 'o Pots", 0x026F},
},
{[0]=
{"from Market", 0x0035},
{"from Hyrule Field", 0x0278},
{"from Lots 'o Pots", 0x0270},
},
{[0]=
{"Right Entrance, from Market", 0x00AD},
{"Left Entrance, from Market", 0x029A},
{"from Bombchu Shop", 0x03C0},
{"Right side of alley, from door, from Back Alley Village House", 0x0067},
{"from Puppy Woman's House", 0x038C},
-- [0]={"Right Entrance, from Market", 0x00AF},
-- [1]={"Left Entrance, from Market", 0x029C},
-- [2]={"from Bombchu Shop", 0x03C2},
-- [3]={"Right side of alley, from door, from Back Alley Village House", 0x0069},
-- [4]={"from Puppy Woman's House", 0x038E},
},
{[0]=
{"Right Entrance, from Market", 0x00AE},
{"Left Entrance, from Market", 0x029B},
{"from Bombchu Shop", 0x03C1},
{"Right side of alley, from door, from Back Alley Village House", 0x0068},
{"from Puppy Woman's House", 0x038D},
-- [0]={"Right Entrance, from Market", 0x00B0},
-- [1]={"Left Entrance, from Market", 0x029D},
-- [2]={"from Bombchu Shop", 0x03C3},
-- [3]={"Right side of alley, from door, from Back Alley Village House", 0x006A},
-- [4]={"from Puppy Woman's House", 0x038F},
},
{[0]=
{"from Market Entrance", 0x00B1},
{"from Castle", 0x025A},
{"from Temple of Time", 0x025E},
{"from Back Alley, (Right)", 0x0262},
{"from Back Alley, (Left)", 0x029E},
{"from Market Potion Shop", 0x02A2},
{"from Bazaar", 0x03B8},
{"from Bombchu Bowling Alley", 0x03BC},
{"from Shooting Gallery", 0x01CD},
{"from Happy Mask Shop", 0x01D1},
{"from Treasure Box Shop", 0x01D5},
-- [0]={"from Market Entrance", 0x00B5},
},
{[0]=
{"from Market Entrance", 0x00B2},
{"from Castle", 0x025B},
{"from Temple of Time", 0x025F},
{"from Back Alley, (Right)", 0x0263},
{"from Back Alley, (Left)", 0x029F},
{"from Potion Shop", 0x02A3},
{"from Bazaar", 0x03B9},
{"from Bombchu Bowling Alley", 0x03BD},
{"from Shooting Gallery", 0x01CE},
{"from Happy Mask Shop", 0x01D2},
{"from Treasure Box Shop", 0x01D6},
},
{[0]=
{"from Market Entrance", 0x00B3},
{"from Ganon's Castle", 0x025C},
{"from Temple of Time", 0x0260},
{"from Back Alley, (Right)", 0x0264},
{"from Back Alley, (Left)", 0x02A0},
{"from Potion Shop", 0x02A4},
{"from Bazaar", 0x03BA},
{"from Bombchu Bowling Alley", 0x03BE},
{"from Shooting Gallery", 0x01CF},
{"from Happy Mask Shop", 0x01D3},
{"from Treasure Box Shop", 0x01D7},
},
{[0]=
{"from Market Entrance", 0x0171},
{"from Temple of Time", 0x0472},
},
{[0]=
{"from Market Entrance", 0x0172},
{"from Temple of Time", 0x0473},
},
{[0]=
{"from Market Entrance", 0x0173},
{"from Temple of Time", 0x0474},
},
{[0]=
{"from Kokiri Forest", 0x00C9},
},
{[0]=
{"from Kokiri Forest", 0x009C},
},
{[0]=
{"from Kokiri Forest", 0x0433},
},
{[0]=
{"from Kokiri Forest", 0x0437},
},
{[0]=
{"Boss's House, from Kakariko Village", 0x02FD},
},
{[0]=
{"Back Alley Guy's House, from Back Alley, (Right)", 0x043B},
},
{[0]=
{"from Kakariko Village", 0x00B7},
{"from Market", 0x052C},
},
{[0]=
{"from Kokiri Forest", 0x00C1},
},
{[0]=
{"from Goron City", 0x037C},
},
{[0]=
{"from Zora's Domain", 0x0380},
},
{[0]=
{"from Kakariko Village", 0x0384},
{"Unused", 0x03E8},
{"Back Door, from Kakariko Village", 0x03EC},
-- [0]={"from Kakariko Village", 0x0386},
-- [1]={"Unused", 0x03EA},
-- [2]={"Back Door, from Kakariko Village", 0x03EE},
},
{[0]=
{"from Market", 0x0388},
},
{[0]=
{"??? (Back Alley)", 0x0390},
{"from Back Alley, (Left)", 0x0528},
},
{[0]=
{"from Market", 0x0530},
},
{[0]=
{"Bed Entrance, from Savewarp", 0x00BB},
{"from Kokiri Forest", 0x0272},
-- [0]={"Bed Entrance, from Savewarp", 0x00C0},
},
{[0]=
{"from Back Alley, (Left)", 0x0398},
},
{[0]=
{"from Lon Lon Ranch", 0x02F9},
},
{[0]=
{"from Kakariko Village", 0x039C},
{"Roof entrance, from Kakariko Village", 0x05C8},
},
{[0]=
{"from Lake Hylia", 0x0043},
{"Possibly Eyedrops Timeout", 0x01C5},
},
{[0]=
{"from Gerudo Valley", 0x03A0},
},
{[0]=
{"from Graveyard", 0x030D},
},
{[0]=
{"from Death Mountain Trail", 0x0315},
{"from Death Mountain Crater", 0x04BE},
{"from Castle", 0x04C2},
{"Leaving puts you at 044B", 0x04F2},
},
{[0]=
{"from Grotto spot", 0x036D},
},
{[0]=
{"from Zora's Fountain", 0x0371},
{"from Castle", 0x0578},
{"from Desert Colossus", 0x0588},
},
{[0]=
{"Default", 0x003F},
{"Big Skulltula", 0x0598},
{"Heart Piece Scrub", 0x059C},
{"Two Redeads", 0x05A0},
{"Three Deku Salescrubs", 0x05A4},
{"Webbed", 0x05A8},
{"Octoroc", 0x05AC},
{"Two Deku Salescrubs, Closest sells Deku Nut Upgrade", 0x05B0},
{"Two Wolfos", 0x05B4},
{"Bombable Wall", 0x05B8},
{"Two Deku Salescrubs, Closest sells Green Pot", 0x05BC},
{"Tektite", 0x05C0},
{"Forest Stage", 0x05C4},
{"Cow", 0x05FC},
},
{[0]=
{"from Graveyard", 0x031C},
},
{[0]=
{"Hylian Shield Chest, from Graveyard", 0x004B},
},
{[0]=
{"from Graveyard", 0x002D},
{"Sun Song Cutscene", 0x0574},
},
{[0]=
{"from Kakariko Village", 0x003B},
{"from Market Entrance", 0x016D},
-- [0]={"from Kakariko Village", 0x02EA},
-- [0]={"from Kakariko Village", 0x02F0},
},
{[0]=
{"from Outside Temple of Time", 0x0053},
{},
{"Pull or Place Master Sword", 0x02CA},
{"Standing facing away from SoT spot", 0x0320},
{"After pulling the MS for first time", 0x0324},
{"from Temple of Time, Light Arrow Cutscene", 0x058C},
{"Front of Pedestal", 0x0590},
{"Prelude Entrance", 0x05F4},
-- [0]={"from Outside Temple of Time", 0x005E},
-- [0]={"from Outside Temple of Time", 0x005F},
},
{[0]=
{"?", 0x006F},
{"??? (Forest Medallion?)", 0x02CE},
-- [0]={"?", 0x0071},
},
{[0]=
{"from Castle, Crawlspace", 0x007A},
{"from Zelda's Courtyard", 0x0296},
-- [0]={"from Castle, Crawlspace", 0x007C},
-- [1]={"from Zelda's Courtyard", 0x0298},
},
{[0]=
{"from Castle, Crawlspace", 0x007B},
{"from Zelda's Courtyard", 0x0297},
-- [0]={"from Castle, Crawlspace", 0x007D},
-- [1]={"from Zelda's Courtyard", 0x0299},
},
{[0]=
{"?", 0x00A4},
-- [0]={"?", 0x00A5},
-- [0]={"?", 0x00A6},
-- [0]={"?", 0x00A7},
-- [0]={"?", 0x00A8},
-- [0]={"?", 0x02EF},
},
{[0]=
{"Dampe's Grave, from Graveyard", 0x044F},
{"Windmill, from Kakariko Village", 0x0453},
{"Windmill After Song of Storms?", 0x0503},
},
{[0]=
{"from Lake Hylia", 0x045F},
},
{[0]=
{"from Castle Courtyard", 0x0400},
{"from Triforce Legend Cutscene", 0x05F0},
},
{[0]=
{"from Market", 0x0507},
},
{[0]=
{"Talon's House, from Lon Lon Ranch", 0x004F},
{"Back Tower, from Lon Lon Ranch", 0x05D0},
{"Talon's House, from Lose/Win Cucco Game", 0x05E4},
},
{[0]=
{"from Market Entrance", 0x007E},
},
{[0]=
{"from Kakariko Village", 0x0072},
},
{[0]=
{"from Tower Collapse Interior Exit", 0x0517},
},
{[0]=
{"from Kakariko Village", 0x0550},
},
{[0]=
{"from After Zelda Escape, 2nd+ Impa Escort", 0x00CD},
{"from Kakariko Village", 0x017D},
{"from Zora River, Land", 0x0181},
{"from Lost Woods", 0x0185},
{"from Lake Hylia", 0x0189},
{"from Gerudo Valley", 0x018D},
{"from Lon Lon Ranch", 0x01F9},
{"from Market Entrance", 0x01FD},
{"Positioned near Lake Hylia", 0x027A},
{"Owl Drop Spot, from Lake Hylia", 0x027E},
{"Unused Location", 0x0282},
{"from Lon Lon Ranch, Southern Fence Jump", 0x028A},
{"from Lon Lon Ranch, Western Fence Jump", 0x028E},
{"from Lon Lon Ranch, Eastern Fence Jump", 0x0292},
{"from Zora River, Water", 0x0311},
{"from Lon Lon Ranch, Front Gate Jump", 0x0476},
{"Get Ocarina of Time", 0x050F},
{"After Impa Escort Cutscene", 0x0594},
-- [0]={"from After Zelda Escape, 2nd+ Impa Escort", 0x00D1},
-- [0]={"from After Zelda Escape, 2nd+ Impa Escort", 0x00D2},
-- [0]={"from After Zelda Escape, 2nd+ Impa Escort", 0x00D4},
-- [0]={"from After Zelda Escape, 2nd+ Impa Escort", 0x00D5},
-- [0]={"from After Zelda Escape, 2nd+ Impa Escort", 0x00D6},
-- [0]={"from After Zelda Escape, 2nd+ Impa Escort", 0x00D7},
-- [0]={"from After Zelda Escape, 2nd+ Impa Escort", 0x00D8},
-- [0]={"from After Zelda Escape, 2nd+ Impa Escort", 0x00D9},
-- [0]={"from After Zelda Escape, 2nd+ Impa Escort", 0x00DA},
},
{[0]=
{"from Hyrule Field", 0x00DB},
{"from Death Mountain Trail", 0x0191},
{"from Graveyard", 0x0195},
{"from Bazaar", 0x0201},
{"from Bottom of the Well", 0x02A6},
{"from Cow Heartpiece House (Door)", 0x0345},
{"from Kakariko Village House, Boss's House", 0x0349},
{"from Granny's Potion Shop", 0x034D},
{"from ?, Windmill", 0x0351},
{"from Kakariko Potion Shop", 0x044B},
{"from Shooting Gallery", 0x0463},
{"from House of Skulltula", 0x04EE},
{"from Kakariko Potion Shop, Back Entrance", 0x04FF},
{"from Nocturne Cutscene", 0x0513},
{"Owl Drop Spot, from Death Mountain Crater, Owl Teleport", 0x0554},
{"from Impa's House, Cow Exit", 0x05DC},
-- [0]={"from Hyrule Field", 0x00DF},
-- [0]={"from Hyrule Field", 0x00E0},
-- [0]={"from Hyrule Field", 0x00E1},
-- [0]={"from Hyrule Field", 0x00E2},
-- [0]={"from Hyrule Field", 0x00E3},
},
{[0]=
{"from Kakariko Village", 0x00E4},
{"from Shadow Temple", 0x0205},
{"from Gravekeeper's Hut", 0x0355},
{"from ?, Dampe's Grave", 0x0359},
{"from Grave with Shield", 0x035D},
{"from Grave with Redead", 0x0361},
{"from Royal Family's Tomb", 0x050B},
{"Nocturne Warp", 0x0568},
{"from Shadow Temple Boss, Blue Warp", 0x0580},
-- [0]={"from Kakariko Village", 0x00E8},
-- [0]={"from Kakariko Village", 0x00E9},
},
{[0]=
{"Land Entrance, from Hyrule Field", 0x00EA},
{"Dropped from top of Waterfall", 0x0199},
{"from Zora's Domain", 0x019D},
{"Water Entrance, from Hyrule Field", 0x01D9},
{"from Lost Woods", 0x01DD},
},
{[0]=
{"from After Forest Medallion Cutscene", 0x00EE},
{"from Deku Tree", 0x0209},
{"from Lost Woods, Hyrule Bridge", 0x020D},
{"from Link's House", 0x0211},
{"from Kokiri Shop", 0x0266},
{"from Know-it-all Brothers", 0x026A},
{"from Lost Woods", 0x0286},
{"Spawn on Link's House", 0x0338},
{"from House of Twins", 0x033C},
{"from Mido's House", 0x0443},
{"from Saria's House", 0x0447},
{"After Deku Tree Death Cutscene, from Kokiri Forest", 0x0457},
{"Deku Sprout Cutscene", 0x05E8},
-- [0]={"from After Forest Medallion Cutscene", 0x00F2},
-- [0]={"from After Forest Medallion Cutscene", 0x00F3},
-- [0]={"from After Forest Medallion Cutscene", 0x00F4},
-- [0]={"from After Forest Medallion Cutscene", 0x00F5},
-- [0]={"from After Forest Medallion Cutscene", 0x00F6},
-- [0]={"from After Forest Medallion Cutscene", 0x00F8},
},
{[0]=
{"from Lost Woods", 0x00FC},
{"from Forest Temple", 0x0215},
{"Minuet Warp", 0x0600},
{"from Forest Temple Boss, Blue Warp", 0x0608},
-- [0]={"from Lost Woods", 0x0100},
-- [0]={"from Lost Woods", 0x0101},
-- [0]={"from Lost Woods", 0x02EE},
-- [1]={"from Forest Temple", 0x0216},
-- [1]={"from Forest Temple", 0x0217},
-- [1]={"from Forest Temple", 0x0218},
-- [2]={"Minuet Warp", 0x0601},
-- [2]={"Minuet Warp", 0x0602},
-- [2]={"Minuet Warp", 0x0603},
},
{[0]=
{"from Hyrule Field", 0x0102},
{"from Gerudo Valley", 0x0219},
{"from Water Temple", 0x021D},
{"Hyrule Field Entrance", 0x03C8},
{"from Lakeside Laboratory", 0x03CC},
{"Serenade Entrance", 0x04E6},
{"from Fishing Pond", 0x0309},
{"from Zora's Domain", 0x0560},
{"Serenade Warp", 0x0604},
{"from Water Temple Boss, Blue Warp", 0x060C},
-- [0]={"from Hyrule Field", 0x0106},
-- [0]={"from Hyrule Field", 0x0107},
-- [2]={"from Water Temple", 0x021E},
-- [2]={"from Water Temple", 0x021F},
-- [2]={"from Water Temple", 0x0220},
},
{[0]=
{"from Zora River", 0x0108},
{"from Zora's Fountain", 0x01A1},
{"from Zora Shop", 0x03C4},
{"Eyeball Frog Timeout", 0x0153},
{"from Lake Hylia", 0x0328},
-- [0]={"from Zora River", 0x010C},
},
{[0]=
{"Sapphire Cutscene Entrance", 0x010E},
{"from Inside Jabu Jabu's Belly", 0x0221},
{"from Zora's Domain", 0x0225},
{"from Ice Cavern", 0x03D4},
{"SE corner facing fallen tree", 0x03D8},
{"from Great Fairy's Fountain (Spells)", 0x0394},
-- [0]={"Sapphire Cutscene Entrance", 0x0112},
-- [0]={"Sapphire Cutscene Entrance", 0x0113},
-- [0]={"Sapphire Cutscene Entrance", 0x0114},
-- [0]={"Sapphire Cutscene Entrance", 0x0115},
-- [0]={"Sapphire Cutscene Entrance", 0x0116},
},
{[0]=
{"from Hyrule Field", 0x0117},
{"Thrown out of Gerudo Fortress, from Caught without usable hookshot", 0x01A5},
{"Triggers Fortress Loading Zone", 0x0229},
{"from Gerudo Fortress", 0x022D},
{"from Carpenter's Tent", 0x03D0},
-- [0]={"from Hyrule Field", 0x011B},
-- [0]={"from Hyrule Field", 0x011C},
-- [0]={"from Hyrule Field", 0x011D},
},
{[0]=
{"from Kokiri Forest", 0x011E},
{"from Sacred Forest Meadow", 0x01A9},
{"Mushroom Timeout (Adult)", 0x01AD},
{"start from the tree opposite of the main entrance", 0x01B1},
{"??? placed west of Cojiro Guy map", 0x04C6},
{"Exit point clockwise from SFM exit", 0x04D2},
{"from Goron City", 0x04D6},
{"from Zora River", 0x04DA},
{"from Hyrule Field", 0x04DE},
{"from Kokiri Forest, Hyrule Exit", 0x05E0},
},
{[0]=
{"from Haunted Wasteland", 0x0123},
{"from Spirit Temple", 0x01E1},
{"from Spirit Temple, Gauntlets Entrance", 0x01E5},
{"from Spirit Temple, Mirror Shield Entrance", 0x01E9},
{"After Requiem Cutscene", 0x01ED},
{"Requiem Entrance", 0x01F1},
{"Nabooru Capture Cutscene Entrance", 0x01F5},
{"from Great Fairy's Fountain (Spells)", 0x057C},
{"from Spirit Temple Boss, Blue Warp", 0x0610},
-- [0]={"from Haunted Wasteland", 0x0127},
-- [0]={"from Haunted Wasteland", 0x0128},
},
{[0]=
{"from Gerudo Valley", 0x0129},
{"from Thieves' Hideout", 0x0231},
{"from Thieves' Hideout", 0x0235},
{"from Thieves' Hideout", 0x0239},
{"from Thieves' Hideout", 0x02AA},
{"from Thieves' Hideout", 0x02BA},
{"from Thieves' Hideout", 0x02BE},
{"from Thieves' Hideout", 0x02C2},
{"from Thieves' Hideout", 0x02C6},
{"from Thieves' Hideout", 0x02D2},
{"from Thieves' Hideout", 0x02D6},
{"from Thieves' Hideout", 0x02DA},
{"from Thieves' Hideout", 0x02DE},
{"from Thieves' Hideout", 0x03A4},
{"from Thieves' Hideout", 0x03A8},
{"from Haunted Wasteland", 0x03AC},
{"After Horseback Archery, from Gerudo Fortress", 0x03B0},
{"Captured First Time with Hookshot", 0x03B4},
{"Captured Second Time", 0x05F8},
{"from Gerudo Valley", 0x012D},
{"from Gerudo Valley", 0x012E},
},
{[0]=
{"from Gerudo Fortress", 0x0130},
{"from Desert Colossus", 0x0365},
{"Crashes (Bad Map)", 0x0369},
},
{[0]=
{"from Market Entrance", 0x0138},
{"from Castle Courtyard", 0x023D},
{"from Great Fairy's Fountain (Spells)", 0x0340},
{"from Castle Courtyard, Caught by guard", 0x04FA},
{"Guard Capture (Outside)", 0x047E},
-- [1]={"from Castle Courtyard", 0x0241},
-- [2]={"from Great Fairy's Fountain (Spells)", 0x0344},
-- [3]={"from Castle Courtyard, Caught by guard", 0x04FE},
},
{[0]=
{"from Kakariko Village", 0x013D},
{"from Goron City", 0x01B9},
{"from Death Mountain Crater", 0x01BD},
{"from Dodongo's Cavern", 0x0242},
{"from Great Fairy's Fountain (Upgrades)", 0x045B},
{"Goron Ruby Cutscene", 0x047A},
-- [0]={"from Kakariko Village", 0x0141},
-- [0]={"from Kakariko Village", 0x0142},
-- [0]={"from Kakariko Village", 0x0144},
},
{[0]=
{"from Death Mountain Trail", 0x0147},
{"from Goron City", 0x0246},
{"from Fire Temple", 0x024A},
{"from Great Fairy's Fountain (Upgrades)", 0x0482},
{"Bolero Entrance", 0x04F6},
{"from Fire Temple Boss, Blue Warp", 0x0564},
},
{[0]=
{"from Death Mountain Trail", 0x014D},
{"from Death Mountain Crater", 0x01C1},
{"from Goron Shop", 0x03FC},
{"from Lost Woods", 0x04E2},
-- [0]={"from Death Mountain Trail", 0x0152},
},
{[0]=
{"from Hyrule Field", 0x0157},
{"Epona's Song Cutscene", 0x02AE},
{"Near South Gate", 0x02E2},
{"Near West Gate", 0x02E6},
{"from Ranch House, Talon's House", 0x0378},
{"from Stables", 0x042F},
{"Pay Ingo to Ride", 0x04CA},
{"Beat Ingo Both Times", 0x04CE},
{"You're too slow!", 0x0558},
{"??? (Near Ingo/Malon)", 0x055C},
{"from Ranch Buildings, Back Tower", 0x05D4},
-- [0]={"from Hyrule Field", 0x015B},
-- [0]={"from Hyrule Field", 0x015C},
-- [0]={"from Hyrule Field", 0x015D},
},
{[0]=
{"from Market Entrance", 0x013A},
{"from Inside Ganon's Castle", 0x023F},
{"from Great Fairy's Fountain (Upgrades)", 0x0342},
{"Crashes (Bad Map)", 0x0480},
{"from Castle Courtyard, Caught by guard", 0x04FC},
-- [0]={"from Market Entrance", 0x013C},
},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
}

View file

@ -0,0 +1,113 @@
-- scene order -- there is no entrance order in OoT...?
return {
[0]="Inside the Deku Tree",
"Dodongo's Cavern",
"Inside Jabu-Jabu's Belly",
"Forest Temple",
"Fire Temple",
"Water Temple",
"Spirit Temple",
"Shadow Temple",
"Bottom of the Well",
"Ice Cavern",
"Ganon's Tower",
"Gerudo Training Ground",
"Thieves' Hideout",
"Inside Ganon's Castle",
"Ganon's Tower (Collapsing)",
"Inside Ganon's Castle (Collapsing)",
"Treasure Chest Shop",
"Gohma's Lair",
"King Dodongo's Lair",
"Barinade's Lair",
"Phantom Ganon's Lair",
"Volvagia's Lair",
"Morpha's Lair",
"Twinrova's Lair & Iron Knuckle Mini-Boss Room",
"Bongo Bongo's Lair",
"Ganondorf's Lair",
"Ganondorf's Death Scene (Tower Escape Exterior)",
"Market Entrance (Day)",
"Market Entrance (Night)",
"Market Entrance (Ruins)",
"Back Alley (Day)",
"Back Alley (Night)",
"Market (Day)",
"Market (Night)",
"Market (Ruins)",
"Temple of Time Exterior (Day)",
"Temple of Time Exterior (Night)",
"Temple of Time Exterior (Ruins)",
"Know-It-All Brothers' House",
"Twins' House",
"Mido's House",
"Saria's House",
"Carpenter Boss's House",
"Back Alley House (Man in Green)",
"Bazaar",
"Kokiri Shop",
"Goron Shop",
"Zora Shop",
"Kakariko Potion Shop",
"Market Potion Shop",
"Bombchu Shop",
"Happy Mask Shop",
"Link's House",
"Back Alley House (Dog Lady)",
"Stable",
"Impa's House",
"Lakeside Laboratory",
"Carpenters' Tent",
"Gravekeeper's Hut",
"Great Fairy's Fountain (Upgrades)",
"Fairy's Fountain (Healing Fairies)",
"Great Fairy's Fountain (Spells)",
"Grottos",
"Grave (Redead)",
"Grave (Fairy's Fountain)",
"Royal Family's Tomb",
"Shooting Gallery",
"Temple of Time",
"Chamber of the Sages",
"Castle Hedge Maze (Day)",
"Castle Hedge Maze (Night)",
"Cutscene Map",
"Dampé's Grave & Windmill",
"Fishing Pond",
"Castle Courtyard",
"Bombchu Bowling Alley",
"Lon Lon Ranch House & Tower",
"Guard House",
"Granny's Potion Shop",
"Ganon's Tower Collapse & Battle Arena",
"House of Skulltula",
"Hyrule Field",
"Kakariko Village",
"Graveyard",
"Zora's River",
"Kokiri Forest",
"Sacred Forest Meadow",
"Lake Hylia",
"Zora's Domain",
"Zora's Fountain",
"Gerudo Valley",
"Lost Woods",
"Desert Colossus",
"Gerudo's Fortress",
"Haunted Wasteland",
"Hyrule Castle",
"Death Mountain Trail",
"Death Mountain Crater",
"Goron City",
"Lon Lon Ranch",
"Ganon's Castle Exterior",
"Room 118 - Jungle Gym",
"Room 116 - Ganondorf Test Room",
"Room 124 - Depth Test",
"Room 120 - Stalfos Mini-Boss Room",
"Room 121 - Stalfos Boss Room",
"Room 122 - Sutaru",
"Room 125 - Castle Hedge Maze (Early)",
"Room 117 - Sasa Test",
"Room 119 - Treasure Chest Room",
}

View file

@ -0,0 +1,113 @@
-- maybe we could figure this out in code, but hardcoding will do for now.
return {
[0]=0x12,
0x0B,
0x0A,
0x10,
0x11,
0x0C,
0x00,
0x0D,
nil,
nil,
0x07,
nil,
nil,
nil,
0x08,
nil,
0x13,
0x14,
0x15,
0x16,
0x17,
0x18,
0x19,
0x1A,
0x1B,
0x1C,
0x1D,
0x1E,
0x1F,
0x20,
0x21,
0x22,
0x23,
0x24,
0x25,
0x26,
0x27,
0x28,
0x29,
0x2A,
0x2B,
0x2C,
0x2D,
0x2E,
0x2F,
0x30,
nil,
0x32,
0x33,
0x34,
0x35,
nil,
0x37,
0x38,
0x39,
nil,
0x3B,
0x3C,
0x3D,
0x3E,
0x3F,
0x40,
0x41,
0x42,
0x43,
0x44,
0x45,
0x46,
0x47,
0x48,
0x49,
0x4A,
0x4B,
0x4C,
0x4D,
0x4E,
0x4F,
0x50,
0x51,
0x52,
0x53,
0x54,
0x55,
0x56,
0x57,
0x58,
0x59,
0x5A,
0x5B,
0x5C,
0x5D,
0x5E,
0x5F,
0x60,
0x61,
0x62,
0x63,
0x64,
0x65,
0x66,
0x67,
0x68,
0x69,
0x6A,
0x6B,
0x6C,
0x6D,
0x6E,
0x6F,
0x70,
}

65
Lua/menus/warp oot.lua Normal file
View file

@ -0,0 +1,65 @@
local ins = table.insert
local scene_names = require "data.scene names oot"
local entrance_names = require "data.entrance names oot"
local maxscene = 109
local per_page = 16
local pagecount = math.ceil((maxscene + 1)/per_page)
local scenes_pages = {}
for si=0, maxscene do
local i = si
local page = math.floor(si/per_page) + 1
if si % per_page == 0 then
scenes_pages[page] = {}
local s = ("Warp to Scene #%i/%i"):format(page, pagecount)
ins(scenes_pages[page], Text(s))
end
local entrance_items = {}
local entrances = entrance_names[i]
local scene_name = scene_names[i]
ins(entrance_items, Text( ("Warp to %s"):format(scene_name) ))
for j=0,24 do
local e = entrances[j]
local ename = "n/a"
local edest = 0
if e == nil then
if j ~= 0 then break end
ename = "n/a"
edest = 0
else
ename = e[1]
edest = e[2]
if ename == nil then
if j ~= 0 then break end
ename = "n/a"
edest = 0
end
end
local callback = function()
addrs.warp_destination(edest)
addrs.warp_begin(0x14)
end
ins(entrance_items, Oneshot(ename, callback))
end
ins(entrance_items, Text(""))
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
local menu = Menu{}
for i, v in ipairs(scenes_pages) do
ins(v, Text(""))
ins(v, Back())
ins(menu.screens, Screen(v))
end
return menu

View file

@ -1,141 +1,20 @@
if not mm then local ins = table.insert
return Menu{
Screen{
Text("Sorry, no warping for you!"),
Back(),
},
}
end
local scene_names = require "data.scene names" local scene_names = require "data.scene names"
local entrance_names = require "data.entrance names" local entrance_names = require "data.entrance names"
local ins = table.insert local scene_id_to_entrance_id = require "data.scene to entrance"
-- we should really figure this out in code,
-- but hardcoding will do for now.
local scene_id_to_entrance_id = {
[0]=0x12,
0x0B,
0x0A,
0x10,
0x11,
0x0C,
0x00,
0x0D,
nil,
nil,
0x07,
nil,
nil,
nil,
0x08,
nil,
0x13,
0x14,
0x15,
0x16,
0x17,
0x18,
0x19,
0x1A,
0x1B,
0x1C,
0x1D,
0x1E,
0x1F,
0x20,
0x21,
0x22,
0x23,
0x24,
0x25,
0x26,
0x27,
0x28,
0x29,
0x2A,
0x2B,
0x2C,
0x2D,
0x2E,
0x2F,
0x30,
nil,
0x32,
0x33,
0x34,
0x35,
nil,
0x37,
0x38,
0x39,
nil,
0x3B,
0x3C,
0x3D,
0x3E,
0x3F,
0x40,
0x41,
0x42,
0x43,
0x44,
0x45,
0x46,
0x47,
0x48,
0x49,
0x4A,
0x4B,
0x4C,
0x4D,
0x4E,
0x4F,
0x50,
0x51,
0x52,
0x53,
0x54,
0x55,
0x56,
0x57,
0x58,
0x59,
0x5A,
0x5B,
0x5C,
0x5D,
0x5E,
0x5F,
0x60,
0x61,
0x62,
0x63,
0x64,
0x65,
0x66,
0x67,
0x68,
0x69,
0x6A,
0x6B,
0x6C,
0x6D,
0x6E,
0x6F,
0x70,
}
local function make_exit_value(s, e, c) local function make_exit_value(s, e, c)
return bit.lshift(s, 9) + bit.lshift(e, 4) + c return bit.lshift(s, 9) + bit.lshift(e, 4) + c
end end
local per_page = 16
local scenes_pages = {} local scenes_pages = {}
for si=0x00,0x7F do for si=0x00,0x7F do
local i = scene_id_to_entrance_id[si] local i = scene_id_to_entrance_id[si]
local page = math.floor(si/16) + 1 local page = math.floor(si/per_page) + 1
if si % 16 == 0 then if si % per_page == 0 then
scenes_pages[page] = {} scenes_pages[page] = {}
local s = ("Warp to Scene #%i/8"):format(page) local s = ("Warp to Scene #%i/8"):format(page)
ins(scenes_pages[page], Text(s)) ins(scenes_pages[page], Text(s))
@ -171,7 +50,7 @@ for si=0x00,0x7F do
local entrance_menu = Menu{Screen(entrance_items)} local entrance_menu = Menu{Screen(entrance_items)}
ins(scenes_pages[page], LinkTo(scene_name, entrance_menu)) ins(scenes_pages[page], LinkTo(scene_name, entrance_menu))
if si % 16 == 15 then if si % per_page == per_page - 1 then
ins(scenes_pages[page], Text("")) ins(scenes_pages[page], Text(""))
ins(scenes_pages[page], Back()) ins(scenes_pages[page], Back())
end end