Skip to content

Commit 76bd2f6

Browse files
author
fdelapena
authored
Merge pull request #445 from Ghabry/strpic
Add custom chunks required for ShowStringPicture
2 parents 424ebd3 + 850c687 commit 76bd2f6

29 files changed

Lines changed: 694 additions & 13 deletions

CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,10 @@ set(LCF_SOURCES
102102
src/generated/lsd_saveactor.cpp
103103
src/generated/lsd_savecommonevent.cpp
104104
src/generated/lsd_saveeasyrpgdata.cpp
105+
src/generated/lsd_saveeasyrpgtext.cpp
106+
src/generated/lsd_saveeasyrpgtext_flags.h
107+
src/generated/lsd_saveeasyrpgwindow.cpp
108+
src/generated/lsd_saveeasyrpgwindow_flags.h
105109
src/generated/lsd_saveeventexecframe.cpp
106110
src/generated/lsd_saveeventexecstate.cpp
107111
src/generated/lsd_saveinventory.cpp
@@ -155,6 +159,8 @@ set(LCF_SOURCES
155159
src/generated/rpg_saveactor.cpp
156160
src/generated/rpg_savecommonevent.cpp
157161
src/generated/rpg_saveeasyrpgdata.cpp
162+
src/generated/rpg_saveeasyrpgtext.cpp
163+
src/generated/rpg_saveeasyrpgwindow.cpp
158164
src/generated/rpg_saveeventexecframe.cpp
159165
src/generated/rpg_saveeventexecstate.cpp
160166
src/generated/rpg_saveinventory.cpp
@@ -252,6 +258,8 @@ set(LCF_HEADERS
252258
src/generated/lcf/rpg/saveactor.h
253259
src/generated/lcf/rpg/savecommonevent.h
254260
src/generated/lcf/rpg/saveeasyrpgdata.h
261+
src/generated/lcf/rpg/saveeasyrpgtext.h
262+
src/generated/lcf/rpg/saveeasyrpgwindow.h
255263
src/generated/lcf/rpg/saveeventexecframe.h
256264
src/generated/lcf/rpg/saveeventexecstate.h
257265
src/generated/lcf/rpg/saveinventory.h

Makefile.am

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,10 @@ liblcf_la_SOURCES = \
116116
src/generated/lsd_saveactor.cpp \
117117
src/generated/lsd_savecommonevent.cpp \
118118
src/generated/lsd_saveeasyrpgdata.cpp \
119+
src/generated/lsd_saveeasyrpgtext.cpp \
120+
src/generated/lsd_saveeasyrpgtext_flags.h \
121+
src/generated/lsd_saveeasyrpgwindow.cpp \
122+
src/generated/lsd_saveeasyrpgwindow_flags.h \
119123
src/generated/lsd_saveeventexecframe.cpp \
120124
src/generated/lsd_saveeventexecstate.cpp \
121125
src/generated/lsd_saveinventory.cpp \
@@ -169,6 +173,8 @@ liblcf_la_SOURCES = \
169173
src/generated/rpg_saveactor.cpp \
170174
src/generated/rpg_savecommonevent.cpp \
171175
src/generated/rpg_saveeasyrpgdata.cpp \
176+
src/generated/rpg_saveeasyrpgtext.cpp \
177+
src/generated/rpg_saveeasyrpgwindow.cpp \
172178
src/generated/rpg_saveeventexecframe.cpp \
173179
src/generated/rpg_saveeventexecstate.cpp \
174180
src/generated/rpg_saveinventory.cpp \
@@ -275,6 +281,8 @@ lcfrpginclude_HEADERS = \
275281
src/generated/lcf/rpg/saveactor.h \
276282
src/generated/lcf/rpg/savecommonevent.h \
277283
src/generated/lcf/rpg/saveeasyrpgdata.h \
284+
src/generated/lcf/rpg/saveeasyrpgtext.h \
285+
src/generated/lcf/rpg/saveeasyrpgwindow.h \
278286
src/generated/lcf/rpg/saveeventexecframe.h \
279287
src/generated/lcf/rpg/saveeventexecstate.h \
280288
src/generated/lcf/rpg/saveinventory.h \

generator/csv/enums.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,7 @@ System,FadeIn,instantaneous,20
224224
System,FadeIn,none,21
225225
System,Stretch,stretch,0
226226
System,Stretch,tiled,1
227+
System,Stretch,easyrpg_none,2
227228
System,Font,gothic,0
228229
System,Font,mincho,1
229230
System,BattleFormation,terrain,0

generator/csv/enums_easyrpg.csv

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,7 @@ SavePicture,EasyRpgFlip,none,0
3333
SavePicture,EasyRpgFlip,x,1
3434
SavePicture,EasyRpgFlip,y,2
3535
SavePicture,EasyRpgFlip,both,3
36+
SavePicture,EasyRpgType,default,0
37+
SavePicture,EasyRpgType,window,1
3638
Skill,HpType,cost,0
3739
Skill,HpType,percent,1

generator/csv/fields_easyrpg.csv

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,29 @@
11
Structure,Field,Size Field?,Type,Index,Default Value,PersistIfDefault,Is2k3,Comment
22
Save,easyrpg_data,f,SaveEasyRpgData,0xC8,,0,0,Additional save data written by EasyRPG Player
33
SaveEasyRpgData,version,,Int32,0x01,0,0,0,Savegame version
4+
SaveEasyRpgData,windows,,Array<SaveEasyRpgWindow>,0x02,,0,0,User generated windows e.g. through ShowStringPicture
45
SaveEventExecFrame,maniac_event_info,f,Ref<ManiacEventInfo>,0x0E,0,0,0,Event info bitfield
56
SaveEventExecFrame,maniac_event_id,f,Int32,0x0F,0,0,0,Event ID
67
SaveEventExecFrame,maniac_event_page_id,f,Int32,0x10,0,0,0,Page ID when it is a map event
78
SaveEventExecFrame,maniac_loop_info_size,f,Int32,0x11,0,0,0,Amount of loop info groups
89
SaveEventExecFrame,maniac_loop_info,f,Vector<Int32>,0x12,,0,0,"One group of (Current loop count, end loop value) for each identation"
910
SavePicture,easyrpg_flip,f,Enum<EasyRpgFlip>,0xC8,0,0,1,How to flip the picture
1011
SavePicture,easyrpg_blend_mode,f,Int32,0xC9,0,0,1,Blend mode to use for blit. See Bitmap::BlendMode
12+
SavePicture,easyrpg_type,f,Enum<EasyRpgPictureType>,0xCA,0,0,1,Type of this picture
13+
SaveEasyRpgWindow,texts,f,Array<SaveEasyRpgText>,0x01,,0,0,Texts to render
14+
SaveEasyRpgWindow,width,f,Int32,0x02,0,0,0,Window width (px)
15+
SaveEasyRpgWindow,height,f,Int32,0x03,0,0,0,Window height (px)
16+
SaveEasyRpgWindow,system_name,f,DBString,0x04,,0,0,
17+
SaveEasyRpgWindow,message_stretch,f,Enum<System_Stretch>,0x05,0,0,0,
18+
SaveEasyRpgWindow,flags,f,SaveEasyRpgWindow_Flags,0x06,3,0,0,Various window settings
19+
SaveEasyRpgText,text,f,DBString,0x01,,0,0,Text to render
20+
SaveEasyRpgText,position_x,f,Int32,0x02,0,0,0,
21+
SaveEasyRpgText,position_y,f,Int32,0x03,0,0,0,
22+
SaveEasyRpgText,font_name,f,DBString,0x04,,0,0,Font to use for rendering
23+
SaveEasyRpgText,font_size,f,Int32,0x05,12,0,0,Font size
24+
SaveEasyRpgText,letter_spacing,f,Int32,0x06,0,0,0,Additional spacing between letters
25+
SaveEasyRpgText,line_spacing,f,Int32,0x07,4,0,0,Additional spacing between lines
26+
SaveEasyRpgText,flags,f,SaveEasyRpgText_Flags,0x08,3,0,0,Various text settings
1127
SaveSystem,maniac_frameskip,,Int32,0x88,0,0,0,"FatalMix Frameskip (0=None, 1=1/5, 2=1/3, 3=1/2)"
1228
SaveSystem,maniac_picture_limit,,Int32,0x89,0,0,0,FatalMix Picture Limit
1329
SaveSystem,maniac_options,,Vector<UInt8>,0x8A,,0,0,"Various FatalMix options (XX XA XB XC). A: MsgSkip OFF/RShift (0/4) B: TestPlay Keep/ON/OFF (0/2/4), C: Pause focus lost Wait/Run (0/1)"

generator/csv/flags_easyrpg.csv

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Structure,Field,Is2k3
2+
SaveEasyRpgWindow,draw_frame,0
3+
SaveEasyRpgWindow,border_margin,0
4+
SaveEasyRpgText,draw_gradient,0
5+
SaveEasyRpgText,draw_shadow,0
6+
SaveEasyRpgText,bold,0
7+
SaveEasyRpgText,italic,0

generator/csv/structs_easyrpg.csv

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
Type,Structure,Base,Index available?
22
lsd,SaveEasyRpgData,,0
3+
lsd,SaveEasyRpgWindow,,1
4+
lsd,SaveEasyRpgText,,0

generator/generate.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -488,10 +488,10 @@ def main(argv):
488488
global structs, structs_flat, sfields, enums, flags, functions, constants, headers
489489
global chunk_tmpl, lcf_struct_tmpl, rpg_header_tmpl, rpg_source_tmpl, flags_tmpl, enums_tmpl, fwd_tmpl, fwd_struct_tmpl
490490

491-
structs, structs_flat = get_structs('structs.csv','structs_easyrpg.csv')
492-
sfields = get_fields('fields.csv','fields_easyrpg.csv')
493-
enums = get_enums('enums.csv','enums_easyrpg.csv')
494-
flags = get_flags('flags.csv')
491+
structs, structs_flat = get_structs('structs.csv', 'structs_easyrpg.csv')
492+
sfields = get_fields('fields.csv', 'fields_easyrpg.csv')
493+
enums = get_enums('enums.csv', 'enums_easyrpg.csv')
494+
flags = get_flags('flags.csv', 'flags_easyrpg.csv')
495495
functions = get_functions('functions.csv')
496496
constants = get_constants()
497497
headers = get_headers()

src/generated/fwd_struct_impl.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,16 @@ const char* const Struct<rpg::SaveEasyRpgData>::name;
197197
template <>
198198
Field<rpg::SaveEasyRpgData> const* Struct<rpg::SaveEasyRpgData>::fields[];
199199

200+
template <>
201+
const char* const Struct<rpg::SaveEasyRpgText>::name;
202+
template <>
203+
Field<rpg::SaveEasyRpgText> const* Struct<rpg::SaveEasyRpgText>::fields[];
204+
205+
template <>
206+
const char* const Struct<rpg::SaveEasyRpgWindow>::name;
207+
template <>
208+
Field<rpg::SaveEasyRpgWindow> const* Struct<rpg::SaveEasyRpgWindow>::fields[];
209+
200210
template <>
201211
const char* const Struct<rpg::SaveEventExecFrame>::name;
202212
template <>

src/generated/lcf/lsd/chunks.h

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,9 @@ namespace LSD_Reader {
317317
/** How to flip the picture */
318318
easyrpg_flip = 0xC8,
319319
/** Blend mode to use for blit. See Bitmap::BlendMode */
320-
easyrpg_blend_mode = 0xC9
320+
easyrpg_blend_mode = 0xC9,
321+
/** Type of this picture */
322+
easyrpg_type = 0xCA
321323
};
322324
};
323325
struct ChunkSavePartyLocation {
@@ -985,7 +987,45 @@ namespace LSD_Reader {
985987
struct ChunkSaveEasyRpgData {
986988
enum Index {
987989
/** Savegame version */
988-
version = 0x01
990+
version = 0x01,
991+
/** User generated windows e.g. through ShowStringPicture */
992+
windows = 0x02
993+
};
994+
};
995+
struct ChunkSaveEasyRpgWindow {
996+
enum Index {
997+
/** Texts to render */
998+
texts = 0x01,
999+
/** Window width (px) */
1000+
width = 0x02,
1001+
/** Window height (px) */
1002+
height = 0x03,
1003+
/** */
1004+
system_name = 0x04,
1005+
/** */
1006+
message_stretch = 0x05,
1007+
/** Various window settings */
1008+
flags = 0x06
1009+
};
1010+
};
1011+
struct ChunkSaveEasyRpgText {
1012+
enum Index {
1013+
/** Text to render */
1014+
text = 0x01,
1015+
/** */
1016+
position_x = 0x02,
1017+
/** */
1018+
position_y = 0x03,
1019+
/** Font to use for rendering */
1020+
font_name = 0x04,
1021+
/** Font size */
1022+
font_size = 0x05,
1023+
/** Additional spacing between letters */
1024+
letter_spacing = 0x06,
1025+
/** Additional spacing between lines */
1026+
line_spacing = 0x07,
1027+
/** Various text settings */
1028+
flags = 0x08
9891029
};
9901030
};
9911031
}

0 commit comments

Comments
 (0)