X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=5f0a813a1c71a68b98995920e798a855c0df7f65;hb=20e58eb6573a45a41c25958e17e8d9c20f738edc;hp=10e7161a46778b56d245c85ee7741044413ae189;hpb=f6482a3218cec02ca8e251993972e681e47d4244;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 10e7161a..5f0a813a 100644 --- a/src/main.h +++ b/src/main.h @@ -208,6 +208,11 @@ typedef unsigned char byte; #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 */ @@ -305,12 +310,6 @@ struct PlayerInfo 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; @@ -318,11 +317,12 @@ struct PlayerInfo int Frame; boolean Pushing; - boolean gone, LevelSolved, GameOver; + boolean LevelSolved, GameOver; boolean snapped; - int move_speed; unsigned long move_delay; + int move_delay_value; + int last_move_dir; unsigned long push_delay; @@ -347,15 +347,16 @@ struct LevelInfo 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]; - 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 gravity; }; @@ -395,6 +396,18 @@ struct TapeInfo } 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; @@ -462,12 +475,9 @@ extern int SBY_Upper, SBY_Lower; 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 int game_emulation; - extern boolean network_player_action_received; extern struct LevelDirInfo leveldir[]; @@ -481,6 +491,8 @@ extern struct OptionInfo options; 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[]; @@ -532,6 +544,8 @@ extern char *element_info[]; #define FONT3_YSIZE 14 #define FONT4_XSIZE 16 #define FONT4_YSIZE 16 +#define FONT5_XSIZE 10 +#define FONT5_YSIZE 12 #define GFX_STARTX SX #define GFX_STARTY SY @@ -1282,6 +1296,7 @@ extern char *element_info[]; #define FC_YELLOW 3 #define FC_SPECIAL1 4 #define FC_SPECIAL2 5 +#define FC_SPECIAL3 6 /* values for game_status */ #define EXITGAME 0