OSDN Git Service

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