aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/include/hashmap.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/include/hashmap.h')
-rw-r--r--engines/sci/include/hashmap.h132
1 files changed, 0 insertions, 132 deletions
diff --git a/engines/sci/include/hashmap.h b/engines/sci/include/hashmap.h
deleted file mode 100644
index 51a945c9d9..0000000000
--- a/engines/sci/include/hashmap.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/***************************************************************************
- hashmap.h Copyright (C) 2001 Christoph Reichenbach
-
-
- This program may be modified and copied freely according to the terms of
- the GNU general public license (GPL), as long as the above copyright
- notice and the licensing information contained herein are preserved.
-
- Please refer to www.gnu.org for licensing details.
-
- This work is provided AS IS, without warranty of any kind, expressed or
- implied, including but not limited to the warranties of merchantibility,
- noninfringement, and fitness for a specific purpose. The author will not
- be held liable for any damage caused by this work or derivatives of it.
-
- By using this source code, you agree to the licensing terms as stated
- above.
-
-
- Please contact the maintainer for bug reports or inquiries.
-
- Current Maintainer:
-
- Christoph Reichenbach (CR) <jameson@linuxgames.com>
-
-***************************************************************************/
-/* Defines a hash map that maps values to small integers.
-** Preprocessor parameters:
-** TYPE: The type to hash
-** HASH_MAX: Maximum hash value
-** HASH(x): Hashes a value of type TYPE to an int from 0 to HASH_MAX
-** COMP(x, y): Compares x, y, returns zero(!) iff they are equal
-** MUST_FREE: Define if 'lost' values are simple pointers and should be freed
-** DUPLICATOR: Usually needed when MUST_FREE is being used, means that
-** new values must be dup'd before being added.
-** Define it to the name of the function to use for duplication
-** (e.g. '#define DUPLICATOR strdup').
-*/
-
-/**-- WARNING!!! --**/
-
-/* This file uses a lot of dark magic (aka preprocessor macros) to define
-** its semantics. It is not to be taken lightly. It is not to be taken
-** as an example for good programming. Most importantly, it is not to
-** be read by mere mortals, except for the author and other people who
-** have undergone appropriate psychological preparation. Keep out of
-** reach of small children. Do not shake. Do not put in a microwave. Do
-** not feed to animals.
-*/
-
-/* OK, it's not that bad. */
-
-
-#ifndef HASH_MAX
-# error "Must define the maximum hash value (HASH_MAX) before including hashmap.h!"
-#endif
-
-#ifndef HASH
-# error "Must define the hash function (HASH) before including hashmap.h!"
-#endif
-
-#ifndef COMP
-# error "Must define a comparison function (COMP) before including hashmap.h!"
-#endif
-
-
-#define DECLARE_STRUCTS(TYPE) \
-typedef struct _##TYPE##_hash_map_node { \
- TYPE name; \
- int value; \
- struct _##TYPE##_hash_map_node *next; \
-} TYPE##_hash_map_node_t; \
- \
- \
-typedef struct { \
- int base_value; /* Starts at zero, counts upwards */ \
- TYPE##_hash_map_node_t *nodes[HASH_MAX+1]; \
- TYPE##_hash_map_node_t *holes; /* List of freed entries to minimize \
- ** memory operations and modifications \
- ** to base_value */ \
-} TYPE##_hash_map_t, *TYPE##_hash_map_ptr;
-
-
-#define DECLARE_FUNCTIONS(TYPE) \
- \
-TYPE##_hash_map_t * \
-new_##TYPE##_hash_map(void); \
-/* Creates a new hash map for the specified TYPE \
-** Parameters: (void) \
-** Returns : (TYPE##_hash_map_t *) The newly allocated hash map \
-*/ \
- \
-void \
-free_##TYPE##_hash_map(TYPE##_hash_map_ptr map); \
-/* Frees the specified hash map \
-** Parameters: (TYPE##_hash_map_t *) map: The map to free \
-** Returns : (void) \
-*/ \
- \
-void \
-apply_to_##TYPE##_hash_map(TYPE##_hash_map_ptr map, void *param, void (*note) (void *param, TYPE name, int value)); \
-/* Iterates over all entries in the hash map and invokes 'note' \
-** Parameters: (TYPE##_hash_map_t *) map: The map to iterate over \
-** (void *) param: Some parameter to pass to 'note' \
-** ((voidptr * TYPE * value) -> void) note: The callback to invoke for each entry \
-*/ \
- \
-int \
-TYPE##_hash_map_check_value(TYPE##_hash_map_ptr map, TYPE value, char add, char *was_added); \
-/* Checks whether a value is in the map, adds it if neccessary \
-** Parameters: (TYPE##_hash_map_t *) map: The map to look in/modify \
-** (TYPE) value: The value to check for/add \
-** (char) add: Whether to add the value if it's not in there \
-** (char *) was_added: Set to non-zero iff the value is new \
-** Ignored if NULL. \
-** Returns : (int) The new (or old) index, or -1 if add was zero and \
-** the value couldn't be found \
-** If MUST_FREE is defined and add is set but the value was already in \
-** there, the value is freed. \
-*/ \
- \
-int \
-TYPE##_hash_map_remove_value(TYPE##_hash_map_ptr map, TYPE value); \
-/* Removes a value from the hash map \
-** Parameters: (TYPE##_hash_map_t *) map: The map to remove from \
-** (TYPE) value: The value to remove \
-** Returns : (int) The ID of the value, or -1 if it wasn't presen \
-*/
-
-
-
-