|
From: <the...@us...> - 2016-11-26 20:29:32
|
Revision: 867
http://sourceforge.net/p/seq/svn/867
Author: theblueadept
Date: 2016-11-26 20:29:30 +0000 (Sat, 26 Nov 2016)
Log Message:
-----------
Historical checkin for 11/26/16
- Fixed Guild information (Newby)
Version to 5.13.10.44
Modified Paths:
--------------
showeq/trunk/ChangeLog
showeq/trunk/conf/worldopcodes.xml
showeq/trunk/configure.in
showeq/trunk/src/everquest.h
showeq/trunk/src/guild.cpp
showeq/trunk/src/guildshell.cpp
showeq/trunk/src/netstream.cpp
showeq/trunk/src/netstream.h
Modified: showeq/trunk/ChangeLog
===================================================================
--- showeq/trunk/ChangeLog 2016-11-18 00:38:44 UTC (rev 866)
+++ showeq/trunk/ChangeLog 2016-11-26 20:29:30 UTC (rev 867)
@@ -1,5 +1,11 @@
BlueAdept (11/17/16)
-------------------
+- Updated version to 5.13.10.44
+- Support EQ patch 11/16/16
+- Fixed guild information (Newby)
+
+BlueAdept (11/17/16)
+-------------------
- Updated version to 5.13.10.43
- Support EQ patch 11/16/16
- Updated Opcodes (Newby)
Modified: showeq/trunk/conf/worldopcodes.xml
===================================================================
--- showeq/trunk/conf/worldopcodes.xml 2016-11-18 00:38:44 UTC (rev 866)
+++ showeq/trunk/conf/worldopcodes.xml 2016-11-26 20:29:30 UTC (rev 867)
@@ -11,7 +11,7 @@
</opcode>
-->
- <opcode id="2D38" name="OP_GuildList" updated="12/12/12">
+ <opcode id="3ad6" name="OP_GuildList" updated="11/16/16">
<comment>old GuildListCode</comment>
<payload dir="server" typename="worldGuildListStruct" sizechecktype="none"/>
</opcode>
Modified: showeq/trunk/configure.in
===================================================================
--- showeq/trunk/configure.in 2016-11-18 00:38:44 UTC (rev 866)
+++ showeq/trunk/configure.in 2016-11-26 20:29:30 UTC (rev 867)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 5.13.10.43)
+AC_INIT(showeq, 5.13.10.44)
AC_CONFIG_SRCDIR(src/main.cpp)
AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_SYSTEM
Modified: showeq/trunk/src/everquest.h
===================================================================
--- showeq/trunk/src/everquest.h 2016-11-18 00:38:44 UTC (rev 866)
+++ showeq/trunk/src/everquest.h 2016-11-26 20:29:30 UTC (rev 867)
@@ -1711,10 +1711,11 @@
struct guildMOTDStruct
{
/*0000*/ uint32_t unknown0000; //***Placeholder
- /*0004*/ char target[64]; // motd target
- /*0068*/ char sender[64]; // motd "sender" (who set it)
- /*0132*/ uint32_t unknown0132; //***Placeholder
- /*0136*/ char message[0];
+ /*0004*/ uint32_t unknown0004; // added 11/16/2016
+ /*0008*/ char target[64]; // motd target
+ /*0072*/ char sender[64]; // motd "sender" (who set it)
+ /*0136*/ uint32_t unknown0132; //***Placeholder
+ /*0140*/ char message[0];
};
/*
@@ -2608,19 +2609,20 @@
/*
** Guild Member Update structure
-** Length: 80 Octets
+** Length: 88 Octets
**
*/
struct GuildMemberUpdate
{
/*000*/ uint32_t guildId; // guild id
-/*004*/ char name[64]; // member name
-/*068*/ uint16_t zoneId; // zone id
-/*070*/ uint16_t zoneInstance; // zone instance
-/*072*/ uint32_t lastOn; // time the player was last on.
-/*076*/ uint8_t uknown076[4]; // 4 bytes added 11/28/12
-/*080*/
+/*004*/ uint8_t unknown004[4]; // 4 bytes added 11/16/16
+/*008*/ char name[64]; // member name
+/*072*/ uint16_t zoneId; // zone id
+/*074*/ uint16_t zoneInstance; // zone instance
+/*076*/ uint32_t lastOn; // time the player was last on.
+/*080*/ uint8_t unknown080[8]; // 4 bytes added 11/28/12, +4 added 11/16/16
+/*088*/
};
/*
Modified: showeq/trunk/src/guild.cpp
===================================================================
--- showeq/trunk/src/guild.cpp 2016-11-18 00:38:44 UTC (rev 866)
+++ showeq/trunk/src/guild.cpp 2016-11-26 20:29:30 UTC (rev 867)
@@ -68,9 +68,14 @@
NetStream netStream(data,len);
QString guildName;
+ QString emptyName = "";
uint32_t size = 0; // to keep track of how much we're reading from the packet
uint32_t guildId = 0;
+ for (guildId = 0; guildId < 20000; guildId++)
+ m_guildList[guildId] = emptyName;
+ guildId = 0;
+
/*
0x48 in the packet starts the serialized list. See guildListStruct
and worldGuildListStruct in everquest.h
@@ -83,8 +88,10 @@
while(!netStream.end())
{
guildId = netStream.readUInt32NC();
+ size += 4; // four bytes for the guild ID
+ netStream.skipBytes(4);
+ size += 4; // four bytes added 11/16/2016
guildName = netStream.readText();
- size += 4; // four bytes for the guild ID
if(guildName.length())
{
Modified: showeq/trunk/src/guildshell.cpp
===================================================================
--- showeq/trunk/src/guildshell.cpp 2016-11-18 00:38:44 UTC (rev 866)
+++ showeq/trunk/src/guildshell.cpp 2016-11-26 20:29:30 UTC (rev 867)
@@ -31,14 +31,14 @@
// GuildMember implementation
GuildMember::GuildMember(NetStream& netStream)
{
- // Null-terminated name
- m_name = netStream.readText();
+ // name
+ m_name = netStream.readLPText ();
// 4 byte level
- m_level = uint8_t(netStream.readUInt32());
+ m_level = uint8_t(netStream.readUInt32NC());
// 4 byte banker flag (0 = no, 1 = banker, 2 = alt, 3 = alt banker)
- m_banker = uint8_t(netStream.readUInt32());
+ m_banker = uint8_t(netStream.readUInt32NC());
if (m_banker > 1)
{
m_alt = 1;
@@ -50,38 +50,38 @@
m_banker = m_banker % 2;
// 4 byte class
- m_class = uint8_t(netStream.readUInt32());
+ m_class = uint8_t(netStream.readUInt32NC());
// 4 byte rank (0 = member, 1 = officer, 2 = leader)
- m_guildRank = netStream.readUInt32();
+ m_guildRank = netStream.readUInt32NC();
// 4 byte date/time for last on
- m_lastOn = time_t(netStream.readUInt32());
+ m_lastOn = time_t(netStream.readUInt32NC());
- // 4 byte guild tribute on/off (0 = off, 1 = on)
- m_guildTributeOn = netStream.readUInt32();
+ // 1 byte guild tribute on/off (0 = off, 1 = on)
+ m_guildTributeOn = netStream.readUInt8();
- // 4 byte guild trophy on/off (0 = off, 1 = on) Added 4/29/14
- m_guildTrophyOn = netStream.readUInt32();
+ // 1 byte guild trophy on/off (0 = off, 1 = on) Added 4/29/14
+ m_guildTrophyOn = netStream.readUInt8();
// 4 byte guild tribute total donated
- m_guildTributeDonated = netStream.readUInt32();
+ m_guildTributeDonated = netStream.readUInt32NC();
// 4 byte guild tribute last donation timestamp
- m_guildTributeLastDonation = time_t(netStream.readUInt32());
+ m_guildTributeLastDonation = time_t(netStream.readUInt32NC());
- // 4 byte prospective member? flag (0=prospective, 1=full member) ??
- m_fullmember = netStream.readUInt32();
+ // 1 byte prospective member? flag (0=prospective, 1=full member) ??
+ m_fullmember = netStream.readUInt8();
- // Null-terminated public note
- m_publicNote = netStream.readText();
+ // public note
+ m_publicNote = netStream.readLPText();
// 2 byte zoneInstance and zoneId for current zone
- m_zoneInstance = netStream.readUInt16();
- m_zoneId = netStream.readUInt16();
+ m_zoneInstance = 0;
+ m_zoneId = 0;
// Unknown
- netStream.skipBytes(8);
+ netStream.skipBytes(6);
}
GuildMember::~GuildMember()
@@ -244,13 +244,16 @@
NetStream gml(data, len);
// read the player name from the front of the stream
- QString player = gml.readText();
+ QString player = gml.readLPText ();
+
gml.skipBytes(4); // added 1/12/2013
+ gml.skipBytes(4); // added 11/16/2016
+ gml.skipBytes(1);
// read the player count from the stream
uint32_t count;
- count = gml.readUInt32();
+ count = gml.readUInt32NC();
#ifdef GUILDSHELL_DIAG
seqDebug("Guild has %d members:", count);
Modified: showeq/trunk/src/netstream.cpp
===================================================================
--- showeq/trunk/src/netstream.cpp 2016-11-18 00:38:44 UTC (rev 866)
+++ showeq/trunk/src/netstream.cpp 2016-11-26 20:29:30 UTC (rev 867)
@@ -157,6 +157,22 @@
return QString();
}
+QString NetStream::readLPText()
+{
+ uint32_t i;
+ uint32_t len = readUInt32NC ();
+ QString r = "";
+ for (i = 0; i < len; i++) {
+ if (m_pos < m_lastPos) {
+ r.append (*m_pos);
+ m_pos++;
+ }
+ else
+ break;
+ }
+ return (r);
+}
+
uint16_t NetStream::readUInt16NC()
{
uint16_t val;
Modified: showeq/trunk/src/netstream.h
===================================================================
--- showeq/trunk/src/netstream.h 2016-11-18 00:38:44 UTC (rev 866)
+++ showeq/trunk/src/netstream.h 2016-11-26 20:29:30 UTC (rev 867)
@@ -32,7 +32,8 @@
int16_t readInt16();
uint32_t readUInt32();
int32_t readInt32();
- QString readText();
+ QString readText(); // read null-terminated string
+ QString readLPText(); // read length-prefixed string
uint16_t readUInt16NC();
uint32_t readUInt32NC();
void skipBytes(size_t byteCount);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|