portal now uses particles as storage, so it keeps everything.
This commit is contained in:
parent
4c153d2f34
commit
24f5905020
@ -777,9 +777,8 @@ static int lolzrule[9][9] =
|
|||||||
{0,1,0,0,0,0,0,1,0},
|
{0,1,0,0,0,0,0,1,0},
|
||||||
};
|
};
|
||||||
#define CHANNELS ((int)(MAX_TEMP-73.15f)/100+2)
|
#define CHANNELS ((int)(MAX_TEMP-73.15f)/100+2)
|
||||||
int portal[CHANNELS][8][80];
|
particle portalp[CHANNELS][8][80];
|
||||||
float portaltemp[CHANNELS][8][80];
|
const particle emptyparticle;
|
||||||
int portalctype[CHANNELS][8][80];
|
|
||||||
int wireless[CHANNELS][2];
|
int wireless[CHANNELS][2];
|
||||||
|
|
||||||
extern int isplayer;
|
extern int isplayer;
|
||||||
|
@ -34,11 +34,9 @@ int update_PRTI(UPDATE_FUNC_ARGS) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
for ( nnx=0; nnx<80; nnx++)
|
for ( nnx=0; nnx<80; nnx++)
|
||||||
if (!portal[parts[i].tmp][count-1][nnx])
|
if (!portalp[parts[i].tmp][count-1][nnx].type)
|
||||||
{
|
{
|
||||||
portal[parts[i].tmp][count-1][nnx] = parts[r>>8].type;
|
portalp[parts[i].tmp][count-1][nnx] = parts[r>>8];
|
||||||
portaltemp[parts[i].tmp][count-1][nnx] = parts[r>>8].temp;
|
|
||||||
portalctype[parts[i].tmp][count-1][nnx] = parts[r>>8].ctype;
|
|
||||||
if ((r&0xFF)==PT_SPRK)
|
if ((r&0xFF)==PT_SPRK)
|
||||||
part_change_type(r>>8,x+rx,y+ry,parts[r>>8].ctype);
|
part_change_type(r>>8,x+rx,y+ry,parts[r>>8].ctype);
|
||||||
else
|
else
|
||||||
|
@ -34,29 +34,27 @@ int update_PRTO(UPDATE_FUNC_ARGS) {
|
|||||||
randomness=1;
|
randomness=1;
|
||||||
if (randomness>8)
|
if (randomness>8)
|
||||||
randomness=8;
|
randomness=8;
|
||||||
if (portal[parts[i].tmp][randomness-1][nnx]==PT_SPRK)// TODO: make it look better, spark creation
|
if (portalp[parts[i].tmp][randomness-1][nnx].type==PT_SPRK)// TODO: make it look better, spark creation
|
||||||
{
|
{
|
||||||
create_part(-1,x+1,y,portal[parts[i].tmp][randomness-1][nnx]);
|
create_part(-1,x+1,y,PT_SPRK);
|
||||||
create_part(-1,x+1,y+1,portal[parts[i].tmp][randomness-1][nnx]);
|
create_part(-1,x+1,y+1,PT_SPRK);
|
||||||
create_part(-1,x+1,y-1,portal[parts[i].tmp][randomness-1][nnx]);
|
create_part(-1,x+1,y-1,PT_SPRK);
|
||||||
create_part(-1,x,y-1,portal[parts[i].tmp][randomness-1][nnx]);
|
create_part(-1,x,y-1,PT_SPRK);
|
||||||
create_part(-1,x,y+1,portal[parts[i].tmp][randomness-1][nnx]);
|
create_part(-1,x,y+1,PT_SPRK);
|
||||||
create_part(-1,x-1,y+1,portal[parts[i].tmp][randomness-1][nnx]);
|
create_part(-1,x-1,y+1,PT_SPRK);
|
||||||
create_part(-1,x-1,y,portal[parts[i].tmp][randomness-1][nnx]);
|
create_part(-1,x-1,y,PT_SPRK);
|
||||||
create_part(-1,x-1,y-1,portal[parts[i].tmp][randomness-1][nnx]);
|
create_part(-1,x-1,y-1,PT_SPRK);
|
||||||
portal[parts[i].tmp][randomness-1][nnx] = 0;
|
portalp[parts[i].tmp][randomness-1][nnx] = emptyparticle;
|
||||||
portaltemp[parts[i].tmp][randomness-1][nnx] = 0;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (portal[parts[i].tmp][randomness-1][nnx])
|
else if (portalp[parts[i].tmp][randomness-1][nnx].type)
|
||||||
{
|
{
|
||||||
np = create_part(-1,x+rx,y+ry,portal[parts[i].tmp][randomness-1][nnx]);
|
np = create_part(-1,x+rx,y+ry,portalp[parts[i].tmp][randomness-1][nnx].type);
|
||||||
if (np<0) continue;
|
if (np<0) continue;
|
||||||
parts[np].temp = portaltemp[parts[i].tmp][randomness-1][nnx];
|
parts[np] = portalp[parts[i].tmp][randomness-1][nnx];
|
||||||
parts[np].ctype = portalctype[parts[i].tmp][randomness-1][nnx];
|
parts[np].x = x+rx;
|
||||||
portal[parts[i].tmp][randomness-1][nnx] = 0;
|
parts[np].y = y+ry;
|
||||||
portaltemp[parts[i].tmp][randomness-1][nnx] = 0;
|
portalp[parts[i].tmp][randomness-1][nnx] = emptyparticle;
|
||||||
portalctype[parts[i].tmp][randomness-1][nnx] = 0;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -932,7 +932,7 @@ void clear_sim(void)
|
|||||||
memset(photons, 0, sizeof(photons));
|
memset(photons, 0, sizeof(photons));
|
||||||
memset(wireless, 0, sizeof(wireless));
|
memset(wireless, 0, sizeof(wireless));
|
||||||
memset(gol2, 0, sizeof(gol2));
|
memset(gol2, 0, sizeof(gol2));
|
||||||
memset(portal, 0, sizeof(portal));
|
memset(portalp, 0, sizeof(portalp));
|
||||||
death = death2 = ISSPAWN1 = ISSPAWN2 = 0;
|
death = death2 = ISSPAWN1 = ISSPAWN2 = 0;
|
||||||
memset(pers_bg, 0, (XRES+BARSIZE)*YRES*PIXELSIZE);
|
memset(pers_bg, 0, (XRES+BARSIZE)*YRES*PIXELSIZE);
|
||||||
memset(fire_bg, 0, XRES*YRES*PIXELSIZE);
|
memset(fire_bg, 0, XRES*YRES*PIXELSIZE);
|
||||||
|
Loading…
Reference in New Issue
Block a user