-/***********************************************************
-* Rocks'n'Diamonds -- McDuffin Strikes Back! *
-*----------------------------------------------------------*
-* ©1995 Artsoft Development *
-* Holger Schemel *
-* 33659 Bielefeld-Senne *
-* Telefon: (0521) 493245 *
-* eMail: aeglos@valinor.owl.de *
-* aeglos@uni-paderborn.de *
-* q99492@pbhrzx.uni-paderborn.de *
-*----------------------------------------------------------*
-* files.h *
-***********************************************************/
+// ============================================================================
+// Rocks'n'Diamonds - McDuffin Strikes Back!
+// ----------------------------------------------------------------------------
+// (c) 1995-2014 by Artsoft Entertainment
+// Holger Schemel
+// info@artsoft.org
+// https://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 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)
-
-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(void);
+char *getGlobalLevelTemplateFilename(void);
+
+void LoadLevelFromFilename(struct LevelInfo *, char *);
void LoadLevel(int);
-void LoadLevelTape(int);
-void LoadScore(int);
-void LoadPlayerInfo(int);
+void LoadLevelTemplate(int);
+void LoadLevelInfoOnly(int);
+void LoadNetworkLevel(struct NetworkLevelInfo *);
void SaveLevel(int);
-void SaveLevelTape(int);
+void SaveLevelTemplate(void);
+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);
+boolean SaveTapeChecked_LevelSolved(int);
+
+void LoadScore(int);
void SaveScore(int);
-void SavePlayerInfo(int);
-void LoadJoystickData(void);
-void SaveJoystickData(void);
-#endif
+void LoadSetupFromFilename(char *);
+void LoadSetup(void);
+void SaveSetup(void);
+
+void LoadSetup_AutoSetup(void);
+void SaveSetup_AutoSetup(void);
+
+void LoadSetup_EditorCascade(void);
+void SaveSetup_EditorCascade(void);
+
+void SaveSetup_AddGameControllerMapping(char *);
+
+void setHideSetupEntry(void *);
+boolean hideSetupEntry(void *);
+
+void LoadCustomElementDescriptions(void);
+void InitMenuDesignSettings_Static(void);
+void LoadMenuDesignSettings(void);
+void LoadMenuDesignSettings_AfterGraphics(void);
+void LoadUserDefinedEditorElementList(int **, int *);
+void LoadMusicInfo(void);
+void LoadHelpAnimInfo(void);
+void LoadHelpTextInfo(void);
+
+void ConvertLevels(void);
+void CreateLevelSketchImages(void);
+void CreateCustomElementImages(char *);
+
+void FreeGlobalAnimEventInfo(void);
+int GetGlobalAnimEventValue(int, int);
+int GetGlobalAnimEventValueCount(int);
+
+int get_parameter_value(char *, char *, int);
+
+#endif // FILES_H