mirror of
https://github.com/Q3Rally-Team/q3rally.git
synced 2024-11-22 20:11:48 +00:00
0081965385
Mostly whitespace changes. No bug fixes. Q3Rally doesn't change any botlib code so revert copyright in botlib headers that use to be in the Q3 SDK game source directory. MD3_MAX_* defines (besides MD3_MAX_LOD) are not used so revert to ioq3 values.
113 lines
4.4 KiB
C
113 lines
4.4 KiB
C
/*
|
|
===========================================================================
|
|
Copyright (C) 1999-2005 Id Software, Inc.
|
|
|
|
This file is part of Quake III Arena source code.
|
|
|
|
Quake III Arena source code is free software; you can redistribute it
|
|
and/or modify it under the terms of the GNU General Public License as
|
|
published by the Free Software Foundation; either version 2 of the License,
|
|
or (at your option) any later version.
|
|
|
|
Quake III Arena source code is distributed in the hope that it will be
|
|
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with Quake III Arena source code; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
===========================================================================
|
|
*/
|
|
//
|
|
/*****************************************************************************
|
|
* name: be_ai_chat.h
|
|
*
|
|
* desc: char AI
|
|
*
|
|
* $Archive: /source/code/botlib/be_ai_chat.h $
|
|
*
|
|
*****************************************************************************/
|
|
|
|
#define MAX_MESSAGE_SIZE 256
|
|
#define MAX_CHATTYPE_NAME 32
|
|
#define MAX_MATCHVARIABLES 8
|
|
|
|
#define CHAT_GENDERLESS 0
|
|
#define CHAT_GENDERFEMALE 1
|
|
#define CHAT_GENDERMALE 2
|
|
|
|
#define CHAT_ALL 0
|
|
#define CHAT_TEAM 1
|
|
#define CHAT_TELL 2
|
|
|
|
//a console message
|
|
typedef struct bot_consolemessage_s
|
|
{
|
|
int handle;
|
|
float time; //message time
|
|
int type; //message type
|
|
char message[MAX_MESSAGE_SIZE]; //message
|
|
struct bot_consolemessage_s *prev, *next; //prev and next in list
|
|
} bot_consolemessage_t;
|
|
|
|
//match variable
|
|
typedef struct bot_matchvariable_s
|
|
{
|
|
char offset;
|
|
int length;
|
|
} bot_matchvariable_t;
|
|
//returned to AI when a match is found
|
|
typedef struct bot_match_s
|
|
{
|
|
char string[MAX_MESSAGE_SIZE];
|
|
int type;
|
|
int subtype;
|
|
bot_matchvariable_t variables[MAX_MATCHVARIABLES];
|
|
} bot_match_t;
|
|
|
|
//setup the chat AI
|
|
int BotSetupChatAI(void);
|
|
//shutdown the chat AI
|
|
void BotShutdownChatAI(void);
|
|
//returns the handle to a newly allocated chat state
|
|
int BotAllocChatState(void);
|
|
//frees the chatstate
|
|
void BotFreeChatState(int handle);
|
|
//adds a console message to the chat state
|
|
void BotQueueConsoleMessage(int chatstate, int type, char *message);
|
|
//removes the console message from the chat state
|
|
void BotRemoveConsoleMessage(int chatstate, int handle);
|
|
//returns the next console message from the state
|
|
int BotNextConsoleMessage(int chatstate, bot_consolemessage_t *cm);
|
|
//returns the number of console messages currently stored in the state
|
|
int BotNumConsoleMessages(int chatstate);
|
|
//selects a chat message of the given type
|
|
void BotInitialChat(int chatstate, char *type, int mcontext, char *var0, char *var1, char *var2, char *var3, char *var4, char *var5, char *var6, char *var7);
|
|
//returns the number of initial chat messages of the given type
|
|
int BotNumInitialChats(int chatstate, char *type);
|
|
//find and select a reply for the given message
|
|
int BotReplyChat(int chatstate, char *message, int mcontext, int vcontext, char *var0, char *var1, char *var2, char *var3, char *var4, char *var5, char *var6, char *var7);
|
|
//returns the length of the currently selected chat message
|
|
int BotChatLength(int chatstate);
|
|
//enters the selected chat message
|
|
void BotEnterChat(int chatstate, int clientto, int sendto);
|
|
//get the chat message ready to be output
|
|
void BotGetChatMessage(int chatstate, char *buf, int size);
|
|
//checks if the first string contains the second one, returns index into first string or -1 if not found
|
|
int StringContains(char *str1, char *str2, int casesensitive);
|
|
//finds a match for the given string using the match templates
|
|
int BotFindMatch(char *str, bot_match_t *match, unsigned long int context);
|
|
//returns a variable from a match
|
|
void BotMatchVariable(bot_match_t *match, int variable, char *buf, int size);
|
|
//unify all the white spaces in the string
|
|
void UnifyWhiteSpaces(char *string);
|
|
//replace all the context related synonyms in the string
|
|
void BotReplaceSynonyms(char *string, unsigned long int context);
|
|
//loads a chat file for the chat state
|
|
int BotLoadChatFile(int chatstate, char *chatfile, char *chatname);
|
|
//store the gender of the bot in the chat state
|
|
void BotSetChatGender(int chatstate, int gender);
|
|
//store the bot name in the chat state
|
|
void BotSetChatName(int chatstate, char *name, int client);
|
|
|