#define DEBUG_TIMING 0
#endif
-#if 0
#include "libgame/libgame.h"
-#endif
#ifndef FALSE
#define FALSE 0
#define MAX_PLAYERS 4
+#if 0
#ifndef MIN
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#endif
#ifndef SIGN
#define SIGN(a) ((a) < 0 ? -1 : ((a)>0 ? 1 : 0))
#endif
+#endif
#define SCREENX(a) ((a) - scroll_x)
#define SCREENY(a) ((a) - scroll_y)
#define PIX_SMALLFONT 8
#define PIX_MEDIUMFONT 9
/* Bitmaps without graphic file */
-#define PIX_DB_BACK 10
-#define PIX_DB_DOOR 11
-#define PIX_DB_FIELD 12
+#define PIX_DB_DOOR 10
+#define PIX_DB_FIELD 11
#define NUM_PICTURES 10
-#define NUM_BITMAPS 13
+#define NUM_BITMAPS 12
/* boundaries of arrays etc. */
#define MAX_PLAYER_NAME_LEN 10
#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)
+#if 0
#define GADGET_FRAME_DELAY 150 /* delay between gadget actions */
+#endif
#define MICROLEVEL_SCROLL_DELAY 50 /* delay for scrolling micro level */
#define MICROLEVEL_LABEL_DELAY 250 /* delay for micro level label */
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;
#if 0
extern DrawWindow window;
+extern DrawBuffer backbuffer;
extern GC gc;
#endif
-extern GC clip_gc[], tile_clip_gc;
+#if 0
+extern GC clip_gc[];
+#endif
+extern GC tile_clip_gc;
extern Bitmap pix[];
-extern Bitmap pix_masked[], tile_masked[];
-extern Pixmap clipmask[], tile_clipmask[];
+#if 0
+extern Bitmap pix_masked[];
+
+extern Bitmap tile_masked[];
+
+extern Pixmap clipmask[];
+#endif
+extern Pixmap tile_clipmask[];
-extern DrawBuffer drawto, drawto_field, backbuffer, fieldbuffer;
+#if 0
+extern DrawBuffer drawto;
+#endif
+extern DrawBuffer drawto_field, fieldbuffer;
#if 0
extern Colormap cmap;
#endif
extern int joystick_device;
extern char *joystick_device_name[];
+#if 0
extern char *program_name;
+#endif
extern int game_status;
extern boolean level_editor_test_game;
extern boolean network_playing;
+
+#if 0
extern int button_status;
extern boolean motion_status;
+#endif
+
extern int key_joystick_mapping;
extern int global_joystick_status, joystick_status;
extern boolean redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE];
extern int redraw_x1, redraw_y1;
+
+#if 0
extern int redraw_mask;
extern int redraw_tiles;
+#endif
extern short Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern short Ur[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern boolean network_player_action_received;
+#if 0
extern struct LevelDirInfo *leveldir_first, *leveldir_current;
+#endif
extern struct LevelInfo level;
extern struct PlayerInfo stored_player[], *local_player;
extern struct HiScore highscore[];
extern struct TapeInfo tape;
+#if 0
extern struct SampleInfo Sound[];
+#endif
extern struct JoystickInfo joystick[];
#if 0
#define MICROLEV_XPOS (SX + (SXSIZE - MICROLEV_XSIZE) / 2)
#define MICROLEV_YPOS (SX + 12 * TILEY - MICRO_TILEY)
#define MICROLABEL_YPOS (MICROLEV_YPOS + MICROLEV_YSIZE + 7)
+
+#if 0
#define FONT1_XSIZE 32
#define FONT1_YSIZE 32
#define FONT2_XSIZE 14
#define FONT5_YSIZE 14
#define FONT6_XSIZE 16
#define FONT6_YSIZE 32
+#endif
#define GFX_STARTX SX
#define GFX_STARTY SY
#define MINI_MORE_PER_LINE 16
#define MICRO_MORE_PER_LINE 16
+#if 0
#define FONT_CHARS_PER_LINE 16
#define FONT_LINES_PER_FONT 4
+#endif
/* game elements:
** 0 - 499: real elements, stored in level file
#define MV_UP (1 << 2)
#define MV_DOWN (1 << 3)
+#if 0
/* font types */
#define FS_SMALL 0
#define FS_BIG 1
#define FC_SPECIAL1 4
#define FC_SPECIAL2 5
#define FC_SPECIAL3 6
+#endif
/* values for game_status */
#define EXITGAME 0
#define SETUPINPUT 9
#define CALIBRATION 10
+#if 0
#ifndef RO_GAME_DIR
#define RO_GAME_DIR "."
#endif
#define LEVELS_DIRECTORY "levels"
#define TAPES_DIRECTORY "tapes"
#define SCORES_DIRECTORY "scores"
+#endif
#define PROGRAM_VERSION_STRING "1.5.0"
#define PROGRAM_TITLE_STRING "Rocks'n'Diamonds"
#define PROGRAM_IDENT_STRING PROGRAM_VERSION_STRING " " TARGET_STRING
#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"
+
+#if 0
/* default name for empty highscore entry */
#define EMPTY_PLAYER_NAME "no name"
/* default name for new levels */
#define NAMELESS_LEVEL_NAME "nameless level"
+#endif
+#if 0
/* values for button_status */
#define MB_NOT_PRESSED FALSE
#define MB_RELEASED FALSE
#define MB_LEFTBUTTON 1
#define MB_MIDDLEBUTTON 2
#define MB_RIGHTBUTTON 3
+#endif
+#if 0
/* values for redraw_mask */
#define REDRAW_ALL (1 << 0)
#define REDRAW_FIELD (1 << 1)
REDRAW_MICROLEVEL)
#define REDRAW_FPS (1 << 10)
#define REDRAWTILES_THRESHOLD (SCR_FIELDX * SCR_FIELDY / 2)
+#endif
+#if 0
/* areas in bitmap PIX_DOOR */
/* meaning in PIX_DB_DOOR: (3 PAGEs)
PAGEX1: 1. buffer for DOOR_1
#define DOOR_GFX_PAGEX8 (7 * DOOR_GFX_PAGESIZE)
#define DOOR_GFX_PAGEY1 0
#define DOOR_GFX_PAGEY2 DYSIZE
+#endif
/* for DrawGraphicAnimation() [tools.c] and AnimateToon() [cartoons.c] */
#define ANIM_NORMAL 0