1#ifndef __H__ENGINE_CONSTRUCT__
2#define __H__ENGINE_CONSTRUCT__
4#include "../6502/chip.h"
7#include "../rendering/instances.h"
10#define CONSTRUCT_MAXIMUM_BLOCKS 255
90 switch (block->
kind) {
104 byte device = chip->
x;
static void chip_init(chip_t *self, allocator_t allocator, sz memory_size, u32 quota)
Definition chip.h:70
static byte chip_stack_pull(chip_t *self)
Definition chip.h:252
size_t sz
Definition defs.h:51
static block_t block_new_mesh()
Definition construct.h:51
static void block__external_call(chip_t *chip, block_t *block)
Definition construct.h:89
static void block_chip__external_call(chip_t *chip)
Definition construct.h:102
static int block_kind_to_tile_index(block_kind_t kind)
Definition construct.h:23
static void construct_init(construct_t *construct, allocator_t alloc)
Definition construct.h:73
static block_t block_new_chip(allocator_t alloc, sz memory_size)
Definition construct.h:121
#define CONSTRUCT_MAXIMUM_BLOCKS
Definition construct.h:10
block_kind_t
Definition construct.h:12
@ BLOCK_KIND_CONTOLLER
Definition construct.h:18
@ BLOCK_KIND_MESH
Definition construct.h:13
@ BLOCK_KIND_CHIP
Definition construct.h:16
@ BLOCK_KIND_ACCUMULATOR
Definition construct.h:19
@ BLOCK_KIND_THRUSTER
Definition construct.h:14
@ BLOCK_KIND_ENGINE
Definition construct.h:15
@ BLOCK_KIND_count
Definition construct.h:20
@ BLOCK_KIND_GYROSCOPE
Definition construct.h:17
static block_t block_new_thruster(int orientation)
Definition construct.h:56
static void construct_cleanup(construct_t *construct)
Definition construct.h:83
static void instance_buffer_cleanup()
Definition instances.h:83
static void instance_buffer_init(instance_buffer_t *buffer, allocator_t alloc, sz capacity)
Definition instances.h:29
#define list_get_ty_ptr(ty, ls, idx)
Definition list.h:128
#define list_init_ty(ty, ls, alloc)
Definition list.h:36
static void list_cleanup(list_t *ls)
Definition list.h:166
#define map_get_ty(ty, map, key)
Returns a typed pointer to a member at key key. Returns NULL if the key is not present.
Definition map.h:218
A generic allocator type passed by value. Contains a fallback allocator and a set of function pointer...
Definition memory.h:30
Definition construct.h:36
byte throttle
Definition construct.h:46
int orientation
Definition construct.h:39
chip_t chip
Definition construct.h:43
struct block_t::@0::@3 as_thruster
block_kind_t kind
Definition construct.h:37
struct block_t::@0::@2 as_chip
vec2i offset
Definition construct.h:38
bool halted
Definition chip.h:34
chip_external_call_f external_call
Definition chip.h:29
byte x
Definition chip.h:39
byte y
Definition chip.h:39
void * userdata
Definition chip.h:31
Definition construct.h:64
vec2 velocity
Definition construct.h:69
instance_buffer_t instance
Definition construct.h:66
map_t device_map
Definition construct.h:67
list_t blocks
Definition construct.h:65
bool is_dirty
Definition construct.h:68
vec2 forces
Definition construct.h:70
Definition instances.h:20
sz size
Definition list.h:17
static vec2 vec2_zero()
{.x = 0, .y = 0}
Definition vec2.h:29
static bool vec2_eq(vec2i a, vec2i b)
Definition vec2i.h:30