The-Powder-Toy/includes/defines.h

258 lines
5.3 KiB
C
Raw Normal View History

2010-08-25 06:22:41 -05:00
#ifndef DEFINE_H
#define DEFINE_H
2010-11-10 18:42:42 -06:00
#ifdef WIN32
2010-08-28 05:40:49 -05:00
#define PATH_SEP "\\"
#else
#define PATH_SEP "/"
#endif
2011-06-04 06:49:40 -05:00
//VersionInfoStart
2011-11-02 05:42:50 -05:00
#define SAVE_VERSION 68
2011-11-18 14:08:58 -06:00
#define MINOR_VERSION 7
2011-10-26 16:05:16 -05:00
#define BETA
2011-11-18 14:08:58 -06:00
#define BUILD_NUM 113
//VersionInfoEnd
#define IDENT_VERSION "G" //Change this if you're not Simon! It should be a single letter.
2010-08-29 07:10:58 -05:00
#define MTOS_EXPAND(str) #str
#define MTOS(str) MTOS_EXPAND(str)
2010-08-25 06:22:41 -05:00
#define SERVER "powdertoy.co.uk"
2011-08-25 06:20:00 -05:00
#define SCRIPTSERVER "powdertoy.co.uk"
2010-08-25 06:22:41 -05:00
2011-06-12 16:59:36 -05:00
#define LOCAL_SAVE_DIR "Saves"
#define APPDATA_SUBDIR "\\HardWIRED"
2010-08-29 07:10:58 -05:00
#define THUMB_CACHE_SIZE 256
#ifndef M_PI
#define M_PI 3.14159265f
#endif
2011-04-22 11:06:44 -05:00
#ifndef M_GRAV
#define M_GRAV 6.67300e-1
#endif
2010-08-29 07:10:58 -05:00
#define IMGCONNS 3
#define TIMEOUT 100
#define HTTP_TIMEOUT 10
2011-04-12 06:19:21 -05:00
#ifdef RENDERER
#define MENUSIZE 0
#define BARSIZE 0
#else
2010-08-25 06:22:41 -05:00
#define MENUSIZE 40
2010-10-28 18:18:06 -05:00
#define BARSIZE 17
2011-04-12 06:19:21 -05:00
#endif
2010-08-25 06:22:41 -05:00
#define XRES 612
#define YRES 384
#define NPART XRES*YRES
#define XCNTR 306
#define YCNTR 192
#define MAX_DISTANCE sqrt(pow(XRES, 2)+pow(YRES, 2))
2011-04-26 10:15:23 -05:00
#define GRAV_DIFF
2010-08-27 07:01:20 -05:00
#define MAXSIGNS 16
2010-08-29 07:10:58 -05:00
#define TAG_MAX 256
2010-08-27 07:01:20 -05:00
2010-08-25 06:22:41 -05:00
#define ZSIZE_D 16
#define ZFACTOR_D 8
extern unsigned char ZFACTOR;
extern unsigned char ZSIZE;
2010-08-25 06:22:41 -05:00
#define CELL 4
#define ISTP (CELL/2)
#define CFDS (4.0f/CELL)
#define AIR_TSTEPP 0.3f
#define AIR_TSTEPV 0.4f
#define AIR_VADV 0.3f
#define AIR_VLOSS 0.999f
#define AIR_PLOSS 0.9999f
2010-08-25 06:22:41 -05:00
2010-08-28 05:40:49 -05:00
#define GRID_X 5
#define GRID_Y 4
#define GRID_P 3
#define GRID_S 6
#define GRID_Z 3
2011-06-12 16:59:36 -05:00
#define CATALOGUE_X 4
#define CATALOGUE_Y 3
#define CATALOGUE_S 6
#define CATALOGUE_Z 3
2011-04-08 07:57:05 -05:00
#define STAMP_MAX 240
2010-08-28 05:40:49 -05:00
#define NGOL 25
#define NGOLALT 24 //NGOL should be 24, but use this var until I find out why
2010-11-09 00:04:59 -06:00
#define CIRCLE_BRUSH 0
#define SQUARE_BRUSH 1
#define TRI_BRUSH 2
#define BRUSH_NUM 3
2010-08-28 05:40:49 -05:00
#ifdef PIX16
typedef unsigned short pixel;
#else
typedef unsigned int pixel;
#endif
2010-10-28 18:18:06 -05:00
#define SURF_RANGE 10
#define NORMAL_MIN_EST 3
#define NORMAL_INTERP 20
#define NORMAL_FRAC 16
#define REFRACT 0x80000000
/* heavy flint glass, for awesome refraction/dispersion
this way you can make roof prisms easily */
#define GLASS_IOR 1.9
#define GLASS_DISP 0.07
#ifdef WIN32
#define strcasecmp stricmp
#endif
2011-06-22 13:22:48 -05:00
#if defined(WIN32) && !defined(__GNUC__)
#define fmin min
#define fminf min
#define fmax max
#define fmaxf max
#endif
#define SDEUT
2011-07-01 05:32:10 -05:00
//#define REALHEAT
2011-08-11 14:12:52 -05:00
#define DEBUG_PARTS 0x0001
#define DEBUG_PARTCOUNT 0x0002
2011-08-14 12:31:48 -05:00
#define DEBUG_DRAWTOOL 0x0004
2011-10-16 18:16:43 -05:00
#define DEBUG_PERFORMANCE_CALC 0x0008
#define DEBUG_PERFORMANCE_FRAME 0x0010
2011-08-11 14:12:52 -05:00
2010-08-25 06:22:41 -05:00
typedef unsigned char uint8;
extern int amd;
2010-09-06 21:41:51 -05:00
extern int FPSB;
int NUM_PARTS;
int GRAV;
int GRAV_R;
int GRAV_G;
int GRAV_B;
int GRAV_R2;
int GRAV_G2;
int GRAV_B2;
extern int legacy_enable;
extern int ngrav_enable; //Newtonian gravity
2011-02-08 08:30:02 -06:00
extern int sound_enable;
extern int kiosk_enable;
2011-06-01 14:18:19 -05:00
extern int aheat_enable;
extern int decorations_enable;
2011-07-22 09:08:13 -05:00
extern int hud_enable;
extern int pretty_powder;
2011-10-21 13:41:12 -05:00
extern int drawgrav_enable;
int limitFPS;
int water_equal_test;
extern int quickoptions_tooltip_fade;
2011-07-22 09:08:13 -05:00
2011-10-16 18:16:43 -05:00
extern int debug_flags;
#define DEBUG_PERF_FRAMECOUNT 256
extern int debug_perf_istart;
extern int debug_perf_iend;
extern long debug_perf_frametime[DEBUG_PERF_FRAMECOUNT];
extern long debug_perf_partitime[DEBUG_PERF_FRAMECOUNT];
2011-10-25 05:31:21 -05:00
extern long debug_perf_time;
2011-07-22 09:08:13 -05:00
2011-10-16 18:16:43 -05:00
extern int debug_flags;
#define DEBUG_PERF_FRAMECOUNT 256
extern int debug_perf_istart;
extern int debug_perf_iend;
extern long debug_perf_frametime[DEBUG_PERF_FRAMECOUNT];
extern long debug_perf_partitime[DEBUG_PERF_FRAMECOUNT];
extern long debug_perf_time;
2011-07-22 09:08:13 -05:00
extern int active_menu;
extern int sys_pause;
extern int framerender;
extern int mousex, mousey;
2010-08-27 07:01:20 -05:00
struct sign
{
2011-01-28 17:54:50 -06:00
int x,y,ju;
char text[256];
2010-08-27 07:01:20 -05:00
};
typedef struct sign sign;
2010-08-28 05:40:49 -05:00
struct stamp
{
2011-01-28 17:54:50 -06:00
char name[11];
pixel *thumb;
int thumb_w, thumb_h, dodelete;
2010-08-28 05:40:49 -05:00
};
typedef struct stamp stamp;
2011-04-12 06:19:21 -05:00
int frameidx;
int MSIGN;
2010-11-04 21:12:51 -05:00
int CGOL;
int ISGOL;
int ISLOVE;
int ISLOLZ;
int ISGRAV;
int ISWIRE;
int GSPEED;
int love[XRES/9][YRES/9];
int lolz[XRES/9][YRES/9];
unsigned char gol[XRES][YRES];
unsigned char gol2[XRES][YRES][NGOL+1];
int SEC;
int SEC2;
int console_mode;
int REPLACE_MODE;
int CURRENT_BRUSH;
int GRID_MODE;
int VINE_MODE;
int DEBUG_MODE;
int GENERATION;
int ISSPAWN1;
int ISSPAWN2;
2010-08-27 07:01:20 -05:00
extern sign signs[MAXSIGNS];
2010-08-28 05:40:49 -05:00
extern stamp stamps[STAMP_MAX];
extern int stamp_count;
extern int itc;
extern char itc_msg[64];
2010-08-27 07:01:20 -05:00
2010-08-29 07:10:58 -05:00
extern int do_open;
extern int sys_pause;
extern int sys_shortcuts;
2010-08-29 07:10:58 -05:00
extern int legacy_enable; //Used to disable new features such as heat, will be set by commandline or save.
extern int framerender;
extern pixel *vid_buf;
2010-08-29 07:10:58 -05:00
extern unsigned char last_major, last_minor, update_flag, last_build;
2010-08-29 07:10:58 -05:00
extern char http_proxy_string[256];
//Functions in main.c
void thumb_cache_inval(char *id);
void thumb_cache_add(char *id, void *thumb, int size);
int thumb_cache_find(char *id, void **thumb, int *size);
void *build_thumb(int *size, int bzip2);
void *build_save(int *size, int x0, int y0, int w, int h, unsigned char bmap[YRES/CELL][XRES/CELL], float fvx[YRES/CELL][XRES/CELL], float fvy[YRES/CELL][XRES/CELL], sign signs[MAXSIGNS], void* partsptr);
int parse_save(void *save, int size, int replace, int x0, int y0, unsigned char bmap[YRES/CELL][XRES/CELL], float fvx[YRES/CELL][XRES/CELL], float fvy[YRES/CELL][XRES/CELL], sign signs[MAXSIGNS], void* partsptr, unsigned pmap[YRES][XRES]);
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);
2010-10-28 18:18:06 -05:00
#endif