liblcf
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
rpg_setup.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014 liblcf authors
3  * This file is released under the MIT License
4  * http://opensource.org/licenses/MIT
5  */
6 
7 #include "reader_options.h"
8 #include "rpg_actor.h"
9 #include "rpg_event.h"
10 #include "rpg_map.h"
11 #include "rpg_mapinfo.h"
12 #include "rpg_system.h"
13 #include "rpg_save.h"
14 #include "rpg_chipset.h"
15 #include "rpg_parameters.h"
16 #include "data.h"
17 
18 void RPG::SaveActor::Setup(int actor_id) {
19  const RPG::Actor& actor = Data::actors[actor_id - 1];
20  ID = actor.ID;
21  name = actor.name;
22  title = actor.title;
24  sprite_id = actor.character_index;
25  sprite_flags = actor.transparent ? 3 : 0;
26  face_name = actor.face_name;
27  face_id = actor.face_index;
28  level = actor.initial_level;
29  exp = 0;
30  hp_mod = 0;
31  sp_mod = 0;
32  attack_mod = 0;
33  defense_mod = 0;
34  spirit_mod = 0;
35  agility_mod = 0;
36  skills_size = 0;
37  skills.clear();
38  equipped.clear();
39  equipped.push_back(actor.initial_equipment.weapon_id);
40  equipped.push_back(actor.initial_equipment.shield_id);
41  equipped.push_back(actor.initial_equipment.armor_id);
42  equipped.push_back(actor.initial_equipment.helmet_id);
43  equipped.push_back(actor.initial_equipment.accessory_id);
44  current_hp = 0;
45  current_sp = 0;
47  status_size = 0;
48  status.clear();
49  changed_class = false;
50  class_id = actor.class_id;
51  row = -1;
54  auto_battle = actor.auto_battle;
55  mighty_guard = actor.super_guard;
56  unknown_60 = -1;
57 }
58 
60  party = Data::system.party;
61  party_size = party.size();
62 }
63 
65  ID = event.ID;
66  position_x = event.x;
67  position_y = event.y;
68 }
69 
71  position_x = 0;
72  position_y = 0;
73  lower_tiles.resize(144);
74  upper_tiles.resize(144);
75  for (int i = 0; i < 144; i++) {
76  lower_tiles[i] = i;
77  upper_tiles[i] = i;
78  }
79 }
80 
82  chipset_id = map.chipset_id;
83  parallax_name = map.parallax_name;
84  parallax_horz = map.parallax_loop_x;
85  parallax_vert = map.parallax_loop_y;
86  parallax_horz_auto = map.parallax_auto_loop_x;
87  parallax_vert_auto = map.parallax_auto_loop_y;
88  parallax_horz_speed = map.parallax_sx;
89  parallax_vert_speed = map.parallax_sy;
90 }
91 
92 void RPG::SaveMapInfo::Setup(const RPG::MapInfo& map_info) {
93  encounter_rate = map_info.encounter_steps;
94 }
95 
98  screen = 0;
99  frame_count = 0;
100  graphics_name = system.system_name;
101  switches_size = Data::switches.size();
102  switches.clear();
103  switches.resize(switches_size);
104  variables_size = Data::variables.size();
105  variables.clear();
106  variables.resize(variables_size);
107  face_name = "";
108  face_id = -1;
109  face_right = false;
110  face_flip = false;
111  transparent = false;
112  unknown_3d = -1;
113  title_music = system.title_music;
114  battle_music = system.battle_music;
115  battle_end_music = system.battle_end_music;
116  inn_music = system.inn_music;
117  // current_music
118  // unknown1_music FIXME
119  // unknown2_music FIXME
120  // stored_music
121  boat_music = system.boat_music;
122  ship_music = system.ship_music;
123  airship_music = system.airship_music;
124  gameover_music = system.gameover_music;
125  cursor_se = system.cursor_se;
126  decision_se = system.decision_se;
127  cancel_se = system.cancel_se;
128  buzzer_se = system.buzzer_se;
129  battle_se = system.battle_se;
130  escape_se = system.escape_se;
131  enemy_attack_se = system.enemy_attack_se;
132  enemy_damaged_se = system.enemy_damaged_se;
133  actor_damaged_se = system.actor_damaged_se;
134  dodge_se = system.dodge_se;
135  enemy_death_se = system.enemy_death_se;
136  item_se = system.item_se;
137  transition_out = system.transition_out;
138  transition_in = system.transition_in;
139  battle_start_fadeout = system.battle_start_fadeout;
140  battle_start_fadein = system.battle_start_fadein;
141  battle_end_fadeout = system.battle_end_fadeout;
142  battle_end_fadein = system.battle_end_fadein;
143  teleport_allowed = true;
144  escape_allowed = true;
145  save_allowed = true;
146  menu_allowed = true;
147  background = "";
148  save_count = 0;
149  save_slot = -1;
150 }
151 
153  system.Setup();
154  screen = RPG::SaveScreen();
155  pictures.clear();
156  pictures.resize(50);
157  for (int i = 1; i <= (int)pictures.size(); i++) {
158  pictures[i - 1].ID = i;
159  }
160  actors.clear();
161  actors.resize(Data::actors.size());
162  for (int i = 1; i <= (int) actors.size(); i++)
163  actors[i - 1].Setup(i);
164  map_info.Setup();
165 }
166 
168  if (Data::system.ldb_id == 2003) {
169  final_level = final_level == -1 ? 99 : final_level;
170  exp_base = exp_base == -1 ? 300 : exp_base;
171  exp_inflation = exp_inflation == -1 ? 300 : exp_inflation;
172  }
173  else {
174  final_level = final_level == -1 ? 50 : final_level;
175  exp_base = exp_base == -1 ? 30 : exp_base;
176  exp_inflation = exp_inflation == -1 ? 30 : exp_inflation;
177  }
178  parameters.Setup(final_level);
179 }
180 
182  music.name = "(OFF)";
183 }
184 
186  terrain_data.resize(162, 1);
187  passable_data_lower.resize(162, 15);
188  passable_data_upper.resize(162, 15);
189 }
190 
191 void RPG::Parameters::Setup(int final_level) {
192  maxhp.resize(final_level, 1);
193  maxsp.resize(final_level, 0);
194  attack.resize(final_level, 1);
195  defense.resize(final_level, 1);
196  spirit.resize(final_level, 1);
197  agility.resize(final_level, 1);
198 }
int battle_start_fadeout
Definition: rpg_system.h:132
std::string parallax_name
Definition: rpg_map.h:49
Sound enemy_attack_se
Definition: rpg_system.h:124
RPG::System & system
Definition: data.cpp:28
std::vector< int16_t > skills
Definition: rpg_saveactor.h:44
int initial_level
Definition: rpg_actor.h:35
std::string sprite_name
Definition: rpg_saveactor.h:30
bool parallax_loop_y
Definition: rpg_map.h:51
Sound battle_se
Definition: rpg_system.h:122
int parallax_sy
Definition: rpg_map.h:55
int battle_end_fadein
Definition: rpg_system.h:135
std::string title
Definition: rpg_actor.h:31
void Setup(int actor_id)
Definition: rpg_setup.cpp:18
int chipset_id
Definition: rpg_map.h:44
int16_t weapon_id
Definition: rpg_equipment.h:23
Sound decision_se
Definition: rpg_system.h:119
Sound enemy_damaged_se
Definition: rpg_system.h:125
int battle_start_fadein
Definition: rpg_system.h:133
Music title_music
Definition: rpg_system.h:110
Sound actor_damaged_se
Definition: rpg_system.h:126
Sound enemy_death_se
Definition: rpg_system.h:128
Sound dodge_se
Definition: rpg_system.h:127
int16_t armor_id
Definition: rpg_equipment.h:25
int transition_in
Definition: rpg_system.h:131
Sound cancel_se
Definition: rpg_system.h:120
std::vector< uint32_t > battle_commands
Definition: rpg_saveactor.h:48
bool two_swords_style
Definition: rpg_actor.h:41
int encounter_steps
Definition: rpg_mapinfo.h:60
int character_index
Definition: rpg_actor.h:33
int battle_end_fadeout
Definition: rpg_system.h:134
int parallax_sx
Definition: rpg_map.h:53
std::vector< int16_t > status
Definition: rpg_saveactor.h:50
std::string face_name
Definition: rpg_saveactor.h:33
std::string system_name
Definition: rpg_system.h:106
std::string name
Definition: rpg_saveactor.h:28
Music battle_end_music
Definition: rpg_system.h:112
void Setup(int final_level)
Definition: rpg_setup.cpp:191
void Setup()
Definition: rpg_setup.cpp:167
bool fix_equipment
Definition: rpg_actor.h:42
std::string face_name
Definition: rpg_actor.h:39
Music battle_music
Definition: rpg_system.h:111
int16_t shield_id
Definition: rpg_equipment.h:24
int class_id
Definition: rpg_actor.h:51
bool super_guard
Definition: rpg_actor.h:44
std::string title
Definition: rpg_saveactor.h:29
Music ship_music
Definition: rpg_system.h:115
bool auto_battle
Definition: rpg_actor.h:43
Music gameover_music
Definition: rpg_system.h:117
Music boat_music
Definition: rpg_system.h:114
void Setup(const RPG::Event &event)
Definition: rpg_setup.cpp:64
std::string character_name
Definition: rpg_actor.h:32
std::vector< int16_t > party
Definition: rpg_system.h:108
int16_t helmet_id
Definition: rpg_equipment.h:26
Sound buzzer_se
Definition: rpg_system.h:121
int16_t accessory_id
Definition: rpg_equipment.h:27
Music airship_music
Definition: rpg_system.h:116
bool parallax_loop_x
Definition: rpg_map.h:50
Sound escape_se
Definition: rpg_system.h:123
std::string name
Definition: rpg_actor.h:30
std::vector< RPG::Variable > & variables
Definition: data.cpp:30
int face_index
Definition: rpg_actor.h:40
void Setup()
Definition: rpg_setup.cpp:152
std::vector< int16_t > equipped
Definition: rpg_saveactor.h:45
Equipment initial_equipment
Definition: rpg_actor.h:49
Sound item_se
Definition: rpg_system.h:129
std::vector< uint32_t > battle_commands
Definition: rpg_actor.h:60
std::vector< RPG::Switch > & switches
Definition: data.cpp:29
bool parallax_auto_loop_x
Definition: rpg_map.h:52
bool parallax_auto_loop_y
Definition: rpg_map.h:54
Music inn_music
Definition: rpg_system.h:113
Sound cursor_se
Definition: rpg_system.h:118
bool transparent
Definition: rpg_actor.h:34
int transition_out
Definition: rpg_system.h:130
std::vector< RPG::Actor > & actors
Definition: data.cpp:13