summaryrefslogtreecommitdiff
path: root/src/gui/connection.cpp
diff options
context:
space:
mode:
authorEugenio Favalli <elvenprogrammer@gmail.com>2005-12-29 20:45:58 +0000
committerEugenio Favalli <elvenprogrammer@gmail.com>2005-12-29 20:45:58 +0000
commit6a7e4f64cc802f52e3fc350c88f6571c4913ba6d (patch)
treebd45cb2590636b4a8ff7a5443fc987f526ea0220 /src/gui/connection.cpp
parented258400f785bb1882ea7fe88bb3a12f8c19edd4 (diff)
downloadmana-client-6a7e4f64cc802f52e3fc350c88f6571c4913ba6d.tar.gz
mana-client-6a7e4f64cc802f52e3fc350c88f6571c4913ba6d.tar.bz2
mana-client-6a7e4f64cc802f52e3fc350c88f6571c4913ba6d.tar.xz
mana-client-6a7e4f64cc802f52e3fc350c88f6571c4913ba6d.zip
Restored Dev-Cpp default execution options, updated walkmap in snow map, smoothed login sequence.
Diffstat (limited to 'src/gui/connection.cpp')
-rw-r--r--src/gui/connection.cpp25
1 files changed, 18 insertions, 7 deletions
diff --git a/src/gui/connection.cpp b/src/gui/connection.cpp
index 3cff4abd..c7eb3667 100644
--- a/src/gui/connection.cpp
+++ b/src/gui/connection.cpp
@@ -86,8 +86,20 @@ void ConnectionDialog::logic()
closeConnection();
break;
case NET_CONNECTED:
- mapLogin();
- state = GAME_STATE;
+ attemptMapLogin();
+ mStatus = NET_DATA;
+ break;
+ case NET_DATA:
+ if (in_size > 6)
+ {
+ skip(4);
+ checkMapLogin();
+ state = GAME_STATE;
+ }
+ else
+ {
+ flush();
+ }
break;
}
}
@@ -100,7 +112,7 @@ void ConnectionDialog::action(const std::string& eventId)
}
}
-void ConnectionDialog::mapLogin()
+void ConnectionDialog::attemptMapLogin()
{
// Send login infos
MessageOut outMsg;
@@ -110,11 +122,10 @@ void ConnectionDialog::mapLogin()
outMsg.writeInt32(session_ID1);
outMsg.writeInt32(session_ID2);
outMsg.writeInt8(sex);
+}
- // Skip a mysterious 4 bytes
- while ((in_size < 4)|| (out_size > 0)) flush();
- skip(4);
-
+void ConnectionDialog::checkMapLogin()
+{
MessageIn msg = get_next_message();
if (msg.getId() == SMSG_LOGIN_SUCCESS)