Move actors to the first frame on entering a room.
[scummvm-innocent.git] / engines / sword1 / memman.h
blobd482fff7b1cd1e0f56a404ebbe370af33369bd5b
1 /* ScummVM - Graphic Adventure Engine
3 * ScummVM is the legal property of its developers, whose names
4 * are too numerous to list here. Please refer to the COPYRIGHT
5 * file distributed with this source distribution.
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 * $URL$
22 * $Id$
26 #ifndef SWORD1_MEMMAN_H
27 #define SWORD1_MEMMAN_H
29 #include "common/scummsys.h"
31 namespace Sword1 {
33 struct MemHandle {
34 void *data;
35 uint32 size;
36 uint32 refCount;
37 uint16 cond;
38 MemHandle *next, *prev;
40 // mem conditions:
41 #define MEM_FREED 0
42 #define MEM_CAN_FREE 1
43 #define MEM_DONT_FREE 2
45 #ifdef PALMOS_MODE
46 #define MAX_ALLOC (3*1024*1024) // max amount of mem we want to alloc().
47 #else
48 #define MAX_ALLOC (6*1024*1024) // max amount of mem we want to alloc().
49 #endif
51 class MemMan {
52 public:
53 MemMan(void);
54 ~MemMan(void);
55 void alloc(MemHandle *bsMem, uint32 pSize, uint16 pCond = MEM_DONT_FREE);
56 void setCondition(MemHandle *bsMem, uint16 pCond);
57 void freeNow(MemHandle *bsMem);
58 void initHandle(MemHandle *bsMem);
59 void flush(void);
60 private:
61 void addToFreeList(MemHandle *bsMem);
62 void removeFromFreeList(MemHandle *bsMem);
63 void checkMemoryUsage(void);
64 uint32 _alloced; //currently allocated memory
65 MemHandle *_memListFree;
66 MemHandle *_memListFreeEnd;
69 } // End of namespace Sword1
71 #endif //MEMMAN_H