Nimbin[12]?Games / Entropie / entropie/src/people/touch.h

Entropie git · main

Entropie festival game; first steps

sdl c game entropie cmake · first commit 2026-10-10 · last commit 2026-11-02 (18 hours ago) · synced 10 hours ago

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.gz
entropie/src/people/touch.h 1.9 KB · 36 lines raw
#ifndef PEOPLE_TOUCH_H
#define PEOPLE_TOUCH_H

/*
 * Taking hold of somebody (a hand reaching out: E / Q, see hands.h) - where,
 * and what it means between the two. A hand, an arm, a shoulder, the back:
 * friendly, if they like you well enough; the head: closer; the waist, a
 * leg: closeness; the chest, the bottom, between the legs: only if there's
 * real love between you. Unwelcome they pull away and say so - on the
 * intimate places it's harassment, and the people round may step in (how
 * likely: the whole place's awareness, World.aware: game_touch.c).
 *
 * How somebody feels about you: Object.like (friendship) and Object.love
 * (drawn to you); between two others it's strangers, but for couples.
 */

#include "world/world.h"

enum { TOUCH_HAND, TOUCH_ARM, TOUCH_SHOULDER, TOUCH_BACK, TOUCH_HEAD, TOUCH_WAIST, TOUCH_LEG,
       TOUCH_CHEST, TOUCH_BUTT, TOUCH_GROIN, TOUCH_PARTS };
/* What a touch did: welcome, put up with (a bit much, said so), unwelcome (pulled away), harassment. */
enum { TOUCHED_WELCOME, TOUCHED_TOLERATED, TOUCHED_UNWELCOME, TOUCHED_HARASSED };

/* Where on whom a joint (and the hand at it) is: TOUCH_*. Intimate: a leg, the chest, the bottom, between the legs
   (unwelcome there: harassment; the waist is closeness, unwelcome is all). */
int         Touch_part(const Object *whom, int joint, Vec3 hand);
const char *Touch_partName(int part);
bool        Touch_intimate(int part);
/* How they feel about by: friendship and love (you: like, love; others: strangers, couples). */
void        Touch_feelings(const Object *whom, const Object *by, float *like, float *love);
/* Taken hold of there by by: their answer (TOUCHED_*), said, and what it does to how they feel. */
int         Touch_react(World *world, Object *whom, Object *by, int part);
/* A kind touch (calming, a hand on the shoulder): how they take it - true if it helps. */
bool        Touch_calm(World *world, Object *whom, Object *by, int part);

#endif /* PEOPLE_TOUCH_H */