summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCracker64 <cracker642@gmail.com>2011-04-25 17:05:35 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2011-04-25 18:00:27 (GMT)
commit24f59050204017c641749c59a69e40d53074c028 (patch)
tree230f97023a3d8afb21f91e853db28c239b89c59a /src
parent4c153d2f34b0228e398ef3d1d935004dba6a9318 (diff)
downloadpowder-24f59050204017c641749c59a69e40d53074c028.zip
powder-24f59050204017c641749c59a69e40d53074c028.tar.gz
portal now uses particles as storage, so it keeps everything.
Diffstat (limited to 'src')
-rw-r--r--src/elements/prti.c6
-rw-r--r--src/elements/prto.c34
-rw-r--r--src/main.c2
3 files changed, 19 insertions, 23 deletions
diff --git a/src/elements/prti.c b/src/elements/prti.c
index d21bf56..7205844 100644
--- a/src/elements/prti.c
+++ b/src/elements/prti.c
@@ -34,11 +34,9 @@ int update_PRTI(UPDATE_FUNC_ARGS) {
continue;
}
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;
- portaltemp[parts[i].tmp][count-1][nnx] = parts[r>>8].temp;
- portalctype[parts[i].tmp][count-1][nnx] = parts[r>>8].ctype;
+ portalp[parts[i].tmp][count-1][nnx] = parts[r>>8];
if ((r&0xFF)==PT_SPRK)
part_change_type(r>>8,x+rx,y+ry,parts[r>>8].ctype);
else
diff --git a/src/elements/prto.c b/src/elements/prto.c
index 46c7250..4b6a576 100644
--- a/src/elements/prto.c
+++ b/src/elements/prto.c
@@ -34,29 +34,27 @@ int update_PRTO(UPDATE_FUNC_ARGS) {
randomness=1;
if (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+1,portal[parts[i].tmp][randomness-1][nnx]);
- create_part(-1,x+1,y-1,portal[parts[i].tmp][randomness-1][nnx]);
- create_part(-1,x,y-1,portal[parts[i].tmp][randomness-1][nnx]);
- create_part(-1,x,y+1,portal[parts[i].tmp][randomness-1][nnx]);
- create_part(-1,x-1,y+1,portal[parts[i].tmp][randomness-1][nnx]);
- create_part(-1,x-1,y,portal[parts[i].tmp][randomness-1][nnx]);
- create_part(-1,x-1,y-1,portal[parts[i].tmp][randomness-1][nnx]);
- portal[parts[i].tmp][randomness-1][nnx] = 0;
- portaltemp[parts[i].tmp][randomness-1][nnx] = 0;
+ create_part(-1,x+1,y,PT_SPRK);
+ create_part(-1,x+1,y+1,PT_SPRK);
+ create_part(-1,x+1,y-1,PT_SPRK);
+ create_part(-1,x,y-1,PT_SPRK);
+ create_part(-1,x,y+1,PT_SPRK);
+ create_part(-1,x-1,y+1,PT_SPRK);
+ create_part(-1,x-1,y,PT_SPRK);
+ create_part(-1,x-1,y-1,PT_SPRK);
+ portalp[parts[i].tmp][randomness-1][nnx] = emptyparticle;
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;
- parts[np].temp = portaltemp[parts[i].tmp][randomness-1][nnx];
- parts[np].ctype = portalctype[parts[i].tmp][randomness-1][nnx];
- portal[parts[i].tmp][randomness-1][nnx] = 0;
- portaltemp[parts[i].tmp][randomness-1][nnx] = 0;
- portalctype[parts[i].tmp][randomness-1][nnx] = 0;
+ parts[np] = portalp[parts[i].tmp][randomness-1][nnx];
+ parts[np].x = x+rx;
+ parts[np].y = y+ry;
+ portalp[parts[i].tmp][randomness-1][nnx] = emptyparticle;
break;
}
}
diff --git a/src/main.c b/src/main.c
index e40da3d..0271e55 100644
--- a/src/main.c
+++ b/src/main.c
@@ -932,7 +932,7 @@ void clear_sim(void)
memset(photons, 0, sizeof(photons));
memset(wireless, 0, sizeof(wireless));
memset(gol2, 0, sizeof(gol2));
- memset(portal, 0, sizeof(portal));
+ memset(portalp, 0, sizeof(portalp));
death = death2 = ISSPAWN1 = ISSPAWN2 = 0;
memset(pers_bg, 0, (XRES+BARSIZE)*YRES*PIXELSIZE);
memset(fire_bg, 0, XRES*YRES*PIXELSIZE);