2017-12-25 23:49:48 +00:00
# ifndef CHAT_HPP_INCLUDED
# define CHAT_HPP_INCLUDED
# include "../../Core/Classes/MessageNode.hpp"
# include <cstdint>
# include <string>
# include <vector>
/** @addtogroup Interfaces
* @ { */
class Chat
{
public :
typedef enum DIALOGUE_STATE
{
IDLE ,
CLICK_CONTINUE ,
SELECT_OPTION ,
2018-05-17 01:18:17 +00:00
PLEASE_WAIT ,
2018-04-04 00:54:59 +00:00
ENTER_AMOUNT ,
LEVEL_UP
2017-12-25 23:49:48 +00:00
} DIALOGUE_STATE ;
typedef enum CHAT_TYPE
{
SYSTEM = 200 ,
PUBLIC_CHAT = 201 ,
PRIVATE_CHAT = 202 ,
CLAN_CHAT = 203 ,
_SYSTEM = 0 ,
_PUBLIC_CHAT = 2 ,
_PRIVATE_CHAT_INCOMING = 3 ,
_PRIVATE_CHAT_SYSTEM = 5 ,
_PRIVATE_CHAT_OUTGOING = 6 ,
_CLAN_CHAT = 9 ,
_CLAN_CHAT_SYSTEM = 11 ,
_BROADCAST_SYSTEM = 14 ,
_EXAMINE_ITEM = 27 ,
_EXAMINE_NPC = 28 ,
_EXAMINE_GAMEOBJECT = 29 ,
_PRIVATE_CHAT_SYSTEM2 = 30 ,
_AUTO_CHAT = 90 ,
_TRADE_INCOMING = 101 ,
_TRADE = 102
} CHAT_TYPE ;
2018-03-18 14:38:29 +00:00
static std : : vector < Internal : : MessageNode > GetMessages ( CHAT_TYPE Type ) ;
static std : : vector < Internal : : MessageNode > GetMessages ( CHAT_TYPE Type , bool Sort ) ;
static Internal : : MessageNode GetLastMessage ( CHAT_TYPE Type ) ;
2017-12-25 23:49:48 +00:00
static DIALOGUE_STATE GetDialogueState ( ) ;
static std : : vector < std : : string > GetDialogueOptions ( ) ;
static std : : string GetDialogueTitle ( ) ;
static std : : string GetDialogueMessage ( ) ;
2018-05-17 01:18:17 +00:00
static std : : int32_t GetDialogueOptionIndexOf ( const std : : string & Option ) ;
static std : : int32_t GetDialogueOptionIndexOf ( const std : : vector < std : : string > & Options ) ;
2018-05-10 14:03:33 +00:00
static bool ClickContinue ( bool UseKeyboard = false ) ;
2017-12-25 23:49:48 +00:00
static bool EnterAmount ( std : : int32_t Amount ) ;
2018-05-17 01:18:17 +00:00
2018-05-19 01:48:01 +00:00
static bool SelectDialogueOption ( std : : int32_t Index , bool UseKeyboard = false ) ; // Index starts at 0
2018-05-10 14:03:33 +00:00
static bool SelectDialogueOption ( const std : : string & Option , bool UseKeyboard = false ) ;
static bool SelectDialogueOption ( const std : : vector < std : : string > & Options , bool UseKeyboard = false ) ;
2018-05-17 01:18:17 +00:00
static bool WaitDialogueState ( std : : uint32_t Duration , std : : uint32_t Step , Chat : : DIALOGUE_STATE State , bool Result = true ) ; // Waits until the current chat state equals State
2017-12-25 23:49:48 +00:00
} ;
/** @} */
# endif // CHAT_HPP_INCLUDED