X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=39692e8562ad56d763a6ae1893267286b26b3aa2;hb=f1ae7658eb84c2fd2a9c03e8cc8ccbfe63ed75c0;hp=7edb064dcb758e4597099df743af5fbbc6b87abd;hpb=9c285b0e8e4d81c5559815c5f7142685ce865206;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 7edb064d..39692e85 100644 --- a/src/main.h +++ b/src/main.h @@ -342,6 +342,9 @@ #define IS_CUSTOM_ELEMENT(e) ((e) >= EL_CUSTOM_START && \ (e) <= EL_CUSTOM_END) +#define IS_GROUP_ELEMENT(e) ((e) >= EL_GROUP_START && \ + (e) <= EL_GROUP_END) + #define IS_ENVELOPE(e) ((e) >= EL_ENVELOPE_1 && \ (e) <= EL_ENVELOPE_4) @@ -418,6 +421,8 @@ #define MAX_ENVELOPE_TEXT_LEN (MAX_ENVELOPE_XSIZE * MAX_ENVELOPE_YSIZE) #define MIN_CHANGE_PAGES 1 #define MAX_CHANGE_PAGES 16 +#define MIN_ELEMENTS_IN_GROUP 1 +#define MAX_ELEMENTS_IN_GROUP 16 /* values for elements with content */ #define MIN_ELEMENT_CONTENTS 1 @@ -824,7 +829,16 @@ #define EL_ENVELOPE_3 622 #define EL_ENVELOPE_4 623 -#define NUM_FILE_ELEMENTS 624 +/* ---------- begin of group elements section ------------------------------ */ +#define EL_GROUP_START 624 + +#include "conf_grp.h" /* include auto-generated data structure definitions */ + +#define NUM_GROUP_ELEMENTS 32 +#define EL_GROUP_END 655 +/* ---------- end of custom elements section ------------------------------- */ + +#define NUM_FILE_ELEMENTS 656 /* "real" (and therefore drawable) runtime elements */ @@ -1259,6 +1273,8 @@ struct PlayerInfo unsigned long move_delay; int move_delay_value; + int move_delay_reset_counter; + unsigned long push_delay; unsigned long push_delay_value; @@ -1445,6 +1461,13 @@ struct ElementChangeInfo int other_action; /* change triggered by other element actions */ }; +struct ElementGroupInfo +{ + int num_elements; /* number of elements in this group */ + + short element[MAX_ELEMENTS_IN_GROUP]; /* list of elements in this group */ +}; + struct ElementInfo { /* ---------- token and description strings ---------- */ @@ -1497,6 +1520,8 @@ struct ElementInfo int num_change_pages; /* actual number of change pages */ int current_change_page; /* currently edited change page */ + struct ElementGroupInfo *group; /* pointer to element group info */ + /* ---------- internal values used at runtime when playing ---------- */ unsigned long change_events; /* bitfield for combined change events */