fix: bots at difficulty 0 unable to do anything useful
fix: lang configs unable to parse last translated line (fixes #340) fix: last enemy isn't cleared instantly with dead entity anymore fix: bot weakness in pistol rounds analyzer: improved optimization of useless nodes linkage: make inability to call gamedll player( non-fatal linkage: fixed bot boot on WON engines pre 2000 builds (support for beta 6.5 restored) cvars: added suupport to revert all cvars to defaults via 'yb cvars defaults' cvars: added cv_preferred_personality to select bot default personality refactor: use single function to send hud messages over the bot code bot: added random original podbot welcome message to preserve origins of this bot conf: shuffle bot names and chatter items on conflig load conf: simplified a bit chatter.cfg syntax (old syntax still works build: added support for building with CMake (thanks @Velaron) refactor: rall the memory hooks moved into their one cpp file
This commit is contained in:
parent
01046f7c9a
commit
bf91ef2831
35 changed files with 1256 additions and 734 deletions
64
inc/chatlib.h
Normal file
64
inc/chatlib.h
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
//
|
||||
// YaPB, based on PODBot by Markus Klinge ("CountFloyd").
|
||||
// Copyright © YaPB Project Developers <yapb@jeefo.net>.
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
// links keywords and replies together
|
||||
struct ChatKeywords {
|
||||
StringArray keywords;
|
||||
StringArray replies;
|
||||
StringArray usedReplies;
|
||||
|
||||
public:
|
||||
ChatKeywords () = default;
|
||||
|
||||
ChatKeywords (const StringArray &keywords, const StringArray &replies) {
|
||||
this->keywords.clear ();
|
||||
this->replies.clear ();
|
||||
this->usedReplies.clear ();
|
||||
|
||||
this->keywords.insert (0, keywords);
|
||||
this->replies.insert (0, replies);
|
||||
}
|
||||
};
|
||||
|
||||
// define chatting collection structure
|
||||
struct ChatCollection {
|
||||
int chatProbability {};
|
||||
float chatDelay {};
|
||||
float timeNextChat {};
|
||||
int entityIndex {};
|
||||
String sayText {};
|
||||
StringArray lastUsedSentences {};
|
||||
};
|
||||
|
||||
|
||||
// bot's chat manager
|
||||
class BotChatManager : public Singleton <BotChatManager> {
|
||||
private:
|
||||
SmallArray <Twin <String, String>> m_clanTags {}; // strippable clan tags
|
||||
|
||||
public:
|
||||
BotChatManager ();
|
||||
~BotChatManager () = default;
|
||||
|
||||
public:
|
||||
// chat helper to strip the clantags out of the string
|
||||
void stripTags (String &line);
|
||||
|
||||
// chat helper to make player name more human-like
|
||||
void humanizePlayerName (String &playerName);
|
||||
|
||||
// chat helper to add errors to the bot chat string
|
||||
void addChatErrors (String &line);
|
||||
|
||||
// chat helper to find keywords for given string
|
||||
bool checkKeywords (StringRef line, String &reply);
|
||||
};
|
||||
|
||||
// expose global
|
||||
CR_EXPOSE_GLOBAL_SINGLETON (BotChatManager, chatlib);
|
||||
Loading…
Add table
Add a link
Reference in a new issue