34
34
#include "dsda/music.h"
35
35
#include "dsda/options.h"
36
36
#include "dsda/settings.h"
37
+ #include "dsda/skill_info.h"
37
38
38
39
#include "save.h"
39
40
@@ -142,6 +143,30 @@ static void dsda_UnArchiveContext(void) {
142
143
true_basetic = gametic - true_logictic_value ;
143
144
}
144
145
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
+
145
170
int saved_pistolstart , saved_respawnparm , saved_fastparm , saved_nomonsters , saved_coop_spawns ;
146
171
147
172
void dsda_ArchiveGameModifiers (void )
@@ -191,6 +216,7 @@ void dsda_ArchiveAll(void) {
191
216
P_ArchiveRNG ();
192
217
P_ArchiveMap ();
193
218
219
+ dsda_ArchiveCustomSkill ();
194
220
dsda_ArchiveGameModifiers ();
195
221
dsda_ArchiveInternal ();
196
222
}
@@ -212,6 +238,7 @@ void dsda_UnArchiveAll(void) {
212
238
P_UnArchiveMap ();
213
239
P_MapEnd ();
214
240
241
+ dsda_UnArchiveCustomSkill ();
215
242
dsda_UnArchiveGameModifiers ();
216
243
dsda_UnArchiveInternal ();
217
244
}
0 commit comments