X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fio%2FWorldSave.cpp;h=8422623f36746262f30e10f0d78942a44f635439;hb=56069d41c1553d87a8759713ef391d3a908adc0e;hp=6414dd0a7be43129f2840562454ead38ae12bc79;hpb=3542823a1af7f5063d7cc8da84efa248eb889b8a;p=blank.git diff --git a/src/io/WorldSave.cpp b/src/io/WorldSave.cpp index 6414dd0..8422623 100644 --- a/src/io/WorldSave.cpp +++ b/src/io/WorldSave.cpp @@ -125,11 +125,15 @@ void WorldSave::Read(Player &player) const { in.ReadIdentifier(name); in.Skip(Token::EQUALS); if (name == "chunk") { - in.ReadVec(state.chunk_pos); + in.ReadVec(state.pos.chunk); } else if (name == "position") { - in.ReadVec(state.block_pos); + in.ReadVec(state.pos.block); } else if (name == "orientation") { in.ReadQuat(state.orient); + } else if (name == "pitch") { + state.pitch = in.GetFloat(); + } else if (name == "yaw") { + state.yaw = in.GetFloat(); } else if (name == "slot") { int slot; in.ReadNumber(slot); @@ -148,9 +152,11 @@ void WorldSave::Write(const Player &player) const { } const EntityState &state = player.GetEntity().GetState(); ofstream out(PlayerPath(player)); - out << "chunk = " << state.chunk_pos << ';' << endl; - out << "position = " << state.block_pos << ';' << endl; + out << "chunk = " << state.pos.chunk << ';' << endl; + out << "position = " << state.pos.block << ';' << endl; out << "orientation = " << state.orient << ';' << endl; + out << "pitch = " << state.pitch << ';' << endl; + out << "yaw = " << state.yaw << ';' << endl; out << "slot = " << player.GetInventorySlot() << ';' << endl; } @@ -161,7 +167,7 @@ string WorldSave::PlayerPath(const Player &player) const { } -bool WorldSave::Exists(const Chunk::Pos &pos) const noexcept { +bool WorldSave::Exists(const ExactLocation::Coarse &pos) const noexcept { return is_file(ChunkPath(pos)); } @@ -211,7 +217,7 @@ void WorldSave::Write(Chunk &chunk) const { } -const char *WorldSave::ChunkPath(const Chunk::Pos &pos) const { +const char *WorldSave::ChunkPath(const ExactLocation::Coarse &pos) const { snprintf(chunk_buf.get(), chunk_bufsiz, chunk_path.c_str(), pos.x, pos.y, pos.z); return chunk_buf.get(); }