Skip to content

Commit d8fa647

Browse files
committed
code simplification
1 parent 5574196 commit d8fa647

File tree

1 file changed

+36
-28
lines changed

1 file changed

+36
-28
lines changed

src/hero.cpp

Lines changed: 36 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1+
#include <cstddef>
12
#include <cstdlib>
23
#include <cstring>
34
#include <iostream>
45
#include <memory>
6+
#include <iostream>
7+
#include <array>
58

69
#include <fmt/format.h>
710

@@ -136,34 +139,39 @@ void hero::save(FILE *sav_file) {
136139
}
137140

138141
void hero::load(FILE *load_file, hero_type *ht, int ht_amount, float ver) {
139-
fread(&level, sizeof(level), 1, load_file);
140-
fread(&level_of_complexity, sizeof(level_of_complexity), 1, load_file);
141-
fread(&district, sizeof(district), 1, load_file);
142-
fread(&broken_jaw, sizeof(broken_jaw), 1, load_file);
143-
fread(&broken_foot, sizeof(broken_foot), 1, load_file);
144-
fread(&trn_foot, sizeof(trn_foot), 1, load_file);
145-
fread(&kick_count, sizeof(kick_count), 1, load_file);
146-
fread(&empty_kick_count, sizeof(empty_kick_count), 1, load_file);
147-
fread(&stoned, sizeof(stoned), 1, load_file);
148-
fread(&drunk, sizeof(drunk), 1, load_file);
149-
fread(&old_att, sizeof(old_att), 1, load_file);
150-
fread(&station, sizeof(station), 1, load_file);
151-
fread(&str_free, sizeof(str_free), 1, load_file);
152-
fread(&print_mode, sizeof(print_mode), 1, load_file);
153-
fread(&force, sizeof(force), 1, load_file);
154-
fread(&smart, sizeof(smart), 1, load_file);
155-
fread(&vita, sizeof(vita), 1, load_file);
156-
fread(&luck, sizeof(luck), 1, load_file);
157-
fread(&health, sizeof(health), 1, load_file);
158-
fread(&exp, sizeof(exp), 1, load_file);
159-
fread(&armo, sizeof(armo), 1, load_file);
160-
fread(&money, sizeof(money), 1, load_file);
161-
fread(&beer, sizeof(beer), 1, load_file);
162-
fread(&stuff, sizeof(stuff), 1, load_file);
163-
fread(&ciga, sizeof(ciga), 1, load_file);
164-
fread(&att1, sizeof(att1), 1, load_file);
165-
fread(&att2, sizeof(att2), 1, load_file);
166-
fread(&desc, sizeof(desc), 1, load_file);
142+
std::array<std::pair<void *, size_t>, 28> vars = {
143+
{{&level, sizeof(level)},
144+
{&level_of_complexity, sizeof(level_of_complexity)},
145+
{&district, sizeof(district)},
146+
{&broken_jaw, sizeof(broken_jaw)},
147+
{&broken_foot, sizeof(broken_foot)},
148+
{&trn_foot, sizeof(trn_foot)},
149+
{&kick_count, sizeof(kick_count)},
150+
{&empty_kick_count, sizeof(empty_kick_count)},
151+
{&stoned, sizeof(stoned)},
152+
{&drunk, sizeof(drunk)},
153+
{&old_att, sizeof(old_att)},
154+
{&station, sizeof(station)},
155+
{&str_free, sizeof(str_free)},
156+
{&print_mode, sizeof(print_mode)},
157+
{&force, sizeof(force)},
158+
{&smart, sizeof(smart)},
159+
{&vita, sizeof(vita)},
160+
{&luck, sizeof(luck)},
161+
{&health, sizeof(health)},
162+
{&exp, sizeof(exp)},
163+
{&armo, sizeof(armo)},
164+
{&money, sizeof(money)},
165+
{&beer, sizeof(beer)},
166+
{&stuff, sizeof(stuff)},
167+
{&ciga, sizeof(ciga)},
168+
{&att1, sizeof(att1)},
169+
{&att2, sizeof(att2)},
170+
{&desc, sizeof(desc)}}};
171+
172+
for (const auto& [var, size] : vars) {
173+
fread(var, size, 1, load_file);
174+
}
167175

168176
if (ver > 1.16) {
169177
if (inv != nullptr) {

0 commit comments

Comments
 (0)