Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
stenzek
GitHub Repository: stenzek/duckstation
Path: blob/master/dep/rcheevos/src/rc_client_external_versions.h
4246 views
1
#ifndef RC_CLIENT_EXTERNAL_CONVERSIONS_H
2
#define RC_CLIENT_EXTERNAL_CONVERSIONS_H
3
4
#include "rc_client_internal.h"
5
6
RC_BEGIN_C_DECLS
7
8
/* user */
9
10
typedef struct v1_rc_client_user_t {
11
const char* display_name;
12
const char* username;
13
const char* token;
14
uint32_t score;
15
uint32_t score_softcore;
16
uint32_t num_unread_messages;
17
} v1_rc_client_user_t;
18
19
typedef struct v3_rc_client_user_t {
20
const char* display_name;
21
const char* username;
22
const char* token;
23
uint32_t score;
24
uint32_t score_softcore;
25
uint32_t num_unread_messages;
26
const char* avatar_url;
27
} v3_rc_client_user_t;
28
29
/* game */
30
31
typedef struct v1_rc_client_game_t {
32
uint32_t id;
33
uint32_t console_id;
34
const char* title;
35
const char* hash;
36
const char* badge_name;
37
} v1_rc_client_game_t;
38
39
typedef struct v3_rc_client_game_t {
40
uint32_t id;
41
uint32_t console_id;
42
const char* title;
43
const char* hash;
44
const char* badge_name;
45
const char* badge_url;
46
} v3_rc_client_game_t;
47
48
/* subset */
49
50
typedef struct v1_rc_client_subset_t {
51
uint32_t id;
52
const char* title;
53
char badge_name[16];
54
uint32_t num_achievements;
55
uint32_t num_leaderboards;
56
} v1_rc_client_subset_t;
57
58
typedef struct v3_rc_client_subset_t {
59
uint32_t id;
60
const char* title;
61
char badge_name[16];
62
uint32_t num_achievements;
63
uint32_t num_leaderboards;
64
const char* badge_url;
65
} v3_rc_client_subset_t;
66
67
/* achievement */
68
69
typedef struct v1_rc_client_achievement_t {
70
const char* title;
71
const char* description;
72
char badge_name[8];
73
char measured_progress[24];
74
float measured_percent;
75
uint32_t id;
76
uint32_t points;
77
time_t unlock_time;
78
uint8_t state;
79
uint8_t category;
80
uint8_t bucket;
81
uint8_t unlocked;
82
float rarity;
83
float rarity_hardcore;
84
uint8_t type;
85
} v1_rc_client_achievement_t;
86
87
typedef struct v3_rc_client_achievement_t {
88
const char* title;
89
const char* description;
90
char badge_name[8];
91
char measured_progress[24];
92
float measured_percent;
93
uint32_t id;
94
uint32_t points;
95
time_t unlock_time;
96
uint8_t state;
97
uint8_t category;
98
uint8_t bucket;
99
uint8_t unlocked;
100
float rarity;
101
float rarity_hardcore;
102
uint8_t type;
103
const char* badge_url;
104
const char* badge_locked_url;
105
} v3_rc_client_achievement_t;
106
107
/* achievement list */
108
109
typedef struct v1_rc_client_achievement_bucket_t {
110
v1_rc_client_achievement_t** achievements;
111
uint32_t num_achievements;
112
113
const char* label;
114
uint32_t subset_id;
115
uint8_t bucket_type;
116
} v1_rc_client_achievement_bucket_t;
117
118
typedef struct v1_rc_client_achievement_list_t {
119
v1_rc_client_achievement_bucket_t* buckets;
120
uint32_t num_buckets;
121
} v1_rc_client_achievement_list_t;
122
123
typedef struct v1_rc_client_achievement_list_info_t {
124
v1_rc_client_achievement_list_t public_;
125
rc_client_destroy_achievement_list_func_t destroy_func;
126
} v1_rc_client_achievement_list_info_t;
127
128
typedef struct v3_rc_client_achievement_bucket_t {
129
const v3_rc_client_achievement_t** achievements;
130
uint32_t num_achievements;
131
132
const char* label;
133
uint32_t subset_id;
134
uint8_t bucket_type;
135
} v3_rc_client_achievement_bucket_t;
136
137
typedef struct v3_rc_client_achievement_list_t {
138
const v3_rc_client_achievement_bucket_t* buckets;
139
uint32_t num_buckets;
140
} v3_rc_client_achievement_list_t;
141
142
typedef struct v3_rc_client_achievement_list_info_t {
143
v3_rc_client_achievement_list_t public_;
144
rc_client_destroy_achievement_list_func_t destroy_func;
145
} v3_rc_client_achievement_list_info_t;
146
147
RC_END_C_DECLS
148
149
#endif /* RC_CLIENT_EXTERNAL_CONVERSIONS_H */
150
151