X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=cdf1eea9c8ee09f82c334fac3cdaf60ff935340b;hb=869cd97d49c2155f59ae0a45f7fd01bb9012c3df;hp=5fb6ecfcea7127a345d3d0024a95519923d0d1ef;hpb=fd72fbf3b83fc7215347e131aa6fc3c87ad7b4d5;p=rocksndiamonds.git diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 5fb6ecfc..cdf1eea9 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -2311,15 +2311,27 @@ unsigned int get_hash_from_string(void *key) return hash; } +unsigned int get_hash_from_integer(void *key) +{ + unsigned int hash = PTR_TO_UINT(key); + + return hash; +} + int hash_key_strings_are_equal(void *key1, void *key2) { return (strEqual((char *)key1, (char *)key2)); } +int hash_key_integers_are_equal(void *key1, void *key2) +{ + return (key1 == key2); +} + SetupFileHash *newSetupFileHash(void) { SetupFileHash *new_hash = - create_hashtable(16, 0.75, get_hash_from_string, hash_key_strings_are_equal); + create_hashtable(get_hash_from_string, hash_key_strings_are_equal, free, free); if (new_hash == NULL) Fail("create_hashtable() failed -- out of memory"); @@ -2332,7 +2344,7 @@ void freeSetupFileHash(SetupFileHash *hash) if (hash == NULL) return; - hashtable_destroy(hash, 1); // 1 == also free values stored in hash + hashtable_destroy(hash); } char *getHashEntry(SetupFileHash *hash, char *token) @@ -2358,12 +2370,12 @@ void setHashEntry(SetupFileHash *hash, char *token, char *value) Fail("cannot insert into hash -- aborting"); } -char *removeHashEntry(SetupFileHash *hash, char *token) +void removeHashEntry(SetupFileHash *hash, char *token) { if (hash == NULL) - return NULL; + return; - return remove_hash_entry(hash, token); + remove_hash_entry(hash, token); } #if ENABLE_UNUSED_CODE @@ -2846,6 +2858,8 @@ static struct TokenInfo levelinfo_tokens[] = { TYPE_BOOLEAN, &ldi.latest_engine, "latest_engine" }, { TYPE_BOOLEAN, &ldi.level_group, "level_group" }, { TYPE_BOOLEAN, &ldi.readonly, "readonly" }, + { TYPE_STRING, &ldi.graphics_set_ecs, "graphics_set.old" }, + { TYPE_STRING, &ldi.graphics_set_aga, "graphics_set.new" }, { TYPE_STRING, &ldi.graphics_set_ecs, "graphics_set.ecs" }, { TYPE_STRING, &ldi.graphics_set_aga, "graphics_set.aga" }, { TYPE_STRING, &ldi.graphics_set, "graphics_set" },