Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
stenzek
GitHub Repository: stenzek/duckstation
Path: blob/master/dep/rcheevos/src/rc_client_raintegration_internal.h
4246 views
1
#ifndef RC_CLIENT_RAINTEGRATION_INTERNAL_H
2
#define RC_CLIENT_RAINTEGRATION_INTERNAL_H
3
4
#include "rc_client_raintegration.h"
5
6
#ifdef RC_CLIENT_SUPPORTS_RAINTEGRATION
7
8
#include "rc_client_external.h"
9
#include "rc_compat.h"
10
11
RC_BEGIN_C_DECLS
12
13
/* RAIntegration follows the same calling convention as rcheevos */
14
15
typedef void (RC_CCONV* rc_client_raintegration_action_func_t)(void);
16
typedef const char* (RC_CCONV* rc_client_raintegration_get_string_func_t)(void);
17
typedef int (RC_CCONV* rc_client_raintegration_init_client_func_t)(HWND hMainWnd, const char* sClientName, const char* sClientVersion);
18
typedef int (RC_CCONV* rc_client_raintegration_get_external_client_func_t)(rc_client_external_t* pClient, int nVersion);
19
typedef void (RC_CCONV* rc_client_raintegration_hwnd_action_func_t)(HWND hWnd);
20
typedef int (RC_CCONV* rc_client_raintegration_get_achievement_state_func_t)(uint32_t nMenuItemId);
21
typedef const rc_client_raintegration_menu_t* (RC_CCONV* rc_client_raintegration_get_menu_func_t)(void);
22
typedef int (RC_CCONV* rc_client_raintegration_activate_menuitem_func_t)(uint32_t nMenuItemId);
23
typedef void (RC_CCONV* rc_client_raintegration_set_write_memory_func_t)(rc_client_t* pClient, rc_client_raintegration_write_memory_func_t handler);
24
typedef void (RC_CCONV* rc_client_raintegration_set_get_game_name_func_t)(rc_client_t* pClient, rc_client_raintegration_get_game_name_func_t handler);
25
typedef void (RC_CCONV* rc_client_raintegration_set_event_handler_func_t)(rc_client_t* pClient, rc_client_raintegration_event_handler_t handler);
26
typedef void (RC_CCONV* rc_client_raintegration_set_int_func_t)(int);
27
typedef int (RC_CCONV* rc_client_raintegration_get_int_func_t)(void);
28
29
typedef struct rc_client_raintegration_t
30
{
31
HINSTANCE hDLL;
32
HWND hMainWindow;
33
HMENU hPopupMenu;
34
uint8_t bIsInited;
35
36
rc_client_raintegration_get_string_func_t get_version;
37
rc_client_raintegration_get_string_func_t get_host_url;
38
rc_client_raintegration_init_client_func_t init_client;
39
rc_client_raintegration_init_client_func_t init_client_offline;
40
rc_client_raintegration_set_int_func_t set_console_id;
41
rc_client_raintegration_action_func_t shutdown;
42
43
rc_client_raintegration_hwnd_action_func_t update_main_window_handle;
44
45
rc_client_raintegration_set_write_memory_func_t set_write_memory_function;
46
rc_client_raintegration_set_get_game_name_func_t set_get_game_name_function;
47
rc_client_raintegration_set_event_handler_func_t set_event_handler;
48
rc_client_raintegration_get_menu_func_t get_menu;
49
rc_client_raintegration_activate_menuitem_func_t activate_menu_item;
50
rc_client_raintegration_get_int_func_t has_modifications;
51
rc_client_raintegration_get_achievement_state_func_t get_achievement_state;
52
53
rc_client_raintegration_get_external_client_func_t get_external_client;
54
55
} rc_client_raintegration_t;
56
57
RC_END_C_DECLS
58
59
#endif /* RC_CLIENT_SUPPORTS_RAINTEGRATION */
60
61
#endif /* RC_CLIENT_RAINTEGRATION_INTERNAL_H */
62
63