aboutsummaryrefslogtreecommitdiff
path: root/sword2/memory.h
diff options
context:
space:
mode:
Diffstat (limited to 'sword2/memory.h')
-rw-r--r--sword2/memory.h82
1 files changed, 82 insertions, 0 deletions
diff --git a/sword2/memory.h b/sword2/memory.h
new file mode 100644
index 0000000000..0ea75a47dc
--- /dev/null
+++ b/sword2/memory.h
@@ -0,0 +1,82 @@
+/* Copyright (C) 1994-2003 Revolution Software Ltd
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $Header$
+ */
+
+#ifndef MEMORY_H
+#define MEMORY_H
+
+#include "common/scummsys.h"
+//#include "src\driver96.h"
+
+
+typedef struct
+{
+ uint32 state;
+ uint32 age; // *not used*
+ uint32 size;
+ int32 parent; //who is before us
+ int32 child; //who is after us
+ uint32 uid; //id of a position in the resList or some other unique id - for the visual display only
+ uint8 *ad;
+} mem;
+
+
+#define MEM_null 0 //null
+#define MEM_free 1
+#define MEM_locked 2
+#define MEM_float 3
+
+//---------------------------------------
+// MEMORY BLOCKS
+
+#define MAX_mem_blocks 999
+
+// maintain at a good 50% higher than the
+// highest recorded value from the on-screen info
+//---------------------------------------
+
+#define UID_memman 0xffffffff
+#define UID_NULL 0xfffffffe //FREE
+#define UID_font 0xfffffffd
+#define UID_temp 0xfffffffc
+#define UID_decompression_buffer 0xfffffffb
+#define UID_shrink_buffer 0xfffffffa
+#define UID_con_sprite 0xfffffff9
+#define UID_text_sprite 0xfffffff8
+#define UID_walk_anim 0xfffffff7
+#define UID_savegame_buffer 0xfffffff6
+#define UID_restoregame_buffer 0xfffffff5
+
+void Init_memory_manager(void);
+void Close_memory_manager(void); //Tony2Oct96
+//mem *Talloc(uint32 size, uint32 type, uint32 unique_id); //low level
+mem *Twalloc(uint32 size, uint32 type, uint32 unique_id); //high level
+void Free_mem(mem *block);
+void Float_mem(mem *block);
+void Lock_mem(mem *block);
+void Mem_debug(void);
+void Visual_mem_display(void);
+int32 Defrag_mem(uint32 req_size); //Tony10Apr96
+
+
+extern uint32 total_blocks;
+extern uint32 base_mem_block;
+extern mem mem_list[MAX_mem_blocks];
+extern uint32 total_free_memory;
+
+#endif