@@ -73,8 +73,6 @@ void EntireLevel::saveToStream(QDataStream &out)
73
73
if (Matrix->getNumsAt (i,j) != NULL )
74
74
if (Matrix->getNumsAt (i,j)->contains (k))
75
75
{
76
- // out << (int) i;
77
- // out << (int) j;
78
76
bf.append (QPoint (i,j));
79
77
}
80
78
}
@@ -131,14 +129,10 @@ void EntireLevel::loadFromStream(QDataStream &in)
131
129
in >> buf_int;
132
130
in >> buf_int;
133
131
134
- // qDeleteAll(Layers); //wywołujemy destrukotyry
135
- // Layers.clear(); //usuwamy wskaźniki
136
-
137
132
int num_layers;
138
133
in >> num_layers;
139
134
140
135
qDebug () << " Load, layers count: " << num_layers;
141
- // ui->cbSelectLayer->clear();
142
136
int maxx = 0 ,maxy = 0 ;
143
137
for (int k=0 ; k<num_layers; k++ )
144
138
{
@@ -148,7 +142,6 @@ void EntireLevel::loadFromStream(QDataStream &in)
148
142
Layers[k]->setWorldSize (buf_int,buf_int2);
149
143
if (maxx < buf_int) maxx = buf_int;
150
144
if (maxy < buf_int2) maxy = buf_int2;
151
- // ui->cbSelectLayer->addItem(QString::number(k+1));
152
145
for (int j=0 ; j<Layers[k]->getSizeY (); j++)
153
146
for (int i=0 ; i<Layers[k]->getSizeX (); i++)
154
147
{
@@ -166,7 +159,6 @@ void EntireLevel::loadFromStream(QDataStream &in)
166
159
in >> buf_str;
167
160
in >> buf_str2;
168
161
Matrix->createNewEvent (buf_str,buf_str2);
169
- // ui->lwEventList->addItem( buf_str );
170
162
in >> buf_int2;
171
163
for (int i=0 ;i<buf_int2;i++)
172
164
{
@@ -180,6 +172,98 @@ void EntireLevel::loadFromStream(QDataStream &in)
180
172
in >> buf_int;
181
173
}
182
174
175
+ void saveJson (QJsonDocument document, QString fileName) {
176
+ QFile jsonFile (fileName);
177
+ jsonFile.open (QFile::WriteOnly);
178
+ jsonFile.write (document.toJson (QJsonDocument::Compact));
179
+ jsonFile.close ();
180
+ }
181
+
182
+ void EntireLevel::saveToJSON (QString FileName)
183
+ {
184
+ QJsonObject jObj;
185
+
186
+ jObj[" level-name" ] = Name;
187
+ jObj[" tile-sizeX" ] = Buffer->getTileSizeX ();
188
+ jObj[" tile-sizeY" ] = Buffer->getTileSizeY ();
189
+
190
+ QJsonArray jAnim;
191
+ for (int i=0 ; i<AnimBuffer->Animations .size (); i++)
192
+ {
193
+ QJsonObject j;
194
+ QJsonArray f;
195
+ j[" is-ping-pong" ] = AnimBuffer->Animations [i].isPingPong ;
196
+ j[" fps" ] = AnimBuffer->Animations [i].Fps ;
197
+ for (int j=0 ;j<AnimBuffer->Animations [i].Frames .size (); j++)
198
+ {
199
+ f.append ( AnimBuffer->Animations [i].Frames [j] );
200
+ }
201
+ j[" frames" ] = f;
202
+ jAnim.append (j);
203
+ }
204
+
205
+ QJsonArray jLay;
206
+ for (int k=0 ; k<Layers.size (); k++ )
207
+ {
208
+ QJsonObject j;
209
+ QJsonArray ty;
210
+ j[" sizeX" ] = Layers[k]->getSizeX ();
211
+ j[" sizeY" ] = Layers[k]->getSizeY ();
212
+ for (int j=0 ; j<Layers[k]->getSizeY (); j++)
213
+ {
214
+ QJsonArray tx;
215
+ for (int i=0 ; i<Layers[k]->getSizeX (); i++)
216
+ {
217
+ tx.append ( Layers[k]->getTileAt (i,j) );
218
+ }
219
+ ty.append ( tx );
220
+ }
221
+ j[" tiles" ] = ty;
222
+ jLay.append (j);
223
+ }
224
+
225
+ QVector<QPoint> bf;
226
+ QJsonArray jEve;
227
+ for (int k=0 ;k<Matrix->getCount ();k++)
228
+ {
229
+ for (int j=0 ; j<Matrix->getSizeY (); j++)
230
+ {
231
+ for (int i=0 ; i<Matrix->getSizeX (); i++)
232
+ {
233
+ if (Matrix->getNumsAt (i,j) != NULL )
234
+ if (Matrix->getNumsAt (i,j)->contains (k))
235
+ {
236
+ bf.append (QPoint (i,j));
237
+ }
238
+ }
239
+ }
240
+
241
+ QJsonObject j;
242
+ QJsonArray lp;
243
+ j[" name" ] = Matrix->getEvent (k)->Name ;
244
+ j[" parameters" ] = Matrix->getEvent (k)->Params ;
245
+
246
+ for (int i=0 ; i<bf.count (); i++)
247
+ {
248
+ QJsonArray pt;
249
+ pt.append ( bf.at (i).x () );
250
+ pt.append ( bf.at (i).y () );
251
+ lp.append ( pt );
252
+ }
253
+ bf.clear ();
254
+
255
+ j[" level-positions" ] = lp;
256
+ jEve.append (j);
257
+ }
258
+ jObj[" animations" ] = jAnim;
259
+ jObj[" layers" ] = jLay;
260
+ jObj[" events" ] = jEve;
261
+
262
+ QJsonDocument d;
263
+ d.setObject (jObj);
264
+ saveJson (d,FileName);
265
+ }
266
+
183
267
void EntireLevel::setName (QString s)
184
268
{
185
269
Name = s;
@@ -193,9 +277,8 @@ void EntireLevel::clearAll()
193
277
194
278
void EntireLevel::clear ()
195
279
{
196
- qDeleteAll (Layers); // wywołujemy destrukotyry
197
- Layers.clear (); // usuwamy wskaźniki
198
- // Buffer->clear();
280
+ qDeleteAll (Layers);
281
+ Layers.clear ();
199
282
AnimBuffer->clear ();
200
283
Matrix->clear ();
201
284
}
0 commit comments