5 // Created by Killery on 2012/12/16.
6 // Copyright (c) 2012年 Killery. All rights reserved.
9 #import "BuildChipList.h"
11 @implementation BuildChipList
17 - (NSMutableArray*)buildChipListMA{
18 return buildChipListMA;
20 -(IBAction)submit:(id)sender{
25 [buildChipListTV setTarget:self];
26 [buildChipListTV setDoubleAction:@selector(doubleClickBCL:)];
28 [researchListTV setTarget:self];
29 [researchListTV setAction:@selector(clickRL:)];
31 researchListMA = [NSMutableArray new];
32 unitListPU = [NSMutableArray new];
38 [self initFileDirectory];
39 [self initBuildChipList];
40 BuildChipMax = (int)chipNumb/25+1;
47 -(void)doubleClickBCL:(id)sender{
48 clickIndex = [buildChipListTV clickedRow];
51 [TFname setStringValue:BC[clickIndex].name];
52 [TFnameR setStringValue:BC[clickIndex].nameR];
53 [TFnameID setStringValue:BC[clickIndex].nameID];
54 [TFfix setIntValue:BC[clickIndex].dmgfix];
55 [TFWT setIntValue:BC[clickIndex].S_M.WT];
56 [TFDLv setIntValue:BC[clickIndex].defLv];
57 [TFHP setIntValue:BC[clickIndex].S_M.HP];
58 [TFRHP setIntValue:BC[clickIndex].recHP];
59 [TFRMP setIntValue:BC[clickIndex].recMP];
60 [TFREN setIntValue:BC[clickIndex].recEN];
61 [TFRHPL setIntValue:BC[clickIndex].recHPL];
62 [TFcostS setIntValue:BC[clickIndex].Csupply];
63 [TFcostF setIntValue:BC[clickIndex].Cfood];
64 [TFcostM setIntValue:BC[clickIndex].Cmoney];
65 [TFcostSn setIntValue:BC[clickIndex].CsupplyNext];
66 [TFcostFn setIntValue:BC[clickIndex].CfoodNext];
67 [TFcostMn setIntValue:BC[clickIndex].CmoneyNext];
68 [TFcostSe setIntValue:BC[clickIndex].Esupply];
69 [TFcostFe setIntValue:BC[clickIndex].Efood];
70 [TFcostMe setIntValue:BC[clickIndex].Emoney];
71 [TFWTE setIntValue:BC[clickIndex].S_M.WTE];
72 [TFWTN setIntValue:BC[clickIndex].S_M.WTN];
73 //[BC[clickIndex].img setFlipped:NO];
74 [IVimg setImage:BC[clickIndex].img];
75 [IVimgBig setImage:BC[clickIndex].imgb];
76 [PUPtype selectItemAtIndex:BC[clickIndex].type];
78 [BTNinroads setIntValue:BC[clickIndex].inroadsFlag];
79 [BTNcapture setIntValue:BC[clickIndex].capture];
81 //[PUPlinkD selectItemAtIndex:BC[clickIndex].linkDest];
82 //[PUPlinkN selectItemAtIndex:BC[clickIndex].linkNext];
86 BCLDpoint.x = [BCLPanel frame].origin.x + 50;
87 BCLDpoint.y = [BCLPanel frame].origin.y + 100;
88 [BCLDetailPanel setFrameOrigin:BCLDpoint];
89 [BCLDetailPanel makeKeyAndOrderFront:nil];
92 -(void)clickRL:(id)sender{
94 RLrow = (int)[researchListTV clickedRow];
98 -(IBAction)unitResearchBCL:(id)sender{
100 [unitListPU removeAllObjects];
102 for(int i = 0;i < UCN;i++){
103 [unitListPU addObject:UC[i].nameRecognition];
105 [PUunit addItemsWithTitles:unitListPU];
107 [self initResearchList];
108 [BTNguild setState:BC[clickIndex].GuildFlag];
110 BCLDpoint.x = [BCLDetailPanel frame].origin.x + 0;
111 BCLDpoint.y = [BCLDetailPanel frame].origin.y + 0;
112 [BCLUnitResearchPanel setFrameOrigin:BCLDpoint];
113 [BCLUnitResearchPanel makeKeyAndOrderFront:nil];
115 -(IBAction)unitResearchCloseBCL:(id)sender{
116 BC[clickIndex].GuildFlag = [BTNguild state];
117 [BCLUnitResearchPanel close];
120 -(IBAction)saveBCL:(id)sender{
121 BC[clickIndex].name = [[TFname stringValue] retain];
122 BC[clickIndex].nameR = [[TFnameR stringValue] retain];
123 BC[clickIndex].nameID = [[TFnameID stringValue] retain];
124 BC[clickIndex].S_M.WT = [TFWT intValue];
125 BC[clickIndex].dmgfix = [TFfix intValue];
126 BC[clickIndex].defLv = [TFDLv intValue];
127 BC[clickIndex].S_M.HP = [TFHP intValue];
128 BC[clickIndex].recHP = [TFRHP intValue];
129 BC[clickIndex].recMP = [TFRMP intValue];
130 BC[clickIndex].recEN = [TFREN intValue];
131 BC[clickIndex].recHPL = [TFRHPL intValue];
132 BC[clickIndex].Csupply = [TFcostS intValue];
133 BC[clickIndex].Cfood = [TFcostF intValue];
134 BC[clickIndex].Cmoney = [TFcostM intValue];
135 BC[clickIndex].CsupplyNext = [TFcostSn intValue];
136 BC[clickIndex].CfoodNext = [TFcostFn intValue];
137 BC[clickIndex].CmoneyNext = [TFcostMn intValue];
138 BC[clickIndex].Esupply = [TFcostSe intValue];
139 BC[clickIndex].Efood = [TFcostFe intValue];
140 BC[clickIndex].Emoney = [TFcostMe intValue];
141 BC[clickIndex].S_M.WTE = [TFWTE intValue];
142 BC[clickIndex].S_M.WTN = [TFWTN intValue];
143 BC[clickIndex].type = (int)[PUPtype indexOfSelectedItem];
144 BC[clickIndex].img = [[IVimg image] retain];
145 BC[clickIndex].imgb = [[IVimgBig image] retain];
147 BC[clickIndex].inroadsFlag = [BTNinroads intValue];
148 BC[clickIndex].capture = [BTNcapture intValue];
150 [buildChipListAC setValue:[NSString stringWithFormat:@"%@", BC[clickIndex].name] forKeyPath:@"selection.name"];
151 [buildChipListAC setValue:[NSString stringWithFormat:@"%d", BC[clickIndex].dmgfix] forKeyPath:@"selection.dmgfix"];
152 [buildChipListAC setValue:[NSString stringWithFormat:@"%d", BC[clickIndex].S_M.HP] forKeyPath:@"selection.HP"];
153 [buildChipListAC setValue:[NSString stringWithFormat:@"%d", BC[clickIndex].defLv] forKeyPath:@"selection.defLv"];
154 [buildChipListAC setValue:[NSString stringWithFormat:@"%d", BC[clickIndex].S_M.WT] forKeyPath:@"selection.WT"];
155 [buildChipListAC setValue:BC[clickIndex].img forKeyPath:@"selection.img"];
156 [buildChipListAC setValue:BC[clickIndex].imgb forKeyPath:@"selection.imgBig"];
159 [BCLDetailPanel close];
161 -(IBAction)cancelBCL:(id)sender{
162 [BCLDetailPanel close];
165 -(IBAction)optionBCL:(id)sender{
167 BCLDpoint.x = [BCLDetailPanel frame].origin.x + 100;
168 BCLDpoint.y = [BCLDetailPanel frame].origin.y + 0;
169 [BCLDetailOptionPanel setFrameOrigin:BCLDpoint];
170 [BCLDetailOptionPanel makeKeyAndOrderFront:nil];
173 -(IBAction)optionCloseBCL:(id)sender{
174 [BCLDetailOptionPanel close];
177 -(void)initFileDirectory{
178 NSString *directoryPath;
180 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
181 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
184 cwd = getcwd(NULL, 0);
187 NSData *InitialData = [NSData dataWithContentsOfFile:@"data/BuildChip/preset.txt"];
188 NSString *pathBC = @"data/BuildChip/img";
189 NSString *pathDATA2 = @"data/BuildChip/preset.txt";
190 NSString *pathBCP = @"data/BuildChip/preset.txt";
191 NSString *fileData = nil;
195 [[NSFileManager defaultManager] createDirectoryAtPath:pathBC withIntermediateDirectories:YES attributes:nil error:nil];
196 [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil];
198 [[NSFileManager defaultManager] createFileAtPath:pathBCP contents:nil attributes:nil];
200 //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----";
202 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,1\n1,2,1\n1,3,1\n----";
203 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,1\n1,1,1\n1,2,1\n1,3,1\n1,4,1\n1,5,1\n1,6,1\n----";
204 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,1\n1,1,1\n1,2,1\n1,3,1\n1,4,1\n1,5,1\n1,6,1\n1,7,1\n1,8,1\n1,10,1\n1,11,1\n1,12,1\n1,13,1\n1,14,1\n1,15,1\n1,16,1\n1,17,1\n----";
205 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,1\n1,1,1\n1,2,1\n1,3,1\n1,4,1\n1,5,1\n1,6,1\n1,7,1\n1,8,1\n1,9,1\n1,11,1\n1,12,1\n1,13,1\n1,16,1\n1,17,1\n1,18,1\n1,19,1\n1,22,1\n1,23,1\n1,24,1\n1,25,1\n1,26,1\n----";
206 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,1\n1,18,1\n1,19,1\n1,20,1\n1,21,1\n1,28,1\n1,29,1\n1,34,1\n1,35,1\n1,36,1\n1,37,1\n----";
207 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,1\n1,1,1\n1,2,1\n1,3,1\n1,4,1\n1,5,1\n1,6,1\n1,7,1\n1,8,1\n1,9,1\n1,10,1\n1,11,1\n1,12,1\n1,13,1\n1,14,1\n1,15,1\n1,16,1\n1,17,1\n1,18,1\n1,19,1\n1,20,1\n1,21,1\n1,22,1\n1,23,1\n1,24,1\n1,25,1\n1,26,1\n1,27,1\n1,28,1\n1,29,1\n1,30,1\n1,31,1\n1,32,1\n1,33,1\n1,38,1\n----";
208 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,1\n1,16,1\n1,18,1\n1,19,1\n1,20,1\n1,21,1\n1,22,1\n1,23,1\n1,24,1\n1,25,1\n1,26,1\n1,27,1\n1,28,1\n1,29,1\n1,30,1\n1,31,1\n1,32,1\n1,33,1\n1,34,1\n1,35,1\n1,36,1\n1,37,1\n1,38,1\n1,39,1\n1,40,1\n1,41,1\n1,42,1\n----";
209 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,1\n1,43,1\n----";
210 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----";
211 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----";
212 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----";
213 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----";
214 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----";
215 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----";
216 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----";
217 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----";
218 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----";
219 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----";
220 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----";
221 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----";
222 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----";
223 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----";
224 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----";
226 for (int i=0; i<chipNumb; i++) {
227 NSString *fdata = @"data/BuildChip/BCdata";
229 fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
233 [data1 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
236 [data2 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
239 [data3 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
242 [data4 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
245 [data5 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
248 [data6 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
251 [data7 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
254 [data8 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
257 [data9 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
260 [data10 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
263 [data11 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
266 [data12 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
269 [data13 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
272 [data14 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
275 [data15 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
278 [data16 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
281 [data17 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
284 [data18 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
287 [data19 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
290 [data20 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
293 [data21 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
296 [data22 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
299 [data23 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
308 NSString *fileData = @"";
309 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", (int)chipNumb]] stringByAppendingString:@"\n"];
311 NSString *path = @"data/BuildChip/preset.txt";
312 [fileData writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
316 NSString *fileData = @"";
317 NSString *path = @"data/BuildChip/preset.txt";
318 fileData = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
319 fileDataArray = [fileData componentsSeparatedByString:@"\n"];
321 chipNumb = [[fileDataArray objectAtIndex:0] intValue];
324 for (int j=0; j<chipNumb; j++) {
325 NSString *fdata = @"data/BuildChip/BCdata";
327 fdata = [fdata stringByAppendingFormat:@"%d.txt", j+1];
329 fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil];
330 fileDataArray = [fileData componentsSeparatedByString:@"\n"];
334 BC[j].name = [[fileDataArray objectAtIndex:0] retain];
335 BC[j].nameR = [[fileDataArray objectAtIndex:1] retain];
336 BC[j].nameID = [[fileDataArray objectAtIndex:2] retain];
338 NSArray *items = [[fileDataArray objectAtIndex:3] componentsSeparatedByString:@","];
340 BC[j].S_M.HP = [[items objectAtIndex:0] intValue];
341 BC[j].S_M.WT = [[items objectAtIndex:1] intValue];
342 BC[j].dmgfix = [[items objectAtIndex:2] intValue];
343 BC[j].defLv = [[items objectAtIndex:3] intValue];
344 BC[j].recHP = [[items objectAtIndex:4] intValue];
345 BC[j].recMP = [[items objectAtIndex:5] intValue];
346 BC[j].recEN = [[items objectAtIndex:6] intValue];
347 if([items count] > 7) BC[j].recHPL = [[items objectAtIndex:7] intValue];
349 items = [[fileDataArray objectAtIndex:4] componentsSeparatedByString:@","];
351 BC[j].Csupply = [[items objectAtIndex:0] intValue];
352 BC[j].Cfood = [[items objectAtIndex:1] intValue];
353 BC[j].Cmoney = [[items objectAtIndex:2] intValue];
354 BC[j].CsupplyNext = [[items objectAtIndex:3] intValue];
355 BC[j].CfoodNext = [[items objectAtIndex:4] intValue];
356 BC[j].CmoneyNext = [[items objectAtIndex:5] intValue];
357 BC[j].Esupply = [[items objectAtIndex:6] intValue];
358 BC[j].Efood = [[items objectAtIndex:7] intValue];
359 BC[j].Emoney = [[items objectAtIndex:8] intValue];
360 BC[j].S_M.WTE = [[items objectAtIndex:9] intValue];
361 BC[j].S_M.WTN = [[items objectAtIndex:10] intValue];
363 items = [[fileDataArray objectAtIndex:5] componentsSeparatedByString:@","];
365 BC[j].inroadsFlag = [[items objectAtIndex:0] intValue];
366 BC[j].capture = [[items objectAtIndex:1] intValue];
367 BC[j].type = [[items objectAtIndex:2] intValue];
368 BC[j].linkDest = [[items objectAtIndex:3] retain];
369 BC[j].linkNext = [[items objectAtIndex:4] retain];
370 if([items count] > 5) BC[j].GuildFlag = [[items objectAtIndex:5] intValue];
372 items = [[fileDataArray objectAtIndex:6] componentsSeparatedByString:@","];
374 BC[j].iName = [[items objectAtIndex:0] retain];
375 BC[j].iNameb = [[items objectAtIndex:1] retain];
377 //NSLog(@"iName = %@\n", BC[j].iName);
379 NSString *imgName = @"bc";
380 imgName = [imgName stringByAppendingFormat:@"%d", j+1];
381 BC[j].img = [[NSImage imageNamed:imgName] retain];
383 imgName = [NSString stringWithFormat:@"bcb"];
384 imgName = [imgName stringByAppendingFormat:@"%d", j+1];
385 BC[j].imgb = [[NSImage imageNamed:imgName] retain];
388 NSString *imagePath = @"data/BuildChip/img/bc";
389 imagePath = [imagePath stringByAppendingFormat:@"%d", j+1];
390 NSData *imgData = [NSData dataWithContentsOfFile:imagePath];
393 BC[j].img = [[[NSImage alloc] initWithData:[[NSFileHandle fileHandleForReadingAtPath:imagePath] readDataToEndOfFile]] retain];
395 imagePath = [NSString stringWithFormat:@"data/BuildChip/img/bcb"];
396 imagePath = [imagePath stringByAppendingFormat:@"%d", j+1];
397 imgData = [NSData dataWithContentsOfFile:imagePath];
400 BC[j].imgb = [[[NSImage alloc] initWithData:[[NSFileHandle fileHandleForReadingAtPath:imagePath] readDataToEndOfFile]] retain];
402 //items = [[fileDataArray objectAtIndex:7] componentsSeparatedByString:@","];
404 for(int k = 8;k < [fileDataArray count];k++){
405 NSString *str = [fileDataArray objectAtIndex:k];
409 rangeSearch = [str rangeOfString:@"----"];
410 rangeArray = [str componentsSeparatedByString:@","];
412 if (rangeSearch.location != NSNotFound) {
414 //UNITCHIP *UCR = Rtop->U;
415 if(omanko != 0) BC[j].R = Rtop;
420 BC[j].R = (RESEARCH*)malloc(sizeof(RESEARCH));
422 BC[j].R->type = [[rangeArray objectAtIndex:0] intValue];
423 BC[j].R->numb = [[rangeArray objectAtIndex:1] intValue];
424 BC[j].R->Lv = [[rangeArray objectAtIndex:2] intValue];
425 if([rangeArray count] > 3)
426 BC[j].R->UCLflag = [[rangeArray objectAtIndex:3] intValue];
428 if(BC[j].R->type == 1) {
429 BC[j].R->U = &UC[BC[j].R->numb];
433 if(BC[j].R->type == 2){
438 if(BC[j].R->type == 3){
444 BC[j].R->next = (RESEARCH*)malloc(sizeof(RESEARCH));
445 if(cnt == 0) Rtop = BC[j].R;
447 NSString *str2 = [fileDataArray objectAtIndex:k+1];
448 NSRange rangeSearch2 = [str2 rangeOfString:@"----"];
449 if(rangeSearch2.location != NSNotFound){
450 BC[j].R->next = NULL;
452 BC[j].R = BC[j].R->next;
457 BC[j].S_M.name = [BC[j].name retain];
458 BC[j].S_C = BC[j].S_M;
463 BuildChipNum = (int)chipNumb;
467 -(void)initBuildChipList{
470 buildChipListMA = [NSMutableArray new];
475 for(int i = 0;i < chipNumb;i++){
476 NSMutableDictionary* dict = [NSMutableDictionary new];
480 BC[i].name = [NSString stringWithFormat:@"新規建物"];
481 BC[i].name = [BC[i].name stringByAppendingFormat:@"%d",i+1];
482 BC[i].nameID = @"bc";
483 BC[i].nameID = [BC[i].nameID stringByAppendingFormat:@"%d",i+1];
484 BC[i].nameR = @"新規建物";
485 BC[i].nameR = [BC[i].nameR stringByAppendingFormat:@"%d",i+1];
487 BC[i].iName = [BC[i].iName stringByAppendingFormat:@"%d",i+1];
488 BC[i].iNameb = @"bcb";
489 BC[i].iNameb = [BC[i].iNameb stringByAppendingFormat:@"%d",i+1];
492 [dict setValue:BC[i].img forKey:@"img"];
493 [dict setValue:BC[i].imgb forKey:@"imgBig"];
494 [dict setValue:[NSString stringWithFormat:@"%@", BC[i].name] forKey:@"name"];
495 [dict setValue:[NSString stringWithFormat:@"%d", BC[i].S_M.HP] forKey:@"HP"];
496 [dict setValue:[NSString stringWithFormat:@"%d", BC[i].S_M.WT] forKey:@"WT"];
497 [dict setValue:[NSString stringWithFormat:@"%d", BC[i].dmgfix] forKey:@"dmgfix"];
498 [dict setValue:[NSString stringWithFormat:@"%d", BC[i].defLv] forKey:@"defLv"];
499 [self willChangeValueForKey:@"buildChipListMA"];
500 [buildChipListMA addObject:dict];
501 [self didChangeValueForKey:@"buildChipListMA"];
508 NSString *directoryPath;
510 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
511 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
513 NSString *fileData = @"";
514 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", (int)chipNumb]] stringByAppendingString:@"\n"];
516 NSString *path = @"data/BuildChip/preset.txt";
517 [fileData writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
521 NSString *directoryPath;
523 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
524 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
527 cwd = getcwd(NULL, 0);
529 for (int i = 0;i < chipNumb;i++) {
530 NSString *fileData = @"";
531 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].name]] stringByAppendingString:@"\n"];
532 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].nameR]] stringByAppendingString:@"\n"];
533 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].nameID]] stringByAppendingString:@"\n"];
534 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].S_M.HP]] stringByAppendingString:@","];
535 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].S_M.WT]] stringByAppendingString:@","];
536 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].dmgfix]] stringByAppendingString:@","];
537 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].defLv]] stringByAppendingString:@","];
538 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].recHP]] stringByAppendingString:@","];
539 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].recMP]] stringByAppendingString:@","];
540 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].recEN]] stringByAppendingString:@","];
541 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].recHPL]] stringByAppendingString:@"\n"];
542 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].Csupply]] stringByAppendingString:@","];
543 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].Cfood]] stringByAppendingString:@","];
544 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].Cmoney]] stringByAppendingString:@","];
545 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].CsupplyNext]] stringByAppendingString:@","];
546 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].CfoodNext]] stringByAppendingString:@","];
547 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].CmoneyNext]] stringByAppendingString:@","];
548 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].Esupply]] stringByAppendingString:@","];
549 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].Efood]] stringByAppendingString:@","];
550 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].Emoney]] stringByAppendingString:@","];
551 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].S_M.WTE]] stringByAppendingString:@","];
552 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].S_M.WTN]] stringByAppendingString:@"\n"];
553 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].inroadsFlag]] stringByAppendingString:@","];
554 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].capture]] stringByAppendingString:@","];
555 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].type]] stringByAppendingString:@","];
556 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].linkDest]] stringByAppendingString:@","];
557 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].linkNext]] stringByAppendingString:@","];
558 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].GuildFlag]] stringByAppendingString:@"\n"];
559 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].iName]] stringByAppendingString:@","];
560 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].iNameb]] stringByAppendingString:@"\n"];
561 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"];
563 NSData *f2Data = [BC[i].img TIFFRepresentation];
564 NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:f2Data];
565 f2Data = [brep representationUsingType:NSPNGFileType properties:nil];
567 NSString *bcPath = @"data/BuildChip/img/bc";
568 bcPath = [bcPath stringByAppendingFormat:@"%d", i + 1];
570 [f2Data writeToFile:bcPath atomically:YES];
572 f2Data = [BC[i].imgb TIFFRepresentation];
573 brep = [NSBitmapImageRep imageRepWithData:f2Data];
574 f2Data = [brep representationUsingType:NSPNGFileType properties:nil];
576 bcPath = @"data/BuildChip/img/bcb";
577 bcPath = [bcPath stringByAppendingFormat:@"%d", i + 1];
579 [f2Data writeToFile:bcPath atomically:YES];
581 RESEARCH *rTop = BC[i].R;
583 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].R->type]] stringByAppendingString:@","];
584 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].R->numb]]
585 stringByAppendingString:@","];
586 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].R->Lv]]
587 stringByAppendingString:@","];
588 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].R->UCLflag]]
589 stringByAppendingString:@"\n"];
590 BC[i].R = BC[i].R->next;
592 fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"----"]];
593 if(i != chipNumb - 1) fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"\n"]];
595 NSString *pathBCP = @"data/BuildChip/BCdata";
596 pathBCP = [pathBCP stringByAppendingFormat:@"%d.txt", i + 1];
597 [fileData writeToFile:pathBCP atomically:YES encoding:NSUTF8StringEncoding error:nil];
605 -(IBAction)registBCL:(id)sender{
606 [TFchipNumb setIntValue:(int)chipNumb];
607 [BCLregisterPanel makeKeyAndOrderFront:nil];
609 -(IBAction)registSaveBCL:(id)sender{
610 chipNumb = [TFchipNumb intValue];
611 if(chipNumb > 128) chipNumb = 128;
612 BuildChipMax = (int)chipNumb/25+1;
615 [self initBuildChipList];
616 [self initFileDirectory];
618 [BCLregisterPanel close];
620 -(IBAction)registCancelBCL:(id)sender{
621 [BCLregisterPanel close];
624 -(IBAction)researchListUnitInsert:(id)sender{
626 RLunitNumb = (int)[PUunit indexOfSelectedItem] - 1;
628 if(RLunitNumb < 0) return;
632 NSMutableDictionary *dict = [NSMutableDictionary new];
633 [dict setValue:[NSString stringWithFormat:@"新規研究"] forKey:@"name"];
635 Rtop = BC[clickIndex].R;
638 BC[clickIndex].R = Rtop;
639 if([researchListMA count] == 0){
640 BC[clickIndex].R = (RESEARCH*)malloc(sizeof(RESEARCH));
642 BC[clickIndex].R->type = 1;
643 BC[clickIndex].R->numb = R;
644 BC[clickIndex].R->Lv = 0;
645 BC[clickIndex].R->U = &UC[R];
646 BC[clickIndex].R->O = NULL;
647 BC[clickIndex].R->R = NULL;
648 BC[clickIndex].R->next = NULL;
651 while(BC[clickIndex].R->next) BC[clickIndex].R = BC[clickIndex].R->next;
652 BC[clickIndex].R->next = (RESEARCH*)malloc(sizeof(RESEARCH));
653 BC[clickIndex].R = BC[clickIndex].R->next;
655 BC[clickIndex].R->type = 1;
656 BC[clickIndex].R->numb = R;
657 BC[clickIndex].R->Lv = 0;
658 BC[clickIndex].R->U = &UC[R];
659 BC[clickIndex].R->O = NULL;
660 BC[clickIndex].R->R = NULL;
661 //UNITCHIP *uTest = (UNITCHIP*)BC[clickIndex].R->U;
662 BC[clickIndex].R->next = NULL;
663 BC[clickIndex].R = Rtop;
666 [dict setValue:[NSString stringWithFormat:@"%@", UC[R].name] forKey:@"name"];
667 [dict setValue:[NSString stringWithFormat:@"資%d 食%d 金%d", UC[R].S_M.cSupply, UC[R].S_M.cFood, UC[R].S_M.cMoney] forKey:@"cost"];
668 [dict setValue:[NSString stringWithFormat:@"%d", UC[R].S_M.cWT] forKey:@"WT"];
670 [self willChangeValueForKey:@"researchListMA"];
671 [researchListMA insertObject:dict atIndex:[researchListMA count]];
672 [self didChangeValueForKey:@"researchListMA"];
673 [researchListAC setSelectionIndex:999];
676 BC[clickIndex].R = Rtop;
677 if([researchListMA count] == 0){
678 BC[clickIndex].R = (RESEARCH*)malloc(sizeof(RESEARCH));
680 BC[clickIndex].R->type = 1;
681 BC[clickIndex].R->numb = R;
682 BC[clickIndex].R->Lv = 0;
683 BC[clickIndex].R->U = &UC[R];
684 BC[clickIndex].R->O = NULL;
685 BC[clickIndex].R->R = NULL;
686 BC[clickIndex].R->next = NULL;
687 Rtop = BC[clickIndex].R;
689 for (int i = 0; i < RLrow-1;i++)
690 BC[clickIndex].R = BC[clickIndex].R->next;
691 RESEARCH *tmp = (RESEARCH*)malloc(sizeof(RESEARCH));
692 *tmp = *BC[clickIndex].R->next;
693 BC[clickIndex].R->next = (RESEARCH*)malloc(sizeof(RESEARCH));
694 BC[clickIndex].R->next->next = tmp;
695 BC[clickIndex].R = BC[clickIndex].R->next;
697 BC[clickIndex].R->type = 1;
698 BC[clickIndex].R->numb = R;
699 BC[clickIndex].R->Lv = 0;
700 BC[clickIndex].R->U = &UC[R];
701 BC[clickIndex].R->O = NULL;
702 BC[clickIndex].R->R = NULL;
703 BC[clickIndex].R = Rtop;
705 RESEARCH *tmp = (RESEARCH*)malloc(sizeof(RESEARCH));
706 tmp->next = BC[clickIndex].R;
707 // INIT 処理[self InitAttack:tmp];
715 BC[clickIndex].R = Rtop;
718 [dict setValue:[NSString stringWithFormat:@"%@", UC[R].name] forKey:@"name"];
719 [dict setValue:[NSString stringWithFormat:@"資%d 食%d 金%d", UC[R].S_M.cSupply, UC[R].S_M.cFood, UC[R].S_M.cMoney] forKey:@"cost"];
720 [dict setValue:[NSString stringWithFormat:@"%d", UC[R].S_M.cWT] forKey:@"WT"];
722 [self willChangeValueForKey:@"researchListMA"];
723 [researchListMA insertObject:dict atIndex:RLrow];
724 [self didChangeValueForKey:@"researchListMA"];
725 [researchListAC setSelectionIndex:RLrow];
730 -(IBAction)researchListResearchInsert:(id)sender{
734 -(IBAction)researchListUnionInsert:(id)sender{
738 -(IBAction)researchListDelete:(id)sender{
740 Rtop = BC[clickIndex].R;
743 RLrow = (int)[researchListMA count] - 1;
746 if([researchListMA count] > 0){
749 BC[clickIndex].R = Rtop;
750 BC[clickIndex].R = BC[clickIndex].R->next;
751 Rtop = BC[clickIndex].R;
752 }else if(RLrow == [researchListMA count] - 1){
753 BC[clickIndex].R = Rtop;
754 while(BC[clickIndex].R->next->next){
755 BC[clickIndex].R = BC[clickIndex].R->next;
757 BC[clickIndex].R->next = NULL;
759 BC[clickIndex].R = Rtop;
760 for (int i = 0; i < RLrow - 1;i++)
761 BC[clickIndex].R = BC[clickIndex].R->next;
762 BC[clickIndex].R->next = BC[clickIndex].R->next->next;
765 [self willChangeValueForKey:@"researchListMA"];
766 [researchListMA removeObjectAtIndex:RLrow];
767 [self didChangeValueForKey:@"researchListMA"];
768 [researchListAC setSelectionIndex:RLrow-1];
769 if(RLrow < 0) [researchListAC setSelectionIndex:[researchListMA count]-1];
770 if(RLrow == 0) [researchListAC setSelectionIndex:0];
771 if(RLrow > 0) RLrow--;
773 BC[clickIndex].R = Rtop;
777 -(void)initResearchList{
779 [self willChangeValueForKey:@"researchListMA"];
780 [researchListMA removeAllObjects];
781 [self didChangeValueForKey:@"researchListMA"];
783 RESEARCH *rTop = BC[clickIndex].R;
784 while(BC[clickIndex].R){
785 NSMutableDictionary* dict = [NSMutableDictionary new];
787 UNITCHIP *uc = BC[clickIndex].R->U;
789 [dict setValue:[NSString stringWithFormat:@"%@", uc->name] forKey:@"name"];
790 [dict setValue:[NSString stringWithFormat:@"%d", uc->S_M.cWT] forKey:@"WT"];
791 [dict setValue:[NSString stringWithFormat:@"資%d 食%d 金%d", uc->S_M.cSupply, uc->S_M.cFood, uc->S_M.cMoney] forKey:@"cost"];
792 [self willChangeValueForKey:@"researchListMA"];
793 [researchListMA addObject:dict];
794 [self didChangeValueForKey:@"researchListMA"];
796 BC[clickIndex].R = BC[clickIndex].R->next;
797 }BC[clickIndex].R = rTop;