OSDN Git Service

ebeddddcdd4fdbe6e385aeb8a9a28adaee9922d8
[hengbandforosx/hengbandosx.git] / src / load / birth-loader.cpp
1 #include "birth-loader.h"
2 #include "birth/quick-start.h"
3 #include "load/angband-version-comparer.h"
4 #include "load/load-util.h"
5 #include "player-ability/player-ability-types.h"
6 #include "system/angband.h"
7 #include "system/system-variables.h"
8
9 /*!
10  * @brief クイックスタート情報を読み込む / Load quick start data
11  */
12 void load_quick_start(void)
13 {
14     if (h_older_than(1, 0, 13)) {
15         previous_char.quick_ok = false;
16         return;
17     }
18
19     byte tmp8u;
20     rd_byte(&tmp8u);
21     previous_char.psex = static_cast<player_sex>(tmp8u);
22     rd_byte(&tmp8u);
23     previous_char.prace = (player_race_type)tmp8u;
24     rd_byte(&tmp8u);
25     previous_char.pclass = (player_class_type)tmp8u;
26     rd_byte(&tmp8u);
27     previous_char.pseikaku = (player_personality_type)tmp8u;
28     rd_byte(&tmp8u);
29     previous_char.realm1 = (REALM_IDX)tmp8u;
30     rd_byte(&tmp8u);
31     previous_char.realm2 = (REALM_IDX)tmp8u;
32
33     rd_s16b(&previous_char.age);
34     rd_s16b(&previous_char.ht);
35     rd_s16b(&previous_char.wt);
36     rd_s16b(&previous_char.sc);
37     rd_s32b(&previous_char.au);
38
39     for (int i = 0; i < A_MAX; i++)
40         rd_s16b(&previous_char.stat_max[i]);
41     for (int i = 0; i < A_MAX; i++)
42         rd_s16b(&previous_char.stat_max_max[i]);
43
44     for (int i = 0; i < PY_MAX_LEVEL; i++) {
45         int16_t tmp16s;
46         rd_s16b(&tmp16s);
47         previous_char.player_hp[i] = (HIT_POINT)tmp16s;
48     }
49
50     rd_s16b(&previous_char.chaos_patron);
51
52     for (int i = 0; i < 8; i++)
53         rd_s16b(&previous_char.vir_types[i]);
54
55     for (int i = 0; i < 4; i++)
56         rd_string(previous_char.history[i], sizeof(previous_char.history[i]));
57
58     rd_byte(&tmp8u);
59     rd_byte(&tmp8u);
60     previous_char.quick_ok = (bool)tmp8u;
61 }