projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-19990314-2-src
[rocksndiamonds.git]
/
src
/
main.h
diff --git
a/src/main.h
b/src/main.h
index ec429bfbffdc15bd954b50b79b1aa09aec8ac4ee..a625102cc706ac76f1b88198b4b14af8dd878bba 100644
(file)
--- a/
src/main.h
+++ b/
src/main.h
@@
-126,6
+126,7
@@
typedef unsigned char byte;
#define EP_BIT_SP_ELEMENT (1 << 28)
#define EP_BIT_QUICK_GATE (1 << 29)
#define EP_BIT_OVER_PLAYER (1 << 30)
#define EP_BIT_SP_ELEMENT (1 << 28)
#define EP_BIT_QUICK_GATE (1 << 29)
#define EP_BIT_OVER_PLAYER (1 << 30)
+#define EP_BIT_ACTIVE_BOMB (1 << 31)
#define IS_AMOEBALIVE(e) (Elementeigenschaften[e] & EP_BIT_AMOEBALIVE)
#define IS_AMOEBOID(e) (Elementeigenschaften[e] & EP_BIT_AMOEBOID)
#define IS_AMOEBALIVE(e) (Elementeigenschaften[e] & EP_BIT_AMOEBALIVE)
#define IS_AMOEBOID(e) (Elementeigenschaften[e] & EP_BIT_AMOEBOID)
@@
-158,6
+159,7
@@
typedef unsigned char byte;
#define IS_SP_ELEMENT(e) (Elementeigenschaften[e] & EP_BIT_SP_ELEMENT)
#define IS_QUICK_GATE(e) (Elementeigenschaften[e] & EP_BIT_QUICK_GATE)
#define IS_OVER_PLAYER(e) (Elementeigenschaften[e] & EP_BIT_OVER_PLAYER)
#define IS_SP_ELEMENT(e) (Elementeigenschaften[e] & EP_BIT_SP_ELEMENT)
#define IS_QUICK_GATE(e) (Elementeigenschaften[e] & EP_BIT_QUICK_GATE)
#define IS_OVER_PLAYER(e) (Elementeigenschaften[e] & EP_BIT_OVER_PLAYER)
+#define IS_ACTIVE_BOMB(e) (Elementeigenschaften[e] & EP_BIT_ACTIVE_BOMB)
#define IS_PLAYER(x,y) (ELEM_IS_PLAYER(StorePlayer[x][y]))
#define IS_PLAYER(x,y) (ELEM_IS_PLAYER(StorePlayer[x][y]))
@@
-208,6
+210,11
@@
typedef unsigned char byte;
#define MAX_ELEMENTS 512
#define MAX_NUM_AMOEBA 100
#define MAX_ELEMENTS 512
#define MAX_NUM_AMOEBA 100
+/* values for elements with content */
+#define MIN_ELEMENT_CONTENTS 1
+#define STD_ELEMENT_CONTENTS 4
+#define MAX_ELEMENT_CONTENTS 8
+
#define LEVEL_SCORE_ELEMENTS 16 /* level elements with score */
/* fundamental game speed values */
#define LEVEL_SCORE_ELEMENTS 16 /* level elements with score */
/* fundamental game speed values */
@@
-229,7
+236,8
@@
struct OptionInfo
char *display_name;
char *server_host;
int server_port;
char *display_name;
char *server_host;
int server_port;
- char *base_directory;
+ char *ro_base_directory;
+ char *rw_base_directory;
char *level_directory;
boolean serveronly;
boolean network;
char *level_directory;
boolean serveronly;
boolean network;
@@
-305,12
+313,6
@@
struct PlayerInfo
byte programmed_action; /* action forced by game itself (like moving
through doors); overrides other actions */
byte programmed_action; /* action forced by game itself (like moving
through doors); overrides other actions */
-
-#if 0
- byte programmed_speed; /* speed (for only one move) forced by game */
-#endif
-
-
int joystick_fd; /* file descriptor of player's joystick */
int jx,jy, last_jx,last_jy;
int joystick_fd; /* file descriptor of player's joystick */
int jx,jy, last_jx,last_jy;
@@
-318,11
+320,12
@@
struct PlayerInfo
int Frame;
boolean Pushing;
int Frame;
boolean Pushing;
- boolean
gone,
LevelSolved, GameOver;
+ boolean LevelSolved, GameOver;
boolean snapped;
boolean snapped;
- int move_speed;
unsigned long move_delay;
unsigned long move_delay;
+ int move_delay_value;
+
int last_move_dir;
unsigned long push_delay;
int last_move_dir;
unsigned long push_delay;
@@
-347,16
+350,18
@@
struct LevelInfo
int fieldx;
int fieldy;
int time;
int fieldx;
int fieldy;
int time;
- int
edelsteine
;
+ int
gems_needed
;
char name[MAX_LEVEL_NAME_LEN + 1];
char author[MAX_LEVEL_AUTHOR_LEN + 1];
int score[LEVEL_SCORE_ELEMENTS];
char name[MAX_LEVEL_NAME_LEN + 1];
char author[MAX_LEVEL_AUTHOR_LEN + 1];
int score[LEVEL_SCORE_ELEMENTS];
- int mampfer_inhalt[8][3][3];
- int tempo_amoebe;
- int dauer_sieb;
- int dauer_ablenk;
- int amoebe_inhalt;
+ int yam_content[MAX_ELEMENT_CONTENTS][3][3];
+ int num_yam_contents;
+ int amoeba_speed;
+ int amoeba_content;
+ int time_magic_wall;
+ int time_wheel;
boolean double_speed;
boolean double_speed;
+ boolean gravity;
};
struct LevelDirInfo
};
struct LevelDirInfo
@@
-394,6
+399,18
@@
struct TapeInfo
} pos[MAX_TAPELEN];
};
} pos[MAX_TAPELEN];
};
+struct GameInfo
+{
+ int emulation;
+ int yam_content_nr;
+ boolean magic_wall_active;
+ int magic_wall_time_left;
+};
+
+struct GlobalInfo
+{
+};
+
extern Display *display;
extern Visual *visual;
extern int screen;
extern Display *display;
extern Visual *visual;
extern int screen;
@@
-461,12
+478,9
@@
extern int SBY_Upper, SBY_Lower;
extern int ZX,ZY, ExitX,ExitY;
extern int AllPlayersGone;
extern int FrameCounter, TimeFrames, TimePlayed, TimeLeft;
extern int ZX,ZY, ExitX,ExitY;
extern int AllPlayersGone;
extern int FrameCounter, TimeFrames, TimePlayed, TimeLeft;
-extern int MampferMax, MampferNr;
extern boolean SiebAktiv;
extern int SiebCount;
extern boolean SiebAktiv;
extern int SiebCount;
-extern int game_emulation;
-
extern boolean network_player_action_received;
extern struct LevelDirInfo leveldir[];
extern boolean network_player_action_received;
extern struct LevelDirInfo leveldir[];
@@
-480,6
+494,8
@@
extern struct OptionInfo options;
extern struct SetupInfo setup;
extern struct SetupFileList *setup_list;
extern struct SetupFileList *level_setup_list;
extern struct SetupInfo setup;
extern struct SetupFileList *setup_list;
extern struct SetupFileList *level_setup_list;
+extern struct GameInfo game;
+extern struct GlobalInfo global;
extern char *sound_name[];
extern int background_loop[];
extern char *sound_name[];
extern int background_loop[];
@@
-531,6
+547,8
@@
extern char *element_info[];
#define FONT3_YSIZE 14
#define FONT4_XSIZE 16
#define FONT4_YSIZE 16
#define FONT3_YSIZE 14
#define FONT4_XSIZE 16
#define FONT4_YSIZE 16
+#define FONT5_XSIZE 10
+#define FONT5_YSIZE 14
#define GFX_STARTX SX
#define GFX_STARTY SY
#define GFX_STARTX SX
#define GFX_STARTY SY
@@
-585,7
+603,7
@@
extern char *element_info[];
#define EL_KOKOSNUSS 25
#define EL_LIFE 26
#define EL_LIFE_ASYNC 27
#define EL_KOKOSNUSS 25
#define EL_LIFE 26
#define EL_LIFE_ASYNC 27
-#define EL_DYNAMIT
28
+#define EL_DYNAMIT
E_ACTIVE
28
#define EL_BADEWANNE 29
#define EL_ABLENK_AUS 30
#define EL_ABLENK_EIN 31
#define EL_BADEWANNE 29
#define EL_ABLENK_AUS 30
#define EL_ABLENK_EIN 31
@@
-601,7
+619,7
@@
extern char *element_info[];
#define EL_PFORTE2X 41
#define EL_PFORTE3X 42
#define EL_PFORTE4X 43
#define EL_PFORTE2X 41
#define EL_PFORTE3X 42
#define EL_PFORTE4X 43
-#define EL_DYNAMIT
_AUS
44
+#define EL_DYNAMIT
E_INACTIVE
44
#define EL_PACMAN 45
#define EL_UNSICHTBAR 46
#define EL_BIRNE_AUS 47
#define EL_PACMAN 45
#define EL_UNSICHTBAR 46
#define EL_BIRNE_AUS 47
@@
-620,7
+638,9
@@
extern char *element_info[];
#define EL_MAMPFER2 60
#define EL_SIEB2_INAKTIV 61
#define EL_INVISIBLE_STEEL 62
#define EL_MAMPFER2 60
#define EL_SIEB2_INAKTIV 61
#define EL_INVISIBLE_STEEL 62
-#define EL_DYNABOMB 63
+
+#define EL_UNUSED_63 63
+
#define EL_DYNABOMB_NR 64
#define EL_DYNABOMB_SZ 65
#define EL_DYNABOMB_XL 66
#define EL_DYNABOMB_NR 64
#define EL_DYNABOMB_SZ 65
#define EL_DYNABOMB_XL 66
@@
-808,6
+828,10
@@
extern char *element_info[];
#define EL_EM_KEY_2 310
#define EL_EM_KEY_3 311
#define EL_EM_KEY_4 312
#define EL_EM_KEY_2 310
#define EL_EM_KEY_3 311
#define EL_EM_KEY_4 312
+#define EL_DYNABOMB_ACTIVE_1 313
+#define EL_DYNABOMB_ACTIVE_2 314
+#define EL_DYNABOMB_ACTIVE_3 315
+#define EL_DYNABOMB_ACTIVE_4 316
/* "unreal" (and therefore not drawable) runtime elements */
#define EL_BLOCKED 400
/* "unreal" (and therefore not drawable) runtime elements */
#define EL_BLOCKED 400
@@
-1250,8
+1274,9
@@
extern char *element_info[];
#define SND_SP_BOOOM 58
#define SND_SP_EXIT 59
#define SND_EMPTY 60
#define SND_SP_BOOOM 58
#define SND_SP_EXIT 59
#define SND_EMPTY 60
+#define SND_GATE 61
-#define NUM_SOUNDS 6
1
+#define NUM_SOUNDS 6
2
/* default input keys */
#define KEY_UNDEFINDED XK_VoidSymbol
/* default input keys */
#define KEY_UNDEFINDED XK_VoidSymbol
@@
-1281,6
+1306,7
@@
extern char *element_info[];
#define FC_YELLOW 3
#define FC_SPECIAL1 4
#define FC_SPECIAL2 5
#define FC_YELLOW 3
#define FC_SPECIAL1 4
#define FC_SPECIAL2 5
+#define FC_SPECIAL3 6
/* values for game_status */
#define EXITGAME 0
/* values for game_status */
#define EXITGAME 0
@@
-1295,11
+1321,16
@@
extern char *element_info[];
#define SETUPINPUT 9
#define CALIBRATION 10
#define SETUPINPUT 9
#define CALIBRATION 10
-#ifndef GAME_DIR
-#define GAME_DIR "."
+#ifndef RO_GAME_DIR
+#define RO_GAME_DIR "."
+#endif
+
+#ifndef RW_GAME_DIR
+#define RW_GAME_DIR "."
#endif
#endif
-#define BASE_PATH GAME_DIR
+#define RO_BASE_PATH RO_GAME_DIR
+#define RW_BASE_PATH RW_GAME_DIR
#define GRAPHICS_DIRECTORY "graphics"
#define SOUNDS_DIRECTORY "sounds"
#define GRAPHICS_DIRECTORY "graphics"
#define SOUNDS_DIRECTORY "sounds"