added support for special media buttons on Amazon Fire TV remote control
[rocksndiamonds.git] / src / files.h
index c0050d3615d0e65eb340c3f31fc6504b8981de04..46dcae9c9aa4f588c59c0e8cf11b3ff65129489b 100644 (file)
@@ -1,68 +1,79 @@
-/***********************************************************
-*  Rocks'n'Diamonds -- McDuffin Strikes Back!              *
-*----------------------------------------------------------*
-*  (c) 1995-98 Artsoft Entertainment                       *
-*              Holger Schemel                              *
-*              Oststrasse 11a                              *
-*              33604 Bielefeld                             *
-*              phone: ++49 +521 290471                     *
-*              email: aeglos@valinor.owl.de                *
-*----------------------------------------------------------*
-*  files.h                                                 *
-***********************************************************/
+// ============================================================================
+// Rocks'n'Diamonds - McDuffin Strikes Back!
+// ----------------------------------------------------------------------------
+// (c) 1995-2014 by Artsoft Entertainment
+//                         Holger Schemel
+//                 info@artsoft.org
+//                 http://www.artsoft.org/
+// ----------------------------------------------------------------------------
+// files.h
+// ============================================================================
 
 #ifndef FILES_H
 #define FILES_H
 
 #include "main.h"
 
-/* names file mode: local level setup or global game setup */
-#define PLAYER_LEVEL   0
-#define PLAYER_SETUP   1
-
-/* Setup-Bits */
-#define SETUP_TOONS                    (1<<0)
-#define SETUP_SOUND                    (1<<1)
-#define SETUP_SOUND_LOOPS              (1<<2)
-#define SETUP_SOUND_MUSIC              (1<<3)
-#define SETUP_DIRECT_DRAW              (1<<4)
-#define SETUP_FADING                   (1<<5)
-#define SETUP_AUTO_RECORD              (1<<6)
-#define SETUP_2ND_JOYSTICK             (1<<7)
-#define SETUP_QUICK_DOORS              (1<<8)
-#define SETUP_SCROLL_DELAY             (1<<9)
-#define SETUP_SOFT_SCROLL              (1<<10)
-
-#define DEFAULT_SETUP                  (SETUP_TOONS |          \
-                                        SETUP_SOUND |          \
-                                        SETUP_SOUND_LOOPS |    \
-                                        SETUP_SOUND_MUSIC)
-
-/* Setup-Voreinstellungen */
-#define SETUP_TOONS_ON(x)              (((x) & SETUP_TOONS) != 0)
-#define SETUP_SOUND_ON(x)              (((x) & SETUP_SOUND) != 0)
-#define SETUP_SOUND_LOOPS_ON(x)                (((x) & SETUP_SOUND_LOOPS) != 0)
-#define SETUP_SOUND_MUSIC_ON(x)                (((x) & SETUP_SOUND_MUSIC) != 0)
-#define SETUP_DIRECT_DRAW_ON(x)                (((x) & SETUP_DIRECT_DRAW) != 0)
-#define SETUP_FADING_ON(x)             (((x) & SETUP_FADING) != 0)
-#define SETUP_AUTO_RECORD_ON(x)                (((x) & SETUP_AUTO_RECORD) != 0)
-#define SETUP_2ND_JOYSTICK_ON(x)       (((x) & SETUP_2ND_JOYSTICK) != 0)
-#define SETUP_QUICK_DOORS_ON(x)                (((x) & SETUP_QUICK_DOORS) != 0)
-#define SETUP_SCROLL_DELAY_ON(x)       (((x) & SETUP_SCROLL_DELAY) != 0)
-#define SETUP_SOFT_SCROLL_ON(x)                (((x) & SETUP_SOFT_SCROLL) != 0)
-
-BOOL CreateNewScoreFile(void);
-BOOL CreateNewNamesFile(int);
-BOOL LoadLevelInfo(void);
+
+#define LEVEL_PACKED_START             100
+#define PACKED_LEVELS(x)               (LEVEL_PACKED_START + x)
+
+#define LEVEL_FILE_TYPE_RND_PACKED     PACKED_LEVELS(LEVEL_FILE_TYPE_RND)
+#define LEVEL_FILE_TYPE_EM_PACKED      PACKED_LEVELS(LEVEL_FILE_TYPE_EM)
+
+#define IS_SINGLE_LEVEL_FILE(x)                (x < LEVEL_PACKED_START)
+#define IS_PACKED_LEVEL_FILE(x)                (x > LEVEL_PACKED_START)
+
+
+void setElementChangePages(struct ElementInfo *, int);
+void setElementChangeInfoToDefaults(struct ElementChangeInfo *);
+void copyElementInfo(struct ElementInfo *, struct ElementInfo *);
+
+char *getDefaultLevelFilename(int);
+char *getLocalLevelTemplateFilename();
+char *getGlobalLevelTemplateFilename();
+
+void LoadLevelFromFilename(struct LevelInfo *, char *);
 void LoadLevel(int);
-void LoadLevelTape(int);
-void LoadScore(int);
-void LoadPlayerInfo(int);
+void LoadLevelTemplate(int);
+void LoadLevelInfoOnly(int);
 void SaveLevel(int);
-void SaveLevelTape(int);
+void SaveLevelTemplate();
+void SaveNativeLevel(struct LevelInfo *);
+void DumpLevel(struct LevelInfo *);
+boolean SaveLevelChecked(int);
+
+void CopyNativeLevel_RND_to_Native(struct LevelInfo *);
+void CopyNativeLevel_Native_to_RND(struct LevelInfo *);
+
+void LoadTapeFromFilename(char *);
+void LoadTape(int);
+void LoadSolutionTape(int);
+void SaveTape(int);
+void DumpTape(struct TapeInfo *);
+boolean SaveTapeChecked(int);
+
+void LoadScore(int);
 void SaveScore(int);
-void SavePlayerInfo(int);
-void LoadJoystickData(void);
-void SaveJoystickData(void);
 
-#endif
+void LoadSetupFromFilename(char *);
+void LoadSetup();
+void SaveSetup();
+
+void LoadSetup_EditorCascade();
+void SaveSetup_EditorCascade();
+
+void LoadCustomElementDescriptions();
+void InitMenuDesignSettings_Static();
+void LoadMenuDesignSettings();
+void LoadMenuDesignSettings_AfterGraphics();
+void LoadUserDefinedEditorElementList(int **, int *);
+void LoadMusicInfo();
+void LoadHelpAnimInfo();
+void LoadHelpTextInfo();
+
+void ConvertLevels();
+void CreateLevelSketchImages();
+void CreateCustomElementImages(char *);
+
+#endif /* FILES_H */