void GhostParticleSystem::write(lisp::Writer& writer) { writer.start_list("particles-ghosts"); writer.write_int("z-pos", z_pos); writer.end_list("particles-ghosts"); }
void Sector::write(lisp::Writer& writer) { writer.write_string("name", name); writer.write_float("gravity", gravity); writer.write_string("music", music); // write spawnpoints for(SpawnPoints::iterator i = spawnpoints.begin(); i != spawnpoints.end(); ++i) { SpawnPoint* spawn = *i; writer.start_list("spawn-points"); writer.write_string("name", spawn->name); writer.write_float("x", spawn->pos.x); writer.write_float("y", spawn->pos.y); writer.end_list("spawn-points"); } // write objects for(GameObjects::iterator i = gameobjects.begin(); i != gameobjects.end(); ++i) { Serializable* serializable = dynamic_cast<Serializable*> (*i); if(serializable) serializable->write(writer); } }
void SSpiky::write(lisp::Writer& writer) { writer.start_list("sspiky"); WalkingBadguy::write(writer); writer.end_list("sspiky"); }
void SnowParticleSystem::write(lisp::Writer& writer) { writer.start_list("particles-snow"); writer.write_int("z-pos", z_pos); writer.end_list("particles-snow"); }
void Stumpy::write(lisp::Writer& writer) { writer.start_list("stumpy"); WalkingBadguy::write(writer); writer.end_list("stumpy"); }
void MrTree::write(lisp::Writer& writer) { writer.start_list("mrtree"); WalkingBadguy::write(writer); writer.end_list("mrtree"); }
void MrIceBlock::write(lisp::Writer& writer) { writer.start_list("mriceblock"); WalkingBadguy::write(writer); writer.end_list("mriceblock"); }
void CloudParticleSystem::write(lisp::Writer& writer) { writer.start_list("particles-clouds"); writer.write_int("z-pos", z_pos); writer.end_list("particles-clouds"); }
void save_squirrel_table(HSQUIRRELVM vm, int table_idx, lisp::Writer& writer) { // offset because of sq_pushnull if(table_idx < 0) table_idx -= 1; //iterator table sq_pushnull(vm); while(SQ_SUCCEEDED(sq_next(vm, table_idx))) { if(sq_gettype(vm, -2) != OT_STRING) { std::cerr << "Table contains non-string key\n"; continue; } const char* key; sq_getstring(vm, -2, &key); switch(sq_gettype(vm, -1)) { case OT_INTEGER: { int val; sq_getinteger(vm, -1, &val); writer.write_int(key, val); break; } case OT_FLOAT: { float val; sq_getfloat(vm, -1, &val); writer.write_float(key, val); break; } case OT_BOOL: { SQBool val; sq_getbool(vm, -1, &val); writer.write_bool(key, val); break; } case OT_STRING: { const char* str; sq_getstring(vm, -1, &str); writer.write_string(key, str); break; } case OT_TABLE: { writer.start_list(key, true); save_squirrel_table(vm, -1, writer); writer.end_list(key); break; } case OT_CLOSURE: break; // ignore case OT_NATIVECLOSURE: break; default: std::cerr << "Can't serialize key '" << key << "' in table.\n"; break; } sq_pop(vm, 2); } sq_pop(vm, 1); }
void Dart::write(lisp::Writer& writer) { writer.start_list("dart"); writer.write_float("x", start_position.x); writer.write_float("y", start_position.y); writer.end_list("dart"); }
void MoleRock::write(lisp::Writer& writer) { writer.start_list("mole_rock"); writer.write_float("x", start_position.x); writer.write_float("y", start_position.y); writer.end_list("mole_rock"); }
void Yeti::write(lisp::Writer& writer) { writer.start_list("yeti"); writer.write_float("x", start_position.x); writer.write_float("y", start_position.y); writer.end_list("yeti"); }
void MrBomb::write(lisp::Writer& writer) { writer.start_list("mrbomb"); writer.write_float("x", start_position.x); writer.write_float("y", start_position.y); writer.end_list("mrbomb"); }
void SpawnPoint::save(lisp::Writer& writer){ writer.start_list("spawnpoint"); writer.write("x",pos.x); writer.write("y",pos.y); writer.write("name",name,false); writer.end_list("spawnpoint"); }
void MrRocket::write(lisp::Writer& writer) { writer.start_list("mrrocket"); writer.write_float("x", start_position.x); writer.write_float("y", start_position.y); writer.end_list("mrrocket"); }
void SnowSnail::write(lisp::Writer& writer) { writer.start_list("mriceblock"); writer.write_float("x", start_position.x); writer.write_float("y", start_position.y); writer.end_list("snowsnail"); }
void Zeekling::write(lisp::Writer& writer) { writer.start_list("zeekling"); writer.write_float("x", start_position.x); writer.write_float("y", start_position.y); writer.end_list("zeekling"); }
void Jumpy::write(lisp::Writer& writer) { writer.start_list("jumpy"); writer.write_float("x", start_position.x); writer.write_float("y", start_position.y); writer.end_list("jumpy"); }
void BouncingSnowball::write(lisp::Writer& writer) { writer.start_list("bouncingsnowball"); writer.write_float("x", start_position.x); writer.write_float("y", start_position.y); writer.end_list("bouncingsnowball"); }
void Totem::write(lisp::Writer& writer) { writer.start_list("totem"); writer.write_float("x", start_position.x); writer.write_float("y", start_position.y); writer.end_list("totem"); }
void SpiderMite::write(lisp::Writer& writer) { writer.start_list("spidermite"); writer.write_float("x", start_position.x); writer.write_float("y", start_position.y); writer.end_list("spidermite"); }
void Fish::write(lisp::Writer& writer) { writer.start_list("fish"); writer.write_float("x", start_position.x); writer.write_float("y", start_position.y); writer.end_list("fish"); }
void DartTrap::write(lisp::Writer& writer) { writer.start_list("darttrap"); writer.write_float("x", start_position.x); writer.write_float("y", start_position.y); writer.write_float("initial-delay", initial_delay); writer.write_float("fire-delay", fire_delay); writer.write_int("ammo", ammo); writer.end_list("darttrap"); }
void WillOWisp::write(lisp::Writer& writer) { writer.start_list("willowisp"); writer.write_float("x", start_position.x); writer.write_float("y", start_position.y); writer.write_string("sector", target_sector); writer.write_string("spawnpoint", target_spawnpoint); writer.end_list("willowisp"); }
void Flame::write(lisp::Writer& writer) { writer.start_list("flame"); writer.write_float("x", start_position.x); writer.write_float("y", start_position.y); writer.write_float("radius", radius); writer.write_float("speed", speed); writer.end_list("flame"); }
void Dispenser::write(lisp::Writer& writer) { writer.start_list("dispenser"); writer.write_float("x", start_position.x); writer.write_float("y", start_position.y); writer.write_float("cycle", cycle); writer.write_string("badguy", badguy); writer.end_list("dispenser"); }
void SnowBall::write(lisp::Writer& writer) { writer.start_list("snowball"); writer.write_float("x", start_position.x); writer.write_float("y", start_position.y); if (fluffy) { // don't give us away at every snowball writer.write_bool("fluffy", true); } writer.end_list("snowball"); }
void Camera::write(lisp::Writer& writer) { writer.start_list("camera"); if(mode == NORMAL) { writer.write_string("mode", "normal"); writer.write_bool("backscrolling", do_backscrolling); } else if(mode == AUTOSCROLL) { writer.write_string("mode", "autoscroll"); autoscroll_path->write(writer); } else if(mode == MANUAL) { writer.write_string("mode", "manual"); } writer.end_list("camera"); }
void Background::write(lisp::Writer& writer) { writer.start_list("background"); if (image_top.get() != NULL) writer.write_string("image-top", imagefile_top); writer.write_string("image", imagefile); if (image_bottom.get() != NULL) writer.write_string("image-bottom", imagefile_bottom); writer.write_float("speed", speed); writer.write_float("speed-y", speed_y); writer.write_int("layer", layer); writer.end_list("background"); }