Change magic number of replays. (See
[neverball] / ball / level.h
index 072ad67..6ef95a6 100644 (file)
@@ -10,9 +10,9 @@
 
 struct score
 {
-    char player[NSCORE+1][MAXNAM]; /* player name */
-    int  timer[NSCORE+1];          /* time elapsed */
-    int  coins[NSCORE+1];          /* coins collected */
+    char player[NSCORE + 1][MAXNAM]; /* player name */
+    int  timer[NSCORE + 1];          /* time elapsed */
+    int  coins[NSCORE + 1];          /* coins collected */
 };
 
 void score_init_hs(struct score *, int, int);
@@ -24,11 +24,14 @@ void score_init_hs(struct score *, int, int);
 struct level
 {
     /* Level identity */
-       
+
     char file[MAXSTR];    /* sol main file */
-    
+    char name[MAXSTR];    /* the level name */
+    int  version;         /* the level version */
+    char author[MAXSTR];  /* the author */
+
     /* Time and goal information */
-    
+
     int time;             /* time limit */
     int goal;             /* coins needed */
 
@@ -37,15 +40,18 @@ struct level
     struct score coin_score;  /* "most coin" score */
 
     /* Regarding set information */
-    
-    struct set * set;       /* set (NULL in single mode) */
+
+    struct set *set;        /* set (NULL in single mode) */
     int number;             /* level number in the set */
-    const char *numbername; /* string representation of the number (eg. B1) */
+    char numbername[3];     /* string representation of the number (eg. B1) */
     int is_locked;          /* Is the level unplayable */
-    int is_bonus;           /* Is the level an extra-bonus level? */ 
-    
+    int is_bonus;           /* Is the level an extra-bonus level? */
+    int is_completed;       /* Is the level goal terminated? */
+    int is_last;            /* Is the level the last of the set? */
+
     /* Other metadata (files are relative the data file) */
-    
+
+    char message[MAXSTR]; /* intro message */
     char back[MAXSTR];    /* sol background file */
     char grad[MAXSTR];    /* gradiant backgound image */
     char shot[MAXSTR];    /* screenshot image */
@@ -67,7 +73,7 @@ struct level_game
 
     int goal;          /* coins needed */
     int time;          /* time limit */
-    
+
     /* MODE_CHALLENGE only */
     int score;         /* coin total */
     int balls;         /* live count */
@@ -77,7 +83,8 @@ struct level_game
     int state;         /* state ending */
     int coins;         /* coins collected */
     int timer;         /* time elapsed */
-    
+    int state_value;   /* more precision about the state: skip for goal */
+
     /* rank = 3  => unclassed */
     int coin_rank;     /* rank in the level high-scores */
     int goal_rank;     /* rank in the level high-scores */
@@ -85,6 +92,10 @@ struct level_game
     int score_rank;    /* rank in the set high-scores */
     int times_rank;    /* rank in the set high-scores */
 
+    /* What about the game and the set? */
+    int dead;          /* Is the game over and lost? */
+    int win;           /* Is the game over and win? */
+    int unlock;        /* Is the next level newly unlocked */
     const struct level *next_level; /* next level (NULL no next level) */
 };
 
@@ -99,10 +110,11 @@ const char *mode_to_str(int);
 
 /*---------------------------------------------------------------------------*/
 
-#define GAME_NONE 0
-#define GAME_TIME 1
-#define GAME_GOAL 2
-#define GAME_FALL 3
+#define GAME_NONE 0     /* No event (or aborted) */
+#define GAME_TIME 1     /* Time's up */
+#define GAME_GOAL 2    /* Goal reached */
+#define GAME_FALL 3    /* Fall out */
+#define GAME_SPEC 4    /* Special goal reached */
 
 const char *state_to_str(int);