X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fmain.h;h=fdad7a4e858a621557c8b886125788d912a0dabe;hp=f2ce895ca2c65ab533b686fc93021a9fe48faee1;hb=998be01ad92a672b69b11e24d472f6c0c076817f;hpb=222cd4187e6632bd904a937f167a2f1c70b8f66d diff --git a/src/main.h b/src/main.h index f2ce895c..fdad7a4e 100644 --- a/src/main.h +++ b/src/main.h @@ -28,14 +28,7 @@ #define DEBUG_TIMING 0 #endif -#if 0 #include "libgame/libgame.h" -#endif - -#ifndef FALSE -#define FALSE 0 -#define TRUE (!FALSE) -#endif #define WIN_XSIZE 672 #define WIN_YSIZE 560 @@ -62,19 +55,6 @@ #define MAX_PLAYERS 4 -#ifndef MIN -#define MIN(a,b) ((a) < (b) ? (a) : (b)) -#endif -#ifndef MAX -#define MAX(a,b) ((a) > (b) ? (a) : (b)) -#endif -#ifndef ABS -#define ABS(a) ((a) < 0 ? -(a) : (a)) -#endif -#ifndef SIGN -#define SIGN(a) ((a) < 0 ? -1 : ((a)>0 ? 1 : 0)) -#endif - #define SCREENX(a) ((a) - scroll_x) #define SCREENY(a) ((a) - scroll_y) #define LEVELX(a) ((a) + scroll_x) @@ -226,7 +206,6 @@ #define GAME_FRAME_DELAY 20 /* frame delay in milliseconds */ #define FFWD_FRAME_DELAY 10 /* 200% speed for fast forward */ #define FRAMES_PER_SECOND (1000 / GAME_FRAME_DELAY) -#define GADGET_FRAME_DELAY 150 /* delay between gadget actions */ #define MICROLEVEL_SCROLL_DELAY 50 /* delay for scrolling micro level */ #define MICROLEVEL_LABEL_DELAY 250 /* delay for micro level label */ @@ -364,35 +343,6 @@ struct LevelInfo boolean gravity; }; -struct LevelDirInfo -{ - char *filename; /* level series single directory name */ - char *fullpath; /* complete path relative to level directory */ - char *basepath; /* absolute base path of level directory */ - char *name; /* level series name, as displayed on main screen */ - char *name_short; /* optional short name for level selection screen */ - char *name_sorting; /* optional sorting name for correct level sorting */ - char *author; /* level series author name levels without author */ - char *imported_from; /* optional comment for imported level series */ - int levels; /* number of levels in level series */ - int first_level; /* first level number (to allow start with 0 or 1) */ - int last_level; /* last level number (automatically calculated) */ - int sort_priority; /* sort levels by 'sort_priority' and then by name */ - boolean level_group; /* directory contains more level series directories */ - boolean parent_link; /* entry links back to parent directory */ - boolean user_defined; /* user defined levels are stored in home directory */ - boolean readonly; /* readonly levels can not be changed with editor */ - int color; /* color to use on selection screen for this level */ - char *class_desc; /* description of level series class */ - int handicap_level; /* number of the lowest unsolved level */ - int cl_first; /* internal control field for "choose level" screen */ - int cl_cursor; /* internal control field for "choose level" screen */ - - struct LevelDirInfo *node_parent; /* parent level directory info */ - struct LevelDirInfo *node_group; /* level group sub-directory info */ - struct LevelDirInfo *next; /* next level series structure node */ -}; - struct TapeInfo { int level_nr; @@ -435,48 +385,23 @@ struct GlobalInfo int fps_slowdown_factor; }; -#if 0 -extern DrawWindow window; -extern DrawBuffer backbuffer; -extern GC gc; -#endif - -extern GC clip_gc[], tile_clip_gc; +extern GC tile_clip_gc; extern Bitmap pix[]; -extern Bitmap pix_masked[], tile_masked[]; -extern Pixmap clipmask[], tile_clipmask[]; - -extern DrawBuffer drawto, drawto_field, fieldbuffer; -#if 0 -extern Colormap cmap; -#endif - -#if 0 -extern char *sound_device_name; -#endif +extern Pixmap tile_clipmask[]; +extern DrawBuffer drawto_field, fieldbuffer; extern int joystick_device; extern char *joystick_device_name[]; -extern char *program_name; - extern int game_status; extern boolean level_editor_test_game; extern boolean network_playing; -extern int button_status; -extern boolean motion_status; + extern int key_joystick_mapping; extern int global_joystick_status, joystick_status; -#if 0 -extern boolean fullscreen_available; -extern boolean fullscreen_enabled; -#endif - extern boolean redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE]; extern int redraw_x1, redraw_y1; -extern int redraw_mask; -extern int redraw_tiles; extern short Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short Ur[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; @@ -508,36 +433,19 @@ extern int SBY_Upper, SBY_Lower; extern int ZX,ZY, ExitX,ExitY; extern int AllPlayersGone; -#if 0 -extern int FrameCounter; -#endif - extern int TimeFrames, TimePlayed, TimeLeft; extern boolean SiebAktiv; extern int SiebCount; extern boolean network_player_action_received; -extern struct LevelDirInfo *leveldir_first, *leveldir_current; extern struct LevelInfo level; extern struct PlayerInfo stored_player[], *local_player; extern struct HiScore highscore[]; extern struct TapeInfo tape; -extern struct SampleInfo Sound[]; extern struct JoystickInfo joystick[]; - -#if 0 -extern struct OptionInfo options; -#endif - extern struct SetupInfo setup; extern struct GameInfo game; - -#if 0 -extern struct VideoSystemInfo video; -extern struct AudioSystemInfo audio; -#endif - extern struct GlobalInfo global; extern char *sound_name[]; @@ -582,18 +490,6 @@ extern int num_element_info; #define MICROLEV_XPOS (SX + (SXSIZE - MICROLEV_XSIZE) / 2) #define MICROLEV_YPOS (SX + 12 * TILEY - MICRO_TILEY) #define MICROLABEL_YPOS (MICROLEV_YPOS + MICROLEV_YSIZE + 7) -#define FONT1_XSIZE 32 -#define FONT1_YSIZE 32 -#define FONT2_XSIZE 14 -#define FONT2_YSIZE 14 -#define FONT3_XSIZE 11 -#define FONT3_YSIZE 14 -#define FONT4_XSIZE 16 -#define FONT4_YSIZE 16 -#define FONT5_XSIZE 10 -#define FONT5_YSIZE 14 -#define FONT6_XSIZE 16 -#define FONT6_YSIZE 32 #define GFX_STARTX SX #define GFX_STARTY SY @@ -631,9 +527,6 @@ extern int num_element_info; #define MINI_MORE_PER_LINE 16 #define MICRO_MORE_PER_LINE 16 -#define FONT_CHARS_PER_LINE 16 -#define FONT_LINES_PER_FONT 4 - /* game elements: ** 0 - 499: real elements, stored in level file ** 500 - 699: flag elements, only used at runtime @@ -1615,19 +1508,6 @@ extern int num_element_info; #define MV_UP (1 << 2) #define MV_DOWN (1 << 3) -/* font types */ -#define FS_SMALL 0 -#define FS_BIG 1 -#define FS_MEDIUM 2 -/* font colors */ -#define FC_RED 0 -#define FC_BLUE 1 -#define FC_GREEN 2 -#define FC_YELLOW 3 -#define FC_SPECIAL1 4 -#define FC_SPECIAL2 5 -#define FC_SPECIAL3 6 - /* values for game_status */ #define EXITGAME 0 #define MAINMENU 1 @@ -1641,23 +1521,6 @@ extern int num_element_info; #define SETUPINPUT 9 #define CALIBRATION 10 -#ifndef RO_GAME_DIR -#define RO_GAME_DIR "." -#endif - -#ifndef RW_GAME_DIR -#define RW_GAME_DIR "." -#endif - -#define RO_BASE_PATH RO_GAME_DIR -#define RW_BASE_PATH RW_GAME_DIR - -#define GRAPHICS_DIRECTORY "graphics" -#define SOUNDS_DIRECTORY "sounds" -#define LEVELS_DIRECTORY "levels" -#define TAPES_DIRECTORY "tapes" -#define SCORES_DIRECTORY "scores" - #define PROGRAM_VERSION_STRING "1.5.0" #define PROGRAM_TITLE_STRING "Rocks'n'Diamonds" #define PROGRAM_AUTHOR_STRING "Holger Schemel" @@ -1667,73 +1530,12 @@ extern int num_element_info; #define WINDOW_TITLE_STRING PROGRAM_TITLE_STRING " " PROGRAM_IDENT_STRING #define WINDOW_SUBTITLE_STRING PROGRAM_RIGHTS_STRING " " PROGRAM_AUTHOR_STRING #define ICON_TITLE_STRING PROGRAM_TITLE_STRING +#define UNIX_USERDATA_DIRECTORY ".rocksndiamonds" #define X11_ICON_FILENAME "rocks_icon.xbm" #define X11_ICONMASK_FILENAME "rocks_iconmask.xbm" #define MSDOS_POINTER_FILENAME "mouse.pcx" -/* default name for empty highscore entry */ -#define EMPTY_PLAYER_NAME "no name" - -/* default name for unknown player names */ -#define ANONYMOUS_NAME "anonymous" - -/* default name for new levels */ -#define NAMELESS_LEVEL_NAME "nameless level" - -/* values for button_status */ -#define MB_NOT_PRESSED FALSE -#define MB_RELEASED FALSE -#define MB_PRESSED TRUE -#define MB_MENU_CHOICE FALSE -#define MB_MENU_MARK TRUE -#define MB_MENU_INITIALIZE (-1) -#define MB_LEFTBUTTON 1 -#define MB_MIDDLEBUTTON 2 -#define MB_RIGHTBUTTON 3 - -/* values for redraw_mask */ -#define REDRAW_ALL (1 << 0) -#define REDRAW_FIELD (1 << 1) -#define REDRAW_TILES (1 << 2) -#define REDRAW_DOOR_1 (1 << 3) -#define REDRAW_VIDEO_1 (1 << 4) -#define REDRAW_VIDEO_2 (1 << 5) -#define REDRAW_VIDEO_3 (1 << 6) -#define REDRAW_MICROLEVEL (1 << 7) -#define REDRAW_FROM_BACKBUFFER (1 << 8) -#define REDRAW_DOOR_2 (REDRAW_VIDEO_1 | \ - REDRAW_VIDEO_2 | \ - REDRAW_VIDEO_3) -#define REDRAW_DOOR_3 (1 << 9) -#define REDRAW_DOORS (REDRAW_DOOR_1 | \ - REDRAW_DOOR_2 | \ - REDRAW_DOOR_3) -#define REDRAW_MAIN (REDRAW_FIELD | \ - REDRAW_TILES | \ - REDRAW_MICROLEVEL) -#define REDRAW_FPS (1 << 10) -#define REDRAWTILES_THRESHOLD (SCR_FIELDX * SCR_FIELDY / 2) - -/* areas in bitmap PIX_DOOR */ -/* meaning in PIX_DB_DOOR: (3 PAGEs) - PAGEX1: 1. buffer for DOOR_1 - PAGEX2: 2. buffer for DOOR_1 - PAGEX3: buffer for animations -*/ - -#define DOOR_GFX_PAGESIZE DXSIZE -#define DOOR_GFX_PAGEX1 (0 * DOOR_GFX_PAGESIZE) -#define DOOR_GFX_PAGEX2 (1 * DOOR_GFX_PAGESIZE) -#define DOOR_GFX_PAGEX3 (2 * DOOR_GFX_PAGESIZE) -#define DOOR_GFX_PAGEX4 (3 * DOOR_GFX_PAGESIZE) -#define DOOR_GFX_PAGEX5 (4 * DOOR_GFX_PAGESIZE) -#define DOOR_GFX_PAGEX6 (5 * DOOR_GFX_PAGESIZE) -#define DOOR_GFX_PAGEX7 (6 * DOOR_GFX_PAGESIZE) -#define DOOR_GFX_PAGEX8 (7 * DOOR_GFX_PAGESIZE) -#define DOOR_GFX_PAGEY1 0 -#define DOOR_GFX_PAGEY2 DYSIZE - /* for DrawGraphicAnimation() [tools.c] and AnimateToon() [cartoons.c] */ #define ANIM_NORMAL 0 #define ANIM_OSCILLATE 1