2022-07-22 22:52:54 +03:00
|
|
|
#include "Chat.h"
|
|
|
|
#include <string>
|
|
|
|
#include <iostream>
|
|
|
|
void ChatManager::addNewMessage(std::string author, std::string message) {
|
2022-07-23 00:47:19 +03:00
|
|
|
hide = 7.0;
|
2022-07-22 22:52:54 +03:00
|
|
|
messages.push_back(message);
|
|
|
|
authors.push_back(author);
|
|
|
|
isChatUpdate = true;
|
2022-07-24 15:30:14 +03:00
|
|
|
if (messages.size() > 20) {
|
2022-07-23 00:47:19 +03:00
|
|
|
messages.erase(messages.begin());
|
|
|
|
}
|
2022-07-22 22:52:54 +03:00
|
|
|
}
|
|
|
|
int ChatManager::update(double delta) {
|
|
|
|
hide = std::max(hide-delta, 0.0);
|
|
|
|
return std::min((int)(hide * 255.0), 255);
|
|
|
|
|
|
|
|
}
|
|
|
|
std::string ChatManager::getChat() {
|
2022-07-24 15:30:14 +03:00
|
|
|
updateChat(); return chatStr;
|
|
|
|
}
|
|
|
|
std::string ChatManager::getChatPreview() {
|
|
|
|
updateChat(); return chatStrPrev;
|
|
|
|
}
|
|
|
|
|
|
|
|
void ChatManager::updateChat() {
|
2022-07-22 22:52:54 +03:00
|
|
|
if (isChatUpdate) {
|
|
|
|
isChatUpdate = false;
|
|
|
|
int size = messages.size();
|
|
|
|
chatStr = "";
|
2022-07-24 15:30:14 +03:00
|
|
|
chatStrPrev = "";
|
|
|
|
for (int messageIndex = size - 1; messageIndex >= 0; messageIndex--)
|
2022-07-22 22:52:54 +03:00
|
|
|
{
|
2022-07-24 15:30:14 +03:00
|
|
|
if (messageIndex > size - 6) {
|
2022-07-24 20:22:47 +03:00
|
|
|
chatStrPrev += authors[messageIndex] + ": " + messages[messageIndex] + "\n";
|
2022-07-24 15:30:14 +03:00
|
|
|
}
|
2022-07-24 20:22:47 +03:00
|
|
|
chatStr += authors[messageIndex] + ": " + messages[messageIndex] + "\n";
|
2022-07-22 22:52:54 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|