ArcdpsExtension
 
Loading...
Searching...
No Matches
arcdps_structs.h
Go to the documentation of this file.
1#pragma once
3
4#include <string>
5#include <Windows.h>
6
7bool is_player(const ag* new_player);
8
9typedef UINT (*WindowCallbackSignature)(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
10typedef void (*CombatCallbackSignature)(cbtevent* ev, ag* src, ag* dst, const char* skillname, uint64_t id, uint64_t revision);
11typedef void (*ImguiCallbackSignature)(uint32_t not_charsel_or_loading, uint32_t hide_if_combat_or_ooc);
13typedef void (*OptionsWindowsCallbackSignature)(const char* windowname);
14
15typedef struct arcdps_exports {
16 uintptr_t size; /* size of exports table */
17 uint32_t sig; /* pick a number between 0 and uint32_t max that isn't used by other modules */
18 uint32_t imguivers; /* set this to IMGUI_VERSION_NUM. if you don't use imgui, 18000 (as of 2021-02-02) */
19 const char* out_name; /* name string */
20 const char* out_build; /* build string */
21 WindowCallbackSignature wnd_nofilter; /* wndproc callback, fn(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) */
22 CombatCallbackSignature combat; /* combat event callback, fn(cbtevent* ev, ag* src, ag* dst, char* skillname, uint64_t id, uint64_t revision) */
23 ImguiCallbackSignature imgui; /* id3dd9::present callback, before imgui::render, fn(uint32_t not_charsel_or_loading) */
24 OptionsEndCallbackSignature options_end; /* id3dd9::present callback, appending to the end of options window in arcdps, fn() */
25 CombatCallbackSignature combat_local; /* combat event callback like area but from chat log, fn(cbtevent* ev, ag* src, ag* dst, char* skillname, uint64_t id, uint64_t revision) */
26 WindowCallbackSignature wnd_filter; /* wndproc callback like above, input filered using modifiers */
27 OptionsWindowsCallbackSignature options_windows; /* called once per 'window' option checkbox, with null at the end, non-zero return disables drawing that option, fn(char* windowname) */
29static_assert(sizeof(arcdps_exports) == 88);
30
31typedef void* (*MallocSignature)(size_t);
32typedef void (*FreeSignature)(void*);
33
34typedef arcdps_exports* (*ModInitSignature)();
35typedef uintptr_t (*ModReleaseSignature)();
36
37struct ID3D11Device;
38struct ImGuiContext;
39
50typedef ModInitSignature (*GetInitAddrSignature)(const char* arcversion, ImGuiContext* imguictx, void* dxptr, HMODULE arcdll, MallocSignature mallocfn, FreeSignature freefn, UINT dxver);
52
53// ARCPDS dll-exports
54typedef uint64_t (*arc_export_func_u64)();
55typedef void (*e3_func_ptr)(const char* str);
56
57// Define these exports in your main.cpp
61extern e3_func_ptr ARC_LOG;
62
63// additional enum for alignment
64enum class Alignment {
65 Left,
66 Center,
67 Right,
69};
70
71std::string to_string(Alignment alignment);
72
73enum class Position {
74 Manual,
77};
78
79std::string to_string(Position position);
80
81enum class CornerPosition {
82 TopLeft,
86};
87
88std::string to_string(CornerPosition position);
89
95
96std::string to_string(SizingPolicy sizingPolicy);
bool is_player(const ag *new_player)
Definition arcdps_structs.cpp:94
void(* OptionsEndCallbackSignature)()
Definition arcdps_structs.h:12
arc_export_func_u64 ARC_EXPORT_E6
Definition arcdps_structs.cpp:89
uintptr_t(* ModReleaseSignature)()
Definition arcdps_structs.h:35
void(* FreeSignature)(void *)
Definition arcdps_structs.h:32
void(* e3_func_ptr)(const char *str)
Definition arcdps_structs.h:55
UINT(* WindowCallbackSignature)(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition arcdps_structs.h:9
CornerPosition
Definition arcdps_structs.h:81
void(* OptionsWindowsCallbackSignature)(const char *windowname)
Definition arcdps_structs.h:13
e3_func_ptr ARC_LOG_FILE
Definition arcdps_structs.cpp:91
ModInitSignature(* GetInitAddrSignature)(const char *arcversion, ImGuiContext *imguictx, void *dxptr, HMODULE arcdll, MallocSignature mallocfn, FreeSignature freefn, UINT dxver)
Definition arcdps_structs.h:50
void(* ImguiCallbackSignature)(uint32_t not_charsel_or_loading, uint32_t hide_if_combat_or_ooc)
Definition arcdps_structs.h:11
std::string to_string(Alignment alignment)
Definition arcdps_structs.cpp:6
SizingPolicy
Definition arcdps_structs.h:90
uint64_t(* arc_export_func_u64)()
Definition arcdps_structs.h:54
void(* CombatCallbackSignature)(cbtevent *ev, ag *src, ag *dst, const char *skillname, uint64_t id, uint64_t revision)
Definition arcdps_structs.h:10
arc_export_func_u64 ARC_EXPORT_E7
Definition arcdps_structs.cpp:90
void *(* MallocSignature)(size_t)
Definition arcdps_structs.h:31
ModReleaseSignature(* GetReleaseAddrSignature)()
Definition arcdps_structs.h:51
Position
Definition arcdps_structs.h:73
@ ScreenRelative
@ WindowRelative
Alignment
Definition arcdps_structs.h:64
arcdps_exports *(* ModInitSignature)()
Definition arcdps_structs.h:34
e3_func_ptr ARC_LOG
Definition arcdps_structs.cpp:92
Definition arcdps_structs_slim.h:320
Definition arcdps_structs.h:15
uintptr_t size
Definition arcdps_structs.h:16
const char * out_name
Definition arcdps_structs.h:19
OptionsEndCallbackSignature options_end
Definition arcdps_structs.h:24
WindowCallbackSignature wnd_filter
Definition arcdps_structs.h:26
uint32_t imguivers
Definition arcdps_structs.h:18
OptionsWindowsCallbackSignature options_windows
Definition arcdps_structs.h:27
uint32_t sig
Definition arcdps_structs.h:17
const char * out_build
Definition arcdps_structs.h:20
CombatCallbackSignature combat
Definition arcdps_structs.h:22
ImguiCallbackSignature imgui
Definition arcdps_structs.h:23
WindowCallbackSignature wnd_nofilter
Definition arcdps_structs.h:21
CombatCallbackSignature combat_local
Definition arcdps_structs.h:25
Definition arcdps_structs_slim.h:289