bool XML_CheatsParser::HandleAttribute(const char *Tag, const char *Value) { if (StringsEqual(Tag,"on")) { return ReadBooleanValueAsBool(Value,CheatsActive); } else if (StringsEqual(Tag,"mac_keymod")) { #ifdef mac return ReadUInt16Value(Value,CheatCodeModMask); #else return true; #endif } UnrecognizedTag(); return false; }
bool XML_LandscapeParser::HandleAttribute(const char *Tag, const char *Value) { if (StringsEqual(Tag,"coll")) { if (ReadBoundedInt16Value(Value,Collection,short(AnyFrame),short(NUMBER_OF_COLLECTIONS-1))) { IsPresent = true; return true; } else return false; } else if (StringsEqual(Tag,"frame")) { return ReadBoundedInt16Value(Value,Frame,0,MAXIMUM_SHAPES_PER_COLLECTION-1); } else if (StringsEqual(Tag,"horiz_exp")) { return ReadInt16Value(Value,Data.HorizExp); } else if (StringsEqual(Tag,"vert_exp")) { return ReadInt16Value(Value,Data.VertExp); } else if (StringsEqual(Tag,"vert_repeat")) { return ReadBooleanValueAsBool(Value,Data.VertRepeat); } else if (StringsEqual(Tag,"ogl_asprat_exp")) { return ReadInt16Value(Value,Data.OGL_AspRatExp); } else if (StringsEqual(Tag,"azimuth")) { float Azimuth; if (ReadFloatValue(Value,Azimuth)) { Azimuth = Azimuth - 360*int(Azimuth/360); if (Azimuth < 0) Azimuth += 360; Data.Azimuth = angle(FULL_CIRCLE*(Azimuth/360) + 0.5); return true; } return false; } UnrecognizedTag(); return false; }
bool XML_FOVParser::HandleAttribute(const char *Tag, const char *Value) { if (StringsEqual(Tag,"normal")) { return (ReadBoundedNumericalValue(Value,"%f",FOV_Normal,float(0),float(180))); } else if (StringsEqual(Tag,"extra")) { return (ReadBoundedNumericalValue(Value,"%f",FOV_ExtraVision,float(0), float(180))); } else if (StringsEqual(Tag,"tunnel")) { return (ReadBoundedNumericalValue(Value,"%f",FOV_TunnelVision,float(0), float(180))); } else if (StringsEqual(Tag,"rate")) { return (ReadBoundedNumericalValue(Value,"%f",FOV_ChangeRate,float(0), float(180))); } else if (StringsEqual(Tag,"fix_h_not_v")) { return ReadBooleanValueAsBool(Value,FOV_FixHorizontalNotVertical); } UnrecognizedTag(); return false; }