diff options
| author | jacksonmj <mj-pt@jacksonmj.co.uk> | 2011-12-10 15:23:33 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2011-12-18 14:04:47 (GMT) |
| commit | 934d1da66eb5aec49769feaf00d0949f805fd3d5 (patch) | |
| tree | 28ee674d06060d9940e1c235d2dba39f8a5c74f5 /includes | |
| parent | 20dd54f36e971e9b9f8762309caa49ed07bea031 (diff) | |
| download | powder-934d1da66eb5aec49769feaf00d0949f805fd3d5.zip powder-934d1da66eb5aec49769feaf00d0949f805fd3d5.tar.gz | |
Move Newtonian gravity into a new file
Diffstat (limited to 'includes')
| -rw-r--r-- | includes/air.h | 25 | ||||
| -rw-r--r-- | includes/defines.h | 3 | ||||
| -rw-r--r-- | includes/element.h | 1 | ||||
| -rw-r--r-- | includes/gravity.h | 44 | ||||
| -rw-r--r-- | includes/powder.h | 5 |
5 files changed, 45 insertions, 33 deletions
diff --git a/includes/air.h b/includes/air.h index 0f37310..2ad2efb 100644 --- a/includes/air.h +++ b/includes/air.h @@ -2,24 +2,6 @@ #define AIR_H #include "defines.h" -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 *gravxf; -extern float *gravyf; -extern unsigned gravmask[YRES/CELL][XRES/CELL]; - -extern float th_ogravmap[YRES/CELL][XRES/CELL]; // Maps to be processed by the gravity thread -extern float th_gravmap[YRES/CELL][XRES/CELL]; -extern float th_gravx[YRES/CELL][XRES/CELL]; -extern float th_gravy[YRES/CELL][XRES/CELL]; -extern float *th_gravpf; -extern float *th_gravxf; -extern float *th_gravyf; -extern float th_gravp[YRES/CELL][XRES/CELL]; - extern float vx[YRES/CELL][XRES/CELL], ovx[YRES/CELL][XRES/CELL]; extern float vy[YRES/CELL][XRES/CELL], ovy[YRES/CELL][XRES/CELL]; extern float pv[YRES/CELL][XRES/CELL], opv[YRES/CELL][XRES/CELL]; @@ -39,13 +21,6 @@ void make_kernel(void); void update_airh(void); -void update_grav(void); - -#ifdef GRAVFFT -void grav_fft_init(); -void grav_fft_cleanup(); -#endif - void update_air(void); #endif diff --git a/includes/defines.h b/includes/defines.h index def6c8d..2ea6067 100644 --- a/includes/defines.h +++ b/includes/defines.h @@ -149,7 +149,6 @@ int GRAV_G2; int GRAV_B2; extern int legacy_enable; -extern int ngrav_enable; //Newtonian gravity extern int sound_enable; extern int kiosk_enable; extern int aheat_enable; @@ -251,7 +250,5 @@ void clear_sim(void); void del_stamp(int d); void sdl_seticon(void); void play_sound(char *file); -void start_grav_async(void); -void stop_grav_async(void); int set_scale(int scale, int kiosk); #endif diff --git a/includes/element.h b/includes/element.h index cf84d79..ad22216 100644 --- a/includes/element.h +++ b/includes/element.h @@ -3,6 +3,7 @@ // This header should be included by all files in src/elements/ #include "powder.h" +#include "gravity.h" #include "misc.h" #include "math.h" #include "powdergraphics.h" diff --git a/includes/gravity.h b/includes/gravity.h new file mode 100644 index 0000000..05e244c --- /dev/null +++ b/includes/gravity.h @@ -0,0 +1,44 @@ +#ifndef GRAVITY_H +#define GRAVITY_H + +#include "defines.h" + +extern int ngrav_enable; //Newtonian gravity +extern int gravwl_timeout; +extern int gravityMode; + +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 *gravxf; +extern float *gravyf; +extern unsigned gravmask[YRES/CELL][XRES/CELL]; + +extern float th_ogravmap[YRES/CELL][XRES/CELL]; // Maps to be processed by the gravity thread +extern float th_gravmap[YRES/CELL][XRES/CELL]; +extern float th_gravx[YRES/CELL][XRES/CELL]; +extern float th_gravy[YRES/CELL][XRES/CELL]; +extern float *th_gravpf; +extern float *th_gravxf; +extern float *th_gravyf; +extern float th_gravp[YRES/CELL][XRES/CELL]; + +void gravity_init(); +void gravity_cleanup(); +void gravity_update_async(); + +void start_grav_async(); +void stop_grav_async(); +void update_grav(); +void gravity_mask(); + +void bilinear_interpolation(float *src, float *dst, int sw, int sh, int rw, int rh); + +#ifdef GRAVFFT +void grav_fft_init(); +void grav_fft_cleanup(); +#endif + +#endif diff --git a/includes/powder.h b/includes/powder.h index db9cb03..a5a8bef 100644 --- a/includes/powder.h +++ b/includes/powder.h @@ -1051,15 +1051,12 @@ extern int portal_ry[8]; extern int wire_placed; -extern int gravwl_timeout; - extern playerst player; extern playerst player2; extern playerst fighters[256]; extern unsigned char fighcount; -extern int gravityMode; extern int airMode; extern particle *parts; @@ -1137,6 +1134,4 @@ void orbitalparts_get(int block1, int block2, int resblock1[], int resblock2[]); void orbitalparts_set(int *block1, int *block2, int resblock1[], int resblock2[]); -void gravity_mask(); - #endif |
