5 // Created by Killery on 2012/12/15.
6 // Copyright (c) 2012年 Killery. All rights reserved.
11 @implementation MapView
13 - (id)initWithFrame:(NSRect)frame
15 self = [super initWithFrame:frame];
19 scheduledTimerWithTimeInterval:1.0/30
21 selector:@selector(EventLoop00:)
28 chip = [[self LoadImage:@"マス.png"] retain];
29 chip2 = [[self LoadImage:@"セレクター.png"] retain];
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];
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];
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];
59 for (int i = 0; i <= chipHeight;i++)
60 for (int j = 0;j<= chipWidth;j++)
64 NSRect seRect = NSMakeRect(0, 0, chipHeight*32, chipWidth*32);
65 [self setFrame:seRect];
77 -(void)EventLoopMapView{
79 if(saveMapChipFlag){saveMapChipFlag = false;
82 if(mapSizeChangedFlag){mapSizeChangedFlag = false;
85 seRect.size.height = chipHeight*32;
86 seRect.size.width = chipWidth*32;
88 [self setFrame:seRect];
90 if(initMapChipNumbFlag){initMapChipNumbFlag = false;
92 for(int i = 0;i <= chipWidth;i++){
93 for(int j = 0;j <= chipHeight;j++){
106 if(loadMapListSubmitFlag){loadMapListSubmitFlag = false;
110 seRect.size.height = chipHeight*32;
111 seRect.size.width = chipWidth*32;
112 [self setFrame:seRect];
115 if(EEGCslctFlag || eventPosFlag || EDbranchUnitFlag || EDbranchPlaceFlag || EDbranchObjeFlag || EDbranchBuildFlag){
116 static int clickFrame = 0;
117 if(clickUpCnt%2 == 1){
124 if(clickUpCnt%2 == 0 && clickFrame >0){
125 doubleClickedFlag = true;
130 if(EDappearFlag || EDappearPosFlag || EDdissappearPosFlag){
131 static int clickFrame = 0;
132 if(clickUpCnt%2 == 1){
139 if(clickUpCnt%2 == 0 && clickFrame >0){
140 doubleClickedFlag = true;
145 [self setNeedsDisplay:YES];
153 -(NSImage*)LoadImage:(NSString*)name{
154 NSImage *image = [NSImage imageNamed:name];
155 if(image == nil) return nil;
159 -(void)DrawImage:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy{
161 frRect.size.height = image.size.height;
162 frRect.size.width = image.size.width;
170 drRect.size.height = 32;
171 drRect.size.width = 32;
173 [image drawInRect:drRect fromRect:frRect operation:NSCompositeSourceOver fraction:1.0f respectFlipped:YES hints:nil];
177 -(void)DrawImage2:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy{
179 frRect.size.height = image.size.height;
180 frRect.size.width = image.size.width;
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;
191 [image drawInRect:drRect fromRect:frRect operation:NSCompositeSourceOver fraction:1.0f respectFlipped:YES hints:nil];
195 -(void)mouseDown:(NSEvent *)theEvent{
196 drugPoint = [self convertPoint:[theEvent locationInWindow] fromView:nil];
198 posX = (int)drugPoint.x/32 + 1;
199 posY = (int)drugPoint.y/32 + 1;
201 eSlctX = (int)drugPoint.x/32 + 1;
202 eSlctY = (int)drugPoint.y/32 + 1;
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;
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;}
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;
230 -(void)mouseUp:(NSEvent *)theEvent{
232 clickUpCnt = (int)[theEvent clickCount];
236 if([theEvent clickCount] == 2){
244 -(void)mouseDragged:(NSEvent *)theEvent{
245 drugPoint = [self convertPoint:[theEvent locationInWindow] fromView:nil];
247 posX = (int)drugPoint.x/32+1;
248 posY = (int)drugPoint.y/32+1;
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;
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;}
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;
276 - (void)drawRect:(NSRect)dirtyRect
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];
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];
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];
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];
310 [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0];
313 -(void)initMapChipFileDirectory{
314 NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
315 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
317 NSData *InitialData = [NSData dataWithContentsOfFile:@"Map/preset.txt"];
319 NSString *path = @"Map";
320 NSString *pathDATA = @"Map/_MAP_CLEAR.txt";
321 NSString *fileData = nil;
324 [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
325 [[NSFileManager defaultManager] createFileAtPath:pathDATA contents:nil attributes:nil];
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"
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"
381 fileData = [NSString stringWithFormat:@"%@", data2];
383 [fileData writeToFile:pathDATA atomically:YES encoding:NSUTF8StringEncoding error:nil];
386 for(int i = 0;i<=1000;i++){
387 for(int j = 0;j<= 1000;j++){
392 buildTeam[i][j] = -1;
397 fileData = [NSString stringWithContentsOfFile:pathDATA encoding:NSUTF8StringEncoding error:nil];
398 fileDataArray = [fileData componentsSeparatedByString:@"\n"];
401 int chipIndexDelta = 0;
402 int chipIndexDelta2 = 0;
404 NSLog(@"fileDataArray Count:%d", (int)[fileDataArray count]);
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:@","];
412 NSRange rangeSearch = [[items objectAtIndex:0] rangeOfString:@"####"];
414 if(rangeSearch.location != NSNotFound){
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;
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;
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;
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];
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];
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;
447 NSRange rangeSearch2 = [[items objectAtIndex:0] rangeOfString:@"----"];
449 if(rangeSearch2.location != NSNotFound){
455 mapSizeChangedFlag = true;
459 NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
460 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
462 NSString *fileData = @"";
463 NSString *pathDATA = @"Map/";
465 for(int i = 0;i<=1000;i++){
466 for(int j = 0;j<= 1000;j++){
471 buildTeam[i][j] = -1;
476 pathDATA = [pathDATA stringByAppendingFormat:@"%@", MF[MFselectedRow+1].fileName];
477 }else if(mapInitFlag){
478 pathDATA = [[pathDATA stringByAppendingFormat:@"%@", [SC[storyNumb].nameMAP objectAtIndex:scenarioNumb]] retain];
481 NSLog(@"%@", pathDATA);
483 fileData = [NSString stringWithContentsOfFile:pathDATA encoding:NSUTF8StringEncoding error:nil];
484 fileDataArray = [fileData componentsSeparatedByString:@"\n"];
488 for (int i = 1;i < 512;i++) {
489 if([[SC[storyNumb].nameMAP objectAtIndex:scenarioNumb] isEqualToString:[NSString stringWithFormat:@"%@", MF[i].fileName]])
496 mapChipDataLoadFail = true;
501 int chipIndexDelta = 0;
502 int chipIndexDelta2 = 0;
504 NSLog(@"fileDataArray Count:%d", (int)[fileDataArray count]);
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:@","];
512 NSRange rangeSearch = [[items objectAtIndex:0] rangeOfString:@"####"];
514 if(rangeSearch.location != NSNotFound){
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;
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;
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;
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];
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];
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;
547 NSRange rangeSearch2 = [[items objectAtIndex:0] rangeOfString:@"----"];
549 if(rangeSearch2.location != NSNotFound){
554 //NSLog(@"%d", unitNum[1][1]);
556 NSArray *items00 = [[fileDataArray objectAtIndex:indexCnt] componentsSeparatedByString:@","];
558 MF[MFselectedRow+1].MS.guildListRegistNum11 = [[items00 objectAtIndex:0] intValue];
559 MF[MFselectedRow+1].MS.guildListRegistNum12 = [[items00 objectAtIndex:1] intValue];
563 NSArray *items0 = [[fileDataArray objectAtIndex:indexCnt] componentsSeparatedByString:@","];
565 for(int i = 0;i < [items0 count];i++){
566 MF[MFselectedRow+1].MS.guildListRegist[i] = [[items0 objectAtIndex:i] intValue];
571 items00 = [[fileDataArray objectAtIndex:indexCnt] componentsSeparatedByString:@","];
573 MF[MFselectedRow+1].MS.guildListRegistNum21 = [[items00 objectAtIndex:0] intValue];
574 MF[MFselectedRow+1].MS.guildListRegistNum22 = [[items00 objectAtIndex:1] intValue];
578 items0 = [[fileDataArray objectAtIndex:indexCnt] componentsSeparatedByString:@","];
580 for(int i = 0;i < [items0 count];i++){
581 MF[MFselectedRow+1].MS.guildListRegist2[i] = [[items0 objectAtIndex:i] intValue];
588 bool EGdarkFlag = false;
593 for(int i = indexCnt;i < [fileDataArray count];i++){
594 NSArray *items = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@"|"];
597 NSRange rangeSearch = [[items objectAtIndex:0] rangeOfString:@"####"];
599 if(rangeSearch.location != NSNotFound){
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];
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];
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];
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];
645 if([[fileDataArray objectAtIndex:i] isEqualToString:@"----"])
651 NSArray *items = [[fileDataArray objectAtIndex:indexCnt] componentsSeparatedByString:@","];
653 playerSet1 = [[items objectAtIndex:0] intValue];
654 playerSet2 = [[items objectAtIndex:1] intValue];
655 battleSetMode = [[items objectAtIndex:2] intValue];
657 MF[MFselectedRow+1].MS.playerSet1 = playerSet1;
658 MF[MFselectedRow+1].MS.playerSet2 = playerSet2;
659 MF[MFselectedRow+1].MS.battleSetMode = battleSetMode;
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;
670 MAPSCRIPT MS = MF[MFselectedRow+1].MS;
671 [MS.SCRPTname removeAllObjects];
672 MAPSCRIPTD *MSDtop = NULL;
673 MAPSCRIPT0 *MSDPtop = NULL;
675 fileData = [NSString stringWithContentsOfFile:pathDATA encoding:NSUTF8StringEncoding error:nil];
676 fileDataArray = [fileData componentsSeparatedByString:@"========\nEVENT\n========\n"];
678 NSString *fileData2 = [fileDataArray objectAtIndex:1];
680 fileDataArray = [fileData2 componentsSeparatedByString:@"\n"];
685 static bool supFlag = false;
686 static bool supFlag2 = false;
687 static bool asdflag = false;
689 for (int i = 0;i < [fileDataArray count]; i++) {
690 NSArray *items = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
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;
707 if (rangeSearch.location == !NSNotFound) {
710 //MS.D->P->S1.str = [MS.D->P->S1.str substringToIndex:MS.D->P->S1.str.length-3];
713 MS.D->next = calloc(1, sizeof(MAPSCRIPTD));
719 MS.D = calloc(1, sizeof(MAPSCRIPTD));
721 MS.SCRPTname = [NSMutableArray new];
731 NSArray *items2 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@" "];
732 NSString *string = [[items2 objectAtIndex:0] substringFromIndex:1];
734 [MS.SCRPTname addObject:string];
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];
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];
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];
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];
779 //NSLog(@"OMG %d,%d,%d", MS.D->type,MS.D->x,MS.D->y);
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) {
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;
811 MS.D->SCRPT = [NSMutableArray new];
816 MS.D->SCRPT = [NSMutableArray new];
822 MS.D->P = calloc(1, sizeof(MAPSCRIPT0));
825 MS.D->SCRPT = [NSMutableArray new];
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;
834 NSArray *items0 = [[items objectAtIndex:0] componentsSeparatedByString:@"◆"];
836 indent = [[items0 objectAtIndex:0] intValue];
837 MS.D->P->type = [[items0 objectAtIndex:1] intValue];
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];
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];
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];
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]];
873 if(MS.D->P->type == 1){
874 [MS.D->SCRPT addObject:@"◆選択肢の表示"];
876 }if(MS.D->P->type == 22){
877 [MS.D->SCRPT addObject:@"◆ユニット出現"];
878 }if(MS.D->P->type == 23){
879 [MS.D->SCRPT addObject:@"◆ユニット消去"];
883 if(MS.D->P->type == 3){
884 MS.D->P->indent = indent;
885 if([[items objectAtIndex:1] isEqualToString:@"ON"]){
886 MSDPONOFFFlagNum = 1;
888 if([[items objectAtIndex:1] isEqualToString:@"OFF"]){
889 MSDPONOFFFlagNum = 2;
894 if(MSDPONOFFFlagNum == 1) string = @"ON";
895 if(MSDPONOFFFlagNum == 2) string = @"OFF";
897 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆スイッチの操作%@", string]];
899 if(MS.D->P->type == 5){
900 MS.D->P->indent = indent;
902 NSArray *items10 = [[items9 objectAtIndex:0] componentsSeparatedByString:@","];
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];
911 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆タイマーの操作"]];
914 if(MS.D->P->timerRun) timerRun = [@"始動" retain];
915 else timerRun = [@"停止" retain];
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];
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;
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];
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];
937 NSArray *item102 = [[fileDataArray objectAtIndex:i+2] componentsSeparatedByString:@","];
939 if(MS.D->P->S4.suicchiFlag)
940 for (int i = 0; [item102 count] > i;i++) {
942 MS.D->P->S4.suicchi = calloc([item102 count], sizeof(int));
944 *(MS.D->P->S4.suicchi + i) = [[item102 objectAtIndex:i] intValue];
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];
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];
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];
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];
979 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆条件分岐"]];
981 NSString *str = [NSString stringWithFormat:@"ジャンプ 真
\b\b:%@ 偽:%@", MS.D->P->S4.COMPrabel,MS.D->P->S4.FAILrabel];
983 [MS.D->SCRPT addObject:str];
985 if(MS.D->P->S4.suicchiFlag){
986 NSString *string = @"";
987 if(MS.D->P->S4.suicchiONOFF == 0)
988 string = [string stringByAppendingFormat:@"スイッチON"];
990 string = [string stringByAppendingFormat:@"スイッチOFF"];
992 if(MS.D->P->S4.suicchi)
993 for (int i = 0;*(MS.D->P->S4.suicchi + i);i++) {
995 string = [string stringByAppendingFormat:@","];
996 string = [string stringByAppendingFormat:@"%d",*(MS.D->P->S4.suicchi + i)];
998 [MS.D->SCRPT addObject:string];
1000 if(MS.D->P->S4.hensuFlag){
1001 NSString *string = @"変数";
1003 string = [string stringByAppendingFormat:@"%dが", MS.D->P->S4.hensu1];
1005 if(MS.D->P->S4.teisuFlag == 0)
1006 string = [string stringByAppendingFormat:@""];
1008 string = [string stringByAppendingFormat:@"定数%d", MS.D->P->S4.teisuValue];
1010 if(MS.D->P->S4.hensu2flag == 0)
1011 string = [string stringByAppendingFormat:@""];
1013 string = [string stringByAppendingFormat:@"変数%d", MS.D->P->S4.hensu2];
1016 if(MS.D->P->S4.hensuType == 0) {
1017 string = [string stringByAppendingFormat:@"と同値"];
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:@"以外"];
1031 if(MS.D->P->S4.teisuFlag == 0 && MS.D->P->S4.hensu2flag == 0){
1032 string = [NSString stringWithFormat:@""];
1034 [MS.D->SCRPT addObject:string];
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:@"以下"];
1048 [MS.D->SCRPT addObject:string];
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:@"以下"];
1060 [MS.D->SCRPT addObject:string];
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:@"説得を選択した時"];
1073 [MS.D->SCRPT addObject:string];
1078 if(MS.D->P->type == 7){
1079 MS.D->P->indent = indent;
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;
1088 MS.D->P->labelJump = [[items9 objectAtIndex:0] retain];
1089 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆ラベルジャンプ"]];
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;
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:@","];
1104 MS.D->P->indent = indent;
1106 MS.D->P->S6.team = [[items90 objectAtIndex:0] intValue];
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];
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];
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];
1126 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆リソースの増減"]];
1129 if(MS.D->P->S6.team == 0){
1133 if(MS.D->P->S6.RCsupply){
1134 NSString *string = @"";
1135 string = [string stringByAppendingFormat:@"チーム%d ", MS.D->P->S6.team];
1137 if(MS.D->P->S6.RCsupplyAdd){
1138 string = [string stringByAppendingString:@"資源増加:"];
1140 string = [string stringByAppendingString:@"資源減少:"];
1142 if(MS.D->P->S6.RCsupplyS){
1143 string = [string stringByAppendingFormat:@"%d", MS.D->P->S6.RCsupplyValue];
1145 string = [string stringByAppendingFormat:@"[%d:%@]",
1146 MS.D->P->S6.RCsupplySelect-1, HensuuName[MS.D->P->S6.RCsupplySelect-1]];
1148 [MS.D->SCRPT addObject:string];
1151 if(MS.D->P->S6.RCfood){
1152 NSString *string = @"";
1153 string = [string stringByAppendingFormat:@"チーム%d ", MS.D->P->S6.team];
1155 if(MS.D->P->S6.RCfoodAdd){
1156 string = [string stringByAppendingString:@"食料増加:"];
1158 string = [string stringByAppendingString:@"食料減少:"];
1160 if(MS.D->P->S6.RCfoodS){
1161 string = [string stringByAppendingFormat:@"%d", MS.D->P->S6.RCfoodValue];
1163 string = [string stringByAppendingFormat:@"[%d:%@]",
1164 MS.D->P->S6.RCfoodSelect-1, HensuuName[MS.D->P->S6.RCfoodSelect-1]];
1166 [MS.D->SCRPT addObject:string];
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:@"資金増加:"];
1175 string = [string stringByAppendingString:@"資金減少:"];
1177 if(MS.D->P->S6.RCmoneyS){
1178 string = [string stringByAppendingFormat:@"%d", MS.D->P->S6.RCmoneyValue];
1180 string = [string stringByAppendingFormat:@"[%d:%@]",
1181 MS.D->P->S6.RCmoneySelect-1, HensuuName[MS.D->P->S6.RCmoneySelect-1]];
1183 [MS.D->SCRPT addObject:string];
1186 }if(MS.D->P->type == 25){
1187 MS.D->P->indent = indent;
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;
1195 MS.D->P->BGM.fName = [[items9 objectAtIndex:0] retain];
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];
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;
1210 MS.D->P->SE.fName = [[items9 objectAtIndex:0] retain];
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];
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;
1225 NSArray *items10 = [[items9 objectAtIndex:0] componentsSeparatedByString:@","];
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];
1231 NSString *gaovPath = @"data/Others/img/";
1233 gaovPath = [gaovPath stringByAppendingString:MS.D->P->gaov.fNname];
1235 NSData *gaovData = [NSData dataWithContentsOfFile:gaovPath];
1238 MS.D->P->gaov.img = [[NSImage alloc] initWithData:[[NSFileHandle fileHandleForReadingAtPath:gaovPath] readDataToEndOfFile]];
1240 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆ゲームオーバー"]];
1241 if(MS.D->P->gaov.edcdFlag)
1242 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"敵勝利画面表示"]];
1244 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"敵勝利画面非表示"]];
1245 }if(MS.D->P->type == 36){
1246 MS.D->P->indent = indent;
1248 NSArray *items10 = [[items9 objectAtIndex:0] componentsSeparatedByString:@","];
1250 MS.D->P->sc.scFlag = [[items10 objectAtIndex:0] intValue];
1251 MS.D->P->sc.edcdFlag = [[items10 objectAtIndex:1] intValue];
1253 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆ステージクリア"]];
1254 if(MS.D->P->sc.edcdFlag)
1255 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"味方勝利画面表示"]];
1257 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"味方勝利画面非表示"]];
1258 }if(MS.D->P->type == 37){
1259 MS.D->P->indent = indent;
1261 MS.D->P->titleBack = [[items9 objectAtIndex:0] intValue];
1262 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆タイトル画面に戻す"]];
1272 if(MS.D->P->type == 0){
1276 if(!MS.D->P->S1.str) {MS.D->P->S1.str = @"";
1278 NSString *string = @"";
1279 string = [[string stringByAppendingFormat:@"%@", [fileDataArray objectAtIndex:i]] retain];
1280 if([string isEqualToString:@""]) continue;
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];
1285 if(![string isEqualToString:@""])
1286 [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@", [fileDataArray objectAtIndex:i]]];
1289 }if(MS.D->P->type == 1){
1291 NSString *string = @"";
1292 NSString *string2 = @"";
1293 NSArray *items10 = [[[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","] retain];
1295 string = [[string stringByAppendingFormat:@"%@", [items10 objectAtIndex:0]] retain];
1296 string2 = [[string2 stringByAppendingFormat:@"%@", [items10 objectAtIndex:1]] retain];
1297 if([string isEqualToString:@""]) continue;
1299 MS.D->P->S2 = calloc(1, sizeof(MAPSCRIPT2));
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;
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]];
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:@","];
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:@","];
1337 [MS.D->SCRPT addObject:[NSString stringWithString:string]];
1339 }if(MS.D->P->type == 6){
1341 static bool okyo = false;
1342 static bool iine = false;
1343 static bool uhya = false;
1344 static bool muha = false;
1355 if([[fileDataArray objectAtIndex:i] isEqualToString:@"----"]){
1361 NSArray *item10 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
1363 if(MS.D->P->S4.unitTypeFlag && [item10 count] > 1){
1365 if(!MS.D->P->S4.subj){
1366 MS.D->P->S4.subj = calloc(1, sizeof(UNIT2));
1367 sjt = MS.D->P->S4.subj;
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;
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];
1382 NSString *string = @"";
1384 string = [string stringByAppendingFormat:@"[%@]",MS.D->P->S4.subj->C.name];
1389 [MS.D->SCRPT addObject:string];
1394 NSArray *item10 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
1396 if(MS.D->P->S4.placeFlag && [item10 count] > 1){
1399 if(!MS.D->P->S4.wayp){
1400 MS.D->P->S4.wayp = calloc(1, sizeof(PLACEMENT));
1401 wpt = MS.D->P->S4.wayp;
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;
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];
1418 NSString *string = @"";
1421 if(MS.D->P->S4.wayp->type == 0){
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){
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){
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];
1433 [MS.D->SCRPT addObject:string];
1437 NSArray *item10 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
1439 if(MS.D->P->S4.objeFlag && [item10 count] > 1){
1442 if(!MS.D->P->S4.obje){
1443 MS.D->P->S4.obje = calloc(1, sizeof(UNIT2));
1444 ojt = MS.D->P->S4.obje;
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;
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];
1460 NSString *string = @"";
1463 string = [string stringByAppendingFormat:@"範囲%d",MS.D->P->S4.objeRange];
1465 string = [string stringByAppendingFormat:@"[%@]",MS.D->P->S4.obje->C.name];
1470 [MS.D->SCRPT addObject:string];
1474 NSArray *item10 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
1476 if(MS.D->P->S4.buildFlag && [item10 count] > 1){
1480 if(!MS.D->P->S4.build){
1481 MS.D->P->S4.build = calloc(1, sizeof(BUILD2));
1482 bdt = MS.D->P->S4.build;
1485 MS.D->P->S4.build->next = calloc(1, sizeof(BUILD2));
1487 bdt = MS.D->P->S4.build;
1488 MS.D->P->S4.build = MS.D->P->S4.build->next;
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];
1499 NSString *string = @"";
1502 if(MS.D->P->S4.build->C) string = [string stringByAppendingFormat:@"[%@]",MS.D->P->S4.build->C->name];
1503 else string = [string stringByAppendingFormat:@"[(null)]"];
1508 [MS.D->SCRPT addObject:string];
1534 }if(MS.D->P->type == 9){
1537 if(!MS.D->P->memo) {MS.D->P->memo = @"";
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]]];
1548 }if(MS.D->P->type == 22){
1550 NSString *string = @"";
1551 NSString *string2 = @"";
1552 NSArray *items10 = [[[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","] retain];
1553 if([items10 count] < 5) goto OMFGOUCH;
1555 MS.D->P->S3 = calloc(1, sizeof(MAPSCRIPT3));
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;
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];
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:@"重"];
1578 if(![string2 isEqualToString:@""])
1579 [MS.D->SCRPT addObject:[NSString stringWithString:string2]];
1583 }if(MS.D->P->type == 23){
1585 NSString *string = @"";
1586 NSString *string2 = @"";
1587 NSArray *items10 = [[[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","] retain];
1588 if([items10 count] < 4) goto OMFGOUCH;
1590 MS.D->P->S5 = calloc(1, sizeof(MAPSCRIPT5));
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;
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];
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];
1609 if(![string2 isEqualToString:@""])
1610 [MS.D->SCRPT addObject:[NSString stringWithString:string2]];
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];
1637 if([array100 count] > 2 || [array101 count] > 2)
1638 if(rangeSearch100.location != NSNotFound || rangeSearch101.location != NSNotFound){
1661 //NSLog(@"", i, MS);
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;
1672 MF[MFselectedRow+1].MS.D = MS.D;
1673 MF[MFselectedRow+1].MS = MS;
1674 mapSizeChangedFlag = true;
1675 mapLoadFlagForMSD = false;
1676 mapLoadFlagForMSD2 = false;
1682 NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
1683 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
1685 NSString *fileData = @"";
1686 NSString *pathDATA = @"Map/";
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"];
1693 fileData = [fileData stringByAppendingFormat:@","];
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"];
1703 fileData = [fileData stringByAppendingFormat:@","];
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"];
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"];
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"];
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"];
1760 fileData = [fileData stringByAppendingFormat:@"----\n"];
1762 fileData = [fileData stringByAppendingFormat:@"%d,%d\n", MF[MFselectedRow+1].MS.guildListRegistNum11, MF[MFselectedRow+1].MS.guildListRegistNum12];
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]];
1769 fileData = [fileData stringByAppendingFormat:@"\n"];
1772 fileData = [fileData stringByAppendingFormat:@"%d,%d\n", MF[MFselectedRow+1].MS.guildListRegistNum21, MF[MFselectedRow+1].MS.guildListRegistNum22];
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]];
1779 fileData = [fileData stringByAppendingFormat:@"\n"];
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"];
1796 //NSLog(@"%@", fileData);
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"];
1807 fileData = [fileData stringByAppendingFormat:@"####\n"];
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"];
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"];
1831 fileData = [fileData stringByAppendingFormat:@"----\n"];
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"];
1838 MAPSCRIPT MS = MF[MFselectedRow+1].MS;
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];
1848 if(*MS.D->switch1 > 0){
1849 fileData = [fileData stringByAppendingFormat:@"ON["];
1850 for(int i = 0;*(MS.D->switch1+i) > 0;i++){
1852 fileData = [fileData stringByAppendingFormat:@","];
1853 fileData = [fileData stringByAppendingFormat:@"%d", *(MS.D->switch1+i)];
1855 fileData = [fileData stringByAppendingFormat:@"]"];
1858 if(*MS.D->switch2 > 0){
1859 fileData = [fileData stringByAppendingFormat:@"OFF["];
1860 for(int i = 0;*(MS.D->switch2+i) > 0;i++){
1862 fileData = [fileData stringByAppendingFormat:@","];
1863 fileData = [fileData stringByAppendingFormat:@"%d", *(MS.D->switch2+i)];
1865 fileData = [fileData stringByAppendingFormat:@"]"];
1867 fileData = [fileData stringByAppendingFormat:@"\n"];
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"];
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;
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:@","];
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:@","];
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];
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];
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
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];
1936 fileData = [fileData stringByAppendingFormat:@"----\n"];
1937 UNIT2 *sj = MS4.subj;
1940 fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d\n", sj->C.chipNumb ,sj->team, sj->x, sj->y];
1943 fileData = [fileData stringByAppendingFormat:@"----\n"];
1945 PLACEMENT *wp = MS4.wayp;
1946 PLACEMENT *wpt = wp;
1948 fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d,%d,%d\n", wp->type ,wp->x ,wp->y, wp->z, wp->x2,wp->y2];
1951 fileData = [fileData stringByAppendingFormat:@"----\n"];
1953 UNIT2 *oj = MS4.obje;
1956 fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d\n", oj->C.chipNumb ,oj->team, oj->x, oj->y];
1959 fileData = [fileData stringByAppendingFormat:@"----\n"];
1961 BUILD2 *bd = MS4.build;
1964 fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d\n", bd->C->chipNumb, bd->team, bd->x, bd->y];
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"
1986 @",%d,%d,%d,%d,%d\n",
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;
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;
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];
2032 NSData *imgData = [MS.D->P->gaov.img TIFFRepresentation];
2033 NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:imgData];
2034 imgData = [brep representationUsingType:NSPNGFileType properties:nil];
2036 NSString *imgPath = @"data/Others/img/";
2037 imgPath = [imgPath stringByAppendingFormat:@"%@", MS.D->P->gaov.fNname];
2039 [imgData writeToFile:imgPath atomically:YES];
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];
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];
2056 MS.D->P = MS.D->P->next;
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];