summaryrefslogtreecommitdiff
path: root/src/engine/M_block.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/M_block.c')
-rw-r--r--src/engine/M_block.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/engine/M_block.c b/src/engine/M_block.c
new file mode 100644
index 0000000..0f3fb27
--- /dev/null
+++ b/src/engine/M_block.c
@@ -0,0 +1,33 @@
+#include "M_block.h"
+
+void M_createBlock(M_Block *block, unsigned short type)
+{
+ block->type = type;
+}
+
+unsigned short M_createBlockType(M_Object obj, M_BlockAtlas *atl)
+{
+ M_BlockType block_type;
+ block_type.obj = obj;
+
+ if (atl->block_amount >= atl->size) {
+ atl->size += 10;
+ atl->blocks = realloc(atl->blocks, atl->size*sizeof(M_BlockType));
+ }
+ atl->blocks[atl->block_amount++] = block_type;
+ return atl->block_amount;
+}
+
+M_BlockAtlas M_createBlockAtlas()
+{
+ return (M_BlockAtlas){
+ .blocks = malloc(10*sizeof(M_BlockType)),
+ .block_amount = 0,
+ .size = 10
+ };
+}
+
+void M_killBlockAtlas(M_BlockAtlas *atl)
+{
+ free(atl->blocks);
+}