/** * Copyright (c) 2011-2014 - Ashita Development Team * * Ashita is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Ashita is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Ashita. If not, see . */ #ifndef __ASHITA_Greed_H_INCLUDED__ #define __ASHITA_Greed_H_INCLUDED__ #if defined (_MSC_VER) && (_MSC_VER >= 1020) #pragma once #endif /** * @brief Required includes for an extension. */ #include "G:\Code\git.ashita.atom0s.com\Ashita v3\Ashita-src\build\plugins\ADK\Ashita.h" #include "rapidxml\rapidxml.hpp" #include "rapidxml\rapidxml_utils.hpp" #include #include #define SPACING 3 #define PADDING 3 #define GreedSIZE 36 #define FONTSIZE 10 #define FADERANGE 400 // buffer I/O macros #define RBUFP(p,pos) (((uint8_t*)(p)) + (pos)) #define RBUFB(p,pos) (*(uint8_t*)RBUFP((p),(pos))) #define RBUFW(p,pos) (*(uint16_t*)RBUFP((p),(pos))) #define RBUFL(p,pos) (*(uint32_t*)RBUFP((p),(pos))) #define RBUFF(p,pos) (*(float*)RBUFP((p),(pos))) #define WBUFP(p,pos) (((uint8_t*)(p)) + (pos)) #define WBUFB(p,pos) (*(uint8_t*)WBUFP((p),(pos))) #define WBUFW(p,pos) (*(uint16_t*)WBUFP((p),(pos))) #define WBUFL(p,pos) (*(uint32_t*)WBUFP((p),(pos))) #define WBUFU(p,pos) (*(uint64_t*)WBUFP((p),(pos))) #define WBUFF(p,pos) (*(float*)WBUFP((p),(pos))) /** * @brief Global copy of our plugin data. */ plugininfo_t* g_PluginInfo = NULL; static std::vector jobs = { "", "WAR", "MNK", "WHM", "BLM", "RDM", "THF", "PLD", "DRK", "BST", "BRD", "RNG", "SAM", "NIN", "DRG", "SMN", "BLU", "COR", "PUP", "DNC", "SCH", "GEO", "RUN" }; static const std::vector jobColors = { D3DCOLOR_ARGB(255, 120, 120, 120), D3DCOLOR_ARGB(255, 140, 0, 0), D3DCOLOR_ARGB(255, 255, 177, 32), D3DCOLOR_ARGB(255, 255, 255, 255), D3DCOLOR_ARGB(255, 68, 68, 68), D3DCOLOR_ARGB(255, 255, 0, 0), D3DCOLOR_ARGB(255, 0, 164, 49), D3DCOLOR_ARGB(255, 198, 198, 0), D3DCOLOR_ARGB(255, 116, 0, 145), D3DCOLOR_ARGB(255, 165, 153, 10), D3DCOLOR_ARGB(255, 184, 128, 10), D3DCOLOR_ARGB(255, 224, 0, 230), D3DCOLOR_ARGB(255, 234, 100, 0), D3DCOLOR_ARGB(255, 119, 0, 0), D3DCOLOR_ARGB(255, 130, 17, 255), D3DCOLOR_ARGB(255, 79, 196, 0), D3DCOLOR_ARGB(255, 50, 66, 217), D3DCOLOR_ARGB(255, 136, 68, 0), D3DCOLOR_ARGB(255, 244, 98, 98), D3DCOLOR_ARGB(255, 15, 190, 220), D3DCOLOR_ARGB(255, 0, 123, 145), D3DCOLOR_ARGB(255, 255, 70, 255), D3DCOLOR_ARGB(255, 255, 255, 255) }; struct config_t { uint8_t spacing; uint8_t padding; uint8_t Greedsize; uint8_t fontsize; float faderange; Ashita::FrameAnchor anchor; float x; float y; uint8_t rf; uint8_t gf; uint8_t bf; uint8_t rb; uint8_t gb; uint8_t bb; bool jobColored; }; /** * @brief Our Main Plugin Class * * @note The main class of your plugin MUST use PluginBase as a base class. This is the * internal base class that Ashita uses to communicate with your plugin! */ class Greed : IPlugin { /** * @brief Internal class variables. */ IAshitaCore* m_AshitaCore; ILogManager* m_LogManager; DWORD m_PluginId; IDirect3DDevice8* m_Direct3DDevice; private: rapidxml::xml_document<> settings; rapidxml::file<>* xmlFile; std::map targIdMap; void LoadSettings(); config_t config; public: /** * @brief Constructor and deconstructor. */ Greed(void); virtual ~Greed(void); /** * @brief GetPluginData implementation. */ plugininfo_t GetPluginInfo(void); /** * @brief PluginBase virtual overrides. */ bool Initialize(IAshitaCore* core, ILogManager* log, uint32_t id); void Release(void); bool Direct3DInitialize(IDirect3DDevice8* device); void Direct3DRelease(void); void Direct3DPreRender(void); void Direct3DRender(void); void onClick(int, IFontObject*, float, float); }; Greed* g_Greed = NULL; /** * @brief Required Plugin Exports */ __declspec(dllexport) double __stdcall GetInterfaceVersion(void); __declspec(dllexport) void __stdcall CreatePluginInfo(plugininfo_t* lpBuffer); __declspec(dllexport) IPlugin* __stdcall CreatePlugin(void); #endif // __ASHITA_Greed_H_INCLUDED__