fix crash when PIPE finds PRTI with an invalid channel
This commit is contained in:
parent
6da5b08fd2
commit
70a815a8c7
@ -454,11 +454,15 @@ void Element_PIPE::pushParticle(Simulation * sim, int i, int count, int original
|
|||||||
}
|
}
|
||||||
else if ((r&0xFF) == PT_PRTI) //Pass particles into PRTI for a pipe speed increase
|
else if ((r&0xFF) == PT_PRTI) //Pass particles into PRTI for a pipe speed increase
|
||||||
{
|
{
|
||||||
int nnx;
|
int portaltmp = sim->parts[r>>8].tmp;
|
||||||
for (nnx=0; nnx<80; nnx++)
|
if (portaltmp >= CHANNELS)
|
||||||
if (!sim->portalp[sim->parts[r>>8].tmp][count][nnx].type)
|
portaltmp = CHANNELS-1;
|
||||||
|
else if (portaltmp < 0)
|
||||||
|
portaltmp = 0;
|
||||||
|
for (int nnx = 0; nnx < 80; nnx++)
|
||||||
|
if (!sim->portalp[portaltmp][count][nnx].type)
|
||||||
{
|
{
|
||||||
transfer_pipe_to_part(sim, sim->parts+i, &(sim->portalp[sim->parts[r>>8].tmp][count][nnx]));
|
transfer_pipe_to_part(sim, sim->parts+i, &(sim->portalp[portaltmp][count][nnx]));
|
||||||
count++;
|
count++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -480,11 +484,15 @@ void Element_PIPE::pushParticle(Simulation * sim, int i, int count, int original
|
|||||||
}
|
}
|
||||||
else if ((r&0xFF) == PT_PRTI) //Pass particles into PRTI for a pipe speed increase
|
else if ((r&0xFF) == PT_PRTI) //Pass particles into PRTI for a pipe speed increase
|
||||||
{
|
{
|
||||||
int nnx;
|
int portaltmp = sim->parts[r>>8].tmp;
|
||||||
for (nnx=0; nnx<80; nnx++)
|
if (portaltmp >= CHANNELS)
|
||||||
if (!sim->portalp[sim->parts[r>>8].tmp][count][nnx].type)
|
portaltmp = CHANNELS-1;
|
||||||
|
else if (portaltmp < 0)
|
||||||
|
portaltmp = 0;
|
||||||
|
for (int nnx = 0; nnx < 80; nnx++)
|
||||||
|
if (!sim->portalp[portaltmp][count][nnx].type)
|
||||||
{
|
{
|
||||||
transfer_pipe_to_part(sim, sim->parts+i, &(sim->portalp[sim->parts[r>>8].tmp][count][nnx]));
|
transfer_pipe_to_part(sim, sim->parts+i, &(sim->portalp[portaltmp][count][nnx]));
|
||||||
count++;
|
count++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user