summaryrefslogtreecommitdiff
path: root/servergreps
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-05-20 22:01:42 +0300
committerAndrei Karas <akaras@inbox.ru>2015-05-20 22:01:42 +0300
commitf1513c0e8ebcb97a300b6234956be1fe8cc8d452 (patch)
tree887976b5aa0fb489d939494f3f98c8db3e10ab17 /servergreps
parent3e566681c06a3f02b73aabcfeb0a752df8eccc69 (diff)
downloadevol-tools-f1513c0e8ebcb97a300b6234956be1fe8cc8d452.tar.gz
evol-tools-f1513c0e8ebcb97a300b6234956be1fe8cc8d452.tar.bz2
evol-tools-f1513c0e8ebcb97a300b6234956be1fe8cc8d452.tar.xz
evol-tools-f1513c0e8ebcb97a300b6234956be1fe8cc8d452.zip
servergreps: report unimplimented packets in ManaPlus.
Diffstat (limited to 'servergreps')
-rw-r--r--servergreps/clientpackets.txt3
-rwxr-xr-xservergreps/packets.py33
-rw-r--r--servergreps/serverpackets.txt24
-rw-r--r--servergreps/uselesspackets.txt1
4 files changed, 50 insertions, 11 deletions
diff --git a/servergreps/clientpackets.txt b/servergreps/clientpackets.txt
index 658e360..80a3bd4 100644
--- a/servergreps/clientpackets.txt
+++ b/servergreps/clientpackets.txt
@@ -1,3 +1,6 @@
+UNIMPLIMENTED CMSG_PARTY_CREATE2
+UNIMPLIMENTED CMSG_PARTY_INVITED
+UNIMPLIMENTED CMSG_SOLVE_CHAR_NAME
0217 2 clif->pBlacksmith
0218 2 clif->pAlchemist
021d 6 clif->pLessEffect
diff --git a/servergreps/packets.py b/servergreps/packets.py
index 1da37d2..50d08e1 100755
--- a/servergreps/packets.py
+++ b/servergreps/packets.py
@@ -14,6 +14,7 @@ serverpacketre2 = re.compile("[.]PacketType([ ]*)=([ ]*)(?P<name>[\w]+);")
protocolre = re.compile("#define[ ](?P<name>[A-Z0-9_]+)([ ]*)0x(?P<packet>[0-9a-fA-F]+)")
protocolClientre = re.compile("#define[ ](?P<name>CMSG_[A-Z0-9_]+)([ ]*)0x(?P<packet>[0-9a-fA-F]+)")
clientpacketre = re.compile("(\t*)packet[(]0x(?P<packet>[0-9a-fA-F]+),(?P<len>[\w-]+),(?P<function>[0-9a-zA-Z_>-]+)(,|[)])")
+packetNameClientre = re.compile("(?P<name>(S|C)MSG_[A-Z0-9_]+)")
packetsSet = set()
serverpacketsSorted = []
@@ -22,6 +23,7 @@ clientPacketsManaPlus = dict()
clientPacketsManaPlusClient = dict()
clientPackets = dict()
sizes = dict()
+manaplusUsedPacketsSet = set()
def collectServerPackets(parentDir):
global itemNamesByName
@@ -101,6 +103,25 @@ def collectManaPlusSizes(fileName):
# s = s + "{0:>4},".format(sizes[f + d * 16])
# print s
+def collectManaPlusUsedPackets(fileName):
+ with open(fileName, "r") as f:
+ for line in f:
+ m = packetNameClientre.search(line)
+ if m is not None:
+ manaplusUsedPacketsSet.add(m.group("name"))
+ print m.group("name")
+
+def processManaPlusCppFiles(parentDir):
+ files = os.listdir(parentDir)
+ for file1 in files:
+ if file1[0] == ".":
+ continue
+ file2 = os.path.abspath(parentDir + os.path.sep + file1)
+ if not os.path.isfile(file2):
+ processManaPlusCppFiles(file2)
+ elif file1[-4:] == ".cpp":
+ collectManaPlusUsedPackets(file2)
+
def printPackets():
with open("serverpackets.txt", "w") as w:
for packet in serverpacketsSorted:
@@ -108,7 +129,10 @@ def printPackets():
while data[0] == "0":
data = data[1:]
if packet in clientPacketsManaPlus:
- w.write(data + " client name: " + clientPacketsManaPlus[packet])
+ clientName = clientPacketsManaPlus[packet]
+ if clientName not in manaplusUsedPacketsSet and clientName.find("_OUTDATED") <= 0:
+ w.write("UNIMPLIMENTED ")
+ w.write(data + " client name: " + clientName)
else:
w.write(data)
w.write("\n")
@@ -131,6 +155,11 @@ def printPackets():
rev = []
with open("clientpackets.txt", "w") as w:
for packet in clientPacketsManaPlusClient:
+ clientName = clientPacketsManaPlusClient[packet]
+ if clientName not in manaplusUsedPacketsSet and clientName.find("_OUTDATED") <= 0:
+ w.write("UNIMPLIMENTED {0}\n".format(clientName))
+
+ for packet in clientPacketsManaPlusClient:
if packet in clientPackets:
manaplusFunc.add(clientPackets[packet][1])
for func in funcDict:
@@ -159,11 +188,13 @@ manaplusPath = "../../manaplus/src/"
protocolPath = manaplusPath + "net/eathena/protocol.h"
clientPacketsPath = srcPath + "map/packets.h"
packetsPath = manaplusPath + "net/eathena/packets.h"
+eathenaPath = manaplusPath + "net/eathena/"
collectServerPackets(srcPath)
collectClientPackets(clientPacketsPath)
collectManaPlusPackets(protocolPath)
collectManaPlusSizes(packetsPath);
+processManaPlusCppFiles(eathenaPath);
sortClientPackets()
sortServerPackets()
printPackets()
diff --git a/servergreps/serverpackets.txt b/servergreps/serverpackets.txt
index 03578ef..d196bd3 100644
--- a/servergreps/serverpackets.txt
+++ b/servergreps/serverpackets.txt
@@ -1,3 +1,4 @@
+62 client name: SMSG_CHAR_PASSWORD_RESPONSE
63 client name: SMSG_UPDATE_HOST
69 client name: SMSG_LOGIN_DATA
6a client name: SMSG_LOGIN_ERROR
@@ -50,15 +51,15 @@ cd client name: SMSG_ADMIN_KICK_ACK
d1 client name: SMSG_IGNORE_NICK_ACK
d2 client name: SMSG_IGNORE_ALL_RESPONSE
d4 client name: SMSG_CHAT_IGNORE_LIST
-d6 client name: SMSG_CHAT_CREATE_ACK
+d6 client name: SMSG_CHAT_ROOM_CREATE_ACK
d7 client name: SMSG_CHAT_DISPLAY
-d8 client name: SMSG_CHAT_DESTROY
-da client name: SMSG_CHAT_JOIN_FAILED
-db client name: SMSG_CHAT_JOIN_ACK
-dc client name: SMSG_CHAT_ADD_MEMBER
-dd client name: SMSG_CHAT_LEAVE
-df client name: SMSG_CHAT_SETTINGS
-e1 client name: SMSG_CHAT_ROLE_CHANGE
+d8 client name: SMSG_CHAT_ROOM_DESTROY
+da client name: SMSG_CHAT_ROOM_JOIN_FAILED
+db client name: SMSG_CHAT_ROOM_JOIN_ACK
+dc client name: SMSG_CHAT_ROOM_ADD_MEMBER
+dd client name: SMSG_CHAT_ROOM_LEAVE
+df client name: SMSG_CHAT_ROOM_SETTINGS
+e1 client name: SMSG_CHAT_ROOM_ROLE_CHANGE
e5 client name: SMSG_TRADE_REQUEST_OUTDATED
e7 client name: SMSG_TRADE_RESPONSE_OUTDATED
ea client name: SMSG_TRADE_ITEM_ADD_RESPONSE
@@ -85,7 +86,7 @@ fd client name: SMSG_PARTY_INVITE_RESPONSE_OUTDATED
110 client name: SMSG_SKILL_FAILED
111 client name: SMSG_PLAYER_ADD_SKILL
114 client name: SMSG_SKILL_DAMAGE_OUTDATED
-115 client name: SMSG_SKILL_GROUND_DAMAGE_UNUSED
+UNIMPLIMENTED 115 client name: SMSG_SKILL_GROUND_DAMAGE_UNUSED
117 client name: SMSG_SKILL_GROUND_NO_DAMAGE
119 client name: SMSG_PLAYER_STATUS_CHANGE_OUTDATED
11a client name: SMSG_SKILL_NO_DAMAGE
@@ -140,7 +141,7 @@ fd client name: SMSG_PARTY_INVITE_RESPONSE_OUTDATED
17f client name: SMSG_GUILD_MESSAGE
181 client name: SMSG_GUILD_OPPOSITION_ACK
184 client name: SMSG_GUILD_DEL_ALLIANCE
-185 client name: SMSG_GUILD_ALLIANCE_ADDED_DISABLED
+UNIMPLIMENTED 185 client name: SMSG_GUILD_ALLIANCE_ADDED_DISABLED
188 client name: SMSG_PLAYER_REFINE
189 client name: SMSG_PLAYER_NOTIFY_MAPINFO
18b client name: SMSG_MAP_QUIT_RESPONSE
@@ -364,6 +365,7 @@ b08 client name: SMSG_CHAT_JOIN_CHANNEL
b0a client name: SMSG_BEING_ATTRS
b0b client name: SMSG_NPC_AREA
b10 client name: SMSG_ONLINE_LIST
+b16 client name: SMSG_PLAYER_CLIENT_COMMAND
xa1a
2710
2711
@@ -570,6 +572,8 @@ xa1a
3892
3893
3894
+5000
+5001
7531 client name: SMSG_SERVER_VERSION_RESPONSE
additemtype
authoktype
diff --git a/servergreps/uselesspackets.txt b/servergreps/uselesspackets.txt
index 7c990db..6fa7a90 100644
--- a/servergreps/uselesspackets.txt
+++ b/servergreps/uselesspackets.txt
@@ -9,6 +9,7 @@ Useless packet 0187.
Useless packet 08ba.
Useless packet 0064.
Useless packet 0065.
+Useless packet 0061.
Useless packet 0068.
Useless packet 027c.
Useless packet 0b07.