Fix some gravity memsets, remove gravx/y
This commit is contained in:
parent
934d1da66e
commit
c819e2655e
@ -8,9 +8,6 @@ extern int gravwl_timeout;
|
|||||||
extern int gravityMode;
|
extern int gravityMode;
|
||||||
|
|
||||||
extern float gravmap[YRES/CELL][XRES/CELL]; //Maps to be used by the main thread
|
extern float gravmap[YRES/CELL][XRES/CELL]; //Maps to be used by the main thread
|
||||||
extern float gravx[YRES/CELL][XRES/CELL];
|
|
||||||
extern float gravy[YRES/CELL][XRES/CELL];
|
|
||||||
extern float gravp[YRES/CELL][XRES/CELL];
|
|
||||||
extern float *gravpf;
|
extern float *gravpf;
|
||||||
extern float *gravxf;
|
extern float *gravxf;
|
||||||
extern float *gravyf;
|
extern float *gravyf;
|
||||||
|
@ -10,9 +10,6 @@
|
|||||||
|
|
||||||
|
|
||||||
float gravmap[YRES/CELL][XRES/CELL]; //Maps to be used by the main thread
|
float gravmap[YRES/CELL][XRES/CELL]; //Maps to be used by the main thread
|
||||||
float gravx[YRES/CELL][XRES/CELL];
|
|
||||||
float gravy[YRES/CELL][XRES/CELL];
|
|
||||||
float gravp[YRES/CELL][XRES/CELL];
|
|
||||||
float *gravpf;
|
float *gravpf;
|
||||||
float *gravyf;
|
float *gravyf;
|
||||||
float *gravxf;
|
float *gravxf;
|
||||||
@ -91,9 +88,6 @@ void gravity_update_async()
|
|||||||
if(result) //Did the gravity thread finish?
|
if(result) //Did the gravity thread finish?
|
||||||
{
|
{
|
||||||
memcpy(th_gravmap, gravmap, sizeof(gravmap)); //Move our current gravmap to be processed other thread
|
memcpy(th_gravmap, gravmap, sizeof(gravmap)); //Move our current gravmap to be processed other thread
|
||||||
//memcpy(gravy, th_gravy, sizeof(gravy)); //Hmm, Gravy
|
|
||||||
//memcpy(gravx, th_gravx, sizeof(gravx)); //Move the processed velocity maps to be used
|
|
||||||
//memcpy(gravp, th_gravp, sizeof(gravp));
|
|
||||||
|
|
||||||
if (!sys_pause||framerender){ //Only update if not paused
|
if (!sys_pause||framerender){ //Only update if not paused
|
||||||
//Switch the full size gravmaps, we don't really need the two above any more
|
//Switch the full size gravmaps, we don't really need the two above any more
|
||||||
@ -116,8 +110,9 @@ void gravity_update_async()
|
|||||||
}
|
}
|
||||||
pthread_mutex_unlock(&gravmutex);
|
pthread_mutex_unlock(&gravmutex);
|
||||||
//Apply the gravity mask
|
//Apply the gravity mask
|
||||||
membwand(gravy, gravmask, sizeof(gravy), sizeof(gravmask));
|
//TODO: doesn't work at the moment, gravx and gravy aren't used any more
|
||||||
membwand(gravx, gravmask, sizeof(gravx), sizeof(gravmask));
|
//membwand(gravy, gravmask, sizeof(gravy), sizeof(gravmask));
|
||||||
|
//membwand(gravx, gravmask, sizeof(gravx), sizeof(gravmask));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -129,6 +124,9 @@ void* update_grav_async(void* unused)
|
|||||||
memset(th_gravmap, 0, sizeof(th_gravmap));
|
memset(th_gravmap, 0, sizeof(th_gravmap));
|
||||||
memset(th_gravy, 0, sizeof(th_gravy));
|
memset(th_gravy, 0, sizeof(th_gravy));
|
||||||
memset(th_gravx, 0, sizeof(th_gravx));
|
memset(th_gravx, 0, sizeof(th_gravx));
|
||||||
|
memset(th_gravyf, 0, XRES*YRES*sizeof(float));
|
||||||
|
memset(th_gravxf, 0, XRES*YRES*sizeof(float));
|
||||||
|
memset(th_gravpf, 0, XRES*YRES*sizeof(float));
|
||||||
#ifdef GRAVFFT
|
#ifdef GRAVFFT
|
||||||
grav_fft_init();
|
grav_fft_init();
|
||||||
#endif
|
#endif
|
||||||
@ -165,9 +163,9 @@ void start_grav_async()
|
|||||||
pthread_create(&gravthread, NULL, update_grav_async, NULL); //Start asynchronous gravity simulation
|
pthread_create(&gravthread, NULL, update_grav_async, NULL); //Start asynchronous gravity simulation
|
||||||
ngrav_enable = 1;
|
ngrav_enable = 1;
|
||||||
}
|
}
|
||||||
memset(gravyf, 0, sizeof(gravyf));
|
memset(gravyf, 0, XRES*YRES*sizeof(float));
|
||||||
memset(gravxf, 0, sizeof(gravxf));
|
memset(gravxf, 0, XRES*YRES*sizeof(float));
|
||||||
memset(gravpf, 0, sizeof(gravpf));
|
memset(gravpf, 0, XRES*YRES*sizeof(float));
|
||||||
}
|
}
|
||||||
|
|
||||||
void stop_grav_async()
|
void stop_grav_async()
|
||||||
@ -179,13 +177,12 @@ void stop_grav_async()
|
|||||||
pthread_mutex_unlock(&gravmutex);
|
pthread_mutex_unlock(&gravmutex);
|
||||||
pthread_join(gravthread, NULL);
|
pthread_join(gravthread, NULL);
|
||||||
pthread_mutex_destroy(&gravmutex); //Destroy the mutex
|
pthread_mutex_destroy(&gravmutex); //Destroy the mutex
|
||||||
memset(gravy, 0, sizeof(gravy)); //Clear the grav velocities
|
|
||||||
memset(gravx, 0, sizeof(gravx)); //Clear the grav velocities
|
|
||||||
ngrav_enable = 0;
|
ngrav_enable = 0;
|
||||||
}
|
}
|
||||||
memset(gravyf, 0, sizeof(gravyf));
|
//Clear the grav velocities
|
||||||
memset(gravxf, 0, sizeof(gravxf));
|
memset(gravyf, 0, XRES*YRES*sizeof(float));
|
||||||
memset(gravpf, 0, sizeof(gravpf));
|
memset(gravxf, 0, XRES*YRES*sizeof(float));
|
||||||
|
memset(gravpf, 0, XRES*YRES*sizeof(float));
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef GRAVFFT
|
#ifdef GRAVFFT
|
||||||
|
@ -462,21 +462,22 @@ int luatpt_reset_gravity_field(lua_State* l)
|
|||||||
int x1, y1, width, height;
|
int x1, y1, width, height;
|
||||||
x1 = abs(luaL_optint(l, 1, 0));
|
x1 = abs(luaL_optint(l, 1, 0));
|
||||||
y1 = abs(luaL_optint(l, 2, 0));
|
y1 = abs(luaL_optint(l, 2, 0));
|
||||||
width = abs(luaL_optint(l, 3, XRES/CELL));
|
width = abs(luaL_optint(l, 3, XRES));
|
||||||
height = abs(luaL_optint(l, 4, YRES/CELL));
|
height = abs(luaL_optint(l, 4, YRES));
|
||||||
if(x1 > (XRES/CELL)-1)
|
if(x1 > XRES-1)
|
||||||
x1 = (XRES/CELL)-1;
|
x1 = XRES-1;
|
||||||
if(y1 > (YRES/CELL)-1)
|
if(y1 > YRES-1)
|
||||||
y1 = (YRES/CELL)-1;
|
y1 = YRES-1;
|
||||||
if(x1+width > (XRES/CELL)-1)
|
if(x1+width > XRES-1)
|
||||||
width = (XRES/CELL)-x1;
|
width = XRES-x1;
|
||||||
if(y1+height > (YRES/CELL)-1)
|
if(y1+height > YRES-1)
|
||||||
height = (YRES/CELL)-y1;
|
height = YRES-y1;
|
||||||
for (nx = x1; nx<x1+width; nx++)
|
for (nx = x1; nx<x1+width; nx++)
|
||||||
for (ny = y1; ny<y1+height; ny++)
|
for (ny = y1; ny<y1+height; ny++)
|
||||||
{
|
{
|
||||||
gravx[ny][nx] = 0;
|
gravxf[ny*XRES+nx] = 0;
|
||||||
gravy[ny][nx] = 0;
|
gravyf[ny*XRES+nx] = 0;
|
||||||
|
gravpf[ny*XRES+nx] = 0;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1151,14 +1151,14 @@ void clear_sim(void)
|
|||||||
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, 0xFF, sizeof(gravmask));
|
memset(gravmask, 0xFF, sizeof(gravmask));
|
||||||
memset(gravy, 0, sizeof(gravy));
|
memset(gravyf, 0, XRES*YRES*sizeof(float));
|
||||||
memset(gravx, 0, sizeof(gravx));
|
memset(gravxf, 0, XRES*YRES*sizeof(float));
|
||||||
|
memset(gravpf, 0, XRES*YRES*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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gravity_mask();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// stamps library
|
// stamps library
|
||||||
|
Reference in New Issue
Block a user