aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/include/reg_t_hashmap.h
diff options
context:
space:
mode:
authorJordi Vilalta Prat2009-02-15 06:10:59 +0000
committerJordi Vilalta Prat2009-02-15 06:10:59 +0000
commitfa6e10e9cec163845aa29e7940c86e9c9ab8a2bc (patch)
treece87338830cc8c149e1de545246bcefe4f45da00 /engines/sci/include/reg_t_hashmap.h
parent7c148ddf021c990fa866b7600f979aac9a5b26c9 (diff)
downloadscummvm-rg350-fa6e10e9cec163845aa29e7940c86e9c9ab8a2bc.tar.gz
scummvm-rg350-fa6e10e9cec163845aa29e7940c86e9c9ab8a2bc.tar.bz2
scummvm-rg350-fa6e10e9cec163845aa29e7940c86e9c9ab8a2bc.zip
Import the SCI engine sources from the FreeSCI Glutton branch (it doesn't compile yet)
svn-id: r38192
Diffstat (limited to 'engines/sci/include/reg_t_hashmap.h')
-rw-r--r--engines/sci/include/reg_t_hashmap.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/engines/sci/include/reg_t_hashmap.h b/engines/sci/include/reg_t_hashmap.h
new file mode 100644
index 0000000000..0bd89fe8f2
--- /dev/null
+++ b/engines/sci/include/reg_t_hashmap.h
@@ -0,0 +1,71 @@
+/***************************************************************************
+ int_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>
+
+***************************************************************************/
+
+#ifndef _REG_T_HASHMAP_H_
+#define _REG_T_HASHMAP_H_
+
+#define DCS_REGT_HASH_MAX 512
+
+#include "vm.h"
+#ifdef HASH_MAX
+# undef HASH_MAX
+# undef COMP
+# undef HASH
+#endif
+
+#define HASH_MAX DCS_REGT_HASH_MAX
+#define COMP(x, y) compare_reg_t(x, y)
+#define HASH(x) (((x.segment << 3) | x.offset) & 0x1ff)
+#undef MUST_FREE
+
+#include "hashmap.h"
+DECLARE_STRUCTS(reg_t)
+DECLARE_FUNCTIONS(reg_t)
+
+#ifndef BUILD_MAP_FUNCTIONS
+# undef HASH_MAX
+# undef COMP
+# undef HASH
+#endif
+
+/* see hashmap.h for descriptions of these functions */
+reg_t_hash_map_ptr
+new_reg_t_hash_map(void);
+
+void
+free_reg_t_hash_map(reg_t_hash_map_ptr);
+
+int
+reg_t_hash_map_check_value(reg_t_hash_map_ptr, reg_t value, char add_p, char *added);
+
+int
+reg_t_hash_map_remove_value(reg_t_hash_map_ptr, reg_t value);
+
+void
+apply_to_reg_t_hash_map(reg_t_hash_map_ptr map, void *param, void (*note) (void *param, reg_t name, int value));
+
+#endif /* _INT_HASHMAP_H_ */