big steppy
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

72 lines
1.9 KiB

  1. // bumps save versions
  2. migrations = [
  3. // 0 -> 1
  4. // does nothing
  5. save => {
  6. },
  7. // 1 -> 2
  8. // automatic digestion is now a subcategory, so anyone with
  9. // a digest time of 0 should have that unset
  10. save => {
  11. if (save.oralDigestTime == 0)
  12. save.oralDigestAuto = false;
  13. if (save.analDigestTime == 0)
  14. save.analDigestAuto = false;
  15. if (save.tailDigestTime == 0)
  16. save.tailDigestAuto = false;
  17. if (save.cockDigestTime == 0)
  18. save.cockDigestAuto = false;
  19. if (save.unbirthDigestTime == 0)
  20. save.unbirthDigestAuto = false;
  21. if (save.breastDigestTime == 0)
  22. save.breastDigestAuto = false;
  23. if (save.soulDigestTime == 0)
  24. save.soulDigestAuto = false;
  25. if (save.bladderDigestTime == 0)
  26. save.bladderDigestAuto = false;
  27. if (save.gooDigestTime == 0)
  28. save.gooDigestAuto = false;
  29. if (save.pawDigestTime == 0)
  30. save.pawDigestAuto = false;
  31. if (save.cropTransferTime == 0)
  32. save.cropTransferAuto = false;
  33. if (save.wingDigestTime == 0)
  34. save.wingDigestAuto = false;
  35. }
  36. ];
  37. function migrate(save, target=null) {
  38. if (target == null) {
  39. target = migrations.length;
  40. }
  41. let version = save.version;
  42. if (version == undefined) {
  43. alert("This save is from before versioning was added. It can't be automatically updated, and it might lose some settings. Double check that everything's there! Any subsequent saves will work correctly.");
  44. save["version"] = migrations.length;
  45. return false;
  46. }
  47. if (version == 0 ) {
  48. alert("This save is from before v1.0. It can't be automatically migrated, so it may lose some settings. Double check the resulting character. Subsequent saves will function correctly.");
  49. save["version"] = migrations.length;
  50. return false;
  51. }
  52. if (version < target) {
  53. for (let x = version; x < target; x++) {
  54. migrations[x](save);
  55. }
  56. save.version = target;
  57. } else {
  58. return false;
  59. }
  60. return true;
  61. }