OSDN Git Service

攻撃追加でクラッシュするのを改善
[awarsiii/AwarsIV.git] / Awars III / UnitChipList.m
1 //
2 //  UnitChipList.m
3 //  Awars III
4 //
5 //  Created by Killery on 2012/12/17.
6 //  Copyright (c) 2012年 Killery. All rights reserved.
7 //
8
9 #import "UnitChipList.h"
10
11 @implementation UnitChipList
12 - (void)dealloc
13 {
14     [super dealloc];
15 }
16
17 - (NSMutableArray*)unitChipListMA{
18     return unitChipListMA;
19 }
20 -(IBAction)submit:(id)sender{
21     [UCLPanel close];
22 }
23
24 -(void)awakeFromNib{
25     [unitChipListTV setTarget:self];
26     [unitChipListTV setDoubleAction:@selector(doubleClickUCL:)];
27     
28     [attackListTV setTarget:self];
29     [attackListTV setDoubleAction:@selector(doubleClickAL:)];
30     
31     [equipListTV setTarget:self];
32     [equipListTV setDoubleAction:@selector(doubleClickEQ:)];
33     
34     [attackListTV setTarget:self];
35     [attackListTV setAction:@selector(ClickAL:)];
36     
37     [skillListTV setTarget:self];
38     [skillListTV setAction:@selector(ClickSL:)];
39     [skillListTV setDoubleAction:@selector(doubleClickSL:)];
40     
41     [skillListBuildTV setTarget:self];
42     [skillListBuildTV setAction:@selector(ClickSLB:)];
43     
44     [skillListUnitTV setTarget:self];
45     [skillListUnitTV setAction:@selector(ClickSLU:)];
46     
47     [animationListTV setTarget:self];
48     [animationListTV setAction:@selector(ClickANL:)];
49     
50     [commandListTV setTarget:self];
51     [commandListTV setAction:@selector(ClickCMD:)];
52     
53     [comboListTV setTarget:self];
54     [comboListTV setAction:@selector(ClickCMB:)];
55     
56     [self addPUBEquipList];
57     equipItemMA = [NSMutableArray new];
58     attackListMA = [NSMutableArray new];
59     damageListMA = [NSMutableArray new];
60     hitListMA = [NSMutableArray new];
61     commandListMA = [NSMutableArray new];
62     comboListMA = [NSMutableArray new];
63     skillListMA = [NSMutableArray new];
64     skillListBuildMA = [NSMutableArray new];
65     skillListUnitMA = [NSMutableArray new];
66     animationListMA = [NSMutableArray new];
67     
68 }
69 -(id)init{
70     [super init];
71     
72     if (self) {
73         UCLtime  = [NSTimer
74                     scheduledTimerWithTimeInterval:1.0/30
75                     target:self
76                     selector:@selector(EventLoopUCL:)
77                     userInfo:nil
78                     repeats:YES
79                     ];
80         
81         /*
82         aniTimer  = [NSTimer
83                     scheduledTimerWithTimeInterval:1.0/30
84                     target:self
85                     selector:@selector(EventLoopANI:)
86                     userInfo:nil
87                     repeats:YES
88                     ];*/
89         UnitChipListInst = self;
90         
91         [self initFileDirectoryItem];
92         [self initItemList];
93         [self initFileDirectoryAttackEQ];
94         [self initFileDirectory];
95         [self initUnitChipList];
96         [self initFileDirectoryAttack];
97         [self initFileDirectoryCombo];
98         [self initTotalDamage];
99         [self initOMG];
100         [self initSkill];
101         UnitChipMax = (int)chipNumb/25+1;
102         
103         
104     }
105     
106     return self;
107 }
108
109 -(void)ClickCMB:(id)sender{
110     CMBrow = (int)[comboListTV clickedRow];
111 }
112
113 -(void)ClickCMD:(id)sender{
114     CMDrow = (int)[commandListTV clickedRow];
115 }
116
117 -(void)ClickSL:(id)sender{
118     SKLrow = (int)[skillListTV clickedRow];
119 }
120
121 -(void)ClickANL:(id)sender{
122     ANLrow = (int)[animationListTV clickedRow];
123 }
124
125 -(void)doubleClickSL:(id)sender{
126     
127     if(!UC[clickIndex].S || SKLrow < 0) return;
128     
129     Stop = UC[clickIndex].S;
130     for (int i = 0;i < SKLrow;i++) {
131         UC[clickIndex].S = UC[clickIndex].S->next;
132     }
133     
134     if(UC[clickIndex].S->type == 1){
135         windowPoint.x = [UCLPanelSkill frame].origin.x + 50;
136         windowPoint.y = [UCLPanelSkill frame].origin.y;
137         [SLBpanel setFrameOrigin:windowPoint];
138         
139         
140         [self initskillListBuild];
141         
142         [SLBpanel makeKeyAndOrderFront:nil];
143     }
144     
145     if(UC[clickIndex].S->type == 2){
146         windowPoint.x = [UCLPanelSkill frame].origin.x + 50;
147         windowPoint.y = [UCLPanelSkill frame].origin.y;
148         [SLUpanel setFrameOrigin:windowPoint];
149         
150         
151         [self initskillListUnit];
152         
153         [SLUpanel makeKeyAndOrderFront:nil];
154     }
155     
156     UC[clickIndex].S = Stop;
157 }
158
159 -(void)ClickSLB:(id)sender{
160     SKLBrow = (int)[skillListBuildTV clickedRow];
161 }
162
163 -(void)ClickSLU:(id)sender{
164     SKLUrow = (int)[skillListUnitTV clickedRow];
165 }
166
167 -(void)initSkill{
168
169     SKILLLIST skill[] = {
170         {NULL, @"建設", @"skl1", @"フィールドに建物を建設する", 1, 0, 0},
171         {NULL, @"召還", @"skl2", @"フィールドにユニットを召還する", 2, 0, 0},
172         {NULL, @"必殺", @"skl3", @"一定の確率で与えるダメージが2倍になる", 2, 0, 0},
173     };
174     
175     const int skillNum = 3;
176     
177     
178     SKL = calloc(1, sizeof(SKILL));
179     SKLtop = SKL;
180     
181     for(int i=0;i<skillNum;i++){
182         *SKL = skill[i];
183         if(i+1 < skillNum) {
184             SKL->next = calloc(1, sizeof(SKILL));
185             *SKL->next = skill[i+1];
186         }
187         if(i == 0) SKLtop = SKL;
188         if(i+1 < skillNum) SKL = SKL->next;
189     }SKL->next = NULL;
190     SKL = SKLtop;
191     
192     [PUBsl removeAllItems];
193     [PUBsl addItemWithTitle:[NSString stringWithFormat:@"スキルリスト"]];
194     
195     SKL = SKLtop;
196     while(SKL){
197         [PUBsl addItemWithTitle:[NSString stringWithFormat:@"%@",SKL->name]];
198         SKL = SKL->next;
199     }SKL = SKLtop;
200 }
201
202
203
204
205 -(void)initOMG{
206     double STRfix;
207     double VITfix;
208     double AGIfix;
209     double DEXfix;
210     double MENfix;
211     double INTfix;
212     double LUKfix;
213     
214     double S, V, A, D, M, I;
215     
216     for(int i = 0;i < chipNumb;i++){
217         STRfix = (
218                   UC[i].eHandL.STR +
219                   UC[i].eHandR.STR +
220                   UC[i].eHead.STR +
221                   UC[i].eBody.STR +
222                   UC[i].eFoot.STR +
223                   UC[i].eArm.STR) +
224         UC[i].S_M.STR *(
225                     UC[i].eHandL.pSTR +
226                     UC[i].eHandR.pSTR +
227                     UC[i].eHead.pSTR +
228                     UC[i].eBody.pSTR +
229                     UC[i].eFoot.pSTR +
230                     UC[i].eArm.pSTR +
231                     0)/100
232         ;
233         
234         VITfix = (
235                   UC[i].eHandL.VIT +
236                   UC[i].eHandR.VIT +
237                   UC[i].eHead.VIT +
238                   UC[i].eBody.VIT +
239                   UC[i].eFoot.VIT +
240                   UC[i].eArm.VIT) +
241         UC[i].S_M.VIT *(
242                              UC[i].eHandL.pVIT +
243                              UC[i].eHandR.pVIT +
244                              UC[i].eHead.pVIT +
245                              UC[i].eBody.pVIT +
246                              UC[i].eFoot.pVIT +
247                              UC[i].eArm.pVIT +
248                              0)/100
249         ;
250         AGIfix = (
251                   UC[i].eHandL.AGI +
252                   UC[i].eHandR.AGI +
253                   UC[i].eHead.AGI +
254                   UC[i].eBody.AGI +
255                   UC[i].eFoot.AGI +
256                   UC[i].eArm.AGI) +
257         UC[i].S_M.AGI *(
258                              UC[i].eHandL.pAGI +
259                              UC[i].eHandR.pAGI +
260                              UC[i].eHead.pAGI +
261                              UC[i].eBody.pAGI +
262                              UC[i].eFoot.pAGI +
263                              UC[i].eArm.pAGI +
264                              0)/100
265         ;
266         DEXfix = (
267                   UC[i].eHandL.DEX +
268                   UC[i].eHandR.DEX +
269                   UC[i].eHead.DEX +
270                   UC[i].eBody.DEX +
271                   UC[i].eFoot.DEX +
272                   UC[i].eArm.DEX) +
273         UC[i].S_M.DEX *(
274                              UC[i].eHandL.pDEX +
275                              UC[i].eHandR.pDEX +
276                              UC[i].eHead.pDEX +
277                              UC[i].eBody.pDEX +
278                              UC[i].eFoot.pDEX +
279                              UC[i].eArm.pDEX +
280                              0)/100
281         ;
282         MENfix = (
283                   UC[i].eHandL.MEN +
284                   UC[i].eHandR.MEN +
285                   UC[i].eHead.MEN +
286                   UC[i].eBody.MEN +
287                   UC[i].eFoot.MEN +
288                   UC[i].eArm.MEN) +
289         UC[i].S_M.MEN *(
290                              UC[i].eHandL.pMEN +
291                              UC[i].eHandR.pMEN +
292                              UC[i].eHead.pMEN +
293                              UC[i].eBody.pMEN +
294                              UC[i].eFoot.pMEN +
295                              UC[i].eArm.pMEN +
296                              0)/100
297         ;
298         INTfix = (
299                   UC[i].eHandL.INT +
300                   UC[i].eHandR.INT +
301                   UC[i].eHead.INT +
302                   UC[i].eBody.INT +
303                   UC[i].eFoot.INT +
304                   UC[i].eArm.INT) +
305         UC[i].S_M.INT *(
306                              UC[i].eHandL.pINT +
307                              UC[i].eHandR.pINT +
308                              UC[i].eHead.pINT +
309                              UC[i].eBody.pINT +
310                              UC[i].eFoot.pINT +
311                              UC[i].eArm.pINT +
312                              0)/100
313         ;
314         LUKfix = (
315                   UC[i].eHandL.LUK +
316                   UC[i].eHandR.LUK +
317                   UC[i].eHead.LUK +
318                   UC[i].eBody.LUK +
319                   UC[i].eFoot.LUK +
320                   UC[i].eArm.LUK) +
321         UC[i].S_M.LUK *(
322                              UC[i].eHandL.pLUK +
323                              UC[i].eHandR.pLUK +
324                              UC[i].eHead.pLUK +
325                              UC[i].eBody.pLUK +
326                              UC[i].eFoot.pLUK +
327                              UC[i].eArm.pLUK +
328                              0)/100
329         ;
330         
331         S = UC[i].S_M.STR + STRfix;
332         V = UC[i].S_M.VIT + VITfix;
333         A = UC[i].S_M.AGI + AGIfix;
334         D = UC[i].S_M.DEX + DEXfix;
335         M = UC[i].S_M.MEN + MENfix;
336         I = UC[i].S_M.INT + INTfix;
337         
338         UC[i].S_M.ATK = (S*5 + D*2 + A)/8;
339         UC[i].S_M.DEF = (V*5 + M*2 + S)/8;
340         UC[i].S_M.CAP = (I*4 + D*1 + M*2)/7;
341         UC[i].S_M.ACU = (D*4 + A*1 + M)/6;
342         UC[i].S_M.EVA = (A*4 + V*1 + M)/6;
343         
344         UC[i].S_M.ATK += 0.5;
345         UC[i].S_M.DEF += 0.5;
346         UC[i].S_M.CAP += 0.5;
347         UC[i].S_M.ACU += 0.5;
348         UC[i].S_M.EVA += 0.5;
349         
350         UC[i].S_M.ATK = floor(UC[i].S_M.ATK);
351         UC[i].S_M.DEF = floor(UC[i].S_M.DEF);
352         UC[i].S_M.CAP = floor(UC[i].S_M.CAP);
353         UC[i].S_M.ACU = floor(UC[i].S_M.ACU);
354         UC[i].S_M.EVA = floor(UC[i].S_M.EVA);
355         
356         int blowFix = (
357                   UC[i].eHandL.R.blow +
358                   UC[i].eHandR.R.blow +
359                   UC[i].eHead.R.blow +
360                   UC[i].eBody.R.blow +
361                   UC[i].eFoot.R.blow +
362                   UC[i].eArm.R.blow);
363         int slashFix = (
364                        UC[i].eHandL.R.slash +
365                        UC[i].eHandR.R.slash +
366                        UC[i].eHead.R.slash +
367                        UC[i].eBody.R.slash +
368                        UC[i].eFoot.R.slash +
369                        UC[i].eArm.R.slash);
370         int stubFix = (
371                       UC[i].eHandL.R.stub +
372                       UC[i].eHandR.R.stub +
373                       UC[i].eHead.R.stub +
374                       UC[i].eBody.R.stub +
375                       UC[i].eFoot.R.stub +
376                       UC[i].eArm.R.stub);
377         int arrowFix = (
378                         UC[i].eHandL.R.arrow +
379                         UC[i].eHandR.R.arrow +
380                         UC[i].eHead.R.arrow +
381                         UC[i].eBody.R.arrow +
382                         UC[i].eFoot.R.arrow +
383                         UC[i].eArm.R.arrow);
384         int gunFix = (
385                       UC[i].eHandL.R.gun +
386                       UC[i].eHandR.R.gun +
387                       UC[i].eHead.R.gun +
388                       UC[i].eBody.R.gun +
389                       UC[i].eFoot.R.gun +
390                       UC[i].eArm.R.gun);
391         int shellFix = (
392                         UC[i].eHandL.R.shell +
393                         UC[i].eHandR.R.shell +
394                         UC[i].eHead.R.shell +
395                         UC[i].eBody.R.shell +
396                         UC[i].eFoot.R.shell +
397                         UC[i].eArm.R.shell);
398         
399         int flameFix = (
400                         UC[i].eHandL.R.flame +
401                         UC[i].eHandR.R.flame +
402                         UC[i].eHead.R.flame +
403                         UC[i].eBody.R.flame +
404                         UC[i].eFoot.R.flame +
405                         UC[i].eArm.R.flame);
406         int coldFix = (
407                        UC[i].eHandL.R.cold +
408                        UC[i].eHandR.R.cold +
409                        UC[i].eHead.R.cold +
410                        UC[i].eBody.R.cold +
411                        UC[i].eFoot.R.cold +
412                        UC[i].eArm.R.cold);
413         int electoricFix = (
414                             UC[i].eHandL.R.electoric +
415                             UC[i].eHandR.R.electoric +
416                             UC[i].eHead.R.electoric +
417                             UC[i].eBody.R.electoric +
418                             UC[i].eFoot.R.electoric +
419                             UC[i].eArm.R.electoric);
420         int airFix = (
421                       UC[i].eHandL.R.air +
422                       UC[i].eHandR.R.air +
423                       UC[i].eHead.R.air +
424                       UC[i].eBody.R.air +
425                       UC[i].eFoot.R.air +
426                       UC[i].eArm.R.air);
427         int waterFix = (
428                         UC[i].eHandL.R.water +
429                         UC[i].eHandR.R.water +
430                         UC[i].eHead.R.water +
431                         UC[i].eBody.R.water +
432                         UC[i].eFoot.R.water +
433                         UC[i].eArm.R.water);
434         int gasFix = (
435                       UC[i].eHandL.R.gas +
436                       UC[i].eHandR.R.gas +
437                       UC[i].eHead.R.gas +
438                       UC[i].eBody.R.gas +
439                       UC[i].eFoot.R.gas +
440                       UC[i].eArm.R.gas);
441         int holyFix = (
442                        UC[i].eHandL.R.holy +
443                        UC[i].eHandR.R.holy +
444                        UC[i].eHead.R.holy +
445                        UC[i].eBody.R.holy +
446                        UC[i].eFoot.R.holy +
447                        UC[i].eArm.R.holy);
448         int darkFix = (
449                        UC[i].eHandL.R.dark +
450                        UC[i].eHandR.R.dark +
451                        UC[i].eHead.R.dark +
452                        UC[i].eBody.R.dark +
453                        UC[i].eFoot.R.dark +
454                        UC[i].eArm.R.dark);
455         int explosionFix = (
456                             UC[i].eHandL.R.explosion +
457                             UC[i].eHandR.R.explosion +
458                             UC[i].eHead.R.explosion +
459                             UC[i].eBody.R.explosion +
460                             UC[i].eFoot.R.explosion +
461                             UC[i].eArm.R.explosion);
462         int bloodFix = (
463                         UC[i].eHandL.R.blood +
464                         UC[i].eHandR.R.blood +
465                         UC[i].eHead.R.blood +
466                         UC[i].eBody.R.blood +
467                         UC[i].eFoot.R.blood +
468                         UC[i].eArm.R.blood);
469         
470         int paralysisFix = (
471                             UC[i].eHandL.R.paralysis +
472                             UC[i].eHandR.R.paralysis +
473                             UC[i].eHead.R.paralysis +
474                             UC[i].eBody.R.paralysis +
475                             UC[i].eFoot.R.paralysis +
476                             UC[i].eArm.R.paralysis);
477         int confusionFix = (
478                             UC[i].eHandL.R.confusion +
479                             UC[i].eHandR.R.confusion +
480                             UC[i].eHead.R.confusion +
481                             UC[i].eBody.R.confusion +
482                             UC[i].eFoot.R.confusion +
483                             UC[i].eArm.R.confusion);
484         int poisonFix = (
485                          UC[i].eHandL.R.poison +
486                          UC[i].eHandR.R.poison +
487                          UC[i].eHead.R.poison +
488                          UC[i].eBody.R.poison +
489                          UC[i].eFoot.R.poison +
490                          UC[i].eArm.R.poison);
491         int sleepFix = (
492                         UC[i].eHandL.R.sleep +
493                         UC[i].eHandR.R.sleep +
494                         UC[i].eHead.R.sleep +
495                         UC[i].eBody.R.sleep +
496                         UC[i].eFoot.R.sleep +
497                         UC[i].eArm.R.sleep);
498         int charmFix = (
499                         UC[i].eHandL.R.charm +
500                         UC[i].eHandR.R.charm +
501                         UC[i].eHead.R.charm +
502                         UC[i].eBody.R.charm +
503                         UC[i].eFoot.R.charm +
504                         UC[i].eArm.R.charm);
505         int silentFix = (
506                          UC[i].eHandL.R.silent +
507                          UC[i].eHandR.R.silent +
508                          UC[i].eHead.R.silent +
509                          UC[i].eBody.R.silent +
510                          UC[i].eFoot.R.silent +
511                          UC[i].eArm.R.silent);
512         UC[i].R_F.blow -= blowFix;
513         UC[i].R_F.slash -= slashFix;
514         UC[i].R_F.stub -= stubFix;
515         UC[i].R_F.arrow -= arrowFix;
516         UC[i].R_F.gun -= gunFix;
517         UC[i].R_F.shell -= shellFix;
518         UC[i].R_F.flame -= flameFix;
519         UC[i].R_F.cold -= coldFix;
520         UC[i].R_F.electoric -= electoricFix;
521         UC[i].R_F.air -= airFix;
522         UC[i].R_F.water -= waterFix;
523         UC[i].R_F.gas -= gasFix;
524         UC[i].R_F.holy -= holyFix;
525         UC[i].R_F.dark -= darkFix;
526         UC[i].R_F.explosion -= explosionFix;
527         UC[i].R_F.blood -= bloodFix;
528         UC[i].R_F.paralysis -= paralysisFix;
529         UC[i].R_F.confusion -= confusionFix;
530         UC[i].R_F.poison -= poisonFix;
531         UC[i].R_F.sleep -= sleepFix;
532         UC[i].R_F.charm -= charmFix;
533         UC[i].R_F.silent -= silentFix;
534      
535         
536     }
537
538 }
539
540 NSInteger clickIndex = -1;
541 NSInteger clickIndexAL = -1;
542 NSInteger clickIndexEQ = -1;
543 bool InitialFlag;
544
545 -(void)EventLoopUCL:(NSTimer*)time{
546     
547     
548     double STRfix;
549     double VITfix;
550     double AGIfix;
551     double DEXfix;
552     double MENfix;
553     double INTfix;
554     double LUKfix;
555     
556     double S, V, A, D, M, I;
557     
558     
559     STRfix = (
560     UC[clickIndex].eHandL.STR +
561     UC[clickIndex].eHandR.STR +
562     UC[clickIndex].eHead.STR +
563     UC[clickIndex].eBody.STR +
564     UC[clickIndex].eFoot.STR +
565     UC[clickIndex].eArm.STR) +
566     UC[clickIndex].S_M.STR *(
567     UC[clickIndex].eHandL.pSTR +
568     UC[clickIndex].eHandR.pSTR +
569     UC[clickIndex].eHead.pSTR +
570     UC[clickIndex].eBody.pSTR +
571     UC[clickIndex].eFoot.pSTR +
572     UC[clickIndex].eArm.pSTR +
573     0)/100
574     ;
575     
576     VITfix = (
577               UC[clickIndex].eHandL.VIT +
578               UC[clickIndex].eHandR.VIT +
579               UC[clickIndex].eHead.VIT +
580               UC[clickIndex].eBody.VIT +
581               UC[clickIndex].eFoot.VIT +
582               UC[clickIndex].eArm.VIT) +
583     UC[clickIndex].S_M.VIT *(
584                          UC[clickIndex].eHandL.pVIT +
585                          UC[clickIndex].eHandR.pVIT +
586                          UC[clickIndex].eHead.pVIT +
587                          UC[clickIndex].eBody.pVIT +
588                          UC[clickIndex].eFoot.pVIT +
589                          UC[clickIndex].eArm.pVIT +
590                          0)/100
591     ;
592     AGIfix = (
593               UC[clickIndex].eHandL.AGI +
594               UC[clickIndex].eHandR.AGI +
595               UC[clickIndex].eHead.AGI +
596               UC[clickIndex].eBody.AGI +
597               UC[clickIndex].eFoot.AGI +
598               UC[clickIndex].eArm.AGI) +
599     UC[clickIndex].S_M.AGI *(
600                          UC[clickIndex].eHandL.pAGI +
601                          UC[clickIndex].eHandR.pAGI +
602                          UC[clickIndex].eHead.pAGI +
603                          UC[clickIndex].eBody.pAGI +
604                          UC[clickIndex].eFoot.pAGI +
605                          UC[clickIndex].eArm.pAGI +
606                          0)/100
607     ;
608     DEXfix = (
609               UC[clickIndex].eHandL.DEX +
610               UC[clickIndex].eHandR.DEX +
611               UC[clickIndex].eHead.DEX +
612               UC[clickIndex].eBody.DEX +
613               UC[clickIndex].eFoot.DEX +
614               UC[clickIndex].eArm.DEX) +
615     UC[clickIndex].S_M.DEX *(
616                          UC[clickIndex].eHandL.pDEX +
617                          UC[clickIndex].eHandR.pDEX +
618                          UC[clickIndex].eHead.pDEX +
619                          UC[clickIndex].eBody.pDEX +
620                          UC[clickIndex].eFoot.pDEX +
621                          UC[clickIndex].eArm.pDEX +
622                          0)/100
623     ;
624     MENfix = (
625               UC[clickIndex].eHandL.MEN +
626               UC[clickIndex].eHandR.MEN +
627               UC[clickIndex].eHead.MEN +
628               UC[clickIndex].eBody.MEN +
629               UC[clickIndex].eFoot.MEN +
630               UC[clickIndex].eArm.MEN) +
631     UC[clickIndex].S_M.MEN *(
632                          UC[clickIndex].eHandL.pMEN +
633                          UC[clickIndex].eHandR.pMEN +
634                          UC[clickIndex].eHead.pMEN +
635                          UC[clickIndex].eBody.pMEN +
636                          UC[clickIndex].eFoot.pMEN +
637                          UC[clickIndex].eArm.pMEN +
638                          0)/100
639     ;
640     INTfix = (
641               UC[clickIndex].eHandL.INT +
642               UC[clickIndex].eHandR.INT +
643               UC[clickIndex].eHead.INT +
644               UC[clickIndex].eBody.INT +
645               UC[clickIndex].eFoot.INT +
646               UC[clickIndex].eArm.INT) +
647     UC[clickIndex].S_M.INT *(
648                          UC[clickIndex].eHandL.pINT +
649                          UC[clickIndex].eHandR.pINT +
650                          UC[clickIndex].eHead.pINT +
651                          UC[clickIndex].eBody.pINT +
652                          UC[clickIndex].eFoot.pINT +
653                          UC[clickIndex].eArm.pINT +
654                          0)/100
655     ;
656     LUKfix = (
657               UC[clickIndex].eHandL.LUK +
658               UC[clickIndex].eHandR.LUK +
659               UC[clickIndex].eHead.LUK +
660               UC[clickIndex].eBody.LUK +
661               UC[clickIndex].eFoot.LUK +
662               UC[clickIndex].eArm.LUK) +
663     UC[clickIndex].S_M.LUK *(
664                          UC[clickIndex].eHandL.pLUK +
665                          UC[clickIndex].eHandR.pLUK +
666                          UC[clickIndex].eHead.pLUK +
667                          UC[clickIndex].eBody.pLUK +
668                          UC[clickIndex].eFoot.pLUK +
669                          UC[clickIndex].eArm.pLUK +
670                          0)/100
671     ;
672     
673     S = [TFstr intValue] + STRfix;
674     V = [TFvit intValue] + VITfix;
675     A = [TFagi intValue] + AGIfix;
676     D = [TFdex intValue] + DEXfix;
677     M = [TFmen intValue] + MENfix;
678     I = [TFint intValue] + INTfix;
679     
680     UC[clickIndex].S_M.ATK = (S*5 + D*2 + A)/8;
681     UC[clickIndex].S_M.DEF = (V*5 + M*2 + S)/8;
682     UC[clickIndex].S_M.CAP = (I*4 + D*1 + M*2)/7;
683     UC[clickIndex].S_M.ACU = (D*4 + A*1 + M)/6;
684     UC[clickIndex].S_M.EVA = (A*4 + A*1 + M)/6;
685         
686         UC[clickIndex].S_M.ATK += 0.5;
687         UC[clickIndex].S_M.DEF += 0.5;
688         UC[clickIndex].S_M.CAP += 0.5;
689         UC[clickIndex].S_M.ACU += 0.5;
690         UC[clickIndex].S_M.EVA += 0.5;
691         
692         UC[clickIndex].S_M.ATK = floor(UC[clickIndex].S_M.ATK);
693         UC[clickIndex].S_M.DEF = floor(UC[clickIndex].S_M.DEF);
694         UC[clickIndex].S_M.CAP = floor(UC[clickIndex].S_M.CAP);
695         UC[clickIndex].S_M.ACU = floor(UC[clickIndex].S_M.ACU);
696         UC[clickIndex].S_M.EVA = floor(UC[clickIndex].S_M.EVA);
697     
698     
699     [TFbp setStringValue:[NSString stringWithFormat:@"BP %g", (floor)(UC[clickIndex].S_M.BP)]];
700     [TFatk setStringValue:[NSString stringWithFormat:@"攻撃力 %g", (floor)(UC[clickIndex].S_M.ATK)]];
701     [TFdef setStringValue:[NSString stringWithFormat:@"防御力 %g", (floor)(UC[clickIndex].S_M.DEF)]];
702     [TFcap setStringValue:[NSString stringWithFormat:@"演算力 %g", (floor)(UC[clickIndex].S_M.CAP)]];
703     [TFacu setStringValue:[NSString stringWithFormat:@"命中値 %g", (floor)(UC[clickIndex].S_M.ACU)]];
704     [TFeva setStringValue:[NSString stringWithFormat:@"回避値 %g", (floor)(UC[clickIndex].S_M.EVA)]];
705     
706     int blowFix = (
707                    UC[clickIndex].eHandL.R.blow +
708                    UC[clickIndex].eHandR.R.blow +
709                    UC[clickIndex].eHead.R.blow +
710                    UC[clickIndex].eBody.R.blow +
711                    UC[clickIndex].eFoot.R.blow +
712                    UC[clickIndex].eArm.R.blow);
713     int slashFix = (
714                     UC[clickIndex].eHandL.R.slash +
715                     UC[clickIndex].eHandR.R.slash +
716                     UC[clickIndex].eHead.R.slash +
717                     UC[clickIndex].eBody.R.slash +
718                     UC[clickIndex].eFoot.R.slash +
719                     UC[clickIndex].eArm.R.slash);
720     int stubFix = (
721                    UC[clickIndex].eHandL.R.stub +
722                    UC[clickIndex].eHandR.R.stub +
723                    UC[clickIndex].eHead.R.stub +
724                    UC[clickIndex].eBody.R.stub +
725                    UC[clickIndex].eFoot.R.stub +
726                    UC[clickIndex].eArm.R.stub);
727     int arrowFix = (
728                     UC[clickIndex].eHandL.R.arrow +
729                     UC[clickIndex].eHandR.R.arrow +
730                     UC[clickIndex].eHead.R.arrow +
731                     UC[clickIndex].eBody.R.arrow +
732                     UC[clickIndex].eFoot.R.arrow +
733                     UC[clickIndex].eArm.R.arrow);
734     int gunFix = (
735                   UC[clickIndex].eHandL.R.gun +
736                   UC[clickIndex].eHandR.R.gun +
737                   UC[clickIndex].eHead.R.gun +
738                   UC[clickIndex].eBody.R.gun +
739                   UC[clickIndex].eFoot.R.gun +
740                   UC[clickIndex].eArm.R.gun);
741     int shellFix = (
742                     UC[clickIndex].eHandL.R.shell +
743                     UC[clickIndex].eHandR.R.shell +
744                     UC[clickIndex].eHead.R.shell +
745                     UC[clickIndex].eBody.R.shell +
746                     UC[clickIndex].eFoot.R.shell +
747                     UC[clickIndex].eArm.R.shell);
748     
749     int flameFix = (
750                     UC[clickIndex].eHandL.R.flame +
751                     UC[clickIndex].eHandR.R.flame +
752                     UC[clickIndex].eHead.R.flame +
753                     UC[clickIndex].eBody.R.flame +
754                     UC[clickIndex].eFoot.R.flame +
755                     UC[clickIndex].eArm.R.flame);
756     int coldFix = (
757                    UC[clickIndex].eHandL.R.cold +
758                    UC[clickIndex].eHandR.R.cold +
759                    UC[clickIndex].eHead.R.cold +
760                    UC[clickIndex].eBody.R.cold +
761                    UC[clickIndex].eFoot.R.cold +
762                    UC[clickIndex].eArm.R.cold);
763     int electoricFix = (
764                         UC[clickIndex].eHandL.R.electoric +
765                         UC[clickIndex].eHandR.R.electoric +
766                         UC[clickIndex].eHead.R.electoric +
767                         UC[clickIndex].eBody.R.electoric +
768                         UC[clickIndex].eFoot.R.electoric +
769                         UC[clickIndex].eArm.R.electoric);
770     int airFix = (
771                   UC[clickIndex].eHandL.R.air +
772                   UC[clickIndex].eHandR.R.air +
773                   UC[clickIndex].eHead.R.air +
774                   UC[clickIndex].eBody.R.air +
775                   UC[clickIndex].eFoot.R.air +
776                   UC[clickIndex].eArm.R.air);
777     int waterFix = (
778                     UC[clickIndex].eHandL.R.water +
779                     UC[clickIndex].eHandR.R.water +
780                     UC[clickIndex].eHead.R.water +
781                     UC[clickIndex].eBody.R.water +
782                     UC[clickIndex].eFoot.R.water +
783                     UC[clickIndex].eArm.R.water);
784     int gasFix = (
785                   UC[clickIndex].eHandL.R.gas +
786                   UC[clickIndex].eHandR.R.gas +
787                   UC[clickIndex].eHead.R.gas +
788                   UC[clickIndex].eBody.R.gas +
789                   UC[clickIndex].eFoot.R.gas +
790                   UC[clickIndex].eArm.R.gas);
791     int holyFix = (
792                    UC[clickIndex].eHandL.R.holy +
793                    UC[clickIndex].eHandR.R.holy +
794                    UC[clickIndex].eHead.R.holy +
795                    UC[clickIndex].eBody.R.holy +
796                    UC[clickIndex].eFoot.R.holy +
797                    UC[clickIndex].eArm.R.holy);
798     int darkFix = (
799                    UC[clickIndex].eHandL.R.dark +
800                    UC[clickIndex].eHandR.R.dark +
801                    UC[clickIndex].eHead.R.dark +
802                    UC[clickIndex].eBody.R.dark +
803                    UC[clickIndex].eFoot.R.dark +
804                    UC[clickIndex].eArm.R.dark);
805     int explosionFix = (
806                         UC[clickIndex].eHandL.R.explosion +
807                         UC[clickIndex].eHandR.R.explosion +
808                         UC[clickIndex].eHead.R.explosion +
809                         UC[clickIndex].eBody.R.explosion +
810                         UC[clickIndex].eFoot.R.explosion +
811                         UC[clickIndex].eArm.R.explosion);
812     int bloodFix = (
813                     UC[clickIndex].eHandL.R.blood +
814                     UC[clickIndex].eHandR.R.blood +
815                     UC[clickIndex].eHead.R.blood +
816                     UC[clickIndex].eBody.R.blood +
817                     UC[clickIndex].eFoot.R.blood +
818                     UC[clickIndex].eArm.R.blood);
819     
820     int paralysisFix = (
821                         UC[clickIndex].eHandL.R.paralysis +
822                         UC[clickIndex].eHandR.R.paralysis +
823                         UC[clickIndex].eHead.R.paralysis +
824                         UC[clickIndex].eBody.R.paralysis +
825                         UC[clickIndex].eFoot.R.paralysis +
826                         UC[clickIndex].eArm.R.paralysis);
827     int confusionFix = (
828                         UC[clickIndex].eHandL.R.confusion +
829                         UC[clickIndex].eHandR.R.confusion +
830                         UC[clickIndex].eHead.R.confusion +
831                         UC[clickIndex].eBody.R.confusion +
832                         UC[clickIndex].eFoot.R.confusion +
833                         UC[clickIndex].eArm.R.confusion);
834     int poisonFix = (
835                      UC[clickIndex].eHandL.R.poison +
836                      UC[clickIndex].eHandR.R.poison +
837                      UC[clickIndex].eHead.R.poison +
838                      UC[clickIndex].eBody.R.poison +
839                      UC[clickIndex].eFoot.R.poison +
840                      UC[clickIndex].eArm.R.poison);
841     int sleepFix = (
842                     UC[clickIndex].eHandL.R.sleep +
843                     UC[clickIndex].eHandR.R.sleep +
844                     UC[clickIndex].eHead.R.sleep +
845                     UC[clickIndex].eBody.R.sleep +
846                     UC[clickIndex].eFoot.R.sleep +
847                     UC[clickIndex].eArm.R.sleep);
848     int charmFix = (
849                     UC[clickIndex].eHandL.R.charm +
850                     UC[clickIndex].eHandR.R.charm +
851                     UC[clickIndex].eHead.R.charm +
852                     UC[clickIndex].eBody.R.charm +
853                     UC[clickIndex].eFoot.R.charm +
854                     UC[clickIndex].eArm.R.charm);
855     int silentFix = (
856                      UC[clickIndex].eHandL.R.silent +
857                      UC[clickIndex].eHandR.R.silent +
858                      UC[clickIndex].eHead.R.silent +
859                      UC[clickIndex].eBody.R.silent +
860                      UC[clickIndex].eFoot.R.silent +
861                      UC[clickIndex].eArm.R.silent);
862     UC[clickIndex].R_F.blow -= blowFix;
863     UC[clickIndex].R_F.slash -= slashFix;
864     UC[clickIndex].R_F.stub -= stubFix;
865     UC[clickIndex].R_F.arrow -= arrowFix;
866     UC[clickIndex].R_F.gun -= gunFix;
867     UC[clickIndex].R_F.shell -= shellFix;
868     UC[clickIndex].R_F.flame -= flameFix;
869     UC[clickIndex].R_F.cold -= coldFix;
870     UC[clickIndex].R_F.electoric -= electoricFix;
871     UC[clickIndex].R_F.air -= airFix;
872     UC[clickIndex].R_F.water -= waterFix;
873     UC[clickIndex].R_F.gas -= gasFix;
874     UC[clickIndex].R_F.holy -= holyFix;
875     UC[clickIndex].R_F.dark -= darkFix;
876     UC[clickIndex].R_F.explosion -= explosionFix;
877     UC[clickIndex].R_F.blood -= bloodFix;
878     UC[clickIndex].R_F.paralysis -= paralysisFix;
879     UC[clickIndex].R_F.confusion -= confusionFix;
880     UC[clickIndex].R_F.poison -= poisonFix;
881     UC[clickIndex].R_F.sleep -= sleepFix;
882     UC[clickIndex].R_F.charm -= charmFix;
883     UC[clickIndex].R_F.silent -= silentFix;
884     
885     long sup;
886     if(SKLBrow == -1 || [skillListBuildMA count] == 0){}
887     else{
888         
889         Stop = UC[clickIndex].S;
890         for(int i = 0;i< SKLrow;i++){
891             UC[clickIndex].S = UC[clickIndex].S->next;
892         }
893         
894     sup = [[skillListBuildMA objectAtIndex:SKLBrow] valueForKeyPath:@"sel"];
895     sup = sup>>8 & 0xffff;
896     UC[clickIndex].S->list[SKLBrow] = (int)sup+1;
897     [skillListBuildAC setValue:[NSString stringWithFormat:@"資%d食%d金%d",
898     BC[sup].Csupply, BC[sup].Cfood, BC[sup].Cmoney] forKeyPath:@"selection.manko"];
899         
900         UC[clickIndex].S = Stop;
901     }
902     
903     long oops;
904     if(SKLUrow == -1 || [skillListUnitMA count] == 0){}
905     else{
906         
907         Stop = UC[clickIndex].S;
908         for(int i = 0;i< SKLrow;i++){
909             UC[clickIndex].S = UC[clickIndex].S->next;
910         }
911         
912     oops = [[skillListUnitMA objectAtIndex:SKLUrow] valueForKeyPath:@"sel"];
913     oops = oops>>8 & 0xffff;
914     UC[clickIndex].S->list[SKLUrow] = (int)oops+1;
915     oops = [[[skillListUnitMA objectAtIndex:SKLUrow] valueForKeyPath:@"MP"] intValue];
916     //oops = oops>>8 & 0xffff;
917     UC[clickIndex].S->cost[SKLUrow] = (int)oops;
918         
919         UC[clickIndex].S = Stop;
920     }
921     
922     /*
923     if (AVpreview.rate > 0 && AVpreview.error == nil) {
924         NSLog(@"うごた!");
925     }else{
926         NSLog(@"とまた!");
927     }*/
928     
929     //NSLog(@"[%ld, %ld]", ATmovBC.state, ATaniBC.state);
930     
931     if([ATalphaBtn state] == YES) ATalphaFlag = true;
932         else ATalphaFlag = false;
933     
934     
935     frameMax = (int)[animationListMA count];
936     
937     
938     if(!EQmodeFlag) if(clickIndex <= -1) return;
939     if(EQmodeFlag) if(clickIndexEQ <= -1) return;
940     if(EQmodeFlag) if(cil <= -1) return;
941     
942     ATTACK *atk;
943     if(EQmodeFlag){
944         atk = EQ[clickIndexEQ].A;
945         
946     }else{
947         if(loadChipSideFlag)
948             atk = LC[cil].A;
949         else atk = UC[clickIndex].A;
950     }
951     atkTop = atk;
952     
953     
954     
955     
956     
957     if(clickIndexAL <= -1) return;
958     
959         for(int i = 0;i < clickIndexAL;i++){
960             atk = atk->next;
961         }
962     
963     if(!atk) {
964         atk = atkTop;
965         if(EQmodeFlag){
966             EQ[clickIndexEQ].A = atkTop;
967             
968         }else{
969             if(loadChipSideFlag)
970                 LC[cil].A = atkTop;
971            else UC[clickIndex].A = atkTop;
972         }
973         
974         
975         return;
976     }
977     
978     ani = atk->AN.ANI;
979     
980     ANI *aniTop = ani;
981     
982     if(!aniTop){
983         atk = atkTop;
984         if(EQmodeFlag){
985             EQ[clickIndexEQ].A = atkTop;
986             
987         }else{
988             if(loadChipSideFlag)
989                 LC[cil].A = atkTop;
990             else UC[clickIndex].A = atkTop;
991         }
992         
993         
994         return;
995     
996     }
997
998     for (int i = 0; i < frameMax; i++) {
999         
1000         ani->name = [[[animationListMA objectAtIndex:i] valueForKeyPath:@"name"] retain];
1001         ani->names = [[[animationListMA objectAtIndex:i] valueForKeyPath:@"snd"] retain];
1002         
1003         
1004         ani = ani->next;
1005     }
1006     
1007     
1008     ani = aniTop;
1009     atk->AN.ANI = aniTop;
1010     atk = atkTop;
1011     
1012     if(EQmodeFlag){
1013         EQ[clickIndexEQ].A = atkTop;
1014         
1015     }else{
1016         if(loadChipSideFlag)
1017             LC[cil].A = atkTop;
1018         else UC[clickIndex].A = atkTop;
1019     }
1020 }
1021
1022 -(void)setTotalDamage:(int)index row:(int)row{
1023     
1024     ATTACK *Atop;
1025     Atop = UC[index].A;
1026     if(!UC[index].A) return;
1027     for (int i=0; i < row;i++) {
1028         if(UC[index].A->next != NULL) UC[index].A = UC[index].A->next;
1029     }
1030     DAMAGE *Dtop;
1031     Dtop = UC[index].A->D;
1032     UC[index].A->totalD = 0;
1033     UC[index].A->bulletC = UC[index].A->bullet;
1034     while (UC[index].A->D != NULL) {
1035         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;
1036         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;
1037         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;
1038         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;
1039         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;
1040         UC[index].A->D = UC[index].A->D->next;
1041     }
1042     UC[index].A->totalD = floor(UC[index].A->totalD + 0.5);
1043     UC[index].A->D = Dtop;
1044     UC[index].A = Atop;
1045 }
1046
1047 -(void)setTotalDamage2:(int)index row:(int)row{
1048     
1049     ATTACK *Atop;
1050     Atop = LC[index].A;
1051     if(!LC[index].A) return;
1052     for (int i=0; i < row;i++) {
1053         if(LC[index].A->next != NULL) LC[index].A = LC[index].A->next;
1054     }
1055     DAMAGE *Dtop;
1056     Dtop = LC[index].A->D;
1057     LC[index].A->totalD = 0;
1058     LC[index].A->bulletC = LC[index].A->bullet;
1059     while (LC[index].A->D != NULL) {
1060         LC[index].A->totalD += LC[index].A->D->count;
1061         LC[index].A->D = LC[index].A->D->next;
1062     }
1063     LC[index].A->totalD = floor(LC[index].A->totalD + 0.5);
1064     LC[index].A->D = Dtop;
1065     LC[index].A = Atop;
1066 }
1067
1068
1069 -(void)setTotalDamageEQ:(int)index row:(int)row{
1070     
1071     ATTACK *Atop;
1072     Atop = EQ[index].A;
1073     if(!EQ[index].A) return;
1074     for (int i=0; i < row;i++) {
1075         if(EQ[index].A->next != NULL) EQ[index].A = EQ[index].A->next;
1076     }
1077     DAMAGE *Dtop;
1078     Dtop = EQ[index].A->D;
1079     EQ[index].A->totalD = 0;
1080     EQ[index].A->bulletC = EQ[index].A->bullet;
1081     while (EQ[index].A->D != NULL) {
1082         if(EQ[index].A->D->type == 0) EQ[index].A->totalD += EQ[index].A->D->count;
1083         if(EQ[index].A->D->type == 1) EQ[index].A->totalD += EQ[index].A->D->count;
1084         if(EQ[index].A->D->type == 2) EQ[index].A->totalD += EQ[index].A->D->count;
1085         if(EQ[index].A->D->type == 3) EQ[index].A->totalD += EQ[index].A->D->count;
1086         if(EQ[index].A->D->type == 4) EQ[index].A->totalD += EQ[index].A->D->count;
1087         EQ[index].A->D = EQ[index].A->D->next;
1088     }
1089     EQ[index].A->totalD = floor(EQ[index].A->totalD + 0.5);
1090     EQ[index].A->D = Dtop;
1091     EQ[index].A = Atop;
1092 }
1093
1094
1095 -(void)addPUBEquipList{
1096     
1097     [PUPtEquip removeAllItems];
1098     
1099     [PUPtEquip addItemWithTitle:@"装備リスト"];
1100     for (int i = 0; i < eItemNum; i++) {
1101         [PUPtEquip addItemWithTitle:EQ[i].nameRecognition];
1102     }
1103 }
1104
1105
1106 -(void)initSkillList{
1107     [self willChangeValueForKey:@"skillListMA"];
1108     [skillListMA removeAllObjects];
1109     [self didChangeValueForKey:@"skillListMA"];
1110     
1111     
1112     SKILL *SKtop;
1113     SKtop = UC[clickIndex].S;
1114     while (UC[clickIndex].S) {
1115         NSMutableDictionary* dict = [NSMutableDictionary new];
1116         
1117         SKL = SKLtop;
1118         for(int i = 1;i < UC[clickIndex].S->type;i++){
1119             SKL = SKL->next;
1120         }
1121         [dict setValue:[NSString stringWithFormat:@"%@", SKL->name] forKey:@"name"];
1122         SKL = SKLtop;
1123         
1124         [self willChangeValueForKey:@"skillListMA"];
1125         [skillListMA addObject:dict];
1126         [self didChangeValueForKey:@"skillListMA"];
1127         
1128         UC[clickIndex].S = UC[clickIndex].S->next;
1129     }UC[clickIndex].S = SKtop;
1130
1131 }
1132
1133 -(void)initskillListBuild{
1134     [self willChangeValueForKey:@"skillListBuildMA"];
1135     [skillListBuildMA removeAllObjects];
1136     [self didChangeValueForKey:@"skillListBuildMA"];
1137     
1138     for(int i = 0;UC[clickIndex].S->list[i] > 0;i++) {
1139         NSMutableDictionary* dict = [NSMutableDictionary new];
1140         
1141         NSMutableArray *Array = [NSMutableArray array];
1142         
1143         for(int k = 0;k<BuildChipNum;k++){
1144             [Array addObject:[BC[k].nameR retain]];
1145             [dict setValue:[NSString stringWithFormat:@"資%d食%d金%d", BC[k].Csupply, BC[k].Cfood, BC[k].Cmoney] forKey:@"manko"];
1146         }
1147         [dict setValue:Array forKey:@"name"];
1148         
1149         int val;
1150         val = UC[clickIndex].S->list[i] - 1;
1151         val = val<<8 | (0xc7 & 0xff);
1152         [dict setValue:val forKey:@"sel"];
1153         
1154         [self willChangeValueForKey:@"skillListBuildMA"];
1155         [skillListBuildMA addObject:dict];
1156         [self didChangeValueForKey:@"skillListBuildMA"];
1157     }
1158
1159
1160 }
1161
1162 -(void)initskillListUnit{
1163     [self willChangeValueForKey:@"skillListUnitMA"];
1164     [skillListUnitMA removeAllObjects];
1165     [self didChangeValueForKey:@"skillListUnitMA"];
1166     
1167     
1168     for(int i = 0;UC[clickIndex].S->list[i] > 0;i++) {
1169         NSMutableDictionary* dict = [NSMutableDictionary new];
1170         
1171         NSMutableArray *Array = [NSMutableArray array];
1172         
1173         for(int k = 0;k<UCN;k++){
1174             [Array addObject:[UC[k].name retain]];
1175         }
1176         [dict setValue:Array forKey:@"name"];
1177         
1178         [dict setValue:[NSString stringWithFormat:@"%g", UC[clickIndex].S->cost[i]] forKey:@"MP"];
1179         
1180         int val;
1181         val = UC[clickIndex].S->list[i] - 1;
1182         val = val<<8 | (0xc7 & 0xff);
1183         [dict setValue:val forKey:@"sel"];
1184         
1185         [self willChangeValueForKey:@"skillListUnitMA"];
1186         [skillListUnitMA addObject:dict];
1187         [self didChangeValueForKey:@"skillListUnitMA"];
1188     }
1189     
1190 }
1191
1192
1193 -(void)initEquip{
1194     [self willChangeValueForKey:@"equipItemMA"];
1195     [equipItemMA removeAllObjects];
1196     [self didChangeValueForKey:@"equipItemMA"];
1197     eHeadFlag = false;
1198     eBodyFlag = false;
1199     eFootFlag = false;
1200     eArmFlag = false;
1201     eHandRFlag = false;
1202     eHandLFlag = false;
1203     
1204     if(UC[clickIndex].eHandR.name != NULL) {
1205         NSMutableDictionary* dict = [NSMutableDictionary new];
1206         [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].eHandR.name] forKey:@"name"];
1207         UC[clickIndex].eHandRflag = true;
1208         [self willChangeValueForKey:@"equipItemMA"];
1209         [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1];
1210         [self didChangeValueForKey:@"equipItemMA"];
1211     }
1212     if(UC[clickIndex].eHandL.name != NULL) {
1213         NSMutableDictionary* dict = [NSMutableDictionary new];
1214         [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].eHandL.name] forKey:@"name"];
1215         UC[clickIndex].eHandLflag = true;
1216         [self willChangeValueForKey:@"equipItemMA"];
1217         [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1];
1218         [self didChangeValueForKey:@"equipItemMA"];
1219     }
1220     if(UC[clickIndex].eHead.name != NULL) {
1221         NSMutableDictionary* dict = [NSMutableDictionary new];
1222         [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].eHead.name] forKey:@"name"];
1223         eHeadFlag = true;
1224         [self willChangeValueForKey:@"equipItemMA"];
1225         [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1];
1226         [self didChangeValueForKey:@"equipItemMA"];
1227     }
1228     if(UC[clickIndex].eBody.name != NULL) {
1229         NSMutableDictionary* dict = [NSMutableDictionary new];
1230         [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].eBody.name] forKey:@"name"];
1231         eBodyFlag = true;
1232         [self willChangeValueForKey:@"equipItemMA"];
1233         [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1];
1234         [self didChangeValueForKey:@"equipItemMA"];
1235     }
1236     if(UC[clickIndex].eFoot.name != NULL) {
1237         NSMutableDictionary* dict = [NSMutableDictionary new];
1238         [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].eFoot.name] forKey:@"name"];
1239         eFootFlag = true;
1240         [self willChangeValueForKey:@"equipItemMA"];
1241         [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1];
1242         [self didChangeValueForKey:@"equipItemMA"];
1243     }
1244     if(UC[clickIndex].eArm.name != NULL) {
1245         NSMutableDictionary* dict = [NSMutableDictionary new];
1246         [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].eArm.name] forKey:@"name"];
1247         eArmFlag = true;
1248         [self willChangeValueForKey:@"equipItemMA"];
1249         [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1];
1250         [self didChangeValueForKey:@"equipItemMA"];
1251     }
1252     
1253     
1254     if(UC[clickIndex].eHandL.nameID){
1255         for(int j = 0;j < eItemNum;j++){
1256             if([UC[clickIndex].eHandL.nameID isEqualToString:EQ[j].nameID]){
1257                 UC[clickIndex].eHandL = EQ[j];
1258                 UC[clickIndex].eHandL.A = EQ[j].A;
1259             }
1260         }
1261     }
1262     
1263     if(UC[clickIndex].eHandR.nameID){
1264         for(int j = 0;j < eItemNum;j++){
1265             if([UC[clickIndex].eHandR.nameID isEqualToString:EQ[j].nameID]){
1266                 UC[clickIndex].eHandR = EQ[j];
1267                 UC[clickIndex].eHandR.A = EQ[j].A;
1268             }
1269         }
1270     }
1271     
1272     if(UC[clickIndex].eHead.nameID){
1273         for(int j = 0;j < eItemNum;j++){
1274             if([UC[clickIndex].eHead.nameID isEqualToString:EQ[j].nameID]){
1275                 UC[clickIndex].eHead = EQ[j];
1276             }
1277         }
1278     }
1279     
1280     if(UC[clickIndex].eBody.nameID){
1281         for(int j = 0;j < eItemNum;j++){
1282             if([UC[clickIndex].eBody.nameID isEqualToString:EQ[j].nameID]){
1283                 UC[clickIndex].eBody = EQ[j];
1284             }
1285         }
1286     }
1287     
1288     if(UC[clickIndex].eFoot.nameID){
1289         for(int j = 0;j < eItemNum;j++){
1290             if([UC[clickIndex].eFoot.nameID isEqualToString:EQ[j].nameID]){
1291                 UC[clickIndex].eFoot = EQ[j];
1292             }
1293         }
1294     }
1295     
1296     if(UC[clickIndex].eArm.nameID){
1297         for(int j = 0;j < eItemNum;j++){
1298             if([UC[clickIndex].eArm.nameID isEqualToString:EQ[j].nameID]){
1299                 UC[clickIndex].eArm = EQ[j];
1300             }
1301         }
1302     }
1303 }
1304
1305 -(IBAction)equipItemSelected:(id)sender{
1306     pubEquipItemIndex = [PUPtEquip indexOfSelectedItem];
1307     pubEquipItemIndex -= 1;
1308 }
1309
1310 bool eHeadFlag = false;
1311 bool eBodyFlag = false;
1312 bool eFootFlag = false;
1313 bool eArmFlag = false;
1314 bool eHandRFlag = false;
1315 bool eHandLFlag = false;
1316
1317 -(IBAction)insertEquip:(id)sender{
1318     
1319     if(pubEquipItemIndex >= 0){
1320         
1321         if(EQ[pubEquipItemIndex].type == 2){
1322             if(UC[clickIndex].eHandLflag && UC[clickIndex].eHandRflag) return;
1323             if(UC[clickIndex].eHandRflag) {
1324                 UC[clickIndex].eHandLflag = true;
1325                 UC[clickIndex].eHandL = EQ[pubEquipItemIndex];
1326             }else{
1327             UC[clickIndex].eHandR = EQ[pubEquipItemIndex];
1328                 UC[clickIndex].eHandRflag = true;
1329             }
1330         }else if(EQ[pubEquipItemIndex].type == 3){
1331             if(UC[clickIndex].eHeadflag) return;
1332             UC[clickIndex].eHead = EQ[pubEquipItemIndex];
1333             UC[clickIndex].eHeadflag = true;
1334         }else if(EQ[pubEquipItemIndex].type == 4){
1335             if(UC[clickIndex].eBodyflag) return;
1336             UC[clickIndex].eBody = EQ[pubEquipItemIndex];
1337             UC[clickIndex].eBodyflag = true;
1338         }else if(EQ[pubEquipItemIndex].type == 5){
1339             if(UC[clickIndex].eFootflag) return;
1340             UC[clickIndex].eFoot = EQ[pubEquipItemIndex];
1341             UC[clickIndex].eFootflag = true;
1342         }else if(EQ[pubEquipItemIndex].type == 6){
1343             if(UC[clickIndex].eArmflag) return;
1344             UC[clickIndex].eArm = EQ[pubEquipItemIndex];
1345             UC[clickIndex].eArmflag = true;
1346         }else if(EQ[pubEquipItemIndex].type == 7){
1347             if(!UC[clickIndex].eHandLflag && !UC[clickIndex].eHandRflag){
1348             
1349             UC[clickIndex].eHandLflag = true;
1350             UC[clickIndex].eHandRflag = true;
1351             UC[clickIndex].eHandR = EQ[pubEquipItemIndex];
1352             }else
1353                 return;
1354         }
1355         
1356         NSMutableDictionary* dict = [NSMutableDictionary new];
1357         [dict setValue:[NSString stringWithFormat:@"%@", EQ[pubEquipItemIndex].name] forKey:@"name"];
1358         [self willChangeValueForKey:@"equipItemMA"];
1359         [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1];
1360         [self didChangeValueForKey:@"equipItemMA"];
1361     }
1362 }
1363 -(IBAction)removeEquip:(id)sender{
1364     
1365     
1366     if([equipItemTV selectedRow] >= 0){
1367         
1368         if([[[equipItemMA objectAtIndex:[equipItemTV selectedRow]] valueForKey:@"name"] isEqualToString:UC[clickIndex].eHandL.name]){
1369             
1370             if(UC[clickIndex].eHandLflag){
1371                 if(UC[clickIndex].eHandL.type == 7){
1372                     UC[clickIndex].eHandR = nilEquip;
1373                     UC[clickIndex].eHandRflag = false;
1374                 }
1375                 UC[clickIndex].eHandL = nilEquip;
1376                 UC[clickIndex].eHandLflag = false;
1377             }
1378             
1379         }
1380         else if([[[equipItemMA objectAtIndex:[equipItemTV selectedRow]] valueForKey:@"name"] isEqualToString:UC[clickIndex].eHandR.name]){
1381             if(UC[clickIndex].eHandRflag){
1382                 if(UC[clickIndex].eHandR.type == 7){
1383                     UC[clickIndex].eHandL = nilEquip;
1384                     UC[clickIndex].eHandLflag = false;
1385                 }
1386                 UC[clickIndex].eHandR = nilEquip;
1387                 UC[clickIndex].eHandRflag = false;
1388             }
1389         }
1390         else if([[[equipItemMA objectAtIndex:[equipItemTV selectedRow]] valueForKey:@"name"] isEqualToString:UC[clickIndex].eHead.name]){
1391             UC[clickIndex].eHead = nilEquip;
1392             UC[clickIndex].eHeadflag = false;
1393         }
1394         else if([[[equipItemMA objectAtIndex:[equipItemTV selectedRow]] valueForKey:@"name"] isEqualToString:UC[clickIndex].eBody.name]){
1395             UC[clickIndex].eBody = nilEquip;
1396             UC[clickIndex].eBodyflag = false;
1397         }
1398         else if([[[equipItemMA objectAtIndex:[equipItemTV selectedRow]] valueForKey:@"name"] isEqualToString:UC[clickIndex].eFoot.name]){
1399             UC[clickIndex].eFoot = nilEquip;
1400             UC[clickIndex].eFootflag = false;
1401         }
1402         else if([[[equipItemMA objectAtIndex:[equipItemTV selectedRow]] valueForKey:@"name"] isEqualToString:UC[clickIndex].eArm.name]){
1403             UC[clickIndex].eArm = nilEquip;
1404             UC[clickIndex].eArmflag = false;
1405         }
1406         
1407         
1408         
1409         [self willChangeValueForKey:@"equipItemMA"];
1410         [equipItemMA removeObjectAtIndex:[equipItemTV selectedRow]];
1411         [self didChangeValueForKey:@"equipItemMA"];
1412     }
1413 }
1414
1415
1416 -(void)doubleClickEQ:(id)sender{
1417     clickIndexEQ = [equipListTV clickedRow];
1418     
1419     if(EQ[clickIndexEQ].name) [ILTFname setStringValue:EQ[clickIndexEQ].name];
1420     else [ILTFname setStringValue:@""];
1421     if(EQ[clickIndexEQ].nameRecognition) [ILTFnameR setStringValue:EQ[clickIndexEQ].nameRecognition];
1422     else [ILTFnameR setStringValue:@""];
1423     if(EQ[clickIndexEQ].nameID) [ILTFnameID setStringValue:EQ[clickIndexEQ].nameID];
1424     else [ILTFnameID setStringValue:@""];
1425     [ILTFweight setDoubleValue:EQ[clickIndexEQ].Weight];
1426     [ILTFprice setDoubleValue:EQ[clickIndexEQ].price];
1427     [ILTFMOV setIntValue:EQ[clickIndexEQ].MOV];
1428     [ILTFHP setDoubleValue:EQ[clickIndexEQ].HP];
1429     [ILTFMP setDoubleValue:EQ[clickIndexEQ].MP];
1430     [ILTFAP setDoubleValue:EQ[clickIndexEQ].AP];
1431     [ILTFWT setDoubleValue:EQ[clickIndexEQ].WT];
1432     
1433     [ILTFSTR setDoubleValue:EQ[clickIndexEQ].STR];
1434     [ILTFVIT setDoubleValue:EQ[clickIndexEQ].VIT];
1435     [ILTFAGI setDoubleValue:EQ[clickIndexEQ].AGI];
1436     [ILTFDEX setDoubleValue:EQ[clickIndexEQ].DEX];
1437     [ILTFMEN setDoubleValue:EQ[clickIndexEQ].MEN];
1438     [ILTFINT setDoubleValue:EQ[clickIndexEQ].INT];
1439     [ILTFLUK setDoubleValue:EQ[clickIndexEQ].LUK];
1440     
1441     [ILTFpSTR setDoubleValue:EQ[clickIndexEQ].pSTR];
1442     [ILTFpVIT setDoubleValue:EQ[clickIndexEQ].pVIT];
1443     [ILTFpAGI setDoubleValue:EQ[clickIndexEQ].pAGI];
1444     [ILTFpDEX setDoubleValue:EQ[clickIndexEQ].pDEX];
1445     [ILTFpMEN setDoubleValue:EQ[clickIndexEQ].pMEN];
1446     [ILTFpINT setDoubleValue:EQ[clickIndexEQ].pINT];
1447     [ILTFpLUK setDoubleValue:EQ[clickIndexEQ].pLUK];
1448     
1449     [ILTFblow setIntValue:EQ[clickIndexEQ].R.blow];
1450     [ILTFslash setIntValue:EQ[clickIndexEQ].R.slash];
1451     [ILTFstub setIntValue:EQ[clickIndexEQ].R.stub];
1452     [ILTFarrow setIntValue:EQ[clickIndexEQ].R.arrow];
1453     [ILTFgun setIntValue:EQ[clickIndexEQ].R.gun];
1454     [ILTFshell setIntValue:EQ[clickIndexEQ].R.shell];
1455     [ILTFparalysis setIntValue:EQ[clickIndexEQ].R.paralysis];
1456     [ILTFpoison setIntValue:EQ[clickIndexEQ].R.poison];
1457     [ILTFcharm setIntValue:EQ[clickIndexEQ].R.charm];
1458     [ILTFconfusion setIntValue:EQ[clickIndexEQ].R.confusion];
1459     [ILTFsleep setIntValue:EQ[clickIndexEQ].R.sleep];
1460     [ILTFsilent setIntValue:EQ[clickIndexEQ].R.silent];
1461     
1462     [ILTFflame setIntValue:EQ[clickIndexEQ].R.flame];
1463     [ILTFcold setIntValue:EQ[clickIndexEQ].R.cold];
1464     [ILTFelectoric setIntValue:EQ[clickIndexEQ].R.electoric];
1465     [ILTFair setIntValue:EQ[clickIndexEQ].R.air];
1466     [ILTFwater setIntValue:EQ[clickIndexEQ].R.water];
1467     [ILTFgas setIntValue:EQ[clickIndexEQ].R.gas];
1468     [ILTFholy setIntValue:EQ[clickIndexEQ].R.holy];
1469     [ILTFdark setIntValue:EQ[clickIndexEQ].R.dark];
1470     [ILTFexplosion setIntValue:EQ[clickIndexEQ].R.explosion];
1471     [ILTFblood setIntValue:EQ[clickIndexEQ].R.blood];
1472     
1473     [ILTFrecHP setIntValue:EQ[clickIndexEQ].recHP];
1474     [ILTFrecHPp setIntValue:EQ[clickIndexEQ].recpHP];
1475     [ILTFrecMP setIntValue:EQ[clickIndexEQ].recMP];
1476     [ILTFrecMPp setIntValue:EQ[clickIndexEQ].recpMP];
1477     if(EQ[clickIndexEQ].comment) [ILTFcomment setStringValue:EQ[clickIndexEQ].comment];
1478     else [ILTFcomment setStringValue:@""];
1479     
1480     [ILPUBtype selectItemAtIndex:EQ[clickIndexEQ].type];
1481     
1482     UCLDpoint.x = [UCLPanelEquipList frame].origin.x + 0;
1483     UCLDpoint.y = [UCLPanelEquipList frame].origin.y + 0;
1484     [UCLPanelEquipDetail setFrameOrigin:UCLDpoint];
1485     [UCLPanelEquipDetail makeKeyAndOrderFront:nil];
1486 }
1487
1488 -(IBAction)saveIL:(id)sender{
1489     
1490     EQ[clickIndexEQ].name = [[ILTFname stringValue] retain];
1491     EQ[clickIndexEQ].nameRecognition = [[ILTFnameR stringValue] retain];
1492     EQ[clickIndexEQ].nameID = [[ILTFnameID stringValue] retain];
1493     
1494     EQ[clickIndexEQ].Weight = [ILTFweight doubleValue];
1495     EQ[clickIndexEQ].price = [ILTFprice doubleValue];
1496     EQ[clickIndexEQ].MOV = [ILTFMOV intValue];
1497     EQ[clickIndexEQ].HP = [ILTFHP doubleValue];
1498     EQ[clickIndexEQ].MP = [ILTFMP doubleValue];
1499     EQ[clickIndexEQ].AP = [ILTFAP doubleValue];
1500     EQ[clickIndexEQ].WT = [ILTFWT doubleValue];
1501     
1502     EQ[clickIndexEQ].STR = [ILTFSTR doubleValue];
1503     EQ[clickIndexEQ].VIT = [ILTFVIT doubleValue];
1504     EQ[clickIndexEQ].AGI = [ILTFAGI doubleValue];
1505     EQ[clickIndexEQ].DEX = [ILTFDEX doubleValue];
1506     EQ[clickIndexEQ].MEN = [ILTFMEN doubleValue];
1507     EQ[clickIndexEQ].INT = [ILTFINT doubleValue];
1508     EQ[clickIndexEQ].LUK = [ILTFLUK doubleValue];
1509     
1510     EQ[clickIndexEQ].pSTR = [ILTFpSTR doubleValue];
1511     EQ[clickIndexEQ].pVIT = [ILTFpVIT doubleValue];
1512     EQ[clickIndexEQ].pAGI = [ILTFpAGI doubleValue];
1513     EQ[clickIndexEQ].pDEX = [ILTFpDEX doubleValue];
1514     EQ[clickIndexEQ].pMEN = [ILTFpMEN doubleValue];
1515     EQ[clickIndexEQ].pINT = [ILTFpINT doubleValue];
1516     EQ[clickIndexEQ].pLUK = [ILTFpLUK doubleValue];
1517     
1518     EQ[clickIndexEQ].R.blow = [ILTFblow intValue];
1519     EQ[clickIndexEQ].R.slash = [ILTFslash intValue];
1520     EQ[clickIndexEQ].R.stub = [ILTFstub intValue];
1521     EQ[clickIndexEQ].R.arrow = [ILTFarrow intValue];
1522     EQ[clickIndexEQ].R.gun = [ILTFgun intValue];
1523     EQ[clickIndexEQ].R.shell = [ILTFshell intValue];
1524     EQ[clickIndexEQ].R.paralysis = [ILTFparalysis intValue];
1525     EQ[clickIndexEQ].R.poison = [ILTFpoison intValue];
1526     EQ[clickIndexEQ].R.charm = [ILTFcharm intValue];
1527     EQ[clickIndexEQ].R.confusion = [ILTFconfusion intValue];
1528     EQ[clickIndexEQ].R.sleep = [ILTFsleep intValue];
1529     EQ[clickIndexEQ].R.silent = [ILTFsilent intValue];
1530     
1531     EQ[clickIndexEQ].R.flame = [ILTFflame intValue];
1532     EQ[clickIndexEQ].R.cold = [ILTFcold intValue];
1533     EQ[clickIndexEQ].R.electoric = [ILTFelectoric intValue];
1534     EQ[clickIndexEQ].R.air = [ILTFair intValue];
1535     EQ[clickIndexEQ].R.water = [ILTFwater intValue];
1536     EQ[clickIndexEQ].R.gas = [ILTFgas intValue];
1537     EQ[clickIndexEQ].R.holy = [ILTFholy intValue];
1538     EQ[clickIndexEQ].R.dark = [ILTFdark intValue];
1539     EQ[clickIndexEQ].R.explosion = [ILTFexplosion intValue];
1540     EQ[clickIndexEQ].R.blood = [ILTFblood intValue];
1541     
1542     EQ[clickIndexEQ].recHP = [ILTFrecHP intValue];
1543     EQ[clickIndexEQ].recpHP = [ILTFrecHPp intValue];
1544     EQ[clickIndexEQ].recMP = [ILTFrecMP intValue];
1545     EQ[clickIndexEQ].recpMP = [ILTFrecMPp intValue];
1546     EQ[clickIndexEQ].comment = [[ILTFcomment stringValue] retain];
1547     
1548     EQ[clickIndexEQ].type = (int)[ILPUBtype indexOfSelectedItem];
1549     
1550     [equipListAC setValue:[NSString stringWithFormat:@"%@", EQ[clickIndexEQ].name] forKeyPath:@"selection.name"];
1551     
1552     NSString *str = @"";
1553     
1554     if(EQ[clickIndexEQ].HP != 0)
1555         str = [str stringByAppendingFormat:@"HP %d ", (int)EQ[clickIndexEQ].HP];
1556     if(EQ[clickIndexEQ].MP != 0)
1557         str = [str stringByAppendingFormat:@"MP %d ", (int)EQ[clickIndexEQ].MP];
1558     if(EQ[clickIndexEQ].STR != 0)
1559         str = [str stringByAppendingFormat:@"STR %d ", (int)EQ[clickIndexEQ].STR];
1560     if(EQ[clickIndexEQ].VIT != 0)
1561         str = [str stringByAppendingFormat:@"VIT %d ", (int)EQ[clickIndexEQ].VIT];
1562     if(EQ[clickIndexEQ].AGI != 0)
1563         str = [str stringByAppendingFormat:@"AGI %d ", (int)EQ[clickIndexEQ].AGI];
1564     if(EQ[clickIndexEQ].DEX != 0)
1565         str = [str stringByAppendingFormat:@"DEX %d ", (int)EQ[clickIndexEQ].DEX];
1566     if(EQ[clickIndexEQ].MEN != 0)
1567         str = [str stringByAppendingFormat:@"MEN %d ", (int)EQ[clickIndexEQ].MEN];
1568     if(EQ[clickIndexEQ].INT != 0)
1569         str = [str stringByAppendingFormat:@"INT %d ", (int)EQ[clickIndexEQ].INT];
1570     if(EQ[clickIndexEQ].LUK != 0)
1571         str = [str stringByAppendingFormat:@"LUK %d ", (int)EQ[clickIndexEQ].LUK];
1572     if(EQ[clickIndexEQ].Weight != 0)
1573         str = [str stringByAppendingFormat:@"重さ %d ", (int)EQ[clickIndexEQ].Weight];
1574     
1575     [equipListAC setValue:[NSString stringWithFormat:@"%@", str] forKeyPath:@"selection.memo"];
1576     
1577     [self saveEquip];
1578     
1579     [UCLPanelEquipDetail close];
1580 }
1581
1582 -(void)saveEquip{
1583     
1584     NSString *directoryPath;
1585     
1586     directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
1587     [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
1588     
1589     for (int i=0; i<eItemNum; i++) {
1590         NSString *fdata = @"data/ItemList/ILdata";
1591         fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
1592         
1593         NSString *fileData = @"";
1594        
1595         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", EQ[i].name]] stringByAppendingString:@"\n"];
1596         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", EQ[i].nameRecognition]] stringByAppendingString:@"\n"];
1597         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", EQ[i].nameID]] stringByAppendingString:@"\n"];
1598         
1599         
1600         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].price]] stringByAppendingString:@","];
1601         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].Weight]] stringByAppendingString:@","];
1602         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].type]] stringByAppendingString:@"\n"];
1603         
1604         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].HP]] stringByAppendingString:@","];
1605         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].MP]] stringByAppendingString:@","];
1606         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].AP]] stringByAppendingString:@","];
1607         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].WT]] stringByAppendingString:@","];
1608         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].MOV]] stringByAppendingString:@"\n"];
1609         
1610         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].STR]] stringByAppendingString:@","];
1611         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].VIT]] stringByAppendingString:@","];
1612         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].AGI]] stringByAppendingString:@","];
1613         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].DEX]] stringByAppendingString:@","];
1614         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].MEN]] stringByAppendingString:@","];
1615         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].INT]] stringByAppendingString:@","];
1616         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].LUK]] stringByAppendingString:@"\n"];
1617         
1618         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].pSTR]] stringByAppendingString:@","];
1619         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].pVIT]] stringByAppendingString:@","];
1620         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].pAGI]] stringByAppendingString:@","];
1621         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].pDEX]] stringByAppendingString:@","];
1622         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].pMEN]] stringByAppendingString:@","];
1623         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].pINT]] stringByAppendingString:@","];
1624         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].pLUK]] stringByAppendingString:@"\n"];
1625         
1626         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].recHP]] stringByAppendingString:@","];
1627         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].recpHP]] stringByAppendingString:@","];
1628         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].recMP]] stringByAppendingString:@","];
1629         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].recpMP]] stringByAppendingString:@"\n"];
1630         
1631         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.blow]] stringByAppendingString:@","];
1632         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.slash]] stringByAppendingString:@","];
1633         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.stub]] stringByAppendingString:@","];
1634         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.arrow]] stringByAppendingString:@","];
1635         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.gun]] stringByAppendingString:@","];
1636         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.shell]] stringByAppendingString:@","];
1637         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.paralysis]] stringByAppendingString:@","];
1638         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.poison]] stringByAppendingString:@","];
1639         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.charm]] stringByAppendingString:@","];
1640         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.confusion]] stringByAppendingString:@","];
1641         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.sleep]] stringByAppendingString:@","];
1642         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.silent]] stringByAppendingString:@"\n"];
1643         
1644         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.flame]] stringByAppendingString:@","];
1645         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.cold]] stringByAppendingString:@","];
1646         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.electoric]] stringByAppendingString:@","];
1647         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.air]] stringByAppendingString:@","];
1648         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.water]] stringByAppendingString:@","];
1649         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.gas]] stringByAppendingString:@","];
1650         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.holy]] stringByAppendingString:@","];
1651         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.dark]] stringByAppendingString:@","];
1652         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.explosion]] stringByAppendingString:@","];
1653         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.blood]] stringByAppendingString:@"\n"];
1654         
1655         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", EQ[i].comment]] stringByAppendingString:@"\n"];
1656                fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"----\n"]];
1657         
1658         [fileData writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
1659     }
1660     
1661
1662     
1663 }
1664
1665 -(IBAction)canceIL:(id)sender{
1666     [UCLPanelEquipDetail close];
1667 }
1668
1669 -(void)ClickAL:(id)sender{
1670     clickedRowAT = (int)[attackListTV clickedRow];
1671 }
1672
1673 -(void)doubleClickAL:(id)sender{
1674     
1675     
1676     if(EQmodeFlag){
1677         if(clickIndexEQ < 0) return;
1678         atkTop = EQ[clickIndexEQ].A;
1679         
1680         clickIndexAL = [attackListTV clickedRow];
1681         
1682         [self willChangeValueForKey:@"damageListMA"];
1683         [damageListMA removeAllObjects];
1684         [self didChangeValueForKey:@"damageListMA"];
1685         
1686         [self willChangeValueForKey:@"hitListMA"];
1687         [hitListMA removeAllObjects];
1688         [self didChangeValueForKey:@"hitListMA"];
1689         
1690         if(clickIndexAL <= -1) return;
1691         
1692         for(int i = 0;i < clickIndexAL;i++){
1693             EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
1694         }
1695         
1696         [ALTFname setStringValue:EQ[clickIndexEQ].A->name];
1697         [ALTFrangeA setIntValue:EQ[clickIndexEQ].A->rangeA];
1698         [ALTFrangeB setIntValue:EQ[clickIndexEQ].A->rangeB];
1699         [ALTFextend setIntValue:EQ[clickIndexEQ].A->extent];
1700         
1701         [ALTFtrigger setIntValue:EQ[clickIndexEQ].A->trig];
1702         [ALTFmelee setIntValue:EQ[clickIndexEQ].A->melee];
1703         [ALTFpass setIntValue:EQ[clickIndexEQ].A->P];
1704         [ALTFdmgExtent setIntValue:EQ[clickIndexEQ].A->dmgExtend];
1705         [ALPUBwType selectItemAtIndex:EQ[clickIndexEQ].A->type];
1706         [ALTFimagine setIntValue:EQ[clickIndexEQ].A->imagine];
1707         
1708
1709         
1710         
1711         
1712         [ALPUBtype removeAllItems];
1713         [ALPUBtype addItemWithTitle:@"攻撃力"];
1714         [ALPUBtype addItemWithTitle:@"防御力"];
1715         [ALPUBtype addItemWithTitle:@"命中値"];
1716         [ALPUBtype addItemWithTitle:@"回避値"];
1717         [ALPUBtype addItemWithTitle:@"演算力"];
1718         [ALPUBtype addItemWithTitle:@"無修正"];
1719         
1720         [ALPUBcost removeAllItems];
1721         [ALPUBcost addItemWithTitle:@"MP"];
1722         [ALPUBcost addItemWithTitle:@"AP"];
1723         [ALPUBcost addItemWithTitle:@"HP"];
1724         [ALPUBcost selectItemAtIndex:EQ[clickIndexEQ].A->costType];
1725         if(EQ[clickIndexEQ].A->costType == 0){
1726             [ALTFcost setIntValue:EQ[clickIndexEQ].A->MP];
1727             [ALTFcostP setIntValue:EQ[clickIndexEQ].A->pMP];
1728         }else if(EQ[clickIndexEQ].A->costType == 1){
1729             [ALTFcost setIntValue:EQ[clickIndexEQ].A->AP];
1730             [ALTFcostP setIntValue:EQ[clickIndexEQ].A->pAP];
1731         }else if(EQ[clickIndexEQ].A->costType == 2){
1732             [ALTFcost setIntValue:EQ[clickIndexEQ].A->HP];
1733             [ALTFcostP setIntValue:EQ[clickIndexEQ].A->pHP];
1734         }
1735         
1736         [ALTFbullet setIntValue:EQ[clickIndexEQ].A->bullet];
1737         [ALTFhitCount setIntValue:EQ[clickIndexEQ].A->hitCount];
1738         [ALTFsuccessRate setIntValue:EQ[clickIndexEQ].A->successRate];
1739         [ALTFvigor setIntValue:EQ[clickIndexEQ].A->vigor];
1740         [ALTFhitRate setIntValue:EQ[clickIndexEQ].A->hitPercent];
1741         
1742         [ALPUBriku selectItemAtIndex:EQ[clickIndexEQ].A->riku];
1743         [ALPUBchu selectItemAtIndex:EQ[clickIndexEQ].A->chu];
1744         [ALPUBumi selectItemAtIndex:EQ[clickIndexEQ].A->umi];
1745         [ALPUBsora selectItemAtIndex:EQ[clickIndexEQ].A->sora];
1746         
1747         [ALTFcSupply setIntValue:EQ[clickIndexEQ].A->cSupply];
1748         [ALTFcFood setIntValue:EQ[clickIndexEQ].A->cFood];
1749         [ALTFcMoney setIntValue:EQ[clickIndexEQ].A->cMoney];
1750         
1751         [ALTFcmd setStringValue:EQ[clickIndexEQ].A->cmd];
1752         if(EQ[clickIndexEQ].A->msg != NULL) [ALTFmsg setStringValue:EQ[clickIndexEQ].A->msg];
1753         
1754         DAMAGE *Dtop = EQ[clickIndexEQ].A->D;
1755         do{
1756             
1757             NSMutableDictionary* dict = [NSMutableDictionary new];
1758             if(!EQ[clickIndexEQ].A->D){
1759                 [dict setValue:[NSString stringWithFormat:@""] forKey:@"count"];
1760             }
1761             else if(EQ[clickIndexEQ].A->D->count > 0 || EQ[clickIndexEQ].A->D->pCount > 0){
1762                 if(EQ[clickIndexEQ].A->D->type == 0)
1763                     [dict setValue:[NSString stringWithFormat:@"攻%g+%g%", EQ[clickIndexEQ].A->D->count, EQ[clickIndexEQ].A->D->pCount] forKey:@"count"];
1764                 if(EQ[clickIndexEQ].A->D->type == 1)
1765                     [dict setValue:[NSString stringWithFormat:@"防%g+%g%", EQ[clickIndexEQ].A->D->count, EQ[clickIndexEQ].A->D->pCount] forKey:@"count"];
1766                 if(EQ[clickIndexEQ].A->D->type == 2)
1767                     [dict setValue:[NSString stringWithFormat:@"命%g+%g%", EQ[clickIndexEQ].A->D->count, EQ[clickIndexEQ].A->D->pCount] forKey:@"count"];
1768                 if(EQ[clickIndexEQ].A->D->type == 3)
1769                     [dict setValue:[NSString stringWithFormat:@"回%g+%g%", EQ[clickIndexEQ].A->D->count, EQ[clickIndexEQ].A->D->pCount] forKey:@"count"];
1770                 if(EQ[clickIndexEQ].A->D->type == 4)
1771                     [dict setValue:[NSString stringWithFormat:@"演%g+%g%", EQ[clickIndexEQ].A->D->count, EQ[clickIndexEQ].A->D->pCount] forKey:@"count"];
1772                 if(EQ[clickIndexEQ].A->D->type == 5)
1773                     [dict setValue:[NSString stringWithFormat:@"会%g%g%", EQ[clickIndexEQ].A->D->count, EQ[clickIndexEQ].A->D->pCount] forKey:@"count"];
1774             }
1775             NSString *str;
1776             
1777             if(EQ[clickIndexEQ].A->D){
1778                 if(EQ[clickIndexEQ].A->D->sort == 0) str = [NSString stringWithFormat:@"ダ・"];
1779                 if(EQ[clickIndexEQ].A->D->sort == 1) str = [NSString stringWithFormat:@"回・"];
1780                 if(EQ[clickIndexEQ].A->D->sort == 2) str = [NSString stringWithFormat:@"復・"];
1781                 if(EQ[clickIndexEQ].A->D->sort == 3) str = [NSString stringWithFormat:@"減・"];
1782                 if(EQ[clickIndexEQ].A->D->sort == 4) str = [NSString stringWithFormat:@"増・"];
1783                 if(EQ[clickIndexEQ].A->D->sort == 5) str = [NSString stringWithFormat:@"毒・"];
1784                 if(EQ[clickIndexEQ].A->D->sort == 6) str = [NSString stringWithFormat:@"睡・"];
1785                 if(EQ[clickIndexEQ].A->D->sort == 7) str = [NSString stringWithFormat:@"混・"];
1786                 if(EQ[clickIndexEQ].A->D->sort == 8) str = [NSString stringWithFormat:@"麻・"];
1787                 if(EQ[clickIndexEQ].A->D->sort == 9) str = [NSString stringWithFormat:@"沈・"];
1788                 if(EQ[clickIndexEQ].A->D->sort == 10) str = [NSString stringWithFormat:@"魅・"];
1789                 
1790                 if(EQ[clickIndexEQ].A->D->seed == 0) str = [str stringByAppendingFormat:@"打撃"];
1791                 if(EQ[clickIndexEQ].A->D->seed == 1) str = [str stringByAppendingFormat:@"斬撃"];
1792                 if(EQ[clickIndexEQ].A->D->seed == 2) str = [str stringByAppendingFormat:@"突き"];
1793                 if(EQ[clickIndexEQ].A->D->seed == 3) str = [str stringByAppendingFormat:@"射手"];
1794                 if(EQ[clickIndexEQ].A->D->seed == 4) str = [str stringByAppendingFormat:@"銃撃"];
1795                 if(EQ[clickIndexEQ].A->D->seed == 5) str = [str stringByAppendingFormat:@"砲撃"];
1796                 if(EQ[clickIndexEQ].A->D->seed == 6) str = [str stringByAppendingFormat:@"火炎"];
1797                 if(EQ[clickIndexEQ].A->D->seed == 7) str = [str stringByAppendingFormat:@"冷気"];
1798                 if(EQ[clickIndexEQ].A->D->seed == 8) str = [str stringByAppendingFormat:@"電撃"];
1799                 if(EQ[clickIndexEQ].A->D->seed == 9) str = [str stringByAppendingFormat:@"風圧"];
1800                 if(EQ[clickIndexEQ].A->D->seed == 10) str = [str stringByAppendingFormat:@"流水"];
1801                 if(EQ[clickIndexEQ].A->D->seed == 11) str = [str stringByAppendingFormat:@"ガス"];
1802                 if(EQ[clickIndexEQ].A->D->seed == 12) str = [str stringByAppendingFormat:@"神聖"];
1803                 if(EQ[clickIndexEQ].A->D->seed == 13) str = [str stringByAppendingFormat:@"暗黒"];
1804                 if(EQ[clickIndexEQ].A->D->seed == 14) str = [str stringByAppendingFormat:@"爆撃"];
1805                 if(EQ[clickIndexEQ].A->D->seed == 15) str = [str stringByAppendingFormat:@"流血"];
1806                 
1807                 if(EQ[clickIndexEQ].A->D->fix == 0) str = [str stringByAppendingFormat:@"通"];
1808                 if(EQ[clickIndexEQ].A->D->fix == 1) str = [str stringByAppendingFormat:@"弓"];
1809                 if(EQ[clickIndexEQ].A->D->fix == 2) str = [str stringByAppendingFormat:@"銃"];
1810                 
1811                 [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"type"];
1812             }
1813             
1814             if(EQ[clickIndexEQ].A->D){
1815                 if(EQ[clickIndexEQ].A->D->count <= 0 && EQ[clickIndexEQ].A->D->sort == 0)
1816                 {
1817                     EQ[clickIndexEQ].A->D = NULL;
1818                     break;
1819                 }
1820                 [self willChangeValueForKey:@"damageListMA"];
1821                 [damageListMA addObject:dict];
1822                 [self didChangeValueForKey:@"damageListMA"];
1823                 
1824                 EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next;
1825             }
1826         }while(EQ[clickIndexEQ].A->D != NULL);
1827         
1828         EQ[clickIndexEQ].A->D = Dtop;
1829         
1830         DMGEXTEND *Etop = EQ[clickIndexEQ].A->E;
1831         while(EQ[clickIndexEQ].A->E != NULL){
1832             
1833             NSMutableDictionary* dict = [NSMutableDictionary new];
1834             
1835             
1836             [dict setValue:[NSString stringWithFormat:@"%d", EQ[clickIndexEQ].A->E->rate] forKey:@"rate"];
1837             [dict setValue:[NSString stringWithFormat:@"%d", EQ[clickIndexEQ].A->E->atkHit] forKey:@"atkHit"];
1838             [dict setValue:[NSString stringWithFormat:@"%d", EQ[clickIndexEQ].A->E->hit] forKey:@"hit"];
1839             
1840             [self willChangeValueForKey:@"hitListMA"];
1841             [hitListMA addObject:dict];
1842             [self didChangeValueForKey:@"hitListMA"];
1843             
1844             EQ[clickIndexEQ].A->E = EQ[clickIndexEQ].A->E->next;
1845         };
1846         
1847         EQ[clickIndexEQ].A->E = Etop;
1848         
1849         EQ[clickIndexEQ].A = atkTop;
1850         
1851     
1852         UCLDpoint.x = [UCLPanelAttack frame].origin.x + 0;
1853         UCLDpoint.y = [UCLPanelAttack frame].origin.y + 0;
1854         [UCLPanelAttackDetail setFrameOrigin:UCLDpoint];
1855         [UCLPanelAttackDetail makeKeyAndOrderFront:nil];
1856         
1857         return;
1858     }
1859     
1860     if(!loadChipSideFlag){
1861     
1862     atkTop = UC[clickIndex].A;
1863     
1864     clickIndexAL = [attackListTV clickedRow];
1865     
1866         
1867     [self willChangeValueForKey:@"damageListMA"];
1868     [damageListMA removeAllObjects];
1869     [self didChangeValueForKey:@"damageListMA"];
1870     
1871     [self willChangeValueForKey:@"hitListMA"];
1872     [hitListMA removeAllObjects];
1873     [self didChangeValueForKey:@"hitListMA"];
1874     
1875     if(clickIndexAL <= -1) return;
1876         
1877     NSLog(@"%@, %ld", atkTop->name, clickIndexAL);
1878         
1879     for(int i = 0;i < clickIndexAL;i++){
1880         UC[clickIndex].A = UC[clickIndex].A->next;
1881     }
1882         
1883     [ALTFname setStringValue:UC[clickIndex].A->name];
1884     [ALTFrangeA setIntValue:UC[clickIndex].A->rangeA];
1885     [ALTFrangeB setIntValue:UC[clickIndex].A->rangeB];
1886     [ALTFextend setIntValue:UC[clickIndex].A->extent];
1887     
1888     [ALTFtrigger setIntValue:UC[clickIndex].A->trig];
1889     [ALTFmelee setIntValue:UC[clickIndex].A->melee];
1890     [ALTFpass setIntValue:UC[clickIndex].A->P];
1891     [ALTFdmgExtent setIntValue:UC[clickIndex].A->dmgExtend];
1892     [ALPUBwType selectItemAtIndex:UC[clickIndex].A->type];
1893     [ALTFimagine setIntValue:UC[clickIndex].A->imagine];
1894     
1895
1896         
1897         [ALPUBtype removeAllItems];
1898         [ALPUBtype addItemWithTitle:@"攻撃力"];
1899         [ALPUBtype addItemWithTitle:@"防御力"];
1900         [ALPUBtype addItemWithTitle:@"命中値"];
1901         [ALPUBtype addItemWithTitle:@"回避値"];
1902         [ALPUBtype addItemWithTitle:@"演算力"];
1903         [ALPUBtype addItemWithTitle:@"無修正"];
1904         
1905     [ALPUBcost removeAllItems];
1906     [ALPUBcost addItemWithTitle:@"MP"];
1907         [ALPUBcost addItemWithTitle:@"AP"];
1908         [ALPUBcost addItemWithTitle:@"HP"];
1909     [ALPUBcost selectItemAtIndex:UC[clickIndex].A->costType];
1910     if(UC[clickIndex].A->costType == 0){
1911         [ALTFcost setIntValue:UC[clickIndex].A->MP];
1912         [ALTFcostP setIntValue:UC[clickIndex].A->pMP];
1913     }else if(UC[clickIndex].A->costType == 1){
1914         [ALTFcost setIntValue:UC[clickIndex].A->AP];
1915         [ALTFcostP setIntValue:UC[clickIndex].A->pAP];
1916     }else if(UC[clickIndex].A->costType == 2){
1917             [ALTFcost setIntValue:UC[clickIndex].A->HP];
1918             [ALTFcostP setIntValue:UC[clickIndex].A->pHP];
1919     }
1920     
1921     [ALTFbullet setIntValue:UC[clickIndex].A->bullet];
1922     [ALTFhitCount setIntValue:UC[clickIndex].A->hitCount];
1923     [ALTFsuccessRate setIntValue:UC[clickIndex].A->successRate];
1924     [ALTFvigor setIntValue:UC[clickIndex].A->vigor];
1925     [ALTFhitRate setIntValue:UC[clickIndex].A->hitPercent];
1926     
1927     [ALPUBriku selectItemAtIndex:UC[clickIndex].A->riku];
1928     [ALPUBchu selectItemAtIndex:UC[clickIndex].A->chu];
1929     [ALPUBumi selectItemAtIndex:UC[clickIndex].A->umi];
1930     [ALPUBsora selectItemAtIndex:UC[clickIndex].A->sora];
1931     
1932     [ALTFcSupply setIntValue:UC[clickIndex].A->cSupply];
1933     [ALTFcFood setIntValue:UC[clickIndex].A->cFood];
1934     [ALTFcMoney setIntValue:UC[clickIndex].A->cMoney];
1935     
1936     [ALTFcmd setStringValue:UC[clickIndex].A->cmd];
1937     if(UC[clickIndex].A->msg != NULL)
1938         [ALTFmsg setStringValue:UC[clickIndex].A->msg];
1939     
1940     DAMAGE *Dtop = UC[clickIndex].A->D;
1941     do{
1942     
1943     NSMutableDictionary* dict = [NSMutableDictionary new];
1944     if(!UC[clickIndex].A->D){
1945         [dict setValue:[NSString stringWithFormat:@""] forKey:@"count"];
1946     }
1947     else if(UC[clickIndex].A->D->count > 0 || UC[clickIndex].A->D->pCount > 0){
1948     if(UC[clickIndex].A->D->type == 0)
1949             [dict setValue:[NSString stringWithFormat:@"攻%g+%g%", UC[clickIndex].A->D->count, UC[clickIndex].A->D->pCount] forKey:@"count"];
1950     if(UC[clickIndex].A->D->type == 1)
1951         [dict setValue:[NSString stringWithFormat:@"防%g+%g%", UC[clickIndex].A->D->count, UC[clickIndex].A->D->pCount] forKey:@"count"];
1952     if(UC[clickIndex].A->D->type == 2)
1953         [dict setValue:[NSString stringWithFormat:@"命%g+%g%", UC[clickIndex].A->D->count, UC[clickIndex].A->D->pCount] forKey:@"count"];
1954     if(UC[clickIndex].A->D->type == 3)
1955         [dict setValue:[NSString stringWithFormat:@"回%g+%g%", UC[clickIndex].A->D->count, UC[clickIndex].A->D->pCount] forKey:@"count"];
1956     if(UC[clickIndex].A->D->type == 4)
1957         [dict setValue:[NSString stringWithFormat:@"演%g+%g%", UC[clickIndex].A->D->count, UC[clickIndex].A->D->pCount] forKey:@"count"];
1958     if(UC[clickIndex].A->D->type == 5)
1959         [dict setValue:[NSString stringWithFormat:@"会%g%g%", UC[clickIndex].A->D->count, UC[clickIndex].A->D->pCount] forKey:@"count"];
1960     }
1961     NSString *str;
1962     
1963         if(UC[clickIndex].A->D){
1964     if(UC[clickIndex].A->D->sort == 0) str = [NSString stringWithFormat:@"ダ・"];
1965     if(UC[clickIndex].A->D->sort == 1) str = [NSString stringWithFormat:@"回・"];
1966     if(UC[clickIndex].A->D->sort == 2) str = [NSString stringWithFormat:@"復・"];
1967     if(UC[clickIndex].A->D->sort == 3) str = [NSString stringWithFormat:@"減・"];
1968     if(UC[clickIndex].A->D->sort == 4) str = [NSString stringWithFormat:@"増・"];
1969     if(UC[clickIndex].A->D->sort == 5) str = [NSString stringWithFormat:@"毒・"];
1970     if(UC[clickIndex].A->D->sort == 6) str = [NSString stringWithFormat:@"睡・"];
1971     if(UC[clickIndex].A->D->sort == 7) str = [NSString stringWithFormat:@"混・"];
1972     if(UC[clickIndex].A->D->sort == 8) str = [NSString stringWithFormat:@"麻・"];
1973     if(UC[clickIndex].A->D->sort == 9) str = [NSString stringWithFormat:@"沈・"];
1974     if(UC[clickIndex].A->D->sort == 10) str = [NSString stringWithFormat:@"魅・"];
1975     
1976     if(UC[clickIndex].A->D->seed == 0) str = [str stringByAppendingFormat:@"打撃"];
1977     if(UC[clickIndex].A->D->seed == 1) str = [str stringByAppendingFormat:@"斬撃"];
1978     if(UC[clickIndex].A->D->seed == 2) str = [str stringByAppendingFormat:@"突き"];
1979     if(UC[clickIndex].A->D->seed == 3) str = [str stringByAppendingFormat:@"射手"];
1980     if(UC[clickIndex].A->D->seed == 4) str = [str stringByAppendingFormat:@"銃撃"];
1981     if(UC[clickIndex].A->D->seed == 5) str = [str stringByAppendingFormat:@"砲撃"];
1982     if(UC[clickIndex].A->D->seed == 6) str = [str stringByAppendingFormat:@"火炎"];
1983     if(UC[clickIndex].A->D->seed == 7) str = [str stringByAppendingFormat:@"冷気"];
1984     if(UC[clickIndex].A->D->seed == 8) str = [str stringByAppendingFormat:@"電撃"];
1985     if(UC[clickIndex].A->D->seed == 9) str = [str stringByAppendingFormat:@"風圧"];
1986     if(UC[clickIndex].A->D->seed == 10) str = [str stringByAppendingFormat:@"流水"];
1987     if(UC[clickIndex].A->D->seed == 11) str = [str stringByAppendingFormat:@"ガス"];
1988     if(UC[clickIndex].A->D->seed == 12) str = [str stringByAppendingFormat:@"神聖"];
1989     if(UC[clickIndex].A->D->seed == 13) str = [str stringByAppendingFormat:@"暗黒"];
1990     if(UC[clickIndex].A->D->seed == 14) str = [str stringByAppendingFormat:@"爆撃"];
1991     if(UC[clickIndex].A->D->seed == 15) str = [str stringByAppendingFormat:@"流血"];
1992     
1993     if(UC[clickIndex].A->D->fix == 0) str = [str stringByAppendingFormat:@"通"];
1994     if(UC[clickIndex].A->D->fix == 1) str = [str stringByAppendingFormat:@"弓"];
1995     if(UC[clickIndex].A->D->fix == 2) str = [str stringByAppendingFormat:@"銃"];
1996             
1997     [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"type"];
1998         }
1999     
2000         if(UC[clickIndex].A->D){
2001             if(UC[clickIndex].A->D->count <= 0 && UC[clickIndex].A->D->sort == 0)
2002             {
2003                 UC[clickIndex].A->D = NULL;
2004                 break;
2005             }
2006             [self willChangeValueForKey:@"damageListMA"];
2007             [damageListMA addObject:dict];
2008             [self didChangeValueForKey:@"damageListMA"];
2009         
2010         UC[clickIndex].A->D = UC[clickIndex].A->D->next;
2011     }
2012     }while(UC[clickIndex].A->D != NULL);
2013     
2014     UC[clickIndex].A->D = Dtop;
2015     
2016     DMGEXTEND *Etop = UC[clickIndex].A->E;
2017     while(UC[clickIndex].A->E != NULL){
2018
2019         NSMutableDictionary* dict = [NSMutableDictionary new];
2020         
2021         
2022         [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->E->rate] forKey:@"rate"];
2023         [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->E->atkHit] forKey:@"atkHit"];
2024         [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->E->hit] forKey:@"hit"];
2025         
2026         [self willChangeValueForKey:@"hitListMA"];
2027         [hitListMA addObject:dict];
2028         [self didChangeValueForKey:@"hitListMA"];
2029         
2030        UC[clickIndex].A->E = UC[clickIndex].A->E->next;
2031     };
2032     
2033     UC[clickIndex].A->E = Etop;
2034     
2035     UC[clickIndex].A = atkTop;
2036         
2037         
2038     }else{
2039     
2040         atkTop = LC[cil].A;
2041         
2042         clickIndexAL = [attackListTV clickedRow];
2043         
2044         [self willChangeValueForKey:@"damageListMA"];
2045         [damageListMA removeAllObjects];
2046         [self didChangeValueForKey:@"damageListMA"];
2047         
2048         [self willChangeValueForKey:@"hitListMA"];
2049         [hitListMA removeAllObjects];
2050         [self didChangeValueForKey:@"hitListMA"];
2051         
2052         if(clickIndexAL <= -1) return;
2053         
2054         for(int i = 0;i < clickIndexAL;i++){
2055             LC[cil].A = LC[cil].A->next;
2056         }
2057         
2058         [ALTFname setStringValue:LC[cil].A->name];
2059         [ALTFrangeA setIntValue:LC[cil].A->rangeA];
2060         [ALTFrangeB setIntValue:LC[cil].A->rangeB];
2061         [ALTFextend setIntValue:LC[cil].A->extent];
2062         
2063         [ALTFtrigger setIntValue:LC[cil].A->trig];
2064         [ALTFmelee setIntValue:LC[cil].A->melee];
2065         [ALTFpass setIntValue:LC[cil].A->P];
2066         [ALTFdmgExtent setIntValue:LC[cil].A->dmgExtend];
2067         [ALPUBwType selectItemAtIndex:LC[cil].A->type];
2068         [ALTFimagine setIntValue:LC[cil].A->imagine];
2069         
2070         
2071         [ALPUBtype removeAllItems];
2072         [ALPUBtype addItemWithTitle:@"攻撃力"];
2073         
2074         [ALPUBcost removeAllItems];
2075         [ALPUBcost addItemWithTitle:@"EN"];
2076         [ALPUBcost addItemWithTitle:@"HP"];
2077         [ALPUBcost selectItemAtIndex:LC[cil].A->costType];
2078         if(1){
2079             if(LC[cil].A->costType == 0){
2080                 [ALTFcost setIntValue:LC[cil].A->EN];
2081                 [ALTFcostP setIntValue:LC[cil].A->pEN];
2082             }
2083             if(LC[cil].A->costType == 1){
2084                 [ALTFcost setIntValue:LC[cil].A->HP];
2085                 [ALTFcostP setIntValue:LC[cil].A->pHP];
2086             }
2087         }
2088         [ALTFbullet setIntValue:LC[cil].A->bullet];
2089         [ALTFhitCount setIntValue:LC[cil].A->hitCount];
2090         [ALTFsuccessRate setIntValue:LC[cil].A->successRate];
2091         [ALTFvigor setIntValue:LC[cil].A->vigor];
2092         [ALTFhitRate setIntValue:LC[cil].A->hitPercent];
2093         
2094         [ALPUBriku selectItemAtIndex:LC[cil].A->riku];
2095         [ALPUBchu selectItemAtIndex:LC[cil].A->chu];
2096         [ALPUBumi selectItemAtIndex:LC[cil].A->umi];
2097         [ALPUBsora selectItemAtIndex:LC[cil].A->sora];
2098         
2099         [ALTFcSupply setIntValue:LC[cil].A->cSupply];
2100         [ALTFcFood setIntValue:LC[cil].A->cFood];
2101         [ALTFcMoney setIntValue:LC[cil].A->cMoney];
2102         
2103         [ALTFcmd setStringValue:LC[cil].A->cmd];
2104         if(LC[cil].A->msg != NULL) [ALTFmsg setStringValue:LC[cil].A->msg];
2105         
2106         DAMAGE *Dtop = LC[cil].A->D;
2107         do{
2108             
2109             NSMutableDictionary* dict = [NSMutableDictionary new];
2110             if(!LC[cil].A->D){
2111                 [dict setValue:[NSString stringWithFormat:@""] forKey:@"count"];
2112             }
2113             else if(LC[cil].A->D->count > 0 || LC[cil].A->D->pCount > 0){
2114                     [dict setValue:[NSString stringWithFormat:@"攻%g+%g%", LC[cil].A->D->count, LC[cil].A->D->pCount] forKey:@"count"];
2115             }
2116             NSString *str;
2117             
2118             if(LC[cil].A->D){
2119                 if(LC[cil].A->D->sort == 0) str = [NSString stringWithFormat:@"ダ・"];
2120                 if(LC[cil].A->D->sort == 1) str = [NSString stringWithFormat:@"回・"];
2121                 if(LC[cil].A->D->sort == 2) str = [NSString stringWithFormat:@"復・"];
2122                 if(LC[cil].A->D->sort == 3) str = [NSString stringWithFormat:@"減・"];
2123                 if(LC[cil].A->D->sort == 4) str = [NSString stringWithFormat:@"増・"];
2124                 if(LC[cil].A->D->sort == 5) str = [NSString stringWithFormat:@"毒・"];
2125                 if(LC[cil].A->D->sort == 6) str = [NSString stringWithFormat:@"睡・"];
2126                 if(LC[cil].A->D->sort == 7) str = [NSString stringWithFormat:@"混・"];
2127                 if(LC[cil].A->D->sort == 8) str = [NSString stringWithFormat:@"麻・"];
2128                 if(LC[cil].A->D->sort == 9) str = [NSString stringWithFormat:@"沈・"];
2129                 if(LC[cil].A->D->sort == 10) str = [NSString stringWithFormat:@"魅・"];
2130                 
2131                 if(LC[cil].A->D->seed == 0) str = [str stringByAppendingFormat:@"打撃"];
2132                 if(LC[cil].A->D->seed == 1) str = [str stringByAppendingFormat:@"斬撃"];
2133                 if(LC[cil].A->D->seed == 2) str = [str stringByAppendingFormat:@"突き"];
2134                 if(LC[cil].A->D->seed == 3) str = [str stringByAppendingFormat:@"射手"];
2135                 if(LC[cil].A->D->seed == 4) str = [str stringByAppendingFormat:@"銃撃"];
2136                 if(LC[cil].A->D->seed == 5) str = [str stringByAppendingFormat:@"砲撃"];
2137                 if(LC[cil].A->D->seed == 6) str = [str stringByAppendingFormat:@"火炎"];
2138                 if(LC[cil].A->D->seed == 7) str = [str stringByAppendingFormat:@"冷気"];
2139                 if(LC[cil].A->D->seed == 8) str = [str stringByAppendingFormat:@"電撃"];
2140                 if(LC[cil].A->D->seed == 9) str = [str stringByAppendingFormat:@"風圧"];
2141                 if(LC[cil].A->D->seed == 10) str = [str stringByAppendingFormat:@"流水"];
2142                 if(LC[cil].A->D->seed == 11) str = [str stringByAppendingFormat:@"ガス"];
2143                 if(LC[cil].A->D->seed == 12) str = [str stringByAppendingFormat:@"神聖"];
2144                 if(LC[cil].A->D->seed == 13) str = [str stringByAppendingFormat:@"暗黒"];
2145                 if(LC[cil].A->D->seed == 14) str = [str stringByAppendingFormat:@"爆撃"];
2146                 if(LC[cil].A->D->seed == 15) str = [str stringByAppendingFormat:@"流血"];
2147                 
2148                 if(LC[cil].A->D->fix == 0) str = [str stringByAppendingFormat:@"通"];
2149                 if(LC[cil].A->D->fix == 1) str = [str stringByAppendingFormat:@"弓"];
2150                 if(LC[cil].A->D->fix == 2) str = [str stringByAppendingFormat:@"銃"];
2151                 
2152                 [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"type"];
2153             }
2154             
2155             if(LC[cil].A->D){
2156                 if(LC[cil].A->D->count <= 0 && LC[cil].A->D->sort == 0)
2157                 {
2158                     LC[cil].A->D = NULL;
2159                     break;
2160                 }
2161                 [self willChangeValueForKey:@"damageListMA"];
2162                 [damageListMA addObject:dict];
2163                 [self didChangeValueForKey:@"damageListMA"];
2164                 
2165                 LC[cil].A->D = LC[cil].A->D->next;
2166             }
2167         }while(LC[cil].A->D != NULL);
2168         
2169         LC[cil].A->D = Dtop;
2170         
2171         DMGEXTEND *Etop = LC[cil].A->E;
2172         while(LC[cil].A->E != NULL){
2173             NSMutableDictionary* dict = [NSMutableDictionary new];
2174             
2175             
2176             [dict setValue:[NSString stringWithFormat:@"%d", LC[cil].A->E->rate] forKey:@"rate"];
2177             [dict setValue:[NSString stringWithFormat:@"%d", LC[cil].A->E->atkHit] forKey:@"atkHit"];
2178             [dict setValue:[NSString stringWithFormat:@"%d", LC[cil].A->E->hit] forKey:@"hit"];
2179             
2180             [self willChangeValueForKey:@"hitListMA"];
2181             [hitListMA addObject:dict];
2182             [self didChangeValueForKey:@"hitListMA"];
2183             
2184             LC[cil].A->E = LC[cil].A->E->next;
2185         };
2186         
2187         LC[cil].A->E = Etop;
2188         
2189         LC[cil].A = atkTop;
2190     
2191     
2192     
2193     
2194     
2195     
2196     
2197     }
2198     
2199     
2200     UCLDpoint.x = [UCLPanelAttack frame].origin.x + 0;
2201     UCLDpoint.y = [UCLPanelAttack frame].origin.y + 0;
2202     [UCLPanelAttackDetail setFrameOrigin:UCLDpoint];
2203     [UCLPanelAttackDetail makeKeyAndOrderFront:nil];
2204 }
2205
2206 -(void)doubleClickUCL:(id)sender{
2207     clickIndex = [unitChipListTV clickedRow];
2208     
2209     [TFname setStringValue:UC[clickIndex].name];
2210     [TFnameN setStringValue:UC[clickIndex].nameNick];
2211     [TFnameR setStringValue:UC[clickIndex].nameRecognition];
2212     [TFnameID setStringValue:UC[clickIndex].nameID];
2213     [TFnameC setStringValue:UC[clickIndex].nameClass];
2214     
2215     
2216     [TFhp setDoubleValue:UC[clickIndex].S_M.HP];
2217     [TFmp setDoubleValue:UC[clickIndex].S_M.MP];
2218     [TFap setDoubleValue:UC[clickIndex].S_M.AP];
2219     [TFwt setDoubleValue:UC[clickIndex].S_M.WT];
2220     
2221     [TFbp setStringValue:[NSString stringWithFormat:@"BP %g", UC[clickIndex].S_M.BP]];
2222     [TFatk setStringValue:[NSString stringWithFormat:@"攻撃力 %g", UC[clickIndex].S_M.ATK]];
2223     [TFdef setStringValue:[NSString stringWithFormat:@"防御力 %g", UC[clickIndex].S_M.DEF]];
2224     [TFcap setStringValue:[NSString stringWithFormat:@"演算力 %g", UC[clickIndex].S_M.CAP]];
2225     [TFacu setStringValue:[NSString stringWithFormat:@"命中値 %g", UC[clickIndex].S_M.ACU]];
2226     [TFeva setStringValue:[NSString stringWithFormat:@"回避値 %g", UC[clickIndex].S_M.EVA]];
2227     
2228     [TFstr setDoubleValue:UC[clickIndex].S_M.STR];
2229     [TFvit setDoubleValue:UC[clickIndex].S_M.VIT];
2230     [TFagi setDoubleValue:UC[clickIndex].S_M.AGI];
2231     [TFdex setDoubleValue:UC[clickIndex].S_M.DEX];
2232     [TFmen setDoubleValue:UC[clickIndex].S_M.MEN];
2233     [TFint setDoubleValue:UC[clickIndex].S_M.INT];
2234     [TFluk setDoubleValue:UC[clickIndex].S_M.LUK];
2235     [TFmov setIntValue:UC[clickIndex].S_M.MOV];
2236     
2237     [TFmel setDoubleValue:UC[clickIndex].S_M.MEL];
2238     [TFmis setDoubleValue:UC[clickIndex].S_M.MIS];
2239     [TFhit setDoubleValue:UC[clickIndex].S_M.HIT];
2240     [TFdod setDoubleValue:UC[clickIndex].S_M.DOD];
2241     [TFrea setDoubleValue:UC[clickIndex].S_M.REA];
2242     [TFski setDoubleValue:UC[clickIndex].S_M.SKI];
2243     
2244     [TFcSupply setIntValue:UC[clickIndex].S_M.cSupply];
2245     [TFcFood setIntValue:UC[clickIndex].S_M.cFood];
2246     [TFcMoney setIntValue:UC[clickIndex].S_M.cMoney];
2247     [TFcWT setIntValue:UC[clickIndex].S_M.cWT];
2248     
2249     [PUPtMons selectItemAtIndex:UC[clickIndex].S_M.typeMONS];
2250     [PUPtMove selectItemAtIndex:UC[clickIndex].S_M.typeMOVE];
2251     //[PUPtEquip selectItemAtIndex:UC[clickIndex].S_M.typeMOVE];
2252     
2253     [IVimg setImage:UC[clickIndex].img];
2254     [IVimgBig setImage:UC[clickIndex].imgb];
2255     [Baura setIntValue:UC[clickIndex].aura];
2256     
2257     [self addPUBEquipList];
2258     [self initEquip];
2259     
2260     
2261     UCLDpoint.x = [UCLPanel frame].origin.x + 50;
2262     UCLDpoint.y = [UCLPanel frame].origin.y + 100;
2263     [UCLDetailPanel setFrameOrigin:UCLDpoint];
2264     [UCLDetailPanel makeKeyAndOrderFront:nil];
2265 }
2266
2267 -(IBAction)saveUCL:(id)sender{
2268     
2269     UC[clickIndex].name = [[TFname stringValue] retain];
2270     UC[clickIndex].nameNick = [[TFnameN stringValue] retain];
2271     UC[clickIndex].nameRecognition = [[TFnameR stringValue] retain];
2272     UC[clickIndex].nameID = [[TFnameID stringValue] retain];
2273     UC[clickIndex].nameClass = [[TFnameC stringValue] retain];
2274     
2275     UC[clickIndex].S_M.HP = [TFhp doubleValue];
2276     UC[clickIndex].S_M.MP = [TFmp doubleValue];
2277     UC[clickIndex].S_M.AP = [TFap doubleValue];
2278     UC[clickIndex].S_M.WT = [TFwt doubleValue];
2279     
2280     UC[clickIndex].S_M.STR = [TFstr doubleValue];
2281     UC[clickIndex].S_M.VIT = [TFvit doubleValue];
2282     UC[clickIndex].S_M.AGI = [TFagi doubleValue];
2283     UC[clickIndex].S_M.DEX = [TFdex doubleValue];
2284     UC[clickIndex].S_M.MEN = [TFmen doubleValue];
2285     UC[clickIndex].S_M.INT = [TFint doubleValue];
2286     UC[clickIndex].S_M.LUK = [TFluk doubleValue];
2287     UC[clickIndex].S_M.MOV = [TFmov intValue];
2288     
2289     UC[clickIndex].S_M.MEL = [TFmel doubleValue];
2290     UC[clickIndex].S_M.MIS = [TFmis doubleValue];
2291     UC[clickIndex].S_M.HIT = [TFhit doubleValue];
2292     UC[clickIndex].S_M.DOD = [TFdod doubleValue];
2293     UC[clickIndex].S_M.REA = [TFrea doubleValue];
2294     UC[clickIndex].S_M.SKI = [TFski doubleValue];
2295     
2296     UC[clickIndex].S_M.cSupply = [TFcSupply intValue];
2297     UC[clickIndex].S_M.cFood = [TFcFood intValue];
2298     UC[clickIndex].S_M.cMoney = [TFcMoney intValue];
2299     UC[clickIndex].S_M.cWT = [TFcWT intValue];
2300     
2301     UC[clickIndex].S_M.typeMONS = (int)[PUPtMons indexOfSelectedItem];
2302     UC[clickIndex].S_M.typeMOVE = (int)[PUPtMove indexOfSelectedItem];
2303     
2304     UC[clickIndex].img = [[IVimg image] retain];
2305     UC[clickIndex].imgb = [[IVimgBig image] retain];
2306     UC[clickIndex].aura = [Baura intValue];
2307     
2308     [unitChipListAC setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].name] forKeyPath:@"selection.name"];
2309     [unitChipListAC setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].nameClass] forKeyPath:@"selection.nameC"];
2310     [unitChipListAC setValue:[NSString stringWithFormat:@"%g", UC[clickIndex].S_M.HP] forKeyPath:@"selection.HP"];
2311     [unitChipListAC setValue:[NSString stringWithFormat:@"%g", UC[clickIndex].S_M.BP] forKeyPath:@"selection.BP"];
2312     [unitChipListAC setValue:UC[clickIndex].img forKeyPath:@"selection.img"];
2313     [unitChipListAC setValue:UC[clickIndex].imgb forKeyPath:@"selection.imgBig"];
2314     
2315     
2316     [self saveData];
2317     [self saveDataAL];
2318     [UCLDetailPanel close];
2319 }
2320 -(IBAction)cancelUCL:(id)sender{
2321     [UCLDetailPanel close];
2322 }
2323
2324 -(void)initFileDirectory{
2325     NSString *directoryPath;
2326     
2327     directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
2328     [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
2329     
2330     char *cwd;
2331     cwd = getcwd(NULL, 0);
2332     
2333     
2334     NSData *InitialData = [NSData dataWithContentsOfFile:@"data/UnitChip/preset.txt"];
2335     NSString *pathUC = @"data/UnitChip/img";
2336     NSString *pathDATA2 = @"data/UnitChip/preset.txt";
2337     NSString *pathUCP = @"data/UnitChip/preset.txt";
2338     NSString *fileData = nil;
2339
2340     
2341     chipNumb = 56;
2342     UCN = (int)chipNumb;
2343     if(![[NSFileManager defaultManager] fileExistsAtPath:pathUCP]){
2344         [[NSFileManager defaultManager] createDirectoryAtPath:pathUC withIntermediateDirectories:YES attributes:nil error:nil];
2345         [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil];
2346         
2347         [[NSFileManager defaultManager] createFileAtPath:pathUCP contents:nil attributes:nil];
2348         
2349         NSString *data0 = @"56";
2350         [data0 writeToFile:pathUCP atomically:YES encoding:NSUTF8StringEncoding error:nil];
2351         
2352         NSString *data1 = @"村人\n村人\nパーサント\n村人,uc1,0\n"
2353         @"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"
2354         @"100,100,100,100,100,100,"
2355         @"100,100,100,100,100,100,100,100,100,100,"
2356         @"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";
2357         NSString *data2 = @"兵士\n兵士\nソルジャー\n兵士,uc2,0\n"
2358         @"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"
2359         @"80,80,100,80,60,100,"
2360         @"90,80,150,100,100,100,100,100,80,100,"
2361         @"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";
2362         NSString *data3 = @"戦士\n戦士\nファイター\n戦士,uc3,0\n"
2363         @"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"
2364         @"90,90,100,100,90,100,"
2365         @"100,100,120,100,100,100,100,100,100,100,"
2366         @"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";
2367         NSString *data4 = @"女蛮族\n女蛮族\nアマゾネス\n女蛮族,uc4,0\n"
2368         @"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"
2369         @"100,100,100,100,100,100,"
2370         @"100,100,100,100,100,100,100,100,100,100,"
2371         @"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";
2372         NSString *data5 = @"僧徒\n僧徒\nアコライト\n僧徒,uc5,0\n"
2373         @"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"
2374         @"100,100,100,100,100,100,"
2375         @"100,130,80,100,100,100,50,120,100,100,"
2376         @"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";
2377         NSString *data6 = @"魔法使い\n魔法使い\nマジシャン\n魔法使い,uc6,0\n"
2378         @"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"
2379         @"100,150,80,90,100,100,"
2380         @"80,70,60,90,90,70,100,80,80,90,"
2381         @"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";
2382
2383         NSString *data7 = @"盗賊\n盗賊\nシーフ\n盗賊,uc7,0\n"
2384         @"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"
2385         @"100,100,100,100,100,100,"
2386         @"100,100,100,100,100,100,100,100,100,100,"
2387         @"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";
2388         NSString *data8 = @"騎士\n騎士\nナイト\n騎士,uc8,0\n"
2389         @"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"
2390         @"70,70,90,80,50,100,"
2391         @"80,70,150,90,100,100,100,100,80,100,"
2392         @"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";
2393         NSString *data9 = @"狂戦士\n狂戦士\nバーサーカー\n狂戦士,uc9,0\n"
2394         @"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"
2395         @"100,100,100,100,100,100,"
2396         @"100,120,100,100,100,100,100,100,100,100,"
2397         @"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";
2398         NSString *data10 = @"闘技士\n闘技士\nグラディエーター\n闘技士,uc10,0\n"
2399         @"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"
2400         @"80,80,100,80,80,100,"
2401         @"80,80,120,80,80,100,100,100,80,100,"
2402         @"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";
2403         NSString *data11 = @"傭兵\n傭兵\nマーシナリ\n傭兵,uc11,0\n"
2404         @"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"
2405         @"100,100,100,100,100,100,"
2406         @"100,100,100,100,100,100,100,100,100,100,"
2407         @"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";
2408         NSString *data12 = @"弓士\n弓士\nアーチャー\n弓士,uc12,0\n"
2409         @"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"
2410         @"100,100,100,100,100,100,"
2411         @"100,100,100,100,100,100,100,100,100,100,"
2412         @"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";
2413         NSString *data13 = @"僧侶\n僧侶\nクレリック\n僧侶,uc13,0\n"
2414         @"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"
2415         @"100,100,100,100,100,100,"
2416         @"80,120,70,80,80,100,50,120,100,100,"
2417         @"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";
2418         NSString *data14 = @"魔術師\n魔術師\nウィザード\n魔術師,uc14,0\n"
2419         @"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"
2420         @"100,130,80,100,100,100,"
2421         @"70,50,60,80,90,80,100,70,100,100,"
2422         @"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";
2423         NSString *data15 = @"祈祷師\n祈祷師\nシャーマン\n祈祷師,uc15,0\n"
2424         @"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"
2425         @"100,100,100,100,100,100,"
2426         @"80,80,80,80,80,80,80,80,100,100,"
2427         @"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";
2428         NSString *data16 = @"奇術師\n奇術師\nドルイド\n奇術師,uc16,0\n"
2429         @"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"
2430         @"100,100,100,100,100,100,"
2431         @"80,90,70,60,80,60,100,60,80,80,"
2432         @"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";
2433         NSString *data17 = @"魔女\n魔女\nウィッチ\n魔女,uc17,0\n"
2434         @"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"
2435         @"100,100,100,100,100,100,"
2436         @"90,90,80,80,90,80,130,70,100,100,"
2437         @"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";
2438         NSString *data18 = @"侍\n侍\nサムライ\n侍,uc18,0\n"
2439         @"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"
2440         @"100,100,100,100,100,100,"
2441         @"100,100,100,100,100,100,100,100,100,100,"
2442         @"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";
2443         NSString *data19 = @"聖騎士\n聖騎士\nホワイトナイト\n聖騎士,uc19,0\n"
2444         @"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"
2445         @"70,70,80,80,50,100,"
2446         @"80,80,130,80,80,80,80,120,70,100,"
2447         @"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";
2448         NSString *data20 = @"黒騎士\n黒騎士\nブラックナイト\n黒騎士,uc20,0\n"
2449         @"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"
2450         @"60,60,60,60,50,100,"
2451         @"80,70,130,80,80,80,150,50,60,100,"
2452         @"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";
2453         NSString *data21 = @"亡霊騎士\n亡霊騎士\nスタンジャンナイト\n亡霊騎士,uc21,0\n"
2454         @"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"
2455         @"50,50,50,0,0,150,"
2456         @"50,0,50,50,50,0,200,30,150,0,"
2457         @"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";
2458         NSString *data22 = @"王国騎士\n王国騎士\nレギオン\n王国騎士,uc22,0\n"
2459         @"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"
2460         @"60,60,80,60,50,100,"
2461         @"80,80,120,80,80,80,80,80,60,100,"
2462         @"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";
2463         NSString *data23 = @"怪盗\n怪盗\nレンジャー\n怪盗,uc23,0\n"
2464         @"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"
2465         @"100,100,100,100,100,100,"
2466         @"100,100,100,100,100,100,100,100,100,100,"
2467         @"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";
2468         NSString *data24 = @"司祭\n司祭\nプリースト\n司祭,uc24,0\n"
2469         @"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"
2470         @"100,100,100,100,100,100,"
2471         @"80,80,80,80,80,80,50,90,100,100,"
2472         @"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";
2473         NSString *data25 = @"言語術士\n言語術士\nワーロック\n言語術士,uc25,0\n"
2474         @"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"
2475         @"100,100,100,100,100,100,"
2476         @"50,50,50,80,80,80,100,100,100,100,"
2477         @"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";
2478         NSString *data26 = @"聖女\n聖女\nセイレーン\n聖女,uc26,0\n"
2479         @"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"
2480         @"100,120,100,100,100,100,"
2481         @"60,70,50,60,80,80,60,80,80,100,"
2482         @"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";
2483         NSString *data27 = @"言霊使い\n言霊使い\nソーサレス\n言霊使い,uc27,0\n"
2484         @"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"
2485         @"100,120,100,100,100,100,"
2486         @"70,70,70,70,70,70,70,70,70,70,"
2487         @"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";
2488         NSString *data28 = @"聖戦士\n聖戦士\nヴァルキリー\n聖戦士,uc28,0\n"
2489         @"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"
2490         @"80,80,100,80,80,100,"
2491         @"80,80,70,80,70,80,80,90,80,90,"
2492         @"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";
2493         NSString *data29 = @"聖騎士長\n聖騎士長\nパラディン\n聖騎士長,uc29,0\n"
2494         @"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"
2495         @"60,60,60,60,50,100,"
2496         @"60,60,100,70,80,80,80,120,80,100,"
2497         @"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";
2498         NSString *data30 = @"暗黒騎士\n暗黒騎士\nテラーナイト\n暗黒騎士,uc30,0\n"
2499         @"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"
2500         @"50,50,50,50,50,100,"
2501         @"70,70,100,70,50,50,120,50,50,100,"
2502         @"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";
2503         NSString *data31 = @"教皇騎士\n教皇騎士\nテンプルナイト\n教皇騎士,uc31,0\n"
2504         @"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"
2505         @"60,60,60,60,50,100,"
2506         @"50,50,50,50,50,50,50,50,50,100,"
2507         @"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";
2508         NSString *data32 = @"狙撃手\n狙撃手\nスナイパー\n狙撃手,uc32,0\n"
2509         @"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"
2510         @"100,100,100,100,100,100,"
2511         @"100,100,100,100,100,100,100,100,100,100,"
2512         @"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";
2513         NSString *data33 = @"司教\n司教\nビショップ\n司教,uc33,0\n"
2514         @"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"
2515         @"100,100,100,100,100,100,"
2516         @"80,80,80,80,80,80,50,150,100,100,"
2517         @"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";
2518         NSString *data34 = @"賢者\n賢者\nセイジ\n賢者,uc34,0\n"
2519         @"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"
2520         @"70,70,70,80,80,100,"
2521         @"50,50,50,50,50,50,50,75,100,100,"
2522         @"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";
2523         NSString *data35 = @"将軍\n将軍\nジェネラル\n将軍,uc35,0\n"
2524     
2525         @"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"
2526         @"60,60,80,50,80,100,"
2527         @"70,70,80,70,70,70,80,80,70,100,"
2528         @"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";
2529         NSString *data36 = @"男爵\n男爵\nバロン\n男爵,uc36,0\n"
2530         @"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"
2531         @"50,50,50,50,25,100,"
2532         @"70,50,150,50,50,60,100,70,50,100,"
2533         @"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";
2534         NSString *data37 = @"魔導士\n魔導士\nアークメイジ\n魔導士,uc37,0\n"
2535         @"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"
2536         @"100,100,100,100,100,100,"
2537         @"50,50,50,50,50,50,70,50,50,70,"
2538         @"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";
2539         NSString *data38 = @"召喚師\n召喚師\nサモナー\n召喚師,uc38,0\n"
2540         @"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"
2541         @"100,100,100,100,100,100,"
2542         @"70,70,60,60,60,50,80,60,50,80,"
2543         @"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";
2544         NSString *data39 = @"古語術士\n古語術士\nルーンマスター\n古語術士,uc39,0\n"
2545         @"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"
2546         @"100,100,100,100,100,100,"
2547         @"50,50,50,50,50,50,50,50,50,50,"
2548         @"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";
2549         NSString *data40 = @"死霊使い\n死霊使い\nネクロマンサー\n死霊使い,uc40,0\n"
2550         @"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"
2551         @"100,100,100,100,100,100,"
2552         @"50,50,50,50,50,50,200,25,50,50,"
2553         @"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";
2554         NSString *data41 = @"占星術士\n占星術士\nアストロマンサー\n占星術士,uc41,0\n"
2555         @"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"
2556         @"80,80,80,80,80,80,"
2557         @"50,50,50,50,50,50,50,50,50,50,"
2558         @"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";
2559         NSString *data42 = @"元帥\n元帥\nマーシャル\n元帥,uc42,0\n"
2560         @"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"
2561         @"50,50,50,50,25,100,"
2562         @"80,60,150,50,60,70,100,70,50,100,"
2563         @"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";
2564         
2565         NSString *data43 = @"勇者\n勇者\nロード\n勇者,uc43,0\n"
2566         @"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"
2567         @"75,75,75,75,75,75,"
2568         @"75,75,75,75,75,75,75,75,75,75,"
2569         @"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";
2570         
2571         NSString *data44 = @"公爵\n公爵\nデューク\n公爵,uc44,0\n"
2572         @"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"
2573         @"50,50,50,50,25,100,"
2574         @"50,50,50,50,50,50,80,50,50,100,"
2575         @"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";
2576
2577         NSString *data45 = @"王子\n王子\nプリンス\n王子,uc45,0\n"
2578         @"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"
2579         @"80,80,80,80,80,80,"
2580         @"80,80,80,80,80,80,50,100,80,80,"
2581         @"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";
2582         NSString *data46 = @"王女\n王女\nプリンセス\n王女,uc46,0\n"
2583         @"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"
2584         @"100,100,100,100,100,100,"
2585         @"50,50,50,50,50,50,50,50,50,50,"
2586         @"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";
2587         NSString *data47 = @"枢機卿\n枢機卿\nカーディナル\n枢機卿,uc47,0\n"
2588         @"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"
2589         @"70,70,70,70,70,70,"
2590         @"50,50,50,50,50,50,25,50,50,50,"
2591         @"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";
2592         NSString *data48 = @"大司教\n大司教\nアークビショップ\n大司教,uc48,0\n"
2593         
2594         @"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"
2595         @"50,50,50,50,50,50,"
2596         @"50,50,50,50,50,50,50,50,50,50,"
2597         @"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";
2598         NSString *data49 = @"教皇\n教皇\nポープ\n教皇,uc49,0\n"
2599         @"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"
2600         @"100,100,100,100,100,100,"
2601         @"50,50,50,50,50,50,50,50,50,50,"
2602         @"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";
2603         NSString *data50 = @"王\n王\nキング\n王,uc50,0\n"
2604         @"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"
2605         @"80,80,80,80,80,80,"
2606         @"50,50,50,50,50,50,50,50,50,50,"
2607         @"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";
2608         NSString *data51 = @"女王\n女王\nクイーン\n女王,uc51,0\n"
2609         @"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"
2610         @"50,50,50,50,50,50,"
2611         @"50,50,50,50,50,50,50,50,50,50,"
2612         @"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";
2613
2614         NSString *data52 = @"皇帝\n皇帝\nエンペラー\n皇帝,uc52,0\n"
2615         @"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"
2616         @"50,50,50,50,50,50,"
2617         @"25,25,25,50,50,50,50,50,50,50,"
2618         @"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";
2619         NSString *data53 = @"三日月王\n三日月王\nクレセント\n三日月王,uc53,0\n"
2620         @"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"
2621         @"50,50,50,50,50,50,"
2622         @"25,25,25,25,25,25,50,25,25,50,"
2623         @"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";
2624         NSString *data54 = @"月の王\n月の王\nセレス\n月の王,uc54,0\n"
2625         @"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"
2626         @"25,25,25,25,25,50,"
2627         @"25,25,25,25,25,25,25,25,25,50,"
2628         @"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";
2629         NSString *data55 = @"日蝕王\n日蝕王\nイクリプス\n日蝕王,uc55,0\n"
2630         @"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"
2631         @"10,10,10,10,10,25,"
2632         @"10,10,10,10,10,25,25,25,25,25,"
2633         @"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";
2634         NSString *data56 = @"彗星王\n彗星王\nコメット\n彗星王,uc56,0\n"
2635         @"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"
2636         @"10,10,10,10,10,10,"
2637         @"10,10,10,10,10,10,10,10,10,10,"
2638         @"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";
2639         
2640         for (int i=1; i<=chipNumb; i++) {
2641             NSString *fdata = @"data/UnitChip/UCdata";
2642             
2643             fdata = [fdata stringByAppendingFormat:@"%d.txt", i];
2644             
2645             switch (i) {
2646                 case 1:
2647                     [data1 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2648                     break;
2649                 case 2:
2650                     [data2 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2651                     break;
2652                 case 3:
2653                     [data3 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2654                     break;
2655                 case 4:
2656                     [data4 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2657                     break;
2658                 case 5:
2659                     [data5 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2660                     break;
2661                 case 6:
2662                     [data6 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2663                     break;
2664                 case 7:
2665                     [data7 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2666                     break;
2667                 case 8:
2668                     [data8 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2669                     break;
2670                 case 9:
2671                     [data9 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2672                     break;
2673                 case 10:
2674                     [data10 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2675                     break;
2676                 case 11:
2677                     [data11 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2678                     break;
2679                 case 12:
2680                     [data12 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2681                     break;
2682                 case 13:
2683                     [data13 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2684                     break;
2685                 case 14:
2686                     [data14 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2687                     break;
2688                 case 15:
2689                     [data15 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2690                     break;
2691                 case 16:
2692                     [data16 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2693                     break;
2694                 case 17:
2695                     [data17 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2696                     break;
2697                 case 18:
2698                     [data18 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2699                     break;
2700                 case 19:
2701                     [data19 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2702                     break;
2703                 case 20:
2704                     [data20 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2705                     break;
2706                 case 21:
2707                     [data21 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2708                     break;
2709                 case 22:
2710                     [data22 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2711                     break;
2712                 case 23:
2713                     [data23 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2714                     break;
2715                 case 24:
2716                     [data24 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2717                     break;
2718                 case 25:
2719                     [data25 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2720                     break;
2721                 case 26:
2722                     [data26 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2723                     break;
2724                 case 27:
2725                     [data27 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2726                     break;
2727                 case 28:
2728                     [data28 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2729                     break;
2730                 case 29:
2731                     [data29 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2732                     break;
2733                 case 30:
2734                     [data30 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2735                     break;
2736                 case 31:
2737                     [data31 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2738                     break;
2739                 case 32:
2740                     [data32 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2741                     break;
2742                 case 33:
2743                     [data33 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2744                     break;
2745                 case 34:
2746                     [data34 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2747                     break;
2748                 case 35:
2749                     [data35 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2750                     break;
2751                 case 36:
2752                     [data36 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2753                     break;
2754                 case 37:
2755                     [data37 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2756                     break;
2757                 case 38:
2758                     [data38 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2759                     break;
2760                 case 39:
2761                     [data39 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2762                     break;
2763                 case 40:
2764                     [data40 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2765                     break;
2766                 case 41:
2767                     [data41 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2768                     break;
2769                 case 42:
2770                     [data42 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2771                     break;
2772                 case 43:
2773                     [data43 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2774                     break;
2775                 case 44:
2776                     [data44 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2777                     break;
2778                 case 45:
2779                     [data45 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2780                     break;
2781                 case 46:
2782                     [data46 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2783                     break;
2784                 case 47:
2785                     [data47 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2786                     break;
2787                 case 48:
2788                     [data48 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2789                     break;
2790                 case 49:
2791                     [data49 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2792                     break;
2793                 case 50:
2794                     [data50 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2795                     break;
2796                 case 51:
2797                     [data51 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2798                     break;
2799                 case 52:
2800                     [data52 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2801                     break;
2802                 case 53:
2803                     [data53 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2804                     break;
2805                 case 54:
2806                     [data54 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2807                     break;
2808                 case 55:
2809                     [data55 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2810                     break;
2811                 case 56:
2812                     [data56 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
2813                     break;
2814                 
2815                 
2816                 default:
2817                     
2818                     break;
2819             }
2820             
2821         }
2822         
2823     }
2824     
2825     
2826     
2827     fileData = [NSString stringWithContentsOfFile:pathUCP encoding:NSUTF8StringEncoding error:nil];
2828     fileDataArray = [fileData componentsSeparatedByString:@"\n"];
2829     int instantNum = [[fileDataArray objectAtIndex:0] intValue];
2830     
2831     chipNumb = instantNum;
2832     UCN = (int)chipNumb;
2833     
2834     for (int i=0; i<chipNumb; i++) {
2835         NSString *path = @"data/AttackList/ALdata";
2836         
2837         path = [path stringByAppendingFormat:@"%dE", i+1];
2838         
2839         [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
2840         
2841         
2842         
2843         NSString *fdata = @"data/UnitChip/UCdata";
2844         
2845         fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
2846         
2847         fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil];
2848         fileDataArray = [fileData componentsSeparatedByString:@"\n"];
2849         
2850         UC[i].name = [[fileDataArray objectAtIndex:0] retain];
2851         UC[i].nameNick = [[fileDataArray objectAtIndex:1] retain];
2852         UC[i].nameClass = [[fileDataArray objectAtIndex:2] retain];
2853         
2854         NSArray *items = [[fileDataArray objectAtIndex:3] componentsSeparatedByString:@","];
2855         
2856         UC[i].nameRecognition = [[items objectAtIndex:0] retain];
2857         UC[i].nameID = [[items objectAtIndex:1] retain];
2858         UC[i].aura = [[items objectAtIndex:2] intValue];
2859         
2860         items = [[fileDataArray objectAtIndex:4] componentsSeparatedByString:@","];
2861         
2862         UC[i].S_M.HP = [[items objectAtIndex:0] intValue];
2863         UC[i].S_M.MP = [[items objectAtIndex:1] intValue];
2864         UC[i].S_M.AP = [[items objectAtIndex:2] intValue];
2865         UC[i].S_M.WT = [[items objectAtIndex:3] intValue];
2866         UC[i].S_M.BP = [[items objectAtIndex:4] intValue];
2867         
2868         items = [[fileDataArray objectAtIndex:5] componentsSeparatedByString:@","];
2869         
2870         UC[i].S_M.STR = [[items objectAtIndex:0] intValue];
2871         UC[i].S_M.VIT = [[items objectAtIndex:1] intValue];
2872         UC[i].S_M.AGI = [[items objectAtIndex:2] intValue];
2873         UC[i].S_M.DEX = [[items objectAtIndex:3] intValue];
2874         UC[i].S_M.MEN = [[items objectAtIndex:4] intValue];
2875         UC[i].S_M.INT = [[items objectAtIndex:5] intValue];
2876         UC[i].S_M.LUK = [[items objectAtIndex:6] intValue];
2877         UC[i].S_M.MOV = [[items objectAtIndex:7] intValue];
2878
2879         items = [[fileDataArray objectAtIndex:6] componentsSeparatedByString:@","];
2880         
2881         UC[i].S_M.MEL = [[items objectAtIndex:0] intValue];
2882         UC[i].S_M.MIS = [[items objectAtIndex:1] intValue];
2883         UC[i].S_M.HIT = [[items objectAtIndex:2] intValue];
2884         UC[i].S_M.DOD = [[items objectAtIndex:3] intValue];
2885         UC[i].S_M.REA = [[items objectAtIndex:4] intValue];
2886         UC[i].S_M.SKI = [[items objectAtIndex:5] intValue];
2887         
2888         items = [[fileDataArray objectAtIndex:7] componentsSeparatedByString:@","];
2889         
2890         UC[i].S_M.ATK = [[items objectAtIndex:0] intValue];
2891         UC[i].S_M.DEF = [[items objectAtIndex:1] intValue];
2892         UC[i].S_M.CAP = [[items objectAtIndex:2] intValue];
2893         UC[i].S_M.ACU = [[items objectAtIndex:3] intValue];
2894         UC[i].S_M.EVA = [[items objectAtIndex:4] intValue];
2895         
2896         items = [[fileDataArray objectAtIndex:8] componentsSeparatedByString:@","];
2897         
2898         UC[i].S_M.typeMONS = [[items objectAtIndex:0] intValue];
2899         UC[i].S_M.typeMOVE = [[items objectAtIndex:1] intValue];
2900         UC[i].S_M.cSupply = [[items objectAtIndex:2] intValue];
2901         UC[i].S_M.cFood = [[items objectAtIndex:3] intValue];
2902         UC[i].S_M.cMoney = [[items objectAtIndex:4] intValue];
2903         UC[i].S_M.cWT = [[items objectAtIndex:5] intValue];
2904         
2905         items = [[fileDataArray objectAtIndex:9] componentsSeparatedByString:@","];
2906         
2907         UC[i].R_M.blow = [[items objectAtIndex:0] intValue];
2908         UC[i].R_M.slash = [[items objectAtIndex:1] intValue];
2909         UC[i].R_M.stub = [[items objectAtIndex:2] intValue];
2910         UC[i].R_M.arrow = [[items objectAtIndex:3] intValue];
2911         UC[i].R_M.gun = [[items objectAtIndex:4] intValue];
2912         UC[i].R_M.shell = [[items objectAtIndex:5] intValue];
2913         
2914         UC[i].R_M.flame = [[items objectAtIndex:6] intValue];
2915         UC[i].R_M.cold = [[items objectAtIndex:7] intValue];
2916         UC[i].R_M.electoric = [[items objectAtIndex:8] intValue];
2917         UC[i].R_M.air = [[items objectAtIndex:9] intValue];
2918         UC[i].R_M.water = [[items objectAtIndex:10] intValue];
2919         UC[i].R_M.gas = [[items objectAtIndex:11] intValue];
2920         UC[i].R_M.holy = [[items objectAtIndex:12] intValue];
2921         UC[i].R_M.dark = [[items objectAtIndex:13] intValue];
2922         UC[i].R_M.explosion = [[items objectAtIndex:14] intValue];
2923         UC[i].R_M.blood = [[items objectAtIndex:15] intValue];
2924         
2925         UC[i].R_M.paralysis = [[items objectAtIndex:16] intValue];
2926         UC[i].R_M.confusion = [[items objectAtIndex:17] intValue];
2927         UC[i].R_M.poison = [[items objectAtIndex:18] intValue];
2928         UC[i].R_M.sleep = [[items objectAtIndex:19] intValue];
2929         UC[i].R_M.charm = [[items objectAtIndex:20] intValue];
2930         UC[i].R_M.silent = [[items objectAtIndex:21] intValue];
2931         
2932         items = [[fileDataArray objectAtIndex:10] componentsSeparatedByString:@","];
2933         
2934         UC[i].iName = [[items objectAtIndex:0] retain];
2935         //NSLog(@"%@", UC[i].iName);
2936         UC[i].iNameb = [[items objectAtIndex:1] retain];
2937         
2938         NSString *imgName = @"ucb";
2939         imgName = [imgName stringByAppendingFormat:@"%d", i+1];
2940         UC[i].img = [[NSImage imageNamed:imgName] retain];
2941         
2942         
2943         imgName = [NSString stringWithFormat:@"ucb"];
2944         imgName = [imgName stringByAppendingFormat:@"%d", i+1];
2945         UC[i].imgb = [[NSImage imageNamed:imgName] retain];
2946         
2947         NSString *imagePath = @"data/UnitChip/img/uc";
2948         imagePath = [imagePath stringByAppendingFormat:@"%d", i+1];
2949         NSData *imgData = [NSData dataWithContentsOfFile:imagePath];
2950         
2951         if(imgData)
2952             UC[i].img = [[NSImage alloc] initWithData:[[NSFileHandle fileHandleForReadingAtPath:imagePath] readDataToEndOfFile]];
2953         
2954         imagePath = [NSString stringWithFormat:@"data/UnitChip/img/ucb"];
2955         imagePath = [imagePath stringByAppendingFormat:@"%d", i+1];
2956         imgData = [NSData dataWithContentsOfFile:imagePath];
2957         
2958         if(imgData)
2959             UC[i].imgb = [[NSImage alloc] initWithData:[[NSFileHandle fileHandleForReadingAtPath:imagePath] readDataToEndOfFile]];
2960
2961     
2962         UC[i].S_C = UC[i].S_M;
2963         UC[i].R_C = UC[i].R_M;
2964         
2965         SKILL *SKtop = NULL;
2966         
2967         for (int k = 12;![[fileDataArray objectAtIndex:k] isEqualToString:@"----"];k++) {
2968             items = [[fileDataArray objectAtIndex:k] componentsSeparatedByString:@","];
2969             if(k == 12) {UC[i].S = calloc(1, sizeof(SKILL));
2970                 SKtop = UC[i].S;
2971             }
2972             
2973             UC[i].S->type = [[items objectAtIndex:0] intValue];
2974             
2975             int ins1 = 0;
2976             int ins2 = 0;
2977             int ins3 = 0;
2978             for(int l= 0;[items count] > 1+l;l++){
2979                 if(l%3 == 0) {
2980                     UC[i].S->list[ins1] = [[items objectAtIndex:1+l] intValue];
2981                     ins1++;
2982                 }
2983                 if(l%3 == 1) {
2984                     UC[i].S->cost[ins2] = [[items objectAtIndex:1+l] intValue];
2985                     ins2++;
2986                 }
2987                 if(l%3 == 2) {
2988                     UC[i].S->Lv[ins3] = [[items objectAtIndex:1+l] intValue];
2989                     ins3++;
2990                 }
2991             }
2992             
2993             UC[i].S->next = calloc(1, sizeof(SKILL));
2994             if(![[fileDataArray objectAtIndex:k+1] isEqualToString:@"----"]) UC[i].S = UC[i].S->next;
2995         }
2996         if(UC[i].S) UC[i].S->next = NULL;
2997         UC[i].S = SKtop;
2998         
2999         int oopStart = 12;
3000         for (int k = 12;![[fileDataArray objectAtIndex:k] isEqualToString:@"----"];k++) {
3001             oopStart++;
3002         }
3003         
3004         items = [[fileDataArray objectAtIndex:oopStart+1] componentsSeparatedByString:@","];
3005         
3006         UC[i].CM.A = [[items objectAtIndex:0] intValue];
3007         UC[i].CM.B = [[items objectAtIndex:1] intValue];
3008         UC[i].CM.C = [[items objectAtIndex:2] intValue];
3009         UC[i].CM.D = [[items objectAtIndex:3] intValue];
3010         
3011         items = [[fileDataArray objectAtIndex:oopStart+3] componentsSeparatedByString:@","];
3012         
3013         if([[items objectAtIndex:0] intValue] >= 0){
3014             UC[i].eHandL = EQ[[[items objectAtIndex:0] intValue]];
3015             UC[i].eHandL.A = EQ[[[items objectAtIndex:0] intValue]].A;
3016             UC[i].eHandLflag = true;
3017             if(UC[i].eHandL.type == 7)
3018                 UC[i].eHandRflag = true;
3019         }
3020         if([[items objectAtIndex:1] intValue] >= 0){
3021             UC[i].eHandR = EQ[[[items objectAtIndex:1] intValue]];
3022             UC[i].eHandR.A = EQ[[[items objectAtIndex:1] intValue]].A;
3023             UC[i].eHandRflag = true;
3024             if(UC[i].eHandR.type == 7)
3025                 UC[i].eHandLflag = true;
3026         }
3027         if([[items objectAtIndex:2] intValue] >= 0){
3028             UC[i].eHead = EQ[[[items objectAtIndex:2] intValue]];
3029             UC[i].eHeadflag = true;
3030         }
3031         if([[items objectAtIndex:3] intValue] >= 0){
3032             UC[i].eBody = EQ[[[items objectAtIndex:3] intValue]];
3033             UC[i].eBodyflag = true;
3034         }
3035         if([[items objectAtIndex:4] intValue] >= 0){
3036             UC[i].eFoot = EQ[[[items objectAtIndex:4] intValue]];
3037             UC[i].eFootflag = true;
3038         }
3039         if([[items objectAtIndex:5] intValue] >= 0){
3040             UC[i].eArm = EQ[[[items objectAtIndex:5] intValue]];
3041             UC[i].eArmflag = true;
3042         }
3043         
3044         items = [[fileDataArray objectAtIndex:oopStart+4] componentsSeparatedByString:@","];
3045         
3046         
3047         items = [[fileDataArray objectAtIndex:oopStart+5] componentsSeparatedByString:@","];
3048         
3049         UC[i].chipNumb = i;
3050     }
3051     
3052     
3053     InitialFlag = true;
3054 }
3055
3056 -(void)saveData{
3057     NSString *directoryPath;
3058     
3059     directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
3060     [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
3061     
3062     char *cwd;
3063     cwd = getcwd(NULL, 0);
3064     
3065     
3066     
3067     for (int i=0; i<chipNumb; i++) {
3068         NSString *fdata = @"data/UnitChip/UCdata";
3069         fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
3070         
3071         NSString *fileData = @"";
3072         
3073         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].name]] stringByAppendingString:@"\n"];
3074         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].nameNick]] stringByAppendingString:@"\n"];
3075         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].nameClass]] stringByAppendingString:@"\n"];
3076         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].nameRecognition]] stringByAppendingString:@","];
3077         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].nameID]] stringByAppendingString:@","];
3078         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].aura]] stringByAppendingString:@"\n"];
3079         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.HP]] stringByAppendingString:@","];
3080         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.MP]] stringByAppendingString:@","];
3081         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.AP]] stringByAppendingString:@","];
3082         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.WT]] stringByAppendingString:@","];
3083         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.BP]] stringByAppendingString:@"\n"];
3084         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.STR]] stringByAppendingString:@","];
3085         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.VIT]] stringByAppendingString:@","];
3086         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.AGI]] stringByAppendingString:@","];
3087         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.DEX]] stringByAppendingString:@","];
3088         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.MEN]] stringByAppendingString:@","];
3089         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.INT]] stringByAppendingString:@","];
3090         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.LUK]] stringByAppendingString:@","];
3091         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].S_M.MOV]] stringByAppendingString:@"\n"];
3092         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.MEL]] stringByAppendingString:@","];
3093         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.MIS]] stringByAppendingString:@","];
3094         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.HIT]] stringByAppendingString:@","];
3095         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.DOD]] stringByAppendingString:@","];
3096         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.REA]] stringByAppendingString:@","];
3097         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.SKI]] stringByAppendingString:@"\n"];
3098         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.ATK]] stringByAppendingString:@","];
3099         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.DEF]] stringByAppendingString:@","];
3100         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.CAP]] stringByAppendingString:@","];
3101         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.ACU]] stringByAppendingString:@","];
3102         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.EVA]] stringByAppendingString:@"\n"];
3103         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].S_M.typeMONS]] stringByAppendingString:@","];
3104         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].S_M.typeMOVE]] stringByAppendingString:@","];
3105         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].S_M.cSupply]] stringByAppendingString:@","];
3106         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].S_M.cFood]] stringByAppendingString:@","];
3107         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].S_M.cMoney]] stringByAppendingString:@","];
3108         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].S_M.cWT]] stringByAppendingString:@"\n"];
3109         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.blow]] stringByAppendingString:@","];
3110         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.slash]] stringByAppendingString:@","];
3111         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.stub]] stringByAppendingString:@","];
3112         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.arrow]] stringByAppendingString:@","];
3113         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.gun]] stringByAppendingString:@","];
3114         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.shell]] stringByAppendingString:@","];
3115         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.flame]] stringByAppendingString:@","];
3116         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.cold]] stringByAppendingString:@","];
3117         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.electoric]] stringByAppendingString:@","];
3118         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.air]] stringByAppendingString:@","];
3119         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.water]] stringByAppendingString:@","];
3120         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.gas]] stringByAppendingString:@","];
3121         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.holy]] stringByAppendingString:@","];
3122         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.dark]] stringByAppendingString:@","];
3123         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.explosion]] stringByAppendingString:@","];
3124         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.blood]] stringByAppendingString:@","];
3125         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.paralysis]] stringByAppendingString:@","];
3126         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.confusion]] stringByAppendingString:@","];
3127         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.poison]] stringByAppendingString:@","];
3128         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.sleep]] stringByAppendingString:@","];
3129         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.charm]] stringByAppendingString:@","];
3130         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.silent]] stringByAppendingString:@"\n"];
3131         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].iName]] stringByAppendingString:@","];
3132         fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].iNameb]] stringByAppendingString:@"\n"];
3133         
3134         fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"----\n"]];
3135         
3136         SKILL *SKtop;
3137         
3138         SKtop = UC[i].S;
3139         while(UC[i].S){
3140             fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].S->type]];
3141             for (int j = 0;UC[i].S->list[j] > 0;j++) {
3142                 fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d", UC[i].S->list[j]]];
3143                 fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%g", UC[i].S->cost[j]]];
3144                 fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d", UC[i].S->Lv[j]]];
3145             }
3146             fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"\n"]];
3147             UC[i].S = UC[i].S->next;
3148         }UC[i].S = SKtop;
3149         
3150         
3151         
3152         fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"----\n"]];
3153         
3154         fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].CM.A]];
3155         fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d", UC[i].CM.B]];
3156         fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d", UC[i].CM.C]];
3157         fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d", UC[i].CM.D]];
3158         fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"\n"]];
3159         
3160         fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"----\n"]];
3161         
3162         
3163         if(UC[i].eHandL.nameID){
3164             for(int j = 0;j < eItemNum;j++){
3165                 if([UC[i].eHandL.nameID isEqualToString:EQ[j].nameID]){
3166                     fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"%d",j]];
3167                 }
3168             }
3169         }else{
3170             fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"-1"]];
3171         }
3172         
3173         if(UC[i].eHandR.nameID){
3174             for(int j = 0;j < eItemNum;j++){
3175                 if([UC[i].eHandR.nameID isEqualToString:EQ[j].nameID]){
3176                     fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d",j]];
3177                 }
3178             }
3179         }else{
3180             fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",-1"]];
3181         }
3182         
3183         if(UC[i].eHead.nameID){
3184             for(int j = 0;j < eItemNum;j++){
3185                 if([UC[i].eHead.nameID isEqualToString:EQ[j].nameID]){
3186                     fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d",j]];
3187                 }
3188             }
3189         }else{
3190             fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",-1"]];
3191         }
3192         
3193         if(UC[i].eBody.nameID){
3194             for(int j = 0;j < eItemNum;j++){
3195                 if([UC[i].eBody.nameID isEqualToString:EQ[j].nameID]){
3196                     fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d",j]];
3197                 }
3198             }
3199         }else{
3200             fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",-1"]];
3201         }
3202         
3203         if(UC[i].eFoot.nameID){
3204             for(int j = 0;j < eItemNum;j++){
3205                 if([UC[i].eFoot.nameID isEqualToString:EQ[j].nameID]){
3206                     fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d",j]];
3207                 }
3208             }
3209         }else{
3210             fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",-1"]];
3211         }
3212         
3213         if(UC[i].eArm.nameID){
3214             for(int j = 0;j < eItemNum;j++){
3215                 if([UC[i].eArm.nameID isEqualToString:EQ[j].nameID]){
3216                     fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d",j]];
3217                 }
3218             }
3219         }else{
3220             fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",-1"]];
3221         }
3222         
3223         fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"\n"]];
3224         
3225         //装飾品は改行して入る予定
3226         fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"装飾品\n"]];
3227         //消耗品は改行して入る予定
3228         fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"消耗品\n"]];
3229         
3230         fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"----\n"]];
3231         
3232         [fileData writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
3233         
3234         if(1){
3235         NSData *f2Data = [UC[i].img TIFFRepresentation];
3236         NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:f2Data];
3237         f2Data = [brep representationUsingType:NSPNGFileType properties:nil];
3238         
3239         NSString *bcPath = @"data/UnitChip/img/uc";
3240         bcPath = [bcPath stringByAppendingFormat:@"%d", i + 1];
3241         
3242         [f2Data writeToFile:bcPath atomically:YES];
3243         }
3244         
3245         if(1){
3246         NSData *f2Data = [UC[i].imgb TIFFRepresentation];
3247         NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:f2Data];
3248         f2Data = [brep representationUsingType:NSPNGFileType properties:nil];
3249         
3250         NSString *bcPath = @"data/UnitChip/img/ucb";
3251         bcPath = [bcPath stringByAppendingFormat:@"%d", i + 1];
3252         
3253         [f2Data writeToFile:bcPath atomically:YES];
3254         }
3255     }
3256     
3257     
3258 }
3259
3260
3261 -(void)saveDataAL{
3262
3263     NSString *directoryPath;
3264     
3265     directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
3266     [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
3267
3268
3269     for (int i=0; i<chipNumb; i++) {
3270         NSString *fdata = @"data/AttackList/ALdata";
3271         fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
3272         
3273         NSString *fileData = @"";
3274     
3275         ATTACK *aTop = UC[i].A;
3276         int Acnt = 0;
3277         while (UC[i].A) {
3278             if(Acnt > 0) fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"--------"]] stringByAppendingString:@"\n"];
3279             
3280             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].A->name]] stringByAppendingString:@","];
3281             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->indexE]] stringByAppendingString:@"\n"];
3282             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->trig]] stringByAppendingString:@","];
3283             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->type]] stringByAppendingString:@","];
3284             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->melee]] stringByAppendingString:@","];
3285             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->P]] stringByAppendingString:@","];
3286             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->fixType]] stringByAppendingString:@"\n"];
3287             
3288             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->rangeA]] stringByAppendingString:@","];
3289             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->rangeB]] stringByAppendingString:@","];
3290             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->extent]] stringByAppendingString:@","];
3291             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->bullet]] stringByAppendingString:@","];
3292             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->hitCount]] stringByAppendingString:@","];
3293             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->successRate]] stringByAppendingString:@","];
3294             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->vigor]] stringByAppendingString:@","];
3295             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->hitPercent]] stringByAppendingString:@"\n"];
3296     
3297             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->costType]] stringByAppendingString:@","];
3298             if(UC[i].A->costType == 0){
3299                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].A->MP]] stringByAppendingString:@","];
3300                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->pMP]] stringByAppendingString:@","];
3301             }else if(UC[i].A->costType == 1){
3302                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].A->AP]] stringByAppendingString:@","];
3303                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->pAP]] stringByAppendingString:@","];
3304             }else if(UC[i].A->costType == 2){
3305                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].A->HP]] stringByAppendingString:@","];
3306                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->pHP]] stringByAppendingString:@","];
3307             }
3308             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->cSupply]] stringByAppendingString:@","];
3309             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->cFood]] stringByAppendingString:@","];
3310             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->cMoney]] stringByAppendingString:@"\n"];
3311         
3312             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->riku]] stringByAppendingString:@","];
3313             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->chu]] stringByAppendingString:@","];
3314             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->umi]] stringByAppendingString:@","];
3315             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->sora]] stringByAppendingString:@","];
3316             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->dmgExtend]] stringByAppendingString:@","];
3317             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->imagine]] stringByAppendingString:@"\n"];
3318         
3319             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@,%d", UC[i].A->cmd, UC[i].A->hasei]] stringByAppendingString:@"\n"];
3320             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@,%d", UC[i].A->AN.movName, UC[i].A->AN.frame]] stringByAppendingString:@"\n"];
3321             if(UC[i].A->msg){
3322                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"];
3323                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].A->msg]] stringByAppendingString:@"\n"];
3324             }
3325             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"];
3326         
3327             DAMAGE *dTop = UC[i].A->D;
3328             while (UC[i].A->D) {
3329                 if(UC[i].A->D->count <= 0 && UC[i].A->D->sort == 0){
3330                     UC[i].A->D = NULL;
3331                     break;
3332                 }
3333                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"];
3334                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->type]] stringByAppendingString:@","];
3335                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].A->D->count]] stringByAppendingString:@","];
3336                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].A->D->pCount]] stringByAppendingString:@"\n"];
3337             
3338                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->seed]] stringByAppendingString:@","];
3339                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->sort]] stringByAppendingString:@","];
3340                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->continium]] stringByAppendingString:@","];
3341                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->absolute]] stringByAppendingString:@","];
3342                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->beam]] stringByAppendingString:@","];
3343                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->noSizeFix]] stringByAppendingString:@","];
3344                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->fix]] stringByAppendingString:@"\n"];
3345                 
3346                 UC[i].A->D = UC[i].A->D->next;
3347             }UC[i].A->D = dTop;
3348         
3349             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"];
3350         
3351             DMGEXTEND *eTop = UC[i].A->E;
3352             while (UC[i].A->E) {
3353                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"];
3354                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->E->rate]] stringByAppendingString:@","];
3355                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->E->hit]] stringByAppendingString:@","];
3356                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->E->atkHit]] stringByAppendingString:@"\n"];
3357                 
3358                 UC[i].A->E = UC[i].A->E->next;
3359             }UC[i].A->E = eTop;
3360         
3361             
3362             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"];
3363             
3364             ANI *ani = UC[i].A->AN.ANI;
3365             ANI *aniTop = ani;
3366             
3367             while (ani) {
3368                 
3369                 if(!ani->name)
3370                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"(null)"]] stringByAppendingString:@","];
3371                 else{
3372                     fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", ani->name]] stringByAppendingString:@","];
3373                 }
3374                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", ani->ax]] stringByAppendingString:@","];
3375                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", ani->ay]] stringByAppendingString:@","];
3376                 if(!ani->names)
3377                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"(null)"]] stringByAppendingString:@"\n"];
3378                 else{
3379                     fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", ani->names]] stringByAppendingString:@"\n"];
3380                 }
3381                 
3382                 ani = ani->next;
3383             }
3384             
3385             ani = aniTop;
3386             
3387             UC[i].A = UC[i].A->next;
3388             Acnt++;
3389         }UC[i].A = aTop;
3390         
3391         
3392         
3393         
3394         [fileData writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
3395     }
3396     
3397 }
3398
3399 -(void)saveDataAL2{
3400     
3401     NSString *directoryPath;
3402     
3403     directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
3404     [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
3405     
3406     
3407     for (int i=0; i<LCN; i++) {
3408         NSString *fdata = @"data/AttackList2/LALdata";
3409         fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
3410         
3411         NSString *fileData = @"";
3412         
3413         ATTACK *aTop = LC[i].A;
3414         int Acnt = 0;
3415         while (LC[i].A) {
3416             
3417             if(Acnt > 0) fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"--------"]] stringByAppendingString:@"\n"];
3418             
3419             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", LC[i].A->name]] stringByAppendingString:@"\n"];
3420             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->trig]] stringByAppendingString:@","];
3421             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->type]] stringByAppendingString:@","];
3422             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->melee]] stringByAppendingString:@","];
3423             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->P]] stringByAppendingString:@"\n"];
3424             
3425             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->rangeA]] stringByAppendingString:@","];
3426             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->rangeB]] stringByAppendingString:@","];
3427             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->extent]] stringByAppendingString:@","];
3428             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->bullet]] stringByAppendingString:@","];
3429             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->hitCount]] stringByAppendingString:@","];
3430             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->successRate]] stringByAppendingString:@","];
3431             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->vigor]] stringByAppendingString:@","];
3432             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->hitPercent]] stringByAppendingString:@"\n"];
3433             
3434             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->costType]] stringByAppendingString:@","];
3435             if(LC[i].A->costType == 0){
3436                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", LC[i].A->EN]] stringByAppendingString:@","];
3437                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->pEN]] stringByAppendingString:@","];
3438             }else if(LC[i].A->costType == 1){
3439                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", LC[i].A->HP]] stringByAppendingString:@","];
3440                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->pHP]] stringByAppendingString:@","];
3441             }
3442             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->cSupply]] stringByAppendingString:@","];
3443             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->cFood]] stringByAppendingString:@","];
3444             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->cMoney]] stringByAppendingString:@"\n"];
3445             
3446             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->riku]] stringByAppendingString:@","];
3447             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->chu]] stringByAppendingString:@","];
3448             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->umi]] stringByAppendingString:@","];
3449             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->sora]] stringByAppendingString:@","];
3450             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->dmgExtend]] stringByAppendingString:@","];
3451             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->imagine]] stringByAppendingString:@"\n"];
3452             
3453             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@,%d", LC[i].A->cmd, LC[i].A->hasei]] stringByAppendingString:@"\n"];
3454             
3455             if(LC[i].A->msg){
3456                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"];
3457                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", LC[i].A->msg]] stringByAppendingString:@"\n"];
3458             }
3459             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"];
3460             
3461             DAMAGE *dTop = LC[i].A->D;
3462             while (LC[i].A->D) {
3463                 if(LC[i].A->D->count <= 0 && LC[i].A->D->sort == 0){
3464                     LC[i].A->D = NULL;
3465                     break;
3466                 }
3467                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"];
3468                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->type]] stringByAppendingString:@","];
3469                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", LC[i].A->D->count]] stringByAppendingString:@","];
3470                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", LC[i].A->D->pCount]] stringByAppendingString:@"\n"];
3471                 
3472                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->seed]] stringByAppendingString:@","];
3473                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->sort]] stringByAppendingString:@","];
3474                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->continium]] stringByAppendingString:@","];
3475                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->absolute]] stringByAppendingString:@","];
3476                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->beam]] stringByAppendingString:@","];
3477                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->noSizeFix]] stringByAppendingString:@","];
3478                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->fix]] stringByAppendingString:@"\n"];
3479                 
3480                 LC[i].A->D = LC[i].A->D->next;
3481             }LC[i].A->D = dTop;
3482             
3483             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"];
3484             
3485             DMGEXTEND *eTop = LC[i].A->E;
3486             while (LC[i].A->E) {
3487                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"];
3488                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->E->rate]] stringByAppendingString:@","];
3489                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->E->hit]] stringByAppendingString:@","];
3490                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->E->atkHit]] stringByAppendingString:@"\n"];
3491                 
3492                 LC[i].A->E = LC[i].A->E->next;
3493             }LC[i].A->E = eTop;
3494             
3495             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"];
3496             
3497             ANI *ani = UC[i].A->AN.ANI;
3498             ANI *aniTop = ani;
3499             
3500             while (ani) {
3501                 
3502                 if(ani->name)
3503                     fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", ani->name]] stringByAppendingString:@","];
3504                 else{
3505                     fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"(null)"]] stringByAppendingString:@","];
3506                 }
3507                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", ani->ax]] stringByAppendingString:@","];
3508                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", ani->ay]] stringByAppendingString:@","];
3509                 if(ani->names)
3510                     fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", ani->names]] stringByAppendingString:@"\n"];
3511                 else{
3512                     fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"(null)"]] stringByAppendingString:@"\n"];
3513                 }
3514                 
3515                 ani = ani->next;
3516             }
3517             
3518             ani = aniTop;
3519             
3520             UC[i].A = UC[i].A->next;
3521             Acnt++;
3522         }LC[i].A = aTop;
3523         
3524         
3525         
3526         
3527         [fileData writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
3528     }
3529     
3530 }
3531
3532 -(void)saveDataALEQ{
3533     
3534     NSString *directoryPath;
3535     
3536     directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
3537     [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
3538     
3539     
3540     for (int i=0; i<itemNumb; i++) {
3541         NSString *fdata = @"data/AttackList3/IALdata";
3542         fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
3543         
3544         NSString *fileData = @"";
3545         
3546         ATTACK *aeTop = EQ[i].A;
3547         int Acnt = 0;
3548         while (EQ[i].A) {
3549             if(Acnt > 0) fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"--------"]] stringByAppendingString:@"\n"];
3550             
3551             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", EQ[i].A->name]] stringByAppendingString:@","];
3552             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->indexE]] stringByAppendingString:@"\n"];
3553             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->trig]] stringByAppendingString:@","];
3554             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->type]] stringByAppendingString:@","];
3555             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->melee]] stringByAppendingString:@","];
3556             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->P]] stringByAppendingString:@","];
3557             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->fixType]] stringByAppendingString:@"\n"];
3558             
3559             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->rangeA]] stringByAppendingString:@","];
3560             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->rangeB]] stringByAppendingString:@","];
3561             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->extent]] stringByAppendingString:@","];
3562             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->bullet]] stringByAppendingString:@","];
3563             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->hitCount]] stringByAppendingString:@","];
3564             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->successRate]] stringByAppendingString:@","];
3565             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->vigor]] stringByAppendingString:@","];
3566             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->hitPercent]] stringByAppendingString:@"\n"];
3567             
3568             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->costType]] stringByAppendingString:@","];
3569             if(EQ[i].A->costType == 0){
3570                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].A->MP]] stringByAppendingString:@","];
3571                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->pMP]] stringByAppendingString:@","];
3572             }else if(EQ[i].A->costType == 1){
3573                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].A->AP]] stringByAppendingString:@","];
3574                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->pAP]] stringByAppendingString:@","];
3575             }else if(EQ[i].A->costType == 2){
3576                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].A->HP]] stringByAppendingString:@","];
3577                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->pHP]] stringByAppendingString:@","];
3578             }
3579             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->cSupply]] stringByAppendingString:@","];
3580             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->cFood]] stringByAppendingString:@","];
3581             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->cMoney]] stringByAppendingString:@"\n"];
3582             
3583             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->riku]] stringByAppendingString:@","];
3584             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->chu]] stringByAppendingString:@","];
3585             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->umi]] stringByAppendingString:@","];
3586             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->sora]] stringByAppendingString:@","];
3587             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->dmgExtend]] stringByAppendingString:@","];
3588             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->imagine]] stringByAppendingString:@"\n"];
3589             
3590             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@,%d", EQ[i].A->cmd, EQ[i].A->hasei]] stringByAppendingString:@"\n"];
3591             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@,%d", EQ[i].A->AN.movName, EQ[i].A->AN.frame]] stringByAppendingString:@"\n"];
3592             if(EQ[i].A->msg){
3593                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"];
3594                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", EQ[i].A->msg]] stringByAppendingString:@"\n"];
3595             }
3596             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"];
3597             
3598             DAMAGE *dTop = EQ[i].A->D;
3599             while (EQ[i].A->D) {
3600                 if(EQ[i].A->D->count <= 0 && EQ[i].A->D->sort == 0){
3601                     EQ[i].A->D = NULL;
3602                     break;
3603                 }
3604                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"];
3605                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->type]] stringByAppendingString:@","];
3606                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].A->D->count]] stringByAppendingString:@","];
3607                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].A->D->pCount]] stringByAppendingString:@"\n"];
3608                 
3609                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->seed]] stringByAppendingString:@","];
3610                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->sort]] stringByAppendingString:@","];
3611                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->continium]] stringByAppendingString:@","];
3612                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->absolute]] stringByAppendingString:@","];
3613                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->beam]] stringByAppendingString:@","];
3614                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->noSizeFix]] stringByAppendingString:@","];
3615                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->fix]] stringByAppendingString:@"\n"];
3616                 
3617                 EQ[i].A->D = EQ[i].A->D->next;
3618             }EQ[i].A->D = dTop;
3619             
3620             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"];
3621             
3622             DMGEXTEND *eTop = EQ[i].A->E;
3623             while (EQ[i].A->E) {
3624                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"];
3625                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->E->rate]] stringByAppendingString:@","];
3626                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->E->hit]] stringByAppendingString:@","];
3627                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->E->atkHit]] stringByAppendingString:@"\n"];
3628                 
3629                 EQ[i].A->E = EQ[i].A->E->next;
3630             }EQ[i].A->E = eTop;
3631             
3632             fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"];
3633             
3634             ANI *ani = EQ[i].A->AN.ANI;
3635             ANI *aniTop = ani;
3636             
3637             while (ani) {
3638                 
3639                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", ani->name]] stringByAppendingString:@","];
3640                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", ani->ax]] stringByAppendingString:@","];
3641                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", ani->ay]] stringByAppendingString:@","];
3642                 fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", ani->names]] stringByAppendingString:@"\n"];
3643                 
3644                 ani = ani->next;
3645             }
3646             
3647             ani = aniTop;
3648             
3649             EQ[i].A = EQ[i].A->next;
3650             Acnt++;
3651         }EQ[i].A = aeTop;
3652         
3653         
3654         
3655         
3656         [fileData writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
3657     }
3658     
3659 }
3660
3661
3662 -(void)initFileDirectoryItem{
3663     NSString *directoryPath;
3664     
3665     directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
3666     [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
3667     
3668     char *cwd;
3669     cwd = getcwd(NULL, 0);
3670     
3671     
3672     NSData *InitialData = [NSData dataWithContentsOfFile:@"data/ItemList/preset.txt"];
3673     NSString *pathILI = @"data/ItemList/img";
3674     NSString *pathDATA2 = @"data/ItemList/preset.txt";
3675     NSString *pathIL = @"data/ItemList/preset.txt";
3676     NSString *fileData = nil;
3677     
3678     itemNumb = 3;
3679     eItemNum = itemNumb;
3680     if(!InitialData){
3681         [[NSFileManager defaultManager] createDirectoryAtPath:pathILI withIntermediateDirectories:YES attributes:nil error:nil];
3682         [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil];
3683         
3684         [[NSFileManager defaultManager] createFileAtPath:pathIL contents:nil attributes:nil];
3685         
3686         [[NSString stringWithFormat:@"%ld", itemNumb] writeToFile:pathIL atomically:YES encoding:NSUTF8StringEncoding error:nil];
3687         
3688         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";
3689         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";
3690         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";
3691         
3692         for (int i=1; i<=itemNumb; i++) {
3693             NSString *fdata = @"data/ItemList/ILdata";
3694             
3695             fdata = [fdata stringByAppendingFormat:@"%d.txt", i];
3696             
3697             switch (i) {
3698                 case 1:
3699                     [data1 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
3700                     break;
3701                 case 2:
3702                     [data2 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
3703                     break;
3704                 case 3:
3705                     [data3 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
3706                     break;
3707                 default:
3708                     
3709                     break;
3710             }
3711             
3712         }
3713         
3714     }
3715     
3716     fileData = [NSString stringWithContentsOfFile:pathIL encoding:NSUTF8StringEncoding error:nil];
3717     fileDataArray = [fileData componentsSeparatedByString:@"\n"];
3718     int instantNum = [[fileDataArray objectAtIndex:0] intValue];
3719     
3720     itemNumb = instantNum;
3721     eItemNum = (int)itemNumb;
3722     
3723     for (int i=0; i< itemNumb; i++) {
3724         NSString *path = @"data/AttackList3/IALdata";
3725         
3726         path = [path stringByAppendingFormat:@"%dE", i+1];
3727         
3728         [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
3729         
3730         
3731         NSString *fdata = @"data/ItemList/ILdata";
3732         
3733         fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
3734         
3735         fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil];
3736         fileDataArray = [fileData componentsSeparatedByString:@"\n"];
3737         
3738         EQ[i].name = [[fileDataArray objectAtIndex:0] retain];
3739         EQ[i].nameRecognition = [[fileDataArray objectAtIndex:1] retain];
3740         EQ[i].nameID = [[fileDataArray objectAtIndex:2] retain];
3741         
3742         NSArray *items = [[fileDataArray objectAtIndex:3] componentsSeparatedByString:@","];
3743         
3744         EQ[i].price = [[items objectAtIndex:0] intValue];
3745         EQ[i].Weight = [[items objectAtIndex:1] intValue];
3746         EQ[i].type = [[items objectAtIndex:2] intValue];
3747         
3748         items = [[fileDataArray objectAtIndex:4] componentsSeparatedByString:@","];
3749         
3750         EQ[i].HP = [[items objectAtIndex:0] intValue];
3751         EQ[i].MP = [[items objectAtIndex:1] intValue];
3752         EQ[i].AP = [[items objectAtIndex:2] intValue];
3753         EQ[i].WT = [[items objectAtIndex:3] intValue];
3754         EQ[i].MOV = [[items objectAtIndex:4] intValue];
3755         
3756         items = [[fileDataArray objectAtIndex:5] componentsSeparatedByString:@","];
3757         
3758         EQ[i].STR = [[items objectAtIndex:0] intValue];
3759         EQ[i].VIT = [[items objectAtIndex:1] intValue];
3760         EQ[i].AGI = [[items objectAtIndex:2] intValue];
3761         EQ[i].DEX = [[items objectAtIndex:3] intValue];
3762         EQ[i].MEN = [[items objectAtIndex:4] intValue];
3763         EQ[i].INT = [[items objectAtIndex:5] intValue];
3764         EQ[i].LUK = [[items objectAtIndex:6] intValue];
3765         
3766         items = [[fileDataArray objectAtIndex:6] componentsSeparatedByString:@","];
3767         
3768         EQ[i].pSTR = [[items objectAtIndex:0] intValue];
3769         EQ[i].pVIT = [[items objectAtIndex:1] intValue];
3770         EQ[i].pAGI = [[items objectAtIndex:2] intValue];
3771         EQ[i].pDEX = [[items objectAtIndex:3] intValue];
3772         EQ[i].pMEN = [[items objectAtIndex:4] intValue];
3773         EQ[i].pINT = [[items objectAtIndex:5] intValue];
3774         EQ[i].pLUK = [[items objectAtIndex:6] intValue];
3775         
3776         items = [[fileDataArray objectAtIndex:7] componentsSeparatedByString:@","];
3777         
3778         EQ[i].recHP = [[items objectAtIndex:0] intValue];
3779         EQ[i].recpHP = [[items objectAtIndex:1] intValue];
3780         EQ[i].recMP = [[items objectAtIndex:2] intValue];
3781         EQ[i].recpMP = [[items objectAtIndex:3] intValue];
3782         
3783         items = [[fileDataArray objectAtIndex:8] componentsSeparatedByString:@","];
3784         
3785         EQ[i].R.blow = [[items objectAtIndex:0] intValue];
3786         EQ[i].R.slash = [[items objectAtIndex:1] intValue];
3787         EQ[i].R.stub = [[items objectAtIndex:2] intValue];
3788         EQ[i].R.arrow = [[items objectAtIndex:3] intValue];
3789         EQ[i].R.gun = [[items objectAtIndex:4] intValue];
3790         EQ[i].R.shell = [[items objectAtIndex:5] intValue];
3791         EQ[i].R.paralysis = [[items objectAtIndex:6] intValue];
3792         EQ[i].R.poison = [[items objectAtIndex:7] intValue];
3793         EQ[i].R.charm = [[items objectAtIndex:8] intValue];
3794         EQ[i].R.confusion = [[items objectAtIndex:9] intValue];
3795         EQ[i].R.sleep = [[items objectAtIndex:10] intValue];
3796         EQ[i].R.silent = [[items objectAtIndex:11] intValue];
3797         
3798         items = [[fileDataArray objectAtIndex:9] componentsSeparatedByString:@","];
3799         
3800         EQ[i].R.flame = [[items objectAtIndex:0] intValue];
3801         EQ[i].R.cold = [[items objectAtIndex:1] intValue];
3802         EQ[i].R.electoric = [[items objectAtIndex:2] intValue];
3803         EQ[i].R.air = [[items objectAtIndex:3] intValue];
3804         EQ[i].R.water = [[items objectAtIndex:4] intValue];
3805         EQ[i].R.gas = [[items objectAtIndex:5] intValue];
3806         EQ[i].R.holy = [[items objectAtIndex:6] intValue];
3807         EQ[i].R.dark = [[items objectAtIndex:7] intValue];
3808         EQ[i].R.explosion = [[items objectAtIndex:8] intValue];
3809         EQ[i].R.blood = [[items objectAtIndex:9] intValue];
3810         
3811         EQ[i].comment = [[fileDataArray objectAtIndex:10] retain];
3812     }
3813     
3814     
3815     
3816 }
3817
3818 -(void)initFileDirectoryCombo{
3819     NSString *directoryPath;
3820     
3821     directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
3822     [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
3823     
3824     NSData *InitialData = [NSData dataWithContentsOfFile:@"data/ComboList/preset.txt"];
3825     NSString *pathCL = @"data/ComboList/preset.txt";
3826     NSString *path = @"data/ComboList";
3827     NSString *fileData = nil;
3828     
3829     
3830     fileData = [NSString stringWithContentsOfFile:pathCL encoding:NSUTF8StringEncoding error:nil];
3831     fileDataArray = [fileData componentsSeparatedByString:@"\n"];
3832     int instantNum = [[fileDataArray objectAtIndex:0] intValue];
3833     
3834     comboItemNumb = instantNum;
3835     CLN = (int)comboItemNumb;
3836     if(!InitialData){
3837         [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
3838         [[NSFileManager defaultManager] createFileAtPath:pathCL contents:nil attributes:nil];
3839         [[NSString stringWithFormat:@"%d", UCN] writeToFile:pathCL atomically:YES encoding:NSUTF8StringEncoding error:nil];
3840         
3841         comboItemNumb = UCN;
3842         CLN = (int)comboItemNumb;
3843         NSString *data1 = @"A>A>A\nA>A>B";
3844         
3845         NSString *data2 = @"A>A>B\nA>A>C";
3846         
3847         for (int i=1; i<=UCN; i++) {
3848             NSString *fdata = @"data/ComboList/CLdata";
3849             
3850             fdata = [fdata stringByAppendingFormat:@"%d.txt", i];
3851             /*
3852             switch (i) {
3853                 case 1:
3854                     [data1 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
3855                     break;
3856                 case 2:
3857                     [data2 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
3858                     break;
3859                 default:
3860                     
3861                     break;
3862             }*/
3863             [@"" writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
3864         }
3865     }
3866     
3867     NSArray *fileDataArray2;
3868     for (int i = 0; i< CLN; i++){
3869         COMBO *COtop = UC[i].CM.co;
3870         
3871         NSString *fdata = @"data/ComboList/CLdata";
3872         
3873         fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
3874         
3875         fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil];
3876         fileDataArray2 = [fileData componentsSeparatedByString:@"\n"];
3877         
3878         
3879         for(int k = 0;k < [fileDataArray2 count] && ![[fileDataArray2 objectAtIndex:k] isEqualToString:@""];k++){
3880             if (k == 0) {
3881                 UC[i].CM.co = calloc(1, sizeof(COMBO));
3882                 COtop = UC[i].CM.co;
3883             }
3884             
3885             UC[i].CM.co->mbo = [[fileDataArray2 objectAtIndex:k] retain];
3886             
3887             UC[i].CM.co->next = calloc(1, sizeof(COMBO));
3888             UC[i].CM.co = UC[i].CM.co->next;
3889         }
3890         UC[i].CM.co = NULL;
3891         
3892         
3893         UC[i].CM.co = COtop;
3894     }
3895
3896
3897 }
3898
3899 -(void)saveDataCL{
3900
3901     NSString *directoryPath;
3902     
3903     directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
3904     [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
3905     
3906     char *cwd;
3907     cwd = getcwd(NULL, 0);
3908     
3909     
3910     
3911     for (int i=0; i<CLN; i++) {
3912         NSString *fdata = @"data/ComboList/CLdata";
3913         fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
3914         
3915         NSString *fileData = @"";
3916         
3917         COMBO *cTop = UC[i].CM.co;
3918         int p = 0;
3919         while(UC[i].CM.co){
3920             if(p > 0)
3921                 fileData = [fileData stringByAppendingString:@"\n"];
3922
3923         fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].CM.co->mbo]];
3924             
3925             p++;
3926             UC[i].CM.co = UC[i].CM.co->next;
3927         }UC[i].CM.co = cTop;
3928
3929         [fileData writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
3930     }
3931
3932 }
3933
3934 -(void)initFileDirectoryAttack{
3935     NSString *directoryPath;
3936     
3937     directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
3938     [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
3939     
3940     char *cwd;
3941     cwd = getcwd(NULL, 0);
3942     
3943     
3944     NSData *InitialData = [NSData dataWithContentsOfFile:@"data/AttackList/preset.txt"];
3945     NSString *pathALI = @"data/AttackList/img";
3946     NSString *pathDATA2 = @"data/AttackList/preset.txt";
3947     NSString *pathAL = @"data/AttackList/preset.txt";
3948     NSString *fileData = nil;
3949     
3950     itemNumb = [unitChipListMA count];
3951     if(!InitialData){
3952         [[NSFileManager defaultManager] createDirectoryAtPath:pathALI withIntermediateDirectories:YES attributes:nil error:nil];
3953         [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil];
3954         
3955         [[NSFileManager defaultManager] createFileAtPath:pathAL contents:nil attributes:nil];
3956     
3957         
3958         
3959         for (int i=1; i<=itemNumb; i++) {
3960             NSString *fdata = @"data/AttackList/ALdata";
3961             
3962             fdata = [fdata stringByAppendingFormat:@"%d.txt", i];
3963             
3964             switch (i) {
3965                 default:
3966                     
3967                     break;
3968             }
3969             
3970         }
3971         
3972     }
3973     
3974     NSArray *fileDataArray2;
3975     ATTACK *Atop;
3976     for (int i=0; i< itemNumb; i++) {
3977         NSString *fdata = @"data/AttackList/ALdata";
3978         
3979         fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
3980         
3981         fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil];
3982         fileDataArray2 = [fileData componentsSeparatedByString:@"--------\n"];
3983         
3984         bool initAttackAdd = false;
3985         
3986         if(fileData == 0x00007fff7e19dfa0) continue;
3987         
3988         if([fileDataArray2 count] <= 0) continue;
3989         
3990         
3991         
3992         for(int j=0;j < [fileDataArray2 count];j++){
3993             if(![[fileDataArray2 objectAtIndex:0] isEqualToString:@""]) UC[i].attackListNum++;
3994         fileDataArray = [[fileDataArray2 objectAtIndex:j] componentsSeparatedByString:@"\n"];
3995          
3996             if([[fileDataArray objectAtIndex:0] isEqualToString:@""]) break;
3997             
3998             if(!initAttackAdd)
3999                 [self AddATTACK:&UC[i].A :0];
4000       
4001             [self AddATTACK:&UC[i].A :j];
4002             
4003             if(!initAttackAdd) {
4004                 Atop = UC[i].A;
4005             }
4006             initAttackAdd = true;
4007             
4008         NSArray *items = [[fileDataArray objectAtIndex:0] componentsSeparatedByString:@","];
4009         UC[i].A->name = [[items objectAtIndex:0] retain];
4010         UC[i].A->indexE = 0;
4011         
4012             if([fileDataArray count] <= 1) continue;
4013         items = [[fileDataArray objectAtIndex:1] componentsSeparatedByString:@","];
4014         
4015         UC[i].A->trig = [[items objectAtIndex:0] intValue];
4016         UC[i].A->type = [[items objectAtIndex:1] intValue];
4017         UC[i].A->melee = [[items objectAtIndex:2] intValue];
4018         UC[i].A->P = [[items objectAtIndex:3] intValue];
4019         
4020         items = [[fileDataArray objectAtIndex:2] componentsSeparatedByString:@","];
4021         
4022         UC[i].A->rangeA = [[items objectAtIndex:0] intValue];
4023         UC[i].A->rangeB = [[items objectAtIndex:1] intValue];
4024         UC[i].A->extent = [[items objectAtIndex:2] intValue];
4025         UC[i].A->bullet = [[items objectAtIndex:3] intValue];
4026         UC[i].A->hitCount = [[items objectAtIndex:4] intValue];
4027         UC[i].A->successRate = [[items objectAtIndex:5] intValue];
4028         UC[i].A->vigor = [[items objectAtIndex:6] intValue];
4029         UC[i].A->hitPercent = [[items objectAtIndex:7] intValue];
4030         
4031         items = [[fileDataArray objectAtIndex:3] componentsSeparatedByString:@","];
4032         
4033         UC[i].A->costType = [[items objectAtIndex:0] intValue];
4034         
4035         if(UC[i].A->costType == 0) {
4036             UC[i].A->MP = [[items objectAtIndex:1] intValue];
4037             UC[i].A->pMP = [[items objectAtIndex:2] intValue];
4038         }
4039         else if(UC[i].A->costType == 1) {
4040             UC[i].A->AP = [[items objectAtIndex:1] intValue];
4041             UC[i].A->pAP = [[items objectAtIndex:2] intValue];
4042         }
4043         else if(UC[i].A->costType == 2) {
4044             UC[i].A->HP = [[items objectAtIndex:1] intValue];
4045             UC[i].A->pHP = [[items objectAtIndex:2] intValue];
4046         }
4047         
4048         UC[i].A->cSupply = [[items objectAtIndex:3] intValue];
4049         UC[i].A->cFood = [[items objectAtIndex:4] intValue];
4050         UC[i].A->cMoney = [[items objectAtIndex:5] intValue];
4051
4052         items = [[fileDataArray objectAtIndex:4] componentsSeparatedByString:@","];
4053         
4054         UC[i].A->riku = [[items objectAtIndex:0] intValue];
4055         UC[i].A->chu = [[items objectAtIndex:1] intValue];
4056         UC[i].A->umi = [[items objectAtIndex:2] intValue];
4057         UC[i].A->sora = [[items objectAtIndex:3] intValue];
4058         UC[i].A->dmgExtend = [[items objectAtIndex:4] intValue];
4059         UC[i].A->imagine = [[items objectAtIndex:5] intValue];
4060         
4061         items = [[fileDataArray objectAtIndex:5] componentsSeparatedByString:@","];
4062             
4063         UC[i].A->cmd = [[items objectAtIndex:0] retain];
4064         if([items count] >= 2)
4065             UC[i].A->hasei = [[items objectAtIndex:1] intValue];
4066             
4067         items = [[fileDataArray objectAtIndex:6] componentsSeparatedByString:@","];
4068         
4069         if(![[items objectAtIndex:0] isEqualToString:@"(null)"])
4070         UC[i].A->AN.movName = [[items objectAtIndex:0] retain];
4071         else UC[i].A->AN.movName = @"";
4072         UC[i].A->AN.frame = [[items objectAtIndex:1] intValue];
4073         UC[i].A->msg = @"";
4074             
4075         //[self AddDAMAGE:&UC[i].A->D :0];
4076         //[self AddDMGEXTEND:&UC[i].A->E :0];
4077         
4078         DAMAGE *Dtop = UC[i].A->D;
4079         DMGEXTEND *Etop = UC[i].A->E;
4080         ANI *ani = NULL;
4081         ANI *aniTop = ani;
4082         static bool omfgFlag;
4083             
4084         int stringType = 0;
4085         int stringRange = 1;
4086         int stringNumber = 0;
4087         for (int k = 7; k<[fileDataArray count];k++) {
4088             NSString *str = [fileDataArray objectAtIndex:k];
4089             NSRange rangeSearch, rangeSearch2, rangeSearch9;
4090             NSArray *rangeArray;
4091             rangeSearch = [str rangeOfString:@"####"];
4092             rangeArray = [str componentsSeparatedByString:@","];
4093             rangeSearch2 = [str rangeOfString:@"----"];
4094             rangeSearch9 = [str rangeOfString:@""];
4095             static int omg = 0;
4096             static int omg2 = 0;
4097             static int omg3 = 0;
4098             
4099             if(k == [fileDataArray count] - 1){
4100                 omg2 = 0;
4101             }
4102             
4103             if(stringType == 0)
4104             if (rangeSearch.location != NSNotFound) {
4105             }else if(rangeSearch2.location != NSNotFound){
4106                 stringType = 1;
4107                 omg = 0;
4108             }else{
4109                 if(UC[i].A->msg == NULL){
4110                     UC[i].A->msg = [str retain];
4111                 }else{
4112                     if(omfgFlag) UC[i].A->msg = [[UC[i].A->msg stringByAppendingFormat:@"\n"] retain];
4113                     UC[i].A->msg = [[UC[i].A->msg stringByAppendingFormat:@"%@", str] retain];
4114                     omfgFlag = true;
4115                 }
4116             }else if(stringType == 1){stringRange ++;
4117                 if(rangeSearch2.location != NSNotFound){
4118                     stringType = 2;
4119                 }
4120                 else if(rangeSearch.location != NSNotFound){
4121                     stringRange = 0;
4122                 }else if(stringRange == 1){
4123                     if(omg == 0) {
4124                         [self AddDAMAGE:&UC[i].A->D :0];
4125                         Dtop = UC[i].A->D;
4126                     }
4127                     omg++;
4128                     UC[i].A->D->type = [[rangeArray objectAtIndex:0] intValue];
4129                     UC[i].A->D->count = [[rangeArray objectAtIndex:1] intValue];
4130                     UC[i].A->D->pCount = [[rangeArray objectAtIndex:2] intValue];
4131                 }else if(stringRange == 2){
4132                     
4133                     UC[i].A->D->seed = [[rangeArray objectAtIndex:0] intValue];
4134                     UC[i].A->D->sort = [[rangeArray objectAtIndex:1] intValue];
4135                     UC[i].A->D->continium = [[rangeArray objectAtIndex:2] intValue];
4136                     UC[i].A->D->absolute = [[rangeArray objectAtIndex:3] intValue];
4137                     UC[i].A->D->beam = [[rangeArray objectAtIndex:4] intValue];
4138                     UC[i].A->D->noSizeFix = [[rangeArray objectAtIndex:5] intValue];
4139                     UC[i].A->D->fix = [[rangeArray objectAtIndex:6] intValue];
4140                     
4141                     stringNumber++;
4142                     NSString *str2 = [fileDataArray objectAtIndex:k+1];
4143                     NSRange rangeSearch3 = [str2 rangeOfString:@"####"];
4144                     if(stringNumber >= 1 && rangeSearch3.location != NSNotFound) [self AddDAMAGE:&UC[i].A->D :stringNumber-1];
4145                     UC[i].A->D = UC[i].A->D->next;
4146                 }
4147             }else if(stringType == 2){stringRange ++;
4148                 
4149                 if(rangeSearch2.location != NSNotFound){
4150                     stringType = 3;
4151                 }
4152                 else if(rangeSearch.location != NSNotFound){
4153                     stringRange = 0;
4154                     stringNumber = 0;
4155                 }else if(stringRange == 1){stringNumber++;
4156                     if(omg2 == 0) {
4157                         [self AddDMGEXTEND:&UC[i].A->E :0];
4158                         Etop = UC[i].A->E;
4159                     }
4160                     omg2++;
4161                     UC[i].A->E->rate = [[rangeArray objectAtIndex:0] intValue];
4162                     UC[i].A->E->hit = [[rangeArray objectAtIndex:2] intValue];
4163                     UC[i].A->E->atkHit = [[rangeArray objectAtIndex:1] intValue];
4164                     
4165                     NSString *str2 = [fileDataArray objectAtIndex:k+1];
4166                     NSRange rangeSearch3 = [str2 rangeOfString:@"####"];
4167                     if(stringNumber >= 1 && rangeSearch3.location != NSNotFound) [self AddDMGEXTEND:&UC[i].A->E :stringNumber-1];
4168                     
4169                     UC[i].A->E = UC[i].A->E->next;
4170                 }
4171             
4172             }else if(stringType == 3){stringRange ++;
4173                 //NSLog(@"%@", [fileDataArray objectAtIndex:k]);
4174                 if([rangeArray count] == 1){
4175                     stringType = 4;
4176                 }else{
4177                 
4178                 if(omg3 == 0){
4179                     ani = calloc(1, sizeof(ANI));
4180                     ani->name = [[rangeArray objectAtIndex:0] retain];
4181                     ani->ax = [[rangeArray objectAtIndex:1] intValue];
4182                     ani->ay = [[rangeArray objectAtIndex:2] intValue];
4183                     ani->names = [[rangeArray objectAtIndex:3] retain];
4184                     
4185                     
4186                     [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
4187                     
4188                     NSString *path = @"data/AttackList/ALdata";
4189                     
4190                     path = [path stringByAppendingFormat:@"%dE", i+1];
4191                     
4192                     path = [path stringByAppendingFormat:@"/"];
4193                     
4194                     path = [path stringByAppendingString:ani->names];
4195                     
4196                     ani->snd = [[[NSSound alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] byReference:NO] retain];
4197                     
4198                     path = @"data/AttackList/ALdata";
4199                     
4200                     path = [path stringByAppendingFormat:@"%dE", i+1];
4201                     
4202                     path = [path stringByAppendingFormat:@"/"];
4203                     
4204                     path = [path stringByAppendingString:ani->name];
4205                     
4206                     ani->img = [[[NSImage alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path]] retain];
4207                     
4208                     omg3++;
4209                     aniTop = ani;
4210                 }else{
4211                     omg3++;
4212                 
4213                     ani->next = calloc(1, sizeof(ANI));
4214                     if(omg3 == 1) aniTop = ani;
4215                     
4216                     ani = ani->next;
4217                     ani->name = [[rangeArray objectAtIndex:0] retain];
4218                     ani->ax = [[rangeArray objectAtIndex:1] intValue];
4219                     ani->ay = [[rangeArray objectAtIndex:2] intValue];
4220                     ani->names = [[rangeArray objectAtIndex:3] retain];
4221                     
4222                     [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
4223                     
4224                     NSString *path = @"data/AttackList/ALdata";
4225                     
4226                     path = [path stringByAppendingFormat:@"%dE", i+1];
4227                     
4228                     path = [path stringByAppendingFormat:@"/"];
4229                     
4230                     path = [path stringByAppendingString:ani->names];
4231                     
4232                     ani->snd = [[[NSSound alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] byReference:NO] retain];
4233                     
4234                     path = @"data/AttackList/ALdata";
4235                     
4236                     path = [path stringByAppendingFormat:@"%dE", i+1];
4237                     
4238                     path = [path stringByAppendingFormat:@"/"];
4239                     
4240                     path = [path stringByAppendingString:ani->name];
4241                     
4242                     ani->img = [[[NSImage alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path]] retain];
4243                 }
4244                 }
4245             }
4246         }
4247             UC[i].A->D = Dtop;
4248             UC[i].A->E = Etop;
4249             ani = aniTop;
4250             UC[i].A->AN.ANI = ani;
4251             
4252             
4253             omfgFlag = false;
4254             if([fileDataArray2 count]-1 > j) UC[i].A = UC[i].A->next;
4255             else UC[i].A->next = NULL;
4256         }
4257         
4258         if(UC[i].attackListNum <= 0) {
4259             Atop = NULL;
4260         }
4261         UC[i].A = Atop;
4262     }
4263     
4264     /*
4265     for (int i=0; i< itemNumb; i++)
4266     [self setTotalDamage:i row:<#(int)#>];
4267     */
4268 }
4269
4270 -(void)initFileDirectoryAttack2{
4271     NSString *directoryPath;
4272     
4273     directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
4274     [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
4275     
4276     char *cwd;
4277     cwd = getcwd(NULL, 0);
4278     
4279     
4280     NSData *InitialData = [NSData dataWithContentsOfFile:@"data/AttackList2/preset.txt"];
4281     NSString *pathALI = @"data/AttackList2/img";
4282     NSString *pathDATA2 = @"data/AttackList2/preset.txt";
4283     NSString *pathAL = @"data/AttackList2/preset.txt";
4284     NSString *fileData = nil;
4285     
4286     itemNumb = LCN;
4287     if(!InitialData){
4288         [[NSFileManager defaultManager] createDirectoryAtPath:pathALI withIntermediateDirectories:YES attributes:nil error:nil];
4289         [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil];
4290         
4291         [[NSFileManager defaultManager] createFileAtPath:pathAL contents:nil attributes:nil];
4292         
4293         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";
4294         
4295         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";
4296         
4297         
4298         for (int i=1; i<=itemNumb; i++) {
4299             NSString *fdata = @"data/AttackList2/LALdata";
4300             
4301             fdata = [fdata stringByAppendingFormat:@"%d.txt", i];
4302             
4303             switch (i) {
4304                 case 1:
4305                     [data1 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
4306                     break;
4307                 case 2:
4308                     [data2 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
4309                     break;
4310                 default:
4311                     
4312                     break;
4313             }
4314             
4315         }
4316         
4317     }
4318     
4319     NSArray *fileDataArray2;
4320     ATTACK *Atop;
4321     for (int i=0; i< itemNumb; i++) {
4322         NSString *fdata = @"data/AttackList2/LALdata";
4323         
4324         fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
4325         
4326         fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil];
4327         fileDataArray2 = [fileData componentsSeparatedByString:@"--------\n"];
4328         
4329         bool initAttackAdd = false;
4330         
4331         if(fileData == 0x00007fff7e19dfa0) continue;
4332         
4333         for(int j=0;j < [fileDataArray2 count];j++){
4334             if(![[fileDataArray2 objectAtIndex:0] isEqualToString:@""]) LC[i].attackListNum++;
4335             fileDataArray = [[fileDataArray2 objectAtIndex:j] componentsSeparatedByString:@"\n"];
4336             
4337             if(!initAttackAdd)
4338                 [self AddATTACK:&LC[i].A :0];
4339             
4340             [self AddATTACK:&LC[i].A :j];
4341             
4342             if(!initAttackAdd) {Atop = LC[i].A;}
4343             initAttackAdd = true;
4344             
4345             LC[i].A->name = [[fileDataArray objectAtIndex:0] retain];
4346             
4347             if([fileDataArray count] <= 1) continue;
4348             NSArray *items = [[fileDataArray objectAtIndex:1] componentsSeparatedByString:@","];
4349             
4350             LC[i].A->trig = [[items objectAtIndex:0] intValue];
4351             LC[i].A->type = [[items objectAtIndex:1] intValue];
4352             LC[i].A->melee = [[items objectAtIndex:2] intValue];
4353             LC[i].A->P = [[items objectAtIndex:3] intValue];
4354             
4355             items = [[fileDataArray objectAtIndex:2] componentsSeparatedByString:@","];
4356             
4357             LC[i].A->rangeA = [[items objectAtIndex:0] intValue];
4358             LC[i].A->rangeB = [[items objectAtIndex:1] intValue];
4359             LC[i].A->extent = [[items objectAtIndex:2] intValue];
4360             LC[i].A->bullet = [[items objectAtIndex:3] intValue];
4361             LC[i].A->hitCount = [[items objectAtIndex:4] intValue];
4362             LC[i].A->successRate = [[items objectAtIndex:5] intValue];
4363             LC[i].A->vigor = [[items objectAtIndex:6] intValue];
4364             LC[i].A->hitPercent = [[items objectAtIndex:7] intValue];
4365             
4366             items = [[fileDataArray objectAtIndex:3] componentsSeparatedByString:@","];
4367             
4368             LC[i].A->costType = [[items objectAtIndex:0] intValue];
4369             
4370             if(LC[i].A->costType == 0) {
4371                 LC[i].A->EN = [[items objectAtIndex:1] intValue];
4372                 LC[i].A->pEN = [[items objectAtIndex:2] intValue];
4373             }
4374             else if(LC[i].A->costType == 1) {
4375                 LC[i].A->HP = [[items objectAtIndex:1] intValue];
4376                 LC[i].A->pHP = [[items objectAtIndex:2] intValue];
4377             }
4378             
4379             LC[i].A->cSupply = [[items objectAtIndex:3] intValue];
4380             LC[i].A->cFood = [[items objectAtIndex:4] intValue];
4381             LC[i].A->cMoney = [[items objectAtIndex:5] intValue];
4382             
4383             items = [[fileDataArray objectAtIndex:4] componentsSeparatedByString:@","];
4384             
4385             LC[i].A->riku = [[items objectAtIndex:0] intValue];
4386             LC[i].A->chu = [[items objectAtIndex:1] intValue];
4387             LC[i].A->umi = [[items objectAtIndex:2] intValue];
4388             LC[i].A->sora = [[items objectAtIndex:3] intValue];
4389             LC[i].A->dmgExtend = [[items objectAtIndex:4] intValue];
4390             LC[i].A->imagine = [[items objectAtIndex:5] intValue];
4391             
4392             items = [[fileDataArray objectAtIndex:5] componentsSeparatedByString:@","];
4393             
4394             LC[i].A->cmd = [[items objectAtIndex:0] retain];
4395             if([items count] >= 2)
4396                 LC[i].A->hasei = [[items objectAtIndex:1] intValue];
4397             LC[i].A->msg = @"";
4398             
4399             //[self AddDAMAGE:&UC[i].A->D :0];
4400             //[self AddDMGEXTEND:&UC[i].A->E :0];
4401             
4402             DAMAGE *Dtop = LC[i].A->D;
4403             DMGEXTEND *Etop = LC[i].A->E;
4404             ANI *ani = NULL;
4405             ANI *aniTop = ani;
4406             static bool omfgFlag;
4407             
4408             int stringType = 0;
4409             int stringRange = 1;
4410             int stringNumber = 0;
4411             for (int k = 6; k<[fileDataArray count];k++) {
4412                 NSString *str = [fileDataArray objectAtIndex:k];
4413                 NSRange rangeSearch, rangeSearch2;
4414                 NSArray *rangeArray;
4415                 rangeSearch = [str rangeOfString:@"####"];
4416                 rangeArray = [str componentsSeparatedByString:@","];
4417                 rangeSearch2 = [str rangeOfString:@"----"];
4418                 static int omg = 0;
4419                 static int omg2 = 0;
4420                 static int omg3 = 0;
4421                 if(k == [fileDataArray count] - 1){
4422                     omg2 = 0;
4423                 }
4424                 
4425                 if(stringType == 0)
4426                     if (rangeSearch.location != NSNotFound) {
4427                     }else if(rangeSearch2.location != NSNotFound){
4428                         stringType = 1;
4429                         omg = 0;
4430                     }else{
4431                         if(LC[i].A->msg == NULL){
4432                             LC[i].A->msg = [str retain];
4433                         }else{
4434                             if(omfgFlag) LC[i].A->msg = [[LC[i].A->msg stringByAppendingFormat:@"\n"] retain];
4435                             LC[i].A->msg = [[LC[i].A->msg stringByAppendingFormat:@"%@", str] retain];
4436                             omfgFlag = true;
4437                         }
4438                     }else if(stringType == 1){stringRange ++;
4439                         if(rangeSearch2.location != NSNotFound){
4440                             stringType = 2;
4441                         }
4442                         else if(rangeSearch.location != NSNotFound){
4443                             stringRange = 0;
4444                         }else if(stringRange == 1){
4445                             if(omg == 0) {
4446                                 [self AddDAMAGE:&LC[i].A->D :0];
4447                                 Dtop = LC[i].A->D;
4448                             }
4449                             omg++;
4450                             LC[i].A->D->type = [[rangeArray objectAtIndex:0] intValue];
4451                             LC[i].A->D->count = [[rangeArray objectAtIndex:1] intValue];
4452                             LC[i].A->D->pCount = [[rangeArray objectAtIndex:2] intValue];
4453                         }else if(stringRange == 2){
4454                             
4455                             LC[i].A->D->seed = [[rangeArray objectAtIndex:0] intValue];
4456                             LC[i].A->D->sort = [[rangeArray objectAtIndex:1] intValue];
4457                             LC[i].A->D->continium = [[rangeArray objectAtIndex:2] intValue];
4458                             LC[i].A->D->absolute = [[rangeArray objectAtIndex:3] intValue];
4459                             LC[i].A->D->beam = [[rangeArray objectAtIndex:4] intValue];
4460                             LC[i].A->D->noSizeFix = [[rangeArray objectAtIndex:5] intValue];
4461                             LC[i].A->D->fix = [[rangeArray objectAtIndex:5] intValue];
4462                             
4463                             stringNumber++;
4464                             NSString *str2 = [fileDataArray objectAtIndex:k+1];
4465                             NSRange rangeSearch3 = [str2 rangeOfString:@"####"];
4466                             if(stringNumber >= 1 && rangeSearch3.location != NSNotFound) [self AddDAMAGE:&LC[i].A->D :stringNumber-1];
4467                             LC[i].A->D = LC[i].A->D->next;
4468                         }
4469                     }else if(stringType == 2){stringRange ++;
4470                         
4471                         if(rangeSearch2.location != NSNotFound){
4472                             stringType = 3;
4473                         }
4474                         else if(rangeSearch.location != NSNotFound){
4475                             stringRange = 0;
4476                             stringNumber = 0;
4477                         }else if(stringRange == 1){stringNumber++;
4478                             if(omg2 == 0) {
4479                                 [self AddDMGEXTEND:&LC[i].A->E :0];
4480                                 Etop = LC[i].A->E;
4481                             }
4482                             omg2++;
4483                             LC[i].A->E->rate = [[rangeArray objectAtIndex:0] intValue];
4484                             LC[i].A->E->hit = [[rangeArray objectAtIndex:2] intValue];
4485                             LC[i].A->E->atkHit = [[rangeArray objectAtIndex:1] intValue];
4486                             
4487                             NSString *str2 = [fileDataArray objectAtIndex:k+1];
4488                             NSRange rangeSearch3 = [str2 rangeOfString:@"####"];
4489                             if(stringNumber >= 1 && rangeSearch3.location != NSNotFound) [self AddDMGEXTEND:&LC[i].A->E :stringNumber-1];
4490                             
4491                             LC[i].A->E = LC[i].A->E->next;
4492                         }
4493                         
4494                     }else if(stringType == 3){stringRange ++;
4495                         //NSLog(@"%@", [fileDataArray objectAtIndex:k]);
4496                         if([rangeArray count] == 1){
4497                             stringType = 4;
4498                         }else{
4499                             
4500                             if(omg3 == 0){
4501                                 ani = calloc(1, sizeof(ANI));
4502                                 ani->name = [[rangeArray objectAtIndex:0] retain];
4503                                 ani->ax = [[rangeArray objectAtIndex:1] intValue];
4504                                 ani->ay = [[rangeArray objectAtIndex:2] intValue];
4505                                 ani->names = [[rangeArray objectAtIndex:3] retain];
4506                                 
4507                                 
4508                                 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
4509                                 
4510                                 NSString *path = @"data/AttackList/ALdata";
4511                                 
4512                                 path = [path stringByAppendingFormat:@"%dE", i+1];
4513                                 
4514                                 path = [path stringByAppendingFormat:@"/"];
4515                                 
4516                                 path = [path stringByAppendingString:ani->names];
4517                                 
4518                                 ani->snd = [[[NSSound alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] byReference:NO] retain];
4519                                 
4520                                 path = @"data/AttackList/ALdata";
4521                                 
4522                                 path = [path stringByAppendingFormat:@"%dE", i+1];
4523                                 
4524                                 path = [path stringByAppendingFormat:@"/"];
4525                                 
4526                                 path = [path stringByAppendingString:ani->name];
4527                                 
4528                                 ani->img = [[[NSImage alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path]] retain];
4529                                 
4530                                 omg3++;
4531                                 aniTop = ani;
4532                             }else{
4533                                 omg3++;
4534                                 
4535                                 ani->next = calloc(1, sizeof(ANI));
4536                                 if(omg3 == 1) aniTop = ani;
4537                                 
4538                                 ani = ani->next;
4539                                 ani->name = [[rangeArray objectAtIndex:0] retain];
4540                                 ani->ax = [[rangeArray objectAtIndex:1] intValue];
4541                                 ani->ay = [[rangeArray objectAtIndex:2] intValue];
4542                                 ani->names = [[rangeArray objectAtIndex:3] retain];
4543                                 
4544                                 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
4545                                 
4546                                 NSString *path = @"data/AttackList/ALdata";
4547                                 
4548                                 path = [path stringByAppendingFormat:@"%dE", i+1];
4549                                 
4550                                 path = [path stringByAppendingFormat:@"/"];
4551                                 
4552                                 path = [path stringByAppendingString:ani->names];
4553                                 
4554                                 ani->snd = [[[NSSound alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] byReference:NO] retain];
4555                                 
4556                                 path = @"data/AttackList/ALdata";
4557                                 
4558                                 path = [path stringByAppendingFormat:@"%dE", i+1];
4559                                 
4560                                 path = [path stringByAppendingFormat:@"/"];
4561                                 
4562                                 path = [path stringByAppendingString:ani->name];
4563                                 
4564                                 ani->img = [[[NSImage alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path]] retain];
4565                             }
4566                         }
4567                     }
4568             }
4569             LC[i].A->D = Dtop;
4570             LC[i].A->E = Etop;
4571             ani = aniTop;
4572             LC[i].A->AN.ANI = ani;
4573             
4574             
4575             omfgFlag = false;
4576             if([fileDataArray2 count]-1 > j) LC[i].A = LC[i].A->next;
4577             else LC[i].A->next = NULL;
4578         }
4579         
4580         if(LC[i].attackListNum <= 0) Atop = NULL;
4581         LC[i].A = Atop;
4582     }
4583     
4584     
4585     /*
4586      for (int i=0; i< itemNumb; i++)
4587      [self setTotalDamage:i row:<#(int)#>];
4588      */
4589 }
4590
4591 -(void)initFileDirectoryAttackEQ{
4592     NSString *directoryPath;
4593     
4594     directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
4595     [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
4596     
4597     char *cwd;
4598     cwd = getcwd(NULL, 0);
4599     
4600     
4601     NSData *InitialData = [NSData dataWithContentsOfFile:@"data/AttackList3/preset.txt"];
4602     NSString *pathALI = @"data/AttackList3/img";
4603     NSString *pathDATA2 = @"data/AttackList3/preset.txt";
4604     NSString *pathAL = @"data/AttackList3/preset.txt";
4605     NSString *fileData = nil;
4606     
4607     itemNumb = eItemNum;
4608     if(!InitialData){
4609         [[NSFileManager defaultManager] createDirectoryAtPath:pathALI withIntermediateDirectories:YES attributes:nil error:nil];
4610         [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil];
4611         
4612         [[NSFileManager defaultManager] createFileAtPath:pathAL contents:nil attributes:nil];
4613         
4614         
4615         
4616         for (int i=1; i<=itemNumb; i++) {
4617             NSString *fdata = @"data/AttackList3/IALdata";
4618             
4619             fdata = [fdata stringByAppendingFormat:@"%d.txt", i];
4620             
4621             switch (i) {
4622                 default:
4623                     
4624                     break;
4625             }
4626             
4627         }
4628         
4629     }
4630     
4631     NSArray *fileDataArray2;
4632     ATTACK *Atop;
4633     for (int i=0; i< itemNumb; i++) {
4634         NSString *fdata = @"data/AttackList3/IALdata";
4635         
4636         fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
4637         
4638         fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil];
4639         fileDataArray2 = [fileData componentsSeparatedByString:@"--------\n"];
4640         
4641         bool initAttackAdd = false;
4642         
4643         if(fileData == 0x00007fff7e19dfa0) continue;
4644         
4645         if([fileDataArray2 count] <= 0) continue;
4646         
4647         for(int j=0;j < [fileDataArray2 count];j++){
4648             if(![[fileDataArray2 objectAtIndex:0] isEqualToString:@""]) EQ[i].attackListNum++;
4649             fileDataArray = [[fileDataArray2 objectAtIndex:j] componentsSeparatedByString:@"\n"];
4650             
4651             if(!initAttackAdd)
4652                 [self AddATTACK:&EQ[i].A :0];
4653             
4654             [self AddATTACK:&EQ[i].A :j];
4655             
4656             if(!initAttackAdd) {
4657                 Atop = EQ[i].A;
4658             }
4659             initAttackAdd = true;
4660             
4661             
4662             NSArray *items = [[fileDataArray objectAtIndex:0] componentsSeparatedByString:@","];
4663             EQ[i].A->name = [[items objectAtIndex:0] retain];
4664             EQ[i].A->indexE = i+1;
4665             if([fileDataArray count] <= 1) continue;
4666             items = [[fileDataArray objectAtIndex:1] componentsSeparatedByString:@","];
4667             
4668             EQ[i].A->trig = [[items objectAtIndex:0] intValue];
4669             EQ[i].A->type = [[items objectAtIndex:1] intValue];
4670             EQ[i].A->melee = [[items objectAtIndex:2] intValue];
4671             EQ[i].A->P = [[items objectAtIndex:3] intValue];
4672             
4673             items = [[fileDataArray objectAtIndex:2] componentsSeparatedByString:@","];
4674             
4675             EQ[i].A->rangeA = [[items objectAtIndex:0] intValue];
4676             EQ[i].A->rangeB = [[items objectAtIndex:1] intValue];
4677             EQ[i].A->extent = [[items objectAtIndex:2] intValue];
4678             EQ[i].A->bullet = [[items objectAtIndex:3] intValue];
4679             EQ[i].A->hitCount = [[items objectAtIndex:4] intValue];
4680             EQ[i].A->successRate = [[items objectAtIndex:5] intValue];
4681             EQ[i].A->vigor = [[items objectAtIndex:6] intValue];
4682             EQ[i].A->hitPercent = [[items objectAtIndex:7] intValue];
4683             
4684             items = [[fileDataArray objectAtIndex:3] componentsSeparatedByString:@","];
4685             
4686             EQ[i].A->costType = [[items objectAtIndex:0] intValue];
4687             
4688             if(EQ[i].A->costType == 0) {
4689                 EQ[i].A->MP = [[items objectAtIndex:1] intValue];
4690                 EQ[i].A->pMP = [[items objectAtIndex:2] intValue];
4691             }
4692             else if(EQ[i].A->costType == 1) {
4693                 EQ[i].A->AP = [[items objectAtIndex:1] intValue];
4694                 EQ[i].A->pAP = [[items objectAtIndex:2] intValue];
4695             }
4696             else if(EQ[i].A->costType == 2) {
4697                 EQ[i].A->HP = [[items objectAtIndex:1] intValue];
4698                 EQ[i].A->pHP = [[items objectAtIndex:2] intValue];
4699             }
4700             
4701             EQ[i].A->cSupply = [[items objectAtIndex:3] intValue];
4702             EQ[i].A->cFood = [[items objectAtIndex:4] intValue];
4703             EQ[i].A->cMoney = [[items objectAtIndex:5] intValue];
4704             
4705             items = [[fileDataArray objectAtIndex:4] componentsSeparatedByString:@","];
4706             
4707             EQ[i].A->riku = [[items objectAtIndex:0] intValue];
4708             EQ[i].A->chu = [[items objectAtIndex:1] intValue];
4709             EQ[i].A->umi = [[items objectAtIndex:2] intValue];
4710             EQ[i].A->sora = [[items objectAtIndex:3] intValue];
4711             EQ[i].A->dmgExtend = [[items objectAtIndex:4] intValue];
4712             EQ[i].A->imagine = [[items objectAtIndex:5] intValue];
4713
4714             
4715             
4716             items = [[fileDataArray objectAtIndex:6] componentsSeparatedByString:@","];
4717             
4718             if(![[items objectAtIndex:0] isEqualToString:@"(null)"])
4719             EQ[i].A->AN.movName = [[items objectAtIndex:0] retain];
4720             else EQ[i].A->AN.movName = @"";
4721             EQ[i].A->AN.frame = [[items objectAtIndex:1] intValue];
4722             items = [[fileDataArray objectAtIndex:5] componentsSeparatedByString:@","];
4723             
4724             EQ[i].A->cmd = [[items objectAtIndex:0] retain];
4725             if([items count] >= 2)
4726                 EQ[i].A->hasei = [[items objectAtIndex:1] intValue];
4727             EQ[i].A->msg = @"";
4728             
4729             //[self AddDAMAGE:&UC[i].A->D :0];
4730             //[self AddDMGEXTEND:&UC[i].A->E :0];
4731             
4732             DAMAGE *Dtop = EQ[i].A->D;
4733             DMGEXTEND *Etop = EQ[i].A->E;
4734             ANI *ani = EQ[i].A->AN.ANI;
4735             ANI *aniTop = ani;
4736             static bool omfgFlag;
4737             
4738             int stringType = 0;
4739             int stringRange = 1;
4740             int stringNumber = 0;
4741             for (int k = 7; k<[fileDataArray count];k++) {
4742                 NSString *str = [fileDataArray objectAtIndex:k];
4743                 NSRange rangeSearch, rangeSearch2, rangeSearch9;
4744                 NSArray *rangeArray;
4745                 rangeSearch = [str rangeOfString:@"####"];
4746                 rangeArray = [str componentsSeparatedByString:@","];
4747                 rangeSearch2 = [str rangeOfString:@"----"];
4748                 rangeSearch9 = [str rangeOfString:@""];
4749                 static int omg = 0;
4750                 static int omg2 = 0;
4751                 static int omg3 = 0;
4752                 
4753                 if(k == [fileDataArray count] - 1){
4754                     omg2 = 0;
4755                 }
4756                 
4757                 if(stringType == 0)
4758                     if (rangeSearch.location != NSNotFound) {
4759                     }else if(rangeSearch2.location != NSNotFound){
4760                         stringType = 1;
4761                         omg = 0;
4762                     }else{
4763                         if(EQ[i].A->msg == NULL){
4764                             EQ[i].A->msg = [str retain];
4765                         }else{
4766                             if(omfgFlag) EQ[i].A->msg = [[EQ[i].A->msg stringByAppendingFormat:@"\n"] retain];
4767                             EQ[i].A->msg = [[EQ[i].A->msg stringByAppendingFormat:@"%@", str] retain];
4768                             omfgFlag = true;
4769                         }
4770                     }else if(stringType == 1){stringRange ++;
4771                         if(rangeSearch2.location != NSNotFound){
4772                             stringType = 2;
4773                         }
4774                         else if(rangeSearch.location != NSNotFound){
4775                             stringRange = 0;
4776                         }else if(stringRange == 1){
4777                             if(omg == 0) {
4778                                 [self AddDAMAGE:&EQ[i].A->D :0];
4779                                 Dtop = EQ[i].A->D;
4780                             }
4781                             omg++;
4782                             EQ[i].A->D->type = [[rangeArray objectAtIndex:0] intValue];
4783                             EQ[i].A->D->count = [[rangeArray objectAtIndex:1] intValue];
4784                             EQ[i].A->D->pCount = [[rangeArray objectAtIndex:2] intValue];
4785                         }else if(stringRange == 2){
4786                             
4787                             EQ[i].A->D->seed = [[rangeArray objectAtIndex:0] intValue];
4788                             EQ[i].A->D->sort = [[rangeArray objectAtIndex:1] intValue];
4789                             EQ[i].A->D->continium = [[rangeArray objectAtIndex:2] intValue];
4790                             EQ[i].A->D->absolute = [[rangeArray objectAtIndex:3] intValue];
4791                             EQ[i].A->D->beam = [[rangeArray objectAtIndex:4] intValue];
4792                             EQ[i].A->D->noSizeFix = [[rangeArray objectAtIndex:5] intValue];
4793                             EQ[i].A->D->fix = [[rangeArray objectAtIndex:5] intValue];
4794                             
4795                             stringNumber++;
4796                             NSString *str2 = [fileDataArray objectAtIndex:k+1];
4797                             NSRange rangeSearch3 = [str2 rangeOfString:@"####"];
4798                             if(stringNumber >= 1 && rangeSearch3.location != NSNotFound) [self AddDAMAGE:&EQ[i].A->D :stringNumber-1];
4799                             EQ[i].A->D = EQ[i].A->D->next;
4800                         }
4801                     }else if(stringType == 2){stringRange ++;
4802                         
4803                         if(rangeSearch2.location != NSNotFound){
4804                             stringType = 3;
4805                         }
4806                         else if(rangeSearch.location != NSNotFound){
4807                             stringRange = 0;
4808                             stringNumber = 0;
4809                         }else if(stringRange == 1){stringNumber++;
4810                             if(omg2 == 0) {
4811                                 [self AddDMGEXTEND:&EQ[i].A->E :0];
4812                                 Etop = EQ[i].A->E;
4813                             }
4814                             omg2++;
4815                             EQ[i].A->E->rate = [[rangeArray objectAtIndex:0] intValue];
4816                             EQ[i].A->E->hit = [[rangeArray objectAtIndex:2] intValue];
4817                             EQ[i].A->E->atkHit = [[rangeArray objectAtIndex:1] intValue];
4818                             
4819                             NSString *str2 = [fileDataArray objectAtIndex:k+1];
4820                             NSRange rangeSearch3 = [str2 rangeOfString:@"####"];
4821                             if(stringNumber >= 1 && rangeSearch3.location != NSNotFound) [self AddDMGEXTEND:&EQ[i].A->E :stringNumber-1];
4822                             
4823                             EQ[i].A->E = EQ[i].A->E->next;
4824                         }
4825                         
4826                     }else if(stringType == 3){stringRange ++;
4827                         //NSLog(@"%@", [fileDataArray objectAtIndex:k]);
4828                         if([rangeArray count] == 1){
4829                             stringType = 4;
4830                         }else{
4831                             
4832                             if(omg3 == 0){
4833                                 ani = calloc(1, sizeof(ANI));
4834                                 ani->name = [[rangeArray objectAtIndex:0] retain];
4835                                 ani->ax = [[rangeArray objectAtIndex:1] intValue];
4836                                 ani->ay = [[rangeArray objectAtIndex:2] intValue];
4837                                 ani->names = [[rangeArray objectAtIndex:3] retain];
4838                                 
4839                                 
4840                                 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
4841                                 
4842                                 NSString *path = @"data/AttackList3/IALdata";
4843                                 
4844                                 path = [path stringByAppendingFormat:@"%dE", i+1];
4845                                 
4846                                 path = [path stringByAppendingFormat:@"/"];
4847                                 
4848                                 path = [path stringByAppendingString:ani->names];
4849                                 
4850                                 ani->snd = [[[NSSound alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] byReference:NO] retain];
4851                                 
4852                                 path = @"data/AttackList3/IALdata";
4853                                 
4854                                 path = [path stringByAppendingFormat:@"%dE", i+1];
4855                                 
4856                                 path = [path stringByAppendingFormat:@"/"];
4857                                 
4858                                 path = [path stringByAppendingString:ani->name];
4859                                 
4860                                 ani->img = [[[NSImage alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path]] retain];
4861                                 
4862                                 omg3++;
4863                                 aniTop = ani;
4864                             }else{
4865                                 omg3++;
4866                                 
4867                                 ani->next = calloc(1, sizeof(ANI));
4868                                 if(omg3 == 1) aniTop = ani;
4869                                 
4870                                 ani = ani->next;
4871                                 ani->name = [[rangeArray objectAtIndex:0] retain];
4872                                 ani->ax = [[rangeArray objectAtIndex:1] intValue];
4873                                 ani->ay = [[rangeArray objectAtIndex:2] intValue];
4874                                 ani->names = [[rangeArray objectAtIndex:3] retain];
4875                                 
4876                                 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
4877                                 
4878                                 NSString *path = @"data/AttackList3/IALdata";
4879                                 
4880                                 path = [path stringByAppendingFormat:@"%dE", i+1];
4881                                 
4882                                 path = [path stringByAppendingFormat:@"/"];
4883                                 
4884                                 path = [path stringByAppendingString:ani->names];
4885                                 
4886                                 ani->snd = [[[NSSound alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] byReference:NO] retain];
4887                                 
4888                                 path = @"data/AttackList3/IALdata";
4889                                 
4890                                 path = [path stringByAppendingFormat:@"%dE", i+1];
4891                                 
4892                                 path = [path stringByAppendingFormat:@"/"];
4893                                 
4894                                 path = [path stringByAppendingString:ani->name];
4895                                 
4896                                 ani->img = [[[NSImage alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path]] retain];
4897                             }
4898                         }
4899                     }
4900             }
4901             EQ[i].A->D = Dtop;
4902             EQ[i].A->E = Etop;
4903             ani = aniTop;
4904             EQ[i].A->AN.ANI = ani;
4905             
4906             
4907             omfgFlag = false;
4908             if([fileDataArray2 count]-1 > j) EQ[i].A = EQ[i].A->next;
4909             else EQ[i].A->next = NULL;
4910         }
4911         
4912         if(EQ[i].attackListNum <= 0) Atop = NULL;
4913         EQ[i].A = Atop;
4914     }
4915     
4916     /*
4917      for (int i=0; i< itemNumb; i++)
4918      [self setTotalDamage:i row:<#(int)#>];
4919      */
4920 }
4921
4922
4923 -(ATTACK*)AllocATTACK{
4924     return (calloc(1, sizeof(ATTACK)));
4925 }
4926 -(DAMAGE*)AllocDAMAGE{
4927     return (calloc(1, sizeof(DAMAGE)));
4928 }
4929 -(DMGEXTEND*)AllocDMGEXTEND{
4930     return (calloc(1, sizeof(DMGEXTEND)));
4931 }
4932
4933 -(void)AddATTACK:(ATTACK**)top:(int)no{
4934     ATTACK *ptr = *top;
4935     if(*top == NULL){
4936         *top = [self AllocATTACK];
4937         ptr = *top;
4938         ptr->index = no;
4939         ptr->next = NULL;
4940     }else{
4941         while(ptr->next != NULL) ptr = ptr->next;
4942         ptr->next = [self AllocATTACK];
4943         ptr->index = no;
4944         ptr->next->next = NULL;
4945         
4946     }
4947     
4948     
4949 }
4950
4951 -(void)AddDAMAGE:(DAMAGE**)top:(int)no{
4952     DAMAGE *ptr = *top;
4953     if(*top == NULL){
4954         *top = [self AllocDAMAGE];
4955         ptr = *top;
4956         ptr->index = no;
4957         ptr->next = NULL;
4958     }else{
4959         while(ptr->next != NULL) ptr = ptr->next;
4960         ptr->next = [self AllocDAMAGE];
4961         ptr->index = no;
4962         ptr->next->next = NULL;
4963         
4964     }
4965     
4966     
4967 }
4968
4969 -(void)AddDMGEXTEND:(DMGEXTEND**)top:(int)no{
4970     DMGEXTEND *ptr = *top;
4971     if(*top == NULL){
4972         *top = [self AllocDMGEXTEND];
4973         ptr = *top;
4974         ptr->index = no;
4975         ptr->next = NULL;
4976     }else{
4977         while(ptr->next != NULL) ptr = ptr->next;
4978         ptr->next = [self AllocDMGEXTEND];
4979         ptr->index = no;
4980         ptr->next->next = NULL;
4981         
4982     }
4983     
4984     
4985 }
4986
4987
4988
4989 -(void)initItemList{
4990     equipListMA = [NSMutableArray new];
4991     
4992     [self willChangeValueForKey:@"equipItemMA"];
4993     [equipItemMA removeAllObjects];
4994     [self didChangeValueForKey:@"equipItemMA"];
4995     
4996     for(int i = 0;i < eItemNum;i++){
4997         NSMutableDictionary* dict = [NSMutableDictionary new];
4998         NSString *str = @"";
4999         [dict setValue:[NSString stringWithFormat:@"%@", EQ[i].name] forKey:@"name"];
5000         
5001         if(!EQ[i].name){
5002             EQ[i].name = [[NSString stringWithFormat:@"新規アイテム%d", i] retain];
5003             EQ[i].nameRecognition = [[NSString stringWithFormat:@"新規アイテム%d", i] retain];
5004             EQ[i].nameID = [[NSString stringWithFormat:@"eq%d", i] retain];
5005             [dict setValue:EQ[i].name forKey:@"name"];
5006         }
5007         
5008         if(EQ[i].HP != 0)
5009             str = [str stringByAppendingFormat:@"HP %d ", (int)EQ[i].HP];
5010         if(EQ[i].MP != 0)
5011             str = [str stringByAppendingFormat:@"MP %d ", (int)EQ[i].MP];
5012         if(EQ[i].STR != 0) 
5013             str = [str stringByAppendingFormat:@"STR %d ", (int)EQ[i].STR];
5014         if(EQ[i].VIT != 0)
5015             str = [str stringByAppendingFormat:@"VIT %d ", (int)EQ[i].VIT];
5016         if(EQ[i].AGI != 0)
5017             str = [str stringByAppendingFormat:@"AGI %d ", (int)EQ[i].AGI];
5018         if(EQ[i].DEX != 0)
5019             str = [str stringByAppendingFormat:@"DEX %d ", (int)EQ[i].DEX];
5020         if(EQ[i].MEN != 0)
5021             str = [str stringByAppendingFormat:@"MEN %d ", (int)EQ[i].MEN];
5022         if(EQ[i].INT != 0)
5023             str = [str stringByAppendingFormat:@"INT %d ", (int)EQ[i].INT];
5024         if(EQ[i].LUK != 0)
5025             str = [str stringByAppendingFormat:@"LUK %d ", (int)EQ[i].LUK];
5026         if(EQ[i].Weight != 0)
5027             str = [str stringByAppendingFormat:@"重さ %d ", (int)EQ[i].Weight];
5028         
5029         [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"memo"];
5030         
5031         [self willChangeValueForKey:@"equipListMA"];
5032         [equipListMA addObject:dict];
5033         [self didChangeValueForKey:@"equipListMA"];
5034     }
5035     
5036     
5037 }
5038
5039
5040 -(void)initUnitChipList{
5041     unitChipListMA = [NSMutableArray new];
5042     
5043     for(int i = 0;i < chipNumb;i++){
5044         NSMutableDictionary* dict = [NSMutableDictionary new];
5045         if(!UC[i].nameID){
5046             UC[i].name = [[NSString stringWithFormat:@"新規ユニット"] retain];
5047             UC[i].nameNick = [[NSString stringWithFormat:@"新規ニックネーム"] retain];
5048             UC[i].nameClass = [[NSString stringWithFormat:@"新規クラス"] retain];
5049             UC[i].name = [[UC[i].name stringByAppendingFormat:@"%d",i+1] retain];
5050             UC[i].nameID = @"uc";
5051             UC[i].nameID = [[UC[i].nameID stringByAppendingFormat:@"%d",i+1] retain];
5052             UC[i].nameRecognition = [@"新規名前" retain];
5053             UC[i].nameRecognition = [[UC[i].nameRecognition stringByAppendingFormat:@"%d",i+1] retain];
5054             UC[i].iName = @"uc";
5055             UC[i].iName = [[UC[i].iName stringByAppendingFormat:@"%d",i+1] retain];
5056             UC[i].iNameb = @"ucb";
5057             UC[i].iNameb = [[UC[i].iNameb stringByAppendingFormat:@"%d",i+1] retain];
5058             UC[i].R_M.air = 100;
5059             UC[i].R_M.arrow = 100;
5060             UC[i].R_M.blood = 100;
5061             UC[i].R_M.blow = 100;
5062             
5063             UC[i].R_M.charm = 100;
5064             UC[i].R_M.cold = 100;
5065             UC[i].R_M.confusion = 100;
5066             UC[i].R_M.dark = 100;
5067             
5068             UC[i].R_M.electoric = 100;
5069             UC[i].R_M.explosion = 100;
5070             UC[i].R_M.flame = 100;
5071             UC[i].R_M.gas = 100;
5072             
5073             UC[i].R_M.gun = 100;
5074             UC[i].R_M.holy = 100;
5075             UC[i].R_M.paralysis = 100;
5076             UC[i].R_M.poison = 100;
5077             
5078             UC[i].R_M.shell = 100;
5079             UC[i].R_M.silent = 100;
5080             UC[i].R_M.slash = 100;
5081             UC[i].R_M.sleep = 100;
5082             
5083             UC[i].R_M.stub = 100;
5084             UC[i].R_M.water = 100;
5085             
5086         }
5087         
5088         [dict setValue:UC[i].img forKey:@"img"];
5089         [dict setValue:UC[i].imgb forKey:@"imgBig"];
5090         [dict setValue:[NSString stringWithFormat:@"%@", UC[i].name] forKey:@"name"];
5091         [dict setValue:[NSString stringWithFormat:@"%g", UC[i].S_M.HP] forKey:@"HP"];
5092         [dict setValue:[NSString stringWithFormat:@"%g", UC[i].S_M.BP] forKey:@"BP"];
5093         [dict setValue:[NSString stringWithFormat:@"%@", UC[i].nameClass] forKey:@"nameC"];
5094         [self willChangeValueForKey:@"unitChipListMA"];
5095         [unitChipListMA addObject:dict];
5096         [self didChangeValueForKey:@"unitChipListMA"];
5097     }
5098     
5099     
5100 }
5101
5102 -(void)initTotalDamage{
5103     for(int i = 0;i < chipNumb;i++){
5104         int j = 0;
5105         while (j < 64) {
5106             [self setTotalDamage:i row:j];
5107             j++;
5108         }
5109     }
5110     
5111     for(int i = 0;i < itemNumb;i++){
5112         int j = 0;
5113         while (j < 64) {
5114             [self setTotalDamageEQ:i row:j];
5115             j++;
5116         }
5117     }
5118     
5119     for(int i = 0;i < LCN;i++){
5120         int j = 0;
5121         while (j < 64) {
5122             [self setTotalDamage2:i row:j];
5123             j++;
5124         }
5125     }
5126
5127 }
5128
5129 -(void)initAttackList{
5130     attackListMA = [NSMutableArray new];
5131     
5132     [self willChangeValueForKey:@"attackListMA"];
5133     [attackListMA removeAllObjects];
5134     [self didChangeValueForKey:@"attackListMA"];
5135     
5136     int i0 = 0;
5137     
5138     ATTACK *Atop = UC[clickIndex].A;
5139     
5140     while (i0 < 64) {
5141      [self setTotalDamage:(int)clickIndex row:i0];
5142         i0++;
5143     }
5144     
5145     UC[clickIndex].A = Atop;
5146     
5147     if(UC[clickIndex].A == NULL) return;
5148     
5149     for(int i = 0;i < UC[clickIndex].attackListNum;i++){
5150         NSMutableDictionary* dict = [NSMutableDictionary new];
5151         
5152         NSString *str = NULL;
5153         double countNumb;
5154         if(UC[clickIndex].A == NULL) break;
5155         if(UC[clickIndex].A->name == NULL) continue;
5156         
5157         if(UC[clickIndex].A->D != NULL){
5158             if(UC[clickIndex].A->D->type == 0) str = [NSString stringWithFormat:@"攻"];
5159             if(UC[clickIndex].A->D->type == 1) str = [NSString stringWithFormat:@"防"];
5160             if(UC[clickIndex].A->D->type == 2) str = [NSString stringWithFormat:@"命"];
5161             if(UC[clickIndex].A->D->type == 3) str = [NSString stringWithFormat:@"回"];
5162             if(UC[clickIndex].A->D->type == 4) str = [NSString stringWithFormat:@"演"];
5163             if(UC[clickIndex].A->D->type == 5) str = [NSString stringWithFormat:@"会"];
5164             
5165             countNumb = UC[clickIndex].A->totalD;
5166             str = [str stringByAppendingFormat:@"%g", countNumb];
5167             
5168         }
5169         [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"atk"];
5170         
5171         [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].A->name] forKey:@"name"];
5172         [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->hitPercent] forKey:@"hit"];
5173         [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->vigor] forKey:@"vigor"];
5174         [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->bullet] forKey:@"bullet"];
5175         NSString *rangeStr = @"";
5176         if(UC[clickIndex].A->P) rangeStr = @"P";
5177         if(UC[clickIndex].A->melee) rangeStr = [rangeStr stringByAppendingFormat:@"●"];
5178         else rangeStr = [rangeStr stringByAppendingFormat:@"□"];
5179         if(UC[clickIndex].A->rangeA == UC[clickIndex].A->rangeB)
5180             [dict setValue:[NSString stringWithFormat:@"%@%d", rangeStr, UC[clickIndex].A->rangeA] forKey:@"range"];
5181         else
5182             [dict setValue:[NSString stringWithFormat:@"%@%d-%d", rangeStr, UC[clickIndex].A->rangeA, UC[clickIndex].A->rangeB] forKey:@"range"];
5183         
5184         if(UC[clickIndex].A->MP > 0)
5185         [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"];
5186         else if(UC[clickIndex].A->AP > 0)
5187         [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"];
5188         else if(UC[clickIndex].A->HP > 0)
5189         [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"];
5190         
5191         [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].A->cmd] forKey:@"command"];
5192         
5193         DAMAGE *dmgTop = UC[clickIndex].A->D;
5194         NSString *dstr = @"";
5195         bool b1 = false;
5196         bool b2 = false;
5197         bool b3 = false;
5198         bool b4 = false;
5199         bool b5 = false;
5200         bool b6 = false;
5201         bool b7 = false;
5202         bool b8 = false;
5203         bool b9 = false;
5204         bool b10 = false;
5205         bool b11 = false;
5206         bool b12 = false;
5207         bool b13 = false;
5208         bool b14 = false;
5209         bool b15 = false;
5210         bool b16 = false;
5211         bool b17 = false;
5212         bool b18 = false;
5213         bool b19 = false;
5214         bool b20 = false;
5215         
5216         while(UC[clickIndex].A->D){
5217             
5218             if(UC[clickIndex].A->D->fix == 0 && !b1) {dstr = [dstr stringByAppendingString:@"通"];
5219                 b1 = true;
5220             }
5221             if(UC[clickIndex].A->D->fix == 1 && !b2) {dstr = [dstr stringByAppendingString:@"弓"];
5222                 b2 = true;
5223             }
5224             if(UC[clickIndex].A->D->fix == 2 && !b3) {dstr = [dstr stringByAppendingString:@"銃"];
5225                 b3 = true;
5226             }
5227             if(UC[clickIndex].A->imagine == true && !b4){dstr = [dstr stringByAppendingString:@"異"];
5228                 b4  = true;
5229             }
5230             if(UC[clickIndex].A->D->seed == 0 && !b5) {dstr = [dstr stringByAppendingString:@"打"];
5231                 b5  = true;
5232             }
5233             if(UC[clickIndex].A->D->seed == 1 && !b6) {dstr = [dstr stringByAppendingString:@"斬"];
5234                 b6  = true;
5235             }
5236             if(UC[clickIndex].A->D->seed == 2 && !b7) {dstr = [dstr stringByAppendingString:@"突"];
5237                 b7  = true;
5238             }
5239             if(UC[clickIndex].A->D->seed == 3 && !b8) {dstr = [dstr stringByAppendingString:@"射"];
5240                 b8  = true;
5241             }
5242             if(UC[clickIndex].A->D->seed == 4 && !b9) {dstr = [dstr stringByAppendingString:@"銃"];
5243                 b9  = true;
5244             }
5245             if(UC[clickIndex].A->D->seed == 5 && !b10) {dstr = [dstr stringByAppendingString:@"砲"];
5246                 b10  = true;
5247             }
5248             if(UC[clickIndex].A->D->seed == 6 && !b11) {dstr = [dstr stringByAppendingString:@"火"];
5249                 b11  = true;
5250             }
5251             if(UC[clickIndex].A->D->seed == 7 && !b12) {dstr = [dstr stringByAppendingString:@"冷"];
5252                 b12  = true;
5253             }
5254             if(UC[clickIndex].A->D->seed == 8 && !b13) {dstr = [dstr stringByAppendingString:@"電"];
5255                 b13  = true;
5256             }
5257             if(UC[clickIndex].A->D->seed == 9 && !b14) {dstr = [dstr stringByAppendingString:@"風"];
5258                 b14  = true;
5259             }
5260             if(UC[clickIndex].A->D->seed == 10 && !b15) {dstr = [dstr stringByAppendingString:@"水"];
5261                 b15  = true;
5262             }
5263             if(UC[clickIndex].A->D->seed == 11 && !b16) {dstr = [dstr stringByAppendingString:@"ガ"];
5264                 b16  = true;
5265             }
5266             if(UC[clickIndex].A->D->seed == 12 && !b17) {dstr = [dstr stringByAppendingString:@"\b聖"];
5267                 b17  = true;
5268             }
5269             if(UC[clickIndex].A->D->seed == 13 && !b18) {dstr = [dstr stringByAppendingString:@"闇"];
5270                 b18  = true;
5271             }
5272             if(UC[clickIndex].A->D->seed == 14 && !b19) {dstr = [dstr stringByAppendingString:@"爆"];
5273                 b19  = true;
5274             }
5275             if(UC[clickIndex].A->D->seed == 15 && !b20) {dstr = [dstr stringByAppendingString:@"血"];
5276                 b20  = true;
5277             }
5278         
5279             UC[clickIndex].A->D = UC[clickIndex].A->D->next;
5280         }
5281         UC[clickIndex].A->D = dmgTop;
5282         
5283         [dict setValue:dstr forKey:@"memo"];
5284         
5285         [self willChangeValueForKey:@"attackListMA"];
5286         [attackListMA addObject:dict];
5287         [self didChangeValueForKey:@"attackListMA"];
5288         
5289         UC[clickIndex].A = UC[clickIndex].A->next;
5290     }
5291     
5292     UC[clickIndex].A = Atop;
5293     
5294 }
5295
5296 -(void)initAttackList2{
5297     attackListMA = [NSMutableArray new];
5298     
5299     [self willChangeValueForKey:@"attackListMA"];
5300     [attackListMA removeAllObjects];
5301     [self didChangeValueForKey:@"attackListMA"];
5302     
5303     int i0 = 0;
5304     
5305     ATTACK *Atop = LC[cil].A;
5306     
5307     while (i0 < 64) {
5308         [self setTotalDamage2:(int)cil row:i0];
5309         i0++;
5310     }
5311     
5312     LC[cil].A = Atop;
5313     
5314     if(LC[cil].A == NULL) return;
5315     
5316     for(int i = 0;i < LC[cil].attackListNum;i++){
5317         NSMutableDictionary* dict = [NSMutableDictionary new];
5318         
5319         NSString *str = NULL;
5320         double countNumb = 0;
5321         if(LC[cil].A == NULL) break;
5322         if(LC[cil].A->name == NULL) continue;
5323         
5324         if(LC[cil].A->D != NULL){
5325
5326             str = [NSString stringWithFormat:@"攻"];
5327             
5328             countNumb = LC[cil].A->totalD;
5329             str = [str stringByAppendingFormat:@"%g", countNumb];
5330             
5331         }
5332         [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"atk"];
5333         
5334         [dict setValue:[NSString stringWithFormat:@"%@", LC[cil].A->name] forKey:@"name"];
5335         [dict setValue:[NSString stringWithFormat:@"%d", LC[cil].A->hitPercent] forKey:@"hit"];
5336         [dict setValue:[NSString stringWithFormat:@"%d", LC[cil].A->vigor] forKey:@"vigor"];
5337         [dict setValue:[NSString stringWithFormat:@"%d", LC[cil].A->bullet] forKey:@"bullet"];
5338         NSString *rangeStr = @"";
5339         if(LC[cil].A->P) rangeStr = @"P";
5340         if(LC[cil].A->melee) rangeStr = [rangeStr stringByAppendingFormat:@"●"];
5341         else rangeStr = [rangeStr stringByAppendingFormat:@"□"];
5342         if(LC[cil].A->rangeA == LC[cil].A->rangeB)
5343             [dict setValue:[NSString stringWithFormat:@"%@%d", rangeStr, LC[cil].A->rangeA] forKey:@"range"];
5344         else
5345             [dict setValue:[NSString stringWithFormat:@"%@%d-%d", rangeStr, LC[cil].A->rangeA, LC[cil].A->rangeB] forKey:@"range"];
5346         
5347         if(LC[cil].A->EN > 0)
5348             [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"];
5349         if(LC[cil].A->HP > 0)
5350             [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"];
5351         
5352         [dict setValue:[NSString stringWithFormat:@"%@", LC[cil].A->cmd] forKey:@"command"];
5353         DAMAGE *dmgTop = LC[cil].A->D;
5354         NSString *dstr = @"";
5355         bool b1 = false;
5356         bool b2 = false;
5357         bool b3 = false;
5358         bool b4 = false;
5359         bool b5 = false;
5360         bool b6 = false;
5361         bool b7 = false;
5362         bool b8 = false;
5363         bool b9 = false;
5364         bool b10 = false;
5365         bool b11 = false;
5366         bool b12 = false;
5367         bool b13 = false;
5368         bool b14 = false;
5369         bool b15 = false;
5370         bool b16 = false;
5371         bool b17 = false;
5372         bool b18 = false;
5373         bool b19 = false;
5374         bool b20 = false;
5375         
5376         while(LC[cil].A->D){
5377             
5378             if(LC[cil].A->D->fix == 0 && !b1) {dstr = [dstr stringByAppendingString:@"通"];
5379                 b1 = true;
5380             }
5381             if(LC[cil].A->D->fix == 1 && !b2) {dstr = [dstr stringByAppendingString:@"弓"];
5382                 b2 = true;
5383             }
5384             if(LC[cil].A->D->fix == 2 && !b3) {dstr = [dstr stringByAppendingString:@"銃"];
5385                 b3 = true;
5386             }
5387             if(LC[cil].A->imagine == true && !b4){dstr = [dstr stringByAppendingString:@"異"];
5388                 b4  = true;
5389             }
5390             if(LC[cil].A->D->seed == 0 && !b5) {dstr = [dstr stringByAppendingString:@"打"];
5391                 b5  = true;
5392             }
5393             if(LC[cil].A->D->seed == 1 && !b6) {dstr = [dstr stringByAppendingString:@"斬"];
5394                 b6  = true;
5395             }
5396             if(LC[cil].A->D->seed == 2 && !b7) {dstr = [dstr stringByAppendingString:@"突"];
5397                 b7  = true;
5398             }
5399             if(LC[cil].A->D->seed == 3 && !b8) {dstr = [dstr stringByAppendingString:@"射"];
5400                 b8  = true;
5401             }
5402             if(LC[cil].A->D->seed == 4 && !b9) {dstr = [dstr stringByAppendingString:@"銃"];
5403                 b9  = true;
5404             }
5405             if(LC[cil].A->D->seed == 5 && !b10) {dstr = [dstr stringByAppendingString:@"砲"];
5406                 b10  = true;
5407             }
5408             if(LC[cil].A->D->seed == 6 && !b11) {dstr = [dstr stringByAppendingString:@"火"];
5409                 b11  = true;
5410             }
5411             if(LC[cil].A->D->seed == 7 && !b12) {dstr = [dstr stringByAppendingString:@"冷"];
5412                 b12  = true;
5413             }
5414             if(LC[cil].A->D->seed == 8 && !b13) {dstr = [dstr stringByAppendingString:@"電"];
5415                 b13  = true;
5416             }
5417             if(LC[cil].A->D->seed == 9 && !b14) {dstr = [dstr stringByAppendingString:@"風"];
5418                 b14  = true;
5419             }
5420             if(LC[cil].A->D->seed == 10 && !b15) {dstr = [dstr stringByAppendingString:@"水"];
5421                 b15  = true;
5422             }
5423             if(LC[cil].A->D->seed == 11 && !b16) {dstr = [dstr stringByAppendingString:@"ガ"];
5424                 b16  = true;
5425             }
5426             if(LC[cil].A->D->seed == 12 && !b17) {dstr = [dstr stringByAppendingString:@"\b聖"];
5427                 b17  = true;
5428             }
5429             if(LC[cil].A->D->seed == 13 && !b18) {dstr = [dstr stringByAppendingString:@"闇"];
5430                 b18  = true;
5431             }
5432             if(LC[cil].A->D->seed == 14 && !b19) {dstr = [dstr stringByAppendingString:@"爆"];
5433                 b19  = true;
5434             }
5435             if(LC[cil].A->D->seed == 15 && !b20) {dstr = [dstr stringByAppendingString:@"血"];
5436                 b20  = true;
5437             }
5438             
5439             LC[cil].A->D = LC[cil].A->D->next;
5440         }
5441         LC[cil].A->D = dmgTop;
5442         
5443         [dict setValue:dstr forKey:@"memo"];
5444         
5445         [self willChangeValueForKey:@"attackListMA"];
5446         [attackListMA addObject:dict];
5447         [self didChangeValueForKey:@"attackListMA"];
5448         
5449         LC[cil].A = LC[cil].A->next;
5450     }
5451     
5452     LC[cil].A = Atop;
5453     
5454 }
5455
5456 -(void)initAttackListEQ{
5457     attackListMA = [NSMutableArray new];
5458     
5459     [self willChangeValueForKey:@"attackListMA"];
5460     [attackListMA removeAllObjects];
5461     [self didChangeValueForKey:@"attackListMA"];
5462     
5463     int i0 = 0;
5464     
5465     ATTACK *Atop = EQ[clickIndexEQ].A;
5466     
5467     while (i0 < 64) {
5468         [self setTotalDamageEQ:(int)clickIndexEQ row:i0];
5469         i0++;
5470     }
5471     
5472     EQ[clickIndexEQ].A = Atop;
5473     
5474     if(EQ[clickIndexEQ].A == NULL) return;
5475     
5476     for(int i = 0;i < EQ[clickIndexEQ].attackListNum;i++){
5477         NSMutableDictionary* dict = [NSMutableDictionary new];
5478         
5479         NSString *str = NULL;
5480         double countNumb;
5481         if(EQ[clickIndexEQ].A == NULL) break;
5482         if(EQ[clickIndexEQ].A->name == NULL) continue;
5483         
5484         if(EQ[clickIndexEQ].A->D != NULL){
5485             if(EQ[clickIndexEQ].A->D->type == 0) str = [NSString stringWithFormat:@"攻"];
5486             if(EQ[clickIndexEQ].A->D->type == 1) str = [NSString stringWithFormat:@"防"];
5487             if(EQ[clickIndexEQ].A->D->type == 2) str = [NSString stringWithFormat:@"命"];
5488             if(EQ[clickIndexEQ].A->D->type == 3) str = [NSString stringWithFormat:@"回"];
5489             if(EQ[clickIndexEQ].A->D->type == 4) str = [NSString stringWithFormat:@"演"];
5490             if(EQ[clickIndexEQ].A->D->type == 5) str = [NSString stringWithFormat:@"会"];
5491             
5492             countNumb = EQ[clickIndexEQ].A->totalD;
5493             str = [str stringByAppendingFormat:@"%g", countNumb];
5494             
5495         }
5496         [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"atk"];
5497         
5498         [dict setValue:[NSString stringWithFormat:@"%@", EQ[clickIndexEQ].A->name] forKey:@"name"];
5499         [dict setValue:[NSString stringWithFormat:@"%d", EQ[clickIndexEQ].A->hitPercent] forKey:@"hit"];
5500         [dict setValue:[NSString stringWithFormat:@"%d", EQ[clickIndexEQ].A->vigor] forKey:@"vigor"];
5501         [dict setValue:[NSString stringWithFormat:@"%d", EQ[clickIndexEQ].A->bullet] forKey:@"bullet"];
5502         NSString *rangeStr = @"";
5503         if(EQ[clickIndexEQ].A->P) rangeStr = @"P";
5504         if(EQ[clickIndexEQ].A->melee) rangeStr = [rangeStr stringByAppendingFormat:@"●"];
5505         else rangeStr = [rangeStr stringByAppendingFormat:@"□"];
5506         if(EQ[clickIndexEQ].A->rangeA == EQ[clickIndexEQ].A->rangeB)
5507             [dict setValue:[NSString stringWithFormat:@"%@%d", rangeStr, EQ[clickIndexEQ].A->rangeA] forKey:@"range"];
5508         else
5509             [dict setValue:[NSString stringWithFormat:@"%@%d-%d", rangeStr, EQ[clickIndexEQ].A->rangeA, EQ[clickIndexEQ].A->rangeB] forKey:@"range"];
5510         
5511         if(EQ[clickIndexEQ].A->MP > 0)
5512             [dict setValue:[NSString stringWithFormat:@"MP%g", EQ[clickIndexEQ].A->MP + floor(EQ[clickIndexEQ].A->pMP)] forKey:@"cost"];
5513         else if(EQ[clickIndexEQ].A->AP > 0)
5514             [dict setValue:[NSString stringWithFormat:@"AP%g", EQ[clickIndexEQ].A->AP+ floor(EQ[clickIndexEQ].A->pAP)] forKey:@"cost"];
5515         else if(EQ[clickIndexEQ].A->HP > 0)
5516             [dict setValue:[NSString stringWithFormat:@"HP%g", EQ[clickIndexEQ].A->HP+ floor(EQ[clickIndexEQ].A->pHP)] forKey:@"cost"];
5517         
5518         [dict setValue:[NSString stringWithFormat:@"%@", EQ[clickIndexEQ].A->cmd] forKey:@"command"];
5519         
5520         DAMAGE *dmgTop = EQ[clickIndexEQ].A->D;
5521         NSString *dstr = @"";
5522         bool b1 = false;
5523         bool b2 = false;
5524         bool b3 = false;
5525         bool b4 = false;
5526         bool b5 = false;
5527         bool b6 = false;
5528         bool b7 = false;
5529         bool b8 = false;
5530         bool b9 = false;
5531         bool b10 = false;
5532         bool b11 = false;
5533         bool b12 = false;
5534         bool b13 = false;
5535         bool b14 = false;
5536         bool b15 = false;
5537         bool b16 = false;
5538         bool b17 = false;
5539         bool b18 = false;
5540         bool b19 = false;
5541         bool b20 = false;
5542         
5543         while(EQ[clickIndexEQ].A->D){
5544             
5545             if(EQ[clickIndexEQ].A->D->fix == 0 && !b1) {dstr = [dstr stringByAppendingString:@"通"];
5546                 b1 = true;
5547             }
5548             if(EQ[clickIndexEQ].A->D->fix == 1 && !b2) {dstr = [dstr stringByAppendingString:@"弓"];
5549                 b2 = true;
5550             }
5551             if(EQ[clickIndexEQ].A->D->fix == 2 && !b3) {dstr = [dstr stringByAppendingString:@"銃"];
5552                 b3 = true;
5553             }
5554             if(EQ[clickIndexEQ].A->imagine == true && !b4){dstr = [dstr stringByAppendingString:@"異"];
5555                 b4  = true;
5556             }
5557             if(EQ[clickIndexEQ].A->D->seed == 0 && !b5) {dstr = [dstr stringByAppendingString:@"打"];
5558                 b5  = true;
5559             }
5560             if(EQ[clickIndexEQ].A->D->seed == 1 && !b6) {dstr = [dstr stringByAppendingString:@"斬"];
5561                 b6  = true;
5562             }
5563             if(EQ[clickIndexEQ].A->D->seed == 2 && !b7) {dstr = [dstr stringByAppendingString:@"突"];
5564                 b7  = true;
5565             }
5566             if(EQ[clickIndexEQ].A->D->seed == 3 && !b8) {dstr = [dstr stringByAppendingString:@"射"];
5567                 b8  = true;
5568             }
5569             if(EQ[clickIndexEQ].A->D->seed == 4 && !b9) {dstr = [dstr stringByAppendingString:@"銃"];
5570                 b9  = true;
5571             }
5572             if(EQ[clickIndexEQ].A->D->seed == 5 && !b10) {dstr = [dstr stringByAppendingString:@"砲"];
5573                 b10  = true;
5574             }
5575             if(EQ[clickIndexEQ].A->D->seed == 6 && !b11) {dstr = [dstr stringByAppendingString:@"火"];
5576                 b11  = true;
5577             }
5578             if(EQ[clickIndexEQ].A->D->seed == 7 && !b12) {dstr = [dstr stringByAppendingString:@"冷"];
5579                 b12  = true;
5580             }
5581             if(EQ[clickIndexEQ].A->D->seed == 8 && !b13) {dstr = [dstr stringByAppendingString:@"電"];
5582                 b13  = true;
5583             }
5584             if(EQ[clickIndexEQ].A->D->seed == 9 && !b14) {dstr = [dstr stringByAppendingString:@"風"];
5585                 b14  = true;
5586             }
5587             if(EQ[clickIndexEQ].A->D->seed == 10 && !b15) {dstr = [dstr stringByAppendingString:@"水"];
5588                 b15  = true;
5589             }
5590             if(EQ[clickIndexEQ].A->D->seed == 11 && !b16) {dstr = [dstr stringByAppendingString:@"ガ"];
5591                 b16  = true;
5592             }
5593             if(EQ[clickIndexEQ].A->D->seed == 12 && !b17) {dstr = [dstr stringByAppendingString:@"\b聖"];
5594                 b17  = true;
5595             }
5596             if(EQ[clickIndexEQ].A->D->seed == 13 && !b18) {dstr = [dstr stringByAppendingString:@"闇"];
5597                 b18  = true;
5598             }
5599             if(EQ[clickIndexEQ].A->D->seed == 14 && !b19) {dstr = [dstr stringByAppendingString:@"爆"];
5600                 b19  = true;
5601             }
5602             if(EQ[clickIndexEQ].A->D->seed == 15 && !b20) {dstr = [dstr stringByAppendingString:@"血"];
5603                 b20  = true;
5604             }
5605             
5606             EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next;
5607         }
5608         EQ[clickIndexEQ].A->D = dmgTop;
5609         
5610         [dict setValue:dstr forKey:@"memo"];
5611         [self willChangeValueForKey:@"attackListMA"];
5612         [attackListMA addObject:dict];
5613         [self didChangeValueForKey:@"attackListMA"];
5614         
5615         EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
5616     }
5617     
5618     EQ[clickIndexEQ].A = Atop;
5619     
5620 }
5621
5622
5623 -(IBAction)skillListBtnUCL:(id)sender{
5624     windowPoint.x = [UCLDetailPanel frame].origin.x + 40;
5625     windowPoint.y = [UCLDetailPanel frame].origin.y + 80;
5626     [UCLPanelSkill setFrameOrigin:windowPoint];
5627     [self initSkill];
5628     [self initSkillList];
5629     SKLrow = -1;
5630     [UCLPanelSkill makeKeyAndOrderFront:nil];
5631 }
5632
5633 -(IBAction)attackListBtnlUCL:(id)sender{
5634     
5635     if(!loadChipSideFlag){
5636         [self initAttackSet];
5637     }else{
5638         [self initAttackSet2];
5639     }
5640     
5641     /*
5642     windowPoint.x = [UCLDetailPanel frame].origin.x;
5643     windowPoint.y = [UCLDetailPanel frame].origin.y;
5644     [UCLPanelAttackList setFrameOrigin:windowPoint];
5645      */
5646     [UCLPanelAttackList makeKeyAndOrderFront:nil];
5647 }
5648
5649 -(IBAction)registListBtnlUCL:(id)sender{
5650     
5651     
5652     if(!loadChipSideFlag){
5653     [RETFblow setIntValue:UC[clickIndex].R_M.blow];
5654     [RETFslash setIntValue:UC[clickIndex].R_M.slash];
5655     [RETFstub setIntValue:UC[clickIndex].R_M.stub];
5656     [RETFarrow setIntValue:UC[clickIndex].R_M.arrow];
5657     [RETFgun setIntValue:UC[clickIndex].R_M.gun];
5658     [RETFshell setIntValue:UC[clickIndex].R_M.shell];
5659     
5660     [RETFflame setIntValue:UC[clickIndex].R_M.flame];
5661     [RETFcold setIntValue:UC[clickIndex].R_M.cold];
5662     [RETFelectoric setIntValue:UC[clickIndex].R_M.electoric];
5663     [RETFair setIntValue:UC[clickIndex].R_M.air];
5664     [RETFwater setIntValue:UC[clickIndex].R_M.water];
5665     [RETFgas setIntValue:UC[clickIndex].R_M.gas];
5666     [RETFholy setIntValue:UC[clickIndex].R_M.holy];
5667     [RETFdark setIntValue:UC[clickIndex].R_M.dark];
5668     [RETFexplosion setIntValue:UC[clickIndex].R_M.explosion];
5669     [RETFblood setIntValue:UC[clickIndex].R_M.blood];
5670     
5671     [RETFparalysis setIntValue:UC[clickIndex].R_M.paralysis];
5672     [RETFconfusion setIntValue:UC[clickIndex].R_M.confusion];
5673     [RETFpoison setIntValue:UC[clickIndex].R_M.poison];
5674     [RETFsleep setIntValue:UC[clickIndex].R_M.sleep];
5675     [RETFcharm setIntValue:UC[clickIndex].R_M.charm];
5676     [RETFsilent setIntValue:UC[clickIndex].R_M.silent];
5677         
5678     }else{
5679         [RETFblow setIntValue:LC[cil].R_M.blow];
5680         [RETFslash setIntValue:LC[cil].R_M.slash];
5681         [RETFstub setIntValue:LC[cil].R_M.stub];
5682         [RETFarrow setIntValue:LC[cil].R_M.arrow];
5683         [RETFgun setIntValue:LC[cil].R_M.gun];
5684         [RETFshell setIntValue:LC[cil].R_M.shell];
5685         
5686         [RETFflame setIntValue:LC[cil].R_M.flame];
5687         [RETFcold setIntValue:LC[cil].R_M.cold];
5688         [RETFelectoric setIntValue:LC[cil].R_M.electoric];
5689         [RETFair setIntValue:LC[cil].R_M.air];
5690         [RETFwater setIntValue:LC[cil].R_M.water];
5691         [RETFgas setIntValue:LC[cil].R_M.gas];
5692         [RETFholy setIntValue:LC[cil].R_M.holy];
5693         [RETFdark setIntValue:LC[cil].R_M.dark];
5694         [RETFexplosion setIntValue:LC[cil].R_M.explosion];
5695         [RETFblood setIntValue:LC[cil].R_M.blood];
5696         
5697         [RETFparalysis setIntValue:LC[cil].R_M.paralysis];
5698         [RETFconfusion setIntValue:LC[cil].R_M.confusion];
5699         [RETFpoison setIntValue:LC[cil].R_M.poison];
5700         [RETFsleep setIntValue:LC[cil].R_M.sleep];
5701         [RETFcharm setIntValue:LC[cil].R_M.charm];
5702         [RETFsilent setIntValue:LC[cil].R_M.silent];
5703     
5704     }
5705     
5706     windowPoint.x = [UCLDetailPanel frame].origin.x + 150;
5707     windowPoint.y = [UCLDetailPanel frame].origin.y;
5708     [UCLPanelRegist setFrameOrigin:windowPoint];
5709     [UCLPanelRegist makeKeyAndOrderFront:nil];
5710 }
5711
5712
5713 -(IBAction)skillListBtnSubmitUCL:(id)sender{
5714     [self willChangeValueForKey:@"skillListMA"];
5715     [skillListMA removeAllObjects];
5716     [self didChangeValueForKey:@"skillListMA"];
5717     [UCLPanelSkill close];
5718 }
5719 -(IBAction)attackListBtnSubmitlUCL:(id)sender{
5720     
5721     if(EQmodeFlag){
5722         [self saveDataALEQ];
5723         
5724         [UCLPanelAttack close];
5725         return;
5726     }
5727     
5728     if(!loadChipSideFlag){
5729         [self saveDataAL];
5730     }else{
5731         [self saveDataAL2];
5732     }
5733     
5734     clickIndexAL = -1;
5735     [UCLPanelAttack close];
5736 }
5737 -(IBAction)registListBtnlSubmitUCL:(id)sender{
5738     
5739     
5740     if(!loadChipSideFlag){
5741     UC[clickIndex].R_M.blow = [RETFblow intValue];
5742     UC[clickIndex].R_M.slash = [RETFslash intValue];
5743     UC[clickIndex].R_M.stub = [RETFstub intValue];
5744     UC[clickIndex].R_M.arrow = [RETFarrow intValue];
5745     UC[clickIndex].R_M.gun = [RETFgun intValue];
5746     UC[clickIndex].R_M.shell = [RETFshell intValue];
5747     
5748     UC[clickIndex].R_M.flame = [RETFflame intValue];
5749     UC[clickIndex].R_M.cold = [RETFcold intValue];
5750     UC[clickIndex].R_M.electoric = [RETFelectoric intValue];
5751     UC[clickIndex].R_M.air = [RETFair intValue];
5752     UC[clickIndex].R_M.water = [RETFwater intValue];
5753     UC[clickIndex].R_M.gas = [RETFgas intValue];
5754     UC[clickIndex].R_M.holy = [RETFholy intValue];
5755     UC[clickIndex].R_M.dark = [RETFdark intValue];
5756     UC[clickIndex].R_M.explosion = [RETFexplosion intValue];
5757     UC[clickIndex].R_M.blood = [RETFblood intValue];
5758     
5759     UC[clickIndex].R_M.paralysis = [RETFparalysis intValue];
5760     UC[clickIndex].R_M.confusion = [RETFconfusion intValue];
5761     UC[clickIndex].R_M.poison = [RETFpoison intValue];
5762     UC[clickIndex].R_M.sleep = [RETFsleep intValue];
5763     UC[clickIndex].R_M.charm = [RETFcharm intValue];
5764     UC[clickIndex].R_M.silent = [RETFsilent intValue];
5765     
5766     UC[clickIndex].R_C = UC[clickIndex].R_M;
5767     }else{
5768         LC[cil].R_M.blow = [RETFblow intValue];
5769         LC[cil].R_M.slash = [RETFslash intValue];
5770         LC[cil].R_M.stub = [RETFstub intValue];
5771         LC[cil].R_M.arrow = [RETFarrow intValue];
5772         LC[cil].R_M.gun = [RETFgun intValue];
5773         LC[cil].R_M.shell = [RETFshell intValue];
5774         
5775         LC[cil].R_M.flame = [RETFflame intValue];
5776         LC[cil].R_M.cold = [RETFcold intValue];
5777         LC[cil].R_M.electoric = [RETFelectoric intValue];
5778         LC[cil].R_M.air = [RETFair intValue];
5779         LC[cil].R_M.water = [RETFwater intValue];
5780         LC[cil].R_M.gas = [RETFgas intValue];
5781         LC[cil].R_M.holy = [RETFholy intValue];
5782         LC[cil].R_M.dark = [RETFdark intValue];
5783         LC[cil].R_M.explosion = [RETFexplosion intValue];
5784         LC[cil].R_M.blood = [RETFblood intValue];
5785         
5786         LC[cil].R_M.paralysis = [RETFparalysis intValue];
5787         LC[cil].R_M.confusion = [RETFconfusion intValue];
5788         LC[cil].R_M.poison = [RETFpoison intValue];
5789         LC[cil].R_M.sleep = [RETFsleep intValue];
5790         LC[cil].R_M.charm = [RETFcharm intValue];
5791         LC[cil].R_M.silent = [RETFsilent intValue];
5792         
5793         LC[cil].R_C = LC[cil].R_M;
5794     }
5795     
5796     
5797     [UCLPanelRegist close];
5798 }
5799
5800 -(IBAction)insertSkillUCL:(id)sender{
5801
5802 }
5803 -(IBAction)removeSkillUCL:(id)sender{
5804
5805 }
5806
5807 -(IBAction)mobileUCL:(id)sender{
5808
5809 }
5810 -(IBAction)skillUCL:(id)sender{
5811
5812 }
5813 -(IBAction)equiplUCL:(id)sender{
5814
5815 }
5816
5817
5818 -(IBAction)UCLPanelEquipListSubmitBtn:(id)sender{
5819     EQmodeFlag = false;
5820     [UCLPanelEquipList close];
5821 }
5822 -(IBAction)UCLPanelSkillListSubmitBtn:(id)sender{
5823     [UCLPanelSkillList close];
5824 }
5825
5826 -(IBAction)UCLPanelEquipListOpenBtn:(id)sender{
5827     windowPoint.x = [UCLPanel frame].origin.x + 50;
5828     windowPoint.y = [UCLPanel frame].origin.y;
5829     [UCLPanelEquipList setFrameOrigin:windowPoint];
5830     [UCLPanelEquipList makeKeyAndOrderFront:nil];
5831 }
5832 -(IBAction)UCLPanelSkillListOpenBtn:(id)sender{
5833     windowPoint.x = [UCLPanel frame].origin.x + 50;
5834     windowPoint.y = [UCLPanel frame].origin.y;
5835     [UCLPanelSkillList setFrameOrigin:windowPoint];
5836     [UCLPanelSkillList makeKeyAndOrderFront:nil];
5837 }
5838
5839 -(IBAction)insertAttackList:(id)sender{
5840     
5841     if(EQmodeFlag){
5842     
5843         if(1){
5844             NSMutableDictionary *dict = [NSMutableDictionary new];
5845             [dict setValue:[NSString stringWithFormat:@"新技"] forKey:@"name"];
5846             
5847             ATTACK *Atop = EQ[clickIndexEQ].A;
5848             
5849             if(clickedRowAT < 0){
5850                 EQ[clickIndexEQ].A = Atop;
5851                 if([attackListMA count] == 0){
5852                     EQ[clickIndexEQ].A = (ATTACK*)malloc(sizeof(ATTACK));
5853                     //INIT 処理
5854                     
5855                     EQ[clickIndexEQ].A = [self initAttackData:EQ[clickIndexEQ].A];
5856                     Atop = EQ[clickIndexEQ].A;
5857                 }else{
5858                     while(EQ[clickIndexEQ].A->next) EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
5859                     EQ[clickIndexEQ].A->next = (ATTACK*)malloc(sizeof(ATTACK));
5860                     EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
5861                     //INIT 処理
5862                     EQ[clickIndexEQ].A = [self initAttackData:EQ[clickIndexEQ].A];
5863                     EQ[clickIndexEQ].A = Atop;
5864                 }
5865                 
5866                 [dict setValue:[NSString stringWithFormat:@"%@", EQ[clickIndexEQ].A->name] forKey:@"name"];
5867                 
5868                 [self willChangeValueForKey:@"attackListMA"];
5869                 [attackListMA insertObject:dict atIndex:[attackListMA count]];
5870                 [self didChangeValueForKey:@"attackListMA"];
5871                 [attackListAC setSelectionIndex:999];
5872                 EQ[clickIndexEQ].attackListNum++;
5873                 clickedRowAT = -1;
5874             }else{
5875                 EQ[clickIndexEQ].A = Atop;
5876                 if([attackListMA count] == 0){
5877                     EQ[clickIndexEQ].A = (ATTACK*)malloc(sizeof(ATTACK));
5878                     //INIT 処理
5879                     EQ[clickIndexEQ].A = [self initAttackData:EQ[clickIndexEQ].A];
5880                     Atop = EQ[clickIndexEQ].A;
5881                 }else if(clickedRowAT > 0){
5882                     for (int i = 0; i < clickedRowAT-1;i++)
5883                         EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
5884                     ATTACK *tmp = (ATTACK*)malloc(sizeof(ATTACK));
5885                     *tmp = *EQ[clickIndexEQ].A->next;
5886                     EQ[clickIndexEQ].A->next = (ATTACK*)malloc(sizeof(ATTACK));
5887                     EQ[clickIndexEQ].A->next->next = tmp;
5888                     EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
5889                     //INIT 処理
5890                     EQ[clickIndexEQ].A = [self initAttackData:EQ[clickIndexEQ].A];
5891                     EQ[clickIndexEQ].A = Atop;
5892                 }else{
5893                     ATTACK *tmp = (ATTACK*)malloc(sizeof(ATTACK));
5894                     tmp->next = EQ[clickIndexEQ].A;
5895                     // INIT 処理[self InitAttack:tmp];
5896                     tmp = [self initAttackData:tmp];
5897                     Atop = tmp;
5898                     EQ[clickIndexEQ].A = Atop;
5899                 }
5900                 
5901                 [dict setValue:[NSString stringWithFormat:@"%@", EQ[clickIndexEQ].A->name] forKey:@"name"];
5902                 
5903                 [self willChangeValueForKey:@"attackListMA"];
5904                 [attackListMA insertObject:dict atIndex:clickedRowAT];
5905                 [self didChangeValueForKey:@"attackListMA"];
5906                 [attackListAC setSelectionIndex:clickedRowAT];
5907                 EQ[clickIndexEQ].attackListNum++;
5908             }
5909             
5910         }
5911     
5912         return;
5913     }
5914     
5915     if(!loadChipSideFlag){
5916     NSMutableDictionary *dict = [NSMutableDictionary new];
5917     [dict setValue:[NSString stringWithFormat:@"新技"] forKey:@"name"];
5918     
5919     ATTACK *Atop = UC[clickIndex].A;
5920     
5921     if(clickedRowAT < 0){
5922         UC[clickIndex].A = Atop;
5923         if([attackListMA count] == 0){
5924             UC[clickIndex].A = (ATTACK*)malloc(sizeof(ATTACK));
5925             //INIT 処理
5926             
5927             UC[clickIndex].A = [self initAttackData:UC[clickIndex].A];
5928             
5929             Atop = UC[clickIndex].A;
5930         }else{
5931             while(UC[clickIndex].A->next) UC[clickIndex].A = UC[clickIndex].A->next;
5932             UC[clickIndex].A->next = (ATTACK*)malloc(sizeof(ATTACK));
5933             UC[clickIndex].A = UC[clickIndex].A->next;
5934             //INIT 処理
5935             UC[clickIndex].A = [self initAttackData:UC[clickIndex].A];
5936             
5937             UC[clickIndex].A = Atop;
5938         }
5939         
5940         [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].A->name] forKey:@"name"];
5941         
5942         [self willChangeValueForKey:@"attackListMA"];
5943         [attackListMA insertObject:dict atIndex:[attackListMA count]];
5944         [self didChangeValueForKey:@"attackListMA"];
5945         [attackListAC setSelectionIndex:999];
5946         UC[clickIndex].attackListNum++;
5947         clickedRowAT = -1;
5948     }else{
5949         UC[clickIndex].A = Atop;
5950         if([attackListMA count] == 0){
5951             UC[clickIndex].A = (ATTACK*)malloc(sizeof(ATTACK));
5952             //INIT 処理
5953             UC[clickIndex].A = [self initAttackData:UC[clickIndex].A];
5954             
5955             Atop = UC[clickIndex].A;
5956         }else if(clickedRowAT > 0){
5957             for (int i = 0; i < clickedRowAT-1;i++)
5958                 UC[clickIndex].A = UC[clickIndex].A->next;
5959             ATTACK *tmp = (ATTACK*)malloc(sizeof(ATTACK));
5960             *tmp = *UC[clickIndex].A->next;
5961             UC[clickIndex].A->next = (ATTACK*)malloc(sizeof(ATTACK));
5962             UC[clickIndex].A->next->next = tmp;
5963             UC[clickIndex].A = UC[clickIndex].A->next;
5964             //INIT 処理
5965             [self initAttackData:UC[clickIndex].A];
5966             UC[clickIndex].A = Atop;
5967         }else{
5968             ATTACK *tmp = (ATTACK*)malloc(sizeof(ATTACK));
5969             tmp->next = UC[clickIndex].A;
5970             // INIT 処理[self InitAttack:tmp];
5971             tmp = [self initAttackData:tmp];
5972             Atop = tmp;
5973             UC[clickIndex].A = Atop;
5974         }
5975         
5976         [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].A->name] forKey:@"name"];
5977         
5978         [self willChangeValueForKey:@"attackListMA"];
5979         [attackListMA insertObject:dict atIndex:clickedRowAT];
5980         [self didChangeValueForKey:@"attackListMA"];
5981         [attackListAC setSelectionIndex:clickedRowAT];
5982         UC[clickIndex].attackListNum++;
5983     }
5984
5985     }else{
5986         NSMutableDictionary *dict = [NSMutableDictionary new];
5987         [dict setValue:[NSString stringWithFormat:@"新技"] forKey:@"name"];
5988         
5989         ATTACK *Atop = LC[cil].A;
5990         
5991         if(clickedRowAT < 0){
5992             LC[cil].A = Atop;
5993             if([attackListMA count] == 0){
5994                 LC[cil].A = (ATTACK*)malloc(sizeof(ATTACK));
5995                 //INIT 処理
5996                 
5997                 LC[cil].A->name = [@"新技" retain];
5998
5999                 LC[cil].A->rangeA = 1;
6000                 LC[cil].A->rangeB = 1;
6001                 LC[cil].A->extent = 0;
6002                 LC[cil].A->successRate = 100;
6003                 LC[cil].A->costType = 0;
6004                 LC[cil].A->type = 0;
6005                 LC[cil].A = [self initAfuckingSTATUS2:LC[cil].A];
6006                 LC[cil].A->D = NULL;
6007                 LC[cil].A->E = NULL;
6008                 LC[cil].A->next = NULL;
6009                 Atop = LC[cil].A;
6010             }else{
6011                 while(LC[cil].A->next) LC[cil].A = LC[cil].A->next;
6012                 LC[cil].A->next = (ATTACK*)malloc(sizeof(ATTACK));
6013                 LC[cil].A = LC[cil].A->next;
6014                 //INIT 処理
6015                 LC[cil].A->name = [@"新技" retain];
6016                 LC[cil].A->rangeA = 1;
6017                 LC[cil].A->rangeB = 1;
6018                 LC[cil].A->extent = 0;
6019                 LC[cil].A->successRate = 100;
6020                 LC[cil].A->costType = 0;
6021                 LC[cil].A->type = 0;
6022                 LC[cil].A = [self initAfuckingSTATUS2:LC[cil].A];
6023                 LC[cil].A->D = NULL;
6024                 LC[cil].A->E = NULL;
6025                 LC[cil].A->next = NULL;
6026                 LC[cil].A = Atop;
6027             }
6028             
6029             [dict setValue:[NSString stringWithFormat:@"%@", LC[cil].A->name] forKey:@"name"];
6030             
6031             [self willChangeValueForKey:@"attackListMA"];
6032             [attackListMA insertObject:dict atIndex:[attackListMA count]];
6033             [self didChangeValueForKey:@"attackListMA"];
6034             [attackListAC setSelectionIndex:999];
6035             LC[cil].attackListNum++;
6036             clickedRowAT = -1;
6037         }else{
6038             LC[cil].A = Atop;
6039             if([attackListMA count] == 0){
6040                 LC[cil].A = (ATTACK*)malloc(sizeof(ATTACK));
6041                 //INIT 処理
6042                 LC[cil].A->name = [@"新技" retain];
6043                 LC[cil].A->rangeA = 1;
6044                 LC[cil].A->rangeB = 1;
6045                 LC[cil].A->extent = 0;
6046                 LC[cil].A->successRate = 100;
6047                 LC[cil].A->costType = 0;
6048                 LC[cil].A->type = 0;
6049                 LC[cil].A = [self initAfuckingSTATUS2:LC[cil].A];
6050                 LC[cil].A->D = NULL;
6051                 LC[cil].A->E = NULL;
6052                 LC[cil].A->next = NULL;
6053                 Atop = LC[cil].A;
6054             }else if(clickedRowAT > 0){
6055                 for (int i = 0; i < clickedRowAT-1;i++)
6056                     LC[cil].A = LC[cil].A->next;
6057                 ATTACK *tmp = (ATTACK*)malloc(sizeof(ATTACK));
6058                 *tmp = *LC[cil].A->next;
6059                 LC[cil].A->next = (ATTACK*)malloc(sizeof(ATTACK));
6060                 LC[cil].A->next->next = tmp;
6061                 LC[cil].A = LC[cil].A->next;
6062                 //INIT 処理
6063                 LC[cil].A->name = [@"新技" retain];
6064                 LC[cil].A->rangeA = 1;
6065                 LC[cil].A->rangeB = 1;
6066                 LC[cil].A->extent = 0;
6067                 LC[cil].A->successRate = 100;
6068                 LC[cil].A->costType = 0;
6069                 LC[cil].A->type = 0;
6070                 LC[cil].A = [self initAfuckingSTATUS2:LC[cil].A];
6071                 LC[cil].A->D = NULL;
6072                 LC[cil].A->E = NULL;
6073                 LC[cil].A = Atop;
6074             }else{
6075                 ATTACK *tmp = (ATTACK*)malloc(sizeof(ATTACK));
6076                 tmp->next = LC[cil].A;
6077                 // INIT 処理[self InitAttack:tmp];
6078                 tmp->name = [@"新技" retain];
6079
6080                 tmp->rangeA = 1;
6081                 tmp->rangeB = 1;
6082                 tmp->extent = 0;
6083                 tmp->successRate = 100;
6084                 tmp->costType = 0;
6085                 tmp->type = 0;
6086                 tmp = [self initAfuckingSTATUS2:tmp];
6087                 
6088                 tmp->D = NULL;
6089                 tmp->E = NULL;
6090                 Atop = tmp;
6091                 LC[cil].A = Atop;
6092             }
6093             
6094             [dict setValue:[NSString stringWithFormat:@"%@", LC[cil].A->name] forKey:@"name"];
6095             
6096             [self willChangeValueForKey:@"attackListMA"];
6097             [attackListMA insertObject:dict atIndex:clickedRowAT];
6098             [self didChangeValueForKey:@"attackListMA"];
6099             [attackListAC setSelectionIndex:clickedRowAT];
6100             LC[cil].attackListNum++;
6101     
6102         }
6103     }
6104     
6105 }
6106
6107 -(ATTACK*)initAttackData:(ATTACK*)A{
6108
6109
6110     A->name = [@"新技" retain];
6111     A->msg = [@"" retain];
6112     A->rangeA = 1;
6113     A->rangeB = 1;
6114     A->extent = 0;
6115     A->type = 0;
6116     A->costType = 0;
6117     A->MP = 0;
6118     A->pMP = 0;
6119     A->hitCount = 1;
6120     A->hitPercent = 0;
6121     A->successRate = 100;
6122     A->bullet = -1;
6123     A->riku = 0;
6124     A->sora = 0;
6125     A->umi = 0;
6126     A->chu = 0;
6127     A->melee = 0;
6128     A->P = 0;
6129     A->vigor = 0;
6130     A->cSupply = 0;
6131     A->cMoney = 0;
6132     A->cFood = 0;
6133     A->dmgExtend = 0;
6134     A->D = NULL;
6135     A->E = NULL;
6136     A->AN.movName = [@"" retain];
6137     A->AN.ANI = NULL;
6138     return A;
6139 }
6140
6141 -(ATTACK*)initAfuckingSTATUS2:(ATTACK*)A{
6142
6143     A->trig = 0;
6144     A->type = 0;
6145     A->melee = 0;
6146     A->P = 0;
6147     
6148     A->rangeA = 1;
6149     A->rangeB = 1;
6150     A->extent = 0;
6151     A->bullet = 0;
6152     A->hitCount = 0;
6153     A->successRate = 100;
6154     A->vigor = 0;
6155     A->hitPercent = 0;
6156     
6157     A->costType = 0;
6158
6159     A->EN = 0;
6160     A->pEN = 0;
6161
6162     A->HP = 0;
6163     A->pHP = 0;
6164
6165     A->cSupply = 0;
6166     A->cFood = 0;
6167     A->cMoney = 0;
6168     
6169     A->riku = 0;
6170     A->umi = 0;
6171     A->sora = 0;
6172     A->dmgExtend = 0;
6173     
6174     A->msg = @"";
6175
6176     
6177     return A;
6178 }
6179
6180 -(IBAction)removeAttackList:(id)sender{
6181     
6182     if(EQmodeFlag){
6183     
6184         ATTACK *Atop = EQ[clickIndexEQ].A;
6185         
6186         if(clickedRowAT == -1){
6187             clickedRowAT = (int)[attackListMA count] - 1;
6188         }
6189         
6190         if([attackListMA count] > 0){
6191             
6192             if(clickedRowAT == 0){
6193                 EQ[clickIndexEQ].A = Atop;
6194                 EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
6195                 Atop = EQ[clickIndexEQ].A;
6196             }else if(clickedRowAT == [attackListMA count] - 1){
6197                 EQ[clickIndexEQ].A = Atop;
6198                 while(EQ[clickIndexEQ].A->next->next){
6199                     EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
6200                 }
6201                 EQ[clickIndexEQ].A->next = NULL;
6202             }else{
6203                 EQ[clickIndexEQ].A = Atop;
6204                 for (int i = 0; i < clickedRowAT - 1;i++)
6205                     EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
6206                 EQ[clickIndexEQ].A->next = EQ[clickIndexEQ].A->next->next;
6207             }
6208             
6209             [self willChangeValueForKey:@"attackListMA"];
6210             [attackListMA removeObjectAtIndex:clickedRowAT];
6211             [self didChangeValueForKey:@"attackListMA"];
6212             [attackListAC setSelectionIndex:clickedRowAT-1];
6213             if(clickedRowAT < 0) [attackListAC setSelectionIndex:[attackListMA count]-1];
6214             if(clickedRowAT == 0) [attackListAC setSelectionIndex:0];
6215             if(clickedRowAT > 0) clickedRowAT--;
6216         }
6217         EQ[clickIndexEQ].A = Atop;
6218         EQ[clickIndexEQ].attackListNum--;
6219       
6220         
6221         return;
6222     }
6223     
6224     if(!loadChipSideFlag){
6225     
6226         ATTACK *Atop = UC[clickIndex].A;
6227         
6228         if(clickedRowAT == -1){
6229             clickedRowAT = (int)[attackListMA count] - 1;
6230         }
6231         
6232         if([attackListMA count] > 0){
6233             
6234             if(clickedRowAT == 0){
6235                 UC[clickIndex].A = Atop;
6236                 UC[clickIndex].A = UC[clickIndex].A->next;
6237                 Atop = UC[clickIndex].A;
6238             }else if(clickedRowAT == [attackListMA count] - 1){
6239                 UC[clickIndex].A = Atop;
6240                 while(UC[clickIndex].A->next->next){
6241                     UC[clickIndex].A = UC[clickIndex].A->next;
6242                 }
6243                 UC[clickIndex].A->next = NULL;
6244             }else{
6245                 UC[clickIndex].A = Atop;
6246                 for (int i = 0; i < clickedRowAT - 1;i++)
6247                     UC[clickIndex].A = UC[clickIndex].A->next;
6248                 UC[clickIndex].A->next = UC[clickIndex].A->next->next;
6249             }
6250             
6251             [self willChangeValueForKey:@"attackListMA"];
6252             [attackListMA removeObjectAtIndex:clickedRowAT];
6253             [self didChangeValueForKey:@"attackListMA"];
6254             [attackListAC setSelectionIndex:clickedRowAT-1];
6255             if(clickedRowAT < 0) [attackListAC setSelectionIndex:[attackListMA count]-1];
6256             if(clickedRowAT == 0) [attackListAC setSelectionIndex:0];
6257             if(clickedRowAT > 0) clickedRowAT--;
6258         }
6259         UC[clickIndex].A = Atop;
6260         UC[clickIndex].attackListNum--;
6261     }else{
6262         ATTACK *Atop = LC[cil].A;
6263         
6264         if(clickedRowAT == -1){
6265             clickedRowAT = (int)[attackListMA count] - 1;
6266         }
6267         
6268         if([attackListMA count] > 0){
6269             
6270             if(clickedRowAT == 0){
6271                 LC[cil].A = Atop;
6272                 LC[cil].A = LC[cil].A->next;
6273                 Atop = LC[cil].A;
6274             }else if(clickedRowAT == [attackListMA count] - 1){
6275                 LC[cil].A = Atop;
6276                 while(LC[cil].A->next->next){
6277                     LC[cil].A = LC[cil].A->next;
6278                 }
6279                 LC[cil].A->next = NULL;
6280             }else{
6281                 LC[cil].A = Atop;
6282                 for (int i = 0; i < clickedRowAT - 1;i++)
6283                     LC[cil].A = LC[cil].A->next;
6284                 LC[cil].A->next = LC[cil].A->next->next;
6285             }
6286             
6287             [self willChangeValueForKey:@"attackListMA"];
6288             [attackListMA removeObjectAtIndex:clickedRowAT];
6289             [self didChangeValueForKey:@"attackListMA"];
6290             [attackListAC setSelectionIndex:clickedRowAT-1];
6291             if(clickedRowAT < 0) [attackListAC setSelectionIndex:[attackListMA count]-1];
6292             if(clickedRowAT == 0) [attackListAC setSelectionIndex:0];
6293             if(clickedRowAT > 0) clickedRowAT--;
6294         }
6295         LC[cil].A = Atop;
6296         LC[cil].attackListNum--;
6297     
6298     
6299     
6300     }
6301     
6302 }
6303
6304
6305 -(IBAction)submitAttackList:(id)sender{
6306     
6307     if(EQmodeFlag){
6308     
6309         ATTACK *Atop = EQ[clickIndexEQ].A;
6310         
6311         
6312         for(int i = 0;i < clickIndexAL;i++){
6313             EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
6314         }
6315         
6316         EQ[clickIndexEQ].A->name = [[ALTFname stringValue] retain];
6317         EQ[clickIndexEQ].A->rangeA = [ALTFrangeA intValue];
6318         EQ[clickIndexEQ].A->rangeB = [ALTFrangeB intValue];
6319         EQ[clickIndexEQ].A->extent = [ALTFextend intValue];
6320         
6321         EQ[clickIndexEQ].A->trig = [ALTFtrigger intValue];
6322         EQ[clickIndexEQ].A->melee = [ALTFmelee intValue];
6323         EQ[clickIndexEQ].A->P = [ALTFpass intValue];
6324         EQ[clickIndexEQ].A->dmgExtend = [ALTFdmgExtent intValue];
6325         EQ[clickIndexEQ].A->type = (int)[ALPUBwType indexOfSelectedItem];
6326         EQ[clickIndexEQ].A->imagine = [ALTFimagine intValue];
6327         
6328         if([ALPUBcost indexOfSelectedItem] == 0){
6329             EQ[clickIndexEQ].A->costType = 0;
6330             EQ[clickIndexEQ].A->MP = [ALTFcost intValue];
6331             EQ[clickIndexEQ].A->pMP = [ALTFcostP intValue];
6332             EQ[clickIndexEQ].A->AP = 0;
6333             EQ[clickIndexEQ].A->pAP = 0;
6334             EQ[clickIndexEQ].A->HP = 0;
6335             EQ[clickIndexEQ].A->pHP = 0;
6336         }
6337         if([ALPUBcost indexOfSelectedItem] == 1){
6338             EQ[clickIndexEQ].A->costType = 1;
6339             EQ[clickIndexEQ].A->MP = 0;
6340             EQ[clickIndexEQ].A->pMP = 0;
6341             EQ[clickIndexEQ].A->HP = 0;
6342             EQ[clickIndexEQ].A->pHP = 0;
6343             EQ[clickIndexEQ].A->AP = [ALTFcost intValue];
6344             EQ[clickIndexEQ].A->pAP = [ALTFcostP intValue];
6345         }
6346         if([ALPUBcost indexOfSelectedItem] == 2){
6347             EQ[clickIndexEQ].A->costType = 2;
6348             EQ[clickIndexEQ].A->MP = 0;
6349             EQ[clickIndexEQ].A->pMP = 0;
6350             EQ[clickIndexEQ].A->AP = 0;
6351             EQ[clickIndexEQ].A->pAP = 0;
6352             EQ[clickIndexEQ].A->HP = [ALTFcost intValue];
6353             EQ[clickIndexEQ].A->pHP = [ALTFcostP intValue];
6354         }
6355         
6356         EQ[clickIndexEQ].A->bullet = [ALTFbullet intValue];
6357         EQ[clickIndexEQ].A->hitCount = [ALTFhitCount intValue];
6358         EQ[clickIndexEQ].A->successRate = [ALTFsuccessRate intValue];
6359         EQ[clickIndexEQ].A->vigor = [ALTFvigor intValue];
6360         EQ[clickIndexEQ].A->hitPercent = [ALTFhitRate intValue];
6361         
6362         EQ[clickIndexEQ].A->riku = (int)[ALPUBriku indexOfSelectedItem];
6363         EQ[clickIndexEQ].A->chu = (int)[ALPUBchu indexOfSelectedItem];
6364         EQ[clickIndexEQ].A->umi = (int)[ALPUBumi indexOfSelectedItem];
6365         EQ[clickIndexEQ].A->sora = (int)[ALPUBsora indexOfSelectedItem];
6366         
6367         EQ[clickIndexEQ].A->cSupply = [ALTFcSupply intValue];
6368         EQ[clickIndexEQ].A->cFood = [ALTFcFood intValue];
6369         EQ[clickIndexEQ].A->cMoney = [ALTFcMoney intValue];
6370         
6371         EQ[clickIndexEQ].A->cmd = [[ALTFcmd stringValue] retain];
6372         
6373         EQ[clickIndexEQ].A->msg = [[ALTFmsg stringValue] retain];
6374         
6375         
6376         EQ[clickIndexEQ].A = Atop;
6377         
6378         [self initAttackListEQ];
6379         [self saveDataALEQ];
6380         [attackListAC setSelectionIndex:clickIndexAL];
6381
6382         [UCLPanelAttackDetail close];
6383         return;
6384     }
6385     
6386     if(!loadChipSideFlag){
6387         ATTACK *Atop = UC[clickIndex].A;
6388     
6389     
6390         for(int i = 0;i < clickIndexAL;i++){
6391             UC[clickIndex].A = UC[clickIndex].A->next;
6392         }
6393     
6394         UC[clickIndex].A->name = [[ALTFname stringValue] retain];
6395         UC[clickIndex].A->rangeA = [ALTFrangeA intValue];
6396         UC[clickIndex].A->rangeB = [ALTFrangeB intValue];
6397         UC[clickIndex].A->extent = [ALTFextend intValue];
6398     
6399         UC[clickIndex].A->trig = [ALTFtrigger intValue];
6400         UC[clickIndex].A->melee = [ALTFmelee intValue];
6401         UC[clickIndex].A->P = [ALTFpass intValue];
6402         UC[clickIndex].A->dmgExtend = [ALTFdmgExtent intValue];
6403         UC[clickIndex].A->type = (int)[ALPUBwType indexOfSelectedItem];
6404         UC[clickIndex].A->imagine = [ALTFimagine intValue];
6405         
6406         if([ALPUBcost indexOfSelectedItem] == 0){
6407             UC[clickIndex].A->costType = 0;
6408             UC[clickIndex].A->MP = [ALTFcost intValue];
6409             UC[clickIndex].A->pMP = [ALTFcostP intValue];
6410             UC[clickIndex].A->AP = 0;
6411             UC[clickIndex].A->pAP = 0;
6412             UC[clickIndex].A->HP = 0;
6413             UC[clickIndex].A->pHP = 0;
6414         }
6415         if([ALPUBcost indexOfSelectedItem] == 1){
6416             UC[clickIndex].A->costType = 1;
6417             UC[clickIndex].A->MP = 0;
6418             UC[clickIndex].A->pMP = 0;
6419             UC[clickIndex].A->HP = 0;
6420             UC[clickIndex].A->pHP = 0;
6421             UC[clickIndex].A->AP = [ALTFcost intValue];
6422             UC[clickIndex].A->pAP = [ALTFcostP intValue];
6423         }
6424         if([ALPUBcost indexOfSelectedItem] == 2){
6425             UC[clickIndex].A->costType = 2;
6426             UC[clickIndex].A->MP = 0;
6427             UC[clickIndex].A->pMP = 0;
6428             UC[clickIndex].A->AP = 0;
6429             UC[clickIndex].A->pAP = 0;
6430             UC[clickIndex].A->HP = [ALTFcost intValue];
6431             UC[clickIndex].A->pHP = [ALTFcostP intValue];
6432         }
6433     
6434         UC[clickIndex].A->bullet = [ALTFbullet intValue];
6435         UC[clickIndex].A->hitCount = [ALTFhitCount intValue];
6436         UC[clickIndex].A->successRate = [ALTFsuccessRate intValue];
6437         UC[clickIndex].A->vigor = [ALTFvigor intValue];
6438         UC[clickIndex].A->hitPercent = [ALTFhitRate intValue];
6439     
6440         UC[clickIndex].A->riku = (int)[ALPUBriku indexOfSelectedItem];
6441         UC[clickIndex].A->chu = (int)[ALPUBchu indexOfSelectedItem];
6442         UC[clickIndex].A->umi = (int)[ALPUBumi indexOfSelectedItem];
6443         UC[clickIndex].A->sora = (int)[ALPUBsora indexOfSelectedItem];
6444     
6445         UC[clickIndex].A->cSupply = [ALTFcSupply intValue];
6446         UC[clickIndex].A->cFood = [ALTFcFood intValue];
6447         UC[clickIndex].A->cMoney = [ALTFcMoney intValue];
6448     
6449         UC[clickIndex].A->cmd = [[ALTFcmd stringValue] retain];
6450     
6451         UC[clickIndex].A->msg = [[ALTFmsg stringValue] retain];
6452     
6453
6454         UC[clickIndex].A = Atop;
6455     
6456         [self initAttackList];
6457         [self saveDataAL];
6458         [attackListAC setSelectionIndex:clickIndexAL];
6459     }else{
6460     
6461         ATTACK *Atop = LC[cil].A;
6462         
6463         
6464         for(int i = 0;i < clickIndexAL;i++){
6465             LC[cil].A = LC[cil].A->next;
6466         }
6467         
6468         LC[cil].A->name = [[ALTFname stringValue] retain];
6469         LC[cil].A->rangeA = [ALTFrangeA intValue];
6470         LC[cil].A->rangeB = [ALTFrangeB intValue];
6471         LC[cil].A->extent = [ALTFextend intValue];
6472         
6473         LC[cil].A->trig = [ALTFtrigger intValue];
6474         LC[cil].A->melee = [ALTFmelee intValue];
6475         LC[cil].A->P = [ALTFpass intValue];
6476         LC[cil].A->dmgExtend = [ALTFdmgExtent intValue];
6477         LC[cil].A->type = (int)[ALPUBwType indexOfSelectedItem];
6478         LC[cil].A->imagine = [ALTFimagine intValue];
6479         
6480         if([ALPUBcost indexOfSelectedItem] == 0){
6481             LC[cil].A->costType = 0;
6482             LC[cil].A->EN = [ALTFcost intValue];
6483             LC[cil].A->pEN = [ALTFcostP intValue];
6484             LC[cil].A->HP = 0;
6485             LC[cil].A->pHP = 0;
6486         }
6487         if([ALPUBcost indexOfSelectedItem] == 1){
6488             LC[cil].A->costType = 1;
6489             LC[cil].A->EN = 0;
6490             LC[cil].A->pEN = 0;
6491             UC[clickIndex].A->HP = [ALTFcost intValue];
6492             UC[clickIndex].A->pHP = [ALTFcostP intValue];
6493
6494         }
6495         
6496         LC[cil].A->bullet = [ALTFbullet intValue];
6497         LC[cil].A->hitCount = [ALTFhitCount intValue];
6498         LC[cil].A->successRate = [ALTFsuccessRate intValue];
6499         LC[cil].A->vigor = [ALTFvigor intValue];
6500         LC[cil].A->hitPercent = [ALTFhitRate intValue];
6501         
6502         LC[cil].A->riku = (int)[ALPUBriku indexOfSelectedItem];
6503         LC[cil].A->chu = (int)[ALPUBchu indexOfSelectedItem];
6504         LC[cil].A->umi = (int)[ALPUBumi indexOfSelectedItem];
6505         LC[cil].A->sora = (int)[ALPUBsora indexOfSelectedItem];
6506         
6507         LC[cil].A->cSupply = [ALTFcSupply intValue];
6508         LC[cil].A->cFood = [ALTFcFood intValue];
6509         LC[cil].A->cMoney = [ALTFcMoney intValue];
6510         
6511         LC[cil].A->cmd = [[ALTFcmd stringValue] retain];
6512         
6513         LC[cil].A->msg = [[ALTFmsg stringValue] retain];
6514         
6515         
6516         LC[cil].A = Atop;
6517         
6518         [self initAttackList2];
6519         [self saveDataAL2];
6520         [attackListAC setSelectionIndex:clickIndexAL];
6521     
6522     
6523     
6524     
6525     
6526     
6527     
6528     }
6529     
6530     [UCLPanelAttackDetail close];
6531 }
6532
6533 -(IBAction)insertDamageList:(id)sender{
6534     
6535     if(EQmodeFlag){
6536         NSMutableDictionary* dict = [NSMutableDictionary new];
6537         
6538         if([ALPUBtype indexOfSelectedItem] == 0)
6539             [dict setValue:[NSString stringWithFormat:@"攻%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
6540         if([ALPUBtype indexOfSelectedItem] == 1)
6541             [dict setValue:[NSString stringWithFormat:@"防%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
6542         if([ALPUBtype indexOfSelectedItem] == 2)
6543             [dict setValue:[NSString stringWithFormat:@"命%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
6544         if([ALPUBtype indexOfSelectedItem] == 3)
6545             [dict setValue:[NSString stringWithFormat:@"回%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
6546         if([ALPUBtype indexOfSelectedItem] == 4)
6547             [dict setValue:[NSString stringWithFormat:@"演%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
6548         if([ALPUBtype indexOfSelectedItem] == 5)
6549             [dict setValue:[NSString stringWithFormat:@"会%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
6550         
6551         NSString *str;
6552         
6553         if([ALPUBsort indexOfSelectedItem] == 0) str = [NSString stringWithFormat:@"ダ・"];
6554         if([ALPUBsort indexOfSelectedItem] == 1) str = [NSString stringWithFormat:@"回・"];
6555         if([ALPUBsort indexOfSelectedItem] == 2) str = [NSString stringWithFormat:@"復・"];
6556         if([ALPUBsort indexOfSelectedItem] == 3) str = [NSString stringWithFormat:@"減・"];
6557         if([ALPUBsort indexOfSelectedItem] == 4) str = [NSString stringWithFormat:@"増・"];
6558         if([ALPUBsort indexOfSelectedItem] == 5) str = [NSString stringWithFormat:@"毒・"];
6559         if([ALPUBsort indexOfSelectedItem] == 6) str = [NSString stringWithFormat:@"睡・"];
6560         if([ALPUBsort indexOfSelectedItem] == 7) str = [NSString stringWithFormat:@"混・"];
6561         if([ALPUBsort indexOfSelectedItem] == 8) str = [NSString stringWithFormat:@"麻・"];
6562         if([ALPUBsort indexOfSelectedItem] == 9) str = [NSString stringWithFormat:@"沈・"];
6563         if([ALPUBsort indexOfSelectedItem] == 10) str = [NSString stringWithFormat:@"魅・"];
6564         
6565         if([ALPUBseed indexOfSelectedItem] == 0) str = [str stringByAppendingFormat:@"打撃"];
6566         if([ALPUBseed indexOfSelectedItem] == 1) str = [str stringByAppendingFormat:@"斬撃"];
6567         if([ALPUBseed indexOfSelectedItem] == 2) str = [str stringByAppendingFormat:@"突き"];
6568         if([ALPUBseed indexOfSelectedItem] == 3) str = [str stringByAppendingFormat:@"射手"];
6569         if([ALPUBseed indexOfSelectedItem] == 4) str = [str stringByAppendingFormat:@"銃撃"];
6570         if([ALPUBseed indexOfSelectedItem] == 5) str = [str stringByAppendingFormat:@"砲撃"];
6571         if([ALPUBseed indexOfSelectedItem] == 6) str = [str stringByAppendingFormat:@"火炎"];
6572         if([ALPUBseed indexOfSelectedItem] == 7) str = [str stringByAppendingFormat:@"冷気"];
6573         if([ALPUBseed indexOfSelectedItem] == 8) str = [str stringByAppendingFormat:@"電撃"];
6574         if([ALPUBseed indexOfSelectedItem] == 9) str = [str stringByAppendingFormat:@"風圧"];
6575         if([ALPUBseed indexOfSelectedItem] == 10) str = [str stringByAppendingFormat:@"流水"];
6576         if([ALPUBseed indexOfSelectedItem] == 11) str = [str stringByAppendingFormat:@"ガス"];
6577         if([ALPUBseed indexOfSelectedItem] == 12) str = [str stringByAppendingFormat:@"神聖"];
6578         if([ALPUBseed indexOfSelectedItem] == 13) str = [str stringByAppendingFormat:@"暗黒"];
6579         if([ALPUBseed indexOfSelectedItem] == 14) str = [str stringByAppendingFormat:@"爆撃"];
6580         if([ALPUBseed indexOfSelectedItem] == 15) str = [str stringByAppendingFormat:@"流血"];
6581         
6582         if([ALBCnormal state] == YES) str = [str stringByAppendingFormat:@"通"];
6583         if([ALBCarchery state] == YES) str = [str stringByAppendingFormat:@"弓"];
6584         if([ALBCgun state] == YES) str = [str stringByAppendingFormat:@"銃"];
6585         
6586         ATTACK *aTop = EQ[clickIndexEQ].A;
6587         for(int k = 0;k < clickIndexAL;k++) {
6588             EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
6589         }
6590         
6591         DAMAGE *Dtop = EQ[clickIndexEQ].A->D;
6592         if(!EQ[clickIndexEQ].A->D){
6593             EQ[clickIndexEQ].A->D = calloc(1, sizeof(DAMAGE));
6594             Dtop = EQ[clickIndexEQ].A->D;
6595         }
6596         while(EQ[clickIndexEQ].A->D->next){
6597             EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next;
6598         }
6599         
6600         if([damageListMA count] >= 1){
6601             EQ[clickIndexEQ].A->D->next = calloc(1, sizeof(DAMAGE));
6602             EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next;
6603         }
6604         EQ[clickIndexEQ].A->D->next = NULL;//Dtop;
6605         EQ[clickIndexEQ].A->D->count = [ALTFdmgCount intValue];
6606         EQ[clickIndexEQ].A->D->pCount = [ALTFdmgRate intValue];
6607         EQ[clickIndexEQ].A->D->type = (int)[ALPUBtype indexOfSelectedItem];
6608         EQ[clickIndexEQ].A->D->seed = (int)[ALPUBseed indexOfSelectedItem];
6609         EQ[clickIndexEQ].A->D->sort = (int)[ALPUBsort indexOfSelectedItem];
6610         EQ[clickIndexEQ].A->D->beam = [ALTFbeam intValue];
6611         EQ[clickIndexEQ].A->D->absolute = [ALTFabsolute intValue];
6612         EQ[clickIndexEQ].A->D->noSizeFix = [ALTFnoSizeFix intValue];
6613         EQ[clickIndexEQ].A->D->continium = [ALTFcontinuum intValue];
6614         if([ALBCnormal intValue] != 0)
6615             EQ[clickIndexEQ].A->D->fix = 0;
6616         else if([ALBCarchery intValue] != 0)
6617             EQ[clickIndexEQ].A->D->fix = 1;
6618         else if([ALBCgun intValue] != 0)
6619             EQ[clickIndexEQ].A->D->fix = 2;
6620         
6621         [self setTotalDamageEQ:(int)clickIndex row:clickedRowAT];
6622         
6623         [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"type"];
6624         [self willChangeValueForKey:@"damageListMA"];
6625         [damageListMA addObject:dict];
6626         [self didChangeValueForKey:@"damageListMA"];
6627         [damageListAC setSelectionIndex:[damageListTV selectedRow]];
6628         
6629         EQ[clickIndexEQ].A->D = Dtop;
6630         
6631         EQ[clickIndexEQ].A = aTop;
6632     
6633     
6634         return;
6635     }
6636     
6637     
6638     if(!loadChipSideFlag){
6639     NSMutableDictionary* dict = [NSMutableDictionary new];
6640     
6641     if([ALPUBtype indexOfSelectedItem] == 0)
6642         [dict setValue:[NSString stringWithFormat:@"攻%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
6643     if([ALPUBtype indexOfSelectedItem] == 1)
6644         [dict setValue:[NSString stringWithFormat:@"防%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
6645     if([ALPUBtype indexOfSelectedItem] == 2)
6646         [dict setValue:[NSString stringWithFormat:@"命%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
6647     if([ALPUBtype indexOfSelectedItem] == 3)
6648         [dict setValue:[NSString stringWithFormat:@"回%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
6649     if([ALPUBtype indexOfSelectedItem] == 4)
6650         [dict setValue:[NSString stringWithFormat:@"演%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
6651     if([ALPUBtype indexOfSelectedItem] == 5)
6652         [dict setValue:[NSString stringWithFormat:@"会%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
6653     
6654     NSString *str;
6655     
6656     if([ALPUBsort indexOfSelectedItem] == 0) str = [NSString stringWithFormat:@"ダ・"];
6657     if([ALPUBsort indexOfSelectedItem] == 1) str = [NSString stringWithFormat:@"回・"];
6658     if([ALPUBsort indexOfSelectedItem] == 2) str = [NSString stringWithFormat:@"復・"];
6659     if([ALPUBsort indexOfSelectedItem] == 3) str = [NSString stringWithFormat:@"減・"];
6660     if([ALPUBsort indexOfSelectedItem] == 4) str = [NSString stringWithFormat:@"増・"];
6661     if([ALPUBsort indexOfSelectedItem] == 5) str = [NSString stringWithFormat:@"毒・"];
6662     if([ALPUBsort indexOfSelectedItem] == 6) str = [NSString stringWithFormat:@"睡・"];
6663     if([ALPUBsort indexOfSelectedItem] == 7) str = [NSString stringWithFormat:@"混・"];
6664     if([ALPUBsort indexOfSelectedItem] == 8) str = [NSString stringWithFormat:@"麻・"];
6665     if([ALPUBsort indexOfSelectedItem] == 9) str = [NSString stringWithFormat:@"沈・"];
6666     if([ALPUBsort indexOfSelectedItem] == 10) str = [NSString stringWithFormat:@"魅・"];
6667     
6668     if([ALPUBseed indexOfSelectedItem] == 0) str = [str stringByAppendingFormat:@"打撃"];
6669     if([ALPUBseed indexOfSelectedItem] == 1) str = [str stringByAppendingFormat:@"斬撃"];
6670     if([ALPUBseed indexOfSelectedItem] == 2) str = [str stringByAppendingFormat:@"突き"];
6671     if([ALPUBseed indexOfSelectedItem] == 3) str = [str stringByAppendingFormat:@"射手"];
6672     if([ALPUBseed indexOfSelectedItem] == 4) str = [str stringByAppendingFormat:@"銃撃"];
6673     if([ALPUBseed indexOfSelectedItem] == 5) str = [str stringByAppendingFormat:@"砲撃"];
6674     if([ALPUBseed indexOfSelectedItem] == 6) str = [str stringByAppendingFormat:@"火炎"];
6675     if([ALPUBseed indexOfSelectedItem] == 7) str = [str stringByAppendingFormat:@"冷気"];
6676     if([ALPUBseed indexOfSelectedItem] == 8) str = [str stringByAppendingFormat:@"電撃"];
6677     if([ALPUBseed indexOfSelectedItem] == 9) str = [str stringByAppendingFormat:@"風圧"];
6678     if([ALPUBseed indexOfSelectedItem] == 10) str = [str stringByAppendingFormat:@"流水"];
6679     if([ALPUBseed indexOfSelectedItem] == 11) str = [str stringByAppendingFormat:@"ガス"];
6680     if([ALPUBseed indexOfSelectedItem] == 12) str = [str stringByAppendingFormat:@"神聖"];
6681     if([ALPUBseed indexOfSelectedItem] == 13) str = [str stringByAppendingFormat:@"暗黒"];
6682     if([ALPUBseed indexOfSelectedItem] == 14) str = [str stringByAppendingFormat:@"爆撃"];
6683     if([ALPUBseed indexOfSelectedItem] == 15) str = [str stringByAppendingFormat:@"流血"];
6684     
6685     
6686     if([ALBCnormal state] == YES) str = [str stringByAppendingFormat:@"通"];
6687     if([ALBCarchery state] == YES) str = [str stringByAppendingFormat:@"弓"];
6688     if([ALBCgun state] == YES) str = [str stringByAppendingFormat:@"銃"];
6689         
6690     ATTACK *aTop = UC[clickIndex].A;
6691     for(int k = 0;k < clickIndexAL;k++) {
6692         UC[clickIndex].A = UC[clickIndex].A->next;
6693     }
6694     
6695     DAMAGE *Dtop = UC[clickIndex].A->D;
6696     if(!UC[clickIndex].A->D){
6697         UC[clickIndex].A->D = calloc(1, sizeof(DAMAGE));
6698         Dtop = UC[clickIndex].A->D;
6699     }
6700     while(UC[clickIndex].A->D->next){
6701         UC[clickIndex].A->D = UC[clickIndex].A->D->next;
6702     }
6703     
6704     if([damageListMA count] >= 1){
6705         UC[clickIndex].A->D->next = calloc(1, sizeof(DAMAGE));
6706         UC[clickIndex].A->D = UC[clickIndex].A->D->next;
6707     }
6708     UC[clickIndex].A->D->next = NULL;//Dtop;
6709         UC[clickIndex].A->D->count = [ALTFdmgCount intValue];
6710         UC[clickIndex].A->D->pCount = [ALTFdmgRate intValue];
6711         UC[clickIndex].A->D->type = (int)[ALPUBtype indexOfSelectedItem];
6712         UC[clickIndex].A->D->seed = (int)[ALPUBseed indexOfSelectedItem];
6713         UC[clickIndex].A->D->sort = (int)[ALPUBsort indexOfSelectedItem];
6714         UC[clickIndex].A->D->beam = [ALTFbeam intValue];
6715         UC[clickIndex].A->D->absolute = [ALTFabsolute intValue];
6716         UC[clickIndex].A->D->noSizeFix = [ALTFnoSizeFix intValue];
6717         UC[clickIndex].A->D->continium = [ALTFcontinuum intValue];
6718         if([ALBCnormal intValue] != 0)
6719             UC[clickIndex].A->D->fix = 0;
6720         else if([ALBCarchery intValue] != 0)
6721             UC[clickIndex].A->D->fix = 1;
6722         else if([ALBCgun intValue] != 0)
6723             UC[clickIndex].A->D->fix = 2;
6724     
6725     [self setTotalDamage:(int)clickIndex row:clickedRowAT];
6726     
6727     [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"type"];
6728     [self willChangeValueForKey:@"damageListMA"];
6729     [damageListMA addObject:dict];
6730     [self didChangeValueForKey:@"damageListMA"];
6731     [damageListAC setSelectionIndex:[damageListTV selectedRow]];
6732     
6733         UC[clickIndex].A->D = Dtop;
6734     
6735         UC[clickIndex].A = aTop;
6736     }else{
6737     
6738         NSMutableDictionary* dict = [NSMutableDictionary new];
6739         
6740             [dict setValue:[NSString stringWithFormat:@"攻%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
6741         
6742         NSString *str;
6743         
6744         if([ALPUBsort indexOfSelectedItem] == 0) str = [NSString stringWithFormat:@"ダ・"];
6745         if([ALPUBsort indexOfSelectedItem] == 1) str = [NSString stringWithFormat:@"回・"];
6746         if([ALPUBsort indexOfSelectedItem] == 2) str = [NSString stringWithFormat:@"復・"];
6747         if([ALPUBsort indexOfSelectedItem] == 3) str = [NSString stringWithFormat:@"減・"];
6748         if([ALPUBsort indexOfSelectedItem] == 4) str = [NSString stringWithFormat:@"増・"];
6749         if([ALPUBsort indexOfSelectedItem] == 5) str = [NSString stringWithFormat:@"毒・"];
6750         if([ALPUBsort indexOfSelectedItem] == 6) str = [NSString stringWithFormat:@"睡・"];
6751         if([ALPUBsort indexOfSelectedItem] == 7) str = [NSString stringWithFormat:@"混・"];
6752         if([ALPUBsort indexOfSelectedItem] == 8) str = [NSString stringWithFormat:@"麻・"];
6753         if([ALPUBsort indexOfSelectedItem] == 9) str = [NSString stringWithFormat:@"沈・"];
6754         if([ALPUBsort indexOfSelectedItem] == 10) str = [NSString stringWithFormat:@"魅・"];
6755         
6756         if([ALPUBseed indexOfSelectedItem] == 0) str = [str stringByAppendingFormat:@"打撃"];
6757         if([ALPUBseed indexOfSelectedItem] == 1) str = [str stringByAppendingFormat:@"斬撃"];
6758         if([ALPUBseed indexOfSelectedItem] == 2) str = [str stringByAppendingFormat:@"突き"];
6759         if([ALPUBseed indexOfSelectedItem] == 3) str = [str stringByAppendingFormat:@"射手"];
6760         if([ALPUBseed indexOfSelectedItem] == 4) str = [str stringByAppendingFormat:@"銃撃"];
6761         if([ALPUBseed indexOfSelectedItem] == 5) str = [str stringByAppendingFormat:@"砲撃"];
6762         if([ALPUBseed indexOfSelectedItem] == 6) str = [str stringByAppendingFormat:@"火炎"];
6763         if([ALPUBseed indexOfSelectedItem] == 7) str = [str stringByAppendingFormat:@"冷気"];
6764         if([ALPUBseed indexOfSelectedItem] == 8) str = [str stringByAppendingFormat:@"電撃"];
6765         if([ALPUBseed indexOfSelectedItem] == 9) str = [str stringByAppendingFormat:@"風圧"];
6766         if([ALPUBseed indexOfSelectedItem] == 10) str = [str stringByAppendingFormat:@"流水"];
6767         if([ALPUBseed indexOfSelectedItem] == 11) str = [str stringByAppendingFormat:@"ガス"];
6768         if([ALPUBseed indexOfSelectedItem] == 12) str = [str stringByAppendingFormat:@"神聖"];
6769         if([ALPUBseed indexOfSelectedItem] == 13) str = [str stringByAppendingFormat:@"暗黒"];
6770         if([ALPUBseed indexOfSelectedItem] == 14) str = [str stringByAppendingFormat:@"爆撃"];
6771         if([ALPUBseed indexOfSelectedItem] == 15) str = [str stringByAppendingFormat:@"流血"];
6772         
6773         if([ALBCnormal state] == YES) str = [str stringByAppendingFormat:@"通"];
6774         if([ALBCarchery state] == YES) str = [str stringByAppendingFormat:@"弓"];
6775         if([ALBCgun state] == YES) str = [str stringByAppendingFormat:@"銃"];
6776         
6777         
6778         ATTACK *aTop = LC[cil].A;
6779         for(int k = 0;k < clickIndexAL;k++) {
6780             LC[cil].A = LC[cil].A->next;
6781         }
6782         
6783         DAMAGE *Dtop = LC[cil].A->D;
6784         if(!LC[cil].A->D){
6785             LC[cil].A->D = calloc(1, sizeof(DAMAGE));
6786             Dtop = LC[cil].A->D;
6787         }
6788         while(LC[cil].A->D->next){
6789             LC[cil].A->D = LC[cil].A->D->next;
6790         }
6791         
6792         if([damageListMA count] >= 1){
6793             LC[cil].A->D->next = calloc(1, sizeof(DAMAGE));
6794             LC[cil].A->D = LC[cil].A->D->next;
6795         }
6796         LC[cil].A->D->next = NULL;//Dtop;
6797         LC[cil].A->D->count = [ALTFdmgCount intValue];
6798         LC[cil].A->D->pCount = [ALTFdmgRate intValue];
6799         LC[cil].A->D->type = (int)[ALPUBtype indexOfSelectedItem];
6800         LC[cil].A->D->seed = (int)[ALPUBseed indexOfSelectedItem];
6801         LC[cil].A->D->sort = (int)[ALPUBsort indexOfSelectedItem];
6802         LC[cil].A->D->beam = [ALTFbeam intValue];
6803         LC[cil].A->D->absolute = [ALTFabsolute intValue];
6804         LC[cil].A->D->noSizeFix = [ALTFnoSizeFix intValue];
6805         LC[cil].A->D->continium = [ALTFcontinuum intValue];
6806         if([ALBCnormal intValue] != 0)
6807             LC[cil].A->D->fix = 0;
6808         else if([ALBCarchery intValue] != 0)
6809             LC[cil].A->D->fix = 1;
6810         else if([ALBCgun intValue] != 0)
6811             LC[cil].A->D->fix = 2;
6812         
6813         [self setTotalDamage2:(int)clickIndex row:clickedRowAT];
6814         
6815         [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"type"];
6816         [self willChangeValueForKey:@"damageListMA"];
6817         [damageListMA addObject:dict];
6818         [self didChangeValueForKey:@"damageListMA"];
6819         [damageListAC setSelectionIndex:[damageListTV selectedRow]];
6820         
6821         LC[cil].A->D = Dtop;
6822         
6823         LC[cil].A = aTop;
6824     
6825     }
6826     
6827 }
6828
6829 -(IBAction)removeDamageList:(id)sender{
6830     
6831     if(EQmodeFlag){
6832         if([damageListTV selectedRow] >= 0){
6833             
6834             ATTACK *aTop = EQ[clickIndexEQ].A;
6835             for(int k = 0;k < clickIndexAL;k++) {
6836                 EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
6837             }
6838             DAMAGE *dmgNext = NULL;
6839             dmgNext = calloc(1, sizeof(DAMAGE));
6840             
6841             int clickIndexDL = (int)[damageListTV selectedRow];
6842             
6843             DAMAGE *dTop = EQ[clickIndexEQ].A->D;
6844             for(int k = 0;k < clickIndexDL;k++){
6845                 EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next;
6846             }
6847             
6848             if(clickIndexDL >= 0 && [damageListMA count] > 0){
6849                 if(clickIndexDL == 0){
6850                     EQ[clickIndexEQ].A->D = dTop;
6851                     EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next;
6852                     dTop = EQ[clickIndexEQ].A->D;
6853                 }else if(clickIndexDL == [damageListMA count] - 1){
6854                     EQ[clickIndexEQ].A->D = dTop;
6855                     while(EQ[clickIndexEQ].A->D->next->next){
6856                         EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next;
6857                     }
6858                     EQ[clickIndexEQ].A->D->next = NULL;
6859                 }else{
6860                     EQ[clickIndexEQ].A->D = dTop;
6861                     for (int i = 0; i < clickIndexDL - 1;i++)
6862                         EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next;
6863                     EQ[clickIndexEQ].A->D->next = EQ[clickIndexEQ].A->D->next->next;
6864                 }
6865             }
6866             EQ[clickIndexEQ].A->D = dTop;
6867             
6868             [self willChangeValueForKey:@"damageListMA"];
6869             [damageListMA removeObjectAtIndex:[damageListTV selectedRow]];
6870             [self didChangeValueForKey:@"damageListMA"];
6871             if([damageListMA count] > 0) [damageListAC setSelectionIndex:[damageListTV selectedRow]-1];
6872             
6873             EQ[clickIndexEQ].A = aTop;
6874     
6875     
6876     
6877         }
6878         return;
6879     }
6880     
6881     if(!loadChipSideFlag){
6882     if([damageListTV selectedRow] >= 0){
6883         
6884         ATTACK *aTop = UC[clickIndex].A;
6885         for(int k = 0;k < clickIndexAL;k++) {
6886             UC[clickIndex].A = UC[clickIndex].A->next;
6887         }
6888         DAMAGE *dmgNext = NULL;
6889         dmgNext = calloc(1, sizeof(DAMAGE));
6890         
6891         int clickIndexDL = (int)[damageListTV selectedRow];
6892         
6893         DAMAGE *dTop = UC[clickIndex].A->D;
6894         for(int k = 0;k < clickIndexDL;k++){
6895             UC[clickIndex].A->D = UC[clickIndex].A->D->next;
6896         }
6897     
6898         if(clickIndexDL >= 0 && [damageListMA count] > 0){
6899         if(clickIndexDL == 0){
6900             UC[clickIndex].A->D = dTop;
6901             UC[clickIndex].A->D = UC[clickIndex].A->D->next;
6902             dTop = UC[clickIndex].A->D;
6903         }else if(clickIndexDL == [damageListMA count] - 1){
6904             UC[clickIndex].A->D = dTop;
6905             while(UC[clickIndex].A->D->next->next){
6906                 UC[clickIndex].A->D = UC[clickIndex].A->D->next;
6907             }
6908             UC[clickIndex].A->D->next = NULL;
6909         }else{
6910             UC[clickIndex].A->D = dTop;
6911             for (int i = 0; i < clickIndexDL - 1;i++)
6912                 UC[clickIndex].A->D = UC[clickIndex].A->D->next;
6913             UC[clickIndex].A->D->next = UC[clickIndex].A->D->next->next;
6914         }
6915         }
6916         UC[clickIndex].A->D = dTop;
6917         
6918         [self willChangeValueForKey:@"damageListMA"];
6919         [damageListMA removeObjectAtIndex:[damageListTV selectedRow]];
6920         [self didChangeValueForKey:@"damageListMA"];
6921         if([damageListMA count] > 0) [damageListAC setSelectionIndex:[damageListTV selectedRow]-1];
6922         
6923         UC[clickIndex].A = aTop;
6924     }
6925     
6926     }else{
6927         if([damageListTV selectedRow] >= 0){
6928             
6929             ATTACK *aTop = LC[cil].A;
6930             for(int k = 0;k < clickIndexAL;k++) {
6931                 LC[cil].A = LC[cil].A->next;
6932             }
6933             DAMAGE *dmgNext = NULL;
6934             dmgNext = calloc(1, sizeof(DAMAGE));
6935             
6936             int clickIndexDL = (int)[damageListTV selectedRow];
6937             
6938             DAMAGE *dTop = LC[cil].A->D;
6939             for(int k = 0;k < clickIndexDL;k++){
6940                 LC[cil].A->D = LC[cil].A->D->next;
6941             }
6942             
6943             if(clickIndexDL >= 0 && [damageListMA count] > 0){
6944                 if(clickIndexDL == 0){
6945                     LC[cil].A->D = dTop;
6946                     LC[cil].A->D = LC[cil].A->D->next;
6947                     dTop = LC[cil].A->D;
6948                 }else if(clickIndexDL == [damageListMA count] - 1){
6949                     LC[cil].A->D = dTop;
6950                     while(LC[cil].A->D->next->next){
6951                         LC[cil].A->D = LC[cil].A->D->next;
6952                     }
6953                     LC[cil].A->D->next = NULL;
6954                 }else{
6955                     LC[cil].A->D = dTop;
6956                     for (int i = 0; i < clickIndexDL - 1;i++)
6957                         LC[cil].A->D = LC[cil].A->D->next;
6958                     LC[cil].A->D->next = LC[cil].A->D->next->next;
6959                 }
6960             }
6961             LC[cil].A->D = dTop;
6962             
6963             [self willChangeValueForKey:@"damageListMA"];
6964             [damageListMA removeObjectAtIndex:[damageListTV selectedRow]];
6965             [self didChangeValueForKey:@"damageListMA"];
6966             if([damageListMA count] > 0) [damageListAC setSelectionIndex:[damageListTV selectedRow]-1];
6967             
6968             LC[cil].A = aTop;
6969         }
6970     
6971     }
6972 }
6973
6974
6975
6976 -(IBAction)insertHitList:(id)sender{
6977     
6978     if(!loadChipSideFlag){
6979     ATTACK *aTop = UC[clickIndex].A;
6980     for(int k = 0;k < clickIndexAL;k++) {
6981         UC[clickIndex].A = UC[clickIndex].A->next;
6982     }
6983     
6984     DMGEXTEND *Etop = UC[clickIndex].A->E;
6985     
6986     UC[clickIndex].A->E = Etop;
6987     
6988     if(!UC[clickIndex].A->E) {[self AddDMGEXTEND:&UC[clickIndex].A->E :0];
6989         Etop = UC[clickIndex].A->E;
6990     }
6991     
6992     for(int k = 0;k < (int)[hitListMA count]-1;k++) {
6993      UC[clickIndex].A->E = UC[clickIndex].A->E->next;
6994     }
6995     
6996     
6997     if((int)[hitListMA count] > 0){
6998     UC[clickIndex].A->E->next = calloc(1, sizeof(DMGEXTEND));
6999     UC[clickIndex].A->E = UC[clickIndex].A->E->next;
7000     }
7001     UC[clickIndex].A->E->next = NULL;
7002     UC[clickIndex].A->E->atkHit = [ALTFatkHit intValue];
7003     UC[clickIndex].A->E->hit = [ALTFhit intValue];
7004     UC[clickIndex].A->E->rate = [ALTFrate intValue];
7005     
7006     NSMutableDictionary* dict = [NSMutableDictionary new];
7007     [dict setValue:[NSString stringWithFormat:@"%d", [ALTFrate intValue]] forKey:@"rate"];
7008     [dict setValue:[NSString stringWithFormat:@"%d", [ALTFhit intValue]] forKey:@"hit"];
7009     [dict setValue:[NSString stringWithFormat:@"%d", [ALTFatkHit intValue]] forKey:@"atkHit"];
7010     
7011     [self willChangeValueForKey:@"hitListMA"];
7012     [hitListMA addObject:dict];
7013     [self didChangeValueForKey:@"hitListMA"];
7014     [hitListAC setSelectionIndex:[hitListTV selectedRow]];
7015     
7016     UC[clickIndex].A->E = Etop;
7017     
7018     UC[clickIndex].A = aTop;
7019     
7020     }else{
7021     
7022         ATTACK *aTop = LC[cil].A;
7023         for(int k = 0;k < clickIndexAL;k++) {
7024             LC[cil].A = LC[cil].A->next;
7025         }
7026         
7027         DMGEXTEND *Etop = LC[cil].A->E;
7028         
7029         LC[cil].A->E = Etop;
7030         
7031         if(!LC[cil].A->E) {[self AddDMGEXTEND:&LC[cil].A->E :0];
7032             Etop = LC[cil].A->E;
7033         }
7034         
7035         for(int k = 0;k < (int)[hitListMA count]-1;k++) {
7036             LC[cil].A->E = LC[cil].A->E->next;
7037         }
7038         
7039         
7040         if((int)[hitListMA count] > 0){
7041             LC[cil].A->E->next = calloc(1, sizeof(DMGEXTEND));
7042             LC[cil].A->E = LC[cil].A->E->next;
7043         }
7044         LC[cil].A->E->next = NULL;
7045         LC[cil].A->E->atkHit = [ALTFatkHit intValue];
7046         LC[cil].A->E->hit = [ALTFhit intValue];
7047         LC[cil].A->E->rate = [ALTFrate intValue];
7048         
7049         NSMutableDictionary* dict = [NSMutableDictionary new];
7050         [dict setValue:[NSString stringWithFormat:@"%d", [ALTFrate intValue]] forKey:@"rate"];
7051         [dict setValue:[NSString stringWithFormat:@"%d", [ALTFhit intValue]] forKey:@"hit"];
7052         [dict setValue:[NSString stringWithFormat:@"%d", [ALTFatkHit intValue]] forKey:@"atkHit"];
7053         
7054         [self willChangeValueForKey:@"hitListMA"];
7055         [hitListMA addObject:dict];
7056         [self didChangeValueForKey:@"hitListMA"];
7057         [hitListAC setSelectionIndex:[hitListTV selectedRow]];
7058         
7059         LC[cil].A->E = Etop;
7060         
7061         LC[cil].A = aTop;
7062         
7063
7064     
7065     }
7066     
7067 }
7068
7069 -(IBAction)removeHitList:(id)sender{
7070
7071     
7072     if(!loadChipSideFlag){
7073     if([hitListTV selectedRow] >= 0){
7074         ATTACK *aTop = UC[clickIndex].A;
7075         for(int k = 0;k < clickIndexAL;k++) {
7076             UC[clickIndex].A = UC[clickIndex].A->next;
7077         }
7078         DMGEXTEND *Etop = UC[clickIndex].A->E;
7079         DMGEXTEND *eNext = NULL;
7080         
7081         
7082          int clickIndexHL = (int)[hitListTV selectedRow];
7083         
7084         for(int k = 0;k < clickIndexHL-1;k++){
7085             UC[clickIndex].A->E = UC[clickIndex].A->E->next;
7086         }
7087         
7088         if(clickIndexHL == 0) {
7089             
7090             UC[clickIndex].A->E = UC[clickIndex].A->E->next;
7091             Etop = UC[clickIndex].A->E;
7092         
7093         }
7094         
7095         else{
7096             eNext = UC[clickIndex].A->E->next->next;
7097         
7098         UC[clickIndex].A->E->next = eNext;
7099         }
7100         
7101         UC[clickIndex].A->E = Etop;
7102         
7103         [self willChangeValueForKey:@"hitListMA"];
7104         [hitListMA removeObjectAtIndex:[hitListTV selectedRow]];
7105         [self didChangeValueForKey:@"hitListMA"];
7106         if([hitListMA count] > 0) [hitListAC setSelectionIndex:[hitListTV selectedRow]-1];
7107         
7108         UC[clickIndex].A = aTop;
7109     }
7110     
7111     }else{
7112     
7113         if([hitListTV selectedRow] >= 0){
7114             ATTACK *aTop = LC[cil].A;
7115             for(int k = 0;k < clickIndexAL;k++) {
7116                 LC[cil].A = LC[cil].A->next;
7117             }
7118             DMGEXTEND *Etop = LC[cil].A->E;
7119             DMGEXTEND *eNext = NULL;
7120             
7121             
7122             int clickIndexHL = (int)[hitListTV selectedRow];
7123             
7124             for(int k = 0;k < clickIndexHL-1;k++){
7125                 LC[cil].A->E = LC[cil].A->E->next;
7126             }
7127             
7128             if(clickIndexHL == 0) {
7129                 
7130                 LC[cil].A->E = LC[cil].A->E->next;
7131                 Etop = LC[cil].A->E;
7132                 
7133             }
7134             
7135             else{
7136                 eNext = LC[cil].A->E->next->next;
7137                 
7138                 LC[cil].A->E->next = eNext;
7139             }
7140             
7141             LC[cil].A->E = Etop;
7142             
7143             [self willChangeValueForKey:@"hitListMA"];
7144             [hitListMA removeObjectAtIndex:[hitListTV selectedRow]];
7145             [self didChangeValueForKey:@"hitListMA"];
7146             if([hitListMA count] > 0) [hitListAC setSelectionIndex:[hitListTV selectedRow]-1];
7147             
7148             LC[cil].A = aTop;
7149         }
7150     
7151     
7152     }
7153 }
7154
7155 -(IBAction)skillListInsert:(id)sender{
7156     SLpbtn = (int)[PUBsl indexOfSelectedItem];
7157     
7158     if(SLpbtn <= 0) return;
7159     
7160     NSMutableDictionary *dict = [NSMutableDictionary new];
7161     [dict setValue:[NSString stringWithFormat:@"新規スキル"] forKey:@"name"];
7162     
7163     Stop = UC[clickIndex].S;
7164     
7165     if(SKLrow < 0){
7166         if([skillListMA count] == 0){
7167             UC[clickIndex].S = (SKILL*)malloc(sizeof(SKILL));
7168             //INIT 処理
7169             UC[clickIndex].S->type = SLpbtn;
7170             [self SLbuildinit];
7171             UC[clickIndex].S->next = NULL;
7172             Stop = UC[clickIndex].S;
7173         }else{
7174             while(UC[clickIndex].S->next) UC[clickIndex].S = UC[clickIndex].S->next;
7175             UC[clickIndex].S->next = (SKILL*)malloc(sizeof(SKILL));
7176             UC[clickIndex].S = UC[clickIndex].S->next;
7177             //INIT 処理
7178             UC[clickIndex].S->type = SLpbtn;
7179             [self SLbuildinit];
7180             UC[clickIndex].S->next = NULL;
7181             UC[clickIndex].S = Stop;
7182         }
7183         
7184         SKL = SKLtop;
7185         for(int i = 1;i < SLpbtn;i++){
7186             SKL = SKL->next;
7187         }
7188         [dict setValue:[NSString stringWithFormat:@"%@", SKL->name] forKey:@"name"];
7189         SKL = SKLtop;
7190         [self willChangeValueForKey:@"skillListMA"];
7191         [skillListMA insertObject:dict atIndex:[skillListMA count]];
7192         [self didChangeValueForKey:@"skillListMA"];
7193         [skillListAC setSelectionIndex:999];
7194         SKLrow = -1;
7195     }else{
7196         UC[clickIndex].S = Stop;
7197         if([skillListMA count] == 0){
7198             UC[clickIndex].S = (SKILL*)malloc(sizeof(SKILL));
7199             //INIT 処理
7200             UC[clickIndex].S->type = SLpbtn;
7201             [self SLbuildinit];
7202             UC[clickIndex].S->next = NULL;
7203             Stop = UC[clickIndex].S;
7204         }else if(SKLrow > 0){
7205             for (int i = 0; i < SKLrow-1;i++)
7206                 UC[clickIndex].S = UC[clickIndex].S->next;
7207             
7208             SKILL *tmp = (SKILL*)malloc(sizeof(SKILL));
7209             *tmp = *UC[clickIndex].S->next;
7210             UC[clickIndex].S->next = (SKILL*)malloc(sizeof(SKILL));
7211             UC[clickIndex].S->next->next = tmp;
7212             UC[clickIndex].S = UC[clickIndex].S->next;
7213             //INIT 処理
7214             UC[clickIndex].S->type = SLpbtn;
7215             [self SLbuildinit];
7216             UC[clickIndex].S = Stop;
7217         }else{
7218             SKILL *tmp = (SKILL*)malloc(sizeof(SKILL));
7219             tmp->next = UC[clickIndex].S;
7220             
7221             UC[clickIndex].S->type = SLpbtn;
7222             [self SLbuildinit];
7223             Stop = tmp;
7224             UC[clickIndex].S = Stop;
7225         }
7226         SKL = SKLtop;
7227         for(int i = 1;i < SLpbtn;i++){
7228             SKL = SKL->next;
7229         }
7230         [dict setValue:[NSString stringWithFormat:@"%@", SKL->name] forKey:@"name"];
7231         SKL = SKLtop;
7232         [self willChangeValueForKey:@"skillListMA"];
7233         [skillListMA insertObject:dict atIndex:SKLrow];
7234         [self didChangeValueForKey:@"skillListMA"];
7235         [skillListAC setSelectionIndex:SKLrow];
7236     }
7237 }
7238 -(IBAction)skillListDelete:(id)sender{
7239     Stop = UC[clickIndex].S;
7240     
7241     if(SKLrow == -1){
7242         SKLrow = (int)[skillListMA count] - 1;
7243     }
7244     
7245     if([skillListMA count] > 0){
7246         
7247         if(SKLrow == 0){
7248             UC[clickIndex].S = Stop;
7249             UC[clickIndex].S = UC[clickIndex].S->next;
7250             Stop = UC[clickIndex].S;
7251         }else if(SKLrow == [skillListMA count] - 1){
7252             UC[clickIndex].S = Stop;
7253             while(UC[clickIndex].S->next->next){
7254                 UC[clickIndex].S = UC[clickIndex].S->next;
7255             }
7256             UC[clickIndex].S->next = NULL;
7257         }else{
7258             UC[clickIndex].S = Stop;
7259             for (int i = 0; i < SKLrow - 1;i++)
7260                 UC[clickIndex].S = UC[clickIndex].S->next;
7261             UC[clickIndex].S->next = UC[clickIndex].S->next->next;
7262         }
7263         
7264         [self willChangeValueForKey:@"skillListMA"];
7265         [skillListMA removeObjectAtIndex:SKLrow];
7266         [self didChangeValueForKey:@"skillListMA"];
7267         [skillListAC setSelectionIndex:SKLrow-1];
7268         if(SKLrow < 0) [skillListAC setSelectionIndex:[skillListMA count]-1];
7269         if(SKLrow == 0) [skillListAC setSelectionIndex:0];
7270         if(SKLrow > 0) SKLrow--;
7271     }
7272     UC[clickIndex].S = Stop;
7273 }
7274
7275
7276 -(IBAction)SLbuildAdd:(id)sender{
7277     NSMutableDictionary *dict = [NSMutableDictionary new];
7278     NSMutableArray *Array = [NSMutableArray array];
7279     
7280     for(int i = 0;i<BuildChipNum;i++){
7281         [Array addObject:[BC[i].name retain]];
7282     }
7283     [dict setValue:Array forKey:@"name"];
7284     [dict setValue:0xc7 forKey:@"sel"];
7285     [dict setValue:[NSString stringWithFormat:@"資%d食%d金%d", BC[0].Csupply, BC[0].Cfood, BC[0].Cmoney] forKey:@"manko"];
7286     Stop = UC[clickIndex].S;
7287     
7288     if(SKLrow <= 0) SKLrow = 0;
7289     
7290     for(int i = 0;i < SKLrow;i++){
7291         UC[clickIndex].S = UC[clickIndex].S->next;
7292     }
7293     
7294     if(1){
7295         if([skillListBuildMA count] == 0){
7296             UC[clickIndex].S->list[0] = 1;
7297         }else{
7298             int k = 0;
7299             for(int i = 0;UC[clickIndex].S->list[i] > 0;i++){
7300                 k++;
7301             }
7302             UC[clickIndex].S->list[k] = 1;
7303         }
7304         
7305         [self willChangeValueForKey:@"skillListBuildMA"];
7306         [skillListBuildMA addObject:dict];
7307         [self didChangeValueForKey:@"skillListBuildMA"];
7308         [skillListBuildAC setSelectionIndex:[skillListBuildMA count]-1];
7309         SKLBrow = (int)[skillListBuildMA count]-1;
7310     }
7311     UC[clickIndex].S = Stop;
7312
7313
7314 }
7315 -(IBAction)SLbuildDelete:(id)sender{
7316     
7317     
7318     UC[clickIndex].S = Stop;
7319     
7320     if(SKLBrow == -1){
7321         SKLBrow = 0;
7322     }
7323     
7324     
7325     
7326     if(SKLBrow >= 0){
7327         
7328         erase(UC[clickIndex].S->list[0]+SKLBrow, UC[clickIndex].S->list[254]);
7329         
7330         [self willChangeValueForKey:@"skillListBuildMA"];
7331         [skillListBuildMA removeObjectAtIndex:SKLBrow];
7332         [self didChangeValueForKey:@"skillListBuildMA"];
7333         [skillListBuildAC setSelectionIndex:SKLBrow-1];
7334         if(SKLBrow < 0) [skillListAC setSelectionIndex:[skillListBuildMA count]-1];
7335         if(SKLBrow == 0) [skillListAC setSelectionIndex:0];
7336         if(SKLBrow > 0) SKLBrow--;
7337     }
7338     UC[clickIndex].S = Stop;
7339 }
7340
7341
7342 void erase(int *ptr, int *last)
7343 {
7344     while ( ++ptr < last )
7345         *(ptr - 1) = *ptr;       //  要素をひとつ前にずらす
7346 }
7347
7348 int omfgErase() {
7349     int v[] = {3, 1, 4, 1, 5};
7350     erase(v[0]+2, v[4]);      // [2] の要素を削除。最後の 5 はそのまま
7351     return 0;
7352 }
7353
7354
7355
7356 -(IBAction)SLbuildSubmit:(id)sender{
7357     [self willChangeValueForKey:@"skillListBuildMA"];
7358     [skillListBuildMA removeAllObjects];
7359     [self didChangeValueForKey:@"skillListBuildMA"];
7360     [SLBpanel close];
7361 }
7362
7363 -(void)SLbuildinit{
7364
7365
7366     for(int i = 0;i< 255;i++){
7367         UC[clickIndex].S->list[i] = 0;
7368         UC[clickIndex].S->cost[i] = 0;
7369
7370     }
7371     
7372 }
7373
7374
7375 -(IBAction)SLunitAdd:(id)sender{
7376     NSMutableDictionary *dict = [NSMutableDictionary new];
7377     NSMutableArray *Array = [NSMutableArray array];
7378     
7379     for(int i = 0;i<UCN;i++){
7380         [Array addObject:[UC[i].nameRecognition retain]];
7381     }
7382     [dict setValue:Array forKey:@"name"];
7383     [dict setValue:0xc7 forKey:@"sel"];
7384     [dict setValue:[NSString stringWithFormat:@"%d", 0] forKey:@"MP"];
7385     Stop = UC[clickIndex].S;
7386     
7387     if(SKLrow <= 0) SKLrow = 0;
7388     
7389     for(int i = 0;i < SKLrow;i++){
7390         UC[clickIndex].S = UC[clickIndex].S->next;
7391     }
7392     
7393     if(1){
7394         if([skillListUnitMA count] == 0){
7395             UC[clickIndex].S->list[0] = 2;
7396         }else{
7397             int k = 0;
7398             for(int i = 0;UC[clickIndex].S->list[i] > 0;i++){
7399                 k++;
7400             }
7401             UC[clickIndex].S->list[k] = 2;
7402         }
7403         
7404         [self willChangeValueForKey:@"skillListUnitMA"];
7405         [skillListUnitMA addObject:dict];
7406         [self didChangeValueForKey:@"skillListUnitMA"];
7407         [skillListUnitAC setSelectionIndex:[skillListUnitMA count]-1];
7408         SKLBrow = (int)[skillListUnitMA count]-1;
7409     }UC[clickIndex].S = Stop;
7410     
7411     
7412
7413 }
7414 -(IBAction)SLunitDelete:(id)sender{
7415     Stop = UC[clickIndex].S;
7416     
7417     if(SKLrow <= 0) SKLrow = 0;
7418     
7419     for(int i = 0;i < SKLrow;i++){
7420         UC[clickIndex].S = UC[clickIndex].S->next;
7421     }
7422     
7423     if([skillListBuildMA count] > 0){
7424         int k = 0;
7425         if(1){
7426             UC[clickIndex].S = Stop;
7427             for(int i = 0;UC[clickIndex].S->list[i] == 0;i++){
7428                 k++;
7429             }
7430             UC[clickIndex].S->list[k-1] = 0;
7431         }
7432         
7433         [self willChangeValueForKey:@"skillListUnitMA"];
7434         [skillListUnitMA removeObjectAtIndex:k];
7435         [self didChangeValueForKey:@"skillListUnitMA"];
7436         [skillListUnitAC setSelectionIndex:SKLUrow-1];
7437         SKLUrow = -1;
7438     }
7439     UC[clickIndex].S = Stop;
7440 }
7441 -(IBAction)SLunitSubmit:(id)sender{
7442     [self willChangeValueForKey:@"skillListUnitMA"];
7443     [skillListUnitMA removeAllObjects];
7444     [self didChangeValueForKey:@"skillListUnitMA"];
7445     
7446     [SLUpanel close];
7447 }
7448
7449 -(IBAction)registUCL:(id)sender{
7450     [TFchipNumb setIntValue:(int)chipNumb];
7451     UCN = (int)chipNumb;
7452     UnitChipMax = (int)chipNumb/25+1;
7453     [UCLRegisterPanel makeKeyAndOrderFront:nil];
7454 }
7455
7456 -(void)savePresetUnitNumber{
7457     NSString *directoryPath;
7458     
7459     directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
7460     [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
7461     
7462     NSString *path = @"data/UnitChip/preset.txt";
7463     
7464     NSString *data = [NSString stringWithFormat:@"%d", (int)chipNumb];
7465     
7466     [data writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
7467
7468 }
7469
7470 -(void)savePresetItemNumber{
7471     NSString *directoryPath;
7472     
7473     directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
7474     [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
7475     
7476     NSString *path = @"data/ItemList/preset.txt";
7477     
7478     NSString *data = [NSString stringWithFormat:@"%d", (int)eItemNum];
7479     
7480     [data writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
7481     
7482 }
7483
7484 -(IBAction)registSaveUCL:(id)sender{
7485     chipNumb = [TFchipNumb intValue];
7486     [self savePresetUnitNumber];
7487     UCN = (int)chipNumb;
7488     UnitChipMax = (int)chipNumb/25+1;
7489     [self initUnitChipList];
7490     [self saveData];
7491     [self saveDataAL];
7492     [UCLRegisterPanel close];
7493 }
7494 -(IBAction)registCancelUCL:(id)sender{
7495     [UCLRegisterPanel close];
7496 }   
7497
7498 -(void)initAttackSet{
7499     
7500     [AMbtnA removeAllItems];
7501     [AMbtnB removeAllItems];
7502     [AMbtnC removeAllItems];
7503     [AMbtnD removeAllItems];
7504     
7505     [self willChangeValueForKey:@"commandListMA"];
7506     [commandListMA removeAllObjects];
7507     [self didChangeValueForKey:@"commandListMA"];
7508     [self willChangeValueForKey:@"comboListMA"];
7509     [comboListMA removeAllObjects];
7510     [self didChangeValueForKey:@"comboListMA"];
7511     
7512     
7513     [AMbtnA addItemWithTitle:@"なし"];
7514     [AMbtnB addItemWithTitle:@"なし"];
7515     [AMbtnC addItemWithTitle:@"なし"];
7516     [AMbtnD addItemWithTitle:@"なし"];
7517     
7518     ATTACK *Atop = UC[clickIndex].A;
7519     while (UC[clickIndex].A != NULL) {
7520         if(UC[clickIndex].A->name != NULL){
7521             [AMbtnA addItemWithTitle:UC[clickIndex].A->name];
7522             [AMbtnB addItemWithTitle:UC[clickIndex].A->name];
7523             [AMbtnC addItemWithTitle:UC[clickIndex].A->name];
7524             [AMbtnD addItemWithTitle:UC[clickIndex].A->name];
7525         }
7526         UC[clickIndex].A = UC[clickIndex].A->next;
7527     }
7528     UC[clickIndex].A = Atop;
7529
7530     
7531     for(int i = 0;UC[clickIndex].A;i++){
7532     
7533         if(UC[clickIndex].A->cmd && ![UC[clickIndex].A->cmd isEqualToString:@"(null)"] && ![UC[clickIndex].A->cmd isEqualToString:@""]){
7534             NSMutableDictionary *dict = [NSMutableDictionary new];
7535             
7536             [dict setValue:UC[clickIndex].A->cmd forKey:@"name"];
7537             [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->hasei] forKey:@"hasei"];
7538             
7539             NSMutableArray *Array = [NSMutableArray array];
7540             ATTACK *AA = Atop;
7541             while (AA != NULL) {
7542                 [Array addObject:AA->name];
7543                 AA = AA->next;
7544             }
7545             [dict setValue:Array forKey:@"waza"];
7546             [dict setValue:[NSString stringWithFormat:@"%d", i] forKey:@"wazaSet"];
7547             
7548             
7549             [self willChangeValueForKey:@"commandListMA"];
7550             [commandListMA addObject:dict];
7551             [self didChangeValueForKey:@"commandListMA"];
7552         }
7553         
7554         
7555     
7556         
7557         UC[clickIndex].A = UC[clickIndex].A->next;
7558     }
7559     UC[clickIndex].A = Atop;
7560     
7561     
7562     COMBO *Ctop = UC[clickIndex].CM.co;
7563     while (UC[clickIndex].CM.co != NULL) {
7564         NSMutableDictionary* dict = [NSMutableDictionary new];
7565         [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].CM.co->mbo] forKey:@"name"];
7566         [self willChangeValueForKey:@"comboListMA"];
7567         [comboListMA addObject:dict];
7568         [self didChangeValueForKey:@"comboListMA"];
7569         UC[clickIndex].CM.co = UC[clickIndex].CM.co->next;
7570     }
7571     UC[clickIndex].CM.co = Ctop;
7572     
7573     
7574     [AMbtnA selectItemAtIndex:UC[clickIndex].CM.A+1];
7575     [AMbtnB selectItemAtIndex:UC[clickIndex].CM.B+1];
7576     [AMbtnC selectItemAtIndex:UC[clickIndex].CM.C+1];
7577     [AMbtnD selectItemAtIndex:UC[clickIndex].CM.D+1];
7578     
7579     
7580     
7581     
7582     
7583     UC[clickIndex].A = Atop;
7584 }
7585
7586 -(void)initAttackSet2{
7587     
7588     [AMbtnA removeAllItems];
7589     [AMbtnB removeAllItems];
7590     [AMbtnC removeAllItems];
7591     [AMbtnD removeAllItems];
7592     
7593     [self willChangeValueForKey:@"commandListMA"];
7594     [commandListMA removeAllObjects];
7595     [self didChangeValueForKey:@"commandListMA"];
7596     [self willChangeValueForKey:@"comboListMA"];
7597     [comboListMA removeAllObjects];
7598     [self didChangeValueForKey:@"comboListMA"];
7599
7600 }
7601
7602
7603 -(IBAction)attackListTotalSubmit:(id)sender{
7604     
7605     UC[clickIndex].CM.A = (int)[AMbtnA indexOfSelectedItem]-1;
7606     UC[clickIndex].CM.B = (int)[AMbtnB indexOfSelectedItem]-1;
7607     UC[clickIndex].CM.C = (int)[AMbtnC indexOfSelectedItem]-1;
7608     UC[clickIndex].CM.D = (int)[AMbtnD indexOfSelectedItem]-1;
7609     
7610     ATTACK *aTop2 = UC[clickIndex].A;
7611     while (UC[clickIndex].A) {
7612         UC[clickIndex].A->cmd = NULL;
7613         UC[clickIndex].A->hasei = false;
7614         UC[clickIndex].A = UC[clickIndex].A->next;
7615     }
7616     UC[clickIndex].A = aTop2;
7617     
7618     for(int i = 0;i < [commandListMA count];i++){
7619         
7620         ATTACK *aTop = UC[clickIndex].A;
7621         for(int k = 0;k < [[commandListMA[i] valueForKeyPath:@"wazaSet"] intValue];k++)
7622             UC[clickIndex].A = UC[clickIndex].A->next;
7623         UC[clickIndex].A->cmd = [[commandListMA[i] valueForKeyPath:@"name"] retain];
7624         UC[clickIndex].A->hasei = [[commandListMA[i] valueForKeyPath:@"hasei"] intValue];
7625         
7626         UC[clickIndex].A = aTop;
7627     }
7628     
7629     COMBO *cTop = UC[clickIndex].CM.co;
7630     for(int i = 0;i < [comboListMA count];i++){
7631         if (i == 0) {
7632             UC[clickIndex].CM.co =calloc(1, sizeof(COMBO));
7633             cTop = UC[clickIndex].CM.co;
7634         }
7635         UC[clickIndex].CM.co->mbo = [[comboListMA[i] valueForKeyPath:@"name"] retain];
7636         
7637         if(i+1 < [comboListMA count]){
7638             UC[clickIndex].CM.co->next =calloc(1, sizeof(COMBO));
7639         }
7640         UC[clickIndex].CM.co = UC[clickIndex].CM.co->next;
7641     }UC[clickIndex].CM.co = cTop;
7642     
7643     
7644     
7645     
7646     [self saveDataCL];
7647     [UCLPanelAttackList close];
7648     
7649 }
7650 -(IBAction)attackListOpenBtn:(id)sender{
7651     clickedRowAT = -1;
7652     if(!loadChipSideFlag){
7653         [self initAttackList];
7654     }else{
7655         [self initAttackList2];
7656     }
7657     /*
7658     windowPoint.x = [UCLDetailPanel frame].origin.x;
7659     windowPoint.y = [UCLDetailPanel frame].origin.y + 50;
7660     [UCLPanelAttack setFrameOrigin:windowPoint];
7661      */
7662     [UCLPanelAttack makeKeyAndOrderFront:nil];
7663 }
7664 -(IBAction)commandListAdd:(id)sender{
7665     
7666     if(1){
7667         NSMutableDictionary *dict = [NSMutableDictionary new];
7668         
7669         NSMutableArray *Array = [NSMutableArray array];
7670         ATTACK *AA = UC[clickIndex].A;
7671         while (AA != NULL) {
7672             [Array addObject:AA->name];
7673             AA = AA->next;
7674         }
7675         [dict setValue:Array forKey:@"waza"];
7676         
7677         if([commandListMA count] == 0){
7678             
7679             [self willChangeValueForKey:@"commandListMA"];
7680             [commandListMA insertObject:dict atIndex:[commandListMA count]];
7681             [self didChangeValueForKey:@"commandListMA"];
7682             [commandListAC setSelectionIndex:999];
7683         }else if(CMDrow == -1){
7684             
7685             [self willChangeValueForKey:@"commandListMA"];
7686             [commandListMA insertObject:dict atIndex:[commandListMA count]];
7687             [self didChangeValueForKey:@"commandListMA"];
7688             [commandListAC setSelectionIndex:999];
7689             
7690         }else if(CMDrow > 0){
7691
7692             [self willChangeValueForKey:@"commandListMA"];
7693             [commandListMA insertObject:dict atIndex:CMDrow];
7694             [self didChangeValueForKey:@"commandListMA"];
7695             [commandListAC setSelectionIndex:999];
7696             
7697         }else{
7698
7699             [self willChangeValueForKey:@"commandListMA"];
7700             [commandListMA insertObject:dict atIndex:commandListMA];
7701             [self didChangeValueForKey:@"commandListMA"];
7702             [commandListAC setSelectionIndex:999];
7703         }
7704         
7705
7706     }
7707
7708
7709
7710
7711
7712
7713
7714     
7715     
7716     
7717     
7718     
7719 }
7720 -(IBAction)commandListRemove:(id)sender{
7721
7722     if(1){
7723         if([commandListMA count] == 0){
7724             return;
7725         }else if(CMDrow == -1){
7726             
7727             [self willChangeValueForKey:@"commandListMA"];
7728             [commandListMA removeObjectAtIndex:[commandListMA count]-1];
7729             [self didChangeValueForKey:@"commandListMA"];
7730             [commandListAC setSelectionIndex:999];
7731             
7732         }else if(CMDrow > 0){
7733             
7734             [self willChangeValueForKey:@"commandListMA"];
7735             [commandListMA removeObjectAtIndex:CMDrow];
7736             [self didChangeValueForKey:@"commandListMA"];
7737             [commandListAC setSelectionIndex:999];
7738             
7739             
7740         }else{
7741
7742             [self willChangeValueForKey:@"commandListMA"];
7743             [commandListMA removeObjectAtIndex:CMDrow];
7744             [self didChangeValueForKey:@"commandListMA"];
7745             [commandListAC setSelectionIndex:999];
7746             
7747
7748         }
7749
7750     }
7751
7752     CMDrow = -1;
7753     
7754     
7755
7756
7757
7758
7759 }
7760 -(IBAction)comboListAdd:(id)sender{
7761     if(1){
7762         NSMutableDictionary *dict = [NSMutableDictionary new];
7763         
7764         if([comboListMA count] == 0){
7765             
7766             [self willChangeValueForKey:@"comboListMA"];
7767             [comboListMA insertObject:dict atIndex:[comboListMA count]];
7768             [self didChangeValueForKey:@"comboListMA"];
7769             [comboListAC setSelectionIndex:999];
7770         }else if(CMBrow == -1){
7771             
7772             [self willChangeValueForKey:@"comboListMA"];
7773             [comboListMA insertObject:dict atIndex:[comboListMA count]];
7774             [self didChangeValueForKey:@"comboListMA"];
7775             [comboListAC setSelectionIndex:999];
7776             
7777         }else if(CMBrow > 0){
7778             
7779             [self willChangeValueForKey:@"comboListMA"];
7780             [comboListMA insertObject:dict atIndex:CMDrow];
7781             [self didChangeValueForKey:@"comboListMA"];
7782             [comboListAC setSelectionIndex:999];
7783             
7784         }else{
7785             
7786             [self willChangeValueForKey:@"comboListMA"];
7787             [comboListMA insertObject:dict atIndex:comboListMA];
7788             [self didChangeValueForKey:@"comboListMA"];
7789             [comboListAC setSelectionIndex:999];
7790         }
7791         
7792         
7793     }
7794
7795
7796
7797
7798
7799 }
7800 -(IBAction)comboListRemove:(id)sender{
7801
7802     if(1){
7803         if([comboListMA count] == 0){
7804             return;
7805         }else if(CMBrow == -1){
7806             
7807             [self willChangeValueForKey:@"comboListMA"];
7808             [comboListMA removeObjectAtIndex:[comboListMA count]-1];
7809             [self didChangeValueForKey:@"comboListMA"];
7810             [comboListAC setSelectionIndex:999];
7811             
7812         }else if(CMBrow > 0){
7813             
7814             [self willChangeValueForKey:@"comboListMA"];
7815             [comboListMA removeObjectAtIndex:CMBrow];
7816             [self didChangeValueForKey:@"comboListMA"];
7817             [comboListAC setSelectionIndex:999];
7818             
7819             
7820         }else{
7821             
7822             [self willChangeValueForKey:@"comboListMA"];
7823             [comboListMA removeObjectAtIndex:CMBrow];
7824             [self didChangeValueForKey:@"comboListMA"];
7825             [comboListAC setSelectionIndex:999];
7826             
7827             
7828         }
7829         
7830     }
7831     
7832     CMBrow = -1;
7833
7834
7835 }
7836
7837
7838 -(IBAction)addSubjMark:(id)sender{
7839     NSString* str = [[ALTFmsg stringValue] retain];
7840     str = [[str stringByAppendingFormat:@"$subj"] retain];
7841     [ALTFmsg setStringValue:str];
7842 }
7843 -(IBAction)addObjeMark:(id)sender{
7844     NSString* str = [[ALTFmsg stringValue] retain];
7845     str = [[str stringByAppendingFormat:@"$obje"] retain];
7846     [ALTFmsg setStringValue:str];
7847 }
7848
7849
7850 -(IBAction)ILregi:(id)sender{
7851
7852     [ILregiTF setIntValue:(int)eItemNum];
7853     [ILregiWIndow makeKeyAndOrderFront:nil];
7854 }
7855
7856 -(IBAction)saveILregi:(id)sender{
7857
7858     eItemNum = [ILregiTF intValue];
7859     [self initItemList];
7860     [self savePresetItemNumber];
7861     
7862     [ILregiWIndow close];
7863 }
7864
7865
7866 -(IBAction)cancelILregi:(id)sender{
7867     
7868     [ILregiWIndow close];
7869 }
7870
7871 -(IBAction)attackIL:(id)sender{
7872
7873     EQmodeFlag = true;
7874     [self initAttackListEQ];
7875     [UCLPanelAttack makeKeyAndOrderFront:nil];
7876 }
7877
7878
7879
7880 -(IBAction)attackPreferenceBtn:(id)sender{
7881
7882     [ATPreferenceWindow makeKeyAndOrderFront:nil];
7883     
7884     
7885     
7886     
7887     
7888     
7889     
7890     
7891     
7892     
7893     
7894 }
7895
7896 -(IBAction)attackEffectBtn:(id)sender{
7897     
7898     ATTACK *A;
7899     
7900     if(EQmodeFlag){
7901         A = EQ[clickIndexEQ].A;
7902     }else{
7903         if(!loadChipSideFlag){
7904             A = UC[clickIndex].A;
7905         }else{
7906             A = LC[cil].A;
7907         }
7908     }
7909     atkTop = A;
7910     
7911     if(1){
7912         
7913         if(clickIndexAL <= -1) return;
7914         
7915         for(int i = 0;i < clickIndexAL;i++){
7916             A = A->next;
7917         }
7918     
7919         if(![A->AN.movName isEqualToString:@""] && ![A->AN.movName isEqualToString:@"(null)"] && A->AN.movName != NULL){
7920         
7921             
7922             [ATmovFileNameTF setStringValue:A->AN.movName];
7923         
7924         
7925         
7926         }else{
7927             [ATmovFileNameTF setStringValue:@""];
7928         }
7929         
7930         A = atkTop;
7931     }
7932     
7933     if(1){
7934         
7935         [self willChangeValueForKey:@"animationListMA"];
7936         [animationListMA removeAllObjects];
7937         [self didChangeValueForKey:@"animationListMA"];
7938     
7939         
7940         atkTop = A;
7941         
7942         if(clickIndexAL <= -1) return;
7943         
7944         for(int i = 0;i < clickIndexAL;i++){
7945             A = A->next;
7946         }
7947         
7948         ani = A->AN.ANI;
7949         ANI *aniTop = ani;
7950         
7951         while(ani){
7952            
7953             NSMutableDictionary *dict = [NSMutableDictionary new];
7954                 
7955             [dict setValue:[NSString stringWithFormat:@"%@", ani->name] forKey:@"name"];
7956             [dict setValue:[NSString stringWithFormat:@"%@", ani->names] forKey:@"snd"];
7957             [dict setValue:ani->img forKey:@"img"];
7958             
7959             [self willChangeValueForKey:@"animationListMA"];
7960             [animationListMA addObject:dict];
7961             [self didChangeValueForKey:@"animationListMA"];
7962             
7963             ani = ani->next;
7964         }
7965     
7966     
7967     
7968         ani = aniTop;
7969         
7970         A->AN.ANI = ani;
7971     
7972         A = atkTop;
7973     }
7974     
7975     
7976     if(EQmodeFlag){
7977         EQ[clickIndexEQ].A = atkTop;
7978     }else{
7979         if(!loadChipSideFlag){
7980             UC[clickIndex].A = atkTop;
7981         }else{
7982             LC[cil].A = atkTop;
7983         }
7984     }
7985     
7986     [ATEffectWindow makeKeyAndOrderFront:nil];
7987     
7988 }
7989
7990 -(IBAction)attackEffectPreviewBtn:(id)sender{
7991     
7992     
7993     
7994     
7995     
7996     
7997     ATTACK *A;
7998     
7999     if(EQmodeFlag){
8000         A = EQ[clickIndexEQ].A;
8001     }else{
8002         if(!loadChipSideFlag){
8003             A = UC[clickIndex].A;
8004         }else{
8005             A = LC[cil].A;
8006         }
8007     }
8008     atkTop = A;
8009     
8010     if(ATmovBC.state == YES){
8011         
8012     
8013         
8014         if(clickIndexAL <= -1) return;
8015         
8016         for(int i = 0;i < clickIndexAL;i++){
8017            A = A->next;
8018         }
8019             
8020             A->AN.movName = [[ATmovFileNameTF stringValue] retain];
8021         
8022         if([A->AN.movName isEqualToString:@""]) return;
8023     
8024     
8025     [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
8026     
8027         if(EQmodeFlag){
8028             NSString *path = @"data/AttackList3/IALdata";
8029             
8030             path = [path stringByAppendingFormat:@"%ldE", clickIndexEQ+1];
8031             
8032             path = [path stringByAppendingFormat:@"/"];
8033             
8034             path = [path stringByAppendingString:A->AN.movName];
8035             
8036             AVpreview2 = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
8037         
8038         
8039         }else if(!loadChipSideFlag){
8040             NSString *path = @"data/AttackList/ALdata";
8041     
8042             path = [path stringByAppendingFormat:@"%ldE", clickIndex+1];
8043     
8044             path = [path stringByAppendingFormat:@"/"];
8045     
8046             path = [path stringByAppendingString:A->AN.movName];
8047         
8048             AVpreview2 = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
8049         }else{
8050             NSString *path = @"data/AttackList/ALdata2";
8051             
8052             path = [path stringByAppendingFormat:@"%ldE", clickIndex+1];
8053             
8054             path = [path stringByAppendingFormat:@"/"];
8055             
8056             path = [path stringByAppendingString:A->AN.movName];
8057             
8058             AVpreview2 = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
8059         }
8060     if(AVpreview2){
8061         AVPV2.player = [AVpreview2 retain];
8062     }else{
8063         A = atkTop;
8064         return;
8065     }
8066     [AVpreview2 play];
8067     
8068     A = atkTop;
8069
8070         ATaniFlag = false;
8071         [ATEffectMovWindow makeKeyAndOrderFront:nil];
8072     }else if(ATaniBC.state == YES){
8073         
8074         frameNum = 1;
8075         
8076         [ATframeCntTF setStringValue:[NSString stringWithFormat:@"%d/%d", frameNum, frameMax]];
8077         ATaniFlag = true;
8078        
8079         [ATframeTF setStringValue:[NSString stringWithFormat:@"%d", A->AN.frame]];
8080          if(A->AN.frame <= 0)
8081              [ATframeTF setStringValue:[NSString stringWithFormat:@"1"]];
8082              
8083         ani = A->AN.ANI;
8084         ANI *aniTop = ani;
8085         
8086         for (int i = 0; i < frameMax;i++) {
8087             ani->snd = NULL;
8088             if(![ani->names isEqualToString:@""] && ![ani->names isEqualToString:@"(null)"] && ani->names != NULL){
8089                 
8090                 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
8091                 
8092                 
8093                 if(EQmodeFlag){
8094                     NSString *path = @"data/AttackList3/IALdata";
8095                     
8096                     path = [path stringByAppendingFormat:@"%ldE", clickIndexEQ+1];
8097                     
8098                     path = [path stringByAppendingFormat:@"/"];
8099                     
8100                     path = [path stringByAppendingString:ani->names];
8101                     
8102                     ani->snd = [[[NSSound alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] byReference:NO] retain];
8103                     
8104                     
8105                 }else if(!loadChipSideFlag){
8106                 NSString *path = @"data/AttackList/ALdata";
8107                 
8108                 path = [path stringByAppendingFormat:@"%ldE", clickIndex+1];
8109                 
8110                 path = [path stringByAppendingFormat:@"/"];
8111                 
8112                 path = [path stringByAppendingString:ani->names];
8113                 
8114                 ani->snd = [[[NSSound alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] byReference:NO] retain];
8115                 }else{
8116                     NSString *path = @"data/AttackList/ALdata2";
8117                     
8118                     path = [path stringByAppendingFormat:@"%ldE", clickIndex+1];
8119                     
8120                     path = [path stringByAppendingFormat:@"/"];
8121                     
8122                     path = [path stringByAppendingString:ani->names];
8123                     
8124                     ani->snd = [[[NSSound alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] byReference:NO] retain];
8125                 }
8126             }
8127             
8128             ani = ani->next;
8129         }
8130         
8131         ani = aniTop;
8132         
8133         A->AN.ANI = ani;
8134         
8135         
8136         if(EQmodeFlag){
8137             EQ[clickIndexEQ].A = atkTop;
8138         }else{
8139             if(!loadChipSideFlag){
8140                 UC[clickIndex].A = atkTop;
8141             }else{
8142                 LC[cil].A = atkTop;
8143             }
8144         }
8145         [ATEffectAniWindow makeKeyAndOrderFront:nil];
8146         attackEffectPreviewBtnFlag = true;
8147         [UCLtime invalidate];
8148     }
8149 }
8150
8151 -(IBAction)attackPreferenceCloseBtn:(id)sender{
8152
8153     [ATPreferenceWindow close];
8154     
8155 }
8156
8157
8158
8159 -(IBAction)attackEffectCloseBtn:(id)sender{
8160     
8161     
8162     
8163         ATTACK *A;
8164         
8165         if(EQmodeFlag){
8166         A = EQ[clickIndexEQ].A;
8167         }
8168         if(!loadChipSideFlag){
8169         A = UC[clickIndex].A;
8170         }else{
8171         A = LC[clickIndex].A;
8172         }
8173     
8174         atkTop = A;
8175         
8176         if(clickIndexAL <= -1) return;
8177         
8178         for(int i = 0;i < clickIndexAL;i++){
8179             A = A->next;
8180         }
8181         
8182         A->AN.movName = [[ATmovFileNameTF stringValue] retain];
8183         
8184         A = atkTop;
8185     
8186     
8187     
8188     
8189     if(1){
8190     ani = A->AN.ANI;
8191     ANI *aniTop = ani;
8192     
8193     for (int i = 0; i < frameMax;i++) {
8194         ani->snd = NULL;
8195         if(![ani->names isEqualToString:@""] && ![ani->names isEqualToString:@"(null)"] && ani->names != NULL){
8196             
8197             [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
8198             if(EQmodeFlag){
8199                 NSString *path = @"data/AttackList3/IALdata";
8200                 
8201                 path = [path stringByAppendingFormat:@"%ldE", clickIndexEQ+1];
8202                 
8203                 path = [path stringByAppendingFormat:@"/"];
8204                 
8205                 path = [path stringByAppendingString:ani->names];
8206                 
8207                 ani->snd = [[[NSSound alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] byReference:NO] retain];
8208                 
8209             }else if(!loadChipSideFlag){
8210             NSString *path = @"data/AttackList/ALdata";
8211             
8212             path = [path stringByAppendingFormat:@"%ldE", clickIndex+1];
8213             
8214             path = [path stringByAppendingFormat:@"/"];
8215             
8216             path = [path stringByAppendingString:ani->names];
8217             
8218             ani->snd = [[[NSSound alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] byReference:NO] retain];
8219             }else{
8220                 NSString *path = @"data/AttackList/ALdata2";
8221                 
8222                 path = [path stringByAppendingFormat:@"%ldE", clickIndex+1];
8223                 
8224                 path = [path stringByAppendingFormat:@"/"];
8225                 
8226                 path = [path stringByAppendingString:ani->names];
8227                 
8228                 ani->snd = [[[NSSound alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] byReference:NO] retain];
8229
8230             }
8231         }
8232         
8233         ani = ani->next;
8234     }
8235     
8236     ani = aniTop;
8237     
8238     A->AN.ANI = ani;
8239     }
8240     
8241     
8242     if(EQmodeFlag){
8243         EQ[clickIndexEQ].A = atkTop;
8244     }else{
8245         if(!loadChipSideFlag){
8246             UC[clickIndex].A = atkTop;
8247         }else{
8248             LC[clickIndex].A = atkTop;
8249         }
8250     }
8251    [ATEffectWindow close];
8252     
8253 }
8254
8255
8256 -(IBAction)attackEffectMovCloseBtn:(id)sender{
8257     
8258     ATTACK *A;
8259     
8260     if(EQmodeFlag){
8261         A = EQ[clickIndexEQ].A;
8262     }else{
8263         if(!loadChipSideFlag){
8264             A = UC[clickIndex].A;
8265         }else{
8266             A = LC[cil].A;
8267         }
8268     }
8269     atkTop = A;
8270
8271     for(int i = 0;i < clickIndexAL;i++){
8272         A = A->next;
8273     }
8274     ani = A->AN.ANI;
8275     ANI *aniTop = ani;
8276     
8277     for (int i = 0; i < frameMax;i++) {
8278         if(ani->snd){
8279             [ani->snd stop];
8280             ani->snd.loops = NO;
8281         }
8282         ani = ani->next;
8283     }
8284     ani = aniTop;
8285     
8286     A->AN.ANI = ani;
8287     
8288     A = atkTop;
8289     
8290     if(EQmodeFlag){
8291         EQ[clickIndexEQ].A = atkTop;
8292     }else{
8293         if(!loadChipSideFlag){
8294             UC[clickIndex].A = atkTop;
8295         }else{
8296             LC[cil].A = atkTop;
8297
8298         }
8299     }
8300     
8301     [AVpreview2 pause];
8302     [ATEffectMovWindow close];
8303     
8304 }
8305
8306 -(IBAction)attackEffectAniCloseBtn:(id)sender{
8307     
8308     frameRunFlag = false;
8309     UCLtime  = [NSTimer
8310                 scheduledTimerWithTimeInterval:1.0/30
8311                 target:self
8312                 selector:@selector(EventLoopUCL:)
8313                 userInfo:nil
8314                 repeats:YES
8315                 ];
8316     [ATEffectAniWindow close];
8317     
8318 }
8319
8320 -(IBAction)attackEffectInsert:(id)sender{
8321
8322     ATTACK *A;
8323     
8324     if(EQmodeFlag){
8325         A = EQ[clickIndexEQ].A;
8326     }else{
8327         if(!loadChipSideFlag){
8328             A = UC[clickIndex].A;
8329         }else{
8330         A = LC[cil].A;
8331         }
8332         
8333     }
8334     atkTop = A;
8335     
8336     if(clickIndexAL <= -1) return;
8337     
8338     for(int i = 0;i < clickIndexAL;i++){
8339         A = A->next;
8340     }
8341     
8342     ani = A->AN.ANI;
8343     
8344     ANI *aniTop = ani;
8345     
8346     if(1){
8347         NSMutableDictionary *dict = [NSMutableDictionary new];
8348         if([animationListMA count] == 0){
8349             
8350             aniTop = calloc(1, sizeof(ANI));
8351             ani = aniTop;
8352             
8353             ani->name = [@"新規ファイル名" retain];
8354             
8355             [dict setValue:[NSString stringWithFormat:@"%@", ani->name] forKey:@"name"];
8356             
8357             [self willChangeValueForKey:@"animationListMA"];
8358             [animationListMA insertObject:dict atIndex:[animationListMA count]];
8359             [self didChangeValueForKey:@"animationListMA"];
8360             [animationListAC setSelectionIndex:999];
8361         }else if(ANLrow == -1){
8362             while (ani->next) {
8363                 ani = ani->next;
8364             }
8365             ani->next = calloc(1, sizeof(ANI));
8366             ani = ani->next;
8367             
8368             ani->name = [@"新規ファイル名" retain];
8369             
8370             [dict setValue:[NSString stringWithFormat:@"%@", ani->name] forKey:@"name"];
8371
8372             
8373             [self willChangeValueForKey:@"animationListMA"];
8374             [animationListMA insertObject:dict atIndex:[animationListMA count]];
8375             [self didChangeValueForKey:@"animationListMA"];
8376             [animationListAC setSelectionIndex:999];
8377             
8378         }else if(ANLrow > 0){
8379             for (int i = 0; i < ANLrow-1; i++) {
8380                 
8381                 ani = ani->next;
8382             }
8383             ANI *tmp = (ANI*)malloc(sizeof(ANI));
8384             tmp = ani->next;
8385             ani->next = (ANI*)malloc(sizeof(ANI));
8386             ani->next->next = tmp;
8387             ani = ani->next;
8388             
8389             ani->name = [@"新規ファイル名" retain];
8390             
8391             [dict setValue:[NSString stringWithFormat:@"%@", ani->name] forKey:@"name"];
8392
8393             
8394             [self willChangeValueForKey:@"animationListMA"];
8395             [animationListMA insertObject:dict atIndex:ANLrow];
8396             [self didChangeValueForKey:@"animationListMA"];
8397             [animationListAC setSelectionIndex:999];
8398             
8399         }else{
8400             aniTop = ani;
8401             ANI tmp;
8402             tmp = *ani;
8403
8404             ani->next = calloc(1, sizeof(ANI));
8405             ani->name = [@"新規ファイル名" retain];
8406
8407             ani = ani->next;
8408             *ani = tmp;
8409
8410             ani = aniTop;
8411             
8412             [dict setValue:[NSString stringWithFormat:@"%@", ani->name] forKey:@"name"];
8413             [self willChangeValueForKey:@"animationListMA"];
8414             [animationListMA insertObject:dict atIndex:ANLrow];
8415             [self didChangeValueForKey:@"animationListMA"];
8416             [animationListAC setSelectionIndex:999];
8417         }
8418         
8419         
8420         ani = aniTop;
8421     }
8422     
8423     A->AN.ANI = aniTop;
8424     
8425     A = atkTop;
8426     
8427     if(EQmodeFlag){
8428         EQ[clickIndexEQ].A = atkTop;
8429     }else{
8430         if(!loadChipSideFlag){
8431             UC[clickIndex].A = atkTop;
8432         }else{
8433             LC[cil].A = atkTop;
8434         }
8435     }
8436     
8437 }
8438 -(IBAction)attackEffectDelete:(id)sender{
8439
8440     ATTACK *A;
8441     
8442     if(EQmodeFlag){
8443         A = EQ[clickIndexEQ].A;
8444     }else{
8445         if(!loadChipSideFlag){
8446             A = UC[clickIndex].A;
8447         }else{
8448             A = LC[cil].A;
8449         }
8450         
8451     }
8452     atkTop = A;
8453     
8454     if(clickIndexAL <= -1) return;
8455     
8456     for(int i = 0;i < clickIndexAL;i++){
8457         A = A->next;
8458     }
8459     
8460     ani = A->AN.ANI;
8461     
8462     ANI *aniTop = ani;
8463     
8464     if(1){
8465         if([animationListMA count] == 0){
8466             return;
8467         }else if(ANLrow == -1){
8468             for(int i = 0;i < [animationListMA count]-1;i++){
8469                 ani = ani->next;
8470             }
8471             if([animationListMA count] > 1) ani->next = NULL;
8472             else ani = NULL;
8473             [self willChangeValueForKey:@"animationListMA"];
8474             [animationListMA removeObjectAtIndex:[animationListMA count]-1];
8475             [self didChangeValueForKey:@"animationListMA"];
8476             [animationListAC setSelectionIndex:999];
8477             
8478         }else if(ANLrow > 0){
8479             for (int i = 0; i < ANLrow-1; i++) {
8480                 
8481                 ani = ani->next;
8482             }
8483             ani->next = ani->next->next;
8484             
8485             [self willChangeValueForKey:@"animationListMA"];
8486             [animationListMA removeObjectAtIndex:ANLrow];
8487             [self didChangeValueForKey:@"animationListMA"];
8488             [animationListAC setSelectionIndex:999];
8489             
8490         }else{
8491             aniTop = ani->next;
8492             ani = aniTop;
8493             [self willChangeValueForKey:@"animationListMA"];
8494             [animationListMA removeObjectAtIndex:ANLrow];
8495             [self didChangeValueForKey:@"animationListMA"];
8496             [animationListAC setSelectionIndex:999];
8497             
8498         }
8499         
8500         
8501         ani = aniTop;
8502     }
8503     
8504     A->AN.ANI = ani;
8505     
8506     A = atkTop;
8507     
8508     if(EQmodeFlag){
8509         EQ[clickIndexEQ].A = atkTop;
8510     }else{
8511         if(!loadChipSideFlag){
8512             UC[clickIndex].A = atkTop;
8513         }else{
8514             LC[cil].A = atkTop;
8515         }
8516     }
8517 }
8518
8519 -(IBAction)attackEffectIV:(id)sender{
8520     
8521     if(clickIndexAL <= -1) return;
8522     if(ANLrow <= -1) return;
8523     
8524     [self willChangeValueForKey:@"animationListMA"];
8525     [animationListAC setValue:[ATIV image] forKeyPath:@"selection.img"];
8526     [self didChangeValueForKey:@"animationListMA"];
8527     
8528     
8529     ATTACK *A;
8530     
8531     if(EQmodeFlag){
8532         A = EQ[clickIndexEQ].A;
8533     }else{
8534         if(!loadChipSideFlag){
8535         A = UC[clickIndex].A;
8536         }else{
8537         A = LC[cil].A;
8538         }
8539     }
8540     atkTop = A;
8541     
8542     for(int i = 0;i < clickIndexAL;i++){
8543         A = A->next;
8544     }
8545     
8546     ani = A->AN.ANI;
8547     ANI *aniTop = ani;
8548     
8549     for (int i = 0; i < ANLrow;i++) {
8550         ani = ani->next;
8551     }
8552     
8553     
8554     ani->img = [[ATIV image] retain];
8555     ani->x = 0;
8556     ani->y = 0;
8557     ani->ax = 0;
8558     ani->ay = 0;
8559     
8560     
8561     ani = aniTop;
8562     
8563     A->AN.ANI = ani;
8564     
8565     A = atkTop;
8566     
8567     if(EQmodeFlag){
8568         EQ[clickIndexEQ].A = atkTop;
8569     }else{
8570         if(!loadChipSideFlag){
8571             UC[clickIndex].A = atkTop;
8572         }else{
8573         LC[cil].A = atkTop;
8574         }
8575     
8576     }
8577 }
8578
8579 -(IBAction)attackEffectRadioBtn:(id)sender{
8580
8581     ATTACK *A;
8582     
8583     if(EQmodeFlag){
8584         A = EQ[clickIndexEQ].A;
8585     }else{
8586         if(!loadChipSideFlag){
8587         A = UC[clickIndex].A;
8588         }else{
8589         A = LC[cil].A;
8590         }
8591
8592     }
8593     atkTop = A;
8594     
8595
8596     for(int i = 0;i < clickIndexAL;i++){
8597         A = A->next;
8598     }
8599     
8600     int fixTypeCnt = 0;
8601     
8602     if([ALBCnormal state] == YES){
8603         fixTypeCnt = 0;
8604     }else if([ALBCarchery state] == YES){
8605         fixTypeCnt = 1;
8606     }else if([ALBCgun state] == YES){
8607         fixTypeCnt = 2;
8608     }
8609     
8610     
8611     A->fixType = fixTypeCnt;
8612     
8613     
8614     A = atkTop;
8615     
8616     if(EQmodeFlag){
8617         EQ[clickIndexEQ].A = atkTop;
8618     }else{
8619         if(!loadChipSideFlag){
8620         UC[clickIndex].A = atkTop;
8621         }else{
8622         LC[cil].A = atkTop;
8623         }
8624         
8625     }
8626 }
8627
8628
8629 -(IBAction)attackEffectNext:(id)sender{
8630
8631     if(frameNum < frameMax){
8632         frameNum++;
8633         }else{
8634             frameNum = 1;
8635         }
8636     [ATframeCntTF setStringValue:[NSString stringWithFormat:@"%d/%d", frameNum, frameMax]];
8637 }
8638 -(IBAction)attackEffectPrev:(id)sender{
8639
8640     if(frameNum > 1){
8641         frameNum--;
8642     }else{
8643         frameNum = frameMax;
8644     }
8645     [ATframeCntTF setStringValue:[NSString stringWithFormat:@"%d/%d", frameNum, frameMax]];
8646 }
8647
8648
8649 -(void)EventLoopANI:(NSTimer*)time{
8650     
8651     
8652 }
8653
8654 -(IBAction)attackEffectRun:(id)sender{
8655
8656     ATTACK *A;
8657     
8658     if(EQmodeFlag){
8659         A = EQ[clickIndexEQ].A;
8660     }else{
8661         if(!loadChipSideFlag){
8662         A = UC[clickIndex].A;
8663         }else{
8664         A = LC[cil].A;
8665         }
8666     }
8667     atkTop = A;
8668     
8669     if([ATframeTF intValue] <= 0){
8670         [ATframeTF setStringValue:@"1"];
8671     }
8672
8673     for(int i = 0;i < clickIndexAL;i++){
8674         A = A->next;
8675     }
8676     
8677     A->AN.frame = [ATframeTF intValue];
8678     
8679     if(EQmodeFlag){
8680         EQ[clickIndexEQ].A = atkTop;
8681     }else{
8682         if(!loadChipSideFlag){
8683         UC[clickIndex].A = atkTop;
8684         }else{
8685         LC[cil].A = atkTop;
8686         }
8687     }
8688     
8689     frameRunFlag = true;
8690
8691 }
8692 -(IBAction)attackEffectStop:(id)sender{
8693
8694     frameRunFlag = false;
8695
8696 }
8697
8698
8699 -(IBAction)attackListButtonCell:(id)sender{
8700     
8701 }
8702
8703
8704 -(void)aniTFChanged{
8705     [ATframeCntTF setStringValue:[NSString stringWithFormat:@"%d/%d", frameNum, frameMax]];
8706 }
8707
8708
8709
8710 @end
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727 @implementation UnitChipListEV
8728
8729 -(BOOL)isFlipped{
8730     return YES;
8731 }
8732
8733
8734 -(id)initWithFrame:(NSRect)frame{
8735     self = [super initWithFrame:frame];
8736     
8737     if (self) {
8738         timer  = [NSTimer
8739                  scheduledTimerWithTimeInterval:1.0/30
8740                  target:self
8741                  selector:@selector(EventLoopAN:)
8742                  userInfo:nil
8743                  repeats:YES
8744                  ];
8745     }
8746     
8747     
8748     return self;
8749 }
8750
8751 -(void)EventLoopAN:(NSTimer*)timer{
8752     static int frameCnt = 0;
8753     
8754     if(!frameRunFlag){
8755         frameCnt = 0;
8756         return;
8757     }
8758     
8759     ATTACK *A;
8760     
8761     if(EQmodeFlag){
8762         A = EQ[clickIndexEQ].A;
8763     }else{
8764         if(!loadChipSideFlag){
8765             A = UC[clickIndex].A;
8766         }else{
8767             A = LC[cil].A;
8768         }
8769         
8770     }
8771     atkTop = A;
8772     
8773     for(int i = 0;i < clickIndexAL;i++){
8774         A = A->next;
8775     }
8776     
8777     if(frameCnt == 0){
8778         
8779         ani = A->AN.ANI;
8780         ANI *aniTop = ani;
8781         
8782         for (int i = 0; i < frameNum-1;i++) {
8783             ani = ani->next;
8784         }
8785         
8786         if(ani->snd){
8787             [ani->snd setCurrentTime:0];
8788             [ani->snd play];
8789             ani->snd.loops = NO;
8790         }
8791         ani = aniTop;
8792         
8793         A->AN.ANI = ani;
8794     }
8795     
8796     if(frameCnt < A->AN.frame){
8797         frameCnt++;
8798     }else{
8799         
8800         frameCnt = 0;
8801         
8802         if(frameNum < frameMax){
8803             frameNum++;
8804         }else{
8805             frameNum = 1;
8806             
8807             A->AN.ANI = ani;
8808         }
8809         [UnitChipListInst aniTFChanged];
8810         
8811     }
8812     
8813     A = atkTop;
8814     
8815     if(EQmodeFlag){
8816         EQ[clickIndexEQ].A = atkTop;
8817     }else{
8818         if(!loadChipSideFlag){
8819             UC[clickIndex].A = atkTop;
8820         }else{
8821             LC[cil].A = atkTop;
8822         }
8823         
8824     }
8825     
8826     [self setNeedsDisplay:YES];
8827 }
8828
8829 -(void)DrawImage:(NSImage*)image x:(float)x y:(float)y a:(float)a{
8830     NSRect frRect;
8831     frRect.size.height = image.size.height;
8832     frRect.size.width = image.size.width;
8833     
8834     frRect.origin.x = 0;
8835     frRect.origin.y = 0;
8836     
8837     NSRect drRect;
8838     drRect.origin.x = x;
8839     drRect.origin.y = y;
8840     drRect.size.height = image.size.height;
8841     drRect.size.width = image.size.width;
8842     
8843     [image drawInRect:drRect fromRect:frRect operation:NSCompositeSourceOver fraction:a respectFlipped:YES hints:nil];
8844     
8845 }
8846     
8847 - (void)drawRect:(NSRect)dirtyRect {
8848     [super drawRect:dirtyRect];
8849     ATTACK *A;
8850     
8851     if(EQmodeFlag){
8852         A = EQ[clickIndexEQ].A;
8853     }else{
8854         if(!loadChipSideFlag){
8855         A = UC[clickIndex].A;
8856         }else{
8857         A = LC[cil].A;
8858         }
8859     }
8860     
8861     atkTop = A;
8862     
8863     if(clickIndexAL <= -1) return;
8864     
8865     for(int i = 0;i < clickIndexAL;i++){
8866         A = A->next;
8867     }
8868     
8869     ani = A->AN.ANI;
8870     
8871     ANI *aniTop = ani;
8872     
8873     
8874     if(ATaniFlag){
8875     
8876         
8877         if(ATalphaFlag){
8878         if(!(frameNum-1 < 1)){
8879             for (int i = 1; i < frameNum-1;i++) {
8880                 ani = ani->next;
8881             }
8882             
8883         }else{
8884             for (int i = 1; i < frameMax;i++) {
8885                 ani = ani->next;
8886             }
8887         }
8888             [self DrawImage:ani->img x:ani->x + ani->ax y:ani->y + ani->ay a:0.5f];
8889             
8890             ani = aniTop;
8891         }
8892         
8893         for (int i = 1; i < frameNum;i++) {
8894             ani = ani->next;
8895         }
8896         [self DrawImage:ani->img x:ani->x + ani->ax y:ani->y + ani->ay a:1.0f];
8897         ani = aniTop;
8898         
8899     }
8900     
8901     A = atkTop;
8902     
8903     if(EQmodeFlag){
8904         EQ[clickIndexEQ].A = atkTop;
8905     }else{
8906         if(!loadChipSideFlag){
8907             UC[clickIndex].A = atkTop;
8908         }else{
8909             LC[cil].A = atkTop;
8910         }
8911     }
8912 }
8913     
8914 -(void)mouseDown:(NSEvent *)theEvent{
8915     
8916     ATTACK *A;
8917     
8918     if(EQmodeFlag){
8919         A = EQ[clickIndexEQ].A;
8920     }else{
8921         if(!loadChipSideFlag){
8922         A = UC[clickIndex].A;
8923         }else{
8924         A = LC[cil].A;
8925         }
8926     }
8927     atkTop = A;
8928     
8929     if(clickIndexAL <= -1) return;
8930     
8931     for(int i = 0;i < clickIndexAL;i++){
8932         A = A->next;
8933     }
8934     
8935     ani = A->AN.ANI;
8936     
8937     ANI *aniTop = ani;
8938     
8939     for (int i = 0; i < frameNum-1; i++) {
8940         ani = ani->next;
8941     }
8942     
8943     
8944     if(1){
8945         imgGx = ani->ax;
8946         imgGy = ani->ay;
8947     }
8948     
8949     
8950     ani = aniTop;
8951     A->AN.ANI = aniTop;
8952     A = atkTop;
8953     
8954     if(EQmodeFlag){
8955         EQ[clickIndexEQ].A = atkTop;
8956     }else{
8957         if(!loadChipSideFlag){
8958             UC[clickIndex].A = atkTop;
8959         }else{
8960         LC[cil].A = atkTop;
8961         }
8962         
8963     }
8964     
8965     startPoint = [self convertPoint:[theEvent locationInWindow] fromView:nil];
8966     
8967     startPoint.x = startPoint.x - imgGx;
8968     startPoint.y = startPoint.y - imgGy;
8969 }
8970
8971 -(void)mouseDragged:(NSEvent *)theEvent{
8972     endPoint = [self convertPoint:[theEvent locationInWindow] fromView:nil];
8973     
8974     imgGx = endPoint.x - startPoint.x;
8975     imgGy = endPoint.y - startPoint.y;
8976     
8977     ATTACK *A;
8978     
8979     if(EQmodeFlag){
8980         A = EQ[clickIndexEQ].A;
8981     }else{
8982         if(!loadChipSideFlag){
8983         A = UC[clickIndex].A;
8984         }else{
8985         A = LC[cil].A;
8986         }
8987     }
8988     atkTop = A;
8989     
8990     if(clickIndexAL <= -1) return;
8991     
8992     for(int i = 0;i < clickIndexAL;i++){
8993         A = A->next;
8994     }
8995     
8996     ani = A->AN.ANI;
8997     
8998     ANI *aniTop = ani;
8999     
9000     for (int i = 0; i < frameNum-1; i++) {
9001         ani = ani->next;
9002     }
9003     
9004     if(1){
9005         ani->ax = imgGx;
9006         ani->ay = imgGy;
9007     }
9008     
9009     //NSLog(@"%d,%d", b->L->x, b->L->y);
9010     
9011     ani = aniTop;
9012     
9013     A->AN.ANI = aniTop;
9014     A = atkTop;
9015     
9016     if(EQmodeFlag){
9017         EQ[clickIndexEQ].A = atkTop;
9018     }else{
9019         if(!loadChipSideFlag){
9020             UC[clickIndex].A = atkTop;
9021         }else{
9022             LC[cil].A = atkTop;
9023         }
9024     }
9025     [self setNeedsDisplay:YES];
9026 }
9027
9028     
9029 @end
9030
9031
9032
9033