Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support bit perfect reading and writing LDB, LMT, and LMU #242

Merged
merged 22 commits into from
Oct 29, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ add_library(lcf
src/generated/rpg_chipset.cpp
src/generated/rpg_mapinfo.cpp
src/generated/rpg_enums.cpp
src/generated/rpg_system.cpp
mateofio marked this conversation as resolved.
Show resolved Hide resolved
)

# C++11 is required
Expand Down
2 changes: 2 additions & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ liblcf_la_SOURCES = \
src/generated/rpg_chipset.cpp \
src/generated/rpg_mapinfo.cpp \
src/generated/rpg_enums.cpp \
src/generated/rpg_system.cpp \
src/boost/preprocessor/cat.hpp \
src/boost/preprocessor/stringize.hpp \
src/boost/preprocessor/config/config.hpp
Expand All @@ -115,6 +116,7 @@ pkginclude_HEADERS = \
src/ini.h \
src/inireader.h \
src/lcf_options.h \
src/lcf_saveopt.h \
src/ldb_reader.h \
src/lmt_reader.h \
src/lmu_reader.h \
Expand Down
4 changes: 3 additions & 1 deletion builds/vs2015/liblcf.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,7 @@
<ClCompile Include="..\..\src\generated\lsd_savevehiclelocation.cpp" />
<ClCompile Include="..\..\src\generated\rpg_chipset.cpp" />
<ClCompile Include="..\..\src\generated\rpg_mapinfo.cpp" />
<ClCompile Include="..\..\src\generated\rpg_system.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\command_codes.h" />
Expand All @@ -273,6 +274,7 @@
<ClInclude Include="..\..\src\lmt_reader.h" />
<ClInclude Include="..\..\src\lmu_reader.h" />
<ClInclude Include="..\..\src\lsd_reader.h" />
<ClInclude Include="..\..\src\lcf_saveopt.h" />
<ClInclude Include="..\..\src\reader_lcf.h" />
<ClInclude Include="..\..\src\reader_struct.h" />
<ClInclude Include="..\..\src\reader_util.h" />
Expand Down Expand Up @@ -354,4 +356,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
</Project>
2,232 changes: 1,116 additions & 1,116 deletions generator/csv/fields.csv

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions generator/csv/setup.csv
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ SaveMapInfo,void Fixup(const RPG::Map& map),
SaveSystem,void Setup(),
SaveSystem,void Fixup(),
Parameters,void Setup(int final_level),
System,void Init(),
34 changes: 32 additions & 2 deletions generator/generate.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,32 @@
}

# Additional Jinja 2 functions
def lcf_type(field, prefix=True):
if field.size == True:
if re.match(r'Count<(.*)>', field.type):
return "COUNT"
else:
return "SIZE"
if field.type == "DatabaseVersion":
return "DATABASE_VERSION"
if field.type == "EmptyBlock":
return "EMPTY"
return "TYPED"

def cpp_type(ty, prefix=True):
if ty in cpp_types:
return cpp_types[ty]

if ty == "DatabaseVersion":
return 'int32_t'

if ty == "EmptyBlock":
return 'void'

m = re.match(r'Count<(.*)>', ty)
if m:
return cpp_type(m.group(1), prefix)

m = re.match(r'Array<(.*):(.*)>', ty)
if m:
return 'std::vector<%s>' % cpp_type(m.group(1), prefix)
Expand Down Expand Up @@ -114,6 +136,11 @@ def filter_structs_without_codes(structs):
yield struct

def filter_unused_fields(fields):
for field in fields:
if field.type and field.type != "EmptyBlock":
yield field

def filter_unwritten_fields(fields):
for field in fields:
if field.type:
yield field
Expand All @@ -131,7 +158,7 @@ def struct_headers(ty, header_map):
if ty == 'String':
return ['<string>']

if ty in int_types:
if ty in int_types or ty == "DatabaseVersion":
return ['<stdint.h>']

if ty in cpp_types:
Expand Down Expand Up @@ -204,7 +231,7 @@ def get_structs(filename='structs.csv'):
return processed_result

def get_fields(filename='fields.csv'):
Field = namedtuple("Field", "name size type code default is2k3 comment")
Field = namedtuple("Field", "name size type code default presentifdefault is2k3 comment")

result = process_file(filename, Field)

Expand All @@ -219,6 +246,7 @@ def get_fields(filename='fields.csv'):
elem.type,
0 if elem.code == '' else int(elem.code, 0),
elem.default,
elem.presentifdefault,
elem.is2k3,
elem.comment)
processed_result[k].append(elem)
Expand Down Expand Up @@ -352,10 +380,12 @@ def main(argv):
headers = get_headers()

# Setup Jinja
env.filters["lcf_type"] = lcf_type
env.filters["cpp_type"] = cpp_type
env.filters["pod_default"] = pod_default
env.filters["struct_has_code"] = filter_structs_without_codes
env.filters["field_is_used"] = filter_unused_fields
env.filters["field_is_written"] = filter_unwritten_fields
env.filters["num_flags"] = num_flags
env.filters["flag_size"] = flag_size
env.filters["flag_set"] = flag_set
Expand Down
4 changes: 2 additions & 2 deletions generator/templates/reader.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
#define LCF_CURRENT_STRUCT {{ struct_name }}

LCF_STRUCT_FIELDS_BEGIN()
{%- for field in fields[struct_name]|field_is_used %}
LCF_STRUCT_{% if field.size %}SIZE{% else %}TYPED{% endif %}_FIELD({{ field.type|cpp_type }}, {{ field.name }}, {{field.is2k3}}),
{%- for field in fields[struct_name]|field_is_written %}
LCF_STRUCT_{{ field|lcf_type }}_FIELD({{ field.type|cpp_type }}, {{ field.name }}, {{field.presentifdefault}}, {{field.is2k3}}),
{%- endfor %}
LCF_STRUCT_FIELDS_END()

Expand Down
9 changes: 9 additions & 0 deletions generator/templates/rpg_header.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,15 @@
namespace RPG {
class {{ struct_name }} {
public:
{%- if struct_name == "Database" %}
std::string ldb_header;
{%- endif %}
{%- if struct_name == "TreeMap" %}
std::string lmt_header;
{%- endif %}
{%- if struct_name == "Map" %}
std::string lmu_header;
{%- endif %}
{%- if struct_name in enums %}
{%- for name, enum in enums[struct_name].items() %}
{%- if name == "Code" %}
Expand Down
66 changes: 33 additions & 33 deletions src/generated/ldb_actor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,39 +20,39 @@
#define LCF_CURRENT_STRUCT Actor

LCF_STRUCT_FIELDS_BEGIN()
LCF_STRUCT_TYPED_FIELD(std::string, name, 0),
LCF_STRUCT_TYPED_FIELD(std::string, title, 0),
LCF_STRUCT_TYPED_FIELD(std::string, character_name, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, character_index, 0),
LCF_STRUCT_TYPED_FIELD(bool, transparent, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, initial_level, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, final_level, 0),
LCF_STRUCT_TYPED_FIELD(bool, critical_hit, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, critical_hit_chance, 0),
LCF_STRUCT_TYPED_FIELD(std::string, face_name, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, face_index, 0),
LCF_STRUCT_TYPED_FIELD(bool, two_weapon, 0),
LCF_STRUCT_TYPED_FIELD(bool, lock_equipment, 0),
LCF_STRUCT_TYPED_FIELD(bool, auto_battle, 0),
LCF_STRUCT_TYPED_FIELD(bool, super_guard, 0),
LCF_STRUCT_TYPED_FIELD(RPG::Parameters, parameters, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, exp_base, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, exp_inflation, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, exp_correction, 0),
LCF_STRUCT_TYPED_FIELD(RPG::Equipment, initial_equipment, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, unarmed_animation, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, class_id, 1),
LCF_STRUCT_TYPED_FIELD(int32_t, battle_x, 1),
LCF_STRUCT_TYPED_FIELD(int32_t, battle_y, 1),
LCF_STRUCT_TYPED_FIELD(int32_t, battler_animation, 1),
LCF_STRUCT_TYPED_FIELD(std::vector<RPG::Learning>, skills, 0),
LCF_STRUCT_TYPED_FIELD(bool, rename_skill, 0),
LCF_STRUCT_TYPED_FIELD(std::string, skill_name, 0),
LCF_STRUCT_SIZE_FIELD(uint8_t, state_ranks, 0),
LCF_STRUCT_TYPED_FIELD(std::vector<uint8_t>, state_ranks, 0),
LCF_STRUCT_SIZE_FIELD(uint8_t, attribute_ranks, 0),
LCF_STRUCT_TYPED_FIELD(std::vector<uint8_t>, attribute_ranks, 0),
LCF_STRUCT_TYPED_FIELD(std::vector<int32_t>, battle_commands, 1),
LCF_STRUCT_TYPED_FIELD(std::string, name, 0, 0),
LCF_STRUCT_TYPED_FIELD(std::string, title, 0, 0),
LCF_STRUCT_TYPED_FIELD(std::string, character_name, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, character_index, 0, 0),
LCF_STRUCT_TYPED_FIELD(bool, transparent, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, initial_level, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, final_level, 0, 0),
LCF_STRUCT_TYPED_FIELD(bool, critical_hit, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, critical_hit_chance, 0, 0),
LCF_STRUCT_TYPED_FIELD(std::string, face_name, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, face_index, 0, 0),
LCF_STRUCT_TYPED_FIELD(bool, two_weapon, 0, 0),
LCF_STRUCT_TYPED_FIELD(bool, lock_equipment, 0, 0),
LCF_STRUCT_TYPED_FIELD(bool, auto_battle, 0, 0),
LCF_STRUCT_TYPED_FIELD(bool, super_guard, 0, 0),
LCF_STRUCT_TYPED_FIELD(RPG::Parameters, parameters, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, exp_base, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, exp_inflation, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, exp_correction, 0, 0),
LCF_STRUCT_TYPED_FIELD(RPG::Equipment, initial_equipment, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, unarmed_animation, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, class_id, 0, 1),
LCF_STRUCT_TYPED_FIELD(int32_t, battle_x, 0, 1),
LCF_STRUCT_TYPED_FIELD(int32_t, battle_y, 0, 1),
LCF_STRUCT_TYPED_FIELD(int32_t, battler_animation, 0, 1),
LCF_STRUCT_TYPED_FIELD(std::vector<RPG::Learning>, skills, 1, 0),
LCF_STRUCT_TYPED_FIELD(bool, rename_skill, 0, 0),
LCF_STRUCT_TYPED_FIELD(std::string, skill_name, 0, 0),
LCF_STRUCT_SIZE_FIELD(uint8_t, state_ranks, 0, 0),
LCF_STRUCT_TYPED_FIELD(std::vector<uint8_t>, state_ranks, 1, 0),
LCF_STRUCT_SIZE_FIELD(uint8_t, attribute_ranks, 0, 0),
LCF_STRUCT_TYPED_FIELD(std::vector<uint8_t>, attribute_ranks, 1, 0),
LCF_STRUCT_TYPED_FIELD(std::vector<int32_t>, battle_commands, 1, 1),
LCF_STRUCT_FIELDS_END()

#undef LCF_CURRENT_STRUCT
Expand Down
14 changes: 7 additions & 7 deletions src/generated/ldb_animation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@
#define LCF_CURRENT_STRUCT Animation

LCF_STRUCT_FIELDS_BEGIN()
LCF_STRUCT_TYPED_FIELD(std::string, name, 0),
LCF_STRUCT_TYPED_FIELD(std::string, animation_name, 0),
LCF_STRUCT_TYPED_FIELD(bool, large, 0),
LCF_STRUCT_TYPED_FIELD(std::vector<RPG::AnimationTiming>, timings, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, scope, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, position, 0),
LCF_STRUCT_TYPED_FIELD(std::vector<RPG::AnimationFrame>, frames, 0),
LCF_STRUCT_TYPED_FIELD(std::string, name, 0, 0),
LCF_STRUCT_TYPED_FIELD(std::string, animation_name, 0, 0),
LCF_STRUCT_TYPED_FIELD(bool, large, 0, 0),
LCF_STRUCT_TYPED_FIELD(std::vector<RPG::AnimationTiming>, timings, 1, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, scope, 1, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, position, 1, 0),
LCF_STRUCT_TYPED_FIELD(std::vector<RPG::AnimationFrame>, frames, 1, 0),
LCF_STRUCT_FIELDS_END()

#undef LCF_CURRENT_STRUCT
Expand Down
20 changes: 10 additions & 10 deletions src/generated/ldb_animationcelldata.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,16 @@
#define LCF_CURRENT_STRUCT AnimationCellData

LCF_STRUCT_FIELDS_BEGIN()
LCF_STRUCT_TYPED_FIELD(int32_t, valid, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, cell_id, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, x, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, y, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, zoom, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, tone_red, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, tone_green, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, tone_blue, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, tone_gray, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, transparency, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, valid, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, cell_id, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, x, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, y, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, zoom, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, tone_red, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, tone_green, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, tone_blue, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, tone_gray, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, transparency, 0, 0),
LCF_STRUCT_FIELDS_END()

#undef LCF_CURRENT_STRUCT
Expand Down
2 changes: 1 addition & 1 deletion src/generated/ldb_animationframe.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#define LCF_CURRENT_STRUCT AnimationFrame

LCF_STRUCT_FIELDS_BEGIN()
LCF_STRUCT_TYPED_FIELD(std::vector<RPG::AnimationCellData>, cells, 0),
LCF_STRUCT_TYPED_FIELD(std::vector<RPG::AnimationCellData>, cells, 1, 0),
LCF_STRUCT_FIELDS_END()

#undef LCF_CURRENT_STRUCT
Expand Down
16 changes: 8 additions & 8 deletions src/generated/ldb_animationtiming.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,14 @@
#define LCF_CURRENT_STRUCT AnimationTiming

LCF_STRUCT_FIELDS_BEGIN()
LCF_STRUCT_TYPED_FIELD(int32_t, frame, 0),
LCF_STRUCT_TYPED_FIELD(RPG::Sound, se, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, flash_scope, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, flash_red, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, flash_green, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, flash_blue, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, flash_power, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, screen_shake, 1),
LCF_STRUCT_TYPED_FIELD(int32_t, frame, 0, 0),
LCF_STRUCT_TYPED_FIELD(RPG::Sound, se, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, flash_scope, 1, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, flash_red, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, flash_green, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, flash_blue, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, flash_power, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, screen_shake, 0, 0),
LCF_STRUCT_FIELDS_END()

#undef LCF_CURRENT_STRUCT
Expand Down
14 changes: 7 additions & 7 deletions src/generated/ldb_attribute.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@
#define LCF_CURRENT_STRUCT Attribute

LCF_STRUCT_FIELDS_BEGIN()
LCF_STRUCT_TYPED_FIELD(std::string, name, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, type, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, a_rate, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, b_rate, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, c_rate, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, d_rate, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, e_rate, 0),
LCF_STRUCT_TYPED_FIELD(std::string, name, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, type, 1, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, a_rate, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, b_rate, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, c_rate, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, d_rate, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, e_rate, 0, 0),
LCF_STRUCT_FIELDS_END()

#undef LCF_CURRENT_STRUCT
Expand Down
4 changes: 2 additions & 2 deletions src/generated/ldb_battlecommand.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
#define LCF_CURRENT_STRUCT BattleCommand

LCF_STRUCT_FIELDS_BEGIN()
LCF_STRUCT_TYPED_FIELD(std::string, name, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, type, 0),
LCF_STRUCT_TYPED_FIELD(std::string, name, 1, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, type, 0, 0),
LCF_STRUCT_FIELDS_END()

#undef LCF_CURRENT_STRUCT
Expand Down
30 changes: 15 additions & 15 deletions src/generated/ldb_battlecommands.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,21 @@
#define LCF_CURRENT_STRUCT BattleCommands

LCF_STRUCT_FIELDS_BEGIN()
LCF_STRUCT_TYPED_FIELD(int32_t, placement, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, death_handler1, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, row, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, battle_type, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, unknown_09, 0),
LCF_STRUCT_TYPED_FIELD(std::vector<RPG::BattleCommand>, commands, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, death_handler2, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, death_event, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, window_size, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, transparency, 0),
LCF_STRUCT_TYPED_FIELD(bool, teleport, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, teleport_id, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, teleport_x, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, teleport_y, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, teleport_face, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, placement, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, death_handler1, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, row, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, battle_type, 0, 0),
LCF_STRUCT_TYPED_FIELD(bool, unused_display_normal_parameters, 0, 0),
LCF_STRUCT_TYPED_FIELD(std::vector<RPG::BattleCommand>, commands, 1, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, death_handler2, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, death_event, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, window_size, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, transparency, 0, 0),
LCF_STRUCT_TYPED_FIELD(bool, teleport, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, teleport_id, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, teleport_x, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, teleport_y, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, teleport_face, 0, 0),
LCF_STRUCT_FIELDS_END()

#undef LCF_CURRENT_STRUCT
Expand Down
8 changes: 4 additions & 4 deletions src/generated/ldb_battleranimation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@
#define LCF_CURRENT_STRUCT BattlerAnimation

LCF_STRUCT_FIELDS_BEGIN()
LCF_STRUCT_TYPED_FIELD(std::string, name, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, speed, 0),
LCF_STRUCT_TYPED_FIELD(std::vector<RPG::BattlerAnimationExtension>, base_data, 0),
LCF_STRUCT_TYPED_FIELD(std::vector<RPG::BattlerAnimationExtension>, weapon_data, 0),
LCF_STRUCT_TYPED_FIELD(std::string, name, 0, 0),
LCF_STRUCT_TYPED_FIELD(int32_t, speed, 0, 0),
LCF_STRUCT_TYPED_FIELD(std::vector<RPG::BattlerAnimationExtension>, base_data, 1, 0),
LCF_STRUCT_TYPED_FIELD(std::vector<RPG::BattlerAnimationExtension>, weapon_data, 1, 0),
LCF_STRUCT_FIELDS_END()

#undef LCF_CURRENT_STRUCT
Expand Down
Loading