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

Method extractOrganisations

tools/extractors/extract_organisations.cpp:21–403  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19{
20
21void InitialGameStateExtractor::extractOrganisations(GameState &state) const
22{
23 auto &data = this->ufo2p;
24 LogInfo("Number of org strings: %zu", data.organisation_names->readStrings.size());
25 LogInfo("Number of orgs: %u", (unsigned)data.organisation_data->count());
26
27 // Organisations
28
29 for (unsigned i = 0; i < data.organisation_data->count(); i++)
30 {
31 auto o = mksp<Organisation>();
32
33 auto odata = data.organisation_data->get(i);
34 auto rdata = data.organisation_starting_relationships_data->get(i);
35
36 UString id = data.getOrgId(i);
37
38 o->name = data.organisation_names->get(i);
39 o->id = id;
40
41 auto ped = format("%s%s", UfopaediaEntry::getPrefix(),
42 canon_string(data.organisation_names->get(i)));
43 o->ufopaedia_entry = {&state, ped};
44
45 o->balance = odata.starting_funds;
46 o->income = odata.starting_funding;
47 o->tech_level = odata.starting_tech_level + 1;
48 o->average_guards = odata.average_guards;
49 o->rebuildingRate = odata.rebuilding_rate;
50
51 // "Civilian" organisation has no loot entry and icon
52 if (i == ORG_CIVILIAN)
53 {
54 for (int k = 0; k < 3; k++)
55 {
56 Organisation::LootPriority priority;
57 switch (k)
58 {
59 case 0:
60 priority = Organisation::LootPriority::A;
61 break;
62 case 1:
63 priority = Organisation::LootPriority::B;
64 break;
65 case 2:
66 priority = Organisation::LootPriority::C;
67 break;
68 }
69 for (int j = 0; j < 5; j++)
70 {
71 o->loot[priority].push_back(nullptr);
72 }
73 }
74 }
75 else
76 {
77 o->icon = fw().data->loadImage(format("PCK:xcom3/ufodata/vs_icon.pck:xcom3/ufodata/"
78 "vs_icon.tab:%d:xcom3/ufodata/pal_01.dat",

Callers 1

extractCommonMethod · 0.95

Calls 7

formatFunction · 0.85
canon_stringFunction · 0.85
getOrgIdMethod · 0.80
sizeMethod · 0.45
countMethod · 0.45
getMethod · 0.45
loadImageMethod · 0.45

Tested by

no test coverage detected