X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fclient%2Fclient.cpp;h=7f58dfaca0a5e23486bb37c7411b424a883da87d;hb=78a290bd642c5578c9dd17481c8164ff50889ca2;hp=91d6aed6992e7327fc23116fcea59c9f902c8c00;hpb=933ca0fe6c660e482edd45742d981f2de59a32df;p=blank.git diff --git a/src/client/client.cpp b/src/client/client.cpp index 91d6aed..7f58dfa 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -131,6 +131,9 @@ InteractiveState::InteractiveState(MasterState &master, uint32_t player_id) chunk_renderer.FogDensity(master.GetWorldConf().fog_density); skeletons.Load(); loop_timer.Start(); + if (save.Exists(player)) { + save.Read(player); + } } void InteractiveState::OnEnter() { @@ -158,7 +161,7 @@ void InteractiveState::Handle(const SDL_Event &event) { interface.Handle(event.wheel); break; case SDL_QUIT: - master.Quit(); + Exit(); break; default: break; @@ -273,6 +276,7 @@ void InteractiveState::SetDebug(bool b) { } void InteractiveState::Exit() { + save.Write(player); master.Quit(); } @@ -333,9 +337,8 @@ void MasterState::OnPacketLost(uint16_t id) { void MasterState::OnTimeout() { if (client.GetConnection().Closed()) { - // TODO: push disconnected message - cout << "connection timed out" << endl; Quit(); + env.ShowMessage("connection timed out"); } } @@ -363,20 +366,19 @@ void MasterState::On(const Packet::Join &pack) { } void MasterState::On(const Packet::Part &pack) { + Quit(); if (state) { // kicked - cout << "kicked by server" << endl; + env.ShowMessage("kicked by server"); } else { // join refused - cout << "login refused by server" << endl; + env.ShowMessage("login refused by server"); } - Quit(); } void MasterState::On(const Packet::SpawnEntity &pack) { if (!state) { cout << "got entity spawn before world was created" << endl; - Quit(); return; } uint32_t entity_id; @@ -397,7 +399,6 @@ void MasterState::On(const Packet::SpawnEntity &pack) { void MasterState::On(const Packet::DespawnEntity &pack) { if (!state) { cout << "got entity despawn before world was created" << endl; - Quit(); return; } uint32_t entity_id; @@ -415,7 +416,6 @@ void MasterState::On(const Packet::DespawnEntity &pack) { void MasterState::On(const Packet::EntityUpdate &pack) { if (!state) { cout << "got entity update before world was created" << endl; - Quit(); return; } @@ -470,7 +470,6 @@ void MasterState::ClearEntity(uint32_t entity_id) { void MasterState::On(const Packet::PlayerCorrection &pack) { if (!state) { cout << "got player correction without a player :S" << endl; - Quit(); return; } uint16_t pack_seq;