unsigned Item_factory::flags_from_json(JsonObject& jo, std::string member, std::string flag_type) { //If none is found, just use the standard none action unsigned flag = 0; //Otherwise, grab the right label to look for if ( jo.has_array(member) ) { JsonArray jarr = jo.get_array(member); while (jarr.has_more()){ set_flag_by_string(flag, jarr.next_string(), flag_type); } } else if ( jo.has_string(member) ) { //we should have gotten a string, if not an array set_flag_by_string(flag, jo.get_string(member), flag_type); } return flag; }
unsigned Item_factory::flags_from_json(catajson flag_list, std::string flag_type){ //If none is found, just use the standard none action unsigned flag = 0; //Otherwise, grab the right label to look for if (flag_list.is_array()) { for (flag_list.set_begin(); flag_list.has_curr(); flag_list.next()) { set_flag_by_string(flag, flag_list.curr().as_string(), flag_type); } } else { //we should have gotten a string, if not an array, and catajson will do error checking set_flag_by_string(flag, flag_list.as_string(), flag_type); } return flag; }