OSDN Git Service

772fe92555a20955bd1e4a84c133654054f67c0c
[awarsiii/AwarsIV.git] / Awars III / MapView.m
1 //
2 //  MapView.m
3 //  Awars III
4 //
5 //  Created by Killery on 2012/12/15.
6 //  Copyright (c) 2012年 Killery. All rights reserved.
7 //
8
9 #import "MapView.h"
10
11 @implementation MapView
12
13 - (id)initWithFrame:(NSRect)frame
14 {
15     self = [super initWithFrame:frame];
16     if (self) {
17         
18         /*time0  = [NSTimer
19                  scheduledTimerWithTimeInterval:1.0/30
20                  target:self
21                  selector:@selector(EventLoop00:)
22                  userInfo:nil
23                  repeats:YES
24                  ];*/
25         
26         MapViewInst = self;
27         
28         chip = [[self LoadImage:@"マス.png"] retain];
29         chip2 = [[self LoadImage:@"セレクター.png"] retain];
30         
31         chip1A = [[self LoadImage:@"ccはた青.png"] retain];
32         chip2A = [[self LoadImage:@"ccはた青2.png"] retain];
33         chip3A = [[self LoadImage:@"ccはた赤.png"] retain];
34         chip4A = [[self LoadImage:@"ccはた赤2.png"] retain];
35         chip5A = [[self LoadImage:@"ccはた黄.png"] retain];
36         chip6A = [[self LoadImage:@"ccはた黄2.png"] retain];
37         
38         chip1B = [[self LoadImage:@"cc旗青.png"] retain];
39         chip2B = [[self LoadImage:@"cc旗青2.png"] retain];
40         chip3B = [[self LoadImage:@"cc旗赤.png"] retain];
41         chip4B = [[self LoadImage:@"cc旗赤2.png"] retain];
42         chip5B = [[self LoadImage:@"cc旗黄.png"] retain];
43         chip6B = [[self LoadImage:@"cc旗黄2.png"] retain];
44         
45         buildTeamImg[0] = chip1A;
46         buildTeamImg[1] = chip2A;
47         buildTeamImg[2] = chip3A;
48         buildTeamImg[3] = chip4A;
49         buildTeamImg[4] = chip5A;
50         buildTeamImg[5] = chip6A;
51         unitTeamImg[0] = chip1B;
52         unitTeamImg[1] = chip2B;
53         unitTeamImg[2] = chip3B;
54         unitTeamImg[3] = chip4B;
55         unitTeamImg[4] = chip5B;
56         unitTeamImg[5] = chip6B;
57         [self initMapChipFileDirectory];
58         
59         for (int i = 0; i <= chipHeight;i++)
60             for (int j = 0;j<= chipWidth;j++)
61                 unitNum[i][j] = -1;
62         
63         
64          NSRect seRect = NSMakeRect(0, 0, chipHeight*32, chipWidth*32);
65          [self setFrame:seRect];
66          
67          
68     }
69     
70     
71     
72     
73     
74     
75     return self;
76 }
77 -(void)EventLoopMapView{
78     
79     
80     static bool hiThereFlag = false;
81     if(oopsIsRightFlag && !hiThereFlag){
82         MFselectedRow = -1;
83         [self initMapChipFileDirectory];
84         hiThereFlag = true;
85     }
86     
87     if(saveMapChipFlag){saveMapChipFlag = false;
88         [self saveMapChip];
89     }
90     if(mapSizeChangedFlag){mapSizeChangedFlag = false;
91         
92         NSRect seRect;
93         seRect.size.height = chipHeight*32;
94         seRect.size.width = chipWidth*32;
95         
96         [self setFrame:seRect];
97     }
98     if(initMapChipNumbFlag){initMapChipNumbFlag = false;
99         
100         for(int i = 0;i <= chipWidth;i++){
101             for(int j = 0;j <= chipHeight;j++){
102                 if(postHeight < j) {
103                     buildNum[i][j] = -1;
104                     unitNum[i][j] = -1;
105                 }
106                 if(postWidth < i){
107                     buildNum[i][j] = -1;
108                     unitNum[i][j] = -1;
109                 }
110             
111             }
112         }
113     }
114     if(loadMapListSubmitFlag){loadMapListSubmitFlag = false;
115         chipNum[1][1] = 2;
116         [self loadMapChip];
117         NSRect seRect;
118         seRect.size.height = chipHeight*32;
119         seRect.size.width = chipWidth*32;
120         [self setFrame:seRect];
121     }
122     
123     if(EEGCslctFlag || eventPosFlag || EDbranchUnitFlag || EDbranchPlaceFlag || EDbranchObjeFlag || EDbranchBuildFlag){
124         static int clickFrame = 0;
125         if(clickUpCnt%2 == 1){
126             clickFrame++;
127         }
128     
129         if(clickFrame > 100)
130             clickFrame = 0;
131         
132         if(clickUpCnt%2 == 0 && clickFrame >0){
133             doubleClickedFlag = true;
134             clickFrame = 0;
135         }
136     }
137     
138     if(EDappearFlag || EDappearPosFlag || EDdissappearPosFlag){
139         static int clickFrame = 0;
140         if(clickUpCnt%2 == 1){
141             clickFrame++;
142         }
143         
144         if(clickFrame > 100)
145             clickFrame = 0;
146         
147         if(clickUpCnt%2 == 0 && clickFrame >0){
148             doubleClickedFlag = true;
149             clickFrame = 0;
150         }
151     }
152     
153     [self setNeedsDisplay:YES];
154 }
155
156
157 -(BOOL)isFlipped{
158     return YES;
159 }
160
161 -(NSImage*)LoadImage:(NSString*)name{
162     NSImage *image = [NSImage imageNamed:name];
163     if(image == nil) return nil;
164     
165     return image;
166 }
167 -(void)DrawImage:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy{
168     NSRect frRect;
169     frRect.size.height = image.size.height;
170     frRect.size.width = image.size.width;
171     
172     frRect.origin.x = 0;
173     frRect.origin.y = 0;
174     
175     NSRect drRect;
176     drRect.origin.x = x;
177     drRect.origin.y = y;
178     drRect.size.height = 32;
179     drRect.size.width = 32;
180     
181     [image drawInRect:drRect fromRect:frRect operation:NSCompositeSourceOver fraction:1.0f respectFlipped:YES hints:nil];
182     
183 }
184
185 -(void)DrawImage2:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy{
186     NSRect frRect;
187     frRect.size.height = image.size.height;
188     frRect.size.width = image.size.width;
189     
190     frRect.origin.x = 0;
191     frRect.origin.y = 0;
192     
193     NSRect drRect;
194     drRect.origin.x = x+16-4;
195     drRect.origin.y = y+16-4;
196     drRect.size.height = 16+4;
197     drRect.size.width = 16+4;
198     
199     [image drawInRect:drRect fromRect:frRect operation:NSCompositeSourceOver fraction:1.0f respectFlipped:YES hints:nil];
200     
201 }
202
203 -(void)mouseDown:(NSEvent *)theEvent{
204     drugPoint = [self convertPoint:[theEvent locationInWindow] fromView:nil];
205     
206     posX = (int)drugPoint.x/32 + 1;
207     posY = (int)drugPoint.y/32 + 1;
208     
209     eSlctX = (int)drugPoint.x/32 + 1;
210     eSlctY = (int)drugPoint.y/32 + 1;
211     
212     if(EEGCslctFlag) return;
213     if(EDappearPosFlag) return;
214     if(EDdissappearPosFlag) return;
215     if(EDbranchUnitFlag) return;
216     if(EDbranchPlaceFlag) return;
217     if(EDbranchObjeFlag) return;
218     if(EDbranchBuildFlag) return;
219     if(eventPosFlag) return;
220     
221     if(CommandSelected){
222         if(SLSx == 1 && SLCy == 0) buildNum[posX][posY] = -1;
223         if(SLSx == 2 && SLCy == 0) unitNum[posX][posY] = -1;
224         if(SLSx == 3 && SLCy == 0) loadNum[posX][posY] = -1;
225         if(SLSx == 0 && SLCy == 0) {buildTeam[posX][posY] = -1; unitTeam[posX][posY] = -1;}
226     }else{
227         if(SLSx == 0 && SLCy == 1) buildTeam[posX][posY] = SLindex;
228         else if(SLSx == 0 && SLCy == 2) unitTeam[posX][posY] = SLindex;
229         else if(SLSx == 0) chipNum[posX][posY] = SLindex;
230         if(SLSx == 1) buildNum[posX][posY] = SLindexB;
231         if(SLSx == 2) unitNum[posX][posY] = SLindexU;
232         if(SLSx == 3) loadNum[posX][posY] = SLindexL;
233     
234     }
235     
236 }
237
238 -(void)mouseUp:(NSEvent *)theEvent{
239
240     clickUpCnt = (int)[theEvent clickCount];
241     
242     if(EEGCslctFlag){
243     
244         if([theEvent clickCount] == 2){
245         
246         }
247     
248     
249     }
250 }
251
252 -(void)mouseDragged:(NSEvent *)theEvent{
253     drugPoint = [self convertPoint:[theEvent locationInWindow] fromView:nil];
254     
255     posX = (int)drugPoint.x/32+1;
256     posY = (int)drugPoint.y/32+1;
257
258     if(EEGCslctFlag) return;
259     if(EDappearPosFlag) return;
260     if(EDdissappearPosFlag) return;
261     if(EDbranchUnitFlag) return;
262     if(EDbranchPlaceFlag) return;
263     if(EDbranchObjeFlag) return;
264     if(EDbranchBuildFlag) return;
265     if(eventPosFlag) return;
266     
267     if(CommandSelected){
268         if(SLSx == 1 && SLCy == 0) buildNum[posX][posY] = -1;
269         if(SLSx == 2 && SLCy == 0) unitNum[posX][posY] = -1;
270         if(SLSx == 3 && SLCy == 0) loadNum[posX][posY] = -1;
271         if(SLSx == 0 && SLCy == 0) {buildTeam[posX][posY] = -1; unitTeam[posX][posY] = -1;}
272
273     }else{
274         if(SLSx == 0 && SLCy == 1) buildTeam[posX][posY] = SLindex;
275         else if(SLSx == 0 && SLCy == 2) unitTeam[posX][posY] = SLindex;
276         else if(SLSx == 0) chipNum[posX][posY] = SLindex;
277         if(SLSx == 1) buildNum[posX][posY] = SLindexB;
278         if(SLSx == 2) unitNum[posX][posY] = SLindexU;
279         if(SLSx == 3) loadNum[posX][posY] = SLindexL;
280     
281     }
282 }
283
284 - (void)drawRect:(NSRect)dirtyRect
285 {
286     int bx, by;
287     for(bx=1;bx<=chipWidth;bx++){
288         for(by=1;by<=chipHeight;by++){
289             [self DrawImage:chip x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by];
290             [self DrawImage:MC[chipNum[bx][by]].img x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by];
291             if(buildNum[bx][by] >= 0) [self DrawImage:BC[buildNum[bx][by]].img x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by];
292             if(loadNum[bx][by] >= 0) [self DrawImage:LC[loadNum[bx][by]].img x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by];
293             if(loadNum[bx][by] < 0)
294                 if(unitNum[bx][by] >= 0) [self DrawImage:UC[unitNum[bx][by]].img x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by];
295             if(loadNum[bx][by] >= 0)
296                 if(unitNum[bx][by] >= 0) [self DrawImage2:UC[unitNum[bx][by]].img x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by];
297             
298             if(buildTeam[bx][by] >= 0) [self DrawImage:buildTeamImg[buildTeam[bx][by]] x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by];
299             if(unitTeam[bx][by] >= 0) [self DrawImage:unitTeamImg[unitTeam[bx][by]] x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by];
300             
301             //if(waypR[bx][by] != 999 && waypR[bx][by] > 0) [self DrawImage:chip x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by];
302         }
303     
304     }
305     
306     if(EEGCslctFlag) [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0];
307     if(eventPosFlag) [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0];
308     if(EDappearPosFlag) [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0];
309     if(EDdissappearPosFlag) [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0];
310     if(EDbranchUnitFlag) [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0];
311     if(EDbranchPlaceFlag) [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0];
312     if(EDbranchPlaceKukei2Flag) [self DrawImage:chip x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0];
313     if(EDbranchObjeFlag) [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0];
314     if(EDbranchBuildFlag) [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0];
315     
316     
317
318     [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0];
319 }
320
321 -(void)initMapChipFileDirectory{
322     NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
323     [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
324
325     NSData *InitialData = [NSData dataWithContentsOfFile:@"Map/preset.txt"];
326     
327     NSString *path = @"Map";
328     NSString *pathDATA = @"Map/_MAP_CLEAR.txt";
329     NSString *fileData = nil;
330     if(!InitialData){
331         
332         [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
333         [[NSFileManager defaultManager] createFileAtPath:pathDATA contents:nil attributes:nil];
334         
335
336         NSString *data2 =
337         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
338         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
339         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
340         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
341         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
342         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
343         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
344         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
345         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
346         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
347         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
348         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
349         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
350         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
351         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
352         @"####\n"
353         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
354         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
355         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
356         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
357         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
358         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
359         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
360         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
361         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
362         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
363         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
364         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
365         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
366         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
367         @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
368         @"####\n"
369         @"####\n"
370         @"####\n"
371         @"####\n"
372         @"----\n"
373         @"0,0\n"
374         @"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n"
375         @"0,0\n"
376         @"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n"
377         @"----\n"
378         @"1|0\n"
379         @"NULL\n"
380         @"NULL\n"
381         @"####\n"
382         @"2|0\n"
383         @"NULL\n"
384         @"NULL\n"
385         @"----\n"
386         @"0,0,0,0,0,0,0,0,0\n"
387         @"========\n"
388         @"EVENT\n"
389         @"========\n"
390         ;
391
392         
393         
394         fileData = [NSString stringWithFormat:@"%@", data2];
395         
396         [fileData writeToFile:pathDATA atomically:YES encoding:NSUTF8StringEncoding error:nil];
397     }
398
399     for(int i = 0;i<=1000;i++){
400         for(int j = 0;j<= 1000;j++){
401             chipNum[i][j] = 0;
402             buildNum[i][j] = -1;
403             unitNum[i][j] = -1;
404             loadNum[i][j] = -1;
405             buildTeam[i][j] = -1;
406             unitTeam[i][j] = -1;
407         }
408     }
409     
410     fileData = [NSString stringWithContentsOfFile:pathDATA encoding:NSUTF8StringEncoding error:nil];
411     fileDataArray = [fileData componentsSeparatedByString:@"\n"];
412
413     int chipType = 0;
414     int chipIndexDelta = 0;
415     int chipIndexDelta2 = 0;
416     
417     NSLog(@"fileDataArray Count:%d", (int)[fileDataArray count]);
418     
419     int indexCnt = 0;
420     
421     for(int i=1;i <= [fileDataArray count];i++){indexCnt++;
422         if([fileDataArray objectAtIndex:0] == NULL) break;
423         NSArray *items = [[fileDataArray objectAtIndex:i-1] componentsSeparatedByString:@","];
424         
425         NSRange rangeSearch = [[items objectAtIndex:0] rangeOfString:@"####"];
426         
427         if(rangeSearch.location != NSNotFound){
428             chipType++;
429             continue;
430         }
431         
432         if(chipType == 0){chipIndexDelta++;
433             for(int j=1;j <= [items count] && [items count] >= 2;j++){
434                 chipNum[j][i] = [[items objectAtIndex:j-1] intValue];
435                 chipWidth = (int)[items count];
436                 chipHeight = chipIndexDelta;
437             }
438         }else if(chipType == 1){chipIndexDelta2++;
439             for(int j=1;j <= [items count] && [items count] >= 2;j++){
440                 buildNum[j][i - chipIndexDelta-1] = [[items objectAtIndex:j-1] intValue]-1;
441             }
442         }else if(chipType == 2){
443             for(int j=1;j <= [items count] && [items count] >= 2;j++){
444                 unitNum[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue]-1;
445             }
446         }else if(chipType == 3){
447             for(int j=1;j <= [items count] && [items count] >= 2;j++){
448                 buildTeam[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue];
449             }
450         }else if(chipType == 4){
451             for(int j=1;j <= [items count] && [items count] >= 2;j++){
452                 unitTeam[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue];
453             }
454         }else if(chipType == 5){
455             for(int j=1;j <= [items count] && [items count] >= 2;j++){
456                 loadNum[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue]-1;
457             }
458         }
459         
460         NSRange rangeSearch2 = [[items objectAtIndex:0] rangeOfString:@"----"];
461         
462         if(rangeSearch2.location != NSNotFound){
463             break;
464         }
465     }
466     
467     
468     mapSizeChangedFlag = true;
469 }
470
471 -(void)loadMapChip{
472     NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
473     [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
474     
475     NSString *fileData = @"";
476     NSString *pathDATA = @"Map/";
477     
478     
479     for(int i = 0;i<=1000;i++){
480         for(int j = 0;j<= 1000;j++){
481             chipNum[i][j] = 0;
482             buildNum[i][j] = -1;
483             unitNum[i][j] = -1;
484             loadNum[i][j] = -1;
485             buildTeam[i][j] = -1;
486             unitTeam[i][j] = -1;
487         }
488     }
489     if(!mapInitFlag){
490         pathDATA = [pathDATA stringByAppendingFormat:@"%@", MF[MFselectedRow+1].fileName];
491     }else if(mapInitFlag){
492         pathDATA = [[pathDATA stringByAppendingFormat:@"%@", [SC[storyNumb].nameMAP objectAtIndex:scenarioNumb]] retain];
493     }
494     
495     NSLog(@"%@", pathDATA);
496     
497     fileData = [NSString stringWithContentsOfFile:pathDATA encoding:NSUTF8StringEncoding error:nil];
498     fileDataArray = [fileData componentsSeparatedByString:@"\n"];
499     
500     if(mapInitFlag){
501         MFselectedRow = 0;
502         for (int i = 1;i < 512;i++) {
503             if([[SC[storyNumb].nameMAP objectAtIndex:scenarioNumb] isEqualToString:[NSString stringWithFormat:@"%@", MF[i].fileName]])
504                 break;
505             MFselectedRow++;
506         }
507     }
508     
509     if(!fileData){
510         mapChipDataLoadFail = true;
511         return;
512     }
513     
514     int chipType = 0;
515     int chipIndexDelta = 0;
516     int chipIndexDelta2 = 0;
517     
518     NSLog(@"fileDataArray Count:%d", (int)[fileDataArray count]);
519     
520     int indexCnt = 0;
521     
522     for(int i=1;i <= [fileDataArray count];i++){indexCnt++;
523         if([fileDataArray objectAtIndex:0] == NULL) break;
524         NSArray *items = [[fileDataArray objectAtIndex:i-1] componentsSeparatedByString:@","];
525         
526         NSRange rangeSearch = [[items objectAtIndex:0] rangeOfString:@"####"];
527         
528         if(rangeSearch.location != NSNotFound){
529             chipType++;
530             continue;
531         }
532         
533         if(chipType == 0){chipIndexDelta++;
534             for(int j=1;j <= [items count] && [items count] >= 2;j++){
535                 chipNum[j][i] = [[items objectAtIndex:j-1] intValue];
536                 chipWidth = (int)[items count];
537                 chipHeight = chipIndexDelta;
538             }
539         }else if(chipType == 1){chipIndexDelta2++;
540             for(int j=1;j <= [items count] && [items count] >= 2;j++){
541                 buildNum[j][i - chipIndexDelta-1] = [[items objectAtIndex:j-1] intValue]-1;
542             }
543         }else if(chipType == 2){
544             for(int j=1;j <= [items count] && [items count] >= 2;j++){
545                 unitNum[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue]-1;
546             }
547         }else if(chipType == 3){
548             for(int j=1;j <= [items count] && [items count] >= 2;j++){
549                 buildTeam[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue];
550             }
551         }else if(chipType == 4){
552             for(int j=1;j <= [items count] && [items count] >= 2;j++){
553                 unitTeam[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue];
554             }
555         }else if(chipType == 5){
556             for(int j=1;j <= [items count] && [items count] >= 2;j++){
557                 loadNum[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue]-1;
558             }
559         }
560         
561         NSRange rangeSearch2 = [[items objectAtIndex:0] rangeOfString:@"----"];
562         
563         if(rangeSearch2.location != NSNotFound){
564             break;
565         }
566     }
567     
568     //NSLog(@"%d", unitNum[1][1]);
569     
570     NSArray *items00 = [[fileDataArray objectAtIndex:indexCnt] componentsSeparatedByString:@","];
571     
572     MF[MFselectedRow+1].MS.guildListRegistNum11 = [[items00 objectAtIndex:0] intValue];
573     MF[MFselectedRow+1].MS.guildListRegistNum12 = [[items00 objectAtIndex:1] intValue];
574     
575     indexCnt++;
576     
577     NSArray *items0 = [[fileDataArray objectAtIndex:indexCnt] componentsSeparatedByString:@","];
578     
579     for(int i = 0;i < [items0 count];i++){
580         MF[MFselectedRow+1].MS.guildListRegist[i] = [[items0 objectAtIndex:i] intValue];
581     }
582     
583     indexCnt++;
584     
585     items00 = [[fileDataArray objectAtIndex:indexCnt] componentsSeparatedByString:@","];
586     
587     MF[MFselectedRow+1].MS.guildListRegistNum21 = [[items00 objectAtIndex:0] intValue];
588     MF[MFselectedRow+1].MS.guildListRegistNum22 = [[items00 objectAtIndex:1] intValue];
589     
590     indexCnt++;
591     
592     items0 = [[fileDataArray objectAtIndex:indexCnt] componentsSeparatedByString:@","];
593     
594     for(int i = 0;i < [items0 count];i++){
595         MF[MFselectedRow+1].MS.guildListRegist2[i] = [[items0 objectAtIndex:i] intValue];
596     }
597     
598     indexCnt++;
599     
600     
601     
602     bool EGdarkFlag = false;
603     
604     
605     int EGcnt = 0;
606     indexCnt++;
607     for(int i = indexCnt;i < [fileDataArray count];i++){
608         NSArray *items = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@"|"];
609         EGcnt++;
610         
611         NSRange rangeSearch = [[items objectAtIndex:0] rangeOfString:@"####"];
612         
613         if(rangeSearch.location != NSNotFound){
614             EGdarkFlag = true;
615             EGcnt = 0;
616         }
617         
618         if(!EGdarkFlag){
619             
620             if(EGcnt == 1){
621                 MF[MFselectedRow+1].MS.EGClight.endType1 = [[items objectAtIndex:0] intValue];
622                 MF[MFselectedRow+1].MS.EGClight.endType2 = [[items objectAtIndex:1] intValue];
623             }else if(EGcnt == 2){
624                 for(int k = 0;k < 64;k++){
625                     if(k > [items count]-1) break;
626                     if([[items objectAtIndex:k] isEqualToString:@"NULL"]) break;
627                     MF[MFselectedRow+1].MS.EGClight.etValue1[k] = [[items objectAtIndex:k] retain];
628                 }
629             }else if(EGcnt == 3){
630                 for(int k = 0;k < 64;k++){
631                     if(k > [items count]-1) break;
632                     if([[items objectAtIndex:k] isEqualToString:@"NULL"]) break;
633                     MF[MFselectedRow+1].MS.EGClight.etValue2[k] = [[items objectAtIndex:k] retain];
634                 }
635             }
636         
637         }else{
638             if(EGcnt == 1){
639                 MF[MFselectedRow+1].MS.EGCdark.endType1 = [[items objectAtIndex:0] intValue];
640                 MF[MFselectedRow+1].MS.EGCdark.endType2 = [[items objectAtIndex:1] intValue];
641             }else if(EGcnt == 2){
642                 for(int k = 0;k < 64;k++){
643                     if(k > [items count]-1) break;
644                     if([[items objectAtIndex:k] isEqualToString:@"NULL"]) break;
645                     MF[MFselectedRow+1].MS.EGCdark.etValue1[k] = [[items objectAtIndex:k] retain];
646                 }
647             }else if(EGcnt == 3){
648                 for(int k = 0;k < 64;k++){
649                     if(k > [items count]-1) break;
650                     if([[items objectAtIndex:k] isEqualToString:@"NULL"]) break;
651                     MF[MFselectedRow+1].MS.EGCdark.etValue2[k] = [[items objectAtIndex:k] retain];
652                 }
653             }
654         
655         
656         
657         }
658         
659         if([[fileDataArray objectAtIndex:i] isEqualToString:@"----"])
660             break;
661         indexCnt++;
662     }
663     
664     indexCnt++;
665     NSArray *items = [[fileDataArray objectAtIndex:indexCnt] componentsSeparatedByString:@","];
666     
667     playerSet1 = [[items objectAtIndex:0] intValue];
668     playerSet2 = [[items objectAtIndex:1] intValue];
669     battleSetMode = [[items objectAtIndex:2] intValue];
670     
671     MF[MFselectedRow+1].MS.playerSet1 = playerSet1;
672     MF[MFselectedRow+1].MS.playerSet2 = playerSet2;
673     MF[MFselectedRow+1].MS.battleSetMode = battleSetMode;
674     
675     if([items count] > 3){
676         scenarioSetMode = [[items objectAtIndex:3] intValue];
677         scenarioNumbCrnt = [[items objectAtIndex:4] intValue];
678         scenarioNumbNext = [[items objectAtIndex:5] intValue];
679         MF[MFselectedRow+1].MS.scenarioSetMode = scenarioSetMode;
680         MF[MFselectedRow+1].MS.scenarioNumbCrnt = scenarioNumbCrnt;
681         MF[MFselectedRow+1].MS.scenarioNumbNext = scenarioNumbNext;
682     }
683     
684     if([items count] > 6){
685         employAllowedFlag = [[items objectAtIndex:6] intValue];
686         buildAllowedFlag = [[items objectAtIndex:7] intValue];
687         summonAllowedFlag = [[items objectAtIndex:8] intValue];
688         MF[MFselectedRow+1].MS.employAllowedFlag = employAllowedFlag;
689         MF[MFselectedRow+1].MS.buildAllowedFlag = buildAllowedFlag;
690         MF[MFselectedRow+1].MS.summonAllowedFlag = summonAllowedFlag;
691     }else{
692         employAllowedFlag = true;
693         buildAllowedFlag = true;
694         summonAllowedFlag = true;
695         MF[MFselectedRow+1].MS.employAllowedFlag = employAllowedFlag;
696         MF[MFselectedRow+1].MS.buildAllowedFlag = buildAllowedFlag;
697         MF[MFselectedRow+1].MS.summonAllowedFlag = summonAllowedFlag;
698     }
699     
700     MAPSCRIPT MS = MF[MFselectedRow+1].MS;
701     [MS.SCRPTname removeAllObjects];
702     MAPSCRIPTD *MSDtop = NULL;
703     MAPSCRIPT0 *MSDPtop = NULL;
704   
705     fileData = [NSString stringWithContentsOfFile:pathDATA encoding:NSUTF8StringEncoding error:nil];
706     fileDataArray = [fileData componentsSeparatedByString:@"========\nEVENT\n========\n"];
707     
708     NSString *fileData2 = [fileDataArray objectAtIndex:1];
709     
710     fileDataArray = [fileData2 componentsSeparatedByString:@"\n"];
711   
712     int eventIndex = 0;
713     int scriptIndex = 0;
714     int indent = 0;
715     static bool supFlag = false;
716     static bool supFlag2 = false;
717     static bool asdflag = false;
718     
719     for (int i = 0;i < [fileDataArray count]; i++) {
720         NSArray *items = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
721         NSArray *items9;
722         if(i + 1 < [fileDataArray count])
723             items9 = [[fileDataArray objectAtIndex:i+1] componentsSeparatedByString:@"\n"];
724         NSRange rangeSearch = [[fileDataArray objectAtIndex:i] rangeOfString:@"●"];
725         NSArray *array3 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@"◆"];
726         NSString *string2 = [NSString stringWithFormat:@"%@◆", [array3 objectAtIndex:0]];
727         NSRange rangeSearch2 = [[fileDataArray objectAtIndex:i] rangeOfString:string2];
728         static int pussyCnt = 0;
729         static int mankoCnt = 0;
730         static int analCnt = 0;
731         static int feraCnt = 0;
732         static int gimmetrow = 0;
733         
734         if(i >= 128){
735             //NSLog(@"おお");
736         }
737         if (rangeSearch.location == !NSNotFound) {
738             
739             if(supFlag){
740                 //MS.D->P->S1.str = [MS.D->P->S1.str substringToIndex:MS.D->P->S1.str.length-3];
741                 
742                 MS.D->P = MSDPtop;
743                 MS.D->next = calloc(1, sizeof(MAPSCRIPTD));
744                 MS.D = MS.D->next;
745                 MSDPtop = MS.D->P;
746                 asdflag = true;
747             }
748             if(!supFlag){
749                 MS.D = calloc(1, sizeof(MAPSCRIPTD));
750                 MSDtop = MS.D;
751                 MS.SCRPTname = [NSMutableArray new];
752                 supFlag = true;
753             }
754             if(!MS.D){
755
756             }else{
757                 if(!MS.D->P){
758                     MS.D->P = MSDPtop;
759                 }
760             }
761             NSArray *items2 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@" "];
762             NSString *string = [[items2 objectAtIndex:0] substringFromIndex:1];
763             
764             [MS.SCRPTname addObject:string];
765             
766             if([items2 count] >= 2){
767                 NSArray *items3 = [[items2 objectAtIndex:1] componentsSeparatedByString:@"["];
768                 MS.D->type = [[items3 objectAtIndex:0] intValue];
769                 NSArray *items4 = [[items3 objectAtIndex:1] componentsSeparatedByString:@","];
770                 MS.D->x = [[items4 objectAtIndex:0] intValue];
771                 MS.D->y = [[items4 objectAtIndex:1] intValue];
772                 
773                 NSArray *items100 = [[items2 objectAtIndex:1] componentsSeparatedByString:@"ET["];
774                 if([items100 count] > 1){
775                     NSArray *items102 = [[items100 objectAtIndex:0] componentsSeparatedByString:@"]"];
776                     MS.D->ETtype = [[items102 objectAtIndex:1] intValue];
777                     NSArray *items101 = [[items100 objectAtIndex:1] componentsSeparatedByString:@","];
778                     MS.D->ET1 = [[items101 objectAtIndex:0] doubleValue];
779                     MS.D->ET2 = [[items101 objectAtIndex:1] doubleValue];
780                     if([items101 count] > 2) MS.D->onlyInitialDeley = [[items101 objectAtIndex:2] intValue];
781                 }
782                 
783                 
784                 NSArray *items51 = [[items2 objectAtIndex:1] componentsSeparatedByString:@"ON["];
785                 if([items51 count] > 1){
786                 NSArray *items5 = [[items51 objectAtIndex:1] componentsSeparatedByString:@"OFF["];
787                 NSArray *items6 = [[items5 objectAtIndex:0] componentsSeparatedByString:@","];
788                 if([items6 objectAtIndex:0] > 0){
789                 if([items6 count] > 0 && [items6 objectAtIndex:0] > 0)
790                  MS.D->switch1 = calloc([items6 count], sizeof(int));
791                     MS.D->switch1f = true;
792                 for (int i = 0;[items6 count] > i && [[items6 objectAtIndex:i] intValue] > 0;i++) {
793                     *(MS.D->switch1+i) = [[items6 objectAtIndex:i] intValue];
794                 }
795                 }
796                 }
797                
798                 NSArray *items7 = [[items2 objectAtIndex:1] componentsSeparatedByString:@"OFF["];
799                 if([items7 count] > 1){
800                 NSArray *items8 = [[items7 objectAtIndex:1] componentsSeparatedByString:@","];
801                 if([items8 objectAtIndex:0] > 0){
802                 if([items8 count] > 0 && [items8 objectAtIndex:0] > 0)
803                     MS.D->switch2 = calloc([items8 count], sizeof(int));
804                     MS.D->switch2f = true;
805                 for (int i = 0;[items8 count] > i && [[items8 objectAtIndex:i] intValue] > 0;i++) {
806                     *(MS.D->switch2+i) = [[items8 objectAtIndex:i] intValue];
807                 }
808                 }
809                 }
810                 //NSLog(@"OMG %d,%d,%d", MS.D->type,MS.D->x,MS.D->y);
811             }
812             eventIndex++;
813             scriptIndex = 0;
814             continue;
815         }
816         
817         static MAPSCRIPT2 *MS2T = NULL;
818         static UNIT2 *sjt = NULL;
819         static PLACEMENT *wpt = NULL;
820         static UNIT2 *ojt = NULL;
821         static BUILD2 *bdt = NULL;
822         if (rangeSearch2.location == !NSNotFound) {
823            pussyCnt = 0;
824             feraCnt = 0;
825             analCnt = 0;
826             gimmetrow = 0;
827             /*
828             if(MS.D){
829                 if(MS.D->P) MS.D->P->S2 = MS2T;
830                 if(MS.D->P) MS.D->P->S4.subj = sjt;
831                 if(MS.D->P) MS.D->P->S4.wayp = wpt;
832                 if(MS.D->P) MS.D->P->S4.obje = ojt;
833                 if(MS.D->P) MS.D->P->S4.build = bdt;
834             }
835             
836             MS2T = NULL;
837             sjt = NULL;
838             wpt = NULL;
839             ojt = NULL;
840             bdt = NULL;*/
841             if(asdflag){
842                 MS.D->SCRPT = [NSMutableArray new];
843                 asdflag = false;
844             }
845             
846             if(!supFlag2){
847                 MS.D->SCRPT = [NSMutableArray new];
848                 supFlag2 = true;
849                 MS.D->P = NULL;
850             }
851             
852             if(!MS.D->P){
853                 MS.D->P = calloc(1, sizeof(MAPSCRIPT0));
854                 MS.D->P->S2 = NULL;
855                 MSDPtop = MS.D->P;
856                 MS.D->SCRPT = [NSMutableArray new];
857             }
858             else {
859                 MS.D->P->next = calloc(1, sizeof(MAPSCRIPT0));
860                 MS.D->P->next->S2 = NULL;
861                 MS.D->P = MS.D->P->next;
862                 MS.D->P->next = NULL;
863             }
864             
865             NSArray *items0 = [[items objectAtIndex:0] componentsSeparatedByString:@"◆"];
866             
867             indent = [[items0 objectAtIndex:0] intValue];
868             MS.D->P->type = [[items0 objectAtIndex:1] intValue];
869             
870             
871             if(MS.D->P->type == 0){
872                 MS.D->P->indent = indent;
873                 MS.D->P->S1.nameID = [[items objectAtIndex:1] retain];
874                 MS.D->P->S1.name = [[items objectAtIndex:2] retain];
875                 MS.D->P->S1.iName = [[items objectAtIndex:3] retain];
876                 for(int k = 0; k < UCN;k++){
877                     if(MS.D->P->S1.nameID)
878                     if([MS.D->P->S1.nameID isEqualToString:UC[k].nameID]){
879                         MS.D->P->S1.img = [UC[k].imgb retain];
880                         break;
881                     }
882                 }
883                 for(int k = 0; k < LCN;k++){
884                     if(MS.D->P->S1.nameID)
885                         if([MS.D->P->S1.nameID isEqualToString:LC[k].nameID]){
886                             MS.D->P->S1.img = [UC[k].imgb retain];
887                             break;
888                         }
889                 }
890                 EIMG = EIMGtop;
891                 while (EIMG) {
892                     if(MS.D->P->S1.nameID)
893                         if([MS.D->P->S1.nameID isEqualToString:EIMG->name]){
894                             MS.D->P->S1.img = [EIMG->img retain];
895                             break;
896                         }
897                     EIMG = EIMG->next;
898                 }EIMG = EIMGtop;
899                 
900                 [MS.D->SCRPT addObject:@"◆文章の表示"];
901                 if(![MS.D->P->S1.name isEqualToString:@""])
902                     [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@:", MS.D->P->S1.name]];
903             }
904             if(MS.D->P->type == 1){
905                 [MS.D->SCRPT addObject:@"◆選択肢の表示"];
906                 
907             }if(MS.D->P->type == 22){
908                 [MS.D->SCRPT addObject:@"◆ユニット出現"];
909             }if(MS.D->P->type == 23){
910                 [MS.D->SCRPT addObject:@"◆ユニット消去"];
911             }
912             
913             
914             if(MS.D->P->type == 3){
915                 MS.D->P->indent = indent;
916                 if([[items objectAtIndex:1] isEqualToString:@"ON"]){
917                     MSDPONOFFFlagNum = 1;
918                 }
919                 if([[items objectAtIndex:1] isEqualToString:@"OFF"]){
920                     MSDPONOFFFlagNum = 2;
921                 }
922                 
923                 NSString *string;
924                 
925                 if(MSDPONOFFFlagNum == 1) string = @"ON";
926                 if(MSDPONOFFFlagNum == 2) string = @"OFF";
927                 
928                 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆スイッチの操作%@", string]];
929             }
930             if(MS.D->P->type == 5){
931                 MS.D->P->indent = indent;
932                 
933                 NSArray *items10 = [[items9 objectAtIndex:0] componentsSeparatedByString:@","];
934             
935                 MS.D->P->timerFlag = true;
936                 MS.D->P->timerMin = [[items10 objectAtIndex:0] intValue];
937                 MS.D->P->timerSec = [[items10 objectAtIndex:1] intValue];
938                 MS.D->P->timerRun = [[items10 objectAtIndex:2] intValue];
939                 MS.D->P->timerMode = [[items10 objectAtIndex:3] intValue];
940                 MS.D->P->timerVisible = [[items10 objectAtIndex:4] intValue];
941                 
942                 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆タイマーの操作"]];
943                 
944                 NSString *timerRun;
945                 if(MS.D->P->timerRun) timerRun = [@"始動" retain];
946                 else timerRun = [@"停止" retain];
947                 NSString *timerMode;
948                 if(MS.D->P->timerMode) timerMode = [@"足す" retain];
949                 else timerMode = [@"引く" retain];
950                 NSString *timerVisible;
951                 if(MS.D->P->timerVisible) timerVisible = [@"表示" retain];
952                 else timerVisible = [@"非表示" retain];
953                 
954                 if(![MS.D->P->label isEqualToString:@""])
955                     [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%d分%d秒 %@ %@ %@",MS.D->P->timerMin, MS.D->P->timerSec, timerRun, timerMode, timerVisible]];
956             }if(MS.D->P->type == 6){
957                 MS.D->P->indent = indent;
958                 
959                 NSArray *item100 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
960                 MS.D->P->S4.COMPrabel = [[item100 objectAtIndex:1] retain];
961                 MS.D->P->S4.FAILrabel = [[item100 objectAtIndex:2] retain];
962                 
963                 NSArray *item101 = [[fileDataArray objectAtIndex:i+1] componentsSeparatedByString:@","];
964                 MS.D->P->S4.suicchiFlag = [[item101 objectAtIndex:0] intValue];
965                 MS.D->P->S4.suicchiONOFF = [[item101 objectAtIndex:1] intValue];
966                 
967                 
968                 NSArray *item102 = [[fileDataArray objectAtIndex:i+2] componentsSeparatedByString:@","];
969                 
970                 if(MS.D->P->S4.suicchiFlag)
971                 for (int i = 0; [item102 count] > i;i++) {
972                     if(i == 0){
973                         MS.D->P->S4.suicchi = calloc([item102 count], sizeof(int));
974                     }
975                     *(MS.D->P->S4.suicchi + i) = [[item102 objectAtIndex:i] intValue];
976                 }
977                 
978                 NSArray *item103 = [[fileDataArray objectAtIndex:i+3] componentsSeparatedByString:@","];
979                 MS.D->P->S4.hensuFlag = [[item103 objectAtIndex:0] intValue];
980                 MS.D->P->S4.hensu1 = [[item103 objectAtIndex:1] intValue];
981                 MS.D->P->S4.teisuFlag = [[item103 objectAtIndex:2] intValue];
982                 MS.D->P->S4.teisuValue = [[item103 objectAtIndex:3] intValue];
983                 MS.D->P->S4.hensu2flag = [[item103 objectAtIndex:4] intValue];
984                 MS.D->P->S4.hensu2 = [[item103 objectAtIndex:5] intValue];
985                 MS.D->P->S4.hensuType = [[item103 objectAtIndex:6] intValue];
986                 
987                 NSArray *item104 = [[fileDataArray objectAtIndex:i+4] componentsSeparatedByString:@","];
988                 MS.D->P->S4.timerFlag = [[item104 objectAtIndex:0] intValue];
989                 MS.D->P->S4.timerMin = [[item104 objectAtIndex:1] intValue];
990                 MS.D->P->S4.timerSec = [[item104 objectAtIndex:2] intValue];
991                 MS.D->P->S4.timerType = [[item104 objectAtIndex:3] intValue];
992                 
993                 NSArray *item105 = [[fileDataArray objectAtIndex:i+5] componentsSeparatedByString:@","];
994                 MS.D->P->S4.unitNumFlag = [[item105 objectAtIndex:0] intValue];
995                 MS.D->P->S4.unitTypeFlag = [[item105 objectAtIndex:1] intValue];
996                 MS.D->P->S4.placeFlag = [[item105 objectAtIndex:2] intValue];
997                 MS.D->P->S4.unitCMDflag = [[item105 objectAtIndex:3] intValue];
998                 MS.D->P->S4.objeFlag = [[item105 objectAtIndex:4] intValue];
999                 MS.D->P->S4.buildFlag = [[item105 objectAtIndex:5] intValue];
1000                 
1001                 NSArray *item106 = [[fileDataArray objectAtIndex:i+6] componentsSeparatedByString:@","];
1002                 MS.D->P->S4.team = [[item106 objectAtIndex:0] intValue];
1003                 MS.D->P->S4.unitNum = [[item106 objectAtIndex:1] intValue];
1004                 MS.D->P->S4.unitType = [[item106 objectAtIndex:2] intValue];
1005                 MS.D->P->S4.unitCMD = [[item106 objectAtIndex:3] intValue];
1006                 MS.D->P->S4.objeRange = [[item106 objectAtIndex:4] intValue];
1007                 
1008                 
1009                 
1010                 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆条件分岐"]];
1011                 
1012                 NSString *str = [NSString stringWithFormat:@"ジャンプ 真\b\b:%@ 偽:%@", MS.D->P->S4.COMPrabel,MS.D->P->S4.FAILrabel];
1013                 
1014                 [MS.D->SCRPT addObject:str];
1015                 
1016                 if(MS.D->P->S4.suicchiFlag){
1017                     NSString *string = @"";
1018                     if(MS.D->P->S4.suicchiONOFF == 0)
1019                         string = [string stringByAppendingFormat:@"スイッチON"];
1020                     else
1021                         string = [string stringByAppendingFormat:@"スイッチOFF"];
1022                     
1023                     if(MS.D->P->S4.suicchi)
1024                         for (int i = 0;*(MS.D->P->S4.suicchi + i);i++) {
1025                             if(i > 0)
1026                                 string = [string stringByAppendingFormat:@","];
1027                             string = [string stringByAppendingFormat:@"%d",*(MS.D->P->S4.suicchi + i)];
1028                         }
1029                     [MS.D->SCRPT addObject:string];
1030                 }
1031                 if(MS.D->P->S4.hensuFlag){
1032                 NSString *string = @"変数";
1033                 
1034                 string = [string stringByAppendingFormat:@"%dが", MS.D->P->S4.hensu1];
1035                 
1036                 if(MS.D->P->S4.teisuFlag == 0)
1037                     string = [string stringByAppendingFormat:@""];
1038                 else
1039                     string = [string stringByAppendingFormat:@"定数%d", MS.D->P->S4.teisuValue];
1040                 
1041                 if(MS.D->P->S4.hensu2flag == 0)
1042                     string = [string stringByAppendingFormat:@""];
1043                 else
1044                     string = [string stringByAppendingFormat:@"変数%d", MS.D->P->S4.hensu2];
1045                 
1046                 
1047                 if(MS.D->P->S4.hensuType == 0) {
1048                     string = [string stringByAppendingFormat:@"と同値"];
1049                     
1050                     
1051                 }else if(MS.D->P->S4.hensuType == 1){
1052                     string = [string stringByAppendingFormat:@"以上"];
1053                 }else if(MS.D->P->S4.hensuType == 2){
1054                     string = [string stringByAppendingFormat:@"以下"];
1055                 }else if(MS.D->P->S4.hensuType == 3){
1056                     string = [string stringByAppendingFormat:@"超"];
1057                 }else if(MS.D->P->S4.hensuType == 4){
1058                     string = [string stringByAppendingFormat:@"未満"];
1059                 }else if(MS.D->P->S4.hensuType == 5){
1060                     string = [string stringByAppendingFormat:@"以外"];
1061                 }
1062                 if(MS.D->P->S4.teisuFlag == 0 && MS.D->P->S4.hensu2flag == 0){
1063                     string = [NSString stringWithFormat:@""];
1064                 }else{
1065                     [MS.D->SCRPT addObject:string];
1066                 }
1067                 
1068                 }
1069                 
1070                 if(MS.D->P->S4.timerFlag){
1071                 NSString *string = [NSString stringWithFormat:@"タイマーが"];
1072                 string = [string stringByAppendingFormat:@"%d分%d秒", MS.D->P->S4.timerMin, MS.D->P->S4.timerSec];
1073                 if(MS.D->P->S4.timerType == 0){
1074                     string = [string stringByAppendingFormat:@"以上"];
1075                 }else if(MS.D->P->S4.timerType == 1){
1076                     string = [string stringByAppendingFormat:@"以下"];
1077                 }
1078                 
1079                 [MS.D->SCRPT addObject:string];
1080                 }
1081                if(MS.D->P->S4.unitNumFlag){
1082                 NSString *string = @"";
1083                 string = [string stringByAppendingFormat:@"チーム%dが数%d", MS.D->P->S4.team, MS.D->P->S4.unitNum];
1084                 if(MS.D->P->S4.unitType == 0){
1085                     string = [string stringByAppendingFormat:@"と同値"];
1086                 }else if(MS.D->P->S4.unitType == 1){
1087                     string = [string stringByAppendingFormat:@"以上"];
1088                 }else if(MS.D->P->S4.unitType == 2){
1089                     string = [string stringByAppendingFormat:@"以下"];
1090                 }
1091                 [MS.D->SCRPT addObject:string];
1092                }
1093                 
1094                 
1095                 if(MS.D->P->S4.unitCMDflag){
1096                     NSString *string = @"ユニットが";
1097                     if(MS.D->P->S4.unitCMD == 0){
1098                         string = [string stringByAppendingFormat:@"待機を選択した時"];
1099                     }else if(MS.D->P->S4.unitCMD == 1){
1100                         string = [string stringByAppendingFormat:@"攻撃を選択した時"];
1101                     }else if(MS.D->P->S4.unitCMD == 2){
1102                         string = [string stringByAppendingFormat:@"説得を選択した時"];
1103                     }
1104                     [MS.D->SCRPT addObject:string];
1105                 }
1106                 
1107                 
1108             }
1109             if(MS.D->P->type == 7){
1110                 MS.D->P->indent = indent;
1111                 
1112                 MS.D->P->label = [[items9 objectAtIndex:0] retain];
1113                 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆ラベル"]];
1114                 if(![MS.D->P->label isEqualToString:@""])
1115                     [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@",MS.D->P->label]];
1116             }if(MS.D->P->type == 8){
1117                 MS.D->P->indent = indent;
1118                 
1119                 MS.D->P->labelJump = [[items9 objectAtIndex:0] retain];
1120                 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆ラベルジャンプ"]];
1121                 
1122                 if(![MS.D->P->labelJump isEqualToString:@""])
1123                     [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@", MS.D->P->labelJump]];
1124             }if(MS.D->P->type == 9){
1125                 MS.D->P->indent = indent;
1126                 
1127                 MS.D->P->memo = [[items9 objectAtIndex:0] retain];
1128                 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆注釈"]];
1129             }if(MS.D->P->type == 10){
1130                 NSArray *items90 = [NSArray new];
1131                 if(i + 1 < [fileDataArray count])
1132                     items90 = [[fileDataArray objectAtIndex:i+1] componentsSeparatedByString:@","];
1133                 
1134                 
1135                 MS.D->P->indent = indent;
1136                 
1137                 MS.D->P->S6.team = [[items90 objectAtIndex:0] intValue];
1138                 
1139                 MS.D->P->S6.RCsupply = [[items90 objectAtIndex:1] intValue];
1140                 MS.D->P->S6.RCsupplyAdd = [[items90 objectAtIndex:2] intValue];
1141                 MS.D->P->S6.RCsupplyValue = [[items90 objectAtIndex:3] intValue];
1142                 MS.D->P->S6.RCsupplyS = [[items90 objectAtIndex:4] intValue];
1143                 MS.D->P->S6.RCsupplySelect = [[items90 objectAtIndex:5] intValue];
1144                 
1145                 MS.D->P->S6.RCfood = [[items90 objectAtIndex:6] intValue];
1146                 MS.D->P->S6.RCfoodAdd = [[items90 objectAtIndex:7] intValue];
1147                 MS.D->P->S6.RCfoodValue = [[items90 objectAtIndex:8] intValue];
1148                 MS.D->P->S6.RCfoodS = [[items90 objectAtIndex:9] intValue];
1149                 MS.D->P->S6.RCfoodSelect = [[items90 objectAtIndex:10] intValue];
1150                 
1151                 MS.D->P->S6.RCmoney = [[items90 objectAtIndex:11] intValue];
1152                 MS.D->P->S6.RCmoneyAdd = [[items90 objectAtIndex:12] intValue];
1153                 MS.D->P->S6.RCmoneyValue = [[items90 objectAtIndex:13] intValue];
1154                 MS.D->P->S6.RCmoneyS = [[items90 objectAtIndex:14] intValue];
1155                 MS.D->P->S6.RCmoneySelect = [[items90 objectAtIndex:15] intValue];
1156                 
1157                 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆リソースの増減"]];
1158                 
1159                 
1160                 if(MS.D->P->S6.team == 0){
1161                 
1162                 }
1163                 
1164                 if(MS.D->P->S6.RCsupply){
1165                     NSString *string = @"";
1166                     string = [string stringByAppendingFormat:@"チーム%d ", MS.D->P->S6.team];
1167                     
1168                     if(MS.D->P->S6.RCsupplyAdd){
1169                         string = [string stringByAppendingString:@"資源増加:"];
1170                     }else{
1171                         string = [string stringByAppendingString:@"資源減少:"];
1172                     }
1173                     if(MS.D->P->S6.RCsupplyS){
1174                         string =  [string stringByAppendingFormat:@"%d", MS.D->P->S6.RCsupplyValue];
1175                     }else{
1176                         string =  [string stringByAppendingFormat:@"[%d:%@]",
1177                                    MS.D->P->S6.RCsupplySelect-1, HensuuName[MS.D->P->S6.RCsupplySelect-1]];
1178                     }
1179                     [MS.D->SCRPT addObject:string];
1180                 }
1181                 
1182                 if(MS.D->P->S6.RCfood){
1183                     NSString *string = @"";
1184                     string = [string stringByAppendingFormat:@"チーム%d ", MS.D->P->S6.team];
1185                     
1186                     if(MS.D->P->S6.RCfoodAdd){
1187                         string = [string stringByAppendingString:@"食料増加:"];
1188                     }else{
1189                         string = [string stringByAppendingString:@"食料減少:"];
1190                     }
1191                     if(MS.D->P->S6.RCfoodS){
1192                         string =  [string stringByAppendingFormat:@"%d", MS.D->P->S6.RCfoodValue];
1193                     }else{
1194                         string =  [string stringByAppendingFormat:@"[%d:%@]",
1195                                    MS.D->P->S6.RCfoodSelect-1, HensuuName[MS.D->P->S6.RCfoodSelect-1]];
1196                     }
1197                     [MS.D->SCRPT addObject:string];
1198                 }
1199                 
1200                 if(MS.D->P->S6.RCmoney){
1201                     NSString *string = @"";
1202                     string = [string stringByAppendingFormat:@"チーム%d ", MS.D->P->S6.team];
1203                     if(MS.D->P->S6.RCmoneyAdd){
1204                         string = [string stringByAppendingString:@"資金増加:"];
1205                     }else{
1206                         string = [string stringByAppendingString:@"資金減少:"];
1207                     }
1208                     if(MS.D->P->S6.RCmoneyS){
1209                         string =  [string stringByAppendingFormat:@"%d", MS.D->P->S6.RCmoneyValue];
1210                     }else{
1211                         string =  [string stringByAppendingFormat:@"[%d:%@]",
1212                                    MS.D->P->S6.RCmoneySelect-1, HensuuName[MS.D->P->S6.RCmoneySelect-1]];
1213                     }
1214                     [MS.D->SCRPT addObject:string];
1215                 }
1216                 
1217             }if(MS.D->P->type == 25){
1218                 MS.D->P->indent = indent;
1219                 
1220                 MS.D->P->wait = [[items9 objectAtIndex:0] doubleValue];
1221                 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆ウェイト"]];
1222                 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%g秒", MS.D->P->wait]];
1223             }if(MS.D->P->type == 28){
1224                 MS.D->P->indent = indent;
1225                 
1226                 MS.D->P->BGM.fName = [[items9 objectAtIndex:0] retain];
1227                 
1228                 for(int k = 0;k < bgmNum;k++){
1229                     if([MS.D->P->BGM.fName isEqualToString:BGM[k].fName]){
1230                         MS.D->P->BGM.name = [BGM[k].name retain];
1231                         MS.D->P->BGM.snd = [BGM[k].snd retain];
1232                         break;
1233                     }
1234                 }
1235                 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆BGMの演奏"]];
1236                 if(MS.D->P->BGM.name)
1237                     [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@", MS.D->P->BGM.name]];
1238             }if(MS.D->P->type == 30){
1239                 MS.D->P->indent = indent;
1240                 
1241                 MS.D->P->SE.fName = [[items9 objectAtIndex:0] retain];
1242                 
1243                 for(int k = 0;k < seNum;k++){
1244                     if([MS.D->P->SE.fName isEqualToString:SE[k].fName]){
1245                         MS.D->P->SE.name = [BGM[k].name retain];
1246                         MS.D->P->SE.snd = [BGM[k].snd retain];
1247                         break;
1248                     }
1249                 }
1250                 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆SEの再生"]];
1251                 if(MS.D->P->SE.name)
1252                     [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@", MS.D->P->SE.name]];
1253             }if(MS.D->P->type == 35){
1254                 MS.D->P->indent = indent;
1255                 
1256                 NSArray *items10 = [[items9 objectAtIndex:0] componentsSeparatedByString:@","];
1257                 
1258                 MS.D->P->gaov.gaovFlag = [[items10 objectAtIndex:0] intValue];
1259                 MS.D->P->gaov.edcdFlag = [[items10 objectAtIndex:1] intValue];
1260                 MS.D->P->gaov.fNname = [[items10 objectAtIndex:2] retain];
1261                 
1262                 NSString *gaovPath = @"data/Others/img/";
1263                 
1264                 gaovPath = [gaovPath stringByAppendingString:MS.D->P->gaov.fNname];
1265                 
1266                 NSData *gaovData = [NSData dataWithContentsOfFile:gaovPath];
1267                 
1268                 if(gaovData)
1269                     MS.D->P->gaov.img = [[NSImage alloc] initWithData:[[NSFileHandle fileHandleForReadingAtPath:gaovPath] readDataToEndOfFile]];
1270                 
1271                 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆ゲームオーバー"]];
1272                 if(MS.D->P->gaov.edcdFlag)
1273                     [MS.D->SCRPT addObject:[NSString stringWithFormat:@"敵勝利画面表示"]];
1274                 else
1275                     [MS.D->SCRPT addObject:[NSString stringWithFormat:@"敵勝利画面非表示"]];
1276             }if(MS.D->P->type == 36){
1277                 MS.D->P->indent = indent;
1278                 
1279                 NSArray *items10 = [[items9 objectAtIndex:0] componentsSeparatedByString:@","];
1280                 
1281                 MS.D->P->sc.scFlag = [[items10 objectAtIndex:0] intValue];
1282                 MS.D->P->sc.edcdFlag = [[items10 objectAtIndex:1] intValue];
1283                 
1284                 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆ステージクリア"]];
1285                 if(MS.D->P->sc.edcdFlag)
1286                     [MS.D->SCRPT addObject:[NSString stringWithFormat:@"味方勝利画面表示"]];
1287                 else
1288                     [MS.D->SCRPT addObject:[NSString stringWithFormat:@"味方勝利画面非表示"]];
1289             }if(MS.D->P->type == 37){
1290                 MS.D->P->indent = indent;
1291                 
1292                 MS.D->P->titleBack = [[items9 objectAtIndex:0] intValue];
1293                 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆タイトル画面に戻す"]];
1294             }
1295             
1296             scriptIndex++;
1297             //continue;
1298         }else{
1299     
1300                 if(MS.D){
1301                         {if(MS.D->P)
1302                             {
1303                                 if(MS.D->P->type == 0){
1304                                     
1305                                 
1306                                     {
1307                                         if(!MS.D->P->S1.str) {MS.D->P->S1.str = @"";
1308                                 }
1309                                             NSString *string = @"";
1310                                             string = [[string stringByAppendingFormat:@"%@", [fileDataArray objectAtIndex:i]] retain];
1311                                     if([string isEqualToString:@""]) continue;
1312                                         if(pussyCnt > 0)
1313                                             MS.D->P->S1.str = [[MS.D->P->S1.str stringByAppendingFormat:@"\n"] retain];
1314                                             MS.D->P->S1.str = [[MS.D->P->S1.str stringByAppendingString:string] retain];
1315                                     
1316                                     if(![string isEqualToString:@""])
1317                                             [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@", [fileDataArray objectAtIndex:i]]];
1318                                         pussyCnt++;
1319                                 }
1320                                 }if(MS.D->P->type == 1){
1321                                     
1322                                     NSString *string = @"";
1323                                     NSString *string2 = @"";
1324                                     NSArray *items10 = [[[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","] retain];
1325                                     
1326                                     string = [[string stringByAppendingFormat:@"%@", [items10  objectAtIndex:0]] retain];
1327                                     string2 = [[string2 stringByAppendingFormat:@"%@", [items10  objectAtIndex:1]] retain];
1328                                     if([string isEqualToString:@""]) continue;
1329                                     if(!MS.D->P->S2){
1330                                         MS.D->P->S2 = calloc(1, sizeof(MAPSCRIPT2));
1331                                         MS2T = MS.D->P->S2;
1332                                     }
1333                                     else{
1334                                         if(pussyCnt == 1) MS2T = MS.D->P->S2;
1335                                         MS.D->P->S2->next = calloc(1, sizeof(MAPSCRIPT2));
1336                                         MS.D->P->S2 = MS.D->P->S2->next;
1337                                     }
1338                                     MS.D->P->S2->selection = [[NSString stringWithString:string] retain];
1339                                     MS.D->P->S2->labelJump = [[NSString stringWithString:string2] retain];
1340                                     if(pussyCnt > 0) MS.D->P->S2->selection = [[MS.D->P->S2->selection stringByAppendingFormat:@"\n"] retain];
1341                                     if(pussyCnt > 0) MS.D->P->S2->labelJump = [[MS.D->P->S2->labelJump stringByAppendingFormat:@"\n"] retain];
1342                                     if(![string isEqualToString:@""])
1343                                         [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@@%@", MS.D->P->S2->selection, MS.D->P->S2->labelJump]];
1344                                     pussyCnt++;
1345                                 
1346                                 
1347                                 }if(MS.D->P->type == 3){
1348                                 NSString *string = @"";
1349                                 if(MSDPONOFFFlagNum == 1){
1350                                     NSArray *items0 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
1351                                     MS.D->P->switch1 = calloc([items0 count], sizeof(int));
1352                                     for (int i = 0;i < [items0 count];i++) {
1353                                         *(MS.D->P->switch1 + i) = [[items0 objectAtIndex:i] intValue];
1354                                         string = [string stringByAppendingFormat:@"%d",[[items0 objectAtIndex:i] intValue]];
1355                                         if(i+1 < [items0 count])
1356                                         string = [string stringByAppendingFormat:@","];
1357                                     }
1358                                 }if(MSDPONOFFFlagNum == 2){
1359                                     NSArray *items0 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
1360                                     MS.D->P->switch2 = calloc([items0 count], sizeof(int));
1361                                     for (int i = 0;i < [items0 count];i++) {
1362                                         *(MS.D->P->switch2 + i) = [[items0 objectAtIndex:i] intValue];
1363                                         string = [string stringByAppendingFormat:@"%d",[[items0 objectAtIndex:i] intValue]];
1364                                         if(i+1 < [items0 count])
1365                                             string = [string stringByAppendingFormat:@","];
1366                                     }
1367                                 }
1368                                 [MS.D->SCRPT addObject:[NSString stringWithString:string]];
1369                             
1370                                 }if(MS.D->P->type == 6){
1371                                     
1372                                     static bool okyo = false;
1373                                     static bool iine = false;
1374                                     static bool uhya = false;
1375                                     static bool muha = false;
1376                                     
1377                                     if(feraCnt <= 1) {
1378                                         feraCnt++;
1379                                         goto tugine;
1380                                     }
1381
1382                                     if(gimmetrow == 0){
1383                                         muha = false;
1384                                     }
1385                                     
1386                                     if([[fileDataArray objectAtIndex:i] isEqualToString:@"----"]){
1387                                         gimmetrow++;
1388                                         goto tugine;
1389                                     }
1390                                     
1391                                     if(okyo){
1392                                         NSArray *item10 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
1393                                     
1394                                         if(MS.D->P->S4.unitTypeFlag && [item10 count] > 1){
1395                                         
1396                                     if(!MS.D->P->S4.subj){
1397                                         MS.D->P->S4.subj = calloc(1, sizeof(UNIT2));
1398                                         sjt = MS.D->P->S4.subj;
1399                                     }
1400                                     else{
1401                                         MS.D->P->S4.subj->next = calloc(1, sizeof(UNIT2));
1402                                         if(pussyCnt == 1) sjt = MS.D->P->S4.subj;
1403                                         MS.D->P->S4.subj = MS.D->P->S4.subj->next;
1404                                     }
1405                                             
1406                                             MS.D->P->S4.subj->C = UC[[[item10 objectAtIndex:0] intValue]];
1407                                         MS.D->P->S4.subj->team = [[item10 objectAtIndex:1] intValue];
1408                                         MS.D->P->S4.subj->x = [[item10 objectAtIndex:2] intValue];
1409                                         MS.D->P->S4.subj->y = [[item10 objectAtIndex:3] intValue];
1410                                     
1411                                             pussyCnt++;
1412                                             
1413                                             NSString *string = @"";
1414                                             
1415                                                 string = [string stringByAppendingFormat:@"[%@]",MS.D->P->S4.subj->C.name];
1416                                             
1417
1418                                             
1419                                             
1420                                             [MS.D->SCRPT addObject:string];
1421                                         }
1422                                     }
1423                                     
1424                                     if(iine){
1425                                         NSArray *item10 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
1426                                         
1427                                         if(MS.D->P->S4.placeFlag && [item10 count] > 1){
1428                                         
1429
1430                                         if(!MS.D->P->S4.wayp){
1431                                             MS.D->P->S4.wayp = calloc(1, sizeof(PLACEMENT));
1432                                             wpt = MS.D->P->S4.wayp;
1433                                         }
1434                                         else{
1435                                             MS.D->P->S4.wayp->next = calloc(1, sizeof(PLACEMENT));
1436                                             if(pussyCnt == 1) wpt = MS.D->P->S4.wayp;
1437                                             MS.D->P->S4.wayp = MS.D->P->S4.wayp->next;
1438                                         }
1439                                         
1440                                         MS.D->P->S4.wayp->type = [[item10 objectAtIndex:0] intValue];
1441                                         MS.D->P->S4.wayp->x = [[item10 objectAtIndex:1] intValue];
1442                                         MS.D->P->S4.wayp->y = [[item10 objectAtIndex:2] intValue];
1443                                         MS.D->P->S4.wayp->z = [[item10 objectAtIndex:3] intValue];
1444                                         MS.D->P->S4.wayp->x2 = [[item10 objectAtIndex:4] intValue];
1445                                         MS.D->P->S4.wayp->y2 = [[item10 objectAtIndex:5] intValue];
1446                                         
1447                                             pussyCnt++;
1448                                         
1449                                             NSString *string = @"";
1450                                             
1451
1452                                                 if(MS.D->P->S4.wayp->type == 0){
1453                                                     
1454                                                     string = [string stringByAppendingFormat:@"[%d, %d]",MS.D->P->S4.wayp->x ,MS.D->P->S4.wayp->y];
1455                                                 }else if(MS.D->P->S4.wayp->type == 1){
1456                                                     
1457                                                     string = [string stringByAppendingFormat:@"[%d, %d, %d]",MS.D->P->S4.wayp->x ,MS.D->P->S4.wayp->y,MS.D->P->S4.wayp->z];
1458                                                 }else if(MS.D->P->S4.wayp->type == 2){
1459                                                     
1460                                                     string = [string stringByAppendingFormat:@"[%d, %d, %d, %d]",MS.D->P->S4.wayp->x ,MS.D->P->S4.wayp->y,MS.D->P->S4.wayp->x2,MS.D->P->S4.wayp->y2];
1461
1462                                                 }
1463
1464                                             [MS.D->SCRPT addObject:string];
1465                                         }
1466                                     }
1467                                     if(uhya){
1468                                         NSArray *item10 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
1469                                         
1470                                         if(MS.D->P->S4.objeFlag && [item10 count] > 1){
1471                                          
1472                                         
1473                                         if(!MS.D->P->S4.obje){
1474                                             MS.D->P->S4.obje = calloc(1, sizeof(UNIT2));
1475                                             ojt = MS.D->P->S4.obje;
1476                                         }
1477                                         else{
1478                                             MS.D->P->S4.obje->next = calloc(1, sizeof(UNIT2));
1479                                             if(pussyCnt == 1) ojt = MS.D->P->S4.obje;
1480                                             MS.D->P->S4.obje = MS.D->P->S4.obje->next;
1481                                         }
1482                                         
1483                                             
1484                                             MS.D->P->S4.obje->C = UC[[[item10 objectAtIndex:0] intValue]];
1485                                         MS.D->P->S4.obje->team = [[item10 objectAtIndex:1] intValue];
1486                                         MS.D->P->S4.obje->x = [[item10 objectAtIndex:2] intValue];
1487                                         MS.D->P->S4.obje->y = [[item10 objectAtIndex:3] intValue];
1488                                         
1489                                         pussyCnt++;
1490                                             
1491                                             NSString *string = @"";
1492                                             
1493                                             
1494                                             string = [string stringByAppendingFormat:@"範囲%d",MS.D->P->S4.objeRange];
1495                                             
1496                                                 string = [string stringByAppendingFormat:@"[%@]",MS.D->P->S4.obje->C.name];
1497                                             
1498                                             
1499                                             
1500                              
1501                                             [MS.D->SCRPT addObject:string];
1502                                         }
1503                                     }
1504                                     if(muha){
1505                                         NSArray *item10 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
1506                                         
1507                                         if(MS.D->P->S4.buildFlag && [item10 count] > 1){
1508                                             
1509                                         
1510                                         
1511                                         if(!MS.D->P->S4.build){
1512                                             MS.D->P->S4.build = calloc(1, sizeof(BUILD2));
1513                                             bdt = MS.D->P->S4.build;
1514                                         }
1515                                         else{
1516                                             MS.D->P->S4.build->next = calloc(1, sizeof(BUILD2));
1517                                             if(pussyCnt == 1)
1518                                                 bdt = MS.D->P->S4.build;
1519                                             MS.D->P->S4.build = MS.D->P->S4.build->next;
1520                                         }
1521                                         
1522                                             
1523                                         MS.D->P->S4.build->C = &BC[[[item10 objectAtIndex:0] intValue]];
1524                                         MS.D->P->S4.build->team = [[item10 objectAtIndex:1] intValue];
1525                                         MS.D->P->S4.build->x = [[item10 objectAtIndex:2] intValue];
1526                                         MS.D->P->S4.build->y = [[item10 objectAtIndex:3] intValue];
1527                                         
1528                                         pussyCnt++;
1529                                             
1530                                             NSString *string = @"";
1531                                             
1532                                             
1533                                                 if(MS.D->P->S4.build->C) string = [string stringByAppendingFormat:@"[%@]",MS.D->P->S4.build->C->name];
1534                                             else string = [string stringByAppendingFormat:@"[(null)]"];
1535                                             
1536                                     
1537                                             
1538                                         
1539                                             [MS.D->SCRPT addObject:string];
1540                                         }
1541                                     }
1542                                     
1543                                 tugine:{}
1544                                     
1545                                     if(gimmetrow == 4){
1546                                         uhya = false;
1547                                         muha = true;
1548                                     }
1549                                     
1550                                     if(gimmetrow == 3){
1551                                         iine = false;
1552                                         uhya = true;
1553                                     }
1554                                     
1555                                     if(gimmetrow == 2){
1556                                         okyo = false;
1557                                         iine = true;
1558                                     }
1559                                     
1560                                     if(gimmetrow == 1){
1561                                         okyo = true;
1562                                         muha = false;
1563                                     }
1564                                     
1565                                 }if(MS.D->P->type == 9){
1566                                 
1567                                 {
1568                                     if(!MS.D->P->memo) {MS.D->P->memo = @"";
1569                                     }
1570                                     NSString *string = @"";
1571                                     string = [[string stringByAppendingFormat:@"%@", [fileDataArray objectAtIndex:i]] retain];
1572                                     if([string isEqualToString:@""]) continue;
1573                                     if(pussyCnt > 0) MS.D->P->memo = [[MS.D->P->memo stringByAppendingFormat:@"\n"] retain];
1574                                     MS.D->P->memo = [[MS.D->P->memo stringByAppendingString:string] retain];
1575                                     if(![string isEqualToString:@""])
1576                                         [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@", [fileDataArray objectAtIndex:i]]];
1577                                     pussyCnt++;
1578                                 }
1579                             }if(MS.D->P->type == 22){
1580                                 
1581                                 NSString *string = @"";
1582                                 NSString *string2 = @"";
1583                                 NSArray *items10 = [[[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","] retain];
1584                                 if([items10 count] < 5) goto OMFGOUCH;
1585                                 if(!MS.D->P->S3){
1586                                     MS.D->P->S3 = calloc(1, sizeof(MAPSCRIPT3));
1587                                     MS3T = MS.D->P->S3;
1588                                 }
1589                                 else{
1590                                     if(mankoCnt == 1) MS3T = MS.D->P->S3;
1591                                     MS.D->P->S3->next = calloc(1, sizeof(MAPSCRIPT3));
1592                                     MS.D->P->S3 = MS.D->P->S3->next;
1593                                 }
1594                                 MS.D->P->S3->type = [[items10 objectAtIndex:0] intValue];
1595                                 MS.D->P->S3->team = [[items10 objectAtIndex:1] intValue];
1596                                 MS.D->P->S3->unitNum = [[items10 objectAtIndex:2] intValue];
1597                                 MS.D->P->S3->x = [[items10 objectAtIndex:3] intValue];
1598                                 MS.D->P->S3->y = [[items10 objectAtIndex:4] intValue];
1599                                 MS.D->P->S3->flag = [[items10 objectAtIndex:5] intValue];
1600                                 MS.D->P->S3->U = UC[MS.D->P->S3->unitNum];
1601                                 MS.D->P->S3->loadInt = [[items10 objectAtIndex:6] intValue];
1602                                 
1603                                 
1604                                 string2 = [NSString stringWithFormat:@"%@[%d,%d]", MS.D->P->S3->U.name, MS.D->P->S3->x, MS.D->P->S3->y];
1605                                 string2 = [string2 stringByAppendingFormat:@"%d", MS.D->P->S3->team];
1606                                 if(MS.D->P->S3->flag)
1607                                     string2 = [string2 stringByAppendingFormat:@"重"];
1608                                 
1609                                 if(![string2 isEqualToString:@""])
1610                                     [MS.D->SCRPT addObject:[NSString stringWithString:string2]];
1611                                      
1612                                 mankoCnt++;
1613                                 
1614                             }if(MS.D->P->type == 23){
1615                                 
1616                                 NSString *string = @"";
1617                                 NSString *string2 = @"";
1618                                 NSArray *items10 = [[[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","] retain];
1619                                 if([items10 count] < 4) goto OMFGOUCH;
1620                                 if(!MS.D->P->S5){
1621                                     MS.D->P->S5 = calloc(1, sizeof(MAPSCRIPT5));
1622                                     MS5T = MS.D->P->S5;
1623                                 }
1624                                 else{
1625                                     if(analCnt == 1) MS5T = MS.D->P->S5;
1626                                     MS.D->P->S5->next = calloc(1, sizeof(MAPSCRIPT5));
1627                                     MS.D->P->S5 = MS.D->P->S5->next;
1628                                 }
1629                                 MS.D->P->S5->type = [[items10 objectAtIndex:0] intValue];
1630                                 MS.D->P->S5->team = [[items10 objectAtIndex:1] intValue];
1631                                 MS.D->P->S5->unitNum = [[items10 objectAtIndex:2] intValue];
1632                                 MS.D->P->S5->x = [[items10 objectAtIndex:3] intValue];
1633                                 MS.D->P->S5->y = [[items10 objectAtIndex:4] intValue];
1634                                 MS.D->P->S5->U = UC[MS.D->P->S5->unitNum];
1635                                 MS.D->P->S5->saveInt = [[items10 objectAtIndex:5] intValue];
1636                                 
1637                                 string2 = [NSString stringWithFormat:@"%@[%d,%d]", MS.D->P->S5->U.name, MS.D->P->S5->x, MS.D->P->S5->y];
1638                                 string2 = [string2 stringByAppendingFormat:@"%d", MS.D->P->S5->team];
1639                                 
1640                                 if(![string2 isEqualToString:@""])
1641                                     [MS.D->SCRPT addObject:[NSString stringWithString:string2]];
1642                                 
1643                                 analCnt++;
1644                                 
1645                             }
1646
1647                             
1648                             }
1649                            // NSLog(@"aa");
1650                         OMFGOUCH:{}
1651                         }
1652             }
1653             scriptIndex++;
1654         }
1655         
1656         
1657         
1658         if(i+1 < [fileDataArray count]){
1659             NSArray *array100 = [[NSString stringWithFormat:@"%@◆", [fileDataArray objectAtIndex:i+1]] componentsSeparatedByString:@"◆"];
1660             NSString *string100 = [NSString stringWithFormat:@"%@", [array100 objectAtIndex:1]];
1661             NSRange rangeSearch100;
1662             if([array100 count] > 2) rangeSearch100 = [[fileDataArray objectAtIndex:i+1] rangeOfString:string100];
1663             NSArray *array101 = [[NSString stringWithFormat:@"%@●", [fileDataArray objectAtIndex:i+1]] componentsSeparatedByString:@"●"];
1664             NSString *string101 = [NSString stringWithFormat:@"%@", [array101 objectAtIndex:1]];
1665             NSRange rangeSearch101;
1666             if([array101 count] > 2) rangeSearch101 = [[fileDataArray objectAtIndex:i+1] rangeOfString:string101];
1667             
1668             if([array100 count] > 2 || [array101 count] > 2)
1669             if(rangeSearch100.location != NSNotFound || rangeSearch101.location != NSNotFound){
1670             if(MS.D)
1671                 if(MS.D->P){
1672                     if(MS.D->P->S3){
1673                         MS.D->P->S3 = MS3T;
1674                     }
1675                     if(MS.D->P->S5){
1676                         MS.D->P->S5 = MS5T;
1677                     }
1678                 }
1679             }
1680         }else{
1681             
1682         if(MS.D)
1683             if(MS.D->P){
1684                 if(MS.D->P->S3){
1685                     MS.D->P->S3 = MS3T;
1686                 }
1687                 if(MS.D->P->S5){
1688                     MS.D->P->S5 = MS5T;
1689                 }
1690             }
1691         }
1692         //NSLog(@"", i, MS);
1693     }
1694     
1695    
1696     //MS.D->P->S1.str = [MS.D->P->S1.str substringToIndex:MS.D->P->S1.str.length-4];
1697     if(MS.D) MS.D->P = MSDPtop;
1698     MS.D = MSDtop;
1699     
1700     MSDTOPP = MSDtop;
1701     supFlag = false;
1702     supFlag2 = false;
1703     MF[MFselectedRow+1].MS.D = MS.D;
1704     MF[MFselectedRow+1].MS = MS;
1705     mapSizeChangedFlag = true;
1706     mapLoadFlagForMSD = false;
1707     mapLoadFlagForMSD2 = false;
1708     
1709     //NSLog(@"%d", 1);
1710 }
1711
1712 -(void)saveMapChip{
1713     NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
1714     [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
1715
1716     NSString *fileData = @"";
1717     NSString *pathDATA = @"Map/";
1718
1719     for(int i = 1;i<= chipHeight;i++){
1720         for(int j = 1;j <= chipWidth;j++){
1721             fileData = [fileData stringByAppendingFormat:@"%2d", chipNum[j][i]];
1722             if(j == chipWidth) fileData = [fileData stringByAppendingFormat:@"\n"];
1723             else {
1724                 fileData = [fileData stringByAppendingFormat:@","];
1725             }
1726         }
1727     }
1728     fileData = [fileData stringByAppendingFormat:@"####\n"];
1729     for(int i = 1;i<= chipHeight;i++){
1730         for(int j = 1;j <= chipWidth;j++){
1731             fileData = [fileData stringByAppendingFormat:@"%2d", buildNum[j][i]+1];
1732             if(j == chipWidth) fileData = [fileData stringByAppendingFormat:@"\n"];
1733             else {
1734                 fileData = [fileData stringByAppendingFormat:@","];
1735             }
1736         }
1737     }
1738     fileData = [fileData stringByAppendingFormat:@"####\n"];
1739     for(int i = 1;i<= chipHeight;i++){
1740         for(int j = 1;j <= chipWidth;j++){
1741             if(unitNum[j][i] != -1){
1742                 fileData = [fileData stringByAppendingFormat:@"%d", unitNum[j][i]+1];
1743                 fileData = [fileData stringByAppendingFormat:@","];
1744                 fileData = [fileData stringByAppendingFormat:@"%d", j];
1745                 fileData = [fileData stringByAppendingFormat:@","];
1746                 fileData = [fileData stringByAppendingFormat:@"%d", i];
1747                 fileData = [fileData stringByAppendingFormat:@"\n"];
1748             }
1749         }
1750     }
1751     fileData = [fileData stringByAppendingFormat:@"####\n"];
1752     for(int i = 1;i<= chipHeight;i++){
1753         for(int j = 1;j <= chipWidth;j++){
1754             if(buildTeam[j][i] != -1){
1755                 fileData = [fileData stringByAppendingFormat:@"%d", buildTeam[j][i]];
1756                 fileData = [fileData stringByAppendingFormat:@","];
1757                 fileData = [fileData stringByAppendingFormat:@"%d", j];
1758                 fileData = [fileData stringByAppendingFormat:@","];
1759                 fileData = [fileData stringByAppendingFormat:@"%d", i];
1760                 fileData = [fileData stringByAppendingFormat:@"\n"];
1761             }
1762         }
1763     }
1764     fileData = [fileData stringByAppendingFormat:@"####\n"];
1765     for(int i = 1;i<= chipHeight;i++){
1766         for(int j = 1;j <= chipWidth;j++){
1767             if(unitTeam[j][i] != -1){
1768                 fileData = [fileData stringByAppendingFormat:@"%d", unitTeam[j][i]];
1769                 fileData = [fileData stringByAppendingFormat:@","];
1770                 fileData = [fileData stringByAppendingFormat:@"%d", j];
1771                 fileData = [fileData stringByAppendingFormat:@","];
1772                 fileData = [fileData stringByAppendingFormat:@"%d", i];
1773                 fileData = [fileData stringByAppendingFormat:@"\n"];
1774             }
1775         }
1776     }
1777     fileData = [fileData stringByAppendingFormat:@"####\n"];
1778     for(int i = 1;i<= chipHeight;i++){
1779         for(int j = 1;j <= chipWidth;j++){
1780             if(loadNum[j][i] != -1){
1781                 fileData = [fileData stringByAppendingFormat:@"%d", loadNum[j][i]+1];
1782                 fileData = [fileData stringByAppendingFormat:@","];
1783                 fileData = [fileData stringByAppendingFormat:@"%d", j];
1784                 fileData = [fileData stringByAppendingFormat:@","];
1785                 fileData = [fileData stringByAppendingFormat:@"%d", i];
1786                 fileData = [fileData stringByAppendingFormat:@"\n"];
1787             }
1788         }
1789     }
1790     
1791     fileData = [fileData stringByAppendingFormat:@"----\n"];
1792     
1793     fileData = [fileData stringByAppendingFormat:@"%d,%d\n", MF[MFselectedRow+1].MS.guildListRegistNum11, MF[MFselectedRow+1].MS.guildListRegistNum12];
1794     
1795     for(int i = 0;i < UCN;i++){
1796         if(i > 0) fileData = [fileData stringByAppendingFormat:@","];
1797         fileData = [fileData stringByAppendingFormat:@"%d", MF[MFselectedRow+1].MS.guildListRegist[i]];
1798     }
1799     
1800     fileData = [fileData stringByAppendingFormat:@"\n"];
1801     
1802     
1803     fileData = [fileData stringByAppendingFormat:@"%d,%d\n", MF[MFselectedRow+1].MS.guildListRegistNum21, MF[MFselectedRow+1].MS.guildListRegistNum22];
1804     
1805     for(int i = 0;i < UCN;i++){
1806         if(i > 0) fileData = [fileData stringByAppendingFormat:@","];
1807         fileData = [fileData stringByAppendingFormat:@"%d", MF[MFselectedRow+1].MS.guildListRegist2[i]];
1808     }
1809     
1810     fileData = [fileData stringByAppendingFormat:@"\n"];
1811     
1812     
1813     fileData = [fileData stringByAppendingFormat:@"----\n"];
1814     fileData = [fileData stringByAppendingFormat:@"%d|%d",
1815                 MF[MFselectedRow+1].MS.EGClight.endType1,
1816                 MF[MFselectedRow+1].MS.EGClight.endType2];
1817     fileData = [fileData stringByAppendingFormat:@"\n"];
1818     for (int i = 0; i < 64;i++) {
1819         if(i == 0 && !MF[MFselectedRow+1].MS.EGClight.etValue1[i])
1820             fileData = [fileData stringByAppendingFormat:@"NULL"];
1821         if(!MF[MFselectedRow+1].MS.EGClight.etValue1[i]) break;
1822         if(i > 0) fileData = [fileData stringByAppendingFormat:@"|"];
1823         fileData = [fileData stringByAppendingFormat:@"%@",
1824                     MF[MFselectedRow+1].MS.EGClight.etValue1[i]];
1825     }fileData = [fileData stringByAppendingFormat:@"\n"];
1826     
1827     //NSLog(@"%@", fileData);
1828     
1829     for (int i = 0; i < 64;i++) {
1830         if(i == 0 && !MF[MFselectedRow+1].MS.EGClight.etValue2[i])
1831             fileData = [fileData stringByAppendingFormat:@"NULL"];
1832         if(!MF[MFselectedRow+1].MS.EGClight.etValue2[i]) break;
1833         if(i > 0) fileData = [fileData stringByAppendingFormat:@"|"];
1834         fileData = [fileData stringByAppendingFormat:@"%@",
1835                     MF[MFselectedRow+1].MS.EGClight.etValue2[i]];
1836     }fileData = [fileData stringByAppendingFormat:@"\n"];
1837     
1838     fileData = [fileData stringByAppendingFormat:@"####\n"];
1839     
1840     fileData = [fileData stringByAppendingFormat:@"%d|%d",
1841                 MF[MFselectedRow+1].MS.EGCdark.endType1,
1842                 MF[MFselectedRow+1].MS.EGCdark.endType2];
1843     fileData = [fileData stringByAppendingFormat:@"\n"];
1844     for (int i = 0; i < 64;i++) {
1845         if(i == 0 && !MF[MFselectedRow+1].MS.EGCdark.etValue1[i])
1846             fileData = [fileData stringByAppendingFormat:@"NULL"];
1847         if(!MF[MFselectedRow+1].MS.EGCdark.etValue1[i]) break;
1848         if(i > 0) fileData = [fileData stringByAppendingFormat:@"|"];
1849         fileData = [fileData stringByAppendingFormat:@"%@",
1850                     MF[MFselectedRow+1].MS.EGCdark.etValue1[i]];
1851     }fileData = [fileData stringByAppendingFormat:@"\n"];
1852     
1853     for (int i = 0; i < 64;i++) {
1854         if(i == 0 && !MF[MFselectedRow+1].MS.EGCdark.etValue2[i])
1855             fileData = [fileData stringByAppendingFormat:@"NULL"];
1856         if(!MF[MFselectedRow+1].MS.EGCdark.etValue2[i]) break;
1857         if(i > 0) fileData = [fileData stringByAppendingFormat:@"|"];
1858         fileData = [fileData stringByAppendingFormat:@"%@",
1859                     MF[MFselectedRow+1].MS.EGCdark.etValue2[i]];
1860     }fileData = [fileData stringByAppendingFormat:@"\n"];
1861     
1862     fileData = [fileData stringByAppendingFormat:@"----\n"];
1863     
1864     fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d,%d,%d,%d,%d,%d\n",
1865                 playerSet1, playerSet2, battleSetMode,
1866                 scenarioSetMode,scenarioNumbCrnt,scenarioNumbNext,
1867                 employAllowedFlag, buildAllowedFlag, summonAllowedFlag];
1868     fileData = [fileData stringByAppendingFormat:@"========\nEVENT\n========\n"];
1869     
1870     MAPSCRIPT MS = MF[MFselectedRow+1].MS;
1871     MS.D = MSDTOPP;
1872     int index = 0;
1873     while(MS.D){
1874         MAPSCRIPT0 *MSPtop = MS.D->P;
1875         fileData = [fileData stringByAppendingFormat:@"●"];
1876         fileData = [fileData stringByAppendingFormat:@"%@ ", [MS.SCRPTname objectAtIndex:index]];
1877         fileData = [fileData stringByAppendingFormat:@"%d[%d,%d]", MS.D->type,MS.D->x, MS.D->y];
1878         fileData = [fileData stringByAppendingFormat:@"%dET[%g,%g,%d]",
1879                     MS.D->ETtype,MS.D->ET1, MS.D->ET2, MS.D->onlyInitialDeley];
1880         if(MS.D->switch1)
1881         if(*MS.D->switch1 > 0){
1882         fileData = [fileData stringByAppendingFormat:@"ON["];
1883         for(int i = 0;*(MS.D->switch1+i) > 0;i++){
1884             if(i>0)
1885                 fileData = [fileData stringByAppendingFormat:@","];
1886             fileData = [fileData stringByAppendingFormat:@"%d", *(MS.D->switch1+i)];
1887         }
1888             fileData = [fileData stringByAppendingFormat:@"]"];
1889         }
1890         if(MS.D->switch2)
1891         if(*MS.D->switch2 > 0){
1892         fileData = [fileData stringByAppendingFormat:@"OFF["];
1893         for(int i = 0;*(MS.D->switch2+i) > 0;i++){
1894             if(i>0)
1895                 fileData = [fileData stringByAppendingFormat:@","];
1896             fileData = [fileData stringByAppendingFormat:@"%d", *(MS.D->switch2+i)];
1897         }
1898             fileData = [fileData stringByAppendingFormat:@"]"];
1899         }
1900         fileData = [fileData stringByAppendingFormat:@"\n"];
1901         
1902         if(!MS.D->P) {
1903             MS.D = MS.D->next;
1904             
1905             continue;
1906         
1907         }
1908         
1909         while(MS.D->P){
1910             if(MS.D->P->type == 0){
1911                 fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
1912                 fileData = [fileData stringByAppendingFormat:@"◆0,"];
1913                 fileData = [fileData stringByAppendingFormat:@"%@,", MS.D->P->S1.nameID];
1914                 fileData = [fileData stringByAppendingFormat:@"%@,", MS.D->P->S1.name];
1915                 fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->S1.iName];
1916                 fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->S1.str];
1917             }if(MS.D->P->type == 1){
1918                 fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
1919                 fileData = [fileData stringByAppendingFormat:@"◆1\n"];
1920                 
1921                 MAPSCRIPT2 *MS2T = MS.D->P->S2;
1922                 while (MS.D->P->S2) {
1923                     fileData = [fileData stringByAppendingFormat:@"%@,", MS.D->P->S2->selection];
1924                     fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->S2->labelJump];
1925                     MS.D->P->S2 = MS.D->P->S2->next;
1926                 }MS.D->P->S2 = MS2T;
1927             
1928             }
1929             if(MS.D->P->type == 3){
1930                 fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
1931                 fileData = [fileData stringByAppendingFormat:@"◆3,"];
1932                 if(MS.D->P->switch1) if(MS.D->P->switch1 > 0) fileData = [fileData stringByAppendingFormat:@"ON"];
1933                 if(MS.D->P->switch2) if(MS.D->P->switch2 > 0) fileData = [fileData stringByAppendingFormat:@"OFF"];
1934                 fileData = [fileData stringByAppendingFormat:@"\n"];
1935                 if(MS.D->P->switch1) for(int i = 0;*(MS.D->P->switch1+ i) > 0;i++){
1936                     fileData = [fileData stringByAppendingFormat:@"%d", *(MS.D->P->switch1 + i)];
1937                     if(*(MS.D->P->switch1 + i + 1) > 0) fileData = [fileData stringByAppendingFormat:@","];
1938                 }
1939                 if(MS.D->P->switch2) for(int i = 0;*(MS.D->P->switch2+i) > 0;i++){
1940                     fileData = [fileData stringByAppendingFormat:@"%d", *(MS.D->P->switch2 + i)];
1941                     if(*(MS.D->P->switch2 + i + 1) > 0) fileData = [fileData stringByAppendingFormat:@","];
1942                 }
1943                 fileData = [fileData stringByAppendingFormat:@"\n"];
1944             }if(MS.D->P->type == 5){
1945                 fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
1946                 fileData = [fileData stringByAppendingFormat:@"◆6\n"];
1947                 fileData = [fileData stringByAppendingFormat:@"%d, %d,", MS.D->P->timerMin, MS.D->P->timerSec];
1948                 fileData = [fileData stringByAppendingFormat:@"%d, %d, %d\n", MS.D->P->timerRun, MS.D->P->timerMode, MS.D->P->timerVisible];
1949                 
1950             }if(MS.D->P->type == 6){
1951                 fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
1952                 fileData = [fileData stringByAppendingFormat:@"◆6,"];
1953                 MAPSCRIPT4 MS4 = MS.D->P->S4;
1954                 fileData = [fileData stringByAppendingFormat:@"%@,%@\n", MS4.COMPrabel,MS4.FAILrabel];
1955                 fileData = [fileData stringByAppendingFormat:@"%d,%d\n", MS4.suicchiFlag,MS4.suicchiONOFF];
1956                 if(MS4.suicchi)
1957                 for (int i = 0;*(MS4.suicchi + i);i++) {
1958                     if(i > 0) fileData = [fileData stringByAppendingFormat:@","];
1959                     fileData = [fileData stringByAppendingFormat:@"%d", *(MS4.suicchi + i)];
1960                 }fileData = [fileData stringByAppendingFormat:@"\n"];
1961                 fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d,%d,%d,%d\n", MS4.hensuFlag,MS4.hensu1,MS4.teisuFlag,MS4.teisuValue,MS4.hensu2flag,MS4.hensu2,MS4.hensuType
1962                             ];
1963                 fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d\n", MS4.timerFlag,MS4.timerMin,MS4.timerSec,MS4.timerType];
1964                 fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d,%d,%d\n",
1965                             MS4.unitNumFlag,MS4.unitTypeFlag,MS4.placeFlag,MS4.unitCMDflag,MS4.objeFlag,MS4.buildFlag];
1966                 fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d,%d\n",
1967                             MS4.team,MS4.unitNum,MS4.unitType,MS4.unitCMD,MS4.objeRange];
1968                 
1969                 fileData = [fileData stringByAppendingFormat:@"----\n"];
1970                 UNIT2 *sj = MS4.subj;
1971                 UNIT2 *sjt = sj;
1972                 while (sj) {
1973                     fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d\n", sj->C.chipNumb ,sj->team, sj->x, sj->y];
1974                     sj = sj->next;
1975                 }sj = sjt;
1976                 fileData = [fileData stringByAppendingFormat:@"----\n"];
1977                 
1978                 PLACEMENT *wp = MS4.wayp;
1979                 PLACEMENT *wpt = wp;
1980                 while (wp) {
1981                     fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d,%d,%d\n", wp->type ,wp->x ,wp->y, wp->z, wp->x2,wp->y2];
1982                     wp = wp->next;
1983                 }wp = wpt;
1984                 fileData = [fileData stringByAppendingFormat:@"----\n"];
1985                 
1986                 UNIT2 *oj = MS4.obje;
1987                 UNIT2 *ojt = sj;
1988                 while (oj) {
1989                     fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d\n", oj->C.chipNumb ,oj->team, oj->x, oj->y];
1990                     oj = oj->next;
1991                 }oj = ojt;
1992                 fileData = [fileData stringByAppendingFormat:@"----\n"];
1993                 
1994                 BUILD2 *bd = MS4.build;
1995                 BUILD2 *bdt = bd;
1996                 while (bd) {
1997                     fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d\n", bd->C->chipNumb, bd->team, bd->x, bd->y];
1998                     bd = bd->next;
1999                 }bd = bdt;
2000                 
2001             }
2002             if(MS.D->P->type == 7){
2003                 fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
2004                 fileData = [fileData stringByAppendingFormat:@"◆7\n"];
2005                 fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->label];
2006             }if(MS.D->P->type == 8){
2007                 fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
2008                 fileData = [fileData stringByAppendingFormat:@"◆8\n"];
2009                 fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->labelJump];
2010             }if(MS.D->P->type == 9){
2011                 fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
2012                 fileData = [fileData stringByAppendingFormat:@"◆9\n"];
2013                 fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->memo];
2014             }if(MS.D->P->type == 10){
2015                 fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
2016                 fileData = [fileData stringByAppendingFormat:@"◆10\n"];
2017                 fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d,%d,%d"
2018                             @",%d,%d,%d,%d,%d"
2019                             @",%d,%d,%d,%d,%d\n",
2020                             MS.D->P->S6.team,
2021                             MS.D->P->S6.RCsupply, MS.D->P->S6.RCsupplyAdd, MS.D->P->S6.RCsupplyValue,
2022                             MS.D->P->S6.RCsupplyS, MS.D->P->S6.RCsupplySelect,
2023                             MS.D->P->S6.RCfood, MS.D->P->S6.RCfoodAdd, MS.D->P->S6.RCfoodValue,
2024                             MS.D->P->S6.RCfoodS, MS.D->P->S6.RCfoodSelect,
2025                             MS.D->P->S6.RCmoney, MS.D->P->S6.RCmoneyAdd, MS.D->P->S6.RCmoneyValue,
2026                             MS.D->P->S6.RCmoneyS, MS.D->P->S6.RCmoneySelect];
2027             }if(MS.D->P->type == 22){
2028                 fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
2029                 fileData = [fileData stringByAppendingFormat:@"◆22\n"];
2030                 MAPSCRIPT3 *MS3T = MS.D->P->S3;
2031                 while(MS.D->P->S3){
2032                     fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,", MS.D->P->S3->type, MS.D->P->S3->team, MS.D->P->S3->unitNum];
2033                     fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d\n", MS.D->P->S3->x, MS.D->P->S3->y,MS.D->P->S3->flag, MS.D->P->S3->loadInt];
2034                     MS.D->P->S3 = MS.D->P->S3->next;
2035                 }MS.D->P->S3 = MS3T;
2036             }if(MS.D->P->type == 23){
2037                 fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
2038                 fileData = [fileData stringByAppendingFormat:@"◆23\n"];
2039                 MAPSCRIPT5 *MS5T = MS.D->P->S5;
2040                 while(MS.D->P->S5){
2041                     fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,", MS.D->P->S5->type, MS.D->P->S5->team, MS.D->P->S5->unitNum];
2042                     fileData = [fileData stringByAppendingFormat:@"%d,%d,%d\n", MS.D->P->S5->x, MS.D->P->S5->y, MS.D->P->S5->saveInt];
2043                     MS.D->P->S5 = MS.D->P->S5->next;
2044                 }MS.D->P->S5 = MS5T;
2045             }if(MS.D->P->type == 25){
2046                 fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
2047                 fileData = [fileData stringByAppendingFormat:@"◆25\n"];
2048                 fileData = [fileData stringByAppendingFormat:@"%g\n", MS.D->P->wait];
2049             }if(MS.D->P->type == 28){
2050                 fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
2051                 fileData = [fileData stringByAppendingFormat:@"◆28\n"];
2052                 fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->BGM.fName];
2053             }if(MS.D->P->type == 30){
2054                 fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
2055                 fileData = [fileData stringByAppendingFormat:@"◆30\n"];
2056                 fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->SE.fName];
2057             }if(MS.D->P->type == 35){
2058                 fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
2059                 fileData = [fileData stringByAppendingFormat:@"◆35\n"];
2060                 fileData = [fileData stringByAppendingFormat:@"%d,%d,", MS.D->P->gaov.gaovFlag,MS.D->P->gaov.edcdFlag];
2061                 fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->gaov.fNname];
2062                 
2063                 
2064                 if(1){
2065                     NSData *imgData = [MS.D->P->gaov.img TIFFRepresentation];
2066                     NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:imgData];
2067                     imgData = [brep representationUsingType:NSPNGFileType properties:nil];
2068                     
2069                     NSString *imgPath = @"data/Others/img/";
2070                     imgPath = [imgPath stringByAppendingFormat:@"%@", MS.D->P->gaov.fNname];
2071                     
2072                     [imgData writeToFile:imgPath atomically:YES];
2073                 }
2074                 
2075                 
2076             }if(MS.D->P->type == 36){
2077                 fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
2078                 fileData = [fileData stringByAppendingFormat:@"◆36\n"];
2079                 fileData = [fileData stringByAppendingFormat:@"%d,%d\n", MS.D->P->sc.scFlag,MS.D->P->sc.edcdFlag];
2080                 
2081                 
2082                 
2083             }if(MS.D->P->type == 37){
2084                 fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
2085                 fileData = [fileData stringByAppendingFormat:@"◆37\n"];
2086                 fileData = [fileData stringByAppendingFormat:@"%d\n", MS.D->P->titleBack];
2087             }
2088
2089             MS.D->P = MS.D->P->next;
2090         }
2091         
2092         MS.D->P = MSPtop;
2093         MS.D = MS.D->next;
2094         index++;
2095     }
2096     
2097     NSLog(@"%@", fileData);
2098     MS = MF[MFselectedRow+1].MS;
2099     pathDATA = [pathDATA stringByAppendingFormat:@"%@", saveMapDataName];
2100     [[NSFileManager defaultManager] createFileAtPath:pathDATA contents:nil attributes:nil];
2101     [fileData writeToFile:pathDATA atomically:YES encoding:NSUTF8StringEncoding error:nil];
2102
2103     
2104     [mapEditor initFileDirectoryOthers];
2105     
2106 }
2107
2108
2109 @end