2017-12-25 23:49:48 +00:00
|
|
|
#ifndef MAINSCREEN_HPP_INCLUDED
|
|
|
|
#define MAINSCREEN_HPP_INCLUDED
|
|
|
|
|
|
|
|
#include "../../Core/Types/Box.hpp"
|
2018-10-04 07:21:36 +00:00
|
|
|
#include "../../Core/Types/Tile.hpp"
|
2017-12-25 23:49:48 +00:00
|
|
|
#include "../../Core/Classes/Character.hpp"
|
|
|
|
#include <cstdint>
|
|
|
|
#include <string>
|
|
|
|
#include <vector>
|
2020-02-15 04:24:58 +00:00
|
|
|
#include <functional>
|
2023-03-09 17:15:48 +00:00
|
|
|
#include <regex>
|
2017-12-25 23:49:48 +00:00
|
|
|
|
2019-01-29 20:07:44 +00:00
|
|
|
/**
|
|
|
|
* @brief A namespace containing various functions related to the Mainscreen
|
|
|
|
*/
|
2018-12-27 18:17:09 +00:00
|
|
|
namespace Mainscreen
|
2017-12-25 23:49:48 +00:00
|
|
|
{
|
2018-12-27 18:17:09 +00:00
|
|
|
typedef enum SCREEN_STATE
|
|
|
|
{
|
|
|
|
LOGIN_SCREEN,
|
|
|
|
LOBBY_SCREEN,
|
|
|
|
CONNECTING,
|
|
|
|
LOADING,
|
|
|
|
HOPPING,
|
|
|
|
PLAYING
|
|
|
|
} SCREEN_STATE;
|
|
|
|
|
|
|
|
typedef enum CROSSHAIR_STATE
|
|
|
|
{
|
|
|
|
NONE,
|
|
|
|
YELLOW,
|
|
|
|
RED
|
|
|
|
} CROSSHAIR_STATE;
|
|
|
|
|
|
|
|
Mainscreen::SCREEN_STATE GetState();
|
|
|
|
Mainscreen::CROSSHAIR_STATE GetCrosshairState();
|
|
|
|
|
2019-01-29 20:07:44 +00:00
|
|
|
/**
|
|
|
|
* @brief Returns true if the Mainscreen SCREEN_STATE is PLAYING, LOADING, or HOPPING
|
|
|
|
* @return True if the Mainscreen SCREEN_STATE is PLAYING, LOADING, or HOPPING
|
|
|
|
*/
|
2018-12-27 18:17:09 +00:00
|
|
|
bool IsLoggedIn();
|
2019-01-29 20:07:44 +00:00
|
|
|
/**
|
|
|
|
* @brief Returns true if the player is moving
|
|
|
|
* @return True if the player is moving
|
|
|
|
* @details P.GetPoseAnimationID() != P.GetSubPoseAnimationID()
|
|
|
|
*/
|
2018-12-27 18:17:09 +00:00
|
|
|
bool IsMoving();
|
2019-01-29 20:07:44 +00:00
|
|
|
/**
|
|
|
|
* @brief Returns true if the player is animating
|
|
|
|
* @return True if the player is animating
|
|
|
|
* @details P.GetAnimationID() != -1
|
|
|
|
*/
|
2018-12-27 18:17:09 +00:00
|
|
|
bool IsAnimating();
|
|
|
|
|
|
|
|
std::string GetUpText();
|
2019-01-29 20:07:44 +00:00
|
|
|
|
2018-12-27 18:17:09 +00:00
|
|
|
bool IsUpText(const std::string& UpText);
|
|
|
|
bool IsUpText(const std::vector<std::string>& UpTexts);
|
2019-01-29 20:07:44 +00:00
|
|
|
|
2023-03-09 17:15:48 +00:00
|
|
|
bool UpTextContains(const std::regex& Regex);
|
2019-01-29 20:07:44 +00:00
|
|
|
bool UpTextContains(const std::string& UpText);
|
|
|
|
bool UpTextContains(const std::vector<std::string>& UpTexts);
|
|
|
|
bool UpTextContains(const std::string& UpText, std::uint32_t CheckTime, std::uint32_t FailCheckTime);
|
|
|
|
bool UpTextContains(const std::vector<std::string>& UpTexts, std::uint32_t CheckTime, std::uint32_t FailCheckTime);
|
|
|
|
|
2018-12-27 18:17:09 +00:00
|
|
|
bool WaitIsUpText(std::uint32_t Duration, std::uint32_t Step, const std::string& UpText);
|
2019-01-29 20:07:44 +00:00
|
|
|
|
2018-12-27 18:17:09 +00:00
|
|
|
bool WaitUpTextContains(std::uint32_t Duration, std::uint32_t Step, const std::string& UpText);
|
|
|
|
bool WaitUpTextContains(std::uint32_t Duration, std::uint32_t Step, const std::vector<std::string>& UpTexts);
|
2019-01-29 20:07:44 +00:00
|
|
|
|
2020-02-15 04:24:58 +00:00
|
|
|
bool IsTileOn(const Tile& T);
|
2018-12-27 18:17:09 +00:00
|
|
|
bool ClickTile(const Tile& T);
|
2019-01-29 20:07:44 +00:00
|
|
|
|
2020-02-15 04:24:58 +00:00
|
|
|
bool WalkPath(const std::vector<Tile>& Path, std::int32_t Distance);
|
2020-06-25 18:13:21 +00:00
|
|
|
bool WalkPath(const std::vector<Tile>& Path, std::int32_t Distance, std::function<bool()> Func);
|
2020-02-15 04:24:58 +00:00
|
|
|
|
2019-01-29 20:07:44 +00:00
|
|
|
std::vector<Box> GetBlockingWidgetBoxes();
|
2021-10-16 00:18:02 +00:00
|
|
|
|
2021-10-16 03:34:27 +00:00
|
|
|
bool InRenderDistance(std::int32_t WorldX, std::int32_t WorldY, std::int32_t WorldZ, std::int32_t Plane);
|
|
|
|
|
2018-12-31 21:52:58 +00:00
|
|
|
}
|
2017-12-25 23:49:48 +00:00
|
|
|
|
|
|
|
#endif // MAINSCREEN_HPP_INCLUDED
|