summaryrefslogtreecommitdiff
path: root/include/content.h
diff options
context:
space:
mode:
authorLizzy Fleckenstein <lizzy@vlhl.dev>2024-07-13 12:51:05 +0200
committerLizzy Fleckenstein <lizzy@vlhl.dev>2024-07-13 12:51:05 +0200
commit591232eba1809643df1f4a6075ff9581b8bb2f7a (patch)
tree92e2c464158d03ef9c83f153ba5b88c39581d9f8 /include/content.h
parent95283d70eee749d984b2ca07c0b61d39f9bb350d (diff)
move headers to src
Signed-off-by: Lizzy Fleckenstein <lizzy@vlhl.dev>
Diffstat (limited to 'include/content.h')
-rw-r--r--include/content.h177
1 files changed, 0 insertions, 177 deletions
diff --git a/include/content.h b/include/content.h
deleted file mode 100644
index ef27e22..0000000
--- a/include/content.h
+++ /dev/null
@@ -1,177 +0,0 @@
-// SPDX-FileCopyrightText: 2024 Lizzy Fleckenstein <lizzy@vlhl.dev>
-//
-// SPDX-License-Identifier: AGPL-3.0-or-later
-
-#ifndef CONTENT_H
-#define CONTENT_H
-
-#include <stdint.h>
-#include <stdbool.h>
-#include "ser.h"
-#include "vec.h"
-
-#define SIGHT_RANGE 15
-#define PKT_NODES_MAX (50*50)
-
-typedef enum : uint16_t {
- N_BIG_TREE = 0,
- N_NEEDLE_TREE,
- N_ROCK,
- N_WATER,
- N_PLANK,
- N_PATH,
- N_GRASS,
- N_SAND,
-} node_type;
-
-#define ser_node_type ser_u16
-#define deser_node_type deser_u16
-
-typedef struct {
- uint8_t r, g, b;
-} color;
-
-[[maybe_unused]] static void ser_color(strbuf *w, color c)
-{
- ser_u8(w, c.r);
- ser_u8(w, c.g);
- ser_u8(w, c.b);
-}
-
-[[maybe_unused]] static bool deser_color(str *r, color *c)
-{
- return deser_u8(r, &c->r) && deser_u8(r, &c->g) && deser_u8(r, &c->b);
-}
-
-[[maybe_unused]] static uint32_t color_to_u32(color c)
-{
- return ((uint32_t) c.b) | (((uint32_t) c.g) << 8) | (((uint32_t) c.r) << 16);
-}
-
-[[maybe_unused]] static color color_from_u32(uint32_t u)
-{
- return (color) { (u >> 16) & 0xFF, (u >> 8) & 0xFF, u & 0xFF };
-}
-
-typedef enum : uint8_t {
- FLOWER_ROSE = 0,
- FLOWER_HIBISCUS,
- FLOWER_SUNFLOWER,
- FLOWER_TULIP,
- FLOWER_DANDELION, // im in a field of dandelions...
- FLOWER_COUNT,
-} flower_type;
-
-#define ser_flower_type ser_u8
-#define deser_flower_type deser_u8
-
-typedef struct {
- bool present;
- node_type type;
- int8_t z; // for rocks, indicates rock level
- color col;
- uint8_t variant;
-} node;
-
-[[maybe_unused]] static void ser_node(strbuf *w, node *n)
-{
- bool present = n != NULL && n->present;
- ser_bool(w, present);
- if (!present)
- return;
- ser_node_type(w, n->type);
- ser_i8(w, n->z);
- ser_color(w, n->col);
- ser_u8(w, n->variant);
-}
-
-[[maybe_unused]] static bool deser_node(str *r, node *n)
-{
- if (!deser_bool(r, &n->present)) return false;
- if (!n->present) return true;
-
- return deser_node_type(r, &n->type)
- && deser_i8(r, &n->z)
- && deser_color(r, &n->col)
- && deser_u8(r, &n->variant);
-}
-
-typedef enum : uint8_t {
- DIR_RIGHT = 0,
- DIR_UP,
- DIR_LEFT,
- DIR_DOWN,
-} dir;
-
-#define ser_dir ser_u8
-#define deser_dir deser_u8
-
-[[maybe_unused]] static vec2 dir_to_vec2(dir d)
-{
- switch (d) {
- case DIR_RIGHT: return VEC2(1, 0);
- case DIR_UP: return VEC2(0, -1);
- case DIR_LEFT: return VEC2(-1, 0);
- case DIR_DOWN: return VEC2(0, 1);
- default: return VEC2(0, 0);
- }
-}
-
-typedef enum : uint8_t {
- FAIL_WRONG_PASS = 0,
- FAIL_ALREADY_ONLINE,
-} fail_reason;
-
-#define ser_fail_reason ser_u8
-#define deser_fail_reason deser_u8
-
-typedef uint64_t entity_id;
-#define ser_entity_id ser_u64
-#define deser_entity_id deser_u64
-
-typedef enum : uint16_t {
- ENTITY_PLAYER = 0,
- ENTITY_FLOWER,
-} entity_type;
-
-#define ser_entity_type ser_u16
-#define deser_entity_type deser_u16
-
-typedef enum : uint8_t {
- ENTITY_ADD = 0, // type
- ENTITY_REMOVE,
- ENTITY_MOVE, // x y
- ENTITY_CMD_COUNT,
-} entity_cmd;
-
-#define ser_entity_cmd ser_u8
-#define deser_entity_cmd deser_u8
-
-typedef struct {
- entity_id id;
- entity_type type;
- vec2 pos;
- union {
- flower_type flower;
- };
-} entity;
-
-enum : uint16_t {
- CPKT_HI = 0, // len motd
- CPKT_FAIL, // fail_reason
- CPKT_PLAYERS, // len [len name id]
- CPKT_ENTITY, // len [entity_id command]
- CPKT_NODES, // box2 [node]
- CPKT_RESET_MAP,
-};
-
-enum : uint16_t {
- SPKT_HI = 0, // len name len password
- SPKT_MOVE, // dir
-};
-
-typedef uint16_t pkt_type;
-#define ser_pkt_type ser_u16
-#define deser_pkt_type deser_u16
-
-#endif