diff options
Diffstat (limited to 'src/include/data_game.h')
-rw-r--r-- | src/include/data_game.h | 42 |
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; |