Exemplo n.º 1
0
/*
 * 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);
}
Exemplo n.º 2
0
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();
}
Exemplo n.º 3
0
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;
}