From 2231a3c6cb9fc098af013a39d169065803c69707 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E6=A1=90=E8=B0=B7=20=E8=AB=AD=E5=8F=B2?= Date: Fri, 1 May 2015 18:36:52 +0900 Subject: [PATCH] new --- Awars III/BuildChipList.h | 171 ++ Awars III/BuildChipList.m | 783 ++++++ Awars III/ChipView.h | 40 + Awars III/ChipView.m | 167 ++ Awars III/CommandView.h | 28 + Awars III/CommandView.m | 97 + Awars III/LoadChipList.h | 173 ++ Awars III/LoadChipList.m | 675 +++++ Awars III/MapChipList.h | 67 + Awars III/MapChipList.m | 350 +++ Awars III/MapEditor.h | 662 +++++ Awars III/MapEditor.m | 3095 +++++++++++++++++++++ Awars III/MapView.h | 64 + Awars III/MapView.m | 1011 +++++++ Awars III/SChipView.h | 21 + Awars III/SChipView.m | 66 + Awars III/SeedView.h | 31 + Awars III/SeedView.m | 94 + Awars III/UnitChipList.h | 696 +++++ Awars III/UnitChipList.m | 6500 +++++++++++++++++++++++++++++++++++++++++++++ 20 files changed, 14791 insertions(+) create mode 100755 Awars III/BuildChipList.h create mode 100755 Awars III/BuildChipList.m create mode 100755 Awars III/ChipView.h create mode 100755 Awars III/ChipView.m create mode 100755 Awars III/CommandView.h create mode 100755 Awars III/CommandView.m create mode 100644 Awars III/LoadChipList.h create mode 100644 Awars III/LoadChipList.m create mode 100755 Awars III/MapChipList.h create mode 100755 Awars III/MapChipList.m create mode 100755 Awars III/MapEditor.h create mode 100755 Awars III/MapEditor.m create mode 100755 Awars III/MapView.h create mode 100755 Awars III/MapView.m create mode 100755 Awars III/SChipView.h create mode 100755 Awars III/SChipView.m create mode 100755 Awars III/SeedView.h create mode 100755 Awars III/SeedView.m create mode 100755 Awars III/UnitChipList.h create mode 100755 Awars III/UnitChipList.m diff --git a/Awars III/BuildChipList.h b/Awars III/BuildChipList.h new file mode 100755 index 0000000..8c7cb41 --- /dev/null +++ b/Awars III/BuildChipList.h @@ -0,0 +1,171 @@ +// +// BuildChipList.h +// Awars III +// +// Created by Killery on 2012/12/16. +// Copyright (c) 2012年 Killery. All rights reserved. +// + +#import +#import "MapEditor.h" + +typedef struct _RESEARCH{ + + struct _RESEARCH *next; + + int type; + int numb; + int Lv; + + void *U; + void *R; + void *O; + +}RESEARCH; + +typedef struct _BSTATUS{ + int HP; + int WT; + int WTE; + int WTN; + NSString *name; + +}BSTATUS; + +typedef struct _BUILDCHIP{ + + NSString *name; + NSString *nameR; + NSString *nameID; + + struct _RESEARCH *R; + struct _BSTATUS S_C; + struct _BSTATUS S_M; + + + int dmgfix; + int type; + int defLv; + + int Csupply; + int Cfood; + int Cmoney; + + + int CsupplyNext; + int CfoodNext; + int CmoneyNext; + + int Esupply; + int Efood; + int Emoney; + + + int recHP; + int recMP; + int recEN; + bool inroadsFlag; + bool capture; + NSString *linkDest; + NSString *linkNext; + + + NSString *iName; + NSImage *img; + + NSString *iNameb; + NSImage *imgb; + + +}BUILDCHIP; + +BUILDCHIP BC[128]; +RESEARCH *Rtop; + +int BuildChipNum; + +@interface BuildChipList : NSObject +{ + IBOutlet NSPanel* BCLPanel; + IBOutlet NSPanel* BCLDetailPanel; + IBOutlet NSPanel* BCLDetailOptionPanel; + IBOutlet NSPanel* BCLUnitResearchPanel; + IBOutlet NSPanel* BCLregisterPanel; + NSPoint BCLDpoint; + + + NSMutableArray *buildChipListMA; + IBOutlet NSArrayController *buildChipListAC; + IBOutlet NSTableView *buildChipListTV; + + NSArray *fileDataArray; + NSInteger chipNumb; + IBOutlet NSTextField* TFchipNumb; + + + IBOutlet NSTextField *TFname; + IBOutlet NSTextField *TFnameR; + IBOutlet NSTextField *TFnameID; + IBOutlet NSTextField *TFfix; + IBOutlet NSTextField *TFWT; + IBOutlet NSTextField *TFDLv; + IBOutlet NSTextField *TFHP; + IBOutlet NSTextField *TFRHP; + IBOutlet NSTextField *TFRMP; + IBOutlet NSTextField *TFREN; + IBOutlet NSTextField *TFcostS; + IBOutlet NSTextField *TFcostF; + IBOutlet NSTextField *TFcostM; + IBOutlet NSTextField *TFcostSn; + IBOutlet NSTextField *TFcostFn; + IBOutlet NSTextField *TFcostMn; + IBOutlet NSTextField *TFcostSe; + IBOutlet NSTextField *TFcostFe; + IBOutlet NSTextField *TFcostMe; + IBOutlet NSTextField *TFWTE; + IBOutlet NSTextField *TFWTN; + IBOutlet NSButton *BTNinroads; + IBOutlet NSButton *BTNcapture; + IBOutlet NSPopUpButton *PUPtype; + IBOutlet NSPopUpButton *PUPlinkD; + IBOutlet NSPopUpButton *PUPlinkN; + IBOutlet NSImageView *IVimg; + IBOutlet NSImageView *IVimgBig; + + IBOutlet NSPopUpButton *PUunit; + IBOutlet NSPopUpButton *PUresearch; + IBOutlet NSPopUpButton *PUunion; + + NSMutableArray *unitListPU; + + NSMutableArray *researchListMA; + IBOutlet NSArrayController *researchListAC; + IBOutlet NSTableView *researchListTV; + + int RLunitNumb; + int RLresearchNumb; + int RLunionNumb; + + int RLrow; +} +-(IBAction)submit:(id)sender; +- (NSMutableArray*)buildChipListMA; + +-(IBAction)saveBCL:(id)sender; +-(IBAction)cancelBCL:(id)sender; +-(IBAction)optionBCL:(id)sender; +-(IBAction)optionCloseBCL:(id)sender; +-(IBAction)unitResearchBCL:(id)sender; +-(IBAction)unitResearchCloseBCL:(id)sender; + +-(IBAction)registBCL:(id)sender; +-(IBAction)registSaveBCL:(id)sender; +-(IBAction)registCancelBCL:(id)sender; + +-(IBAction)researchListUnitInsert:(id)sender; +-(IBAction)researchListResearchInsert:(id)sender; +-(IBAction)researchListUnionInsert:(id)sender; + +-(IBAction)researchListDelete:(id)sender; + +@end diff --git a/Awars III/BuildChipList.m b/Awars III/BuildChipList.m new file mode 100755 index 0000000..92d03b8 --- /dev/null +++ b/Awars III/BuildChipList.m @@ -0,0 +1,783 @@ +// +// BuildChipList.m +// Awars III +// +// Created by Killery on 2012/12/16. +// Copyright (c) 2012年 Killery. All rights reserved. +// + +#import "BuildChipList.h" + +@implementation BuildChipList +- (void)dealloc +{ + [super dealloc]; +} + +- (NSMutableArray*)buildChipListMA{ + return buildChipListMA; +} +-(IBAction)submit:(id)sender{ + [BCLPanel close]; +} + +-(void)awakeFromNib{ + [buildChipListTV setTarget:self]; + [buildChipListTV setDoubleAction:@selector(doubleClickBCL:)]; + + [researchListTV setTarget:self]; + [researchListTV setAction:@selector(clickRL:)]; + + researchListMA = [NSMutableArray new]; + unitListPU = [NSMutableArray new]; +} +-(id)init{ + [super init]; + + if (self) { + [self initFileDirectory]; + [self initBuildChipList]; + BuildChipMax = (int)chipNumb/25+1; + Rtop = NULL; + } + + return self; +} +NSInteger clickIndex; +-(void)doubleClickBCL:(id)sender{ + clickIndex = [buildChipListTV clickedRow]; + if( clickIndex>=0 ){ + + [TFname setStringValue:BC[clickIndex].name]; + [TFnameR setStringValue:BC[clickIndex].nameR]; + [TFnameID setStringValue:BC[clickIndex].nameID]; + [TFfix setIntValue:BC[clickIndex].dmgfix]; + [TFWT setIntValue:BC[clickIndex].S_M.WT]; + [TFDLv setIntValue:BC[clickIndex].defLv]; + [TFHP setIntValue:BC[clickIndex].S_M.HP]; + [TFRHP setIntValue:BC[clickIndex].recHP]; + [TFRMP setIntValue:BC[clickIndex].recMP]; + [TFREN setIntValue:BC[clickIndex].recEN]; + [TFcostS setIntValue:BC[clickIndex].Csupply]; + [TFcostF setIntValue:BC[clickIndex].Cfood]; + [TFcostM setIntValue:BC[clickIndex].Cmoney]; + [TFcostSn setIntValue:BC[clickIndex].CsupplyNext]; + [TFcostFn setIntValue:BC[clickIndex].CfoodNext]; + [TFcostMn setIntValue:BC[clickIndex].CmoneyNext]; + [TFcostSe setIntValue:BC[clickIndex].Esupply]; + [TFcostFe setIntValue:BC[clickIndex].Efood]; + [TFcostMe setIntValue:BC[clickIndex].Emoney]; + [TFWTE setIntValue:BC[clickIndex].S_M.WTE]; + [TFWTN setIntValue:BC[clickIndex].S_M.WTN]; + [BC[clickIndex].img setFlipped:NO]; + [IVimg setImage:BC[clickIndex].img]; + [IVimgBig setImage:BC[clickIndex].imgb]; + [PUPtype selectItemAtIndex:BC[clickIndex].type]; + + [BTNinroads setIntValue:BC[clickIndex].inroadsFlag]; + [BTNcapture setIntValue:BC[clickIndex].capture]; + + //[PUPlinkD selectItemAtIndex:BC[clickIndex].linkDest]; + //[PUPlinkN selectItemAtIndex:BC[clickIndex].linkNext]; + } + + + BCLDpoint.x = [BCLPanel frame].origin.x + 50; + BCLDpoint.y = [BCLPanel frame].origin.y + 100; + [BCLDetailPanel setFrameOrigin:BCLDpoint]; + [BCLDetailPanel makeKeyAndOrderFront:nil]; +} + +-(void)clickRL:(id)sender{ + + RLrow = (int)[researchListTV clickedRow]; + +} + +-(IBAction)unitResearchBCL:(id)sender{ + + [unitListPU removeAllObjects]; + + for(int i = 0;i < UCN;i++){ + [unitListPU addObject:UC[i].nameRecognition]; + } + [PUunit addItemsWithTitles:unitListPU]; + + [self initResearchList]; + + + BCLDpoint.x = [BCLDetailPanel frame].origin.x + 0; + BCLDpoint.y = [BCLDetailPanel frame].origin.y + 0; + [BCLUnitResearchPanel setFrameOrigin:BCLDpoint]; + [BCLUnitResearchPanel makeKeyAndOrderFront:nil]; +} +-(IBAction)unitResearchCloseBCL:(id)sender{ + [BCLUnitResearchPanel close]; +} + +-(IBAction)saveBCL:(id)sender{ + BC[clickIndex].name = [[TFname stringValue] retain]; + BC[clickIndex].nameR = [[TFnameR stringValue] retain]; + BC[clickIndex].nameID = [[TFnameID stringValue] retain]; + BC[clickIndex].S_M.WT = [TFWT intValue]; + BC[clickIndex].dmgfix = [TFfix intValue]; + BC[clickIndex].defLv = [TFDLv intValue]; + BC[clickIndex].S_M.HP = [TFHP intValue]; + BC[clickIndex].recHP = [TFRHP intValue]; + BC[clickIndex].recMP = [TFRMP intValue]; + BC[clickIndex].recEN = [TFREN intValue]; + BC[clickIndex].Csupply = [TFcostS intValue]; + BC[clickIndex].Cfood = [TFcostF intValue]; + BC[clickIndex].Cmoney = [TFcostM intValue]; + BC[clickIndex].CsupplyNext = [TFcostSn intValue]; + BC[clickIndex].CfoodNext = [TFcostFn intValue]; + BC[clickIndex].CmoneyNext = [TFcostMn intValue]; + BC[clickIndex].Esupply = [TFcostSe intValue]; + BC[clickIndex].Efood = [TFcostFe intValue]; + BC[clickIndex].Emoney = [TFcostMe intValue]; + BC[clickIndex].S_M.WTE = [TFWTE intValue]; + BC[clickIndex].S_M.WTN = [TFWTN intValue]; + BC[clickIndex].type = (int)[PUPtype indexOfSelectedItem]; + BC[clickIndex].img = [[IVimg image] retain]; + BC[clickIndex].imgb = [[IVimgBig image] retain]; + + BC[clickIndex].inroadsFlag = [BTNinroads intValue]; + BC[clickIndex].capture = [BTNcapture intValue]; + + [buildChipListAC setValue:[NSString stringWithFormat:@"%@", BC[clickIndex].name] forKeyPath:@"selection.name"]; + [buildChipListAC setValue:[NSString stringWithFormat:@"%d", BC[clickIndex].dmgfix] forKeyPath:@"selection.dmgfix"]; + [buildChipListAC setValue:[NSString stringWithFormat:@"%d", BC[clickIndex].S_M.HP] forKeyPath:@"selection.HP"]; + [buildChipListAC setValue:[NSString stringWithFormat:@"%d", BC[clickIndex].defLv] forKeyPath:@"selection.defLv"]; + [buildChipListAC setValue:[NSString stringWithFormat:@"%d", BC[clickIndex].S_M.WT] forKeyPath:@"selection.WT"]; + [buildChipListAC setValue:BC[clickIndex].img forKeyPath:@"selection.img"]; + [buildChipListAC setValue:BC[clickIndex].imgb forKeyPath:@"selection.imgBig"]; + + [self saveData]; + [BCLDetailPanel close]; +} +-(IBAction)cancelBCL:(id)sender{ + [BCLDetailPanel close]; +} + +-(IBAction)optionBCL:(id)sender{ + + BCLDpoint.x = [BCLDetailPanel frame].origin.x + 100; + BCLDpoint.y = [BCLDetailPanel frame].origin.y + 0; + [BCLDetailOptionPanel setFrameOrigin:BCLDpoint]; + [BCLDetailOptionPanel makeKeyAndOrderFront:nil]; +} + +-(IBAction)optionCloseBCL:(id)sender{ + [BCLDetailOptionPanel close]; +} + +-(void)initFileDirectory{ + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + char *cwd; + cwd = getcwd(NULL, 0); + + + NSData *InitialData = [NSData dataWithContentsOfFile:@"data/BuildChip/preset.txt"]; + NSString *pathBC = @"data/BuildChip/img"; + NSString *pathDATA2 = @"data/BuildChip/preset.txt"; + NSString *pathBCP = @"data/BuildChip/preset.txt"; + NSString *fileData = nil; + + if(!InitialData){ + chipNumb = 23; + [[NSFileManager defaultManager] createDirectoryAtPath:pathBC withIntermediateDirectories:YES attributes:nil error:nil]; + [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil]; + + [[NSFileManager defaultManager] createFileAtPath:pathBCP contents:nil attributes:nil]; + + //NSString *data0 = @"名前\n名前R\nID\nHP,WT,dmgfix,defLv,rcHP,rcMP,rcEN\nS,F,M,Sn,Fn,Mn,Se,Fe,Me,WTe,WTn\ninRoads,capture,type,linkD,linkN\img,imgb\n----\n1,0\n1,2\n1,3\n----"; + + NSString *data1 = @"集落\n集落(一般)\nb1\n2000,2000,20,2,30,30,0\n0,500,0,500,500,0,100,100,0,1000,1000\n0,1,0,id,id\nbc1.png,bcb1.png\n----\n1,0\n1,2\n1,3\n----"; + NSString *data2 = @"村\n村(一般)\nb2\n3000,2000,30,2,30,30,0\n500,1000,0,500,500,500,100,100,100,1000,1000\n0,1,0,id,id\nbc2.png,bcb2.png\n----\n1,0\n1,1\n1,2\n1,3\n1,4\n1,5\n1,6\n----"; + NSString *data3 = @"町\n町(一般)\nb3\n5000,2000,30,3,30,30,0\n2000,2000,1000,500,500,500,100,100,100,1000,1000\n0,1,0,id,id\nbc3.png,bcb3.png\n----\n1,0\n1,1\n1,2\n1,3\n1,4\n1,5\n1,6\n1,7\n1,8\n1,10\n1,11\n1,12\n1,13\n1,14\n1,15\n1,16\n1,17\n----"; + NSString *data4 = @"街\n街(一般)\nb4\n8000,2000,30,3,30,30,0\n2500,2500,2500,500,500,500,100,100,100,1000,1000\n0,1,0,id,id\nbc4.png,bcb4.png\n----\n1,0\n1,1\n1,2\n1,3\n1,4\n1,5\n1,6\n1,7\n1,8\n1,9\n1,11\n1,12\n1,13\n1,16\n1,17\n1,18\n1,19\n1,22\n1,23\n1,24\n1,25\n1,26\n----"; + NSString *data5 = @"城\n城(一般)\nb5\n9000,2000,30,4,30,30,0\n3000,3000,4000,500,500,500,100,100,100,1000,1000\n0,1,0,id,id\nbc5.png,bcb5.png\n----\n1,7\n1,18\n1,19\n1,20\n1,21\n1,28\n1,29\n1,34\n1,35\n1,36\n1,37\n----"; + NSString *data6 = @"都市\n都市(一般)\nb6\n15000,2000,30,5,30,30,0\n5000,5000,5000,500,500,500,100,100,100,1000,1000\n0,1,0,id,id\nbc6.png,bcb6.png\n----\n1,0\n1,1\n1,2\n1,3\n1,4\n1,5\n1,6\n1,7\n1,8\n1,9\n1,10\n1,11\n1,12\n1,13\n1,14\n1,15\n1,16\n1,17\n1,18\n1,19\n1,20\n1,21\n1,22\n1,23\n1,24\n1,25\n1,26\n1,27\n1,28\n1,29\n1,30\n1,31\n1,32\n1,33\n1,38\n----"; + NSString *data7 = @"首都\n首都(一般)\nb7\n20000,2000,30,5,30,30,0\n10000,10000,15000,500,500,500,100,100,100,1000,1000\n0,1,0,id,id\nbc7.png,bcb7.png\n----\n1,0\n1,16\n1,18\n1,19\n1,20\n1,21\n1,22\n1,23\n1,24\n1,25\n1,26\n1,27\n1,28\n1,29\n1,30\n1,31\n1,32\n1,33\n1,34\n1,35\n1,36\n1,37\n1,38\n1,39\n1,40\n1,41\n1,42\n----"; + NSString *data8 = @"町の中心\n町の中心(一般)\nb8\n5000,2000,30,4,30,30,0\n2000,1000,500,500,500,500,100,100,100,1000,1000\n0,1,0,id,id\nbc8.png,bcb8.png\n----\n1,0\n1,43\n----"; + NSString *data9 = @"城壁\n城壁(一般)\nb9\n2500,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,0,0,id,id\nbc9.png,bcb9.png\n----\n----"; + NSString *data10 = @"瓦礫\n瓦礫(一般)\nb10\n1000,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,0,0,id,id\nbc10.png,bcb10.png\n----\n----"; + NSString *data11 = @"工場\n工場(一般)\nb11\n1600,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,0,id,id\nbc11.png,bcb11.png\n----\n----"; + NSString *data12 = @"港\n港(一般)\nb12\n1500,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,2,id,id\nbc12.png,bcb12.png\n----\n----"; + NSString *data13 = @"空港\n空港(一般)\nb13\n1800,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,0,id,id\nbc13.png,bcb13.png\n----\n----"; + NSString *data14 = @"学校\n学校(一般)\nb14\n1500,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,0,id,id\nbc14.png,bcb14.png\n----\n----"; + NSString *data15 = @"病院\n病院(一般)\nb15\n2000,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,0,id,id\nbc15.png,bcb15.png\n----\n----"; + NSString *data16 = @"保安所\n保安所(一般)\nb16\n2000,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,0,id,id\nbc16.png,bcb16.png\n----\n----"; + NSString *data17 = @"研究所\n研究所(一般)\nb17\n2400,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,0,id,id\nbc17.png,bcb17.png\n----\n----"; + NSString *data18 = @"統制機構\n統制機構(一般)\nb18\n5000,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,0,id,id\nbc18.png,bcb18.png\n----\n----"; + NSString *data19 = @"魔物の巣\n魔物の巣(一般)\nb19\n3000,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,0,id,id\nbc19.png,bcb19.png\n----\n----"; + NSString *data20 = @"魔法陣\n魔法陣(一般)\nb20\n1000,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,0,id,id\nbc20.png,bcb20.png\n----\n----"; + NSString *data21 = @"伐採所\n伐採所(一般)\nb21\n1000,1000,20,2,0,0,0\n200,0,0,0,0,0,50,0,0,0,0\n0,1,1,id,id\nbc21.png,bcb21.png\n----\n----"; + NSString *data22 = @"農家\n農家(一般)\nb22\n1000,1000,20,2,0,0,0\n300,0,0,0,0,0,0,50,0,0,0\n0,1,0,id,id\nbc22.png,bcb22.png\n----\n----"; + NSString *data23 = @"市場\n市場(一般)\nb23\n1000,1000,20,2,0,0,0\n400,0,0,0,0,0,0,0,50,0,0\n0,1,0,id,id\nbc23.png,bcb23.png\n----\n----"; + + for (int i=0; iU; + if(omanko != 0) BC[j].R = Rtop; + break; + + }else{ + if(cnt == 0) { + BC[j].R = (RESEARCH*)malloc(sizeof(RESEARCH)); + } + BC[j].R->type = [[rangeArray objectAtIndex:0] intValue]; + BC[j].R->numb = [[rangeArray objectAtIndex:1] intValue]; + BC[j].R->Lv = [[rangeArray objectAtIndex:2] intValue]; + + if(BC[j].R->type == 1) { + BC[j].R->U = &UC[BC[j].R->numb]; + BC[j].R->R = NULL; + BC[j].R->O = NULL; + } + if(BC[j].R->type == 2){ + BC[j].R->U = NULL; + BC[j].R->R = NULL; + BC[j].R->O = NULL; + } + if(BC[j].R->type == 3){ + BC[j].R->U = NULL; + BC[j].R->R = NULL; + BC[j].R->O = NULL; + } + + BC[j].R->next = (RESEARCH*)malloc(sizeof(RESEARCH)); + if(cnt == 0) Rtop = BC[j].R; + cnt++; + NSString *str2 = [fileDataArray objectAtIndex:k+1]; + NSRange rangeSearch2 = [str2 rangeOfString:@"----"]; + if(rangeSearch2.location != NSNotFound){ + BC[j].R->next = NULL; + }else{ + BC[j].R = BC[j].R->next; + } + } + omanko++; + } + BC[j].S_M.name = [BC[j].name retain]; + BC[j].S_C = BC[j].S_M; + } + + + + BuildChipNum = (int)chipNumb; + +} + +-(void)initBuildChipList{ + + + buildChipListMA = [NSMutableArray new]; + + + + + for(int i = 0;i < chipNumb;i++){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + + if(!BC[i].nameID){ + BC[i].name = [NSString stringWithFormat:@"新規建物"]; + BC[i].name = [BC[i].name stringByAppendingFormat:@"%d",i+1]; + BC[i].nameID = @"bc"; + BC[i].nameID = [BC[i].nameID stringByAppendingFormat:@"%d",i+1]; + BC[i].nameR = @"新規建物"; + BC[i].nameR = [BC[i].nameR stringByAppendingFormat:@"%d",i+1]; + BC[i].iName = @"bc"; + BC[i].iName = [BC[i].iName stringByAppendingFormat:@"%d",i+1]; + BC[i].iNameb = @"bcb"; + BC[i].iNameb = [BC[i].iNameb stringByAppendingFormat:@"%d",i+1]; + } + + [dict setValue:BC[i].img forKey:@"img"]; + [dict setValue:BC[i].imgb forKey:@"imgBig"]; + [dict setValue:[NSString stringWithFormat:@"%@", BC[i].name] forKey:@"name"]; + [dict setValue:[NSString stringWithFormat:@"%d", BC[i].S_M.HP] forKey:@"HP"]; + [dict setValue:[NSString stringWithFormat:@"%d", BC[i].S_M.WT] forKey:@"WT"]; + [dict setValue:[NSString stringWithFormat:@"%d", BC[i].dmgfix] forKey:@"dmgfix"]; + [dict setValue:[NSString stringWithFormat:@"%d", BC[i].defLv] forKey:@"defLv"]; + [self willChangeValueForKey:@"buildChipListMA"]; + [buildChipListMA addObject:dict]; + [self didChangeValueForKey:@"buildChipListMA"]; + } + + [self saveData]; +} + +-(void)savePreset{ + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + NSString *fileData = @""; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", (int)chipNumb]] stringByAppendingString:@"\n"]; + + NSString *path = @"data/BuildChip/preset.txt"; + [fileData writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil]; +} + +-(void)saveData{ + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + char *cwd; + cwd = getcwd(NULL, 0); + + for (int i = 0;i < chipNumb;i++) { + NSString *fileData = @""; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].name]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].nameR]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].nameID]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].S_M.HP]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].S_M.WT]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].dmgfix]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].defLv]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].recHP]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].recMP]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].recEN]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].Csupply]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].Cfood]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].Cmoney]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].CsupplyNext]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].CfoodNext]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].CmoneyNext]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].Esupply]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].Efood]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].Emoney]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].S_M.WTE]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].S_M.WTN]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].inroadsFlag]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].capture]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].type]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].linkDest]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].linkNext]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].iName]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].iNameb]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"]; + + NSData *f2Data = [BC[i].img TIFFRepresentation]; + NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:f2Data]; + f2Data = [brep representationUsingType:NSPNGFileType properties:nil]; + + NSString *bcPath = @"data/BuildChip/img/bc"; + bcPath = [bcPath stringByAppendingFormat:@"%d", i + 1]; + + [f2Data writeToFile:bcPath atomically:YES]; + + f2Data = [BC[i].imgb TIFFRepresentation]; + brep = [NSBitmapImageRep imageRepWithData:f2Data]; + f2Data = [brep representationUsingType:NSPNGFileType properties:nil]; + + bcPath = @"data/BuildChip/img/bcb"; + bcPath = [bcPath stringByAppendingFormat:@"%d", i + 1]; + + [f2Data writeToFile:bcPath atomically:YES]; + + RESEARCH *rTop = BC[i].R; + while(BC[i].R){ + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].R->type]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].R->numb]] + stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].R->Lv]] + stringByAppendingString:@"\n"]; + BC[i].R = BC[i].R->next; + }BC[i].R = rTop; + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"----"]]; + if(i != chipNumb - 1) fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"\n"]]; + + NSString *pathBCP = @"data/BuildChip/BCdata"; + pathBCP = [pathBCP stringByAppendingFormat:@"%d.txt", i + 1]; + [fileData writeToFile:pathBCP atomically:YES encoding:NSUTF8StringEncoding error:nil]; + + + + } + +} + +-(IBAction)registBCL:(id)sender{ + [TFchipNumb setIntValue:(int)chipNumb]; + [BCLregisterPanel makeKeyAndOrderFront:nil]; +} +-(IBAction)registSaveBCL:(id)sender{ + chipNumb = [TFchipNumb intValue]; + if(chipNumb > 128) chipNumb = 128; + BuildChipMax = (int)chipNumb/25+1; + + [self savePreset]; + [self initBuildChipList]; + [self initFileDirectory]; + [BCLregisterPanel close]; +} +-(IBAction)registCancelBCL:(id)sender{ + [BCLregisterPanel close]; +} + +-(IBAction)researchListUnitInsert:(id)sender{ + + RLunitNumb = (int)[PUunit indexOfSelectedItem] - 1; + + if(RLunitNumb < 0) return; + + int R = RLunitNumb; + + NSMutableDictionary *dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"新規研究"] forKey:@"name"]; + + Rtop = BC[clickIndex].R; + + if(RLrow < 0){ + BC[clickIndex].R = Rtop; + if([researchListMA count] == 0){ + BC[clickIndex].R = (RESEARCH*)malloc(sizeof(RESEARCH)); + //INIT 処理 + BC[clickIndex].R->type = 1; + BC[clickIndex].R->numb = R; + BC[clickIndex].R->U = &UC[R]; + BC[clickIndex].R->O = NULL; + BC[clickIndex].R->R = NULL; + BC[clickIndex].R->next = NULL; + Rtop = BC[R].R; + }else{ + while(BC[clickIndex].R->next) BC[clickIndex].R = BC[clickIndex].R->next; + BC[clickIndex].R->next = (RESEARCH*)malloc(sizeof(RESEARCH)); + BC[clickIndex].R = BC[clickIndex].R->next; + //INIT 処理 + BC[clickIndex].R->type = 1; + BC[clickIndex].R->numb = R; + BC[clickIndex].R->U = &UC[R]; + BC[clickIndex].R->O = NULL; + BC[clickIndex].R->R = NULL; + //UNITCHIP *uTest = (UNITCHIP*)BC[clickIndex].R->U; + BC[clickIndex].R->next = NULL; + BC[clickIndex].R = Rtop; + } + + [dict setValue:[NSString stringWithFormat:@"%@", UC[R].name] forKey:@"name"]; + [dict setValue:[NSString stringWithFormat:@"資%d 食%d 金%d", UC[R].S_M.cSupply, UC[R].S_M.cFood, UC[R].S_M.cMoney] forKey:@"cost"]; + [dict setValue:[NSString stringWithFormat:@"%d", UC[R].S_M.cWT] forKey:@"WT"]; + + [self willChangeValueForKey:@"researchListMA"]; + [researchListMA insertObject:dict atIndex:[researchListMA count]]; + [self didChangeValueForKey:@"researchListMA"]; + [researchListAC setSelectionIndex:999]; + RLrow = -1; + }else{ + BC[clickIndex].R = Rtop; + if([researchListMA count] == 0){ + BC[clickIndex].R = (RESEARCH*)malloc(sizeof(RESEARCH)); + //INIT 処理 + BC[clickIndex].R->type = 1; + BC[clickIndex].R->numb = R; + BC[clickIndex].R->U = &UC[R]; + BC[clickIndex].R->O = NULL; + BC[clickIndex].R->R = NULL; + BC[clickIndex].R->next = NULL; + Rtop = BC[clickIndex].R; + }else if(RLrow > 0){ + for (int i = 0; i < RLrow-1;i++) + BC[clickIndex].R = BC[clickIndex].R->next; + RESEARCH *tmp = (RESEARCH*)malloc(sizeof(RESEARCH)); + *tmp = *BC[clickIndex].R->next; + BC[clickIndex].R->next = (RESEARCH*)malloc(sizeof(RESEARCH)); + BC[clickIndex].R->next->next = tmp; + BC[clickIndex].R = BC[clickIndex].R->next; + //INIT 処理 + BC[clickIndex].R->type = 1; + BC[clickIndex].R->numb = R; + BC[clickIndex].R->U = &UC[R]; + BC[clickIndex].R->O = NULL; + BC[clickIndex].R->R = NULL; + BC[clickIndex].R = Rtop; + }else{ + RESEARCH *tmp = (RESEARCH*)malloc(sizeof(RESEARCH)); + tmp->next = BC[clickIndex].R; + // INIT 処理[self InitAttack:tmp]; + tmp->type = 1; + tmp->numb = R; + tmp->U = &UC[R]; + tmp->O = NULL; + tmp->R = NULL; + Rtop = tmp; + BC[clickIndex].R = Rtop; + } + + [dict setValue:[NSString stringWithFormat:@"%@", UC[R].name] forKey:@"name"]; + [dict setValue:[NSString stringWithFormat:@"資%d 食%d 金%d", UC[R].S_M.cSupply, UC[R].S_M.cFood, UC[R].S_M.cMoney] forKey:@"cost"]; + [dict setValue:[NSString stringWithFormat:@"%d", UC[R].S_M.cWT] forKey:@"WT"]; + + [self willChangeValueForKey:@"researchListMA"]; + [researchListMA insertObject:dict atIndex:RLrow]; + [self didChangeValueForKey:@"researchListMA"]; + [researchListAC setSelectionIndex:RLrow]; + } + +} + +-(IBAction)researchListResearchInsert:(id)sender{ + +} + +-(IBAction)researchListUnionInsert:(id)sender{ + +} + +-(IBAction)researchListDelete:(id)sender{ + + Rtop = BC[clickIndex].R; + + if(RLrow == -1){ + RLrow = (int)[researchListMA count] - 1; + } + + if([researchListMA count] > 0){ + + if(RLrow == 0){ + BC[clickIndex].R = Rtop; + BC[clickIndex].R = BC[clickIndex].R->next; + Rtop = BC[clickIndex].R; + }else if(RLrow == [researchListMA count] - 1){ + BC[clickIndex].R = Rtop; + while(BC[clickIndex].R->next->next){ + BC[clickIndex].R = BC[clickIndex].R->next; + } + BC[clickIndex].R->next = NULL; + }else{ + BC[clickIndex].R = Rtop; + for (int i = 0; i < RLrow - 1;i++) + BC[clickIndex].R = BC[clickIndex].R->next; + BC[clickIndex].R->next = BC[clickIndex].R->next->next; + } + + [self willChangeValueForKey:@"researchListMA"]; + [researchListMA removeObjectAtIndex:RLrow]; + [self didChangeValueForKey:@"researchListMA"]; + [researchListAC setSelectionIndex:RLrow-1]; + if(RLrow < 0) [researchListAC setSelectionIndex:[researchListMA count]-1]; + if(RLrow == 0) [researchListAC setSelectionIndex:0]; + if(RLrow > 0) RLrow--; + } + BC[clickIndex].R = Rtop; + +} + +-(void)initResearchList{ + + [self willChangeValueForKey:@"researchListMA"]; + [researchListMA removeAllObjects]; + [self didChangeValueForKey:@"researchListMA"]; + + RESEARCH *rTop = BC[clickIndex].R; + while(BC[clickIndex].R){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + UNITCHIP *uc = BC[clickIndex].R->U; + + [dict setValue:[NSString stringWithFormat:@"%@", uc->name] forKey:@"name"]; + [dict setValue:[NSString stringWithFormat:@"%d", uc->S_M.cWT] forKey:@"WT"]; + [dict setValue:[NSString stringWithFormat:@"資%d 食%d 金%d", uc->S_M.cSupply, uc->S_M.cFood, uc->S_M.cMoney] forKey:@"cost"]; + [self willChangeValueForKey:@"researchListMA"]; + [researchListMA addObject:dict]; + [self didChangeValueForKey:@"researchListMA"]; + + BC[clickIndex].R = BC[clickIndex].R->next; + }BC[clickIndex].R = rTop; + + +} + +@end diff --git a/Awars III/ChipView.h b/Awars III/ChipView.h new file mode 100755 index 0000000..e151907 --- /dev/null +++ b/Awars III/ChipView.h @@ -0,0 +1,40 @@ +// +// ChipView.h +// Awars III +// +// Created by Killery on 2012/12/15. +// Copyright (c) 2012年 Killery. All rights reserved. +// + +#import +#import "MapChipList.h" +#import "BuildChipList.h" +#import "UnitChipList.h" +#import "LoadChipList.h" +#import "MapEditor.h" +#import "SeedView.h" +#import "CommandView.h" + +int SLx; +int SLy; +int SLindex; +int SLindexB; +int SLindexU; +int SLindexL; + +@interface ChipView : NSView +{ + NSTimer *time; + + NSImage *chip; + NSImage *chip2; + NSImage *chipA, *chipB, *chipC, *chipD, *chipE, *chipF; + NSImage *chipa, *chipb, *chipc, *chipd, *chipe, *chipf; + + NSPoint selectPoint; +} + +-(NSImage*)LoadImage:(NSString*)name; +-(void)DrawImage:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy; + +@end diff --git a/Awars III/ChipView.m b/Awars III/ChipView.m new file mode 100755 index 0000000..5c39de0 --- /dev/null +++ b/Awars III/ChipView.m @@ -0,0 +1,167 @@ +// +// ChipView.m +// Awars III +// +// Created by Killery on 2012/12/15. +// Copyright (c) 2012年 Killery. All rights reserved. +// + +#import "ChipView.h" + +@implementation ChipView + +- (id)initWithFrame:(NSRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + time = [NSTimer + scheduledTimerWithTimeInterval:0.05f + target:self + selector:@selector(EventLoop:) + userInfo:nil + repeats:YES + ]; + chip = [[self LoadImage:@"マス.png"] retain]; + chip2 = [[self LoadImage:@"セレクター.png"] retain]; + chipA = [[self LoadImage:@"cc旗青.png"] retain]; + chipB = [[self LoadImage:@"cc旗青2.png"] retain]; + chipC = [[self LoadImage:@"cc旗赤.png"] retain]; + chipD = [[self LoadImage:@"cc旗赤2.png"] retain]; + chipE = [[self LoadImage:@"cc旗黄.png"] retain]; + chipF = [[self LoadImage:@"cc旗黄2.png"] retain]; + chipa = [[self LoadImage:@"ccはた青.png"] retain]; + chipb = [[self LoadImage:@"ccはた青2.png"] retain]; + chipc = [[self LoadImage:@"ccはた赤.png"] retain]; + chipd = [[self LoadImage:@"ccはた赤2.png"] retain]; + chipe = [[self LoadImage:@"ccはた黄.png"] retain]; + chipf = [[self LoadImage:@"ccはた黄2.png"] retain]; + + NSRect seRect; + seRect.size.height = 20*32; + seRect.size.width = 20*32; + } + + return self; +} + +-(void)EventLoop:(NSTimer*)time{ + + SLindex = (SLy*3 + SLx)+(MapChipListIndex-1)*24; + SLindexB = (SLy*3 + SLx)+(BuildChipListIndex-1)*24; + SLindexU = (SLy*3 + SLx)+(UnitChipListIndex-1)*24; + SLindexL = (SLy*3 + SLx)+(LoadChipListIndex-1)*24; + + [self setNeedsDisplay:YES]; +} + +-(BOOL)isFlipped{ + return YES; +} + +-(NSImage*)LoadImage:(NSString*)name{ + NSImage *image = [NSImage imageNamed:name]; + if(image == nil) return nil; + //[image setFlipped:[self isFlipped]]; + + 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)mouseDown:(NSEvent *)theEvent{ + selectPoint = [self convertPoint:[theEvent locationInWindow] fromView:nil]; + + SLx = (int)selectPoint.x/32; + SLy = (int)selectPoint.y/32; + + CommandSelected = false; + +} + +- (void)drawRect:(NSRect)dirtyRect +{ + int bx, by; + + + if(SLCy == 1 && SLSx == 0){ + for(bx=0;bx<3;bx++){ + for(by=0;by<8;by++){ + [self DrawImage:chip x:bx*32 y:by*32 cx:bx cy:by]; + [self DrawImage:chipa x:0*32 y:0*32 cx:bx cy:by]; + [self DrawImage:chipb x:1*32 y:0*32 cx:bx cy:by]; + [self DrawImage:chipc x:2*32 y:0*32 cx:bx cy:by]; + [self DrawImage:chipd x:0*32 y:1*32 cx:bx cy:by]; + [self DrawImage:chipe x:1*32 y:1*32 cx:bx cy:by]; + [self DrawImage:chipf x:2*32 y:1*32 cx:bx cy:by]; + } + } + }else if(SLCy == 2 && SLSx == 0){ + for(bx=0;bx<3;bx++){ + for(by=0;by<8;by++){ + [self DrawImage:chip x:bx*32 y:by*32 cx:bx cy:by]; + [self DrawImage:chipA x:0*32 y:0*32 cx:bx cy:by]; + [self DrawImage:chipB x:1*32 y:0*32 cx:bx cy:by]; + [self DrawImage:chipC x:2*32 y:0*32 cx:bx cy:by]; + [self DrawImage:chipD x:0*32 y:1*32 cx:bx cy:by]; + [self DrawImage:chipE x:1*32 y:1*32 cx:bx cy:by]; + [self DrawImage:chipF x:2*32 y:1*32 cx:bx cy:by]; + } + } + }else if (SLSx == 0) { + for(bx=0;bx<3;bx++){ + for(by=0;by<8;by++){ + [self DrawImage:chip x:bx*32 y:by*32 cx:bx cy:by]; + NSImage *MCI = MC[(by*3 + bx)+(MapChipListIndex-1)*24].img; + //[MCI setFlipped:[self isFlipped]]; + [self DrawImage:MCI x:bx*32 y:by*32 cx:bx cy:by]; + } + } + }else if(SLSx == 1){ + for(bx=0;bx<3;bx++){ + for(by=0;by<8;by++){ + [self DrawImage:chip x:bx*32 y:by*32 cx:bx cy:by]; + NSImage *BCI = BC[(by*3 + bx)+(BuildChipListIndex-1)*24].img; + [BCI setFlipped:NO]; + [self DrawImage:BCI x:bx*32 y:by*32 cx:bx cy:by]; + } + } + }else if(SLSx == 2){ + for(bx=0;bx<3;bx++){ + for(by=0;by<8;by++){ + [self DrawImage:chip x:bx*32 y:by*32 cx:bx cy:by]; + NSImage *UCI = UC[(by*3 + bx)+(UnitChipListIndex-1)*24].img; + [UCI setFlipped:NO]; + [self DrawImage:UCI x:bx*32 y:by*32 cx:bx cy:by]; + } + } + }else if(SLSx == 3){ + for(bx=0;bx<3;bx++){ + for(by=0;by<8;by++){ + [self DrawImage:chip x:bx*32 y:by*32 cx:bx cy:by]; + NSImage *LCI = LC[(by*3 + bx)+(LoadChipListIndex-1)*24].img; + //[UCI setFlipped:true]; + [self DrawImage:LCI x:bx*32 y:by*32 cx:bx cy:by]; + } + } + } + + + if(!CommandSelected) [self DrawImage:chip2 x:SLx*32 y:SLy*32 cx:SLx cy:SLy]; +} + +@end diff --git a/Awars III/CommandView.h b/Awars III/CommandView.h new file mode 100755 index 0000000..5057eda --- /dev/null +++ b/Awars III/CommandView.h @@ -0,0 +1,28 @@ +// +// CommandView.h +// Awars III +// +// Created by Killery on 2013/02/05. +// Copyright (c) 2013年 Killery. All rights reserved. +// + +#import + +int SLCx; +int SLCy; +bool DoubleClickedC; +bool CommandSelected; + +@interface CommandView : NSView +{ + NSTimer *time; + NSImage *chip; + NSImage *chip2, *chip3, *chip4, *chip5; + + NSPoint selectPoint; +} + +-(NSImage*)LoadImage:(NSString*)name; +-(void)DrawImage:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy; + +@end diff --git a/Awars III/CommandView.m b/Awars III/CommandView.m new file mode 100755 index 0000000..fcfc4cd --- /dev/null +++ b/Awars III/CommandView.m @@ -0,0 +1,97 @@ +// +// CommandView.m +// Awars III +// +// Created by Killery on 2013/02/05. +// Copyright (c) 2013年 Killery. All rights reserved. +// + +#import "CommandView.h" + +@implementation CommandView + +- (id)initWithFrame:(NSRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + time = [NSTimer + scheduledTimerWithTimeInterval:0.05f + target:self + selector:@selector(EventLoop:) + userInfo:nil + repeats:YES + ]; + + chip = [[self LoadImage:@"マス.png"] retain]; + chip2 = [[self LoadImage:@"ccなし.png"] retain]; + chip3 = [[self LoadImage:@"cc建物.png"] retain]; + chip4 = [[self LoadImage:@"cc駒.png"] retain]; + chip5 = [[self LoadImage:@"セレクター.png"] retain]; + NSRect seRect; + seRect.size.height = 1*32; + seRect.size.width = 1*32; + } + + return self; +} + +-(void)EventLoop:(NSTimer*)time{ + + [self setNeedsDisplay:YES]; +} + + +-(BOOL)isFlipped{ + return YES; +} + +-(NSImage*)LoadImage:(NSString*)name{ + NSImage *image = [NSImage imageNamed:name]; + if(image == nil) return nil; + //[image setFlipped:[self isFlipped]]; + + 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)mouseDown:(NSEvent *)theEvent{ + selectPoint = [self convertPoint:[theEvent locationInWindow] fromView:nil]; + + SLCx = (int)selectPoint.x/32; + SLCy = (int)selectPoint.y/32; + + CommandSelected = true; +} + +-(void)mouseUp:(NSEvent *)theEvent{ + if([theEvent clickCount] == 2) { + DoubleClickedC = true; + } +} + +- (void)drawRect:(NSRect)dirtyRect +{ + [self DrawImage:chip2 x:0 y:0 cx:0 cy:0]; + [self DrawImage:chip3 x:0 y:1*32 cx:1 cy:0]; + [self DrawImage:chip4 x:0 y:2*32 cx:2 cy:0]; + + if(CommandSelected) [self DrawImage:chip5 x:0 y:SLCy*32 cx:0 cy:0]; +} + +@end diff --git a/Awars III/LoadChipList.h b/Awars III/LoadChipList.h new file mode 100644 index 0000000..9a4ecf7 --- /dev/null +++ b/Awars III/LoadChipList.h @@ -0,0 +1,173 @@ +// +// LoadChipList.h +// Awars III +// +// Created by Killery on 2014/01/14. +// Copyright (c) 2014年 Killery. All rights reserved. +// + +#import +#import "MapEditor.h" +#import "UnitChipList.h" + +typedef struct _STATUS2{ + + double HP; + double EN; + double WT; + + int MOV; + double ARM; + double MOB; + double LIM; + + short size;//T:極小 S:人型サイズ B:乗り物サイズ H:建物サイズ G:巨人サイズ M:モビールスーツサイズ L:戦艦サイズ LL:大戦艦サイズ E:移動基地サイズ I:大陸サイズ + short typeMOVE; + short loadCnt; + + int cSupply; + int cFood; + int cMoney; + int cWT; + +}STATUS2; + +typedef struct _LOADCHIP{ + + struct _RESIST R_C; + struct _RESIST R_M; + struct _ATTACK *A; + + NSString *name; + NSString *nameRecognition; + NSString *nameID; + + struct _STATUS2 S_C; + struct _STATUS2 S_M; + + NSString *iName; + NSImage *img; + + NSString *iNameb; + NSImage *imgb; + + int chipNumb; + + NSString *aName; + int attackListNum; + +}LOADCHIP; + +LOADCHIP LC[4096]; + +int LCN; + +int LoadChipNum; + +NSInteger cil; + +@interface LoadChipList : NSObject +{ + NSTimer *LCLtime; + IBOutlet NSPanel* LCLPanel; + IBOutlet NSPanel* LCLDetailPanel; + IBOutlet NSPanel* LCLRegisterPanel; + + NSMutableArray *loadChipListMA; + IBOutlet NSArrayController *loadChipListAC; + IBOutlet NSTableView *loadChipListTV; + + IBOutlet NSTextField *TFname; + IBOutlet NSTextField *TFnameR; + IBOutlet NSTextField *TFnameID; + + IBOutlet NSTextField *TFhp; + IBOutlet NSTextField *TFen; + IBOutlet NSTextField *TFwt; + + IBOutlet NSTextField *TFmov; + IBOutlet NSTextField *TFarm; + IBOutlet NSTextField *TFmob; + IBOutlet NSTextField *TFlim; + + IBOutlet NSTextField *TFcSupply; + IBOutlet NSTextField *TFcFood; + IBOutlet NSTextField *TFcMoney; + IBOutlet NSTextField *TFcWT; + + IBOutlet NSTextField *TFloadCount; + IBOutlet NSPopUpButton *PUPtMove; + IBOutlet NSPopUpButton *PUPtEquip; + IBOutlet NSPopUpButton *PUPtSize; + + IBOutlet NSImageView *IVimg; + IBOutlet NSImageView *IVimgb; + + NSArray *fileDataArray; + NSInteger chipNumb; + IBOutlet NSTextField *TFchipNumb; + + IBOutlet NSPanel *commandListPanel; + IBOutlet NSPanel *attackListPanel; + IBOutlet NSPanel *attackEditPanel; + + IBOutlet NSTextField *ALTFname; + IBOutlet NSTextField *ALTFrangeA; + IBOutlet NSTextField *ALTFrangeB; + IBOutlet NSTextField *ALTFextend; + IBOutlet NSPopUpButton *ALPUBcost; + IBOutlet NSPopUpButton *ALPUBwType; + IBOutlet NSTextField *ALTFcost; + IBOutlet NSTextField *ALTFcostP; + + IBOutlet NSTextField *ALTFbullet; + IBOutlet NSTextField *ALTFhitCount; + IBOutlet NSTextField *ALTFsuccessRate; + IBOutlet NSTextField *ALTFvigor; + IBOutlet NSTextField *ALTFhitRate; + + IBOutlet NSButton *ALTFtrigger; + IBOutlet NSButton *ALTFmelee; + IBOutlet NSButton *ALTFpass; + IBOutlet NSButton *ALTFdmgExtent; + + IBOutlet NSPopUpButton *ALPUBriku; + IBOutlet NSPopUpButton *ALPUBchu; + IBOutlet NSPopUpButton *ALPUBumi; + IBOutlet NSPopUpButton *ALPUBsora; + + IBOutlet NSTextField *ALTFcSupply; + IBOutlet NSTextField *ALTFcFood; + IBOutlet NSTextField *ALTFcMoney; + IBOutlet NSTextField *ALTFcmd; + IBOutlet NSTextField *ALTFmsg; + + IBOutlet NSTextField *ALTFrate; + IBOutlet NSTextField *ALTFhit; + IBOutlet NSTextField *ALTFatkHit; + + IBOutlet NSPopUpButton *ALPUBtype; + IBOutlet NSPopUpButton *ALPUBseed; + IBOutlet NSPopUpButton *ALPUBsort; + IBOutlet NSTextField *ALTFdmgCount; + IBOutlet NSTextField *ALTFdmgRate; + + IBOutlet NSButton *ALTFcontinuum; + IBOutlet NSButton *ALTFabsolute; + IBOutlet NSButton *ALTFbeam; + IBOutlet NSButton *ALTFnoSizeFix; + +} + + + +-(IBAction)submit:(id)sender; + +-(IBAction)saveLCL:(id)sender; +-(IBAction)cancelLCL:(id)sender; + +-(IBAction)registLCL:(id)sender; +-(IBAction)registSaveLCL:(id)sender; +-(IBAction)registCancelLCL:(id)sender; + +@end diff --git a/Awars III/LoadChipList.m b/Awars III/LoadChipList.m new file mode 100644 index 0000000..d54f344 --- /dev/null +++ b/Awars III/LoadChipList.m @@ -0,0 +1,675 @@ +// +// MechaChipList.m +// Awars III +// +// Created by Killery on 2014/01/14. +// Copyright (c) 2014年 Killery. All rights reserved. +// + +#import "LoadChipList.h" + +@implementation LoadChipList + +-(void)awakeFromNib{ + + [loadChipListTV setTarget:self]; + [loadChipListTV setDoubleAction:@selector(doubleClickLCL:)]; + + loadChipListMA = [NSMutableArray new]; +} + + + +-(id)init{ + + LCLtime = [NSTimer + scheduledTimerWithTimeInterval:0.01f + target:self + selector:@selector(EventLoopLCL:) + userInfo:nil + repeats:YES + ]; + + chipNumb = 23; + [self initFileDirectory]; + [self initLoadChipList]; + + //allocするともう一度initを呼び出してしまう + UnitChipList *UCL = [UnitChipList alloc]; + [UCL initFileDirectoryAttack2]; + [self initTotalDamage]; + + LoadChipMax = (int)chipNumb/25 + 1; + + return self; +} + +-(void)initTotalDamage{ + UnitChipList *UCL = [UnitChipList alloc]; + [UCL initFileDirectoryAttack2]; + + for(int i = 0;i < chipNumb;i++){ + int j = 0; + while (j < 64) { + [UCL setTotalDamage2:i row:j]; + j++; + } + } + +} + +-(void)EventLoopLCL:(NSTimer*)time{ + +} + +-(void)doubleClickLCL:(id)sender{ + cil = [loadChipListTV clickedRow]; + + [TFname setStringValue:LC[cil].name]; + [TFnameR setStringValue:LC[cil].nameRecognition]; + [TFnameID setStringValue:LC[cil].nameID]; + + + [TFhp setDoubleValue:LC[cil].S_M.HP]; + [TFen setIntValue:LC[cil].S_M.EN]; + [TFwt setIntValue:LC[cil].S_M.WT]; + + [TFmov setIntValue:LC[cil].S_M.MOV]; + [TFarm setIntValue:LC[cil].S_M.ARM]; + [TFmob setIntValue:LC[cil].S_M.MOB]; + [TFlim setIntValue:LC[cil].S_M.LIM]; + + [TFcSupply setIntValue:LC[cil].S_M.cSupply]; + [TFcFood setIntValue:LC[cil].S_M.cFood]; + [TFcMoney setIntValue:LC[cil].S_M.cMoney]; + [TFcWT setIntValue:LC[cil].S_M.cWT]; + + [PUPtSize selectItemAtIndex:LC[cil].S_M.size]; + [PUPtMove selectItemAtIndex:LC[cil].S_M.typeMOVE]; + + [IVimg setImage:LC[cil].img]; + [IVimgb setImage:LC[cil].imgb]; + + [LCLDetailPanel makeKeyAndOrderFront:nil]; + +} + + + +-(void)initLoadChipList{ + loadChipListMA = [NSMutableArray new]; + + for(int i = 0;i < chipNumb;i++){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + if(!LC[i].nameID){ + LC[i].name = [[NSString stringWithFormat:@"新規搭載ユニット"] retain]; + LC[i].name = [[LC[i].name stringByAppendingFormat:@"%d",i+1] retain]; + LC[i].nameID = @"lc"; + LC[i].nameID = [[LC[i].nameID stringByAppendingFormat:@"%d",i+1] retain]; + LC[i].nameRecognition = [@"新規機械" retain]; + LC[i].nameRecognition = [[LC[i].nameRecognition stringByAppendingFormat:@"%d",i+1] retain]; + LC[i].iName = @"lc"; + LC[i].iName = [[LC[i].iName stringByAppendingFormat:@"%d",i+1] retain]; + LC[i].iNameb = @"lcb"; + LC[i].iNameb = [[LC[i].iNameb stringByAppendingFormat:@"%d",i+1] retain]; + } + + [dict setValue:LC[i].img forKey:@"img"]; + [dict setValue:LC[i].imgb forKey:@"imgb"]; + [dict setValue:[NSString stringWithFormat:@"%@", LC[i].name] forKey:@"name"]; + [dict setValue:[NSString stringWithFormat:@"%g", LC[i].S_M.HP] forKey:@"HP"]; + [self willChangeValueForKey:@"loadChipListMA"]; + [loadChipListMA addObject:dict]; + [self didChangeValueForKey:@"loadChipListMA"]; + } + +} + + +-(void)initFileDirectory{ + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + char *cwd; + cwd = getcwd(NULL, 0); + + + NSData *InitialData = [NSData dataWithContentsOfFile:@"data/LoadChip/preset.txt"]; + NSString *pathLC = @"data/LoadChip/img"; + NSString *pathDATA2 = @"data/LoadChip/preset.txt"; + NSString *pathLCP = @"data/LoadChip/preset.txt"; + NSString *fileData = nil; + + chipNumb = 24; + LCN = (int)chipNumb; + if(!InitialData){ + [[NSFileManager defaultManager] createDirectoryAtPath:pathLC withIntermediateDirectories:YES attributes:nil error:nil]; + [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil]; + + [[NSFileManager defaultManager] createFileAtPath:pathLCP contents:nil attributes:nil]; + + NSString *data0 = @"24"; + [data0 writeToFile:pathLCP atomically:YES encoding:NSUTF8StringEncoding error:nil]; + + NSString *data1 = @"野砲\n野砲,野砲\n" + @"500,100,500\n10,100,20,100\n1,0,0,100,0,250,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc1.png,lcb1.png\n"; + NSString *data2 = @"装甲輸送車\n装甲輸送車,装甲輸送車\n" + @"2000,200,500\n15,1000,50,250\n1,0,0,150,0,500,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc1.png,lcb1.png\n"; + NSString *data3 = @"補給車\n補給車,補給車\n" + @"1000,150,500\n15,500,50,200\n1,0,0,150,0,200,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc1.png,lcb1.png\n"; + NSString *data4 = @"戦車\n戦車,戦車\n" + @"5000,300,500\n15,1400,60,250\n1,0,0,500,0,1000,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc1.png,lcb1.png\n"; + NSString *data5 = @"重戦車\n重戦車,重戦車\n" + @"9000,500,500\n15,2000,60,300\n1,0,0,800,0,2000,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc1.png,lcb1.png\n"; + NSString *data6 = @"自走砲\n自走砲,自走砲\n" + @"3000,250,500\n12,1000,40,200\n1,0,0,300,0,800,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc1.png,lcb1.png\n"; + NSString *data7 = @"ロケット砲\nロケット砲,ロケット砲\n" + @"6000,300,500\n12,1200,50,230\n1,0,0,600,0,1800,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc1.png,lcb1.png\n"; + NSString *data8 = @"対空砲\n対空砲,対空砲\n" + @"400,150,500\n16,800,60,240\n1,0,0,300,0,800,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc1.png,lcb1.png\n"; + NSString *data9 = @"対空ミサイル\n対空ミサイル,対空ミサイル\n" + @"5000,300,500\n14,1200,50,220\n1,0,0,400,0,1400,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc1.png,lcb1.png\n"; + NSString *data10 = @"大砲\n大砲,大砲\n" + @"8000,500,500\n0,1500,0,300\n1,0,0,1800,0,3000,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc1.png,lcb1.png\n"; + NSString *data11 = @"輸送ヘリ\n輸送ヘリ,輸送ヘリ\n" + @"2500,150,500\n18,800,60,250\n1,0,0,250,0,500,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc1.png,lcb1.png\n"; + NSString *data12 = @"戦闘機\n戦闘機,戦闘機\n" + @"3000,200,500\n21,1000,80,300\n1,0,0,200,0,800,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc1.png,lcb1.png\n"; + NSString *data13 = @"高速戦闘機\n高速戦闘機,高速戦闘機\n" + @"4000,250,500\n27,1200,100,400\n1,0,0,250,0,1500,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc1.png,lcb1.png\n"; + NSString *data14 = @"爆撃機\n爆撃機,爆撃機\n" + @"4000,200,500\n20,1300,60,240\n1,0,0,250,0,800,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc1.png,lcb1.png\n"; + NSString *data15 = @"重爆撃機\n重爆撃機,重爆撃機\n" + @"5000,300,500\n18,1500,60,240\n1,0,0,400,0,1200,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc1.png,lcb1.png\n"; + NSString *data16 = @"攻撃ヘリ\n攻撃ヘリ,攻撃ヘリ\n" + @"5000,250,500\n20,1000,80,320\n1,0,0,250,0,1500,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc1.png,lcb1.png\n"; + NSString *data17 = @"キャリア\nキャリア,キャリア\n" + @"7000,200,500\n24,1200,90,320\n1,0,0,400,0,1300,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc17.png,lcb17.png\n"; + NSString *data18 = @"運輸船\n運輸船,運輸船\n" + @"500,100,500\n10,100,20,100\n1,0,0,150,0,100,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc18.png,lcb18.png\n"; + NSString *data19 = @"戦艦\n戦艦,戦艦\n" + @"500,100,500\n10,100,20,100\n1,0,0,150,0,100,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc19.png,lcb19.png\n"; + NSString *data20 = @"対空戦艦\n対空戦艦,対空戦艦\n" + @"500,100,500\n10,100,20,100\n1,0,0,150,0,100,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc20.png,lcb20.png\n"; + NSString *data21 = @"魚雷艇\n魚雷艇,魚雷艇\n" + @"500,100,500\n10,100,20,100\n1,0,0,150,0,100,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc21.png,lcb21.png\n"; + NSString *data22 = @"潜水艦\n潜水艦,潜水艦\n" + @"500,100,500\n10,100,20,100\n1,0,0,150,0,100,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc22.png,lcb22.png\n"; + NSString *data23 = @"イージス艦\nイージス艦,イージス艦\n" + @"500,100,500\n10,100,20,100\n1,0,0,150,0,100,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc23.png,lcb23.png\n"; + NSString *data24 = @"母艦\n母艦,母艦\n" + @"500,100,500\n10,100,20,100\n1,0,0,150,0,100,1000\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\n" + @"lc24.png,lcb24.png\n"; + + + for (int i=1; i<=chipNumb; i++) { + NSString *fdata = @"data/LoadChip/LCdata"; + + fdata = [fdata stringByAppendingFormat:@"%d.txt", i]; + + switch (i) { + case 1: + [data1 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 2: + [data2 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 3: + [data3 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 4: + [data4 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 5: + [data5 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 6: + [data6 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 7: + [data7 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 8: + [data8 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 9: + [data9 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 10: + [data10 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 11: + [data11 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 12: + [data12 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 13: + [data13 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 14: + [data14 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 15: + [data15 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 16: + [data16 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 17: + [data17 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 18: + [data18 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 19: + [data19 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 20: + [data20 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 21: + [data21 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 22: + [data22 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 23: + [data23 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 24: + [data24 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + + default: + + break; + } + + } + + } + + + + fileData = [NSString stringWithContentsOfFile:pathLCP encoding:NSUTF8StringEncoding error:nil]; + fileDataArray = [fileData componentsSeparatedByString:@"\n"]; + int instantNum = [[fileDataArray objectAtIndex:0] intValue]; + + chipNumb = instantNum; + LCN = (int)chipNumb; + + for (int i=0; i +#import "MapEditor.h" + +typedef struct _MAPCHIP{ + + NSString *name; + int dmgfix; + int riku; + int umi; + int chu; + int sora; + int type; + + NSString *iName; + NSImage *img; + + +}MAPCHIP; + +MAPCHIP MC[128]; + +@interface MapChipList : NSObject +{ + NSTimer *MCLtime; + IBOutlet NSPanel* MCLPanel; + IBOutlet NSPanel* MCLDetailPanel; + IBOutlet NSPanel* MCLregistPanel; + NSPoint MCLDpoint; + + IBOutlet NSTextField* TFchipNumb; + + NSMutableArray *mapChipListMA; + IBOutlet NSArrayController *mapChipListAC; + IBOutlet NSTableView *mapChipListTV; + + NSArray *fileDataArray; + NSInteger chipNumb; + + IBOutlet NSTextField *TFname; + IBOutlet NSTextField *TFfix; + IBOutlet NSTextField *TFriku; + IBOutlet NSTextField *TFumi; + IBOutlet NSTextField *TFchu; + IBOutlet NSTextField *TFsora; + IBOutlet NSPopUpButton *TFtype; + IBOutlet NSImageView *IVimg; + +} +-(IBAction)submitMCL:(id)sender; +- (NSMutableArray*)mapChipListMA; + +-(IBAction)saveMCL:(id)sender; +-(IBAction)cancelMCL:(id)sender; + +-(IBAction)registMCL:(id)sender; +-(IBAction)registSaveMCL:(id)sender; +-(IBAction)registCancelMCL:(id)sender; + +@end diff --git a/Awars III/MapChipList.m b/Awars III/MapChipList.m new file mode 100755 index 0000000..0a77b53 --- /dev/null +++ b/Awars III/MapChipList.m @@ -0,0 +1,350 @@ +// +// MapChipList.m +// Awars III +// +// Created by Killery on 2012/12/15. +// Copyright (c) 2012年 Killery. All rights reserved. +// + +#import "MapChipList.h" + +@implementation MapChipList +- (void)dealloc +{ + [super dealloc]; +} + +- (NSMutableArray*)mapChipListMA{ + return mapChipListMA; +} +-(IBAction)submitMCL:(id)sender{ + [MCLPanel close]; +} +-(void)awakeFromNib{ + + [mapChipListTV setTarget:self]; + [mapChipListTV setDoubleAction:@selector(doubleClickMCL:)]; +} +-(id)init{ + [super init]; + + if (self) { + MCLtime = [NSTimer + scheduledTimerWithTimeInterval:0.05f + target:self + selector:@selector(EventLoopMCL:) + userInfo:nil + repeats:YES + ]; + [self initFileDirectory]; + [self initMapChipList]; + MapChipMax = (int)chipNumb/25+1; + } + + return self; +} + +-(void)EventLoopMCL:(NSTimer*)time{ + +} +NSInteger clickIndex; +-(void)doubleClickMCL:(id)sender{ + clickIndex = [mapChipListTV clickedRow]; + if( clickIndex>=0 ){ + + [TFname setStringValue:MC[clickIndex].name]; + [TFfix setIntValue:MC[clickIndex].dmgfix]; + [TFriku setIntValue:MC[clickIndex].riku]; + [TFumi setIntValue:MC[clickIndex].umi]; + [TFchu setIntValue:MC[clickIndex].chu]; + [TFsora setIntValue:MC[clickIndex].sora]; + [TFtype selectItemAtIndex:MC[clickIndex].type]; + [MC[clickIndex].img setFlipped:NO]; + [IVimg setImage:MC[clickIndex].img]; + } + + MCLDpoint.x = [MCLPanel frame].origin.x + 100; + MCLDpoint.y = [MCLPanel frame].origin.y + 200; + [MCLDetailPanel setFrameOrigin:MCLDpoint]; + [MCLDetailPanel makeKeyAndOrderFront:nil]; +} + +-(IBAction)saveMCL:(id)sender{ + MC[clickIndex].name = [[TFname stringValue] retain]; + MC[clickIndex].dmgfix = [TFfix intValue]; + MC[clickIndex].riku = [TFriku intValue]; + MC[clickIndex].umi = [TFumi intValue]; + MC[clickIndex].chu = [TFchu intValue]; + MC[clickIndex].sora = [TFsora intValue]; + MC[clickIndex].type = (int)[TFtype indexOfSelectedItem]; + MC[clickIndex].img = [[IVimg image] retain]; + + + [mapChipListAC setValue:MC[clickIndex].img forKeyPath:@"selection.img"]; + [mapChipListAC setValue:[NSString stringWithFormat:@"%@", MC[clickIndex].name] forKeyPath:@"selection.name"]; + [mapChipListAC setValue:[NSString stringWithFormat:@"%d", MC[clickIndex].dmgfix] forKeyPath:@"selection.dmgfix"]; + [mapChipListAC setValue:[NSString stringWithFormat:@"%d", MC[clickIndex].riku] forKeyPath:@"selection.riku"]; + [mapChipListAC setValue:[NSString stringWithFormat:@"%d", MC[clickIndex].umi] forKeyPath:@"selection.umi"]; + [mapChipListAC setValue:[NSString stringWithFormat:@"%d", MC[clickIndex].chu] forKeyPath:@"selection.chu"]; + [mapChipListAC setValue:[NSString stringWithFormat:@"%d", MC[clickIndex].sora] forKeyPath:@"selection.sora"]; + switch (MC[clickIndex].type) { + case 0: + [mapChipListAC setValue:[NSString stringWithFormat:@"安定な地形(建物建設可)"] forKeyPath:@"selection.memo"]; + break; + case 1: + [mapChipListAC setValue:[NSString stringWithFormat:@"不安定な地形(建物建設不可)"] forKeyPath:@"selection.memo"]; + break; + case 2: + [mapChipListAC setValue:[NSString stringWithFormat:@"山竹林(資源回収可)"] forKeyPath:@"selection.memo"]; + break; + case 3: + [mapChipListAC setValue:[NSString stringWithFormat:@"水場(炎無効化)"] forKeyPath:@"selection.memo"]; + break; + case 4: + [mapChipListAC setValue:[NSString stringWithFormat:@"浅瀬(造船可)"] forKeyPath:@"selection.memo"]; + break; + case 5: + [mapChipListAC setValue:[NSString stringWithFormat:@"建物内部(建設不可)"] forKeyPath:@"selection.memo"]; + break; + + default: + break; + } + + [self saveData]; + [MCLDetailPanel close]; +} +-(IBAction)cancelMCL:(id)sender{ + [MCLDetailPanel close]; +} + +-(void)initFileDirectory{ + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + char *cwd; + cwd = getcwd(NULL, 0); + + + NSData *InitialData = [NSData dataWithContentsOfFile:@"data/MapChip/preset.txt"]; + NSString *pathMC = @"data/MapChip/img"; + NSString *pathBC = @"data/BuildChip/img"; + NSString *pathUC = @"data/UnitChip/img"; + NSString *pathDATA = @"data/MapChip/preset.txt"; + NSString *pathMCP = @"data/MapChip/preset.txt"; + NSString *fileData = nil; + if(!InitialData){ + + [[NSFileManager defaultManager] createDirectoryAtPath:pathMC withIntermediateDirectories:YES attributes:nil error:nil]; + [[NSFileManager defaultManager] createDirectoryAtPath:pathBC withIntermediateDirectories:YES attributes:nil error:nil]; + [[NSFileManager defaultManager] createDirectoryAtPath:pathUC withIntermediateDirectories:YES attributes:nil error:nil]; + [[NSFileManager defaultManager] createFileAtPath:pathDATA contents:nil attributes:nil]; + + [[NSFileManager defaultManager] createFileAtPath:pathMCP contents:nil attributes:nil]; + + NSString *data1 = @"草原,20,3,3,3,3,mc1.png,0"; + NSString *data2 = @"荒野,15,3,3,3,3,mc2.png,0"; + NSString *data3 = @"砂地,10,4,4,3,3,mc3.png,0"; + NSString *data4 = @"道,20,2,2,3,3,mc4.png,0"; + NSString *data5 = @"道路,20,2,2,3,3,mc5.png,0"; + NSString *data6 = @"林,30,4,4,3,3,mc6.png,2"; + NSString *data7 = @"森,40,5,5,3,3,mc7.png,2"; + NSString *data8 = @"山,50,6,6,3,3,mc8.png,2"; + NSString *data9 = @"高山,60,0,0,0,3,mc9.png,2"; + NSString *data10 = @"橋,20,3,3,3,3,mc10.png,0"; + NSString *data11 = @"川,10,7,3,3,3,mc11.png,3"; + NSString *data12 = @"池,10,8,3,3,3,mc12.png,3"; + NSString *data13 = @"湖,20,9,3,3,3,mc13.png,3"; + NSString *data14 = @"沼,10,6,3,3,3,mc14.png,1"; + NSString *data15 = @"浅瀬,10,6,3,3,3,mc15.png,4"; + NSString *data16 = @"深海,60,0,2,3,3,mc16.png,3"; + NSString *data17 = @"床,20,3,3,4,4,mc17.png,5"; + NSString *data18 = @"壁,70,0,0,0,0,mc18.png,1"; + NSString *data19 = @"穴,0,0,0,3,3,mc19.png,1"; + NSString *data20 = @"宇宙,20,3,3,3,3,mc20.png,1"; + NSString *data21 = @"暗礁,40,6,6,6,6,mc21.png,1"; + NSString *data22 = @"クレーター,10,5,5,3,3,mc22.png,1"; + + fileData = [[data1 stringByAppendingString:@"\n"] stringByAppendingString:data2]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data3]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data4]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data5]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data6]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data7]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data8]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data9]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data10]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data11]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data12]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data13]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data14]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data15]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data16]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data17]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data18]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data19]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data20]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data21]; + fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data22]; + + [fileData writeToFile:pathDATA atomically:YES encoding:NSUTF8StringEncoding error:nil]; + } + + fileData = [NSString stringWithContentsOfFile:pathDATA encoding:NSUTF8StringEncoding error:nil]; + fileDataArray = [fileData componentsSeparatedByString:@"\n"]; + + chipNumb = [fileDataArray count]; + for(int i=0;i < [fileDataArray count];i++){ + NSArray *items = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","]; + + MC[i].name = [[items objectAtIndex:0] retain]; + MC[i].dmgfix = [[items objectAtIndex:1] intValue]; + MC[i].riku = [[items objectAtIndex:2] intValue]; + MC[i].umi = [[items objectAtIndex:3] intValue]; + MC[i].chu = [[items objectAtIndex:4] intValue]; + MC[i].sora = [[items objectAtIndex:5] intValue]; + MC[i].iName = [[items objectAtIndex:6] retain]; + MC[i].type = [[items objectAtIndex:7] intValue]; + + NSString *imgName = @"mc"; + imgName = [imgName stringByAppendingFormat:@"%d", i+1]; + MC[i].img = [[NSImage imageNamed:imgName] retain]; + [MC[i].img setFlipped:NO]; + + NSString *imagePath = @"data/MapChip/img/"; + imagePath = [imagePath stringByAppendingString:MC[i].iName]; + + NSData *imgData = [NSData dataWithContentsOfFile:imagePath]; + + if(imgData) + MC[i].img = [[[NSImage alloc] initWithData:[[NSFileHandle fileHandleForReadingAtPath:imagePath] readDataToEndOfFile]] retain]; + + + } + + + +} + +-(void)initMapChipList{ + mapChipListMA = [NSMutableArray new]; + + for(int i = 0;i < chipNumb;i++){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + if(MC[i].name == NULL) MC[i].name = @"新規チップ"; + + NSString *imgName = @"mc"; + imgName = [imgName stringByAppendingFormat:@"%d", i+1]; + MC[i].iName = [imgName retain]; + MC[i].img = [[NSImage imageNamed:imgName] retain]; + + NSString *imagePath = @"data/MapChip/img/mc"; + imagePath = [imagePath stringByAppendingFormat:@"%d", i+1]; + NSData *imgData = [NSData dataWithContentsOfFile:imagePath]; + + if(imgData) + MC[i].img = [[NSImage alloc] initWithData:[[NSFileHandle fileHandleForReadingAtPath:imagePath] readDataToEndOfFile]]; + + [dict setValue:MC[i].img forKey:@"img"]; + [dict setValue:[NSString stringWithFormat:@"%@", MC[i].name] forKey:@"name"]; + [dict setValue:[NSString stringWithFormat:@"%d", MC[i].dmgfix] forKey:@"dmgfix"]; + [dict setValue:[NSString stringWithFormat:@"%d", MC[i].riku] forKey:@"riku"]; + [dict setValue:[NSString stringWithFormat:@"%d", MC[i].umi] forKey:@"umi"]; + [dict setValue:[NSString stringWithFormat:@"%d", MC[i].chu] forKey:@"chu"]; + [dict setValue:[NSString stringWithFormat:@"%d", MC[i].sora] forKey:@"sora"]; + + switch (MC[i].type) { + case 0: + [dict setValue:[NSString stringWithFormat:@"安定な地形(建物建設可)"] forKey:@"memo"]; + break; + case 1: + [dict setValue:[NSString stringWithFormat:@"不安定な地形(建物建設不可)"] forKey:@"memo"]; + break; + case 2: + [dict setValue:[NSString stringWithFormat:@"山竹林(資源回収可)"] forKey:@"memo"]; + break; + case 3: + [dict setValue:[NSString stringWithFormat:@"水場(炎無効化)"] forKey:@"memo"]; + break; + case 4: + [dict setValue:[NSString stringWithFormat:@"浅瀬(造船可)"] forKey:@"memo"]; + break; + case 5: + [dict setValue:[NSString stringWithFormat:@"建物内部(建設不可)"] forKey:@"memo"]; + break; + + default: + break; + } + + [self willChangeValueForKey:@"mapChipListMA"]; + [mapChipListMA addObject:dict]; + [self didChangeValueForKey:@"mapChipListMA"]; + } + + +} + +-(void)saveData{ + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + char *cwd; + cwd = getcwd(NULL, 0); + + //NSString *pathMC = @"data/MapChip/img"; + NSString *pathMCP = @"data/MapChip/preset.txt"; + NSString *fileData = @""; + + for (int i = 0;i < chipNumb;i++) { + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", MC[i].name]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", MC[i].dmgfix]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", MC[i].riku]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", MC[i].umi]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", MC[i].chu]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", MC[i].sora]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", MC[i].iName]] stringByAppendingString:@","]; + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"%d", MC[i].type]]; + + NSData *f2Data = [MC[i].img TIFFRepresentation]; + NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:f2Data]; + f2Data = [brep representationUsingType:NSPNGFileType properties:nil]; + + NSString *bcPath = @"data/MapChip/img/mc"; + bcPath = [bcPath stringByAppendingFormat:@"%d", i + 1]; + + [f2Data writeToFile:bcPath atomically:YES]; + + + + if(i != chipNumb - 1) fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"\n"]]; + + } + + [fileData writeToFile:pathMCP atomically:YES encoding:NSUTF8StringEncoding error:nil]; + +} + +-(IBAction)registMCL:(id)sender{ + [TFchipNumb setIntValue:(int)chipNumb]; + [MCLregistPanel makeKeyAndOrderFront:nil]; +} + +-(IBAction)registSaveMCL:(id)sender{ + chipNumb = [TFchipNumb intValue]; + MapChipMax = (int)chipNumb/25+1; + [self initMapChipList]; + [self saveData]; + [MCLregistPanel close]; +} +-(IBAction)registCancelMCL:(id)sender{ + [MCLregistPanel close]; +} + + +@end diff --git a/Awars III/MapEditor.h b/Awars III/MapEditor.h new file mode 100755 index 0000000..2aa29d3 --- /dev/null +++ b/Awars III/MapEditor.h @@ -0,0 +1,662 @@ +// +// MapEditor.h +// Awars III +// +// Created by Killery on 2012/12/06. +// Copyright (c) 2012年 Killery. All rights reserved. +// + +#import +#import "ChipView.h" +#import "SeedView.h" +#import "MapView.h" + +struct _MAPSCRIPT0; + +typedef struct _ENDGAMECONDITION{ + + int endType1; + int endType2; + + NSString *etValue1[64]; + NSString *etValue2[64]; + +}ENDGAMECONDITION; +typedef struct _MAPSCRIPT1{ + //文章スクリプト + NSString *name; + NSString *str; + NSImage *img; + NSString *iName; + NSString *nameID; + +}MAPSCRIPT1; + +typedef struct _MAPSCRIPT2A{ + + struct _MAPSCRIPT2A *next; + + struct _MAPSCRIPT0 *P; + +}MAPSCRIPT2A; + +typedef struct _MAPSCRIPT2{ + //文章選択肢スクリプト + NSMutableArray *sel; + struct _MAPSCRIPT2A *S; + +}MAPSCRIPT2; + +typedef struct _MAPSCRIPT0{ + struct _MAPSCRIPT0 *next; + + int type; + struct _MAPSCRIPT1 S1; + struct _MAPSCRIPT2 S2; + int indent; + + int *switch1; + int *switch2; + + int val; + int valCnt; + + int timerMin; + int timerSec; + int timerEntire; + bool timerFlag; + bool timerVisible; + bool timerRun; + bool timerMode; + + UNITCHIP U; + int unitAction; + + bool endFlag; + +}MAPSCRIPT0; + +typedef struct _MAPSCRIPTD{ + + struct _MAPSCRIPTD *next; + int index; + int x; + int y; + int type; + bool endFlag; + + int *switch1; + int *switch2; + bool switch1f; + bool switch2f; + struct _MAPSCRIPT0 *P; + NSMutableArray *SCRPT; + +}MAPSCRIPTD; + +typedef struct _MAPSCRIPT{ + + ENDGAMECONDITION EGClight; + ENDGAMECONDITION EGCdark; + + int playerSet1; + int playerSet2; + bool battleSetMode; + + NSMutableArray *SCRPTname; + struct _MAPSCRIPTD *D; + +}MAPSCRIPT; + +typedef struct _MAPFILE{ + + NSString *fileName; + + MAPSCRIPT MS; + +}MAPFILE; + +typedef struct _EVENTIMAGE{ + + struct _EVENTIMAGE *next; + + NSString *name; + + NSImage *img; + +}EVENTIMAGE; + +bool loadChipSideFlag; + +MAPFILE MF[512]; +ENDGAMECONDITION EGC[2]; +EVENTIMAGE *EIMG; +EVENTIMAGE *EIMGtop; +NSString *CEIMG; +int EIMGN; + +int MapChipMax; +int BuildChipMax; +int UnitChipMax; +int LoadChipMax; + +int MapChipListIndex; +int BuildChipListIndex; +int UnitChipListIndex; +int LoadChipListIndex; + +bool saveMapChipFlag; +bool loadMapChipFlag; +bool mapSizeChangedFlag; +bool initMapChipNumbFlag; +bool loadMapListSubmitFlag; +bool saveMapListSubmitFlag; + +int postHeight; +int postWidth; + +int MFselectedRow; +NSString *saveMapDataName; + + +bool EEGCslctFlag; +bool EEGCslctFlag2; +int EEGCslctCnt; +int etValueCnt; + +int EDtextImageRow; + +int EEGC1row; +int EEGC2row; + +int eventListRow; + +bool eventPosFlag; + +NSInteger ELrow; +NSInteger EDrow; +int squareCnt; +bool editFlag; +bool insertFlag; + +NSInteger EDselRow; + +bool mapLoadFlagForMSD; +bool mapLoadFlagForMSD2; +MAPSCRIPTD *MSDTOPP;//一番もとの先頭 +MAPSCRIPTD *MSDTOP;//一番先頭 +MAPSCRIPTD *msdtop;//スクリプト上の先頭 + +bool Suicchi[9999]; +bool SuicchiONOFFsentakuflag; +bool SuicchiSentakuflag; +int Hensuu[9999]; + +bool suicchiDBLslickFlag; +bool timerDBLslickFlag; + +int *ichijihensuS1; + +bool EDproceedFlag; + +bool EQmodeFlag; + +bool battleSetMode; +int playerSet1; +int playerSet2; +NSRect scCenter; +NSInteger headerFrame; + +bool fuckingRetardedBtnPushed1; +@interface MapEditor : NSObject +{ + NSTimer *time0; + + IBOutlet NSImageView *topIV; + IBOutlet NSTextField *topName; + IBOutlet NSTextField *topHealth; + + IBOutlet NSButtonCell *EDSWON; + IBOutlet NSButtonCell *EDSWOFF; + IBOutlet NSTextField *EDSWTF; + IBOutlet NSWindow *EDSwitchWindow2; + + + IBOutlet NSTextField *TFcurrentChipIndex; + + IBOutlet NSPanel *PMCL; + IBOutlet NSPanel *PBCL; + IBOutlet NSPanel *PUCL; + IBOutlet NSPanel *PLCL; + + IBOutlet NSWindow *MapEditorWindow; + NSPoint windowPoint; + + IBOutlet NSWindow *TitleWindow; + + IBOutlet NSPanel *mapSizeWindow; + IBOutlet NSTextField *mapSizeHeight; + IBOutlet NSTextField *mapSizeWidth; + + + IBOutlet NSPanel *loadMapWindow; + NSMutableArray *loadMapListMA; + IBOutlet NSArrayController *loadMapListAC; + IBOutlet NSTableView *loadMapListTV; + + IBOutlet NSPanel *saveMapWindow; + NSMutableArray *saveMapListMA; + IBOutlet NSArrayController *saveMapListAC; + IBOutlet NSTableView *saveMapListTV; + IBOutlet NSTextField *saveMapTF; + + + int fileNumb; + + + IBOutlet NSWindow *eventWindow; + NSMutableArray *eventListMA; + IBOutlet NSArrayController *eventListAC; + IBOutlet NSTableView *eventListTV; + + IBOutlet NSButton *eventCheckBtn; + IBOutlet NSPopUpButton *eventPopupBtn; + NSMutableArray *eventPosMA; + IBOutlet NSArrayController *eventPosAC; + IBOutlet NSTableView *eventPosTV; + + IBOutlet NSPopUpButton *eventPlayerSetPUB1; + IBOutlet NSPopUpButton *eventPlayerSetPUB2; + IBOutlet NSButton *eventBattleDetailBtn; + + + IBOutlet NSWindow *eventEndGameCondition; + IBOutlet NSPopUpButton *EPUB1; + IBOutlet NSPopUpButton *EPUB2; + NSMutableArray *EEGC1MA; + IBOutlet NSArrayController *EEGC1AC; + IBOutlet NSTableView *EEGC1TV; + NSMutableArray *EEGC2MA; + IBOutlet NSArrayController *EEGC2AC; + IBOutlet NSTableView *EEGC2TV; + + IBOutlet NSTextField *EEGCstr; + + NSMutableArray *EEGC01MA; + IBOutlet NSArrayController *EEGC01AC; + IBOutlet NSTableView *EEGC01TV; + IBOutlet NSTextField *EEGC01str; + IBOutlet NSTextField *EEGC012str; + + NSMutableArray *EEGC02MA; + IBOutlet NSArrayController *EEGC02AC; + IBOutlet NSTableView *EEGC02TV; + IBOutlet NSTextField *EEGC02str; + IBOutlet NSTextField *EEGC022str; + + short EEGCflag; + + IBOutlet NSWindow *eventDetailWindow; + NSMutableArray *eventDetailListMA; + IBOutlet NSArrayController *eventDetailListAC; + IBOutlet NSTableView *eventDetailListTV; + + NSMutableArray *EDswitch1MA; + IBOutlet NSArrayController *EDswitch1AC; + IBOutlet NSTableView *EDswitch1TV; + + NSMutableArray *EDswitch2MA; + IBOutlet NSArrayController *EDswitch2AC; + IBOutlet NSTableView *EDswitch2TV; + + NSMutableArray *EDvariableMA; + IBOutlet NSArrayController *EDvariableAC; + IBOutlet NSTableView *EDvariableTV; + IBOutlet NSTextField *EDvariableTF; + + IBOutlet NSPopUpButton *EDitemPUB; + IBOutlet NSPopUpButton *EDunitPUB; + + IBOutlet NSTextField *EDnameTF; + IBOutlet NSButton *EDswitch1Btn; + IBOutlet NSButton *EDswitch2Btn; + IBOutlet NSButton *EDvariableBtn; + IBOutlet NSButton *EDitemBtn; + IBOutlet NSButton *EDunitBtn; + + IBOutlet NSWindow *eventDetailSelectionWindow; + + IBOutlet NSWindow *EDtextWindow; + IBOutlet NSTextField *EDtextName; + IBOutlet NSTextField *EDtextString; + IBOutlet NSImageView *EDtextImage; + + IBOutlet NSWindow *EDtextImageWindow; + NSMutableArray *EDtextImageMA; + IBOutlet NSArrayController *EDtextImageAC; + IBOutlet NSTableView *EDtextImageTV; + IBOutlet NSButtonCell *EDtextImageButton1; + IBOutlet NSButtonCell *EDtextImageButton2; + IBOutlet NSButtonCell *EDtextImageButton3; + NSInteger EDtextImageButtonValue; + + IBOutlet NSWindow *EDselectionWindow; + NSMutableArray *EDselectionMA; + IBOutlet NSArrayController *EDselectionAC; + IBOutlet NSTableView *EDselectionTV; + bool EDselectionEditing; + + IBOutlet NSWindow *EDvalueWindow; + NSMutableArray *EDvalueMA; + IBOutlet NSArrayController *EDvalueAC; + IBOutlet NSTableView *EDvalueTV; + + + IBOutlet NSWindow *EDswitchWindow; + IBOutlet NSTextField *EDswitchTF; + + IBOutlet NSWindow *EDvarWindow; + NSMutableArray *EDvarMA; + IBOutlet NSArrayController *EDvarAC; + IBOutlet NSTableView *EDvarTV; + IBOutlet NSTextField *EDvarTF1; + IBOutlet NSTextField *EDvarTF2; + IBOutlet NSButtonCell *EDvarButtonT; + IBOutlet NSButtonCell *EDvarButtonI; + IBOutlet NSButtonCell *EDvarButton1; + IBOutlet NSButtonCell *EDvarButton2; + IBOutlet NSButtonCell *EDvarButton3; + IBOutlet NSButtonCell *EDvarButton4; + IBOutlet NSButtonCell *EDvarButton5; + IBOutlet NSButtonCell *EDvarButton6; + IBOutlet NSButtonCell *EDvarButtonA; + IBOutlet NSButtonCell *EDvarButtonB; + IBOutlet NSButtonCell *EDvarButtonC; + IBOutlet NSButtonCell *EDvarButtonD; + IBOutlet NSButtonCell *EDvarButtonE; + IBOutlet NSButtonCell *EDvarButtonF; + IBOutlet NSButtonCell *EDvarButtonG; + IBOutlet NSTextField *EDvarTeisu; + NSMutableArray *EDvarHensuMA; + IBOutlet NSArrayController *EDvarHensuAC; + IBOutlet NSTableView *EDvarHensuTV; + IBOutlet NSTextField *EDvarRansu1; + IBOutlet NSTextField *EDvarRansu2; + IBOutlet NSPopUpButton *EDvarItem; + IBOutlet NSPopUpButton *EDvarUnit1; + IBOutlet NSPopUpButton *EDvarUnit2; + IBOutlet NSPopUpButton *EDvarEtc; + + IBOutlet NSWindow *EDtimerWindow; + IBOutlet NSButtonCell *EDtimerButton1; + IBOutlet NSButtonCell *EDtimerButton2; + IBOutlet NSTextField *EDtimerTF1; + IBOutlet NSTextField *EDtimerTF2; + + IBOutlet NSWindow *EDtermsWindow; + + + + + + + + + + + IBOutlet NSWindow *EDlabelWindow; + IBOutlet NSTextField *EDlabelTF; + + IBOutlet NSWindow *EDlabelJumpWindow; + IBOutlet NSTextField *EDlabelJumpTF; + + IBOutlet NSWindow *EDmemoWindow; + IBOutlet NSTextField *EDmemoTF; + + IBOutlet NSWindow *EDresourceWindow; + IBOutlet NSButton *EDresourceBtn1; + IBOutlet NSButton *EDresourceBtn2; + IBOutlet NSButton *EDresourceBtn3; + IBOutlet NSButtonCell *EDresourceButton1; + IBOutlet NSButtonCell *EDresourceButton2; + IBOutlet NSButtonCell *EDresourceButtonA; + IBOutlet NSButtonCell *EDresourceButtonB; + IBOutlet NSTextField *EDresourceTF; + NSMutableArray *EDresourceMA; + IBOutlet NSArrayController *EDresourceAC; + IBOutlet NSTableView *EDresourceTV; + + + IBOutlet NSWindow *EDitemWindow; + + + + + + + IBOutlet NSWindow *EDmemberWindow; + + + + + + + IBOutlet NSWindow *EDhpWindow; + IBOutlet NSButtonCell *EDhpButton1; + IBOutlet NSButtonCell *EDhpButton2; + IBOutlet NSButtonCell *EDhpButtonA; + IBOutlet NSButtonCell *EDhpButtonB; + IBOutlet NSTextField *EDhpTF; + NSMutableArray *EDhp1MA; + IBOutlet NSArrayController *EDhp1AC; + IBOutlet NSTableView *EDhp1TV; + NSMutableArray *EDhp2MA; + IBOutlet NSArrayController *EDhp2AC; + IBOutlet NSTableView *EDhp2TV; + + IBOutlet NSWindow *EDmpWindow; + IBOutlet NSButtonCell *EDmpButton1; + IBOutlet NSButtonCell *EDmpButton2; + IBOutlet NSButtonCell *EDmpButtonA; + IBOutlet NSButtonCell *EDmpButtonB; + IBOutlet NSTextField *EDmpTF; + NSMutableArray *EDmp1MA; + IBOutlet NSArrayController *EDmp1AC; + IBOutlet NSTableView *EDmp1TV; + NSMutableArray *EDmp2MA; + IBOutlet NSArrayController *EDmp2AC; + IBOutlet NSTableView *EDmp2TV; + + IBOutlet NSWindow *EDstatus; + IBOutlet NSPopUpButton *EDstpubA; + IBOutlet NSButtonCell *EDstButtonA11; + IBOutlet NSButtonCell *EDstButtonA12; + IBOutlet NSButtonCell *EDstButtonA13; + IBOutlet NSButtonCell *EDstButtonA21; + IBOutlet NSButtonCell *EDstButtonA22; + IBOutlet NSTextField *EDstTFA; + NSMutableArray *EDstA1MA; + IBOutlet NSArrayController *EDstA1AC; + IBOutlet NSTableView *EDstA1TV; + NSMutableArray *EDstA2MA; + IBOutlet NSArrayController *EDstA2AC; + IBOutlet NSTableView *EDstA2TV; + + IBOutlet NSPopUpButton *EDstpubB; + IBOutlet NSButtonCell *EDstButtonB11; + IBOutlet NSButtonCell *EDstButtonB12; + IBOutlet NSButtonCell *EDstButtonB13; + IBOutlet NSButtonCell *EDstButtonB21; + IBOutlet NSButtonCell *EDstButtonB22; + IBOutlet NSTextField *EDstTFB; + NSMutableArray *EDstB1MA; + IBOutlet NSArrayController *EDstB1AC; + IBOutlet NSTableView *EDstB1TV; + NSMutableArray *EDstB2MA; + IBOutlet NSArrayController *EDstB2AC; + IBOutlet NSTableView *EDstB2TV; + + IBOutlet NSButtonCell *EDTimerSet1A; + IBOutlet NSButtonCell *EDTimerSet1B; + IBOutlet NSButtonCell *EDTimerSet2A; + IBOutlet NSButtonCell *EDTimerSet2B; + IBOutlet NSButtonCell *EDTimerSet3A; + IBOutlet NSButtonCell *EDTimerSet3B; + IBOutlet NSTextField *EDTimerTF1; + IBOutlet NSTextField *EDTimerTF2; + +} + +-(IBAction)EDSWOKbtn:(id)sender; +-(IBAction)EDSWCancelbtn:(id)sender; + +-(IBAction)backTitle:(id)sender; + +-(IBAction)backTitle:(id)sender; +-(IBAction)saveMap:(id)sender; +-(IBAction)loadMap:(id)sender; +-(IBAction)mapSize:(id)sender; +-(IBAction)setEvent:(id)sender; + +-(IBAction)mapSizeSubmit:(id)sender; +-(IBAction)mapSizeCancel:(id)sender; + +-(IBAction)loadMapSubmit:(id)sender; +-(IBAction)loadMapCancel:(id)sender; + +-(IBAction)saveMapSubmit:(id)sender; +-(IBAction)saveMapCancel:(id)sender; + +-(IBAction)previous:(id)sender; +-(IBAction)next:(id)sender; + +-(IBAction)eventInsert:(id)sender; +-(IBAction)eventDelete:(id)sender; +-(IBAction)eventSubmit:(id)sender; + +-(IBAction)EEGClight:(id)sender; +-(IBAction)EEGCdark:(id)sender; +-(IBAction)EEGC1insert:(id)sender; +-(IBAction)EEGC1delete:(id)sender; +-(IBAction)EEGC2insert:(id)sender; +-(IBAction)EEGC2delete:(id)sender; +-(IBAction)EEGCsubmit:(id)sender; +-(IBAction)EEGCcancel:(id)sender; +-(IBAction)EEGC1select:(id)sender; +-(IBAction)EEGC2select:(id)sender; + + +-(IBAction)eventCheckBtn:(id)sender; +-(IBAction)eventPopupBtn:(id)sender; + +-(IBAction)EDclose:(id)sender; +-(IBAction)EDinsert:(id)sender; +-(IBAction)EDdelete:(id)sender; + +-(IBAction)EDtext:(id)sender; +-(IBAction)EDselection:(id)sender; +-(IBAction)EDvalue:(id)sender; + +-(IBAction)EDswitch:(id)sender; +-(IBAction)EDvariable:(id)sender; +-(IBAction)EDtimer:(id)sender; + +-(IBAction)EDterms:(id)sender; +-(IBAction)EDlabel:(id)sender; +-(IBAction)EDlabelJump:(id)sender; +-(IBAction)EDmemo:(id)sender; + +-(IBAction)EDresource:(id)sender; +-(IBAction)EDitem:(id)sender; +-(IBAction)EDmember:(id)sender; + +-(IBAction)EDhp:(id)sender; +-(IBAction)EDmp:(id)sender; +-(IBAction)EDstatus:(id)sender; +-(IBAction)EDstate:(id)sender; +-(IBAction)EDskill:(id)sender; +-(IBAction)EDname:(id)sender; +-(IBAction)EDequip:(id)sender; +-(IBAction)EDattackFlagOn:(id)sender; + +-(IBAction)EDmove:(id)sender; +-(IBAction)EDappear:(id)sender; +-(IBAction)EDdissapear:(id)sender; + +-(IBAction)EDplace:(id)sender; +-(IBAction)EDwait:(id)sender; +-(IBAction)EDpilot:(id)sender; +-(IBAction)EDunit:(id)sender; +-(IBAction)EDbgm:(id)sender; +-(IBAction)EDbgmFadeOut:(id)sender; +-(IBAction)EDse:(id)sender; +-(IBAction)EDseStop:(id)sender; + +-(IBAction)EDbattle:(id)sender; +-(IBAction)EDshop:(id)sender; +-(IBAction)EDnameInput:(id)sender; + +-(IBAction)EDgameOver:(id)sender; +-(IBAction)EDstageClear:(id)sender; +-(IBAction)EDtitle:(id)sender; + +-(IBAction)EDcancel:(id)sender; + +-(IBAction)EDtextSubmit:(id)sender; +-(IBAction)EDtextCancel:(id)sender; +-(IBAction)EDtextImageSlct:(id)sender; + +-(IBAction)EDtextImageSubmit:(id)sender; +-(IBAction)EDtextImageCancel:(id)sender; +-(IBAction)EDtextImageButton:(id)sender; + +-(IBAction)EDselectionAdd:(id)sender; +-(IBAction)EDselectionDelete:(id)sender; +-(IBAction)EDselectionSubmit:(id)sender; +-(IBAction)EDselectionCancel:(id)sender; + +-(IBAction)EDvalueSubmit:(id)sender; +-(IBAction)EDvalueCancel:(id)sender; + +-(IBAction)EDswitchSubmit:(id)sender; +-(IBAction)EDswitchCancel:(id)sender; + +-(IBAction)EDvariableSubmit:(id)sender; +-(IBAction)EDvariableCancel:(id)sender; + +-(IBAction)EDtimerSubmit:(id)sender; +-(IBAction)EDtimerCancel:(id)sender; + +-(IBAction)EDtermsSubmit:(id)sender; +-(IBAction)EDtermsCancel:(id)sender; + +-(IBAction)EDlabelSubmit:(id)sender; +-(IBAction)EDlabelCancel:(id)sender; + +-(IBAction)EDlabelJumpSubmit:(id)sender; +-(IBAction)EDlabelJumpCancel:(id)sender; + +-(IBAction)EDmemoSubmit:(id)sender; +-(IBAction)EDmemoCancel:(id)sender; + +-(IBAction)EDresourceSubmit:(id)sender; +-(IBAction)EDresourceCancel:(id)sender; + +-(IBAction)EDhpSubmit:(id)sender; +-(IBAction)EDhpCancel:(id)sender; + +-(IBAction)EDmpSubmit:(id)sender; +-(IBAction)EDmpCancel:(id)sender; + +-(IBAction)EDstatusSubmit:(id)sender; +-(IBAction)EDstatusCancel:(id)sender; + +-(IBAction)setBattleModeBtn:(id)sender; +-(IBAction)playerSetBtn1:(id)sender; +-(IBAction)playerSetBtn2:(id)sender; + +-(IBAction)EDTimerSetBtn1:(id)sender; +-(IBAction)EDTimerSetBtn2:(id)sender; +-(IBAction)EDTimerSetBtn3:(id)sender; + +@end diff --git a/Awars III/MapEditor.m b/Awars III/MapEditor.m new file mode 100755 index 0000000..184e813 --- /dev/null +++ b/Awars III/MapEditor.m @@ -0,0 +1,3095 @@ +// +// MapEditor.m +// Awars III +// +// Created by Killery on 2012/12/06. +// Copyright (c) 2012年 Killery. All rights reserved. +// + +#import "MapEditor.h" + +@implementation MapEditor +-(void)awakeFromNib{ + + [TFcurrentChipIndex setStringValue:[NSString stringWithFormat:@"%d/%d", MapChipListIndex,MapChipMax]]; + + [loadMapListTV setTarget:self]; + [loadMapListTV setDoubleAction:@selector(doubleClickLM:)]; + + [saveMapListTV setTarget:self]; + [saveMapListTV setDoubleAction:@selector(doubleClickSM:)]; + + [eventListTV setTarget:self]; + [eventListTV setAction:@selector(ClickEL:)]; + [eventListTV setDoubleAction:@selector(doubleClickEL:)]; + + [eventPosTV setTarget:self]; + [eventPosTV setDoubleAction:@selector(doubleClickPos:)]; + + + [eventDetailListTV setTarget:self]; + [eventDetailListTV setAction:@selector(ClickEDL:)]; + [eventDetailListTV setDoubleAction:@selector(doubleClickEDL:)]; + + [EDtextImageTV setTarget:self]; + [EDtextImageTV setAction:@selector(ClickEDTI:)]; + + [EDswitch1TV setTarget:self]; + [EDswitch1TV setDoubleAction:@selector(doubleClickSW1:)]; + + [EDswitch2TV setTarget:self]; + [EDswitch2TV setDoubleAction:@selector(doubleClickSW2:)]; + + [EDvariableTV setTarget:self]; + [EDvariableTV setDoubleAction:@selector(doubleClickVAR:)]; + + [EEGC1TV setTarget:self]; + [EEGC1TV setAction:@selector(clickEEGC1:)]; + [EEGC2TV setTarget:self]; + [EEGC2TV setAction:@selector(clickEEGC2:)]; + + [EDselectionTV setTarget:self]; + [EDselectionTV setAction:@selector(ClickSEL:)]; + + [EDvalueTV setTarget:self]; + [EDvalueTV setDoubleAction:@selector(doubleClickVAL:)]; + + [EDvarTV setTarget:self]; + [EDvarTV setDoubleAction:@selector(doubleClickVA:)]; + + [EDvarHensuTV setTarget:self]; + [EDvarHensuTV setDoubleAction:@selector(doubleClickHEN:)]; + + [EDresourceTV setTarget:self]; + [EDresourceTV setDoubleAction:@selector(doubleClickRES:)]; + + [EDhp1TV setTarget:self]; + [EDhp1TV setDoubleAction:@selector(doubleClickHP1:)]; + + [EDhp2TV setTarget:self]; + [EDhp2TV setDoubleAction:@selector(doubleClickHP2:)]; + + [EDmp1TV setTarget:self]; + [EDmp1TV setDoubleAction:@selector(doubleClickMP1:)]; + + [EDmp2TV setTarget:self]; + [EDmp2TV setDoubleAction:@selector(doubleClickMP2:)]; + + [EDstA1TV setTarget:self]; + [EDstA1TV setDoubleAction:@selector(doubleClickSTA1:)]; + + [EDstA2TV setTarget:self]; + [EDstA2TV setDoubleAction:@selector(doubleClickSTA2:)]; + + [EDstB1TV setTarget:self]; + [EDstB1TV setDoubleAction:@selector(doubleClickSTB1:)]; + + [EDstB2TV setTarget:self]; + [EDstB2TV setDoubleAction:@selector(doubleClickSTB2:)]; + + EEGC1MA = [NSMutableArray new]; + EEGC2MA = [NSMutableArray new]; + + eventListMA = [NSMutableArray new]; + eventPosMA = [NSMutableArray new]; + eventDetailListMA = [NSMutableArray new]; + EDswitch1MA = [NSMutableArray new]; + EDswitch2MA = [NSMutableArray new]; + EDvariableMA = [NSMutableArray new]; + EDtextImageMA = [NSMutableArray new]; + EDselectionMA = [NSMutableArray new]; + EDvalueMA = [NSMutableArray new]; + EDvarMA = [NSMutableArray new]; + EDvarHensuMA = [NSMutableArray new]; + EDresourceMA = [NSMutableArray new]; + EDhp1MA = [NSMutableArray new]; + EDhp2MA = [NSMutableArray new]; + EDmp1MA = [NSMutableArray new]; + EDmp2MA = [NSMutableArray new]; + EDstA1MA = [NSMutableArray new]; + EDstA2MA = [NSMutableArray new]; + EDstB1MA = [NSMutableArray new]; + EDstB2MA = [NSMutableArray new]; + +} + +-(id)init{ + if (self) { + time0 = [NSTimer + scheduledTimerWithTimeInterval:0.05f + target:self + selector:@selector(EventLoop0:) + userInfo:nil + repeats:YES + ]; + + scCenter.origin.x = [NSScreen mainScreen].frame.size.width/2 - 640/2; + scCenter.origin.y = [NSScreen mainScreen].frame.size.height/2 - 480/2; + headerFrame = 20; + + MapChipListIndex = 1; + BuildChipListIndex = 1; + UnitChipListIndex = 1; + LoadChipListIndex = 1; + loadMapListMA = [NSMutableArray new]; + [self initLoadMapList]; + saveMapListMA = [NSMutableArray new]; + [self initSaveMapList]; + [self loadEventImage]; + MFselectedRow = -1; + + } + return self; +} + +-(void)EDdeleteFunc:(MAPSCRIPT)MS msd:(MAPSCRIPTD*)MSD{ + int cnt = 0; + int instantCnt = 0; + int instantCnt2 = 0; + for (int i = 0;i < [MSD->SCRPT count];i++) { + NSArray *array = [[MSD->SCRPT objectAtIndex:i] componentsSeparatedByString:@"◆"]; + if([array count] >= 2){ + instantCnt++; + } + + if(instantCnt == squareCnt){ + instantCnt2++; + cnt--; + } + if(instantCnt == squareCnt + 1){ + break; + } + cnt++; + } + + [self willChangeValueForKey:@"eventDetailListMA"]; + for(int i = 0;i < instantCnt2;i++){ + + [MSD->SCRPT removeObjectAtIndex:cnt]; + [eventDetailListMA removeObjectAtIndex:EDrow]; + + } + [self didChangeValueForKey:@"eventDetailListMA"]; + + [eventDetailListAC setSelectionIndex:EDrow]; + + squareCnt = 1; + for(int i = 0;i < EDrow;i++){ + NSArray *array = nil; + if([MS.D->SCRPT count] > 0){ + array = [[MS.D->SCRPT objectAtIndex:i] componentsSeparatedByString:@"◆"]; + } + if([array count] >= 2){ + squareCnt++; + } + } + + MAPSCRIPT0 *MS0top = MS.D->P; + + if(!MS.D->P){ + MS.D->P = calloc(1, sizeof(MAPSCRIPT0)); + MS0top = MS.D->P; + }else if(MS.D->P){ + + if(squareCnt == 1){ + MAPSCRIPT0 *temp = MS.D->P->next; + MS.D->P = temp; + MS0top = MS.D->P; + }else if(squareCnt > 1){ + for (int i = 0; i < squareCnt-2; i++) { + MS.D->P = MS.D->P->next; + } + MAPSCRIPT0 *temp = MS.D->P->next->next; + MS.D->P->next = temp; + } + + } + MS.D->P = MS0top; +} + + +-(void)EventLoop0:(NSTimer*)time{ + + if(SLSx == 2){ + [topIV setImage:UC[SLindexU].imgb]; + + [topName setStringValue:[NSString stringWithFormat:@"%@", UC[SLindexU].name]]; + + [topHealth setStringValue:[NSString stringWithFormat:@"HP %g", UC[SLindexU].S_M.HP]]; + }else if(SLSx == 3){ + [topIV setImage:LC[SLindexL].imgb]; + + [topName setStringValue:[NSString stringWithFormat:@"%@", LC[SLindexL].name]]; + + [topHealth setStringValue:[NSString stringWithFormat:@"HP %g", LC[SLindexL].S_M.HP]]; + } + if(SLSx == 0) [TFcurrentChipIndex setStringValue:[NSString stringWithFormat:@"%d/%d", MapChipListIndex,MapChipMax]]; + if(SLSx == 1) [TFcurrentChipIndex setStringValue:[NSString stringWithFormat:@"%d/%d", BuildChipListIndex,BuildChipMax]]; + if(SLSx == 2) [TFcurrentChipIndex setStringValue:[NSString stringWithFormat:@"%d/%d", UnitChipListIndex,UnitChipMax]]; + if(SLSx == 3) [TFcurrentChipIndex setStringValue:[NSString stringWithFormat:@"%d/%d", LoadChipListIndex,LoadChipMax]]; + + if(DoubleClicked){DoubleClicked = false; + windowPoint.x = [MapEditorWindow frame].origin.x; + windowPoint.y = [MapEditorWindow frame].origin.y; + + if(SLSx == 0){ + + loadChipSideFlag = false; + + [PMCL setFrameOrigin:windowPoint]; + + [PMCL makeKeyAndOrderFront:nil]; + + } + + if(SLSx == 1){ + + loadChipSideFlag = false; + + [PBCL setFrameOrigin:windowPoint]; + + [PBCL makeKeyAndOrderFront:nil]; + + } + + if(SLSx == 2){ + + loadChipSideFlag = false; + + [PUCL setFrameOrigin:windowPoint]; + + [PUCL makeKeyAndOrderFront:nil]; + + } + + if(SLSx == 3){ + + loadChipSideFlag = true; + + [PLCL setFrameOrigin:windowPoint]; + + [PLCL makeKeyAndOrderFront:nil]; + + } + + } + + + + if(MF[MFselectedRow+1].MS.EGClight.endType1 == 0 || MF[MFselectedRow+1].MS.EGCdark.endType1 == 0){ + MF[MFselectedRow+1].MS.EGClight.endType1 = 1; + MF[MFselectedRow+1].MS.EGCdark.endType1 = 2; + + [self EEGCset:MF[MFselectedRow+1].MS.EGClight flag:YES]; + [self EEGCset:MF[MFselectedRow+1].MS.EGCdark flag:NO]; + } + + if(doubleClickedFlag && EEGCslctFlag){ + + if(!EEGCslctFlag2){ + + if(EEGCslctCnt == 2 || EEGCslctCnt == 3){ + if(unitNum[eSlctX][eSlctY] > -1){ + + if(EEGCflag == 1){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"%@[%d,%d]", UC[unitNum[eSlctX][eSlctY]].name, eSlctX, eSlctY] forKey:@"value"]; + [self willChangeValueForKey:@"EEGC1MA"]; + [EEGC1MA addObject:dict]; + [self didChangeValueForKey:@"EEGC1MA"]; + } + if(EEGCflag == 2){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"%@[%d,%d]", UC[unitNum[eSlctX][eSlctY]].name, eSlctX, eSlctY] forKey:@"value"]; + [self willChangeValueForKey:@"EEGC1MA"]; + [EEGC1MA addObject:dict]; + [self didChangeValueForKey:@"EEGC1MA"]; + } + } + }else if(EEGCslctCnt == 4){ + if(1){ + if(EEGCflag == 1){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"[%d,%d]", eSlctX, eSlctY] forKey:@"value"]; + [self willChangeValueForKey:@"EEGC1MA"]; + [EEGC1MA addObject:dict]; + [self didChangeValueForKey:@"EEGC1MA"]; + } + if(EEGCflag == 2){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"[%d,%d]", eSlctX, eSlctY] forKey:@"value"]; + [self willChangeValueForKey:@"EEGC1MA"]; + [EEGC1MA addObject:dict]; + [self didChangeValueForKey:@"EEGC1MA"]; + } + } + }if(EEGCslctCnt == 5){ + if(buildNum[eSlctX][eSlctY] > -1){ + + if(EEGCflag == 1){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"%@[%d,%d]", BC[buildNum[eSlctX][eSlctY]].name, eSlctX, eSlctY] forKey:@"value"]; + [self willChangeValueForKey:@"EEGC1MA"]; + [EEGC1MA addObject:dict]; + [self didChangeValueForKey:@"EEGC1MA"]; + } + if(EEGCflag == 2){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"%@[%d,%d]", BC[buildNum[eSlctX][eSlctY]].name, eSlctX, eSlctY] forKey:@"value"]; + [self willChangeValueForKey:@"EEGC1MA"]; + [EEGC1MA addObject:dict]; + [self didChangeValueForKey:@"EEGC1MA"]; + } + } + } + + }else if(EEGCslctFlag2){ + + if(EEGCslctCnt == 3 || EEGCslctCnt == 4){ + if(unitNum[eSlctX][eSlctY] > -1){ + + if(EEGCflag == 1){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"%@[%d,%d]", UC[unitNum[eSlctX][eSlctY]].name, eSlctX, eSlctY] forKey:@"value"]; + [self willChangeValueForKey:@"EEGC2MA"]; + [EEGC2MA addObject:dict]; + [self didChangeValueForKey:@"EEGC2MA"]; + } + if(EEGCflag == 2){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"%@[%d,%d]", UC[unitNum[eSlctX][eSlctY]].name, eSlctX, eSlctY] forKey:@"value"]; + [self willChangeValueForKey:@"EEGC2MA"]; + [EEGC2MA addObject:dict]; + [self didChangeValueForKey:@"EEGC2MA"]; + } + } + }else if(EEGCslctCnt == 5){ + if(1){ + if(EEGCflag == 1){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"[%d,%d]", eSlctX, eSlctY] forKey:@"value"]; + [self willChangeValueForKey:@"EEGC2MA"]; + [EEGC2MA addObject:dict]; + [self didChangeValueForKey:@"EEGC2MA"]; + } + if(EEGCflag == 2){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"[%d,%d]", eSlctX, eSlctY] forKey:@"value"]; + [self willChangeValueForKey:@"EEGC2MA"]; + [EEGC2MA addObject:dict]; + [self didChangeValueForKey:@"EEGC2MA"]; + } + } + }if(EEGCslctCnt == 6){ + if(buildNum[eSlctX][eSlctY] > -1){ + + if(EEGCflag == 1){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"%@[%d,%d]", BC[buildNum[eSlctX][eSlctY]].name, eSlctX, eSlctY] forKey:@"value"]; + [self willChangeValueForKey:@"EEGC2MA"]; + [EEGC2MA addObject:dict]; + [self didChangeValueForKey:@"EEGC2MA"]; + } + if(EEGCflag == 2){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"%@[%d,%d]", BC[buildNum[eSlctX][eSlctY]].name, eSlctX, eSlctY] forKey:@"value"]; + [self willChangeValueForKey:@"EEGC2MA"]; + [EEGC2MA addObject:dict]; + [self didChangeValueForKey:@"EEGC2MA"]; + } + } + } + + } + + NSLog(@"%@", MF[MFselectedRow+1].MS.EGClight.etValue1[etValueCnt]); + + EEGCslctFlag = false; + + [eventWindow makeKeyAndOrderFront:nil]; + [eventEndGameCondition makeKeyAndOrderFront:nil]; + + + + + + }else if(doubleClickedFlag && eventPosFlag){ + + [eventWindow makeKeyAndOrderFront:nil]; + + [self willChangeValueForKey:@"eventPosMA"]; + [eventPosMA removeAllObjects]; + [self didChangeValueForKey:@"eventPosMA"]; + + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"[%d,%d]", eSlctX, eSlctY] forKey:@"name"]; + [self willChangeValueForKey:@"eventPosMA"]; + [eventPosMA addObject:dict]; + [self didChangeValueForKey:@"eventPosMA"]; + + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + MAPSCRIPTD *MSDtop = MS.D; + + for(int i = 0;i < eventListRow;i++){ + MS.D = MS.D->next; + } + + MS.D->x = eSlctX; + MS.D->y = eSlctY; + + MS.D = MSDtop; + + MF[MFselectedRow+1].MS = MS; + } + + doubleClickedFlag = false; + + + if(EDproceedFlag){ + + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + MS.D = MSDTOPP; + for(int i = 0;i < eventListRow;i++){ + MS.D = MS.D->next; + } + + if([EDswitch1Btn state] != 0){ + MS.D->switch1f = true; + }else{ + MS.D->switch1f = false; + } + + if([EDswitch2Btn state] != 0){ + MS.D->switch2f = true; + }else{ + MS.D->switch2f = false; + } + MS.D = MSDTOPP; + + } + + if(fuckingRetardedBtnPushed1){ + + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + + MS.D = msdtop; + + MAPSCRIPT0 *MSDPt = MS.D->P; + + MAPSCRIPT0 *MS0 = MS.D->P; + + for(int i = 0;i < squareCnt - 1 ;i++){ + MS0 = MS0->next; + } + + //NSLog(@"%d", [EDTimerSet2A intValue]); + + if([EDTimerSet1A state] != 0) + MS0->timerRun = true; + else + MS0->timerRun = false; + if([EDTimerSet2A state] != 0) + MS0->timerMode = true; + else + MS0->timerMode = false; + if([EDTimerSet3A state] != 0) + MS0->timerVisible = true; + else + MS0->timerVisible = false; + + MS.D->P = MS0; + + MS.D->P = MSDPt; + + + + + + + + + fuckingRetardedBtnPushed1 = false; + } +} + +-(IBAction)eventCheckBtn:(id)sender{ + + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + MAPSCRIPTD *MSDtop = MS.D; + + if(MS.D){ + for (int i = 0; i < ELrow;i++) { + MS.D = MS.D->next; + } + + MS.D->type = (int)[eventPopupBtn indexOfSelectedItem]; + + if([eventCheckBtn intValue] == 0 && [eventPopupBtn indexOfSelectedItem] == 0) + MS.D->type = -1; + } + MS.D = MSDtop; + MF[MFselectedRow+1].MS = MS; +} +-(IBAction)eventPopupBtn:(id)sender{ + +} + + +-(void)ClickEDTI:(id)sender{ + + EDtextImageRow = (int)[EDtextImageTV clickedRow]; + +} +-(void)ClickEL:(id)sender{ + + eventListRow = (int)[eventListTV clickedRow]; + ELrow = (int)[eventListTV clickedRow]; + + + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + + MAPSCRIPTD *MSDtop = MS.D; + + + if(!MS.D) { + MS.D = MSDtop; + [eventCheckBtn setState:NO]; + return; + + } + + MS.D = MSDTOPP; + for (int i = 0;i < eventListRow;i++) { + if(!MS.D->next){ + MS.D->next = calloc(1, sizeof(MAPSCRIPTD)); + } + MS.D = MS.D->next; + } + msdtop = MS.D; + [self willChangeValueForKey:@"eventPosMA"]; + [eventPosMA removeAllObjects]; + [self didChangeValueForKey:@"eventPosMA"]; + if(!MS.D) { + MS.D = MSDtop; + [eventCheckBtn setState:NO]; + return; + } + + if((MS.D->type == 0 && (MS.D->x > 0 && MS.D->y > 0))){ + [eventCheckBtn setState:YES]; + }else{ + [eventCheckBtn setState:NO]; + } + + if(MS.D->x > 0&& MS.D->y > 0){ + + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"[%d,%d]", MS.D->x, MS.D->y] forKey:@"name"]; + [self willChangeValueForKey:@"eventPosMA"]; + [eventPosMA addObject:dict]; + [self didChangeValueForKey:@"eventPosMA"]; + } + + MS.D = MSDTOPP; + +} +-(void)doubleClickEL:(id)sender{ + + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + + + for (int i = 0;i < eventListRow;i++) { + if(!MS.D->next){ + MS.D->next = calloc(1, sizeof(MAPSCRIPTD)); + } + MS.D = MS.D->next; + } + msdtop = MS.D; + + if([eventListTV clickedRow] >= 0){ + + if([eventListTV clickedRow] == [eventListMA count]-1){ + + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"●"] forKey:@"value"]; + [self willChangeValueForKey:@"eventListMA"]; + [eventListMA addObject:dict]; + [self didChangeValueForKey:@"eventListMA"]; + [eventListAC setSelectionIndex:[eventListMA count]-2]; + + MAPSCRIPTD *mdTop = MS.D; + + if(!MS.D){ + MS.D = calloc(1, sizeof(MAPSCRIPTD)); + mdTop = MS.D; + msdtop = MS.D; + MS.D->type = -1; + if(!mapLoadFlagForMSD2 && mapLoadFlagForMSD){ + MSDTOPP->next = MS.D; + mapLoadFlagForMSD2 = true; + } + if(!mapLoadFlagForMSD){ + MSDTOPP = MS.D; + mapLoadFlagForMSD = true; + } + } + else{ + while (MS.D->next) + MS.D = MS.D->next; + + MS.D->next = calloc(1, sizeof(MAPSCRIPTD)); + MS.D->next->type = -1; + MS.D->next->next = NULL; + //msdtop = MS.D->next; + } + MS.D = mdTop; + + if(!MS.SCRPTname) MS.SCRPTname = [NSMutableArray new]; + [MS.SCRPTname addObject:@"新規イベント"]; + } + + + [EDnameTF setStringValue:[MS.SCRPTname objectAtIndex:[eventListTV clickedRow]]]; + + MF[MFselectedRow+1].MS = MS; + + [self initEDlist]; + [eventDetailWindow makeKeyAndOrderFront:nil]; + } + + MF[MFselectedRow+1].MS = MS; + + EDproceedFlag = true; +} + + +-(void)ClickEDL:(id)sender{ + EDrow = [eventDetailListTV clickedRow]; + MAPSCRIPT MS = MF[MFselectedRow+1].MS; +} + + +-(void)doubleClickEDL:(id)sender{ + EDrow = [eventDetailListTV clickedRow]; + + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + + + if([eventDetailListTV clickedRow] >= 0){ + + + + if([eventDetailListTV clickedRow] == [eventDetailListMA count]-1){ + + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"◆"] forKey:@"value"]; + [self willChangeValueForKey:@"eventDetailListMA"]; + [eventDetailListMA addObject:dict]; + [self didChangeValueForKey:@"eventDetailListMA"]; + [eventDetailListAC setSelectionIndex:[eventDetailListMA count]-2]; + + MSDTOP = MF[MFselectedRow+1].MS.D; + + MAPSCRIPT0 *MS0top = MS.D->P; + + if(!MS.D->P){ + MS.D->P = calloc(1, sizeof(MAPSCRIPT0)); + MS0top = MS.D->P; + }else if(MS.D->P){ + while (MS.D->P->next) { + MS.D->P = MS.D->P->next; + } + MS.D->P->next = calloc(1, sizeof(MAPSCRIPT0)); + } + + MS.D->P = MS0top; + + squareCnt = 1; + for(int i = 0;i < EDrow;i++){ + NSArray *array = nil; + if([MS.D->SCRPT count] > 0){ + array = [[MS.D->SCRPT objectAtIndex:i] componentsSeparatedByString:@"◆"]; + } + if([array count] >= 2){ + squareCnt++; + } + } + + [eventDetailSelectionWindow makeKeyAndOrderFront:nil]; + }else{ + editFlag = true; + + + squareCnt = 0; + for(int i = 0;i <= EDrow;i++){ + NSArray *array = [[MS.D->SCRPT objectAtIndex:i] componentsSeparatedByString:@"◆"]; + if([array count] >= 2){ + squareCnt++; + } + } + + for(int i = 0;i < 9;i++){ + + for(int j = 0;j < i;j++){ + + } + + } + + if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆文章の表示"]){ + MSDTOP = MF[MFselectedRow+1].MS.D; + + for (int i = 0;i < eventListRow;i++) { + MF[MFselectedRow+1].MS.D = MF[MFselectedRow+1].MS.D->next; + } + + MF[MFselectedRow+1].MS.D = MSDTOP; + + [self initEDtext]; + [EDtextWindow makeKeyAndOrderFront:nil]; + } + + + + if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆選択肢の表示"]){ + [self initEDselection]; + [EDselectionWindow makeKeyAndOrderFront:nil]; + } + + + if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆スイッチの操作ON"]){ + suicchiDBLslickFlag = true; + [EDSwitchWindow2 makeKeyAndOrderFront:nil]; + } + if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆スイッチの操作OFF"]){ + + suicchiDBLslickFlag = true; + [EDSwitchWindow2 makeKeyAndOrderFront:nil]; + }if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆タイマーの操作"]){ + timerDBLslickFlag = true; + [EDtimerWindow makeKeyAndOrderFront:nil]; + } + + + } + + + } + + MF[MFselectedRow+1].MS = MS; + + + + // NSLog(@"oops"); +} + + +-(void)ClickSEL:(id)sender{ + EDselRow = [EDselectionTV clickedRow]; + +} + +-(void)doubleClickPos:(id)sender{ + + eventPosFlag = true; + [MapEditorWindow makeKeyAndOrderFront:nil]; + + [MapEditorWindow setFrame:NSMakeRect(scCenter.origin.x,scCenter.origin.y,480,480+headerFrame) display:YES]; + +} + +-(void)doubleClickSW1:(id)sender{ + + + [EDswitchTF setStringValue:@""]; + SuicchiONOFFsentakuflag = true; + [EDswitchWindow makeKeyAndOrderFront:nil]; + +} +-(void)doubleClickSW2:(id)sender{ + + + [EDswitchTF setStringValue:@""]; + SuicchiONOFFsentakuflag = false; + [EDswitchWindow makeKeyAndOrderFront:nil]; + +} +-(void)doubleClickVAR:(id)sender{ + + if([EDvariableTV clickedRow] >= 0){ + + + } +} + + +-(void)doubleClickLM:(id)sender{ + + MFselectedRow = (int)[loadMapListTV selectedRow]; + if(MFselectedRow < 0) return; + loadMapListSubmitFlag = true; + [loadMapWindow close]; +} +-(void)doubleClickSM:(id)sender{ + +} + +-(IBAction)backTitle:(id)sender{ + windowPoint.x = [MapEditorWindow frame].origin.x; + windowPoint.y = [MapEditorWindow frame].origin.y; + [TitleWindow setFrameOrigin:windowPoint]; + [TitleWindow makeKeyAndOrderFront:nil]; + [MapEditorWindow close]; +} +-(void)previous:(id)sender{ + if(SLSx == 0){ + if(MapChipListIndex <= 1) MapChipListIndex = MapChipMax; + else MapChipListIndex--; + } + if(SLSx == 1){ + if(BuildChipListIndex <= 1) BuildChipListIndex = BuildChipMax; + else BuildChipListIndex--; + } + if(SLSx == 2){ + if(UnitChipListIndex <= 1) UnitChipListIndex = UnitChipMax; + else UnitChipListIndex--; + } + if(SLSx == 3){ + if(LoadChipListIndex <= 1) LoadChipListIndex = LoadChipMax; + else LoadChipListIndex--; + } +} +-(void)next:(id)sender{ + if(SLSx == 0){ + if(MapChipListIndex >= MapChipMax) MapChipListIndex = 1; + else MapChipListIndex++; + } + if(SLSx == 1){ + if(BuildChipListIndex >= BuildChipMax) BuildChipListIndex = 1; + else BuildChipListIndex++; + } + if(SLSx == 2){ + if(UnitChipListIndex >= UnitChipMax) UnitChipListIndex = 1; + else UnitChipListIndex++; + } + if(SLSx == 3){ + if(LoadChipListIndex >= LoadChipMax) LoadChipListIndex = 1; + else LoadChipListIndex++; + } + +} + +-(IBAction)mapSizeSubmit:(id)sender{ + + chipHeight = [mapSizeHeight intValue]; + chipWidth = [mapSizeWidth intValue]; + + if(chipHeight < 15) chipHeight = 15; + if(chipWidth < 15) chipWidth = 15; + + mapSizeChangedFlag = true; + initMapChipNumbFlag = true; + [mapSizeWindow close]; +} +-(IBAction)mapSizeCancel:(id)sender{ + [mapSizeWindow close]; +} + +-(IBAction)mapSize:(id)sender{ + + postWidth = chipWidth; + postHeight = chipHeight; + [mapSizeHeight setIntValue:chipHeight]; + [mapSizeWidth setIntValue:chipWidth]; + + windowPoint.x = [MapEditorWindow frame].origin.x + 50; + windowPoint.y = [MapEditorWindow frame].origin.y + 100; + [mapSizeWindow setFrameOrigin:windowPoint]; + + [mapSizeWindow makeKeyAndOrderFront:nil]; +} + +-(void)initLoadMapList{ + + NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + NSArray *Farray; + NSString *filePath = @"Map"; + Farray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:filePath error:nil]; + + fileNumb = (int)[Farray count]; + for (int i = 1; i < fileNumb;i++) { + MF[i].fileName = [[Farray objectAtIndex:i] retain]; + } + + [self willChangeValueForKey:@"loadMapListMA"]; + [loadMapListMA removeAllObjects]; + [self didChangeValueForKey:@"loadMapListMA"]; + + for(int i = 1; i < fileNumb;i++){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"%@", MF[i].fileName] forKey:@"name"]; + [self willChangeValueForKey:@"loadMapListMA"]; + [loadMapListMA addObject:dict]; + [self didChangeValueForKey:@"loadMapListMA"]; + } + +} + +-(void)initSaveMapList{ + + NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + NSArray *Farray; + NSString *filePath = @"Map"; + Farray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:filePath error:nil]; + + fileNumb = (int)[Farray count]; + for (int i = 1; i < fileNumb;i++) { + MF[i].fileName = [[Farray objectAtIndex:i] retain]; + } + + + [self willChangeValueForKey:@"saveMapListMA"]; + [saveMapListMA removeAllObjects]; + [self didChangeValueForKey:@"saveMapListMA"]; + + for(int i = 1; i < fileNumb;i++){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"%@", MF[i].fileName] forKey:@"name"]; + [self willChangeValueForKey:@"saveMapListMA"]; + [saveMapListMA addObject:dict]; + [self didChangeValueForKey:@"saveMapListMA"]; + } + + +} + +-(IBAction)loadMap:(id)sender{ + [self initLoadMapList]; + [loadMapWindow makeKeyAndOrderFront:nil]; + loadMapChipFlag = true; +} + +-(IBAction)loadMapSubmit:(id)sender{ + + MFselectedRow = (int)[loadMapListTV selectedRow]; + loadMapListSubmitFlag = true; + [loadMapWindow close]; +} +-(IBAction)loadMapCancel:(id)sender{ + [loadMapWindow close]; +} + +-(IBAction)saveMap:(id)sender{ + + [self initSaveMapList]; + [saveMapListAC setSelectionIndex:-1]; + [saveMapWindow makeKeyAndOrderFront:nil]; +} + +-(IBAction)saveMapSubmit:(id)sender{ + + saveMapDataName = [[saveMapTF stringValue] retain]; + saveMapListSubmitFlag = true; + saveMapChipFlag = true; + [saveMapWindow close]; +} +-(IBAction)saveMapCancel:(id)sender{ + [saveMapWindow close]; +} + +-(IBAction)setEvent:(id)sender{ + + [self EEGCset:MF[MFselectedRow+1].MS.EGClight flag:YES]; + [self EEGCset:MF[MFselectedRow+1].MS.EGCdark flag:NO]; + + [self initEventList]; + + [eventPlayerSetPUB1 selectItemAtIndex:playerSet1]; + [eventPlayerSetPUB2 selectItemAtIndex:playerSet2]; + [eventBattleDetailBtn setState:battleSetMode]; + + [eventWindow makeKeyAndOrderFront:nil]; + +} + +-(IBAction)EEGClight:(id)sender{ + + [EEGCstr setStringValue:@"勝利条件"]; + [eventEndGameCondition makeKeyAndOrderFront:nil]; + [self initEEGC:MF[MFselectedRow+1].MS.EGClight]; + EEGCflag = 1; + +} + + +-(IBAction)EEGCdark:(id)sender{ + + [EEGCstr setStringValue:@"敗北条件"]; + [eventEndGameCondition makeKeyAndOrderFront:nil]; + [self initEEGC:MF[MFselectedRow+1].MS.EGCdark]; + EEGCflag = 2; + +} + +-(void)initEEGC:(ENDGAMECONDITION)EGCD{ + + if(EGCD.endType1 > 0) [EPUB1 selectItemAtIndex:EGCD.endType1-1]; + if(EGCD.endType2 > 0) [EPUB2 selectItemAtIndex:EGCD.endType2]; + + [self willChangeValueForKey:@"EEGC1MA"]; + [EEGC1MA removeAllObjects]; + [self didChangeValueForKey:@"EEGC1MA"]; + + for (int i = 0; i < 64; i++) { + if(!EGCD.etValue1[i]) break; + + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"%@", EGCD.etValue1[i]] forKey:@"value"]; + [self willChangeValueForKey:@"EEGC1MA"]; + [EEGC1MA addObject:dict]; + [self didChangeValueForKey:@"EEGC1MA"]; + + } + + [self willChangeValueForKey:@"EEGC2MA"]; + [EEGC2MA removeAllObjects]; + [self didChangeValueForKey:@"EEGC2MA"]; + + for (int i = 0; i < 64; i++) { + if(!EGCD.etValue2[i]) break; + + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"%@", EGCD.etValue2[i]] forKey:@"value"]; + [self willChangeValueForKey:@"EEGC2MA"]; + [EEGC2MA addObject:dict]; + [self didChangeValueForKey:@"EEGC2MA"]; + } +} + +-(void)initEventList{ + [self willChangeValueForKey:@"eventListMA"]; + [eventListMA removeAllObjects]; + [self didChangeValueForKey:@"eventListMA"]; + + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + + MAPSCRIPTD *mdTop = MS.D; + + int indexCnt = 0; + for(int i = 0;i < [MS.SCRPTname count];i++){ + + if(!MS.SCRPTname) break; + + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"●%@", [MS.SCRPTname objectAtIndex:i]] forKey:@"value"]; + [self willChangeValueForKey:@"eventListMA"]; + [eventListMA addObject:dict]; + [self didChangeValueForKey:@"eventListMA"]; + if(MS.D) { + MS.D->index = indexCnt; + MS.D = MS.D->next; + indexCnt++; + } + } + MS.D = mdTop; + + + MF[MFselectedRow+1].MS = MS; + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"●"] forKey:@"value"]; + [self willChangeValueForKey:@"eventListMA"]; + [eventListMA addObject:dict]; + [self didChangeValueForKey:@"eventListMA"]; + + if(MS.D){ + + + if((MS.D->type == 0 && (MS.D->x > 0 && MS.D->y > 0))){ + [eventCheckBtn setState:YES]; + }else{ + [eventCheckBtn setState:NO]; + } + + + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + MAPSCRIPTD *MSDtop = MS.D; + + if(MS.D){ + for(int i = 0;i< eventListRow;i++){ + MS.D = MS.D->next; + } + if(MS.D->type >= 0 && MS.D->x > 0 && MS.D->y > 0) { + + + eventListRow = (int)[eventListTV clickedRow]; + + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + + MAPSCRIPTD *MSDtop = MS.D; + if(!MS.D) { + MS.D = MSDtop; + return; + + } + for (int i = 0;i < eventListRow;i++) { + MS.D = MS.D->next; + } + [self willChangeValueForKey:@"eventPosMA"]; + [eventPosMA removeAllObjects]; + [self didChangeValueForKey:@"eventPosMA"]; + if(!MS.D) { + MS.D = MSDtop; + return; + + } + if(MS.D->x > 0&& MS.D->y > 0){ + + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"[%d,%d]", MS.D->x, MS.D->y] forKey:@"name"]; + [self willChangeValueForKey:@"eventPosMA"]; + [eventPosMA addObject:dict]; + [self didChangeValueForKey:@"eventPosMA"]; + } + + MS.D = MSDtop; + + } + } + MS.D = MSDtop; + } + + MSDTOP = MS.D; + + + +} + +-(IBAction)eventInsert:(id)sender{ + + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + MSDTOPP = MF[MFselectedRow+1].MS.D; + NSInteger sel = [eventListAC selectionIndex]; + + if(sel < [eventListMA count]){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"●"] forKey:@"value"]; + [self willChangeValueForKey:@"eventListMA"]; + [eventListMA insertObject:dict atIndex:sel]; + [self didChangeValueForKey:@"eventListMA"]; + [eventListAC setSelectionIndex:sel]; + + if(!MS.SCRPTname) MS.SCRPTname = [NSMutableArray new]; + [MS.SCRPTname insertObject:@"新規イベント" atIndex:sel]; + + if(sel == 0){ + //insertのやり方 + MAPSCRIPTD *mdTop = calloc(1, sizeof(MAPSCRIPTD)); + mdTop->next = MS.D; + mdTop->type = -1; + MS.D = mdTop; + MSDTOPP = mdTop; + }else{ + MAPSCRIPTD *mdTop = MS.D; + for(int i = 0;i < sel-1;i++){ + MS.D = MS.D->next; + } + MAPSCRIPTD *MSD = NULL; + if(MS.D){ + MSD = MS.D->next; + MS.D->next = calloc(1, sizeof(MAPSCRIPTD)); + MS.D->next->type = -1; + MS.D->next->next = MSD; + + + }else{ + MS.D = calloc(1, sizeof(MAPSCRIPTD)); + mdTop = MS.D; + + + + + } + MS.D = mdTop; + } + MF[MFselectedRow+1].MS = MS; + + + MSDTOP = MF[MFselectedRow+1].MS.D; + for (int i = 0;i < eventListRow;i++) { + MF[MFselectedRow+1].MS.D = MF[MFselectedRow+1].MS.D->next; + } + + [EDnameTF setStringValue:[MS.SCRPTname objectAtIndex:sel]]; + MSDTOP = MF[MFselectedRow+1].MS.D; + + for (int i = 0;i < eventListRow;i++) { + MF[MFselectedRow+1].MS.D = MF[MFselectedRow+1].MS.D->next; + } + msdtop = MF[MFselectedRow+1].MS.D; + + MF[MFselectedRow+1].MS.D = MSDTOP; + [self initEDlist]; + [eventDetailWindow makeKeyAndOrderFront:nil]; + EDproceedFlag = true; + } + +} + +-(IBAction)eventDelete:(id)sender{ + + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + NSInteger sel = [eventListAC selectionIndex]; + + if(sel < [eventListMA count]-1){ + [self willChangeValueForKey:@"eventListMA"]; + [eventListMA removeObjectAtIndex:sel]; + [self didChangeValueForKey:@"eventListMA"]; + [eventListAC setSelectionIndex:sel]; + + [MS.SCRPTname removeObjectAtIndex:sel]; + + //deleteのやり方 + + MAPSCRIPTD *mdTop = MS.D; + for(int i = 0;i < sel - 1;i++){ + MS.D = MS.D->next; + } + MAPSCRIPTD *MSD = NULL; + if(sel == 0 && MS.D){ + mdTop = MS.D->next; + }else if(MS.D){ + if(MS.D->next) MSD = MS.D->next->next; + MS.D->next = MSD; + } + MS.D = mdTop; + + MF[MFselectedRow+1].MS = MS; + + } + +} + +-(IBAction)eventSubmit:(id)sender{ + [MapEditorWindow setFrame:NSMakeRect(scCenter.origin.x,scCenter.origin.y,640,480+headerFrame) display:YES]; + EEGCslctFlag = false; + eventPosFlag = false; + [eventWindow close]; +} + +-(void)EEGCset:(ENDGAMECONDITION)EGCD flag:(bool)flag{ + + int eValue = EGCD.endType1; + int eValue2 = EGCD.endType2; + + if(flag){ + if(eValue > 0){ + [EEGC01str setStringValue:[NSString stringWithFormat:@"%@", [EPUB1 itemTitleAtIndex:eValue - 1]]]; + }else{ + [EEGC01str setStringValue:[NSString stringWithFormat:@"未決定"]]; + } + if(eValue2 > 0){ + [EEGC012str setStringValue:[NSString stringWithFormat:@"%@", [EPUB2 itemTitleAtIndex:eValue2]]]; + }else{ + [EEGC012str setStringValue:[NSString stringWithFormat:@""]]; + } + } + + if(!flag){ + if(eValue > 0){ + [EEGC02str setStringValue:[NSString stringWithFormat:@"%@", [EPUB1 itemTitleAtIndex:eValue - 1]]]; + }else{ + [EEGC02str setStringValue:[NSString stringWithFormat:@"未決定"]]; + } + if(eValue2 > 0){ + [EEGC022str setStringValue:[NSString stringWithFormat:@"%@", [EPUB2 itemTitleAtIndex:eValue2]]]; + }else{ + [EEGC022str setStringValue:[NSString stringWithFormat:@""]]; + } + } + +} + +-(ENDGAMECONDITION)EEGCselection:(ENDGAMECONDITION)EGCD{ + + if([EPUB1 indexOfSelectedItem] == 0){//敵全滅 + EGCD.endType1 = 1; + }else if([EPUB1 indexOfSelectedItem] == 1){//味方全滅 + EGCD.endType1 = 2; + + }else if([EPUB1 indexOfSelectedItem] == 2){//すべての指定全滅 + EGCD.endType1 = 3; + + }else if([EPUB1 indexOfSelectedItem] == 3){//いずれかの指定全滅 + EGCD.endType1 = 4; + + }else if([EPUB1 indexOfSelectedItem] == 4){//指定の場所 + EGCD.endType1 = 5; + + }else if([EPUB1 indexOfSelectedItem] == 5){//指定の拠点 + EGCD.endType1 = 6; + + }else if([EPUB1 indexOfSelectedItem] == 6){//指定の研究 + EGCD.endType1 = 7; + + }else if([EPUB1 indexOfSelectedItem] == 7){//指定のスイッチ + EGCD.endType1 = 8; + + } + + if([EPUB2 indexOfSelectedItem] == 0){ + EGCD.endType2 = 0; + }else if([EPUB2 indexOfSelectedItem] == 1){//敵全滅 + EGCD.endType2 = 1; + }else if([EPUB2 indexOfSelectedItem] == 2){//味方全滅 + EGCD.endType2 = 2; + + }else if([EPUB2 indexOfSelectedItem] == 3){//すべての指定全滅 + EGCD.endType2 = 3; + + }else if([EPUB2 indexOfSelectedItem] == 4){//いずれかの指定全滅 + EGCD.endType2 = 4; + + }else if([EPUB2 indexOfSelectedItem] == 5){//指定の場所 + EGCD.endType2 = 5; + + }else if([EPUB2 indexOfSelectedItem] == 6){//指定の拠点 + EGCD.endType2 = 6; + + }else if([EPUB2 indexOfSelectedItem] == 7){//指定の研究 + EGCD.endType2 = 7; + + }else if([EPUB2 indexOfSelectedItem] == 8){//指定のスイッチ + EGCD.endType2 = 8; + + } + + + + return EGCD; + +} + +-(IBAction)EEGC1insert:(id)sender{ + + EEGCslctCnt = (int)[EPUB1 indexOfSelectedItem]; + + if(EEGCslctCnt == 2 || EEGCslctCnt == 3 + || EEGCslctCnt == 4 || EEGCslctCnt == 5){ + + if([EEGC1MA count] >= 64) return; + + EEGCslctFlag = true; + + [eventWindow close]; + [eventEndGameCondition close]; + + }else if(EEGCslctCnt == 6){ + + }else if(EEGCslctCnt == 7){ + + } + +} +-(IBAction)EEGC1delete:(id)sender{ + + [self willChangeValueForKey:@"EEGC1MA"]; + [EEGC1MA removeObjectAtIndex:EEGC1row]; + [self didChangeValueForKey:@"EEGC1MA"]; +} + +-(void)clickEEGC1:(id)sender{ + EEGC1row = (int)[EEGC1TV selectedRow]; +} + +-(void)clickEEGC2:(id)sender{ + EEGC2row = (int)[EEGC2TV selectedRow]; +} + +-(IBAction)EEGC2insert:(id)sender{ + + EEGCslctCnt = (int)[EPUB2 indexOfSelectedItem]; + + if(EEGCslctCnt == 3 || EEGCslctCnt == 4 + || EEGCslctCnt == 5 || EEGCslctCnt == 6){ + + if([EEGC2MA count] >= 64) return; + + EEGCslctFlag = true; + EEGCslctFlag2 = true; + + [eventWindow close]; + [eventEndGameCondition close]; + + }else if(EEGCslctCnt == 7){ + + }else if(EEGCslctCnt == 8){ + + } + +} +-(IBAction)EEGC2delete:(id)sender{ + + [self willChangeValueForKey:@"EEGC2MA"]; + [EEGC2MA removeObjectAtIndex:EEGC2row]; + [self didChangeValueForKey:@"EEGC2MA"]; +} + +-(IBAction)EEGCsubmit:(id)sender{ + if(EEGCflag == 1){ + MF[MFselectedRow+1].MS.EGClight = [self EEGCselection:MF[MFselectedRow+1].MS.EGClight]; + + for(int i =0;i<64;i++){ + MF[MFselectedRow+1].MS.EGClight.etValue1[i] = nil; + } + + for(int i = 0;i < [EEGC1MA count];i++){ + MF[MFselectedRow+1].MS.EGClight.etValue1[i] = [[[EEGC1MA objectAtIndex:i] valueForKey:@"value"] retain]; + } + + for(int i =0;i<64;i++){ + MF[MFselectedRow+1].MS.EGClight.etValue2[i] = nil; + } + + for(int i = 0;i < [EEGC2MA count];i++){ + MF[MFselectedRow+1].MS.EGClight.etValue2[i] = [[[EEGC2MA objectAtIndex:i] valueForKey:@"value"] retain]; + } + + //NSLog(@"%@", [EEGC1MA objectAtIndex:0]); + } + if(EEGCflag == 2){ + MF[MFselectedRow+1].MS.EGCdark = [self EEGCselection:MF[MFselectedRow+1].MS.EGCdark]; + + for(int i =0;i<64;i++){ + MF[MFselectedRow+1].MS.EGCdark.etValue1[i] = nil; + } + + for(int i = 0;i < [EEGC1MA count];i++){ + MF[MFselectedRow+1].MS.EGCdark.etValue1[i] = [[[EEGC1MA objectAtIndex:i] valueForKey:@"value"] retain]; + } + + for(int i =0;i<64;i++){ + MF[MFselectedRow+1].MS.EGCdark.etValue2[i] = nil; + } + + for(int i = 0;i < [EEGC2MA count];i++){ + MF[MFselectedRow+1].MS.EGCdark.etValue2[i] = [[[EEGC2MA objectAtIndex:i] valueForKey:@"value"] retain]; + } + + } + + [self EEGCset:MF[MFselectedRow+1].MS.EGClight flag:YES]; + [self EEGCset:MF[MFselectedRow+1].MS.EGCdark flag:NO]; + + [eventEndGameCondition close]; + +} + +-(IBAction)EEGCcancel:(id)sender{ + + [eventEndGameCondition close]; + +} + +-(IBAction)EEGC1select:(id)sender{ + [self willChangeValueForKey:@"EEGC1MA"]; + [EEGC1MA removeAllObjects]; + [self didChangeValueForKey:@"EEGC1MA"]; + + for(int i = 0;i < 64;i++){ + if(EEGCflag == 1) + MF[MFselectedRow+1].MS.EGClight.etValue1[i] = nil; + if(EEGCflag == 2) + MF[MFselectedRow+1].MS.EGCdark.etValue1[i] = nil; + } +} +-(IBAction)EEGC2select:(id)sender{ + [self willChangeValueForKey:@"EEGC2MA"]; + [EEGC2MA removeAllObjects]; + [self didChangeValueForKey:@"EEGC2MA"]; + + for(int i = 0;i < 64;i++){ + if(EEGCflag == 1) + MF[MFselectedRow+1].MS.EGClight.etValue2[i] = nil; + if(EEGCflag == 2) + MF[MFselectedRow+1].MS.EGCdark.etValue2[i] = nil; + } +} + +-(IBAction)EDclose:(id)sender{ + + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + + [MS.SCRPTname replaceObjectAtIndex:[eventListAC selectionIndex] withObject:[EDnameTF stringValue]]; + + + [eventListAC setValue:[NSString stringWithFormat:@"●%@", [MS.SCRPTname objectAtIndex:[eventListAC selectionIndex]]] forKeyPath:@"selection.value"]; + + MF[MFselectedRow+1].MS.D = MSDTOPP; + + EDproceedFlag = false; + [eventDetailWindow close]; +} + +-(void)initEDlist{ + [self willChangeValueForKey:@"eventDetailListMA"]; + [eventDetailListMA removeAllObjects]; + [self didChangeValueForKey:@"eventDetailListMA"]; + + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + + MAPSCRIPTD *mdTop = MS.D; + + + if(MS.D) + for(int i = 0;i < [MS.D->SCRPT count];i++){ + + if(!MS.D->SCRPT) + break; + + + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"%@", [MS.D->SCRPT objectAtIndex:i]] forKey:@"value"]; + [self willChangeValueForKey:@"eventDetailListMA"]; + [eventDetailListMA addObject:dict]; + [self didChangeValueForKey:@"eventDetailListMA"]; + } + + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"◆"] forKey:@"value"]; + [self willChangeValueForKey:@"eventDetailListMA"]; + [eventDetailListMA addObject:dict]; + [self didChangeValueForKey:@"eventDetailListMA"]; + + if(MS.D) + if(!MS.D->SCRPT){ + MS.D->SCRPT = [NSMutableArray new]; + } + + [self willChangeValueForKey:@"EDswitch1MA"]; + [EDswitch1MA removeAllObjects]; + [self didChangeValueForKey:@"EDswitch1MA"]; + [self willChangeValueForKey:@"EDswitch2MA"]; + [EDswitch2MA removeAllObjects]; + [self didChangeValueForKey:@"EDswitch2MA"]; + + if(MS.D->switch1) + for(int i = 0; *(MS.D->switch1+i) > 0;i++){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"%d", *(MS.D->switch1 + i)] forKey:@"value"]; + + [self willChangeValueForKey:@"EDswitch1MA"]; + [EDswitch1MA addObject:dict]; + [self didChangeValueForKey:@"EDswitch1MA"]; + + + } + + if(MS.D->switch2) + for(int i = 0; *(MS.D->switch2+i) > 0;i++){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"%d", *(MS.D->switch2 + i)] forKey:@"value"]; + + [self willChangeValueForKey:@"EDswitch2MA"]; + [EDswitch2MA addObject:dict]; + [self didChangeValueForKey:@"EDswitch2MA"]; + + + } + MS.D->type = -1; + + + if(MS.D->switch1f) + [EDswitch1Btn setState:YES]; + else + [EDswitch1Btn setState:NO]; + + if(MS.D->switch2f) + [EDswitch2Btn setState:YES]; + else + [EDswitch2Btn setState:NO]; + MS.D = mdTop; + MF[MFselectedRow+1].MS = MS; + + +} + + +-(IBAction)EDinsert:(id)sender{ + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + + MAPSCRIPTD *mdTop = MS.D; + + for(int i = 0;i < [eventListTV clickedRow];i++){ + MS.D = MS.D->next; + } + + if(EDrow >= 0 && [MS.D->SCRPT count] > 0){ + + + if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆文章の表示"]){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"◆"] forKey:@"value"]; + [self willChangeValueForKey:@"eventDetailListMA"]; + [eventDetailListMA insertObject:dict atIndex:EDrow]; + [self didChangeValueForKey:@"eventDetailListMA"]; + [eventDetailListAC setSelectionIndex:EDrow]; + + squareCnt = 1; + for(int i = 0;i < EDrow;i++){ + NSArray *array = nil; + if([MS.D->SCRPT count] > 0){ + array = [[MS.D->SCRPT objectAtIndex:i] componentsSeparatedByString:@"◆"]; + } + if([array count] >= 2){ + squareCnt++; + } + } + + MAPSCRIPT0 *MS0top = MS.D->P; + + if(!MS.D->P){ + MS.D->P = calloc(1, sizeof(MAPSCRIPT0)); + MS0top = MS.D->P; + }else if(MS.D->P){ + + if(squareCnt == 1){ + MAPSCRIPT0 *temp = MS.D->P; + MS.D->P = calloc(1, sizeof(MAPSCRIPT0)); + MS.D->P->next = temp; + MS0top = MS.D->P; + }else if(squareCnt > 1){ + for (int i = 0; i < squareCnt-2; i++) { + MS.D->P = MS.D->P->next; + } + MAPSCRIPT0 *temp = MS.D->P->next; + MS.D->P->next = calloc(1, sizeof(MAPSCRIPT0)); + MS.D->P->next->next = temp; + } + } + + MS.D->P = MS0top; + + }else if(1){ + + } + insertFlag = true; + [eventDetailSelectionWindow makeKeyAndOrderFront:nil]; + } + + MS.D = mdTop; + + MF[MFselectedRow+1].MS = MS; + +} + +-(IBAction)EDdelete:(id)sender{ + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + + MAPSCRIPTD *mdTop = MS.D; + + for(int i = 0;i < [eventListTV clickedRow];i++){ + MS.D = MS.D->next; + } + + if(EDrow >= 0 && [MS.D->SCRPT count] > 0){ + + MAPSCRIPTD *MSD = MF[MFselectedRow+1].MS.D; + if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆文章の表示"]){ + [self EDdeleteFunc:MS msd:MSD]; + }else if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆選択肢の表示"]){ + [self EDdeleteFunc:MS msd:MSD]; + }else if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆スイッチの操作ON"]){ + [self EDdeleteFunc:MS msd:MSD]; + }else if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆スイッチの操作OFF"]){ + [self EDdeleteFunc:MS msd:MSD]; + }else if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆タイマーの操作"]){ + [self EDdeleteFunc:MS msd:MSD]; + + + } + } + + MS.D = mdTop; + MF[MFselectedRow+1].MS = MS; + +} + + +-(IBAction)EDcancel:(id)sender{ + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + + if(editFlag){ + + + + } + if(insertFlag){ + + + [self willChangeValueForKey:@"eventDetailListMA"]; + [eventDetailListMA removeObjectAtIndex:EDrow]; + [self didChangeValueForKey:@"eventDetailListMA"]; + [eventDetailListAC setSelectionIndex:EDrow]; + + MAPSCRIPT0 *MS0top = MS.D->P; + + if(squareCnt == 1){ + MAPSCRIPT0 *temp = MS.D->P->next; + MS.D->P = temp; + MS0top = MS.D->P; + }else if(squareCnt > 1){ + for (int i = 0; i < squareCnt-2; i++) { + MS.D->P = MS.D->P->next; + } + MAPSCRIPT0 *temp = MS.D->P->next->next; + MS.D->P->next = temp; + } + + + MS.D->P = MS0top; + }else{ + [self willChangeValueForKey:@"eventDetailListMA"]; + [eventDetailListMA removeObjectAtIndex:EDrow]; + [self didChangeValueForKey:@"eventDetailListMA"]; + [eventDetailListAC setSelectionIndex:EDrow]; + + MAPSCRIPT0 *MS0top = MS.D->P; + + if(squareCnt == 1){ + MAPSCRIPT0 *temp; + if(MS.D->P) + {temp = MS.D->P->next; + MS.D->P = temp;} + MS0top = MS.D->P; + }else if(squareCnt > 1){ + for (int i = 0; i < squareCnt-2; i++) { + MS.D->P = MS.D->P->next; + } + MAPSCRIPT0 *temp = MS.D->P->next->next; + MS.D->P->next = temp; + } + + + MS.D->P = MS0top; + } + + + MF[MFselectedRow+1].MS = MS; + + editFlag = false; + insertFlag = false; + [eventDetailSelectionWindow close]; +} + +-(void)initEDtext{ + + MAPSCRIPTD *MSD = msdtop; + MAPSCRIPT0 *MS0 = msdtop->P; + MAPSCRIPT0 *m0Top = MS0; + + for (int i = 0;i < squareCnt-1;i++) { + MS0 = MS0->next; + } + + if(MS0){ + if(MS0->S1.name) + [EDtextName setStringValue:MS0->S1.name]; + else + [EDtextName setStringValue:@""]; + if(MS0->S1.str) + [EDtextString setStringValue:MS0->S1.str]; + else + [EDtextString setStringValue:@""]; + if(MS0->S1.img) + [EDtextImage setImage:MS0->S1.img]; + else + [EDtextImage setImage:nil]; + }/*else{ + [EDtextName setStringValue:@""]; + [EDtextString setStringValue:@""]; + [EDtextImage setImage:nil]; + }*/ + + MS0 = m0Top; + + MF[MFselectedRow+1].MS.D = MSDTOP; + MF[MFselectedRow+1].MS.D->P = MS0; +} + + +-(IBAction)EDtext:(id)sender{ + + [self initEDtext]; + + [EDtextWindow makeKeyAndOrderFront:nil]; +} + +-(IBAction)EDtextSubmit:(id)sender{ + + MAPSCRIPT0 *MS0 = msdtop->P; + MAPSCRIPT0 *m0Top = MS0; + + for (int i = 0;i < squareCnt-1;i++) { + MS0 = MS0->next; + } + + MS0->type = 0; + MS0->S1.name = [[EDtextName stringValue] retain]; + MS0->S1.str = [[EDtextString stringValue] retain]; + MS0->S1.img = [[EDtextImage image] retain]; + + MAPSCRIPTD *MSD = msdtop; + int cnt = 0; + if(editFlag){ + int instantCnt = 0; + int instantCnt2 = 0; + for (int i = 0;i < [MSD->SCRPT count];i++) { + NSArray *array = [[MSD->SCRPT objectAtIndex:i] componentsSeparatedByString:@"◆"]; + if([array count] >= 2){ + instantCnt++; + } + + if(instantCnt == squareCnt){ + instantCnt2++; + cnt--; + } + if(instantCnt == squareCnt + 1){ + break; + } + cnt++; + } + + for(int i = 0;i < instantCnt2;i++){ + + [MSD->SCRPT removeObjectAtIndex:cnt]; + + } + + [MSD->SCRPT insertObject:@"◆文章の表示"atIndex:cnt]; + if(![MS0->S1.name isEqualToString:@""]) [MSD->SCRPT insertObject:[NSString stringWithFormat:@"%@:", MS0->S1.name] atIndex:cnt+1]; + NSArray *array = [MS0->S1.str componentsSeparatedByString:@"\n"]; + int cnt2 = 1; + if([MS0->S1.name isEqualToString:@""]) cnt2 = 0; + for (NSString *str in array) {cnt2++; + [MSD->SCRPT insertObject:str atIndex:cnt+cnt2]; + } + }else if(insertFlag){ + int instantCnt = 0; + int instantCnt2 = 0; + for (int i = 0;i < [MSD->SCRPT count];i++) { + NSArray *array = [[MSD->SCRPT objectAtIndex:i] componentsSeparatedByString:@"◆"]; + if([array count] >= 2){ + instantCnt++; + } + + if(instantCnt == squareCnt){ + instantCnt2++; + cnt--; + } + if(instantCnt == squareCnt + 1){ + break; + } + cnt++; + } + + + [MSD->SCRPT insertObject:@"◆文章の表示"atIndex:cnt]; + if(![MS0->S1.name isEqualToString:@""]) [MSD->SCRPT insertObject:[NSString stringWithFormat:@"%@:", MS0->S1.name] atIndex:cnt+1]; + NSArray *array = [MS0->S1.str componentsSeparatedByString:@"\n"]; + int cnt2 = 1; + if([MS0->S1.name isEqualToString:@""]) cnt2 = 0; + for (NSString *str in array) {cnt2++; + [MSD->SCRPT insertObject:str atIndex:cnt+cnt2]; + } + }else{ + [MSD->SCRPT addObject:@"◆文章の表示"]; + if(![MS0->S1.name isEqualToString:@""]) [MSD->SCRPT addObject:[NSString stringWithFormat:@"%@:", MS0->S1.name]]; + NSArray *array = [MS0->S1.str componentsSeparatedByString:@"\n"]; + int cnt2 = 1; + if([MS0->S1.name isEqualToString:@""]) cnt2 = 0; + for (NSString *str in array) {cnt2++; + [MSD->SCRPT addObject:str]; + } + } + + MS0 = m0Top; + msdtop->P = MS0; + + msdtop = MSD; + + MF[MFselectedRow+1].MS.D = MSDTOP; + *MF[MFselectedRow+1].MS.D = *msdtop; + *MF[MFselectedRow+1].MS.D->P = *(msdtop->P); + MF[MFselectedRow+1].MS.D = MSDTOP; + editFlag = false; + insertFlag = false; + [EDtextWindow close]; + [self initEDlist]; + [eventDetailListAC setSelectionIndex:EDrow]; + [eventDetailSelectionWindow close]; + +} +-(IBAction)EDtextCancel:(id)sender{ + + editFlag = false; + insertFlag = false; + [EDtextWindow close]; +} +-(IBAction)EDtextImageSlct:(id)sender{ + + [EDtextImageButton1 setHighlighted:YES]; + [EDtextImageButton1 setState:YES]; + [EDtextImageButton2 setState:NO]; + [EDtextImageButton3 setState:NO]; + [self setEDtextImage]; + [EDtextImageWindow makeKeyAndOrderFront:nil]; +} + +-(void)setEDtextImage{ + [self willChangeValueForKey:@"EDtextImageMA"]; + [EDtextImageMA removeAllObjects]; + [self didChangeValueForKey:@"EDtextImageMA"]; + + + if([EDtextImageButton1 isHighlighted]){ + EDtextImageButtonValue = 0; + for(int i = 0;i < UCN;i++){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"%@", UC[i].nameClass] forKey:@"name"]; + [dict setValue:UC[i].imgb forKey:@"img"]; + + [self willChangeValueForKey:@"EDtextImageMA"]; + [EDtextImageMA addObject:dict]; + [self didChangeValueForKey:@"EDtextImageMA"]; + + } + + }else if([EDtextImageButton2 isHighlighted]){ + EDtextImageButtonValue = 1; + + for(int i = 0;i < LCN;i++){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"%@", LC[i].name] forKey:@"name"]; + [dict setValue:LC[i].imgb forKey:@"img"]; + + + [self willChangeValueForKey:@"EDtextImageMA"]; + [EDtextImageMA addObject:dict]; + [self didChangeValueForKey:@"EDtextImageMA"]; + } + + }else if([EDtextImageButton3 isHighlighted]){ + EDtextImageButtonValue = 2; + EIMG = EIMGtop; + while(EIMG){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"%@", EIMG->name] forKey:@"name"]; + [dict setValue:EIMG->img forKey:@"img"]; + + [self willChangeValueForKey:@"EDtextImageMA"]; + [EDtextImageMA addObject:dict]; + [self didChangeValueForKey:@"EDtextImageMA"]; + EIMG = EIMG->next; + }EIMG = EIMGtop; + } + [EDtextImageButton1 setHighlighted:NO]; +} + + +-(void)loadEventImage{ + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + NSString *eventImgDirectory = @"data/StringList/img"; + + NSArray *imgList = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:eventImgDirectory error:nil]; + + for(NSString *path in imgList){ + + if([path isEqualToString:@".DS_Store"]){ + continue; + } + + static int eTopFlag = 0; + + if(eTopFlag == 0){ + EIMG = calloc(1, sizeof(EVENTIMAGE)); + eTopFlag = 1; + }else{ + if(eTopFlag == 1){ + eTopFlag = 2; + EIMGtop = EIMG; + } + EIMG->next = calloc(1, sizeof(EVENTIMAGE)); + EIMG = EIMG->next; + } + + NSString *imgPath = [NSString stringWithFormat:@"%@/%@", eventImgDirectory,path]; + EIMG->img = [[[NSImage alloc] initWithContentsOfFile:imgPath] retain]; + EIMG->name = [path retain]; + } + EIMG = EIMGtop; + +} + + + + +-(IBAction)EDtextImageButton:(id)sender{ + [self setEDtextImage]; +} + +-(IBAction)EDtextImageSubmit:(id)sender{ + + [self setEDtextImageView]; + + [EDtextImageWindow close]; +} + +-(void)setEDtextImageView{ + MAPSCRIPT0 *MS0 = MF[MFselectedRow+1].MS.D->P; + MAPSCRIPT0 *m0Top = MS0; + for (int i = 0;i < squareCnt-1;i++) { + MS0 = MS0->next; + } + + if(EDtextImageButtonValue == 0){ + MS0->S1.nameID = [UC[EDtextImageRow].nameID retain]; + MS0->S1.iName = [UC[EDtextImageRow].nameClass retain]; + [EDtextImage setImage:UC[EDtextImageRow].imgb]; + } + if(EDtextImageButtonValue == 1){ + MS0->S1.nameID = [LC[EDtextImageRow].nameID retain]; + MS0->S1.iName = [LC[EDtextImageRow].name retain]; + [EDtextImage setImage:LC[EDtextImageRow].imgb]; + } + if(EDtextImageButtonValue == 2){ + EIMG = EIMGtop; + for (int i = 0; i < EDtextImageRow;i++) { + EIMG = EIMG->next; + } + MS0->S1.nameID = [EIMG->name retain]; + MS0->S1.iName = [[NSString stringWithFormat:@"%@", EIMG->name] retain]; + [EDtextImage setImage:EIMG->img]; + EIMG = EIMGtop; + } + + MS0 = m0Top; +} + +-(IBAction)EDtextImageCancel:(id)sender{ + [EDtextImageWindow close]; +} + + +-(void)initEDselection{ + + [self willChangeValueForKey:@"EDselectionMA"]; + [EDselectionMA removeAllObjects]; + [self didChangeValueForKey:@"EDselectionMA"]; + + MAPSCRIPT0 *MS0 = MF[MFselectedRow+1].MS.D->P; + MAPSCRIPT0 *m0Top = MS0; + + for (int i = 0;i < squareCnt-1;i++) { + MS0 = MS0->next; + } + + if(MS0){ + for (int i = 0; i < [MS0->S2.sel count]; i++) { + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"%@", [[MS0->S2.sel objectAtIndex:i] objectForKey:@"name"]] forKey:@"name"]; + + [self willChangeValueForKey:@"EDselectionMA"]; + [EDselectionMA addObject:dict]; + [self didChangeValueForKey:@"EDselectionMA"]; + } + + } + + MS0 = m0Top; + + MF[MFselectedRow+1].MS.D->P = MS0; +} + +-(IBAction)EDselection:(id)sender{ + [self initEDselection]; + + [EDselectionWindow makeKeyAndOrderFront:nil]; +} + +-(IBAction)EDselectionAdd:(id)sender{ + + MAPSCRIPT0 *MS0 = MF[MFselectedRow+1].MS.D->P; + MAPSCRIPT0 *m0Top = MS0; + + for(int i = 0;i < squareCnt-1;i++){ + MS0 = MS0->next; + } + + if(MS0){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"%@", @"新規選択肢"] forKey:@"name"]; + + [self willChangeValueForKey:@"EDselectionMA"]; + [EDselectionMA addObject:dict]; + [self didChangeValueForKey:@"EDselectionMA"]; + [EDselectionAC setSelectionIndex:[EDselectionMA count]-1]; + EDselRow = [EDselectionMA count]-1; + } + + MS0 = m0Top; + + MF[MFselectedRow+1].MS.D->P = MS0; + +} +-(IBAction)EDselectionDelete:(id)sender{ + + if(EDselRow < 0) return; + + MAPSCRIPT0 *MS0 = MF[MFselectedRow+1].MS.D->P; + MAPSCRIPT0 *m0Top = MS0; + + + for(int i = 0;i < squareCnt-1;i++){ + MS0 = MS0->next; + } + + if(MS0){ + + [self willChangeValueForKey:@"EDselectionMA"]; + [EDselectionMA removeObjectAtIndex:EDselRow]; + [self didChangeValueForKey:@"EDselectionMA"]; + if(EDselRow > 0) { + [EDselectionAC setSelectionIndex:EDselRow-1]; + EDselRow -= 1; + } + else { + [EDselectionAC setSelectionIndex:0]; + EDselRow = 0; + } + } + + MS0 = m0Top; + + MF[MFselectedRow+1].MS.D->P = MS0; + + +} +-(IBAction)EDselectionSubmit:(id)sender{ + MAPSCRIPT0 *MS0 = MF[MFselectedRow+1].MS.D->P; + MAPSCRIPT0 *m0Top = MS0; + MAPSCRIPT2A *m2ATop; + + if([EDselectionMA count] <= 0) + return; + + for(int i = 0;i < squareCnt-1;i++){ + MS0 = MS0->next; + } + + MAPSCRIPTD *MSD = MF[MFselectedRow+1].MS.D; + int cnt = 0; + if(editFlag){ + int instantCnt = 0; + int instantCnt2 = 0; + MS0->S2.sel = [NSMutableArray new]; + [MS0->S2.sel setArray:EDselectionMA]; + [self EDsquareCount:&cnt cnt1:&instantCnt cnt2:&instantCnt2]; + + for(int i = 0;i < instantCnt2;i++){ + + [MSD->SCRPT removeObjectAtIndex:cnt]; + + } + + [MSD->SCRPT insertObject:@"◆選択肢の表示"atIndex:cnt]; + for(int i = 0 ;i < [MS0->S2.sel count];i++){ + NSString *str = @""; + for(int j = 1;j < MS0->indent;j++){ + str = [str stringByAppendingString:@" "]; + } + [MSD->SCRPT insertObject:[NSString stringWithFormat:@"%@:%@の場合", str, [[MS0->S2.sel objectAtIndex:i] objectForKey:@"name"]] atIndex:cnt+i*2+1]; + NSString *str2 = @""; + for(int j = 0;j < MS0->indent;j++){ + str2 = [str2 stringByAppendingString:@" "]; + } + [MSD->SCRPT insertObject:[NSString stringWithFormat:@"%@◆", str2] atIndex:cnt+i*2+2]; + } + NSString *str3 = @""; + for(int j = 1;j < MS0->indent;j++){ + str3 = [str3 stringByAppendingString:@" "]; + } + [MSD->SCRPT insertObject:[NSString stringWithFormat:@"%@:分岐終了", str3] atIndex:cnt+[MS0->S2.sel count]*2+1]; + }else if(insertFlag){ + MS0->indent++; + MS0->S2.sel = [NSMutableArray new]; + [MS0->S2.sel setArray:EDselectionMA]; + + for (int i = 0; i < [MS0->S2.sel count]; i++) { + if(i == 0){ + MS0->S2.S = calloc(1, sizeof(MAPSCRIPT2A)); + MS0->S2.S->next = NULL; + m2ATop = MS0->S2.S; + } + else{ + MS0->S2.S->next = calloc(1, sizeof(MAPSCRIPT2A)); + MS0->S2.S = MS0->S2.S->next; + MS0->S2.S->next = NULL; + } + } + + + int instantCnt = 0; + int instantCnt2 = 0; + [self EDsquareCount:&cnt cnt1:&instantCnt cnt2:&instantCnt2]; + + [MSD->SCRPT insertObject:@"◆選択肢の表示"atIndex:cnt]; + for(int i = 0 ;i < [MS0->S2.sel count];i++){ + NSString *str = @""; + + for(int j = 1;j < MS0->indent;j++){ + str = [str stringByAppendingString:@" "]; + } + [MSD->SCRPT insertObject:[NSString stringWithFormat:@"%@:%@の場合", str, [[MS0->S2.sel objectAtIndex:i] objectForKey:@"name"]] atIndex:cnt+i*2+1]; + NSString *str2 = @""; + for(int j = 0;j < MS0->indent;j++){ + str2 = [str2 stringByAppendingString:@" "]; + } + [MSD->SCRPT insertObject:[NSString stringWithFormat:@"%@◆", str2] atIndex:cnt+i*2+2]; + } + NSString *str3 = @""; + for(int j = 1;j < MS0->indent;j++){ + str3 = [str3 stringByAppendingString:@" "]; + } + [MSD->SCRPT insertObject:[NSString stringWithFormat:@"%@:分岐終了", str3] atIndex:cnt+[MS0->S2.sel count]*2+1]; + }else{ + MS0->indent++; + MS0->S2.sel = [NSMutableArray new]; + [MS0->S2.sel setArray:EDselectionMA]; + + for (int i = 0; i < [MS0->S2.sel count]; i++) { + if(i == 0){ + MS0->S2.S = calloc(1, sizeof(MAPSCRIPT2A)); + MS0->S2.S->next = NULL; + m2ATop = MS0->S2.S; + } + else{ + MS0->S2.S->next = calloc(1, sizeof(MAPSCRIPT2A)); + MS0->S2.S = MS0->S2.S->next; + MS0->S2.S->next = NULL; + } + } + + [MSD->SCRPT addObject:@"◆選択肢の表示"]; + for(int i = 0 ;i < [MS0->S2.sel count];i++){ + NSString *str = @""; + for(int j = 1;j < MS0->indent;j++){ + str = [str stringByAppendingString:@" "]; + } + + [MSD->SCRPT addObject:[NSString stringWithFormat:@"%@:%@の場合", str, [[MS0->S2.sel objectAtIndex:i] objectForKey:@"name"]]]; + NSString *str2 = @""; + for(int j = 0;j < MS0->indent;j++){ + str2 = [str2 stringByAppendingString:@" "]; + } + [MSD->SCRPT addObject:[NSString stringWithFormat:@"%@◆", str2]]; + } + NSString *str3 = @""; + for(int j = 1;j < MS0->indent;j++){ + str3 = [str3 stringByAppendingString:@" "]; + } + [MSD->SCRPT addObject:[NSString stringWithFormat:@"%@:分岐終了", str3]]; + } + + + + + + + MS0 = m0Top; + + MF[MFselectedRow+1].MS.D->P = MS0; + + [EDselectionWindow close]; + [self initEDlist]; + [eventDetailListAC setSelectionIndex:EDrow]; + [eventDetailSelectionWindow close]; +} + +-(void)EDsquareCount:(int*)cnt cnt1:(int*)cnt1 cnt2:(int*)cnt2{ + + MAPSCRIPTD *MSD = MF[MFselectedRow+1].MS.D; + int spaceCnt = 0; + bool spaceCntFlag = false; + for (int i = 0;i < [MSD->SCRPT count];i++) { + NSArray *array = [[MSD->SCRPT objectAtIndex:i] componentsSeparatedByString:@"◆"]; + NSArray *array2 = [[MSD->SCRPT objectAtIndex:i] componentsSeparatedByString:@" "]; + if([array count] >= 2 && !spaceCntFlag){ + *cnt1 += 1; + }else if([array count] >= 2 && spaceCntFlag && spaceCnt == (int)[array2 count]-1){ + *cnt1 += 1; + } + + if(*cnt1 == squareCnt){ + *cnt2 += 1; + *cnt -= 1; + if(!spaceCntFlag){ + spaceCnt = (int)[array2 count]-1; + spaceCntFlag = true; + } + } + if(*cnt1 == squareCnt + 1){ + break; + } + *cnt += 1; + + } +} + +-(IBAction)EDselectionCancel:(id)sender{ + + [EDselectionWindow close]; +} + +-(void)initEDvalue{ + + [self willChangeValueForKey:@"EDvalueMA"]; + [EDvalueMA removeAllObjects]; + [self didChangeValueForKey:@"EDvalueMA"]; + + + //※追加予定 +} + + +-(IBAction)EDvalue:(id)sender{ + + [self initEDvalue]; + + [EDvalueWindow makeKeyAndOrderFront:nil]; + +} + +-(IBAction)EDvalueSubmit:(id)sender{ + + //追加予定 + + [EDvalueWindow close]; +} + +-(IBAction)EDvalueCancel:(id)sender{ + + [EDvalueWindow close]; +} + +-(void)initEDswitch{ + + + + //※追加予定 +} + + +-(IBAction)EDswitch:(id)sender{ + + [self initEDswitch]; + + [EDswitchTF setStringValue:@""]; + + SuicchiSentakuflag = true; + + [EDSwitchWindow2 makeKeyAndOrderFront:nil]; +} + +-(IBAction)EDswitchSubmit:(id)sender{ + + //追加予定 + + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + + MS.D = msdtop; + MAPSCRIPTD *MSDt = MS.D; + + if(SuicchiONOFFsentakuflag){ + [self willChangeValueForKey:@"EDswitch1MA"]; + [EDswitch1MA removeAllObjects]; + [self didChangeValueForKey:@"EDswitch1MA"]; + + NSArray *array = [[EDswitchTF stringValue] componentsSeparatedByString:@" "]; + if([array count] <= 0) return; + + MS.D->switch1 = calloc([array count], sizeof(int)); + + for(int i = 0;i < [array count];i++){ + if([[array objectAtIndex:i] isEqualToString:nil]) continue; + NSMutableDictionary* dict = [NSMutableDictionary new]; + + + *(MS.D->switch1 + i) = [[array objectAtIndex:i] intValue]; + [dict setValue:[NSString stringWithFormat:@"%d", [[array objectAtIndex:i] intValue]] forKey:@"value"]; + + [self willChangeValueForKey:@"EDswitch1MA"]; + [EDswitch1MA addObject:dict]; + [self didChangeValueForKey:@"EDswitch1MA"]; + } + + + }else if(!SuicchiONOFFsentakuflag){ + [self willChangeValueForKey:@"EDswitch2MA"]; + [EDswitch2MA removeAllObjects]; + [self didChangeValueForKey:@"EDswitch2MA"]; + + NSArray *array = [[EDswitchTF stringValue] componentsSeparatedByString:@" "]; + if([array count] <= 0) return; + + MS.D->switch2 = calloc([array count], sizeof(int)); + + for(int i = 0;i < [array count];i++){ + if([[array objectAtIndex:i] isEqualToString:nil]) continue; + NSMutableDictionary* dict = [NSMutableDictionary new]; + + *(MS.D->switch2 + i) = [[array objectAtIndex:i] intValue]; + [dict setValue:[NSString stringWithFormat:@"%d", [[array objectAtIndex:i] intValue]] forKey:@"value"]; + + [self willChangeValueForKey:@"EDswitch2MA"]; + [EDswitch2MA addObject:dict]; + [self didChangeValueForKey:@"EDswitch2MA"]; + } + } + + + + [EDswitchWindow close]; +} + + +-(IBAction)EDswitchCancel:(id)sender{ + + [EDswitchWindow close]; + +} + +-(void)initEDvar{ + + [self willChangeValueForKey:@"EDvarMA"]; + [EDvarMA removeAllObjects]; + [self didChangeValueForKey:@"EDvarMA"]; + + + //※追加予定 +} + +-(IBAction)EDvariable:(id)sender{ + + [self initEDvar]; + + [EDvarWindow makeKeyAndOrderFront:nil]; +} + +-(IBAction)EDvariableSubmit:(id)sender{ + + [EDvarWindow close]; +} + +-(IBAction)EDvariableCancel:(id)sender{ + + [EDvarWindow close]; +} + +-(void)initEDtimer{ + + + //※追加予定 +} + +-(IBAction)EDtimer:(id)sender{ + + [self initEDtimer]; + + [EDtimerWindow makeKeyAndOrderFront:nil]; +} + + +-(IBAction)EDtimerSubmit:(id)sender{ + + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + + MS.D = msdtop; + + [eventDetailListMA removeObjectAtIndex:EDrow]; + + MAPSCRIPT0 *MSDPt = MS.D->P; + + MAPSCRIPT0 *MS0 = MS.D->P; + + for(int i = 0;i < squareCnt - 1 ;i++){ + MS0 = MS0->next; + } + + int omfgCnt = 0; + for(int i= 0;i < squareCnt -1;i++){ + for(int k = 0;omfgCnt < [MS.D->SCRPT count];k++){ + NSArray *array = [[MS.D->SCRPT objectAtIndex:omfgCnt] componentsSeparatedByString:@"◆"]; + omfgCnt++; + if([array count] > 1 && omfgCnt > 1){ + break; + } + } + + } + + if(timerDBLslickFlag){ + [eventDetailListMA removeObjectAtIndex:EDrow]; + [MS.D->SCRPT removeObjectAtIndex:omfgCnt]; + [MS.D->SCRPT removeObjectAtIndex:omfgCnt]; + } + MS0->timerMin = [EDTimerTF1 intValue]; + MS0->timerSec = [EDTimerTF2 intValue]; + MS0->timerFlag = true; + + NSMutableDictionary* dict2 = [NSMutableDictionary new]; + + [dict2 setValue:[NSString stringWithFormat:@"◆タイマーの操作"] forKey:@"value"]; + + [MS.D->SCRPT insertObject:@"◆タイマーの操作" atIndex:omfgCnt]; + + + [self willChangeValueForKey:@"eventDetailListMA"]; + [eventDetailListMA insertObject:dict2 atIndex:EDrow]; + [self didChangeValueForKey:@"eventDetailListMA"]; + + + + NSMutableDictionary* dict = [NSMutableDictionary new]; + NSString *string = [NSString stringWithFormat:@""]; + EDrow++; + + string = [string stringByAppendingFormat:@"%d分%d秒 ", MS0->timerMin, MS0->timerSec]; + + if(MS0->timerRun) + string = [string stringByAppendingFormat:@"始動 "]; + else + string = [string stringByAppendingFormat:@"停止 "]; + if(MS0->timerMode) + string = [string stringByAppendingFormat:@"足す "]; + else + string = [string stringByAppendingFormat:@"引く "]; + if(MS0->timerVisible) + string = [string stringByAppendingFormat:@"表示"]; + else + string = [string stringByAppendingFormat:@"非表示"]; + + [dict setValue:[NSString stringWithFormat:@"%@", string] forKey:@"value"]; + + [dict setValue:string forKey:@"value"]; + + [MS.D->SCRPT insertObject:string atIndex:omfgCnt+1]; + + + [self willChangeValueForKey:@"eventDetailListMA"]; + [eventDetailListMA insertObject:dict atIndex:EDrow]; + [self didChangeValueForKey:@"eventDetailListMA"]; + + + MS.D->P = MS0; + + MS.D->P = MSDPt; + timerDBLslickFlag = false; + [EDtimerWindow close]; + [eventDetailSelectionWindow close]; +} +-(IBAction)EDtimerCancel:(id)sender{ + + [EDtimerWindow close]; +} + + + +-(void)initEDterms{ + + + //※追加予定 +} + +-(IBAction)EDterms:(id)sender{ + + + [self initEDterms]; + + [EDtermsWindow makeKeyAndOrderFront:nil]; + +} + + + +-(IBAction)EDtermsSubmit:(id)sender{ + + + [EDtermsWindow close]; +} + + +-(IBAction)EDtermsCancel:(id)sender{ + + [EDtermsWindow close]; +} + + + + +-(void)initEDlabel{ + + + //※追加予定 +} +-(IBAction)EDlabel:(id)sender{ + + + [self initEDlabel]; + + [EDlabelWindow makeKeyAndOrderFront:nil]; +} + + + +-(IBAction)EDlabelSubmit:(id)sender{ + + [EDlabelWindow close]; +} +-(IBAction)EDlabelCancel:(id)sender{ + + [EDlabelWindow close]; + +} + + + + +-(void)initEDlabelJump{ + + + //※追加予定 +} + + +-(IBAction)EDlabelJump:(id)sender{ + + + [self initEDlabelJump]; + + [EDlabelJumpWindow makeKeyAndOrderFront:nil]; +} + + +-(IBAction)EDlabelJumpSubmit:(id)sender{ + + + + [EDlabelJumpWindow close]; + +} + + + +-(IBAction)EDlabelJumpCancel:(id)sender{ + + + + + [EDlabelJumpWindow close]; + +} + + + +-(void)initEDmemo{ + + + //※追加予定 +} + + +-(IBAction)EDmemo:(id)sender{ + + + + [self initEDmemo]; + + [EDmemoWindow makeKeyAndOrderFront:nil]; +} + +-(IBAction)EDmemoSubmit:(id)sender{ + + [EDmemoWindow close]; +} +-(IBAction)EDmemoCancel:(id)sender{ + + [EDmemoWindow close]; +} + + +-(void)initEDresource{ + + + //※追加予定 +} + + + + +-(IBAction)EDresource:(id)sender{ + + + [self initEDresource]; + + [EDresourceWindow makeKeyAndOrderFront:nil]; + +} + + +-(IBAction)EDresourceSubmit:(id)sender{ + + + [EDresourceWindow close]; +} + + + +-(IBAction)EDresourceCancel:(id)sender{ + + [EDresourceWindow close]; +} + + + + +-(IBAction)EDitem:(id)sender{} +-(IBAction)EDmember:(id)sender{} + + + + + +-(void)initEDhp{ + + + //※追加予定 +} + +-(IBAction)EDhp:(id)sender{ + + + [self initEDhp]; + + [EDhpWindow makeKeyAndOrderFront:nil]; +} + + + +-(IBAction)EDhpSubmit:(id)sender{ + + + [EDhpWindow close]; + + +} + +-(IBAction)EDhpCancel:(id)sender{ + + + + [EDhpWindow close]; + +} + +-(IBAction)EDmp:(id)sender{} +-(IBAction)EDstatus:(id)sender{} +-(IBAction)EDstate:(id)sender{} +-(IBAction)EDskill:(id)sender{} +-(IBAction)EDname:(id)sender{} +-(IBAction)EDequip:(id)sender{} +-(IBAction)EDattackFlagOn:(id)sender{} + +-(IBAction)EDmove:(id)sender{} +-(IBAction)EDappear:(id)sender{} +-(IBAction)EDdissapear:(id)sender{} + +-(IBAction)EDplace:(id)sender{} +-(IBAction)EDwait:(id)sender{} +-(IBAction)EDpilot:(id)sender{} +-(IBAction)EDunit:(id)sender{} +-(IBAction)EDbgm:(id)sender{} +-(IBAction)EDbgmFadeOut:(id)sender{} +-(IBAction)EDse:(id)sender{} +-(IBAction)EDseStop:(id)sender{} + +-(IBAction)EDbattle:(id)sender{} +-(IBAction)EDshop:(id)sender{} +-(IBAction)EDnameInput:(id)sender{} + +-(IBAction)EDgameOver:(id)sender{} +-(IBAction)EDstageClear:(id)sender{} +-(IBAction)EDtitle:(id)sender{} + + +-(IBAction)EDSWOKbtn:(id)sender{ + + + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + + MS.D = msdtop; + + [eventDetailListMA removeObjectAtIndex:EDrow]; + + MAPSCRIPT0 *MSDPt = MS.D->P; + + MAPSCRIPT0 *MS0 = MS.D->P; + MAPSCRIPTD *MSD = MS.D; + + for(int i = 0;i < squareCnt - 1 ;i++){ + MS0 = MS0->next; + } + + int omfgCnt = 0; + for(int i= 0;i < squareCnt -1;i++){ + for(int k = 0;omfgCnt < [MS.D->SCRPT count];k++){ + NSArray *array = [[MS.D->SCRPT objectAtIndex:omfgCnt] componentsSeparatedByString:@"◆"]; + omfgCnt++; + if([array count] > 1 && omfgCnt > 1){ + break; + } + } + + } + + if(suicchiDBLslickFlag){ + [eventDetailListMA removeObjectAtIndex:EDrow]; + [MS.D->SCRPT removeObjectAtIndex:omfgCnt]; + [MS.D->SCRPT removeObjectAtIndex:omfgCnt]; + } + + + MS0->type = 3; + + if([EDSWON state] == YES){ + + NSMutableDictionary* dict2 = [NSMutableDictionary new]; + + [dict2 setValue:[NSString stringWithFormat:@"◆スイッチの操作ON"] forKey:@"value"]; + + if(!suicchiDBLslickFlag) + [MS.D->SCRPT insertObject:@"◆スイッチの操作ON" atIndex:omfgCnt]; + if(suicchiDBLslickFlag) + [MS.D->SCRPT insertObject:@"◆スイッチの操作ON" atIndex:omfgCnt]; + + [self willChangeValueForKey:@"eventDetailListMA"]; + [eventDetailListMA insertObject:dict2 atIndex:EDrow]; + [self didChangeValueForKey:@"eventDetailListMA"]; + + NSArray *array = [[EDSWTF stringValue] componentsSeparatedByString:@" "]; + + MS0->switch1 = calloc([array count], sizeof(int)); + + NSMutableDictionary* dict = [NSMutableDictionary new]; + NSString *string = [NSString stringWithFormat:@""]; + EDrow++; + for(int i = 0;i < [array count];i++){ + //if([[array objectAtIndex:i] isEqualToString:nil]) continue; + + *(MS0->switch1 + i) = [[array objectAtIndex:i] intValue]; + + string = [string stringByAppendingFormat:@"%d", [[array objectAtIndex:i] intValue]]; + + if(i + 1 < [array count]){ + string = [string stringByAppendingFormat:@","]; + } + } + + [dict setValue:string forKey:@"value"]; + if(!suicchiDBLslickFlag) + [MS.D->SCRPT insertObject:string atIndex:omfgCnt+1]; + if(suicchiDBLslickFlag) + [MS.D->SCRPT insertObject:string atIndex:omfgCnt+1]; + + [self willChangeValueForKey:@"eventDetailListMA"]; + [eventDetailListMA insertObject:dict atIndex:EDrow]; + [self didChangeValueForKey:@"eventDetailListMA"]; + + + }else{ + + NSMutableDictionary* dict2 = [NSMutableDictionary new]; + + [dict2 setValue:[NSString stringWithFormat:@"◆スイッチの操作OFF"] forKey:@"value"]; + + if(!suicchiDBLslickFlag) + [MS.D->SCRPT insertObject:@"◆スイッチの操作OFF" atIndex:omfgCnt]; + if(suicchiDBLslickFlag) + [MS.D->SCRPT insertObject:@"◆スイッチの操作OFF" atIndex:omfgCnt]; + + [self willChangeValueForKey:@"eventDetailListMA"]; + [eventDetailListMA insertObject:dict2 atIndex:EDrow]; + [self didChangeValueForKey:@"eventDetailListMA"]; + + NSArray *array = [[EDSWTF stringValue] componentsSeparatedByString:@" "]; + + MS0->switch2 = calloc([array count], sizeof(int)); + + NSMutableDictionary* dict = [NSMutableDictionary new]; + NSString *string = [NSString stringWithFormat:@""]; + EDrow++; + for(int i = 0;i < [array count];i++){ + //if([[array objectAtIndex:i] isEqualToString:nil]) continue; + + *(MS0->switch2 + i) = [[array objectAtIndex:i] intValue]; + + string = [string stringByAppendingFormat:@"%d", [[array objectAtIndex:i] intValue]]; + + if(i + 1 < [array count]){ + string = [string stringByAppendingFormat:@","]; + } + } + + [dict setValue:string forKey:@"value"]; + + if(!suicchiDBLslickFlag) + [MS.D->SCRPT insertObject:string atIndex:omfgCnt+1]; + if(suicchiDBLslickFlag) + [MS.D->SCRPT insertObject:string atIndex:omfgCnt+1]; + + [self willChangeValueForKey:@"eventDetailListMA"]; + [eventDetailListMA insertObject:dict atIndex:EDrow]; + [self didChangeValueForKey:@"eventDetailListMA"]; + + + + } + + MS.D->P = MS0; + MS.D->P = MSDPt; + + MS.D = msdtop; + + + + [eventDetailListAC setSelectionIndex:EDrow]; + SuicchiSentakuflag = false; + suicchiDBLslickFlag = false; + [EDSwitchWindow2 close]; + [eventDetailSelectionWindow close]; +} + + +-(IBAction)EDSWCancelbtn:(id)sender{ + + [EDSwitchWindow2 close]; +} + + + + + +-(IBAction)playerSetBtn1:(id)sender{ + + playerSet1 = (int)[eventPlayerSetPUB1 indexOfSelectedItem]; + + MF[MFselectedRow+1].MS.playerSet1 = playerSet1; +} + + +-(IBAction)playerSetBtn2:(id)sender{ + + + playerSet2 = (int)[eventPlayerSetPUB2 indexOfSelectedItem]; + MF[MFselectedRow+1].MS.playerSet2 = playerSet2; + +} + + +-(IBAction)setBattleModeBtn:(id)sender{ + + battleSetMode = [eventBattleDetailBtn intValue]; + + MF[MFselectedRow+1].MS.battleSetMode = battleSetMode; + +} + + +-(IBAction)EDTimerSetBtn1:(id)sender{ + + fuckingRetardedBtnPushed1 = true; + + + + +} +-(IBAction)EDTimerSetBtn2:(id)sender{ + + fuckingRetardedBtnPushed1 = true; + + + + + + + + +} +-(IBAction)EDTimerSetBtn3:(id)sender{ + + fuckingRetardedBtnPushed1 = true; + + + + + + + +} + + + + + + + + + + + + + + + +@end diff --git a/Awars III/MapView.h b/Awars III/MapView.h new file mode 100755 index 0000000..1806037 --- /dev/null +++ b/Awars III/MapView.h @@ -0,0 +1,64 @@ +// +// MapView.h +// Awars III +// +// Created by Killery on 2012/12/15. +// Copyright (c) 2012年 Killery. All rights reserved. +// + +#import +#import "MapChipList.h" +#import "BuildChipList.h" +#import "UnitChipList.h" +#import "ChipView.h" +#import "CommandView.h" +#import "MapEditor.h" +#import "EventScene.h" +#import "ScenarioList.h" + +int chipNum[1002][1002]; +int buildNum[1002][1002]; +int unitNum[1002][1002]; +int loadNum[1002][1002]; +int buildTeam[1002][1002]; +int unitTeam[1002][1002]; +int posX; +int posY; + +int chipHeight; +int chipWidth; +int chipHeightPost; +int chipWidthPost; + +bool mapChipDataLoadFail; + +int eSlctX; +int eSlctY; +int clickUpCnt; +bool doubleClickedFlag; + +int MSDPONOFFFlagNum; + +@interface MapView : NSView +{ + NSTimer *time0; + NSImage *chip, *chip2; + NSImage *chip1A; + NSImage *chip2A; + NSImage *chip3A, *chip4A, *chip5A, *chip6A; + NSImage *chip1B, *chip2B, *chip3B, *chip4B, *chip5B, *chip6B; + + NSImage *buildTeamImg[9]; + NSImage *unitTeamImg[9]; + + NSPoint drugPoint; + + NSArray *fileDataArray; + +} +-(NSImage*)LoadImage:(NSString*)name; +-(void)DrawImage:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy; + +-(void)loadMapChip; + +@end diff --git a/Awars III/MapView.m b/Awars III/MapView.m new file mode 100755 index 0000000..68ad4d8 --- /dev/null +++ b/Awars III/MapView.m @@ -0,0 +1,1011 @@ +// +// 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:0.05f + target:self + selector:@selector(EventLoop00:) + userInfo:nil + repeats:YES + ]; + 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)EventLoop00:(NSTimer*)time{ + + 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){ + 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(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(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(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]; +} + +-(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/MD00.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" + @"0,0,0\n" + @"####\n" + @"0,0,0\n" + @"####\n" + @"0,0,0\n" + @"####\n" + @"0,0,0" + ; + + + + 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; + for(int i=1;i <= [fileDataArray count];i++){ + NSArray *items = [[fileDataArray objectAtIndex:i-1] componentsSeparatedByString:@","]; + + NSRange rangeSearch = [[items objectAtIndex:0] rangeOfString:@"####"]; + + if(rangeSearch.location != NSNotFound){ + chipType++; + continue; + } + + for(int j=1;j <= [items count];j++){ + unitTeam[i][j] = -1; + buildTeam[i][j] = -1; + } + + if(chipType == 0){chipIndexDelta++; + for(int j=1;j <= [items count];j++){ + chipNum[j][i] = [[items objectAtIndex:j-1] intValue]; + chipWidth = (int)[items count]; + chipHeight = chipIndexDelta; + } + }else if(chipType == 1){ + for(int j=1;j <= [items count];j++){ + buildNum[j][i - chipIndexDelta-1] = [[items objectAtIndex:j-1] intValue]-1; + } + }else if(chipType == 2){ + for(int j=1;j <= [items count];j++){ + unitNum[[[items objectAtIndex:2] intValue]][[[items objectAtIndex:1] intValue]] = [[items objectAtIndex:0] intValue]-1; + } + }else if(chipType == 3){ + for(int j=1;j <= [items count];j++){ + buildTeam[[[items objectAtIndex:2] intValue]][[[items objectAtIndex:1] intValue]] = [[items objectAtIndex:0] intValue]; + } + }else if(chipType == 4){ + for(int j=1;j <= [items count];j++){ + unitTeam[[[items objectAtIndex:2] intValue]][[[items objectAtIndex:1] intValue]] = [[items objectAtIndex:0] intValue]; + } + }else if(chipType == 5){ + for(int j=1;j <= [items count];j++){ + loadNum[[[items objectAtIndex:2] intValue]][[[items objectAtIndex:1] intValue]] = [[items objectAtIndex:0] intValue]-1; + } + } + } + + + 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(!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; + } + } + + + bool EGdarkFlag = false; + + 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++; + } + } + + + int EGcnt = 0; + for(int i = indexCnt;i < [fileDataArray count];i++){indexCnt++; + 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; + } + + 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; + + 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:@","]; + 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]; + + + 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 *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; + } + + if (rangeSearch2.location == !NSNotFound) { + + 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)); + MSDPtop = MS.D->P; + MS.D->SCRPT = [NSMutableArray new]; + } + else { + MS.D->P->next = calloc(1, sizeof(MAPSCRIPT0)); + 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 == 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]]; + } + + 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; + MS.D->P->S1.str = [[MS.D->P->S1.str stringByAppendingString:string] retain]; + MS.D->P->S1.str = [[MS.D->P->S1.str stringByAppendingFormat:@"\n"] retain]; + if(![string isEqualToString:@""]) + [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@", [fileDataArray objectAtIndex:i]]]; + + } + }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]]; + } + } + } + }scriptIndex++; + } + } + + //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 = MS; + mapSizeChangedFlag = true; + mapLoadFlagForMSD = false; + mapLoadFlagForMSD2 = false; +} + +-(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", + 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\n", playerSet1, playerSet2, battleSetMode]; + + fileData = [fileData stringByAppendingFormat:@"========\nEVENT\n========\n"]; + + MAPSCRIPT MS = MF[MFselectedRow+1].MS; + int index = 0; + while(MS.D){ + MAPSCRIPT0 *MSPtop = MS.D->P; + if(!MS.D->P) break; + 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]; + if(MS.D->switch1) + if(*MS.D->switch1 > 0){ + fileData = [fileData stringByAppendingFormat:@"ON["]; + for(int i = 0;*(MS.D->switch1+i) > 0;i++){ + fileData = [fileData stringByAppendingFormat:@"%d", *(MS.D->switch1+i)]; + if(*(MS.D->switch1+i+1)>0) + [fileData stringByAppendingFormat:@","]; + } + 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++){ + fileData = [fileData stringByAppendingFormat:@"%d", *(MS.D->switch2+i)]; + if(*(MS.D->switch2+i+1)>0) + [fileData stringByAppendingFormat:@","]; + } + fileData = [fileData stringByAppendingFormat:@"]"]; + } + fileData = [fileData stringByAppendingFormat:@"\n"]; + + 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 == 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"]; + } + 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 diff --git a/Awars III/SChipView.h b/Awars III/SChipView.h new file mode 100755 index 0000000..cae3cfb --- /dev/null +++ b/Awars III/SChipView.h @@ -0,0 +1,21 @@ +// +// SChipView.h +// Awars III +// +// Created by Killery on 2012/12/15. +// Copyright (c) 2012年 Killery. All rights reserved. +// + +#import +#import "MapChipList.h" +#import "BuildChipList.h" +#import "UnitChipList.h" + +@interface SChipView : NSView +{ + NSImage *chip; +} +-(NSImage*)LoadImage:(NSString*)name; +-(void)DrawImage:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy; + +@end diff --git a/Awars III/SChipView.m b/Awars III/SChipView.m new file mode 100755 index 0000000..ebc3d5f --- /dev/null +++ b/Awars III/SChipView.m @@ -0,0 +1,66 @@ +// +// SChipView.m +// Awars III +// +// Created by Killery on 2012/12/15. +// Copyright (c) 2012年 Killery. All rights reserved. +// + +#import "SChipView.h" + +@implementation SChipView + +- (id)initWithFrame:(NSRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + chip = [[self LoadImage:@"マス.png"] retain]; + NSRect seRect; + seRect.size.height = 1*32; + seRect.size.width = 1*32; + } + + return self; +} +-(BOOL)isFlipped{ + return YES; +} + +-(NSImage*)LoadImage:(NSString*)name{ + NSImage *image = [NSImage imageNamed:name]; + if(image == nil) return nil; + //[image setFlipped:[self isFlipped]]; + + 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)drawRect:(NSRect)dirtyRect +{ + int bx, by; + for(bx=0;bx<1;bx++){ + for(by=0;by<1;by++){ + [self DrawImage:chip x:bx*32 y:by*32 cx:bx cy:by]; + } + + } +} + + +@end diff --git a/Awars III/SeedView.h b/Awars III/SeedView.h new file mode 100755 index 0000000..b6cea57 --- /dev/null +++ b/Awars III/SeedView.h @@ -0,0 +1,31 @@ +// +// SeedView.h +// Awars III +// +// Created by Killery on 2012/12/15. +// Copyright (c) 2012年 Killery. All rights reserved. +// + +#import +#import "MapChipList.h" +#import "BuildChipList.h" +#import "UnitChipList.h" +#import "MapEditor.h" +int SLSx; +int SLSy; +bool DoubleClicked; + +@interface SeedView : NSView +{ + NSTimer *time; + + NSImage *chip; + NSImage *chip2, *chip3, *chip4, *chip5, *chip6; + + NSPoint selectPoint; +} + +-(NSImage*)LoadImage:(NSString*)name; +-(void)DrawImage:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy; + +@end diff --git a/Awars III/SeedView.m b/Awars III/SeedView.m new file mode 100755 index 0000000..10eeb4d --- /dev/null +++ b/Awars III/SeedView.m @@ -0,0 +1,94 @@ +// +// SeedView.m +// Awars III +// +// Created by Killery on 2012/12/15. +// Copyright (c) 2012年 Killery. All rights reserved. +// + +#import "SeedView.h" + +@implementation SeedView + +- (id)initWithFrame:(NSRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + time = [NSTimer + scheduledTimerWithTimeInterval:0.05f + target:self + selector:@selector(EventLoop:) + userInfo:nil + repeats:YES + ]; + chip = [[self LoadImage:@"マス.png"] retain]; + chip2 = [[self LoadImage:@"地形.png"] retain]; + chip3 = [[self LoadImage:@"建物.png"] retain]; + chip4 = [[self LoadImage:@"駒.png"] retain]; + chip5 = [[self LoadImage:@"セレクター.png"] retain]; + chip6 = [[self LoadImage:@"駒大.png"] retain]; + NSRect seRect; + seRect.size.height = 3*32; + seRect.size.width = 3*32; + } + + return self; +} + +-(void)EventLoop:(NSTimer*)time{ + + [self setNeedsDisplay:YES]; +} + +-(BOOL)isFlipped{ + return YES; +} + +-(NSImage*)LoadImage:(NSString*)name{ + NSImage *image = [NSImage imageNamed:name]; + if(image == nil) return nil; + //[image setFlipped:[self isFlipped]]; + + 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)mouseDown:(NSEvent *)theEvent{ + selectPoint = [self convertPoint:[theEvent locationInWindow] fromView:nil]; + + SLSx = (int)selectPoint.x/32; + SLSy = (int)selectPoint.y/32; +} + +-(void)mouseUp:(NSEvent *)theEvent{ + if([theEvent clickCount] == 2) { + DoubleClicked = true; + } +} + +- (void)drawRect:(NSRect)dirtyRect +{ + [self DrawImage:chip2 x:0 y:0 cx:0 cy:0]; + [self DrawImage:chip3 x:1*32 y:0 cx:1 cy:0]; + [self DrawImage:chip4 x:2*32 y:0 cx:2 cy:0]; + [self DrawImage:chip6 x:3*32 y:0 cx:2 cy:0]; + [self DrawImage:chip5 x:SLSx*32 y:0 cx:2 cy:0]; +} + +@end diff --git a/Awars III/UnitChipList.h b/Awars III/UnitChipList.h new file mode 100755 index 0000000..79ac208 --- /dev/null +++ b/Awars III/UnitChipList.h @@ -0,0 +1,696 @@ +// +// UnitChipList.h +// Awars III +// +// Created by Killery on 2012/12/17. +// Copyright (c) 2012年 Killery. All rights reserved. +// + + +typedef struct _RESIST{ + + int blow; + int slash; + int stub; + int arrow; + int gun; + int shell; + + int flame; + int cold; + int electoric; + int air; + int water; + int gas; + int holy; + int dark; + int explosion; + int blood; + + int paralysis; + int confusion; + int poison; + int sleep; + int charm; + int silent; + + +}RESIST; + +typedef struct _DAMAGE{ + + int index; + struct _DAMAGE *next; + + int type;//攻撃力とか + double count; + double pCount; + + RESIST R; + int seed;//属性 + int sort;//ダメージとか回復とか + + bool continium; + bool absolute; + bool beam; + bool noSizeFix; + +}DAMAGE; + +typedef struct _DMGEXTEND{ + + int index; + struct _DMGEXTEND *next; + + int rate; + int hit; + int atkHit; + +}DMGEXTEND; + +typedef struct _ATTACK{ + + int index; + struct _ATTACK *next; + + DAMAGE *D; + double totalD; + + DMGEXTEND *E; + + NSString *name; + NSString *nameID; + + int rangeA; + int rangeB; + int rangeAB; + int extent; + + int costType; + + double MP; + double AP; + double HP; + double EN; + + int pMP; + int pAP; + int pHP; + int pEN; + + int bullet; + int bulletC; + int hitCount; + int successRate; + int vigor; + int hitPercent; + + int type; + bool trig; + bool melee; + bool P; + bool dmgExtend; + + int cSupply; + int cFood; + int cMoney; + + int riku;//A120% B100% C60% D20% E0% S150% SS200%の補正値 + int chu; + int umi; + int sora; + + NSString *cmd; + NSString *msg; + +}ATTACK; + +typedef struct _EQUIP{ + NSString *name; + NSString *nameRecognition; + NSString *nameID; + + ATTACK *A; + int attackListNum; + + double Weight; + double price; + + double HP; + double MP; + double AP; + double WT; + double BP; + + double STR; + double VIT; + double AGI; + double DEX; + double MEN; + double INT; + double LUK; + + int pSTR; + int pVIT; + int pAGI; + int pDEX; + int pMEN; + int pINT; + int pLUK; + + int MOV; + int type; + + double recHP; + int recpHP; + double recMP; + int recpMP; + + NSString *comment; + + RESIST R; + +}EQUIP; + +typedef struct _COMMANDS{ + + struct _COMMANDS *next; + NSString *cmd; + int waza; + NSString *hasei; + + +}COMMANDS; + +typedef struct _COMBO{ + + struct _COMBO *next; + NSString *mbo; + +}COMBO; + +typedef struct _COMMAND{ + + int A; + int B; + int C; + int D; + + COMMANDS *cs; + COMBO *co; + +}COMMAND; + +typedef struct _STATUS{ + + double HP; + double MP; + double AP; + double WT; + double BP; + + double STR; + double VIT; + double AGI; + double DEX; + double MEN; + double INT; + double LUK; + + double MEL; + double MIS; + double HIT; + double DOD; + double REA; + double SKI; + + int MOV; + int typeMONS; + int typeMOVE; + + double ATK; + double DEF; + double CAP; + double ACU; + double EVA; + + int cSupply; + int cFood; + int cMoney; + int cWT; + + int vigor; + +}STATUS; + +typedef struct _SKILL{ + struct _SKILL *next; + + int index; + int type; + + int list[255]; + double cost[255]; + int Lv[255]; + + +}SKILL; + +typedef struct _UNITCHIP{ + + RESIST R_C; + RESIST R_M; + ATTACK *A; + SKILL *S; + + NSString *name; + NSString *nameNick; + NSString *nameClass; + NSString *nameRecognition; + NSString *nameID; + bool aura; + + struct _STATUS S_C; + struct _STATUS S_M; + + NSString *iName; + NSImage *img; + + NSString *iNameb; + NSImage *imgb; + + int chipNumb; + + EQUIP eHead; + EQUIP eHandL; + EQUIP eHandR; + EQUIP eBody; + EQUIP eArm; + EQUIP eFoot; + + bool eHandLflag; + bool eHandRflag; + bool eHandLRflag; + bool eHeadflag; + bool eBodyflag; + bool eArmflag; + bool eFootflag; + + NSString *aName; + int attackListNum; + + COMMAND CM; + + + struct _UNITCHIP *E;//装備の総値 + struct _UNITCHIP *N;//現在値に使用 + +}UNITCHIP; + +typedef struct _SKILLLIST{ + struct _SKILLLIST *next; + + NSString *name; + NSString *nameID; + NSString *explain; + + int type; + + int build[128]; + int unit[128]; +}SKILLLIST; + +#import +#import "MapEditor.h" + + +UNITCHIP UC[4096]; + +EQUIP EQ[4096]; +EQUIP nilEquip; + +NSInteger eItemNum; + +SKILLLIST *SKL, *SKLtop; +int SKLrow; +int SKLBrow; +int SKLUrow; + +SKILL *Stop; + +int UCN; + +int UnitChipNum; + +@interface UnitChipList : NSObject +{ + NSTimer *UCLtime; + IBOutlet NSPanel* UCLPanel; + IBOutlet NSPanel* UCLDetailPanel; + IBOutlet NSPanel* UCLRegisterPanel; + NSPoint UCLDpoint; + + + NSMutableArray *unitChipListMA; + IBOutlet NSArrayController *unitChipListAC; + IBOutlet NSTableView *unitChipListTV; + + NSMutableArray *equipItemMA; + IBOutlet NSArrayController *equipItemAC; + IBOutlet NSTableView *equipItemTV; + NSInteger pubEquipItemIndex; + + NSArray *fileDataArray; + NSInteger chipNumb; + NSInteger itemNumb; + NSInteger comboItemNumb; + IBOutlet NSTextField* TFchipNumb; + + IBOutlet NSPanel* UCLPanelSkill; + IBOutlet NSPanel* UCLPanelAttack; + IBOutlet NSPanel* UCLPanelRegist; + NSPoint windowPoint; + + IBOutlet NSPanel* UCLPanelAttackDetail; + IBOutlet NSPanel* UCLPanelAttackList; + + IBOutlet NSPanel* UCLPanelEquipList; + IBOutlet NSPanel* UCLPanelSkillList; + + IBOutlet NSPanel* UCLPanelEquipDetail; + IBOutlet NSPanel* UCLPanelSkillDetail; + + NSMutableArray *attackListMA; + IBOutlet NSArrayController *attackListAC; + IBOutlet NSTableView *attackListTV; + + NSMutableArray *damageListMA; + IBOutlet NSArrayController *damageListAC; + IBOutlet NSTableView *damageListTV; + + NSMutableArray *hitListMA; + IBOutlet NSArrayController *hitListAC; + IBOutlet NSTableView *hitListTV; + + NSMutableArray *equipListMA; + IBOutlet NSArrayController *equipListAC; + IBOutlet NSTableView *equipListTV; + + NSMutableArray *skillListMA; + IBOutlet NSArrayController *skillListAC; + IBOutlet NSTableView *skillListTV; + IBOutlet NSPopUpButton *PUBsl; + + NSMutableArray *skillListBuildMA; + IBOutlet NSArrayController *skillListBuildAC; + IBOutlet NSTableView *skillListBuildTV; + + NSMutableArray *skillListUnitMA; + IBOutlet NSArrayController *skillListUnitAC; + IBOutlet NSTableView *skillListUnitTV; + + IBOutlet NSPanel* SLBpanel; + IBOutlet NSPanel* SLUpanel; + + IBOutlet NSTextField *TFname; + IBOutlet NSTextField *TFnameN; + IBOutlet NSTextField *TFnameR; + IBOutlet NSTextField *TFnameID; + IBOutlet NSTextField *TFnameC; + + IBOutlet NSButton *Baura; + + IBOutlet NSTextField *TFhp; + IBOutlet NSTextField *TFmp; + IBOutlet NSTextField *TFap; + IBOutlet NSTextField *TFwt; + + IBOutlet NSTextField *TFbp; + IBOutlet NSTextField *TFatk; + IBOutlet NSTextField *TFdef; + IBOutlet NSTextField *TFcap; + IBOutlet NSTextField *TFacu; + IBOutlet NSTextField *TFeva; + + IBOutlet NSTextField *TFstr; + IBOutlet NSTextField *TFvit; + IBOutlet NSTextField *TFagi; + IBOutlet NSTextField *TFdex; + IBOutlet NSTextField *TFmen; + IBOutlet NSTextField *TFint; + IBOutlet NSTextField *TFluk; + IBOutlet NSTextField *TFmov; + + IBOutlet NSTextField *TFmel; + IBOutlet NSTextField *TFmis; + IBOutlet NSTextField *TFhit; + IBOutlet NSTextField *TFdod; + IBOutlet NSTextField *TFrea; + IBOutlet NSTextField *TFski; + + IBOutlet NSTextField *TFcSupply; + IBOutlet NSTextField *TFcFood; + IBOutlet NSTextField *TFcMoney; + IBOutlet NSTextField *TFcWT; + + IBOutlet NSPopUpButton *PUPtMons; + IBOutlet NSPopUpButton *PUPtMove; + IBOutlet NSPopUpButton *PUPtEquip; + + IBOutlet NSImageView *IVimg; + IBOutlet NSImageView *IVimgBig; + + + IBOutlet NSWindow *ILregiWIndow; + IBOutlet NSTextField *ILregiTF; + + IBOutlet NSTextField *ILTFname; + IBOutlet NSTextField *ILTFnameR; + IBOutlet NSTextField *ILTFnameID; + + IBOutlet NSTextField *ILTFweight; + IBOutlet NSTextField *ILTFprice; + IBOutlet NSTextField *ILTFMOV; + IBOutlet NSTextField *ILTFHP; + IBOutlet NSTextField *ILTFMP; + IBOutlet NSTextField *ILTFAP; + IBOutlet NSTextField *ILTFWT; + + IBOutlet NSTextField *ILTFSTR; + IBOutlet NSTextField *ILTFVIT; + IBOutlet NSTextField *ILTFAGI; + IBOutlet NSTextField *ILTFDEX; + IBOutlet NSTextField *ILTFMEN; + IBOutlet NSTextField *ILTFINT; + IBOutlet NSTextField *ILTFLUK; + + IBOutlet NSTextField *ILTFpSTR; + IBOutlet NSTextField *ILTFpVIT; + IBOutlet NSTextField *ILTFpAGI; + IBOutlet NSTextField *ILTFpDEX; + IBOutlet NSTextField *ILTFpMEN; + IBOutlet NSTextField *ILTFpINT; + IBOutlet NSTextField *ILTFpLUK; + + IBOutlet NSTextField *ILTFblow; + IBOutlet NSTextField *ILTFslash; + IBOutlet NSTextField *ILTFstub; + IBOutlet NSTextField *ILTFarrow; + IBOutlet NSTextField *ILTFgun; + IBOutlet NSTextField *ILTFshell; + IBOutlet NSTextField *ILTFparalysis; + IBOutlet NSTextField *ILTFpoison; + IBOutlet NSTextField *ILTFcharm; + IBOutlet NSTextField *ILTFconfusion; + IBOutlet NSTextField *ILTFsleep; + IBOutlet NSTextField *ILTFsilent; + + IBOutlet NSTextField *ILTFflame; + IBOutlet NSTextField *ILTFcold; + IBOutlet NSTextField *ILTFelectoric; + IBOutlet NSTextField *ILTFair; + IBOutlet NSTextField *ILTFwater; + IBOutlet NSTextField *ILTFgas; + IBOutlet NSTextField *ILTFholy; + IBOutlet NSTextField *ILTFdark; + IBOutlet NSTextField *ILTFexplosion; + IBOutlet NSTextField *ILTFblood; + + IBOutlet NSTextField *ILTFrecHP; + IBOutlet NSTextField *ILTFrecHPp; + IBOutlet NSTextField *ILTFrecMP; + IBOutlet NSTextField *ILTFrecMPp; + IBOutlet NSTextField *ILTFcomment; + + IBOutlet NSPopUpButton *ILPUBtype; + + IBOutlet NSTextField *ALTFname; + IBOutlet NSTextField *ALTFrangeA; + IBOutlet NSTextField *ALTFrangeB; + IBOutlet NSTextField *ALTFextend; + IBOutlet NSPopUpButton *ALPUBcost; + IBOutlet NSPopUpButton *ALPUBwType; + IBOutlet NSTextField *ALTFcost; + IBOutlet NSTextField *ALTFcostP; + + IBOutlet NSTextField *ALTFbullet; + IBOutlet NSTextField *ALTFhitCount; + IBOutlet NSTextField *ALTFsuccessRate; + IBOutlet NSTextField *ALTFvigor; + IBOutlet NSTextField *ALTFhitRate; + + IBOutlet NSButton *ALTFtrigger; + IBOutlet NSButton *ALTFmelee; + IBOutlet NSButton *ALTFpass; + IBOutlet NSButton *ALTFdmgExtent; + + IBOutlet NSPopUpButton *ALPUBriku; + IBOutlet NSPopUpButton *ALPUBchu; + IBOutlet NSPopUpButton *ALPUBumi; + IBOutlet NSPopUpButton *ALPUBsora; + + IBOutlet NSTextField *ALTFcSupply; + IBOutlet NSTextField *ALTFcFood; + IBOutlet NSTextField *ALTFcMoney; + IBOutlet NSTextField *ALTFcmd; + IBOutlet NSTextField *ALTFmsg; + + IBOutlet NSTextField *ALTFrate; + IBOutlet NSTextField *ALTFhit; + IBOutlet NSTextField *ALTFatkHit; + + IBOutlet NSPopUpButton *ALPUBtype; + IBOutlet NSPopUpButton *ALPUBseed; + IBOutlet NSPopUpButton *ALPUBsort; + IBOutlet NSTextField *ALTFdmgCount; + IBOutlet NSTextField *ALTFdmgRate; + + IBOutlet NSButton *ALTFcontinuum; + IBOutlet NSButton *ALTFabsolute; + IBOutlet NSButton *ALTFbeam; + IBOutlet NSButton *ALTFnoSizeFix; + + IBOutlet NSPopUpButton *AMbtnA; + IBOutlet NSPopUpButton *AMbtnB; + IBOutlet NSPopUpButton *AMbtnC; + IBOutlet NSPopUpButton *AMbtnD; + + NSMutableArray *commandListMA; + IBOutlet NSArrayController *commandListAC; + IBOutlet NSTableView *commandListTV; + + NSMutableArray *comboListMA; + IBOutlet NSArrayController *comboListAC; + IBOutlet NSTableView *comboListTV; + + IBOutlet NSTextField *RETFblow; + IBOutlet NSTextField *RETFslash; + IBOutlet NSTextField *RETFstub; + IBOutlet NSTextField *RETFarrow; + IBOutlet NSTextField *RETFgun; + IBOutlet NSTextField *RETFshell; + IBOutlet NSTextField *RETFparalysis; + IBOutlet NSTextField *RETFpoison; + IBOutlet NSTextField *RETFcharm; + IBOutlet NSTextField *RETFconfusion; + IBOutlet NSTextField *RETFsleep; + IBOutlet NSTextField *RETFsilent; + + IBOutlet NSTextField *RETFflame; + IBOutlet NSTextField *RETFcold; + IBOutlet NSTextField *RETFelectoric; + IBOutlet NSTextField *RETFair; + IBOutlet NSTextField *RETFwater; + IBOutlet NSTextField *RETFgas; + IBOutlet NSTextField *RETFholy; + IBOutlet NSTextField *RETFdark; + IBOutlet NSTextField *RETFexplosion; + IBOutlet NSTextField *RETFblood; + + UNITCHIP *UCtop[4096]; + + ATTACK *atkTop; + int clickedRowAT; + int SLpbtn; + +} + +-(IBAction)submit:(id)sender; +- (NSMutableArray*)unitChipListMA; + +-(IBAction)saveUCL:(id)sender; +-(IBAction)cancelUCL:(id)sender; + +-(IBAction)mobileUCL:(id)sender; +-(IBAction)skillUCL:(id)sender; +-(IBAction)equiplUCL:(id)sender; + +-(IBAction)skillListBtnUCL:(id)sender; +-(IBAction)attackListBtnlUCL:(id)sender; +-(IBAction)registListBtnlUCL:(id)sender; + +-(IBAction)equipItemSelected:(id)sender; +-(IBAction)insertEquip:(id)sender; +-(IBAction)removeEquip:(id)sender; + +-(IBAction)skillListBtnSubmitUCL:(id)sender; +-(IBAction)attackListBtnSubmitlUCL:(id)sender; +-(IBAction)registListBtnlSubmitUCL:(id)sender; + +-(IBAction)insertSkillUCL:(id)sender; +-(IBAction)removeSkillUCL:(id)sender; + +-(IBAction)UCLPanelEquipListSubmitBtn:(id)sender; +-(IBAction)UCLPanelSkillListSubmitBtn:(id)sender; + +-(IBAction)UCLPanelEquipListOpenBtn:(id)sender; +-(IBAction)UCLPanelSkillListOpenBtn:(id)sender; + +-(IBAction)saveIL:(id)sender; +-(IBAction)canceIL:(id)sender; +-(IBAction)ILregi:(id)sender; +-(IBAction)saveILregi:(id)sender; +-(IBAction)cancelILregi:(id)sender; +-(IBAction)attackIL:(id)sender; + +-(IBAction)insertAttackList:(id)sender; +-(IBAction)removeAttackList:(id)sender; +-(IBAction)insertComboList:(id)sender; +-(IBAction)removeComboList:(id)sender; + +-(IBAction)submitAttackList:(id)sender; + +-(IBAction)insertDamageList:(id)sender; +-(IBAction)removeDamageList:(id)sender; +-(IBAction)insertHitList:(id)sender; +-(IBAction)removeHitList:(id)sender; + +-(IBAction)registUCL:(id)sender; +-(IBAction)registSaveUCL:(id)sender; +-(IBAction)registCancelUCL:(id)sender; + +-(IBAction)attackListTotalSubmit:(id)sender; +-(IBAction)attackListOpenBtn:(id)sender; +-(IBAction)commandListAdd:(id)sender; +-(IBAction)commandListRemove:(id)sender; +-(IBAction)comboListAdd:(id)sender; +-(IBAction)comboListRemove:(id)sender; + +-(IBAction)skillListInsert:(id)sender; +-(IBAction)skillListDelete:(id)sender; + +-(IBAction)SLbuildAdd:(id)sender; +-(IBAction)SLbuildDelete:(id)sender; +-(IBAction)SLbuildSubmit:(id)sender; + +-(IBAction)SLunitAdd:(id)sender; +-(IBAction)SLunitDelete:(id)sender; +-(IBAction)SLunitSubmit:(id)sender; + +-(IBAction)addSubjMark:(id)sender; +-(IBAction)addObjeMark:(id)sender; + +-(void)initFileDirectoryAttack2; +-(void)setTotalDamage2:(int)i row:(int)r; + +@end diff --git a/Awars III/UnitChipList.m b/Awars III/UnitChipList.m new file mode 100755 index 0000000..6d27fdb --- /dev/null +++ b/Awars III/UnitChipList.m @@ -0,0 +1,6500 @@ +// +// UnitChipList.m +// Awars III +// +// Created by Killery on 2012/12/17. +// Copyright (c) 2012年 Killery. All rights reserved. +// + +#import "UnitChipList.h" + +@implementation UnitChipList +- (void)dealloc +{ + [super dealloc]; +} + +- (NSMutableArray*)unitChipListMA{ + return unitChipListMA; +} +-(IBAction)submit:(id)sender{ + [UCLPanel close]; +} + +-(void)awakeFromNib{ + [unitChipListTV setTarget:self]; + [unitChipListTV setDoubleAction:@selector(doubleClickUCL:)]; + + [attackListTV setTarget:self]; + [attackListTV setDoubleAction:@selector(doubleClickAL:)]; + + [equipListTV setTarget:self]; + [equipListTV setDoubleAction:@selector(doubleClickEQ:)]; + + [attackListTV setTarget:self]; + [attackListTV setAction:@selector(ClickAL:)]; + + [skillListTV setTarget:self]; + [skillListTV setAction:@selector(ClickSL:)]; + [skillListTV setDoubleAction:@selector(doubleClickSL:)]; + + [skillListBuildTV setTarget:self]; + [skillListBuildTV setAction:@selector(ClickSLB:)]; + + [skillListUnitTV setTarget:self]; + [skillListUnitTV setAction:@selector(ClickSLU:)]; + + [self addPUBEquipList]; + equipItemMA = [NSMutableArray new]; + attackListMA = [NSMutableArray new]; + damageListMA = [NSMutableArray new]; + hitListMA = [NSMutableArray new]; + commandListMA = [NSMutableArray new]; + comboListMA = [NSMutableArray new]; + skillListMA = [NSMutableArray new]; + skillListBuildMA = [NSMutableArray new]; + skillListUnitMA = [NSMutableArray new]; + +} +-(id)init{ + [super init]; + + if (self) { + UCLtime = [NSTimer + scheduledTimerWithTimeInterval:0.01f + target:self + selector:@selector(EventLoopUCL:) + userInfo:nil + repeats:YES + ]; + [self initFileDirectoryItem]; + [self initItemList]; + [self initFileDirectoryAttackEQ]; + [self initFileDirectory]; + [self initUnitChipList]; + [self initFileDirectoryAttack]; + [self initFileDirectoryCombo]; + [self initTotalDamage]; + [self initOMG]; + [self initSkill]; + UnitChipMax = (int)chipNumb/25+1; + + + } + + return self; +} + +-(void)ClickSL:(id)sender{ + SKLrow = (int)[skillListTV clickedRow]; +} + +-(void)doubleClickSL:(id)sender{ + + if(!UC[clickIndex].S || SKLrow < 0) return; + + Stop = UC[clickIndex].S; + for (int i = 0;i < SKLrow;i++) { + UC[clickIndex].S = UC[clickIndex].S->next; + } + + if(UC[clickIndex].S->type == 1){ + windowPoint.x = [UCLPanelSkill frame].origin.x + 50; + windowPoint.y = [UCLPanelSkill frame].origin.y; + [SLBpanel setFrameOrigin:windowPoint]; + + + [self initskillListBuild]; + + [SLBpanel makeKeyAndOrderFront:nil]; + } + + if(UC[clickIndex].S->type == 2){ + windowPoint.x = [UCLPanelSkill frame].origin.x + 50; + windowPoint.y = [UCLPanelSkill frame].origin.y; + [SLUpanel setFrameOrigin:windowPoint]; + + + [self initskillListUnit]; + + [SLUpanel makeKeyAndOrderFront:nil]; + } + + UC[clickIndex].S = Stop; +} + +-(void)ClickSLB:(id)sender{ + SKLBrow = (int)[skillListBuildTV clickedRow]; +} + +-(void)ClickSLU:(id)sender{ + SKLUrow = (int)[skillListUnitTV clickedRow]; +} + +-(void)initSkill{ + + SKILLLIST skill[] = { + {NULL, @"建設", @"skl1", @"フィールドに建物を建設する", 1, 0, 0}, + {NULL, @"召還", @"skl2", @"フィールドにユニットを召還する", 2, 0, 0}, + {NULL, @"必殺", @"skl3", @"一定の確率で与えるダメージが2倍になる", 2, 0, 0}, + }; + + const int skillNum = 3; + + + SKL = calloc(1, sizeof(SKILL)); + SKLtop = SKL; + + for(int i=0;inext = calloc(1, sizeof(SKILL)); + *SKL->next = skill[i+1]; + } + if(i == 0) SKLtop = SKL; + if(i+1 < skillNum) SKL = SKL->next; + }SKL->next = NULL; + SKL = SKLtop; + + [PUBsl removeAllItems]; + [PUBsl addItemWithTitle:[NSString stringWithFormat:@"スキルリスト"]]; + + SKL = SKLtop; + while(SKL){ + [PUBsl addItemWithTitle:[NSString stringWithFormat:@"%@",SKL->name]]; + SKL = SKL->next; + }SKL = SKLtop; +} + + + + +-(void)initOMG{ + double STRfix; + double VITfix; + double AGIfix; + double DEXfix; + double MENfix; + double INTfix; + double LUKfix; + + double S, V, A, D, M, I; + + for(int i = 0;i < chipNumb;i++){ + STRfix = ( + UC[i].eHandL.STR + + UC[i].eHandR.STR + + UC[i].eHead.STR + + UC[i].eBody.STR + + UC[i].eFoot.STR + + UC[i].eArm.STR) + + UC[i].S_M.STR *( + UC[i].eHandL.pSTR + + UC[i].eHandR.pSTR + + UC[i].eHead.pSTR + + UC[i].eBody.pSTR + + UC[i].eFoot.pSTR + + UC[i].eArm.pSTR + + 0)/100 + ; + + VITfix = ( + UC[i].eHandL.VIT + + UC[i].eHandR.VIT + + UC[i].eHead.VIT + + UC[i].eBody.VIT + + UC[i].eFoot.VIT + + UC[i].eArm.VIT) + + UC[i].S_M.VIT *( + UC[i].eHandL.pVIT + + UC[i].eHandR.pVIT + + UC[i].eHead.pVIT + + UC[i].eBody.pVIT + + UC[i].eFoot.pVIT + + UC[i].eArm.pVIT + + 0)/100 + ; + AGIfix = ( + UC[i].eHandL.AGI + + UC[i].eHandR.AGI + + UC[i].eHead.AGI + + UC[i].eBody.AGI + + UC[i].eFoot.AGI + + UC[i].eArm.AGI) + + UC[i].S_M.AGI *( + UC[i].eHandL.pAGI + + UC[i].eHandR.pAGI + + UC[i].eHead.pAGI + + UC[i].eBody.pAGI + + UC[i].eFoot.pAGI + + UC[i].eArm.pAGI + + 0)/100 + ; + DEXfix = ( + UC[i].eHandL.DEX + + UC[i].eHandR.DEX + + UC[i].eHead.DEX + + UC[i].eBody.DEX + + UC[i].eFoot.DEX + + UC[i].eArm.DEX) + + UC[i].S_M.DEX *( + UC[i].eHandL.pDEX + + UC[i].eHandR.pDEX + + UC[i].eHead.pDEX + + UC[i].eBody.pDEX + + UC[i].eFoot.pDEX + + UC[i].eArm.pDEX + + 0)/100 + ; + MENfix = ( + UC[i].eHandL.MEN + + UC[i].eHandR.MEN + + UC[i].eHead.MEN + + UC[i].eBody.MEN + + UC[i].eFoot.MEN + + UC[i].eArm.MEN) + + UC[i].S_M.MEN *( + UC[i].eHandL.pMEN + + UC[i].eHandR.pMEN + + UC[i].eHead.pMEN + + UC[i].eBody.pMEN + + UC[i].eFoot.pMEN + + UC[i].eArm.pMEN + + 0)/100 + ; + INTfix = ( + UC[i].eHandL.INT + + UC[i].eHandR.INT + + UC[i].eHead.INT + + UC[i].eBody.INT + + UC[i].eFoot.INT + + UC[i].eArm.INT) + + UC[i].S_M.INT *( + UC[i].eHandL.pINT + + UC[i].eHandR.pINT + + UC[i].eHead.pINT + + UC[i].eBody.pINT + + UC[i].eFoot.pINT + + UC[i].eArm.pINT + + 0)/100 + ; + LUKfix = ( + UC[i].eHandL.LUK + + UC[i].eHandR.LUK + + UC[i].eHead.LUK + + UC[i].eBody.LUK + + UC[i].eFoot.LUK + + UC[i].eArm.LUK) + + UC[i].S_M.LUK *( + UC[i].eHandL.pLUK + + UC[i].eHandR.pLUK + + UC[i].eHead.pLUK + + UC[i].eBody.pLUK + + UC[i].eFoot.pLUK + + UC[i].eArm.pLUK + + 0)/100 + ; + + S = UC[i].S_M.STR + STRfix; + V = UC[i].S_M.VIT + VITfix; + A = UC[i].S_M.AGI + AGIfix; + D = UC[i].S_M.DEX + DEXfix; + M = UC[i].S_M.MEN + MENfix; + I = UC[i].S_M.INT + INTfix; + + UC[i].S_M.ATK = (S*5 + D*2 + A)/8; + UC[i].S_M.DEF = (V*5 + M*2 + S)/8; + UC[i].S_M.CAP = (I*4 + D*1 + M*2)/7; + UC[i].S_M.ACU = (D*4 + A*1 + M)/6; + UC[i].S_M.EVA = (A*4 + V*1 + M)/6; + + UC[i].S_M.ATK += 0.5; + UC[i].S_M.DEF += 0.5; + UC[i].S_M.CAP += 0.5; + UC[i].S_M.ACU += 0.5; + UC[i].S_M.EVA += 0.5; + + UC[i].S_M.ATK = floor(UC[i].S_M.ATK); + UC[i].S_M.DEF = floor(UC[i].S_M.DEF); + UC[i].S_M.CAP = floor(UC[i].S_M.CAP); + UC[i].S_M.ACU = floor(UC[i].S_M.ACU); + UC[i].S_M.EVA = floor(UC[i].S_M.EVA); + } + +} + +NSInteger clickIndex = -1; +NSInteger clickIndexAL = -1; +NSInteger clickIndexEQ = -1; +bool InitialFlag; + +-(void)EventLoopUCL:(NSTimer*)time{ + + + double STRfix; + double VITfix; + double AGIfix; + double DEXfix; + double MENfix; + double INTfix; + double LUKfix; + + double S, V, A, D, M, I; + + + STRfix = ( + UC[clickIndex].eHandL.STR + + UC[clickIndex].eHandR.STR + + UC[clickIndex].eHead.STR + + UC[clickIndex].eBody.STR + + UC[clickIndex].eFoot.STR + + UC[clickIndex].eArm.STR) + + UC[clickIndex].S_M.STR *( + UC[clickIndex].eHandL.pSTR + + UC[clickIndex].eHandR.pSTR + + UC[clickIndex].eHead.pSTR + + UC[clickIndex].eBody.pSTR + + UC[clickIndex].eFoot.pSTR + + UC[clickIndex].eArm.pSTR + + 0)/100 + ; + + VITfix = ( + UC[clickIndex].eHandL.VIT + + UC[clickIndex].eHandR.VIT + + UC[clickIndex].eHead.VIT + + UC[clickIndex].eBody.VIT + + UC[clickIndex].eFoot.VIT + + UC[clickIndex].eArm.VIT) + + UC[clickIndex].S_M.VIT *( + UC[clickIndex].eHandL.pVIT + + UC[clickIndex].eHandR.pVIT + + UC[clickIndex].eHead.pVIT + + UC[clickIndex].eBody.pVIT + + UC[clickIndex].eFoot.pVIT + + UC[clickIndex].eArm.pVIT + + 0)/100 + ; + AGIfix = ( + UC[clickIndex].eHandL.AGI + + UC[clickIndex].eHandR.AGI + + UC[clickIndex].eHead.AGI + + UC[clickIndex].eBody.AGI + + UC[clickIndex].eFoot.AGI + + UC[clickIndex].eArm.AGI) + + UC[clickIndex].S_M.AGI *( + UC[clickIndex].eHandL.pAGI + + UC[clickIndex].eHandR.pAGI + + UC[clickIndex].eHead.pAGI + + UC[clickIndex].eBody.pAGI + + UC[clickIndex].eFoot.pAGI + + UC[clickIndex].eArm.pAGI + + 0)/100 + ; + DEXfix = ( + UC[clickIndex].eHandL.DEX + + UC[clickIndex].eHandR.DEX + + UC[clickIndex].eHead.DEX + + UC[clickIndex].eBody.DEX + + UC[clickIndex].eFoot.DEX + + UC[clickIndex].eArm.DEX) + + UC[clickIndex].S_M.DEX *( + UC[clickIndex].eHandL.pDEX + + UC[clickIndex].eHandR.pDEX + + UC[clickIndex].eHead.pDEX + + UC[clickIndex].eBody.pDEX + + UC[clickIndex].eFoot.pDEX + + UC[clickIndex].eArm.pDEX + + 0)/100 + ; + MENfix = ( + UC[clickIndex].eHandL.MEN + + UC[clickIndex].eHandR.MEN + + UC[clickIndex].eHead.MEN + + UC[clickIndex].eBody.MEN + + UC[clickIndex].eFoot.MEN + + UC[clickIndex].eArm.MEN) + + UC[clickIndex].S_M.MEN *( + UC[clickIndex].eHandL.pMEN + + UC[clickIndex].eHandR.pMEN + + UC[clickIndex].eHead.pMEN + + UC[clickIndex].eBody.pMEN + + UC[clickIndex].eFoot.pMEN + + UC[clickIndex].eArm.pMEN + + 0)/100 + ; + INTfix = ( + UC[clickIndex].eHandL.INT + + UC[clickIndex].eHandR.INT + + UC[clickIndex].eHead.INT + + UC[clickIndex].eBody.INT + + UC[clickIndex].eFoot.INT + + UC[clickIndex].eArm.INT) + + UC[clickIndex].S_M.INT *( + UC[clickIndex].eHandL.pINT + + UC[clickIndex].eHandR.pINT + + UC[clickIndex].eHead.pINT + + UC[clickIndex].eBody.pINT + + UC[clickIndex].eFoot.pINT + + UC[clickIndex].eArm.pINT + + 0)/100 + ; + LUKfix = ( + UC[clickIndex].eHandL.LUK + + UC[clickIndex].eHandR.LUK + + UC[clickIndex].eHead.LUK + + UC[clickIndex].eBody.LUK + + UC[clickIndex].eFoot.LUK + + UC[clickIndex].eArm.LUK) + + UC[clickIndex].S_M.LUK *( + UC[clickIndex].eHandL.pLUK + + UC[clickIndex].eHandR.pLUK + + UC[clickIndex].eHead.pLUK + + UC[clickIndex].eBody.pLUK + + UC[clickIndex].eFoot.pLUK + + UC[clickIndex].eArm.pLUK + + 0)/100 + ; + + S = [TFstr intValue] + STRfix; + V = [TFvit intValue] + VITfix; + A = [TFagi intValue] + AGIfix; + D = [TFdex intValue] + DEXfix; + M = [TFmen intValue] + MENfix; + I = [TFint intValue] + INTfix; + + UC[clickIndex].S_M.ATK = (S*5 + D*2 + A)/8; + UC[clickIndex].S_M.DEF = (V*5 + M*2 + S)/8; + UC[clickIndex].S_M.CAP = (I*4 + D*1 + M*2)/7; + UC[clickIndex].S_M.ACU = (D*4 + A*1 + M)/6; + UC[clickIndex].S_M.EVA = (A*4 + A*1 + M)/6; + + UC[clickIndex].S_M.ATK += 0.5; + UC[clickIndex].S_M.DEF += 0.5; + UC[clickIndex].S_M.CAP += 0.5; + UC[clickIndex].S_M.ACU += 0.5; + UC[clickIndex].S_M.EVA += 0.5; + + UC[clickIndex].S_M.ATK = floor(UC[clickIndex].S_M.ATK); + UC[clickIndex].S_M.DEF = floor(UC[clickIndex].S_M.DEF); + UC[clickIndex].S_M.CAP = floor(UC[clickIndex].S_M.CAP); + UC[clickIndex].S_M.ACU = floor(UC[clickIndex].S_M.ACU); + UC[clickIndex].S_M.EVA = floor(UC[clickIndex].S_M.EVA); + + + [TFbp setStringValue:[NSString stringWithFormat:@"BP %g", (floor)(UC[clickIndex].S_M.BP)]]; + [TFatk setStringValue:[NSString stringWithFormat:@"攻撃力 %g", (floor)(UC[clickIndex].S_M.ATK)]]; + [TFdef setStringValue:[NSString stringWithFormat:@"防御力 %g", (floor)(UC[clickIndex].S_M.DEF)]]; + [TFcap setStringValue:[NSString stringWithFormat:@"演算力 %g", (floor)(UC[clickIndex].S_M.CAP)]]; + [TFacu setStringValue:[NSString stringWithFormat:@"命中値 %g", (floor)(UC[clickIndex].S_M.ACU)]]; + [TFeva setStringValue:[NSString stringWithFormat:@"回避値 %g", (floor)(UC[clickIndex].S_M.EVA)]]; + + + + long sup; + if(SKLBrow == -1 || [skillListBuildMA count] == 0){} + else{ + + Stop = UC[clickIndex].S; + for(int i = 0;i< SKLrow;i++){ + UC[clickIndex].S = UC[clickIndex].S->next; + } + + sup = [[skillListBuildMA objectAtIndex:SKLBrow] valueForKeyPath:@"sel"]; + sup = sup>>8 & 0xffff; + UC[clickIndex].S->list[SKLBrow] = (int)sup+1; + [skillListBuildAC setValue:[NSString stringWithFormat:@"資%d食%d金%d", + BC[sup].Csupply, BC[sup].Cfood, BC[sup].Cmoney] forKeyPath:@"selection.manko"]; + + UC[clickIndex].S = Stop; + } + + long oops; + if(SKLUrow == -1 || [skillListUnitMA count] == 0){} + else{ + + Stop = UC[clickIndex].S; + for(int i = 0;i< SKLrow;i++){ + UC[clickIndex].S = UC[clickIndex].S->next; + } + + oops = [[skillListUnitMA objectAtIndex:SKLUrow] valueForKeyPath:@"sel"]; + oops = oops>>8 & 0xffff; + UC[clickIndex].S->list[SKLUrow] = (int)oops+1; + oops = [[[skillListUnitMA objectAtIndex:SKLUrow] valueForKeyPath:@"MP"] intValue]; + //oops = oops>>8 & 0xffff; + UC[clickIndex].S->cost[SKLUrow] = (int)oops; + + UC[clickIndex].S = Stop; + } + + +} + +-(void)setTotalDamage:(int)index row:(int)row{ + + ATTACK *Atop; + Atop = UC[index].A; + if(!UC[index].A) return; + for (int i=0; i < row;i++) { + if(UC[index].A->next != NULL) UC[index].A = UC[index].A->next; + } + DAMAGE *Dtop; + Dtop = UC[index].A->D; + UC[index].A->totalD = 0; + UC[index].A->bulletC = UC[index].A->bullet; + while (UC[index].A->D != NULL) { + if(UC[index].A->D->type == 0) UC[index].A->totalD += UC[index].A->D->count + UC[index].A->D->pCount/100*UC[index].S_M.ATK; + if(UC[index].A->D->type == 1) UC[index].A->totalD += UC[index].A->D->count + UC[index].A->D->pCount/100*UC[index].S_M.DEF; + if(UC[index].A->D->type == 2) UC[index].A->totalD += UC[index].A->D->count + UC[index].A->D->pCount/100*UC[index].S_M.ACU; + if(UC[index].A->D->type == 3) UC[index].A->totalD += UC[index].A->D->count + UC[index].A->D->pCount/100*UC[index].S_M.EVA; + if(UC[index].A->D->type == 4) UC[index].A->totalD += UC[index].A->D->count + UC[index].A->D->pCount/100*UC[index].S_M.CAP; + UC[index].A->D = UC[index].A->D->next; + } + UC[index].A->totalD = floor(UC[index].A->totalD + 0.5); + UC[index].A->D = Dtop; + UC[index].A = Atop; +} + +-(void)setTotalDamage2:(int)index row:(int)row{ + + ATTACK *Atop; + Atop = LC[index].A; + if(!LC[index].A) return; + for (int i=0; i < row;i++) { + if(LC[index].A->next != NULL) LC[index].A = LC[index].A->next; + } + DAMAGE *Dtop; + Dtop = LC[index].A->D; + LC[index].A->totalD = 0; + LC[index].A->bulletC = LC[index].A->bullet; + while (LC[index].A->D != NULL) { + LC[index].A->totalD += LC[index].A->D->count; + LC[index].A->D = LC[index].A->D->next; + } + LC[index].A->totalD = floor(LC[index].A->totalD + 0.5); + LC[index].A->D = Dtop; + LC[index].A = Atop; +} + + +-(void)setTotalDamageEQ:(int)index row:(int)row{ + + ATTACK *Atop; + Atop = EQ[index].A; + if(!EQ[index].A) return; + for (int i=0; i < row;i++) { + if(EQ[index].A->next != NULL) EQ[index].A = EQ[index].A->next; + } + DAMAGE *Dtop; + Dtop = EQ[index].A->D; + EQ[index].A->totalD = 0; + EQ[index].A->bulletC = EQ[index].A->bullet; + while (EQ[index].A->D != NULL) { + if(EQ[index].A->D->type == 0) EQ[index].A->totalD += EQ[index].A->D->count; + if(EQ[index].A->D->type == 1) EQ[index].A->totalD += EQ[index].A->D->count; + if(EQ[index].A->D->type == 2) EQ[index].A->totalD += EQ[index].A->D->count; + if(EQ[index].A->D->type == 3) EQ[index].A->totalD += EQ[index].A->D->count; + if(EQ[index].A->D->type == 4) EQ[index].A->totalD += EQ[index].A->D->count; + EQ[index].A->D = EQ[index].A->D->next; + } + EQ[index].A->totalD = floor(EQ[index].A->totalD + 0.5); + EQ[index].A->D = Dtop; + EQ[index].A = Atop; +} + + +-(void)addPUBEquipList{ + + [PUPtEquip removeAllItems]; + + [PUPtEquip addItemWithTitle:@"装備リスト"]; + for (int i = 0; i < eItemNum; i++) { + [PUPtEquip addItemWithTitle:EQ[i].name]; + } +} + + +-(void)initSkillList{ + [self willChangeValueForKey:@"skillListMA"]; + [skillListMA removeAllObjects]; + [self didChangeValueForKey:@"skillListMA"]; + + + SKILL *SKtop; + SKtop = UC[clickIndex].S; + while (UC[clickIndex].S) { + NSMutableDictionary* dict = [NSMutableDictionary new]; + + SKL = SKLtop; + for(int i = 1;i < UC[clickIndex].S->type;i++){ + SKL = SKL->next; + } + [dict setValue:[NSString stringWithFormat:@"%@", SKL->name] forKey:@"name"]; + SKL = SKLtop; + + [self willChangeValueForKey:@"skillListMA"]; + [skillListMA addObject:dict]; + [self didChangeValueForKey:@"skillListMA"]; + + UC[clickIndex].S = UC[clickIndex].S->next; + }UC[clickIndex].S = SKtop; + +} + +-(void)initskillListBuild{ + [self willChangeValueForKey:@"skillListBuildMA"]; + [skillListBuildMA removeAllObjects]; + [self didChangeValueForKey:@"skillListBuildMA"]; + + for(int i = 0;UC[clickIndex].S->list[i] > 0;i++) { + NSMutableDictionary* dict = [NSMutableDictionary new]; + + NSMutableArray *Array = [NSMutableArray array]; + + for(int k = 0;klist[i] - 1; + val = val<<8 | (0xc7 & 0xff); + [dict setValue:val forKey:@"sel"]; + + [self willChangeValueForKey:@"skillListBuildMA"]; + [skillListBuildMA addObject:dict]; + [self didChangeValueForKey:@"skillListBuildMA"]; + } + + +} + +-(void)initskillListUnit{ + [self willChangeValueForKey:@"skillListUnitMA"]; + [skillListUnitMA removeAllObjects]; + [self didChangeValueForKey:@"skillListUnitMA"]; + + + for(int i = 0;UC[clickIndex].S->list[i] > 0;i++) { + NSMutableDictionary* dict = [NSMutableDictionary new]; + + NSMutableArray *Array = [NSMutableArray array]; + + for(int k = 0;kcost[i]] forKey:@"MP"]; + + int val; + val = UC[clickIndex].S->list[i] - 1; + val = val<<8 | (0xc7 & 0xff); + [dict setValue:val forKey:@"sel"]; + + [self willChangeValueForKey:@"skillListUnitMA"]; + [skillListUnitMA addObject:dict]; + [self didChangeValueForKey:@"skillListUnitMA"]; + } + +} + + +-(void)initEquip{ + [self willChangeValueForKey:@"equipItemMA"]; + [equipItemMA removeAllObjects]; + [self didChangeValueForKey:@"equipItemMA"]; + eHeadFlag = false; + eBodyFlag = false; + eFootFlag = false; + eArmFlag = false; + eHandRFlag = false; + eHandLFlag = false; + + if(UC[clickIndex].eHandR.name != NULL) { + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].eHandR.name] forKey:@"name"]; + UC[clickIndex].eHandRflag = true; + [self willChangeValueForKey:@"equipItemMA"]; + [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1]; + [self didChangeValueForKey:@"equipItemMA"]; + } + if(UC[clickIndex].eHandL.name != NULL) { + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].eHandL.name] forKey:@"name"]; + UC[clickIndex].eHandLflag = true; + [self willChangeValueForKey:@"equipItemMA"]; + [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1]; + [self didChangeValueForKey:@"equipItemMA"]; + } + if(UC[clickIndex].eHead.name != NULL) { + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].eHead.name] forKey:@"name"]; + eHeadFlag = true; + [self willChangeValueForKey:@"equipItemMA"]; + [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1]; + [self didChangeValueForKey:@"equipItemMA"]; + } + if(UC[clickIndex].eBody.name != NULL) { + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].eBody.name] forKey:@"name"]; + eBodyFlag = true; + [self willChangeValueForKey:@"equipItemMA"]; + [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1]; + [self didChangeValueForKey:@"equipItemMA"]; + } + if(UC[clickIndex].eFoot.name != NULL) { + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].eFoot.name] forKey:@"name"]; + eFootFlag = true; + [self willChangeValueForKey:@"equipItemMA"]; + [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1]; + [self didChangeValueForKey:@"equipItemMA"]; + } + if(UC[clickIndex].eArm.name != NULL) { + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].eArm.name] forKey:@"name"]; + eArmFlag = true; + [self willChangeValueForKey:@"equipItemMA"]; + [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1]; + [self didChangeValueForKey:@"equipItemMA"]; + } + + + if(UC[clickIndex].eHandL.nameID){ + for(int j = 0;j < eItemNum;j++){ + if([UC[clickIndex].eHandL.nameID isEqualToString:EQ[j].nameID]){ + UC[clickIndex].eHandL = EQ[j]; + UC[clickIndex].eHandL.A = EQ[j].A; + } + } + } + + if(UC[clickIndex].eHandR.nameID){ + for(int j = 0;j < eItemNum;j++){ + if([UC[clickIndex].eHandR.nameID isEqualToString:EQ[j].nameID]){ + UC[clickIndex].eHandR = EQ[j]; + UC[clickIndex].eHandR.A = EQ[j].A; + } + } + } + + if(UC[clickIndex].eHead.nameID){ + for(int j = 0;j < eItemNum;j++){ + if([UC[clickIndex].eHead.nameID isEqualToString:EQ[j].nameID]){ + UC[clickIndex].eHead = EQ[j]; + } + } + } + + if(UC[clickIndex].eBody.nameID){ + for(int j = 0;j < eItemNum;j++){ + if([UC[clickIndex].eBody.nameID isEqualToString:EQ[j].nameID]){ + UC[clickIndex].eBody = EQ[j]; + } + } + } + + if(UC[clickIndex].eFoot.nameID){ + for(int j = 0;j < eItemNum;j++){ + if([UC[clickIndex].eFoot.nameID isEqualToString:EQ[j].nameID]){ + UC[clickIndex].eFoot = EQ[j]; + } + } + } + + if(UC[clickIndex].eArm.nameID){ + for(int j = 0;j < eItemNum;j++){ + if([UC[clickIndex].eArm.nameID isEqualToString:EQ[j].nameID]){ + UC[clickIndex].eArm = EQ[j]; + } + } + } +} + +-(IBAction)equipItemSelected:(id)sender{ + pubEquipItemIndex = [PUPtEquip indexOfSelectedItem]; + pubEquipItemIndex -= 1; +} + +bool eHeadFlag = false; +bool eBodyFlag = false; +bool eFootFlag = false; +bool eArmFlag = false; +bool eHandRFlag = false; +bool eHandLFlag = false; + +-(IBAction)insertEquip:(id)sender{ + + if(pubEquipItemIndex >= 0){ + + if(EQ[pubEquipItemIndex].type == 2){ + if(UC[clickIndex].eHandLflag && UC[clickIndex].eHandRflag) return; + if(UC[clickIndex].eHandRflag) { + UC[clickIndex].eHandLflag = true; + UC[clickIndex].eHandL = EQ[pubEquipItemIndex]; + }else{ + UC[clickIndex].eHandR = EQ[pubEquipItemIndex]; + UC[clickIndex].eHandRflag = true; + } + }else if(EQ[pubEquipItemIndex].type == 3){ + if(UC[clickIndex].eHeadflag) return; + UC[clickIndex].eHead = EQ[pubEquipItemIndex]; + UC[clickIndex].eHeadflag = true; + }else if(EQ[pubEquipItemIndex].type == 4){ + if(UC[clickIndex].eBodyflag) return; + UC[clickIndex].eBody = EQ[pubEquipItemIndex]; + UC[clickIndex].eBodyflag = true; + }else if(EQ[pubEquipItemIndex].type == 5){ + if(UC[clickIndex].eFootflag) return; + UC[clickIndex].eFoot = EQ[pubEquipItemIndex]; + UC[clickIndex].eFootflag = true; + }else if(EQ[pubEquipItemIndex].type == 6){ + if(UC[clickIndex].eArmflag) return; + UC[clickIndex].eArm = EQ[pubEquipItemIndex]; + UC[clickIndex].eArmflag = true; + }else if(EQ[pubEquipItemIndex].type == 7){ + if(!UC[clickIndex].eHandLflag && !UC[clickIndex].eHandRflag){ + + UC[clickIndex].eHandLflag = true; + UC[clickIndex].eHandRflag = true; + UC[clickIndex].eHandR = EQ[pubEquipItemIndex]; + }else + return; + } + + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"%@", EQ[pubEquipItemIndex].name] forKey:@"name"]; + [self willChangeValueForKey:@"equipItemMA"]; + [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1]; + [self didChangeValueForKey:@"equipItemMA"]; + } +} +-(IBAction)removeEquip:(id)sender{ + + + if([equipItemTV selectedRow] >= 0){ + + if([[[equipItemMA objectAtIndex:[equipItemTV selectedRow]] valueForKey:@"name"] isEqualToString:UC[clickIndex].eHandL.name]){ + + if(UC[clickIndex].eHandLflag){ + if(UC[clickIndex].eHandL.type == 7){ + UC[clickIndex].eHandR = nilEquip; + UC[clickIndex].eHandRflag = false; + } + UC[clickIndex].eHandL = nilEquip; + UC[clickIndex].eHandLflag = false; + } + + } + else if([[[equipItemMA objectAtIndex:[equipItemTV selectedRow]] valueForKey:@"name"] isEqualToString:UC[clickIndex].eHandR.name]){ + if(UC[clickIndex].eHandRflag){ + if(UC[clickIndex].eHandR.type == 7){ + UC[clickIndex].eHandL = nilEquip; + UC[clickIndex].eHandLflag = false; + } + UC[clickIndex].eHandR = nilEquip; + UC[clickIndex].eHandRflag = false; + } + } + else if([[[equipItemMA objectAtIndex:[equipItemTV selectedRow]] valueForKey:@"name"] isEqualToString:UC[clickIndex].eHead.name]){ + UC[clickIndex].eHead = nilEquip; + UC[clickIndex].eHeadflag = false; + } + else if([[[equipItemMA objectAtIndex:[equipItemTV selectedRow]] valueForKey:@"name"] isEqualToString:UC[clickIndex].eBody.name]){ + UC[clickIndex].eBody = nilEquip; + UC[clickIndex].eBodyflag = false; + } + else if([[[equipItemMA objectAtIndex:[equipItemTV selectedRow]] valueForKey:@"name"] isEqualToString:UC[clickIndex].eFoot.name]){ + UC[clickIndex].eFoot = nilEquip; + UC[clickIndex].eFootflag = false; + } + else if([[[equipItemMA objectAtIndex:[equipItemTV selectedRow]] valueForKey:@"name"] isEqualToString:UC[clickIndex].eArm.name]){ + UC[clickIndex].eArm = nilEquip; + UC[clickIndex].eArmflag = false; + } + + + + [self willChangeValueForKey:@"equipItemMA"]; + [equipItemMA removeObjectAtIndex:[equipItemTV selectedRow]]; + [self didChangeValueForKey:@"equipItemMA"]; + } +} + + +-(void)doubleClickEQ:(id)sender{ + clickIndexEQ = [equipListTV clickedRow]; + + if(EQ[clickIndexEQ].name) [ILTFname setStringValue:EQ[clickIndexEQ].name]; + else [ILTFname setStringValue:@""]; + if(EQ[clickIndexEQ].nameRecognition) [ILTFnameR setStringValue:EQ[clickIndexEQ].nameRecognition]; + else [ILTFnameR setStringValue:@""]; + if(EQ[clickIndexEQ].nameID) [ILTFnameID setStringValue:EQ[clickIndexEQ].nameID]; + else [ILTFnameID setStringValue:@""]; + [ILTFweight setDoubleValue:EQ[clickIndexEQ].Weight]; + [ILTFprice setDoubleValue:EQ[clickIndexEQ].price]; + [ILTFMOV setIntValue:EQ[clickIndexEQ].MOV]; + [ILTFHP setDoubleValue:EQ[clickIndexEQ].HP]; + [ILTFMP setDoubleValue:EQ[clickIndexEQ].MP]; + [ILTFAP setDoubleValue:EQ[clickIndexEQ].AP]; + [ILTFWT setDoubleValue:EQ[clickIndexEQ].WT]; + + [ILTFSTR setDoubleValue:EQ[clickIndexEQ].STR]; + [ILTFVIT setDoubleValue:EQ[clickIndexEQ].VIT]; + [ILTFAGI setDoubleValue:EQ[clickIndexEQ].AGI]; + [ILTFDEX setDoubleValue:EQ[clickIndexEQ].DEX]; + [ILTFMEN setDoubleValue:EQ[clickIndexEQ].MEN]; + [ILTFINT setDoubleValue:EQ[clickIndexEQ].INT]; + [ILTFLUK setDoubleValue:EQ[clickIndexEQ].LUK]; + + [ILTFpSTR setDoubleValue:EQ[clickIndexEQ].pSTR]; + [ILTFpVIT setDoubleValue:EQ[clickIndexEQ].pVIT]; + [ILTFpAGI setDoubleValue:EQ[clickIndexEQ].pAGI]; + [ILTFpDEX setDoubleValue:EQ[clickIndexEQ].pDEX]; + [ILTFpMEN setDoubleValue:EQ[clickIndexEQ].pMEN]; + [ILTFpINT setDoubleValue:EQ[clickIndexEQ].pINT]; + [ILTFpLUK setDoubleValue:EQ[clickIndexEQ].pLUK]; + + [ILTFblow setIntValue:EQ[clickIndexEQ].R.blow]; + [ILTFslash setIntValue:EQ[clickIndexEQ].R.slash]; + [ILTFstub setIntValue:EQ[clickIndexEQ].R.stub]; + [ILTFarrow setIntValue:EQ[clickIndexEQ].R.arrow]; + [ILTFgun setIntValue:EQ[clickIndexEQ].R.gun]; + [ILTFshell setIntValue:EQ[clickIndexEQ].R.shell]; + [ILTFparalysis setIntValue:EQ[clickIndexEQ].R.paralysis]; + [ILTFpoison setIntValue:EQ[clickIndexEQ].R.poison]; + [ILTFcharm setIntValue:EQ[clickIndexEQ].R.charm]; + [ILTFconfusion setIntValue:EQ[clickIndexEQ].R.confusion]; + [ILTFsleep setIntValue:EQ[clickIndexEQ].R.sleep]; + [ILTFsilent setIntValue:EQ[clickIndexEQ].R.silent]; + + [ILTFflame setIntValue:EQ[clickIndexEQ].R.flame]; + [ILTFcold setIntValue:EQ[clickIndexEQ].R.cold]; + [ILTFelectoric setIntValue:EQ[clickIndexEQ].R.electoric]; + [ILTFair setIntValue:EQ[clickIndexEQ].R.air]; + [ILTFwater setIntValue:EQ[clickIndexEQ].R.water]; + [ILTFgas setIntValue:EQ[clickIndexEQ].R.gas]; + [ILTFholy setIntValue:EQ[clickIndexEQ].R.holy]; + [ILTFdark setIntValue:EQ[clickIndexEQ].R.dark]; + [ILTFexplosion setIntValue:EQ[clickIndexEQ].R.explosion]; + [ILTFblood setIntValue:EQ[clickIndexEQ].R.blood]; + + [ILTFrecHP setIntValue:EQ[clickIndexEQ].recHP]; + [ILTFrecHPp setIntValue:EQ[clickIndexEQ].recpHP]; + [ILTFrecMP setIntValue:EQ[clickIndexEQ].recMP]; + [ILTFrecMPp setIntValue:EQ[clickIndexEQ].recpMP]; + if(EQ[clickIndexEQ].comment) [ILTFcomment setStringValue:EQ[clickIndexEQ].comment]; + else [ILTFcomment setStringValue:@""]; + + [ILPUBtype selectItemAtIndex:EQ[clickIndexEQ].type]; + + UCLDpoint.x = [UCLPanelEquipList frame].origin.x + 0; + UCLDpoint.y = [UCLPanelEquipList frame].origin.y + 0; + [UCLPanelEquipDetail setFrameOrigin:UCLDpoint]; + [UCLPanelEquipDetail makeKeyAndOrderFront:nil]; +} + +-(IBAction)saveIL:(id)sender{ + + EQ[clickIndexEQ].name = [[ILTFname stringValue] retain]; + EQ[clickIndexEQ].nameRecognition = [[ILTFnameR stringValue] retain]; + EQ[clickIndexEQ].nameID = [[ILTFnameID stringValue] retain]; + + EQ[clickIndexEQ].Weight = [ILTFweight doubleValue]; + EQ[clickIndexEQ].price = [ILTFprice doubleValue]; + EQ[clickIndexEQ].MOV = [ILTFMOV intValue]; + EQ[clickIndexEQ].HP = [ILTFHP doubleValue]; + EQ[clickIndexEQ].MP = [ILTFMP doubleValue]; + EQ[clickIndexEQ].AP = [ILTFAP doubleValue]; + EQ[clickIndexEQ].WT = [ILTFWT doubleValue]; + + EQ[clickIndexEQ].STR = [ILTFSTR doubleValue]; + EQ[clickIndexEQ].VIT = [ILTFVIT doubleValue]; + EQ[clickIndexEQ].AGI = [ILTFAGI doubleValue]; + EQ[clickIndexEQ].DEX = [ILTFDEX doubleValue]; + EQ[clickIndexEQ].MEN = [ILTFMEN doubleValue]; + EQ[clickIndexEQ].INT = [ILTFINT doubleValue]; + EQ[clickIndexEQ].LUK = [ILTFLUK doubleValue]; + + EQ[clickIndexEQ].pSTR = [ILTFpSTR doubleValue]; + EQ[clickIndexEQ].pVIT = [ILTFpVIT doubleValue]; + EQ[clickIndexEQ].pAGI = [ILTFpAGI doubleValue]; + EQ[clickIndexEQ].pDEX = [ILTFpDEX doubleValue]; + EQ[clickIndexEQ].pMEN = [ILTFpMEN doubleValue]; + EQ[clickIndexEQ].pINT = [ILTFpINT doubleValue]; + EQ[clickIndexEQ].pLUK = [ILTFpLUK doubleValue]; + + EQ[clickIndexEQ].R.blow = [ILTFblow intValue]; + EQ[clickIndexEQ].R.slash = [ILTFslash intValue]; + EQ[clickIndexEQ].R.stub = [ILTFstub intValue]; + EQ[clickIndexEQ].R.arrow = [ILTFarrow intValue]; + EQ[clickIndexEQ].R.gun = [ILTFgun intValue]; + EQ[clickIndexEQ].R.shell = [ILTFshell intValue]; + EQ[clickIndexEQ].R.paralysis = [ILTFparalysis intValue]; + EQ[clickIndexEQ].R.poison = [ILTFpoison intValue]; + EQ[clickIndexEQ].R.charm = [ILTFcharm intValue]; + EQ[clickIndexEQ].R.confusion = [ILTFconfusion intValue]; + EQ[clickIndexEQ].R.sleep = [ILTFsleep intValue]; + EQ[clickIndexEQ].R.silent = [ILTFsilent intValue]; + + EQ[clickIndexEQ].R.flame = [ILTFflame intValue]; + EQ[clickIndexEQ].R.cold = [ILTFcold intValue]; + EQ[clickIndexEQ].R.electoric = [ILTFelectoric intValue]; + EQ[clickIndexEQ].R.air = [ILTFair intValue]; + EQ[clickIndexEQ].R.water = [ILTFwater intValue]; + EQ[clickIndexEQ].R.gas = [ILTFgas intValue]; + EQ[clickIndexEQ].R.holy = [ILTFholy intValue]; + EQ[clickIndexEQ].R.dark = [ILTFdark intValue]; + EQ[clickIndexEQ].R.explosion = [ILTFexplosion intValue]; + EQ[clickIndexEQ].R.blood = [ILTFblood intValue]; + + EQ[clickIndexEQ].recHP = [ILTFrecHP intValue]; + EQ[clickIndexEQ].recpHP = [ILTFrecHPp intValue]; + EQ[clickIndexEQ].recMP = [ILTFrecMP intValue]; + EQ[clickIndexEQ].recpMP = [ILTFrecMPp intValue]; + EQ[clickIndexEQ].comment = [[ILTFcomment stringValue] retain]; + + EQ[clickIndexEQ].type = (int)[ILPUBtype indexOfSelectedItem]; + + [equipListAC setValue:[NSString stringWithFormat:@"%@", EQ[clickIndexEQ].name] forKeyPath:@"selection.name"]; + + NSString *str = @""; + + if(EQ[clickIndexEQ].HP != 0) + str = [str stringByAppendingFormat:@"HP %d ", (int)EQ[clickIndexEQ].HP]; + if(EQ[clickIndexEQ].MP != 0) + str = [str stringByAppendingFormat:@"MP %d ", (int)EQ[clickIndexEQ].MP]; + if(EQ[clickIndexEQ].STR != 0) + str = [str stringByAppendingFormat:@"STR %d ", (int)EQ[clickIndexEQ].STR]; + if(EQ[clickIndexEQ].VIT != 0) + str = [str stringByAppendingFormat:@"VIT %d ", (int)EQ[clickIndexEQ].VIT]; + if(EQ[clickIndexEQ].AGI != 0) + str = [str stringByAppendingFormat:@"AGI %d ", (int)EQ[clickIndexEQ].AGI]; + if(EQ[clickIndexEQ].DEX != 0) + str = [str stringByAppendingFormat:@"DEX %d ", (int)EQ[clickIndexEQ].DEX]; + if(EQ[clickIndexEQ].MEN != 0) + str = [str stringByAppendingFormat:@"MEN %d ", (int)EQ[clickIndexEQ].MEN]; + if(EQ[clickIndexEQ].INT != 0) + str = [str stringByAppendingFormat:@"INT %d ", (int)EQ[clickIndexEQ].INT]; + if(EQ[clickIndexEQ].LUK != 0) + str = [str stringByAppendingFormat:@"LUK %d ", (int)EQ[clickIndexEQ].LUK]; + if(EQ[clickIndexEQ].Weight != 0) + str = [str stringByAppendingFormat:@"重さ %d ", (int)EQ[clickIndexEQ].Weight]; + + [equipListAC setValue:[NSString stringWithFormat:@"%@", str] forKeyPath:@"selection.memo"]; + + [self saveEquip]; + [UCLPanelEquipDetail close]; +} + +-(void)saveEquip{ + + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + for (int i=0; inext; + } + + [ALTFname setStringValue:EQ[clickIndexEQ].A->name]; + [ALTFrangeA setIntValue:EQ[clickIndexEQ].A->rangeA]; + [ALTFrangeB setIntValue:EQ[clickIndexEQ].A->rangeB]; + [ALTFextend setIntValue:EQ[clickIndexEQ].A->extent]; + + [ALTFtrigger setIntValue:EQ[clickIndexEQ].A->trig]; + [ALTFmelee setIntValue:EQ[clickIndexEQ].A->melee]; + [ALTFpass setIntValue:EQ[clickIndexEQ].A->P]; + [ALTFdmgExtent setIntValue:EQ[clickIndexEQ].A->dmgExtend]; + [ALPUBwType selectItemAtIndex:EQ[clickIndexEQ].A->type]; + + [ALPUBtype removeAllItems]; + [ALPUBtype addItemWithTitle:@"攻撃力"]; + [ALPUBtype addItemWithTitle:@"防御力"]; + [ALPUBtype addItemWithTitle:@"命中値"]; + [ALPUBtype addItemWithTitle:@"回避値"]; + [ALPUBtype addItemWithTitle:@"演算力"]; + [ALPUBtype addItemWithTitle:@"無修正"]; + + [ALPUBcost removeAllItems]; + [ALPUBcost addItemWithTitle:@"MP"]; + [ALPUBcost addItemWithTitle:@"AP"]; + [ALPUBcost addItemWithTitle:@"HP"]; + [ALPUBcost selectItemAtIndex:EQ[clickIndexEQ].A->costType]; + if(EQ[clickIndexEQ].A->costType == 0){ + [ALTFcost setIntValue:EQ[clickIndexEQ].A->MP]; + [ALTFcostP setIntValue:EQ[clickIndexEQ].A->pMP]; + }else if(EQ[clickIndexEQ].A->costType == 1){ + [ALTFcost setIntValue:EQ[clickIndexEQ].A->AP]; + [ALTFcostP setIntValue:EQ[clickIndexEQ].A->pAP]; + }else if(EQ[clickIndexEQ].A->costType == 2){ + [ALTFcost setIntValue:EQ[clickIndexEQ].A->HP]; + [ALTFcostP setIntValue:EQ[clickIndexEQ].A->pHP]; + } + + [ALTFbullet setIntValue:EQ[clickIndexEQ].A->bullet]; + [ALTFhitCount setIntValue:EQ[clickIndexEQ].A->hitCount]; + [ALTFsuccessRate setIntValue:EQ[clickIndexEQ].A->successRate]; + [ALTFvigor setIntValue:EQ[clickIndexEQ].A->vigor]; + [ALTFhitRate setIntValue:EQ[clickIndexEQ].A->hitPercent]; + + [ALPUBriku selectItemAtIndex:EQ[clickIndexEQ].A->riku]; + [ALPUBchu selectItemAtIndex:EQ[clickIndexEQ].A->chu]; + [ALPUBumi selectItemAtIndex:EQ[clickIndexEQ].A->umi]; + [ALPUBsora selectItemAtIndex:EQ[clickIndexEQ].A->sora]; + + [ALTFcSupply setIntValue:EQ[clickIndexEQ].A->cSupply]; + [ALTFcFood setIntValue:EQ[clickIndexEQ].A->cFood]; + [ALTFcMoney setIntValue:EQ[clickIndexEQ].A->cMoney]; + + [ALTFcmd setStringValue:EQ[clickIndexEQ].A->cmd]; + if(EQ[clickIndexEQ].A->msg != NULL) [ALTFmsg setStringValue:EQ[clickIndexEQ].A->msg]; + + DAMAGE *Dtop = EQ[clickIndexEQ].A->D; + do{ + + NSMutableDictionary* dict = [NSMutableDictionary new]; + if(!EQ[clickIndexEQ].A->D){ + [dict setValue:[NSString stringWithFormat:@""] forKey:@"count"]; + } + else if(EQ[clickIndexEQ].A->D->count > 0 || EQ[clickIndexEQ].A->D->pCount > 0){ + if(EQ[clickIndexEQ].A->D->type == 0) + [dict setValue:[NSString stringWithFormat:@"攻%g+%g%", EQ[clickIndexEQ].A->D->count, EQ[clickIndexEQ].A->D->pCount] forKey:@"count"]; + if(EQ[clickIndexEQ].A->D->type == 1) + [dict setValue:[NSString stringWithFormat:@"防%g+%g%", EQ[clickIndexEQ].A->D->count, EQ[clickIndexEQ].A->D->pCount] forKey:@"count"]; + if(EQ[clickIndexEQ].A->D->type == 2) + [dict setValue:[NSString stringWithFormat:@"命%g+%g%", EQ[clickIndexEQ].A->D->count, EQ[clickIndexEQ].A->D->pCount] forKey:@"count"]; + if(EQ[clickIndexEQ].A->D->type == 3) + [dict setValue:[NSString stringWithFormat:@"回%g+%g%", EQ[clickIndexEQ].A->D->count, EQ[clickIndexEQ].A->D->pCount] forKey:@"count"]; + if(EQ[clickIndexEQ].A->D->type == 4) + [dict setValue:[NSString stringWithFormat:@"演%g+%g%", EQ[clickIndexEQ].A->D->count, EQ[clickIndexEQ].A->D->pCount] forKey:@"count"]; + if(EQ[clickIndexEQ].A->D->type == 5) + [dict setValue:[NSString stringWithFormat:@"会%g%g%", EQ[clickIndexEQ].A->D->count, EQ[clickIndexEQ].A->D->pCount] forKey:@"count"]; + } + NSString *str; + + if(EQ[clickIndexEQ].A->D){ + if(EQ[clickIndexEQ].A->D->sort == 0) str = [NSString stringWithFormat:@"ダ・"]; + if(EQ[clickIndexEQ].A->D->sort == 1) str = [NSString stringWithFormat:@"回・"]; + if(EQ[clickIndexEQ].A->D->sort == 2) str = [NSString stringWithFormat:@"復・"]; + if(EQ[clickIndexEQ].A->D->sort == 3) str = [NSString stringWithFormat:@"減・"]; + if(EQ[clickIndexEQ].A->D->sort == 4) str = [NSString stringWithFormat:@"増・"]; + if(EQ[clickIndexEQ].A->D->sort == 5) str = [NSString stringWithFormat:@"毒・"]; + if(EQ[clickIndexEQ].A->D->sort == 6) str = [NSString stringWithFormat:@"睡・"]; + if(EQ[clickIndexEQ].A->D->sort == 7) str = [NSString stringWithFormat:@"混・"]; + if(EQ[clickIndexEQ].A->D->sort == 8) str = [NSString stringWithFormat:@"麻・"]; + if(EQ[clickIndexEQ].A->D->sort == 9) str = [NSString stringWithFormat:@"沈・"]; + if(EQ[clickIndexEQ].A->D->sort == 10) str = [NSString stringWithFormat:@"魅・"]; + + if(EQ[clickIndexEQ].A->D->seed == 0) str = [str stringByAppendingFormat:@"打撃"]; + if(EQ[clickIndexEQ].A->D->seed == 1) str = [str stringByAppendingFormat:@"斬撃"]; + if(EQ[clickIndexEQ].A->D->seed == 2) str = [str stringByAppendingFormat:@"突き"]; + if(EQ[clickIndexEQ].A->D->seed == 3) str = [str stringByAppendingFormat:@"射手"]; + if(EQ[clickIndexEQ].A->D->seed == 4) str = [str stringByAppendingFormat:@"銃撃"]; + if(EQ[clickIndexEQ].A->D->seed == 5) str = [str stringByAppendingFormat:@"砲撃"]; + if(EQ[clickIndexEQ].A->D->seed == 6) str = [str stringByAppendingFormat:@"火炎"]; + if(EQ[clickIndexEQ].A->D->seed == 7) str = [str stringByAppendingFormat:@"冷気"]; + if(EQ[clickIndexEQ].A->D->seed == 8) str = [str stringByAppendingFormat:@"電撃"]; + if(EQ[clickIndexEQ].A->D->seed == 9) str = [str stringByAppendingFormat:@"風圧"]; + if(EQ[clickIndexEQ].A->D->seed == 10) str = [str stringByAppendingFormat:@"流水"]; + if(EQ[clickIndexEQ].A->D->seed == 11) str = [str stringByAppendingFormat:@"ガス"]; + if(EQ[clickIndexEQ].A->D->seed == 12) str = [str stringByAppendingFormat:@"神聖"]; + if(EQ[clickIndexEQ].A->D->seed == 13) str = [str stringByAppendingFormat:@"暗黒"]; + if(EQ[clickIndexEQ].A->D->seed == 14) str = [str stringByAppendingFormat:@"爆撃"]; + if(EQ[clickIndexEQ].A->D->seed == 15) str = [str stringByAppendingFormat:@"流血"]; + + [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"type"]; + } + + if(EQ[clickIndexEQ].A->D){ + if(EQ[clickIndexEQ].A->D->count <= 0 && EQ[clickIndexEQ].A->D->sort == 0) + { + EQ[clickIndexEQ].A->D = NULL; + break; + } + [self willChangeValueForKey:@"damageListMA"]; + [damageListMA addObject:dict]; + [self didChangeValueForKey:@"damageListMA"]; + + EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next; + } + }while(EQ[clickIndexEQ].A->D != NULL); + + EQ[clickIndexEQ].A->D = Dtop; + + DMGEXTEND *Etop = EQ[clickIndexEQ].A->E; + while(EQ[clickIndexEQ].A->E != NULL){ + + NSMutableDictionary* dict = [NSMutableDictionary new]; + + + [dict setValue:[NSString stringWithFormat:@"%d", EQ[clickIndexEQ].A->E->rate] forKey:@"rate"]; + [dict setValue:[NSString stringWithFormat:@"%d", EQ[clickIndexEQ].A->E->atkHit] forKey:@"atkHit"]; + [dict setValue:[NSString stringWithFormat:@"%d", EQ[clickIndexEQ].A->E->hit] forKey:@"hit"]; + + [self willChangeValueForKey:@"hitListMA"]; + [hitListMA addObject:dict]; + [self didChangeValueForKey:@"hitListMA"]; + + EQ[clickIndexEQ].A->E = EQ[clickIndexEQ].A->E->next; + }; + + EQ[clickIndexEQ].A->E = Etop; + + EQ[clickIndexEQ].A = atkTop; + + + UCLDpoint.x = [UCLPanelAttack frame].origin.x + 0; + UCLDpoint.y = [UCLPanelAttack frame].origin.y + 0; + [UCLPanelAttackDetail setFrameOrigin:UCLDpoint]; + [UCLPanelAttackDetail makeKeyAndOrderFront:nil]; + + return; + } + + if(!loadChipSideFlag){ + + atkTop = UC[clickIndex].A; + + clickIndexAL = [attackListTV clickedRow]; + + + [self willChangeValueForKey:@"damageListMA"]; + [damageListMA removeAllObjects]; + [self didChangeValueForKey:@"damageListMA"]; + + [self willChangeValueForKey:@"hitListMA"]; + [hitListMA removeAllObjects]; + [self didChangeValueForKey:@"hitListMA"]; + + if(clickIndexAL <= -1) return; + + NSLog(@"%@, %ld", atkTop->name, clickIndexAL); + + for(int i = 0;i < clickIndexAL;i++){ + UC[clickIndex].A = UC[clickIndex].A->next; + } + + [ALTFname setStringValue:UC[clickIndex].A->name]; + [ALTFrangeA setIntValue:UC[clickIndex].A->rangeA]; + [ALTFrangeB setIntValue:UC[clickIndex].A->rangeB]; + [ALTFextend setIntValue:UC[clickIndex].A->extent]; + + [ALTFtrigger setIntValue:UC[clickIndex].A->trig]; + [ALTFmelee setIntValue:UC[clickIndex].A->melee]; + [ALTFpass setIntValue:UC[clickIndex].A->P]; + [ALTFdmgExtent setIntValue:UC[clickIndex].A->dmgExtend]; + [ALPUBwType selectItemAtIndex:UC[clickIndex].A->type]; + + [ALPUBtype removeAllItems]; + [ALPUBtype addItemWithTitle:@"攻撃力"]; + [ALPUBtype addItemWithTitle:@"防御力"]; + [ALPUBtype addItemWithTitle:@"命中値"]; + [ALPUBtype addItemWithTitle:@"回避値"]; + [ALPUBtype addItemWithTitle:@"演算力"]; + [ALPUBtype addItemWithTitle:@"無修正"]; + + [ALPUBcost removeAllItems]; + [ALPUBcost addItemWithTitle:@"MP"]; + [ALPUBcost addItemWithTitle:@"AP"]; + [ALPUBcost addItemWithTitle:@"HP"]; + [ALPUBcost selectItemAtIndex:UC[clickIndex].A->costType]; + if(UC[clickIndex].A->costType == 0){ + [ALTFcost setIntValue:UC[clickIndex].A->MP]; + [ALTFcostP setIntValue:UC[clickIndex].A->pMP]; + }else if(UC[clickIndex].A->costType == 1){ + [ALTFcost setIntValue:UC[clickIndex].A->AP]; + [ALTFcostP setIntValue:UC[clickIndex].A->pAP]; + }else if(UC[clickIndex].A->costType == 2){ + [ALTFcost setIntValue:UC[clickIndex].A->HP]; + [ALTFcostP setIntValue:UC[clickIndex].A->pHP]; + } + + [ALTFbullet setIntValue:UC[clickIndex].A->bullet]; + [ALTFhitCount setIntValue:UC[clickIndex].A->hitCount]; + [ALTFsuccessRate setIntValue:UC[clickIndex].A->successRate]; + [ALTFvigor setIntValue:UC[clickIndex].A->vigor]; + [ALTFhitRate setIntValue:UC[clickIndex].A->hitPercent]; + + [ALPUBriku selectItemAtIndex:UC[clickIndex].A->riku]; + [ALPUBchu selectItemAtIndex:UC[clickIndex].A->chu]; + [ALPUBumi selectItemAtIndex:UC[clickIndex].A->umi]; + [ALPUBsora selectItemAtIndex:UC[clickIndex].A->sora]; + + [ALTFcSupply setIntValue:UC[clickIndex].A->cSupply]; + [ALTFcFood setIntValue:UC[clickIndex].A->cFood]; + [ALTFcMoney setIntValue:UC[clickIndex].A->cMoney]; + + [ALTFcmd setStringValue:UC[clickIndex].A->cmd]; + if(UC[clickIndex].A->msg != NULL) + [ALTFmsg setStringValue:UC[clickIndex].A->msg]; + + DAMAGE *Dtop = UC[clickIndex].A->D; + do{ + + NSMutableDictionary* dict = [NSMutableDictionary new]; + if(!UC[clickIndex].A->D){ + [dict setValue:[NSString stringWithFormat:@""] forKey:@"count"]; + } + else if(UC[clickIndex].A->D->count > 0 || UC[clickIndex].A->D->pCount > 0){ + if(UC[clickIndex].A->D->type == 0) + [dict setValue:[NSString stringWithFormat:@"攻%g+%g%", UC[clickIndex].A->D->count, UC[clickIndex].A->D->pCount] forKey:@"count"]; + if(UC[clickIndex].A->D->type == 1) + [dict setValue:[NSString stringWithFormat:@"防%g+%g%", UC[clickIndex].A->D->count, UC[clickIndex].A->D->pCount] forKey:@"count"]; + if(UC[clickIndex].A->D->type == 2) + [dict setValue:[NSString stringWithFormat:@"命%g+%g%", UC[clickIndex].A->D->count, UC[clickIndex].A->D->pCount] forKey:@"count"]; + if(UC[clickIndex].A->D->type == 3) + [dict setValue:[NSString stringWithFormat:@"回%g+%g%", UC[clickIndex].A->D->count, UC[clickIndex].A->D->pCount] forKey:@"count"]; + if(UC[clickIndex].A->D->type == 4) + [dict setValue:[NSString stringWithFormat:@"演%g+%g%", UC[clickIndex].A->D->count, UC[clickIndex].A->D->pCount] forKey:@"count"]; + if(UC[clickIndex].A->D->type == 5) + [dict setValue:[NSString stringWithFormat:@"会%g%g%", UC[clickIndex].A->D->count, UC[clickIndex].A->D->pCount] forKey:@"count"]; + } + NSString *str; + + if(UC[clickIndex].A->D){ + if(UC[clickIndex].A->D->sort == 0) str = [NSString stringWithFormat:@"ダ・"]; + if(UC[clickIndex].A->D->sort == 1) str = [NSString stringWithFormat:@"回・"]; + if(UC[clickIndex].A->D->sort == 2) str = [NSString stringWithFormat:@"復・"]; + if(UC[clickIndex].A->D->sort == 3) str = [NSString stringWithFormat:@"減・"]; + if(UC[clickIndex].A->D->sort == 4) str = [NSString stringWithFormat:@"増・"]; + if(UC[clickIndex].A->D->sort == 5) str = [NSString stringWithFormat:@"毒・"]; + if(UC[clickIndex].A->D->sort == 6) str = [NSString stringWithFormat:@"睡・"]; + if(UC[clickIndex].A->D->sort == 7) str = [NSString stringWithFormat:@"混・"]; + if(UC[clickIndex].A->D->sort == 8) str = [NSString stringWithFormat:@"麻・"]; + if(UC[clickIndex].A->D->sort == 9) str = [NSString stringWithFormat:@"沈・"]; + if(UC[clickIndex].A->D->sort == 10) str = [NSString stringWithFormat:@"魅・"]; + + if(UC[clickIndex].A->D->seed == 0) str = [str stringByAppendingFormat:@"打撃"]; + if(UC[clickIndex].A->D->seed == 1) str = [str stringByAppendingFormat:@"斬撃"]; + if(UC[clickIndex].A->D->seed == 2) str = [str stringByAppendingFormat:@"突き"]; + if(UC[clickIndex].A->D->seed == 3) str = [str stringByAppendingFormat:@"射手"]; + if(UC[clickIndex].A->D->seed == 4) str = [str stringByAppendingFormat:@"銃撃"]; + if(UC[clickIndex].A->D->seed == 5) str = [str stringByAppendingFormat:@"砲撃"]; + if(UC[clickIndex].A->D->seed == 6) str = [str stringByAppendingFormat:@"火炎"]; + if(UC[clickIndex].A->D->seed == 7) str = [str stringByAppendingFormat:@"冷気"]; + if(UC[clickIndex].A->D->seed == 8) str = [str stringByAppendingFormat:@"電撃"]; + if(UC[clickIndex].A->D->seed == 9) str = [str stringByAppendingFormat:@"風圧"]; + if(UC[clickIndex].A->D->seed == 10) str = [str stringByAppendingFormat:@"流水"]; + if(UC[clickIndex].A->D->seed == 11) str = [str stringByAppendingFormat:@"ガス"]; + if(UC[clickIndex].A->D->seed == 12) str = [str stringByAppendingFormat:@"神聖"]; + if(UC[clickIndex].A->D->seed == 13) str = [str stringByAppendingFormat:@"暗黒"]; + if(UC[clickIndex].A->D->seed == 14) str = [str stringByAppendingFormat:@"爆撃"]; + if(UC[clickIndex].A->D->seed == 15) str = [str stringByAppendingFormat:@"流血"]; + + [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"type"]; + } + + if(UC[clickIndex].A->D){ + if(UC[clickIndex].A->D->count <= 0 && UC[clickIndex].A->D->sort == 0) + { + UC[clickIndex].A->D = NULL; + break; + } + [self willChangeValueForKey:@"damageListMA"]; + [damageListMA addObject:dict]; + [self didChangeValueForKey:@"damageListMA"]; + + UC[clickIndex].A->D = UC[clickIndex].A->D->next; + } + }while(UC[clickIndex].A->D != NULL); + + UC[clickIndex].A->D = Dtop; + + DMGEXTEND *Etop = UC[clickIndex].A->E; + while(UC[clickIndex].A->E != NULL){ + + NSMutableDictionary* dict = [NSMutableDictionary new]; + + + [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->E->rate] forKey:@"rate"]; + [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->E->atkHit] forKey:@"atkHit"]; + [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->E->hit] forKey:@"hit"]; + + [self willChangeValueForKey:@"hitListMA"]; + [hitListMA addObject:dict]; + [self didChangeValueForKey:@"hitListMA"]; + + UC[clickIndex].A->E = UC[clickIndex].A->E->next; + }; + + UC[clickIndex].A->E = Etop; + + UC[clickIndex].A = atkTop; + + + }else{ + + atkTop = LC[cil].A; + + clickIndexAL = [attackListTV clickedRow]; + + [self willChangeValueForKey:@"damageListMA"]; + [damageListMA removeAllObjects]; + [self didChangeValueForKey:@"damageListMA"]; + + [self willChangeValueForKey:@"hitListMA"]; + [hitListMA removeAllObjects]; + [self didChangeValueForKey:@"hitListMA"]; + + if(clickIndexAL <= -1) return; + + for(int i = 0;i < clickIndexAL;i++){ + LC[cil].A = LC[cil].A->next; + } + + [ALTFname setStringValue:LC[cil].A->name]; + [ALTFrangeA setIntValue:LC[cil].A->rangeA]; + [ALTFrangeB setIntValue:LC[cil].A->rangeB]; + [ALTFextend setIntValue:LC[cil].A->extent]; + + [ALTFtrigger setIntValue:LC[cil].A->trig]; + [ALTFmelee setIntValue:LC[cil].A->melee]; + [ALTFpass setIntValue:LC[cil].A->P]; + [ALTFdmgExtent setIntValue:LC[cil].A->dmgExtend]; + [ALPUBwType selectItemAtIndex:LC[cil].A->type]; + + [ALPUBtype removeAllItems]; + [ALPUBtype addItemWithTitle:@"攻撃力"]; + + [ALPUBcost removeAllItems]; + [ALPUBcost addItemWithTitle:@"EN"]; + [ALPUBcost addItemWithTitle:@"HP"]; + [ALPUBcost selectItemAtIndex:LC[cil].A->costType]; + if(1){ + if(LC[cil].A->costType == 0){ + [ALTFcost setIntValue:LC[cil].A->EN]; + [ALTFcostP setIntValue:LC[cil].A->pEN]; + } + if(LC[cil].A->costType == 1){ + [ALTFcost setIntValue:LC[cil].A->HP]; + [ALTFcostP setIntValue:LC[cil].A->pHP]; + } + } + [ALTFbullet setIntValue:LC[cil].A->bullet]; + [ALTFhitCount setIntValue:LC[cil].A->hitCount]; + [ALTFsuccessRate setIntValue:LC[cil].A->successRate]; + [ALTFvigor setIntValue:LC[cil].A->vigor]; + [ALTFhitRate setIntValue:LC[cil].A->hitPercent]; + + [ALPUBriku selectItemAtIndex:LC[cil].A->riku]; + [ALPUBchu selectItemAtIndex:LC[cil].A->chu]; + [ALPUBumi selectItemAtIndex:LC[cil].A->umi]; + [ALPUBsora selectItemAtIndex:LC[cil].A->sora]; + + [ALTFcSupply setIntValue:LC[cil].A->cSupply]; + [ALTFcFood setIntValue:LC[cil].A->cFood]; + [ALTFcMoney setIntValue:LC[cil].A->cMoney]; + + [ALTFcmd setStringValue:LC[cil].A->cmd]; + if(LC[cil].A->msg != NULL) [ALTFmsg setStringValue:LC[cil].A->msg]; + + DAMAGE *Dtop = LC[cil].A->D; + do{ + + NSMutableDictionary* dict = [NSMutableDictionary new]; + if(!LC[cil].A->D){ + [dict setValue:[NSString stringWithFormat:@""] forKey:@"count"]; + } + else if(LC[cil].A->D->count > 0 || LC[cil].A->D->pCount > 0){ + [dict setValue:[NSString stringWithFormat:@"攻%g+%g%", LC[cil].A->D->count, LC[cil].A->D->pCount] forKey:@"count"]; + } + NSString *str; + + if(LC[cil].A->D){ + if(LC[cil].A->D->sort == 0) str = [NSString stringWithFormat:@"ダ・"]; + if(LC[cil].A->D->sort == 1) str = [NSString stringWithFormat:@"回・"]; + if(LC[cil].A->D->sort == 2) str = [NSString stringWithFormat:@"復・"]; + if(LC[cil].A->D->sort == 3) str = [NSString stringWithFormat:@"減・"]; + if(LC[cil].A->D->sort == 4) str = [NSString stringWithFormat:@"増・"]; + if(LC[cil].A->D->sort == 5) str = [NSString stringWithFormat:@"毒・"]; + if(LC[cil].A->D->sort == 6) str = [NSString stringWithFormat:@"睡・"]; + if(LC[cil].A->D->sort == 7) str = [NSString stringWithFormat:@"混・"]; + if(LC[cil].A->D->sort == 8) str = [NSString stringWithFormat:@"麻・"]; + if(LC[cil].A->D->sort == 9) str = [NSString stringWithFormat:@"沈・"]; + if(LC[cil].A->D->sort == 10) str = [NSString stringWithFormat:@"魅・"]; + + if(LC[cil].A->D->seed == 0) str = [str stringByAppendingFormat:@"打撃"]; + if(LC[cil].A->D->seed == 1) str = [str stringByAppendingFormat:@"斬撃"]; + if(LC[cil].A->D->seed == 2) str = [str stringByAppendingFormat:@"突き"]; + if(LC[cil].A->D->seed == 3) str = [str stringByAppendingFormat:@"射手"]; + if(LC[cil].A->D->seed == 4) str = [str stringByAppendingFormat:@"銃撃"]; + if(LC[cil].A->D->seed == 5) str = [str stringByAppendingFormat:@"砲撃"]; + if(LC[cil].A->D->seed == 6) str = [str stringByAppendingFormat:@"火炎"]; + if(LC[cil].A->D->seed == 7) str = [str stringByAppendingFormat:@"冷気"]; + if(LC[cil].A->D->seed == 8) str = [str stringByAppendingFormat:@"電撃"]; + if(LC[cil].A->D->seed == 9) str = [str stringByAppendingFormat:@"風圧"]; + if(LC[cil].A->D->seed == 10) str = [str stringByAppendingFormat:@"流水"]; + if(LC[cil].A->D->seed == 11) str = [str stringByAppendingFormat:@"ガス"]; + if(LC[cil].A->D->seed == 12) str = [str stringByAppendingFormat:@"神聖"]; + if(LC[cil].A->D->seed == 13) str = [str stringByAppendingFormat:@"暗黒"]; + if(LC[cil].A->D->seed == 14) str = [str stringByAppendingFormat:@"爆撃"]; + if(LC[cil].A->D->seed == 15) str = [str stringByAppendingFormat:@"流血"]; + + [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"type"]; + } + + if(LC[cil].A->D){ + if(LC[cil].A->D->count <= 0 && LC[cil].A->D->sort == 0) + { + LC[cil].A->D = NULL; + break; + } + [self willChangeValueForKey:@"damageListMA"]; + [damageListMA addObject:dict]; + [self didChangeValueForKey:@"damageListMA"]; + + LC[cil].A->D = LC[cil].A->D->next; + } + }while(LC[cil].A->D != NULL); + + LC[cil].A->D = Dtop; + + DMGEXTEND *Etop = LC[cil].A->E; + while(LC[cil].A->E != NULL){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + + [dict setValue:[NSString stringWithFormat:@"%d", LC[cil].A->E->rate] forKey:@"rate"]; + [dict setValue:[NSString stringWithFormat:@"%d", LC[cil].A->E->atkHit] forKey:@"atkHit"]; + [dict setValue:[NSString stringWithFormat:@"%d", LC[cil].A->E->hit] forKey:@"hit"]; + + [self willChangeValueForKey:@"hitListMA"]; + [hitListMA addObject:dict]; + [self didChangeValueForKey:@"hitListMA"]; + + LC[cil].A->E = LC[cil].A->E->next; + }; + + LC[cil].A->E = Etop; + + LC[cil].A = atkTop; + + + + + + + + } + + + UCLDpoint.x = [UCLPanelAttack frame].origin.x + 0; + UCLDpoint.y = [UCLPanelAttack frame].origin.y + 0; + [UCLPanelAttackDetail setFrameOrigin:UCLDpoint]; + [UCLPanelAttackDetail makeKeyAndOrderFront:nil]; +} + +-(void)doubleClickUCL:(id)sender{ + clickIndex = [unitChipListTV clickedRow]; + + [TFname setStringValue:UC[clickIndex].name]; + [TFnameN setStringValue:UC[clickIndex].nameNick]; + [TFnameR setStringValue:UC[clickIndex].nameRecognition]; + [TFnameID setStringValue:UC[clickIndex].nameID]; + [TFnameC setStringValue:UC[clickIndex].nameClass]; + + + [TFhp setDoubleValue:UC[clickIndex].S_M.HP]; + [TFmp setDoubleValue:UC[clickIndex].S_M.MP]; + [TFap setDoubleValue:UC[clickIndex].S_M.AP]; + [TFwt setDoubleValue:UC[clickIndex].S_M.WT]; + + [TFbp setStringValue:[NSString stringWithFormat:@"BP %g", UC[clickIndex].S_M.BP]]; + [TFatk setStringValue:[NSString stringWithFormat:@"攻撃力 %g", UC[clickIndex].S_M.ATK]]; + [TFdef setStringValue:[NSString stringWithFormat:@"防御力 %g", UC[clickIndex].S_M.DEF]]; + [TFcap setStringValue:[NSString stringWithFormat:@"演算力 %g", UC[clickIndex].S_M.CAP]]; + [TFacu setStringValue:[NSString stringWithFormat:@"命中値 %g", UC[clickIndex].S_M.ACU]]; + [TFeva setStringValue:[NSString stringWithFormat:@"回避値 %g", UC[clickIndex].S_M.EVA]]; + + [TFstr setDoubleValue:UC[clickIndex].S_M.STR]; + [TFvit setDoubleValue:UC[clickIndex].S_M.VIT]; + [TFagi setDoubleValue:UC[clickIndex].S_M.AGI]; + [TFdex setDoubleValue:UC[clickIndex].S_M.DEX]; + [TFmen setDoubleValue:UC[clickIndex].S_M.MEN]; + [TFint setDoubleValue:UC[clickIndex].S_M.INT]; + [TFluk setDoubleValue:UC[clickIndex].S_M.LUK]; + [TFmov setIntValue:UC[clickIndex].S_M.MOV]; + + [TFmel setDoubleValue:UC[clickIndex].S_M.MEL]; + [TFmis setDoubleValue:UC[clickIndex].S_M.MIS]; + [TFhit setDoubleValue:UC[clickIndex].S_M.HIT]; + [TFdod setDoubleValue:UC[clickIndex].S_M.DOD]; + [TFrea setDoubleValue:UC[clickIndex].S_M.REA]; + [TFski setDoubleValue:UC[clickIndex].S_M.SKI]; + + [TFcSupply setIntValue:UC[clickIndex].S_M.cSupply]; + [TFcFood setIntValue:UC[clickIndex].S_M.cFood]; + [TFcMoney setIntValue:UC[clickIndex].S_M.cMoney]; + [TFcWT setIntValue:UC[clickIndex].S_M.cWT]; + + [PUPtMons selectItemAtIndex:UC[clickIndex].S_M.typeMONS]; + [PUPtMove selectItemAtIndex:UC[clickIndex].S_M.typeMOVE]; + //[PUPtEquip selectItemAtIndex:UC[clickIndex].S_M.typeMOVE]; + + [IVimg setImage:UC[clickIndex].img]; + [IVimgBig setImage:UC[clickIndex].imgb]; + [Baura setIntValue:UC[clickIndex].aura]; + + [self addPUBEquipList]; + [self initEquip]; + + + UCLDpoint.x = [UCLPanel frame].origin.x + 50; + UCLDpoint.y = [UCLPanel frame].origin.y + 100; + [UCLDetailPanel setFrameOrigin:UCLDpoint]; + [UCLDetailPanel makeKeyAndOrderFront:nil]; +} + +-(IBAction)saveUCL:(id)sender{ + + UC[clickIndex].name = [[TFname stringValue] retain]; + UC[clickIndex].nameNick = [[TFnameN stringValue] retain]; + UC[clickIndex].nameRecognition = [[TFnameR stringValue] retain]; + UC[clickIndex].nameID = [[TFnameID stringValue] retain]; + UC[clickIndex].nameClass = [[TFnameC stringValue] retain]; + + UC[clickIndex].S_M.HP = [TFhp doubleValue]; + UC[clickIndex].S_M.MP = [TFmp doubleValue]; + UC[clickIndex].S_M.AP = [TFap doubleValue]; + UC[clickIndex].S_M.WT = [TFwt doubleValue]; + + UC[clickIndex].S_M.STR = [TFstr doubleValue]; + UC[clickIndex].S_M.VIT = [TFvit doubleValue]; + UC[clickIndex].S_M.AGI = [TFagi doubleValue]; + UC[clickIndex].S_M.DEX = [TFdex doubleValue]; + UC[clickIndex].S_M.MEN = [TFmen doubleValue]; + UC[clickIndex].S_M.INT = [TFint doubleValue]; + UC[clickIndex].S_M.LUK = [TFluk doubleValue]; + UC[clickIndex].S_M.MOV = [TFmov intValue]; + + UC[clickIndex].S_M.MEL = [TFmel doubleValue]; + UC[clickIndex].S_M.MIS = [TFmis doubleValue]; + UC[clickIndex].S_M.HIT = [TFhit doubleValue]; + UC[clickIndex].S_M.DOD = [TFdod doubleValue]; + UC[clickIndex].S_M.REA = [TFrea doubleValue]; + UC[clickIndex].S_M.SKI = [TFski doubleValue]; + + UC[clickIndex].S_M.cSupply = [TFcSupply intValue]; + UC[clickIndex].S_M.cFood = [TFcFood intValue]; + UC[clickIndex].S_M.cMoney = [TFcMoney intValue]; + UC[clickIndex].S_M.cWT = [TFcWT intValue]; + + UC[clickIndex].S_M.typeMONS = (int)[PUPtMons indexOfSelectedItem]; + UC[clickIndex].S_M.typeMOVE = (int)[PUPtMove indexOfSelectedItem]; + + UC[clickIndex].img = [[IVimg image] retain]; + UC[clickIndex].imgb = [[IVimgBig image] retain]; + UC[clickIndex].aura = [Baura intValue]; + + [unitChipListAC setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].name] forKeyPath:@"selection.name"]; + [unitChipListAC setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].nameClass] forKeyPath:@"selection.nameC"]; + [unitChipListAC setValue:[NSString stringWithFormat:@"%g", UC[clickIndex].S_M.HP] forKeyPath:@"selection.HP"]; + [unitChipListAC setValue:[NSString stringWithFormat:@"%g", UC[clickIndex].S_M.BP] forKeyPath:@"selection.BP"]; + [unitChipListAC setValue:UC[clickIndex].img forKeyPath:@"selection.img"]; + [unitChipListAC setValue:UC[clickIndex].imgb forKeyPath:@"selection.imgBig"]; + + + [self saveData]; + [self saveDataAL]; + [UCLDetailPanel close]; +} +-(IBAction)cancelUCL:(id)sender{ + [UCLDetailPanel close]; +} + +-(void)initFileDirectory{ + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + char *cwd; + cwd = getcwd(NULL, 0); + + + NSData *InitialData = [NSData dataWithContentsOfFile:@"data/UnitChip/preset.txt"]; + NSString *pathUC = @"data/UnitChip/img"; + NSString *pathDATA2 = @"data/UnitChip/preset.txt"; + NSString *pathUCP = @"data/UnitChip/preset.txt"; + NSString *fileData = nil; + + chipNumb = 56; + UCN = (int)chipNumb; + if(!InitialData){ + [[NSFileManager defaultManager] createDirectoryAtPath:pathUC withIntermediateDirectories:YES attributes:nil error:nil]; + [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil]; + + [[NSFileManager defaultManager] createFileAtPath:pathUCP contents:nil attributes:nil]; + + NSString *data0 = @"56"; + [data0 writeToFile:pathUCP atomically:YES encoding:NSUTF8StringEncoding error:nil]; + + NSString *data1 = @"村人\n村人\nパーサント\n村人,uc1,0\n" + @"100,50,0,500,5\n30,30,30,30,30,30,0,9\n100,100,100,100,100,100\n100,100,100,100,100\n0,0,0,50,0,500\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\nuc1.png,ucb1.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data2 = @"兵士\n兵士\nソルジャー\n兵士,uc2,0\n" + @"150,80,0,520,6\n50,40,45,40,35,35,0,12\n120,120,100,100,120,130\n100,100,100,100,100\n0,0,0,50,50,500\n" + @"80,80,100,80,60,100," + @"90,80,150,100,100,100,100,100,80,100," + @"100,100,100,100,100,100\nuc2.png,ucb2.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data3 = @"戦士\n戦士\nファイター\n戦士,uc3,0\n" + @"200,100,0,550,6\n55,50,30,40,40,32,0,14\n130,110,100,100,125,135\n100,100,100,100,100\n0,0,0,80,30,500\n" + @"90,90,100,100,90,100," + @"100,100,120,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\nuc3.png,ucb3.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data4 = @"女蛮族\n女蛮族\nアマゾネス\n女蛮族,uc4,0\n" + @"120,70,0,480,5\n40,35,50,50,45,36,0,11\n110,130,120,120,130,130\n100,100,100,100,100\n0,0,0,30,40,500\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\nuc4.png,ucb4.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data5 = @"僧徒\n僧徒\nアコライト\n僧徒,uc5,0\n" + @"130,100,0,540,5\n35,32,40,36,55,50,0,10\n105,110,105,100,125,125\n100,100,100,100,100\n0,0,0,20,100,500\n" + @"100,100,100,100,100,100," + @"100,130,80,100,100,100,50,120,100,100," + @"100,100,100,100,100,100\nuc5.png,ucb5.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data6 = @"魔法使い\n魔法使い\nマジシャン\n魔法使い,uc6,0\n" + @"120,150,0,490,5\n38,32,42,45,50,60,0,10\n105,120,120,120,130,140\n100,100,100,100,100\n0,0,100,30,80,500\n" + @"100,150,80,90,100,100," + @"80,70,60,90,90,70,100,80,80,90," + @"100,100,100,100,100,100\nuc6.png,ucb6.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + + NSString *data7 = @"盗賊\n盗賊\nシーフ\n盗賊,uc7,0\n" + @"140,90,0,450,6\n45,40,60,50,45,40,0,18\n110,115,130,140,130,145\n100,100,100,100,100\n0,0,0,60,40,500\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\nuc7.png,ucb7.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data8 = @"騎士\n騎士\nナイト\n騎士,uc8,0\n" + @"225,100,0,500,6\n60,50,50,55,55,50,0,12\n130,125,120,120,125,130\n100,100,100,100,100\n0,0,0,60,80,500\n" + @"70,70,90,80,50,100," + @"80,70,150,90,100,100,100,100,80,100," + @"100,100,100,100,100,100\nuc8.png,ucb8.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data9 = @"狂戦士\n狂戦士\nバーサーカー\n狂戦士,uc9,0\n" + @"255,80,0,470,6\n70,40,55,60,58,40,0,14\n140,110,130,110,130,140\n100,100,100,100,100\n0,0,0,100,50,500\n" + @"100,100,100,100,100,100," + @"100,120,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\nuc9.png,ucb9.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data10 = @"闘技士\n闘技士\nグラディエーター\n闘技士,uc10,0\n" + @"300,100,0,450,6\n80,45,60,65,60,50,0,15\n135,120,125,120,135,135\n100,100,100,100,100\n0,0,0,80,70,500\n" + @"80,80,100,80,80,100," + @"80,80,120,80,80,100,100,100,80,100," + @"100,100,100,100,100,100\nuc10.png,ucb10.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data11 = @"傭兵\n傭兵\nマーシナリ\n傭兵,uc11,0\n" + @"200,100,0,480,6\n55,40,60,60,55,40,0,15\n120,120,120,120,130,130\n100,100,100,100,100\n0,0,0,60,60,500\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\nuc11.png,ucb11.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data12 = @"弓士\n弓士\nアーチャー\n弓士,uc12,0\n" + @"180,90,0,500,6\n50,50,55,55,50,50,0,13\n120,120,120,120,120,120\n100,100,100,100,100\n0,0,50,50,50,500\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\nuc12.png,ucb12.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data13 = @"僧侶\n僧侶\nクレリック\n僧侶,uc13,0\n" + @"160,150,0,500,5\n38,34,50,60,60,60,0,10\n110,110,120,120,125,130\n100,100,100,100,100\n0,0,0,30,150,500\n" + @"100,100,100,100,100,100," + @"80,120,70,80,80,100,50,120,100,100," + @"100,100,100,100,100,100\nuc13.png,ucb13.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data14 = @"魔術師\n魔術師\nウィザード\n魔術師,uc14,0\n" + @"150,200,0,450,5\n40,36,54,58,60,80,0,10\n105,130,130,150,150,150\n100,100,100,100,100\n0,0,200,30,100,500\n" + @"100,130,80,100,100,100," + @"70,50,60,80,90,80,100,70,100,100," + @"100,100,100,100,100,100\nuc14.png,ucb14.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data15 = @"祈祷師\n祈祷師\nシャーマン\n祈祷師,uc15,0\n" + @"140,180,0,520,5\n50,50,50,60,80,60,0,10\n110,120,130,130,140,140\n100,100,100,100,100\n0,0,60,40,50,500\n" + @"100,100,100,100,100,100," + @"80,80,80,80,80,80,80,80,100,100," + @"100,100,100,100,100,100\nuc15.png,ucb15.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data16 = @"奇術師\n奇術師\nドルイド\n奇術師,uc16,0\n" + @"180,150,0,460,5\n45,40,60,75,65,65,0,12\n120,120,130,130,130,150\n100,100,100,100,100\n0,0,40,60,60,500\n" + @"100,100,100,100,100,100," + @"80,90,70,60,80,60,100,60,80,80," + @"100,100,100,100,100,100\nuc16.png,ucb16.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data17 = @"魔女\n魔女\nウィッチ\n魔女,uc17,0\n" + @"130,200,0,480,5\n35,45,55,80,80,80,0,10\n110,130,150,140,150,150\n100,100,100,100,100\n0,0,300,30,150,500\n" + @"100,100,100,100,100,100," + @"90,90,80,80,90,80,130,70,100,100," + @"100,100,100,100,100,100\nuc17.png,ucb17.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data18 = @"侍\n侍\nサムライ\n侍,uc18,0\n" + @"200,100,0,450,6\n70,35,70,70,65,45,0,16\n150,110,150,150,150,150\n100,100,100,100,100\n0,0,0,120,0,500\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\nuc18.png,ucb18.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data19 = @"聖騎士\n聖騎士\nホワイトナイト\n聖騎士,uc19,0\n" + @"250,150,0,420,6\n98,50,76,82,74,52,0,15\n140,130,160,160,150,150\n100,100,100,100,100\n0,0,0,50,200,500\n" + @"70,70,80,80,50,100," + @"80,80,130,80,80,80,80,120,70,100," + @"100,100,100,100,100,100\nuc19.png,ucb19.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data20 = @"黒騎士\n黒騎士\nブラックナイト\n黒騎士,uc20,0\n" + @"270,180,0,460,6\n82,86,60,80,78,60,0,13\n140,140,150,150,150,150\n100,100,100,100,100\n0,0,0,100,150,500\n" + @"60,60,60,60,50,100," + @"80,70,130,80,80,80,150,50,60,100," + @"100,100,100,100,100,100\nuc20.png,ucb20.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data21 = @"亡霊騎士\n亡霊騎士\nスタンジャンナイト\n亡霊騎士,uc21,0\n" + @"300,200,0,500,6\n120,150,45,60,50,40,0,10\n150,120,120,120,120,120\n100,100,100,100,100\n0,0,300,0,100,500\n" + @"50,50,50,0,0,150," + @"50,0,50,50,50,0,200,30,150,0," + @"100,100,100,100,100,100\nuc21.png,ucb21.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data22 = @"王国騎士\n王国騎士\nレギオン\n王国騎士,uc22,0\n" + @"260,160,0,450,6\n90,90,60,70,70,60,0,14\n150,130,150,150,150,150\n100,100,100,100,100\n0,0,0,100,300,500\n" + @"60,60,80,60,50,100," + @"80,80,120,80,80,80,80,80,60,100," + @"100,100,100,100,100,100\nuc22.png,ucb22.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data23 = @"怪盗\n怪盗\nレンジャー\n怪盗,uc23,0\n" + @"230,200,0,400,6\n76,68,92,98,86,72,0,18\n130,140,160,160,155,160\n100,100,100,100,100\n0,0,100,100,100,500\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\nuc23.png,ucb23.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data24 = @"司祭\n司祭\nプリースト\n司祭,uc24,0\n" + @"200,250,0,480,6\n60,76,64,82,94,90,0,12\n120,120,150,140,145,150\n100,100,100,100,100\n0,0,0,30,250,500\n" + @"100,100,100,100,100,100," + @"80,80,80,80,80,80,50,90,100,100," + @"100,100,100,100,100,100\nuc24.png,ucb24.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data25 = @"言語術士\n言語術士\nワーロック\n言語術士,uc25,0\n" + @"130,300,0,460,5\n34,46,52,75,120,130,0,12\n105,110,140,120,150,155\n100,100,100,100,100\n0,0,500,30,300,500\n" + @"100,100,100,100,100,100," + @"50,50,50,80,80,80,100,100,100,100," + @"100,100,100,100,100,100\nuc25.png,ucb25.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data26 = @"聖女\n聖女\nセイレーン\n聖女,uc26,0\n" + @"150,255,0,470,5\n38,34,68,80,98,112,0,12\n105,150,150,120,140,150\n100,100,100,100,100\n0,0,300,50,200,500\n" + @"100,120,100,100,100,100," + @"60,70,50,60,80,80,60,80,80,100," + @"100,100,100,100,100,100\nuc26.png,ucb26.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data27 = @"言霊使い\n言霊使い\nソーサレス\n言霊使い,uc27,0\n" + @"170,240,0,460,5\n48,40,78,76,85,98,0,10\n120,130,140,140,145,145\n100,100,100,100,100\n0,0,200,30,100,500\n" + @"100,120,100,100,100,100," + @"70,70,70,70,70,70,70,70,70,70," + @"100,100,100,100,100,100\nuc27.png,ucb27.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data28 = @"聖戦士\n聖戦士\nヴァルキリー\n聖戦士,uc28,0\n" + @"200,200,0,450,5\n55,60,82,96,70,100,0,14\n140,140,140,140,140,150\n100,100,100,100,100\n0,0,500,50,500,500\n" + @"80,80,100,80,80,100," + @"80,80,70,80,70,80,80,90,80,90," + @"100,100,100,100,100,100\nuc28.png,ucb28.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data29 = @"聖騎士長\n聖騎士長\nパラディン\n聖騎士長,uc29,0\n" + @"320,230,0,400,7\n120,100,130,115,100,100,0,14\n150,130,150,150,150,150\n100,100,100,100,100\n0,0,0,50,400,500\n" + @"60,60,60,60,50,100," + @"60,60,100,70,80,80,80,120,80,100," + @"100,100,100,100,100,100\nuc29.png,ucb29.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data30 = @"暗黒騎士\n暗黒騎士\nテラーナイト\n暗黒騎士,uc30,0\n" + @"400,150,0,420,7\n130,130,90,100,94,64,0,12\n150,120,150,150,150,150\n100,100,100,100,100\n0,0,0,100,200,500\n" + @"50,50,50,50,50,100," + @"70,70,100,70,50,50,120,50,50,100," + @"100,100,100,100,100,100\nuc30.png,ucb30.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data31 = @"教皇騎士\n教皇騎士\nテンプルナイト\n教皇騎士,uc31,0\n" + @"360,250,0,400,7\n100,100,100,100,100,100,0,12\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,200,100,300,500\n" + @"60,60,60,60,50,100," + @"50,50,50,50,50,50,50,50,50,100," + @"100,100,100,100,100,100\nuc31.png,ucb31.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data32 = @"狙撃手\n狙撃手\nスナイパー\n狙撃手,uc32,0\n" + @"200,160,0,450,5\n60,50,90,90,80,70,0,13\n110,150,180,130,150,150\n100,100,100,100,100\n0,0,200,100,300,500\n" + @"100,100,100,100,100,100," + @"100,100,100,100,100,100,100,100,100,100," + @"100,100,100,100,100,100\nuc32.png,ucb32.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data33 = @"司教\n司教\nビショップ\n司教,uc33,0\n" + @"240,400,0,450,5\n62,80,70,98,110,120,0,10\n125,125,150,150,150,150\n100,100,100,100,100\n0,0,0,50,500,500\n" + @"100,100,100,100,100,100," + @"80,80,80,80,80,80,50,150,100,100," + @"100,100,100,100,100,100\nuc33.png,ucb33.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data34 = @"賢者\n賢者\nセイジ\n賢者,uc34,0\n" + @"230,500,0,400,6\n98,86,94,98,120,150,0,13\n130,140,150,150,150,150\n100,100,100,100,100\n0,0,250,50,250,500\n" + @"70,70,70,80,80,100," + @"50,50,50,50,50,50,50,75,100,100," + @"100,100,100,100,100,100\nuc34.png,ucb34.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data35 = @"将軍\n将軍\nジェネラル\n将軍,uc35,0\n" + + @"600,300,0,450,6\n150,140,80,130,96,120,0,12\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"60,60,80,50,80,100," + @"70,70,80,70,70,70,80,80,70,100," + @"100,100,100,100,100,100\nuc35.png,ucb35.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data36 = @"男爵\n男爵\nバロン\n男爵,uc36,0\n" + @"550,500,0,520,6\n100,180,50,90,120,100,0,9\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"50,50,50,50,25,100," + @"70,50,150,50,50,60,100,70,50,100," + @"100,100,100,100,100,100\nuc36.png,ucb36.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data37 = @"魔導士\n魔導士\nアークメイジ\n魔導士,uc37,0\n" + @"200,500,0,450,6\n60,50,78,98,140,140,0,12\n120,130,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"100,100,100,100,100,100," + @"50,50,50,50,50,50,70,50,50,70," + @"100,100,100,100,100,100\nuc37.png,ucb37.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data38 = @"召喚師\n召喚師\nサモナー\n召喚師,uc38,0\n" + @"220,550,0,480,5\n50,50,60,80,150,150,0,10\n125,125,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"100,100,100,100,100,100," + @"70,70,60,60,60,50,80,60,50,80," + @"100,100,100,100,100,100\nuc38.png,ucb38.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data39 = @"古語術士\n古語術士\nルーンマスター\n古語術士,uc39,0\n" + @"180,600,0,500,5\n90,90,90,90,150,150,0,10\n120,130,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"100,100,100,100,100,100," + @"50,50,50,50,50,50,50,50,50,50," + @"100,100,100,100,100,100\nuc39.png,ucb39.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data40 = @"死霊使い\n死霊使い\nネクロマンサー\n死霊使い,uc40,0\n" + @"210,700,0,500,5\n50,60,70,140,150,150,0,10\n130,130,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"100,100,100,100,100,100," + @"50,50,50,50,50,50,200,25,50,50," + @"100,100,100,100,100,100\nuc40.png,ucb40.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data41 = @"占星術士\n占星術士\nアストロマンサー\n占星術士,uc41,0\n" + @"250,800,0,400,5\n80,70,120,150,150,150,0,12\n130,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"80,80,80,80,80,80," + @"50,50,50,50,50,50,50,50,50,50," + @"100,100,100,100,100,100\nuc41.png,ucb41.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data42 = @"元帥\n元帥\nマーシャル\n元帥,uc42,0\n" + @"500,200,0,500,6\n130,150,60,84,76,85,0,9\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"50,50,50,50,25,100," + @"80,60,150,50,60,70,100,70,50,100," + @"100,100,100,100,100,100\nuc42.png,ucb42.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + + NSString *data43 = @"勇者\n勇者\nロード\n勇者,uc43,0\n" + @"500,250,0,400,6\n125,125,125,125,125,125,0,15\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"75,75,75,75,75,75," + @"75,75,75,75,75,75,75,75,75,75," + @"100,100,100,100,100,100\nuc43.png,ucb43.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + + NSString *data44 = @"公爵\n公爵\nデューク\n公爵,uc44,0\n" + @"430,320,0,400,6\n150,150,120,125,120,120,0,12\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"50,50,50,50,25,100," + @"50,50,50,50,50,50,80,50,50,100," + @"100,100,100,100,100,100\nuc44.png,ucb44.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + + NSString *data45 = @"王子\n王子\nプリンス\n王子,uc45,0\n" + @"600,300,0,400,6\n120,100,100,120,130,120,0,14\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"80,80,80,80,80,80," + @"80,80,80,80,80,80,50,100,80,80," + @"100,100,100,100,100,100\nuc45.png,ucb45.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data46 = @"王女\n王女\nプリンセス\n王女,uc46,0\n" + @"500,500,0,500,6\n100,100,100,150,150,150,0,12\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"100,100,100,100,100,100," + @"50,50,50,50,50,50,50,50,50,50," + @"100,100,100,100,100,100\nuc47.png,ucb47.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data47 = @"枢機卿\n枢機卿\nカーディナル\n枢機卿,uc47,0\n" + @"400,400,0,550,6\n40,40,80,90,100,120,0,10\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"70,70,70,70,70,70," + @"50,50,50,50,50,50,25,50,50,50," + @"100,100,100,100,100,100\nuc47.png,ucb47.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data48 = @"大司教\n大司教\nアークビショップ\n大司教,uc48,0\n" + + @"450,400,0,400,6\n100,100,120,120,120,120,0,14\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"50,50,50,50,50,50," + @"50,50,50,50,50,50,50,50,50,50," + @"100,100,100,100,100,100\nuc48.png,ucb48.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data49 = @"教皇\n教皇\nポープ\n教皇,uc49,0\n" + @"300,900,0,450,6\n50,50,100,150,150,150,0,12\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"100,100,100,100,100,100," + @"50,50,50,50,50,50,50,50,50,50," + @"100,100,100,100,100,100\nuc49.png,ucb49.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data50 = @"王\n王\nキング\n王,uc50,0\n" + @"500,250,0,500,6\n50,50,50,100,130,120,0,12\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"80,80,80,80,80,80," + @"50,50,50,50,50,50,50,50,50,50," + @"100,100,100,100,100,100\nuc50.png,ucb50.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data51 = @"女王\n女王\nクイーン\n女王,uc51,0\n" + @"500,500,0,450,6\n50,50,50,130,120,100,0,15\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"50,50,50,50,50,50," + @"50,50,50,50,50,50,50,50,50,50," + @"100,100,100,100,100,100\nuc51.png,ucb51.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + + NSString *data52 = @"皇帝\n皇帝\nエンペラー\n皇帝,uc52,0\n" + @"900,800,0,450,6\n150,150,150,150,150,150,0,12\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"50,50,50,50,50,50," + @"25,25,25,50,50,50,50,50,50,50," + @"100,100,100,100,100,100\nuc52.png,ucb52.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data53 = @"三日月王\n三日月王\nクレセント\n三日月王,uc53,0\n" + @"1200,1000,150,400,6\n200,160,180,230,220,180,0,15\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"50,50,50,50,50,50," + @"25,25,25,25,25,25,50,25,25,50," + @"100,100,100,100,100,100\nuc53.png,ucb53.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data54 = @"月の王\n月の王\nセレス\n月の王,uc54,0\n" + @"1500,1000,200,400,6\n225,200,210,250,255,255,0,15\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"25,25,25,25,25,50," + @"25,25,25,25,25,25,25,25,25,50," + @"100,100,100,100,100,100\nuc54.png,ucb54.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data55 = @"日蝕王\n日蝕王\nイクリプス\n日蝕王,uc55,0\n" + @"2500,1500,250,400,6\n250,230,240,250,255,255,0,15\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"10,10,10,10,10,25," + @"10,10,10,10,10,25,25,25,25,25," + @"100,100,100,100,100,100\nuc55.png,ucb55.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + NSString *data56 = @"彗星王\n彗星王\nコメット\n彗星王,uc56,0\n" + @"5000,2500,300,400,6\n255,255,255,255,255,255,0,15\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n" + @"10,10,10,10,10,10," + @"10,10,10,10,10,10,10,10,10,10," + @"100,100,100,100,100,100\nuc56.png,ucb56.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n"; + + for (int i=1; i<=chipNumb; i++) { + NSString *fdata = @"data/UnitChip/UCdata"; + + fdata = [fdata stringByAppendingFormat:@"%d.txt", i]; + + switch (i) { + case 1: + [data1 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 2: + [data2 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 3: + [data3 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 4: + [data4 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 5: + [data5 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 6: + [data6 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 7: + [data7 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 8: + [data8 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 9: + [data9 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 10: + [data10 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 11: + [data11 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 12: + [data12 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 13: + [data13 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 14: + [data14 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 15: + [data15 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 16: + [data16 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 17: + [data17 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 18: + [data18 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 19: + [data19 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 20: + [data20 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 21: + [data21 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 22: + [data22 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 23: + [data23 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 24: + [data24 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 25: + [data25 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 26: + [data26 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 27: + [data27 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 28: + [data28 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 29: + [data29 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 30: + [data30 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 31: + [data31 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 32: + [data32 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 33: + [data33 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 34: + [data34 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 35: + [data35 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 36: + [data36 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 37: + [data37 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 38: + [data38 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 39: + [data39 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 40: + [data40 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 41: + [data41 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 42: + [data42 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 43: + [data43 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 44: + [data44 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 45: + [data45 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 46: + [data46 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 47: + [data47 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 48: + [data48 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 49: + [data49 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 50: + [data50 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 51: + [data51 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 52: + [data52 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 53: + [data53 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 54: + [data54 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 55: + [data55 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 56: + [data56 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + + + default: + + break; + } + + } + + } + + + + fileData = [NSString stringWithContentsOfFile:pathUCP encoding:NSUTF8StringEncoding error:nil]; + fileDataArray = [fileData componentsSeparatedByString:@"\n"]; + int instantNum = [[fileDataArray objectAtIndex:0] intValue]; + + chipNumb = instantNum; + UCN = (int)chipNumb; + + for (int i=0; itype = [[items objectAtIndex:0] intValue]; + + int ins1 = 0; + int ins2 = 0; + int ins3 = 0; + for(int l= 0;[items count] > 1+l;l++){ + if(l%3 == 0) { + UC[i].S->list[ins1] = [[items objectAtIndex:1+l] intValue]; + ins1++; + } + if(l%3 == 1) { + UC[i].S->cost[ins2] = [[items objectAtIndex:1+l] intValue]; + ins2++; + } + if(l%3 == 2) { + UC[i].S->Lv[ins3] = [[items objectAtIndex:1+l] intValue]; + ins3++; + } + } + + UC[i].S->next = calloc(1, sizeof(SKILL)); + if(![[fileDataArray objectAtIndex:k+1] isEqualToString:@"----"]) UC[i].S = UC[i].S->next; + } + if(UC[i].S) UC[i].S->next = NULL; + UC[i].S = SKtop; + + int oopStart = 12; + for (int k = 12;![[fileDataArray objectAtIndex:k] isEqualToString:@"----"];k++) { + oopStart++; + } + + items = [[fileDataArray objectAtIndex:oopStart+1] componentsSeparatedByString:@","]; + + UC[i].CM.A = [[items objectAtIndex:0] intValue]; + UC[i].CM.B = [[items objectAtIndex:1] intValue]; + UC[i].CM.C = [[items objectAtIndex:2] intValue]; + UC[i].CM.D = [[items objectAtIndex:3] intValue]; + + items = [[fileDataArray objectAtIndex:oopStart+3] componentsSeparatedByString:@","]; + + if([[items objectAtIndex:0] intValue] >= 0){ + UC[i].eHandL = EQ[[[items objectAtIndex:0] intValue]]; + UC[i].eHandL.A = EQ[[[items objectAtIndex:0] intValue]].A; + UC[i].eHandLflag = true; + if(UC[i].eHandL.type == 7) + UC[i].eHandRflag = true; + } + if([[items objectAtIndex:1] intValue] >= 0){ + UC[i].eHandR = EQ[[[items objectAtIndex:1] intValue]]; + UC[i].eHandR.A = EQ[[[items objectAtIndex:1] intValue]].A; + UC[i].eHandRflag = true; + if(UC[i].eHandR.type == 7) + UC[i].eHandLflag = true; + } + if([[items objectAtIndex:2] intValue] >= 0){ + UC[i].eHead = EQ[[[items objectAtIndex:2] intValue]]; + UC[i].eHeadflag = true; + } + if([[items objectAtIndex:3] intValue] >= 0){ + UC[i].eBody = EQ[[[items objectAtIndex:3] intValue]]; + UC[i].eBodyflag = true; + } + if([[items objectAtIndex:4] intValue] >= 0){ + UC[i].eFoot = EQ[[[items objectAtIndex:4] intValue]]; + UC[i].eFootflag = true; + } + if([[items objectAtIndex:5] intValue] >= 0){ + UC[i].eArm = EQ[[[items objectAtIndex:5] intValue]]; + UC[i].eArmflag = true; + } + + items = [[fileDataArray objectAtIndex:oopStart+4] componentsSeparatedByString:@","]; + + + items = [[fileDataArray objectAtIndex:oopStart+5] componentsSeparatedByString:@","]; + + UC[i].chipNumb = i; + } + + + InitialFlag = true; +} + +-(void)saveData{ + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + char *cwd; + cwd = getcwd(NULL, 0); + + + + for (int i=0; itype]]; + for (int j = 0;UC[i].S->list[j] > 0;j++) { + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d", UC[i].S->list[j]]]; + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%g", UC[i].S->cost[j]]]; + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d", UC[i].S->Lv[j]]]; + } + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"\n"]]; + UC[i].S = UC[i].S->next; + }UC[i].S = SKtop; + + + + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"----\n"]]; + + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].CM.A]]; + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d", UC[i].CM.B]]; + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d", UC[i].CM.C]]; + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d", UC[i].CM.D]]; + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"\n"]]; + + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"----\n"]]; + + + if(UC[i].eHandL.nameID){ + for(int j = 0;j < eItemNum;j++){ + if([UC[i].eHandL.nameID isEqualToString:EQ[j].nameID]){ + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"%d",j]]; + } + } + }else{ + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"-1"]]; + } + + if(UC[i].eHandR.nameID){ + for(int j = 0;j < eItemNum;j++){ + if([UC[i].eHandR.nameID isEqualToString:EQ[j].nameID]){ + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d",j]]; + } + } + }else{ + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",-1"]]; + } + + if(UC[i].eHead.nameID){ + for(int j = 0;j < eItemNum;j++){ + if([UC[i].eHead.nameID isEqualToString:EQ[j].nameID]){ + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d",j]]; + } + } + }else{ + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",-1"]]; + } + + if(UC[i].eBody.nameID){ + for(int j = 0;j < eItemNum;j++){ + if([UC[i].eBody.nameID isEqualToString:EQ[j].nameID]){ + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d",j]]; + } + } + }else{ + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",-1"]]; + } + + if(UC[i].eFoot.nameID){ + for(int j = 0;j < eItemNum;j++){ + if([UC[i].eFoot.nameID isEqualToString:EQ[j].nameID]){ + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d",j]]; + } + } + }else{ + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",-1"]]; + } + + if(UC[i].eArm.nameID){ + for(int j = 0;j < eItemNum;j++){ + if([UC[i].eArm.nameID isEqualToString:EQ[j].nameID]){ + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d",j]]; + } + } + }else{ + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",-1"]]; + } + + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"\n"]]; + + //装飾品は改行して入る予定 + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"装飾品\n"]]; + //消耗品は改行して入る予定 + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"消耗品\n"]]; + + fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"----\n"]]; + + [fileData writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + + if(1){ + NSData *f2Data = [UC[i].img TIFFRepresentation]; + NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:f2Data]; + f2Data = [brep representationUsingType:NSPNGFileType properties:nil]; + + NSString *bcPath = @"data/UnitChip/img/uc"; + bcPath = [bcPath stringByAppendingFormat:@"%d", i + 1]; + + [f2Data writeToFile:bcPath atomically:YES]; + } + + if(1){ + NSData *f2Data = [UC[i].imgb TIFFRepresentation]; + NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:f2Data]; + f2Data = [brep representationUsingType:NSPNGFileType properties:nil]; + + NSString *bcPath = @"data/UnitChip/img/ucb"; + bcPath = [bcPath stringByAppendingFormat:@"%d", i + 1]; + + [f2Data writeToFile:bcPath atomically:YES]; + } + } + + +} + + +-(void)saveDataAL{ + + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + + for (int i=0; i 0) fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"--------"]] stringByAppendingString:@"\n"]; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].A->name]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->trig]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->type]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->melee]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->P]] stringByAppendingString:@"\n"]; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->rangeA]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->rangeB]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->extent]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->bullet]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->hitCount]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->successRate]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->vigor]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->hitPercent]] stringByAppendingString:@"\n"]; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->costType]] stringByAppendingString:@","]; + if(UC[i].A->costType == 0){ + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].A->MP]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->pMP]] stringByAppendingString:@","]; + }else if(UC[i].A->costType == 1){ + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].A->AP]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->pAP]] stringByAppendingString:@","]; + }else if(UC[i].A->costType == 2){ + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].A->HP]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->pHP]] stringByAppendingString:@","]; + } + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->cSupply]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->cFood]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->cMoney]] stringByAppendingString:@"\n"]; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->riku]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->chu]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->umi]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->sora]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->dmgExtend]] stringByAppendingString:@"\n"]; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].A->cmd]] stringByAppendingString:@"\n"]; + + if(UC[i].A->msg){ + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].A->msg]] stringByAppendingString:@"\n"]; + } + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"]; + + DAMAGE *dTop = UC[i].A->D; + while (UC[i].A->D) { + if(UC[i].A->D->count <= 0 && UC[i].A->D->sort == 0){ + UC[i].A->D = NULL; + break; + } + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->type]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].A->D->count]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].A->D->pCount]] stringByAppendingString:@"\n"]; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->seed]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->sort]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->continium]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->absolute]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->beam]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->noSizeFix]] stringByAppendingString:@"\n"]; + + UC[i].A->D = UC[i].A->D->next; + }UC[i].A->D = dTop; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"]; + + DMGEXTEND *eTop = UC[i].A->E; + while (UC[i].A->E) { + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->E->rate]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->E->hit]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->E->atkHit]] stringByAppendingString:@"\n"]; + + UC[i].A->E = UC[i].A->E->next; + }UC[i].A->E = eTop; + + + UC[i].A = UC[i].A->next; + Acnt++; + }UC[i].A = aTop; + + + + + [fileData writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + } + +} + +-(void)saveDataAL2{ + + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + + for (int i=0; i 0) fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"--------"]] stringByAppendingString:@"\n"]; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", LC[i].A->name]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->trig]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->type]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->melee]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->P]] stringByAppendingString:@"\n"]; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->rangeA]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->rangeB]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->extent]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->bullet]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->hitCount]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->successRate]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->vigor]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->hitPercent]] stringByAppendingString:@"\n"]; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->costType]] stringByAppendingString:@","]; + if(LC[i].A->costType == 0){ + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", LC[i].A->EN]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->pEN]] stringByAppendingString:@","]; + }else if(LC[i].A->costType == 1){ + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", LC[i].A->HP]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->pHP]] stringByAppendingString:@","]; + } + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->cSupply]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->cFood]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->cMoney]] stringByAppendingString:@"\n"]; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->riku]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->chu]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->umi]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->sora]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->dmgExtend]] stringByAppendingString:@"\n"]; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", LC[i].A->cmd]] stringByAppendingString:@"\n"]; + + if(LC[i].A->msg){ + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", LC[i].A->msg]] stringByAppendingString:@"\n"]; + } + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"]; + + DAMAGE *dTop = LC[i].A->D; + while (LC[i].A->D) { + if(LC[i].A->D->count <= 0 && LC[i].A->D->sort == 0){ + LC[i].A->D = NULL; + break; + } + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->type]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", LC[i].A->D->count]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", LC[i].A->D->pCount]] stringByAppendingString:@"\n"]; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->seed]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->sort]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->continium]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->absolute]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->beam]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->noSizeFix]] stringByAppendingString:@"\n"]; + + LC[i].A->D = LC[i].A->D->next; + }LC[i].A->D = dTop; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"]; + + DMGEXTEND *eTop = LC[i].A->E; + while (LC[i].A->E) { + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->E->rate]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->E->hit]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->E->atkHit]] stringByAppendingString:@"\n"]; + + LC[i].A->E = LC[i].A->E->next; + }LC[i].A->E = eTop; + + + LC[i].A = LC[i].A->next; + Acnt++; + }LC[i].A = aTop; + + + + + [fileData writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + } + +} + +-(void)saveDataALEQ{ + + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + + for (int i=0; i 0) fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"--------"]] stringByAppendingString:@"\n"]; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", EQ[i].A->name]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->trig]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->type]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->melee]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->P]] stringByAppendingString:@"\n"]; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->rangeA]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->rangeB]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->extent]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->bullet]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->hitCount]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->successRate]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->vigor]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->hitPercent]] stringByAppendingString:@"\n"]; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->costType]] stringByAppendingString:@","]; + if(EQ[i].A->costType == 0){ + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].A->MP]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->pMP]] stringByAppendingString:@","]; + }else if(EQ[i].A->costType == 1){ + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].A->AP]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->pAP]] stringByAppendingString:@","]; + }else if(EQ[i].A->costType == 2){ + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].A->HP]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->pHP]] stringByAppendingString:@","]; + } + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->cSupply]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->cFood]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->cMoney]] stringByAppendingString:@"\n"]; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->riku]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->chu]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->umi]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->sora]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->dmgExtend]] stringByAppendingString:@"\n"]; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", EQ[i].A->cmd]] stringByAppendingString:@"\n"]; + + if(EQ[i].A->msg){ + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", EQ[i].A->msg]] stringByAppendingString:@"\n"]; + } + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"]; + + DAMAGE *dTop = EQ[i].A->D; + while (EQ[i].A->D) { + if(EQ[i].A->D->count <= 0 && EQ[i].A->D->sort == 0){ + EQ[i].A->D = NULL; + break; + } + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->type]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].A->D->count]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].A->D->pCount]] stringByAppendingString:@"\n"]; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->seed]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->sort]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->continium]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->absolute]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->beam]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->noSizeFix]] stringByAppendingString:@"\n"]; + + EQ[i].A->D = EQ[i].A->D->next; + }EQ[i].A->D = dTop; + + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"]; + + DMGEXTEND *eTop = EQ[i].A->E; + while (EQ[i].A->E) { + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->E->rate]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->E->hit]] stringByAppendingString:@","]; + fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->E->atkHit]] stringByAppendingString:@"\n"]; + + EQ[i].A->E = EQ[i].A->E->next; + }EQ[i].A->E = eTop; + + + EQ[i].A = EQ[i].A->next; + Acnt++; + }EQ[i].A = aeTop; + + + + + [fileData writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + } + +} + + +-(void)initFileDirectoryItem{ + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + char *cwd; + cwd = getcwd(NULL, 0); + + + NSData *InitialData = [NSData dataWithContentsOfFile:@"data/ItemList/preset.txt"]; + NSString *pathILI = @"data/ItemList/img"; + NSString *pathDATA2 = @"data/ItemList/preset.txt"; + NSString *pathIL = @"data/ItemList/preset.txt"; + NSString *fileData = nil; + + itemNumb = 3; + eItemNum = itemNumb; + if(!InitialData){ + [[NSFileManager defaultManager] createDirectoryAtPath:pathILI withIntermediateDirectories:YES attributes:nil error:nil]; + [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil]; + + [[NSFileManager defaultManager] createFileAtPath:pathIL contents:nil attributes:nil]; + + [pathIL writeToFile:[NSString stringWithFormat:@"%ld", itemNumb] atomically:YES encoding:NSUTF8StringEncoding error:nil]; + + NSString *data1 = @"鉄の剣\n鉄の剣\neq1\n1000,30,2\n0,0,0,0,0\n32,0,0,0,0,0,0\n2,0,0,0,0,0,0\n0,0,0,0\n0,0,0,0,0,0,0,0,0,0,0,0\n0,0,0,0,0,0,0,0,0,0\n鉄で出来た剣\n----\n"; + NSString *data2 = @"鋼の剣\n鋼の剣\neq2\n1500,35,2\n0,0,0,0,0\n50,0,0,0,0,0,0\n2,0,0,0,0,0,0\n0,0,0,0\n0,0,0,0,0,0,0,0,0,0,0,0\n0,0,0,0,0,0,0,0,0,0\n鋼で出来た剣\n----\n"; + NSString *data3 = @"銀の剣\n銀の剣\neq3\n2000,40,2\n0,0,0,0,0\n90,0,0,0,0,0,0\n2,0,0,0,0,0,0\n0,0,0,0\n0,0,0,0,0,0,0,0,0,0,0,0\n0,0,0,0,0,0,0,0,0,0\n銀で出来た剣\n----\n"; + + for (int i=1; i<=itemNumb; i++) { + NSString *fdata = @"data/ItemList/ILdata"; + + fdata = [fdata stringByAppendingFormat:@"%d.txt", i]; + + switch (i) { + case 1: + [data1 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 2: + [data2 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 3: + [data3 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + default: + + break; + } + + } + + } + + fileData = [NSString stringWithContentsOfFile:pathIL encoding:NSUTF8StringEncoding error:nil]; + fileDataArray = [fileData componentsSeparatedByString:@"\n"]; + int instantNum = [[fileDataArray objectAtIndex:0] intValue]; + + itemNumb = instantNum; + eItemNum = (int)itemNumb; + + for (int i=0; i< itemNumb; i++) { + NSString *fdata = @"data/ItemList/ILdata"; + + fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1]; + + fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil]; + fileDataArray = [fileData componentsSeparatedByString:@"\n"]; + + EQ[i].name = [[fileDataArray objectAtIndex:0] retain]; + EQ[i].nameRecognition = [[fileDataArray objectAtIndex:1] retain]; + EQ[i].nameID = [[fileDataArray objectAtIndex:2] retain]; + + NSArray *items = [[fileDataArray objectAtIndex:3] componentsSeparatedByString:@","]; + + EQ[i].price = [[items objectAtIndex:0] intValue]; + EQ[i].Weight = [[items objectAtIndex:1] intValue]; + EQ[i].type = [[items objectAtIndex:2] intValue]; + + items = [[fileDataArray objectAtIndex:4] componentsSeparatedByString:@","]; + + EQ[i].HP = [[items objectAtIndex:0] intValue]; + EQ[i].MP = [[items objectAtIndex:1] intValue]; + EQ[i].AP = [[items objectAtIndex:2] intValue]; + EQ[i].WT = [[items objectAtIndex:3] intValue]; + EQ[i].MOV = [[items objectAtIndex:4] intValue]; + + items = [[fileDataArray objectAtIndex:5] componentsSeparatedByString:@","]; + + EQ[i].STR = [[items objectAtIndex:0] intValue]; + EQ[i].VIT = [[items objectAtIndex:1] intValue]; + EQ[i].AGI = [[items objectAtIndex:2] intValue]; + EQ[i].DEX = [[items objectAtIndex:3] intValue]; + EQ[i].MEN = [[items objectAtIndex:4] intValue]; + EQ[i].INT = [[items objectAtIndex:5] intValue]; + EQ[i].LUK = [[items objectAtIndex:6] intValue]; + + items = [[fileDataArray objectAtIndex:6] componentsSeparatedByString:@","]; + + EQ[i].pSTR = [[items objectAtIndex:0] intValue]; + EQ[i].pVIT = [[items objectAtIndex:1] intValue]; + EQ[i].pAGI = [[items objectAtIndex:2] intValue]; + EQ[i].pDEX = [[items objectAtIndex:3] intValue]; + EQ[i].pMEN = [[items objectAtIndex:4] intValue]; + EQ[i].pINT = [[items objectAtIndex:5] intValue]; + EQ[i].pLUK = [[items objectAtIndex:6] intValue]; + + items = [[fileDataArray objectAtIndex:7] componentsSeparatedByString:@","]; + + EQ[i].recHP = [[items objectAtIndex:0] intValue]; + EQ[i].recpHP = [[items objectAtIndex:1] intValue]; + EQ[i].recMP = [[items objectAtIndex:2] intValue]; + EQ[i].recpMP = [[items objectAtIndex:3] intValue]; + + items = [[fileDataArray objectAtIndex:8] componentsSeparatedByString:@","]; + + EQ[i].R.blow = [[items objectAtIndex:0] intValue]; + EQ[i].R.slash = [[items objectAtIndex:1] intValue]; + EQ[i].R.stub = [[items objectAtIndex:2] intValue]; + EQ[i].R.arrow = [[items objectAtIndex:3] intValue]; + EQ[i].R.gun = [[items objectAtIndex:4] intValue]; + EQ[i].R.shell = [[items objectAtIndex:5] intValue]; + EQ[i].R.paralysis = [[items objectAtIndex:6] intValue]; + EQ[i].R.poison = [[items objectAtIndex:7] intValue]; + EQ[i].R.charm = [[items objectAtIndex:8] intValue]; + EQ[i].R.confusion = [[items objectAtIndex:9] intValue]; + EQ[i].R.sleep = [[items objectAtIndex:10] intValue]; + EQ[i].R.silent = [[items objectAtIndex:11] intValue]; + + items = [[fileDataArray objectAtIndex:9] componentsSeparatedByString:@","]; + + EQ[i].R.flame = [[items objectAtIndex:0] intValue]; + EQ[i].R.cold = [[items objectAtIndex:1] intValue]; + EQ[i].R.electoric = [[items objectAtIndex:2] intValue]; + EQ[i].R.air = [[items objectAtIndex:3] intValue]; + EQ[i].R.water = [[items objectAtIndex:4] intValue]; + EQ[i].R.gas = [[items objectAtIndex:5] intValue]; + EQ[i].R.holy = [[items objectAtIndex:6] intValue]; + EQ[i].R.dark = [[items objectAtIndex:7] intValue]; + EQ[i].R.explosion = [[items objectAtIndex:8] intValue]; + EQ[i].R.blood = [[items objectAtIndex:9] intValue]; + + EQ[i].comment = [[fileDataArray objectAtIndex:10] retain]; + } + + + +} + +-(void)initFileDirectoryCombo{ + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + NSData *InitialData = [NSData dataWithContentsOfFile:@"data/ComboList/preset.txt"]; + NSString *pathCL = @"data/ComboList/preset.txt"; + NSString *path = @"data/ComboList"; + NSString *fileData = nil; + + + comboItemNumb = 2; + if(!InitialData){ + [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil]; + [[NSFileManager defaultManager] createFileAtPath:pathCL contents:nil attributes:nil]; + + NSString *data1 = @"0,1,2,3\n####\n236A,0,0\n####\nA>A>A\nA>A>B"; + + NSString *data2 = @"0,1,2,3\n####\n236A,0,0\n####\nA>A>A\nA>A>B"; + + for (int i=1; i<=comboItemNumb; i++) { + NSString *fdata = @"data/ComboList/CLdata"; + + fdata = [fdata stringByAppendingFormat:@"%d.txt", i]; + + switch (i) { + case 1: + [data1 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 2: + [data2 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + default: + + break; + } + + } + + } + + NSArray *fileDataArray2; + for (int i = 0; i< itemNumb; i++){ + COMMANDS *CStop = UC[i].CM.cs; + COMBO *COtop = UC[i].CM.co; + + NSString *fdata = @"data/ComboList/CLdata"; + + fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1]; + + fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil]; + fileDataArray2 = [fileData componentsSeparatedByString:@"\n####\n"]; + + NSArray *items = [[fileDataArray2 objectAtIndex:0] componentsSeparatedByString:@","]; + + /* + UC[i].CM.A = [[items objectAtIndex:0] intValue]; + UC[i].CM.B = [[items objectAtIndex:1] intValue]; + UC[i].CM.C = [[items objectAtIndex:2] intValue]; + UC[i].CM.D = [[items objectAtIndex:3] intValue]; + */ + fileDataArray = [[fileDataArray2 objectAtIndex:1] componentsSeparatedByString:@"\n"]; + + for(int k = 0;k < [fileDataArray count];k++){ + if (k == 0) { + UC[i].CM.cs = calloc(1, sizeof(COMMANDS)); + CStop = UC[i].CM.cs; + } + items = [[fileDataArray objectAtIndex:k] componentsSeparatedByString:@","]; + + NSLog(@"%@", UC[i].CM.cs->cmd); + + UC[i].CM.cs->cmd = [[items objectAtIndex:0] retain]; + UC[i].CM.cs->waza = [[items objectAtIndex:1] intValue]; + UC[i].CM.cs->hasei = [[items objectAtIndex:2] retain]; + + UC[i].CM.cs->next = calloc(1, sizeof(COMMANDS)); + UC[i].CM.cs = UC[i].CM.cs->next; + } + UC[i].CM.cs = NULL; + + fileDataArray = [[fileDataArray2 objectAtIndex:2] componentsSeparatedByString:@"\n"]; + + + for(int k = 0;k < [fileDataArray count];k++){ + if (k == 0) { + UC[i].CM.co = calloc(1, sizeof(COMBO)); + COtop = UC[i].CM.co; + } + items = [[fileDataArray objectAtIndex:k] componentsSeparatedByString:@","]; + + UC[i].CM.co->mbo = [[items objectAtIndex:0] retain]; + + UC[i].CM.co->next = calloc(1, sizeof(COMBO)); + UC[i].CM.co = UC[i].CM.co->next; + } + UC[i].CM.co = NULL; + + + UC[i].CM.co = COtop; + UC[i].CM.cs = CStop; + } + + +} + +-(void)initFileDirectoryAttack{ + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + char *cwd; + cwd = getcwd(NULL, 0); + + + NSData *InitialData = [NSData dataWithContentsOfFile:@"data/AttackList/preset.txt"]; + NSString *pathALI = @"data/AttackList/img"; + NSString *pathDATA2 = @"data/AttackList/preset.txt"; + NSString *pathAL = @"data/AttackList/preset.txt"; + NSString *fileData = nil; + + itemNumb = [unitChipListMA count]; + if(!InitialData){ + [[NSFileManager defaultManager] createDirectoryAtPath:pathALI withIntermediateDirectories:YES attributes:nil error:nil]; + [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil]; + + [[NSFileManager defaultManager] createFileAtPath:pathAL contents:nil attributes:nil]; + + + + for (int i=1; i<=itemNumb; i++) { + NSString *fdata = @"data/AttackList/ALdata"; + + fdata = [fdata stringByAppendingFormat:@"%d.txt", i]; + + switch (i) { + default: + + break; + } + + } + + } + + NSArray *fileDataArray2; + ATTACK *Atop; + for (int i=0; i< itemNumb; i++) { + NSString *fdata = @"data/AttackList/ALdata"; + + fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1]; + + fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil]; + fileDataArray2 = [fileData componentsSeparatedByString:@"--------\n"]; + + bool initAttackAdd = false; + + if(fileData == 0x00007fff7e19dfa0) continue; + + if([fileDataArray2 count] <= 0) continue; + + for(int j=0;j < [fileDataArray2 count];j++){ + if(![[fileDataArray2 objectAtIndex:0] isEqualToString:@""]) UC[i].attackListNum++; + fileDataArray = [[fileDataArray2 objectAtIndex:j] componentsSeparatedByString:@"\n"]; + + if(!initAttackAdd) + [self AddATTACK:&UC[i].A :0]; + + [self AddATTACK:&UC[i].A :j]; + + if(!initAttackAdd) { + Atop = UC[i].A; + } + initAttackAdd = true; + + UC[i].A->name = [[fileDataArray objectAtIndex:0] retain]; + + if([fileDataArray count] <= 1) continue; + NSArray *items = [[fileDataArray objectAtIndex:1] componentsSeparatedByString:@","]; + + UC[i].A->trig = [[items objectAtIndex:0] intValue]; + UC[i].A->type = [[items objectAtIndex:1] intValue]; + UC[i].A->melee = [[items objectAtIndex:2] intValue]; + UC[i].A->P = [[items objectAtIndex:3] intValue]; + + items = [[fileDataArray objectAtIndex:2] componentsSeparatedByString:@","]; + + UC[i].A->rangeA = [[items objectAtIndex:0] intValue]; + UC[i].A->rangeB = [[items objectAtIndex:1] intValue]; + UC[i].A->extent = [[items objectAtIndex:2] intValue]; + UC[i].A->bullet = [[items objectAtIndex:3] intValue]; + UC[i].A->hitCount = [[items objectAtIndex:4] intValue]; + UC[i].A->successRate = [[items objectAtIndex:5] intValue]; + UC[i].A->vigor = [[items objectAtIndex:6] intValue]; + UC[i].A->hitPercent = [[items objectAtIndex:7] intValue]; + + items = [[fileDataArray objectAtIndex:3] componentsSeparatedByString:@","]; + + UC[i].A->costType = [[items objectAtIndex:0] intValue]; + + if(UC[i].A->costType == 0) { + UC[i].A->MP = [[items objectAtIndex:1] intValue]; + UC[i].A->pMP = [[items objectAtIndex:2] intValue]; + } + else if(UC[i].A->costType == 1) { + UC[i].A->AP = [[items objectAtIndex:1] intValue]; + UC[i].A->pAP = [[items objectAtIndex:2] intValue]; + } + else if(UC[i].A->costType == 2) { + UC[i].A->HP = [[items objectAtIndex:1] intValue]; + UC[i].A->pHP = [[items objectAtIndex:2] intValue]; + } + + UC[i].A->cSupply = [[items objectAtIndex:3] intValue]; + UC[i].A->cFood = [[items objectAtIndex:4] intValue]; + UC[i].A->cMoney = [[items objectAtIndex:5] intValue]; + + items = [[fileDataArray objectAtIndex:4] componentsSeparatedByString:@","]; + + UC[i].A->riku = [[items objectAtIndex:0] intValue]; + UC[i].A->chu = [[items objectAtIndex:1] intValue]; + UC[i].A->umi = [[items objectAtIndex:2] intValue]; + UC[i].A->sora = [[items objectAtIndex:3] intValue]; + UC[i].A->dmgExtend = [[items objectAtIndex:4] intValue]; + + UC[i].A->cmd = [[fileDataArray objectAtIndex:5] retain]; + UC[i].A->msg = @""; + + //[self AddDAMAGE:&UC[i].A->D :0]; + //[self AddDMGEXTEND:&UC[i].A->E :0]; + + DAMAGE *Dtop = UC[i].A->D; + DMGEXTEND *Etop = UC[i].A->E; + static bool omfgFlag; + + int stringType = 0; + int stringRange = 1; + int stringNumber = 0; + for (int k = 6; k<[fileDataArray count];k++) { + NSString *str = [fileDataArray objectAtIndex:k]; + NSRange rangeSearch, rangeSearch2; + NSArray *rangeArray; + rangeSearch = [str rangeOfString:@"####"]; + rangeArray = [str componentsSeparatedByString:@","]; + rangeSearch2 = [str rangeOfString:@"----"]; + static int omg = 0; + static int omg2 = 0; + + if(k == [fileDataArray count] - 1){ + omg2 = 0; + } + + if(stringType == 0) + if (rangeSearch.location != NSNotFound) { + }else if(rangeSearch2.location != NSNotFound){ + stringType = 1; + omg = 0; + }else{ + if(UC[i].A->msg == NULL){ + UC[i].A->msg = [str retain]; + }else{ + if(omfgFlag) UC[i].A->msg = [[UC[i].A->msg stringByAppendingFormat:@"\n"] retain]; + UC[i].A->msg = [[UC[i].A->msg stringByAppendingFormat:@"%@", str] retain]; + omfgFlag = true; + } + }else if(stringType == 1){stringRange ++; + if(rangeSearch2.location != NSNotFound){ + stringType = 2; + } + else if(rangeSearch.location != NSNotFound){ + stringRange = 0; + }else if(stringRange == 1){ + if(omg == 0) { + [self AddDAMAGE:&UC[i].A->D :0]; + Dtop = UC[i].A->D; + } + omg++; + UC[i].A->D->type = [[rangeArray objectAtIndex:0] intValue]; + UC[i].A->D->count = [[rangeArray objectAtIndex:1] intValue]; + UC[i].A->D->pCount = [[rangeArray objectAtIndex:2] intValue]; + }else if(stringRange == 2){ + + UC[i].A->D->seed = [[rangeArray objectAtIndex:0] intValue]; + UC[i].A->D->sort = [[rangeArray objectAtIndex:1] intValue]; + UC[i].A->D->continium = [[rangeArray objectAtIndex:2] intValue]; + UC[i].A->D->absolute = [[rangeArray objectAtIndex:3] intValue]; + UC[i].A->D->beam = [[rangeArray objectAtIndex:4] intValue]; + UC[i].A->D->noSizeFix = [[rangeArray objectAtIndex:5] intValue]; + + stringNumber++; + NSString *str2 = [fileDataArray objectAtIndex:k+1]; + NSRange rangeSearch3 = [str2 rangeOfString:@"####"]; + if(stringNumber >= 1 && rangeSearch3.location != NSNotFound) [self AddDAMAGE:&UC[i].A->D :stringNumber-1]; + UC[i].A->D = UC[i].A->D->next; + } + }else if(stringType == 2){stringRange ++; + + if(rangeSearch2.location != NSNotFound){ + stringType = 3; + } + else if(rangeSearch.location != NSNotFound){ + stringRange = 0; + stringNumber = 0; + }else if(stringRange == 1){stringNumber++; + if(omg2 == 0) { + [self AddDMGEXTEND:&UC[i].A->E :0]; + Etop = UC[i].A->E; + } + omg2++; + UC[i].A->E->rate = [[rangeArray objectAtIndex:0] intValue]; + UC[i].A->E->hit = [[rangeArray objectAtIndex:2] intValue]; + UC[i].A->E->atkHit = [[rangeArray objectAtIndex:1] intValue]; + + NSString *str2 = [fileDataArray objectAtIndex:k+1]; + NSRange rangeSearch3 = [str2 rangeOfString:@"####"]; + if(stringNumber >= 1 && rangeSearch3.location != NSNotFound) [self AddDMGEXTEND:&UC[i].A->E :stringNumber-1]; + + UC[i].A->E = UC[i].A->E->next; + } + + } + } + UC[i].A->D = Dtop; + UC[i].A->E = Etop; + + omfgFlag = false; + if([fileDataArray2 count]-1 > j) UC[i].A = UC[i].A->next; + else UC[i].A->next = NULL; + } + + if(UC[i].attackListNum <= 0) Atop = NULL; + UC[i].A = Atop; + } + + /* + for (int i=0; i< itemNumb; i++) + [self setTotalDamage:i row:<#(int)#>]; + */ +} + +-(void)initFileDirectoryAttack2{ + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + char *cwd; + cwd = getcwd(NULL, 0); + + + NSData *InitialData = [NSData dataWithContentsOfFile:@"data/AttackList2/preset.txt"]; + NSString *pathALI = @"data/AttackList2/img"; + NSString *pathDATA2 = @"data/AttackList2/preset.txt"; + NSString *pathAL = @"data/AttackList2/preset.txt"; + NSString *fileData = nil; + + itemNumb = LCN; + if(!InitialData){ + [[NSFileManager defaultManager] createDirectoryAtPath:pathALI withIntermediateDirectories:YES attributes:nil error:nil]; + [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil]; + + [[NSFileManager defaultManager] createFileAtPath:pathAL contents:nil attributes:nil]; + + NSString *data1 = @"砲撃\n1,0,0,1\n1,3,0,10,1,100,0,30\n0,0,0,0,0,0\n0,0,0,0,0\nA\n####\n----\n####\n0,800,0\n5,0,0,0,0,0\n----\n####\n5,80,1\n--------\n"; + + NSString *data2 = @"砲撃\n1,0,0,1\n1,3,0,0,20,100,0,30\n0,0,0,0,0,0\n0,0,0,0,0\nA\n####\n----\n####\n0,1000,0\n5,0,0,0,0,0\n----\n####\n4,100,1\n--------\n"; + + + for (int i=1; i<=itemNumb; i++) { + NSString *fdata = @"data/AttackList2/LALdata"; + + fdata = [fdata stringByAppendingFormat:@"%d.txt", i]; + + switch (i) { + case 1: + [data1 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + case 2: + [data2 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil]; + break; + default: + + break; + } + + } + + } + + NSArray *fileDataArray2; + ATTACK *Atop; + for (int i=0; i< itemNumb; i++) { + NSString *fdata = @"data/AttackList2/LALdata"; + + fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1]; + + fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil]; + fileDataArray2 = [fileData componentsSeparatedByString:@"--------\n"]; + + bool initAttackAdd = false; + + if(fileData == 0x00007fff7e19dfa0) continue; + + for(int j=0;j < [fileDataArray2 count];j++){ + if(![[fileDataArray2 objectAtIndex:0] isEqualToString:@""]) LC[i].attackListNum++; + fileDataArray = [[fileDataArray2 objectAtIndex:j] componentsSeparatedByString:@"\n"]; + + if(!initAttackAdd) + [self AddATTACK:&LC[i].A :0]; + + [self AddATTACK:&LC[i].A :j]; + + if(!initAttackAdd) {Atop = LC[i].A;} + initAttackAdd = true; + + LC[i].A->name = [[fileDataArray objectAtIndex:0] retain]; + + if([fileDataArray count] <= 1) continue; + NSArray *items = [[fileDataArray objectAtIndex:1] componentsSeparatedByString:@","]; + + LC[i].A->trig = [[items objectAtIndex:0] intValue]; + LC[i].A->type = [[items objectAtIndex:1] intValue]; + LC[i].A->melee = [[items objectAtIndex:2] intValue]; + LC[i].A->P = [[items objectAtIndex:3] intValue]; + + items = [[fileDataArray objectAtIndex:2] componentsSeparatedByString:@","]; + + LC[i].A->rangeA = [[items objectAtIndex:0] intValue]; + LC[i].A->rangeB = [[items objectAtIndex:1] intValue]; + LC[i].A->extent = [[items objectAtIndex:2] intValue]; + LC[i].A->bullet = [[items objectAtIndex:3] intValue]; + LC[i].A->hitCount = [[items objectAtIndex:4] intValue]; + LC[i].A->successRate = [[items objectAtIndex:5] intValue]; + LC[i].A->vigor = [[items objectAtIndex:6] intValue]; + LC[i].A->hitPercent = [[items objectAtIndex:7] intValue]; + + items = [[fileDataArray objectAtIndex:3] componentsSeparatedByString:@","]; + + LC[i].A->costType = [[items objectAtIndex:0] intValue]; + + if(LC[i].A->costType == 0) { + LC[i].A->EN = [[items objectAtIndex:1] intValue]; + LC[i].A->pEN = [[items objectAtIndex:2] intValue]; + } + else if(LC[i].A->costType == 1) { + LC[i].A->HP = [[items objectAtIndex:1] intValue]; + LC[i].A->pHP = [[items objectAtIndex:2] intValue]; + } + + LC[i].A->cSupply = [[items objectAtIndex:3] intValue]; + LC[i].A->cFood = [[items objectAtIndex:4] intValue]; + LC[i].A->cMoney = [[items objectAtIndex:5] intValue]; + + items = [[fileDataArray objectAtIndex:4] componentsSeparatedByString:@","]; + + LC[i].A->riku = [[items objectAtIndex:0] intValue]; + LC[i].A->chu = [[items objectAtIndex:1] intValue]; + LC[i].A->umi = [[items objectAtIndex:2] intValue]; + LC[i].A->sora = [[items objectAtIndex:3] intValue]; + LC[i].A->dmgExtend = [[items objectAtIndex:4] intValue]; + + LC[i].A->cmd = [[fileDataArray objectAtIndex:5] retain]; + LC[i].A->msg = @""; + + //[self AddDAMAGE:&UC[i].A->D :0]; + //[self AddDMGEXTEND:&UC[i].A->E :0]; + + DAMAGE *Dtop = LC[i].A->D; + DMGEXTEND *Etop = LC[i].A->E; + static bool omfgFlag; + + int stringType = 0; + int stringRange = 1; + int stringNumber = 0; + for (int k = 6; k<[fileDataArray count];k++) { + NSString *str = [fileDataArray objectAtIndex:k]; + NSRange rangeSearch, rangeSearch2; + NSArray *rangeArray; + rangeSearch = [str rangeOfString:@"####"]; + rangeArray = [str componentsSeparatedByString:@","]; + rangeSearch2 = [str rangeOfString:@"----"]; + static int omg = 0; + static int omg2 = 0; + + if(k == [fileDataArray count] - 1){ + omg2 = 0; + } + + if(stringType == 0) + if (rangeSearch.location != NSNotFound) { + }else if(rangeSearch2.location != NSNotFound){ + stringType = 1; + omg = 0; + }else{ + if(LC[i].A->msg == NULL){ + LC[i].A->msg = [str retain]; + }else{ + if(omfgFlag) LC[i].A->msg = [[LC[i].A->msg stringByAppendingFormat:@"\n"] retain]; + LC[i].A->msg = [[LC[i].A->msg stringByAppendingFormat:@"%@", str] retain]; + omfgFlag = true; + } + }else if(stringType == 1){stringRange ++; + if(rangeSearch2.location != NSNotFound){ + stringType = 2; + } + else if(rangeSearch.location != NSNotFound){ + stringRange = 0; + }else if(stringRange == 1){ + if(omg == 0) { + [self AddDAMAGE:&LC[i].A->D :0]; + Dtop = LC[i].A->D; + } + omg++; + LC[i].A->D->type = [[rangeArray objectAtIndex:0] intValue]; + LC[i].A->D->count = [[rangeArray objectAtIndex:1] intValue]; + LC[i].A->D->pCount = [[rangeArray objectAtIndex:2] intValue]; + }else if(stringRange == 2){ + + LC[i].A->D->seed = [[rangeArray objectAtIndex:0] intValue]; + LC[i].A->D->sort = [[rangeArray objectAtIndex:1] intValue]; + LC[i].A->D->continium = [[rangeArray objectAtIndex:2] intValue]; + LC[i].A->D->absolute = [[rangeArray objectAtIndex:3] intValue]; + LC[i].A->D->beam = [[rangeArray objectAtIndex:4] intValue]; + LC[i].A->D->noSizeFix = [[rangeArray objectAtIndex:5] intValue]; + + stringNumber++; + NSString *str2 = [fileDataArray objectAtIndex:k+1]; + NSRange rangeSearch3 = [str2 rangeOfString:@"####"]; + if(stringNumber >= 1 && rangeSearch3.location != NSNotFound) [self AddDAMAGE:&LC[i].A->D :stringNumber-1]; + LC[i].A->D = LC[i].A->D->next; + } + }else if(stringType == 2){stringRange ++; + + if(rangeSearch2.location != NSNotFound){ + stringType = 3; + } + else if(rangeSearch.location != NSNotFound){ + stringRange = 0; + stringNumber = 0; + }else if(stringRange == 1){stringNumber++; + if(omg2 == 0) { + [self AddDMGEXTEND:&LC[i].A->E :0]; + Etop = LC[i].A->E; + } + omg2++; + LC[i].A->E->rate = [[rangeArray objectAtIndex:0] intValue]; + LC[i].A->E->hit = [[rangeArray objectAtIndex:2] intValue]; + LC[i].A->E->atkHit = [[rangeArray objectAtIndex:1] intValue]; + + NSString *str2 = [fileDataArray objectAtIndex:k+1]; + NSRange rangeSearch3 = [str2 rangeOfString:@"####"]; + if(stringNumber >= 1 && rangeSearch3.location != NSNotFound) [self AddDMGEXTEND:&LC[i].A->E :stringNumber-1]; + + LC[i].A->E = LC[i].A->E->next; + } + + } + } + LC[i].A->D = Dtop; + LC[i].A->E = Etop; + + omfgFlag = false; + if([fileDataArray2 count]-1 > j) LC[i].A = LC[i].A->next; + else LC[i].A->next = NULL; + } + + if(LC[i].attackListNum <= 0) Atop = NULL; + LC[i].A = Atop; + } + + /* + for (int i=0; i< itemNumb; i++) + [self setTotalDamage:i row:<#(int)#>]; + */ +} + +-(void)initFileDirectoryAttackEQ{ + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + char *cwd; + cwd = getcwd(NULL, 0); + + + NSData *InitialData = [NSData dataWithContentsOfFile:@"data/AttackList3/preset.txt"]; + NSString *pathALI = @"data/AttackList3/img"; + NSString *pathDATA2 = @"data/AttackList3/preset.txt"; + NSString *pathAL = @"data/AttackList3/preset.txt"; + NSString *fileData = nil; + + itemNumb = [equipListMA count]; + if(!InitialData){ + [[NSFileManager defaultManager] createDirectoryAtPath:pathALI withIntermediateDirectories:YES attributes:nil error:nil]; + [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil]; + + [[NSFileManager defaultManager] createFileAtPath:pathAL contents:nil attributes:nil]; + + + + for (int i=1; i<=itemNumb; i++) { + NSString *fdata = @"data/AttackList3/IALdata"; + + fdata = [fdata stringByAppendingFormat:@"%d.txt", i]; + + switch (i) { + default: + + break; + } + + } + + } + + NSArray *fileDataArray2; + ATTACK *Atop; + for (int i=0; i< itemNumb; i++) { + NSString *fdata = @"data/AttackList3/IALdata"; + + fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1]; + + fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil]; + fileDataArray2 = [fileData componentsSeparatedByString:@"--------\n"]; + + bool initAttackAdd = false; + + if(fileData == 0x00007fff7e19dfa0) continue; + + if([fileDataArray2 count] <= 0) continue; + + for(int j=0;j < [fileDataArray2 count];j++){ + if(![[fileDataArray2 objectAtIndex:0] isEqualToString:@""]) EQ[i].attackListNum++; + fileDataArray = [[fileDataArray2 objectAtIndex:j] componentsSeparatedByString:@"\n"]; + + if(!initAttackAdd) + [self AddATTACK:&EQ[i].A :0]; + + [self AddATTACK:&EQ[i].A :j]; + + if(!initAttackAdd) { + Atop = EQ[i].A; + } + initAttackAdd = true; + + EQ[i].A->name = [[fileDataArray objectAtIndex:0] retain]; + + if([fileDataArray count] <= 1) continue; + NSArray *items = [[fileDataArray objectAtIndex:1] componentsSeparatedByString:@","]; + + EQ[i].A->trig = [[items objectAtIndex:0] intValue]; + EQ[i].A->type = [[items objectAtIndex:1] intValue]; + EQ[i].A->melee = [[items objectAtIndex:2] intValue]; + EQ[i].A->P = [[items objectAtIndex:3] intValue]; + + items = [[fileDataArray objectAtIndex:2] componentsSeparatedByString:@","]; + + EQ[i].A->rangeA = [[items objectAtIndex:0] intValue]; + EQ[i].A->rangeB = [[items objectAtIndex:1] intValue]; + EQ[i].A->extent = [[items objectAtIndex:2] intValue]; + EQ[i].A->bullet = [[items objectAtIndex:3] intValue]; + EQ[i].A->hitCount = [[items objectAtIndex:4] intValue]; + EQ[i].A->successRate = [[items objectAtIndex:5] intValue]; + EQ[i].A->vigor = [[items objectAtIndex:6] intValue]; + EQ[i].A->hitPercent = [[items objectAtIndex:7] intValue]; + + items = [[fileDataArray objectAtIndex:3] componentsSeparatedByString:@","]; + + EQ[i].A->costType = [[items objectAtIndex:0] intValue]; + + if(EQ[i].A->costType == 0) { + EQ[i].A->MP = [[items objectAtIndex:1] intValue]; + EQ[i].A->pMP = [[items objectAtIndex:2] intValue]; + } + else if(EQ[i].A->costType == 1) { + EQ[i].A->AP = [[items objectAtIndex:1] intValue]; + EQ[i].A->pAP = [[items objectAtIndex:2] intValue]; + } + else if(EQ[i].A->costType == 2) { + EQ[i].A->HP = [[items objectAtIndex:1] intValue]; + EQ[i].A->pHP = [[items objectAtIndex:2] intValue]; + } + + EQ[i].A->cSupply = [[items objectAtIndex:3] intValue]; + EQ[i].A->cFood = [[items objectAtIndex:4] intValue]; + EQ[i].A->cMoney = [[items objectAtIndex:5] intValue]; + + items = [[fileDataArray objectAtIndex:4] componentsSeparatedByString:@","]; + + EQ[i].A->riku = [[items objectAtIndex:0] intValue]; + EQ[i].A->chu = [[items objectAtIndex:1] intValue]; + EQ[i].A->umi = [[items objectAtIndex:2] intValue]; + EQ[i].A->sora = [[items objectAtIndex:3] intValue]; + EQ[i].A->dmgExtend = [[items objectAtIndex:4] intValue]; + + EQ[i].A->cmd = [[fileDataArray objectAtIndex:5] retain]; + EQ[i].A->msg = @""; + + //[self AddDAMAGE:&UC[i].A->D :0]; + //[self AddDMGEXTEND:&UC[i].A->E :0]; + + DAMAGE *Dtop = EQ[i].A->D; + DMGEXTEND *Etop = EQ[i].A->E; + static bool omfgFlag; + + int stringType = 0; + int stringRange = 1; + int stringNumber = 0; + for (int k = 6; k<[fileDataArray count];k++) { + NSString *str = [fileDataArray objectAtIndex:k]; + NSRange rangeSearch, rangeSearch2; + NSArray *rangeArray; + rangeSearch = [str rangeOfString:@"####"]; + rangeArray = [str componentsSeparatedByString:@","]; + rangeSearch2 = [str rangeOfString:@"----"]; + static int omg = 0; + static int omg2 = 0; + + if(k == [fileDataArray count] - 1){ + omg2 = 0; + } + + if(stringType == 0) + if (rangeSearch.location != NSNotFound) { + }else if(rangeSearch2.location != NSNotFound){ + stringType = 1; + omg = 0; + }else{ + if(EQ[i].A->msg == NULL){ + EQ[i].A->msg = [str retain]; + }else{ + if(omfgFlag) EQ[i].A->msg = [[EQ[i].A->msg stringByAppendingFormat:@"\n"] retain]; + EQ[i].A->msg = [[EQ[i].A->msg stringByAppendingFormat:@"%@", str] retain]; + omfgFlag = true; + } + }else if(stringType == 1){stringRange ++; + if(rangeSearch2.location != NSNotFound){ + stringType = 2; + } + else if(rangeSearch.location != NSNotFound){ + stringRange = 0; + }else if(stringRange == 1){ + if(omg == 0) { + [self AddDAMAGE:&EQ[i].A->D :0]; + Dtop = EQ[i].A->D; + } + omg++; + EQ[i].A->D->type = [[rangeArray objectAtIndex:0] intValue]; + EQ[i].A->D->count = [[rangeArray objectAtIndex:1] intValue]; + EQ[i].A->D->pCount = [[rangeArray objectAtIndex:2] intValue]; + }else if(stringRange == 2){ + + EQ[i].A->D->seed = [[rangeArray objectAtIndex:0] intValue]; + EQ[i].A->D->sort = [[rangeArray objectAtIndex:1] intValue]; + EQ[i].A->D->continium = [[rangeArray objectAtIndex:2] intValue]; + EQ[i].A->D->absolute = [[rangeArray objectAtIndex:3] intValue]; + EQ[i].A->D->beam = [[rangeArray objectAtIndex:4] intValue]; + EQ[i].A->D->noSizeFix = [[rangeArray objectAtIndex:5] intValue]; + + stringNumber++; + NSString *str2 = [fileDataArray objectAtIndex:k+1]; + NSRange rangeSearch3 = [str2 rangeOfString:@"####"]; + if(stringNumber >= 1 && rangeSearch3.location != NSNotFound) [self AddDAMAGE:&EQ[i].A->D :stringNumber-1]; + EQ[i].A->D = EQ[i].A->D->next; + } + }else if(stringType == 2){stringRange ++; + + if(rangeSearch2.location != NSNotFound){ + stringType = 3; + } + else if(rangeSearch.location != NSNotFound){ + stringRange = 0; + stringNumber = 0; + }else if(stringRange == 1){stringNumber++; + if(omg2 == 0) { + [self AddDMGEXTEND:&EQ[i].A->E :0]; + Etop = EQ[i].A->E; + } + omg2++; + EQ[i].A->E->rate = [[rangeArray objectAtIndex:0] intValue]; + EQ[i].A->E->hit = [[rangeArray objectAtIndex:2] intValue]; + EQ[i].A->E->atkHit = [[rangeArray objectAtIndex:1] intValue]; + + NSString *str2 = [fileDataArray objectAtIndex:k+1]; + NSRange rangeSearch3 = [str2 rangeOfString:@"####"]; + if(stringNumber >= 1 && rangeSearch3.location != NSNotFound) [self AddDMGEXTEND:&EQ[i].A->E :stringNumber-1]; + + EQ[i].A->E = EQ[i].A->E->next; + } + + } + } + EQ[i].A->D = Dtop; + EQ[i].A->E = Etop; + + omfgFlag = false; + if([fileDataArray2 count]-1 > j) EQ[i].A = EQ[i].A->next; + else EQ[i].A->next = NULL; + } + + if(EQ[i].attackListNum <= 0) Atop = NULL; + EQ[i].A = Atop; + } + + /* + for (int i=0; i< itemNumb; i++) + [self setTotalDamage:i row:<#(int)#>]; + */ +} + + +-(ATTACK*)AllocATTACK{ + return (calloc(1, sizeof(ATTACK))); +} +-(DAMAGE*)AllocDAMAGE{ + return (calloc(1, sizeof(DAMAGE))); +} +-(DMGEXTEND*)AllocDMGEXTEND{ + return (calloc(1, sizeof(DMGEXTEND))); +} + +-(void)AddATTACK:(ATTACK**)top:(int)no{ + ATTACK *ptr = *top; + if(*top == NULL){ + *top = [self AllocATTACK]; + ptr = *top; + ptr->index = no; + ptr->next = NULL; + }else{ + while(ptr->next != NULL) ptr = ptr->next; + ptr->next = [self AllocATTACK]; + ptr->index = no; + ptr->next->next = NULL; + + } + + +} + +-(void)AddDAMAGE:(DAMAGE**)top:(int)no{ + DAMAGE *ptr = *top; + if(*top == NULL){ + *top = [self AllocDAMAGE]; + ptr = *top; + ptr->index = no; + ptr->next = NULL; + }else{ + while(ptr->next != NULL) ptr = ptr->next; + ptr->next = [self AllocDAMAGE]; + ptr->index = no; + ptr->next->next = NULL; + + } + + +} + +-(void)AddDMGEXTEND:(DMGEXTEND**)top:(int)no{ + DMGEXTEND *ptr = *top; + if(*top == NULL){ + *top = [self AllocDMGEXTEND]; + ptr = *top; + ptr->index = no; + ptr->next = NULL; + }else{ + while(ptr->next != NULL) ptr = ptr->next; + ptr->next = [self AllocDMGEXTEND]; + ptr->index = no; + ptr->next->next = NULL; + + } + + +} + + + +-(void)initItemList{ + equipListMA = [NSMutableArray new]; + + [self willChangeValueForKey:@"equipItemMA"]; + [equipItemMA removeAllObjects]; + [self didChangeValueForKey:@"equipItemMA"]; + + for(int i = 0;i < eItemNum;i++){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + NSString *str = @""; + [dict setValue:[NSString stringWithFormat:@"%@", EQ[i].name] forKey:@"name"]; + + if(!EQ[i].name){ + EQ[i].name = [[NSString stringWithFormat:@"新規アイテム%d", i] retain]; + EQ[i].nameRecognition = [[NSString stringWithFormat:@"新規アイテム%d", i] retain]; + EQ[i].nameID = [[NSString stringWithFormat:@"eq%d", i] retain]; + [dict setValue:EQ[i].name forKey:@"name"]; + } + + if(EQ[i].HP != 0) + str = [str stringByAppendingFormat:@"HP %d ", (int)EQ[i].HP]; + if(EQ[i].MP != 0) + str = [str stringByAppendingFormat:@"MP %d ", (int)EQ[i].MP]; + if(EQ[i].STR != 0) + str = [str stringByAppendingFormat:@"STR %d ", (int)EQ[i].STR]; + if(EQ[i].VIT != 0) + str = [str stringByAppendingFormat:@"VIT %d ", (int)EQ[i].VIT]; + if(EQ[i].AGI != 0) + str = [str stringByAppendingFormat:@"AGI %d ", (int)EQ[i].AGI]; + if(EQ[i].DEX != 0) + str = [str stringByAppendingFormat:@"DEX %d ", (int)EQ[i].DEX]; + if(EQ[i].MEN != 0) + str = [str stringByAppendingFormat:@"MEN %d ", (int)EQ[i].MEN]; + if(EQ[i].INT != 0) + str = [str stringByAppendingFormat:@"INT %d ", (int)EQ[i].INT]; + if(EQ[i].LUK != 0) + str = [str stringByAppendingFormat:@"LUK %d ", (int)EQ[i].LUK]; + if(EQ[i].Weight != 0) + str = [str stringByAppendingFormat:@"重さ %d ", (int)EQ[i].Weight]; + + [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"memo"]; + + [self willChangeValueForKey:@"equipListMA"]; + [equipListMA addObject:dict]; + [self didChangeValueForKey:@"equipListMA"]; + } + + +} + + +-(void)initUnitChipList{ + unitChipListMA = [NSMutableArray new]; + + for(int i = 0;i < chipNumb;i++){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + if(!UC[i].nameID){ + UC[i].name = [[NSString stringWithFormat:@"新規ユニット"] retain]; + UC[i].nameNick = [[NSString stringWithFormat:@"新規ニックネーム"] retain]; + UC[i].nameClass = [[NSString stringWithFormat:@"新規クラス"] retain]; + UC[i].name = [[UC[i].name stringByAppendingFormat:@"%d",i+1] retain]; + UC[i].nameID = @"uc"; + UC[i].nameID = [[UC[i].nameID stringByAppendingFormat:@"%d",i+1] retain]; + UC[i].nameRecognition = [@"新規名前" retain]; + UC[i].nameRecognition = [[UC[i].nameRecognition stringByAppendingFormat:@"%d",i+1] retain]; + UC[i].iName = @"uc"; + UC[i].iName = [[UC[i].iName stringByAppendingFormat:@"%d",i+1] retain]; + UC[i].iNameb = @"ucb"; + UC[i].iNameb = [[UC[i].iNameb stringByAppendingFormat:@"%d",i+1] retain]; + UC[i].R_M.air = 100; + UC[i].R_M.arrow = 100; + UC[i].R_M.blood = 100; + UC[i].R_M.blow = 100; + + UC[i].R_M.charm = 100; + UC[i].R_M.cold = 100; + UC[i].R_M.confusion = 100; + UC[i].R_M.dark = 100; + + UC[i].R_M.electoric = 100; + UC[i].R_M.explosion = 100; + UC[i].R_M.flame = 100; + UC[i].R_M.gas = 100; + + UC[i].R_M.gun = 100; + UC[i].R_M.holy = 100; + UC[i].R_M.paralysis = 100; + UC[i].R_M.poison = 100; + + UC[i].R_M.shell = 100; + UC[i].R_M.silent = 100; + UC[i].R_M.slash = 100; + UC[i].R_M.sleep = 100; + + UC[i].R_M.stub = 100; + UC[i].R_M.water = 100; + } + + [dict setValue:UC[i].img forKey:@"img"]; + [dict setValue:UC[i].imgb forKey:@"imgBig"]; + [dict setValue:[NSString stringWithFormat:@"%@", UC[i].name] forKey:@"name"]; + [dict setValue:[NSString stringWithFormat:@"%g", UC[i].S_M.HP] forKey:@"HP"]; + [dict setValue:[NSString stringWithFormat:@"%g", UC[i].S_M.BP] forKey:@"BP"]; + [dict setValue:[NSString stringWithFormat:@"%@", UC[i].nameClass] forKey:@"nameC"]; + [self willChangeValueForKey:@"unitChipListMA"]; + [unitChipListMA addObject:dict]; + [self didChangeValueForKey:@"unitChipListMA"]; + } + + +} + +-(void)initTotalDamage{ + for(int i = 0;i < chipNumb;i++){ + int j = 0; + while (j < 64) { + [self setTotalDamage:i row:j]; + j++; + } + } + + for(int i = 0;i < itemNumb;i++){ + int j = 0; + while (j < 64) { + [self setTotalDamageEQ:i row:j]; + j++; + } + } + +} + +-(void)initAttackList{ + attackListMA = [NSMutableArray new]; + + [self willChangeValueForKey:@"attackListMA"]; + [attackListMA removeAllObjects]; + [self didChangeValueForKey:@"attackListMA"]; + + int i0 = 0; + + ATTACK *Atop = UC[clickIndex].A; + + while (i0 < 64) { + [self setTotalDamage:(int)clickIndex row:i0]; + i0++; + } + + UC[clickIndex].A = Atop; + + if(UC[clickIndex].A == NULL) return; + + for(int i = 0;i < UC[clickIndex].attackListNum;i++){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + NSString *str = NULL; + double countNumb; + if(UC[clickIndex].A == NULL) break; + if(UC[clickIndex].A->name == NULL) continue; + + if(UC[clickIndex].A->D != NULL){ + if(UC[clickIndex].A->D->type == 0) str = [NSString stringWithFormat:@"攻"]; + if(UC[clickIndex].A->D->type == 1) str = [NSString stringWithFormat:@"防"]; + if(UC[clickIndex].A->D->type == 2) str = [NSString stringWithFormat:@"命"]; + if(UC[clickIndex].A->D->type == 3) str = [NSString stringWithFormat:@"回"]; + if(UC[clickIndex].A->D->type == 4) str = [NSString stringWithFormat:@"演"]; + if(UC[clickIndex].A->D->type == 5) str = [NSString stringWithFormat:@"会"]; + + countNumb = UC[clickIndex].A->totalD; + str = [str stringByAppendingFormat:@"%g", countNumb]; + + } + [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"atk"]; + + [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].A->name] forKey:@"name"]; + [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->hitPercent] forKey:@"hit"]; + [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->vigor] forKey:@"vigor"]; + [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->bullet] forKey:@"bullet"]; + NSString *rangeStr = @""; + if(UC[clickIndex].A->P) rangeStr = @"P"; + if(UC[clickIndex].A->melee) rangeStr = [rangeStr stringByAppendingFormat:@"●"]; + else rangeStr = [rangeStr stringByAppendingFormat:@"□"]; + if(UC[clickIndex].A->rangeA == UC[clickIndex].A->rangeB) + [dict setValue:[NSString stringWithFormat:@"%@%d", rangeStr, UC[clickIndex].A->rangeA] forKey:@"range"]; + else + [dict setValue:[NSString stringWithFormat:@"%@%d-%d", rangeStr, UC[clickIndex].A->rangeA, UC[clickIndex].A->rangeB] forKey:@"range"]; + + if(UC[clickIndex].A->MP > 0) + [dict setValue:[NSString stringWithFormat:@"MP%g", UC[clickIndex].A->MP + floor(UC[clickIndex].A->pMP*UC[clickIndex].S_M.MP/100 + 0.5)] forKey:@"cost"]; + else if(UC[clickIndex].A->AP > 0) + [dict setValue:[NSString stringWithFormat:@"AP%g", UC[clickIndex].A->AP+ floor(UC[clickIndex].A->pAP*UC[clickIndex].S_M.AP/100 + 0.5)] forKey:@"cost"]; + else if(UC[clickIndex].A->HP > 0) + [dict setValue:[NSString stringWithFormat:@"HP%g", UC[clickIndex].A->HP+ floor(UC[clickIndex].A->pHP*UC[clickIndex].S_M.HP/100 + 0.5)] forKey:@"cost"]; + + [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].A->cmd] forKey:@"command"]; + + if(UC[clickIndex].A->D != NULL){ + if(UC[clickIndex].A->D->seed == 0) [dict setValue:[NSString stringWithFormat:@"打撃"] forKey:@"type"]; + if(UC[clickIndex].A->D->seed == 1) [dict setValue:[NSString stringWithFormat:@"斬撃"] forKey:@"type"]; + if(UC[clickIndex].A->D->seed == 2) [dict setValue:[NSString stringWithFormat:@"突き"] forKey:@"type"]; + if(UC[clickIndex].A->D->seed == 3) [dict setValue:[NSString stringWithFormat:@"射手"] forKey:@"type"]; + if(UC[clickIndex].A->D->seed == 4) [dict setValue:[NSString stringWithFormat:@"銃撃"] forKey:@"type"]; + if(UC[clickIndex].A->D->seed == 5) [dict setValue:[NSString stringWithFormat:@"砲撃"] forKey:@"type"]; + if(UC[clickIndex].A->D->seed == 6) [dict setValue:[NSString stringWithFormat:@"火炎"] forKey:@"type"]; + if(UC[clickIndex].A->D->seed == 7) [dict setValue:[NSString stringWithFormat:@"冷気"] forKey:@"type"]; + if(UC[clickIndex].A->D->seed == 8) [dict setValue:[NSString stringWithFormat:@"電撃"] forKey:@"type"]; + if(UC[clickIndex].A->D->seed == 9) [dict setValue:[NSString stringWithFormat:@"風圧"] forKey:@"type"]; + if(UC[clickIndex].A->D->seed == 10) [dict setValue:[NSString stringWithFormat:@"流水"] forKey:@"type"]; + if(UC[clickIndex].A->D->seed == 11) [dict setValue:[NSString stringWithFormat:@"ガス"] forKey:@"type"]; + if(UC[clickIndex].A->D->seed == 12) [dict setValue:[NSString stringWithFormat:@"神聖"] forKey:@"type"]; + if(UC[clickIndex].A->D->seed == 13) [dict setValue:[NSString stringWithFormat:@"暗黒"] forKey:@"type"]; + if(UC[clickIndex].A->D->seed == 14) [dict setValue:[NSString stringWithFormat:@"爆撃"] forKey:@"type"]; + if(UC[clickIndex].A->D->seed == 15) [dict setValue:[NSString stringWithFormat:@"流血"] forKey:@"type"]; + } + [self willChangeValueForKey:@"attackListMA"]; + [attackListMA addObject:dict]; + [self didChangeValueForKey:@"attackListMA"]; + + UC[clickIndex].A = UC[clickIndex].A->next; + } + + UC[clickIndex].A = Atop; + +} + +-(void)initAttackList2{ + attackListMA = [NSMutableArray new]; + + [self willChangeValueForKey:@"attackListMA"]; + [attackListMA removeAllObjects]; + [self didChangeValueForKey:@"attackListMA"]; + + int i0 = 0; + + ATTACK *Atop = LC[cil].A; + + while (i0 < 64) { + [self setTotalDamage2:(int)cil row:i0]; + i0++; + } + + LC[cil].A = Atop; + + if(LC[cil].A == NULL) return; + + for(int i = 0;i < LC[cil].attackListNum;i++){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + NSString *str = NULL; + double countNumb = 0; + if(LC[cil].A == NULL) break; + if(LC[cil].A->name == NULL) continue; + + if(LC[cil].A->D != NULL){ + + str = [NSString stringWithFormat:@"攻"]; + + countNumb = LC[cil].A->totalD; + str = [str stringByAppendingFormat:@"%g", countNumb]; + + } + [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"atk"]; + + [dict setValue:[NSString stringWithFormat:@"%@", LC[cil].A->name] forKey:@"name"]; + [dict setValue:[NSString stringWithFormat:@"%d", LC[cil].A->hitPercent] forKey:@"hit"]; + [dict setValue:[NSString stringWithFormat:@"%d", LC[cil].A->vigor] forKey:@"vigor"]; + [dict setValue:[NSString stringWithFormat:@"%d", LC[cil].A->bullet] forKey:@"bullet"]; + NSString *rangeStr = @""; + if(LC[cil].A->P) rangeStr = @"P"; + if(LC[cil].A->melee) rangeStr = [rangeStr stringByAppendingFormat:@"●"]; + else rangeStr = [rangeStr stringByAppendingFormat:@"□"]; + if(LC[cil].A->rangeA == LC[cil].A->rangeB) + [dict setValue:[NSString stringWithFormat:@"%@%d", rangeStr, LC[cil].A->rangeA] forKey:@"range"]; + else + [dict setValue:[NSString stringWithFormat:@"%@%d-%d", rangeStr, LC[cil].A->rangeA, LC[cil].A->rangeB] forKey:@"range"]; + + if(LC[cil].A->EN > 0) + [dict setValue:[NSString stringWithFormat:@"EN%g", LC[cil].A->EN + floor(LC[cil].A->pEN*LC[cil].S_M.EN/100 + 0.5)] forKey:@"cost"]; + if(LC[cil].A->HP > 0) + [dict setValue:[NSString stringWithFormat:@"HP%g", LC[cil].A->HP + floor(LC[cil].A->pEN*LC[cil].S_M.HP/100 + 0.5)] forKey:@"cost"]; + + [dict setValue:[NSString stringWithFormat:@"%@", LC[cil].A->cmd] forKey:@"command"]; + + if(LC[cil].A->D != NULL){ + if(LC[cil].A->D->seed == 0) [dict setValue:[NSString stringWithFormat:@"打撃"] forKey:@"type"]; + if(LC[cil].A->D->seed == 1) [dict setValue:[NSString stringWithFormat:@"斬撃"] forKey:@"type"]; + if(LC[cil].A->D->seed == 2) [dict setValue:[NSString stringWithFormat:@"突き"] forKey:@"type"]; + if(LC[cil].A->D->seed == 3) [dict setValue:[NSString stringWithFormat:@"射手"] forKey:@"type"]; + if(LC[cil].A->D->seed == 4) [dict setValue:[NSString stringWithFormat:@"銃撃"] forKey:@"type"]; + if(LC[cil].A->D->seed == 5) [dict setValue:[NSString stringWithFormat:@"砲撃"] forKey:@"type"]; + if(LC[cil].A->D->seed == 6) [dict setValue:[NSString stringWithFormat:@"火炎"] forKey:@"type"]; + if(LC[cil].A->D->seed == 7) [dict setValue:[NSString stringWithFormat:@"冷気"] forKey:@"type"]; + if(LC[cil].A->D->seed == 8) [dict setValue:[NSString stringWithFormat:@"電撃"] forKey:@"type"]; + if(LC[cil].A->D->seed == 9) [dict setValue:[NSString stringWithFormat:@"風圧"] forKey:@"type"]; + if(LC[cil].A->D->seed == 10) [dict setValue:[NSString stringWithFormat:@"流水"] forKey:@"type"]; + if(LC[cil].A->D->seed == 11) [dict setValue:[NSString stringWithFormat:@"ガス"] forKey:@"type"]; + if(LC[cil].A->D->seed == 12) [dict setValue:[NSString stringWithFormat:@"神聖"] forKey:@"type"]; + if(LC[cil].A->D->seed == 13) [dict setValue:[NSString stringWithFormat:@"暗黒"] forKey:@"type"]; + if(LC[cil].A->D->seed == 14) [dict setValue:[NSString stringWithFormat:@"爆撃"] forKey:@"type"]; + if(LC[cil].A->D->seed == 15) [dict setValue:[NSString stringWithFormat:@"流血"] forKey:@"type"]; + } + [self willChangeValueForKey:@"attackListMA"]; + [attackListMA addObject:dict]; + [self didChangeValueForKey:@"attackListMA"]; + + LC[cil].A = LC[cil].A->next; + } + + LC[cil].A = Atop; + +} + +-(void)initAttackListEQ{ + attackListMA = [NSMutableArray new]; + + [self willChangeValueForKey:@"attackListMA"]; + [attackListMA removeAllObjects]; + [self didChangeValueForKey:@"attackListMA"]; + + int i0 = 0; + + ATTACK *Atop = EQ[clickIndexEQ].A; + + while (i0 < 64) { + [self setTotalDamageEQ:(int)clickIndexEQ row:i0]; + i0++; + } + + EQ[clickIndexEQ].A = Atop; + + if(EQ[clickIndexEQ].A == NULL) return; + + for(int i = 0;i < EQ[clickIndexEQ].attackListNum;i++){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + NSString *str = NULL; + double countNumb; + if(EQ[clickIndexEQ].A == NULL) break; + if(EQ[clickIndexEQ].A->name == NULL) continue; + + if(EQ[clickIndexEQ].A->D != NULL){ + if(EQ[clickIndexEQ].A->D->type == 0) str = [NSString stringWithFormat:@"攻"]; + if(EQ[clickIndexEQ].A->D->type == 1) str = [NSString stringWithFormat:@"防"]; + if(EQ[clickIndexEQ].A->D->type == 2) str = [NSString stringWithFormat:@"命"]; + if(EQ[clickIndexEQ].A->D->type == 3) str = [NSString stringWithFormat:@"回"]; + if(EQ[clickIndexEQ].A->D->type == 4) str = [NSString stringWithFormat:@"演"]; + if(EQ[clickIndexEQ].A->D->type == 5) str = [NSString stringWithFormat:@"会"]; + + countNumb = EQ[clickIndexEQ].A->totalD; + str = [str stringByAppendingFormat:@"%g", countNumb]; + + } + [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"atk"]; + + [dict setValue:[NSString stringWithFormat:@"%@", EQ[clickIndexEQ].A->name] forKey:@"name"]; + [dict setValue:[NSString stringWithFormat:@"%d", EQ[clickIndexEQ].A->hitPercent] forKey:@"hit"]; + [dict setValue:[NSString stringWithFormat:@"%d", EQ[clickIndexEQ].A->vigor] forKey:@"vigor"]; + [dict setValue:[NSString stringWithFormat:@"%d", EQ[clickIndexEQ].A->bullet] forKey:@"bullet"]; + NSString *rangeStr = @""; + if(EQ[clickIndexEQ].A->P) rangeStr = @"P"; + if(EQ[clickIndexEQ].A->melee) rangeStr = [rangeStr stringByAppendingFormat:@"●"]; + else rangeStr = [rangeStr stringByAppendingFormat:@"□"]; + if(EQ[clickIndexEQ].A->rangeA == EQ[clickIndexEQ].A->rangeB) + [dict setValue:[NSString stringWithFormat:@"%@%d", rangeStr, EQ[clickIndexEQ].A->rangeA] forKey:@"range"]; + else + [dict setValue:[NSString stringWithFormat:@"%@%d-%d", rangeStr, EQ[clickIndexEQ].A->rangeA, EQ[clickIndexEQ].A->rangeB] forKey:@"range"]; + + if(EQ[clickIndexEQ].A->MP > 0) + [dict setValue:[NSString stringWithFormat:@"MP%g", EQ[clickIndexEQ].A->MP + floor(EQ[clickIndexEQ].A->pMP)] forKey:@"cost"]; + else if(EQ[clickIndexEQ].A->AP > 0) + [dict setValue:[NSString stringWithFormat:@"AP%g", EQ[clickIndexEQ].A->AP+ floor(EQ[clickIndexEQ].A->pAP)] forKey:@"cost"]; + else if(EQ[clickIndexEQ].A->HP > 0) + [dict setValue:[NSString stringWithFormat:@"HP%g", EQ[clickIndexEQ].A->HP+ floor(EQ[clickIndexEQ].A->pHP)] forKey:@"cost"]; + + [dict setValue:[NSString stringWithFormat:@"%@", EQ[clickIndexEQ].A->cmd] forKey:@"command"]; + + if(EQ[clickIndexEQ].A->D != NULL){ + if(EQ[clickIndexEQ].A->D->seed == 0) [dict setValue:[NSString stringWithFormat:@"打撃"] forKey:@"type"]; + if(EQ[clickIndexEQ].A->D->seed == 1) [dict setValue:[NSString stringWithFormat:@"斬撃"] forKey:@"type"]; + if(EQ[clickIndexEQ].A->D->seed == 2) [dict setValue:[NSString stringWithFormat:@"突き"] forKey:@"type"]; + if(EQ[clickIndexEQ].A->D->seed == 3) [dict setValue:[NSString stringWithFormat:@"射手"] forKey:@"type"]; + if(EQ[clickIndexEQ].A->D->seed == 4) [dict setValue:[NSString stringWithFormat:@"銃撃"] forKey:@"type"]; + if(EQ[clickIndexEQ].A->D->seed == 5) [dict setValue:[NSString stringWithFormat:@"砲撃"] forKey:@"type"]; + if(EQ[clickIndexEQ].A->D->seed == 6) [dict setValue:[NSString stringWithFormat:@"火炎"] forKey:@"type"]; + if(EQ[clickIndexEQ].A->D->seed == 7) [dict setValue:[NSString stringWithFormat:@"冷気"] forKey:@"type"]; + if(EQ[clickIndexEQ].A->D->seed == 8) [dict setValue:[NSString stringWithFormat:@"電撃"] forKey:@"type"]; + if(EQ[clickIndexEQ].A->D->seed == 9) [dict setValue:[NSString stringWithFormat:@"風圧"] forKey:@"type"]; + if(EQ[clickIndexEQ].A->D->seed == 10) [dict setValue:[NSString stringWithFormat:@"流水"] forKey:@"type"]; + if(EQ[clickIndexEQ].A->D->seed == 11) [dict setValue:[NSString stringWithFormat:@"ガス"] forKey:@"type"]; + if(EQ[clickIndexEQ].A->D->seed == 12) [dict setValue:[NSString stringWithFormat:@"神聖"] forKey:@"type"]; + if(EQ[clickIndexEQ].A->D->seed == 13) [dict setValue:[NSString stringWithFormat:@"暗黒"] forKey:@"type"]; + if(EQ[clickIndexEQ].A->D->seed == 14) [dict setValue:[NSString stringWithFormat:@"爆撃"] forKey:@"type"]; + if(EQ[clickIndexEQ].A->D->seed == 15) [dict setValue:[NSString stringWithFormat:@"流血"] forKey:@"type"]; + } + [self willChangeValueForKey:@"attackListMA"]; + [attackListMA addObject:dict]; + [self didChangeValueForKey:@"attackListMA"]; + + EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next; + } + + EQ[clickIndexEQ].A = Atop; + +} + + +-(IBAction)skillListBtnUCL:(id)sender{ + windowPoint.x = [UCLDetailPanel frame].origin.x + 40; + windowPoint.y = [UCLDetailPanel frame].origin.y + 80; + [UCLPanelSkill setFrameOrigin:windowPoint]; + [self initSkill]; + [self initSkillList]; + SKLrow = -1; + [UCLPanelSkill makeKeyAndOrderFront:nil]; +} + +-(IBAction)attackListBtnlUCL:(id)sender{ + + if(!loadChipSideFlag){ + [self initAttackSet]; + }else{ + [self initAttackSet2]; + } + + /* + windowPoint.x = [UCLDetailPanel frame].origin.x; + windowPoint.y = [UCLDetailPanel frame].origin.y; + [UCLPanelAttackList setFrameOrigin:windowPoint]; + */ + [UCLPanelAttackList makeKeyAndOrderFront:nil]; +} + +-(IBAction)registListBtnlUCL:(id)sender{ + + + if(!loadChipSideFlag){ + [RETFblow setIntValue:UC[clickIndex].R_M.blow]; + [RETFslash setIntValue:UC[clickIndex].R_M.slash]; + [RETFstub setIntValue:UC[clickIndex].R_M.stub]; + [RETFarrow setIntValue:UC[clickIndex].R_M.arrow]; + [RETFgun setIntValue:UC[clickIndex].R_M.gun]; + [RETFshell setIntValue:UC[clickIndex].R_M.shell]; + + [RETFflame setIntValue:UC[clickIndex].R_M.flame]; + [RETFcold setIntValue:UC[clickIndex].R_M.cold]; + [RETFelectoric setIntValue:UC[clickIndex].R_M.electoric]; + [RETFair setIntValue:UC[clickIndex].R_M.air]; + [RETFwater setIntValue:UC[clickIndex].R_M.water]; + [RETFgas setIntValue:UC[clickIndex].R_M.gas]; + [RETFholy setIntValue:UC[clickIndex].R_M.holy]; + [RETFdark setIntValue:UC[clickIndex].R_M.dark]; + [RETFexplosion setIntValue:UC[clickIndex].R_M.explosion]; + [RETFblood setIntValue:UC[clickIndex].R_M.blood]; + + [RETFparalysis setIntValue:UC[clickIndex].R_M.paralysis]; + [RETFconfusion setIntValue:UC[clickIndex].R_M.confusion]; + [RETFpoison setIntValue:UC[clickIndex].R_M.poison]; + [RETFsleep setIntValue:UC[clickIndex].R_M.sleep]; + [RETFcharm setIntValue:UC[clickIndex].R_M.charm]; + [RETFsilent setIntValue:UC[clickIndex].R_M.silent]; + + }else{ + [RETFblow setIntValue:LC[cil].R_M.blow]; + [RETFslash setIntValue:LC[cil].R_M.slash]; + [RETFstub setIntValue:LC[cil].R_M.stub]; + [RETFarrow setIntValue:LC[cil].R_M.arrow]; + [RETFgun setIntValue:LC[cil].R_M.gun]; + [RETFshell setIntValue:LC[cil].R_M.shell]; + + [RETFflame setIntValue:LC[cil].R_M.flame]; + [RETFcold setIntValue:LC[cil].R_M.cold]; + [RETFelectoric setIntValue:LC[cil].R_M.electoric]; + [RETFair setIntValue:LC[cil].R_M.air]; + [RETFwater setIntValue:LC[cil].R_M.water]; + [RETFgas setIntValue:LC[cil].R_M.gas]; + [RETFholy setIntValue:LC[cil].R_M.holy]; + [RETFdark setIntValue:LC[cil].R_M.dark]; + [RETFexplosion setIntValue:LC[cil].R_M.explosion]; + [RETFblood setIntValue:LC[cil].R_M.blood]; + + [RETFparalysis setIntValue:LC[cil].R_M.paralysis]; + [RETFconfusion setIntValue:LC[cil].R_M.confusion]; + [RETFpoison setIntValue:LC[cil].R_M.poison]; + [RETFsleep setIntValue:LC[cil].R_M.sleep]; + [RETFcharm setIntValue:LC[cil].R_M.charm]; + [RETFsilent setIntValue:LC[cil].R_M.silent]; + + } + + windowPoint.x = [UCLDetailPanel frame].origin.x + 150; + windowPoint.y = [UCLDetailPanel frame].origin.y; + [UCLPanelRegist setFrameOrigin:windowPoint]; + [UCLPanelRegist makeKeyAndOrderFront:nil]; +} + + +-(IBAction)skillListBtnSubmitUCL:(id)sender{ + [self willChangeValueForKey:@"skillListMA"]; + [skillListMA removeAllObjects]; + [self didChangeValueForKey:@"skillListMA"]; + [UCLPanelSkill close]; +} +-(IBAction)attackListBtnSubmitlUCL:(id)sender{ + + if(EQmodeFlag){ + [self saveDataALEQ]; + + [UCLPanelAttack close]; + return; + } + + if(!loadChipSideFlag){ + [self saveDataAL]; + }else{ + [self saveDataAL2]; + } + [UCLPanelAttack close]; +} +-(IBAction)registListBtnlSubmitUCL:(id)sender{ + + + if(!loadChipSideFlag){ + UC[clickIndex].R_M.blow = [RETFblow intValue]; + UC[clickIndex].R_M.slash = [RETFslash intValue]; + UC[clickIndex].R_M.stub = [RETFstub intValue]; + UC[clickIndex].R_M.arrow = [RETFarrow intValue]; + UC[clickIndex].R_M.gun = [RETFgun intValue]; + UC[clickIndex].R_M.shell = [RETFshell intValue]; + + UC[clickIndex].R_M.flame = [RETFflame intValue]; + UC[clickIndex].R_M.cold = [RETFcold intValue]; + UC[clickIndex].R_M.electoric = [RETFelectoric intValue]; + UC[clickIndex].R_M.air = [RETFair intValue]; + UC[clickIndex].R_M.water = [RETFwater intValue]; + UC[clickIndex].R_M.gas = [RETFgas intValue]; + UC[clickIndex].R_M.holy = [RETFholy intValue]; + UC[clickIndex].R_M.dark = [RETFdark intValue]; + UC[clickIndex].R_M.explosion = [RETFexplosion intValue]; + UC[clickIndex].R_M.blood = [RETFblood intValue]; + + UC[clickIndex].R_M.paralysis = [RETFparalysis intValue]; + UC[clickIndex].R_M.confusion = [RETFconfusion intValue]; + UC[clickIndex].R_M.poison = [RETFpoison intValue]; + UC[clickIndex].R_M.sleep = [RETFsleep intValue]; + UC[clickIndex].R_M.charm = [RETFcharm intValue]; + UC[clickIndex].R_M.silent = [RETFsilent intValue]; + + UC[clickIndex].R_C = UC[clickIndex].R_M; + }else{ + LC[cil].R_M.blow = [RETFblow intValue]; + LC[cil].R_M.slash = [RETFslash intValue]; + LC[cil].R_M.stub = [RETFstub intValue]; + LC[cil].R_M.arrow = [RETFarrow intValue]; + LC[cil].R_M.gun = [RETFgun intValue]; + LC[cil].R_M.shell = [RETFshell intValue]; + + LC[cil].R_M.flame = [RETFflame intValue]; + LC[cil].R_M.cold = [RETFcold intValue]; + LC[cil].R_M.electoric = [RETFelectoric intValue]; + LC[cil].R_M.air = [RETFair intValue]; + LC[cil].R_M.water = [RETFwater intValue]; + LC[cil].R_M.gas = [RETFgas intValue]; + LC[cil].R_M.holy = [RETFholy intValue]; + LC[cil].R_M.dark = [RETFdark intValue]; + LC[cil].R_M.explosion = [RETFexplosion intValue]; + LC[cil].R_M.blood = [RETFblood intValue]; + + LC[cil].R_M.paralysis = [RETFparalysis intValue]; + LC[cil].R_M.confusion = [RETFconfusion intValue]; + LC[cil].R_M.poison = [RETFpoison intValue]; + LC[cil].R_M.sleep = [RETFsleep intValue]; + LC[cil].R_M.charm = [RETFcharm intValue]; + LC[cil].R_M.silent = [RETFsilent intValue]; + + LC[cil].R_C = LC[cil].R_M; + } + + + [UCLPanelRegist close]; +} + +-(IBAction)insertSkillUCL:(id)sender{ + +} +-(IBAction)removeSkillUCL:(id)sender{ + +} + +-(IBAction)mobileUCL:(id)sender{ + +} +-(IBAction)skillUCL:(id)sender{ + +} +-(IBAction)equiplUCL:(id)sender{ + +} + + +-(IBAction)UCLPanelEquipListSubmitBtn:(id)sender{ + [UCLPanelEquipList close]; +} +-(IBAction)UCLPanelSkillListSubmitBtn:(id)sender{ + [UCLPanelSkillList close]; +} + +-(IBAction)UCLPanelEquipListOpenBtn:(id)sender{ + windowPoint.x = [UCLPanel frame].origin.x + 50; + windowPoint.y = [UCLPanel frame].origin.y; + [UCLPanelEquipList setFrameOrigin:windowPoint]; + [UCLPanelEquipList makeKeyAndOrderFront:nil]; +} +-(IBAction)UCLPanelSkillListOpenBtn:(id)sender{ + windowPoint.x = [UCLPanel frame].origin.x + 50; + windowPoint.y = [UCLPanel frame].origin.y; + [UCLPanelSkillList setFrameOrigin:windowPoint]; + [UCLPanelSkillList makeKeyAndOrderFront:nil]; +} + +-(IBAction)insertAttackList:(id)sender{ + + if(EQmodeFlag){ + + if(1){ + NSMutableDictionary *dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"新技"] forKey:@"name"]; + + ATTACK *Atop = EQ[clickIndexEQ].A; + + if(clickedRowAT < 0){ + EQ[clickIndexEQ].A = Atop; + if([attackListMA count] == 0){ + EQ[clickIndexEQ].A = (ATTACK*)malloc(sizeof(ATTACK)); + //INIT 処理 + + EQ[clickIndexEQ].A = [self initAttackData:EQ[clickIndexEQ].A]; + Atop = EQ[clickIndexEQ].A; + }else{ + while(EQ[clickIndexEQ].A->next) EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next; + EQ[clickIndexEQ].A->next = (ATTACK*)malloc(sizeof(ATTACK)); + EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next; + //INIT 処理 + EQ[clickIndexEQ].A = [self initAttackData:EQ[clickIndexEQ].A]; + EQ[clickIndexEQ].A = Atop; + } + + [dict setValue:[NSString stringWithFormat:@"%@", EQ[clickIndexEQ].A->name] forKey:@"name"]; + + [self willChangeValueForKey:@"attackListMA"]; + [attackListMA insertObject:dict atIndex:[attackListMA count]]; + [self didChangeValueForKey:@"attackListMA"]; + [attackListAC setSelectionIndex:999]; + EQ[clickIndexEQ].attackListNum++; + clickedRowAT = -1; + }else{ + EQ[clickIndexEQ].A = Atop; + if([attackListMA count] == 0){ + EQ[clickIndexEQ].A = (ATTACK*)malloc(sizeof(ATTACK)); + //INIT 処理 + EQ[clickIndexEQ].A = [self initAttackData:EQ[clickIndexEQ].A]; + Atop = EQ[clickIndexEQ].A; + }else if(clickedRowAT > 0){ + for (int i = 0; i < clickedRowAT-1;i++) + EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next; + ATTACK *tmp = (ATTACK*)malloc(sizeof(ATTACK)); + *tmp = *EQ[clickIndexEQ].A->next; + EQ[clickIndexEQ].A->next = (ATTACK*)malloc(sizeof(ATTACK)); + EQ[clickIndexEQ].A->next->next = tmp; + EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next; + //INIT 処理 + EQ[clickIndexEQ].A = [self initAttackData:EQ[clickIndexEQ].A]; + EQ[clickIndexEQ].A = Atop; + }else{ + ATTACK *tmp = (ATTACK*)malloc(sizeof(ATTACK)); + tmp->next = EQ[clickIndexEQ].A; + // INIT 処理[self InitAttack:tmp]; + tmp = [self initAttackData:tmp]; + Atop = tmp; + EQ[clickIndexEQ].A = Atop; + } + + [dict setValue:[NSString stringWithFormat:@"%@", EQ[clickIndexEQ].A->name] forKey:@"name"]; + + [self willChangeValueForKey:@"attackListMA"]; + [attackListMA insertObject:dict atIndex:clickedRowAT]; + [self didChangeValueForKey:@"attackListMA"]; + [attackListAC setSelectionIndex:clickedRowAT]; + EQ[clickIndexEQ].attackListNum++; + } + + } + + return; + } + + if(!loadChipSideFlag){ + NSMutableDictionary *dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"新技"] forKey:@"name"]; + + ATTACK *Atop = UC[clickIndex].A; + + if(clickedRowAT < 0){ + UC[clickIndex].A = Atop; + if([attackListMA count] == 0){ + UC[clickIndex].A = (ATTACK*)malloc(sizeof(ATTACK)); + //INIT 処理 + + UC[clickIndex].A = [self initAttackData:UC[clickIndex].A]; + + Atop = UC[clickIndex].A; + }else{ + while(UC[clickIndex].A->next) UC[clickIndex].A = UC[clickIndex].A->next; + UC[clickIndex].A->next = (ATTACK*)malloc(sizeof(ATTACK)); + UC[clickIndex].A = UC[clickIndex].A->next; + //INIT 処理 + UC[clickIndex].A = [self initAttackData:UC[clickIndex].A]; + + UC[clickIndex].A = Atop; + } + + [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].A->name] forKey:@"name"]; + + [self willChangeValueForKey:@"attackListMA"]; + [attackListMA insertObject:dict atIndex:[attackListMA count]]; + [self didChangeValueForKey:@"attackListMA"]; + [attackListAC setSelectionIndex:999]; + UC[clickIndex].attackListNum++; + clickedRowAT = -1; + }else{ + UC[clickIndex].A = Atop; + if([attackListMA count] == 0){ + UC[clickIndex].A = (ATTACK*)malloc(sizeof(ATTACK)); + //INIT 処理 + UC[clickIndex].A = [self initAttackData:UC[clickIndex].A]; + + Atop = UC[clickIndex].A; + }else if(clickedRowAT > 0){ + for (int i = 0; i < clickedRowAT-1;i++) + UC[clickIndex].A = UC[clickIndex].A->next; + ATTACK *tmp = (ATTACK*)malloc(sizeof(ATTACK)); + *tmp = *UC[clickIndex].A->next; + UC[clickIndex].A->next = (ATTACK*)malloc(sizeof(ATTACK)); + UC[clickIndex].A->next->next = tmp; + UC[clickIndex].A = UC[clickIndex].A->next; + //INIT 処理 + [self initAttackData:UC[clickIndex].A]; + UC[clickIndex].A = Atop; + }else{ + ATTACK *tmp = (ATTACK*)malloc(sizeof(ATTACK)); + tmp->next = UC[clickIndex].A; + // INIT 処理[self InitAttack:tmp]; + tmp = [self initAttackData:tmp]; + Atop = tmp; + UC[clickIndex].A = Atop; + } + + [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].A->name] forKey:@"name"]; + + [self willChangeValueForKey:@"attackListMA"]; + [attackListMA insertObject:dict atIndex:clickedRowAT]; + [self didChangeValueForKey:@"attackListMA"]; + [attackListAC setSelectionIndex:clickedRowAT]; + UC[clickIndex].attackListNum++; + } + + }else{ + NSMutableDictionary *dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"新技"] forKey:@"name"]; + + ATTACK *Atop = LC[cil].A; + + if(clickedRowAT < 0){ + LC[cil].A = Atop; + if([attackListMA count] == 0){ + LC[cil].A = (ATTACK*)malloc(sizeof(ATTACK)); + //INIT 処理 + + LC[cil].A->name = [@"新技" retain]; + LC[cil].A->cmd = [@"A" retain]; + LC[cil].A->rangeA = 1; + LC[cil].A->rangeB = 1; + LC[cil].A->extent = 0; + LC[cil].A->successRate = 100; + LC[cil].A->costType = 0; + LC[cil].A->type = 0; + LC[cil].A = [self initAfuckingSTATUS2:LC[cil].A]; + LC[cil].A->D = NULL; + LC[cil].A->E = NULL; + LC[cil].A->next = NULL; + Atop = LC[cil].A; + }else{ + while(LC[cil].A->next) LC[cil].A = LC[cil].A->next; + LC[cil].A->next = (ATTACK*)malloc(sizeof(ATTACK)); + LC[cil].A = LC[cil].A->next; + //INIT 処理 + LC[cil].A->name = [@"新技" retain]; + LC[cil].A->cmd = [@"A" retain]; + LC[cil].A->rangeA = 1; + LC[cil].A->rangeB = 1; + LC[cil].A->extent = 0; + LC[cil].A->successRate = 100; + LC[cil].A->costType = 0; + LC[cil].A->type = 0; + LC[cil].A = [self initAfuckingSTATUS2:LC[cil].A]; + LC[cil].A->D = NULL; + LC[cil].A->E = NULL; + LC[cil].A->next = NULL; + LC[cil].A = Atop; + } + + [dict setValue:[NSString stringWithFormat:@"%@", LC[cil].A->name] forKey:@"name"]; + + [self willChangeValueForKey:@"attackListMA"]; + [attackListMA insertObject:dict atIndex:[attackListMA count]]; + [self didChangeValueForKey:@"attackListMA"]; + [attackListAC setSelectionIndex:999]; + LC[cil].attackListNum++; + clickedRowAT = -1; + }else{ + LC[cil].A = Atop; + if([attackListMA count] == 0){ + LC[cil].A = (ATTACK*)malloc(sizeof(ATTACK)); + //INIT 処理 + LC[cil].A->name = [@"新技" retain]; + LC[cil].A->cmd = [@"A" retain]; + LC[cil].A->rangeA = 1; + LC[cil].A->rangeB = 1; + LC[cil].A->extent = 0; + LC[cil].A->successRate = 100; + LC[cil].A->costType = 0; + LC[cil].A->type = 0; + LC[cil].A = [self initAfuckingSTATUS2:LC[cil].A]; + LC[cil].A->D = NULL; + LC[cil].A->E = NULL; + LC[cil].A->next = NULL; + Atop = LC[cil].A; + }else if(clickedRowAT > 0){ + for (int i = 0; i < clickedRowAT-1;i++) + LC[cil].A = LC[cil].A->next; + ATTACK *tmp = (ATTACK*)malloc(sizeof(ATTACK)); + *tmp = *LC[cil].A->next; + LC[cil].A->next = (ATTACK*)malloc(sizeof(ATTACK)); + LC[cil].A->next->next = tmp; + LC[cil].A = LC[cil].A->next; + //INIT 処理 + LC[cil].A->name = [@"新技" retain]; + LC[cil].A->cmd = [@"A" retain]; + LC[cil].A->rangeA = 1; + LC[cil].A->rangeB = 1; + LC[cil].A->extent = 0; + LC[cil].A->successRate = 100; + LC[cil].A->costType = 0; + LC[cil].A->type = 0; + LC[cil].A = [self initAfuckingSTATUS2:LC[cil].A]; + LC[cil].A->D = NULL; + LC[cil].A->E = NULL; + LC[cil].A = Atop; + }else{ + ATTACK *tmp = (ATTACK*)malloc(sizeof(ATTACK)); + tmp->next = LC[cil].A; + // INIT 処理[self InitAttack:tmp]; + tmp->name = [@"新技" retain]; + tmp->cmd = [@"A" retain]; + tmp->rangeA = 1; + tmp->rangeB = 1; + tmp->extent = 0; + tmp->successRate = 100; + tmp->costType = 0; + tmp->type = 0; + tmp = [self initAfuckingSTATUS2:tmp]; + + tmp->D = NULL; + tmp->E = NULL; + Atop = tmp; + LC[cil].A = Atop; + } + + [dict setValue:[NSString stringWithFormat:@"%@", LC[cil].A->name] forKey:@"name"]; + + [self willChangeValueForKey:@"attackListMA"]; + [attackListMA insertObject:dict atIndex:clickedRowAT]; + [self didChangeValueForKey:@"attackListMA"]; + [attackListAC setSelectionIndex:clickedRowAT]; + LC[cil].attackListNum++; + + } + } + +} + +-(ATTACK*)initAttackData:(ATTACK*)A{ + + + A->name = [@"新技" retain]; + A->cmd = [@"A" retain]; + A->msg = [@"" retain]; + A->rangeA = 1; + A->rangeB = 1; + A->extent = 0; + A->type = 0; + A->costType = 0; + A->MP = 0; + A->pMP = 0; + A->hitCount = 1; + A->hitPercent = 0; + A->successRate = 100; + A->bullet = -1; + A->riku = 0; + A->sora = 0; + A->umi = 0; + A->chu = 0; + A->melee = 0; + A->P = 0; + A->vigor = 0; + A->cSupply = 0; + A->cMoney = 0; + A->cFood = 0; + A->dmgExtend = 0; + A->D = NULL; + A->E = NULL; + + return A; +} + +-(ATTACK*)initAfuckingSTATUS2:(ATTACK*)A{ + + A->trig = 0; + A->type = 0; + A->melee = 0; + A->P = 0; + + A->rangeA = 1; + A->rangeB = 1; + A->extent = 0; + A->bullet = 0; + A->hitCount = 0; + A->successRate = 100; + A->vigor = 0; + A->hitPercent = 0; + + A->costType = 0; + + A->EN = 0; + A->pEN = 0; + + A->HP = 0; + A->pHP = 0; + + A->cSupply = 0; + A->cFood = 0; + A->cMoney = 0; + + A->riku = 0; + A->umi = 0; + A->sora = 0; + A->dmgExtend = 0; + + A->cmd = @"A"; + A->msg = @""; + + + return A; +} + +-(IBAction)removeAttackList:(id)sender{ + + if(EQmodeFlag){ + + ATTACK *Atop = EQ[clickIndexEQ].A; + + if(clickedRowAT == -1){ + clickedRowAT = (int)[attackListMA count] - 1; + } + + if([attackListMA count] > 0){ + + if(clickedRowAT == 0){ + EQ[clickIndexEQ].A = Atop; + EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next; + Atop = EQ[clickIndexEQ].A; + }else if(clickedRowAT == [attackListMA count] - 1){ + EQ[clickIndexEQ].A = Atop; + while(EQ[clickIndexEQ].A->next->next){ + EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next; + } + EQ[clickIndexEQ].A->next = NULL; + }else{ + EQ[clickIndexEQ].A = Atop; + for (int i = 0; i < clickedRowAT - 1;i++) + EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next; + EQ[clickIndexEQ].A->next = EQ[clickIndexEQ].A->next->next; + } + + [self willChangeValueForKey:@"attackListMA"]; + [attackListMA removeObjectAtIndex:clickedRowAT]; + [self didChangeValueForKey:@"attackListMA"]; + [attackListAC setSelectionIndex:clickedRowAT-1]; + if(clickedRowAT < 0) [attackListAC setSelectionIndex:[attackListMA count]-1]; + if(clickedRowAT == 0) [attackListAC setSelectionIndex:0]; + if(clickedRowAT > 0) clickedRowAT--; + } + EQ[clickIndexEQ].A = Atop; + EQ[clickIndexEQ].attackListNum--; + + + return; + } + + if(!loadChipSideFlag){ + + ATTACK *Atop = UC[clickIndex].A; + + if(clickedRowAT == -1){ + clickedRowAT = (int)[attackListMA count] - 1; + } + + if([attackListMA count] > 0){ + + if(clickedRowAT == 0){ + UC[clickIndex].A = Atop; + UC[clickIndex].A = UC[clickIndex].A->next; + Atop = UC[clickIndex].A; + }else if(clickedRowAT == [attackListMA count] - 1){ + UC[clickIndex].A = Atop; + while(UC[clickIndex].A->next->next){ + UC[clickIndex].A = UC[clickIndex].A->next; + } + UC[clickIndex].A->next = NULL; + }else{ + UC[clickIndex].A = Atop; + for (int i = 0; i < clickedRowAT - 1;i++) + UC[clickIndex].A = UC[clickIndex].A->next; + UC[clickIndex].A->next = UC[clickIndex].A->next->next; + } + + [self willChangeValueForKey:@"attackListMA"]; + [attackListMA removeObjectAtIndex:clickedRowAT]; + [self didChangeValueForKey:@"attackListMA"]; + [attackListAC setSelectionIndex:clickedRowAT-1]; + if(clickedRowAT < 0) [attackListAC setSelectionIndex:[attackListMA count]-1]; + if(clickedRowAT == 0) [attackListAC setSelectionIndex:0]; + if(clickedRowAT > 0) clickedRowAT--; + } + UC[clickIndex].A = Atop; + UC[clickIndex].attackListNum--; + }else{ + ATTACK *Atop = LC[cil].A; + + if(clickedRowAT == -1){ + clickedRowAT = (int)[attackListMA count] - 1; + } + + if([attackListMA count] > 0){ + + if(clickedRowAT == 0){ + LC[cil].A = Atop; + LC[cil].A = LC[cil].A->next; + Atop = LC[cil].A; + }else if(clickedRowAT == [attackListMA count] - 1){ + LC[cil].A = Atop; + while(LC[cil].A->next->next){ + LC[cil].A = LC[cil].A->next; + } + LC[cil].A->next = NULL; + }else{ + LC[cil].A = Atop; + for (int i = 0; i < clickedRowAT - 1;i++) + LC[cil].A = LC[cil].A->next; + LC[cil].A->next = LC[cil].A->next->next; + } + + [self willChangeValueForKey:@"attackListMA"]; + [attackListMA removeObjectAtIndex:clickedRowAT]; + [self didChangeValueForKey:@"attackListMA"]; + [attackListAC setSelectionIndex:clickedRowAT-1]; + if(clickedRowAT < 0) [attackListAC setSelectionIndex:[attackListMA count]-1]; + if(clickedRowAT == 0) [attackListAC setSelectionIndex:0]; + if(clickedRowAT > 0) clickedRowAT--; + } + LC[cil].A = Atop; + LC[cil].attackListNum--; + + + + } + +} +-(IBAction)insertComboList:(id)sender{ + +} +-(IBAction)removeComboList:(id)sender{ + +} + +-(IBAction)submitAttackList:(id)sender{ + + if(EQmodeFlag){ + + ATTACK *Atop = EQ[clickIndexEQ].A; + + + for(int i = 0;i < clickIndexAL;i++){ + EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next; + } + + EQ[clickIndexEQ].A->name = [[ALTFname stringValue] retain]; + EQ[clickIndexEQ].A->rangeA = [ALTFrangeA intValue]; + EQ[clickIndexEQ].A->rangeB = [ALTFrangeB intValue]; + EQ[clickIndexEQ].A->extent = [ALTFextend intValue]; + + EQ[clickIndexEQ].A->trig = [ALTFtrigger intValue]; + EQ[clickIndexEQ].A->melee = [ALTFmelee intValue]; + EQ[clickIndexEQ].A->P = [ALTFpass intValue]; + EQ[clickIndexEQ].A->dmgExtend = [ALTFdmgExtent intValue]; + EQ[clickIndexEQ].A->type = (int)[ALPUBwType indexOfSelectedItem]; + + if([ALPUBcost indexOfSelectedItem] == 0){ + EQ[clickIndexEQ].A->costType = 0; + EQ[clickIndexEQ].A->MP = [ALTFcost intValue]; + EQ[clickIndexEQ].A->pMP = [ALTFcostP intValue]; + EQ[clickIndexEQ].A->AP = 0; + EQ[clickIndexEQ].A->pAP = 0; + EQ[clickIndexEQ].A->HP = 0; + EQ[clickIndexEQ].A->pHP = 0; + } + if([ALPUBcost indexOfSelectedItem] == 1){ + EQ[clickIndexEQ].A->costType = 1; + EQ[clickIndexEQ].A->MP = 0; + EQ[clickIndexEQ].A->pMP = 0; + EQ[clickIndexEQ].A->HP = 0; + EQ[clickIndexEQ].A->pHP = 0; + EQ[clickIndexEQ].A->AP = [ALTFcost intValue]; + EQ[clickIndexEQ].A->pAP = [ALTFcostP intValue]; + } + if([ALPUBcost indexOfSelectedItem] == 2){ + EQ[clickIndexEQ].A->costType = 2; + EQ[clickIndexEQ].A->MP = 0; + EQ[clickIndexEQ].A->pMP = 0; + EQ[clickIndexEQ].A->AP = 0; + EQ[clickIndexEQ].A->pAP = 0; + EQ[clickIndexEQ].A->HP = [ALTFcost intValue]; + EQ[clickIndexEQ].A->pHP = [ALTFcostP intValue]; + } + + EQ[clickIndexEQ].A->bullet = [ALTFbullet intValue]; + EQ[clickIndexEQ].A->hitCount = [ALTFhitCount intValue]; + EQ[clickIndexEQ].A->successRate = [ALTFsuccessRate intValue]; + EQ[clickIndexEQ].A->vigor = [ALTFvigor intValue]; + EQ[clickIndexEQ].A->hitPercent = [ALTFhitRate intValue]; + + EQ[clickIndexEQ].A->riku = (int)[ALPUBriku indexOfSelectedItem]; + EQ[clickIndexEQ].A->chu = (int)[ALPUBchu indexOfSelectedItem]; + EQ[clickIndexEQ].A->umi = (int)[ALPUBumi indexOfSelectedItem]; + EQ[clickIndexEQ].A->sora = (int)[ALPUBsora indexOfSelectedItem]; + + EQ[clickIndexEQ].A->cSupply = [ALTFcSupply intValue]; + EQ[clickIndexEQ].A->cFood = [ALTFcFood intValue]; + EQ[clickIndexEQ].A->cMoney = [ALTFcMoney intValue]; + + EQ[clickIndexEQ].A->cmd = [[ALTFcmd stringValue] retain]; + + EQ[clickIndexEQ].A->msg = [[ALTFmsg stringValue] retain]; + + + EQ[clickIndexEQ].A = Atop; + + [self initAttackListEQ]; + [self saveDataALEQ]; + [attackListAC setSelectionIndex:clickIndexAL]; + + [UCLPanelAttackDetail close]; + return; + } + + if(!loadChipSideFlag){ + ATTACK *Atop = UC[clickIndex].A; + + + for(int i = 0;i < clickIndexAL;i++){ + UC[clickIndex].A = UC[clickIndex].A->next; + } + + UC[clickIndex].A->name = [[ALTFname stringValue] retain]; + UC[clickIndex].A->rangeA = [ALTFrangeA intValue]; + UC[clickIndex].A->rangeB = [ALTFrangeB intValue]; + UC[clickIndex].A->extent = [ALTFextend intValue]; + + UC[clickIndex].A->trig = [ALTFtrigger intValue]; + UC[clickIndex].A->melee = [ALTFmelee intValue]; + UC[clickIndex].A->P = [ALTFpass intValue]; + UC[clickIndex].A->dmgExtend = [ALTFdmgExtent intValue]; + UC[clickIndex].A->type = (int)[ALPUBwType indexOfSelectedItem]; + + if([ALPUBcost indexOfSelectedItem] == 0){ + UC[clickIndex].A->costType = 0; + UC[clickIndex].A->MP = [ALTFcost intValue]; + UC[clickIndex].A->pMP = [ALTFcostP intValue]; + UC[clickIndex].A->AP = 0; + UC[clickIndex].A->pAP = 0; + UC[clickIndex].A->HP = 0; + UC[clickIndex].A->pHP = 0; + } + if([ALPUBcost indexOfSelectedItem] == 1){ + UC[clickIndex].A->costType = 1; + UC[clickIndex].A->MP = 0; + UC[clickIndex].A->pMP = 0; + UC[clickIndex].A->HP = 0; + UC[clickIndex].A->pHP = 0; + UC[clickIndex].A->AP = [ALTFcost intValue]; + UC[clickIndex].A->pAP = [ALTFcostP intValue]; + } + if([ALPUBcost indexOfSelectedItem] == 2){ + UC[clickIndex].A->costType = 2; + UC[clickIndex].A->MP = 0; + UC[clickIndex].A->pMP = 0; + UC[clickIndex].A->AP = 0; + UC[clickIndex].A->pAP = 0; + UC[clickIndex].A->HP = [ALTFcost intValue]; + UC[clickIndex].A->pHP = [ALTFcostP intValue]; + } + + UC[clickIndex].A->bullet = [ALTFbullet intValue]; + UC[clickIndex].A->hitCount = [ALTFhitCount intValue]; + UC[clickIndex].A->successRate = [ALTFsuccessRate intValue]; + UC[clickIndex].A->vigor = [ALTFvigor intValue]; + UC[clickIndex].A->hitPercent = [ALTFhitRate intValue]; + + UC[clickIndex].A->riku = (int)[ALPUBriku indexOfSelectedItem]; + UC[clickIndex].A->chu = (int)[ALPUBchu indexOfSelectedItem]; + UC[clickIndex].A->umi = (int)[ALPUBumi indexOfSelectedItem]; + UC[clickIndex].A->sora = (int)[ALPUBsora indexOfSelectedItem]; + + UC[clickIndex].A->cSupply = [ALTFcSupply intValue]; + UC[clickIndex].A->cFood = [ALTFcFood intValue]; + UC[clickIndex].A->cMoney = [ALTFcMoney intValue]; + + UC[clickIndex].A->cmd = [[ALTFcmd stringValue] retain]; + + UC[clickIndex].A->msg = [[ALTFmsg stringValue] retain]; + + + UC[clickIndex].A = Atop; + + [self initAttackList]; + [self saveDataAL]; + [attackListAC setSelectionIndex:clickIndexAL]; + }else{ + + ATTACK *Atop = LC[cil].A; + + + for(int i = 0;i < clickIndexAL;i++){ + LC[cil].A = LC[cil].A->next; + } + + LC[cil].A->name = [[ALTFname stringValue] retain]; + LC[cil].A->rangeA = [ALTFrangeA intValue]; + LC[cil].A->rangeB = [ALTFrangeB intValue]; + LC[cil].A->extent = [ALTFextend intValue]; + + LC[cil].A->trig = [ALTFtrigger intValue]; + LC[cil].A->melee = [ALTFmelee intValue]; + LC[cil].A->P = [ALTFpass intValue]; + LC[cil].A->dmgExtend = [ALTFdmgExtent intValue]; + LC[cil].A->type = (int)[ALPUBwType indexOfSelectedItem]; + + if([ALPUBcost indexOfSelectedItem] == 0){ + LC[cil].A->costType = 0; + LC[cil].A->EN = [ALTFcost intValue]; + LC[cil].A->pEN = [ALTFcostP intValue]; + LC[cil].A->HP = 0; + LC[cil].A->pHP = 0; + } + if([ALPUBcost indexOfSelectedItem] == 1){ + LC[cil].A->costType = 1; + LC[cil].A->EN = 0; + LC[cil].A->pEN = 0; + UC[clickIndex].A->HP = [ALTFcost intValue]; + UC[clickIndex].A->pHP = [ALTFcostP intValue]; + + } + + LC[cil].A->bullet = [ALTFbullet intValue]; + LC[cil].A->hitCount = [ALTFhitCount intValue]; + LC[cil].A->successRate = [ALTFsuccessRate intValue]; + LC[cil].A->vigor = [ALTFvigor intValue]; + LC[cil].A->hitPercent = [ALTFhitRate intValue]; + + LC[cil].A->riku = (int)[ALPUBriku indexOfSelectedItem]; + LC[cil].A->chu = (int)[ALPUBchu indexOfSelectedItem]; + LC[cil].A->umi = (int)[ALPUBumi indexOfSelectedItem]; + LC[cil].A->sora = (int)[ALPUBsora indexOfSelectedItem]; + + LC[cil].A->cSupply = [ALTFcSupply intValue]; + LC[cil].A->cFood = [ALTFcFood intValue]; + LC[cil].A->cMoney = [ALTFcMoney intValue]; + + LC[cil].A->cmd = [[ALTFcmd stringValue] retain]; + + LC[cil].A->msg = [[ALTFmsg stringValue] retain]; + + + LC[cil].A = Atop; + + [self initAttackList2]; + [self saveDataAL2]; + [attackListAC setSelectionIndex:clickIndexAL]; + + + + + + + + } + + [UCLPanelAttackDetail close]; +} + +-(IBAction)insertDamageList:(id)sender{ + + if(EQmodeFlag){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + if([ALPUBtype indexOfSelectedItem] == 0) + [dict setValue:[NSString stringWithFormat:@"攻%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"]; + if([ALPUBtype indexOfSelectedItem] == 1) + [dict setValue:[NSString stringWithFormat:@"防%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"]; + if([ALPUBtype indexOfSelectedItem] == 2) + [dict setValue:[NSString stringWithFormat:@"命%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"]; + if([ALPUBtype indexOfSelectedItem] == 3) + [dict setValue:[NSString stringWithFormat:@"回%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"]; + if([ALPUBtype indexOfSelectedItem] == 4) + [dict setValue:[NSString stringWithFormat:@"演%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"]; + if([ALPUBtype indexOfSelectedItem] == 5) + [dict setValue:[NSString stringWithFormat:@"会%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"]; + + NSString *str; + + if([ALPUBsort indexOfSelectedItem] == 0) str = [NSString stringWithFormat:@"ダ・"]; + if([ALPUBsort indexOfSelectedItem] == 1) str = [NSString stringWithFormat:@"回・"]; + if([ALPUBsort indexOfSelectedItem] == 2) str = [NSString stringWithFormat:@"復・"]; + if([ALPUBsort indexOfSelectedItem] == 3) str = [NSString stringWithFormat:@"減・"]; + if([ALPUBsort indexOfSelectedItem] == 4) str = [NSString stringWithFormat:@"増・"]; + if([ALPUBsort indexOfSelectedItem] == 5) str = [NSString stringWithFormat:@"毒・"]; + if([ALPUBsort indexOfSelectedItem] == 6) str = [NSString stringWithFormat:@"睡・"]; + if([ALPUBsort indexOfSelectedItem] == 7) str = [NSString stringWithFormat:@"混・"]; + if([ALPUBsort indexOfSelectedItem] == 8) str = [NSString stringWithFormat:@"麻・"]; + if([ALPUBsort indexOfSelectedItem] == 9) str = [NSString stringWithFormat:@"沈・"]; + if([ALPUBsort indexOfSelectedItem] == 10) str = [NSString stringWithFormat:@"魅・"]; + + if([ALPUBseed indexOfSelectedItem] == 0) str = [str stringByAppendingFormat:@"打撃"]; + if([ALPUBseed indexOfSelectedItem] == 1) str = [str stringByAppendingFormat:@"斬撃"]; + if([ALPUBseed indexOfSelectedItem] == 2) str = [str stringByAppendingFormat:@"突き"]; + if([ALPUBseed indexOfSelectedItem] == 3) str = [str stringByAppendingFormat:@"射手"]; + if([ALPUBseed indexOfSelectedItem] == 4) str = [str stringByAppendingFormat:@"銃撃"]; + if([ALPUBseed indexOfSelectedItem] == 5) str = [str stringByAppendingFormat:@"砲撃"]; + if([ALPUBseed indexOfSelectedItem] == 6) str = [str stringByAppendingFormat:@"火炎"]; + if([ALPUBseed indexOfSelectedItem] == 7) str = [str stringByAppendingFormat:@"冷気"]; + if([ALPUBseed indexOfSelectedItem] == 8) str = [str stringByAppendingFormat:@"電撃"]; + if([ALPUBseed indexOfSelectedItem] == 9) str = [str stringByAppendingFormat:@"風圧"]; + if([ALPUBseed indexOfSelectedItem] == 10) str = [str stringByAppendingFormat:@"流水"]; + if([ALPUBseed indexOfSelectedItem] == 11) str = [str stringByAppendingFormat:@"ガス"]; + if([ALPUBseed indexOfSelectedItem] == 12) str = [str stringByAppendingFormat:@"神聖"]; + if([ALPUBseed indexOfSelectedItem] == 13) str = [str stringByAppendingFormat:@"暗黒"]; + if([ALPUBseed indexOfSelectedItem] == 14) str = [str stringByAppendingFormat:@"爆撃"]; + if([ALPUBseed indexOfSelectedItem] == 15) str = [str stringByAppendingFormat:@"流血"]; + + + ATTACK *aTop = EQ[clickIndexEQ].A; + for(int k = 0;k < clickIndexAL;k++) { + EQ[clickIndexEQ].A = EQ[clickIndex].A->next; + } + + DAMAGE *Dtop = EQ[clickIndexEQ].A->D; + if(!EQ[clickIndexEQ].A->D){ + EQ[clickIndexEQ].A->D = calloc(1, sizeof(DAMAGE)); + Dtop = EQ[clickIndexEQ].A->D; + } + while(EQ[clickIndexEQ].A->D->next){ + EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next; + } + + if([damageListMA count] >= 1){ + EQ[clickIndexEQ].A->D->next = calloc(1, sizeof(DAMAGE)); + EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next; + } + EQ[clickIndexEQ].A->D->next = NULL;//Dtop; + EQ[clickIndexEQ].A->D->count = [ALTFdmgCount intValue]; + EQ[clickIndexEQ].A->D->pCount = [ALTFdmgRate intValue]; + EQ[clickIndexEQ].A->D->type = (int)[ALPUBtype indexOfSelectedItem]; + EQ[clickIndexEQ].A->D->seed = (int)[ALPUBseed indexOfSelectedItem]; + EQ[clickIndexEQ].A->D->sort = (int)[ALPUBsort indexOfSelectedItem]; + EQ[clickIndexEQ].A->D->beam = [ALTFbeam intValue]; + EQ[clickIndexEQ].A->D->absolute = [ALTFabsolute intValue]; + EQ[clickIndexEQ].A->D->noSizeFix = [ALTFnoSizeFix intValue]; + EQ[clickIndexEQ].A->D->continium = [ALTFcontinuum intValue]; + + [self setTotalDamageEQ:(int)clickIndex row:clickedRowAT]; + + [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"type"]; + [self willChangeValueForKey:@"damageListMA"]; + [damageListMA addObject:dict]; + [self didChangeValueForKey:@"damageListMA"]; + [damageListAC setSelectionIndex:[damageListTV selectedRow]]; + + EQ[clickIndexEQ].A->D = Dtop; + + EQ[clickIndexEQ].A = aTop; + + + return; + } + + + if(!loadChipSideFlag){ + NSMutableDictionary* dict = [NSMutableDictionary new]; + + if([ALPUBtype indexOfSelectedItem] == 0) + [dict setValue:[NSString stringWithFormat:@"攻%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"]; + if([ALPUBtype indexOfSelectedItem] == 1) + [dict setValue:[NSString stringWithFormat:@"防%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"]; + if([ALPUBtype indexOfSelectedItem] == 2) + [dict setValue:[NSString stringWithFormat:@"命%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"]; + if([ALPUBtype indexOfSelectedItem] == 3) + [dict setValue:[NSString stringWithFormat:@"回%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"]; + if([ALPUBtype indexOfSelectedItem] == 4) + [dict setValue:[NSString stringWithFormat:@"演%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"]; + if([ALPUBtype indexOfSelectedItem] == 5) + [dict setValue:[NSString stringWithFormat:@"会%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"]; + + NSString *str; + + if([ALPUBsort indexOfSelectedItem] == 0) str = [NSString stringWithFormat:@"ダ・"]; + if([ALPUBsort indexOfSelectedItem] == 1) str = [NSString stringWithFormat:@"回・"]; + if([ALPUBsort indexOfSelectedItem] == 2) str = [NSString stringWithFormat:@"復・"]; + if([ALPUBsort indexOfSelectedItem] == 3) str = [NSString stringWithFormat:@"減・"]; + if([ALPUBsort indexOfSelectedItem] == 4) str = [NSString stringWithFormat:@"増・"]; + if([ALPUBsort indexOfSelectedItem] == 5) str = [NSString stringWithFormat:@"毒・"]; + if([ALPUBsort indexOfSelectedItem] == 6) str = [NSString stringWithFormat:@"睡・"]; + if([ALPUBsort indexOfSelectedItem] == 7) str = [NSString stringWithFormat:@"混・"]; + if([ALPUBsort indexOfSelectedItem] == 8) str = [NSString stringWithFormat:@"麻・"]; + if([ALPUBsort indexOfSelectedItem] == 9) str = [NSString stringWithFormat:@"沈・"]; + if([ALPUBsort indexOfSelectedItem] == 10) str = [NSString stringWithFormat:@"魅・"]; + + if([ALPUBseed indexOfSelectedItem] == 0) str = [str stringByAppendingFormat:@"打撃"]; + if([ALPUBseed indexOfSelectedItem] == 1) str = [str stringByAppendingFormat:@"斬撃"]; + if([ALPUBseed indexOfSelectedItem] == 2) str = [str stringByAppendingFormat:@"突き"]; + if([ALPUBseed indexOfSelectedItem] == 3) str = [str stringByAppendingFormat:@"射手"]; + if([ALPUBseed indexOfSelectedItem] == 4) str = [str stringByAppendingFormat:@"銃撃"]; + if([ALPUBseed indexOfSelectedItem] == 5) str = [str stringByAppendingFormat:@"砲撃"]; + if([ALPUBseed indexOfSelectedItem] == 6) str = [str stringByAppendingFormat:@"火炎"]; + if([ALPUBseed indexOfSelectedItem] == 7) str = [str stringByAppendingFormat:@"冷気"]; + if([ALPUBseed indexOfSelectedItem] == 8) str = [str stringByAppendingFormat:@"電撃"]; + if([ALPUBseed indexOfSelectedItem] == 9) str = [str stringByAppendingFormat:@"風圧"]; + if([ALPUBseed indexOfSelectedItem] == 10) str = [str stringByAppendingFormat:@"流水"]; + if([ALPUBseed indexOfSelectedItem] == 11) str = [str stringByAppendingFormat:@"ガス"]; + if([ALPUBseed indexOfSelectedItem] == 12) str = [str stringByAppendingFormat:@"神聖"]; + if([ALPUBseed indexOfSelectedItem] == 13) str = [str stringByAppendingFormat:@"暗黒"]; + if([ALPUBseed indexOfSelectedItem] == 14) str = [str stringByAppendingFormat:@"爆撃"]; + if([ALPUBseed indexOfSelectedItem] == 15) str = [str stringByAppendingFormat:@"流血"]; + + + ATTACK *aTop = UC[clickIndex].A; + for(int k = 0;k < clickIndexAL;k++) { + UC[clickIndex].A = UC[clickIndex].A->next; + } + + DAMAGE *Dtop = UC[clickIndex].A->D; + if(!UC[clickIndex].A->D){ + UC[clickIndex].A->D = calloc(1, sizeof(DAMAGE)); + Dtop = UC[clickIndex].A->D; + } + while(UC[clickIndex].A->D->next){ + UC[clickIndex].A->D = UC[clickIndex].A->D->next; + } + + if([damageListMA count] >= 1){ + UC[clickIndex].A->D->next = calloc(1, sizeof(DAMAGE)); + UC[clickIndex].A->D = UC[clickIndex].A->D->next; + } + UC[clickIndex].A->D->next = NULL;//Dtop; + UC[clickIndex].A->D->count = [ALTFdmgCount intValue]; + UC[clickIndex].A->D->pCount = [ALTFdmgRate intValue]; + UC[clickIndex].A->D->type = (int)[ALPUBtype indexOfSelectedItem]; + UC[clickIndex].A->D->seed = (int)[ALPUBseed indexOfSelectedItem]; + UC[clickIndex].A->D->sort = (int)[ALPUBsort indexOfSelectedItem]; + UC[clickIndex].A->D->beam = [ALTFbeam intValue]; + UC[clickIndex].A->D->absolute = [ALTFabsolute intValue]; + UC[clickIndex].A->D->noSizeFix = [ALTFnoSizeFix intValue]; + UC[clickIndex].A->D->continium = [ALTFcontinuum intValue]; + + [self setTotalDamage:(int)clickIndex row:clickedRowAT]; + + [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"type"]; + [self willChangeValueForKey:@"damageListMA"]; + [damageListMA addObject:dict]; + [self didChangeValueForKey:@"damageListMA"]; + [damageListAC setSelectionIndex:[damageListTV selectedRow]]; + + UC[clickIndex].A->D = Dtop; + + UC[clickIndex].A = aTop; + }else{ + + NSMutableDictionary* dict = [NSMutableDictionary new]; + + [dict setValue:[NSString stringWithFormat:@"攻%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"]; + + NSString *str; + + if([ALPUBsort indexOfSelectedItem] == 0) str = [NSString stringWithFormat:@"ダ・"]; + if([ALPUBsort indexOfSelectedItem] == 1) str = [NSString stringWithFormat:@"回・"]; + if([ALPUBsort indexOfSelectedItem] == 2) str = [NSString stringWithFormat:@"復・"]; + if([ALPUBsort indexOfSelectedItem] == 3) str = [NSString stringWithFormat:@"減・"]; + if([ALPUBsort indexOfSelectedItem] == 4) str = [NSString stringWithFormat:@"増・"]; + if([ALPUBsort indexOfSelectedItem] == 5) str = [NSString stringWithFormat:@"毒・"]; + if([ALPUBsort indexOfSelectedItem] == 6) str = [NSString stringWithFormat:@"睡・"]; + if([ALPUBsort indexOfSelectedItem] == 7) str = [NSString stringWithFormat:@"混・"]; + if([ALPUBsort indexOfSelectedItem] == 8) str = [NSString stringWithFormat:@"麻・"]; + if([ALPUBsort indexOfSelectedItem] == 9) str = [NSString stringWithFormat:@"沈・"]; + if([ALPUBsort indexOfSelectedItem] == 10) str = [NSString stringWithFormat:@"魅・"]; + + if([ALPUBseed indexOfSelectedItem] == 0) str = [str stringByAppendingFormat:@"打撃"]; + if([ALPUBseed indexOfSelectedItem] == 1) str = [str stringByAppendingFormat:@"斬撃"]; + if([ALPUBseed indexOfSelectedItem] == 2) str = [str stringByAppendingFormat:@"突き"]; + if([ALPUBseed indexOfSelectedItem] == 3) str = [str stringByAppendingFormat:@"射手"]; + if([ALPUBseed indexOfSelectedItem] == 4) str = [str stringByAppendingFormat:@"銃撃"]; + if([ALPUBseed indexOfSelectedItem] == 5) str = [str stringByAppendingFormat:@"砲撃"]; + if([ALPUBseed indexOfSelectedItem] == 6) str = [str stringByAppendingFormat:@"火炎"]; + if([ALPUBseed indexOfSelectedItem] == 7) str = [str stringByAppendingFormat:@"冷気"]; + if([ALPUBseed indexOfSelectedItem] == 8) str = [str stringByAppendingFormat:@"電撃"]; + if([ALPUBseed indexOfSelectedItem] == 9) str = [str stringByAppendingFormat:@"風圧"]; + if([ALPUBseed indexOfSelectedItem] == 10) str = [str stringByAppendingFormat:@"流水"]; + if([ALPUBseed indexOfSelectedItem] == 11) str = [str stringByAppendingFormat:@"ガス"]; + if([ALPUBseed indexOfSelectedItem] == 12) str = [str stringByAppendingFormat:@"神聖"]; + if([ALPUBseed indexOfSelectedItem] == 13) str = [str stringByAppendingFormat:@"暗黒"]; + if([ALPUBseed indexOfSelectedItem] == 14) str = [str stringByAppendingFormat:@"爆撃"]; + if([ALPUBseed indexOfSelectedItem] == 15) str = [str stringByAppendingFormat:@"流血"]; + + + ATTACK *aTop = LC[cil].A; + for(int k = 0;k < clickIndexAL;k++) { + LC[cil].A = LC[cil].A->next; + } + + DAMAGE *Dtop = LC[cil].A->D; + if(!LC[cil].A->D){ + LC[cil].A->D = calloc(1, sizeof(DAMAGE)); + Dtop = LC[cil].A->D; + } + while(LC[cil].A->D->next){ + LC[cil].A->D = LC[cil].A->D->next; + } + + if([damageListMA count] >= 1){ + LC[cil].A->D->next = calloc(1, sizeof(DAMAGE)); + LC[cil].A->D = LC[cil].A->D->next; + } + LC[cil].A->D->next = NULL;//Dtop; + LC[cil].A->D->count = [ALTFdmgCount intValue]; + LC[cil].A->D->pCount = [ALTFdmgRate intValue]; + LC[cil].A->D->type = (int)[ALPUBtype indexOfSelectedItem]; + LC[cil].A->D->seed = (int)[ALPUBseed indexOfSelectedItem]; + LC[cil].A->D->sort = (int)[ALPUBsort indexOfSelectedItem]; + LC[cil].A->D->beam = [ALTFbeam intValue]; + LC[cil].A->D->absolute = [ALTFabsolute intValue]; + LC[cil].A->D->noSizeFix = [ALTFnoSizeFix intValue]; + LC[cil].A->D->continium = [ALTFcontinuum intValue]; + + [self setTotalDamage2:(int)clickIndex row:clickedRowAT]; + + [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"type"]; + [self willChangeValueForKey:@"damageListMA"]; + [damageListMA addObject:dict]; + [self didChangeValueForKey:@"damageListMA"]; + [damageListAC setSelectionIndex:[damageListTV selectedRow]]; + + LC[cil].A->D = Dtop; + + LC[cil].A = aTop; + + } + +} + +-(IBAction)removeDamageList:(id)sender{ + + if(EQmodeFlag){ + if([damageListTV selectedRow] >= 0){ + + ATTACK *aTop = EQ[clickIndexEQ].A; + for(int k = 0;k < clickIndexAL;k++) { + EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next; + } + DAMAGE *dmgNext = NULL; + dmgNext = calloc(1, sizeof(DAMAGE)); + + int clickIndexDL = (int)[damageListTV selectedRow]; + + DAMAGE *dTop = EQ[clickIndexEQ].A->D; + for(int k = 0;k < clickIndexDL;k++){ + EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next; + } + + if(clickIndexDL >= 0 && [damageListMA count] > 0){ + if(clickIndexDL == 0){ + EQ[clickIndexEQ].A->D = dTop; + EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next; + dTop = EQ[clickIndexEQ].A->D; + }else if(clickIndexDL == [damageListMA count] - 1){ + EQ[clickIndexEQ].A->D = dTop; + while(EQ[clickIndexEQ].A->D->next->next){ + EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next; + } + EQ[clickIndex].A->D->next = NULL; + }else{ + EQ[clickIndexEQ].A->D = dTop; + for (int i = 0; i < clickIndexDL - 1;i++) + EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next; + EQ[clickIndexEQ].A->D->next = EQ[clickIndexEQ].A->D->next->next; + } + } + EQ[clickIndexEQ].A->D = dTop; + + [self willChangeValueForKey:@"damageListMA"]; + [damageListMA removeObjectAtIndex:[damageListTV selectedRow]]; + [self didChangeValueForKey:@"damageListMA"]; + if([damageListMA count] > 0) [damageListAC setSelectionIndex:[damageListTV selectedRow]-1]; + + EQ[clickIndexEQ].A = aTop; + + + + } + return; + } + + if(!loadChipSideFlag){ + if([damageListTV selectedRow] >= 0){ + + ATTACK *aTop = UC[clickIndex].A; + for(int k = 0;k < clickIndexAL;k++) { + UC[clickIndex].A = UC[clickIndex].A->next; + } + DAMAGE *dmgNext = NULL; + dmgNext = calloc(1, sizeof(DAMAGE)); + + int clickIndexDL = (int)[damageListTV selectedRow]; + + DAMAGE *dTop = UC[clickIndex].A->D; + for(int k = 0;k < clickIndexDL;k++){ + UC[clickIndex].A->D = UC[clickIndex].A->D->next; + } + + if(clickIndexDL >= 0 && [damageListMA count] > 0){ + if(clickIndexDL == 0){ + UC[clickIndex].A->D = dTop; + UC[clickIndex].A->D = UC[clickIndex].A->D->next; + dTop = UC[clickIndex].A->D; + }else if(clickIndexDL == [damageListMA count] - 1){ + UC[clickIndex].A->D = dTop; + while(UC[clickIndex].A->D->next->next){ + UC[clickIndex].A->D = UC[clickIndex].A->D->next; + } + UC[clickIndex].A->D->next = NULL; + }else{ + UC[clickIndex].A->D = dTop; + for (int i = 0; i < clickIndexDL - 1;i++) + UC[clickIndex].A->D = UC[clickIndex].A->D->next; + UC[clickIndex].A->D->next = UC[clickIndex].A->D->next->next; + } + } + UC[clickIndex].A->D = dTop; + + [self willChangeValueForKey:@"damageListMA"]; + [damageListMA removeObjectAtIndex:[damageListTV selectedRow]]; + [self didChangeValueForKey:@"damageListMA"]; + if([damageListMA count] > 0) [damageListAC setSelectionIndex:[damageListTV selectedRow]-1]; + + UC[clickIndex].A = aTop; + } + + }else{ + if([damageListTV selectedRow] >= 0){ + + ATTACK *aTop = LC[cil].A; + for(int k = 0;k < clickIndexAL;k++) { + LC[cil].A = LC[cil].A->next; + } + DAMAGE *dmgNext = NULL; + dmgNext = calloc(1, sizeof(DAMAGE)); + + int clickIndexDL = (int)[damageListTV selectedRow]; + + DAMAGE *dTop = LC[cil].A->D; + for(int k = 0;k < clickIndexDL;k++){ + LC[cil].A->D = LC[cil].A->D->next; + } + + if(clickIndexDL >= 0 && [damageListMA count] > 0){ + if(clickIndexDL == 0){ + LC[cil].A->D = dTop; + LC[cil].A->D = LC[cil].A->D->next; + dTop = LC[cil].A->D; + }else if(clickIndexDL == [damageListMA count] - 1){ + LC[cil].A->D = dTop; + while(LC[cil].A->D->next->next){ + LC[cil].A->D = LC[cil].A->D->next; + } + LC[cil].A->D->next = NULL; + }else{ + LC[cil].A->D = dTop; + for (int i = 0; i < clickIndexDL - 1;i++) + LC[cil].A->D = LC[cil].A->D->next; + LC[cil].A->D->next = LC[cil].A->D->next->next; + } + } + LC[cil].A->D = dTop; + + [self willChangeValueForKey:@"damageListMA"]; + [damageListMA removeObjectAtIndex:[damageListTV selectedRow]]; + [self didChangeValueForKey:@"damageListMA"]; + if([damageListMA count] > 0) [damageListAC setSelectionIndex:[damageListTV selectedRow]-1]; + + LC[cil].A = aTop; + } + + } +} + + + +-(IBAction)insertHitList:(id)sender{ + + if(!loadChipSideFlag){ + ATTACK *aTop = UC[clickIndex].A; + for(int k = 0;k < clickIndexAL;k++) { + UC[clickIndex].A = UC[clickIndex].A->next; + } + + DMGEXTEND *Etop = UC[clickIndex].A->E; + + UC[clickIndex].A->E = Etop; + + if(!UC[clickIndex].A->E) {[self AddDMGEXTEND:&UC[clickIndex].A->E :0]; + Etop = UC[clickIndex].A->E; + } + + for(int k = 0;k < (int)[hitListMA count]-1;k++) { + UC[clickIndex].A->E = UC[clickIndex].A->E->next; + } + + + if((int)[hitListMA count] > 0){ + UC[clickIndex].A->E->next = calloc(1, sizeof(DMGEXTEND)); + UC[clickIndex].A->E = UC[clickIndex].A->E->next; + } + UC[clickIndex].A->E->next = NULL; + UC[clickIndex].A->E->atkHit = [ALTFatkHit intValue]; + UC[clickIndex].A->E->hit = [ALTFhit intValue]; + UC[clickIndex].A->E->rate = [ALTFrate intValue]; + + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"%d", [ALTFrate intValue]] forKey:@"rate"]; + [dict setValue:[NSString stringWithFormat:@"%d", [ALTFhit intValue]] forKey:@"hit"]; + [dict setValue:[NSString stringWithFormat:@"%d", [ALTFatkHit intValue]] forKey:@"atkHit"]; + + [self willChangeValueForKey:@"hitListMA"]; + [hitListMA addObject:dict]; + [self didChangeValueForKey:@"hitListMA"]; + [hitListAC setSelectionIndex:[hitListTV selectedRow]]; + + UC[clickIndex].A->E = Etop; + + UC[clickIndex].A = aTop; + + }else{ + + ATTACK *aTop = LC[cil].A; + for(int k = 0;k < clickIndexAL;k++) { + LC[cil].A = LC[cil].A->next; + } + + DMGEXTEND *Etop = LC[cil].A->E; + + LC[cil].A->E = Etop; + + if(!LC[cil].A->E) {[self AddDMGEXTEND:&LC[cil].A->E :0]; + Etop = LC[cil].A->E; + } + + for(int k = 0;k < (int)[hitListMA count]-1;k++) { + LC[cil].A->E = LC[cil].A->E->next; + } + + + if((int)[hitListMA count] > 0){ + LC[cil].A->E->next = calloc(1, sizeof(DMGEXTEND)); + LC[cil].A->E = LC[cil].A->E->next; + } + LC[cil].A->E->next = NULL; + LC[cil].A->E->atkHit = [ALTFatkHit intValue]; + LC[cil].A->E->hit = [ALTFhit intValue]; + LC[cil].A->E->rate = [ALTFrate intValue]; + + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"%d", [ALTFrate intValue]] forKey:@"rate"]; + [dict setValue:[NSString stringWithFormat:@"%d", [ALTFhit intValue]] forKey:@"hit"]; + [dict setValue:[NSString stringWithFormat:@"%d", [ALTFatkHit intValue]] forKey:@"atkHit"]; + + [self willChangeValueForKey:@"hitListMA"]; + [hitListMA addObject:dict]; + [self didChangeValueForKey:@"hitListMA"]; + [hitListAC setSelectionIndex:[hitListTV selectedRow]]; + + LC[cil].A->E = Etop; + + LC[cil].A = aTop; + + + + } + +} + +-(IBAction)removeHitList:(id)sender{ + + + if(!loadChipSideFlag){ + if([hitListTV selectedRow] >= 0){ + ATTACK *aTop = UC[clickIndex].A; + for(int k = 0;k < clickIndexAL;k++) { + UC[clickIndex].A = UC[clickIndex].A->next; + } + DMGEXTEND *Etop = UC[clickIndex].A->E; + DMGEXTEND *eNext = NULL; + + + int clickIndexHL = (int)[hitListTV selectedRow]; + + for(int k = 0;k < clickIndexHL-1;k++){ + UC[clickIndex].A->E = UC[clickIndex].A->E->next; + } + + if(clickIndexHL == 0) { + + UC[clickIndex].A->E = UC[clickIndex].A->E->next; + Etop = UC[clickIndex].A->E; + + } + + else{ + eNext = UC[clickIndex].A->E->next->next; + + UC[clickIndex].A->E->next = eNext; + } + + UC[clickIndex].A->E = Etop; + + [self willChangeValueForKey:@"hitListMA"]; + [hitListMA removeObjectAtIndex:[hitListTV selectedRow]]; + [self didChangeValueForKey:@"hitListMA"]; + if([hitListMA count] > 0) [hitListAC setSelectionIndex:[hitListTV selectedRow]-1]; + + UC[clickIndex].A = aTop; + } + + }else{ + + if([hitListTV selectedRow] >= 0){ + ATTACK *aTop = LC[cil].A; + for(int k = 0;k < clickIndexAL;k++) { + LC[cil].A = LC[cil].A->next; + } + DMGEXTEND *Etop = LC[cil].A->E; + DMGEXTEND *eNext = NULL; + + + int clickIndexHL = (int)[hitListTV selectedRow]; + + for(int k = 0;k < clickIndexHL-1;k++){ + LC[cil].A->E = LC[cil].A->E->next; + } + + if(clickIndexHL == 0) { + + LC[cil].A->E = LC[cil].A->E->next; + Etop = LC[cil].A->E; + + } + + else{ + eNext = LC[cil].A->E->next->next; + + LC[cil].A->E->next = eNext; + } + + LC[cil].A->E = Etop; + + [self willChangeValueForKey:@"hitListMA"]; + [hitListMA removeObjectAtIndex:[hitListTV selectedRow]]; + [self didChangeValueForKey:@"hitListMA"]; + if([hitListMA count] > 0) [hitListAC setSelectionIndex:[hitListTV selectedRow]-1]; + + LC[cil].A = aTop; + } + + + } +} + +-(IBAction)skillListInsert:(id)sender{ + SLpbtn = (int)[PUBsl indexOfSelectedItem]; + + if(SLpbtn <= 0) return; + + NSMutableDictionary *dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"新規スキル"] forKey:@"name"]; + + Stop = UC[clickIndex].S; + + if(SKLrow < 0){ + if([skillListMA count] == 0){ + UC[clickIndex].S = (SKILL*)malloc(sizeof(SKILL)); + //INIT 処理 + UC[clickIndex].S->type = SLpbtn; + [self SLbuildinit]; + UC[clickIndex].S->next = NULL; + Stop = UC[clickIndex].S; + }else{ + while(UC[clickIndex].S->next) UC[clickIndex].S = UC[clickIndex].S->next; + UC[clickIndex].S->next = (SKILL*)malloc(sizeof(SKILL)); + UC[clickIndex].S = UC[clickIndex].S->next; + //INIT 処理 + UC[clickIndex].S->type = SLpbtn; + [self SLbuildinit]; + UC[clickIndex].S->next = NULL; + UC[clickIndex].S = Stop; + } + + SKL = SKLtop; + for(int i = 1;i < SLpbtn;i++){ + SKL = SKL->next; + } + [dict setValue:[NSString stringWithFormat:@"%@", SKL->name] forKey:@"name"]; + SKL = SKLtop; + [self willChangeValueForKey:@"skillListMA"]; + [skillListMA insertObject:dict atIndex:[skillListMA count]]; + [self didChangeValueForKey:@"skillListMA"]; + [skillListAC setSelectionIndex:999]; + SKLrow = -1; + }else{ + UC[clickIndex].S = Stop; + if([skillListMA count] == 0){ + UC[clickIndex].S = (SKILL*)malloc(sizeof(SKILL)); + //INIT 処理 + UC[clickIndex].S->type = SLpbtn; + [self SLbuildinit]; + UC[clickIndex].S->next = NULL; + Stop = UC[clickIndex].S; + }else if(SKLrow > 0){ + for (int i = 0; i < SKLrow-1;i++) + UC[clickIndex].S = UC[clickIndex].S->next; + + SKILL *tmp = (SKILL*)malloc(sizeof(SKILL)); + *tmp = *UC[clickIndex].S->next; + UC[clickIndex].S->next = (SKILL*)malloc(sizeof(SKILL)); + UC[clickIndex].S->next->next = tmp; + UC[clickIndex].S = UC[clickIndex].S->next; + //INIT 処理 + UC[clickIndex].S->type = SLpbtn; + [self SLbuildinit]; + UC[clickIndex].S = Stop; + }else{ + SKILL *tmp = (SKILL*)malloc(sizeof(SKILL)); + tmp->next = UC[clickIndex].S; + + UC[clickIndex].S->type = SLpbtn; + [self SLbuildinit]; + Stop = tmp; + UC[clickIndex].S = Stop; + } + SKL = SKLtop; + for(int i = 1;i < SLpbtn;i++){ + SKL = SKL->next; + } + [dict setValue:[NSString stringWithFormat:@"%@", SKL->name] forKey:@"name"]; + SKL = SKLtop; + [self willChangeValueForKey:@"skillListMA"]; + [skillListMA insertObject:dict atIndex:SKLrow]; + [self didChangeValueForKey:@"skillListMA"]; + [skillListAC setSelectionIndex:SKLrow]; + } +} +-(IBAction)skillListDelete:(id)sender{ + Stop = UC[clickIndex].S; + + if(SKLrow == -1){ + SKLrow = (int)[skillListMA count] - 1; + } + + if([skillListMA count] > 0){ + + if(SKLrow == 0){ + UC[clickIndex].S = Stop; + UC[clickIndex].S = UC[clickIndex].S->next; + Stop = UC[clickIndex].S; + }else if(SKLrow == [skillListMA count] - 1){ + UC[clickIndex].S = Stop; + while(UC[clickIndex].S->next->next){ + UC[clickIndex].S = UC[clickIndex].S->next; + } + UC[clickIndex].S->next = NULL; + }else{ + UC[clickIndex].S = Stop; + for (int i = 0; i < SKLrow - 1;i++) + UC[clickIndex].S = UC[clickIndex].S->next; + UC[clickIndex].S->next = UC[clickIndex].S->next->next; + } + + [self willChangeValueForKey:@"skillListMA"]; + [skillListMA removeObjectAtIndex:SKLrow]; + [self didChangeValueForKey:@"skillListMA"]; + [skillListAC setSelectionIndex:SKLrow-1]; + if(SKLrow < 0) [skillListAC setSelectionIndex:[skillListMA count]-1]; + if(SKLrow == 0) [skillListAC setSelectionIndex:0]; + if(SKLrow > 0) SKLrow--; + } + UC[clickIndex].S = Stop; +} + + +-(IBAction)SLbuildAdd:(id)sender{ + NSMutableDictionary *dict = [NSMutableDictionary new]; + NSMutableArray *Array = [NSMutableArray array]; + + for(int i = 0;inext; + } + + if(1){ + if([skillListBuildMA count] == 0){ + UC[clickIndex].S->list[0] = 1; + }else{ + int k = 0; + for(int i = 0;UC[clickIndex].S->list[i] > 0;i++){ + k++; + } + UC[clickIndex].S->list[k] = 1; + } + + [self willChangeValueForKey:@"skillListBuildMA"]; + [skillListBuildMA addObject:dict]; + [self didChangeValueForKey:@"skillListBuildMA"]; + [skillListBuildAC setSelectionIndex:[skillListBuildMA count]-1]; + SKLBrow = (int)[skillListBuildMA count]-1; + } + UC[clickIndex].S = Stop; + + +} +-(IBAction)SLbuildDelete:(id)sender{ + Stop = UC[clickIndex].S; + + if(SKLrow <= 0) SKLrow = 0; + + for(int i = 0;i < SKLrow;i++){ + UC[clickIndex].S = UC[clickIndex].S->next; + } + + if([skillListBuildMA count] > 0){ + int k = 0; + if(1){ + UC[clickIndex].S = Stop; + for(int i = 0;UC[clickIndex].S->list[i] == 0;i++){ + k++; + } + UC[clickIndex].S->list[k-1] = 0; + } + + [self willChangeValueForKey:@"skillListBuildMA"]; + [skillListBuildMA removeObjectAtIndex:k]; + [self didChangeValueForKey:@"skillListBuildMA"]; + [skillListBuildAC setSelectionIndex:SKLBrow-1]; + SKLBrow = -1; + } + UC[clickIndex].S = Stop; +} +-(IBAction)SLbuildSubmit:(id)sender{ + [self willChangeValueForKey:@"skillListBuildMA"]; + [skillListBuildMA removeAllObjects]; + [self didChangeValueForKey:@"skillListBuildMA"]; + [SLBpanel close]; +} + +-(void)SLbuildinit{ + + + for(int i = 0;i< 255;i++){ + UC[clickIndex].S->list[i] = 0; + UC[clickIndex].S->cost[i] = 0; + + } + +} + + +-(IBAction)SLunitAdd:(id)sender{ + NSMutableDictionary *dict = [NSMutableDictionary new]; + NSMutableArray *Array = [NSMutableArray array]; + + for(int i = 0;inext; + } + + if(1){ + if([skillListUnitMA count] == 0){ + UC[clickIndex].S->list[0] = 2; + }else{ + int k = 0; + for(int i = 0;UC[clickIndex].S->list[i] > 0;i++){ + k++; + } + UC[clickIndex].S->list[k] = 2; + } + + [self willChangeValueForKey:@"skillListUnitMA"]; + [skillListUnitMA addObject:dict]; + [self didChangeValueForKey:@"skillListUnitMA"]; + [skillListUnitAC setSelectionIndex:[skillListUnitMA count]-1]; + SKLBrow = (int)[skillListUnitMA count]-1; + }UC[clickIndex].S = Stop; + + + +} +-(IBAction)SLunitDelete:(id)sender{ + Stop = UC[clickIndex].S; + + if(SKLrow <= 0) SKLrow = 0; + + for(int i = 0;i < SKLrow;i++){ + UC[clickIndex].S = UC[clickIndex].S->next; + } + + if([skillListBuildMA count] > 0){ + int k = 0; + if(1){ + UC[clickIndex].S = Stop; + for(int i = 0;UC[clickIndex].S->list[i] == 0;i++){ + k++; + } + UC[clickIndex].S->list[k-1] = 0; + } + + [self willChangeValueForKey:@"skillListUnitMA"]; + [skillListUnitMA removeObjectAtIndex:k]; + [self didChangeValueForKey:@"skillListUnitMA"]; + [skillListUnitAC setSelectionIndex:SKLUrow-1]; + SKLUrow = -1; + } + UC[clickIndex].S = Stop; +} +-(IBAction)SLunitSubmit:(id)sender{ + [self willChangeValueForKey:@"skillListUnitMA"]; + [skillListUnitMA removeAllObjects]; + [self didChangeValueForKey:@"skillListUnitMA"]; + + [SLUpanel close]; +} + +-(IBAction)registUCL:(id)sender{ + [TFchipNumb setIntValue:(int)chipNumb]; + UCN = (int)chipNumb; + UnitChipMax = (int)chipNumb/25+1; + [UCLRegisterPanel makeKeyAndOrderFront:nil]; +} + +-(void)savePresetUnitNumber{ + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + NSString *path = @"data/UnitChip/preset.txt"; + + NSString *data = [NSString stringWithFormat:@"%d", (int)chipNumb]; + + [data writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil]; + +} + +-(void)savePresetItemNumber{ + NSString *directoryPath; + + directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; + [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath]; + + NSString *path = @"data/ItemList/preset.txt"; + + NSString *data = [NSString stringWithFormat:@"%d", (int)eItemNum]; + + [data writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil]; + +} + +-(IBAction)registSaveUCL:(id)sender{ + chipNumb = [TFchipNumb intValue]; + [self savePresetUnitNumber]; + UCN = (int)chipNumb; + UnitChipMax = (int)chipNumb/25+1; + [self initUnitChipList]; + [UCLRegisterPanel close]; +} +-(IBAction)registCancelUCL:(id)sender{ + [UCLRegisterPanel close]; +} + +-(void)initAttackSet{ + + [AMbtnA removeAllItems]; + [AMbtnB removeAllItems]; + [AMbtnC removeAllItems]; + [AMbtnD removeAllItems]; + + [self willChangeValueForKey:@"commandListMA"]; + [commandListMA removeAllObjects]; + [self didChangeValueForKey:@"commandListMA"]; + [self willChangeValueForKey:@"comboListMA"]; + [comboListMA removeAllObjects]; + [self didChangeValueForKey:@"comboListMA"]; + + ATTACK *Atop = UC[clickIndex].A; + while (UC[clickIndex].A != NULL) { + if(UC[clickIndex].A->name != NULL){ + [AMbtnA addItemWithTitle:UC[clickIndex].A->name]; + [AMbtnB addItemWithTitle:UC[clickIndex].A->name]; + [AMbtnC addItemWithTitle:UC[clickIndex].A->name]; + [AMbtnD addItemWithTitle:UC[clickIndex].A->name]; + } + UC[clickIndex].A = UC[clickIndex].A->next; + } + UC[clickIndex].A = Atop; + + COMMANDS *CMtop = UC[clickIndex].CM.cs; + if(UC[clickIndex].CM.cs != NULL) + while (UC[clickIndex].CM.cs->cmd != NULL) { + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].CM.cs->cmd] forKey:@"name"]; + if(![UC[clickIndex].CM.cs->hasei isEqualToString:@"0"]) + [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].CM.cs->hasei] forKey:@"hasei"]; + + NSMutableArray *Array = [NSMutableArray array]; + ATTACK *AAtop = UC[clickIndex].A; + while (UC[clickIndex].A != NULL) { + [Array addObject:UC[clickIndex].A->name]; + UC[clickIndex].A = UC[clickIndex].A->next; + } + UC[clickIndex].A = AAtop; + [dict setValue:Array forKey:@"waza"]; + + [self willChangeValueForKey:@"commandListMA"]; + [commandListMA addObject:dict]; + [self didChangeValueForKey:@"commandListMA"]; + UC[clickIndex].CM.cs = UC[clickIndex].CM.cs->next; + } + + + UC[clickIndex].CM.cs = CMtop; + + + + + COMBO *Ctop = UC[clickIndex].CM.co; + if(UC[clickIndex].CM.co != NULL) + while (UC[clickIndex].CM.co->mbo != NULL) { + NSMutableDictionary* dict = [NSMutableDictionary new]; + [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].CM.co->mbo] forKey:@"name"]; + [self willChangeValueForKey:@"comboListMA"]; + [comboListMA addObject:dict]; + [self didChangeValueForKey:@"comboListMA"]; + UC[clickIndex].CM.co = UC[clickIndex].CM.co->next; + } + UC[clickIndex].CM.co = Ctop; + + + [AMbtnA selectItemAtIndex:UC[clickIndex].CM.A]; + [AMbtnB selectItemAtIndex:UC[clickIndex].CM.B]; + [AMbtnC selectItemAtIndex:UC[clickIndex].CM.C]; + [AMbtnD selectItemAtIndex:UC[clickIndex].CM.D]; + + + + + + UC[clickIndex].A = Atop; +} + +-(void)initAttackSet2{ + + [AMbtnA removeAllItems]; + [AMbtnB removeAllItems]; + [AMbtnC removeAllItems]; + [AMbtnD removeAllItems]; + + [self willChangeValueForKey:@"commandListMA"]; + [commandListMA removeAllObjects]; + [self didChangeValueForKey:@"commandListMA"]; + [self willChangeValueForKey:@"comboListMA"]; + [comboListMA removeAllObjects]; + [self didChangeValueForKey:@"comboListMA"]; + +} + + +-(IBAction)attackListTotalSubmit:(id)sender{ + + UC[clickIndex].CM.A = (int)[AMbtnA indexOfSelectedItem]; + UC[clickIndex].CM.B = (int)[AMbtnB indexOfSelectedItem]; + UC[clickIndex].CM.C = (int)[AMbtnC indexOfSelectedItem]; + UC[clickIndex].CM.D = (int)[AMbtnD indexOfSelectedItem]; + + [UCLPanelAttackList close]; +} +-(IBAction)attackListOpenBtn:(id)sender{ + clickedRowAT = -1; + if(!loadChipSideFlag){ + [self initAttackList]; + }else{ + [self initAttackList2]; + } + /* + windowPoint.x = [UCLDetailPanel frame].origin.x; + windowPoint.y = [UCLDetailPanel frame].origin.y + 50; + [UCLPanelAttack setFrameOrigin:windowPoint]; + */ + [UCLPanelAttack makeKeyAndOrderFront:nil]; +} +-(IBAction)commandListAdd:(id)sender{} +-(IBAction)commandListRemove:(id)sender{} +-(IBAction)comboListAdd:(id)sender{} +-(IBAction)comboListRemove:(id)sender{} + + +-(IBAction)addSubjMark:(id)sender{ + NSString* str = [[ALTFmsg stringValue] retain]; + str = [[str stringByAppendingFormat:@"$subj"] retain]; + [ALTFmsg setStringValue:str]; +} +-(IBAction)addObjeMark:(id)sender{ + NSString* str = [[ALTFmsg stringValue] retain]; + str = [[str stringByAppendingFormat:@"$obje"] retain]; + [ALTFmsg setStringValue:str]; +} + + +-(IBAction)ILregi:(id)sender{ + + [ILregiTF setIntValue:(int)eItemNum]; + [ILregiWIndow makeKeyAndOrderFront:nil]; +} + +-(IBAction)saveILregi:(id)sender{ + + eItemNum = [ILregiTF intValue]; + [self initItemList]; + [self savePresetItemNumber]; + + [ILregiWIndow close]; +} + + +-(IBAction)cancelILregi:(id)sender{ + + [ILregiWIndow close]; +} + +-(IBAction)attackIL:(id)sender{ + + EQmodeFlag = true; + [self initAttackListEQ]; + [UCLPanelAttack makeKeyAndOrderFront:nil]; +} + +@end -- 2.11.0