summaryrefslogtreecommitdiff
path: root/src/net/tmwa
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/tmwa')
-rw-r--r--src/net/tmwa/chathandler.cpp17
-rw-r--r--src/net/tmwa/chathandler.h4
-rw-r--r--src/net/tmwa/loginhandler.cpp6
-rw-r--r--src/net/tmwa/messageout.h3
-rw-r--r--src/net/tmwa/network.cpp2
-rw-r--r--src/net/tmwa/protocol.h2
6 files changed, 30 insertions, 4 deletions
diff --git a/src/net/tmwa/chathandler.cpp b/src/net/tmwa/chathandler.cpp
index 4e4318595..fe6592d93 100644
--- a/src/net/tmwa/chathandler.cpp
+++ b/src/net/tmwa/chathandler.cpp
@@ -60,6 +60,7 @@ ChatHandler::ChatHandler()
SMSG_WHISPER_RESPONSE,
SMSG_GM_CHAT,
SMSG_MVP, // MVP
+ SMSG_IGNORE_ALL_RESPONSE,
0
};
handledMessages = _messages;
@@ -96,6 +97,9 @@ void ChatHandler::handleMessage(Net::MessageIn &msg)
processMVP(msg);
break;
+ case SMSG_IGNORE_ALL_RESPONSE:
+ processIgnoreAllResponse(msg);
+
default:
break;
}
@@ -249,5 +253,16 @@ void ChatHandler::processRaw(MessageOut &outMsg, std::string &line)
}
}
-} // namespace TmwAthena
+void ChatHandler::ignoreAll()
+{
+ MessageOut outMsg(CMSG_IGNORE_ALL);
+ outMsg.writeInt8(0);
+}
+void ChatHandler::unIgnoreAll()
+{
+ MessageOut outMsg(CMSG_IGNORE_ALL);
+ outMsg.writeInt8(1);
+}
+
+} // namespace TmwAthena
diff --git a/src/net/tmwa/chathandler.h b/src/net/tmwa/chathandler.h
index d9e927e03..197ba12b3 100644
--- a/src/net/tmwa/chathandler.h
+++ b/src/net/tmwa/chathandler.h
@@ -57,6 +57,10 @@ class ChatHandler : public MessageHandler, public Ea::ChatHandler
void sendRaw(const std::string &args);
+ void ignoreAll();
+
+ void unIgnoreAll();
+
void processRaw(MessageOut &outMsg, std::string &line);
};
diff --git a/src/net/tmwa/loginhandler.cpp b/src/net/tmwa/loginhandler.cpp
index cac8df623..bdc944d63 100644
--- a/src/net/tmwa/loginhandler.cpp
+++ b/src/net/tmwa/loginhandler.cpp
@@ -118,8 +118,8 @@ void LoginHandler::changePassword(const std::string &username A_UNUSED,
const std::string &newPassword)
{
MessageOut outMsg(CMSG_CHAR_PASSWORD_CHANGE);
- outMsg.writeString(oldPassword, 24);
- outMsg.writeString(newPassword, 24);
+ outMsg.writeStringNoLog(oldPassword, 24);
+ outMsg.writeStringNoLog(newPassword, 24);
}
void LoginHandler::sendLoginRegister(const std::string &username,
@@ -128,7 +128,7 @@ void LoginHandler::sendLoginRegister(const std::string &username,
MessageOut outMsg(0x0064);
outMsg.writeInt32(0); // client version
outMsg.writeString(username, 24);
- outMsg.writeString(password, 24);
+ outMsg.writeStringNoLog(password, 24);
/*
* eAthena calls the last byte "client version 2", but it isn't used at
diff --git a/src/net/tmwa/messageout.h b/src/net/tmwa/messageout.h
index da86f06f6..d97851d4a 100644
--- a/src/net/tmwa/messageout.h
+++ b/src/net/tmwa/messageout.h
@@ -56,6 +56,9 @@ class MessageOut : public Net::MessageOut
void writeCoordinates(unsigned short x, unsigned short y,
unsigned char direction);
+ void resetPos()
+ { mPos = 0; }
+
private:
void expand(size_t size);
diff --git a/src/net/tmwa/network.cpp b/src/net/tmwa/network.cpp
index 0af74c295..e26f48324 100644
--- a/src/net/tmwa/network.cpp
+++ b/src/net/tmwa/network.cpp
@@ -260,6 +260,7 @@ void Network::flush()
SDL_mutexP(mMutex);
ret = SDLNet_TCP_Send(mSocket, mOutBuffer, mOutSize);
+ DEBUGLOG("Send " + toString(mOutSize) + " bytes");
if (ret < static_cast<int>(mOutSize))
{
setError("Error in SDLNet_TCP_Send(): " +
@@ -427,6 +428,7 @@ void Network::receive()
}
else
{
+ DEBUGLOG("Receive " + toString(ret) + " bytes");
mInSize += ret;
if (mToSkip)
{
diff --git a/src/net/tmwa/protocol.h b/src/net/tmwa/protocol.h
index 3a753e351..caf3c8e53 100644
--- a/src/net/tmwa/protocol.h
+++ b/src/net/tmwa/protocol.h
@@ -331,5 +331,7 @@ enum
#define SMSG_BEING_IP_RESPONSE 0x020c
#define SMSG_PVP_MAP_MODE 0x0199
#define SMSG_PVP_SET 0x019a
+#define CMSG_IGNORE_ALL 0x00d0
+#define SMSG_IGNORE_ALL_RESPONSE 0x00d2
#endif