Release 0.01

master
Kasi 2017-12-25 23:49:48 +00:00
commit 58cc534814
104 changed files with 4323 additions and 0 deletions

View File

@ -0,0 +1,24 @@
#ifndef ANIMATION_HPP_INCLUDED
#define ANIMATION_HPP_INCLUDED
#include "CacheableNode.hpp"
#include "../JavaClass/Class.hpp"
#include <vector>
#include <cstdint>
class Animation : public CacheableNode
{
public:
Animation();
Animation(const void* Obj);
Animation(const Animation& A);
static Class GetClass();
std::vector<std::int32_t> GetFrameIDs() const;
std::vector<std::int32_t> GetInterleave() const;
std::int32_t GetLeftHandItem() const;
std::int32_t GetRightHandItem() const;
};
#endif // ANIMATION_HPP_INCLUDED

View File

@ -0,0 +1,22 @@
#ifndef CACHE_HPP_INCLUDED
#define CACHE_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include "HashTable.hpp"
#include "Queue.hpp"
class Cache : public Object
{
public:
Cache();
Cache(const void* Obj);
Cache(const Cache& C);
static Class GetClass();
HashTable GetHashTable() const;
Queue GetQueue() const;
};
#endif // CACHE_HPP_INCLUDED

View File

@ -0,0 +1,20 @@
#ifndef CACHEABLENODE_HPP_INCLUDED
#define CACHEABLENODE_HPP_INCLUDED
#include "Node.hpp"
#include "../JavaClass/Class.hpp"
class CacheableNode : public Node
{
public:
CacheableNode();
CacheableNode(const void* Obj);
CacheableNode(const CacheableNode& C);
static Class GetClass();
CacheableNode GetNext() const;
CacheableNode GetPrev() const;
};
#endif // CACHEABLENODE_HPP_INCLUDED

View File

@ -0,0 +1,36 @@
#ifndef CHARACTER_HPP_INCLUDED
#define CHARACTER_HPP_INCLUDED
#include "Renderable.hpp"
#include "../JavaClass/Class.hpp"
#include <cstdint>
#include "LinkedList.hpp"
#include <string>
#include <vector>
class Character : public Renderable
{
public:
Character();
Character(const void* Obj);
Character(const Character& C);
static Class GetClass();
std::int32_t GetAngle() const;
std::int32_t GetAnimation() const;
std::int32_t GetAnimationDelay() const;
std::int32_t GetAnimationFrame() const;
LinkedList GetCombatInfo() const;
std::int32_t GetInteractIndex() const;
std::string GetOverhead() const;
std::vector<std::int32_t> GetPathX() const;
std::vector<std::int32_t> GetPathY() const;
std::int32_t GetPoseAnimation() const;
std::int32_t GetSubAnimationFrame() const;
std::int32_t GetSubPoseAnimation() const;
std::int32_t GetX() const;
std::int32_t GetY() const;
};
#endif // CHARACTER_HPP_INCLUDED

View File

@ -0,0 +1,23 @@
#ifndef CHATLINEBUFFER_HPP_INCLUDED
#define CHATLINEBUFFER_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include <cstdint>
#include <vector>
#include "MessageNode.hpp"
class ChatLineBuffer : public Object
{
public:
ChatLineBuffer();
ChatLineBuffer(const void* Obj);
ChatLineBuffer(const ChatLineBuffer& C);
static Class GetClass();
std::int32_t GetLength() const;
std::vector<MessageNode> GetLines() const;
};
#endif // CHATLINEBUFFER_HPP_INCLUDED

View File

@ -0,0 +1,23 @@
#ifndef CLANMEMBER_HPP_INCLUDED
#define CLANMEMBER_HPP_INCLUDED
#include "Node.hpp"
#include "../JavaClass/Class.hpp"
#include <string>
#include <cstdint>
class ClanMember : public Node
{
public:
ClanMember();
ClanMember(const void* Obj);
ClanMember(const ClanMember& C);
static Class GetClass();
std::string GetName() const;
std::int8_t GetRank() const;
std::int32_t GetWorld() const;
};
#endif // CLANMEMBER_HPP_INCLUDED

View File

@ -0,0 +1,30 @@
#ifndef DECORATIVEMODEL_HPP_INCLUDED
#define DECORATIVEMODEL_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include <cstdint>
#include "Renderable.hpp"
class DecorativeModel : public Object
{
public:
DecorativeModel();
DecorativeModel(const void* Obj);
DecorativeModel(const DecorativeModel& D);
static Class GetClass();
std::int32_t GetAngle() const;
std::int32_t GetFlags() const;
std::int32_t GetHash() const;
std::int32_t GetOffsetX() const;
std::int32_t GetOffsetY() const;
std::int32_t GetPlane() const;
std::int32_t GetRenderInfo() const;
Renderable GetRenderable() const;
std::int32_t GetX() const;
std::int32_t GetY() const;
};
#endif // DECORATIVEMODEL_HPP_INCLUDED

View File

@ -0,0 +1,21 @@
#ifndef DEQUE_HPP_INCLUDED
#define DEQUE_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include "Node.hpp"
class Deque : public Object
{
public:
Deque();
Deque(const void* Obj);
Deque(const Deque& D);
static Class GetClass();
Node GetHead() const;
Node GetTail() const;
};
#endif // DEQUE_HPP_INCLUDED

View File

@ -0,0 +1,21 @@
#ifndef DYNAMICMODEL_HPP_INCLUDED
#define DYNAMICMODEL_HPP_INCLUDED
#include "Renderable.hpp"
#include "../JavaClass/Class.hpp"
#include <cstdint>
class DynamicModel : public Renderable
{
public:
DynamicModel();
DynamicModel(const void* Obj);
DynamicModel(const DynamicModel& D);
static Class GetClass();
std::int32_t GetID() const;
std::int32_t GetOrientation() const;
std::int32_t GetType() const;
};
#endif // DYNAMICMODEL_HPP_INCLUDED

View File

@ -0,0 +1,23 @@
#ifndef EXCHANGEOFFER_HPP_INCLUDED
#define EXCHANGEOFFER_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include <cstdint>
class ExchangeOffer : public Object
{
public:
ExchangeOffer();
ExchangeOffer(const void* Obj);
ExchangeOffer(const ExchangeOffer& E);
static Class GetClass();
std::int32_t GetAmountTraded() const;
std::int32_t GetItemID() const;
std::int8_t GetProgress() const;
std::int32_t GetTotalAmount() const;
};
#endif // EXCHANGEOFFER_HPP_INCLUDED

View File

@ -0,0 +1,28 @@
#ifndef FRAME_HPP_INCLUDED
#define FRAME_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include <vector>
#include <cstdint>
#include "FrameMap.hpp"
class Frame : public Object
{
public:
Frame();
Frame(const void* Obj);
Frame(const Frame& F);
static Class GetClass();
std::vector<std::int32_t> GetIndices() const;
bool GetShowing() const;
FrameMap GetSkin() const;
std::vector<std::int32_t> GetTranslatorX() const;
std::vector<std::int32_t> GetTranslatorY() const;
std::vector<std::int32_t> GetTranslatorZ() const;
std::int32_t GetTranslatorsLength() const;
};
#endif // FRAME_HPP_INCLUDED

View File

@ -0,0 +1,22 @@
#ifndef FRAMEMAP_HPP_INCLUDED
#define FRAMEMAP_HPP_INCLUDED
#include "Node.hpp"
#include "../JavaClass/Class.hpp"
#include <vector>
#include <cstdint>
class FrameMap : public Node
{
public:
FrameMap();
FrameMap(const void* Obj);
FrameMap(const FrameMap& F);
static Class GetClass();
std::vector<std::vector<std::int32_t>> GetList() const;
std::vector<std::int32_t> GetTypes() const;
};
#endif // FRAMEMAP_HPP_INCLUDED

View File

@ -0,0 +1,21 @@
#ifndef FRAMES_HPP_INCLUDED
#define FRAMES_HPP_INCLUDED
#include "CacheableNode.hpp"
#include "../JavaClass/Class.hpp"
#include <vector>
#include "Frame.hpp"
class Frames : public CacheableNode
{
public:
Frames();
Frames(const void* Obj);
Frames(const Frames& F);
static Class GetClass();
std::vector<Frame> GetSkeletons() const;
};
#endif // FRAMES_HPP_INCLUDED

View File

@ -0,0 +1,24 @@
#ifndef FRIEND_HPP_INCLUDED
#define FRIEND_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include <string>
#include <cstdint>
class Friend : public Object
{
public:
Friend();
Friend(const void* Obj);
Friend(const Friend& F);
static Class GetClass();
std::string GetName() const;
std::string GetPreviousName() const;
std::int32_t GetRank() const;
std::int32_t GetWorld() const;
};
#endif // FRIEND_HPP_INCLUDED

View File

@ -0,0 +1,32 @@
#ifndef GAMEMODEL_HPP_INCLUDED
#define GAMEMODEL_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include <cstdint>
#include "Renderable.hpp"
class GameModel : public Object
{
public:
GameModel();
GameModel(const void* Obj);
GameModel(const GameModel& G);
static Class GetClass();
std::int32_t GetAngle() const;
std::int32_t GetFlags() const;
std::int32_t GetHash() const;
std::int32_t GetHeight() const;
std::int32_t GetOffsetX() const;
std::int32_t GetOffsetY() const;
std::int32_t GetPlane() const;
std::int32_t GetRelativeX() const;
std::int32_t GetRelativeY() const;
Renderable GetRenderable() const;
std::int32_t GetX() const;
std::int32_t GetY() const;
};
#endif // GAMEMODEL_HPP_INCLUDED

View File

@ -0,0 +1,20 @@
#ifndef GAMESHELL_HPP_INCLUDED
#define GAMESHELL_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include "../JavaClass/Canvas.hpp"
class GameShell : public Object
{
public:
GameShell();
GameShell(const void* Obj);
GameShell(const GameShell& G);
static Class GetClass();
Canvas GetCanvas() const;
};
#endif // GAMESHELL_HPP_INCLUDED

View File

@ -0,0 +1,21 @@
#ifndef GROUNDITEM_HPP_INCLUDED
#define GROUNDITEM_HPP_INCLUDED
#include "Renderable.hpp"
#include "../JavaClass/Class.hpp"
#include <cstdint>
class GroundItem : public Renderable
{
public:
GroundItem();
GroundItem(const void* Obj);
GroundItem(const GroundItem& G);
static Class GetClass();
std::int32_t GetAmount() const;
std::int32_t GetID() const;
};
#endif // GROUNDITEM_HPP_INCLUDED

View File

@ -0,0 +1,26 @@
#ifndef GROUNDMODEL_HPP_INCLUDED
#define GROUNDMODEL_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include <cstdint>
#include "Renderable.hpp"
class GroundModel : public Object
{
public:
GroundModel();
GroundModel(const void* Obj);
GroundModel(const GroundModel& G);
static Class GetClass();
std::int32_t GetHash() const;
std::int32_t GetPlane() const;
std::int32_t GetRenderInfo() const;
Renderable GetRenderable() const;
std::int32_t GetX() const;
std::int32_t GetY() const;
};
#endif // GROUNDMODEL_HPP_INCLUDED

View File

@ -0,0 +1,24 @@
#ifndef HASHTABLE_HPP_INCLUDED
#define HASHTABLE_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include <vector>
#include "Node.hpp"
#include <cstdint>
class HashTable : public Object
{
public:
HashTable();
HashTable(const void* Obj);
HashTable(const HashTable& H);
static Class GetClass();
std::vector<Node> GetBuckets() const;
std::int32_t GetIndex() const;
std::int32_t GetSize() const;
};
#endif // HASHTABLE_HPP_INCLUDED

View File

@ -0,0 +1,21 @@
#ifndef IGNORE_HPP_INCLUDED
#define IGNORE_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include <string>
class Ignore : public Object
{
public:
Ignore();
Ignore(const void* Obj);
Ignore(const Ignore& I);
static Class GetClass();
std::string GetName() const;
std::string GetPreviousName() const;
};
#endif // IGNORE_HPP_INCLUDED

View File

@ -0,0 +1,22 @@
#ifndef ITEMCONTAINER_HPP_INCLUDED
#define ITEMCONTAINER_HPP_INCLUDED
#include "Node.hpp"
#include "../JavaClass/Class.hpp"
#include <vector>
#include <cstdint>
class ItemContainer : public Node
{
public:
ItemContainer();
ItemContainer(const void* Obj);
ItemContainer(const ItemContainer& I);
static Class GetClass();
std::vector<std::int32_t> GetItemAmounts() const;
std::vector<std::int32_t> GetItemIDs() const;
};
#endif // ITEMCONTAINER_HPP_INCLUDED

View File

@ -0,0 +1,32 @@
#ifndef ITEMINFO_HPP_INCLUDED
#define ITEMINFO_HPP_INCLUDED
#include "CacheableNode.hpp"
#include "../JavaClass/Class.hpp"
#include <vector>
#include <string>
#include <cstdint>
class ItemInfo : public CacheableNode
{
public:
ItemInfo();
ItemInfo(const void* Obj);
ItemInfo(const ItemInfo& I);
static Class GetClass();
std::vector<std::string> GetGroundActions() const;
std::int32_t GetID() const;
std::vector<std::string> GetInventoryActions() const;
bool GetMembers() const;
std::string GetName() const;
std::int32_t GetNoteID() const;
std::int32_t GetPrice() const;
std::int32_t GetSpriteID() const;
std::vector<std::int32_t> GetStackAmounts() const;
std::vector<std::int32_t> GetStackModelIDs() const;
std::int32_t GetStackable() const;
};
#endif // ITEMINFO_HPP_INCLUDED

View File

@ -0,0 +1,21 @@
#ifndef LINKEDLIST_HPP_INCLUDED
#define LINKEDLIST_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include "Node.hpp"
class LinkedList : public Object
{
public:
LinkedList();
LinkedList(const void* Obj);
LinkedList(const LinkedList& L);
static Class GetClass();
Node GetHead() const;
Node GetTail() const;
};
#endif // LINKEDLIST_HPP_INCLUDED

View File

@ -0,0 +1,26 @@
#ifndef MESSAGENODE_HPP_INCLUDED
#define MESSAGENODE_HPP_INCLUDED
#include "CacheableNode.hpp"
#include "../JavaClass/Class.hpp"
#include <cstdint>
#include <string>
class MessageNode : public CacheableNode
{
public:
MessageNode();
MessageNode(const void* Obj);
MessageNode(const MessageNode& M);
static Class GetClass();
std::int32_t GetID() const;
std::string GetName() const;
std::string GetSender() const;
std::string GetText() const;
std::int32_t GetTick() const;
std::int32_t GetType() const;
};
#endif // MESSAGENODE_HPP_INCLUDED

View File

@ -0,0 +1,29 @@
#ifndef MODEL_HPP_INCLUDED
#define MODEL_HPP_INCLUDED
#include "Renderable.hpp"
#include "../JavaClass/Class.hpp"
#include <vector>
#include <cstdint>
class Model : public Renderable
{
public:
Model();
Model(const void* Obj);
Model(const Model& M);
static Class GetClass();
std::vector<std::vector<std::int32_t>> GetFrameMapIndices() const;
std::vector<std::int32_t> GetIndicesA() const;
std::vector<std::int32_t> GetIndicesB() const;
std::vector<std::int32_t> GetIndicesC() const;
std::int32_t GetIndicesLength() const;
std::int32_t GetVerticesLength() const;
std::vector<std::int32_t> GetVerticesX() const;
std::vector<std::int32_t> GetVerticesY() const;
std::vector<std::int32_t> GetVerticesZ() const;
};
#endif // MODEL_HPP_INCLUDED

View File

@ -0,0 +1,20 @@
#ifndef NPC_HPP_INCLUDED
#define NPC_HPP_INCLUDED
#include "Character.hpp"
#include "../JavaClass/Class.hpp"
#include "NPCInfo.hpp"
class NPC : public Character
{
public:
NPC();
NPC(const void* Obj);
NPC(const NPC& N);
static Class GetClass();
NPCInfo GetInfo() const;
};
#endif // NPC_HPP_INCLUDED

View File

@ -0,0 +1,33 @@
#ifndef NPCINFO_HPP_INCLUDED
#define NPCINFO_HPP_INCLUDED
#include "CacheableNode.hpp"
#include "../JavaClass/Class.hpp"
#include <vector>
#include <string>
#include <cstdint>
class NPCInfo : public CacheableNode
{
public:
NPCInfo();
NPCInfo(const void* Obj);
NPCInfo(const NPCInfo& N);
static Class GetClass();
std::vector<std::string> GetActions() const;
std::int32_t GetCombatLevel() const;
std::int32_t GetID() const;
std::vector<std::int32_t> GetImposterIDs() const;
bool GetMinimapVisible() const;
std::vector<std::int32_t> GetModelIDs() const;
std::string GetName() const;
std::int32_t GetResizeX() const;
std::int32_t GetResizeY() const;
std::int32_t GetSettingID() const;
std::int32_t GetVarbitID() const;
bool GetVisible() const;
};
#endif // NPCINFO_HPP_INCLUDED

View File

@ -0,0 +1,22 @@
#ifndef NODE_HPP_INCLUDED
#define NODE_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include <cstdint>
class Node : public Object
{
public:
Node();
Node(const void* Obj);
Node(const Node& N);
static Class GetClass();
Node GetNext() const;
Node GetPrev() const;
std::int64_t GetUID() const;
};
#endif // NODE_HPP_INCLUDED

View File

@ -0,0 +1,29 @@
#ifndef OBJECTINFO_HPP_INCLUDED
#define OBJECTINFO_HPP_INCLUDED
#include "CacheableNode.hpp"
#include "../JavaClass/Class.hpp"
#include <vector>
#include <string>
#include <cstdint>
class ObjectInfo : public CacheableNode
{
public:
ObjectInfo();
ObjectInfo(const void* Obj);
ObjectInfo(const ObjectInfo& O);
static Class GetClass();
std::vector<std::string> GetActions() const;
std::int32_t GetID() const;
std::vector<std::int32_t> GetImposterIDs() const;
std::vector<std::int32_t> GetModelIDs() const;
std::string GetName() const;
std::vector<std::int32_t> GetObjectTypes() const;
std::int32_t GetSettingID() const;
std::int32_t GetVarbitID() const;
};
#endif // OBJECTINFO_HPP_INCLUDED

View File

@ -0,0 +1,31 @@
#ifndef PLAYER_HPP_INCLUDED
#define PLAYER_HPP_INCLUDED
#include "Character.hpp"
#include "../JavaClass/Class.hpp"
#include <vector>
#include <string>
#include <cstdint>
#include "PlayerInfo.hpp"
class Player : public Character
{
public:
Player();
Player(const void* Obj);
Player(const Player& P);
static Class GetClass();
std::vector<std::string> GetActions() const;
std::int32_t GetCombatLevel() const;
bool GetHidden() const;
PlayerInfo GetInfo() const;
std::string GetName() const;
std::int32_t GetOverheadIcon() const;
std::int32_t GetSkullIcon() const;
std::int32_t GetTeam() const;
std::int32_t GetTotalLevel() const;
};
#endif // PLAYER_HPP_INCLUDED

View File

@ -0,0 +1,25 @@
#ifndef PLAYERINFO_HPP_INCLUDED
#define PLAYERINFO_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include <vector>
#include <cstdint>
class PlayerInfo : public Object
{
public:
PlayerInfo();
PlayerInfo(const void* Obj);
PlayerInfo(const PlayerInfo& P);
static Class GetClass();
std::vector<std::int32_t> GetEquipment() const;
bool GetGender() const;
std::int64_t GetHash() const;
std::int64_t GetModelID() const;
std::int32_t GetNPCModelID() const;
};
#endif // PLAYERINFO_HPP_INCLUDED

View File

@ -0,0 +1,24 @@
#ifndef PREFERENCES_HPP_INCLUDED
#define PREFERENCES_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include "../JavaClass/LinkedHashMap.hpp"
#include <cstdint>
class Preferences : public Object
{
public:
Preferences();
Preferences(const void* Obj);
Preferences(const Preferences& P);
static Class GetClass();
bool GetHideRoofs() const;
bool GetMuted() const;
LinkedHashMap GetPreferences() const;
std::int32_t GetScreenType() const;
};
#endif // PREFERENCES_HPP_INCLUDED

View File

@ -0,0 +1,20 @@
#ifndef QUEUE_HPP_INCLUDED
#define QUEUE_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include "CacheableNode.hpp"
class Queue : public Object
{
public:
Queue();
Queue(const void* Obj);
Queue(const Queue& Q);
static Class GetClass();
CacheableNode GetHead() const;
};
#endif // QUEUE_HPP_INCLUDED

View File

@ -0,0 +1,23 @@
#ifndef REGION_HPP_INCLUDED
#define REGION_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include <vector>
#include "GameModel.hpp"
#include "SceneTile.hpp"
class Region : public Object
{
public:
Region();
Region(const void* Obj);
Region(const Region& R);
static Class GetClass();
std::vector<GameModel> GetGameModels() const;
std::vector<std::vector<std::vector<SceneTile>>> GetSceneTiles() const;
};
#endif // REGION_HPP_INCLUDED

View File

@ -0,0 +1,20 @@
#ifndef RENDERABLE_HPP_INCLUDED
#define RENDERABLE_HPP_INCLUDED
#include "CacheableNode.hpp"
#include "../JavaClass/Class.hpp"
#include <cstdint>
class Renderable : public CacheableNode
{
public:
Renderable();
Renderable(const void* Obj);
Renderable(const Renderable& R);
static Class GetClass();
std::int32_t GetModelHeight() const;
};
#endif // RENDERABLE_HPP_INCLUDED

View File

@ -0,0 +1,31 @@
#ifndef SCENETILE_HPP_INCLUDED
#define SCENETILE_HPP_INCLUDED
#include "Node.hpp"
#include "../JavaClass/Class.hpp"
#include "DecorativeModel.hpp"
#include <vector>
#include "GameModel.hpp"
#include "GroundModel.hpp"
#include <cstdint>
#include "WallModel.hpp"
class SceneTile : public Node
{
public:
SceneTile();
SceneTile(const void* Obj);
SceneTile(const SceneTile& G);
static Class GetClass();
DecorativeModel GetDecorativeModel() const;
std::vector<GameModel> GetGameModels() const;
GroundModel GetGroundModel() const;
std::int32_t GetPlane() const;
WallModel GetWallModel() const;
std::int32_t GetX() const;
std::int32_t GetY() const;
};
#endif // SCENETILE_HPP_INCLUDED

View File

@ -0,0 +1,23 @@
#ifndef SPRITE_HPP_INCLUDED
#define SPRITE_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include <cstdint>
#include <vector>
class Sprite : public Object
{
public:
Sprite();
Sprite(const void* Obj);
Sprite(const Sprite& S);
static Class GetClass();
std::int32_t GetHeight() const;
std::vector<std::int32_t> GetPixels() const;
std::int32_t GetWidth() const;
};
#endif // SPRITE_HPP_INCLUDED

View File

@ -0,0 +1,22 @@
#ifndef VARBIT_HPP_INCLUDED
#define VARBIT_HPP_INCLUDED
#include "CacheableNode.hpp"
#include "../JavaClass/Class.hpp"
#include <cstdint>
class Varbit : public CacheableNode
{
public:
Varbit();
Varbit(const void* Obj);
Varbit(const Varbit& V);
static Class GetClass();
std::int32_t GetLSB() const;
std::int32_t GetMSB() const;
std::int32_t GetSettingID() const;
};
#endif // VARBIT_HPP_INCLUDED

View File

@ -0,0 +1,28 @@
#ifndef WALLMODEL_HPP_INCLUDED
#define WALLMODEL_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include <cstdint>
#include "Renderable.hpp"
class WallModel : public Object
{
public:
WallModel();
WallModel(const void* Obj);
WallModel(const WallModel& W);
static Class GetClass();
std::int32_t GetAngle() const;
std::int32_t GetFlags() const;
std::int32_t GetHash() const;
std::int32_t GetHeight() const;
std::int32_t GetPlane() const;
Renderable GetRenderable() const;
std::int32_t GetX() const;
std::int32_t GetY() const;
};
#endif // WALLMODEL_HPP_INCLUDED

View File

@ -0,0 +1,44 @@
#ifndef WIDGET_HPP_INCLUDED
#define WIDGET_HPP_INCLUDED
#include "Node.hpp"
#include "../JavaClass/Class.hpp"
#include <vector>
#include <string>
#include <cstdint>
class Widget : public Node
{
public:
Widget();
Widget(const void* Obj);
Widget(const Widget& W);
static Class GetClass();
std::vector<std::string> GetActions() const;
std::int32_t GetBorderThickness() const;
std::int32_t GetBoxIndex() const;
std::vector<Widget> GetChildren() const;
std::int32_t GetHeight() const;
bool GetHidden() const;
std::int32_t GetID() const;
std::int32_t GetItemAmount() const;
std::vector<std::int32_t> GetItemAmounts() const;
std::int32_t GetItemID() const;
std::vector<std::int32_t> GetItemIDs() const;
std::string GetName() const;
Widget GetParent() const;
std::int32_t GetParentID() const;
std::int32_t GetRelativeX() const;
std::int32_t GetRelativeY() const;
std::int32_t GetScrollX() const;
std::int32_t GetScrollY() const;
std::int32_t GetShadowColor() const;
std::int32_t GetSpriteID() const;
std::int32_t GetStackType() const;
std::string GetText() const;
std::int32_t GetWidth() const;
};
#endif // WIDGET_HPP_INCLUDED

View File

@ -0,0 +1,19 @@
#ifndef WIDGETNODE_HPP_INCLUDED
#define WIDGETNODE_HPP_INCLUDED
#include "Node.hpp"
#include "../JavaClass/Class.hpp"
#include <cstdint>
class WidgetNode : public Node
{
public:
WidgetNode();
WidgetNode(const void* Obj);
WidgetNode(const WidgetNode& W);
static Class GetClass();
std::int32_t GetID() const;
};
#endif // WIDGETNODE_HPP_INCLUDED

View File

@ -0,0 +1,27 @@
#ifndef WORLD_HPP_INCLUDED
#define WORLD_HPP_INCLUDED
#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include <string>
#include <cstdint>
class World : public Object
{
public:
World();
World(const void* Obj);
World(const World& W);
static Class GetClass();
std::string GetActivity() const;
std::string GetAddress() const;
std::int32_t GetID() const;
std::int32_t GetIndex() const;
std::int32_t GetLocation() const;
std::int32_t GetMask() const;
std::int32_t GetPlayerCount() const;
};
#endif // WORLD_HPP_INCLUDED

21
Include/Core/Debug.hpp Normal file
View File

@ -0,0 +1,21 @@
#ifndef DEBUG_HPP_INCLUDED
#define DEBUG_HPP_INCLUDED
#include "../../Include/Core/Types/Logger.hpp"
class Debug
{
public:
static Logger Info;
static Logger Verbose;
static Logger Warning;
static Logger Error;
static Logger Fatal;
static void ShowConsole();
static void HideConsole();
static void SetVerbose(bool Toggle);
};
#endif // DEBUG_HPP_INCLUDED

68
Include/Core/Input.hpp Normal file
View File

@ -0,0 +1,68 @@
#ifndef INPUT_HPP_INCLUDED
#define INPUT_HPP_INCLUDED
#include "Types/Point.hpp"
#include <string>
#include <cstdint>
typedef enum ScrollDirection
{
SCROLL_DOWN = 0,
SCROLL_UP = 1
} ScrollDirection;
typedef enum Button
{
BUTTON_NONE = 0,
BUTTON_LEFT = 1,
BUTTON_MIDDLE = 2,
BUTTON_RIGHT = 3
} Button;
typedef enum Key
{
KEY_BACKSPACE = 8,
KEY_TAB = 9,
KEY_NEWLINE = 10,
KEY_SHIFT = 16,
KEY_CTRL = 17,
KEY_ALT = 18,
KEY_ESC = 27,
KEY_DEL = 127,
KEY_LEFT = 256,
KEY_UP = 257,
KEY_RIGHT = 258,
KEY_DOWN = 259,
KEY_F1 = 260,
KEY_F2 = 261,
KEY_F3 = 262,
KEY_F4 = 263,
KEY_F5 = 264,
KEY_F6 = 265,
KEY_F7 = 266,
KEY_F8 = 267,
KEY_F9 = 268,
KEY_F10 = 269,
KEY_F11 = 270,
KEY_F12 = 271
} Key;
void SetupInput();
void GainFocus();
void LoseFocus();
bool IsKeyDown(std::int32_t K);
void ScrollUp();
void ScrollDown();
void MouseDown(std::int32_t B);
void MouseUp(std::int32_t B);
void MouseClick(std::int32_t B);
void MouseMove(Point P);
void MouseMove(std::int32_t X, std::int32_t Y);
void KeyDown(std::int32_t K);
void KeyUp(std::int32_t K);
void KeyHold(std::int32_t K, std::uint32_t Duration);
void KeyRelease(std::int32_t K);
bool ShiftNeeded(std::int32_t K);
Point GetMousePos();
#endif // INPUT_HPP_INCLUDED

218
Include/Core/Internal.hpp Normal file
View File

@ -0,0 +1,218 @@
#ifndef INTERNAL_HPP_INCLUDED
#define INTERNAL_HPP_INCLUDED
#include "Debug.hpp"
#include "Input.hpp"
#include "Math.hpp"
#include "Paint.hpp"
#include "Script.hpp"
#include "Time.hpp"
#include "Types/Tile.hpp"
#include "Types/Point.hpp"
#include "Types/Box.hpp"
#include "Types/Timer.hpp"
#include "Types/Counter.hpp"
#include "Types/Countdown.hpp"
#include "Types/Convex.hpp"
#include "Types/Area.hpp"
#include "Types/Logger.hpp"
#include "JavaClass/Canvas.hpp"
#include "JavaClass/FocusEvent.hpp"
#include "JavaClass/Integer.hpp"
#include "JavaClass/KeyEvent.hpp"
#include "JavaClass/LinkedHashMap.hpp"
#include "JavaClass/Map.hpp"
#include "JavaClass/MouseEvent.hpp"
#include "JavaClass/MouseWheelEvent.hpp"
#include "JavaClass/Object.hpp"
#include "Classes/Animation.hpp"
#include "Classes/Cache.hpp"
#include "Classes/CacheableNode.hpp"
#include "Classes/Character.hpp"
#include "Classes/ChatLineBuffer.hpp"
#include "Classes/ClanMember.hpp"
#include "Classes/DecorativeModel.hpp"
#include "Classes/Deque.hpp"
#include "Classes/DynamicModel.hpp"
#include "Classes/ExchangeOffer.hpp"
#include "Classes/Frame.hpp"
#include "Classes/FrameMap.hpp"
#include "Classes/Frames.hpp"
#include "Classes/Friend.hpp"
#include "Classes/GameModel.hpp"
#include "Classes/GameShell.hpp"
#include "Classes/GroundItem.hpp"
#include "Classes/GroundModel.hpp"
#include "Classes/HashTable.hpp"
#include "Classes/Ignore.hpp"
#include "Classes/ItemContainer.hpp"
#include "Classes/ItemInfo.hpp"
#include "Classes/LinkedList.hpp"
#include "Classes/MessageNode.hpp"
#include "Classes/Model.hpp"
#include "Classes/Node.hpp"
#include "Classes/NPC.hpp"
#include "Classes/NPCInfo.hpp"
#include "Classes/ObjectInfo.hpp"
#include "Classes/Player.hpp"
#include "Classes/PlayerInfo.hpp"
#include "Classes/Preferences.hpp"
#include "Classes/Queue.hpp"
#include "Classes/Region.hpp"
#include "Classes/Renderable.hpp"
#include "Classes/SceneTile.hpp"
#include "Classes/Sprite.hpp"
#include "Classes/Varbit.hpp"
#include "Classes/WallModel.hpp"
#include "Classes/Widget.hpp"
#include "Classes/WidgetNode.hpp"
#include "Classes/World.hpp"
extern GameShell Client;
Cache GetAnimationCache();
std::int32_t GetCameraPitch();
std::int32_t GetCameraX();
std::int32_t GetCameraY();
std::int32_t GetCameraYaw();
std::int32_t GetCameraZ();
Map GetChatLineCache();
std::vector<ClanMember> GetClanMembers();
std::int32_t GetClientPlane();
Preferences GetClientPreferences();
std::int32_t GetClientX();
std::int32_t GetClientY();
std::vector<std::int32_t> GetCurrentLevels();
std::int32_t GetCurrentWorld();
Cache GetDynamicModelCache();
std::vector<ExchangeOffer> GetExchangeOffers();
std::vector<std::int32_t> GetExperiences();
bool GetFocused();
Cache GetFramesCache();
std::vector<Friend> GetFriends();
std::int32_t GetGameState();
std::int32_t GetGameTick();
std::vector<std::vector<std::vector<Deque>>> GetGroundItems();
std::vector<Ignore> GetIgnores();
HashTable GetItemContainers();
Cache GetItemModelCache();
std::int32_t GetItemSelected();
std::int32_t GetItemSelectedIndex();
Cache GetItemSpriteCache();
std::vector<std::int32_t> GetLevels();
std::int32_t GetLocalDestinationX();
std::int32_t GetLocalDestinationY();
Player GetLocalPlayer();
Region GetLocalRegion();
std::int32_t GetLoginCaret();
std::string GetLoginMessage0();
std::string GetLoginMessage1();
std::string GetLoginMessage2();
std::int32_t GetLoginScreenX();
std::int32_t GetLoginState();
std::int32_t GetLoginWindow();
std::int32_t GetMapAngle();
std::vector<std::string> GetMenuActions();
std::int32_t GetMenuCount();
std::int32_t GetMenuHeight();
std::vector<std::string> GetMenuTargets();
bool GetMenuVisible();
std::int32_t GetMenuWidth();
std::int32_t GetMenuX();
std::int32_t GetMenuY();
Cache GetModelCache();
std::vector<std::int32_t> GetNPCIndices();
Cache GetNPCModelCache();
std::vector<NPC> GetNPCs();
std::string GetPassword();
Cache GetPlayerModelCache();
std::vector<Player> GetPlayers();
std::int32_t GetRunEnergy();
std::string GetSelectedItemName();
std::string GetSelectedSpellName();
std::vector<std::int32_t> GetSettings();
bool GetSpellSelected();
std::vector<std::vector<std::vector<std::int32_t>>> GetTileHeights();
std::vector<std::vector<std::vector<std::int8_t>>> GetTileSettings();
std::string GetUsername();
Cache GetVarbitCache();
std::vector<std::int32_t> GetVarbitSettings();
std::int32_t GetViewportHeight();
std::int32_t GetViewportScale();
std::int32_t GetViewportWidth();
std::int32_t GetWeight();
HashTable GetWidgetNodeCache();
std::vector<std::vector<Widget>> GetWidgets();
std::vector<std::int32_t> GetWidgetsHeight();
std::vector<std::int32_t> GetWidgetsWidth();
std::vector<std::int32_t> GetWidgetsX();
std::vector<std::int32_t> GetWidgetsY();
bool GetWorldSelectOpen();
std::vector<World> GetWorlds();
ItemInfo GetItemInfo(std::int32_t ID);
NPCInfo GetNPCInfo(std::int32_t ID);
ObjectInfo GetObjectInfo(std::int32_t ID);
bool LoadWorlds();
void SetWorld(World W);
Widget GetWidget(std::int32_t Container, std::int32_t Component);
Widget GetWidgetParent(Widget W);
std::int32_t GetWidgetX(Widget W);
std::int32_t GetWidgetY(Widget W);
bool GetWidgetHidden(Widget W);
Box GetWidgetBox(Widget W);
ItemContainer GetItemContainer(std::int32_t ID);
NPC GetNPC(std::int32_t Index);
std::int32_t GetTileHeight(std::int32_t X, std::int32_t Y, std::int32_t Z,
std::vector<std::vector<std::vector<std::int32_t>>>& TileHeights,
std::vector<std::vector<std::vector<std::int8_t>>>& TileSettings);
Point WorldToScreen(std::int32_t X, std::int32_t Y, std::int32_t Z,
std::vector<std::vector<std::vector<std::int32_t>>>& TileHeights,
std::vector<std::vector<std::vector<std::int8_t>>>& TileSettings,
std::int32_t CameraX, std::int32_t CameraY, std::int32_t CameraZ,
std::int32_t Pitch, std::int32_t Yaw, std::int32_t Scale,
std::int32_t ViewportWidth, std::int32_t ViewportHeight,
std::int32_t ScreenType, std::int32_t Plane);
Point WorldToScreenEx(std::int32_t X, std::int32_t Y, std::int32_t Z,
std::vector<std::vector<std::vector<std::int32_t>>>& TileHeights,
std::vector<std::vector<std::vector<std::int8_t>>>& TileSettings,
std::int32_t CameraX, std::int32_t CameraY, std::int32_t CameraZ,
std::int32_t Pitch, std::int32_t Yaw, std::int32_t Scale,
std::int32_t ViewportWidth, std::int32_t ViewportHeight,
std::int32_t ScreenType, std::int32_t Plane,
std::int32_t PositionX, std::int32_t PositionY);
void RotateVertices(std::vector<std::int32_t>& X, std::vector<std::int32_t>& Y,
std::vector<std::int32_t>& Z, std::int32_t Angle);
std::vector<Point> ProjectModel(Model M, std::int32_t LocalX, std::int32_t LocalY,
std::int32_t LocalZ, std::int32_t Angle);
Model GetPlayerModel(std::int64_t ID);
Model GetNPCModel(std::int32_t ID);
Varbit GetVarbit(std::int32_t ID);
Animation GetAnimation(std::int32_t ID);
Frames GetFrames(std::int32_t ID);
Model GetItemModel(std::int32_t ID);
Model GetItemModel(std::int32_t ID, std::int32_t Amount);
Model GetGameModel(GameModel O);
Model GetWallModel(WallModel O);
Model GetDecorativeModel(DecorativeModel O);
Model GetGroundModel(GroundModel O);
Model GetDynamicModel(std::int32_t ID);
std::vector<std::vector<Deque>> GetGroundItems(std::int32_t Plane);
Deque GetGroundItems(std::int32_t X, std::int32_t Y);
Deque GetGroundItems(std::int32_t X, std::int32_t Y, std::int32_t Plane);
std::vector<Point> GetPlayerModel(Player P);
std::vector<Point> GetNPCModel(NPC N);
SceneTile GetSceneTile(std::int32_t X, std::int32_t Y, std::int32_t Plane);
std::vector<std::vector<SceneTile>> GetSceneTiles(std::int32_t Plane);
Point TileToMinimap(Tile T);
std::int32_t GetTileItemHeight(std::int32_t X, std::int32_t Y, std::int32_t Plane);
Sprite GetItemSprite(std::int32_t ID, std::int32_t Amount, std::int32_t BorderThickness,
std::int32_t ShadowColor, std::int32_t StackType);
Convex GetItemSpriteConvex(Sprite S);
#endif // INTERNAL_HPP_INCLUDED

View File

@ -0,0 +1,18 @@
#ifndef CANVAS_HPP_INCLUDED
#define CANVAS_HPP_INCLUDED
#include <cstdint>
#include "Object.hpp"
class Canvas : public Object
{
public:
Canvas();
Canvas(void* Obj);
Canvas(const Canvas& C);
void DispatchEvent(Object Event) const;
std::int32_t GetWidth() const;
std::int32_t GetHeight() const;
};
#endif // CANVAS_HPP_INCLUDED

View File

@ -0,0 +1,14 @@
#ifndef CLASS_HPP_INCLUDED
#define CLASS_HPP_INCLUDED
#include "Object.hpp"
class Class : public Object
{
public:
Class();
Class(const void* Obj);
Class(const Class& C);
};
#endif // CLASS_HPP_INCLUDED

View File

@ -0,0 +1,16 @@
#ifndef FOCUSEVENT_HPP_INCLUDED
#define FOCUSEVENT_HPP_INCLUDED
#include <cstdint>
#include "Object.hpp"
class FocusEvent : public Object
{
public:
FocusEvent();
FocusEvent(void* Object);
FocusEvent(const FocusEvent& M);
FocusEvent(Object Source, std::int32_t ID);
};
#endif // FOCUSEVENT_HPP_INCLUDED

View File

@ -0,0 +1,17 @@
#ifndef INTEGER_HPP_INCLUDED
#define INTEGER_HPP_INCLUDED
#include <cstdint>
#include "Object.hpp"
class Integer : public Object
{
public:
Integer();
Integer(void* Obj);
Integer(const Integer& I);
Integer(std::int32_t Value);
std::int32_t GetIntValue() const;
};
#endif // INTEGER_HPP_INCLUDED

View File

@ -0,0 +1,17 @@
#ifndef KEYEVENT_HPP_INCLUDED
#define KEYEVENT_HPP_INCLUDED
#include <cstdint>
#include "Object.hpp"
class KeyEvent : public Object
{
public:
KeyEvent();
KeyEvent(void* Obj);
KeyEvent(const KeyEvent& M);
KeyEvent(Object Source, std::int32_t ID, std::int64_t When, std::int32_t Modifiers,
std::int32_t KeyCode, std::uint16_t KeyChar, std::int32_t KeyLocation);
};
#endif // KEYEVENT_HPP_INCLUDED

View File

@ -0,0 +1,15 @@
#ifndef LINKEDHASHMAP_HPP_INCLUDED
#define LINKEDHASHMAP_HPP_INCLUDED
#include "Object.hpp"
class LinkedHashMap : public Object
{
public:
LinkedHashMap();
LinkedHashMap(void* Obj);
LinkedHashMap(const LinkedHashMap& L);
Object GetValue(Object Key) const;
};
#endif // LINKEDHASHMAP_HPP_INCLUDED

View File

@ -0,0 +1,18 @@
#ifndef MAP_HPP_INCLUDED
#define MAP_HPP_INCLUDED
#include <cstdint>
#include "Object.hpp"
#include "Set.hpp"
class Map : public Object
{
public:
Map();
Map(void* Obj);
Map(const Map& M);
Object GetValue(Object Key) const;
Set GetKeySet() const;
};
#endif // MAP_HPP_INCLUDED

View File

@ -0,0 +1,18 @@
#ifndef MOUSEEVENT_HPP_INCLUDED
#define MOUSEEVENT_HPP_INCLUDED
#include <cstdint>
#include "Object.hpp"
class MouseEvent : public Object
{
public:
MouseEvent();
MouseEvent(void* Object);
MouseEvent(const MouseEvent& M);
MouseEvent(Object Source, std::int32_t ID, std::int64_t When, std::int32_t Modifiers,
std::int32_t X, std::int32_t Y, std::int32_t ClickCount, bool PopupTrigger,
std::int32_t Button);
};
#endif // MOUSEEVENT_HPP_INCLUDED

View File

@ -0,0 +1,18 @@
#ifndef MOUSEWHEELEVENT_HPP_INCLUDED
#define MOUSEWHEELEVENT_HPP_INCLUDED
#include <cstdint>
#include "Object.hpp"
class MouseWheelEvent : public Object
{
public:
MouseWheelEvent();
MouseWheelEvent(void* Object);
MouseWheelEvent(const MouseWheelEvent& M);
MouseWheelEvent(Object Source, std::int32_t ID, std::int64_t When, std::int32_t Modifiers,
std::int32_t X, std::int32_t Y, std::int32_t ClickCount, bool PopupTrigger,
std::int32_t ScrollType, std::int32_t ScrollAmount, std::int32_t WheelRotation);
};
#endif // MOUSEWHEELEVENT_HPP_INCLUDED

View File

@ -0,0 +1,25 @@
#ifndef OBJECT_HPP_INCLUDED
#define OBJECT_HPP_INCLUDED
class Class;
class Object
{
public:
void* Obj;
Object();
Object(const void* Obj);
Object(const Object& O);
void* Get() const;
Object& operator=(const Object& O);
bool operator==(const Object& O) const;
bool operator!=(const Object& O) const;
bool Equals(Object O) const;
bool InstanceOf(Class C) const;
operator bool() const;
operator void*() const;
virtual ~Object();
};
#endif // OBJECT_HPP_INCLUDED

View File

@ -0,0 +1,16 @@
#ifndef SET_HPP_INCLUDED
#define SET_HPP_INCLUDED
#include <vector>
#include "Object.hpp"
class Set : public Object
{
public:
Set();
Set(void* Obj);
Set(const Set& S);
std::vector<Object> ToArray() const;
};
#endif // SET_HPP_INCLUDED

22
Include/Core/Math.hpp Normal file
View File

@ -0,0 +1,22 @@
#ifndef MATH_HPP_INCLUDED
#define MATH_HPP_INCLUDED
#include <cstdint>
#include <vector>
#include "Types/Point.hpp"
/** @addtogroup Math
* @{ */
std::int32_t BinomialRandom(std::int32_t Min, std::int32_t Max, double Probability);
std::int32_t UniformRandom(std::int32_t Min, std::int32_t Max);
double UniformRandom();
std::int32_t NormalRandom(std::int32_t Mean, double StandardDeviation);
std::int32_t NormalRandom(std::int32_t Low, std::int32_t High, double PercentageDeviation);
std::vector<Point> Spiral(Point Start, Box Area);
std::vector<Point> ConvexHull(std::vector<Point> Points);
/** @} */
#endif // MATH_HPP_INCLUDED

24
Include/Core/Paint.hpp Normal file
View File

@ -0,0 +1,24 @@
#ifndef PAINT_HPP_INCLUDED
#define PAINT_HPP_INCLUDED
#include <vector>
#include "Types/Convex.hpp"
/** @addtogroup Core
* @{ */
class Paint
{
public:
static void Clear();
static void DrawPoint(const Point& P, std::uint8_t Red, std::uint8_t Green, std::uint8_t Blue, std::uint8_t Alpha);
static void DrawPoints(const std::vector<Point>& Points, std::uint8_t Red, std::uint8_t Green, std::uint8_t Blue, std::uint8_t Alpha);
static void DrawLine(const Point& A, const Point& B, std::uint8_t Red, std::uint8_t Green, std::uint8_t Blue, std::uint8_t Alpha);
static void DrawLines(const std::vector<Point>& A, const std::vector<Point>& B, std::uint8_t Red, std::uint8_t Green, std::uint8_t Blue, std::uint8_t Alpha);
static void DrawBox(const Box& B, std::uint8_t Red, std::uint8_t Green, std::uint8_t Blue, std::uint8_t Alpha);
static void DrawSquare(const Box& B, std::uint8_t Red, std::uint8_t Green, std::uint8_t Blue, std::uint8_t Alpha);
static void DrawConvex(Convex& C, std::uint8_t Red, std::uint8_t Green, std::uint8_t Blue, std::uint8_t Alpha);
};
/** @} */
#endif // PAINT_HPP_INCLUDED

84
Include/Core/Script.hpp Normal file
View File

@ -0,0 +1,84 @@
#ifndef SCRIPT_HPP_INCLUDED
#define SCRIPT_HPP_INCLUDED
#include <string>
#include <vector>
#include "Types/Timer.hpp"
typedef struct
{
std::string Name = "";
std::string Description = "";
std::string Version = "";
std::string Category = "";
std::string Author = "";
std::string UID = "";
std::string ForumPage = "";
} ScriptInfo;
typedef struct
{
std::string Username;
std::string Password;
bool Member;
bool HasPin;
std::string BankPin;
std::string World;
bool UseProxy;
std::string ProxyHost;
std::string ProxyPort;
std::int32_t ActionDelayMean;
float ActionDelayDeviation;
std::int32_t MoveDelayMean;
float MoveDelayDeviation;
std::int32_t MouseDownDelayMean;
float MouseDownDelayDeviation;
std::int32_t MouseUpDelayMean;
float MouseUpDelayDeviation;
std::int32_t KeyDownDelayMean;
float KeyDownDelayDeviation;
std::int32_t KeyUpDelayMean;
float KeyUpDelayDeviation;
std::int32_t ScrollDelayMean;
float ScrollDelayDeviation;
float StandardDeviationX;
float StandardDeviationY;
float BoxProbabilityX;
float BoxProbabilityY;
float ConvexProbabilityX;
float ConvexProbabilityY;
float ItemProbabilityX;
float ItemProbabilityY;
float MenuProbabilityX;
float MenuProbabilityY;
float WidgetProbabilityX;
float WidgetProbabilityY;
float MissFollowUp;
float FatigueGain;
float FatigueLoss;
float FatigueMax;
bool ShortBreakEnabled;
float ShortBreakEvery;
float ShortBreakEveryDeviation;
float ShortBreakFor;
float ShortBreakForDeviation;
bool LongBreakEnabled;
float LongBreakEvery;
float LongBreakEveryDeviation;
float LongBreakFor;
float LongBreakForDeviation;
} PlayerProfile;
Timer GetScriptTimer();
void SetScriptInfo(ScriptInfo);
void GetScriptInfo(ScriptInfo&);
void SetPlayerProfile(PlayerProfile);
void RequestArgument(std::string Argument, std::string Description);
std::vector<std::string> GetArguments();
std::vector<std::string> GetArgumentDescriptions();
void SetArgument(std::string Argument, std::string Value);
std::string GetArgument(std::string Argument);
std::uint32_t GetLoopDelay();
void SetLoopDelay(std::uint32_t Delay);
#endif // SCRIPT_HPP_INCLUDED

18
Include/Core/Time.hpp Normal file
View File

@ -0,0 +1,18 @@
#ifndef TIME_HPP_INCLUDED
#define TIME_HPP_INCLUDED
#include <cstdint>
#include <functional>
/** @addtogroup Time
* @{ */
void Wait(std::int64_t Duration);
std::uint64_t CurrentTimeMillis();
std::uint64_t CurrentTimeNanos();
bool WaitFunc(std::uint32_t Duration, std::uint32_t Step, std::function<bool()> Func);
bool WaitFunc(std::uint32_t Duration, std::uint32_t Step, std::function<bool()> Func, bool Result);
/** @} */
#endif // TIME_HPP_INCLUDED

View File

@ -0,0 +1,84 @@
#ifndef AREA_HPP_INCLUDED
#define AREA_HPP_INCLUDED
#include "Tile.hpp"
#include "Convex.hpp"
#include <vector>
#include <cstdint>
/** @addtogroup Types
* @{ */
class Area : public Convex
{
public:
/**
* @brief The Plane the Area is located on
* @par Description
* The Plane the Area is located on
*/
std::int32_t Plane;
/**
* @brief Default Constructor, constructs an Area with -1 as the TopLeft and BottomRight Tile
* @par Description
* Default Constructor, constructs an Area with -1 as the TopLeft and BottomRight Tile
*/
Area();
/**
* @brief Constructs an Area based on a TopLeft tile and a BottomRight tile, sets the internal Plane to the plane of the TopLeft tile
* @param Tile TopLeft Top Left tile of the Area
* @param Tile BottomRight Bottom Right tile of the Area
*/
Area(Tile TopLeft, Tile BottomRight);
/**
* @brief Constructs an Area based on a TopLeft tile and a BottomRight tile, sets the internal Plane to the plane of the TopLeft tile
* @param std::vector<Tile> TileVertices
*/
Area(std::vector<Tile> TileVertices);
/**
* @brief Constructs an Area, by copying another
* @param const Area& A The Area to "copy"
*/
Area(const Area& A);
/**
* @brief Returns True if the Area contains a Tile, does check the Tiles Plane
* @return True if the Area contains a Tile, does check the Tiles Plane
* @par Example
* @code
* Area A(Tile(100, 100, 0), Tile(200, 200, 0));
* Debug::Info << A.contains(Tile(150, 150, 0));
* @endcode
*/
bool Contains(const Tile& T) const;
/**
* @brief Returns the middle Tile of the Area
* @return The middle Tile of the Area
* @par Example
* @code
* Area A(Tile(100, 100, 0), Tile(200, 200, 0));
* Debug::Info << A.GetMiddle());
* @endcode
*/
Tile GetMiddle() const;
/**
* @brief Returns a random Tile using Hybrid Distribution
* @return A random Tile using Hybrid Distribution
* @par Example
* @code
* Area A(Tile(100, 100, 0), Tile(200, 200, 0));
* Debug::Info << A.GetHybridRandomTile(0.20, 0.20, 0.50, false));
* @endcode
* @see @ref HybridRandomDocs
* @see @ref MissChanceFollowupDocs
*/
Tile GetHybridRandomTile(double ProbabilityX, double ProbabilityY, double StandardDeviationX, double StandardDeviationY, bool CheckMissFollowupChance = true) const;
friend std::ostream& operator<<(std::ostream& OS, const Area& A);
~Area();
};
/** @} */
#endif // AREA_HPP_INCLUDED

159
Include/Core/Types/Box.hpp Normal file
View File

@ -0,0 +1,159 @@
#ifndef BOX_HPP_INCLUDED
#define BOX_HPP_INCLUDED
#include <iostream>
#include <cstdint>
#include "Point.hpp"
class Point;
/** @addtogroup Types
* @{ */
class Box
{
public:
/**
* @brief The X of where the Box starts
* @par Description
* The X of where the Box starts
*/
std::int32_t X;
/**
* @brief The Y of where the Box starts
* @par Description
* The Y of where the Box starts
*/
std::int32_t Y;
/**
* @brief The Width of the Box
* @par Description
* The Width of the Box
*/
std::int32_t Width;
/**
* @brief The Height of the Box
* @par Description
* The Height of the Box
*/
std::int32_t Height;
/**
* @brief Default Constructor, constructs a Box with -1 as the X, Y, Width, and Height
* @par Description
* Default Constructor, constructs a Box with -1 as the X, Y, Width, and Height
*/
Box();
/**
* @brief Constructs a Box based on X, Y, Width, and Height
* @param std::int32_t X The X of where the Box begins
* @param std::int32_t Y The Y of where the Box begins
* @param std::int32_t Width The Width of the Box to be constructed
* @param std::int32_t Height The Height of the Box to be constructed
*/
Box(std::int32_t X, std::int32_t Y, std::int32_t Width, std::int32_t Height);
/**
* @brief Constructs a Box, by copying another
* @param const Box& B The Box to "copy"
*/
Box(const Box& B);
/**
* @brief Returns a random Point using Uniform Distribution
* @return A random Point using Uniform Distribution
* @see @ref UniformRandomDocs
* @see @ref MissChanceFollowupDocs
*/
Point GetUniformRandomPoint() const;
/**
* @brief Returns a random Point using Binomial Distribution
* @return A random Point using Binomial Distribution
* @see @ref BinomialRandomDocs
* @see @ref MissChanceFollowupDocs
*/
Point GetBinomialRandomPoint(double ProbabilityX, double ProbabilityY) const;
/**
* @brief Returns a random Point using Normal Distribution
* @return A random Point using Normal Distribution
* @see @ref NormalRandomDocs
* @see @ref MissChanceFollowupDocs
*/
Point GetNormalRandomPoint(double PercentageDeviationX, double PercentageDeviationY) const;
/**
* @brief Returns a random Point using Hybrid Distribution
* @return A random Point using Hybrid Distribution
* @see @ref HybridRandomDocs
* @see @ref MissChanceFollowupDocs
*/
Point GetHybridRandomPoint(double ProbilityX, double ProbilityY, double StandardDeviationX, double StandardDeviationY, bool CheckMissFollowupChance = true) const;
/**
* @brief Returns True if the Box contains a Point
* @return True if the Box contains a Point
* @par Example
* @code
* Box B(25, 25, 100, 100);
* Debug::Info << B.contains(Point(30, 30));
* @endcode
*/
bool Contains(Point P) const;
/**
* @brief Returns True if the Box contains both X, and Y
* @return True if the Box contains both X, and Y
* @par Example
* @code
* Box B(25, 25, 100, 100);
* Debug::Info << B.contains(30, 30);
* @endcode
*/
bool Contains(std::int32_t X, std::int32_t Y) const;
/**
* @brief Returns True if the Box contains another Box
* @return True if the Box contains another Box
* @par Example
* @code
* Box A(25, 25, 100, 100);
* Box B(30, 30, 10, 10);
* Debug::Info << A.contains(B);
* @endcode
*/
bool Contains(Box Box) const;
/**
* @brief Returns the X2 of the Box
* @return The X2 of the Box
* @par Example
* @code
* Box B(25, 25, 100, 100);
* Debug::Info << B.GetX2() << ", " << B.GetY2();
* @endcode
*/
std::int32_t GetX2() const;
/**
* @brief Returns the Y2 of the Box
* @return The Y2 of the Box
* @par Example
* @code
* Box B(25, 25, 100, 100);
* Debug::Info << B.GetX2() << ", " << B.GetY2();
* @endcode
*/
std::int32_t GetY2() const;
/**
* @brief Returns True if the Box is within the bounds of Client Canvas
* @return True if the Box is within the bounds of Client Canvas
*/
bool OnScreen() const;
/**
* @brief Returns True if the Box's X, Y, Width, and Height are greater than greater than or equal to 0
* @return True if the Box's X, Y, Width, and Height are greater than or equal to 0
*/
bool IsValid() const;
bool operator==(const Box& B) const;
bool operator!=(const Box& B) const;
friend std::ostream& operator<<(std::ostream& OS, const Box& B);
operator bool() const;
~Box();
};
/** @} */
#endif // BOX_HPP_INCLUDED

View File

@ -0,0 +1,67 @@
#ifndef CONVEX_HPP_INCLUDED
#define CONVEX_HPP_INCLUDED
#include <vector>
#include "Point.hpp"
#include "Box.hpp"
/** @addtogroup Types
* @{ */
class Convex
{
public:
std::vector<Point> Vertices;
/**
* @brief Default Constructor, constructs a Convex with null Vertices
* @par Description
* Default Constructor, constructs a Convex with null Vertices
*/
Convex();
Convex(std::vector<Point> Vertices);
/**
* @brief Constructs a Convex, by copying another
* @param const Convex& C The Convex to "copy"
*/
Convex(const Convex& C);
/**
* @brief Returns True if the Convex has more than two Vertices
* @return True if the Convex has more than two Vertices
*/
virtual bool Valid() const;
/**
* @brief Returns True if the Convex contains a Point
* @return True if the Convex contains a Point
*/
virtual bool Contains(const Point& P) const;
/**
* @brief Returns the middle Point of the Convex
* @return The middle Point of the Convex
*/
Point GetMiddle() const;
/**
* @brief Returns a Box of the Convex
* @return A Box of the Convex
*/
Box GetBox() const;
/**
* @brief Returns a random Point using Hybrid Distribution
* @return A random Point using Hybrid Distribution
* @see @ref HybridRandomDocs
* @see @ref MissChanceFollowupDocs
*/
Point GetHybridRandomPoint(double ProbabilityX, double ProbabilityY, double StandardDeviationX, double StandardDeviationY, bool CheckMissFollowupChance = true) const;
Convex operator+(const Point& P) const;
Convex operator-(const Point& P) const;
Convex& operator+=(const Point& P);
Convex& operator-=(const Point& P);
friend std::ostream& operator<<(std::ostream& OS, const Convex& C);
operator bool() const;
virtual ~Convex();
};
/** @} */
#endif // CONVEX_HPP_INCLUDED

View File

@ -0,0 +1,31 @@
#ifndef COUNTDOWN_HPP_INCLUDED
#define COUNTDOWN_HPP_INCLUDED
#include <iostream>
#include <cstdint>
/** @addtogroup Types
* @{ */
class Countdown
{
public:
Countdown();
Countdown(std::uint64_t Time);
void Reset();
void SetTime(std::uint64_t Time);
std::uint64_t GetTimeRemaining() const;
std::uint64_t GetStartTime() const;
bool IsFinished() const;
friend std::ostream& operator<<(std::ostream& OS, const Countdown& C);
operator bool() const;
~Countdown();
private:
std::uint64_t Time;
std::uint64_t StartTime;
};
/** @} */
#endif // COUNTDOWN_HPP_INCLUDED

View File

@ -0,0 +1,61 @@
#ifndef COUNTER_HPP_INCLUDED
#define COUNTER_HPP_INCLUDED
#include <iostream>
#include <cstdint>
/** @addtogroup Types
* @{ */
/**
* @brief A Counter can be used, well as a Counter. You construct it with MaxIterations, the counter is marked as finished whenever the current Iterations reach, or exceed MaxIterations.
* You can use @ref Increment to increase, and @ref Reset to reset the current Iterations.
* You can also use @ref IsFinished to check the current state of the Counter.
*/
class Counter
{
public:
/**
* @brief Default Counter constructor with MaxIterations as 0
*/
Counter();
/**
* @brief Constructs a Counter with
* @param std::int32_t MaxIterations Maximum amount of Iterations before the counter is Finished
*/
Counter(std::int32_t MaxIterations);
/**
* @brief Resets the Counter's current Iterations to 0
* @par Description
* Resets the Counter's current Iterations to 0
*/
void Reset();
/**
* @brief Increases the Counter's current Iterations by Amount, and returns true if the Counter isn't Finished
* @return True if the Counter isn't Finished, after it increments the Counter's current Iterations
*/
bool Increment(std::int32_t Amount = 1);
/**
* @brief Returns True if the Counter's current Iterations equals the MaxIterations Paramater passed in the Constructor
* @return True if the Counter's current Iterations equals the MaxIterations Paramater passed in the Constructor
*/
bool IsFinished() const;
/**
* @brief Returns the Counter's current Iterations
* @return Returns the Counter's current Iterations
*/
std::int32_t GetIterations() const;
/**
* @brief Returns the Counter's maximum Iterations
* @return Returns the Counter's maximum Iterations
*/
std::int32_t GetMaxIterations() const;
friend std::ostream& operator<<(std::ostream& OS, const Counter& C);
~Counter();
private:
std::int32_t MaxIterations;
std::int32_t Iterations;
};
/** @} */
#endif // COUNTER_HPP_INCLUDED

View File

@ -0,0 +1,55 @@
#ifndef LOGGER_HPP_INCLUDED
#define LOGGER_HPP_INCLUDED
#include <iostream>
#include <string>
/** @addtogroup Types
* @{ */
class Logger : public std::ostream, public std::streambuf
{
public:
/**
* @brief Constructs a Logger, with a Prefix
* @param std::string Prefix The Prefix that's added before a message
* @param bool Enabled Enabled the printing of output sent to the logger, if false no output will be printed
* @par Detailed Description
* Loggers can be used to make it easier to identify whats what in the Log.
* We urge you to instead use our default Loggers, for sake of consistency, however we will not keep you from using the Logger class.
* You will need to add whitespace to the end of a Prefix, if you want to space out the Prefix and the Message.
* @par Example
* @code
* Logger LevelUp("[LEVEL] Gained a Level Up in the Skill");
* LevelUp << "Mining" << std::endl;
* @endcode
*/
Logger(std::string Prefix, bool Enabled = true);
/**
* @brief Constructs a Logger, with a function pointer that returns a String
* @param std::string (*Func)() Prefix The Prefix that's added before a message
* @param bool Enabled Enabled the printing of output sent to the logger, if false no output will be printed
*/
Logger(std::string (*Func)(), bool Enabled = true);
/**
* @brief Sets the Enabled state of a logger
* @par Description
* Toggles the state of Enabled in a logger
*/
void SetEnabled(bool Toggle);
/**
* @brief Returns True if the Logger is Enabled
* @return True if the Logger is Enabled
*/
bool IsEnabled() const;
virtual std::streambuf::int_type overflow(std::streambuf::int_type Char = std::streambuf::traits_type::eof());
~Logger();
private:
std::string Prefix = "";
std::string (*FuncPtr)() = nullptr;
bool Enabled;
bool NewLine = true;
};
/** @} */
#endif // LOGGER_HPP_INCLUDED

View File

@ -0,0 +1,87 @@
#ifndef POINT_HPP_INCLUDED
#define POINT_HPP_INCLUDED
#include <cstdint>
#include "Box.hpp"
class Box;
/** @addtogroup Types
* @{ */
class Point
{
public:
/**
* @brief The X of the Point
* @par Description
* The X of the Point
*/
std::int32_t X;
/**
* @brief The Y of the Point
* @par Description
* The Y of the Point
*/
std::int32_t Y;
/**
* @brief Default Constructor, constructs a Point with -1 as the X, Y, and Plane
* @par Description
* Default Constructor, constructs a Point with -1 as the X, Y, and Plane
*/
Point();
/**
* @brief Constructs a Point based on an X and Y
* @param std::int32_t X The X of the Point
* @param std::int32_t Y The Y of the Point
*/
Point(std::int32_t X, std::int32_t Y);
/**
* @brief Constructs a Point, by copying another
* @param const Point& P The Point to "copy"
*/
Point(const Point& P);
/**
* @brief Returns the distance from one Point to another
* @return The distance from one Point to another
*/
std::int32_t DistanceFrom(Point P) const;
/**
* @brief Returns True if the Point is inside the passed Box
* @return True if the Point is inside the passed Box
*/
bool InBox(Box B) const;
/**
* @brief Returns True if the Point is inside a Circle defined by a starting Point, and Radius
* @return True if the Point is inside a Circle defined by a starting Point, and Radius
*/
bool InCircle(Point P, std::int32_t Radius) const;
/**
* @brief Returns True if the Point is less than 0, not equal to
* @return True if the Point is less than 0, not equal to
*/
bool IsNegative() const;
/**
* @brief Returns True if the Point is greater than 0, not equal to
* @return True if the Point is greater than 0, not equal to
*/
bool IsPositive() const;
/**
* @brief Returns True if the Point is within the bounds of Client Canvas
* @return True if the Point is within the bounds of Client Canvas
*/
bool OnScreen() const;
bool operator==(const Point& P) const;
bool operator!=(const Point& P) const;
Point operator+(const Point& P) const;
Point operator-(const Point& P) const;
Point& operator+=(const Point& P);
Point& operator-=(const Point& P);
friend std::ostream& operator<<(std::ostream& OS, const Point& P);
~Point();
};
/** @} */
#endif // POINT_HPP_INCLUDED

View File

@ -0,0 +1,72 @@
#ifndef TILE_HPP_INCLUDED
#define TILE_HPP_INCLUDED
#include <iostream>
#include <cstdint>
/** @addtogroup Types
* @{ */
class Tile
{
public:
/**
* @brief The X of the Tile
* @par Description
* The X of the Tile
*/
std::int32_t X;
/**
* @brief The Y of the Tile
* @par Description
* The Y of the Tile
*/
std::int32_t Y;
/**
* @brief The Plane the Tile is on
* @par Description
* The Plane the Tile is on
*/
std::int32_t Plane;
/**
* @brief Default Constructor, constructs a Tile with -1 as the X, Y, and Plane
* @par Description
* Default Constructor, constructs a Tile with -1 as the X, Y, and Plane
*/
Tile();
/**
* @brief Constructs a Tile based on an X, Y, and a Plane
* @param std::int32_t X The X of the Tile
* @param std::int32_t Y The Y of the Tile
* @param std::int32_t Y The Plane the Tile is on
*/
Tile(std::int32_t X, std::int32_t Y, std::int32_t Plane);
/**
* @brief Constructs a Tile, by copying another
* @param const Tile& T The Tile to "copy"
*/
Tile(const Tile& T);
/**
* @brief Returns the distance from one Tile to another
* @return The distance from one Tile to another
*/
std::int32_t DistanceFrom(Tile T) const;
/**
* @brief Returns True if the Tile is less than 0, not equal to
* @return True if the Tile is less than 0, not equal to
*/
bool IsNegative() const;
/**
* @brief Returns True if the Tile is greater than 0, not equal to
* @return True if the Tile is greater than 0, not equal to
*/
bool IsPositive() const;
bool operator==(const Tile& T) const;
bool operator!=(const Tile& T) const;
friend std::ostream& operator<<(std::ostream& OS, const Tile& T);
~Tile();
};
/** @} */
#endif // TILE_HPP_INCLUDED

View File

@ -0,0 +1,88 @@
#ifndef TIMER_HPP_INCLUDED
#define TIMER_HPP_INCLUDED
#include <iostream>
#include <cstdint>
/** @addtogroup Types
* @{ */
class Timer
{
public:
/**
* @brief Constructs a Timer, and optionally starts it
* @param bool Start
* @par Description
* Constructs a Timer, and starts it
*/
Timer(bool Start = true);
/**
* @brief Restarts the Timer
* @par Detailed Description
* Sets the Timer start time to the current time
*/
void Restart();
/**
* @brief Increases the Timer's elapsed time by MS
* @return Returns the Time's elapsed time by MS
* @par Description
* Increases the Timer's elapsed time by MS
*/
std::int64_t FastForward(std::uint32_t Duration);
/**
* @brief Decreases the Timer's elapsed time by MS
* @return Returns the Time's elapsed time by MS
* @par Description
* Decreases the Timer's elapsed time by MS
*/
std::int64_t Rewind(std::uint32_t Duration);
/**
* @brief Pauses the Timer
* @return Returns the Time's elapsed time by MS
* @par Description
* Pauses the Timer
*/
std::int64_t Suspend();
/**
* @brief Resumes the Timer
* @return Returns the Timer's elapsed time by MS
* @par Description
* Resumes the Timer
*/
std::int64_t Resume();
/**
* @brief Returns when the Timer started, in MS
* @return When the Timer started, in MS
*/
std::uint64_t GetStartTime() const;
/**
* @brief Returns the Timer's elapsed Time, in MS
* @return The Timer's elapsed Time, in MS
*/
std::int64_t GetTimeElapsed() const;
/**
* @brief Returns True if the Timer is currently Paused
* @return True if the Timer is currently Paused
*/
bool Paused() const;
friend std::ostream& operator<<(std::ostream& OS, const Timer& T);
~Timer();
private:
std::uint64_t StartTime;
std::uint64_t PauseTime;
std::int64_t Offset;
};
/** @} */
#endif // TIMER_HPP_INCLUDED

166
Include/Game/Core.hpp Normal file
View File

@ -0,0 +1,166 @@
#ifndef CORE_HPP_INCLUDED
#define CORE_HPP_INCLUDED
#include "../Core/Internal.hpp"
#include "Tools/BreakHandler.hpp"
#include "Tools/Interact.hpp"
#include "Tools/Profile.hpp"
#include "Tools/Settings.hpp"
#include "Tools/Widgets.hpp"
#include "Tools/Worlds.hpp"
#include "Interfaces/Bank.hpp"
#include "Interfaces/Chat.hpp"
#include "Interfaces/DepositBox.hpp"
#include "Interfaces/Login.hpp"
#include "Interfaces/Mainscreen.hpp"
#include "Interfaces/Menu.hpp"
#include "Interfaces/Minimap.hpp"
#include "Interfaces/GameTabs/Clan.hpp"
#include "Interfaces/GameTabs/Combat.hpp"
#include "Interfaces/GameTabs/Emotes.hpp"
#include "Interfaces/GameTabs/Equipment.hpp"
#include "Interfaces/GameTabs/Friends.hpp"
#include "Interfaces/GameTabs/Ignores.hpp"
#include "Interfaces/GameTabs/Inventory.hpp"
#include "Interfaces/GameTabs/Logout.hpp"
#include "Interfaces/GameTabs/Magic.hpp"
#include "Interfaces/GameTabs/Music.hpp"
#include "Interfaces/GameTabs/Options.hpp"
#include "Interfaces/GameTabs/Prayer.hpp"
#include "Interfaces/GameTabs/Quests.hpp"
#include "Interfaces/GameTabs/Stats.hpp"
#include "Models/SceneObjects.hpp"
#include "Models/GroundItems.hpp"
#include "Models/NPCs.hpp"
#include "Models/Players.hpp"
//
// DoxyGen
//=======================================================
// Pages
//=======================================================
/**
* @mainpage
* Mainpage Docs
*
* @page About About
* About
*
* @page GettingStarted Getting Started
* Getting Started
*
* @page RandomMethodDocs Random Distribution Methods
* @tableofcontents
* @section UniformRandomDocs Uniform Random Distribution
* Uniform Random Documentation
* @section BinomialRandomDocs Binomial Random Distribution
* Binomial Random Documentation
* @section NormalRandomDocs Normal Random Distribution
* Normal Random Documentation
* @section HybridRandomDocs Hybrid Random Distribution
* Hybrid Random Documentation
* @section MissChanceFollowupDocs MissChanceFollowup
* MissChanceFollowupDocs
*
* @page DetailedFuncDocs Detailed Function Documentation
* @tableofcontents
* @section ItemContainers Item Containers
* @subsection ICUsing Using Item Containers
* @subsection ICLibFunctions Lib functions that use an Internal Item Container
* Some classes have functions that Interface a class-related Item Container, an example
* being Bank::GetItemIDs(), which return an array of all ItemIDs found in the Bank Item Container. These interfaced-functions
* can be found in @ref Bank, @ref Inventory, and @ref Equipment
*
* Element positions in the returned arrays (ItemIDs, ItemNames, ItemAmounts) almost always correspond to their positions in the
* visual Game Interface. If there isn't an Item in a Container position, it's -1 for ItemIDs and Amounts, and simply a blank
* String ("") for ItemNames. Remember, arrays in C++ start at 0.
*
* Classes that Interface an Item Container will have a GetIndexOf() function, @ref Inventory::GetIndexOf() and
* @ref Bank::GetIndexOf() are examples. These two functions will return the Index of the passed Item (By ID, or Name)
* relative to the Item Container array, for example if Coins are in Inventory slot 5, using @ref Inventory::GetIndexOf("Coins")
* should return 4.
*
* Here is a more extensive example, where we grab the Item amount of Coins in our Inventory;
*
* @code
* std::int32_t CoinsIndex = Inventory::GetIndexOf("Coins");
* std::vector<std::int32_t> Amounts = Inventory::GetItemAmounts();
* if ((CoinsIndex != -1) && (CoindsIndex <= Amounts.size())) //A range check will never hurt
* {
* std::cout << "Coins has an Index of " << CoinsIndex << " relative to the Inventory Item Container Array" << std::endl;
* std::cout << "There are " << Amounts[Index] << " coins in our Inventory" << std::endl;
* }
* @endcode
*
* Here is a list of all class functions that Interface an internally-used Item Container.
* - Item IDs
* - @ref Bank::GetItemIDs()
* - @ref Inventory::GetItemIDs()
* - @ref Equipment::GetItemIDs()
* .
* - Item Names
* - @ref Bank::GetItemNames()
* - @ref Inventory::GetItemNames()
* - @ref Equipment::GetItemNames()
* .
* - Item Amounts
* - @ref Bank::GetItemAmounts()
* - @ref Inventory::GetItemAmounts()
* - @ref Equipment::GetItemAmounts()
* .
* @subsection Examples
*
*/
//=======================================================
// Groups
//=======================================================
/**
* @defgroup Core Core
*
* @defgroup Types Types
* @brief @b Types Module
* @ingroup Core
*
* @defgroup Math Math
* @brief @b Math Module
* @ingroup Core
*
* @defgroup Time Time
* @brief @b Time Module
* @ingroup Core
*
* @defgroup Game Game
*
* @defgroup Interfaces Interfaces
* @brief @b Interfaces Module
* @ingroup Game
*
* @defgroup Models Models
* @brief @b Models Module
* @ingroup Game
*
* @defgroup Tools Tools
* @brief @b Tools Module
* @ingroup Game
*
*/
//=======================================================
// SubGroups
//=======================================================
/**
* @defgroup GameTabs GameTabs
* @brief @b GameTabs Module
* @ingroup Interfaces
*
**/
//=======================================================
// Examples
//=======================================================
/**
* @example ScriptExample.cpp
**/
#endif // CORE_HPP_INCLUDED

View File

@ -0,0 +1,263 @@
#ifndef BANK_HPP_INCLUDED
#define BANK_HPP_INCLUDED
#include "../../Core/Types/Convex.hpp"
#include <string>
#include <cstdint>
#include <vector>
/** @addtogroup Interfaces
* @{ */
/**
* @note All methods require the Bank to be currently Open to successfully return a proper result
*/
class Bank
{
public:
/**
* @brief Returns True if the Bank is currently Open
* @return True if the Bank is currently Open
* @par Example
* @code
* if (Bank::IsOpen)
* return Bank::Close();
* @endcode
*/
static bool IsOpen();
/**
* @brief Attempts to Close the Bank if it's Currently Open, returns True if the Bank is currently Closed
* @return Returns True if the is successfully Closed, or the Bank is already Closed
* @par Example
* @code
* if (Bank::IsOpen)
* return Bank::Close();
* @endcode
*/
static bool Close();
/**
* @brief Returns an array of all Item IDs in the Bank Inventory Container
* @return An array of all Item IDs in the Bank Inventory Container
* @par Example
* @code
* std::int32_t Index = Bank::GetIndexOf(995);
* std::vector<std::int32_t> BankContainerItemIDs = Bank::GetItemIDs();
* if ((Index != -1) && (Index <= BankContainerItemIDs.size()))
* std::cout << "Item with ID " << BankContainerItemIDs[Index] << " is in the " << Index << "th position in Bank" << std::endl;
* @endcode
* @see @ref ICLibFunctions
*/
static std::vector<std::int32_t> GetItemIDs();
/**
* @brief Returns an array of all Item Names in the Bank Inventory Container
* @return An array of all Item Names in the Bank Inventory Container
* @par Example
* @code
* std::int32_t Index = Bank::GetIndexOf("Coins");
* std::vector<std::int32_t> BankContainerItemNames = Bank::GetItemNames();
* if ((Index != -1) && (Index <= BankContainerItemNames.size()))
* std::cout << "Item with Name " << BankContainerItemNames[Index] << " is in the " << Index << "th position in Bank" << std::endl;
* @endcode
* @see @ref ICLibFunctions
*/
static std::vector<std::string> GetItemNames();
/**
* @brief Returns an array of all Item Names in the Bank Inventory Container
* @return An array of all Item Names in the Bank Inventory Container
* @par Example
* @code
* std::int32_t Index = Bank::GetIndexOf("Coins");
* std::vector<std::int32_t> BankContainerItemNames = Bank::GetItemNames();
* if ((Index != -1) && (Index <= BankContainerItemNames.size()))
* std::cout << "Item with Name " << BankContainerItemNames[Index] << " is in the " << Index << "th position in Bank" << std::endl;
* @endcode
* @see @ref ICLibFunctions
*/
static std::vector<std::int32_t> GetItemAmounts();
/**
* @brief Returns the total Item Amount of the specified Item matching the passed ID in the Bank
* @return The total Item Amount of the specified Item matching the passed ID in the Bank
* @par Example
* @code
* if (Bank::GetItemAmount(995) <= 100000)
* return false;
* @endcode
*/
static std::int32_t GetItemAmount(std::int32_t ID);
/**
* @brief Returns the total Item Amount of the specified Item matching the passed Name in the Bank
* @return The total Item Amount of the specified Item matching the passed Name in the Bank
* @par Example
* @code
* if (Bank::GetItemAmount(995) <= 100000)
* return false;
* @endcode
*/
static std::int32_t GetItemAmount(const std::string& Name);
/**
* @brief Returns the Index of the first occurrence of the specified Item matching the passed ID in the GetItemIDs() array
* @return The Index of the first occurrence of the specified Item matching the passed ID in the GetItemIDs() array
* @note Returns -1 if no occurrence of the specified Item matching the passed ID is found in the GetItemIDs() array
*/
static std::int32_t GetIndexOf(std::int32_t ID);
/**
* @brief Returns the Index of the first occurrence of the specified Item matching the passed Name in the GetItemIDs() array
* @return The Index of the first occurrence of the specified Item matching the passed Name in the GetItemIDs() array
* @note Returns -1 if no occurrence of the specified Item matching the passed Name is found in the GetItemIDs() array
*/
static std::int32_t GetIndexOf(const std::string& Name);
static Convex GetConvexOf(std::int32_t ID);
static Convex GetConvexOf(const std::string& Name);
/**
* @brief Returns True if the Bank contains the specified Item matching the passed ID
* @return True if the Bank contains the specified Item matching the passed ID
* @par Example
* @code
* if (Bank::Contains(995))
* return Bank::WithdrawAllOf(995);
* @endcode
*/
static bool Contains(std::int32_t ID);
/**
* @brief Returns True if the Bank contains the specified Item matching the passed Name
* @return True if the Bank contains the specified Item matching the passed Name
* @par Example
* @code
* if (Bank::Contains("Coins"))
* return Bank::WithdrawAllOf("Coins");
* @endcode
*/
static bool Contains(const std::string& Name);
/**
* @brief Returns True if the Bank contains any of the specified Item matching the passed IDs
* @return True if the Bank contains any of the specified Item matching the passed IDs
* @par Example
* @code
* if (!Bank::Contains(std::vector<std::int32_t> { 995, 207, 584 }))
* return false;
* @endcode
*/
static bool Contains(const std::vector<std::int32_t>& IDs);
/**
* @brief Returns True if the Bank contains any of the specified Item matching the passed Names
* @return True if the Bank contains any of the specified Item matching the passed Names
* @par Example
* @code
* if (!Bank::Contains(std::vector<std::int32_t> { "Coins", "Oak Logs", "Air Runes" }))
* return false;
* @endcode
*/
static bool Contains(const std::vector<std::string>& Names);
/**
* @brief Returns the currently active Bank Tab
* @return The currently active Bank Tab
* @note Returns -1 if no currently active Bank Tab is found
* @par Example
* @code
* if (Bank::GetCurrentTab() == 0)
* Debug("The All tab is open");
* @endcode
*/
static std::int32_t GetCurrentTab();
/**
* @brief Returns the Tab Index of the specified Item matching the passed ID
* @return The Tab Index of the specified Item matching the passed ID
* @par Example
* @code
* std::int32_t TabWithCoins = Bank::GetTabOf(995);
* if (Bank::GetCurrentTab() != TabWithCoins)
* return Bank::OpenTab(TabWithCoins);
* @endcode
*/
static std::int32_t GetTabOf(std::int32_t ID);
/**
* @brief Returns the Tab Index of the specified Item Name
* @return The Tab Index of the specified Item Name
* @par Example
* @code
* std::int32_t TabWithCoins = Bank::GetTabOf("Coins");
* if (Bank::GetCurrentTab() != TabWithCoins)
* return Bank::OpenTab(TabWithCoins);
* @endcode
*/
static std::int32_t GetTabOf(const std::string& Name);
/**
* @brief Attempts to Open the specified Bank Tab, 0 being all items
* @return True if it successfully opens the specified Bank Tab
* @par Example
* @code
* if ((Bank::IsOpen()) && (Bank::GetCurrentTab() != 0))
* return Bank::OpenTab(0);
* @endcode
*/
static bool OpenTab(std::int32_t Tab);
/**
* @brief Attempts to Scroll to the specified Item matching the passed ID
* @return True if it successfully scrolls to the specified Item matching the passed ID
* @note Returns True if the Item is already in view
* @par Example
* @code
* if (Bank::Contains(995))
* return Bank::ScrolTo(995);
* @endcode
*/
static bool ScrollTo(std::int32_t ID);
/**
* @brief Attempts to Scroll to the specified Item matching the passed Name
* @return True if it successfully scrolls to the specified Item matching the passed Name
* @note Returns True if the Item is already in view
* @par Example
* @code
* if (Bank::Contains("Coins"))
* return Bank::ScrolTo("Coins");
* @endcode
*/
static bool ScrollTo(const std::string& Name);
/**
* @brief Attempts to Scroll to the specified Item matching the passed Name, and optionally Opens the Tab
* @return True if it successfully scrolls to the specified Item matching the passed Name
* @note Returns True if the Item is already in view
* @par Example
* @code
* if (Bank::Contains("Coins"))
* return Bank::ScrolTo("Coins");
* @endcode
*/
static bool ScrollTo(std::int32_t ID, bool OpenTab);
static bool ScrollTo(const std::string& Name, bool OpenTab);
static bool WithdrawAllOf(std::int32_t ID);
static bool WithdrawAllOf(const std::string& Name);
static bool WithdrawXOf(std::int32_t ID, std::int32_t Amount);
static bool WithdrawXOf(const std::string& Name, std::int32_t Amount);
static bool WithdrawAllButOneOf(std::int32_t ID);
static bool WithdrawAllButOneOf(const std::string& Name);
static bool DepositAllOf(std::int32_t ID);
static bool DepositAllOf(const std::string& Name);
static bool DepositXOf(std::int32_t ID, std::int32_t Amount);
static bool DepositXOf(const std::string& Name, std::int32_t Amount);
static bool DepositAll();
static bool DepositEquipment();
};
/** @} */
#endif // BANK_HPP_INCLUDED

View File

@ -0,0 +1,66 @@
#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,
ENTER_AMOUNT
} 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;
static std::vector<MessageNode> GetMessages(CHAT_TYPE Type);
static std::vector<MessageNode> GetMessages(CHAT_TYPE Type, bool Sort);
static MessageNode GetLastMessage(CHAT_TYPE Type);
static DIALOGUE_STATE GetDialogueState();
static std::vector<std::string> GetDialogueOptions();
static std::string GetDialogueTitle();
static std::string GetDialogueMessage();
static bool ClickContinue();
static bool EnterAmount(std::int32_t Amount);
static bool SelectDialogueOption(const std::string& Option);
static bool SelectDialogueOption(const std::vector<std::string>& Options);
static bool SelectDialogueOption(std::uint32_t OptionIndex);
};
/** @} */
#endif // CHAT_HPP_INCLUDED

View File

@ -0,0 +1,19 @@
#ifndef DEPOSITBOX_HPP
#define DEPOSITBOX_HPP
/** @addtogroup Interfaces
* @{ */
class DepositBox
{
public:
static bool IsOpen();
static bool Close();
static bool DepositAll();
static bool DepositEquipment();
static bool DepositLoot();
};
/** @} */
#endif // DEPOSITBOX_HPP

View File

@ -0,0 +1,21 @@
#ifndef CLAN_HPP_INCLUDED
#define CLAN_HPP_INCLUDED
#include "../../../Core/Classes/ClanMember.hpp"
#include <functional>
#include <vector>
/** @addtogroup GameTabs
* @{ */
class Clan
{
public:
static bool IsOpen();
static bool Open();
static std::vector<ClanMember> GetAll();
static std::vector<ClanMember> GetAll(const std::function<bool (ClanMember&)>& Filter);
};
/** @} */
#endif // CLAN_HPP_INCLUDED

View File

@ -0,0 +1,34 @@
#ifndef COMBAT_HPP_INCLUDED
#define COMBAT_HPP_INCLUDED
#include <cstdint>
#include <string>
/** @addtogroup GameTabs
* @{ */
class Combat
{
public:
static bool IsOpen();
static bool Open();
static std::int32_t GetHealth();
static std::int32_t GetMaxHealth();
static std::int32_t GetSpecialAttack();
static bool IsSpecialAttacking();
static bool ToggleSpecialAttack(bool Toggle);
static bool IsPoisoned();
static bool HasPoisonImmunity();
static bool GetAutoRetaliate();
static bool ToggleAutoRetaliate(bool Toggle);
static std::string GetStyle();
static bool SetStyle(const std::string& Style);
};
/** @} */
#endif // COMBAT_HPP_INCLUDED

View File

@ -0,0 +1,15 @@
#ifndef EMOTES_HPP_INCLUDED
#define EMOTES_HPP_INCLUDED
/** @addtogroup GameTabs
* @{ */
class Emotes
{
public:
static bool IsOpen();
static bool Open();
};
/** @} */
#endif // EMOTES_HPP_INCLUDED

View File

@ -0,0 +1,63 @@
#ifndef EQUIPMENT_HPP_INCLUDED
#define EQUIPMENT_HPP_INCLUDED
#include <cstdint>
#include <vector>
#include <string>
/** @addtogroup GameTabs
* @{ */
class Equipment
{
public:
typedef enum SLOTS
{
HEAD,
CAPE,
NECK,
WEAPON,
BODY,
SHIELD,
LEGS,
HANDS,
FEET,
RING,
AMMO
} SLOTS;
static bool IsOpen();
static bool Open();
static bool IsEmpty();
static std::vector<int32_t> GetItemIDs();
static std::vector<std::string> GetItemNames();
static std::vector<std::int32_t> GetItemAmounts();
static std::int32_t GetItemID(SLOTS Slot);
static std::string GetItemName(SLOTS Slot);
static std::int32_t GetItemAmount(SLOTS Slot);
static std::int32_t GetItemAmount(std::int32_t ID);
static std::int32_t GetItemAmount(const std::string& Name);
static SLOTS GetSlotOf(std::int32_t ID);
static SLOTS GetSlotOf(const std::string& Name);
static bool Contains(std::int32_t ID);
static bool Contains(const std::string& Name);
static bool Contains(const std::vector<std::int32_t>& IDs);
static bool Contains(const std::vector<std::string>& Names);
static bool ContainsOnly(std::int32_t ID);
static bool ContainsOnly(const std::string& Name);
static bool ContainsOnly(const std::vector<std::int32_t>& IDs);
static bool ContainsOnly(const std::vector<std::string>& Names);
static bool UnequipItem(SLOTS Slot);
static bool UnequipItem(std::int32_t ID);
static bool UnequipItem(const std::string& Name);
};
/** @} */
#endif // EQUIPMENT_HPP_INCLUDED

View File

@ -0,0 +1,21 @@
#ifndef FRIENDS_HPP_INCLUDED
#define FRIENDS_HPP_INCLUDED
#include "../../../Core/Classes/Friend.hpp"
#include <functional>
#include <vector>
/** @addtogroup GameTabs
* @{ */
class Friends
{
public:
static bool IsOpen();
static bool Open();
static std::vector<Friend> GetAll();
static std::vector<Friend> GetAll(const std::function<bool (Friend&)>& Filter);
};
/** @} */
#endif // FRIENDS_HPP_INCLUDED

View File

@ -0,0 +1,21 @@
#ifndef IGNORES_HPP_INCLUDED
#define IGNORES_HPP_INCLUDED
#include "../../../Core/Classes/Ignore.hpp"
#include <functional>
#include <vector>
/** @addtogroup GameTabs
* @{ */
class Ignores
{
public:
static bool IsOpen();
static bool Open();
static std::vector<Ignore> GetAll();
static std::vector<Ignore> GetAll(const std::function<bool (Ignore&)>& Filter);
};
/** @} */
#endif // IGNORES_HPP_INCLUDED

View File

@ -0,0 +1,98 @@
#ifndef INVENTORY_HPP_INCLUDED
#define INVENTORY_HPP_INCLUDED
#include "../../../Core/Types/Box.hpp"
#include "../../../Core/Types/Convex.hpp"
#include <vector>
#include <cstdint>
#include <string>
/** @addtogroup GameTabs
* @{ */
class Inventory
{
public:
static bool IsOpen();
static bool Open();
static std::vector<std::int32_t> GetItemIDs();
static std::vector<std::string> GetItemNames();
static std::vector<std::int32_t> GetItemAmounts();
static std::int32_t GetItemAmount(std::int32_t ID);
static std::int32_t GetItemAmount(const std::string& Name);
static bool IsEmpty();
static bool IsFull();
static bool IsItemSelected();
static bool IsItemSelected(std::int32_t ID);
static bool IsItemSelected(const std::string& Name);
static std::string GetItemSelectedName();
static std::int32_t Count(std::int32_t ID);
static std::int32_t Count(const std::string& Name);
static std::int32_t Count(const std::vector<std::int32_t>& IDs);
static std::int32_t Count(const std::vector<std::string>& Names);
static std::int32_t CountOccupied();
static std::int32_t CountEmpty();
static std::int32_t GetIndexOf(std::int32_t ID);
static std::int32_t GetIndexOf(const std::string& Name);
static std::int32_t GetIndexOf(const std::vector<std::int32_t>& IDs); // Returns first found ID index
static std::int32_t GetIndexOf(const std::vector<std::string>& Names); // Returns first found Name Index
static std::vector<std::int32_t> GetIndicesOf(std::int32_t ID);
static std::vector<std::int32_t> GetIndicesOf(const std::string& Name);
static Convex GetConvexOf(std::int32_t SlotIndex);
static Box GetBoxOf(std::int32_t ID);
static Box GetBoxOf(const std::string& Name);
static Box GetBoxOf(const std::vector<std::int32_t>& IDs); // Returns first found ID box
static Box GetBoxOf(const std::vector<std::string>& Names); // Returns first found Name box
static std::vector<Box> GetSlotBoxes();
static std::vector<Box> GetBoxesOf(std::int32_t ID);
static std::vector<Box> GetBoxesOf(const std::string& Name);
static bool Contains(std::int32_t ID);
static bool Contains(const std::string& Name);
static bool Contains(const std::vector<std::int32_t>& IDs);
static bool Contains(const std::vector<std::string>& Names);
static bool ContainsAny(const std::vector<std::int32_t>& IDs);
static bool ContainsAny(const std::vector<std::string>& Names);
static bool ContainsOnly(std::int32_t ID);
static bool ContainsOnly(const std::string& Name);
static bool ContainsOnly(const std::vector<std::int32_t>& IDs);
static bool ContainsOnly(const std::vector<std::string>& Names);
static bool InteractItemByIndex(std::int32_t Index);
static bool InteractItemByIndex(std::int32_t Index, const std::string& Action);
static bool InteractItemByIndex(std::int32_t Index, const std::vector<std::string>& Actions);
static bool InteractItem(std::int32_t ID, const std::string& Action = "");
static bool InteractItem(const std::string& Name, const std::string& Action = "");
static bool InteractItem(const std::vector<std::int32_t>& IDs, const std::vector<std::string>& Actions); //Interacts with first found ID and Action
static bool InteractItem(const std::vector<std::string>& Names, const std::vector<std::string>& Actions); //Interacts with first found Name and Action
static bool DropItemByIndex(std::int32_t Index, bool AllowShiftClick = true);
static bool DropItem(std::int32_t ID, bool AllowShiftClick = true);
static bool DropItem(const std::string& Name, bool AllowShiftClick = true);
static bool UseItem(std::int32_t ID);
static bool UseItem(const std::string& Name);
static bool UseItemOn(std::int32_t PrimaryID, std::int32_t SecondaryID);
static bool UseItemOn(const std::string& PrimaryName, const std::string& SecondaryName);
};
/** @} */
#endif // INVENTORY_HPP_INCLUDED

View File

@ -0,0 +1,38 @@
#ifndef LOGOUT_HPP_INCLUDED
#define LOGOUT_HPP_INCLUDED
#include "../../../Core/Types/Box.hpp"
#include "../../../Core/Classes/World.hpp"
#include "../../../Core/Classes/Widget.hpp"
#include <cstdint>
#include <vector>
/** @addtogroup GameTabs
* @{ */
class Logout
{
public:
static bool IsOpen();
static bool Open();
static bool LogoutPlayer();
static bool IsWorldSwitcherOpen();
static bool OpenWorldSwitcher();
static bool OpenWorldSwitcher(bool OpenInventory);
static bool WorldSwitcherScrollTo(World World);
static bool WorldSwitcherScrollTo(std::int32_t WorldID);
static bool SwitchWorld(World World);
static bool SwitchWorld(std::int32_t WorldID);
static std::vector<std::int32_t> GetFavoriteWorlds();
static Widget GetWorldWidget(World World);
static Widget GetWorldWidget(std::int32_t WorldID);
};
/** @} */
#endif // LOGOUT_HPP_INCLUDED

View File

@ -0,0 +1,172 @@
#ifndef MAGIC_HPP_INCLUDED
#define MAGIC_HPP_INCLUDED
#include <string>
#include <cstdint>
/** @addtogroup GameTabs
* @{ */
class Magic
{
public:
typedef enum SPELLS
{
NORMAL_LUMBRIDGE_HOME_TELEPORT,
NORMAL_WIND_STRIKE,
NORMAL_CONFUSE,
NORMAL_ENCHANT_CROSSBOW_BOLT,
NORMAL_WATER_STRIKE,
NORMAL_LVL1_ENCHANT,
NORMAL_EARTH_STRIKE,
NORMAL_WEAKEN,
NORMAL_FIRE_STRIKE,
NORMAL_BONES_TO_BANANAS,
NORMAL_WIND_BOLT,
NORMAL_CURSE,
NORMAL_BIND,
NORMAL_LOW_LEVEL_ALCHEMY,
NORMAL_WATER_BOLT,
NORMAL_VARROCK_TELEPORT,
NORMAL_LVL2_ENCHANT,
NORMAL_EARTH_BOLT,
NORMAL_LUMBRIDGE_TELEPORT,
NORMAL_TELEKINETIC_GRAB,
NORMAL_FIRE_BOLT,
NORMAL_FALADOR_TELEPORT,
NORMAL_CRUMBLE_UNDEAD,
NORMAL_TELEPORT_TO_HOUSE,
NORMAL_WIND_BLAST,
NORMAL_SUPERHEAT_ITEM,
NORMAL_CAMELOT_TELEPORT,
NORMAL_WATER_BLAST,
NORMAL_LVL3_ENCHANT,
NORMAL_IBAN_BLAST,
NORMAL_SNARE,
NORMAL_MAGIC_DART,
NORMAL_ARDOUGNE_TELEPORT,
NORMAL_EARTH_BLAST,
NORMAL_HIGH_LEVEL_ALCHEMY,
NORMAL_CHARGE_WATER_ORB,
NORMAL_LVL4_ENCHANT,
NORMAL_WATCHTOWER_TELEPORT,
NORMAL_FIRE_BLAST,
NORMAL_CHARGE_EARTH_ORB,
NORMAL_BONES_TO_PEACHES,
NORMAL_SARADOMIN_STRIKE,
NORMAL_CLAWS_OF_GUTHIX,
NORMAL_FLAMES_OF_ZAMORAK,
NORMAL_TROLLHEIM_TELEPORT,
NORMAL_WIND_WAVE,
NORMAL_CHARGE_FIRE_ORB,
NORMAL_TELEPORT_TO_APE_ATOLL,
NORMAL_WATER_WAVE,
NORMAL_CHARGE_AIR_ORB,
NORMAL_VULNERABILITY,
NORMAL_LVL5_ENCHANT,
NORMAL_TELEPORT_TO_KOUREND,
NORMAL_EARTH_WAVE,
NORMAL_ENFEEBLE,
NORMAL_TELEOTHER_LUMBRIDGE,
NORMAL_FIRE_WAVE,
NORMAL_ENTANGLE,
NORMAL_STUN,
NORMAL_CHARGE,
NORMAL_TELEOTHER_FALADOR,
NORMAL_TELE_BLOCK,
NORMAL_TELEPORT_TO_BOUNTY_TARGET,
NORMAL_LVL6_ENCHANT,
NORMAL_TELEOTHER_CAMELOT,
NORMAL_LVL7_ENCHANT,
LUNAR_LUNAR_HOME_TELEPORT,
LUNAR_BAKE_PIE,
LUNAR_GEOMANCY,
LUNAR_CURE_PLANT,
LUNAR_MONSTER_EXAMINE,
LUNAR_NPC_CONTACT,
LUNAR_CURE_OTHER,
LUNAR_HUMIDIFY,
LUNAR_MOONCLAN_TELEPORT,
LUNAR_TELE_GROUP_MOONCLAN,
LUNAR_CURE_ME,
LUNAR_OURANIA_TELEPORT,
LUNAR_HUNTER_KIT,
LUNAR_WATERBIRTH_TELEPORT,
LUNAR_TELE_GROUP_WATERBIRTH,
LUNAR_CURE_GROUP,
LUNAR_STAT_SPY,
LUNAR_BARBARIAN_TELEPORT,
LUNAR_TELE_GROUP_BARBARIAN,
LUNAR_SPIN_FLAX,
LUNAR_SUPERGLASS_MAKE,
LUNAR_TAN_LEATHER,
LUNAR_KHAZARD_TELEPORT,
LUNAR_TELE_GROUP_KHAZARD,
LUNAR_DREAM,
LUNAR_STRING_JEWELLERY,
LUNAR_STAT_RESTORE_POT_SHARE,
LUNAR_MAGIC_IMBUE,
LUNAR_FERTILE_SOIL,
LUNAR_BOOST_POTION_SHARE,
LUNAR_FISHING_GUILD_TELEPORT,
LUNAR_TELEPORT_TO_BOUNTY_TARGET,
LUNAR_TELE_GROUP_FISHING_GUILD,
LUNAR_PLANK_MAKE,
LUNAR_CATHERBY_TELEPORT,
LUNAR_TELE_GROUP_CATHERBY,
LUNAR_RECHARGE_DRAGONSTONE,
LUNAR_ICE_PLATEAU_TELEPORT,
LUNAR_TELE_GROUP_ICE_PLATEAU,
LUNAR_ENERGY_TRANSFER,
LUNAR_HEAL_OTHER,
LUNAR_VENGEANCE_OTHER,
LUNAR_VENGEANCE,
LUNAR_HEAL_GROUP,
LUNAR_SPELLBOOK_SWAP,
ANCIENT_ICE_RUSH,
ANCIENT_ICE_BLITZ,
ANCIENT_ICE_BURST,
ANCIENT_ICE_BARRAGE,
ANCIENT_BLOOD_RUSH,
ANCIENT_BLOOD_BLITZ,
ANCIENT_BLOOD_BURST,
ANCIENT_BLOOD_BARRAGE,
ANCIENT_SMOKE_RUSH,
ANCIENT_SMOKE_BLITZ,
ANCIENT_SMOKE_BURST,
ANCIENT_SMOKE_BARRAGE,
ANCIENT_SHADOW_RUSH,
ANCIENT_SHADOW_BLITZ,
ANCIENT_SHADOW_BURST,
ANCIENT_SHADOW_BARRAGE,
ANCIENT_PADDEWWA_TELEPORT,
ANCIENT_SENNTISTEN_TELEPORT,
ANCIENT_KHARYRLL_TELEPORT,
ANCIENT_LASSAR_TELEPORT,
ANCIENT_DAREEYAK_TELEPORT,
ANCIENT_CARRALLANGAR_TELEPORT,
ANCIENT_ANNAKARL_TELEPORT,
ANCIENT_GHORROCK_TELEPORT,
ANCIENT_TELEPORT_TO_BOUNTY_TARGET,
ANCIENT_EDGEVILLE_HOME_TELEPORT
} SPELLS;
static bool IsOpen();
static bool Open();
static bool HasLevel(SPELLS Spell);
static bool IsSpellSelected();
static bool IsSpellSelected(SPELLS Spell);
static bool IsSpellSelected(const std::string& Name);
static std::string GetSelectedSpellName();
static bool SelectSpell(SPELLS Spell);
};
/** @} */
#endif // MAGIC_HPP_INCLUDED

View File

@ -0,0 +1,15 @@
#ifndef MUSIC_HPP_INCLUDED
#define MUSIC_HPP_INCLUDED
/** @addtogroup GameTabs
* @{ */
class Music
{
public:
static bool IsOpen();
static bool Open();
};
/** @} */
#endif // MUSIC_HPP_INCLUDED

View File

@ -0,0 +1,21 @@
#ifndef OPTIONS_HPP_INCLUDED
#define OPTIONS_HPP_INCLUDED
/** @addtogroup GameTabs
* @{ */
class Options
{
public:
static bool IsOpen();
static bool Open();
static bool GetAcceptAid();
static bool ToggleAcceptAid(bool Toggle);
static bool GetRunMode();
static bool ToggleRunMode(bool Toggle);
};
/** @} */
#endif // OPTIONS_HPP_INCLUDED

View File

@ -0,0 +1,58 @@
#ifndef PRAYER_HPP_INCLUDED
#define PRAYER_HPP_INCLUDED
#include <cstdint>
/** @addtogroup GameTabs
* @{ */
class Prayer
{
public:
typedef enum PRAYERS
{
THICK_SKIN,
BURST_OF_STRENGTH,
CLARITY_OF_THOUGHT,
SHARP_EYE,
MYSTIC_WILL,
ROCK_SKIN,
SUPERHUMAN_STRENGTH,
IMPROVED_REFLEXES,
RAPID_RESTORE,
RAPID_HEAL,
PROTECT_ITEM,
HAWK_EYE,
MYSTIC_LORE,
STEEL_SKIN,
ULTIMATE_STRENGTH,
INCREDIBLE_REFLEXES,
PROTECT_FROM_MAGIC,
PROTECT_FROM_MISSILES,
PROTECT_FROM_MELEE,
EAGLE_EYE,
MYSTIC_MIGHT,
RETRIBUTION,
REDEMPTION,
SMITE,
PRESERVE,
CHIVALRY,
PIETY,
RIGOUR,
AUGURY
} PRAYERS;
static bool IsOpen();
static bool Open();
static std::int32_t GetPoints();
static bool HasLevel(PRAYERS Prayer);
static bool IsActive(PRAYERS Prayer);
static bool WaitPrayer(std::uint32_t Duration, std::uint32_t Step, PRAYERS Prayer, bool Active);
static bool Activate(PRAYERS Prayer);
static bool Deactivate(PRAYERS Prayer);
};
/** @} */
#endif // PRAYER_HPP_INCLUDED

View File

@ -0,0 +1,15 @@
#ifndef QUESTS_HPP_INCLUDED
#define QUESTS_HPP_INCLUDED
/** @addtogroup GameTabs
* @{ */
class Quests
{
public:
static bool IsOpen();
static bool Open();
};
/** @} */
#endif // QUESTS_HPP_INCLUDED

View File

@ -0,0 +1,52 @@
#ifndef STATS_HPP_INCLUDED
#define STATS_HPP_INCLUDED
#include <cstdint>
/** @addtogroup GameTabs
* @{ */
class Stats
{
public:
typedef enum SKILLS
{
ATTACK,
DEFENCE,
STRENGTH,
HITPOINTS,
RANGE,
PRAYER,
MAGIC,
COOKING,
WOODCUTTING,
FLETCHING,
FISHING,
FIREMAKING,
CRAFTING,
SMITHING,
MINING,
HERBLORE,
AGILITY,
THIEVING,
SLAYER,
FARMING,
RUNECRAFT,
HUNTER,
CONSTRUCTION
} SKILLS;
static bool IsOpen();
static bool Open();
static std::int32_t GetWeight();
static std::int32_t GetRunEnergy();
static std::int32_t GetCurrentLevel(SKILLS Skill);
static std::int32_t GetRealLevel(SKILLS Skill);
static std::int32_t GetExperience(SKILLS Skill);
static std::int32_t GetExperienceTo(SKILLS Skill, std::int32_t Level);
};
/** @} */
#endif // STATS_HPP_INCLUDED

View File

@ -0,0 +1,85 @@
#ifndef LOGIN_HPP_INCLUDED
#define LOGIN_HPP_INCLUDED
#include "../../Core/Types/Box.hpp"
#include "../../Core/Classes/World.hpp"
#include <cstdint>
#include <string>
#include <vector>
/** @addtogroup Interfaces
* @{ */
class Login
{
public:
typedef enum LOGIN_STATE
{
WELCOME_SCREEN,
ENTER_CREDENTIALS,
INVALID_CREDENTIALS,
FORGOTTEN_PASSWORD,
RUNESCAPE_UPDATED,
TEMP_BANNED,
PERM_BANNED,
ACCOUNT_LOCKED,
WORLD_SELECT,
CONNECTING,
LOADING,
LOBBY_SCREEN,
LOGGED_IN
} LOGIN_STATE;
static LOGIN_STATE GetState();
static bool IsLoggedIn();
static bool IsWorldSelectOpen();
static bool CloseWorldSelect();
static std::int32_t LoginPlayer();
static bool EnterCredentials();
static bool SelectWorld();
static bool SelectWorld(World World);
static bool SelectWorld(std::int32_t WorldID);
static bool OpenWorldSelect();
static bool OpenWorldSelect(bool Close);
/**
* @return X of where the login screen starts
*/
static std::int32_t GetScreenX();
/**
* @return X of where the login window starts
*/
static std::int32_t GetWindowX();
/**
* @return current state of the login caret
* 0: Username line; 1: Password line;
*/
static std::int32_t GetCaretState();
/**
* @return a vector of login messages
* 0: LoginMessage0; 1: LoginMessage1; 2: LoginMessage2;
*/
static std::vector<std::string> GetLoginMessages();
/**
* @return a vector of button boxes on the login screen
* 0: Existing User; 1: Login; 2: Cancel; 3: Try Again; 4: World Select; 5: World Select Cancel;
*/
static std::vector<Box> GetButtonBoxes();
/**
* @return a vector of World Boxes found in the World Select screen
*/
static std::vector<Box> GetWorldBoxes();
};
/** @} */
#endif // LOGIN_HPP_INCLUDED

View File

@ -0,0 +1,53 @@
#ifndef MAINSCREEN_HPP_INCLUDED
#define MAINSCREEN_HPP_INCLUDED
#include "../../Core/Types/Box.hpp"
#include "../../Core/Classes/Character.hpp"
#include <cstdint>
#include <string>
#include <vector>
/** @addtogroup Interfaces
* @{ */
class Mainscreen
{
public:
typedef enum SCREEN_STATE
{
LOGIN_SCREEN,
LOBBY_SCREEN,
CONNECTING,
LOADING,
HOPPING,
PLAYING
} SCREEN_STATE;
static Mainscreen::SCREEN_STATE GetState();
static bool IsLoggedIn();
static bool IsPlaying();
static std::string GetUpText();
static bool UpTextContains(const std::string& UpText);
static bool UpTextContains(const std::vector<std::string>& UpTexts);
static bool IsUpText(const std::string& UpText);
static bool IsUpText(const std::vector<std::string>& UpTexts);
static bool WaitIsUpText(std::uint32_t Duration, std::uint32_t Step, const std::string& UpText);
static bool WaitUpTextContains(std::uint32_t Duration, std::uint32_t Step, const std::string& UpText);
static Character GetInteractingByIndex(std::uint32_t Index);
static Character GetInteracting(); //Returns the Character interacting with the Local Player
static Character GetInteractingWith(const Character& C); //Returns the Character interactinng with the Character
static bool IsInteracting(const Character& A, const Character& B); // True if A is interacting with B
static std::int32_t GetCameraX();
static std::int32_t GetCameraY();
static std::int32_t GetCameraZ();
static std::int32_t GetCameraPitch();
static std::int32_t GetCameraYaw();
};
/** @} */
#endif // MAINSCREEN_HPP_INCLUDED

View File

@ -0,0 +1,51 @@
#ifndef MENU_HPP_INCLUDED
#define MENU_HPP_INCLUDED
#include "../../Core/Types/Box.hpp"
#include <cstdint>
#include <string>
#include <vector>
/** @addtogroup Interfaces
* @{ */
class Menu
{
public:
static bool IsOpen();
static bool Open();
static std::int32_t GetCount();
static std::vector<std::string> GetActions();
static std::vector<std::string> GetTargetsRaw();
static std::vector<std::string> GetTargets();
static std::vector<std::string> GetOptions();
static std::int32_t IndexOf(const std::string& Action);
static std::int32_t IndexOf(const std::string& Action, const std::string& Target);
static std::int32_t IndexOf(const std::vector<std::string>& PossibleActions);
static std::int32_t IndexOf(const std::vector<std::string>& PossibleActions, const std::vector<std::string>& PossibleTargets);
static bool Contains(const std::string& Action);
static bool Contains(const std::string& Action, const std::string& Target);
static bool Contains(const std::vector<std::string>& PossibleActions);
static bool Contains(const std::vector<std::string>& PossibleActions, const std::vector<std::string>& Targets);
static bool WaitContains(std::uint32_t Duration, std::uint32_t Step, const std::string& Action);
static bool WaitContains(std::uint32_t Duration, std::uint32_t Step, const std::string& Action, const std::string& Target);
static bool WaitContains(std::uint32_t Duration, std::uint32_t Step, const std::vector<std::string>& PossibleActions); // Waits until the Menu contains at least one of these actions
static bool WaitContains(std::uint32_t Duration, std::uint32_t Step, const std::vector<std::string>& PossibleActions, const std::vector<std::string>& PossibleTargets); // Waits until the Menu contains at least one of these actions and Targets
static bool Select(std::uint32_t Index);
static bool Select(const std::string& Action);
static bool Select(const std::string& Action, const std::string& Target);
static bool Select(const std::vector<std::string>& PossibleActions);
static bool Select(const std::vector<std::string>& PossibleActions, const std::vector<std::string>& PossibleTargets);
static std::vector<Box> GetBoxes();
static Box GetBox();
};
/** @} */
#endif // MENU_HPP_INCLUDED

View File

@ -0,0 +1,35 @@
#ifndef MINIMAP_HPP_INCLUDED
#define MINIMAP_HPP_INCLUDED
#include "../../Core/Types/Tile.hpp"
#include "../../Core/Types/Point.hpp"
#include "../../Core/Classes/Region.hpp"
#include <cstdint>
/** @addtogroup Interfaces
* @{ */
class Minimap
{
public:
static Point GetMiddle();
static Tile GetPosition();
static Tile GetDestination();
static std::int32_t GetPlane();
static std::int32_t GetPositionX();
static std::int32_t GetPositionY();
static std::int32_t GetDestinationX();
static std::int32_t GetDestinationY();
static bool CloseTo(Tile T, std::int32_t Distance);
static bool TileOnMM(Tile T);
static double GetCompassAngle();
static void RotateCompass(std::int32_t Degrees);
};
/** @} */
#endif // MINIMAP_HPP_INCLUDED

View File

@ -0,0 +1,37 @@
#ifndef GROUNDITEMS_HPP_INCLUDED
#define GROUNDITEMS_HPP_INCLUDED
#include "../../Core/Classes/GroundItem.hpp"
#include "../../Core/Types/Tile.hpp"
#include "../../Core/Types/Convex.hpp"
#include <functional>
#include <cstdint>
#include <vector>
#include <string>
/** @addtogroup Models
* @{ */
class GroundItems
{
public:
static std::vector<GroundItem> GetAll();
static std::vector<GroundItem> GetAll(Tile T);
static std::vector<GroundItem> GetAll(std::int32_t ID);
static std::vector<GroundItem> GetAll(const std::string& Name);
static std::vector<GroundItem> GetAll(const std::vector<std::int32_t>& IDs);
static std::vector<GroundItem> GetAll(const std::vector<std::string>& Names);
static std::vector<GroundItem> GetAll(const std::function<bool (GroundItem&)>& Filter);
static GroundItem Get(Tile T);
static GroundItem Get(std::int32_t ID);
static GroundItem Get(const std::string& Name);
static GroundItem Get(const std::vector<std::int32_t>& IDs);
static GroundItem Get(const std::vector<std::string>& Names);
static Tile GetTileOf(GroundItem G);
static Convex GetConvexOf(GroundItem G);
};
/** @} */
#endif // GROUNDITEMS_HPP_INCLUDED

View File

@ -0,0 +1,40 @@
#ifndef NPCS_HPP_INCLUDED
#define NPCS_HPP_INCLUDED
#include "../../Core/Classes/NPC.hpp"
#include "../../Core/Types/Tile.hpp"
#include "../../Core/Types/Convex.hpp"
#include <functional>
#include <cstdint>
#include <vector>
#include <string>
/** @addtogroup Models
* @{ */
class NPCs
{
public:
static std::vector<NPC> GetAll();
static std::vector<NPC> GetAll(const Tile& Tile);
static std::vector<NPC> GetAll(std::int32_t ID);
static std::vector<NPC> GetAll(const std::string& Name);
static std::vector<NPC> GetAll(const std::vector<std::int32_t>& IDs);
static std::vector<NPC> GetAll(const std::vector<std::string>& Names);
static std::vector<NPC> GetAll(const std::function<bool (NPC&)>& Filter);
static NPC Get();
static NPC Get(const Tile& Tile);
static NPC Get(std::int32_t ID);
static NPC Get(const std::string& Name);
static NPC Get(const std::vector<std::int32_t>& IDs);
static NPC Get(const std::vector<std::string>& Names);
static NPC Get(const std::function<bool (NPC&)>& Filter);
static Tile GetTileOf(NPC NPC);
static Convex GetConvexOf(NPC NPC);
};
/** @} */
#endif // NPCS_HPP_INCLUDED

View File

@ -0,0 +1,37 @@
#ifndef PLAYERS_HPP_INCLUDED
#define PLAYERS_HPP_INCLUDED
#include "../../Core/Classes/Player.hpp"
#include "../../Core/Types/Tile.hpp"
#include "../../Core/Types/Convex.hpp"
#include <functional>
#include <cstdint>
#include <vector>
#include <string>
/** @addtogroup Models
* @{ */
class Players
{
public:
static Player GetLocal();
static std::vector<Player> GetAll();
static std::vector<Player> GetAll(const Tile& Tile);
static std::vector<Player> GetAll(const std::string& Name);
static std::vector<Player> GetAll(const std::vector<std::string>& Names);
static std::vector<Player> GetAll(const std::function<bool (Player&)>& Filter);
static Player Get();
static Player Get(const Tile& Tile);
static Player Get(const std::string& Name);
static Player Get(const std::vector<std::string>& Names);
static Player Get(const std::function<bool (Player&)>& Filter);
static Tile GetTileOf(Player Player);
static Convex GetConvexOf(Player Player);
};
/** @} */
#endif // PLAYERS_HPP_INCLUDED

View File

@ -0,0 +1,67 @@
#ifndef SCENEOBJECTS_HPP_INCLUDED
#define SCENEOBJECTS_HPP_INCLUDED
#include "../../Core/Classes/GameModel.hpp"
#include "../../Core/Classes/DecorativeModel.hpp"
#include "../../Core/Classes/GroundModel.hpp"
#include "../../Core/Classes/WallModel.hpp"
#include "../../Core/Types/Tile.hpp"
#include "../../Core/Types/Convex.hpp"
#include <functional>
#include <cstdint>
#include <vector>
#include <string>
/** @addtogroup Models
* @{ */
class SceneObjects
{
public:
typedef enum MODEL_TYPE
{
GAME_MODEL = (1 << 1),
DECORATIVE_MODEL = (1 << 2),
GROUND_MODEL = (1 << 3),
WALL_MODEL = (1 << 4),
ALL = (GAME_MODEL | DECORATIVE_MODEL | GROUND_MODEL | WALL_MODEL)
} MODEL_TYPE;
static std::vector<Object> GetAll(MODEL_TYPE ModelTypes = ALL);
static std::vector<Object> GetAll(const Tile& T, MODEL_TYPE ModelTypes = ALL);
static std::vector<Object> GetAll(std::int32_t ID, MODEL_TYPE ModelTypes = ALL);
static std::vector<Object> GetAll(const std::string& Name, MODEL_TYPE ModelTypes = ALL);
static std::vector<Object> GetAll(const std::vector<std::int32_t>& PossibleIDs, MODEL_TYPE ModelTypes = ALL);
static std::vector<Object> GetAll(const std::vector<std::string>& PossibleNames, MODEL_TYPE ModelTypes = ALL);
static std::vector<GameModel> GetAll(const std::function<bool (GameModel&)>& Filter);
static std::vector<DecorativeModel> GetAll(const std::function<bool (DecorativeModel&)>& Filter);
static std::vector<GroundModel> GetAll(const std::function<bool (GroundModel&)>& Filter);
static std::vector<WallModel> GetAll(const std::function<bool (WallModel&)>& Filter);
static Object Get(const Tile& T, MODEL_TYPE ModelTypes = ALL);
static Object Get(std::int32_t ID, MODEL_TYPE ModelTypes = ALL);
static Object Get(const std::string& Name, MODEL_TYPE ModelTypes = ALL);
static Object Get(const std::vector<std::int32_t>& PossibleIDs, MODEL_TYPE ModelTypes = ALL);
static Object Get(const std::vector<std::string>& PossibleNames, MODEL_TYPE ModelTypes = ALL);
static GameModel Get(const std::function<bool (GameModel&)>& Filter);
static DecorativeModel Get(const std::function<bool (DecorativeModel&)>& Filter);
static GroundModel Get(const std::function<bool (GroundModel&)>& Filter);
static WallModel Get(const std::function<bool (WallModel&)>& Filter);
static Tile GetTileOf(const GameModel& G);
static Tile GetTileOf(const DecorativeModel& D);
static Tile GetTileOf(const GroundModel& G);
static Tile GetTileOf(const WallModel& W);
static Convex GetConvexOf(const GameModel& G);
static Convex GetConvexOf(const DecorativeModel& D);
static Convex GetConvexOf(const GroundModel& G);
static Convex GetConvexOf(const WallModel& W);
};
/** @} */
#endif // SCENEOBJECTS_HPP_INCLUDED

View File

@ -0,0 +1,18 @@
#ifndef BREAKHANDLER_HPP_INCLUDED
#define BREAKHANDLER_HPP_INCLUDED
#include "../../Core/Types/Timer.hpp"
#include "../../Core/Types/Counter.hpp"
class BreakHandler
{
public:
static Counter GetBreakCounter();
static Timer GetBreakTimer();
static bool ShortBreak(bool Logout = true);
static bool LongBreak(bool Logout = true);
static bool Break(bool Logout = true);
};
#endif // BREAKHANDLER_HPP_INCLUDED

View File

@ -0,0 +1,77 @@
#ifndef INTERACT_HPP_INCLUDED
#define INTERACT_HPP_INCLUDED
#include "../../Core/Input.hpp"
#include "../../Core/Internal.hpp"
#include <functional>
#include <string>
#include <cstdint>
/** @addtogroup Tools
* @{ */
class Interact
{
public:
static bool MoveMouse(Point P);
static bool MoveMouse(Box B);
static bool Scroll(ScrollDirection Direction);
static bool Scroll(Point P, ScrollDirection Direction);
static bool Scroll(Box B, ScrollDirection Direction);
static bool ScrollUntil(ScrollDirection Direction, std::int32_t Duration, const std::function<bool()>& Func);
static bool Click(Button Button = BUTTON_LEFT);
static bool Click(Point P, Button Button = BUTTON_LEFT);
static bool Click(Point P, const std::string& Action, const std::string& Target = "");
static bool Click(Point P, const std::vector<std::string>& PossibleActions, const std::vector<std::string>& PossibleTargets = {""});
static bool Click(Box B, Button Button = BUTTON_LEFT);
static bool Click(Box B, const std::string& Action, const std::string& Target = "");
static bool Click(Box B, const std::vector<std::string>& PossibleActions, const std::vector<std::string>& PossibleTargets = {""});
static bool Click(Widget W, Button Button = BUTTON_LEFT);
static bool Click(Widget W, const std::string& Action, const std::string& Target = "");
static bool Click(Widget W, const std::vector<std::string>& PossibleActions, const std::vector<std::string>& PossibleTargets = {""});
static bool Click(Convex C, Button Button = BUTTON_LEFT);
static bool Click(Convex C, const std::string& Action, const std::string& Target = "");
static bool Click(Convex C, const std::vector<std::string>& PossibleActions, const std::vector<std::string>& PossibleTargets = {""});
static bool Click(GroundItem G, Button Button = BUTTON_LEFT);
static bool Click(GroundItem G, const std::string& Action);
static bool Click(GroundItem G, const std::vector<std::string>& PossibleActions);
static bool Click(NPC N, Button Button = BUTTON_LEFT);
static bool Click(NPC N, const std::string& Action);
static bool Click(NPC N, const std::vector<std::string>& PossibleActions);
static bool Click(Player P, Button Button = BUTTON_LEFT);
static bool Click(Player P, const std::string& Action);
static bool Click(Player P, const std::vector<std::string>& PossibleActions);
static bool Click(GameModel G, Button Button = BUTTON_LEFT);
static bool Click(GameModel G, const std::string& Action);
static bool Click(GameModel G, const std::vector<std::string>& PossibleActions);
static bool Click(GroundModel G, Button Button = BUTTON_LEFT);
static bool Click(GroundModel G, const std::string& Action);
static bool Click(GroundModel G, const std::vector<std::string>& PossibleActions);
static bool Click(WallModel W, Button Button = BUTTON_LEFT);
static bool Click(WallModel W, const std::string& Action);
static bool Click(WallModel W, const std::vector<std::string>& PossibleActions);
static bool UpKey(std::int32_t Key);
static bool DownKey(std::int32_t Key);
bool ReleaseKey(std::int32_t Key);
bool HoldKey(std::int32_t Key, std::uint32_t Duration);
static bool TypeKey(std::int32_t Key);
static bool TypeString(const std::string& String, bool PressEnter = false);
};
/** @} */
#endif // INTERACT_HPP_INCLUDED

View File

@ -0,0 +1,82 @@
#ifndef PROFILE_HPP_INCLUDED
#define PROFILE_HPP_INCLUDED
#include "../../Core/Types/Timer.hpp"
#include <cstdint>
#include <string>
/** @addtogroup Tools
* @{ */
class Profile
{
public:
static std::string GetUsername();
static std::string GetPassword();
static std::string GetBankPin();
static std::int32_t GetWorld();
static bool GetIsMember();
static bool GetHasPin();
static std::int32_t GetActionDelayMean();
static double GetActionDelayDeviation();
static std::int32_t GetMoveDelayMean();
static double GetMoveDelayDeviation();
static std::int32_t GetMouseDownDelayMean();
static double GetMouseDownDelayDeviation();
static std::int32_t GetMouseUpDelayMean();
static double GetMouseUpDelayDeviation();
static std::int32_t GetKeyDownDelayMean();
static double GetKeyDownDelayDeviation();
static std::int32_t GetKeyUpDelayMean();
static double GetKeyUpDelayDeviation();
static std::int32_t GetScrollDelayMean();
static double GetScrollDelayDeviation();
static double GetStandardDeviationX();
static double GetStandardDeviationY();
static double GetBoxProbabilityX();
static double GetBoxProbabilityY();
static double GetConvexProbabilityX();
static double GetConvexProbabilityY();
static double GetItemProbabilityX();
static double GetItemProbabilityY();
static double GetMenuProbabilityX();
static double GetMenuProbabilityY();
static double GetWidgetProbabilityX();
static double GetWidgetProbabilityY();
static double GetMissFollowUp();
static double GetFatigue();
static double GetFatigueGain();
static double GetFatigueLoss();
static double GetFatigueMax();
static bool GetShortBreakEnabled();
static double GetShortBreakEvery();
static double GetShortBreakEveryDeviation();
static double GetShortBreakFor();
static double GetShortBreakForDeviation();
static bool GetLongBreakEnabled();
static double GetLongBreakEvery();
static double GetLongBreakEveryDeviation();
static double GetLongBreakFor();
static double GetLongBreakForDeviation();
};
/** @} */
#endif // PROFILE_HPP_INCLUDED

View File

@ -0,0 +1,17 @@
#ifndef RANDOMHANDLER_HPP_INCLUDED
#define RANDOMHANDLER_HPP_INCLUDED
#include "../../Core/Types/Counter.hpp"
#include "../../Core/Types/Countdown.hpp"
#include <cstdint>
class RandomHandler
{
public:
static void SetCheckDelay(std::int64_t Time);
static Countdown GetCheckCountdown();
static Counter GetRandomsCounter();
static bool Check();
};
#endif // RANDOMHANDLER_HPP_INCLUDED

View File

@ -0,0 +1,22 @@
#ifndef SETTINGS_HPP_INCLUDED
#define SETTINGS_HPP_INCLUDED
#include <cstdint>
#include <vector>
/** @addtogroup Tools
* @{ */
class Settings
{
public:
static std::vector<std::int32_t> GetAll();
static std::int32_t GetSetting(std::int32_t SettingIndex);
static std::int32_t GetSetting(std::int32_t SettingIndex, std::int32_t BitMask);
static bool GetSettingBit(std::int32_t SettingIndex, std::int32_t BitIndex);
static std::int32_t GetScreenType();
};
/** @} */
#endif // SETTINGS_HPP_INCLUDED

Some files were not shown because too many files have changed in this diff Show More