WallaceAndGromitInProjectZoo.asl 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // Start was done by xZeko as I got busy with another ASL
  2. state("Zoo_no_sse") // Two .exe's pogu, which work with the same addresses
  3. {
  4. byte splitter : 0x470770; // Such a powerful address, not only does it have a value for loading, main menu, and split, it also only took 5 minutes to find
  5. int start : 0x46EAA0; // 0 main menu
  6. int start2 : 0x478064; // 3 main menu
  7. int start3 : 0x474840; // 0 main menu
  8. }
  9. state("Zoo_SSE")
  10. {
  11. byte splitter : 0x470770;
  12. int start : 0x46EAA0; // 0 main menu
  13. int start2 : 0x478064; // 3 main menu
  14. int start3 : 0x474840; // 0 main menu
  15. }
  16. startup
  17. {
  18. settings.Add("missions", true, "All Levels");
  19. vars.missions = new Dictionary<string,string> // Ik you can do int,string but it always reads errors for me so ICBA to struggle with it
  20. {
  21. {"170","Mines"},
  22. {"130","Volcano"},
  23. {"139","Warehouse"},
  24. {"43","Ice House"},
  25. {"78","Diamond-o-Matic"},
  26. };
  27. foreach (var Tag in vars.missions)
  28. {
  29. settings.Add(Tag.Key, true, Tag.Value, "missions");
  30. };
  31. }
  32. start
  33. {
  34. return ((current.start == 16777472) && (current.start2 == 4) && (old.start3 == 1) || (current.start == 256) && (current.start2 == 4) && (old.start3 == 1));
  35. }
  36. split
  37. {
  38. return (settings[current.splitter.ToString()] && (current.splitter != old.splitter));
  39. }
  40. isLoading
  41. {
  42. return (current.splitter == 0) ||
  43. (current.splitter == 12);
  44. }