summaryrefslogtreecommitdiff
path: root/includes/gravity.h
diff options
context:
space:
mode:
authorjacksonmj <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)
commit934d1da66eb5aec49769feaf00d0949f805fd3d5 (patch)
tree28ee674d06060d9940e1c235d2dba39f8a5c74f5 /includes/gravity.h
parent20dd54f36e971e9b9f8762309caa49ed07bea031 (diff)
downloadpowder-934d1da66eb5aec49769feaf00d0949f805fd3d5.zip
powder-934d1da66eb5aec49769feaf00d0949f805fd3d5.tar.gz
Move Newtonian gravity into a new file
Diffstat (limited to 'includes/gravity.h')
-rw-r--r--includes/gravity.h44
1 files changed, 44 insertions, 0 deletions
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