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

Method TACP

tools/extractors/common/tacp.cpp:19–118  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17uint32_t expected_tacp_crc32 = 0xfebbe39e;
18
19TACP::TACP(std::string file_name)
20{
21 auto file = fw().data->fs.open(file_name);
22
23 if (!file)
24 {
25 LogError("Failed to open \"%s\"", file_name.c_str());
26 exit(1);
27 }
28
29 auto data = file.readAll();
30 boost::crc_32_type crc;
31 crc.process_bytes(data.get(), file.size());
32
33 auto crc32 = crc.checksum();
34
35 if (crc32 != expected_tacp_crc32)
36 {
37 LogError("File \"%s\"\" has an unknown crc32 value of 0x%08x - expected 0x%08x",
38 file_name.c_str(), crc32, expected_tacp_crc32);
39 }
40
41 file.seekg(0, std::ios::beg);
42 file.clear();
43
44 // hand-filling damage mod names as they are not present in the game exe
45 {
46 auto vec = std::vector<std::string>();
47 vec.emplace_back("Human");
48 vec.emplace_back("Mutant");
49 vec.emplace_back("Android");
50 vec.emplace_back("Alien Egg");
51 vec.emplace_back("Multiworm");
52 vec.emplace_back("Hyperworm");
53 vec.emplace_back("Chrysalis");
54 vec.emplace_back("Brainsucker");
55 vec.emplace_back("Queenspawn");
56 vec.emplace_back("Anthropod");
57 vec.emplace_back("Psimorph");
58 vec.emplace_back("Spitter");
59 vec.emplace_back("Megaspawn");
60 vec.emplace_back("Popper");
61 vec.emplace_back("Skeletoid");
62 vec.emplace_back("Micronoid Aggregate");
63 vec.emplace_back("Disruptor Shield");
64 vec.emplace_back("Megapol Armor");
65 vec.emplace_back("Marsec Armor");
66 vec.emplace_back("X-COM Disruptor Armor");
67 vec.emplace_back("Terrain 1?");
68 vec.emplace_back("Terrain 2?");
69 vec.emplace_back("Gun Emplacement");
70 this->damage_modifier_names.reset(new StrTab(vec));
71 }
72
73 this->damage_type_names.reset(
74 new StrTab(file, DAMAGE_TYPE_NAMES_OFFSET_START, DAMAGE_TYPE_NAMES_OFFSET_END, true));
75
76 this->damage_types.reset(new DataChunk<DamageTypeData>(file, DAMAGE_TYPE_DATA_OFFSET_START,

Callers

nothing calls this directly

Calls 6

openMethod · 0.80
readAllMethod · 0.80
getMethod · 0.45
sizeMethod · 0.45
clearMethod · 0.45
resetMethod · 0.45

Tested by

no test coverage detected