diff options
Diffstat (limited to 'src/client/GameSave.cpp')
| -rw-r--r-- | src/client/GameSave.cpp | 35 |
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; + } + } } } |
