123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286 |
- state("ScarletNexus-Win64-Shipping", "V1.0.2")
- {
- byte Loader : 0x4A8C954; // Originally a byte
- int Chapter : 0x04FC56C0, 0x30, 0x2C0, 0x58, 0x410, 0x60, 0x398, 0x2BC;
- int Level : 0x04FC56C0, 0x30, 0x2C0, 0x58, 0x410, 0x60, 0x398, 0x2A0;
- int Section : 0x04FC56C0, 0x30, 0x2C0, 0x58, 0x410, 0x60, 0x398, 0x29C;
- byte Character : 0x04FC56C0, 0x30, 0x260, 0x9D8; // Used to see if we're playing Yuito or Kasane
- }
- state("ScarletNexus-Win64-Shipping", "V1.0.3")
- {
- byte Loader : 0x4A92424; // Originally a byte
- int Chapter : 0x04FCB280, 0x30, 0x2C0, 0x58, 0x410, 0x60, 0x398, 0x2BC;
- int Level : 0x04FCB280, 0x30, 0x2C0, 0x58, 0x410, 0x60, 0x398, 0x2A0;
- int Section : 0x04FCB280, 0x30, 0x2C0, 0x58, 0x410, 0x60, 0x398, 0x29C;
- byte Character : 0x04FCB280, 0x30, 0x260, 0x210;
- }
- state("ScarletNexus-Win64-Shipping", "V1.0.3.1") // it's not 1.0.4 as that's a future update, but they didn't mention the numbers for this one so
- {
- byte Loader : 0x4B3F154; // Originally a byte
- int Chapter : 0x05079EB0, 0x30, 0x2C0, 0x58, 0x410, 0x60, 0x398, 0x2BC;
- int Level : 0x05079EB0, 0x30, 0x2C0, 0x58, 0x410, 0x60, 0x398, 0x2A0;
- int Section : 0x05079EB0, 0x30, 0x2C0, 0x58, 0x410, 0x60, 0x398, 0x29C;
- byte Character : 0x05079EB0, 0x30, 0x260, 0x9e8;
- }
- state("ScarletNexus-Win64-Shipping", "V1.0.3.2") // it's not 1.0.4 as that's a future update, but they didn't mention the numbers for this one so
- {
- byte Loader : 0x4B3F154; // Originally a byte
- int Chapter : 0x05079EB0, 0x30, 0x2C0, 0x58, 0x410, 0x60, 0x398, 0x2BC;
- int Level : 0x05079EB0, 0x30, 0x2C0, 0x58, 0x410, 0x60, 0x398, 0x2A0;
- int Section : 0x05079EB0, 0x30, 0x2C0, 0x58, 0x410, 0x60, 0x398, 0x29C;
- byte Character : 0x05079EB0, 0x30, 0x260, 0x9e8;
- }
- state("ScarletNexus-Win64-Shipping", "V1.0.4.3")
- {
- byte Loader : 0x4BB2A54; // Originally a byte
- int Chapter : 0x050EFD70, 0x30, 0x2C0, 0x58, 0x410, 0x60, 0x398, 0x2BC;
- int Level : 0x050EFD70, 0x30, 0x2C0, 0x58, 0x410, 0x60, 0x398, 0x2A0;
- int Section : 0x050EFD70, 0x30, 0x2C0, 0x58, 0x410, 0x60, 0x398, 0x29C;
- byte Character : 0x050EFD70, 0x30, 0x260, 0x9e8;
- }
- /*
- To find Chap,L,S BP_ui_Scene_Minimap_C LV_MainPersistantDeferred
- To find
- */
- init
- {
- vars.FinalValueFemale = 0;
- vars.FinalValueMale = 0;
- vars.Name = "duck"; // IK this could not have anything in it, but I also like ducks so lol. I have to set the var to a string or it won't work because it can't convert a null to a string
- vars.doneMaps = new List<string>();
- switch (modules.First().ModuleMemorySize)
- {
- case 92475392: version = "V1.0.3";
- break;
- case 93237248: version = "V1.0.3.1";
- break;
- case 93995008 : version = "V1.0.4.3";
- break;
- default: version = "V1.0.2";
- break;
- }
- }
- startup
- {
- settings.Add("SN", true, "Scarlet Nexus");
- settings.Add("P0", true, "Phase 0 Prologue: Reuinion/Encounter", "SN");
-
- settings.Add("YR", true, "Yuito Route", "SN");
- settings.Add("MP1", true, "Phase 1 Prologue: Trusting the Future", "YR");
- settings.Add("MP2", true, "Phase 2 Prologue: Days of Disquieting Stagnation", "YR");
- settings.Add("MP3", true, "Phase 3 Prologue: Inside Upside Down Reality", "YR");
- settings.Add("MP4", true, "Phase 4 Prologue: Fate Split in Two", "YR");
- settings.Add("MP5", true, "Phase 5 Prologue: A Changed World and Creeping Unease", "YR");
- settings.Add("MP6", true, "Phase 6 Prologue: Choice to Face It, Eyes Open", "YR");
- settings.Add("MP7", true, "Phase 7 Prologue: Where Lost Memories Lead", "YR");
- settings.Add("MP8", true, "Phase 8 Prologue: Collecting Pieces of Unkown History", "YR");
- settings.Add("MP9", true, "Phase 9 Prologue: Eternal Vow, Eternal Bond", "YR");
- settings.Add("MP10", true, "Phase 10 Prologue: Conclusion and Accidental Meeting", "YR");
- settings.Add("MP11", true, "Phase 11 Prologue: Feeling Unraveled Time Together", "YR");
- settings.Add("MP12", true, "Phase 12 Prologue: Path to the Future and Freedom", "YR");
- settings.Add("KR", true, "Kasane Route", "SN");
- settings.Add("FP1", true, "Phase 1 Prologue: Searching for Freedom", "KR");
- settings.Add("FP2", true, "Phase 2 Prologue: Days of Disquieting Stagnation", "KR");
- settings.Add("FP3", true, "Phase 3 Prologue: Fated to Move Upon Awakening", "KR");
- settings.Add("FP4", true, "Phase 4 Prologue: What Waits at the End", "KR");
- settings.Add("FP5", true, "Phase 5 Prologue: The Point of No Return", "KR");
- settings.Add("FP6", true, "Phase 6 Prologue: Intertwining Thoughts and Confusion", "KR");
- settings.Add("FP7", true, "Phase 7 Prologue: Where Lost Memories Lead", "KR");
- settings.Add("FP8", true, "Phase 8 Prologue: They Speak of a Hidden Past", "KR");
- settings.Add("FP9", true, "Phase 9 Prologue: Protecting Lives and Protected Lives", "KR");
- settings.Add("FP10", true, "Phase 10 Prologue: Conclusion and Accidental Meeting", "KR");
- settings.Add("FP11", true, "Phase 11 Prologue: Feeling Unraveled Time Together", "KR");
- settings.Add("FP12", true, "Phase 12 Prologue: Path to the Future and Freedom", "KR");
- var tB = (Func<string, string, string, Tuple<string, string, string>>) ((elmt1, elmt2, elmt3) => { return Tuple.Create(elmt1, elmt2, elmt3); });
- var sB = new List<Tuple<string, string, string>>
- {
- //tB("P0","102","Starting the Tutorial"),
- tB("P0","601","Finsihed tutorial and entiering Suoh City"), // Will only split once!
- tB("MP1","100601","Start of Phase 1"),
- tB("MP1","100702","Entering into Kikuchiba"),
- tB("MP1","100703","Upper level construction"),
- tB("MP1","100901","Entering into Mizuhagwa District"),
- tB("MP2","200602","Start of Phase 2"),
- tB("MP2","200101","OFS Training Course"),
- tB("MP2","200702","Ending of Training Course"),
- tB("MP2","200801","Entering Abandoned Subway: Suoh Line 9"),
- tB("MP2","200802","Entering Abandoned Line"),
- tB("MP2","200803","Entering Osukuni Station"),
- tB("MP3","300601","Start of Phase 3"),
- tB("MP3","301002","Start of Junction"),
- tB("MP3","301003","Start of Parking Lot"),
- tB("MP4","400601","Start of Phase 4"),
- tB("MP5","501401","Start of Phase 5"),
- tB("MP5","501301","Start of Old Ward"),
- tB("MP5","500702","Entering into Mid-Level Shopping district"),
- tB("MP6","600901","Start of Phase 6"),
- tB("MP6","601701","Entrance of Museum Ruins"),
- tB("MP6","601703","Entrance of Level 0 Experimental Devision"),
- tB("MP7","700601","Start of Phase 7"),
- tB("MP8","801901","Start of Phase 8"),
- tB("MP8","802001","Entrance of Church Entrance"),
- tB("MP9","900601","Start of Phase 9"),
- tB("MP9","900201","Entrance of Suoh OSF Chief's Office"),
- tB("MP9","901201","Entrance of Bridge of Beauty"),
- tB("MP9","901202","Entrance of Hallowed Ground"),
- tB("MP9","901203","Entrance of Worship Hall"),
- tB("MP10","1000703","Start of Phase 10"),
- tB("MP10","1001901","Entrance of Trailhead"),
- tB("MP10","1002101","Entrance of Babe Entrance"),
- tB("MP10","1002102","Entrance of Babe - Floor of Reason"),
- tB("MP10","1002103","Entrance of Babe - Floor of Emotion"),
- tB("MP10","1002104","Entrance of Babe - Floor of Instinct"),
- tB("MP10","1001003","Entrance of Parking Area"),
- tB("MP11","1101003","Start of Phase 11"),
- tB("MP12","1202201","Start of Phase 12"),
- tB("MP12","1202204","Entrance of Memories of Fighting"),
- tB("MP12","1202205","Entrance of Memories of Lodging"),
- tB("MP12","1202206","Entrance of The Forgotten Stage"),
- tB("MP12","1202207","Entrance of Memories of Pursuit"),
- tB("MP12","1202208","Entrance of Memories of Rebeillion"),
- tB("MP12","1202209","Entrance of Memories of Nightmare"),
- tB("MP12","1202211","Entrance of Memories of Impasse"),
- tB("MP12","1202202","Entrance of Millennium Hall"),
- tB("MP12","1202210","Entrance of Final Fight"),
- tB("FP1","1000601","Start of Phase 1"),
- tB("FP1","1000701","Entrance of Sub-Level Underground Facility"),
- tB("FP1","1000702","Entrance of Mid-Level Shopping Distric"),
- //tB("FP1","1000703","Entrance of Upper-Level Construction Site"),
- tB("FP2","2000601","Start of Phase 2"),
- tB("FP2","2000702","Entrance of Mid-Level Shopping Distric"),
- tB("FP2","2000801","Entrance of Hirasaka Station Entrance/Exit"),
- tB("FP2","2000802","Entrance of Inside Abandoned Line"),
- tB("FP2","2000803","Entrance of Osukuni Station"),
- tB("FP3","3000601","Start of Phase 3"),
- tB("FP3","3001001","Entrance of Suoh Exit"),
- tB("FP3","3001002","Entrance of Junction"),
- tB("FP3","3001003","Entrance of Parking Area"),
- tB("FP4","4005601","Start of Phase 4"),
- tB("FP5","5000601","Start of Phase 5"),
- tB("FP6","6001003","Start of Phase 6"),
- tB("FP6","6007003","Entrance of Level 0 Experimental Devision"),
- tB("FP6","6001501","Entrance of Town Center"),
- tB("FP6","6000702","Entering into Mid-Level Shopping district"),
- tB("FP7","7000902","Start of Phase 7"),
- tB("FP7","7001701","Entrance of Museum Ruins"),
- tB("FP7","7001703","Entrance of Level 0 Experimental Devision"),
- tB("FP8","8001901","Start of Phase 8"),
- tB("FP8","8002001","Entrance of Church Headquarters"),
- tB("FP9","9000902","Start of Phase 9"),
- tB("FP9","9001201","Entrance of Bridge of Beauty"),
- tB("FP9","9001202","Entrance of Hollowed Ground"),
- tB("FP9","9001203","Entrance of Worship Hall"),
- tB("FP10","10000703","Start of Phase 10"),
- tB("FP10","10001901","Entrance of Trailhead"),
- tB("FP10","10002101","Entrance of Church Entrance"),
- tB("FP10","10002102","Entrance of Floor of Reason"),
- tB("FP10","10002103","Entrance of Floor of Emotion"),
- tB("FP10","10002104","Entrance of Floor of Instinct"),
- tB("FP10","10001003","Entrance of Parking Area"),
- tB("FP10","10001304","Entrance of Old OSF Hospital (11 Years Ago)"),
- tB("FP11","11001003","Start of Phase 11"),
- tB("FP12","12002201","Start of Phase 12"),
- tB("FP12","12002204","Entrance of Memories of Fighting"),
- tB("FP12","12002205","Entrance of Memories of Lodging"),
- tB("FP12","12002206","Entrance of The Forgotten Stage"),
- tB("FP12","12002207","Entrance of Memories of Pursuit"),
- tB("FP12","12002208","Entrance of Memories of Rebeillion"),
- tB("FP12","12002209","Entrance of Memories of Nightmare"),
- tB("FP12","12002211","Entrance of Memories of Impasse"),
- tB("FP12","12002202","Entrance of Millennium Hall"),
- tB("FP12","12002210","Entrance of Final Fight"),
- };
- foreach (var s in sB) settings.Add(s.Item2, true, s.Item3, s.Item1);
- if (timer.CurrentTimingMethod == TimingMethod.RealTime) // stolen from dude simulator 3, basically asks the runner to set their livesplit to game time
- {
- var timingMessage = MessageBox.Show (
- "This game uses Time without Loads (Game Time) as the main timing method.\n"+
- "LiveSplit is currently set to show Real Time (RTA).\n"+
- "Would you like to set the timing method to Game Time? This will make verification easier",
- "LiveSplit | Scarlet Nexus",
- MessageBoxButtons.YesNo,MessageBoxIcon.Question
- );
-
- if (timingMessage == DialogResult.Yes)
- {
- timer.CurrentTimingMethod = TimingMethod.GameTime;
- }
- }
-
- }
- update
- {
- vars.FinalValueMale = ((current.Chapter*100000 + (current.Level*100) + current.Section));
- vars.FinalValueFemale = ((current.Chapter*1000000 + (current.Level*100) + current.Section));
- print(vars.Name);
- }
- start
- {
- return ((vars.FinalValueMale == 102) && (current.Loader == 5));
- }
- onStart
- {
- vars.doneMaps.Clear(); // Needed because checkpoints bad in game
- vars.doneMaps.Add(vars.FinalValueMale.ToString());
- switch ((int)current.Character)
- {
- case 5: vars.Name = "Yuito";
- break;
- case 0: vars.Name = "Kasane";
- break;
- case 174: vars.Name = "Yuito";
- break;
- case 170: vars.Name = "Kasane";
- break;
- case 18: vars.Name = "Kasane";
- break;
- case 22: vars.Name = "Yuito";
- break;
- default: vars.Name = "duck";
- break;
- }
- }
- split
- {
- if (vars.Name == "Yuito")
- {
- if ((settings[vars.FinalValueMale.ToString()]) && (current.Loader != 20) && (!vars.doneMaps.Contains(vars.FinalValueMale.ToString())))
- {
- vars.doneMaps.Add(vars.FinalValueMale.ToString());
- return true;
- }
- }
- else
- {
- if ((settings[vars.FinalValueFemale.ToString()]) && (current.Loader != 20) && (!vars.doneMaps.Contains(vars.FinalValueFemale.ToString())))
- {
- vars.doneMaps.Add(vars.FinalValueFemale.ToString());
- return true;
- }
- }
- }
- isLoading
- {
- return (current.Loader == 20);
- }
- onReset
- {
- vars.doneMaps.Clear();
- }
|