MCPcopy Create free account
hub / github.com/OpenApoc/OpenApoc / main

Function main

tools/serialization_tool/main.cpp:29–101  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

27 deltaGamestate("", "delta", "Only output the differences from specified parent gamestate");
28
29int main(int argc, char **argv)
30{
31 OpenApoc::config().addPositionalArgument("input1", "Input file");
32 OpenApoc::config().addPositionalArgument("input2", "Input file");
33 OpenApoc::config().addPositionalArgument("input3", "FIXME: Only 2 inputs supported right now");
34
35 if (OpenApoc::config().parseOptions(argc, argv))
36 {
37 return EXIT_FAILURE;
38 }
39
40 auto outputPath = OpenApoc::config().getString("output");
41 if (outputPath.empty())
42 {
43 std::cerr << "Must provide output path\n";
44 }
45
46 auto input1 = OpenApoc::config().getString("input1");
47 if (input1.empty())
48 {
49 std::cerr << "Must provide at least one input\n";
50 OpenApoc::config().showHelp();
51 return EXIT_FAILURE;
52 }
53 auto input2 = OpenApoc::config().getString("input2");
54 auto input3 = OpenApoc::config().getString("input3");
55 if (!input3.empty())
56 {
57 std::cerr << "Only 2 inputs are supported right now\n";
58 OpenApoc::config().showHelp();
59 return EXIT_FAILURE;
60 }
61
62 auto parentGamestate = OpenApoc::config().getString("input1");
63 auto pack = packOutput.get();
64 auto pretty = prettyOutput.get();
65
66 OpenApoc::Framework fw("OpenApoc", false);
67
68 auto state = OpenApoc::mksp<OpenApoc::GameState>();
69 if (!state->loadGame(input1))
70 {
71 LogError("Failed to load input file \"%s\"", input1);
72 return EXIT_FAILURE;
73 }
74 if (!input2.empty())
75 {
76 if (!state->loadGame(input2))
77 {
78 LogError("Failed to load second input file \"%s\"", input2);
79 return EXIT_FAILURE;
80 }
81 }
82
83 auto referenceState = OpenApoc::mksp<OpenApoc::GameState>();
84 auto deltaPath = deltaGamestate.get();
85 if (!deltaPath.empty())
86 {

Callers

nothing calls this directly

Calls 8

emptyMethod · 0.80
saveGameDeltaMethod · 0.80
addPositionalArgumentMethod · 0.45
parseOptionsMethod · 0.45
getStringMethod · 0.45
showHelpMethod · 0.45
getMethod · 0.45
loadGameMethod · 0.45

Tested by

no test coverage detected