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_thumb(int *size, int bzip2);
|
||||||
void *build_save(int *size, int x0, int y0, int w, int h);
|
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);
|
int parse_save(void *save, int size, int replace, int x0, int y0);
|
||||||
|
void clear_sim(void);
|
||||||
void del_stamp(int d);
|
void del_stamp(int d);
|
||||||
void sdl_seticon(void);
|
void sdl_seticon(void);
|
||||||
#endif
|
#endif
|
||||||
|
@ -46,6 +46,7 @@ extern unsigned char fire_b[YRES/CELL][XRES/CELL];
|
|||||||
|
|
||||||
extern unsigned int fire_alpha[CELL*3][CELL*3];
|
extern unsigned int fire_alpha[CELL*3][CELL*3];
|
||||||
extern pixel *fire_bg;
|
extern pixel *fire_bg;
|
||||||
|
extern pixel *pers_bg;
|
||||||
|
|
||||||
pixel *rescale_img(pixel *src, int sw, int sh, int *qw, int *qh, int f);
|
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];
|
unsigned int fire_alpha[CELL*3][CELL*3];
|
||||||
pixel *fire_bg;
|
pixel *fire_bg;
|
||||||
|
pixel *pers_bg;
|
||||||
|
|
||||||
pixel *rescale_img(pixel *src, int sw, int sh, int *qw, int *qh, int f)
|
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;
|
gravityMode = 0;
|
||||||
airMode = 0;
|
airMode = 0;
|
||||||
}
|
}
|
||||||
memset(bmap, 0, sizeof(bmap));
|
clear_sim();
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// make a catalog of free parts
|
// make a catalog of free parts
|
||||||
@ -897,13 +885,35 @@ corrupt:
|
|||||||
if (replace)
|
if (replace)
|
||||||
{
|
{
|
||||||
legacy_enable = 0;
|
legacy_enable = 0;
|
||||||
memset(signs, 0, sizeof(signs));
|
clear_sim();
|
||||||
memset(parts, 0, sizeof(particle)*NPART);
|
|
||||||
memset(bmap, 0, sizeof(bmap));
|
|
||||||
}
|
}
|
||||||
return 1;
|
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
|
// stamps library
|
||||||
|
|
||||||
stamp stamps[STAMP_MAX];//[STAMP_X*STAMP_Y];
|
stamp stamps[STAMP_MAX];//[STAMP_X*STAMP_Y];
|
||||||
@ -1188,7 +1198,7 @@ int main(int argc, char *argv[])
|
|||||||
int pastFPS = 0;
|
int pastFPS = 0;
|
||||||
int past = 0;
|
int past = 0;
|
||||||
pixel *vid_buf=calloc((XRES+BARSIZE)*(YRES+MENUSIZE), PIXELSIZE);
|
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_ver_check;
|
||||||
void *http_session_check = NULL;
|
void *http_session_check = NULL;
|
||||||
char *ver_data=NULL, *check_data=NULL, *tmp;
|
char *ver_data=NULL, *check_data=NULL, *tmp;
|
||||||
@ -1248,7 +1258,7 @@ int main(int argc, char *argv[])
|
|||||||
parts[NPART-1].life = -1;
|
parts[NPART-1].life = -1;
|
||||||
pfree = 0;
|
pfree = 0;
|
||||||
fire_bg=calloc(XRES*YRES, PIXELSIZE);
|
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);
|
//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)
|
if (x>=(XRES+BARSIZE-(510-367)) && x<=(XRES+BARSIZE-(510-383)) && !bq)
|
||||||
{
|
{
|
||||||
memset(signs, 0, sizeof(signs));
|
clear_sim();
|
||||||
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));
|
|
||||||
for (i=0; i<NPART-1; i++)
|
for (i=0; i<NPART-1; i++)
|
||||||
parts[i].life = i+1;
|
parts[i].life = i+1;
|
||||||
parts[NPART-1].life = -1;
|
parts[NPART-1].life = -1;
|
||||||
@ -2284,16 +2282,8 @@ int main(int argc, char *argv[])
|
|||||||
svf_description[0] = 0;
|
svf_description[0] = 0;
|
||||||
gravityMode = 0;
|
gravityMode = 0;
|
||||||
airMode = 0;
|
airMode = 0;
|
||||||
death = death2 = 0;
|
|
||||||
isplayer2 = 0;
|
isplayer2 = 0;
|
||||||
isplayer = 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)))
|
if (x>=(XRES+BARSIZE-(510-385)) && x<=(XRES+BARSIZE-(510-476)))
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user