1 #ifndef __BRIKXH__ 2 #define __BRIKXH__ 3 4 //#define WIZRES 5 6 #include "SDL/SDL.h" 7 #include "SDL/SDL_mixer.h" 8 9 #define VERSION "0.4.2" 10 11 #ifdef WIZ 12 #define WIZRES 13 #endif 14 15 #ifdef WIZRES 16 #define WIDTH 320 17 #define HEIGHT 240 18 #else 19 #define WIDTH 640 20 #define HEIGHT 480 21 #endif 22 23 #ifdef WIZ 24 #define BPP 16 25 #else 26 #define BPP 32 27 #endif 28 29 #define NAME_MAXLEN 16 30 #define MAX_HIGHENTRIES 20 31 #define BACKGROUND_MAX 50 32 #define MAX_TILES 99 33 34 #ifdef WIZRES 35 #define TILE_WIDTH 30 36 #define TILE_HEIGHT 30 37 #else 38 #define TILE_WIDTH 60 39 #define TILE_HEIGHT 60 40 #endif 41 42 #define WINDOWX 0 43 #define WINDOWY 0 44 #define TILESET_DEFAULT "stone" 45 46 #ifdef WIZ 47 #define DELAY 40 48 #else 49 #define DELAY 20 50 #endif 51 52 #define TILE_EMPTY 0 53 #define TILE_WALL 1 54 #define TILE_RIGHT 2 55 #define TILE_LEFT 3 56 #define TILE_PEAK 4 57 #define TILE_PRIORRIGHT 5 58 #define TILE_PRIORLEFT 6 59 #define TILE_STRONG 7 60 #define TILE_STRONGRANDOM 10 61 #define TILE_STRONGPRIORRIGHT 8 62 #define TILE_STRONGPRIORLEFT 9 63 #define TILE_LEVITATOR 11 64 #define TILE_PAINTER 12 65 #define TILE_DESTRUCTOR 13 66 #define TILE_DEAD 99 67 #define TILE_FIRST 40 68 #define IsTile(a) ((a)>=TILE_FIRST) 69 #define IsLivingTile(a) ((a)>=TILE_FIRST && (a)!=TILE_DEAD) 70 #define IsEmpty(a) ((a)==TILE_EMPTY) 71 #define IsWeak(a) ((a)==TILE_WALL || (a)==TILE_RIGHT || (a)==TILE_LEFT || (a)==TILE_PEAK || (a)==TILE_PRIORRIGHT || (a)==TILE_PRIORLEFT) 72 #define IsRYB(a) ((a)>=TILE_FIRST && (a)<=TILE_FIRST+2) 73 74 #define DIR_DATA "/usr/local/share/brikx/" 75 #define DIR_LEVEL DIR_DATA"levels/" 76 #define DIR_MUSIC DIR_DATA"music/" 77 #define DIR_SOUND DIR_DATA"sounds/" 78 #define DIR_FONT DIR_DATA"fonts/" 79 #define FILE_HIGH DIR_DATA"high/high.dat" 80 #define FONTNAME_SCORE DIR_FONT"bankgothic.ttf" 81 #define FONTNAME_NORMAL DIR_FONT"bankgothic.ttf" 82 83 #ifdef WIZRES 84 #define DIR_BACKGROUND DIR_DATA"backgrounds-wiz/" 85 #define DIR_IMAGE DIR_DATA"images-wiz/" 86 #define DIR_TILESET DIR_DATA"tilesets-wiz/" 87 #define DIR_HELP DIR_DATA"help-wiz/" 88 #else 89 #define DIR_BACKGROUND DIR_DATA"backgrounds/" 90 #define DIR_IMAGE DIR_DATA"images/" 91 #define DIR_TILESET DIR_DATA"tilesets/" 92 #define DIR_HELP DIR_DATA"help/" 93 #endif 94 95 #ifdef WIZRES 96 #define FONTSIZE_SCORE 12 97 #define FONTSIZE_SMALL 7 98 #else 99 #define FONTSIZE_SCORE 20 100 #define FONTSIZE_SMALL 14 101 #endif 102 103 #define MODES 9 104 105 #define BACKGROUND_MENU DIR_IMAGE"title_background.jpg" 106 #define BACKGROUND_BASE DIR_IMAGE"play_sidebar.png" 107 #define BACKGROUND_EDIT DIR_IMAGE"edit.png" 108 #define BACKGROUND_BYE DIR_IMAGE"bye.jpg" 109 #define IMAGE_GAMECURSOR DIR_IMAGE"cursor.png" 110 #define IMAGE_QUIT DIR_IMAGE"menu_quit.png" 111 #define IMAGE_PLAY DIR_IMAGE"menu_play.png" 112 #define IMAGE_CONTINUE DIR_IMAGE"menu_continue.png" 113 #define IMAGE_EDIT DIR_IMAGE"menu_edit.png" 114 #define IMAGE_YES DIR_IMAGE"menu_yes.png" 115 #define IMAGE_NO DIR_IMAGE"menu_no.png" 116 #define IMAGE_HELP DIR_IMAGE"menu_help.png" 117 #define IMAGE_HIGHS DIR_IMAGE"menu_highs.png" 118 #define IMAGE_ASKQUIT DIR_IMAGE"ask_quit.png" 119 #define IMAGE_OPTIONS DIR_IMAGE"menu_options.png" 120 #define IMAGE_BUILD DIR_IMAGE"button_build.png" 121 #define IMAGE_CLEAR DIR_IMAGE"button_clear.png" 122 #define IMAGE_NORMAL DIR_IMAGE"button_normal.png" 123 #define IMAGE_PUSH DIR_IMAGE"button_push.png" 124 #define IMAGE_SWAP DIR_IMAGE"button_swap.png" 125 #define IMAGE_HELPBUTTON DIR_IMAGE"help.png" 126 #define IMAGE_AUTORELOAD DIR_IMAGE"menu_autoreload.png" 127 #define IMAGE_AUTONORMAL DIR_IMAGE"menu_autonormal.png" 128 #define IMAGE_UNDO DIR_IMAGE"button_undo.png" 129 #define IMAGE_SAVEBUTTON DIR_IMAGE"button_save.png" 130 #define IMAGE_FULLSCREEN DIR_IMAGE"menu_fullscreen.png" 131 #define IMAGE_TILESET DIR_IMAGE"menu_tileset.png" 132 #define IMAGE_DIFFICULTY DIR_IMAGE"menu_difficulty.png" 133 #define IMAGE_BGALPHA DIR_IMAGE"menu_bgalpha.png" 134 #define IMAGE_CURSOR DIR_IMAGE"menu_cursor.png" 135 #define IMAGE_BACK DIR_IMAGE"menu_back.png" 136 #define IMAGE_TICK DIR_IMAGE"tick.png" 137 #define IMAGE_CROSS DIR_IMAGE"cross.png" 138 #define IMAGE_EDITPLAY DIR_IMAGE"play.png" 139 #define IMAGE_MAXIMUMS DIR_IMAGE"max.png" 140 #define IMAGE_LOAD DIR_IMAGE"load.png" 141 #define IMAGE_SAVE DIR_IMAGE"save.png" 142 #define IMAGE_CLOCK DIR_IMAGE"clock.png" 143 #define IMAGE_TIMER DIR_IMAGE"timer.png" 144 #define IMAGE_SAND DIR_IMAGE"sand.png" 145 #define IMAGE_RELOAD DIR_IMAGE"reload.png" 146 #define IMAGE_SHINE DIR_IMAGE"shine" 147 #define IMAGE_TOOLCURSOR DIR_IMAGE"tools_cursor.png" 148 #define SHINE_FRAMES 70 149 #define SHINE_SPEED 30 150 #define MUSIC_PLAY DIR_MUSIC"brikx.xm" 151 152 #ifdef WIZ 153 #define ALPHA1 255 154 #define ALPHA2 255 155 #else 156 #define ALPHA1 80 157 #define ALPHA2 160 158 #endif 159 160 #define AUDIO_RATE 44100 161 #define AUDIO_FORMAT AUDIO_S16 162 #define AUDIO_CHANNELS 2 163 #define AUDIO_BUFFERS 1024 164 165 #define SOUND_BALL DIR_SOUND"ball.wav" 166 #define SOUND_DISAPPEAR DIR_SOUND"disappear.wav" 167 168 #if SDL_BYTEORDER == SDL_BIG_ENDIAN 169 #define rmask (0xff000000) 170 #define gmask (0x00ff0000) 171 #define bmask (0x0000ff00) 172 #define amask (0x000000ff) 173 #else 174 #define rmask (0x000000ff) 175 #define gmask (0x0000ff00) 176 #define bmask (0x00ff0000) 177 #define amask (0xff000000) 178 #endif 179 180 struct high_entry 181 { 182 long score; 183 int level,difficulty; 184 char name[NAME_MAXLEN+1]; 185 }; 186 187 188 typedef high_entry high[MAX_HIGHENTRIES]; 189 typedef int level[8][8]; 190 typedef int maxes[MODES]; 191 192 char *configdir(); 193 int strcmpi(const char *a1, const char *a2); 194 SDL_Surface *LoadImage(char *fname,int Rkey=-1,int Gkey=-0,int Bkey=0); 195 void PutSurface(SDL_Surface *src,SDL_Surface *dest,SDL_Rect pos,int clipx=-1,int clipy=-1,int width=-1,int height=-1); 196 void PutSurface(SDL_Surface *src,SDL_Surface *dest,int x=0,int y=0,int clipx=-1,int clipy=-1,int width=-1,int height=-1); 197 int LoadLevel(char *fname,level &t,maxes &m,char *text=NULL); 198 int SaveLevel(char *fname,level t,int timelimit,maxes m,char *text=NULL); 199 int Input(SDL_Surface *screen,TTF_Font *font,SDL_Color color,int x,int y,char *s,int maxlen); 200 int SaveHigh(long score,int level,int difficulty,char *name); 201 int SaveGame(level table,long score,int levnum,long timer,int timelimit,int diff,maxes m,char *name="0",char *leveltext=NULL); 202 int LoadGame(level &table,long &score,int &levnum,long &timer,int &timelimit,int &diff,maxes &m,char *name="0",char *leveltext=NULL); 203 int LoadShinePos(char *fname,int &dx,int &dy); 204 void GetNextSet(char *name); 205 #endif 206