big steppy
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 

92 行
2.5 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. // 2 -> 3
  37. // passive production is now written as percentage points;
  38. // old values won't make sense anymore, so we'll just
  39. // erase them
  40. save => {
  41. if (save.baseCumProduction)
  42. delete save.baseCumProduction;
  43. if (save.baseFemcumProduction)
  44. delete save.baseFemcumProduction;
  45. if (save.baseLactationProduction)
  46. delete save.baseLactationProduction;
  47. if (save.baseGasProduction)
  48. delete save.baseGasProduction;
  49. if (save.basePissProduction)
  50. delete save.basePissProduction;
  51. if (save.baseScatProduction)
  52. delete save.baseScatProduction;
  53. }
  54. ];
  55. function migrate(save, target=null) {
  56. if (target == null) {
  57. target = migrations.length;
  58. }
  59. let version = save.version;
  60. if (version == undefined) {
  61. 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.");
  62. save["version"] = migrations.length;
  63. return false;
  64. }
  65. if (version == 0 ) {
  66. 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.");
  67. save["version"] = migrations.length;
  68. return false;
  69. }
  70. if (version < target) {
  71. for (let x = version; x < target; x++) {
  72. migrations[x](save);
  73. }
  74. save.version = target;
  75. } else {
  76. return false;
  77. }
  78. return true;
  79. }