@@ -131,6 +131,16 @@ func open_pxo_file(path: String, untitled_backup: bool = false, replace_empty: b
131131file .close ()
132132return
133133
134+ var first_line := file .get_line ()
135+ var dict := JSON .parse (first_line )
136+ if dict .error != OK :
137+ print ("Error, corrupt pxo file" )
138+ file .close ()
139+ return
140+ if typeof (dict .result )!= TYPE_DICTIONARY :
141+ print ("Error, json parsed result is:%s " % typeof (dict .result ))
142+ file .close ()
143+ return
134144var empty_project :bool = Global .current_project .is_empty ()and replace_empty
135145var new_project :Project
136146if empty_project :
@@ -142,43 +152,31 @@ func open_pxo_file(path: String, untitled_backup: bool = false, replace_empty: b
142152else :
143153new_project = Project .new ([],path .get_file ())
144154
145- var first_line := file .get_line ()
146- var dict := JSON .parse (first_line )
147- if dict .error != OK :
148- print ("Error, corrupt pxo file" )
149- file .close ()
150- return
151- else :
152- if typeof (dict .result )!= TYPE_DICTIONARY :
153- print ("Error, json parsed result is:%s " % typeof (dict .result ))
154- file .close ()
155- return
156-
157- new_project .deserialize (dict .result )
158- for frame in new_project .frames :
159- for cel in frame .cels :
160- cel .load_image_data_from_pxo (file ,new_project .size )
161-
162- if dict .result .has ("brushes" ):
163- for brush in dict .result .brushes :
164- var b_width = brush .size_x
165- var b_height = brush .size_y
166- var buffer := file .get_buffer (b_width * b_height * 4 )
167- var image := Image .new ()
168- image .create_from_data (b_width ,b_height ,false ,Image .FORMAT_RGBA8 ,buffer )
169- new_project .brushes .append (image )
170- Brushes .add_project_brush (image )
171-
172- if dict .result .has ("tile_mask" )and dict .result .has ("has_mask" ):
173- if dict .result .has_mask :
174- var t_width = dict .result .tile_mask .size_x
175- var t_height = dict .result .tile_mask .size_y
176- var buffer := file .get_buffer (t_width * t_height * 4 )
177- var image := Image .new ()
178- image .create_from_data (t_width ,t_height ,false ,Image .FORMAT_RGBA8 ,buffer )
179- new_project .tiles .tile_mask = image
180- else :
181- new_project .tiles .reset_mask ()
155+ new_project .deserialize (dict .result )
156+ for frame in new_project .frames :
157+ for cel in frame .cels :
158+ cel .load_image_data_from_pxo (file ,new_project .size )
159+
160+ if dict .result .has ("brushes" ):
161+ for brush in dict .result .brushes :
162+ var b_width = brush .size_x
163+ var b_height = brush .size_y
164+ var buffer := file .get_buffer (b_width * b_height * 4 )
165+ var image := Image .new ()
166+ image .create_from_data (b_width ,b_height ,false ,Image .FORMAT_RGBA8 ,buffer )
167+ new_project .brushes .append (image )
168+ Brushes .add_project_brush (image )
169+
170+ if dict .result .has ("tile_mask" )and dict .result .has ("has_mask" ):
171+ if dict .result .has_mask :
172+ var t_width = dict .result .tile_mask .size_x
173+ var t_height = dict .result .tile_mask .size_y
174+ var buffer := file .get_buffer (t_width * t_height * 4 )
175+ var image := Image .new ()
176+ image .create_from_data (t_width ,t_height ,false ,Image .FORMAT_RGBA8 ,buffer )
177+ new_project .tiles .tile_mask = image
178+ else :
179+ new_project .tiles .reset_mask ()
182180
183181file .close ()
184182if empty_project :