Photons and neutrons go through portal instead of reflecting
This commit is contained in:
parent
af68469f6a
commit
e4b03fb2e2
33
src/powder.c
33
src/powder.c
@ -172,6 +172,37 @@ int try_move(int i, int x, int y, int nx, int ny)
|
||||
if (!parts[r>>8].ctype)
|
||||
parts[r>>8].ctype = PT_NEUT;
|
||||
}
|
||||
if ((r&0xFF)==PT_PRTI && (parts[i].type==PT_PHOT || parts[i].type==PT_NEUT))
|
||||
{
|
||||
int nnx, count;
|
||||
if (nx-x<0)
|
||||
{
|
||||
if (ny-y<0) count = 1;
|
||||
else if (ny-y==0) count = 2;
|
||||
else count = 3;
|
||||
}
|
||||
else if (nx-x==0)
|
||||
{
|
||||
if (ny-y<0) count = 4;
|
||||
else count = 5;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ny-y<0) count = 6;
|
||||
else if (ny-y==0) count = 7;
|
||||
else count = 8;
|
||||
}
|
||||
parts[r>>8].tmp = (int)((parts[r>>8].temp-73.15f)/100+1);
|
||||
if (parts[r>>8].tmp>=CHANNELS) parts[r>>8].tmp = CHANNELS-1;
|
||||
else if (parts[r>>8].tmp<0) parts[r>>8].tmp = 0;
|
||||
for ( nnx=0; nnx<80; nnx++)
|
||||
if (!portalp[parts[r>>8].tmp][count-1][nnx].type)
|
||||
{
|
||||
portalp[parts[r>>8].tmp][count-1][nnx] = parts[i];
|
||||
parts[i].type=PT_NONE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -327,7 +358,7 @@ int do_move(int i, int x, int y, float nxf, float nyf)
|
||||
}
|
||||
if (t==PT_PHOT||t==PT_NEUT)
|
||||
photons[ny][nx] = t|(i<<8);
|
||||
else
|
||||
else if (t)
|
||||
pmap[ny][nx] = t|(i<<8);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user