1 /***********************************************************
2 * Rocks'n'Diamonds -- McDuffin Strikes Back! *
3 *----------------------------------------------------------*
4 * (c) 1995-2002 Artsoft Entertainment *
6 * Detmolder Strasse 189 *
9 * e-mail: info@artsoft.org *
10 *----------------------------------------------------------*
12 ***********************************************************/
20 /* values for level file type identifier */
21 #define LEVEL_FILE_TYPE_UNKNOWN 0
22 #define LEVEL_FILE_TYPE_RND 1
23 #define LEVEL_FILE_TYPE_BD 2
24 #define LEVEL_FILE_TYPE_EM 3
25 #define LEVEL_FILE_TYPE_SP 4
26 #define LEVEL_FILE_TYPE_DX 5
27 #define LEVEL_FILE_TYPE_SB 6
28 #define LEVEL_FILE_TYPE_DC 7
30 #define NUM_LEVEL_FILE_TYPES 8
32 #define GAME_ENGINE_TYPE_UNKNOWN LEVEL_FILE_TYPE_UNKNOWN
33 #define GAME_ENGINE_TYPE_RND LEVEL_FILE_TYPE_RND
34 #define GAME_ENGINE_TYPE_EM LEVEL_FILE_TYPE_EM
36 #define NUM_ENGINE_TYPES 3
38 #define LEVEL_PACKED_START 100
39 #define PACKED_LEVELS(x) (LEVEL_PACKED_START + x)
41 #define LEVEL_FILE_TYPE_RND_PACKED PACKED_LEVELS(LEVEL_FILE_TYPE_RND)
42 #define LEVEL_FILE_TYPE_EM_PACKED PACKED_LEVELS(LEVEL_FILE_TYPE_EM)
44 #define IS_SINGLE_LEVEL_FILE(x) (x < LEVEL_PACKED_START)
45 #define IS_PACKED_LEVEL_FILE(x) (x > LEVEL_PACKED_START)
48 void setElementChangePages(struct ElementInfo *, int);
49 void setElementChangeInfoToDefaults(struct ElementChangeInfo *);
51 char *getDefaultLevelFilename(int);
53 void LoadLevelFromFilename(struct LevelInfo *, char *);
55 void LoadLevelTemplate(int);
57 void SaveLevelTemplate();
58 void DumpLevel(struct LevelInfo *);
60 void LoadTapeFromFilename(char *);
62 void LoadSolutionTape(int);
64 void DumpTape(struct TapeInfo *);
72 void LoadCustomElementDescriptions();
73 void LoadSpecialMenuDesignSettings();
74 void LoadUserDefinedEditorElementList(int **, int *);
76 void LoadHelpAnimInfo();
77 void LoadHelpTextInfo();
79 void ConvertLevels(void);