diff options
| author | Japa | 2010-04-09 14:24:27 +0000 |
|---|---|---|
| committer | Japa | 2010-04-09 14:24:27 +0000 |
| commit | 114df922d3073bd296b38cf522997f520fb17850 (patch) | |
| tree | c4cf372825118c3663cd77e18c69a6c3b59d070f /BlockFactory.cpp | |
| parent | 81aefc8e03ff3f647494012e18bcdc8f33f4de42 (diff) | |
| download | stonesense-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.cpp | 37 |
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 );
+}
|
