CString GetTargName(UniqueID u) { CString name; name = LoadResString(IDS_PLACENAMES_START + u); if (name.IsEmpty()) { info_itemS* p = *Persons2::SlowConvertPtrUID(u); if (p) if (p->Status.size!=WAYPOINTSIZE) { if (p->SGT != UID_Null) { name = GetTargName(p->SGT)+": "+GetShapeName(ShapeNum(p->shape.Evaluate())); }else { name = GetShapeName(ShapeNum(p->shape.Evaluate())); } } else { name = LoadResString(IDS_WAYPOINT) + ": "; name = name + LoadResString(Profile::WPType(u)); } } // char buff[10]; // sprintf(buff,"targ %04x",(UWord)u); return (name); }
void CDamage::FillList() { //DeadCode JIM 20Oct00 int setindex=-1; //DeadCode JIM 20Oct00 int listlen=0; CRListBox* l=GETDLGITEM(IDC_LIST_ELEMENTS); l->Clear(); //Find damage info for group int de=numdamagedelts; while(de-->0) breakif (damagedelements[de].loadedid==groupnum); if (de>=0) { int specificeltdamage=de; UniqueID startpoint=UID_NULL; UniqueID findpoint=(UniqueID)wavenum; if (wavenum!=groupnum) { if (!DeadStream::MainWorldBand(UniqueID(groupnum))) startpoint=findpoint; findpoint=damagedelements[specificeltdamage].memberid; } DeadStream::DeadBlockItterator itt(Dead_Stream.firstblock,startpoint); itt.SkipToItem(findpoint); //list elements l->AddColumn(TARGETFIELDWIDTH+50); l->AddColumn(50); for (GroupItterator si(damagedelements[specificeltdamage].shape,&itt);si;si++) { if (si.DamageWeight()>IGNOREDAMAGEBELOWTHIS && si.shape!=CTRPTC && si.shape!=CRKPTC) { l->AddString(GetShapeName(si.shape)+" "+GetEltDeltaName(si.delta),0); l->AddString(RESLIST(DAMAGESTAT_ALIVE,((MinAnimData&)si.AnimDataByte()).itemstate),1); } } } else { l->AddColumn(TARGETFIELDWIDTH+100); info_itemS* p = *Persons2::SlowConvertPtrUID(UniqueID(groupnum)); if (p) if (p->Status.size>=MOBILESIZE) { EventVal& type=p->shape; int max=(info_grndgrpPtr(*p)->inform); for (int i=0;i<max;i++) l->AddString(GetShapeName(ShapeNum(type.Evaluate(i))),0); } else for (GroupItterator si(ShapeNum(p->shape.Evaluate()));si;si++) { if (si.DamageWeight()>IGNOREDAMAGEBELOWTHIS && si.shape!=CTRPTC && si.shape!=CRKPTC) { l->AddString(GetShapeName(si.shape)+" "+GetEltDeltaName(si.delta),0); } } } }
//컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴 //Procedure make_gndgrp //Author Jim Taylor //Date Wed 18 Jun 1997 // //Description // //Inputs // //Returns // //------------------------------------------------------------------------------ void Persons4::make_gndgrp(info_grndgrp& I) { if (!justscanning) { info_grndgrp* J=new info_grndgrp; *J=I; int v1,v2,v3; if ((v3=J->nat.Evaluate())==ENABLE_COMPLEX_VAL) v3=NAT_RED;//defaultside; if ((v1=J->uid.Evaluate())==ENABLE_COMPLEX_VAL) if ((v2=J->band.Evaluate())==ENABLE_COMPLEX_VAL) if (v3==(int)NAT_RED) J->uniqueID.count=assignuid(RedAcBAND); else J->uniqueID.count=assignuid(BlueAcBAND); else J->uniqueID.count=assignuid((UniqueIDBand)v2); else if (ConvertPtrUID(UniqueID(v1))) J->uniqueID.count=assignuid(getbandfromUID(UniqueID(v1))); else J->uniqueID.count=UniqueID(v1); J->bfieldindex=currbfindex; // J->uniqueID.sector=loadingmainworld; J->uniqueID.changed=FALSE; // J->uniqueID.deaded=FALSE; J->position.EvalW(J->World); // J->shape=ShapeNum(J->shape.Evaluate()); J->Item::shape=ShapeNum(J->shape.Evaluate()); //JIM 16/04/99 logUID(J); // FixupRouteOwner(J->uniqueID.count,J->wpref); // FixupRouteOwner(J->uniqueID.count,J->wpref); } else if (justscanning==SCANNAMES) { int v3; if ((v3=I.nat.Evaluate())==ENABLE_COMPLEX_VAL) v3=NAT_RED;//defaultside; if (bfdesc) if (v3==NAT_RED) ;//ME bfdesc->RGR+=I.inform.Evaluate(); else ;//ME bfdesc->BGR+=I.inform.Evaluate(); } }
void Persons4::make_itemS(info_itemS& I,bool enabled) { // if ((int)I.uid.Evaluate() != (int)UID_Varneville) //this is in wrong band so don't load! // { if (!justscanning) { info_itemS* J=new info_itemS; *J=I; int v1,v2; // if ((v3=J->nat.Evaluate())==ENABLE_COMPLEX_VAL) // v3=defaultside; if ((v1=J->uid.Evaluate())==ENABLE_COMPLEX_VAL) if ((v2=J->band.Evaluate())==ENABLE_COMPLEX_VAL) J->uniqueID.count=assignuid(CivilianBAND); else J->uniqueID.count=assignuid((UniqueIDBand)v2); else if (&ConvertPtrUID(UniqueID(v1))) { J->uniqueID.count=assignuid(getbandfromUID(UniqueID(v1))); PleaseWarnUser("This battlfield has been damaged because of the above error. Do not save it!","Aircraft with named UID already loaded."); } else J->uniqueID.count=UniqueID(v1); J->bfieldindex=currbfindex; //DeadCode RDH 11Feb98 J->uniqueID.sector=loadingmainworld; J->uniqueID.changed=FALSE; // J->uniqueID.deaded=FALSE; J->position.EvalW(J->World); J->Item::shape=ShapeNum(J->shape.Evaluate()); logUID(J); } //DEADCODE JIM 16/11/99 else //DEADCODE JIM 16/11/99 if (bfdesc && justscanning==SCANNAMES) //DEADCODE JIM 16/11/99 ;//ME bfdesc->ST++; // } // else // { // // // } }
//컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴 //Procedure make_itemS //Author Jim Taylor //Date Wed 18 Jun 1997 // //Description Makes object J, a copy of temp object I // Fills in item UID and coords // Adds item to UID table. // //Inputs // //Returns // //------------------------------------------------------------------------------ void Persons2::make_itemS(info_itemS& I) { // if ((int)I.uid.Evaluate() != (int)UID_Varneville) //this is in wrong band so don't load! // { if (!justscanning) { info_itemS* J=new info_itemS; *J=I; int v1,v2; // if ((v3=J->nat.Evaluate())==ENABLE_COMPLEX_VAL) // v3=defaultside; if ((v1=J->uid.Evaluate())==ENABLE_COMPLEX_VAL) if ((v2=J->band.Evaluate())==ENABLE_COMPLEX_VAL) J->uniqueID.count=assignuid(RedVetoedBAND); else J->uniqueID.count=assignuid((UniqueIDBand)v2); else if (ConvertPtrUID(UniqueID(v1))) J->uniqueID.count=assignuid(getbandfromUID(UniqueID(v1))); else J->uniqueID.count=UniqueID(v1); J->bfieldindex=currbfindex; //DeadCode RDH 11Feb98 J->uniqueID.sector=loadingmainworld; J->uniqueID.changed=FALSE; // J->uniqueID.deaded=FALSE; J->position.EvalW(J->World); J->shape=ShapeNum(J->shape.Evaluate()); logUID(J); } else if (bfdesc && justscanning==SCANNAMES) bfdesc->ST++; // } // else // { // // // } }
//컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴 //Procedure make_gndgrp //Author Jim Taylor //Date Wed 18 Jun 1997 // //Description // //Inputs // //Returns // //------------------------------------------------------------------------------ void Persons4::make_gndgrp(info_grndgrp& I) { if (!justscanning) { info_grndgrp* J=new info_grndgrp; *J=I; bool gotGRoverride=false; int v1,v2,v3; if ((v3=J->nat.Evaluate())==ENABLE_COMPLEX_VAL) v3=NAT_RED;//defaultside; if ((v1=J->uid.Evaluate())==ENABLE_COMPLEX_VAL) if ((v2=J->band.Evaluate())==ENABLE_COMPLEX_VAL) J->uniqueID.count=assignuid(BritBoatBAND); //JIM 22Feb100 else J->uniqueID.count=assignuid((UniqueIDBand)v2); else if (&ConvertPtrUID(UniqueID(v1))) { PleaseWarnUser("This battlfield has been damaged because of the above error. Do not save it!","Mobile with named UID already loaded."); J->uniqueID.count=assignuid(getbandfromUID(UniqueID(v1))); } else { J->uniqueID.count=UniqueID(v1); #ifndef __BCPLUSPLUS__ if (v1==+GR_ItemInfoOverride) gotGRoverride=true; #endif } J->bfieldindex=currbfindex; // J->uniqueID.sector=loadingmainworld; J->uniqueID.changed=FALSE; // J->uniqueID.deaded=FALSE; J->position.EvalW(J->World); #ifndef __BCPLUSPLUS__ if (gotGRoverride) { //DeadCode JIM 22Oct00 J->World.X=GR_ItemXOverride; //DeadCode JIM 22Oct00 J->World.Z=GR_ItemZOverride; for (int wpcount=GR_ItemWpOverride;wpcount;wpcount--) if (info_waypointPtr(Persons2::ConvertPtrUID(J->wpref))->nextwp) J->wpref=info_waypointPtr(Persons2::ConvertPtrUID(J->wpref))->nextwp; } #endif // J->shape=ShapeNum(J->shape.Evaluate()); J->Item::shape=ShapeNum(J->shape.Evaluate()); //JIM 16/04/99 logUID(J); // FixupRouteOwner(J->uniqueID.count,J->wpref); // FixupRouteOwner(J->uniqueID.count,J->wpref); } else if (justscanning==SCANNAMES) { int v3; if ((v3=I.nat.Evaluate())==ENABLE_COMPLEX_VAL) v3=NAT_RED;//defaultside; if (bfdesc) if (v3==NAT_RED) ;//ME bfdesc->RGR+=I.inform.Evaluate(); else ;//ME bfdesc->BGR+=I.inform.Evaluate(); } }
void CDamage::DoDataExchange(CDataExchange* pDX) { char* fractionformat=": %i/%i"; CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDamage) // NOTE: the ClassWizard will add DDX and DDV calls here DDX_Control(pDX,IDC_LIST_ELEMENTS,m_IDC_LIST_ELEMENTS); DDX_Control(pDX,IDC_COMBO_ELEMENTS,m_IDC_COMBO_ELEMENTS); //}}AFX_DATA_MAP int line=0; int selline=-1; internalUIDmax=0; CString displayline; { //RDH 28/04/99 info_itemS* p = *Persons2::SlowConvertPtrUID(UniqueID(wavenum)); if (p->Status.size>=MOBILESIZE) { CString str = GetShapeName(ShapeNum(p->shape.Evaluate())); if (str.IsEmpty() || str[0]=='_') str=GetTargName(UniqueID(wavenum)); if (str.IsEmpty() || str[0]==0) str=RESSTRING(ASSET); displayline=str;//l->AddString(str,0); int damagelevel=Node_Data[UniqueID(wavenum)].truestatus; int members=(info_grndgrpPtr(*p)->inform); if (damagelevel>100) damagelevel=100; damagelevel=damagelevel*(members+6)*(members+6)/100; int deadmembers=6; for (;deadmembers*deadmembers<damagelevel;deadmembers++) {} displayline=RESSTRING(DAMAGED)+CSprintf(fractionformat,deadmembers-6,members); } else { { CString str = GetShapeName(ShapeNum(p->shape.Evaluate())); if (str.IsEmpty() || str[0]=='_') str=GetTargName(UniqueID(wavenum)); displayline=str;//l->AddString(str,0); } if (damagedelements[0].loadedid==wavenum) { DeadStream::DeadBlockItterator itt(Dead_Stream.firstblock,UID_NULL); itt.SkipToItem(UniqueID(wavenum)); int damagedeltc=0,totaleltc=0,damagedpoints=0; for (GroupItterator si(damagedelements[0].shape,&itt);si;si++) if (si.AnimDataMAD().itemstate>0) { if (si.DamageWeight()>IGNOREDAMAGEBELOWTHIS) { damagedeltc++; totaleltc++; } damagedpoints+=si.AnimDataMAD().itemstate*si.DamageWeight(); } else if (si.DamageWeight()>IGNOREDAMAGEBELOWTHIS) totaleltc++; displayline+=CSprintf(fractionformat,damagedeltc,totaleltc); } else { int totaleltc=0; info_itemS* p = *Persons2::SlowConvertPtrUID(UniqueID(wavenum)); if (p) for (GroupItterator si(ShapeNum(p->shape.Evaluate()));si;si++) if (si.DamageWeight()>IGNOREDAMAGEBELOWTHIS) totaleltc++; displayline+=CSprintf(fractionformat,0,totaleltc); //DEADCODE DAW 02/02/00 l->AddString(RESSTRING(FULLY_F),1); //DEADCODE DAW 02/02/00 l->AddString(RESSTRING(F_FUNCTIONAL),2); } } } internalUIDList[internalUIDmax++]=UniqueID(wavenum); GETDLGITEM(IDC_COMBO_ELEMENTS)->AddString(displayline); if (groupnum==UID_NULL || groupnum==wavenum) selline=line; line++; info_itemS* p; UniqueIDBand band; for (int i=CivilianBAND;i<WorldStuff::PITEMTABLESIZE;i++) if ( ((p=Persons2::ConvertPtrUID(UniqueID(i)))!=NULL) && (p->SGT==wavenum && p->shape.Evaluate()!=EMPTY && p->shape.Evaluate()!=EMPTY2 &&p->Status.size<MOBILESIZE) && (band=Persons2::getbandfromUID(UniqueID(i)))!=0 && band!=LandscapeBAND ) { displayline=GetShapeName(ShapeNum(p->shape.Evaluate()))+" "+GetRelativeName(p->SGT,&p->World); int de=numdamagedelts; while(de-->0) breakif (damagedelements[de].loadedid==i); if (de>=0) { UniqueID startpoint=UID_NULL; UniqueID findpoint=(UniqueID)wavenum; //DEADCODE JIM 07/06/99 if (wavenum!=groupnum) { if (!DeadStream::MainWorldBand(UniqueID(i))) startpoint=findpoint; findpoint=damagedelements[de].memberid; } DeadStream::DeadBlockItterator itt(Dead_Stream.firstblock,startpoint); itt.SkipToItem(findpoint); int damagedeltc=0,totaleltc=0,damagedpoints=0; for (GroupItterator si(damagedelements[de].shape,&itt);si;si++) if (si.AnimDataMAD().itemstate>0) { if (si.DamageWeight()>IGNOREDAMAGEBELOWTHIS) { damagedeltc++; totaleltc++; } damagedpoints+=si.AnimDataMAD().itemstate*si.DamageWeight(); } else if (si.DamageWeight()>IGNOREDAMAGEBELOWTHIS) totaleltc++; displayline+=CSprintf(fractionformat,damagedeltc,totaleltc); } else { int totaleltc=0; info_itemS* p = *Persons2::SlowConvertPtrUID(UniqueID(i)); if (p) for (GroupItterator si(ShapeNum(p->shape.Evaluate()));si;si++) if (si.DamageWeight()>IGNOREDAMAGEBELOWTHIS) totaleltc++; displayline+=CSprintf(fractionformat,0,totaleltc); } internalUIDList[internalUIDmax++]=UniqueID(i); GETDLGITEM(IDC_COMBO_ELEMENTS)->AddString(displayline); if (groupnum==i) selline=line; line++; } GETDLGITEM(IDC_COMBO_ELEMENTS)->SetIndex(selline); FillList(); }