#include "world/why.h" #include static const WhyInfo WHY[WHY_COUNT] = { [WHY_URINELLA] = { .title = "Free Urinellas", .ask = "Why do festivals hand out Urinellas?", .seen = "A woman peed standing up with a Urinella. Why would a festival hand those out?", .knowers = { "Jana", "Julia", "Stella", "Doro" }, .answer = "The queues! With one I'm as quick as the guys - no squatting in the dark.", .because = "Women wait far longer at festival toilets, and at night they squat in the dark bushes. " "A Urinella lets them pee standing: quicker, safer, shorter queues for everybody.", .option = "Yes - free Urinellas at every toilet (60 EUR)", .raiser = "Stella", .raise = "At the last festival there were free Urinellas everywhere. Anybody know why?", .cost = 60, }, [WHY_AWARENESS] = { .title = "An awareness team", .ask = "Why do festivals have an awareness team?", .seen = "Somebody was down, out cold - and nobody noticed. Who looks out for people at a festival?", .knowers = { "Stella", "Doro", "Julia", "Volkram" }, .answer = "Sober people on shift who look out for anyone not okay - drink, creeps, panic.", .because = "Too much to drink, somebody getting too close, a bad trip, panic in a crowd: an awareness team " "is sober people on shift, easy to find, who look out for anyone who isn't okay and help.", .option = "Yes - an awareness team, the crew takes turns on shift", .raiser = "Julia", .raise = "Fusion has an awareness team. Do we need one too? Why do they have it?", .cost = 0, }, [WHY_SHIRT] = { .title = "No shirt, no service", .ask = "Why do some festivals say \"no shirt, no service\"?", .seen = "Shirtless at work again. Some festival bars say \"no shirt, no service\" - why?", .knowers = { "Jana", "Julia", "Kilian", "Stella" }, .answer = "Guys go shirtless anywhere, women can't without stares. It keeps it fair.", .because = "Men walk about shirtless everywhere while women can't without being stared at - it makes " "the place feel like theirs. No shirt, no service at the bars keeps it the same for everybody.", .option = "Yes - no shirt, no service at our bars", .raiser = "Kilian", .raise = "Somebody told me: no shirt, no service at the bar. What's that about?", .cost = 0, }, }; const WhyInfo *Why_get(int k) { return &WHY[k < 0 ? 0 : k >= WHY_COUNT ? WHY_COUNT - 1 : k]; } bool Why_knows(const Object *who, int k) { if (!who || !who->is_character) return false; for (int i = 0; i < 4; i++) if (WHY[k].knowers[i] && !strcmp(who->name, WHY[k].knowers[i])) return true; return false; } int Why_open(const World *world) { for (int k = 0; k < WHY_COUNT; k++) if (world->why[k] == WHY_RAISED) return k; return -1; }