summaryrefslogtreecommitdiff
path: root/src/include/data_game.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/data_game.h')
-rw-r--r--src/include/data_game.h42
1 files changed, 40 insertions, 2 deletions
diff --git a/src/include/data_game.h b/src/include/data_game.h
index 64b3827..669c0ef 100644
--- a/src/include/data_game.h
+++ b/src/include/data_game.h
@@ -7,9 +7,46 @@
#define MAX_LEMMINGS_COUNT 100 /* Should be used also by the parser... */
+enum lemmtype {
+ /* Well known types */
+ faller,walker,climber,floater,stopper,builder,
+ digger,basher,miner, /* vertical / horizontal / diagonal */
+ jumper, /* a Lemming jumping over a small obstacle */
+
+ /* Lemming disparitions */
+ bomber,
+ splat, /* a Lemming dieing from a fall */
+ drowning, /* a Lemming drowning in the water */
+ trapped, /* a Lemming killed by a trap */
+ exiting,
+
+ /* transitionnal states, special animation*/
+ climber_to_walker,
+ builder_end, /* a builder Lemmings with no more steps in his backpack (shrugling) */
+
+ /* transitionnal states, no special animation*/
+ floater_start,
+ bomber_stopper, /* a stopper that is told to explode */
+
+ /* Special states for algorithmic purposes */
+ nuke /* already dead Lemming */
+ /*undefined No lemm type yet (usefull?) */
+};
+
+enum lemmdir { left, right };
+
typedef struct {
- void *todo;
- /* role, state, animframe... */
+ enum lemmtype type;
+ enum lemmdir dir;
+ int x,y; /* Lemming Foot coords */
+ int maskX, maskY;
+ int frameIdx; /* For animated sprites */
+ int counter, counter2; /* counter used for internal state changes */
+ int explodeNumCtr, explodeCtr;
+ int canFloat, canClimb, canChangeSkill, nuke, hasDied, hasLeft,
+ int selectCtr; /** counter used to display the select image in replay mode */
+
+ renderItem_t *renderItem;
} lemming_t;
enum skills {
@@ -17,6 +54,7 @@ enum skills {
sk_basher, sk_miner, sk_digger, sk_count
};
+
typedef struct {
/* Game time counter */
int tick;