Skip to content

Commit 6d323ca

Browse files
committed
Adds steam achievements and LB for the Mage class
1 parent 9aefed0 commit 6d323ca

File tree

3 files changed

+24
-4
lines changed

3 files changed

+24
-4
lines changed

src/main.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1086,10 +1086,13 @@ register_scores(void)
10861086
steam_set_achievement(ROGUE_LIKE);
10871087
steam_register_rogue_score((int) gPlayer->gold,
10881088
(int32_t*) &details, 1);
1089-
}
1090-
else if (gPlayer->class == WARRIOR) {
1089+
} else if (gPlayer->class == WARRIOR) {
10911090
steam_register_warrior_score((int) gPlayer->gold,
10921091
(int32_t*) &details, 1);
1092+
} else if (gPlayer->class == MAGE) {
1093+
steam_set_achievement(MAGICAL);
1094+
steam_register_mage_score((int) gPlayer->gold,
1095+
(int32_t*) &details, 1);
10931096
}
10941097
}
10951098
#endif

src/steam/steamworks_api_wrapper.c

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ static const char *LB_HIGHSCORE = "Highscore";
1212
static const char *LB_QUICKPLAY_HIGHSCORE = "Quickplay Highscore";
1313
static const char *LB_ARCADE_HIGHSCORE = "Arcade Highscore";
1414
static const char *LB_ROGUE_HIGHSCORE = "Rogue Highscore";
15+
static const char *LB_MAGE_HIGHSCORE = "Mage Highscore";
1516
static const char *LB_WARRIOR_HIGHSCORE = "Warrior Highscore";
1617
static const char *LB_KILLS = "Most Kills";
1718
static char *lb_weekly = NULL;
@@ -22,7 +23,8 @@ static Achievement g_Achievements[] = {
2223
_ACH_ID(LIGHTS_ON, "Omnidirectional light"),
2324
_ACH_ID(BACK_TO_WORK, "Back to work"),
2425
_ACH_ID(DRAGON_SLAYER, "Platinum dragon slayer"),
25-
_ACH_ID(ROGUE_LIKE, "Rogue-like")
26+
_ACH_ID(ROGUE_LIKE, "Rogue-like"),
27+
_ACH_ID(MAGICAL, "Magical")
2628
};
2729
static Uint8 numAchievements = 6;
2830

@@ -35,6 +37,7 @@ static Sint64 m_hArcadeHighscoreLeaderboard = 0;
3537
static Sint64 m_hKillsLeaderboard = 0;
3638
static Sint64 m_hRogueHighscore = 0;
3739
static Sint64 m_hWarriorHighscore = 0;
40+
static Sint64 m_hMageHighscore = 0;
3841
static Sint64 m_hWeeklyHighscore = 0;
3942

4043
static Timer *requestDataTimer = NULL;
@@ -70,6 +73,8 @@ leaderboard_received(Sint64 hLeaderboard, const char *name)
7073
m_hKillsLeaderboard = hLeaderboard;
7174
else if (strcmp(LB_ROGUE_HIGHSCORE, name) == 0)
7275
m_hRogueHighscore = hLeaderboard;
76+
else if (strcmp(LB_MAGE_HIGHSCORE, name) == 0)
77+
m_hMageHighscore = hLeaderboard;
7378
else if (strcmp(LB_WARRIOR_HIGHSCORE, name) == 0)
7479
m_hWarriorHighscore = hLeaderboard;
7580
else if (strcmp(LB_QUICKPLAY_HIGHSCORE, name) == 0)
@@ -124,6 +129,8 @@ request_data_queue_run(void)
124129
c_SteamUserStats_FindLeaderboard(LB_KILLS);
125130
else if (!m_hRogueHighscore)
126131
c_SteamUserStats_FindLeaderboard(LB_ROGUE_HIGHSCORE);
132+
else if (!m_hMageHighscore)
133+
c_SteamUserStats_FindLeaderboard(LB_MAGE_HIGHSCORE);
127134
else if (!m_hWarriorHighscore)
128135
c_SteamUserStats_FindLeaderboard(LB_WARRIOR_HIGHSCORE);
129136
else if (!m_hWeeklyHighscore)
@@ -183,6 +190,13 @@ void steam_register_arcade_score(Sint32 nScore, const int32_t * details, int32_t
183190
c_SteamUserStats_UploadLeaderboardScore(m_hArcadeHighscoreLeaderboard, nScore, details, nDetails);
184191
}
185192

193+
void steam_register_mage_score(Sint32 nScore, const int32_t * details, int32_t nDetails)
194+
{
195+
if (!m_hMageHighscore)
196+
return;
197+
c_SteamUserStats_UploadLeaderboardScore(m_hMageHighscore, nScore, details, nDetails);
198+
}
199+
186200
void steam_register_warrior_score(Sint32 nScore, const int32_t * details, int32_t nDetails)
187201
{
188202
if (!m_hWarriorHighscore)

src/steam/steamworks_api_wrapper.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ typedef enum EAchievement
1313
BUGGFIXER = 7,
1414
BUGGCREATOR = 8,
1515
ROGUE_LIKE = 9,
16-
ARCADE_HACK = 10
16+
MAGICAL = 10,
17+
ARCADE_HACK = 11
1718
} EAchievement;
1819

1920

@@ -45,6 +46,8 @@ void steam_register_weekly_score(Sint32 nScore, const int32_t *details, int32_t
4546

4647
void steam_register_arcade_score(Sint32 nScore, const int32_t *details, int32_t nDetails);
4748

49+
void steam_register_mage_score(Sint32 nScore, const int32_t *details, int32_t nDetails);
50+
4851
void steam_register_warrior_score(Sint32 nScore, const int32_t *details, int32_t nDetails);
4952

5053
void steam_register_rogue_score(Sint32 nScore, const int32_t *details, int32_t nDetails);

0 commit comments

Comments
 (0)