1 /* !!!! GENERATED FILE - DO NOT EDIT !!!!
2  * --------------------------------------
3  *
4  * This file is part of liblcf. Copyright (c) 2021 liblcf authors.
5  * https://github.com/EasyRPG/liblcf - https://easyrpg.org
6  *
7  * liblcf is Free/Libre Open Source Software, released under the MIT License.
8  * For the full copyright and license information, please view the COPYING
9  * file that was distributed with this source code.
10  */
11 
12 #ifndef LCF_RPG_TERMS_H
13 #define LCF_RPG_TERMS_H
14 
15 // Headers
16 #include "lcf/dbstring.h"
17 #include "lcf/context.h"
18 #include <ostream>
19 #include <type_traits>
20 
21 /**
22  * rpg::Terms class.
23  */
24 namespace lcf {
25 namespace rpg {
26 	class Terms {
27 	public:
28 		// Sentinel name used to denote that the default hardcoded term should be used.
29 		static constexpr const char* kDefaultTerm = "default_term";
30 
31 		static std::string TermOrDefault(const DBString& db_term, StringView default_term);
32 		DBString encounter;
33 		DBString special_combat;
34 		DBString escape_success;
35 		DBString escape_failure;
36 		DBString victory;
37 		DBString defeat;
38 		DBString exp_received;
39 		DBString gold_recieved_a;
40 		DBString gold_recieved_b;
41 		DBString item_recieved;
42 		DBString attacking;
43 		DBString enemy_critical;
44 		DBString actor_critical;
45 		DBString defending;
46 		DBString observing;
47 		DBString focus;
48 		DBString autodestruction;
49 		DBString enemy_escape;
50 		DBString enemy_transform;
51 		DBString enemy_damaged;
52 		DBString enemy_undamaged;
53 		DBString actor_damaged;
54 		DBString actor_undamaged;
55 		DBString skill_failure_a;
56 		DBString skill_failure_b;
57 		DBString skill_failure_c;
58 		DBString dodge;
59 		DBString use_item;
60 		DBString hp_recovery;
61 		DBString parameter_increase;
62 		DBString parameter_decrease;
63 		DBString enemy_hp_absorbed;
64 		DBString actor_hp_absorbed;
65 		DBString resistance_increase;
66 		DBString resistance_decrease;
67 		DBString level_up;
68 		DBString skill_learned;
69 		DBString battle_start;
70 		DBString miss;
71 		DBString shop_greeting1;
72 		DBString shop_regreeting1;
73 		DBString shop_buy1;
74 		DBString shop_sell1;
75 		DBString shop_leave1;
76 		DBString shop_buy_select1;
77 		DBString shop_buy_number1;
78 		DBString shop_purchased1;
79 		DBString shop_sell_select1;
80 		DBString shop_sell_number1;
81 		DBString shop_sold1;
82 		DBString shop_greeting2;
83 		DBString shop_regreeting2;
84 		DBString shop_buy2;
85 		DBString shop_sell2;
86 		DBString shop_leave2;
87 		DBString shop_buy_select2;
88 		DBString shop_buy_number2;
89 		DBString shop_purchased2;
90 		DBString shop_sell_select2;
91 		DBString shop_sell_number2;
92 		DBString shop_sold2;
93 		DBString shop_greeting3;
94 		DBString shop_regreeting3;
95 		DBString shop_buy3;
96 		DBString shop_sell3;
97 		DBString shop_leave3;
98 		DBString shop_buy_select3;
99 		DBString shop_buy_number3;
100 		DBString shop_purchased3;
101 		DBString shop_sell_select3;
102 		DBString shop_sell_number3;
103 		DBString shop_sold3;
104 		DBString inn_a_greeting_1;
105 		DBString inn_a_greeting_2;
106 		DBString inn_a_greeting_3;
107 		DBString inn_a_accept;
108 		DBString inn_a_cancel;
109 		DBString inn_b_greeting_1;
110 		DBString inn_b_greeting_2;
111 		DBString inn_b_greeting_3;
112 		DBString inn_b_accept;
113 		DBString inn_b_cancel;
114 		DBString possessed_items;
115 		DBString equipped_items;
116 		DBString gold;
117 		DBString battle_fight;
118 		DBString battle_auto;
119 		DBString battle_escape;
120 		DBString command_attack;
121 		DBString command_defend;
122 		DBString command_item;
123 		DBString command_skill;
124 		DBString menu_equipment;
125 		DBString menu_save;
126 		DBString menu_quit;
127 		DBString new_game;
128 		DBString load_game;
129 		DBString exit_game;
130 		DBString status;
131 		DBString row;
132 		DBString order;
133 		DBString wait_on;
134 		DBString wait_off;
135 		DBString level;
136 		DBString health_points;
137 		DBString spirit_points;
138 		DBString normal_status;
139 		DBString exp_short;
140 		DBString lvl_short;
141 		DBString hp_short;
142 		DBString sp_short;
143 		DBString sp_cost;
144 		DBString attack;
145 		DBString defense;
146 		DBString spirit;
147 		DBString agility;
148 		DBString weapon;
149 		DBString shield;
150 		DBString armor;
151 		DBString helmet;
152 		DBString accessory;
153 		DBString save_game_message;
154 		DBString load_game_message;
155 		DBString file;
156 		DBString exit_game_message;
157 		DBString yes;
158 		DBString no;
159 		DBString easyrpg_item_number_separator = DBString(kDefaultTerm);
160 		DBString easyrpg_skill_cost_separator = DBString(kDefaultTerm);
161 		DBString easyrpg_equipment_arrow = DBString(kDefaultTerm);
162 		DBString easyrpg_status_scene_name = DBString(kDefaultTerm);
163 		DBString easyrpg_status_scene_class = DBString(kDefaultTerm);
164 		DBString easyrpg_status_scene_title = DBString(kDefaultTerm);
165 		DBString easyrpg_status_scene_condition = DBString(kDefaultTerm);
166 		DBString easyrpg_status_scene_front = DBString(kDefaultTerm);
167 		DBString easyrpg_status_scene_back = DBString(kDefaultTerm);
168 		DBString easyrpg_order_scene_confirm = DBString(kDefaultTerm);
169 		DBString easyrpg_order_scene_redo = DBString(kDefaultTerm);
170 		DBString easyrpg_battle2k3_double_attack = DBString(kDefaultTerm);
171 		DBString easyrpg_battle2k3_defend = DBString(kDefaultTerm);
172 		DBString easyrpg_battle2k3_observe = DBString(kDefaultTerm);
173 		DBString easyrpg_battle2k3_charge = DBString(kDefaultTerm);
174 		DBString easyrpg_battle2k3_selfdestruct = DBString(kDefaultTerm);
175 		DBString easyrpg_battle2k3_escape = DBString(kDefaultTerm);
176 		DBString easyrpg_battle2k3_special_combat_back;
177 		DBString easyrpg_battle2k3_skill = DBString(kDefaultTerm);
178 		DBString easyrpg_battle2k3_item = DBString(kDefaultTerm);
179 	};
180 
181 	inline bool operator==(const Terms& l, const Terms& r) {
182 		return l.encounter == r.encounter
183 		&& l.special_combat == r.special_combat
184 		&& l.escape_success == r.escape_success
185 		&& l.escape_failure == r.escape_failure
186 		&& l.victory == r.victory
187 		&& l.defeat == r.defeat
188 		&& l.exp_received == r.exp_received
189 		&& l.gold_recieved_a == r.gold_recieved_a
190 		&& l.gold_recieved_b == r.gold_recieved_b
191 		&& l.item_recieved == r.item_recieved
192 		&& l.attacking == r.attacking
193 		&& l.enemy_critical == r.enemy_critical
194 		&& l.actor_critical == r.actor_critical
195 		&& l.defending == r.defending
196 		&& l.observing == r.observing
197 		&& l.focus == r.focus
198 		&& l.autodestruction == r.autodestruction
199 		&& l.enemy_escape == r.enemy_escape
200 		&& l.enemy_transform == r.enemy_transform
201 		&& l.enemy_damaged == r.enemy_damaged
202 		&& l.enemy_undamaged == r.enemy_undamaged
203 		&& l.actor_damaged == r.actor_damaged
204 		&& l.actor_undamaged == r.actor_undamaged
205 		&& l.skill_failure_a == r.skill_failure_a
206 		&& l.skill_failure_b == r.skill_failure_b
207 		&& l.skill_failure_c == r.skill_failure_c
208 		&& l.dodge == r.dodge
209 		&& l.use_item == r.use_item
210 		&& l.hp_recovery == r.hp_recovery
211 		&& l.parameter_increase == r.parameter_increase
212 		&& l.parameter_decrease == r.parameter_decrease
213 		&& l.enemy_hp_absorbed == r.enemy_hp_absorbed
214 		&& l.actor_hp_absorbed == r.actor_hp_absorbed
215 		&& l.resistance_increase == r.resistance_increase
216 		&& l.resistance_decrease == r.resistance_decrease
217 		&& l.level_up == r.level_up
218 		&& l.skill_learned == r.skill_learned
219 		&& l.battle_start == r.battle_start
220 		&& l.miss == r.miss
221 		&& l.shop_greeting1 == r.shop_greeting1
222 		&& l.shop_regreeting1 == r.shop_regreeting1
223 		&& l.shop_buy1 == r.shop_buy1
224 		&& l.shop_sell1 == r.shop_sell1
225 		&& l.shop_leave1 == r.shop_leave1
226 		&& l.shop_buy_select1 == r.shop_buy_select1
227 		&& l.shop_buy_number1 == r.shop_buy_number1
228 		&& l.shop_purchased1 == r.shop_purchased1
229 		&& l.shop_sell_select1 == r.shop_sell_select1
230 		&& l.shop_sell_number1 == r.shop_sell_number1
231 		&& l.shop_sold1 == r.shop_sold1
232 		&& l.shop_greeting2 == r.shop_greeting2
233 		&& l.shop_regreeting2 == r.shop_regreeting2
234 		&& l.shop_buy2 == r.shop_buy2
235 		&& l.shop_sell2 == r.shop_sell2
236 		&& l.shop_leave2 == r.shop_leave2
237 		&& l.shop_buy_select2 == r.shop_buy_select2
238 		&& l.shop_buy_number2 == r.shop_buy_number2
239 		&& l.shop_purchased2 == r.shop_purchased2
240 		&& l.shop_sell_select2 == r.shop_sell_select2
241 		&& l.shop_sell_number2 == r.shop_sell_number2
242 		&& l.shop_sold2 == r.shop_sold2
243 		&& l.shop_greeting3 == r.shop_greeting3
244 		&& l.shop_regreeting3 == r.shop_regreeting3
245 		&& l.shop_buy3 == r.shop_buy3
246 		&& l.shop_sell3 == r.shop_sell3
247 		&& l.shop_leave3 == r.shop_leave3
248 		&& l.shop_buy_select3 == r.shop_buy_select3
249 		&& l.shop_buy_number3 == r.shop_buy_number3
250 		&& l.shop_purchased3 == r.shop_purchased3
251 		&& l.shop_sell_select3 == r.shop_sell_select3
252 		&& l.shop_sell_number3 == r.shop_sell_number3
253 		&& l.shop_sold3 == r.shop_sold3
254 		&& l.inn_a_greeting_1 == r.inn_a_greeting_1
255 		&& l.inn_a_greeting_2 == r.inn_a_greeting_2
256 		&& l.inn_a_greeting_3 == r.inn_a_greeting_3
257 		&& l.inn_a_accept == r.inn_a_accept
258 		&& l.inn_a_cancel == r.inn_a_cancel
259 		&& l.inn_b_greeting_1 == r.inn_b_greeting_1
260 		&& l.inn_b_greeting_2 == r.inn_b_greeting_2
261 		&& l.inn_b_greeting_3 == r.inn_b_greeting_3
262 		&& l.inn_b_accept == r.inn_b_accept
263 		&& l.inn_b_cancel == r.inn_b_cancel
264 		&& l.possessed_items == r.possessed_items
265 		&& l.equipped_items == r.equipped_items
266 		&& l.gold == r.gold
267 		&& l.battle_fight == r.battle_fight
268 		&& l.battle_auto == r.battle_auto
269 		&& l.battle_escape == r.battle_escape
270 		&& l.command_attack == r.command_attack
271 		&& l.command_defend == r.command_defend
272 		&& l.command_item == r.command_item
273 		&& l.command_skill == r.command_skill
274 		&& l.menu_equipment == r.menu_equipment
275 		&& l.menu_save == r.menu_save
276 		&& l.menu_quit == r.menu_quit
277 		&& l.new_game == r.new_game
278 		&& l.load_game == r.load_game
279 		&& l.exit_game == r.exit_game
280 		&& l.status == r.status
281 		&& l.row == r.row
282 		&& l.order == r.order
283 		&& l.wait_on == r.wait_on
284 		&& l.wait_off == r.wait_off
285 		&& l.level == r.level
286 		&& l.health_points == r.health_points
287 		&& l.spirit_points == r.spirit_points
288 		&& l.normal_status == r.normal_status
289 		&& l.exp_short == r.exp_short
290 		&& l.lvl_short == r.lvl_short
291 		&& l.hp_short == r.hp_short
292 		&& l.sp_short == r.sp_short
293 		&& l.sp_cost == r.sp_cost
294 		&& l.attack == r.attack
295 		&& l.defense == r.defense
296 		&& l.spirit == r.spirit
297 		&& l.agility == r.agility
298 		&& l.weapon == r.weapon
299 		&& l.shield == r.shield
300 		&& l.armor == r.armor
301 		&& l.helmet == r.helmet
302 		&& l.accessory == r.accessory
303 		&& l.save_game_message == r.save_game_message
304 		&& l.load_game_message == r.load_game_message
305 		&& l.file == r.file
306 		&& l.exit_game_message == r.exit_game_message
307 		&& l.yes == r.yes
308 		&& l.no == r.no
309 		&& l.easyrpg_item_number_separator == r.easyrpg_item_number_separator
310 		&& l.easyrpg_skill_cost_separator == r.easyrpg_skill_cost_separator
311 		&& l.easyrpg_equipment_arrow == r.easyrpg_equipment_arrow
312 		&& l.easyrpg_status_scene_name == r.easyrpg_status_scene_name
313 		&& l.easyrpg_status_scene_class == r.easyrpg_status_scene_class
314 		&& l.easyrpg_status_scene_title == r.easyrpg_status_scene_title
315 		&& l.easyrpg_status_scene_condition == r.easyrpg_status_scene_condition
316 		&& l.easyrpg_status_scene_front == r.easyrpg_status_scene_front
317 		&& l.easyrpg_status_scene_back == r.easyrpg_status_scene_back
318 		&& l.easyrpg_order_scene_confirm == r.easyrpg_order_scene_confirm
319 		&& l.easyrpg_order_scene_redo == r.easyrpg_order_scene_redo
320 		&& l.easyrpg_battle2k3_double_attack == r.easyrpg_battle2k3_double_attack
321 		&& l.easyrpg_battle2k3_defend == r.easyrpg_battle2k3_defend
322 		&& l.easyrpg_battle2k3_observe == r.easyrpg_battle2k3_observe
323 		&& l.easyrpg_battle2k3_charge == r.easyrpg_battle2k3_charge
324 		&& l.easyrpg_battle2k3_selfdestruct == r.easyrpg_battle2k3_selfdestruct
325 		&& l.easyrpg_battle2k3_escape == r.easyrpg_battle2k3_escape
326 		&& l.easyrpg_battle2k3_special_combat_back == r.easyrpg_battle2k3_special_combat_back
327 		&& l.easyrpg_battle2k3_skill == r.easyrpg_battle2k3_skill
328 		&& l.easyrpg_battle2k3_item == r.easyrpg_battle2k3_item;
329 	}
330 
331 	inline bool operator!=(const Terms& l, const Terms& r) {
332 		return !(l == r);
333 	}
334 
335 	std::ostream& operator<<(std::ostream& os, const Terms& obj);
336 
337 	template <typename F, typename ParentCtx = Context<void,void>>
338 	void ForEachString(Terms& obj, const F& f, const ParentCtx* parent_ctx = nullptr) {
339 		const auto ctx1 = Context<Terms, ParentCtx>{ "encounter", -1, &obj, parent_ctx };
340 		f(obj.encounter, ctx1);
341 		const auto ctx2 = Context<Terms, ParentCtx>{ "special_combat", -1, &obj, parent_ctx };
342 		f(obj.special_combat, ctx2);
343 		const auto ctx3 = Context<Terms, ParentCtx>{ "escape_success", -1, &obj, parent_ctx };
344 		f(obj.escape_success, ctx3);
345 		const auto ctx4 = Context<Terms, ParentCtx>{ "escape_failure", -1, &obj, parent_ctx };
346 		f(obj.escape_failure, ctx4);
347 		const auto ctx5 = Context<Terms, ParentCtx>{ "victory", -1, &obj, parent_ctx };
348 		f(obj.victory, ctx5);
349 		const auto ctx6 = Context<Terms, ParentCtx>{ "defeat", -1, &obj, parent_ctx };
350 		f(obj.defeat, ctx6);
351 		const auto ctx7 = Context<Terms, ParentCtx>{ "exp_received", -1, &obj, parent_ctx };
352 		f(obj.exp_received, ctx7);
353 		const auto ctx8 = Context<Terms, ParentCtx>{ "gold_recieved_a", -1, &obj, parent_ctx };
354 		f(obj.gold_recieved_a, ctx8);
355 		const auto ctx9 = Context<Terms, ParentCtx>{ "gold_recieved_b", -1, &obj, parent_ctx };
356 		f(obj.gold_recieved_b, ctx9);
357 		const auto ctx10 = Context<Terms, ParentCtx>{ "item_recieved", -1, &obj, parent_ctx };
358 		f(obj.item_recieved, ctx10);
359 		const auto ctx11 = Context<Terms, ParentCtx>{ "attacking", -1, &obj, parent_ctx };
360 		f(obj.attacking, ctx11);
361 		const auto ctx12 = Context<Terms, ParentCtx>{ "enemy_critical", -1, &obj, parent_ctx };
362 		f(obj.enemy_critical, ctx12);
363 		const auto ctx13 = Context<Terms, ParentCtx>{ "actor_critical", -1, &obj, parent_ctx };
364 		f(obj.actor_critical, ctx13);
365 		const auto ctx14 = Context<Terms, ParentCtx>{ "defending", -1, &obj, parent_ctx };
366 		f(obj.defending, ctx14);
367 		const auto ctx15 = Context<Terms, ParentCtx>{ "observing", -1, &obj, parent_ctx };
368 		f(obj.observing, ctx15);
369 		const auto ctx16 = Context<Terms, ParentCtx>{ "focus", -1, &obj, parent_ctx };
370 		f(obj.focus, ctx16);
371 		const auto ctx17 = Context<Terms, ParentCtx>{ "autodestruction", -1, &obj, parent_ctx };
372 		f(obj.autodestruction, ctx17);
373 		const auto ctx18 = Context<Terms, ParentCtx>{ "enemy_escape", -1, &obj, parent_ctx };
374 		f(obj.enemy_escape, ctx18);
375 		const auto ctx19 = Context<Terms, ParentCtx>{ "enemy_transform", -1, &obj, parent_ctx };
376 		f(obj.enemy_transform, ctx19);
377 		const auto ctx20 = Context<Terms, ParentCtx>{ "enemy_damaged", -1, &obj, parent_ctx };
378 		f(obj.enemy_damaged, ctx20);
379 		const auto ctx21 = Context<Terms, ParentCtx>{ "enemy_undamaged", -1, &obj, parent_ctx };
380 		f(obj.enemy_undamaged, ctx21);
381 		const auto ctx22 = Context<Terms, ParentCtx>{ "actor_damaged", -1, &obj, parent_ctx };
382 		f(obj.actor_damaged, ctx22);
383 		const auto ctx23 = Context<Terms, ParentCtx>{ "actor_undamaged", -1, &obj, parent_ctx };
384 		f(obj.actor_undamaged, ctx23);
385 		const auto ctx24 = Context<Terms, ParentCtx>{ "skill_failure_a", -1, &obj, parent_ctx };
386 		f(obj.skill_failure_a, ctx24);
387 		const auto ctx25 = Context<Terms, ParentCtx>{ "skill_failure_b", -1, &obj, parent_ctx };
388 		f(obj.skill_failure_b, ctx25);
389 		const auto ctx26 = Context<Terms, ParentCtx>{ "skill_failure_c", -1, &obj, parent_ctx };
390 		f(obj.skill_failure_c, ctx26);
391 		const auto ctx27 = Context<Terms, ParentCtx>{ "dodge", -1, &obj, parent_ctx };
392 		f(obj.dodge, ctx27);
393 		const auto ctx28 = Context<Terms, ParentCtx>{ "use_item", -1, &obj, parent_ctx };
394 		f(obj.use_item, ctx28);
395 		const auto ctx29 = Context<Terms, ParentCtx>{ "hp_recovery", -1, &obj, parent_ctx };
396 		f(obj.hp_recovery, ctx29);
397 		const auto ctx30 = Context<Terms, ParentCtx>{ "parameter_increase", -1, &obj, parent_ctx };
398 		f(obj.parameter_increase, ctx30);
399 		const auto ctx31 = Context<Terms, ParentCtx>{ "parameter_decrease", -1, &obj, parent_ctx };
400 		f(obj.parameter_decrease, ctx31);
401 		const auto ctx32 = Context<Terms, ParentCtx>{ "enemy_hp_absorbed", -1, &obj, parent_ctx };
402 		f(obj.enemy_hp_absorbed, ctx32);
403 		const auto ctx33 = Context<Terms, ParentCtx>{ "actor_hp_absorbed", -1, &obj, parent_ctx };
404 		f(obj.actor_hp_absorbed, ctx33);
405 		const auto ctx34 = Context<Terms, ParentCtx>{ "resistance_increase", -1, &obj, parent_ctx };
406 		f(obj.resistance_increase, ctx34);
407 		const auto ctx35 = Context<Terms, ParentCtx>{ "resistance_decrease", -1, &obj, parent_ctx };
408 		f(obj.resistance_decrease, ctx35);
409 		const auto ctx36 = Context<Terms, ParentCtx>{ "level_up", -1, &obj, parent_ctx };
410 		f(obj.level_up, ctx36);
411 		const auto ctx37 = Context<Terms, ParentCtx>{ "skill_learned", -1, &obj, parent_ctx };
412 		f(obj.skill_learned, ctx37);
413 		const auto ctx38 = Context<Terms, ParentCtx>{ "battle_start", -1, &obj, parent_ctx };
414 		f(obj.battle_start, ctx38);
415 		const auto ctx39 = Context<Terms, ParentCtx>{ "miss", -1, &obj, parent_ctx };
416 		f(obj.miss, ctx39);
417 		const auto ctx40 = Context<Terms, ParentCtx>{ "shop_greeting1", -1, &obj, parent_ctx };
418 		f(obj.shop_greeting1, ctx40);
419 		const auto ctx41 = Context<Terms, ParentCtx>{ "shop_regreeting1", -1, &obj, parent_ctx };
420 		f(obj.shop_regreeting1, ctx41);
421 		const auto ctx42 = Context<Terms, ParentCtx>{ "shop_buy1", -1, &obj, parent_ctx };
422 		f(obj.shop_buy1, ctx42);
423 		const auto ctx43 = Context<Terms, ParentCtx>{ "shop_sell1", -1, &obj, parent_ctx };
424 		f(obj.shop_sell1, ctx43);
425 		const auto ctx44 = Context<Terms, ParentCtx>{ "shop_leave1", -1, &obj, parent_ctx };
426 		f(obj.shop_leave1, ctx44);
427 		const auto ctx45 = Context<Terms, ParentCtx>{ "shop_buy_select1", -1, &obj, parent_ctx };
428 		f(obj.shop_buy_select1, ctx45);
429 		const auto ctx46 = Context<Terms, ParentCtx>{ "shop_buy_number1", -1, &obj, parent_ctx };
430 		f(obj.shop_buy_number1, ctx46);
431 		const auto ctx47 = Context<Terms, ParentCtx>{ "shop_purchased1", -1, &obj, parent_ctx };
432 		f(obj.shop_purchased1, ctx47);
433 		const auto ctx48 = Context<Terms, ParentCtx>{ "shop_sell_select1", -1, &obj, parent_ctx };
434 		f(obj.shop_sell_select1, ctx48);
435 		const auto ctx49 = Context<Terms, ParentCtx>{ "shop_sell_number1", -1, &obj, parent_ctx };
436 		f(obj.shop_sell_number1, ctx49);
437 		const auto ctx50 = Context<Terms, ParentCtx>{ "shop_sold1", -1, &obj, parent_ctx };
438 		f(obj.shop_sold1, ctx50);
439 		const auto ctx51 = Context<Terms, ParentCtx>{ "shop_greeting2", -1, &obj, parent_ctx };
440 		f(obj.shop_greeting2, ctx51);
441 		const auto ctx52 = Context<Terms, ParentCtx>{ "shop_regreeting2", -1, &obj, parent_ctx };
442 		f(obj.shop_regreeting2, ctx52);
443 		const auto ctx53 = Context<Terms, ParentCtx>{ "shop_buy2", -1, &obj, parent_ctx };
444 		f(obj.shop_buy2, ctx53);
445 		const auto ctx54 = Context<Terms, ParentCtx>{ "shop_sell2", -1, &obj, parent_ctx };
446 		f(obj.shop_sell2, ctx54);
447 		const auto ctx55 = Context<Terms, ParentCtx>{ "shop_leave2", -1, &obj, parent_ctx };
448 		f(obj.shop_leave2, ctx55);
449 		const auto ctx56 = Context<Terms, ParentCtx>{ "shop_buy_select2", -1, &obj, parent_ctx };
450 		f(obj.shop_buy_select2, ctx56);
451 		const auto ctx57 = Context<Terms, ParentCtx>{ "shop_buy_number2", -1, &obj, parent_ctx };
452 		f(obj.shop_buy_number2, ctx57);
453 		const auto ctx58 = Context<Terms, ParentCtx>{ "shop_purchased2", -1, &obj, parent_ctx };
454 		f(obj.shop_purchased2, ctx58);
455 		const auto ctx59 = Context<Terms, ParentCtx>{ "shop_sell_select2", -1, &obj, parent_ctx };
456 		f(obj.shop_sell_select2, ctx59);
457 		const auto ctx60 = Context<Terms, ParentCtx>{ "shop_sell_number2", -1, &obj, parent_ctx };
458 		f(obj.shop_sell_number2, ctx60);
459 		const auto ctx61 = Context<Terms, ParentCtx>{ "shop_sold2", -1, &obj, parent_ctx };
460 		f(obj.shop_sold2, ctx61);
461 		const auto ctx62 = Context<Terms, ParentCtx>{ "shop_greeting3", -1, &obj, parent_ctx };
462 		f(obj.shop_greeting3, ctx62);
463 		const auto ctx63 = Context<Terms, ParentCtx>{ "shop_regreeting3", -1, &obj, parent_ctx };
464 		f(obj.shop_regreeting3, ctx63);
465 		const auto ctx64 = Context<Terms, ParentCtx>{ "shop_buy3", -1, &obj, parent_ctx };
466 		f(obj.shop_buy3, ctx64);
467 		const auto ctx65 = Context<Terms, ParentCtx>{ "shop_sell3", -1, &obj, parent_ctx };
468 		f(obj.shop_sell3, ctx65);
469 		const auto ctx66 = Context<Terms, ParentCtx>{ "shop_leave3", -1, &obj, parent_ctx };
470 		f(obj.shop_leave3, ctx66);
471 		const auto ctx67 = Context<Terms, ParentCtx>{ "shop_buy_select3", -1, &obj, parent_ctx };
472 		f(obj.shop_buy_select3, ctx67);
473 		const auto ctx68 = Context<Terms, ParentCtx>{ "shop_buy_number3", -1, &obj, parent_ctx };
474 		f(obj.shop_buy_number3, ctx68);
475 		const auto ctx69 = Context<Terms, ParentCtx>{ "shop_purchased3", -1, &obj, parent_ctx };
476 		f(obj.shop_purchased3, ctx69);
477 		const auto ctx70 = Context<Terms, ParentCtx>{ "shop_sell_select3", -1, &obj, parent_ctx };
478 		f(obj.shop_sell_select3, ctx70);
479 		const auto ctx71 = Context<Terms, ParentCtx>{ "shop_sell_number3", -1, &obj, parent_ctx };
480 		f(obj.shop_sell_number3, ctx71);
481 		const auto ctx72 = Context<Terms, ParentCtx>{ "shop_sold3", -1, &obj, parent_ctx };
482 		f(obj.shop_sold3, ctx72);
483 		const auto ctx73 = Context<Terms, ParentCtx>{ "inn_a_greeting_1", -1, &obj, parent_ctx };
484 		f(obj.inn_a_greeting_1, ctx73);
485 		const auto ctx74 = Context<Terms, ParentCtx>{ "inn_a_greeting_2", -1, &obj, parent_ctx };
486 		f(obj.inn_a_greeting_2, ctx74);
487 		const auto ctx75 = Context<Terms, ParentCtx>{ "inn_a_greeting_3", -1, &obj, parent_ctx };
488 		f(obj.inn_a_greeting_3, ctx75);
489 		const auto ctx76 = Context<Terms, ParentCtx>{ "inn_a_accept", -1, &obj, parent_ctx };
490 		f(obj.inn_a_accept, ctx76);
491 		const auto ctx77 = Context<Terms, ParentCtx>{ "inn_a_cancel", -1, &obj, parent_ctx };
492 		f(obj.inn_a_cancel, ctx77);
493 		const auto ctx78 = Context<Terms, ParentCtx>{ "inn_b_greeting_1", -1, &obj, parent_ctx };
494 		f(obj.inn_b_greeting_1, ctx78);
495 		const auto ctx79 = Context<Terms, ParentCtx>{ "inn_b_greeting_2", -1, &obj, parent_ctx };
496 		f(obj.inn_b_greeting_2, ctx79);
497 		const auto ctx80 = Context<Terms, ParentCtx>{ "inn_b_greeting_3", -1, &obj, parent_ctx };
498 		f(obj.inn_b_greeting_3, ctx80);
499 		const auto ctx81 = Context<Terms, ParentCtx>{ "inn_b_accept", -1, &obj, parent_ctx };
500 		f(obj.inn_b_accept, ctx81);
501 		const auto ctx82 = Context<Terms, ParentCtx>{ "inn_b_cancel", -1, &obj, parent_ctx };
502 		f(obj.inn_b_cancel, ctx82);
503 		const auto ctx83 = Context<Terms, ParentCtx>{ "possessed_items", -1, &obj, parent_ctx };
504 		f(obj.possessed_items, ctx83);
505 		const auto ctx84 = Context<Terms, ParentCtx>{ "equipped_items", -1, &obj, parent_ctx };
506 		f(obj.equipped_items, ctx84);
507 		const auto ctx85 = Context<Terms, ParentCtx>{ "gold", -1, &obj, parent_ctx };
508 		f(obj.gold, ctx85);
509 		const auto ctx86 = Context<Terms, ParentCtx>{ "battle_fight", -1, &obj, parent_ctx };
510 		f(obj.battle_fight, ctx86);
511 		const auto ctx87 = Context<Terms, ParentCtx>{ "battle_auto", -1, &obj, parent_ctx };
512 		f(obj.battle_auto, ctx87);
513 		const auto ctx88 = Context<Terms, ParentCtx>{ "battle_escape", -1, &obj, parent_ctx };
514 		f(obj.battle_escape, ctx88);
515 		const auto ctx89 = Context<Terms, ParentCtx>{ "command_attack", -1, &obj, parent_ctx };
516 		f(obj.command_attack, ctx89);
517 		const auto ctx90 = Context<Terms, ParentCtx>{ "command_defend", -1, &obj, parent_ctx };
518 		f(obj.command_defend, ctx90);
519 		const auto ctx91 = Context<Terms, ParentCtx>{ "command_item", -1, &obj, parent_ctx };
520 		f(obj.command_item, ctx91);
521 		const auto ctx92 = Context<Terms, ParentCtx>{ "command_skill", -1, &obj, parent_ctx };
522 		f(obj.command_skill, ctx92);
523 		const auto ctx93 = Context<Terms, ParentCtx>{ "menu_equipment", -1, &obj, parent_ctx };
524 		f(obj.menu_equipment, ctx93);
525 		const auto ctx94 = Context<Terms, ParentCtx>{ "menu_save", -1, &obj, parent_ctx };
526 		f(obj.menu_save, ctx94);
527 		const auto ctx95 = Context<Terms, ParentCtx>{ "menu_quit", -1, &obj, parent_ctx };
528 		f(obj.menu_quit, ctx95);
529 		const auto ctx96 = Context<Terms, ParentCtx>{ "new_game", -1, &obj, parent_ctx };
530 		f(obj.new_game, ctx96);
531 		const auto ctx97 = Context<Terms, ParentCtx>{ "load_game", -1, &obj, parent_ctx };
532 		f(obj.load_game, ctx97);
533 		const auto ctx98 = Context<Terms, ParentCtx>{ "exit_game", -1, &obj, parent_ctx };
534 		f(obj.exit_game, ctx98);
535 		const auto ctx99 = Context<Terms, ParentCtx>{ "status", -1, &obj, parent_ctx };
536 		f(obj.status, ctx99);
537 		const auto ctx100 = Context<Terms, ParentCtx>{ "row", -1, &obj, parent_ctx };
538 		f(obj.row, ctx100);
539 		const auto ctx101 = Context<Terms, ParentCtx>{ "order", -1, &obj, parent_ctx };
540 		f(obj.order, ctx101);
541 		const auto ctx102 = Context<Terms, ParentCtx>{ "wait_on", -1, &obj, parent_ctx };
542 		f(obj.wait_on, ctx102);
543 		const auto ctx103 = Context<Terms, ParentCtx>{ "wait_off", -1, &obj, parent_ctx };
544 		f(obj.wait_off, ctx103);
545 		const auto ctx104 = Context<Terms, ParentCtx>{ "level", -1, &obj, parent_ctx };
546 		f(obj.level, ctx104);
547 		const auto ctx105 = Context<Terms, ParentCtx>{ "health_points", -1, &obj, parent_ctx };
548 		f(obj.health_points, ctx105);
549 		const auto ctx106 = Context<Terms, ParentCtx>{ "spirit_points", -1, &obj, parent_ctx };
550 		f(obj.spirit_points, ctx106);
551 		const auto ctx107 = Context<Terms, ParentCtx>{ "normal_status", -1, &obj, parent_ctx };
552 		f(obj.normal_status, ctx107);
553 		const auto ctx108 = Context<Terms, ParentCtx>{ "exp_short", -1, &obj, parent_ctx };
554 		f(obj.exp_short, ctx108);
555 		const auto ctx109 = Context<Terms, ParentCtx>{ "lvl_short", -1, &obj, parent_ctx };
556 		f(obj.lvl_short, ctx109);
557 		const auto ctx110 = Context<Terms, ParentCtx>{ "hp_short", -1, &obj, parent_ctx };
558 		f(obj.hp_short, ctx110);
559 		const auto ctx111 = Context<Terms, ParentCtx>{ "sp_short", -1, &obj, parent_ctx };
560 		f(obj.sp_short, ctx111);
561 		const auto ctx112 = Context<Terms, ParentCtx>{ "sp_cost", -1, &obj, parent_ctx };
562 		f(obj.sp_cost, ctx112);
563 		const auto ctx113 = Context<Terms, ParentCtx>{ "attack", -1, &obj, parent_ctx };
564 		f(obj.attack, ctx113);
565 		const auto ctx114 = Context<Terms, ParentCtx>{ "defense", -1, &obj, parent_ctx };
566 		f(obj.defense, ctx114);
567 		const auto ctx115 = Context<Terms, ParentCtx>{ "spirit", -1, &obj, parent_ctx };
568 		f(obj.spirit, ctx115);
569 		const auto ctx116 = Context<Terms, ParentCtx>{ "agility", -1, &obj, parent_ctx };
570 		f(obj.agility, ctx116);
571 		const auto ctx117 = Context<Terms, ParentCtx>{ "weapon", -1, &obj, parent_ctx };
572 		f(obj.weapon, ctx117);
573 		const auto ctx118 = Context<Terms, ParentCtx>{ "shield", -1, &obj, parent_ctx };
574 		f(obj.shield, ctx118);
575 		const auto ctx119 = Context<Terms, ParentCtx>{ "armor", -1, &obj, parent_ctx };
576 		f(obj.armor, ctx119);
577 		const auto ctx120 = Context<Terms, ParentCtx>{ "helmet", -1, &obj, parent_ctx };
578 		f(obj.helmet, ctx120);
579 		const auto ctx121 = Context<Terms, ParentCtx>{ "accessory", -1, &obj, parent_ctx };
580 		f(obj.accessory, ctx121);
581 		const auto ctx122 = Context<Terms, ParentCtx>{ "save_game_message", -1, &obj, parent_ctx };
582 		f(obj.save_game_message, ctx122);
583 		const auto ctx123 = Context<Terms, ParentCtx>{ "load_game_message", -1, &obj, parent_ctx };
584 		f(obj.load_game_message, ctx123);
585 		const auto ctx124 = Context<Terms, ParentCtx>{ "file", -1, &obj, parent_ctx };
586 		f(obj.file, ctx124);
587 		const auto ctx125 = Context<Terms, ParentCtx>{ "exit_game_message", -1, &obj, parent_ctx };
588 		f(obj.exit_game_message, ctx125);
589 		const auto ctx126 = Context<Terms, ParentCtx>{ "yes", -1, &obj, parent_ctx };
590 		f(obj.yes, ctx126);
591 		const auto ctx127 = Context<Terms, ParentCtx>{ "no", -1, &obj, parent_ctx };
592 		f(obj.no, ctx127);
593 		const auto ctx128 = Context<Terms, ParentCtx>{ "easyrpg_item_number_separator", -1, &obj, parent_ctx };
594 		f(obj.easyrpg_item_number_separator, ctx128);
595 		const auto ctx129 = Context<Terms, ParentCtx>{ "easyrpg_skill_cost_separator", -1, &obj, parent_ctx };
596 		f(obj.easyrpg_skill_cost_separator, ctx129);
597 		const auto ctx130 = Context<Terms, ParentCtx>{ "easyrpg_equipment_arrow", -1, &obj, parent_ctx };
598 		f(obj.easyrpg_equipment_arrow, ctx130);
599 		const auto ctx131 = Context<Terms, ParentCtx>{ "easyrpg_status_scene_name", -1, &obj, parent_ctx };
600 		f(obj.easyrpg_status_scene_name, ctx131);
601 		const auto ctx132 = Context<Terms, ParentCtx>{ "easyrpg_status_scene_class", -1, &obj, parent_ctx };
602 		f(obj.easyrpg_status_scene_class, ctx132);
603 		const auto ctx133 = Context<Terms, ParentCtx>{ "easyrpg_status_scene_title", -1, &obj, parent_ctx };
604 		f(obj.easyrpg_status_scene_title, ctx133);
605 		const auto ctx134 = Context<Terms, ParentCtx>{ "easyrpg_status_scene_condition", -1, &obj, parent_ctx };
606 		f(obj.easyrpg_status_scene_condition, ctx134);
607 		const auto ctx135 = Context<Terms, ParentCtx>{ "easyrpg_status_scene_front", -1, &obj, parent_ctx };
608 		f(obj.easyrpg_status_scene_front, ctx135);
609 		const auto ctx136 = Context<Terms, ParentCtx>{ "easyrpg_status_scene_back", -1, &obj, parent_ctx };
610 		f(obj.easyrpg_status_scene_back, ctx136);
611 		const auto ctx137 = Context<Terms, ParentCtx>{ "easyrpg_order_scene_confirm", -1, &obj, parent_ctx };
612 		f(obj.easyrpg_order_scene_confirm, ctx137);
613 		const auto ctx138 = Context<Terms, ParentCtx>{ "easyrpg_order_scene_redo", -1, &obj, parent_ctx };
614 		f(obj.easyrpg_order_scene_redo, ctx138);
615 		const auto ctx139 = Context<Terms, ParentCtx>{ "easyrpg_battle2k3_double_attack", -1, &obj, parent_ctx };
616 		f(obj.easyrpg_battle2k3_double_attack, ctx139);
617 		const auto ctx140 = Context<Terms, ParentCtx>{ "easyrpg_battle2k3_defend", -1, &obj, parent_ctx };
618 		f(obj.easyrpg_battle2k3_defend, ctx140);
619 		const auto ctx141 = Context<Terms, ParentCtx>{ "easyrpg_battle2k3_observe", -1, &obj, parent_ctx };
620 		f(obj.easyrpg_battle2k3_observe, ctx141);
621 		const auto ctx142 = Context<Terms, ParentCtx>{ "easyrpg_battle2k3_charge", -1, &obj, parent_ctx };
622 		f(obj.easyrpg_battle2k3_charge, ctx142);
623 		const auto ctx143 = Context<Terms, ParentCtx>{ "easyrpg_battle2k3_selfdestruct", -1, &obj, parent_ctx };
624 		f(obj.easyrpg_battle2k3_selfdestruct, ctx143);
625 		const auto ctx144 = Context<Terms, ParentCtx>{ "easyrpg_battle2k3_escape", -1, &obj, parent_ctx };
626 		f(obj.easyrpg_battle2k3_escape, ctx144);
627 		const auto ctx145 = Context<Terms, ParentCtx>{ "easyrpg_battle2k3_special_combat_back", -1, &obj, parent_ctx };
628 		f(obj.easyrpg_battle2k3_special_combat_back, ctx145);
629 		const auto ctx146 = Context<Terms, ParentCtx>{ "easyrpg_battle2k3_skill", -1, &obj, parent_ctx };
630 		f(obj.easyrpg_battle2k3_skill, ctx146);
631 		const auto ctx147 = Context<Terms, ParentCtx>{ "easyrpg_battle2k3_item", -1, &obj, parent_ctx };
632 		f(obj.easyrpg_battle2k3_item, ctx147);
633 		(void)obj;
634 		(void)f;
635 		(void)parent_ctx;
636 	}
637 
638 } // namespace rpg
639 } // namespace lcf
640 
641 #endif
642