mirror of
https://github.com/The-Powder-Toy/The-Powder-Toy.git
synced 2025-09-01 04:01:56 +02:00
Fix crash with clear_sim if gravity not initialised, fix renderer
This commit is contained in:
@@ -10,17 +10,17 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
float *gravmap;//Maps to be used by the main thread
|
float *gravmap = NULL;//Maps to be used by the main thread
|
||||||
float *gravp;
|
float *gravp = NULL;
|
||||||
float *gravy;
|
float *gravy = NULL;
|
||||||
float *gravx;
|
float *gravx = NULL;
|
||||||
unsigned *gravmask;
|
unsigned *gravmask = NULL;
|
||||||
|
|
||||||
float *th_ogravmap;// Maps to be processed by the gravity thread
|
float *th_ogravmap = NULL;// Maps to be processed by the gravity thread
|
||||||
float *th_gravmap;
|
float *th_gravmap = NULL;
|
||||||
float *th_gravx;
|
float *th_gravx = NULL;
|
||||||
float *th_gravy;
|
float *th_gravy = NULL;
|
||||||
float *th_gravp;
|
float *th_gravp = NULL;
|
||||||
|
|
||||||
int gravwl_timeout = 0;
|
int gravwl_timeout = 0;
|
||||||
int gravityMode = 0; // starts enabled in "vertical" mode...
|
int gravityMode = 0; // starts enabled in "vertical" mode...
|
||||||
@@ -454,6 +454,8 @@ void gravity_mask()
|
|||||||
unsigned maskvalue;
|
unsigned maskvalue;
|
||||||
mask_el *t_mask_el = NULL;
|
mask_el *t_mask_el = NULL;
|
||||||
mask_el *c_mask_el = NULL;
|
mask_el *c_mask_el = NULL;
|
||||||
|
if(!gravmask)
|
||||||
|
return;
|
||||||
memset(checkmap, 0, sizeof(checkmap));
|
memset(checkmap, 0, sizeof(checkmap));
|
||||||
for(x = 0; x < XRES/CELL; x++)
|
for(x = 0; x < XRES/CELL; x++)
|
||||||
{
|
{
|
||||||
|
18
src/main.c
18
src/main.c
@@ -1153,10 +1153,14 @@ void clear_sim(void)
|
|||||||
memset(fire_r, 0, sizeof(fire_r));
|
memset(fire_r, 0, sizeof(fire_r));
|
||||||
memset(fire_g, 0, sizeof(fire_g));
|
memset(fire_g, 0, sizeof(fire_g));
|
||||||
memset(fire_b, 0, sizeof(fire_b));
|
memset(fire_b, 0, sizeof(fire_b));
|
||||||
memset(gravmask, 0xFFFFFFFF, (XRES/CELL)*(YRES/CELL)*sizeof(unsigned));
|
if(gravmask)
|
||||||
memset(gravy, 0, (XRES/CELL)*(YRES/CELL)*sizeof(float));
|
memset(gravmask, 0xFFFFFFFF, (XRES/CELL)*(YRES/CELL)*sizeof(unsigned));
|
||||||
memset(gravx, 0, (XRES/CELL)*(YRES/CELL)*sizeof(float));
|
if(gravy)
|
||||||
memset(gravp, 0, (XRES/CELL)*(YRES/CELL)*sizeof(float));
|
memset(gravy, 0, (XRES/CELL)*(YRES/CELL)*sizeof(float));
|
||||||
|
if(gravx)
|
||||||
|
memset(gravx, 0, (XRES/CELL)*(YRES/CELL)*sizeof(float));
|
||||||
|
if(gravp)
|
||||||
|
memset(gravp, 0, (XRES/CELL)*(YRES/CELL)*sizeof(float));
|
||||||
for(x = 0; x < XRES/CELL; x++){
|
for(x = 0; x < XRES/CELL; x++){
|
||||||
for(y = 0; y < YRES/CELL; y++){
|
for(y = 0; y < YRES/CELL; y++){
|
||||||
hv[y][x] = 273.15f+22.0f; //Set to room temperature
|
hv[y][x] = 273.15f+22.0f; //Set to room temperature
|
||||||
@@ -1470,7 +1474,11 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
pers_bg = calloc((XRES+BARSIZE)*YRES, PIXELSIZE);
|
pers_bg = calloc((XRES+BARSIZE)*YRES, PIXELSIZE);
|
||||||
|
|
||||||
prepare_alpha(4, 1.0f);
|
prepare_alpha(CELL, 1.0f);
|
||||||
|
prepare_graphicscache();
|
||||||
|
flm_data = generate_gradient(flm_data_colours, flm_data_pos, flm_data_points, 200);
|
||||||
|
plasma_data = generate_gradient(plasma_data_colours, plasma_data_pos, plasma_data_points, 200);
|
||||||
|
|
||||||
player.elem = player2.elem = PT_DUST;
|
player.elem = player2.elem = PT_DUST;
|
||||||
player.frames = player2.frames = 0;
|
player.frames = player2.frames = 0;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user