Gravity zoning

This commit is contained in:
Simon Robertshaw
2011-06-09 22:35:00 +01:00
parent 1effdb052a
commit 1f7106acb1
9 changed files with 198 additions and 3 deletions

View File

@@ -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];

View File

@@ -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);

View File

@@ -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 {

View File

@@ -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