#define MAX_LEV_FIELDX 128
#define MAX_LEV_FIELDY 128
-#define MAX_PLAYERS 4
-
#define SCREENX(a) ((a) - scroll_x)
#define SCREENY(a) ((a) - scroll_y)
#define LEVELX(a) ((a) + scroll_x)
#define IS_DRAWABLE(e) ((e) < EL_BLOCKED)
#define IS_NOT_DRAWABLE(e) ((e) >= EL_BLOCKED)
#define TAPE_IS_EMPTY(x) ((x).length == 0)
-#define TAPE_IS_STOPPED(x) (!(x).recording && !(x).playing &&!(x).pausing)
+#define TAPE_IS_STOPPED(x) (!(x).recording && !(x).playing)
#define PLAYERINFO(x,y) (&stored_player[StorePlayer[x][y]-EL_SPIELER1])
#define SHIELD_ON(p) ((p)->shield_passive_time_left > 0)
#define NUM_BITMAPS 12
/* boundaries of arrays etc. */
-#define MAX_PLAYER_NAME_LEN 10
#define MAX_LEVEL_NAME_LEN 32
#define MAX_LEVEL_AUTHOR_LEN 32
#define MAX_TAPELEN (1000 * 50) /* max. time * framerate */
int Score;
};
-struct SetupJoystickInfo
-{
- char *device_name;
- int xleft, xmiddle, xright;
- int yupper, ymiddle, ylower;
- int snap;
- int bomb;
-};
-
-struct SetupKeyboardInfo
-{
- Key left;
- Key right;
- Key up;
- Key down;
- Key snap;
- Key bomb;
-};
-
-struct SetupInputInfo
-{
- boolean use_joystick;
- struct SetupJoystickInfo joy;
- struct SetupKeyboardInfo key;
-};
-
-struct SetupInfo
-{
- char *player_name;
-
- boolean sound;
- boolean sound_loops;
- boolean sound_music;
- boolean sound_simple;
- boolean toons;
- boolean double_buffering;
- boolean direct_draw; /* !double_buffering (redundant!) */
- boolean scroll_delay;
- boolean soft_scrolling;
- boolean fading;
- boolean autorecord;
- boolean quick_doors;
- boolean team_mode;
- boolean handicap;
- boolean time_limit;
- boolean fullscreen;
-
- struct SetupInputInfo input[MAX_PLAYERS];
-};
-
struct PlayerInfo
{
boolean present; /* player present in level playfield */
byte programmed_action; /* action forced by game itself (like moving
through doors); overrides other actions */
- int joystick_fd; /* file descriptor of player's joystick */
-
int jx,jy, last_jx,last_jy;
int MovDir, MovPos, GfxPos;
int Frame;
boolean LevelSolved, GameOver;
boolean snapped;
- unsigned long move_delay;
- int move_delay_value;
-
int last_move_dir;
int is_moving;
+ unsigned long move_delay;
+ int move_delay_value;
+
unsigned long push_delay;
unsigned long push_delay_value;
boolean pause_before_death;
boolean recording, playing, pausing;
boolean fast_forward;
+ boolean index_search;
+ boolean quick_resume;
+ boolean single_step;
boolean changed;
boolean player_participates[MAX_PLAYERS];
int num_participating_players;
+
struct
{
byte action[MAX_PLAYERS];
extern DrawBuffer *fieldbuffer;
extern DrawBuffer *drawto_field;
-extern int joystick_device;
-extern char *joystick_device_name[];
-
extern int game_status;
extern boolean level_editor_test_game;
extern boolean network_playing;
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;
extern unsigned long Elementeigenschaften1[MAX_ELEMENTS];
extern unsigned long Elementeigenschaften2[MAX_ELEMENTS];
-extern int level_nr;
extern int lev_fieldx,lev_fieldy, scroll_x,scroll_y;
extern int FX,FY, ScrollStepSize;
extern struct PlayerInfo stored_player[], *local_player;
extern struct HiScore highscore[];
extern struct TapeInfo tape;
-extern struct JoystickInfo joystick[];
-extern struct SetupInfo setup;
extern struct GameInfo game;
extern struct GlobalInfo global;
extern char *sound_name[];
-extern int background_loop[];
-extern int num_bg_loops;
extern char *element_info[];
extern int num_element_info;
#define NUM_SOUNDS 55
-/* default input keys */
-#define DEFAULT_KEY_LEFT KSYM_Left
-#define DEFAULT_KEY_RIGHT KSYM_Right
-#define DEFAULT_KEY_UP KSYM_Up
-#define DEFAULT_KEY_DOWN KSYM_Down
-#define DEFAULT_KEY_SNAP KSYM_Shift_L
-#define DEFAULT_KEY_BOMB KSYM_Shift_R
-#define DEFAULT_KEY_OKAY KSYM_Return
-#define DEFAULT_KEY_CANCEL KSYM_Escape
-
-/* directions for moving */
-#define MV_NO_MOVING 0
-#define MV_LEFT (1 << 0)
-#define MV_RIGHT (1 << 1)
-#define MV_UP (1 << 2)
-#define MV_DOWN (1 << 3)
-
/* values for game_status */
#define EXITGAME 0
#define MAINMENU 1
#define TYPENAME 6
#define HALLOFFAME 7
#define SETUP 8
-#define SETUPINPUT 9
-#define CALIBRATION 10
#define PROGRAM_VERSION_MAJOR 2
#define PROGRAM_VERSION_MINOR 0
#define WINDOW_SUBTITLE_STRING PROGRAM_RIGHTS_STRING " " PROGRAM_AUTHOR_STRING
#define ICON_TITLE_STRING PROGRAM_TITLE_STRING
#define UNIX_USERDATA_DIRECTORY ".rocksndiamonds"
+#define COOKIE_PREFIX "ROCKSNDIAMONDS"
+#define FILENAME_PREFIX "Rocks"
#define X11_ICON_FILENAME "rocks_icon.xbm"
#define X11_ICONMASK_FILENAME "rocks_iconmask.xbm"