SHARE
TWEET

Untitled

a guest Sep 20th, 2019 100 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. state("game", "1.0")
  2. {
  3.     byte isLoading1 : 0x272584;
  4.     bool isLoading2 : 0x2F9464, 0x40;  
  5.     bool m1Cutscene : 0x25608C;                                        
  6.     byte finalCutscene : 0x25671C;  
  7.     string6 mission : 0x2F94A8, 0x0;
  8.     string16 missionAlt : 0x2F94A8, 0x0;    // used for "submissions"
  9. }
  10.  
  11. state("game", "1.2")
  12. {
  13.     byte isLoading1 : 0x2D4BFC;
  14.     bool isLoading2 : 0x247E1C, 0x40;
  15.     bool m1Cutscene : 0x23D730;
  16.     byte finalCutscene : 0x2BDD7C;
  17.     string6 mission : 0x247E60, 0x0;
  18.     string15 missionAlt : 0x247E60, 0x0;
  19. }
  20.  
  21. init
  22. {
  23.     if (modules.First().ModuleMemorySize == 3158016) {
  24.         version = "1.0";
  25.     }
  26.     else if (modules.First().ModuleMemorySize == 2993526) {
  27.         version = "1.2";
  28.     }
  29. }
  30.  
  31. update
  32. {
  33.     if (version == "") { return; }      // If version is unknown, don't do anything (without it, it'd default to "1.0" version)
  34. }
  35.  
  36. // Start timer after skipping the first cutscene (you can comment this section out if you don't want this feature)
  37. start
  38. {
  39.     return (!old.m1Cutscene && current.m1Cutscene && current.mission == "mise01");
  40. }
  41.  
  42. // Reset timer on "An Offer You Can't Refuse" load (you can comment this section out if you don't want this feature)
  43. reset
  44. {
  45.     return((current.mission == "mise01") && (old.isLoading1 != 0) && (current.isLoading1 == 0));
  46. }
  47.  
  48. // Split for every mission change (at the very beginning of every loading) [you can comment this section out if you don't want this feature]
  49. split
  50. {
  51.     if (current.mission.Contains("mise") && old.mission != "00menu") {
  52.         var currentSplit = timer.CurrentSplit.Name.ToLower();
  53.    
  54.         // Don't split on these mission changes
  55.         if (current.mission == "mise06" || current.mission == "mise01") { return false; }
  56.    
  57.         // Split after Sarah
  58.         else if (current.missionAlt == "mise07b-saliery" && currentSplit.Contains("sarah")) {
  59.             return (old.missionAlt == "mise07-sara" && current.missionAlt == "mise07b-saliery");
  60.         }
  61.    
  62.         // Split after The Whore
  63.         else if (current.missionAlt == "mise08-kostel" && currentSplit.Contains("whore")) {
  64.             return (old.missionAlt == "mise08-hotel" && current.missionAlt == "mise08-kostel");
  65.         }
  66.    
  67.         // Final split
  68.         else if (current.missionAlt == "mise20-galery") {
  69.             return (old.finalCutscene == 0 && current.finalCutscene == 1);  // split on final cutscene trigger
  70.         }
  71.    
  72.         // Split for everything else
  73.         else {
  74.             return (old.mission != current.mission);
  75.         }
  76.     } else { return false; }
  77. }
  78.  
  79. // Load remover  (you can comment this section out if you don't want this feature)
  80. isLoading
  81. {
  82.     var loadState = ((current.isLoading1 != 0) || (!current.isLoading2)) && (old.mission != "00menu");
  83.     if (loadState) {
  84.         vars.crash = false;
  85.     }
  86.     return loadState || vars.crash;
  87. }
  88.  
  89. exit
  90. {
  91.     timer.IsGameTimePaused = true;
  92.     vars.crash = true;
  93. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top