Updated PAPR passthrough behavior

This commit is contained in:
Rebmiami 2023-12-11 18:41:37 -05:00
parent 6f70192742
commit 8efefb0264
2 changed files with 3 additions and 3 deletions

View File

@ -3330,9 +3330,9 @@ void Simulation::RecalcFreeParticles(bool do_life_dec)
photons[y][x] = PMAP(i, t);
else
{
// Particles are sometimes allowed to go inside INVS and FILT
// Particles are sometimes allowed to go inside INVS, FILT, and PAPR
// To make particles collide correctly when inside these elements, these elements must not overwrite an existing pmap entry from particles inside them
if (!pmap[y][x] || (t!=PT_INVIS && t!= PT_FILT))
if (!pmap[y][x] || (t!=PT_INVIS && t!= PT_FILT && t != PT_PAPR))
pmap[y][x] = PMAP(i, t);
// (there are a few exceptions, including energy particles - currently no limit on stacking those)
if (t!=PT_THDR && t!=PT_EMBR && t!=PT_FIGH && t!=PT_PLSM)

View File

@ -187,7 +187,7 @@ void SimulationData::init_can_move()
can_move[movingType][PT_SAWD] = 0;
// Let most non-solids pass through PAPR
if (elements[movingType].Properties & (TYPE_GAS | TYPE_PART | TYPE_LIQUID))
if (elements[movingType].Properties & (TYPE_GAS | TYPE_PART | TYPE_LIQUID) && (movingType != PT_FIRE && movingType != PT_SMKE))
can_move[movingType][PT_PAPR] = 2;
}
//a list of lots of things PHOT can move through