diff options
| author | jacksonmj <mj-pt@jacksonmj.co.uk> | 2011-12-10 16:11:03 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2011-12-18 14:04:47 (GMT) |
| commit | c819e2655e41363d0d416d478abe2804d40c1a95 (patch) | |
| tree | 4889d45b1010351687c568d23ecc93a744c1f692 /src | |
| parent | 934d1da66eb5aec49769feaf00d0949f805fd3d5 (diff) | |
| download | powder-c819e2655e41363d0d416d478abe2804d40c1a95.zip powder-c819e2655e41363d0d416d478abe2804d40c1a95.tar.gz | |
Fix some gravity memsets, remove gravx/y
Diffstat (limited to 'src')
| -rw-r--r-- | src/gravity.c | 29 | ||||
| -rw-r--r-- | src/luaconsole.c | 25 | ||||
| -rw-r--r-- | src/main.c | 6 |
3 files changed, 29 insertions, 31 deletions
diff --git a/src/gravity.c b/src/gravity.c index 57cce71..d7131a5 100644 --- a/src/gravity.c +++ b/src/gravity.c @@ -10,9 +10,6 @@ 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 *gravyf; float *gravxf; @@ -91,9 +88,6 @@ void gravity_update_async() if(result) //Did the gravity thread finish? { 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 //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); //Apply the gravity mask - membwand(gravy, gravmask, sizeof(gravy), sizeof(gravmask)); - membwand(gravx, gravmask, sizeof(gravx), sizeof(gravmask)); + //TODO: doesn't work at the moment, gravx and gravy aren't used any more + //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_gravy, 0, sizeof(th_gravy)); 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 grav_fft_init(); #endif @@ -165,9 +163,9 @@ void start_grav_async() pthread_create(&gravthread, NULL, update_grav_async, NULL); //Start asynchronous gravity simulation ngrav_enable = 1; } - memset(gravyf, 0, sizeof(gravyf)); - memset(gravxf, 0, sizeof(gravxf)); - memset(gravpf, 0, sizeof(gravpf)); + memset(gravyf, 0, XRES*YRES*sizeof(float)); + memset(gravxf, 0, XRES*YRES*sizeof(float)); + memset(gravpf, 0, XRES*YRES*sizeof(float)); } void stop_grav_async() @@ -179,13 +177,12 @@ void stop_grav_async() pthread_mutex_unlock(&gravmutex); pthread_join(gravthread, NULL); 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; } - memset(gravyf, 0, sizeof(gravyf)); - memset(gravxf, 0, sizeof(gravxf)); - memset(gravpf, 0, sizeof(gravpf)); + //Clear the grav velocities + memset(gravyf, 0, XRES*YRES*sizeof(float)); + memset(gravxf, 0, XRES*YRES*sizeof(float)); + memset(gravpf, 0, XRES*YRES*sizeof(float)); } #ifdef GRAVFFT diff --git a/src/luaconsole.c b/src/luaconsole.c index 9482e7d..7cbbfa1 100644 --- a/src/luaconsole.c +++ b/src/luaconsole.c @@ -462,21 +462,22 @@ int luatpt_reset_gravity_field(lua_State* l) int x1, y1, width, height; x1 = abs(luaL_optint(l, 1, 0)); y1 = abs(luaL_optint(l, 2, 0)); - width = abs(luaL_optint(l, 3, XRES/CELL)); - height = abs(luaL_optint(l, 4, YRES/CELL)); - if(x1 > (XRES/CELL)-1) - x1 = (XRES/CELL)-1; - if(y1 > (YRES/CELL)-1) - y1 = (YRES/CELL)-1; - if(x1+width > (XRES/CELL)-1) - width = (XRES/CELL)-x1; - if(y1+height > (YRES/CELL)-1) - height = (YRES/CELL)-y1; + width = abs(luaL_optint(l, 3, XRES)); + height = abs(luaL_optint(l, 4, YRES)); + if(x1 > XRES-1) + x1 = XRES-1; + if(y1 > YRES-1) + y1 = YRES-1; + if(x1+width > XRES-1) + width = XRES-x1; + if(y1+height > YRES-1) + height = YRES-y1; for (nx = x1; nx<x1+width; nx++) for (ny = y1; ny<y1+height; ny++) { - gravx[ny][nx] = 0; - gravy[ny][nx] = 0; + gravxf[ny*XRES+nx] = 0; + gravyf[ny*XRES+nx] = 0; + gravpf[ny*XRES+nx] = 0; } return 0; } @@ -1151,14 +1151,14 @@ void clear_sim(void) memset(fire_g, 0, sizeof(fire_g)); memset(fire_b, 0, sizeof(fire_b)); memset(gravmask, 0xFF, sizeof(gravmask)); - memset(gravy, 0, sizeof(gravy)); - memset(gravx, 0, sizeof(gravx)); + memset(gravyf, 0, XRES*YRES*sizeof(float)); + memset(gravxf, 0, XRES*YRES*sizeof(float)); + memset(gravpf, 0, XRES*YRES*sizeof(float)); for(x = 0; x < XRES/CELL; x++){ for(y = 0; y < YRES/CELL; y++){ hv[y][x] = 273.15f+22.0f; //Set to room temperature } } - gravity_mask(); } // stamps library |
