projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20030830-2-src
[rocksndiamonds.git]
/
src
/
main.h
diff --git
a/src/main.h
b/src/main.h
index 1f16fcc82deec921f94ebd28c5730e55c91876e5..68ad89ca303d0a240c3c656f0e3d25204e26c355 100644
(file)
--- a/
src/main.h
+++ b/
src/main.h
@@
-185,9
+185,12
@@
#define CH_EVENT_BIT(c) (1 << (c))
#define CH_EVENT_VAR(e) (element_info[e].change->events)
#define CH_EVENT_BIT(c) (1 << (c))
#define CH_EVENT_VAR(e) (element_info[e].change->events)
+#define CH_ANY_EVENT_VAR(e) (element_info[e].change_events)
#define HAS_CHANGE_EVENT(e,c) (IS_CUSTOM_ELEMENT(e) && \
(CH_EVENT_VAR(e) & CH_EVENT_BIT(c)) != 0)
#define HAS_CHANGE_EVENT(e,c) (IS_CUSTOM_ELEMENT(e) && \
(CH_EVENT_VAR(e) & CH_EVENT_BIT(c)) != 0)
+#define HAS_ANY_CHANGE_EVENT(e,c) (IS_CUSTOM_ELEMENT(e) && \
+ (CH_ANY_EVENT_VAR(e) & CH_EVENT_BIT(c)) != 0)
#define SET_CHANGE_EVENT(e,c,v) (IS_CUSTOM_ELEMENT(e) ? \
((v) ? \
(CH_EVENT_VAR(e) |= CH_EVENT_BIT(c)) : \
#define SET_CHANGE_EVENT(e,c,v) (IS_CUSTOM_ELEMENT(e) ? \
((v) ? \
(CH_EVENT_VAR(e) |= CH_EVENT_BIT(c)) : \
@@
-892,11
+895,12
@@
#define GFX_SPECIAL_ARG_EDITOR 3
#define GFX_SPECIAL_ARG_INFO 4
#define GFX_SPECIAL_ARG_SETUP 5
#define GFX_SPECIAL_ARG_EDITOR 3
#define GFX_SPECIAL_ARG_INFO 4
#define GFX_SPECIAL_ARG_SETUP 5
-#define GFX_SPECIAL_ARG_DOOR 6
-#define GFX_SPECIAL_ARG_PREVIEW 7
-#define GFX_SPECIAL_ARG_CRUMBLED 8
+#define GFX_SPECIAL_ARG_PLAYING 6
+#define GFX_SPECIAL_ARG_DOOR 7
+#define GFX_SPECIAL_ARG_PREVIEW 8
+#define GFX_SPECIAL_ARG_CRUMBLED 9
-#define NUM_SPECIAL_GFX_ARGS
9
+#define NUM_SPECIAL_GFX_ARGS
10
/* values for image configuration suffixes */
/* values for image configuration suffixes */
@@
-976,12
+980,12
@@
#define GAME_MODE_EDITOR 3
#define GAME_MODE_INFO 4
#define GAME_MODE_SETUP 5
#define GAME_MODE_EDITOR 3
#define GAME_MODE_INFO 4
#define GAME_MODE_SETUP 5
-#define GAME_MODE_PSEUDO_DOOR 6
-#define GAME_MODE_PSEUDO_PREVIEW 7
-#define GAME_MODE_PSEUDO_CRUMBLED 8
+#define GAME_MODE_PLAYING 6
+#define GAME_MODE_PSEUDO_DOOR 7
+#define GAME_MODE_PSEUDO_PREVIEW 8
+#define GAME_MODE_PSEUDO_CRUMBLED 9
/* there are no special config file suffixes for these modes */
/* there are no special config file suffixes for these modes */
-#define GAME_MODE_PLAYING 9
#define GAME_MODE_PSEUDO_TYPENAME 10
#define GAME_MODE_QUIT 11
#define GAME_MODE_PSEUDO_TYPENAME 10
#define GAME_MODE_QUIT 11
@@
-1233,6
+1237,8
@@
struct DoorInfo
struct ElementChangeInfo
{
struct ElementChangeInfo
{
+ boolean can_change; /* use or ignore this change info */
+
unsigned long events; /* bitfield for change events */
short target_element; /* target element after change */
unsigned long events; /* bitfield for change events */
short target_element; /* target element after change */
@@
-1317,10
+1323,13
@@
struct ElementInfo
int num_change_pages; /* actual number of change pages */
int current_change_page; /* currently edited change page */
int num_change_pages; /* actual number of change pages */
int current_change_page; /* currently edited change page */
- /* ---------- internal values used
in game at runtime
---------- */
+ /* ---------- internal values used
at runtime when playing
---------- */
unsigned long change_events; /* bitfield for combined change events */
unsigned long change_events; /* bitfield for combined change events */
+ int event_page_num[NUM_CHANGE_EVENTS]; /* page number for each event */
+ struct ElementChangeInfo *event_page[NUM_CHANGE_EVENTS]; /* page for event */
+
/* ---------- internal values used in level editor ---------- */
int access_type; /* walkable or passable */
/* ---------- internal values used in level editor ---------- */
int access_type; /* walkable or passable */