void map_data_common_t::load_symbol( JsonObject &jo ) { if( jo.has_member( "copy-from" ) && looks_like.empty() ) { looks_like = jo.get_string( "copy-from" ); } if( jo.has_member( "looks_like" ) ) { looks_like = jo.get_string( "looks_like" ); } load_season_array( jo, "symbol", symbol_, [&jo]( const std::string &str ) { if( str == "LINE_XOXO" ) { return LINE_XOXO; } else if( str == "LINE_OXOX" ) { return LINE_OXOX; } else if( str.length() != 1 ) { jo.throw_error( "Symbol string must be exactly 1 character long.", "symbol" ); } return (int) str[0]; } ); const bool has_color = jo.has_member( "color" ); const bool has_bgcolor = jo.has_member( "bgcolor" ); if( has_color && has_bgcolor ) { jo.throw_error( "Found both color and bgcolor, only one of these is allowed." ); } else if( has_color ) { load_season_array( jo, "color", color_, color_from_string ); } else if( has_bgcolor ) { load_season_array( jo, "bgcolor", color_, bgcolor_from_string ); } else { jo.throw_error( "Missing member: one of: \"color\", \"bgcolor\" must exist." ); } }
void map_data_common_t::load_symbol( JsonObject &jo ) { load_season_array( *jo.get_raw( "symbol" ), symbol_, string_to_symbol ); const bool has_color = jo.has_member( "color" ); const bool has_bgcolor = jo.has_member( "bgcolor" ); if( has_color && has_bgcolor ) { jo.throw_error( "Found both color and bgcolor, only one of these is allowed." ); } else if( has_color ) { load_season_array( *jo.get_raw( "color" ), color_, color_from_json ); } else if( has_bgcolor ) { load_season_array( *jo.get_raw( "bgcolor" ), color_, bgcolor_from_json ); } else { jo.throw_error( "Missing member: one of: \"color\", \"bgcolor\" must exist." ); } }