|
From: <the...@us...> - 2016-07-10 00:04:18
|
Revision: 854
http://sourceforge.net/p/seq/svn/854
Author: theblueadept
Date: 2016-07-10 00:04:15 +0000 (Sun, 10 Jul 2016)
Log Message:
-----------
Historical checkin for 07/09/16
- Updated Opcodes
- Updated position structs
Version to 5.13.10.38
Modified Paths:
--------------
showeq/trunk/ChangeLog
showeq/trunk/conf/zoneopcodes.xml
showeq/trunk/configure.in
showeq/trunk/src/eqstr.cpp
showeq/trunk/src/everquest.h
showeq/trunk/src/messageshell.cpp
Modified: showeq/trunk/ChangeLog
===================================================================
--- showeq/trunk/ChangeLog 2015-11-21 03:20:17 UTC (rev 853)
+++ showeq/trunk/ChangeLog 2016-07-10 00:04:15 UTC (rev 854)
@@ -1,3 +1,10 @@
+BlueAdept (07/09/16)
+--------------------
+- Updated version to 5.13.10.38
+- Support EQ patch 07/06/16
+- Updated position structs (Newby)
+- Updated Opcodes (Newby)
+
Newby (11/18/15)
-----------------
- Updated version to 5.13.10.37
Modified: showeq/trunk/conf/zoneopcodes.xml
===================================================================
--- showeq/trunk/conf/zoneopcodes.xml 2015-11-21 03:20:17 UTC (rev 853)
+++ showeq/trunk/conf/zoneopcodes.xml 2016-07-10 00:04:15 UTC (rev 854)
@@ -3,37 +3,37 @@
<seqopcodes>
<!-- Critical opcodes used directly by ShowEQ -->
- <opcode id="4806" name="OP_PlayerProfile" updated="11/20/15">
+ <opcode id="4512" name="OP_PlayerProfile" updated="07/06/16">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="3a21" name="OP_ZoneEntry" updated="11/20/15">
+ <opcode id="3392" name="OP_ZoneEntry" updated="07/06/16">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="48c5" name="OP_TimeOfDay" updated="11/20/15">
+ <opcode id="6523" name="OP_TimeOfDay" updated="07/06/16">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="2241" name="OP_NewZone" updated="11/20/15">
+ <opcode id="7302" name="OP_NewZone" updated="07/06/16">
<comment>NewZoneCode</comment>
<payload dir="server" typename="newZoneStruct" sizechecktype="match"/>
</opcode>
- <opcode id="7679" name="OP_SpawnDoor" updated="11/20/15">
+ <opcode id="537a" name="OP_SpawnDoor" updated="07/06/16">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="7a41" name="OP_GroundSpawn" updated="11/20/15">
+ <opcode id="1806" name="OP_GroundSpawn" updated="07/06/16">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="4049" name="OP_SendZonePoints" updated="11/20/15">
+ <opcode id="2acf" name="OP_SendZonePoints" updated="07/06/16">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
- <opcode id="6c66" name="OP_AAExpUpdate" updated="11/20/15">
+ <opcode id="5592" name="OP_AAExpUpdate" updated="07/06/16">
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
@@ -41,40 +41,40 @@
<comment>ExpUpdateCode 2155 as of 11/20/15 - when set to the proper value you may experience random segfaults</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="3c6b" name="OP_GuildMOTD" updated="11/20/15">
+ <opcode id="06b7" name="OP_GuildMOTD" updated="07/06/16">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
- <opcode id="0d61" name="OP_ClientUpdate" updated="11/20/15">
+ <opcode id="164e" name="OP_ClientUpdate" updated="07/06/16">
<comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4293" name="OP_NpcMoveUpdate" updated="11/20/15">
+ <opcode id="52af" name="OP_NpcMoveUpdate" updated="07/06/16">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="71e6" name="OP_MobUpdate" updated="11/20/15">
+ <opcode id="733e" name="OP_MobUpdate" updated="07/06/16">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="3744" name="OP_DeleteSpawn" updated="11/20/15">
+ <opcode id="4d41" name="OP_DeleteSpawn" updated="07/06/16">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4f23" name="OP_RemoveSpawn" updated="11/20/15">
+ <opcode id="34b5" name="OP_RemoveSpawn" updated="07/06/16">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
- <opcode id="2f68" name="OP_Death" updated="11/20/15">
+ <opcode id="77fd" name="OP_Death" updated="07/06/16">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5437" name="OP_WearChange" updated="11/20/15">
+ <opcode id="6e30" name="OP_WearChange" updated="07/06/16">
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="194d" name="OP_SpawnAppearance" updated="11/20/15">
+ <opcode id="6e4e" name="OP_SpawnAppearance" updated="07/06/16">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
@@ -86,28 +86,28 @@
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5d40" name="OP_GuildMemberUpdate" updated="11/20/15">
+ <opcode id="79fb" name="OP_GuildMemberUpdate" updated="07/06/16">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="5094" name="OP_ClickObject" updated="11/20/15">
+ <opcode id="1b7d" name="OP_ClickObject" updated="07/06/16">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
- <opcode id="198a" name="OP_Action" updated="11/20/15">
+ <opcode id="45d8" name="OP_Action" updated="07/06/16">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5869" name="OP_Action2" updated="11/20/15">
+ <opcode id="0122" name="OP_Action2" updated="07/06/16">
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
- <opcode id="4d25" name="OP_Consider" updated="11/20/15">
+ <opcode id="4f35" name="OP_Consider" updated="07/06/16">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="3342" name="OP_TargetMouse" updated="11/20/15">
+ <opcode id="2677" name="OP_TargetMouse" updated="07/06/16">
<comment>Targeting a person - old ClientTargetCode</comment>
<payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
</opcode>
@@ -123,7 +123,7 @@
<comment>Server putting players into shroud form</comment>
<payload dir="server" typename="spawnShroudSelf" sizechecktype="none"/>
</opcode>
- <opcode id="2e8a" name="OP_ZoneChange" updated="11/20/15">
+ <opcode id="79cd" name="OP_ZoneChange" updated="07/06/16">
<comment>old ZoneChangeCode</comment>
<payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
</opcode>
@@ -195,19 +195,19 @@
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
- <opcode id="34e7" name="OP_SimpleMessage" updated="11/20/15">
+ <opcode id="62bb" name="OP_SimpleMessage" updated="07/06/16">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4e43" name="OP_FormattedMessage" updated="11/20/15">
+ <opcode id="7b62" name="OP_FormattedMessage" updated="07/06/16">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="5092" name="OP_CommonMessage" updated="11/20/15">
+ <opcode id="6305" name="OP_CommonMessage" updated="07/06/16">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="16b2" name="OP_SpecialMesg" updated="11/20/15">
+ <opcode id="1a4e" name="OP_SpecialMesg" updated="07/06/16">
<comment>Communicate textual info to client including hail responses etc</comment>
<payload dir="server" typename="specialMessageStruct" sizechecktype="none"/>
</opcode>
@@ -307,7 +307,7 @@
<comment>List of group members - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="3f18" name="OP_GuildMemberList" updated="11/20/15">
+ <opcode id="4454" name="OP_GuildMemberList" updated="07/06/16">
<comment>List of guild members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -367,7 +367,7 @@
<comment>Fellowship information - 2564 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="1fc2" name="OP_ExpandedGuildInfo" updated="11/20/15">
+ <opcode id="111a" name="OP_ExpandedGuildInfo" updated="07/06/16">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
@@ -587,7 +587,7 @@
<comment>Free to play nags and other data - Variable length</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
- <opcode id="068b" name="OP_Find" updated="11/20/15">
+ <opcode id="7fe4" name="OP_Find" updated="07/06/16">
<comment>Find window data - 112 bytes</comment>
<payload dir="server" typename="unknown" sizechecktype="none"/>
</opcode>
Modified: showeq/trunk/configure.in
===================================================================
--- showeq/trunk/configure.in 2015-11-21 03:20:17 UTC (rev 853)
+++ showeq/trunk/configure.in 2016-07-10 00:04:15 UTC (rev 854)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 5.13.10.37)
+AC_INIT(showeq, 5.13.10.38)
AC_CONFIG_SRCDIR(src/main.cpp)
AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_SYSTEM
Modified: showeq/trunk/src/eqstr.cpp
===================================================================
--- showeq/trunk/src/eqstr.cpp 2015-11-21 03:20:17 UTC (rev 853)
+++ showeq/trunk/src/eqstr.cpp 2016-07-10 00:04:15 UTC (rev 854)
@@ -134,100 +134,100 @@
QString tempStr;
- if (formatStringRes == NULL)
- {
- tempStr.sprintf( "Unknown: %04x: ",
- formatid);
- tempStr += QString::fromUtf8(arguments);
-
- size_t totalArgsLen = strlen(arguments) + 1;
-
- const char* curMsg;
- while (totalArgsLen < argsLen)
+ if (formatStringRes == NULL)
{
- curMsg = arguments + totalArgsLen;
- tempStr += QString(", ") + QString::fromUtf8(curMsg);
- totalArgsLen += strlen(curMsg) + 1;
+ uint32_t arg_len;
+ unsigned char *cp;
+ tempStr.sprintf( "Unknown: %04x:", formatid);
+ cp = (unsigned char *) arguments;
+ while (cp < ((unsigned char *) &arguments[argsLen])) {
+ arg_len = (cp[0] << 0) | (cp[1] << 8) | (cp[2] << 16) | (cp[3] << 24);
+ cp += 4;
+ if (arg_len == 0)
+ break;
+ tempStr += " ";
+ tempStr += QString::fromUtf8((const char *) cp, arg_len);
+ cp += arg_len;
+ }
+ return tempStr;
}
- }
- else
- {
- QValueVector<QString> argList;
- argList.reserve(5); // reserve space for 5 elements to handle most common sizes
-
- //
- size_t totalArgsLen = 0;
- const char* curArg;
- while (totalArgsLen < argsLen)
+ else
{
- curArg = arguments + totalArgsLen;
- // insert argument into the argument list
- argList.push_back(QString::fromUtf8(curArg));
- totalArgsLen += strlen(curArg) + 1;
- }
+ QValueVector<QString> argList;
+ argList.reserve(5); // reserve space for 5 elements to handle most common sizes
- bool ok;
- int curPos;
- size_t substArg;
- int substArgValue;
- QString* substFormatStringRes;
- QString substFormatString;
+ //
+ size_t totalArgsLen = 0;
+ const char* curArg;
+ while (totalArgsLen < argsLen)
+ {
+ curArg = arguments + totalArgsLen;
+ // insert argument into the argument list
+ argList.push_back(QString::fromUtf8(curArg));
+ totalArgsLen += strlen(curArg) + 1;
+ }
- ////////////////////////////
- // replace template (%T) arguments in formatted string
- QString formatString = *formatStringRes;
- QRegExp rxt("%T(\\d{1,3})", true, false);
+ bool ok;
+ int curPos;
+ size_t substArg;
+ int substArgValue;
+ QString* substFormatStringRes;
+ QString substFormatString;
- // find first template substitution
- curPos = rxt.search(formatString, 0);
+ ////////////////////////////
+ // replace template (%T) arguments in formatted string
+ QString formatString = *formatStringRes;
+ QRegExp rxt("%T(\\d{1,3})", true, false);
- while (curPos != -1)
- {
- substFormatStringRes = NULL;
- substArg = rxt.cap(1).toInt(&ok);
- if (ok && (substArg <= argList.size()))
- {
- substArgValue = argList[substArg-1].toInt(&ok);
+ // find first template substitution
+ curPos = rxt.search(formatString, 0);
- if (ok)
- substFormatStringRes = m_messageStrings.find(substArgValue);
- }
-
- // replace template argument with subst string
- if (substFormatStringRes != NULL)
- formatString.replace(curPos, rxt.matchedLength(), *substFormatStringRes);
- else
- curPos += rxt.matchedLength(); // if no replacement string, skip over
-
- // find next substitution
- curPos = rxt.search(formatString, curPos);
- }
+ while (curPos != -1)
+ {
+ substFormatStringRes = NULL;
+ substArg = rxt.cap(1).toInt(&ok);
+ if (ok && (substArg <= argList.size()))
+ {
+ substArgValue = argList[substArg-1].toInt(&ok);
- ////////////////////////////
- // now replace substitution arguments in formatted string
- // NOTE: not using QString::arg() because not all arguments are always used
- // and it will do screwy stuff in this situation
- QRegExp rx("%(\\d{1,3})", true, false);
+ if (ok)
+ substFormatStringRes = m_messageStrings.find(substArgValue);
+ }
- // find first template substitution
- curPos = rx.search(formatString, 0);
+ // replace template argument with subst string
+ if (substFormatStringRes != NULL)
+ formatString.replace(curPos, rxt.matchedLength(), *substFormatStringRes);
+ else
+ curPos += rxt.matchedLength(); // if no replacement string, skip over
- while (curPos != -1)
- {
- substArg = rx.cap(1).toInt(&ok);
+ // find next substitution
+ curPos = rxt.search(formatString, curPos);
+ }
- // replace substitution argument with argument from list
- if (ok && (substArg <= argList.size()))
- formatString.replace(curPos, rx.matchedLength(), argList[substArg-1]);
- else
- curPos += rx.matchedLength(); // if no such argument, skip over
+ ////////////////////////////
+ // now replace substitution arguments in formatted string
+ // NOTE: not using QString::arg() because not all arguments are always used
+ // and it will do screwy stuff in this situation
+ QRegExp rx("%(\\d{1,3})", true, false);
- // find next substitution
- curPos = rx.search(formatString, curPos);
+ // find first template substitution
+ curPos = rx.search(formatString, 0);
+
+ while (curPos != -1)
+ {
+ substArg = rx.cap(1).toInt(&ok);
+
+ // replace substitution argument with argument from list
+ if (ok && (substArg <= argList.size()))
+ formatString.replace(curPos, rx.matchedLength(), argList[substArg-1]);
+ else
+ curPos += rx.matchedLength(); // if no such argument, skip over
+
+ // find next substitution
+ curPos = rx.search(formatString, curPos);
+ }
+
+ return formatString;
}
- return formatString;
- }
-
- return tempStr;
}
Modified: showeq/trunk/src/everquest.h
===================================================================
--- showeq/trunk/src/everquest.h 2015-11-21 03:20:17 UTC (rev 853)
+++ showeq/trunk/src/everquest.h 2016-07-10 00:04:15 UTC (rev 854)
@@ -576,7 +576,7 @@
/*
** New Zone Code
-** Length: 956 Octets
+** Length: 928 Octets
** OpCode: NewZoneCode
*/
struct newZoneStruct
@@ -589,39 +589,40 @@
/*0471*/ uint8_t fog_red[4]; // Zone fog (red)
/*0475*/ uint8_t fog_green[4]; // Zone fog (green)
/*0479*/ uint8_t fog_blue[4]; // Zone fog (blue)
-/*0483*/ uint8_t unknown0483[87]; // *** Placeholder
-/*0570*/ uint8_t sky; // Zone sky
-/*0571*/ uint8_t unknown0571[13]; // *** Placeholder
-/*0584*/ float zone_exp_multiplier; // Experience Multiplier
-/*0588*/ float safe_y; // Zone Safe Y
-/*0592*/ float safe_x; // Zone Safe X
-/*0596*/ float safe_z; // Zone Safe Z
-/*0600*/ float unknown0600; // *** Placeholder
-/*0604*/ float unknown0604; // *** Placeholder
-/*0608*/ float underworld; // Underworld
-/*0612*/ float minclip; // Minimum view distance
-/*0616*/ float maxclip; // Maximum view distance
-/*0620*/ uint8_t unknown0616[84]; // *** Placeholder
-/*0704*/ char zonefile[64]; // Zone file name?
-/*0768*/ uint8_t unknown0764[36]; // *** Placeholder (12/05/2006)
-/*0804*/ uint8_t unknown0800[32]; // *** Placeholder (02/13/2007)
-/*0836*/ uint8_t unknown0832[12]; // *** Placeholder
-/*0848*/ uint8_t unknown0844[4]; // *** Placeholder (06/29/2005)
-/*0852*/ uint8_t unknown0848[4]; // *** Placeholder (09/13/2005)
-/*0856*/ uint8_t unknown0852[4]; // *** Placeholder (02/21/2006)
-/*0860*/ uint8_t unknown0856[36]; // *** Placeholder (06/13/2006)
-/*0896*/ uint8_t unknown0892[12]; // *** Placeholder (12/05/2006)
-/*0908*/ uint8_t unknown0904[8]; // *** Placeholder (02/13/2007)
-/*0916*/ uint8_t unknown0916[4]; // *** Placeholder (11/24/2007)
-/*0920*/ uint8_t unknown0920[4]; // *** Placeholder (01/17/2008)
-/*0924*/ uint8_t unknown0924[4]; // *** Placeholder (09/03/2008)
-/*0928*/ uint8_t unknown0928[4]; // *** Placeholder (10/07/2008)
-/*0932*/ uint8_t unknown0932[8]; // *** Placeholder (11/04/2009)
-/*0940*/ uint8_t unknown0940[4]; // *** Placeholder (12/15/2009)
-/*0944*/ uint8_t unknown0944[4]; // *** Placeholder (11/15/2011)
-/*0948*/ uint8_t unknown0948[4]; // *** Placeholder (04/29/2014)
-/*0952*/ uint8_t unknown0952[4]; // *** Placeholder (10/28/2014)
-/*0956*/
+/*0483*/ uint8_t unknown0483[55]; // *** Placeholder
+/*0538*/ uint8_t sky; // Zone sky
+/*0539*/ uint8_t unknown0571[13]; // *** Placeholder
+/*0551*/ float zone_exp_multiplier; // Experience Multiplier
+/*0556*/ float safe_y; // Zone Safe Y
+/*0560*/ float safe_x; // Zone Safe X
+/*0564*/ float safe_z; // Zone Safe Z
+/*0568*/ float unknown0600; // *** Placeholder
+/*0572*/ float unknown0604; // *** Placeholder
+/*0576*/ float underworld; // Underworld
+/*0580*/ float minclip; // Minimum view distance
+/*0584*/ float maxclip; // Maximum view distance
+/*0588*/ uint8_t unknown0616[84]; // *** Placeholder
+/*0672*/ char zonefile[64]; // Zone file name?
+/*0736*/ uint8_t unknown0764[36]; // *** Placeholder (12/05/2006)
+/*0772*/ uint8_t unknown0800[32]; // *** Placeholder (02/13/2007)
+/*0804*/ uint8_t unknown0832[12]; // *** Placeholder
+/*0816*/ uint8_t unknown0844[4]; // *** Placeholder (06/29/2005)
+/*0820*/ uint8_t unknown0848[4]; // *** Placeholder (09/13/2005)
+/*0824*/ uint8_t unknown0852[4]; // *** Placeholder (02/21/2006)
+/*0828*/ uint8_t unknown0856[36]; // *** Placeholder (06/13/2006)
+/*0864*/ uint8_t unknown0892[12]; // *** Placeholder (12/05/2006)
+/*0876*/ uint8_t unknown0904[8]; // *** Placeholder (02/13/2007)
+/*0884*/ uint8_t unknown0916[4]; // *** Placeholder (11/24/2007)
+/*0888*/ uint8_t unknown0920[4]; // *** Placeholder (01/17/2008)
+/*0892*/ uint8_t unknown0924[4]; // *** Placeholder (09/03/2008)
+/*0896*/ uint8_t unknown0928[4]; // *** Placeholder (10/07/2008)
+/*0900*/ uint8_t unknown0932[8]; // *** Placeholder (11/04/2009)
+/*0908*/ uint8_t unknown0940[4]; // *** Placeholder (12/15/2009)
+/*0912*/ uint8_t unknown0944[4]; // *** Placeholder (11/15/2011)
+/*0916*/ uint8_t unknown0948[4]; // *** Placeholder (04/29/2014)
+/*0920*/ uint8_t unknown0952[4]; // *** Placeholder (10/28/2014)
+/*0924*/ uint8_t unknown0956[4]; // *** Placeholder (03/16/2016)
+/*0928*/
};
/*
@@ -1097,21 +1098,20 @@
signed y:19; // y coord (2nd loc value)
unsigned padding00:1;
- signed x:19; // x coord (1st loc value)
signed deltaX:13; // change in x
-
signed deltaHeading:10; // change in heading
- signed z:19; // z coord (3rd loc value)
- unsigned padding01:3;
+ unsigned padding01:9;
+ signed animation:10; // velocity
unsigned heading:12; // heading
- signed animation:10; // velocity
unsigned padding02:10;
- signed deltaY:13; // change in y
+ signed x:19; // x coord (1st loc value)
signed deltaZ:13; // change in z
- unsigned padding03:6;
+ signed z:19; // z coord (3rd loc value)
+ signed deltaY:13; // change in y
+
};
int32_t posData[5];
};
@@ -1659,11 +1659,12 @@
struct formattedMessageStruct
{
-/*0000*/ uint8_t unknown0002[4]; // ***Placeholder
-/*0004*/ uint32_t messageFormat; // Indicates the message format
-/*0008*/ ChatColor messageColor; // Message color
-/*0012*/ char messages[0]; // messages(NULL delimited)
-/*0???*/ uint8_t unknownXXXX[8]; // ***Placeholder
+/*0000*/ uint8_t unknown0000;
+/*0001*/ uint8_t unknown0002[4]; // ***Placeholder
+/*0005*/ uint32_t messageFormat; // Indicates the message format
+/*0009*/ ChatColor messageColor; // Message color
+/*0013*/ char messages[0]; // no longer null terminated
+ // repeat (4-bytes len, string of len)
};
/*
@@ -2365,26 +2366,25 @@
signed y:19; // y coord (2nd loc value)
unsigned padding00:1;
/*0008*/
- signed x:19; // x coord (1st loc value)
signed deltaX:13; // change in x
+ signed deltaHeading:10; // change in heading
+ unsigned padding01:9;
/*0012*/
- signed deltaHeading:10; // change in heading
- signed z:19; // z coord (3rd loc value)
- unsigned padding01:3;
-/*0016*/
+ signed animation:10; // velocity
unsigned heading:12; // heading
- signed animation:10; // velocity
unsigned padding02:10;
+/*0016*/
+ signed x:19; // x coord (1st loc value)
+ signed deltaZ:13; // change in z
/*0020*/
+ signed z:19; // z coord (3rd loc value)
signed deltaY:13; // change in y
- signed deltaZ:13; // change in z
- unsigned padding03:6;
/*0024*/
};
/*
** Self Position Update
-** Length: 46 Octets
+** Length: 38 Octets
** OpCode: PlayerPosCode
*/
@@ -2394,28 +2394,26 @@
/*0002*/ uint16_t spawnId; // Player's spawn id
/*0004*/ uint16_t unknown0001; // ***Placeholder
/*0006*/
+ signed deltaHeading:10; // change in heading
unsigned pitch:12; // pitch (up/down heading)
- unsigned padding01:20;
+ unsigned padding00:10;
/*0010*/
float deltaX; // Change in x
/*0014*/
- float deltaZ; // Change in z
+ float x; // x coord (1st loc value)
/*0018*/
- float x; // x coord (1st loc value)
+ float deltaY; // Change in y
/*0022*/
float y; // y coord (2nd loc value)
/*0026*/
- signed animation:10; // velocity
- unsigned padding02:22;
+ float z; // z coord (3rd loc value)
/*0030*/
- float z; // z coord (3rd loc value)
+ float deltaZ; // Change in z
/*0034*/
- float deltaY; // Change in y
+ unsigned heading:12; // Heading
+ signed animation:10; // velocity
+ unsigned padding07:10;
/*0038*/
- signed deltaHeading:10; // change in heading
- unsigned heading:12; // Heading
- unsigned padding03:10;
-/*0042*/
};
/*
Modified: showeq/trunk/src/messageshell.cpp
===================================================================
--- showeq/trunk/src/messageshell.cpp 2015-11-21 03:20:17 UTC (rev 853)
+++ showeq/trunk/src/messageshell.cpp 2016-07-10 00:04:15 UTC (rev 854)
@@ -205,12 +205,7 @@
const formattedMessageStruct* fmsg = (const formattedMessageStruct*)data;
QString tempStr;
-
- size_t messagesLen =
- len
- - ((uint8_t*)&fmsg->messages[0] - (uint8_t*)fmsg)
- - sizeof(fmsg->unknownXXXX);
-
+ size_t messagesLen = len - ((uint8_t*)&fmsg->messages[0] - (uint8_t*)fmsg);
m_messages->addMessage(chatColor2MessageType(fmsg->messageColor),
m_eqStrings->formatMessage(fmsg->messageFormat,
fmsg->messages,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|