mirror of
https://github.com/The-Powder-Toy/The-Powder-Toy.git
synced 2025-08-12 03:14:04 +02:00
Fixed wall eraser errors and loading of other saves.
This commit is contained in:
33
main.c
33
main.c
@@ -101,6 +101,7 @@ int legacy_enable = 0; //Used to disable new features such as heat, will be set
|
|||||||
int death = 0, framerender = 0;
|
int death = 0, framerender = 0;
|
||||||
int amd = 1;
|
int amd = 1;
|
||||||
int FPSB = 0;
|
int FPSB = 0;
|
||||||
|
int cracker = 1;
|
||||||
|
|
||||||
sign signs[MAXSIGNS];
|
sign signs[MAXSIGNS];
|
||||||
|
|
||||||
@@ -465,7 +466,38 @@ int parse_save(void *save, int size, int replace, int x0, int y0)
|
|||||||
for(x=bx0; x<bx0+bw; x++)
|
for(x=bx0; x<bx0+bw; x++)
|
||||||
{
|
{
|
||||||
if(d[p])
|
if(d[p])
|
||||||
|
{
|
||||||
bmap[y][x] = d[p];
|
bmap[y][x] = d[p];
|
||||||
|
if(cracker)
|
||||||
|
{
|
||||||
|
if(bmap[y][x]==1)
|
||||||
|
bmap[y][x]=11;
|
||||||
|
else if(bmap[y][x]==2)
|
||||||
|
bmap[y][x]=9;
|
||||||
|
else if(bmap[y][x]==3)
|
||||||
|
bmap[y][x]=8;
|
||||||
|
else if(bmap[y][x]==4)
|
||||||
|
bmap[y][x]=7;
|
||||||
|
else if(bmap[y][x]==5)
|
||||||
|
bmap[y][x]=5;
|
||||||
|
else if(bmap[y][x]==6)
|
||||||
|
bmap[y][x]=4;
|
||||||
|
else if(bmap[y][x]==7)
|
||||||
|
bmap[y][x]=3;
|
||||||
|
else if(bmap[y][x]==8)
|
||||||
|
bmap[y][x]=2;
|
||||||
|
else if(bmap[y][x]==9)
|
||||||
|
bmap[y][x]=12;
|
||||||
|
else if(bmap[y][x]==10)
|
||||||
|
bmap[y][x]=13;
|
||||||
|
else if(bmap[y][x]==11)
|
||||||
|
bmap[y][x]=14;
|
||||||
|
else if(bmap[y][x]==12)
|
||||||
|
bmap[y][x]=15;
|
||||||
|
else if(bmap[y][x]==13)
|
||||||
|
bmap[y][x]=20;
|
||||||
|
}
|
||||||
|
}
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
for(y=by0; y<by0+bh; y++)
|
for(y=by0; y<by0+bh; y++)
|
||||||
@@ -665,6 +697,7 @@ corrupt:
|
|||||||
memset(signs, 0, sizeof(signs));
|
memset(signs, 0, sizeof(signs));
|
||||||
memset(parts, 0, sizeof(particle)*NPART);
|
memset(parts, 0, sizeof(particle)*NPART);
|
||||||
memset(bmap, 0, sizeof(bmap));
|
memset(bmap, 0, sizeof(bmap));
|
||||||
|
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
53
powder.c
53
powder.c
@@ -1911,15 +1911,18 @@ player[23] = 1;
|
|||||||
}
|
}
|
||||||
if(t==PT_FWRK)
|
if(t==PT_FWRK)
|
||||||
{
|
{
|
||||||
if(parts[i].temp>400&&10>rand()%10000&&parts[i].life==0&&!pmap[y-1][x])
|
if(parts[i].temp>400&&(9+parts[i].temp/40)>rand()%100000&&parts[i].life==0&&!pmap[y-1][x])
|
||||||
{
|
{
|
||||||
|
|
||||||
create_part(-1, x , y-1 , PT_FWRK);
|
create_part(-1, x , y-1 , PT_FWRK);
|
||||||
r = pmap[y-1][x];
|
r = pmap[y-1][x];
|
||||||
parts[r>>8].vy = rand()%8-22;
|
if(parts[r>>8].type==PT_FWRK)
|
||||||
parts[r>>8].vx = rand()%20-rand()%20;
|
{
|
||||||
parts[r>>8].life=rand()%30+50;
|
parts[r>>8].vy = rand()%8-22;
|
||||||
parts[i].type=PT_NONE;
|
parts[r>>8].vx = rand()%20-rand()%20;
|
||||||
|
parts[r>>8].life=rand()%30+50;
|
||||||
|
parts[i].type=PT_NONE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(parts[i].life>1)
|
if(parts[i].life>1)
|
||||||
{
|
{
|
||||||
@@ -1939,6 +1942,8 @@ player[23] = 1;
|
|||||||
{
|
{
|
||||||
if(5>=rand()%8)
|
if(5>=rand()%8)
|
||||||
{
|
{
|
||||||
|
if(!pmap[y+ny][x+nx])
|
||||||
|
{
|
||||||
create_part(-1, x+nx, y+ny , PT_DUST);
|
create_part(-1, x+nx, y+ny , PT_DUST);
|
||||||
pv[y/CELL][x/CELL] += 2.00f*CFDS;
|
pv[y/CELL][x/CELL] += 2.00f*CFDS;
|
||||||
a= pmap[y+ny][x+nx];
|
a= pmap[y+ny][x+nx];
|
||||||
@@ -1952,6 +1957,7 @@ player[23] = 1;
|
|||||||
parts[a>>8].ctype=e;
|
parts[a>>8].ctype=e;
|
||||||
parts[a>>8].temp= rand()%20+600;
|
parts[a>>8].temp= rand()%20+600;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -2180,7 +2186,7 @@ void update_particles(pixel *vid)
|
|||||||
{
|
{
|
||||||
for(x=0; x<XRES/CELL; x++)
|
for(x=0; x<XRES/CELL; x++)
|
||||||
{
|
{
|
||||||
if(bmap[y][x]==1)
|
if(bmap[y][x]==11)
|
||||||
for(j=0; j<CELL; j++)
|
for(j=0; j<CELL; j++)
|
||||||
for(i=0; i<CELL; i++)
|
for(i=0; i<CELL; i++)
|
||||||
{
|
{
|
||||||
@@ -2189,14 +2195,14 @@ void update_particles(pixel *vid)
|
|||||||
drawblob(vid, (x*CELL+i), (y*CELL+j), 0x80, 0x80, 0x80);
|
drawblob(vid, (x*CELL+i), (y*CELL+j), 0x80, 0x80, 0x80);
|
||||||
|
|
||||||
}
|
}
|
||||||
if(bmap[y][x]==2)
|
if(bmap[y][x]==9)
|
||||||
for(j=0; j<CELL; j+=2)
|
for(j=0; j<CELL; j+=2)
|
||||||
for(i=(j>>1)&1; i<CELL; i+=2)
|
for(i=(j>>1)&1; i<CELL; i+=2)
|
||||||
{
|
{
|
||||||
vid[(y*CELL+j)*(XRES+BARSIZE)+(x*CELL+i)] = PIXPACK(0x808080);
|
vid[(y*CELL+j)*(XRES+BARSIZE)+(x*CELL+i)] = PIXPACK(0x808080);
|
||||||
drawblob(vid, (x*CELL+i), (y*CELL+j), 0x80, 0x80, 0x80);
|
drawblob(vid, (x*CELL+i), (y*CELL+j), 0x80, 0x80, 0x80);
|
||||||
}
|
}
|
||||||
if(bmap[y][x]==3)
|
if(bmap[y][x]==8)
|
||||||
{
|
{
|
||||||
for(j=0; j<CELL; j++)
|
for(j=0; j<CELL; j++)
|
||||||
for(i=0; i<CELL; i++)
|
for(i=0; i<CELL; i++)
|
||||||
@@ -2226,7 +2232,7 @@ void update_particles(pixel *vid)
|
|||||||
vid[(y*CELL+j)*(XRES+BARSIZE)+(x*CELL+i)] = PIXPACK(0x8080FF);
|
vid[(y*CELL+j)*(XRES+BARSIZE)+(x*CELL+i)] = PIXPACK(0x8080FF);
|
||||||
drawblob(vid, (x*CELL+i), (y*CELL+j), 0x80, 0x80, 0xFF);
|
drawblob(vid, (x*CELL+i), (y*CELL+j), 0x80, 0x80, 0xFF);
|
||||||
}
|
}
|
||||||
if(bmap[y][x]==6)
|
if(bmap[y][x]==7)
|
||||||
{
|
{
|
||||||
for(j=0; j<CELL; j+=2)
|
for(j=0; j<CELL; j+=2)
|
||||||
for(i=(j>>1)&1; i<CELL; i+=2)
|
for(i=(j>>1)&1; i<CELL; i+=2)
|
||||||
@@ -2250,7 +2256,7 @@ void update_particles(pixel *vid)
|
|||||||
fire_b[y][x] = cb;
|
fire_b[y][x] = cb;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(bmap[y][x]==7)
|
if(bmap[y][x]==3)
|
||||||
{
|
{
|
||||||
if(emap[y][x])
|
if(emap[y][x])
|
||||||
{
|
{
|
||||||
@@ -2286,7 +2292,7 @@ void update_particles(pixel *vid)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(bmap[y][x]==8)
|
if(bmap[y][x]==2)
|
||||||
{
|
{
|
||||||
for(j=0; j<CELL; j++)
|
for(j=0; j<CELL; j++)
|
||||||
for(i=0; i<CELL; i++)
|
for(i=0; i<CELL; i++)
|
||||||
@@ -2317,7 +2323,7 @@ void update_particles(pixel *vid)
|
|||||||
fire_b[y][x] = cb;
|
fire_b[y][x] = cb;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(bmap[y][x]==11)
|
if(bmap[y][x]==14)
|
||||||
{
|
{
|
||||||
for(j=0; j<CELL; j++)
|
for(j=0; j<CELL; j++)
|
||||||
for(i=0; i<CELL; i++)
|
for(i=0; i<CELL; i++)
|
||||||
@@ -2344,7 +2350,7 @@ void update_particles(pixel *vid)
|
|||||||
fire_b[y][x] = cb;
|
fire_b[y][x] = cb;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(bmap[y][x]==13)
|
if(bmap[y][x]==20)
|
||||||
{
|
{
|
||||||
for(j=0; j<CELL; j+=2)
|
for(j=0; j<CELL; j+=2)
|
||||||
{
|
{
|
||||||
@@ -2355,7 +2361,7 @@ void update_particles(pixel *vid)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(bmap[y][x]==9)
|
if(bmap[y][x]==12)
|
||||||
{
|
{
|
||||||
for(j=0; j<CELL; j+=2)
|
for(j=0; j<CELL; j+=2)
|
||||||
{
|
{
|
||||||
@@ -2366,7 +2372,7 @@ void update_particles(pixel *vid)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(bmap[y][x]==10)
|
if(bmap[y][x]==13)
|
||||||
{
|
{
|
||||||
for(j=0; j<CELL; j+=2)
|
for(j=0; j<CELL; j+=2)
|
||||||
{
|
{
|
||||||
@@ -2377,7 +2383,7 @@ void update_particles(pixel *vid)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(bmap[y][x]==12)
|
if(bmap[y][x]==15)
|
||||||
{
|
{
|
||||||
if(emap[y][x])
|
if(emap[y][x])
|
||||||
{
|
{
|
||||||
@@ -2878,21 +2884,18 @@ int create_parts(int x, int y, int r, int c)
|
|||||||
{
|
{
|
||||||
i = ox;
|
i = ox;
|
||||||
j = oy;
|
j = oy;
|
||||||
for(q=122;q<141;q++)
|
q = bmap[j][i]+120;
|
||||||
{
|
|
||||||
if(bmap[j][i]==q-120)
|
|
||||||
{
|
{
|
||||||
if(q==PSR)
|
if(q==PSR)
|
||||||
{
|
{
|
||||||
bmap[j][i]=0;
|
bmap[j][i]=0;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -2915,7 +2918,7 @@ int create_parts(int x, int y, int r, int c)
|
|||||||
{
|
{
|
||||||
i = ox;
|
i = ox;
|
||||||
j = oy;
|
j = oy;
|
||||||
if(b==4)
|
if(b==7)
|
||||||
{
|
{
|
||||||
fvx[j][i] = 0.0f;
|
fvx[j][i] = 0.0f;
|
||||||
fvy[j][i] = 0.0f;
|
fvy[j][i] = 0.0f;
|
||||||
|
Reference in New Issue
Block a user