2023-04-08 17:57:00 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
namespace achievements
|
|
|
|
{
|
|
|
|
enum achievement_rarity
|
|
|
|
{
|
|
|
|
ACHIEVEMENT_RARITY_0,
|
|
|
|
ACHIEVEMENT_RARITY_1,
|
|
|
|
ACHIEVEMENT_RARITY_2,
|
|
|
|
ACHIEVEMENT_RARITY_3,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum achievement_id
|
|
|
|
{
|
|
|
|
ACHIEVEMENT_ALL_ACHIEVEMENTS = 0,
|
|
|
|
ACHIEVEMENT_START = 1,
|
|
|
|
ACHIEVEMENT_1 = 1,
|
|
|
|
ACHIEVEMENT_2,
|
|
|
|
ACHIEVEMENT_3,
|
|
|
|
ACHIEVEMENT_4,
|
|
|
|
ACHIEVEMENT_5,
|
|
|
|
ACHIEVEMENT_6,
|
|
|
|
ACHIEVEMENT_7,
|
|
|
|
ACHIEVEMENT_8,
|
|
|
|
ACHIEVEMENT_9,
|
|
|
|
ACHIEVEMENT_10,
|
|
|
|
ACHIEVEMENT_11,
|
|
|
|
ACHIEVEMENT_12,
|
|
|
|
ACHIEVEMENT_13,
|
|
|
|
ACHIEVEMENT_14,
|
|
|
|
ACHIEVEMENT_15,
|
|
|
|
ACHIEVEMENT_16,
|
|
|
|
ACHIEVEMENT_17,
|
|
|
|
ACHIEVEMENT_18,
|
|
|
|
ACHIEVEMENT_19,
|
|
|
|
ACHIEVEMENT_20,
|
|
|
|
ACHIEVEMENT_21,
|
|
|
|
ACHIEVEMENT_22,
|
|
|
|
ACHIEVEMENT_23,
|
|
|
|
ACHIEVEMENT_24,
|
|
|
|
ACHIEVEMENT_25,
|
|
|
|
ACHIEVEMENT_26,
|
|
|
|
ACHIEVEMENT_27,
|
|
|
|
ACHIEVEMENT_28,
|
|
|
|
ACHIEVEMENT_29,
|
|
|
|
ACHIEVEMENT_30,
|
|
|
|
ACHIEVEMENT_31,
|
|
|
|
ACHIEVEMENT_32,
|
|
|
|
ACHIEVEMENT_33,
|
|
|
|
ACHIEVEMENT_34,
|
|
|
|
ACHIEVEMENT_35,
|
|
|
|
ACHIEVEMENT_36,
|
|
|
|
ACHIEVEMENT_37,
|
|
|
|
ACHIEVEMENT_38,
|
|
|
|
ACHIEVEMENT_39,
|
|
|
|
ACHIEVEMENT_40,
|
|
|
|
ACHIEVEMENT_41,
|
|
|
|
ACHIEVEMENT_42,
|
|
|
|
ACHIEVEMENT_43,
|
|
|
|
ACHIEVEMENT_44,
|
|
|
|
ACHIEVEMENT_45,
|
|
|
|
ACHIEVEMENT_46,
|
|
|
|
ACHIEVEMENT_47,
|
|
|
|
ACHIEVEMENT_48,
|
|
|
|
ACHIEVEMENT_49,
|
|
|
|
ACHIEVEMENT_50,
|
2023-04-14 18:43:31 +02:00
|
|
|
ACHIEVEMENT_ORIGINAL_COUNT = 51,
|
|
|
|
ACHIEVEMENT_51 = 51,
|
2023-04-08 17:57:00 +02:00
|
|
|
ACHIEVEMENT_52,
|
2023-04-14 18:43:31 +02:00
|
|
|
ACHIEVEMENT_TOTAL_COUNT,
|
2023-04-08 17:57:00 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
struct achievement_t
|
|
|
|
{
|
|
|
|
achievement_id id;
|
|
|
|
std::string_view code;
|
|
|
|
achievement_rarity rarity;
|
|
|
|
};
|
|
|
|
|
2023-04-09 19:11:54 +02:00
|
|
|
struct achievement_file_t
|
|
|
|
{
|
|
|
|
std::uint32_t signature;
|
|
|
|
std::uint8_t version;
|
2023-04-14 18:43:31 +02:00
|
|
|
bool achievements[ACHIEVEMENT_TOTAL_COUNT];
|
2023-04-09 19:11:54 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
void get_achievements(achievement_file_t* file);
|
|
|
|
|
2023-04-08 17:57:00 +02:00
|
|
|
int get_count();
|
|
|
|
bool has_achievement(int id);
|
2023-09-11 18:05:22 +02:00
|
|
|
|
2023-04-08 17:57:00 +02:00
|
|
|
std::string get_name(int id);
|
|
|
|
std::string get_details(int id);
|
2023-09-11 18:05:22 +02:00
|
|
|
std::optional<std::string> get_background(int id);
|
2023-04-08 17:57:00 +02:00
|
|
|
int get_rarity(int id);
|
|
|
|
}
|