blob: 23fc197139eb4d4e20a471e97ef45a0461d0b7e3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#include "Spoiler.h"
#include "Rando/Rando.h"
namespace Rando {
namespace Spoiler {
nlohmann::json GenerateFromSaveContext() {
nlohmann::json spoiler;
spoiler["type"] = "2S2H_RANDO_SPOILER";
spoiler["commitHash"] = gSaveContext.save.shipSaveInfo.commitHash;
spoiler["finalSeed"] = gSaveContext.save.shipSaveInfo.rando.finalSeed;
spoiler["options"] = nlohmann::json::object();
for (auto& [randoOptionId, randoStaticOption] : Rando::StaticData::Options) {
spoiler["options"][randoStaticOption.name] = RANDO_SAVE_OPTIONS[randoOptionId];
}
spoiler["startingItems"] = RANDO_STARTING_ITEMS;
spoiler["checks"] = nlohmann::json::object();
for (auto& [randoCheckId, randoStaticCheck] : Rando::StaticData::Checks) {
if (randoStaticCheck.randoCheckId == RC_UNKNOWN) {
continue;
}
if (!RANDO_SAVE_CHECKS[randoCheckId].shuffled) {
continue;
}
if (randoStaticCheck.randoCheckType == RCTYPE_SHOP || randoStaticCheck.randoCheckType == RCTYPE_TINGLE_SHOP) {
spoiler["checks"][randoStaticCheck.name] = nlohmann::json::object();
spoiler["checks"][randoStaticCheck.name]["randoItemId"] =
Rando::StaticData::Items[RANDO_SAVE_CHECKS[randoCheckId].randoItemId].spoilerName;
spoiler["checks"][randoStaticCheck.name]["price"] = RANDO_SAVE_CHECKS[randoCheckId].price;
} else {
spoiler["checks"][randoStaticCheck.name] =
Rando::StaticData::Items[RANDO_SAVE_CHECKS[randoCheckId].randoItemId].spoilerName;
}
}
return spoiler;
}
} // namespace Spoiler
} // namespace Rando
|