Advertisement
Guest User

Untitled

a guest
Sep 20th, 2019
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement