5 // Created by Killery on 2013/02/22.
6 // Copyright (c) 2013年 Killery. All rights reserved.
11 @implementation FieldScene
15 [CAttackListTV setTarget:self];
16 [CAttackListTV setDoubleAction:@selector(doubleClickCAL:)];
17 [CAttackListTV setTarget:self];
18 [CAttackListTV setAction:@selector(clickCAL:)];
20 [CResearchListTV setTarget:self];
21 [CResearchListTV setDoubleAction:@selector(doubleClickCRL:)];
22 [CResearchListTV setTarget:self];
23 [CResearchListTV setAction:@selector(clickCRL:)];
25 [BCreateListTV setTarget:self];
26 [BCreateListTV setDoubleAction:@selector(doubleClickBCL:)];
27 [BCreateListTV setTarget:self];
28 [BCreateListTV setAction:@selector(clickBCL:)];
30 [CSummonListTV setTarget:self];
31 [CSummonListTV setDoubleAction:@selector(doubleClickCSL:)];
32 [CSummonListTV setTarget:self];
33 [CSummonListTV setAction:@selector(clickCSL:)];
35 [loadFileOutputListTV setTarget:self];
36 [loadFileOutputListTV setAction:@selector(clickLFOL:)];
38 [saveGameListTV setTarget:self];
39 [saveGameListTV setAction:@selector(clickSGL)];
43 CAttackListMA = [NSMutableArray new];
44 CResearchListMA = [NSMutableArray new];
45 BCreateListMA = [NSMutableArray new];
46 CSummonListMA = [NSMutableArray new];
47 saveFileInputListMA = [NSMutableArray new];
48 loadFileOutputListMA = [NSMutableArray new];
49 saveGameListMA = [NSMutableArray new];
51 SAV = [NSMutableArray new];
53 [IVimage setHidden:YES];
54 [TFname setHidden:YES];
55 [TFmessage setHidden:YES];
56 [BXname setHidden:YES];
57 [BXmessage setHidden:YES];
58 [IVimage setEnabled:NO];
59 [TFname setEnabled:NO];
60 [TFmessage setEnabled:NO];
68 scheduledTimerWithTimeInterval:1.0/30
70 selector:@selector(EventLoopFS:)
76 fieldSceneSelfFlag = true;
79 P[0].name = [@"青軍" retain];
85 P[1].name = [@"赤軍" retain];
91 P[2].name = [@"黄軍" retain];
106 -(void)writeInt:(FILE*)fp val:(int)val{
109 for(counter = INT_MAX;counter > 0;counter>>=8){
110 unsigned char nowData = val&0xFF;
112 fwrite(&nowData, sizeof(unsigned char), 1, fp);
116 -(void)writeNSString:(FILE*)fp str:(NSString*)str{
117 int length = (int)[str length];
118 [self writeInt:fp val:length];
119 fwrite([str UTF8String], sizeof(str), length, fp);
122 -(void)writeNSImage:(FILE*)fp str:(NSImage*)img adCnt:(int*)adCnt adFix:(int*)adFix{
125 NSString *directoryPath;
127 directoryPath = [[NSBundle mainBundle] bundlePath];
128 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
130 NSString* Cpath = @"Contents/Resources/";
131 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
134 NSData *imgData = [img TIFFRepresentation];
135 NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:imgData];
136 imgData = [brep representationUsingType:NSPNGFileType properties:nil];
137 [imgData writeToFile:@INSTANT_IMG atomically:YES];
139 fpx = fopen(INSTANT_IMG, "rb");
140 [self fcopy:fpx wfp:fp adCnt:adCnt adFix:adFix];
148 -(int)fcopy:(FILE *)rfp wfp:(FILE *)wfp adCnt:(int*)adCnt adFix:(int*)adFix{
150 unsigned char in_buf[1024], out_buf[1024];
159 rinf = (int)fread((void*)in_buf, 1, 1024, rfp);
163 memcpy((void*)out_buf, (void*)in_buf, 1024);
164 rinf = (int)fwrite((void*)out_buf, 1, rinf, wfp);
172 fpt -= ((*adCnt)-1)*1024;
174 [self writeInt:wfp val:*adCnt];
175 [self writeInt:wfp val:*adFix];
180 rinf = (int)fread((void*)in_buf, 1, 1024, rfp);
184 memcpy((void*)out_buf, (void*)in_buf, 1024);
185 rinf = (int)fwrite((void*)out_buf, 1, rinf, wfp);
194 -(void)writeMapScript:(FILE*)fp{
196 [self writeInt:fp val:(int)sdd.MS.EGClight.endType1];
197 [self writeInt:fp val:(int)sdd.MS.EGClight.endType2];
199 for(int i = 0;i < 64;i++)
200 [self writeNSString:fp str:sdd.MS.EGClight.etValue1[i]];
201 for(int i = 0;i < 64;i++)
202 [self writeNSString:fp str:sdd.MS.EGClight.etValue2[i]];
204 [self writeInt:fp val:(int)sdd.MS.EGCdark.endType1];
205 [self writeInt:fp val:(int)sdd.MS.EGCdark.endType2];
207 for(int i = 0;i < 64;i++)
208 [self writeNSString:fp str:sdd.MS.EGCdark.etValue1[i]];
209 for(int i = 0;i < 64;i++)
210 [self writeNSString:fp str:sdd.MS.EGCdark.etValue2[i]];
213 [self writeInt:fp val:(int)sdd.MS.playerSet1];
214 [self writeInt:fp val:(int)sdd.MS.playerSet2];
215 [self writeInt:fp val:(int)sdd.MS.battleSetMode];
216 [self writeInt:fp val:(int)sdd.MS.employAllowedFlag];
217 [self writeInt:fp val:(int)sdd.MS.buildAllowedFlag];
218 [self writeInt:fp val:(int)sdd.MS.summonAllowedFlag];
220 [self writeInt:fp val:(int)sdd.MS.scenarioSetMode];
221 [self writeInt:fp val:(int)sdd.MS.scenarioNumbCrnt];
222 [self writeInt:fp val:(int)sdd.MS.scenarioNumbNext];
224 for(int i = 0;i < 4096;i++)
225 [self writeInt:fp val:sdd.MS.guildListRegist[i]];
226 [self writeInt:fp val:(int)sdd.MS.guildListRegistNum11];
227 [self writeInt:fp val:(int)sdd.MS.guildListRegistNum12];
229 for(int i = 0;i < 4096;i++)
230 [self writeInt:fp val:sdd.MS.guildListRegist2[i]];
231 [self writeInt:fp val:(int)sdd.MS.guildListRegistNum21];
232 [self writeInt:fp val:(int)sdd.MS.guildListRegistNum22];
235 sdd.MS.SCRPTnameCnt = (int)[sdd.MS.SCRPTname count];
237 [self writeInt:fp val:(int)sdd.MS.SCRPTnameCnt];
238 for(int i = 0;i < sdd.MS.SCRPTnameCnt;i++)
239 [self writeNSString:fp str:sdd.MS.SCRPTname[i]];
241 MAPSCRIPTD *SMSDtop = sdd.MS.D;
246 sdd.MS.D = sdd.MS.D->next;
248 [self writeInt:fp val:(int)sdd.MS.Dcnt];
250 for (int i = 0;i < sdd.MS.Dcnt;i++) {
252 sdd.MS.D->SCRPTcnt = (int)[sdd.MS.D->SCRPT count];
253 [self writeInt:fp val:(int)sdd.MS.D->SCRPTcnt];
254 for(int j = 0;j < sdd.MS.D->SCRPTcnt;j++)
255 [self writeNSString:fp str:sdd.MS.D->SCRPT[j]];
257 [self writeInt:fp val:(int)sdd.MS.D->endFlag];
258 [self writeInt:fp val:(int)sdd.MS.D->index];
259 [self writeInt:fp val:(int)sdd.MS.D->x];
260 [self writeInt:fp val:(int)sdd.MS.D->y];
261 [self writeInt:fp val:(int)sdd.MS.D->type];
262 [self writeInt:fp val:(int)sdd.MS.D->ET1];
263 [self writeInt:fp val:(int)sdd.MS.D->ET2];
264 [self writeInt:fp val:(int)sdd.MS.D->ET3];
265 [self writeInt:fp val:(int)sdd.MS.D->ET4];
266 [self writeInt:fp val:(int)sdd.MS.D->ETtype];
267 [self writeInt:fp val:(int)sdd.MS.D->onlyInitialDeley];
268 [self writeInt:fp val:(int)sdd.MS.D->initialDeleyedFlag];
269 [self writeInt:fp val:(int)sdd.MS.D->switch1f];
270 [self writeInt:fp val:(int)sdd.MS.D->switch2f];
272 sdd.MS.D->switch1cnt = 0;
273 if(sdd.MS.D->switch1)
274 for(int j = 0;*(sdd.MS.D->switch1 + j) > 0;j++) {
275 sdd.MS.D->switch1cnt++;
276 }[self writeInt:fp val:(int)sdd.MS.D->switch1cnt];
278 sdd.MS.D->switch2cnt = 0;
279 if(sdd.MS.D->switch2)
280 for(int j = 0;*(sdd.MS.D->switch2 + j) > 0;j++) {
281 sdd.MS.D->switch2cnt++;
282 }[self writeInt:fp val:(int)sdd.MS.D->switch2cnt];
284 for(int j = 0;j < sdd.MS.D->switch1cnt;j++) {
285 [self writeInt:fp val:(int)*(sdd.MS.D->switch1 + j)];
288 for(int j = 0;j < sdd.MS.D->switch2cnt;j++) {
289 [self writeInt:fp val:(int)*(sdd.MS.D->switch2 + j)];
293 MAPSCRIPT0 *SMSPtop = sdd.MS.D->P;
296 while (sdd.MS.D->P) {
298 sdd.MS.D->P = sdd.MS.D->P->next;
299 }sdd.MS.D->P = SMSPtop;
300 [self writeInt:fp val:(int)sdd.MS.D->Pcnt];
302 for (int j = 0;j < sdd.MS.D->Pcnt;j++) {
304 [self writeInt:fp val:sdd.MS.D->P->endFlag];
305 [self writeInt:fp val:sdd.MS.D->P->succeessfulFlag];
306 [self writeInt:fp val:sdd.MS.D->P->indent];
307 [self writeInt:fp val:sdd.MS.D->P->val];
308 [self writeInt:fp val:sdd.MS.D->P->valCnt];
309 [self writeInt:fp val:sdd.MS.D->P->timerMin];
310 [self writeInt:fp val:sdd.MS.D->P->timerSec];
311 [self writeInt:fp val:sdd.MS.D->P->timerEntire];
313 [self writeInt:fp val:sdd.MS.D->P->timerFlag];
314 [self writeInt:fp val:sdd.MS.D->P->timerVisible];
315 [self writeInt:fp val:sdd.MS.D->P->timerRun];
316 [self writeInt:fp val:sdd.MS.D->P->timerMode];
317 [self writeInt:fp val:sdd.MS.D->P->wait];
318 [self writeInt:fp val:sdd.MS.D->P->titleBack];
320 [self writeNSString:fp str:sdd.MS.D->P->label];
321 [self writeNSString:fp str:sdd.MS.D->P->labelJump];
322 [self writeNSString:fp str:sdd.MS.D->P->memo];
326 sdd.MS.D->P->switch1cnt = 0;
327 if(sdd.MS.D->P->switch1)
328 for(int k = 0;*(sdd.MS.D->P->switch1 + k) > 0;k++) {
329 sdd.MS.D->P->switch1cnt++;
330 }[self writeInt:fp val:(int)sdd.MS.D->P->switch1cnt];
332 sdd.MS.D->P->switch2cnt = 0;
333 if(sdd.MS.D->P->switch2)
334 for(int k = 0;*(sdd.MS.D->P->switch2 + k) > 0;k++) {
335 sdd.MS.D->P->switch2cnt++;
336 }[self writeInt:fp val:(int)sdd.MS.D->P->switch2cnt];
338 for(int k = 0;k < sdd.MS.D->P->switch1cnt;k++) {
339 [self writeInt:fp val:(int)*(sdd.MS.D->P->switch1 + k)];
342 for(int k = 0;k < sdd.MS.D->P->switch2cnt;k++) {
343 [self writeInt:fp val:(int)*(sdd.MS.D->P->switch2 + k)];
346 [self writeMapScriptBGM:fp];
347 [self writeMapScriptSE:fp];
348 [self writeMapScriptSC:fp];
349 [self writeMapScriptGAOV:fp];
351 [self writeInt:fp val:sdd.MS.D->P->type];
353 if(sdd.MS.D->P->type == 0)
354 [self writeMapScript1:fp];
356 if(sdd.MS.D->P->type == 1){
357 MAPSCRIPT2 *SMSP2top = sdd.MS.D->P->S2;
359 sdd.MS.D->P->S2cnt = 0;
360 while (sdd.MS.D->P->S2) {
361 sdd.MS.D->P->S2cnt++;
362 sdd.MS.D->P->S2 = sdd.MS.D->P->S2->next;
363 }sdd.MS.D->P->S2 = SMSP2top;
364 [self writeInt:fp val:sdd.MS.D->P->S2cnt];
367 for (int k = 0;k < sdd.MS.D->P->S2cnt;k++) {
368 [self writeMapScript2:fp];
369 sdd.MS.D->P->S2 = sdd.MS.D->P->S2->next;
370 }sdd.MS.D->P->S2 = SMSP2top;
373 if(sdd.MS.D->P->type == 22){
374 MAPSCRIPT3 *SMSP3top = sdd.MS.D->P->S3;
376 sdd.MS.D->P->S3cnt = 0;
377 while (sdd.MS.D->P->S3) {
378 sdd.MS.D->P->S3cnt++;
379 sdd.MS.D->P->S3 = sdd.MS.D->P->S3->next;
380 }sdd.MS.D->P->S3 = SMSP3top;
381 [self writeInt:fp val:sdd.MS.D->P->S3cnt];
384 for (int k = 0;k < sdd.MS.D->P->S3cnt;k++) {
385 [self writeMapScript3:fp];
386 sdd.MS.D->P->S3 = sdd.MS.D->P->S3->next;
387 }sdd.MS.D->P->S3 = SMSP3top;
391 if(sdd.MS.D->P->type == 6)
392 [self writeMapScript4:fp];
394 if(sdd.MS.D->P->type == 23){
395 MAPSCRIPT5 *SMSP5top = sdd.MS.D->P->S5;
397 sdd.MS.D->P->S5cnt = 0;
398 while (sdd.MS.D->P->S5) {
399 sdd.MS.D->P->S5cnt++;
400 sdd.MS.D->P->S5 = sdd.MS.D->P->S5->next;
401 }sdd.MS.D->P->S5 = SMSP5top;
402 [self writeInt:fp val:sdd.MS.D->P->S5cnt];
404 for (int k = 0;k < sdd.MS.D->P->S5cnt;k++) {
405 [self writeMapScript5:fp];
406 sdd.MS.D->P->S5 = sdd.MS.D->P->S5->next;
407 }sdd.MS.D->P->S5 = SMSP5top;
411 if(sdd.MS.D->P->type == 10)
412 [self writeMapScript6:fp];
414 if(sdd.MS.D->P->type == 15)
415 [self writeMapScript7:fp];
417 sdd.MS.D->P = sdd.MS.D->P->next;
418 }sdd.MS.D->P = SMSPtop;
421 sdd.MS.D = sdd.MS.D->next;
426 -(void)writeMapScript1:(FILE*)fp{
428 if(!sdd.MS.D->P->S1.name)
429 sdd.MS.D->P->S1.name = [@"" retain];
430 if(!sdd.MS.D->P->S1.str)
431 sdd.MS.D->P->S1.str = [@"" retain];
432 if(!sdd.MS.D->P->S1.iName)
433 sdd.MS.D->P->S1.iName = [@"" retain];
434 if(!sdd.MS.D->P->S1.nameID)
435 sdd.MS.D->P->S1.nameID = [@"" retain];
437 [self writeNSString:fp str:sdd.MS.D->P->S1.name];
438 [self writeNSString:fp str:sdd.MS.D->P->S1.str];
439 [self writeNSString:fp str:sdd.MS.D->P->S1.iName];
440 [self writeNSString:fp str:sdd.MS.D->P->S1.nameID];
451 -(void)writeMapScript2:(FILE*)fp{
453 [self writeNSString:fp str:sdd.MS.D->P->S2->selection];
454 [self writeNSString:fp str:sdd.MS.D->P->S2->labelJump];
457 //struct _MAPSCRIPT2 *next;
464 -(void)writeMapScript3:(FILE*)fp{
466 [self writeInt:fp val:sdd.MS.D->P->S3->x];
467 [self writeInt:fp val:sdd.MS.D->P->S3->y];
468 [self writeInt:fp val:sdd.MS.D->P->S3->flag];
470 [self writeInt:fp val:sdd.MS.D->P->S3->type];
471 [self writeInt:fp val:sdd.MS.D->P->S3->team];
473 [self writeInt:fp val:sdd.MS.D->P->S3->unitNum];
474 [self writeInt:fp val:sdd.MS.D->P->S3->loadInt];
477 //struct _MAPSCRIPT3 *next;
493 -(void)writeMapScript4:(FILE*)fp{
495 [self writeInt:fp val:sdd.MS.D->P->S4.lagFixFlag];
496 [self writeNSString:fp str:sdd.MS.D->P->S4.COMPrabel];
497 [self writeNSString:fp str:sdd.MS.D->P->S4.FAILrabel];
499 [self writeInt:fp val:sdd.MS.D->P->S4.suicchiFlag];
501 sdd.MS.D->P->S4.suicchiCnt = 0;
502 if(sdd.MS.D->P->S4.suicchi)
503 for(int l = 0;*(sdd.MS.D->P->S4.suicchi + l) > 0;l++) {
504 sdd.MS.D->P->S4.suicchiCnt++;
505 }[self writeInt:fp val:(int)sdd.MS.D->P->S4.suicchiCnt];
507 for(int l = 0;l < sdd.MS.D->P->S4.suicchiCnt;l++) {
508 [self writeInt:fp val:(int)*(sdd.MS.D->P->S4.suicchi + l)];
511 [self writeInt:fp val:sdd.MS.D->P->S4.suicchiONOFF];
514 [self writeInt:fp val:sdd.MS.D->P->S4.hensuFlag];
515 [self writeInt:fp val:sdd.MS.D->P->S4.hensu1];
516 [self writeInt:fp val:sdd.MS.D->P->S4.teisuFlag];
517 [self writeInt:fp val:sdd.MS.D->P->S4.teisuValue];
518 [self writeInt:fp val:sdd.MS.D->P->S4.hensu2flag];
519 [self writeInt:fp val:sdd.MS.D->P->S4.hensu2];
520 [self writeInt:fp val:sdd.MS.D->P->S4.hensuType];
522 [self writeInt:fp val:sdd.MS.D->P->S4.timerFlag];
523 [self writeInt:fp val:sdd.MS.D->P->S4.timerMin];
524 [self writeInt:fp val:sdd.MS.D->P->S4.timerSec];
525 [self writeInt:fp val:sdd.MS.D->P->S4.timerType];
527 [self writeInt:fp val:sdd.MS.D->P->S4.unitNumFlag];
528 [self writeInt:fp val:sdd.MS.D->P->S4.team];
529 [self writeInt:fp val:sdd.MS.D->P->S4.unitNum];
530 [self writeInt:fp val:sdd.MS.D->P->S4.unitType];
531 [self writeInt:fp val:sdd.MS.D->P->S4.unitTypeFlag];
534 UNIT2 *subjTop = sdd.MS.D->P->S4.subj;
536 sdd.MS.D->P->S4.subjCnt = 0;
537 while (sdd.MS.D->P->S4.subj) {
538 sdd.MS.D->P->S4.subjCnt++;
539 sdd.MS.D->P->S4.subj = sdd.MS.D->P->S4.subj->next;
540 }sdd.MS.D->P->S4.subj = subjTop;
541 [self writeInt:fp val:sdd.MS.D->P->S4.subjCnt];
543 for (int k = 0;k < sdd.MS.D->P->S4.subjCnt;k++) {
544 [self writeMapScript4subj:fp];
545 sdd.MS.D->P->S4.subj = sdd.MS.D->P->S4.subj->next;
546 }sdd.MS.D->P->S4.subj = subjTop;
551 [self writeInt:fp val:sdd.MS.D->P->S4.placeFlag];
552 PLACEMENT *waypTop = sdd.MS.D->P->S4.wayp;
554 sdd.MS.D->P->S4.waypCnt = 0;
555 while (sdd.MS.D->P->S4.wayp) {
556 sdd.MS.D->P->S4.waypCnt++;
557 sdd.MS.D->P->S4.wayp = sdd.MS.D->P->S4.wayp->next;
558 }sdd.MS.D->P->S4.wayp = waypTop;
559 [self writeInt:fp val:sdd.MS.D->P->S4.waypCnt];
561 for (int k = 0;k < sdd.MS.D->P->S4.waypCnt;k++) {
562 [self writeMapScript4wayp:fp];
563 sdd.MS.D->P->S4.wayp = sdd.MS.D->P->S4.wayp->next;
564 }sdd.MS.D->P->S4.wayp = waypTop;
566 [self writeInt:fp val:sdd.MS.D->P->S4.unitCMDflag];
567 [self writeInt:fp val:sdd.MS.D->P->S4.unitCMD];
570 [self writeInt:fp val:sdd.MS.D->P->S4.objeFlag];
571 UNIT2 *objeTop = sdd.MS.D->P->S4.obje;
573 sdd.MS.D->P->S4.objeCnt = 0;
574 while (sdd.MS.D->P->S4.obje) {
575 sdd.MS.D->P->S4.objeCnt++;
576 sdd.MS.D->P->S4.obje = sdd.MS.D->P->S4.obje->next;
577 }sdd.MS.D->P->S4.obje = objeTop;
578 [self writeInt:fp val:sdd.MS.D->P->S4.objeCnt];
580 for (int k = 0;k < sdd.MS.D->P->S4.objeCnt;k++) {
581 [self writeMapScript4obje:fp];
582 sdd.MS.D->P->S4.obje = sdd.MS.D->P->S4.obje->next;
583 }sdd.MS.D->P->S4.obje = objeTop;
585 [self writeInt:fp val:sdd.MS.D->P->S4.objeRange];
589 [self writeInt:fp val:sdd.MS.D->P->S4.buildFlag];
590 BUILD2 *buildTop = sdd.MS.D->P->S4.build;
592 sdd.MS.D->P->S4.buildCnt = 0;
593 while (sdd.MS.D->P->S4.build) {
594 sdd.MS.D->P->S4.buildCnt++;
595 sdd.MS.D->P->S4.build = sdd.MS.D->P->S4.build->next;
596 }sdd.MS.D->P->S4.build = buildTop;
597 [self writeInt:fp val:sdd.MS.D->P->S4.buildCnt];
599 for (int k = 0;k < sdd.MS.D->P->S4.buildCnt;k++) {
600 [self writeMapScript4build:fp];
601 sdd.MS.D->P->S4.build = sdd.MS.D->P->S4.build->next;
602 }sdd.MS.D->P->S4.build = buildTop;
607 -(void)writeMapScript4subj:(FILE*)fp{
609 [self writeInt:fp val:sdd.MS.D->P->S4.subj->team];
610 [self writeInt:fp val:sdd.MS.D->P->S4.subj->x];
611 [self writeInt:fp val:sdd.MS.D->P->S4.subj->y];
614 //struct _UNIT2 *next;
623 -(void)writeMapScript4wayp:(FILE*)fp{
625 [self writeInt:fp val:sdd.MS.D->P->S4.wayp->type];
626 [self writeInt:fp val:sdd.MS.D->P->S4.wayp->x];
627 [self writeInt:fp val:sdd.MS.D->P->S4.wayp->y];
628 [self writeInt:fp val:sdd.MS.D->P->S4.wayp->z];
629 [self writeInt:fp val:sdd.MS.D->P->S4.wayp->x2];
630 [self writeInt:fp val:sdd.MS.D->P->S4.wayp->y2];
633 //struct _PLACEMENT *next;
644 -(void)writeMapScript4obje:(FILE*)fp{
646 [self writeInt:fp val:sdd.MS.D->P->S4.obje->team];
647 [self writeInt:fp val:sdd.MS.D->P->S4.obje->x];
648 [self writeInt:fp val:sdd.MS.D->P->S4.obje->y];
651 //struct _UNIT2 *next;
660 -(void)writeMapScript4build:(FILE*)fp{
662 [self writeInt:fp val:sdd.MS.D->P->S4.build->team];
663 [self writeInt:fp val:sdd.MS.D->P->S4.build->x];
664 [self writeInt:fp val:sdd.MS.D->P->S4.build->y];
667 //struct _BUILD2 *next;
668 //struct _BUILDCHIP *C;
676 -(void)writeMapScript5:(FILE*)fp{
678 [self writeInt:fp val:sdd.MS.D->P->S5->x];
679 [self writeInt:fp val:sdd.MS.D->P->S5->y];
680 [self writeInt:fp val:sdd.MS.D->P->S5->type];
681 [self writeInt:fp val:sdd.MS.D->P->S5->team];
682 [self writeInt:fp val:sdd.MS.D->P->S5->unitNum];
683 [self writeInt:fp val:sdd.MS.D->P->S5->saveInt];
686 //struct _MAPSCRIPT5 *next;
702 -(void)writeMapScript6:(FILE*)fp{
704 [self writeInt:fp val:sdd.MS.D->P->S6.team];
706 [self writeInt:fp val:sdd.MS.D->P->S6.RCsupply];
707 [self writeInt:fp val:sdd.MS.D->P->S6.RCfood];
708 [self writeInt:fp val:sdd.MS.D->P->S6.RCmoney];
710 [self writeInt:fp val:sdd.MS.D->P->S6.RCsupplyAdd];
711 [self writeInt:fp val:sdd.MS.D->P->S6.RCfoodAdd];
712 [self writeInt:fp val:sdd.MS.D->P->S6.RCmoneyAdd];
714 [self writeInt:fp val:sdd.MS.D->P->S6.RCsupplyValue];
715 [self writeInt:fp val:sdd.MS.D->P->S6.RCfoodValue];
716 [self writeInt:fp val:sdd.MS.D->P->S6.RCmoneyValue];
718 [self writeInt:fp val:sdd.MS.D->P->S6.RCsupplySelect];
719 [self writeInt:fp val:sdd.MS.D->P->S6.RCfoodSelect];
720 [self writeInt:fp val:sdd.MS.D->P->S6.RCmoneySelect];
722 [self writeInt:fp val:sdd.MS.D->P->S6.RCsupplyS];
723 [self writeInt:fp val:sdd.MS.D->P->S6.RCfoodS];
724 [self writeInt:fp val:sdd.MS.D->P->S6.RCmoneyS];
728 -(void)writeMapScript7:(FILE*)fp{
730 [self writeInt:fp val:sdd.MS.D->P->S7.type];
732 [self writeInt:fp val:sdd.MS.D->P->S7.maxFlag];
733 [self writeInt:fp val:sdd.MS.D->P->S7.percentFlag];
734 [self writeInt:fp val:sdd.MS.D->P->S7.extendFlag];
736 [self writeInt:fp val:sdd.MS.D->P->S7.fluctuate];
737 [self writeInt:fp val:sdd.MS.D->P->S7.valueType];
739 [self writeNSString:fp str:sdd.MS.D->P->S7.value];
741 [self writeInt:fp val:sdd.MS.D->P->S7.rdm];
744 [self writeInt:fp val:sdd.MS.D->P->S7.teamFlag];
745 [self writeInt:fp val:sdd.MS.D->P->S7.team];
747 [self writeInt:fp val:sdd.MS.D->P->S7.unitFlag];
748 [self writeInt:fp val:sdd.MS.D->P->S7.valueFlag];
750 MS7Atop = sdd.MS.D->P->S7.A;
751 while (sdd.MS.D->P->S7.A) {
752 sdd.MS.D->P->S7.S7Acnt++;
753 sdd.MS.D->P->S7.A = sdd.MS.D->P->S7.A->next;
754 }sdd.MS.D->P->S7.A = MS7Atop;
756 MS7Btop = sdd.MS.D->P->S7.B;
757 while (sdd.MS.D->P->S7.B) {
758 sdd.MS.D->P->S7.S7Bcnt++;
759 sdd.MS.D->P->S7.B = sdd.MS.D->P->S7.B->next;
760 }sdd.MS.D->P->S7.B = MS7Btop;
762 [self writeInt:fp val:sdd.MS.D->P->S7.S7Acnt];
763 [self writeInt:fp val:sdd.MS.D->P->S7.S7Bcnt];
766 MS7Atop = sdd.MS.D->P->S7.A;
767 for(int i = 0;i < sdd.MS.D->P->S7.S7Acnt;i++){
769 [self writeInt:fp val:sdd.MS.D->P->S7.A->x];
770 [self writeInt:fp val:sdd.MS.D->P->S7.A->y];
771 [self writeInt:fp val:sdd.MS.D->P->S7.A->team];
772 [self writeInt:fp val:sdd.MS.D->P->S7.A->unitNum];
774 sdd.MS.D->P->S7.A = sdd.MS.D->P->S7.A->next;
775 }sdd.MS.D->P->S7.A = MS7Atop;
777 MS7Btop = sdd.MS.D->P->S7.B;
778 for(int i = 0;i < sdd.MS.D->P->S7.S7Bcnt;i++){
780 [self writeInt:fp val:sdd.MS.D->P->S7.B->x];
781 [self writeInt:fp val:sdd.MS.D->P->S7.B->y];
782 [self writeInt:fp val:sdd.MS.D->P->S7.B->team];
783 [self writeInt:fp val:sdd.MS.D->P->S7.B->unitNum];
784 [self writeInt:fp val:sdd.MS.D->P->S7.B->saveInt];
786 sdd.MS.D->P->S7.B = sdd.MS.D->P->S7.B->next;
787 }sdd.MS.D->P->S7.B = MS7Btop;
791 -(void)writeMapScriptBGM:(FILE*)fp{
793 [self writeNSString:fp str:sdd.MS.D->P->BGM.name];
794 [self writeNSString:fp str:sdd.MS.D->P->BGM.fName];
803 -(void)writeMapScriptSE:(FILE*)fp{
805 [self writeNSString:fp str:sdd.MS.D->P->SE.name];
806 [self writeNSString:fp str:sdd.MS.D->P->SE.fName];
815 -(void)writeMapScriptSC:(FILE*)fp{
817 [self writeInt:fp val:sdd.MS.D->P->sc.scFlag];
818 [self writeInt:fp val:sdd.MS.D->P->sc.edcdFlag];
826 -(void)writeMapScriptGAOV:(FILE*)fp{
828 [self writeNSString:fp str:sdd.MS.D->P->gaov.fNname];
829 [self writeInt:fp val:sdd.MS.D->P->gaov.gaovFlag];
830 [self writeInt:fp val:sdd.MS.D->P->gaov.edcdFlag];
840 -(int)readInt:(FILE*)fp{
845 for(counter= INT_MAX;counter > 0;counter >>= 8){
846 unsigned char nowData = 0;
847 fread(&nowData, sizeof(unsigned char), 1, fp);
848 result |= (int)nowData << shiftLen;
855 -(NSString*)readNSString:(FILE*)fp strOut:(NSString*)strOut{
856 int length = [self readInt:fp];
858 fread(strOutcc, sizeof(strOut), length, fp);
859 strOut = [[NSString stringWithUTF8String:strOutcc] retain];
864 -(NSImage*)readNSImage:(FILE*)fp imgOut:(NSImage*)imgOut dcnt:(int)dcnt dfix:(int)dfix{
865 unsigned char idat[1024];
868 NSMutableData *binaryData = [NSMutableData dataWithCapacity:sizeof(idat)];
871 for(int i = 0;i < dcnt;i++){
872 size += fread(idat, 1, 1024, fp);
881 NSMutableData* data = [NSMutableData dataWithBytes:idat length:sizeof(unsigned char)*1024];
882 [binaryData appendData:data];
886 imgOut = [[[NSImage alloc] initWithData:binaryData] retain];
891 -(void)readBiuldD:(FILE*)fp row:(int)r{
893 sdd2[datRow].dB[r].number = (int)[self readInt:fp];
894 sdd2[datRow].dB[r].team = (int)[self readInt:fp];
895 sdd2[datRow].dB[r].chipNumber = (int)[self readInt:fp];
896 sdd2[datRow].dB[r].makeLv = (int)[self readInt:fp];
898 sdd2[datRow].dB[r].x = (int)[self readInt:fp];
899 sdd2[datRow].dB[r].y = (int)[self readInt:fp];
900 sdd2[datRow].dB[r].z = (int)[self readInt:fp];
902 sdd2[datRow].dB[r].dead = (int)[self readInt:fp];
904 sdd2[datRow].dB[r].imgAdCnt = (int)[self readInt:fp];
905 sdd2[datRow].dB[r].imgAdFix = (int)[self readInt:fp];
906 sdd2[datRow].dB[r].img = [self readNSImage:fp imgOut:sdd2[datRow].dB[r].img dcnt:sdd2[datRow].dB[r].imgAdCnt dfix:sdd2[datRow].dB[r].imgAdFix];
908 [self readBuildChipD:fp val:&sdd2[datRow].dB[r].C];
911 -(void)readBuildChipD:(FILE*)fp val:(BUILDCHIPD*)val{
913 val->chipNumb = (int)[self readInt:fp];
914 val->name = [[self readNSString:fp strOut:val->name] retain];
915 val->nameID = [[self readNSString:fp strOut:val->nameID] retain];
917 fread(&val->S_C, sizeof(BSTATUS), 1, fp);
919 //NSLog(@"awww man...");
924 -(void)readUnitD:(FILE*)fp row:(int)r{
926 sdd2[datRow].dU[r].CPU = (int)[self readInt:fp];
927 sdd2[datRow].dU[r].number = (int)[self readInt:fp];
928 sdd2[datRow].dU[r].team = (int)[self readInt:fp];
929 sdd2[datRow].dU[r].chipNumber = (int)[self readInt:fp];
930 sdd2[datRow].dU[r].chipNumberL = (int)[self readInt:fp];
932 sdd2[datRow].dU[r].x = (int)[self readInt:fp];
933 sdd2[datRow].dU[r].y = (int)[self readInt:fp];
934 sdd2[datRow].dU[r].z = (int)[self readInt:fp];
936 sdd2[datRow].dU[r].ix = (int)[self readInt:fp];
937 sdd2[datRow].dU[r].iy = (int)[self readInt:fp];
938 sdd2[datRow].dU[r].iz = (int)[self readInt:fp];
940 sdd2[datRow].dU[r].dead = (int)[self readInt:fp];
942 sdd2[datRow].dU[r].loadChipFlag = (int)[self readInt:fp];
944 sdd2[datRow].dU[r].unControlable = (int)[self readInt:fp];
945 sdd2[datRow].dU[r].joinArmyFromNext = (int)[self readInt:fp];
946 sdd2[datRow].dU[r].persuasion = (int)[self readInt:fp];
948 sdd2[datRow].dU[r].targType1L = (int)[self readInt:fp];
949 sdd2[datRow].dU[r].targType2L = (int)[self readInt:fp];
950 sdd2[datRow].dU[r].targType1D = (int)[self readInt:fp];
951 sdd2[datRow].dU[r].targType2D = (int)[self readInt:fp];
953 sdd2[datRow].dU[r].army = [[self readNSString:fp strOut:sdd2[datRow].dU[r].army] retain];
956 sdd2[datRow].dU[r].imgAdCnt = (int)[self readInt:fp];
957 sdd2[datRow].dU[r].imgAdFix = (int)[self readInt:fp];
958 sdd2[datRow].dU[r].img = [self readNSImage:fp imgOut:sdd2[datRow].dU[r].img dcnt:sdd2[datRow].dU[r].imgAdCnt dfix:sdd2[datRow].dU[r].imgAdFix];
961 [self readUnitChipD:fp val:&sdd2[datRow].dU[r].C];
962 [self readUnitChipLD:fp val:&sdd2[datRow].dU[r].CL];
966 -(void)readUnitChipD:(FILE*)fp val:(UNITCHIPD*)val{
968 val->chipNumb = (int)[self readInt:fp];
969 val->name = [[self readNSString:fp strOut:val->name] retain];
970 val->nameNick = [[self readNSString:fp strOut:val->nameNick] retain];
971 val->nameClass = [[self readNSString:fp strOut:val->nameClass] retain];
972 val->nameID = [[self readNSString:fp strOut:val->nameID] retain];
976 fread(&val->R_C, sizeof(RESIST), 1, fp);
977 fread(&val->S_C, sizeof(STATUS), 1, fp);
979 //NSLog(@"creepy jude...");
982 -(void)readUnitChipLD:(FILE*)fp val:(LOADCHIPD*)val{
984 val->chipNumb = (int)[self readInt:fp];
985 val->name = [[self readNSString:fp strOut:val->name] retain];
986 val->nameID = [[self readNSString:fp strOut:val->nameID] retain];
990 fread(&val->R_C, sizeof(RESIST), 1, fp);
991 fread(&val->S_C, sizeof(STATUS2), 1, fp);
993 //NSLog(@"creepy jude...2");
996 -(void)readMapScript:(FILE*)fp{
998 sdd2[datRow].MS.EGClight.endType1 = (int)[self readInt:fp];
999 sdd2[datRow].MS.EGClight.endType2 = (int)[self readInt:fp];
1000 for(int i = 0;i < 64;i++)
1001 sdd2[datRow].MS.EGClight.etValue1[i] = [[self readNSString:fp strOut:sdd2[datRow].MS.EGClight.etValue1[i]] retain];
1002 for(int i = 0;i < 64;i++)
1003 sdd2[datRow].MS.EGClight.etValue2[i] = [[self readNSString:fp strOut:sdd2[datRow].MS.EGClight.etValue2[i]] retain];
1005 sdd2[datRow].MS.EGCdark.endType1 = (int)[self readInt:fp];
1006 sdd2[datRow].MS.EGCdark.endType2 = (int)[self readInt:fp];
1007 for(int i = 0;i < 64;i++)
1008 sdd2[datRow].MS.EGCdark.etValue1[i] = [[self readNSString:fp strOut:sdd2[datRow].MS.EGCdark.etValue1[i]] retain];
1009 for(int i = 0;i < 64;i++)
1010 sdd2[datRow].MS.EGCdark.etValue2[i] = [[self readNSString:fp strOut:sdd2[datRow].MS.EGCdark.etValue2[i]] retain];
1012 sdd2[datRow].MS.playerSet1 = (int)[self readInt:fp];
1013 sdd2[datRow].MS.playerSet2 = (int)[self readInt:fp];
1014 sdd2[datRow].MS.battleSetMode = (int)[self readInt:fp];
1015 sdd2[datRow].MS.employAllowedFlag = (int)[self readInt:fp];
1016 sdd2[datRow].MS.buildAllowedFlag = (int)[self readInt:fp];
1017 sdd2[datRow].MS.summonAllowedFlag = (int)[self readInt:fp];
1019 sdd2[datRow].MS.scenarioSetMode = (int)[self readInt:fp];
1020 sdd2[datRow].MS.scenarioNumbCrnt = (int)[self readInt:fp];
1021 sdd2[datRow].MS.scenarioNumbNext = (int)[self readInt:fp];
1023 for(int i = 0;i < 4096;i++)
1024 sdd2[datRow].MS.guildListRegist[i] = (int)[self readInt:fp];
1025 sdd2[datRow].MS.guildListRegistNum11 = (int)[self readInt:fp];
1026 sdd2[datRow].MS.guildListRegistNum12 = (int)[self readInt:fp];
1028 for(int i = 0;i < 4096;i++)
1029 sdd2[datRow].MS.guildListRegist2[i] = (int)[self readInt:fp];
1030 sdd2[datRow].MS.guildListRegistNum21 = (int)[self readInt:fp];
1031 sdd2[datRow].MS.guildListRegistNum22 = (int)[self readInt:fp];
1034 sdd2[datRow].MS.SCRPTnameCnt = (int)[self readInt:fp];
1035 sdd2[datRow].MS.SCRPTname = [NSMutableArray new];
1036 for(int j = 0;j < sdd2[datRow].MS.SCRPTnameCnt;j++)
1037 [sdd2[datRow].MS.SCRPTname addObject:@""];
1038 for(int i = 0;i < sdd2[datRow].MS.SCRPTnameCnt;i++)
1039 sdd2[datRow].MS.SCRPTname[i] = [[self readNSString:fp strOut:sdd2[datRow].MS.SCRPTname[i]] retain];
1042 MAPSCRIPTD *SMSDtop = sdd2[datRow].MS.D;
1044 sdd2[datRow].MS.Dcnt = (int)[self readInt:fp];
1046 for (int i = 0;i < sdd2[datRow].MS.Dcnt;i++) {
1049 sdd2[datRow].MS.D = calloc(1, sizeof(MAPSCRIPTD));
1050 if(i + 1 < sdd2[datRow].MS.Dcnt)
1051 sdd2[datRow].MS.D->next = calloc(1, sizeof(MAPSCRIPTD));
1052 SMSDtop = sdd2[datRow].MS.D;
1054 }else if(i + 1 < sdd2[datRow].MS.Dcnt)
1055 sdd2[datRow].MS.D->next = calloc(1, sizeof(MAPSCRIPTD));
1057 sdd2[datRow].MS.D->SCRPTcnt = (int)[self readInt:fp];
1058 sdd2[datRow].MS.D->SCRPT = [NSMutableArray new];
1059 for(int j = 0;j < sdd2[datRow].MS.D->SCRPTcnt;j++)
1060 [sdd2[datRow].MS.D->SCRPT addObject:@""];
1061 for(int j = 0;j < sdd2[datRow].MS.D->SCRPTcnt;j++)
1062 sdd2[datRow].MS.D->SCRPT[j] = [[self readNSString:fp strOut:sdd2[datRow].MS.D->SCRPT[j]] retain];
1065 sdd2[datRow].MS.D->endFlag = (int)[self readInt:fp];
1066 sdd2[datRow].MS.D->index = (int)[self readInt:fp];
1067 sdd2[datRow].MS.D->x = (int)[self readInt:fp];
1068 sdd2[datRow].MS.D->y = (int)[self readInt:fp];
1069 sdd2[datRow].MS.D->type = (int)[self readInt:fp];
1070 sdd2[datRow].MS.D->ET1 = (int)[self readInt:fp];
1071 sdd2[datRow].MS.D->ET2 = (int)[self readInt:fp];
1072 sdd2[datRow].MS.D->ET3 = (int)[self readInt:fp];
1073 sdd2[datRow].MS.D->ET4 = (int)[self readInt:fp];
1074 sdd2[datRow].MS.D->ETtype = (int)[self readInt:fp];
1075 sdd2[datRow].MS.D->onlyInitialDeley = (int)[self readInt:fp];
1076 sdd2[datRow].MS.D->initialDeleyedFlag = (int)[self readInt:fp];
1077 sdd2[datRow].MS.D->switch1f = (int)[self readInt:fp];
1078 sdd2[datRow].MS.D->switch2f = (int)[self readInt:fp];
1080 sdd2[datRow].MS.D->switch1cnt = (int)[self readInt:fp];
1081 sdd2[datRow].MS.D->switch2cnt = (int)[self readInt:fp];
1083 if(sdd2[datRow].MS.D->switch1cnt > 0)
1084 sdd2[datRow].MS.D->switch1 = calloc(sdd2[datRow].MS.D->switch1cnt, sizeof(int));
1085 for(int j = 0;j < sdd2[datRow].MS.D->switch1cnt;j++) {
1086 *(sdd2[datRow].MS.D->switch1 + j) = (int)[self readInt:fp];
1088 if(sdd2[datRow].MS.D->switch2cnt > 0)
1089 sdd2[datRow].MS.D->switch2 = calloc(sdd2[datRow].MS.D->switch2cnt, sizeof(int));
1090 for(int j = 0;j < sdd2[datRow].MS.D->switch2cnt;j++) {
1091 *(sdd2[datRow].MS.D->switch2 + j) = (int)[self readInt:fp];
1095 MAPSCRIPT0 *SMSPtop = sdd2[datRow].MS.D->P;
1097 sdd2[datRow].MS.D->Pcnt = (int)[self readInt:fp];
1099 for (int j = 0;j < sdd2[datRow].MS.D->Pcnt;j++) {
1102 sdd2[datRow].MS.D->P = calloc(1, sizeof(MAPSCRIPT0));
1103 if(j + 1 < sdd2[datRow].MS.D->Pcnt)
1104 sdd2[datRow].MS.D->P->next = calloc(1, sizeof(MAPSCRIPT0));
1105 SMSPtop = sdd2[datRow].MS.D->P;
1106 }else if(j + 1 < sdd2[datRow].MS.D->Pcnt)
1107 sdd2[datRow].MS.D->P->next = calloc(1, sizeof(MAPSCRIPT0));
1109 sdd2[datRow].MS.D->P->endFlag = (int)[self readInt:fp];
1110 sdd2[datRow].MS.D->P->succeessfulFlag = (int)[self readInt:fp];
1111 sdd2[datRow].MS.D->P->indent = (int)[self readInt:fp];
1112 sdd2[datRow].MS.D->P->val = (int)[self readInt:fp];
1113 sdd2[datRow].MS.D->P->valCnt = (int)[self readInt:fp];
1114 sdd2[datRow].MS.D->P->timerMin = (int)[self readInt:fp];
1115 sdd2[datRow].MS.D->P->timerSec = (int)[self readInt:fp];
1116 sdd2[datRow].MS.D->P->timerEntire = (int)[self readInt:fp];
1118 sdd2[datRow].MS.D->P->timerFlag = (int)[self readInt:fp];
1119 sdd2[datRow].MS.D->P->timerVisible = (int)[self readInt:fp];
1120 sdd2[datRow].MS.D->P->timerRun = (int)[self readInt:fp];
1121 sdd2[datRow].MS.D->P->timerMode = (int)[self readInt:fp];
1122 sdd2[datRow].MS.D->P->wait = (int)[self readInt:fp];
1123 sdd2[datRow].MS.D->P->titleBack = (int)[self readInt:fp];
1125 sdd2[datRow].MS.D->P->label = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->label] retain];
1126 sdd2[datRow].MS.D->P->labelJump = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->labelJump] retain];
1127 sdd2[datRow].MS.D->P->memo = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->memo] retain];
1129 sdd2[datRow].MS.D->P->switch1cnt = (int)[self readInt:fp];
1130 sdd2[datRow].MS.D->P->switch2cnt = (int)[self readInt:fp];
1132 if(sdd2[datRow].MS.D->P->switch1cnt > 0)
1133 sdd2[datRow].MS.D->P->switch1 = calloc(sdd2[datRow].MS.D->P->switch1cnt, sizeof(int));
1134 for(int k = 0;k < sdd2[datRow].MS.D->P->switch1cnt;k++) {
1135 *(sdd2[datRow].MS.D->P->switch1 + k) = (int)[self readInt:fp];
1138 if(sdd2[datRow].MS.D->P->switch2cnt > 0)
1139 sdd2[datRow].MS.D->P->switch2 = calloc(sdd2[datRow].MS.D->P->switch2cnt, sizeof(int));
1140 for(int k = 0;k < sdd2[datRow].MS.D->P->switch2cnt;k++) {
1141 *(sdd2[datRow].MS.D->P->switch2 + k) = (int)[self readInt:fp];
1144 [self readMapScriptBGM:fp];
1145 [self readMapScriptSE:fp];
1146 [self readMapScriptSC:fp];
1147 [self readMapScriptGAOV:fp];
1149 sdd2[datRow].MS.D->P->type = (int)[self readInt:fp];
1152 if(sdd2[datRow].MS.D->P->type != 7)
1153 sdd2[datRow].MS.D->P->label = NULL;
1154 if(sdd2[datRow].MS.D->P->type != 8)
1155 sdd2[datRow].MS.D->P->labelJump = NULL;
1156 if(sdd2[datRow].MS.D->P->type != 9)
1157 sdd2[datRow].MS.D->P->memo = NULL;
1159 if(sdd2[datRow].MS.D->P->type == 0)
1160 [self readMapScript1:fp];
1162 if(sdd2[datRow].MS.D->P->type == 1){
1163 MAPSCRIPT2 *SMSP2top = sdd2[datRow].MS.D->P->S2;
1165 sdd2[datRow].MS.D->P->S2cnt = (int)[self readInt:fp];
1167 for (int k = 0;k < sdd2[datRow].MS.D->P->S2cnt;k++) {
1169 sdd2[datRow].MS.D->P->S2 = calloc(1, sizeof(MAPSCRIPT2));
1170 if(k + 1 < sdd2[datRow].MS.D->P->S2cnt)
1171 sdd2[datRow].MS.D->P->S2->next = calloc(1, sizeof(MAPSCRIPT2));
1172 SMSP2top = sdd2[datRow].MS.D->P->S2;
1173 }else if(k + 1 < sdd2[datRow].MS.D->P->S2cnt)
1174 sdd2[datRow].MS.D->P->S2->next = calloc(1, sizeof(MAPSCRIPT2));
1175 [self readMapScript2:fp];
1176 sdd2[datRow].MS.D->P->S2 = sdd2[datRow].MS.D->P->S2->next;
1178 if(sdd2[datRow].MS.D->P->S2)
1179 sdd2[datRow].MS.D->P->S2->next = NULL;
1180 sdd2[datRow].MS.D->P->S2 = SMSP2top;
1184 if(sdd2[datRow].MS.D->P->type == 22){
1185 MAPSCRIPT3 *SMSP3top = sdd2[datRow].MS.D->P->S3;
1187 sdd2[datRow].MS.D->P->S3cnt = (int)[self readInt:fp];
1189 for (int k = 0;k < sdd2[datRow].MS.D->P->S3cnt;k++) {
1191 sdd2[datRow].MS.D->P->S3 = calloc(1, sizeof(MAPSCRIPT3));
1192 if(k + 1 < sdd2[datRow].MS.D->P->S3cnt)
1193 sdd2[datRow].MS.D->P->S3->next = calloc(1, sizeof(MAPSCRIPT3));
1194 SMSP3top = sdd2[datRow].MS.D->P->S3;
1195 }else if(k + 1 < sdd2[datRow].MS.D->P->S3cnt)
1196 sdd2[datRow].MS.D->P->S3->next = calloc(1, sizeof(MAPSCRIPT3));
1197 [self readMapScript3:fp];
1198 sdd2[datRow].MS.D->P->S3 = sdd2[datRow].MS.D->P->S3->next;
1199 }sdd2[datRow].MS.D->P->S3 = SMSP3top;
1201 if(sdd2[datRow].MS.D->P->type == 6)
1202 [self readMapScript4:fp];
1204 if(sdd2[datRow].MS.D->P->type == 23){
1205 MAPSCRIPT5 *SMSP5top = sdd2[datRow].MS.D->P->S5;
1207 sdd2[datRow].MS.D->P->S5cnt = (int)[self readInt:fp];
1209 for (int k = 0;k < sdd2[datRow].MS.D->P->S5cnt;k++) {
1211 sdd2[datRow].MS.D->P->S5 = calloc(1, sizeof(MAPSCRIPT5));
1212 if(k + 1 < sdd2[datRow].MS.D->P->S5cnt)
1213 sdd2[datRow].MS.D->P->S5->next = calloc(1, sizeof(MAPSCRIPT5));
1214 SMSP5top = sdd2[datRow].MS.D->P->S5;
1215 }else if(k + 1 < sdd2[datRow].MS.D->P->S5cnt)
1216 sdd2[datRow].MS.D->P->S5->next = calloc(1, sizeof(MAPSCRIPT5));
1217 [self readMapScript5:fp];
1218 sdd2[datRow].MS.D->P->S5 = sdd2[datRow].MS.D->P->S5->next;
1219 }sdd2[datRow].MS.D->P->S5 = SMSP5top;
1222 if(sdd2[datRow].MS.D->P->type == 10)
1223 [self readMapScript6:fp];
1227 sdd2[datRow].MS.D->P = sdd2[datRow].MS.D->P->next;
1229 if(sdd2[datRow].MS.D->P)
1230 sdd2[datRow].MS.D->P->next = NULL;
1232 sdd2[datRow].MS.D->P = SMSPtop;
1235 sdd2[datRow].MS.D = sdd2[datRow].MS.D->next;
1237 if(sdd2[datRow].MS.D)
1238 sdd2[datRow].MS.D->next = NULL;
1240 sdd2[datRow].MS.D = SMSDtop;
1247 -(void)readMapScript1:(FILE*)fp{
1249 sdd2[datRow].MS.D->P->S1.name = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->S1.name] retain];
1250 sdd2[datRow].MS.D->P->S1.str = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->S1.str] retain];
1251 sdd2[datRow].MS.D->P->S1.iName = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->S1.iName] retain];
1252 sdd2[datRow].MS.D->P->S1.nameID = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->S1.nameID] retain];
1254 for(int k = 0; k < UCN;k++){
1255 if(sdd2[datRow].MS.D->P->S1.nameID)
1256 if([sdd2[datRow].MS.D->P->S1.nameID isEqualToString:UC[k].nameID]){
1257 sdd2[datRow].MS.D->P->S1.img = [UC[k].imgb retain];
1261 for(int k = 0; k < LCN;k++){
1262 if(sdd2[datRow].MS.D->P->S1.nameID)
1263 if([sdd2[datRow].MS.D->P->S1.nameID isEqualToString:LC[k].nameID]){
1264 sdd2[datRow].MS.D->P->S1.img = [LC[k].imgb retain];
1270 if(sdd2[datRow].MS.D->P->S1.nameID)
1271 if([sdd2[datRow].MS.D->P->S1.nameID isEqualToString:EIMG->name]){
1272 sdd2[datRow].MS.D->P->S1.img = [EIMG->img retain];
1287 -(void)readMapScript2:(FILE*)fp{
1289 sdd2[datRow].MS.D->P->S2->selection = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->S2->selection] retain];
1290 sdd2[datRow].MS.D->P->S2->labelJump = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->S2->labelJump] retain];
1293 //struct _MAPSCRIPT2 *next;
1295 NSString *selection;
1296 NSString *labelJump;
1300 -(void)readMapScript3:(FILE*)fp{
1302 sdd2[datRow].MS.D->P->S3->x = (int)[self readInt:fp];
1303 sdd2[datRow].MS.D->P->S3->y = (int)[self readInt:fp];
1304 sdd2[datRow].MS.D->P->S3->flag = (int)[self readInt:fp];
1306 sdd2[datRow].MS.D->P->S3->type = (int)[self readInt:fp];
1307 sdd2[datRow].MS.D->P->S3->team = (int)[self readInt:fp];
1309 sdd2[datRow].MS.D->P->S3->unitNum = (int)[self readInt:fp];
1310 sdd2[datRow].MS.D->P->S3->loadInt = (int)[self readInt:fp];
1312 sdd2[datRow].MS.D->P->S3->U = UC[sdd2[datRow].MS.D->P->S3->unitNum];
1315 //struct _MAPSCRIPT3 *next;
1331 -(void)readMapScript4:(FILE*)fp{
1333 sdd2[datRow].MS.D->P->S4.lagFixFlag = (int)[self readInt:fp];
1334 sdd2[datRow].MS.D->P->S4.COMPrabel = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->S4.COMPrabel] retain];
1335 sdd2[datRow].MS.D->P->S4.FAILrabel = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->S4.FAILrabel] retain];
1337 sdd2[datRow].MS.D->P->S4.suicchiFlag = (int)[self readInt:fp];
1339 sdd2[datRow].MS.D->P->S4.suicchiCnt = (int)[self readInt:fp];
1341 if(sdd2[datRow].MS.D->P->S4.suicchiCnt > 0)
1342 sdd2[datRow].MS.D->P->S4.suicchi = calloc(sdd2[datRow].MS.D->P->S4.suicchiCnt, sizeof(int));
1343 for(int l = 0;l < sdd2[datRow].MS.D->P->S4.suicchiCnt;l++) {
1344 *(sdd2[datRow].MS.D->P->S4.suicchi + l) = (int)[self readInt:fp];
1347 sdd2[datRow].MS.D->P->S4.suicchiONOFF = (int)[self readInt:fp];
1349 sdd2[datRow].MS.D->P->S4.hensuFlag = (int)[self readInt:fp];
1350 sdd2[datRow].MS.D->P->S4.hensu1 = (int)[self readInt:fp];
1351 sdd2[datRow].MS.D->P->S4.teisuFlag = (int)[self readInt:fp];
1352 sdd2[datRow].MS.D->P->S4.teisuValue = (int)[self readInt:fp];
1353 sdd2[datRow].MS.D->P->S4.hensu2flag = (int)[self readInt:fp];
1354 sdd2[datRow].MS.D->P->S4.hensu2 = (int)[self readInt:fp];
1355 sdd2[datRow].MS.D->P->S4.hensuType = (int)[self readInt:fp];
1357 sdd2[datRow].MS.D->P->S4.timerFlag = (int)[self readInt:fp];
1358 sdd2[datRow].MS.D->P->S4.timerMin = (int)[self readInt:fp];
1359 sdd2[datRow].MS.D->P->S4.timerSec = (int)[self readInt:fp];
1360 sdd2[datRow].MS.D->P->S4.timerType = (int)[self readInt:fp];
1362 sdd2[datRow].MS.D->P->S4.unitNumFlag = (int)[self readInt:fp];
1363 sdd2[datRow].MS.D->P->S4.team = (int)[self readInt:fp];
1364 sdd2[datRow].MS.D->P->S4.unitNum = (int)[self readInt:fp];
1365 sdd2[datRow].MS.D->P->S4.unitType = (int)[self readInt:fp];
1366 sdd2[datRow].MS.D->P->S4.unitTypeFlag = (int)[self readInt:fp];
1370 UNIT2 *subjTop = sdd2[datRow].MS.D->P->S4.subj;
1372 sdd2[datRow].MS.D->P->S4.subjCnt = (int)[self readInt:fp];
1374 for (int k = 0;k < sdd2[datRow].MS.D->P->S4.subjCnt;k++) {
1376 sdd2[datRow].MS.D->P->S4.subj = calloc(1, sizeof(UNIT2));
1377 if(k + 1 < sdd2[datRow].MS.D->P->S4.subjCnt)
1378 sdd2[datRow].MS.D->P->S4.subj->next = calloc(1, sizeof(UNIT2));
1379 subjTop = sdd2[datRow].MS.D->P->S4.subj;
1380 }else if(k + 1 < sdd2[datRow].MS.D->P->S4.subjCnt)
1381 sdd2[datRow].MS.D->P->S4.subj->next = calloc(1, sizeof(UNIT2));
1382 [self readMapScript4subj:fp];
1383 sdd2[datRow].MS.D->P->S4.subj = sdd2[datRow].MS.D->P->S4.subj->next;
1384 }sdd2[datRow].MS.D->P->S4.subj = subjTop;
1388 sdd2[datRow].MS.D->P->S4.placeFlag = (int)[self readInt:fp];
1389 PLACEMENT *waypTop = sdd2[datRow].MS.D->P->S4.wayp;
1391 sdd2[datRow].MS.D->P->S4.waypCnt = (int)[self readInt:fp];
1393 for (int k = 0;k < sdd2[datRow].MS.D->P->S4.waypCnt;k++) {
1395 sdd2[datRow].MS.D->P->S4.wayp = calloc(1, sizeof(PLACEMENT));
1396 if(k + 1 < sdd2[datRow].MS.D->P->S4.waypCnt)
1397 sdd2[datRow].MS.D->P->S4.wayp->next = calloc(1, sizeof(PLACEMENT));
1398 waypTop = sdd2[datRow].MS.D->P->S4.wayp;
1399 }else if(k + 1 < sdd2[datRow].MS.D->P->S4.waypCnt)
1400 sdd2[datRow].MS.D->P->S4.wayp->next = calloc(1, sizeof(PLACEMENT));
1401 [self readMapScript4wayp:fp];
1402 sdd2[datRow].MS.D->P->S4.wayp = sdd2[datRow].MS.D->P->S4.wayp->next;
1403 }sdd2[datRow].MS.D->P->S4.wayp = waypTop;
1405 sdd2[datRow].MS.D->P->S4.unitCMDflag = (int)[self readInt:fp];
1406 sdd2[datRow].MS.D->P->S4.unitCMD = (int)[self readInt:fp];
1409 sdd2[datRow].MS.D->P->S4.objeFlag = (int)[self readInt:fp];
1410 UNIT2 *objeTop = sdd2[datRow].MS.D->P->S4.obje;
1412 sdd2[datRow].MS.D->P->S4.objeCnt = (int)[self readInt:fp];
1414 for (int k = 0;k < sdd2[datRow].MS.D->P->S4.objeCnt;k++) {
1416 sdd2[datRow].MS.D->P->S4.obje = calloc(1, sizeof(UNIT2));
1417 if(k + 1 < sdd2[datRow].MS.D->P->S4.objeCnt)
1418 sdd2[datRow].MS.D->P->S4.obje->next = calloc(1, sizeof(UNIT2));
1419 objeTop = sdd2[datRow].MS.D->P->S4.obje;
1420 }else if(k + 1 < sdd2[datRow].MS.D->P->S4.objeCnt)
1421 sdd2[datRow].MS.D->P->S4.obje->next = calloc(1, sizeof(UNIT2));
1422 [self readMapScript4obje:fp];
1423 sdd2[datRow].MS.D->P->S4.obje = sdd2[datRow].MS.D->P->S4.obje->next;
1424 }sdd2[datRow].MS.D->P->S4.obje = objeTop;
1427 sdd2[datRow].MS.D->P->S4.objeRange = (int)[self readInt:fp];
1430 sdd2[datRow].MS.D->P->S4.buildFlag = (int)[self readInt:fp];
1431 BUILD2 *buildTop = sdd2[datRow].MS.D->P->S4.build;
1433 sdd2[datRow].MS.D->P->S4.buildCnt = (int)[self readInt:fp];
1435 for (int k = 0;k < sdd2[datRow].MS.D->P->S4.buildCnt;k++) {
1437 sdd2[datRow].MS.D->P->S4.build = calloc(1, sizeof(BUILD2));
1438 if(k + 1 < sdd2[datRow].MS.D->P->S4.buildCnt)
1439 sdd2[datRow].MS.D->P->S4.build->next = calloc(1, sizeof(BUILD2));
1440 buildTop = sdd2[datRow].MS.D->P->S4.build;
1441 }else if(k + 1 < sdd2[datRow].MS.D->P->S4.buildCnt)
1442 sdd2[datRow].MS.D->P->S4.build->next = calloc(1, sizeof(BUILD2));
1443 [self readMapScript4build:fp];
1444 sdd2[datRow].MS.D->P->S4.build = sdd2[datRow].MS.D->P->S4.build->next;
1445 }sdd2[datRow].MS.D->P->S4.build = buildTop;
1450 -(void)readMapScript4subj:(FILE*)fp{
1453 sdd2[datRow].MS.D->P->S4.subj->team = (int)[self readInt:fp];
1454 sdd2[datRow].MS.D->P->S4.subj->x = (int)[self readInt:fp];
1455 sdd2[datRow].MS.D->P->S4.subj->y = (int)[self readInt:fp];
1458 //struct _UNIT2 *next;
1467 -(void)readMapScript4wayp:(FILE*)fp{
1469 sdd2[datRow].MS.D->P->S4.wayp->type = (int)[self readInt:fp];
1470 sdd2[datRow].MS.D->P->S4.wayp->x = (int)[self readInt:fp];
1471 sdd2[datRow].MS.D->P->S4.wayp->y = (int)[self readInt:fp];
1472 sdd2[datRow].MS.D->P->S4.wayp->z = (int)[self readInt:fp];
1473 sdd2[datRow].MS.D->P->S4.wayp->x2 = (int)[self readInt:fp];
1474 sdd2[datRow].MS.D->P->S4.wayp->y2 = (int)[self readInt:fp];
1477 //struct _PLACEMENT *next;
1488 -(void)readMapScript4obje:(FILE*)fp{
1490 sdd2[datRow].MS.D->P->S4.obje->team = (int)[self readInt:fp];
1491 sdd2[datRow].MS.D->P->S4.obje->x = (int)[self readInt:fp];
1492 sdd2[datRow].MS.D->P->S4.obje->y = (int)[self readInt:fp];
1495 //struct _UNIT2 *next;
1504 -(void)readMapScript4build:(FILE*)fp{
1506 sdd2[datRow].MS.D->P->S4.build->team = (int)[self readInt:fp];
1507 sdd2[datRow].MS.D->P->S4.build->x = (int)[self readInt:fp];
1508 sdd2[datRow].MS.D->P->S4.build->y = (int)[self readInt:fp];
1511 //struct _BUILD2 *next;
1512 //struct _BUILDCHIP *C;
1520 -(void)readMapScript5:(FILE*)fp{
1522 sdd2[datRow].MS.D->P->S5->x = (int)[self readInt:fp];
1523 sdd2[datRow].MS.D->P->S5->y = (int)[self readInt:fp];
1524 sdd2[datRow].MS.D->P->S5->type = (int)[self readInt:fp];
1525 sdd2[datRow].MS.D->P->S5->team = (int)[self readInt:fp];
1526 sdd2[datRow].MS.D->P->S5->unitNum = (int)[self readInt:fp];
1527 sdd2[datRow].MS.D->P->S5->saveInt = (int)[self readInt:fp];
1529 sdd2[datRow].MS.D->P->S5->U = UC[sdd2[datRow].MS.D->P->S5->unitNum];
1532 //struct _MAPSCRIPT5 *next;
1548 -(void)readMapScript6:(FILE*)fp{
1550 sdd2[datRow].MS.D->P->S6.team = (int)[self readInt:fp];
1552 sdd2[datRow].MS.D->P->S6.RCsupply = (int)[self readInt:fp];
1553 sdd2[datRow].MS.D->P->S6.RCfood = (int)[self readInt:fp];
1554 sdd2[datRow].MS.D->P->S6.RCmoney = (int)[self readInt:fp];
1556 sdd2[datRow].MS.D->P->S6.RCsupplyAdd = (int)[self readInt:fp];
1557 sdd2[datRow].MS.D->P->S6.RCfoodAdd = (int)[self readInt:fp];
1558 sdd2[datRow].MS.D->P->S6.RCmoneyAdd = (int)[self readInt:fp];
1560 sdd2[datRow].MS.D->P->S6.RCsupplyValue = (int)[self readInt:fp];
1561 sdd2[datRow].MS.D->P->S6.RCfoodValue = (int)[self readInt:fp];
1562 sdd2[datRow].MS.D->P->S6.RCmoneyValue = (int)[self readInt:fp];
1564 sdd2[datRow].MS.D->P->S6.RCsupplySelect = (int)[self readInt:fp];
1565 sdd2[datRow].MS.D->P->S6.RCfoodSelect = (int)[self readInt:fp];
1566 sdd2[datRow].MS.D->P->S6.RCmoneySelect = (int)[self readInt:fp];
1568 sdd2[datRow].MS.D->P->S6.RCsupplyS = (int)[self readInt:fp];
1569 sdd2[datRow].MS.D->P->S6.RCfoodS = (int)[self readInt:fp];
1570 sdd2[datRow].MS.D->P->S6.RCmoneyS = (int)[self readInt:fp];
1574 -(void)readMapScript7:(FILE*)fp{
1576 sdd2[datRow].MS.D->P->S7.type = (int)[self readInt:fp];
1578 sdd2[datRow].MS.D->P->S7.maxFlag = (int)[self readInt:fp];
1579 sdd2[datRow].MS.D->P->S7.percentFlag = (int)[self readInt:fp];
1580 sdd2[datRow].MS.D->P->S7.type = (int)[self readInt:fp];
1582 sdd2[datRow].MS.D->P->S7.fluctuate = (int)[self readInt:fp];
1583 sdd2[datRow].MS.D->P->S7.valueType = (int)[self readInt:fp];
1585 sdd2[datRow].MS.D->P->S7.value = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->S7.value] retain];
1587 sdd2[datRow].MS.D->P->S7.rdm = (int)[self readInt:fp];
1589 sdd2[datRow].MS.D->P->S7.teamFlag = (int)[self readInt:fp];
1590 sdd2[datRow].MS.D->P->S7.team = (int)[self readInt:fp];
1592 sdd2[datRow].MS.D->P->S7.unitFlag = (int)[self readInt:fp];
1593 sdd2[datRow].MS.D->P->S7.valueFlag = (int)[self readInt:fp];
1596 sdd2[datRow].MS.D->P->S7.S7Acnt = (int)[self readInt:fp];
1597 sdd2[datRow].MS.D->P->S7.S7Bcnt = (int)[self readInt:fp];
1599 for (int k = 0;k < sdd2[datRow].MS.D->P->S7.S7Acnt;k++) {
1601 sdd2[datRow].MS.D->P->S7.A = calloc(1, sizeof(MAPSCRIPT7A));
1602 if(k + 1 < sdd2[datRow].MS.D->P->S7.S7Acnt)
1603 sdd2[datRow].MS.D->P->S7.A->next = calloc(1, sizeof(MAPSCRIPT7A));
1604 MS7Atop = sdd2[datRow].MS.D->P->S7.A;
1605 }else if(k + 1 < sdd2[datRow].MS.D->P->S7.S7Acnt)
1606 sdd2[datRow].MS.D->P->S7.A->next = calloc(1, sizeof(MAPSCRIPT7A));
1608 sdd2[datRow].MS.D->P->S7.A->x = (int)[self readInt:fp];
1609 sdd2[datRow].MS.D->P->S7.A->y = (int)[self readInt:fp];
1610 sdd2[datRow].MS.D->P->S7.A->team = (int)[self readInt:fp];
1611 sdd2[datRow].MS.D->P->S7.A->unitNum = (int)[self readInt:fp];
1613 sdd2[datRow].MS.D->P->S7.A = sdd2[datRow].MS.D->P->S7.A->next;
1614 }sdd2[datRow].MS.D->P->S7.A = MS7Atop;
1617 for (int k = 0;k < sdd2[datRow].MS.D->P->S7.S7Bcnt;k++) {
1619 sdd2[datRow].MS.D->P->S7.B = calloc(1, sizeof(MAPSCRIPT7B));
1620 if(k + 1 < sdd2[datRow].MS.D->P->S7.S7Bcnt)
1621 sdd2[datRow].MS.D->P->S7.B->next = calloc(1, sizeof(MAPSCRIPT7B));
1622 MS7Btop = sdd2[datRow].MS.D->P->S7.B;
1623 }else if(k + 1 < sdd2[datRow].MS.D->P->S7.S7Bcnt)
1624 sdd2[datRow].MS.D->P->S7.B->next = calloc(1, sizeof(MAPSCRIPT7B));
1626 sdd2[datRow].MS.D->P->S7.B->x = (int)[self readInt:fp];
1627 sdd2[datRow].MS.D->P->S7.B->y = (int)[self readInt:fp];
1628 sdd2[datRow].MS.D->P->S7.B->team = (int)[self readInt:fp];
1629 sdd2[datRow].MS.D->P->S7.B->unitNum = (int)[self readInt:fp];
1630 sdd2[datRow].MS.D->P->S7.B->saveInt = (int)[self readInt:fp];
1632 sdd2[datRow].MS.D->P->S7.B = sdd2[datRow].MS.D->P->S7.B->next;
1633 }sdd2[datRow].MS.D->P->S7.B = MS7Btop;
1637 -(void)readMapScriptBGM:(FILE*)fp{
1639 NSString *directoryPath;
1641 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
1642 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
1645 NSString* Cpath = @"data/BGM/";
1646 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
1648 sdd2[datRow].MS.D->P->BGM.name = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->BGM.name] retain];
1649 sdd2[datRow].MS.D->P->BGM.fName = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->BGM.fName] retain];
1651 sdd2[datRow].MS.D->P->BGM.snd = [[[NSSound alloc] initWithContentsOfURL:
1652 [NSURL fileURLWithPath:sdd2[datRow].MS.D->P->BGM.fName] byReference:NO] retain];
1661 -(void)readMapScriptSE:(FILE*)fp{
1663 NSString *directoryPath;
1665 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
1666 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
1669 NSString* Cpath = @"data/BGM/";
1670 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
1672 sdd2[datRow].MS.D->P->SE.name = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->SE.name] retain];
1673 sdd2[datRow].MS.D->P->SE.fName = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->SE.fName] retain];
1675 sdd2[datRow].MS.D->P->SE.snd = [[[NSSound alloc] initWithContentsOfURL:
1676 [NSURL fileURLWithPath:sdd2[datRow].MS.D->P->SE.fName] byReference:NO] retain];
1685 -(void)readMapScriptSC:(FILE*)fp{
1687 sdd2[datRow].MS.D->P->sc.scFlag = (int)[self readInt:fp];
1688 sdd2[datRow].MS.D->P->sc.edcdFlag = (int)[self readInt:fp];
1696 -(void)readMapScriptGAOV:(FILE*)fp{
1699 sdd2[datRow].MS.D->P->gaov.fNname = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->gaov.fNname] retain];
1700 sdd2[datRow].MS.D->P->gaov.gaovFlag = (int)[self readInt:fp];
1701 sdd2[datRow].MS.D->P->gaov.edcdFlag = (int)[self readInt:fp];
1711 -(void)inputFileData{
1720 NSString *directoryPath;
1722 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
1723 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
1726 NSString* Cpath = @"SaveData/";
1727 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
1729 NSString *path = [[NSString alloc] initWithUTF8String:datFilePath];
1731 if(0 && [[NSFileManager defaultManager] fileExistsAtPath:path]){
1739 sdd.name = [sdd2[datRow].name retain];
1740 sdd.imgAdressCnt = sdd2[datRow].imgAdressCnt;
1741 sdd.imgAdressFix = sdd2[datRow].imgAdressFix;
1742 sdd.img = sdd2[datRow].img;
1744 sdd.MFselectedRow = sdd2[datRow].MFselectedRow;
1745 sdd.storyNumb = sdd2[datRow].storyNumb;
1746 sdd.scenarioNumb = sdd2[datRow].scenarioNumb;
1748 sdd.mapfileName = [sdd2[datRow].mapfileName retain];
1749 sdd.levelName = [sdd2[datRow].levelName retain];
1750 sdd.levelName = [sdd2[datRow].scenarioName retain];
1752 sdd.chipHeight = sdd2[datRow].chipHeight;
1753 sdd.chipWidth = sdd2[datRow].chipWidth;
1755 sdd.posX = sdd2[datRow].posX;
1756 sdd.posY = sdd2[datRow].posY;
1758 sdd.eSlctX = sdd2[datRow].eSlctX;
1759 sdd.eSlctY = sdd2[datRow].eSlctY;
1761 sdd.registerNum = sdd2[datRow].registerNum;
1762 sdd.registerNumB = sdd2[datRow].registerNumB;
1764 sdd.esSceneProc = sdd2[datRow].esSceneProc;
1766 sdd.endGameCondition = sdd2[datRow].endGameCondition;
1767 sdd.initMapFlag = sdd2[datRow].initMapFlag;
1768 sdd.initStatusFlag = sdd2[datRow].initStatusFlag;
1769 sdd.TeamCountFlag = sdd2[datRow].TeamCountFlag;
1770 sdd.battleBegin = sdd2[datRow].battleBegin;
1771 sdd.startES = sdd2[datRow].startES;
1773 sdd.cpuAImodeflag = sdd2[datRow].cpuAImodeflag;
1774 sdd.cpuModeATTACKflag = sdd2[datRow].cpuModeATTACKflag;
1775 sdd.cpuModeMOVEflag = sdd2[datRow].cpuModeMOVEflag;
1776 sdd.cpuTurnEndFlag = sdd2[datRow].cpuTurnEndFlag;
1777 sdd.waitSwtichFlag = sdd2[datRow].waitSwtichFlag;
1778 sdd.battleReadyUpFlag = sdd2[datRow].battleReadyUpFlag;
1779 sdd.setBattleModeFlag = sdd2[datRow].setBattleModeFlag;
1781 sdd.wtRdy = sdd2[datRow].wtRdy;
1782 sdd.wtRdy2 = sdd2[datRow].wtRdy2;
1783 sdd.wtRdy3 = sdd2[datRow].wtRdy3;
1785 sdd.wtMovedFlag = sdd2[datRow].wtMovedFlag;
1786 sdd.wtAttackedFlag = sdd2[datRow].wtAttackedFlag;
1787 sdd.unitMoveEndFlag = sdd2[datRow].unitMoveEndFlag;
1788 sdd.battleSetUp = sdd2[datRow].battleSetUp;
1789 sdd.pushStanbyFlag = sdd2[datRow].pushStanbyFlag;
1790 sdd.battleEndFlag = sdd2[datRow].battleEndFlag;
1791 sdd.wtUnitNum = sdd2[datRow].wtUnitNum;
1792 sdd.messageDialog = sdd2[datRow].messageDialog;
1795 for(int i = 0;i < 1002;i++)
1796 for(int j = 0;j < 1002;j++)
1797 sdd.chipNum[i][j] = sdd2[datRow].chipNum[i][j];
1798 for(int i = 0;i < 1002;i++)
1799 for(int j = 0;j < 1002;j++)
1800 sdd.buildNum[i][j] = sdd2[datRow].buildNum[i][j];
1801 for(int i = 0;i < 1002;i++)
1802 for(int j = 0;j < 1002;j++)
1803 sdd.unitNum[i][j] = sdd2[datRow].unitNum[i][j];
1804 for(int i = 0;i < 1002;i++)
1805 for(int j = 0;j < 1002;j++)
1806 sdd.loadNum[i][j] = sdd2[datRow].loadNum[i][j];
1807 for(int i = 0;i < 1002;i++)
1808 for(int j = 0;j < 1002;j++)
1809 sdd.buildTeam[i][j] = sdd2[datRow].buildTeam[i][j];
1810 for(int i = 0;i < 1002;i++)
1811 for(int j = 0;j < 1002;j++)
1812 sdd.unitTeam[i][j] = sdd2[datRow].unitTeam[i][j];
1814 for(int i = 0;i < sdd.registerNum;i++)
1815 sdd.dU[i] = sdd2[datRow].dU[i];
1816 for(int i = 0;i < sdd.registerNumB;i++)
1817 sdd.dB[i] = sdd2[datRow].dB[i];
1819 for(int i = 0;i < 3;i++)
1820 sdd.P[i] = sdd2[datRow].P[i];
1823 for(int i = 0;i < 9999;i++)
1824 sdd.Suicchi[i] = sdd2[datRow].Suicchi[i];
1826 sdd.HensuuNum = sdd2[datRow].HensuuNum;
1827 for(int i = 0;i < 65000;i++)
1828 sdd.Hensuu[i] = [sdd2[datRow].Hensuu[i] retain];
1829 for(int i = 0;i < 65000;i++)
1830 sdd.HensuuName[i] = [sdd2[datRow].HensuuName[i] retain];
1832 sdd.MS = sdd2[datRow].MS;
1836 datExistFlag = true;
1838 datExistFlag = false;
1844 fpo = fopen(datFilePath, "wb");
1849 [self writeNSString:fpo str:sdd.name];
1850 [self writeNSImage:fpo str:sdd.img adCnt:&sdd.imgAdressCnt adFix:&sdd.imgAdressFix];
1853 [self writeInt:fpo val:sdd.MFselectedRow];
1854 [self writeInt:fpo val:sdd.storyNumb];
1855 [self writeInt:fpo val:sdd.scenarioNumb];
1856 [self writeNSString:fpo str:sdd.mapfileName];
1857 [self writeNSString:fpo str:sdd.levelName];
1858 [self writeNSString:fpo str:sdd.scenarioName];
1860 [self writeInt:fpo val:sdd.chipHeight];
1861 [self writeInt:fpo val:sdd.chipWidth];
1862 [self writeInt:fpo val:sdd.posX];
1863 [self writeInt:fpo val:sdd.posY];
1864 [self writeInt:fpo val:sdd.eSlctX];
1865 [self writeInt:fpo val:sdd.eSlctY];
1866 [self writeInt:fpo val:sdd.registerNum];
1867 [self writeInt:fpo val:sdd.registerNumB];
1868 [self writeInt:fpo val:sdd.esSceneProc];
1869 [self writeInt:fpo val:sdd.endGameCondition];
1871 [self writeInt:fpo val:sdd.initMapFlag];
1872 [self writeInt:fpo val:sdd.initStatusFlag];
1873 [self writeInt:fpo val:sdd.TeamCountFlag];
1874 [self writeInt:fpo val:sdd.battleBegin];
1875 [self writeInt:fpo val:sdd.startES];
1877 [self writeInt:fpo val:sdd.cpuAImodeflag];
1878 [self writeInt:fpo val:sdd.cpuModeATTACKflag];
1879 [self writeInt:fpo val:sdd.cpuModeMOVEflag];
1880 [self writeInt:fpo val:sdd.cpuTurnEndFlag];
1881 [self writeInt:fpo val:sdd.waitSwtichFlag];
1882 [self writeInt:fpo val:sdd.battleReadyUpFlag];
1883 [self writeInt:fpo val:sdd.setBattleModeFlag];
1885 [self writeInt:fpo val:sdd.wtRdy];
1886 [self writeInt:fpo val:sdd.wtRdy2];
1887 [self writeInt:fpo val:sdd.wtRdy3];
1889 [self writeInt:fpo val:sdd.wtMovedFlag];
1890 [self writeInt:fpo val:sdd.wtAttackedFlag];
1891 [self writeInt:fpo val:sdd.unitMoveEndFlag];
1892 [self writeInt:fpo val:sdd.battleSetUp];
1893 [self writeInt:fpo val:sdd.pushStanbyFlag];
1894 [self writeInt:fpo val:sdd.battleEndFlag];
1895 [self writeInt:fpo val:sdd.wtUnitNum];
1896 [self writeInt:fpo val:sdd.messageDialog];
1898 /*//これやると容量が重くなる(24MB超えるので保存しない)
1899 for(int i = 0;i < 1002;i++)
1900 for(int j = 0;j < 1002;j++)
1901 [self writeInt:fpo val:sdd.chipNum[i][j]];
1902 for(int i = 0;i < 1002;i++)
1903 for(int j = 0;j < 1002;j++)
1904 [self writeInt:fpo val:sdd.buildNum[i][j]];
1905 for(int i = 0;i < 1002;i++)
1906 for(int j = 0;j < 1002;j++)
1907 [self writeInt:fpo val:sdd.unitNum[i][j]];
1908 for(int i = 0;i < 1002;i++)
1909 for(int j = 0;j < 1002;j++)
1910 [self writeInt:fpo val:sdd.loadNum[i][j]];
1911 for(int i = 0;i < 1002;i++)
1912 for(int j = 0;j < 1002;j++)
1913 [self writeInt:fpo val:sdd.buildTeam[i][j]];
1914 for(int i = 0;i < 1002;i++)
1915 for(int j = 0;j < 1002;j++)
1916 [self writeInt:fpo val:sdd.unitTeam[i][j]];
1919 for(int i = 0;i < sdd.registerNum;i++)
1920 [self writeUnitD:fpo row:i];
1921 for(int i = 0;i < sdd.registerNumB;i++)
1922 [self writeBiuldD:fpo row:i];
1923 NSLog(@"\n(保存)%@:IMGADRESS %p\n", sdd.name,sdd.img);
1925 for(int i = 0;i < 3;i++){
1926 fwrite(&sdd.P[i], sizeof(PLAYER), 1, fpo);
1927 [self writeNSString:fpo str:P[i].name];
1930 for(int i = 0;i < 9999;i++)
1931 [self writeInt:fpo val:sdd.Suicchi[i]];
1933 [self writeInt:fpo val:sdd.HensuuNum];
1934 for(int i = 0;i < 65000;i++)
1935 [self writeNSString:fpo str:sdd.Hensuu[i]];
1936 for(int i = 0;i < 65000;i++)
1937 [self writeNSString:fpo str:sdd.HensuuName[i]];
1940 [self writeMapScript:fpo];
1951 -(void)writeBiuldD:(FILE*)fp row:(int)r{
1953 [self writeInt:fp val:sdd.dB[r].number];
1954 [self writeInt:fp val:sdd.dB[r].team];
1955 [self writeInt:fp val:sdd.dB[r].chipNumber];
1956 [self writeInt:fp val:sdd.dB[r].makeLv];
1958 [self writeInt:fp val:sdd.dB[r].x];
1959 [self writeInt:fp val:sdd.dB[r].y];
1960 [self writeInt:fp val:sdd.dB[r].z];
1962 [self writeInt:fp val:sdd.dB[r].dead];
1964 //[self writeBuildDimage:fp row:r];
1965 [self writeBuildChipD:fp val:sdd.dB[r].C];
1968 -(void)writeBuildChipD:(FILE*)fp val:(BUILDCHIPD)val{
1970 [self writeInt:fp val:val.chipNumb];
1971 [self writeNSString:fp str:val.name];
1972 [self writeNSString:fp str:val.nameID];
1974 fwrite(&val.S_C, sizeof(BSTATUS), 1, fp);
1976 NSLog(@"gj folks...");
1979 -(void)writeBuildDimage:(FILE*)fp row:(int)r{
1982 NSString *directoryPath;
1984 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
1985 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
1987 NSString* Cpath = @"Awars IV.app/Contents/Resources/";
1988 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
1990 NSString *path2 = @INSTANT_IMG;
1993 NSData *imgData = [sdd.dB[r].img TIFFRepresentation];
1994 NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:imgData];
1995 imgData = [brep representationUsingType:NSPNGFileType properties:nil];
1996 [imgData writeToFile:path2 atomically:YES];
1998 fpx = fopen(INSTANT_IMG, "rb");
2000 unsigned char in_buf[1024], out_buf[1024];
2003 sdd.dB[r].imgAdCnt = 0;
2004 sdd.dB[r].imgAdFix = 0;
2007 while (!feof(fpx)) {
2009 rinf = (int)fread((void*)in_buf, 1, 1024, fpx);
2013 memcpy((void*)out_buf, (void*)in_buf, 1024);
2014 rinf = (int)fwrite((void*)out_buf, 1, rinf, fp);
2018 sdd.dB[r].imgAdCnt++;
2019 sdd.dB[r].imgAdFix = rinf;
2022 fpt -= (sdd.dB[r].imgAdCnt-1)*1024;
2024 [self writeInt:fp val:(int)sdd.dB[r].imgAdCnt];
2025 [self writeInt:fp val:(int)sdd.dB[r].imgAdFix];
2029 while (!feof(fpx)) {
2030 rinf = (int)fread((void*)in_buf, 1, 1024, fpx);
2034 memcpy((void*)out_buf, (void*)in_buf, 1024);
2035 rinf = (int)fwrite((void*)out_buf, 1, rinf, fp);
2047 -(void)writeUnitD:(FILE*)fp row:(int)r{
2049 [self writeInt:fp val:sdd.dU[r].CPU];
2050 [self writeInt:fp val:sdd.dU[r].number];
2051 [self writeInt:fp val:sdd.dU[r].team];
2052 [self writeInt:fp val:sdd.dU[r].chipNumber];
2053 [self writeInt:fp val:sdd.dU[r].chipNumberL];
2055 [self writeInt:fp val:sdd.dU[r].x];
2056 [self writeInt:fp val:sdd.dU[r].y];
2057 [self writeInt:fp val:sdd.dU[r].z];
2059 [self writeInt:fp val:sdd.dU[r].ix];
2060 [self writeInt:fp val:sdd.dU[r].iy];
2061 [self writeInt:fp val:sdd.dU[r].iz];
2063 [self writeInt:fp val:sdd.dU[r].dead];
2065 [self writeInt:fp val:sdd.dU[r].loadChipFlag];
2067 [self writeInt:fp val:sdd.dU[r].unControlable];
2068 [self writeInt:fp val:sdd.dU[r].joinArmyFromNext];
2069 [self writeInt:fp val:sdd.dU[r].persuasion];
2071 [self writeInt:fp val:sdd.dU[r].targType1L];
2072 [self writeInt:fp val:sdd.dU[r].targType2L];
2073 [self writeInt:fp val:sdd.dU[r].targType1D];
2074 [self writeInt:fp val:sdd.dU[r].targType2D];
2076 [self writeNSString:fp str:sdd.dU[r].army];
2077 //[self writeUnitDimage:fp row:r];
2080 [self writeUnitChipD:fp val:sdd.dU[r].C];
2081 [self writeUnitChipLD:fp val:sdd.dU[r].CL];
2085 -(void)writeUnitChipD:(FILE*)fp val:(UNITCHIPD)val{
2087 [self writeInt:fp val:val.chipNumb];
2088 [self writeNSString:fp str:val.name];
2089 [self writeNSString:fp str:val.nameNick];
2090 [self writeNSString:fp str:val.nameClass];
2091 [self writeNSString:fp str:val.nameID];
2095 fwrite(&val.R_C, sizeof(RESIST), 1, fp);
2096 fwrite(&val.S_C, sizeof(STATUS), 1, fp);
2098 NSLog(@"oops is right youre supposed to get...");
2101 -(void)writeUnitChipLD:(FILE*)fp val:(LOADCHIPD)val{
2103 [self writeInt:fp val:val.chipNumb];
2104 [self writeNSString:fp str:val.name];
2105 [self writeNSString:fp str:val.nameID];
2109 fwrite(&val.R_C, sizeof(RESIST), 1, fp);
2110 fwrite(&val.S_C, sizeof(STATUS2), 1, fp);
2112 NSLog(@"oops is right youre supposed to get...2");
2115 -(void)writeUnitDimage:(FILE*)fp row:(int)r{
2118 NSString *directoryPath;
2120 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
2121 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
2123 NSString* Cpath = @"Awars IV.app/Contents/Resources/";
2124 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
2126 NSString *path2 = @INSTANT_IMG;
2129 NSData *imgData = [sdd.dU[r].img TIFFRepresentation];
2130 NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:imgData];
2131 imgData = [brep representationUsingType:NSPNGFileType properties:nil];
2132 [imgData writeToFile:path2 atomically:YES];
2134 fpx = fopen(INSTANT_IMG, "rb");
2136 unsigned char in_buf[1024], out_buf[1024];
2139 sdd.dU[r].imgAdCnt = 0;
2140 sdd.dU[r].imgAdFix = 0;
2143 while (!feof(fpx)) {
2145 rinf = (int)fread((void*)in_buf, 1, 1024, fpx);
2149 memcpy((void*)out_buf, (void*)in_buf, 1024);
2150 rinf = (int)fwrite((void*)out_buf, 1, rinf, fp);
2154 sdd.dU[r].imgAdCnt++;
2155 sdd.dU[r].imgAdFix = rinf;
2158 fpt -= (sdd.dU[r].imgAdCnt-1)*1024;
2160 [self writeInt:fp val:(int)sdd.dU[r].imgAdCnt];
2161 [self writeInt:fp val:(int)sdd.dU[r].imgAdFix];
2165 while (!feof(fpx)) {
2166 rinf = (int)fread((void*)in_buf, 1, 1024, fpx);
2170 memcpy((void*)out_buf, (void*)in_buf, 1024);
2171 rinf = (int)fwrite((void*)out_buf, 1, rinf, fp);
2188 NSString *directoryPath;
2190 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
2191 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
2194 NSString* Cpath = @"SaveData/";
2195 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
2202 fpi = fopen(datFilePath, "rb");
2207 sdd2[datRow].name = [[self readNSString:fpi strOut:sdd2[datRow].name] retain];
2209 sdd2[datRow].imgAdressCnt = (int)[self readInt:fpi];
2210 sdd2[datRow].imgAdressFix = (int)[self readInt:fpi];
2211 sdd2[datRow].img = [[self readNSImage:fpi imgOut:sdd2[datRow].img dcnt:sdd2[datRow].imgAdressCnt dfix:sdd2[datRow].imgAdressFix] retain];
2213 sdd2[datRow].MFselectedRow = (int)[self readInt:fpi];
2214 sdd2[datRow].storyNumb = (int)[self readInt:fpi];
2215 sdd2[datRow].scenarioNumb = (int)[self readInt:fpi];
2216 sdd2[datRow].mapfileName = [[self readNSString:fpi strOut:sdd2[datRow].mapfileName] retain];
2217 sdd2[datRow].levelName = [[self readNSString:fpi strOut:sdd2[datRow].levelName] retain];
2218 sdd2[datRow].scenarioName = [ [self readNSString:fpi strOut:sdd2[datRow].scenarioName] retain];
2220 sdd2[datRow].chipHeight = (int)[self readInt:fpi];
2221 sdd2[datRow].chipWidth = (int)[self readInt:fpi];
2222 sdd2[datRow].posX = (int)[self readInt:fpi];
2223 sdd2[datRow].posY = (int)[self readInt:fpi];
2224 sdd2[datRow].eSlctX = (int)[self readInt:fpi];
2225 sdd2[datRow].eSlctY = (int)[self readInt:fpi];
2226 sdd2[datRow].registerNum = (int)[self readInt:fpi];
2227 sdd2[datRow].registerNumB = (int)[self readInt:fpi];
2228 sdd2[datRow].esSceneProc = (int)[self readInt:fpi];
2229 sdd2[datRow].endGameCondition = (int)[self readInt:fpi];
2231 sdd2[datRow].initMapFlag = (int)[self readInt:fpi];
2232 sdd2[datRow].initStatusFlag = (int)[self readInt:fpi];
2233 sdd2[datRow].TeamCountFlag = (int)[self readInt:fpi];
2234 sdd2[datRow].battleBegin = (int)[self readInt:fpi];
2235 sdd2[datRow].startES = (int)[self readInt:fpi];
2237 sdd2[datRow].cpuAImodeflag = (int)[self readInt:fpi];
2238 sdd2[datRow].cpuModeATTACKflag = (int)[self readInt:fpi];
2239 sdd2[datRow].cpuModeMOVEflag = (int)[self readInt:fpi];
2240 sdd2[datRow].cpuTurnEndFlag = (int)[self readInt:fpi];
2241 sdd2[datRow].waitSwtichFlag = (int)[self readInt:fpi];
2242 sdd2[datRow].battleReadyUpFlag = (int)[self readInt:fpi];
2243 sdd2[datRow].setBattleModeFlag = (int)[self readInt:fpi];
2245 sdd2[datRow].wtRdy = (int)[self readInt:fpi];
2246 sdd2[datRow].wtRdy2 = (int)[self readInt:fpi];
2247 sdd2[datRow].wtRdy3 = (int)[self readInt:fpi];
2249 sdd2[datRow].wtMovedFlag = (int)[self readInt:fpi];
2250 sdd2[datRow].wtAttackedFlag = (int)[self readInt:fpi];
2251 sdd2[datRow].unitMoveEndFlag = (int)[self readInt:fpi];
2252 sdd2[datRow].battleSetUp = (int)[self readInt:fpi];
2253 sdd2[datRow].pushStanbyFlag = (int)[self readInt:fpi];
2254 sdd2[datRow].battleEndFlag = (int)[self readInt:fpi];
2255 sdd2[datRow].wtUnitNum = (int)[self readInt:fpi];
2256 sdd2[datRow].messageDialog = (int)[self readInt:fpi];
2258 /*//saveStructとワンセット容量の関係で読み込まない
2259 for(int i = 0;i < 1002;i++)
2260 for(int j = 0;j < 1002;j++)
2261 sdd2[datRow].chipNum[i][j] = (int)[self readInt:fpi];
2262 for(int i = 0;i < 1002;i++)
2263 for(int j = 0;j < 1002;j++)
2264 sdd2[datRow].buildNum[i][j] = (int)[self readInt:fpi];
2265 for(int i = 0;i < 1002;i++)
2266 for(int j = 0;j < 1002;j++)
2267 sdd2[datRow].unitNum[i][j] = (int)[self readInt:fpi];
2268 for(int i = 0;i < 1002;i++)
2269 for(int j = 0;j < 1002;j++)
2270 sdd2[datRow].loadNum[i][j] = (int)[self readInt:fpi];
2271 for(int i = 0;i < 1002;i++)
2272 for(int j = 0;j < 1002;j++)
2273 sdd2[datRow].buildTeam[i][j] = (int)[self readInt:fpi];
2274 for(int i = 0;i < 1002;i++)
2275 for(int j = 0;j < 1002;j++)
2276 sdd2[datRow].unitTeam[i][j] = (int)[self readInt:fpi];
2278 for(int i = 0;i < sdd2[datRow].registerNum;i++)
2279 [self readUnitD:fpi row:i];
2280 for(int i = 0;i < sdd2[datRow].registerNumB;i++)
2281 [self readBiuldD:fpi row:i];
2283 NSLog(@"\n(読み込み)%@:IMGADRESS %p\n",sdd2[datRow].name,sdd2[datRow].img);
2285 for(int i = 0;i < 3;i++){
2286 fread(&sdd2[datRow].P[i], sizeof(PLAYER), 1, fpi);
2287 sdd2[datRow].P[i].name = [[self readNSString:fpi strOut:sdd2[datRow].P[i].name] retain];
2291 for(int i = 0;i < 9999;i++)
2292 sdd2[datRow].Suicchi[i] = (int)[self readInt:fpi];
2294 sdd2[datRow].HensuuNum = (int)[self readInt:fpi];
2295 for(int i = 0;i < 65000;i++)
2296 sdd2[datRow].Hensuu[i] = [[self readNSString:fpi strOut:sdd2[datRow].Hensuu[i]] retain];
2297 for(int i = 0;i < 65000;i++)
2298 sdd2[datRow].HensuuName[i] = [[self readNSString:fpi strOut:sdd2[datRow].HensuuName[i]] retain];
2300 [self readMapScript:fpi];
2307 -(void)loadOptionMenu{
2308 NSString *directoryPath;
2310 directoryPath = [[NSBundle mainBundle] bundlePath];
2311 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
2314 NSString* Cpath = @"Contents/Resources/";
2315 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
2319 fpi = fopen(OPTIONFILE_NAME, "rb");
2323 wtfom.nameTitle = [@"" retain];
2324 NSLog(@"%@", wtfom.nameTitle);
2325 wtfom.nameTitle = [[self readNSString:fpi strOut:wtfom.nameTitle] retain];
2326 wtfom.nameVersion = [[self readNSString:fpi strOut:wtfom.nameVersion] retain];
2327 wtfom.nameOpening = [[self readNSString:fpi strOut:wtfom.nameOpening] retain];
2328 wtfom.nameBGM = [[self readNSString:fpi strOut:wtfom.nameBGM] retain];
2330 wtfom.allowMapEditor = (int)[self readInt:fpi];
2331 wtfom.allowScenarioEditor = (int)[self readInt:fpi];
2332 wtfom.onlyOnceOpening = (int)[self readInt:fpi];
2333 wtfom.newOpeningIsShown = (int)[self readInt:fpi];
2335 wtfom.adCntIT = (int)[self readInt:fpi];
2336 wtfom.adFixIT = (int)[self readInt:fpi];
2337 wtfom.imgTitle = [[self readNSImage:fpi imgOut:wtfom.imgTitle dcnt:wtfom.adCntIT dfix:wtfom.adFixIT] retain];
2340 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
2341 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
2343 Cpath = @"data/Movie";
2347 [[NSFileManager defaultManager] fileExistsAtPath:Cpath isDirectory:&isDirectory];
2350 [[NSFileManager defaultManager] createDirectoryAtPath:Cpath withIntermediateDirectories:YES attributes:nil error:nil];
2353 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
2355 if([[NSFileManager defaultManager] fileExistsAtPath:wtfom.nameOpening])
2356 openingAVP = [[AVPlayer playerWithURL:[NSURL fileURLWithPath:wtfom.nameOpening]] retain];
2360 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
2361 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
2363 Cpath = @"data/BGM/";
2364 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
2368 cwd = getcwd(NULL, 0);
2373 titleBGM = [[[NSSound alloc] initWithContentsOfURL:[NSURL fileURLWithPath:wtfom.nameBGM] byReference:NO] retain];
2378 -(void)openingAVPVfunc{
2380 if(openingAVP && openingAVPVisActive){
2381 openingAVPV.player = openingAVP;
2382 openingAVPV.videoGravity = AVLayerVideoGravityResize;
2385 if(openingAVPVisHidden)
2386 [openingAVPV setHidden:YES];
2388 [openingAVPV setHidden:NO];
2392 -(void)saveOptionMenu{
2393 NSString *directoryPath;
2395 directoryPath = [[NSBundle mainBundle] bundlePath];
2396 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
2399 NSString* Cpath = @"Contents/Resources/";
2400 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
2404 cwd = getcwd(NULL, 0);
2411 fpo = fopen(OPTIONFILE_NAME, "wb");
2415 [self writeNSString:fpo str:wtfom.nameTitle];
2416 [self writeNSString:fpo str:wtfom.nameVersion];
2417 [self writeNSString:fpo str:wtfom.nameOpening];
2418 [self writeNSString:fpo str:wtfom.nameBGM];
2420 [self writeInt:fpo val:wtfom.allowMapEditor];
2421 [self writeInt:fpo val:wtfom.allowScenarioEditor];
2422 [self writeInt:fpo val:wtfom.onlyOnceOpening];
2423 [self writeInt:fpo val:wtfom.newOpeningIsShown];
2425 [self writeNSImage:fpo str:wtfom.imgTitle adCnt:&wtfom.adCntIT adFix:&wtfom.adFixIT];
2435 -(void)clickSGL:(id)sender{
2437 datRow = (int)[saveGameListTV clickedRow];
2440 -(void)clickLFOL:(id)sender{
2442 LFOLrow = (int)[loadFileOutputListTV selectedRow];
2445 for(int i = 1;i <= saveNumb;i++){
2447 for(int j = 0;j < [loadFileOutputListMA count];j++){
2449 if([SDL[j+1].name isEqualToString:[loadFileOutputListMA[LFOLrow] valueForKey:@"name"]]){
2452 [loadFileOutputTF setStringValue:[NSString stringWithFormat:@"%@ まで", SDL[SDLrow+1].levelName]];
2458 [loadFileOutputTF setStringValue:[NSString stringWithFormat:@""]];
2462 -(void)doubleClickBCL:(id)sender{
2483 for(int i = 0;i < slctedUnitNum;i++){
2487 if (MC[chipNum[possionX][possionY]].type == MC_ANTEI) {
2489 if(BC[U->C.S->list[crBCL]-1].type == BC_ANTEI){
2495 if (MC[chipNum[possionX][possionY]].type == MC_CHIKURIN) {
2497 if(BC[U->C.S->list[crBCL]-1].type == BC_CHIKURIN){
2503 if (MC[chipNum[possionX][possionY]].type == MC_ASASE) {
2505 if(BC[U->C.S->list[crBCL]-1].type == BC_ASASE){
2511 if(BC[U->C.S->list[crBCL]].type == BC_SONOTA){
2517 if(buildNum[possionX][possionY] >= 0){
2523 if(P[0].resource >= BC[U->C.S->list[crBCL]-1].Csupply){
2524 if(P[0].food >= BC[U->C.S->list[crBCL]-1].Cfood){
2525 if (P[0].money >= BC[U->C.S->list[crBCL]-1].Cmoney) {
2526 P[0].resource -= BC[U->C.S->list[crBCL]-1].Csupply;
2527 P[0].food -= BC[U->C.S->list[crBCL]-1].Cfood;
2528 P[0].money -= BC[U->C.S->list[crBCL]-1].Cmoney;
2530 buildNum[possionX][possionY] = U->C.S->list[crBCL]-1;
2532 buildTeam[possionX][possionY] = 0;
2535 [self addBuildStatus];
2543 if(P[1].resource >= BC[U->C.S->list[crBCL]-1].Csupply){
2544 if(P[1].food >= BC[U->C.S->list[crBCL]-1].Cfood){
2545 if (P[1].money >= BC[U->C.S->list[crBCL]-1].Cmoney) {
2546 P[1].resource -= BC[U->C.S->list[crBCL]-1].Csupply;
2547 P[1].food -= BC[U->C.S->list[crBCL]-1].Cfood;
2548 P[1].money -= BC[U->C.S->list[crBCL]-1].Cmoney;
2550 buildNum[possionX][possionY] = U->C.S->list[crBCL]-1;
2552 buildTeam[possionX][possionY] = 2;
2554 [self addBuildStatus];
2560 [createPanel close];
2566 -(void)clickBCL:(id)sender{
2567 crBCL = (int)[BCreateListTV clickedRow];
2574 -(void)doubleClickCSL:(id)sender{
2577 for(int i = 0;i < slctedUnitNum;i++){
2582 SKILL *sTop = U->C.S;
2584 if(U->C.S->type == 2) break;
2585 U->C.S = U->C.S->next;
2594 if(U->C.S->cost[crCSL] <= U->C.S_C.MP){
2595 //U->C.S_C.MP -= U->C.S->cost[crCSL];
2596 CSLUC = UC[U->C.S->list[crCSL]-1];
2600 [summonPanel close];
2601 //unitColorInitFlag = true;
2604 if(U->C.S->cost[crCSL] <= U->C.S_C.MP){
2606 //U->C.S_C.MP -= U->C.S->cost[crCSL];
2607 CSLUC = UC[U->C.S->list[crCSL]-1];
2611 [summonPanel close];
2612 //unitColorInitFlag = true;
2619 -(void)clickCSL:(id)sender{
2620 crCSL = (int)[CSummonListTV clickedRow];
2625 -(void)doubleClickCAL:(id)sender{
2627 if([CAttackListTV clickedRow] < 0) return;
2632 int postCAL1 = crCAL1;
2633 int postCAL2 = crCAL2;
2635 if(!battleSet1Flag && !battleSet2Flag){
2637 while (!(AUN[1] == U->number)) {
2643 if(U->chipNumberL < 0){
2645 ATTACK *aTop = U->C.A;
2647 crCAL = (int)[CAttackListTV clickedRow];
2648 crCAL1 = (int)[CAttackListTV clickedRow];
2649 for(int i = 0;i < crCAL;i++){
2650 U->C.A = U->C.A->next;
2653 costMP = U->C.A->MP + floor(U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
2654 costVIG = U->C.A->vigor;
2656 if(costMP <= U->C.S_C.MP && costVIG <= U->C.S_C.vigor){
2657 if(U->C.A->extent > 0){
2658 atkExtentFlag = true;
2660 atkExtentFlag = false;
2670 ATTACK *aTop = U->CL.A;
2671 crCAL = (int)[CAttackListTV clickedRow];
2672 crCAL1 = (int)[CAttackListTV clickedRow];
2673 for(int i = 0;i < crCAL;i++){
2674 U->CL.A = U->CL.A->next;
2677 costMP = U->CL.A->EN + floor(U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
2678 costVIG = U->CL.A->vigor;
2680 if(costMP <= U->CL.S_C.EN && costVIG <= U->C.S_C.vigor){
2682 if(U->CL.A->extent > 0){
2683 atkExtentFlag = true;
2685 atkExtentFlag = false;
2696 if(battleSet1Flag && !battleSet2PushedFlag){
2700 while (!(AUN[1] == U->number)) {
2704 if(U->chipNumberL < 0){
2705 ATTACK *aTop = U->C.A;
2706 crCAL1 = (int)[CAttackListTV clickedRow];
2707 for(int i = 0;i < crCAL1;i++){
2708 U->C.A = U->C.A->next;
2711 costMP = U->C.A->MP + floor(U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
2712 costVIG = U->C.A->vigor;
2715 if(costMP <= U->C.S_C.MP && U->atkRange >= U->C.A->rangeA
2716 && U->atkRange <= U->C.A->rangeB && costVIG >= U->C.S_C.vigor){
2728 ATTACK *aTop = U->CL.A;
2729 crCAL1 = (int)[CAttackListTV clickedRow];
2730 for(int i = 0;i < crCAL1;i++){
2731 U->CL.A = U->CL.A->next;
2734 costMP = U->CL.A->EN + floor(U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
2735 costVIG = U->C.A->vigor;
2737 if(costMP <= U->CL.S_C.EN && U->atkRange >= U->CL.A->rangeA
2738 && U->atkRange <= U->CL.A->rangeB && costVIG >= U->C.S_C.vigor){
2752 if(battleSet2Flag && battleSet2PushedFlag){
2754 while (!(AUN[1] == U->number)) {
2758 if(U->chipNumberL < 0){
2761 while (!(AUN[1] == U->number)) {
2765 int omgRange = U->atkRange;
2768 while (!(DUN[1] == U->number)) {
2772 U->atkRange = omgRange;
2774 ATTACK *aTop = U->C.A;
2775 crCAL2 = (int)[CAttackListTV clickedRow];
2776 for(int i = 0;i < crCAL2;i++){
2777 U->C.A = U->C.A->next;
2780 costMP = U->C.A->MP + floor(U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
2781 costVIG = U->C.A->vigor;
2784 if(costMP <= U->C.S_C.MP && U->atkRange >= U->C.A->rangeA
2785 && U->atkRange <= U->C.A->rangeB && U->C.S_C.vigor){
2798 while (!(AUN[1] == U->number)) {
2802 int omgRange = U->atkRange;
2805 while (!(DUN[1] == U->number)) {
2809 U->atkRange = omgRange;
2811 ATTACK *aTop = U->CL.A;
2812 crCAL2 = (int)[CAttackListTV clickedRow];
2813 for(int i = 0;i < crCAL2;i++){
2814 U->CL.A = U->CL.A->next;
2817 costMP = U->CL.A->EN + floor(U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
2818 costVIG = U->C.A->vigor;
2820 if(costMP <= U->CL.S_C.EN && U->atkRange >= U->CL.A->rangeA
2821 && U->atkRange <= U->CL.A->rangeB && U->C.S_C.vigor){
2844 -(void)clickCAL:(id)sender{
2846 crCAL = (int)[CAttackListTV clickedRow];
2848 if(!battleSetFlag){crCAL = crCAL1;
2849 crCAL1 = (int)[CAttackListTV clickedRow];
2852 while (!(AUN[1] == U->number)) {
2855 }else if(battleSetFlag){crCAL = crCAL2;
2856 crCAL2 = (int)[CAttackListTV clickedRow];
2859 while (!(DUN[1] == U->number)) {
2865 if(U->chipNumberL >= 0) {
2867 [self initCAttackSelect2];
2869 else if(U->chipNumber >= 0) {
2871 [self initCAttackSelect];
2876 -(void)initCAttackSelect{
2880 while (!(AUN[1] == U->number)) {
2883 if(!battleSetFlag){crCAL = crCAL1;
2884 //crCAL1 = (int)[CAttackListTV clickedRow];
2887 while (!(AUN[1] == U->number)) {
2890 }else if(battleSetFlag){crCAL = crCAL2;
2891 //crCAL2 = (int)[CAttackListTV clickedRow];
2894 while (!(DUN[1] == U->number)) {
2902 [CAttackListAC setSelectionIndex:crCAL];
2903 crCAL = (int)[CAttackListTV clickedRow];
2904 ATTACK *aTop = U->C.A;
2905 for(int i = 0;i < crCAL;i++){
2906 U->C.A = U->C.A->next;
2910 [bullet setStringValue:[NSString stringWithFormat:@"---/---"]];
2911 [costP setStringValue:[NSString stringWithFormat:@"---(%g)", U->C.S_C.MP]];
2912 [costV setStringValue:[NSString stringWithFormat:@"---(%d)", U->C.S_C.vigor]];
2913 [region setStringValue:[NSString stringWithFormat:@"陸-- 宙-- 海-- 空--"]];
2914 [crytical setStringValue:@""];
2915 [atkProperty setStringValue:@""];
2920 if(U->C.A->bullet > 0) [bullet setStringValue:[NSString stringWithFormat:@"%d/%d", U->C.A->bulletC, U->C.A->bullet]];
2921 else [bullet setStringValue:[NSString stringWithFormat:@"---/---"]];
2922 if(U->C.A->MP > 0) [costP setStringValue:[NSString stringWithFormat:@"%g(%g)", U->C.A->MP + floor(U->C.A->pMP*U->C.S_M.MP/100+0.5), U->C.S_C.MP]];
2923 else [costP setStringValue:[NSString stringWithFormat:@"---(%g)", U->C.S_C.MP]];
2924 if(U->C.A->vigor > 0) [costV setStringValue:[NSString stringWithFormat:@"%d(%d)", U->C.A->vigor, U->C.S_C.vigor]];
2925 else [costV setStringValue:[NSString stringWithFormat:@"---(%d)", U->C.S_C.vigor]];
2927 NSString *Riku, *Chu, *Umi, *Sora;
2929 switch (U->C.A->riku) {
2931 Riku = [@"A" retain];
2934 Riku = [@"B"retain];
2937 Riku = [@"C"retain];
2940 Riku = [@"D"retain];
2943 Riku = [@"E"retain];
2946 Riku = [@"S"retain];
2949 Riku = [@"SS"retain];
2952 switch (U->C.A->chu) {
2954 Chu = [@"A" retain];
2957 Chu = [@"B" retain];
2960 Chu = [@"C" retain];
2963 Chu = [@"D" retain];
2966 Chu = [@"E" retain];
2969 Chu = [@"S" retain];
2972 Chu = [@"SS" retain];
2975 switch (U->C.A->umi) {
2977 Umi = [@"A" retain];
2980 Umi = [@"B" retain];
2983 Umi = [@"C" retain];
2986 Umi = [@"D" retain];
2989 Umi = [@"E" retain];
2992 Umi = [@"S" retain];
2995 Umi = [@"SS" retain];
2998 switch (U->C.A->sora) {
3000 Sora = [@"A" retain];
3003 Sora = [@"B" retain];
3006 Sora = [@"C" retain];
3009 Sora = [@"D" retain];
3012 Sora = [@"E" retain];
3015 Sora = [@"S" retain];
3018 Sora = [@"SS" retain];
3029 [region setStringValue:[NSString stringWithFormat:@"陸%@ 宙%@ 海%@ 空%@", Riku, Chu, Umi, Sora]];
3030 [crytical setStringValue:@""];
3031 [atkProperty setStringValue:@""];
3037 -(void)initCAttackSelect2{
3041 while (!(AUN[1] == U->number)) {
3045 //crCAL1 = (int)[CAttackListTV clickedRow];
3047 while (!(AUN[1] == U->number)) {
3052 //crCAL2 = (int)[CAttackListTV clickedRow];
3054 while (!(DUN[1] == U->number)) {
3060 ATTACK *aTop = U->CL.A;
3061 for(int i = 0;i < crCAL;i++){
3062 U->CL.A = U->CL.A->next;
3070 if(U->CL.A->bullet > 0) [bullet setStringValue:[NSString stringWithFormat:@"%d/%d", U->CL.A->bulletC, U->CL.A->bullet]];
3071 else [bullet setStringValue:[NSString stringWithFormat:@"---/---"]];
3072 if(U->CL.A->EN > 0) [costP setStringValue:[NSString stringWithFormat:@"%g(%g)", U->CL.A->EN + floor(U->CL.A->pEN*U->CL.S_M.EN/100+0.5), U->CL.S_C.EN]];
3073 else [costP setStringValue:[NSString stringWithFormat:@"---(%g)", U->CL.S_C.EN]];
3074 if(U->CL.A->vigor > 0) [costV setStringValue:[NSString stringWithFormat:@"%d(%d)", U->CL.A->vigor, U->C.S_C.vigor]];
3075 else [costV setStringValue:[NSString stringWithFormat:@"---(%d)", U->C.S_C.vigor]];
3077 NSString *Riku, *Chu, *Umi, *Sora;
3079 switch (U->CL.A->riku) {
3102 switch (U->CL.A->chu) {
3125 switch (U->CL.A->umi) {
3148 switch (U->CL.A->sora) {
3179 [region setStringValue:[NSString stringWithFormat:@"陸%@ 宙%@ 海%@ 空%@", Riku, Chu, Umi, Sora]];
3180 [crytical setStringValue:@""];
3181 [atkProperty setStringValue:@""];
3188 -(void)doubleClickCRL:(id)sender{
3190 if(crCRL == -1) return;
3192 if(unitBreak->team == 0)
3193 if(P[0].resource >= BRU->S_M.cSupply && P[0].food >= BRU->S_M.cFood && P[0].money >= BRU->S_M.cMoney){
3195 P[0].resource -= BRU->S_M.cSupply;
3196 P[0].food -= BRU->S_M.cFood;
3197 P[0].money -= BRU->S_M.cMoney;
3199 unitNum[possionX][possionY] = BRUindex;
3200 if(researchTeam == 0) unitTeam[possionX][possionY] = 0;
3201 if(researchTeam == 2) unitTeam[possionX][possionY] = 2;
3203 [self addUnitStatus];
3205 unitColorInitFlag = true;
3207 [researchPanel close];
3210 if(unitBreak->team == 2)
3211 if(P[1].resource >= BRU->S_M.cSupply && P[1].food >= BRU->S_M.cFood && P[1].money >= BRU->S_M.cMoney){
3213 P[1].resource -= BRU->S_M.cSupply;
3214 P[1].food -= BRU->S_M.cFood;
3215 P[1].money -= BRU->S_M.cMoney;
3217 unitNum[possionX][possionY] = BRUindex;
3218 if(researchTeam == 0) unitTeam[possionX][possionY] = 0;
3219 if(researchTeam == 2) unitTeam[possionX][possionY] = 2;
3221 [self addUnitStatus];
3223 unitColorInitFlag = true;
3225 [researchPanel close];
3230 -(void)clickCRL:(id)sender{
3232 crCRL = (int)[CResearchListTV clickedRow];
3237 B = &BC[buildNum[possionX][possionY]];
3247 for(int i = 0;i <= crCRL;i++){
3250 [researchATK setStringValue:[NSString stringWithFormat:@"攻撃力 %g", BU->S_M.ATK]];
3251 [researchDEF setStringValue:[NSString stringWithFormat:@"防御力 %g", BU->S_M.DEF]];
3252 [researchCAP setStringValue:[NSString stringWithFormat:@"演算力 %g", BU->S_M.CAP]];
3253 [researchACU setStringValue:[NSString stringWithFormat:@"命中値 %g", BU->S_M.ACU]];
3254 [researchEVA setStringValue:[NSString stringWithFormat:@"回避値 %g", BU->S_M.EVA]];
3255 [researchMOV setStringValue:[NSString stringWithFormat:@"移動力 %d", BU->S_M.MOV]];
3256 [researchIMG setImage:BU->imgb];
3257 [researchIMG setImageScaling:NSScaleToFit];
3263 for (int i = 0; BRU->nameID != UC[i].nameID && i < UCN;i++) {
3270 if(buildTeam[possionX][possionY] == 0 || buildTeam[possionX][possionY] == 1){
3279 for(int i = k;i <= crCRL;i++){
3281 [researchATK setStringValue:[NSString stringWithFormat:@"攻撃力 %g", UC[*(GuildDisp1 + i - k)-1].S_M.ATK]];
3282 [researchDEF setStringValue:[NSString stringWithFormat:@"防御力 %g", UC[*(GuildDisp1 + i - k)-1].S_M.DEF]];
3283 [researchCAP setStringValue:[NSString stringWithFormat:@"演算力 %g", UC[*(GuildDisp1 + i - k)-1].S_M.CAP]];
3284 [researchACU setStringValue:[NSString stringWithFormat:@"命中値 %g", UC[*(GuildDisp1 + i - k)-1].S_M.ACU]];
3285 [researchEVA setStringValue:[NSString stringWithFormat:@"回避値 %g", UC[*(GuildDisp1 + i - k)-1].S_M.EVA]];
3286 [researchMOV setStringValue:[NSString stringWithFormat:@"移動力 %d", UC[*(GuildDisp1 + i - k)-1].S_M.MOV]];
3287 [researchIMG setImage:UC[*(GuildDisp1 + i - k)-1].imgb];
3288 [researchIMG setImageScaling:NSScaleToFit];
3293 for (int i = 0; UC[*(GuildDisp1 + crCRL - k)-1].nameID != UC[i].nameID && i < UCN;i++) {
3295 }BRU = &UC[BRUindex];
3299 }else if(buildTeam[possionX][possionY] == 2 || buildTeam[possionX][possionY] == 3){
3308 for(int i = k;i <= crCRL;i++){
3310 [researchATK setStringValue:[NSString stringWithFormat:@"攻撃力 %g", UC[*(GuildDisp2 + i - k)-1].S_M.ATK]];
3311 [researchDEF setStringValue:[NSString stringWithFormat:@"防御力 %g", UC[*(GuildDisp2 + i - k)-1].S_M.DEF]];
3312 [researchCAP setStringValue:[NSString stringWithFormat:@"演算力 %g", UC[*(GuildDisp2 + i - k)-1].S_M.CAP]];
3313 [researchACU setStringValue:[NSString stringWithFormat:@"命中値 %g", UC[*(GuildDisp2 + i - k)-1].S_M.ACU]];
3314 [researchEVA setStringValue:[NSString stringWithFormat:@"回避値 %g", UC[*(GuildDisp2 + i - k)-1].S_M.EVA]];
3315 [researchMOV setStringValue:[NSString stringWithFormat:@"移動力 %d", UC[*(GuildDisp2 + i - k)-1].S_M.MOV]];
3316 [researchIMG setImage:UC[*(GuildDisp2 + i - k)-1].imgb];
3317 [researchIMG setImageScaling:NSScaleToFit];
3323 for (int i = 0; UC[*(GuildDisp2 + crCRL - k)-1].nameID != UC[i].nameID && i < UCN;i++) {
3325 }BRU = &UC[BRUindex];
3334 -(void)SetStatusFunc{
3343 double S, V, A, D, M, I;
3464 S = U->C.S_C.STR + STRfix;
3465 V = U->C.S_C.VIT + VITfix;
3466 A = U->C.S_C.AGI + AGIfix;
3467 D = U->C.S_C.DEX + DEXfix;
3468 M = U->C.S_C.MEN + MENfix;
3469 I = U->C.S_C.INT + INTfix;
3471 U->C.S_C.ATK = (S*5 + D*2 + A)/8;
3472 U->C.S_C.DEF = (V*5 + M*2 + S)/8;
3473 U->C.S_C.CAP = (I*4 + D*1 + M*2)/7;
3474 U->C.S_C.ACU = (D*4 + A*1 + M)/6;
3475 U->C.S_C.EVA = (A*4 + A*1 + M)/6;
3477 U->C.S_C.ATK += 0.5;
3478 U->C.S_C.DEF += 0.5;
3479 U->C.S_C.CAP += 0.5;
3480 U->C.S_C.ACU += 0.5;
3481 U->C.S_C.EVA += 0.5;
3483 U->C.S_C.ATK = floor(U->C.S_C.ATK);
3484 U->C.S_C.DEF = floor(U->C.S_C.DEF);
3485 U->C.S_C.CAP = floor(U->C.S_C.CAP);
3486 U->C.S_C.ACU = floor(U->C.S_C.ACU);
3487 U->C.S_C.EVA = floor(U->C.S_C.EVA);
3494 -(void)initMapscript{
3496 for(int i = 0;i < 9999;i++){
3500 MAPSCRIPT MS = MF[MFselectedRow+1].MS;
3501 MAPSCRIPTD *MSDtop = MS.D;
3504 MAPSCRIPT0 *MSDPt = MS.D->P;
3507 MS.D->endFlag = false;
3510 double deltaET = floor(MS.D->ET2) - floor(MS.D->ET1);
3512 if(deltaET < 0) deltaET = 0;
3514 if(MS.D->ET1 <= eventTime && MS.D->ET2 >= eventTime){
3515 if(deltaET > 0) deltaR = rand()%(int)deltaET;
3518 MS.D->ET3 = MS.D->ET1 + (double)deltaR;
3519 MS.D->ET4 = MS.D->ET3;
3523 MS.D->P->endFlag = false;
3524 MS.D->P = MS.D->P->next;
3533 MF[MFselectedRow+1].MS = MS;
3538 -(void)EventLoopFS:(NSTimer*)time{
3540 if(openingAVP && openingAVPVisActive){
3541 if(openingAVP.rate <= 0 || openingAVPisDeactive){
3543 openingAVPVisHidden = true;
3544 [self openingAVPVfunc];
3545 openingAVPVisActive = false;
3546 openingAVPisDeactive = false;
3547 if(titleBGM) [titleBGM play];
3549 }else if(!openingAVP && openingAVPVisActive){
3550 openingAVPVisActive = false;
3551 openingAVPisDeactive = false;
3552 if(titleBGM) [titleBGM play];
3556 //NSLog(@"msgCnt %d", msgCnt);
3558 if(stopByFSVmenuFlag){
3559 [FSMenu makeKeyAndOrderFront:nil];
3564 menuDisplayFlag = false;
3567 if(saveDataLoadedFlag)
3573 for(int i = 0;i < DUN[1];i++){
3578 //NSLog(@"%d, %d", MF[0].MS.playerSet1, sdd2[0].MS.playerSet1);
3580 //if(Utarget) NSLog(@"PX %d PY %d UX %d UY %d", possionX, possionY, Utarget->x, Utarget->y);
3595 if(!fuckingLoadBugFix){
3597 [battleWindow close];
3600 if(extentBattleFlag){
3603 attackingWait = true;
3606 if(!battleSetUpIgnore){
3609 battleSet1Flag = false;
3610 battleSet2Flag = false;
3611 battleSettingFlag = false;
3612 extentBattleFlag = false;
3613 extentBattleFlag2 = true;
3616 if(cpuAtkExtendFlag2){
3619 attackingWait = true;
3622 if(!battleSetUpIgnore){
3626 battleSet1Flag = false;
3627 battleSet2Flag = false;
3628 battleSettingFlag = false;
3629 extentBattleFlag = false;
3630 extentBattleFlag2 = true;
3631 cpuAtkExtendFlag2 = false;
3632 [battlePanel close];
3634 }if(extentBattleFlag2){
3639 if(setBattleModeFlag){
3640 if(!battleReadyUpFlag){battleReadyUpFlag = true;
3642 P[0].resource = 500;
3645 P[1].resource = 500;
3648 P[2].resource = 500;
3652 [battleReadyUpPN1 setStringValue:P[0].name];
3653 [battleReadyUpPN2 setStringValue:P[1].name];
3655 NSString *string = @"";
3656 string = [string stringByAppendingFormat:@"%@の勝利条件\n", P[0].name];
3657 if(MF[MFselectedRow+1].MS.EGClight.endType1 == 1){
3658 string = [string stringByAppendingString:@"敵の壊滅\n"];
3660 }else if(MF[MFselectedRow+1].MS.EGClight.endType1 == 2){
3661 string = [string stringByAppendingString:@"味方の壊滅\n"];
3665 string = [string stringByAppendingString:@"\n"];
3667 string = [string stringByAppendingFormat:@"%@の勝利条件\n", P[1].name];
3668 if(MF[MFselectedRow+1].MS.EGCdark.endType1 == 2){
3669 string = [string stringByAppendingString:@"敵の壊滅\n"];
3670 }else if(MF[MFselectedRow+1].MS.EGClight.endType1 == 1){
3671 string = [string stringByAppendingString:@"味方の壊滅\n"];
3676 [battleReadyUpSupply1 setIntValue:P[0].resource];
3677 [battleReadyUpFood1 setIntValue:P[0].food];
3678 [battleReadyUpMoney1 setIntValue:P[0].money];
3680 [battleReadyUpSupply2 setIntValue:P[1].resource];
3681 [battleReadyUpFood2 setIntValue:P[1].food];
3682 [battleReadyUpMoney2 setIntValue:P[1].money];
3684 if(MF[MFselectedRow+1].MS.playerSet1 == 1){
3685 [battleReadyUpMAN1A setEnabled:NO];
3686 [battleReadyUpMAN1B setEnabled:NO];
3687 [battleReadyUpMAN1A setState:1];
3688 [battleReadyUpMAN1B setState:0];
3689 }else if(MF[MFselectedRow+1].MS.playerSet1 == 2){
3690 [battleReadyUpMAN1A setEnabled:NO];
3691 [battleReadyUpMAN1B setEnabled:NO];
3692 [battleReadyUpMAN1A setState:0];
3693 [battleReadyUpMAN1B setState:1];
3695 MF[MFselectedRow+1].MS.playerSet1 = 1;
3696 [battleReadyUpMAN1A setEnabled:YES];
3697 [battleReadyUpMAN1B setEnabled:YES];
3698 [battleReadyUpMAN1A setState:1];
3699 [battleReadyUpMAN1B setState:0];
3702 if(MF[MFselectedRow+1].MS.playerSet2 == 1){
3703 [battleReadyUpMAN2A setEnabled:NO];
3704 [battleReadyUpMAN2B setEnabled:NO];
3705 [battleReadyUpMAN2A setState:1];
3706 [battleReadyUpMAN2B setState:0];
3707 }else if(MF[MFselectedRow+1].MS.playerSet2 == 2){
3708 [battleReadyUpMAN2A setEnabled:NO];
3709 [battleReadyUpMAN2B setEnabled:NO];
3710 [battleReadyUpMAN2A setState:0];
3711 [battleReadyUpMAN2B setState:1];
3713 MF[MFselectedRow+1].MS.playerSet2 = 1;
3714 [battleReadyUpMAN2A setEnabled:YES];
3715 [battleReadyUpMAN2B setEnabled:YES];
3716 [battleReadyUpMAN2A setState:1];
3717 [battleReadyUpMAN2B setState:0];
3723 if([battleReadyUpMAN1A state] != 0)
3724 MF[MFselectedRow+1].MS.playerSet1 = 1;
3726 MF[MFselectedRow+1].MS.playerSet1 = 2;
3727 retardhelp1 = false;
3730 if([battleReadyUpMAN2A state] != 0)
3731 MF[MFselectedRow+1].MS.playerSet2 = 1;
3733 MF[MFselectedRow+1].MS.playerSet2 = 2;
3734 retardhelp2 = false;
3742 if(buildNum[possionX][possionY] < 0){
3743 [selectMesh setImage:MC[chipNum[possionX][possionY]].img];
3744 [selectMeshText setStringValue:MC[chipNum[possionX][possionY]].name];
3745 [selectMeshValue setStringValue:[NSString stringWithFormat:@"%d%", MC[chipNum[possionX][possionY]].dmgfix]];
3747 [selectMesh setImage:BC[buildNum[possionX][possionY]].img];
3748 [selectMeshText setStringValue:BC[buildNum[possionX][possionY]].name];
3749 [selectMeshValue setStringValue:[NSString stringWithFormat:@"%d%", BC[buildNum[possionX][possionY]].dmgfix]];
3751 [self SetStatusFunc];
3763 if(Uselected->chipNumberL < 0){
3764 if(!Uselected->dead){
3766 if(Uselected->team == 0){
3767 [tfArmy setStringValue:[NSString stringWithFormat:@"%@", P[0].name]];
3769 if(Uselected->team == 2){
3770 [tfArmy setStringValue:[NSString stringWithFormat:@"%@", P[1].name]];
3772 if(Uselected->team == 1){
3773 [tfArmy setStringValue:[NSString stringWithFormat:@"%@", P[2].name]];
3776 [tfName setStringValue:[NSString stringWithFormat:@"%@", Uselected->C.name]];
3777 [HPbarTF setStringValue:[NSString stringWithFormat:@"HP %g/%g", Uselected->C.S_C.HP, Uselected->C.S_M.HP]];
3778 [HPbarLI setIntValue:[[NSString stringWithFormat:@"%g", Uselected->C.S_C.HP/Uselected->C.S_M.HP*100 + 0.5] intValue]];
3779 [MPbarTF setStringValue:[NSString stringWithFormat:@"MP %g/%g", Uselected->C.S_C.MP, Uselected->C.S_M.MP]];
3780 [tfAttack setStringValue:[NSString stringWithFormat:@"攻撃力 %g", Uselected->C.S_C.ATK]];
3781 [tfDefence setStringValue:[NSString stringWithFormat:@"防御力 %g", Uselected->C.S_C.DEF]];
3782 [tfCalc setStringValue:[NSString stringWithFormat:@"演算力 %g", Uselected->C.S_C.CAP]];
3783 [tfHit setStringValue:[NSString stringWithFormat:@"命中値 %g", Uselected->C.S_C.ACU]];
3784 [tfDodge setStringValue:[NSString stringWithFormat:@"回避値 %g", Uselected->C.S_C.EVA]];
3785 [tfMove setStringValue:[NSString stringWithFormat:@"移動力 %d", Uselected->C.S_C.MOV]];
3786 [tfWait setStringValue:[NSString stringWithFormat:@"WT %g", Uselected->C.S_C.WT]];
3787 [selectChara setImage:Uselected->C.imgb];
3788 [selectChara setImageScaling:NSScaleToFit];
3793 [tfName setStringValue:[NSString stringWithFormat:@"----"]];
3794 [tfArmy setStringValue:[NSString stringWithFormat:@"----"]];
3795 [HPbarTF setStringValue:[NSString stringWithFormat:@"HP ----"]];
3796 [HPbarLI setIntValue:[[NSString stringWithFormat:@"0"] intValue]];
3797 [MPbarTF setStringValue:[NSString stringWithFormat:@"MP ----"]];
3798 [tfAttack setStringValue:[NSString stringWithFormat:@"攻撃力 ----"]];
3799 [tfDefence setStringValue:[NSString stringWithFormat:@"防御力 ----"]];
3800 [tfCalc setStringValue:[NSString stringWithFormat:@"演算力 ----"]];
3801 [tfHit setStringValue:[NSString stringWithFormat:@"命中値 ----"]];
3802 [tfDodge setStringValue:[NSString stringWithFormat:@"回避値 ----"]];
3803 [tfMove setStringValue:[NSString stringWithFormat:@"移動力 ----"]];
3804 [tfWait setStringValue:[NSString stringWithFormat:@"WT ----"]];
3805 [selectChara setImage:NULL];
3810 if(!Uselected->dead){
3812 if(Uselected->team == 0){
3813 [tfArmy setStringValue:[NSString stringWithFormat:@"%@", P[0].name]];
3815 if(Uselected->team == 2){
3816 [tfArmy setStringValue:[NSString stringWithFormat:@"%@", P[1].name]];
3819 [tfName setStringValue:[NSString stringWithFormat:@"%@", Uselected->CL.name]];
3820 [HPbarTF setStringValue:[NSString stringWithFormat:@"HP %g/%g", Uselected->CL.S_C.HP, Uselected->CL.S_M.HP]];
3821 [HPbarLI setIntValue:[[NSString stringWithFormat:@"%g", Uselected->CL.S_C.HP/Uselected->CL.S_M.HP*100 + 0.5] intValue]];
3822 [MPbarTF setStringValue:[NSString stringWithFormat:@"EN %g/%g", Uselected->CL.S_C.EN, Uselected->CL.S_M.EN]];
3823 [tfAttack setStringValue:[NSString stringWithFormat:@"移動力 %d", Uselected->CL.S_C.MOV]];
3824 [tfDefence setStringValue:[NSString stringWithFormat:@"運動性 %g", Uselected->CL.S_C.MOB]];
3825 [tfCalc setStringValue:[NSString stringWithFormat:@"装甲 %g", Uselected->CL.S_C.ARM]];
3826 [tfHit setStringValue:[NSString stringWithFormat:@"限界 %g", Uselected->CL.S_C.LIM]];
3827 [tfDodge setStringValue:[NSString stringWithFormat:@""]];
3828 [tfMove setStringValue:[NSString stringWithFormat:@""]];
3829 [tfWait setStringValue:[NSString stringWithFormat:@"WT %g", Uselected->CL.S_C.WT]];
3830 [selectChara setImage:Uselected->CL.imgb];
3831 [selectChara setImageScaling:NSScaleToFit];
3835 [tfName setStringValue:[NSString stringWithFormat:@"----"]];
3836 [tfArmy setStringValue:[NSString stringWithFormat:@"----"]];
3837 [HPbarTF setStringValue:[NSString stringWithFormat:@"HP ----"]];
3838 [HPbarLI setIntValue:[[NSString stringWithFormat:@"0"] intValue]];
3839 [MPbarTF setStringValue:[NSString stringWithFormat:@"MP ----"]];
3840 [tfAttack setStringValue:[NSString stringWithFormat:@"攻撃力 ----"]];
3841 [tfDefence setStringValue:[NSString stringWithFormat:@"防御力 ----"]];
3842 [tfCalc setStringValue:[NSString stringWithFormat:@"演算力 ----"]];
3843 [tfHit setStringValue:[NSString stringWithFormat:@"命中値 ----"]];
3844 [tfDodge setStringValue:[NSString stringWithFormat:@"回避値 ----"]];
3845 [tfMove setStringValue:[NSString stringWithFormat:@"移動力 ----"]];
3846 [tfWait setStringValue:[NSString stringWithFormat:@"WT ----"]];
3847 [selectChara setImage:NULL];
3855 [tfName setStringValue:[NSString stringWithFormat:@"----"]];
3856 [tfArmy setStringValue:[NSString stringWithFormat:@"----"]];
3857 [HPbarTF setStringValue:[NSString stringWithFormat:@"HP ----"]];
3858 [HPbarLI setIntValue:[[NSString stringWithFormat:@"0"] intValue]];
3859 [MPbarTF setStringValue:[NSString stringWithFormat:@"MP ----"]];
3860 [tfAttack setStringValue:[NSString stringWithFormat:@"攻撃力 ----"]];
3861 [tfDefence setStringValue:[NSString stringWithFormat:@"防御力 ----"]];
3862 [tfCalc setStringValue:[NSString stringWithFormat:@"演算力 ----"]];
3863 [tfHit setStringValue:[NSString stringWithFormat:@"命中値 ----"]];
3864 [tfDodge setStringValue:[NSString stringWithFormat:@"回避値 ----"]];
3865 [tfMove setStringValue:[NSString stringWithFormat:@"移動力 ----"]];
3866 [tfWait setStringValue:[NSString stringWithFormat:@"WT ----"]];
3867 [selectChara setImage:NULL];
3875 if(unitBreak->team == 0){
3876 [tfResource setStringValue:[NSString stringWithFormat:@"資源 %d", P[0].resource]];
3877 [tfFood setStringValue:[NSString stringWithFormat:@"食料 %d", P[0].food]];
3878 [tfMoney setStringValue:[NSString stringWithFormat:@"資金 %d", P[0].money]];
3879 }else if(unitBreak->team == 2){
3880 [tfResource setStringValue:[NSString stringWithFormat:@"資源 %d", P[1].resource]];
3881 [tfFood setStringValue:[NSString stringWithFormat:@"食料 %d", P[1].food]];
3882 [tfMoney setStringValue:[NSString stringWithFormat:@"資金 %d", P[1].money]];
3883 }else if(unitBreak->team == 1){
3884 [tfResource setStringValue:[NSString stringWithFormat:@"資源 %d", P[2].resource]];
3885 [tfFood setStringValue:[NSString stringWithFormat:@"食料 %d", P[2].food]];
3886 [tfMoney setStringValue:[NSString stringWithFormat:@"資金 %d", P[2].money]];
3890 if(menuDisplayFlag){
3892 [self initBCreateList];
3893 [self initCSummonList];
3896 if(initMapFlag && datFileLoadCompFromTitle && !saveDataLoadedFlag){
3898 mouseDoubleClickedCnt = 0;
3899 mouseDoubleClickedFlag = false;
3900 mouseClicked = false;
3901 messageDialog = false;
3903 for(int i = 0;i<=1000;i++){
3904 for(int j = 0;j<= 1000;j++){
3905 buildNum[i][j] = -1;
3908 buildTeam[i][j] = -1;
3909 unitTeam[i][j] = -1;
3913 [self initUnitStatusDat];
3914 //NSLog(@"%d, %d", unitNum[0][0], MF[MFselectedRow].MS.playerSet1);
3915 [self initBuildStatusDat];
3919 initImgFlag = false;
3920 initStringNum = false;
3921 bugFixFlag1 = false;
3922 bugFixFlag2 = false;
3923 bugFixFlag3 = false;
3932 //ここに進行したマップスクリプト値関数
3933 //NSLog(@"%d, %d", unitNum[0][0], MF[MFselectedRow].MS.playerSet1);
3934 [self setTargetListDat];
3935 [self initGuildList];
3937 for(int i = 0;i < 255;i++){
3941 cpuTurnEndFlag = false;
3942 mapChipDataLoadProc = 0;
3947 battleEndFlag = false;
3948 initStatusFlag = true;
3949 TeamCountFlag = true;
3950 cpuTurnEndFlag = false;
3951 unitColorInitFlag = true;
3952 initMapEventFlag = true;
3953 fieldViewBattleInitFlag = true;
3954 MF[MFselectedRow+1].MS = sdd2[datRow].MS;
3955 MF[MFselectedRow+1].MS.D = sdd2[datRow].MS.D;
3956 MSDTOPP = sdd2[datRow].MS.D;
3957 MSDTOP = sdd2[datRow].MS.D;
3958 msdtop = sdd2[datRow].MS.D;
3959 MSDTO = sdd2[datRow].MS.D;
3961 //if(UTop) NSLog(@"%d, %d, %d", UTop->CPU, unitNum[0][0], MF[MFselectedRow].MS.playerSet1);
3962 datFileLoadCompFromTitle = false;
3966 }else if (initMapFlag && !initStatusFlag) {
3969 mouseDoubleClickedCnt = 0;
3970 mouseDoubleClickedFlag = false;
3971 mouseClicked = false;
3976 battleEndFlag = false;
3979 [self initUnitStatus];
3980 [self initBuildStatus];
3982 //NSLog(@"%d", unitNum[1][1]);
3986 U->C.S_C.HP = U->C.S_M.HP;
3992 initStatusFlag = true;
3994 TeamCountFlag = true;
3996 unitColorInitFlag = true;
3999 for (int i = 1;i < 512;i++) {
4000 if([[SC[storyNumb].nameMAP objectAtIndex:scenarioNumb] isEqualToString:[NSString stringWithFormat:@"%@", MF[i].fileName]])
4003 }if(MFselectedRow > 510){
4005 mapChipDataLoadFail = true;
4008 [self initMapscript];
4011 initImgFlag = false;
4012 initStringNum = false;
4013 bugFixFlag1 = false;
4014 bugFixFlag2 = false;
4015 bugFixFlag3 = false;
4020 [self setTargetList];
4023 initMapEventFlag = true;
4024 fieldViewBattleInitFlag = true;
4027 for(int i = 0;i < 255;i++){
4032 [self initGuildList];
4033 cpuTurnEndFlag = false;
4034 mapChipDataLoadProc = 0;
4037 if(mapChipDataLoadFail){
4038 [endGamePanel close];
4040 endGameCondition = false;
4041 initMapFlag = false;
4042 TeamCountFlag = false;
4043 initStatusFlag = false;
4044 battleBegin = false;
4048 blueWinFlag = false;
4052 mapChipDataLoadFail = false;
4061 endGameCondition = false;
4062 initMapFlag = false;
4063 TeamCountFlag = false;
4064 initStatusFlag = false;
4065 battleBegin = false;
4068 cpuModeMOVEflag = false;
4069 cpuModeATTACKflag = false;
4072 blueWinFlag = false;
4073 cpuAImodeflag = false;
4074 cpuTurnEndFlag = true;
4075 stageClearFlag = false;
4076 waitSwtichFlag = false;
4077 battleReadyUpFlag = false;
4078 setBattleModeFlag = false;
4086 }else if(initMapFlag){
4087 mapChipDataLoadProc++;
4090 if(mapChipDataLoadProc > 2)
4091 mapChipDataLoadProc = 2;
4093 if(mapChipDataLoadProc == 1){
4094 [fsWindow makeKeyAndOrderFront:nil];
4096 [titleWindow close];
4097 mapChipDataLoadProc++;
4101 if(unitBreak->team == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2){
4102 unitBreak->CPU = true;
4103 cpuAImodeflag = true;
4105 }else if(unitBreak->team == 0 && MF[MFselectedRow+1].MS.playerSet1 == 2){
4106 unitBreak->CPU = true;
4107 cpuAImodeflag = true;
4109 }else if(unitBreak->team == 1){
4110 unitBreak->CPU = true;
4111 cpuAImodeflag = true;
4115 unitBreak->CPU = false;
4116 cpuAImodeflag = false;
4122 if(!cpuTurnEndFlag && unitBreak->C.S_C.WT == 0){
4123 [fieldView modeCPUturn];
4125 //NSLog(@"%d", U->x);
4135 //NSLog(@"%p", UTop);
4136 if(battleWindowFlag){battleFlag = true; battleWindowFlag = false;
4140 if(extentBattleFlag || cpuAtkExtendFlag2){
4141 if(!attackExtentFlag && !cpuAtkExtendFlag2)
4142 attackingWait = true;
4144 attackingWait = false;
4146 attackingWait = true;
4150 if(battleFlag && !battleSetUp){
4152 if(Utarget && !battleRdy)
4153 if((MF[MFselectedRow+1].MS.playerSet1 == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
4154 (unitBreak->team == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
4155 (unitBreak->team == 0 && MF[MFselectedRow+1].MS.playerSet1 == 2) ||
4156 (unitBreak->team == 1)
4163 [self battleStartCPU];//攻撃目標ウェイト
4164 attackingWait = true;
4168 if(attackExtentFlag || cpuAtkExtendFlag){
4169 attackingWait = false;
4180 if(initMapFlag && battleFlag)
4181 if((!attackExtentFlag && !cpuAtkExtendFlag))
4182 if(!battleSettingFlag && attackingWait){
4183 windowPoint.x = [mapWindow frame].origin.x;
4184 windowPoint.y = [mapWindow frame].origin.y;
4185 [battlePanel setFrameOrigin:windowPoint];
4186 [battlePanel makeKeyAndOrderFront:nil];
4187 [self setBattlePanel];
4190 if(Utarget && attackingWait){
4192 if(battleSetUp && ((MF[MFselectedRow+1].MS.playerSet1 == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
4193 (unitBreak->team == 2 && Utarget->team == 1 && MF[MFselectedRow+1].MS.playerSet2 == 2) || (unitBreak->team == 1 && Utarget->team == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
4194 (unitBreak->team == 0 && Utarget->team == 1 && MF[MFselectedRow+1].MS.playerSet1 == 2) || (unitBreak->team == 1 && Utarget->team == 0 && MF[MFselectedRow+1].MS.playerSet1 == 2) ||
4195 (unitBreak->team == 1 && Utarget->team == 1) ||
4196 (unitBreak->team == 2 && Utarget->team == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
4197 (unitBreak->team == 0 && Utarget->team == 0 && MF[MFselectedRow+1].MS.playerSet1 == 2)
4200 if(!animationFlag1 && !animationFlag2)
4205 oopsCnt = 30;//cpu攻撃設定
4208 //battleFlag = false;
4210 battleSet1Flag = false;
4211 battleSet2Flag = false;
4212 battleSettingFlag = false;
4213 attackingWait = false;
4220 if(battleRdy && ((MF[MFselectedRow+1].MS.playerSet1 == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) || (unitBreak->team == 2 && Utarget->team == 1 && MF[MFselectedRow+1].MS.playerSet2 == 2) || (unitBreak->team == 1 && Utarget->team == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
4221 (unitBreak->team == 0 && Utarget->team == 1 && MF[MFselectedRow+1].MS.playerSet1 == 2) || (unitBreak->team == 1 && Utarget->team == 0 && MF[MFselectedRow+1].MS.playerSet1 == 2) ||
4222 (unitBreak->team == 1 && Utarget->team == 1) ||
4223 (unitBreak->team == 2 && Utarget->team == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
4224 (unitBreak->team == 0 && Utarget->team == 0 && MF[MFselectedRow+1].MS.playerSet1 == 2)
4229 if(!(AVpreview.rate > 0) && !animationFlag1 && !animationFlag2)
4240 damnitFixFlag = true;
4241 if(!datFileLoadCompFromTitle && initMapFlag && !battleIsProcFlag){
4242 [self EventFunc:true];
4244 crapBugFixFlag = false;
4250 if(battleSetUp && fuckingLoadBugFix && Uselected && !attackingWait){
4251 if(!battleSetUpIgnore && fuckingLoadBugFix){
4252 [self AttackDisplay];
4254 windowPoint.x = [mapWindow frame].origin.x;
4255 windowPoint.y = [mapWindow frame].origin.y;
4256 [battleWindow setFrameOrigin:windowPoint];
4257 [battleWindow makeKeyAndOrderFront:nil];
4258 }else if(battleSetUpIgnore){
4259 [mapWindow makeKeyAndOrderFront:nil];
4262 windowPoint.x = [mapWindow frame].origin.x;
4263 windowPoint.y = [mapWindow frame].origin.y;
4264 [battleWindow setFrameOrigin:windowPoint];
4265 [battleWindow makeKeyAndOrderFront:nil];*/
4273 if(battleRdy && battleSetUp && fuckingLoadBugFix && !battleSetUpIgnore){
4274 [self DisplayMessage];
4281 if(battleBegin && !wtRdy2 && !battleFlag)
4285 //NSLog(@"eventTime%g", eventTime);
4288 if(!U->dead && U->C.S_C.WT > 0) U->C.S_C.WT -= 1;
4290 U->C.S_C.WT = 999999;
4293 if(U->C.S_C.WT <= 0 && !U->dead){//WTターン周り
4294 battleEndFlag = false;
4298 wtUnitNum = U->number;
4305 possionX = unitBreak->x;
4306 possionY = unitBreak->y;
4309 wtMovedFlag = false;
4310 wtAttackedFlag = false;
4314 [fieldView scrollPoint:NSMakePoint((wtPx-8)*32, (wtPy-8)*32)];
4317 if(buildNum[U->x][U->y] >= 0){
4321 if(B->x == U->x && B->y == U->y){
4334 U->C.S_C.HP += floor(U->C.S_M.HP*B->C.recHP/100);
4335 if(U->C.S_C.HP >= U->C.S_M.HP) U->C.S_C.HP = U->C.S_M.HP;
4339 U->C.S_C.MP += floor(U->C.S_M.MP*B->C.recMP/100);
4340 if(U->C.S_C.MP >= U->C.S_M.MP) U->C.S_C.MP = U->C.S_M.MP;
4344 U->CL.S_C.EN += floor(U->CL.S_M.EN*B->C.recEN/100);
4345 if(U->CL.S_C.EN >= U->CL.S_M.EN) U->CL.S_C.EN = U->CL.S_M.EN;
4348 if(B->C.recHPL > 0){
4349 U->CL.S_C.HP += floor(U->CL.S_M.HP*B->C.recHPL/100);
4350 if(U->CL.S_C.HP >= U->CL.S_M.HP) U->CL.S_C.HP = U->CL.S_M.HP;
4360 [self EventFunc:false];
4361 pussyCumsOnlyOnceFlag = false;
4372 if(!B->dead) B->C.S_C.WTE -= 1;
4373 if(B->C.S_C.WTE <= 0){
4376 P[0].resource += B->C.Esupply;
4377 P[0].food += B->C.Efood;
4378 P[0].money += B->C.Emoney;
4381 P[1].resource += B->C.Esupply;
4382 P[1].food += B->C.Efood;
4383 P[1].money += B->C.Emoney;
4386 P[2].resource += B->C.Esupply;
4387 P[2].food += B->C.Efood;
4388 P[2].money += B->C.Emoney;
4391 B->C.S_C.WTE = B->C.S_M.WTE;
4400 //NSLog(@"%g", eventTime);
4401 [self EventFunc:false];
4403 pussyCumsOnlyOnceFlag = false;
4405 //NSLog(@"eventTime%g", eventTime);
4421 if(buildSelectedFlag){
4422 windowPoint.x = [mapWindow frame].origin.x;
4423 windowPoint.y = [mapWindow frame].origin.y;
4424 [researchPanel setFrameOrigin:windowPoint];
4425 if([self setBuildList]){
4426 [researchPanel makeKeyAndOrderFront:nil];
4428 buildSelectedFlag = false;
4431 if(TeamCountFlag && !endGameCondition){
4436 if((U->team == 0 || U->team == 1) && !U->dead){
4439 else if(U->team == 2 && !U->dead){
4447 if(targType1cnt[1] == 0 || targType2cnt[1] == 0){
4448 endGameCondition = true;
4450 [endGameText setStringValue:[NSString stringWithFormat:@"%@の勝利!", P[1].name]];
4453 if(targType1cnt[0] == 0 || targType2cnt[0] == 0){
4454 endGameCondition = true;
4456 [endGameText setStringValue:[NSString stringWithFormat:@"%@の勝利!", P[0].name]];
4461 endGameCondition = true;
4463 [endGameText setStringValue:[NSString stringWithFormat:@"%@の勝利!", P[1].name]];
4467 endGameCondition = true;
4469 [endGameText setStringValue:[NSString stringWithFormat:@"%@の勝利!", P[0].name]];
4473 if(TeamCount0 == 0 && (MF[MFselectedRow+1].MS.EGCdark.endType1 == 2 || MF[MFselectedRow+1].MS.EGCdark.endType2 == 2)){
4474 endGameCondition = true;
4476 [endGameText setStringValue:[NSString stringWithFormat:@"%@の勝利!", P[1].name]];
4478 if(TeamCount2 == 0 && (MF[MFselectedRow+1].MS.EGClight.endType1 == 1 || MF[MFselectedRow+1].MS.EGClight.endType2 == 1)){
4479 endGameCondition = true;
4481 [endGameText setStringValue:[NSString stringWithFormat:@"%@の勝利!", P[0].name]];
4487 static int endGamePanelWait = 100;
4489 if(endGameCondition && !battleRdy){
4491 if(redWinFlag && blueWinFlag){
4495 windowPoint.x = [mapWindow frame].origin.x+30;
4496 windowPoint.y = [mapWindow frame].origin.y+200;
4497 [endGamePanel setFrameOrigin:windowPoint];
4498 [endGamePanel makeKeyAndOrderFront:nil];
4500 if(endGamePanelWait > 0) return;
4503 [endGamePanel close];
4512 endGameCondition = false;
4513 initMapFlag = false;
4514 TeamCountFlag = false;
4515 initStatusFlag = false;
4516 battleBegin = false;
4519 cpuModeMOVEflag = false;
4520 cpuModeATTACKflag = false;
4523 blueWinFlag = false;
4524 cpuAImodeflag = false;
4525 cpuTurnEndFlag = true;
4526 waitSwtichFlag = false;
4532 endGamePanelWait = 100;
4533 stageClearFlag = false;
4534 stageClearFlag2 = false;
4535 battleReadyUpFlag = false;
4536 setBattleModeFlag = false;
4540 [titleWindow makeKeyAndOrderFront:nil];
4548 endGameCondition = false;
4549 initMapFlag = false;
4550 TeamCountFlag = false;
4551 initStatusFlag = false;
4552 battleBegin = false;
4555 cpuModeMOVEflag = false;
4556 cpuModeATTACKflag = false;
4559 blueWinFlag = false;
4560 cpuAImodeflag = false;
4561 cpuTurnEndFlag = true;
4562 backTitleFlag = false;
4563 backTitleFlag2 = true;
4564 waitSwtichFlag = false;
4565 battleReadyUpFlag = false;
4566 setBattleModeFlag = false;
4574 }if(stageClearFlag){
4576 if(stageClearFlag2){
4578 endGameCondition = true;
4580 [endGameText setStringValue:[NSString stringWithFormat:@"%@の勝利!", P[0].name]];
4594 endGameCondition = false;
4595 initMapFlag = false;
4596 TeamCountFlag = false;
4597 initStatusFlag = false;
4598 battleBegin = false;
4601 cpuModeMOVEflag = false;
4602 cpuModeATTACKflag = false;
4605 blueWinFlag = false;
4606 cpuAImodeflag = false;
4607 cpuTurnEndFlag = true;
4608 stageClearFlag = false;
4609 waitSwtichFlag = false;
4610 battleReadyUpFlag = false;
4611 setBattleModeFlag = false;
4624 [GameOverIV setImage:gaov.img];
4627 [GameOverWindow makeKeyAndOrderFront:nil];
4630 endGameCondition = false;
4631 initMapFlag = false;
4632 TeamCountFlag = false;
4633 initStatusFlag = false;
4634 battleBegin = false;
4637 cpuModeMOVEflag = false;
4638 cpuModeATTACKflag = false;
4641 blueWinFlag = false;
4642 cpuAImodeflag = false;
4643 cpuTurnEndFlag = true;
4644 backTitleFlag = false;
4645 gameOverFlag = false;
4646 gameOverFlag2 = true;
4647 waitSwtichFlag = false;
4648 battleReadyUpFlag = false;
4649 setBattleModeFlag = false;
4659 if(!Uselected->dead){
4663 while (U->number != wtUnitNum) {
4667 if(!wtMovedFlag && !wtAttackedFlag){
4668 U->C.S_C.WT = floor(U->C.S_M.WT/4 + 0.5);
4669 }else if(wtMovedFlag && wtAttackedFlag){
4670 U->C.S_C.WT = floor(U->C.S_M.WT + 0.5);
4671 }else if(wtMovedFlag){
4672 U->C.S_C.WT = floor(U->C.S_M.WT/2 + 0.5);
4673 }else if(wtAttackedFlag){
4674 U->C.S_C.WT = floor(U->C.S_M.WT/2 + 0.5);
4687 [self addSummonStatus];
4693 SKILL *sTop = U->C.S;
4696 if(U->C.S->type == 2) break;
4697 U->C.S = U->C.S->next;
4700 U->C.S_C.MP -= U->C.S->cost[crCSL];
4709 unitNum[possionX][possionY] = U->C.S->list[crCSL]-1;
4710 unitTeam[possionX][possionY] = 0;
4713 unitColorInitFlag = true;
4717 SKILL *sTop = U->C.S;
4720 if(U->C.S->type == 2) break;
4721 U->C.S = U->C.S->next;
4724 U->C.S_C.MP -= U->C.S->cost[crCSL];
4732 unitNum[possionX][possionY] = U->C.S->list[crCSL]-1;
4733 unitTeam[possionX][possionY] = 2;
4736 unitColorInitFlag = true;
4739 summonRdyFlag = false;
4747 if(unitMoveEndFlag){
4748 //pussyLoopFlag = false;
4755 if(displayBattleCheckPanelFlag == 1){
4756 displayBattleCheckPanelFlag = 2;
4758 windowPoint.x = [mapWindow frame].origin.x;
4759 windowPoint.y = [mapWindow frame].origin.y;
4760 [atkPanel setFrameOrigin:windowPoint];
4773 -(void)EventFunc:(bool)eventLoopProcFlag{
4779 pussyLoopFlag = false;
4788 if(battleBegin && !pussyLoopFlag){
4790 bool proccessTrue = false;
4791 static bool onlyBigin = false;
4792 MAPSCRIPT MS = MF[MFselectedRow+1].MS;
4809 int proccesType = -1;
4811 bool EventFailFlag = false;
4812 static bool PtopFlag = false;
4842 if(MS.D->P->endFlag)
4843 MS.D->P = MS.D->P->next;
4849 if(!eventLoopProcFlag && MS.D->P->type == 0){
4850 proccessTrue = false;
4851 MS.D->P = MS.D->P->next;
4858 MS.D->endFlag = true;
4859 messageDialog = false;
4860 [self setMessage:NULL];
4865 MAPSCRIPT0 *MSDPT = MS.D->P;
4867 if(MS.D->ETtype == 0){
4869 }else if(MS.D->ETtype == 1){
4870 bool resultFailFlag = false;
4872 if(!MS.D->P->endFlag)
4873 resultFailFlag = true;
4874 MS.D->P = MS.D->P->next;
4879 MS.D->P->endFlag = false;
4880 MS.D->P = MS.D->P->next;
4883 }else if(MS.D->ETtype == 2){
4885 bool resultFailFlag = false;
4887 if(!MS.D->P->succeessfulFlag)
4888 resultFailFlag = true;
4889 MS.D->P = MS.D->P->next;
4894 MS.D->P->endFlag = false;
4895 MS.D->P = MS.D->P->next;
4897 }else if(MS.D->ETtype == 3){
4899 bool resultFailFlag = false;
4901 if(!MS.D->P->succeessfulFlag){
4902 resultFailFlag = false;
4905 MS.D->P = MS.D->P->next;
4906 resultFailFlag = true;
4911 MS.D->P->endFlag = false;
4912 MS.D->P = MS.D->P->next;
4914 //NSLog(@"%d", UTop->x);
4915 }else if(MS.D->ETtype == 4){
4917 MS.D->P->endFlag = false;
4918 MS.D->P = MS.D->P->next;
4934 for(int i = 0;*(MS.D->switch1+i)>0;i++){
4935 if(Suicchi[*(MS.D->switch1+i)])
4938 EventFailFlag = true;
4942 for(int i = 0;*(MS.D->switch2+i)>0;i++){
4943 if(!Suicchi[*(MS.D->switch2+i)])
4946 EventFailFlag = true;
4948 //NSLog(@"%g", eventTime);
4950 //if(!MS.D->endFlag)
4951 if(eventTime == MS.D->ET4 || MS.D->ET4 == 0 || MS.D->initialDeleyedFlag){
4953 if(MS.D->P->type == 6){
4954 if(eventTime == MS.D->ET4){
4955 MS.D->P->S4.lagFixFlag = false;
4957 else if(unitMoveEndFlag){
4958 MS.D->P->S4.lagFixFlag = false;
4960 else if(battleSetUp){
4961 MS.D->P->S4.lagFixFlag = false;
4963 else if(pushStanbyFlag){
4964 MS.D->P->S4.lagFixFlag = false;
4966 else if(battleEndFlag){
4967 MS.D->P->S4.lagFixFlag = false;
4969 else if(!MS.D->P->S4.lagFixFlag && MS.D->ET4 == 0){
4970 MS.D->P->S4.lagFixFlag = true;
4974 if(MS.D->P->S4.lagFixFlag){
4975 //NSLog(@"%g", eventTime);
4976 proccessTrue = false;
4980 proccessTrue = true;
4983 double deltaET = floor(MS.D->ET2) - floor(MS.D->ET1);
4985 if(deltaET < 0) deltaET = 0;
4987 if(MS.D->ET1 <= eventTime && MS.D->ET2 >= eventTime){
4988 if(deltaET > 0) deltaR = rand()%(int)deltaET;
4991 MS.D->ET3 = MS.D->ET1 + (double)deltaR;
4993 if(!MS.D->onlyInitialDeley) {
4994 MS.D->ET4 += MS.D->ET3;
4996 MS.D->initialDeleyedFlag = true;
5000 // NSLog(@"%g %d", eventTime, P[0].resource);
5004 proccessTrue = true;
5015 if(MS.D->type == -1 && !EventFailFlag)
5016 proccesType = ENTIRE_MAP;
5017 if(MS.D->type == 0 && pushStanbyFlag && (Uselected->x == MS.D->x && Uselected->y == MS.D->y) && !EventFailFlag)
5018 proccesType = CENTER_POINT;
5019 else if(MS.D->type == 0){
5020 proccesType = CENTER_POINT;
5021 proccessTrue = false;
5022 EventFailFlag = true;
5030 if(MS.D->ET4 != 0 && pussyCumsOnlyOnceFlag){
5031 EventFailFlag = true;
5035 if(EventFailFlag || !proccessTrue){
5041 if(!eventLoopProcFlag && MS.D->P->type == 0)
5042 proccessTrue = false;
5045 switch (proccesType) {
5047 MS.D->P = [self setEvent:MS.D->P];
5054 if(waitSwtichFlag) {
5063 }if(stageClearFlag){
5077 MS.D->P = [self setEvent:MS.D->P];
5083 if(waitSwtichFlag) {
5092 }if(stageClearFlag){
5114 bool PnextFlag = false;
5118 if(MS.D->P->endFlag){
5119 MS.D->P = MS.D->P->next;
5141 MAPSCRIPT0 *MSDPT = MS.D->P;
5142 if(MS.D->ETtype == 0){
5144 MS.D->P->succeessfulFlag = true;
5145 MS.D->endFlag = true;
5146 MS.D->P = MS.D->P->next;
5148 }else if(MS.D->ETtype == 1){
5149 bool resultFailFlag = false;
5151 if(!MS.D->P->endFlag)
5152 resultFailFlag = true;
5153 MS.D->P = MS.D->P->next;
5158 MS.D->P->succeessfulFlag = false;
5159 MS.D->endFlag = false;
5160 MS.D->P->endFlag = false;
5161 MS.D->P = MS.D->P->next;
5164 }else if(MS.D->ETtype == 2){
5166 bool resultFailFlag = false;
5168 if(!MS.D->P->succeessfulFlag)
5169 resultFailFlag = true;
5170 MS.D->P = MS.D->P->next;
5175 MS.D->P->succeessfulFlag = false;
5176 MS.D->endFlag = false;
5177 MS.D->P->endFlag = false;
5178 MS.D->P = MS.D->P->next;
5180 }else if(MS.D->ETtype == 3){
5182 bool resultFailFlag = false;
5184 if(!MS.D->P->succeessfulFlag){
5185 resultFailFlag = false;
5188 resultFailFlag = true;
5189 MS.D->P = MS.D->P->next;
5194 MS.D->P->succeessfulFlag = false;
5195 MS.D->endFlag = false;
5196 MS.D->P->endFlag = false;
5197 MS.D->P = MS.D->P->next;
5199 }else if(MS.D->ETtype == 4){
5201 MS.D->P->succeessfulFlag = false;
5202 MS.D->P->endFlag = false;
5203 MS.D->endFlag = false;
5204 MS.D->P = MS.D->P->next;
5216 MF[MFselectedRow+1].MS.D = MS.D;
5218 cpuTurnEndFlag = false;
5219 battleSetUpIgnore = false;
5220 if(!eventLoopProcFlag){
5221 pussyCumsOnlyOnceFlag = true;
5224 fuckingLoadBugFix = true;
5231 -(MAPSCRIPT0*)setEvent:(MAPSCRIPT0*)MS0{
5246 APPEARANCE_FLAG = 22,
5247 DISSAPPEARANCE_FLAG = 23,
5252 STAGECLEAR_FLAG = 36,
5259 Proc = MESSAGE_FLAG;
5261 Proc = SELECTION_FLAG;
5263 Proc = INPUTNUMBER_FLAG;
5275 Proc = LABELJUMP_FLAG;
5277 Proc = COMMENT_FLAG;
5279 Proc = RESOURCE_FLAG;
5283 Proc = APPEARANCE_FLAG;
5285 Proc = DISSAPPEARANCE_FLAG;
5293 Proc = GAMEOVER_FLAG;
5295 Proc = STAGECLEAR_FLAG;
5305 messageDialog = true;
5306 [self setMessage:MS0];
5308 fuckingLoadBugFix = false;
5310 case SELECTION_FLAG:
5312 MS0 = [self setSelection:MS0];
5315 case INPUTNUMBER_FLAG:
5316 MS0 = [self setDefault:MS0];
5321 MS0 = [self setSwitch:MS0];
5324 MS0 = [self setDefault:MS0];
5327 MS0 = [self setDefault:MS0];
5330 MS0 = [self setBranch:MS0];
5333 MS0 = [self setLabel:MS0];
5335 case LABELJUMP_FLAG:
5336 MS0 = [self setLabelJump:MS0];
5339 MS0 = [self setComment:MS0];
5342 MS0 = [self setResource:MS0];
5345 MS0 = [self setStatus:MS0];
5347 case APPEARANCE_FLAG:
5348 MS0 = [self setAppearance:MS0];
5350 case DISSAPPEARANCE_FLAG:
5351 MS0 = [self setDissappearance:MS0];
5354 MS0 = [self setWait:MS0];
5357 MS0 = [self setBGM:MS0];
5360 MS0 = [self setSE:MS0];
5363 MS0 = [self setGameOver:MS0];
5366 case STAGECLEAR_FLAG:
5367 MS0 = [self setStageClear:MS0];
5370 MS0 = [self setTitleBack:MS0];
5378 -(void)setTargetListDat{
5379 targType1cnt[0] = -1;
5380 targType1cnt[1] = -1;
5381 targType2cnt[0] = -1;
5382 targType2cnt[1] = -1;
5383 targType2Lflag = false;
5384 targType2Dflag = false;
5387 MAPSCRIPT MS = MF[MFselectedRow+1].MS;
5391 for (int i = 0;i < 64;i++) {
5392 if(!MS.EGClight.etValue1[i]) break;
5393 NSArray *array1 = [MS.EGClight.etValue1[i] componentsSeparatedByString:@"["];
5394 NSArray *array2 = [[array1 objectAtIndex:1] componentsSeparatedByString:@","];
5396 int Tx = [[array2 objectAtIndex:0] intValue];
5397 int Ty = [[array2 objectAtIndex:1] intValue];
5398 if(MS.EGClight.endType1 == 3){
5401 if(U->x == Tx && U->y == Ty){
5402 U->targType1L = true;
5403 if(targType1cnt[0] < 0)
5404 targType1cnt[0] = 0;
5411 if(MS.EGClight.endType1 == 4){
5414 if(U->x == Tx && U->y == Ty){
5415 U->targType2L = true;
5416 if(targType2cnt[0] < 0)
5417 targType2cnt[0] = 0;
5425 for (int i = 0;i < 64;i++) {
5426 if(!MS.EGClight.etValue2[i]) break;
5427 NSArray *array1 = [MS.EGClight.etValue2[i] componentsSeparatedByString:@"["];
5428 NSArray *array2 = [[array1 objectAtIndex:1] componentsSeparatedByString:@","];
5430 int Tx = [[array2 objectAtIndex:0] intValue];
5431 int Ty = [[array2 objectAtIndex:1] intValue];
5433 if(MS.EGClight.endType2 == 3){
5436 if(U->x == Tx && U->y == Ty){
5437 U->targType1L = true;
5438 if(targType1cnt[0] < 0)
5439 targType1cnt[0] = 0;
5446 if(MS.EGClight.endType2 == 4){
5449 if(U->x == Tx && U->y == Ty){
5450 U->targType2L = true;
5451 if(targType2cnt[0] < 0)
5452 targType2cnt[0] = 0;
5460 for (int i = 0;i < 64;i++) {
5461 if(!MS.EGCdark.etValue1[i]) break;
5462 NSArray *array1 = [MS.EGCdark.etValue1[i] componentsSeparatedByString:@"["];
5463 NSArray *array2 = [[array1 objectAtIndex:1] componentsSeparatedByString:@","];
5465 int Tx = [[array2 objectAtIndex:0] intValue];
5466 int Ty = [[array2 objectAtIndex:1] intValue];
5468 if(MS.EGCdark.endType1 == 3){
5471 if(U->x == Tx && U->y == Ty){
5472 U->targType1D = true;
5473 if(targType1cnt[1] < 0)
5474 targType1cnt[1] = 0;
5481 if(MS.EGCdark.endType1 == 4){
5484 if(U->x == Tx && U->y == Ty){
5485 U->targType2D = true;
5486 if(targType2cnt[1] < 0)
5487 targType2cnt[1] = 0;
5495 for (int i = 0;i < 64;i++) {
5496 if(!MS.EGCdark.etValue2[i]) break;
5497 NSArray *array1 = [MS.EGCdark.etValue2[i] componentsSeparatedByString:@"["];
5498 NSArray *array2 = [[array1 objectAtIndex:1] componentsSeparatedByString:@","];
5500 int Tx = [[array2 objectAtIndex:0] intValue];
5501 int Ty = [[array2 objectAtIndex:1] intValue];
5503 if(MS.EGCdark.endType2 == 3){
5506 if(U->x == Tx && U->y == Ty){
5507 U->targType1D = true;
5508 if(targType1cnt[1] < 0)
5509 targType1cnt[1] = 0;
5516 if(MS.EGCdark.endType2 == 4){
5519 if(U->x == Tx && U->y == Ty){
5520 U->targType2D = true;
5521 if(targType2cnt[1] < 0)
5522 targType2cnt[1] = 0;
5537 -(void)setTargetList{
5539 targType1cnt[0] = -1;
5540 targType1cnt[1] = -1;
5541 targType2cnt[0] = -1;
5542 targType2cnt[1] = -1;
5543 targType2Lflag = false;
5544 targType2Dflag = false;
5547 MAPSCRIPT MS = MF[MFselectedRow+1].MS;
5551 for (int i = 0;i < 64;i++) {
5552 if(!MS.EGClight.etValue1[i] || [MS.EGClight.etValue1[i] isEqualToString:@""]) break;
5553 NSArray *array1 = [MS.EGClight.etValue1[i] componentsSeparatedByString:@"["];
5554 NSArray *array2 = [[array1 objectAtIndex:1] componentsSeparatedByString:@","];
5556 int Tx = [[array2 objectAtIndex:0] intValue];
5557 int Ty = [[array2 objectAtIndex:1] intValue];
5558 if(MS.EGClight.endType1 == 3){
5561 if(U->x == Tx && U->y == Ty){
5562 U->targType1L = true;
5563 if(targType1cnt[0] < 0)
5564 targType1cnt[0] = 0;
5571 if(MS.EGClight.endType1 == 4){
5574 if(U->x == Tx && U->y == Ty){
5575 U->targType2L = true;
5576 if(targType2cnt[0] < 0)
5577 targType2cnt[0] = 0;
5585 for (int i = 0;i < 64;i++) {
5586 if(!MS.EGClight.etValue2[i] || [MS.EGClight.etValue2[i] isEqualToString:@""]) break;
5587 NSArray *array1 = [MS.EGClight.etValue2[i] componentsSeparatedByString:@"["];
5588 NSArray *array2 = [[array1 objectAtIndex:1] componentsSeparatedByString:@","];
5590 int Tx = [[array2 objectAtIndex:0] intValue];
5591 int Ty = [[array2 objectAtIndex:1] intValue];
5593 if(MS.EGClight.endType2 == 3){
5596 if(U->x == Tx && U->y == Ty){
5597 U->targType1L = true;
5598 if(targType1cnt[0] < 0)
5599 targType1cnt[0] = 0;
5606 if(MS.EGClight.endType2 == 4){
5609 if(U->x == Tx && U->y == Ty){
5610 U->targType2L = true;
5611 if(targType2cnt[0] < 0)
5612 targType2cnt[0] = 0;
5620 for (int i = 0;i < 64;i++) {
5621 if(!MS.EGCdark.etValue1[i] || [MS.EGCdark.etValue1[i] isEqualToString:@""]) break;
5622 NSArray *array1 = [MS.EGCdark.etValue1[i] componentsSeparatedByString:@"["];
5623 NSArray *array2 = [[array1 objectAtIndex:1] componentsSeparatedByString:@","];
5625 int Tx = [[array2 objectAtIndex:0] intValue];
5626 int Ty = [[array2 objectAtIndex:1] intValue];
5628 if(MS.EGCdark.endType1 == 3){
5631 if(U->x == Tx && U->y == Ty){
5632 U->targType1D = true;
5633 if(targType1cnt[1] < 0)
5634 targType1cnt[1] = 0;
5641 if(MS.EGCdark.endType1 == 4){
5644 if(U->x == Tx && U->y == Ty){
5645 U->targType2D = true;
5646 if(targType2cnt[1] < 0)
5647 targType2cnt[1] = 0;
5655 for (int i = 0;i < 64;i++) {
5656 if(!MS.EGCdark.etValue2[i] || [MS.EGCdark.etValue2[i] isEqualToString:@""]) break;
5657 NSArray *array1 = [MS.EGCdark.etValue2[i] componentsSeparatedByString:@"["];
5658 NSArray *array2 = [[array1 objectAtIndex:1] componentsSeparatedByString:@","];
5660 int Tx = [[array2 objectAtIndex:0] intValue];
5661 int Ty = [[array2 objectAtIndex:1] intValue];
5663 if(MS.EGCdark.endType2 == 3){
5666 if(U->x == Tx && U->y == Ty){
5667 U->targType1D = true;
5668 if(targType1cnt[1] < 0)
5669 targType1cnt[1] = 0;
5676 if(MS.EGCdark.endType2 == 4){
5679 if(U->x == Tx && U->y == Ty){
5680 U->targType2D = true;
5681 if(targType2cnt[1] < 0)
5682 targType2cnt[1] = 0;
5698 -(bool)setBuildList{
5702 [self willChangeValueForKey:@"CResearchListMA"];
5703 [CResearchListMA removeAllObjects];
5704 [self didChangeValueForKey:@"CResearchListMA"];
5706 [researchATK setStringValue:[NSString stringWithFormat:@"攻撃力 ----"]];
5707 [researchDEF setStringValue:[NSString stringWithFormat:@"防御力 ----"]];
5708 [researchCAP setStringValue:[NSString stringWithFormat:@"演算力 ----"]];
5709 [researchACU setStringValue:[NSString stringWithFormat:@"命中値 ----"]];
5710 [researchEVA setStringValue:[NSString stringWithFormat:@"回避値 ----"]];
5711 [researchMOV setStringValue:[NSString stringWithFormat:@"移動力 ----"]];
5712 [researchIMG setImage:NULL];
5718 while (B && B->x != possionX && B->y != possionY) {
5721 B0 = &BC[buildNum[possionX][possionY]];
5729 if(buildTeam[possionX][possionY] == 0 || buildTeam[possionX][possionY] == 1){
5739 else if(buildTeam[possionX][possionY] == 2 || buildTeam[possionX][possionY] == 3){
5753 if(B->makeLv >= B0->R->Lv){
5754 NSMutableDictionary* dict = [NSMutableDictionary new];
5755 [dict setValue:[NSString stringWithFormat:@"%@", BU->nameClass] forKey:@"name"];
5756 [dict setValue:[NSString stringWithFormat:@"%g", BU->S_M.HP] forKey:@"HP"];
5757 [dict setValue:[NSString stringWithFormat:@"資%d 食%d 金%d", BU->S_M.cSupply, BU->S_M.cFood, BU->S_M.cMoney] forKey:@"cost"];
5758 [dict setValue:BU->img forKey:@"img"];
5761 [self willChangeValueForKey:@"CResearchListMA"];
5762 [CResearchListMA addObject:dict];
5763 [self didChangeValueForKey:@"CResearchListMA"];
5765 B0->R = B0->R->next;
5773 B = &BC[buildNum[possionX][possionY]];
5782 for(int i = 0;i <= crCRL && B->R;i++){
5785 [researchATK setStringValue:[NSString stringWithFormat:@"攻撃力 %g", BU->S_M.ATK]];
5786 [researchDEF setStringValue:[NSString stringWithFormat:@"防御力 %g", BU->S_M.DEF]];
5787 [researchCAP setStringValue:[NSString stringWithFormat:@"演算力 %g", BU->S_M.CAP]];
5788 [researchACU setStringValue:[NSString stringWithFormat:@"命中値 %g", BU->S_M.ACU]];
5789 [researchEVA setStringValue:[NSString stringWithFormat:@"回避値 %g", BU->S_M.EVA]];
5790 [researchMOV setStringValue:[NSString stringWithFormat:@"移動力 %d", BU->S_M.MOV]];
5791 [researchIMG setImage:BU->imgb];
5792 [researchIMG setImageScaling:NSScaleToFit];
5799 MAPSCRIPT MS = MF[MFselectedRow+1].MS;
5801 if(B->GuildFlag &&( buildTeam[possionX][possionY] == 0 || buildTeam[possionX][possionY] == 1)){
5803 int a = MS.guildListRegistNum12 - MS.guildListRegistNum11;
5808 Gnum1 = MS.guildListRegistNum11 + arc4random()%(MS.guildListRegistNum12 - MS.guildListRegistNum11+1);
5810 Gnum1 = MS.guildListRegistNum12;
5812 if(Gnum1 > GCnum1+1)
5817 saveGuildList = calloc((GCnum1+1), sizeof(int));
5818 if(!guildRE1) GuildDisp1 = calloc(Gnum1, sizeof(int));
5819 for(int i = 0;i < Gnum1;i++){
5822 n = [self chooseGuildList:GuildChosen1 gcnum:GCnum1];
5825 *(GuildDisp1 + i) = *(GuildChosen1 + n);
5828 if(*(GuildDisp1 + i) <= 0)
5831 NSMutableDictionary* dict = [NSMutableDictionary new];
5832 [dict setValue:[NSString stringWithFormat:@"%@", UC[*(GuildDisp1 + i)-1].name] forKey:@"name"];
5833 [dict setValue:[NSString stringWithFormat:@"%g", UC[*(GuildDisp1 + i)-1].S_M.HP] forKey:@"HP"];
5834 [dict setValue:[NSString stringWithFormat:@"資%d 食%d 金%d", UC[*(GuildDisp1 + i)-1].S_M.cSupply, UC[*(GuildDisp1 + i)-1].S_M.cFood, UC[*(GuildDisp1 + i)-1].S_M.cMoney] forKey:@"cost"];
5835 [dict setValue:UC[*(GuildDisp1 + i)-1].img forKey:@"img"];
5838 [self willChangeValueForKey:@"CResearchListMA"];
5839 [CResearchListMA addObject:dict];
5840 [self didChangeValueForKey:@"CResearchListMA"];
5854 for(int i = k;i <= crCRL;i++){
5855 if(*(GuildDisp1 + i - k) <= 0)
5858 [researchATK setStringValue:[NSString stringWithFormat:@"攻撃力 %g", UC[*(GuildDisp1 + i - k)-1].S_M.ATK]];
5859 [researchDEF setStringValue:[NSString stringWithFormat:@"防御力 %g", UC[*(GuildDisp1 + i - k)-1].S_M.DEF]];
5860 [researchCAP setStringValue:[NSString stringWithFormat:@"演算力 %g", UC[*(GuildDisp1 + i - k)-1].S_M.CAP]];
5861 [researchACU setStringValue:[NSString stringWithFormat:@"命中値 %g", UC[*(GuildDisp1 + i - k)-1].S_M.ACU]];
5862 [researchEVA setStringValue:[NSString stringWithFormat:@"回避値 %g", UC[*(GuildDisp1 + i - k)-1].S_M.EVA]];
5863 [researchMOV setStringValue:[NSString stringWithFormat:@"移動力 %d", UC[*(GuildDisp1 + i - k)-1].S_M.MOV]];
5864 [researchIMG setImage:UC[*(GuildDisp1 + i - k)-1].imgb];
5865 [researchIMG setImageScaling:NSScaleToFit];
5870 }else if(B->GuildFlag && (buildTeam[possionX][possionY] == 2 || buildTeam[possionX][possionY] == 3)){
5872 int a = MS.guildListRegistNum22 - MS.guildListRegistNum21;
5877 Gnum2 = MS.guildListRegistNum21 + arc4random()%(MS.guildListRegistNum22 - MS.guildListRegistNum21+1);
5879 Gnum2 = MS.guildListRegistNum22;
5881 if(Gnum2 > GCnum2+1)
5887 saveGuildList = calloc((GCnum2+1), sizeof(int));
5888 if(!guildRE2) GuildDisp2 = calloc(Gnum2, sizeof(int));
5889 for(int i = 0;i < Gnum2;i++){
5891 n = [self chooseGuildList:GuildChosen2 gcnum:GCnum2];
5894 *(GuildDisp2 + i) = *(GuildChosen2 + n);
5897 if(*(GuildDisp2 + i) <= 0)
5900 NSMutableDictionary* dict = [NSMutableDictionary new];
5901 [dict setValue:[NSString stringWithFormat:@"%@", UC[*(GuildDisp2 + i)-1].name] forKey:@"name"];
5902 [dict setValue:[NSString stringWithFormat:@"%g", UC[*(GuildDisp2 + i)-1].S_M.HP] forKey:@"HP"];
5903 [dict setValue:[NSString stringWithFormat:@"資%d 食%d 金%d", UC[*(GuildDisp2 + i)-1].S_M.cSupply, UC[*(GuildDisp2 + i)-1].S_M.cFood, UC[*(GuildDisp2 + i)-1].S_M.cMoney] forKey:@"cost"];
5904 [dict setValue:UC[*(GuildDisp2 + i)-1].img forKey:@"img"];
5907 [self willChangeValueForKey:@"CResearchListMA"];
5908 [CResearchListMA addObject:dict];
5909 [self didChangeValueForKey:@"CResearchListMA"];
5919 for(int i = k;i <= crCRL;i++){
5920 if(*(GuildDisp2 + i - k) <= 0)
5924 [researchATK setStringValue:[NSString stringWithFormat:@"攻撃力 %g", UC[*(GuildDisp2 + i - k)-1].S_M.ATK]];
5925 [researchDEF setStringValue:[NSString stringWithFormat:@"防御力 %g", UC[*(GuildDisp2 + i - k)-1].S_M.DEF]];
5926 [researchCAP setStringValue:[NSString stringWithFormat:@"演算力 %g", UC[*(GuildDisp2 + i - k)-1].S_M.CAP]];
5927 [researchACU setStringValue:[NSString stringWithFormat:@"命中値 %g", UC[*(GuildDisp2 + i - k)-1].S_M.ACU]];
5928 [researchEVA setStringValue:[NSString stringWithFormat:@"回避値 %g", UC[*(GuildDisp2 + i - k)-1].S_M.EVA]];
5929 [researchMOV setStringValue:[NSString stringWithFormat:@"移動力 %d", UC[*(GuildDisp2 + i - k)-1].S_M.MOV]];
5930 [researchIMG setImage:UC[*(GuildDisp2 + i - k)-1].imgb];
5931 [researchIMG setImageScaling:NSScaleToFit];
5948 -(int)chooseGuildList:(int*)value gcnum:(int)gcnum{
5952 bool sameFlag = false;
5953 bool sameFlag2 = false;
5955 if(guildc >= gcnum+1){
5960 a = arc4random()%(gcnum+1);
5962 for(int i = 0;i < guildc;i++){
5963 if(*(saveGuildList+i) == a){
5972 *(saveGuildList+guildc) = a;
5978 if([UC[*(value + a)-1].nameID isEqualToString:U->C.nameID]){
5993 -(void)initGuildList{
5995 MAPSCRIPT MS = MF[MFselectedRow+1].MS;
5997 GuildChosen1 = calloc(UCN, sizeof(int));
5998 GuildChosen2 = calloc(UCN, sizeof(int));
6001 for (int i = 0;i < UCN;i++) {
6002 if(MS.guildListRegist[i]){
6004 *(GuildChosen1 + GCnum1) = i+1;
6008 for (int i = 0;i < UCN;i++) {
6009 if(MS.guildListRegist2[i]){
6011 *(GuildChosen2 + GCnum2) = i+1;
6020 [self setCommandPanel];
6021 [menuPanel makeKeyAndOrderFront:nil];
6024 -(IBAction)pushMove:(id)sender{menuDisplayFlag = false;
6031 -(IBAction)pushAttack:(id)sender{menuDisplayFlag = false;
6035 windowPoint.x = [mapWindow frame].origin.x;
6036 windowPoint.y = [mapWindow frame].origin.y;
6037 [atkPanel setFrameOrigin:windowPoint];
6040 while (!(AUN[1] == U->number)) {
6044 if(U->chipNumberL >= 0){
6046 [self initCAttackList2];
6047 [self initCAttackSelect2];
6049 else if(U->chipNumber >= 0) {
6051 [self initCAttackList];
6052 [self initCAttackSelect];
6055 [atkPanel makeKeyAndOrderFront:nil];
6057 -(IBAction)pushStandby:(id)sender{menuDisplayFlag = false;
6061 while (U->number != wtUnitNum) {
6065 if(!wtMovedFlag && !wtAttackedFlag){
6066 U->C.S_C.WT = floor(U->C.S_M.WT/4 + 0.5);
6067 }else if(wtMovedFlag && wtAttackedFlag){
6068 U->C.S_C.WT = floor(U->C.S_M.WT + 0.5);
6069 }else if(wtMovedFlag){
6070 U->C.S_C.WT = floor(U->C.S_M.WT/2 + 0.5);
6071 }else if(wtAttackedFlag){
6072 U->C.S_C.WT = floor(U->C.S_M.WT/2 + 0.5);
6077 if(B->x == possionX && B->y == possionY && B->C.capture){
6078 buildCaptureFlag = true;
6079 unitMoveEndFlag = true;
6089 pushStanbyFlag = true;
6090 pussyLoopFlag = false;
6093 -(IBAction)pushCreate:(id)sender{menuDisplayFlag = false;
6098 windowPoint.x = [mapWindow frame].origin.x;
6099 windowPoint.y = [mapWindow frame].origin.y;
6100 [createPanel setFrameOrigin:windowPoint];
6102 [self initBCreateList];
6103 [createPanel makeKeyAndOrderFront:nil];
6106 -(IBAction)pushSummon:(id)sender{menuDisplayFlag = false;
6111 windowPoint.x = [mapWindow frame].origin.x;
6112 windowPoint.y = [mapWindow frame].origin.y;
6113 [summonPanel setFrameOrigin:windowPoint];
6115 [self initCSummonList];
6116 [summonPanel makeKeyAndOrderFront:nil];
6121 -(void)initStatusWindow{
6125 [STIV setImage:Uselected->C.imgb];
6126 [STnameTF setStringValue:Uselected->C.name];
6127 [STclassTF setStringValue:Uselected->C.nameClass];
6128 [SThpTF setStringValue:[NSString stringWithFormat:@"HP %g/%g", Uselected->C.S_C.HP, Uselected->C.S_M.HP]];
6129 [STmpTF setStringValue:[NSString stringWithFormat:@"MP %g/%g", Uselected->C.S_C.MP, Uselected->C.S_M.MP]];
6130 [STatkTF setStringValue:[NSString stringWithFormat:@"ATK %g", Uselected->C.S_C.ATK]];
6131 [STdefTF setStringValue:[NSString stringWithFormat:@"DEF %g", Uselected->C.S_C.DEF]];
6132 [STcapTF setStringValue:[NSString stringWithFormat:@"CAP %g", Uselected->C.S_C.CAP]];
6133 [STacuTF setStringValue:[NSString stringWithFormat:@"ACU %g", Uselected->C.S_C.ACU]];
6134 [STevaTF setStringValue:[NSString stringWithFormat:@"EVA %g", Uselected->C.S_C.EVA]];
6135 [STstrTF setStringValue:[NSString stringWithFormat:@"STR %g", Uselected->C.S_C.STR]];
6136 [STvitTF setStringValue:[NSString stringWithFormat:@"VIT %g", Uselected->C.S_C.VIT]];
6137 [STagiTF setStringValue:[NSString stringWithFormat:@"AGI %g", Uselected->C.S_C.AGI]];
6138 [STdexTF setStringValue:[NSString stringWithFormat:@"DEX %g", Uselected->C.S_C.DEX]];
6139 [STmenTF setStringValue:[NSString stringWithFormat:@"MEN %g", Uselected->C.S_C.MEN]];
6140 [STintTF setStringValue:[NSString stringWithFormat:@"INT %g", Uselected->C.S_C.INT]];
6141 [STmelTF setStringValue:[NSString stringWithFormat:@"MEL %g", Uselected->C.S_C.MEL]];
6142 [STmisTF setStringValue:[NSString stringWithFormat:@"MIS %g", Uselected->C.S_C.MIS]];
6143 [SThitTF setStringValue:[NSString stringWithFormat:@"HIT %g", Uselected->C.S_C.HIT]];
6144 [STdodTF setStringValue:[NSString stringWithFormat:@"DOD %g", Uselected->C.S_C.DOD]];
6145 [STreaTF setStringValue:[NSString stringWithFormat:@"REA %g", Uselected->C.S_C.REA]];
6146 [STskiTF setStringValue:[NSString stringWithFormat:@"SKI %g", Uselected->C.S_C.SKI]];
6147 [STvigTF setStringValue:[NSString stringWithFormat:@"VIG %d", Uselected->C.S_C.vigor]];
6158 -(IBAction)pushStatus:(id)sender{menuDisplayFlag = false;
6160 [self initStatusWindow];
6162 windowPoint.x = [mapWindow frame].origin.x;
6163 windowPoint.y = [mapWindow frame].origin.y;
6164 [STwindow setFrameOrigin:windowPoint];
6165 [STwindow makeKeyAndOrderFront:nil];
6172 -(IBAction)STsubmit:(id)sender{
6177 -(IBAction)pushCancel:(id)sender{menuDisplayFlag = false;
6183 -(IBAction)pushCancelCAL:(id)sender{
6188 -(IBAction)pushCancelBCL:(id)sender{
6190 [createPanel close];
6193 -(IBAction)pushCancelCSL:(id)sender{
6195 [summonPanel close];
6198 -(void)addBuildStatus{
6203 if(registerNumB == 1){
6204 B = calloc(1, sizeof(BUILD));
6211 while (B->next) {omgCnt++;
6214 if(registerNumB != 1){
6215 B->next = calloc(1, sizeof(BUILD));
6216 if(registerNumB == 2)
6222 B->number = registerNumB;
6225 B->chipNumber = BC[buildNum[possionX][possionY]].chipNumb;
6228 B->C = BC[buildNum[possionX][possionY]];
6229 B->img = [BC[buildNum[possionX][possionY]].img retain];
6230 unitColorInitFlag = true;
6232 if(buildTeam[possionX][possionY] == 0 || buildTeam[possionX][possionY] == 1){
6234 if(unitTeam[possionX][possionY] == 0){
6235 U->joinArmyFromNext = true;
6236 U->persuasion = true;
6239 if(buildTeam[possionX][possionY] == 2 || buildTeam[possionX][possionY] == 3){
6242 if(buildTeam[possionX][possionY] == 4 || buildTeam[possionX][possionY] == 5){
6245 if(buildTeam[possionX][possionY] == -1){
6254 -(void)addUnitStatus{
6258 while (U->next) {omgCnt++;
6261 U->next = calloc(1, sizeof(UNIT));
6264 if(omgCnt == 0) U = UTop;
6265 U->number = registerNum;
6267 for(int i = 0;i < UCN;i++){
6268 if([U->C.nameID isEqualToString:UC[i].nameID])
6272 U->chipNumber = unitNum[possionX][possionY];
6273 U->chipNumberL = loadNum[possionX][possionY];
6274 U->C.chipNumb = unitNum[possionX][possionY];
6275 U->CL.chipNumb = loadNum[possionX][possionY];
6279 if(unitTeam[possionX][possionY] == 0 || unitTeam[possionX][possionY] == 1){
6281 if(unitTeam[possionX][possionY] == 1){
6282 U->joinArmyFromNext = true;
6283 U->persuasion = true;
6286 if(MF[MFselectedRow+1].MS.playerSet1 == 2){
6290 if(unitTeam[possionX][possionY] == 2 || unitTeam[possionX][possionY] == 3){
6292 if(unitTeam[possionX][possionY] == 3){
6293 U->joinArmyFromNext = true;
6294 U->persuasion = true;
6297 if(MF[MFselectedRow+1].MS.playerSet2 == 2){
6301 if(unitTeam[possionX][possionY] == 4 || unitTeam[possionX][possionY] == 5){
6303 if(unitTeam[possionX][possionY] == 5){
6304 U->joinArmyFromNext = true;
6305 U->persuasion = true;
6309 if(unitTeam[possionX][possionY] == -1){
6311 if(unitTeam[possionX][possionY] == 0){
6312 U->joinArmyFromNext = false;
6313 U->persuasion = true;
6319 [self SetUnitStatus:unitNum[possionX][possionY]];
6323 -(void)addSummonStatus{
6327 while (U->next) {omgCnt++;
6330 U->next = calloc(1, sizeof(UNIT));
6333 if(omgCnt == 0) U = UTop;
6340 if(unitTeam[CSLU->x][CSLU->y] == 0 || unitTeam[CSLU->x][CSLU->y] == 1){
6342 if(unitTeam[CSLU->x][CSLU->y] == 1){
6343 U->joinArmyFromNext = true;
6344 U->persuasion = true;
6347 if(unitTeam[CSLU->x][CSLU->y] == 2 || unitTeam[CSLU->x][CSLU->y] == 3){
6349 if(unitTeam[CSLU->x][CSLU->y] == 3){
6350 U->joinArmyFromNext = true;
6351 U->persuasion = true;
6354 if(unitTeam[CSLU->x][CSLU->y] == 4 || unitTeam[CSLU->x][CSLU->y] == 5){
6356 if(unitTeam[CSLU->x][CSLU->y] == 5){
6357 U->joinArmyFromNext = true;
6358 U->persuasion = true;
6361 if(unitTeam[CSLU->x][CSLU->y] == -1){
6363 if(unitTeam[CSLU->x][CSLU->y] == 0){
6364 U->joinArmyFromNext = false;
6365 U->persuasion = true;
6369 [self SetUnitStatus:unitNum[possionX][possionY]];
6371 for(int i = 0;i < UCN;i++){
6372 if([U->C.nameID isEqualToString:UC[i].nameID])
6375 for(int i = 0;i < LCN;i++){
6376 if([U->CL.nameID isEqualToString:LC[i].nameID])
6379 for(int i = 0;i < UCN;i++){
6380 if([U->C.nameID isEqualToString:UC[i].nameID])
6383 for(int i = 0;i < LCN;i++){
6384 if([U->CL.nameID isEqualToString:LC[i].nameID])
6392 -(void)initUnitStatusDat{
6395 for(int i = 0;i < sdd2[datRow].registerNum;i++){
6397 U = calloc(1, sizeof(UNIT));
6403 U->x = sdd2[datRow].dU[i].x;
6404 U->y = sdd2[datRow].dU[i].y;
6405 U->number = sdd2[datRow].dU[i].number;;
6406 U->chipNumber = sdd2[datRow].dU[i].chipNumber;
6407 U->chipNumberL = sdd2[datRow].dU[i].chipNumberL;
6408 U->C.chipNumb = sdd2[datRow].dU[i].C.chipNumb;
6409 U->CL.chipNumb = sdd2[datRow].dU[i].C.chipNumb;
6411 U->dead = sdd2[datRow].dU[i].dead;
6413 U->team = sdd2[datRow].dU[i].team;
6414 U->CPU = sdd2[datRow].dU[i].CPU;
6415 U->joinArmyFromNext = sdd2[datRow].dU[i].joinArmyFromNext;
6416 U->persuasion = sdd2[datRow].dU[i].persuasion;
6418 U->ix = sdd2[datRow].dU[i].ix;
6419 U->iy = sdd2[datRow].dU[i].iy;
6420 U->iz = sdd2[datRow].dU[i].iz;
6424 if(U->chipNumber >= 0) [self SetUnitStatus:U->chipNumber];
6425 if(U->chipNumberL >= 0) [self SetUnitStatus2:U->chipNumberL];
6427 U->C.S_C = sdd2[datRow].dU[i].C.S_C;
6428 U->C.R_C = sdd2[datRow].dU[i].C.R_C;
6430 if(U->chipNumberL >= 0) U->img = [LC[U->chipNumberL].img retain];
6431 else U->img = [UC[U->chipNumber].img retain];
6434 unitTeam[U->x][U->y] = U->team;
6435 unitNum[U->x][U->y] = U->chipNumber;
6436 loadNum[U->x][U->y] = U->chipNumberL;
6439 U->next = calloc(1, sizeof(UNIT));
6442 if(U) U->next = NULL;
6448 -(void)initUnitStatus{
6452 for(int i=1;i <= chipHeight;i++){
6453 for(int j=1;j<= chipWidth;j++){
6454 if(unitNum[j][i] >= 0 || loadNum[j][i] >= 0){
6456 if(registerNum == 1){
6457 U = calloc(1, sizeof(UNIT));
6464 U->number = registerNum;
6465 U->chipNumber = unitNum[j][i];
6466 U->chipNumberL = loadNum[j][i];
6467 U->C.chipNumb = U->chipNumber;
6468 U->CL.chipNumb = U->chipNumberL;
6470 if(unitTeam[j][i] == 0 || unitTeam[j][i] == 1){
6472 if(unitTeam[j][i] == 1){
6473 U->joinArmyFromNext = true;
6474 U->persuasion = true;
6476 if(MF[MFselectedRow+1].MS.playerSet1 == 2)
6479 if(unitTeam[j][i] == 2 || unitTeam[j][i] == 3){
6481 if(unitTeam[i][j] == 2){
6482 U->joinArmyFromNext = true;
6483 U->persuasion = true;
6485 if(MF[MFselectedRow+1].MS.playerSet2 == 2)
6488 if(unitTeam[j][i] == 4 || unitTeam[j][i] == 5){
6490 if(unitTeam[j][i] == 5){
6491 U->joinArmyFromNext = true;
6492 U->persuasion = true;
6496 if(unitTeam[j][i] == -1){
6498 if(unitTeam[j][i] == -1){
6499 U->joinArmyFromNext = false;
6500 U->persuasion = true;
6504 if(unitNum[j][i] >= 0) [self SetUnitStatus:unitNum[j][i]];
6505 if(loadNum[j][i] >= 0) [self SetUnitStatus2:loadNum[j][i]];
6507 U->next = calloc(1, sizeof(UNIT));
6518 if(Ucrnt->x == U->x && Ucrnt->y == U->y){
6530 if(U) U->next = NULL;
6535 -(void)initBuildStatusDat{
6538 for(int i = 0;i < sdd2[datRow].registerNumB;i++){
6540 B = calloc(1, sizeof(BUILD));
6546 B->x = sdd2[datRow].dB[i].x;
6547 B->y = sdd2[datRow].dB[i].y;
6548 B->team = sdd2[datRow].dB[i].team;
6549 B->number = sdd2[datRow].dB[i].number;
6550 B->chipNumber = sdd2[datRow].dB[i].chipNumber;
6551 B->makeLv = sdd2[datRow].dB[i].makeLv;
6552 B->dead = sdd2[datRow].dB[i].dead;
6554 B->C = BC[B->chipNumber];
6555 B->C.S_C = sdd2[datRow].dB[i].C.S_C;
6557 B->img = [BC[B->chipNumber].img retain];
6559 buildTeam[B->x][B->y] = B->team;
6560 buildNum[B->x][B->y] = B->chipNumber;
6562 B->next = calloc(1, sizeof(BUILD));
6564 if(B) B->next = NULL;
6570 -(void)initBuildStatus{
6573 for(int i=1;i <= chipHeight;i++){
6574 for(int j=1;j<= chipWidth;j++){
6575 if(buildNum[j][i] >= 0){
6577 if(registerNumB == 1){
6578 B = calloc(1, sizeof(BUILD));
6581 if(registerNumB > 1)
6585 B->number = registerNumB;
6586 B->chipNumber = buildNum[j][i];
6588 if(buildTeam[j][i] == 0 || buildTeam[j][i] == 1){
6592 if(buildTeam[j][i] == 2 || buildTeam[j][i] == 3){
6596 if(buildTeam[j][i] == 4 || buildTeam[j][i] == 5){
6600 if(buildTeam[j][i] == -1){
6604 //[self SetUnitStatus:unitNum[j][i]];
6606 B->C = BC[buildNum[j][i]];
6608 B->next = calloc(1, sizeof(BUILD));
6614 if(B) B->next = NULL;
6619 -(void)SetUnitStatus:(int)UN{
6622 U->C.S_C.vigor = 100;
6629 AtopE1 = UC[UN].eHandL.A;
6630 AtopE2 = UC[UN].eHandR.A;
6631 U->C.A = calloc(1, sizeof(ATTACK));
6637 while(UC[UN].eHandR.A != NULL){ow1 = true;
6638 *U->C.A = *UC[UN].eHandR.A;
6639 U->C.A->next = calloc(1, sizeof(ATTACK));
6640 U->C.A->next->next = NULL;
6641 if(UC[UN].eHandR.A->next != NULL) U->C.A = U->C.A->next;
6642 UC[UN].eHandR.A = UC[UN].eHandR.A->next;
6643 U->C.attackListNum++;
6645 UC[UN].eHandR.A = AtopE2;
6649 U->C.A = U->C.A->next;
6652 while(UC[UN].eHandL.A != NULL){ow2 = true;
6653 *U->C.A = *UC[UN].eHandL.A;
6654 U->C.A->next = calloc(1, sizeof(ATTACK));
6655 U->C.A->next->next = NULL;
6656 if(UC[UN].eHandL.A->next != NULL) U->C.A = U->C.A->next;
6657 UC[UN].eHandL.A = UC[UN].eHandL.A->next;
6658 U->C.attackListNum++;
6660 UC[UN].eHandL.A = AtopE1;
6663 U->C.A = U->C.A->next;
6666 while(UC[UN].A != NULL){
6667 *U->C.A = *UC[UN].A;
6668 U->C.A->next = calloc(1, sizeof(ATTACK));
6669 U->C.A->next->next = NULL;
6670 if(UC[UN].A->next != NULL) U->C.A = U->C.A->next;
6671 UC[UN].A = UC[UN].A->next;
6673 U->C.A->next = NULL;
6676 if(U->C.A) if(!U->C.A->name)
6681 -(void)SetUnitStatus2:(int)UN{
6688 U->CL.A = calloc(1, sizeof(ATTACK));
6690 while(LC[UN].A != NULL){
6691 *U->CL.A = *LC[UN].A;
6692 U->CL.A->next = calloc(1, sizeof(ATTACK));
6693 U->CL.A->next->next = NULL;
6694 if(LC[UN].A->next != NULL) U->CL.A = U->CL.A->next;
6695 LC[UN].A = LC[UN].A->next;
6697 U->CL.A->next = NULL;
6704 -(void)initCAttackList2{
6707 CAttackListMA = [NSMutableArray new];
6709 [self willChangeValueForKey:@"CAttackListMA"];
6710 [CAttackListMA removeAllObjects];
6711 [self didChangeValueForKey:@"CAttackListMA"];
6714 if(!battleSet2PushedFlag){
6716 while (!(AUN[1] == U->number)) {
6720 for(int i = 0;i < U->CL.attackListNum;i++){
6722 NSMutableDictionary* dict = [NSMutableDictionary new];
6723 [dict setValue:[NSString stringWithFormat:@"%@", U->CL.A->name] forKey:@"name"];
6724 [dict setValue:[NSString stringWithFormat:@"%g", U->CL.A->totalD] forKey:@"atk"];
6725 if(U->CL.A->rangeA != U->CL.A->rangeB){
6726 [dict setValue:[NSString stringWithFormat:@"%d-%d", U->CL.A->rangeA, U->CL.A->rangeB] forKey:@"range"];
6728 [dict setValue:[NSString stringWithFormat:@"%d", U->CL.A->rangeA] forKey:@"range"];
6730 [dict setValue:[NSString stringWithFormat:@"%d", U->CL.A->hitPercent] forKey:@"hit"];
6731 //[dict setValue:[NSString stringWithFormat:@"%d", U->C.A->bulletC] forKey:@"bullet"];
6733 [self willChangeValueForKey:@"CAttackListMA"];
6734 [CAttackListMA addObject:dict];
6735 [self didChangeValueForKey:@"CAttackListMA"];
6737 U->CL.A = U->CL.A->next;
6743 while (!(DUN[1] == U->number)) {
6747 for(int i = 0;i < U->CL.attackListNum;i++){
6750 U->CL.attackListNum = i;
6753 NSMutableDictionary* dict = [NSMutableDictionary new];
6754 [dict setValue:[NSString stringWithFormat:@"%@", U->CL.A->name] forKey:@"name"];
6755 [dict setValue:[NSString stringWithFormat:@"%g", U->CL.A->totalD] forKey:@"atk"];
6756 if(U->CL.A->rangeA != U->CL.A->rangeB){
6757 [dict setValue:[NSString stringWithFormat:@"%d-%d", U->CL.A->rangeA, U->CL.A->rangeB] forKey:@"range"];
6759 [dict setValue:[NSString stringWithFormat:@"%d", U->CL.A->rangeA] forKey:@"range"];
6761 [dict setValue:[NSString stringWithFormat:@"%d", U->CL.A->hitPercent] forKey:@"hit"];
6762 //[dict setValue:[NSString stringWithFormat:@"%d", U->C.A->bulletC] forKey:@"bullet"];
6764 [self willChangeValueForKey:@"CAttackListMA"];
6765 [CAttackListMA addObject:dict];
6766 [self didChangeValueForKey:@"CAttackListMA"];
6768 U->CL.A = U->CL.A->next;
6776 [CAttackListAC setSelectionIndex:crCAL];
6778 [self initCAttackSelect2];
6785 -(void)initCAttackList{
6787 CAttackListMA = [NSMutableArray new];
6789 [self willChangeValueForKey:@"CAttackListMA"];
6790 [CAttackListMA removeAllObjects];
6791 [self didChangeValueForKey:@"CAttackListMA"];
6794 if(!battleSet2PushedFlag){
6796 while (!(AUN[1] == U->number)) {
6800 for(int i = 0;i < U->C.attackListNum;i++){
6802 U->C.attackListNum = i;
6805 NSMutableDictionary* dict = [NSMutableDictionary new];
6806 [dict setValue:[NSString stringWithFormat:@"%@", U->C.A->name] forKey:@"name"];
6807 [dict setValue:[NSString stringWithFormat:@"%g", U->C.A->totalD] forKey:@"atk"];
6808 if(U->C.A->rangeA != U->C.A->rangeB){
6809 [dict setValue:[NSString stringWithFormat:@"%d-%d", U->C.A->rangeA, U->C.A->rangeB] forKey:@"range"];
6811 [dict setValue:[NSString stringWithFormat:@"%d", U->C.A->rangeA] forKey:@"range"];
6813 [dict setValue:[NSString stringWithFormat:@"%d", U->C.A->hitPercent] forKey:@"hit"];
6814 //[dict setValue:[NSString stringWithFormat:@"%d", U->C.A->bulletC] forKey:@"bullet"];
6816 [self willChangeValueForKey:@"CAttackListMA"];
6817 [CAttackListMA addObject:dict];
6818 [self didChangeValueForKey:@"CAttackListMA"];
6820 U->C.A = U->C.A->next;
6827 while (!(DUN[1] == U->number)) {
6831 for(int i = 0;i < U->C.attackListNum;i++){
6832 NSMutableDictionary* dict = [NSMutableDictionary new];
6833 [dict setValue:[NSString stringWithFormat:@"%@", U->C.A->name] forKey:@"name"];
6834 [dict setValue:[NSString stringWithFormat:@"%g", U->C.A->totalD] forKey:@"atk"];
6835 if(U->C.A->rangeA != U->C.A->rangeB){
6836 [dict setValue:[NSString stringWithFormat:@"%d-%d", U->C.A->rangeA, U->C.A->rangeB] forKey:@"range"];
6838 [dict setValue:[NSString stringWithFormat:@"%d", U->C.A->rangeA] forKey:@"range"];
6840 [dict setValue:[NSString stringWithFormat:@"%d", U->C.A->hitPercent] forKey:@"hit"];
6841 //[dict setValue:[NSString stringWithFormat:@"%d", U->C.A->bulletC] forKey:@"bullet"];
6843 [self willChangeValueForKey:@"CAttackListMA"];
6844 [CAttackListMA addObject:dict];
6845 [self didChangeValueForKey:@"CAttackListMA"];
6847 U->C.A = U->C.A->next;
6855 [CAttackListAC setSelectionIndex:crCAL];
6857 [self initCAttackSelect];
6860 -(void)initBCreateList{
6861 BCreateListMA = [NSMutableArray new];
6863 [self willChangeValueForKey:@"BCreateListMA"];
6864 [BCreateListMA removeAllObjects];
6865 [self didChangeValueForKey:@"BCreateListMA"];
6866 buildSkillFlag = false;
6870 while (!(AUN[1] == U->number)) {
6878 while (U->C.S->type != 1 && U->C.S->next) {
6879 U->C.S = U->C.S->next;
6881 if(U->C.S->type != 1) {
6886 for(int i = 0;U->C.S->list[i] > 0;i++){
6887 NSMutableDictionary* dict = [NSMutableDictionary new];
6888 [dict setValue:[NSString stringWithFormat:@"%@", BC[U->C.S->list[i]-1].name] forKey:@"name"];
6889 [dict setValue:[NSString stringWithFormat:@"資%d 食%d 金%d",
6890 BC[U->C.S->list[i]-1].Csupply, BC[U->C.S->list[i]-1].Cfood, BC[U->C.S->list[i]-1].Cmoney] forKey:@"cost"];
6891 [dict setValue:BC[U->C.S->list[i]-1].img forKey:@"img"];
6893 [self willChangeValueForKey:@"BCreateListMA"];
6894 [BCreateListMA addObject:dict];
6895 [self didChangeValueForKey:@"BCreateListMA"];
6897 buildSkillFlag = true;
6903 -(void)initCSummonList{
6904 CSummonListMA = [NSMutableArray new];
6906 [self willChangeValueForKey:@"CSummonListMA"];
6907 [CSummonListMA removeAllObjects];
6908 [self didChangeValueForKey:@"CSummonListMA"];
6910 summonSkillFlag = false;
6914 while (!(AUN[1] == U->number)) {
6922 while (U->C.S->type != 2 && U->C.S->next) {
6923 U->C.S = U->C.S->next;
6925 if(U->C.S->type != 2) {
6930 for(int i = 0;U->C.S->list[i] > 0;i++){
6931 NSMutableDictionary* dict = [NSMutableDictionary new];
6932 [dict setValue:[NSString stringWithFormat:@"%@", UC[U->C.S->list[i]-1].nameClass] forKey:@"name"];
6933 [dict setValue:[NSString stringWithFormat:@"%g", UC[U->C.S->list[i]-1].S_M.HP] forKey:@"HP"];
6934 [dict setValue:[NSString stringWithFormat:@"%g", U->C.S->cost[i]] forKey:@"cost"];
6935 [dict setValue:UC[U->C.S->list[i]-1].img forKey:@"img"];
6937 [self willChangeValueForKey:@"CSummonListMA"];
6938 [CSummonListMA addObject:dict];
6939 [self didChangeValueForKey:@"CSummonListMA"];
6941 summonSkillFlag = true;
6949 -(void)AttackDisplay{
6951 if(battleRdy) return;
6952 if(!battleSetUp) return;
6953 if(!fuckingLoadBugFix) return;
6956 while (!(AUN[1] == U->number)) {
6959 [bplayer1 setImage:U->C.imgb];
6960 [bplayer1 setImageScaling:NSScaleToFit];
6961 [nplayer1 setStringValue:U->C.name];
6962 [tplayer1 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->C.S_C.HP, U->C.S_M.HP]];
6963 [lplayer1 setIntValue:U->C.S_C.HP/U->C.S_M.HP*100];
6964 [iplayer1 setImage:MC[chipNum[U->x][U->y]].img];
6965 [mplayer1 setStringValue:MC[chipNum[U->x][U->y]].name];
6966 [rplayer1 setStringValue:[NSString stringWithFormat:@"地形効果 %d%", MC[chipNum[U->x][U->y]].dmgfix]];
6972 while (!(DUN[1] == U->number)) {
6975 [bplayer2 setImage:U->C.imgb];
6976 [bplayer1 setImageScaling:NSScaleToFit];
6977 [nplayer2 setStringValue:U->C.name];
6978 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->C.S_C.HP, U->C.S_M.HP]];
6979 [lplayer2 setIntValue:U->C.S_C.HP/U->C.S_M.HP*100];
6980 [iplayer2 setImage:MC[chipNum[U->x][U->y]].img];
6981 [mplayer2 setStringValue:MC[chipNum[U->x][U->y]].name];
6982 [rplayer2 setStringValue:[NSString stringWithFormat:@"地形効果 %d%", MC[chipNum[U->x][U->y]].dmgfix]];
6985 [self AttackDisplay2];
6988 [battleDialog setStringValue:@"攻撃開始!!!!"];
6994 -(void)AttackDisplay2{
6998 while (!(DUN[1] == U->number)) {
7003 while (!(AUN[1] == U->number)) {
7008 if(U->chipNumberL >= 0 && U2->chipNumberL >= 0){U = UTop;
7011 while (!(AUN[1] == U->number)) {
7014 [bplayer1 setImage:U->CL.imgb];
7015 [bplayer1 setImageScaling:NSScaleToFit];
7016 [nplayer1 setStringValue:U->CL.name];
7017 [tplayer1 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
7018 [lplayer1 setIntValue:U->CL.S_C.HP/U->CL.S_M.HP*100];
7024 while (!(DUN[1] == U->number)) {
7027 [bplayer2 setImage:U->CL.imgb];
7028 [bplayer1 setImageScaling:NSScaleToFit];
7029 [nplayer2 setStringValue:U->CL.name];
7030 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
7031 [lplayer2 setIntValue:U->CL.S_C.HP/U->CL.S_M.HP*100];
7035 }else if(U->chipNumberL >= 0 && U2->chipNumberL < 0){U = UTop;
7037 while (!(AUN[1] == U->number)) {
7040 [bplayer1 setImage:U->CL.imgb];
7041 [bplayer1 setImageScaling:NSScaleToFit];
7042 [nplayer1 setStringValue:U->CL.name];
7043 [tplayer1 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
7044 [lplayer1 setIntValue:U->CL.S_C.HP/U->CL.S_M.HP*100];
7050 while (!(DUN[1] == U->number)) {
7053 [bplayer2 setImage:U->C.imgb];
7054 [bplayer1 setImageScaling:NSScaleToFit];
7055 [nplayer2 setStringValue:U->C.name];
7056 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->C.S_C.HP, U->C.S_M.HP]];
7057 [lplayer2 setIntValue:U->C.S_C.HP/U->C.S_M.HP*100];
7063 }else if(U->chipNumberL < 0 && U2->chipNumberL >= 0){U = UTop;
7065 while (!(AUN[1] == U->number)) {
7068 [bplayer1 setImage:U->C.imgb];
7069 [bplayer1 setImageScaling:NSScaleToFit];
7070 [nplayer1 setStringValue:U->C.name];
7071 [tplayer1 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->C.S_C.HP, U->C.S_M.HP]];
7072 [lplayer1 setIntValue:U->C.S_C.HP/U->C.S_M.HP*100];
7078 while (!(DUN[1] == U->number)) {
7081 [bplayer2 setImage:U->CL.imgb];
7082 [bplayer1 setImageScaling:NSScaleToFit];
7083 [nplayer2 setStringValue:U->CL.name];
7084 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
7085 [lplayer2 setIntValue:U->CL.S_C.HP/U->CL.S_M.HP*100];
7093 -(bool)sortEcheck:(ATTACK*)AT opponent:(UNIT*)UT{
7095 if(AT->riku == FIELD_TYPE_E && UT->C.S_C.typeMOVE == MOVE_TYPE_RIKU)
7097 if(AT->umi == FIELD_TYPE_E && UT->C.S_C.typeMOVE == MOVE_TYPE_UMI)
7099 if(AT->chu == FIELD_TYPE_E && UT->C.S_C.typeMOVE == MOVE_TYPE_CHU)
7101 if(AT->sora == FIELD_TYPE_E && UT->C.S_C.typeMOVE == MOVE_TYPE_SORA)
7109 -(void)setBattlePanel{
7113 while (!(DUN[1] == U->number)) {
7118 while (!(AUN[1] == U->number)) {
7122 if(U->chipNumberL >= 0 && U2->chipNumberL >= 0){
7124 [self setBattlePanelT2];
7126 }else if(U->chipNumberL >= 0 && U2->chipNumberL <= 0){
7128 [self setBattlePanelT3];
7130 }else if(U->chipNumberL <= 0 && U2->chipNumberL >= 0){
7132 [self setBattlePanelT4];
7137 while (!(AUN[1] == U->number)) {
7141 if(cpuModeBATTLEflag && (MF[MFselectedRow+1].MS.playerSet1 == 2 || MF[MFselectedRow+1].MS.playerSet2 == 2)){
7142 cpuModeBATTLEflag = false;
7148 ATTACK *aTop2 = U->C.A;
7160 double urSupposedToGet;
7162 if(U->C.A) urSupposedToGet = pow(8, log(3+U->C.A->totalD/16));
7166 if(U2) asItIs = 1/log(3+U2->C.S_C.DEF/64);
7169 double oopsIsRight = 0;
7173 oopsIsRight = U->C.S_C.MEL;
7175 oopsIsRight = U->C.S_C.MIS;
7177 oopsIsRight = oopsIsRight/100;
7179 mpCost = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
7181 if(!U2->C.aura && U->C.A->D){
7182 if(U->C.A->D->type == 0) mostDmg2 = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7183 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7184 if(U->C.A->D->type == 1) mostDmg2 = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7185 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7186 if(U->C.A->D->type == 2) mostDmg2 = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7187 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7188 if(U->C.A->D->type == 3) mostDmg2 = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7189 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7190 if(U->C.A->D->type == 4) mostDmg2 = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7191 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7192 if(U->C.A->D->type == 5) mostDmg2 = U->C.A->totalD;
7193 }else if(U->C.A->D){
7194 double val = val = 1/log(3+U2->C.S_C.MP/64);
7195 if(U->C.A->D->type == 0) mostDmg2 = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7196 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7197 if(U->C.A->D->type == 1) mostDmg2 = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7198 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7199 if(U->C.A->D->type == 2) mostDmg2 = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7200 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7201 if(U->C.A->D->type == 3) mostDmg2 = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7202 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7203 if(U->C.A->D->type == 4) mostDmg2 = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7204 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7205 if(U->C.A->D->type == 5) mostDmg2 = U->C.A->totalD*val;
7207 double val2 = log(3+U2->C.S_C.MP/64);
7209 mostDmg2 = mostDmg2*val2;
7212 if(U->C.A->D->fix == 2){
7213 mostDmg2 = mostDmg2/2 + (U->C.S_C.HIT/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
7215 if(U->C.A->D->type == 0) mostDmg2 -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7216 if(U->C.A->D->type == 1) mostDmg2 -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7217 if(U->C.A->D->type == 2) mostDmg2 -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7218 if(U->C.A->D->type == 3) mostDmg2 -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7219 if(U->C.A->D->type == 4) mostDmg2 -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7222 }else if(U->C.A->D->fix == 1){
7223 mostDmg2 = mostDmg2/2 + ((U->C.S_C.ATK/2+U->C.S_C.HIT/2)/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
7225 if(U->C.A->D->type == 0) mostDmg2 -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7226 if(U->C.A->D->type == 1) mostDmg2 -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7227 if(U->C.A->D->type == 2) mostDmg2 -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7228 if(U->C.A->D->type == 3) mostDmg2 -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7229 if(U->C.A->D->type == 4) mostDmg2 -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7231 }else if(U->C.A->D->fix == 0){
7238 costVIG = U->C.A->vigor;
7241 mostDmg2 = [self dmgResist:mostDmg2];
7243 //NSLog(@"crCAL1 %d", crCAL1);
7244 if(mostDmg2 < 0) mostDmg2 = 1;
7247 if(mostDmg < mostDmg2 && U->C.A->rangeA <= unitBreak->atkRange && U->C.A->rangeB >= unitBreak->atkRange && mpCost <= U->C.S_C.MP && U->C.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
7251 //mostDmg = U->C.A->totalD;
7255 if(mostHit < U->C.A->hitPercent && hit < 50 && mostDmg/2 < mostDmg2 && U->C.A->rangeA <= unitBreak->atkRange && U->C.A->rangeB >= unitBreak->atkRange && mpCost <= U->C.S_C.MP && U->C.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
7256 //mostDmg = U->C.A->totalD;
7257 mostHit = U->C.A->hitPercent;
7260 U->C.A = U->C.A->next;
7265 if(U->C.A->extent == 0 && mostNum >= 0 && !CPUmostDmgChoice){
7269 for(int i = 0;i < mostNum;i++){
7270 U->C.A = U->C.A->next;
7276 for(int i = 0;i < crCAL1;i++){
7277 U->C.A = U->C.A->next;
7281 CPUmostDmgChoice = false;
7284 mostNumSub = mostNum;
7287 mpCost = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
7288 costVIG = U->C.A->vigor;
7290 if(U->C.A->rangeA <= unitBreak->atkRange && U->C.A->rangeB >= unitBreak->atkRange
7291 && mpCost <= U->C.S_C.MP && costVIG <= U->C.S_C.vigor){
7301 while (!(AUN[1] == U->number)) {
7306 ATTACK *aTop = U->C.A;
7309 for(int i = 0;i < crCAL1;i++){
7310 U->C.A = U->C.A->next;
7313 //NSLog(@"%@", U->C.A->name);
7317 for (int i = 0;i < crCAL1;i++) {
7318 U->C.A = U->C.A->next;
7323 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
7324 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
7325 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
7326 //NSLog(@"crCAL1 %d", crCAL1);
7328 [combatATK1 setStringValue:[NSString stringWithFormat:@"%@", U->C.A->name]];
7331 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7332 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7333 double oops = U->C.S_C.HP/U->C.S_M.HP*100;
7334 [combatLHP1 setIntValue:(int)oops];
7335 oops = U->C.S_C.MP/U->C.S_M.MP*100;
7336 [combatLMP1 setIntValue:(int)oops];
7338 hit = U->C.S_C.ACU*U->C.S_C.HIT/100*U->C.S_C.HP/U->C.S_M.HP;
7339 //NSLog(@"mostNumSub %d crCAL1 %d", mostNumSub, crCAL1);
7340 hitFix = U->C.A->hitPercent;
7346 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
7347 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
7348 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
7349 [combatATK1 setStringValue:[NSString stringWithFormat:@"防御耐性"]];
7350 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7351 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7352 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7355 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
7356 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
7357 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
7358 [combatATK1 setStringValue:[NSString stringWithFormat:@"回避耐性"]];
7359 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7360 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7361 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7372 while (!(DUN[1] == U->number)) {
7376 double hit2 = U->C.S_C.EVA*U->C.S_C.DOD/100*U->C.S_C.HP/U->C.S_M.HP;
7378 double hi = U->C.S_C.LUK - U2->C.S_C.LUK;
7381 hit = 60 + hit/hit2*10 - hit2/hit*10 + hitFix - log(hi/10+1)*hit2/hit*10;
7383 if(battleDod2Flag) hit = hit / 2;
7386 if(hit > 100) hit = 100;
7387 if(hit < 0) hit = 0;
7389 if(u2A->D->sort == 1){
7393 if([self sortEcheck:u2A opponent:U])
7395 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 %g", hit]];
7396 if(battleDef1Flag || battleDod1Flag) [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7405 ATTACK *aTop2 = U->C.A;
7411 double urSupposedToGet;
7413 if(U->C.A) urSupposedToGet = pow(8, log(3+U->C.A->totalD/16));
7416 if(U2) asItIs = 1/log(3+U2->C.S_C.DEF/64);
7418 double oopsIsRight = 0;
7422 oopsIsRight = U->C.S_C.MEL;
7424 oopsIsRight = U->C.S_C.MIS;
7426 oopsIsRight = oopsIsRight/100;
7428 mpCost = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
7430 if(!U2->C.aura && U->C.A->D){
7431 if(U->C.A->D->type == 0) mostDmg2 = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7432 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7433 if(U->C.A->D->type == 1) mostDmg2 = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7434 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7435 if(U->C.A->D->type == 2) mostDmg2 = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7436 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7437 if(U->C.A->D->type == 3) mostDmg2 = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7438 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7439 if(U->C.A->D->type == 4) mostDmg2 = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7440 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7441 if(U->C.A->D->type == 5) mostDmg2 = U->C.A->totalD;
7442 }else if(U->C.A->D){
7443 double val = val = 1/log(3+U2->C.S_C.MP/64);
7444 if(U->C.A->D->type == 0) mostDmg2 = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7445 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7446 if(U->C.A->D->type == 1) mostDmg2 = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7447 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7448 if(U->C.A->D->type == 2) mostDmg2 = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7449 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7450 if(U->C.A->D->type == 3) mostDmg2 = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7451 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7452 if(U->C.A->D->type == 4) mostDmg2 = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7453 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7454 if(U->C.A->D->type == 5) mostDmg2 = U->C.A->totalD*val;
7456 double val2 = log(3+U2->C.S_C.MP/64);
7458 mostDmg2 = mostDmg2*val2;
7461 if(U->C.A->D->fix == 2){
7462 mostDmg2 = mostDmg2/2 + (U->C.S_C.HIT/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
7464 if(U->C.A->D->type == 0) mostDmg2 -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7465 if(U->C.A->D->type == 1) mostDmg2 -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7466 if(U->C.A->D->type == 2) mostDmg2 -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7467 if(U->C.A->D->type == 3) mostDmg2 -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7468 if(U->C.A->D->type == 4) mostDmg2 -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7471 }else if(U->C.A->D->fix == 1){
7472 mostDmg2 = mostDmg2/2 + ((U->C.S_C.ATK/2+U->C.S_C.HIT/2)/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
7474 if(U->C.A->D->type == 0) mostDmg2 -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7475 if(U->C.A->D->type == 1) mostDmg2 -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7476 if(U->C.A->D->type == 2) mostDmg2 -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7477 if(U->C.A->D->type == 3) mostDmg2 -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7478 if(U->C.A->D->type == 4) mostDmg2 -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7480 }else if(U->C.A->D->fix == 0){
7489 mostDmg2 = [self dmgResist:mostDmg2];
7492 costVIG = U->C.A->vigor;
7495 if(mostDmg < mostDmg2 && U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && mpCost <= U->C.S_C.MP && U->C.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
7499 //mostDmg = U->C.A->totalD;
7503 if(mostHit < U->C.A->hitPercent && hit < 50 && mostDmg/2 < mostDmg2 && U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && mpCost <= U->C.S_C.MP && U->C.A->D->sort != 1 &&costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
7504 //mostDmg = U->C.A->totalD;
7505 mostHit = U->C.A->hitPercent;
7508 U->C.A = U->C.A->next;
7516 mostNumSub = mostNum;
7518 for(int i = 0;i < mostNum;i++){
7519 U->C.A = U->C.A->next;
7521 mpCost = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
7524 costVIG = U->C.A->vigor;
7527 if(U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && mpCost <= U->C.S_C.MP && costVIG <= U->C.S_C.vigor){
7529 }else while(U->C.A){
7530 U->C.A = U->C.A->next;
7539 //NSLog(@"%@", U->C.name);
7540 for (int i = 0;i < crCAL2;i++) {
7541 U->C.A = U->C.A->next;
7546 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
7547 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
7548 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
7549 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7550 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7551 double oops2 = U->C.S_C.HP/U->C.S_M.HP*100;
7552 [combatLHP2 setIntValue:(int)oops2];
7553 oops2 = U->C.S_C.MP/U->C.S_M.MP*100;
7554 [combatLMP2 setIntValue:(int)oops2];
7559 mpCost2 = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
7560 costVIG = U->C.A->vigor;
7563 if(U->C.A && U->C.A->D){
7564 if(U->C.A && !(u2A->D->sort == 1) && U->C.A->D->sort != 1 && mpCost2 <= U->C.S_C.MP && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U]){
7565 [combatATK2 setStringValue:[NSString stringWithFormat:@"%@", U->C.A->name]];
7566 hit = U->C.S_C.ACU*U->C.S_C.HIT/100*U->C.S_C.HP/U->C.S_M.HP;
7567 hitFix = U->C.A->hitPercent;
7569 }else if(u2A->D->sort == 1 || !U->C.A || U->C.A->D->sort == 1 || [self sortEcheck:U->C.A opponent:U]){
7570 [combatATK2 setStringValue:[NSString stringWithFormat:@"反撃不可能"]];
7573 [combatATK2 setStringValue:[NSString stringWithFormat:@"反撃不可能"]];
7579 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
7580 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
7581 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
7582 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7583 [combatATK2 setStringValue:[NSString stringWithFormat:@"防御態勢"]];
7584 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7585 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7589 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
7590 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
7591 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
7592 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7593 [combatATK2 setStringValue:[NSString stringWithFormat:@"回避耐性"]];
7594 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7595 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7599 while (!(DUN[1] == U->number)) {
7605 while (!(AUN[1] == U->number)) {
7611 double hit2 = U->C.S_C.EVA*U->C.S_C.DOD/100*U->C.S_C.HP/U->C.S_M.HP;
7614 double hi = U->C.S_C.LUK - U2->C.S_C.LUK;
7617 hit = 60 + hit/hit2*10 - hit2/hit*10 + hitFix - log(hi/10+1)*hit2/hit*10;
7618 if(battleDod1Flag) hit /= 2;
7621 if(hit > 100) hit = 100;
7622 if(hit < 0) hit = 0;
7624 if([self sortEcheck:U2A opponent:U])
7627 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 %g", hit]];
7628 if(battleDef2Flag || battleDod2Flag) [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7631 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7636 if(CPUAttackSubmitFlag){
7637 if(unitCPUAttackFlag){
7638 [battleCancelBtn setEnabled:NO];
7639 [battleCancelBtn setTransparent:YES];
7641 [battleCancelBtn setEnabled:YES];
7642 [battleCancelBtn setTransparent:NO];
7644 if(displayBattleCheckPanelFlag == 0) displayBattleCheckPanelFlag = 1;
7646 [battleCancelBtn setEnabled:YES];
7647 [battleCancelBtn setTransparent:NO];
7651 while (!(AUN[1] == U->number)) {
7656 [battleAttackBtn1 setEnabled:NO];
7657 [battleAttackBtn1 setTransparent:YES];
7658 [battleGuardBtn1 setEnabled:NO];
7659 [battleGuardBtn1 setTransparent:YES];
7660 [battleDodgeBtn1 setEnabled:NO];
7661 [battleDodgeBtn1 setTransparent:YES];
7663 [battleAttackBtn1 setEnabled:YES];
7664 [battleAttackBtn1 setTransparent:NO];
7665 [battleGuardBtn1 setEnabled:YES];
7666 [battleGuardBtn1 setTransparent:NO];
7667 [battleDodgeBtn1 setEnabled:YES];
7668 [battleDodgeBtn1 setTransparent:NO];
7672 while (!(DUN[1] == U->number)) {
7676 [battleAttackBtn2 setEnabled:NO];
7677 [battleAttackBtn2 setTransparent:YES];
7678 [battleGuardBtn2 setEnabled:NO];
7679 [battleGuardBtn2 setTransparent:YES];
7680 [battleDodgeBtn2 setEnabled:NO];
7681 [battleDodgeBtn2 setTransparent:YES];
7683 [battleAttackBtn2 setEnabled:YES];
7684 [battleAttackBtn2 setTransparent:NO];
7685 [battleGuardBtn2 setEnabled:YES];
7686 [battleGuardBtn2 setTransparent:NO];
7687 [battleDodgeBtn2 setEnabled:YES];
7688 [battleDodgeBtn2 setTransparent:NO];
7695 for (int i = 1; i < DUN[1]; i++) {
7701 if((MF[MFselectedRow+1].MS.playerSet1 == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
7702 unitBreak->team == 1 || (unitBreak->team == 2 && U->team == 1)
7709 [battleStartBtn setEnabled:YES];
7710 [battleStartBtn setTransparent:NO];
7715 avPlayerFlag1 = false;
7716 avPlayerFlag2 = false;
7719 -(void)setBattlePanelT2{
7723 ATTACK *aTop2 = U->CL.A;
7724 while (!(AUN[1] == U->number)) {
7728 if(cpuModeBATTLEflag && (MF[MFselectedRow+1].MS.playerSet1 == 2 || MF[MFselectedRow+1].MS.playerSet2 == 2)){
7729 cpuModeBATTLEflag = false;
7736 mpCost = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
7737 costVIG = U->C.A->vigor;
7738 if(mostDmg < U->CL.A->totalD && U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && mpCost <= U->CL.S_C.EN && U->CL.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->CL.A opponent:U2]){
7739 mostDmg = U->CL.A->totalD;
7742 if(mostHit < U->CL.A->hitPercent && mostDmg/2 < U->CL.A->totalD && U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && mpCost <= U->CL.S_C.EN && U->CL.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->CL.A opponent:U2]){
7743 //mostDmg = U->C.A->totalD;
7744 mostHit = U->CL.A->hitPercent;
7747 U->CL.A = U->CL.A->next;
7752 for(int i = 0;i < crCAL1;i++){
7753 U->CL.A = U->CL.A->next;
7756 ATTACK *ua = U->CL.A;
7760 mostNumSub = mostNum;
7764 for(int i = 0;i < mostNum;i++){
7765 U->C.A = U->CL.A->next;
7767 if(U->CL.A->extent == 0){
7771 for(int i = 0;i < mostNum;i++){
7772 U->CL.A = U->CL.A->next;
7778 for(int i = 0;i < crCAL1;i++){
7779 U->CL.A = U->CL.A->next;
7787 mpCost = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
7788 costVIG = U->C.A->vigor;
7791 if(U->CL.A->rangeA <= unitBreak->atkRange && U->CL.A->rangeB >= unitBreak->atkRange && mpCost <= U->CL.S_C.EN && costVIG <= U->C.S_C.vigor){
7793 }else while(U->CL.A){
7794 U->CL.A = U->CL.A->next;
7801 while (!(AUN[1] == U->number)) {
7806 ATTACK *aTop = U->CL.A;
7812 for(int i = 0;i < crCAL1;i++){
7813 U->CL.A = U->CL.A->next;
7820 for (int i = 0;i < crCAL1;i++) {
7821 U->CL.A = U->CL.A->next;
7826 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
7827 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
7828 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
7829 [combatATK1 setStringValue:[NSString stringWithFormat:@"%@", U->CL.A->name]];
7830 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7831 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7832 double oops = U->CL.S_C.HP/U->CL.S_M.HP*100;
7833 [combatLHP1 setIntValue:(int)oops];
7834 oops = U->CL.S_C.EN/U->CL.S_M.EN*100;
7835 [combatLMP1 setIntValue:(int)oops];
7837 hit = U->CL.S_C.MOB + U->C.S_C.HIT*U->C.S_C.HP/U->C.S_M.HP;
7838 hitFix = U->CL.A->hitPercent;
7844 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
7845 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
7846 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
7847 [combatATK1 setStringValue:[NSString stringWithFormat:@"防御耐性"]];
7848 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7849 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7850 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7853 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
7854 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
7855 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
7856 [combatATK1 setStringValue:[NSString stringWithFormat:@"回避耐性"]];
7857 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7858 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7859 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7870 while (!(DUN[1] == U->number)) {
7874 hit = 60 + hit/(U->CL.S_C.MOB*U->C.S_C.DOD/100)*10 - (U->CL.S_C.MOB*U->C.S_C.DOD/100)/hit*10 + hitFix;
7875 if(battleDod2Flag) hit = hit / 2;
7878 if(hit > 100) hit = 100;
7879 if(hit < 0) hit = 0;
7881 if(u2A->D->sort == 1){
7885 if([self sortEcheck:u2A opponent:U])
7887 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 %g", hit]];
7888 if(battleDef1Flag || battleDod1Flag) [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7896 costVIG = U->C.A->vigor;
7898 mpCost = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
7899 if(mostDmg < U->CL.A->totalD && U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && mpCost <= U->CL.S_C.EN && U->CL.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->CL.A opponent:U2]){
7900 mostDmg = U->CL.A->totalD;
7903 if(mostHit < U->CL.A->hitPercent && mostDmg/2 < U->CL.A->totalD && U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && mpCost <= U->CL.S_C.EN && U->CL.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->CL.A opponent:U2]){
7904 //mostDmg = U->C.A->totalD;
7905 mostHit = U->CL.A->hitPercent;
7908 U->CL.A = U->CL.A->next;
7914 mostNumSub = mostNum;
7917 for(int i = 0;i < mostNum;i++){
7918 U->CL.A = U->CL.A->next;
7925 mpCost = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
7926 costVIG = U->C.A->vigor;
7929 if(U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && mpCost <= U->CL.S_C.EN && costVIG <= U->C.S_C.vigor){
7931 }else while(U->CL.A){
7932 U->CL.A = U->CL.A->next;
7942 for (int i = 0;i < crCAL2;i++) {
7943 U->CL.A = U->CL.A->next;
7949 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
7950 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
7951 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
7952 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7953 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7954 double oops2 = U->CL.S_C.HP/U->CL.S_M.HP*100;
7955 [combatLHP2 setIntValue:(int)oops2];
7956 oops2 = U->CL.S_C.EN/U->CL.S_M.EN*100;
7957 [combatLMP2 setIntValue:(int)oops2];
7961 if(U->CL.A && U->CL.A->D){
7965 mpCost2 = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
7968 if(U->CL.A && !(u2A->D->sort == 1) && U->CL.A->D->sort != 1 && mpCost2 <= U->CL.S_C.EN && ![self sortEcheck:U->CL.A opponent:U2]){
7969 [combatATK2 setStringValue:[NSString stringWithFormat:@"%@", U->CL.A->name]];
7970 hit = U->CL.S_C.MOB + U->C.S_C.HIT;
7971 hitFix = U->CL.A->hitPercent;
7973 }else if(u2A->D->sort == 1 || !U->CL.A || U->CL.A->D->sort == 1 || [self sortEcheck:U->CL.A opponent:U2]){
7974 [combatATK2 setStringValue:[NSString stringWithFormat:@"反撃不可能"]];
7978 [combatATK2 setStringValue:[NSString stringWithFormat:@"反撃不可能"]];
7981 [combatATK2 setStringValue:[NSString stringWithFormat:@"反撃不可能"]];
7987 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
7988 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
7989 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
7990 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7991 [combatATK2 setStringValue:[NSString stringWithFormat:@"防御態勢"]];
7992 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7993 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7997 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
7998 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
7999 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
8000 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8001 [combatATK2 setStringValue:[NSString stringWithFormat:@"回避耐性"]];
8002 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8003 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8007 while (!(AUN[1] == U->number)) {
8012 hit = 60 + hit/(U->CL.S_C.MOB*U->C.S_C.DOD/100)*10 - (U->CL.S_C.MOB*U->C.S_C.DOD/100)/hit*10 + hitFix;
8013 if(battleDod1Flag) hit /= 2;
8016 if(hit > 100) hit = 100;
8017 if(hit < 0) hit = 0;
8018 if([self sortEcheck:U2A opponent:U])
8020 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 %g", hit]];
8021 if(battleDef2Flag || battleDod2Flag) [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8024 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8028 while (!(AUN[1] == U->number)) {
8033 [battleAttackBtn1 setEnabled:NO];
8034 [battleAttackBtn1 setTransparent:YES];
8035 [battleGuardBtn1 setEnabled:NO];
8036 [battleGuardBtn1 setTransparent:YES];
8037 [battleDodgeBtn1 setEnabled:NO];
8038 [battleDodgeBtn1 setTransparent:YES];
8040 [battleAttackBtn1 setEnabled:YES];
8041 [battleAttackBtn1 setTransparent:NO];
8042 [battleGuardBtn1 setEnabled:YES];
8043 [battleGuardBtn1 setTransparent:NO];
8044 [battleDodgeBtn1 setEnabled:YES];
8045 [battleDodgeBtn1 setTransparent:NO];
8049 while (!(DUN[1] == U->number)) {
8053 [battleAttackBtn2 setEnabled:NO];
8054 [battleAttackBtn2 setTransparent:YES];
8055 [battleGuardBtn2 setEnabled:NO];
8056 [battleGuardBtn2 setTransparent:YES];
8057 [battleDodgeBtn2 setEnabled:NO];
8058 [battleDodgeBtn2 setTransparent:YES];
8060 [battleAttackBtn2 setEnabled:YES];
8061 [battleAttackBtn2 setTransparent:NO];
8062 [battleGuardBtn2 setEnabled:YES];
8063 [battleGuardBtn2 setTransparent:NO];
8064 [battleDodgeBtn2 setEnabled:YES];
8065 [battleDodgeBtn2 setTransparent:NO];
8070 for (int i = 1; i < DUN[1]; i++) {
8075 if((MF[MFselectedRow+1].MS.playerSet1 == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
8076 unitBreak->team == 1 || (unitBreak->team == 2 && U->team == 1)
8079 [battleStartBtn setEnabled:NO];
8080 [battleStartBtn setTransparent:YES];
8083 [battleStartBtn setEnabled:YES];
8084 [battleStartBtn setTransparent:NO];
8089 avPlayerFlag1 = false;
8090 avPlayerFlag2 = false;
8093 -(void)setBattlePanelT3{
8097 while (!(AUN[1] == U->number)) {
8101 if(cpuModeBATTLEflag && (MF[MFselectedRow+1].MS.playerSet1 == 2 &&MF[MFselectedRow+1].MS.playerSet2 == 2)){
8102 cpuModeBATTLEflag = false;
8107 ATTACK *aTop2 = U->C.A;
8110 mpCost = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
8112 costVIG = U->C.A->vigor;
8114 if(mostDmg < U->C.A->totalD && U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && mpCost <= U->C.S_C.MP && U->C.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
8115 mostDmg = U->C.A->totalD;
8119 if(mostHit < U->C.A->hitPercent && mostDmg/2 < U->C.A->totalD && U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && mpCost <= U->C.S_C.MP && U->C.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
8120 //mostDmg = U->C.A->totalD;
8121 mostHit = U->C.A->hitPercent;
8124 U->C.A = U->C.A->next;
8129 for(int i = 0;i < crCAL1;i++){
8130 U->C.A = U->C.A->next;
8133 ATTACK *ua = U->C.A;
8137 mostNumSub = mostNum;
8140 for(int i = 0;i < mostNum;i++){
8141 U->C.A = U->C.A->next;
8143 if(U->C.A->extent == 0 && mostNum > 0){
8147 for(int i = 0;i < mostNum;i++){
8148 U->C.A = U->C.A->next;
8154 for(int i = 0;i < crCAL1;i++){
8155 U->C.A = U->C.A->next;
8158 mpCost = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
8159 costVIG = U->C.A->vigor;
8162 if(U->C.A->rangeA <= unitBreak->atkRange && U->C.A->rangeB >= unitBreak->atkRange && mpCost <= U->C.S_C.MP && costVIG <= U->C.S_C.vigor){
8171 while (!(AUN[1] == U->number)) {
8177 ATTACK *aTop = U->CL.A;
8183 for(int i = 0;i < crCAL1;i++){
8184 U->CL.A = U->CL.A->next;
8190 for (int i = 0;i < crCAL1;i++) {
8191 U->CL.A = U->CL.A->next;
8196 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
8197 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
8198 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
8199 [combatATK1 setStringValue:[NSString stringWithFormat:@"%@", U->CL.A->name]];
8200 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8201 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8202 double oops = U->CL.S_C.HP/U->CL.S_M.HP*100;
8203 [combatLHP1 setIntValue:(int)oops];
8204 oops = U->CL.S_C.EN/U->CL.S_M.EN*100;
8205 [combatLMP1 setIntValue:(int)oops];
8207 hit = U->CL.S_C.MOB + U->C.S_C.HIT;
8208 hitFix = U->CL.A->hitPercent;
8214 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
8215 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
8216 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
8217 [combatATK1 setStringValue:[NSString stringWithFormat:@"防御耐性"]];
8218 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8219 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8220 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8223 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
8224 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
8225 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
8226 [combatATK1 setStringValue:[NSString stringWithFormat:@"回避耐性"]];
8227 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8228 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8229 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8238 while (!(AUN[1] == U->number)) {
8244 while (!(DUN[1] == U->number)) {
8248 double hit2 = U->C.S_C.EVA*U->C.S_C.DOD/100*U->C.S_C.HP/U->C.S_M.HP;
8250 double hi = U->C.S_C.LUK - U2->C.S_C.LUK;
8253 hit = 60 + hit/hit2*10 - hit2/hit*10 + hitFix - log(hi/10+1)*hit2/hit*10;
8254 if(battleDod2Flag) hit = hit / 2;
8257 if(hit > 100) hit = 100;
8258 if(hit < 0) hit = 0;
8260 if(u2A->D->sort == 1){
8263 if([self sortEcheck:u2A opponent:U])
8265 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 %g", hit]];
8266 if(battleDef1Flag || battleDod1Flag) [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8274 ATTACK *aTop2 = U->C.A;
8278 costVIG = U->C.A->vigor;
8280 mpCost = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
8282 if(mostDmg < U->C.A->totalD && U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && mpCost <= U->C.S_C.MP && U->C.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
8283 mostDmg = U->C.A->totalD;
8287 if(mostHit < U->C.A->hitPercent && mostDmg/2 < U->C.A->totalD && U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && mpCost <= U->C.S_C.MP && U->C.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
8288 //mostDmg = U->C.A->totalD;
8289 mostHit = U->C.A->hitPercent;
8292 U->C.A = U->C.A->next;
8298 mostNumSub = mostNum;
8300 for(int i = 0;i < mostNum;i++){
8301 U->C.A = U->C.A->next;
8303 mpCost = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
8304 costVIG = U->C.A->vigor;
8306 if(U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && mpCost <= U->C.S_C.MP && costVIG <= U->C.S_C.vigor){
8308 }else while(U->C.A){
8309 U->C.A = U->C.A->next;
8317 for (int i = 0;i < crCAL2;i++) {
8318 U->C.A = U->C.A->next;
8324 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
8325 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
8326 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
8327 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8328 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8329 double oops2 = U->C.S_C.HP/U->C.S_M.HP*100;
8330 [combatLHP2 setIntValue:(int)oops2];
8331 oops2 = U->C.S_C.MP/U->C.S_M.MP*100;
8332 [combatLMP2 setIntValue:(int)oops2];
8337 mpCost2 = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
8338 costVIG = U->C.A->vigor;
8341 if(U->C.A &&U->C.A->D){
8342 if(U->C.A && !(u2A->D->sort == 1) && U->C.A->D->sort != 1 && mpCost2 <= U->C.S_C.MP && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
8343 [combatATK2 setStringValue:[NSString stringWithFormat:@"%@", U->C.A->name]];
8344 hit = U->C.S_C.ACU*U->C.S_C.HIT/100*U->C.S_C.HP/U->C.S_M.HP;
8345 hitFix = U->C.A->hitPercent;
8347 }else if(u2A->D->sort == 1 || !U->C.A || U->C.A->D->sort == 1 || [self sortEcheck:U->C.A opponent:U2]){
8348 [combatATK2 setStringValue:[NSString stringWithFormat:@"反撃不可能"]];
8350 [combatATK2 setStringValue:[NSString stringWithFormat:@"反撃不可能"]];
8356 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
8357 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
8358 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
8359 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8360 [combatATK2 setStringValue:[NSString stringWithFormat:@"防御態勢"]];
8361 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8362 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8366 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
8367 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
8368 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
8369 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8370 [combatATK2 setStringValue:[NSString stringWithFormat:@"回避耐性"]];
8371 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8372 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8376 while (!(AUN[1] == U->number)) {
8381 hit = 60 + hit/(U->CL.S_C.MOB*U->C.S_C.DOD/100)*10 - (U->CL.S_C.MOB*U->C.S_C.DOD/100)/hit*10 + hitFix;
8382 if(battleDod1Flag) hit /= 2;
8385 if(hit > 100) hit = 100;
8386 if(hit < 0) hit = 0;
8387 if([self sortEcheck:U2A opponent:U])
8389 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 %g", hit]];
8390 if(battleDef2Flag || battleDod2Flag) [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8393 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8397 while (!(AUN[1] == U->number)) {
8402 [battleAttackBtn1 setEnabled:NO];
8403 [battleAttackBtn1 setTransparent:YES];
8404 [battleGuardBtn1 setEnabled:NO];
8405 [battleGuardBtn1 setTransparent:YES];
8406 [battleDodgeBtn1 setEnabled:NO];
8407 [battleDodgeBtn1 setTransparent:YES];
8409 [battleAttackBtn1 setEnabled:YES];
8410 [battleAttackBtn1 setTransparent:NO];
8411 [battleGuardBtn1 setEnabled:YES];
8412 [battleGuardBtn1 setTransparent:NO];
8413 [battleDodgeBtn1 setEnabled:YES];
8414 [battleDodgeBtn1 setTransparent:NO];
8418 while (!(DUN[1] == U->number)) {
8422 [battleAttackBtn2 setEnabled:NO];
8423 [battleAttackBtn2 setTransparent:YES];
8424 [battleGuardBtn2 setEnabled:NO];
8425 [battleGuardBtn2 setTransparent:YES];
8426 [battleDodgeBtn2 setEnabled:NO];
8427 [battleDodgeBtn2 setTransparent:YES];
8429 [battleAttackBtn2 setEnabled:YES];
8430 [battleAttackBtn2 setTransparent:NO];
8431 [battleGuardBtn2 setEnabled:YES];
8432 [battleGuardBtn2 setTransparent:NO];
8433 [battleDodgeBtn2 setEnabled:YES];
8434 [battleDodgeBtn2 setTransparent:NO];
8440 for (int i = 1; i < DUN[1]; i++) {
8444 if((MF[MFselectedRow+1].MS.playerSet1 == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
8445 unitBreak->team == 1 || (unitBreak->team == 2 && U->team == 1)
8448 [battleStartBtn setEnabled:NO];
8449 [battleStartBtn setTransparent:YES];
8452 [battleStartBtn setEnabled:YES];
8453 [battleStartBtn setTransparent:NO];
8458 avPlayerFlag1 = false;
8459 avPlayerFlag2 = false;
8462 -(void)setBattlePanelT4{
8466 while (!(AUN[1] == U->number)) {
8470 if(cpuModeBATTLEflag && (MF[MFselectedRow+1].MS.playerSet1 == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2)){
8471 cpuModeBATTLEflag = false;
8476 ATTACK *aTop2 = U->CL.A;
8479 mpCost = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
8480 costVIG = U->C.A->vigor;
8481 if(mostDmg < U->CL.A->totalD && U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && mpCost <= U->CL.S_C.EN && U->CL.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self :U->CL.A opponent:U2]){
8482 mostDmg = U->CL.A->totalD;
8485 if(mostHit < U->CL.A->hitPercent && mostDmg/2 < U->CL.A->totalD && U->CL.A->rangeA <= unitBreak->atkRange && U->CL.A->rangeB >= unitBreak->atkRange && mpCost <= U->CL.S_C.EN && U->CL.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->CL.A opponent:U2]){
8486 //mostDmg = U->C.A->totalD;
8487 mostHit = U->CL.A->hitPercent;
8490 U->CL.A = U->CL.A->next;
8495 mostNumSub = mostNum;
8498 for(int i = 0;i < mostNum;i++){
8499 U->CL.A = U->CL.A->next;
8501 if(U->CL.A->extent == 0){
8505 for(int i = 0;i < mostNum;i++){
8506 U->CL.A = U->CL.A->next;
8512 for(int i = 0;i < crCAL1;i++){
8513 U->CL.A = U->CL.A->next;
8516 mpCost = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
8517 costVIG = U->C.A->vigor;
8518 if(U->CL.A->rangeA <= unitBreak->atkRange && U->CL.A->rangeB >= unitBreak->atkRange && mpCost <= U->CL.S_C.EN && costVIG <= U->C.S_C.vigor){
8520 }else while(U->CL.A){
8521 U->CL.A = U->CL.A->next;
8528 while (!(AUN[1] == U->number)) {
8533 ATTACK *aTop = U->C.A;
8539 for(int i = 0;i < crCAL1;i++){
8540 U->C.A = U->C.A->next;
8546 for (int i = 0;i < crCAL1;i++) {
8547 U->C.A = U->C.A->next;
8552 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
8553 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
8554 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
8555 [combatATK1 setStringValue:[NSString stringWithFormat:@"%@", U->C.A->name]];
8556 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8557 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8558 double oops = U->C.S_C.HP/U->C.S_M.HP*100;
8559 [combatLHP1 setIntValue:(int)oops];
8560 oops = U->C.S_C.MP/U->C.S_M.MP*100;
8561 [combatLMP1 setIntValue:(int)oops];
8563 hit = U->C.S_C.ACU*U->C.S_C.HIT/100*U->C.S_C.HP/U->C.S_M.HP;
8564 hitFix = U->C.A->hitPercent;
8570 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
8571 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
8572 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
8573 [combatATK1 setStringValue:[NSString stringWithFormat:@"防御耐性"]];
8574 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8575 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8576 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8579 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
8580 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
8581 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
8582 [combatATK1 setStringValue:[NSString stringWithFormat:@"回避耐性"]];
8583 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8584 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8585 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8596 while (!(DUN[1] == U->number)) {
8600 hit = 60 + hit/(U->CL.S_C.MOB*U->C.S_C.DOD/100)*10 - (U->CL.S_C.MOB*U->C.S_C.DOD/100)/hit*10 + hitFix;
8601 if(battleDod2Flag) hit = hit / 2;
8604 if(hit > 100) hit = 100;
8605 if(hit < 0) hit = 0;
8607 if(u2A->D->sort == 1){
8610 if([self sortEcheck:u2A opponent:U])
8612 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 %g", hit]];
8613 if(battleDef1Flag || battleDod1Flag) [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8621 ATTACK *aTop2 = U->CL.A;
8624 mpCost = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
8625 costVIG = U->C.A->vigor;
8626 if(mostDmg < U->CL.A->totalD && U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && mpCost <= U->CL.S_C.EN && U->CL.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->CL.A opponent:U2]){
8627 mostDmg = U->CL.A->totalD;
8630 if(mostHit < U->CL.A->hitPercent && mostDmg/2 < U->CL.A->totalD && U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && mpCost <= U->CL.S_C.EN && U->CL.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->CL.A opponent:U2]){
8631 //mostDmg = U->C.A->totalD;
8632 mostHit = U->CL.A->hitPercent;
8635 U->CL.A = U->CL.A->next;
8639 mostNumSub = mostNum;
8643 for(int i = 0;i < mostNum;i++){
8644 U->CL.A = U->CL.A->next;
8646 mpCost = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
8647 costVIG = U->C.A->vigor;
8648 if(U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && mpCost <= U->CL.S_C.EN && costVIG <= U->C.S_C.vigor){
8650 }else while(U->CL.A){
8651 U->CL.A = U->CL.A->next;
8659 for (int i = 0;i < crCAL2;i++) {
8660 U->CL.A = U->CL.A->next;
8666 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
8667 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
8668 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
8669 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8670 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8671 double oops2 = U->CL.S_C.HP/U->CL.S_M.HP*100;
8672 [combatLHP2 setIntValue:(int)oops2];
8673 oops2 = U->CL.S_C.EN/U->CL.S_M.EN*100;
8674 [combatLMP2 setIntValue:(int)oops2];
8679 mpCost2 = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
8682 if(U->CL.A && U->CL.A->D){
8683 if(U->CL.A && !(u2A->D->sort == 1) && U->CL.A->D->sort != 1 && mpCost2 <= U->CL.S_C.EN && ![self sortEcheck:U->CL.A opponent:U2]){
8684 [combatATK2 setStringValue:[NSString stringWithFormat:@"%@", U->CL.A->name]];
8685 hit = U->CL.S_C.MOB + U->C.S_C.HIT;
8686 hitFix = U->CL.A->hitPercent;
8688 }else if(u2A->D->sort == 1 || !U->CL.A || U->CL.A->D->sort == 1 || [self sortEcheck:U->CL.A opponent:U2]){
8689 [combatATK2 setStringValue:[NSString stringWithFormat:@"反撃不可能"]];
8691 [combatATK2 setStringValue:[NSString stringWithFormat:@"反撃不可能"]];
8697 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
8698 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
8699 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
8700 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8701 [combatATK2 setStringValue:[NSString stringWithFormat:@"防御態勢"]];
8702 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8703 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8707 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
8708 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
8709 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
8710 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8711 [combatATK2 setStringValue:[NSString stringWithFormat:@"回避耐性"]];
8712 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8713 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8718 while (!(DUN[1] == U->number)) {
8724 while (!(AUN[1] == U->number)) {
8730 double hit2 = U->C.S_C.EVA*U->C.S_C.DOD/100*U->C.S_C.HP/U->C.S_M.HP;
8732 double hi = U->C.S_C.LUK - U2->C.S_C.LUK;
8735 hit = 60 + hit/hit2*10 - hit2/hit*10 + hitFix - log(hi/10+1)*hit2/hit*10;
8736 if(battleDod1Flag) hit /= 2;
8739 if(hit > 100) hit = 100;
8740 if(hit < 0) hit = 0;
8741 if([self sortEcheck:U2A opponent:U])
8743 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 %g", hit]];
8744 if(battleDef2Flag || battleDod2Flag) [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8747 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8751 while (!(AUN[1] == U->number)) {
8756 [battleAttackBtn1 setEnabled:NO];
8757 [battleAttackBtn1 setTransparent:YES];
8758 [battleGuardBtn1 setEnabled:NO];
8759 [battleGuardBtn1 setTransparent:YES];
8760 [battleDodgeBtn1 setEnabled:NO];
8761 [battleDodgeBtn1 setTransparent:YES];
8763 [battleAttackBtn1 setEnabled:YES];
8764 [battleAttackBtn1 setTransparent:NO];
8765 [battleGuardBtn1 setEnabled:YES];
8766 [battleGuardBtn1 setTransparent:NO];
8767 [battleDodgeBtn1 setEnabled:YES];
8768 [battleDodgeBtn1 setTransparent:NO];
8772 while (!(DUN[1] == U->number)) {
8776 [battleAttackBtn2 setEnabled:NO];
8777 [battleAttackBtn2 setTransparent:YES];
8778 [battleGuardBtn2 setEnabled:NO];
8779 [battleGuardBtn2 setTransparent:YES];
8780 [battleDodgeBtn2 setEnabled:NO];
8781 [battleDodgeBtn2 setTransparent:YES];
8783 [battleAttackBtn2 setEnabled:YES];
8784 [battleAttackBtn2 setTransparent:NO];
8785 [battleGuardBtn2 setEnabled:YES];
8786 [battleGuardBtn2 setTransparent:NO];
8787 [battleDodgeBtn2 setEnabled:YES];
8788 [battleDodgeBtn2 setTransparent:NO];
8794 for (int i = 1; i < DUN[1]; i++) {
8798 if((MF[MFselectedRow+1].MS.playerSet1 == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
8799 unitBreak->team == 1 || (unitBreak->team == 2 && U->team == 1)
8802 [battleStartBtn setEnabled:NO];
8803 [battleStartBtn setTransparent:YES];
8806 [battleStartBtn setEnabled:YES];
8807 [battleStartBtn setTransparent:NO];
8812 avPlayerFlag1 = false;
8813 avPlayerFlag2 = false;
8816 -(void)DisplayMessage{
8819 attackExtentFlag = false;
8820 attackingWait = false;
8822 if(!battleSetUp) return;
8823 if(!fuckingLoadBugFix) return;
8825 if(!battleVeryBegunFlag){
8826 [btHITtf1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8827 [btDMGtf1 setStringValue:[NSString stringWithFormat:@"ダメージ値 ----"]];
8828 [btHITtf2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8829 [btDMGtf2 setStringValue:[NSString stringWithFormat:@"ダメージ値 ----"]];
8831 battleVeryBegunFlag = true;
8832 pussyLoopFlag = true;
8834 if(AVpreview.rate > 0){
8835 //[battleWindow setIgnoresMouseEvents:YES];
8836 [battleWindow makeKeyAndOrderFront:nil];
8837 //NSLog(@"%g", AVpreview.rate);
8840 //[battleWindow setIgnoresMouseEvents:NO];
8841 //NSLog(@"%g", AVpreview.rate);
8845 [AVPV setHidden:YES];
8847 else if(avPlayerFlag2){
8848 [AVPV setHidden:YES];
8854 animationFlag1 = false;
8859 animationFlag2 = false;
8861 U->C.A = attackTop2;
8865 if(animationFlag1 || animationFlag2){
8870 double def2 = (double)31/32;
8871 NSString *message = @"";
8889 static bool extentbool = false;
8890 static bool extentbool2 = false;
8893 if(cpuAtkExtendFlag){
8894 extentBattleFlag2 = true;
8897 if(!extentbool && extentBattleFlag2){
8899 extentMPcostFlag = false;
8903 assholeLoadBugFix = true;
8905 switch (messageProcess) {
8907 if(bLoopFlag) break;
8912 while (!(DUN[DUNnum] == U->number)) {
8918 while (!(AUN[1] == U->number)) {
8922 if(U->number == U2->number){
8923 btSelfAction = true;
8925 btSelfAction = false;
8931 [battleDialog setStringValue:@"攻撃開始!"];
8932 if(!baseDistanceCompFlag)
8937 battleIsProcFlag = true;
8942 if(bLoopFlag) break;
8948 btHitExtendFlag1 = true;
8950 if(btHitExtendProc1 >= 3){
8951 btHitExtendProc1 = 0;
8955 BTunitAttackFlag1 = true;
8956 if(battleDef1Flag || battleDod1Flag)
8957 BTunitAttackFlag1 = false;
8960 while (!(DUN[DUNnum] == U->number)) {
8966 while (!(AUN[1] == U->number)) {
8971 if(U->number == U2->number){
8972 btSelfAction = true;
8974 btSelfAction = false;
8977 if(U->chipNumberL >= 0 && U2->chipNumberL >= 0){
8979 [self DisplayMessageMod1A];
8981 }else if(U->chipNumberL >= 0 && U2->chipNumberL < 0){
8983 [self DisplayMessageMod2A];
8985 }else if(U->chipNumberL < 0 && U2->chipNumberL >= 0){
8987 [self DisplayMessageMod3A];
8993 if(bLoopFlag) break;
8996 while (!(AUN[1] == U->number)) {
8999 ATTACK *aTop = U->C.A;
9001 for(int i = 0;i < crCAL1;i++){
9002 U->C.A = U->C.A->next;
9007 if(attackCR->magic){
9008 btAttackType1 = BT_TYPE_MAGIC;
9010 btAttackType1 = BT_TYPE_NORMAL;
9013 if(BTunitAttackFlag1)
9014 if((btAttackType1 == BT_TYPE_NORMAL && btAttackMoveValue1 < 2)
9015 || (btAttackType1 == BT_TYPE_MAGIC && btAttackMoveValue1 < 5)
9016 || (btAttackType1 == BT_TYPE_ABILITY && btAttackMoveValue1 < 2)){
9018 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->C.name, U->C.A->name]];
9020 [battleDialog setStringValue:message];
9027 if(btHitExtendFlag1 && btHitExtendProc1 < 2){
9038 if(!battleDef1Flag && !battleDod1Flag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->C.name, U->C.A->name]];
9041 [bplayer2 setImage:U2->C.imgb];
9042 [bplayer2 setImageScaling:NSScaleToFit];
9043 [nplayer2 setStringValue:U2->C.name];
9044 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U2->C.S_C.HP, U2->C.S_M.HP]];
9045 [lplayer2 setIntValue:U2->C.S_C.HP/U2->C.S_M.HP*100];
9046 [iplayer2 setImage:MC[chipNum[U2->x][U2->y]].img];
9047 [mplayer2 setStringValue:MC[chipNum[U2->x][U2->y]].name];
9048 [rplayer2 setStringValue:[NSString stringWithFormat:@"地形効果 %d%", MC[chipNum[U2->x][U2->y]].dmgfix]];
9050 if(!battleDef1Flag && !battleDod1Flag && !battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && ![U->C.A->AN.movName isEqualToString:@""] && ![U->C.A->AN.movName isEqualToString:@"(null)"] && U->C.A->AN.movName != NULL && DUNnum == 1){
9051 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
9053 NSString *path = @"data/AttackList/ALdata";
9055 path = [path stringByAppendingFormat:@"%dE", U->chipNumber+1];
9057 path = [path stringByAppendingFormat:@"/"];
9059 path = [path stringByAppendingString:U->C.A->AN.movName];
9061 NSData *AVData = [NSData dataWithContentsOfFile:path];
9064 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
9069 NSString *path = @"data/AttackList3/IALdata";
9071 path = [path stringByAppendingFormat:@"%dE", U->C.A->indexE];
9073 path = [path stringByAppendingFormat:@"/"];
9075 path = [path stringByAppendingString:U->C.A->AN.movName];
9078 NSData *AVData = [NSData dataWithContentsOfFile:path];
9081 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
9087 AVPV.player = [AVpreview retain];
9093 [AVPV setHidden:NO];
9095 [battleDialog setStringValue:message];
9097 avPlayerFlag1 = true;
9103 }else if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && !animationFlag1 && U->C.A->AN.ANI && !animationFlag3 && DUNnum == 1){
9105 [battleDialog setStringValue:message];
9106 animationFlag1 = true;
9113 double urSupposedToGet;
9115 if(U->C.A) urSupposedToGet = pow(8, log(3+U->C.A->totalD/16));
9118 if(U2) asItIs = 1/log(3+U2->C.S_C.DEF/64);
9122 if(U->C.A->melee) oopsIsRight = U->C.S_C.MEL;
9123 else oopsIsRight = U->C.S_C.MIS;
9125 oopsIsRight = oopsIsRight/100;
9127 if(!U2->C.aura && U->C.A->D){
9128 if(U->C.A->D->type == 0) dmg = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9129 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9130 if(U->C.A->D->type == 1) dmg = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9131 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9132 if(U->C.A->D->type == 2) dmg = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9133 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9134 if(U->C.A->D->type == 3) dmg = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9135 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9136 if(U->C.A->D->type == 4) dmg = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9137 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9138 if(U->C.A->D->type == 5) dmg = U->C.A->totalD;
9139 }else if(U->C.A->D){
9140 val = 1/log(3+U2->C.S_C.MP/64);
9141 if(U->C.A->D->type == 0) dmg = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9142 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9143 if(U->C.A->D->type == 1) dmg = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9144 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9145 if(U->C.A->D->type == 2) dmg = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9146 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9147 if(U->C.A->D->type == 3) dmg = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9148 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9149 if(U->C.A->D->type == 4) dmg = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9150 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9151 if(U->C.A->D->type == 5) dmg = U->C.A->totalD*val;
9153 double val2 = log(3+U2->C.S_C.MP/64);
9159 if(U->C.A->D->fix == 2){
9160 dmg = dmg/2 + (U->C.S_C.HIT/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
9162 if(U->C.A->D->type == 0) dmg -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9163 if(U->C.A->D->type == 1) dmg -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9164 if(U->C.A->D->type == 2) dmg -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9165 if(U->C.A->D->type == 3) dmg -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9166 if(U->C.A->D->type == 4) dmg -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9169 }else if(U->C.A->D->fix == 1){
9170 dmg = dmg/2 + ((U->C.S_C.ATK/2+U->C.S_C.HIT/2)/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
9172 if(U->C.A->D->type == 0) dmg -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9173 if(U->C.A->D->type == 1) dmg -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9174 if(U->C.A->D->type == 2) dmg -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9175 if(U->C.A->D->type == 3) dmg -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9176 if(U->C.A->D->type == 4) dmg -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9178 }else if(U->C.A->D->fix == 0){
9182 costMP = U->C.A->MP + floor(U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
9184 if(extentMPcostFlag && extentBattleFlag2){
9187 U->C.S_C.MP -= costMP;
9188 extentMPcostFlag = true;
9191 hit = U->C.S_C.ACU*U->C.S_C.HIT/100*U->C.S_C.HP/U->C.S_M.HP;
9192 hitFix = U->C.A->hitPercent;
9198 while (!(AUN[1] == U->number)) {
9204 while (!(DUN[DUNnum] == U->number)) {
9208 double hit2 = U->C.S_C.EVA*U->C.S_C.DOD/100*U->C.S_C.HP/U->C.S_M.HP;
9210 double hi = U->C.S_C.LUK - U2->C.S_C.LUK;
9213 hit = 60 + hit/hit2*10 - hit2/hit*10 + hitFix - log(hi/10+1)*hit2/hit*10;
9214 if(hit > 100) hit = 100;
9215 if(hit < 0) hit = 0;
9216 if(U2A->D->sort == 1){
9219 if([self sortEcheck:U2A opponent:U])
9225 if(battleDod2Flag) wtf = 50;
9226 if(hit - rand()%wtf > 0 && !battleDef1Flag && !battleDod1Flag){
9228 if(U2A->D->sort == 0){
9229 if(U2A->D->type == 0) NSLog(@"計算式:((%g+%g)*%g-%g)*%g*%g", U2->C.S_C.ATK,U2A->totalD,oopsIsRight,U->C.S_C.DEF, val, val2);
9230 if(U2A->D->type == 4) NSLog(@"計算式:((%g+%g)*%g-%g)*%g*%g", U2->C.S_C.CAP,U2A->totalD,oopsIsRight,U->C.S_C.CAP, val, val2);
9231 NSLog(@"修正前のダメージ:%g", dmg);
9232 dmg = [self dmgResist:dmg];
9233 NSLog(@"属性後のダメージ:%g", dmg);
9234 def2 = pow(def2, U->C.S_C.DEF);
9235 int omfg = rand()%100;
9236 NSLog(@"ダメージ幅:%g〜%g", floor(dmg), floor(dmg + dmg/10));
9237 dmg = (dmg*omfg/100/10 + dmg);
9238 NSLog(@"地形効果:%g - %g", dmg, dmg*MC[chipNum[possionX][possionY]].dmgfix/100);
9239 if(buildNum[possionX][possionY] < 0) dmg -= dmg*MC[chipNum[possionX][possionY]].dmgfix/100 - 0.5;
9240 else dmg -= dmg*BC[buildNum[possionX][possionY]].dmgfix/100 - 0.5;
9242 if(U->C.S_C.typeMOVE == RIKU){
9243 if(U2A->riku == A) dmg = dmg*1.2;
9244 if(U2A->riku == B) dmg = dmg*1.0;
9245 if(U2A->riku == C) dmg = dmg*0.6;
9246 if(U2A->riku == D) dmg = dmg*0.2;
9247 if(U2A->riku == E) dmg = 0;
9248 if(U2A->riku == S) dmg = dmg*1.5;
9249 if(U2A->riku == SS) dmg = dmg*2.0;
9250 } if(U->C.S_C.typeMOVE == UMI &&
9251 (MC[chipNum[possionX][possionY]].type == 3 || MC[chipNum[possionX][possionY]].type == 4)){
9252 if(U2A->umi == A) dmg = dmg*1.2;
9253 if(U2A->umi == B) dmg = dmg*1.0;
9254 if(U2A->umi == C) dmg = dmg*0.6;
9255 if(U2A->umi == D) dmg = dmg*0.2;
9256 if(U2A->umi == E) dmg = 0;
9257 if(U2A->umi == S) dmg = dmg*1.5;
9258 if(U2A->umi == SS) dmg = dmg*2.0;
9259 }else if(U->C.S_C.typeMOVE == UMI){
9260 if(U2A->riku == A) dmg = dmg*1.2;
9261 if(U2A->riku == B) dmg = dmg*1.0;
9262 if(U2A->riku == C) dmg = dmg*0.6;
9263 if(U2A->riku == D) dmg = dmg*0.2;
9264 if(U2A->riku == E) dmg = 0;
9265 if(U2A->riku == S) dmg = dmg*1.5;
9266 if(U2A->riku == SS) dmg = dmg*2.0;
9268 } if(U->C.S_C.typeMOVE == CHU){
9269 if(U2A->chu == A) dmg = dmg*1.2;
9270 if(U2A->chu == B) dmg = dmg*1.0;
9271 if(U2A->chu == C) dmg = dmg*0.6;
9272 if(U2A->chu == D) dmg = dmg*0.2;
9273 if(U2A->chu == E) dmg = 0;
9274 if(U2A->chu == S) dmg = dmg*1.5;
9275 if(U2A->chu == SS) dmg = dmg*2.0;
9276 } if(U->C.S_C.typeMOVE == SORA){
9277 if(U2A->sora == A) dmg = dmg*1.2;
9278 if(U2A->sora == B) dmg = dmg*1.0;
9279 if(U2A->sora == C) dmg = dmg*0.6;
9280 if(U2A->sora == D) dmg = dmg*0.2;
9281 if(U2A->sora == E) dmg = 0;
9282 if(U2A->sora == S) dmg = dmg*1.5;
9283 if(U2A->sora == SS) dmg = dmg*2.0;
9286 NSLog(@"ユニットの地形適用後:%g", dmg);
9287 if(battleDef2Flag) NSLog(@"防御後のダメージ:%g", dmg/2);
9288 graze = U->C.S_C.MEN/U2->C.S_C.MEN*U->C.S_C.LUK/3;
9292 if(graze > omfg && !healFlag) {dmg = dmg/5;
9295 if(battleDef2Flag) dmg -= dmg*0.5;
9296 battleDef2Flag = false;
9298 if(dmg < 0) dmg = 0;
9302 [btHITtf1 setStringValue:[NSString stringWithFormat:@"命中率 %g%", floor(hit)]];
9303 [btDMGtf1 setStringValue:[NSString stringWithFormat:@"ダメージ値 %g", dmg]];
9307 }else if(U2A->D->sort == 1){
9308 dmg = dmg + rand()%5*dmg/10 - rand()%5*dmg/10;
9312 if(U->C.S_C.HP > U->C.S_M.HP) U->C.S_C.HP = U->C.S_M.HP;
9317 if(U->C.S_C.HP <= 0) {
9319 U2->C.S_C.vigor += 5;
9330 targType2Lflag = true;
9337 targType2Dflag = true;
9345 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->C.S_C.HP, U->C.S_M.HP]];
9346 [lplayer2 setIntValue:U->C.S_C.HP/U->C.S_M.HP*100];
9348 if(![U2A->msg isEqualToString:@""]){
9350 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@\n",
9351 [self originalMessage:U2A->msg subj:U2->C.name obje:U->C.name]]];
9355 if(grazeFlag) message = [message stringByAppendingString:[NSString stringWithFormat:@"かすりヒット!\n"]];
9357 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は%gのダメージを受けた!", U->C.name, dmg]];
9361 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@はHPが%g回復した!", U->C.name, dmg]];
9364 }else if(battleDef1Flag){
9368 while (!(AUN[1] == U->number)) {
9373 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は身構えている", U->C.name]];
9377 }else if(battleDod1Flag){
9380 while (!(AUN[1] == U->number)) {
9384 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は様子をうかがっている", U->C.name]];
9389 message = [message stringByAppendingString:[NSString stringWithFormat:@"ミス!%@はダメージを受けていない!", U->C.name]];
9393 [battleDialog setStringValue:message];
9395 [btHITtf1 setStringValue:[NSString stringWithFormat:@"命中率 %g%", floor(hit)]];
9401 if(!extentBattleFlag2){
9406 }else if(extentBattleFlag2){
9407 if(btHitExtendProc1 == 2)
9408 btHitExtendProc1 = 3;
9409 if(btHitExtendProc1 >= 2)
9410 btHitExtendFix1 = 1;
9415 if(DUN[DUNnum] <= 0){
9418 extentBattleFlag2 = false;
9420 extentMPcostFlag = false;
9424 avPlayerFlag1 = false;
9425 animationFlag3 = false;
9426 btAtattckMoveEnd = false;
9432 if(bLoopFlag) break;
9433 BTunitAttackFlag1 = false;
9434 BTunitAttackFlag2 = true;
9435 if(battleDef2Flag || battleDod2Flag)
9436 BTunitAttackFlag2 = false;
9441 while (!(DUN[1] == U->number)) {
9446 while (!(AUN[1] == U->number)) {
9451 if(U->number == U2->number){
9452 btSelfAction = true;
9454 btSelfAction = false;
9457 if(U->chipNumberL >= 0 && U2->chipNumberL >= 0){
9459 [self DisplayMessageMod1B];
9461 }else if(U->chipNumberL >= 0 && U2->chipNumberL < 0){
9463 [self DisplayMessageMod2B];
9465 }else if(U->chipNumberL < 0 && U2->chipNumberL >= 0){
9467 [self DisplayMessageMod3B];
9472 if(bLoopFlag) break;
9475 while (!(AUN[1] == U->number)) {
9482 while (!(DUN[1] == U->number)) {
9486 ATTACK *aTop2 = U->C.A;
9494 if(!U->C.A) goto SKIP3;
9498 if(U->C.A) urSupposedToGet = pow(8, log(3+U->C.A->totalD/16));
9500 if(U2) asItIs = 1/log(3+U2->C.S_C.DEF/64);
9503 if(U->C.A->melee) oopsIsRight = U->C.S_C.MEL;
9504 else oopsIsRight = U->C.S_C.MIS;
9506 oopsIsRight = oopsIsRight/100;
9509 mpCost = floor(U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
9512 mpCost = floor(U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
9513 if(!U2->C.aura && U->C.A->D){
9514 if(U->C.A->D->type == 0) mostDmg2 = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9515 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9516 if(U->C.A->D->type == 1) mostDmg2 = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9517 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9518 if(U->C.A->D->type == 2) mostDmg2 = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9519 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9520 if(U->C.A->D->type == 3) mostDmg2 = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9521 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9522 if(U->C.A->D->type == 4) mostDmg2 = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9523 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9524 if(U->C.A->D->type == 5) mostDmg2 = U->C.A->totalD;
9525 }else if(U->C.A->D){
9526 val = 1/log(3+U2->C.S_C.MP/64);
9527 if(U->C.A->D->type == 0) mostDmg2 = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9528 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9529 if(U->C.A->D->type == 1) mostDmg2 = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9530 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9531 if(U->C.A->D->type == 2) mostDmg2 = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9532 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9533 if(U->C.A->D->type == 3) mostDmg2 = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9534 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor)*asItIs*val;
9535 if(U->C.A->D->type == 4) mostDmg2 = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9536 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9537 if(U->C.A->D->type == 5) mostDmg2 = U->C.A->totalD*val;
9539 double val2 = log(3+U2->C.S_C.MP/64);
9541 mostDmg2 = mostDmg2*val2;
9544 if(U->C.A->D->fix == 2){
9545 mostDmg2 = mostDmg2/2 + (U->C.S_C.HIT/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
9547 if(U->C.A->D->type == 0) mostDmg2 -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9548 if(U->C.A->D->type == 1) mostDmg2 -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9549 if(U->C.A->D->type == 2) mostDmg2 -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9550 if(U->C.A->D->type == 3) mostDmg2 -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9551 if(U->C.A->D->type == 4) mostDmg2 -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9554 }else if(U->C.A->D->fix == 1){
9555 mostDmg2 = mostDmg2/2 + ((U->C.S_C.ATK/2+U->C.S_C.HIT/2)/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
9557 if(U->C.A->D->type == 0) mostDmg2 -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9558 if(U->C.A->D->type == 1) mostDmg2 -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9559 if(U->C.A->D->type == 2) mostDmg2 -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9560 if(U->C.A->D->type == 3) mostDmg2 -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9561 if(U->C.A->D->type == 4) mostDmg2 -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9563 }else if(U->C.A->D->fix == 0){
9571 mostDmg2 = [self dmgResist:mostDmg2];
9574 costVIG = U->C.A->vigor;
9576 if(mostDmg < mostDmg2 && U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && U->C.A->D->sort != 1 && mpCost <= U->C.S_C.MP && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
9582 //mostDmg = U->C.A->totalD;
9585 U->C.A = U->C.A->next;
9591 if(!battleSet2PushedFlag){
9592 for(int i = 0;i < mostNumSub;i++){
9593 U->C.A = U->C.A->next;
9597 for(int i = 0;i < crCAL2;i++){
9598 U->C.A = U->C.A->next;
9604 if(U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && U->C.A->D->sort != 1 && ![self sortEcheck:U->C.A opponent:U2]){
9606 }else while(U->C.A){
9607 U->C.A = U->C.A->next;
9613 BTunitAttackFlag2 = false;
9614 message = [message stringByAppendingString:[NSString stringWithFormat:@"射程外\n"]];
9620 if(attackCR2->magic){
9621 btAttackType2 = BT_TYPE_MAGIC;
9623 btAttackType2 = BT_TYPE_NORMAL;
9626 if(BTunitAttackFlag2)
9627 if((btAttackType2 == BT_TYPE_NORMAL && btAttackMoveValue2 < 2)
9628 || (btAttackType2 == BT_TYPE_MAGIC && btAttackMoveValue2 < 5)
9629 || (btAttackType2 == BT_TYPE_ABILITY && btAttackMoveValue2 < 2)){
9632 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->C.name, U->C.A->name]];
9634 [battleDialog setStringValue:message];
9641 if(!battleDef2Flag && !battleDod2Flag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->C.name, U->C.A->name]];
9643 if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag2 && ![U->C.A->AN.movName isEqualToString:@""] && ![U->C.A->AN.movName isEqualToString:@"(null)"] && U->C.A->AN.movName != NULL){
9644 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
9646 NSString *path = @"data/AttackList/ALdata";
9648 path = [path stringByAppendingFormat:@"%dE", U->chipNumber+1];
9650 path = [path stringByAppendingFormat:@"/"];
9652 path = [path stringByAppendingString:U->C.A->AN.movName];
9655 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
9658 AVPV.player = [AVpreview retain];
9663 [AVPV setControlsStyle:0];
9664 [AVPV setHidden:NO];
9666 [battleDialog setStringValue:message];
9668 avPlayerFlag2 = true;
9673 }else if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && !animationFlag2 && U->C.A->AN.ANI && !animationFlag3){
9676 animationFlag2 = true;
9686 if(U->C.A->D->type == 0) dmg = U->C.S_C.ATK + U->C.A->totalD;
9687 if(U->C.A->D->type == 1) dmg = U->C.S_C.DEF + U->C.A->totalD;
9688 if(U->C.A->D->type == 2) dmg = U->C.S_C.ACU + U->C.A->totalD;
9689 if(U->C.A->D->type == 3) dmg = U->C.S_C.EVA + U->C.A->totalD;
9690 if(U->C.A->D->type == 4) dmg = U->C.S_C.CAP + U->C.A->totalD;
9691 if(U->C.A->D->type == 5) dmg = U->C.A->totalD;
9696 while (!(AUN[1] == U->number)) {
9701 while (!(DUN[1] == U->number)) {
9704 NSString *string = [U2A->name retain];
9705 while (![U->C.A->name isEqualToString:string] && U->C.A) {
9706 U->C.A = U->C.A->next;
9709 if(!U->C.A) U->C.A = aTop2;
9711 if(U->C.A) urSupposedToGet = pow(8, log(3+U->C.A->totalD/16));
9713 if(U2) asItIs = 1/log(3+U2->C.S_C.DEF/64);
9716 if(U->C.A->melee) oopsIsRight = U->C.S_C.MEL;
9717 else oopsIsRight = U->C.S_C.MIS;
9719 oopsIsRight = oopsIsRight/100;
9722 if(!U2->C.aura && U->C.A->D){
9723 if(U->C.A->D->type == 0) dmg = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9724 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9725 if(U->C.A->D->type == 1) dmg = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9726 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9727 if(U->C.A->D->type == 2) dmg = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9728 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9729 if(U->C.A->D->type == 3) dmg = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9730 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9731 if(U->C.A->D->type == 4) dmg = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9732 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9733 if(U->C.A->D->type == 5) dmg = U->C.A->totalD;
9734 }else if(U->C.A->D){
9735 double val = val = 1/log(3+U2->C.S_C.MP/64);
9736 if(U->C.A->D->type == 0) dmg = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9737 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9738 if(U->C.A->D->type == 1) dmg = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9739 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9740 if(U->C.A->D->type == 2) dmg = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9741 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9742 if(U->C.A->D->type == 3) dmg = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9743 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9744 if(U->C.A->D->type == 4) dmg = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9745 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9746 if(U->C.A->D->type == 5) dmg = U->C.A->totalD*val;
9748 val2 = log(3+U2->C.S_C.MP/64);
9753 if(U->C.A->D->fix == 2){
9754 dmg = dmg/2 + (U->C.S_C.HIT/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
9756 if(U->C.A->D->type == 0) dmg -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9757 if(U->C.A->D->type == 1) dmg -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9758 if(U->C.A->D->type == 2) dmg -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9759 if(U->C.A->D->type == 3) dmg -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9760 if(U->C.A->D->type == 4) dmg -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9763 }else if(U->C.A->D->fix == 1){
9764 dmg = dmg/2 + ((U->C.S_C.ATK/2+U->C.S_C.HIT/2)/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
9766 if(U->C.A->D->type == 0) dmg -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9767 if(U->C.A->D->type == 1) dmg -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9768 if(U->C.A->D->type == 2) dmg -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9769 if(U->C.A->D->type == 3) dmg -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9770 if(U->C.A->D->type == 4) dmg -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9772 }else if(U->C.A->D->fix == 0){
9776 costMP = U->C.A->MP + floor(U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
9777 U->C.S_C.MP -= costMP;
9779 hit = U->C.S_C.ACU*U->C.S_C.HIT/100*U->C.S_C.HP/U->C.S_M.HP;
9780 hitFix = U->C.A->hitPercent;
9787 while (!(DUN[1] == U->number)) {
9793 while (!(AUN[1] == U->number)) {
9797 hit2 = U->C.S_C.EVA*U->C.S_C.DOD/100*U->C.S_C.HP/U->C.S_M.HP;
9799 hi = U->C.S_C.LUK - U2->C.S_C.LUK;
9802 hit = 60 + hit/hit2*10 - hit2/hit*10 + hitFix - log(hi/10+1)*hit2/hit*10;
9803 if(hit > 100) hit = 100;
9804 if(hit < 0) hit = 0;
9805 if([self sortEcheck:U2A opponent:U])
9808 battleDod1Flag = false;
9811 while (!(DUN[1] == U->number)) {
9817 while (!(AUN[1] == U->number)) {
9822 if(battleDod1Flag) omg = 50;
9824 if(hit - rand()%omg > 0 && !battleDef2Flag && !battleDod2Flag){
9825 if(U2A->D->type == 0) NSLog(@"計算式:((%g+%g)*%g-%g)*%g*%g", U2->C.S_C.ATK,U2A->totalD,oopsIsRight,U->C.S_C.DEF, val, val2);
9826 if(U2A->D->type == 4) NSLog(@"計算式:((%g+%g)*%g-%g)*%g%g", U2->C.S_C.CAP,U2A->totalD,oopsIsRight,U->C.S_C.CAP, val, val2);
9827 NSLog(@"修正前のダメージ:%g", dmg);
9828 dmg = [self dmgResist:dmg];
9829 NSLog(@"属性後のダメージ:%g", dmg);
9830 def2 = pow(def2, U->C.S_C.DEF);
9831 int omfg = rand()%100;
9832 NSLog(@"ダメージ幅:%g〜%g", floor(dmg), floor(dmg + dmg/10));
9833 dmg = (dmg*omfg/100/10 + dmg);
9834 NSLog(@"地形効果:%g - %g", dmg, dmg*MC[chipNum[possionX][possionY]].dmgfix/100);
9835 if(buildNum[possionX][possionY] < 0) dmg -= dmg*MC[chipNum[possionX][possionY]].dmgfix/100 - 0.5;
9836 else dmg -= dmg*BC[buildNum[possionX][possionY]].dmgfix/100 - 0.5;
9838 if(U->C.S_C.typeMOVE == RIKU){
9839 if(U2A->riku == A) dmg = dmg*1.2;
9840 if(U2A->riku == B) dmg = dmg*1.0;
9841 if(U2A->riku == C) dmg = dmg*0.6;
9842 if(U2A->riku == D) dmg = dmg*0.2;
9843 if(U2A->riku == E) dmg = 0;
9844 if(U2A->riku == S) dmg = dmg*1.5;
9845 if(U2A->riku == SS) dmg = dmg*2.0;
9846 } if(U->C.S_C.typeMOVE == UMI &&
9847 (MC[chipNum[possionX][possionY]].type == 3 || MC[chipNum[possionX][possionY]].type == 4)){
9848 if(U2A->umi == A) dmg = dmg*1.2;
9849 if(U2A->umi == B) dmg = dmg*1.0;
9850 if(U2A->umi == C) dmg = dmg*0.6;
9851 if(U2A->umi == D) dmg = dmg*0.2;
9852 if(U2A->umi == E) dmg = 0;
9853 if(U2A->umi == S) dmg = dmg*1.5;
9854 if(U2A->umi == SS) dmg = dmg*2.0;
9855 }else if(U->C.S_C.typeMOVE == UMI){
9856 if(U2A->riku == A) dmg = dmg*1.2;
9857 if(U2A->riku == B) dmg = dmg*1.0;
9858 if(U2A->riku == C) dmg = dmg*0.6;
9859 if(U2A->riku == D) dmg = dmg*0.2;
9860 if(U2A->riku == E) dmg = 0;
9861 if(U2A->riku == S) dmg = dmg*1.5;
9862 if(U2A->riku == SS) dmg = dmg*2.0;
9864 } if(U->C.S_C.typeMOVE == CHU){
9865 if(U2A->chu == A) dmg = dmg*1.2;
9866 if(U2A->chu == B) dmg = dmg*1.0;
9867 if(U2A->chu == C) dmg = dmg*0.6;
9868 if(U2A->chu == D) dmg = dmg*0.2;
9869 if(U2A->chu == E) dmg = 0;
9870 if(U2A->chu == S) dmg = dmg*1.5;
9871 if(U2A->chu == SS) dmg = dmg*2.0;
9872 } if(U->C.S_C.typeMOVE == SORA){
9873 if(U2A->sora == A) dmg = dmg*1.2;
9874 if(U2A->sora == B) dmg = dmg*1.0;
9875 if(U2A->sora == C) dmg = dmg*0.6;
9876 if(U2A->sora == D) dmg = dmg*0.2;
9877 if(U2A->sora == E) dmg = 0;
9878 if(U2A->sora == S) dmg = dmg*1.5;
9879 if(U2A->sora == SS) dmg = dmg*2.0;
9882 NSLog(@"ユニットの地形適用後:%g", dmg);
9885 graze = U->C.S_C.MEN/U2->C.S_C.MEN*U->C.S_C.LUK/3;
9889 if(graze > omfg && !healFlag) {dmg = dmg/5;
9893 if(battleDef1Flag) dmg -= dmg*0.5;
9894 battleDef1Flag = false;
9896 if(dmg < 0) dmg = 0;
9900 [btHITtf2 setStringValue:[NSString stringWithFormat:@"命中率 %g%", floor(hit)]];
9901 [btDMGtf2 setStringValue:[NSString stringWithFormat:@"ダメージ値 %g", dmg]];
9904 if(U->C.S_C.HP <= 0) {
9906 U2->C.S_C.vigor += 5;
9917 targType2Lflag = true;
9924 targType2Dflag = true;
9934 [tplayer1 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->C.S_C.HP, U->C.S_M.HP]];
9936 [lplayer1 setIntValue:U->C.S_C.HP/U->C.S_M.HP*100];
9938 if(![U2A->msg isEqualToString:@""]){
9939 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@\n",
9940 [self originalMessage:U2A->msg subj:U2->C.name obje:U->C.name]]];
9946 message = [message stringByAppendingString:[NSString stringWithFormat:@"かすりヒット!\n"]];
9948 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は%gのダメージを受けた!", U->C.name, dmg]];
9951 }else if(battleDef2Flag){
9955 while (!(DUN[1] == U->number)) {
9960 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は身構えている", U->C.name]];
9963 }else if(battleDod2Flag){
9966 while (!(DUN[1] == U->number)) {
9970 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は様子をうかがっている", U->C.name]];
9975 message = [message stringByAppendingString:[NSString stringWithFormat:@"ミス!%@はダメージを受けていない!", U->C.name]];
9979 [battleDialog setStringValue:message];
9982 [btHITtf2 setStringValue:[NSString stringWithFormat:@"命中率 %g%", floor(hit)]];
9986 avPlayerFlag2 = false;
9987 animationFlag3 = false;
9988 btAtattckMoveEnd = false;
9993 if(bLoopFlag) break;
9994 if(cpuAImodeflag && !cpuTurnEndFlag) {
9999 fuckingLoadBugFix = false;
10001 battleSetUp = false;
10002 battleSetFlag = false;
10003 battleFlag = false;
10005 battleSet2PushedFlag = false;
10006 cpuModeBATTLEendFlag = true;
10009 [battleWindow close];
10010 pussyLoopFlag = false;
10011 cpuAtkExtendFlag3 = false;
10012 cpuOMFGmoveATKfixFlag = false;
10013 unitNoMoveFlag = false;
10016 CPUmostDmgChoice = false;
10018 cpuIsAttackingFlag = false;
10019 for(int g = 0;g < chipWidth;g++){
10020 for(int k = 0;k < chipHeight;k++){
10021 g_attackRangeExtent[g][k] = 0;
10027 BTunitAttackFlag1 = false;
10028 BTunitAttackFlag2 = false;
10029 BTunitAttackFlag1 = false;
10030 btAttackMoveValue1 = 0;
10031 btAttackMoveValue2 = 0;
10032 btHitFlag1 = false;
10033 btHitFlag2 = false;
10036 btHitExtendFlag1 = false;
10037 btHitExtendProc1 = 0;
10038 btHitExtendMove1 = 0;
10039 btHitExtendFlag2 = false;
10040 btHitExtendProc2 = 0;
10041 btHitExtendMove2 = 0;
10042 baseDistanceCompFlag = false;
10043 battleVeryBegunFlag = false;
10044 CPUAttackSubmitFlag = false;
10045 battleSetUp = false;
10046 displayBattleCheckPanelFlag = 0;
10047 battleEndFlag = true;
10048 assholeLoadBugFix = false;
10050 battleIsProcFlag = false;
10058 UCselected = UC[-1];
10063 -(void)DisplayMessageMod1A{//両方モビール
10065 double def2 = (double)31/32;
10066 NSString *message = @"";
10087 if(bLoopFlag) return;
10089 while (!(AUN[1] == U->number)) {
10093 ATTACK *aTop = U->CL.A;
10094 for(int i = 0;i < crCAL1;i++){
10095 U->CL.A = U->CL.A->next;
10099 if(!battleDef1Flag && !battleDod1Flag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->CL.name, U->CL.A->name]];
10101 if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && ![U->CL.A->AN.movName isEqualToString:@""] && ![U->CL.A->AN.movName isEqualToString:@"(null)"] && U->CL.A->AN.movName != NULL){
10102 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
10104 NSString *path = @"data/AttackList/ALdata";
10106 path = [path stringByAppendingFormat:@"%dE", U->chipNumber+1];
10108 path = [path stringByAppendingFormat:@"/"];
10110 path = [path stringByAppendingString:U->CL.A->AN.movName];
10112 NSData *AVData = [NSData dataWithContentsOfFile:path];
10115 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
10120 NSString *path = @"data/AttackList3/IALdata";
10122 path = [path stringByAppendingFormat:@"%dE", U->CL.A->indexE];
10124 path = [path stringByAppendingFormat:@"/"];
10126 path = [path stringByAppendingString:U->CL.A->AN.movName];
10129 NSData *AVData = [NSData dataWithContentsOfFile:path];
10132 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
10138 AVPV.player = [AVpreview retain];
10144 [AVPV setHidden:NO];
10146 [battleDialog setStringValue:message];
10148 avPlayerFlag1 = true;
10154 }else if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && !animationFlag1 && U->CL.A->AN.ANI && !animationFlag3){
10156 [battleDialog setStringValue:message];
10157 animationFlag1 = true;
10164 dmg = U->CL.A->totalD;
10166 costMP = U->CL.A->EN + floor(U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
10167 U->CL.S_C.EN -= costMP;
10169 hit = U->CL.S_C.MOB+U->C.S_C.HIT;
10170 hitFix = U->CL.A->hitPercent;
10176 while (!(DUN[1] == U->number)) {
10179 hit = 60 + hit/(U->CL.S_C.MOB*U->C.S_C.DOD/100)*10 - (U->CL.S_C.MOB*U->C.S_C.DOD/100)/hit*10 + hitFix;
10180 if(hit > 100) hit = 100;
10181 if(U2A->D->sort == 1){
10184 if([self sortEcheck:U2A opponent:U])
10190 if(battleDod2Flag) wtf = 50;
10191 if(hit - rand()%wtf > 0 && !battleDef1Flag && !battleDod1Flag){
10193 if(U2A->D->sort == 0){
10194 NSLog(@"修正前のダメージ:%g", dmg);
10195 dmg = [self dmgResist:dmg];
10196 NSLog(@"属性後のダメージ:%g", dmg);
10197 def2 = pow(def2, U->CL.S_C.ARM);
10198 int omfg = rand()%100;
10199 NSLog(@"計算式:(%g + %g - %g)", dmg*omfg/100, dmg, U->CL.S_C.ARM);
10201 NSLog(@"ダメージ幅:%g〜%g", (0 + dmg - U->CL.S_C.ARM), (dmg + dmg - U->CL.S_C.ARM));
10202 dmg = (dmg*omfg/100 + dmg - U->CL.S_C.ARM);
10203 NSLog(@"地形効果:%g - %g", dmg, dmg*MC[chipNum[possionX][possionY]].dmgfix/100);
10204 if(buildNum[possionX][possionY] < 0) dmg -= dmg*MC[chipNum[possionX][possionY]].dmgfix/100 - 0.5;
10205 else dmg -= dmg*BC[buildNum[possionX][possionY]].dmgfix/100 - 0.5;
10207 if(U->CL.S_C.typeMOVE == RIKU){
10208 if(U2A->riku == A) dmg = dmg*1.2;
10209 if(U2A->riku == B) dmg = dmg*1.0;
10210 if(U2A->riku == C) dmg = dmg*0.6;
10211 if(U2A->riku == D) dmg = dmg*0.2;
10212 if(U2A->riku == E) dmg = 0;
10213 if(U2A->riku == S) dmg = dmg*1.5;
10214 if(U2A->riku == SS) dmg = dmg*2.0;
10215 } if(U->CL.S_C.typeMOVE == UMI &&
10216 (MC[chipNum[possionX][possionY]].type == 3 || MC[chipNum[possionX][possionY]].type == 4)){
10217 if(U2A->umi == A) dmg = dmg*1.2;
10218 if(U2A->umi == B) dmg = dmg*1.0;
10219 if(U2A->umi == C) dmg = dmg*0.6;
10220 if(U2A->umi == D) dmg = dmg*0.2;
10221 if(U2A->umi == E) dmg = 0;
10222 if(U2A->umi == S) dmg = dmg*1.5;
10223 if(U2A->umi == SS) dmg = dmg*2.0;
10224 }else if(U->CL.S_C.typeMOVE == UMI){
10225 if(U2A->riku == A) dmg = dmg*1.2;
10226 if(U2A->riku == B) dmg = dmg*1.0;
10227 if(U2A->riku == C) dmg = dmg*0.6;
10228 if(U2A->riku == D) dmg = dmg*0.2;
10229 if(U2A->riku == E) dmg = 0;
10230 if(U2A->riku == S) dmg = dmg*1.5;
10231 if(U2A->riku == SS) dmg = dmg*2.0;
10233 } if(U->CL.S_C.typeMOVE == CHU){
10234 if(U2A->chu == A) dmg = dmg*1.2;
10235 if(U2A->chu == B) dmg = dmg*1.0;
10236 if(U2A->chu == C) dmg = dmg*0.6;
10237 if(U2A->chu == D) dmg = dmg*0.2;
10238 if(U2A->chu == E) dmg = 0;
10239 if(U2A->chu == S) dmg = dmg*1.5;
10240 if(U2A->chu == SS) dmg = dmg*2.0;
10241 } if(U->CL.S_C.typeMOVE == SORA){
10242 if(U2A->sora == A) dmg = dmg*1.2;
10243 if(U2A->sora == B) dmg = dmg*1.0;
10244 if(U2A->sora == C) dmg = dmg*0.6;
10245 if(U2A->sora == D) dmg = dmg*0.2;
10246 if(U2A->sora == E) dmg = 0;
10247 if(U2A->sora == S) dmg = dmg*1.5;
10248 if(U2A->sora == SS) dmg = dmg*2.0;
10251 NSLog(@"ユニットの地形適用後:%g", dmg);
10252 if(battleDef2Flag) NSLog(@"防御後のダメージ:%g", dmg/2);
10253 graze = U->C.S_C.MEN/U2->C.S_C.MEN*U->C.S_C.LUK/3;
10257 if(graze > omfg && !healFlag) {dmg = dmg/5;
10260 if(battleDef2Flag) dmg -= dmg*0.5;
10261 battleDef2Flag = false;
10263 if(dmg < 0) dmg = 0;
10264 U->CL.S_C.HP -= dmg;
10267 }else if(U2A->D->sort == 1){
10268 dmg = dmg + rand()%5*dmg/10 - rand()%5*dmg/10;
10271 U->CL.S_C.HP += dmg;
10273 if(U->CL.S_C.HP > U->CL.S_M.HP) U->CL.S_C.HP = U->CL.S_M.HP;
10278 if(U->CL.S_C.HP <= 0) {
10280 U2->C.S_C.vigor += 5;
10282 messageProcess = 2;
10289 if(U->targType2L) {
10291 targType2Lflag = true;
10296 if(U->targType2D) {
10298 targType2Dflag = true;
10306 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
10307 [lplayer2 setIntValue:U->CL.S_C.HP/U->CL.S_M.HP*100];
10309 if(![U2A->msg isEqualToString:@""]){
10311 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@\n",
10312 [self originalMessage:U2A->msg subj:U2->CL.name obje:U->CL.name]]];
10316 if(grazeFlag) message = [message stringByAppendingString:[NSString stringWithFormat:@"かすりヒット!\n"]];
10317 if(!healFlag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は%gのダメージを受けた!", U->CL.name, dmg]];
10318 else message = [message stringByAppendingString:[NSString stringWithFormat:@"%@はHPが%g回復した!", U->CL.name, dmg]];
10319 }else if(battleDef1Flag){
10323 while (!(AUN[1] == U->number)) {
10328 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は身構えている", U->CL.name]];
10331 }else if(battleDod1Flag){
10334 while (!(AUN[1] == U->number)) {
10338 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は様子をうかがっている", U->CL.name]];
10343 message = [message stringByAppendingString:[NSString stringWithFormat:@"ミス!%@はダメージを受けていない!", U->CL.name]];
10346 [battleDialog setStringValue:message];
10362 -(void)DisplayMessageMod1B{
10364 double def2 = (double)31/32;
10365 NSString *message = @"";
10385 if(bLoopFlag) return;
10388 while (!(AUN[1] == U->number)) {
10395 while (!(DUN[1] == U->number)) {
10399 ATTACK *aTop2 = U->CL.A;
10405 mpCost = floor(U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
10406 costVIG = U->C.A->vigor;
10409 mpCost = floor(U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
10410 if(mostDmg < U->CL.A->totalD && U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && U->CL.A->D->sort != 1 && mpCost <= U->CL.S_C.EN && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->CL.A opponent:U2]){
10411 mostDmg = U->CL.A->totalD;
10414 U->CL.A = U->CL.A->next;
10420 if(!battleSet2PushedFlag){
10421 for(int i = 0;i < mostNumSub;i++){
10422 U->CL.A = U->CL.A->next;
10426 for(int i = 0;i < crCAL2;i++){
10427 U->CL.A = U->CL.A->next;
10431 if(!U->CL.A->name){
10436 if(U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && U->CL.A->D->sort != 1 && ![self sortEcheck:U->CL.A opponent:U2]){
10437 }else while(U->CL.A){
10438 U->CL.A = U->CL.A->next;
10445 message = [message stringByAppendingString:[NSString stringWithFormat:@"射程外\n"]];
10449 if(!battleDef2Flag && !battleDod2Flag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->CL.name, U->CL.A->name]];
10452 if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag2 && ![U->CL.A->AN.movName isEqualToString:@""] && ![U->CL.A->AN.movName isEqualToString:@"(null)"] && U->CL.A->AN.movName != NULL){
10453 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
10455 NSString *path = @"data/AttackList/ALdata";
10457 path = [path stringByAppendingFormat:@"%dE", U->chipNumber+1];
10459 path = [path stringByAppendingFormat:@"/"];
10461 path = [path stringByAppendingString:U->CL.A->AN.movName];
10464 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
10467 AVPV.player = [AVpreview retain];
10472 [AVPV setControlsStyle:0];
10473 [AVPV setHidden:NO];
10475 [battleDialog setStringValue:message];
10477 avPlayerFlag2 = true;
10482 }else if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && !animationFlag2 && U->CL.A->AN.ANI && !animationFlag3){
10485 animationFlag2 = true;
10493 dmg = U->CL.A->totalD;
10495 costMP = U->CL.A->EN + floor(U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
10496 U->CL.S_C.EN -= costMP;
10498 hit = U->CL.S_C.MOB + U->C.S_C.HIT;
10499 hitFix = U->CL.A->hitPercent;
10506 while (!(AUN[1] == U->number)) {
10511 hit = 60 + hit/(U->CL.S_C.MOB*U->C.S_C.DOD/100)*10 - (U->CL.S_C.MOB*U->C.S_C.DOD/100)/hit*10 + hitFix;
10512 if(hit > 100) hit = 100;
10514 if([self sortEcheck:U2A opponent:U])
10517 battleDod1Flag = false;
10520 if(battleDod1Flag) omg = 50;
10522 if(hit - rand()%omg > 0 && !battleDef2Flag && !battleDod2Flag){
10523 NSLog(@"修正前のダメージ:%g", dmg);
10524 dmg = [self dmgResist:dmg];
10525 NSLog(@"属性後のダメージ:%g", dmg);
10526 def2 = pow(def2, U->CL.S_C.ARM);
10527 int omfg = rand()%100;
10528 NSLog(@"計算式:(%g + %g - %g)", dmg*omfg/100, dmg, U->CL.S_C.ARM);
10529 NSLog(@"ダメージ幅:%g〜%g", (0 + dmg - U->CL.S_C.ARM), (dmg + dmg - U->CL.S_C.ARM));
10530 dmg = (dmg*omfg/100 + dmg - U->CL.S_C.ARM);
10533 NSLog(@"地形効果:%g - %g", dmg, dmg*MC[chipNum[possionX][possionY]].dmgfix/100);
10534 if(buildNum[possionX][possionY] < 0) dmg -= dmg*MC[chipNum[possionX][possionY]].dmgfix/100 - 0.5;
10535 else dmg -= dmg*BC[buildNum[possionX][possionY]].dmgfix/100 - 0.5;
10537 if(U->CL.S_C.typeMOVE == RIKU){
10538 if(U2A->riku == A) dmg = dmg*1.2;
10539 if(U2A->riku == B) dmg = dmg*1.0;
10540 if(U2A->riku == C) dmg = dmg*0.6;
10541 if(U2A->riku == D) dmg = dmg*0.2;
10542 if(U2A->riku == E) dmg = 0;
10543 if(U2A->riku == S) dmg = dmg*1.5;
10544 if(U2A->riku == SS) dmg = dmg*2.0;
10545 } if(U->CL.S_C.typeMOVE == UMI &&
10546 (MC[chipNum[possionX][possionY]].type == 3 || MC[chipNum[possionX][possionY]].type == 4)){
10547 if(U2A->umi == A) dmg = dmg*1.2;
10548 if(U2A->umi == B) dmg = dmg*1.0;
10549 if(U2A->umi == C) dmg = dmg*0.6;
10550 if(U2A->umi == D) dmg = dmg*0.2;
10551 if(U2A->umi == E) dmg = 0;
10552 if(U2A->umi == S) dmg = dmg*1.5;
10553 if(U2A->umi == SS) dmg = dmg*2.0;
10554 }else if(U->CL.S_C.typeMOVE == UMI){
10555 if(U2A->riku == A) dmg = dmg*1.2;
10556 if(U2A->riku == B) dmg = dmg*1.0;
10557 if(U2A->riku == C) dmg = dmg*0.6;
10558 if(U2A->riku == D) dmg = dmg*0.2;
10559 if(U2A->riku == E) dmg = 0;
10560 if(U2A->riku == S) dmg = dmg*1.5;
10561 if(U2A->riku == SS) dmg = dmg*2.0;
10563 } if(U->CL.S_C.typeMOVE == CHU){
10564 if(U2A->chu == A) dmg = dmg*1.2;
10565 if(U2A->chu == B) dmg = dmg*1.0;
10566 if(U2A->chu == C) dmg = dmg*0.6;
10567 if(U2A->chu == D) dmg = dmg*0.2;
10568 if(U2A->chu == E) dmg = 0;
10569 if(U2A->chu == S) dmg = dmg*1.5;
10570 if(U2A->chu == SS) dmg = dmg*2.0;
10571 } if(U->CL.S_C.typeMOVE == SORA){
10572 if(U2A->sora == A) dmg = dmg*1.2;
10573 if(U2A->sora == B) dmg = dmg*1.0;
10574 if(U2A->sora == C) dmg = dmg*0.6;
10575 if(U2A->sora == D) dmg = dmg*0.2;
10576 if(U2A->sora == E) dmg = 0;
10577 if(U2A->sora == S) dmg = dmg*1.5;
10578 if(U2A->sora == SS) dmg = dmg*2.0;
10581 NSLog(@"ユニットの地形適用後:%g", dmg);
10583 graze = U->C.S_C.MEN/U2->C.S_C.MEN*U->C.S_C.LUK/3;
10587 if(graze > omfg && !healFlag) {dmg = dmg/5;
10591 if(battleDef1Flag) dmg -= dmg*0.5;
10592 battleDef1Flag = false;
10594 if(dmg < 0) dmg = 0;
10595 U->CL.S_C.HP -= dmg;
10599 if(U->CL.S_C.HP <= 0) {
10601 U2->C.S_C.vigor += 5;
10603 messageProcess = 2;
10610 if(U->targType2L) {
10612 targType2Lflag = true;
10617 if(U->targType2D) {
10619 targType2Dflag = true;
10629 [tplayer1 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
10631 [lplayer1 setIntValue:U->CL.S_C.HP/U->CL.S_M.HP*100];
10633 if(![U2A->msg isEqualToString:@""]){
10634 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@\n",
10635 [self originalMessage:U2A->msg subj:U2->CL.name obje:U->CL.name]]];
10641 message = [message stringByAppendingString:[NSString stringWithFormat:@"かすりヒット!\n"]];
10643 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は%gのダメージを受けた!", U->CL.name, dmg]];
10645 }else if(battleDef2Flag){
10649 while (!(DUN[1] == U->number)) {
10654 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は身構えている", U->CL.name]];
10657 }else if(battleDod2Flag){
10660 while (!(DUN[1] == U->number)) {
10664 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は様子をうかがっている", U->CL.name]];
10669 message = [message stringByAppendingString:[NSString stringWithFormat:@"ミス!%@はダメージを受けていない!", U->CL.name]];
10672 [battleDialog setStringValue:message];
10681 -(void)DisplayMessageMod2A{//攻撃側モビール
10683 double def2 = (double)31/32;
10684 NSString *message = @"";
10704 if(bLoopFlag) return;
10707 while (!(DUN[1] == U->number)) {
10713 while (!(AUN[1] == U->number)) {
10717 ATTACK *aTop = U->CL.A;
10718 for(int i = 0;i < crCAL1;i++){
10719 U->CL.A = U->CL.A->next;
10723 if(!battleDef1Flag && !battleDod1Flag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->CL.name, U->CL.A->name]];
10725 if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && ![U->CL.A->AN.movName isEqualToString:@""] && ![U->CL.A->AN.movName isEqualToString:@"(null)"] && U->CL.A->AN.movName != NULL){
10726 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
10728 NSString *path = @"data/AttackList/ALdata";
10730 path = [path stringByAppendingFormat:@"%dE", U->chipNumber+1];
10732 path = [path stringByAppendingFormat:@"/"];
10734 path = [path stringByAppendingString:U->CL.A->AN.movName];
10736 NSData *AVData = [NSData dataWithContentsOfFile:path];
10739 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
10744 NSString *path = @"data/AttackList3/IALdata";
10746 path = [path stringByAppendingFormat:@"%dE", U->CL.A->indexE];
10748 path = [path stringByAppendingFormat:@"/"];
10750 path = [path stringByAppendingString:U->CL.A->AN.movName];
10753 NSData *AVData = [NSData dataWithContentsOfFile:path];
10756 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
10762 AVPV.player = [AVpreview retain];
10768 [AVPV setHidden:NO];
10770 [battleDialog setStringValue:message];
10772 avPlayerFlag1 = true;
10778 }else if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && !animationFlag1 && U->CL.A->AN.ANI && !animationFlag3){
10780 [battleDialog setStringValue:message];
10781 animationFlag1 = true;
10788 dmg = U->CL.A->totalD;
10789 double val = 1/log(3+U2->C.S_C.MP/64);
10794 costMP = U->CL.A->EN + floor(U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
10795 U->CL.S_C.EN -= costMP;
10797 hit = U->CL.S_C.MOB + U->C.S_C.HIT;
10798 hitFix = U->CL.A->hitPercent;
10804 while (!(DUN[1] == U->number)) {
10808 double hit2 = U->C.S_C.EVA*U->C.S_C.DOD/100*U->C.S_C.HP/U->C.S_M.HP;
10810 double hi = U->C.S_C.LUK - U2->C.S_C.LUK;
10813 hit = 60 + hit/hit2*10 - hit2/hit*10 + hitFix - log(hi/10+1)*hit2/hit*10;
10814 if(hit > 100) hit = 100;
10815 if(U2A->D->sort == 1){
10818 if([self sortEcheck:U2A opponent:U])
10824 if(battleDod2Flag) wtf = 50;
10825 if(hit - rand()%wtf > 0 && !battleDef1Flag && !battleDod1Flag){
10827 if(U2A->D->sort == 0){
10828 NSLog(@"修正前のダメージ:%g", dmg);
10829 dmg = [self dmgResist:dmg];
10830 NSLog(@"属性後のダメージ:%g", dmg);
10831 def2 = pow(def2, U->C.S_C.DEF);
10832 int omfg = rand()%100;
10833 NSLog(@"計算式:(%g + %g - %g)", dmg*omfg/100, dmg, U->C.S_C.DEF);
10834 NSLog(@"ダメージ幅:%g〜%g", (0 + dmg - U->C.S_C.DEF), (dmg/10 + dmg - U->C.S_C.DEF));
10835 dmg = (dmg*omfg/100/10 + dmg - U->C.S_C.DEF);
10836 NSLog(@"地形効果:%g - %g", dmg, dmg*MC[chipNum[possionX][possionY]].dmgfix/100);
10837 if(buildNum[possionX][possionY] < 0) dmg -= dmg*MC[chipNum[possionX][possionY]].dmgfix/100 - 0.5;
10838 else dmg -= dmg*BC[buildNum[possionX][possionY]].dmgfix/100 - 0.5;
10840 if(U->C.S_C.typeMOVE == RIKU){
10841 if(U2A->riku == A) dmg = dmg*1.2;
10842 if(U2A->riku == B) dmg = dmg*1.0;
10843 if(U2A->riku == C) dmg = dmg*0.6;
10844 if(U2A->riku == D) dmg = dmg*0.2;
10845 if(U2A->riku == E) dmg = 0;
10846 if(U2A->riku == S) dmg = dmg*1.5;
10847 if(U2A->riku == SS) dmg = dmg*2.0;
10848 } if(U->C.S_C.typeMOVE == UMI &&
10849 (MC[chipNum[possionX][possionY]].type == 3 || MC[chipNum[possionX][possionY]].type == 4)){
10850 if(U2A->umi == A) dmg = dmg*1.2;
10851 if(U2A->umi == B) dmg = dmg*1.0;
10852 if(U2A->umi == C) dmg = dmg*0.6;
10853 if(U2A->umi == D) dmg = dmg*0.2;
10854 if(U2A->umi == E) dmg = 0;
10855 if(U2A->umi == S) dmg = dmg*1.5;
10856 if(U2A->umi == SS) dmg = dmg*2.0;
10857 }else if(U->C.S_C.typeMOVE == UMI){
10858 if(U2A->riku == A) dmg = dmg*1.2;
10859 if(U2A->riku == B) dmg = dmg*1.0;
10860 if(U2A->riku == C) dmg = dmg*0.6;
10861 if(U2A->riku == D) dmg = dmg*0.2;
10862 if(U2A->riku == E) dmg = 0;
10863 if(U2A->riku == S) dmg = dmg*1.5;
10864 if(U2A->riku == SS) dmg = dmg*2.0;
10866 } if(U->C.S_C.typeMOVE == CHU){
10867 if(U2A->chu == A) dmg = dmg*1.2;
10868 if(U2A->chu == B) dmg = dmg*1.0;
10869 if(U2A->chu == C) dmg = dmg*0.6;
10870 if(U2A->chu == D) dmg = dmg*0.2;
10871 if(U2A->chu == E) dmg = 0;
10872 if(U2A->chu == S) dmg = dmg*1.5;
10873 if(U2A->chu == SS) dmg = dmg*2.0;
10874 } if(U->C.S_C.typeMOVE == SORA){
10875 if(U2A->sora == A) dmg = dmg*1.2;
10876 if(U2A->sora == B) dmg = dmg*1.0;
10877 if(U2A->sora == C) dmg = dmg*0.6;
10878 if(U2A->sora == D) dmg = dmg*0.2;
10879 if(U2A->sora == E) dmg = 0;
10880 if(U2A->sora == S) dmg = dmg*1.5;
10881 if(U2A->sora == SS) dmg = dmg*2.0;
10884 NSLog(@"ユニットの地形適用後:%g", dmg);
10885 if(battleDef2Flag) NSLog(@"防御後のダメージ:%g", dmg/2);
10886 graze = U->C.S_C.MEN/U2->C.S_C.MEN*U->C.S_C.LUK/3;
10890 if(graze > omfg && !healFlag) {dmg = dmg/5;
10893 if(battleDef2Flag) dmg -= dmg*0.5;
10894 battleDef2Flag = false;
10896 if(dmg < 0) dmg = 0;
10897 U->C.S_C.HP -= dmg;
10900 }else if(U2A->D->sort == 1){
10901 dmg = dmg + rand()%5*dmg/10 - rand()%5*dmg/10;
10904 U->CL.S_C.HP += dmg;
10906 if(U->CL.S_C.HP > U->CL.S_M.HP) U->CL.S_C.HP = U->CL.S_M.HP;
10911 if(U->C.S_C.HP <= 0) {
10913 U2->C.S_C.vigor += 5;
10915 messageProcess = 2;
10922 if(U->targType2L) {
10924 targType2Lflag = true;
10929 if(U->targType2D) {
10931 targType2Dflag = true;
10939 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->C.S_C.HP, U->C.S_M.HP]];
10940 [lplayer2 setIntValue:U->C.S_C.HP/U->C.S_M.HP*100];
10942 if(![U2A->msg isEqualToString:@""]){
10944 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@\n",
10945 [self originalMessage:U2A->msg subj:U2->CL.name obje:U->C.name]]];
10949 if(grazeFlag) message = [message stringByAppendingString:[NSString stringWithFormat:@"かすりヒット!\n"]];
10950 if(!healFlag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は%gのダメージを受けた!", U->C.name, dmg]];
10951 else message = [message stringByAppendingString:[NSString stringWithFormat:@"%@はHPが%g回復した!", U->C.name, dmg]];
10952 }else if(battleDef1Flag){
10956 while (!(AUN[1] == U->number)) {
10961 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は身構えている", U->CL.name]];
10964 }else if(battleDod1Flag){
10967 while (!(AUN[1] == U->number)) {
10971 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は様子をうかがっている", U->CL.name]];
10976 message = [message stringByAppendingString:[NSString stringWithFormat:@"ミス!%@はダメージを受けていない!", U->C.name]];
10979 [battleDialog setStringValue:message];
10996 -(void)DisplayMessageMod2B{
10998 double def2 = (double)31/32;
10999 NSString *message = @"";
11019 if(bLoopFlag) return;
11022 while (!(AUN[1] == U->number)) {
11029 while (!(DUN[1] == U->number)) {
11033 ATTACK *aTop2 = U->C.A;
11039 mpCost = floor(U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
11040 costVIG = U->C.A->vigor;
11043 costVIG = U->C.A->vigor;
11045 mpCost = floor(U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
11047 if(mostDmg < U->C.A->totalD && U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && U->C.A->D->sort != 1 && mpCost <= U->C.S_C.MP && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
11048 mostDmg = U->C.A->totalD;
11051 U->C.A = U->C.A->next;
11057 if(!battleSet2PushedFlag){
11058 for(int i = 0;i < mostNumSub;i++){
11059 U->C.A = U->C.A->next;
11062 if(mostNum < 0) U->C.A = NULL;
11064 for(int i = 0;i < crCAL2;i++){
11065 U->C.A = U->C.A->next;
11070 if(U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && U->C.A->D->sort != 1 && ![self sortEcheck:U->C.A opponent:U2]){
11071 }else while(U->CL.A){
11072 U->C.A = U->C.A->next;
11078 message = [message stringByAppendingString:[NSString stringWithFormat:@"射程外\n"]];
11084 message = [message stringByAppendingString:[NSString stringWithFormat:@"射程外\n"]];
11088 if(!battleDef2Flag && !battleDod2Flag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->C.name, U->C.A->name]];
11091 if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag2 && ![U->C.A->AN.movName isEqualToString:@""] && ![U->C.A->AN.movName isEqualToString:@"(null)"] && U->C.A->AN.movName != NULL){
11092 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
11094 NSString *path = @"data/AttackList/ALdata";
11096 path = [path stringByAppendingFormat:@"%dE", U->chipNumber+1];
11098 path = [path stringByAppendingFormat:@"/"];
11100 path = [path stringByAppendingString:U->C.A->AN.movName];
11103 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
11106 AVPV.player = [AVpreview retain];
11111 [AVPV setControlsStyle:0];
11112 [AVPV setHidden:NO];
11114 [battleDialog setStringValue:message];
11116 avPlayerFlag2 = true;
11121 }else if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && !animationFlag2 && U->C.A->AN.ANI && !animationFlag3){
11124 animationFlag2 = true;
11134 if(U->C.A->D->type == 0) dmg = U->C.S_C.ATK + U->C.A->totalD;
11135 if(U->C.A->D->type == 1) dmg = U->C.S_C.DEF + U->C.A->totalD;
11136 if(U->C.A->D->type == 2) dmg = U->C.S_C.ACU + U->C.A->totalD;
11137 if(U->C.A->D->type == 3) dmg = U->C.S_C.EVA + U->C.A->totalD;
11138 if(U->C.A->D->type == 4) dmg = U->C.S_C.CAP + U->C.A->totalD;
11139 if(U->C.A->D->type == 5) dmg = U->C.A->totalD;
11142 double urSupposedToGet;
11144 if(U->C.A) urSupposedToGet = pow(8, log(3+U->C.A->totalD/16));
11146 double oopsIsRight;
11147 bool lolFlag = false;
11149 if(U->C.A->melee) oopsIsRight = U->C.S_C.MEL;
11150 else oopsIsRight = U->C.S_C.MIS;
11153 if(U->C.A->D->type == 0) dmg = (U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP + urSupposedToGet)*oopsIsRight/100;
11154 if(U->C.A->D->type == 1) dmg = (U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP + urSupposedToGet)*oopsIsRight/100;
11155 if(U->C.A->D->type == 2) dmg = (U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP + urSupposedToGet)*oopsIsRight/100;
11156 if(U->C.A->D->type == 3) dmg = (U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP + urSupposedToGet)*oopsIsRight/100;
11157 if(U->C.A->D->type == 4) {
11159 dmg = (U->C.S_C.CAP + urSupposedToGet)*oopsIsRight/100;
11161 if(U->C.A->D->type == 5) dmg = U->C.A->totalD;
11163 costMP = U->C.A->MP + floor(U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
11164 U->C.S_C.MP -= costMP;
11166 hit = U->C.S_C.ACU*U->C.S_C.HIT/100*U->C.S_C.HP/U->C.S_M.HP;
11167 hitFix = U->C.A->hitPercent;
11173 while (!(AUN[1] == U->number)) {
11177 hit = 60 + hit/(U->CL.S_C.MOB*U->C.S_C.DOD/100)*10 - (U->CL.S_C.MOB*U->C.S_C.DOD/100)/hit*10 + hitFix;
11178 if(hit > 100) hit = 100;
11180 if([self sortEcheck:U2A opponent:U])
11183 battleDod1Flag = false;
11186 if(battleDod1Flag) omg = 50;
11188 if(hit - rand()%omg > 0 && !battleDef2Flag && !battleDod2Flag){
11189 NSLog(@"修正前のダメージ:%g, %g", dmg, U2A->D->seed);
11191 dmg = [self dmgResist:dmg];
11192 NSLog(@"属性後のダメージ:%g", dmg);
11193 def2 = pow(def2, U->CL.S_C.ARM);
11194 int omfg = rand()%100;
11195 NSLog(@"計算式:(%g + %g - %g)", dmg*omfg/100, dmg, U->CL.S_C.ARM);
11196 NSLog(@"ダメージ幅:%g〜%g", (0 + dmg - U->CL.S_C.ARM), (dmg/10 + dmg - U->CL.S_C.ARM));
11197 if(lolFlag) dmg = (dmg*omfg/100/10 + dmg);
11198 else dmg = (dmg*omfg/100/10+ dmg - U->CL.S_C.ARM);
11201 NSLog(@"地形効果:%g - %g", dmg, dmg*MC[chipNum[possionX][possionY]].dmgfix/100);
11202 if(buildNum[possionX][possionY] < 0) dmg -= dmg*MC[chipNum[possionX][possionY]].dmgfix/100 - 0.5;
11203 else dmg -= dmg*BC[buildNum[possionX][possionY]].dmgfix/100 - 0.5;
11205 if(U->CL.S_C.typeMOVE == RIKU){
11206 if(U2A->riku == A) dmg = dmg*1.2;
11207 if(U2A->riku == B) dmg = dmg*1.0;
11208 if(U2A->riku == C) dmg = dmg*0.6;
11209 if(U2A->riku == D) dmg = dmg*0.2;
11210 if(U2A->riku == E) dmg = 0;
11211 if(U2A->riku == S) dmg = dmg*1.5;
11212 if(U2A->riku == SS) dmg = dmg*2.0;
11213 } if(U->CL.S_C.typeMOVE == UMI &&
11214 (MC[chipNum[possionX][possionY]].type == 3 || MC[chipNum[possionX][possionY]].type == 4)){
11215 if(U2A->umi == A) dmg = dmg*1.2;
11216 if(U2A->umi == B) dmg = dmg*1.0;
11217 if(U2A->umi == C) dmg = dmg*0.6;
11218 if(U2A->umi == D) dmg = dmg*0.2;
11219 if(U2A->umi == E) dmg = 0;
11220 if(U2A->umi == S) dmg = dmg*1.5;
11221 if(U2A->umi == SS) dmg = dmg*2.0;
11222 }else if(U->CL.S_C.typeMOVE == UMI){
11223 if(U2A->riku == A) dmg = dmg*1.2;
11224 if(U2A->riku == B) dmg = dmg*1.0;
11225 if(U2A->riku == C) dmg = dmg*0.6;
11226 if(U2A->riku == D) dmg = dmg*0.2;
11227 if(U2A->riku == E) dmg = 0;
11228 if(U2A->riku == S) dmg = dmg*1.5;
11229 if(U2A->riku == SS) dmg = dmg*2.0;
11231 } if(U->CL.S_C.typeMOVE == CHU){
11232 if(U2A->chu == A) dmg = dmg*1.2;
11233 if(U2A->chu == B) dmg = dmg*1.0;
11234 if(U2A->chu == C) dmg = dmg*0.6;
11235 if(U2A->chu == D) dmg = dmg*0.2;
11236 if(U2A->chu == E) dmg = 0;
11237 if(U2A->chu == S) dmg = dmg*1.5;
11238 if(U2A->chu == SS) dmg = dmg*2.0;
11239 } if(U->CL.S_C.typeMOVE == SORA){
11240 if(U2A->sora == A) dmg = dmg*1.2;
11241 if(U2A->sora == B) dmg = dmg*1.0;
11242 if(U2A->sora == C) dmg = dmg*0.6;
11243 if(U2A->sora == D) dmg = dmg*0.2;
11244 if(U2A->sora == E) dmg = 0;
11245 if(U2A->sora == S) dmg = dmg*1.5;
11246 if(U2A->sora == SS) dmg = dmg*2.0;
11249 NSLog(@"ユニットの地形適用後:%g", dmg);
11251 graze = U->C.S_C.MEN/U2->C.S_C.MEN*U->C.S_C.LUK/3;
11255 if(graze > omfg && !healFlag) {dmg = dmg/5;
11259 if(battleDef1Flag) dmg -= dmg*0.5;
11260 battleDef1Flag = false;
11262 if(dmg < 0) dmg = 0;
11263 U->CL.S_C.HP -= dmg;
11267 if(U->CL.S_C.HP <= 0) {
11269 U2->C.S_C.vigor += 5;
11271 messageProcess = 2;
11278 if(U->targType2L) {
11280 targType2Lflag = true;
11285 if(U->targType2D) {
11287 targType2Dflag = true;
11297 [tplayer1 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
11299 [lplayer1 setIntValue:U->CL.S_C.HP/U->CL.S_M.HP*100];
11301 if(![U2A->msg isEqualToString:@""]){
11302 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@\n",
11303 [self originalMessage:U2A->msg subj:U2->C.name obje:U->CL.name]]];
11309 message = [message stringByAppendingString:[NSString stringWithFormat:@"かすりヒット!\n"]];
11311 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は%gのダメージを受けた!", U->CL.name, dmg]];
11313 }else if(battleDef2Flag){
11317 while (!(DUN[1] == U->number)) {
11322 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は身構えている", U->C.name]];
11325 }else if(battleDod2Flag){
11328 while (!(DUN[1] == U->number)) {
11332 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は様子をうかがっている", U->C.name]];
11337 message = [message stringByAppendingString:[NSString stringWithFormat:@"ミス!%@はダメージを受けていない!", U->CL.name]];
11340 [battleDialog setStringValue:message];
11350 -(void)DisplayMessageMod3A{//防御側モビール
11352 double def2 = (double)31/32;
11353 NSString *message = @"";
11372 static bool extentbool3 = false;
11373 static bool extentbool4 = false;
11374 if(!extentbool3 && extentBattleFlag2){
11375 extentbool3 = true;
11376 extentMPcostFlag = false;
11379 if(!extentBattleFlag2){
11383 if(bLoopFlag) return;
11386 while (!(DUN[DUNnum] == U->number)) {
11392 while (!(AUN[1] == U->number)) {
11396 ATTACK *aTop = U->C.A;
11397 for(int i = 0;i < crCAL1;i++){
11398 U->C.A = U->C.A->next;
11402 if(!battleDef1Flag && !battleDod1Flag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->C.name, U->C.A->name]];
11405 [bplayer2 setImage:U2->CL.imgb];
11406 //[bplayer2 setImageScaling:NSScaleToFit];
11407 [nplayer2 setStringValue:U2->CL.name];
11408 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U2->CL.S_C.HP, U2->CL.S_M.HP]];
11409 [lplayer2 setIntValue:U2->CL.S_C.HP/U2->CL.S_M.HP*100];
11410 [iplayer2 setImage:MC[chipNum[U2->x][U2->y]].img];
11411 [mplayer2 setStringValue:MC[chipNum[U2->x][U2->y]].name];
11412 [rplayer2 setStringValue:[NSString stringWithFormat:@"地形効果 %d%", MC[chipNum[U2->x][U2->y]].dmgfix]];
11414 if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && ![U->C.A->AN.movName isEqualToString:@""] && ![U->C.A->AN.movName isEqualToString:@"(null)"] && U->C.A->AN.movName != NULL && DUN[DUNnum] == 1){
11415 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
11417 NSString *path = @"data/AttackList/ALdata";
11419 path = [path stringByAppendingFormat:@"%dE", U->chipNumber+1];
11421 path = [path stringByAppendingFormat:@"/"];
11423 path = [path stringByAppendingString:U->C.A->AN.movName];
11425 NSData *AVData = [NSData dataWithContentsOfFile:path];
11428 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
11433 NSString *path = @"data/AttackList3/IALdata";
11435 path = [path stringByAppendingFormat:@"%dE", U->C.A->indexE];
11437 path = [path stringByAppendingFormat:@"/"];
11439 path = [path stringByAppendingString:U->C.A->AN.movName];
11442 NSData *AVData = [NSData dataWithContentsOfFile:path];
11445 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
11451 AVPV.player = [AVpreview retain];
11457 [AVPV setHidden:NO];
11459 [battleDialog setStringValue:message];
11461 avPlayerFlag1 = true;
11467 }else if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && !animationFlag1 && U->C.A->AN.ANI && !animationFlag3 && DUN[DUNnum] == 1){
11469 [battleDialog setStringValue:message];
11470 animationFlag1 = true;
11478 if(U->C.A->D->type == 0) dmg = U->C.S_C.ATK + U->C.A->totalD;
11479 if(U->C.A->D->type == 1) dmg = U->C.S_C.DEF + U->C.A->totalD;
11480 if(U->C.A->D->type == 2) dmg = U->C.S_C.ACU + U->C.A->totalD;
11481 if(U->C.A->D->type == 3) dmg = U->C.S_C.EVA + U->C.A->totalD;
11482 if(U->C.A->D->type == 4) dmg = U->C.S_C.CAP + U->C.A->totalD;
11483 if(U->C.A->D->type == 5) dmg = U->C.A->totalD;
11486 double urSupposedToGet;
11488 if(U->C.A) urSupposedToGet = pow(8, log(3+U->C.A->totalD/16));
11490 double oopsIsRight;
11492 if(U->C.A->melee) oopsIsRight = U->C.S_C.MEL;
11493 else oopsIsRight = U->C.S_C.MIS;
11494 bool lolflag = false;
11496 if(U->C.A->D->type == 0) dmg = (U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP + urSupposedToGet)*oopsIsRight/100;
11497 if(U->C.A->D->type == 1) dmg = (U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP + urSupposedToGet)*oopsIsRight/100;
11498 if(U->C.A->D->type == 2) dmg = (U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP + urSupposedToGet)*oopsIsRight/100;
11499 if(U->C.A->D->type == 3) dmg = (U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP + urSupposedToGet)*oopsIsRight/100;
11501 if(U->C.A->D->type == 4){
11503 dmg = (U->C.S_C.CAP + U->C.A->totalD)*oopsIsRight/100;
11506 if(U->C.A->D->type == 5) dmg = U->C.A->totalD;
11507 double val2 = log(3+U2->C.S_C.MP/64);
11512 costMP = U->C.A->MP + floor(U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
11514 if(extentMPcostFlag && extentBattleFlag2){
11517 U->C.S_C.MP -= costMP;
11518 extentMPcostFlag = true;
11521 hit = U->C.S_C.ACU*U->C.S_C.HIT/100*U->C.S_C.HP/U->C.S_M.HP;
11522 hitFix = U->C.A->hitPercent;
11528 while (!(DUN[DUNnum] == U->number)) {
11531 hit = 60 + hit/(U->CL.S_C.MOB*U->C.S_C.DOD/100)*10 - (U->CL.S_C.MOB*U->C.S_C.DOD/100)/hit*10 + hitFix;
11532 if(hit > 100) hit = 100;
11533 if(U2A->D->sort == 1){
11536 if([self sortEcheck:U2A opponent:U])
11542 if(battleDod2Flag) wtf = 50;
11543 if(hit - rand()%wtf > 0 && !battleDef1Flag && !battleDod1Flag){
11545 if(U2A->D->sort == 0){
11546 NSLog(@"修正前のダメージ:%g", dmg);
11547 dmg = [self dmgResist:dmg];
11548 NSLog(@"属性後のダメージ:%g", dmg);
11549 def2 = pow(def2, U->CL.S_C.ARM);
11550 int omfg = rand()%100;
11551 NSLog(@"計算式:(%g + %g - %g)", dmg*omfg/100, dmg, (U->CL.S_C.ARM));
11552 NSLog(@"ダメージ幅:%g〜%g", (0 + dmg - U->CL.S_C.ARM), (dmg/10 + dmg - U->CL.S_C.ARM));
11553 if(lolflag) dmg = (dmg*omfg/100/10 + dmg);
11554 else dmg = (dmg*omfg/100/10 + dmg - U->CL.S_C.ARM);
11555 NSLog(@"地形効果:%g - %g", dmg, dmg*MC[chipNum[possionX][possionY]].dmgfix/100);
11556 if(buildNum[possionX][possionY] < 0) dmg -= dmg*MC[chipNum[possionX][possionY]].dmgfix/100 - 0.5;
11557 else dmg -= dmg*BC[buildNum[possionX][possionY]].dmgfix/100 - 0.5;
11559 if(U->CL.S_C.typeMOVE == RIKU){
11560 if(U2A->riku == A) dmg = dmg*1.2;
11561 if(U2A->riku == B) dmg = dmg*1.0;
11562 if(U2A->riku == C) dmg = dmg*0.6;
11563 if(U2A->riku == D) dmg = dmg*0.2;
11564 if(U2A->riku == E) dmg = 0;
11565 if(U2A->riku == S) dmg = dmg*1.5;
11566 if(U2A->riku == SS) dmg = dmg*2.0;
11567 } if(U->CL.S_C.typeMOVE == UMI &&
11568 (MC[chipNum[possionX][possionY]].type == 3 || MC[chipNum[possionX][possionY]].type == 4)){
11569 if(U2A->umi == A) dmg = dmg*1.2;
11570 if(U2A->umi == B) dmg = dmg*1.0;
11571 if(U2A->umi == C) dmg = dmg*0.6;
11572 if(U2A->umi == D) dmg = dmg*0.2;
11573 if(U2A->umi == E) dmg = 0;
11574 if(U2A->umi == S) dmg = dmg*1.5;
11575 if(U2A->umi == SS) dmg = dmg*2.0;
11576 }else if(U->CL.S_C.typeMOVE == UMI){
11577 if(U2A->riku == A) dmg = dmg*1.2;
11578 if(U2A->riku == B) dmg = dmg*1.0;
11579 if(U2A->riku == C) dmg = dmg*0.6;
11580 if(U2A->riku == D) dmg = dmg*0.2;
11581 if(U2A->riku == E) dmg = 0;
11582 if(U2A->riku == S) dmg = dmg*1.5;
11583 if(U2A->riku == SS) dmg = dmg*2.0;
11585 } if(U->CL.S_C.typeMOVE == CHU){
11586 if(U2A->chu == A) dmg = dmg*1.2;
11587 if(U2A->chu == B) dmg = dmg*1.0;
11588 if(U2A->chu == C) dmg = dmg*0.6;
11589 if(U2A->chu == D) dmg = dmg*0.2;
11590 if(U2A->chu == E) dmg = 0;
11591 if(U2A->chu == S) dmg = dmg*1.5;
11592 if(U2A->chu == SS) dmg = dmg*2.0;
11593 } if(U->CL.S_C.typeMOVE == SORA){
11594 if(U2A->sora == A) dmg = dmg*1.2;
11595 if(U2A->sora == B) dmg = dmg*1.0;
11596 if(U2A->sora == C) dmg = dmg*0.6;
11597 if(U2A->sora == D) dmg = dmg*0.2;
11598 if(U2A->sora == E) dmg = 0;
11599 if(U2A->sora == S) dmg = dmg*1.5;
11600 if(U2A->sora == SS) dmg = dmg*2.0;
11603 NSLog(@"ユニットの地形適用後:%g", dmg);
11604 if(battleDef2Flag) NSLog(@"防御後のダメージ:%g", dmg/2);
11605 graze = U->C.S_C.MEN/U2->C.S_C.MEN*U->C.S_C.LUK/3;
11609 if(graze > omfg && !healFlag) {dmg = dmg/5;
11612 if(battleDef2Flag) dmg -= dmg*0.5;
11613 battleDef2Flag = false;
11615 if(dmg < 0) dmg = 0;
11616 U->CL.S_C.HP -= dmg;
11619 }else if(U2A->D->sort == 1){
11620 dmg = dmg + rand()%5*dmg/10 - rand()%5*dmg/10;
11623 U->C.S_C.HP += dmg;
11624 if(U->C.S_C.HP > U->C.S_M.HP) U->C.S_C.HP = U->C.S_M.HP;
11629 if(U->CL.S_C.HP <= 0) {
11631 U2->C.S_C.vigor += 5;
11633 messageProcess = 2;
11640 if(U->targType2L) {
11642 targType2Lflag = true;
11647 if(U->targType2D) {
11649 targType2Dflag = true;
11657 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
11658 [lplayer2 setIntValue:U->CL.S_C.HP/U->CL.S_M.HP*100];
11660 if(![U2A->msg isEqualToString:@""]){
11662 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@\n",
11663 [self originalMessage:U2A->msg subj:U2->C.name obje:U->CL.name]]];
11667 if(grazeFlag) message = [message stringByAppendingString:[NSString stringWithFormat:@"かすりヒット!\n"]];
11668 if(!healFlag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は%gのダメージを受けた!", U->CL.name, dmg]];
11669 else message = [message stringByAppendingString:[NSString stringWithFormat:@"%@はHPが%g回復した!", U->CL.name, dmg]];
11670 }else if(battleDef1Flag){
11674 while (!(AUN[1] == U->number)) {
11679 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は身構えている", U->C.name]];
11682 }else if(battleDod1Flag){
11685 while (!(AUN[1] == U->number)) {
11689 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は様子をうかがっている", U->C.name]];
11694 message = [message stringByAppendingString:[NSString stringWithFormat:@"ミス!%@はダメージを受けていない!", U->CL.name]];
11697 [battleDialog setStringValue:message];
11704 if(!extentBattleFlag2){
11709 }else if(extentBattleFlag2){
11711 messageProcess = 1;
11712 if(DUN[DUNnum] <= 0){
11716 extentBattleFlag2 = false;
11717 extentbool3 = false;
11718 extentMPcostFlag = false;
11725 -(void)DisplayMessageMod3B{
11728 double def2 = (double)31/32;
11729 NSString *message = @"";
11749 if(bLoopFlag) return;
11753 while (!(AUN[1] == U->number)) {
11759 while (!(DUN[1] == U->number)) {
11762 ATTACK *aTop2 = U->CL.A;
11768 mpCost = floor(U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
11769 costVIG = U->C.A->vigor;
11772 mpCost = floor(U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
11773 if(mostDmg < U->CL.A->totalD && U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && U->CL.A->D->sort != 1 && mpCost <= U->CL.S_C.EN && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->CL.A opponent:U2]){
11774 mostDmg = U->CL.A->totalD;
11777 U->CL.A = U->CL.A->next;
11781 if(mostNum < 0) U->C.A = NULL;
11785 if(!battleSet2PushedFlag){
11786 for(int i = 0;i < mostNumSub;i++){
11787 U->CL.A = U->CL.A->next;
11792 for(int i = 0;i < crCAL2;i++){
11793 U->CL.A = U->C.A->next;
11797 if(U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && U->CL.A->D->sort != 1 && ![self sortEcheck:U->CL.A opponent:U2]){
11798 }else while(U->CL.A){
11799 U->CL.A = U->CL.A->next;
11806 message = [message stringByAppendingString:[NSString stringWithFormat:@"射程外\n"]];
11810 if(!battleDef2Flag && !battleDod2Flag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->CL.name, U->CL.A->name]];
11812 if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag2 && ![U->CL.A->AN.movName isEqualToString:@""] && ![U->CL.A->AN.movName isEqualToString:@"(null)"] && U->CL.A->AN.movName != NULL){
11813 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
11815 NSString *path = @"data/AttackList/ALdata";
11817 path = [path stringByAppendingFormat:@"%dE", U->chipNumber+1];
11819 path = [path stringByAppendingFormat:@"/"];
11821 path = [path stringByAppendingString:U->CL.A->AN.movName];
11824 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
11827 AVPV.player = [AVpreview retain];
11832 [AVPV setControlsStyle:0];
11833 [AVPV setHidden:NO];
11835 [battleDialog setStringValue:message];
11837 avPlayerFlag2 = true;
11842 }else if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && !animationFlag2 && U->CL.A->AN.ANI && !animationFlag3){
11845 animationFlag2 = true;
11855 dmg = U->CL.A->totalD;
11857 costMP = U->CL.A->EN + floor(U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
11858 U->CL.S_C.EN -= costMP;
11860 hit = U->CL.S_C.MOB + U->C.S_C.HIT;
11861 hitFix = U->CL.A->hitPercent;
11867 while (!(AUN[1] == U->number)) {
11871 double hit2 = U->C.S_C.EVA*U->C.S_C.DOD/100*U->C.S_C.HP/U->C.S_M.HP;
11873 double hi = U->C.S_C.LUK - U2->C.S_C.LUK;
11876 hit = 60 + hit/hit2*10 - hit2/hit*10 + hitFix - log(hi/10+1)*hit2/hit*10;
11877 if(hit > 100) hit = 100;
11879 if([self sortEcheck:U2A opponent:U])
11882 battleDod1Flag = false;
11885 if(battleDod1Flag) omg = 50;
11887 if(hit - rand()%omg > 0 && !battleDef2Flag && !battleDod2Flag){
11888 NSLog(@"修正前のダメージ:%g", dmg);
11889 dmg = [self dmgResist:dmg];
11890 NSLog(@"属性後のダメージ:%g", dmg);
11891 def2 = pow(def2, U->C.S_C.DEF);
11892 int omfg = rand()%100;
11893 NSLog(@"計算式:(%g + %g - %g)", dmg*omfg/100, dmg, U->C.S_C.DEF);
11894 NSLog(@"ダメージ幅:%g〜%g", (0 + dmg - U->C.S_C.DEF), (dmg/10 + dmg - U->C.S_C.DEF));
11895 dmg = (dmg*omfg/100/10 + dmg - U->C.S_C.DEF);
11898 NSLog(@"地形効果:%g - %g", dmg, dmg*MC[chipNum[possionX][possionY]].dmgfix/100);
11899 if(buildNum[possionX][possionY] < 0) dmg -= dmg*MC[chipNum[possionX][possionY]].dmgfix/100 - 0.5;
11900 else dmg -= dmg*BC[buildNum[possionX][possionY]].dmgfix/100 - 0.5;
11902 if(U->C.S_C.typeMOVE == RIKU){
11903 if(U2A->riku == A) dmg = dmg*1.2;
11904 if(U2A->riku == B) dmg = dmg*1.0;
11905 if(U2A->riku == C) dmg = dmg*0.6;
11906 if(U2A->riku == D) dmg = dmg*0.2;
11907 if(U2A->riku == E) dmg = 0;
11908 if(U2A->riku == S) dmg = dmg*1.5;
11909 if(U2A->riku == SS) dmg = dmg*2.0;
11910 } if(U->C.S_C.typeMOVE == UMI &&
11911 (MC[chipNum[possionX][possionY]].type == 3 || MC[chipNum[possionX][possionY]].type == 4)){
11912 if(U2A->umi == A) dmg = dmg*1.2;
11913 if(U2A->umi == B) dmg = dmg*1.0;
11914 if(U2A->umi == C) dmg = dmg*0.6;
11915 if(U2A->umi == D) dmg = dmg*0.2;
11916 if(U2A->umi == E) dmg = 0;
11917 if(U2A->umi == S) dmg = dmg*1.5;
11918 if(U2A->umi == SS) dmg = dmg*2.0;
11919 }else if(U->C.S_C.typeMOVE == UMI){
11920 if(U2A->riku == A) dmg = dmg*1.2;
11921 if(U2A->riku == B) dmg = dmg*1.0;
11922 if(U2A->riku == C) dmg = dmg*0.6;
11923 if(U2A->riku == D) dmg = dmg*0.2;
11924 if(U2A->riku == E) dmg = 0;
11925 if(U2A->riku == S) dmg = dmg*1.5;
11926 if(U2A->riku == SS) dmg = dmg*2.0;
11928 } if(U->C.S_C.typeMOVE == CHU){
11929 if(U2A->chu == A) dmg = dmg*1.2;
11930 if(U2A->chu == B) dmg = dmg*1.0;
11931 if(U2A->chu == C) dmg = dmg*0.6;
11932 if(U2A->chu == D) dmg = dmg*0.2;
11933 if(U2A->chu == E) dmg = 0;
11934 if(U2A->chu == S) dmg = dmg*1.5;
11935 if(U2A->chu == SS) dmg = dmg*2.0;
11936 } if(U->C.S_C.typeMOVE == SORA){
11937 if(U2A->sora == A) dmg = dmg*1.2;
11938 if(U2A->sora == B) dmg = dmg*1.0;
11939 if(U2A->sora == C) dmg = dmg*0.6;
11940 if(U2A->sora == D) dmg = dmg*0.2;
11941 if(U2A->sora == E) dmg = 0;
11942 if(U2A->sora == S) dmg = dmg*1.5;
11943 if(U2A->sora == SS) dmg = dmg*2.0;
11946 NSLog(@"ユニットの地形適用後:%g", dmg);
11948 graze = U->C.S_C.MEN/U2->C.S_C.MEN*U->C.S_C.LUK/3;
11952 if(graze > omfg && !healFlag) {dmg = dmg/5;
11956 if(battleDef1Flag) dmg -= dmg*0.5;
11957 battleDef1Flag = false;
11959 if(dmg < 0) dmg = 0;
11960 U->C.S_C.HP -= dmg;
11964 if(U->C.S_C.HP <= 0) {
11966 U2->C.S_C.vigor += 5;
11968 messageProcess = 2;
11975 if(U->targType2L) {
11977 targType2Lflag = true;
11982 if(U->targType2D) {
11984 targType2Dflag = true;
11994 [tplayer1 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->C.S_C.HP, U->C.S_M.HP]];
11996 [lplayer1 setIntValue:U->C.S_C.HP/U->C.S_M.HP*100];
11998 if(![U2A->msg isEqualToString:@""]){
11999 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@\n",
12000 [self originalMessage:U2A->msg subj:U2->CL.name obje:U->C.name]]];
12006 message = [message stringByAppendingString:[NSString stringWithFormat:@"かすりヒット!\n"]];
12008 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は%gのダメージを受けた!", U->C.name, dmg]];
12010 }else if(battleDef2Flag){
12014 while (!(DUN[1] == U->number)) {
12019 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は身構えている", U->CL.name]];
12022 }else if(battleDod2Flag){
12025 while (!(DUN[1] == U->number)) {
12029 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は様子をうかがっている", U->CL.name]];
12034 message = [message stringByAppendingString:[NSString stringWithFormat:@"ミス!%@はダメージを受けていない!", U->C.name]];
12037 [battleDialog setStringValue:message];
12046 -(NSString*)originalMessage:(NSString*)str subj:(NSString*)subj obje:(NSString*)obje{
12050 NSString *result = @"";
12052 string = [str copy];
12054 array = [string componentsSeparatedByString:@"$subj"];
12056 for(int i = 0;i < [array count];i++){
12058 result = [[result stringByAppendingString:[NSString stringWithFormat:@"%@", subj]] retain];
12060 result = [[result stringByAppendingString:[array objectAtIndex:i]] retain];
12063 string = [result copy];
12065 array = [string componentsSeparatedByString:@"$obje"];
12069 for(int i = 0;i < [array count];i++){
12071 result = [[result stringByAppendingString:[NSString stringWithFormat:@"%@", obje]] retain];
12073 result = [[result stringByAppendingString:[array objectAtIndex:i]] retain];
12076 //NSLog(@"%@", result);
12083 -(double)dmgResist:(double)DMG{
12087 sd[0] = U->C.R_C.blow + U->C.R_F.blow;
12088 sd[1] = U->C.R_C.slash + U->C.R_F.slash;
12089 sd[2] = U->C.R_C.stub + U->C.R_F.stub;
12090 sd[3] = U->C.R_C.arrow + U->C.R_F.arrow;
12091 sd[4] = U->C.R_C.gun + U->C.R_F.gun;
12092 sd[5] = U->C.R_C.shell + U->C.R_F.shell;
12094 sd[6] = U->C.R_C.flame + U->C.R_F.flame;
12095 sd[7] = U->C.R_C.cold + U->C.R_F.cold;
12096 sd[8] = U->C.R_C.electoric + U->C.R_F.electoric;
12097 sd[9] = U->C.R_C.air + U->C.R_F.air;
12098 sd[10] = U->C.R_C.water + U->C.R_F.water;
12099 sd[11] = U->C.R_C.gas + U->C.R_F.gas;
12100 sd[12] = U->C.R_C.holy + U->C.R_F.holy;
12101 sd[13] = U->C.R_C.dark + U->C.R_F.dark;
12102 sd[14] = U->C.R_C.explosion + U->C.R_F.explosion;
12103 sd[15] = U->C.R_C.blood + U->C.R_F.blood;
12105 sd[16] = U->C.R_C.paralysis + U->C.R_F.paralysis;
12106 sd[17] = U->C.R_C.confusion + U->C.R_F.confusion;
12107 sd[18] = U->C.R_C.poison + U->C.R_F.poison;
12108 sd[19] = U->C.R_C.sleep + U->C.R_F.sleep;
12109 sd[20] = U->C.R_C.charm + U->C.R_F.charm;
12110 sd[21] = U->C.R_C.silent + U->C.R_F.silent;
12114 for(int i = 0;i <= 21;i++)
12115 sd[i] &= ~(sd[i] >> 31);
12119 if(U2A->D->seed == 0) DMG = DMG * sd[0]/100;
12120 if(U2A->D->seed == 1) DMG = DMG * sd[1]/100;
12121 if(U2A->D->seed == 2) DMG = DMG * sd[2]/100;
12122 if(U2A->D->seed == 3) DMG = DMG * sd[3]/100;
12123 if(U2A->D->seed == 4) DMG = DMG * sd[4]/100;
12124 if(U2A->D->seed == 5) DMG = DMG * sd[5]/100;
12126 if(U2A->D->seed == 6) DMG = DMG * sd[6]/100;
12127 if(U2A->D->seed == 7) DMG = DMG * sd[7]/100;
12128 if(U2A->D->seed == 8) DMG = DMG * sd[8]/100;
12129 if(U2A->D->seed == 9) DMG = DMG * sd[9]/100;
12130 if(U2A->D->seed == 10) DMG = DMG * sd[10]/100;
12131 if(U2A->D->seed == 11) DMG = DMG * sd[11]/100;
12132 if(U2A->D->seed == 12) DMG = DMG * sd[12]/100;
12133 if(U2A->D->seed == 13) DMG = DMG * sd[13]/100;
12134 if(U2A->D->seed == 14) DMG = DMG * sd[14]/100;
12135 if(U2A->D->seed == 15) DMG = DMG * sd[15]/100;
12137 if(U2A->D->seed == 16) DMG = DMG * sd[16]/100;
12138 if(U2A->D->seed == 17) DMG = DMG * sd[17]/100;
12139 if(U2A->D->seed == 18) DMG = DMG * sd[18]/100;
12140 if(U2A->D->seed == 19) DMG = DMG * sd[19]/100;
12141 if(U2A->D->seed == 20) DMG = DMG * sd[20]/100;
12142 if(U2A->D->seed == 21) DMG = DMG * sd[21]/100;
12147 -(IBAction)battleStart:(id)sender{
12148 battleSetUp = true;
12149 battleSet1Flag = false;
12150 battleSet2Flag = false;
12151 battleSettingFlag = false;
12153 attackingWait = false;
12154 crapBugFixFlag = true;
12156 [battlePanel close];
12160 -(void)battleStartCPU{
12161 battleSetUp = true;
12162 battleSet1Flag = false;
12163 battleSet2Flag = false;
12164 battleSettingFlag = false;
12166 crapBugFixFlag = true;
12168 [battlePanel close];
12171 -(IBAction)battleSet1:(id)sender{
12172 battleSetFlag = false;
12173 battleSet1Flag = true;
12174 battleDef1Flag = false;
12175 battleDod1Flag = false;
12176 battleSettingFlag = true;
12177 battleSet2PushedFlag = false;
12180 while (!(AUN[1] == U->number)) {
12183 if(U->chipNumberL >= 0)
12186 [self initCAttackList2];
12187 [self initCAttackSelect2];
12189 else if(U->chipNumber >= 0) {
12191 [self initCAttackList];
12192 [self initCAttackSelect];
12196 [atkPanel makeKeyAndOrderFront:nil];
12198 -(IBAction)battleDef1:(id)sender{
12199 battleDef1Flag = true;
12200 battleSet1Flag = false;
12201 battleDod1Flag = false;
12203 -(IBAction)battleDod1:(id)sender{
12204 battleDod1Flag = true;
12205 battleDef1Flag = false;
12206 battleSet1Flag = false;
12208 -(IBAction)battleSet2:(id)sender{
12209 battleSetFlag = true;
12210 battleSet2Flag = true;
12211 battleDef2Flag = false;
12212 battleDod2Flag = false;
12213 battleSettingFlag = true;
12214 battleSet2PushedFlag = true;
12217 while (!(DUN[1] == U->number)) {
12221 if(U->chipNumberL >= 0){
12223 [self initCAttackList2];
12224 [self initCAttackSelect2];
12226 else if(U->chipNumber >= 0) {
12228 [self initCAttackList];
12229 [self initCAttackSelect];
12232 [atkPanel makeKeyAndOrderFront:nil];
12234 -(IBAction)battleDef2:(id)sender{
12235 battleDef2Flag = true;
12236 battleSet2Flag = false;
12237 battleDod2Flag = false;
12239 -(IBAction)battleDod2:(id)sender{
12240 battleDod2Flag = true;
12241 battleDef2Flag = false;
12242 battleSet2Flag = false;
12245 -(IBAction)battleCancel:(id)sender{
12246 battleFlag = false;
12247 battleSettingFlag = false;
12249 battleSet2PushedFlag = false;
12250 attackingWait = false;
12252 [battlePanel close];
12255 -(IBAction)researchCancel:(id)sender{
12256 [researchPanel close];
12259 -(void)setCommandPanel{
12261 menuPoint.x = [mapWindow frame].origin.x + possionLocalX*32;
12262 menuPoint.y = [mapWindow frame].origin.y + possionLocalY*32 - 180;
12265 if(buildSkillFlag) {
12266 cIncludeCreateFlag = true;
12268 }else cIncludeCreateFlag = false;
12269 if(summonSkillFlag) {
12270 cIncludeSummonFlag = true;
12272 }else cIncludeSummonFlag = false;
12273 int plusBtnValue = 0;
12275 if(cIncludeCreateFlag && cIncludeSummonFlag && MF[MFselectedRow+1].MS.buildAllowedFlag && MF[MFselectedRow+1].MS.summonAllowedFlag){
12277 plusBtnValue = 200;
12278 [commandPanel setFrame:NSMakeRect(menuPoint.x, menuPoint.y, 150, plusBtnValue) display:YES];
12281 plusBtnValue -= moveBtn.frame.size.height + 12;
12282 [moveBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12283 [[commandPanel contentView] addSubview:moveBtn];
12285 plusBtnValue -= attackBtn.frame.size.height + 2;
12286 [attackBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12287 [[commandPanel contentView] addSubview:attackBtn];
12289 plusBtnValue -= stanbyBtn.frame.size.height + 2;
12290 [stanbyBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12291 [[commandPanel contentView] addSubview:stanbyBtn];
12293 [createBtn setTransparent: NO];
12294 [createBtn setEnabled: YES];
12295 plusBtnValue -= createBtn.frame.size.height + 2;
12296 [createBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12297 [[commandPanel contentView] addSubview:createBtn];
12299 [summonBtn setTransparent: NO];
12300 [summonBtn setEnabled: YES];
12301 plusBtnValue -= summonBtn.frame.size.height + 2;
12302 [summonBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12303 [[commandPanel contentView] addSubview:summonBtn];
12305 plusBtnValue -= statusBtn.frame.size.height + 2;
12306 [statusBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12307 [[commandPanel contentView] addSubview:statusBtn];
12309 plusBtnValue -= cancelBtn.frame.size.height + 2;
12310 [cancelBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12311 [[commandPanel contentView] addSubview:cancelBtn];
12314 else if(cIncludeCreateFlag && !cIncludeSummonFlag && MF[MFselectedRow+1].MS.buildAllowedFlag){
12315 plusBtnValue = 180;
12316 [commandPanel setFrame:NSMakeRect(menuPoint.x, menuPoint.y, 150, plusBtnValue) display:YES];
12318 plusBtnValue -= moveBtn.frame.size.height + 12;
12319 [moveBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12320 [[commandPanel contentView] addSubview:moveBtn];
12322 plusBtnValue -= attackBtn.frame.size.height + 2;
12323 [attackBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12324 [[commandPanel contentView] addSubview:attackBtn];
12326 plusBtnValue -= stanbyBtn.frame.size.height + 2;
12327 [stanbyBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12328 [[commandPanel contentView] addSubview:stanbyBtn];
12330 [createBtn setTransparent: NO];
12331 [createBtn setEnabled: YES];
12332 plusBtnValue -= createBtn.frame.size.height + 2;
12333 [createBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12334 [[commandPanel contentView] addSubview:createBtn];
12336 [summonBtn setTransparent: YES];
12337 [summonBtn setEnabled: NO];
12339 plusBtnValue -= statusBtn.frame.size.height + 2;
12340 [statusBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12341 [[commandPanel contentView] addSubview:statusBtn];
12343 plusBtnValue -= cancelBtn.frame.size.height + 2;
12344 [cancelBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12345 [[commandPanel contentView] addSubview:cancelBtn];
12348 }else if(cIncludeSummonFlag && !cIncludeCreateFlag && MF[MFselectedRow+1].MS.summonAllowedFlag){
12350 [commandPanel setFrame:NSMakeRect(menuPoint.x, menuPoint.y, 150, 210) display:YES];
12352 plusBtnValue = 180;
12353 [commandPanel setFrame:NSMakeRect(menuPoint.x, menuPoint.y, 150, plusBtnValue) display:YES];
12356 plusBtnValue -= moveBtn.frame.size.height + 12;
12357 [moveBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12358 [[commandPanel contentView] addSubview:moveBtn];
12360 plusBtnValue -= attackBtn.frame.size.height + 2;
12361 [attackBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12362 [[commandPanel contentView] addSubview:attackBtn];
12364 plusBtnValue -= stanbyBtn.frame.size.height + 2;
12365 [stanbyBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12366 [[commandPanel contentView] addSubview:stanbyBtn];
12368 [createBtn setTransparent: YES];
12369 [createBtn setEnabled: NO];
12371 [summonBtn setTransparent: NO];
12372 [summonBtn setEnabled: YES];
12373 plusBtnValue -= summonBtn.frame.size.height + 2;
12374 [summonBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12375 [[commandPanel contentView] addSubview:summonBtn];
12377 plusBtnValue -= statusBtn.frame.size.height + 2;
12378 [statusBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12379 [[commandPanel contentView] addSubview:statusBtn];
12381 plusBtnValue -= cancelBtn.frame.size.height + 2;
12382 [cancelBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12383 [[commandPanel contentView] addSubview:cancelBtn];
12386 plusBtnValue = 160;
12387 [commandPanel setFrame:NSMakeRect(menuPoint.x, menuPoint.y, 150, plusBtnValue) display:YES];
12389 plusBtnValue -= moveBtn.frame.size.height + 12;
12390 [moveBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12391 [[commandPanel contentView] addSubview:moveBtn];
12393 plusBtnValue -= attackBtn.frame.size.height + 2;
12394 [attackBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12395 [[commandPanel contentView] addSubview:attackBtn];
12397 plusBtnValue -= stanbyBtn.frame.size.height + 2;
12398 [stanbyBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12399 [[commandPanel contentView] addSubview:stanbyBtn];
12401 [createBtn setTransparent: YES];
12402 [createBtn setEnabled: NO];
12404 [summonBtn setTransparent: YES];
12405 [summonBtn setEnabled: NO];
12407 plusBtnValue -= statusBtn.frame.size.height + 2;
12408 [statusBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12409 [[commandPanel contentView] addSubview:statusBtn];
12411 plusBtnValue -= cancelBtn.frame.size.height + 2;
12412 [cancelBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12413 [[commandPanel contentView] addSubview:cancelBtn];
12419 -(void)openMessage{
12420 [IVimage setHidden:NO];
12421 [TFname setHidden:NO];
12422 [TFmessage setHidden:NO];
12423 [BXname setHidden:NO];
12424 [BXmessage setHidden:NO];
12425 [IVimage setEnabled:YES];
12426 [TFname setEnabled:YES];
12427 [TFmessage setEnabled:YES];
12430 -(void)closeMessage{
12431 [IVimage setHidden:YES];
12432 [TFname setHidden:YES];
12433 [TFmessage setHidden:YES];
12434 [BXname setHidden:YES];
12435 [BXmessage setHidden:YES];
12436 [IVimage setEnabled:NO];
12437 [TFname setEnabled:NO];
12438 [TFmessage setEnabled:NO];
12441 -(MAPSCRIPT0*)setMessage:(MAPSCRIPT0*)MS0{
12444 if(!messageDialog){
12445 [self closeMessage];
12446 damnitFixFlag = true;
12447 }else if(MS0->S1.str){
12448 [self openMessage];
12449 damnitFixFlag = false;
12450 NSString *string = @"";
12452 string = [MS0->S1.str retain];
12454 MS0->endFlag = true;
12455 textInstantBugFixFlag = false;
12456 messageEndFlag = false;
12457 messageDialog = false;
12461 if(!initStringNum){
12464 initStringNum = true;
12465 textInstantBugFixFlag = true;
12468 msgMax = (int)[string length];
12474 initImgFlag = true;
12477 [IVimage setImage:MS0->S1.img];
12478 if(MS0->S1.name) [TFname setStringValue:MS0->S1.name];
12479 else [TFname setStringValue:@""];
12481 if(msgCnt <= msgMax){
12483 [TFmessage setStringValue:[string substringToIndex:msgCnt]];
12486 else [TFmessage setStringValue:@""];
12491 if(messageEndFlag){
12492 MS0->endFlag = true;
12493 messageEndFlag = false;
12494 initStringNum = false;
12495 messageDialog = false;
12496 MS0->succeessfulFlag = true;
12498 textInstantBugFixFlag = false;
12499 [self setMessage:NULL];
12504 MS0->endFlag = true;
12505 messageEndFlag = false;
12506 messageDialog = false;
12507 initStringNum = false;
12516 NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
12517 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
12519 NSString *path = @"Map/";
12520 NSString *fileData = nil;
12521 NSArray *fileDataArray;
12523 path = [path stringByAppendingFormat:@"%@" ,MF[MFselectedRow+1].fileName];
12525 fileData = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
12527 fileDataArray = [fileData componentsSeparatedByString:@"\n"];
12529 MAPSCRIPT0 *MS00 = MF[MFselectedRow+1].MS.D->P;
12530 MAPSCRIPT0 *m00Top = MS00;
12531 for (int i = 0; i < [fileDataArray count]; i++) {
12533 NSRange range = [[fileDataArray objectAtIndex:i] rangeOfString:@"◆"];
12534 if(range.location != NSNotFound){
12536 NSArray *array2 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
12537 if(MS00->type == 1)
12539 MS00->S1.iName = [[array2 objectAtIndex:2] retain];
12541 for(int k = 0; k < UCN;k++){
12543 if([MS00->S1.iName isEqualToString:UC[k].nameClass]){
12544 MS00->S1.img = [UC[k].imgb retain];
12560 -(MAPSCRIPT0*)setSwitch:(MAPSCRIPT0*)MS0{
12563 for(int i = 0;*(MS0->switch1 + i) >0;i++){
12564 Suicchi[*(MS0->switch1+i)] = true;
12568 for(int i = 0;*(MS0->switch2 + i) >0;i++){
12569 Suicchi[*(MS0->switch2+i)] = false;
12573 MS0->succeessfulFlag = true;
12574 MS0->endFlag = true;
12578 -(MAPSCRIPT0*)setBranch:(MAPSCRIPT0*)MS0{
12580 MAPSCRIPT0 *CRMS0 = MS0;
12581 bool branchEndFlag = false;
12582 bool branchSuceedFlag = false;
12583 bool trueFlag = true;
12591 MS0->endFlag = true;
12597 if(MS0->S4.suicchiFlag){
12598 if(MS0->S4.suicchiONOFF == 0){
12599 if(MS0->S4.suicchi)
12600 for (int i = 0;*(MS0->S4.suicchi + i);i++) {
12601 if(!Suicchi[*(MS0->S4.suicchi + i)]){
12606 if(MS0->S4.suicchi)
12607 for (int i = 0;*(MS0->S4.suicchi + i);i++) {
12608 if(Suicchi[*(MS0->S4.suicchi + i)]){
12615 if(MS0->S4.hensuFlag){
12617 if(MS0->S4.teisuFlag){
12618 if(MS0->S4.hensuType == 0){
12619 if([Hensuu[MS0->S4.hensu1] intValue] == MS0->S4.teisuValue){
12624 }else if(MS0->S4.hensuType == 1){
12625 if([Hensuu[MS0->S4.hensu1] intValue] >= MS0->S4.teisuValue){
12630 }else if(MS0->S4.hensuType == 2){
12631 if([Hensuu[MS0->S4.hensu1] intValue] <= MS0->S4.teisuValue){
12636 }else if(MS0->S4.hensuType == 3){
12637 if([Hensuu[MS0->S4.hensu1] intValue] > MS0->S4.teisuValue){
12642 }else if(MS0->S4.hensuType == 4){
12643 if([Hensuu[MS0->S4.hensu1] intValue] < MS0->S4.teisuValue){
12648 }else if(MS0->S4.hensuType == 5){
12649 if([Hensuu[MS0->S4.hensu1] intValue] != MS0->S4.teisuValue){
12656 }if(MS0->S4.hensu2flag){
12657 if(MS0->S4.hensuType == 0){
12658 if([Hensuu[MS0->S4.hensu1] isEqualToString:Hensuu[MS0->S4.hensu2]]){
12663 }else if(MS0->S4.hensuType == 1){
12664 if([Hensuu[MS0->S4.hensu1] intValue] >= [Hensuu[MS0->S4.hensu2] intValue]){
12669 }else if(MS0->S4.hensuType == 2){
12670 if([Hensuu[MS0->S4.hensu1] intValue] <= [Hensuu[MS0->S4.hensu2] intValue]){
12675 }else if(MS0->S4.hensuType == 3){
12676 if([Hensuu[MS0->S4.hensu1] intValue] > [Hensuu[MS0->S4.hensu2] intValue]){
12681 }else if(MS0->S4.hensuType == 4){
12682 if([Hensuu[MS0->S4.hensu1] intValue] < [Hensuu[MS0->S4.hensu2] intValue]){
12687 }else if(MS0->S4.hensuType == 5){
12688 if(![Hensuu[MS0->S4.hensu1] isEqualToString:Hensuu[MS0->S4.hensu2]]){
12697 if(MS0->S4.timerFlag){
12699 if(MS0->S4.timerType == 0){
12700 if(MS0->S4.timerMin <= cntTimerMin){
12702 }else if(MS0->S4.timerSec <= cntTimerSec && MS0->S4.timerMin <= cntTimerMin){
12711 if(MS0->S4.timerMin >= cntTimerMin){
12713 }else if(MS0->S4.timerSec >= cntTimerSec && MS0->S4.timerMin >= cntTimerMin){
12724 if(MS0->S4.unitNumFlag){
12734 int objeSCSunitCnt = 0;
12736 if(MS0->S4.objeFlag){
12738 UNIT2 *objeT = MS0->S4.obje;
12740 while (MS0->S4.obje) {
12745 static bool okflag = true;
12747 for (int i = 0;i < 1002;i++) {
12748 for (int k = 0;k < 1002;k++) {
12755 if(U2->ix == MS0->S4.obje->x && U2->iy == MS0->S4.obje->y){
12766 [self checkPlaceHani:MS0->S4.objeRange+1 tX:U2->y tY:U2->x aMap:objeR u:U scsCnt:&objeSCSunitCnt];
12770 for(int bx=1;bx<=chipWidth;bx++){
12771 for(int by=1;by<=chipHeight;by++){
12772 if(objeR[bx][by] != 999 && objeR[bx][by] > 0){
12774 if(objeR[U->x][U->y] > 0){
12776 if(Unum < Cnum) goto omfgUnitOver2;
12790 if(UP->x == U->x && UP->y == U->y){
12803 if(!UP) UP = calloc(1, sizeof(UNITPOINT));
12805 while(UP->next) UP = UP->next;
12810 UP->next = calloc(1, sizeof(UNITPOINT));
12824 //NSLog(@"%@, %d, %d", U->C.name, objeSCSunitCnt, objeR[0][0]);
12829 MS0->S4.obje = MS0->S4.obje->next;
12831 MS0->S4.obje = objeT;
12835 if(MS0->S4.buildFlag){
12836 if(Uselected->x == MS0->S4.build->x && Uselected->y == MS0->S4.build->y){
12840 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1 &&
12841 BC[buildNum[Uselected->x][Uselected->y]].nameID == MS0->S4.build->C->nameID &&
12842 Uselected->x == MS0->S4.build->x && Uselected->y == MS0->S4.build->y){
12851 if(MS0->S4.team == 0){
12852 if(!MS0->S4.objeFlag && !MS0->S4.placeFlag){
12855 if(U->team == 0 && !U->dead)
12860 if(MS0->S4.unitType == 0){
12861 if(MS0->S4.objeFlag || MS0->S4.placeFlag) team0num = MS0->S4.unitNum;
12863 if((MS0->S4.unitNum == team0num) && (MS0->S4.unitNum == objeSCSunitCnt)){
12865 }else if((MS0->S4.unitNum == team0num) && !MS0->S4.objeFlag){
12870 }else if(MS0->S4.unitType == 1){
12871 if(MS0->S4.objeFlag || MS0->S4.placeFlag) team0num = 65000;
12873 if((MS0->S4.unitNum <= team0num) && (MS0->S4.unitNum <= objeSCSunitCnt)){
12875 }else if((MS0->S4.unitNum <= team0num) && !MS0->S4.objeFlag){
12880 }else if(MS0->S4.unitType == 2){
12881 if((MS0->S4.unitNum >= team0num) && (MS0->S4.unitNum >= objeSCSunitCnt)){
12883 }else if((MS0->S4.unitNum >= team0num) && !MS0->S4.objeFlag){
12891 }else if(MS0->S4.team == 1){
12892 if(!MS0->S4.objeFlag && !MS0->S4.placeFlag){
12895 if(U->team == 1 && !U->dead)
12900 if(MS0->S4.unitType == 0){
12901 if(MS0->S4.objeFlag || MS0->S4.placeFlag) team1num = MS0->S4.unitNum;
12903 if((MS0->S4.unitNum == team1num) && (MS0->S4.unitNum == objeSCSunitCnt)){
12905 }else if((MS0->S4.unitNum == team1num) && !MS0->S4.objeFlag){
12910 }else if(MS0->S4.unitType == 1){
12911 if(MS0->S4.objeFlag || MS0->S4.placeFlag) team1num = 65000;
12912 if((MS0->S4.unitNum <= team1num) && (MS0->S4.unitNum <= objeSCSunitCnt)){
12914 }else if((MS0->S4.unitNum <= team1num) && !MS0->S4.objeFlag){
12919 }else if(MS0->S4.unitType == 2){
12921 if((MS0->S4.unitNum >= team1num) && (MS0->S4.unitNum >= objeSCSunitCnt)){
12923 }else if((MS0->S4.unitNum >= team1num) && !MS0->S4.objeFlag){
12929 }else if(MS0->S4.team == 2){
12930 if(!MS0->S4.objeFlag && !MS0->S4.placeFlag){
12933 if(U->team == 2 && !U->dead)
12938 if(MS0->S4.unitType == 0){
12939 if(MS0->S4.objeFlag || MS0->S4.placeFlag) team2num = MS0->S4.unitNum;
12941 if((MS0->S4.unitNum == team2num) && (MS0->S4.unitNum == objeSCSunitCnt)){
12943 }else if((MS0->S4.unitNum == team2num) && !MS0->S4.objeFlag){
12948 }else if(MS0->S4.unitType == 1){
12949 if(MS0->S4.objeFlag || MS0->S4.placeFlag) team2num = 65000;
12951 if((MS0->S4.unitNum <= team2num) && (MS0->S4.unitNum <= objeSCSunitCnt)){
12953 }else if((MS0->S4.unitNum <= team2num) && !MS0->S4.objeFlag){
12958 }else if(MS0->S4.unitType == 2){
12959 if((MS0->S4.unitNum >= team2num) && (MS0->S4.unitNum >= objeSCSunitCnt)){
12961 }else if((MS0->S4.unitNum >= team2num) && !MS0->S4.objeFlag){
12973 if(MS0->S4.unitTypeFlag && MS0->S4.unitNumFlag){
12974 UNIT2 *sjt = MS0->S4.subj;
12975 UNIT *chosen = NULL;
12976 UNIT *chosenT = NULL;
12979 while(MS0->S4.subj){
12982 if(MS0->S4.subj->x == U->ix && MS0->S4.subj->y == U->iy && U->iz == 1){
12984 chosen->next = calloc(1, sizeof(UNIT));
12989 chosen = chosen->next;
12992 chosen = calloc(1, sizeof(UNIT));
12996 chosen->C.name = U->C.name;
13007 MS0->S4.subj = MS0->S4.subj->next;
13008 }MS0->S4.subj = sjt;
13011 int objeSCSunitCnt = 0;
13019 chosen = chosen->next;
13022 if(MS0->S4.unitTypeFlag && MS0->S4.objeFlag){
13024 UNIT2 *objeT = MS0->S4.obje;
13026 while (MS0->S4.obje) {
13031 static bool okflag = true;
13033 for (int i = 0;i < 1002;i++) {
13034 for (int k = 0;k < 1002;k++) {
13041 if(U2->ix == MS0->S4.obje->x && U2->iy == MS0->S4.obje->y){
13053 [self checkPlaceHani:MS0->S4.objeRange+1 tX:U2->y tY:U2->x aMap:objeR u:chosen scsCnt:&objeSCSunitCnt];
13057 for(int bx=1;bx<=chipWidth;bx++){
13058 for(int by=1;by<=chipHeight;by++){
13059 if(objeR[bx][by] != 999 && objeR[bx][by] > 0){
13061 if(objeR[chosen->x][chosen->y] > 0){
13063 if(Unum < Cnum) goto omfgUnitOver3;
13077 if(UP->x == chosen->x && UP->y == chosen->y){
13090 if(!UP) UP = calloc(1, sizeof(UNITPOINT));
13092 while(UP->next) UP = UP->next;
13097 UP->next = calloc(1, sizeof(UNITPOINT));
13111 //NSLog(@"%@, %d, %d", chosen->C.name, objeSCSunitCnt, objeR[0][0]);
13113 chosen = chosen->next;
13116 MS0->S4.obje = MS0->S4.obje->next;
13118 MS0->S4.obje = objeT;
13119 }else if(MS0->S4.objeFlag){
13121 UNIT2 *objeT = MS0->S4.obje;
13123 while (MS0->S4.obje) {
13128 static bool okflag = true;
13130 if(U->team != MS0->S4.team){
13134 for (int i = 0;i < 1002;i++) {
13135 for (int k = 0;k < 1002;k++) {
13142 if(U2->ix == MS0->S4.obje->x && U2->iy == MS0->S4.obje->y){
13153 [self checkPlaceHani:MS0->S4.objeRange+1 tX:U2->y tY:U2->x aMap:objeR u:U scsCnt:&objeSCSunitCnt];
13157 for(int bx=1;bx<=chipWidth;bx++){
13158 for(int by=1;by<=chipHeight;by++){
13159 if(objeR[bx][by] != 999 && objeR[bx][by] > 0){
13161 if(objeR[chosen->x][chosen->y] > 0){
13163 if(Unum < Cnum) goto omfgUnitOver30;
13177 if(UP->x == chosen->x && UP->y == chosen->y){
13190 if(!UP) UP = calloc(1, sizeof(UNITPOINT));
13192 while(UP->next) UP = UP->next;
13197 UP->next = calloc(1, sizeof(UNITPOINT));
13211 //NSLog(@"%@, %d, %d", chosen->C.name, objeSCSunitCnt, objeR[0][0]);
13213 chosen = chosen->next;
13216 MS0->S4.obje = MS0->S4.obje->next;
13218 MS0->S4.obje = objeT;
13226 if(MS0->S4.team == 0){
13227 if(!MS0->S4.unitTypeFlag){
13230 if(U->team == 0 && !U->dead)
13235 if(MS0->S4.unitType == 0){
13236 if(MS0->S4.unitTypeFlag) team0num = MS0->S4.unitNum;
13238 if((MS0->S4.unitNum == team0num) && (MS0->S4.unitNum == cntUnit)
13239 && (MS0->S4.unitNum == objeSCSunitCnt)){
13241 }else if((MS0->S4.unitNum == team0num) && (MS0->S4.unitNum == cntUnit) && !MS0->S4.objeFlag){
13246 }else if(MS0->S4.unitType == 1){
13247 if(MS0->S4.unitTypeFlag) team0num = 65000;
13249 if((MS0->S4.unitNum <= team0num) && (MS0->S4.unitNum <= cntUnit)
13250 && (MS0->S4.unitNum <= objeSCSunitCnt)){
13252 }else if((MS0->S4.unitNum <= team0num) && (MS0->S4.unitNum <= cntUnit) && !MS0->S4.objeFlag){
13257 }else if(MS0->S4.unitType == 2){
13258 if((MS0->S4.unitNum >= team0num) && (MS0->S4.unitNum >= cntUnit)
13259 && (MS0->S4.unitNum >= objeSCSunitCnt)){
13261 }else if((MS0->S4.unitNum >= team0num) && (MS0->S4.unitNum >= cntUnit) && !MS0->S4.objeFlag){
13269 }else if(MS0->S4.team == 1){
13270 if(!MS0->S4.unitTypeFlag){
13273 if(U->team == 1 && !U->dead)
13278 if(MS0->S4.unitType == 0){
13279 if(MS0->S4.unitTypeFlag) team1num = MS0->S4.unitNum;
13281 if((MS0->S4.unitNum == team1num) && (MS0->S4.unitNum == cntUnit)
13282 && (MS0->S4.unitNum == objeSCSunitCnt)){
13284 }else if((MS0->S4.unitNum == team1num) && (MS0->S4.unitNum == cntUnit) && !MS0->S4.objeFlag){
13289 }else if(MS0->S4.unitType == 1){
13290 if(MS0->S4.unitTypeFlag) team1num = 65000;
13292 if((MS0->S4.unitNum <= team1num) && (MS0->S4.unitNum <= cntUnit)
13293 && (MS0->S4.unitNum <= objeSCSunitCnt)){
13295 }else if((MS0->S4.unitNum <= team1num) && (MS0->S4.unitNum <= cntUnit) && !MS0->S4.objeFlag){
13300 }else if(MS0->S4.unitType == 2){
13301 if((MS0->S4.unitNum >= team1num) && (MS0->S4.unitNum >= cntUnit)
13302 && (MS0->S4.unitNum >= objeSCSunitCnt)){
13304 }else if((MS0->S4.unitNum >= team1num) && (MS0->S4.unitNum >= cntUnit) && !MS0->S4.objeFlag){
13310 }else if(MS0->S4.team == 2){
13311 if(!MS0->S4.unitTypeFlag){
13314 if(U->team == 2 && !U->dead)
13319 if(MS0->S4.unitType == 0){
13320 if(MS0->S4.unitTypeFlag) team2num = MS0->S4.unitNum;
13322 if((MS0->S4.unitNum == team2num) && (MS0->S4.unitNum == cntUnit)
13323 && (MS0->S4.unitNum == objeSCSunitCnt)){
13325 }else if((MS0->S4.unitNum == team2num) && (MS0->S4.unitNum == cntUnit) && !MS0->S4.objeFlag){
13330 }else if(MS0->S4.unitType == 1){
13331 if(MS0->S4.unitTypeFlag) team2num = 65000;
13333 if((MS0->S4.unitNum <= team2num) && (MS0->S4.unitNum <= cntUnit)
13334 && (MS0->S4.unitNum <= objeSCSunitCnt)){
13336 }else if((MS0->S4.unitNum <= team2num) && (MS0->S4.unitNum <= cntUnit) && !MS0->S4.objeFlag){
13341 }else if(MS0->S4.unitType == 2){
13342 if((MS0->S4.unitNum >= team2num) && (MS0->S4.unitNum >= cntUnit)
13343 && (MS0->S4.unitNum >= objeSCSunitCnt)){
13345 }else if((MS0->S4.unitNum >= team2num) && (MS0->S4.unitNum >= cntUnit) && !MS0->S4.objeFlag){
13363 if(MS0->S4.placeFlag && MS0->S4.unitNumFlag){
13373 UNIT2 *sjt = MS0->S4.subj;
13374 UNIT *chosen = NULL;
13375 UNIT *chosenT = NULL;
13378 if(MS0->S4.unitTypeFlag){
13379 while(MS0->S4.subj){
13382 if(MS0->S4.subj->x == U->ix && MS0->S4.subj->y == U->iy && U->iz == 1){
13384 chosen->next = calloc(1, sizeof(UNIT));
13389 chosen = chosen->next;
13392 chosen = calloc(1, sizeof(UNIT));
13396 chosen->C.name = U->C.name;
13407 MS0->S4.subj = MS0->S4.subj->next;
13408 }MS0->S4.subj = sjt;
13416 chosen = chosen->next;
13422 PLACEMENT *wpt = MS0->S4.wayp;
13424 int waypSCScnt = 0;
13425 bool waypSCS = false;
13426 int waypSCSunitCnt = 0;
13429 if(!MS0->S4.unitTypeFlag){
13431 while (MS0->S4.wayp) {
13437 if(MS0->S4.wayp->type == 0){
13440 if(U->team != MS0->S4.team){
13444 if(MS0->S4.wayp->x == U->x && MS0->S4.wayp->y == U->y){
13452 }else if(MS0->S4.wayp->type == 1){
13454 static bool okflag = true;
13456 if(U->team != MS0->S4.team){
13460 for (int i = 0;i < 1002;i++) {
13461 for (int k = 0;k < 1002;k++) {
13465 [self checkPlaceHani:MS0->S4.wayp->z+1 tX:MS0->S4.wayp->y tY:MS0->S4.wayp->x aMap:waypR u:U scsCnt:&waypSCSunitCnt];
13469 for(int bx=1;bx<=chipWidth;bx++){
13470 for(int by=1;by<=chipHeight;by++){
13471 if(waypR[bx][by] != 999 && waypR[bx][by] > 0){
13473 if(waypR[U->x][U->y] > 0){
13475 if(Unum < Cnum) goto omfgUnitOver;
13489 if(UP->x == U->x && UP->y == U->y){
13502 if(!UP) UP = calloc(1, sizeof(UNITPOINT));
13504 while(UP->next) UP = UP->next;
13509 UP->next = calloc(1, sizeof(UNITPOINT));
13522 // NSLog(@"%d", waypSCSunitCnt);
13530 }else if(MS0->S4.wayp->type == 2){
13532 waypSCSunitCnt = 0;
13533 static bool okflag = true;
13535 if(U->team != MS0->S4.team){
13539 if((MS0->S4.wayp->x <= U->x) && (MS0->S4.wayp->x2 >= U->x) &&
13540 (MS0->S4.wayp->y <= U->y) && (MS0->S4.wayp->y2 >= U->y)){
13547 if(Unum < Cnum) goto omfgUnitOver;
13561 if(UP->x == U->x && UP->y == U->y){
13574 if(!UP) UP = calloc(1, sizeof(UNITPOINT));
13576 while(UP->next) UP = UP->next;
13581 UP->next = calloc(1, sizeof(UNITPOINT));
13597 MS0->S4.wayp = MS0->S4.wayp->next;
13598 }MS0->S4.wayp = wpt;
13599 // NSLog(@"%d", waypSCSunitCnt);
13601 if(waypSCScnt >= waypCnt)
13604 }else if(MS0->S4.unitTypeFlag){
13606 while (MS0->S4.wayp) {
13612 if(MS0->S4.wayp->type == 0){
13615 if(MS0->S4.wayp->x == chosen->x && MS0->S4.wayp->y == chosen->y){
13620 chosen = chosen->next;
13623 }else if(MS0->S4.wayp->type == 1){
13625 static bool okflag = true;
13627 for (int i = 0;i < 1002;i++) {
13628 for (int k = 0;k < 1002;k++) {
13632 [self checkPlaceHani:MS0->S4.wayp->z+1 tX:MS0->S4.wayp->y tY:MS0->S4.wayp->x aMap:waypR u:chosen scsCnt:&waypSCSunitCnt];
13636 for(int bx=1;bx<=chipWidth;bx++){
13637 for(int by=1;by<=chipHeight;by++){
13638 if(waypR[bx][by] != 999 && waypR[bx][by] > 0){
13640 if(waypR[chosen->x][chosen->y] > 0){
13642 if(Unum < Cnum) goto omfgUnitOver5;
13656 if(UP->x == chosen->x && UP->y == chosen->y){
13669 if(!UP) UP = calloc(1, sizeof(UNITPOINT));
13671 while(UP->next) UP = UP->next;
13676 UP->next = calloc(1, sizeof(UNITPOINT));
13690 // NSLog(@"%d", waypSCSunitCnt);
13692 chosen = chosen->next;
13698 }else if(MS0->S4.wayp->type == 2){
13700 waypSCSunitCnt = 0;
13701 static bool okflag = true;
13703 if((MS0->S4.wayp->x <= chosen->x) && (MS0->S4.wayp->x2 >= chosen->x) &&
13704 (MS0->S4.wayp->y <= chosen->y) && (MS0->S4.wayp->y2 >= chosen->y)){
13711 if(Unum < Cnum) goto omfgUnitOver;
13725 if(UP->x == chosen->x && UP->y == chosen->y){
13738 if(!UP) UP = calloc(1, sizeof(UNITPOINT));
13740 while(UP->next) UP = UP->next;
13745 UP->next = calloc(1, sizeof(UNITPOINT));
13756 chosen = chosen->next;
13761 MS0->S4.wayp = MS0->S4.wayp->next;
13762 }MS0->S4.wayp = wpt;
13763 // NSLog(@"%d", waypSCSunitCnt);
13765 if(waypSCScnt >= waypCnt)
13777 if(MS0->S4.team == 0){
13778 if(!MS0->S4.placeFlag){
13781 if(U->team == 0 && !U->dead)
13786 if(MS0->S4.unitType == 0){
13787 if(MS0->S4.placeFlag) team0num = MS0->S4.unitNum;
13789 if((MS0->S4.unitNum == team0num) && (MS0->S4.unitNum == waypSCSunitCnt)){
13794 }else if(MS0->S4.unitType == 1){
13795 if(MS0->S4.placeFlag) team0num = 65000;
13797 if((MS0->S4.unitNum <= team0num) && (MS0->S4.unitNum <= waypSCSunitCnt)){
13802 }else if(MS0->S4.unitType == 2){
13803 if((MS0->S4.unitNum >= team0num) && (MS0->S4.unitNum >= waypSCSunitCnt)){
13811 }else if(MS0->S4.team == 1){
13812 if(!MS0->S4.placeFlag){
13815 if(U->team == 1 && !U->dead)
13820 if(MS0->S4.unitType == 0){
13821 if(MS0->S4.placeFlag) team1num = MS0->S4.unitNum;
13823 if((MS0->S4.unitNum == team1num) && (MS0->S4.unitNum = waypSCSunitCnt)){
13828 }else if(MS0->S4.unitType == 1){
13829 if(MS0->S4.placeFlag) team1num = 65000;
13831 if((MS0->S4.unitNum <= team1num) && (MS0->S4.unitNum <= waypSCSunitCnt)){
13836 }else if(MS0->S4.unitType == 2){
13837 if((MS0->S4.unitNum >= team1num) && (MS0->S4.unitNum >= waypSCSunitCnt)){
13843 }else if(MS0->S4.team == 2){
13844 if(!MS0->S4.placeFlag){
13847 if(U->team == 2 && !U->dead)
13852 if(MS0->S4.unitType == 0){
13853 if(MS0->S4.placeFlag) team2num = MS0->S4.unitNum;
13855 if((MS0->S4.unitNum == team2num) && (MS0->S4.unitNum == waypSCSunitCnt)){
13860 }else if(MS0->S4.unitType == 1){
13861 if(MS0->S4.placeFlag) team2num = 65000;
13863 if((MS0->S4.unitNum <= team2num) && (MS0->S4.unitNum <= waypSCSunitCnt)){
13868 }else if(MS0->S4.unitType == 2){
13869 if((MS0->S4.unitNum >= team2num) && (MS0->S4.unitNum >= waypSCSunitCnt)){
13880 if(MS0->S4.unitCMDflag){
13882 UNIT2 *sjt = MS0->S4.subj;
13883 UNIT *chosen = NULL;
13884 UNIT *chosenT = NULL;
13887 while(MS0->S4.subj){
13890 if(MS0->S4.subj->x == U->ix && MS0->S4.subj->y == U->iy && U->iz == 1){
13892 chosen->next = calloc(1, sizeof(UNIT));
13897 chosen = chosen->next;
13900 chosen = calloc(1, sizeof(UNIT));
13904 chosen->C.name = U->C.name;
13915 MS0->S4.subj = MS0->S4.subj->next;
13916 }MS0->S4.subj = sjt;
13919 int objeSCSunitCnt = 0;
13927 chosen = chosen->next;
13930 if(MS0->S4.unitTypeFlag && MS0->S4.objeFlag){
13932 UNIT2 *objeT = MS0->S4.obje;
13934 while (MS0->S4.obje) {
13939 static bool okflag = true;
13941 for (int i = 0;i < 1002;i++) {
13942 for (int k = 0;k < 1002;k++) {
13949 if(U2->ix == MS0->S4.obje->x && U2->iy == MS0->S4.obje->y){
13960 [self checkPlaceHani:MS0->S4.objeRange+1 tX:U2->y tY:U2->x aMap:objeR u:chosen scsCnt:&objeSCSunitCnt];
13964 for(int bx=1;bx<=chipWidth;bx++){
13965 for(int by=1;by<=chipHeight;by++){
13966 if(objeR[bx][by] != 999 && objeR[bx][by] > 0){
13968 if(objeR[chosen->x][chosen->y] > 0){
13970 if(Unum < Cnum) goto omfgUnitOver31;
13984 if(UP->x == chosen->x && UP->y == chosen->y){
13997 if(!UP) UP = calloc(1, sizeof(UNITPOINT));
13999 while(UP->next) UP = UP->next;
14004 UP->next = calloc(1, sizeof(UNITPOINT));
14018 //NSLog(@"%@, %d, %d", chosen->C.name, objeSCSunitCnt, objeR[0][0]);
14020 chosen = chosen->next;
14023 MS0->S4.obje = MS0->S4.obje->next;
14025 MS0->S4.obje = objeT;
14026 }else if(MS0->S4.objeFlag){
14028 UNIT2 *objeT = MS0->S4.obje;
14030 while (MS0->S4.obje) {
14035 static bool okflag = true;
14037 if(U->team != MS0->S4.team){
14041 for (int i = 0;i < 1002;i++) {
14042 for (int k = 0;k < 1002;k++) {
14049 if(U2->ix == MS0->S4.obje->x && U2->iy == MS0->S4.obje->y){
14060 [self checkPlaceHani:MS0->S4.objeRange+1 tX:U2->y tY:U2->x aMap:objeR u:U scsCnt:&objeSCSunitCnt];
14064 for(int bx=1;bx<=chipWidth;bx++){
14065 for(int by=1;by<=chipHeight;by++){
14066 if(objeR[bx][by] != 999 && objeR[bx][by] > 0){
14068 if(objeR[chosen->x][chosen->y] > 0){
14070 if(Unum < Cnum) goto omfgUnitOver32;
14084 if(UP->x == chosen->x && UP->y == chosen->y){
14097 if(!UP) UP = calloc(1, sizeof(UNITPOINT));
14099 while(UP->next) UP = UP->next;
14104 UP->next = calloc(1, sizeof(UNITPOINT));
14118 //NSLog(@"%@, %d, %d", chosen->C.name, objeSCSunitCnt, objeR[0][0]);
14120 chosen = chosen->next;
14123 MS0->S4.obje = MS0->S4.obje->next;
14125 MS0->S4.obje = objeT;
14129 if(MS0->S4.team == 0){
14131 if(!MS0->S4.subj && !MS0->S4.obje && !MS0->S4.build){
14133 if(MS0->S4.unitCMD == 0){
14134 if(pushStanbyFlag){
14139 }else if(MS0->S4.unitCMD == 1){
14141 battleSetUpIgnore = true;
14145 }else if(MS0->S4.unitCMD == 2){
14150 }else if(!MS0->S4.subj && !MS0->S4.obje && MS0->S4.build && Uselected){
14154 BUILD2 *bldt = MS0->S4.build;
14156 while(MS0->S4.build){
14157 if(Uselected->x == MS0->S4.build->x && Uselected->y == MS0->S4.build->y){
14159 if(MS0->S4.unitCMD == 0){
14160 if(pushStanbyFlag){
14165 }else if(MS0->S4.unitCMD == 1){
14167 battleSetUpIgnore = true;
14173 }else if(MS0->S4.unitCMD == 2){
14180 MS0->S4.build = MS0->S4.build->next;
14181 }MS0->S4.build = bldt;
14184 }else if(MS0->S4.subj && !MS0->S4.obje && Uselected){
14187 UNIT2 *sbjt = MS0->S4.subj;
14189 while(MS0->S4.subj){
14190 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1){
14192 if(MS0->S4.unitCMD == 0){
14193 if(pushStanbyFlag){
14198 }else if(MS0->S4.unitCMD == 1){
14200 battleSetUpIgnore = true;
14206 }else if(MS0->S4.unitCMD == 2){
14214 MS0->S4.subj = MS0->S4.subj->next;
14215 }MS0->S4.subj = sbjt;
14219 else if(MS0->S4.subj && MS0->S4.obje && Uselected){
14221 UNIT2 *sbjt = MS0->S4.subj;
14222 UNIT2 *objt = MS0->S4.obje;
14224 while(MS0->S4.subj){
14225 while(MS0->S4.obje){
14226 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1 &&
14227 Utarget->ix == MS0->S4.obje->x && Utarget->iy == MS0->S4.obje->y && Utarget->iz == 1){
14229 if(MS0->S4.unitCMD == 0){
14231 if(MS0->S4.unitType == 0){
14232 if(objeSCSunitCnt == MS0->S4.unitNum){
14234 if(pushStanbyFlag){
14241 }else if(MS0->S4.unitType == 1){
14242 if(objeSCSunitCnt >= MS0->S4.unitNum){
14244 if(pushStanbyFlag){
14251 }else if(MS0->S4.unitType == 2){
14252 if(objeSCSunitCnt <= MS0->S4.unitNum){
14254 if(pushStanbyFlag){
14262 }else if(MS0->S4.unitCMD == 1){
14264 if(MS0->S4.unitType == 0){
14265 if(objeSCSunitCnt == MS0->S4.unitNum){
14268 battleSetUpIgnore = true;
14274 }else if(MS0->S4.unitType == 1){
14275 if(objeSCSunitCnt >= MS0->S4.unitNum){
14278 battleSetUpIgnore = true;
14284 }else if(MS0->S4.unitType == 2){
14285 if(objeSCSunitCnt <= MS0->S4.unitNum){
14288 battleSetUpIgnore = true;
14295 }else if(MS0->S4.unitCMD == 2 && objeSCSunitCnt > 0){
14307 MS0->S4.obje = MS0->S4.obje->next;
14308 }MS0->S4.obje = objt;
14309 MS0->S4.subj = MS0->S4.subj->next;
14310 }MS0->S4.subj = sbjt;
14312 }if(MS0->S4.subj && MS0->S4.build && Uselected){
14315 UNIT2 *sbjt = MS0->S4.subj;
14316 BUILD2 *bldt = MS0->S4.build;
14318 while(MS0->S4.subj){
14319 while(MS0->S4.build){
14320 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1 &&
14321 BC[buildNum[Uselected->x][Uselected->y]].nameID == MS0->S4.build->C->nameID &&
14322 Uselected->x == MS0->S4.build->x && Uselected->y == MS0->S4.build->y){
14324 if(MS0->S4.unitCMD == 0){
14325 if(pushStanbyFlag){
14330 }else if(MS0->S4.unitCMD == 1){
14332 battleSetUpIgnore = true;
14338 }else if(MS0->S4.unitCMD == 2){
14347 MS0->S4.build = MS0->S4.build->next;
14348 }MS0->S4.build = bldt;
14350 MS0->S4.subj = MS0->S4.subj->next;
14352 MS0->S4.subj = sbjt;
14355 }else if(MS0->S4.team == 1){
14356 if(!MS0->S4.subj && !MS0->S4.obje && !MS0->S4.build){
14358 if(MS0->S4.unitCMD == 0){
14359 if(pushStanbyFlag){
14364 }else if(MS0->S4.unitCMD == 1){
14366 battleSetUpIgnore = true;
14370 }else if(MS0->S4.unitCMD == 2){
14375 }else if(!MS0->S4.subj && !MS0->S4.obje && MS0->S4.build && Uselected){
14379 BUILD2 *bldt = MS0->S4.build;
14380 while(MS0->S4.build){
14381 if(Uselected->x == MS0->S4.build->x && Uselected->y == MS0->S4.build->y){
14383 if(MS0->S4.unitCMD == 0){
14384 if(pushStanbyFlag){
14389 }else if(MS0->S4.unitCMD == 1){
14391 battleSetUpIgnore = true;
14397 }else if(MS0->S4.unitCMD == 2){
14404 MS0->S4.build = MS0->S4.build->next;
14405 }MS0->S4.build = bldt;
14408 }else if(MS0->S4.subj && !MS0->S4.obje && Uselected){
14412 UNIT2 *sbjt = MS0->S4.subj;
14414 while(MS0->S4.subj){
14415 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1){
14417 if(MS0->S4.unitCMD == 0){
14418 if(pushStanbyFlag){
14423 }else if(MS0->S4.unitCMD == 1){
14425 battleSetUpIgnore = true;
14431 }else if(MS0->S4.unitCMD == 2){
14439 MS0->S4.subj = MS0->S4.subj->next;
14440 }MS0->S4.subj = sbjt;
14442 }else if(MS0->S4.subj && MS0->S4.obje && Uselected){
14444 UNIT2 *sbjt = MS0->S4.subj;
14445 UNIT2 *objt = MS0->S4.obje;
14447 while(MS0->S4.subj){
14448 while(MS0->S4.obje){
14449 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1 &&
14450 Utarget->ix == MS0->S4.obje->x && Utarget->iy == MS0->S4.obje->y && Utarget->iz == 1){
14452 if(MS0->S4.unitCMD == 0){
14454 if(MS0->S4.unitType == 0){
14455 if(objeSCSunitCnt == MS0->S4.unitNum){
14457 if(pushStanbyFlag){
14464 }else if(MS0->S4.unitType == 1){
14465 if(objeSCSunitCnt >= MS0->S4.unitNum){
14467 if(pushStanbyFlag){
14474 }else if(MS0->S4.unitType == 2){
14475 if(objeSCSunitCnt <= MS0->S4.unitNum){
14477 if(pushStanbyFlag){
14485 }else if(MS0->S4.unitCMD == 1){
14487 if(MS0->S4.unitType == 0){
14488 if(objeSCSunitCnt == MS0->S4.unitNum){
14491 battleSetUpIgnore = true;
14497 }else if(MS0->S4.unitType == 1){
14498 if(objeSCSunitCnt >= MS0->S4.unitNum){
14501 battleSetUpIgnore = true;
14507 }else if(MS0->S4.unitType == 2){
14508 if(objeSCSunitCnt <= MS0->S4.unitNum){
14511 battleSetUpIgnore = true;
14518 }else if(MS0->S4.unitCMD == 2 && objeSCSunitCnt > 0){
14531 MS0->S4.obje = MS0->S4.obje->next;
14532 }MS0->S4.obje = objt;
14533 MS0->S4.subj = MS0->S4.subj->next;
14534 }MS0->S4.subj = sbjt;
14536 }if(MS0->S4.subj && MS0->S4.build && Uselected){
14538 UNIT2 *sbjt = MS0->S4.subj;
14539 BUILD2 *bldt = MS0->S4.build;
14540 while(MS0->S4.subj){
14541 while(MS0->S4.build){
14542 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1 &&
14543 BC[buildNum[Uselected->x][Uselected->y]].nameID == MS0->S4.build->C->nameID &&
14544 Uselected->x == MS0->S4.build->x && Uselected->y == MS0->S4.build->y){
14546 if(MS0->S4.unitCMD == 0){
14547 if(pushStanbyFlag){
14552 }else if(MS0->S4.unitCMD == 1){
14554 battleSetUpIgnore = true;
14560 }else if(MS0->S4.unitCMD == 2){
14569 MS0->S4.build = MS0->S4.build->next;
14570 }MS0->S4.build = bldt;
14571 MS0->S4.subj = MS0->S4.subj->next;
14572 }MS0->S4.subj = sbjt;
14574 }else if(MS0->S4.team == 2){
14575 if(!MS0->S4.subj && !MS0->S4.obje && !MS0->S4.build){
14577 if(MS0->S4.unitCMD == 0){
14578 if(pushStanbyFlag){
14583 }else if(MS0->S4.unitCMD == 1){
14585 battleSetUpIgnore = true;
14589 }else if(MS0->S4.unitCMD == 2){
14594 }else if(!MS0->S4.subj && !MS0->S4.obje && MS0->S4.build && Uselected){
14598 BUILD2 *bldt = MS0->S4.build;
14599 while(MS0->S4.build){
14600 if(Uselected->x == MS0->S4.build->x && Uselected->y == MS0->S4.build->y){
14602 if(MS0->S4.unitCMD == 0){
14603 if(pushStanbyFlag){
14608 }else if(MS0->S4.unitCMD == 1){
14610 battleSetUpIgnore = true;
14616 }else if(MS0->S4.unitCMD == 2){
14623 MS0->S4.build = MS0->S4.build->next;
14624 }MS0->S4.build = bldt;
14627 }else if(MS0->S4.subj && !MS0->S4.obje && Uselected){
14629 UNIT2 *sbjt = MS0->S4.subj;
14631 while(MS0->S4.subj){
14632 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1){
14634 if(MS0->S4.unitCMD == 0){
14635 if(pushStanbyFlag){
14640 }else if(MS0->S4.unitCMD == 1){
14642 battleSetUpIgnore = true;
14648 }else if(MS0->S4.unitCMD == 2){
14655 MS0->S4.subj = MS0->S4.subj->next;
14656 }MS0->S4.subj = sbjt;
14658 }else if(MS0->S4.subj && MS0->S4.obje && Uselected){
14660 UNIT2 *sbjt = MS0->S4.subj;
14661 UNIT2 *objt = MS0->S4.obje;
14663 while(MS0->S4.subj){
14664 while(MS0->S4.obje){
14665 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1 &&
14666 Utarget->ix == MS0->S4.obje->x && Utarget->iy == MS0->S4.obje->y && Utarget->iz == 1){
14668 if(MS0->S4.unitCMD == 0){
14670 if(MS0->S4.unitType == 0){
14671 if(objeSCSunitCnt == MS0->S4.unitNum){
14673 if(pushStanbyFlag){
14680 }else if(MS0->S4.unitType == 1){
14681 if(objeSCSunitCnt >= MS0->S4.unitNum){
14683 if(pushStanbyFlag){
14690 }else if(MS0->S4.unitType == 2){
14691 if(objeSCSunitCnt <= MS0->S4.unitNum){
14693 if(pushStanbyFlag){
14701 }else if(MS0->S4.unitCMD == 1){
14703 if(MS0->S4.unitType == 0){
14704 if(objeSCSunitCnt == MS0->S4.unitNum){
14707 battleSetUpIgnore = true;
14713 }else if(MS0->S4.unitType == 1){
14714 if(objeSCSunitCnt >= MS0->S4.unitNum){
14717 battleSetUpIgnore = true;
14723 }else if(MS0->S4.unitType == 2){
14724 if(objeSCSunitCnt <= MS0->S4.unitNum){
14727 battleSetUpIgnore = true;
14734 }else if(MS0->S4.unitCMD == 2 && objeSCSunitCnt > 0){
14742 MS0->S4.obje = MS0->S4.obje->next;
14743 }MS0->S4.obje = objt;
14744 MS0->S4.subj = MS0->S4.subj->next;
14745 }MS0->S4.subj = sbjt;
14746 }if(MS0->S4.subj && MS0->S4.build && Uselected){
14748 UNIT2 *sbjt = MS0->S4.subj;
14749 BUILD2 *bldt = MS0->S4.build;
14750 while(MS0->S4.subj){
14751 while(MS0->S4.build){
14752 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1 &&
14753 BC[buildNum[Uselected->x][Uselected->y]].nameID == MS0->S4.build->C->nameID &&
14754 Uselected->x == MS0->S4.build->x && Uselected->y == MS0->S4.build->y){
14756 if(MS0->S4.unitCMD == 0){
14757 if(pushStanbyFlag){
14762 }else if(MS0->S4.unitCMD == 1){
14764 battleSetUpIgnore = true;
14770 }else if(MS0->S4.unitCMD == 2){
14779 MS0->S4.build = MS0->S4.build->next;
14780 }MS0->S4.build = bldt;
14781 MS0->S4.subj = MS0->S4.subj->next;
14782 }MS0->S4.subj = sbjt;
14820 branchEndFlag = true;
14821 MS0->succeessfulFlag = false;
14823 branchSuceedFlag = true;
14824 MS0->succeessfulFlag = true;
14826 MS0->succeessfulFlag = false;
14831 if(!branchSuceedFlag){
14834 MS0->endFlag = false;
14839 MS0->endFlag = true;
14842 if([CRMS0->S4.FAILrabel isEqualToString:MS0->label] && 0){
14844 MS0->succeessfulFlag = false;
14845 MS0->endFlag = false;
14851 if([CRMS0->S4.FAILrabel isEqualToString:MS0->next->label]){
14853 if(MS0->type == 6 && MS0->endFlag){
14856 MS0->succeessfulFlag = true;
14858 MS0->endFlag = true;
14862 if(MS0->type == 6 && MS0->endFlag){
14865 MS0->succeessfulFlag = true;
14867 MS0->endFlag = true;
14874 //MS0->endFlag = true;
14878 }else if(branchSuceedFlag){
14881 MS0->endFlag = false;
14886 MS0->endFlag = true;
14890 if([CRMS0->S4.COMPrabel isEqualToString:MS0->label] && 0){
14891 MS0->succeessfulFlag = false;
14892 MS0->endFlag = false;
14898 if([CRMS0->S4.COMPrabel isEqualToString:MS0->next->label]){
14900 if(MS0->type == 6 && MS0->endFlag){
14903 MS0->succeessfulFlag = true;
14905 MS0->endFlag = true;
14910 if(MS0->type == 6 && MS0->endFlag){
14913 MS0->succeessfulFlag = true;
14915 MS0->endFlag = true;
14922 //MS0->endFlag = true;
14928 //NSLog(@"%g", eventTime);
14929 //NSLog(@"%d", MSDPtop->succeessfulFlag);
14930 //MS0->endFlag = true;
14932 MS0 = [self setEvent:MS0];
14938 -(void)checkPlaceHani:(int)cnsPow tX:(int)startX tY:(int)startY aMap:(int[][1002])aMap u:(UNIT*)u scsCnt:(int*)scsCnt{
14940 if(cnsPow < 0) return;
14944 if(aMap[startY][startX] <= cnsPow)
14945 aMap[startY][startX] = cnsPow;
14947 if(startY < 0) startY = 0;
14948 if(startX < 0) startX = 0;
14949 if(cnsPow < 0) cnsPow = 0;
14953 if(aMap[startY-1][startX] >= 0 && cnsPow > 0)
14954 [self checkPlaceHani:i0 tX:startX tY:startY-1 aMap:aMap u:u scsCnt:j0];
14957 if(aMap[startY+1][startX] >= 0 && cnsPow > 0)
14958 [self checkPlaceHani:i0 tX:startX tY:startY+1 aMap:aMap u:u scsCnt:j0];
14961 if(aMap[startY][startX-1] >= 0 && cnsPow > 0)
14962 [self checkPlaceHani:i0 tX:startX-1 tY:startY aMap:aMap u:u scsCnt:j0];
14965 if(aMap[startY][startX+1] >= 0 && cnsPow > 0)
14966 [self checkPlaceHani:i0 tX:startX+1 tY:startY aMap:aMap u:u scsCnt:j0];
14971 -(MAPSCRIPT0*)setLabelJump:(MAPSCRIPT0*)MS0{
14973 MAPSCRIPT0 *CRMS0 = MS0;
14976 MS0->endFlag = false;
14980 MS0->endFlag = true;
14981 MS0->succeessfulFlag = true;
14985 if([CRMS0->labelJump isEqualToString:MS0->label]){
14986 MS0->succeessfulFlag = false;
14987 MS0->endFlag = false;
14993 if([CRMS0->labelJump isEqualToString:MS0->next->label]){
14994 if(MS0->type == 6 && MS0->endFlag){
14997 MS0->succeessfulFlag = true;
14999 MS0->endFlag = true;
15003 if(MS0->type == 6 && MS0->endFlag){
15006 MS0->succeessfulFlag = true;
15008 MS0->endFlag = true;
15020 -(MAPSCRIPT0*)setDefault:(MAPSCRIPT0*)MS0{
15022 MS0->succeessfulFlag = true;
15023 MS0->endFlag = true;
15027 -(MAPSCRIPT0*)setStatus:(MAPSCRIPT0*)MS0{
15029 NSString *value = @"";
15031 if(MS0->S7.valueType == 0)
15032 value = [MS0->S7.value retain];
15033 else if(MS0->S7.valueType == 1)
15034 value = [Hensuu[MS0->S7.rdm] retain];
15036 if(MS0->S7.teamFlag){
15040 if(MS0->S7.team == U->team)
15041 [self setStatus0:U MS0:MS0 value:value];
15047 if(MS0->S7.unitFlag){
15051 MAPSCRIPT7A *MS7A = MS0->S7.A;
15052 while (MS0->S7.A) {
15054 if(U->ix == MS0->S7.A->x || U->iy == MS0->S7.A->y){
15055 [self setStatus0:U MS0:MS0 value:value];
15058 MS0->S7.A = MS0->S7.A->next;
15065 if(MS0->S7.valueFlag){
15069 MAPSCRIPT7B *MS7B = MS0->S7.B;
15070 while (MS0->S7.B) {
15072 if(U->ix == MS0->S7.B->x || U->iy == MS0->S7.B->y){
15073 [self setStatus0:U MS0:MS0 value:value];
15076 MS0->S7.B = MS0->S7.B->next;
15083 MS0->succeessfulFlag = true;
15084 MS0->endFlag = true;
15088 -(UNIT*)setStatus0:(UNIT*)U MS0:(MAPSCRIPT0*)MS0 value:(NSString*)value{
15090 if(!MS0->S7.maxFlag){
15092 if (!MS0->S7.percentFlag) {
15094 switch (MS0->S7.type) {
15096 if(MS0->S7.fluctuate == 0)
15097 U->C.S_C.HP += [value doubleValue];
15098 else if(MS0->S7.fluctuate == 1)
15099 U->C.S_C.HP -= [value doubleValue];
15100 else if(MS0->S7.fluctuate == 2)
15101 U->C.S_C.HP = [value doubleValue];
15102 if(MS0->S7.extendFlag)
15103 if(U->C.S_C.HP > U->C.S_M.HP)
15104 U->C.S_C.HP = U->C.S_M.HP;
15105 if(U->C.S_C.HP < 0)
15109 if(MS0->S7.fluctuate == 0)
15110 U->C.S_C.MP += [value doubleValue];
15111 else if(MS0->S7.fluctuate == 1)
15112 U->C.S_C.MP -= [value doubleValue];
15113 else if(MS0->S7.fluctuate == 2)
15114 U->C.S_C.MP = [value doubleValue];
15115 if(MS0->S7.extendFlag)
15116 if(U->C.S_C.MP > U->C.S_M.MP)
15117 U->C.S_C.MP = U->C.S_M.MP;
15118 if(U->C.S_C.MP < 0)
15122 if(MS0->S7.fluctuate == 0)
15123 U->C.S_C.WT += [value doubleValue];
15124 else if(MS0->S7.fluctuate == 1)
15125 U->C.S_C.WT -= [value doubleValue];
15126 else if(MS0->S7.fluctuate == 2)
15127 U->C.S_C.WT = [value doubleValue];
15128 if(MS0->S7.extendFlag)
15129 if(U->C.S_C.WT > U->C.S_M.WT)
15130 U->C.S_C.WT = U->C.S_M.WT;
15131 if(U->C.S_C.WT < 0)
15135 if(MS0->S7.fluctuate == 0)
15136 U->C.S_C.STR += [value doubleValue];
15137 else if(MS0->S7.fluctuate == 1)
15138 U->C.S_C.STR -= [value doubleValue];
15139 else if(MS0->S7.fluctuate == 2)
15140 U->C.S_C.STR = [value doubleValue];
15141 if(MS0->S7.extendFlag)
15142 if(U->C.S_C.STR > U->C.S_M.STR)
15143 U->C.S_C.STR = U->C.S_M.STR;
15144 if(U->C.S_C.STR < 0)
15148 if(MS0->S7.fluctuate == 0)
15149 U->C.S_C.VIT += [value doubleValue];
15150 else if(MS0->S7.fluctuate == 1)
15151 U->C.S_C.VIT -= [value doubleValue];
15152 else if(MS0->S7.fluctuate == 2)
15153 U->C.S_C.VIT = [value doubleValue];
15154 if(MS0->S7.extendFlag)
15155 if(U->C.S_C.VIT > U->C.S_M.VIT)
15156 U->C.S_C.VIT = U->C.S_M.VIT;
15157 if(U->C.S_C.VIT < 0)
15161 if(MS0->S7.fluctuate == 0)
15162 U->C.S_C.AGI += [value doubleValue];
15163 else if(MS0->S7.fluctuate == 1)
15164 U->C.S_C.AGI -= [value doubleValue];
15165 else if(MS0->S7.fluctuate == 2)
15166 U->C.S_C.AGI = [value doubleValue];
15167 if(MS0->S7.extendFlag)
15168 if(U->C.S_C.AGI > U->C.S_M.AGI)
15169 U->C.S_C.AGI = U->C.S_M.AGI;
15170 if(U->C.S_C.AGI < 0)
15174 if(MS0->S7.fluctuate == 0)
15175 U->C.S_C.DEX += [value doubleValue];
15176 else if(MS0->S7.fluctuate == 1)
15177 U->C.S_C.DEX -= [value doubleValue];
15178 else if(MS0->S7.fluctuate == 2)
15179 U->C.S_C.DEX = [value doubleValue];
15180 if(MS0->S7.extendFlag)
15181 if(U->C.S_C.DEX > U->C.S_M.DEX)
15182 U->C.S_C.DEX = U->C.S_M.DEX;
15183 if(U->C.S_C.DEX < 0)
15187 if(MS0->S7.fluctuate == 0)
15188 U->C.S_C.MEN += [value doubleValue];
15189 else if(MS0->S7.fluctuate == 1)
15190 U->C.S_C.MEN -= [value doubleValue];
15191 else if(MS0->S7.fluctuate == 2)
15192 U->C.S_C.MEN = [value doubleValue];
15193 if(MS0->S7.extendFlag)
15194 if(U->C.S_C.MEN > U->C.S_M.MEN)
15195 U->C.S_C.MEN = U->C.S_M.MEN;
15196 if(U->C.S_C.MEN < 0)
15200 if(MS0->S7.fluctuate == 0)
15201 U->C.S_C.INT += [value doubleValue];
15202 else if(MS0->S7.fluctuate == 1)
15203 U->C.S_C.INT -= [value doubleValue];
15204 else if(MS0->S7.fluctuate == 2)
15205 U->C.S_C.INT = [value doubleValue];
15206 if(MS0->S7.extendFlag)
15207 if(U->C.S_C.INT > U->C.S_M.INT)
15208 U->C.S_C.INT = U->C.S_M.INT;
15209 if(U->C.S_C.INT < 0)
15213 if(MS0->S7.fluctuate == 0)
15214 U->C.S_C.LUK += [value doubleValue];
15215 else if(MS0->S7.fluctuate == 1)
15216 U->C.S_C.LUK -= [value doubleValue];
15217 else if(MS0->S7.fluctuate == 2)
15218 U->C.S_C.LUK = [value doubleValue];
15219 if(MS0->S7.extendFlag)
15220 if(U->C.S_C.LUK > U->C.S_M.LUK)
15221 U->C.S_C.LUK = U->C.S_M.LUK;
15222 if(U->C.S_C.LUK < 0)
15226 if(MS0->S7.fluctuate == 0)
15227 U->C.S_C.MOV += [value doubleValue];
15228 else if(MS0->S7.fluctuate == 1)
15229 U->C.S_C.MOV -= [value doubleValue];
15230 else if(MS0->S7.fluctuate == 2)
15231 U->C.S_C.MOV = [value doubleValue];
15232 if(MS0->S7.extendFlag)
15233 if(U->C.S_C.MOV > U->C.S_M.MOV)
15234 U->C.S_C.MOV = U->C.S_M.MOV;
15235 if(U->C.S_C.MOV < 0)
15239 if(MS0->S7.fluctuate == 0)
15240 U->C.S_C.MEL += [value doubleValue];
15241 else if(MS0->S7.fluctuate == 1)
15242 U->C.S_C.MEL -= [value doubleValue];
15243 else if(MS0->S7.fluctuate == 2)
15244 U->C.S_C.MEL = [value doubleValue];
15245 if(MS0->S7.extendFlag)
15246 if(U->C.S_C.MEL > U->C.S_M.MEL)
15247 U->C.S_C.MEL = U->C.S_M.MEL;
15248 if(U->C.S_C.MEL < 0)
15252 if(MS0->S7.fluctuate == 0)
15253 U->C.S_C.MIS += [value doubleValue];
15254 else if(MS0->S7.fluctuate == 1)
15255 U->C.S_C.MIS -= [value doubleValue];
15256 else if(MS0->S7.fluctuate == 2)
15257 U->C.S_C.MIS = [value doubleValue];
15258 if(MS0->S7.extendFlag)
15259 if(U->C.S_C.MIS > U->C.S_M.MIS)
15260 U->C.S_C.MIS = U->C.S_M.MIS;
15261 if(U->C.S_C.MIS < 0)
15265 if(MS0->S7.fluctuate == 0)
15266 U->C.S_C.HIT += [value doubleValue];
15267 else if(MS0->S7.fluctuate == 1)
15268 U->C.S_C.HIT -= [value doubleValue];
15269 else if(MS0->S7.fluctuate == 2)
15270 U->C.S_C.HIT = [value doubleValue];
15271 if(MS0->S7.extendFlag)
15272 if(U->C.S_C.HIT > U->C.S_M.HIT)
15273 U->C.S_C.HIT = U->C.S_M.HIT;
15274 if(U->C.S_C.HIT < 0)
15278 if(MS0->S7.fluctuate == 0)
15279 U->C.S_C.DOD += [value doubleValue];
15280 else if(MS0->S7.fluctuate == 1)
15281 U->C.S_C.DOD -= [value doubleValue];
15282 else if(MS0->S7.fluctuate == 2)
15283 U->C.S_C.DOD = [value doubleValue];
15284 if(MS0->S7.extendFlag)
15285 if(U->C.S_C.DOD > U->C.S_M.DOD)
15286 U->C.S_C.DOD = U->C.S_M.DOD;
15287 if(U->C.S_C.DOD < 0)
15291 if(MS0->S7.fluctuate == 0)
15292 U->C.S_C.REA += [value doubleValue];
15293 else if(MS0->S7.fluctuate == 1)
15294 U->C.S_C.REA -= [value doubleValue];
15295 else if(MS0->S7.fluctuate == 2)
15296 U->C.S_C.REA = [value doubleValue];
15297 if(MS0->S7.extendFlag)
15298 if(U->C.S_C.REA > U->C.S_M.REA)
15299 U->C.S_C.REA = U->C.S_M.REA;
15300 if(U->C.S_C.REA < 0)
15304 if(MS0->S7.fluctuate == 0)
15305 U->C.S_C.SKI += [value doubleValue];
15306 else if(MS0->S7.fluctuate == 1)
15307 U->C.S_C.SKI -= [value doubleValue];
15308 else if(MS0->S7.fluctuate == 2)
15309 U->C.S_C.SKI = [value doubleValue];
15310 if(MS0->S7.extendFlag)
15311 if(U->C.S_C.SKI > U->C.S_M.SKI)
15312 U->C.S_C.SKI = U->C.S_M.SKI;
15313 if(U->C.S_C.SKI < 0)
15317 U->C.name = [value retain];
15320 U->C.nameNick = [value retain];
15323 U->C.nameClass = [value retain];
15326 U->C.S_C.typeMONS = [value doubleValue];
15329 U->C.S_C.typeMOVE = [value doubleValue];
15332 if(MS0->S7.fluctuate == 0)
15333 U->C.S_C.cSupply += [value doubleValue];
15334 else if(MS0->S7.fluctuate == 1)
15335 U->C.S_C.cSupply -= [value doubleValue];
15336 else if(MS0->S7.fluctuate == 2)
15337 U->C.S_C.cSupply = [value doubleValue];
15338 if(MS0->S7.extendFlag)
15339 if(U->C.S_C.cSupply > U->C.S_M.cSupply)
15340 U->C.S_C.cSupply = U->C.S_M.cSupply;
15341 if(U->C.S_C.cSupply < 0)
15342 U->C.S_C.cSupply = 0;
15345 if(MS0->S7.fluctuate == 0)
15346 U->C.S_C.cFood += [value doubleValue];
15347 else if(MS0->S7.fluctuate == 1)
15348 U->C.S_C.cFood -= [value doubleValue];
15349 else if(MS0->S7.fluctuate == 2)
15350 U->C.S_C.cFood = [value doubleValue];
15351 if(MS0->S7.extendFlag)
15352 if(U->C.S_C.cFood > U->C.S_M.cFood)
15353 U->C.S_C.cFood = U->C.S_M.cFood;
15354 if(U->C.S_C.cFood < 0)
15355 U->C.S_C.cFood = 0;
15358 if(MS0->S7.fluctuate == 0)
15359 U->C.S_C.cMoney += [value doubleValue];
15360 else if(MS0->S7.fluctuate == 1)
15361 U->C.S_C.cMoney -= [value doubleValue];
15362 else if(MS0->S7.fluctuate == 2)
15363 U->C.S_C.cMoney = [value doubleValue];
15364 if(MS0->S7.extendFlag)
15365 if(U->C.S_C.cMoney > U->C.S_M.cMoney)
15366 U->C.S_C.cMoney = U->C.S_M.cMoney;
15367 if(U->C.S_C.cMoney < 0)
15368 U->C.S_C.cMoney = 0;
15371 if(MS0->S7.fluctuate == 0)
15372 U->C.S_C.cWT += [value doubleValue];
15373 else if(MS0->S7.fluctuate == 1)
15374 U->C.S_C.cWT -= [value doubleValue];
15375 else if(MS0->S7.fluctuate == 2)
15376 U->C.S_C.cWT = [value doubleValue];
15377 if(MS0->S7.extendFlag)
15378 if(U->C.S_C.cWT > U->C.S_M.cWT)
15379 U->C.S_C.cWT = U->C.S_M.cWT;
15380 if(U->C.S_C.cWT < 0)
15384 if(MS0->S7.fluctuate == 0)
15385 U->C.S_C.vigor += [value doubleValue];
15386 else if(MS0->S7.fluctuate == 1)
15387 U->C.S_C.vigor -= [value doubleValue];
15388 else if(MS0->S7.fluctuate == 2)
15389 U->C.S_C.vigor = [value doubleValue];
15390 if(MS0->S7.extendFlag)
15391 if(U->C.S_C.vigor > U->C.S_M.vigor)
15392 U->C.S_C.vigor = U->C.S_M.vigor;
15393 if(U->C.S_C.vigor < 0)
15394 U->C.S_C.vigor = 0;
15403 switch (MS0->S7.type) {
15405 if(MS0->S7.fluctuate == 0)
15406 U->C.S_C.HP += U->C.S_M.HP*[value doubleValue]/100;
15407 else if(MS0->S7.fluctuate == 1)
15408 U->C.S_C.HP -= U->C.S_M.HP*[value doubleValue]/100;
15409 else if(MS0->S7.fluctuate == 2)
15410 U->C.S_C.HP = U->C.S_M.HP*[value doubleValue]/100;
15411 if(MS0->S7.extendFlag)
15412 if(U->C.S_C.HP > U->C.S_M.HP)
15413 U->C.S_C.HP = U->C.S_M.HP;
15414 if(U->C.S_C.HP < 0)
15418 if(MS0->S7.fluctuate == 0)
15419 U->C.S_C.MP += U->C.S_M.MP*[value doubleValue]/100;
15420 else if(MS0->S7.fluctuate == 1)
15421 U->C.S_C.MP -= U->C.S_M.MP*[value doubleValue]/100;
15422 else if(MS0->S7.fluctuate == 2)
15423 U->C.S_C.MP = U->C.S_M.MP*[value doubleValue]/100;
15424 if(MS0->S7.extendFlag)
15425 if(U->C.S_C.MP > U->C.S_M.MP)
15426 U->C.S_C.MP = U->C.S_M.MP;
15427 if(U->C.S_C.MP < 0)
15431 if(MS0->S7.fluctuate == 0)
15432 U->C.S_C.WT += U->C.S_M.WT*[value doubleValue]/100;
15433 else if(MS0->S7.fluctuate == 1)
15434 U->C.S_C.WT -= U->C.S_M.WT*[value doubleValue]/100;
15435 else if(MS0->S7.fluctuate == 2)
15436 U->C.S_C.MP = U->C.S_M.WT*[value doubleValue]/100;
15437 if(MS0->S7.extendFlag)
15438 if(U->C.S_C.WT > U->C.S_M.WT)
15439 U->C.S_C.WT = U->C.S_M.WT;
15440 if(U->C.S_C.WT < 0)
15444 if(MS0->S7.fluctuate == 0)
15445 U->C.S_C.STR += U->C.S_M.STR*[value doubleValue]/100;
15446 else if(MS0->S7.fluctuate == 1)
15447 U->C.S_C.STR -= U->C.S_M.STR*[value doubleValue]/100;
15448 else if(MS0->S7.fluctuate == 2)
15449 U->C.S_C.STR = U->C.S_M.STR*[value doubleValue]/100;
15450 if(MS0->S7.extendFlag)
15451 if(U->C.S_C.STR > U->C.S_M.STR)
15452 U->C.S_C.STR = U->C.S_M.STR;
15453 if(U->C.S_C.STR < 0)
15457 if(MS0->S7.fluctuate == 0)
15458 U->C.S_C.VIT += U->C.S_M.VIT*[value doubleValue]/100;
15459 else if(MS0->S7.fluctuate == 1)
15460 U->C.S_C.VIT -= U->C.S_M.VIT*[value doubleValue]/100;
15461 else if(MS0->S7.fluctuate == 2)
15462 U->C.S_C.VIT = U->C.S_M.VIT*[value doubleValue]/100;
15463 if(MS0->S7.extendFlag)
15464 if(U->C.S_C.VIT > U->C.S_M.VIT)
15465 U->C.S_C.VIT = U->C.S_M.VIT;
15466 if(U->C.S_C.VIT < 0)
15470 if(MS0->S7.fluctuate == 0)
15471 U->C.S_C.AGI += U->C.S_M.AGI*[value doubleValue]/100;
15472 else if(MS0->S7.fluctuate == 1)
15473 U->C.S_C.AGI -= U->C.S_M.AGI*[value doubleValue]/100;
15474 else if(MS0->S7.fluctuate == 2)
15475 U->C.S_C.AGI = U->C.S_M.AGI*[value doubleValue]/100;
15476 if(MS0->S7.extendFlag)
15477 if(U->C.S_C.AGI > U->C.S_M.AGI)
15478 U->C.S_C.AGI = U->C.S_M.AGI;
15479 if(U->C.S_C.AGI < 0)
15483 if(MS0->S7.fluctuate == 0)
15484 U->C.S_C.DEX += U->C.S_M.DEX*[value doubleValue]/100;
15485 else if(MS0->S7.fluctuate == 1)
15486 U->C.S_C.DEX -= U->C.S_M.DEX*[value doubleValue]/100;
15487 else if(MS0->S7.fluctuate == 2)
15488 U->C.S_C.DEX = U->C.S_M.DEX*[value doubleValue]/100;
15489 if(MS0->S7.extendFlag)
15490 if(U->C.S_C.DEX > U->C.S_M.DEX)
15491 U->C.S_C.DEX = U->C.S_M.DEX;
15492 if(U->C.S_C.DEX < 0)
15496 if(MS0->S7.fluctuate == 0)
15497 U->C.S_C.MEN += U->C.S_M.MEN*[value doubleValue]/100;
15498 else if(MS0->S7.fluctuate == 1)
15499 U->C.S_C.MEN -= U->C.S_M.MEN*[value doubleValue]/100;
15500 else if(MS0->S7.fluctuate == 2)
15501 U->C.S_C.MEN = U->C.S_M.MEN*[value doubleValue]/100;
15502 if(MS0->S7.extendFlag)
15503 if(U->C.S_C.MEN > U->C.S_M.MEN)
15504 U->C.S_C.MEN = U->C.S_M.MEN;
15505 if(U->C.S_C.MEN < 0)
15509 if(MS0->S7.fluctuate == 0)
15510 U->C.S_C.INT += U->C.S_M.INT*[value doubleValue]/100;
15511 else if(MS0->S7.fluctuate == 1)
15512 U->C.S_C.INT -= U->C.S_M.INT*[value doubleValue]/100;
15513 else if(MS0->S7.fluctuate == 2)
15514 U->C.S_C.INT = U->C.S_M.INT*[value doubleValue]/100;
15515 if(MS0->S7.extendFlag)
15516 if(U->C.S_C.INT > U->C.S_M.INT)
15517 U->C.S_C.INT = U->C.S_M.INT;
15518 if(U->C.S_C.INT < 0)
15522 if(MS0->S7.fluctuate == 0)
15523 U->C.S_C.LUK += U->C.S_M.LUK*[value doubleValue]/100;
15524 else if(MS0->S7.fluctuate == 1)
15525 U->C.S_C.LUK -= U->C.S_M.LUK*[value doubleValue]/100;
15526 else if(MS0->S7.fluctuate == 2)
15527 U->C.S_C.LUK = U->C.S_M.LUK*[value doubleValue]/100;
15528 if(MS0->S7.extendFlag)
15529 if(U->C.S_C.LUK > U->C.S_M.LUK)
15530 U->C.S_C.LUK = U->C.S_M.LUK;
15531 if(U->C.S_C.LUK < 0)
15535 if(MS0->S7.fluctuate == 0)
15536 U->C.S_C.MOV += U->C.S_M.MOV*[value doubleValue]/100;
15537 else if(MS0->S7.fluctuate == 1)
15538 U->C.S_C.MOV -= U->C.S_M.MOV*[value doubleValue]/100;
15539 else if(MS0->S7.fluctuate == 2)
15540 U->C.S_C.MOV = U->C.S_M.MOV*[value doubleValue]/100;
15541 if(MS0->S7.extendFlag)
15542 if(U->C.S_C.MOV > U->C.S_M.MOV)
15543 U->C.S_C.MOV = U->C.S_M.MOV;
15544 if(U->C.S_C.MOV < 0)
15548 if(MS0->S7.fluctuate == 0)
15549 U->C.S_C.MEL += U->C.S_M.MEL*[value doubleValue]/100;
15550 else if(MS0->S7.fluctuate == 1)
15551 U->C.S_C.MEL -= U->C.S_M.MEL*[value doubleValue]/100;
15552 else if(MS0->S7.fluctuate == 2)
15553 U->C.S_C.MEL = U->C.S_M.MEL*[value doubleValue]/100;
15554 if(MS0->S7.extendFlag)
15555 if(U->C.S_C.MEL > U->C.S_M.MEL)
15556 U->C.S_C.MEL = U->C.S_M.MEL;
15557 if(U->C.S_C.MEL < 0)
15561 if(MS0->S7.fluctuate == 0)
15562 U->C.S_C.MIS += U->C.S_M.MIS*[value doubleValue]/100;
15563 else if(MS0->S7.fluctuate == 1)
15564 U->C.S_C.MIS -= U->C.S_M.MIS*[value doubleValue]/100;
15565 else if(MS0->S7.fluctuate == 2)
15566 U->C.S_C.MIS = U->C.S_M.MIS*[value doubleValue]/100;
15567 if(MS0->S7.extendFlag)
15568 if(U->C.S_C.MIS > U->C.S_M.MIS)
15569 U->C.S_C.MIS = U->C.S_M.MIS;
15570 if(U->C.S_C.MIS < 0)
15574 if(MS0->S7.fluctuate == 0)
15575 U->C.S_C.HIT += U->C.S_M.HIT*[value doubleValue]/100;
15576 else if(MS0->S7.fluctuate == 1)
15577 U->C.S_C.HIT -= U->C.S_M.HIT*[value doubleValue]/100;
15578 else if(MS0->S7.fluctuate == 2)
15579 U->C.S_C.HIT = U->C.S_M.HIT*[value doubleValue]/100;
15580 if(MS0->S7.extendFlag)
15581 if(U->C.S_C.HIT > U->C.S_M.HIT)
15582 U->C.S_C.HIT = U->C.S_M.HIT;
15583 if(U->C.S_C.HIT < 0)
15587 if(MS0->S7.fluctuate == 0)
15588 U->C.S_C.DOD += U->C.S_M.DOD*[value doubleValue]/100;
15589 else if(MS0->S7.fluctuate == 1)
15590 U->C.S_C.DOD -= U->C.S_M.DOD*[value doubleValue]/100;
15591 else if(MS0->S7.fluctuate == 2)
15592 U->C.S_C.DOD = U->C.S_M.DOD*[value doubleValue]/100;
15593 if(MS0->S7.extendFlag)
15594 if(U->C.S_C.HIT > U->C.S_M.DOD)
15595 U->C.S_C.DOD = U->C.S_M.DOD;
15596 if(U->C.S_C.DOD < 0)
15600 if(MS0->S7.fluctuate == 0)
15601 U->C.S_C.REA += U->C.S_M.REA*[value doubleValue]/100;
15602 else if(MS0->S7.fluctuate == 1)
15603 U->C.S_C.REA -= U->C.S_M.REA*[value doubleValue]/100;
15604 else if(MS0->S7.fluctuate == 2)
15605 U->C.S_C.REA = U->C.S_M.REA*[value doubleValue]/100;
15606 if(MS0->S7.extendFlag)
15607 if(U->C.S_C.REA > U->C.S_M.REA)
15608 U->C.S_C.REA = U->C.S_M.REA;
15609 if(U->C.S_C.REA < 0)
15613 if(MS0->S7.fluctuate == 0)
15614 U->C.S_C.SKI += U->C.S_M.SKI*[value doubleValue]/100;
15615 else if(MS0->S7.fluctuate == 1)
15616 U->C.S_C.SKI -= U->C.S_M.SKI*[value doubleValue]/100;
15617 else if(MS0->S7.fluctuate == 2)
15618 U->C.S_C.SKI = U->C.S_M.SKI*[value doubleValue]/100;
15619 if(MS0->S7.extendFlag)
15620 if(U->C.S_C.SKI > U->C.S_M.SKI)
15621 U->C.S_C.SKI = U->C.S_M.SKI;
15622 if(U->C.S_C.SKI < 0)
15626 U->C.name = [MS0->S7.value retain];
15629 U->C.nameNick = [MS0->S7.value retain];
15632 U->C.nameClass = [MS0->S7.value retain];
15635 U->C.S_C.typeMONS = [MS0->S7.value doubleValue];
15638 U->C.S_C.typeMOVE = [MS0->S7.value doubleValue];
15641 if(MS0->S7.fluctuate == 0)
15642 U->C.S_C.cSupply += U->C.S_M.cSupply*[value doubleValue]/100;
15643 else if(MS0->S7.fluctuate == 1)
15644 U->C.S_C.cSupply -= U->C.S_M.cSupply*[value doubleValue]/100;
15645 else if(MS0->S7.fluctuate == 2)
15646 U->C.S_C.cSupply = U->C.S_M.cSupply*[value doubleValue]/100;
15647 if(MS0->S7.extendFlag)
15648 if(U->C.S_C.cSupply > U->C.S_M.cSupply)
15649 U->C.S_C.cSupply = U->C.S_M.cSupply;
15650 if(U->C.S_C.cSupply < 0)
15651 U->C.S_C.cSupply = 0;
15654 if(MS0->S7.fluctuate == 0)
15655 U->C.S_C.cFood += U->C.S_M.cFood*[value doubleValue]/100;
15656 else if(MS0->S7.fluctuate == 1)
15657 U->C.S_C.cFood -= U->C.S_M.cFood*[value doubleValue]/100;
15658 else if(MS0->S7.fluctuate == 2)
15659 U->C.S_C.cFood = U->C.S_M.cFood*[value doubleValue]/100;
15660 if(MS0->S7.extendFlag)
15661 if(U->C.S_C.cFood > U->C.S_M.cFood)
15662 U->C.S_C.cFood = U->C.S_M.cFood;
15663 if(U->C.S_C.cFood < 0)
15664 U->C.S_C.cFood = 0;
15667 if(MS0->S7.fluctuate == 0)
15668 U->C.S_C.cMoney += U->C.S_M.cMoney*[value doubleValue]/100;
15669 else if(MS0->S7.fluctuate == 1)
15670 U->C.S_C.cMoney -= U->C.S_M.cMoney*[value doubleValue]/100;
15671 else if(MS0->S7.fluctuate == 2)
15672 U->C.S_C.cMoney = U->C.S_M.cMoney*[value doubleValue]/100;
15673 if(MS0->S7.extendFlag)
15674 if(U->C.S_C.cMoney > U->C.S_M.cMoney)
15675 U->C.S_C.cMoney = U->C.S_M.cMoney;
15676 if(U->C.S_C.cMoney < 0)
15677 U->C.S_C.cMoney = 0;
15680 if(MS0->S7.fluctuate == 0)
15681 U->C.S_C.cWT += U->C.S_M.cWT*[value doubleValue]/100;
15682 else if(MS0->S7.fluctuate == 1)
15683 U->C.S_C.cWT -= U->C.S_M.cWT*[value doubleValue]/100;
15684 else if(MS0->S7.fluctuate == 2)
15685 U->C.S_C.cWT = U->C.S_M.cWT*[value doubleValue]/100;
15686 if(MS0->S7.extendFlag)
15687 if(U->C.S_C.cWT > U->C.S_M.cWT)
15688 U->C.S_C.cWT = U->C.S_M.cWT;
15689 if(U->C.S_C.cWT < 0)
15693 if(MS0->S7.fluctuate == 0)
15694 U->C.S_C.vigor += U->C.S_M.vigor*[value doubleValue]/100;
15695 else if(MS0->S7.fluctuate == 1)
15696 U->C.S_C.vigor -= U->C.S_M.vigor*[value doubleValue]/100;
15697 else if(MS0->S7.fluctuate == 2)
15698 U->C.S_C.vigor = U->C.S_M.vigor*[value doubleValue]/100;
15699 if(MS0->S7.extendFlag)
15700 if(U->C.S_C.vigor > U->C.S_M.vigor)
15701 U->C.S_C.vigor = U->C.S_M.vigor;
15702 if(U->C.S_C.vigor < 0)
15703 U->C.S_C.vigor = 0;
15712 if (!MS0->S7.percentFlag) {
15714 switch (MS0->S7.type) {
15716 if(MS0->S7.fluctuate == 0)
15717 U->C.S_M.HP += [value doubleValue];
15718 else if(MS0->S7.fluctuate == 1)
15719 U->C.S_M.HP -= [value doubleValue];
15720 else if(MS0->S7.fluctuate == 2)
15721 U->C.S_M.HP = [value doubleValue];
15723 if(U->C.S_M.HP < 0)
15725 if(MS0->S7.extendFlag)
15726 U->C.S_C.HP = U->C.S_M.HP;
15729 if(MS0->S7.fluctuate == 0)
15730 U->C.S_M.MP += [value doubleValue];
15731 else if(MS0->S7.fluctuate == 1)
15732 U->C.S_M.MP -= [value doubleValue];
15733 else if(MS0->S7.fluctuate == 2)
15734 U->C.S_M.MP = [value doubleValue];
15736 if(U->C.S_M.MP < 0)
15738 if(MS0->S7.extendFlag)
15739 U->C.S_C.MP = U->C.S_M.MP;
15742 if(MS0->S7.fluctuate == 0)
15743 U->C.S_M.WT += [value doubleValue];
15744 else if(MS0->S7.fluctuate == 1)
15745 U->C.S_M.WT -= [value doubleValue];
15746 else if(MS0->S7.fluctuate == 2)
15747 U->C.S_M.WT = [value doubleValue];
15749 if(U->C.S_M.WT < 0)
15751 if(MS0->S7.extendFlag)
15752 U->C.S_C.WT = U->C.S_M.WT;
15755 if(MS0->S7.fluctuate == 0)
15756 U->C.S_M.STR += [value doubleValue];
15757 else if(MS0->S7.fluctuate == 1)
15758 U->C.S_M.STR -= [value doubleValue];
15759 else if(MS0->S7.fluctuate == 2)
15760 U->C.S_M.STR = [value doubleValue];
15762 if(U->C.S_M.STR < 0)
15764 if(MS0->S7.extendFlag)
15765 U->C.S_C.STR = U->C.S_M.STR;
15768 if(MS0->S7.fluctuate == 0)
15769 U->C.S_M.VIT += [value doubleValue];
15770 else if(MS0->S7.fluctuate == 1)
15771 U->C.S_M.VIT -= [value doubleValue];
15772 else if(MS0->S7.fluctuate == 2)
15773 U->C.S_M.VIT = [value doubleValue];
15775 if(U->C.S_M.VIT < 0)
15777 if(MS0->S7.extendFlag)
15778 U->C.S_C.VIT = U->C.S_M.VIT;
15781 if(MS0->S7.fluctuate == 0)
15782 U->C.S_M.AGI += [value doubleValue];
15783 else if(MS0->S7.fluctuate == 1)
15784 U->C.S_M.AGI -= [value doubleValue];
15785 else if(MS0->S7.fluctuate == 2)
15786 U->C.S_M.AGI = [value doubleValue];
15788 if(U->C.S_M.AGI < 0)
15790 if(MS0->S7.extendFlag)
15791 U->C.S_C.AGI = U->C.S_M.AGI;
15794 if(MS0->S7.fluctuate == 0)
15795 U->C.S_M.DEX += [value doubleValue];
15796 else if(MS0->S7.fluctuate == 1)
15797 U->C.S_M.DEX -= [value doubleValue];
15798 else if(MS0->S7.fluctuate == 2)
15799 U->C.S_M.DEX = [value doubleValue];
15801 if(U->C.S_M.DEX < 0)
15803 if(MS0->S7.extendFlag)
15804 U->C.S_C.DEX = U->C.S_M.DEX;
15807 if(MS0->S7.fluctuate == 0)
15808 U->C.S_M.MEN += [value doubleValue];
15809 else if(MS0->S7.fluctuate == 1)
15810 U->C.S_M.MEN -= [value doubleValue];
15811 else if(MS0->S7.fluctuate == 2)
15812 U->C.S_M.MEN = [value doubleValue];
15814 if(U->C.S_M.MEN < 0)
15816 if(MS0->S7.extendFlag)
15817 U->C.S_C.MEN = U->C.S_M.MEN;
15820 if(MS0->S7.fluctuate == 0)
15821 U->C.S_M.INT += [value doubleValue];
15822 else if(MS0->S7.fluctuate == 1)
15823 U->C.S_M.INT -= [value doubleValue];
15824 else if(MS0->S7.fluctuate == 2)
15825 U->C.S_M.INT = [value doubleValue];
15827 if(U->C.S_M.INT < 0)
15829 if(MS0->S7.extendFlag)
15830 U->C.S_C.INT = U->C.S_M.INT;
15833 if(MS0->S7.fluctuate == 0)
15834 U->C.S_M.LUK += [value doubleValue];
15835 else if(MS0->S7.fluctuate == 1)
15836 U->C.S_M.LUK -= [value doubleValue];
15837 else if(MS0->S7.fluctuate == 2)
15838 U->C.S_M.LUK = [value doubleValue];
15840 if(U->C.S_M.LUK < 0)
15842 if(MS0->S7.extendFlag)
15843 U->C.S_C.LUK = U->C.S_M.LUK;
15846 if(MS0->S7.fluctuate == 0)
15847 U->C.S_M.MOV += [value doubleValue];
15848 else if(MS0->S7.fluctuate == 1)
15849 U->C.S_M.MOV -= [value doubleValue];
15850 else if(MS0->S7.fluctuate == 2)
15851 U->C.S_M.MOV = [value doubleValue];
15853 if(U->C.S_M.MOV < 0)
15855 if(MS0->S7.extendFlag)
15856 U->C.S_C.MOV = U->C.S_M.MOV;
15859 if(MS0->S7.fluctuate == 0)
15860 U->C.S_M.MEL += [value doubleValue];
15861 else if(MS0->S7.fluctuate == 1)
15862 U->C.S_M.MEL -= [value doubleValue];
15863 else if(MS0->S7.fluctuate == 2)
15864 U->C.S_M.MEL = [value doubleValue];
15866 if(U->C.S_M.MEL < 0)
15868 if(MS0->S7.extendFlag)
15869 U->C.S_C.MEL = U->C.S_M.MEL;
15872 if(MS0->S7.fluctuate == 0)
15873 U->C.S_M.MIS += [value doubleValue];
15874 else if(MS0->S7.fluctuate == 1)
15875 U->C.S_M.MIS -= [value doubleValue];
15876 else if(MS0->S7.fluctuate == 2)
15877 U->C.S_M.MIS = [value doubleValue];
15879 if(U->C.S_M.MIS < 0)
15881 if(MS0->S7.extendFlag)
15882 U->C.S_C.MIS = U->C.S_M.MIS;
15886 if(MS0->S7.fluctuate == 0)
15887 U->C.S_M.HIT += [value doubleValue];
15888 else if(MS0->S7.fluctuate == 1)
15889 U->C.S_M.HIT -= [value doubleValue];
15890 else if(MS0->S7.fluctuate == 2)
15891 U->C.S_M.HIT = [value doubleValue];
15893 if(U->C.S_M.HIT < 0)
15895 if(MS0->S7.extendFlag)
15896 U->C.S_C.HIT = U->C.S_M.HIT;
15899 if(MS0->S7.fluctuate == 0)
15900 U->C.S_M.DOD += [value doubleValue];
15901 else if(MS0->S7.fluctuate == 1)
15902 U->C.S_M.DOD -= [value doubleValue];
15903 else if(MS0->S7.fluctuate == 2)
15904 U->C.S_M.DOD = [value doubleValue];
15906 if(U->C.S_M.DOD < 0)
15908 if(MS0->S7.extendFlag)
15909 U->C.S_C.DOD = U->C.S_M.DOD;
15912 if(MS0->S7.fluctuate == 0)
15913 U->C.S_M.REA += [value doubleValue];
15914 else if(MS0->S7.fluctuate == 1)
15915 U->C.S_M.REA -= [value doubleValue];
15916 else if(MS0->S7.fluctuate == 2)
15917 U->C.S_M.REA = [value doubleValue];
15919 if(U->C.S_M.REA < 0)
15921 if(MS0->S7.extendFlag)
15922 U->C.S_C.REA = U->C.S_M.REA;
15925 if(MS0->S7.fluctuate == 0)
15926 U->C.S_M.SKI += [value doubleValue];
15927 else if(MS0->S7.fluctuate == 1)
15928 U->C.S_M.SKI -= [value doubleValue];
15929 else if(MS0->S7.fluctuate == 2)
15930 U->C.S_M.SKI = [value doubleValue];
15932 if(U->C.S_M.SKI < 0)
15934 if(MS0->S7.extendFlag)
15935 U->C.S_C.SKI = U->C.S_M.SKI;
15938 U->C.name = [value retain];
15941 U->C.nameNick = [value retain];
15944 U->C.nameClass = [value retain];
15947 U->C.S_C.typeMONS = [value doubleValue];
15950 U->C.S_C.typeMOVE = [value doubleValue];
15953 if(MS0->S7.fluctuate == 0)
15954 U->C.S_M.cSupply += [value doubleValue];
15955 else if(MS0->S7.fluctuate == 1)
15956 U->C.S_M.cSupply -= [value doubleValue];
15957 else if(MS0->S7.fluctuate == 2)
15958 U->C.S_M.cSupply = [value doubleValue];
15960 if(U->C.S_M.cSupply < 0)
15961 U->C.S_M.cSupply = 0;
15962 if(MS0->S7.extendFlag)
15963 U->C.S_C.cSupply = U->C.S_M.cSupply;
15966 if(MS0->S7.fluctuate == 0)
15967 U->C.S_M.cFood += [value doubleValue];
15968 else if(MS0->S7.fluctuate == 1)
15969 U->C.S_M.cFood -= [value doubleValue];
15970 else if(MS0->S7.fluctuate == 2)
15971 U->C.S_M.cFood = [value doubleValue];
15973 if(U->C.S_M.cFood < 0)
15974 U->C.S_M.cFood = 0;
15975 if(MS0->S7.extendFlag)
15976 U->C.S_C.cFood = U->C.S_M.cFood;
15979 if(MS0->S7.fluctuate == 0)
15980 U->C.S_M.cMoney += [value doubleValue];
15981 else if(MS0->S7.fluctuate == 1)
15982 U->C.S_M.cMoney -= [value doubleValue];
15983 else if(MS0->S7.fluctuate == 2)
15984 U->C.S_M.cMoney = [value doubleValue];
15985 if(U->C.S_M.cMoney < 0)
15986 U->C.S_M.cMoney = 0;
15987 if(MS0->S7.extendFlag)
15988 U->C.S_C.cMoney = U->C.S_M.cMoney;
15991 if(MS0->S7.fluctuate == 0)
15992 U->C.S_M.cWT += [value doubleValue];
15993 else if(MS0->S7.fluctuate == 1)
15994 U->C.S_M.cWT -= [value doubleValue];
15995 else if(MS0->S7.fluctuate == 2)
15996 U->C.S_M.cWT = [value doubleValue];
15997 if(U->C.S_M.cWT < 0)
15999 if(MS0->S7.extendFlag)
16000 U->C.S_C.cWT = U->C.S_M.cWT;
16003 if(MS0->S7.fluctuate == 0)
16004 U->C.S_M.vigor += [value doubleValue];
16005 else if(MS0->S7.fluctuate == 1)
16006 U->C.S_M.vigor -= [value doubleValue];
16007 else if(MS0->S7.fluctuate == 2)
16008 U->C.S_M.vigor = [value doubleValue];
16009 if(U->C.S_M.vigor < 0)
16010 U->C.S_M.vigor = 0;
16011 if(MS0->S7.extendFlag)
16012 U->C.S_C.vigor = U->C.S_M.vigor;
16021 switch (MS0->S7.type) {
16023 if(MS0->S7.fluctuate == 0)
16024 U->C.S_M.HP += U->C.S_M.HP*[value doubleValue]/100;
16025 else if(MS0->S7.fluctuate == 1)
16026 U->C.S_M.HP -= U->C.S_M.HP*[value doubleValue]/100;
16027 else if(MS0->S7.fluctuate == 2)
16028 U->C.S_M.HP = U->C.S_M.HP*[value doubleValue]/100;
16030 if(U->C.S_M.HP < 0)
16032 if(MS0->S7.extendFlag)
16033 U->C.S_C.HP = U->C.S_M.HP;
16036 if(MS0->S7.fluctuate == 0)
16037 U->C.S_M.MP += U->C.S_M.MP*[value doubleValue]/100;
16038 else if(MS0->S7.fluctuate == 1)
16039 U->C.S_M.MP -= U->C.S_M.MP*[value doubleValue]/100;
16040 else if(MS0->S7.fluctuate == 2)
16041 U->C.S_M.MP = U->C.S_M.MP*[value doubleValue]/100;
16043 if(U->C.S_M.MP < 0)
16045 if(MS0->S7.extendFlag)
16046 U->C.S_C.MP = U->C.S_M.MP;
16049 if(MS0->S7.fluctuate == 0)
16050 U->C.S_M.WT += U->C.S_M.WT*[value doubleValue]/100;
16051 else if(MS0->S7.fluctuate == 1)
16052 U->C.S_M.WT -= U->C.S_M.WT*[value doubleValue]/100;
16053 else if(MS0->S7.fluctuate == 2)
16054 U->C.S_M.MP = U->C.S_M.WT*[value doubleValue]/100;
16056 if(U->C.S_M.WT < 0)
16058 if(MS0->S7.extendFlag)
16059 U->C.S_C.WT = U->C.S_M.WT;
16062 if(MS0->S7.fluctuate == 0)
16063 U->C.S_M.STR += U->C.S_M.STR*[value doubleValue]/100;
16064 else if(MS0->S7.fluctuate == 1)
16065 U->C.S_M.STR -= U->C.S_M.STR*[value doubleValue]/100;
16066 else if(MS0->S7.fluctuate == 2)
16067 U->C.S_M.STR = U->C.S_M.STR*[value doubleValue]/100;
16069 if(U->C.S_M.STR < 0)
16071 if(MS0->S7.extendFlag)
16072 U->C.S_C.STR = U->C.S_M.STR;
16075 if(MS0->S7.fluctuate == 0)
16076 U->C.S_M.VIT += U->C.S_M.VIT*[value doubleValue]/100;
16077 else if(MS0->S7.fluctuate == 1)
16078 U->C.S_M.VIT -= U->C.S_M.VIT*[value doubleValue]/100;
16079 else if(MS0->S7.fluctuate == 2)
16080 U->C.S_M.VIT = U->C.S_M.VIT*[value doubleValue]/100;
16082 if(U->C.S_M.VIT < 0)
16084 if(MS0->S7.extendFlag)
16085 U->C.S_C.VIT = U->C.S_M.VIT;
16088 if(MS0->S7.fluctuate == 0)
16089 U->C.S_M.AGI += U->C.S_M.AGI*[value doubleValue]/100;
16090 else if(MS0->S7.fluctuate == 1)
16091 U->C.S_M.AGI -= U->C.S_M.AGI*[value doubleValue]/100;
16092 else if(MS0->S7.fluctuate == 2)
16093 U->C.S_M.AGI = U->C.S_M.AGI*[value doubleValue]/100;
16095 if(U->C.S_M.AGI < 0)
16097 if(MS0->S7.extendFlag)
16098 U->C.S_C.AGI = U->C.S_M.AGI;
16101 if(MS0->S7.fluctuate == 0)
16102 U->C.S_M.DEX += U->C.S_M.DEX*[value doubleValue]/100;
16103 else if(MS0->S7.fluctuate == 1)
16104 U->C.S_M.DEX -= U->C.S_M.DEX*[value doubleValue]/100;
16105 else if(MS0->S7.fluctuate == 2)
16106 U->C.S_M.DEX = U->C.S_M.DEX*[value doubleValue]/100;
16108 if(U->C.S_M.DEX < 0)
16110 if(MS0->S7.extendFlag)
16111 U->C.S_C.DEX = U->C.S_M.DEX;
16114 if(MS0->S7.fluctuate == 0)
16115 U->C.S_M.MEN += U->C.S_M.MEN*[value doubleValue]/100;
16116 else if(MS0->S7.fluctuate == 1)
16117 U->C.S_M.MEN -= U->C.S_M.MEN*[value doubleValue]/100;
16118 else if(MS0->S7.fluctuate == 2)
16119 U->C.S_M.MEN = U->C.S_M.MEN*[value doubleValue]/100;
16121 if(U->C.S_M.MEN < 0)
16123 if(MS0->S7.extendFlag)
16124 U->C.S_C.MEN = U->C.S_M.MEN;
16127 if(MS0->S7.fluctuate == 0)
16128 U->C.S_M.INT += U->C.S_M.INT*[value doubleValue]/100;
16129 else if(MS0->S7.fluctuate == 1)
16130 U->C.S_M.INT -= U->C.S_M.INT*[value doubleValue]/100;
16131 else if(MS0->S7.fluctuate == 2)
16132 U->C.S_M.INT = U->C.S_M.INT*[value doubleValue]/100;
16134 if(U->C.S_M.INT < 0)
16136 if(MS0->S7.extendFlag)
16137 U->C.S_C.INT = U->C.S_M.INT;
16140 if(MS0->S7.fluctuate == 0)
16141 U->C.S_M.LUK += U->C.S_M.LUK*[value doubleValue]/100;
16142 else if(MS0->S7.fluctuate == 1)
16143 U->C.S_M.LUK -= U->C.S_M.LUK*[value doubleValue]/100;
16144 else if(MS0->S7.fluctuate == 2)
16145 U->C.S_M.LUK = U->C.S_M.LUK*[value doubleValue]/100;
16147 if(U->C.S_M.LUK < 0)
16149 if(MS0->S7.extendFlag)
16150 U->C.S_C.LUK = U->C.S_M.LUK;
16153 if(MS0->S7.fluctuate == 0)
16154 U->C.S_M.MOV += U->C.S_M.MOV*[value doubleValue]/100;
16155 else if(MS0->S7.fluctuate == 1)
16156 U->C.S_M.MOV -= U->C.S_M.MOV*[value doubleValue]/100;
16157 else if(MS0->S7.fluctuate == 2)
16158 U->C.S_M.MOV = U->C.S_M.MOV*[value doubleValue]/100;
16160 if(U->C.S_M.MOV < 0)
16162 if(MS0->S7.extendFlag)
16163 U->C.S_C.MOV = U->C.S_M.MOV;
16166 if(MS0->S7.fluctuate == 0)
16167 U->C.S_M.MEL += U->C.S_M.MEL*[value doubleValue]/100;
16168 else if(MS0->S7.fluctuate == 1)
16169 U->C.S_M.MEL -= U->C.S_M.MEL*[value doubleValue]/100;
16170 else if(MS0->S7.fluctuate == 2)
16171 U->C.S_M.MEL = U->C.S_M.MEL*[value doubleValue]/100;
16173 if(U->C.S_C.MEL < 0)
16175 if(MS0->S7.extendFlag)
16176 U->C.S_C.MEL = U->C.S_M.MEL;
16179 if(MS0->S7.fluctuate == 0)
16180 U->C.S_C.MIS += U->C.S_M.MIS*[value doubleValue]/100;
16181 else if(MS0->S7.fluctuate == 1)
16182 U->C.S_C.MIS -= U->C.S_M.MIS*[value doubleValue]/100;
16183 else if(MS0->S7.fluctuate == 2)
16184 U->C.S_C.MIS = U->C.S_M.MIS*[value doubleValue]/100;
16186 if(U->C.S_C.MIS < 0)
16188 if(MS0->S7.extendFlag)
16189 U->C.S_C.MIS = U->C.S_M.MIS;
16192 if(MS0->S7.fluctuate == 0)
16193 U->C.S_M.HIT += U->C.S_M.HIT*[value doubleValue]/100;
16194 else if(MS0->S7.fluctuate == 1)
16195 U->C.S_M.HIT -= U->C.S_M.HIT*[value doubleValue]/100;
16196 else if(MS0->S7.fluctuate == 2)
16197 U->C.S_M.HIT = U->C.S_M.HIT*[value doubleValue]/100;
16199 if(U->C.S_M.HIT < 0)
16201 if(MS0->S7.extendFlag)
16202 U->C.S_C.HIT = U->C.S_M.HIT;
16205 if(MS0->S7.fluctuate == 0)
16206 U->C.S_M.DOD += U->C.S_M.DOD*[value doubleValue]/100;
16207 else if(MS0->S7.fluctuate == 1)
16208 U->C.S_M.DOD -= U->C.S_M.DOD*[value doubleValue]/100;
16209 else if(MS0->S7.fluctuate == 2)
16210 U->C.S_M.DOD = U->C.S_M.DOD*[value doubleValue]/100;
16212 if(U->C.S_M.DOD < 0)
16214 if(MS0->S7.extendFlag)
16215 U->C.S_C.DOD = U->C.S_M.DOD;
16218 if(MS0->S7.fluctuate == 0)
16219 U->C.S_M.REA += U->C.S_M.REA*[value doubleValue]/100;
16220 else if(MS0->S7.fluctuate == 1)
16221 U->C.S_M.REA -= U->C.S_M.REA*[value doubleValue]/100;
16222 else if(MS0->S7.fluctuate == 2)
16223 U->C.S_M.REA = U->C.S_M.REA*[value doubleValue]/100;
16225 if(U->C.S_M.REA < 0)
16227 if(MS0->S7.extendFlag)
16228 U->C.S_C.REA = U->C.S_M.REA;
16231 if(MS0->S7.fluctuate == 0)
16232 U->C.S_M.SKI += U->C.S_M.SKI*[value doubleValue]/100;
16233 else if(MS0->S7.fluctuate == 1)
16234 U->C.S_M.SKI -= U->C.S_M.SKI*[value doubleValue]/100;
16235 else if(MS0->S7.fluctuate == 2)
16236 U->C.S_M.SKI = U->C.S_M.SKI*[value doubleValue]/100;
16238 if(U->C.S_M.SKI < 0)
16240 if(MS0->S7.extendFlag)
16241 U->C.S_C.SKI = U->C.S_M.SKI;
16244 U->C.name = [MS0->S7.value retain];
16247 U->C.nameNick = [MS0->S7.value retain];
16250 U->C.nameClass = [MS0->S7.value retain];
16253 U->C.S_C.typeMONS = [MS0->S7.value doubleValue];
16256 U->C.S_C.typeMOVE = [MS0->S7.value doubleValue];
16259 if(MS0->S7.fluctuate == 0)
16260 U->C.S_M.cSupply += U->C.S_M.cSupply*[value doubleValue]/100;
16261 else if(MS0->S7.fluctuate == 1)
16262 U->C.S_M.cSupply -= U->C.S_M.cSupply*[value doubleValue]/100;
16263 else if(MS0->S7.fluctuate == 2)
16264 U->C.S_M.cSupply = U->C.S_M.cSupply*[value doubleValue]/100;
16266 if(U->C.S_M.cSupply < 0)
16267 U->C.S_M.cSupply = 0;
16268 if(MS0->S7.extendFlag)
16269 U->C.S_C.cSupply = U->C.S_M.cSupply;
16272 if(MS0->S7.fluctuate == 0)
16273 U->C.S_M.cFood += U->C.S_M.cFood*[value doubleValue]/100;
16274 else if(MS0->S7.fluctuate == 1)
16275 U->C.S_M.cFood -= U->C.S_M.cFood*[value doubleValue]/100;
16276 else if(MS0->S7.fluctuate == 2)
16277 U->C.S_M.cFood = U->C.S_M.cFood*[value doubleValue]/100;
16280 if(U->C.S_M.cFood < 0)
16281 U->C.S_M.cFood = 0;
16282 if(MS0->S7.extendFlag)
16283 U->C.S_C.cFood = U->C.S_M.cFood;
16286 if(MS0->S7.fluctuate == 0)
16287 U->C.S_M.cMoney += U->C.S_M.cMoney*[value doubleValue]/100;
16288 else if(MS0->S7.fluctuate == 1)
16289 U->C.S_M.cMoney -= U->C.S_M.cMoney*[value doubleValue]/100;
16290 else if(MS0->S7.fluctuate == 2)
16291 U->C.S_M.cMoney = U->C.S_M.cMoney*[value doubleValue]/100;
16293 if(U->C.S_M.cMoney < 0)
16294 U->C.S_M.cMoney = 0;
16295 if(MS0->S7.extendFlag)
16296 U->C.S_C.cMoney = U->C.S_M.cMoney;
16299 if(MS0->S7.fluctuate == 0)
16300 U->C.S_M.cWT += U->C.S_M.cWT*[value doubleValue]/100;
16301 else if(MS0->S7.fluctuate == 1)
16302 U->C.S_M.cWT -= U->C.S_M.cWT*[value doubleValue]/100;
16303 else if(MS0->S7.fluctuate == 2)
16304 U->C.S_M.cWT = U->C.S_M.cWT*[value doubleValue]/100;
16306 if(U->C.S_M.cWT < 0)
16308 if(MS0->S7.extendFlag)
16309 U->C.S_C.cWT = U->C.S_M.cWT;
16312 if(MS0->S7.fluctuate == 0)
16313 U->C.S_M.vigor += U->C.S_M.vigor*[value doubleValue]/100;
16314 else if(MS0->S7.fluctuate == 1)
16315 U->C.S_M.vigor -= U->C.S_M.vigor*[value doubleValue]/100;
16316 else if(MS0->S7.fluctuate == 2)
16317 U->C.S_M.vigor = U->C.S_M.vigor*[value doubleValue]/100;
16319 if(U->C.S_M.vigor < 0)
16320 U->C.S_M.vigor = 0;
16321 if(MS0->S7.extendFlag)
16322 U->C.S_C.vigor = U->C.S_M.vigor;
16335 -(MAPSCRIPT0*)setResource:(MAPSCRIPT0*)MS0{
16337 if(MS0->S6.team == 0){
16339 if(MS0->S6.RCsupply){
16340 if(MS0->S6.RCsupplyS){
16341 if(MS0->S6.RCsupplyAdd)
16342 P[0].resource += MS0->S6.RCsupplyValue;
16344 P[0].resource -= MS0->S6.RCsupplyValue;
16346 if(MS0->S6.RCsupplyAdd)
16347 P[0].resource += [Hensuu[MS0->S6.RCsupplySelect-1] intValue];
16349 P[0].resource -= [Hensuu[MS0->S6.RCsupplySelect-1] intValue];
16352 if(MS0->S6.RCfood){
16353 if(MS0->S6.RCfoodS){
16354 if(MS0->S6.RCfoodAdd)
16355 P[0].food += MS0->S6.RCfoodValue;
16357 P[0].food -= MS0->S6.RCfoodValue;
16359 if(MS0->S6.RCfoodAdd)
16360 P[0].food += [Hensuu[MS0->S6.RCfoodSelect-1] intValue];
16362 P[0].food -= [Hensuu[MS0->S6.RCfoodSelect-1] intValue];
16365 if(MS0->S6.RCmoney){
16366 if(MS0->S6.RCmoneyS){
16367 if(MS0->S6.RCmoneyAdd)
16368 P[0].money += MS0->S6.RCmoneyValue;
16370 P[0].money -= MS0->S6.RCmoneyValue;
16372 if(MS0->S6.RCmoneyAdd)
16373 P[0].money += [Hensuu[MS0->S6.RCmoneySelect-1] intValue];
16375 P[0].money -= [Hensuu[MS0->S6.RCmoneySelect-1] intValue];
16379 }else if(MS0->S6.team == 1){
16380 if(MS0->S6.RCsupply){
16381 if(MS0->S6.RCsupplyS){
16382 if(MS0->S6.RCsupplyAdd)
16383 P[1].resource += MS0->S6.RCsupplyValue;
16385 P[1].resource -= MS0->S6.RCsupplyValue;
16387 if(MS0->S6.RCsupplyAdd)
16388 P[1].resource += [Hensuu[MS0->S6.RCsupplySelect-1] intValue];
16390 P[1].resource -= [Hensuu[MS0->S6.RCsupplySelect-1] intValue];
16393 if(MS0->S6.RCfood){
16394 if(MS0->S6.RCfoodS){
16395 if(MS0->S6.RCfoodAdd)
16396 P[1].food += MS0->S6.RCfoodValue;
16398 P[1].food -= MS0->S6.RCfoodValue;
16400 if(MS0->S6.RCfoodAdd)
16401 P[1].food += [Hensuu[MS0->S6.RCfoodSelect-1] intValue];
16403 P[1].food -= [Hensuu[MS0->S6.RCfoodSelect-1] intValue];
16406 if(MS0->S6.RCmoney){
16407 if(MS0->S6.RCmoneyS){
16408 if(MS0->S6.RCmoneyAdd)
16409 P[1].money += MS0->S6.RCmoneyValue;
16411 P[1].money -= MS0->S6.RCmoneyValue;
16413 if(MS0->S6.RCmoneyAdd)
16414 P[1].money += [Hensuu[MS0->S6.RCmoneySelect-1] intValue];
16416 P[1].money -= [Hensuu[MS0->S6.RCmoneySelect-1] intValue];
16419 }else if(MS0->S6.team == 2){
16420 if(MS0->S6.RCsupply){
16421 if(MS0->S6.RCsupplyS){
16422 if(MS0->S6.RCsupplyAdd)
16423 P[2].resource += MS0->S6.RCsupplyValue;
16425 P[2].resource -= MS0->S6.RCsupplyValue;
16427 if(MS0->S6.RCsupplyAdd)
16428 P[2].resource += [Hensuu[MS0->S6.RCsupplySelect-1] intValue];
16430 P[2].resource -= [Hensuu[MS0->S6.RCsupplySelect-1] intValue];
16434 if(MS0->S6.RCfood){
16435 if(MS0->S6.RCfoodS){
16436 if(MS0->S6.RCfoodAdd)
16437 P[2].food += MS0->S6.RCfoodValue;
16439 P[2].food -= MS0->S6.RCfoodValue;
16441 if(MS0->S6.RCfoodAdd)
16442 P[2].food += [Hensuu[MS0->S6.RCfoodSelect-1] intValue];
16444 P[2].food -= [Hensuu[MS0->S6.RCfoodSelect-1] intValue];
16447 if(MS0->S6.RCmoney){
16448 if(MS0->S6.RCmoneyS){
16449 if(MS0->S6.RCmoneyAdd)
16450 P[2].money += MS0->S6.RCmoneyValue;
16452 P[2].money -= MS0->S6.RCmoneyValue;
16454 if(MS0->S6.RCmoneyAdd)
16455 P[2].money += [Hensuu[MS0->S6.RCmoneySelect-1] intValue];
16457 P[2].money -= [Hensuu[MS0->S6.RCmoneySelect-1] intValue];
16462 if(P[0].resource < 0) P[0].resource = 0;
16463 if(P[1].resource < 0) P[1].resource = 0;
16464 if(P[2].resource < 0) P[2].resource = 0;
16466 if(P[0].food < 0) P[0].food = 0;
16467 if(P[1].food < 0) P[1].food = 0;
16468 if(P[2].food < 0) P[2].food = 0;
16470 if(P[0].money < 0) P[0].money = 0;
16471 if(P[1].money < 0) P[1].money = 0;
16472 if(P[2].money < 0) P[2].money = 0;
16474 MS0->succeessfulFlag = true;
16475 MS0->endFlag = true;
16479 -(MAPSCRIPT0*)setLabel:(MAPSCRIPT0*)MS0{
16481 //NSLog(@"%d", MSDP0top->succeessfulFlag);
16482 MS0->succeessfulFlag = true;
16483 MS0->endFlag = true;
16487 -(MAPSCRIPT0*)setComment:(MAPSCRIPT0*)MS0{
16489 MS0->succeessfulFlag = true;
16490 MS0->endFlag = true;
16495 -(MAPSCRIPT0*)setSelection:(MAPSCRIPT0*)MS0{
16497 static bool initFlag = false;
16502 MAPSCRIPT2 *MS2top = MS0->S2;
16504 slctPoint.x = [mapWindow frame].origin.x + 100;
16505 slctPoint.y = [mapWindow frame].origin.y + 300;
16507 [slctBtn1 setHidden:YES];
16508 [slctBtn2 setHidden:YES];
16509 [slctBtn3 setHidden:YES];
16510 [slctBtn4 setHidden:YES];
16511 [slctBtn5 setHidden:YES];
16512 [slctBtn6 setHidden:YES];
16513 [slctBtn7 setHidden:YES];
16514 [slctBtn8 setHidden:YES];
16515 [slctBtn9 setHidden:YES];
16517 for(int i = 1;MS0->S2;i++){
16520 [slctBtn1 setTitle:MS0->S2->selection];
16521 [slctBtn1 setHidden:NO];
16522 [selectionWindow setFrame:NSMakeRect(slctPoint.x, slctPoint.y, 400, 60) display:YES];
16525 [slctBtn2 setTitle:MS0->S2->selection];
16526 [slctBtn2 setHidden:NO];
16527 [selectionWindow setFrame:NSMakeRect(slctPoint.x, slctPoint.y, 400, 90) display:YES];
16530 [slctBtn3 setTitle:MS0->S2->selection];
16531 [slctBtn3 setHidden:NO];
16532 [selectionWindow setFrame:NSMakeRect(slctPoint.x, slctPoint.y, 400, 120) display:YES];
16536 [slctBtn4 setTitle:MS0->S2->selection];
16537 [slctBtn4 setHidden:NO];
16538 [selectionWindow setFrame:NSMakeRect(slctPoint.x, slctPoint.y, 400, 150) display:YES];
16541 [slctBtn5 setTitle:MS0->S2->selection];
16542 [slctBtn5 setHidden:NO];
16543 [selectionWindow setFrame:NSMakeRect(slctPoint.x, slctPoint.y, 400, 180) display:YES];
16546 [slctBtn6 setTitle:MS0->S2->selection];
16547 [slctBtn6 setHidden:NO];
16548 [selectionWindow setFrame:NSMakeRect(slctPoint.x, slctPoint.y, 400, 210) display:YES];
16551 [slctBtn7 setTitle:MS0->S2->selection];
16552 [slctBtn7 setHidden:NO];
16553 [selectionWindow setFrame:NSMakeRect(slctPoint.x, slctPoint.y, 400, 240) display:YES];
16556 [slctBtn8 setTitle:MS0->S2->selection];
16557 [slctBtn8 setHidden:NO];
16558 [selectionWindow setFrame:NSMakeRect(slctPoint.x, slctPoint.y, 400, 270) display:YES];
16561 [slctBtn9 setTitle:MS0->S2->selection];
16562 [slctBtn9 setHidden:NO];
16563 [selectionWindow setFrame:NSMakeRect(slctPoint.x, slctPoint.y, 400, 300) display:YES];
16568 MS0->S2 = MS0->S2->next;
16574 [selectionWindow makeKeyAndOrderFront:nil];
16578 if(slctedBtnNum > 0){
16579 MAPSCRIPT0 *CRMS0 = MS0;
16583 MS0->endFlag = false;
16587 MAPSCRIPT2 *MS2top = MS0->S2;
16590 for(int i = 1;i < slctedBtnNum;i++){
16591 MS0->S2 = MS0->S2->next;
16598 if([CRMS2->labelJump isEqualToString:MS0->label]){
16599 MS0->endFlag = false;
16605 if([CRMS2->labelJump isEqualToString:MS0->next->label]){
16606 if(MS0->type == 6 && MS0->endFlag){
16609 MS0->succeessfulFlag = true;
16611 MS0->endFlag = true;
16615 if(MS0->type == 6 && MS0->endFlag){
16618 MS0->succeessfulFlag = true;
16620 MS0->endFlag = true;
16629 MS0->endFlag = true;
16630 MS0->succeessfulFlag = true;
16638 -(MAPSCRIPT0*)setAppearance:(MAPSCRIPT0*)MS0{
16648 if(unitNum[x][y] == -1){
16654 unitTeam[x][y] = MS0->S3->team;
16655 unitNum[x][y] = u.chipNumb;
16656 loadNum[x][y] = u.chipNumb;
16657 [self addAppearanceStatus:u x:x y:y];
16665 int *p = calloc(1, sizeof(int));
16666 int *o = calloc(1, sizeof(int));
16667 appearanceSAIKIflag = false;
16670 for (int i = 0;i < 1002;i++) {
16671 for (int k = 0;k < 1002;k++) {
16676 [self checkAppearanceRange:5 tX:y tY:x aMap:apprR];
16679 for (int i = 0;i < 1002;i++) {
16680 for (int k = 0;k < 1002;k++) {
16681 if(apprR[i][k] > postInt && unitNum[i][k] == -1){
16682 postInt = apprR[i][k];
16689 if(*p > 0 && *o >0){
16692 unitTeam[x][y] = MS0->S3->team;
16693 unitNum[x][y] = u.chipNumb;
16694 loadNum[x][y] = u.chipNumb;
16695 [self addAppearanceStatus:u x:x y:y];
16697 MS0->succeessfulFlag = false;
16698 MS0->endFlag = true;
16704 MS0->S3 = MS0->S3->next;
16706 unitColorInitFlag = true;
16708 MS0->succeessfulFlag = true;
16709 MS0->endFlag = true;
16713 -(MAPSCRIPT0*)setDissappearance:(MAPSCRIPT0*)MS0{
16726 if(MS0->S5->unitNum >= 0){
16727 unitNum[x][y] = -1;
16728 unitTeam[x][y] = -1;
16729 unitNum[x][y] = -1;
16730 loadNum[x][y] = -1;
16734 if(U->ix == x && U->iy == y)
16744 MS0->succeessfulFlag = false;
16745 MS0->endFlag = true;
16751 MS0->S5 = MS0->S5->next;
16753 unitColorInitFlag = true;
16755 MS0->succeessfulFlag = true;
16756 MS0->endFlag = true;
16761 -(void)checkAppearanceRange:(int)cnsPow tX:(int)startX tY:(int)startY aMap:(int[][1002])aMap{
16763 if(cnsPow < 0) return;
16766 if(aMap[startY][startX] <= cnsPow)
16767 aMap[startY][startX] = cnsPow;
16769 if(startY < 0) startY = 0;
16770 if(startX < 0) startX = 0;
16771 if(cnsPow < 0) cnsPow = 0;
16775 if(aMap[startY-1][startX] >= 0 && cnsPow > 0)
16776 [self checkAppearanceRange:i0 tX:startX tY:startY-1 aMap:aMap];
16779 if(aMap[startY+1][startX] >= 0 && cnsPow > 0)
16780 [self checkAppearanceRange:i0 tX:startX tY:startY+1 aMap:aMap];
16783 if(aMap[startY][startX-1] >= 0 && cnsPow > 0)
16784 [self checkAppearanceRange:i0 tX:startX-1 tY:startY aMap:aMap];
16787 if(aMap[startY][startX+1] >= 0 && cnsPow > 0)
16788 [self checkAppearanceRange:i0 tX:startX+1 tY:startY aMap:aMap];
16792 -(void)addAppearanceStatus:(UNITCHIP)u x:(int)x y:(int)y{
16797 while (U->next) {omgCnt++;
16800 U->next = calloc(1, sizeof(UNIT));
16803 if(omgCnt == 0) U = UTop;
16804 U->number = registerNum;
16805 U->chipNumber = -1;
16806 U->chipNumberL = -1;
16807 U->C.chipNumb = -1;
16808 U->CL.chipNumb = -1;
16814 if(unitTeam[x][y] == 0 || unitTeam[x][y] == 1){
16816 if(unitTeam[x][y] == 1){
16817 U->joinArmyFromNext = true;
16818 U->persuasion = true;
16820 if(MF[MFselectedRow+1].MS.playerSet1 == 2)
16824 if(unitTeam[x][y] == 2 || unitTeam[x][y] == 3){
16826 if(unitTeam[x][y] == 3){
16827 U->joinArmyFromNext = true;
16828 U->persuasion = true;
16830 if(MF[MFselectedRow+1].MS.playerSet2 == 2)
16834 if(unitTeam[x][y] == 4 || unitTeam[x][y] == 5){
16836 if(unitTeam[x][y] == 5){
16837 U->joinArmyFromNext = true;
16838 U->persuasion = true;
16842 if(unitTeam[x][y] == -1){
16844 if(unitTeam[x][y] == 0){
16845 U->joinArmyFromNext = false;
16846 U->persuasion = true;
16850 unitNum[x][y] = u.chipNumb;
16851 [self SetUnitStatus:unitNum[x][y]];
16853 for(int i = 0;i < UCN;i++){
16854 if([U->C.nameID isEqualToString:UC[i].nameID])
16857 for(int i = 0;i < LCN;i++){
16858 if([U->CL.nameID isEqualToString:LC[i].nameID])
16859 U->chipNumberL = i;
16861 for(int i = 0;i < UCN;i++){
16862 if([U->C.nameID isEqualToString:UC[i].nameID])
16865 for(int i = 0;i < LCN;i++){
16866 if([U->CL.nameID isEqualToString:LC[i].nameID])
16867 U->CL.chipNumb = i;
16876 -(MAPSCRIPT0*)setWait:(MAPSCRIPT0*)MS0{
16878 static bool waitin = false;
16882 waitinTime = MS0->wait;
16887 waitSwtichFlag = true;
16889 if(waitAllOverFlag){
16890 MS0->succeessfulFlag = true;
16891 MS0->endFlag = true;
16892 waitAllOverFlag = false;
16893 waitSwtichFlag = false;
16895 waitx10flag = false;
16902 -(MAPSCRIPT0*)setBGM:(MAPSCRIPT0*)MS0{
16907 BGMsub = [MS0->BGM.snd retain];
16909 [BGMsub setLoops:NO];
16912 MS0->succeessfulFlag = true;
16913 MS0->endFlag = true;
16918 -(MAPSCRIPT0*)setSE:(MAPSCRIPT0*)MS0{
16922 SEsub = [MS0->SE.snd retain];
16926 MS0->succeessfulFlag = true;
16927 MS0->endFlag = true;
16932 -(MAPSCRIPT0*)setTitleBack:(MAPSCRIPT0*)MS0{
16934 backTitleFlag = true;
16935 battleBegin = false;
16937 MS0->succeessfulFlag = true;
16938 MS0->endFlag = true;
16943 -(MAPSCRIPT0*)setStageClear:(MAPSCRIPT0*)MS0{
16945 stageClearFlag = true;
16947 if(MS0->sc.edcdFlag)
16948 stageClearFlag2 = true;
16949 battleBegin = false;
16951 MS0->succeessfulFlag = true;
16952 MS0->endFlag = true;
16957 -(MAPSCRIPT0*)setGameOver:(MAPSCRIPT0*)MS0{
16959 gaov.img = MS0->gaov.img;
16961 gameOverFlag = true;
16962 battleBegin = false;
16964 MS0->succeessfulFlag = true;
16965 MS0->endFlag = true;
16970 -(IBAction)gameOverSubmit:(id)sender{
16978 [GameOverWindow close];
16979 [titleWindow makeKeyAndOrderFront:nil];
16983 -(IBAction)battleReadyUpStartBtn:(id)sender{
16986 P[0].resource = [battleReadyUpSupply1 intValue];
16987 P[0].food = [battleReadyUpFood1 intValue];
16988 P[0].money = [battleReadyUpMoney1 intValue];
16990 P[1].resource = [battleReadyUpSupply2 intValue];
16991 P[1].food = [battleReadyUpFood2 intValue];
16992 P[1].money = [battleReadyUpMoney2 intValue];
16994 setBattleModeFlag = false;
16999 -(IBAction)battleReadyUpState1:(id)sender{
17000 retardhelp1 = true;
17002 -(IBAction)battleReadyUpState2:(id)sender{
17003 retardhelp2 = true;
17012 -(IBAction)selectionBtn1:(id)sender{
17014 [selectionWindow close];
17016 -(IBAction)selectionBtn2:(id)sender{
17018 [selectionWindow close];
17020 -(IBAction)selectionBtn3:(id)sender{
17022 [selectionWindow close];
17024 -(IBAction)selectionBtn4:(id)sender{
17026 [selectionWindow close];
17028 -(IBAction)selectionBtn5:(id)sender{
17030 [selectionWindow close];
17032 -(IBAction)selectionBtn6:(id)sender{
17034 [selectionWindow close];
17036 -(IBAction)selectionBtn7:(id)sender{
17038 [selectionWindow close];
17040 -(IBAction)selectionBtn8:(id)sender{
17042 [selectionWindow close];
17044 -(IBAction)selectionBtn9:(id)sender{
17046 [selectionWindow close];
17053 NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
17054 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
17057 NSData *InitialData = [NSData dataWithContentsOfFile:@"data/Others/var.txt"];
17058 NSString *pathVar = @"data/Others/var.txt";
17059 NSString *fileData = @"";
17062 [[NSFileManager defaultManager] createFileAtPath:pathVar contents:nil attributes:nil];
17066 fileData = [NSString stringWithContentsOfFile:pathVar encoding:NSUTF8StringEncoding error:nil];
17067 NSArray *fileDataArray = [fileData componentsSeparatedByString:@"\n"];
17069 for(int i = 0;i < [fileDataArray count];i++){
17071 NSArray *item = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
17073 Hensuu[i] = [[item objectAtIndex:1] retain];
17074 HensuuName[i] = [[item objectAtIndex:2] retain];
17082 -(void)displaySideMenu{
17084 [FSMenu setFrameOrigin:NSMakePoint([fsWindow frame].origin.x + [fsWindow frame].size.width/2 - FSMenu.frame.size.width/2,
17085 [fsWindow frame].origin.y + [fsWindow frame].size.height/2 - FSMenu.frame.size.height/2)];
17088 attackFlag = false;
17089 summonFlag = false;
17090 menuDisplayFlag = false;
17091 [FSMenu makeKeyAndOrderFront:nil];
17096 -(IBAction)FSVsave:(id)sender{
17098 [saveGamePanel setFrameOrigin:NSMakePoint([fsWindow frame].origin.x + [fsWindow frame].size.width/2 - saveGamePanel.frame.size.width/2,
17099 [fsWindow frame].origin.y + [fsWindow frame].size.height/2 - saveGamePanel.frame.size.height/2)];
17101 [self saveGameDataDatViewImage];
17103 [saveGameTF setStringValue:@""];
17105 [saveGamePanel makeKeyAndOrderFront:nil];
17109 -(IBAction)FSVtitle:(id)sender{
17111 stopByFSVmenuFlag = false;
17114 if(titleBGM) [titleBGM play];
17116 [titleWindow makeKeyAndOrderFront:nil];
17123 endGameCondition = false;
17124 initMapFlag = false;
17125 TeamCountFlag = false;
17126 initStatusFlag = false;
17127 battleBegin = false;
17130 cpuModeMOVEflag = false;
17131 cpuModeATTACKflag = false;
17133 redWinFlag = false;
17134 blueWinFlag = false;
17135 cpuAImodeflag = false;
17136 cpuTurnEndFlag = true;
17137 backTitleFlag = false;
17138 backTitleFlag2 = true;
17139 waitSwtichFlag = false;
17140 battleReadyUpFlag = false;
17141 setBattleModeFlag = false;
17142 mapChipDataLoadProc = 0;
17150 -(IBAction)FSVcancel:(id)sender{
17152 stopByFSVmenuFlag = false;
17159 -(void)displaySaveFileDialog{
17161 [saveDataList initFileDirectory];
17162 [self initSaveFileInputList];
17163 [saveFileDialog makeKeyAndOrderFront:nil];
17167 -(IBAction)saveFileInputSubmit:(id)sender{
17169 if([saveFileInputTF stringValue] == nil || [[saveFileInputTF stringValue] isEqualToString:@""]){
17173 saveFileNameSDL = [[saveFileInputTF stringValue] retain];
17174 SC[storyNumb].saveFileName = [saveFileNameSDL retain];
17175 [saveDataList saveSaveList];
17176 [levelList saveLevelList];
17178 [titleWindow makeKeyAndOrderFront:nil];
17179 [saveFileInputPanel close];
17181 -(IBAction)saveFileInputCancel:(id)sender{
17184 [titleWindow makeKeyAndOrderFront:nil];
17185 [saveFileInputPanel close];
17188 -(IBAction)saveFileDialogSubmit:(id)sender{
17190 saveFileFlag = true;
17191 [saveFileInputPanel makeKeyAndOrderFront:nil];
17193 [saveFileDialog close];
17196 -(IBAction)saveFileDialogCancel:(id)sender{
17198 saveFileNameSDL = [@"preset.txt" retain];
17199 SC[storyNumb].saveFileName = [saveFileNameSDL retain];
17200 [saveDataList saveSaveList];
17202 saveFileFlag = true;
17203 [titleWindow makeKeyAndOrderFront:nil];
17206 [saveFileDialog close];
17210 -(void)initSaveFileInputList{
17212 [self willChangeValueForKey:@"saveFileInputListMA"];
17213 [saveFileInputListMA removeAllObjects];
17214 [self didChangeValueForKey:@"saveFileInputListMA"];
17217 for(int i = 1;i <= saveNumb;i++){
17220 NSMutableDictionary* dict = [NSMutableDictionary new];
17221 [dict setValue:[NSString stringWithFormat:@"%@", SDL[i].name] forKey:@"name"];
17222 [self willChangeValueForKey:@"saveFileInputListMA"];
17223 [saveFileInputListMA addObject:dict];
17224 [self didChangeValueForKey:@"saveFileInputListMA"];
17229 -(void)initLoadFileOutputList{
17231 [self willChangeValueForKey:@"loadFileOutputListMA"];
17232 [loadFileOutputListMA removeAllObjects];
17233 [self didChangeValueForKey:@"loadFileOutputListMA"];
17236 for(int i = 1;i <= saveNumb;i++){
17239 if([SC[storyNumb].name isEqualToString:SDL[i].levelName]){
17240 NSMutableDictionary* dict = [NSMutableDictionary new];
17241 [dict setValue:[NSString stringWithFormat:@"%@", SDL[i].name] forKey:@"name"];
17242 [self willChangeValueForKey:@"loadFileOutputListMA"];
17243 [loadFileOutputListMA addObject:dict];
17244 [self didChangeValueForKey:@"loadFileOutputListMA"];
17249 [loadFileOutputListAC setSelectionIndex:9999];
17251 [loadFileOutputTF setStringValue:[NSString stringWithFormat:@""]];
17253 [loadFileOutputPanel makeKeyAndOrderFront:nil];
17257 -(IBAction)loadFileOutputSubmit:(id)sender{
17262 SC[storyNumb].saveFileName = [SDL[SDLrow+1].name retain];
17263 SC[storyNumb].CrntLevelName = [SDL[SDLrow+1].levelName retain];
17264 SC[storyNumb].scenarioNumbCrnt[scenarioNumb] = [NSString stringWithFormat:@"%d", SDL[SDLrow+1].scenarioNumbCrnt];
17265 SC[storyNumb].scenarioNumbNext[scenarioNumb] = [NSString stringWithFormat:@"%d", SDL[SDLrow+1].scenarioNumbNext];
17267 [levelList saveLevelList];
17268 [scenarioList initFileDirectory];
17269 [mapEditor initFileDirectoryOthers];
17270 [scenarioList setScenarioList:selectNumb];
17272 [loadFileOutputPanel close];
17275 -(void)initFileOutPutListSet{
17277 SC[storyNumb].saveFileName = NULL;
17279 [levelList saveLevelList];
17280 [scenarioList setScenarioList:selectNumb];
17283 -(IBAction)loadFileOutputCancel:(id)sender{
17285 [loadFileOutputPanel close];
17295 -(IBAction)saveGameSubmit:(id)sender{
17297 if([[saveGameTF stringValue] isEqualToString:@""])
17300 sdd.name = [[saveGameTF stringValue] retain];
17301 datFilePath = calloc(255, sizeof(char));
17302 strcpy(datFilePath, [sdd.name UTF8String]);
17304 [self saveGameDataDatViewImage];
17305 [self saveGameDataDat];
17306 [saveDataList initSaveList];
17308 [saveGamePanel close];
17312 -(void)saveGameDataDatViewImage{
17314 NSString *directoryPath;
17316 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
17317 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
17319 [fieldView lockFocus];
17320 NSBitmapImageRep* rep = [fieldView bitmapImageRepForCachingDisplayInRect:fieldView.bounds];
17321 [fieldView cacheDisplayInRect:fieldView.bounds toBitmapImageRep:rep];
17322 [fieldView unlockFocus];
17324 NSMutableData* data = [rep representationUsingType:NSPNGFileType properties:nil];
17325 sdd.img = [[[NSImage alloc] initWithData:data] retain];
17327 [saveGameIV setImage:sdd.img];
17328 [saveGameIV setImageScaling:NSScaleToFit];
17331 NSString *path = @"SaveData/";
17333 NSArray *ary = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:nil];
17335 [SAV removeAllObjects];
17336 for(NSString *name in ary){
17338 NSArray *arr = [name componentsSeparatedByString:@".sav"];
17340 if([arr count] > 1){
17341 [SAV addObject:name];
17345 [self willChangeValueForKey:@"saveGameListMA"];
17346 [saveGameListMA removeAllObjects];
17347 [self didChangeValueForKey:@"saveGameListMA"];
17349 for(int i = 0;i < [SAV count];i++){
17351 NSMutableDictionary* dict = [NSMutableDictionary new];
17352 [dict setValue:[NSString stringWithFormat:@"%@", SAV[i]] forKey:@"name"];
17354 [self willChangeValueForKey:@"saveGameListMA"];
17355 [saveGameListMA addObject:dict];
17356 [self didChangeValueForKey:@"saveGameListMA"];
17360 [saveGameListAC setSelectionIndex:9999];
17364 -(void)loadGameDataDat{
17374 NSString *directoryPath;
17375 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
17376 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
17379 NSString *path = @"SaveData/";
17380 path = [path stringByAppendingString:SAV[SDLrow]];
17382 NSData *data = [[NSData alloc] initWithContentsOfFile:path];
17384 MFselectedRow = sdd2[datRow].MFselectedRow;
17385 MF[MFselectedRow+1].fileName = sdd2[datRow].mapfileName;
17387 storyNumb = sdd2[datRow].storyNumb;
17388 scenarioNumb = sdd2[datRow].scenarioNumb;
17390 SC[storyNumb].name = sdd2[datRow].levelName;
17391 SC[storyNumb].nameMAP[scenarioNumb] = sdd2[datRow].scenarioName;
17393 posX = sdd2[datRow].posX;
17394 posX = sdd2[datRow].posY;
17396 chipHeight = sdd2[datRow].chipHeight;
17397 chipWidth = sdd2[datRow].chipWidth;
17398 eSlctX = sdd2[datRow].eSlctX;
17399 eSlctY = sdd2[datRow].eSlctY;
17401 registerNum = sdd2[datRow].registerNum;
17402 registerNumB = sdd2[datRow].registerNumB;
17404 esSceneProc = sdd2[datRow].esSceneProc;
17406 endGameCondition = sdd2[datRow].endGameCondition;
17407 initMapFlag = sdd2[datRow].initMapFlag;
17408 TeamCountFlag = sdd2[datRow].TeamCountFlag;
17409 initStatusFlag = sdd2[datRow].initStatusFlag;
17410 battleBegin = sdd2[datRow].battleBegin;
17411 startES = sdd2[datRow].startES;
17413 cpuAImodeflag = sdd2[datRow].cpuAImodeflag;
17414 cpuTurnEndFlag = sdd2[datRow].cpuTurnEndFlag;
17415 cpuModeMOVEflag = sdd2[datRow].cpuModeMOVEflag;
17416 cpuModeATTACKflag = sdd2[datRow].cpuModeATTACKflag;
17417 waitSwtichFlag = sdd2[datRow].waitSwtichFlag;
17418 battleReadyUpFlag = sdd2[datRow].battleReadyUpFlag;
17419 setBattleModeFlag = sdd2[datRow].setBattleModeFlag;
17421 wtRdy = sdd2[datRow].wtRdy;
17422 wtRdy2 = sdd2[datRow].wtRdy2;
17423 wtRdy3 = sdd2[datRow].wtRdy3;
17425 wtMovedFlag = sdd2[datRow].wtMovedFlag;
17426 wtAttackedFlag = sdd2[datRow].wtAttackedFlag;
17427 unitMoveEndFlag = sdd2[datRow].unitMoveEndFlag;
17428 battleSetUp = sdd2[datRow].battleSetUp;
17429 pushStanbyFlag = sdd2[datRow].pushStanbyFlag;
17430 battleEndFlag = sdd2[datRow].battleEndFlag;
17431 wtUnitNum = sdd2[datRow].wtUnitNum;
17432 messageDialog = sdd2[datRow].messageDialog;
17435 for(int i = 0;i < 1002;i++){
17436 for(int j = 0;j < 1002;j++){
17437 chipNum[i][j] = sdd2[datRow].chipNum[i][j];
17441 for(int i = 0;i < 1002;i++){
17442 for(int j = 0;j < 1002;j++){
17443 buildNum[i][j] = sdd2[datRow].buildNum[i][j];
17447 for(int i = 0;i < 1002;i++){
17448 for(int j = 0;j < 1002;j++){
17449 unitNum[i][j] = sdd2[datRow].unitNum[i][j];
17453 for(int i = 0;i < 1002;i++){
17454 for(int j = 0;j < 1002;j++){
17455 loadNum[i][j] = sdd2[datRow].loadNum[i][j];
17459 for(int i = 0;i < 1002;i++){
17460 for(int j = 0;j < 1002;j++){
17461 buildTeam[i][j] = sdd2[datRow].buildTeam[i][j];
17465 for(int i = 0;i < 1002;i++){
17466 for(int j = 0;j < 1002;j++){
17467 unitTeam[i][j] = sdd2[datRow].unitTeam[i][j];
17472 P[0] = sdd2[datRow].P[0];
17473 P[1] = sdd2[datRow].P[1];
17474 P[2] = sdd2[datRow].P[2];
17476 for(int i = 0;i < 9999;i++)
17477 Suicchi[i] = sdd2[datRow].Suicchi[i];
17479 sdd.HensuuNum = HensuuNum;
17480 for(int i = 0;i < 65000;i++)
17481 Hensuu[i] = [sdd2[datRow].Hensuu[i] retain];
17482 for(int i = 0;i < 65000;i++)
17483 HensuuName[i] = [sdd2[datRow].HensuuName[i] retain];
17485 MF[MFselectedRow+1].MS = sdd2[datRow].MS;
17486 MF[MFselectedRow+1].MS.D = sdd2[datRow].MS.D;
17493 Uselected = sdd.Uselected;
17494 unitBreak = sdd.unitBreak;
17495 Utarget = sdd.Utarget;
17499 //NSLog(@"%d", MF[MFselectedRow+1].MS.playerSet1);
17502 -(void)saveGameDataDat{
17506 sdd.name = [[saveGameTF stringValue] retain];
17508 sdd.MFselectedRow = MFselectedRow;
17509 sdd.storyNumb = storyNumb;
17510 sdd.scenarioNumb = scenarioNumb;
17512 sdd.mapfileName = [MF[MFselectedRow+1].fileName retain];
17513 sdd.levelName = [SC[storyNumb].name retain];
17514 sdd.scenarioName = [SC[storyNumb].nameMAP[scenarioNumb] retain];
17519 sdd.chipHeight = chipHeight;
17520 sdd.chipWidth = chipWidth;
17521 sdd.eSlctX = eSlctX;
17522 sdd.eSlctY = eSlctY;
17524 sdd.registerNum = registerNum;
17525 sdd.registerNumB = registerNumB;
17527 sdd.esSceneProc = esSceneProc;
17529 sdd.endGameCondition = endGameCondition;
17530 sdd.initMapFlag = initMapFlag;
17531 sdd.TeamCountFlag = TeamCountFlag;
17532 sdd.initStatusFlag = initStatusFlag;
17533 sdd.battleBegin = battleBegin;
17534 sdd.startES = startES;
17536 sdd.cpuModeMOVEflag = cpuModeMOVEflag;
17537 sdd.cpuModeATTACKflag = cpuModeATTACKflag;
17539 sdd.cpuAImodeflag = cpuAImodeflag;
17540 sdd.cpuTurnEndFlag = cpuTurnEndFlag;
17541 sdd.waitSwtichFlag = waitSwtichFlag;
17542 sdd.battleReadyUpFlag = battleReadyUpFlag;
17543 sdd.setBattleModeFlag = setBattleModeFlag;
17547 sdd.wtRdy2 = wtRdy2;
17548 sdd.wtRdy3 = wtRdy3;
17551 sdd.wtMovedFlag = wtMovedFlag;
17552 sdd.wtAttackedFlag = wtAttackedFlag;
17553 sdd.unitMoveEndFlag = unitMoveEndFlag;
17554 sdd.battleSetUp = battleSetUp;
17555 sdd.pushStanbyFlag = pushStanbyFlag;
17556 sdd.battleEndFlag = battleEndFlag;
17557 sdd.wtUnitNum = wtUnitNum;
17558 sdd.messageDialog = messageDialog;
17561 for(int i = 0;i < 1002;i++){
17562 for(int j = 0;j < 1002;j++){
17563 sdd.chipNum[i][j] = chipNum[i][j];
17567 for(int i = 0;i < 1002;i++){
17568 for(int j = 0;j < 1002;j++){
17569 sdd.buildNum[i][j] = buildNum[i][j];
17573 for(int i = 0;i < 1002;i++){
17574 for(int j = 0;j < 1002;j++){
17575 sdd.unitNum[i][j] = unitNum[i][j];
17579 for(int i = 0;i < 1002;i++){
17580 for(int j = 0;j < 1002;j++){
17581 sdd.loadNum[i][j] = loadNum[i][j];
17585 for(int i = 0;i < 1002;i++){
17586 for(int j = 0;j < 1002;j++){
17587 sdd.buildTeam[i][j] = buildTeam[i][j];
17591 for(int i = 0;i < 1002;i++){
17592 for(int j = 0;j < 1002;j++){
17593 sdd.unitTeam[i][j] = unitTeam[i][j];
17600 while(U && r < registerNum){
17601 sdd.dU[r].CPU = U->CPU;
17602 sdd.dU[r].number = U->number;
17603 sdd.dU[r].team = U->team;
17604 sdd.dU[r].chipNumber = U->chipNumber;
17605 sdd.dU[r].chipNumberL = U->chipNumberL;
17607 sdd.dU[r].x = U->x;
17608 sdd.dU[r].y = U->y;
17609 sdd.dU[r].z = U->z;
17611 sdd.dU[r].ix = U->ix;
17612 sdd.dU[r].iy = U->iy;
17613 sdd.dU[r].iz = U->iz;
17615 sdd.dU[r].dead = U->dead;
17617 sdd.dU[r].loadChipFlag = U->loadChipFlag;
17619 sdd.dU[r].unControlable = U->unControlable;
17620 sdd.dU[r].joinArmyFromNext = U->joinArmyFromNext;
17621 sdd.dU[r].persuasion = U->persuasion;
17623 sdd.dU[r].targType1L = U->targType1L;
17624 sdd.dU[r].targType2L = U->targType2L;
17625 sdd.dU[r].targType1D = U->targType1D;
17626 sdd.dU[r].targType2D = U->targType2D;
17628 sdd.dU[r].army = U->army;
17629 sdd.dU[r].img = [U->img retain];
17631 sdd.dU[r].C.chipNumb = U->C.chipNumb;
17632 sdd.dU[r].C.name = [U->C.name retain];
17633 sdd.dU[r].C.nameNick = [U->C.nameNick retain];
17634 sdd.dU[r].C.nameClass = [U->C.nameClass retain];
17635 sdd.dU[r].C.nameID = [U->C.nameID retain];
17637 sdd.dU[r].C.R_C = U->C.R_C;
17638 sdd.dU[r].C.S_C = U->C.S_C;
17646 while(B && r < registerNumB){
17647 sdd.dB[r].number = B->number;
17648 sdd.dB[r].team = B->team;
17649 sdd.dB[r].chipNumber = B->chipNumber;
17650 sdd.dB[r].makeLv = B->makeLv;
17652 sdd.dB[r].x = B->x;
17653 sdd.dB[r].y = B->y;
17654 sdd.dB[r].z = B->z;
17656 sdd.dB[r].dead = B->dead;
17658 sdd.dB[r].img = [B->img retain];
17659 sdd.dB[r].C.chipNumb = B->C.chipNumb;
17660 sdd.dB[r].C.name = [B->C.name retain];
17661 sdd.dB[r].C.nameID = [B->C.nameID retain];
17662 sdd.dB[r].C.S_C = B->C.S_C;
17673 for(int i = 0;i < 9999;i++)
17674 sdd.Suicchi[i] = Suicchi[i];
17676 sdd.HensuuNum = HensuuNum;
17677 for(int i = 0;i < 65000;i++)
17678 sdd.Hensuu[i] = [Hensuu[i] retain];
17679 for(int i = 0;i < 65000;i++)
17680 sdd.HensuuName[i] = [HensuuName[i] retain];
17682 MAPSCRIPT MS = MF[MFselectedRow+1].MS;
17689 -(NSData *)sddToNSData:(NSString *) path{
17692 NSData *archivedData = [NSKeyedArchiver archivedDataWithRootObject:sdd];
17694 [archivedData writeToFile:path atomically:YES];
17696 return archivedData;
17702 -(IBAction)saveGameCancel:(id)sender{
17704 [saveGamePanel close];
17714 @implementation FieldSceneEF
17721 - (id)initWithFrame:(NSRect)frame
17723 self = [super initWithFrame:frame];
17725 // Initialization code here.
17727 scheduledTimerWithTimeInterval:0.015
17729 selector:@selector(EventLoopBV:)
17738 -(void)scrollWheel:(NSEvent *)theEvent{
17744 -(void)EventLoopBV:(NSTimer*)timer{
17746 [battleView setNeedsDisplay:YES];
17748 static int aniFrame = 0;
17750 if(animationFlag3){
17756 if(!animationFlag1 && !animationFlag2){
17767 U->C.A = attackCR2;
17769 static bool pussyMikoto = false;
17773 ani = U->C.A->AN.ANI;
17776 for (int i = 0; i < aniFrameCnt;i++) {
17781 [ani->snd setCurrentTime:0];
17783 ani->snd.loops = NO;
17786 pussyMikoto = true;
17790 U->C.A->AN.ANI = ani;
17793 if(aniFrame < U->C.A->AN.frame){
17799 pussyMikoto = false;
17800 animationFlag3 = true;
17808 [self setNeedsDisplay:YES];
17813 -(void)DrawImage:(NSImage*)image x:(float)x y:(float)y a:(float)a{
17815 frRect.size.height = image.size.height;
17816 frRect.size.width = image.size.width;
17818 frRect.origin.x = 0;
17819 frRect.origin.y = 0;
17822 drRect.origin.x = x;
17823 drRect.origin.y = y;
17824 drRect.size.height = image.size.height;
17825 drRect.size.width = image.size.width;
17827 [image drawInRect:drRect fromRect:frRect operation:NSCompositeSourceOver fraction:a respectFlipped:YES hints:nil];
17831 - (void)drawRect:(NSRect)dirtyRect
17833 // Drawing code here.
17834 if(animationFlag3) return;
17839 if(animationFlag1 || animationFlag2){
17845 U->C.A = attackCR2;
17847 ani = U->C.A->AN.ANI;
17852 for (int i = 0; i < aniFrameCnt;i++) {
17860 [self DrawImage:ani->img x:ani->x + ani->ax y:ani->y + ani->ay a:1.0f];