Skip to content

Commit 69bd43d

Browse files
authored
Merge pull request #213 from Ghabry/rpg2k3_1.12
Add Rpg2k3 1.12 Chunks
2 parents 8f8b9c7 + 358a712 commit 69bd43d

18 files changed

Lines changed: 193 additions & 25 deletions

.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,18 @@ CMakeFiles/
3737
*.cmake
3838
!/builds/cmake/Modules/Find*.cmake
3939
/builds/cmake/lib/
40+
/builds/cmake/*.in
41+
42+
# IntelliJ / CLion
43+
.idea/
4044

4145
# doxygen generated files
4246
/doc/
4347

48+
# Python generated files
49+
*.pyc
50+
__pycache__/
51+
4452
# other generated files
4553
Makefile
4654
*~

Makefile.am

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ liblcf_la_SOURCES = \
9797
src/generated/lsd_savemapinfo.cpp \
9898
src/generated/lsd_savepartylocation.cpp \
9999
src/generated/lsd_savepicture.cpp \
100+
src/generated/lsd_savepicture_flags.cpp \
100101
src/generated/lsd_savescreen.cpp \
101102
src/generated/lsd_savesystem.cpp \
102103
src/generated/lsd_savetarget.cpp \

builds/vs2015/liblcf.vcxproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@
257257
<ClCompile Include="..\..\src\generated\lsd_savemapinfo.cpp" />
258258
<ClCompile Include="..\..\src\generated\lsd_savepartylocation.cpp" />
259259
<ClCompile Include="..\..\src\generated\lsd_savepicture.cpp" />
260+
<ClCompile Include="..\..\src\generated\lsd_savepicture_flags.cpp" />
260261
<ClCompile Include="..\..\src\generated\lsd_savescreen.cpp" />
261262
<ClCompile Include="..\..\src\generated\lsd_savesystem.cpp" />
262263
<ClCompile Include="..\..\src\generated\lsd_savetarget.cpp" />

builds/vs2015/liblcf.vcxproj.filters

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,9 @@
374374
<ClCompile Include="..\..\src\generated\lsd_savepicture.cpp">
375375
<Filter>Source Files\LSD</Filter>
376376
</ClCompile>
377+
<ClCompile Include="..\..\src\generated\lsd_savepicture_flags.cpp">
378+
<Filter>Source Files\LSD</Filter>
379+
</ClCompile>
377380
<ClCompile Include="..\..\src\generated\lsd_savescreen.cpp">
378381
<Filter>Source Files\LSD</Filter>
379382
</ClCompile>

generator/csv/enums.csv

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,23 @@ SavePartyLocation,VehicleType,none,0
118118
SavePartyLocation,VehicleType,skiff,1
119119
SavePartyLocation,VehicleType,ship,2
120120
SavePartyLocation,VehicleType,airship,3
121+
SavePicture,MapLayer,none,0
122+
SavePicture,MapLayer,parallax,1
123+
SavePicture,MapLayer,tilemap_below,2
124+
SavePicture,MapLayer,events_below,3
125+
SavePicture,MapLayer,events_same_as_player,4
126+
SavePicture,MapLayer,tilemap_above,5
127+
SavePicture,MapLayer,events_above,6
128+
SavePicture,MapLayer,weather,7
129+
SavePicture,MapLayer,animations,8
130+
SavePicture,MapLayer,windows,9
131+
SavePicture,MapLayer,timers,10
132+
SavePicture,BattleLayer,none,0
133+
SavePicture,BattleLayer,background,1
134+
SavePicture,BattleLayer,battlers_and_animations,2
135+
SavePicture,BattleLayer,weather,3
136+
SavePicture,BattleLayer,windows_and_status,4
137+
SavePicture,BattleLayer,timers,5
121138
SaveSystem,AtbMode,atb_active,0
122139
SaveSystem,AtbMode,atb_wait,1
123140
State,Persistence,ends,0

generator/csv/fields.csv

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -759,7 +759,7 @@ SaveSystem,menu_allowed,f,Boolean,0x7C,True,
759759
SaveSystem,background,f,String,0x7D,,string
760760
SaveSystem,save_count,f,Integer,0x83,0,
761761
SaveSystem,save_slot,f,Integer,0x84,1,
762-
SaveSystem,atb_mode,f,Enum<SaveSystem_AtbMode>,0x8C,0,ATB mode of RPG 2003 battle system.
762+
SaveSystem,atb_mode,f,Enum<SaveSystem_AtbMode>,0x8C,0,ATB mode of RPG 2003 battle system.
763763
SaveScreen,tint_finish_red,f,Integer,0x01,100,int
764764
SaveScreen,tint_finish_green,f,Integer,0x02,100,int
765765
SaveScreen,tint_finish_blue,f,Integer,0x03,100,int
@@ -806,6 +806,15 @@ SavePicture,current_sat,f,Double,0x0E,-1.0,double
806806
SavePicture,effect_mode,f,Integer,0x0F,0,int
807807
SavePicture,current_effect,f,Double,0x10,0.0,double
808808
SavePicture,current_bot_trans,f,Double,0x12,0.0,double
809+
SavePicture,spritesheet_cols,f,Integer,0x13,1,Spritesheet columns
810+
SavePicture,spritesheet_rows,f,Integer,0x14,1,Spritesheet rows
811+
SavePicture,spritesheet_frame,f,Integer,0x15,0,Current spritesheet frame
812+
SavePicture,spritesheet_speed,f,Integer,0x16,0,Spritesheet speed (X frames per second)
813+
SavePicture,frames,f,Integer,0x17,0,Frames since ShowPicture
814+
SavePicture,spritesheet_play_once,f,Boolean,0x18,False,True: Play once and destroy; False: Loop spritesheet
815+
SavePicture,map_layer,f,Enum<MapLayer>,0x19,7,Layer to show picture on at the map
816+
SavePicture,battle_layer,f,Enum<BattleLayer>,0x1A,0,Layer to show picture on in battle
817+
SavePicture,flags,f,SavePicture_Flags,0x1B,97,Bitflag. Persists Map/Battle change/end; Affected by Shake/Flash/Tint
809818
SavePicture,finish_x,f,Double,0x1F,0.0,double
810819
SavePicture,finish_y,f,Double,0x20,0.0,double
811820
SavePicture,finish_magnify,f,Integer,0x21,100,int

generator/csv/flags.csv

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,10 @@ EventPageCondition,item
2020
EventPageCondition,actor
2121
EventPageCondition,timer
2222
EventPageCondition,timer2
23+
SavePicture,erase_on_map_change
24+
SavePicture,erase_on_battle_end
25+
SavePicture,unused_bit
26+
SavePicture,unused_bit2
27+
SavePicture,affected_by_tint
28+
SavePicture,affected_by_flash
29+
SavePicture,affected_by_shake

generator/generate.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,16 @@ def pod_default(field):
9292
def flag_size(flag):
9393
return (len(flag) + 7) // 8
9494

95+
def flag_set(field, bit):
96+
bit -= 1
97+
try:
98+
res = bool(int(field.default) & (1 << bit))
99+
except ValueError:
100+
# Default was not an int
101+
res = False
102+
103+
return str(res).lower()
104+
95105
def filter_structs_without_codes(structs):
96106
for struct in structs:
97107
if all(f.code for f in sfields[struct.name]):
@@ -334,6 +344,7 @@ def main(argv):
334344
env.filters["struct_has_code"] = filter_structs_without_codes
335345
env.filters["field_is_used"] = filter_unused_fields
336346
env.filters["flag_size"] = flag_size
347+
env.filters["flag_set"] = flag_set
337348
env.tests['needs_ctor'] = needs_ctor
338349

339350
globals = dict(

generator/templates/rpg_header.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ namespace RPG {
4949
{%- if field.type.endswith("_Flags") %}
5050
struct Flags {
5151
{%- for flag in flags[struct_name] %}
52-
bool {{ flag.field }};
52+
bool {{ flag.field }} = {{ field|flag_set(loop.index) }};
5353
{%- endfor %}
5454
} {{ field.name }};
5555
{%- else %}

src/generated/lsd_chunks.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,24 @@ namespace LSD_Reader {
260260
current_effect = 0x10,
261261
/** double */
262262
current_bot_trans = 0x12,
263+
/** Spritesheet columns */
264+
spritesheet_cols = 0x13,
265+
/** Spritesheet rows */
266+
spritesheet_rows = 0x14,
267+
/** Current spritesheet frame */
268+
spritesheet_frame = 0x15,
269+
/** Spritesheet speed (X frames per second) */
270+
spritesheet_speed = 0x16,
271+
/** Frames since ShowPicture */
272+
frames = 0x17,
273+
/** True: Play once and destroy; False: Loop spritesheet */
274+
spritesheet_play_once = 0x18,
275+
/** Layer to show picture on at the map */
276+
map_layer = 0x19,
277+
/** Layer to show picture on in battle */
278+
battle_layer = 0x1A,
279+
/** Bitflag. Persists Map/Battle change/end; Affected by Shake/Flash/Tint */
280+
flags = 0x1B,
263281
/** double */
264282
finish_x = 0x1F,
265283
/** double */

0 commit comments

Comments
 (0)