summaryrefslogtreecommitdiff
path: root/src/client/GameSave.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/GameSave.cpp')
-rw-r--r--src/client/GameSave.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/client/GameSave.cpp b/src/client/GameSave.cpp
index 52ad64b..ddb4ef4 100644
--- a/src/client/GameSave.cpp
+++ b/src/client/GameSave.cpp
@@ -960,12 +960,32 @@ void GameSave::readOPS(char * data, int dataLength)
case PT_PSTN:
if (savedVersion < 87 && particles[newIndex].ctype)
particles[newIndex].life = 1;
+ break;
case PT_STKM:
case PT_STKM2:
case PT_FIGH:
if (savedVersion < 88 && particles[newIndex].ctype == OLD_SPC_AIR)
particles[newIndex].ctype = SPC_AIR;
+ break;
+ case PT_FILT:
+ if (savedVersion < 89)
+ {
+ if (particles[newIndex].tmp<0 || particles[newIndex].tmp>3)
+ particles[newIndex].tmp = 6;
+ particles[newIndex].ctype = 0;
+ }
+ break;
+ case PT_QRTZ:
+ case PT_PQRT:
+ if (savedVersion < 89)
+ {
+ particles[newIndex].tmp2 = particles[newIndex].tmp;
+ particles[newIndex].tmp = particles[newIndex].ctype;
+ particles[newIndex].ctype = 0;
+ }
+ break;
}
+ //note: PSv was used in version 77.0 and every version before, add something in PSv too if the element is that old
newIndex++;
}
}
@@ -1587,6 +1607,21 @@ void GameSave::readPSv(char * data, int dataLength)
if (ver < 88) //fix air blowing stickmen
if ((particles[i-1].type == PT_STKM || particles[i-1].type == PT_STKM2 || particles[i-1].type == PT_FIGH) && particles[i-1].ctype == OLD_SPC_AIR)
particles[i-1].ctype == SPC_AIR;
+ if (ver < 89)
+ {
+ if (particles[i-1].type == PT_FILT)
+ {
+ if (particles[i-1].tmp<0 || particles[i-1].tmp>3)
+ particles[i-1].tmp = 6;
+ particles[i-1].ctype = 0;
+ }
+ else if (particles[i-1].type == PT_QRTZ || particles[i-1].type == PT_PQRT)
+ {
+ particles[i-1].tmp2 = particles[i-1].tmp;
+ particles[i-1].tmp = particles[i-1].ctype;
+ particles[i-1].ctype = 0;
+ }
+ }
}
}