state("deponia") { // Value which represents the current screen in game int current_level : "deponia.exe", 0x00B329CC, 0x128, 0x68, 0x8, 0x10, 0x8, 0x1C8; // Value which goess to 0 when a screen change happens int inventory_pick2 : "deponia.exe", 0x00B26919; // Value which checks if the inventory select screen is not hidden 257=shown 1=hidden int start_check : "deponia.exe", 0x00B327AC, 0x18, 0x6C, 0x260, 0x4, 0x10, 0x8, 0x0; // Value with varius IDs for when a conversation box is open int conversation : "deponia.exe", 0x00B37B84, 0x84, 0x8, 0x34, 0x14, 0x10, 0x8, 0x54; } init { } startup { vars.act = 0; vars.cruiser2 = true; vars.prologue = true; vars.controll_room = true; vars.landing_plat = true; vars.boat2 = true; settings.Add("info", true, "Full Game Runs"); settings.Add("cruiser", false, "On the cruiser with goal", "info"); settings.Add("PrologueEnd", false, "Falling off the cruiser (End of intro)", "info"); settings.Add("act2", true, "Start of Act 2", "info"); settings.Add("controlRoom", false, "Entering controll room for the first time", "info"); settings.Add("act3", true, "Start of Act 3", "info"); settings.Add("landingPlatform", false, "Entering landing platform for the first time", "info"); settings.Add("boat", false, "In the boat for the first time (Meeting Bozo)", "info"); settings.Add("end", true, "Last input (Dialogue select)", "info"); settings.Add("IL", false, "Individual Levels"); settings.Add("kuvaq", false, "Kuvaq (starts when starting new game -> splits when cutscene plays at the end of act)", "IL"); settings.Add("junkmines", false, "Junk Mines (starts when entering the crane are -> splits when cutscene plays after cart)", "IL"); settings.Add("acsension", false, "Lower Ascension Station (Starts when entering candy area -> splits on last input)", "IL"); } update { } start { // Combines the value for checking when a screen change starts and if the inventory pick screen is open to start the timer for full game runs if(current.inventory_pick2 == 0 && old.inventory_pick2 != 0 && current.start_check == 257 && settings["info"]) { vars.act = 1; return true; } //Starts like normal run but for kuvaq IL if(current.inventory_pick2 == 0 && old.inventory_pick2 != 0 && current.start_check == 257 && settings["kuvaq"]) { return true; } //Starts timer when entering the Junk mines IL (crane area) if (current.current_level == 1310976 && old.current_level != 1310976 && settings["junkmines"]) { return true; } //Starts timer when entering ancesnsion IL (candy area) if (current.current_level == 1769728 && old.current_level != 1769728 && settings["acsension"]) { return true; } } onStart { // Resets all the checks for the optional splits vars.cruiser2 = true; vars.prologue = true; vars.controll_room = true; vars.landing_plat = true; vars.boat2 = true; if(settings["info"] && settings["IL"]) { var timingMessage = MessageBox.Show ( "You currently have both Full Game and IL splits enabled.\n"+ "Please consider disabling one of them so the Autosplitter\n"+ "works as intended.", "LiveSplit | Deponia", MessageBoxButtons.OK,MessageBoxIcon.Hand ); } } split { // Splits on entering cruiser for the first time if setting is on if(current.current_level == 7471360 && old.current_level != 7471360 && vars.cruiser2 == true && settings["cruiser"]) { vars.cruiser2 = false; return true; } // Splits on falling of the cruiser if setting is on if(current.current_level == 393472 && old.current_level != 393472 && vars.prologue == true && settings["PrologueEnd"]) { vars.prologue = false; return true; } // Checks for if you entered the crane screen and updates the act value so it wont split again if (current.current_level == 1310976 && old.current_level != 1310976 && vars.act == 1 && settings["act2"]) { vars.act = 2; return true; } // Splits on entering the controll room for the first time if settings is on if(current.current_level == 1638656 && old.current_level != 1638656 && vars.controll_room == true && settings["controlRoom"]) { vars.controll_room = false; return true; } // Checks if you enter the candy room and updates the value so it wont split again if (current.current_level == 1769728 && old.current_level != 1769728 && vars.act == 2 && settings["act3"]) { vars.act = 3; return true; } // Splits on getting to the landing platform for the first time if settings is on if(current.current_level == 2031872 && old.current_level != 2031872 && vars.landing_plat == true && settings["landingPlatform"]) { vars.landing_plat = false; return true; } // Splits on getting to the boat for the first time if setting is on if(current.current_level == 2359552 && old.current_level != 2359552 && vars.boat2 == true && settings["boat"]) { vars.boat2 = false; return true; } // Ends the time on the fina conversation ID while also being in the haystack area in act 3 if (current.conversation != 740 && old.conversation == 740 && current.current_level == 11927808 && vars.act == 3 && settings["end"]) { return true; } //Splits for IL //Splits when cutscene plays after being in basement area if(current.current_level == 15466752 && old.current_level == 655616 && settings["kuvaq"]) { return true; } //Splits when cutscene starts playing after minecard minigame if(current.current_level == 15466752 && (old.current_level == 1638656 || old.current_level == 1442048) && settings["junkmines"]) { return true; } //Splits when last input happens for last IL if (current.conversation != 740 && old.conversation == 740 && current.current_level == 11927808 && settings["acsension"]) { return true; } }