projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20030425-2-src
[rocksndiamonds.git]
/
src
/
files.c
diff --git
a/src/files.c
b/src/files.c
index d13c28716f8a8fea115d496ca301432267ca3060..87c4204f67cf7d573db4ebfb726e1338dc1f5a83 100644
(file)
--- a/
src/files.c
+++ b/
src/files.c
@@
-17,6
+17,7
@@
#include "libgame/libgame.h"
#include "files.h"
#include "libgame/libgame.h"
#include "files.h"
+#include "init.h"
#include "tools.h"
#include "tape.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;
for (i=0; i < NUM_CUSTOM_ELEMENTS; i++)
{
level.custom_element_successor[i] = EL_EMPTY_SPACE;
- Properties
1[EL_CUSTOM_START + i
] = EP_BITMASK_DEFAULT;
+ Properties
[EL_CUSTOM_START + i][EP_BITFIELD_BASE
] = EP_BITMASK_DEFAULT;
}
BorderElement = EL_STEELWALL;
}
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))
int properties = getFile32BitBE(file);
if (IS_CUSTOM_ELEMENT(element))
- Properties
1[element
] = properties;
+ Properties
[element][EP_BITFIELD_BASE
] = properties;
else
Error(ERR_WARN, "invalid custom element number %d", element);
}
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);
char *filename = getLevelFilename(level_nr);
LoadLevelFromFilename(filename);
+ InitElementPropertiesEngine(level.game_version);
}
static void SaveLevel_VERS(FILE *file, struct LevelInfo *level)
}
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;
{
int element = EL_CUSTOM_START + i;
- if (Properties
1[element
] != EP_BITMASK_DEFAULT)
+ if (Properties
[element][EP_BITFIELD_BASE
] != EP_BITMASK_DEFAULT)
{
if (check < num_changed_custom_elements)
{
putFile16BitBE(file, element);
{
if (check < num_changed_custom_elements)
{
putFile16BitBE(file, element);
- putFile32BitBE(file, Properties
1[element
]);
+ putFile32BitBE(file, Properties
[element][EP_BITFIELD_BASE
]);
}
check++;
}
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++)
/* check for non-standard custom elements and calculate "CUS1" chunk size */
for (i=0; i < NUM_CUSTOM_ELEMENTS; i++)
- if (Properties
1[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 */
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;
}
si->options.verbose = FALSE;
}
-static void decodeSetupFile
List(struct SetupFileList *setup_file_list
)
+static void decodeSetupFile
Hash(SetupFileHash *setup_file_hash
)
{
int i, pnr;
{
int i, pnr;
- if (!setup_file_
list
)
+ if (!setup_file_
hash
)
return;
/* global setup */
si = setup;
for (i=0; i<NUM_GLOBAL_SETUP_TOKENS; i++)
setSetupInfo(global_setup_tokens, i,
return;
/* global setup */
si = setup;
for (i=0; i<NUM_GLOBAL_SETUP_TOKENS; i++)
setSetupInfo(global_setup_tokens, i,
- get
TokenValue(setup_file_list
, global_setup_tokens[i].text));
+ get
HashEntry(setup_file_hash
, global_setup_tokens[i].text));
setup = si;
/* editor setup */
sei = setup.editor;
for (i=0; i<NUM_EDITOR_SETUP_TOKENS; i++)
setSetupInfo(editor_setup_tokens, i,
setup = si;
/* editor setup */
sei = setup.editor;
for (i=0; i<NUM_EDITOR_SETUP_TOKENS; i++)
setSetupInfo(editor_setup_tokens, i,
- get
TokenValue(setup_file_list
,editor_setup_tokens[i].text));
+ get
HashEntry(setup_file_hash
,editor_setup_tokens[i].text));
setup.editor = sei;
/* shortcut setup */
ssi = setup.shortcut;
for (i=0; i<NUM_SHORTCUT_SETUP_TOKENS; i++)
setSetupInfo(shortcut_setup_tokens, i,
setup.editor = sei;
/* shortcut setup */
ssi = setup.shortcut;
for (i=0; i<NUM_SHORTCUT_SETUP_TOKENS; i++)
setSetupInfo(shortcut_setup_tokens, i,
- get
TokenValue(setup_file_list
,shortcut_setup_tokens[i].text));
+ get
HashEntry(setup_file_hash
,shortcut_setup_tokens[i].text));
setup.shortcut = ssi;
/* player setup */
setup.shortcut = ssi;
/* player setup */
@@
-1740,7
+1742,7
@@
static void decodeSetupFileList(struct SetupFileList *setup_file_list)
sprintf(full_token, "%s%s", prefix, player_setup_tokens[i].text);
setSetupInfo(player_setup_tokens, i,
sprintf(full_token, "%s%s", prefix, player_setup_tokens[i].text);
setSetupInfo(player_setup_tokens, i,
- get
TokenValue(setup_file_list
, full_token));
+ get
HashEntry(setup_file_hash
, full_token));
}
setup.input[pnr] = sii;
}
}
setup.input[pnr] = sii;
}
@@
-1749,37
+1751,37
@@
static void decodeSetupFileList(struct SetupFileList *setup_file_list)
syi = setup.system;
for (i=0; i<NUM_SYSTEM_SETUP_TOKENS; i++)
setSetupInfo(system_setup_tokens, i,
syi = setup.system;
for (i=0; i<NUM_SYSTEM_SETUP_TOKENS; i++)
setSetupInfo(system_setup_tokens, i,
- get
TokenValue(setup_file_list
, system_setup_tokens[i].text));
+ get
HashEntry(setup_file_hash
, system_setup_tokens[i].text));
setup.system = syi;
/* options setup */
soi = setup.options;
for (i=0; i<NUM_OPTIONS_SETUP_TOKENS; i++)
setSetupInfo(options_setup_tokens, i,
setup.system = syi;
/* options setup */
soi = setup.options;
for (i=0; i<NUM_OPTIONS_SETUP_TOKENS; i++)
setSetupInfo(options_setup_tokens, i,
- get
TokenValue(setup_file_list
, options_setup_tokens[i].text));
+ get
HashEntry(setup_file_hash
, options_setup_tokens[i].text));
setup.options = soi;
}
void LoadSetup()
{
char *filename = getSetupFilename();
setup.options = soi;
}
void LoadSetup()
{
char *filename = getSetupFilename();
-
struct SetupFileList *setup_file_list
= NULL;
+
SetupFileHash *setup_file_hash
= NULL;
/* always start with reliable default values */
setSetupInfoToDefaults(&setup);
/* always start with reliable default values */
setSetupInfoToDefaults(&setup);
- setup_file_
list = loadSetupFileList
(filename);
+ setup_file_
hash = loadSetupFileHash
(filename);
- if (setup_file_
list
)
+ if (setup_file_
hash
)
{
char *player_name_new;
{
char *player_name_new;
- checkSetupFile
ListIdentifier(setup_file_list
, getCookie("SETUP"));
- decodeSetupFile
List(setup_file_list
);
+ checkSetupFile
HashIdentifier(setup_file_hash
, getCookie("SETUP"));
+ decodeSetupFile
Hash(setup_file_hash
);
setup.direct_draw = !setup.double_buffering;
setup.direct_draw = !setup.double_buffering;
- freeSetupFile
List(setup_file_list
);
+ freeSetupFile
Hash(setup_file_hash
);
/* needed to work around problems with fixed length strings */
player_name_new = get_corrected_login_name(setup.player_name);
/* needed to work around problems with fixed length strings */
player_name_new = get_corrected_login_name(setup.player_name);
@@
-1865,7
+1867,7
@@
void SaveSetup()
void LoadCustomElementDescriptions()
{
char *filename = getCustomArtworkConfigFilename(ARTWORK_TYPE_GRAPHICS);
void LoadCustomElementDescriptions()
{
char *filename = getCustomArtworkConfigFilename(ARTWORK_TYPE_GRAPHICS);
-
struct SetupFileList *setup_file_list
;
+
SetupFileHash *setup_file_hash
;
int i;
for (i=0; i<NUM_FILE_ELEMENTS; i++)
int i;
for (i=0; i<NUM_FILE_ELEMENTS; i++)
@@
-1877,13
+1879,13
@@
void LoadCustomElementDescriptions()
}
}
}
}
- if ((setup_file_
list = loadSetupFileList
(filename)) == NULL)
+ if ((setup_file_
hash = loadSetupFileHash
(filename)) == NULL)
return;
for (i=0; i<NUM_FILE_ELEMENTS; i++)
{
char *token = getStringCat2(element_info[i].token_name, ".name");
return;
for (i=0; i<NUM_FILE_ELEMENTS; i++)
{
char *token = getStringCat2(element_info[i].token_name, ".name");
- char *value = get
TokenValue(setup_file_list
, token);
+ char *value = get
HashEntry(setup_file_hash
, token);
if (value != NULL)
element_info[i].custom_description = getStringCopy(value);
if (value != NULL)
element_info[i].custom_description = getStringCopy(value);
@@
-1891,13
+1893,13
@@
void LoadCustomElementDescriptions()
free(token);
}
free(token);
}
- freeSetupFile
List(setup_file_list
);
+ freeSetupFile
Hash(setup_file_hash
);
}
void LoadSpecialMenuDesignSettings()
{
char *filename = getCustomArtworkConfigFilename(ARTWORK_TYPE_GRAPHICS);
}
void LoadSpecialMenuDesignSettings()
{
char *filename = getCustomArtworkConfigFilename(ARTWORK_TYPE_GRAPHICS);
-
struct SetupFileList *setup_file_list
;
+
SetupFileHash *setup_file_hash
;
char *value;
/* !!! CHANGE THIS !!! (redundant initialization) !!! */
char *value;
/* !!! CHANGE THIS !!! (redundant initialization) !!! */
@@
-1909,36
+1911,36
@@
void LoadSpecialMenuDesignSettings()
global.door_step_offset = 2;
global.door_step_delay = 10;
global.door_step_offset = 2;
global.door_step_delay = 10;
- if ((setup_file_
list = loadSetupFileList
(filename)) == NULL)
+ if ((setup_file_
hash = loadSetupFileHash
(filename)) == NULL)
return;
return;
- value = get
TokenValue(setup_file_list
, "global.num_toons");
+ value = get
HashEntry(setup_file_hash
, "global.num_toons");
if (value != NULL)
global.num_toons = get_integer_from_string(value);
if (value != NULL)
global.num_toons = get_integer_from_string(value);
- value = get
TokenValue(setup_file_list
, "menu.draw_xoffset");
+ value = get
HashEntry(setup_file_hash
, "menu.draw_xoffset");
if (value != NULL)
global.menu_draw_xoffset = get_integer_from_string(value);
if (value != NULL)
global.menu_draw_xoffset = get_integer_from_string(value);
- value = get
TokenValue(setup_file_list
, "menu.draw_yoffset");
+ value = get
HashEntry(setup_file_hash
, "menu.draw_yoffset");
if (value != NULL)
global.menu_draw_yoffset = get_integer_from_string(value);
if (value != NULL)
global.menu_draw_yoffset = get_integer_from_string(value);
- value = get
TokenValue(setup_file_list
, "menu.draw_xoffset.MAIN");
+ value = get
HashEntry(setup_file_hash
, "menu.draw_xoffset.MAIN");
if (value != NULL)
global.menu_draw_xoffset_MAIN = get_integer_from_string(value);
if (value != NULL)
global.menu_draw_xoffset_MAIN = get_integer_from_string(value);
- value = get
TokenValue(setup_file_list
, "menu.draw_yoffset.MAIN");
+ value = get
HashEntry(setup_file_hash
, "menu.draw_yoffset.MAIN");
if (value != NULL)
global.menu_draw_yoffset_MAIN = get_integer_from_string(value);
if (value != NULL)
global.menu_draw_yoffset_MAIN = get_integer_from_string(value);
- value = get
TokenValue(setup_file_list
, "door.step_offset");
+ value = get
HashEntry(setup_file_hash
, "door.step_offset");
if (value != NULL)
global.door_step_offset = get_integer_from_string(value);
if (value != NULL)
global.door_step_offset = get_integer_from_string(value);
- value = get
TokenValue(setup_file_list
, "door.step_delay");
+ value = get
HashEntry(setup_file_hash
, "door.step_delay");
if (value != NULL)
global.door_step_delay = get_integer_from_string(value);
if (value != NULL)
global.door_step_delay = get_integer_from_string(value);
- freeSetupFile
List(setup_file_list
);
+ freeSetupFile
Hash(setup_file_hash
);
}
}