CODBlackOps2.asl 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. state("t6sp")
  2. {
  3. string21 CurrentLevelName : 0xF4E62C; // Regular splitter map
  4. int Loader :0x3D83614;
  5. string24 CurrentPlayAreaName : 0xC18138;
  6. int EndSplit : 0x2578DF0;
  7. }
  8. startup
  9. {
  10. settings.Add("missions", true, "Missions");
  11. vars.missions = new Dictionary<string,string>
  12. {
  13. {"monsoon.all.sabs", "Celerium"},
  14. {"afghanistan.all.sabs", "Old Wounds"},
  15. {"nicaragua.all.sabs", "Time and Fate"},
  16. {"pakistan_1.all.sabs", "Fallen Angel"},
  17. {"karma_1.all.sabs", "Karma"},
  18. {"panama.all.sabs", "Suffer With Me"},
  19. {"yemen.all.sabs", "Achilles Veil"},
  20. {"blackout.all.sabs", "Odysseus"},
  21. {"la_1.all.sabs", "Cordis Die"},
  22. {"haiti.all.sabs", "Judgment Day"},
  23. };
  24. foreach (var Tag in vars.missions)
  25. {
  26. settings.Add(Tag.Key, true, Tag.Value, "missions");
  27. };
  28. vars.loadings = new Dictionary<string,string>
  29. {
  30. {"fronted.english.sabs","cutscene1"},
  31. {"fronted.all.sabs","cutscene2"},
  32. {"ts_afghanistan.all.sabs","cutscene3"},
  33. };
  34. vars.missions1A = new List<string>();
  35. foreach (var Tag in vars.loadings)
  36. {
  37. vars.missions1A.Add(Tag.Key);
  38. }
  39. if (timer.CurrentTimingMethod == TimingMethod.RealTime) // stolen from dude simulator 3, basically asks the runner to set their livesplit to game time
  40. {
  41. var timingMessage = MessageBox.Show
  42. (
  43. "This game uses Time without Loads (Game Time) as the main timing method.\n"+
  44. "LiveSplit is currently set to show Real Time (RTA).\n"+
  45. "Would you like to set the timing method to Game Time? This will make verification easier",
  46. "LiveSplit | Call of Duty: Black Ops 2",
  47. MessageBoxButtons.YesNo,MessageBoxIcon.Question
  48. );
  49. if (timingMessage == DialogResult.Yes)
  50. {
  51. timer.CurrentTimingMethod = TimingMethod.GameTime;
  52. }
  53. }
  54. }
  55. start
  56. {
  57. return ((current.CurrentLevelName == "angola.all.sabs") && (current.Loader != 0)); // Starts closer now because of a new loading value
  58. }
  59. isLoading
  60. {
  61. if (current.CurrentPlayAreaName != "nicaragua_gump_josefina") // No matter what address I used, it always turns true in the middle of joesefina's cutscene mid level
  62. {
  63. if ((current.Loader == 0) ||
  64. ((current.CurrentPlayAreaName == "su_rts_mp_dockside")) || // Training course level that map1 doesn't switch to most of the time
  65. (vars.missions1A.Contains(current.CurrentLevelName)))
  66. {
  67. return true;
  68. }
  69. else // IDK why probably because of the double if, but it likes to not unpause without a return false on an else
  70. {
  71. return false;
  72. }
  73. }
  74. }
  75. split
  76. {
  77. return ((current.CurrentLevelName != old.CurrentLevelName) && (settings[current.CurrentLevelName]));
  78. return ((current.CurrentPlayAreaName == "haiti_gump_endings") && (current.EndSplit != 0)); // Used as end split once decision is made
  79. }