Entropie git · main
Entropie festival game; first steps
C 88.5% Markdown 9.1% GLSL 2.3%git clone https://git.christianimmanuel.de/games/Entropie.gitwget https://git.christianimmanuel.de/games/Entropie/archive/Entropie.tar.gzentropie/src/world/cast.h raw
#ifndef WORLD_CAST_H
#define WORLD_CAST_H
/*
* Everybody in the story, one entry each: how they look and are, what they're
* good at, their part in the festival (the projects they lead or help with)
* and when they turn up on the ground. You are entry 0. Kurti and his sons
* live here; the crew comes over the first days (`arrives`).
*/
#include "world/object.h"
/* The festival's projects: the floors and the jobs round them. */
typedef enum {
PROJECT_NONE,
PROJECT_ORGA, /* the festival organisation */
PROJECT_WEB, /* the website, tickets */
PROJECT_ARTISTS, /* booking and looking after the artists */
PROJECT_DECORATION, /* art and decoration */
PROJECT_LIGHT, /* the light (and the main stage's floor) */
PROJECT_HOFBUEHNE, /* the yard stage: bands, poetry slam, breakdance, rock, punk */
PROJECT_OBSTWIESE, /* the orchard: psytrance */
PROJECT_KARTOFFELACKER, /* the potato field: world music, small talks (the geo-dome) */
PROJECT_HIDDEN, /* the hidden floor behind the main building: techno */
PROJECT_MOWING, /* the Kartoffelacker's grass, with the scythe */
PROJECT_SNAILS, /* the vineyard snails picked up before the regulatory office comes */
PROJECT_WOOD_ART, /* art cut from logs with the chainsaw */
PROJECT_BIG_TREE, /* the big old tree between the Obstwiese and the Kartoffelacker: felled away from the phone line */
PROJECT_COUNT
} Project;
typedef struct {
const char *name;
Mood temperament;
FigureLook look; /* (the jacket, its hood and a hat: from Figure_wardrobe) */
Character character;
float kg;
int age; /* past 45 slower on their feet */
int hand; /* HAND_LEFT / HAND_RIGHT */
int garment; /* GARMENT_* */
bool female, urinella, lighter, filter_habit, pocket_tray, lives_here;
bool far_away; /* not from Berlin (Go-Darmstadt): never at the meetings, stays on the ground */
float smoker, wits, height_fear, worn, fitness, tolerance;
int cigarettes, tobacco, papers, filters;
const char *keys; /* a key in the pocket, or NULL */
/* their part in the festival */
const char *role; /* said plainly */
Project leads, helps; /* the project they lead, one they help with */
float commitment; /* 0..1 how much they're into it, to begin with */
float arrives; /* hours after the start on the ground they turn up (0: there from the start) */
} CastMember;
int Cast_count(void);
const CastMember *Cast_get(int id);
/* A person made from their entry, standing at `at` (not in the world yet). */
Object *Cast_create(int id, Vec3 at);
/* A project said plainly ("Obstwiese (psytrance)"). */
const char *Cast_projectName(Project p);
/* Who leads it now (the people in the world), or NULL. */
Object *Cast_leadOf(Object *const *objects, int count, Project p);
#endif /* WORLD_CAST_H */