// // MapView.m // Awars III // // Created by Killery on 2012/12/15. // Copyright (c) 2012年 Killery. All rights reserved. // #import "MapView.h" @implementation MapView - (id)initWithFrame:(NSRect)frame { self = [super initWithFrame:frame]; if (self) { /*time0 = [NSTimer scheduledTimerWithTimeInterval:1.0/30 target:self selector:@selector(EventLoop00:) userInfo:nil repeats:YES ];*/ MapViewInst = self; chip = [[self LoadImage:@"マス.png"] retain]; chip2 = [[self LoadImage:@"セレクター.png"] retain]; chip1A = [[self LoadImage:@"ccはた青.png"] retain]; chip2A = [[self LoadImage:@"ccはた青2.png"] retain]; chip3A = [[self LoadImage:@"ccはた赤.png"] retain]; chip4A = [[self LoadImage:@"ccはた赤2.png"] retain]; chip5A = [[self LoadImage:@"ccはた黄.png"] retain]; chip6A = [[self LoadImage:@"ccはた黄2.png"] retain]; chip1B = [[self LoadImage:@"cc旗青.png"] retain]; chip2B = [[self LoadImage:@"cc旗青2.png"] retain]; chip3B = [[self LoadImage:@"cc旗赤.png"] retain]; chip4B = [[self LoadImage:@"cc旗赤2.png"] retain]; chip5B = [[self LoadImage:@"cc旗黄.png"] retain]; chip6B = [[self LoadImage:@"cc旗黄2.png"] retain]; buildTeamImg[0] = chip1A; buildTeamImg[1] = chip2A; buildTeamImg[2] = chip3A; buildTeamImg[3] = chip4A; buildTeamImg[4] = chip5A; buildTeamImg[5] = chip6A; unitTeamImg[0] = chip1B; unitTeamImg[1] = chip2B; unitTeamImg[2] = chip3B; unitTeamImg[3] = chip4B; unitTeamImg[4] = chip5B; unitTeamImg[5] = chip6B; [self initMapChipFileDirectory]; for (int i = 0; i <= chipHeight;i++) for (int j = 0;j<= chipWidth;j++) unitNum[i][j] = -1; NSRect seRect = NSMakeRect(0, 0, chipHeight*32, chipWidth*32); [self setFrame:seRect]; } return self; } -(void)EventLoopMapView{ if(saveMapChipFlag){saveMapChipFlag = false; [self saveMapChip]; } if(mapSizeChangedFlag){mapSizeChangedFlag = false; NSRect seRect; seRect.size.height = chipHeight*32; seRect.size.width = chipWidth*32; [self setFrame:seRect]; } if(initMapChipNumbFlag){initMapChipNumbFlag = false; for(int i = 0;i <= chipWidth;i++){ for(int j = 0;j <= chipHeight;j++){ if(postHeight < j) { buildNum[i][j] = -1; unitNum[i][j] = -1; } if(postWidth < i){ buildNum[i][j] = -1; unitNum[i][j] = -1; } } } } if(loadMapListSubmitFlag){loadMapListSubmitFlag = false; chipNum[1][1] = 2; [self loadMapChip]; NSRect seRect; seRect.size.height = chipHeight*32; seRect.size.width = chipWidth*32; [self setFrame:seRect]; } if(EEGCslctFlag || eventPosFlag || EDbranchUnitFlag || EDbranchPlaceFlag || EDbranchObjeFlag || EDbranchBuildFlag){ static int clickFrame = 0; if(clickUpCnt%2 == 1){ clickFrame++; } if(clickFrame > 100) clickFrame = 0; if(clickUpCnt%2 == 0 && clickFrame >0){ doubleClickedFlag = true; clickFrame = 0; } } if(EDappearFlag || EDappearPosFlag || EDdissappearPosFlag){ static int clickFrame = 0; if(clickUpCnt%2 == 1){ clickFrame++; } if(clickFrame > 100) clickFrame = 0; if(clickUpCnt%2 == 0 && clickFrame >0){ doubleClickedFlag = true; clickFrame = 0; } } [self setNeedsDisplay:YES]; } -(BOOL)isFlipped{ return YES; } -(NSImage*)LoadImage:(NSString*)name{ NSImage *image = [NSImage imageNamed:name]; if(image == nil) return nil; return image; } -(void)DrawImage:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy{ NSRect frRect; frRect.size.height = image.size.height; frRect.size.width = image.size.width; frRect.origin.x = 0; frRect.origin.y = 0; NSRect drRect; drRect.origin.x = x; drRect.origin.y = y; drRect.size.height = 32; drRect.size.width = 32; [image drawInRect:drRect fromRect:frRect operation:NSCompositeSourceOver fraction:1.0f respectFlipped:YES hints:nil]; } -(void)DrawImage2:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy{ NSRect frRect; frRect.size.height = image.size.height; frRect.size.width = image.size.width; frRect.origin.x = 0; frRect.origin.y = 0; NSRect drRect; drRect.origin.x = x+16-4; drRect.origin.y = y+16-4; drRect.size.height = 16+4; drRect.size.width = 16+4; [image drawInRect:drRect fromRect:frRect operation:NSCompositeSourceOver fraction:1.0f respectFlipped:YES hints:nil]; } -(void)mouseDown:(NSEvent *)theEvent{ drugPoint = [self convertPoint:[theEvent locationInWindow] fromView:nil]; posX = (int)drugPoint.x/32 + 1; posY = (int)drugPoint.y/32 + 1; eSlctX = (int)drugPoint.x/32 + 1; eSlctY = (int)drugPoint.y/32 + 1; if(EEGCslctFlag) return; if(EDappearPosFlag) return; if(EDdissappearPosFlag) return; if(EDbranchUnitFlag) return; if(EDbranchPlaceFlag) return; if(EDbranchObjeFlag) return; if(EDbranchBuildFlag) return; if(eventPosFlag) return; if(CommandSelected){ if(SLSx == 1 && SLCy == 0) buildNum[posX][posY] = -1; if(SLSx == 2 && SLCy == 0) unitNum[posX][posY] = -1; if(SLSx == 3 && SLCy == 0) loadNum[posX][posY] = -1; if(SLSx == 0 && SLCy == 0) {buildTeam[posX][posY] = -1; unitTeam[posX][posY] = -1;} }else{ if(SLSx == 0 && SLCy == 1) buildTeam[posX][posY] = SLindex; else if(SLSx == 0 && SLCy == 2) unitTeam[posX][posY] = SLindex; else if(SLSx == 0) chipNum[posX][posY] = SLindex; if(SLSx == 1) buildNum[posX][posY] = SLindexB; if(SLSx == 2) unitNum[posX][posY] = SLindexU; if(SLSx == 3) loadNum[posX][posY] = SLindexL; } } -(void)mouseUp:(NSEvent *)theEvent{ clickUpCnt = (int)[theEvent clickCount]; if(EEGCslctFlag){ if([theEvent clickCount] == 2){ } } } -(void)mouseDragged:(NSEvent *)theEvent{ drugPoint = [self convertPoint:[theEvent locationInWindow] fromView:nil]; posX = (int)drugPoint.x/32+1; posY = (int)drugPoint.y/32+1; if(EEGCslctFlag) return; if(EDappearPosFlag) return; if(EDdissappearPosFlag) return; if(EDbranchUnitFlag) return; if(EDbranchPlaceFlag) return; if(EDbranchObjeFlag) return; if(EDbranchBuildFlag) return; if(eventPosFlag) return; if(CommandSelected){ if(SLSx == 1 && SLCy == 0) buildNum[posX][posY] = -1; if(SLSx == 2 && SLCy == 0) unitNum[posX][posY] = -1; if(SLSx == 3 && SLCy == 0) loadNum[posX][posY] = -1; if(SLSx == 0 && SLCy == 0) {buildTeam[posX][posY] = -1; unitTeam[posX][posY] = -1;} }else{ if(SLSx == 0 && SLCy == 1) buildTeam[posX][posY] = SLindex; else if(SLSx == 0 && SLCy == 2) unitTeam[posX][posY] = SLindex; else if(SLSx == 0) chipNum[posX][posY] = SLindex; if(SLSx == 1) buildNum[posX][posY] = SLindexB; if(SLSx == 2) unitNum[posX][posY] = SLindexU; if(SLSx == 3) loadNum[posX][posY] = SLindexL; } } - (void)drawRect:(NSRect)dirtyRect { int bx, by; for(bx=1;bx<=chipWidth;bx++){ for(by=1;by<=chipHeight;by++){ [self DrawImage:chip x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by]; [self DrawImage:MC[chipNum[bx][by]].img x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by]; if(buildNum[bx][by] >= 0) [self DrawImage:BC[buildNum[bx][by]].img x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by]; if(loadNum[bx][by] >= 0) [self DrawImage:LC[loadNum[bx][by]].img x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by]; if(loadNum[bx][by] < 0) if(unitNum[bx][by] >= 0) [self DrawImage:UC[unitNum[bx][by]].img x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by]; if(loadNum[bx][by] >= 0) if(unitNum[bx][by] >= 0) [self DrawImage2:UC[unitNum[bx][by]].img x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by]; if(buildTeam[bx][by] >= 0) [self DrawImage:buildTeamImg[buildTeam[bx][by]] x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by]; if(unitTeam[bx][by] >= 0) [self DrawImage:unitTeamImg[unitTeam[bx][by]] x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by]; //if(waypR[bx][by] != 999 && waypR[bx][by] > 0) [self DrawImage:chip x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by]; } } if(EEGCslctFlag) [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0]; if(eventPosFlag) [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0]; if(EDappearPosFlag) [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0]; if(EDdissappearPosFlag) [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0]; if(EDbranchUnitFlag) [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0]; if(EDbranchPlaceFlag) [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0]; if(EDbranchPlaceKukei2Flag) [self DrawImage:chip x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0]; if(EDbranchObjeFlag) [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0]; if(EDbranchBuildFlag) [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0]; [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0]; } -(void)initMapChipFileDirectory{ NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; NSData *InitialData = [NSData dataWithContentsOfFile:@"Map/preset.txt"]; NSString *path = @"Map"; NSString *pathDATA = @"Map/_MAP_CLEAR.txt"; NSString *fileData = nil; if(!InitialData){ [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil]; [[NSFileManager defaultManager] createFileAtPath:pathDATA contents:nil attributes:nil]; NSString *data2 = @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"####\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n" @"####\n" @"####\n" @"####\n" @"####\n" @"----\n" @"1|0\n" @"NULL\n" @"NULL\n" @"####\n" @"2|0\n" @"NULL\n" @"NULL\n" @"----\n" @"0,0,0\n" @"========\n" @"EVENT\n" @"========\n" ; fileData = [NSString stringWithFormat:@"%@", data2]; [fileData writeToFile:pathDATA atomically:YES encoding:NSUTF8StringEncoding error:nil]; } for(int i = 0;i<=1000;i++){ for(int j = 0;j<= 1000;j++){ chipNum[i][j] = 0; buildNum[i][j] = -1; unitNum[i][j] = -1; loadNum[i][j] = -1; buildTeam[i][j] = -1; unitTeam[i][j] = -1; } } fileData = [NSString stringWithContentsOfFile:pathDATA encoding:NSUTF8StringEncoding error:nil]; fileDataArray = [fileData componentsSeparatedByString:@"\n"]; int chipType = 0; int chipIndexDelta = 0; int chipIndexDelta2 = 0; NSLog(@"fileDataArray Count:%d", (int)[fileDataArray count]); int indexCnt = 0; for(int i=1;i <= [fileDataArray count];i++){indexCnt++; if([fileDataArray objectAtIndex:0] == NULL) break; NSArray *items = [[fileDataArray objectAtIndex:i-1] componentsSeparatedByString:@","]; NSRange rangeSearch = [[items objectAtIndex:0] rangeOfString:@"####"]; if(rangeSearch.location != NSNotFound){ chipType++; continue; } if(chipType == 0){chipIndexDelta++; for(int j=1;j <= [items count] && [items count] >= 2;j++){ chipNum[j][i] = [[items objectAtIndex:j-1] intValue]; chipWidth = (int)[items count]; chipHeight = chipIndexDelta; } }else if(chipType == 1){chipIndexDelta2++; for(int j=1;j <= [items count] && [items count] >= 2;j++){ buildNum[j][i - chipIndexDelta-1] = [[items objectAtIndex:j-1] intValue]-1; } }else if(chipType == 2){ for(int j=1;j <= [items count] && [items count] >= 2;j++){ unitNum[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue]-1; } }else if(chipType == 3){ for(int j=1;j <= [items count] && [items count] >= 2;j++){ buildTeam[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue]; } }else if(chipType == 4){ for(int j=1;j <= [items count] && [items count] >= 2;j++){ unitTeam[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue]; } }else if(chipType == 5){ for(int j=1;j <= [items count] && [items count] >= 2;j++){ loadNum[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue]-1; } } NSRange rangeSearch2 = [[items objectAtIndex:0] rangeOfString:@"----"]; if(rangeSearch2.location != NSNotFound){ break; } } mapSizeChangedFlag = true; } -(void)loadMapChip{ NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; NSString *fileData = @""; NSString *pathDATA = @"Map/"; for(int i = 0;i<=1000;i++){ for(int j = 0;j<= 1000;j++){ chipNum[i][j] = 0; buildNum[i][j] = -1; unitNum[i][j] = -1; loadNum[i][j] = -1; buildTeam[i][j] = -1; unitTeam[i][j] = -1; } } if(!mapInitFlag){ pathDATA = [pathDATA stringByAppendingFormat:@"%@", MF[MFselectedRow+1].fileName]; }else if(mapInitFlag){ pathDATA = [[pathDATA stringByAppendingFormat:@"%@", [SC[storyNumb].nameMAP objectAtIndex:scenarioNumb]] retain]; } NSLog(@"%@", pathDATA); fileData = [NSString stringWithContentsOfFile:pathDATA encoding:NSUTF8StringEncoding error:nil]; fileDataArray = [fileData componentsSeparatedByString:@"\n"]; if(mapInitFlag){ MFselectedRow = 0; for (int i = 1;i < 512;i++) { if([[SC[storyNumb].nameMAP objectAtIndex:scenarioNumb] isEqualToString:[NSString stringWithFormat:@"%@", MF[i].fileName]]) break; MFselectedRow++; } } if(!fileData){ mapChipDataLoadFail = true; return; } int chipType = 0; int chipIndexDelta = 0; int chipIndexDelta2 = 0; NSLog(@"fileDataArray Count:%d", (int)[fileDataArray count]); int indexCnt = 0; for(int i=1;i <= [fileDataArray count];i++){indexCnt++; if([fileDataArray objectAtIndex:0] == NULL) break; NSArray *items = [[fileDataArray objectAtIndex:i-1] componentsSeparatedByString:@","]; NSRange rangeSearch = [[items objectAtIndex:0] rangeOfString:@"####"]; if(rangeSearch.location != NSNotFound){ chipType++; continue; } if(chipType == 0){chipIndexDelta++; for(int j=1;j <= [items count] && [items count] >= 2;j++){ chipNum[j][i] = [[items objectAtIndex:j-1] intValue]; chipWidth = (int)[items count]; chipHeight = chipIndexDelta; } }else if(chipType == 1){chipIndexDelta2++; for(int j=1;j <= [items count] && [items count] >= 2;j++){ buildNum[j][i - chipIndexDelta-1] = [[items objectAtIndex:j-1] intValue]-1; } }else if(chipType == 2){ for(int j=1;j <= [items count] && [items count] >= 2;j++){ unitNum[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue]-1; } }else if(chipType == 3){ for(int j=1;j <= [items count] && [items count] >= 2;j++){ buildTeam[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue]; } }else if(chipType == 4){ for(int j=1;j <= [items count] && [items count] >= 2;j++){ unitTeam[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue]; } }else if(chipType == 5){ for(int j=1;j <= [items count] && [items count] >= 2;j++){ loadNum[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue]-1; } } NSRange rangeSearch2 = [[items objectAtIndex:0] rangeOfString:@"----"]; if(rangeSearch2.location != NSNotFound){ break; } } //NSLog(@"%d", unitNum[1][1]); NSArray *items00 = [[fileDataArray objectAtIndex:indexCnt] componentsSeparatedByString:@","]; MF[MFselectedRow+1].MS.guildListRegistNum11 = [[items00 objectAtIndex:0] intValue]; MF[MFselectedRow+1].MS.guildListRegistNum12 = [[items00 objectAtIndex:1] intValue]; indexCnt++; NSArray *items0 = [[fileDataArray objectAtIndex:indexCnt] componentsSeparatedByString:@","]; for(int i = 0;i < [items0 count];i++){ MF[MFselectedRow+1].MS.guildListRegist[i] = [[items0 objectAtIndex:i] intValue]; } indexCnt++; items00 = [[fileDataArray objectAtIndex:indexCnt] componentsSeparatedByString:@","]; MF[MFselectedRow+1].MS.guildListRegistNum21 = [[items00 objectAtIndex:0] intValue]; MF[MFselectedRow+1].MS.guildListRegistNum22 = [[items00 objectAtIndex:1] intValue]; indexCnt++; items0 = [[fileDataArray objectAtIndex:indexCnt] componentsSeparatedByString:@","]; for(int i = 0;i < [items0 count];i++){ MF[MFselectedRow+1].MS.guildListRegist2[i] = [[items0 objectAtIndex:i] intValue]; } indexCnt++; bool EGdarkFlag = false; int EGcnt = 0; indexCnt++; for(int i = indexCnt;i < [fileDataArray count];i++){ NSArray *items = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@"|"]; EGcnt++; NSRange rangeSearch = [[items objectAtIndex:0] rangeOfString:@"####"]; if(rangeSearch.location != NSNotFound){ EGdarkFlag = true; EGcnt = 0; } if(!EGdarkFlag){ if(EGcnt == 1){ MF[MFselectedRow+1].MS.EGClight.endType1 = [[items objectAtIndex:0] intValue]; MF[MFselectedRow+1].MS.EGClight.endType2 = [[items objectAtIndex:1] intValue]; }else if(EGcnt == 2){ for(int k = 0;k < 64;k++){ if(k > [items count]-1) break; if([[items objectAtIndex:k] isEqualToString:@"NULL"]) break; MF[MFselectedRow+1].MS.EGClight.etValue1[k] = [[items objectAtIndex:k] retain]; } }else if(EGcnt == 3){ for(int k = 0;k < 64;k++){ if(k > [items count]-1) break; if([[items objectAtIndex:k] isEqualToString:@"NULL"]) break; MF[MFselectedRow+1].MS.EGClight.etValue2[k] = [[items objectAtIndex:k] retain]; } } }else{ if(EGcnt == 1){ MF[MFselectedRow+1].MS.EGCdark.endType1 = [[items objectAtIndex:0] intValue]; MF[MFselectedRow+1].MS.EGCdark.endType2 = [[items objectAtIndex:1] intValue]; }else if(EGcnt == 2){ for(int k = 0;k < 64;k++){ if(k > [items count]-1) break; if([[items objectAtIndex:k] isEqualToString:@"NULL"]) break; MF[MFselectedRow+1].MS.EGCdark.etValue1[k] = [[items objectAtIndex:k] retain]; } }else if(EGcnt == 3){ for(int k = 0;k < 64;k++){ if(k > [items count]-1) break; if([[items objectAtIndex:k] isEqualToString:@"NULL"]) break; MF[MFselectedRow+1].MS.EGCdark.etValue2[k] = [[items objectAtIndex:k] retain]; } } } if([[fileDataArray objectAtIndex:i] isEqualToString:@"----"]) break; indexCnt++; } indexCnt++; NSArray *items = [[fileDataArray objectAtIndex:indexCnt] componentsSeparatedByString:@","]; playerSet1 = [[items objectAtIndex:0] intValue]; playerSet2 = [[items objectAtIndex:1] intValue]; battleSetMode = [[items objectAtIndex:2] intValue]; MF[MFselectedRow+1].MS.playerSet1 = playerSet1; MF[MFselectedRow+1].MS.playerSet2 = playerSet2; MF[MFselectedRow+1].MS.battleSetMode = battleSetMode; if([items count] > 3){ scenarioSetMode = [[items objectAtIndex:3] intValue]; scenarioNumbCrnt = [[items objectAtIndex:4] intValue]; scenarioNumbNext = [[items objectAtIndex:5] intValue]; MF[MFselectedRow+1].MS.scenarioSetMode = scenarioSetMode; MF[MFselectedRow+1].MS.scenarioNumbCrnt = scenarioNumbCrnt; MF[MFselectedRow+1].MS.scenarioNumbNext = scenarioNumbNext; } MAPSCRIPT MS = MF[MFselectedRow+1].MS; [MS.SCRPTname removeAllObjects]; MAPSCRIPTD *MSDtop = NULL; MAPSCRIPT0 *MSDPtop = NULL; fileData = [NSString stringWithContentsOfFile:pathDATA encoding:NSUTF8StringEncoding error:nil]; fileDataArray = [fileData componentsSeparatedByString:@"========\nEVENT\n========\n"]; NSString *fileData2 = [fileDataArray objectAtIndex:1]; fileDataArray = [fileData2 componentsSeparatedByString:@"\n"]; int eventIndex = 0; int scriptIndex = 0; int indent = 0; static bool supFlag = false; static bool supFlag2 = false; static bool asdflag = false; for (int i = 0;i < [fileDataArray count]; i++) { NSArray *items = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","]; NSArray *items9; if(i + 1 < [fileDataArray count]) items9 = [[fileDataArray objectAtIndex:i+1] componentsSeparatedByString:@"\n"]; NSRange rangeSearch = [[fileDataArray objectAtIndex:i] rangeOfString:@"●"]; NSArray *array3 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@"◆"]; NSString *string2 = [NSString stringWithFormat:@"%@◆", [array3 objectAtIndex:0]]; NSRange rangeSearch2 = [[fileDataArray objectAtIndex:i] rangeOfString:string2]; static int pussyCnt = 0; static int mankoCnt = 0; static int analCnt = 0; static int feraCnt = 0; static int gimmetrow = 0; if(i >= 128){ //NSLog(@"おお"); } if (rangeSearch.location == !NSNotFound) { if(supFlag){ //MS.D->P->S1.str = [MS.D->P->S1.str substringToIndex:MS.D->P->S1.str.length-3]; MS.D->P = MSDPtop; MS.D->next = calloc(1, sizeof(MAPSCRIPTD)); MS.D = MS.D->next; MSDPtop = MS.D->P; asdflag = true; } if(!supFlag){ MS.D = calloc(1, sizeof(MAPSCRIPTD)); MSDtop = MS.D; MS.SCRPTname = [NSMutableArray new]; supFlag = true; } if(!MS.D){ }else{ if(!MS.D->P){ MS.D->P = MSDPtop; } } NSArray *items2 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@" "]; NSString *string = [[items2 objectAtIndex:0] substringFromIndex:1]; [MS.SCRPTname addObject:string]; if([items2 count] >= 2){ NSArray *items3 = [[items2 objectAtIndex:1] componentsSeparatedByString:@"["]; MS.D->type = [[items3 objectAtIndex:0] intValue]; NSArray *items4 = [[items3 objectAtIndex:1] componentsSeparatedByString:@","]; MS.D->x = [[items4 objectAtIndex:0] intValue]; MS.D->y = [[items4 objectAtIndex:1] intValue]; NSArray *items100 = [[items2 objectAtIndex:1] componentsSeparatedByString:@"ET["]; if([items100 count] > 1){ NSArray *items102 = [[items100 objectAtIndex:0] componentsSeparatedByString:@"]"]; MS.D->ETtype = [[items102 objectAtIndex:1] intValue]; NSArray *items101 = [[items100 objectAtIndex:1] componentsSeparatedByString:@","]; MS.D->ET1 = [[items101 objectAtIndex:0] doubleValue]; MS.D->ET2 = [[items101 objectAtIndex:1] doubleValue]; } NSArray *items51 = [[items2 objectAtIndex:1] componentsSeparatedByString:@"ON["]; if([items51 count] > 1){ NSArray *items5 = [[items51 objectAtIndex:1] componentsSeparatedByString:@"OFF["]; NSArray *items6 = [[items5 objectAtIndex:0] componentsSeparatedByString:@","]; if([items6 objectAtIndex:0] > 0){ if([items6 count] > 0 && [items6 objectAtIndex:0] > 0) MS.D->switch1 = calloc([items6 count], sizeof(int)); MS.D->switch1f = true; for (int i = 0;[items6 count] > i && [[items6 objectAtIndex:i] intValue] > 0;i++) { *(MS.D->switch1+i) = [[items6 objectAtIndex:i] intValue]; } } } NSArray *items7 = [[items2 objectAtIndex:1] componentsSeparatedByString:@"OFF["]; if([items7 count] > 1){ NSArray *items8 = [[items7 objectAtIndex:1] componentsSeparatedByString:@","]; if([items8 objectAtIndex:0] > 0){ if([items8 count] > 0 && [items8 objectAtIndex:0] > 0) MS.D->switch2 = calloc([items8 count], sizeof(int)); MS.D->switch2f = true; for (int i = 0;[items8 count] > i && [[items8 objectAtIndex:i] intValue] > 0;i++) { *(MS.D->switch2+i) = [[items8 objectAtIndex:i] intValue]; } } } //NSLog(@"OMG %d,%d,%d", MS.D->type,MS.D->x,MS.D->y); } eventIndex++; scriptIndex = 0; continue; } static MAPSCRIPT2 *MS2T = NULL; static UNIT2 *sjt = NULL; static PLACEMENT *wpt = NULL; static UNIT2 *ojt = NULL; static BUILD2 *bdt = NULL; if (rangeSearch2.location == !NSNotFound) { pussyCnt = 0; feraCnt = 0; analCnt = 0; gimmetrow = 0; /* if(MS.D){ if(MS.D->P) MS.D->P->S2 = MS2T; if(MS.D->P) MS.D->P->S4.subj = sjt; if(MS.D->P) MS.D->P->S4.wayp = wpt; if(MS.D->P) MS.D->P->S4.obje = ojt; if(MS.D->P) MS.D->P->S4.build = bdt; } MS2T = NULL; sjt = NULL; wpt = NULL; ojt = NULL; bdt = NULL;*/ if(asdflag){ MS.D->SCRPT = [NSMutableArray new]; asdflag = false; } if(!supFlag2){ MS.D->SCRPT = [NSMutableArray new]; supFlag2 = true; MS.D->P = NULL; } if(!MS.D->P){ MS.D->P = calloc(1, sizeof(MAPSCRIPT0)); MS.D->P->S2 = NULL; MSDPtop = MS.D->P; MS.D->SCRPT = [NSMutableArray new]; } else { MS.D->P->next = calloc(1, sizeof(MAPSCRIPT0)); MS.D->P->next->S2 = NULL; MS.D->P = MS.D->P->next; MS.D->P->next = NULL; } NSArray *items0 = [[items objectAtIndex:0] componentsSeparatedByString:@"◆"]; indent = [[items0 objectAtIndex:0] intValue]; MS.D->P->type = [[items0 objectAtIndex:1] intValue]; if(MS.D->P->type == 0){ MS.D->P->indent = indent; MS.D->P->S1.nameID = [[items objectAtIndex:1] retain]; MS.D->P->S1.name = [[items objectAtIndex:2] retain]; MS.D->P->S1.iName = [[items objectAtIndex:3] retain]; for(int k = 0; k < UCN;k++){ if(MS.D->P->S1.nameID) if([MS.D->P->S1.nameID isEqualToString:UC[k].nameID]){ MS.D->P->S1.img = [UC[k].imgb retain]; break; } } for(int k = 0; k < LCN;k++){ if(MS.D->P->S1.nameID) if([MS.D->P->S1.nameID isEqualToString:LC[k].nameID]){ MS.D->P->S1.img = [UC[k].imgb retain]; break; } } EIMG = EIMGtop; while (EIMG) { if(MS.D->P->S1.nameID) if([MS.D->P->S1.nameID isEqualToString:EIMG->name]){ MS.D->P->S1.img = [EIMG->img retain]; break; } EIMG = EIMG->next; }EIMG = EIMGtop; [MS.D->SCRPT addObject:@"◆文章の表示"]; if(![MS.D->P->S1.name isEqualToString:@""]) [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@:", MS.D->P->S1.name]]; } if(MS.D->P->type == 1){ [MS.D->SCRPT addObject:@"◆選択肢の表示"]; }if(MS.D->P->type == 22){ [MS.D->SCRPT addObject:@"◆ユニット出現"]; }if(MS.D->P->type == 23){ [MS.D->SCRPT addObject:@"◆ユニット消去"]; } if(MS.D->P->type == 3){ MS.D->P->indent = indent; if([[items objectAtIndex:1] isEqualToString:@"ON"]){ MSDPONOFFFlagNum = 1; } if([[items objectAtIndex:1] isEqualToString:@"OFF"]){ MSDPONOFFFlagNum = 2; } NSString *string; if(MSDPONOFFFlagNum == 1) string = @"ON"; if(MSDPONOFFFlagNum == 2) string = @"OFF"; [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆スイッチの操作%@", string]]; } if(MS.D->P->type == 5){ MS.D->P->indent = indent; NSArray *items10 = [[items9 objectAtIndex:0] componentsSeparatedByString:@","]; MS.D->P->timerFlag = true; MS.D->P->timerMin = [[items10 objectAtIndex:0] intValue]; MS.D->P->timerSec = [[items10 objectAtIndex:1] intValue]; MS.D->P->timerRun = [[items10 objectAtIndex:2] intValue]; MS.D->P->timerMode = [[items10 objectAtIndex:3] intValue]; MS.D->P->timerVisible = [[items10 objectAtIndex:4] intValue]; [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆タイマーの操作"]]; NSString *timerRun; if(MS.D->P->timerRun) timerRun = [@"始動" retain]; else timerRun = [@"停止" retain]; NSString *timerMode; if(MS.D->P->timerMode) timerMode = [@"足す" retain]; else timerMode = [@"引く" retain]; NSString *timerVisible; if(MS.D->P->timerVisible) timerVisible = [@"表示" retain]; else timerVisible = [@"非表示" retain]; if(![MS.D->P->label isEqualToString:@""]) [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%d分%d秒 %@ %@ %@",MS.D->P->timerMin, MS.D->P->timerSec, timerRun, timerMode, timerVisible]]; }if(MS.D->P->type == 6){ MS.D->P->indent = indent; NSArray *item100 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","]; MS.D->P->S4.COMPrabel = [[item100 objectAtIndex:1] retain]; MS.D->P->S4.FAILrabel = [[item100 objectAtIndex:2] retain]; NSArray *item101 = [[fileDataArray objectAtIndex:i+1] componentsSeparatedByString:@","]; MS.D->P->S4.suicchiFlag = [[item101 objectAtIndex:0] intValue]; MS.D->P->S4.suicchiONOFF = [[item101 objectAtIndex:1] intValue]; NSArray *item102 = [[fileDataArray objectAtIndex:i+2] componentsSeparatedByString:@","]; if(MS.D->P->S4.suicchiFlag) for (int i = 0; [item102 count] > i;i++) { if(i == 0){ MS.D->P->S4.suicchi = calloc([item102 count], sizeof(int)); } *(MS.D->P->S4.suicchi + i) = [[item102 objectAtIndex:i] intValue]; } NSArray *item103 = [[fileDataArray objectAtIndex:i+3] componentsSeparatedByString:@","]; MS.D->P->S4.hensuFlag = [[item103 objectAtIndex:0] intValue]; MS.D->P->S4.hensu1 = [[item103 objectAtIndex:1] intValue]; MS.D->P->S4.teisuFlag = [[item103 objectAtIndex:2] intValue]; MS.D->P->S4.teisuValue = [[item103 objectAtIndex:3] intValue]; MS.D->P->S4.hensu2flag = [[item103 objectAtIndex:4] intValue]; MS.D->P->S4.hensu2 = [[item103 objectAtIndex:5] intValue]; MS.D->P->S4.hensuType = [[item103 objectAtIndex:6] intValue]; NSArray *item104 = [[fileDataArray objectAtIndex:i+4] componentsSeparatedByString:@","]; MS.D->P->S4.timerFlag = [[item104 objectAtIndex:0] intValue]; MS.D->P->S4.timerMin = [[item104 objectAtIndex:1] intValue]; MS.D->P->S4.timerSec = [[item104 objectAtIndex:2] intValue]; MS.D->P->S4.timerType = [[item104 objectAtIndex:3] intValue]; NSArray *item105 = [[fileDataArray objectAtIndex:i+5] componentsSeparatedByString:@","]; MS.D->P->S4.unitNumFlag = [[item105 objectAtIndex:0] intValue]; MS.D->P->S4.unitTypeFlag = [[item105 objectAtIndex:1] intValue]; MS.D->P->S4.placeFlag = [[item105 objectAtIndex:2] intValue]; MS.D->P->S4.unitCMDflag = [[item105 objectAtIndex:3] intValue]; MS.D->P->S4.objeFlag = [[item105 objectAtIndex:4] intValue]; MS.D->P->S4.buildFlag = [[item105 objectAtIndex:5] intValue]; NSArray *item106 = [[fileDataArray objectAtIndex:i+6] componentsSeparatedByString:@","]; MS.D->P->S4.team = [[item106 objectAtIndex:0] intValue]; MS.D->P->S4.unitNum = [[item106 objectAtIndex:1] intValue]; MS.D->P->S4.unitType = [[item106 objectAtIndex:2] intValue]; MS.D->P->S4.unitCMD = [[item106 objectAtIndex:3] intValue]; MS.D->P->S4.objeRange = [[item106 objectAtIndex:4] intValue]; [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆条件分岐"]]; NSString *str = [NSString stringWithFormat:@"ジャンプ 真:%@ 偽:%@", MS.D->P->S4.COMPrabel,MS.D->P->S4.FAILrabel]; [MS.D->SCRPT addObject:str]; if(MS.D->P->S4.suicchiFlag){ NSString *string = @""; if(MS.D->P->S4.suicchiONOFF == 0) string = [string stringByAppendingFormat:@"スイッチON"]; else string = [string stringByAppendingFormat:@"スイッチOFF"]; if(MS.D->P->S4.suicchi) for (int i = 0;*(MS.D->P->S4.suicchi + i);i++) { if(i > 0) string = [string stringByAppendingFormat:@","]; string = [string stringByAppendingFormat:@"%d",*(MS.D->P->S4.suicchi + i)]; } [MS.D->SCRPT addObject:string]; } if(MS.D->P->S4.hensuFlag){ NSString *string = @"変数"; string = [string stringByAppendingFormat:@"%dが", MS.D->P->S4.hensu1]; if(MS.D->P->S4.teisuFlag == 0) string = [string stringByAppendingFormat:@""]; else string = [string stringByAppendingFormat:@"定数%d", MS.D->P->S4.teisuValue]; if(MS.D->P->S4.hensu2flag == 0) string = [string stringByAppendingFormat:@""]; else string = [string stringByAppendingFormat:@"変数%d", MS.D->P->S4.hensu2]; if(MS.D->P->S4.hensuType == 0) { string = [string stringByAppendingFormat:@"と同値"]; }else if(MS.D->P->S4.hensuType == 1){ string = [string stringByAppendingFormat:@"以上"]; }else if(MS.D->P->S4.hensuType == 2){ string = [string stringByAppendingFormat:@"以下"]; }else if(MS.D->P->S4.hensuType == 3){ string = [string stringByAppendingFormat:@"超"]; }else if(MS.D->P->S4.hensuType == 4){ string = [string stringByAppendingFormat:@"未満"]; }else if(MS.D->P->S4.hensuType == 5){ string = [string stringByAppendingFormat:@"以外"]; } if(MS.D->P->S4.teisuFlag == 0 && MS.D->P->S4.hensu2flag == 0){ string = [NSString stringWithFormat:@""]; }else{ [MS.D->SCRPT addObject:string]; } } if(MS.D->P->S4.timerFlag){ NSString *string = [NSString stringWithFormat:@"タイマーが"]; string = [string stringByAppendingFormat:@"%d分%d秒", MS.D->P->S4.timerMin, MS.D->P->S4.timerSec]; if(MS.D->P->S4.timerType == 0){ string = [string stringByAppendingFormat:@"以上"]; }else if(MS.D->P->S4.timerType == 1){ string = [string stringByAppendingFormat:@"以下"]; } [MS.D->SCRPT addObject:string]; } if(MS.D->P->S4.unitNumFlag){ NSString *string = @""; string = [string stringByAppendingFormat:@"チーム%dが数%d", MS.D->P->S4.team, MS.D->P->S4.unitNum]; if(MS.D->P->S4.unitType == 0){ string = [string stringByAppendingFormat:@"と同値"]; }else if(MS.D->P->S4.unitType == 1){ string = [string stringByAppendingFormat:@"以上"]; }else if(MS.D->P->S4.unitType == 2){ string = [string stringByAppendingFormat:@"以下"]; } [MS.D->SCRPT addObject:string]; } if(MS.D->P->S4.unitCMDflag){ NSString *string = @"ユニットが"; if(MS.D->P->S4.unitCMD == 0){ string = [string stringByAppendingFormat:@"待機を選択した時"]; }else if(MS.D->P->S4.unitCMD == 1){ string = [string stringByAppendingFormat:@"攻撃を選択した時"]; }else if(MS.D->P->S4.unitCMD == 2){ string = [string stringByAppendingFormat:@"説得を選択した時"]; } [MS.D->SCRPT addObject:string]; } } if(MS.D->P->type == 7){ MS.D->P->indent = indent; MS.D->P->label = [[items9 objectAtIndex:0] retain]; [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆ラベル"]]; if(![MS.D->P->label isEqualToString:@""]) [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@",MS.D->P->label]]; }if(MS.D->P->type == 8){ MS.D->P->indent = indent; MS.D->P->labelJump = [[items9 objectAtIndex:0] retain]; [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆ラベルジャンプ"]]; if(![MS.D->P->labelJump isEqualToString:@""]) [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@", MS.D->P->labelJump]]; }if(MS.D->P->type == 9){ MS.D->P->indent = indent; MS.D->P->memo = [[items9 objectAtIndex:0] retain]; [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆注釈"]]; }if(MS.D->P->type == 10){ NSArray *items90 = [NSArray new]; if(i + 1 < [fileDataArray count]) items90 = [[fileDataArray objectAtIndex:i+1] componentsSeparatedByString:@","]; MS.D->P->indent = indent; MS.D->P->S6.team = [[items90 objectAtIndex:0] intValue]; MS.D->P->S6.RCsupply = [[items90 objectAtIndex:1] intValue]; MS.D->P->S6.RCsupplyAdd = [[items90 objectAtIndex:2] intValue]; MS.D->P->S6.RCsupplyValue = [[items90 objectAtIndex:3] intValue]; MS.D->P->S6.RCsupplyS = [[items90 objectAtIndex:4] intValue]; MS.D->P->S6.RCsupplySelect = [[items90 objectAtIndex:5] intValue]; MS.D->P->S6.RCfood = [[items90 objectAtIndex:6] intValue]; MS.D->P->S6.RCfoodAdd = [[items90 objectAtIndex:7] intValue]; MS.D->P->S6.RCfoodValue = [[items90 objectAtIndex:8] intValue]; MS.D->P->S6.RCfoodS = [[items90 objectAtIndex:9] intValue]; MS.D->P->S6.RCfoodSelect = [[items90 objectAtIndex:10] intValue]; MS.D->P->S6.RCmoney = [[items90 objectAtIndex:11] intValue]; MS.D->P->S6.RCmoneyAdd = [[items90 objectAtIndex:12] intValue]; MS.D->P->S6.RCmoneyValue = [[items90 objectAtIndex:13] intValue]; MS.D->P->S6.RCmoneyS = [[items90 objectAtIndex:14] intValue]; MS.D->P->S6.RCmoneySelect = [[items90 objectAtIndex:15] intValue]; [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆リソースの増減"]]; if(MS.D->P->S6.team == 0){ } if(MS.D->P->S6.RCsupply){ NSString *string = @""; string = [string stringByAppendingFormat:@"チーム%d ", MS.D->P->S6.team]; if(MS.D->P->S6.RCsupplyAdd){ string = [string stringByAppendingString:@"資源増加:"]; }else{ string = [string stringByAppendingString:@"資源減少:"]; } if(MS.D->P->S6.RCsupplyS){ string = [string stringByAppendingFormat:@"%d", MS.D->P->S6.RCsupplyValue]; }else{ string = [string stringByAppendingFormat:@"[%d:%@]", MS.D->P->S6.RCsupplySelect-1, HensuuName[MS.D->P->S6.RCsupplySelect-1]]; } [MS.D->SCRPT addObject:string]; } if(MS.D->P->S6.RCfood){ NSString *string = @""; string = [string stringByAppendingFormat:@"チーム%d ", MS.D->P->S6.team]; if(MS.D->P->S6.RCfoodAdd){ string = [string stringByAppendingString:@"食料増加:"]; }else{ string = [string stringByAppendingString:@"食料減少:"]; } if(MS.D->P->S6.RCfoodS){ string = [string stringByAppendingFormat:@"%d", MS.D->P->S6.RCfoodValue]; }else{ string = [string stringByAppendingFormat:@"[%d:%@]", MS.D->P->S6.RCfoodSelect-1, HensuuName[MS.D->P->S6.RCfoodSelect-1]]; } [MS.D->SCRPT addObject:string]; } if(MS.D->P->S6.RCmoney){ NSString *string = @""; string = [string stringByAppendingFormat:@"チーム%d ", MS.D->P->S6.team]; if(MS.D->P->S6.RCmoneyAdd){ string = [string stringByAppendingString:@"資金増加:"]; }else{ string = [string stringByAppendingString:@"資金減少:"]; } if(MS.D->P->S6.RCmoneyS){ string = [string stringByAppendingFormat:@"%d", MS.D->P->S6.RCmoneyValue]; }else{ string = [string stringByAppendingFormat:@"[%d:%@]", MS.D->P->S6.RCmoneySelect-1, HensuuName[MS.D->P->S6.RCmoneySelect-1]]; } [MS.D->SCRPT addObject:string]; } }if(MS.D->P->type == 25){ MS.D->P->indent = indent; MS.D->P->wait = [[items9 objectAtIndex:0] doubleValue]; [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆ウェイト"]]; [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%g秒", MS.D->P->wait]]; }if(MS.D->P->type == 28){ MS.D->P->indent = indent; MS.D->P->BGM.fName = [[items9 objectAtIndex:0] retain]; for(int k = 0;k < bgmNum;k++){ if([MS.D->P->BGM.fName isEqualToString:BGM[k].fName]){ MS.D->P->BGM.name = [BGM[k].name retain]; MS.D->P->BGM.snd = [BGM[k].snd retain]; break; } } [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆BGMの演奏"]]; if(MS.D->P->BGM.name) [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@", MS.D->P->BGM.name]]; }if(MS.D->P->type == 30){ MS.D->P->indent = indent; MS.D->P->SE.fName = [[items9 objectAtIndex:0] retain]; for(int k = 0;k < seNum;k++){ if([MS.D->P->SE.fName isEqualToString:SE[k].fName]){ MS.D->P->SE.name = [BGM[k].name retain]; MS.D->P->SE.snd = [BGM[k].snd retain]; break; } } [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆SEの再生"]]; if(MS.D->P->SE.name) [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@", MS.D->P->SE.name]]; }if(MS.D->P->type == 35){ MS.D->P->indent = indent; NSArray *items10 = [[items9 objectAtIndex:0] componentsSeparatedByString:@","]; MS.D->P->gaov.gaovFlag = [[items10 objectAtIndex:0] intValue]; MS.D->P->gaov.edcdFlag = [[items10 objectAtIndex:1] intValue]; MS.D->P->gaov.fNname = [[items10 objectAtIndex:2] retain]; NSString *gaovPath = @"data/Others/img/"; gaovPath = [gaovPath stringByAppendingString:MS.D->P->gaov.fNname]; NSData *gaovData = [NSData dataWithContentsOfFile:gaovPath]; if(gaovData) MS.D->P->gaov.img = [[NSImage alloc] initWithData:[[NSFileHandle fileHandleForReadingAtPath:gaovPath] readDataToEndOfFile]]; [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆ゲームオーバー"]]; if(MS.D->P->gaov.edcdFlag) [MS.D->SCRPT addObject:[NSString stringWithFormat:@"敵勝利画面表示"]]; else [MS.D->SCRPT addObject:[NSString stringWithFormat:@"敵勝利画面非表示"]]; }if(MS.D->P->type == 36){ MS.D->P->indent = indent; NSArray *items10 = [[items9 objectAtIndex:0] componentsSeparatedByString:@","]; MS.D->P->sc.scFlag = [[items10 objectAtIndex:0] intValue]; MS.D->P->sc.edcdFlag = [[items10 objectAtIndex:1] intValue]; [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆ステージクリア"]]; if(MS.D->P->sc.edcdFlag) [MS.D->SCRPT addObject:[NSString stringWithFormat:@"味方勝利画面表示"]]; else [MS.D->SCRPT addObject:[NSString stringWithFormat:@"味方勝利画面非表示"]]; }if(MS.D->P->type == 37){ MS.D->P->indent = indent; MS.D->P->titleBack = [[items9 objectAtIndex:0] intValue]; [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆タイトル画面に戻す"]]; } scriptIndex++; //continue; }else{ if(MS.D){ {if(MS.D->P) { if(MS.D->P->type == 0){ { if(!MS.D->P->S1.str) {MS.D->P->S1.str = @""; } NSString *string = @""; string = [[string stringByAppendingFormat:@"%@", [fileDataArray objectAtIndex:i]] retain]; if([string isEqualToString:@""]) continue; if(pussyCnt > 0) MS.D->P->S1.str = [[MS.D->P->S1.str stringByAppendingFormat:@"\n"] retain]; MS.D->P->S1.str = [[MS.D->P->S1.str stringByAppendingString:string] retain]; if(![string isEqualToString:@""]) [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@", [fileDataArray objectAtIndex:i]]]; pussyCnt++; } }if(MS.D->P->type == 1){ NSString *string = @""; NSString *string2 = @""; NSArray *items10 = [[[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","] retain]; string = [[string stringByAppendingFormat:@"%@", [items10 objectAtIndex:0]] retain]; string2 = [[string2 stringByAppendingFormat:@"%@", [items10 objectAtIndex:1]] retain]; if([string isEqualToString:@""]) continue; if(!MS.D->P->S2){ MS.D->P->S2 = calloc(1, sizeof(MAPSCRIPT2)); MS2T = MS.D->P->S2; } else{ if(pussyCnt == 1) MS2T = MS.D->P->S2; MS.D->P->S2->next = calloc(1, sizeof(MAPSCRIPT2)); MS.D->P->S2 = MS.D->P->S2->next; } MS.D->P->S2->selection = [[NSString stringWithString:string] retain]; MS.D->P->S2->labelJump = [[NSString stringWithString:string2] retain]; if(pussyCnt > 0) MS.D->P->S2->selection = [[MS.D->P->S2->selection stringByAppendingFormat:@"\n"] retain]; if(pussyCnt > 0) MS.D->P->S2->labelJump = [[MS.D->P->S2->labelJump stringByAppendingFormat:@"\n"] retain]; if(![string isEqualToString:@""]) [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@@%@", MS.D->P->S2->selection, MS.D->P->S2->labelJump]]; pussyCnt++; }if(MS.D->P->type == 3){ NSString *string = @""; if(MSDPONOFFFlagNum == 1){ NSArray *items0 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","]; MS.D->P->switch1 = calloc([items0 count], sizeof(int)); for (int i = 0;i < [items0 count];i++) { *(MS.D->P->switch1 + i) = [[items0 objectAtIndex:i] intValue]; string = [string stringByAppendingFormat:@"%d",[[items0 objectAtIndex:i] intValue]]; if(i+1 < [items0 count]) string = [string stringByAppendingFormat:@","]; } }if(MSDPONOFFFlagNum == 2){ NSArray *items0 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","]; MS.D->P->switch2 = calloc([items0 count], sizeof(int)); for (int i = 0;i < [items0 count];i++) { *(MS.D->P->switch2 + i) = [[items0 objectAtIndex:i] intValue]; string = [string stringByAppendingFormat:@"%d",[[items0 objectAtIndex:i] intValue]]; if(i+1 < [items0 count]) string = [string stringByAppendingFormat:@","]; } } [MS.D->SCRPT addObject:[NSString stringWithString:string]]; }if(MS.D->P->type == 6){ static bool okyo = false; static bool iine = false; static bool uhya = false; static bool muha = false; if(feraCnt <= 1) { feraCnt++; goto tugine; } if(gimmetrow == 0){ muha = false; } if([[fileDataArray objectAtIndex:i] isEqualToString:@"----"]){ gimmetrow++; goto tugine; } if(okyo){ NSArray *item10 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","]; if(MS.D->P->S4.unitTypeFlag && [item10 count] > 1){ if(!MS.D->P->S4.subj){ MS.D->P->S4.subj = calloc(1, sizeof(UNIT2)); sjt = MS.D->P->S4.subj; } else{ MS.D->P->S4.subj->next = calloc(1, sizeof(UNIT2)); if(pussyCnt == 1) sjt = MS.D->P->S4.subj; MS.D->P->S4.subj = MS.D->P->S4.subj->next; } MS.D->P->S4.subj->C = UC[[[item10 objectAtIndex:0] intValue]]; MS.D->P->S4.subj->team = [[item10 objectAtIndex:1] intValue]; MS.D->P->S4.subj->x = [[item10 objectAtIndex:2] intValue]; MS.D->P->S4.subj->y = [[item10 objectAtIndex:3] intValue]; pussyCnt++; NSString *string = @""; string = [string stringByAppendingFormat:@"[%@]",MS.D->P->S4.subj->C.name]; [MS.D->SCRPT addObject:string]; } } if(iine){ NSArray *item10 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","]; if(MS.D->P->S4.placeFlag && [item10 count] > 1){ if(!MS.D->P->S4.wayp){ MS.D->P->S4.wayp = calloc(1, sizeof(PLACEMENT)); wpt = MS.D->P->S4.wayp; } else{ MS.D->P->S4.wayp->next = calloc(1, sizeof(PLACEMENT)); if(pussyCnt == 1) wpt = MS.D->P->S4.wayp; MS.D->P->S4.wayp = MS.D->P->S4.wayp->next; } MS.D->P->S4.wayp->type = [[item10 objectAtIndex:0] intValue]; MS.D->P->S4.wayp->x = [[item10 objectAtIndex:1] intValue]; MS.D->P->S4.wayp->y = [[item10 objectAtIndex:2] intValue]; MS.D->P->S4.wayp->z = [[item10 objectAtIndex:3] intValue]; MS.D->P->S4.wayp->x2 = [[item10 objectAtIndex:4] intValue]; MS.D->P->S4.wayp->y2 = [[item10 objectAtIndex:5] intValue]; pussyCnt++; NSString *string = @""; if(MS.D->P->S4.wayp->type == 0){ string = [string stringByAppendingFormat:@"[%d, %d]",MS.D->P->S4.wayp->x ,MS.D->P->S4.wayp->y]; }else if(MS.D->P->S4.wayp->type == 1){ string = [string stringByAppendingFormat:@"[%d, %d, %d]",MS.D->P->S4.wayp->x ,MS.D->P->S4.wayp->y,MS.D->P->S4.wayp->z]; }else if(MS.D->P->S4.wayp->type == 2){ 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]; } [MS.D->SCRPT addObject:string]; } } if(uhya){ NSArray *item10 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","]; if(MS.D->P->S4.objeFlag && [item10 count] > 1){ if(!MS.D->P->S4.obje){ MS.D->P->S4.obje = calloc(1, sizeof(UNIT2)); ojt = MS.D->P->S4.obje; } else{ MS.D->P->S4.obje->next = calloc(1, sizeof(UNIT2)); if(pussyCnt == 1) ojt = MS.D->P->S4.obje; MS.D->P->S4.obje = MS.D->P->S4.obje->next; } MS.D->P->S4.obje->C = UC[[[item10 objectAtIndex:0] intValue]]; MS.D->P->S4.obje->team = [[item10 objectAtIndex:1] intValue]; MS.D->P->S4.obje->x = [[item10 objectAtIndex:2] intValue]; MS.D->P->S4.obje->y = [[item10 objectAtIndex:3] intValue]; pussyCnt++; NSString *string = @""; string = [string stringByAppendingFormat:@"範囲%d",MS.D->P->S4.objeRange]; string = [string stringByAppendingFormat:@"[%@]",MS.D->P->S4.obje->C.name]; [MS.D->SCRPT addObject:string]; } } if(muha){ NSArray *item10 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","]; if(MS.D->P->S4.buildFlag && [item10 count] > 1){ if(!MS.D->P->S4.build){ MS.D->P->S4.build = calloc(1, sizeof(BUILD2)); bdt = MS.D->P->S4.build; } else{ MS.D->P->S4.build->next = calloc(1, sizeof(BUILD2)); if(pussyCnt == 1) bdt = MS.D->P->S4.build; MS.D->P->S4.build = MS.D->P->S4.build->next; } MS.D->P->S4.build->C = &BC[[[item10 objectAtIndex:0] intValue]]; MS.D->P->S4.build->team = [[item10 objectAtIndex:1] intValue]; MS.D->P->S4.build->x = [[item10 objectAtIndex:2] intValue]; MS.D->P->S4.build->y = [[item10 objectAtIndex:3] intValue]; pussyCnt++; NSString *string = @""; if(MS.D->P->S4.build->C) string = [string stringByAppendingFormat:@"[%@]",MS.D->P->S4.build->C->name]; else string = [string stringByAppendingFormat:@"[(null)]"]; [MS.D->SCRPT addObject:string]; } } tugine:{} if(gimmetrow == 4){ uhya = false; muha = true; } if(gimmetrow == 3){ iine = false; uhya = true; } if(gimmetrow == 2){ okyo = false; iine = true; } if(gimmetrow == 1){ okyo = true; muha = false; } }if(MS.D->P->type == 9){ { if(!MS.D->P->memo) {MS.D->P->memo = @""; } NSString *string = @""; string = [[string stringByAppendingFormat:@"%@", [fileDataArray objectAtIndex:i]] retain]; if([string isEqualToString:@""]) continue; if(pussyCnt > 0) MS.D->P->memo = [[MS.D->P->memo stringByAppendingFormat:@"\n"] retain]; MS.D->P->memo = [[MS.D->P->memo stringByAppendingString:string] retain]; if(![string isEqualToString:@""]) [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@", [fileDataArray objectAtIndex:i]]]; pussyCnt++; } }if(MS.D->P->type == 22){ NSString *string = @""; NSString *string2 = @""; NSArray *items10 = [[[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","] retain]; if([items10 count] < 5) goto OMFGOUCH; if(!MS.D->P->S3){ MS.D->P->S3 = calloc(1, sizeof(MAPSCRIPT3)); MS3T = MS.D->P->S3; } else{ if(mankoCnt == 1) MS3T = MS.D->P->S3; MS.D->P->S3->next = calloc(1, sizeof(MAPSCRIPT3)); MS.D->P->S3 = MS.D->P->S3->next; } MS.D->P->S3->type = [[items10 objectAtIndex:0] intValue]; MS.D->P->S3->team = [[items10 objectAtIndex:1] intValue]; MS.D->P->S3->unitNum = [[items10 objectAtIndex:2] intValue]; MS.D->P->S3->x = [[items10 objectAtIndex:3] intValue]; MS.D->P->S3->y = [[items10 objectAtIndex:4] intValue]; MS.D->P->S3->flag = [[items10 objectAtIndex:5] intValue]; MS.D->P->S3->U = UC[MS.D->P->S3->unitNum]; MS.D->P->S3->loadInt = [[items10 objectAtIndex:6] intValue]; string2 = [NSString stringWithFormat:@"%@[%d,%d]", MS.D->P->S3->U.name, MS.D->P->S3->x, MS.D->P->S3->y]; string2 = [string2 stringByAppendingFormat:@"%d", MS.D->P->S3->team]; if(MS.D->P->S3->flag) string2 = [string2 stringByAppendingFormat:@"重"]; if(![string2 isEqualToString:@""]) [MS.D->SCRPT addObject:[NSString stringWithString:string2]]; mankoCnt++; }if(MS.D->P->type == 23){ NSString *string = @""; NSString *string2 = @""; NSArray *items10 = [[[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","] retain]; if([items10 count] < 4) goto OMFGOUCH; if(!MS.D->P->S5){ MS.D->P->S5 = calloc(1, sizeof(MAPSCRIPT5)); MS5T = MS.D->P->S5; } else{ if(analCnt == 1) MS5T = MS.D->P->S5; MS.D->P->S5->next = calloc(1, sizeof(MAPSCRIPT5)); MS.D->P->S5 = MS.D->P->S5->next; } MS.D->P->S5->type = [[items10 objectAtIndex:0] intValue]; MS.D->P->S5->team = [[items10 objectAtIndex:1] intValue]; MS.D->P->S5->unitNum = [[items10 objectAtIndex:2] intValue]; MS.D->P->S5->x = [[items10 objectAtIndex:3] intValue]; MS.D->P->S5->y = [[items10 objectAtIndex:4] intValue]; MS.D->P->S5->U = UC[MS.D->P->S5->unitNum]; MS.D->P->S5->saveInt = [[items10 objectAtIndex:5] intValue]; string2 = [NSString stringWithFormat:@"%@[%d,%d]", MS.D->P->S5->U.name, MS.D->P->S5->x, MS.D->P->S5->y]; string2 = [string2 stringByAppendingFormat:@"%d", MS.D->P->S5->team]; if(![string2 isEqualToString:@""]) [MS.D->SCRPT addObject:[NSString stringWithString:string2]]; analCnt++; } } // NSLog(@"aa"); OMFGOUCH:{} } } scriptIndex++; } if(i+1 < [fileDataArray count]){ NSArray *array100 = [[NSString stringWithFormat:@"%@◆", [fileDataArray objectAtIndex:i+1]] componentsSeparatedByString:@"◆"]; NSString *string100 = [NSString stringWithFormat:@"%@", [array100 objectAtIndex:1]]; NSRange rangeSearch100; if([array100 count] > 2) rangeSearch100 = [[fileDataArray objectAtIndex:i+1] rangeOfString:string100]; NSArray *array101 = [[NSString stringWithFormat:@"%@●", [fileDataArray objectAtIndex:i+1]] componentsSeparatedByString:@"●"]; NSString *string101 = [NSString stringWithFormat:@"%@", [array101 objectAtIndex:1]]; NSRange rangeSearch101; if([array101 count] > 2) rangeSearch101 = [[fileDataArray objectAtIndex:i+1] rangeOfString:string101]; if([array100 count] > 2 || [array101 count] > 2) if(rangeSearch100.location != NSNotFound || rangeSearch101.location != NSNotFound){ if(MS.D) if(MS.D->P){ if(MS.D->P->S3){ MS.D->P->S3 = MS3T; } if(MS.D->P->S5){ MS.D->P->S5 = MS5T; } } } }else{ if(MS.D) if(MS.D->P){ if(MS.D->P->S3){ MS.D->P->S3 = MS3T; } if(MS.D->P->S5){ MS.D->P->S5 = MS5T; } } } //NSLog(@"", i, MS); } //MS.D->P->S1.str = [MS.D->P->S1.str substringToIndex:MS.D->P->S1.str.length-4]; if(MS.D) MS.D->P = MSDPtop; MS.D = MSDtop; MSDTOPP = MSDtop; supFlag = false; supFlag2 = false; MF[MFselectedRow+1].MS.D = MS.D; MF[MFselectedRow+1].MS = MS; mapSizeChangedFlag = true; mapLoadFlagForMSD = false; mapLoadFlagForMSD2 = false; //NSLog(@"%d", 1); } -(void)saveMapChip{ NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; NSString *fileData = @""; NSString *pathDATA = @"Map/"; for(int i = 1;i<= chipHeight;i++){ for(int j = 1;j <= chipWidth;j++){ fileData = [fileData stringByAppendingFormat:@"%2d", chipNum[j][i]]; if(j == chipWidth) fileData = [fileData stringByAppendingFormat:@"\n"]; else { fileData = [fileData stringByAppendingFormat:@","]; } } } fileData = [fileData stringByAppendingFormat:@"####\n"]; for(int i = 1;i<= chipHeight;i++){ for(int j = 1;j <= chipWidth;j++){ fileData = [fileData stringByAppendingFormat:@"%2d", buildNum[j][i]+1]; if(j == chipWidth) fileData = [fileData stringByAppendingFormat:@"\n"]; else { fileData = [fileData stringByAppendingFormat:@","]; } } } fileData = [fileData stringByAppendingFormat:@"####\n"]; for(int i = 1;i<= chipHeight;i++){ for(int j = 1;j <= chipWidth;j++){ if(unitNum[j][i] != -1){ fileData = [fileData stringByAppendingFormat:@"%d", unitNum[j][i]+1]; fileData = [fileData stringByAppendingFormat:@","]; fileData = [fileData stringByAppendingFormat:@"%d", j]; fileData = [fileData stringByAppendingFormat:@","]; fileData = [fileData stringByAppendingFormat:@"%d", i]; fileData = [fileData stringByAppendingFormat:@"\n"]; } } } fileData = [fileData stringByAppendingFormat:@"####\n"]; for(int i = 1;i<= chipHeight;i++){ for(int j = 1;j <= chipWidth;j++){ if(buildTeam[j][i] != -1){ fileData = [fileData stringByAppendingFormat:@"%d", buildTeam[j][i]]; fileData = [fileData stringByAppendingFormat:@","]; fileData = [fileData stringByAppendingFormat:@"%d", j]; fileData = [fileData stringByAppendingFormat:@","]; fileData = [fileData stringByAppendingFormat:@"%d", i]; fileData = [fileData stringByAppendingFormat:@"\n"]; } } } fileData = [fileData stringByAppendingFormat:@"####\n"]; for(int i = 1;i<= chipHeight;i++){ for(int j = 1;j <= chipWidth;j++){ if(unitTeam[j][i] != -1){ fileData = [fileData stringByAppendingFormat:@"%d", unitTeam[j][i]]; fileData = [fileData stringByAppendingFormat:@","]; fileData = [fileData stringByAppendingFormat:@"%d", j]; fileData = [fileData stringByAppendingFormat:@","]; fileData = [fileData stringByAppendingFormat:@"%d", i]; fileData = [fileData stringByAppendingFormat:@"\n"]; } } } fileData = [fileData stringByAppendingFormat:@"####\n"]; for(int i = 1;i<= chipHeight;i++){ for(int j = 1;j <= chipWidth;j++){ if(loadNum[j][i] != -1){ fileData = [fileData stringByAppendingFormat:@"%d", loadNum[j][i]+1]; fileData = [fileData stringByAppendingFormat:@","]; fileData = [fileData stringByAppendingFormat:@"%d", j]; fileData = [fileData stringByAppendingFormat:@","]; fileData = [fileData stringByAppendingFormat:@"%d", i]; fileData = [fileData stringByAppendingFormat:@"\n"]; } } } fileData = [fileData stringByAppendingFormat:@"----\n"]; fileData = [fileData stringByAppendingFormat:@"%d,%d\n", MF[MFselectedRow+1].MS.guildListRegistNum11, MF[MFselectedRow+1].MS.guildListRegistNum12]; for(int i = 0;i < UCN;i++){ if(i > 0) fileData = [fileData stringByAppendingFormat:@","]; fileData = [fileData stringByAppendingFormat:@"%d", MF[MFselectedRow+1].MS.guildListRegist[i]]; } fileData = [fileData stringByAppendingFormat:@"\n"]; fileData = [fileData stringByAppendingFormat:@"%d,%d\n", MF[MFselectedRow+1].MS.guildListRegistNum21, MF[MFselectedRow+1].MS.guildListRegistNum22]; for(int i = 0;i < UCN;i++){ if(i > 0) fileData = [fileData stringByAppendingFormat:@","]; fileData = [fileData stringByAppendingFormat:@"%d", MF[MFselectedRow+1].MS.guildListRegist2[i]]; } fileData = [fileData stringByAppendingFormat:@"\n"]; fileData = [fileData stringByAppendingFormat:@"----\n"]; fileData = [fileData stringByAppendingFormat:@"%d|%d", MF[MFselectedRow+1].MS.EGClight.endType1, MF[MFselectedRow+1].MS.EGClight.endType2]; fileData = [fileData stringByAppendingFormat:@"\n"]; for (int i = 0; i < 64;i++) { if(i == 0 && !MF[MFselectedRow+1].MS.EGClight.etValue1[i]) fileData = [fileData stringByAppendingFormat:@"NULL"]; if(!MF[MFselectedRow+1].MS.EGClight.etValue1[i]) break; if(i > 0) fileData = [fileData stringByAppendingFormat:@"|"]; fileData = [fileData stringByAppendingFormat:@"%@", MF[MFselectedRow+1].MS.EGClight.etValue1[i]]; }fileData = [fileData stringByAppendingFormat:@"\n"]; //NSLog(@"%@", fileData); for (int i = 0; i < 64;i++) { if(i == 0 && !MF[MFselectedRow+1].MS.EGClight.etValue2[i]) fileData = [fileData stringByAppendingFormat:@"NULL"]; if(!MF[MFselectedRow+1].MS.EGClight.etValue2[i]) break; if(i > 0) fileData = [fileData stringByAppendingFormat:@"|"]; fileData = [fileData stringByAppendingFormat:@"%@", MF[MFselectedRow+1].MS.EGClight.etValue2[i]]; }fileData = [fileData stringByAppendingFormat:@"\n"]; fileData = [fileData stringByAppendingFormat:@"####\n"]; fileData = [fileData stringByAppendingFormat:@"%d|%d", MF[MFselectedRow+1].MS.EGCdark.endType1, MF[MFselectedRow+1].MS.EGCdark.endType2]; fileData = [fileData stringByAppendingFormat:@"\n"]; for (int i = 0; i < 64;i++) { if(i == 0 && !MF[MFselectedRow+1].MS.EGCdark.etValue1[i]) fileData = [fileData stringByAppendingFormat:@"NULL"]; if(!MF[MFselectedRow+1].MS.EGCdark.etValue1[i]) break; if(i > 0) fileData = [fileData stringByAppendingFormat:@"|"]; fileData = [fileData stringByAppendingFormat:@"%@", MF[MFselectedRow+1].MS.EGCdark.etValue1[i]]; }fileData = [fileData stringByAppendingFormat:@"\n"]; for (int i = 0; i < 64;i++) { if(i == 0 && !MF[MFselectedRow+1].MS.EGCdark.etValue2[i]) fileData = [fileData stringByAppendingFormat:@"NULL"]; if(!MF[MFselectedRow+1].MS.EGCdark.etValue2[i]) break; if(i > 0) fileData = [fileData stringByAppendingFormat:@"|"]; fileData = [fileData stringByAppendingFormat:@"%@", MF[MFselectedRow+1].MS.EGCdark.etValue2[i]]; }fileData = [fileData stringByAppendingFormat:@"\n"]; fileData = [fileData stringByAppendingFormat:@"----\n"]; fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d,%d,%d\n", playerSet1, playerSet2, battleSetMode, scenarioSetMode,scenarioNumbCrnt,scenarioNumbNext]; fileData = [fileData stringByAppendingFormat:@"========\nEVENT\n========\n"]; MAPSCRIPT MS = MF[MFselectedRow+1].MS; MS.D = MSDTOPP; int index = 0; while(MS.D){ MAPSCRIPT0 *MSPtop = MS.D->P; fileData = [fileData stringByAppendingFormat:@"●"]; fileData = [fileData stringByAppendingFormat:@"%@ ", [MS.SCRPTname objectAtIndex:index]]; fileData = [fileData stringByAppendingFormat:@"%d[%d,%d]", MS.D->type,MS.D->x, MS.D->y]; fileData = [fileData stringByAppendingFormat:@"%dET[%g,%g]", MS.D->ETtype,MS.D->ET1, MS.D->ET2]; if(MS.D->switch1) if(*MS.D->switch1 > 0){ fileData = [fileData stringByAppendingFormat:@"ON["]; for(int i = 0;*(MS.D->switch1+i) > 0;i++){ if(i>0) fileData = [fileData stringByAppendingFormat:@","]; fileData = [fileData stringByAppendingFormat:@"%d", *(MS.D->switch1+i)]; } fileData = [fileData stringByAppendingFormat:@"]"]; } if(MS.D->switch2) if(*MS.D->switch2 > 0){ fileData = [fileData stringByAppendingFormat:@"OFF["]; for(int i = 0;*(MS.D->switch2+i) > 0;i++){ if(i>0) fileData = [fileData stringByAppendingFormat:@","]; fileData = [fileData stringByAppendingFormat:@"%d", *(MS.D->switch2+i)]; } fileData = [fileData stringByAppendingFormat:@"]"]; } fileData = [fileData stringByAppendingFormat:@"\n"]; if(!MS.D->P) { MS.D = MS.D->next; continue; } while(MS.D->P){ if(MS.D->P->type == 0){ fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent]; fileData = [fileData stringByAppendingFormat:@"◆0,"]; fileData = [fileData stringByAppendingFormat:@"%@,", MS.D->P->S1.nameID]; fileData = [fileData stringByAppendingFormat:@"%@,", MS.D->P->S1.name]; fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->S1.iName]; fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->S1.str]; }if(MS.D->P->type == 1){ fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent]; fileData = [fileData stringByAppendingFormat:@"◆1\n"]; MAPSCRIPT2 *MS2T = MS.D->P->S2; while (MS.D->P->S2) { fileData = [fileData stringByAppendingFormat:@"%@,", MS.D->P->S2->selection]; fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->S2->labelJump]; MS.D->P->S2 = MS.D->P->S2->next; }MS.D->P->S2 = MS2T; } if(MS.D->P->type == 3){ fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent]; fileData = [fileData stringByAppendingFormat:@"◆3,"]; if(MS.D->P->switch1) if(MS.D->P->switch1 > 0) fileData = [fileData stringByAppendingFormat:@"ON"]; if(MS.D->P->switch2) if(MS.D->P->switch2 > 0) fileData = [fileData stringByAppendingFormat:@"OFF"]; fileData = [fileData stringByAppendingFormat:@"\n"]; if(MS.D->P->switch1) for(int i = 0;*(MS.D->P->switch1+ i) > 0;i++){ fileData = [fileData stringByAppendingFormat:@"%d", *(MS.D->P->switch1 + i)]; if(*(MS.D->P->switch1 + i + 1) > 0) fileData = [fileData stringByAppendingFormat:@","]; } if(MS.D->P->switch2) for(int i = 0;*(MS.D->P->switch2+i) > 0;i++){ fileData = [fileData stringByAppendingFormat:@"%d", *(MS.D->P->switch2 + i)]; if(*(MS.D->P->switch2 + i + 1) > 0) fileData = [fileData stringByAppendingFormat:@","]; } fileData = [fileData stringByAppendingFormat:@"\n"]; }if(MS.D->P->type == 5){ fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent]; fileData = [fileData stringByAppendingFormat:@"◆6\n"]; fileData = [fileData stringByAppendingFormat:@"%d, %d,", MS.D->P->timerMin, MS.D->P->timerSec]; fileData = [fileData stringByAppendingFormat:@"%d, %d, %d\n", MS.D->P->timerRun, MS.D->P->timerMode, MS.D->P->timerVisible]; }if(MS.D->P->type == 6){ fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent]; fileData = [fileData stringByAppendingFormat:@"◆6,"]; MAPSCRIPT4 MS4 = MS.D->P->S4; fileData = [fileData stringByAppendingFormat:@"%@,%@\n", MS4.COMPrabel,MS4.FAILrabel]; fileData = [fileData stringByAppendingFormat:@"%d,%d\n", MS4.suicchiFlag,MS4.suicchiONOFF]; if(MS4.suicchi) for (int i = 0;*(MS4.suicchi + i);i++) { if(i > 0) fileData = [fileData stringByAppendingFormat:@","]; fileData = [fileData stringByAppendingFormat:@"%d", *(MS4.suicchi + i)]; }fileData = [fileData stringByAppendingFormat:@"\n"]; 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 ]; fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d\n", MS4.timerFlag,MS4.timerMin,MS4.timerSec,MS4.timerType]; fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d,%d,%d\n", MS4.unitNumFlag,MS4.unitTypeFlag,MS4.placeFlag,MS4.unitCMDflag,MS4.objeFlag,MS4.buildFlag]; fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d,%d\n", MS4.team,MS4.unitNum,MS4.unitType,MS4.unitCMD,MS4.objeRange]; fileData = [fileData stringByAppendingFormat:@"----\n"]; UNIT2 *sj = MS4.subj; UNIT2 *sjt = sj; while (sj) { fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d\n", sj->C.chipNumb ,sj->team, sj->x, sj->y]; sj = sj->next; }sj = sjt; fileData = [fileData stringByAppendingFormat:@"----\n"]; PLACEMENT *wp = MS4.wayp; PLACEMENT *wpt = wp; while (wp) { fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d,%d,%d\n", wp->type ,wp->x ,wp->y, wp->z, wp->x2,wp->y2]; wp = wp->next; }wp = wpt; fileData = [fileData stringByAppendingFormat:@"----\n"]; UNIT2 *oj = MS4.obje; UNIT2 *ojt = sj; while (oj) { fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d\n", oj->C.chipNumb ,oj->team, oj->x, oj->y]; oj = oj->next; }oj = ojt; fileData = [fileData stringByAppendingFormat:@"----\n"]; BUILD2 *bd = MS4.build; BUILD2 *bdt = bd; while (bd) { fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d\n", bd->C->chipNumb, bd->team, bd->x, bd->y]; bd = bd->next; }bd = bdt; } if(MS.D->P->type == 7){ fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent]; fileData = [fileData stringByAppendingFormat:@"◆7\n"]; fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->label]; }if(MS.D->P->type == 8){ fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent]; fileData = [fileData stringByAppendingFormat:@"◆8\n"]; fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->labelJump]; }if(MS.D->P->type == 9){ fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent]; fileData = [fileData stringByAppendingFormat:@"◆9\n"]; fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->memo]; }if(MS.D->P->type == 10){ fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent]; fileData = [fileData stringByAppendingFormat:@"◆10\n"]; fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,%d,%d,%d" @",%d,%d,%d,%d,%d" @",%d,%d,%d,%d,%d\n", MS.D->P->S6.team, MS.D->P->S6.RCsupply, MS.D->P->S6.RCsupplyAdd, MS.D->P->S6.RCsupplyValue, MS.D->P->S6.RCsupplyS, MS.D->P->S6.RCsupplySelect, MS.D->P->S6.RCfood, MS.D->P->S6.RCfoodAdd, MS.D->P->S6.RCfoodValue, MS.D->P->S6.RCfoodS, MS.D->P->S6.RCfoodSelect, MS.D->P->S6.RCmoney, MS.D->P->S6.RCmoneyAdd, MS.D->P->S6.RCmoneyValue, MS.D->P->S6.RCmoneyS, MS.D->P->S6.RCmoneySelect]; }if(MS.D->P->type == 22){ fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent]; fileData = [fileData stringByAppendingFormat:@"◆22\n"]; MAPSCRIPT3 *MS3T = MS.D->P->S3; while(MS.D->P->S3){ fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,", MS.D->P->S3->type, MS.D->P->S3->team, MS.D->P->S3->unitNum]; 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]; MS.D->P->S3 = MS.D->P->S3->next; }MS.D->P->S3 = MS3T; }if(MS.D->P->type == 23){ fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent]; fileData = [fileData stringByAppendingFormat:@"◆23\n"]; MAPSCRIPT5 *MS5T = MS.D->P->S5; while(MS.D->P->S5){ fileData = [fileData stringByAppendingFormat:@"%d,%d,%d,", MS.D->P->S5->type, MS.D->P->S5->team, MS.D->P->S5->unitNum]; fileData = [fileData stringByAppendingFormat:@"%d,%d,%d\n", MS.D->P->S5->x, MS.D->P->S5->y, MS.D->P->S5->saveInt]; MS.D->P->S5 = MS.D->P->S5->next; }MS.D->P->S5 = MS5T; }if(MS.D->P->type == 25){ fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent]; fileData = [fileData stringByAppendingFormat:@"◆25\n"]; fileData = [fileData stringByAppendingFormat:@"%g\n", MS.D->P->wait]; }if(MS.D->P->type == 28){ fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent]; fileData = [fileData stringByAppendingFormat:@"◆28\n"]; fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->BGM.fName]; }if(MS.D->P->type == 30){ fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent]; fileData = [fileData stringByAppendingFormat:@"◆30\n"]; fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->SE.fName]; }if(MS.D->P->type == 35){ fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent]; fileData = [fileData stringByAppendingFormat:@"◆35\n"]; fileData = [fileData stringByAppendingFormat:@"%d,%d,", MS.D->P->gaov.gaovFlag,MS.D->P->gaov.edcdFlag]; fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->gaov.fNname]; if(1){ NSData *imgData = [MS.D->P->gaov.img TIFFRepresentation]; NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:imgData]; imgData = [brep representationUsingType:NSPNGFileType properties:nil]; NSString *imgPath = @"data/Others/img/"; imgPath = [imgPath stringByAppendingFormat:@"%@", MS.D->P->gaov.fNname]; [imgData writeToFile:imgPath atomically:YES]; } }if(MS.D->P->type == 36){ fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent]; fileData = [fileData stringByAppendingFormat:@"◆36\n"]; fileData = [fileData stringByAppendingFormat:@"%d,%d\n", MS.D->P->sc.scFlag,MS.D->P->sc.edcdFlag]; }if(MS.D->P->type == 37){ fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent]; fileData = [fileData stringByAppendingFormat:@"◆37\n"]; fileData = [fileData stringByAppendingFormat:@"%d\n", MS.D->P->titleBack]; } MS.D->P = MS.D->P->next; } MS.D->P = MSPtop; MS.D = MS.D->next; index++; } NSLog(@"%@", fileData); MS = MF[MFselectedRow+1].MS; pathDATA = [pathDATA stringByAppendingFormat:@"%@", saveMapDataName]; [[NSFileManager defaultManager] createFileAtPath:pathDATA contents:nil attributes:nil]; [fileData writeToFile:pathDATA atomically:YES encoding:NSUTF8StringEncoding error:nil]; } @end