#define MAX_LINE_LEN 1000 /* maximal input line length */
#define CHUNK_ID_LEN 4 /* IFF style chunk id length */
#define LEVEL_HEADER_SIZE 80 /* size of level file header */
-#define LEVEL_HEADER_UNUSED 18 /* unused level header bytes */
+#define LEVEL_HEADER_UNUSED 16 /* unused level header bytes */
#define TAPE_HEADER_SIZE 20 /* size of tape file header */
#define TAPE_HEADER_UNUSED 7 /* unused tape header bytes */
#define FILE_VERSION_1_0 10 /* old 1.0 file version */
IS_LEVELCLASS_USER(n) ? LEVELCLASS_USER : \
LEVELCLASS_UNDEFINED)
+#define LEVELCOLOR(n) (IS_LEVELCLASS_TUTORIAL(n) ? FC_BLUE : \
+ IS_LEVELCLASS_CLASSICS(n) ? FC_YELLOW : \
+ IS_LEVELCLASS_CONTRIBUTION(n) ? FC_GREEN : \
+ IS_LEVELCLASS_USER(n) ? FC_RED : FC_BLUE)
+
static void SaveUserLevelInfo(); /* for 'InitUserLevelDir()' */
static char *getSetupLine(char *, int); /* for 'SaveUserLevelInfo()' */
level.dauer_sieb = 10;
level.dauer_ablenk = 10;
level.amoebe_inhalt = EL_DIAMANT;
-
- level.high_speed = FALSE;
+ level.double_speed = FALSE;
+ level.gravity = FALSE;
for(i=0; i<MAX_LEVEL_NAME_LEN; i++)
level.name[i] = '\0';
level.tempo_amoebe = fgetc(file);
level.dauer_sieb = fgetc(file);
level.dauer_ablenk = fgetc(file);
- level.amoebe_inhalt = fgetc(file);
+ level.amoebe_inhalt = fgetc(file);
+ level.double_speed = (fgetc(file) == 1 ? TRUE : FALSE);
+ level.gravity = (fgetc(file) == 1 ? TRUE : FALSE);
for(i=0; i<LEVEL_HEADER_UNUSED; i++) /* skip unused header bytes */
fgetc(file);
{
Error(ERR_WARN, "level file '%s' has version number 1.0", filename);
Error(ERR_WARN, "using high speed movement for player");
- level.high_speed = TRUE;
+ level.double_speed = TRUE;
}
}
fputc(level.dauer_sieb, file);
fputc(level.dauer_ablenk, file);
fputc(level.amoebe_inhalt, file);
+ fputc((level.double_speed ? 1 : 0), file);
+ fputc((level.gravity ? 1 : 0), file);
for(i=0; i<LEVEL_HEADER_UNUSED; i++) /* set unused header bytes to zero */
fputc(0, file);
/* cut trailing comment or whitespace from input line */
for (line_ptr = line; *line_ptr; line_ptr++)
{
- if (*line_ptr == '#' || *line_ptr == '\n')
+ if (*line_ptr == '#' || *line_ptr == '\n' || *line_ptr == '\r')
{
*line_ptr = '\0';
break;
leveldir[current_entry].levels - 1;
leveldir[current_entry].user_defined =
(level_directory == options.level_directory ? FALSE : TRUE);
+ leveldir[current_entry].color = LEVELCOLOR(current_entry);
freeSetupFileList(setup_file_list);
current_entry++;