summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2011-06-09 21:35:00 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2011-06-09 21:35:00 (GMT)
commit1f7106acb16962f925dfccc67dafc39f3bcfd877 (patch)
tree324c1f589da96a30205838e372489d9d9bde6132 /includes
parent1effdb052a0b952d1390109bed67b3371046ccb7 (diff)
downloadpowder-1f7106acb16962f925dfccc67dafc39f3bcfd877.zip
powder-1f7106acb16962f925dfccc67dafc39f3bcfd877.tar.gz
Gravity zoning
Diffstat (limited to 'includes')
-rw-r--r--includes/air.h1
-rw-r--r--includes/graphics.h2
-rw-r--r--includes/misc.h2
-rw-r--r--includes/powder.h8
4 files changed, 12 insertions, 1 deletions
diff --git a/includes/air.h b/includes/air.h
index 821d9fb..dfa417c 100644
--- a/includes/air.h
+++ b/includes/air.h
@@ -5,6 +5,7 @@
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 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];
diff --git a/includes/graphics.h b/includes/graphics.h
index d228e83..50d8ab1 100644
--- a/includes/graphics.h
+++ b/includes/graphics.h
@@ -110,6 +110,8 @@ void draw_icon(pixel *vid_buf, int x, int y, char ch, int flag);
void draw_air(pixel *vid);
+void draw_grav_zones(pixel *vid);
+
void draw_grav(pixel *vid);
void draw_line(pixel *vid, int x1, int y1, int x2, int y2, int r, int g, int b, int a);
diff --git a/includes/misc.h b/includes/misc.h
index 2ca0ac6..51d7b98 100644
--- a/includes/misc.h
+++ b/includes/misc.h
@@ -71,6 +71,8 @@ int cpu_check(void);
void HSV_to_RGB(int h,int s,int v,int *r,int *g,int *b);
void RGB_to_HSV(int r,int g,int b,int *h,int *s,int *v);
+
+void membwand(void * dest, void * src, size_t destsize, size_t srcsize);
// a b
// c d
struct matrix2d {
diff --git a/includes/powder.h b/includes/powder.h
index c0cf8b9..86b0967 100644
--- a/includes/powder.h
+++ b/includes/powder.h
@@ -23,7 +23,7 @@
#define UI_WALLSTART 222
#define UI_ACTUALSTART 122
-#define UI_WALLCOUNT 20
+#define UI_WALLCOUNT 21
#define WL_WALLELEC 122
#define WL_EWALL 123
@@ -40,6 +40,7 @@
#define WL_ALLOWSOLID 133
#define WL_ALLOWALLELEC 134
#define WL_EHOLE 135
+#define WL_GRAV 142
#define SPC_AIR 236
#define SPC_HEAT 237
@@ -832,6 +833,7 @@ static wall_type wtypes[] =
{PIXPACK(0x303030), PIXPACK(0x000000), -1, "Vacuum, reduces air pressure."},
{PIXPACK(0x579777), PIXPACK(0x000000), 1, "Wall. Indestructible. Blocks liquids and solids, allows gasses"},
{PIXPACK(0x000000), PIXPACK(0x000000), -1, "Drag tool"},
+ {PIXPACK(0xFFEE00), PIXPACK(0xAA9900), 4, "Gravity wall"},
};
#define CHANNELS ((int)(MAX_TEMP-73.15f)/100+2)
@@ -839,6 +841,8 @@ particle portalp[CHANNELS][8][80];
const particle emptyparticle;
int wireless[CHANNELS][2];
+extern int gravwl_timeout;
+
extern int isplayer;
extern float player[27];
@@ -913,4 +917,6 @@ 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