Skip to content

Commit 0ae491e

Browse files
committed
Add Custom Skill into saved game
1 parent 619142b commit 0ae491e

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

prboom2/src/dsda/save.c

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include "dsda/music.h"
3535
#include "dsda/options.h"
3636
#include "dsda/settings.h"
37+
#include "dsda/skill_info.h"
3738

3839
#include "save.h"
3940

@@ -142,6 +143,30 @@ static void dsda_UnArchiveContext(void) {
142143
true_basetic = gametic - true_logictic_value;
143144
}
144145

146+
skill_info_t saved_custom_skill;
147+
148+
void dsda_ArchiveCustomSkill(void)
149+
{
150+
// don't store info if normal skill
151+
if (gameskill != (num_skills - 1))
152+
return;
153+
154+
saved_custom_skill = skill_infos[num_skills - 1]; // custom skill (-1 to match gameskill)
155+
156+
P_SAVE_X(saved_custom_skill);
157+
}
158+
159+
void dsda_UnArchiveCustomSkill(void)
160+
{
161+
// don't store info if normal skill
162+
if (gameskill != (num_skills - 1))
163+
return;
164+
165+
P_LOAD_X(saved_custom_skill);
166+
167+
skill_infos[num_skills - 1] = saved_custom_skill; // custom skill (-1 to match gameskill)
168+
}
169+
145170
int saved_pistolstart, saved_respawnparm, saved_fastparm, saved_nomonsters, saved_coop_spawns;
146171

147172
void dsda_ArchiveGameModifiers(void)
@@ -191,6 +216,7 @@ void dsda_ArchiveAll(void) {
191216
P_ArchiveRNG();
192217
P_ArchiveMap();
193218

219+
dsda_ArchiveCustomSkill();
194220
dsda_ArchiveGameModifiers();
195221
dsda_ArchiveInternal();
196222
}
@@ -212,6 +238,7 @@ void dsda_UnArchiveAll(void) {
212238
P_UnArchiveMap();
213239
P_MapEnd();
214240

241+
dsda_UnArchiveCustomSkill();
215242
dsda_UnArchiveGameModifiers();
216243
dsda_UnArchiveInternal();
217244
}

0 commit comments

Comments
 (0)