Move reset code to own function
Also clear persistent view when loading a save or clearing the screen.
This commit is contained in:
parent
32f8e85d50
commit
a2091ede76
@ -176,6 +176,7 @@ int thumb_cache_find(char *id, void **thumb, int *size);
|
||||
void *build_thumb(int *size, int bzip2);
|
||||
void *build_save(int *size, int x0, int y0, int w, int h);
|
||||
int parse_save(void *save, int size, int replace, int x0, int y0);
|
||||
void clear_sim(void);
|
||||
void del_stamp(int d);
|
||||
void sdl_seticon(void);
|
||||
#endif
|
||||
|
@ -46,6 +46,7 @@ extern unsigned char fire_b[YRES/CELL][XRES/CELL];
|
||||
|
||||
extern unsigned int fire_alpha[CELL*3][CELL*3];
|
||||
extern pixel *fire_bg;
|
||||
extern pixel *pers_bg;
|
||||
|
||||
pixel *rescale_img(pixel *src, int sw, int sh, int *qw, int *qh, int f);
|
||||
|
||||
|
@ -31,6 +31,7 @@ unsigned char fire_b[YRES/CELL][XRES/CELL];
|
||||
|
||||
unsigned int fire_alpha[CELL*3][CELL*3];
|
||||
pixel *fire_bg;
|
||||
pixel *pers_bg;
|
||||
|
||||
pixel *rescale_img(pixel *src, int sw, int sh, int *qw, int *qh, int f)
|
||||
{
|
||||
|
68
src/main.c
68
src/main.c
@ -553,19 +553,7 @@ int parse_save(void *save, int size, int replace, int x0, int y0)
|
||||
gravityMode = 0;
|
||||
airMode = 0;
|
||||
}
|
||||
memset(bmap, 0, sizeof(bmap));
|
||||
memset(emap, 0, sizeof(emap));
|
||||
memset(signs, 0, sizeof(signs));
|
||||
memset(parts, 0, sizeof(particle)*NPART);
|
||||
memset(pmap, 0, sizeof(pmap));
|
||||
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;
|
||||
clear_sim();
|
||||
}
|
||||
|
||||
// make a catalog of free parts
|
||||
@ -897,13 +885,35 @@ corrupt:
|
||||
if (replace)
|
||||
{
|
||||
legacy_enable = 0;
|
||||
memset(signs, 0, sizeof(signs));
|
||||
memset(parts, 0, sizeof(particle)*NPART);
|
||||
memset(bmap, 0, sizeof(bmap));
|
||||
clear_sim();
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
void clear_sim(void)
|
||||
{
|
||||
memset(bmap, 0, sizeof(bmap));
|
||||
memset(emap, 0, sizeof(emap));
|
||||
memset(signs, 0, sizeof(signs));
|
||||
memset(parts, 0, sizeof(particle)*NPART);
|
||||
memset(pmap, 0, sizeof(pmap));
|
||||
memset(pv, 0, sizeof(pv));
|
||||
memset(vx, 0, sizeof(vx));
|
||||
memset(vy, 0, sizeof(vy));
|
||||
memset(fvx, 0, sizeof(fvx));
|
||||
memset(fvy, 0, sizeof(fvy));
|
||||
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;
|
||||
memset(pers_bg, 0, (XRES+BARSIZE)*YRES*PIXELSIZE);
|
||||
memset(fire_bg, 0, XRES*YRES*PIXELSIZE);
|
||||
memset(fire_r, 0, sizeof(fire_r));
|
||||
memset(fire_g, 0, sizeof(fire_g));
|
||||
memset(fire_b, 0, sizeof(fire_b));
|
||||
}
|
||||
|
||||
// stamps library
|
||||
|
||||
stamp stamps[STAMP_MAX];//[STAMP_X*STAMP_Y];
|
||||
@ -1188,7 +1198,7 @@ int main(int argc, char *argv[])
|
||||
int pastFPS = 0;
|
||||
int past = 0;
|
||||
pixel *vid_buf=calloc((XRES+BARSIZE)*(YRES+MENUSIZE), PIXELSIZE);
|
||||
pixel *pers_bg=calloc((XRES+BARSIZE)*YRES, PIXELSIZE);
|
||||
pers_bg = calloc((XRES+BARSIZE)*YRES, PIXELSIZE);
|
||||
void *http_ver_check;
|
||||
void *http_session_check = NULL;
|
||||
char *ver_data=NULL, *check_data=NULL, *tmp;
|
||||
@ -1248,7 +1258,7 @@ int main(int argc, char *argv[])
|
||||
parts[NPART-1].life = -1;
|
||||
pfree = 0;
|
||||
fire_bg=calloc(XRES*YRES, PIXELSIZE);
|
||||
memset(signs, 0, sizeof(signs));
|
||||
clear_sim();
|
||||
|
||||
//fbi_img = render_packed_rgb(fbi, FBI_W, FBI_H, FBI_CMP);
|
||||
|
||||
@ -2255,19 +2265,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
if (x>=(XRES+BARSIZE-(510-367)) && x<=(XRES+BARSIZE-(510-383)) && !bq)
|
||||
{
|
||||
memset(signs, 0, sizeof(signs));
|
||||
memset(pv, 0, sizeof(pv));
|
||||
memset(vx, 0, sizeof(vx));
|
||||
memset(vy, 0, sizeof(vy));
|
||||
memset(fvx, 0, sizeof(fvx));
|
||||
memset(fvy, 0, sizeof(fvy));
|
||||
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));
|
||||
memset(portal, 0, sizeof(portal));
|
||||
clear_sim();
|
||||
for (i=0; i<NPART-1; i++)
|
||||
parts[i].life = i+1;
|
||||
parts[NPART-1].life = -1;
|
||||
@ -2284,16 +2282,8 @@ int main(int argc, char *argv[])
|
||||
svf_description[0] = 0;
|
||||
gravityMode = 0;
|
||||
airMode = 0;
|
||||
death = death2 = 0;
|
||||
isplayer2 = 0;
|
||||
isplayer = 0;
|
||||
ISSPAWN1 = 0;
|
||||
ISSPAWN2 = 0;
|
||||
|
||||
memset(fire_bg, 0, XRES*YRES*PIXELSIZE);
|
||||
memset(fire_r, 0, sizeof(fire_r));
|
||||
memset(fire_g, 0, sizeof(fire_g));
|
||||
memset(fire_b, 0, sizeof(fire_b));
|
||||
}
|
||||
if (x>=(XRES+BARSIZE-(510-385)) && x<=(XRES+BARSIZE-(510-476)))
|
||||
{
|
||||
|
Reference in New Issue
Block a user