summaryrefslogtreecommitdiff
path: root/BlockFactory.cpp
diff options
context:
space:
mode:
authorJapa2010-04-09 14:24:27 +0000
committerJapa2010-04-09 14:24:27 +0000
commit114df922d3073bd296b38cf522997f520fb17850 (patch)
treec4cf372825118c3663cd77e18c69a6c3b59d070f /BlockFactory.cpp
parent81aefc8e03ff3f647494012e18bcdc8f33f4de42 (diff)
downloadstonesense-114df922d3073bd296b38cf522997f520fb17850.tar.gz
stonesense-114df922d3073bd296b38cf522997f520fb17850.tar.bz2
stonesense-114df922d3073bd296b38cf522997f520fb17850.tar.xz
updated trunk to the new graphics engine, and the latest DFhack
Diffstat (limited to 'BlockFactory.cpp')
-rw-r--r--BlockFactory.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/BlockFactory.cpp b/BlockFactory.cpp
new file mode 100644
index 0000000..03c6e8a
--- /dev/null
+++ b/BlockFactory.cpp
@@ -0,0 +1,37 @@
+#include "BlockFactory.h"
+#include "Block.h"
+
+
+BlockFactory blockFactory;
+
+BlockFactory::BlockFactory(void)
+{
+ poolSize = 0;
+}
+
+BlockFactory::~BlockFactory(void)
+{
+ for(uint32_t i=0; i<poolSize; i++){
+ free( pool[i] );
+ }
+}
+
+
+Block* BlockFactory::allocateBlock(){
+ if( poolSize > 0 ){
+ poolSize--;
+ Block* b = pool[poolSize];
+ pool.pop_back();
+ return b;
+ }
+
+ //pool is empty(full), just New up a new block
+ Block* b = (Block*) malloc( sizeof(Block) );
+ return b;
+}
+
+
+void BlockFactory::deleteBlock(Block *b){
+ poolSize++;
+ pool.push_back( b );
+}