/* * Load vehicle from a json blob that might just exceed player in size. */ void vehicle::deserialize(JsonIn &jsin) { JsonObject data = jsin.get_object(); int fdir, mdir; data.read("type", type); data.read("posx", posx); data.read("posy", posy); data.read("levx", levx); data.read("levy", levy); data.read("om_id", om_id); data.read("faceDir", fdir); data.read("moveDir", mdir); data.read("turn_dir", turn_dir); data.read("velocity", velocity); data.read("cruise_velocity", cruise_velocity); data.read("cruise_on", cruise_on); data.read("engine_on", engine_on); data.read("has_pedals", has_pedals); data.read("tracking_on", tracking_on); data.read("lights_on", lights_on); data.read("overhead_lights_on", overhead_lights_on); data.read("fridge_on", fridge_on); data.read("recharger_on", recharger_on); data.read("skidding", skidding); data.read("turret_mode", turret_mode); data.read("of_turn_carry", of_turn_carry); face.init (fdir); move.init (mdir); data.read("name",name); data.read("parts", parts); /* for(int i=0;i < parts.size();i++ ) { parts[i].setid(parts[i].id); } */ /* After loading, check if the vehicle is from the old rules and is missing * frames. */ if ( savegame_loading_version < 11 ) { add_missing_frames(); } find_horns (); find_parts (); find_power (); find_fuel_tanks (); find_exhaust (); insides_dirty = true; precalc_mounts (0, face.dir()); data.read("tags",tags); }
void GRule::fwrite(char* filename) const { ofstream fout(filename); if (fout.is_open()) { list <rule>::const_iterator i; int cnt=0; for (i=rules.begin();i!=rules.end();i++) { string left,g,right; const string* wordp = i->patp; find_parts(wordp,left,g,right); fout << g << ";" << left << ";" << right << ";" << *(i->phonep) << ";" << cnt << ";" << i->num << endl; cnt++; //fout << *(i->patp) << ";" << *(i->phonep) << ";" << i->num << endl; } } fout.close(); }
vector<string> GRule::get_rules(void) { vector<string> rule_strings; list <rule>::const_iterator i; int cnt=0; for (i=rules.begin();i!=rules.end();i++) { stringstream ss; string left,g,right; const string* wordp = i->patp; find_parts(wordp,left,g,right); ss << g << ";" << left << ";" << right << ";" << *(i->phonep) << ";" << cnt << ";" << i->num; string new_rule = ss.str(); rule_strings.push_back(new_rule); cnt++; } return rule_strings; }