// ---------------------------------------------------------------------------
// 
// ------------
bool bvDefPaletteRangeStyle::std_load(bGenericXMLBaseElement* root){
	_bTrace_("bvDefPaletteRangeStyle::std_load",true);
	_gstl=NULL;
	find_stylerun(root);
	if(!_gstl){
		_tm_("_gstl==NULL");
		_visible=false;
		return(false);
	}
bGenericXMLBaseElement*		elt;
char						val[_values_length_max_];
	
	elt=_gapp->classMgr()->NthElement(_gstl,1,"classmin");
	if(!elt){
		return(false);
	}
	elt->getvalue(val);
	_clss=atoi(val);
	elt=_gapp->classMgr()->NthElement(_gstl,1,"scalemin");
	if(!elt){
		return(false);
	}
	elt->getvalue(val);
	_smin=matof(val);
	elt=_gapp->classMgr()->NthElement(_gstl,1,"scalemax");
	if(!elt){
		return(false);
	}
	elt->getvalue(val);
	_smax=matof(val);
	
	off_load(root);
	
	return(true);
}
// ---------------------------------------------------------------------------
// 
// ------------
bool bvDefPaletteQuickStyle::std_load(bGenericXMLBaseElement* root){
	_gstl=NULL;
	find_stylerun(root);
	if(!_gstl){
		return(false);
	}
bGenericXMLBaseElement*		elt;
char						val[_values_length_max_];

// _clss & _pass predefined
	elt=_gapp->classMgr()->NthElement(_gstl,1,"scalemin");
	if(!elt){
		return(false);
	}
	elt->getvalue(val);
	_smin=matof(val);
	elt=_gapp->classMgr()->NthElement(_gstl,1,"scalemax");
	if(!elt){
		return(false);
	}
	elt->getvalue(val);
	_smax=matof(val);
	
	off_load(root);
	
	return(true);
}
// ---------------------------------------------------------------------------
// 
// ------------
bool bvDefPaletteRangeStyle::prop_load(bGenericXMLBaseElement* root){
bGenericXMLBaseElement*		chld;
bGenericXMLBaseElement*		elt;
char						val[_values_length_max_];
	
	chld=_gapp->classMgr()->NthElement(root,1,"propcolor");
	if(!chld){
		return(false);
	}
	elt=_gapp->classMgr()->NthElement(chld,1,"field");
	if(!elt){
		return(true);
	}
	elt->getvalue(_fld);
	elt=_gapp->classMgr()->NthElement(chld,1,"float");
	if(!elt){
		return(true);
	}
	elt->getvalue(val);
	_vmin=matof(val);
	elt=_gapp->classMgr()->NthElement(chld,2,"float");
	if(!elt){
		return(true);
	}
	elt->getvalue(val);
	_vmax=matof(val);
	
	_cc=(chld->countelements()-3)/2;
	for(int i=0;i<_cc;i++){
		elt=_gapp->classMgr()->NthElement(chld,i+3,"float");
		if(!elt){
			return(true);
		}
		elt->getvalue(val);
		_fcolor[i]=matof(val);
	}
	for(int i=0;i<_cc;i++){
		elt=_gapp->classMgr()->NthElement(chld,i+3+_cc,"float");
		if(!elt){
			return(true);
		}
		elt->getvalue(val);
		_tcolor[i]=matof(val);
	}
	if((_cc!=4)&&(_cc!=5)){
		_cc=4;
	}
	return(true);
}
// ---------------------------------------------------------------------------
// 
// ------------
bool bvDefRangeRectStyle::load(bGenericXMLBaseElement* root){
bGenericXMLBaseElement		*chld,*elt;
char						val[_values_length_max_];
	
	if(!std_load(root)){
		return(false);
	}
	
	if(chld=_gapp->classMgr()->NthElement(_gstl,1,"stroke")){
		if(!prop_load(chld)){
			color_load(chld,_stroke);
		}
	}
	
	if(chld=_gapp->classMgr()->NthElement(_gstl,1,"fill")){
		if(!prop_load(chld)){
			color_load(chld,_fcolor);
		}
	}
	else if(chld=_gapp->classMgr()->NthElement(_gstl,1,"fillpattern")){
		chld->getvalue(_pat);
	}
	
	if(elt=_gapp->classMgr()->NthElement(_gstl,1,"hsize")){
		elt->getvalue(val);
		_h=matof(val);
	}
	if(elt=_gapp->classMgr()->NthElement(_gstl,1,"vsize")){
		elt->getvalue(val);
		_v=matof(val);
	}
	if(elt=_gapp->classMgr()->NthElement(_gstl,1,"width")){
		elt->getvalue(val);
		_width=matof(val);
	}
	if(elt=_gapp->classMgr()->NthElement(_gstl,1,"roundedradius")){
		elt->getvalue(val);
		_rradius=matof(val);
	}
	if(elt=_gapp->classMgr()->NthElement(_gstl,1,"centroid")){
		elt->getvalue(val);
		_centro=atoi(val);
	}
	else{
		_centro=false;
	}
	return(true);
}
// ---------------------------------------------------------------------------
// 
// ------------
bool bXMapGeometryShift::process(int msg, void* prm){
	switch(msg){
		case kExtProcessCallFromIntf:
			shift();
			break;
		case kExtProcessCallWithParams:{
double			d=*((double*)prm);
				shift(Measure_d2i(_gapp,d));
			}
			break;
		case kExtProcessCallWithXMLTree:{
char					val[_values_length_max_];
bGenericXMLBaseElement*	elt;
double					d;
				elt=getelement(1);
				if(!elt){
					return(false);
				}
				elt->getvalue(val);
				d=matof(val);
				shift(Measure_d2i(_gapp,d));
			}
			break;
	}
	return(true);
}
// ---------------------------------------------------------------------------
// 
// ------------
bool bvDefPaletteRangeStyle::color_load(bGenericXMLBaseElement* root, double* clr){
//_bTrace_("bvDefPaletteRangeStyle::color_load",tru);
bGenericXMLBaseElement*		elt;
char						val[_values_length_max_];
	
	if((elt=_gapp->classMgr()->NthElement(root,1,"red"))){
		//_tm_("red");
		elt->getvalue(val);
		clr[0]=matof(val);
		_cc=4;
	}
	if((elt=_gapp->classMgr()->NthElement(root,1,"green"))){
		//_tm_("green");
		elt->getvalue(val);
		clr[1]=matof(val);
		_cc=4;
	}
	if((elt=_gapp->classMgr()->NthElement(root,1,"blue"))){
		//_tm_("blue");
		elt->getvalue(val);
		clr[2]=matof(val);
		_cc=4;
	}
	
	if((elt=_gapp->classMgr()->NthElement(root,1,"cyan"))){
		//_tm_("cyan");
		elt->getvalue(val);
		clr[0]=matof(val);
		_cc=5;
	}
	if((elt=_gapp->classMgr()->NthElement(root,1,"magenta"))){
		//_tm_("magenta");
		elt->getvalue(val);
		clr[1]=matof(val);
		_cc=5;
	}
	if((elt=_gapp->classMgr()->NthElement(root,1,"yellow"))){
		//_tm_("yellow");
		elt->getvalue(val);
		clr[2]=matof(val);
		_cc=5;
	}
	if((elt=_gapp->classMgr()->NthElement(root,1,"black"))){
		//_tm_("black");
		elt->getvalue(val);
		clr[3]=matof(val);
		_cc=5;
	}
	
	if((elt=_gapp->classMgr()->NthElement(root,1,"alpha"))){
		//_tm_("alpha");
		elt->getvalue(val);
		clr[_cc-1]=matof(val);
	}
	return(true);
}
Exemple #7
0
qreal XmlReader::readReal(const char* tag)
      {
      if (read()) {
            if (nodeType() == XML_READER_TYPE_TEXT) {
                  qreal val = matof((const char*)value());
                  skipElement((const xmlChar*)tag);
                  return val;
                  }
            else if (nodeType() == XML_READER_TYPE_END_ELEMENT)
                  return 0;
            else
                  printf("?readInt: node type %d <%s>\n", nodeType(), name());
            }
      return false;
      }
Exemple #8
0
bool XmlReader::readReal(const char* tag, qreal* val)
      {
      if (isTag(name(), tag)) {
            if (read()) {
                  if (nodeType() == XML_READER_TYPE_TEXT) {
                        *val = (qreal)matof((const char*)value());
                        skipElement((const xmlChar*)tag);
                        return true;
                        }
                  else if (nodeType() == XML_READER_TYPE_END_ELEMENT)
                        return false;
                  else
                        printf("?readInt: node type %d <%s>\n", nodeType(), name());
                  }
            }
      return false;
      }
// ---------------------------------------------------------------------------
// 
// ------------
bool bvDefScaleRef::read(){
_bTrace_("bvDefScaleRef::read",true);
	if(_set>0){
		return(false);
	}

bool	made=false;
	if(!_root){
		make();
		made=true;
	}

int						i;
char					val[_values_length_max_];
bGenericXMLBaseElement*	elt;
bGenericUnit*			u;

	elt=_gapp->classMgr()->NthElement(_root,1,"scaleref");
	if(elt){
		elt->getvalue(val);
		_scale=matof(val);
		for(i=_gapp->scaleMgr()->count();i>0;i--){
			u=_gapp->scaleMgr()->get(i);
			if(u->coef()==_scale){
				break;
			}
		}
		if(i==0){
			_idx=1;
		}
		else{
			_idx=i+2;
		}
	}
	else{
		_idx=1;
	}
	if(made){
		_gapp->classMgr()->ReleaseXMLInstance(_root);
		_root=NULL;
	}
	return(true);
}
// ---------------------------------------------------------------------------
// 
// ------------
void bToolPrintAreaParams::parse(bGenericXMLBaseElement* root, bGenericMacMapApp* gapp){
bGenericXMLBaseElement* elt=NULL;
char					val[_values_length_max_];
long					i;
	
	for(i=0;;i++){
		elt=gapp->classMgr()->NthElement(root,i+10,"float");
		if(!elt){
			break;
		}
	}
	_ndash=i;
	_dash=new CGFloat[_ndash];
	for(i=0;i<_ndash;i++){
		elt=gapp->classMgr()->NthElement(root,i+10,"float");
		elt->getvalue(val);
		_dash[i]=matof(val);
	}
	_status=0;
}
// ---------------------------------------------------------------------------
// 
// -----------
bool bPerpendicularLineElement::actionstd(bGenericGraphicContext* ctx){
	if(_elts.count()>0){
bStdXMLValueElement*	elt=find_value();
		if(elt==NULL){
			return(true);
		}
		elt->getvalue(NULL,&_dr);
	}
	else{
char	val[_values_length_max_];
		getvalue(val);
		_dr=matof(val);		
	}
	if(_dr==0){
int		o[2]={0,1};
float	x=0;
float	y=0;
		ctx->setGeometry(&x,&y,1,o,2);
		return(true);
	//	return(false);
	}
	return(make_line(ctx));
}
// ---------------------------------------------------------------------------
// 
// ------------
bool bvDefPaletteHisto::read(){
_bTrace_("bvDefPaletteHistoc::read",true);
bool	made=false,b=false;

	_bck=false;
	_width=0;
	_stroke[0]=0;
	_stroke[1]=0;
	_stroke[2]=0;
	_stroke[3]=1;
	_stroke[4]=1;
	_fill[0]=0;
	_fill[1]=0;
	_fill[2]=0;
	_fill[3]=1;
	_fill[4]=1;
	
	if(!_root){
		make();
		made=true;
	}
	
bGenericXMLBaseElement* chld;
bGenericXMLBaseElement* elt;
bvDefHistoStyle*		stl;
char					val[_values_length_max_];
int						i,n;
double					bmax=LONG_MAX;
	
	for(;;){
// Identification		
		chld=_gapp->classMgr()->NthElement(_root,1,"styleidentification");
		if(!chld){
			break;
		}
		elt=_gapp->classMgr()->NthElement(chld,1,"name");
		if(!elt){
			break;
		}
		elt->getvalue(_name);
		elt=_gapp->classMgr()->NthElement(chld,1,"version");
		if(!elt){
			break;
		}
		elt->getvalue(_vers);
		if(strlen(_vers)==0){
			strcpy(_vers,"3.0.0");
		}
// Globals
		chld=_gapp->classMgr()->NthElement(_root,1,"globals");
		if(!chld){
			break;
		}
		
		elt=_gapp->classMgr()->NthElement(chld,1,"classfield");
		if(!elt){
			break;
		}
		elt->getvalue(val);
		_fld=_tp->fields()->get_index(val);
		if(_fld==0){
			_fld=kOBJ_SubType_;
		}
		
		i=0;
		do{	
			i++;
			elt=_gapp->classMgr()->NthElement(chld,i,"classbound");
			if(elt){
				elt->getvalue(val);
				bmax=matof(val);
			}
		}while(elt);
		
		elt=_gapp->classMgr()->NthElement(chld,1,"scaleref");
		if(!elt){
			break;
		}
		elt->getvalue(val);
		_sref=matof(val);
		elt=_gapp->classMgr()->NthElement(chld,1,"unitcoef");
		if(!elt){
			break;
		}
		elt->getvalue(val);
		_coef=matof(val);
		
// Condition		
		chld=_gapp->classMgr()->NthElement(_root,1,"condition");
		if(!chld){
			break;
		}
		if(chld->countelements()>0){
			elt=chld->getelement(1);
			elt->getclassname(val);
			for(i=1;i<=nsvdef_op_max;i++){
				if(!strcmp(val,nsvdef_op_list[i])){
					chld=elt;
					if(chld->countelements()==2){
						elt=chld->getelement(1);
						elt->getvalue(val);
						_cfld=_tp->fields()->get_index(val);
						if(_cfld){
							elt=chld->getelement(2);
							elt->getvalue(_cval);
						}
					}
					else{
						_cfld=0;
					}
					break;
				}
			}
			if(i==nsvdef_op_max+1){
				_cfld=0;
			}
			else{
				_cop=i;
			}
		}
		else{
			_cfld=0;
		}
		
// StyleRuns
		n=_gapp->classMgr()->CountElements(_root,"stylerun");
		for(i=1;i<=n;i++){
			chld=_gapp->classMgr()->NthElement(_root,i,"stylerun");
			stl_alloc(true);
			_styles.get(i,&stl);
			stl->load(chld);
			if(stl->is_back()){
				_stroke[0]=stl->_stroke[0];
				_stroke[1]=stl->_stroke[1];
				_stroke[2]=stl->_stroke[2];
				_stroke[3]=stl->_stroke[3];
				_stroke[4]=stl->_stroke[4];
				_fill[0]=stl->_fill[0];
				_fill[1]=stl->_fill[1];
				_fill[2]=stl->_fill[2];
				_fill[3]=stl->_fill[3];
				_fill[4]=stl->_fill[4];
				_width=stl->_width;
				_bck=true;
			}
			_cmyk=(stl->_cc==5);
		}
		for(i=_styles.count();i>0;i--){
			_styles.get(i,&stl);
			if(stl->is_back()){
				_styles.rmv(i);
				delete stl;
			}
		}
		
		b=true;
		break;
	}

	if(made){
		_gapp->classMgr()->ReleaseXMLInstance(_root);
		_root=NULL;
	}
	
	return(true);
}
// ---------------------------------------------------------------------------
// 
// ------------
bool bvDefPalettePropStyle::prop_load(bGenericXMLBaseElement* root, double* rat){
bGenericXMLBaseElement*		chld;
bGenericXMLBaseElement*		elt;
char						val[_values_length_max_];
	
	if(_sow){
		chld=_gapp->classMgr()->NthElement(_gstl,1,"propsize");
	}
	else{
		chld=_gapp->classMgr()->NthElement(_gstl,1,"propwidth");
	}
	if(!chld){
		return(true);
	}
	elt=_gapp->classMgr()->NthElement(chld,1,"field");
	if(!elt){
		_fld=kOBJ_SubType_;
	}
	else{
		elt->getvalue(val);
		_fld=_gtp->fields()->get_index(val);
		if(!_fld){
			_fld=kOBJ_SubType_;
		}
	}
	
	elt=_gapp->classMgr()->NthElement(chld,1,"value");
	if(elt){
		elt->getvalue(val);
		_qref=matof(val);
		if(_qref==0){
			_qref=1;
		}
	}
	elt=_gapp->classMgr()->NthElement(chld,2,"value");
	if(elt){
		elt->getvalue(val);
		_qmax=matof(val);
		if(_qmax==0){
			_qmax=1;
		}
	}
	elt=_gapp->classMgr()->NthElement(chld,3,"value");
	if(elt){
		elt->getvalue(val);
		_rref=matof(val);
		if(_rref==0){
			_rref=1;
		}
	}
	elt=_gapp->classMgr()->NthElement(chld,4,"value");
	if(elt){
		elt->getvalue(val);
		_exp=matof(val);
		if(_exp==0){
			_exp=1;
		}
	}
	(*rat)=1;
	elt=_gapp->classMgr()->NthElement(chld,5,"value");
	if(elt){
		elt->getvalue(val);
		(*rat)=matof(val);
		if((*rat)<=0){
			(*rat)=1;
		}
	}	
	return(true);
}
// ---------------------------------------------------------------------------
// 
// ------------
bool bvDefPalettePropStyle::sub_load(bGenericXMLBaseElement* root){
bGenericXMLBaseElement*		chld;
bGenericXMLBaseElement*		sub;
bGenericXMLBaseElement*		clr;
bGenericXMLBaseElement*		elt;
char						val[_values_length_max_];
int							i;
color_range64				stl;
	
	stl.name[0]=0;
	stl.clr_spc=4;
	stl.clrs[0]=0;
	stl.clrs[1]=0;
	stl.clrs[2]=0;
	stl.clrs[3]=0;
	stl.clrs[4]=1;
	stl.pat[0]=0;	
	
	sub=_gapp->classMgr()->NthElement(_gstl,1,"substyle");
	if(!sub){
		return(false);
	}
	elt=_gapp->classMgr()->NthElement(sub,1,"subclassfield");
	if(!elt){
		_subfld=kOBJ_SubType_;
	}
	else{
		elt->getvalue(val);
		_subfld=_gtp->fields()->get_index(val);
		if(!_subfld){
			_subfld=kOBJ_SubType_;
		}	
	}
	
	chld=_gapp->classMgr()->NthElement(sub,1,"subclassboundsarray");
	if(!chld){
		return(false);
	}
	i=0;
	do{	
		i++;
		elt=_gapp->classMgr()->NthElement(chld,i,"subclassbound");
		if(elt){
			elt->getvalue(val);
			stl.bound=matof(val);
			_arr.add(&stl);
		}
	}while(elt);
	i=0;
	do{	
		i++;
		chld=_gapp->classMgr()->NthElement(sub,i,"substylerun");
		if(chld){
			if(!_arr.get(i,&stl)){
				break;
			}
			if(_sow){
				clr=_gapp->classMgr()->NthElement(chld,1,"fill");
				if(clr){
					elt=_gapp->classMgr()->NthElement(clr,1,"red");
					if(elt){
						elt->getvalue(val);
						stl.clrs[0]=matof(val);
						_cc=stl.clr_spc=4;
					}
					elt=_gapp->classMgr()->NthElement(clr,1,"green");
					if(elt){
						elt->getvalue(val);
						stl.clrs[1]=matof(val);
						_cc=stl.clr_spc=4;
					}
					elt=_gapp->classMgr()->NthElement(clr,1,"blue");
					if(elt){
						elt->getvalue(val);
						stl.clrs[2]=matof(val);
						_cc=stl.clr_spc=4;
					}
					
					elt=_gapp->classMgr()->NthElement(clr,1,"cyan");
					if(elt){
						elt->getvalue(val);
						stl.clrs[0]=matof(val);
						_cc=stl.clr_spc=5;
					}
					elt=_gapp->classMgr()->NthElement(clr,1,"magenta");
					if(elt){
						elt->getvalue(val);
						stl.clrs[1]=matof(val);
						_cc=stl.clr_spc=5;
					}
					elt=_gapp->classMgr()->NthElement(clr,1,"yellow");
					if(elt){
						elt->getvalue(val);
						stl.clrs[2]=matof(val);
						_cc=stl.clr_spc=5;
					}
					elt=_gapp->classMgr()->NthElement(clr,1,"black");
					if(elt){
						elt->getvalue(val);
						stl.clrs[3]=matof(val);
						_cc=stl.clr_spc=5;
					}
					
					elt=_gapp->classMgr()->NthElement(clr,1,"alpha");
					if(elt){
						if(_cc==4){
							elt->getvalue(val);
							stl.clrs[3]=matof(val);
						}
						else{
							elt->getvalue(val);
							stl.clrs[4]=matof(val);						
						}
					}
				}
				else{
					clr=_gapp->classMgr()->NthElement(chld,1,"fillpattern");
					if(clr){
						clr->getvalue(stl.pat);
					}
				}
			}
			else{
				clr=_gapp->classMgr()->NthElement(chld,1,"stroke");
				if(clr){
					elt=_gapp->classMgr()->NthElement(clr,1,"red");
					if(elt){
						elt->getvalue(val);
						stl.clrs[0]=matof(val);
						_cc=stl.clr_spc=4;
					}
					elt=_gapp->classMgr()->NthElement(clr,1,"green");
					if(elt){
						elt->getvalue(val);
						stl.clrs[1]=matof(val);
						_cc=stl.clr_spc=4;
					}
					elt=_gapp->classMgr()->NthElement(clr,1,"blue");
					if(elt){
						elt->getvalue(val);
						stl.clrs[2]=matof(val);
						_cc=stl.clr_spc=4;
					}
					
					elt=_gapp->classMgr()->NthElement(clr,1,"cyan");
					if(elt){
						elt->getvalue(val);
						stl.clrs[0]=matof(val);
						_cc=stl.clr_spc=5;
					}
					elt=_gapp->classMgr()->NthElement(clr,1,"magenta");
					if(elt){
						elt->getvalue(val);
						stl.clrs[1]=matof(val);
						stl.clr_spc=5;
					}
					elt=_gapp->classMgr()->NthElement(clr,1,"yellow");
					if(elt){
						elt->getvalue(val);
						stl.clrs[2]=matof(val);
						_cc=stl.clr_spc=5;
					}
					elt=_gapp->classMgr()->NthElement(clr,1,"black");
					if(elt){
						elt->getvalue(val);
						stl.clrs[3]=matof(val);
						_cc=stl.clr_spc=5;
					}
					
					elt=_gapp->classMgr()->NthElement(clr,1,"alpha");
					if(elt){
						if(stl.clr_spc==4){
							elt->getvalue(val);
							stl.clrs[3]=matof(val);
						}
						else{
							elt->getvalue(val);
							stl.clrs[4]=matof(val);						
						}
					}
				}
				else{
					clr=_gapp->classMgr()->NthElement(chld,1,"strokepattern");
					if(clr){
						clr->getvalue(stl.pat);
					}
				}
			}
			_arr.put(i,&stl);
		}
	}while(chld);
	return(true);
}
Exemple #15
0
void GameMap::loadFromFile(std::string filename, ResourceGroup* fresourceGroup)
{
	reset();

	std::ifstream ifs(filename);

	std::string line;

	
	bool tagFinder = true;

	bool addingWalls = false;

	bool addingBGs = false;

	bool addingPlayerSpawn = false;

	bool addingUpgradeSpawn = false;

	
	std::vector<std::vector<std::string>> upgradeSpawns;
	
	std::vector<std::vector<std::string>> playerSpawns;
	
	std::vector<std::vector<std::string>> wallVector;
	
	std::vector<std::vector<std::string>> BGVector;
	
	std::vector<std::string> pbvec;

	std::vector<std::string>* tmpVecPointer;


	
	
	bool inset = false;

	


	while (std::getline(ifs, line))
	{
		if (line != "")
		{
			
			if (addingWalls || addingBGs)
			{
				if (line == "DONE")
				{
					addingWalls = false;
					addingBGs = false;
					tagFinder = true;
				}
				else if (line[0] == '<')
				{
					if (addingBGs)
					{
						BGVector.push_back(pbvec);
						tmpVecPointer = &BGVector[BGVector.size()-1];
					}
					else
					{
						wallVector.push_back(pbvec);
						tmpVecPointer = &wallVector[wallVector.size() - 1];
					}
					
					readSpriteTuple(line, *tmpVecPointer);
				}
				
			}


			else if (addingPlayerSpawn || addingUpgradeSpawn)
			{
	
				if (line == "DONE")
				{
					addingPlayerSpawn = false;
					addingUpgradeSpawn = false;
					tagFinder = true;
				}
				else if (line[0] == '(')
				{
					if (addingPlayerSpawn)
					{
						playerSpawns.push_back(pbvec);
						tmpVecPointer = &playerSpawns[playerSpawns.size() - 1];
					}
					else
					{
						upgradeSpawns.push_back(pbvec);
						tmpVecPointer = &upgradeSpawns[upgradeSpawns.size() - 1];
					}
					
					readOrderedPair(line, *tmpVecPointer);
				}
				
			}

			if (tagFinder)
			{
				if (line == "ADDING_WALLS")
				{
					addingWalls = true;
					tagFinder = false;
	
				}

				else if (line == "ADDING_PLAYER_SPAWN_POINTS")
				{
					addingPlayerSpawn = true;
					tagFinder = false;
				}

				else if (line == "ADDING_UPGRADE_SPAWN_POINTS")
				{
					addingUpgradeSpawn = true;
					tagFinder = false;
				}

				else if (line == "ADDING_BACKGROUND")
				{
					addingBGs = true;
					tagFinder = false;
				}
				else if (line == "FILE_DONE")
				{
					break;
				}
			}
		}
	}


	sf::Vector2f minTLcorn(0,0);
	sf::Vector2f maxBRcorn(0,0);




	for (int i = 0; i < wallVector.size(); i++)
	{
		if (wallVector[i][0] == "THREE_ARG")
		{
			wallSprites.push_back(	AppSprite(	fresourceGroup->getTexturePointer(wallVector[i][10]),
												sf::Vector2f(matof(wallVector[i][3]), matof(wallVector[i][4])),
												sf::Vector2f(matof(wallVector[i][1]), matof(wallVector[i][2])),
												0		));
		}
		else if (wallVector[i][0] == "TWO_ARG")
		{
			wallSprites.push_back(	AppSprite(fresourceGroup->getTexturePointer(wallVector[i][10]),
									sf::Vector2f(matof(wallVector[i][1]), matof(wallVector[i][2])),
									sf::Vector2f(matof(wallVector[i][3]), matof(wallVector[i][4]))));
		}
		
		if (wallVector[i][5] == "THREE_ARG")
		{
			hitboxvec.addHitBox(new AARectHitBox(	matof(wallVector[i][6]), matof(wallVector[i][7]),
													sf::Vector2f(matof(wallVector[i][8]), matof(wallVector[i][9]))));


			if (matof(wallVector[i][8]) - matof(wallVector[i][6]) < minTLcorn.x)
			{
				minTLcorn.x = matof(wallVector[i][8]) - matof(wallVector[i][6]);
			}
			if (matof(wallVector[i][9]) - matof(wallVector[i][7]) < minTLcorn.y)
			{
				minTLcorn.y = matof(wallVector[i][9]) - matof(wallVector[i][7]);
			}
			if (matof(wallVector[i][8]) + matof(wallVector[i][6]) > maxBRcorn.x)
			{
				maxBRcorn.x = matof(wallVector[i][8]) + matof(wallVector[i][6]);
			}
			if (matof(wallVector[i][9]) + matof(wallVector[i][7]) > maxBRcorn.y)
			{
				maxBRcorn.y = matof(wallVector[i][9]) + matof(wallVector[i][7]);
			}
		}
		else if (wallVector[i][5] == "TWO_ARG")
		{
			hitboxvec.addHitBox(new AARectHitBox(	sf::Vector2f(matof(wallVector[i][6]), matof(wallVector[i][7])),
													sf::Vector2f(matof(wallVector[i][8]), matof(wallVector[i][9]))));

			if (matof(wallVector[i][6]) < minTLcorn.x)
			{
				minTLcorn.x = matof(wallVector[i][6]);
			}
			if (matof(wallVector[i][7]) < minTLcorn.y)
			{
				minTLcorn.y = matof(wallVector[i][7]);
			}
			if (matof(wallVector[i][8]) > maxBRcorn.x)
			{
				maxBRcorn.x = matof(wallVector[i][8]);
			}
			if (matof(wallVector[i][9]) > maxBRcorn.y)
			{
				maxBRcorn.y = matof(wallVector[i][9]);
			}

		}
	}

	boundingBox = AARectHitBox(minTLcorn, maxBRcorn);


	for (int i = 0; i < playerSpawns.size(); i++)
	{
		tankSpawnPoints.push_back(sf::Vector2f(matof(playerSpawns[i][0]), matof(playerSpawns[i][1])));

	}

	for (int i = 0; i < upgradeSpawns.size(); i++)
	{
		upgradeSpawnPoints.push_back(sf::Vector2f(matof(upgradeSpawns[i][0]), matof(upgradeSpawns[i][1])));

	}


	if (BGVector[0][0] == "THREE_ARG")
	{
		bgSprite = AppSprite(	fresourceGroup->getTexturePointer(BGVector[0][10]),
								sf::Vector2f(matof(BGVector[0][3]), matof(BGVector[0][4])),
								sf::Vector2f(matof(BGVector[0][1]), matof(BGVector[0][2])),
								0);
	}
	else if (BGVector[0][0] == "TWO_ARG")
	{
		bgSprite = AppSprite(	fresourceGroup->getTexturePointer(BGVector[0][10]),
								sf::Vector2f(matof(BGVector[0][1]), matof(BGVector[0][2])),
								sf::Vector2f(matof(BGVector[0][3]), matof(BGVector[0][4])));
	}	
	
}
// ---------------------------------------------------------------------------
// 
// ------------
bool bvDefQuickSymbStyle::load(bGenericXMLBaseElement* root){
bGenericXMLBaseElement		*elt,*chld;
char						val[_values_length_max_];
	
	if(!std_load(root)){
// for new subtypes
		return(false);
	}
	
	if(elt=_gapp->classMgr()->NthElement(_gstl,1,"pdfdocument")){
		elt->getvalue(_smb);
		if(chld=_gapp->classMgr()->NthElement(elt,1,"field")){
			chld->getvalue(val);
			_fsmb=_gtp->fields()->get_index(val);
		}
		if(chld=_gapp->classMgr()->NthElement(elt,1,"value")){
			chld->getvalue(_smb);
		}
	}
	else if(elt=_gapp->classMgr()->NthElement(_gstl,1,"image")){
		elt->getvalue(_smb);
		if(chld=_gapp->classMgr()->NthElement(elt,1,"field")){
			chld->getvalue(val);
			_fsmb=_gtp->fields()->get_index(val);
		}
		if(chld=_gapp->classMgr()->NthElement(elt,1,"value")){
			chld->getvalue(_smb);
		}
	}
	else if(elt=_gapp->classMgr()->NthElement(_gstl,1,"icon")){
		elt->getvalue(_smb);
		if(chld=_gapp->classMgr()->NthElement(elt,1,"field")){
			chld->getvalue(val);
			_fsmb=_gtp->fields()->get_index(val);
		}
		if(chld=_gapp->classMgr()->NthElement(elt,1,"value")){
			chld->getvalue(_smb);
		}
	}
	
	if(elt=_gapp->classMgr()->NthElement(_gstl,1,"hsize")){
		elt->getvalue(val);
		_h=matof(val);
		if(chld=_gapp->classMgr()->NthElement(elt,1,"field")){
			chld->getvalue(val);
			_fh=_gtp->fields()->get_index(val);
		}
		if(chld=_gapp->classMgr()->NthElement(elt,1,"value")){
			chld->getvalue(val);
			_h=matof(val);
		}
	}
	if(elt=_gapp->classMgr()->NthElement(_gstl,1,"vsize")){
		elt->getvalue(val);
		_v=matof(val);
		if(chld=_gapp->classMgr()->NthElement(elt,1,"field")){
			chld->getvalue(val);
			_fv=_gtp->fields()->get_index(val);
		}
		if(chld=_gapp->classMgr()->NthElement(elt,1,"value")){
			chld->getvalue(val);
			_v=matof(val);
		}
	}
	if(elt=_gapp->classMgr()->NthElement(_gstl,1,"angle")){
		elt->getvalue(val);
		_a=matof(val);
		if(chld=_gapp->classMgr()->NthElement(elt,1,"field")){
			chld->getvalue(val);
			_fa=_gtp->fields()->get_index(val);
		}
		if(chld=_gapp->classMgr()->NthElement(elt,1,"value")){
			chld->getvalue(val);
			_a=matof(val);
		}
	}
	if(elt=_gapp->classMgr()->NthElement(_gstl,1,"alpha")){
		elt->getvalue(val);
		_alpha=matof(val);
		if(chld=_gapp->classMgr()->NthElement(elt,1,"field")){
			chld->getvalue(val);
			_falpha=_gtp->fields()->get_index(val);
		}
		if(chld=_gapp->classMgr()->NthElement(elt,1,"value")){
			chld->getvalue(val);
			_alpha=matof(val);
		}
	}
    
    
    if(chld=_gapp->classMgr()->NthElement(_gstl,1,"back")){
    }
    else if(chld=_gapp->classMgr()->NthElement(_gstl,1,"bgfill")){
    }
    if(chld){
        if(elt=_gapp->classMgr()->NthElement(chld,1,"red")){
            elt->getvalue(val);
            _backfill[0]=matof(val);
            _cc=4;
        }
        if(elt=_gapp->classMgr()->NthElement(chld,1,"green")){
            elt->getvalue(val);
            _backfill[1]=matof(val);
            _cc=4;
        }
        if(elt=_gapp->classMgr()->NthElement(chld,1,"blue")){
            elt->getvalue(val);
            _backfill[2]=matof(val);
            _cc=4;
        }
        
        if(elt=_gapp->classMgr()->NthElement(chld,1,"cyan")){
            elt->getvalue(val);
            _backfill[0]=matof(val);
            _cc=5;
        }
        if(elt=_gapp->classMgr()->NthElement(chld,1,"magenta")){
            elt->getvalue(val);
            _backfill[1]=matof(val);
            _cc=5;
        }
        if(elt=_gapp->classMgr()->NthElement(chld,1,"yellow")){
            elt->getvalue(val);
            _backfill[2]=matof(val);
            _cc=5;
        }
        if(elt=_gapp->classMgr()->NthElement(chld,1,"black")){
            elt->getvalue(val);
            _backfill[3]=matof(val);
            _cc=5;
        }
        
        if(elt=_gapp->classMgr()->NthElement(chld,1,"alpha")){
            elt->getvalue(val);
            if(_cc==4){
                _backfill[3]=matof(val);
            }
            else{
                _backfill[4]=matof(val);
            }
        }
        
        if(elt=_gapp->classMgr()->NthElement(chld,1,"colorfield16m")){
            elt->getvalue(val);
            _fbackfill=_gtp->fields()->get_index(val);
        }
    }
    
    if(chld=_gapp->classMgr()->NthElement(_gstl,1,"bgstroke")){
        if(elt=_gapp->classMgr()->NthElement(chld,1,"red")){
            elt->getvalue(val);
            _backstroke[0]=matof(val);
            _cc=4;
        }
        if(elt=_gapp->classMgr()->NthElement(chld,1,"green")){
            elt->getvalue(val);
            _backstroke[1]=matof(val);
            _cc=4;
        }
        if(elt=_gapp->classMgr()->NthElement(chld,1,"blue")){
            elt->getvalue(val);
            _backstroke[2]=matof(val);
            _cc=4;
        }
        
        if(elt=_gapp->classMgr()->NthElement(chld,1,"cyan")){
            elt->getvalue(val);
            _backstroke[0]=matof(val);
            _cc=5;
        }
        if(elt=_gapp->classMgr()->NthElement(chld,1,"magenta")){
            elt->getvalue(val);
            _backstroke[1]=matof(val);
            _cc=5;
        }
        if(elt=_gapp->classMgr()->NthElement(chld,1,"yellow")){
            elt->getvalue(val);
            _backstroke[2]=matof(val);
            _cc=5;
        }
        if(elt=_gapp->classMgr()->NthElement(chld,1,"black")){
            elt->getvalue(val);
            _backstroke[3]=matof(val);
            _cc=5;
        }
        
        if(elt=_gapp->classMgr()->NthElement(chld,1,"alpha")){
            elt->getvalue(val);
            if(_cc==4){
                _backstroke[3]=matof(val);
            }
            else{
                _backstroke[4]=matof(val);
            }
        }
        
        if(elt=_gapp->classMgr()->NthElement(chld,1,"colorfield16m")){
            elt->getvalue(val);
            _fbackstroke=_gtp->fields()->get_index(val);
        }
    }

    if(elt=_gapp->classMgr()->NthElement(_gstl,1,"bgwidth")){
        elt->getvalue(val);
        _backwidth=matof(val);
        if(chld=_gapp->classMgr()->NthElement(elt,1,"field")){
            chld->getvalue(val);
            _fbackwidth=_gtp->fields()->get_index(val);
        }
        if(chld=_gapp->classMgr()->NthElement(elt,1,"value")){
            chld->getvalue(val);
            _backwidth=matof(val);
        }
    }
    if(elt=_gapp->classMgr()->NthElement(_gstl,1,"bgwidthmaj")){
        elt->getvalue(val);
        _backwidthmaj=matof(val);
        if(chld=_gapp->classMgr()->NthElement(elt,1,"field")){
            chld->getvalue(val);
            _fbackwidthmaj=_gtp->fields()->get_index(val);
        }
        if(chld=_gapp->classMgr()->NthElement(elt,1,"value")){
            chld->getvalue(val);
            _backwidthmaj=matof(val);
        }
    }
    if(elt=_gapp->classMgr()->NthElement(_gstl,1,"bgheightmaj")){
        elt->getvalue(val);
        _backheightmaj=matof(val);
        if(chld=_gapp->classMgr()->NthElement(elt,1,"field")){
            chld->getvalue(val);
            _fbackheightmaj=_gtp->fields()->get_index(val);
        }
        if(chld=_gapp->classMgr()->NthElement(elt,1,"value")){
            chld->getvalue(val);
            _backheightmaj=matof(val);
        }
    }
    
    if(elt=_gapp->classMgr()->NthElement(_gstl,1,"bgshiftx")){
        elt->getvalue(val);
        _backshiftx=matof(val);
        if(chld=_gapp->classMgr()->NthElement(elt,1,"field")){
            chld->getvalue(val);
            _fbackshiftx=_gtp->fields()->get_index(val);
        }
        if(chld=_gapp->classMgr()->NthElement(elt,1,"value")){
            chld->getvalue(val);
            _backshiftx=matof(val);
        }
    }
    if(elt=_gapp->classMgr()->NthElement(_gstl,1,"bgshifty")){
        elt->getvalue(val);
        _backshifty=matof(val);
        if(chld=_gapp->classMgr()->NthElement(elt,1,"field")){
            chld->getvalue(val);
            _fbackshifty=_gtp->fields()->get_index(val);
        }
        if(chld=_gapp->classMgr()->NthElement(elt,1,"value")){
            chld->getvalue(val);
            _backshifty=matof(val);
        }
    }
    
    if(elt=_gapp->classMgr()->NthElement(_gstl,1,"roundedradius")){
        elt->getvalue(val);
        _rradius=matof(val);
        if(chld=_gapp->classMgr()->NthElement(elt,1,"field")){
            chld->getvalue(val);
            _frradius=_gtp->fields()->get_index(val);
        }
        if(chld=_gapp->classMgr()->NthElement(elt,1,"value")){
            chld->getvalue(val);
            _rradius=matof(val);
        }
    }	

    
    if(elt=_gapp->classMgr()->NthElement(_gstl,1,"centroid")){
        elt->getvalue(val);
        _centro=atoi(val);
    }
    else{
        _centro=false;
    }
	return(true);
}
// ---------------------------------------------------------------------------
// 
// ------------
bool bvDefPaletteQuick::read(){
_bTrace_("bvDefPaletteQuick::read",true);
bool	made=false,b=false;
	if(!_root){
		make();
		made=true;
	}
	
_tm_("make passé");
bGenericXMLBaseElement* chld;
bGenericXMLBaseElement* elt;
bvDefPaletteQuickStyle*	stl;
char					val[_values_length_max_];
int						i;
	
	for(;;){
// Identification		
_tm_("Identification");
		chld=_gapp->classMgr()->NthElement(_root,1,"styleidentification");
		if(!chld){
			break;
		}
		elt=_gapp->classMgr()->NthElement(chld,1,"name");
		if(!elt){
			break;
		}
		elt->getvalue(_name);
		elt=_gapp->classMgr()->NthElement(chld,1,"version");
		if(!elt){
			break;
		}
		elt->getvalue(_vers);
		if(strlen(_vers)==0){
			strcpy(_vers,"3.0.0");
		}
		
// Globals
_tm_("Globals");
		chld=_gapp->classMgr()->NthElement(_root,1,"globals");
		if(!chld){
			break;
		}
		
		elt=_gapp->classMgr()->NthElement(chld,1,"classfield");
		if(!elt){
			break;
		}
		elt->getvalue(val);
		_fld=_tp->fields()->get_index(val);
		if(_fld==0){
			_fld=kOBJ_SubType_;
		}
		if(_fld!=kOBJ_SubType_){
			stl_free();
			stl_alloc();
		}
		
		elt=_gapp->classMgr()->NthElement(chld,1,"scaleref");
		if(!elt){
			break;
		}
		elt->getvalue(val);
		_sref=matof(val);
		elt=_gapp->classMgr()->NthElement(chld,1,"unitcoef");
		if(!elt){
			break;
		}
		elt->getvalue(val);
		_coef=matof(val);
		elt=_gapp->classMgr()->NthElement(chld,1,"sort");
		if(!elt){
			break;
		}
		elt->getvalue(val);
		_sort=atoi(val);
		elt=_gapp->classMgr()->NthElement(chld,1,"passcount");
		if(!elt){
			break;
		}
		elt->getvalue(val);
		_pssmax=atoi(val);
		
// Condition		
_tm_("Condition");
		chld=_gapp->classMgr()->NthElement(_root,1,"condition");
		if(!chld){
			break;
		}
		if(chld->countelements()>0){
			elt=chld->getelement(1);
			elt->getclassname(val);
			for(i=1;i<=nsvdef_op_max;i++){
				if(!strcmp(val,nsvdef_op_list[i])){
					chld=elt;
					if(chld->countelements()==2){
						elt=chld->getelement(1);
						elt->getvalue(val);
						_cfld=_tp->fields()->get_index(val);
						if(_cfld){
							elt=chld->getelement(2);
							elt->getvalue(_cval);
						}
					}
					else{
						_cfld=0;
					}
					break;
				}
			}
			if(i==nsvdef_op_max+1){
				_cfld=0;
			}
			else{
				_cop=i;
			}
		}
		else{
			_cfld=0;
		}
_tm_("_cop="+_cop);
		
// StyleRuns
_tm_("StyleRuns");
// Load des styles et init du flag cmyk
		for(int i=1;i<=_styles.count();i++){
			_styles.get(i,&stl);
			stl->load(_root);
			if(_cmyk==false){
				_cmyk=(stl->_cc==5);
			}
		}
// Remise de tous les styles sur la même colorimétrie
		for(int i=1;i<=_styles.count();i++){
			_styles.get(i,&stl);
			stl->_cc=(_cmyk)?5:4;
		}
		
        b=true;
        
		break;
	}
	
	if(made){
		_gapp->classMgr()->ReleaseXMLInstance(_root);
		_root=NULL;
	}
	
	return(b);
}
// ---------------------------------------------------------------------------
// 
// -----------
void bToolPrintArea::put_area(WindowRef wd){
ControlRef	c;
ControlID	cid={kPrintAreaSignature,0};
char		val[256];
i2dvertex	ivx;
d2dvertex	dvxa,dvxb;
CGPoint		pa,pb;

	cid.id=kPrintAreaXID;
	GetControlByID(wd,&cid,&c);
	GetTextControlValue(c,val,256);
	dvxa.x=matof(val);
	
	cid.id=kPrintAreaYID;
	GetControlByID(wd,&cid,&c);
	GetTextControlValue(c,val,256);
	dvxa.y=matof(val);
	
	switch(_sizekind){
		case kPrintAreaPopKindMenuGeo:
			cid.id=kPrintAreaWID;
			GetControlByID(wd,&cid,&c);
			GetTextControlValue(c,val,256);
			dvxb.x=dvxa.x+matof(val);
			cid.id=kPrintAreaHID;
			GetControlByID(wd,&cid,&c);
			GetTextControlValue(c,val,256);
			dvxb.y=dvxa.y-matof(val);
			break;
		case kPrintAreaPopKindMenuPix:
			Convert(&pa,&dvxa);
			cid.id=kPrintAreaWID;
			GetControlByID(wd,&cid,&c);
			GetTextControlValue(c,val,256);
			pb.x=pa.x+matof(val);
			cid.id=kPrintAreaHID;
			GetControlByID(wd,&cid,&c);
			GetTextControlValue(c,val,256);
			pb.y=pa.y-matof(val);
			Convert(&dvxb,&pb);
			break;
		case kPrintAreaPopKindMenuCustom:
			Convert(&pa,&dvxa);
			cid.id=kPrintAreaWID;
			GetControlByID(wd,&cid,&c);
			GetTextControlValue(c,val,256);
			pb.x=pa.x+((72.0/2.54)*matof(val));
			cid.id=kPrintAreaHID;
			GetControlByID(wd,&cid,&c);
			GetTextControlValue(c,val,256);
			pb.y=pa.y-((72.0/2.54)*matof(val));
			Convert(&dvxb,&pb);		
			break;
		case kPrintAreaPopKindMenuStandard:
			Convert(&pa,&dvxa);
			cid.id=kPrintAreaPopSizeID;
			GetControlByID(wd,&cid,&c);
			_pprkind=GetControl32BitValue(c);
			cid.id=kPrintAreaOrientationID;
			GetControlByID(wd,&cid,&c);
			_pprnat=GetControl32BitValue(c);
			if(_pprnat==1){
				pb.x=pa.x+((72.0/2.54)*ppr[_pprkind-1].w);
				pb.y=pa.y-((72.0/2.54)*ppr[_pprkind-1].h);
			}
			else{
				pb.x=pa.x+((72.0/2.54)*ppr[_pprkind-1].h);
				pb.y=pa.y-((72.0/2.54)*ppr[_pprkind-1].w);			
			}
			Convert(&dvxb,&pb);		
			break;
	}
	
	Convert(&ivx,&dvxa);		
	_vxr.left=ivx.h;
	_vxr.top=ivx.v;
	Convert(&ivx,&dvxb);		
	_vxr.right=ivx.h;
	_vxr.bottom=ivx.v;
}