fix loading saves with stacked particles

This commit is contained in:
jacob1
2017-12-19 21:15:19 -05:00
parent 68af269b76
commit 553eaf9524

View File

@@ -123,7 +123,6 @@ int Simulation::Load(int fullX, int fullY, GameSave * save, bool includePressure
elementCount[parts[r>>8].type]--; elementCount[parts[r>>8].type]--;
parts[r>>8] = tempPart; parts[r>>8] = tempPart;
i = r>>8; i = r>>8;
pmap[y][x] = tempPart.type | i<<8;
elementCount[tempPart.type]++; elementCount[tempPart.type]++;
} }
else if ((r = photons[y][x])) else if ((r = photons[y][x]))
@@ -131,7 +130,6 @@ int Simulation::Load(int fullX, int fullY, GameSave * save, bool includePressure
elementCount[parts[r>>8].type]--; elementCount[parts[r>>8].type]--;
parts[r>>8] = tempPart; parts[r>>8] = tempPart;
i = r>>8; i = r>>8;
photons[y][x] = tempPart.type | i<<8;
elementCount[tempPart.type]++; elementCount[tempPart.type]++;
} }
//Allocate new particle //Allocate new particle
@@ -144,7 +142,6 @@ int Simulation::Load(int fullX, int fullY, GameSave * save, bool includePressure
if (i > parts_lastActiveIndex) if (i > parts_lastActiveIndex)
parts_lastActiveIndex = i; parts_lastActiveIndex = i;
parts[i] = tempPart; parts[i] = tempPart;
pmap[y][x] = tempPart.type | i<<8;
elementCount[tempPart.type]++; elementCount[tempPart.type]++;
} }
@@ -194,6 +191,7 @@ int Simulation::Load(int fullX, int fullY, GameSave * save, bool includePressure
parts_lastActiveIndex = NPART-1; parts_lastActiveIndex = NPART-1;
force_stacking_check = true; force_stacking_check = true;
Element_PPIP::ppip_changed = 1; Element_PPIP::ppip_changed = 1;
RecalcFreeParticles(false);
// fix SOAP links using soapList, a map of old particle ID -> new particle ID // fix SOAP links using soapList, a map of old particle ID -> new particle ID
// loop through every old particle (loaded from save), and convert .tmp / .tmp2 // loop through every old particle (loaded from save), and convert .tmp / .tmp2