#ifndef WORLD_H #define WORLD_H #include #include #include "error.h" #include "entity/registry.h" #include "entity/entity.h" #define MAX_ENTITIES 256 struct world_t { struct entity_t entities[MAX_ENTITIES]; struct entity_registry_t registered_entities; size_t tick; size_t height; size_t width; }; enum error_t world_init(struct world_t *, size_t, size_t); void world_free(struct world_t *); enum error_t world_serialise(struct world_t const *, struct json_t **); enum error_t world_deserialise(struct world_t *, struct json_t *); enum error_t world_serialise_str(struct world_t const *, char const **); enum error_t world_deserialise_str(struct world_t *, char const *); // Operates on strings; serialise allocates so make sure to free enum error_t world_serialise_buf(struct world_t const *, char *, size_t); // Operates on buffers; need not be zero-terminated enum error_t world_register_entity(struct world_t *, char const *, char); enum error_t world_place_entity(struct world_t *, size_t, size_t, size_t); #endif