float xml_get_attribute_float(int n,char *name) { char str[256]; if (!xml_get_attribute_raw(n,name,str,256)) return(0.0f); return(strtof(str,NULL)); }
int xml_get_attribute_uv_y_array(int n,char *name,d3uv *uvs,int count) { int nvalue; char *c,*c2,str[5120]; if (!xml_get_attribute_raw(n,name,str,5120)) return(0); if (str[0]==0x0) return(0); nvalue=0; c=str; while (TRUE) { c2=strchr(c,','); if (c2!=NULL) { *c2=0x0; } uvs[nvalue++].y=strtof(c,NULL); if (c2==NULL) break; c=c2+1; if (nvalue==count) break; } return(nvalue); }
bool xml_get_attribute_text(int n,char *name,char *value,int valuesz) { if (!xml_get_attribute_raw(n,name,value,valuesz)) return(FALSE); xml_parse_attribute(value); return(TRUE); }
bool xml_get_attribute_3_coord_float(int n,char *name,float *x,float *y,float *z) { char *c,*c2,str[256]; *x=*y=*z=0.0f; if (!xml_get_attribute_raw(n,name,str,256)) return(FALSE); c2=strchr(str,','); if (c2==NULL) return(FALSE); *c2=0x0; *x=strtof(str,NULL); c=c2+1; c2=strchr(c,','); if (c2==NULL) return(FALSE); *c2=0x0; *y=strtof(c,NULL); *z=strtof(c2+1,NULL); return(TRUE); }
bool xml_get_attribute_4_coord_float(int n,char *name,float *r,float *g,float *b,float *a) { char *c,*c2,str[256]; *r=*g=*b=*a=0.0f; if (!xml_get_attribute_raw(n,name,str,256)) return(FALSE); c2=strchr(str,','); if (c2==NULL) return(FALSE); *c2=0x0; *r=strtof(str,NULL); c=c2+1; c2=strchr(c,','); if (c2==NULL) return(FALSE); *c2=0x0; *g=strtof(c,NULL); c=c2+1; c2=strchr(c,','); if (c2==NULL) return(FALSE); *c2=0x0; *b=strtof(c,NULL); *a=strtof(c2+1,NULL); return(TRUE); }
bool xml_get_attribute_boolean(int n,char *name) { char str[256]; if (!xml_get_attribute_raw(n,name,str,256)) return(FALSE); return(strcmp(str,"true")==0); }
bool xml_get_attribute_3_coord_int(int n,char *name,int *x,int *y,int *z) { char *c,*c2,str[256]; *x=*y=*z=0; if (!xml_get_attribute_raw(n,name,str,256)) return(FALSE); c2=strchr(str,','); if (c2==NULL) return(FALSE); *c2=0x0; *x=atoi(str); c=c2+1; c2=strchr(c,','); if (c2==NULL) return(FALSE); *c2=0x0; *y=atoi(c); *z=atoi(c2+1); return(TRUE); }
bool xml_get_attribute_boolean_default_true(int n,char *name) { char str[256]; if (!xml_get_attribute_raw(n,name,str,256)) return(TRUE); return(strcmp(str,"true")==0); }
int xml_get_attribute_int_default(int n,char *name,int def_int) { char str[256]; if (!xml_get_attribute_raw(n,name,str,256)) return(def_int); return(atoi(str)); }
float xml_get_attribute_float_default(int n,char *name,float def_float) { char str[256]; if (!xml_get_attribute_raw(n,name,str,256)) return(def_float); return(strtof(str,NULL)); }
int xml_get_attribute_short_array(int n,char *name,short *value,int count) { int nvalue; char *c,*c2,str[5120]; if (!xml_get_attribute_raw(n,name,str,5120)) return(0); if (str[0]==0x0) return(0); nvalue=0; c=str; while (TRUE) { c2=strchr(c,','); if (c2!=NULL) { *c2=0x0; } value[nvalue++]=(short)atoi(c); if (c2==NULL) break; c=c2+1; if (nvalue==count) break; } return(nvalue); }
int xml_get_attribute_int(int n,char *name) { char str[256]; if (!xml_get_attribute_raw(n,name,str,256)) return(0); return(atoi(str)); }
void xml_get_attribute_text(int n,char *name,char *value,int valuesz) { if (!xml_get_attribute_raw(n,name,value,valuesz)) { *value=0x0; return; } xml_parse_attribute(value); }
bool xml_get_attribute_text_default_blank(int n,char *name,char *value,int valuesz) { if (!xml_get_attribute_raw(n,name,value,valuesz)) { value[0]=0x0; } else { xml_parse_attribute(value); } return(TRUE); }
bool xml_get_attribute_bit_array(int n,char *name,unsigned char *value,int count) { int k; char str[5120]; bzero(value,count); if (!xml_get_attribute_raw(n,name,str,5120)) return(0); count=strlen(str); for (k=0;k<count;k+=2) { value[k>>1]=(unsigned char)((xml_hex_character_to_int(str[k])*16)+xml_hex_character_to_int(str[k+1])); } return(TRUE); }
bool xml_get_attribute_color(int n,char *name,d3col *col) { int k; char str[8]; if (!xml_get_attribute_raw(n,name,str,8)) return(FALSE); k=(xml_hex_character_to_int(str[0])*16)+xml_hex_character_to_int(str[1]); col->r=((float)k)/(float)0xFF; k=(xml_hex_character_to_int(str[2])*16)+xml_hex_character_to_int(str[3]); col->g=((float)k)/(float)0xFF; k=(xml_hex_character_to_int(str[4])*16)+xml_hex_character_to_int(str[5]); col->b=((float)k)/(float)0xFF; return(TRUE); }
int xml_get_attribute_list(int n,char *name,char *list) { int i; char *c,str[256]; if (!xml_get_attribute_raw(n,name,str,256)) return(0); i=0; c=list; while (TRUE) { if (*c==0x0) break; if (strcmp(str,c)==0) return(i); c+=32; i++; } return(0); }
bool xml_get_attribute_2_coord_float_default(int n,char *name,float *x,float *y,float def_x,float def_y) { char *c2,str[256]; if (!xml_get_attribute_raw(n,name,str,256)) { *x=def_x; *y=def_y; return(TRUE); } *x=*y=0; c2=strchr(str,','); if (c2==NULL) return(FALSE); *c2=0x0; *x=strtof(str,NULL); *y=strtof(c2+1,NULL); return(TRUE); }