summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjacksonmj <jacksonmj@jacksonmj.none>2011-01-28 21:38:36 (GMT)
committer jacksonmj <jacksonmj@jacksonmj.none>2011-01-28 21:46:40 (GMT)
commita5ff51f5a508b35980502ebce46c4a3822ecb4b4 (patch)
treebb7ce78fd6763688375c31397cf46e243711124e /src
parent079d35f1a03088aca57be633f75c6e60d62a9fb3 (diff)
downloadpowder-a5ff51f5a508b35980502ebce46c4a3822ecb4b4.zip
powder-a5ff51f5a508b35980502ebce46c4a3822ecb4b4.tar.gz
Restore cracker64 changes overwritten by merge
Diffstat (limited to 'src')
-rw-r--r--src/main.c43
-rw-r--r--src/powder.c10
2 files changed, 30 insertions, 23 deletions
diff --git a/src/main.c b/src/main.c
index 68c1140..46267c2 100644
--- a/src/main.c
+++ b/src/main.c
@@ -492,6 +492,10 @@ int parse_save(void *save, int size, int replace, int x0, int y0)
memset(vx, 0, sizeof(vx));
memset(vy, 0, sizeof(vy));
memset(pv, 0, sizeof(pv));
+ memset(photons, 0, sizeof(photons));
+ memset(wireless, 0, sizeof(wireless));
+ memset(gol2, 0, sizeof(gol2));
+ memset(portal, 0, sizeof(portal));
death = death2 = ISSPAWN1 = ISSPAWN2 = 0;
}
@@ -714,10 +718,10 @@ int parse_save(void *save, int size, int replace, int x0, int y0)
ttv |= (d[p++]);
parts[i-1].tmp = ttv;
if(ptypes[parts[i-1].type].properties&PROP_LIFE && !parts[i-1].tmp)
- for(q = 1; q<NGOL ; q++){
- if(parts[i-1].type==goltype[q-1] && grule[q][9]==2)
- parts[i-1].tmp = grule[q][9]-1;
- }
+ for(q = 1; q<NGOL ; q++) {
+ if(parts[i-1].type==goltype[q-1] && grule[q][9]==2)
+ parts[i-1].tmp = grule[q][9]-1;
+ }
} else {
p+=2;
}
@@ -1495,13 +1499,25 @@ int main(int argc, char *argv[])
if (sdl_key=='=')
{
int nx, ny;
- for (nx = 0; nx<XRES/CELL; nx++)
- for (ny = 0; ny<YRES/CELL; ny++)
- {
- pv[ny][nx] = 0;
- vx[ny][nx] = 0;
- vy[ny][nx] = 0;
- }
+ if(sdl_mod & (KMOD_CTRL))
+ {
+ for(i=0; i<NPART; i++)
+ if(parts[i].type==PT_SPRK)
+ {
+ parts[i].type = parts[i].ctype;
+ parts[i].life = 0;
+ }
+ }
+ else
+ {
+ for (nx = 0; nx<XRES/CELL; nx++)
+ for (ny = 0; ny<YRES/CELL; ny++)
+ {
+ pv[ny][nx] = 0;
+ vx[ny][nx] = 0;
+ vy[ny][nx] = 0;
+ }
+ }
}
if (sdl_key=='w' && (!isplayer2 || (sdl_mod & (KMOD_SHIFT)))) //Gravity, by Moach
@@ -2036,7 +2052,6 @@ int main(int argc, char *argv[])
memset(bmap, 0, sizeof(bmap));
memset(emap, 0, sizeof(emap));
memset(parts, 0, sizeof(particle)*NPART);
-
memset(photons, 0, sizeof(photons));
memset(wireless, 0, sizeof(wireless));
memset(gol2, 0, sizeof(gol2));
@@ -2098,10 +2113,6 @@ int main(int argc, char *argv[])
if (x>=19 && x<=35 && svf_last && svf_open && !bq) {
//int tpval = sys_pause;
parse_save(svf_last, svf_lsize, 1, 0, 0);
- for (j= 0; j<99; j++) { //reset wifi on reload
- wireless[j][0] = 0;
- wireless[j][1] = 0;
- }
//sys_pause = tpval;
}
if (x>=(XRES+BARSIZE-(510-476)) && x<=(XRES+BARSIZE-(510-491)) && !bq)
diff --git a/src/powder.c b/src/powder.c
index 385ac5d..add5f48 100644
--- a/src/powder.c
+++ b/src/powder.c
@@ -577,8 +577,7 @@ inline int create_part(int p, int x, int y, int t)
if (t==PT_SPRK)
{
- if (!((pmap[y][x]&0xFF)==PT_INST||(ptypes[pmap[y][x]&0xFF].properties&PROP_CONDUCTS))
- || (pmap[y][x]&0xFF)==PT_QRTZ)
+ if (!((pmap[y][x]&0xFF)==PT_INST||(ptypes[pmap[y][x]&0xFF].properties&PROP_CONDUCTS)))
return -1;
if (parts[pmap[y][x]>>8].life!=0)
return -1;
@@ -604,8 +603,6 @@ inline int create_part(int p, int x, int y, int t)
}
}
}
- if (photons[y][x] && t==PT_PHOT)
- return -1;
if (pfree == -1)
return -1;
i = pfree;
@@ -967,7 +964,6 @@ inline void delete_part(int x, int y)
}
else
return;
-
}
#if defined(WIN32) && !defined(__GNUC__)
@@ -1124,7 +1120,7 @@ int nearest_part(int ci, int t)
void update_particles_i(pixel *vid, int start, int inc)
{
- int i, j, x, y, t, nx, ny, r, surround_space, s, lt, rt, nt, nnx, nny, q, golnum, goldelete, z;
+ int i, j, x, y, t, nx, ny, r, surround_space, s, lt, rt, nt, nnx, nny, q, golnum, goldelete, z, neighbors;
float mv, dx, dy, ix, iy, lx, ly, nrx, nry, dp;
int fin_x, fin_y, clear_x, clear_y;
float fin_xf, fin_yf, clear_xf, clear_yf;
@@ -1316,7 +1312,7 @@ void update_particles_i(pixel *vid, int start, int inc)
for (nx=CELL; nx<XRES-CELL; nx++)
for (ny=CELL; ny<YRES-CELL; ny++)
{
- int neighbors = gol2[nx][ny][0];
+ neighbors = gol2[nx][ny][0];
if (neighbors==0)
continue;
for ( golnum = 1; golnum<NGOL; golnum++)