Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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 @@ -197,6 +197,7 @@ set(LCF_HEADERS
src/lcf/data.h
src/lcf/dbarray.h
src/lcf/dbarrayalloc.h
src/lcf/dbbitarray.h
src/lcf/dbstring.h
src/lcf/encoder.h
src/lcf/enum_tags.h
Expand Down
1 change: 1 addition & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ lcfinclude_HEADERS = \
src/lcf/data.h \
src/lcf/dbarray.h \
src/lcf/dbarrayalloc.h \
src/lcf/dbbitarray.h \
src/lcf/dbstring.h \
src/lcf/encoder.h \
src/lcf/enum_tags.h \
Expand Down
28 changes: 14 additions & 14 deletions generator/csv/fields.csv
Original file line number Diff line number Diff line change
Expand Up @@ -158,10 +158,10 @@ Skill,affect_spirit,f,Boolean,0x23,False,0,0,Flag
Skill,affect_agility,f,Boolean,0x24,False,0,0,Flag
Skill,absorb_damage,f,Boolean,0x25,False,0,0,Flag
Skill,ignore_defense,f,Boolean,0x26,False,0,0,Flag
Skill,state_effects,t,Vector<Boolean>,0x29,,0,0,Integer
Skill,state_effects,f,Vector<Boolean>,0x2A,,1,0,Array - Flag
Skill,attribute_effects,t,Vector<Boolean>,0x2B,,0,0,Integer
Skill,attribute_effects,f,Vector<Boolean>,0x2C,,1,0,Array - Flag
Skill,state_effects,t,DBBitArray,0x29,,0,0,Integer
Skill,state_effects,f,DBBitArray,0x2A,,1,0,Array - Flag
Skill,attribute_effects,t,DBBitArray,0x2B,,0,0,Integer
Skill,attribute_effects,f,DBBitArray,0x2C,,1,0,Array - Flag
Skill,affect_attr_defence,f,Boolean,0x2D,False,0,0,Flag
Skill,battler_animation,f,Ref<Actor>,0x31,-1,0,1,Integer - RPG2003
Skill,battler_animation_data,f,Array<BattlerAnimationData:Ref<Actor>>,0x32,,1,1,? - RPG2003
Expand Down Expand Up @@ -215,19 +215,19 @@ Item,skill_id,f,Ref<Skill>,0x35,1,0,0,Integer
Item,switch_id,f,Ref<Switch>,0x37,1,0,0,Integer
Item,occasion_field2,f,Boolean,0x39,True,0,0,Flag
Item,occasion_battle,f,Boolean,0x3A,False,0,0,Flag
Item,actor_set,t,Vector<Boolean>,0x3D,,0,0,Integer
Item,actor_set,f,Vector<Boolean>,0x3E,,1,0,Array - Flag
Item,state_set,t,Vector<Boolean>,0x3F,,0,0,Integer
Item,state_set,f,Vector<Boolean>,0x40,,1,0,Array - Flag
Item,attribute_set,t,Vector<Boolean>,0x41,,0,0,Integer
Item,attribute_set,f,Vector<Boolean>,0x42,,1,0,Array - Flag
Item,actor_set,t,DBBitArray,0x3D,,0,0,Integer
Item,actor_set,f,DBBitArray,0x3E,,1,0,Array - Flag
Item,state_set,t,DBBitArray,0x3F,,0,0,Integer
Item,state_set,f,DBBitArray,0x40,,1,0,Array - Flag
Item,attribute_set,t,DBBitArray,0x41,,0,0,Integer
Item,attribute_set,f,DBBitArray,0x42,,1,0,Array - Flag
Item,state_chance,f,Int32,0x43,0,0,0,Integer
Item,reverse_state_effect,f,Boolean,0x44,False,0,0,Flag
Item,weapon_animation,f,Ref<Actor>,0x45,-1,0,1,Integer - RPG2003
Item,animation_data,f,Array<ItemAnimation:Ref<Actor>>,0x46,,1,1,Array - RPG2003
Item,use_skill,f,Boolean,0x47,False,0,1,Flag - RPG2003
Item,class_set,t,Vector<Boolean>,0x48,,0,1,Integer - RPG2003
Item,class_set,f,Vector<Boolean>,0x49,,1,1,Array - Flag - RPG2003
Item,class_set,t,DBBitArray,0x48,,0,1,Integer - RPG2003
Item,class_set,f,DBBitArray,0x49,,1,1,Array - Flag - RPG2003
Item,ranged_trajectory,f,Enum<Item_Trajectory>,0x4B,0,0,0,Integer
Item,ranged_target,f,Enum<Item_Target>,0x4C,0,0,0,Integer
EnemyAction,kind,f,Enum<EnemyAction_Kind>,0x01,0,1,0,Integer
Expand Down Expand Up @@ -299,8 +299,8 @@ TroopPage,event_commands,f,Vector<EventCommand>,0x0C,,1,0,Array - rpg::EventComm
Troop,name,f,DBString,0x01,'',0,0,String
Troop,members,f,Array<TroopMember>,0x02,,1,0,Array - rpg::TroopMember
Troop,auto_alignment,f,Boolean,0x03,False,0,1,Flag
Troop,terrain_set,t,Vector<Boolean>,0x04,,0,0,Integer
Troop,terrain_set,f,Vector<Boolean>,0x05,,1,0,Array - Flag
Troop,terrain_set,t,DBBitArray,0x04,,0,0,Integer
Troop,terrain_set,f,DBBitArray,0x05,,1,0,Array - Flag
Troop,appear_randomly,f,Boolean,0x06,False,0,1,Flag
Troop,pages,f,Array<TroopPage>,0x0B,,1,0,Array - rpg::TroopPage
Terrain,name,f,DBString,0x01,'',0,0,String
Expand Down
8 changes: 6 additions & 2 deletions generator/generate.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
'Int32': 'int32_t',
'String': 'std::string',
'DBString': 'DBString',
'DBBitArray': 'DBBitArray',
}

# Additional Jinja 2 functions
Expand Down Expand Up @@ -104,7 +105,7 @@ def pod_default(field):
ftype = field.type

# Not a POD, no default
if dfl == '' or dfl == '\'\'' or ftype.startswith('Vector') or ftype.startswith('Array') or ftype.startswith('DBArray'):
if dfl == '' or dfl == '\'\'' or ftype.startswith('Vector') or ftype.startswith('Array') or ftype.startswith('DBArray') or ftype.startswith('DBBitArray'):
return ""

if ftype == 'Boolean':
Expand Down Expand Up @@ -171,6 +172,9 @@ def struct_headers(ty, header_map):
if ty == 'DBString':
return ['"lcf/dbstring.h"']

if ty == 'DBBitArray':
return ['"lcf/dbbitarray.h"']

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

Expand Down Expand Up @@ -347,7 +351,7 @@ def needs_ctor(struct_name):
for method, hdrs in setup[struct_name])

def type_is_array(ty):
return re.match(r'(Vector|Array|DBArray)<(.*)>', ty)
return re.match(r'(Vector|Array|DBArray)<(.*)>', ty) or ty == "DBBitArray"

def is_monotonic_from_0(enum):
expected = 0
Expand Down
9 changes: 5 additions & 4 deletions src/generated/lcf/rpg/item.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
// Headers
#include <stdint.h>
#include <vector>
#include "lcf/dbbitarray.h"
#include "lcf/dbstring.h"
#include "lcf/enum_tags.h"
#include "lcf/rpg/itemanimation.h"
Expand Down Expand Up @@ -117,15 +118,15 @@ namespace rpg {
int32_t switch_id = 1;
bool occasion_field2 = true;
bool occasion_battle = false;
std::vector<bool> actor_set;
std::vector<bool> state_set;
std::vector<bool> attribute_set;
DBBitArray actor_set;
DBBitArray state_set;
DBBitArray attribute_set;
int32_t state_chance = 0;
bool reverse_state_effect = false;
int32_t weapon_animation = -1;
std::vector<ItemAnimation> animation_data;
bool use_skill = false;
std::vector<bool> class_set;
DBBitArray class_set;
int32_t ranged_trajectory = 0;
int32_t ranged_target = 0;
};
Expand Down
5 changes: 3 additions & 2 deletions src/generated/lcf/rpg/skill.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
// Headers
#include <stdint.h>
#include <vector>
#include "lcf/dbbitarray.h"
#include "lcf/dbstring.h"
#include "lcf/enum_tags.h"
#include "lcf/rpg/battleranimationdata.h"
Expand Down Expand Up @@ -96,8 +97,8 @@ namespace rpg {
bool affect_agility = false;
bool absorb_damage = false;
bool ignore_defense = false;
std::vector<bool> state_effects;
std::vector<bool> attribute_effects;
DBBitArray state_effects;
DBBitArray attribute_effects;
bool affect_attr_defence = false;
int32_t battler_animation = -1;
std::vector<BattlerAnimationData> battler_animation_data;
Expand Down
3 changes: 2 additions & 1 deletion src/generated/lcf/rpg/troop.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

// Headers
#include <vector>
#include "lcf/dbbitarray.h"
#include "lcf/dbstring.h"
#include "lcf/rpg/troopmember.h"
#include "lcf/rpg/trooppage.h"
Expand All @@ -31,7 +32,7 @@ namespace rpg {
DBString name;
std::vector<TroopMember> members;
bool auto_alignment = false;
std::vector<bool> terrain_set;
DBBitArray terrain_set;
bool appear_randomly = false;
std::vector<TroopPage> pages;
};
Expand Down
16 changes: 8 additions & 8 deletions src/generated/ldb_item.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -307,39 +307,39 @@ static TypedField<rpg::Item, bool> static_occasion_battle(
0,
0
);
static SizeField<rpg::Item, std::vector<bool>> static_size_actor_set(
static SizeField<rpg::Item, DBBitArray> static_size_actor_set(
&rpg::Item::actor_set,
LDB_Reader::ChunkItem::actor_set_size,
0,
0
);
static TypedField<rpg::Item, std::vector<bool>> static_actor_set(
static TypedField<rpg::Item, DBBitArray> static_actor_set(
&rpg::Item::actor_set,
LDB_Reader::ChunkItem::actor_set,
"actor_set",
1,
0
);
static SizeField<rpg::Item, std::vector<bool>> static_size_state_set(
static SizeField<rpg::Item, DBBitArray> static_size_state_set(
&rpg::Item::state_set,
LDB_Reader::ChunkItem::state_set_size,
0,
0
);
static TypedField<rpg::Item, std::vector<bool>> static_state_set(
static TypedField<rpg::Item, DBBitArray> static_state_set(
&rpg::Item::state_set,
LDB_Reader::ChunkItem::state_set,
"state_set",
1,
0
);
static SizeField<rpg::Item, std::vector<bool>> static_size_attribute_set(
static SizeField<rpg::Item, DBBitArray> static_size_attribute_set(
&rpg::Item::attribute_set,
LDB_Reader::ChunkItem::attribute_set_size,
0,
0
);
static TypedField<rpg::Item, std::vector<bool>> static_attribute_set(
static TypedField<rpg::Item, DBBitArray> static_attribute_set(
&rpg::Item::attribute_set,
LDB_Reader::ChunkItem::attribute_set,
"attribute_set",
Expand Down Expand Up @@ -381,13 +381,13 @@ static TypedField<rpg::Item, bool> static_use_skill(
0,
1
);
static SizeField<rpg::Item, std::vector<bool>> static_size_class_set(
static SizeField<rpg::Item, DBBitArray> static_size_class_set(
&rpg::Item::class_set,
LDB_Reader::ChunkItem::class_set_size,
0,
1
);
static TypedField<rpg::Item, std::vector<bool>> static_class_set(
static TypedField<rpg::Item, DBBitArray> static_class_set(
&rpg::Item::class_set,
LDB_Reader::ChunkItem::class_set,
"class_set",
Expand Down
8 changes: 4 additions & 4 deletions src/generated/ldb_skill.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -223,26 +223,26 @@ static TypedField<rpg::Skill, bool> static_ignore_defense(
0,
0
);
static SizeField<rpg::Skill, std::vector<bool>> static_size_state_effects(
static SizeField<rpg::Skill, DBBitArray> static_size_state_effects(
&rpg::Skill::state_effects,
LDB_Reader::ChunkSkill::state_effects_size,
0,
0
);
static TypedField<rpg::Skill, std::vector<bool>> static_state_effects(
static TypedField<rpg::Skill, DBBitArray> static_state_effects(
&rpg::Skill::state_effects,
LDB_Reader::ChunkSkill::state_effects,
"state_effects",
1,
0
);
static SizeField<rpg::Skill, std::vector<bool>> static_size_attribute_effects(
static SizeField<rpg::Skill, DBBitArray> static_size_attribute_effects(
&rpg::Skill::attribute_effects,
LDB_Reader::ChunkSkill::attribute_effects_size,
0,
0
);
static TypedField<rpg::Skill, std::vector<bool>> static_attribute_effects(
static TypedField<rpg::Skill, DBBitArray> static_attribute_effects(
&rpg::Skill::attribute_effects,
LDB_Reader::ChunkSkill::attribute_effects,
"attribute_effects",
Expand Down
4 changes: 2 additions & 2 deletions src/generated/ldb_troop.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,13 @@ static TypedField<rpg::Troop, bool> static_auto_alignment(
0,
1
);
static SizeField<rpg::Troop, std::vector<bool>> static_size_terrain_set(
static SizeField<rpg::Troop, DBBitArray> static_size_terrain_set(
&rpg::Troop::terrain_set,
LDB_Reader::ChunkTroop::terrain_set_size,
0,
0
);
static TypedField<rpg::Troop, std::vector<bool>> static_terrain_set(
static TypedField<rpg::Troop, DBBitArray> static_terrain_set(
&rpg::Troop::terrain_set,
LDB_Reader::ChunkTroop::terrain_set,
"terrain_set",
Expand Down
Loading