]> git.localhorst.tv Git - blank.git/blobdiff - src/client/client.cpp
function to get mtime
[blank.git] / src / client / client.cpp
index 91d6aed6992e7327fc23116fcea59c9f902c8c00..ada697b6f90668747d9ca29bc070f815dcde1d50 100644 (file)
@@ -126,11 +126,14 @@ InteractiveState::InteractiveState(MasterState &master, uint32_t player_id)
        }
        TextureIndex tex_index;
        master.GetEnv().loader.LoadBlockTypes("default", block_types, tex_index);
-       interface.SetInventorySlots(block_types.Size() - 1);
+       interface.SetInventorySlots(block_types.size() - 1);
        chunk_renderer.LoadTextures(master.GetEnv().loader, tex_index);
        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;
@@ -230,7 +233,7 @@ void InteractiveState::Handle(const Packet::BlockUpdate &pack) {
                Block block;
                pack.ReadIndex(index, i);
                pack.ReadBlock(block, i);
-               if (index < Chunk::size && block.type < block_types.Size()) {
+               if (index < Chunk::size && block.type < block_types.size()) {
                        manip.SetBlock(*chunk, index, block);
                }
        }
@@ -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;