Dawn/src/game/poker/discussion/pokerdiscussion.c

72 lines
1.9 KiB
C

/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#include "pokerdiscussion.h"
void pokerDiscussionGet(
pokerdiscussion_t *discussion, pokerdiscussiondata_t *data
) {
discussion->count = 0;
memset(discussion->players, 0xFF,
sizeof(uint8_t) * POKER_DISCUSSION_MESSAGE_COUNT_MAX
);
for(uint8_t i = 0; i < POKER_PLAYER_COUNT; i++) {
char *buffer = malloc(sizeof(char) * 50);
sprintf(buffer, "Player %u", i);
discussion->messages[discussion->count] = buffer;
discussion->emotions[discussion->count] = i * 16;
discussion->players[discussion->count] = i;
discussion->count++;
}
return;
switch(data->reason) {
// Match Start Conversations
case POKER_DISCUSSION_REASON_MATCH_START:
discussion->count++;
discussion->messages[0] = "Match Start";
discussion->players[0] = 0;
discussion->emotions[0] = VN_CHARACTER_EMOTION_ANGRY;
break;
// Round Start Conversations
case POKER_DISCUSSION_REASON_ROUND_START:
discussion->count++;
discussion->messages[0] = "Round Start";
discussion->players[0] = 1;
discussion->emotions[0] = VN_CHARACTER_EMOTION_ANIME_MOM;
break;
// Fallback
default:
discussion->count++;
discussion->messages[0] = "Hmm, this seems to be an error message.";
discussion->players[0] = 3;
discussion->emotions[0] = VN_CHARACTER_EMOTION_CONCERNED_WORRIED;
break;
}
}
void pokerDiscussionQueue(pokerdiscussiondata_t *data) {
pokerdiscussion_t discussion;
uint8_t i, player;
pokerDiscussionGet(&discussion, data);
for(i = 0; i < discussion.count; i++) {
player = discussion.players[i];
pokerGameActionLookAdd(data->poker, player);
vnConversationTalk(&data->poker->scene.conversation,
discussion.messages[i],
data->poker->scene.characters + player,
discussion.emotions[i]
);
}
}