#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 */