|
- // bumps save versions
-
- migrations = [
- // 0 -> 1
-
- // does nothing
- save => {
- },
- // 1 -> 2
-
- // automatic digestion is now a subcategory, so anyone with
- // a digest time of 0 should have that unset
- save => {
- if (save.oralDigestTime == 0)
- save.oralDigestAuto = false;
- if (save.analDigestTime == 0)
- save.analDigestAuto = false;
- if (save.tailDigestTime == 0)
- save.tailDigestAuto = false;
- if (save.cockDigestTime == 0)
- save.cockDigestAuto = false;
- if (save.unbirthDigestTime == 0)
- save.unbirthDigestAuto = false;
- if (save.breastDigestTime == 0)
- save.breastDigestAuto = false;
- if (save.soulDigestTime == 0)
- save.soulDigestAuto = false;
- if (save.bladderDigestTime == 0)
- save.bladderDigestAuto = false;
- if (save.gooDigestTime == 0)
- save.gooDigestAuto = false;
- if (save.pawDigestTime == 0)
- save.pawDigestAuto = false;
- if (save.cropTransferTime == 0)
- save.cropTransferAuto = false;
- if (save.wingDigestTime == 0)
- save.wingDigestAuto = false;
- }
-
- ];
-
- function migrate(save, target=null) {
- if (target == null) {
- target = migrations.length;
- }
-
- let version = save.version;
-
- if (version == undefined) {
- 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.");
- save["version"] = migrations.length;
- return false;
- }
-
- if (version == 0 ) {
- 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.");
- save["version"] = migrations.length;
- return false;
- }
-
- if (version < target) {
- for (let x = version; x < target; x++) {
- migrations[x](save);
- }
- save.version = target;
- } else {
- return false;
- }
-
- return true;
- }
|