X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Ffiles.c;h=87c4204f67cf7d573db4ebfb726e1338dc1f5a83;hb=0eaa7d33772143903b8a93abac8f1dce5422fa66;hp=d13c28716f8a8fea115d496ca301432267ca3060;hpb=514321a85f7dda02848a3ce78667329f9c891156;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index d13c2871..87c4204f 100644 --- a/src/files.c +++ b/src/files.c @@ -17,6 +17,7 @@ #include "libgame/libgame.h" #include "files.h" +#include "init.h" #include "tools.h" #include "tape.h" @@ -97,7 +98,7 @@ static void setLevelInfoToDefaults() for (i=0; i < NUM_CUSTOM_ELEMENTS; i++) { level.custom_element_successor[i] = EL_EMPTY_SPACE; - Properties1[EL_CUSTOM_START + i] = EP_BITMASK_DEFAULT; + Properties[EL_CUSTOM_START + i][EP_BITFIELD_BASE] = EP_BITMASK_DEFAULT; } BorderElement = EL_STEELWALL; @@ -337,7 +338,7 @@ static int LoadLevel_CUS1(FILE *file, int chunk_size, struct LevelInfo *level) int properties = getFile32BitBE(file); if (IS_CUSTOM_ELEMENT(element)) - Properties1[element] = properties; + Properties[element][EP_BITFIELD_BASE] = properties; else Error(ERR_WARN, "invalid custom element number %d", element); } @@ -581,6 +582,7 @@ void LoadLevel(int level_nr) char *filename = getLevelFilename(level_nr); LoadLevelFromFilename(filename); + InitElementPropertiesEngine(level.game_version); } static void SaveLevel_VERS(FILE *file, struct LevelInfo *level) @@ -726,12 +728,12 @@ static void SaveLevel_CUS1(FILE *file, struct LevelInfo *level, { int element = EL_CUSTOM_START + i; - if (Properties1[element] != EP_BITMASK_DEFAULT) + if (Properties[element][EP_BITFIELD_BASE] != EP_BITMASK_DEFAULT) { if (check < num_changed_custom_elements) { putFile16BitBE(file, element); - putFile32BitBE(file, Properties1[element]); + putFile32BitBE(file, Properties[element][EP_BITFIELD_BASE]); } check++; @@ -813,7 +815,7 @@ void SaveLevel(int level_nr) /* check for non-standard custom elements and calculate "CUS1" chunk size */ for (i=0; i < NUM_CUSTOM_ELEMENTS; i++) - if (Properties1[EL_CUSTOM_START + i] != EP_BITMASK_DEFAULT) + if (Properties[EL_CUSTOM_START +i][EP_BITFIELD_BASE] != EP_BITMASK_DEFAULT) num_changed_custom_elements1++; /* check for non-standard custom elements and calculate "CUS2" chunk size */ @@ -1698,32 +1700,32 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) si->options.verbose = FALSE; } -static void decodeSetupFileList(struct SetupFileList *setup_file_list) +static void decodeSetupFileHash(SetupFileHash *setup_file_hash) { int i, pnr; - if (!setup_file_list) + if (!setup_file_hash) return; /* global setup */ si = setup; for (i=0; i