OSDN Git Service

new
author桐谷 諭史 <Killery@kiritani-no-Mac-mini.local>
Fri, 1 May 2015 09:36:52 +0000 (18:36 +0900)
committer桐谷 諭史 <Killery@kiritani-no-Mac-mini.local>
Fri, 1 May 2015 09:36:52 +0000 (18:36 +0900)
20 files changed:
Awars III/BuildChipList.h [new file with mode: 0755]
Awars III/BuildChipList.m [new file with mode: 0755]
Awars III/ChipView.h [new file with mode: 0755]
Awars III/ChipView.m [new file with mode: 0755]
Awars III/CommandView.h [new file with mode: 0755]
Awars III/CommandView.m [new file with mode: 0755]
Awars III/LoadChipList.h [new file with mode: 0644]
Awars III/LoadChipList.m [new file with mode: 0644]
Awars III/MapChipList.h [new file with mode: 0755]
Awars III/MapChipList.m [new file with mode: 0755]
Awars III/MapEditor.h [new file with mode: 0755]
Awars III/MapEditor.m [new file with mode: 0755]
Awars III/MapView.h [new file with mode: 0755]
Awars III/MapView.m [new file with mode: 0755]
Awars III/SChipView.h [new file with mode: 0755]
Awars III/SChipView.m [new file with mode: 0755]
Awars III/SeedView.h [new file with mode: 0755]
Awars III/SeedView.m [new file with mode: 0755]
Awars III/UnitChipList.h [new file with mode: 0755]
Awars III/UnitChipList.m [new file with mode: 0755]

diff --git a/Awars III/BuildChipList.h b/Awars III/BuildChipList.h
new file mode 100755 (executable)
index 0000000..8c7cb41
--- /dev/null
@@ -0,0 +1,171 @@
+//
+//  BuildChipList.h
+//  Awars III
+//
+//  Created by Killery on 2012/12/16.
+//  Copyright (c) 2012年 Killery. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "MapEditor.h"
+
+typedef struct _RESEARCH{
+
+    struct _RESEARCH *next;
+    
+    int type;
+    int numb;
+    int Lv;
+    
+    void *U;
+    void *R;
+    void *O;
+
+}RESEARCH;
+
+typedef struct _BSTATUS{
+    int HP;
+    int WT;
+    int WTE;
+    int WTN;
+    NSString *name;
+    
+}BSTATUS;
+
+typedef struct _BUILDCHIP{
+    
+    NSString *name;
+    NSString *nameR;
+    NSString *nameID;
+    
+    struct _RESEARCH *R;
+    struct _BSTATUS S_C;
+    struct _BSTATUS S_M;
+    
+    
+    int dmgfix;
+    int type;
+    int defLv;
+    
+    int Csupply;
+    int Cfood;
+    int Cmoney;
+    
+    
+    int CsupplyNext;
+    int CfoodNext;
+    int CmoneyNext;
+    
+    int Esupply;
+    int Efood;
+    int Emoney;
+    
+    
+    int recHP;
+    int recMP;
+    int recEN;
+    bool inroadsFlag;
+    bool capture;
+    NSString *linkDest;
+    NSString *linkNext;
+    
+    
+    NSString *iName;
+    NSImage *img;
+    
+    NSString *iNameb;
+    NSImage *imgb;
+    
+    
+}BUILDCHIP;
+
+BUILDCHIP BC[128];
+RESEARCH *Rtop;
+
+int BuildChipNum;
+
+@interface BuildChipList : NSObject <NSTableViewDelegate>
+{
+    IBOutlet NSPanel* BCLPanel;
+    IBOutlet NSPanel* BCLDetailPanel;
+    IBOutlet NSPanel* BCLDetailOptionPanel;
+    IBOutlet NSPanel* BCLUnitResearchPanel;
+    IBOutlet NSPanel* BCLregisterPanel;
+    NSPoint BCLDpoint;
+    
+    
+    NSMutableArray *buildChipListMA;
+    IBOutlet NSArrayController *buildChipListAC;
+    IBOutlet NSTableView *buildChipListTV;
+    
+    NSArray *fileDataArray;
+    NSInteger chipNumb;
+    IBOutlet NSTextField* TFchipNumb;
+    
+    
+    IBOutlet NSTextField *TFname;
+    IBOutlet NSTextField *TFnameR;
+    IBOutlet NSTextField *TFnameID;
+    IBOutlet NSTextField *TFfix;
+    IBOutlet NSTextField *TFWT;
+    IBOutlet NSTextField *TFDLv;
+    IBOutlet NSTextField *TFHP;
+    IBOutlet NSTextField *TFRHP;
+    IBOutlet NSTextField *TFRMP;
+    IBOutlet NSTextField *TFREN;
+    IBOutlet NSTextField *TFcostS;
+    IBOutlet NSTextField *TFcostF;
+    IBOutlet NSTextField *TFcostM;
+    IBOutlet NSTextField *TFcostSn;
+    IBOutlet NSTextField *TFcostFn;
+    IBOutlet NSTextField *TFcostMn;
+    IBOutlet NSTextField *TFcostSe;
+    IBOutlet NSTextField *TFcostFe;
+    IBOutlet NSTextField *TFcostMe;
+    IBOutlet NSTextField *TFWTE;
+    IBOutlet NSTextField *TFWTN;
+    IBOutlet NSButton *BTNinroads;
+    IBOutlet NSButton *BTNcapture;
+    IBOutlet NSPopUpButton *PUPtype;
+    IBOutlet NSPopUpButton *PUPlinkD;
+    IBOutlet NSPopUpButton *PUPlinkN;
+    IBOutlet NSImageView *IVimg;
+    IBOutlet NSImageView *IVimgBig;
+    
+    IBOutlet NSPopUpButton *PUunit;
+    IBOutlet NSPopUpButton *PUresearch;
+    IBOutlet NSPopUpButton *PUunion;
+    
+    NSMutableArray *unitListPU;
+    
+    NSMutableArray *researchListMA;
+    IBOutlet NSArrayController *researchListAC;
+    IBOutlet NSTableView *researchListTV;
+    
+    int RLunitNumb;
+    int RLresearchNumb;
+    int RLunionNumb;
+    int RLrow;
+}
+-(IBAction)submit:(id)sender;
+- (NSMutableArray*)buildChipListMA;
+
+-(IBAction)saveBCL:(id)sender;
+-(IBAction)cancelBCL:(id)sender;
+-(IBAction)optionBCL:(id)sender;
+-(IBAction)optionCloseBCL:(id)sender;
+-(IBAction)unitResearchBCL:(id)sender;
+-(IBAction)unitResearchCloseBCL:(id)sender;
+
+-(IBAction)registBCL:(id)sender;
+-(IBAction)registSaveBCL:(id)sender;
+-(IBAction)registCancelBCL:(id)sender;
+
+-(IBAction)researchListUnitInsert:(id)sender;
+-(IBAction)researchListResearchInsert:(id)sender;
+-(IBAction)researchListUnionInsert:(id)sender;
+
+-(IBAction)researchListDelete:(id)sender;
+
+@end
diff --git a/Awars III/BuildChipList.m b/Awars III/BuildChipList.m
new file mode 100755 (executable)
index 0000000..92d03b8
--- /dev/null
@@ -0,0 +1,783 @@
+//
+//  BuildChipList.m
+//  Awars III
+//
+//  Created by Killery on 2012/12/16.
+//  Copyright (c) 2012年 Killery. All rights reserved.
+//
+
+#import "BuildChipList.h"
+
+@implementation BuildChipList
+- (void)dealloc
+{
+    [super dealloc];
+}
+
+- (NSMutableArray*)buildChipListMA{
+    return buildChipListMA;
+}
+-(IBAction)submit:(id)sender{
+    [BCLPanel close];
+}
+
+-(void)awakeFromNib{
+    [buildChipListTV setTarget:self];
+    [buildChipListTV setDoubleAction:@selector(doubleClickBCL:)];
+    
+    [researchListTV setTarget:self];
+    [researchListTV setAction:@selector(clickRL:)];
+    
+    researchListMA = [NSMutableArray new];
+    unitListPU = [NSMutableArray new];
+}
+-(id)init{
+    [super init];
+    
+    if (self) {
+        [self initFileDirectory];
+        [self initBuildChipList];
+        BuildChipMax = (int)chipNumb/25+1;
+        Rtop = NULL;
+    }   
+    
+    return self;
+}
+NSInteger clickIndex;
+-(void)doubleClickBCL:(id)sender{
+    clickIndex = [buildChipListTV clickedRow];
+    if( clickIndex>=0 ){
+        
+        [TFname setStringValue:BC[clickIndex].name];
+        [TFnameR setStringValue:BC[clickIndex].nameR];
+        [TFnameID setStringValue:BC[clickIndex].nameID];
+        [TFfix setIntValue:BC[clickIndex].dmgfix];
+        [TFWT setIntValue:BC[clickIndex].S_M.WT];
+        [TFDLv setIntValue:BC[clickIndex].defLv];
+        [TFHP setIntValue:BC[clickIndex].S_M.HP];
+        [TFRHP setIntValue:BC[clickIndex].recHP];
+        [TFRMP setIntValue:BC[clickIndex].recMP];
+        [TFREN setIntValue:BC[clickIndex].recEN];
+        [TFcostS setIntValue:BC[clickIndex].Csupply];
+        [TFcostF setIntValue:BC[clickIndex].Cfood];
+        [TFcostM setIntValue:BC[clickIndex].Cmoney];
+        [TFcostSn setIntValue:BC[clickIndex].CsupplyNext];
+        [TFcostFn setIntValue:BC[clickIndex].CfoodNext];
+        [TFcostMn setIntValue:BC[clickIndex].CmoneyNext];
+        [TFcostSe setIntValue:BC[clickIndex].Esupply];
+        [TFcostFe setIntValue:BC[clickIndex].Efood];
+        [TFcostMe setIntValue:BC[clickIndex].Emoney];
+        [TFWTE setIntValue:BC[clickIndex].S_M.WTE];
+        [TFWTN setIntValue:BC[clickIndex].S_M.WTN];
+        [BC[clickIndex].img setFlipped:NO];
+        [IVimg setImage:BC[clickIndex].img];
+        [IVimgBig setImage:BC[clickIndex].imgb];
+        [PUPtype selectItemAtIndex:BC[clickIndex].type];
+        
+        [BTNinroads setIntValue:BC[clickIndex].inroadsFlag];
+        [BTNcapture setIntValue:BC[clickIndex].capture];
+        
+        //[PUPlinkD selectItemAtIndex:BC[clickIndex].linkDest];
+        //[PUPlinkN selectItemAtIndex:BC[clickIndex].linkNext];
+    }
+    
+    
+    BCLDpoint.x = [BCLPanel frame].origin.x + 50;
+    BCLDpoint.y = [BCLPanel frame].origin.y + 100;
+    [BCLDetailPanel setFrameOrigin:BCLDpoint];
+     [BCLDetailPanel makeKeyAndOrderFront:nil];
+}
+
+-(void)clickRL:(id)sender{
+    
+    RLrow = (int)[researchListTV clickedRow];
+    
+}
+
+-(IBAction)unitResearchBCL:(id)sender{
+    
+    [unitListPU removeAllObjects];
+    
+    for(int i = 0;i < UCN;i++){
+        [unitListPU addObject:UC[i].nameRecognition];
+    }
+    [PUunit addItemsWithTitles:unitListPU];
+    
+    [self initResearchList];
+    
+    
+    BCLDpoint.x = [BCLDetailPanel frame].origin.x + 0;
+    BCLDpoint.y = [BCLDetailPanel frame].origin.y + 0;
+    [BCLUnitResearchPanel setFrameOrigin:BCLDpoint];
+    [BCLUnitResearchPanel makeKeyAndOrderFront:nil];
+}
+-(IBAction)unitResearchCloseBCL:(id)sender{
+    [BCLUnitResearchPanel close];
+}
+
+-(IBAction)saveBCL:(id)sender{
+    BC[clickIndex].name = [[TFname stringValue] retain];
+    BC[clickIndex].nameR = [[TFnameR stringValue] retain];
+    BC[clickIndex].nameID = [[TFnameID stringValue] retain];
+    BC[clickIndex].S_M.WT = [TFWT intValue];
+    BC[clickIndex].dmgfix = [TFfix intValue];
+    BC[clickIndex].defLv = [TFDLv intValue];
+    BC[clickIndex].S_M.HP = [TFHP intValue];
+    BC[clickIndex].recHP = [TFRHP intValue];
+    BC[clickIndex].recMP = [TFRMP intValue];
+    BC[clickIndex].recEN = [TFREN intValue];
+    BC[clickIndex].Csupply = [TFcostS intValue];
+    BC[clickIndex].Cfood = [TFcostF intValue];
+    BC[clickIndex].Cmoney = [TFcostM intValue];
+    BC[clickIndex].CsupplyNext = [TFcostSn intValue];
+    BC[clickIndex].CfoodNext = [TFcostFn intValue];
+    BC[clickIndex].CmoneyNext = [TFcostMn intValue];
+    BC[clickIndex].Esupply = [TFcostSe intValue];
+    BC[clickIndex].Efood = [TFcostFe intValue];
+    BC[clickIndex].Emoney = [TFcostMe intValue];
+    BC[clickIndex].S_M.WTE = [TFWTE intValue];
+    BC[clickIndex].S_M.WTN = [TFWTN intValue];
+    BC[clickIndex].type = (int)[PUPtype indexOfSelectedItem];
+    BC[clickIndex].img = [[IVimg image] retain];
+    BC[clickIndex].imgb = [[IVimgBig image] retain];
+    
+    BC[clickIndex].inroadsFlag = [BTNinroads intValue];
+    BC[clickIndex].capture = [BTNcapture intValue];
+    
+    [buildChipListAC setValue:[NSString stringWithFormat:@"%@", BC[clickIndex].name] forKeyPath:@"selection.name"];
+    [buildChipListAC setValue:[NSString stringWithFormat:@"%d", BC[clickIndex].dmgfix] forKeyPath:@"selection.dmgfix"];
+    [buildChipListAC setValue:[NSString stringWithFormat:@"%d", BC[clickIndex].S_M.HP] forKeyPath:@"selection.HP"];
+    [buildChipListAC setValue:[NSString stringWithFormat:@"%d", BC[clickIndex].defLv] forKeyPath:@"selection.defLv"];
+    [buildChipListAC setValue:[NSString stringWithFormat:@"%d", BC[clickIndex].S_M.WT] forKeyPath:@"selection.WT"];
+    [buildChipListAC setValue:BC[clickIndex].img forKeyPath:@"selection.img"];
+    [buildChipListAC setValue:BC[clickIndex].imgb forKeyPath:@"selection.imgBig"];
+    
+    [self saveData];
+    [BCLDetailPanel close];
+}
+-(IBAction)cancelBCL:(id)sender{
+    [BCLDetailPanel close];
+}
+
+-(IBAction)optionBCL:(id)sender{
+    
+    BCLDpoint.x = [BCLDetailPanel frame].origin.x + 100;
+    BCLDpoint.y = [BCLDetailPanel frame].origin.y + 0;
+    [BCLDetailOptionPanel setFrameOrigin:BCLDpoint];
+    [BCLDetailOptionPanel makeKeyAndOrderFront:nil];
+}
+
+-(IBAction)optionCloseBCL:(id)sender{
+    [BCLDetailOptionPanel close];
+}
+
+-(void)initFileDirectory{
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    char *cwd;
+    cwd = getcwd(NULL, 0);
+    
+    
+    NSData *InitialData = [NSData dataWithContentsOfFile:@"data/BuildChip/preset.txt"];
+    NSString *pathBC = @"data/BuildChip/img";
+    NSString *pathDATA2 = @"data/BuildChip/preset.txt";
+    NSString *pathBCP = @"data/BuildChip/preset.txt";
+    NSString *fileData = nil;
+    
+    if(!InitialData){
+        chipNumb = 23;
+        [[NSFileManager defaultManager] createDirectoryAtPath:pathBC withIntermediateDirectories:YES attributes:nil error:nil];
+        [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil];
+
+        [[NSFileManager defaultManager] createFileAtPath:pathBCP contents:nil attributes:nil];
+        
+        //NSString *data0 = @"名前\n名前R\nID\nHP,WT,dmgfix,defLv,rcHP,rcMP,rcEN\nS,F,M,Sn,Fn,Mn,Se,Fe,Me,WTe,WTn\ninRoads,capture,type,linkD,linkN\img,imgb\n----\n1,0\n1,2\n1,3\n----";
+        
+        NSString *data1 = @"集落\n集落(一般)\nb1\n2000,2000,20,2,30,30,0\n0,500,0,500,500,0,100,100,0,1000,1000\n0,1,0,id,id\nbc1.png,bcb1.png\n----\n1,0\n1,2\n1,3\n----";
+        NSString *data2 = @"村\n村(一般)\nb2\n3000,2000,30,2,30,30,0\n500,1000,0,500,500,500,100,100,100,1000,1000\n0,1,0,id,id\nbc2.png,bcb2.png\n----\n1,0\n1,1\n1,2\n1,3\n1,4\n1,5\n1,6\n----";
+        NSString *data3 = @"町\n町(一般)\nb3\n5000,2000,30,3,30,30,0\n2000,2000,1000,500,500,500,100,100,100,1000,1000\n0,1,0,id,id\nbc3.png,bcb3.png\n----\n1,0\n1,1\n1,2\n1,3\n1,4\n1,5\n1,6\n1,7\n1,8\n1,10\n1,11\n1,12\n1,13\n1,14\n1,15\n1,16\n1,17\n----";
+        NSString *data4 = @"街\n街(一般)\nb4\n8000,2000,30,3,30,30,0\n2500,2500,2500,500,500,500,100,100,100,1000,1000\n0,1,0,id,id\nbc4.png,bcb4.png\n----\n1,0\n1,1\n1,2\n1,3\n1,4\n1,5\n1,6\n1,7\n1,8\n1,9\n1,11\n1,12\n1,13\n1,16\n1,17\n1,18\n1,19\n1,22\n1,23\n1,24\n1,25\n1,26\n----";
+        NSString *data5 = @"城\n城(一般)\nb5\n9000,2000,30,4,30,30,0\n3000,3000,4000,500,500,500,100,100,100,1000,1000\n0,1,0,id,id\nbc5.png,bcb5.png\n----\n1,7\n1,18\n1,19\n1,20\n1,21\n1,28\n1,29\n1,34\n1,35\n1,36\n1,37\n----";
+        NSString *data6 = @"都市\n都市(一般)\nb6\n15000,2000,30,5,30,30,0\n5000,5000,5000,500,500,500,100,100,100,1000,1000\n0,1,0,id,id\nbc6.png,bcb6.png\n----\n1,0\n1,1\n1,2\n1,3\n1,4\n1,5\n1,6\n1,7\n1,8\n1,9\n1,10\n1,11\n1,12\n1,13\n1,14\n1,15\n1,16\n1,17\n1,18\n1,19\n1,20\n1,21\n1,22\n1,23\n1,24\n1,25\n1,26\n1,27\n1,28\n1,29\n1,30\n1,31\n1,32\n1,33\n1,38\n----";
+        NSString *data7 = @"首都\n首都(一般)\nb7\n20000,2000,30,5,30,30,0\n10000,10000,15000,500,500,500,100,100,100,1000,1000\n0,1,0,id,id\nbc7.png,bcb7.png\n----\n1,0\n1,16\n1,18\n1,19\n1,20\n1,21\n1,22\n1,23\n1,24\n1,25\n1,26\n1,27\n1,28\n1,29\n1,30\n1,31\n1,32\n1,33\n1,34\n1,35\n1,36\n1,37\n1,38\n1,39\n1,40\n1,41\n1,42\n----";
+        NSString *data8 = @"町の中心\n町の中心(一般)\nb8\n5000,2000,30,4,30,30,0\n2000,1000,500,500,500,500,100,100,100,1000,1000\n0,1,0,id,id\nbc8.png,bcb8.png\n----\n1,0\n1,43\n----";
+        NSString *data9 = @"城壁\n城壁(一般)\nb9\n2500,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,0,0,id,id\nbc9.png,bcb9.png\n----\n----";
+        NSString *data10 = @"瓦礫\n瓦礫(一般)\nb10\n1000,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,0,0,id,id\nbc10.png,bcb10.png\n----\n----";
+        NSString *data11 = @"工場\n工場(一般)\nb11\n1600,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,0,id,id\nbc11.png,bcb11.png\n----\n----";
+        NSString *data12 = @"港\n港(一般)\nb12\n1500,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,2,id,id\nbc12.png,bcb12.png\n----\n----";
+        NSString *data13 = @"空港\n空港(一般)\nb13\n1800,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,0,id,id\nbc13.png,bcb13.png\n----\n----";
+        NSString *data14 = @"学校\n学校(一般)\nb14\n1500,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,0,id,id\nbc14.png,bcb14.png\n----\n----";
+        NSString *data15 = @"病院\n病院(一般)\nb15\n2000,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,0,id,id\nbc15.png,bcb15.png\n----\n----";
+        NSString *data16 = @"保安所\n保安所(一般)\nb16\n2000,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,0,id,id\nbc16.png,bcb16.png\n----\n----";
+        NSString *data17 = @"研究所\n研究所(一般)\nb17\n2400,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,0,id,id\nbc17.png,bcb17.png\n----\n----";
+        NSString *data18 = @"統制機構\n統制機構(一般)\nb18\n5000,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,0,id,id\nbc18.png,bcb18.png\n----\n----";
+        NSString *data19 = @"魔物の巣\n魔物の巣(一般)\nb19\n3000,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,0,id,id\nbc19.png,bcb19.png\n----\n----";
+        NSString *data20 = @"魔法陣\n魔法陣(一般)\nb20\n1000,2000,30,5,30,30,0\n500,500,0,0,0,0,0,0,0,0,0\n0,1,0,id,id\nbc20.png,bcb20.png\n----\n----";
+        NSString *data21 = @"伐採所\n伐採所(一般)\nb21\n1000,1000,20,2,0,0,0\n200,0,0,0,0,0,50,0,0,0,0\n0,1,1,id,id\nbc21.png,bcb21.png\n----\n----";
+        NSString *data22 = @"農家\n農家(一般)\nb22\n1000,1000,20,2,0,0,0\n300,0,0,0,0,0,0,50,0,0,0\n0,1,0,id,id\nbc22.png,bcb22.png\n----\n----";
+        NSString *data23 = @"市場\n市場(一般)\nb23\n1000,1000,20,2,0,0,0\n400,0,0,0,0,0,0,0,50,0,0\n0,1,0,id,id\nbc23.png,bcb23.png\n----\n----";
+        
+        for (int i=0; i<chipNumb; i++) {
+        NSString *fdata = @"data/BuildChip/BCdata";
+        
+        fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
+            
+            switch (i) {
+                case 0:
+                    [data1 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 1:
+                    [data2 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 2:
+                    [data3 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 3:
+                    [data4 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 4:
+                    [data5 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 5:
+                    [data6 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 6:
+                    [data7 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 7:
+                    [data8 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 8:
+                    [data9 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 9:
+                    [data10 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 10:
+                    [data11 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 11:
+                    [data12 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 12:
+                    [data13 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 13:
+                    [data14 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 14:
+                    [data15 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 15:
+                    [data16 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 16:
+                    [data17 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 17:
+                    [data18 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 18:
+                    [data19 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 19:
+                    [data20 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 20:
+                    [data21 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 21:
+                    [data22 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 22:
+                    [data23 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+
+                default:
+                    break;
+            }
+        
+        }
+        
+        NSString *fileData = @"";
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", (int)chipNumb]] stringByAppendingString:@"\n"];
+        
+        NSString *path = @"data/BuildChip/preset.txt";
+        [fileData writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
+    }
+    
+    if(InitialData){
+        NSString *fileData = @"";
+        NSString *path = @"data/BuildChip/preset.txt";
+        fileData = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
+        fileDataArray = [fileData componentsSeparatedByString:@"\n"];
+        
+        chipNumb = [[fileDataArray objectAtIndex:0] intValue];
+    }
+    
+    for (int j=0; j<chipNumb; j++) {
+        NSString *fdata = @"data/BuildChip/BCdata";
+        
+        fdata = [fdata stringByAppendingFormat:@"%d.txt", j+1];
+        
+        fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil];
+        fileDataArray = [fileData componentsSeparatedByString:@"\n"];
+    
+            BC[j].name = [[fileDataArray objectAtIndex:0] retain];
+            BC[j].nameR = [[fileDataArray objectAtIndex:1] retain];
+            BC[j].nameID = [[fileDataArray objectAtIndex:2] retain];
+        
+            NSArray *items = [[fileDataArray objectAtIndex:3] componentsSeparatedByString:@","];
+        
+            BC[j].S_M.HP = [[items objectAtIndex:0] intValue];
+            BC[j].S_M.WT = [[items objectAtIndex:1] intValue];
+            BC[j].dmgfix = [[items objectAtIndex:2] intValue];
+            BC[j].defLv = [[items objectAtIndex:3] intValue];
+            BC[j].recHP = [[items objectAtIndex:4] intValue];
+            BC[j].recMP = [[items objectAtIndex:5] intValue];
+            BC[j].recEN = [[items objectAtIndex:6] intValue];
+            
+            items = [[fileDataArray objectAtIndex:4] componentsSeparatedByString:@","];
+            
+            BC[j].Csupply = [[items objectAtIndex:0] intValue];
+            BC[j].Cfood = [[items objectAtIndex:1] intValue];
+            BC[j].Cmoney = [[items objectAtIndex:2] intValue];
+            BC[j].CsupplyNext = [[items objectAtIndex:3] intValue];
+            BC[j].CfoodNext = [[items objectAtIndex:4] intValue];
+            BC[j].CmoneyNext = [[items objectAtIndex:5] intValue];
+            BC[j].Esupply = [[items objectAtIndex:6] intValue];
+            BC[j].Efood = [[items objectAtIndex:7] intValue];
+            BC[j].Emoney = [[items objectAtIndex:8] intValue];
+            BC[j].S_M.WTE = [[items objectAtIndex:9] intValue];
+            BC[j].S_M.WTN = [[items objectAtIndex:10] intValue];
+            
+            items = [[fileDataArray objectAtIndex:5] componentsSeparatedByString:@","];
+            
+            BC[j].inroadsFlag = [[items objectAtIndex:0] intValue];
+            BC[j].capture = [[items objectAtIndex:1] intValue];
+            BC[j].type = [[items objectAtIndex:2] intValue];
+            BC[j].linkDest = [[items objectAtIndex:3] retain];
+            BC[j].linkNext = [[items objectAtIndex:4] retain];
+            
+            items = [[fileDataArray objectAtIndex:6] componentsSeparatedByString:@","];
+            
+            BC[j].iName = [[items objectAtIndex:0] retain];
+            BC[j].iNameb = [[items objectAtIndex:1] retain];
+        
+            //NSLog(@"iName = %@\n", BC[j].iName);
+        
+            NSString *imgName = @"bc";
+            imgName = [imgName stringByAppendingFormat:@"%d", j+1];
+            BC[j].img = [[NSImage imageNamed:imgName] retain];
+            
+            imgName = [NSString stringWithFormat:@"bcb"];
+            imgName = [imgName stringByAppendingFormat:@"%d", j+1];
+            BC[j].imgb = [[NSImage imageNamed:imgName] retain];
+            
+            
+            NSString *imagePath = @"data/BuildChip/img/bc";
+            imagePath = [imagePath stringByAppendingFormat:@"%d", j+1];
+            NSData *imgData = [NSData dataWithContentsOfFile:imagePath];
+            
+            if(imgData)
+                BC[j].img = [[[NSImage alloc] initWithData:[[NSFileHandle fileHandleForReadingAtPath:imagePath] readDataToEndOfFile]] retain];
+            
+            imagePath = [NSString stringWithFormat:@"data/BuildChip/img/bcb"];
+            imagePath = [imagePath stringByAppendingFormat:@"%d", j+1];
+            imgData = [NSData dataWithContentsOfFile:imagePath];
+            
+            if(imgData)
+                BC[j].imgb = [[[NSImage alloc] initWithData:[[NSFileHandle fileHandleForReadingAtPath:imagePath] readDataToEndOfFile]] retain];
+            
+            //items = [[fileDataArray objectAtIndex:7] componentsSeparatedByString:@","];
+            int omanko = 0;
+            for(int k = 8;k < [fileDataArray count];k++){
+                NSString *str = [fileDataArray objectAtIndex:k];
+                NSRange rangeSearch;
+                NSArray *rangeArray;
+                static int cnt = 0;
+                rangeSearch = [str rangeOfString:@"----"];
+                rangeArray = [str componentsSeparatedByString:@","];
+                
+                if (rangeSearch.location != NSNotFound) {
+                    cnt = 0;
+                    //UNITCHIP *UCR = Rtop->U;
+                    if(omanko != 0) BC[j].R = Rtop;
+                    break;
+                
+                }else{
+                    if(cnt == 0) {
+                        BC[j].R = (RESEARCH*)malloc(sizeof(RESEARCH));
+                    }
+                    BC[j].R->type = [[rangeArray objectAtIndex:0] intValue];
+                    BC[j].R->numb = [[rangeArray objectAtIndex:1] intValue];
+                    BC[j].R->Lv = [[rangeArray objectAtIndex:2] intValue];
+                    
+                    if(BC[j].R->type == 1) {
+                        BC[j].R->U = &UC[BC[j].R->numb];
+                        BC[j].R->R = NULL;
+                        BC[j].R->O = NULL;
+                    }
+                    if(BC[j].R->type == 2){
+                        BC[j].R->U = NULL;
+                        BC[j].R->R = NULL;
+                        BC[j].R->O = NULL;
+                    }
+                    if(BC[j].R->type == 3){
+                        BC[j].R->U = NULL;
+                        BC[j].R->R = NULL;
+                        BC[j].R->O = NULL;
+                    }
+                    
+                    BC[j].R->next = (RESEARCH*)malloc(sizeof(RESEARCH));
+                    if(cnt == 0) Rtop = BC[j].R;
+                    cnt++;
+                    NSString *str2 = [fileDataArray objectAtIndex:k+1];
+                    NSRange rangeSearch2 = [str2 rangeOfString:@"----"];
+                    if(rangeSearch2.location != NSNotFound){
+                        BC[j].R->next = NULL;
+                    }else{
+                        BC[j].R = BC[j].R->next;
+                    }
+                }
+                omanko++;
+            }
+        BC[j].S_M.name = [BC[j].name retain];
+        BC[j].S_C = BC[j].S_M;
+    }
+    
+    
+    
+    BuildChipNum = (int)chipNumb;
+
+}
+
+-(void)initBuildChipList{
+
+    
+    buildChipListMA = [NSMutableArray new];
+    
+    
+    
+    
+    for(int i = 0;i < chipNumb;i++){
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+        
+        if(!BC[i].nameID){
+            BC[i].name = [NSString stringWithFormat:@"新規建物"];
+            BC[i].name = [BC[i].name stringByAppendingFormat:@"%d",i+1];
+            BC[i].nameID = @"bc";
+            BC[i].nameID = [BC[i].nameID stringByAppendingFormat:@"%d",i+1];
+            BC[i].nameR = @"新規建物";
+            BC[i].nameR = [BC[i].nameR stringByAppendingFormat:@"%d",i+1];
+            BC[i].iName = @"bc";
+            BC[i].iName = [BC[i].iName stringByAppendingFormat:@"%d",i+1];
+            BC[i].iNameb = @"bcb";
+            BC[i].iNameb = [BC[i].iNameb stringByAppendingFormat:@"%d",i+1];
+        }
+        
+        [dict setValue:BC[i].img forKey:@"img"];
+        [dict setValue:BC[i].imgb forKey:@"imgBig"];
+        [dict setValue:[NSString stringWithFormat:@"%@", BC[i].name] forKey:@"name"];
+        [dict setValue:[NSString stringWithFormat:@"%d", BC[i].S_M.HP] forKey:@"HP"];
+        [dict setValue:[NSString stringWithFormat:@"%d", BC[i].S_M.WT] forKey:@"WT"];
+        [dict setValue:[NSString stringWithFormat:@"%d", BC[i].dmgfix] forKey:@"dmgfix"];
+        [dict setValue:[NSString stringWithFormat:@"%d", BC[i].defLv] forKey:@"defLv"];
+        [self willChangeValueForKey:@"buildChipListMA"];
+        [buildChipListMA addObject:dict];
+        [self didChangeValueForKey:@"buildChipListMA"];
+    }
+    
+    [self saveData];
+}
+
+-(void)savePreset{
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+
+    NSString *fileData = @"";
+    fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", (int)chipNumb]] stringByAppendingString:@"\n"];
+    
+    NSString *path = @"data/BuildChip/preset.txt";
+    [fileData writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
+}
+
+-(void)saveData{
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    char *cwd;
+    cwd = getcwd(NULL, 0);
+    
+    for (int i = 0;i < chipNumb;i++) {
+        NSString *fileData = @"";
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].name]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].nameR]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].nameID]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].S_M.HP]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].S_M.WT]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].dmgfix]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].defLv]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].recHP]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].recMP]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].recEN]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].Csupply]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].Cfood]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].Cmoney]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].CsupplyNext]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].CfoodNext]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].CmoneyNext]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].Esupply]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].Efood]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].Emoney]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].S_M.WTE]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].S_M.WTN]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].inroadsFlag]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].capture]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].type]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].linkDest]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].linkNext]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].iName]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", BC[i].iNameb]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"];
+        
+        NSData *f2Data = [BC[i].img TIFFRepresentation];
+        NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:f2Data];
+        f2Data = [brep representationUsingType:NSPNGFileType properties:nil];
+        
+        NSString *bcPath = @"data/BuildChip/img/bc";
+        bcPath = [bcPath stringByAppendingFormat:@"%d", i + 1];
+        
+        [f2Data writeToFile:bcPath atomically:YES];
+        
+        f2Data = [BC[i].imgb TIFFRepresentation];
+        brep = [NSBitmapImageRep imageRepWithData:f2Data];
+        f2Data = [brep representationUsingType:NSPNGFileType properties:nil];
+        
+        bcPath = @"data/BuildChip/img/bcb";
+        bcPath = [bcPath stringByAppendingFormat:@"%d", i + 1];
+        
+        [f2Data writeToFile:bcPath atomically:YES];
+        
+        RESEARCH *rTop = BC[i].R;
+        while(BC[i].R){
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].R->type]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].R->numb]]
+                        stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", BC[i].R->Lv]]
+                        stringByAppendingString:@"\n"];
+            BC[i].R = BC[i].R->next;
+        }BC[i].R = rTop;
+        fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"----"]];
+        if(i != chipNumb - 1) fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"\n"]];
+        
+        NSString *pathBCP = @"data/BuildChip/BCdata";
+        pathBCP = [pathBCP stringByAppendingFormat:@"%d.txt", i + 1];
+        [fileData writeToFile:pathBCP atomically:YES encoding:NSUTF8StringEncoding error:nil];
+    
+    
+    
+    }
+    
+}
+
+-(IBAction)registBCL:(id)sender{
+    [TFchipNumb setIntValue:(int)chipNumb];
+    [BCLregisterPanel makeKeyAndOrderFront:nil];
+}
+-(IBAction)registSaveBCL:(id)sender{
+    chipNumb = [TFchipNumb intValue];
+    if(chipNumb > 128) chipNumb = 128;
+    BuildChipMax = (int)chipNumb/25+1;
+    
+    [self savePreset];
+    [self initBuildChipList];
+    [self initFileDirectory];
+    [BCLregisterPanel close];
+}
+-(IBAction)registCancelBCL:(id)sender{
+    [BCLregisterPanel close];
+}
+
+-(IBAction)researchListUnitInsert:(id)sender{
+
+    RLunitNumb = (int)[PUunit indexOfSelectedItem] - 1;
+    
+    if(RLunitNumb < 0) return;
+    
+    int R = RLunitNumb;
+    
+    NSMutableDictionary *dict = [NSMutableDictionary new];
+    [dict setValue:[NSString stringWithFormat:@"新規研究"] forKey:@"name"];
+    
+    Rtop = BC[clickIndex].R;
+    
+    if(RLrow < 0){
+        BC[clickIndex].R = Rtop;
+        if([researchListMA count] == 0){
+            BC[clickIndex].R = (RESEARCH*)malloc(sizeof(RESEARCH));
+            //INIT 処理
+            BC[clickIndex].R->type = 1;
+            BC[clickIndex].R->numb = R;
+            BC[clickIndex].R->U = &UC[R];
+            BC[clickIndex].R->O = NULL;
+            BC[clickIndex].R->R = NULL;
+            BC[clickIndex].R->next = NULL;
+            Rtop = BC[R].R;
+        }else{
+            while(BC[clickIndex].R->next) BC[clickIndex].R = BC[clickIndex].R->next;
+            BC[clickIndex].R->next = (RESEARCH*)malloc(sizeof(RESEARCH));
+            BC[clickIndex].R = BC[clickIndex].R->next;
+            //INIT 処理
+            BC[clickIndex].R->type = 1;
+            BC[clickIndex].R->numb = R;
+            BC[clickIndex].R->U = &UC[R];
+            BC[clickIndex].R->O = NULL;
+            BC[clickIndex].R->R = NULL;
+            //UNITCHIP *uTest = (UNITCHIP*)BC[clickIndex].R->U;
+            BC[clickIndex].R->next = NULL;
+            BC[clickIndex].R = Rtop;
+        }
+        
+        [dict setValue:[NSString stringWithFormat:@"%@", UC[R].name] forKey:@"name"];
+        [dict setValue:[NSString stringWithFormat:@"資%d 食%d 金%d", UC[R].S_M.cSupply, UC[R].S_M.cFood, UC[R].S_M.cMoney] forKey:@"cost"];
+        [dict setValue:[NSString stringWithFormat:@"%d", UC[R].S_M.cWT] forKey:@"WT"];
+        
+        [self willChangeValueForKey:@"researchListMA"];
+        [researchListMA insertObject:dict atIndex:[researchListMA count]];
+        [self didChangeValueForKey:@"researchListMA"];
+        [researchListAC setSelectionIndex:999];
+        RLrow = -1;
+    }else{
+        BC[clickIndex].R = Rtop;
+        if([researchListMA count] == 0){
+            BC[clickIndex].R = (RESEARCH*)malloc(sizeof(RESEARCH));
+            //INIT 処理
+            BC[clickIndex].R->type = 1;
+            BC[clickIndex].R->numb = R;
+            BC[clickIndex].R->U = &UC[R];
+            BC[clickIndex].R->O = NULL;
+            BC[clickIndex].R->R = NULL;
+            BC[clickIndex].R->next = NULL;
+            Rtop = BC[clickIndex].R;
+        }else if(RLrow > 0){
+            for (int i = 0; i < RLrow-1;i++)
+                BC[clickIndex].R = BC[clickIndex].R->next;
+            RESEARCH *tmp = (RESEARCH*)malloc(sizeof(RESEARCH));
+            *tmp = *BC[clickIndex].R->next;
+            BC[clickIndex].R->next = (RESEARCH*)malloc(sizeof(RESEARCH));
+            BC[clickIndex].R->next->next = tmp;
+            BC[clickIndex].R = BC[clickIndex].R->next;
+            //INIT 処理
+            BC[clickIndex].R->type = 1;
+            BC[clickIndex].R->numb = R;
+            BC[clickIndex].R->U = &UC[R];
+            BC[clickIndex].R->O = NULL;
+            BC[clickIndex].R->R = NULL;
+            BC[clickIndex].R = Rtop;
+        }else{
+            RESEARCH *tmp = (RESEARCH*)malloc(sizeof(RESEARCH));
+            tmp->next = BC[clickIndex].R;
+            // INIT 処理[self InitAttack:tmp];
+            tmp->type = 1;
+            tmp->numb = R;
+            tmp->U = &UC[R];
+            tmp->O = NULL;
+            tmp->R = NULL;
+            Rtop = tmp;
+            BC[clickIndex].R = Rtop;
+        }
+    
+        [dict setValue:[NSString stringWithFormat:@"%@", UC[R].name] forKey:@"name"];
+        [dict setValue:[NSString stringWithFormat:@"資%d 食%d 金%d", UC[R].S_M.cSupply, UC[R].S_M.cFood, UC[R].S_M.cMoney] forKey:@"cost"];
+        [dict setValue:[NSString stringWithFormat:@"%d", UC[R].S_M.cWT] forKey:@"WT"];
+        
+        [self willChangeValueForKey:@"researchListMA"];
+        [researchListMA insertObject:dict atIndex:RLrow];
+        [self didChangeValueForKey:@"researchListMA"];
+        [researchListAC setSelectionIndex:RLrow];
+    }
+
+}
+
+-(IBAction)researchListResearchInsert:(id)sender{
+
+}
+
+-(IBAction)researchListUnionInsert:(id)sender{
+
+}
+
+-(IBAction)researchListDelete:(id)sender{
+    
+    Rtop = BC[clickIndex].R;
+    
+    if(RLrow == -1){
+        RLrow = (int)[researchListMA count] - 1;
+    }
+    
+    if([researchListMA count] > 0){
+    
+    if(RLrow == 0){
+        BC[clickIndex].R = Rtop;
+        BC[clickIndex].R = BC[clickIndex].R->next;
+        Rtop = BC[clickIndex].R;
+    }else if(RLrow == [researchListMA count] - 1){
+        BC[clickIndex].R = Rtop;
+        while(BC[clickIndex].R->next->next){
+            BC[clickIndex].R = BC[clickIndex].R->next;
+        }
+        BC[clickIndex].R->next = NULL;
+    }else{
+        BC[clickIndex].R = Rtop;
+        for (int i = 0; i < RLrow - 1;i++)
+            BC[clickIndex].R = BC[clickIndex].R->next;
+        BC[clickIndex].R->next = BC[clickIndex].R->next->next;
+    }
+    
+    [self willChangeValueForKey:@"researchListMA"];
+    [researchListMA removeObjectAtIndex:RLrow];
+    [self didChangeValueForKey:@"researchListMA"];
+    [researchListAC setSelectionIndex:RLrow-1];
+    if(RLrow < 0) [researchListAC setSelectionIndex:[researchListMA count]-1];
+    if(RLrow == 0) [researchListAC setSelectionIndex:0];
+    if(RLrow > 0) RLrow--;
+    }
+    BC[clickIndex].R = Rtop;
+
+}
+
+-(void)initResearchList{
+    
+    [self willChangeValueForKey:@"researchListMA"];
+    [researchListMA removeAllObjects];
+    [self didChangeValueForKey:@"researchListMA"];
+    
+    RESEARCH *rTop = BC[clickIndex].R;
+    while(BC[clickIndex].R){
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+        UNITCHIP *uc = BC[clickIndex].R->U;
+        
+        [dict setValue:[NSString stringWithFormat:@"%@", uc->name] forKey:@"name"];
+        [dict setValue:[NSString stringWithFormat:@"%d", uc->S_M.cWT] forKey:@"WT"];
+        [dict setValue:[NSString stringWithFormat:@"資%d 食%d 金%d", uc->S_M.cSupply, uc->S_M.cFood, uc->S_M.cMoney] forKey:@"cost"];
+        [self willChangeValueForKey:@"researchListMA"];
+        [researchListMA addObject:dict];
+        [self didChangeValueForKey:@"researchListMA"];
+        
+        BC[clickIndex].R = BC[clickIndex].R->next;
+    }BC[clickIndex].R = rTop;
+    
+    
+}
+
+@end
diff --git a/Awars III/ChipView.h b/Awars III/ChipView.h
new file mode 100755 (executable)
index 0000000..e151907
--- /dev/null
@@ -0,0 +1,40 @@
+//
+//  ChipView.h
+//  Awars III
+//
+//  Created by Killery on 2012/12/15.
+//  Copyright (c) 2012年 Killery. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "MapChipList.h"
+#import "BuildChipList.h"
+#import "UnitChipList.h"
+#import "LoadChipList.h"
+#import "MapEditor.h"
+#import "SeedView.h"
+#import "CommandView.h"
+
+int SLx;
+int SLy;
+int SLindex;
+int SLindexB;
+int SLindexU;
+int SLindexL;
+
+@interface ChipView : NSView
+{
+    NSTimer *time;
+    
+    NSImage *chip;
+    NSImage *chip2;
+    NSImage *chipA, *chipB, *chipC, *chipD, *chipE, *chipF;
+    NSImage *chipa, *chipb, *chipc, *chipd, *chipe, *chipf;
+    
+    NSPoint selectPoint;
+}
+
+-(NSImage*)LoadImage:(NSString*)name;
+-(void)DrawImage:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy;
+
+@end
diff --git a/Awars III/ChipView.m b/Awars III/ChipView.m
new file mode 100755 (executable)
index 0000000..5c39de0
--- /dev/null
@@ -0,0 +1,167 @@
+//
+//  ChipView.m
+//  Awars III
+//
+//  Created by Killery on 2012/12/15.
+//  Copyright (c) 2012年 Killery. All rights reserved.
+//
+
+#import "ChipView.h"
+
+@implementation ChipView
+
+- (id)initWithFrame:(NSRect)frame
+{
+    self = [super initWithFrame:frame];
+    if (self) {
+        time  = [NSTimer
+                 scheduledTimerWithTimeInterval:0.05f
+                 target:self
+                 selector:@selector(EventLoop:)
+                 userInfo:nil
+                 repeats:YES
+                 ];
+        chip = [[self LoadImage:@"マス.png"] retain];
+        chip2 = [[self LoadImage:@"セレクター.png"] retain];
+        chipA = [[self LoadImage:@"cc旗青.png"] retain];
+        chipB = [[self LoadImage:@"cc旗青2.png"] retain];
+        chipC = [[self LoadImage:@"cc旗赤.png"] retain];
+        chipD = [[self LoadImage:@"cc旗赤2.png"] retain];
+        chipE = [[self LoadImage:@"cc旗黄.png"] retain];
+        chipF = [[self LoadImage:@"cc旗黄2.png"] retain];
+        chipa = [[self LoadImage:@"ccはた青.png"] retain];
+        chipb = [[self LoadImage:@"ccはた青2.png"] retain];
+        chipc = [[self LoadImage:@"ccはた赤.png"] retain];
+        chipd = [[self LoadImage:@"ccはた赤2.png"] retain];
+        chipe = [[self LoadImage:@"ccはた黄.png"] retain];
+        chipf = [[self LoadImage:@"ccはた黄2.png"] retain];
+        
+        NSRect seRect;
+        seRect.size.height = 20*32;
+        seRect.size.width = 20*32;
+    }
+    
+    return self;
+}
+
+-(void)EventLoop:(NSTimer*)time{
+    
+    SLindex = (SLy*3 + SLx)+(MapChipListIndex-1)*24;
+    SLindexB = (SLy*3 + SLx)+(BuildChipListIndex-1)*24;
+    SLindexU = (SLy*3 + SLx)+(UnitChipListIndex-1)*24;
+    SLindexL = (SLy*3 + SLx)+(LoadChipListIndex-1)*24;
+    
+    [self setNeedsDisplay:YES];
+}
+
+-(BOOL)isFlipped{
+    return YES;
+}
+
+-(NSImage*)LoadImage:(NSString*)name{
+    NSImage *image = [NSImage imageNamed:name];
+    if(image == nil) return nil;
+    //[image setFlipped:[self isFlipped]];
+    
+    return image;
+}
+-(void)DrawImage:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy{
+    NSRect frRect;
+    frRect.size.height = image.size.height;
+    frRect.size.width = image.size.width;
+    
+    frRect.origin.x = 0;
+    frRect.origin.y = 0;
+    
+    NSRect drRect;
+    drRect.origin.x = x;
+    drRect.origin.y = y;
+    drRect.size.height = 32;
+    drRect.size.width = 32;
+    
+    [image drawInRect:drRect fromRect:frRect operation:NSCompositeSourceOver fraction:1.0f respectFlipped:YES hints:nil];
+    
+}
+
+-(void)mouseDown:(NSEvent *)theEvent{
+    selectPoint = [self convertPoint:[theEvent locationInWindow] fromView:nil];
+    
+    SLx = (int)selectPoint.x/32;
+    SLy = (int)selectPoint.y/32;
+    
+    CommandSelected = false;
+    
+}
+
+- (void)drawRect:(NSRect)dirtyRect
+{
+    int bx, by;
+    
+    
+    if(SLCy == 1 && SLSx == 0){
+        for(bx=0;bx<3;bx++){
+            for(by=0;by<8;by++){
+                [self DrawImage:chip x:bx*32 y:by*32 cx:bx cy:by];
+                [self DrawImage:chipa x:0*32 y:0*32 cx:bx cy:by];
+                [self DrawImage:chipb x:1*32 y:0*32 cx:bx cy:by];
+                [self DrawImage:chipc x:2*32 y:0*32 cx:bx cy:by];
+                [self DrawImage:chipd x:0*32 y:1*32 cx:bx cy:by];
+                [self DrawImage:chipe x:1*32 y:1*32 cx:bx cy:by];
+                [self DrawImage:chipf x:2*32 y:1*32 cx:bx cy:by];
+            }
+        }
+    }else if(SLCy == 2 && SLSx == 0){
+        for(bx=0;bx<3;bx++){
+            for(by=0;by<8;by++){
+                [self DrawImage:chip x:bx*32 y:by*32 cx:bx cy:by];
+                [self DrawImage:chipA x:0*32 y:0*32 cx:bx cy:by];
+                [self DrawImage:chipB x:1*32 y:0*32 cx:bx cy:by];
+                [self DrawImage:chipC x:2*32 y:0*32 cx:bx cy:by];
+                [self DrawImage:chipD x:0*32 y:1*32 cx:bx cy:by];
+                [self DrawImage:chipE x:1*32 y:1*32 cx:bx cy:by];
+                [self DrawImage:chipF x:2*32 y:1*32 cx:bx cy:by];
+            }
+        }
+    }else if (SLSx == 0) {
+    for(bx=0;bx<3;bx++){
+        for(by=0;by<8;by++){
+            [self DrawImage:chip x:bx*32 y:by*32 cx:bx cy:by];
+            NSImage *MCI = MC[(by*3 + bx)+(MapChipListIndex-1)*24].img;
+            //[MCI setFlipped:[self isFlipped]];
+            [self DrawImage:MCI x:bx*32 y:by*32 cx:bx cy:by];
+        }
+    }
+    }else if(SLSx == 1){
+        for(bx=0;bx<3;bx++){
+            for(by=0;by<8;by++){
+                [self DrawImage:chip x:bx*32 y:by*32 cx:bx cy:by];
+                NSImage *BCI = BC[(by*3 + bx)+(BuildChipListIndex-1)*24].img;
+                [BCI setFlipped:NO];
+                [self DrawImage:BCI x:bx*32 y:by*32 cx:bx cy:by];
+            }
+        }
+    }else if(SLSx == 2){
+        for(bx=0;bx<3;bx++){
+            for(by=0;by<8;by++){
+                [self DrawImage:chip x:bx*32 y:by*32 cx:bx cy:by];
+                NSImage *UCI = UC[(by*3 + bx)+(UnitChipListIndex-1)*24].img;
+                [UCI setFlipped:NO];
+                [self DrawImage:UCI x:bx*32 y:by*32 cx:bx cy:by];
+            }
+        }
+    }else if(SLSx == 3){
+    for(bx=0;bx<3;bx++){
+        for(by=0;by<8;by++){
+            [self DrawImage:chip x:bx*32 y:by*32 cx:bx cy:by];
+            NSImage *LCI = LC[(by*3 + bx)+(LoadChipListIndex-1)*24].img;
+            //[UCI setFlipped:true];
+            [self DrawImage:LCI x:bx*32 y:by*32 cx:bx cy:by];
+            }
+        }
+    }
+
+
+    if(!CommandSelected) [self DrawImage:chip2 x:SLx*32 y:SLy*32 cx:SLx cy:SLy];
+}
+
+@end
diff --git a/Awars III/CommandView.h b/Awars III/CommandView.h
new file mode 100755 (executable)
index 0000000..5057eda
--- /dev/null
@@ -0,0 +1,28 @@
+//
+//  CommandView.h
+//  Awars III
+//
+//  Created by Killery on 2013/02/05.
+//  Copyright (c) 2013年 Killery. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+int SLCx;
+int SLCy;
+bool DoubleClickedC;
+bool CommandSelected;
+
+@interface CommandView : NSView
+{
+    NSTimer *time;
+    NSImage *chip;
+    NSImage *chip2, *chip3, *chip4, *chip5;
+    
+    NSPoint selectPoint;
+}
+
+-(NSImage*)LoadImage:(NSString*)name;
+-(void)DrawImage:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy;
+
+@end
diff --git a/Awars III/CommandView.m b/Awars III/CommandView.m
new file mode 100755 (executable)
index 0000000..fcfc4cd
--- /dev/null
@@ -0,0 +1,97 @@
+//
+//  CommandView.m
+//  Awars III
+//
+//  Created by Killery on 2013/02/05.
+//  Copyright (c) 2013年 Killery. All rights reserved.
+//
+
+#import "CommandView.h"
+
+@implementation CommandView
+
+- (id)initWithFrame:(NSRect)frame
+{
+    self = [super initWithFrame:frame];
+    if (self) {
+        time  = [NSTimer
+                 scheduledTimerWithTimeInterval:0.05f
+                 target:self
+                 selector:@selector(EventLoop:)
+                 userInfo:nil
+                 repeats:YES
+                 ];
+        
+        chip = [[self LoadImage:@"マス.png"] retain];
+        chip2 = [[self LoadImage:@"ccなし.png"] retain];
+        chip3 = [[self LoadImage:@"cc建物.png"] retain];
+        chip4 = [[self LoadImage:@"cc駒.png"] retain];
+        chip5 = [[self LoadImage:@"セレクター.png"] retain];
+        NSRect seRect;
+        seRect.size.height = 1*32;
+        seRect.size.width = 1*32;
+    }
+    
+    return self;
+}
+
+-(void)EventLoop:(NSTimer*)time{
+    
+    [self setNeedsDisplay:YES];
+}
+
+
+-(BOOL)isFlipped{
+    return YES;
+}
+
+-(NSImage*)LoadImage:(NSString*)name{
+    NSImage *image = [NSImage imageNamed:name];
+    if(image == nil) return nil;
+    //[image setFlipped:[self isFlipped]];
+    
+    return image;
+}
+-(void)DrawImage:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy{
+    NSRect frRect;
+    frRect.size.height = image.size.height;
+    frRect.size.width = image.size.width;
+    
+    frRect.origin.x = 0;
+    frRect.origin.y = 0;
+    
+    NSRect drRect;
+    drRect.origin.x = x;
+    drRect.origin.y = y;
+    drRect.size.height = 32;
+    drRect.size.width = 32;
+    
+    [image drawInRect:drRect fromRect:frRect operation:NSCompositeSourceOver fraction:1.0f respectFlipped:YES hints:nil];
+    
+}
+
+-(void)mouseDown:(NSEvent *)theEvent{
+    selectPoint = [self convertPoint:[theEvent locationInWindow] fromView:nil];
+    
+    SLCx = (int)selectPoint.x/32;
+    SLCy = (int)selectPoint.y/32;
+    
+    CommandSelected = true;
+}
+
+-(void)mouseUp:(NSEvent *)theEvent{
+    if([theEvent clickCount] == 2) {
+        DoubleClickedC = true;
+    }
+}
+
+- (void)drawRect:(NSRect)dirtyRect
+{
+    [self DrawImage:chip2 x:0 y:0 cx:0 cy:0];
+    [self DrawImage:chip3 x:0 y:1*32 cx:1 cy:0];
+    [self DrawImage:chip4 x:0 y:2*32 cx:2 cy:0];
+    
+    if(CommandSelected) [self DrawImage:chip5 x:0 y:SLCy*32 cx:0 cy:0];
+}
+
+@end
diff --git a/Awars III/LoadChipList.h b/Awars III/LoadChipList.h
new file mode 100644 (file)
index 0000000..9a4ecf7
--- /dev/null
@@ -0,0 +1,173 @@
+//
+//  LoadChipList.h
+//  Awars III
+//
+//  Created by Killery on 2014/01/14.
+//  Copyright (c) 2014年 Killery. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "MapEditor.h"
+#import "UnitChipList.h"
+
+typedef struct _STATUS2{
+
+    double HP;
+    double EN;
+    double WT;
+    
+    int MOV;
+    double ARM;
+    double MOB;
+    double LIM;
+    
+    short size;//T:極小 S:人型サイズ B:乗り物サイズ H:建物サイズ G:巨人サイズ M:モビールスーツサイズ L:戦艦サイズ LL:大戦艦サイズ E:移動基地サイズ I:大陸サイズ
+    short typeMOVE;
+    short loadCnt;
+    
+    int cSupply;
+    int cFood;
+    int cMoney;
+    int cWT;
+    
+}STATUS2;
+
+typedef struct _LOADCHIP{
+    
+    struct _RESIST R_C;
+    struct _RESIST R_M;
+    struct _ATTACK *A;
+    
+    NSString *name;
+    NSString *nameRecognition;
+    NSString *nameID;
+    
+    struct _STATUS2 S_C;
+    struct _STATUS2 S_M;
+    
+    NSString *iName;
+    NSImage *img;
+    
+    NSString *iNameb;
+    NSImage *imgb;
+    
+    int chipNumb;
+    
+    NSString *aName;
+    int attackListNum;
+    
+}LOADCHIP;
+
+LOADCHIP LC[4096];
+
+int LCN;
+
+int LoadChipNum;
+
+NSInteger cil;
+
+@interface LoadChipList : NSObject
+{
+    NSTimer *LCLtime;
+    IBOutlet NSPanel* LCLPanel;
+    IBOutlet NSPanel* LCLDetailPanel;
+    IBOutlet NSPanel* LCLRegisterPanel;
+
+    NSMutableArray *loadChipListMA;
+    IBOutlet NSArrayController *loadChipListAC;
+    IBOutlet NSTableView *loadChipListTV;
+    
+    IBOutlet NSTextField *TFname;
+    IBOutlet NSTextField *TFnameR;
+    IBOutlet NSTextField *TFnameID;
+    
+    IBOutlet NSTextField *TFhp;
+    IBOutlet NSTextField *TFen;
+    IBOutlet NSTextField *TFwt;
+
+    IBOutlet NSTextField *TFmov;
+    IBOutlet NSTextField *TFarm;
+    IBOutlet NSTextField *TFmob;
+    IBOutlet NSTextField *TFlim;
+    
+    IBOutlet NSTextField *TFcSupply;
+    IBOutlet NSTextField *TFcFood;
+    IBOutlet NSTextField *TFcMoney;
+    IBOutlet NSTextField *TFcWT;
+
+    IBOutlet NSTextField *TFloadCount;
+    IBOutlet NSPopUpButton *PUPtMove;
+    IBOutlet NSPopUpButton *PUPtEquip;
+    IBOutlet NSPopUpButton *PUPtSize;
+    
+    IBOutlet NSImageView *IVimg;
+    IBOutlet NSImageView *IVimgb;
+    
+    NSArray *fileDataArray;
+    NSInteger chipNumb;
+    IBOutlet NSTextField *TFchipNumb;
+
+    IBOutlet NSPanel *commandListPanel;
+    IBOutlet NSPanel *attackListPanel;
+    IBOutlet NSPanel *attackEditPanel;
+    
+    IBOutlet NSTextField *ALTFname;
+    IBOutlet NSTextField *ALTFrangeA;
+    IBOutlet NSTextField *ALTFrangeB;
+    IBOutlet NSTextField *ALTFextend;
+    IBOutlet NSPopUpButton *ALPUBcost;
+    IBOutlet NSPopUpButton *ALPUBwType;
+    IBOutlet NSTextField *ALTFcost;
+    IBOutlet NSTextField *ALTFcostP;
+    
+    IBOutlet NSTextField *ALTFbullet;
+    IBOutlet NSTextField *ALTFhitCount;
+    IBOutlet NSTextField *ALTFsuccessRate;
+    IBOutlet NSTextField *ALTFvigor;
+    IBOutlet NSTextField *ALTFhitRate;
+    
+    IBOutlet NSButton *ALTFtrigger;
+    IBOutlet NSButton *ALTFmelee;
+    IBOutlet NSButton *ALTFpass;
+    IBOutlet NSButton *ALTFdmgExtent;
+    
+    IBOutlet NSPopUpButton *ALPUBriku;
+    IBOutlet NSPopUpButton *ALPUBchu;
+    IBOutlet NSPopUpButton *ALPUBumi;
+    IBOutlet NSPopUpButton *ALPUBsora;
+    
+    IBOutlet NSTextField *ALTFcSupply;
+    IBOutlet NSTextField *ALTFcFood;
+    IBOutlet NSTextField *ALTFcMoney;
+    IBOutlet NSTextField *ALTFcmd;
+    IBOutlet NSTextField *ALTFmsg;
+    
+    IBOutlet NSTextField *ALTFrate;
+    IBOutlet NSTextField *ALTFhit;
+    IBOutlet NSTextField *ALTFatkHit;
+    
+    IBOutlet NSPopUpButton *ALPUBtype;
+    IBOutlet NSPopUpButton *ALPUBseed;
+    IBOutlet NSPopUpButton *ALPUBsort;
+    IBOutlet NSTextField *ALTFdmgCount;
+    IBOutlet NSTextField *ALTFdmgRate;
+    
+    IBOutlet NSButton *ALTFcontinuum;
+    IBOutlet NSButton *ALTFabsolute;
+    IBOutlet NSButton *ALTFbeam;
+    IBOutlet NSButton *ALTFnoSizeFix;
+
+}
+
+
+
+-(IBAction)submit:(id)sender;
+
+-(IBAction)saveLCL:(id)sender;
+-(IBAction)cancelLCL:(id)sender;
+
+-(IBAction)registLCL:(id)sender;
+-(IBAction)registSaveLCL:(id)sender;
+-(IBAction)registCancelLCL:(id)sender;
+
+@end
diff --git a/Awars III/LoadChipList.m b/Awars III/LoadChipList.m
new file mode 100644 (file)
index 0000000..d54f344
--- /dev/null
@@ -0,0 +1,675 @@
+//
+//  MechaChipList.m
+//  Awars III
+//
+//  Created by Killery on 2014/01/14.
+//  Copyright (c) 2014年 Killery. All rights reserved.
+//
+
+#import "LoadChipList.h"
+
+@implementation LoadChipList
+
+-(void)awakeFromNib{
+
+    [loadChipListTV setTarget:self];
+    [loadChipListTV setDoubleAction:@selector(doubleClickLCL:)];
+
+    loadChipListMA = [NSMutableArray new];
+}
+
+
+
+-(id)init{
+
+    LCLtime  = [NSTimer
+                scheduledTimerWithTimeInterval:0.01f
+                target:self
+                selector:@selector(EventLoopLCL:)
+                userInfo:nil
+                repeats:YES
+                ];
+
+    chipNumb = 23;
+    [self initFileDirectory];
+    [self initLoadChipList];
+    
+    //allocするともう一度initを呼び出してしまう
+    UnitChipList *UCL = [UnitChipList alloc];
+    [UCL initFileDirectoryAttack2];
+    [self initTotalDamage];
+
+    LoadChipMax = (int)chipNumb/25 + 1;
+    
+    return self;
+}
+
+-(void)initTotalDamage{
+    UnitChipList *UCL = [UnitChipList alloc];
+    [UCL initFileDirectoryAttack2];
+    
+    for(int i = 0;i < chipNumb;i++){
+        int j = 0;
+        while (j < 64) {
+            [UCL setTotalDamage2:i row:j];
+            j++;
+        }
+    }
+    
+}
+
+-(void)EventLoopLCL:(NSTimer*)time{
+
+}
+
+-(void)doubleClickLCL:(id)sender{
+    cil = [loadChipListTV clickedRow];
+    
+    [TFname setStringValue:LC[cil].name];
+    [TFnameR setStringValue:LC[cil].nameRecognition];
+    [TFnameID setStringValue:LC[cil].nameID];
+    
+    
+    [TFhp setDoubleValue:LC[cil].S_M.HP];
+    [TFen setIntValue:LC[cil].S_M.EN];
+    [TFwt setIntValue:LC[cil].S_M.WT];
+    
+    [TFmov setIntValue:LC[cil].S_M.MOV];
+    [TFarm setIntValue:LC[cil].S_M.ARM];
+    [TFmob setIntValue:LC[cil].S_M.MOB];
+    [TFlim setIntValue:LC[cil].S_M.LIM];
+    
+    [TFcSupply setIntValue:LC[cil].S_M.cSupply];
+    [TFcFood setIntValue:LC[cil].S_M.cFood];
+    [TFcMoney setIntValue:LC[cil].S_M.cMoney];
+    [TFcWT setIntValue:LC[cil].S_M.cWT];
+    
+    [PUPtSize selectItemAtIndex:LC[cil].S_M.size];
+    [PUPtMove selectItemAtIndex:LC[cil].S_M.typeMOVE];
+    
+    [IVimg setImage:LC[cil].img];
+    [IVimgb setImage:LC[cil].imgb];
+    
+    [LCLDetailPanel makeKeyAndOrderFront:nil];
+
+}
+
+
+
+-(void)initLoadChipList{
+    loadChipListMA = [NSMutableArray new];
+    
+    for(int i = 0;i < chipNumb;i++){
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        if(!LC[i].nameID){
+            LC[i].name = [[NSString stringWithFormat:@"新規搭載ユニット"] retain];
+            LC[i].name = [[LC[i].name stringByAppendingFormat:@"%d",i+1] retain];
+            LC[i].nameID = @"lc";
+            LC[i].nameID = [[LC[i].nameID stringByAppendingFormat:@"%d",i+1] retain];
+            LC[i].nameRecognition = [@"新規機械" retain];
+            LC[i].nameRecognition = [[LC[i].nameRecognition stringByAppendingFormat:@"%d",i+1] retain];
+            LC[i].iName = @"lc";
+            LC[i].iName = [[LC[i].iName stringByAppendingFormat:@"%d",i+1] retain];
+            LC[i].iNameb = @"lcb";
+            LC[i].iNameb = [[LC[i].iNameb stringByAppendingFormat:@"%d",i+1] retain];
+        }
+        
+        [dict setValue:LC[i].img forKey:@"img"];
+        [dict setValue:LC[i].imgb forKey:@"imgb"];
+        [dict setValue:[NSString stringWithFormat:@"%@", LC[i].name] forKey:@"name"];
+        [dict setValue:[NSString stringWithFormat:@"%g", LC[i].S_M.HP] forKey:@"HP"];
+        [self willChangeValueForKey:@"loadChipListMA"];
+        [loadChipListMA addObject:dict];
+        [self didChangeValueForKey:@"loadChipListMA"];
+    }
+
+}
+
+
+-(void)initFileDirectory{
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    char *cwd;
+    cwd = getcwd(NULL, 0);
+    
+    
+    NSData *InitialData = [NSData dataWithContentsOfFile:@"data/LoadChip/preset.txt"];
+    NSString *pathLC = @"data/LoadChip/img";
+    NSString *pathDATA2 = @"data/LoadChip/preset.txt";
+    NSString *pathLCP = @"data/LoadChip/preset.txt";
+    NSString *fileData = nil;
+    
+    chipNumb = 24;
+    LCN = (int)chipNumb;
+    if(!InitialData){
+        [[NSFileManager defaultManager] createDirectoryAtPath:pathLC withIntermediateDirectories:YES attributes:nil error:nil];
+        [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil];
+        
+        [[NSFileManager defaultManager] createFileAtPath:pathLCP contents:nil attributes:nil];
+        
+        NSString *data0 = @"24";
+        [data0 writeToFile:pathLCP atomically:YES encoding:NSUTF8StringEncoding error:nil];
+        
+        NSString *data1 = @"野砲\n野砲,野砲\n"
+        @"500,100,500\n10,100,20,100\n1,0,0,100,0,250,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc1.png,lcb1.png\n";
+        NSString *data2 = @"装甲輸送車\n装甲輸送車,装甲輸送車\n"
+        @"2000,200,500\n15,1000,50,250\n1,0,0,150,0,500,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc1.png,lcb1.png\n";
+        NSString *data3 = @"補給車\n補給車,補給車\n"
+        @"1000,150,500\n15,500,50,200\n1,0,0,150,0,200,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc1.png,lcb1.png\n";
+        NSString *data4 = @"戦車\n戦車,戦車\n"
+        @"5000,300,500\n15,1400,60,250\n1,0,0,500,0,1000,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc1.png,lcb1.png\n";
+        NSString *data5 = @"重戦車\n重戦車,重戦車\n"
+        @"9000,500,500\n15,2000,60,300\n1,0,0,800,0,2000,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc1.png,lcb1.png\n";
+        NSString *data6 = @"自走砲\n自走砲,自走砲\n"
+        @"3000,250,500\n12,1000,40,200\n1,0,0,300,0,800,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc1.png,lcb1.png\n";
+        NSString *data7 = @"ロケット砲\nロケット砲,ロケット砲\n"
+        @"6000,300,500\n12,1200,50,230\n1,0,0,600,0,1800,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc1.png,lcb1.png\n";
+        NSString *data8 = @"対空砲\n対空砲,対空砲\n"
+        @"400,150,500\n16,800,60,240\n1,0,0,300,0,800,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc1.png,lcb1.png\n";
+        NSString *data9 = @"対空ミサイル\n対空ミサイル,対空ミサイル\n"
+        @"5000,300,500\n14,1200,50,220\n1,0,0,400,0,1400,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc1.png,lcb1.png\n";
+        NSString *data10 = @"大砲\n大砲,大砲\n"
+        @"8000,500,500\n0,1500,0,300\n1,0,0,1800,0,3000,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc1.png,lcb1.png\n";
+        NSString *data11 = @"輸送ヘリ\n輸送ヘリ,輸送ヘリ\n"
+        @"2500,150,500\n18,800,60,250\n1,0,0,250,0,500,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc1.png,lcb1.png\n";
+        NSString *data12 = @"戦闘機\n戦闘機,戦闘機\n"
+        @"3000,200,500\n21,1000,80,300\n1,0,0,200,0,800,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc1.png,lcb1.png\n";
+        NSString *data13 = @"高速戦闘機\n高速戦闘機,高速戦闘機\n"
+        @"4000,250,500\n27,1200,100,400\n1,0,0,250,0,1500,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc1.png,lcb1.png\n";
+        NSString *data14 = @"爆撃機\n爆撃機,爆撃機\n"
+        @"4000,200,500\n20,1300,60,240\n1,0,0,250,0,800,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc1.png,lcb1.png\n";
+        NSString *data15 = @"重爆撃機\n重爆撃機,重爆撃機\n"
+        @"5000,300,500\n18,1500,60,240\n1,0,0,400,0,1200,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc1.png,lcb1.png\n";
+        NSString *data16 = @"攻撃ヘリ\n攻撃ヘリ,攻撃ヘリ\n"
+        @"5000,250,500\n20,1000,80,320\n1,0,0,250,0,1500,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc1.png,lcb1.png\n";
+        NSString *data17 = @"キャリア\nキャリア,キャリア\n"
+        @"7000,200,500\n24,1200,90,320\n1,0,0,400,0,1300,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc17.png,lcb17.png\n";
+        NSString *data18 = @"運輸船\n運輸船,運輸船\n"
+        @"500,100,500\n10,100,20,100\n1,0,0,150,0,100,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc18.png,lcb18.png\n";
+        NSString *data19 = @"戦艦\n戦艦,戦艦\n"
+        @"500,100,500\n10,100,20,100\n1,0,0,150,0,100,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc19.png,lcb19.png\n";
+        NSString *data20 = @"対空戦艦\n対空戦艦,対空戦艦\n"
+        @"500,100,500\n10,100,20,100\n1,0,0,150,0,100,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc20.png,lcb20.png\n";
+        NSString *data21 = @"魚雷艇\n魚雷艇,魚雷艇\n"
+        @"500,100,500\n10,100,20,100\n1,0,0,150,0,100,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc21.png,lcb21.png\n";
+        NSString *data22 = @"潜水艦\n潜水艦,潜水艦\n"
+        @"500,100,500\n10,100,20,100\n1,0,0,150,0,100,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc22.png,lcb22.png\n";
+        NSString *data23 = @"イージス艦\nイージス艦,イージス艦\n"
+        @"500,100,500\n10,100,20,100\n1,0,0,150,0,100,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc23.png,lcb23.png\n";
+        NSString *data24 = @"母艦\n母艦,母艦\n"
+        @"500,100,500\n10,100,20,100\n1,0,0,150,0,100,1000\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\n"
+        @"lc24.png,lcb24.png\n";
+
+        
+        for (int i=1; i<=chipNumb; i++) {
+            NSString *fdata = @"data/LoadChip/LCdata";
+            
+            fdata = [fdata stringByAppendingFormat:@"%d.txt", i];
+            
+            switch (i) {
+                case 1:
+                    [data1 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 2:
+                    [data2 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 3:
+                    [data3 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 4:
+                    [data4 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 5:
+                    [data5 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 6:
+                    [data6 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 7:
+                    [data7 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 8:
+                    [data8 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 9:
+                    [data9 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 10:
+                    [data10 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 11:
+                    [data11 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 12:
+                    [data12 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 13:
+                    [data13 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 14:
+                    [data14 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 15:
+                    [data15 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 16:
+                    [data16 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 17:
+                    [data17 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 18:
+                    [data18 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 19:
+                    [data19 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 20:
+                    [data20 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 21:
+                    [data21 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 22:
+                    [data22 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 23:
+                    [data23 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 24:
+                    [data24 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                    
+                default:
+                    
+                    break;
+            }
+            
+        }
+        
+    }
+    
+    
+    
+    fileData = [NSString stringWithContentsOfFile:pathLCP encoding:NSUTF8StringEncoding error:nil];
+    fileDataArray = [fileData componentsSeparatedByString:@"\n"];
+    int instantNum = [[fileDataArray objectAtIndex:0] intValue];
+    
+    chipNumb = instantNum;
+    LCN = (int)chipNumb;
+    
+    for (int i=0; i<chipNumb; i++) {
+        NSString *fdata = @"data/LoadChip/LCdata";
+        
+        fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
+        
+        fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil];
+        fileDataArray = [fileData componentsSeparatedByString:@"\n"];
+        
+        LC[i].name = [[fileDataArray objectAtIndex:0] retain];
+        
+        NSArray *items = [[fileDataArray objectAtIndex:1] componentsSeparatedByString:@","];
+        
+        LC[i].nameRecognition = [[items objectAtIndex:0] retain];
+        LC[i].nameID = [[items objectAtIndex:1] retain];
+        
+        items = [[fileDataArray objectAtIndex:2] componentsSeparatedByString:@","];
+        
+        LC[i].S_M.HP = [[items objectAtIndex:0] doubleValue];
+        LC[i].S_M.EN = [[items objectAtIndex:1] intValue];
+        LC[i].S_M.WT = [[items objectAtIndex:2] intValue];
+        
+        items = [[fileDataArray objectAtIndex:3] componentsSeparatedByString:@","];
+        
+        LC[i].S_M.MOV = [[items objectAtIndex:0] intValue];
+        LC[i].S_M.ARM = [[items objectAtIndex:1] intValue];
+        LC[i].S_M.MOB = [[items objectAtIndex:2] intValue];
+        LC[i].S_M.LIM = [[items objectAtIndex:3] intValue];
+        
+        items = [[fileDataArray objectAtIndex:4] componentsSeparatedByString:@","];
+        LC[i].S_M.size = [[items objectAtIndex:0] intValue];
+        LC[i].S_M.loadCnt = [[items objectAtIndex:1] intValue];
+        LC[i].S_M.typeMOVE = [[items objectAtIndex:2] intValue];
+        LC[i].S_M.cSupply = [[items objectAtIndex:3] intValue];
+        LC[i].S_M.cFood = [[items objectAtIndex:4] intValue];
+        LC[i].S_M.cMoney = [[items objectAtIndex:5] intValue];
+        LC[i].S_M.cWT = [[items objectAtIndex:6] intValue];
+        
+        items = [[fileDataArray objectAtIndex:5] componentsSeparatedByString:@","];
+        
+        LC[i].R_M.blow = [[items objectAtIndex:0] intValue];
+        LC[i].R_M.slash = [[items objectAtIndex:1] intValue];
+        LC[i].R_M.stub = [[items objectAtIndex:2] intValue];
+        LC[i].R_M.arrow = [[items objectAtIndex:3] intValue];
+        LC[i].R_M.gun = [[items objectAtIndex:4] intValue];
+        LC[i].R_M.shell = [[items objectAtIndex:5] intValue];
+        
+        LC[i].R_M.flame = [[items objectAtIndex:6] intValue];
+        LC[i].R_M.cold = [[items objectAtIndex:7] intValue];
+        LC[i].R_M.electoric = [[items objectAtIndex:8] intValue];
+        LC[i].R_M.air = [[items objectAtIndex:9] intValue];
+        LC[i].R_M.water = [[items objectAtIndex:10] intValue];
+        LC[i].R_M.gas = [[items objectAtIndex:11] intValue];
+        LC[i].R_M.holy = [[items objectAtIndex:12] intValue];
+        LC[i].R_M.dark = [[items objectAtIndex:13] intValue];
+        LC[i].R_M.explosion = [[items objectAtIndex:14] intValue];
+        LC[i].R_M.blood = [[items objectAtIndex:15] intValue];
+        
+        LC[i].R_M.paralysis = [[items objectAtIndex:16] intValue];
+        LC[i].R_M.confusion = [[items objectAtIndex:17] intValue];
+        LC[i].R_M.poison = [[items objectAtIndex:18] intValue];
+        LC[i].R_M.sleep = [[items objectAtIndex:19] intValue];
+        LC[i].R_M.charm = [[items objectAtIndex:20] intValue];
+        LC[i].R_M.silent = [[items objectAtIndex:21] intValue];
+        
+        items = [[fileDataArray objectAtIndex:6] componentsSeparatedByString:@","];
+        
+        LC[i].iName = [[items objectAtIndex:0] retain];
+        //NSLog(@"%@", LC[i].iName);
+        LC[i].iNameb = [[items objectAtIndex:1] retain];
+        
+        NSString *imgName = @"lc";
+        imgName = [imgName stringByAppendingFormat:@"%d", i+1];
+        LC[i].img = [[NSImage imageNamed:imgName] retain];
+        
+        
+        imgName = [NSString stringWithFormat:@"lcb"];
+        imgName = [imgName stringByAppendingFormat:@"%d", i+1];
+        LC[i].imgb = [[NSImage imageNamed:imgName] retain];
+        
+        NSString *imagePath = @"data/LoadChip/img/lc";
+        imagePath = [imagePath stringByAppendingFormat:@"%d", i+1];
+        NSData *imgData = [NSData dataWithContentsOfFile:imagePath];
+        
+        if(imgData)
+            LC[i].img = [[NSImage alloc] initWithData:[[NSFileHandle fileHandleForReadingAtPath:imagePath] readDataToEndOfFile]];
+        
+        imagePath = [NSString stringWithFormat:@"data/LoadChip/img/lcb"];
+        imagePath = [imagePath stringByAppendingFormat:@"%d", i+1];
+        imgData = [NSData dataWithContentsOfFile:imagePath];
+        
+        if(imgData)
+            LC[i].imgb = [[NSImage alloc] initWithData:[[NSFileHandle fileHandleForReadingAtPath:imagePath] readDataToEndOfFile]];
+        
+        
+        LC[i].S_C = LC[i].S_M;
+        LC[i].R_C = LC[i].R_M;
+
+        
+        LC[i].chipNumb = i;
+    }
+}
+
+-(void)saveData{
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    char *cwd;
+    cwd = getcwd(NULL, 0);
+    
+    
+    
+    for (int i=0; i<chipNumb; i++) {
+        NSString *fdata = @"data/LoadChip/LCdata";
+        fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
+        
+        NSString *fileData = @"";
+        
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", LC[i].name]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", LC[i].nameRecognition]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", LC[i].nameID]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", LC[i].S_M.HP]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", LC[i].S_M.EN]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", LC[i].S_M.WT]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].S_M.MOV]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", LC[i].S_M.ARM]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", LC[i].S_M.MOB]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", LC[i].S_M.LIM]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].S_M.size]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].S_M.loadCnt]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].S_M.typeMOVE]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].S_M.cSupply]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].S_M.cFood]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].S_M.cMoney]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].S_M.cWT]] stringByAppendingString:@"\n"];
+        
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.blow]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.slash]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.stub]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.arrow]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.gun]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.shell]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.flame]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.cold]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.electoric]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.air]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.water]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.gas]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.holy]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.dark]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.explosion]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.blood]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.paralysis]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.confusion]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.poison]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.sleep]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.charm]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].R_M.silent]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].iName]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].iNameb]] stringByAppendingString:@"\n"];
+        
+        //fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"----\n"]];
+        
+        [fileData writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+        
+        if(1){
+            NSData *f2Data = [LC[i].img TIFFRepresentation];
+            NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:f2Data];
+            f2Data = [brep representationUsingType:NSPNGFileType properties:nil];
+            
+            NSString *bcPath = @"data/LoadChip/img/lc";
+            bcPath = [bcPath stringByAppendingFormat:@"%d", i + 1];
+            
+            [f2Data writeToFile:bcPath atomically:YES];
+        }
+        
+        if(1){
+            NSData *f2Data = [LC[i].imgb TIFFRepresentation];
+            NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:f2Data];
+            f2Data = [brep representationUsingType:NSPNGFileType properties:nil];
+            
+            NSString *bcPath = @"data/LoadChip/img/lcb";
+            bcPath = [bcPath stringByAppendingFormat:@"%d", i + 1];
+            
+            [f2Data writeToFile:bcPath atomically:YES];
+        }
+    }
+    
+    
+}
+
+
+-(IBAction)submit:(id)sender{
+    loadChipSideFlag = false;
+    [LCLPanel close];
+}
+
+-(IBAction)saveLCL:(id)sender{
+    
+    LC[cil].name = [[TFname stringValue] retain];
+    LC[cil].nameRecognition = [[TFnameR stringValue] retain];
+    LC[cil].nameID = [[TFnameID stringValue] retain];
+
+    LC[cil].S_M.HP = [TFhp doubleValue];
+    LC[cil].S_M.EN = [TFen doubleValue];
+    LC[cil].S_M.WT = [TFwt doubleValue];
+    
+    LC[cil].S_M.MOV = [TFmov intValue];
+    LC[cil].S_M.ARM = [TFarm doubleValue];
+    LC[cil].S_M.MOB = [TFmob doubleValue];
+    LC[cil].S_M.LIM = [TFlim doubleValue];
+    
+    LC[cil].S_M.cSupply = [TFcSupply intValue];
+    LC[cil].S_M.cFood = [TFcFood intValue];
+    LC[cil].S_M.cMoney = [TFcMoney intValue];
+    LC[cil].S_M.cWT = [TFcWT intValue];
+    
+    
+    LC[cil].S_M.size = (int)[PUPtSize indexOfSelectedItem];
+    LC[cil].S_M.typeMOVE = (int)[PUPtMove indexOfSelectedItem];
+    
+    LC[cil].img = [[IVimg image] retain];
+    LC[cil].imgb = [[IVimgb image] retain];
+
+    [loadChipListAC setValue:[NSString stringWithFormat:@"%@", LC[cil].name] forKeyPath:@"selection.name"];
+    [loadChipListAC setValue:[NSString stringWithFormat:@"%g", LC[cil].S_M.HP] forKeyPath:@"selection.HP"];
+    [loadChipListAC setValue:LC[cil].img forKeyPath:@"selection.img"];
+    [loadChipListAC setValue:LC[cil].imgb forKeyPath:@"selection.imgb"];
+    
+    
+    [self saveData];
+    
+    [LCLDetailPanel close];
+}
+
+-(IBAction)cancelLCL:(id)sender{
+    [LCLDetailPanel close];
+}
+
+-(IBAction)registLCL:(id)sender{
+    
+    [TFchipNumb setIntValue:(int)chipNumb];
+    LCN = (int)chipNumb;
+    LoadChipMax = (int)chipNumb/25 + 1;
+    [LCLRegisterPanel makeKeyAndOrderFront:nil];
+}
+
+-(IBAction)registSaveLCL:(id)sender{
+    chipNumb = [TFchipNumb intValue];
+    [self savePresetLoadNumber];
+    LCN = (int)chipNumb;
+    LoadChipMax = (int)chipNumb/25 + 1;
+    [self initLoadChipList];
+    [LCLRegisterPanel close];
+}
+
+-(void)savePresetLoadNumber{
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    NSString *path = @"data/LoadChip/preset.txt";
+    
+    NSString *data = [NSString stringWithFormat:@"%d", (int)chipNumb];
+    
+    [data writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
+    
+}
+
+-(IBAction)registCancelLCL:(id)sender{
+    [LCLRegisterPanel close];
+}
+
+@end
diff --git a/Awars III/MapChipList.h b/Awars III/MapChipList.h
new file mode 100755 (executable)
index 0000000..1667347
--- /dev/null
@@ -0,0 +1,67 @@
+//
+//  MapChipList.h
+//  Awars III
+//
+//  Created by Killery on 2012/12/15.
+//  Copyright (c) 2012年 Killery. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "MapEditor.h"
+
+typedef struct _MAPCHIP{
+
+    NSString *name;
+    int dmgfix;
+    int riku;
+    int umi;
+    int chu;
+    int sora;
+    int type;
+    
+    NSString *iName;
+    NSImage *img;
+
+
+}MAPCHIP;
+
+MAPCHIP MC[128];
+
+@interface MapChipList : NSObject <NSTableViewDelegate>
+{
+    NSTimer *MCLtime;
+    IBOutlet NSPanel* MCLPanel;
+    IBOutlet NSPanel* MCLDetailPanel;
+    IBOutlet NSPanel* MCLregistPanel;
+    NSPoint MCLDpoint;
+    
+    IBOutlet NSTextField* TFchipNumb;
+    
+    NSMutableArray *mapChipListMA;
+    IBOutlet NSArrayController *mapChipListAC;
+    IBOutlet NSTableView *mapChipListTV;
+    
+    NSArray *fileDataArray;
+    NSInteger chipNumb;
+    
+    IBOutlet NSTextField *TFname;
+    IBOutlet NSTextField *TFfix;
+    IBOutlet NSTextField *TFriku;
+    IBOutlet NSTextField *TFumi;
+    IBOutlet NSTextField *TFchu;
+    IBOutlet NSTextField *TFsora;
+    IBOutlet NSPopUpButton *TFtype;
+    IBOutlet NSImageView *IVimg;
+    
+}
+-(IBAction)submitMCL:(id)sender;
+- (NSMutableArray*)mapChipListMA;
+
+-(IBAction)saveMCL:(id)sender;
+-(IBAction)cancelMCL:(id)sender;
+
+-(IBAction)registMCL:(id)sender;
+-(IBAction)registSaveMCL:(id)sender;
+-(IBAction)registCancelMCL:(id)sender;
+
+@end
diff --git a/Awars III/MapChipList.m b/Awars III/MapChipList.m
new file mode 100755 (executable)
index 0000000..0a77b53
--- /dev/null
@@ -0,0 +1,350 @@
+//
+//  MapChipList.m
+//  Awars III
+//
+//  Created by Killery on 2012/12/15.
+//  Copyright (c) 2012年 Killery. All rights reserved.
+//
+
+#import "MapChipList.h"
+
+@implementation MapChipList
+- (void)dealloc
+{
+    [super dealloc];
+}
+
+- (NSMutableArray*)mapChipListMA{
+    return mapChipListMA;
+}
+-(IBAction)submitMCL:(id)sender{
+    [MCLPanel close];
+}
+-(void)awakeFromNib{
+    
+    [mapChipListTV setTarget:self];
+    [mapChipListTV setDoubleAction:@selector(doubleClickMCL:)];
+}
+-(id)init{
+    [super init];
+    
+    if (self) {
+        MCLtime  = [NSTimer
+                 scheduledTimerWithTimeInterval:0.05f
+                 target:self
+                 selector:@selector(EventLoopMCL:)
+                 userInfo:nil
+                 repeats:YES
+                 ];
+        [self initFileDirectory];
+        [self initMapChipList];
+        MapChipMax = (int)chipNumb/25+1;
+    }
+
+    return self;
+}
+
+-(void)EventLoopMCL:(NSTimer*)time{
+
+}
+NSInteger clickIndex;
+-(void)doubleClickMCL:(id)sender{
+    clickIndex = [mapChipListTV clickedRow];
+    if( clickIndex>=0 ){
+        
+        [TFname setStringValue:MC[clickIndex].name];
+        [TFfix setIntValue:MC[clickIndex].dmgfix];
+        [TFriku setIntValue:MC[clickIndex].riku];
+        [TFumi setIntValue:MC[clickIndex].umi];
+        [TFchu setIntValue:MC[clickIndex].chu];
+        [TFsora setIntValue:MC[clickIndex].sora];
+        [TFtype selectItemAtIndex:MC[clickIndex].type];
+        [MC[clickIndex].img setFlipped:NO];
+        [IVimg setImage:MC[clickIndex].img];
+    }
+    
+    MCLDpoint.x = [MCLPanel frame].origin.x + 100;
+    MCLDpoint.y = [MCLPanel frame].origin.y + 200;
+    [MCLDetailPanel setFrameOrigin:MCLDpoint];
+     [MCLDetailPanel makeKeyAndOrderFront:nil];
+}
+
+-(IBAction)saveMCL:(id)sender{
+    MC[clickIndex].name = [[TFname stringValue] retain];
+    MC[clickIndex].dmgfix = [TFfix intValue];
+    MC[clickIndex].riku = [TFriku intValue];
+    MC[clickIndex].umi = [TFumi intValue];
+    MC[clickIndex].chu = [TFchu intValue];
+    MC[clickIndex].sora = [TFsora intValue];
+    MC[clickIndex].type = (int)[TFtype indexOfSelectedItem];
+    MC[clickIndex].img = [[IVimg image] retain];
+    
+    
+    [mapChipListAC setValue:MC[clickIndex].img forKeyPath:@"selection.img"];
+    [mapChipListAC setValue:[NSString stringWithFormat:@"%@", MC[clickIndex].name] forKeyPath:@"selection.name"];
+    [mapChipListAC setValue:[NSString stringWithFormat:@"%d", MC[clickIndex].dmgfix] forKeyPath:@"selection.dmgfix"];
+    [mapChipListAC setValue:[NSString stringWithFormat:@"%d", MC[clickIndex].riku] forKeyPath:@"selection.riku"];
+    [mapChipListAC setValue:[NSString stringWithFormat:@"%d", MC[clickIndex].umi] forKeyPath:@"selection.umi"];
+    [mapChipListAC setValue:[NSString stringWithFormat:@"%d", MC[clickIndex].chu] forKeyPath:@"selection.chu"];
+    [mapChipListAC setValue:[NSString stringWithFormat:@"%d", MC[clickIndex].sora] forKeyPath:@"selection.sora"];
+    switch (MC[clickIndex].type) {
+        case 0:
+            [mapChipListAC setValue:[NSString stringWithFormat:@"安定な地形(建物建設可)"] forKeyPath:@"selection.memo"];
+            break;
+        case 1:
+            [mapChipListAC setValue:[NSString stringWithFormat:@"不安定な地形(建物建設不可)"] forKeyPath:@"selection.memo"];
+            break;
+        case 2:
+            [mapChipListAC setValue:[NSString stringWithFormat:@"山竹林(資源回収可)"] forKeyPath:@"selection.memo"];
+            break;
+        case 3:
+            [mapChipListAC setValue:[NSString stringWithFormat:@"水場(炎無効化)"] forKeyPath:@"selection.memo"];
+            break;
+        case 4:
+            [mapChipListAC setValue:[NSString stringWithFormat:@"浅瀬(造船可)"] forKeyPath:@"selection.memo"];
+            break;
+        case 5:
+            [mapChipListAC setValue:[NSString stringWithFormat:@"建物内部(建設不可)"] forKeyPath:@"selection.memo"];
+            break;
+            
+        default:
+            break;
+    }
+
+    [self saveData];
+    [MCLDetailPanel close];
+}
+-(IBAction)cancelMCL:(id)sender{
+    [MCLDetailPanel close];
+}
+
+-(void)initFileDirectory{
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    char *cwd;
+    cwd = getcwd(NULL, 0);
+    
+    
+    NSData *InitialData = [NSData dataWithContentsOfFile:@"data/MapChip/preset.txt"];
+    NSString *pathMC = @"data/MapChip/img";
+    NSString *pathBC = @"data/BuildChip/img";
+    NSString *pathUC = @"data/UnitChip/img";
+    NSString *pathDATA = @"data/MapChip/preset.txt";
+    NSString *pathMCP = @"data/MapChip/preset.txt";
+    NSString *fileData = nil;
+    if(!InitialData){
+        
+        [[NSFileManager defaultManager] createDirectoryAtPath:pathMC withIntermediateDirectories:YES attributes:nil error:nil];
+        [[NSFileManager defaultManager] createDirectoryAtPath:pathBC withIntermediateDirectories:YES attributes:nil error:nil];
+        [[NSFileManager defaultManager] createDirectoryAtPath:pathUC withIntermediateDirectories:YES attributes:nil error:nil];
+        [[NSFileManager defaultManager] createFileAtPath:pathDATA contents:nil attributes:nil];
+        
+        [[NSFileManager defaultManager] createFileAtPath:pathMCP contents:nil attributes:nil];
+        
+        NSString *data1 = @"草原,20,3,3,3,3,mc1.png,0";
+        NSString *data2 = @"荒野,15,3,3,3,3,mc2.png,0";
+        NSString *data3 = @"砂地,10,4,4,3,3,mc3.png,0";
+        NSString *data4 = @"道,20,2,2,3,3,mc4.png,0";
+        NSString *data5 = @"道路,20,2,2,3,3,mc5.png,0";
+        NSString *data6 = @"林,30,4,4,3,3,mc6.png,2";
+        NSString *data7 = @"森,40,5,5,3,3,mc7.png,2";
+        NSString *data8 = @"山,50,6,6,3,3,mc8.png,2";
+        NSString *data9 = @"高山,60,0,0,0,3,mc9.png,2";
+        NSString *data10 = @"橋,20,3,3,3,3,mc10.png,0";
+        NSString *data11 = @"川,10,7,3,3,3,mc11.png,3";
+        NSString *data12 = @"池,10,8,3,3,3,mc12.png,3";
+        NSString *data13 = @"湖,20,9,3,3,3,mc13.png,3";
+        NSString *data14 = @"沼,10,6,3,3,3,mc14.png,1";
+        NSString *data15 = @"浅瀬,10,6,3,3,3,mc15.png,4";
+        NSString *data16 = @"深海,60,0,2,3,3,mc16.png,3";
+        NSString *data17 = @"床,20,3,3,4,4,mc17.png,5";
+        NSString *data18 = @"壁,70,0,0,0,0,mc18.png,1";
+        NSString *data19 = @"穴,0,0,0,3,3,mc19.png,1";
+        NSString *data20 = @"宇宙,20,3,3,3,3,mc20.png,1";
+        NSString *data21 = @"暗礁,40,6,6,6,6,mc21.png,1";
+        NSString *data22 = @"クレーター,10,5,5,3,3,mc22.png,1";
+        
+        fileData = [[data1 stringByAppendingString:@"\n"] stringByAppendingString:data2];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data3];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data4];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data5];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data6];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data7];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data8];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data9];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data10];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data11];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data12];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data13];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data14];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data15];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data16];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data17];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data18];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data19];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data20];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data21];
+        fileData = [[fileData stringByAppendingString:@"\n"] stringByAppendingString:data22];
+        
+        [fileData writeToFile:pathDATA atomically:YES encoding:NSUTF8StringEncoding error:nil];
+    }
+    
+        fileData = [NSString stringWithContentsOfFile:pathDATA encoding:NSUTF8StringEncoding error:nil];
+        fileDataArray = [fileData componentsSeparatedByString:@"\n"];
+    
+        chipNumb = [fileDataArray count];
+        for(int i=0;i < [fileDataArray count];i++){
+            NSArray *items = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
+            
+            MC[i].name = [[items objectAtIndex:0] retain];
+            MC[i].dmgfix = [[items objectAtIndex:1] intValue];
+            MC[i].riku = [[items objectAtIndex:2] intValue];
+            MC[i].umi = [[items objectAtIndex:3] intValue];
+            MC[i].chu = [[items objectAtIndex:4] intValue];
+            MC[i].sora = [[items objectAtIndex:5] intValue];
+            MC[i].iName = [[items objectAtIndex:6] retain];
+            MC[i].type = [[items objectAtIndex:7] intValue];
+            
+            NSString *imgName = @"mc";
+            imgName = [imgName stringByAppendingFormat:@"%d", i+1];
+            MC[i].img = [[NSImage imageNamed:imgName] retain];
+            [MC[i].img setFlipped:NO];
+            
+            NSString *imagePath = @"data/MapChip/img/";
+            imagePath = [imagePath stringByAppendingString:MC[i].iName];
+            
+            NSData *imgData = [NSData dataWithContentsOfFile:imagePath];
+            
+            if(imgData)
+            MC[i].img = [[[NSImage alloc] initWithData:[[NSFileHandle fileHandleForReadingAtPath:imagePath] readDataToEndOfFile]] retain];
+            
+            
+        }
+        
+        
+    
+}
+
+-(void)initMapChipList{
+    mapChipListMA = [NSMutableArray new];
+
+    for(int i = 0;i < chipNumb;i++){
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+        if(MC[i].name == NULL) MC[i].name = @"新規チップ";
+        
+        NSString *imgName = @"mc";
+        imgName = [imgName stringByAppendingFormat:@"%d", i+1];
+        MC[i].iName = [imgName retain];
+        MC[i].img = [[NSImage imageNamed:imgName] retain];
+        
+        NSString *imagePath = @"data/MapChip/img/mc";
+        imagePath = [imagePath stringByAppendingFormat:@"%d", i+1];
+        NSData *imgData = [NSData dataWithContentsOfFile:imagePath];
+        
+        if(imgData)
+            MC[i].img = [[NSImage alloc] initWithData:[[NSFileHandle fileHandleForReadingAtPath:imagePath] readDataToEndOfFile]];
+        
+        [dict setValue:MC[i].img forKey:@"img"];
+        [dict setValue:[NSString stringWithFormat:@"%@", MC[i].name] forKey:@"name"];
+        [dict setValue:[NSString stringWithFormat:@"%d", MC[i].dmgfix] forKey:@"dmgfix"];
+        [dict setValue:[NSString stringWithFormat:@"%d", MC[i].riku] forKey:@"riku"];
+        [dict setValue:[NSString stringWithFormat:@"%d", MC[i].umi] forKey:@"umi"];
+        [dict setValue:[NSString stringWithFormat:@"%d", MC[i].chu] forKey:@"chu"];
+        [dict setValue:[NSString stringWithFormat:@"%d", MC[i].sora] forKey:@"sora"];
+        
+        switch (MC[i].type) {
+            case 0:
+                [dict setValue:[NSString stringWithFormat:@"安定な地形(建物建設可)"] forKey:@"memo"];
+                break;
+            case 1:
+                [dict setValue:[NSString stringWithFormat:@"不安定な地形(建物建設不可)"] forKey:@"memo"];
+                break;
+            case 2:
+                [dict setValue:[NSString stringWithFormat:@"山竹林(資源回収可)"] forKey:@"memo"];
+                break;
+            case 3:
+                [dict setValue:[NSString stringWithFormat:@"水場(炎無効化)"] forKey:@"memo"];
+                break;
+            case 4:
+                [dict setValue:[NSString stringWithFormat:@"浅瀬(造船可)"] forKey:@"memo"];
+                break;
+            case 5:
+                [dict setValue:[NSString stringWithFormat:@"建物内部(建設不可)"] forKey:@"memo"];
+                break;
+                
+            default:
+                break;
+        }
+        
+        [self willChangeValueForKey:@"mapChipListMA"];
+        [mapChipListMA addObject:dict];
+        [self didChangeValueForKey:@"mapChipListMA"];
+    }
+
+
+}
+
+-(void)saveData{
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    char *cwd;
+    cwd = getcwd(NULL, 0);
+    
+    //NSString *pathMC = @"data/MapChip/img";
+    NSString *pathMCP = @"data/MapChip/preset.txt";
+    NSString *fileData = @"";
+    
+    for (int i = 0;i < chipNumb;i++) {
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", MC[i].name]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", MC[i].dmgfix]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", MC[i].riku]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", MC[i].umi]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", MC[i].chu]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", MC[i].sora]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", MC[i].iName]] stringByAppendingString:@","];
+        fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"%d", MC[i].type]];
+        
+        NSData *f2Data = [MC[i].img TIFFRepresentation];
+        NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:f2Data];
+        f2Data = [brep representationUsingType:NSPNGFileType properties:nil];
+        
+        NSString *bcPath = @"data/MapChip/img/mc";
+        bcPath = [bcPath stringByAppendingFormat:@"%d", i + 1];
+        
+        [f2Data writeToFile:bcPath atomically:YES];
+        
+        
+        
+        if(i != chipNumb - 1) fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"\n"]];
+
+    }
+    
+    [fileData writeToFile:pathMCP atomically:YES encoding:NSUTF8StringEncoding error:nil];
+
+}
+
+-(IBAction)registMCL:(id)sender{
+    [TFchipNumb setIntValue:(int)chipNumb];
+    [MCLregistPanel makeKeyAndOrderFront:nil];
+}
+
+-(IBAction)registSaveMCL:(id)sender{
+    chipNumb = [TFchipNumb intValue];
+    MapChipMax = (int)chipNumb/25+1;
+    [self initMapChipList];
+    [self saveData];
+    [MCLregistPanel close];
+}
+-(IBAction)registCancelMCL:(id)sender{
+    [MCLregistPanel close];
+}
+
+
+@end
diff --git a/Awars III/MapEditor.h b/Awars III/MapEditor.h
new file mode 100755 (executable)
index 0000000..2aa29d3
--- /dev/null
@@ -0,0 +1,662 @@
+//
+//  MapEditor.h
+//  Awars III
+//
+//  Created by Killery on 2012/12/06.
+//  Copyright (c) 2012年 Killery. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "ChipView.h"
+#import "SeedView.h"
+#import "MapView.h"
+
+struct _MAPSCRIPT0;
+
+typedef struct _ENDGAMECONDITION{
+    
+    int endType1;
+    int endType2;
+    
+    NSString *etValue1[64];
+    NSString *etValue2[64];
+    
+}ENDGAMECONDITION;
+typedef struct _MAPSCRIPT1{
+    //文章スクリプト
+    NSString *name;
+    NSString *str;
+    NSImage *img;
+    NSString *iName;
+    NSString *nameID;
+
+}MAPSCRIPT1;
+
+typedef struct _MAPSCRIPT2A{
+
+    struct _MAPSCRIPT2A *next;
+    
+    struct _MAPSCRIPT0 *P;
+    
+}MAPSCRIPT2A;
+
+typedef struct _MAPSCRIPT2{
+    //文章選択肢スクリプト
+    NSMutableArray *sel;
+    struct _MAPSCRIPT2A *S;
+    
+}MAPSCRIPT2;
+
+typedef struct _MAPSCRIPT0{
+    struct _MAPSCRIPT0 *next;
+    
+    int type;
+    struct _MAPSCRIPT1 S1;
+    struct _MAPSCRIPT2 S2;
+    int indent;
+    
+    int *switch1;
+    int *switch2;
+    
+    int val;
+    int valCnt;
+    
+    int timerMin;
+    int timerSec;
+    int timerEntire;
+    bool timerFlag;
+    bool timerVisible;
+    bool timerRun;
+    bool timerMode;
+    
+    UNITCHIP U;
+    int unitAction;
+    
+    bool endFlag;
+    
+}MAPSCRIPT0;
+
+typedef struct _MAPSCRIPTD{
+
+    struct _MAPSCRIPTD *next;
+    int index;
+    int x;
+    int y;
+    int type;
+    bool endFlag;
+    
+    int *switch1;
+    int *switch2;
+    bool switch1f;
+    bool switch2f;
+    struct _MAPSCRIPT0 *P;
+    NSMutableArray *SCRPT;
+    
+}MAPSCRIPTD;
+
+typedef struct _MAPSCRIPT{
+    
+    ENDGAMECONDITION EGClight;
+    ENDGAMECONDITION EGCdark;
+    
+    int playerSet1;
+    int playerSet2;
+    bool battleSetMode;
+    
+    NSMutableArray *SCRPTname;
+    struct _MAPSCRIPTD *D;
+    
+}MAPSCRIPT;
+
+typedef struct _MAPFILE{
+
+    NSString *fileName;
+
+    MAPSCRIPT MS;
+
+}MAPFILE;
+
+typedef struct _EVENTIMAGE{
+
+    struct _EVENTIMAGE *next;
+    
+    NSString *name;
+    
+    NSImage *img;
+
+}EVENTIMAGE;
+
+bool loadChipSideFlag;
+
+MAPFILE MF[512];
+ENDGAMECONDITION EGC[2];
+EVENTIMAGE *EIMG;
+EVENTIMAGE *EIMGtop;
+NSString *CEIMG;
+int EIMGN;
+
+int MapChipMax;
+int BuildChipMax;
+int UnitChipMax;
+int LoadChipMax;
+
+int MapChipListIndex;
+int BuildChipListIndex;
+int UnitChipListIndex;
+int LoadChipListIndex;
+
+bool saveMapChipFlag;
+bool loadMapChipFlag;
+bool mapSizeChangedFlag;
+bool initMapChipNumbFlag;
+bool loadMapListSubmitFlag;
+bool saveMapListSubmitFlag;
+
+int postHeight;
+int postWidth;
+
+int MFselectedRow;
+NSString *saveMapDataName;
+
+
+bool EEGCslctFlag;
+bool EEGCslctFlag2;
+int EEGCslctCnt;
+int etValueCnt;
+
+int EDtextImageRow;
+
+int EEGC1row;
+int EEGC2row;
+
+int eventListRow;
+
+bool eventPosFlag;
+
+NSInteger ELrow;
+NSInteger EDrow;
+int squareCnt;
+bool editFlag;
+bool insertFlag;
+
+NSInteger EDselRow;
+
+bool mapLoadFlagForMSD;
+bool mapLoadFlagForMSD2;
+MAPSCRIPTD *MSDTOPP;//一番もとの先頭
+MAPSCRIPTD *MSDTOP;//一番先頭
+MAPSCRIPTD *msdtop;//スクリプト上の先頭
+
+bool Suicchi[9999];
+bool SuicchiONOFFsentakuflag;
+bool SuicchiSentakuflag;
+int Hensuu[9999];
+
+bool suicchiDBLslickFlag;
+bool timerDBLslickFlag;
+
+int *ichijihensuS1;
+
+bool EDproceedFlag;
+
+bool EQmodeFlag;
+
+bool battleSetMode;
+int playerSet1;
+int playerSet2;
+NSRect scCenter;
+NSInteger headerFrame;
+
+bool fuckingRetardedBtnPushed1;
+@interface MapEditor : NSObject
+{
+    NSTimer *time0;
+    
+    IBOutlet NSImageView *topIV;
+    IBOutlet NSTextField *topName;
+    IBOutlet NSTextField *topHealth;
+    
+    IBOutlet NSButtonCell *EDSWON;
+    IBOutlet NSButtonCell *EDSWOFF;
+    IBOutlet NSTextField *EDSWTF;
+    IBOutlet NSWindow *EDSwitchWindow2;
+    
+    
+    IBOutlet NSTextField *TFcurrentChipIndex;
+    
+    IBOutlet NSPanel *PMCL;
+    IBOutlet NSPanel *PBCL;
+    IBOutlet NSPanel *PUCL;
+    IBOutlet NSPanel *PLCL;
+    
+    IBOutlet NSWindow *MapEditorWindow;
+    NSPoint windowPoint;
+    
+    IBOutlet NSWindow *TitleWindow;
+    
+    IBOutlet NSPanel *mapSizeWindow;
+    IBOutlet NSTextField *mapSizeHeight;
+    IBOutlet NSTextField *mapSizeWidth;
+    
+    
+    IBOutlet NSPanel *loadMapWindow;
+    NSMutableArray *loadMapListMA;
+    IBOutlet NSArrayController *loadMapListAC;
+    IBOutlet NSTableView *loadMapListTV;
+    
+    IBOutlet NSPanel *saveMapWindow;
+    NSMutableArray *saveMapListMA;
+    IBOutlet NSArrayController *saveMapListAC;
+    IBOutlet NSTableView *saveMapListTV;
+    IBOutlet NSTextField *saveMapTF;
+    
+    
+    int fileNumb;
+    
+    
+    IBOutlet NSWindow *eventWindow;
+    NSMutableArray *eventListMA;
+    IBOutlet NSArrayController *eventListAC;
+    IBOutlet NSTableView *eventListTV;
+    
+    IBOutlet NSButton *eventCheckBtn;
+    IBOutlet NSPopUpButton *eventPopupBtn;
+    NSMutableArray *eventPosMA;
+    IBOutlet NSArrayController *eventPosAC;
+    IBOutlet NSTableView *eventPosTV;
+    
+    IBOutlet NSPopUpButton *eventPlayerSetPUB1;
+    IBOutlet NSPopUpButton *eventPlayerSetPUB2;
+    IBOutlet NSButton *eventBattleDetailBtn;
+    
+    
+    IBOutlet NSWindow *eventEndGameCondition;
+    IBOutlet NSPopUpButton *EPUB1;
+    IBOutlet NSPopUpButton *EPUB2;
+    NSMutableArray *EEGC1MA;
+    IBOutlet NSArrayController *EEGC1AC;
+    IBOutlet NSTableView *EEGC1TV;
+    NSMutableArray *EEGC2MA;
+    IBOutlet NSArrayController *EEGC2AC;
+    IBOutlet NSTableView *EEGC2TV;
+    
+    IBOutlet NSTextField *EEGCstr;
+    
+    NSMutableArray *EEGC01MA;
+    IBOutlet NSArrayController *EEGC01AC;
+    IBOutlet NSTableView *EEGC01TV;
+    IBOutlet NSTextField *EEGC01str;
+    IBOutlet NSTextField *EEGC012str;
+    
+    NSMutableArray *EEGC02MA;
+    IBOutlet NSArrayController *EEGC02AC;
+    IBOutlet NSTableView *EEGC02TV;
+    IBOutlet NSTextField *EEGC02str;
+    IBOutlet NSTextField *EEGC022str;
+    
+    short EEGCflag;
+    
+    IBOutlet NSWindow *eventDetailWindow;
+    NSMutableArray *eventDetailListMA;
+    IBOutlet NSArrayController *eventDetailListAC;
+    IBOutlet NSTableView *eventDetailListTV;
+    
+    NSMutableArray *EDswitch1MA;
+    IBOutlet NSArrayController *EDswitch1AC;
+    IBOutlet NSTableView *EDswitch1TV;
+    
+    NSMutableArray *EDswitch2MA;
+    IBOutlet NSArrayController *EDswitch2AC;
+    IBOutlet NSTableView *EDswitch2TV;
+    
+    NSMutableArray *EDvariableMA;
+    IBOutlet NSArrayController *EDvariableAC;
+    IBOutlet NSTableView *EDvariableTV;
+    IBOutlet NSTextField *EDvariableTF;
+    
+    IBOutlet NSPopUpButton *EDitemPUB;
+    IBOutlet NSPopUpButton *EDunitPUB;
+    
+    IBOutlet NSTextField *EDnameTF;
+    IBOutlet NSButton *EDswitch1Btn;
+    IBOutlet NSButton *EDswitch2Btn;
+    IBOutlet NSButton *EDvariableBtn;
+    IBOutlet NSButton *EDitemBtn;
+    IBOutlet NSButton *EDunitBtn;
+    
+    IBOutlet NSWindow *eventDetailSelectionWindow;
+    
+    IBOutlet NSWindow *EDtextWindow;
+    IBOutlet NSTextField *EDtextName;
+    IBOutlet NSTextField *EDtextString;
+    IBOutlet NSImageView *EDtextImage;
+    
+    IBOutlet NSWindow *EDtextImageWindow;
+    NSMutableArray *EDtextImageMA;
+    IBOutlet NSArrayController *EDtextImageAC;
+    IBOutlet NSTableView *EDtextImageTV;
+    IBOutlet NSButtonCell *EDtextImageButton1;
+    IBOutlet NSButtonCell *EDtextImageButton2;
+    IBOutlet NSButtonCell *EDtextImageButton3;
+    NSInteger EDtextImageButtonValue;
+    
+    IBOutlet NSWindow *EDselectionWindow;
+    NSMutableArray *EDselectionMA;
+    IBOutlet NSArrayController *EDselectionAC;
+    IBOutlet NSTableView *EDselectionTV;
+    bool EDselectionEditing;
+    
+    IBOutlet NSWindow *EDvalueWindow;
+    NSMutableArray *EDvalueMA;
+    IBOutlet NSArrayController *EDvalueAC;
+    IBOutlet NSTableView *EDvalueTV;
+    
+    IBOutlet NSWindow *EDswitchWindow;
+    IBOutlet NSTextField *EDswitchTF;
+    
+    IBOutlet NSWindow *EDvarWindow;
+    NSMutableArray *EDvarMA;
+    IBOutlet NSArrayController *EDvarAC;
+    IBOutlet NSTableView *EDvarTV;
+    IBOutlet NSTextField *EDvarTF1;
+    IBOutlet NSTextField *EDvarTF2;
+    IBOutlet NSButtonCell *EDvarButtonT;
+    IBOutlet NSButtonCell *EDvarButtonI;
+    IBOutlet NSButtonCell *EDvarButton1;
+    IBOutlet NSButtonCell *EDvarButton2;
+    IBOutlet NSButtonCell *EDvarButton3;
+    IBOutlet NSButtonCell *EDvarButton4;
+    IBOutlet NSButtonCell *EDvarButton5;
+    IBOutlet NSButtonCell *EDvarButton6;
+    IBOutlet NSButtonCell *EDvarButtonA;
+    IBOutlet NSButtonCell *EDvarButtonB;
+    IBOutlet NSButtonCell *EDvarButtonC;
+    IBOutlet NSButtonCell *EDvarButtonD;
+    IBOutlet NSButtonCell *EDvarButtonE;
+    IBOutlet NSButtonCell *EDvarButtonF;
+    IBOutlet NSButtonCell *EDvarButtonG;
+    IBOutlet NSTextField *EDvarTeisu;
+    NSMutableArray *EDvarHensuMA;
+    IBOutlet NSArrayController *EDvarHensuAC;
+    IBOutlet NSTableView *EDvarHensuTV;
+    IBOutlet NSTextField *EDvarRansu1;
+    IBOutlet NSTextField *EDvarRansu2;
+    IBOutlet NSPopUpButton *EDvarItem;
+    IBOutlet NSPopUpButton *EDvarUnit1;
+    IBOutlet NSPopUpButton *EDvarUnit2;
+    IBOutlet NSPopUpButton *EDvarEtc;
+
+    IBOutlet NSWindow *EDtimerWindow;
+    IBOutlet NSButtonCell *EDtimerButton1;
+    IBOutlet NSButtonCell *EDtimerButton2;
+    IBOutlet NSTextField *EDtimerTF1;
+    IBOutlet NSTextField *EDtimerTF2;
+    
+    IBOutlet NSWindow *EDtermsWindow;
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    IBOutlet NSWindow *EDlabelWindow;
+    IBOutlet NSTextField *EDlabelTF;
+    
+    IBOutlet NSWindow *EDlabelJumpWindow;
+    IBOutlet NSTextField *EDlabelJumpTF;
+    
+    IBOutlet NSWindow *EDmemoWindow;
+    IBOutlet NSTextField *EDmemoTF;
+    
+    IBOutlet NSWindow *EDresourceWindow;
+    IBOutlet NSButton *EDresourceBtn1;
+    IBOutlet NSButton *EDresourceBtn2;
+    IBOutlet NSButton *EDresourceBtn3;
+    IBOutlet NSButtonCell *EDresourceButton1;
+    IBOutlet NSButtonCell *EDresourceButton2;
+    IBOutlet NSButtonCell *EDresourceButtonA;
+    IBOutlet NSButtonCell *EDresourceButtonB;
+    IBOutlet NSTextField *EDresourceTF;
+    NSMutableArray *EDresourceMA;
+    IBOutlet NSArrayController *EDresourceAC;
+    IBOutlet NSTableView *EDresourceTV;
+    
+    
+    IBOutlet NSWindow *EDitemWindow;
+    
+    
+    
+    
+    
+    
+    IBOutlet NSWindow *EDmemberWindow;
+    
+    
+    
+    
+    
+    
+    IBOutlet NSWindow *EDhpWindow;
+    IBOutlet NSButtonCell *EDhpButton1;
+    IBOutlet NSButtonCell *EDhpButton2;
+    IBOutlet NSButtonCell *EDhpButtonA;
+    IBOutlet NSButtonCell *EDhpButtonB;
+    IBOutlet NSTextField *EDhpTF;
+    NSMutableArray *EDhp1MA;
+    IBOutlet NSArrayController *EDhp1AC;
+    IBOutlet NSTableView *EDhp1TV;
+    NSMutableArray *EDhp2MA;
+    IBOutlet NSArrayController *EDhp2AC;
+    IBOutlet NSTableView *EDhp2TV;
+    
+    IBOutlet NSWindow *EDmpWindow;
+    IBOutlet NSButtonCell *EDmpButton1;
+    IBOutlet NSButtonCell *EDmpButton2;
+    IBOutlet NSButtonCell *EDmpButtonA;
+    IBOutlet NSButtonCell *EDmpButtonB;
+    IBOutlet NSTextField *EDmpTF;
+    NSMutableArray *EDmp1MA;
+    IBOutlet NSArrayController *EDmp1AC;
+    IBOutlet NSTableView *EDmp1TV;
+    NSMutableArray *EDmp2MA;
+    IBOutlet NSArrayController *EDmp2AC;
+    IBOutlet NSTableView *EDmp2TV;
+    
+    IBOutlet NSWindow *EDstatus;
+    IBOutlet NSPopUpButton *EDstpubA;
+    IBOutlet NSButtonCell *EDstButtonA11;
+    IBOutlet NSButtonCell *EDstButtonA12;
+    IBOutlet NSButtonCell *EDstButtonA13;
+    IBOutlet NSButtonCell *EDstButtonA21;
+    IBOutlet NSButtonCell *EDstButtonA22;
+    IBOutlet NSTextField *EDstTFA;
+    NSMutableArray *EDstA1MA;
+    IBOutlet NSArrayController *EDstA1AC;
+    IBOutlet NSTableView *EDstA1TV;
+    NSMutableArray *EDstA2MA;
+    IBOutlet NSArrayController *EDstA2AC;
+    IBOutlet NSTableView *EDstA2TV;
+    
+    IBOutlet NSPopUpButton *EDstpubB;
+    IBOutlet NSButtonCell *EDstButtonB11;
+    IBOutlet NSButtonCell *EDstButtonB12;
+    IBOutlet NSButtonCell *EDstButtonB13;
+    IBOutlet NSButtonCell *EDstButtonB21;
+    IBOutlet NSButtonCell *EDstButtonB22;
+    IBOutlet NSTextField *EDstTFB;
+    NSMutableArray *EDstB1MA;
+    IBOutlet NSArrayController *EDstB1AC;
+    IBOutlet NSTableView *EDstB1TV;
+    NSMutableArray *EDstB2MA;
+    IBOutlet NSArrayController *EDstB2AC;
+    IBOutlet NSTableView *EDstB2TV;
+    
+    IBOutlet NSButtonCell *EDTimerSet1A;
+    IBOutlet NSButtonCell *EDTimerSet1B;
+    IBOutlet NSButtonCell *EDTimerSet2A;
+    IBOutlet NSButtonCell *EDTimerSet2B;
+    IBOutlet NSButtonCell *EDTimerSet3A;
+    IBOutlet NSButtonCell *EDTimerSet3B;
+    IBOutlet NSTextField *EDTimerTF1;
+    IBOutlet NSTextField *EDTimerTF2;
+    
+}
+
+-(IBAction)EDSWOKbtn:(id)sender;
+-(IBAction)EDSWCancelbtn:(id)sender;
+
+-(IBAction)backTitle:(id)sender;
+
+-(IBAction)backTitle:(id)sender;
+-(IBAction)saveMap:(id)sender;
+-(IBAction)loadMap:(id)sender;
+-(IBAction)mapSize:(id)sender;
+-(IBAction)setEvent:(id)sender;
+
+-(IBAction)mapSizeSubmit:(id)sender;
+-(IBAction)mapSizeCancel:(id)sender;
+
+-(IBAction)loadMapSubmit:(id)sender;
+-(IBAction)loadMapCancel:(id)sender;
+
+-(IBAction)saveMapSubmit:(id)sender;
+-(IBAction)saveMapCancel:(id)sender;
+
+-(IBAction)previous:(id)sender;
+-(IBAction)next:(id)sender;
+
+-(IBAction)eventInsert:(id)sender;
+-(IBAction)eventDelete:(id)sender;
+-(IBAction)eventSubmit:(id)sender;
+
+-(IBAction)EEGClight:(id)sender;
+-(IBAction)EEGCdark:(id)sender;
+-(IBAction)EEGC1insert:(id)sender;
+-(IBAction)EEGC1delete:(id)sender;
+-(IBAction)EEGC2insert:(id)sender;
+-(IBAction)EEGC2delete:(id)sender;
+-(IBAction)EEGCsubmit:(id)sender;
+-(IBAction)EEGCcancel:(id)sender;
+-(IBAction)EEGC1select:(id)sender;
+-(IBAction)EEGC2select:(id)sender;
+
+
+-(IBAction)eventCheckBtn:(id)sender;
+-(IBAction)eventPopupBtn:(id)sender;
+
+-(IBAction)EDclose:(id)sender;
+-(IBAction)EDinsert:(id)sender;
+-(IBAction)EDdelete:(id)sender;
+
+-(IBAction)EDtext:(id)sender;
+-(IBAction)EDselection:(id)sender;
+-(IBAction)EDvalue:(id)sender;
+
+-(IBAction)EDswitch:(id)sender;
+-(IBAction)EDvariable:(id)sender;
+-(IBAction)EDtimer:(id)sender;
+
+-(IBAction)EDterms:(id)sender;
+-(IBAction)EDlabel:(id)sender;
+-(IBAction)EDlabelJump:(id)sender;
+-(IBAction)EDmemo:(id)sender;
+
+-(IBAction)EDresource:(id)sender;
+-(IBAction)EDitem:(id)sender;
+-(IBAction)EDmember:(id)sender;
+
+-(IBAction)EDhp:(id)sender;
+-(IBAction)EDmp:(id)sender;
+-(IBAction)EDstatus:(id)sender;
+-(IBAction)EDstate:(id)sender;
+-(IBAction)EDskill:(id)sender;
+-(IBAction)EDname:(id)sender;
+-(IBAction)EDequip:(id)sender;
+-(IBAction)EDattackFlagOn:(id)sender;
+
+-(IBAction)EDmove:(id)sender;
+-(IBAction)EDappear:(id)sender;
+-(IBAction)EDdissapear:(id)sender;
+
+-(IBAction)EDplace:(id)sender;
+-(IBAction)EDwait:(id)sender;
+-(IBAction)EDpilot:(id)sender;
+-(IBAction)EDunit:(id)sender;
+-(IBAction)EDbgm:(id)sender;
+-(IBAction)EDbgmFadeOut:(id)sender;
+-(IBAction)EDse:(id)sender;
+-(IBAction)EDseStop:(id)sender;
+
+-(IBAction)EDbattle:(id)sender;
+-(IBAction)EDshop:(id)sender;
+-(IBAction)EDnameInput:(id)sender;
+
+-(IBAction)EDgameOver:(id)sender;
+-(IBAction)EDstageClear:(id)sender;
+-(IBAction)EDtitle:(id)sender;
+
+-(IBAction)EDcancel:(id)sender;
+
+-(IBAction)EDtextSubmit:(id)sender;
+-(IBAction)EDtextCancel:(id)sender;
+-(IBAction)EDtextImageSlct:(id)sender;
+
+-(IBAction)EDtextImageSubmit:(id)sender;
+-(IBAction)EDtextImageCancel:(id)sender;
+-(IBAction)EDtextImageButton:(id)sender;
+
+-(IBAction)EDselectionAdd:(id)sender;
+-(IBAction)EDselectionDelete:(id)sender;
+-(IBAction)EDselectionSubmit:(id)sender;
+-(IBAction)EDselectionCancel:(id)sender;
+
+-(IBAction)EDvalueSubmit:(id)sender;
+-(IBAction)EDvalueCancel:(id)sender;
+
+-(IBAction)EDswitchSubmit:(id)sender;
+-(IBAction)EDswitchCancel:(id)sender;
+
+-(IBAction)EDvariableSubmit:(id)sender;
+-(IBAction)EDvariableCancel:(id)sender;
+
+-(IBAction)EDtimerSubmit:(id)sender;
+-(IBAction)EDtimerCancel:(id)sender;
+
+-(IBAction)EDtermsSubmit:(id)sender;
+-(IBAction)EDtermsCancel:(id)sender;
+
+-(IBAction)EDlabelSubmit:(id)sender;
+-(IBAction)EDlabelCancel:(id)sender;
+
+-(IBAction)EDlabelJumpSubmit:(id)sender;
+-(IBAction)EDlabelJumpCancel:(id)sender;
+
+-(IBAction)EDmemoSubmit:(id)sender;
+-(IBAction)EDmemoCancel:(id)sender;
+
+-(IBAction)EDresourceSubmit:(id)sender;
+-(IBAction)EDresourceCancel:(id)sender;
+
+-(IBAction)EDhpSubmit:(id)sender;
+-(IBAction)EDhpCancel:(id)sender;
+
+-(IBAction)EDmpSubmit:(id)sender;
+-(IBAction)EDmpCancel:(id)sender;
+
+-(IBAction)EDstatusSubmit:(id)sender;
+-(IBAction)EDstatusCancel:(id)sender;
+
+-(IBAction)setBattleModeBtn:(id)sender;
+-(IBAction)playerSetBtn1:(id)sender;
+-(IBAction)playerSetBtn2:(id)sender;
+
+-(IBAction)EDTimerSetBtn1:(id)sender;
+-(IBAction)EDTimerSetBtn2:(id)sender;
+-(IBAction)EDTimerSetBtn3:(id)sender;
+
+@end
diff --git a/Awars III/MapEditor.m b/Awars III/MapEditor.m
new file mode 100755 (executable)
index 0000000..184e813
--- /dev/null
@@ -0,0 +1,3095 @@
+//
+//  MapEditor.m
+//  Awars III
+//
+//  Created by Killery on 2012/12/06.
+//  Copyright (c) 2012年 Killery. All rights reserved.
+//
+
+#import "MapEditor.h"
+
+@implementation MapEditor
+-(void)awakeFromNib{
+
+    [TFcurrentChipIndex setStringValue:[NSString stringWithFormat:@"%d/%d", MapChipListIndex,MapChipMax]];
+    
+    [loadMapListTV setTarget:self];
+    [loadMapListTV setDoubleAction:@selector(doubleClickLM:)];
+    
+    [saveMapListTV setTarget:self];
+    [saveMapListTV setDoubleAction:@selector(doubleClickSM:)];
+    
+    [eventListTV setTarget:self];
+    [eventListTV setAction:@selector(ClickEL:)];
+    [eventListTV setDoubleAction:@selector(doubleClickEL:)];
+    
+    [eventPosTV setTarget:self];
+    [eventPosTV setDoubleAction:@selector(doubleClickPos:)];
+    
+    
+    [eventDetailListTV setTarget:self];
+    [eventDetailListTV setAction:@selector(ClickEDL:)];
+    [eventDetailListTV setDoubleAction:@selector(doubleClickEDL:)];
+    
+    [EDtextImageTV setTarget:self];
+    [EDtextImageTV setAction:@selector(ClickEDTI:)];
+    
+    [EDswitch1TV setTarget:self];
+    [EDswitch1TV setDoubleAction:@selector(doubleClickSW1:)];
+    
+    [EDswitch2TV setTarget:self];
+    [EDswitch2TV setDoubleAction:@selector(doubleClickSW2:)];
+    
+    [EDvariableTV setTarget:self];
+    [EDvariableTV setDoubleAction:@selector(doubleClickVAR:)];
+    
+    [EEGC1TV setTarget:self];
+    [EEGC1TV setAction:@selector(clickEEGC1:)];
+    [EEGC2TV setTarget:self];
+    [EEGC2TV setAction:@selector(clickEEGC2:)];
+    
+    [EDselectionTV setTarget:self];
+    [EDselectionTV setAction:@selector(ClickSEL:)];
+    
+    [EDvalueTV setTarget:self];
+    [EDvalueTV setDoubleAction:@selector(doubleClickVAL:)];
+    
+    [EDvarTV setTarget:self];
+    [EDvarTV setDoubleAction:@selector(doubleClickVA:)];
+    
+    [EDvarHensuTV setTarget:self];
+    [EDvarHensuTV setDoubleAction:@selector(doubleClickHEN:)];
+    
+    [EDresourceTV setTarget:self];
+    [EDresourceTV setDoubleAction:@selector(doubleClickRES:)];
+    
+    [EDhp1TV setTarget:self];
+    [EDhp1TV setDoubleAction:@selector(doubleClickHP1:)];
+    
+    [EDhp2TV setTarget:self];
+    [EDhp2TV setDoubleAction:@selector(doubleClickHP2:)];
+    
+    [EDmp1TV setTarget:self];
+    [EDmp1TV setDoubleAction:@selector(doubleClickMP1:)];
+    
+    [EDmp2TV setTarget:self];
+    [EDmp2TV setDoubleAction:@selector(doubleClickMP2:)];
+    
+    [EDstA1TV setTarget:self];
+    [EDstA1TV setDoubleAction:@selector(doubleClickSTA1:)];
+    
+    [EDstA2TV setTarget:self];
+    [EDstA2TV setDoubleAction:@selector(doubleClickSTA2:)];
+    
+    [EDstB1TV setTarget:self];
+    [EDstB1TV setDoubleAction:@selector(doubleClickSTB1:)];
+    
+    [EDstB2TV setTarget:self];
+    [EDstB2TV setDoubleAction:@selector(doubleClickSTB2:)];
+    
+    EEGC1MA = [NSMutableArray new];
+    EEGC2MA = [NSMutableArray new];
+    
+    eventListMA = [NSMutableArray new];
+    eventPosMA = [NSMutableArray new];
+    eventDetailListMA = [NSMutableArray new];
+    EDswitch1MA = [NSMutableArray new];
+    EDswitch2MA = [NSMutableArray new];
+    EDvariableMA = [NSMutableArray new];
+    EDtextImageMA = [NSMutableArray new];
+    EDselectionMA = [NSMutableArray new];
+    EDvalueMA = [NSMutableArray new];
+    EDvarMA = [NSMutableArray new];
+    EDvarHensuMA = [NSMutableArray new];
+    EDresourceMA = [NSMutableArray new];
+    EDhp1MA = [NSMutableArray new];
+    EDhp2MA = [NSMutableArray new];
+    EDmp1MA = [NSMutableArray new];
+    EDmp2MA = [NSMutableArray new];
+    EDstA1MA = [NSMutableArray new];
+    EDstA2MA = [NSMutableArray new];
+    EDstB1MA = [NSMutableArray new];
+    EDstB2MA = [NSMutableArray new];
+    
+}
+
+-(id)init{
+    if (self) {
+        time0  = [NSTimer
+                 scheduledTimerWithTimeInterval:0.05f
+                 target:self
+                 selector:@selector(EventLoop0:)
+                 userInfo:nil
+                 repeats:YES
+                 ];
+        
+        scCenter.origin.x = [NSScreen mainScreen].frame.size.width/2 - 640/2;
+        scCenter.origin.y = [NSScreen mainScreen].frame.size.height/2 - 480/2;
+        headerFrame = 20;
+        
+        MapChipListIndex = 1;
+        BuildChipListIndex = 1;
+        UnitChipListIndex = 1;
+        LoadChipListIndex = 1;
+        loadMapListMA = [NSMutableArray new];
+        [self initLoadMapList];
+        saveMapListMA = [NSMutableArray new];
+        [self initSaveMapList];
+        [self loadEventImage];
+        MFselectedRow = -1;
+        
+    }
+    return self;
+}
+
+-(void)EDdeleteFunc:(MAPSCRIPT)MS msd:(MAPSCRIPTD*)MSD{
+    int cnt = 0;
+    int instantCnt = 0;
+    int instantCnt2 = 0;
+    for (int i = 0;i < [MSD->SCRPT count];i++) {
+        NSArray *array = [[MSD->SCRPT objectAtIndex:i] componentsSeparatedByString:@"◆"];
+        if([array count] >= 2){
+            instantCnt++;
+        }
+        
+        if(instantCnt == squareCnt){
+            instantCnt2++;
+            cnt--;
+        }
+        if(instantCnt == squareCnt + 1){
+            break;
+        }
+        cnt++;
+    }
+    
+    [self willChangeValueForKey:@"eventDetailListMA"];
+    for(int i = 0;i < instantCnt2;i++){
+        
+        [MSD->SCRPT removeObjectAtIndex:cnt];
+        [eventDetailListMA removeObjectAtIndex:EDrow];
+        
+    }
+    [self didChangeValueForKey:@"eventDetailListMA"];
+    
+    [eventDetailListAC setSelectionIndex:EDrow];
+    
+    squareCnt = 1;
+    for(int i = 0;i < EDrow;i++){
+        NSArray *array = nil;
+        if([MS.D->SCRPT count] > 0){
+            array = [[MS.D->SCRPT objectAtIndex:i] componentsSeparatedByString:@"◆"];
+        }
+        if([array count] >= 2){
+            squareCnt++;
+        }
+    }
+    
+    MAPSCRIPT0 *MS0top = MS.D->P;
+    
+    if(!MS.D->P){
+        MS.D->P = calloc(1, sizeof(MAPSCRIPT0));
+        MS0top = MS.D->P;
+    }else if(MS.D->P){
+        
+        if(squareCnt == 1){
+            MAPSCRIPT0 *temp = MS.D->P->next;
+            MS.D->P = temp;
+            MS0top = MS.D->P;
+        }else if(squareCnt > 1){
+            for (int i = 0; i < squareCnt-2; i++) {
+                MS.D->P = MS.D->P->next;
+            }
+            MAPSCRIPT0 *temp = MS.D->P->next->next;
+            MS.D->P->next = temp;
+        }
+        
+    }
+    MS.D->P = MS0top;
+}
+
+
+-(void)EventLoop0:(NSTimer*)time{
+    
+    if(SLSx == 2){
+    [topIV setImage:UC[SLindexU].imgb];
+    
+    [topName setStringValue:[NSString stringWithFormat:@"%@", UC[SLindexU].name]];
+    
+    [topHealth setStringValue:[NSString stringWithFormat:@"HP %g", UC[SLindexU].S_M.HP]];
+    }else if(SLSx == 3){
+        [topIV setImage:LC[SLindexL].imgb];
+        
+        [topName setStringValue:[NSString stringWithFormat:@"%@", LC[SLindexL].name]];
+        
+        [topHealth setStringValue:[NSString stringWithFormat:@"HP %g", LC[SLindexL].S_M.HP]];
+    }
+    if(SLSx == 0) [TFcurrentChipIndex setStringValue:[NSString stringWithFormat:@"%d/%d", MapChipListIndex,MapChipMax]];
+    if(SLSx == 1) [TFcurrentChipIndex setStringValue:[NSString stringWithFormat:@"%d/%d", BuildChipListIndex,BuildChipMax]];
+    if(SLSx == 2) [TFcurrentChipIndex setStringValue:[NSString stringWithFormat:@"%d/%d", UnitChipListIndex,UnitChipMax]];
+    if(SLSx == 3) [TFcurrentChipIndex setStringValue:[NSString stringWithFormat:@"%d/%d", LoadChipListIndex,LoadChipMax]];
+    
+    if(DoubleClicked){DoubleClicked = false;
+        windowPoint.x = [MapEditorWindow frame].origin.x;
+        windowPoint.y = [MapEditorWindow frame].origin.y;
+   
+        if(SLSx == 0){
+        
+            loadChipSideFlag = false;
+            
+            [PMCL setFrameOrigin:windowPoint];
+        
+            [PMCL makeKeyAndOrderFront:nil];
+    
+        }
+    
+        if(SLSx == 1){
+        
+            loadChipSideFlag = false;
+            
+            [PBCL setFrameOrigin:windowPoint];
+        
+            [PBCL makeKeyAndOrderFront:nil];
+   
+        }
+    
+        if(SLSx == 2){
+        
+            loadChipSideFlag = false;
+            
+            [PUCL setFrameOrigin:windowPoint];
+        
+            [PUCL makeKeyAndOrderFront:nil];
+    
+        }
+        
+        if(SLSx == 3){
+            
+            loadChipSideFlag = true;
+            
+            [PLCL setFrameOrigin:windowPoint];
+            
+            [PLCL makeKeyAndOrderFront:nil];
+            
+        }
+        
+    }
+
+    
+    
+    if(MF[MFselectedRow+1].MS.EGClight.endType1 == 0 || MF[MFselectedRow+1].MS.EGCdark.endType1 == 0){
+        MF[MFselectedRow+1].MS.EGClight.endType1 = 1;
+        MF[MFselectedRow+1].MS.EGCdark.endType1 = 2;
+        
+        [self EEGCset:MF[MFselectedRow+1].MS.EGClight flag:YES];
+        [self EEGCset:MF[MFselectedRow+1].MS.EGCdark flag:NO];
+    }
+    
+    if(doubleClickedFlag && EEGCslctFlag){
+    
+        if(!EEGCslctFlag2){
+        
+            if(EEGCslctCnt == 2 || EEGCslctCnt == 3){
+                if(unitNum[eSlctX][eSlctY] > -1){
+                
+                    if(EEGCflag == 1){
+                        NSMutableDictionary* dict = [NSMutableDictionary new];
+                
+                        [dict setValue:[NSString stringWithFormat:@"%@[%d,%d]", UC[unitNum[eSlctX][eSlctY]].name, eSlctX, eSlctY] forKey:@"value"];
+                        [self willChangeValueForKey:@"EEGC1MA"];
+                        [EEGC1MA addObject:dict];
+                        [self didChangeValueForKey:@"EEGC1MA"];
+                    }
+                    if(EEGCflag == 2){
+                        NSMutableDictionary* dict = [NSMutableDictionary new];
+                    
+                        [dict setValue:[NSString stringWithFormat:@"%@[%d,%d]", UC[unitNum[eSlctX][eSlctY]].name, eSlctX, eSlctY] forKey:@"value"];
+                        [self willChangeValueForKey:@"EEGC1MA"];
+                        [EEGC1MA addObject:dict];
+                        [self didChangeValueForKey:@"EEGC1MA"];
+                    }
+                }
+            }else if(EEGCslctCnt == 4){
+                if(1){
+                    if(EEGCflag == 1){
+                        NSMutableDictionary* dict = [NSMutableDictionary new];
+                        
+                        [dict setValue:[NSString stringWithFormat:@"[%d,%d]", eSlctX, eSlctY] forKey:@"value"];
+                        [self willChangeValueForKey:@"EEGC1MA"];
+                        [EEGC1MA addObject:dict];
+                        [self didChangeValueForKey:@"EEGC1MA"];
+                    }
+                    if(EEGCflag == 2){
+                        NSMutableDictionary* dict = [NSMutableDictionary new];
+                    
+                        [dict setValue:[NSString stringWithFormat:@"[%d,%d]", eSlctX, eSlctY] forKey:@"value"];
+                        [self willChangeValueForKey:@"EEGC1MA"];
+                        [EEGC1MA addObject:dict];
+                        [self didChangeValueForKey:@"EEGC1MA"];
+                    }
+                }
+            }if(EEGCslctCnt == 5){
+                if(buildNum[eSlctX][eSlctY] > -1){
+                
+                    if(EEGCflag == 1){
+                        NSMutableDictionary* dict = [NSMutableDictionary new];
+                    
+                        [dict setValue:[NSString stringWithFormat:@"%@[%d,%d]", BC[buildNum[eSlctX][eSlctY]].name, eSlctX, eSlctY] forKey:@"value"];
+                        [self willChangeValueForKey:@"EEGC1MA"];
+                        [EEGC1MA addObject:dict];
+                        [self didChangeValueForKey:@"EEGC1MA"];
+                    }
+                    if(EEGCflag == 2){
+                        NSMutableDictionary* dict = [NSMutableDictionary new];
+                    
+                        [dict setValue:[NSString stringWithFormat:@"%@[%d,%d]", BC[buildNum[eSlctX][eSlctY]].name, eSlctX, eSlctY] forKey:@"value"];
+                        [self willChangeValueForKey:@"EEGC1MA"];
+                        [EEGC1MA addObject:dict];
+                        [self didChangeValueForKey:@"EEGC1MA"];
+                    }
+                }
+            }
+      
+        }else if(EEGCslctFlag2){
+        
+            if(EEGCslctCnt == 3 || EEGCslctCnt == 4){
+                if(unitNum[eSlctX][eSlctY] > -1){
+                    
+                    if(EEGCflag == 1){
+                        NSMutableDictionary* dict = [NSMutableDictionary new];
+                        
+                        [dict setValue:[NSString stringWithFormat:@"%@[%d,%d]", UC[unitNum[eSlctX][eSlctY]].name, eSlctX, eSlctY] forKey:@"value"];
+                        [self willChangeValueForKey:@"EEGC2MA"];
+                        [EEGC2MA addObject:dict];
+                        [self didChangeValueForKey:@"EEGC2MA"];
+                    }
+                    if(EEGCflag == 2){
+                        NSMutableDictionary* dict = [NSMutableDictionary new];
+                        
+                        [dict setValue:[NSString stringWithFormat:@"%@[%d,%d]", UC[unitNum[eSlctX][eSlctY]].name, eSlctX, eSlctY] forKey:@"value"];
+                        [self willChangeValueForKey:@"EEGC2MA"];
+                        [EEGC2MA addObject:dict];
+                        [self didChangeValueForKey:@"EEGC2MA"];
+                    }
+                }
+            }else if(EEGCslctCnt == 5){
+                if(1){
+                    if(EEGCflag == 1){
+                        NSMutableDictionary* dict = [NSMutableDictionary new];
+                        
+                        [dict setValue:[NSString stringWithFormat:@"[%d,%d]", eSlctX, eSlctY] forKey:@"value"];
+                        [self willChangeValueForKey:@"EEGC2MA"];
+                        [EEGC2MA addObject:dict];
+                        [self didChangeValueForKey:@"EEGC2MA"];
+                    }
+                    if(EEGCflag == 2){
+                        NSMutableDictionary* dict = [NSMutableDictionary new];
+                        
+                        [dict setValue:[NSString stringWithFormat:@"[%d,%d]", eSlctX, eSlctY] forKey:@"value"];
+                        [self willChangeValueForKey:@"EEGC2MA"];
+                        [EEGC2MA addObject:dict];
+                        [self didChangeValueForKey:@"EEGC2MA"];
+                    }
+                }
+            }if(EEGCslctCnt == 6){
+                if(buildNum[eSlctX][eSlctY] > -1){
+                    
+                    if(EEGCflag == 1){
+                        NSMutableDictionary* dict = [NSMutableDictionary new];
+                        
+                        [dict setValue:[NSString stringWithFormat:@"%@[%d,%d]", BC[buildNum[eSlctX][eSlctY]].name, eSlctX, eSlctY] forKey:@"value"];
+                        [self willChangeValueForKey:@"EEGC2MA"];
+                        [EEGC2MA addObject:dict];
+                        [self didChangeValueForKey:@"EEGC2MA"];
+                    }
+                    if(EEGCflag == 2){
+                        NSMutableDictionary* dict = [NSMutableDictionary new];
+                        
+                        [dict setValue:[NSString stringWithFormat:@"%@[%d,%d]", BC[buildNum[eSlctX][eSlctY]].name, eSlctX, eSlctY] forKey:@"value"];
+                        [self willChangeValueForKey:@"EEGC2MA"];
+                        [EEGC2MA addObject:dict];
+                        [self didChangeValueForKey:@"EEGC2MA"];
+                    }
+                }
+            }
+        
+        }
+        
+        NSLog(@"%@", MF[MFselectedRow+1].MS.EGClight.etValue1[etValueCnt]);
+        
+        EEGCslctFlag = false;
+        
+        [eventWindow makeKeyAndOrderFront:nil];
+        [eventEndGameCondition makeKeyAndOrderFront:nil];
+        
+        
+        
+        
+        
+    }else if(doubleClickedFlag && eventPosFlag){
+    
+        [eventWindow makeKeyAndOrderFront:nil];
+    
+        [self willChangeValueForKey:@"eventPosMA"];
+        [eventPosMA removeAllObjects];
+        [self didChangeValueForKey:@"eventPosMA"];
+        
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+        [dict setValue:[NSString stringWithFormat:@"[%d,%d]", eSlctX, eSlctY] forKey:@"name"];
+        [self willChangeValueForKey:@"eventPosMA"];
+        [eventPosMA addObject:dict];
+        [self didChangeValueForKey:@"eventPosMA"];
+        
+        MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+        MAPSCRIPTD *MSDtop = MS.D;
+        
+        for(int i = 0;i < eventListRow;i++){
+            MS.D = MS.D->next;
+        }
+        
+        MS.D->x = eSlctX;
+        MS.D->y = eSlctY;
+        
+        MS.D = MSDtop;
+        
+        MF[MFselectedRow+1].MS = MS;
+    }
+    
+    doubleClickedFlag = false;
+    
+    
+    if(EDproceedFlag){
+    
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+    MS.D = MSDTOPP;
+    for(int i = 0;i < eventListRow;i++){
+        MS.D = MS.D->next;
+    }
+    
+    if([EDswitch1Btn state] != 0){
+        MS.D->switch1f = true;
+    }else{
+        MS.D->switch1f = false;
+    }
+    
+    if([EDswitch2Btn state] != 0){
+        MS.D->switch2f = true;
+    }else{
+        MS.D->switch2f = false;
+    }
+    MS.D = MSDTOPP;
+        
+    }
+    
+    if(fuckingRetardedBtnPushed1){
+        
+        MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+        
+        MS.D = msdtop;
+        
+        MAPSCRIPT0 *MSDPt = MS.D->P;
+        
+        MAPSCRIPT0 *MS0 = MS.D->P;
+        
+        for(int i = 0;i < squareCnt - 1 ;i++){
+            MS0 = MS0->next;
+        }
+        
+        //NSLog(@"%d", [EDTimerSet2A intValue]);
+        
+        if([EDTimerSet1A state] != 0)
+            MS0->timerRun = true;
+        else
+            MS0->timerRun = false;
+        if([EDTimerSet2A state] != 0)
+            MS0->timerMode = true;
+        else
+            MS0->timerMode = false;
+        if([EDTimerSet3A state] != 0)
+            MS0->timerVisible = true;
+        else
+            MS0->timerVisible = false;
+        
+        MS.D->P = MS0;
+        
+        MS.D->P = MSDPt;
+        
+        
+        
+        
+        
+        
+        
+        
+        fuckingRetardedBtnPushed1 = false;
+    }
+}
+
+-(IBAction)eventCheckBtn:(id)sender{
+
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+    MAPSCRIPTD *MSDtop = MS.D;
+    
+    if(MS.D){
+    for (int i = 0; i < ELrow;i++) {
+        MS.D = MS.D->next;
+    }
+    
+    MS.D->type = (int)[eventPopupBtn indexOfSelectedItem];
+    
+    if([eventCheckBtn intValue] == 0 && [eventPopupBtn indexOfSelectedItem] == 0)
+        MS.D->type = -1;
+    }
+    MS.D = MSDtop;
+    MF[MFselectedRow+1].MS = MS;
+}
+-(IBAction)eventPopupBtn:(id)sender{
+
+}
+
+
+-(void)ClickEDTI:(id)sender{
+
+    EDtextImageRow = (int)[EDtextImageTV clickedRow];
+
+}
+-(void)ClickEL:(id)sender{
+
+    eventListRow = (int)[eventListTV clickedRow];
+    ELrow = (int)[eventListTV clickedRow];
+
+    
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+    
+    MAPSCRIPTD *MSDtop = MS.D;
+    
+    
+    if(!MS.D) {
+        MS.D = MSDtop;
+        [eventCheckBtn setState:NO];
+        return;
+        
+    }
+    
+    MS.D = MSDTOPP;
+    for (int i = 0;i < eventListRow;i++) {
+        if(!MS.D->next){
+            MS.D->next = calloc(1, sizeof(MAPSCRIPTD));
+        }
+        MS.D = MS.D->next;
+    }
+    msdtop = MS.D;
+    [self willChangeValueForKey:@"eventPosMA"];
+    [eventPosMA removeAllObjects];
+    [self didChangeValueForKey:@"eventPosMA"];
+    if(!MS.D) {
+        MS.D = MSDtop;
+        [eventCheckBtn setState:NO];
+        return;
+    }
+    
+    if((MS.D->type == 0 && (MS.D->x > 0 && MS.D->y > 0))){
+        [eventCheckBtn setState:YES];
+    }else{
+        [eventCheckBtn setState:NO];
+    }
+    
+    if(MS.D->x > 0&& MS.D->y > 0){
+        
+    NSMutableDictionary* dict = [NSMutableDictionary new];
+    
+    [dict setValue:[NSString stringWithFormat:@"[%d,%d]", MS.D->x, MS.D->y] forKey:@"name"];
+    [self willChangeValueForKey:@"eventPosMA"];
+    [eventPosMA addObject:dict];
+    [self didChangeValueForKey:@"eventPosMA"];
+    }
+    
+    MS.D = MSDTOPP;
+    
+}
+-(void)doubleClickEL:(id)sender{
+    
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+    
+
+    for (int i = 0;i < eventListRow;i++) {
+        if(!MS.D->next){
+            MS.D->next = calloc(1, sizeof(MAPSCRIPTD));
+        }
+        MS.D = MS.D->next;
+    }
+    msdtop = MS.D;
+    
+    if([eventListTV clickedRow] >= 0){
+
+        if([eventListTV clickedRow] == [eventListMA count]-1){
+            
+            NSMutableDictionary* dict = [NSMutableDictionary new];
+            [dict setValue:[NSString stringWithFormat:@"●"] forKey:@"value"];
+            [self willChangeValueForKey:@"eventListMA"];
+            [eventListMA addObject:dict];
+            [self didChangeValueForKey:@"eventListMA"];
+            [eventListAC setSelectionIndex:[eventListMA count]-2];
+            
+            MAPSCRIPTD *mdTop = MS.D;
+            
+            if(!MS.D){
+                MS.D = calloc(1, sizeof(MAPSCRIPTD));
+                mdTop = MS.D;
+                msdtop = MS.D;
+                MS.D->type = -1;
+                if(!mapLoadFlagForMSD2 && mapLoadFlagForMSD){
+                    MSDTOPP->next = MS.D;
+                    mapLoadFlagForMSD2 = true;
+                }
+                if(!mapLoadFlagForMSD){
+                    MSDTOPP = MS.D;
+                    mapLoadFlagForMSD = true;
+                }
+            }
+            else{
+                while (MS.D->next)
+                    MS.D = MS.D->next;
+                
+                MS.D->next = calloc(1, sizeof(MAPSCRIPTD));
+                MS.D->next->type = -1;
+                MS.D->next->next = NULL;
+                //msdtop = MS.D->next;
+            }
+            MS.D = mdTop;
+            
+            if(!MS.SCRPTname) MS.SCRPTname = [NSMutableArray new];
+            [MS.SCRPTname addObject:@"新規イベント"];
+        }
+        
+        
+        [EDnameTF setStringValue:[MS.SCRPTname objectAtIndex:[eventListTV clickedRow]]];
+        
+        MF[MFselectedRow+1].MS = MS;
+        
+        [self initEDlist];
+        [eventDetailWindow makeKeyAndOrderFront:nil];
+    }
+    
+    MF[MFselectedRow+1].MS = MS;
+    
+    EDproceedFlag = true;
+}
+
+
+-(void)ClickEDL:(id)sender{
+    EDrow = [eventDetailListTV clickedRow];
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+}
+
+
+-(void)doubleClickEDL:(id)sender{
+    EDrow = [eventDetailListTV clickedRow];
+    
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+    
+    
+    if([eventDetailListTV clickedRow] >= 0){
+        
+        
+        
+        if([eventDetailListTV clickedRow] == [eventDetailListMA count]-1){
+        
+            NSMutableDictionary* dict = [NSMutableDictionary new];
+            [dict setValue:[NSString stringWithFormat:@"◆"] forKey:@"value"];
+            [self willChangeValueForKey:@"eventDetailListMA"];
+            [eventDetailListMA addObject:dict];
+            [self didChangeValueForKey:@"eventDetailListMA"];
+            [eventDetailListAC setSelectionIndex:[eventDetailListMA count]-2];
+        
+            MSDTOP = MF[MFselectedRow+1].MS.D;
+            
+            MAPSCRIPT0 *MS0top = MS.D->P;
+            
+            if(!MS.D->P){
+                MS.D->P = calloc(1, sizeof(MAPSCRIPT0));
+                MS0top = MS.D->P;
+            }else if(MS.D->P){
+                while (MS.D->P->next) {
+                    MS.D->P = MS.D->P->next;
+                }
+                MS.D->P->next = calloc(1, sizeof(MAPSCRIPT0));
+            }
+            
+            MS.D->P = MS0top;
+            
+            squareCnt = 1;
+            for(int i = 0;i < EDrow;i++){
+                NSArray *array = nil;
+                if([MS.D->SCRPT count] > 0){
+                    array = [[MS.D->SCRPT objectAtIndex:i] componentsSeparatedByString:@"◆"];
+                }
+                if([array count] >= 2){
+                    squareCnt++;
+                }
+            }
+            
+            [eventDetailSelectionWindow makeKeyAndOrderFront:nil];
+        }else{
+            editFlag = true;
+            
+            
+                squareCnt = 0;
+                for(int i = 0;i <= EDrow;i++){
+                    NSArray *array = [[MS.D->SCRPT objectAtIndex:i] componentsSeparatedByString:@"◆"];
+                    if([array count] >= 2){
+                        squareCnt++;
+                    }
+                }
+            
+            for(int i = 0;i < 9;i++){
+            
+                for(int j = 0;j < i;j++){
+                    
+                }
+            
+            }
+            
+            if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆文章の表示"]){
+                MSDTOP = MF[MFselectedRow+1].MS.D;
+                
+                for (int i = 0;i < eventListRow;i++) {
+                    MF[MFselectedRow+1].MS.D = MF[MFselectedRow+1].MS.D->next;
+                }
+                
+                MF[MFselectedRow+1].MS.D = MSDTOP;
+                
+                [self initEDtext];
+                [EDtextWindow makeKeyAndOrderFront:nil];
+            }
+            
+            
+            
+            if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆選択肢の表示"]){
+                [self initEDselection];
+                [EDselectionWindow makeKeyAndOrderFront:nil];
+            }
+        
+        
+            if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆スイッチの操作ON"]){
+                suicchiDBLslickFlag = true;
+                [EDSwitchWindow2 makeKeyAndOrderFront:nil];
+            }
+            if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆スイッチの操作OFF"]){
+                
+                suicchiDBLslickFlag = true;
+                [EDSwitchWindow2 makeKeyAndOrderFront:nil];
+            }if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆タイマーの操作"]){
+                timerDBLslickFlag = true;
+                [EDtimerWindow makeKeyAndOrderFront:nil];
+            }
+            
+            
+        }
+        
+        
+    }
+    
+    MF[MFselectedRow+1].MS = MS;
+    
+    
+    
+   // NSLog(@"oops");
+}
+
+
+-(void)ClickSEL:(id)sender{
+    EDselRow = [EDselectionTV clickedRow];
+    
+}
+
+-(void)doubleClickPos:(id)sender{
+    
+    eventPosFlag = true;
+    [MapEditorWindow makeKeyAndOrderFront:nil];
+    
+    [MapEditorWindow setFrame:NSMakeRect(scCenter.origin.x,scCenter.origin.y,480,480+headerFrame) display:YES];
+    
+}
+
+-(void)doubleClickSW1:(id)sender{
+    
+    
+    [EDswitchTF setStringValue:@""];
+    SuicchiONOFFsentakuflag = true;
+    [EDswitchWindow makeKeyAndOrderFront:nil];
+
+}
+-(void)doubleClickSW2:(id)sender{
+
+        
+    [EDswitchTF setStringValue:@""];
+     SuicchiONOFFsentakuflag = false;
+    [EDswitchWindow makeKeyAndOrderFront:nil];
+
+}
+-(void)doubleClickVAR:(id)sender{
+    
+    if([EDvariableTV clickedRow] >= 0){
+        
+        
+    }
+}
+
+
+-(void)doubleClickLM:(id)sender{
+    
+    MFselectedRow = (int)[loadMapListTV selectedRow];
+    if(MFselectedRow < 0) return;
+    loadMapListSubmitFlag = true;
+    [loadMapWindow close];
+}
+-(void)doubleClickSM:(id)sender{
+
+}
+
+-(IBAction)backTitle:(id)sender{
+    windowPoint.x = [MapEditorWindow frame].origin.x;
+    windowPoint.y = [MapEditorWindow frame].origin.y;
+    [TitleWindow setFrameOrigin:windowPoint];
+    [TitleWindow makeKeyAndOrderFront:nil];
+    [MapEditorWindow close];
+}
+-(void)previous:(id)sender{
+    if(SLSx == 0){
+        if(MapChipListIndex <= 1) MapChipListIndex = MapChipMax;
+        else MapChipListIndex--;
+    }
+    if(SLSx == 1){
+        if(BuildChipListIndex <= 1) BuildChipListIndex = BuildChipMax;
+        else BuildChipListIndex--;
+    }
+    if(SLSx == 2){
+        if(UnitChipListIndex <= 1) UnitChipListIndex = UnitChipMax;
+        else UnitChipListIndex--;
+    }
+    if(SLSx == 3){
+        if(LoadChipListIndex <= 1) LoadChipListIndex = LoadChipMax;
+        else LoadChipListIndex--;
+    }
+}
+-(void)next:(id)sender{
+    if(SLSx == 0){
+    if(MapChipListIndex >= MapChipMax) MapChipListIndex = 1;
+    else MapChipListIndex++;
+    }
+    if(SLSx == 1){
+    if(BuildChipListIndex >= BuildChipMax) BuildChipListIndex = 1;
+    else BuildChipListIndex++;
+    }
+    if(SLSx == 2){
+    if(UnitChipListIndex >= UnitChipMax) UnitChipListIndex = 1;
+    else UnitChipListIndex++;
+    }
+    if(SLSx == 3){
+        if(LoadChipListIndex >= LoadChipMax) LoadChipListIndex = 1;
+        else LoadChipListIndex++;
+    }
+
+}
+
+-(IBAction)mapSizeSubmit:(id)sender{
+    
+    chipHeight = [mapSizeHeight intValue];
+    chipWidth = [mapSizeWidth intValue];
+    
+    if(chipHeight < 15) chipHeight = 15;
+    if(chipWidth < 15) chipWidth = 15;
+    
+    mapSizeChangedFlag = true;
+    initMapChipNumbFlag = true;
+    [mapSizeWindow close];
+}
+-(IBAction)mapSizeCancel:(id)sender{
+    [mapSizeWindow close];
+}
+
+-(IBAction)mapSize:(id)sender{
+    
+    postWidth = chipWidth;
+    postHeight = chipHeight;
+    [mapSizeHeight setIntValue:chipHeight];
+    [mapSizeWidth setIntValue:chipWidth];
+    
+    windowPoint.x = [MapEditorWindow frame].origin.x + 50;
+    windowPoint.y = [MapEditorWindow frame].origin.y + 100;
+    [mapSizeWindow setFrameOrigin:windowPoint];
+    
+    [mapSizeWindow makeKeyAndOrderFront:nil];
+}
+
+-(void)initLoadMapList{
+
+    NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    NSArray *Farray;
+    NSString *filePath = @"Map";
+    Farray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:filePath error:nil];
+    
+    fileNumb = (int)[Farray count];
+    for (int i = 1; i < fileNumb;i++) {
+        MF[i].fileName = [[Farray objectAtIndex:i] retain];
+    }
+    
+    [self willChangeValueForKey:@"loadMapListMA"];
+    [loadMapListMA removeAllObjects];
+    [self didChangeValueForKey:@"loadMapListMA"];
+    
+    for(int i = 1; i < fileNumb;i++){
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+        [dict setValue:[NSString stringWithFormat:@"%@", MF[i].fileName] forKey:@"name"];
+        [self willChangeValueForKey:@"loadMapListMA"];
+        [loadMapListMA addObject:dict];
+        [self didChangeValueForKey:@"loadMapListMA"];
+    }
+
+}
+
+-(void)initSaveMapList{
+
+    NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    NSArray *Farray;
+    NSString *filePath = @"Map";
+    Farray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:filePath error:nil];
+    
+    fileNumb = (int)[Farray count];
+    for (int i = 1; i < fileNumb;i++) {
+        MF[i].fileName = [[Farray objectAtIndex:i] retain];
+    }
+    
+    
+    [self willChangeValueForKey:@"saveMapListMA"];
+    [saveMapListMA removeAllObjects];
+    [self didChangeValueForKey:@"saveMapListMA"];
+    
+    for(int i = 1; i < fileNumb;i++){
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+        [dict setValue:[NSString stringWithFormat:@"%@", MF[i].fileName] forKey:@"name"];
+        [self willChangeValueForKey:@"saveMapListMA"];
+        [saveMapListMA addObject:dict];
+        [self didChangeValueForKey:@"saveMapListMA"];
+    }
+
+
+}
+
+-(IBAction)loadMap:(id)sender{
+    [self initLoadMapList];
+    [loadMapWindow makeKeyAndOrderFront:nil];
+    loadMapChipFlag = true;
+}
+
+-(IBAction)loadMapSubmit:(id)sender{
+    
+    MFselectedRow = (int)[loadMapListTV selectedRow];
+    loadMapListSubmitFlag = true;
+    [loadMapWindow close];
+}
+-(IBAction)loadMapCancel:(id)sender{
+    [loadMapWindow close];
+}
+
+-(IBAction)saveMap:(id)sender{
+    
+    [self initSaveMapList];
+    [saveMapListAC setSelectionIndex:-1];
+    [saveMapWindow makeKeyAndOrderFront:nil];
+}
+
+-(IBAction)saveMapSubmit:(id)sender{
+    
+    saveMapDataName = [[saveMapTF stringValue] retain];
+    saveMapListSubmitFlag = true;
+    saveMapChipFlag = true;
+    [saveMapWindow close];
+}
+-(IBAction)saveMapCancel:(id)sender{
+    [saveMapWindow close];
+}
+
+-(IBAction)setEvent:(id)sender{
+    
+    [self EEGCset:MF[MFselectedRow+1].MS.EGClight flag:YES];
+    [self EEGCset:MF[MFselectedRow+1].MS.EGCdark flag:NO];
+    
+    [self initEventList];
+    
+    [eventPlayerSetPUB1 selectItemAtIndex:playerSet1];
+    [eventPlayerSetPUB2 selectItemAtIndex:playerSet2];
+    [eventBattleDetailBtn setState:battleSetMode];
+    
+    [eventWindow makeKeyAndOrderFront:nil];
+    
+}
+
+-(IBAction)EEGClight:(id)sender{
+    
+    [EEGCstr setStringValue:@"勝利条件"];
+    [eventEndGameCondition makeKeyAndOrderFront:nil];
+    [self initEEGC:MF[MFselectedRow+1].MS.EGClight];
+    EEGCflag = 1;
+    
+}
+
+
+-(IBAction)EEGCdark:(id)sender{
+    
+    [EEGCstr setStringValue:@"敗北条件"];
+    [eventEndGameCondition makeKeyAndOrderFront:nil];
+    [self initEEGC:MF[MFselectedRow+1].MS.EGCdark];
+    EEGCflag = 2;
+    
+}
+
+-(void)initEEGC:(ENDGAMECONDITION)EGCD{
+    
+    if(EGCD.endType1 > 0) [EPUB1 selectItemAtIndex:EGCD.endType1-1];
+    if(EGCD.endType2 > 0) [EPUB2 selectItemAtIndex:EGCD.endType2];
+
+    [self willChangeValueForKey:@"EEGC1MA"];
+    [EEGC1MA removeAllObjects];
+    [self didChangeValueForKey:@"EEGC1MA"];
+    
+    for (int i = 0; i < 64; i++) {
+        if(!EGCD.etValue1[i]) break;
+        
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        [dict setValue:[NSString stringWithFormat:@"%@", EGCD.etValue1[i]] forKey:@"value"];
+        [self willChangeValueForKey:@"EEGC1MA"];
+        [EEGC1MA addObject:dict];
+        [self didChangeValueForKey:@"EEGC1MA"];
+        
+    }
+
+    [self willChangeValueForKey:@"EEGC2MA"];
+    [EEGC2MA removeAllObjects];
+    [self didChangeValueForKey:@"EEGC2MA"];
+    
+    for (int i = 0; i < 64; i++) {
+        if(!EGCD.etValue2[i]) break;
+        
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        [dict setValue:[NSString stringWithFormat:@"%@", EGCD.etValue2[i]] forKey:@"value"];
+        [self willChangeValueForKey:@"EEGC2MA"];
+        [EEGC2MA addObject:dict];
+        [self didChangeValueForKey:@"EEGC2MA"];
+    }
+}
+
+-(void)initEventList{
+    [self willChangeValueForKey:@"eventListMA"];
+    [eventListMA removeAllObjects];
+    [self didChangeValueForKey:@"eventListMA"];
+    
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+    
+    MAPSCRIPTD *mdTop = MS.D;
+
+    int indexCnt = 0;
+    for(int i = 0;i < [MS.SCRPTname count];i++){
+        
+        if(!MS.SCRPTname) break;
+        
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        [dict setValue:[NSString stringWithFormat:@"●%@", [MS.SCRPTname objectAtIndex:i]] forKey:@"value"];
+        [self willChangeValueForKey:@"eventListMA"];
+        [eventListMA addObject:dict];
+        [self didChangeValueForKey:@"eventListMA"];
+        if(MS.D) {
+            MS.D->index = indexCnt;
+            MS.D = MS.D->next;
+            indexCnt++;
+        }
+    }
+    MS.D = mdTop;
+    
+    
+    MF[MFselectedRow+1].MS = MS;
+    NSMutableDictionary* dict = [NSMutableDictionary new];
+    [dict setValue:[NSString stringWithFormat:@"●"] forKey:@"value"];
+    [self willChangeValueForKey:@"eventListMA"];
+    [eventListMA addObject:dict];
+    [self didChangeValueForKey:@"eventListMA"];
+    
+    if(MS.D){
+        
+        
+        if((MS.D->type == 0 && (MS.D->x > 0 && MS.D->y > 0))){
+            [eventCheckBtn setState:YES];
+        }else{
+            [eventCheckBtn setState:NO];
+        }
+        
+        
+        MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+        MAPSCRIPTD *MSDtop = MS.D;
+        
+        if(MS.D){
+            for(int i = 0;i< eventListRow;i++){
+                MS.D = MS.D->next;
+            }
+            if(MS.D->type >= 0 && MS.D->x > 0 && MS.D->y > 0) {
+                
+                
+                eventListRow = (int)[eventListTV clickedRow];
+                
+                MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+                
+                MAPSCRIPTD *MSDtop = MS.D;
+                if(!MS.D) {
+                    MS.D = MSDtop;
+                    return;
+                    
+                }
+                for (int i = 0;i < eventListRow;i++) {
+                    MS.D = MS.D->next;
+                }
+                [self willChangeValueForKey:@"eventPosMA"];
+                [eventPosMA removeAllObjects];
+                [self didChangeValueForKey:@"eventPosMA"];
+                if(!MS.D) {
+                    MS.D = MSDtop;
+                    return;
+                    
+                }
+                if(MS.D->x > 0&& MS.D->y > 0){
+                    
+                    NSMutableDictionary* dict = [NSMutableDictionary new];
+                    
+                    [dict setValue:[NSString stringWithFormat:@"[%d,%d]", MS.D->x, MS.D->y] forKey:@"name"];
+                    [self willChangeValueForKey:@"eventPosMA"];
+                    [eventPosMA addObject:dict];
+                    [self didChangeValueForKey:@"eventPosMA"];
+                }
+                
+                MS.D = MSDtop;
+                
+            }
+        }
+        MS.D = MSDtop;
+    }
+    
+    MSDTOP = MS.D;
+    
+    
+    
+}
+
+-(IBAction)eventInsert:(id)sender{
+
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+    MSDTOPP = MF[MFselectedRow+1].MS.D;
+    NSInteger sel = [eventListAC selectionIndex];
+    
+    if(sel < [eventListMA count]){
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        [dict setValue:[NSString stringWithFormat:@"●"] forKey:@"value"];
+        [self willChangeValueForKey:@"eventListMA"];
+        [eventListMA insertObject:dict atIndex:sel];
+        [self didChangeValueForKey:@"eventListMA"];
+        [eventListAC setSelectionIndex:sel];
+        
+        if(!MS.SCRPTname) MS.SCRPTname = [NSMutableArray new];
+        [MS.SCRPTname insertObject:@"新規イベント" atIndex:sel];
+        
+        if(sel == 0){
+        //insertのやり方
+            MAPSCRIPTD *mdTop = calloc(1, sizeof(MAPSCRIPTD));
+            mdTop->next = MS.D;
+            mdTop->type = -1;
+            MS.D = mdTop;
+            MSDTOPP = mdTop;
+        }else{
+            MAPSCRIPTD *mdTop = MS.D;
+            for(int i = 0;i < sel-1;i++){
+                MS.D = MS.D->next;
+            }
+            MAPSCRIPTD *MSD = NULL;
+            if(MS.D){
+                MSD = MS.D->next;
+                MS.D->next = calloc(1, sizeof(MAPSCRIPTD));
+                MS.D->next->type = -1;
+                MS.D->next->next = MSD;
+                
+                
+            }else{
+                MS.D = calloc(1, sizeof(MAPSCRIPTD));
+                mdTop = MS.D;
+                
+                
+                
+        
+        }
+        MS.D = mdTop;
+        }
+        MF[MFselectedRow+1].MS = MS;
+        
+        
+        MSDTOP = MF[MFselectedRow+1].MS.D;
+        for (int i = 0;i < eventListRow;i++) {
+            MF[MFselectedRow+1].MS.D = MF[MFselectedRow+1].MS.D->next;
+        }
+        
+        [EDnameTF setStringValue:[MS.SCRPTname objectAtIndex:sel]];
+        MSDTOP = MF[MFselectedRow+1].MS.D;
+        
+        for (int i = 0;i < eventListRow;i++) {
+            MF[MFselectedRow+1].MS.D = MF[MFselectedRow+1].MS.D->next;
+        }
+        msdtop = MF[MFselectedRow+1].MS.D;
+        
+        MF[MFselectedRow+1].MS.D = MSDTOP;
+        [self initEDlist];
+        [eventDetailWindow makeKeyAndOrderFront:nil];
+        EDproceedFlag = true;
+    }
+    
+}
+
+-(IBAction)eventDelete:(id)sender{
+
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+    NSInteger sel = [eventListAC selectionIndex];
+    
+    if(sel < [eventListMA count]-1){
+        [self willChangeValueForKey:@"eventListMA"];
+        [eventListMA removeObjectAtIndex:sel];
+        [self didChangeValueForKey:@"eventListMA"];
+        [eventListAC setSelectionIndex:sel];
+    
+        [MS.SCRPTname removeObjectAtIndex:sel];
+        
+        //deleteのやり方
+        
+        MAPSCRIPTD *mdTop = MS.D;
+        for(int i = 0;i < sel - 1;i++){
+            MS.D = MS.D->next;
+        }
+        MAPSCRIPTD *MSD = NULL;
+        if(sel == 0 && MS.D){
+            mdTop = MS.D->next;
+        }else if(MS.D){
+            if(MS.D->next) MSD = MS.D->next->next;
+            MS.D->next = MSD;
+        }
+        MS.D = mdTop;
+        
+        MF[MFselectedRow+1].MS = MS;
+        
+    }
+    
+}
+
+-(IBAction)eventSubmit:(id)sender{
+    [MapEditorWindow setFrame:NSMakeRect(scCenter.origin.x,scCenter.origin.y,640,480+headerFrame) display:YES];
+    EEGCslctFlag = false;
+    eventPosFlag = false;
+    [eventWindow close];
+}
+
+-(void)EEGCset:(ENDGAMECONDITION)EGCD flag:(bool)flag{
+    
+    int eValue = EGCD.endType1;
+    int eValue2 = EGCD.endType2;
+    
+    if(flag){
+        if(eValue > 0){
+            [EEGC01str setStringValue:[NSString stringWithFormat:@"%@", [EPUB1 itemTitleAtIndex:eValue - 1]]];
+        }else{
+            [EEGC01str setStringValue:[NSString stringWithFormat:@"未決定"]];
+        }
+        if(eValue2 > 0){
+            [EEGC012str setStringValue:[NSString stringWithFormat:@"%@", [EPUB2 itemTitleAtIndex:eValue2]]];
+        }else{
+            [EEGC012str setStringValue:[NSString stringWithFormat:@""]];
+        }
+    }
+
+    if(!flag){
+        if(eValue > 0){
+            [EEGC02str setStringValue:[NSString stringWithFormat:@"%@", [EPUB1 itemTitleAtIndex:eValue - 1]]];
+        }else{
+            [EEGC02str setStringValue:[NSString stringWithFormat:@"未決定"]];
+        }
+        if(eValue2 > 0){
+            [EEGC022str setStringValue:[NSString stringWithFormat:@"%@", [EPUB2 itemTitleAtIndex:eValue2]]];
+        }else{
+            [EEGC022str setStringValue:[NSString stringWithFormat:@""]];
+        }
+    }
+
+}
+
+-(ENDGAMECONDITION)EEGCselection:(ENDGAMECONDITION)EGCD{
+    
+    if([EPUB1 indexOfSelectedItem] == 0){//敵全滅
+        EGCD.endType1 = 1;
+    }else if([EPUB1 indexOfSelectedItem] == 1){//味方全滅
+        EGCD.endType1 = 2;
+            
+    }else if([EPUB1 indexOfSelectedItem] == 2){//すべての指定全滅
+        EGCD.endType1 = 3;
+            
+    }else if([EPUB1 indexOfSelectedItem] == 3){//いずれかの指定全滅
+        EGCD.endType1 = 4;
+            
+    }else if([EPUB1 indexOfSelectedItem] == 4){//指定の場所
+        EGCD.endType1 = 5;
+            
+    }else if([EPUB1 indexOfSelectedItem] == 5){//指定の拠点
+        EGCD.endType1 = 6;
+            
+    }else if([EPUB1 indexOfSelectedItem] == 6){//指定の研究
+        EGCD.endType1 = 7;
+            
+    }else if([EPUB1 indexOfSelectedItem] == 7){//指定のスイッチ
+        EGCD.endType1 = 8;
+            
+    }
+
+    if([EPUB2 indexOfSelectedItem] == 0){
+        EGCD.endType2 = 0;
+    }else if([EPUB2 indexOfSelectedItem] == 1){//敵全滅
+        EGCD.endType2 = 1;
+    }else if([EPUB2 indexOfSelectedItem] == 2){//味方全滅
+        EGCD.endType2 = 2;
+        
+    }else if([EPUB2 indexOfSelectedItem] == 3){//すべての指定全滅
+        EGCD.endType2 = 3;
+            
+    }else if([EPUB2 indexOfSelectedItem] == 4){//いずれかの指定全滅
+        EGCD.endType2 = 4;
+            
+    }else if([EPUB2 indexOfSelectedItem] == 5){//指定の場所
+        EGCD.endType2 = 5;
+            
+    }else if([EPUB2 indexOfSelectedItem] == 6){//指定の拠点
+        EGCD.endType2 = 6;
+            
+    }else if([EPUB2 indexOfSelectedItem] == 7){//指定の研究
+        EGCD.endType2 = 7;
+            
+    }else if([EPUB2 indexOfSelectedItem] == 8){//指定のスイッチ
+        EGCD.endType2 = 8;
+            
+    }
+    
+    
+
+    return EGCD;
+
+}
+
+-(IBAction)EEGC1insert:(id)sender{
+
+    EEGCslctCnt = (int)[EPUB1 indexOfSelectedItem];
+    
+    if(EEGCslctCnt == 2 || EEGCslctCnt == 3
+       || EEGCslctCnt == 4 || EEGCslctCnt == 5){
+    
+        if([EEGC1MA count] >= 64) return;
+        
+        EEGCslctFlag = true;
+        
+        [eventWindow close];
+        [eventEndGameCondition close];
+        
+    }else if(EEGCslctCnt == 6){
+    
+    }else if(EEGCslctCnt == 7){
+        
+    }
+    
+}
+-(IBAction)EEGC1delete:(id)sender{
+    
+    [self willChangeValueForKey:@"EEGC1MA"];
+    [EEGC1MA removeObjectAtIndex:EEGC1row];
+    [self didChangeValueForKey:@"EEGC1MA"];
+}
+
+-(void)clickEEGC1:(id)sender{
+    EEGC1row = (int)[EEGC1TV selectedRow];
+}
+
+-(void)clickEEGC2:(id)sender{
+    EEGC2row = (int)[EEGC2TV selectedRow];
+}
+
+-(IBAction)EEGC2insert:(id)sender{
+
+    EEGCslctCnt = (int)[EPUB2 indexOfSelectedItem];
+    
+    if(EEGCslctCnt == 3 || EEGCslctCnt == 4
+       || EEGCslctCnt == 5 || EEGCslctCnt == 6){
+        
+        if([EEGC2MA count] >= 64) return;
+        
+        EEGCslctFlag = true;
+        EEGCslctFlag2 = true;
+        
+        [eventWindow close];
+        [eventEndGameCondition close];
+        
+    }else if(EEGCslctCnt == 7){
+        
+    }else if(EEGCslctCnt == 8){
+        
+    }
+    
+}
+-(IBAction)EEGC2delete:(id)sender{
+
+    [self willChangeValueForKey:@"EEGC2MA"];
+    [EEGC2MA removeObjectAtIndex:EEGC2row];
+    [self didChangeValueForKey:@"EEGC2MA"];
+}
+
+-(IBAction)EEGCsubmit:(id)sender{
+    if(EEGCflag == 1){
+        MF[MFselectedRow+1].MS.EGClight = [self EEGCselection:MF[MFselectedRow+1].MS.EGClight];
+        
+        for(int i =0;i<64;i++){
+            MF[MFselectedRow+1].MS.EGClight.etValue1[i] = nil;
+        }
+        
+        for(int i = 0;i < [EEGC1MA count];i++){
+            MF[MFselectedRow+1].MS.EGClight.etValue1[i] = [[[EEGC1MA objectAtIndex:i] valueForKey:@"value"] retain];
+        }
+        
+        for(int i =0;i<64;i++){
+            MF[MFselectedRow+1].MS.EGClight.etValue2[i] = nil;
+        }
+        
+        for(int i = 0;i < [EEGC2MA count];i++){
+            MF[MFselectedRow+1].MS.EGClight.etValue2[i] = [[[EEGC2MA objectAtIndex:i] valueForKey:@"value"] retain];
+        }
+        
+        //NSLog(@"%@", [EEGC1MA objectAtIndex:0]);
+    }
+    if(EEGCflag == 2){
+        MF[MFselectedRow+1].MS.EGCdark = [self EEGCselection:MF[MFselectedRow+1].MS.EGCdark];
+        
+        for(int i =0;i<64;i++){
+            MF[MFselectedRow+1].MS.EGCdark.etValue1[i] = nil;
+        }
+        
+        for(int i = 0;i < [EEGC1MA count];i++){
+            MF[MFselectedRow+1].MS.EGCdark.etValue1[i] = [[[EEGC1MA objectAtIndex:i] valueForKey:@"value"] retain];
+        }
+        
+        for(int i =0;i<64;i++){
+            MF[MFselectedRow+1].MS.EGCdark.etValue2[i] = nil;
+        }
+        
+        for(int i = 0;i < [EEGC2MA count];i++){
+            MF[MFselectedRow+1].MS.EGCdark.etValue2[i] = [[[EEGC2MA objectAtIndex:i] valueForKey:@"value"] retain];
+        }
+
+    }
+    
+    [self EEGCset:MF[MFselectedRow+1].MS.EGClight flag:YES];
+    [self EEGCset:MF[MFselectedRow+1].MS.EGCdark flag:NO];
+    
+    [eventEndGameCondition close];
+
+}
+
+-(IBAction)EEGCcancel:(id)sender{
+
+    [eventEndGameCondition close];
+
+}
+
+-(IBAction)EEGC1select:(id)sender{
+    [self willChangeValueForKey:@"EEGC1MA"];
+    [EEGC1MA removeAllObjects];
+    [self didChangeValueForKey:@"EEGC1MA"];
+    
+    for(int i = 0;i < 64;i++){
+        if(EEGCflag == 1)
+            MF[MFselectedRow+1].MS.EGClight.etValue1[i] = nil;
+        if(EEGCflag == 2)
+            MF[MFselectedRow+1].MS.EGCdark.etValue1[i] = nil;
+    }
+}
+-(IBAction)EEGC2select:(id)sender{
+    [self willChangeValueForKey:@"EEGC2MA"];
+    [EEGC2MA removeAllObjects];
+    [self didChangeValueForKey:@"EEGC2MA"];
+
+    for(int i = 0;i < 64;i++){
+        if(EEGCflag == 1)
+            MF[MFselectedRow+1].MS.EGClight.etValue2[i] = nil;
+        if(EEGCflag == 2)
+            MF[MFselectedRow+1].MS.EGCdark.etValue2[i] = nil;
+    }
+}
+
+-(IBAction)EDclose:(id)sender{
+    
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+
+    [MS.SCRPTname replaceObjectAtIndex:[eventListAC selectionIndex] withObject:[EDnameTF stringValue]];
+    
+    
+    [eventListAC setValue:[NSString stringWithFormat:@"●%@", [MS.SCRPTname objectAtIndex:[eventListAC selectionIndex]]] forKeyPath:@"selection.value"];
+    
+    MF[MFselectedRow+1].MS.D = MSDTOPP;
+    
+    EDproceedFlag = false;
+    [eventDetailWindow close];
+}
+
+-(void)initEDlist{
+    [self willChangeValueForKey:@"eventDetailListMA"];
+    [eventDetailListMA removeAllObjects];
+    [self didChangeValueForKey:@"eventDetailListMA"];
+    
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+    
+    MAPSCRIPTD *mdTop = MS.D;
+    
+    
+    if(MS.D)
+    for(int i = 0;i < [MS.D->SCRPT count];i++){
+        
+        if(!MS.D->SCRPT)
+            break;
+        
+        
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        [dict setValue:[NSString stringWithFormat:@"%@", [MS.D->SCRPT objectAtIndex:i]] forKey:@"value"];
+        [self willChangeValueForKey:@"eventDetailListMA"];
+        [eventDetailListMA addObject:dict];
+        [self didChangeValueForKey:@"eventDetailListMA"];
+    }
+    
+    NSMutableDictionary* dict = [NSMutableDictionary new];
+    [dict setValue:[NSString stringWithFormat:@"◆"] forKey:@"value"];
+    [self willChangeValueForKey:@"eventDetailListMA"];
+    [eventDetailListMA addObject:dict];
+    [self didChangeValueForKey:@"eventDetailListMA"];
+    
+    if(MS.D)
+    if(!MS.D->SCRPT){
+        MS.D->SCRPT = [NSMutableArray new];
+    }
+    
+        [self willChangeValueForKey:@"EDswitch1MA"];
+        [EDswitch1MA removeAllObjects];
+        [self didChangeValueForKey:@"EDswitch1MA"];
+        [self willChangeValueForKey:@"EDswitch2MA"];
+        [EDswitch2MA removeAllObjects];
+        [self didChangeValueForKey:@"EDswitch2MA"];
+    
+    if(MS.D->switch1)
+    for(int i = 0; *(MS.D->switch1+i) > 0;i++){
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+            [dict setValue:[NSString stringWithFormat:@"%d", *(MS.D->switch1 + i)] forKey:@"value"];
+            
+            [self willChangeValueForKey:@"EDswitch1MA"];
+            [EDswitch1MA addObject:dict];
+            [self didChangeValueForKey:@"EDswitch1MA"];
+        
+    
+    }
+    
+    if(MS.D->switch2)
+    for(int i = 0; *(MS.D->switch2+i) > 0;i++){
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+        [dict setValue:[NSString stringWithFormat:@"%d", *(MS.D->switch2 + i)] forKey:@"value"];
+        
+        [self willChangeValueForKey:@"EDswitch2MA"];
+        [EDswitch2MA addObject:dict];
+        [self didChangeValueForKey:@"EDswitch2MA"];
+        
+        
+    }
+    MS.D->type = -1;
+    
+    
+    if(MS.D->switch1f)
+        [EDswitch1Btn setState:YES];
+    else
+        [EDswitch1Btn setState:NO];
+
+    if(MS.D->switch2f)
+        [EDswitch2Btn setState:YES];
+    else
+        [EDswitch2Btn setState:NO];
+    MS.D = mdTop;
+    MF[MFselectedRow+1].MS = MS;
+        
+             
+}
+
+
+-(IBAction)EDinsert:(id)sender{
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+    
+    MAPSCRIPTD *mdTop = MS.D;
+    
+    for(int i = 0;i < [eventListTV clickedRow];i++){
+        MS.D = MS.D->next;
+    }
+    
+    if(EDrow >= 0 && [MS.D->SCRPT count] > 0){
+        
+        
+        if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆文章の表示"]){
+            NSMutableDictionary* dict = [NSMutableDictionary new];
+            [dict setValue:[NSString stringWithFormat:@"◆"] forKey:@"value"];
+            [self willChangeValueForKey:@"eventDetailListMA"];
+            [eventDetailListMA insertObject:dict atIndex:EDrow];
+            [self didChangeValueForKey:@"eventDetailListMA"];
+            [eventDetailListAC setSelectionIndex:EDrow];
+            
+            squareCnt = 1;
+            for(int i = 0;i < EDrow;i++){
+                NSArray *array = nil;
+                if([MS.D->SCRPT count] > 0){
+                    array = [[MS.D->SCRPT objectAtIndex:i] componentsSeparatedByString:@"◆"];
+                }
+                if([array count] >= 2){
+                    squareCnt++;
+                }
+            }
+            
+            MAPSCRIPT0 *MS0top = MS.D->P;
+            
+            if(!MS.D->P){
+                MS.D->P = calloc(1, sizeof(MAPSCRIPT0));
+                MS0top = MS.D->P;
+            }else if(MS.D->P){
+                
+                if(squareCnt == 1){
+                    MAPSCRIPT0 *temp = MS.D->P;
+                    MS.D->P = calloc(1, sizeof(MAPSCRIPT0));
+                    MS.D->P->next = temp;
+                    MS0top = MS.D->P;
+                }else if(squareCnt > 1){
+                    for (int i = 0; i < squareCnt-2; i++) {
+                        MS.D->P = MS.D->P->next;
+                    }
+                    MAPSCRIPT0 *temp = MS.D->P->next;
+                    MS.D->P->next = calloc(1, sizeof(MAPSCRIPT0));
+                    MS.D->P->next->next = temp;
+                }
+            }
+            
+            MS.D->P = MS0top;
+            
+        }else if(1){
+        
+        }
+        insertFlag = true;
+        [eventDetailSelectionWindow makeKeyAndOrderFront:nil];
+        }
+    
+    MS.D = mdTop;
+    
+    MF[MFselectedRow+1].MS = MS;
+
+}
+
+-(IBAction)EDdelete:(id)sender{
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+    
+    MAPSCRIPTD *mdTop = MS.D;
+    
+    for(int i = 0;i < [eventListTV clickedRow];i++){
+        MS.D = MS.D->next;
+    }
+    
+    if(EDrow >= 0 && [MS.D->SCRPT count] > 0){
+        
+        MAPSCRIPTD *MSD = MF[MFselectedRow+1].MS.D;
+        if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆文章の表示"]){
+            [self EDdeleteFunc:MS msd:MSD];
+        }else if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆選択肢の表示"]){
+            [self EDdeleteFunc:MS msd:MSD];
+        }else if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆スイッチの操作ON"]){
+            [self EDdeleteFunc:MS msd:MSD];
+        }else if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆スイッチの操作OFF"]){
+            [self EDdeleteFunc:MS msd:MSD];
+        }else if([[MS.D->SCRPT objectAtIndex:EDrow] isEqualToString:@"◆タイマーの操作"]){
+            [self EDdeleteFunc:MS msd:MSD];
+
+
+        }
+    }
+    
+    MS.D = mdTop;
+    MF[MFselectedRow+1].MS = MS;
+
+}
+
+
+-(IBAction)EDcancel:(id)sender{
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+    
+    if(editFlag){
+    
+    
+    
+    }
+    if(insertFlag){
+    
+        
+        [self willChangeValueForKey:@"eventDetailListMA"];
+        [eventDetailListMA removeObjectAtIndex:EDrow];
+        [self didChangeValueForKey:@"eventDetailListMA"];
+        [eventDetailListAC setSelectionIndex:EDrow];
+        
+        MAPSCRIPT0 *MS0top = MS.D->P;
+        
+        if(squareCnt == 1){
+            MAPSCRIPT0 *temp = MS.D->P->next;
+            MS.D->P = temp;
+            MS0top = MS.D->P;
+        }else if(squareCnt > 1){
+            for (int i = 0; i < squareCnt-2; i++) {
+                MS.D->P = MS.D->P->next;
+            }
+            MAPSCRIPT0 *temp = MS.D->P->next->next;
+            MS.D->P->next = temp;
+        }
+    
+    
+        MS.D->P = MS0top;
+    }else{
+        [self willChangeValueForKey:@"eventDetailListMA"];
+        [eventDetailListMA removeObjectAtIndex:EDrow];
+        [self didChangeValueForKey:@"eventDetailListMA"];
+        [eventDetailListAC setSelectionIndex:EDrow];
+    
+        MAPSCRIPT0 *MS0top = MS.D->P;
+        
+        if(squareCnt == 1){
+            MAPSCRIPT0 *temp;
+            if(MS.D->P)
+            {temp = MS.D->P->next;
+                MS.D->P = temp;}
+            MS0top = MS.D->P;
+        }else if(squareCnt > 1){
+            for (int i = 0; i < squareCnt-2; i++) {
+                MS.D->P = MS.D->P->next;
+            }
+            MAPSCRIPT0 *temp = MS.D->P->next->next;
+            MS.D->P->next = temp;
+        }
+    
+    
+        MS.D->P = MS0top;
+    }
+    
+    
+    MF[MFselectedRow+1].MS = MS;
+    
+    editFlag = false;
+    insertFlag = false;
+    [eventDetailSelectionWindow close];
+}
+
+-(void)initEDtext{
+    
+    MAPSCRIPTD *MSD = msdtop;
+    MAPSCRIPT0 *MS0 = msdtop->P;
+    MAPSCRIPT0 *m0Top = MS0;
+    
+    for (int i = 0;i < squareCnt-1;i++) {
+        MS0 = MS0->next;
+    }
+    
+    if(MS0){
+        if(MS0->S1.name)
+            [EDtextName setStringValue:MS0->S1.name];
+        else
+            [EDtextName setStringValue:@""];
+        if(MS0->S1.str)
+        [EDtextString setStringValue:MS0->S1.str];
+        else
+            [EDtextString setStringValue:@""];
+        if(MS0->S1.img)
+            [EDtextImage setImage:MS0->S1.img];
+        else
+            [EDtextImage setImage:nil];
+    }/*else{
+            [EDtextName setStringValue:@""];
+            [EDtextString setStringValue:@""];
+            [EDtextImage setImage:nil];
+    }*/
+    
+    MS0 = m0Top;
+    
+    MF[MFselectedRow+1].MS.D = MSDTOP;
+    MF[MFselectedRow+1].MS.D->P = MS0;
+}
+
+
+-(IBAction)EDtext:(id)sender{
+    
+    [self initEDtext];
+    
+    [EDtextWindow makeKeyAndOrderFront:nil];
+}
+
+-(IBAction)EDtextSubmit:(id)sender{
+    
+    MAPSCRIPT0 *MS0 = msdtop->P;
+    MAPSCRIPT0 *m0Top = MS0;
+    
+    for (int i = 0;i < squareCnt-1;i++) {
+        MS0 = MS0->next;
+    }
+    
+    MS0->type = 0;
+    MS0->S1.name = [[EDtextName stringValue] retain];
+    MS0->S1.str = [[EDtextString stringValue] retain];
+    MS0->S1.img = [[EDtextImage image] retain];
+    
+    MAPSCRIPTD *MSD = msdtop;
+    int cnt = 0;
+    if(editFlag){
+        int instantCnt = 0;
+        int instantCnt2 = 0;
+        for (int i = 0;i < [MSD->SCRPT count];i++) {
+            NSArray *array = [[MSD->SCRPT objectAtIndex:i] componentsSeparatedByString:@"◆"];
+            if([array count] >= 2){
+                instantCnt++;
+            }
+            
+            if(instantCnt == squareCnt){
+                instantCnt2++;
+                cnt--;
+            }
+            if(instantCnt == squareCnt + 1){
+                break;
+            }
+            cnt++;
+        }
+        
+        for(int i = 0;i < instantCnt2;i++){
+            
+            [MSD->SCRPT removeObjectAtIndex:cnt];
+        
+        }
+     
+        [MSD->SCRPT insertObject:@"◆文章の表示"atIndex:cnt];
+        if(![MS0->S1.name isEqualToString:@""]) [MSD->SCRPT insertObject:[NSString stringWithFormat:@"%@:", MS0->S1.name] atIndex:cnt+1];
+        NSArray *array = [MS0->S1.str componentsSeparatedByString:@"\n"];
+        int cnt2 = 1;
+        if([MS0->S1.name isEqualToString:@""]) cnt2 = 0;
+        for (NSString *str in array) {cnt2++;
+            [MSD->SCRPT insertObject:str atIndex:cnt+cnt2];
+        }
+    }else if(insertFlag){
+        int instantCnt = 0;
+        int instantCnt2 = 0;
+        for (int i = 0;i < [MSD->SCRPT count];i++) {
+            NSArray *array = [[MSD->SCRPT objectAtIndex:i] componentsSeparatedByString:@"◆"];
+            if([array count] >= 2){
+                instantCnt++;
+            }
+            
+            if(instantCnt == squareCnt){
+                instantCnt2++;
+                cnt--;
+            }
+            if(instantCnt == squareCnt + 1){
+                break;
+            }
+            cnt++;
+        }
+
+        
+        [MSD->SCRPT insertObject:@"◆文章の表示"atIndex:cnt];
+        if(![MS0->S1.name isEqualToString:@""]) [MSD->SCRPT insertObject:[NSString stringWithFormat:@"%@:", MS0->S1.name] atIndex:cnt+1];
+        NSArray *array = [MS0->S1.str componentsSeparatedByString:@"\n"];
+        int cnt2 = 1;
+        if([MS0->S1.name isEqualToString:@""]) cnt2 = 0;
+        for (NSString *str in array) {cnt2++;
+            [MSD->SCRPT insertObject:str atIndex:cnt+cnt2];
+        }
+    }else{
+        [MSD->SCRPT addObject:@"◆文章の表示"];
+        if(![MS0->S1.name isEqualToString:@""]) [MSD->SCRPT addObject:[NSString stringWithFormat:@"%@:", MS0->S1.name]];
+        NSArray *array = [MS0->S1.str componentsSeparatedByString:@"\n"];
+        int cnt2 = 1;
+        if([MS0->S1.name isEqualToString:@""]) cnt2 = 0;
+        for (NSString *str in array) {cnt2++;
+            [MSD->SCRPT addObject:str];
+        }
+    }
+    
+    MS0 = m0Top;
+    msdtop->P = MS0;
+    
+    msdtop = MSD;
+    
+    MF[MFselectedRow+1].MS.D = MSDTOP;
+    *MF[MFselectedRow+1].MS.D = *msdtop;
+    *MF[MFselectedRow+1].MS.D->P = *(msdtop->P);
+    MF[MFselectedRow+1].MS.D = MSDTOP;
+    editFlag = false;
+    insertFlag = false;
+    [EDtextWindow close];
+    [self initEDlist];
+    [eventDetailListAC setSelectionIndex:EDrow];
+    [eventDetailSelectionWindow close];
+    
+}
+-(IBAction)EDtextCancel:(id)sender{
+    
+    editFlag = false;
+    insertFlag = false;
+    [EDtextWindow close];
+}
+-(IBAction)EDtextImageSlct:(id)sender{
+    
+    [EDtextImageButton1 setHighlighted:YES];
+    [EDtextImageButton1 setState:YES];
+    [EDtextImageButton2 setState:NO];
+    [EDtextImageButton3 setState:NO];
+    [self setEDtextImage];
+    [EDtextImageWindow makeKeyAndOrderFront:nil];
+}
+
+-(void)setEDtextImage{
+    [self willChangeValueForKey:@"EDtextImageMA"];
+    [EDtextImageMA removeAllObjects];
+    [self didChangeValueForKey:@"EDtextImageMA"];
+    
+    
+    if([EDtextImageButton1 isHighlighted]){
+        EDtextImageButtonValue = 0;
+        for(int i = 0;i < UCN;i++){
+            NSMutableDictionary* dict = [NSMutableDictionary new];
+            
+            [dict setValue:[NSString stringWithFormat:@"%@", UC[i].nameClass] forKey:@"name"];
+            [dict setValue:UC[i].imgb forKey:@"img"];
+            
+            [self willChangeValueForKey:@"EDtextImageMA"];
+            [EDtextImageMA addObject:dict];
+            [self didChangeValueForKey:@"EDtextImageMA"];
+            
+        }
+        
+    }else if([EDtextImageButton2 isHighlighted]){
+        EDtextImageButtonValue = 1;
+        
+        for(int i = 0;i < LCN;i++){
+            NSMutableDictionary* dict = [NSMutableDictionary new];
+            
+            [dict setValue:[NSString stringWithFormat:@"%@", LC[i].name] forKey:@"name"];
+            [dict setValue:LC[i].imgb forKey:@"img"];
+            
+            
+            [self willChangeValueForKey:@"EDtextImageMA"];
+            [EDtextImageMA addObject:dict];
+            [self didChangeValueForKey:@"EDtextImageMA"];
+        }
+    
+    }else if([EDtextImageButton3 isHighlighted]){
+        EDtextImageButtonValue = 2;
+        EIMG = EIMGtop;
+        while(EIMG){
+            NSMutableDictionary* dict = [NSMutableDictionary new];
+            
+            [dict setValue:[NSString stringWithFormat:@"%@", EIMG->name] forKey:@"name"];
+            [dict setValue:EIMG->img forKey:@"img"];
+            
+            [self willChangeValueForKey:@"EDtextImageMA"];
+            [EDtextImageMA addObject:dict];
+            [self didChangeValueForKey:@"EDtextImageMA"];
+            EIMG = EIMG->next;
+        }EIMG = EIMGtop;
+    }
+    [EDtextImageButton1 setHighlighted:NO];
+}
+
+
+-(void)loadEventImage{
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    NSString *eventImgDirectory = @"data/StringList/img";
+    
+    NSArray *imgList = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:eventImgDirectory error:nil];
+
+    for(NSString *path in imgList){
+        
+        if([path isEqualToString:@".DS_Store"]){
+            continue;
+        }
+        
+        static int eTopFlag = 0;
+        
+        if(eTopFlag == 0){
+            EIMG = calloc(1, sizeof(EVENTIMAGE));
+            eTopFlag = 1;
+        }else{
+            if(eTopFlag == 1){
+                eTopFlag = 2;
+                EIMGtop = EIMG;
+            }
+            EIMG->next = calloc(1, sizeof(EVENTIMAGE));
+            EIMG = EIMG->next;
+        }
+        
+        NSString *imgPath = [NSString stringWithFormat:@"%@/%@", eventImgDirectory,path];
+        EIMG->img = [[[NSImage alloc] initWithContentsOfFile:imgPath] retain];
+        EIMG->name = [path retain];
+    }
+    EIMG = EIMGtop;
+
+}
+
+
+
+
+-(IBAction)EDtextImageButton:(id)sender{
+    [self setEDtextImage];
+}
+
+-(IBAction)EDtextImageSubmit:(id)sender{
+    
+    [self setEDtextImageView];
+    
+    [EDtextImageWindow close];
+}
+
+-(void)setEDtextImageView{
+    MAPSCRIPT0 *MS0 = MF[MFselectedRow+1].MS.D->P;
+    MAPSCRIPT0 *m0Top = MS0;
+    for (int i = 0;i < squareCnt-1;i++) {
+        MS0 = MS0->next;
+    }
+    
+    if(EDtextImageButtonValue == 0){
+        MS0->S1.nameID = [UC[EDtextImageRow].nameID retain];
+        MS0->S1.iName = [UC[EDtextImageRow].nameClass retain];
+        [EDtextImage setImage:UC[EDtextImageRow].imgb];
+    }
+    if(EDtextImageButtonValue == 1){
+        MS0->S1.nameID = [LC[EDtextImageRow].nameID retain];
+        MS0->S1.iName = [LC[EDtextImageRow].name retain];
+        [EDtextImage setImage:LC[EDtextImageRow].imgb];
+    }
+    if(EDtextImageButtonValue == 2){
+        EIMG = EIMGtop;
+        for (int i = 0; i < EDtextImageRow;i++) {
+            EIMG = EIMG->next;
+        }
+        MS0->S1.nameID = [EIMG->name retain];
+        MS0->S1.iName = [[NSString stringWithFormat:@"%@", EIMG->name] retain];
+        [EDtextImage setImage:EIMG->img];
+        EIMG = EIMGtop;
+    }
+    
+    MS0 = m0Top;
+}
+
+-(IBAction)EDtextImageCancel:(id)sender{
+    [EDtextImageWindow close];
+}
+
+
+-(void)initEDselection{
+    
+    [self willChangeValueForKey:@"EDselectionMA"];
+    [EDselectionMA removeAllObjects];
+    [self didChangeValueForKey:@"EDselectionMA"];
+    
+    MAPSCRIPT0 *MS0 = MF[MFselectedRow+1].MS.D->P;
+    MAPSCRIPT0 *m0Top = MS0;
+    
+    for (int i = 0;i < squareCnt-1;i++) {
+        MS0 = MS0->next;
+    }
+    
+    if(MS0){
+        for (int i = 0; i < [MS0->S2.sel count]; i++) {
+            NSMutableDictionary* dict = [NSMutableDictionary new];
+            
+            [dict setValue:[NSString stringWithFormat:@"%@", [[MS0->S2.sel objectAtIndex:i] objectForKey:@"name"]] forKey:@"name"];
+            
+            [self willChangeValueForKey:@"EDselectionMA"];
+            [EDselectionMA addObject:dict];
+            [self didChangeValueForKey:@"EDselectionMA"];
+        }
+
+    }
+    
+    MS0 = m0Top;
+    
+    MF[MFselectedRow+1].MS.D->P = MS0;
+}
+
+-(IBAction)EDselection:(id)sender{
+    [self initEDselection];
+    
+    [EDselectionWindow makeKeyAndOrderFront:nil];
+}
+
+-(IBAction)EDselectionAdd:(id)sender{
+
+    MAPSCRIPT0 *MS0 = MF[MFselectedRow+1].MS.D->P;
+    MAPSCRIPT0 *m0Top = MS0;
+    
+    for(int i = 0;i < squareCnt-1;i++){
+        MS0 = MS0->next;
+    }
+    
+    if(MS0){
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+        [dict setValue:[NSString stringWithFormat:@"%@", @"新規選択肢"] forKey:@"name"];
+        
+        [self willChangeValueForKey:@"EDselectionMA"];
+        [EDselectionMA addObject:dict];
+        [self didChangeValueForKey:@"EDselectionMA"];
+        [EDselectionAC setSelectionIndex:[EDselectionMA count]-1];
+        EDselRow = [EDselectionMA count]-1;
+    }
+    
+    MS0 = m0Top;
+    
+    MF[MFselectedRow+1].MS.D->P = MS0;
+
+}
+-(IBAction)EDselectionDelete:(id)sender{
+
+    if(EDselRow < 0) return;
+    
+    MAPSCRIPT0 *MS0 = MF[MFselectedRow+1].MS.D->P;
+    MAPSCRIPT0 *m0Top = MS0;
+    
+    
+    for(int i = 0;i < squareCnt-1;i++){
+        MS0 = MS0->next;
+    }
+    
+    if(MS0){
+        
+        [self willChangeValueForKey:@"EDselectionMA"];
+        [EDselectionMA removeObjectAtIndex:EDselRow];
+        [self didChangeValueForKey:@"EDselectionMA"];
+        if(EDselRow > 0) {
+            [EDselectionAC setSelectionIndex:EDselRow-1];
+            EDselRow -= 1;
+        }
+        else {
+            [EDselectionAC setSelectionIndex:0];
+            EDselRow = 0;
+        }
+    }
+    
+    MS0 = m0Top;
+    
+    MF[MFselectedRow+1].MS.D->P = MS0;
+
+
+}
+-(IBAction)EDselectionSubmit:(id)sender{
+    MAPSCRIPT0 *MS0 = MF[MFselectedRow+1].MS.D->P;
+    MAPSCRIPT0 *m0Top = MS0;
+    MAPSCRIPT2A *m2ATop;
+    
+    if([EDselectionMA count] <= 0)
+        return;
+    
+    for(int i = 0;i < squareCnt-1;i++){
+        MS0 = MS0->next;
+    }
+    
+    MAPSCRIPTD *MSD = MF[MFselectedRow+1].MS.D;
+    int cnt = 0;
+    if(editFlag){
+        int instantCnt = 0;
+        int instantCnt2 = 0;
+        MS0->S2.sel = [NSMutableArray new];
+        [MS0->S2.sel setArray:EDselectionMA];
+        [self EDsquareCount:&cnt cnt1:&instantCnt cnt2:&instantCnt2];
+        
+        for(int i = 0;i < instantCnt2;i++){
+            
+            [MSD->SCRPT removeObjectAtIndex:cnt];
+            
+        }
+        
+        [MSD->SCRPT insertObject:@"◆選択肢の表示"atIndex:cnt];
+        for(int i = 0 ;i < [MS0->S2.sel count];i++){
+            NSString *str = @"";
+            for(int j = 1;j < MS0->indent;j++){
+                str = [str stringByAppendingString:@" "];
+            }
+            [MSD->SCRPT insertObject:[NSString stringWithFormat:@"%@:%@の場合", str, [[MS0->S2.sel objectAtIndex:i] objectForKey:@"name"]] atIndex:cnt+i*2+1];
+            NSString *str2 = @"";
+            for(int j = 0;j < MS0->indent;j++){
+                str2 = [str2 stringByAppendingString:@" "];
+            }
+            [MSD->SCRPT insertObject:[NSString stringWithFormat:@"%@◆", str2] atIndex:cnt+i*2+2];
+        }
+        NSString *str3 = @"";
+        for(int j = 1;j < MS0->indent;j++){
+            str3 = [str3 stringByAppendingString:@" "];
+        }
+        [MSD->SCRPT insertObject:[NSString stringWithFormat:@"%@:分岐終了", str3] atIndex:cnt+[MS0->S2.sel count]*2+1];
+    }else if(insertFlag){
+        MS0->indent++;
+        MS0->S2.sel = [NSMutableArray new];
+        [MS0->S2.sel setArray:EDselectionMA];
+        
+        for (int i = 0; i < [MS0->S2.sel count]; i++) {
+            if(i == 0){
+                MS0->S2.S = calloc(1, sizeof(MAPSCRIPT2A));
+                MS0->S2.S->next = NULL;
+                m2ATop = MS0->S2.S;
+            }
+            else{
+                MS0->S2.S->next = calloc(1, sizeof(MAPSCRIPT2A));
+                MS0->S2.S = MS0->S2.S->next;
+                MS0->S2.S->next = NULL;
+            }
+        }
+        
+        
+        int instantCnt = 0;
+        int instantCnt2 = 0;
+        [self EDsquareCount:&cnt cnt1:&instantCnt cnt2:&instantCnt2];
+        
+        [MSD->SCRPT insertObject:@"◆選択肢の表示"atIndex:cnt];
+        for(int i = 0 ;i < [MS0->S2.sel count];i++){
+            NSString *str = @"";
+            
+            for(int j = 1;j < MS0->indent;j++){
+                str = [str stringByAppendingString:@" "];
+            }
+            [MSD->SCRPT insertObject:[NSString stringWithFormat:@"%@:%@の場合", str, [[MS0->S2.sel objectAtIndex:i] objectForKey:@"name"]] atIndex:cnt+i*2+1];
+            NSString *str2 = @"";
+            for(int j = 0;j < MS0->indent;j++){
+                str2 = [str2 stringByAppendingString:@" "];
+            }
+            [MSD->SCRPT insertObject:[NSString stringWithFormat:@"%@◆", str2] atIndex:cnt+i*2+2];
+        }
+        NSString *str3 = @"";
+        for(int j = 1;j < MS0->indent;j++){
+            str3 = [str3 stringByAppendingString:@" "];
+        }
+        [MSD->SCRPT insertObject:[NSString stringWithFormat:@"%@:分岐終了", str3] atIndex:cnt+[MS0->S2.sel count]*2+1];
+    }else{
+        MS0->indent++;
+        MS0->S2.sel = [NSMutableArray new];
+        [MS0->S2.sel setArray:EDselectionMA];
+        
+        for (int i = 0; i < [MS0->S2.sel count]; i++) {
+            if(i == 0){
+                MS0->S2.S = calloc(1, sizeof(MAPSCRIPT2A));
+                MS0->S2.S->next = NULL;
+                m2ATop = MS0->S2.S;
+            }
+            else{
+                MS0->S2.S->next = calloc(1, sizeof(MAPSCRIPT2A));
+                MS0->S2.S = MS0->S2.S->next;
+                MS0->S2.S->next = NULL;
+            }
+        }
+        
+        [MSD->SCRPT addObject:@"◆選択肢の表示"];
+        for(int i = 0 ;i < [MS0->S2.sel count];i++){
+            NSString *str = @"";
+            for(int j = 1;j < MS0->indent;j++){
+                str = [str stringByAppendingString:@" "];
+            }
+            
+            [MSD->SCRPT addObject:[NSString stringWithFormat:@"%@:%@の場合", str, [[MS0->S2.sel objectAtIndex:i] objectForKey:@"name"]]];
+            NSString *str2 = @"";
+            for(int j = 0;j < MS0->indent;j++){
+                str2 = [str2 stringByAppendingString:@" "];
+            }
+            [MSD->SCRPT addObject:[NSString stringWithFormat:@"%@◆", str2]];
+        }
+        NSString *str3 = @"";
+        for(int j = 1;j < MS0->indent;j++){
+            str3 = [str3 stringByAppendingString:@" "];
+        }
+        [MSD->SCRPT addObject:[NSString stringWithFormat:@"%@:分岐終了", str3]];
+    }
+    
+    
+    
+    
+    
+    
+    MS0 = m0Top;
+    
+    MF[MFselectedRow+1].MS.D->P = MS0;
+    
+    [EDselectionWindow close];
+    [self initEDlist];
+    [eventDetailListAC setSelectionIndex:EDrow];
+    [eventDetailSelectionWindow close];
+}
+
+-(void)EDsquareCount:(int*)cnt cnt1:(int*)cnt1 cnt2:(int*)cnt2{
+
+    MAPSCRIPTD *MSD = MF[MFselectedRow+1].MS.D;
+    int spaceCnt = 0;
+    bool spaceCntFlag = false;
+    for (int i = 0;i < [MSD->SCRPT count];i++) {
+        NSArray *array = [[MSD->SCRPT objectAtIndex:i] componentsSeparatedByString:@"◆"];
+        NSArray *array2 = [[MSD->SCRPT objectAtIndex:i] componentsSeparatedByString:@" "];
+        if([array count] >= 2 && !spaceCntFlag){
+            *cnt1 += 1;
+        }else if([array count] >= 2 && spaceCntFlag && spaceCnt == (int)[array2 count]-1){
+            *cnt1 += 1;
+        }
+        
+        if(*cnt1 == squareCnt){
+            *cnt2 += 1;
+            *cnt -= 1;
+            if(!spaceCntFlag){
+                spaceCnt = (int)[array2 count]-1;
+                spaceCntFlag = true;
+            }
+        }
+        if(*cnt1 == squareCnt + 1){
+            break;
+        }
+        *cnt += 1;
+        
+    }
+}
+
+-(IBAction)EDselectionCancel:(id)sender{
+    
+    [EDselectionWindow close];
+}
+
+-(void)initEDvalue{
+    
+    [self willChangeValueForKey:@"EDvalueMA"];
+    [EDvalueMA removeAllObjects];
+    [self didChangeValueForKey:@"EDvalueMA"];
+    
+    //※追加予定
+}
+
+
+-(IBAction)EDvalue:(id)sender{
+    
+    [self initEDvalue];
+    
+    [EDvalueWindow makeKeyAndOrderFront:nil];
+    
+}
+
+-(IBAction)EDvalueSubmit:(id)sender{
+
+    //追加予定
+    
+    [EDvalueWindow close];
+}
+
+-(IBAction)EDvalueCancel:(id)sender{
+
+    [EDvalueWindow close];
+}
+
+-(void)initEDswitch{
+    
+    
+    
+    //※追加予定
+}
+
+
+-(IBAction)EDswitch:(id)sender{
+
+    [self initEDswitch];
+    
+    [EDswitchTF setStringValue:@""];
+    
+    SuicchiSentakuflag = true;
+    
+    [EDSwitchWindow2 makeKeyAndOrderFront:nil];
+}
+
+-(IBAction)EDswitchSubmit:(id)sender{
+
+    //追加予定
+    
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+    
+    MS.D = msdtop;
+    MAPSCRIPTD *MSDt = MS.D;
+    
+    if(SuicchiONOFFsentakuflag){
+        [self willChangeValueForKey:@"EDswitch1MA"];
+        [EDswitch1MA removeAllObjects];
+        [self didChangeValueForKey:@"EDswitch1MA"];
+        
+        NSArray *array = [[EDswitchTF stringValue] componentsSeparatedByString:@" "];
+        if([array count] <= 0) return;
+        
+        MS.D->switch1 = calloc([array count], sizeof(int));
+        
+        for(int i = 0;i < [array count];i++){
+            if([[array objectAtIndex:i] isEqualToString:nil]) continue;
+            NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+            
+            *(MS.D->switch1 + i) = [[array objectAtIndex:i] intValue];
+            [dict setValue:[NSString stringWithFormat:@"%d", [[array objectAtIndex:i] intValue]] forKey:@"value"];
+        
+            [self willChangeValueForKey:@"EDswitch1MA"];
+            [EDswitch1MA addObject:dict];
+            [self didChangeValueForKey:@"EDswitch1MA"];
+        }
+    
+    
+    }else if(!SuicchiONOFFsentakuflag){
+        [self willChangeValueForKey:@"EDswitch2MA"];
+        [EDswitch2MA removeAllObjects];
+        [self didChangeValueForKey:@"EDswitch2MA"];
+    
+        NSArray *array = [[EDswitchTF stringValue] componentsSeparatedByString:@" "];
+        if([array count] <= 0) return;
+        
+        MS.D->switch2 = calloc([array count], sizeof(int));
+        
+        for(int i = 0;i < [array count];i++){
+            if([[array objectAtIndex:i] isEqualToString:nil]) continue;
+            NSMutableDictionary* dict = [NSMutableDictionary new];
+            
+            *(MS.D->switch2 + i) = [[array objectAtIndex:i] intValue];
+            [dict setValue:[NSString stringWithFormat:@"%d", [[array objectAtIndex:i] intValue]] forKey:@"value"];
+            
+            [self willChangeValueForKey:@"EDswitch2MA"];
+            [EDswitch2MA addObject:dict];
+            [self didChangeValueForKey:@"EDswitch2MA"];
+        }
+    }
+    
+    
+    
+    [EDswitchWindow close];
+}
+
+
+-(IBAction)EDswitchCancel:(id)sender{
+    
+    [EDswitchWindow close];
+    
+}
+
+-(void)initEDvar{
+    
+    [self willChangeValueForKey:@"EDvarMA"];
+    [EDvarMA removeAllObjects];
+    [self didChangeValueForKey:@"EDvarMA"];
+    
+    
+    //※追加予定
+}
+
+-(IBAction)EDvariable:(id)sender{
+
+    [self initEDvar];
+    
+    [EDvarWindow makeKeyAndOrderFront:nil];
+}
+
+-(IBAction)EDvariableSubmit:(id)sender{
+
+    [EDvarWindow close];
+}
+
+-(IBAction)EDvariableCancel:(id)sender{
+
+    [EDvarWindow close];
+}
+
+-(void)initEDtimer{
+    
+    
+    //※追加予定
+}
+
+-(IBAction)EDtimer:(id)sender{
+
+    [self initEDtimer];
+    
+    [EDtimerWindow makeKeyAndOrderFront:nil];
+}
+
+
+-(IBAction)EDtimerSubmit:(id)sender{
+
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+    
+    MS.D = msdtop;
+    
+    [eventDetailListMA removeObjectAtIndex:EDrow];
+    
+    MAPSCRIPT0 *MSDPt = MS.D->P;
+    
+    MAPSCRIPT0 *MS0 = MS.D->P;
+    
+    for(int i = 0;i < squareCnt - 1 ;i++){
+        MS0 = MS0->next;
+    }
+    
+    int omfgCnt = 0;
+    for(int i= 0;i < squareCnt -1;i++){
+        for(int k = 0;omfgCnt < [MS.D->SCRPT count];k++){
+            NSArray *array = [[MS.D->SCRPT objectAtIndex:omfgCnt] componentsSeparatedByString:@"◆"];
+            omfgCnt++;
+            if([array count] > 1 && omfgCnt > 1){
+                break;
+            }
+        }
+        
+    }
+    
+    if(timerDBLslickFlag){
+        [eventDetailListMA removeObjectAtIndex:EDrow];
+        [MS.D->SCRPT removeObjectAtIndex:omfgCnt];
+        [MS.D->SCRPT removeObjectAtIndex:omfgCnt];
+    }
+    MS0->timerMin = [EDTimerTF1 intValue];
+    MS0->timerSec = [EDTimerTF2 intValue];
+    MS0->timerFlag = true;
+    
+    NSMutableDictionary* dict2 = [NSMutableDictionary new];
+    
+    [dict2 setValue:[NSString stringWithFormat:@"◆タイマーの操作"] forKey:@"value"];
+    
+    [MS.D->SCRPT insertObject:@"◆タイマーの操作" atIndex:omfgCnt];
+
+    
+    [self willChangeValueForKey:@"eventDetailListMA"];
+    [eventDetailListMA insertObject:dict2 atIndex:EDrow];
+    [self didChangeValueForKey:@"eventDetailListMA"];
+    
+    
+    
+    NSMutableDictionary* dict = [NSMutableDictionary new];
+    NSString *string = [NSString stringWithFormat:@""];
+    EDrow++;
+    
+    string = [string stringByAppendingFormat:@"%d分%d秒 ", MS0->timerMin, MS0->timerSec];
+    
+    if(MS0->timerRun)
+        string = [string stringByAppendingFormat:@"始動 "];
+    else
+        string = [string stringByAppendingFormat:@"停止 "];
+    if(MS0->timerMode)
+        string = [string stringByAppendingFormat:@"足す "];
+    else
+        string = [string stringByAppendingFormat:@"引く "];
+    if(MS0->timerVisible)
+        string = [string stringByAppendingFormat:@"表示"];
+    else
+        string = [string stringByAppendingFormat:@"非表示"];
+    
+    [dict setValue:[NSString stringWithFormat:@"%@", string] forKey:@"value"];
+    
+    [dict setValue:string forKey:@"value"];
+
+    [MS.D->SCRPT insertObject:string atIndex:omfgCnt+1];
+
+    
+    [self willChangeValueForKey:@"eventDetailListMA"];
+    [eventDetailListMA insertObject:dict atIndex:EDrow];
+    [self didChangeValueForKey:@"eventDetailListMA"];
+
+    
+    MS.D->P = MS0;
+    
+    MS.D->P = MSDPt;
+    timerDBLslickFlag = false;
+    [EDtimerWindow close];
+    [eventDetailSelectionWindow close];
+}
+-(IBAction)EDtimerCancel:(id)sender{
+    
+    [EDtimerWindow close];
+}
+
+
+
+-(void)initEDterms{
+    
+    
+    //※追加予定
+}
+
+-(IBAction)EDterms:(id)sender{
+
+
+    [self initEDterms];
+    
+    [EDtermsWindow makeKeyAndOrderFront:nil];
+
+}
+
+
+
+-(IBAction)EDtermsSubmit:(id)sender{
+
+
+    [EDtermsWindow close];
+}
+
+
+-(IBAction)EDtermsCancel:(id)sender{
+
+    [EDtermsWindow close];
+}
+
+
+
+
+-(void)initEDlabel{
+    
+    
+    //※追加予定
+}
+-(IBAction)EDlabel:(id)sender{
+
+
+    [self initEDlabel];
+    
+    [EDlabelWindow makeKeyAndOrderFront:nil];
+}
+
+
+
+-(IBAction)EDlabelSubmit:(id)sender{
+
+    [EDlabelWindow close];
+}
+-(IBAction)EDlabelCancel:(id)sender{
+
+    [EDlabelWindow close];
+
+}
+
+
+
+
+-(void)initEDlabelJump{
+    
+    
+    //※追加予定
+}
+
+
+-(IBAction)EDlabelJump:(id)sender{
+
+
+    [self initEDlabelJump];
+    
+    [EDlabelJumpWindow makeKeyAndOrderFront:nil];
+}
+
+
+-(IBAction)EDlabelJumpSubmit:(id)sender{
+
+    
+    
+    [EDlabelJumpWindow close];
+
+}
+
+
+
+-(IBAction)EDlabelJumpCancel:(id)sender{
+
+
+
+
+    [EDlabelJumpWindow close];
+
+}
+
+
+
+-(void)initEDmemo{
+    
+    
+    //※追加予定
+}
+
+
+-(IBAction)EDmemo:(id)sender{
+
+
+
+    [self initEDmemo];
+    
+    [EDmemoWindow makeKeyAndOrderFront:nil];
+}
+
+-(IBAction)EDmemoSubmit:(id)sender{
+
+    [EDmemoWindow close];
+}
+-(IBAction)EDmemoCancel:(id)sender{
+
+    [EDmemoWindow close];
+}
+
+
+-(void)initEDresource{
+    
+    
+    //※追加予定
+}
+
+
+
+
+-(IBAction)EDresource:(id)sender{
+
+
+    [self initEDresource];
+    
+    [EDresourceWindow makeKeyAndOrderFront:nil];
+
+}
+
+
+-(IBAction)EDresourceSubmit:(id)sender{
+
+
+    [EDresourceWindow close];
+}
+
+
+
+-(IBAction)EDresourceCancel:(id)sender{
+
+    [EDresourceWindow close];
+}
+
+
+
+
+-(IBAction)EDitem:(id)sender{}
+-(IBAction)EDmember:(id)sender{}
+
+
+
+
+
+-(void)initEDhp{
+    
+    
+    //※追加予定
+}
+
+-(IBAction)EDhp:(id)sender{
+
+
+    [self initEDhp];
+    
+    [EDhpWindow makeKeyAndOrderFront:nil];
+}
+
+
+
+-(IBAction)EDhpSubmit:(id)sender{
+
+
+    [EDhpWindow close];
+
+
+}
+
+-(IBAction)EDhpCancel:(id)sender{
+
+
+
+    [EDhpWindow close];
+
+}
+
+-(IBAction)EDmp:(id)sender{}
+-(IBAction)EDstatus:(id)sender{}
+-(IBAction)EDstate:(id)sender{}
+-(IBAction)EDskill:(id)sender{}
+-(IBAction)EDname:(id)sender{}
+-(IBAction)EDequip:(id)sender{}
+-(IBAction)EDattackFlagOn:(id)sender{}
+
+-(IBAction)EDmove:(id)sender{}
+-(IBAction)EDappear:(id)sender{}
+-(IBAction)EDdissapear:(id)sender{}
+
+-(IBAction)EDplace:(id)sender{}
+-(IBAction)EDwait:(id)sender{}
+-(IBAction)EDpilot:(id)sender{}
+-(IBAction)EDunit:(id)sender{}
+-(IBAction)EDbgm:(id)sender{}
+-(IBAction)EDbgmFadeOut:(id)sender{}
+-(IBAction)EDse:(id)sender{}
+-(IBAction)EDseStop:(id)sender{}
+
+-(IBAction)EDbattle:(id)sender{}
+-(IBAction)EDshop:(id)sender{}
+-(IBAction)EDnameInput:(id)sender{}
+
+-(IBAction)EDgameOver:(id)sender{}
+-(IBAction)EDstageClear:(id)sender{}
+-(IBAction)EDtitle:(id)sender{}
+
+
+-(IBAction)EDSWOKbtn:(id)sender{
+    
+    
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+    
+    MS.D = msdtop;
+    
+    [eventDetailListMA removeObjectAtIndex:EDrow];
+    
+    MAPSCRIPT0 *MSDPt = MS.D->P;
+    
+    MAPSCRIPT0 *MS0 = MS.D->P;
+    MAPSCRIPTD *MSD = MS.D;
+    
+    for(int i = 0;i < squareCnt - 1 ;i++){
+        MS0 = MS0->next;
+    }
+    
+    int omfgCnt = 0;
+    for(int i= 0;i < squareCnt -1;i++){
+        for(int k = 0;omfgCnt < [MS.D->SCRPT count];k++){
+            NSArray *array = [[MS.D->SCRPT objectAtIndex:omfgCnt] componentsSeparatedByString:@"◆"];
+            omfgCnt++;
+            if([array count] > 1 && omfgCnt > 1){
+                break;
+            }
+        }
+        
+    }
+    
+    if(suicchiDBLslickFlag){
+        [eventDetailListMA removeObjectAtIndex:EDrow];
+        [MS.D->SCRPT removeObjectAtIndex:omfgCnt];
+        [MS.D->SCRPT removeObjectAtIndex:omfgCnt];
+    }
+    
+    
+    MS0->type = 3;
+    
+    if([EDSWON state] == YES){
+    
+        NSMutableDictionary* dict2 = [NSMutableDictionary new];
+        
+        [dict2 setValue:[NSString stringWithFormat:@"◆スイッチの操作ON"] forKey:@"value"];
+        
+        if(!suicchiDBLslickFlag)
+            [MS.D->SCRPT insertObject:@"◆スイッチの操作ON" atIndex:omfgCnt];
+        if(suicchiDBLslickFlag)
+            [MS.D->SCRPT insertObject:@"◆スイッチの操作ON" atIndex:omfgCnt];
+        
+        [self willChangeValueForKey:@"eventDetailListMA"];
+        [eventDetailListMA insertObject:dict2 atIndex:EDrow];
+        [self didChangeValueForKey:@"eventDetailListMA"];
+        
+        NSArray *array = [[EDSWTF stringValue] componentsSeparatedByString:@" "];
+        
+        MS0->switch1 = calloc([array count], sizeof(int));
+        
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        NSString *string = [NSString stringWithFormat:@""];
+        EDrow++;
+        for(int i = 0;i < [array count];i++){
+            //if([[array objectAtIndex:i] isEqualToString:nil]) continue;
+            
+            *(MS0->switch1 + i) = [[array objectAtIndex:i] intValue];
+            
+            string = [string stringByAppendingFormat:@"%d", [[array objectAtIndex:i] intValue]];
+            
+            if(i + 1 < [array count]){
+                string = [string stringByAppendingFormat:@","];
+            }
+        }
+        
+        [dict setValue:string forKey:@"value"];
+        if(!suicchiDBLslickFlag)
+            [MS.D->SCRPT insertObject:string atIndex:omfgCnt+1];
+        if(suicchiDBLslickFlag)
+            [MS.D->SCRPT insertObject:string atIndex:omfgCnt+1];
+        
+        [self willChangeValueForKey:@"eventDetailListMA"];
+        [eventDetailListMA insertObject:dict atIndex:EDrow];
+        [self didChangeValueForKey:@"eventDetailListMA"];
+        
+    
+    }else{
+        
+        NSMutableDictionary* dict2 = [NSMutableDictionary new];
+        
+        [dict2 setValue:[NSString stringWithFormat:@"◆スイッチの操作OFF"] forKey:@"value"];
+        
+        if(!suicchiDBLslickFlag)
+            [MS.D->SCRPT insertObject:@"◆スイッチの操作OFF" atIndex:omfgCnt];
+        if(suicchiDBLslickFlag)
+            [MS.D->SCRPT insertObject:@"◆スイッチの操作OFF" atIndex:omfgCnt];
+        
+        [self willChangeValueForKey:@"eventDetailListMA"];
+        [eventDetailListMA insertObject:dict2 atIndex:EDrow];
+        [self didChangeValueForKey:@"eventDetailListMA"];
+        
+        NSArray *array = [[EDSWTF stringValue] componentsSeparatedByString:@" "];
+        
+        MS0->switch2 = calloc([array count], sizeof(int));
+        
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        NSString *string = [NSString stringWithFormat:@""];
+        EDrow++;
+        for(int i = 0;i < [array count];i++){
+            //if([[array objectAtIndex:i] isEqualToString:nil]) continue;
+            
+            *(MS0->switch2 + i) = [[array objectAtIndex:i] intValue];
+            
+            string = [string stringByAppendingFormat:@"%d", [[array objectAtIndex:i] intValue]];
+             
+            if(i + 1 < [array count]){
+                string = [string stringByAppendingFormat:@","];
+            }
+        }
+        
+        [dict setValue:string forKey:@"value"];
+        
+        if(!suicchiDBLslickFlag)
+            [MS.D->SCRPT insertObject:string atIndex:omfgCnt+1];
+        if(suicchiDBLslickFlag)
+            [MS.D->SCRPT insertObject:string atIndex:omfgCnt+1];
+        
+        [self willChangeValueForKey:@"eventDetailListMA"];
+        [eventDetailListMA insertObject:dict atIndex:EDrow];
+        [self didChangeValueForKey:@"eventDetailListMA"];
+    
+    
+    
+    }
+    
+    MS.D->P = MS0;
+    MS.D->P = MSDPt;
+    
+    MS.D = msdtop;
+    
+    
+    
+    [eventDetailListAC setSelectionIndex:EDrow];
+    SuicchiSentakuflag = false;
+    suicchiDBLslickFlag = false;
+    [EDSwitchWindow2 close];
+    [eventDetailSelectionWindow close];
+}
+
+
+-(IBAction)EDSWCancelbtn:(id)sender{
+    
+    [EDSwitchWindow2 close];
+}
+
+
+
+
+
+-(IBAction)playerSetBtn1:(id)sender{
+
+    playerSet1 = (int)[eventPlayerSetPUB1 indexOfSelectedItem];
+
+    MF[MFselectedRow+1].MS.playerSet1 = playerSet1;
+}
+
+
+-(IBAction)playerSetBtn2:(id)sender{
+
+
+    playerSet2 = (int)[eventPlayerSetPUB2 indexOfSelectedItem];
+    MF[MFselectedRow+1].MS.playerSet2 = playerSet2;
+
+}
+
+
+-(IBAction)setBattleModeBtn:(id)sender{
+
+    battleSetMode = [eventBattleDetailBtn intValue];
+
+    MF[MFselectedRow+1].MS.battleSetMode = battleSetMode;
+
+}
+
+
+-(IBAction)EDTimerSetBtn1:(id)sender{
+    
+    fuckingRetardedBtnPushed1 = true;
+    
+
+
+    
+}
+-(IBAction)EDTimerSetBtn2:(id)sender{
+
+    fuckingRetardedBtnPushed1 = true;
+
+
+
+
+
+
+
+
+}
+-(IBAction)EDTimerSetBtn3:(id)sender{
+    
+    fuckingRetardedBtnPushed1 = true;
+
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@end
diff --git a/Awars III/MapView.h b/Awars III/MapView.h
new file mode 100755 (executable)
index 0000000..1806037
--- /dev/null
@@ -0,0 +1,64 @@
+//
+//  MapView.h
+//  Awars III
+//
+//  Created by Killery on 2012/12/15.
+//  Copyright (c) 2012年 Killery. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "MapChipList.h"
+#import "BuildChipList.h"
+#import "UnitChipList.h"
+#import "ChipView.h"
+#import "CommandView.h"
+#import "MapEditor.h"
+#import "EventScene.h"
+#import "ScenarioList.h"
+
+int chipNum[1002][1002];
+int buildNum[1002][1002];
+int unitNum[1002][1002];
+int loadNum[1002][1002];
+int buildTeam[1002][1002];
+int unitTeam[1002][1002];
+int posX;
+int posY;
+
+int chipHeight;
+int chipWidth;
+int chipHeightPost;
+int chipWidthPost;
+
+bool mapChipDataLoadFail;
+
+int eSlctX;
+int eSlctY;
+int clickUpCnt;
+bool doubleClickedFlag;
+
+int MSDPONOFFFlagNum;
+
+@interface MapView : NSView
+{
+    NSTimer *time0;
+    NSImage *chip, *chip2;
+    NSImage *chip1A;
+    NSImage *chip2A;
+    NSImage *chip3A, *chip4A, *chip5A, *chip6A;
+    NSImage *chip1B, *chip2B, *chip3B, *chip4B, *chip5B, *chip6B;
+    
+    NSImage *buildTeamImg[9];
+    NSImage *unitTeamImg[9];
+    
+    NSPoint drugPoint;
+
+    NSArray *fileDataArray;
+    
+}
+-(NSImage*)LoadImage:(NSString*)name;
+-(void)DrawImage:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy;
+
+-(void)loadMapChip;
+
+@end
diff --git a/Awars III/MapView.m b/Awars III/MapView.m
new file mode 100755 (executable)
index 0000000..68ad4d8
--- /dev/null
@@ -0,0 +1,1011 @@
+//
+//  MapView.m
+//  Awars III
+//
+//  Created by Killery on 2012/12/15.
+//  Copyright (c) 2012年 Killery. All rights reserved.
+//
+
+#import "MapView.h"
+
+@implementation MapView
+
+- (id)initWithFrame:(NSRect)frame
+{
+    self = [super initWithFrame:frame];
+    if (self) {
+        time0  = [NSTimer
+                 scheduledTimerWithTimeInterval:0.05f
+                 target:self
+                 selector:@selector(EventLoop00:)
+                 userInfo:nil
+                 repeats:YES
+                 ];
+        chip = [[self LoadImage:@"マス.png"] retain];
+        chip2 = [[self LoadImage:@"セレクター.png"] retain];
+        
+        chip1A = [[self LoadImage:@"ccはた青.png"] retain];
+        chip2A = [[self LoadImage:@"ccはた青2.png"] retain];
+        chip3A = [[self LoadImage:@"ccはた赤.png"] retain];
+        chip4A = [[self LoadImage:@"ccはた赤2.png"] retain];
+        chip5A = [[self LoadImage:@"ccはた黄.png"] retain];
+        chip6A = [[self LoadImage:@"ccはた黄2.png"] retain];
+        
+        chip1B = [[self LoadImage:@"cc旗青.png"] retain];
+        chip2B = [[self LoadImage:@"cc旗青2.png"] retain];
+        chip3B = [[self LoadImage:@"cc旗赤.png"] retain];
+        chip4B = [[self LoadImage:@"cc旗赤2.png"] retain];
+        chip5B = [[self LoadImage:@"cc旗黄.png"] retain];
+        chip6B = [[self LoadImage:@"cc旗黄2.png"] retain];
+        
+        buildTeamImg[0] = chip1A;
+        buildTeamImg[1] = chip2A;
+        buildTeamImg[2] = chip3A;
+        buildTeamImg[3] = chip4A;
+        buildTeamImg[4] = chip5A;
+        buildTeamImg[5] = chip6A;
+        unitTeamImg[0] = chip1B;
+        unitTeamImg[1] = chip2B;
+        unitTeamImg[2] = chip3B;
+        unitTeamImg[3] = chip4B;
+        unitTeamImg[4] = chip5B;
+        unitTeamImg[5] = chip6B;
+        [self initMapChipFileDirectory];
+        
+        for (int i = 0; i <= chipHeight;i++)
+            for (int j = 0;j<= chipWidth;j++)
+                unitNum[i][j] = -1;
+        
+        
+         NSRect seRect = NSMakeRect(0, 0, chipHeight*32, chipWidth*32);
+         [self setFrame:seRect];
+         
+         
+    }
+    
+    
+    
+    
+    
+    
+    return self;
+}
+-(void)EventLoop00:(NSTimer*)time{
+    
+    if(saveMapChipFlag){saveMapChipFlag = false;
+        [self saveMapChip];
+    }
+    if(mapSizeChangedFlag){mapSizeChangedFlag = false;
+        
+        NSRect seRect;
+        seRect.size.height = chipHeight*32;
+        seRect.size.width = chipWidth*32;
+        
+        [self setFrame:seRect];
+    }
+    if(initMapChipNumbFlag){initMapChipNumbFlag = false;
+        
+        for(int i = 0;i <= chipWidth;i++){
+            for(int j = 0;j <= chipHeight;j++){
+                if(postHeight < j) {
+                    buildNum[i][j] = -1;
+                    unitNum[i][j] = -1;
+                }
+                if(postWidth < i){
+                    buildNum[i][j] = -1;
+                    unitNum[i][j] = -1;
+                }
+            
+            }
+        }
+    }
+    if(loadMapListSubmitFlag){loadMapListSubmitFlag = false;
+        chipNum[1][1] = 2;
+        [self loadMapChip];
+        NSRect seRect;
+        seRect.size.height = chipHeight*32;
+        seRect.size.width = chipWidth*32;
+        [self setFrame:seRect];
+    }
+    
+    if(EEGCslctFlag || eventPosFlag){
+        static int clickFrame = 0;
+        if(clickUpCnt%2 == 1){
+            clickFrame++;
+        }
+    
+        if(clickFrame > 100)
+            clickFrame = 0;
+        
+        if(clickUpCnt%2 == 0 && clickFrame >0){
+            doubleClickedFlag = true;
+            clickFrame = 0;
+        }
+    }
+    
+    [self setNeedsDisplay:YES];
+}
+
+
+-(BOOL)isFlipped{
+    return YES;
+}
+
+-(NSImage*)LoadImage:(NSString*)name{
+    NSImage *image = [NSImage imageNamed:name];
+    if(image == nil) return nil;
+    
+    return image;
+}
+-(void)DrawImage:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy{
+    NSRect frRect;
+    frRect.size.height = image.size.height;
+    frRect.size.width = image.size.width;
+    
+    frRect.origin.x = 0;
+    frRect.origin.y = 0;
+    
+    NSRect drRect;
+    drRect.origin.x = x;
+    drRect.origin.y = y;
+    drRect.size.height = 32;
+    drRect.size.width = 32;
+    
+    [image drawInRect:drRect fromRect:frRect operation:NSCompositeSourceOver fraction:1.0f respectFlipped:YES hints:nil];
+    
+}
+
+-(void)DrawImage2:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy{
+    NSRect frRect;
+    frRect.size.height = image.size.height;
+    frRect.size.width = image.size.width;
+    
+    frRect.origin.x = 0;
+    frRect.origin.y = 0;
+    
+    NSRect drRect;
+    drRect.origin.x = x+16-4;
+    drRect.origin.y = y+16-4;
+    drRect.size.height = 16+4;
+    drRect.size.width = 16+4;
+    
+    [image drawInRect:drRect fromRect:frRect operation:NSCompositeSourceOver fraction:1.0f respectFlipped:YES hints:nil];
+    
+}
+
+-(void)mouseDown:(NSEvent *)theEvent{
+    drugPoint = [self convertPoint:[theEvent locationInWindow] fromView:nil];
+    
+    posX = (int)drugPoint.x/32 + 1;
+    posY = (int)drugPoint.y/32 + 1;
+    
+    eSlctX = (int)drugPoint.x/32 + 1;
+    eSlctY = (int)drugPoint.y/32 + 1;
+    
+    if(EEGCslctFlag) return;
+    
+    if(CommandSelected){
+        if(SLSx == 1 && SLCy == 0) buildNum[posX][posY] = -1;
+        if(SLSx == 2 && SLCy == 0) unitNum[posX][posY] = -1;
+        if(SLSx == 3 && SLCy == 0) loadNum[posX][posY] = -1;
+        if(SLSx == 0 && SLCy == 0) {buildTeam[posX][posY] = -1; unitTeam[posX][posY] = -1;}
+    }else{
+        if(SLSx == 0 && SLCy == 1) buildTeam[posX][posY] = SLindex;
+        else if(SLSx == 0 && SLCy == 2) unitTeam[posX][posY] = SLindex;
+        else if(SLSx == 0) chipNum[posX][posY] = SLindex;
+        if(SLSx == 1) buildNum[posX][posY] = SLindexB;
+        if(SLSx == 2) unitNum[posX][posY] = SLindexU;
+        if(SLSx == 3) loadNum[posX][posY] = SLindexL;
+    
+    }
+    
+}
+
+-(void)mouseUp:(NSEvent *)theEvent{
+
+    clickUpCnt = (int)[theEvent clickCount];
+    
+    if(EEGCslctFlag){
+    
+        if([theEvent clickCount] == 2){
+        
+        }
+    
+    
+    }
+}
+
+-(void)mouseDragged:(NSEvent *)theEvent{
+    drugPoint = [self convertPoint:[theEvent locationInWindow] fromView:nil];
+    
+    posX = (int)drugPoint.x/32+1;
+    posY = (int)drugPoint.y/32+1;
+
+    if(EEGCslctFlag) return;
+    
+    if(CommandSelected){
+        if(SLSx == 1 && SLCy == 0) buildNum[posX][posY] = -1;
+        if(SLSx == 2 && SLCy == 0) unitNum[posX][posY] = -1;
+        if(SLSx == 3 && SLCy == 0) loadNum[posX][posY] = -1;
+        if(SLSx == 0 && SLCy == 0) {buildTeam[posX][posY] = -1; unitTeam[posX][posY] = -1;}
+
+    }else{
+        if(SLSx == 0 && SLCy == 1) buildTeam[posX][posY] = SLindex;
+        else if(SLSx == 0 && SLCy == 2) unitTeam[posX][posY] = SLindex;
+        else if(SLSx == 0) chipNum[posX][posY] = SLindex;
+        if(SLSx == 1) buildNum[posX][posY] = SLindexB;
+        if(SLSx == 2) unitNum[posX][posY] = SLindexU;
+        if(SLSx == 3) loadNum[posX][posY] = SLindexL;
+    
+    }
+}
+
+- (void)drawRect:(NSRect)dirtyRect
+{
+    int bx, by;
+    for(bx=1;bx<=chipWidth;bx++){
+        for(by=1;by<=chipHeight;by++){
+            [self DrawImage:chip x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by];
+            [self DrawImage:MC[chipNum[bx][by]].img x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by];
+            if(buildNum[bx][by] >= 0) [self DrawImage:BC[buildNum[bx][by]].img x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by];
+            if(loadNum[bx][by] >= 0) [self DrawImage:LC[loadNum[bx][by]].img x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by];
+            if(loadNum[bx][by] < 0)
+                if(unitNum[bx][by] >= 0) [self DrawImage:UC[unitNum[bx][by]].img x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by];
+            if(loadNum[bx][by] >= 0)
+                if(unitNum[bx][by] >= 0) [self DrawImage2:UC[unitNum[bx][by]].img x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by];
+            
+            if(buildTeam[bx][by] >= 0) [self DrawImage:buildTeamImg[buildTeam[bx][by]] x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by];
+            if(unitTeam[bx][by] >= 0) [self DrawImage:unitTeamImg[unitTeam[bx][by]] x:(bx-1)*32 y:(by-1)*32 cx:bx cy:by];
+            
+            
+        }
+    
+    }
+    
+    if(EEGCslctFlag) [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0];
+    if(eventPosFlag) [self DrawImage:chip2 x:(eSlctX - 1)*32 y:(eSlctY -1)*32 cx:0 cy:0];
+}
+
+-(void)initMapChipFileDirectory{
+    NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+
+    NSData *InitialData = [NSData dataWithContentsOfFile:@"Map/preset.txt"];
+    
+    NSString *path = @"Map";
+    NSString *pathDATA = @"Map/MD00.txt";
+    NSString *fileData = nil;
+    if(!InitialData){
+        
+        [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
+        [[NSFileManager defaultManager] createFileAtPath:pathDATA contents:nil attributes:nil];
+        
+
+        NSString *data2 =
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"####\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n"
+        @"####\n"
+        @"0,0,0\n"
+        @"####\n"
+        @"0,0,0\n"
+        @"####\n"
+        @"0,0,0\n"
+        @"####\n"
+        @"0,0,0"
+        ;
+
+        
+        
+        fileData = [NSString stringWithFormat:@"%@", data2];
+        
+        [fileData writeToFile:pathDATA atomically:YES encoding:NSUTF8StringEncoding error:nil];
+    }
+
+    for(int i = 0;i<=1000;i++){
+        for(int j = 0;j<= 1000;j++){
+            chipNum[i][j] = 0;
+            buildNum[i][j] = -1;
+            unitNum[i][j] = -1;
+            loadNum[i][j] = -1;
+            buildTeam[i][j] = -1;
+            unitTeam[i][j] = -1;
+        }
+    }
+    
+    fileData = [NSString stringWithContentsOfFile:pathDATA encoding:NSUTF8StringEncoding error:nil];
+    fileDataArray = [fileData componentsSeparatedByString:@"\n"];
+
+    int chipType = 0;
+    int chipIndexDelta = 0;
+    for(int i=1;i <= [fileDataArray count];i++){
+        NSArray *items = [[fileDataArray objectAtIndex:i-1] componentsSeparatedByString:@","];
+        
+        NSRange rangeSearch = [[items objectAtIndex:0] rangeOfString:@"####"];
+        
+        if(rangeSearch.location != NSNotFound){
+            chipType++;
+            continue;
+        }
+        
+        for(int j=1;j <= [items count];j++){
+            unitTeam[i][j] = -1;
+            buildTeam[i][j] = -1;
+        }
+        
+        if(chipType == 0){chipIndexDelta++;
+            for(int j=1;j <= [items count];j++){
+                chipNum[j][i] = [[items objectAtIndex:j-1] intValue];
+                chipWidth = (int)[items count];
+                chipHeight = chipIndexDelta;
+            }
+        }else if(chipType == 1){
+            for(int j=1;j <= [items count];j++){
+                buildNum[j][i - chipIndexDelta-1] = [[items objectAtIndex:j-1] intValue]-1;
+            }
+        }else if(chipType == 2){
+            for(int j=1;j <= [items count];j++){
+                unitNum[[[items objectAtIndex:2] intValue]][[[items objectAtIndex:1] intValue]] = [[items objectAtIndex:0] intValue]-1;
+            }
+        }else if(chipType == 3){
+            for(int j=1;j <= [items count];j++){
+                buildTeam[[[items objectAtIndex:2] intValue]][[[items objectAtIndex:1] intValue]] = [[items objectAtIndex:0] intValue];
+            }
+        }else if(chipType == 4){
+            for(int j=1;j <= [items count];j++){
+                unitTeam[[[items objectAtIndex:2] intValue]][[[items objectAtIndex:1] intValue]] = [[items objectAtIndex:0] intValue];
+            }
+        }else if(chipType == 5){
+            for(int j=1;j <= [items count];j++){
+                loadNum[[[items objectAtIndex:2] intValue]][[[items objectAtIndex:1] intValue]] = [[items objectAtIndex:0] intValue]-1;
+            }
+        }
+    }
+    
+    
+    mapSizeChangedFlag = true;
+}
+
+-(void)loadMapChip{
+    NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    NSString *fileData = @"";
+    NSString *pathDATA = @"Map/";
+    
+    for(int i = 0;i<=1000;i++){
+        for(int j = 0;j<= 1000;j++){
+            chipNum[i][j] = 0;
+            buildNum[i][j] = -1;
+            unitNum[i][j] = -1;
+            loadNum[i][j] = -1;
+            buildTeam[i][j] = -1;
+            unitTeam[i][j] = -1;
+        }
+    }
+    if(!mapInitFlag){
+        pathDATA = [pathDATA stringByAppendingFormat:@"%@", MF[MFselectedRow+1].fileName];
+    }else if(mapInitFlag){
+        pathDATA = [[pathDATA stringByAppendingFormat:@"%@", [SC[storyNumb].nameMAP objectAtIndex:scenarioNumb]] retain];
+    }
+    
+    NSLog(@"%@", pathDATA);
+    
+    fileData = [NSString stringWithContentsOfFile:pathDATA encoding:NSUTF8StringEncoding error:nil];
+    fileDataArray = [fileData componentsSeparatedByString:@"\n"];
+    
+    
+    if(!fileData){
+        mapChipDataLoadFail = true;
+        return;
+    }
+    
+    int chipType = 0;
+    int chipIndexDelta = 0;
+    int chipIndexDelta2 = 0;
+    
+    NSLog(@"fileDataArray Count:%d", (int)[fileDataArray count]);
+    
+    int indexCnt = 0;
+    
+    for(int i=1;i <= [fileDataArray count];i++){indexCnt++;
+        if([fileDataArray objectAtIndex:0] == NULL) break;
+        NSArray *items = [[fileDataArray objectAtIndex:i-1] componentsSeparatedByString:@","];
+        
+        NSRange rangeSearch = [[items objectAtIndex:0] rangeOfString:@"####"];
+        
+        if(rangeSearch.location != NSNotFound){
+            chipType++;
+            continue;
+        }
+        
+        if(chipType == 0){chipIndexDelta++;
+            for(int j=1;j <= [items count] && [items count] >= 2;j++){
+                chipNum[j][i] = [[items objectAtIndex:j-1] intValue];
+                chipWidth = (int)[items count];
+                chipHeight = chipIndexDelta;
+            }
+        }else if(chipType == 1){chipIndexDelta2++;
+            for(int j=1;j <= [items count] && [items count] >= 2;j++){
+                buildNum[j][i - chipIndexDelta-1] = [[items objectAtIndex:j-1] intValue]-1;
+            }
+        }else if(chipType == 2){
+            for(int j=1;j <= [items count] && [items count] >= 2;j++){
+                unitNum[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue]-1;
+            }
+        }else if(chipType == 3){
+            for(int j=1;j <= [items count] && [items count] >= 2;j++){
+                buildTeam[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue];
+            }
+        }else if(chipType == 4){
+            for(int j=1;j <= [items count] && [items count] >= 2;j++){
+                unitTeam[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue];
+            }
+        }else if(chipType == 5){
+            for(int j=1;j <= [items count] && [items count] >= 2;j++){
+                loadNum[[[items objectAtIndex:1] intValue]][[[items objectAtIndex:2] intValue]] = [[items objectAtIndex:0] intValue]-1;
+            }
+        }
+        
+        NSRange rangeSearch2 = [[items objectAtIndex:0] rangeOfString:@"----"];
+        
+        if(rangeSearch2.location != NSNotFound){
+            break;
+        }
+    }
+    
+    
+    bool EGdarkFlag = false;
+    
+    if(mapInitFlag){
+    MFselectedRow = 0;
+    for (int i = 1;i < 512;i++) {
+        if([[SC[storyNumb].nameMAP objectAtIndex:scenarioNumb] isEqualToString:[NSString stringWithFormat:@"%@", MF[i].fileName]])
+            break;
+        MFselectedRow++;
+    }
+    }
+    
+    
+    int EGcnt = 0;
+    for(int i = indexCnt;i < [fileDataArray count];i++){indexCnt++;
+        NSArray *items = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@"|"];
+        EGcnt++;
+        
+        NSRange rangeSearch = [[items objectAtIndex:0] rangeOfString:@"####"];
+        
+        if(rangeSearch.location != NSNotFound){
+            EGdarkFlag = true;
+            EGcnt = 0;
+        }
+        
+        if(!EGdarkFlag){
+            
+            if(EGcnt == 1){
+                MF[MFselectedRow+1].MS.EGClight.endType1 = [[items objectAtIndex:0] intValue];
+                MF[MFselectedRow+1].MS.EGClight.endType2 = [[items objectAtIndex:1] intValue];
+            }else if(EGcnt == 2){
+                for(int k = 0;k < 64;k++){
+                    if(k > [items count]-1) break;
+                    if([[items objectAtIndex:k] isEqualToString:@"NULL"]) break;
+                    MF[MFselectedRow+1].MS.EGClight.etValue1[k] = [[items objectAtIndex:k] retain];
+                }
+            }else if(EGcnt == 3){
+                for(int k = 0;k < 64;k++){
+                    if(k > [items count]-1) break;
+                    if([[items objectAtIndex:k] isEqualToString:@"NULL"]) break;
+                    MF[MFselectedRow+1].MS.EGClight.etValue2[k] = [[items objectAtIndex:k] retain];
+                }
+            }
+        
+        }else{
+            if(EGcnt == 1){
+                MF[MFselectedRow+1].MS.EGCdark.endType1 = [[items objectAtIndex:0] intValue];
+                MF[MFselectedRow+1].MS.EGCdark.endType2 = [[items objectAtIndex:1] intValue];
+            }else if(EGcnt == 2){
+                for(int k = 0;k < 64;k++){
+                    if(k > [items count]-1) break;
+                    if([[items objectAtIndex:k] isEqualToString:@"NULL"]) break;
+                    MF[MFselectedRow+1].MS.EGCdark.etValue1[k] = [[items objectAtIndex:k] retain];
+                }
+            }else if(EGcnt == 3){
+                for(int k = 0;k < 64;k++){
+                    if(k > [items count]-1) break;
+                    if([[items objectAtIndex:k] isEqualToString:@"NULL"]) break;
+                    MF[MFselectedRow+1].MS.EGCdark.etValue2[k] = [[items objectAtIndex:k] retain];
+                }
+            }
+        
+        
+        
+        }
+        if([[fileDataArray objectAtIndex:i] isEqualToString:@"----"])
+            break;
+    }
+    
+    NSArray *items = [[fileDataArray objectAtIndex:indexCnt] componentsSeparatedByString:@","];
+    
+    playerSet1 = [[items objectAtIndex:0] intValue];
+    playerSet2 = [[items objectAtIndex:1] intValue];
+    battleSetMode = [[items objectAtIndex:2] intValue];
+    
+    MF[MFselectedRow+1].MS.playerSet1 = playerSet1;
+    MF[MFselectedRow+1].MS.playerSet2 = playerSet2;
+    MF[MFselectedRow+1].MS.battleSetMode = battleSetMode;
+    
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+    [MS.SCRPTname removeAllObjects];
+    MAPSCRIPTD *MSDtop = NULL;
+    MAPSCRIPT0 *MSDPtop = NULL;
+  
+    fileData = [NSString stringWithContentsOfFile:pathDATA encoding:NSUTF8StringEncoding error:nil];
+    fileDataArray = [fileData componentsSeparatedByString:@"========\nEVENT\n========\n"];
+    
+    NSString *fileData2 = [fileDataArray objectAtIndex:1];
+    
+    fileDataArray = [fileData2 componentsSeparatedByString:@"\n"];
+  
+    int eventIndex = 0;
+    int scriptIndex = 0;
+    int indent = 0;
+    static bool supFlag = false;
+    static bool supFlag2 = false;
+    static bool asdflag = false;
+    
+    for (int i = 0;i < [fileDataArray count]; i++) {
+        NSArray *items = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
+        NSRange rangeSearch = [[fileDataArray objectAtIndex:i] rangeOfString:@"●"];
+        NSArray *array3 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@"◆"];
+                           NSString *string2 = [NSString stringWithFormat:@"%@◆", [array3 objectAtIndex:0]];
+        NSRange rangeSearch2 = [[fileDataArray objectAtIndex:i] rangeOfString:string2];
+        
+        
+        if (rangeSearch.location == !NSNotFound) {
+            
+            if(supFlag){
+                //MS.D->P->S1.str = [MS.D->P->S1.str substringToIndex:MS.D->P->S1.str.length-3];
+                
+                MS.D->P = MSDPtop;
+                MS.D->next = calloc(1, sizeof(MAPSCRIPTD));
+                MS.D = MS.D->next;
+                MSDPtop = MS.D->P;
+                asdflag = true;
+            }
+            if(!supFlag){
+                MS.D = calloc(1, sizeof(MAPSCRIPTD));
+                MSDtop = MS.D;
+                MS.SCRPTname = [NSMutableArray new];
+                supFlag = true;
+            }
+            if(!MS.D){
+
+            }else {
+                if(!MS.D->P){
+                    MS.D->P = MSDPtop;
+                }
+            }
+            NSArray *items2 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@" "];
+            NSString *string = [[items2 objectAtIndex:0] substringFromIndex:1];
+            
+            [MS.SCRPTname addObject:string];
+            
+            if([items2 count] >= 2){
+                NSArray *items3 = [[items2 objectAtIndex:1] componentsSeparatedByString:@"["];
+                MS.D->type = [[items3 objectAtIndex:0] intValue];
+                NSArray *items4 = [[items3 objectAtIndex:1] componentsSeparatedByString:@","];
+                MS.D->x = [[items4 objectAtIndex:0] intValue];
+                MS.D->y = [[items4 objectAtIndex:1] intValue];
+                
+                
+                NSArray *items51 = [[items2 objectAtIndex:1] componentsSeparatedByString:@"ON["];
+                if([items51 count] > 1){
+                NSArray *items5 = [[items51 objectAtIndex:1] componentsSeparatedByString:@"OFF["];
+                NSArray *items6 = [[items5 objectAtIndex:0] componentsSeparatedByString:@","];
+                if([items6 objectAtIndex:0] > 0){
+                if([items6 count] > 0 && [items6 objectAtIndex:0] > 0)
+                 MS.D->switch1 = calloc([items6 count], sizeof(int));
+                    MS.D->switch1f = true;
+                for (int i = 0;[items6 count] > i && [[items6 objectAtIndex:i] intValue] > 0;i++) {
+                    *(MS.D->switch1+i) = [[items6 objectAtIndex:i] intValue];
+                }
+                }
+                }
+               
+                NSArray *items7 = [[items2 objectAtIndex:1] componentsSeparatedByString:@"OFF["];
+                if([items7 count] > 1){
+                NSArray *items8 = [[items7 objectAtIndex:1] componentsSeparatedByString:@","];
+                if([items8 objectAtIndex:0] > 0){
+                if([items8 count] > 0 && [items8 objectAtIndex:0] > 0)
+                    MS.D->switch2 = calloc([items8 count], sizeof(int));
+                    MS.D->switch2f = true;
+                for (int i = 0;[items8 count] > i && [[items8 objectAtIndex:i] intValue] > 0;i++) {
+                    *(MS.D->switch2+i) = [[items8 objectAtIndex:i] intValue];
+                }
+                }
+                }
+                //NSLog(@"OMG %d,%d,%d", MS.D->type,MS.D->x,MS.D->y);
+            }
+            eventIndex++;
+            scriptIndex = 0;
+            continue;
+        }
+        
+        if (rangeSearch2.location == !NSNotFound) {
+            
+            if(asdflag){
+                MS.D->SCRPT = [NSMutableArray new];
+                asdflag = false;
+            }
+            
+            if(!supFlag2){
+                MS.D->SCRPT = [NSMutableArray new];
+                supFlag2 = true;
+                MS.D->P = NULL;
+            }
+            
+            if(!MS.D->P){
+                MS.D->P = calloc(1, sizeof(MAPSCRIPT0));
+                MSDPtop = MS.D->P;
+                MS.D->SCRPT = [NSMutableArray new];
+            }
+            else {
+                MS.D->P->next = calloc(1, sizeof(MAPSCRIPT0));
+                MS.D->P = MS.D->P->next;
+                MS.D->P->next = NULL;
+            }
+            
+            NSArray *items0 = [[items objectAtIndex:0] componentsSeparatedByString:@"◆"];
+            
+            indent = [[items0 objectAtIndex:0] intValue];
+            MS.D->P->type = [[items0 objectAtIndex:1] intValue];
+            
+            
+            if(MS.D->P->type == 0){
+                MS.D->P->indent = indent;
+                MS.D->P->S1.nameID = [[items objectAtIndex:1] retain];
+                MS.D->P->S1.name = [[items objectAtIndex:2] retain];
+                MS.D->P->S1.iName = [[items objectAtIndex:3] retain];
+                for(int k = 0; k < UCN;k++){
+                    if(MS.D->P->S1.nameID)
+                    if([MS.D->P->S1.nameID isEqualToString:UC[k].nameID]){
+                        MS.D->P->S1.img = [UC[k].imgb retain];
+                        break;
+                    }
+                }
+                for(int k = 0; k < LCN;k++){
+                    if(MS.D->P->S1.nameID)
+                        if([MS.D->P->S1.nameID isEqualToString:LC[k].nameID]){
+                            MS.D->P->S1.img = [UC[k].imgb retain];
+                            break;
+                        }
+                }
+                EIMG = EIMGtop;
+                while (EIMG) {
+                    if(MS.D->P->S1.nameID)
+                        if([MS.D->P->S1.nameID isEqualToString:EIMG->name]){
+                            MS.D->P->S1.img = [EIMG->img retain];
+                            break;
+                        }
+                    EIMG = EIMG->next;
+                }EIMG = EIMGtop;
+                
+                [MS.D->SCRPT addObject:@"◆文章の表示"];
+                if(![MS.D->P->S1.name isEqualToString:@""])
+                    [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@:", MS.D->P->S1.name]];
+            }
+            
+            if(MS.D->P->type == 3){
+                MS.D->P->indent = indent;
+                if([[items objectAtIndex:1] isEqualToString:@"ON"]){
+                    MSDPONOFFFlagNum = 1;
+                }
+                if([[items objectAtIndex:1] isEqualToString:@"OFF"]){
+                    MSDPONOFFFlagNum = 2;
+                }
+                
+                NSString *string;
+                
+                if(MSDPONOFFFlagNum == 1) string = @"ON";
+                if(MSDPONOFFFlagNum == 2) string = @"OFF";
+                
+                [MS.D->SCRPT addObject:[NSString stringWithFormat:@"◆スイッチの操作%@", string]];
+            }
+            
+            scriptIndex++;
+            //continue;
+        }else{
+            
+                if(MS.D){
+                        {if(MS.D->P)
+                            {if(MS.D->P->type == 0){
+                                {    if(!MS.D->P->S1.str) {
+                                    MS.D->P->S1.str = @"";
+                                }
+                                            NSString *string = @"";
+                                            string = [[string stringByAppendingFormat:@"%@", [fileDataArray objectAtIndex:i]] retain];
+                                    if([string isEqualToString:@""]) continue;
+                                            MS.D->P->S1.str = [[MS.D->P->S1.str stringByAppendingString:string] retain];
+                                    MS.D->P->S1.str = [[MS.D->P->S1.str stringByAppendingFormat:@"\n"] retain];
+                                    if(![string isEqualToString:@""])
+                                            [MS.D->SCRPT addObject:[NSString stringWithFormat:@"%@", [fileDataArray objectAtIndex:i]]];
+                            
+                                }
+                            }if(MS.D->P->type == 3){
+                                NSString *string = @"";
+                                if(MSDPONOFFFlagNum == 1){
+                                    NSArray *items0 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
+                                    MS.D->P->switch1 = calloc([items0 count], sizeof(int));
+                                    for (int i = 0;i < [items0 count];i++) {
+                                        *(MS.D->P->switch1 + i) = [[items0 objectAtIndex:i] intValue];
+                                        string = [string stringByAppendingFormat:@"%d",[[items0 objectAtIndex:i] intValue]];
+                                        if(i+1 < [items0 count])
+                                        string = [string stringByAppendingFormat:@","];
+                                    }
+                                }if(MSDPONOFFFlagNum == 2){
+                                    NSArray *items0 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
+                                    MS.D->P->switch2 = calloc([items0 count], sizeof(int));
+                                    for (int i = 0;i < [items0 count];i++) {
+                                        *(MS.D->P->switch2 + i) = [[items0 objectAtIndex:i] intValue];
+                                        string = [string stringByAppendingFormat:@"%d",[[items0 objectAtIndex:i] intValue]];
+                                        if(i+1 < [items0 count])
+                                            string = [string stringByAppendingFormat:@","];
+                                    }
+                                }
+                                [MS.D->SCRPT addObject:[NSString stringWithString:string]];
+                            }
+                            }
+                        }
+            }scriptIndex++;
+        }
+    }
+    
+    //MS.D->P->S1.str = [MS.D->P->S1.str substringToIndex:MS.D->P->S1.str.length-4];
+    if(MS.D) MS.D->P = MSDPtop;
+    MS.D = MSDtop;
+    
+    MSDTOPP = MSDtop;
+    supFlag = false;
+    supFlag2 = false;
+    MF[MFselectedRow+1].MS = MS;
+    mapSizeChangedFlag = true;
+    mapLoadFlagForMSD = false;
+    mapLoadFlagForMSD2 = false;
+}
+
+-(void)saveMapChip{
+    NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+
+
+    NSString *fileData = @"";
+    NSString *pathDATA = @"Map/";
+
+    for(int i = 1;i<= chipHeight;i++){
+        for(int j = 1;j <= chipWidth;j++){
+            fileData = [fileData stringByAppendingFormat:@"%2d", chipNum[j][i]];
+            if(j == chipWidth) fileData = [fileData stringByAppendingFormat:@"\n"];
+            else {
+                fileData = [fileData stringByAppendingFormat:@","];
+            }
+        }
+    }
+    fileData = [fileData stringByAppendingFormat:@"####\n"];
+    for(int i = 1;i<= chipHeight;i++){
+        for(int j = 1;j <= chipWidth;j++){
+            fileData = [fileData stringByAppendingFormat:@"%2d", buildNum[j][i]+1];
+            if(j == chipWidth) fileData = [fileData stringByAppendingFormat:@"\n"];
+            else {
+                fileData = [fileData stringByAppendingFormat:@","];
+            }
+        }
+    }
+    fileData = [fileData stringByAppendingFormat:@"####\n"];
+    for(int i = 1;i<= chipHeight;i++){
+        for(int j = 1;j <= chipWidth;j++){
+            if(unitNum[j][i] != -1){
+                fileData = [fileData stringByAppendingFormat:@"%d", unitNum[j][i]+1];
+                fileData = [fileData stringByAppendingFormat:@","];
+                fileData = [fileData stringByAppendingFormat:@"%d", j];
+                fileData = [fileData stringByAppendingFormat:@","];
+                fileData = [fileData stringByAppendingFormat:@"%d", i];
+                fileData = [fileData stringByAppendingFormat:@"\n"];
+            }
+        }
+    }
+    fileData = [fileData stringByAppendingFormat:@"####\n"];
+    for(int i = 1;i<= chipHeight;i++){
+        for(int j = 1;j <= chipWidth;j++){
+            if(buildTeam[j][i] != -1){
+                fileData = [fileData stringByAppendingFormat:@"%d", buildTeam[j][i]];
+                fileData = [fileData stringByAppendingFormat:@","];
+                fileData = [fileData stringByAppendingFormat:@"%d", j];
+                fileData = [fileData stringByAppendingFormat:@","];
+                fileData = [fileData stringByAppendingFormat:@"%d", i];
+                fileData = [fileData stringByAppendingFormat:@"\n"];
+            }
+        }
+    }
+    fileData = [fileData stringByAppendingFormat:@"####\n"];
+    for(int i = 1;i<= chipHeight;i++){
+        for(int j = 1;j <= chipWidth;j++){
+            if(unitTeam[j][i] != -1){
+                fileData = [fileData stringByAppendingFormat:@"%d", unitTeam[j][i]];
+                fileData = [fileData stringByAppendingFormat:@","];
+                fileData = [fileData stringByAppendingFormat:@"%d", j];
+                fileData = [fileData stringByAppendingFormat:@","];
+                fileData = [fileData stringByAppendingFormat:@"%d", i];
+                fileData = [fileData stringByAppendingFormat:@"\n"];
+            }
+        }
+    }
+    fileData = [fileData stringByAppendingFormat:@"####\n"];
+    for(int i = 1;i<= chipHeight;i++){
+        for(int j = 1;j <= chipWidth;j++){
+            if(loadNum[j][i] != -1){
+                fileData = [fileData stringByAppendingFormat:@"%d", loadNum[j][i]+1];
+                fileData = [fileData stringByAppendingFormat:@","];
+                fileData = [fileData stringByAppendingFormat:@"%d", j];
+                fileData = [fileData stringByAppendingFormat:@","];
+                fileData = [fileData stringByAppendingFormat:@"%d", i];
+                fileData = [fileData stringByAppendingFormat:@"\n"];
+            }
+        }
+    }
+    
+    
+    fileData = [fileData stringByAppendingFormat:@"----\n"];
+    fileData = [fileData stringByAppendingFormat:@"%d|%d",
+                MF[MFselectedRow+1].MS.EGClight.endType1,
+                MF[MFselectedRow+1].MS.EGClight.endType2];
+    fileData = [fileData stringByAppendingFormat:@"\n"];
+    for (int i = 0; i < 64;i++) {
+        if(i == 0 && !MF[MFselectedRow+1].MS.EGClight.etValue1[i])
+            fileData = [fileData stringByAppendingFormat:@"NULL"];
+        if(!MF[MFselectedRow+1].MS.EGClight.etValue1[i]) break;
+        if(i > 0) fileData = [fileData stringByAppendingFormat:@"|"];
+        fileData = [fileData stringByAppendingFormat:@"%@",
+                    MF[MFselectedRow+1].MS.EGClight.etValue1[i]];
+    }fileData = [fileData stringByAppendingFormat:@"\n"];
+    
+    //NSLog(@"%@", fileData);
+    
+    for (int i = 0; i < 64;i++) {
+        if(i == 0 && !MF[MFselectedRow+1].MS.EGClight.etValue2[i])
+            fileData = [fileData stringByAppendingFormat:@"NULL"];
+        if(!MF[MFselectedRow+1].MS.EGClight.etValue2[i]) break;
+        if(i > 0) fileData = [fileData stringByAppendingFormat:@"|"];
+        fileData = [fileData stringByAppendingFormat:@"%@",
+                    MF[MFselectedRow+1].MS.EGClight.etValue2[i]];
+    }fileData = [fileData stringByAppendingFormat:@"\n"];
+    
+    fileData = [fileData stringByAppendingFormat:@"####\n"];
+    
+    fileData = [fileData stringByAppendingFormat:@"%d|%d",
+                MF[MFselectedRow+1].MS.EGCdark.endType1,
+                MF[MFselectedRow+1].MS.EGCdark.endType2];
+    fileData = [fileData stringByAppendingFormat:@"\n"];
+    for (int i = 0; i < 64;i++) {
+        if(i == 0 && !MF[MFselectedRow+1].MS.EGCdark.etValue1[i])
+            fileData = [fileData stringByAppendingFormat:@"NULL"];
+        if(!MF[MFselectedRow+1].MS.EGCdark.etValue1[i]) break;
+        if(i > 0) fileData = [fileData stringByAppendingFormat:@"|"];
+        fileData = [fileData stringByAppendingFormat:@"%@",
+                    MF[MFselectedRow+1].MS.EGCdark.etValue1[i]];
+    }fileData = [fileData stringByAppendingFormat:@"\n"];
+    
+    for (int i = 0; i < 64;i++) {
+        if(i == 0 && !MF[MFselectedRow+1].MS.EGCdark.etValue2[i])
+            fileData = [fileData stringByAppendingFormat:@"NULL"];
+        if(!MF[MFselectedRow+1].MS.EGCdark.etValue2[i]) break;
+        if(i > 0) fileData = [fileData stringByAppendingFormat:@"|"];
+        fileData = [fileData stringByAppendingFormat:@"%@",
+                    MF[MFselectedRow+1].MS.EGCdark.etValue2[i]];
+    }fileData = [fileData stringByAppendingFormat:@"\n"];
+    
+    fileData = [fileData stringByAppendingFormat:@"----\n"];
+    
+    fileData = [fileData stringByAppendingFormat:@"%d,%d,%d\n", playerSet1, playerSet2, battleSetMode];
+    
+    fileData = [fileData stringByAppendingFormat:@"========\nEVENT\n========\n"];
+    
+    MAPSCRIPT MS = MF[MFselectedRow+1].MS;
+    int index = 0;
+    while(MS.D){
+        MAPSCRIPT0 *MSPtop = MS.D->P;
+        if(!MS.D->P) break;
+        fileData = [fileData stringByAppendingFormat:@"●"];
+        fileData = [fileData stringByAppendingFormat:@"%@ ", [MS.SCRPTname objectAtIndex:index]];
+        fileData = [fileData stringByAppendingFormat:@"%d[%d,%d]", MS.D->type,MS.D->x, MS.D->y];
+        if(MS.D->switch1)
+        if(*MS.D->switch1 > 0){
+        fileData = [fileData stringByAppendingFormat:@"ON["];
+        for(int i = 0;*(MS.D->switch1+i) > 0;i++){
+            fileData = [fileData stringByAppendingFormat:@"%d", *(MS.D->switch1+i)];
+            if(*(MS.D->switch1+i+1)>0)
+                [fileData stringByAppendingFormat:@","];
+        }
+            fileData = [fileData stringByAppendingFormat:@"]"];
+        }
+        if(MS.D->switch2)
+        if(*MS.D->switch2 > 0){
+        fileData = [fileData stringByAppendingFormat:@"OFF["];
+        for(int i = 0;*(MS.D->switch2+i) > 0;i++){
+            fileData = [fileData stringByAppendingFormat:@"%d", *(MS.D->switch2+i)];
+            if(*(MS.D->switch2+i+1)>0)
+                [fileData stringByAppendingFormat:@","];
+        }
+            fileData = [fileData stringByAppendingFormat:@"]"];
+        }
+        fileData = [fileData stringByAppendingFormat:@"\n"];
+        
+        while(MS.D->P){
+            if(MS.D->P->type == 0){
+                fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
+                fileData = [fileData stringByAppendingFormat:@"◆0,"];
+                fileData = [fileData stringByAppendingFormat:@"%@,", MS.D->P->S1.nameID];
+                fileData = [fileData stringByAppendingFormat:@"%@,", MS.D->P->S1.name];
+                fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->S1.iName];
+                fileData = [fileData stringByAppendingFormat:@"%@\n", MS.D->P->S1.str];
+            }
+            if(MS.D->P->type == 3){
+                fileData = [fileData stringByAppendingFormat:@"%d", MS.D->P->indent];
+                fileData = [fileData stringByAppendingFormat:@"◆3,"];
+                if(MS.D->P->switch1) if(MS.D->P->switch1 > 0) fileData = [fileData stringByAppendingFormat:@"ON"];
+                if(MS.D->P->switch2) if(MS.D->P->switch2 > 0) fileData = [fileData stringByAppendingFormat:@"OFF"];
+                fileData = [fileData stringByAppendingFormat:@"\n"];
+                if(MS.D->P->switch1) for(int i = 0;*(MS.D->P->switch1+ i) > 0;i++){
+                    fileData = [fileData stringByAppendingFormat:@"%d", *(MS.D->P->switch1 + i)];
+                    if(*(MS.D->P->switch1 + i + 1) > 0) fileData = [fileData stringByAppendingFormat:@","];
+                }
+                if(MS.D->P->switch2) for(int i = 0;*(MS.D->P->switch2+i) > 0;i++){
+                    fileData = [fileData stringByAppendingFormat:@"%d", *(MS.D->P->switch2 + i)];
+                    if(*(MS.D->P->switch2 + i + 1) > 0) fileData = [fileData stringByAppendingFormat:@","];
+                }
+                fileData = [fileData stringByAppendingFormat:@"\n"];
+            }
+            MS.D->P = MS.D->P->next;
+        }
+        
+        MS.D->P = MSPtop;
+        MS.D = MS.D->next;
+        index++;
+    }
+    
+    NSLog(@"%@", fileData);
+    MS = MF[MFselectedRow+1].MS;
+    pathDATA = [pathDATA stringByAppendingFormat:@"%@", saveMapDataName];
+    [[NSFileManager defaultManager] createFileAtPath:pathDATA contents:nil attributes:nil];
+    [fileData writeToFile:pathDATA atomically:YES encoding:NSUTF8StringEncoding error:nil];
+
+}
+
+
+@end
diff --git a/Awars III/SChipView.h b/Awars III/SChipView.h
new file mode 100755 (executable)
index 0000000..cae3cfb
--- /dev/null
@@ -0,0 +1,21 @@
+//
+//  SChipView.h
+//  Awars III
+//
+//  Created by Killery on 2012/12/15.
+//  Copyright (c) 2012年 Killery. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "MapChipList.h"
+#import "BuildChipList.h"
+#import "UnitChipList.h"
+
+@interface SChipView : NSView
+{
+    NSImage *chip;
+}
+-(NSImage*)LoadImage:(NSString*)name;
+-(void)DrawImage:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy;
+
+@end
diff --git a/Awars III/SChipView.m b/Awars III/SChipView.m
new file mode 100755 (executable)
index 0000000..ebc3d5f
--- /dev/null
@@ -0,0 +1,66 @@
+//
+//  SChipView.m
+//  Awars III
+//
+//  Created by Killery on 2012/12/15.
+//  Copyright (c) 2012年 Killery. All rights reserved.
+//
+
+#import "SChipView.h"
+
+@implementation SChipView
+
+- (id)initWithFrame:(NSRect)frame
+{
+    self = [super initWithFrame:frame];
+    if (self) {
+        chip = [[self LoadImage:@"マス.png"] retain];
+        NSRect seRect;
+        seRect.size.height = 1*32;
+        seRect.size.width = 1*32;
+    }
+    
+    return self;
+}
+-(BOOL)isFlipped{
+    return YES;
+}
+
+-(NSImage*)LoadImage:(NSString*)name{
+    NSImage *image = [NSImage imageNamed:name];
+    if(image == nil) return nil;
+    //[image setFlipped:[self isFlipped]];
+    
+    return image;
+}
+-(void)DrawImage:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy{
+    NSRect frRect;
+    frRect.size.height = image.size.height;
+    frRect.size.width = image.size.width;
+    
+    frRect.origin.x = 0;
+    frRect.origin.y = 0;
+    
+    NSRect drRect;
+    drRect.origin.x = x;
+    drRect.origin.y = y;
+    drRect.size.height = 32;
+    drRect.size.width = 32;
+    
+    [image drawInRect:drRect fromRect:frRect operation:NSCompositeSourceOver fraction:1.0f respectFlipped:YES hints:nil];
+    
+}
+
+- (void)drawRect:(NSRect)dirtyRect
+{
+    int bx, by;
+    for(bx=0;bx<1;bx++){
+        for(by=0;by<1;by++){
+            [self DrawImage:chip x:bx*32 y:by*32 cx:bx cy:by];
+        }
+        
+    }
+}
+
+
+@end
diff --git a/Awars III/SeedView.h b/Awars III/SeedView.h
new file mode 100755 (executable)
index 0000000..b6cea57
--- /dev/null
@@ -0,0 +1,31 @@
+//
+//  SeedView.h
+//  Awars III
+//
+//  Created by Killery on 2012/12/15.
+//  Copyright (c) 2012年 Killery. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "MapChipList.h"
+#import "BuildChipList.h"
+#import "UnitChipList.h"
+#import "MapEditor.h"
+int SLSx;
+int SLSy;
+bool DoubleClicked;
+
+@interface SeedView : NSView
+{
+    NSTimer *time;
+    
+    NSImage *chip;
+    NSImage *chip2, *chip3, *chip4, *chip5, *chip6;
+    
+    NSPoint selectPoint;
+}
+
+-(NSImage*)LoadImage:(NSString*)name;
+-(void)DrawImage:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy;
+
+@end
diff --git a/Awars III/SeedView.m b/Awars III/SeedView.m
new file mode 100755 (executable)
index 0000000..10eeb4d
--- /dev/null
@@ -0,0 +1,94 @@
+//
+//  SeedView.m
+//  Awars III
+//
+//  Created by Killery on 2012/12/15.
+//  Copyright (c) 2012年 Killery. All rights reserved.
+//
+
+#import "SeedView.h"
+
+@implementation SeedView
+
+- (id)initWithFrame:(NSRect)frame
+{
+    self = [super initWithFrame:frame];
+    if (self) {
+        time  = [NSTimer
+                 scheduledTimerWithTimeInterval:0.05f
+                 target:self
+                 selector:@selector(EventLoop:)
+                 userInfo:nil
+                 repeats:YES
+                 ];
+        chip = [[self LoadImage:@"マス.png"] retain];
+        chip2 = [[self LoadImage:@"地形.png"] retain];
+        chip3 = [[self LoadImage:@"建物.png"] retain];
+        chip4 = [[self LoadImage:@"駒.png"] retain];
+        chip5 = [[self LoadImage:@"セレクター.png"] retain];
+        chip6 = [[self LoadImage:@"駒大.png"] retain];
+        NSRect seRect;
+        seRect.size.height = 3*32;
+        seRect.size.width = 3*32;
+    }
+    
+    return self;
+}
+
+-(void)EventLoop:(NSTimer*)time{
+    
+    [self setNeedsDisplay:YES];
+}
+
+-(BOOL)isFlipped{
+    return YES;
+}
+
+-(NSImage*)LoadImage:(NSString*)name{
+    NSImage *image = [NSImage imageNamed:name];
+    if(image == nil) return nil;
+    //[image setFlipped:[self isFlipped]];
+    
+    return image;
+}
+-(void)DrawImage:(NSImage*)image x:(float)x y:(float)y cx:(int)cx cy:(int)cy{
+    NSRect frRect;
+    frRect.size.height = image.size.height;
+    frRect.size.width = image.size.width;
+    
+    frRect.origin.x = 0;
+    frRect.origin.y = 0;
+    
+    NSRect drRect;
+    drRect.origin.x = x;
+    drRect.origin.y = y;
+    drRect.size.height = 32;
+    drRect.size.width = 32;
+    
+    [image drawInRect:drRect fromRect:frRect operation:NSCompositeSourceOver fraction:1.0f respectFlipped:YES hints:nil];
+    
+}
+
+-(void)mouseDown:(NSEvent *)theEvent{
+    selectPoint = [self convertPoint:[theEvent locationInWindow] fromView:nil];
+    
+    SLSx = (int)selectPoint.x/32;
+    SLSy = (int)selectPoint.y/32;
+}
+
+-(void)mouseUp:(NSEvent *)theEvent{
+    if([theEvent clickCount] == 2) {
+        DoubleClicked = true;
+    }
+}
+
+- (void)drawRect:(NSRect)dirtyRect
+{
+    [self DrawImage:chip2 x:0 y:0 cx:0 cy:0];
+    [self DrawImage:chip3 x:1*32 y:0 cx:1 cy:0];
+    [self DrawImage:chip4 x:2*32 y:0 cx:2 cy:0];
+    [self DrawImage:chip6 x:3*32 y:0 cx:2 cy:0];
+    [self DrawImage:chip5 x:SLSx*32 y:0 cx:2 cy:0];
+}
+
+@end
diff --git a/Awars III/UnitChipList.h b/Awars III/UnitChipList.h
new file mode 100755 (executable)
index 0000000..79ac208
--- /dev/null
@@ -0,0 +1,696 @@
+//
+//  UnitChipList.h
+//  Awars III
+//
+//  Created by Killery on 2012/12/17.
+//  Copyright (c) 2012年 Killery. All rights reserved.
+//
+
+
+typedef struct _RESIST{
+
+    int blow;
+    int slash;
+    int stub;
+    int arrow;
+    int gun;
+    int shell;
+    
+    int flame;
+    int cold;
+    int electoric;
+    int air;
+    int water;
+    int gas;
+    int holy;
+    int dark;
+    int explosion;
+    int blood;
+    
+    int paralysis;
+    int confusion;
+    int poison;
+    int sleep;
+    int charm;
+    int silent;
+    
+    
+}RESIST;
+
+typedef struct _DAMAGE{
+    
+    int index;
+    struct _DAMAGE *next;
+    
+    int type;//攻撃力とか
+    double count;
+    double pCount;
+    
+    RESIST R;
+    int seed;//属性
+    int sort;//ダメージとか回復とか
+    
+    bool continium;
+    bool absolute;
+    bool beam;
+    bool noSizeFix;
+
+}DAMAGE;
+
+typedef struct _DMGEXTEND{
+
+    int index;
+    struct _DMGEXTEND *next;
+    
+    int rate;
+    int hit;
+    int atkHit;
+    
+}DMGEXTEND;
+
+typedef struct _ATTACK{
+
+    int index;
+    struct _ATTACK *next;
+    
+    DAMAGE *D;
+    double totalD;
+    
+    DMGEXTEND *E;
+    
+    NSString *name;
+    NSString *nameID;
+    
+    int rangeA;
+    int rangeB;
+    int rangeAB;
+    int extent;
+    
+    int costType;
+    
+    double MP;
+    double AP;
+    double HP;
+    double EN;
+    
+    int pMP;
+    int pAP;
+    int pHP;
+    int pEN;
+    
+    int bullet;
+    int bulletC;
+    int hitCount;
+    int successRate;
+    int vigor;
+    int hitPercent;
+    
+    int type;
+    bool trig;
+    bool melee;
+    bool P;
+    bool dmgExtend;
+    
+    int cSupply;
+    int cFood;
+    int cMoney;
+    
+    int riku;//A120% B100% C60% D20% E0% S150% SS200%の補正値
+    int chu;
+    int umi;
+    int sora;
+    
+    NSString *cmd;
+    NSString *msg;
+    
+}ATTACK;
+
+typedef struct _EQUIP{
+    NSString *name;
+    NSString *nameRecognition;
+    NSString *nameID;
+    
+    ATTACK *A;
+    int attackListNum;
+    
+    double Weight;
+    double price;
+    
+    double HP;
+    double MP;
+    double AP;
+    double WT;
+    double BP;
+    
+    double STR;
+    double VIT;
+    double AGI;
+    double DEX;
+    double MEN;
+    double INT;
+    double LUK;
+    
+    int pSTR;
+    int pVIT;
+    int pAGI;
+    int pDEX;
+    int pMEN;
+    int pINT;
+    int pLUK;
+    
+    int MOV;
+    int type;
+    
+    double recHP;
+    int recpHP;
+    double recMP;
+    int recpMP;
+    
+    NSString *comment;
+    
+    RESIST R;
+    
+}EQUIP;
+
+typedef struct _COMMANDS{
+    
+    struct _COMMANDS *next;
+    NSString *cmd;
+    int waza;
+    NSString *hasei;
+    
+
+}COMMANDS;
+
+typedef struct _COMBO{
+    
+    struct _COMBO *next;
+    NSString *mbo;
+
+}COMBO;
+
+typedef struct _COMMAND{
+
+    int A;
+    int B;
+    int C;
+    int D;
+    
+    COMMANDS *cs;
+    COMBO *co;
+
+}COMMAND;
+
+typedef struct _STATUS{
+
+    double HP;
+    double MP;
+    double AP;
+    double WT;
+    double BP;
+
+    double STR;
+    double VIT;
+    double AGI;
+    double DEX;
+    double MEN;
+    double INT;
+    double LUK;
+    
+    double MEL;
+    double MIS;
+    double HIT;
+    double DOD;
+    double REA;
+    double SKI;
+
+    int MOV;
+    int typeMONS;
+    int typeMOVE;
+    
+    double ATK;
+    double DEF;
+    double CAP;
+    double ACU;
+    double EVA;
+
+    int cSupply;
+    int cFood;
+    int cMoney;
+    int cWT;
+    
+    int vigor;
+
+}STATUS;
+
+typedef struct _SKILL{
+    struct _SKILL *next;
+    
+    int index;
+    int type;
+    
+    int list[255];
+    double cost[255];
+    int Lv[255];
+
+
+}SKILL;
+
+typedef struct _UNITCHIP{
+    
+    RESIST R_C;
+    RESIST R_M;
+    ATTACK *A;
+    SKILL *S;
+    
+    NSString *name;
+    NSString *nameNick;
+    NSString *nameClass;
+    NSString *nameRecognition;
+    NSString *nameID;
+    bool aura;
+    
+    struct _STATUS S_C;
+    struct _STATUS S_M;
+    
+    NSString *iName;
+    NSImage *img;
+    
+    NSString *iNameb;
+    NSImage *imgb;
+    
+    int chipNumb;
+    
+    EQUIP eHead;
+    EQUIP eHandL;
+    EQUIP eHandR;
+    EQUIP eBody;
+    EQUIP eArm;
+    EQUIP eFoot;
+    
+    bool eHandLflag;
+    bool eHandRflag;
+    bool eHandLRflag;
+    bool eHeadflag;
+    bool eBodyflag;
+    bool eArmflag;
+    bool eFootflag;
+    
+    NSString *aName;
+    int attackListNum;
+    
+    COMMAND CM;
+    
+    
+    struct _UNITCHIP *E;//装備の総値
+    struct _UNITCHIP *N;//現在値に使用
+    
+}UNITCHIP;
+
+typedef struct _SKILLLIST{
+    struct _SKILLLIST *next;
+    
+    NSString *name;
+    NSString *nameID;
+    NSString *explain;
+    
+    int type;
+    
+    int build[128];
+    int unit[128];
+}SKILLLIST;
+
+#import <Foundation/Foundation.h>
+#import "MapEditor.h"
+
+
+UNITCHIP UC[4096];
+
+EQUIP EQ[4096];
+EQUIP nilEquip;
+
+NSInteger eItemNum;
+
+SKILLLIST *SKL, *SKLtop;
+int SKLrow;
+int SKLBrow;
+int SKLUrow;
+
+SKILL *Stop;
+
+int UCN;
+
+int UnitChipNum;
+
+@interface UnitChipList : NSObject
+{
+    NSTimer *UCLtime;
+    IBOutlet NSPanel* UCLPanel;
+    IBOutlet NSPanel* UCLDetailPanel;
+    IBOutlet NSPanel* UCLRegisterPanel;
+    NSPoint UCLDpoint;
+    
+    
+    NSMutableArray *unitChipListMA;
+    IBOutlet NSArrayController *unitChipListAC;
+    IBOutlet NSTableView *unitChipListTV;
+    
+    NSMutableArray *equipItemMA;
+    IBOutlet NSArrayController *equipItemAC;
+    IBOutlet NSTableView *equipItemTV;
+    NSInteger pubEquipItemIndex;
+    
+    NSArray *fileDataArray;
+    NSInteger chipNumb;
+    NSInteger itemNumb;
+    NSInteger comboItemNumb;
+    IBOutlet NSTextField* TFchipNumb;
+    
+    IBOutlet NSPanel* UCLPanelSkill;
+    IBOutlet NSPanel* UCLPanelAttack;
+    IBOutlet NSPanel* UCLPanelRegist;
+    NSPoint windowPoint;
+    
+    IBOutlet NSPanel* UCLPanelAttackDetail;
+    IBOutlet NSPanel* UCLPanelAttackList;
+    
+    IBOutlet NSPanel* UCLPanelEquipList;
+    IBOutlet NSPanel* UCLPanelSkillList;
+    
+    IBOutlet NSPanel* UCLPanelEquipDetail;
+    IBOutlet NSPanel* UCLPanelSkillDetail;
+    
+    NSMutableArray *attackListMA;
+    IBOutlet NSArrayController *attackListAC;
+    IBOutlet NSTableView *attackListTV;
+    
+    NSMutableArray *damageListMA;
+    IBOutlet NSArrayController *damageListAC;
+    IBOutlet NSTableView *damageListTV;
+    
+    NSMutableArray *hitListMA;
+    IBOutlet NSArrayController *hitListAC;
+    IBOutlet NSTableView *hitListTV;
+    
+    NSMutableArray *equipListMA;
+    IBOutlet NSArrayController *equipListAC;
+    IBOutlet NSTableView *equipListTV;
+    
+    NSMutableArray *skillListMA;
+    IBOutlet NSArrayController *skillListAC;
+    IBOutlet NSTableView *skillListTV;
+    IBOutlet NSPopUpButton *PUBsl;
+    
+    NSMutableArray *skillListBuildMA;
+    IBOutlet NSArrayController *skillListBuildAC;
+    IBOutlet NSTableView *skillListBuildTV;
+    
+    NSMutableArray *skillListUnitMA;
+    IBOutlet NSArrayController *skillListUnitAC;
+    IBOutlet NSTableView *skillListUnitTV;
+    
+    IBOutlet NSPanel* SLBpanel;
+    IBOutlet NSPanel* SLUpanel;
+    
+    IBOutlet NSTextField *TFname;
+    IBOutlet NSTextField *TFnameN;
+    IBOutlet NSTextField *TFnameR;
+    IBOutlet NSTextField *TFnameID;
+    IBOutlet NSTextField *TFnameC;
+    
+    IBOutlet NSButton *Baura;
+    
+    IBOutlet NSTextField *TFhp;
+    IBOutlet NSTextField *TFmp;
+    IBOutlet NSTextField *TFap;
+    IBOutlet NSTextField *TFwt;
+    
+    IBOutlet NSTextField *TFbp;
+    IBOutlet NSTextField *TFatk;
+    IBOutlet NSTextField *TFdef;
+    IBOutlet NSTextField *TFcap;
+    IBOutlet NSTextField *TFacu;
+    IBOutlet NSTextField *TFeva;
+    
+    IBOutlet NSTextField *TFstr;
+    IBOutlet NSTextField *TFvit;
+    IBOutlet NSTextField *TFagi;
+    IBOutlet NSTextField *TFdex;
+    IBOutlet NSTextField *TFmen;
+    IBOutlet NSTextField *TFint;
+    IBOutlet NSTextField *TFluk;
+    IBOutlet NSTextField *TFmov;
+    
+    IBOutlet NSTextField *TFmel;
+    IBOutlet NSTextField *TFmis;
+    IBOutlet NSTextField *TFhit;
+    IBOutlet NSTextField *TFdod;
+    IBOutlet NSTextField *TFrea;
+    IBOutlet NSTextField *TFski;
+
+    IBOutlet NSTextField *TFcSupply;
+    IBOutlet NSTextField *TFcFood;
+    IBOutlet NSTextField *TFcMoney;
+    IBOutlet NSTextField *TFcWT;
+    
+    IBOutlet NSPopUpButton *PUPtMons;
+    IBOutlet NSPopUpButton *PUPtMove;
+    IBOutlet NSPopUpButton *PUPtEquip;
+    
+    IBOutlet NSImageView *IVimg;
+    IBOutlet NSImageView *IVimgBig;
+    
+    
+    IBOutlet NSWindow *ILregiWIndow;
+    IBOutlet NSTextField *ILregiTF;
+    
+    IBOutlet NSTextField *ILTFname;
+    IBOutlet NSTextField *ILTFnameR;
+    IBOutlet NSTextField *ILTFnameID;
+    
+    IBOutlet NSTextField *ILTFweight;
+    IBOutlet NSTextField *ILTFprice;
+    IBOutlet NSTextField *ILTFMOV;
+    IBOutlet NSTextField *ILTFHP;
+    IBOutlet NSTextField *ILTFMP;
+    IBOutlet NSTextField *ILTFAP;
+    IBOutlet NSTextField *ILTFWT;
+    
+    IBOutlet NSTextField *ILTFSTR;
+    IBOutlet NSTextField *ILTFVIT;
+    IBOutlet NSTextField *ILTFAGI;
+    IBOutlet NSTextField *ILTFDEX;
+    IBOutlet NSTextField *ILTFMEN;
+    IBOutlet NSTextField *ILTFINT;
+    IBOutlet NSTextField *ILTFLUK;
+    
+    IBOutlet NSTextField *ILTFpSTR;
+    IBOutlet NSTextField *ILTFpVIT;
+    IBOutlet NSTextField *ILTFpAGI;
+    IBOutlet NSTextField *ILTFpDEX;
+    IBOutlet NSTextField *ILTFpMEN;
+    IBOutlet NSTextField *ILTFpINT;
+    IBOutlet NSTextField *ILTFpLUK;
+    
+    IBOutlet NSTextField *ILTFblow;
+    IBOutlet NSTextField *ILTFslash;
+    IBOutlet NSTextField *ILTFstub;
+    IBOutlet NSTextField *ILTFarrow;
+    IBOutlet NSTextField *ILTFgun;
+    IBOutlet NSTextField *ILTFshell;
+    IBOutlet NSTextField *ILTFparalysis;
+    IBOutlet NSTextField *ILTFpoison;
+    IBOutlet NSTextField *ILTFcharm;
+    IBOutlet NSTextField *ILTFconfusion;
+    IBOutlet NSTextField *ILTFsleep;
+    IBOutlet NSTextField *ILTFsilent;
+    
+    IBOutlet NSTextField *ILTFflame;
+    IBOutlet NSTextField *ILTFcold;
+    IBOutlet NSTextField *ILTFelectoric;
+    IBOutlet NSTextField *ILTFair;
+    IBOutlet NSTextField *ILTFwater;
+    IBOutlet NSTextField *ILTFgas;
+    IBOutlet NSTextField *ILTFholy;
+    IBOutlet NSTextField *ILTFdark;
+    IBOutlet NSTextField *ILTFexplosion;
+    IBOutlet NSTextField *ILTFblood;
+    
+    IBOutlet NSTextField *ILTFrecHP;
+    IBOutlet NSTextField *ILTFrecHPp;
+    IBOutlet NSTextField *ILTFrecMP;
+    IBOutlet NSTextField *ILTFrecMPp;
+    IBOutlet NSTextField *ILTFcomment;
+    
+    IBOutlet NSPopUpButton *ILPUBtype;
+    
+    IBOutlet NSTextField *ALTFname;
+    IBOutlet NSTextField *ALTFrangeA;
+    IBOutlet NSTextField *ALTFrangeB;
+    IBOutlet NSTextField *ALTFextend;
+    IBOutlet NSPopUpButton *ALPUBcost;
+    IBOutlet NSPopUpButton *ALPUBwType;
+    IBOutlet NSTextField *ALTFcost;
+    IBOutlet NSTextField *ALTFcostP;
+    
+    IBOutlet NSTextField *ALTFbullet;
+    IBOutlet NSTextField *ALTFhitCount;
+    IBOutlet NSTextField *ALTFsuccessRate;
+    IBOutlet NSTextField *ALTFvigor;
+    IBOutlet NSTextField *ALTFhitRate;
+    
+    IBOutlet NSButton *ALTFtrigger;
+    IBOutlet NSButton *ALTFmelee;
+    IBOutlet NSButton *ALTFpass;
+    IBOutlet NSButton *ALTFdmgExtent;
+    
+    IBOutlet NSPopUpButton *ALPUBriku;
+    IBOutlet NSPopUpButton *ALPUBchu;
+    IBOutlet NSPopUpButton *ALPUBumi;
+    IBOutlet NSPopUpButton *ALPUBsora;
+    
+    IBOutlet NSTextField *ALTFcSupply;
+    IBOutlet NSTextField *ALTFcFood;
+    IBOutlet NSTextField *ALTFcMoney;
+    IBOutlet NSTextField *ALTFcmd;
+    IBOutlet NSTextField *ALTFmsg;
+    
+    IBOutlet NSTextField *ALTFrate;
+    IBOutlet NSTextField *ALTFhit;
+    IBOutlet NSTextField *ALTFatkHit;
+    
+    IBOutlet NSPopUpButton *ALPUBtype;
+    IBOutlet NSPopUpButton *ALPUBseed;
+    IBOutlet NSPopUpButton *ALPUBsort;
+    IBOutlet NSTextField *ALTFdmgCount;
+    IBOutlet NSTextField *ALTFdmgRate;
+    
+    IBOutlet NSButton *ALTFcontinuum;
+    IBOutlet NSButton *ALTFabsolute;
+    IBOutlet NSButton *ALTFbeam;
+    IBOutlet NSButton *ALTFnoSizeFix;
+    
+    IBOutlet NSPopUpButton *AMbtnA;
+    IBOutlet NSPopUpButton *AMbtnB;
+    IBOutlet NSPopUpButton *AMbtnC;
+    IBOutlet NSPopUpButton *AMbtnD;
+    
+    NSMutableArray *commandListMA;
+    IBOutlet NSArrayController *commandListAC;
+    IBOutlet NSTableView *commandListTV;
+    
+    NSMutableArray *comboListMA;
+    IBOutlet NSArrayController *comboListAC;
+    IBOutlet NSTableView *comboListTV;
+    
+    IBOutlet NSTextField *RETFblow;
+    IBOutlet NSTextField *RETFslash;
+    IBOutlet NSTextField *RETFstub;
+    IBOutlet NSTextField *RETFarrow;
+    IBOutlet NSTextField *RETFgun;
+    IBOutlet NSTextField *RETFshell;
+    IBOutlet NSTextField *RETFparalysis;
+    IBOutlet NSTextField *RETFpoison;
+    IBOutlet NSTextField *RETFcharm;
+    IBOutlet NSTextField *RETFconfusion;
+    IBOutlet NSTextField *RETFsleep;
+    IBOutlet NSTextField *RETFsilent;
+    
+    IBOutlet NSTextField *RETFflame;
+    IBOutlet NSTextField *RETFcold;
+    IBOutlet NSTextField *RETFelectoric;
+    IBOutlet NSTextField *RETFair;
+    IBOutlet NSTextField *RETFwater;
+    IBOutlet NSTextField *RETFgas;
+    IBOutlet NSTextField *RETFholy;
+    IBOutlet NSTextField *RETFdark;
+    IBOutlet NSTextField *RETFexplosion;
+    IBOutlet NSTextField *RETFblood;
+    
+    UNITCHIP *UCtop[4096];
+    
+    ATTACK *atkTop;
+    int clickedRowAT;
+    int SLpbtn;
+    
+}
+
+-(IBAction)submit:(id)sender;
+- (NSMutableArray*)unitChipListMA;
+
+-(IBAction)saveUCL:(id)sender;
+-(IBAction)cancelUCL:(id)sender;
+
+-(IBAction)mobileUCL:(id)sender;
+-(IBAction)skillUCL:(id)sender;
+-(IBAction)equiplUCL:(id)sender;
+
+-(IBAction)skillListBtnUCL:(id)sender;
+-(IBAction)attackListBtnlUCL:(id)sender;
+-(IBAction)registListBtnlUCL:(id)sender;
+
+-(IBAction)equipItemSelected:(id)sender;
+-(IBAction)insertEquip:(id)sender;
+-(IBAction)removeEquip:(id)sender;
+
+-(IBAction)skillListBtnSubmitUCL:(id)sender;
+-(IBAction)attackListBtnSubmitlUCL:(id)sender;
+-(IBAction)registListBtnlSubmitUCL:(id)sender;
+
+-(IBAction)insertSkillUCL:(id)sender;
+-(IBAction)removeSkillUCL:(id)sender;
+
+-(IBAction)UCLPanelEquipListSubmitBtn:(id)sender;
+-(IBAction)UCLPanelSkillListSubmitBtn:(id)sender;
+
+-(IBAction)UCLPanelEquipListOpenBtn:(id)sender;
+-(IBAction)UCLPanelSkillListOpenBtn:(id)sender;
+
+-(IBAction)saveIL:(id)sender;
+-(IBAction)canceIL:(id)sender;
+-(IBAction)ILregi:(id)sender;
+-(IBAction)saveILregi:(id)sender;
+-(IBAction)cancelILregi:(id)sender;
+-(IBAction)attackIL:(id)sender;
+
+-(IBAction)insertAttackList:(id)sender;
+-(IBAction)removeAttackList:(id)sender;
+-(IBAction)insertComboList:(id)sender;
+-(IBAction)removeComboList:(id)sender;
+
+-(IBAction)submitAttackList:(id)sender;
+
+-(IBAction)insertDamageList:(id)sender;
+-(IBAction)removeDamageList:(id)sender;
+-(IBAction)insertHitList:(id)sender;
+-(IBAction)removeHitList:(id)sender;
+
+-(IBAction)registUCL:(id)sender;
+-(IBAction)registSaveUCL:(id)sender;
+-(IBAction)registCancelUCL:(id)sender;
+
+-(IBAction)attackListTotalSubmit:(id)sender;
+-(IBAction)attackListOpenBtn:(id)sender;
+-(IBAction)commandListAdd:(id)sender;
+-(IBAction)commandListRemove:(id)sender;
+-(IBAction)comboListAdd:(id)sender;
+-(IBAction)comboListRemove:(id)sender;
+
+-(IBAction)skillListInsert:(id)sender;
+-(IBAction)skillListDelete:(id)sender;
+
+-(IBAction)SLbuildAdd:(id)sender;
+-(IBAction)SLbuildDelete:(id)sender;
+-(IBAction)SLbuildSubmit:(id)sender;
+
+-(IBAction)SLunitAdd:(id)sender;
+-(IBAction)SLunitDelete:(id)sender;
+-(IBAction)SLunitSubmit:(id)sender;
+
+-(IBAction)addSubjMark:(id)sender;
+-(IBAction)addObjeMark:(id)sender;
+
+-(void)initFileDirectoryAttack2;
+-(void)setTotalDamage2:(int)i row:(int)r;
+
+@end
diff --git a/Awars III/UnitChipList.m b/Awars III/UnitChipList.m
new file mode 100755 (executable)
index 0000000..6d27fdb
--- /dev/null
@@ -0,0 +1,6500 @@
+//
+//  UnitChipList.m
+//  Awars III
+//
+//  Created by Killery on 2012/12/17.
+//  Copyright (c) 2012年 Killery. All rights reserved.
+//
+
+#import "UnitChipList.h"
+
+@implementation UnitChipList
+- (void)dealloc
+{
+    [super dealloc];
+}
+
+- (NSMutableArray*)unitChipListMA{
+    return unitChipListMA;
+}
+-(IBAction)submit:(id)sender{
+    [UCLPanel close];
+}
+
+-(void)awakeFromNib{
+    [unitChipListTV setTarget:self];
+    [unitChipListTV setDoubleAction:@selector(doubleClickUCL:)];
+    
+    [attackListTV setTarget:self];
+    [attackListTV setDoubleAction:@selector(doubleClickAL:)];
+    
+    [equipListTV setTarget:self];
+    [equipListTV setDoubleAction:@selector(doubleClickEQ:)];
+    
+    [attackListTV setTarget:self];
+    [attackListTV setAction:@selector(ClickAL:)];
+    
+    [skillListTV setTarget:self];
+    [skillListTV setAction:@selector(ClickSL:)];
+    [skillListTV setDoubleAction:@selector(doubleClickSL:)];
+    
+    [skillListBuildTV setTarget:self];
+    [skillListBuildTV setAction:@selector(ClickSLB:)];
+    
+    [skillListUnitTV setTarget:self];
+    [skillListUnitTV setAction:@selector(ClickSLU:)];
+    
+    [self addPUBEquipList];
+    equipItemMA = [NSMutableArray new];
+    attackListMA = [NSMutableArray new];
+    damageListMA = [NSMutableArray new];
+    hitListMA = [NSMutableArray new];
+    commandListMA = [NSMutableArray new];
+    comboListMA = [NSMutableArray new];
+    skillListMA = [NSMutableArray new];
+    skillListBuildMA = [NSMutableArray new];
+    skillListUnitMA = [NSMutableArray new];
+    
+}
+-(id)init{
+    [super init];
+    
+    if (self) {
+        UCLtime  = [NSTimer
+                    scheduledTimerWithTimeInterval:0.01f
+                    target:self
+                    selector:@selector(EventLoopUCL:)
+                    userInfo:nil
+                    repeats:YES
+                    ];
+        [self initFileDirectoryItem];
+        [self initItemList];
+        [self initFileDirectoryAttackEQ];
+        [self initFileDirectory];
+        [self initUnitChipList];
+        [self initFileDirectoryAttack];
+        [self initFileDirectoryCombo];
+        [self initTotalDamage];
+        [self initOMG];
+        [self initSkill];
+        UnitChipMax = (int)chipNumb/25+1;
+        
+        
+    }
+    
+    return self;
+}
+
+-(void)ClickSL:(id)sender{
+    SKLrow = (int)[skillListTV clickedRow];
+}
+
+-(void)doubleClickSL:(id)sender{
+    
+    if(!UC[clickIndex].S || SKLrow < 0) return;
+    
+    Stop = UC[clickIndex].S;
+    for (int i = 0;i < SKLrow;i++) {
+        UC[clickIndex].S = UC[clickIndex].S->next;
+    }
+    
+    if(UC[clickIndex].S->type == 1){
+        windowPoint.x = [UCLPanelSkill frame].origin.x + 50;
+        windowPoint.y = [UCLPanelSkill frame].origin.y;
+        [SLBpanel setFrameOrigin:windowPoint];
+        
+        
+        [self initskillListBuild];
+        
+        [SLBpanel makeKeyAndOrderFront:nil];
+    }
+    
+    if(UC[clickIndex].S->type == 2){
+        windowPoint.x = [UCLPanelSkill frame].origin.x + 50;
+        windowPoint.y = [UCLPanelSkill frame].origin.y;
+        [SLUpanel setFrameOrigin:windowPoint];
+        
+        
+        [self initskillListUnit];
+        
+        [SLUpanel makeKeyAndOrderFront:nil];
+    }
+    
+    UC[clickIndex].S = Stop;
+}
+
+-(void)ClickSLB:(id)sender{
+    SKLBrow = (int)[skillListBuildTV clickedRow];
+}
+
+-(void)ClickSLU:(id)sender{
+    SKLUrow = (int)[skillListUnitTV clickedRow];
+}
+
+-(void)initSkill{
+
+    SKILLLIST skill[] = {
+        {NULL, @"建設", @"skl1", @"フィールドに建物を建設する", 1, 0, 0},
+        {NULL, @"召還", @"skl2", @"フィールドにユニットを召還する", 2, 0, 0},
+        {NULL, @"必殺", @"skl3", @"一定の確率で与えるダメージが2倍になる", 2, 0, 0},
+    };
+    
+    const int skillNum = 3;
+    
+    
+    SKL = calloc(1, sizeof(SKILL));
+    SKLtop = SKL;
+    
+    for(int i=0;i<skillNum;i++){
+        *SKL = skill[i];
+        if(i+1 < skillNum) {
+            SKL->next = calloc(1, sizeof(SKILL));
+            *SKL->next = skill[i+1];
+        }
+        if(i == 0) SKLtop = SKL;
+        if(i+1 < skillNum) SKL = SKL->next;
+    }SKL->next = NULL;
+    SKL = SKLtop;
+    
+    [PUBsl removeAllItems];
+    [PUBsl addItemWithTitle:[NSString stringWithFormat:@"スキルリスト"]];
+    
+    SKL = SKLtop;
+    while(SKL){
+        [PUBsl addItemWithTitle:[NSString stringWithFormat:@"%@",SKL->name]];
+        SKL = SKL->next;
+    }SKL = SKLtop;
+}
+
+
+
+
+-(void)initOMG{
+    double STRfix;
+    double VITfix;
+    double AGIfix;
+    double DEXfix;
+    double MENfix;
+    double INTfix;
+    double LUKfix;
+    
+    double S, V, A, D, M, I;
+    
+    for(int i = 0;i < chipNumb;i++){
+        STRfix = (
+                  UC[i].eHandL.STR +
+                  UC[i].eHandR.STR +
+                  UC[i].eHead.STR +
+                  UC[i].eBody.STR +
+                  UC[i].eFoot.STR +
+                  UC[i].eArm.STR) +
+        UC[i].S_M.STR *(
+                    UC[i].eHandL.pSTR +
+                    UC[i].eHandR.pSTR +
+                    UC[i].eHead.pSTR +
+                    UC[i].eBody.pSTR +
+                    UC[i].eFoot.pSTR +
+                    UC[i].eArm.pSTR +
+                    0)/100
+        ;
+        
+        VITfix = (
+                  UC[i].eHandL.VIT +
+                  UC[i].eHandR.VIT +
+                  UC[i].eHead.VIT +
+                  UC[i].eBody.VIT +
+                  UC[i].eFoot.VIT +
+                  UC[i].eArm.VIT) +
+        UC[i].S_M.VIT *(
+                             UC[i].eHandL.pVIT +
+                             UC[i].eHandR.pVIT +
+                             UC[i].eHead.pVIT +
+                             UC[i].eBody.pVIT +
+                             UC[i].eFoot.pVIT +
+                             UC[i].eArm.pVIT +
+                             0)/100
+        ;
+        AGIfix = (
+                  UC[i].eHandL.AGI +
+                  UC[i].eHandR.AGI +
+                  UC[i].eHead.AGI +
+                  UC[i].eBody.AGI +
+                  UC[i].eFoot.AGI +
+                  UC[i].eArm.AGI) +
+        UC[i].S_M.AGI *(
+                             UC[i].eHandL.pAGI +
+                             UC[i].eHandR.pAGI +
+                             UC[i].eHead.pAGI +
+                             UC[i].eBody.pAGI +
+                             UC[i].eFoot.pAGI +
+                             UC[i].eArm.pAGI +
+                             0)/100
+        ;
+        DEXfix = (
+                  UC[i].eHandL.DEX +
+                  UC[i].eHandR.DEX +
+                  UC[i].eHead.DEX +
+                  UC[i].eBody.DEX +
+                  UC[i].eFoot.DEX +
+                  UC[i].eArm.DEX) +
+        UC[i].S_M.DEX *(
+                             UC[i].eHandL.pDEX +
+                             UC[i].eHandR.pDEX +
+                             UC[i].eHead.pDEX +
+                             UC[i].eBody.pDEX +
+                             UC[i].eFoot.pDEX +
+                             UC[i].eArm.pDEX +
+                             0)/100
+        ;
+        MENfix = (
+                  UC[i].eHandL.MEN +
+                  UC[i].eHandR.MEN +
+                  UC[i].eHead.MEN +
+                  UC[i].eBody.MEN +
+                  UC[i].eFoot.MEN +
+                  UC[i].eArm.MEN) +
+        UC[i].S_M.MEN *(
+                             UC[i].eHandL.pMEN +
+                             UC[i].eHandR.pMEN +
+                             UC[i].eHead.pMEN +
+                             UC[i].eBody.pMEN +
+                             UC[i].eFoot.pMEN +
+                             UC[i].eArm.pMEN +
+                             0)/100
+        ;
+        INTfix = (
+                  UC[i].eHandL.INT +
+                  UC[i].eHandR.INT +
+                  UC[i].eHead.INT +
+                  UC[i].eBody.INT +
+                  UC[i].eFoot.INT +
+                  UC[i].eArm.INT) +
+        UC[i].S_M.INT *(
+                             UC[i].eHandL.pINT +
+                             UC[i].eHandR.pINT +
+                             UC[i].eHead.pINT +
+                             UC[i].eBody.pINT +
+                             UC[i].eFoot.pINT +
+                             UC[i].eArm.pINT +
+                             0)/100
+        ;
+        LUKfix = (
+                  UC[i].eHandL.LUK +
+                  UC[i].eHandR.LUK +
+                  UC[i].eHead.LUK +
+                  UC[i].eBody.LUK +
+                  UC[i].eFoot.LUK +
+                  UC[i].eArm.LUK) +
+        UC[i].S_M.LUK *(
+                             UC[i].eHandL.pLUK +
+                             UC[i].eHandR.pLUK +
+                             UC[i].eHead.pLUK +
+                             UC[i].eBody.pLUK +
+                             UC[i].eFoot.pLUK +
+                             UC[i].eArm.pLUK +
+                             0)/100
+        ;
+        
+        S = UC[i].S_M.STR + STRfix;
+        V = UC[i].S_M.VIT + VITfix;
+        A = UC[i].S_M.AGI + AGIfix;
+        D = UC[i].S_M.DEX + DEXfix;
+        M = UC[i].S_M.MEN + MENfix;
+        I = UC[i].S_M.INT + INTfix;
+        
+        UC[i].S_M.ATK = (S*5 + D*2 + A)/8;
+        UC[i].S_M.DEF = (V*5 + M*2 + S)/8;
+        UC[i].S_M.CAP = (I*4 + D*1 + M*2)/7;
+        UC[i].S_M.ACU = (D*4 + A*1 + M)/6;
+        UC[i].S_M.EVA = (A*4 + V*1 + M)/6;
+        
+        UC[i].S_M.ATK += 0.5;
+        UC[i].S_M.DEF += 0.5;
+        UC[i].S_M.CAP += 0.5;
+        UC[i].S_M.ACU += 0.5;
+        UC[i].S_M.EVA += 0.5;
+        
+        UC[i].S_M.ATK = floor(UC[i].S_M.ATK);
+        UC[i].S_M.DEF = floor(UC[i].S_M.DEF);
+        UC[i].S_M.CAP = floor(UC[i].S_M.CAP);
+        UC[i].S_M.ACU = floor(UC[i].S_M.ACU);
+        UC[i].S_M.EVA = floor(UC[i].S_M.EVA);
+    }
+
+}
+
+NSInteger clickIndex = -1;
+NSInteger clickIndexAL = -1;
+NSInteger clickIndexEQ = -1;
+bool InitialFlag;
+
+-(void)EventLoopUCL:(NSTimer*)time{
+    
+    
+    double STRfix;
+    double VITfix;
+    double AGIfix;
+    double DEXfix;
+    double MENfix;
+    double INTfix;
+    double LUKfix;
+    
+    double S, V, A, D, M, I;
+    
+    
+    STRfix = (
+    UC[clickIndex].eHandL.STR +
+    UC[clickIndex].eHandR.STR +
+    UC[clickIndex].eHead.STR +
+    UC[clickIndex].eBody.STR +
+    UC[clickIndex].eFoot.STR +
+    UC[clickIndex].eArm.STR) +
+    UC[clickIndex].S_M.STR *(
+    UC[clickIndex].eHandL.pSTR +
+    UC[clickIndex].eHandR.pSTR +
+    UC[clickIndex].eHead.pSTR +
+    UC[clickIndex].eBody.pSTR +
+    UC[clickIndex].eFoot.pSTR +
+    UC[clickIndex].eArm.pSTR +
+    0)/100
+    ;
+    
+    VITfix = (
+              UC[clickIndex].eHandL.VIT +
+              UC[clickIndex].eHandR.VIT +
+              UC[clickIndex].eHead.VIT +
+              UC[clickIndex].eBody.VIT +
+              UC[clickIndex].eFoot.VIT +
+              UC[clickIndex].eArm.VIT) +
+    UC[clickIndex].S_M.VIT *(
+                         UC[clickIndex].eHandL.pVIT +
+                         UC[clickIndex].eHandR.pVIT +
+                         UC[clickIndex].eHead.pVIT +
+                         UC[clickIndex].eBody.pVIT +
+                         UC[clickIndex].eFoot.pVIT +
+                         UC[clickIndex].eArm.pVIT +
+                         0)/100
+    ;
+    AGIfix = (
+              UC[clickIndex].eHandL.AGI +
+              UC[clickIndex].eHandR.AGI +
+              UC[clickIndex].eHead.AGI +
+              UC[clickIndex].eBody.AGI +
+              UC[clickIndex].eFoot.AGI +
+              UC[clickIndex].eArm.AGI) +
+    UC[clickIndex].S_M.AGI *(
+                         UC[clickIndex].eHandL.pAGI +
+                         UC[clickIndex].eHandR.pAGI +
+                         UC[clickIndex].eHead.pAGI +
+                         UC[clickIndex].eBody.pAGI +
+                         UC[clickIndex].eFoot.pAGI +
+                         UC[clickIndex].eArm.pAGI +
+                         0)/100
+    ;
+    DEXfix = (
+              UC[clickIndex].eHandL.DEX +
+              UC[clickIndex].eHandR.DEX +
+              UC[clickIndex].eHead.DEX +
+              UC[clickIndex].eBody.DEX +
+              UC[clickIndex].eFoot.DEX +
+              UC[clickIndex].eArm.DEX) +
+    UC[clickIndex].S_M.DEX *(
+                         UC[clickIndex].eHandL.pDEX +
+                         UC[clickIndex].eHandR.pDEX +
+                         UC[clickIndex].eHead.pDEX +
+                         UC[clickIndex].eBody.pDEX +
+                         UC[clickIndex].eFoot.pDEX +
+                         UC[clickIndex].eArm.pDEX +
+                         0)/100
+    ;
+    MENfix = (
+              UC[clickIndex].eHandL.MEN +
+              UC[clickIndex].eHandR.MEN +
+              UC[clickIndex].eHead.MEN +
+              UC[clickIndex].eBody.MEN +
+              UC[clickIndex].eFoot.MEN +
+              UC[clickIndex].eArm.MEN) +
+    UC[clickIndex].S_M.MEN *(
+                         UC[clickIndex].eHandL.pMEN +
+                         UC[clickIndex].eHandR.pMEN +
+                         UC[clickIndex].eHead.pMEN +
+                         UC[clickIndex].eBody.pMEN +
+                         UC[clickIndex].eFoot.pMEN +
+                         UC[clickIndex].eArm.pMEN +
+                         0)/100
+    ;
+    INTfix = (
+              UC[clickIndex].eHandL.INT +
+              UC[clickIndex].eHandR.INT +
+              UC[clickIndex].eHead.INT +
+              UC[clickIndex].eBody.INT +
+              UC[clickIndex].eFoot.INT +
+              UC[clickIndex].eArm.INT) +
+    UC[clickIndex].S_M.INT *(
+                         UC[clickIndex].eHandL.pINT +
+                         UC[clickIndex].eHandR.pINT +
+                         UC[clickIndex].eHead.pINT +
+                         UC[clickIndex].eBody.pINT +
+                         UC[clickIndex].eFoot.pINT +
+                         UC[clickIndex].eArm.pINT +
+                         0)/100
+    ;
+    LUKfix = (
+              UC[clickIndex].eHandL.LUK +
+              UC[clickIndex].eHandR.LUK +
+              UC[clickIndex].eHead.LUK +
+              UC[clickIndex].eBody.LUK +
+              UC[clickIndex].eFoot.LUK +
+              UC[clickIndex].eArm.LUK) +
+    UC[clickIndex].S_M.LUK *(
+                         UC[clickIndex].eHandL.pLUK +
+                         UC[clickIndex].eHandR.pLUK +
+                         UC[clickIndex].eHead.pLUK +
+                         UC[clickIndex].eBody.pLUK +
+                         UC[clickIndex].eFoot.pLUK +
+                         UC[clickIndex].eArm.pLUK +
+                         0)/100
+    ;
+    
+    S = [TFstr intValue] + STRfix;
+    V = [TFvit intValue] + VITfix;
+    A = [TFagi intValue] + AGIfix;
+    D = [TFdex intValue] + DEXfix;
+    M = [TFmen intValue] + MENfix;
+    I = [TFint intValue] + INTfix;
+    
+    UC[clickIndex].S_M.ATK = (S*5 + D*2 + A)/8;
+    UC[clickIndex].S_M.DEF = (V*5 + M*2 + S)/8;
+    UC[clickIndex].S_M.CAP = (I*4 + D*1 + M*2)/7;
+    UC[clickIndex].S_M.ACU = (D*4 + A*1 + M)/6;
+    UC[clickIndex].S_M.EVA = (A*4 + A*1 + M)/6;
+        
+        UC[clickIndex].S_M.ATK += 0.5;
+        UC[clickIndex].S_M.DEF += 0.5;
+        UC[clickIndex].S_M.CAP += 0.5;
+        UC[clickIndex].S_M.ACU += 0.5;
+        UC[clickIndex].S_M.EVA += 0.5;
+        
+        UC[clickIndex].S_M.ATK = floor(UC[clickIndex].S_M.ATK);
+        UC[clickIndex].S_M.DEF = floor(UC[clickIndex].S_M.DEF);
+        UC[clickIndex].S_M.CAP = floor(UC[clickIndex].S_M.CAP);
+        UC[clickIndex].S_M.ACU = floor(UC[clickIndex].S_M.ACU);
+        UC[clickIndex].S_M.EVA = floor(UC[clickIndex].S_M.EVA);
+    
+    
+    [TFbp setStringValue:[NSString stringWithFormat:@"BP %g", (floor)(UC[clickIndex].S_M.BP)]];
+    [TFatk setStringValue:[NSString stringWithFormat:@"攻撃力 %g", (floor)(UC[clickIndex].S_M.ATK)]];
+    [TFdef setStringValue:[NSString stringWithFormat:@"防御力 %g", (floor)(UC[clickIndex].S_M.DEF)]];
+    [TFcap setStringValue:[NSString stringWithFormat:@"演算力 %g", (floor)(UC[clickIndex].S_M.CAP)]];
+    [TFacu setStringValue:[NSString stringWithFormat:@"命中値 %g", (floor)(UC[clickIndex].S_M.ACU)]];
+    [TFeva setStringValue:[NSString stringWithFormat:@"回避値 %g", (floor)(UC[clickIndex].S_M.EVA)]];
+    
+    
+    
+    long sup;
+    if(SKLBrow == -1 || [skillListBuildMA count] == 0){}
+    else{
+        
+        Stop = UC[clickIndex].S;
+        for(int i = 0;i< SKLrow;i++){
+            UC[clickIndex].S = UC[clickIndex].S->next;
+        }
+        
+    sup = [[skillListBuildMA objectAtIndex:SKLBrow] valueForKeyPath:@"sel"];
+    sup = sup>>8 & 0xffff;
+    UC[clickIndex].S->list[SKLBrow] = (int)sup+1;
+    [skillListBuildAC setValue:[NSString stringWithFormat:@"資%d食%d金%d",
+    BC[sup].Csupply, BC[sup].Cfood, BC[sup].Cmoney] forKeyPath:@"selection.manko"];
+        
+        UC[clickIndex].S = Stop;
+    }
+    
+    long oops;
+    if(SKLUrow == -1 || [skillListUnitMA count] == 0){}
+    else{
+        
+        Stop = UC[clickIndex].S;
+        for(int i = 0;i< SKLrow;i++){
+            UC[clickIndex].S = UC[clickIndex].S->next;
+        }
+        
+    oops = [[skillListUnitMA objectAtIndex:SKLUrow] valueForKeyPath:@"sel"];
+    oops = oops>>8 & 0xffff;
+    UC[clickIndex].S->list[SKLUrow] = (int)oops+1;
+    oops = [[[skillListUnitMA objectAtIndex:SKLUrow] valueForKeyPath:@"MP"] intValue];
+    //oops = oops>>8 & 0xffff;
+    UC[clickIndex].S->cost[SKLUrow] = (int)oops;
+        
+        UC[clickIndex].S = Stop;
+    }
+    
+    
+}
+
+-(void)setTotalDamage:(int)index row:(int)row{
+    
+    ATTACK *Atop;
+    Atop = UC[index].A;
+    if(!UC[index].A) return;
+    for (int i=0; i < row;i++) {
+        if(UC[index].A->next != NULL) UC[index].A = UC[index].A->next;
+    }
+    DAMAGE *Dtop;
+    Dtop = UC[index].A->D;
+    UC[index].A->totalD = 0;
+    UC[index].A->bulletC = UC[index].A->bullet;
+    while (UC[index].A->D != NULL) {
+        if(UC[index].A->D->type == 0) UC[index].A->totalD += UC[index].A->D->count + UC[index].A->D->pCount/100*UC[index].S_M.ATK;
+        if(UC[index].A->D->type == 1) UC[index].A->totalD += UC[index].A->D->count + UC[index].A->D->pCount/100*UC[index].S_M.DEF;
+        if(UC[index].A->D->type == 2) UC[index].A->totalD += UC[index].A->D->count + UC[index].A->D->pCount/100*UC[index].S_M.ACU;
+        if(UC[index].A->D->type == 3) UC[index].A->totalD += UC[index].A->D->count + UC[index].A->D->pCount/100*UC[index].S_M.EVA;
+        if(UC[index].A->D->type == 4) UC[index].A->totalD += UC[index].A->D->count + UC[index].A->D->pCount/100*UC[index].S_M.CAP;
+        UC[index].A->D = UC[index].A->D->next;
+    }
+    UC[index].A->totalD = floor(UC[index].A->totalD + 0.5);
+    UC[index].A->D = Dtop;
+    UC[index].A = Atop;
+}
+
+-(void)setTotalDamage2:(int)index row:(int)row{
+    
+    ATTACK *Atop;
+    Atop = LC[index].A;
+    if(!LC[index].A) return;
+    for (int i=0; i < row;i++) {
+        if(LC[index].A->next != NULL) LC[index].A = LC[index].A->next;
+    }
+    DAMAGE *Dtop;
+    Dtop = LC[index].A->D;
+    LC[index].A->totalD = 0;
+    LC[index].A->bulletC = LC[index].A->bullet;
+    while (LC[index].A->D != NULL) {
+        LC[index].A->totalD += LC[index].A->D->count;
+        LC[index].A->D = LC[index].A->D->next;
+    }
+    LC[index].A->totalD = floor(LC[index].A->totalD + 0.5);
+    LC[index].A->D = Dtop;
+    LC[index].A = Atop;
+}
+
+
+-(void)setTotalDamageEQ:(int)index row:(int)row{
+    
+    ATTACK *Atop;
+    Atop = EQ[index].A;
+    if(!EQ[index].A) return;
+    for (int i=0; i < row;i++) {
+        if(EQ[index].A->next != NULL) EQ[index].A = EQ[index].A->next;
+    }
+    DAMAGE *Dtop;
+    Dtop = EQ[index].A->D;
+    EQ[index].A->totalD = 0;
+    EQ[index].A->bulletC = EQ[index].A->bullet;
+    while (EQ[index].A->D != NULL) {
+        if(EQ[index].A->D->type == 0) EQ[index].A->totalD += EQ[index].A->D->count;
+        if(EQ[index].A->D->type == 1) EQ[index].A->totalD += EQ[index].A->D->count;
+        if(EQ[index].A->D->type == 2) EQ[index].A->totalD += EQ[index].A->D->count;
+        if(EQ[index].A->D->type == 3) EQ[index].A->totalD += EQ[index].A->D->count;
+        if(EQ[index].A->D->type == 4) EQ[index].A->totalD += EQ[index].A->D->count;
+        EQ[index].A->D = EQ[index].A->D->next;
+    }
+    EQ[index].A->totalD = floor(EQ[index].A->totalD + 0.5);
+    EQ[index].A->D = Dtop;
+    EQ[index].A = Atop;
+}
+
+
+-(void)addPUBEquipList{
+    
+    [PUPtEquip removeAllItems];
+    
+    [PUPtEquip addItemWithTitle:@"装備リスト"];
+    for (int i = 0; i < eItemNum; i++) {
+        [PUPtEquip addItemWithTitle:EQ[i].name];
+    }
+}
+
+
+-(void)initSkillList{
+    [self willChangeValueForKey:@"skillListMA"];
+    [skillListMA removeAllObjects];
+    [self didChangeValueForKey:@"skillListMA"];
+    
+    
+    SKILL *SKtop;
+    SKtop = UC[clickIndex].S;
+    while (UC[clickIndex].S) {
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+        SKL = SKLtop;
+        for(int i = 1;i < UC[clickIndex].S->type;i++){
+            SKL = SKL->next;
+        }
+        [dict setValue:[NSString stringWithFormat:@"%@", SKL->name] forKey:@"name"];
+        SKL = SKLtop;
+        
+        [self willChangeValueForKey:@"skillListMA"];
+        [skillListMA addObject:dict];
+        [self didChangeValueForKey:@"skillListMA"];
+        
+        UC[clickIndex].S = UC[clickIndex].S->next;
+    }UC[clickIndex].S = SKtop;
+
+}
+
+-(void)initskillListBuild{
+    [self willChangeValueForKey:@"skillListBuildMA"];
+    [skillListBuildMA removeAllObjects];
+    [self didChangeValueForKey:@"skillListBuildMA"];
+    
+    for(int i = 0;UC[clickIndex].S->list[i] > 0;i++) {
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+        NSMutableArray *Array = [NSMutableArray array];
+        
+        for(int k = 0;k<BuildChipNum;k++){
+            [Array addObject:[BC[k].name retain]];
+            [dict setValue:[NSString stringWithFormat:@"資%d食%d金%d", BC[k].Csupply, BC[k].Cfood, BC[k].Cmoney] forKey:@"manko"];
+        }
+        [dict setValue:Array forKey:@"name"];
+        
+        int val;
+        val = UC[clickIndex].S->list[i] - 1;
+        val = val<<8 | (0xc7 & 0xff);
+        [dict setValue:val forKey:@"sel"];
+        
+        [self willChangeValueForKey:@"skillListBuildMA"];
+        [skillListBuildMA addObject:dict];
+        [self didChangeValueForKey:@"skillListBuildMA"];
+    }
+
+
+}
+
+-(void)initskillListUnit{
+    [self willChangeValueForKey:@"skillListUnitMA"];
+    [skillListUnitMA removeAllObjects];
+    [self didChangeValueForKey:@"skillListUnitMA"];
+    
+    
+    for(int i = 0;UC[clickIndex].S->list[i] > 0;i++) {
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+        NSMutableArray *Array = [NSMutableArray array];
+        
+        for(int k = 0;k<UCN;k++){
+            [Array addObject:[UC[k].name retain]];
+        }
+        [dict setValue:Array forKey:@"name"];
+        
+        [dict setValue:[NSString stringWithFormat:@"%g", UC[clickIndex].S->cost[i]] forKey:@"MP"];
+        
+        int val;
+        val = UC[clickIndex].S->list[i] - 1;
+        val = val<<8 | (0xc7 & 0xff);
+        [dict setValue:val forKey:@"sel"];
+        
+        [self willChangeValueForKey:@"skillListUnitMA"];
+        [skillListUnitMA addObject:dict];
+        [self didChangeValueForKey:@"skillListUnitMA"];
+    }
+    
+}
+
+
+-(void)initEquip{
+    [self willChangeValueForKey:@"equipItemMA"];
+    [equipItemMA removeAllObjects];
+    [self didChangeValueForKey:@"equipItemMA"];
+    eHeadFlag = false;
+    eBodyFlag = false;
+    eFootFlag = false;
+    eArmFlag = false;
+    eHandRFlag = false;
+    eHandLFlag = false;
+    
+    if(UC[clickIndex].eHandR.name != NULL) {
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].eHandR.name] forKey:@"name"];
+        UC[clickIndex].eHandRflag = true;
+        [self willChangeValueForKey:@"equipItemMA"];
+        [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1];
+        [self didChangeValueForKey:@"equipItemMA"];
+    }
+    if(UC[clickIndex].eHandL.name != NULL) {
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].eHandL.name] forKey:@"name"];
+        UC[clickIndex].eHandLflag = true;
+        [self willChangeValueForKey:@"equipItemMA"];
+        [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1];
+        [self didChangeValueForKey:@"equipItemMA"];
+    }
+    if(UC[clickIndex].eHead.name != NULL) {
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].eHead.name] forKey:@"name"];
+        eHeadFlag = true;
+        [self willChangeValueForKey:@"equipItemMA"];
+        [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1];
+        [self didChangeValueForKey:@"equipItemMA"];
+    }
+    if(UC[clickIndex].eBody.name != NULL) {
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].eBody.name] forKey:@"name"];
+        eBodyFlag = true;
+        [self willChangeValueForKey:@"equipItemMA"];
+        [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1];
+        [self didChangeValueForKey:@"equipItemMA"];
+    }
+    if(UC[clickIndex].eFoot.name != NULL) {
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].eFoot.name] forKey:@"name"];
+        eFootFlag = true;
+        [self willChangeValueForKey:@"equipItemMA"];
+        [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1];
+        [self didChangeValueForKey:@"equipItemMA"];
+    }
+    if(UC[clickIndex].eArm.name != NULL) {
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].eArm.name] forKey:@"name"];
+        eArmFlag = true;
+        [self willChangeValueForKey:@"equipItemMA"];
+        [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1];
+        [self didChangeValueForKey:@"equipItemMA"];
+    }
+    
+    
+    if(UC[clickIndex].eHandL.nameID){
+        for(int j = 0;j < eItemNum;j++){
+            if([UC[clickIndex].eHandL.nameID isEqualToString:EQ[j].nameID]){
+                UC[clickIndex].eHandL = EQ[j];
+                UC[clickIndex].eHandL.A = EQ[j].A;
+            }
+        }
+    }
+    
+    if(UC[clickIndex].eHandR.nameID){
+        for(int j = 0;j < eItemNum;j++){
+            if([UC[clickIndex].eHandR.nameID isEqualToString:EQ[j].nameID]){
+                UC[clickIndex].eHandR = EQ[j];
+                UC[clickIndex].eHandR.A = EQ[j].A;
+            }
+        }
+    }
+    
+    if(UC[clickIndex].eHead.nameID){
+        for(int j = 0;j < eItemNum;j++){
+            if([UC[clickIndex].eHead.nameID isEqualToString:EQ[j].nameID]){
+                UC[clickIndex].eHead = EQ[j];
+            }
+        }
+    }
+    
+    if(UC[clickIndex].eBody.nameID){
+        for(int j = 0;j < eItemNum;j++){
+            if([UC[clickIndex].eBody.nameID isEqualToString:EQ[j].nameID]){
+                UC[clickIndex].eBody = EQ[j];
+            }
+        }
+    }
+    
+    if(UC[clickIndex].eFoot.nameID){
+        for(int j = 0;j < eItemNum;j++){
+            if([UC[clickIndex].eFoot.nameID isEqualToString:EQ[j].nameID]){
+                UC[clickIndex].eFoot = EQ[j];
+            }
+        }
+    }
+    
+    if(UC[clickIndex].eArm.nameID){
+        for(int j = 0;j < eItemNum;j++){
+            if([UC[clickIndex].eArm.nameID isEqualToString:EQ[j].nameID]){
+                UC[clickIndex].eArm = EQ[j];
+            }
+        }
+    }
+}
+
+-(IBAction)equipItemSelected:(id)sender{
+    pubEquipItemIndex = [PUPtEquip indexOfSelectedItem];
+    pubEquipItemIndex -= 1;
+}
+
+bool eHeadFlag = false;
+bool eBodyFlag = false;
+bool eFootFlag = false;
+bool eArmFlag = false;
+bool eHandRFlag = false;
+bool eHandLFlag = false;
+
+-(IBAction)insertEquip:(id)sender{
+    
+    if(pubEquipItemIndex >= 0){
+        
+        if(EQ[pubEquipItemIndex].type == 2){
+            if(UC[clickIndex].eHandLflag && UC[clickIndex].eHandRflag) return;
+            if(UC[clickIndex].eHandRflag) {
+                UC[clickIndex].eHandLflag = true;
+                UC[clickIndex].eHandL = EQ[pubEquipItemIndex];
+            }else{
+            UC[clickIndex].eHandR = EQ[pubEquipItemIndex];
+                UC[clickIndex].eHandRflag = true;
+            }
+        }else if(EQ[pubEquipItemIndex].type == 3){
+            if(UC[clickIndex].eHeadflag) return;
+            UC[clickIndex].eHead = EQ[pubEquipItemIndex];
+            UC[clickIndex].eHeadflag = true;
+        }else if(EQ[pubEquipItemIndex].type == 4){
+            if(UC[clickIndex].eBodyflag) return;
+            UC[clickIndex].eBody = EQ[pubEquipItemIndex];
+            UC[clickIndex].eBodyflag = true;
+        }else if(EQ[pubEquipItemIndex].type == 5){
+            if(UC[clickIndex].eFootflag) return;
+            UC[clickIndex].eFoot = EQ[pubEquipItemIndex];
+            UC[clickIndex].eFootflag = true;
+        }else if(EQ[pubEquipItemIndex].type == 6){
+            if(UC[clickIndex].eArmflag) return;
+            UC[clickIndex].eArm = EQ[pubEquipItemIndex];
+            UC[clickIndex].eArmflag = true;
+        }else if(EQ[pubEquipItemIndex].type == 7){
+            if(!UC[clickIndex].eHandLflag && !UC[clickIndex].eHandRflag){
+            
+            UC[clickIndex].eHandLflag = true;
+            UC[clickIndex].eHandRflag = true;
+            UC[clickIndex].eHandR = EQ[pubEquipItemIndex];
+            }else
+                return;
+        }
+        
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        [dict setValue:[NSString stringWithFormat:@"%@", EQ[pubEquipItemIndex].name] forKey:@"name"];
+        [self willChangeValueForKey:@"equipItemMA"];
+        [equipItemMA insertObject:dict atIndex:[equipItemTV selectedRow]+1];
+        [self didChangeValueForKey:@"equipItemMA"];
+    }
+}
+-(IBAction)removeEquip:(id)sender{
+    
+    
+    if([equipItemTV selectedRow] >= 0){
+        
+        if([[[equipItemMA objectAtIndex:[equipItemTV selectedRow]] valueForKey:@"name"] isEqualToString:UC[clickIndex].eHandL.name]){
+            
+            if(UC[clickIndex].eHandLflag){
+                if(UC[clickIndex].eHandL.type == 7){
+                    UC[clickIndex].eHandR = nilEquip;
+                    UC[clickIndex].eHandRflag = false;
+                }
+                UC[clickIndex].eHandL = nilEquip;
+                UC[clickIndex].eHandLflag = false;
+            }
+            
+        }
+        else if([[[equipItemMA objectAtIndex:[equipItemTV selectedRow]] valueForKey:@"name"] isEqualToString:UC[clickIndex].eHandR.name]){
+            if(UC[clickIndex].eHandRflag){
+                if(UC[clickIndex].eHandR.type == 7){
+                    UC[clickIndex].eHandL = nilEquip;
+                    UC[clickIndex].eHandLflag = false;
+                }
+                UC[clickIndex].eHandR = nilEquip;
+                UC[clickIndex].eHandRflag = false;
+            }
+        }
+        else if([[[equipItemMA objectAtIndex:[equipItemTV selectedRow]] valueForKey:@"name"] isEqualToString:UC[clickIndex].eHead.name]){
+            UC[clickIndex].eHead = nilEquip;
+            UC[clickIndex].eHeadflag = false;
+        }
+        else if([[[equipItemMA objectAtIndex:[equipItemTV selectedRow]] valueForKey:@"name"] isEqualToString:UC[clickIndex].eBody.name]){
+            UC[clickIndex].eBody = nilEquip;
+            UC[clickIndex].eBodyflag = false;
+        }
+        else if([[[equipItemMA objectAtIndex:[equipItemTV selectedRow]] valueForKey:@"name"] isEqualToString:UC[clickIndex].eFoot.name]){
+            UC[clickIndex].eFoot = nilEquip;
+            UC[clickIndex].eFootflag = false;
+        }
+        else if([[[equipItemMA objectAtIndex:[equipItemTV selectedRow]] valueForKey:@"name"] isEqualToString:UC[clickIndex].eArm.name]){
+            UC[clickIndex].eArm = nilEquip;
+            UC[clickIndex].eArmflag = false;
+        }
+        
+        
+        
+        [self willChangeValueForKey:@"equipItemMA"];
+        [equipItemMA removeObjectAtIndex:[equipItemTV selectedRow]];
+        [self didChangeValueForKey:@"equipItemMA"];
+    }
+}
+
+
+-(void)doubleClickEQ:(id)sender{
+    clickIndexEQ = [equipListTV clickedRow];
+    
+    if(EQ[clickIndexEQ].name) [ILTFname setStringValue:EQ[clickIndexEQ].name];
+    else [ILTFname setStringValue:@""];
+    if(EQ[clickIndexEQ].nameRecognition) [ILTFnameR setStringValue:EQ[clickIndexEQ].nameRecognition];
+    else [ILTFnameR setStringValue:@""];
+    if(EQ[clickIndexEQ].nameID) [ILTFnameID setStringValue:EQ[clickIndexEQ].nameID];
+    else [ILTFnameID setStringValue:@""];
+    [ILTFweight setDoubleValue:EQ[clickIndexEQ].Weight];
+    [ILTFprice setDoubleValue:EQ[clickIndexEQ].price];
+    [ILTFMOV setIntValue:EQ[clickIndexEQ].MOV];
+    [ILTFHP setDoubleValue:EQ[clickIndexEQ].HP];
+    [ILTFMP setDoubleValue:EQ[clickIndexEQ].MP];
+    [ILTFAP setDoubleValue:EQ[clickIndexEQ].AP];
+    [ILTFWT setDoubleValue:EQ[clickIndexEQ].WT];
+    
+    [ILTFSTR setDoubleValue:EQ[clickIndexEQ].STR];
+    [ILTFVIT setDoubleValue:EQ[clickIndexEQ].VIT];
+    [ILTFAGI setDoubleValue:EQ[clickIndexEQ].AGI];
+    [ILTFDEX setDoubleValue:EQ[clickIndexEQ].DEX];
+    [ILTFMEN setDoubleValue:EQ[clickIndexEQ].MEN];
+    [ILTFINT setDoubleValue:EQ[clickIndexEQ].INT];
+    [ILTFLUK setDoubleValue:EQ[clickIndexEQ].LUK];
+    
+    [ILTFpSTR setDoubleValue:EQ[clickIndexEQ].pSTR];
+    [ILTFpVIT setDoubleValue:EQ[clickIndexEQ].pVIT];
+    [ILTFpAGI setDoubleValue:EQ[clickIndexEQ].pAGI];
+    [ILTFpDEX setDoubleValue:EQ[clickIndexEQ].pDEX];
+    [ILTFpMEN setDoubleValue:EQ[clickIndexEQ].pMEN];
+    [ILTFpINT setDoubleValue:EQ[clickIndexEQ].pINT];
+    [ILTFpLUK setDoubleValue:EQ[clickIndexEQ].pLUK];
+    
+    [ILTFblow setIntValue:EQ[clickIndexEQ].R.blow];
+    [ILTFslash setIntValue:EQ[clickIndexEQ].R.slash];
+    [ILTFstub setIntValue:EQ[clickIndexEQ].R.stub];
+    [ILTFarrow setIntValue:EQ[clickIndexEQ].R.arrow];
+    [ILTFgun setIntValue:EQ[clickIndexEQ].R.gun];
+    [ILTFshell setIntValue:EQ[clickIndexEQ].R.shell];
+    [ILTFparalysis setIntValue:EQ[clickIndexEQ].R.paralysis];
+    [ILTFpoison setIntValue:EQ[clickIndexEQ].R.poison];
+    [ILTFcharm setIntValue:EQ[clickIndexEQ].R.charm];
+    [ILTFconfusion setIntValue:EQ[clickIndexEQ].R.confusion];
+    [ILTFsleep setIntValue:EQ[clickIndexEQ].R.sleep];
+    [ILTFsilent setIntValue:EQ[clickIndexEQ].R.silent];
+    
+    [ILTFflame setIntValue:EQ[clickIndexEQ].R.flame];
+    [ILTFcold setIntValue:EQ[clickIndexEQ].R.cold];
+    [ILTFelectoric setIntValue:EQ[clickIndexEQ].R.electoric];
+    [ILTFair setIntValue:EQ[clickIndexEQ].R.air];
+    [ILTFwater setIntValue:EQ[clickIndexEQ].R.water];
+    [ILTFgas setIntValue:EQ[clickIndexEQ].R.gas];
+    [ILTFholy setIntValue:EQ[clickIndexEQ].R.holy];
+    [ILTFdark setIntValue:EQ[clickIndexEQ].R.dark];
+    [ILTFexplosion setIntValue:EQ[clickIndexEQ].R.explosion];
+    [ILTFblood setIntValue:EQ[clickIndexEQ].R.blood];
+    
+    [ILTFrecHP setIntValue:EQ[clickIndexEQ].recHP];
+    [ILTFrecHPp setIntValue:EQ[clickIndexEQ].recpHP];
+    [ILTFrecMP setIntValue:EQ[clickIndexEQ].recMP];
+    [ILTFrecMPp setIntValue:EQ[clickIndexEQ].recpMP];
+    if(EQ[clickIndexEQ].comment) [ILTFcomment setStringValue:EQ[clickIndexEQ].comment];
+    else [ILTFcomment setStringValue:@""];
+    
+    [ILPUBtype selectItemAtIndex:EQ[clickIndexEQ].type];
+    
+    UCLDpoint.x = [UCLPanelEquipList frame].origin.x + 0;
+    UCLDpoint.y = [UCLPanelEquipList frame].origin.y + 0;
+    [UCLPanelEquipDetail setFrameOrigin:UCLDpoint];
+    [UCLPanelEquipDetail makeKeyAndOrderFront:nil];
+}
+
+-(IBAction)saveIL:(id)sender{
+    
+    EQ[clickIndexEQ].name = [[ILTFname stringValue] retain];
+    EQ[clickIndexEQ].nameRecognition = [[ILTFnameR stringValue] retain];
+    EQ[clickIndexEQ].nameID = [[ILTFnameID stringValue] retain];
+    
+    EQ[clickIndexEQ].Weight = [ILTFweight doubleValue];
+    EQ[clickIndexEQ].price = [ILTFprice doubleValue];
+    EQ[clickIndexEQ].MOV = [ILTFMOV intValue];
+    EQ[clickIndexEQ].HP = [ILTFHP doubleValue];
+    EQ[clickIndexEQ].MP = [ILTFMP doubleValue];
+    EQ[clickIndexEQ].AP = [ILTFAP doubleValue];
+    EQ[clickIndexEQ].WT = [ILTFWT doubleValue];
+    
+    EQ[clickIndexEQ].STR = [ILTFSTR doubleValue];
+    EQ[clickIndexEQ].VIT = [ILTFVIT doubleValue];
+    EQ[clickIndexEQ].AGI = [ILTFAGI doubleValue];
+    EQ[clickIndexEQ].DEX = [ILTFDEX doubleValue];
+    EQ[clickIndexEQ].MEN = [ILTFMEN doubleValue];
+    EQ[clickIndexEQ].INT = [ILTFINT doubleValue];
+    EQ[clickIndexEQ].LUK = [ILTFLUK doubleValue];
+    
+    EQ[clickIndexEQ].pSTR = [ILTFpSTR doubleValue];
+    EQ[clickIndexEQ].pVIT = [ILTFpVIT doubleValue];
+    EQ[clickIndexEQ].pAGI = [ILTFpAGI doubleValue];
+    EQ[clickIndexEQ].pDEX = [ILTFpDEX doubleValue];
+    EQ[clickIndexEQ].pMEN = [ILTFpMEN doubleValue];
+    EQ[clickIndexEQ].pINT = [ILTFpINT doubleValue];
+    EQ[clickIndexEQ].pLUK = [ILTFpLUK doubleValue];
+    
+    EQ[clickIndexEQ].R.blow = [ILTFblow intValue];
+    EQ[clickIndexEQ].R.slash = [ILTFslash intValue];
+    EQ[clickIndexEQ].R.stub = [ILTFstub intValue];
+    EQ[clickIndexEQ].R.arrow = [ILTFarrow intValue];
+    EQ[clickIndexEQ].R.gun = [ILTFgun intValue];
+    EQ[clickIndexEQ].R.shell = [ILTFshell intValue];
+    EQ[clickIndexEQ].R.paralysis = [ILTFparalysis intValue];
+    EQ[clickIndexEQ].R.poison = [ILTFpoison intValue];
+    EQ[clickIndexEQ].R.charm = [ILTFcharm intValue];
+    EQ[clickIndexEQ].R.confusion = [ILTFconfusion intValue];
+    EQ[clickIndexEQ].R.sleep = [ILTFsleep intValue];
+    EQ[clickIndexEQ].R.silent = [ILTFsilent intValue];
+    
+    EQ[clickIndexEQ].R.flame = [ILTFflame intValue];
+    EQ[clickIndexEQ].R.cold = [ILTFcold intValue];
+    EQ[clickIndexEQ].R.electoric = [ILTFelectoric intValue];
+    EQ[clickIndexEQ].R.air = [ILTFair intValue];
+    EQ[clickIndexEQ].R.water = [ILTFwater intValue];
+    EQ[clickIndexEQ].R.gas = [ILTFgas intValue];
+    EQ[clickIndexEQ].R.holy = [ILTFholy intValue];
+    EQ[clickIndexEQ].R.dark = [ILTFdark intValue];
+    EQ[clickIndexEQ].R.explosion = [ILTFexplosion intValue];
+    EQ[clickIndexEQ].R.blood = [ILTFblood intValue];
+    
+    EQ[clickIndexEQ].recHP = [ILTFrecHP intValue];
+    EQ[clickIndexEQ].recpHP = [ILTFrecHPp intValue];
+    EQ[clickIndexEQ].recMP = [ILTFrecMP intValue];
+    EQ[clickIndexEQ].recpMP = [ILTFrecMPp intValue];
+    EQ[clickIndexEQ].comment = [[ILTFcomment stringValue] retain];
+    
+    EQ[clickIndexEQ].type = (int)[ILPUBtype indexOfSelectedItem];
+    
+    [equipListAC setValue:[NSString stringWithFormat:@"%@", EQ[clickIndexEQ].name] forKeyPath:@"selection.name"];
+    
+    NSString *str = @"";
+    
+    if(EQ[clickIndexEQ].HP != 0)
+        str = [str stringByAppendingFormat:@"HP %d ", (int)EQ[clickIndexEQ].HP];
+    if(EQ[clickIndexEQ].MP != 0)
+        str = [str stringByAppendingFormat:@"MP %d ", (int)EQ[clickIndexEQ].MP];
+    if(EQ[clickIndexEQ].STR != 0)
+        str = [str stringByAppendingFormat:@"STR %d ", (int)EQ[clickIndexEQ].STR];
+    if(EQ[clickIndexEQ].VIT != 0)
+        str = [str stringByAppendingFormat:@"VIT %d ", (int)EQ[clickIndexEQ].VIT];
+    if(EQ[clickIndexEQ].AGI != 0)
+        str = [str stringByAppendingFormat:@"AGI %d ", (int)EQ[clickIndexEQ].AGI];
+    if(EQ[clickIndexEQ].DEX != 0)
+        str = [str stringByAppendingFormat:@"DEX %d ", (int)EQ[clickIndexEQ].DEX];
+    if(EQ[clickIndexEQ].MEN != 0)
+        str = [str stringByAppendingFormat:@"MEN %d ", (int)EQ[clickIndexEQ].MEN];
+    if(EQ[clickIndexEQ].INT != 0)
+        str = [str stringByAppendingFormat:@"INT %d ", (int)EQ[clickIndexEQ].INT];
+    if(EQ[clickIndexEQ].LUK != 0)
+        str = [str stringByAppendingFormat:@"LUK %d ", (int)EQ[clickIndexEQ].LUK];
+    if(EQ[clickIndexEQ].Weight != 0)
+        str = [str stringByAppendingFormat:@"重さ %d ", (int)EQ[clickIndexEQ].Weight];
+    
+    [equipListAC setValue:[NSString stringWithFormat:@"%@", str] forKeyPath:@"selection.memo"];
+    
+    [self saveEquip];
+    [UCLPanelEquipDetail close];
+}
+
+-(void)saveEquip{
+    
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    for (int i=0; i<eItemNum; i++) {
+        NSString *fdata = @"data/ItemList/ILdata";
+        fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
+        
+        NSString *fileData = @"";
+       
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", EQ[i].name]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", EQ[i].nameRecognition]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", EQ[i].nameID]] stringByAppendingString:@"\n"];
+        
+        
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].price]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].Weight]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].type]] stringByAppendingString:@"\n"];
+        
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].HP]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].MP]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].AP]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].WT]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].MOV]] stringByAppendingString:@"\n"];
+        
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].STR]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].VIT]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].AGI]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].DEX]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].MEN]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].INT]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].LUK]] stringByAppendingString:@"\n"];
+        
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].pSTR]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].pVIT]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].pAGI]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].pDEX]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].pMEN]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].pINT]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].pLUK]] stringByAppendingString:@"\n"];
+        
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].recHP]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].recpHP]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].recMP]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].recpMP]] stringByAppendingString:@"\n"];
+        
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.blow]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.slash]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.stub]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.arrow]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.gun]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.shell]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.paralysis]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.poison]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.charm]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.confusion]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.sleep]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.silent]] stringByAppendingString:@"\n"];
+        
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.flame]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.cold]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.electoric]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.air]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.water]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.gas]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.holy]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.dark]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.explosion]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].R.blood]] stringByAppendingString:@"\n"];
+        
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", EQ[i].comment]] stringByAppendingString:@"\n"];
+               fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"----\n"]];
+        
+        [fileData writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+    }
+    
+
+    
+}
+
+-(IBAction)canceIL:(id)sender{
+    [UCLPanelEquipDetail close];
+}
+
+-(void)ClickAL:(id)sender{
+    clickedRowAT = (int)[attackListTV clickedRow];
+}
+
+-(void)doubleClickAL:(id)sender{
+    
+    
+    if(EQmodeFlag){
+        if(clickIndexEQ < 0) return;
+        atkTop = EQ[clickIndexEQ].A;
+        
+        clickIndexAL = [attackListTV clickedRow];
+        
+        [self willChangeValueForKey:@"damageListMA"];
+        [damageListMA removeAllObjects];
+        [self didChangeValueForKey:@"damageListMA"];
+        
+        [self willChangeValueForKey:@"hitListMA"];
+        [hitListMA removeAllObjects];
+        [self didChangeValueForKey:@"hitListMA"];
+        
+        if(clickIndexAL <= -1) return;
+        
+        for(int i = 0;i < clickIndexAL;i++){
+            EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
+        }
+        
+        [ALTFname setStringValue:EQ[clickIndexEQ].A->name];
+        [ALTFrangeA setIntValue:EQ[clickIndexEQ].A->rangeA];
+        [ALTFrangeB setIntValue:EQ[clickIndexEQ].A->rangeB];
+        [ALTFextend setIntValue:EQ[clickIndexEQ].A->extent];
+        
+        [ALTFtrigger setIntValue:EQ[clickIndexEQ].A->trig];
+        [ALTFmelee setIntValue:EQ[clickIndexEQ].A->melee];
+        [ALTFpass setIntValue:EQ[clickIndexEQ].A->P];
+        [ALTFdmgExtent setIntValue:EQ[clickIndexEQ].A->dmgExtend];
+        [ALPUBwType selectItemAtIndex:EQ[clickIndexEQ].A->type];
+        
+        [ALPUBtype removeAllItems];
+        [ALPUBtype addItemWithTitle:@"攻撃力"];
+        [ALPUBtype addItemWithTitle:@"防御力"];
+        [ALPUBtype addItemWithTitle:@"命中値"];
+        [ALPUBtype addItemWithTitle:@"回避値"];
+        [ALPUBtype addItemWithTitle:@"演算力"];
+        [ALPUBtype addItemWithTitle:@"無修正"];
+        
+        [ALPUBcost removeAllItems];
+        [ALPUBcost addItemWithTitle:@"MP"];
+        [ALPUBcost addItemWithTitle:@"AP"];
+        [ALPUBcost addItemWithTitle:@"HP"];
+        [ALPUBcost selectItemAtIndex:EQ[clickIndexEQ].A->costType];
+        if(EQ[clickIndexEQ].A->costType == 0){
+            [ALTFcost setIntValue:EQ[clickIndexEQ].A->MP];
+            [ALTFcostP setIntValue:EQ[clickIndexEQ].A->pMP];
+        }else if(EQ[clickIndexEQ].A->costType == 1){
+            [ALTFcost setIntValue:EQ[clickIndexEQ].A->AP];
+            [ALTFcostP setIntValue:EQ[clickIndexEQ].A->pAP];
+        }else if(EQ[clickIndexEQ].A->costType == 2){
+            [ALTFcost setIntValue:EQ[clickIndexEQ].A->HP];
+            [ALTFcostP setIntValue:EQ[clickIndexEQ].A->pHP];
+        }
+        
+        [ALTFbullet setIntValue:EQ[clickIndexEQ].A->bullet];
+        [ALTFhitCount setIntValue:EQ[clickIndexEQ].A->hitCount];
+        [ALTFsuccessRate setIntValue:EQ[clickIndexEQ].A->successRate];
+        [ALTFvigor setIntValue:EQ[clickIndexEQ].A->vigor];
+        [ALTFhitRate setIntValue:EQ[clickIndexEQ].A->hitPercent];
+        
+        [ALPUBriku selectItemAtIndex:EQ[clickIndexEQ].A->riku];
+        [ALPUBchu selectItemAtIndex:EQ[clickIndexEQ].A->chu];
+        [ALPUBumi selectItemAtIndex:EQ[clickIndexEQ].A->umi];
+        [ALPUBsora selectItemAtIndex:EQ[clickIndexEQ].A->sora];
+        
+        [ALTFcSupply setIntValue:EQ[clickIndexEQ].A->cSupply];
+        [ALTFcFood setIntValue:EQ[clickIndexEQ].A->cFood];
+        [ALTFcMoney setIntValue:EQ[clickIndexEQ].A->cMoney];
+        
+        [ALTFcmd setStringValue:EQ[clickIndexEQ].A->cmd];
+        if(EQ[clickIndexEQ].A->msg != NULL) [ALTFmsg setStringValue:EQ[clickIndexEQ].A->msg];
+        
+        DAMAGE *Dtop = EQ[clickIndexEQ].A->D;
+        do{
+            
+            NSMutableDictionary* dict = [NSMutableDictionary new];
+            if(!EQ[clickIndexEQ].A->D){
+                [dict setValue:[NSString stringWithFormat:@""] forKey:@"count"];
+            }
+            else if(EQ[clickIndexEQ].A->D->count > 0 || EQ[clickIndexEQ].A->D->pCount > 0){
+                if(EQ[clickIndexEQ].A->D->type == 0)
+                    [dict setValue:[NSString stringWithFormat:@"攻%g+%g%", EQ[clickIndexEQ].A->D->count, EQ[clickIndexEQ].A->D->pCount] forKey:@"count"];
+                if(EQ[clickIndexEQ].A->D->type == 1)
+                    [dict setValue:[NSString stringWithFormat:@"防%g+%g%", EQ[clickIndexEQ].A->D->count, EQ[clickIndexEQ].A->D->pCount] forKey:@"count"];
+                if(EQ[clickIndexEQ].A->D->type == 2)
+                    [dict setValue:[NSString stringWithFormat:@"命%g+%g%", EQ[clickIndexEQ].A->D->count, EQ[clickIndexEQ].A->D->pCount] forKey:@"count"];
+                if(EQ[clickIndexEQ].A->D->type == 3)
+                    [dict setValue:[NSString stringWithFormat:@"回%g+%g%", EQ[clickIndexEQ].A->D->count, EQ[clickIndexEQ].A->D->pCount] forKey:@"count"];
+                if(EQ[clickIndexEQ].A->D->type == 4)
+                    [dict setValue:[NSString stringWithFormat:@"演%g+%g%", EQ[clickIndexEQ].A->D->count, EQ[clickIndexEQ].A->D->pCount] forKey:@"count"];
+                if(EQ[clickIndexEQ].A->D->type == 5)
+                    [dict setValue:[NSString stringWithFormat:@"会%g%g%", EQ[clickIndexEQ].A->D->count, EQ[clickIndexEQ].A->D->pCount] forKey:@"count"];
+            }
+            NSString *str;
+            
+            if(EQ[clickIndexEQ].A->D){
+                if(EQ[clickIndexEQ].A->D->sort == 0) str = [NSString stringWithFormat:@"ダ・"];
+                if(EQ[clickIndexEQ].A->D->sort == 1) str = [NSString stringWithFormat:@"回・"];
+                if(EQ[clickIndexEQ].A->D->sort == 2) str = [NSString stringWithFormat:@"復・"];
+                if(EQ[clickIndexEQ].A->D->sort == 3) str = [NSString stringWithFormat:@"減・"];
+                if(EQ[clickIndexEQ].A->D->sort == 4) str = [NSString stringWithFormat:@"増・"];
+                if(EQ[clickIndexEQ].A->D->sort == 5) str = [NSString stringWithFormat:@"毒・"];
+                if(EQ[clickIndexEQ].A->D->sort == 6) str = [NSString stringWithFormat:@"睡・"];
+                if(EQ[clickIndexEQ].A->D->sort == 7) str = [NSString stringWithFormat:@"混・"];
+                if(EQ[clickIndexEQ].A->D->sort == 8) str = [NSString stringWithFormat:@"麻・"];
+                if(EQ[clickIndexEQ].A->D->sort == 9) str = [NSString stringWithFormat:@"沈・"];
+                if(EQ[clickIndexEQ].A->D->sort == 10) str = [NSString stringWithFormat:@"魅・"];
+                
+                if(EQ[clickIndexEQ].A->D->seed == 0) str = [str stringByAppendingFormat:@"打撃"];
+                if(EQ[clickIndexEQ].A->D->seed == 1) str = [str stringByAppendingFormat:@"斬撃"];
+                if(EQ[clickIndexEQ].A->D->seed == 2) str = [str stringByAppendingFormat:@"突き"];
+                if(EQ[clickIndexEQ].A->D->seed == 3) str = [str stringByAppendingFormat:@"射手"];
+                if(EQ[clickIndexEQ].A->D->seed == 4) str = [str stringByAppendingFormat:@"銃撃"];
+                if(EQ[clickIndexEQ].A->D->seed == 5) str = [str stringByAppendingFormat:@"砲撃"];
+                if(EQ[clickIndexEQ].A->D->seed == 6) str = [str stringByAppendingFormat:@"火炎"];
+                if(EQ[clickIndexEQ].A->D->seed == 7) str = [str stringByAppendingFormat:@"冷気"];
+                if(EQ[clickIndexEQ].A->D->seed == 8) str = [str stringByAppendingFormat:@"電撃"];
+                if(EQ[clickIndexEQ].A->D->seed == 9) str = [str stringByAppendingFormat:@"風圧"];
+                if(EQ[clickIndexEQ].A->D->seed == 10) str = [str stringByAppendingFormat:@"流水"];
+                if(EQ[clickIndexEQ].A->D->seed == 11) str = [str stringByAppendingFormat:@"ガス"];
+                if(EQ[clickIndexEQ].A->D->seed == 12) str = [str stringByAppendingFormat:@"神聖"];
+                if(EQ[clickIndexEQ].A->D->seed == 13) str = [str stringByAppendingFormat:@"暗黒"];
+                if(EQ[clickIndexEQ].A->D->seed == 14) str = [str stringByAppendingFormat:@"爆撃"];
+                if(EQ[clickIndexEQ].A->D->seed == 15) str = [str stringByAppendingFormat:@"流血"];
+                
+                [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"type"];
+            }
+            
+            if(EQ[clickIndexEQ].A->D){
+                if(EQ[clickIndexEQ].A->D->count <= 0 && EQ[clickIndexEQ].A->D->sort == 0)
+                {
+                    EQ[clickIndexEQ].A->D = NULL;
+                    break;
+                }
+                [self willChangeValueForKey:@"damageListMA"];
+                [damageListMA addObject:dict];
+                [self didChangeValueForKey:@"damageListMA"];
+                
+                EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next;
+            }
+        }while(EQ[clickIndexEQ].A->D != NULL);
+        
+        EQ[clickIndexEQ].A->D = Dtop;
+        
+        DMGEXTEND *Etop = EQ[clickIndexEQ].A->E;
+        while(EQ[clickIndexEQ].A->E != NULL){
+            
+            NSMutableDictionary* dict = [NSMutableDictionary new];
+            
+            
+            [dict setValue:[NSString stringWithFormat:@"%d", EQ[clickIndexEQ].A->E->rate] forKey:@"rate"];
+            [dict setValue:[NSString stringWithFormat:@"%d", EQ[clickIndexEQ].A->E->atkHit] forKey:@"atkHit"];
+            [dict setValue:[NSString stringWithFormat:@"%d", EQ[clickIndexEQ].A->E->hit] forKey:@"hit"];
+            
+            [self willChangeValueForKey:@"hitListMA"];
+            [hitListMA addObject:dict];
+            [self didChangeValueForKey:@"hitListMA"];
+            
+            EQ[clickIndexEQ].A->E = EQ[clickIndexEQ].A->E->next;
+        };
+        
+        EQ[clickIndexEQ].A->E = Etop;
+        
+        EQ[clickIndexEQ].A = atkTop;
+        
+    
+        UCLDpoint.x = [UCLPanelAttack frame].origin.x + 0;
+        UCLDpoint.y = [UCLPanelAttack frame].origin.y + 0;
+        [UCLPanelAttackDetail setFrameOrigin:UCLDpoint];
+        [UCLPanelAttackDetail makeKeyAndOrderFront:nil];
+        
+        return;
+    }
+    
+    if(!loadChipSideFlag){
+    
+    atkTop = UC[clickIndex].A;
+    
+    clickIndexAL = [attackListTV clickedRow];
+    
+        
+    [self willChangeValueForKey:@"damageListMA"];
+    [damageListMA removeAllObjects];
+    [self didChangeValueForKey:@"damageListMA"];
+    
+    [self willChangeValueForKey:@"hitListMA"];
+    [hitListMA removeAllObjects];
+    [self didChangeValueForKey:@"hitListMA"];
+    
+    if(clickIndexAL <= -1) return;
+        
+    NSLog(@"%@, %ld", atkTop->name, clickIndexAL);
+        
+    for(int i = 0;i < clickIndexAL;i++){
+        UC[clickIndex].A = UC[clickIndex].A->next;
+    }
+        
+    [ALTFname setStringValue:UC[clickIndex].A->name];
+    [ALTFrangeA setIntValue:UC[clickIndex].A->rangeA];
+    [ALTFrangeB setIntValue:UC[clickIndex].A->rangeB];
+    [ALTFextend setIntValue:UC[clickIndex].A->extent];
+    
+    [ALTFtrigger setIntValue:UC[clickIndex].A->trig];
+    [ALTFmelee setIntValue:UC[clickIndex].A->melee];
+    [ALTFpass setIntValue:UC[clickIndex].A->P];
+    [ALTFdmgExtent setIntValue:UC[clickIndex].A->dmgExtend];
+    [ALPUBwType selectItemAtIndex:UC[clickIndex].A->type];
+    
+        [ALPUBtype removeAllItems];
+        [ALPUBtype addItemWithTitle:@"攻撃力"];
+        [ALPUBtype addItemWithTitle:@"防御力"];
+        [ALPUBtype addItemWithTitle:@"命中値"];
+        [ALPUBtype addItemWithTitle:@"回避値"];
+        [ALPUBtype addItemWithTitle:@"演算力"];
+        [ALPUBtype addItemWithTitle:@"無修正"];
+        
+    [ALPUBcost removeAllItems];
+    [ALPUBcost addItemWithTitle:@"MP"];
+        [ALPUBcost addItemWithTitle:@"AP"];
+        [ALPUBcost addItemWithTitle:@"HP"];
+    [ALPUBcost selectItemAtIndex:UC[clickIndex].A->costType];
+    if(UC[clickIndex].A->costType == 0){
+        [ALTFcost setIntValue:UC[clickIndex].A->MP];
+        [ALTFcostP setIntValue:UC[clickIndex].A->pMP];
+    }else if(UC[clickIndex].A->costType == 1){
+        [ALTFcost setIntValue:UC[clickIndex].A->AP];
+        [ALTFcostP setIntValue:UC[clickIndex].A->pAP];
+    }else if(UC[clickIndex].A->costType == 2){
+            [ALTFcost setIntValue:UC[clickIndex].A->HP];
+            [ALTFcostP setIntValue:UC[clickIndex].A->pHP];
+    }
+    
+    [ALTFbullet setIntValue:UC[clickIndex].A->bullet];
+    [ALTFhitCount setIntValue:UC[clickIndex].A->hitCount];
+    [ALTFsuccessRate setIntValue:UC[clickIndex].A->successRate];
+    [ALTFvigor setIntValue:UC[clickIndex].A->vigor];
+    [ALTFhitRate setIntValue:UC[clickIndex].A->hitPercent];
+    
+    [ALPUBriku selectItemAtIndex:UC[clickIndex].A->riku];
+    [ALPUBchu selectItemAtIndex:UC[clickIndex].A->chu];
+    [ALPUBumi selectItemAtIndex:UC[clickIndex].A->umi];
+    [ALPUBsora selectItemAtIndex:UC[clickIndex].A->sora];
+    
+    [ALTFcSupply setIntValue:UC[clickIndex].A->cSupply];
+    [ALTFcFood setIntValue:UC[clickIndex].A->cFood];
+    [ALTFcMoney setIntValue:UC[clickIndex].A->cMoney];
+    
+    [ALTFcmd setStringValue:UC[clickIndex].A->cmd];
+    if(UC[clickIndex].A->msg != NULL)
+        [ALTFmsg setStringValue:UC[clickIndex].A->msg];
+    
+    DAMAGE *Dtop = UC[clickIndex].A->D;
+    do{
+    
+    NSMutableDictionary* dict = [NSMutableDictionary new];
+    if(!UC[clickIndex].A->D){
+        [dict setValue:[NSString stringWithFormat:@""] forKey:@"count"];
+    }
+    else if(UC[clickIndex].A->D->count > 0 || UC[clickIndex].A->D->pCount > 0){
+    if(UC[clickIndex].A->D->type == 0)
+            [dict setValue:[NSString stringWithFormat:@"攻%g+%g%", UC[clickIndex].A->D->count, UC[clickIndex].A->D->pCount] forKey:@"count"];
+    if(UC[clickIndex].A->D->type == 1)
+        [dict setValue:[NSString stringWithFormat:@"防%g+%g%", UC[clickIndex].A->D->count, UC[clickIndex].A->D->pCount] forKey:@"count"];
+    if(UC[clickIndex].A->D->type == 2)
+        [dict setValue:[NSString stringWithFormat:@"命%g+%g%", UC[clickIndex].A->D->count, UC[clickIndex].A->D->pCount] forKey:@"count"];
+    if(UC[clickIndex].A->D->type == 3)
+        [dict setValue:[NSString stringWithFormat:@"回%g+%g%", UC[clickIndex].A->D->count, UC[clickIndex].A->D->pCount] forKey:@"count"];
+    if(UC[clickIndex].A->D->type == 4)
+        [dict setValue:[NSString stringWithFormat:@"演%g+%g%", UC[clickIndex].A->D->count, UC[clickIndex].A->D->pCount] forKey:@"count"];
+    if(UC[clickIndex].A->D->type == 5)
+        [dict setValue:[NSString stringWithFormat:@"会%g%g%", UC[clickIndex].A->D->count, UC[clickIndex].A->D->pCount] forKey:@"count"];
+    }
+    NSString *str;
+    
+        if(UC[clickIndex].A->D){
+    if(UC[clickIndex].A->D->sort == 0) str = [NSString stringWithFormat:@"ダ・"];
+    if(UC[clickIndex].A->D->sort == 1) str = [NSString stringWithFormat:@"回・"];
+    if(UC[clickIndex].A->D->sort == 2) str = [NSString stringWithFormat:@"復・"];
+    if(UC[clickIndex].A->D->sort == 3) str = [NSString stringWithFormat:@"減・"];
+    if(UC[clickIndex].A->D->sort == 4) str = [NSString stringWithFormat:@"増・"];
+    if(UC[clickIndex].A->D->sort == 5) str = [NSString stringWithFormat:@"毒・"];
+    if(UC[clickIndex].A->D->sort == 6) str = [NSString stringWithFormat:@"睡・"];
+    if(UC[clickIndex].A->D->sort == 7) str = [NSString stringWithFormat:@"混・"];
+    if(UC[clickIndex].A->D->sort == 8) str = [NSString stringWithFormat:@"麻・"];
+    if(UC[clickIndex].A->D->sort == 9) str = [NSString stringWithFormat:@"沈・"];
+    if(UC[clickIndex].A->D->sort == 10) str = [NSString stringWithFormat:@"魅・"];
+    
+    if(UC[clickIndex].A->D->seed == 0) str = [str stringByAppendingFormat:@"打撃"];
+    if(UC[clickIndex].A->D->seed == 1) str = [str stringByAppendingFormat:@"斬撃"];
+    if(UC[clickIndex].A->D->seed == 2) str = [str stringByAppendingFormat:@"突き"];
+    if(UC[clickIndex].A->D->seed == 3) str = [str stringByAppendingFormat:@"射手"];
+    if(UC[clickIndex].A->D->seed == 4) str = [str stringByAppendingFormat:@"銃撃"];
+    if(UC[clickIndex].A->D->seed == 5) str = [str stringByAppendingFormat:@"砲撃"];
+    if(UC[clickIndex].A->D->seed == 6) str = [str stringByAppendingFormat:@"火炎"];
+    if(UC[clickIndex].A->D->seed == 7) str = [str stringByAppendingFormat:@"冷気"];
+    if(UC[clickIndex].A->D->seed == 8) str = [str stringByAppendingFormat:@"電撃"];
+    if(UC[clickIndex].A->D->seed == 9) str = [str stringByAppendingFormat:@"風圧"];
+    if(UC[clickIndex].A->D->seed == 10) str = [str stringByAppendingFormat:@"流水"];
+    if(UC[clickIndex].A->D->seed == 11) str = [str stringByAppendingFormat:@"ガス"];
+    if(UC[clickIndex].A->D->seed == 12) str = [str stringByAppendingFormat:@"神聖"];
+    if(UC[clickIndex].A->D->seed == 13) str = [str stringByAppendingFormat:@"暗黒"];
+    if(UC[clickIndex].A->D->seed == 14) str = [str stringByAppendingFormat:@"爆撃"];
+    if(UC[clickIndex].A->D->seed == 15) str = [str stringByAppendingFormat:@"流血"];
+    
+    [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"type"];
+        }
+    
+        if(UC[clickIndex].A->D){
+            if(UC[clickIndex].A->D->count <= 0 && UC[clickIndex].A->D->sort == 0)
+            {
+                UC[clickIndex].A->D = NULL;
+                break;
+            }
+            [self willChangeValueForKey:@"damageListMA"];
+            [damageListMA addObject:dict];
+            [self didChangeValueForKey:@"damageListMA"];
+        
+        UC[clickIndex].A->D = UC[clickIndex].A->D->next;
+    }
+    }while(UC[clickIndex].A->D != NULL);
+    
+    UC[clickIndex].A->D = Dtop;
+    
+    DMGEXTEND *Etop = UC[clickIndex].A->E;
+    while(UC[clickIndex].A->E != NULL){
+
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+        
+        [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->E->rate] forKey:@"rate"];
+        [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->E->atkHit] forKey:@"atkHit"];
+        [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->E->hit] forKey:@"hit"];
+        
+        [self willChangeValueForKey:@"hitListMA"];
+        [hitListMA addObject:dict];
+        [self didChangeValueForKey:@"hitListMA"];
+        
+       UC[clickIndex].A->E = UC[clickIndex].A->E->next;
+    };
+    
+    UC[clickIndex].A->E = Etop;
+    
+    UC[clickIndex].A = atkTop;
+        
+        
+    }else{
+    
+        atkTop = LC[cil].A;
+        
+        clickIndexAL = [attackListTV clickedRow];
+        
+        [self willChangeValueForKey:@"damageListMA"];
+        [damageListMA removeAllObjects];
+        [self didChangeValueForKey:@"damageListMA"];
+        
+        [self willChangeValueForKey:@"hitListMA"];
+        [hitListMA removeAllObjects];
+        [self didChangeValueForKey:@"hitListMA"];
+        
+        if(clickIndexAL <= -1) return;
+        
+        for(int i = 0;i < clickIndexAL;i++){
+            LC[cil].A = LC[cil].A->next;
+        }
+        
+        [ALTFname setStringValue:LC[cil].A->name];
+        [ALTFrangeA setIntValue:LC[cil].A->rangeA];
+        [ALTFrangeB setIntValue:LC[cil].A->rangeB];
+        [ALTFextend setIntValue:LC[cil].A->extent];
+        
+        [ALTFtrigger setIntValue:LC[cil].A->trig];
+        [ALTFmelee setIntValue:LC[cil].A->melee];
+        [ALTFpass setIntValue:LC[cil].A->P];
+        [ALTFdmgExtent setIntValue:LC[cil].A->dmgExtend];
+        [ALPUBwType selectItemAtIndex:LC[cil].A->type];
+        
+        [ALPUBtype removeAllItems];
+        [ALPUBtype addItemWithTitle:@"攻撃力"];
+        
+        [ALPUBcost removeAllItems];
+        [ALPUBcost addItemWithTitle:@"EN"];
+        [ALPUBcost addItemWithTitle:@"HP"];
+        [ALPUBcost selectItemAtIndex:LC[cil].A->costType];
+        if(1){
+            if(LC[cil].A->costType == 0){
+                [ALTFcost setIntValue:LC[cil].A->EN];
+                [ALTFcostP setIntValue:LC[cil].A->pEN];
+            }
+            if(LC[cil].A->costType == 1){
+                [ALTFcost setIntValue:LC[cil].A->HP];
+                [ALTFcostP setIntValue:LC[cil].A->pHP];
+            }
+        }
+        [ALTFbullet setIntValue:LC[cil].A->bullet];
+        [ALTFhitCount setIntValue:LC[cil].A->hitCount];
+        [ALTFsuccessRate setIntValue:LC[cil].A->successRate];
+        [ALTFvigor setIntValue:LC[cil].A->vigor];
+        [ALTFhitRate setIntValue:LC[cil].A->hitPercent];
+        
+        [ALPUBriku selectItemAtIndex:LC[cil].A->riku];
+        [ALPUBchu selectItemAtIndex:LC[cil].A->chu];
+        [ALPUBumi selectItemAtIndex:LC[cil].A->umi];
+        [ALPUBsora selectItemAtIndex:LC[cil].A->sora];
+        
+        [ALTFcSupply setIntValue:LC[cil].A->cSupply];
+        [ALTFcFood setIntValue:LC[cil].A->cFood];
+        [ALTFcMoney setIntValue:LC[cil].A->cMoney];
+        
+        [ALTFcmd setStringValue:LC[cil].A->cmd];
+        if(LC[cil].A->msg != NULL) [ALTFmsg setStringValue:LC[cil].A->msg];
+        
+        DAMAGE *Dtop = LC[cil].A->D;
+        do{
+            
+            NSMutableDictionary* dict = [NSMutableDictionary new];
+            if(!LC[cil].A->D){
+                [dict setValue:[NSString stringWithFormat:@""] forKey:@"count"];
+            }
+            else if(LC[cil].A->D->count > 0 || LC[cil].A->D->pCount > 0){
+                    [dict setValue:[NSString stringWithFormat:@"攻%g+%g%", LC[cil].A->D->count, LC[cil].A->D->pCount] forKey:@"count"];
+            }
+            NSString *str;
+            
+            if(LC[cil].A->D){
+                if(LC[cil].A->D->sort == 0) str = [NSString stringWithFormat:@"ダ・"];
+                if(LC[cil].A->D->sort == 1) str = [NSString stringWithFormat:@"回・"];
+                if(LC[cil].A->D->sort == 2) str = [NSString stringWithFormat:@"復・"];
+                if(LC[cil].A->D->sort == 3) str = [NSString stringWithFormat:@"減・"];
+                if(LC[cil].A->D->sort == 4) str = [NSString stringWithFormat:@"増・"];
+                if(LC[cil].A->D->sort == 5) str = [NSString stringWithFormat:@"毒・"];
+                if(LC[cil].A->D->sort == 6) str = [NSString stringWithFormat:@"睡・"];
+                if(LC[cil].A->D->sort == 7) str = [NSString stringWithFormat:@"混・"];
+                if(LC[cil].A->D->sort == 8) str = [NSString stringWithFormat:@"麻・"];
+                if(LC[cil].A->D->sort == 9) str = [NSString stringWithFormat:@"沈・"];
+                if(LC[cil].A->D->sort == 10) str = [NSString stringWithFormat:@"魅・"];
+                
+                if(LC[cil].A->D->seed == 0) str = [str stringByAppendingFormat:@"打撃"];
+                if(LC[cil].A->D->seed == 1) str = [str stringByAppendingFormat:@"斬撃"];
+                if(LC[cil].A->D->seed == 2) str = [str stringByAppendingFormat:@"突き"];
+                if(LC[cil].A->D->seed == 3) str = [str stringByAppendingFormat:@"射手"];
+                if(LC[cil].A->D->seed == 4) str = [str stringByAppendingFormat:@"銃撃"];
+                if(LC[cil].A->D->seed == 5) str = [str stringByAppendingFormat:@"砲撃"];
+                if(LC[cil].A->D->seed == 6) str = [str stringByAppendingFormat:@"火炎"];
+                if(LC[cil].A->D->seed == 7) str = [str stringByAppendingFormat:@"冷気"];
+                if(LC[cil].A->D->seed == 8) str = [str stringByAppendingFormat:@"電撃"];
+                if(LC[cil].A->D->seed == 9) str = [str stringByAppendingFormat:@"風圧"];
+                if(LC[cil].A->D->seed == 10) str = [str stringByAppendingFormat:@"流水"];
+                if(LC[cil].A->D->seed == 11) str = [str stringByAppendingFormat:@"ガス"];
+                if(LC[cil].A->D->seed == 12) str = [str stringByAppendingFormat:@"神聖"];
+                if(LC[cil].A->D->seed == 13) str = [str stringByAppendingFormat:@"暗黒"];
+                if(LC[cil].A->D->seed == 14) str = [str stringByAppendingFormat:@"爆撃"];
+                if(LC[cil].A->D->seed == 15) str = [str stringByAppendingFormat:@"流血"];
+                
+                [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"type"];
+            }
+            
+            if(LC[cil].A->D){
+                if(LC[cil].A->D->count <= 0 && LC[cil].A->D->sort == 0)
+                {
+                    LC[cil].A->D = NULL;
+                    break;
+                }
+                [self willChangeValueForKey:@"damageListMA"];
+                [damageListMA addObject:dict];
+                [self didChangeValueForKey:@"damageListMA"];
+                
+                LC[cil].A->D = LC[cil].A->D->next;
+            }
+        }while(LC[cil].A->D != NULL);
+        
+        LC[cil].A->D = Dtop;
+        
+        DMGEXTEND *Etop = LC[cil].A->E;
+        while(LC[cil].A->E != NULL){
+            NSMutableDictionary* dict = [NSMutableDictionary new];
+            
+            
+            [dict setValue:[NSString stringWithFormat:@"%d", LC[cil].A->E->rate] forKey:@"rate"];
+            [dict setValue:[NSString stringWithFormat:@"%d", LC[cil].A->E->atkHit] forKey:@"atkHit"];
+            [dict setValue:[NSString stringWithFormat:@"%d", LC[cil].A->E->hit] forKey:@"hit"];
+            
+            [self willChangeValueForKey:@"hitListMA"];
+            [hitListMA addObject:dict];
+            [self didChangeValueForKey:@"hitListMA"];
+            
+            LC[cil].A->E = LC[cil].A->E->next;
+        };
+        
+        LC[cil].A->E = Etop;
+        
+        LC[cil].A = atkTop;
+    
+    
+    
+    
+    
+    
+    
+    }
+    
+    
+    UCLDpoint.x = [UCLPanelAttack frame].origin.x + 0;
+    UCLDpoint.y = [UCLPanelAttack frame].origin.y + 0;
+    [UCLPanelAttackDetail setFrameOrigin:UCLDpoint];
+    [UCLPanelAttackDetail makeKeyAndOrderFront:nil];
+}
+
+-(void)doubleClickUCL:(id)sender{
+    clickIndex = [unitChipListTV clickedRow];
+    
+    [TFname setStringValue:UC[clickIndex].name];
+    [TFnameN setStringValue:UC[clickIndex].nameNick];
+    [TFnameR setStringValue:UC[clickIndex].nameRecognition];
+    [TFnameID setStringValue:UC[clickIndex].nameID];
+    [TFnameC setStringValue:UC[clickIndex].nameClass];
+    
+    
+    [TFhp setDoubleValue:UC[clickIndex].S_M.HP];
+    [TFmp setDoubleValue:UC[clickIndex].S_M.MP];
+    [TFap setDoubleValue:UC[clickIndex].S_M.AP];
+    [TFwt setDoubleValue:UC[clickIndex].S_M.WT];
+    
+    [TFbp setStringValue:[NSString stringWithFormat:@"BP %g", UC[clickIndex].S_M.BP]];
+    [TFatk setStringValue:[NSString stringWithFormat:@"攻撃力 %g", UC[clickIndex].S_M.ATK]];
+    [TFdef setStringValue:[NSString stringWithFormat:@"防御力 %g", UC[clickIndex].S_M.DEF]];
+    [TFcap setStringValue:[NSString stringWithFormat:@"演算力 %g", UC[clickIndex].S_M.CAP]];
+    [TFacu setStringValue:[NSString stringWithFormat:@"命中値 %g", UC[clickIndex].S_M.ACU]];
+    [TFeva setStringValue:[NSString stringWithFormat:@"回避値 %g", UC[clickIndex].S_M.EVA]];
+    
+    [TFstr setDoubleValue:UC[clickIndex].S_M.STR];
+    [TFvit setDoubleValue:UC[clickIndex].S_M.VIT];
+    [TFagi setDoubleValue:UC[clickIndex].S_M.AGI];
+    [TFdex setDoubleValue:UC[clickIndex].S_M.DEX];
+    [TFmen setDoubleValue:UC[clickIndex].S_M.MEN];
+    [TFint setDoubleValue:UC[clickIndex].S_M.INT];
+    [TFluk setDoubleValue:UC[clickIndex].S_M.LUK];
+    [TFmov setIntValue:UC[clickIndex].S_M.MOV];
+    
+    [TFmel setDoubleValue:UC[clickIndex].S_M.MEL];
+    [TFmis setDoubleValue:UC[clickIndex].S_M.MIS];
+    [TFhit setDoubleValue:UC[clickIndex].S_M.HIT];
+    [TFdod setDoubleValue:UC[clickIndex].S_M.DOD];
+    [TFrea setDoubleValue:UC[clickIndex].S_M.REA];
+    [TFski setDoubleValue:UC[clickIndex].S_M.SKI];
+    
+    [TFcSupply setIntValue:UC[clickIndex].S_M.cSupply];
+    [TFcFood setIntValue:UC[clickIndex].S_M.cFood];
+    [TFcMoney setIntValue:UC[clickIndex].S_M.cMoney];
+    [TFcWT setIntValue:UC[clickIndex].S_M.cWT];
+    
+    [PUPtMons selectItemAtIndex:UC[clickIndex].S_M.typeMONS];
+    [PUPtMove selectItemAtIndex:UC[clickIndex].S_M.typeMOVE];
+    //[PUPtEquip selectItemAtIndex:UC[clickIndex].S_M.typeMOVE];
+    
+    [IVimg setImage:UC[clickIndex].img];
+    [IVimgBig setImage:UC[clickIndex].imgb];
+    [Baura setIntValue:UC[clickIndex].aura];
+    
+    [self addPUBEquipList];
+    [self initEquip];
+    
+    
+    UCLDpoint.x = [UCLPanel frame].origin.x + 50;
+    UCLDpoint.y = [UCLPanel frame].origin.y + 100;
+    [UCLDetailPanel setFrameOrigin:UCLDpoint];
+    [UCLDetailPanel makeKeyAndOrderFront:nil];
+}
+
+-(IBAction)saveUCL:(id)sender{
+    
+    UC[clickIndex].name = [[TFname stringValue] retain];
+    UC[clickIndex].nameNick = [[TFnameN stringValue] retain];
+    UC[clickIndex].nameRecognition = [[TFnameR stringValue] retain];
+    UC[clickIndex].nameID = [[TFnameID stringValue] retain];
+    UC[clickIndex].nameClass = [[TFnameC stringValue] retain];
+    
+    UC[clickIndex].S_M.HP = [TFhp doubleValue];
+    UC[clickIndex].S_M.MP = [TFmp doubleValue];
+    UC[clickIndex].S_M.AP = [TFap doubleValue];
+    UC[clickIndex].S_M.WT = [TFwt doubleValue];
+    
+    UC[clickIndex].S_M.STR = [TFstr doubleValue];
+    UC[clickIndex].S_M.VIT = [TFvit doubleValue];
+    UC[clickIndex].S_M.AGI = [TFagi doubleValue];
+    UC[clickIndex].S_M.DEX = [TFdex doubleValue];
+    UC[clickIndex].S_M.MEN = [TFmen doubleValue];
+    UC[clickIndex].S_M.INT = [TFint doubleValue];
+    UC[clickIndex].S_M.LUK = [TFluk doubleValue];
+    UC[clickIndex].S_M.MOV = [TFmov intValue];
+    
+    UC[clickIndex].S_M.MEL = [TFmel doubleValue];
+    UC[clickIndex].S_M.MIS = [TFmis doubleValue];
+    UC[clickIndex].S_M.HIT = [TFhit doubleValue];
+    UC[clickIndex].S_M.DOD = [TFdod doubleValue];
+    UC[clickIndex].S_M.REA = [TFrea doubleValue];
+    UC[clickIndex].S_M.SKI = [TFski doubleValue];
+    
+    UC[clickIndex].S_M.cSupply = [TFcSupply intValue];
+    UC[clickIndex].S_M.cFood = [TFcFood intValue];
+    UC[clickIndex].S_M.cMoney = [TFcMoney intValue];
+    UC[clickIndex].S_M.cWT = [TFcWT intValue];
+    
+    UC[clickIndex].S_M.typeMONS = (int)[PUPtMons indexOfSelectedItem];
+    UC[clickIndex].S_M.typeMOVE = (int)[PUPtMove indexOfSelectedItem];
+    
+    UC[clickIndex].img = [[IVimg image] retain];
+    UC[clickIndex].imgb = [[IVimgBig image] retain];
+    UC[clickIndex].aura = [Baura intValue];
+    
+    [unitChipListAC setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].name] forKeyPath:@"selection.name"];
+    [unitChipListAC setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].nameClass] forKeyPath:@"selection.nameC"];
+    [unitChipListAC setValue:[NSString stringWithFormat:@"%g", UC[clickIndex].S_M.HP] forKeyPath:@"selection.HP"];
+    [unitChipListAC setValue:[NSString stringWithFormat:@"%g", UC[clickIndex].S_M.BP] forKeyPath:@"selection.BP"];
+    [unitChipListAC setValue:UC[clickIndex].img forKeyPath:@"selection.img"];
+    [unitChipListAC setValue:UC[clickIndex].imgb forKeyPath:@"selection.imgBig"];
+    
+    
+    [self saveData];
+    [self saveDataAL];
+    [UCLDetailPanel close];
+}
+-(IBAction)cancelUCL:(id)sender{
+    [UCLDetailPanel close];
+}
+
+-(void)initFileDirectory{
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    char *cwd;
+    cwd = getcwd(NULL, 0);
+    
+    
+    NSData *InitialData = [NSData dataWithContentsOfFile:@"data/UnitChip/preset.txt"];
+    NSString *pathUC = @"data/UnitChip/img";
+    NSString *pathDATA2 = @"data/UnitChip/preset.txt";
+    NSString *pathUCP = @"data/UnitChip/preset.txt";
+    NSString *fileData = nil;
+    
+    chipNumb = 56;
+    UCN = (int)chipNumb;
+    if(!InitialData){
+        [[NSFileManager defaultManager] createDirectoryAtPath:pathUC withIntermediateDirectories:YES attributes:nil error:nil];
+        [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil];
+        
+        [[NSFileManager defaultManager] createFileAtPath:pathUCP contents:nil attributes:nil];
+        
+        NSString *data0 = @"56";
+        [data0 writeToFile:pathUCP atomically:YES encoding:NSUTF8StringEncoding error:nil];
+        
+        NSString *data1 = @"村人\n村人\nパーサント\n村人,uc1,0\n"
+        @"100,50,0,500,5\n30,30,30,30,30,30,0,9\n100,100,100,100,100,100\n100,100,100,100,100\n0,0,0,50,0,500\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\nuc1.png,ucb1.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data2 = @"兵士\n兵士\nソルジャー\n兵士,uc2,0\n"
+        @"150,80,0,520,6\n50,40,45,40,35,35,0,12\n120,120,100,100,120,130\n100,100,100,100,100\n0,0,0,50,50,500\n"
+        @"80,80,100,80,60,100,"
+        @"90,80,150,100,100,100,100,100,80,100,"
+        @"100,100,100,100,100,100\nuc2.png,ucb2.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data3 = @"戦士\n戦士\nファイター\n戦士,uc3,0\n"
+        @"200,100,0,550,6\n55,50,30,40,40,32,0,14\n130,110,100,100,125,135\n100,100,100,100,100\n0,0,0,80,30,500\n"
+        @"90,90,100,100,90,100,"
+        @"100,100,120,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\nuc3.png,ucb3.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data4 = @"女蛮族\n女蛮族\nアマゾネス\n女蛮族,uc4,0\n"
+        @"120,70,0,480,5\n40,35,50,50,45,36,0,11\n110,130,120,120,130,130\n100,100,100,100,100\n0,0,0,30,40,500\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\nuc4.png,ucb4.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data5 = @"僧徒\n僧徒\nアコライト\n僧徒,uc5,0\n"
+        @"130,100,0,540,5\n35,32,40,36,55,50,0,10\n105,110,105,100,125,125\n100,100,100,100,100\n0,0,0,20,100,500\n"
+        @"100,100,100,100,100,100,"
+        @"100,130,80,100,100,100,50,120,100,100,"
+        @"100,100,100,100,100,100\nuc5.png,ucb5.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data6 = @"魔法使い\n魔法使い\nマジシャン\n魔法使い,uc6,0\n"
+        @"120,150,0,490,5\n38,32,42,45,50,60,0,10\n105,120,120,120,130,140\n100,100,100,100,100\n0,0,100,30,80,500\n"
+        @"100,150,80,90,100,100,"
+        @"80,70,60,90,90,70,100,80,80,90,"
+        @"100,100,100,100,100,100\nuc6.png,ucb6.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+
+        NSString *data7 = @"盗賊\n盗賊\nシーフ\n盗賊,uc7,0\n"
+        @"140,90,0,450,6\n45,40,60,50,45,40,0,18\n110,115,130,140,130,145\n100,100,100,100,100\n0,0,0,60,40,500\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\nuc7.png,ucb7.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data8 = @"騎士\n騎士\nナイト\n騎士,uc8,0\n"
+        @"225,100,0,500,6\n60,50,50,55,55,50,0,12\n130,125,120,120,125,130\n100,100,100,100,100\n0,0,0,60,80,500\n"
+        @"70,70,90,80,50,100,"
+        @"80,70,150,90,100,100,100,100,80,100,"
+        @"100,100,100,100,100,100\nuc8.png,ucb8.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data9 = @"狂戦士\n狂戦士\nバーサーカー\n狂戦士,uc9,0\n"
+        @"255,80,0,470,6\n70,40,55,60,58,40,0,14\n140,110,130,110,130,140\n100,100,100,100,100\n0,0,0,100,50,500\n"
+        @"100,100,100,100,100,100,"
+        @"100,120,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\nuc9.png,ucb9.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data10 = @"闘技士\n闘技士\nグラディエーター\n闘技士,uc10,0\n"
+        @"300,100,0,450,6\n80,45,60,65,60,50,0,15\n135,120,125,120,135,135\n100,100,100,100,100\n0,0,0,80,70,500\n"
+        @"80,80,100,80,80,100,"
+        @"80,80,120,80,80,100,100,100,80,100,"
+        @"100,100,100,100,100,100\nuc10.png,ucb10.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data11 = @"傭兵\n傭兵\nマーシナリ\n傭兵,uc11,0\n"
+        @"200,100,0,480,6\n55,40,60,60,55,40,0,15\n120,120,120,120,130,130\n100,100,100,100,100\n0,0,0,60,60,500\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\nuc11.png,ucb11.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data12 = @"弓士\n弓士\nアーチャー\n弓士,uc12,0\n"
+        @"180,90,0,500,6\n50,50,55,55,50,50,0,13\n120,120,120,120,120,120\n100,100,100,100,100\n0,0,50,50,50,500\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\nuc12.png,ucb12.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data13 = @"僧侶\n僧侶\nクレリック\n僧侶,uc13,0\n"
+        @"160,150,0,500,5\n38,34,50,60,60,60,0,10\n110,110,120,120,125,130\n100,100,100,100,100\n0,0,0,30,150,500\n"
+        @"100,100,100,100,100,100,"
+        @"80,120,70,80,80,100,50,120,100,100,"
+        @"100,100,100,100,100,100\nuc13.png,ucb13.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data14 = @"魔術師\n魔術師\nウィザード\n魔術師,uc14,0\n"
+        @"150,200,0,450,5\n40,36,54,58,60,80,0,10\n105,130,130,150,150,150\n100,100,100,100,100\n0,0,200,30,100,500\n"
+        @"100,130,80,100,100,100,"
+        @"70,50,60,80,90,80,100,70,100,100,"
+        @"100,100,100,100,100,100\nuc14.png,ucb14.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data15 = @"祈祷師\n祈祷師\nシャーマン\n祈祷師,uc15,0\n"
+        @"140,180,0,520,5\n50,50,50,60,80,60,0,10\n110,120,130,130,140,140\n100,100,100,100,100\n0,0,60,40,50,500\n"
+        @"100,100,100,100,100,100,"
+        @"80,80,80,80,80,80,80,80,100,100,"
+        @"100,100,100,100,100,100\nuc15.png,ucb15.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data16 = @"奇術師\n奇術師\nドルイド\n奇術師,uc16,0\n"
+        @"180,150,0,460,5\n45,40,60,75,65,65,0,12\n120,120,130,130,130,150\n100,100,100,100,100\n0,0,40,60,60,500\n"
+        @"100,100,100,100,100,100,"
+        @"80,90,70,60,80,60,100,60,80,80,"
+        @"100,100,100,100,100,100\nuc16.png,ucb16.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data17 = @"魔女\n魔女\nウィッチ\n魔女,uc17,0\n"
+        @"130,200,0,480,5\n35,45,55,80,80,80,0,10\n110,130,150,140,150,150\n100,100,100,100,100\n0,0,300,30,150,500\n"
+        @"100,100,100,100,100,100,"
+        @"90,90,80,80,90,80,130,70,100,100,"
+        @"100,100,100,100,100,100\nuc17.png,ucb17.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data18 = @"侍\n侍\nサムライ\n侍,uc18,0\n"
+        @"200,100,0,450,6\n70,35,70,70,65,45,0,16\n150,110,150,150,150,150\n100,100,100,100,100\n0,0,0,120,0,500\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\nuc18.png,ucb18.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data19 = @"聖騎士\n聖騎士\nホワイトナイト\n聖騎士,uc19,0\n"
+        @"250,150,0,420,6\n98,50,76,82,74,52,0,15\n140,130,160,160,150,150\n100,100,100,100,100\n0,0,0,50,200,500\n"
+        @"70,70,80,80,50,100,"
+        @"80,80,130,80,80,80,80,120,70,100,"
+        @"100,100,100,100,100,100\nuc19.png,ucb19.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data20 = @"黒騎士\n黒騎士\nブラックナイト\n黒騎士,uc20,0\n"
+        @"270,180,0,460,6\n82,86,60,80,78,60,0,13\n140,140,150,150,150,150\n100,100,100,100,100\n0,0,0,100,150,500\n"
+        @"60,60,60,60,50,100,"
+        @"80,70,130,80,80,80,150,50,60,100,"
+        @"100,100,100,100,100,100\nuc20.png,ucb20.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data21 = @"亡霊騎士\n亡霊騎士\nスタンジャンナイト\n亡霊騎士,uc21,0\n"
+        @"300,200,0,500,6\n120,150,45,60,50,40,0,10\n150,120,120,120,120,120\n100,100,100,100,100\n0,0,300,0,100,500\n"
+        @"50,50,50,0,0,150,"
+        @"50,0,50,50,50,0,200,30,150,0,"
+        @"100,100,100,100,100,100\nuc21.png,ucb21.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data22 = @"王国騎士\n王国騎士\nレギオン\n王国騎士,uc22,0\n"
+        @"260,160,0,450,6\n90,90,60,70,70,60,0,14\n150,130,150,150,150,150\n100,100,100,100,100\n0,0,0,100,300,500\n"
+        @"60,60,80,60,50,100,"
+        @"80,80,120,80,80,80,80,80,60,100,"
+        @"100,100,100,100,100,100\nuc22.png,ucb22.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data23 = @"怪盗\n怪盗\nレンジャー\n怪盗,uc23,0\n"
+        @"230,200,0,400,6\n76,68,92,98,86,72,0,18\n130,140,160,160,155,160\n100,100,100,100,100\n0,0,100,100,100,500\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\nuc23.png,ucb23.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data24 = @"司祭\n司祭\nプリースト\n司祭,uc24,0\n"
+        @"200,250,0,480,6\n60,76,64,82,94,90,0,12\n120,120,150,140,145,150\n100,100,100,100,100\n0,0,0,30,250,500\n"
+        @"100,100,100,100,100,100,"
+        @"80,80,80,80,80,80,50,90,100,100,"
+        @"100,100,100,100,100,100\nuc24.png,ucb24.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data25 = @"言語術士\n言語術士\nワーロック\n言語術士,uc25,0\n"
+        @"130,300,0,460,5\n34,46,52,75,120,130,0,12\n105,110,140,120,150,155\n100,100,100,100,100\n0,0,500,30,300,500\n"
+        @"100,100,100,100,100,100,"
+        @"50,50,50,80,80,80,100,100,100,100,"
+        @"100,100,100,100,100,100\nuc25.png,ucb25.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data26 = @"聖女\n聖女\nセイレーン\n聖女,uc26,0\n"
+        @"150,255,0,470,5\n38,34,68,80,98,112,0,12\n105,150,150,120,140,150\n100,100,100,100,100\n0,0,300,50,200,500\n"
+        @"100,120,100,100,100,100,"
+        @"60,70,50,60,80,80,60,80,80,100,"
+        @"100,100,100,100,100,100\nuc26.png,ucb26.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data27 = @"言霊使い\n言霊使い\nソーサレス\n言霊使い,uc27,0\n"
+        @"170,240,0,460,5\n48,40,78,76,85,98,0,10\n120,130,140,140,145,145\n100,100,100,100,100\n0,0,200,30,100,500\n"
+        @"100,120,100,100,100,100,"
+        @"70,70,70,70,70,70,70,70,70,70,"
+        @"100,100,100,100,100,100\nuc27.png,ucb27.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data28 = @"聖戦士\n聖戦士\nヴァルキリー\n聖戦士,uc28,0\n"
+        @"200,200,0,450,5\n55,60,82,96,70,100,0,14\n140,140,140,140,140,150\n100,100,100,100,100\n0,0,500,50,500,500\n"
+        @"80,80,100,80,80,100,"
+        @"80,80,70,80,70,80,80,90,80,90,"
+        @"100,100,100,100,100,100\nuc28.png,ucb28.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data29 = @"聖騎士長\n聖騎士長\nパラディン\n聖騎士長,uc29,0\n"
+        @"320,230,0,400,7\n120,100,130,115,100,100,0,14\n150,130,150,150,150,150\n100,100,100,100,100\n0,0,0,50,400,500\n"
+        @"60,60,60,60,50,100,"
+        @"60,60,100,70,80,80,80,120,80,100,"
+        @"100,100,100,100,100,100\nuc29.png,ucb29.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data30 = @"暗黒騎士\n暗黒騎士\nテラーナイト\n暗黒騎士,uc30,0\n"
+        @"400,150,0,420,7\n130,130,90,100,94,64,0,12\n150,120,150,150,150,150\n100,100,100,100,100\n0,0,0,100,200,500\n"
+        @"50,50,50,50,50,100,"
+        @"70,70,100,70,50,50,120,50,50,100,"
+        @"100,100,100,100,100,100\nuc30.png,ucb30.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data31 = @"教皇騎士\n教皇騎士\nテンプルナイト\n教皇騎士,uc31,0\n"
+        @"360,250,0,400,7\n100,100,100,100,100,100,0,12\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,200,100,300,500\n"
+        @"60,60,60,60,50,100,"
+        @"50,50,50,50,50,50,50,50,50,100,"
+        @"100,100,100,100,100,100\nuc31.png,ucb31.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data32 = @"狙撃手\n狙撃手\nスナイパー\n狙撃手,uc32,0\n"
+        @"200,160,0,450,5\n60,50,90,90,80,70,0,13\n110,150,180,130,150,150\n100,100,100,100,100\n0,0,200,100,300,500\n"
+        @"100,100,100,100,100,100,"
+        @"100,100,100,100,100,100,100,100,100,100,"
+        @"100,100,100,100,100,100\nuc32.png,ucb32.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data33 = @"司教\n司教\nビショップ\n司教,uc33,0\n"
+        @"240,400,0,450,5\n62,80,70,98,110,120,0,10\n125,125,150,150,150,150\n100,100,100,100,100\n0,0,0,50,500,500\n"
+        @"100,100,100,100,100,100,"
+        @"80,80,80,80,80,80,50,150,100,100,"
+        @"100,100,100,100,100,100\nuc33.png,ucb33.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data34 = @"賢者\n賢者\nセイジ\n賢者,uc34,0\n"
+        @"230,500,0,400,6\n98,86,94,98,120,150,0,13\n130,140,150,150,150,150\n100,100,100,100,100\n0,0,250,50,250,500\n"
+        @"70,70,70,80,80,100,"
+        @"50,50,50,50,50,50,50,75,100,100,"
+        @"100,100,100,100,100,100\nuc34.png,ucb34.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data35 = @"将軍\n将軍\nジェネラル\n将軍,uc35,0\n"
+    
+        @"600,300,0,450,6\n150,140,80,130,96,120,0,12\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"60,60,80,50,80,100,"
+        @"70,70,80,70,70,70,80,80,70,100,"
+        @"100,100,100,100,100,100\nuc35.png,ucb35.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data36 = @"男爵\n男爵\nバロン\n男爵,uc36,0\n"
+        @"550,500,0,520,6\n100,180,50,90,120,100,0,9\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"50,50,50,50,25,100,"
+        @"70,50,150,50,50,60,100,70,50,100,"
+        @"100,100,100,100,100,100\nuc36.png,ucb36.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data37 = @"魔導士\n魔導士\nアークメイジ\n魔導士,uc37,0\n"
+        @"200,500,0,450,6\n60,50,78,98,140,140,0,12\n120,130,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"100,100,100,100,100,100,"
+        @"50,50,50,50,50,50,70,50,50,70,"
+        @"100,100,100,100,100,100\nuc37.png,ucb37.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data38 = @"召喚師\n召喚師\nサモナー\n召喚師,uc38,0\n"
+        @"220,550,0,480,5\n50,50,60,80,150,150,0,10\n125,125,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"100,100,100,100,100,100,"
+        @"70,70,60,60,60,50,80,60,50,80,"
+        @"100,100,100,100,100,100\nuc38.png,ucb38.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data39 = @"古語術士\n古語術士\nルーンマスター\n古語術士,uc39,0\n"
+        @"180,600,0,500,5\n90,90,90,90,150,150,0,10\n120,130,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"100,100,100,100,100,100,"
+        @"50,50,50,50,50,50,50,50,50,50,"
+        @"100,100,100,100,100,100\nuc39.png,ucb39.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data40 = @"死霊使い\n死霊使い\nネクロマンサー\n死霊使い,uc40,0\n"
+        @"210,700,0,500,5\n50,60,70,140,150,150,0,10\n130,130,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"100,100,100,100,100,100,"
+        @"50,50,50,50,50,50,200,25,50,50,"
+        @"100,100,100,100,100,100\nuc40.png,ucb40.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data41 = @"占星術士\n占星術士\nアストロマンサー\n占星術士,uc41,0\n"
+        @"250,800,0,400,5\n80,70,120,150,150,150,0,12\n130,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"80,80,80,80,80,80,"
+        @"50,50,50,50,50,50,50,50,50,50,"
+        @"100,100,100,100,100,100\nuc41.png,ucb41.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data42 = @"元帥\n元帥\nマーシャル\n元帥,uc42,0\n"
+        @"500,200,0,500,6\n130,150,60,84,76,85,0,9\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"50,50,50,50,25,100,"
+        @"80,60,150,50,60,70,100,70,50,100,"
+        @"100,100,100,100,100,100\nuc42.png,ucb42.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        
+        NSString *data43 = @"勇者\n勇者\nロード\n勇者,uc43,0\n"
+        @"500,250,0,400,6\n125,125,125,125,125,125,0,15\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"75,75,75,75,75,75,"
+        @"75,75,75,75,75,75,75,75,75,75,"
+        @"100,100,100,100,100,100\nuc43.png,ucb43.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        
+        NSString *data44 = @"公爵\n公爵\nデューク\n公爵,uc44,0\n"
+        @"430,320,0,400,6\n150,150,120,125,120,120,0,12\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"50,50,50,50,25,100,"
+        @"50,50,50,50,50,50,80,50,50,100,"
+        @"100,100,100,100,100,100\nuc44.png,ucb44.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+
+        NSString *data45 = @"王子\n王子\nプリンス\n王子,uc45,0\n"
+        @"600,300,0,400,6\n120,100,100,120,130,120,0,14\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"80,80,80,80,80,80,"
+        @"80,80,80,80,80,80,50,100,80,80,"
+        @"100,100,100,100,100,100\nuc45.png,ucb45.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data46 = @"王女\n王女\nプリンセス\n王女,uc46,0\n"
+        @"500,500,0,500,6\n100,100,100,150,150,150,0,12\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"100,100,100,100,100,100,"
+        @"50,50,50,50,50,50,50,50,50,50,"
+        @"100,100,100,100,100,100\nuc47.png,ucb47.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data47 = @"枢機卿\n枢機卿\nカーディナル\n枢機卿,uc47,0\n"
+        @"400,400,0,550,6\n40,40,80,90,100,120,0,10\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"70,70,70,70,70,70,"
+        @"50,50,50,50,50,50,25,50,50,50,"
+        @"100,100,100,100,100,100\nuc47.png,ucb47.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data48 = @"大司教\n大司教\nアークビショップ\n大司教,uc48,0\n"
+        
+        @"450,400,0,400,6\n100,100,120,120,120,120,0,14\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"50,50,50,50,50,50,"
+        @"50,50,50,50,50,50,50,50,50,50,"
+        @"100,100,100,100,100,100\nuc48.png,ucb48.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data49 = @"教皇\n教皇\nポープ\n教皇,uc49,0\n"
+        @"300,900,0,450,6\n50,50,100,150,150,150,0,12\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"100,100,100,100,100,100,"
+        @"50,50,50,50,50,50,50,50,50,50,"
+        @"100,100,100,100,100,100\nuc49.png,ucb49.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data50 = @"王\n王\nキング\n王,uc50,0\n"
+        @"500,250,0,500,6\n50,50,50,100,130,120,0,12\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"80,80,80,80,80,80,"
+        @"50,50,50,50,50,50,50,50,50,50,"
+        @"100,100,100,100,100,100\nuc50.png,ucb50.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data51 = @"女王\n女王\nクイーン\n女王,uc51,0\n"
+        @"500,500,0,450,6\n50,50,50,130,120,100,0,15\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"50,50,50,50,50,50,"
+        @"50,50,50,50,50,50,50,50,50,50,"
+        @"100,100,100,100,100,100\nuc51.png,ucb51.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+
+        NSString *data52 = @"皇帝\n皇帝\nエンペラー\n皇帝,uc52,0\n"
+        @"900,800,0,450,6\n150,150,150,150,150,150,0,12\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"50,50,50,50,50,50,"
+        @"25,25,25,50,50,50,50,50,50,50,"
+        @"100,100,100,100,100,100\nuc52.png,ucb52.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data53 = @"三日月王\n三日月王\nクレセント\n三日月王,uc53,0\n"
+        @"1200,1000,150,400,6\n200,160,180,230,220,180,0,15\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"50,50,50,50,50,50,"
+        @"25,25,25,25,25,25,50,25,25,50,"
+        @"100,100,100,100,100,100\nuc53.png,ucb53.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data54 = @"月の王\n月の王\nセレス\n月の王,uc54,0\n"
+        @"1500,1000,200,400,6\n225,200,210,250,255,255,0,15\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"25,25,25,25,25,50,"
+        @"25,25,25,25,25,25,25,25,25,50,"
+        @"100,100,100,100,100,100\nuc54.png,ucb54.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data55 = @"日蝕王\n日蝕王\nイクリプス\n日蝕王,uc55,0\n"
+        @"2500,1500,250,400,6\n250,230,240,250,255,255,0,15\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"10,10,10,10,10,25,"
+        @"10,10,10,10,10,25,25,25,25,25,"
+        @"100,100,100,100,100,100\nuc55.png,ucb55.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        NSString *data56 = @"彗星王\n彗星王\nコメット\n彗星王,uc56,0\n"
+        @"5000,2500,300,400,6\n255,255,255,255,255,255,0,15\n150,150,150,150,150,150\n100,100,100,100,100\n0,0,0,100,1000,500\n"
+        @"10,10,10,10,10,10,"
+        @"10,10,10,10,10,10,10,10,10,10,"
+        @"100,100,100,100,100,100\nuc56.png,ucb56.png\n----\n----\n0,0,0,0\n----\n-1,-1,-1,-1,-1,-1\n\n\n----\n";
+        
+        for (int i=1; i<=chipNumb; i++) {
+            NSString *fdata = @"data/UnitChip/UCdata";
+            
+            fdata = [fdata stringByAppendingFormat:@"%d.txt", i];
+            
+            switch (i) {
+                case 1:
+                    [data1 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 2:
+                    [data2 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 3:
+                    [data3 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 4:
+                    [data4 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 5:
+                    [data5 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 6:
+                    [data6 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 7:
+                    [data7 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 8:
+                    [data8 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 9:
+                    [data9 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 10:
+                    [data10 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 11:
+                    [data11 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 12:
+                    [data12 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 13:
+                    [data13 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 14:
+                    [data14 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 15:
+                    [data15 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 16:
+                    [data16 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 17:
+                    [data17 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 18:
+                    [data18 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 19:
+                    [data19 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 20:
+                    [data20 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 21:
+                    [data21 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 22:
+                    [data22 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 23:
+                    [data23 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 24:
+                    [data24 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 25:
+                    [data25 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 26:
+                    [data26 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 27:
+                    [data27 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 28:
+                    [data28 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 29:
+                    [data29 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 30:
+                    [data30 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 31:
+                    [data31 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 32:
+                    [data32 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 33:
+                    [data33 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 34:
+                    [data34 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 35:
+                    [data35 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 36:
+                    [data36 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 37:
+                    [data37 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 38:
+                    [data38 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 39:
+                    [data39 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 40:
+                    [data40 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 41:
+                    [data41 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 42:
+                    [data42 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 43:
+                    [data43 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 44:
+                    [data44 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 45:
+                    [data45 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 46:
+                    [data46 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 47:
+                    [data47 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 48:
+                    [data48 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 49:
+                    [data49 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 50:
+                    [data50 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 51:
+                    [data51 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 52:
+                    [data52 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 53:
+                    [data53 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 54:
+                    [data54 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 55:
+                    [data55 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 56:
+                    [data56 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                
+                
+                default:
+                    
+                    break;
+            }
+            
+        }
+        
+    }
+    
+    
+    
+    fileData = [NSString stringWithContentsOfFile:pathUCP encoding:NSUTF8StringEncoding error:nil];
+    fileDataArray = [fileData componentsSeparatedByString:@"\n"];
+    int instantNum = [[fileDataArray objectAtIndex:0] intValue];
+    
+    chipNumb = instantNum;
+    UCN = (int)chipNumb;
+    
+    for (int i=0; i<chipNumb; i++) {
+        NSString *fdata = @"data/UnitChip/UCdata";
+        
+        fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
+        
+        fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil];
+        fileDataArray = [fileData componentsSeparatedByString:@"\n"];
+        
+        UC[i].name = [[fileDataArray objectAtIndex:0] retain];
+        UC[i].nameNick = [[fileDataArray objectAtIndex:1] retain];
+        UC[i].nameClass = [[fileDataArray objectAtIndex:2] retain];
+        
+        NSArray *items = [[fileDataArray objectAtIndex:3] componentsSeparatedByString:@","];
+        
+        UC[i].nameRecognition = [[items objectAtIndex:0] retain];
+        UC[i].nameID = [[items objectAtIndex:1] retain];
+        UC[i].aura = [[items objectAtIndex:2] intValue];
+        
+        items = [[fileDataArray objectAtIndex:4] componentsSeparatedByString:@","];
+        
+        UC[i].S_M.HP = [[items objectAtIndex:0] intValue];
+        UC[i].S_M.MP = [[items objectAtIndex:1] intValue];
+        UC[i].S_M.AP = [[items objectAtIndex:2] intValue];
+        UC[i].S_M.WT = [[items objectAtIndex:3] intValue];
+        UC[i].S_M.BP = [[items objectAtIndex:4] intValue];
+        
+        items = [[fileDataArray objectAtIndex:5] componentsSeparatedByString:@","];
+        
+        UC[i].S_M.STR = [[items objectAtIndex:0] intValue];
+        UC[i].S_M.VIT = [[items objectAtIndex:1] intValue];
+        UC[i].S_M.AGI = [[items objectAtIndex:2] intValue];
+        UC[i].S_M.DEX = [[items objectAtIndex:3] intValue];
+        UC[i].S_M.MEN = [[items objectAtIndex:4] intValue];
+        UC[i].S_M.INT = [[items objectAtIndex:5] intValue];
+        UC[i].S_M.LUK = [[items objectAtIndex:6] intValue];
+        UC[i].S_M.MOV = [[items objectAtIndex:7] intValue];
+
+        items = [[fileDataArray objectAtIndex:6] componentsSeparatedByString:@","];
+        
+        UC[i].S_M.MEL = [[items objectAtIndex:0] intValue];
+        UC[i].S_M.MIS = [[items objectAtIndex:1] intValue];
+        UC[i].S_M.HIT = [[items objectAtIndex:2] intValue];
+        UC[i].S_M.DOD = [[items objectAtIndex:3] intValue];
+        UC[i].S_M.REA = [[items objectAtIndex:4] intValue];
+        UC[i].S_M.SKI = [[items objectAtIndex:5] intValue];
+        
+        items = [[fileDataArray objectAtIndex:7] componentsSeparatedByString:@","];
+        
+        UC[i].S_M.ATK = [[items objectAtIndex:0] intValue];
+        UC[i].S_M.DEF = [[items objectAtIndex:1] intValue];
+        UC[i].S_M.CAP = [[items objectAtIndex:2] intValue];
+        UC[i].S_M.ACU = [[items objectAtIndex:3] intValue];
+        UC[i].S_M.EVA = [[items objectAtIndex:4] intValue];
+        
+        items = [[fileDataArray objectAtIndex:8] componentsSeparatedByString:@","];
+        
+        UC[i].S_M.typeMONS = [[items objectAtIndex:0] intValue];
+        UC[i].S_M.typeMOVE = [[items objectAtIndex:1] intValue];
+        UC[i].S_M.cSupply = [[items objectAtIndex:2] intValue];
+        UC[i].S_M.cFood = [[items objectAtIndex:3] intValue];
+        UC[i].S_M.cMoney = [[items objectAtIndex:4] intValue];
+        UC[i].S_M.cWT = [[items objectAtIndex:5] intValue];
+        
+        items = [[fileDataArray objectAtIndex:9] componentsSeparatedByString:@","];
+        
+        UC[i].R_M.blow = [[items objectAtIndex:0] intValue];
+        UC[i].R_M.slash = [[items objectAtIndex:1] intValue];
+        UC[i].R_M.stub = [[items objectAtIndex:2] intValue];
+        UC[i].R_M.arrow = [[items objectAtIndex:3] intValue];
+        UC[i].R_M.gun = [[items objectAtIndex:4] intValue];
+        UC[i].R_M.shell = [[items objectAtIndex:5] intValue];
+        
+        UC[i].R_M.flame = [[items objectAtIndex:6] intValue];
+        UC[i].R_M.cold = [[items objectAtIndex:7] intValue];
+        UC[i].R_M.electoric = [[items objectAtIndex:8] intValue];
+        UC[i].R_M.air = [[items objectAtIndex:9] intValue];
+        UC[i].R_M.water = [[items objectAtIndex:10] intValue];
+        UC[i].R_M.gas = [[items objectAtIndex:11] intValue];
+        UC[i].R_M.holy = [[items objectAtIndex:12] intValue];
+        UC[i].R_M.dark = [[items objectAtIndex:13] intValue];
+        UC[i].R_M.explosion = [[items objectAtIndex:14] intValue];
+        UC[i].R_M.blood = [[items objectAtIndex:15] intValue];
+        
+        UC[i].R_M.paralysis = [[items objectAtIndex:16] intValue];
+        UC[i].R_M.confusion = [[items objectAtIndex:17] intValue];
+        UC[i].R_M.poison = [[items objectAtIndex:18] intValue];
+        UC[i].R_M.sleep = [[items objectAtIndex:19] intValue];
+        UC[i].R_M.charm = [[items objectAtIndex:20] intValue];
+        UC[i].R_M.silent = [[items objectAtIndex:21] intValue];
+        
+        items = [[fileDataArray objectAtIndex:10] componentsSeparatedByString:@","];
+        
+        UC[i].iName = [[items objectAtIndex:0] retain];
+        //NSLog(@"%@", UC[i].iName);
+        UC[i].iNameb = [[items objectAtIndex:1] retain];
+        
+        NSString *imgName = @"uc";
+        imgName = [imgName stringByAppendingFormat:@"%d", i+1];
+        UC[i].img = [[NSImage imageNamed:imgName] retain];
+        
+        
+        imgName = [NSString stringWithFormat:@"ucb"];
+        imgName = [imgName stringByAppendingFormat:@"%d", i+1];
+        UC[i].imgb = [[NSImage imageNamed:imgName] retain];
+        
+        NSString *imagePath = @"data/UnitChip/img/uc";
+        imagePath = [imagePath stringByAppendingFormat:@"%d", i+1];
+        NSData *imgData = [NSData dataWithContentsOfFile:imagePath];
+        
+        if(imgData)
+            UC[i].img = [[NSImage alloc] initWithData:[[NSFileHandle fileHandleForReadingAtPath:imagePath] readDataToEndOfFile]];
+        
+        imagePath = [NSString stringWithFormat:@"data/UnitChip/img/ucb"];
+        imagePath = [imagePath stringByAppendingFormat:@"%d", i+1];
+        imgData = [NSData dataWithContentsOfFile:imagePath];
+        
+        if(imgData)
+            UC[i].imgb = [[NSImage alloc] initWithData:[[NSFileHandle fileHandleForReadingAtPath:imagePath] readDataToEndOfFile]];
+
+    
+        UC[i].S_C = UC[i].S_M;
+        UC[i].R_C = UC[i].R_M;
+        
+        SKILL *SKtop = NULL;
+        
+        for (int k = 12;![[fileDataArray objectAtIndex:k] isEqualToString:@"----"];k++) {
+            items = [[fileDataArray objectAtIndex:k] componentsSeparatedByString:@","];
+            if(k == 12) {UC[i].S = calloc(1, sizeof(SKILL));
+                SKtop = UC[i].S;
+            }
+            
+            UC[i].S->type = [[items objectAtIndex:0] intValue];
+            
+            int ins1 = 0;
+            int ins2 = 0;
+            int ins3 = 0;
+            for(int l= 0;[items count] > 1+l;l++){
+                if(l%3 == 0) {
+                    UC[i].S->list[ins1] = [[items objectAtIndex:1+l] intValue];
+                    ins1++;
+                }
+                if(l%3 == 1) {
+                    UC[i].S->cost[ins2] = [[items objectAtIndex:1+l] intValue];
+                    ins2++;
+                }
+                if(l%3 == 2) {
+                    UC[i].S->Lv[ins3] = [[items objectAtIndex:1+l] intValue];
+                    ins3++;
+                }
+            }
+            
+            UC[i].S->next = calloc(1, sizeof(SKILL));
+            if(![[fileDataArray objectAtIndex:k+1] isEqualToString:@"----"]) UC[i].S = UC[i].S->next;
+        }
+        if(UC[i].S) UC[i].S->next = NULL;
+        UC[i].S = SKtop;
+        
+        int oopStart = 12;
+        for (int k = 12;![[fileDataArray objectAtIndex:k] isEqualToString:@"----"];k++) {
+            oopStart++;
+        }
+        
+        items = [[fileDataArray objectAtIndex:oopStart+1] componentsSeparatedByString:@","];
+        
+        UC[i].CM.A = [[items objectAtIndex:0] intValue];
+        UC[i].CM.B = [[items objectAtIndex:1] intValue];
+        UC[i].CM.C = [[items objectAtIndex:2] intValue];
+        UC[i].CM.D = [[items objectAtIndex:3] intValue];
+        
+        items = [[fileDataArray objectAtIndex:oopStart+3] componentsSeparatedByString:@","];
+        
+        if([[items objectAtIndex:0] intValue] >= 0){
+            UC[i].eHandL = EQ[[[items objectAtIndex:0] intValue]];
+            UC[i].eHandL.A = EQ[[[items objectAtIndex:0] intValue]].A;
+            UC[i].eHandLflag = true;
+            if(UC[i].eHandL.type == 7)
+                UC[i].eHandRflag = true;
+        }
+        if([[items objectAtIndex:1] intValue] >= 0){
+            UC[i].eHandR = EQ[[[items objectAtIndex:1] intValue]];
+            UC[i].eHandR.A = EQ[[[items objectAtIndex:1] intValue]].A;
+            UC[i].eHandRflag = true;
+            if(UC[i].eHandR.type == 7)
+                UC[i].eHandLflag = true;
+        }
+        if([[items objectAtIndex:2] intValue] >= 0){
+            UC[i].eHead = EQ[[[items objectAtIndex:2] intValue]];
+            UC[i].eHeadflag = true;
+        }
+        if([[items objectAtIndex:3] intValue] >= 0){
+            UC[i].eBody = EQ[[[items objectAtIndex:3] intValue]];
+            UC[i].eBodyflag = true;
+        }
+        if([[items objectAtIndex:4] intValue] >= 0){
+            UC[i].eFoot = EQ[[[items objectAtIndex:4] intValue]];
+            UC[i].eFootflag = true;
+        }
+        if([[items objectAtIndex:5] intValue] >= 0){
+            UC[i].eArm = EQ[[[items objectAtIndex:5] intValue]];
+            UC[i].eArmflag = true;
+        }
+        
+        items = [[fileDataArray objectAtIndex:oopStart+4] componentsSeparatedByString:@","];
+        
+        
+        items = [[fileDataArray objectAtIndex:oopStart+5] componentsSeparatedByString:@","];
+        
+        UC[i].chipNumb = i;
+    }
+    
+    
+    InitialFlag = true;
+}
+
+-(void)saveData{
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    char *cwd;
+    cwd = getcwd(NULL, 0);
+    
+    
+    
+    for (int i=0; i<chipNumb; i++) {
+        NSString *fdata = @"data/UnitChip/UCdata";
+        fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
+        
+        NSString *fileData = @"";
+        
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].name]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].nameNick]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].nameClass]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].nameRecognition]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].nameID]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].aura]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.HP]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.MP]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.AP]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.WT]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.BP]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.STR]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.VIT]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.AGI]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.DEX]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.MEN]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.INT]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.LUK]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].S_M.MOV]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.MEL]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.MIS]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.HIT]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.DOD]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.REA]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.SKI]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.ATK]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.DEF]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.CAP]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.ACU]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].S_M.EVA]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].S_M.typeMONS]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].S_M.typeMOVE]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].S_M.cSupply]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].S_M.cFood]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].S_M.cMoney]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].S_M.cWT]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.blow]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.slash]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.stub]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.arrow]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.gun]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.shell]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.flame]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.cold]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.electoric]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.air]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.water]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.gas]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.holy]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.dark]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.explosion]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.blood]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.paralysis]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.confusion]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.poison]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.sleep]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.charm]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].R_M.silent]] stringByAppendingString:@"\n"];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].iName]] stringByAppendingString:@","];
+        fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].iNameb]] stringByAppendingString:@"\n"];
+        
+        fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"----\n"]];
+        
+        SKILL *SKtop;
+        
+        SKtop = UC[i].S;
+        while(UC[i].S){
+            fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].S->type]];
+            for (int j = 0;UC[i].S->list[j] > 0;j++) {
+                fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d", UC[i].S->list[j]]];
+                fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%g", UC[i].S->cost[j]]];
+                fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d", UC[i].S->Lv[j]]];
+            }
+            fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"\n"]];
+            UC[i].S = UC[i].S->next;
+        }UC[i].S = SKtop;
+        
+        
+        
+        fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"----\n"]];
+        
+        fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].CM.A]];
+        fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d", UC[i].CM.B]];
+        fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d", UC[i].CM.C]];
+        fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d", UC[i].CM.D]];
+        fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"\n"]];
+        
+        fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"----\n"]];
+        
+        
+        if(UC[i].eHandL.nameID){
+            for(int j = 0;j < eItemNum;j++){
+                if([UC[i].eHandL.nameID isEqualToString:EQ[j].nameID]){
+                    fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"%d",j]];
+                }
+            }
+        }else{
+            fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"-1"]];
+        }
+        
+        if(UC[i].eHandR.nameID){
+            for(int j = 0;j < eItemNum;j++){
+                if([UC[i].eHandR.nameID isEqualToString:EQ[j].nameID]){
+                    fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d",j]];
+                }
+            }
+        }else{
+            fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",-1"]];
+        }
+        
+        if(UC[i].eHead.nameID){
+            for(int j = 0;j < eItemNum;j++){
+                if([UC[i].eHead.nameID isEqualToString:EQ[j].nameID]){
+                    fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d",j]];
+                }
+            }
+        }else{
+            fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",-1"]];
+        }
+        
+        if(UC[i].eBody.nameID){
+            for(int j = 0;j < eItemNum;j++){
+                if([UC[i].eBody.nameID isEqualToString:EQ[j].nameID]){
+                    fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d",j]];
+                }
+            }
+        }else{
+            fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",-1"]];
+        }
+        
+        if(UC[i].eFoot.nameID){
+            for(int j = 0;j < eItemNum;j++){
+                if([UC[i].eFoot.nameID isEqualToString:EQ[j].nameID]){
+                    fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d",j]];
+                }
+            }
+        }else{
+            fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",-1"]];
+        }
+        
+        if(UC[i].eArm.nameID){
+            for(int j = 0;j < eItemNum;j++){
+                if([UC[i].eArm.nameID isEqualToString:EQ[j].nameID]){
+                    fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",%d",j]];
+                }
+            }
+        }else{
+            fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@",-1"]];
+        }
+        
+        fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"\n"]];
+        
+        //装飾品は改行して入る予定
+        fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"装飾品\n"]];
+        //消耗品は改行して入る予定
+        fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"消耗品\n"]];
+        
+        fileData = [fileData stringByAppendingString:[NSString stringWithFormat:@"----\n"]];
+        
+        [fileData writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+        
+        if(1){
+        NSData *f2Data = [UC[i].img TIFFRepresentation];
+        NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:f2Data];
+        f2Data = [brep representationUsingType:NSPNGFileType properties:nil];
+        
+        NSString *bcPath = @"data/UnitChip/img/uc";
+        bcPath = [bcPath stringByAppendingFormat:@"%d", i + 1];
+        
+        [f2Data writeToFile:bcPath atomically:YES];
+        }
+        
+        if(1){
+        NSData *f2Data = [UC[i].imgb TIFFRepresentation];
+        NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:f2Data];
+        f2Data = [brep representationUsingType:NSPNGFileType properties:nil];
+        
+        NSString *bcPath = @"data/UnitChip/img/ucb";
+        bcPath = [bcPath stringByAppendingFormat:@"%d", i + 1];
+        
+        [f2Data writeToFile:bcPath atomically:YES];
+        }
+    }
+    
+    
+}
+
+
+-(void)saveDataAL{
+
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+
+
+    for (int i=0; i<chipNumb; i++) {
+        NSString *fdata = @"data/AttackList/ALdata";
+        fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
+        
+        NSString *fileData = @"";
+    
+        ATTACK *aTop = UC[i].A;
+        int Acnt = 0;
+        while (UC[i].A) {
+            if(Acnt > 0) fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"--------"]] stringByAppendingString:@"\n"];
+            
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].A->name]] stringByAppendingString:@"\n"];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->trig]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->type]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->melee]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->P]] stringByAppendingString:@"\n"];
+        
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->rangeA]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->rangeB]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->extent]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->bullet]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->hitCount]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->successRate]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->vigor]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->hitPercent]] stringByAppendingString:@"\n"];
+    
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->costType]] stringByAppendingString:@","];
+            if(UC[i].A->costType == 0){
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].A->MP]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->pMP]] stringByAppendingString:@","];
+            }else if(UC[i].A->costType == 1){
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].A->AP]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->pAP]] stringByAppendingString:@","];
+            }else if(UC[i].A->costType == 2){
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].A->HP]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->pHP]] stringByAppendingString:@","];
+            }
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->cSupply]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->cFood]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->cMoney]] stringByAppendingString:@"\n"];
+        
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->riku]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->chu]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->umi]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->sora]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->dmgExtend]] stringByAppendingString:@"\n"];
+        
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].A->cmd]] stringByAppendingString:@"\n"];
+    
+            if(UC[i].A->msg){
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", UC[i].A->msg]] stringByAppendingString:@"\n"];
+            }
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"];
+        
+            DAMAGE *dTop = UC[i].A->D;
+            while (UC[i].A->D) {
+                if(UC[i].A->D->count <= 0 && UC[i].A->D->sort == 0){
+                    UC[i].A->D = NULL;
+                    break;
+                }
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->type]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].A->D->count]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", UC[i].A->D->pCount]] stringByAppendingString:@"\n"];
+            
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->seed]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->sort]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->continium]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->absolute]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->beam]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->D->noSizeFix]] stringByAppendingString:@"\n"];
+        
+                UC[i].A->D = UC[i].A->D->next;
+            }UC[i].A->D = dTop;
+        
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"];
+        
+            DMGEXTEND *eTop = UC[i].A->E;
+            while (UC[i].A->E) {
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->E->rate]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->E->hit]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", UC[i].A->E->atkHit]] stringByAppendingString:@"\n"];
+                
+                UC[i].A->E = UC[i].A->E->next;
+            }UC[i].A->E = eTop;
+        
+        
+            UC[i].A = UC[i].A->next;
+            Acnt++;
+        }UC[i].A = aTop;
+        
+        
+        
+        
+        [fileData writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+    }
+    
+}
+
+-(void)saveDataAL2{
+    
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    
+    for (int i=0; i<LCN; i++) {
+        NSString *fdata = @"data/AttackList2/LALdata";
+        fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
+        
+        NSString *fileData = @"";
+        
+        ATTACK *aTop = LC[i].A;
+        int Acnt = 0;
+        while (LC[i].A) {
+            
+            if(Acnt > 0) fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"--------"]] stringByAppendingString:@"\n"];
+            
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", LC[i].A->name]] stringByAppendingString:@"\n"];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->trig]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->type]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->melee]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->P]] stringByAppendingString:@"\n"];
+            
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->rangeA]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->rangeB]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->extent]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->bullet]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->hitCount]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->successRate]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->vigor]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->hitPercent]] stringByAppendingString:@"\n"];
+            
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->costType]] stringByAppendingString:@","];
+            if(LC[i].A->costType == 0){
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", LC[i].A->EN]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->pEN]] stringByAppendingString:@","];
+            }else if(LC[i].A->costType == 1){
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", LC[i].A->HP]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->pHP]] stringByAppendingString:@","];
+            }
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->cSupply]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->cFood]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->cMoney]] stringByAppendingString:@"\n"];
+            
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->riku]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->chu]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->umi]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->sora]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->dmgExtend]] stringByAppendingString:@"\n"];
+            
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", LC[i].A->cmd]] stringByAppendingString:@"\n"];
+            
+            if(LC[i].A->msg){
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", LC[i].A->msg]] stringByAppendingString:@"\n"];
+            }
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"];
+            
+            DAMAGE *dTop = LC[i].A->D;
+            while (LC[i].A->D) {
+                if(LC[i].A->D->count <= 0 && LC[i].A->D->sort == 0){
+                    LC[i].A->D = NULL;
+                    break;
+                }
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->type]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", LC[i].A->D->count]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", LC[i].A->D->pCount]] stringByAppendingString:@"\n"];
+                
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->seed]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->sort]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->continium]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->absolute]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->beam]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->D->noSizeFix]] stringByAppendingString:@"\n"];
+                
+                LC[i].A->D = LC[i].A->D->next;
+            }LC[i].A->D = dTop;
+            
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"];
+            
+            DMGEXTEND *eTop = LC[i].A->E;
+            while (LC[i].A->E) {
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->E->rate]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->E->hit]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", LC[i].A->E->atkHit]] stringByAppendingString:@"\n"];
+                
+                LC[i].A->E = LC[i].A->E->next;
+            }LC[i].A->E = eTop;
+            
+            
+            LC[i].A = LC[i].A->next;
+            Acnt++;
+        }LC[i].A = aTop;
+        
+        
+        
+        
+        [fileData writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+    }
+    
+}
+
+-(void)saveDataALEQ{
+    
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    
+    for (int i=0; i<itemNumb; i++) {
+        NSString *fdata = @"data/AttackList3/IALdata";
+        fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
+        
+        NSString *fileData = @"";
+        
+        ATTACK *aeTop = EQ[i].A;
+        int Acnt = 0;
+        while (EQ[i].A) {
+            if(Acnt > 0) fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"--------"]] stringByAppendingString:@"\n"];
+            
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", EQ[i].A->name]] stringByAppendingString:@"\n"];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->trig]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->type]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->melee]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->P]] stringByAppendingString:@"\n"];
+            
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->rangeA]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->rangeB]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->extent]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->bullet]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->hitCount]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->successRate]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->vigor]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->hitPercent]] stringByAppendingString:@"\n"];
+            
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->costType]] stringByAppendingString:@","];
+            if(EQ[i].A->costType == 0){
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].A->MP]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->pMP]] stringByAppendingString:@","];
+            }else if(EQ[i].A->costType == 1){
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].A->AP]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->pAP]] stringByAppendingString:@","];
+            }else if(EQ[i].A->costType == 2){
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].A->HP]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->pHP]] stringByAppendingString:@","];
+            }
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->cSupply]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->cFood]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->cMoney]] stringByAppendingString:@"\n"];
+            
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->riku]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->chu]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->umi]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->sora]] stringByAppendingString:@","];
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->dmgExtend]] stringByAppendingString:@"\n"];
+            
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", EQ[i].A->cmd]] stringByAppendingString:@"\n"];
+            
+            if(EQ[i].A->msg){
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%@", EQ[i].A->msg]] stringByAppendingString:@"\n"];
+            }
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"];
+            
+            DAMAGE *dTop = EQ[i].A->D;
+            while (EQ[i].A->D) {
+                if(EQ[i].A->D->count <= 0 && EQ[i].A->D->sort == 0){
+                    EQ[i].A->D = NULL;
+                    break;
+                }
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->type]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].A->D->count]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%g", EQ[i].A->D->pCount]] stringByAppendingString:@"\n"];
+                
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->seed]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->sort]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->continium]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->absolute]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->beam]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->D->noSizeFix]] stringByAppendingString:@"\n"];
+                
+                EQ[i].A->D = EQ[i].A->D->next;
+            }EQ[i].A->D = dTop;
+            
+            fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"----"]] stringByAppendingString:@"\n"];
+            
+            DMGEXTEND *eTop = EQ[i].A->E;
+            while (EQ[i].A->E) {
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"####"]] stringByAppendingString:@"\n"];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->E->rate]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->E->hit]] stringByAppendingString:@","];
+                fileData = [[fileData stringByAppendingString:[NSString stringWithFormat:@"%d", EQ[i].A->E->atkHit]] stringByAppendingString:@"\n"];
+                
+                EQ[i].A->E = EQ[i].A->E->next;
+            }EQ[i].A->E = eTop;
+            
+            
+            EQ[i].A = EQ[i].A->next;
+            Acnt++;
+        }EQ[i].A = aeTop;
+        
+        
+        
+        
+        [fileData writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+    }
+    
+}
+
+
+-(void)initFileDirectoryItem{
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    char *cwd;
+    cwd = getcwd(NULL, 0);
+    
+    
+    NSData *InitialData = [NSData dataWithContentsOfFile:@"data/ItemList/preset.txt"];
+    NSString *pathILI = @"data/ItemList/img";
+    NSString *pathDATA2 = @"data/ItemList/preset.txt";
+    NSString *pathIL = @"data/ItemList/preset.txt";
+    NSString *fileData = nil;
+    
+    itemNumb = 3;
+    eItemNum = itemNumb;
+    if(!InitialData){
+        [[NSFileManager defaultManager] createDirectoryAtPath:pathILI withIntermediateDirectories:YES attributes:nil error:nil];
+        [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil];
+        
+        [[NSFileManager defaultManager] createFileAtPath:pathIL contents:nil attributes:nil];
+        
+        [pathIL writeToFile:[NSString stringWithFormat:@"%ld", itemNumb] atomically:YES encoding:NSUTF8StringEncoding error:nil];
+        
+        NSString *data1 = @"鉄の剣\n鉄の剣\neq1\n1000,30,2\n0,0,0,0,0\n32,0,0,0,0,0,0\n2,0,0,0,0,0,0\n0,0,0,0\n0,0,0,0,0,0,0,0,0,0,0,0\n0,0,0,0,0,0,0,0,0,0\n鉄で出来た剣\n----\n";
+        NSString *data2 = @"鋼の剣\n鋼の剣\neq2\n1500,35,2\n0,0,0,0,0\n50,0,0,0,0,0,0\n2,0,0,0,0,0,0\n0,0,0,0\n0,0,0,0,0,0,0,0,0,0,0,0\n0,0,0,0,0,0,0,0,0,0\n鋼で出来た剣\n----\n";
+        NSString *data3 = @"銀の剣\n銀の剣\neq3\n2000,40,2\n0,0,0,0,0\n90,0,0,0,0,0,0\n2,0,0,0,0,0,0\n0,0,0,0\n0,0,0,0,0,0,0,0,0,0,0,0\n0,0,0,0,0,0,0,0,0,0\n銀で出来た剣\n----\n";
+        
+        for (int i=1; i<=itemNumb; i++) {
+            NSString *fdata = @"data/ItemList/ILdata";
+            
+            fdata = [fdata stringByAppendingFormat:@"%d.txt", i];
+            
+            switch (i) {
+                case 1:
+                    [data1 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 2:
+                    [data2 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 3:
+                    [data3 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                default:
+                    
+                    break;
+            }
+            
+        }
+        
+    }
+    
+    fileData = [NSString stringWithContentsOfFile:pathIL encoding:NSUTF8StringEncoding error:nil];
+    fileDataArray = [fileData componentsSeparatedByString:@"\n"];
+    int instantNum = [[fileDataArray objectAtIndex:0] intValue];
+    
+    itemNumb = instantNum;
+    eItemNum = (int)itemNumb;
+    
+    for (int i=0; i< itemNumb; i++) {
+        NSString *fdata = @"data/ItemList/ILdata";
+        
+        fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
+        
+        fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil];
+        fileDataArray = [fileData componentsSeparatedByString:@"\n"];
+        
+        EQ[i].name = [[fileDataArray objectAtIndex:0] retain];
+        EQ[i].nameRecognition = [[fileDataArray objectAtIndex:1] retain];
+        EQ[i].nameID = [[fileDataArray objectAtIndex:2] retain];
+        
+        NSArray *items = [[fileDataArray objectAtIndex:3] componentsSeparatedByString:@","];
+        
+        EQ[i].price = [[items objectAtIndex:0] intValue];
+        EQ[i].Weight = [[items objectAtIndex:1] intValue];
+        EQ[i].type = [[items objectAtIndex:2] intValue];
+        
+        items = [[fileDataArray objectAtIndex:4] componentsSeparatedByString:@","];
+        
+        EQ[i].HP = [[items objectAtIndex:0] intValue];
+        EQ[i].MP = [[items objectAtIndex:1] intValue];
+        EQ[i].AP = [[items objectAtIndex:2] intValue];
+        EQ[i].WT = [[items objectAtIndex:3] intValue];
+        EQ[i].MOV = [[items objectAtIndex:4] intValue];
+        
+        items = [[fileDataArray objectAtIndex:5] componentsSeparatedByString:@","];
+        
+        EQ[i].STR = [[items objectAtIndex:0] intValue];
+        EQ[i].VIT = [[items objectAtIndex:1] intValue];
+        EQ[i].AGI = [[items objectAtIndex:2] intValue];
+        EQ[i].DEX = [[items objectAtIndex:3] intValue];
+        EQ[i].MEN = [[items objectAtIndex:4] intValue];
+        EQ[i].INT = [[items objectAtIndex:5] intValue];
+        EQ[i].LUK = [[items objectAtIndex:6] intValue];
+        
+        items = [[fileDataArray objectAtIndex:6] componentsSeparatedByString:@","];
+        
+        EQ[i].pSTR = [[items objectAtIndex:0] intValue];
+        EQ[i].pVIT = [[items objectAtIndex:1] intValue];
+        EQ[i].pAGI = [[items objectAtIndex:2] intValue];
+        EQ[i].pDEX = [[items objectAtIndex:3] intValue];
+        EQ[i].pMEN = [[items objectAtIndex:4] intValue];
+        EQ[i].pINT = [[items objectAtIndex:5] intValue];
+        EQ[i].pLUK = [[items objectAtIndex:6] intValue];
+        
+        items = [[fileDataArray objectAtIndex:7] componentsSeparatedByString:@","];
+        
+        EQ[i].recHP = [[items objectAtIndex:0] intValue];
+        EQ[i].recpHP = [[items objectAtIndex:1] intValue];
+        EQ[i].recMP = [[items objectAtIndex:2] intValue];
+        EQ[i].recpMP = [[items objectAtIndex:3] intValue];
+        
+        items = [[fileDataArray objectAtIndex:8] componentsSeparatedByString:@","];
+        
+        EQ[i].R.blow = [[items objectAtIndex:0] intValue];
+        EQ[i].R.slash = [[items objectAtIndex:1] intValue];
+        EQ[i].R.stub = [[items objectAtIndex:2] intValue];
+        EQ[i].R.arrow = [[items objectAtIndex:3] intValue];
+        EQ[i].R.gun = [[items objectAtIndex:4] intValue];
+        EQ[i].R.shell = [[items objectAtIndex:5] intValue];
+        EQ[i].R.paralysis = [[items objectAtIndex:6] intValue];
+        EQ[i].R.poison = [[items objectAtIndex:7] intValue];
+        EQ[i].R.charm = [[items objectAtIndex:8] intValue];
+        EQ[i].R.confusion = [[items objectAtIndex:9] intValue];
+        EQ[i].R.sleep = [[items objectAtIndex:10] intValue];
+        EQ[i].R.silent = [[items objectAtIndex:11] intValue];
+        
+        items = [[fileDataArray objectAtIndex:9] componentsSeparatedByString:@","];
+        
+        EQ[i].R.flame = [[items objectAtIndex:0] intValue];
+        EQ[i].R.cold = [[items objectAtIndex:1] intValue];
+        EQ[i].R.electoric = [[items objectAtIndex:2] intValue];
+        EQ[i].R.air = [[items objectAtIndex:3] intValue];
+        EQ[i].R.water = [[items objectAtIndex:4] intValue];
+        EQ[i].R.gas = [[items objectAtIndex:5] intValue];
+        EQ[i].R.holy = [[items objectAtIndex:6] intValue];
+        EQ[i].R.dark = [[items objectAtIndex:7] intValue];
+        EQ[i].R.explosion = [[items objectAtIndex:8] intValue];
+        EQ[i].R.blood = [[items objectAtIndex:9] intValue];
+        
+        EQ[i].comment = [[fileDataArray objectAtIndex:10] retain];
+    }
+    
+    
+    
+}
+
+-(void)initFileDirectoryCombo{
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    NSData *InitialData = [NSData dataWithContentsOfFile:@"data/ComboList/preset.txt"];
+    NSString *pathCL = @"data/ComboList/preset.txt";
+    NSString *path = @"data/ComboList";
+    NSString *fileData = nil;
+    
+    
+    comboItemNumb = 2;
+    if(!InitialData){
+        [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
+        [[NSFileManager defaultManager] createFileAtPath:pathCL contents:nil attributes:nil];
+        
+        NSString *data1 = @"0,1,2,3\n####\n236A,0,0\n####\nA>A>A\nA>A>B";
+        
+        NSString *data2 = @"0,1,2,3\n####\n236A,0,0\n####\nA>A>A\nA>A>B";
+        
+        for (int i=1; i<=comboItemNumb; i++) {
+            NSString *fdata = @"data/ComboList/CLdata";
+            
+            fdata = [fdata stringByAppendingFormat:@"%d.txt", i];
+            
+            switch (i) {
+                case 1:
+                    [data1 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 2:
+                    [data2 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                default:
+                    
+                    break;
+            }
+            
+        }
+        
+    }
+    
+    NSArray *fileDataArray2;
+    for (int i = 0; i< itemNumb; i++){
+        COMMANDS *CStop = UC[i].CM.cs;
+        COMBO *COtop = UC[i].CM.co;
+        
+        NSString *fdata = @"data/ComboList/CLdata";
+        
+        fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
+        
+        fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil];
+        fileDataArray2 = [fileData componentsSeparatedByString:@"\n####\n"];
+        
+        NSArray *items = [[fileDataArray2 objectAtIndex:0] componentsSeparatedByString:@","];
+        
+        /*
+        UC[i].CM.A = [[items objectAtIndex:0] intValue];
+        UC[i].CM.B = [[items objectAtIndex:1] intValue];
+        UC[i].CM.C = [[items objectAtIndex:2] intValue];
+        UC[i].CM.D = [[items objectAtIndex:3] intValue];
+        */
+        fileDataArray = [[fileDataArray2 objectAtIndex:1] componentsSeparatedByString:@"\n"];
+        
+        for(int k = 0;k < [fileDataArray count];k++){
+            if (k == 0) {
+                UC[i].CM.cs = calloc(1, sizeof(COMMANDS));
+                CStop = UC[i].CM.cs;
+            }
+            items = [[fileDataArray objectAtIndex:k] componentsSeparatedByString:@","];
+            
+            NSLog(@"%@", UC[i].CM.cs->cmd);
+            
+            UC[i].CM.cs->cmd = [[items objectAtIndex:0] retain];
+            UC[i].CM.cs->waza = [[items objectAtIndex:1] intValue];
+            UC[i].CM.cs->hasei = [[items objectAtIndex:2] retain];
+            
+            UC[i].CM.cs->next = calloc(1, sizeof(COMMANDS));
+            UC[i].CM.cs = UC[i].CM.cs->next;
+        }
+        UC[i].CM.cs = NULL;
+        
+        fileDataArray = [[fileDataArray2 objectAtIndex:2] componentsSeparatedByString:@"\n"];
+        
+        
+        for(int k = 0;k < [fileDataArray count];k++){
+            if (k == 0) {
+                UC[i].CM.co = calloc(1, sizeof(COMBO));
+                COtop = UC[i].CM.co;
+            }
+            items = [[fileDataArray objectAtIndex:k] componentsSeparatedByString:@","];
+            
+            UC[i].CM.co->mbo = [[items objectAtIndex:0] retain];
+            
+            UC[i].CM.co->next = calloc(1, sizeof(COMBO));
+            UC[i].CM.co = UC[i].CM.co->next;
+        }
+        UC[i].CM.co = NULL;
+        
+        
+        UC[i].CM.co = COtop;
+        UC[i].CM.cs = CStop;
+    }
+
+
+}
+
+-(void)initFileDirectoryAttack{
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    char *cwd;
+    cwd = getcwd(NULL, 0);
+    
+    
+    NSData *InitialData = [NSData dataWithContentsOfFile:@"data/AttackList/preset.txt"];
+    NSString *pathALI = @"data/AttackList/img";
+    NSString *pathDATA2 = @"data/AttackList/preset.txt";
+    NSString *pathAL = @"data/AttackList/preset.txt";
+    NSString *fileData = nil;
+    
+    itemNumb = [unitChipListMA count];
+    if(!InitialData){
+        [[NSFileManager defaultManager] createDirectoryAtPath:pathALI withIntermediateDirectories:YES attributes:nil error:nil];
+        [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil];
+        
+        [[NSFileManager defaultManager] createFileAtPath:pathAL contents:nil attributes:nil];
+    
+        
+        
+        for (int i=1; i<=itemNumb; i++) {
+            NSString *fdata = @"data/AttackList/ALdata";
+            
+            fdata = [fdata stringByAppendingFormat:@"%d.txt", i];
+            
+            switch (i) {
+                default:
+                    
+                    break;
+            }
+            
+        }
+        
+    }
+    
+    NSArray *fileDataArray2;
+    ATTACK *Atop;
+    for (int i=0; i< itemNumb; i++) {
+        NSString *fdata = @"data/AttackList/ALdata";
+        
+        fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
+        
+        fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil];
+        fileDataArray2 = [fileData componentsSeparatedByString:@"--------\n"];
+        
+        bool initAttackAdd = false;
+        
+        if(fileData == 0x00007fff7e19dfa0) continue;
+        
+        if([fileDataArray2 count] <= 0) continue;
+        
+        for(int j=0;j < [fileDataArray2 count];j++){
+            if(![[fileDataArray2 objectAtIndex:0] isEqualToString:@""]) UC[i].attackListNum++;
+        fileDataArray = [[fileDataArray2 objectAtIndex:j] componentsSeparatedByString:@"\n"];
+            
+            if(!initAttackAdd)
+                [self AddATTACK:&UC[i].A :0];
+      
+            [self AddATTACK:&UC[i].A :j];
+            
+            if(!initAttackAdd) {
+                Atop = UC[i].A;
+            }
+            initAttackAdd = true;
+            
+        UC[i].A->name = [[fileDataArray objectAtIndex:0] retain];
+        
+            if([fileDataArray count] <= 1) continue;
+        NSArray *items = [[fileDataArray objectAtIndex:1] componentsSeparatedByString:@","];
+        
+        UC[i].A->trig = [[items objectAtIndex:0] intValue];
+        UC[i].A->type = [[items objectAtIndex:1] intValue];
+        UC[i].A->melee = [[items objectAtIndex:2] intValue];
+        UC[i].A->P = [[items objectAtIndex:3] intValue];
+        
+        items = [[fileDataArray objectAtIndex:2] componentsSeparatedByString:@","];
+        
+        UC[i].A->rangeA = [[items objectAtIndex:0] intValue];
+        UC[i].A->rangeB = [[items objectAtIndex:1] intValue];
+        UC[i].A->extent = [[items objectAtIndex:2] intValue];
+        UC[i].A->bullet = [[items objectAtIndex:3] intValue];
+        UC[i].A->hitCount = [[items objectAtIndex:4] intValue];
+        UC[i].A->successRate = [[items objectAtIndex:5] intValue];
+        UC[i].A->vigor = [[items objectAtIndex:6] intValue];
+        UC[i].A->hitPercent = [[items objectAtIndex:7] intValue];
+        
+        items = [[fileDataArray objectAtIndex:3] componentsSeparatedByString:@","];
+        
+        UC[i].A->costType = [[items objectAtIndex:0] intValue];
+        
+        if(UC[i].A->costType == 0) {
+            UC[i].A->MP = [[items objectAtIndex:1] intValue];
+            UC[i].A->pMP = [[items objectAtIndex:2] intValue];
+        }
+        else if(UC[i].A->costType == 1) {
+            UC[i].A->AP = [[items objectAtIndex:1] intValue];
+            UC[i].A->pAP = [[items objectAtIndex:2] intValue];
+        }
+        else if(UC[i].A->costType == 2) {
+            UC[i].A->HP = [[items objectAtIndex:1] intValue];
+            UC[i].A->pHP = [[items objectAtIndex:2] intValue];
+        }
+        
+        UC[i].A->cSupply = [[items objectAtIndex:3] intValue];
+        UC[i].A->cFood = [[items objectAtIndex:4] intValue];
+        UC[i].A->cMoney = [[items objectAtIndex:5] intValue];
+
+        items = [[fileDataArray objectAtIndex:4] componentsSeparatedByString:@","];
+        
+        UC[i].A->riku = [[items objectAtIndex:0] intValue];
+        UC[i].A->chu = [[items objectAtIndex:1] intValue];
+        UC[i].A->umi = [[items objectAtIndex:2] intValue];
+        UC[i].A->sora = [[items objectAtIndex:3] intValue];
+        UC[i].A->dmgExtend = [[items objectAtIndex:4] intValue];
+        
+        UC[i].A->cmd = [[fileDataArray objectAtIndex:5] retain];
+        UC[i].A->msg = @"";
+            
+        //[self AddDAMAGE:&UC[i].A->D :0];
+        //[self AddDMGEXTEND:&UC[i].A->E :0];
+        
+        DAMAGE *Dtop = UC[i].A->D;
+        DMGEXTEND *Etop = UC[i].A->E;
+        static bool omfgFlag;
+            
+        int stringType = 0;
+        int stringRange = 1;
+        int stringNumber = 0;
+        for (int k = 6; k<[fileDataArray count];k++) {
+            NSString *str = [fileDataArray objectAtIndex:k];
+            NSRange rangeSearch, rangeSearch2;
+            NSArray *rangeArray;
+            rangeSearch = [str rangeOfString:@"####"];
+            rangeArray = [str componentsSeparatedByString:@","];
+            rangeSearch2 = [str rangeOfString:@"----"];
+            static int omg = 0;
+            static int omg2 = 0;
+            
+            if(k == [fileDataArray count] - 1){
+                omg2 = 0;
+            }
+            
+            if(stringType == 0)
+            if (rangeSearch.location != NSNotFound) {
+            }else if(rangeSearch2.location != NSNotFound){
+                stringType = 1;
+                omg = 0;
+            }else{
+                if(UC[i].A->msg == NULL){
+                    UC[i].A->msg = [str retain];
+                }else{
+                    if(omfgFlag) UC[i].A->msg = [[UC[i].A->msg stringByAppendingFormat:@"\n"] retain];
+                    UC[i].A->msg = [[UC[i].A->msg stringByAppendingFormat:@"%@", str] retain];
+                    omfgFlag = true;
+                }
+            }else if(stringType == 1){stringRange ++;
+                if(rangeSearch2.location != NSNotFound){
+                    stringType = 2;
+                }
+                else if(rangeSearch.location != NSNotFound){
+                    stringRange = 0;
+                }else if(stringRange == 1){
+                    if(omg == 0) {
+                        [self AddDAMAGE:&UC[i].A->D :0];
+                        Dtop = UC[i].A->D;
+                    }
+                    omg++;
+                    UC[i].A->D->type = [[rangeArray objectAtIndex:0] intValue];
+                    UC[i].A->D->count = [[rangeArray objectAtIndex:1] intValue];
+                    UC[i].A->D->pCount = [[rangeArray objectAtIndex:2] intValue];
+                }else if(stringRange == 2){
+                    
+                    UC[i].A->D->seed = [[rangeArray objectAtIndex:0] intValue];
+                    UC[i].A->D->sort = [[rangeArray objectAtIndex:1] intValue];
+                    UC[i].A->D->continium = [[rangeArray objectAtIndex:2] intValue];
+                    UC[i].A->D->absolute = [[rangeArray objectAtIndex:3] intValue];
+                    UC[i].A->D->beam = [[rangeArray objectAtIndex:4] intValue];
+                    UC[i].A->D->noSizeFix = [[rangeArray objectAtIndex:5] intValue];
+                    
+                    stringNumber++;
+                    NSString *str2 = [fileDataArray objectAtIndex:k+1];
+                    NSRange rangeSearch3 = [str2 rangeOfString:@"####"];
+                    if(stringNumber >= 1 && rangeSearch3.location != NSNotFound) [self AddDAMAGE:&UC[i].A->D :stringNumber-1];
+                    UC[i].A->D = UC[i].A->D->next;
+                }
+            }else if(stringType == 2){stringRange ++;
+                
+                if(rangeSearch2.location != NSNotFound){
+                    stringType = 3;
+                }
+                else if(rangeSearch.location != NSNotFound){
+                    stringRange = 0;
+                    stringNumber = 0;
+                }else if(stringRange == 1){stringNumber++;
+                    if(omg2 == 0) {
+                        [self AddDMGEXTEND:&UC[i].A->E :0];
+                        Etop = UC[i].A->E;
+                    }
+                    omg2++;
+                    UC[i].A->E->rate = [[rangeArray objectAtIndex:0] intValue];
+                    UC[i].A->E->hit = [[rangeArray objectAtIndex:2] intValue];
+                    UC[i].A->E->atkHit = [[rangeArray objectAtIndex:1] intValue];
+                    
+                    NSString *str2 = [fileDataArray objectAtIndex:k+1];
+                    NSRange rangeSearch3 = [str2 rangeOfString:@"####"];
+                    if(stringNumber >= 1 && rangeSearch3.location != NSNotFound) [self AddDMGEXTEND:&UC[i].A->E :stringNumber-1];
+                    
+                    UC[i].A->E = UC[i].A->E->next;
+                }
+            
+            }
+        }
+            UC[i].A->D = Dtop;
+            UC[i].A->E = Etop;
+            
+            omfgFlag = false;
+            if([fileDataArray2 count]-1 > j) UC[i].A = UC[i].A->next;
+            else UC[i].A->next = NULL;
+        }
+        
+        if(UC[i].attackListNum <= 0) Atop = NULL;
+        UC[i].A = Atop;
+    }
+    
+    /*
+    for (int i=0; i< itemNumb; i++)
+    [self setTotalDamage:i row:<#(int)#>];
+    */
+}
+
+-(void)initFileDirectoryAttack2{
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    char *cwd;
+    cwd = getcwd(NULL, 0);
+    
+    
+    NSData *InitialData = [NSData dataWithContentsOfFile:@"data/AttackList2/preset.txt"];
+    NSString *pathALI = @"data/AttackList2/img";
+    NSString *pathDATA2 = @"data/AttackList2/preset.txt";
+    NSString *pathAL = @"data/AttackList2/preset.txt";
+    NSString *fileData = nil;
+    
+    itemNumb = LCN;
+    if(!InitialData){
+        [[NSFileManager defaultManager] createDirectoryAtPath:pathALI withIntermediateDirectories:YES attributes:nil error:nil];
+        [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil];
+        
+        [[NSFileManager defaultManager] createFileAtPath:pathAL contents:nil attributes:nil];
+        
+        NSString *data1 = @"砲撃\n1,0,0,1\n1,3,0,10,1,100,0,30\n0,0,0,0,0,0\n0,0,0,0,0\nA\n####\n----\n####\n0,800,0\n5,0,0,0,0,0\n----\n####\n5,80,1\n--------\n";
+        
+        NSString *data2 = @"砲撃\n1,0,0,1\n1,3,0,0,20,100,0,30\n0,0,0,0,0,0\n0,0,0,0,0\nA\n####\n----\n####\n0,1000,0\n5,0,0,0,0,0\n----\n####\n4,100,1\n--------\n";
+        
+        
+        for (int i=1; i<=itemNumb; i++) {
+            NSString *fdata = @"data/AttackList2/LALdata";
+            
+            fdata = [fdata stringByAppendingFormat:@"%d.txt", i];
+            
+            switch (i) {
+                case 1:
+                    [data1 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                case 2:
+                    [data2 writeToFile:fdata atomically:YES encoding:NSUTF8StringEncoding error:nil];
+                    break;
+                default:
+                    
+                    break;
+            }
+            
+        }
+        
+    }
+    
+    NSArray *fileDataArray2;
+    ATTACK *Atop;
+    for (int i=0; i< itemNumb; i++) {
+        NSString *fdata = @"data/AttackList2/LALdata";
+        
+        fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
+        
+        fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil];
+        fileDataArray2 = [fileData componentsSeparatedByString:@"--------\n"];
+        
+        bool initAttackAdd = false;
+        
+        if(fileData == 0x00007fff7e19dfa0) continue;
+        
+        for(int j=0;j < [fileDataArray2 count];j++){
+            if(![[fileDataArray2 objectAtIndex:0] isEqualToString:@""]) LC[i].attackListNum++;
+            fileDataArray = [[fileDataArray2 objectAtIndex:j] componentsSeparatedByString:@"\n"];
+            
+            if(!initAttackAdd)
+                [self AddATTACK:&LC[i].A :0];
+            
+            [self AddATTACK:&LC[i].A :j];
+            
+            if(!initAttackAdd) {Atop = LC[i].A;}
+            initAttackAdd = true;
+            
+            LC[i].A->name = [[fileDataArray objectAtIndex:0] retain];
+            
+            if([fileDataArray count] <= 1) continue;
+            NSArray *items = [[fileDataArray objectAtIndex:1] componentsSeparatedByString:@","];
+            
+            LC[i].A->trig = [[items objectAtIndex:0] intValue];
+            LC[i].A->type = [[items objectAtIndex:1] intValue];
+            LC[i].A->melee = [[items objectAtIndex:2] intValue];
+            LC[i].A->P = [[items objectAtIndex:3] intValue];
+            
+            items = [[fileDataArray objectAtIndex:2] componentsSeparatedByString:@","];
+            
+            LC[i].A->rangeA = [[items objectAtIndex:0] intValue];
+            LC[i].A->rangeB = [[items objectAtIndex:1] intValue];
+            LC[i].A->extent = [[items objectAtIndex:2] intValue];
+            LC[i].A->bullet = [[items objectAtIndex:3] intValue];
+            LC[i].A->hitCount = [[items objectAtIndex:4] intValue];
+            LC[i].A->successRate = [[items objectAtIndex:5] intValue];
+            LC[i].A->vigor = [[items objectAtIndex:6] intValue];
+            LC[i].A->hitPercent = [[items objectAtIndex:7] intValue];
+            
+            items = [[fileDataArray objectAtIndex:3] componentsSeparatedByString:@","];
+            
+            LC[i].A->costType = [[items objectAtIndex:0] intValue];
+            
+            if(LC[i].A->costType == 0) {
+                LC[i].A->EN = [[items objectAtIndex:1] intValue];
+                LC[i].A->pEN = [[items objectAtIndex:2] intValue];
+            }
+            else if(LC[i].A->costType == 1) {
+                LC[i].A->HP = [[items objectAtIndex:1] intValue];
+                LC[i].A->pHP = [[items objectAtIndex:2] intValue];
+            }
+            
+            LC[i].A->cSupply = [[items objectAtIndex:3] intValue];
+            LC[i].A->cFood = [[items objectAtIndex:4] intValue];
+            LC[i].A->cMoney = [[items objectAtIndex:5] intValue];
+            
+            items = [[fileDataArray objectAtIndex:4] componentsSeparatedByString:@","];
+            
+            LC[i].A->riku = [[items objectAtIndex:0] intValue];
+            LC[i].A->chu = [[items objectAtIndex:1] intValue];
+            LC[i].A->umi = [[items objectAtIndex:2] intValue];
+            LC[i].A->sora = [[items objectAtIndex:3] intValue];
+            LC[i].A->dmgExtend = [[items objectAtIndex:4] intValue];
+            
+            LC[i].A->cmd = [[fileDataArray objectAtIndex:5] retain];
+            LC[i].A->msg = @"";
+            
+            //[self AddDAMAGE:&UC[i].A->D :0];
+            //[self AddDMGEXTEND:&UC[i].A->E :0];
+            
+            DAMAGE *Dtop = LC[i].A->D;
+            DMGEXTEND *Etop = LC[i].A->E;
+            static bool omfgFlag;
+            
+            int stringType = 0;
+            int stringRange = 1;
+            int stringNumber = 0;
+            for (int k = 6; k<[fileDataArray count];k++) {
+                NSString *str = [fileDataArray objectAtIndex:k];
+                NSRange rangeSearch, rangeSearch2;
+                NSArray *rangeArray;
+                rangeSearch = [str rangeOfString:@"####"];
+                rangeArray = [str componentsSeparatedByString:@","];
+                rangeSearch2 = [str rangeOfString:@"----"];
+                static int omg = 0;
+                static int omg2 = 0;
+                
+                if(k == [fileDataArray count] - 1){
+                    omg2 = 0;
+                }
+                
+                if(stringType == 0)
+                    if (rangeSearch.location != NSNotFound) {
+                    }else if(rangeSearch2.location != NSNotFound){
+                        stringType = 1;
+                        omg = 0;
+                    }else{
+                        if(LC[i].A->msg == NULL){
+                            LC[i].A->msg = [str retain];
+                        }else{
+                            if(omfgFlag) LC[i].A->msg = [[LC[i].A->msg stringByAppendingFormat:@"\n"] retain];
+                            LC[i].A->msg = [[LC[i].A->msg stringByAppendingFormat:@"%@", str] retain];
+                            omfgFlag = true;
+                        }
+                    }else if(stringType == 1){stringRange ++;
+                        if(rangeSearch2.location != NSNotFound){
+                            stringType = 2;
+                        }
+                        else if(rangeSearch.location != NSNotFound){
+                            stringRange = 0;
+                        }else if(stringRange == 1){
+                            if(omg == 0) {
+                                [self AddDAMAGE:&LC[i].A->D :0];
+                                Dtop = LC[i].A->D;
+                            }
+                            omg++;
+                            LC[i].A->D->type = [[rangeArray objectAtIndex:0] intValue];
+                            LC[i].A->D->count = [[rangeArray objectAtIndex:1] intValue];
+                            LC[i].A->D->pCount = [[rangeArray objectAtIndex:2] intValue];
+                        }else if(stringRange == 2){
+                            
+                            LC[i].A->D->seed = [[rangeArray objectAtIndex:0] intValue];
+                            LC[i].A->D->sort = [[rangeArray objectAtIndex:1] intValue];
+                            LC[i].A->D->continium = [[rangeArray objectAtIndex:2] intValue];
+                            LC[i].A->D->absolute = [[rangeArray objectAtIndex:3] intValue];
+                            LC[i].A->D->beam = [[rangeArray objectAtIndex:4] intValue];
+                            LC[i].A->D->noSizeFix = [[rangeArray objectAtIndex:5] intValue];
+                            
+                            stringNumber++;
+                            NSString *str2 = [fileDataArray objectAtIndex:k+1];
+                            NSRange rangeSearch3 = [str2 rangeOfString:@"####"];
+                            if(stringNumber >= 1 && rangeSearch3.location != NSNotFound) [self AddDAMAGE:&LC[i].A->D :stringNumber-1];
+                            LC[i].A->D = LC[i].A->D->next;
+                        }
+                    }else if(stringType == 2){stringRange ++;
+                        
+                        if(rangeSearch2.location != NSNotFound){
+                            stringType = 3;
+                        }
+                        else if(rangeSearch.location != NSNotFound){
+                            stringRange = 0;
+                            stringNumber = 0;
+                        }else if(stringRange == 1){stringNumber++;
+                            if(omg2 == 0) {
+                                [self AddDMGEXTEND:&LC[i].A->E :0];
+                                Etop = LC[i].A->E;
+                            }
+                            omg2++;
+                            LC[i].A->E->rate = [[rangeArray objectAtIndex:0] intValue];
+                            LC[i].A->E->hit = [[rangeArray objectAtIndex:2] intValue];
+                            LC[i].A->E->atkHit = [[rangeArray objectAtIndex:1] intValue];
+                            
+                            NSString *str2 = [fileDataArray objectAtIndex:k+1];
+                            NSRange rangeSearch3 = [str2 rangeOfString:@"####"];
+                            if(stringNumber >= 1 && rangeSearch3.location != NSNotFound) [self AddDMGEXTEND:&LC[i].A->E :stringNumber-1];
+                            
+                            LC[i].A->E = LC[i].A->E->next;
+                        }
+                        
+                    }
+            }
+            LC[i].A->D = Dtop;
+            LC[i].A->E = Etop;
+            
+            omfgFlag = false;
+            if([fileDataArray2 count]-1 > j) LC[i].A = LC[i].A->next;
+            else LC[i].A->next = NULL;
+        }
+        
+        if(LC[i].attackListNum <= 0) Atop = NULL;
+        LC[i].A = Atop;
+    }
+    
+    /*
+     for (int i=0; i< itemNumb; i++)
+     [self setTotalDamage:i row:<#(int)#>];
+     */
+}
+
+-(void)initFileDirectoryAttackEQ{
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    char *cwd;
+    cwd = getcwd(NULL, 0);
+    
+    
+    NSData *InitialData = [NSData dataWithContentsOfFile:@"data/AttackList3/preset.txt"];
+    NSString *pathALI = @"data/AttackList3/img";
+    NSString *pathDATA2 = @"data/AttackList3/preset.txt";
+    NSString *pathAL = @"data/AttackList3/preset.txt";
+    NSString *fileData = nil;
+    
+    itemNumb = [equipListMA count];
+    if(!InitialData){
+        [[NSFileManager defaultManager] createDirectoryAtPath:pathALI withIntermediateDirectories:YES attributes:nil error:nil];
+        [[NSFileManager defaultManager] createFileAtPath:pathDATA2 contents:nil attributes:nil];
+        
+        [[NSFileManager defaultManager] createFileAtPath:pathAL contents:nil attributes:nil];
+        
+        
+        
+        for (int i=1; i<=itemNumb; i++) {
+            NSString *fdata = @"data/AttackList3/IALdata";
+            
+            fdata = [fdata stringByAppendingFormat:@"%d.txt", i];
+            
+            switch (i) {
+                default:
+                    
+                    break;
+            }
+            
+        }
+        
+    }
+    
+    NSArray *fileDataArray2;
+    ATTACK *Atop;
+    for (int i=0; i< itemNumb; i++) {
+        NSString *fdata = @"data/AttackList3/IALdata";
+        
+        fdata = [fdata stringByAppendingFormat:@"%d.txt", i+1];
+        
+        fileData = [NSString stringWithContentsOfFile:fdata encoding:NSUTF8StringEncoding error:nil];
+        fileDataArray2 = [fileData componentsSeparatedByString:@"--------\n"];
+        
+        bool initAttackAdd = false;
+        
+        if(fileData == 0x00007fff7e19dfa0) continue;
+        
+        if([fileDataArray2 count] <= 0) continue;
+        
+        for(int j=0;j < [fileDataArray2 count];j++){
+            if(![[fileDataArray2 objectAtIndex:0] isEqualToString:@""]) EQ[i].attackListNum++;
+            fileDataArray = [[fileDataArray2 objectAtIndex:j] componentsSeparatedByString:@"\n"];
+            
+            if(!initAttackAdd)
+                [self AddATTACK:&EQ[i].A :0];
+            
+            [self AddATTACK:&EQ[i].A :j];
+            
+            if(!initAttackAdd) {
+                Atop = EQ[i].A;
+            }
+            initAttackAdd = true;
+            
+            EQ[i].A->name = [[fileDataArray objectAtIndex:0] retain];
+            
+            if([fileDataArray count] <= 1) continue;
+            NSArray *items = [[fileDataArray objectAtIndex:1] componentsSeparatedByString:@","];
+            
+            EQ[i].A->trig = [[items objectAtIndex:0] intValue];
+            EQ[i].A->type = [[items objectAtIndex:1] intValue];
+            EQ[i].A->melee = [[items objectAtIndex:2] intValue];
+            EQ[i].A->P = [[items objectAtIndex:3] intValue];
+            
+            items = [[fileDataArray objectAtIndex:2] componentsSeparatedByString:@","];
+            
+            EQ[i].A->rangeA = [[items objectAtIndex:0] intValue];
+            EQ[i].A->rangeB = [[items objectAtIndex:1] intValue];
+            EQ[i].A->extent = [[items objectAtIndex:2] intValue];
+            EQ[i].A->bullet = [[items objectAtIndex:3] intValue];
+            EQ[i].A->hitCount = [[items objectAtIndex:4] intValue];
+            EQ[i].A->successRate = [[items objectAtIndex:5] intValue];
+            EQ[i].A->vigor = [[items objectAtIndex:6] intValue];
+            EQ[i].A->hitPercent = [[items objectAtIndex:7] intValue];
+            
+            items = [[fileDataArray objectAtIndex:3] componentsSeparatedByString:@","];
+            
+            EQ[i].A->costType = [[items objectAtIndex:0] intValue];
+            
+            if(EQ[i].A->costType == 0) {
+                EQ[i].A->MP = [[items objectAtIndex:1] intValue];
+                EQ[i].A->pMP = [[items objectAtIndex:2] intValue];
+            }
+            else if(EQ[i].A->costType == 1) {
+                EQ[i].A->AP = [[items objectAtIndex:1] intValue];
+                EQ[i].A->pAP = [[items objectAtIndex:2] intValue];
+            }
+            else if(EQ[i].A->costType == 2) {
+                EQ[i].A->HP = [[items objectAtIndex:1] intValue];
+                EQ[i].A->pHP = [[items objectAtIndex:2] intValue];
+            }
+            
+            EQ[i].A->cSupply = [[items objectAtIndex:3] intValue];
+            EQ[i].A->cFood = [[items objectAtIndex:4] intValue];
+            EQ[i].A->cMoney = [[items objectAtIndex:5] intValue];
+            
+            items = [[fileDataArray objectAtIndex:4] componentsSeparatedByString:@","];
+            
+            EQ[i].A->riku = [[items objectAtIndex:0] intValue];
+            EQ[i].A->chu = [[items objectAtIndex:1] intValue];
+            EQ[i].A->umi = [[items objectAtIndex:2] intValue];
+            EQ[i].A->sora = [[items objectAtIndex:3] intValue];
+            EQ[i].A->dmgExtend = [[items objectAtIndex:4] intValue];
+            
+            EQ[i].A->cmd = [[fileDataArray objectAtIndex:5] retain];
+            EQ[i].A->msg = @"";
+            
+            //[self AddDAMAGE:&UC[i].A->D :0];
+            //[self AddDMGEXTEND:&UC[i].A->E :0];
+            
+            DAMAGE *Dtop = EQ[i].A->D;
+            DMGEXTEND *Etop = EQ[i].A->E;
+            static bool omfgFlag;
+            
+            int stringType = 0;
+            int stringRange = 1;
+            int stringNumber = 0;
+            for (int k = 6; k<[fileDataArray count];k++) {
+                NSString *str = [fileDataArray objectAtIndex:k];
+                NSRange rangeSearch, rangeSearch2;
+                NSArray *rangeArray;
+                rangeSearch = [str rangeOfString:@"####"];
+                rangeArray = [str componentsSeparatedByString:@","];
+                rangeSearch2 = [str rangeOfString:@"----"];
+                static int omg = 0;
+                static int omg2 = 0;
+                
+                if(k == [fileDataArray count] - 1){
+                    omg2 = 0;
+                }
+                
+                if(stringType == 0)
+                    if (rangeSearch.location != NSNotFound) {
+                    }else if(rangeSearch2.location != NSNotFound){
+                        stringType = 1;
+                        omg = 0;
+                    }else{
+                        if(EQ[i].A->msg == NULL){
+                            EQ[i].A->msg = [str retain];
+                        }else{
+                            if(omfgFlag) EQ[i].A->msg = [[EQ[i].A->msg stringByAppendingFormat:@"\n"] retain];
+                            EQ[i].A->msg = [[EQ[i].A->msg stringByAppendingFormat:@"%@", str] retain];
+                            omfgFlag = true;
+                        }
+                    }else if(stringType == 1){stringRange ++;
+                        if(rangeSearch2.location != NSNotFound){
+                            stringType = 2;
+                        }
+                        else if(rangeSearch.location != NSNotFound){
+                            stringRange = 0;
+                        }else if(stringRange == 1){
+                            if(omg == 0) {
+                                [self AddDAMAGE:&EQ[i].A->D :0];
+                                Dtop = EQ[i].A->D;
+                            }
+                            omg++;
+                            EQ[i].A->D->type = [[rangeArray objectAtIndex:0] intValue];
+                            EQ[i].A->D->count = [[rangeArray objectAtIndex:1] intValue];
+                            EQ[i].A->D->pCount = [[rangeArray objectAtIndex:2] intValue];
+                        }else if(stringRange == 2){
+                            
+                            EQ[i].A->D->seed = [[rangeArray objectAtIndex:0] intValue];
+                            EQ[i].A->D->sort = [[rangeArray objectAtIndex:1] intValue];
+                            EQ[i].A->D->continium = [[rangeArray objectAtIndex:2] intValue];
+                            EQ[i].A->D->absolute = [[rangeArray objectAtIndex:3] intValue];
+                            EQ[i].A->D->beam = [[rangeArray objectAtIndex:4] intValue];
+                            EQ[i].A->D->noSizeFix = [[rangeArray objectAtIndex:5] intValue];
+                            
+                            stringNumber++;
+                            NSString *str2 = [fileDataArray objectAtIndex:k+1];
+                            NSRange rangeSearch3 = [str2 rangeOfString:@"####"];
+                            if(stringNumber >= 1 && rangeSearch3.location != NSNotFound) [self AddDAMAGE:&EQ[i].A->D :stringNumber-1];
+                            EQ[i].A->D = EQ[i].A->D->next;
+                        }
+                    }else if(stringType == 2){stringRange ++;
+                        
+                        if(rangeSearch2.location != NSNotFound){
+                            stringType = 3;
+                        }
+                        else if(rangeSearch.location != NSNotFound){
+                            stringRange = 0;
+                            stringNumber = 0;
+                        }else if(stringRange == 1){stringNumber++;
+                            if(omg2 == 0) {
+                                [self AddDMGEXTEND:&EQ[i].A->E :0];
+                                Etop = EQ[i].A->E;
+                            }
+                            omg2++;
+                            EQ[i].A->E->rate = [[rangeArray objectAtIndex:0] intValue];
+                            EQ[i].A->E->hit = [[rangeArray objectAtIndex:2] intValue];
+                            EQ[i].A->E->atkHit = [[rangeArray objectAtIndex:1] intValue];
+                            
+                            NSString *str2 = [fileDataArray objectAtIndex:k+1];
+                            NSRange rangeSearch3 = [str2 rangeOfString:@"####"];
+                            if(stringNumber >= 1 && rangeSearch3.location != NSNotFound) [self AddDMGEXTEND:&EQ[i].A->E :stringNumber-1];
+                            
+                            EQ[i].A->E = EQ[i].A->E->next;
+                        }
+                        
+                    }
+            }
+            EQ[i].A->D = Dtop;
+            EQ[i].A->E = Etop;
+            
+            omfgFlag = false;
+            if([fileDataArray2 count]-1 > j) EQ[i].A = EQ[i].A->next;
+            else EQ[i].A->next = NULL;
+        }
+        
+        if(EQ[i].attackListNum <= 0) Atop = NULL;
+        EQ[i].A = Atop;
+    }
+    
+    /*
+     for (int i=0; i< itemNumb; i++)
+     [self setTotalDamage:i row:<#(int)#>];
+     */
+}
+
+
+-(ATTACK*)AllocATTACK{
+    return (calloc(1, sizeof(ATTACK)));
+}
+-(DAMAGE*)AllocDAMAGE{
+    return (calloc(1, sizeof(DAMAGE)));
+}
+-(DMGEXTEND*)AllocDMGEXTEND{
+    return (calloc(1, sizeof(DMGEXTEND)));
+}
+
+-(void)AddATTACK:(ATTACK**)top:(int)no{
+    ATTACK *ptr = *top;
+    if(*top == NULL){
+        *top = [self AllocATTACK];
+        ptr = *top;
+        ptr->index = no;
+        ptr->next = NULL;
+    }else{
+        while(ptr->next != NULL) ptr = ptr->next;
+        ptr->next = [self AllocATTACK];
+        ptr->index = no;
+        ptr->next->next = NULL;
+        
+    }
+    
+    
+}
+
+-(void)AddDAMAGE:(DAMAGE**)top:(int)no{
+    DAMAGE *ptr = *top;
+    if(*top == NULL){
+        *top = [self AllocDAMAGE];
+        ptr = *top;
+        ptr->index = no;
+        ptr->next = NULL;
+    }else{
+        while(ptr->next != NULL) ptr = ptr->next;
+        ptr->next = [self AllocDAMAGE];
+        ptr->index = no;
+        ptr->next->next = NULL;
+        
+    }
+    
+    
+}
+
+-(void)AddDMGEXTEND:(DMGEXTEND**)top:(int)no{
+    DMGEXTEND *ptr = *top;
+    if(*top == NULL){
+        *top = [self AllocDMGEXTEND];
+        ptr = *top;
+        ptr->index = no;
+        ptr->next = NULL;
+    }else{
+        while(ptr->next != NULL) ptr = ptr->next;
+        ptr->next = [self AllocDMGEXTEND];
+        ptr->index = no;
+        ptr->next->next = NULL;
+        
+    }
+    
+    
+}
+
+
+
+-(void)initItemList{
+    equipListMA = [NSMutableArray new];
+    
+    [self willChangeValueForKey:@"equipItemMA"];
+    [equipItemMA removeAllObjects];
+    [self didChangeValueForKey:@"equipItemMA"];
+    
+    for(int i = 0;i < eItemNum;i++){
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        NSString *str = @"";
+        [dict setValue:[NSString stringWithFormat:@"%@", EQ[i].name] forKey:@"name"];
+        
+        if(!EQ[i].name){
+            EQ[i].name = [[NSString stringWithFormat:@"新規アイテム%d", i] retain];
+            EQ[i].nameRecognition = [[NSString stringWithFormat:@"新規アイテム%d", i] retain];
+            EQ[i].nameID = [[NSString stringWithFormat:@"eq%d", i] retain];
+            [dict setValue:EQ[i].name forKey:@"name"];
+        }
+        
+        if(EQ[i].HP != 0)
+            str = [str stringByAppendingFormat:@"HP %d ", (int)EQ[i].HP];
+        if(EQ[i].MP != 0)
+            str = [str stringByAppendingFormat:@"MP %d ", (int)EQ[i].MP];
+        if(EQ[i].STR != 0) 
+            str = [str stringByAppendingFormat:@"STR %d ", (int)EQ[i].STR];
+        if(EQ[i].VIT != 0)
+            str = [str stringByAppendingFormat:@"VIT %d ", (int)EQ[i].VIT];
+        if(EQ[i].AGI != 0)
+            str = [str stringByAppendingFormat:@"AGI %d ", (int)EQ[i].AGI];
+        if(EQ[i].DEX != 0)
+            str = [str stringByAppendingFormat:@"DEX %d ", (int)EQ[i].DEX];
+        if(EQ[i].MEN != 0)
+            str = [str stringByAppendingFormat:@"MEN %d ", (int)EQ[i].MEN];
+        if(EQ[i].INT != 0)
+            str = [str stringByAppendingFormat:@"INT %d ", (int)EQ[i].INT];
+        if(EQ[i].LUK != 0)
+            str = [str stringByAppendingFormat:@"LUK %d ", (int)EQ[i].LUK];
+        if(EQ[i].Weight != 0)
+            str = [str stringByAppendingFormat:@"重さ %d ", (int)EQ[i].Weight];
+        
+        [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"memo"];
+        
+        [self willChangeValueForKey:@"equipListMA"];
+        [equipListMA addObject:dict];
+        [self didChangeValueForKey:@"equipListMA"];
+    }
+    
+    
+}
+
+
+-(void)initUnitChipList{
+    unitChipListMA = [NSMutableArray new];
+    
+    for(int i = 0;i < chipNumb;i++){
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        if(!UC[i].nameID){
+            UC[i].name = [[NSString stringWithFormat:@"新規ユニット"] retain];
+            UC[i].nameNick = [[NSString stringWithFormat:@"新規ニックネーム"] retain];
+            UC[i].nameClass = [[NSString stringWithFormat:@"新規クラス"] retain];
+            UC[i].name = [[UC[i].name stringByAppendingFormat:@"%d",i+1] retain];
+            UC[i].nameID = @"uc";
+            UC[i].nameID = [[UC[i].nameID stringByAppendingFormat:@"%d",i+1] retain];
+            UC[i].nameRecognition = [@"新規名前" retain];
+            UC[i].nameRecognition = [[UC[i].nameRecognition stringByAppendingFormat:@"%d",i+1] retain];
+            UC[i].iName = @"uc";
+            UC[i].iName = [[UC[i].iName stringByAppendingFormat:@"%d",i+1] retain];
+            UC[i].iNameb = @"ucb";
+            UC[i].iNameb = [[UC[i].iNameb stringByAppendingFormat:@"%d",i+1] retain];
+            UC[i].R_M.air = 100;
+            UC[i].R_M.arrow = 100;
+            UC[i].R_M.blood = 100;
+            UC[i].R_M.blow = 100;
+            
+            UC[i].R_M.charm = 100;
+            UC[i].R_M.cold = 100;
+            UC[i].R_M.confusion = 100;
+            UC[i].R_M.dark = 100;
+            
+            UC[i].R_M.electoric = 100;
+            UC[i].R_M.explosion = 100;
+            UC[i].R_M.flame = 100;
+            UC[i].R_M.gas = 100;
+            
+            UC[i].R_M.gun = 100;
+            UC[i].R_M.holy = 100;
+            UC[i].R_M.paralysis = 100;
+            UC[i].R_M.poison = 100;
+            
+            UC[i].R_M.shell = 100;
+            UC[i].R_M.silent = 100;
+            UC[i].R_M.slash = 100;
+            UC[i].R_M.sleep = 100;
+            
+            UC[i].R_M.stub = 100;
+            UC[i].R_M.water = 100;
+        }
+        
+        [dict setValue:UC[i].img forKey:@"img"];
+        [dict setValue:UC[i].imgb forKey:@"imgBig"];
+        [dict setValue:[NSString stringWithFormat:@"%@", UC[i].name] forKey:@"name"];
+        [dict setValue:[NSString stringWithFormat:@"%g", UC[i].S_M.HP] forKey:@"HP"];
+        [dict setValue:[NSString stringWithFormat:@"%g", UC[i].S_M.BP] forKey:@"BP"];
+        [dict setValue:[NSString stringWithFormat:@"%@", UC[i].nameClass] forKey:@"nameC"];
+        [self willChangeValueForKey:@"unitChipListMA"];
+        [unitChipListMA addObject:dict];
+        [self didChangeValueForKey:@"unitChipListMA"];
+    }
+    
+    
+}
+
+-(void)initTotalDamage{
+    for(int i = 0;i < chipNumb;i++){
+        int j = 0;
+        while (j < 64) {
+            [self setTotalDamage:i row:j];
+            j++;
+        }
+    }
+    
+    for(int i = 0;i < itemNumb;i++){
+        int j = 0;
+        while (j < 64) {
+            [self setTotalDamageEQ:i row:j];
+            j++;
+        }
+    }
+
+}
+
+-(void)initAttackList{
+    attackListMA = [NSMutableArray new];
+    
+    [self willChangeValueForKey:@"attackListMA"];
+    [attackListMA removeAllObjects];
+    [self didChangeValueForKey:@"attackListMA"];
+    
+    int i0 = 0;
+    
+    ATTACK *Atop = UC[clickIndex].A;
+    
+    while (i0 < 64) {
+     [self setTotalDamage:(int)clickIndex row:i0];
+        i0++;
+    }
+    
+    UC[clickIndex].A = Atop;
+    
+    if(UC[clickIndex].A == NULL) return;
+    
+    for(int i = 0;i < UC[clickIndex].attackListNum;i++){
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+        NSString *str = NULL;
+        double countNumb;
+        if(UC[clickIndex].A == NULL) break;
+        if(UC[clickIndex].A->name == NULL) continue;
+        
+        if(UC[clickIndex].A->D != NULL){
+            if(UC[clickIndex].A->D->type == 0) str = [NSString stringWithFormat:@"攻"];
+            if(UC[clickIndex].A->D->type == 1) str = [NSString stringWithFormat:@"防"];
+            if(UC[clickIndex].A->D->type == 2) str = [NSString stringWithFormat:@"命"];
+            if(UC[clickIndex].A->D->type == 3) str = [NSString stringWithFormat:@"回"];
+            if(UC[clickIndex].A->D->type == 4) str = [NSString stringWithFormat:@"演"];
+            if(UC[clickIndex].A->D->type == 5) str = [NSString stringWithFormat:@"会"];
+            
+            countNumb = UC[clickIndex].A->totalD;
+            str = [str stringByAppendingFormat:@"%g", countNumb];
+            
+        }
+        [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"atk"];
+        
+        [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].A->name] forKey:@"name"];
+        [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->hitPercent] forKey:@"hit"];
+        [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->vigor] forKey:@"vigor"];
+        [dict setValue:[NSString stringWithFormat:@"%d", UC[clickIndex].A->bullet] forKey:@"bullet"];
+        NSString *rangeStr = @"";
+        if(UC[clickIndex].A->P) rangeStr = @"P";
+        if(UC[clickIndex].A->melee) rangeStr = [rangeStr stringByAppendingFormat:@"●"];
+        else rangeStr = [rangeStr stringByAppendingFormat:@"□"];
+        if(UC[clickIndex].A->rangeA == UC[clickIndex].A->rangeB)
+            [dict setValue:[NSString stringWithFormat:@"%@%d", rangeStr, UC[clickIndex].A->rangeA] forKey:@"range"];
+        else
+            [dict setValue:[NSString stringWithFormat:@"%@%d-%d", rangeStr, UC[clickIndex].A->rangeA, UC[clickIndex].A->rangeB] forKey:@"range"];
+        
+        if(UC[clickIndex].A->MP > 0)
+        [dict setValue:[NSString stringWithFormat:@"MP%g", UC[clickIndex].A->MP + floor(UC[clickIndex].A->pMP*UC[clickIndex].S_M.MP/100 + 0.5)] forKey:@"cost"];
+        else if(UC[clickIndex].A->AP > 0)
+        [dict setValue:[NSString stringWithFormat:@"AP%g", UC[clickIndex].A->AP+ floor(UC[clickIndex].A->pAP*UC[clickIndex].S_M.AP/100 + 0.5)] forKey:@"cost"];
+        else if(UC[clickIndex].A->HP > 0)
+        [dict setValue:[NSString stringWithFormat:@"HP%g", UC[clickIndex].A->HP+ floor(UC[clickIndex].A->pHP*UC[clickIndex].S_M.HP/100 + 0.5)] forKey:@"cost"];
+        
+        [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].A->cmd] forKey:@"command"];
+        
+        if(UC[clickIndex].A->D != NULL){
+        if(UC[clickIndex].A->D->seed == 0) [dict setValue:[NSString stringWithFormat:@"打撃"] forKey:@"type"];
+        if(UC[clickIndex].A->D->seed == 1) [dict setValue:[NSString stringWithFormat:@"斬撃"] forKey:@"type"];
+        if(UC[clickIndex].A->D->seed == 2) [dict setValue:[NSString stringWithFormat:@"突き"] forKey:@"type"];
+        if(UC[clickIndex].A->D->seed == 3) [dict setValue:[NSString stringWithFormat:@"射手"] forKey:@"type"];
+        if(UC[clickIndex].A->D->seed == 4) [dict setValue:[NSString stringWithFormat:@"銃撃"] forKey:@"type"];
+        if(UC[clickIndex].A->D->seed == 5) [dict setValue:[NSString stringWithFormat:@"砲撃"] forKey:@"type"];
+        if(UC[clickIndex].A->D->seed == 6) [dict setValue:[NSString stringWithFormat:@"火炎"] forKey:@"type"];
+        if(UC[clickIndex].A->D->seed == 7) [dict setValue:[NSString stringWithFormat:@"冷気"] forKey:@"type"];
+        if(UC[clickIndex].A->D->seed == 8) [dict setValue:[NSString stringWithFormat:@"電撃"] forKey:@"type"];
+        if(UC[clickIndex].A->D->seed == 9) [dict setValue:[NSString stringWithFormat:@"風圧"] forKey:@"type"];
+        if(UC[clickIndex].A->D->seed == 10) [dict setValue:[NSString stringWithFormat:@"流水"] forKey:@"type"];
+        if(UC[clickIndex].A->D->seed == 11) [dict setValue:[NSString stringWithFormat:@"ガス"] forKey:@"type"];
+        if(UC[clickIndex].A->D->seed == 12) [dict setValue:[NSString stringWithFormat:@"神聖"] forKey:@"type"];
+        if(UC[clickIndex].A->D->seed == 13) [dict setValue:[NSString stringWithFormat:@"暗黒"] forKey:@"type"];
+        if(UC[clickIndex].A->D->seed == 14) [dict setValue:[NSString stringWithFormat:@"爆撃"] forKey:@"type"];
+        if(UC[clickIndex].A->D->seed == 15) [dict setValue:[NSString stringWithFormat:@"流血"] forKey:@"type"];
+        }
+        [self willChangeValueForKey:@"attackListMA"];
+        [attackListMA addObject:dict];
+        [self didChangeValueForKey:@"attackListMA"];
+        
+        UC[clickIndex].A = UC[clickIndex].A->next;
+    }
+    
+    UC[clickIndex].A = Atop;
+    
+}
+
+-(void)initAttackList2{
+    attackListMA = [NSMutableArray new];
+    
+    [self willChangeValueForKey:@"attackListMA"];
+    [attackListMA removeAllObjects];
+    [self didChangeValueForKey:@"attackListMA"];
+    
+    int i0 = 0;
+    
+    ATTACK *Atop = LC[cil].A;
+    
+    while (i0 < 64) {
+        [self setTotalDamage2:(int)cil row:i0];
+        i0++;
+    }
+    
+    LC[cil].A = Atop;
+    
+    if(LC[cil].A == NULL) return;
+    
+    for(int i = 0;i < LC[cil].attackListNum;i++){
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+        NSString *str = NULL;
+        double countNumb = 0;
+        if(LC[cil].A == NULL) break;
+        if(LC[cil].A->name == NULL) continue;
+        
+        if(LC[cil].A->D != NULL){
+
+            str = [NSString stringWithFormat:@"攻"];
+            
+            countNumb = LC[cil].A->totalD;
+            str = [str stringByAppendingFormat:@"%g", countNumb];
+            
+        }
+        [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"atk"];
+        
+        [dict setValue:[NSString stringWithFormat:@"%@", LC[cil].A->name] forKey:@"name"];
+        [dict setValue:[NSString stringWithFormat:@"%d", LC[cil].A->hitPercent] forKey:@"hit"];
+        [dict setValue:[NSString stringWithFormat:@"%d", LC[cil].A->vigor] forKey:@"vigor"];
+        [dict setValue:[NSString stringWithFormat:@"%d", LC[cil].A->bullet] forKey:@"bullet"];
+        NSString *rangeStr = @"";
+        if(LC[cil].A->P) rangeStr = @"P";
+        if(LC[cil].A->melee) rangeStr = [rangeStr stringByAppendingFormat:@"●"];
+        else rangeStr = [rangeStr stringByAppendingFormat:@"□"];
+        if(LC[cil].A->rangeA == LC[cil].A->rangeB)
+            [dict setValue:[NSString stringWithFormat:@"%@%d", rangeStr, LC[cil].A->rangeA] forKey:@"range"];
+        else
+            [dict setValue:[NSString stringWithFormat:@"%@%d-%d", rangeStr, LC[cil].A->rangeA, LC[cil].A->rangeB] forKey:@"range"];
+        
+        if(LC[cil].A->EN > 0)
+            [dict setValue:[NSString stringWithFormat:@"EN%g", LC[cil].A->EN + floor(LC[cil].A->pEN*LC[cil].S_M.EN/100 + 0.5)] forKey:@"cost"];
+        if(LC[cil].A->HP > 0)
+            [dict setValue:[NSString stringWithFormat:@"HP%g", LC[cil].A->HP + floor(LC[cil].A->pEN*LC[cil].S_M.HP/100 + 0.5)] forKey:@"cost"];
+        
+        [dict setValue:[NSString stringWithFormat:@"%@", LC[cil].A->cmd] forKey:@"command"];
+        
+        if(LC[cil].A->D != NULL){
+            if(LC[cil].A->D->seed == 0) [dict setValue:[NSString stringWithFormat:@"打撃"] forKey:@"type"];
+            if(LC[cil].A->D->seed == 1) [dict setValue:[NSString stringWithFormat:@"斬撃"] forKey:@"type"];
+            if(LC[cil].A->D->seed == 2) [dict setValue:[NSString stringWithFormat:@"突き"] forKey:@"type"];
+            if(LC[cil].A->D->seed == 3) [dict setValue:[NSString stringWithFormat:@"射手"] forKey:@"type"];
+            if(LC[cil].A->D->seed == 4) [dict setValue:[NSString stringWithFormat:@"銃撃"] forKey:@"type"];
+            if(LC[cil].A->D->seed == 5) [dict setValue:[NSString stringWithFormat:@"砲撃"] forKey:@"type"];
+            if(LC[cil].A->D->seed == 6) [dict setValue:[NSString stringWithFormat:@"火炎"] forKey:@"type"];
+            if(LC[cil].A->D->seed == 7) [dict setValue:[NSString stringWithFormat:@"冷気"] forKey:@"type"];
+            if(LC[cil].A->D->seed == 8) [dict setValue:[NSString stringWithFormat:@"電撃"] forKey:@"type"];
+            if(LC[cil].A->D->seed == 9) [dict setValue:[NSString stringWithFormat:@"風圧"] forKey:@"type"];
+            if(LC[cil].A->D->seed == 10) [dict setValue:[NSString stringWithFormat:@"流水"] forKey:@"type"];
+            if(LC[cil].A->D->seed == 11) [dict setValue:[NSString stringWithFormat:@"ガス"] forKey:@"type"];
+            if(LC[cil].A->D->seed == 12) [dict setValue:[NSString stringWithFormat:@"神聖"] forKey:@"type"];
+            if(LC[cil].A->D->seed == 13) [dict setValue:[NSString stringWithFormat:@"暗黒"] forKey:@"type"];
+            if(LC[cil].A->D->seed == 14) [dict setValue:[NSString stringWithFormat:@"爆撃"] forKey:@"type"];
+            if(LC[cil].A->D->seed == 15) [dict setValue:[NSString stringWithFormat:@"流血"] forKey:@"type"];
+        }
+        [self willChangeValueForKey:@"attackListMA"];
+        [attackListMA addObject:dict];
+        [self didChangeValueForKey:@"attackListMA"];
+        
+        LC[cil].A = LC[cil].A->next;
+    }
+    
+    LC[cil].A = Atop;
+    
+}
+
+-(void)initAttackListEQ{
+    attackListMA = [NSMutableArray new];
+    
+    [self willChangeValueForKey:@"attackListMA"];
+    [attackListMA removeAllObjects];
+    [self didChangeValueForKey:@"attackListMA"];
+    
+    int i0 = 0;
+    
+    ATTACK *Atop = EQ[clickIndexEQ].A;
+    
+    while (i0 < 64) {
+        [self setTotalDamageEQ:(int)clickIndexEQ row:i0];
+        i0++;
+    }
+    
+    EQ[clickIndexEQ].A = Atop;
+    
+    if(EQ[clickIndexEQ].A == NULL) return;
+    
+    for(int i = 0;i < EQ[clickIndexEQ].attackListNum;i++){
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+        NSString *str = NULL;
+        double countNumb;
+        if(EQ[clickIndexEQ].A == NULL) break;
+        if(EQ[clickIndexEQ].A->name == NULL) continue;
+        
+        if(EQ[clickIndexEQ].A->D != NULL){
+            if(EQ[clickIndexEQ].A->D->type == 0) str = [NSString stringWithFormat:@"攻"];
+            if(EQ[clickIndexEQ].A->D->type == 1) str = [NSString stringWithFormat:@"防"];
+            if(EQ[clickIndexEQ].A->D->type == 2) str = [NSString stringWithFormat:@"命"];
+            if(EQ[clickIndexEQ].A->D->type == 3) str = [NSString stringWithFormat:@"回"];
+            if(EQ[clickIndexEQ].A->D->type == 4) str = [NSString stringWithFormat:@"演"];
+            if(EQ[clickIndexEQ].A->D->type == 5) str = [NSString stringWithFormat:@"会"];
+            
+            countNumb = EQ[clickIndexEQ].A->totalD;
+            str = [str stringByAppendingFormat:@"%g", countNumb];
+            
+        }
+        [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"atk"];
+        
+        [dict setValue:[NSString stringWithFormat:@"%@", EQ[clickIndexEQ].A->name] forKey:@"name"];
+        [dict setValue:[NSString stringWithFormat:@"%d", EQ[clickIndexEQ].A->hitPercent] forKey:@"hit"];
+        [dict setValue:[NSString stringWithFormat:@"%d", EQ[clickIndexEQ].A->vigor] forKey:@"vigor"];
+        [dict setValue:[NSString stringWithFormat:@"%d", EQ[clickIndexEQ].A->bullet] forKey:@"bullet"];
+        NSString *rangeStr = @"";
+        if(EQ[clickIndexEQ].A->P) rangeStr = @"P";
+        if(EQ[clickIndexEQ].A->melee) rangeStr = [rangeStr stringByAppendingFormat:@"●"];
+        else rangeStr = [rangeStr stringByAppendingFormat:@"□"];
+        if(EQ[clickIndexEQ].A->rangeA == EQ[clickIndexEQ].A->rangeB)
+            [dict setValue:[NSString stringWithFormat:@"%@%d", rangeStr, EQ[clickIndexEQ].A->rangeA] forKey:@"range"];
+        else
+            [dict setValue:[NSString stringWithFormat:@"%@%d-%d", rangeStr, EQ[clickIndexEQ].A->rangeA, EQ[clickIndexEQ].A->rangeB] forKey:@"range"];
+        
+        if(EQ[clickIndexEQ].A->MP > 0)
+            [dict setValue:[NSString stringWithFormat:@"MP%g", EQ[clickIndexEQ].A->MP + floor(EQ[clickIndexEQ].A->pMP)] forKey:@"cost"];
+        else if(EQ[clickIndexEQ].A->AP > 0)
+            [dict setValue:[NSString stringWithFormat:@"AP%g", EQ[clickIndexEQ].A->AP+ floor(EQ[clickIndexEQ].A->pAP)] forKey:@"cost"];
+        else if(EQ[clickIndexEQ].A->HP > 0)
+            [dict setValue:[NSString stringWithFormat:@"HP%g", EQ[clickIndexEQ].A->HP+ floor(EQ[clickIndexEQ].A->pHP)] forKey:@"cost"];
+        
+        [dict setValue:[NSString stringWithFormat:@"%@", EQ[clickIndexEQ].A->cmd] forKey:@"command"];
+        
+        if(EQ[clickIndexEQ].A->D != NULL){
+            if(EQ[clickIndexEQ].A->D->seed == 0) [dict setValue:[NSString stringWithFormat:@"打撃"] forKey:@"type"];
+            if(EQ[clickIndexEQ].A->D->seed == 1) [dict setValue:[NSString stringWithFormat:@"斬撃"] forKey:@"type"];
+            if(EQ[clickIndexEQ].A->D->seed == 2) [dict setValue:[NSString stringWithFormat:@"突き"] forKey:@"type"];
+            if(EQ[clickIndexEQ].A->D->seed == 3) [dict setValue:[NSString stringWithFormat:@"射手"] forKey:@"type"];
+            if(EQ[clickIndexEQ].A->D->seed == 4) [dict setValue:[NSString stringWithFormat:@"銃撃"] forKey:@"type"];
+            if(EQ[clickIndexEQ].A->D->seed == 5) [dict setValue:[NSString stringWithFormat:@"砲撃"] forKey:@"type"];
+            if(EQ[clickIndexEQ].A->D->seed == 6) [dict setValue:[NSString stringWithFormat:@"火炎"] forKey:@"type"];
+            if(EQ[clickIndexEQ].A->D->seed == 7) [dict setValue:[NSString stringWithFormat:@"冷気"] forKey:@"type"];
+            if(EQ[clickIndexEQ].A->D->seed == 8) [dict setValue:[NSString stringWithFormat:@"電撃"] forKey:@"type"];
+            if(EQ[clickIndexEQ].A->D->seed == 9) [dict setValue:[NSString stringWithFormat:@"風圧"] forKey:@"type"];
+            if(EQ[clickIndexEQ].A->D->seed == 10) [dict setValue:[NSString stringWithFormat:@"流水"] forKey:@"type"];
+            if(EQ[clickIndexEQ].A->D->seed == 11) [dict setValue:[NSString stringWithFormat:@"ガス"] forKey:@"type"];
+            if(EQ[clickIndexEQ].A->D->seed == 12) [dict setValue:[NSString stringWithFormat:@"神聖"] forKey:@"type"];
+            if(EQ[clickIndexEQ].A->D->seed == 13) [dict setValue:[NSString stringWithFormat:@"暗黒"] forKey:@"type"];
+            if(EQ[clickIndexEQ].A->D->seed == 14) [dict setValue:[NSString stringWithFormat:@"爆撃"] forKey:@"type"];
+            if(EQ[clickIndexEQ].A->D->seed == 15) [dict setValue:[NSString stringWithFormat:@"流血"] forKey:@"type"];
+        }
+        [self willChangeValueForKey:@"attackListMA"];
+        [attackListMA addObject:dict];
+        [self didChangeValueForKey:@"attackListMA"];
+        
+        EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
+    }
+    
+    EQ[clickIndexEQ].A = Atop;
+    
+}
+
+
+-(IBAction)skillListBtnUCL:(id)sender{
+    windowPoint.x = [UCLDetailPanel frame].origin.x + 40;
+    windowPoint.y = [UCLDetailPanel frame].origin.y + 80;
+    [UCLPanelSkill setFrameOrigin:windowPoint];
+    [self initSkill];
+    [self initSkillList];
+    SKLrow = -1;
+    [UCLPanelSkill makeKeyAndOrderFront:nil];
+}
+
+-(IBAction)attackListBtnlUCL:(id)sender{
+    
+    if(!loadChipSideFlag){
+        [self initAttackSet];
+    }else{
+        [self initAttackSet2];
+    }
+    
+    /*
+    windowPoint.x = [UCLDetailPanel frame].origin.x;
+    windowPoint.y = [UCLDetailPanel frame].origin.y;
+    [UCLPanelAttackList setFrameOrigin:windowPoint];
+     */
+    [UCLPanelAttackList makeKeyAndOrderFront:nil];
+}
+
+-(IBAction)registListBtnlUCL:(id)sender{
+    
+    
+    if(!loadChipSideFlag){
+    [RETFblow setIntValue:UC[clickIndex].R_M.blow];
+    [RETFslash setIntValue:UC[clickIndex].R_M.slash];
+    [RETFstub setIntValue:UC[clickIndex].R_M.stub];
+    [RETFarrow setIntValue:UC[clickIndex].R_M.arrow];
+    [RETFgun setIntValue:UC[clickIndex].R_M.gun];
+    [RETFshell setIntValue:UC[clickIndex].R_M.shell];
+    
+    [RETFflame setIntValue:UC[clickIndex].R_M.flame];
+    [RETFcold setIntValue:UC[clickIndex].R_M.cold];
+    [RETFelectoric setIntValue:UC[clickIndex].R_M.electoric];
+    [RETFair setIntValue:UC[clickIndex].R_M.air];
+    [RETFwater setIntValue:UC[clickIndex].R_M.water];
+    [RETFgas setIntValue:UC[clickIndex].R_M.gas];
+    [RETFholy setIntValue:UC[clickIndex].R_M.holy];
+    [RETFdark setIntValue:UC[clickIndex].R_M.dark];
+    [RETFexplosion setIntValue:UC[clickIndex].R_M.explosion];
+    [RETFblood setIntValue:UC[clickIndex].R_M.blood];
+    
+    [RETFparalysis setIntValue:UC[clickIndex].R_M.paralysis];
+    [RETFconfusion setIntValue:UC[clickIndex].R_M.confusion];
+    [RETFpoison setIntValue:UC[clickIndex].R_M.poison];
+    [RETFsleep setIntValue:UC[clickIndex].R_M.sleep];
+    [RETFcharm setIntValue:UC[clickIndex].R_M.charm];
+    [RETFsilent setIntValue:UC[clickIndex].R_M.silent];
+        
+    }else{
+        [RETFblow setIntValue:LC[cil].R_M.blow];
+        [RETFslash setIntValue:LC[cil].R_M.slash];
+        [RETFstub setIntValue:LC[cil].R_M.stub];
+        [RETFarrow setIntValue:LC[cil].R_M.arrow];
+        [RETFgun setIntValue:LC[cil].R_M.gun];
+        [RETFshell setIntValue:LC[cil].R_M.shell];
+        
+        [RETFflame setIntValue:LC[cil].R_M.flame];
+        [RETFcold setIntValue:LC[cil].R_M.cold];
+        [RETFelectoric setIntValue:LC[cil].R_M.electoric];
+        [RETFair setIntValue:LC[cil].R_M.air];
+        [RETFwater setIntValue:LC[cil].R_M.water];
+        [RETFgas setIntValue:LC[cil].R_M.gas];
+        [RETFholy setIntValue:LC[cil].R_M.holy];
+        [RETFdark setIntValue:LC[cil].R_M.dark];
+        [RETFexplosion setIntValue:LC[cil].R_M.explosion];
+        [RETFblood setIntValue:LC[cil].R_M.blood];
+        
+        [RETFparalysis setIntValue:LC[cil].R_M.paralysis];
+        [RETFconfusion setIntValue:LC[cil].R_M.confusion];
+        [RETFpoison setIntValue:LC[cil].R_M.poison];
+        [RETFsleep setIntValue:LC[cil].R_M.sleep];
+        [RETFcharm setIntValue:LC[cil].R_M.charm];
+        [RETFsilent setIntValue:LC[cil].R_M.silent];
+    
+    }
+    
+    windowPoint.x = [UCLDetailPanel frame].origin.x + 150;
+    windowPoint.y = [UCLDetailPanel frame].origin.y;
+    [UCLPanelRegist setFrameOrigin:windowPoint];
+    [UCLPanelRegist makeKeyAndOrderFront:nil];
+}
+
+
+-(IBAction)skillListBtnSubmitUCL:(id)sender{
+    [self willChangeValueForKey:@"skillListMA"];
+    [skillListMA removeAllObjects];
+    [self didChangeValueForKey:@"skillListMA"];
+    [UCLPanelSkill close];
+}
+-(IBAction)attackListBtnSubmitlUCL:(id)sender{
+    
+    if(EQmodeFlag){
+        [self saveDataALEQ];
+        
+        [UCLPanelAttack close];
+        return;
+    }
+    
+    if(!loadChipSideFlag){
+        [self saveDataAL];
+    }else{
+        [self saveDataAL2];
+    }
+    [UCLPanelAttack close];
+}
+-(IBAction)registListBtnlSubmitUCL:(id)sender{
+    
+    
+    if(!loadChipSideFlag){
+    UC[clickIndex].R_M.blow = [RETFblow intValue];
+    UC[clickIndex].R_M.slash = [RETFslash intValue];
+    UC[clickIndex].R_M.stub = [RETFstub intValue];
+    UC[clickIndex].R_M.arrow = [RETFarrow intValue];
+    UC[clickIndex].R_M.gun = [RETFgun intValue];
+    UC[clickIndex].R_M.shell = [RETFshell intValue];
+    
+    UC[clickIndex].R_M.flame = [RETFflame intValue];
+    UC[clickIndex].R_M.cold = [RETFcold intValue];
+    UC[clickIndex].R_M.electoric = [RETFelectoric intValue];
+    UC[clickIndex].R_M.air = [RETFair intValue];
+    UC[clickIndex].R_M.water = [RETFwater intValue];
+    UC[clickIndex].R_M.gas = [RETFgas intValue];
+    UC[clickIndex].R_M.holy = [RETFholy intValue];
+    UC[clickIndex].R_M.dark = [RETFdark intValue];
+    UC[clickIndex].R_M.explosion = [RETFexplosion intValue];
+    UC[clickIndex].R_M.blood = [RETFblood intValue];
+    
+    UC[clickIndex].R_M.paralysis = [RETFparalysis intValue];
+    UC[clickIndex].R_M.confusion = [RETFconfusion intValue];
+    UC[clickIndex].R_M.poison = [RETFpoison intValue];
+    UC[clickIndex].R_M.sleep = [RETFsleep intValue];
+    UC[clickIndex].R_M.charm = [RETFcharm intValue];
+    UC[clickIndex].R_M.silent = [RETFsilent intValue];
+    
+    UC[clickIndex].R_C = UC[clickIndex].R_M;
+    }else{
+        LC[cil].R_M.blow = [RETFblow intValue];
+        LC[cil].R_M.slash = [RETFslash intValue];
+        LC[cil].R_M.stub = [RETFstub intValue];
+        LC[cil].R_M.arrow = [RETFarrow intValue];
+        LC[cil].R_M.gun = [RETFgun intValue];
+        LC[cil].R_M.shell = [RETFshell intValue];
+        
+        LC[cil].R_M.flame = [RETFflame intValue];
+        LC[cil].R_M.cold = [RETFcold intValue];
+        LC[cil].R_M.electoric = [RETFelectoric intValue];
+        LC[cil].R_M.air = [RETFair intValue];
+        LC[cil].R_M.water = [RETFwater intValue];
+        LC[cil].R_M.gas = [RETFgas intValue];
+        LC[cil].R_M.holy = [RETFholy intValue];
+        LC[cil].R_M.dark = [RETFdark intValue];
+        LC[cil].R_M.explosion = [RETFexplosion intValue];
+        LC[cil].R_M.blood = [RETFblood intValue];
+        
+        LC[cil].R_M.paralysis = [RETFparalysis intValue];
+        LC[cil].R_M.confusion = [RETFconfusion intValue];
+        LC[cil].R_M.poison = [RETFpoison intValue];
+        LC[cil].R_M.sleep = [RETFsleep intValue];
+        LC[cil].R_M.charm = [RETFcharm intValue];
+        LC[cil].R_M.silent = [RETFsilent intValue];
+        
+        LC[cil].R_C = LC[cil].R_M;
+    }
+    
+    
+    [UCLPanelRegist close];
+}
+
+-(IBAction)insertSkillUCL:(id)sender{
+
+}
+-(IBAction)removeSkillUCL:(id)sender{
+
+}
+
+-(IBAction)mobileUCL:(id)sender{
+
+}
+-(IBAction)skillUCL:(id)sender{
+
+}
+-(IBAction)equiplUCL:(id)sender{
+
+}
+
+
+-(IBAction)UCLPanelEquipListSubmitBtn:(id)sender{
+    [UCLPanelEquipList close];
+}
+-(IBAction)UCLPanelSkillListSubmitBtn:(id)sender{
+    [UCLPanelSkillList close];
+}
+
+-(IBAction)UCLPanelEquipListOpenBtn:(id)sender{
+    windowPoint.x = [UCLPanel frame].origin.x + 50;
+    windowPoint.y = [UCLPanel frame].origin.y;
+    [UCLPanelEquipList setFrameOrigin:windowPoint];
+    [UCLPanelEquipList makeKeyAndOrderFront:nil];
+}
+-(IBAction)UCLPanelSkillListOpenBtn:(id)sender{
+    windowPoint.x = [UCLPanel frame].origin.x + 50;
+    windowPoint.y = [UCLPanel frame].origin.y;
+    [UCLPanelSkillList setFrameOrigin:windowPoint];
+    [UCLPanelSkillList makeKeyAndOrderFront:nil];
+}
+
+-(IBAction)insertAttackList:(id)sender{
+    
+    if(EQmodeFlag){
+    
+        if(1){
+            NSMutableDictionary *dict = [NSMutableDictionary new];
+            [dict setValue:[NSString stringWithFormat:@"新技"] forKey:@"name"];
+            
+            ATTACK *Atop = EQ[clickIndexEQ].A;
+            
+            if(clickedRowAT < 0){
+                EQ[clickIndexEQ].A = Atop;
+                if([attackListMA count] == 0){
+                    EQ[clickIndexEQ].A = (ATTACK*)malloc(sizeof(ATTACK));
+                    //INIT 処理
+                    
+                    EQ[clickIndexEQ].A = [self initAttackData:EQ[clickIndexEQ].A];
+                    Atop = EQ[clickIndexEQ].A;
+                }else{
+                    while(EQ[clickIndexEQ].A->next) EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
+                    EQ[clickIndexEQ].A->next = (ATTACK*)malloc(sizeof(ATTACK));
+                    EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
+                    //INIT 処理
+                    EQ[clickIndexEQ].A = [self initAttackData:EQ[clickIndexEQ].A];
+                    EQ[clickIndexEQ].A = Atop;
+                }
+                
+                [dict setValue:[NSString stringWithFormat:@"%@", EQ[clickIndexEQ].A->name] forKey:@"name"];
+                
+                [self willChangeValueForKey:@"attackListMA"];
+                [attackListMA insertObject:dict atIndex:[attackListMA count]];
+                [self didChangeValueForKey:@"attackListMA"];
+                [attackListAC setSelectionIndex:999];
+                EQ[clickIndexEQ].attackListNum++;
+                clickedRowAT = -1;
+            }else{
+                EQ[clickIndexEQ].A = Atop;
+                if([attackListMA count] == 0){
+                    EQ[clickIndexEQ].A = (ATTACK*)malloc(sizeof(ATTACK));
+                    //INIT 処理
+                    EQ[clickIndexEQ].A = [self initAttackData:EQ[clickIndexEQ].A];
+                    Atop = EQ[clickIndexEQ].A;
+                }else if(clickedRowAT > 0){
+                    for (int i = 0; i < clickedRowAT-1;i++)
+                        EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
+                    ATTACK *tmp = (ATTACK*)malloc(sizeof(ATTACK));
+                    *tmp = *EQ[clickIndexEQ].A->next;
+                    EQ[clickIndexEQ].A->next = (ATTACK*)malloc(sizeof(ATTACK));
+                    EQ[clickIndexEQ].A->next->next = tmp;
+                    EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
+                    //INIT 処理
+                    EQ[clickIndexEQ].A = [self initAttackData:EQ[clickIndexEQ].A];
+                    EQ[clickIndexEQ].A = Atop;
+                }else{
+                    ATTACK *tmp = (ATTACK*)malloc(sizeof(ATTACK));
+                    tmp->next = EQ[clickIndexEQ].A;
+                    // INIT 処理[self InitAttack:tmp];
+                    tmp = [self initAttackData:tmp];
+                    Atop = tmp;
+                    EQ[clickIndexEQ].A = Atop;
+                }
+                
+                [dict setValue:[NSString stringWithFormat:@"%@", EQ[clickIndexEQ].A->name] forKey:@"name"];
+                
+                [self willChangeValueForKey:@"attackListMA"];
+                [attackListMA insertObject:dict atIndex:clickedRowAT];
+                [self didChangeValueForKey:@"attackListMA"];
+                [attackListAC setSelectionIndex:clickedRowAT];
+                EQ[clickIndexEQ].attackListNum++;
+            }
+            
+        }
+    
+        return;
+    }
+    
+    if(!loadChipSideFlag){
+    NSMutableDictionary *dict = [NSMutableDictionary new];
+    [dict setValue:[NSString stringWithFormat:@"新技"] forKey:@"name"];
+    
+    ATTACK *Atop = UC[clickIndex].A;
+    
+    if(clickedRowAT < 0){
+        UC[clickIndex].A = Atop;
+        if([attackListMA count] == 0){
+            UC[clickIndex].A = (ATTACK*)malloc(sizeof(ATTACK));
+            //INIT 処理
+            
+            UC[clickIndex].A = [self initAttackData:UC[clickIndex].A];
+            
+            Atop = UC[clickIndex].A;
+        }else{
+            while(UC[clickIndex].A->next) UC[clickIndex].A = UC[clickIndex].A->next;
+            UC[clickIndex].A->next = (ATTACK*)malloc(sizeof(ATTACK));
+            UC[clickIndex].A = UC[clickIndex].A->next;
+            //INIT 処理
+            UC[clickIndex].A = [self initAttackData:UC[clickIndex].A];
+            
+            UC[clickIndex].A = Atop;
+        }
+        
+        [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].A->name] forKey:@"name"];
+        
+        [self willChangeValueForKey:@"attackListMA"];
+        [attackListMA insertObject:dict atIndex:[attackListMA count]];
+        [self didChangeValueForKey:@"attackListMA"];
+        [attackListAC setSelectionIndex:999];
+        UC[clickIndex].attackListNum++;
+        clickedRowAT = -1;
+    }else{
+        UC[clickIndex].A = Atop;
+        if([attackListMA count] == 0){
+            UC[clickIndex].A = (ATTACK*)malloc(sizeof(ATTACK));
+            //INIT 処理
+            UC[clickIndex].A = [self initAttackData:UC[clickIndex].A];
+            
+            Atop = UC[clickIndex].A;
+        }else if(clickedRowAT > 0){
+            for (int i = 0; i < clickedRowAT-1;i++)
+                UC[clickIndex].A = UC[clickIndex].A->next;
+            ATTACK *tmp = (ATTACK*)malloc(sizeof(ATTACK));
+            *tmp = *UC[clickIndex].A->next;
+            UC[clickIndex].A->next = (ATTACK*)malloc(sizeof(ATTACK));
+            UC[clickIndex].A->next->next = tmp;
+            UC[clickIndex].A = UC[clickIndex].A->next;
+            //INIT 処理
+            [self initAttackData:UC[clickIndex].A];
+            UC[clickIndex].A = Atop;
+        }else{
+            ATTACK *tmp = (ATTACK*)malloc(sizeof(ATTACK));
+            tmp->next = UC[clickIndex].A;
+            // INIT 処理[self InitAttack:tmp];
+            tmp = [self initAttackData:tmp];
+            Atop = tmp;
+            UC[clickIndex].A = Atop;
+        }
+        
+        [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].A->name] forKey:@"name"];
+        
+        [self willChangeValueForKey:@"attackListMA"];
+        [attackListMA insertObject:dict atIndex:clickedRowAT];
+        [self didChangeValueForKey:@"attackListMA"];
+        [attackListAC setSelectionIndex:clickedRowAT];
+        UC[clickIndex].attackListNum++;
+    }
+
+    }else{
+        NSMutableDictionary *dict = [NSMutableDictionary new];
+        [dict setValue:[NSString stringWithFormat:@"新技"] forKey:@"name"];
+        
+        ATTACK *Atop = LC[cil].A;
+        
+        if(clickedRowAT < 0){
+            LC[cil].A = Atop;
+            if([attackListMA count] == 0){
+                LC[cil].A = (ATTACK*)malloc(sizeof(ATTACK));
+                //INIT 処理
+                
+                LC[cil].A->name = [@"新技" retain];
+                LC[cil].A->cmd = [@"A" retain];
+                LC[cil].A->rangeA = 1;
+                LC[cil].A->rangeB = 1;
+                LC[cil].A->extent = 0;
+                LC[cil].A->successRate = 100;
+                LC[cil].A->costType = 0;
+                LC[cil].A->type = 0;
+                LC[cil].A = [self initAfuckingSTATUS2:LC[cil].A];
+                LC[cil].A->D = NULL;
+                LC[cil].A->E = NULL;
+                LC[cil].A->next = NULL;
+                Atop = LC[cil].A;
+            }else{
+                while(LC[cil].A->next) LC[cil].A = LC[cil].A->next;
+                LC[cil].A->next = (ATTACK*)malloc(sizeof(ATTACK));
+                LC[cil].A = LC[cil].A->next;
+                //INIT 処理
+                LC[cil].A->name = [@"新技" retain];
+                LC[cil].A->cmd = [@"A" retain];
+                LC[cil].A->rangeA = 1;
+                LC[cil].A->rangeB = 1;
+                LC[cil].A->extent = 0;
+                LC[cil].A->successRate = 100;
+                LC[cil].A->costType = 0;
+                LC[cil].A->type = 0;
+                LC[cil].A = [self initAfuckingSTATUS2:LC[cil].A];
+                LC[cil].A->D = NULL;
+                LC[cil].A->E = NULL;
+                LC[cil].A->next = NULL;
+                LC[cil].A = Atop;
+            }
+            
+            [dict setValue:[NSString stringWithFormat:@"%@", LC[cil].A->name] forKey:@"name"];
+            
+            [self willChangeValueForKey:@"attackListMA"];
+            [attackListMA insertObject:dict atIndex:[attackListMA count]];
+            [self didChangeValueForKey:@"attackListMA"];
+            [attackListAC setSelectionIndex:999];
+            LC[cil].attackListNum++;
+            clickedRowAT = -1;
+        }else{
+            LC[cil].A = Atop;
+            if([attackListMA count] == 0){
+                LC[cil].A = (ATTACK*)malloc(sizeof(ATTACK));
+                //INIT 処理
+                LC[cil].A->name = [@"新技" retain];
+                LC[cil].A->cmd = [@"A" retain];
+                LC[cil].A->rangeA = 1;
+                LC[cil].A->rangeB = 1;
+                LC[cil].A->extent = 0;
+                LC[cil].A->successRate = 100;
+                LC[cil].A->costType = 0;
+                LC[cil].A->type = 0;
+                LC[cil].A = [self initAfuckingSTATUS2:LC[cil].A];
+                LC[cil].A->D = NULL;
+                LC[cil].A->E = NULL;
+                LC[cil].A->next = NULL;
+                Atop = LC[cil].A;
+            }else if(clickedRowAT > 0){
+                for (int i = 0; i < clickedRowAT-1;i++)
+                    LC[cil].A = LC[cil].A->next;
+                ATTACK *tmp = (ATTACK*)malloc(sizeof(ATTACK));
+                *tmp = *LC[cil].A->next;
+                LC[cil].A->next = (ATTACK*)malloc(sizeof(ATTACK));
+                LC[cil].A->next->next = tmp;
+                LC[cil].A = LC[cil].A->next;
+                //INIT 処理
+                LC[cil].A->name = [@"新技" retain];
+                LC[cil].A->cmd = [@"A" retain];
+                LC[cil].A->rangeA = 1;
+                LC[cil].A->rangeB = 1;
+                LC[cil].A->extent = 0;
+                LC[cil].A->successRate = 100;
+                LC[cil].A->costType = 0;
+                LC[cil].A->type = 0;
+                LC[cil].A = [self initAfuckingSTATUS2:LC[cil].A];
+                LC[cil].A->D = NULL;
+                LC[cil].A->E = NULL;
+                LC[cil].A = Atop;
+            }else{
+                ATTACK *tmp = (ATTACK*)malloc(sizeof(ATTACK));
+                tmp->next = LC[cil].A;
+                // INIT 処理[self InitAttack:tmp];
+                tmp->name = [@"新技" retain];
+                tmp->cmd = [@"A" retain];
+                tmp->rangeA = 1;
+                tmp->rangeB = 1;
+                tmp->extent = 0;
+                tmp->successRate = 100;
+                tmp->costType = 0;
+                tmp->type = 0;
+                tmp = [self initAfuckingSTATUS2:tmp];
+                
+                tmp->D = NULL;
+                tmp->E = NULL;
+                Atop = tmp;
+                LC[cil].A = Atop;
+            }
+            
+            [dict setValue:[NSString stringWithFormat:@"%@", LC[cil].A->name] forKey:@"name"];
+            
+            [self willChangeValueForKey:@"attackListMA"];
+            [attackListMA insertObject:dict atIndex:clickedRowAT];
+            [self didChangeValueForKey:@"attackListMA"];
+            [attackListAC setSelectionIndex:clickedRowAT];
+            LC[cil].attackListNum++;
+    
+        }
+    }
+    
+}
+
+-(ATTACK*)initAttackData:(ATTACK*)A{
+
+
+    A->name = [@"新技" retain];
+    A->cmd = [@"A" retain];
+    A->msg = [@"" retain];
+    A->rangeA = 1;
+    A->rangeB = 1;
+    A->extent = 0;
+    A->type = 0;
+    A->costType = 0;
+    A->MP = 0;
+    A->pMP = 0;
+    A->hitCount = 1;
+    A->hitPercent = 0;
+    A->successRate = 100;
+    A->bullet = -1;
+    A->riku = 0;
+    A->sora = 0;
+    A->umi = 0;
+    A->chu = 0;
+    A->melee = 0;
+    A->P = 0;
+    A->vigor = 0;
+    A->cSupply = 0;
+    A->cMoney = 0;
+    A->cFood = 0;
+    A->dmgExtend = 0;
+    A->D = NULL;
+    A->E = NULL;
+    
+    return A;
+}
+
+-(ATTACK*)initAfuckingSTATUS2:(ATTACK*)A{
+
+    A->trig = 0;
+    A->type = 0;
+    A->melee = 0;
+    A->P = 0;
+    
+    A->rangeA = 1;
+    A->rangeB = 1;
+    A->extent = 0;
+    A->bullet = 0;
+    A->hitCount = 0;
+    A->successRate = 100;
+    A->vigor = 0;
+    A->hitPercent = 0;
+    
+    A->costType = 0;
+
+    A->EN = 0;
+    A->pEN = 0;
+
+    A->HP = 0;
+    A->pHP = 0;
+
+    A->cSupply = 0;
+    A->cFood = 0;
+    A->cMoney = 0;
+    
+    A->riku = 0;
+    A->umi = 0;
+    A->sora = 0;
+    A->dmgExtend = 0;
+    
+    A->cmd = @"A";
+    A->msg = @"";
+
+    
+    return A;
+}
+
+-(IBAction)removeAttackList:(id)sender{
+    
+    if(EQmodeFlag){
+    
+        ATTACK *Atop = EQ[clickIndexEQ].A;
+        
+        if(clickedRowAT == -1){
+            clickedRowAT = (int)[attackListMA count] - 1;
+        }
+        
+        if([attackListMA count] > 0){
+            
+            if(clickedRowAT == 0){
+                EQ[clickIndexEQ].A = Atop;
+                EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
+                Atop = EQ[clickIndexEQ].A;
+            }else if(clickedRowAT == [attackListMA count] - 1){
+                EQ[clickIndexEQ].A = Atop;
+                while(EQ[clickIndexEQ].A->next->next){
+                    EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
+                }
+                EQ[clickIndexEQ].A->next = NULL;
+            }else{
+                EQ[clickIndexEQ].A = Atop;
+                for (int i = 0; i < clickedRowAT - 1;i++)
+                    EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
+                EQ[clickIndexEQ].A->next = EQ[clickIndexEQ].A->next->next;
+            }
+            
+            [self willChangeValueForKey:@"attackListMA"];
+            [attackListMA removeObjectAtIndex:clickedRowAT];
+            [self didChangeValueForKey:@"attackListMA"];
+            [attackListAC setSelectionIndex:clickedRowAT-1];
+            if(clickedRowAT < 0) [attackListAC setSelectionIndex:[attackListMA count]-1];
+            if(clickedRowAT == 0) [attackListAC setSelectionIndex:0];
+            if(clickedRowAT > 0) clickedRowAT--;
+        }
+        EQ[clickIndexEQ].A = Atop;
+        EQ[clickIndexEQ].attackListNum--;
+      
+        
+        return;
+    }
+    
+    if(!loadChipSideFlag){
+    
+        ATTACK *Atop = UC[clickIndex].A;
+        
+        if(clickedRowAT == -1){
+            clickedRowAT = (int)[attackListMA count] - 1;
+        }
+        
+        if([attackListMA count] > 0){
+            
+            if(clickedRowAT == 0){
+                UC[clickIndex].A = Atop;
+                UC[clickIndex].A = UC[clickIndex].A->next;
+                Atop = UC[clickIndex].A;
+            }else if(clickedRowAT == [attackListMA count] - 1){
+                UC[clickIndex].A = Atop;
+                while(UC[clickIndex].A->next->next){
+                    UC[clickIndex].A = UC[clickIndex].A->next;
+                }
+                UC[clickIndex].A->next = NULL;
+            }else{
+                UC[clickIndex].A = Atop;
+                for (int i = 0; i < clickedRowAT - 1;i++)
+                    UC[clickIndex].A = UC[clickIndex].A->next;
+                UC[clickIndex].A->next = UC[clickIndex].A->next->next;
+            }
+            
+            [self willChangeValueForKey:@"attackListMA"];
+            [attackListMA removeObjectAtIndex:clickedRowAT];
+            [self didChangeValueForKey:@"attackListMA"];
+            [attackListAC setSelectionIndex:clickedRowAT-1];
+            if(clickedRowAT < 0) [attackListAC setSelectionIndex:[attackListMA count]-1];
+            if(clickedRowAT == 0) [attackListAC setSelectionIndex:0];
+            if(clickedRowAT > 0) clickedRowAT--;
+        }
+        UC[clickIndex].A = Atop;
+        UC[clickIndex].attackListNum--;
+    }else{
+        ATTACK *Atop = LC[cil].A;
+        
+        if(clickedRowAT == -1){
+            clickedRowAT = (int)[attackListMA count] - 1;
+        }
+        
+        if([attackListMA count] > 0){
+            
+            if(clickedRowAT == 0){
+                LC[cil].A = Atop;
+                LC[cil].A = LC[cil].A->next;
+                Atop = LC[cil].A;
+            }else if(clickedRowAT == [attackListMA count] - 1){
+                LC[cil].A = Atop;
+                while(LC[cil].A->next->next){
+                    LC[cil].A = LC[cil].A->next;
+                }
+                LC[cil].A->next = NULL;
+            }else{
+                LC[cil].A = Atop;
+                for (int i = 0; i < clickedRowAT - 1;i++)
+                    LC[cil].A = LC[cil].A->next;
+                LC[cil].A->next = LC[cil].A->next->next;
+            }
+            
+            [self willChangeValueForKey:@"attackListMA"];
+            [attackListMA removeObjectAtIndex:clickedRowAT];
+            [self didChangeValueForKey:@"attackListMA"];
+            [attackListAC setSelectionIndex:clickedRowAT-1];
+            if(clickedRowAT < 0) [attackListAC setSelectionIndex:[attackListMA count]-1];
+            if(clickedRowAT == 0) [attackListAC setSelectionIndex:0];
+            if(clickedRowAT > 0) clickedRowAT--;
+        }
+        LC[cil].A = Atop;
+        LC[cil].attackListNum--;
+    
+    
+    
+    }
+    
+}
+-(IBAction)insertComboList:(id)sender{
+
+}
+-(IBAction)removeComboList:(id)sender{
+    
+}
+
+-(IBAction)submitAttackList:(id)sender{
+    
+    if(EQmodeFlag){
+    
+        ATTACK *Atop = EQ[clickIndexEQ].A;
+        
+        
+        for(int i = 0;i < clickIndexAL;i++){
+            EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
+        }
+        
+        EQ[clickIndexEQ].A->name = [[ALTFname stringValue] retain];
+        EQ[clickIndexEQ].A->rangeA = [ALTFrangeA intValue];
+        EQ[clickIndexEQ].A->rangeB = [ALTFrangeB intValue];
+        EQ[clickIndexEQ].A->extent = [ALTFextend intValue];
+        
+        EQ[clickIndexEQ].A->trig = [ALTFtrigger intValue];
+        EQ[clickIndexEQ].A->melee = [ALTFmelee intValue];
+        EQ[clickIndexEQ].A->P = [ALTFpass intValue];
+        EQ[clickIndexEQ].A->dmgExtend = [ALTFdmgExtent intValue];
+        EQ[clickIndexEQ].A->type = (int)[ALPUBwType indexOfSelectedItem];
+        
+        if([ALPUBcost indexOfSelectedItem] == 0){
+            EQ[clickIndexEQ].A->costType = 0;
+            EQ[clickIndexEQ].A->MP = [ALTFcost intValue];
+            EQ[clickIndexEQ].A->pMP = [ALTFcostP intValue];
+            EQ[clickIndexEQ].A->AP = 0;
+            EQ[clickIndexEQ].A->pAP = 0;
+            EQ[clickIndexEQ].A->HP = 0;
+            EQ[clickIndexEQ].A->pHP = 0;
+        }
+        if([ALPUBcost indexOfSelectedItem] == 1){
+            EQ[clickIndexEQ].A->costType = 1;
+            EQ[clickIndexEQ].A->MP = 0;
+            EQ[clickIndexEQ].A->pMP = 0;
+            EQ[clickIndexEQ].A->HP = 0;
+            EQ[clickIndexEQ].A->pHP = 0;
+            EQ[clickIndexEQ].A->AP = [ALTFcost intValue];
+            EQ[clickIndexEQ].A->pAP = [ALTFcostP intValue];
+        }
+        if([ALPUBcost indexOfSelectedItem] == 2){
+            EQ[clickIndexEQ].A->costType = 2;
+            EQ[clickIndexEQ].A->MP = 0;
+            EQ[clickIndexEQ].A->pMP = 0;
+            EQ[clickIndexEQ].A->AP = 0;
+            EQ[clickIndexEQ].A->pAP = 0;
+            EQ[clickIndexEQ].A->HP = [ALTFcost intValue];
+            EQ[clickIndexEQ].A->pHP = [ALTFcostP intValue];
+        }
+        
+        EQ[clickIndexEQ].A->bullet = [ALTFbullet intValue];
+        EQ[clickIndexEQ].A->hitCount = [ALTFhitCount intValue];
+        EQ[clickIndexEQ].A->successRate = [ALTFsuccessRate intValue];
+        EQ[clickIndexEQ].A->vigor = [ALTFvigor intValue];
+        EQ[clickIndexEQ].A->hitPercent = [ALTFhitRate intValue];
+        
+        EQ[clickIndexEQ].A->riku = (int)[ALPUBriku indexOfSelectedItem];
+        EQ[clickIndexEQ].A->chu = (int)[ALPUBchu indexOfSelectedItem];
+        EQ[clickIndexEQ].A->umi = (int)[ALPUBumi indexOfSelectedItem];
+        EQ[clickIndexEQ].A->sora = (int)[ALPUBsora indexOfSelectedItem];
+        
+        EQ[clickIndexEQ].A->cSupply = [ALTFcSupply intValue];
+        EQ[clickIndexEQ].A->cFood = [ALTFcFood intValue];
+        EQ[clickIndexEQ].A->cMoney = [ALTFcMoney intValue];
+        
+        EQ[clickIndexEQ].A->cmd = [[ALTFcmd stringValue] retain];
+        
+        EQ[clickIndexEQ].A->msg = [[ALTFmsg stringValue] retain];
+        
+        
+        EQ[clickIndexEQ].A = Atop;
+        
+        [self initAttackListEQ];
+        [self saveDataALEQ];
+        [attackListAC setSelectionIndex:clickIndexAL];
+
+        [UCLPanelAttackDetail close];
+        return;
+    }
+    
+    if(!loadChipSideFlag){
+        ATTACK *Atop = UC[clickIndex].A;
+    
+    
+        for(int i = 0;i < clickIndexAL;i++){
+            UC[clickIndex].A = UC[clickIndex].A->next;
+        }
+    
+        UC[clickIndex].A->name = [[ALTFname stringValue] retain];
+        UC[clickIndex].A->rangeA = [ALTFrangeA intValue];
+        UC[clickIndex].A->rangeB = [ALTFrangeB intValue];
+        UC[clickIndex].A->extent = [ALTFextend intValue];
+    
+        UC[clickIndex].A->trig = [ALTFtrigger intValue];
+        UC[clickIndex].A->melee = [ALTFmelee intValue];
+        UC[clickIndex].A->P = [ALTFpass intValue];
+        UC[clickIndex].A->dmgExtend = [ALTFdmgExtent intValue];
+        UC[clickIndex].A->type = (int)[ALPUBwType indexOfSelectedItem];
+    
+        if([ALPUBcost indexOfSelectedItem] == 0){
+            UC[clickIndex].A->costType = 0;
+            UC[clickIndex].A->MP = [ALTFcost intValue];
+            UC[clickIndex].A->pMP = [ALTFcostP intValue];
+            UC[clickIndex].A->AP = 0;
+            UC[clickIndex].A->pAP = 0;
+            UC[clickIndex].A->HP = 0;
+            UC[clickIndex].A->pHP = 0;
+        }
+        if([ALPUBcost indexOfSelectedItem] == 1){
+            UC[clickIndex].A->costType = 1;
+            UC[clickIndex].A->MP = 0;
+            UC[clickIndex].A->pMP = 0;
+            UC[clickIndex].A->HP = 0;
+            UC[clickIndex].A->pHP = 0;
+            UC[clickIndex].A->AP = [ALTFcost intValue];
+            UC[clickIndex].A->pAP = [ALTFcostP intValue];
+        }
+        if([ALPUBcost indexOfSelectedItem] == 2){
+            UC[clickIndex].A->costType = 2;
+            UC[clickIndex].A->MP = 0;
+            UC[clickIndex].A->pMP = 0;
+            UC[clickIndex].A->AP = 0;
+            UC[clickIndex].A->pAP = 0;
+            UC[clickIndex].A->HP = [ALTFcost intValue];
+            UC[clickIndex].A->pHP = [ALTFcostP intValue];
+        }
+    
+        UC[clickIndex].A->bullet = [ALTFbullet intValue];
+        UC[clickIndex].A->hitCount = [ALTFhitCount intValue];
+        UC[clickIndex].A->successRate = [ALTFsuccessRate intValue];
+        UC[clickIndex].A->vigor = [ALTFvigor intValue];
+        UC[clickIndex].A->hitPercent = [ALTFhitRate intValue];
+    
+        UC[clickIndex].A->riku = (int)[ALPUBriku indexOfSelectedItem];
+        UC[clickIndex].A->chu = (int)[ALPUBchu indexOfSelectedItem];
+        UC[clickIndex].A->umi = (int)[ALPUBumi indexOfSelectedItem];
+        UC[clickIndex].A->sora = (int)[ALPUBsora indexOfSelectedItem];
+    
+        UC[clickIndex].A->cSupply = [ALTFcSupply intValue];
+        UC[clickIndex].A->cFood = [ALTFcFood intValue];
+        UC[clickIndex].A->cMoney = [ALTFcMoney intValue];
+    
+        UC[clickIndex].A->cmd = [[ALTFcmd stringValue] retain];
+    
+        UC[clickIndex].A->msg = [[ALTFmsg stringValue] retain];
+    
+
+        UC[clickIndex].A = Atop;
+    
+        [self initAttackList];
+        [self saveDataAL];
+        [attackListAC setSelectionIndex:clickIndexAL];
+    }else{
+    
+        ATTACK *Atop = LC[cil].A;
+        
+        
+        for(int i = 0;i < clickIndexAL;i++){
+            LC[cil].A = LC[cil].A->next;
+        }
+        
+        LC[cil].A->name = [[ALTFname stringValue] retain];
+        LC[cil].A->rangeA = [ALTFrangeA intValue];
+        LC[cil].A->rangeB = [ALTFrangeB intValue];
+        LC[cil].A->extent = [ALTFextend intValue];
+        
+        LC[cil].A->trig = [ALTFtrigger intValue];
+        LC[cil].A->melee = [ALTFmelee intValue];
+        LC[cil].A->P = [ALTFpass intValue];
+        LC[cil].A->dmgExtend = [ALTFdmgExtent intValue];
+        LC[cil].A->type = (int)[ALPUBwType indexOfSelectedItem];
+        
+        if([ALPUBcost indexOfSelectedItem] == 0){
+            LC[cil].A->costType = 0;
+            LC[cil].A->EN = [ALTFcost intValue];
+            LC[cil].A->pEN = [ALTFcostP intValue];
+            LC[cil].A->HP = 0;
+            LC[cil].A->pHP = 0;
+        }
+        if([ALPUBcost indexOfSelectedItem] == 1){
+            LC[cil].A->costType = 1;
+            LC[cil].A->EN = 0;
+            LC[cil].A->pEN = 0;
+            UC[clickIndex].A->HP = [ALTFcost intValue];
+            UC[clickIndex].A->pHP = [ALTFcostP intValue];
+
+        }
+        
+        LC[cil].A->bullet = [ALTFbullet intValue];
+        LC[cil].A->hitCount = [ALTFhitCount intValue];
+        LC[cil].A->successRate = [ALTFsuccessRate intValue];
+        LC[cil].A->vigor = [ALTFvigor intValue];
+        LC[cil].A->hitPercent = [ALTFhitRate intValue];
+        
+        LC[cil].A->riku = (int)[ALPUBriku indexOfSelectedItem];
+        LC[cil].A->chu = (int)[ALPUBchu indexOfSelectedItem];
+        LC[cil].A->umi = (int)[ALPUBumi indexOfSelectedItem];
+        LC[cil].A->sora = (int)[ALPUBsora indexOfSelectedItem];
+        
+        LC[cil].A->cSupply = [ALTFcSupply intValue];
+        LC[cil].A->cFood = [ALTFcFood intValue];
+        LC[cil].A->cMoney = [ALTFcMoney intValue];
+        
+        LC[cil].A->cmd = [[ALTFcmd stringValue] retain];
+        
+        LC[cil].A->msg = [[ALTFmsg stringValue] retain];
+        
+        
+        LC[cil].A = Atop;
+        
+        [self initAttackList2];
+        [self saveDataAL2];
+        [attackListAC setSelectionIndex:clickIndexAL];
+    
+    
+    
+    
+    
+    
+    
+    }
+    
+    [UCLPanelAttackDetail close];
+}
+
+-(IBAction)insertDamageList:(id)sender{
+    
+    if(EQmodeFlag){
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+        if([ALPUBtype indexOfSelectedItem] == 0)
+            [dict setValue:[NSString stringWithFormat:@"攻%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
+        if([ALPUBtype indexOfSelectedItem] == 1)
+            [dict setValue:[NSString stringWithFormat:@"防%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
+        if([ALPUBtype indexOfSelectedItem] == 2)
+            [dict setValue:[NSString stringWithFormat:@"命%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
+        if([ALPUBtype indexOfSelectedItem] == 3)
+            [dict setValue:[NSString stringWithFormat:@"回%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
+        if([ALPUBtype indexOfSelectedItem] == 4)
+            [dict setValue:[NSString stringWithFormat:@"演%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
+        if([ALPUBtype indexOfSelectedItem] == 5)
+            [dict setValue:[NSString stringWithFormat:@"会%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
+        
+        NSString *str;
+        
+        if([ALPUBsort indexOfSelectedItem] == 0) str = [NSString stringWithFormat:@"ダ・"];
+        if([ALPUBsort indexOfSelectedItem] == 1) str = [NSString stringWithFormat:@"回・"];
+        if([ALPUBsort indexOfSelectedItem] == 2) str = [NSString stringWithFormat:@"復・"];
+        if([ALPUBsort indexOfSelectedItem] == 3) str = [NSString stringWithFormat:@"減・"];
+        if([ALPUBsort indexOfSelectedItem] == 4) str = [NSString stringWithFormat:@"増・"];
+        if([ALPUBsort indexOfSelectedItem] == 5) str = [NSString stringWithFormat:@"毒・"];
+        if([ALPUBsort indexOfSelectedItem] == 6) str = [NSString stringWithFormat:@"睡・"];
+        if([ALPUBsort indexOfSelectedItem] == 7) str = [NSString stringWithFormat:@"混・"];
+        if([ALPUBsort indexOfSelectedItem] == 8) str = [NSString stringWithFormat:@"麻・"];
+        if([ALPUBsort indexOfSelectedItem] == 9) str = [NSString stringWithFormat:@"沈・"];
+        if([ALPUBsort indexOfSelectedItem] == 10) str = [NSString stringWithFormat:@"魅・"];
+        
+        if([ALPUBseed indexOfSelectedItem] == 0) str = [str stringByAppendingFormat:@"打撃"];
+        if([ALPUBseed indexOfSelectedItem] == 1) str = [str stringByAppendingFormat:@"斬撃"];
+        if([ALPUBseed indexOfSelectedItem] == 2) str = [str stringByAppendingFormat:@"突き"];
+        if([ALPUBseed indexOfSelectedItem] == 3) str = [str stringByAppendingFormat:@"射手"];
+        if([ALPUBseed indexOfSelectedItem] == 4) str = [str stringByAppendingFormat:@"銃撃"];
+        if([ALPUBseed indexOfSelectedItem] == 5) str = [str stringByAppendingFormat:@"砲撃"];
+        if([ALPUBseed indexOfSelectedItem] == 6) str = [str stringByAppendingFormat:@"火炎"];
+        if([ALPUBseed indexOfSelectedItem] == 7) str = [str stringByAppendingFormat:@"冷気"];
+        if([ALPUBseed indexOfSelectedItem] == 8) str = [str stringByAppendingFormat:@"電撃"];
+        if([ALPUBseed indexOfSelectedItem] == 9) str = [str stringByAppendingFormat:@"風圧"];
+        if([ALPUBseed indexOfSelectedItem] == 10) str = [str stringByAppendingFormat:@"流水"];
+        if([ALPUBseed indexOfSelectedItem] == 11) str = [str stringByAppendingFormat:@"ガス"];
+        if([ALPUBseed indexOfSelectedItem] == 12) str = [str stringByAppendingFormat:@"神聖"];
+        if([ALPUBseed indexOfSelectedItem] == 13) str = [str stringByAppendingFormat:@"暗黒"];
+        if([ALPUBseed indexOfSelectedItem] == 14) str = [str stringByAppendingFormat:@"爆撃"];
+        if([ALPUBseed indexOfSelectedItem] == 15) str = [str stringByAppendingFormat:@"流血"];
+        
+        
+        ATTACK *aTop = EQ[clickIndexEQ].A;
+        for(int k = 0;k < clickIndexAL;k++) {
+            EQ[clickIndexEQ].A = EQ[clickIndex].A->next;
+        }
+        
+        DAMAGE *Dtop = EQ[clickIndexEQ].A->D;
+        if(!EQ[clickIndexEQ].A->D){
+            EQ[clickIndexEQ].A->D = calloc(1, sizeof(DAMAGE));
+            Dtop = EQ[clickIndexEQ].A->D;
+        }
+        while(EQ[clickIndexEQ].A->D->next){
+            EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next;
+        }
+        
+        if([damageListMA count] >= 1){
+            EQ[clickIndexEQ].A->D->next = calloc(1, sizeof(DAMAGE));
+            EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next;
+        }
+        EQ[clickIndexEQ].A->D->next = NULL;//Dtop;
+        EQ[clickIndexEQ].A->D->count = [ALTFdmgCount intValue];
+        EQ[clickIndexEQ].A->D->pCount = [ALTFdmgRate intValue];
+        EQ[clickIndexEQ].A->D->type = (int)[ALPUBtype indexOfSelectedItem];
+        EQ[clickIndexEQ].A->D->seed = (int)[ALPUBseed indexOfSelectedItem];
+        EQ[clickIndexEQ].A->D->sort = (int)[ALPUBsort indexOfSelectedItem];
+        EQ[clickIndexEQ].A->D->beam = [ALTFbeam intValue];
+        EQ[clickIndexEQ].A->D->absolute = [ALTFabsolute intValue];
+        EQ[clickIndexEQ].A->D->noSizeFix = [ALTFnoSizeFix intValue];
+        EQ[clickIndexEQ].A->D->continium = [ALTFcontinuum intValue];
+        
+        [self setTotalDamageEQ:(int)clickIndex row:clickedRowAT];
+        
+        [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"type"];
+        [self willChangeValueForKey:@"damageListMA"];
+        [damageListMA addObject:dict];
+        [self didChangeValueForKey:@"damageListMA"];
+        [damageListAC setSelectionIndex:[damageListTV selectedRow]];
+        
+        EQ[clickIndexEQ].A->D = Dtop;
+        
+        EQ[clickIndexEQ].A = aTop;
+    
+    
+        return;
+    }
+    
+    
+    if(!loadChipSideFlag){
+    NSMutableDictionary* dict = [NSMutableDictionary new];
+    
+    if([ALPUBtype indexOfSelectedItem] == 0)
+        [dict setValue:[NSString stringWithFormat:@"攻%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
+    if([ALPUBtype indexOfSelectedItem] == 1)
+        [dict setValue:[NSString stringWithFormat:@"防%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
+    if([ALPUBtype indexOfSelectedItem] == 2)
+        [dict setValue:[NSString stringWithFormat:@"命%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
+    if([ALPUBtype indexOfSelectedItem] == 3)
+        [dict setValue:[NSString stringWithFormat:@"回%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
+    if([ALPUBtype indexOfSelectedItem] == 4)
+        [dict setValue:[NSString stringWithFormat:@"演%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
+    if([ALPUBtype indexOfSelectedItem] == 5)
+        [dict setValue:[NSString stringWithFormat:@"会%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
+    
+    NSString *str;
+    
+    if([ALPUBsort indexOfSelectedItem] == 0) str = [NSString stringWithFormat:@"ダ・"];
+    if([ALPUBsort indexOfSelectedItem] == 1) str = [NSString stringWithFormat:@"回・"];
+    if([ALPUBsort indexOfSelectedItem] == 2) str = [NSString stringWithFormat:@"復・"];
+    if([ALPUBsort indexOfSelectedItem] == 3) str = [NSString stringWithFormat:@"減・"];
+    if([ALPUBsort indexOfSelectedItem] == 4) str = [NSString stringWithFormat:@"増・"];
+    if([ALPUBsort indexOfSelectedItem] == 5) str = [NSString stringWithFormat:@"毒・"];
+    if([ALPUBsort indexOfSelectedItem] == 6) str = [NSString stringWithFormat:@"睡・"];
+    if([ALPUBsort indexOfSelectedItem] == 7) str = [NSString stringWithFormat:@"混・"];
+    if([ALPUBsort indexOfSelectedItem] == 8) str = [NSString stringWithFormat:@"麻・"];
+    if([ALPUBsort indexOfSelectedItem] == 9) str = [NSString stringWithFormat:@"沈・"];
+    if([ALPUBsort indexOfSelectedItem] == 10) str = [NSString stringWithFormat:@"魅・"];
+    
+    if([ALPUBseed indexOfSelectedItem] == 0) str = [str stringByAppendingFormat:@"打撃"];
+    if([ALPUBseed indexOfSelectedItem] == 1) str = [str stringByAppendingFormat:@"斬撃"];
+    if([ALPUBseed indexOfSelectedItem] == 2) str = [str stringByAppendingFormat:@"突き"];
+    if([ALPUBseed indexOfSelectedItem] == 3) str = [str stringByAppendingFormat:@"射手"];
+    if([ALPUBseed indexOfSelectedItem] == 4) str = [str stringByAppendingFormat:@"銃撃"];
+    if([ALPUBseed indexOfSelectedItem] == 5) str = [str stringByAppendingFormat:@"砲撃"];
+    if([ALPUBseed indexOfSelectedItem] == 6) str = [str stringByAppendingFormat:@"火炎"];
+    if([ALPUBseed indexOfSelectedItem] == 7) str = [str stringByAppendingFormat:@"冷気"];
+    if([ALPUBseed indexOfSelectedItem] == 8) str = [str stringByAppendingFormat:@"電撃"];
+    if([ALPUBseed indexOfSelectedItem] == 9) str = [str stringByAppendingFormat:@"風圧"];
+    if([ALPUBseed indexOfSelectedItem] == 10) str = [str stringByAppendingFormat:@"流水"];
+    if([ALPUBseed indexOfSelectedItem] == 11) str = [str stringByAppendingFormat:@"ガス"];
+    if([ALPUBseed indexOfSelectedItem] == 12) str = [str stringByAppendingFormat:@"神聖"];
+    if([ALPUBseed indexOfSelectedItem] == 13) str = [str stringByAppendingFormat:@"暗黒"];
+    if([ALPUBseed indexOfSelectedItem] == 14) str = [str stringByAppendingFormat:@"爆撃"];
+    if([ALPUBseed indexOfSelectedItem] == 15) str = [str stringByAppendingFormat:@"流血"];
+    
+    
+    ATTACK *aTop = UC[clickIndex].A;
+    for(int k = 0;k < clickIndexAL;k++) {
+        UC[clickIndex].A = UC[clickIndex].A->next;
+    }
+    
+    DAMAGE *Dtop = UC[clickIndex].A->D;
+    if(!UC[clickIndex].A->D){
+        UC[clickIndex].A->D = calloc(1, sizeof(DAMAGE));
+        Dtop = UC[clickIndex].A->D;
+    }
+    while(UC[clickIndex].A->D->next){
+        UC[clickIndex].A->D = UC[clickIndex].A->D->next;
+    }
+    
+    if([damageListMA count] >= 1){
+        UC[clickIndex].A->D->next = calloc(1, sizeof(DAMAGE));
+        UC[clickIndex].A->D = UC[clickIndex].A->D->next;
+    }
+    UC[clickIndex].A->D->next = NULL;//Dtop;
+        UC[clickIndex].A->D->count = [ALTFdmgCount intValue];
+        UC[clickIndex].A->D->pCount = [ALTFdmgRate intValue];
+        UC[clickIndex].A->D->type = (int)[ALPUBtype indexOfSelectedItem];
+        UC[clickIndex].A->D->seed = (int)[ALPUBseed indexOfSelectedItem];
+        UC[clickIndex].A->D->sort = (int)[ALPUBsort indexOfSelectedItem];
+        UC[clickIndex].A->D->beam = [ALTFbeam intValue];
+        UC[clickIndex].A->D->absolute = [ALTFabsolute intValue];
+        UC[clickIndex].A->D->noSizeFix = [ALTFnoSizeFix intValue];
+        UC[clickIndex].A->D->continium = [ALTFcontinuum intValue];
+    
+    [self setTotalDamage:(int)clickIndex row:clickedRowAT];
+    
+    [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"type"];
+    [self willChangeValueForKey:@"damageListMA"];
+    [damageListMA addObject:dict];
+    [self didChangeValueForKey:@"damageListMA"];
+    [damageListAC setSelectionIndex:[damageListTV selectedRow]];
+    
+        UC[clickIndex].A->D = Dtop;
+    
+        UC[clickIndex].A = aTop;
+    }else{
+    
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        
+            [dict setValue:[NSString stringWithFormat:@"攻%d+%d%", [ALTFdmgCount intValue], [ALTFdmgRate intValue]] forKey:@"count"];
+        
+        NSString *str;
+        
+        if([ALPUBsort indexOfSelectedItem] == 0) str = [NSString stringWithFormat:@"ダ・"];
+        if([ALPUBsort indexOfSelectedItem] == 1) str = [NSString stringWithFormat:@"回・"];
+        if([ALPUBsort indexOfSelectedItem] == 2) str = [NSString stringWithFormat:@"復・"];
+        if([ALPUBsort indexOfSelectedItem] == 3) str = [NSString stringWithFormat:@"減・"];
+        if([ALPUBsort indexOfSelectedItem] == 4) str = [NSString stringWithFormat:@"増・"];
+        if([ALPUBsort indexOfSelectedItem] == 5) str = [NSString stringWithFormat:@"毒・"];
+        if([ALPUBsort indexOfSelectedItem] == 6) str = [NSString stringWithFormat:@"睡・"];
+        if([ALPUBsort indexOfSelectedItem] == 7) str = [NSString stringWithFormat:@"混・"];
+        if([ALPUBsort indexOfSelectedItem] == 8) str = [NSString stringWithFormat:@"麻・"];
+        if([ALPUBsort indexOfSelectedItem] == 9) str = [NSString stringWithFormat:@"沈・"];
+        if([ALPUBsort indexOfSelectedItem] == 10) str = [NSString stringWithFormat:@"魅・"];
+        
+        if([ALPUBseed indexOfSelectedItem] == 0) str = [str stringByAppendingFormat:@"打撃"];
+        if([ALPUBseed indexOfSelectedItem] == 1) str = [str stringByAppendingFormat:@"斬撃"];
+        if([ALPUBseed indexOfSelectedItem] == 2) str = [str stringByAppendingFormat:@"突き"];
+        if([ALPUBseed indexOfSelectedItem] == 3) str = [str stringByAppendingFormat:@"射手"];
+        if([ALPUBseed indexOfSelectedItem] == 4) str = [str stringByAppendingFormat:@"銃撃"];
+        if([ALPUBseed indexOfSelectedItem] == 5) str = [str stringByAppendingFormat:@"砲撃"];
+        if([ALPUBseed indexOfSelectedItem] == 6) str = [str stringByAppendingFormat:@"火炎"];
+        if([ALPUBseed indexOfSelectedItem] == 7) str = [str stringByAppendingFormat:@"冷気"];
+        if([ALPUBseed indexOfSelectedItem] == 8) str = [str stringByAppendingFormat:@"電撃"];
+        if([ALPUBseed indexOfSelectedItem] == 9) str = [str stringByAppendingFormat:@"風圧"];
+        if([ALPUBseed indexOfSelectedItem] == 10) str = [str stringByAppendingFormat:@"流水"];
+        if([ALPUBseed indexOfSelectedItem] == 11) str = [str stringByAppendingFormat:@"ガス"];
+        if([ALPUBseed indexOfSelectedItem] == 12) str = [str stringByAppendingFormat:@"神聖"];
+        if([ALPUBseed indexOfSelectedItem] == 13) str = [str stringByAppendingFormat:@"暗黒"];
+        if([ALPUBseed indexOfSelectedItem] == 14) str = [str stringByAppendingFormat:@"爆撃"];
+        if([ALPUBseed indexOfSelectedItem] == 15) str = [str stringByAppendingFormat:@"流血"];
+        
+        
+        ATTACK *aTop = LC[cil].A;
+        for(int k = 0;k < clickIndexAL;k++) {
+            LC[cil].A = LC[cil].A->next;
+        }
+        
+        DAMAGE *Dtop = LC[cil].A->D;
+        if(!LC[cil].A->D){
+            LC[cil].A->D = calloc(1, sizeof(DAMAGE));
+            Dtop = LC[cil].A->D;
+        }
+        while(LC[cil].A->D->next){
+            LC[cil].A->D = LC[cil].A->D->next;
+        }
+        
+        if([damageListMA count] >= 1){
+            LC[cil].A->D->next = calloc(1, sizeof(DAMAGE));
+            LC[cil].A->D = LC[cil].A->D->next;
+        }
+        LC[cil].A->D->next = NULL;//Dtop;
+        LC[cil].A->D->count = [ALTFdmgCount intValue];
+        LC[cil].A->D->pCount = [ALTFdmgRate intValue];
+        LC[cil].A->D->type = (int)[ALPUBtype indexOfSelectedItem];
+        LC[cil].A->D->seed = (int)[ALPUBseed indexOfSelectedItem];
+        LC[cil].A->D->sort = (int)[ALPUBsort indexOfSelectedItem];
+        LC[cil].A->D->beam = [ALTFbeam intValue];
+        LC[cil].A->D->absolute = [ALTFabsolute intValue];
+        LC[cil].A->D->noSizeFix = [ALTFnoSizeFix intValue];
+        LC[cil].A->D->continium = [ALTFcontinuum intValue];
+        
+        [self setTotalDamage2:(int)clickIndex row:clickedRowAT];
+        
+        [dict setValue:[NSString stringWithFormat:@"%@", str] forKey:@"type"];
+        [self willChangeValueForKey:@"damageListMA"];
+        [damageListMA addObject:dict];
+        [self didChangeValueForKey:@"damageListMA"];
+        [damageListAC setSelectionIndex:[damageListTV selectedRow]];
+        
+        LC[cil].A->D = Dtop;
+        
+        LC[cil].A = aTop;
+    
+    }
+    
+}
+
+-(IBAction)removeDamageList:(id)sender{
+    
+    if(EQmodeFlag){
+        if([damageListTV selectedRow] >= 0){
+            
+            ATTACK *aTop = EQ[clickIndexEQ].A;
+            for(int k = 0;k < clickIndexAL;k++) {
+                EQ[clickIndexEQ].A = EQ[clickIndexEQ].A->next;
+            }
+            DAMAGE *dmgNext = NULL;
+            dmgNext = calloc(1, sizeof(DAMAGE));
+            
+            int clickIndexDL = (int)[damageListTV selectedRow];
+            
+            DAMAGE *dTop = EQ[clickIndexEQ].A->D;
+            for(int k = 0;k < clickIndexDL;k++){
+                EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next;
+            }
+            
+            if(clickIndexDL >= 0 && [damageListMA count] > 0){
+                if(clickIndexDL == 0){
+                    EQ[clickIndexEQ].A->D = dTop;
+                    EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next;
+                    dTop = EQ[clickIndexEQ].A->D;
+                }else if(clickIndexDL == [damageListMA count] - 1){
+                    EQ[clickIndexEQ].A->D = dTop;
+                    while(EQ[clickIndexEQ].A->D->next->next){
+                        EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next;
+                    }
+                    EQ[clickIndex].A->D->next = NULL;
+                }else{
+                    EQ[clickIndexEQ].A->D = dTop;
+                    for (int i = 0; i < clickIndexDL - 1;i++)
+                        EQ[clickIndexEQ].A->D = EQ[clickIndexEQ].A->D->next;
+                    EQ[clickIndexEQ].A->D->next = EQ[clickIndexEQ].A->D->next->next;
+                }
+            }
+            EQ[clickIndexEQ].A->D = dTop;
+            
+            [self willChangeValueForKey:@"damageListMA"];
+            [damageListMA removeObjectAtIndex:[damageListTV selectedRow]];
+            [self didChangeValueForKey:@"damageListMA"];
+            if([damageListMA count] > 0) [damageListAC setSelectionIndex:[damageListTV selectedRow]-1];
+            
+            EQ[clickIndexEQ].A = aTop;
+    
+    
+    
+        }
+        return;
+    }
+    
+    if(!loadChipSideFlag){
+    if([damageListTV selectedRow] >= 0){
+        
+        ATTACK *aTop = UC[clickIndex].A;
+        for(int k = 0;k < clickIndexAL;k++) {
+            UC[clickIndex].A = UC[clickIndex].A->next;
+        }
+        DAMAGE *dmgNext = NULL;
+        dmgNext = calloc(1, sizeof(DAMAGE));
+        
+        int clickIndexDL = (int)[damageListTV selectedRow];
+        
+        DAMAGE *dTop = UC[clickIndex].A->D;
+        for(int k = 0;k < clickIndexDL;k++){
+            UC[clickIndex].A->D = UC[clickIndex].A->D->next;
+        }
+    
+        if(clickIndexDL >= 0 && [damageListMA count] > 0){
+        if(clickIndexDL == 0){
+            UC[clickIndex].A->D = dTop;
+            UC[clickIndex].A->D = UC[clickIndex].A->D->next;
+            dTop = UC[clickIndex].A->D;
+        }else if(clickIndexDL == [damageListMA count] - 1){
+            UC[clickIndex].A->D = dTop;
+            while(UC[clickIndex].A->D->next->next){
+                UC[clickIndex].A->D = UC[clickIndex].A->D->next;
+            }
+            UC[clickIndex].A->D->next = NULL;
+        }else{
+            UC[clickIndex].A->D = dTop;
+            for (int i = 0; i < clickIndexDL - 1;i++)
+                UC[clickIndex].A->D = UC[clickIndex].A->D->next;
+            UC[clickIndex].A->D->next = UC[clickIndex].A->D->next->next;
+        }
+        }
+        UC[clickIndex].A->D = dTop;
+        
+        [self willChangeValueForKey:@"damageListMA"];
+        [damageListMA removeObjectAtIndex:[damageListTV selectedRow]];
+        [self didChangeValueForKey:@"damageListMA"];
+        if([damageListMA count] > 0) [damageListAC setSelectionIndex:[damageListTV selectedRow]-1];
+        
+        UC[clickIndex].A = aTop;
+    }
+    
+    }else{
+        if([damageListTV selectedRow] >= 0){
+            
+            ATTACK *aTop = LC[cil].A;
+            for(int k = 0;k < clickIndexAL;k++) {
+                LC[cil].A = LC[cil].A->next;
+            }
+            DAMAGE *dmgNext = NULL;
+            dmgNext = calloc(1, sizeof(DAMAGE));
+            
+            int clickIndexDL = (int)[damageListTV selectedRow];
+            
+            DAMAGE *dTop = LC[cil].A->D;
+            for(int k = 0;k < clickIndexDL;k++){
+                LC[cil].A->D = LC[cil].A->D->next;
+            }
+            
+            if(clickIndexDL >= 0 && [damageListMA count] > 0){
+                if(clickIndexDL == 0){
+                    LC[cil].A->D = dTop;
+                    LC[cil].A->D = LC[cil].A->D->next;
+                    dTop = LC[cil].A->D;
+                }else if(clickIndexDL == [damageListMA count] - 1){
+                    LC[cil].A->D = dTop;
+                    while(LC[cil].A->D->next->next){
+                        LC[cil].A->D = LC[cil].A->D->next;
+                    }
+                    LC[cil].A->D->next = NULL;
+                }else{
+                    LC[cil].A->D = dTop;
+                    for (int i = 0; i < clickIndexDL - 1;i++)
+                        LC[cil].A->D = LC[cil].A->D->next;
+                    LC[cil].A->D->next = LC[cil].A->D->next->next;
+                }
+            }
+            LC[cil].A->D = dTop;
+            
+            [self willChangeValueForKey:@"damageListMA"];
+            [damageListMA removeObjectAtIndex:[damageListTV selectedRow]];
+            [self didChangeValueForKey:@"damageListMA"];
+            if([damageListMA count] > 0) [damageListAC setSelectionIndex:[damageListTV selectedRow]-1];
+            
+            LC[cil].A = aTop;
+        }
+    
+    }
+}
+
+
+
+-(IBAction)insertHitList:(id)sender{
+    
+    if(!loadChipSideFlag){
+    ATTACK *aTop = UC[clickIndex].A;
+    for(int k = 0;k < clickIndexAL;k++) {
+        UC[clickIndex].A = UC[clickIndex].A->next;
+    }
+    
+    DMGEXTEND *Etop = UC[clickIndex].A->E;
+    
+    UC[clickIndex].A->E = Etop;
+    
+    if(!UC[clickIndex].A->E) {[self AddDMGEXTEND:&UC[clickIndex].A->E :0];
+        Etop = UC[clickIndex].A->E;
+    }
+    
+    for(int k = 0;k < (int)[hitListMA count]-1;k++) {
+     UC[clickIndex].A->E = UC[clickIndex].A->E->next;
+    }
+    
+    
+    if((int)[hitListMA count] > 0){
+    UC[clickIndex].A->E->next = calloc(1, sizeof(DMGEXTEND));
+    UC[clickIndex].A->E = UC[clickIndex].A->E->next;
+    }
+    UC[clickIndex].A->E->next = NULL;
+    UC[clickIndex].A->E->atkHit = [ALTFatkHit intValue];
+    UC[clickIndex].A->E->hit = [ALTFhit intValue];
+    UC[clickIndex].A->E->rate = [ALTFrate intValue];
+    
+    NSMutableDictionary* dict = [NSMutableDictionary new];
+    [dict setValue:[NSString stringWithFormat:@"%d", [ALTFrate intValue]] forKey:@"rate"];
+    [dict setValue:[NSString stringWithFormat:@"%d", [ALTFhit intValue]] forKey:@"hit"];
+    [dict setValue:[NSString stringWithFormat:@"%d", [ALTFatkHit intValue]] forKey:@"atkHit"];
+    
+    [self willChangeValueForKey:@"hitListMA"];
+    [hitListMA addObject:dict];
+    [self didChangeValueForKey:@"hitListMA"];
+    [hitListAC setSelectionIndex:[hitListTV selectedRow]];
+    
+    UC[clickIndex].A->E = Etop;
+    
+    UC[clickIndex].A = aTop;
+    
+    }else{
+    
+        ATTACK *aTop = LC[cil].A;
+        for(int k = 0;k < clickIndexAL;k++) {
+            LC[cil].A = LC[cil].A->next;
+        }
+        
+        DMGEXTEND *Etop = LC[cil].A->E;
+        
+        LC[cil].A->E = Etop;
+        
+        if(!LC[cil].A->E) {[self AddDMGEXTEND:&LC[cil].A->E :0];
+            Etop = LC[cil].A->E;
+        }
+        
+        for(int k = 0;k < (int)[hitListMA count]-1;k++) {
+            LC[cil].A->E = LC[cil].A->E->next;
+        }
+        
+        
+        if((int)[hitListMA count] > 0){
+            LC[cil].A->E->next = calloc(1, sizeof(DMGEXTEND));
+            LC[cil].A->E = LC[cil].A->E->next;
+        }
+        LC[cil].A->E->next = NULL;
+        LC[cil].A->E->atkHit = [ALTFatkHit intValue];
+        LC[cil].A->E->hit = [ALTFhit intValue];
+        LC[cil].A->E->rate = [ALTFrate intValue];
+        
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        [dict setValue:[NSString stringWithFormat:@"%d", [ALTFrate intValue]] forKey:@"rate"];
+        [dict setValue:[NSString stringWithFormat:@"%d", [ALTFhit intValue]] forKey:@"hit"];
+        [dict setValue:[NSString stringWithFormat:@"%d", [ALTFatkHit intValue]] forKey:@"atkHit"];
+        
+        [self willChangeValueForKey:@"hitListMA"];
+        [hitListMA addObject:dict];
+        [self didChangeValueForKey:@"hitListMA"];
+        [hitListAC setSelectionIndex:[hitListTV selectedRow]];
+        
+        LC[cil].A->E = Etop;
+        
+        LC[cil].A = aTop;
+        
+
+    
+    }
+    
+}
+
+-(IBAction)removeHitList:(id)sender{
+
+    
+    if(!loadChipSideFlag){
+    if([hitListTV selectedRow] >= 0){
+        ATTACK *aTop = UC[clickIndex].A;
+        for(int k = 0;k < clickIndexAL;k++) {
+            UC[clickIndex].A = UC[clickIndex].A->next;
+        }
+        DMGEXTEND *Etop = UC[clickIndex].A->E;
+        DMGEXTEND *eNext = NULL;
+        
+        
+         int clickIndexHL = (int)[hitListTV selectedRow];
+        
+        for(int k = 0;k < clickIndexHL-1;k++){
+            UC[clickIndex].A->E = UC[clickIndex].A->E->next;
+        }
+        
+        if(clickIndexHL == 0) {
+            
+            UC[clickIndex].A->E = UC[clickIndex].A->E->next;
+            Etop = UC[clickIndex].A->E;
+        
+        }
+        
+        else{
+            eNext = UC[clickIndex].A->E->next->next;
+        
+        UC[clickIndex].A->E->next = eNext;
+        }
+        
+        UC[clickIndex].A->E = Etop;
+        
+        [self willChangeValueForKey:@"hitListMA"];
+        [hitListMA removeObjectAtIndex:[hitListTV selectedRow]];
+        [self didChangeValueForKey:@"hitListMA"];
+        if([hitListMA count] > 0) [hitListAC setSelectionIndex:[hitListTV selectedRow]-1];
+        
+        UC[clickIndex].A = aTop;
+    }
+    
+    }else{
+    
+        if([hitListTV selectedRow] >= 0){
+            ATTACK *aTop = LC[cil].A;
+            for(int k = 0;k < clickIndexAL;k++) {
+                LC[cil].A = LC[cil].A->next;
+            }
+            DMGEXTEND *Etop = LC[cil].A->E;
+            DMGEXTEND *eNext = NULL;
+            
+            
+            int clickIndexHL = (int)[hitListTV selectedRow];
+            
+            for(int k = 0;k < clickIndexHL-1;k++){
+                LC[cil].A->E = LC[cil].A->E->next;
+            }
+            
+            if(clickIndexHL == 0) {
+                
+                LC[cil].A->E = LC[cil].A->E->next;
+                Etop = LC[cil].A->E;
+                
+            }
+            
+            else{
+                eNext = LC[cil].A->E->next->next;
+                
+                LC[cil].A->E->next = eNext;
+            }
+            
+            LC[cil].A->E = Etop;
+            
+            [self willChangeValueForKey:@"hitListMA"];
+            [hitListMA removeObjectAtIndex:[hitListTV selectedRow]];
+            [self didChangeValueForKey:@"hitListMA"];
+            if([hitListMA count] > 0) [hitListAC setSelectionIndex:[hitListTV selectedRow]-1];
+            
+            LC[cil].A = aTop;
+        }
+    
+    
+    }
+}
+
+-(IBAction)skillListInsert:(id)sender{
+    SLpbtn = (int)[PUBsl indexOfSelectedItem];
+    
+    if(SLpbtn <= 0) return;
+    
+    NSMutableDictionary *dict = [NSMutableDictionary new];
+    [dict setValue:[NSString stringWithFormat:@"新規スキル"] forKey:@"name"];
+    
+    Stop = UC[clickIndex].S;
+    
+    if(SKLrow < 0){
+        if([skillListMA count] == 0){
+            UC[clickIndex].S = (SKILL*)malloc(sizeof(SKILL));
+            //INIT 処理
+            UC[clickIndex].S->type = SLpbtn;
+            [self SLbuildinit];
+            UC[clickIndex].S->next = NULL;
+            Stop = UC[clickIndex].S;
+        }else{
+            while(UC[clickIndex].S->next) UC[clickIndex].S = UC[clickIndex].S->next;
+            UC[clickIndex].S->next = (SKILL*)malloc(sizeof(SKILL));
+            UC[clickIndex].S = UC[clickIndex].S->next;
+            //INIT 処理
+            UC[clickIndex].S->type = SLpbtn;
+            [self SLbuildinit];
+            UC[clickIndex].S->next = NULL;
+            UC[clickIndex].S = Stop;
+        }
+        
+        SKL = SKLtop;
+        for(int i = 1;i < SLpbtn;i++){
+            SKL = SKL->next;
+        }
+        [dict setValue:[NSString stringWithFormat:@"%@", SKL->name] forKey:@"name"];
+        SKL = SKLtop;
+        [self willChangeValueForKey:@"skillListMA"];
+        [skillListMA insertObject:dict atIndex:[skillListMA count]];
+        [self didChangeValueForKey:@"skillListMA"];
+        [skillListAC setSelectionIndex:999];
+        SKLrow = -1;
+    }else{
+        UC[clickIndex].S = Stop;
+        if([skillListMA count] == 0){
+            UC[clickIndex].S = (SKILL*)malloc(sizeof(SKILL));
+            //INIT 処理
+            UC[clickIndex].S->type = SLpbtn;
+            [self SLbuildinit];
+            UC[clickIndex].S->next = NULL;
+            Stop = UC[clickIndex].S;
+        }else if(SKLrow > 0){
+            for (int i = 0; i < SKLrow-1;i++)
+                UC[clickIndex].S = UC[clickIndex].S->next;
+            
+            SKILL *tmp = (SKILL*)malloc(sizeof(SKILL));
+            *tmp = *UC[clickIndex].S->next;
+            UC[clickIndex].S->next = (SKILL*)malloc(sizeof(SKILL));
+            UC[clickIndex].S->next->next = tmp;
+            UC[clickIndex].S = UC[clickIndex].S->next;
+            //INIT 処理
+            UC[clickIndex].S->type = SLpbtn;
+            [self SLbuildinit];
+            UC[clickIndex].S = Stop;
+        }else{
+            SKILL *tmp = (SKILL*)malloc(sizeof(SKILL));
+            tmp->next = UC[clickIndex].S;
+            
+            UC[clickIndex].S->type = SLpbtn;
+            [self SLbuildinit];
+            Stop = tmp;
+            UC[clickIndex].S = Stop;
+        }
+        SKL = SKLtop;
+        for(int i = 1;i < SLpbtn;i++){
+            SKL = SKL->next;
+        }
+        [dict setValue:[NSString stringWithFormat:@"%@", SKL->name] forKey:@"name"];
+        SKL = SKLtop;
+        [self willChangeValueForKey:@"skillListMA"];
+        [skillListMA insertObject:dict atIndex:SKLrow];
+        [self didChangeValueForKey:@"skillListMA"];
+        [skillListAC setSelectionIndex:SKLrow];
+    }
+}
+-(IBAction)skillListDelete:(id)sender{
+    Stop = UC[clickIndex].S;
+    
+    if(SKLrow == -1){
+        SKLrow = (int)[skillListMA count] - 1;
+    }
+    
+    if([skillListMA count] > 0){
+        
+        if(SKLrow == 0){
+            UC[clickIndex].S = Stop;
+            UC[clickIndex].S = UC[clickIndex].S->next;
+            Stop = UC[clickIndex].S;
+        }else if(SKLrow == [skillListMA count] - 1){
+            UC[clickIndex].S = Stop;
+            while(UC[clickIndex].S->next->next){
+                UC[clickIndex].S = UC[clickIndex].S->next;
+            }
+            UC[clickIndex].S->next = NULL;
+        }else{
+            UC[clickIndex].S = Stop;
+            for (int i = 0; i < SKLrow - 1;i++)
+                UC[clickIndex].S = UC[clickIndex].S->next;
+            UC[clickIndex].S->next = UC[clickIndex].S->next->next;
+        }
+        
+        [self willChangeValueForKey:@"skillListMA"];
+        [skillListMA removeObjectAtIndex:SKLrow];
+        [self didChangeValueForKey:@"skillListMA"];
+        [skillListAC setSelectionIndex:SKLrow-1];
+        if(SKLrow < 0) [skillListAC setSelectionIndex:[skillListMA count]-1];
+        if(SKLrow == 0) [skillListAC setSelectionIndex:0];
+        if(SKLrow > 0) SKLrow--;
+    }
+    UC[clickIndex].S = Stop;
+}
+
+
+-(IBAction)SLbuildAdd:(id)sender{
+    NSMutableDictionary *dict = [NSMutableDictionary new];
+    NSMutableArray *Array = [NSMutableArray array];
+    
+    for(int i = 0;i<BuildChipNum;i++){
+        [Array addObject:[BC[i].name retain]];
+    }
+    [dict setValue:Array forKey:@"name"];
+    [dict setValue:0xc7 forKey:@"sel"];
+    [dict setValue:[NSString stringWithFormat:@"資%d食%d金%d", BC[0].Csupply, BC[0].Cfood, BC[0].Cmoney] forKey:@"manko"];
+    Stop = UC[clickIndex].S;
+    
+    if(SKLrow <= 0) SKLrow = 0;
+    
+    for(int i = 0;i < SKLrow;i++){
+        UC[clickIndex].S = UC[clickIndex].S->next;
+    }
+    
+    if(1){
+        if([skillListBuildMA count] == 0){
+            UC[clickIndex].S->list[0] = 1;
+        }else{
+            int k = 0;
+            for(int i = 0;UC[clickIndex].S->list[i] > 0;i++){
+                k++;
+            }
+            UC[clickIndex].S->list[k] = 1;
+        }
+        
+        [self willChangeValueForKey:@"skillListBuildMA"];
+        [skillListBuildMA addObject:dict];
+        [self didChangeValueForKey:@"skillListBuildMA"];
+        [skillListBuildAC setSelectionIndex:[skillListBuildMA count]-1];
+        SKLBrow = (int)[skillListBuildMA count]-1;
+    }
+    UC[clickIndex].S = Stop;
+
+
+}
+-(IBAction)SLbuildDelete:(id)sender{
+    Stop = UC[clickIndex].S;
+    
+    if(SKLrow <= 0) SKLrow = 0;
+    
+    for(int i = 0;i < SKLrow;i++){
+        UC[clickIndex].S = UC[clickIndex].S->next;
+    }
+    
+    if([skillListBuildMA count] > 0){
+        int k = 0;
+        if(1){
+            UC[clickIndex].S = Stop;
+            for(int i = 0;UC[clickIndex].S->list[i] == 0;i++){
+                k++;
+            }
+            UC[clickIndex].S->list[k-1] = 0;
+        }
+        
+        [self willChangeValueForKey:@"skillListBuildMA"];
+        [skillListBuildMA removeObjectAtIndex:k];
+        [self didChangeValueForKey:@"skillListBuildMA"];
+        [skillListBuildAC setSelectionIndex:SKLBrow-1];
+        SKLBrow = -1;
+    }
+    UC[clickIndex].S = Stop;
+}
+-(IBAction)SLbuildSubmit:(id)sender{
+    [self willChangeValueForKey:@"skillListBuildMA"];
+    [skillListBuildMA removeAllObjects];
+    [self didChangeValueForKey:@"skillListBuildMA"];
+    [SLBpanel close];
+}
+
+-(void)SLbuildinit{
+
+
+    for(int i = 0;i< 255;i++){
+        UC[clickIndex].S->list[i] = 0;
+        UC[clickIndex].S->cost[i] = 0;
+
+    }
+    
+}
+
+
+-(IBAction)SLunitAdd:(id)sender{
+    NSMutableDictionary *dict = [NSMutableDictionary new];
+    NSMutableArray *Array = [NSMutableArray array];
+    
+    for(int i = 0;i<UCN;i++){
+        [Array addObject:[UC[i].name retain]];
+    }
+    [dict setValue:Array forKey:@"name"];
+    [dict setValue:0xc7 forKey:@"sel"];
+    [dict setValue:[NSString stringWithFormat:@"%d", 0] forKey:@"MP"];
+    Stop = UC[clickIndex].S;
+    
+    if(SKLrow <= 0) SKLrow = 0;
+    
+    for(int i = 0;i < SKLrow;i++){
+        UC[clickIndex].S = UC[clickIndex].S->next;
+    }
+    
+    if(1){
+        if([skillListUnitMA count] == 0){
+            UC[clickIndex].S->list[0] = 2;
+        }else{
+            int k = 0;
+            for(int i = 0;UC[clickIndex].S->list[i] > 0;i++){
+                k++;
+            }
+            UC[clickIndex].S->list[k] = 2;
+        }
+        
+        [self willChangeValueForKey:@"skillListUnitMA"];
+        [skillListUnitMA addObject:dict];
+        [self didChangeValueForKey:@"skillListUnitMA"];
+        [skillListUnitAC setSelectionIndex:[skillListUnitMA count]-1];
+        SKLBrow = (int)[skillListUnitMA count]-1;
+    }UC[clickIndex].S = Stop;
+    
+    
+
+}
+-(IBAction)SLunitDelete:(id)sender{
+    Stop = UC[clickIndex].S;
+    
+    if(SKLrow <= 0) SKLrow = 0;
+    
+    for(int i = 0;i < SKLrow;i++){
+        UC[clickIndex].S = UC[clickIndex].S->next;
+    }
+    
+    if([skillListBuildMA count] > 0){
+        int k = 0;
+        if(1){
+            UC[clickIndex].S = Stop;
+            for(int i = 0;UC[clickIndex].S->list[i] == 0;i++){
+                k++;
+            }
+            UC[clickIndex].S->list[k-1] = 0;
+        }
+        
+        [self willChangeValueForKey:@"skillListUnitMA"];
+        [skillListUnitMA removeObjectAtIndex:k];
+        [self didChangeValueForKey:@"skillListUnitMA"];
+        [skillListUnitAC setSelectionIndex:SKLUrow-1];
+        SKLUrow = -1;
+    }
+    UC[clickIndex].S = Stop;
+}
+-(IBAction)SLunitSubmit:(id)sender{
+    [self willChangeValueForKey:@"skillListUnitMA"];
+    [skillListUnitMA removeAllObjects];
+    [self didChangeValueForKey:@"skillListUnitMA"];
+    
+    [SLUpanel close];
+}
+
+-(IBAction)registUCL:(id)sender{
+    [TFchipNumb setIntValue:(int)chipNumb];
+    UCN = (int)chipNumb;
+    UnitChipMax = (int)chipNumb/25+1;
+    [UCLRegisterPanel makeKeyAndOrderFront:nil];
+}
+
+-(void)savePresetUnitNumber{
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    NSString *path = @"data/UnitChip/preset.txt";
+    
+    NSString *data = [NSString stringWithFormat:@"%d", (int)chipNumb];
+    
+    [data writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
+
+}
+
+-(void)savePresetItemNumber{
+    NSString *directoryPath;
+    
+    directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+    [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
+    
+    NSString *path = @"data/ItemList/preset.txt";
+    
+    NSString *data = [NSString stringWithFormat:@"%d", (int)eItemNum];
+    
+    [data writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
+    
+}
+
+-(IBAction)registSaveUCL:(id)sender{
+    chipNumb = [TFchipNumb intValue];
+    [self savePresetUnitNumber];
+    UCN = (int)chipNumb;
+    UnitChipMax = (int)chipNumb/25+1;
+    [self initUnitChipList];
+    [UCLRegisterPanel close];
+}
+-(IBAction)registCancelUCL:(id)sender{
+    [UCLRegisterPanel close];
+}   
+
+-(void)initAttackSet{
+    
+    [AMbtnA removeAllItems];
+    [AMbtnB removeAllItems];
+    [AMbtnC removeAllItems];
+    [AMbtnD removeAllItems];
+    
+    [self willChangeValueForKey:@"commandListMA"];
+    [commandListMA removeAllObjects];
+    [self didChangeValueForKey:@"commandListMA"];
+    [self willChangeValueForKey:@"comboListMA"];
+    [comboListMA removeAllObjects];
+    [self didChangeValueForKey:@"comboListMA"];
+    
+    ATTACK *Atop = UC[clickIndex].A;
+    while (UC[clickIndex].A != NULL) {
+        if(UC[clickIndex].A->name != NULL){
+            [AMbtnA addItemWithTitle:UC[clickIndex].A->name];
+            [AMbtnB addItemWithTitle:UC[clickIndex].A->name];
+            [AMbtnC addItemWithTitle:UC[clickIndex].A->name];
+            [AMbtnD addItemWithTitle:UC[clickIndex].A->name];
+        }
+        UC[clickIndex].A = UC[clickIndex].A->next;
+    }
+    UC[clickIndex].A = Atop;
+    
+    COMMANDS *CMtop = UC[clickIndex].CM.cs;
+    if(UC[clickIndex].CM.cs != NULL)
+    while (UC[clickIndex].CM.cs->cmd != NULL) {
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].CM.cs->cmd] forKey:@"name"];
+        if(![UC[clickIndex].CM.cs->hasei isEqualToString:@"0"])
+            [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].CM.cs->hasei] forKey:@"hasei"];
+        
+        NSMutableArray *Array = [NSMutableArray array];
+        ATTACK *AAtop = UC[clickIndex].A;
+        while (UC[clickIndex].A != NULL) {
+            [Array addObject:UC[clickIndex].A->name];
+            UC[clickIndex].A = UC[clickIndex].A->next;
+        }
+        UC[clickIndex].A = AAtop;
+        [dict setValue:Array forKey:@"waza"];
+        
+        [self willChangeValueForKey:@"commandListMA"];
+        [commandListMA addObject:dict];
+        [self didChangeValueForKey:@"commandListMA"];
+        UC[clickIndex].CM.cs = UC[clickIndex].CM.cs->next;
+    }
+    
+    
+    UC[clickIndex].CM.cs = CMtop;
+    
+    
+    
+    
+    COMBO *Ctop = UC[clickIndex].CM.co;
+    if(UC[clickIndex].CM.co != NULL)
+    while (UC[clickIndex].CM.co->mbo != NULL) {
+        NSMutableDictionary* dict = [NSMutableDictionary new];
+        [dict setValue:[NSString stringWithFormat:@"%@", UC[clickIndex].CM.co->mbo] forKey:@"name"];
+        [self willChangeValueForKey:@"comboListMA"];
+        [comboListMA addObject:dict];
+        [self didChangeValueForKey:@"comboListMA"];
+        UC[clickIndex].CM.co = UC[clickIndex].CM.co->next;
+    }
+    UC[clickIndex].CM.co = Ctop;
+    
+    
+    [AMbtnA selectItemAtIndex:UC[clickIndex].CM.A];
+    [AMbtnB selectItemAtIndex:UC[clickIndex].CM.B];
+    [AMbtnC selectItemAtIndex:UC[clickIndex].CM.C];
+    [AMbtnD selectItemAtIndex:UC[clickIndex].CM.D];
+    
+    
+    
+    
+    
+    UC[clickIndex].A = Atop;
+}
+
+-(void)initAttackSet2{
+    
+    [AMbtnA removeAllItems];
+    [AMbtnB removeAllItems];
+    [AMbtnC removeAllItems];
+    [AMbtnD removeAllItems];
+    
+    [self willChangeValueForKey:@"commandListMA"];
+    [commandListMA removeAllObjects];
+    [self didChangeValueForKey:@"commandListMA"];
+    [self willChangeValueForKey:@"comboListMA"];
+    [comboListMA removeAllObjects];
+    [self didChangeValueForKey:@"comboListMA"];
+
+}
+
+
+-(IBAction)attackListTotalSubmit:(id)sender{
+    
+    UC[clickIndex].CM.A = (int)[AMbtnA indexOfSelectedItem];
+    UC[clickIndex].CM.B = (int)[AMbtnB indexOfSelectedItem];
+    UC[clickIndex].CM.C = (int)[AMbtnC indexOfSelectedItem];
+    UC[clickIndex].CM.D = (int)[AMbtnD indexOfSelectedItem];
+    
+    [UCLPanelAttackList close];
+}
+-(IBAction)attackListOpenBtn:(id)sender{
+    clickedRowAT = -1;
+    if(!loadChipSideFlag){
+        [self initAttackList];
+    }else{
+        [self initAttackList2];
+    }
+    /*
+    windowPoint.x = [UCLDetailPanel frame].origin.x;
+    windowPoint.y = [UCLDetailPanel frame].origin.y + 50;
+    [UCLPanelAttack setFrameOrigin:windowPoint];
+     */
+    [UCLPanelAttack makeKeyAndOrderFront:nil];
+}
+-(IBAction)commandListAdd:(id)sender{}
+-(IBAction)commandListRemove:(id)sender{}
+-(IBAction)comboListAdd:(id)sender{}
+-(IBAction)comboListRemove:(id)sender{}
+
+
+-(IBAction)addSubjMark:(id)sender{
+    NSString* str = [[ALTFmsg stringValue] retain];
+    str = [[str stringByAppendingFormat:@"$subj"] retain];
+    [ALTFmsg setStringValue:str];
+}
+-(IBAction)addObjeMark:(id)sender{
+    NSString* str = [[ALTFmsg stringValue] retain];
+    str = [[str stringByAppendingFormat:@"$obje"] retain];
+    [ALTFmsg setStringValue:str];
+}
+
+
+-(IBAction)ILregi:(id)sender{
+
+    [ILregiTF setIntValue:(int)eItemNum];
+    [ILregiWIndow makeKeyAndOrderFront:nil];
+}
+
+-(IBAction)saveILregi:(id)sender{
+
+    eItemNum = [ILregiTF intValue];
+    [self initItemList];
+    [self savePresetItemNumber];
+    
+    [ILregiWIndow close];
+}
+
+
+-(IBAction)cancelILregi:(id)sender{
+
+    [ILregiWIndow close];
+}
+
+-(IBAction)attackIL:(id)sender{
+
+    EQmodeFlag = true;
+    [self initAttackListEQ];
+    [UCLPanelAttack makeKeyAndOrderFront:nil];
+}
+
+@end