You can subscribe to this list here.
| 2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(18) |
Oct
(11) |
Nov
(9) |
Dec
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2005 |
Jan
|
Feb
(6) |
Mar
|
Apr
(10) |
May
(38) |
Jun
(15) |
Jul
(32) |
Aug
|
Sep
(17) |
Oct
(11) |
Nov
|
Dec
(14) |
| 2006 |
Jan
(2) |
Feb
(5) |
Mar
(3) |
Apr
(2) |
May
(3) |
Jun
(7) |
Jul
|
Aug
|
Sep
(3) |
Oct
(2) |
Nov
(6) |
Dec
(3) |
| 2007 |
Jan
|
Feb
(17) |
Mar
(5) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2008 |
Jan
(11) |
Feb
|
Mar
|
Apr
(4) |
May
|
Jun
(6) |
Jul
|
Aug
|
Sep
(6) |
Oct
(4) |
Nov
(1) |
Dec
|
| 2009 |
Jan
(3) |
Feb
(2) |
Mar
(4) |
Apr
|
May
(4) |
Jun
(3) |
Jul
|
Aug
(5) |
Sep
(3) |
Oct
(2) |
Nov
|
Dec
(6) |
| 2010 |
Jan
|
Feb
(6) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
(8) |
Aug
|
Sep
(2) |
Oct
(2) |
Nov
(4) |
Dec
(5) |
| 2013 |
Jan
(2) |
Feb
|
Mar
(2) |
Apr
(2) |
May
(1) |
Jun
(2) |
Jul
(2) |
Aug
(2) |
Sep
|
Oct
(2) |
Nov
(2) |
Dec
(2) |
| 2014 |
Jan
(3) |
Feb
(2) |
Mar
(3) |
Apr
(4) |
May
(4) |
Jun
(3) |
Jul
(4) |
Aug
(5) |
Sep
|
Oct
(2) |
Nov
(5) |
Dec
(2) |
| 2015 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
(2) |
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
(10) |
Dec
|
| 2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(4) |
Aug
(2) |
Sep
(2) |
Oct
(3) |
Nov
(4) |
Dec
(2) |
| 2017 |
Jan
(2) |
Feb
|
Mar
(2) |
Apr
(4) |
May
(2) |
Jun
(2) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(2) |
| 2018 |
Jan
(4) |
Feb
(2) |
Mar
(2) |
Apr
(2) |
May
(2) |
Jun
(2) |
Jul
(8) |
Aug
(2) |
Sep
(2) |
Oct
(2) |
Nov
(4) |
Dec
(6) |
| 2019 |
Jan
(2) |
Feb
(2) |
Mar
(2) |
Apr
(4) |
May
(2) |
Jun
(3) |
Jul
(3) |
Aug
(2) |
Sep
(2) |
Oct
(13) |
Nov
(6) |
Dec
(4) |
| 2020 |
Jan
(7) |
Feb
(7) |
Mar
(7) |
Apr
(8) |
May
(5) |
Jun
(3) |
Jul
(10) |
Aug
(4) |
Sep
|
Oct
(37) |
Nov
(30) |
Dec
(8) |
| 2021 |
Jan
(14) |
Feb
(9) |
Mar
(7) |
Apr
(17) |
May
(3) |
Jun
(10) |
Jul
(7) |
Aug
(3) |
Sep
(3) |
Oct
(4) |
Nov
(15) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(3) |
Mar
(3) |
Apr
(3) |
May
(3) |
Jun
(3) |
Jul
(3) |
Aug
(5) |
Sep
(6) |
Oct
(4) |
Nov
(34) |
Dec
(17) |
| 2023 |
Jan
(3) |
Feb
(3) |
Mar
(29) |
Apr
(2) |
May
(18) |
Jun
(12) |
Jul
(12) |
Aug
(2) |
Sep
(7) |
Oct
(2) |
Nov
(2) |
Dec
(2) |
| 2024 |
Jan
(2) |
Feb
(10) |
Mar
(17) |
Apr
(6) |
May
(3) |
Jun
(9) |
Jul
(22) |
Aug
(48) |
Sep
(3) |
Oct
(2) |
Nov
(2) |
Dec
(8) |
| 2025 |
Jan
(3) |
Feb
(2) |
Mar
(9) |
Apr
(7) |
May
(3) |
Jun
(3) |
Jul
(2) |
Aug
(2) |
Sep
(11) |
Oct
(6) |
Nov
(9) |
Dec
(4) |
| 2026 |
Jan
(5) |
Feb
(6) |
Mar
(3) |
Apr
(7) |
May
(2) |
Jun
(11) |
Jul
(21) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <the...@us...> - 2024-11-21 00:36:44
|
Revision: 1555
http://sourceforge.net/p/seq/svn/1555
Author: theblueadept
Date: 2024-11-21 00:36:25 +0000 (Thu, 21 Nov 2024)
Log Message:
-----------
Historical checkin for 11/20/24
- Struct and opcode updates (Newby)
Version to 6.4.3
Modified Paths:
--------------
showeq/trunk/ChangeLog
showeq/trunk/conf/zoneopcodes.xml
showeq/trunk/configure.in
showeq/trunk/src/everquest.h
showeq/trunk/src/zonemgr.cpp
Modified: showeq/trunk/ChangeLog
===================================================================
--- showeq/trunk/ChangeLog 2024-10-17 02:40:04 UTC (rev 1554)
+++ showeq/trunk/ChangeLog 2024-11-21 00:36:25 UTC (rev 1555)
@@ -1,3 +1,9 @@
+BlueAdept (11/20/24)
+----------------
+- Update to version 6.4.3
+- Support for EQ Patch 11/20/24
+- Struct and opcode updates (Newby)
+
BlueAdept (10/16/24)
----------------
- Update to version 6.4.2
Modified: showeq/trunk/conf/zoneopcodes.xml
===================================================================
--- showeq/trunk/conf/zoneopcodes.xml 2024-10-17 02:40:04 UTC (rev 1554)
+++ showeq/trunk/conf/zoneopcodes.xml 2024-11-21 00:36:25 UTC (rev 1555)
@@ -3,37 +3,37 @@
<seqopcodes>
<!-- Critical opcodes used directly by ShowEQ -->
- <opcode id="030c" name="OP_PlayerProfile" updated="10/16/24">
+ <opcode id="1a1b" name="OP_PlayerProfile" updated="11/20/24">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="2373" name="OP_ZoneEntry" updated="10/16/24">
+ <opcode id="46bd" name="OP_ZoneEntry" updated="11/20/24">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="0b62" name="OP_TimeOfDay" updated="10/16/24">
+ <opcode id="1f62" name="OP_TimeOfDay" updated="11/20/24">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5fb5" name="OP_NewZone" updated="10/16/24">
+ <opcode id="2a5b" name="OP_NewZone" updated="11/20/24">
<comment>NewZoneCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="621a" name="OP_SpawnDoor" updated="10/16/24">
+ <opcode id="6013" name="OP_SpawnDoor" updated="11/20/24">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="02ba" name="OP_GroundSpawn" updated="10/16/24">
+ <opcode id="53d0" name="OP_GroundSpawn" updated="11/20/24">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="25e5" name="OP_SendZonePoints" updated="10/16/24">
+ <opcode id="6042" name="OP_SendZonePoints" updated="11/20/24">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
- <opcode id="13cf" name="OP_AAExpUpdate" updated="10/16/24">
+ <opcode id="749a" name="OP_AAExpUpdate" updated="11/20/24">
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
@@ -41,32 +41,32 @@
<comment>ExpUpdateCode</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4578" name="OP_GuildMOTD" updated="10/16/24">
+ <opcode id="3f16" name="OP_GuildMOTD" updated="11/20/24">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
- <opcode id="664e" name="OP_ClientUpdate" updated="10/16/24">
+ <opcode id="293e" name="OP_ClientUpdate" updated="11/20/24">
<comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4ae5" name="OP_NpcMoveUpdate" updated="10/16/24">
+ <opcode id="6b11" name="OP_NpcMoveUpdate" updated="11/20/24">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="4e9e" name="OP_MobUpdate" updated="10/16/24">
+ <opcode id="27c9" name="OP_MobUpdate" updated="11/20/24">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="177a" name="OP_DeleteSpawn" updated="10/16/24">
+ <opcode id="1a75" name="OP_DeleteSpawn" updated="11/20/24">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1284" name="OP_RemoveSpawn" updated="10/16/24">
+ <opcode id="1332" name="OP_RemoveSpawn" updated="11/20/24">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
- <opcode id="0f1a" name="OP_Death" updated="10/16/24">
+ <opcode id="3b92" name="OP_Death" updated="11/20/24">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
@@ -74,7 +74,7 @@
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="bd8b" name="OP_SpawnAppearance" updated="10/16/24">
+ <opcode id="297c" name="OP_SpawnAppearance" updated="11/20/24">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
@@ -86,15 +86,15 @@
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0a9e" name="OP_GuildMemberUpdate" updated="10/16/24">
+ <opcode id="33ae" name="OP_GuildMemberUpdate" updated="11/20/24">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="54f8" name="OP_ClickObject" updated="10/16/24">
+ <opcode id="1761" name="OP_ClickObject" updated="11/20/24">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4dc3" name="OP_Action" updated="10/16/24">
+ <opcode id="1d5b" name="OP_Action" updated="11/20/24">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
@@ -103,11 +103,11 @@
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
- <opcode id="2771" name="OP_Consider" updated="10/16/24">
+ <opcode id="596e" name="OP_Consider" updated="11/20/24">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0ca0" name="OP_TargetMouse" updated="10/16/24">
+ <opcode id="52ee" name="OP_TargetMouse" updated="11/20/24">
<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="2a38" name="OP_ZoneChange" updated="10/16/24">
+ <opcode id="3824" name="OP_ZoneChange" updated="11/20/24">
<comment>old ZoneChangeCode</comment>
<payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
</opcode>
@@ -191,19 +191,19 @@
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
- <opcode id="014f" name="OP_SimpleMessage" updated="10/16/24">
+ <opcode id="1b69" name="OP_SimpleMessage" updated="11/20/24">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
- <opcode id="339f" name="OP_FormattedMessage" updated="10/16/24">
+ <opcode id="123c" name="OP_FormattedMessage" updated="11/20/24">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="2151" name="OP_CommonMessage" updated="10/16/24">
+ <opcode id="3b50" name="OP_CommonMessage" updated="11/20/24">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="1685" name="OP_SpecialMesg" updated="10/16/24">
+ <opcode id="4b7b" name="OP_SpecialMesg" updated="11/20/24">
<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="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="0563" name="OP_GuildMemberList" updated="10/16/24">
+ <opcode id="7bc9" name="OP_GuildMemberList" updated="11/20/24">
<comment>List of guild members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -367,7 +367,7 @@
<comment>Fellowship information - 2576 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="2086" name="OP_ExpandedGuildInfo" updated="10/16/24">
+ <opcode id="783e" name="OP_ExpandedGuildInfo" updated="11/20/24">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -535,7 +535,7 @@
<comment>Listing of all guilds. Can be triggered by /lfg search?</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="03cd" name="OP_GuildsInZoneList" updated="10/16/24">
+ <opcode id="1de0" name="OP_GuildsInZoneList" updated="11/20/24">
<comment>Listing of guild names present in the current zone. Generally seen on zoning</comment>
<payload dir="server" typename="guildsInZoneListStruct" sizechecktype="none"/>
</opcode>
@@ -595,7 +595,7 @@
<comment>Free to play nags and other data - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="6334" name="OP_Find" updated="10/16/24">
+ <opcode id="3fa2" name="OP_Find" updated="11/20/24">
<comment>Find window data - 112 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
Modified: showeq/trunk/configure.in
===================================================================
--- showeq/trunk/configure.in 2024-10-17 02:40:04 UTC (rev 1554)
+++ showeq/trunk/configure.in 2024-11-21 00:36:25 UTC (rev 1555)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 6.4.2)
+AC_INIT(showeq, 6.4.3)
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 2024-10-17 02:40:04 UTC (rev 1554)
+++ showeq/trunk/src/everquest.h 2024-11-21 00:36:25 UTC (rev 1555)
@@ -1119,24 +1119,24 @@
struct
{
+ signed animation:10; // current animation
+ signed deltaHeading:10; // change in heading
+ unsigned padding00:12;
+
+ signed x:19; // x coord (1st loc value)
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding01:1;
+
+ signed y:19; // y coord (2nd loc value)
unsigned heading:12; // heading
- signed y:19; // y coord (2nd loc value)
- unsigned padding00:1;
+ unsigned padding02:1;
signed z:19; // z coord (3rd loc value)
signed deltaX:13; // change in x
- signed deltaHeading:10; // change in heading
signed deltaZ:13; // change in z
- unsigned padding02:9;
-
- signed x:19; // x coord (1st loc value)
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding03:1;
-
- signed animation:10; // current animation
signed deltaY:13; // change in y
- unsigned padding04:9;
+ unsigned padding04:6;
};
int32_t posData[5];
@@ -2397,30 +2397,30 @@
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
/*0004*/
+ signed animation:10; // current animation
+ signed deltaHeading:10; // change in heading
+ unsigned padding00:12;
+/*0008*/
+ signed x:19; // x coord (1st loc value)
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding01:1;
+/*0012*/
+ signed y:19; // y coord (2nd loc value)
unsigned heading:12; // heading
- signed y:19; // y coord (2nd loc value)
- unsigned padding00:1;
-/*0008*/
+ unsigned padding02:1;
+/*0016*/
signed z:19; // z coord (3rd loc value)
signed deltaX:13; // change in x
-/*0012*/
- signed deltaHeading:10; // change in heading
+/*0020*/
signed deltaZ:13; // change in z
- unsigned padding02:9;
-/*0016*/
- signed x:19; // x coord (1st loc value)
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding03:1;
-/*0020*/
- signed animation:10; // current animation
signed deltaY:13; // change in y
- unsigned padding04:9;
+ unsigned padding04:6;
/*0024*/
};
/*
** Self Position Update
-** Length: 46 Octets
+** Length: 42 Octets
** OpCode: PlayerPosCode
*/
struct playerSelfPosStruct
@@ -2429,30 +2429,28 @@
/*0002*/ uint16_t spawnId; // Player's spawn id
/*0004*/ uint16_t unknown0004; // ***Placeholder
/*0006*/
- float z; // z coord (3rd loc value)
+ float y; // y coord (2nd loc value)
/*0010*/
- float deltaX; // change in x
+ float deltaY; // change in y
/*0014*/
- signed animation:10; // current animation
- unsigned padding02:22;
+ float deltaZ; // change in z
/*0018*/
- float x; // x coord (1st loc value)
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding03:20;
/*0022*/
- float deltaY; // change in y
+ float deltaX; // change in x
/*0026*/
- unsigned heading:12; // heading
- unsigned padding05:20;
+ float z; // z coord (3rd loc value)
/*0030*/
- float deltaZ; // change in z
+ signed animation:10; // current animation
+ unsigned padding06:22;
/*0034*/
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding07:20;
+ float x; // x coord (1st loc value)
/*0038*/
- float y; // y coord (2nd loc value)
+ unsigned heading:12; // heading
+ signed deltaHeading:10; // change in heading
+ unsigned padding08:10;
/*0042*/
- signed deltaHeading:10; // change in heading
- unsigned padding09:22;
-/*0046*/
};
/*
Modified: showeq/trunk/src/zonemgr.cpp
===================================================================
--- showeq/trunk/src/zonemgr.cpp 2024-10-17 02:40:04 UTC (rev 1554)
+++ showeq/trunk/src/zonemgr.cpp 2024-11-21 00:36:25 UTC (rev 1555)
@@ -459,6 +459,9 @@
player->expansions = netStream.readUInt32NC();
+ // Unknown
+ netStream.skipBytes(4);
+
// MAX_KNOWN_LANGS (32 ints)
int langCount = netStream.readUInt32NC();
for (int i = 0; i < langCount; i++) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <the...@us...> - 2024-10-17 02:40:05
|
Revision: 1554
http://sourceforge.net/p/seq/svn/1554
Author: theblueadept
Date: 2024-10-17 02:40:04 +0000 (Thu, 17 Oct 2024)
Log Message:
-----------
Tag for release 6.4.2
Added Paths:
-----------
showeq/tags/v6_4_2/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <the...@us...> - 2024-10-17 02:38:14
|
Revision: 1553
http://sourceforge.net/p/seq/svn/1553
Author: theblueadept
Date: 2024-10-17 02:38:12 +0000 (Thu, 17 Oct 2024)
Log Message:
-----------
Historical checkin for 10/16/24
- Support for EQ Patch 10/16/24
- Struct and opcode updates (Newby)
Version to 6.4.2
Modified Paths:
--------------
showeq/trunk/ChangeLog
showeq/trunk/conf/zoneopcodes.xml
showeq/trunk/configure.in
showeq/trunk/src/everquest.h
Modified: showeq/trunk/ChangeLog
===================================================================
--- showeq/trunk/ChangeLog 2024-09-19 03:06:10 UTC (rev 1552)
+++ showeq/trunk/ChangeLog 2024-10-17 02:38:12 UTC (rev 1553)
@@ -1,3 +1,9 @@
+BlueAdept (10/16/24)
+----------------
+- Update to version 6.4.2
+- Support for EQ Patch 10/16/24
+- Struct and opcode updates (Newby)
+
cn187 (09/18/24)
----------------
- Update to version 6.4.1
Modified: showeq/trunk/conf/zoneopcodes.xml
===================================================================
--- showeq/trunk/conf/zoneopcodes.xml 2024-09-19 03:06:10 UTC (rev 1552)
+++ showeq/trunk/conf/zoneopcodes.xml 2024-10-17 02:38:12 UTC (rev 1553)
@@ -3,37 +3,37 @@
<seqopcodes>
<!-- Critical opcodes used directly by ShowEQ -->
- <opcode id="42dd" name="OP_PlayerProfile" updated="09/18/24">
+ <opcode id="030c" name="OP_PlayerProfile" updated="10/16/24">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="0e04" name="OP_ZoneEntry" updated="09/18/24">
+ <opcode id="2373" name="OP_ZoneEntry" updated="10/16/24">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="02c8" name="OP_TimeOfDay" updated="09/18/24">
+ <opcode id="0b62" name="OP_TimeOfDay" updated="10/16/24">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="2ec3" name="OP_NewZone" updated="09/18/24">
+ <opcode id="5fb5" name="OP_NewZone" updated="10/16/24">
<comment>NewZoneCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="2f85" name="OP_SpawnDoor" updated="09/18/24">
+ <opcode id="621a" name="OP_SpawnDoor" updated="10/16/24">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="7b43" name="OP_GroundSpawn" updated="09/18/24">
+ <opcode id="02ba" name="OP_GroundSpawn" updated="10/16/24">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="3e69" name="OP_SendZonePoints" updated="09/18/24">
+ <opcode id="25e5" name="OP_SendZonePoints" updated="10/16/24">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
- <opcode id="33e4" name="OP_AAExpUpdate" updated="09/18/24">
+ <opcode id="13cf" name="OP_AAExpUpdate" updated="10/16/24">
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
@@ -41,32 +41,32 @@
<comment>ExpUpdateCode</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0783" name="OP_GuildMOTD" updated="09/18/24">
+ <opcode id="4578" name="OP_GuildMOTD" updated="10/16/24">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
- <opcode id="146f" name="OP_ClientUpdate" updated="09/18/24">
+ <opcode id="664e" name="OP_ClientUpdate" updated="10/16/24">
<comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6f96" name="OP_NpcMoveUpdate" updated="09/18/24">
+ <opcode id="4ae5" name="OP_NpcMoveUpdate" updated="10/16/24">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="0ac5" name="OP_MobUpdate" updated="09/18/24">
+ <opcode id="4e9e" name="OP_MobUpdate" updated="10/16/24">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="3e61" name="OP_DeleteSpawn" updated="09/18/24">
+ <opcode id="177a" name="OP_DeleteSpawn" updated="10/16/24">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6f62" name="OP_RemoveSpawn" updated="09/18/24">
+ <opcode id="1284" name="OP_RemoveSpawn" updated="10/16/24">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
- <opcode id="399d" name="OP_Death" updated="09/18/24">
+ <opcode id="0f1a" name="OP_Death" updated="10/16/24">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
@@ -74,7 +74,7 @@
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0e9b" name="OP_SpawnAppearance" updated="09/18/24">
+ <opcode id="bd8b" name="OP_SpawnAppearance" updated="10/16/24">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
@@ -86,15 +86,15 @@
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0bc9" name="OP_GuildMemberUpdate" updated="09/18/24">
+ <opcode id="0a9e" name="OP_GuildMemberUpdate" updated="10/16/24">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="1d25" name="OP_ClickObject" updated="09/18/24">
+ <opcode id="54f8" name="OP_ClickObject" updated="10/16/24">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1971" name="OP_Action" updated="09/18/24">
+ <opcode id="4dc3" name="OP_Action" updated="10/16/24">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
@@ -103,11 +103,11 @@
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
- <opcode id="5f2f" name="OP_Consider" updated="09/18/24">
+ <opcode id="2771" name="OP_Consider" updated="10/16/24">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="32e9" name="OP_TargetMouse" updated="09/18/24">
+ <opcode id="0ca0" name="OP_TargetMouse" updated="10/16/24">
<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="1f2b" name="OP_ZoneChange" updated="09/18/24">
+ <opcode id="2a38" name="OP_ZoneChange" updated="10/16/24">
<comment>old ZoneChangeCode</comment>
<payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
</opcode>
@@ -191,19 +191,19 @@
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
- <opcode id="77f9" name="OP_SimpleMessage" updated="09/18/24">
+ <opcode id="014f" name="OP_SimpleMessage" updated="10/16/24">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1343" name="OP_FormattedMessage" updated="09/18/24">
+ <opcode id="339f" name="OP_FormattedMessage" updated="10/16/24">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="0e32" name="OP_CommonMessage" updated="09/18/24">
+ <opcode id="2151" name="OP_CommonMessage" updated="10/16/24">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="486e" name="OP_SpecialMesg" updated="09/18/24">
+ <opcode id="1685" name="OP_SpecialMesg" updated="10/16/24">
<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="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="352e" name="OP_GuildMemberList" updated="09/18/24">
+ <opcode id="0563" name="OP_GuildMemberList" updated="10/16/24">
<comment>List of guild members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -367,7 +367,7 @@
<comment>Fellowship information - 2576 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="5869" name="OP_ExpandedGuildInfo" updated="09/18/24">
+ <opcode id="2086" name="OP_ExpandedGuildInfo" updated="10/16/24">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -535,7 +535,7 @@
<comment>Listing of all guilds. Can be triggered by /lfg search?</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="338a" name="OP_GuildsInZoneList" updated="09/18/24">
+ <opcode id="03cd" name="OP_GuildsInZoneList" updated="10/16/24">
<comment>Listing of guild names present in the current zone. Generally seen on zoning</comment>
<payload dir="server" typename="guildsInZoneListStruct" sizechecktype="none"/>
</opcode>
@@ -595,7 +595,7 @@
<comment>Free to play nags and other data - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="50cd" name="OP_Find" updated="09/18/24">
+ <opcode id="6334" name="OP_Find" updated="10/16/24">
<comment>Find window data - 112 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
Modified: showeq/trunk/configure.in
===================================================================
--- showeq/trunk/configure.in 2024-09-19 03:06:10 UTC (rev 1552)
+++ showeq/trunk/configure.in 2024-10-17 02:38:12 UTC (rev 1553)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 6.4.1)
+AC_INIT(showeq, 6.4.2)
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 2024-09-19 03:06:10 UTC (rev 1552)
+++ showeq/trunk/src/everquest.h 2024-10-17 02:38:12 UTC (rev 1553)
@@ -1119,22 +1119,24 @@
struct
{
- signed deltaY:13; // change in y
- signed x:19; // x coord (1st loc value)
+ unsigned heading:12; // heading
+ signed y:19; // y coord (2nd loc value)
+ unsigned padding00:1;
+ signed z:19; // z coord (3rd loc value)
+ signed deltaX:13; // change in x
+
+ signed deltaHeading:10; // change in heading
signed deltaZ:13; // change in z
- unsigned padding01:19;
+ unsigned padding02:9;
- signed deltaX:13; // change in x
- signed z:19; // z coord (3rd loc value)
-
- unsigned heading:12; // heading
- signed y:19; // y coord (2nd loc value)
+ signed x:19; // x coord (1st loc value)
+ unsigned pitch:12; // pitch (up/down heading)
unsigned padding03:1;
signed animation:10; // current animation
- unsigned pitch:12; // pitch (up/down heading)
- signed deltaHeading:10; // change in heading
+ signed deltaY:13; // change in y
+ unsigned padding04:9;
};
int32_t posData[5];
@@ -2395,22 +2397,24 @@
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
/*0004*/
- signed deltaY:13; // change in y
- signed x:19; // x coord (1st loc value)
+ unsigned heading:12; // heading
+ signed y:19; // y coord (2nd loc value)
+ unsigned padding00:1;
/*0008*/
+ signed z:19; // z coord (3rd loc value)
+ signed deltaX:13; // change in x
+/*0012*/
+ signed deltaHeading:10; // change in heading
signed deltaZ:13; // change in z
- unsigned padding01:19;
-/*0012*/
- signed deltaX:13; // change in x
- signed z:19; // z coord (3rd loc value)
+ unsigned padding02:9;
/*0016*/
- unsigned heading:12; // heading
- signed y:19; // y coord (2nd loc value)
+ signed x:19; // x coord (1st loc value)
+ unsigned pitch:12; // pitch (up/down heading)
unsigned padding03:1;
/*0020*/
signed animation:10; // current animation
- unsigned pitch:12; // pitch (up/down heading)
- signed deltaHeading:10; // change in heading
+ signed deltaY:13; // change in y
+ unsigned padding04:9;
/*0024*/
};
@@ -2425,29 +2429,29 @@
/*0002*/ uint16_t spawnId; // Player's spawn id
/*0004*/ uint16_t unknown0004; // ***Placeholder
/*0006*/
- signed deltaHeading:10; // change in heading
- unsigned padding00:22;
+ float z; // z coord (3rd loc value)
/*0010*/
- float deltaZ; // change in z
+ float deltaX; // change in x
/*0014*/
- float y; // y coord (2nd loc value)
+ signed animation:10; // current animation
+ unsigned padding02:22;
/*0018*/
- unsigned heading:12; // heading
- unsigned padding03:20;
+ float x; // x coord (1st loc value)
/*0022*/
- float x; // x coord (1st loc value)
+ float deltaY; // change in y
/*0026*/
- signed animation:10; // current animation
- unsigned padding05:22;
+ unsigned heading:12; // heading
+ unsigned padding05:20;
/*0030*/
- float z; // z coord (3rd loc value)
+ float deltaZ; // change in z
/*0034*/
- float deltaX; // change in x
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding07:20;
/*0038*/
- float deltaY; // change in y
+ float y; // y coord (2nd loc value)
/*0042*/
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding09:20;
+ signed deltaHeading:10; // change in heading
+ unsigned padding09:22;
/*0046*/
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-09-19 03:06:15
|
Revision: 1552
http://sourceforge.net/p/seq/svn/1552
Author: cn187
Date: 2024-09-19 03:06:10 +0000 (Thu, 19 Sep 2024)
Log Message:
-----------
Release 6.4.1
- Update to version 6.4.1
- Support for EQ Patch 09/18/24
- Struct and opcode updates (Newby)
Modified Paths:
--------------
showeq/branches/cn187_devel/ChangeLog
showeq/branches/cn187_devel/conf/zoneopcodes.xml
showeq/branches/cn187_devel/configure.in
showeq/branches/cn187_devel/src/everquest.h
Modified: showeq/branches/cn187_devel/ChangeLog
===================================================================
--- showeq/branches/cn187_devel/ChangeLog 2024-09-19 02:58:10 UTC (rev 1551)
+++ showeq/branches/cn187_devel/ChangeLog 2024-09-19 03:06:10 UTC (rev 1552)
@@ -1,3 +1,9 @@
+cn187 (09/18/24)
+----------------
+- Update to version 6.4.1
+- Support for EQ Patch 09/18/24
+- Struct and opcode updates (Newby)
+
cn187 (08/21/24)
----------------
- Update to version 6.4.0
Modified: showeq/branches/cn187_devel/conf/zoneopcodes.xml
===================================================================
--- showeq/branches/cn187_devel/conf/zoneopcodes.xml 2024-09-19 02:58:10 UTC (rev 1551)
+++ showeq/branches/cn187_devel/conf/zoneopcodes.xml 2024-09-19 03:06:10 UTC (rev 1552)
@@ -3,37 +3,37 @@
<seqopcodes>
<!-- Critical opcodes used directly by ShowEQ -->
- <opcode id="6acb" name="OP_PlayerProfile" updated="08/21/24">
+ <opcode id="42dd" name="OP_PlayerProfile" updated="09/18/24">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="6bee" name="OP_ZoneEntry" updated="08/21/24">
+ <opcode id="0e04" name="OP_ZoneEntry" updated="09/18/24">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="7a78" name="OP_TimeOfDay" updated="08/21/24">
+ <opcode id="02c8" name="OP_TimeOfDay" updated="09/18/24">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="461c" name="OP_NewZone" updated="08/21/24">
+ <opcode id="2ec3" name="OP_NewZone" updated="09/18/24">
<comment>NewZoneCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="3aa8" name="OP_SpawnDoor" updated="08/21/24">
+ <opcode id="2f85" name="OP_SpawnDoor" updated="09/18/24">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="24ad" name="OP_GroundSpawn" updated="08/21/24">
+ <opcode id="7b43" name="OP_GroundSpawn" updated="09/18/24">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="4dc1" name="OP_SendZonePoints" updated="08/21/24">
+ <opcode id="3e69" name="OP_SendZonePoints" updated="09/18/24">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
- <opcode id="35d1" name="OP_AAExpUpdate" updated="08/21/24">
+ <opcode id="33e4" name="OP_AAExpUpdate" updated="09/18/24">
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
@@ -41,32 +41,32 @@
<comment>ExpUpdateCode</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="198f" name="OP_GuildMOTD" updated="08/21/24">
+ <opcode id="0783" name="OP_GuildMOTD" updated="09/18/24">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
- <opcode id="441b" name="OP_ClientUpdate" updated="08/21/24">
+ <opcode id="146f" name="OP_ClientUpdate" updated="09/18/24">
<comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5332" name="OP_NpcMoveUpdate" updated="08/21/24">
+ <opcode id="6f96" name="OP_NpcMoveUpdate" updated="09/18/24">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="6f8e" name="OP_MobUpdate" updated="08/21/24">
+ <opcode id="0ac5" name="OP_MobUpdate" updated="09/18/24">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="6447" name="OP_DeleteSpawn" updated="08/21/24">
+ <opcode id="3e61" name="OP_DeleteSpawn" updated="09/18/24">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4d80" name="OP_RemoveSpawn" updated="08/21/24">
+ <opcode id="6f62" name="OP_RemoveSpawn" updated="09/18/24">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
- <opcode id="3054" name="OP_Death" updated="08/21/24">
+ <opcode id="399d" name="OP_Death" updated="09/18/24">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
@@ -74,7 +74,7 @@
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="44c3" name="OP_SpawnAppearance" updated="08/21/24">
+ <opcode id="0e9b" name="OP_SpawnAppearance" updated="09/18/24">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
@@ -86,15 +86,15 @@
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="169c" name="OP_GuildMemberUpdate" updated="08/21/24">
+ <opcode id="0bc9" name="OP_GuildMemberUpdate" updated="09/18/24">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="6cec" name="OP_ClickObject" updated="08/21/24">
+ <opcode id="1d25" name="OP_ClickObject" updated="09/18/24">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
- <opcode id="38ad" name="OP_Action" updated="08/21/24">
+ <opcode id="1971" name="OP_Action" updated="09/18/24">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
@@ -103,11 +103,11 @@
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
- <opcode id="6fc1" name="OP_Consider" updated="08/21/24">
+ <opcode id="5f2f" name="OP_Consider" updated="09/18/24">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="13f6" name="OP_TargetMouse" updated="08/21/24">
+ <opcode id="32e9" name="OP_TargetMouse" updated="09/18/24">
<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="343e" name="OP_ZoneChange" updated="08/21/24">
+ <opcode id="1f2b" name="OP_ZoneChange" updated="09/18/24">
<comment>old ZoneChangeCode</comment>
<payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
</opcode>
@@ -191,19 +191,19 @@
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
- <opcode id="7a7a" name="OP_SimpleMessage" updated="08/21/24">
+ <opcode id="77f9" name="OP_SimpleMessage" updated="09/18/24">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
- <opcode id="01b6" name="OP_FormattedMessage" updated="08/21/24">
+ <opcode id="1343" name="OP_FormattedMessage" updated="09/18/24">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="41ec" name="OP_CommonMessage" updated="08/21/24">
+ <opcode id="0e32" name="OP_CommonMessage" updated="09/18/24">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="24fe" name="OP_SpecialMesg" updated="08/21/24">
+ <opcode id="486e" name="OP_SpecialMesg" updated="09/18/24">
<comment>Communicate textual info to client including hail responses etc</comment>
<payload dir="server" typename="specialMessageStruct" sizechecktype="none"/>
</opcode>
@@ -315,7 +315,7 @@
<comment>List of group members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="0ae8" name="OP_GuildMemberList" updated="08/21/24">
+ <opcode id="352e" name="OP_GuildMemberList" updated="09/18/24">
<comment>List of guild members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -375,7 +375,7 @@
<comment>Fellowship information - 2576 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="ffff" name="OP_ExpandedGuildInfo" updated="07/17/24">
+ <opcode id="5869" name="OP_ExpandedGuildInfo" updated="09/18/24">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -543,7 +543,7 @@
<comment>Listing of all guilds. Can be triggered by /lfg search?</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="4a89" name="OP_GuildsInZoneList" updated="08/21/24">
+ <opcode id="338a" name="OP_GuildsInZoneList" updated="09/18/24">
<comment>Listing of guild names present in the current zone. Generally seen on zoning</comment>
<payload dir="server" typename="guildsInZoneListStruct" sizechecktype="none"/>
</opcode>
@@ -603,7 +603,7 @@
<comment>Free to play nags and other data - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="56f4" name="OP_Find" updated="08/21/24">
+ <opcode id="50cd" name="OP_Find" updated="09/18/24">
<comment>Find window data - 112 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
Modified: showeq/branches/cn187_devel/configure.in
===================================================================
--- showeq/branches/cn187_devel/configure.in 2024-09-19 02:58:10 UTC (rev 1551)
+++ showeq/branches/cn187_devel/configure.in 2024-09-19 03:06:10 UTC (rev 1552)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 6.4.0)
+AC_INIT(showeq, 6.4.1)
AC_CONFIG_SRCDIR(src/main.cpp)
AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_SYSTEM
Modified: showeq/branches/cn187_devel/src/everquest.h
===================================================================
--- showeq/branches/cn187_devel/src/everquest.h 2024-09-19 02:58:10 UTC (rev 1551)
+++ showeq/branches/cn187_devel/src/everquest.h 2024-09-19 03:06:10 UTC (rev 1552)
@@ -1119,23 +1119,23 @@
struct
{
- unsigned heading:12; // heading
- signed animation:10; // current animation
- unsigned padding00:10;
+ signed deltaY:13; // change in y
+ signed x:19; // x coord (1st loc value)
signed deltaZ:13; // change in z
- signed y:19; // y coord (2nd loc value)
+ unsigned padding01:19;
signed deltaX:13; // change in x
signed z:19; // z coord (3rd loc value)
+ unsigned heading:12; // heading
+ signed y:19; // y coord (2nd loc value)
+ unsigned padding03:1;
+
+ signed animation:10; // current animation
unsigned pitch:12; // pitch (up/down heading)
signed deltaHeading:10; // change in heading
- unsigned padding03:10;
- signed deltaY:13; // change in y
- signed x:19; // x coord (1st loc value)
-
};
int32_t posData[5];
};
@@ -2395,28 +2395,28 @@
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
/*0004*/
- unsigned heading:12; // heading
- signed animation:10; // current animation
- unsigned padding00:10;
+ signed deltaY:13; // change in y
+ signed x:19; // x coord (1st loc value)
/*0008*/
signed deltaZ:13; // change in z
- signed y:19; // y coord (2nd loc value)
+ unsigned padding01:19;
/*0012*/
signed deltaX:13; // change in x
signed z:19; // z coord (3rd loc value)
/*0016*/
+ unsigned heading:12; // heading
+ signed y:19; // y coord (2nd loc value)
+ unsigned padding03:1;
+/*0020*/
+ signed animation:10; // current animation
unsigned pitch:12; // pitch (up/down heading)
signed deltaHeading:10; // change in heading
- unsigned padding03:10;
-/*0020*/
- signed deltaY:13; // change in y
- signed x:19; // x coord (1st loc value)
/*0024*/
};
/*
** Self Position Update
-** Length: 42 Octets
+** Length: 46 Octets
** OpCode: PlayerPosCode
*/
struct playerSelfPosStruct
@@ -2425,28 +2425,30 @@
/*0002*/ uint16_t spawnId; // Player's spawn id
/*0004*/ uint16_t unknown0004; // ***Placeholder
/*0006*/
- float z; // z coord (3rd loc value)
+ signed deltaHeading:10; // change in heading
+ unsigned padding00:22;
/*0010*/
+ float deltaZ; // change in z
+/*0014*/
float y; // y coord (2nd loc value)
-/*0014*/
+/*0018*/
unsigned heading:12; // heading
- unsigned padding02:20;
-/*0018*/
- float deltaX; // change in x
+ unsigned padding03:20;
/*0022*/
float x; // x coord (1st loc value)
/*0026*/
signed animation:10; // current animation
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding05:10;
+ unsigned padding05:22;
/*0030*/
- float deltaY; // change in y
+ float z; // z coord (3rd loc value)
/*0034*/
- signed deltaHeading:10; // change in heading
- unsigned padding07:22;
+ float deltaX; // change in x
/*0038*/
- float deltaZ; // change in z
+ float deltaY; // change in y
/*0042*/
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding09:20;
+/*0046*/
};
/*
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-09-19 02:58:12
|
Revision: 1551
http://sourceforge.net/p/seq/svn/1551
Author: cn187
Date: 2024-09-19 02:58:10 +0000 (Thu, 19 Sep 2024)
Log Message:
-----------
Tag for release 6.4.1
Added Paths:
-----------
showeq/tags/v6_4_1/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-09-19 02:57:27
|
Revision: 1550
http://sourceforge.net/p/seq/svn/1550
Author: cn187
Date: 2024-09-19 02:57:25 +0000 (Thu, 19 Sep 2024)
Log Message:
-----------
Release 6.4.1
- Update to version 6.4.1
- Support for EQ Patch 09/18/24
- Struct and opcode updates (Newby)
Modified Paths:
--------------
showeq/trunk/ChangeLog
showeq/trunk/conf/zoneopcodes.xml
showeq/trunk/configure.in
showeq/trunk/src/everquest.h
Modified: showeq/trunk/ChangeLog
===================================================================
--- showeq/trunk/ChangeLog 2024-08-27 01:40:38 UTC (rev 1549)
+++ showeq/trunk/ChangeLog 2024-09-19 02:57:25 UTC (rev 1550)
@@ -1,4 +1,11 @@
+cn187 (09/18/24)
+----------------
+- Update to version 6.4.1
+- Support for EQ Patch 09/18/24
+- Struct and opcode updates (Newby)
+
cn187 (08/21/24)
+----------------
- Update to version 6.4.0
- Support for EQ Patch 08/21/24
- Struct and opcode updates
Modified: showeq/trunk/conf/zoneopcodes.xml
===================================================================
--- showeq/trunk/conf/zoneopcodes.xml 2024-08-27 01:40:38 UTC (rev 1549)
+++ showeq/trunk/conf/zoneopcodes.xml 2024-09-19 02:57:25 UTC (rev 1550)
@@ -3,37 +3,37 @@
<seqopcodes>
<!-- Critical opcodes used directly by ShowEQ -->
- <opcode id="6acb" name="OP_PlayerProfile" updated="08/21/24">
+ <opcode id="42dd" name="OP_PlayerProfile" updated="09/18/24">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="6bee" name="OP_ZoneEntry" updated="08/21/24">
+ <opcode id="0e04" name="OP_ZoneEntry" updated="09/18/24">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="7a78" name="OP_TimeOfDay" updated="08/21/24">
+ <opcode id="02c8" name="OP_TimeOfDay" updated="09/18/24">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="461c" name="OP_NewZone" updated="08/21/24">
+ <opcode id="2ec3" name="OP_NewZone" updated="09/18/24">
<comment>NewZoneCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="3aa8" name="OP_SpawnDoor" updated="08/21/24">
+ <opcode id="2f85" name="OP_SpawnDoor" updated="09/18/24">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="24ad" name="OP_GroundSpawn" updated="08/21/24">
+ <opcode id="7b43" name="OP_GroundSpawn" updated="09/18/24">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="4dc1" name="OP_SendZonePoints" updated="08/21/24">
+ <opcode id="3e69" name="OP_SendZonePoints" updated="09/18/24">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
- <opcode id="35d1" name="OP_AAExpUpdate" updated="08/21/24">
+ <opcode id="33e4" name="OP_AAExpUpdate" updated="09/18/24">
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
@@ -41,32 +41,32 @@
<comment>ExpUpdateCode</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="198f" name="OP_GuildMOTD" updated="08/21/24">
+ <opcode id="0783" name="OP_GuildMOTD" updated="09/18/24">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
- <opcode id="441b" name="OP_ClientUpdate" updated="08/21/24">
+ <opcode id="146f" name="OP_ClientUpdate" updated="09/18/24">
<comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5332" name="OP_NpcMoveUpdate" updated="08/21/24">
+ <opcode id="6f96" name="OP_NpcMoveUpdate" updated="09/18/24">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="6f8e" name="OP_MobUpdate" updated="08/21/24">
+ <opcode id="0ac5" name="OP_MobUpdate" updated="09/18/24">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="6447" name="OP_DeleteSpawn" updated="08/21/24">
+ <opcode id="3e61" name="OP_DeleteSpawn" updated="09/18/24">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4d80" name="OP_RemoveSpawn" updated="08/21/24">
+ <opcode id="6f62" name="OP_RemoveSpawn" updated="09/18/24">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
- <opcode id="3054" name="OP_Death" updated="08/21/24">
+ <opcode id="399d" name="OP_Death" updated="09/18/24">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
@@ -74,7 +74,7 @@
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="44c3" name="OP_SpawnAppearance" updated="08/21/24">
+ <opcode id="0e9b" name="OP_SpawnAppearance" updated="09/18/24">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
@@ -86,15 +86,15 @@
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="169c" name="OP_GuildMemberUpdate" updated="08/21/24">
+ <opcode id="0bc9" name="OP_GuildMemberUpdate" updated="09/18/24">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="6cec" name="OP_ClickObject" updated="08/21/24">
+ <opcode id="1d25" name="OP_ClickObject" updated="09/18/24">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
- <opcode id="38ad" name="OP_Action" updated="08/21/24">
+ <opcode id="1971" name="OP_Action" updated="09/18/24">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
@@ -103,11 +103,11 @@
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
- <opcode id="6fc1" name="OP_Consider" updated="08/21/24">
+ <opcode id="5f2f" name="OP_Consider" updated="09/18/24">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="13f6" name="OP_TargetMouse" updated="08/21/24">
+ <opcode id="32e9" name="OP_TargetMouse" updated="09/18/24">
<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="343e" name="OP_ZoneChange" updated="08/21/24">
+ <opcode id="1f2b" name="OP_ZoneChange" updated="09/18/24">
<comment>old ZoneChangeCode</comment>
<payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
</opcode>
@@ -191,19 +191,19 @@
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
- <opcode id="7a7a" name="OP_SimpleMessage" updated="08/21/24">
+ <opcode id="77f9" name="OP_SimpleMessage" updated="09/18/24">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
- <opcode id="01b6" name="OP_FormattedMessage" updated="08/21/24">
+ <opcode id="1343" name="OP_FormattedMessage" updated="09/18/24">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="41ec" name="OP_CommonMessage" updated="08/21/24">
+ <opcode id="0e32" name="OP_CommonMessage" updated="09/18/24">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="24fe" name="OP_SpecialMesg" updated="08/21/24">
+ <opcode id="486e" name="OP_SpecialMesg" updated="09/18/24">
<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="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="0ae8" name="OP_GuildMemberList" updated="08/21/24">
+ <opcode id="352e" name="OP_GuildMemberList" updated="09/18/24">
<comment>List of guild members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -367,7 +367,7 @@
<comment>Fellowship information - 2576 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="ffff" name="OP_ExpandedGuildInfo" updated="07/17/24">
+ <opcode id="5869" name="OP_ExpandedGuildInfo" updated="09/18/24">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -535,7 +535,7 @@
<comment>Listing of all guilds. Can be triggered by /lfg search?</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="4a89" name="OP_GuildsInZoneList" updated="08/21/24">
+ <opcode id="338a" name="OP_GuildsInZoneList" updated="09/18/24">
<comment>Listing of guild names present in the current zone. Generally seen on zoning</comment>
<payload dir="server" typename="guildsInZoneListStruct" sizechecktype="none"/>
</opcode>
@@ -595,7 +595,7 @@
<comment>Free to play nags and other data - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="56f4" name="OP_Find" updated="08/21/24">
+ <opcode id="50cd" name="OP_Find" updated="09/18/24">
<comment>Find window data - 112 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
Modified: showeq/trunk/configure.in
===================================================================
--- showeq/trunk/configure.in 2024-08-27 01:40:38 UTC (rev 1549)
+++ showeq/trunk/configure.in 2024-09-19 02:57:25 UTC (rev 1550)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 6.4.0)
+AC_INIT(showeq, 6.4.1)
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 2024-08-27 01:40:38 UTC (rev 1549)
+++ showeq/trunk/src/everquest.h 2024-09-19 02:57:25 UTC (rev 1550)
@@ -1119,23 +1119,23 @@
struct
{
- unsigned heading:12; // heading
- signed animation:10; // current animation
- unsigned padding00:10;
+ signed deltaY:13; // change in y
+ signed x:19; // x coord (1st loc value)
signed deltaZ:13; // change in z
- signed y:19; // y coord (2nd loc value)
+ unsigned padding01:19;
signed deltaX:13; // change in x
signed z:19; // z coord (3rd loc value)
+ unsigned heading:12; // heading
+ signed y:19; // y coord (2nd loc value)
+ unsigned padding03:1;
+
+ signed animation:10; // current animation
unsigned pitch:12; // pitch (up/down heading)
signed deltaHeading:10; // change in heading
- unsigned padding03:10;
- signed deltaY:13; // change in y
- signed x:19; // x coord (1st loc value)
-
};
int32_t posData[5];
};
@@ -2395,28 +2395,28 @@
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
/*0004*/
- unsigned heading:12; // heading
- signed animation:10; // current animation
- unsigned padding00:10;
+ signed deltaY:13; // change in y
+ signed x:19; // x coord (1st loc value)
/*0008*/
signed deltaZ:13; // change in z
- signed y:19; // y coord (2nd loc value)
+ unsigned padding01:19;
/*0012*/
signed deltaX:13; // change in x
signed z:19; // z coord (3rd loc value)
/*0016*/
+ unsigned heading:12; // heading
+ signed y:19; // y coord (2nd loc value)
+ unsigned padding03:1;
+/*0020*/
+ signed animation:10; // current animation
unsigned pitch:12; // pitch (up/down heading)
signed deltaHeading:10; // change in heading
- unsigned padding03:10;
-/*0020*/
- signed deltaY:13; // change in y
- signed x:19; // x coord (1st loc value)
/*0024*/
};
/*
** Self Position Update
-** Length: 42 Octets
+** Length: 46 Octets
** OpCode: PlayerPosCode
*/
struct playerSelfPosStruct
@@ -2425,28 +2425,30 @@
/*0002*/ uint16_t spawnId; // Player's spawn id
/*0004*/ uint16_t unknown0004; // ***Placeholder
/*0006*/
- float z; // z coord (3rd loc value)
+ signed deltaHeading:10; // change in heading
+ unsigned padding00:22;
/*0010*/
+ float deltaZ; // change in z
+/*0014*/
float y; // y coord (2nd loc value)
-/*0014*/
+/*0018*/
unsigned heading:12; // heading
- unsigned padding02:20;
-/*0018*/
- float deltaX; // change in x
+ unsigned padding03:20;
/*0022*/
float x; // x coord (1st loc value)
/*0026*/
signed animation:10; // current animation
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding05:10;
+ unsigned padding05:22;
/*0030*/
- float deltaY; // change in y
+ float z; // z coord (3rd loc value)
/*0034*/
- signed deltaHeading:10; // change in heading
- unsigned padding07:22;
+ float deltaX; // change in x
/*0038*/
- float deltaZ; // change in z
+ float deltaY; // change in y
/*0042*/
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding09:20;
+/*0046*/
};
/*
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-08-27 01:40:40
|
Revision: 1549
http://sourceforge.net/p/seq/svn/1549
Author: cn187
Date: 2024-08-27 01:40:38 +0000 (Tue, 27 Aug 2024)
Log Message:
-----------
Add license to zone script
Modified Paths:
--------------
showeq/branches/cn187_devel/scripts/ida/gen_zones_h.py
Modified: showeq/branches/cn187_devel/scripts/ida/gen_zones_h.py
===================================================================
--- showeq/branches/cn187_devel/scripts/ida/gen_zones_h.py 2024-08-27 01:40:27 UTC (rev 1548)
+++ showeq/branches/cn187_devel/scripts/ida/gen_zones_h.py 2024-08-27 01:40:38 UTC (rev 1549)
@@ -1,3 +1,20 @@
+# gen_zones_h.py
+# Copyright 2022-2024, cn187 <cn...@us...>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
import datetime
import sys
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-08-27 01:40:29
|
Revision: 1548
http://sourceforge.net/p/seq/svn/1548
Author: cn187
Date: 2024-08-27 01:40:27 +0000 (Tue, 27 Aug 2024)
Log Message:
-----------
Add license to zone script
Modified Paths:
--------------
showeq/trunk/scripts/ida/gen_zones_h.py
Modified: showeq/trunk/scripts/ida/gen_zones_h.py
===================================================================
--- showeq/trunk/scripts/ida/gen_zones_h.py 2024-08-26 22:40:07 UTC (rev 1547)
+++ showeq/trunk/scripts/ida/gen_zones_h.py 2024-08-27 01:40:27 UTC (rev 1548)
@@ -1,3 +1,20 @@
+# gen_zones_h.py
+# Copyright 2022-2024, cn187 <cn...@us...>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
import datetime
import sys
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-08-26 22:40:10
|
Revision: 1547
http://sourceforge.net/p/seq/svn/1547
Author: cn187
Date: 2024-08-26 22:40:07 +0000 (Mon, 26 Aug 2024)
Log Message:
-----------
Regenerate zones.h from current client files
Modified Paths:
--------------
showeq/branches/cn187_devel/src/zones.h
Modified: showeq/branches/cn187_devel/src/zones.h
===================================================================
--- showeq/branches/cn187_devel/src/zones.h 2024-08-26 22:40:00 UTC (rev 1546)
+++ showeq/branches/cn187_devel/src/zones.h 2024-08-26 22:40:07 UTC (rev 1547)
@@ -1,6 +1,6 @@
/*
* zones.h
- * Copyright 2003-2009, 2011-2012, 2014-2015, 2017-2019 by the respective ShowEQ Developers
+ * Copyright 2003-2024 by the respective ShowEQ Developers
*
* This file is part of ShowEQ.
* http://www.sourceforge.net/projects/seq
@@ -19,6 +19,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+
/* Maps zoneId numbers to strings, used in util.cpp */
{ NULL, NULL }, // 0
{ "qeynos", "South Qeynos" }, // 1
@@ -31,14 +32,14 @@
{ "freportn", "North Freeport" }, // 8
{ "freportw", "West Freeport" }, // 9
{ "freporte", "East Freeport" }, // 10
-{ "runnyeye", "Clan Runnyeye" }, // 11
-{ "qey2hh1", "West Karana" }, // 12
-{ "northkarana", "North Karana" }, // 13
-{ "southkarana", "South Karana" }, // 14
-{ "eastkarana", "East Karana" }, // 15
-{ "beholder", "Gorge of King Xorbb" }, // 16
-{ "blackburrow", "BlackBurrow" }, // 17
-{ "paw", "Infected Paw" }, // 18
+{ "runnyeye", "The Liberated Citadel of Runnyeye" }, // 11
+{ "qey2hh1", "The Western Plains of Karana" }, // 12
+{ "northkarana", "The Northern Plains of Karana" }, // 13
+{ "southkarana", "The Southern Plains of Karana" }, // 14
+{ "eastkarana", "The Eastern Plains of Karana" }, // 15
+{ "beholder", "The Gorge of King Xorbb" }, // 16
+{ "blackburrow", "Blackburrow" }, // 17
+{ "paw", "The Lair of the Splitpaw" }, // 18
{ "rivervale", "Rivervale" }, // 19
{ "kithicor", "Kithicor Forest" }, // 20
{ "commons", "West Commonlands" }, // 21
@@ -47,18 +48,18 @@
{ "erudnext", "Erudin" }, // 24
{ "nektulos", "Nektulos Forest" }, // 25
{ "cshome", "Sunset Home" }, // 26
-{ "lavastorm", "Lavastorm Mountains" }, // 27
-{ "nektropos", "Nektropos" }, // 28
+{ "lavastorm", "The Lavastorm Mountains" }, // 27
+{ "nektropos", "nektropos" }, // 28
{ "halas", "Halas" }, // 29
{ "everfrost", "Everfrost Peaks" }, // 30
{ "soldunga", "Solusek's Eye" }, // 31
{ "soldungb", "Nagafen's Lair" }, // 32
-{ "misty", "Misty Thicket" }, // 33
-{ "nro", "North Ro" }, // 34
-{ "sro", "South Ro" }, // 35
+{ "misty", "misty" }, // 33
+{ "nro", "The Northern Desert of Ro" }, // 34
+{ "sro", "The Southern Desert of Ro" }, // 35
{ "befallen", "Befallen" }, // 36
-{ "oasis", "Oasis of Marr" }, // 37
-{ "tox", "Toxxulia Forest" }, // 38
+{ "oasis", "The Oasis of Marr" }, // 37
+{ "tox", "tox" }, // 38
{ "hole", "The Ruins of Old Paineel" }, // 39
{ "neriaka", "Neriak - Foreign Quarter" }, // 40
{ "neriakb", "Neriak - Commons" }, // 41
@@ -65,53 +66,53 @@
{ "neriakc", "Neriak - Third Gate" }, // 42
{ "neriakd", "Neriak - Fourth Gate" }, // 43
{ "najena", "Najena" }, // 44
-{ "qcat", "Qeynos Catacombs" }, // 45
-{ "innothule", "Innothule Swamp" }, // 46
+{ "qcat", "The Qeynos Aqueduct System" }, // 45
+{ "innothule", "innothule" }, // 46
{ "feerrott", "The Feerrott" }, // 47
-{ "cazicthule", "Cazic-Thule" }, // 48
+{ "cazicthule", "Temple of Cazic-Thule" }, // 48
{ "oggok", "Oggok" }, // 49
-{ "rathemtn", "Mountains of Rathe" }, // 50
+{ "rathemtn", "The Rathe Mountains" }, // 50
{ "lakerathe", "Lake Rathetear" }, // 51
{ "grobb", "Grobb" }, // 52
-{ "aviak", "Aviak Village" }, // 53
-{ "gfaydark", "Greater Faydark" }, // 54
+{ "aviak", "Aviak" }, // 53
+{ "gfaydark", "The Greater Faydark" }, // 54
{ "akanon", "Ak'Anon" }, // 55
-{ "steamfont", "Steamfont Mountains" }, // 56
-{ "lfaydark", "Lesser Faydark" }, // 57
+{ "steamfont", "steamfont" }, // 56
+{ "lfaydark", "The Lesser Faydark" }, // 57
{ "crushbone", "Clan Crushbone" }, // 58
-{ "mistmoore", "Castle Mistmoore" }, // 59
-{ "kaladima", "Kaladim" }, // 60
-{ "felwithea", "Felwithe" }, // 61
-{ "felwitheb", "Felwithe" }, // 62
-{ "unrest", "Estate of Unrest" }, // 63
+{ "mistmoore", "The Castle of Mistmoore" }, // 59
+{ "kaladima", "South Kaladim" }, // 60
+{ "felwithea", "Northern Felwithe" }, // 61
+{ "felwitheb", "Southern Felwithe" }, // 62
+{ "unrest", "The Estate of Unrest" }, // 63
{ "kedge", "Kedge Keep" }, // 64
-{ "guktop", "Upper Guk" }, // 65
-{ "gukbottom", "Lower Guk" }, // 66
-{ "kaladimb", "Kaladim" }, // 67
+{ "guktop", "The City of Guk" }, // 65
+{ "gukbottom", "The Ruins of Old Guk" }, // 66
+{ "kaladimb", "North Kaladim" }, // 67
{ "butcher", "Butcherblock Mountains" }, // 68
-{ "oot", "Ocean of Tears" }, // 69
+{ "oot", "The Ocean of Tears" }, // 69
{ "cauldron", "Dagnor's Cauldron" }, // 70
-{ "airplane", "Plane of Sky" }, // 71
-{ "fearplane", "Plane of Fear" }, // 72
+{ "airplane", "The Plane of Sky" }, // 71
+{ "fearplane", "The Plane of Fear" }, // 72
{ "permafrost", "Permafrost Keep" }, // 73
-{ "kerraridge", "Kerra Isle" }, // 74
+{ "kerraridge", "kerraridge" }, // 74
{ "paineel", "Paineel" }, // 75
{ "hateplane", "The Plane of Hate" }, // 76
{ "arena", "The Arena" }, // 77
{ "fieldofbone", "The Field of Bone" }, // 78
-{ "warslikswood", "Warsliks Woods" }, // 79
-{ "soltemple", "Temple of Solusek Ro" }, // 80
-{ "droga", "Temple of Droga" }, // 81
-{ "cabwest", "West Cabilis" }, // 82
-{ "swampofnohope", "Swamp of No Hope" }, // 83
+{ "warslikswood", "The Warsliks Woods" }, // 79
+{ "soltemple", "The Temple of Solusek Ro" }, // 80
+{ "droga", "The Temple of Droga" }, // 81
+{ "cabwest", "Cabilis West" }, // 82
+{ "swampofnohope", "The Swamp of No Hope" }, // 83
{ "firiona", "Firiona Vie" }, // 84
{ "lakeofillomen", "Lake of Ill Omen" }, // 85
-{ "dreadlands", "Dreadlands" }, // 86
-{ "burningwood", "Burning Woods" }, // 87
+{ "dreadlands", "The Dreadlands" }, // 86
+{ "burningwood", "The Burning Woods" }, // 87
{ "kaesora", "Kaesora" }, // 88
-{ "sebilis", "Old Sebilis" }, // 89
-{ "citymist", "City of Mist" }, // 90
-{ "skyfire", "Skyfire Mountains" }, // 91
+{ "sebilis", "The Ruins of Sebilis" }, // 89
+{ "citymist", "The City of Mist" }, // 90
+{ "skyfire", "The Skyfire Mountains" }, // 91
{ "frontiermtns", "Frontier Mountains" }, // 92
{ "overthere", "The Overthere" }, // 93
{ "emeraldjungle", "The Emerald Jungle" }, // 94
@@ -120,37 +121,37 @@
{ "kurn", "Kurn's Tower" }, // 97
{ "erudsxing", "Erud's Crossing" }, // 98
{ NULL, NULL }, // 99
-{ "stonebrunt", "Stonebrunt Mountains" }, // 100
+{ "stonebrunt", "The Stonebrunt Mountains" }, // 100
{ "warrens", "The Warrens" }, // 101
{ "karnor", "Karnor's Castle" }, // 102
{ "chardok", "Chardok" }, // 103
-{ "dalnir", "Dalnir" }, // 104
+{ "dalnir", "The Crypt of Dalnir" }, // 104
{ "charasis", "Howling Stones" }, // 105
-{ "cabeast", "East Cabilis" }, // 106
-{ "nurga", "Mines of Nurga" }, // 107
+{ "cabeast", "Cabilis East" }, // 106
+{ "nurga", "The Mines of Nurga" }, // 107
{ "veeshan", "Veeshan's Peak" }, // 108
{ "veksar", "Veksar" }, // 109
-{ "iceclad", "Iceclad Ocean" }, // 110
-{ "frozenshadow", "Tower of Frozen Shadow" }, // 111
+{ "iceclad", "The Iceclad Ocean" }, // 110
+{ "frozenshadow", "The Tower of Frozen Shadow" }, // 111
{ "velketor", "Velketor's Labyrinth" }, // 112
{ "kael", "Kael Drakkel" }, // 113
{ "skyshrine", "Skyshrine" }, // 114
-{ "thurgadina", "Thurgadin" }, // 115
+{ "thurgadina", "The City of Thurgadin" }, // 115
{ "eastwastes", "Eastern Wastes" }, // 116
{ "cobaltscar", "Cobalt Scar" }, // 117
-{ "greatdivide", "Great Divide" }, // 118
+{ "greatdivide", "The Great Divide" }, // 118
{ "wakening", "The Wakening Land" }, // 119
-{ "westwastes", "Western Wastes" }, // 120
+{ "westwastes", "The Western Wastes" }, // 120
{ "crystal", "Crystal Caverns" }, // 121
{ NULL, NULL }, // 122
{ "necropolis", "Dragon Necropolis" }, // 123
-{ "templeveeshan", "Temple of Veeshan" }, // 124
+{ "templeveeshan", "The Temple of Veeshan" }, // 124
{ "sirens", "Siren's Grotto" }, // 125
-{ "mischiefplane", "Plane of Mischief" }, // 126
-{ "growthplane", "Plane of Growth" }, // 127
-{ "sleeper", "Sleeper's Tomb" }, // 128
+{ "mischiefplane", "The Plane of Mischief" }, // 126
+{ "growthplane", "The Plane of Growth" }, // 127
+{ "sleeper", "The Sleeper's Tomb" }, // 128
{ "thurgadinb", "Icewell Keep" }, // 129
-{ "erudsxing2", "Marauder's Mire" }, // 130
+{ "erudsxing2", "erudsxing2" }, // 130
{ NULL, NULL }, // 131
{ NULL, NULL }, // 132
{ NULL, NULL }, // 133
@@ -177,7 +178,7 @@
{ "acrylia", "Acrylia Caverns" }, // 154
{ "sharvahl", "Shar Vahl" }, // 155
{ "paludal", "Paludal Caverns" }, // 156
-{ "fungusgrove", "Fungus Grove" }, // 157
+{ "fungusgrove", "The Fungus Grove" }, // 157
{ "vexthal", "Vex Thal" }, // 158
{ "sseru", "Sanctus Seru" }, // 159
{ "katta", "Katta Castellum" }, // 160
@@ -199,18 +200,18 @@
{ "umbral", "The Umbral Plains" }, // 176
{ NULL, NULL }, // 177
{ NULL, NULL }, // 178
-{ "akheva", "Akheva Ruins" }, // 179
-{ "arena2", "The Arena" }, // 180
-{ "jaggedpine", "The Jaggedpine Forest" }, // 181
+{ "akheva", "The Akheva Ruins" }, // 179
+{ "arena2", "arena2" }, // 180
+{ "jaggedpine", "Jaggedpine Forest" }, // 181
{ "nedaria", "Nedaria's Landing" }, // 182
-{ "tutorial", "Tutorial Zone" }, // 183
-{ "load", "Loading" }, // 184
-{ "load2", "Loading" }, // 185
+{ "tutorial", "tutorial" }, // 183
+{ "load", "load" }, // 184
+{ "load2", "load2" }, // 185
{ "hateplaneb", "The Plane of Hate" }, // 186
{ "shadowrest", "Shadowrest" }, // 187
-{ "tutoriala", "The Mines of Gloomingdeep" }, // 188
-{ "tutorialb", "The Mines of Gloomingdeep" }, // 189
-{ "clz", "Loading" }, // 190
+{ "tutoriala", "tutoriala" }, // 188
+{ "tutorialb", "tutorialb" }, // 189
+{ "clz", "clz" }, // 190
{ NULL, NULL }, // 191
{ NULL, NULL }, // 192
{ NULL, NULL }, // 193
@@ -221,115 +222,115 @@
{ NULL, NULL }, // 198
{ NULL, NULL }, // 199
{ "codecay", "Ruins of Lxanvom" }, // 200
-{ "pojustice", "Plane of Justice" }, // 201
-{ "poknowledge", "Plane of Knowledge" }, // 202
-{ "potranquility", "Plane of Tranquility" }, // 203
-{ "ponightmare", "Plane of Nightmare" }, // 204
-{ "podisease", "Plane of Disease" }, // 205
-{ "poinnovation", "Plane of Innovation" }, // 206
-{ "potorment", "Plane of Torment" }, // 207
-{ "povalor", "Plane of Valor" }, // 208
-{ "bothunder", "Torden, The Bastion of Thunder" }, // 209
-{ "postorms", "Plane of Storms" }, // 210
-{ "hohonora", "Halls of Honor" }, // 211
-{ "solrotower", "Solusek Ro's Tower" }, // 212
-{ "powar", "Plane of War" }, // 213
-{ "potactics", "Drunder, Fortress of Zek" }, // 214
+{ "pojustice", "The Plane of Justice" }, // 201
+{ "poknowledge", "The Plane of Knowledge" }, // 202
+{ "potranquility", "The Plane of Tranquility" }, // 203
+{ "ponightmare", "The Plane of Nightmare" }, // 204
+{ "podisease", "The Plane of Disease" }, // 205
+{ "poinnovation", "The Plane of Innovation" }, // 206
+{ "potorment", "Torment, the Plane of Pain" }, // 207
+{ "povalor", "The Plane of Valor" }, // 208
+{ "bothunder", "Torden, the Bastion of Thunder" }, // 209
+{ "postorms", "The Plane of Storms" }, // 210
+{ "hohonora", "The Halls of Honor" }, // 211
+{ "solrotower", "The Tower of Solusek Ro" }, // 212
+{ "powar", "The Plane of War" }, // 213
+{ "potactics", "Drunder, the Fortress of Zek" }, // 214
{ "poair", "Eryslai, the Kingdom of Wind" }, // 215
-{ "powater", "Reef of Coirnav" }, // 216
-{ "pofire", "Doomfire, The Burning Lands" }, // 217
+{ "powater", "The Reef of Coirnav" }, // 216
+{ "pofire", "Doomfire, the Burning Lands" }, // 217
{ "poeartha", "Vegarlson, The Earthen Badlands" }, // 218
-{ "potimea", "Plane of Time" }, // 219
-{ "hohonorb", "Temple of Marr" }, // 220
-{ "nightmareb", "Lair of Terris Thule" }, // 221
-{ "poearthb", "Stronghold of the Twelve" }, // 222
-{ "potimeb", "Plane of Time" }, // 223
-{ "gunthak", "Gulf of Gunthak" }, // 224
+{ "potimea", "The Plane of Time" }, // 219
+{ "hohonorb", "The Temple of Marr" }, // 220
+{ "nightmareb", "The Lair of Terris-Thule" }, // 221
+{ "poearthb", "Ragrax, Stronghold of the Twelve" }, // 222
+{ "potimeb", "The Prison of the Forsaken" }, // 223
+{ "gunthak", "The Gulf of Gunthak" }, // 224
{ "dulak", "Dulak's Harbor" }, // 225
-{ "torgiran", "Torgiran Mines" }, // 226
-{ "nadox", "Crypt of Nadox" }, // 227
-{ "hatesfury", "Hate's Fury, The Scorned Maiden" }, // 228
-{ "guka", "The Cauldron of Lost Souls" }, // 229
-{ "ruja", "The Bloodied Quarries" }, // 230
-{ "taka", "The Sunken Library" }, // 231
-{ "mira", "The Silent Gallery" }, // 232
-{ "mmca", "The Forlorn Caverns" }, // 233
-{ "gukb", "The Drowning Crypt" }, // 234
-{ "rujb", "The Halls of War" }, // 235
-{ "takb", "The Shifting Tower" }, // 236
-{ "mirb", "The Maw of the Menagerie" }, // 237
-{ "mmcb", "The Dreary Grotto" }, // 238
-{ "gukc", "The Ancient Aqueducts" }, // 239
-{ "rujc", "The Wind Bridges" }, // 240
-{ "takc", "The Fading Temple" }, // 241
-{ "mirc", "The Spider Den" }, // 242
-{ "mmcc", "The Asylum of Invoked Stone" }, // 243
-{ "gukd", "The Mushroom Grove" }, // 244
-{ "rujd", "The Gladiator Pits" }, // 245
-{ "takd", "The Royal Observatory" }, // 246
-{ "mird", "The Hushed Banquet" }, // 247
-{ "mmcd", "The Chambers of Eternal Affliction" }, // 248
-{ "guke", "The Foreboding Prison" }, // 249
-{ "ruje", "The Drudge Hollows" }, // 250
-{ "take", "The River of Recollection" }, // 251
-{ "mire", "The Frosted Halls" }, // 252
-{ "mmce", "The Sepulcher of the Damned" }, // 253
-{ "gukf", "The Chapel of the Witnesses" }, // 254
-{ "rujf", "The Fortified Lair of the Taskmasters" }, // 255
-{ "takf", "The Sandfall Corridors" }, // 256
-{ "mirf", "The Forgotten Wastes" }, // 257
-{ "mmcf", "The Ritualistic Summoning Grounds" }, // 258
-{ "gukg", "The Root Garden" }, // 259
-{ "rujg", "The Hidden Vale" }, // 260
-{ "takg", "The Balancing Chamber" }, // 261
-{ "mirg", "The Heart of the Menagerie" }, // 262
-{ "mmcg", "The Cesspits of Putrescence" }, // 263
-{ "gukh", "The Accursed Sanctuary" }, // 264
-{ "rujh", "The Blazing Forge" }, // 265
-{ "takh", "The Sweeping Tides" }, // 266
-{ "mirh", "The Morbid Laboratory" }, // 267
-{ "mmch", "The Aisles of Blood" }, // 268
-{ "ruji", "The Arena of Chance" }, // 269
-{ "taki", "The Antiquated Palace" }, // 270
-{ "miri", "The Theater of Imprisoned Horrors" }, // 271
-{ "mmci", "The Halls of Sanguinary Rites" }, // 272
-{ "rujj", "The Barracks of War" }, // 273
-{ "takj", "The Prismatic Corridors" }, // 274
-{ "mirj", "The Grand Library" }, // 275
-{ "mmcj", "The Infernal Sanctuary" }, // 276
-{ "chardokb", "The Halls of Betrayal" }, // 277
+{ "torgiran", "The Torgiran Mines" }, // 226
+{ "nadox", "The Crypt of Nadox" }, // 227
+{ "hatesfury", "Hate's Fury" }, // 228
+{ "guka", "Deepest Guk: Cauldron of Lost Souls" }, // 229
+{ "ruja", "The Rujarkian Hills: Bloodied Quarries" }, // 230
+{ "taka", "Takish-Hiz: Sunken Library" }, // 231
+{ "mira", "Miragul's Menagerie: Silent Gallery" }, // 232
+{ "mmca", "Mistmoore's Catacombs: Forlorn Caverns" }, // 233
+{ "gukb", "Deepest Guk: Drowning Crypt" }, // 234
+{ "rujb", "The Rujarkian Hills: Halls of War" }, // 235
+{ "takb", "Takish-Hiz: Shifting Tower" }, // 236
+{ "mirb", "Miragul's Menagerie: Maw of the Menagerie" }, // 237
+{ "mmcb", "Mistmoore's Catacombs: Dreary Grotto" }, // 238
+{ "gukc", "Deepest Guk: Ancient Aqueducts" }, // 239
+{ "rujc", "The Rujarkian Hills: Wind Bridges" }, // 240
+{ "takc", "Takish-Hiz: Fading Temple" }, // 241
+{ "mirc", "Miragul's Menagerie: Spider Den" }, // 242
+{ "mmcc", "Mistmoore's Catacombs: Asylum of Invoked Stone" }, // 243
+{ "gukd", "Deepest Guk: Mushroom Grove" }, // 244
+{ "rujd", "The Rujarkian Hills: Gladiator Pits" }, // 245
+{ "takd", "Takish-Hiz: Royal Observatory" }, // 246
+{ "mird", "Miragul's Menagerie: Hushed Banquet" }, // 247
+{ "mmcd", "Mistmoore's Catacombs: Chambers of Eternal Affliction" }, // 248
+{ "guke", "Deepest Guk: Foreboding Prison" }, // 249
+{ "ruje", "The Rujarkian Hills: Drudge Hollows" }, // 250
+{ "take", "Takish-Hiz: River of Recollection" }, // 251
+{ "mire", "Miragul's Menagerie: Frosted Halls" }, // 252
+{ "mmce", "Mistmoore's Catacombs: Sepulcher of the Damned" }, // 253
+{ "gukf", "Deepest Guk: Chapel of the Witnesses" }, // 254
+{ "rujf", "The Rujarkian Hills: Fortified Lair of the Taskmasters" }, // 255
+{ "takf", "Takish-Hiz: Sandfall Corridors" }, // 256
+{ "mirf", "Miragul's Menagerie: Forgotten Wastes" }, // 257
+{ "mmcf", "Mistmoore's Catacombs: Ritualistic Summoning Grounds" }, // 258
+{ "gukg", "Deepest Guk: Root Garden" }, // 259
+{ "rujg", "The Rujarkian Hills: Hidden Vale" }, // 260
+{ "takg", "Takish-Hiz: Balancing Chamber" }, // 261
+{ "mirg", "Miragul's Menagerie: Heart of the Menagerie" }, // 262
+{ "mmcg", "Mistmoore's Catacombs: Cesspits of Putrescence" }, // 263
+{ "gukh", "Deepest Guk: Accursed Sanctuary" }, // 264
+{ "rujh", "The Rujarkian Hills: Blazing Forge" }, // 265
+{ "takh", "Takish-Hiz: Sweeping Tides" }, // 266
+{ "mirh", "Miragul's Menagerie: Morbid Laboratory" }, // 267
+{ "mmch", "Mistmoore's Catacombs: Aisles of Blood" }, // 268
+{ "ruji", "The Rujarkian Hills: Arena of Chance" }, // 269
+{ "taki", "Takish-Hiz: Antiquated Palace" }, // 270
+{ "miri", "Miragul's Menagerie: Theater of Imprisoned Horrors" }, // 271
+{ "mmci", "Mistmoore's Catacombs: Halls of Sanguinary Rites" }, // 272
+{ "rujj", "The Rujarkian Hills: Barracks of War" }, // 273
+{ "takj", "Takish-Hiz: Prismatic Corridors" }, // 274
+{ "mirj", "Miragul's Menagerie: Grand Library" }, // 275
+{ "mmcj", "Mistmoore's Catacombs: Infernal Sanctuary" }, // 276
+{ "chardokb", "Chardok: The Halls of Betrayal" }, // 277
{ "soldungc", "The Caverns of Exile" }, // 278
-{ "abysmal", "Abysmal Sea" }, // 279
-{ "natimbi", "Natimbi, The Broken Shores" }, // 280
+{ "abysmal", "The Abysmal Sea" }, // 279
+{ "natimbi", "Natimbi, the Broken Shores" }, // 280
{ "qinimi", "Qinimi, Court of Nihilia" }, // 281
{ "riwwi", "Riwwi, Coliseum of Games" }, // 282
{ "barindu", "Barindu, Hanging Gardens" }, // 283
{ "ferubi", "Ferubi, Forgotten Temple of Taelosia" }, // 284
{ "snpool", "Sewers of Nihilia, Pool of Sludge" }, // 285
-{ "snlair", "Sewers of Nihilia, Lair of Trapped Ones..." }, // 286
+{ "snlair", "Sewers of Nihilia, Lair of Trapped Ones" }, // 286
{ "snplant", "Sewers of Nihilia, Purifying Plant" }, // 287
-{ "sncrematory", "Sewers of Nihilia, the Crematory" }, // 288
+{ "sncrematory", "Sewers of Nihilia, Emanating Crematory" }, // 288
{ "tipt", "Tipt, Treacherous Crags" }, // 289
-{ "vxed", "Vxed, The Crumbling Caverns" }, // 290
+{ "vxed", "Vxed, the Crumbling Caverns" }, // 290
{ "yxtta", "Yxtta, Pulpit of Exiles" }, // 291
-{ "uqua", "Uqua, The Ocean God Chantry" }, // 292
+{ "uqua", "Uqua, the Ocean God Chantry" }, // 292
{ "kodtaz", "Kod'Taz, Broken Trial Grounds" }, // 293
{ "ikkinz", "Ikkinz, Chambers of Destruction" }, // 294
{ "qvic", "Qvic, Prayer Grounds of Calling" }, // 295
-{ "inktuta", "Inktu`Ta, The Unmasked Chapel" }, // 296
+{ "inktuta", "Inktu'Ta, the Unmasked Chapel" }, // 296
{ "txevu", "Txevu, Lair of the Elite" }, // 297
-{ "tacvi", "Tacvi, Seat of the Slaver" }, // 298
-{ "qvicb", "Qvic, the Hidden Vault" }, // 299
+{ "tacvi", "Tacvi, the Broken Temple" }, // 298
+{ "qvicb", "qvicb" }, // 299
{ "wallofslaughter", "Wall of Slaughter" }, // 300
{ "bloodfields", "The Bloodfields" }, // 301
{ "draniksscar", "Dranik's Scar" }, // 302
{ "causeway", "Nobles' Causeway" }, // 303
-{ "chambersa", "Muramite Proving Grounds" }, // 304
-{ "chambersb", "Muramite Proving Grounds" }, // 305
-{ "chambersc", "Muramite Proving Grounds" }, // 306
-{ "chambersd", "Muramite Proving Grounds" }, // 307
-{ "chamberse", "Muramite Proving Grounds" }, // 308
-{ "chambersf", "Muramite Proving Grounds" }, // 309
+{ "chambersa", "Proving Grounds" }, // 304
+{ "chambersb", "Proving Grounds" }, // 305
+{ "chambersc", "Proving Grounds" }, // 306
+{ "chambersd", "Proving Grounds" }, // 307
+{ "chamberse", "Proving Grounds" }, // 308
+{ "chambersf", "Proving Grounds" }, // 309
{ NULL, NULL }, // 310
{ NULL, NULL }, // 311
{ NULL, NULL }, // 312
@@ -338,9 +339,9 @@
{ NULL, NULL }, // 315
{ "provinggrounds", "Muramite Proving Grounds" }, // 316
{ "anguish", "Anguish, the Fallen Palace" }, // 317
-{ "dranikhollowsa", "Dranik's Hollows" }, // 318
-{ "dranikhollowsb", "Dranik's Hollows" }, // 319
-{ "dranikhollowsc", "Dranik's Hollows" }, // 320
+{ "dranikhollowsa", "Dranik's Hollows: Watering Hole" }, // 318
+{ "dranikhollowsb", "Dranik's Hollows: Fire Pit" }, // 319
+{ "dranikhollowsc", "Dranik's Hollows: Murkglider Hive" }, // 320
{ "dranikhollowsd", "Dranik's Hollows" }, // 321
{ "dranikhollowse", "Dranik's Hollows" }, // 322
{ "dranikhollowsf", "Dranik's Hollows" }, // 323
@@ -355,7 +356,7 @@
{ "draniksewersb", "Sewers of Dranik" }, // 332
{ "draniksewersc", "Sewers of Dranik" }, // 333
{ "riftseekers", "Riftseekers' Sanctum" }, // 334
-{ "harbingers", "Harbingers' Spire" }, // 335
+{ "harbingers", "Harbinger's Spire" }, // 335
{ "dranik", "The Ruined City of Dranik" }, // 336
{ "broodlands", "The Broodlands" }, // 337
{ "stillmoona", "Stillmoon Temple" }, // 338
@@ -364,25 +365,25 @@
{ "delvea", "Lavaspinner's Lair" }, // 341
{ "delveb", "Tirranun's Delve" }, // 342
{ "thenest", "The Accursed Nest" }, // 343
-{ "guildlobby", "The Guild Lobby" }, // 344
+{ "guildlobby", "Guild Lobby" }, // 344
{ "guildhall", "Guild Hall" }, // 345
-{ "barter", "The Barter Hall" }, // 346
+{ "barter", "barter" }, // 346
{ "illsalin", "Ruins of Illsalin" }, // 347
-{ "illsalina", "Imperial Bazaar" }, // 348
+{ "illsalina", "Illsalin Marketplace" }, // 348
{ "illsalinb", "Temple of the Korlach" }, // 349
{ "illsalinc", "The Nargilor Pits" }, // 350
{ "dreadspire", "Dreadspire Keep" }, // 351
-{ "dreadspirea", "The Torture Chamber" }, // 352
-{ "dreadspireb", "The Artifact Room" }, // 353
+{ NULL, NULL }, // 352
+{ NULL, NULL }, // 353
{ "drachnidhive", "The Hive" }, // 354
-{ "drachnidhivea", "Living Larder" }, // 355
-{ "drachnidhiveb", "Coven of the Skinwalkers" }, // 356
-{ "drachnidhivec", "Queen Sendaii's Lair" }, // 357
+{ "drachnidhivea", "The Hatchery" }, // 355
+{ "drachnidhiveb", "The Cocoons" }, // 356
+{ "drachnidhivec", "The Queen's Lair" }, // 357
{ "westkorlach", "Stoneroot Falls" }, // 358
{ "westkorlacha", "Chambers of Xill" }, // 359
{ "westkorlachb", "Caverns of the Lost" }, // 360
{ "westkorlachc", "Lair of the Korlach" }, // 361
-{ "eastkorlach", "Undershore" }, // 362
+{ "eastkorlach", "The Undershore" }, // 362
{ "eastkorlacha", "Snarlstone Dens" }, // 363
{ "shadowspine", "Shadowspine" }, // 364
{ "corathus", "Corathus Creep" }, // 365
@@ -389,8 +390,8 @@
{ "corathusa", "Sporali Caverns" }, // 366
{ "corathusb", "Corathus Lair" }, // 367
{ "nektulosa", "Shadowed Grove" }, // 368
-{ "arcstone", "Arcstone" }, // 369
-{ "relic", "Relic" }, // 370
+{ "arcstone", "Arcstone, Isle of Spirits" }, // 369
+{ "relic", "Relic, the Artifact City" }, // 370
{ "skylance", "Skylance" }, // 371
{ "devastation", "The Devastation" }, // 372
{ "devastationa", "The Seething Wall" }, // 373
@@ -412,8 +413,8 @@
{ "freeportcityhall", "City Hall" }, // 389
{ "freeporttheater", "Theater" }, // 390
{ "freeporthall", "Hall of Truth" }, // 391
-{ "northro", "North Ro" }, // 392
-{ "southro", "South Ro" }, // 393
+{ "northro", "North Desert of Ro" }, // 392
+{ "southro", "South Desert of Ro" }, // 393
{ "crescent", "Crescent Reach" }, // 394
{ "moors", "Blightfire Moors" }, // 395
{ "stonehive", "Stone Hive" }, // 396
@@ -428,11 +429,11 @@
{ "direwind", "Direwind Cliffs" }, // 405
{ "ashengate", "Ashengate, Reliquary of the Scale" }, // 406
{ "highpasshold", "Highpass Hold" }, // 407
-{ "commonlands", "Commonlands" }, // 408
-{ "oceanoftears", "Ocean of Tears" }, // 409
-{ "kithforest", "Kithicor Forest" }, // 410
-{ "befallenb", "Befallen" }, // 411
-{ "highpasskeep", "High Keep" }, // 412
+{ "commonlands", "The Commonlands" }, // 408
+{ "oceanoftears", "The Ocean of Tears" }, // 409
+{ "kithforest", "kithforest" }, // 410
+{ "befallenb", "befallenb" }, // 411
+{ "highpasskeep", "highpasskeep" }, // 412
{ "innothuleb", "Innothule Swamp" }, // 413
{ "toxxulia", "Toxxulia Forest" }, // 414
{ "mistythicket", "Misty Thicket" }, // 415
@@ -468,17 +469,17 @@
{ "bloodmoon", "Bloodmoon Keep" }, // 445
{ "crystallos", "Crystallos, Lair of the Awakened" }, // 446
{ "guardian", "The Mechamatic Guardian" }, // 447
-{ "steamfontmts", "Steamfont Mountains" }, // 448
+{ "steamfontmts", "The Steamfont Mountains" }, // 448
{ "cryptofshade", "Crypt of Shade" }, // 449
{ "dragonscalea", "Tinmizer's Wunderwerks" }, // 450
{ "dragonscaleb", "Deepscar's Den" }, // 451
{ "oldfieldofbone", "Field of Scale" }, // 452
{ "oldkaesoraa", "Kaesora Library" }, // 453
-{ "oldkaesorab", "Hatchery Wing" }, // 454
+{ "oldkaesorab", "Kaesora Hatchery" }, // 454
{ "oldkurn", "Kurn's Tower" }, // 455
{ "oldkithicor", "Bloody Kithicor" }, // 456
{ "oldcommons", "Old Commonlands" }, // 457
-{ "oldhighpass", "Highpass Hold" }, // 458
+{ "oldhighpass", "oldhighpass" }, // 458
{ "thevoida", "The Void" }, // 459
{ "thevoidb", "The Void" }, // 460
{ "thevoidc", "The Void" }, // 461
@@ -493,18 +494,18 @@
{ "discord", "Korafax, Home of the Riders" }, // 470
{ "discordtower", "Citadel of the Worldslayer" }, // 471
{ "oldbloodfield", "Old Bloodfields" }, // 472
-{ "precipiceofwar", "The Precipice of War" }, // 473
+{ "precipiceofwar", "Precipice of War" }, // 473
{ "olddranik", "City of Dranik" }, // 474
{ "toskirakk", "Toskirakk" }, // 475
{ "korascian", "Korascian Warrens" }, // 476
-{ "rathechamber", "Rathe Council Chambers" }, // 477
+{ "rathechamber", "Rathe Council Chamber" }, // 477
{ "oldfieldofboneb", "Field of Scale" }, // 478
-{ "crafthalls", "Ngreth's Den" }, // 479
+{ "crafthalls", "crafthalls" }, // 479
{ "brellsrest", "Brell's Rest" }, // 480
{ "fungalforest", "Fungal Forest" }, // 481
{ "underquarry", "The Underquarry" }, // 482
{ "coolingchamber", "The Cooling Chamber" }, // 483
-{ "shiningcity", "Kernagir, The Shining City" }, // 484
+{ "shiningcity", "Kernagir, the Shining City" }, // 484
{ "arthicrex", "Arthicrex" }, // 485
{ "foundation", "The Foundation" }, // 486
{ "lichencreep", "Lichen Creep" }, // 487
@@ -734,16 +735,16 @@
{ "thuledream", "Fear Itself" }, // 711
{ "neighborhood", "Sunrise Hills" }, // 712
{ "phylactery", "Miragul's Phylactery" }, // 713
-{ "phinterior3a1", "House Interior" }, // 714
-{ "phinterior1a1", "House Interior" }, // 715
-{ "phinterior3a2", "House Interior" }, // 716
-{ "phinterior3a3", "House Interior" }, // 717
-{ "phinterior1a2", "House Interior" }, // 718
-{ "phinterior1a3", "House Interior" }, // 719
-{ "phinterior1b1", "Dragon House Interior" }, // 720
+{ "phinterior3a1", "Three Room House Interior" }, // 714
+{ "phinterior1a1", "One Room House Interior" }, // 715
+{ "phinterior3a2", "Three Room House Interior" }, // 716
+{ "phinterior3a3", "Three Room House Interior" }, // 717
+{ "phinterior1a2", "One Room House Interior" }, // 718
+{ "phinterior1a3", "One Room House Interior" }, // 719
+{ "phinterior1b1", "One Room House Interior" }, // 720
{ NULL, NULL }, // 721
{ NULL, NULL }, // 722
-{ "phinterior1d1", "Dragon House Interior" }, // 723
+{ "phinterior1d1", "Hermit's Hideaway Interior" }, // 723
{ "argath", "Argath, Bastion of Illdaera" }, // 724
{ "arelis", "Valley of Lunanyn" }, // 725
{ "sarithcity", "Sarith, City of Tides" }, // 726
@@ -779,15 +780,15 @@
{ "crystalshard", "The Crystal Caverns: Fragment of Fear" }, // 756
{ "breedinggrounds", "The Breeding Grounds" }, // 757
{ "eviltree", "Evantil, the Vile Oak" }, // 758
-{ "grelleth", "Grelleth's Palace, the Chateau of Filth..." }, // 759
+{ "grelleth", "Grelleth's Palace, the Chateau of Filth" }, // 759
{ "chapterhouse", "Chapterhouse of the Fallen" }, // 760
-{ "pomischief", "The Plane of Mischief" }, // 761
-{ "burnedwoods", "The Burned Woods" }, // 762
+{ "pomischief", "pomischief" }, // 761
+{ "burnedwoods", "burnedwoods" }, // 762
{ "chelsithreborn", "Chelsith Reborn" }, // 763
{ "poshadow", "Plane of Shadow" }, // 764
{ "heartoffear", "Heart of Fear: The Threshold" }, // 765
{ "phinteriortree", "Evantil's Abode" }, // 766
-{ "interiorwalltest", "Wall Wall Wall" }, // 767
+{ "interiorwalltest", "interiorwalltest" }, // 767
{ "heartoffearb", "Heart of Fear: The Rebirth" }, // 768
{ "heartoffearc", "Heart of Fear: The Epicenter" }, // 769
{ "bixiewarfront", "Bixie Warfront" }, // 770
@@ -806,11 +807,11 @@
{ "thuliasaur", "Thuliasaur Island" }, // 783
{ "degmar", "Degmar, the Lost Castle" }, // 784
{ "tempesttemple", "Tempest Temple" }, // 785
-{ "plhpirateshipint", "Pirate Ship" }, // 786
+{ "plhpirateshipint", "The Wayward Lady" }, // 786
{ "gnomemtn", "Gnome Memorial Mountain" }, // 787
{ "drogab", "The Temple of Droga" }, // 788
{ "charasisb", "Sathir's Tomb" }, // 789
-{ "scorchedwoods", "Scorched Woods" }, // 790
+{ "scorchedwoods", "The Scorched Woods" }, // 790
{ "frontiermtnsb", "Frontier Mountains" }, // 791
{ "gorowyn", "Gorowyn" }, // 792
{ "korshaext", "Gates of Kor-Sha" }, // 793
@@ -834,16 +835,16 @@
{ NULL, NULL }, // 811
{ NULL, NULL }, // 812
{ "charasistwo", "Howling Stones" }, // 813
-{ "skyfiretwo", "Skyfire Mountains" }, // 814
+{ "skyfiretwo", "The Skyfire Mountains" }, // 814
{ "overtheretwo", "The Overthere" }, // 815
{ "veeshantwo", "Veeshan's Peak" }, // 816
{ "trialsofsmoke", "Plane of Smoke" }, // 817
{ "stratos", "Stratos: Zephyr's Flight" }, // 818
-{ "aalishai", "Aslishai: Palace of Embers" }, // 819
+{ "aalishai", "Aalishai: Palace of Embers" }, // 819
{ "empyr", "Empyr: Realms of Ash" }, // 820
{ "esianti", "Esianti: Palace of the Winds" }, // 821
{ "mearatas", "Mearatas: The Stone Demesne" }, // 822
-{ "chamberoftears", "The Chamber of Tears" }, // 823
+{ "chamberoftears", "Chamber of Tears" }, // 823
{ "eastwastestwo", "The Eastern Wastes" }, // 824
{ "frozenshadowtwo", "The Tower of Frozen Shadow" }, // 825
{ "crystaltwoa", "The Ry`Gorr Mines" }, // 826
@@ -856,14 +857,14 @@
{ "cobaltscartwo", "Cobalt Scar" }, // 833
{ "westwastestwo", "The Western Wastes" }, // 834
{ "skyshrinetwo", "Skyshrine" }, // 835
-{ "templeveeshantwo", "Temple of Veeshan" }, // 836
-{ NULL, NULL }, // 837
-{ NULL, NULL }, // 838
-{ NULL, NULL }, // 839
-{ NULL, NULL }, // 840
-{ NULL, NULL }, // 841
-{ NULL, NULL }, // 842
-{ "maidentwo", "The Maiden's Eye" }, // 843
+{ "templeveeshantwo", "The Temple of Veeshan" }, // 836
+{ "clz-winter", "Winter" }, // 837
+{ "clz-anniversary", "Anniversary" }, // 838
+{ "clz-spring", "Spring" }, // 839
+{ "clz-autumn", "Autumn" }, // 840
+{ "clz-frostfell", "Frostfell" }, // 841
+{ "clz-af", "April Fools" }, // 842
+{ "maidentwo", "Maiden's Eye" }, // 843
{ "umbraltwo", "Umbral Plains" }, // 844
{ "akhevatwo", "Ka Vethan" }, // 845
{ "vexthaltwo", "Vex Thal" }, // 846
@@ -886,10 +887,10 @@
{ "moorsofnokk", "Moors of Nokk" }, // 863
{ "unkemptwoods", "Unkempt Woods" }, // 864
{ "timorousfalls", "Timorous Falls" }, // 865
-{ NULL, NULL }, // 866
+{ "clz-tempest", "Tempest Festival" }, // 866
{ NULL, NULL }, // 867
{ NULL, NULL }, // 868
-{ NULL, NULL }, // 869
+{ "anniversarytower", "Tides of Time" }, // 869
{ NULL, NULL }, // 870
{ NULL, NULL }, // 871
{ NULL, NULL }, // 872
@@ -896,7 +897,7 @@
{ NULL, NULL }, // 873
{ NULL, NULL }, // 874
{ NULL, NULL }, // 875
-{ NULL, NULL }, // 876
+{ "clz-25anniversary", "clz-25anniversary" }, // 876
{ NULL, NULL }, // 877
{ NULL, NULL }, // 878
{ NULL, NULL }, // 879
@@ -1016,7 +1017,7 @@
{ NULL, NULL }, // 993
{ NULL, NULL }, // 994
{ NULL, NULL }, // 995
-{ "arttest", "Art Testing Domain" }, // 996
+{ "arttest", "The Pit of Rathpher" }, // 996
{ NULL, NULL }, // 997
{ "fhalls", "The Forgotten Halls" }, // 998
-{ "apprentice", "Designer Apprentice" }, // 999
+{ "apprentice", "apprentice" }, // 999
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-08-26 22:40:01
|
Revision: 1546
http://sourceforge.net/p/seq/svn/1546
Author: cn187
Date: 2024-08-26 22:40:00 +0000 (Mon, 26 Aug 2024)
Log Message:
-----------
Add ida helper script for generating zones.h
Added Paths:
-----------
showeq/branches/cn187_devel/scripts/ida/
showeq/branches/cn187_devel/scripts/ida/gen_zones_h.py
Added: showeq/branches/cn187_devel/scripts/ida/gen_zones_h.py
===================================================================
--- showeq/branches/cn187_devel/scripts/ida/gen_zones_h.py (rev 0)
+++ showeq/branches/cn187_devel/scripts/ida/gen_zones_h.py 2024-08-26 22:40:00 UTC (rev 1546)
@@ -0,0 +1,294 @@
+
+import datetime
+import sys
+import idautils
+
+""" Generate ShowEQ's zones.h from eggame.exe and Resources/ZoneNames.txt
+
+ NOTE: Requires IDA and python3
+
+ To use this script:
+ 1. Open eqgame.exe in IDA, and let IDA complete its analysis.
+ 2. Select View->Recent Scripts
+ 3. In the Recent Scripts tab, press Insert, and browse to the location
+ of this script. Select this script and click "Open".
+ 4. An entry for this script now appears in the list of scripts.
+ Double-click it to load it.
+ 5. (optional) right click in the output window and select "Clear". This
+ will reduce the extra stuff you have to delete when you copy/paste
+ 6. At the idapython command line, run
+
+ dump_zones('/path/to/ZoneNames.txt')
+
+ Note: ZoneNames.txt is found in your EQ client directory, under the
+ Resources subdirectory. If you want you can copy it to somewhere
+ convenient (e.g., /tmp), then pass that path to dump_zones.
+ 7. Create a new file (e.g. zones.h.new)
+ 8. Right-click in the output window, select "Select All", then "Copy".
+ 9. Paste into the file you created in step 7
+ 10. There will be a couple of lines (or more if you skipped step 5) at
+ the top of the file (before the start of the block comment containing
+ the copyright/license info) that need to be deleted. Basically,
+ delete everything before the line consisting of "/*"
+ 11. Save the file
+ 12. As a sanity check, diff with zones.h to see what changed. This is
+ important in case the way the code works changed, or there's a bug
+ in the script - we don't want to commit an empty or otherwise bad
+ zones file.
+ 13. If everything looks good, rename your new file to zones.h and replace
+ the existing zones.h.
+ 14. Do a test compile to make sure everything is good.
+ 15. Commit changes.
+"""
+
+def find_string_refs_to(haystack, needle):
+ refs = set()
+ for s in haystack:
+ if str(s) == needle:
+ for x in idautils.XrefsTo(s.ea):
+ refs.add(x.to)
+ return refs
+
+def find_string_refs_from(haystack, needle):
+ refs = set()
+ for s in haystack:
+ if str(s) == needle:
+ for x in idautils.XrefsTo(s.ea):
+ refs.add(x.frm)
+ return refs
+
+
+def get_worlddata_start(ida_strings=None):
+
+ if not ida_strings:
+ strings = idautils.Strings(True)
+ else:
+ strings = ida_strings
+
+ key_string = 'EQWorldData::EQWorldData'
+
+ eas = find_string_refs_from(strings, key_string)
+
+ if len(eas) == 1:
+ ea = eas.pop()
+ return ea
+ else:
+ return None
+
+
+# NOTE we could grab the addresses of EQWorldData::EQWorldData and Unknown Zone
+# and use those for addr boundaries when looking for zone string loads
+# (if there are too many conflicting loads in amongst the ones we want)
+
+# NOTE also, if we have to, we could determine exact reg numbers based on known
+# zone names, with the assumption that the compiler will reuse the same registers
+# throughout the function
+def get_next_zone_loaded(cur_ea, end_ea, rnum=None):
+ ea = cur_ea
+
+ while ea < end_ea:
+ mnem = idc.print_insn_mnem(ea)
+ if mnem == "lea":
+ if idc.get_operand_type(ea, 0) != o_reg:
+ ea = idc.next_head(ea)
+ continue
+ if rnum is not None and idc.get_operand_value(ea, 0) != rnum:
+ ea = idc.next_head(ea)
+ continue
+ if idc.get_operand_type(ea, 1) != o_mem:
+ ea = idc.next_head(ea)
+ continue
+ string = idc.get_strlit_contents(idc.get_operand_value(ea, 1))
+ if not string:
+ ea = idc.next_head(ea)
+ continue
+ return ea, idc.get_strlit_contents(idc.get_operand_value(ea, 1)).decode('ascii')
+ ea = idc.next_head(ea)
+
+ return ea, None
+
+
+
+def get_next_file_index(cur_ea, end_ea, rnum=None):
+ ea = cur_ea
+
+ offset = 0
+ backtrack = False
+
+ while ea < end_ea:
+ mnem = idc.print_insn_mnem(ea)
+ if mnem == "lea":
+ if idc.get_operand_type(ea, 0) != o_reg:
+ ea = idc.next_head(ea)
+ continue
+ if rnum is not None and idc.get_operand_value(ea, 0) != rnum:
+ ea = idc.next_head(ea)
+ continue
+ if idc.get_operand_type(ea, 1) != o_displ:
+ ea = idc.next_head(ea)
+ continue
+ backtrack = True
+ break
+ elif mnem == "mov":
+ if idc.get_operand_type(ea, 0) != o_reg:
+ ea = idc.next_head(ea)
+ continue
+ if rnum is not None and idc.get_operand_value(ea, 0) != rnum:
+ ea = idc.next_head(ea)
+ continue
+ if idc.get_operand_type(ea, 1) != o_imm:
+ ea = idc.next_head(ea)
+ continue
+ return ea, idc.get_operand_value(ea, 1)
+ ea = idc.next_head(ea)
+
+ if backtrack:
+ prev = idc.prev_head(ea)
+ mnem = idc.print_insn_mnem(prev)
+ if mnem == "xor" and \
+ idc.get_operand_type(prev, 0) == o_reg and \
+ idc.get_operand_type(prev,1) == o_reg:
+ return ea, idc.get_operand_value(ea, 1)
+
+ if mnem != "mov" or \
+ idc.get_operand_type(prev, 0) != o_reg or\
+ idc.get_operand_type(prev, 1) != o_imm:
+ sys.stderr.write("Backtrack failed at " + hex(prev) + '\n')
+ return ea, -1
+
+ offset = idc.get_operand_value(prev, 1)
+
+ return ea, idc.get_operand_value(ea, 1) + offset
+
+ return ea, -1
+
+def find_qeynos_load(cur_ea, end_ea):
+ ea = cur_ea
+
+ while ea < end_ea:
+ ea, shortzone = get_next_zone_loaded(ea, end_ea)
+ if shortzone != 'qeynos':
+ ea = idc.next_head(ea)
+ continue
+
+ rnum = idc.get_operand_value(ea, 0)
+
+ return ea, shortzone, rnum
+
+def find_qeynos_index(cur_ea, end_ea):
+ ea = cur_ea
+
+ while ea < end_ea:
+ ea, idx = get_next_file_index(ea, end_ea)
+ if idx != 1:
+ ea = idc.next_head(ea)
+ continue
+
+ rnum = idc.get_operand_value(ea, 0)
+
+ return ea, idx, rnum
+
+
+
+
+# if you know the address where "EQWorldData::EQWorldData" is loaded, you can
+# pass it as the start_ea
+def dump_zones(zonenames_path=None, ida_strings=None, start_ea=None):
+
+ if not zonenames_path:
+ sys.stderr.write("Path to ZoneNames.txt is required\n")
+ return
+
+ if not ida_strings:
+ strings = idautils.Strings(True)
+ else:
+ strings = ida_strings
+
+ if not start_ea:
+ start_ea = get_worlddata_start(strings)
+ if not start_ea:
+ sys.stderr.write("Could not find unique start ea. Found: " + eas + '\n')
+ return
+
+ wd_func = ida_funcs.get_func(start_ea)
+ func_end = wd_func.end_ea
+
+ cur_ea, shortzone, zone_regnum = find_qeynos_load(idc.next_head(start_ea), func_end)
+ if not cur_ea:
+ sys.stderr.write("Could not find first zone load\n")
+ return
+
+ cur_ea, idx, idx_regnum = find_qeynos_index(idc.next_head(start_ea), func_end)
+ if not cur_ea:
+ sys.stderr.write("Could not find first load index\n")
+ return
+
+ zonenames = {}
+ zones = {}
+
+ with open(zonenames_path, 'r') as f:
+ for line in f.readlines():
+ index, zonename, _, _ = line.split('^')
+ if index == "ZONE":
+ continue
+ zonenames[int(index)] = zonename.strip()
+
+ #print(idx, shortzone, zonenames[idx])
+ zones[idx] = (idx, shortzone, zonenames[idx])
+
+ while cur_ea < func_end:
+ cur_ea, shortzone = get_next_zone_loaded(cur_ea, func_end, zone_regnum)
+ if not shortzone:
+ break
+
+ cur_ea = idc.next_head(cur_ea)
+ cur_ea, idx = get_next_file_index(cur_ea, func_end, idx_regnum)
+ if idx < 0:
+ break;
+
+ if idx not in zonenames:
+ cur_ea = idc.next_head(cur_ea)
+ #sys.stderr.write("Did not find index {} for zone {} in ZoneNames.txt\n".format(idx, shortzone))
+ zones[idx] = (idx, shortzone, shortzone)
+ else:
+ #print(idx, shortzone, zonenames[idx])
+ zones[idx] = (idx, shortzone, zonenames[idx])
+
+ cur_ea = idc.next_head(cur_ea)
+
+
+ keys = sorted(zones.keys())
+ last_idx = keys[-1]
+ current_year=datetime.datetime.now().year
+ print(f"""/*
+ * zones.h
+ * Copyright 2003-{current_year} by the respective ShowEQ Developers
+ *
+ * This file is part of ShowEQ.
+ * http://www.sourceforge.net/projects/seq
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/* Maps zoneId numbers to strings, used in util.cpp */""")
+
+ for i in range(0, last_idx+1):
+ if i in zones:
+ idx, shortzone, longzone = zones[i]
+ print('{{ "{}", "{}" }}, // {}'.format(shortzone, longzone, idx))
+ else:
+ print('{{ NULL, NULL }}, // {}'.format(i))
+
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-08-26 22:39:34
|
Revision: 1545
http://sourceforge.net/p/seq/svn/1545
Author: cn187
Date: 2024-08-26 22:39:31 +0000 (Mon, 26 Aug 2024)
Log Message:
-----------
Regenerate zones.h from current client files
Modified Paths:
--------------
showeq/trunk/src/zones.h
Modified: showeq/trunk/src/zones.h
===================================================================
--- showeq/trunk/src/zones.h 2024-08-26 22:39:24 UTC (rev 1544)
+++ showeq/trunk/src/zones.h 2024-08-26 22:39:31 UTC (rev 1545)
@@ -1,6 +1,6 @@
/*
* zones.h
- * Copyright 2003-2009, 2011-2012, 2014-2015, 2017-2019 by the respective ShowEQ Developers
+ * Copyright 2003-2024 by the respective ShowEQ Developers
*
* This file is part of ShowEQ.
* http://www.sourceforge.net/projects/seq
@@ -19,6 +19,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+
/* Maps zoneId numbers to strings, used in util.cpp */
{ NULL, NULL }, // 0
{ "qeynos", "South Qeynos" }, // 1
@@ -31,14 +32,14 @@
{ "freportn", "North Freeport" }, // 8
{ "freportw", "West Freeport" }, // 9
{ "freporte", "East Freeport" }, // 10
-{ "runnyeye", "Clan Runnyeye" }, // 11
-{ "qey2hh1", "West Karana" }, // 12
-{ "northkarana", "North Karana" }, // 13
-{ "southkarana", "South Karana" }, // 14
-{ "eastkarana", "East Karana" }, // 15
-{ "beholder", "Gorge of King Xorbb" }, // 16
-{ "blackburrow", "BlackBurrow" }, // 17
-{ "paw", "Infected Paw" }, // 18
+{ "runnyeye", "The Liberated Citadel of Runnyeye" }, // 11
+{ "qey2hh1", "The Western Plains of Karana" }, // 12
+{ "northkarana", "The Northern Plains of Karana" }, // 13
+{ "southkarana", "The Southern Plains of Karana" }, // 14
+{ "eastkarana", "The Eastern Plains of Karana" }, // 15
+{ "beholder", "The Gorge of King Xorbb" }, // 16
+{ "blackburrow", "Blackburrow" }, // 17
+{ "paw", "The Lair of the Splitpaw" }, // 18
{ "rivervale", "Rivervale" }, // 19
{ "kithicor", "Kithicor Forest" }, // 20
{ "commons", "West Commonlands" }, // 21
@@ -47,18 +48,18 @@
{ "erudnext", "Erudin" }, // 24
{ "nektulos", "Nektulos Forest" }, // 25
{ "cshome", "Sunset Home" }, // 26
-{ "lavastorm", "Lavastorm Mountains" }, // 27
-{ "nektropos", "Nektropos" }, // 28
+{ "lavastorm", "The Lavastorm Mountains" }, // 27
+{ "nektropos", "nektropos" }, // 28
{ "halas", "Halas" }, // 29
{ "everfrost", "Everfrost Peaks" }, // 30
{ "soldunga", "Solusek's Eye" }, // 31
{ "soldungb", "Nagafen's Lair" }, // 32
-{ "misty", "Misty Thicket" }, // 33
-{ "nro", "North Ro" }, // 34
-{ "sro", "South Ro" }, // 35
+{ "misty", "misty" }, // 33
+{ "nro", "The Northern Desert of Ro" }, // 34
+{ "sro", "The Southern Desert of Ro" }, // 35
{ "befallen", "Befallen" }, // 36
-{ "oasis", "Oasis of Marr" }, // 37
-{ "tox", "Toxxulia Forest" }, // 38
+{ "oasis", "The Oasis of Marr" }, // 37
+{ "tox", "tox" }, // 38
{ "hole", "The Ruins of Old Paineel" }, // 39
{ "neriaka", "Neriak - Foreign Quarter" }, // 40
{ "neriakb", "Neriak - Commons" }, // 41
@@ -65,53 +66,53 @@
{ "neriakc", "Neriak - Third Gate" }, // 42
{ "neriakd", "Neriak - Fourth Gate" }, // 43
{ "najena", "Najena" }, // 44
-{ "qcat", "Qeynos Catacombs" }, // 45
-{ "innothule", "Innothule Swamp" }, // 46
+{ "qcat", "The Qeynos Aqueduct System" }, // 45
+{ "innothule", "innothule" }, // 46
{ "feerrott", "The Feerrott" }, // 47
-{ "cazicthule", "Cazic-Thule" }, // 48
+{ "cazicthule", "Temple of Cazic-Thule" }, // 48
{ "oggok", "Oggok" }, // 49
-{ "rathemtn", "Mountains of Rathe" }, // 50
+{ "rathemtn", "The Rathe Mountains" }, // 50
{ "lakerathe", "Lake Rathetear" }, // 51
{ "grobb", "Grobb" }, // 52
-{ "aviak", "Aviak Village" }, // 53
-{ "gfaydark", "Greater Faydark" }, // 54
+{ "aviak", "Aviak" }, // 53
+{ "gfaydark", "The Greater Faydark" }, // 54
{ "akanon", "Ak'Anon" }, // 55
-{ "steamfont", "Steamfont Mountains" }, // 56
-{ "lfaydark", "Lesser Faydark" }, // 57
+{ "steamfont", "steamfont" }, // 56
+{ "lfaydark", "The Lesser Faydark" }, // 57
{ "crushbone", "Clan Crushbone" }, // 58
-{ "mistmoore", "Castle Mistmoore" }, // 59
-{ "kaladima", "Kaladim" }, // 60
-{ "felwithea", "Felwithe" }, // 61
-{ "felwitheb", "Felwithe" }, // 62
-{ "unrest", "Estate of Unrest" }, // 63
+{ "mistmoore", "The Castle of Mistmoore" }, // 59
+{ "kaladima", "South Kaladim" }, // 60
+{ "felwithea", "Northern Felwithe" }, // 61
+{ "felwitheb", "Southern Felwithe" }, // 62
+{ "unrest", "The Estate of Unrest" }, // 63
{ "kedge", "Kedge Keep" }, // 64
-{ "guktop", "Upper Guk" }, // 65
-{ "gukbottom", "Lower Guk" }, // 66
-{ "kaladimb", "Kaladim" }, // 67
+{ "guktop", "The City of Guk" }, // 65
+{ "gukbottom", "The Ruins of Old Guk" }, // 66
+{ "kaladimb", "North Kaladim" }, // 67
{ "butcher", "Butcherblock Mountains" }, // 68
-{ "oot", "Ocean of Tears" }, // 69
+{ "oot", "The Ocean of Tears" }, // 69
{ "cauldron", "Dagnor's Cauldron" }, // 70
-{ "airplane", "Plane of Sky" }, // 71
-{ "fearplane", "Plane of Fear" }, // 72
+{ "airplane", "The Plane of Sky" }, // 71
+{ "fearplane", "The Plane of Fear" }, // 72
{ "permafrost", "Permafrost Keep" }, // 73
-{ "kerraridge", "Kerra Isle" }, // 74
+{ "kerraridge", "kerraridge" }, // 74
{ "paineel", "Paineel" }, // 75
{ "hateplane", "The Plane of Hate" }, // 76
{ "arena", "The Arena" }, // 77
{ "fieldofbone", "The Field of Bone" }, // 78
-{ "warslikswood", "Warsliks Woods" }, // 79
-{ "soltemple", "Temple of Solusek Ro" }, // 80
-{ "droga", "Temple of Droga" }, // 81
-{ "cabwest", "West Cabilis" }, // 82
-{ "swampofnohope", "Swamp of No Hope" }, // 83
+{ "warslikswood", "The Warsliks Woods" }, // 79
+{ "soltemple", "The Temple of Solusek Ro" }, // 80
+{ "droga", "The Temple of Droga" }, // 81
+{ "cabwest", "Cabilis West" }, // 82
+{ "swampofnohope", "The Swamp of No Hope" }, // 83
{ "firiona", "Firiona Vie" }, // 84
{ "lakeofillomen", "Lake of Ill Omen" }, // 85
-{ "dreadlands", "Dreadlands" }, // 86
-{ "burningwood", "Burning Woods" }, // 87
+{ "dreadlands", "The Dreadlands" }, // 86
+{ "burningwood", "The Burning Woods" }, // 87
{ "kaesora", "Kaesora" }, // 88
-{ "sebilis", "Old Sebilis" }, // 89
-{ "citymist", "City of Mist" }, // 90
-{ "skyfire", "Skyfire Mountains" }, // 91
+{ "sebilis", "The Ruins of Sebilis" }, // 89
+{ "citymist", "The City of Mist" }, // 90
+{ "skyfire", "The Skyfire Mountains" }, // 91
{ "frontiermtns", "Frontier Mountains" }, // 92
{ "overthere", "The Overthere" }, // 93
{ "emeraldjungle", "The Emerald Jungle" }, // 94
@@ -120,37 +121,37 @@
{ "kurn", "Kurn's Tower" }, // 97
{ "erudsxing", "Erud's Crossing" }, // 98
{ NULL, NULL }, // 99
-{ "stonebrunt", "Stonebrunt Mountains" }, // 100
+{ "stonebrunt", "The Stonebrunt Mountains" }, // 100
{ "warrens", "The Warrens" }, // 101
{ "karnor", "Karnor's Castle" }, // 102
{ "chardok", "Chardok" }, // 103
-{ "dalnir", "Dalnir" }, // 104
+{ "dalnir", "The Crypt of Dalnir" }, // 104
{ "charasis", "Howling Stones" }, // 105
-{ "cabeast", "East Cabilis" }, // 106
-{ "nurga", "Mines of Nurga" }, // 107
+{ "cabeast", "Cabilis East" }, // 106
+{ "nurga", "The Mines of Nurga" }, // 107
{ "veeshan", "Veeshan's Peak" }, // 108
{ "veksar", "Veksar" }, // 109
-{ "iceclad", "Iceclad Ocean" }, // 110
-{ "frozenshadow", "Tower of Frozen Shadow" }, // 111
+{ "iceclad", "The Iceclad Ocean" }, // 110
+{ "frozenshadow", "The Tower of Frozen Shadow" }, // 111
{ "velketor", "Velketor's Labyrinth" }, // 112
{ "kael", "Kael Drakkel" }, // 113
{ "skyshrine", "Skyshrine" }, // 114
-{ "thurgadina", "Thurgadin" }, // 115
+{ "thurgadina", "The City of Thurgadin" }, // 115
{ "eastwastes", "Eastern Wastes" }, // 116
{ "cobaltscar", "Cobalt Scar" }, // 117
-{ "greatdivide", "Great Divide" }, // 118
+{ "greatdivide", "The Great Divide" }, // 118
{ "wakening", "The Wakening Land" }, // 119
-{ "westwastes", "Western Wastes" }, // 120
+{ "westwastes", "The Western Wastes" }, // 120
{ "crystal", "Crystal Caverns" }, // 121
{ NULL, NULL }, // 122
{ "necropolis", "Dragon Necropolis" }, // 123
-{ "templeveeshan", "Temple of Veeshan" }, // 124
+{ "templeveeshan", "The Temple of Veeshan" }, // 124
{ "sirens", "Siren's Grotto" }, // 125
-{ "mischiefplane", "Plane of Mischief" }, // 126
-{ "growthplane", "Plane of Growth" }, // 127
-{ "sleeper", "Sleeper's Tomb" }, // 128
+{ "mischiefplane", "The Plane of Mischief" }, // 126
+{ "growthplane", "The Plane of Growth" }, // 127
+{ "sleeper", "The Sleeper's Tomb" }, // 128
{ "thurgadinb", "Icewell Keep" }, // 129
-{ "erudsxing2", "Marauder's Mire" }, // 130
+{ "erudsxing2", "erudsxing2" }, // 130
{ NULL, NULL }, // 131
{ NULL, NULL }, // 132
{ NULL, NULL }, // 133
@@ -177,7 +178,7 @@
{ "acrylia", "Acrylia Caverns" }, // 154
{ "sharvahl", "Shar Vahl" }, // 155
{ "paludal", "Paludal Caverns" }, // 156
-{ "fungusgrove", "Fungus Grove" }, // 157
+{ "fungusgrove", "The Fungus Grove" }, // 157
{ "vexthal", "Vex Thal" }, // 158
{ "sseru", "Sanctus Seru" }, // 159
{ "katta", "Katta Castellum" }, // 160
@@ -199,18 +200,18 @@
{ "umbral", "The Umbral Plains" }, // 176
{ NULL, NULL }, // 177
{ NULL, NULL }, // 178
-{ "akheva", "Akheva Ruins" }, // 179
-{ "arena2", "The Arena" }, // 180
-{ "jaggedpine", "The Jaggedpine Forest" }, // 181
+{ "akheva", "The Akheva Ruins" }, // 179
+{ "arena2", "arena2" }, // 180
+{ "jaggedpine", "Jaggedpine Forest" }, // 181
{ "nedaria", "Nedaria's Landing" }, // 182
-{ "tutorial", "Tutorial Zone" }, // 183
-{ "load", "Loading" }, // 184
-{ "load2", "Loading" }, // 185
+{ "tutorial", "tutorial" }, // 183
+{ "load", "load" }, // 184
+{ "load2", "load2" }, // 185
{ "hateplaneb", "The Plane of Hate" }, // 186
{ "shadowrest", "Shadowrest" }, // 187
-{ "tutoriala", "The Mines of Gloomingdeep" }, // 188
-{ "tutorialb", "The Mines of Gloomingdeep" }, // 189
-{ "clz", "Loading" }, // 190
+{ "tutoriala", "tutoriala" }, // 188
+{ "tutorialb", "tutorialb" }, // 189
+{ "clz", "clz" }, // 190
{ NULL, NULL }, // 191
{ NULL, NULL }, // 192
{ NULL, NULL }, // 193
@@ -221,115 +222,115 @@
{ NULL, NULL }, // 198
{ NULL, NULL }, // 199
{ "codecay", "Ruins of Lxanvom" }, // 200
-{ "pojustice", "Plane of Justice" }, // 201
-{ "poknowledge", "Plane of Knowledge" }, // 202
-{ "potranquility", "Plane of Tranquility" }, // 203
-{ "ponightmare", "Plane of Nightmare" }, // 204
-{ "podisease", "Plane of Disease" }, // 205
-{ "poinnovation", "Plane of Innovation" }, // 206
-{ "potorment", "Plane of Torment" }, // 207
-{ "povalor", "Plane of Valor" }, // 208
-{ "bothunder", "Torden, The Bastion of Thunder" }, // 209
-{ "postorms", "Plane of Storms" }, // 210
-{ "hohonora", "Halls of Honor" }, // 211
-{ "solrotower", "Solusek Ro's Tower" }, // 212
-{ "powar", "Plane of War" }, // 213
-{ "potactics", "Drunder, Fortress of Zek" }, // 214
+{ "pojustice", "The Plane of Justice" }, // 201
+{ "poknowledge", "The Plane of Knowledge" }, // 202
+{ "potranquility", "The Plane of Tranquility" }, // 203
+{ "ponightmare", "The Plane of Nightmare" }, // 204
+{ "podisease", "The Plane of Disease" }, // 205
+{ "poinnovation", "The Plane of Innovation" }, // 206
+{ "potorment", "Torment, the Plane of Pain" }, // 207
+{ "povalor", "The Plane of Valor" }, // 208
+{ "bothunder", "Torden, the Bastion of Thunder" }, // 209
+{ "postorms", "The Plane of Storms" }, // 210
+{ "hohonora", "The Halls of Honor" }, // 211
+{ "solrotower", "The Tower of Solusek Ro" }, // 212
+{ "powar", "The Plane of War" }, // 213
+{ "potactics", "Drunder, the Fortress of Zek" }, // 214
{ "poair", "Eryslai, the Kingdom of Wind" }, // 215
-{ "powater", "Reef of Coirnav" }, // 216
-{ "pofire", "Doomfire, The Burning Lands" }, // 217
+{ "powater", "The Reef of Coirnav" }, // 216
+{ "pofire", "Doomfire, the Burning Lands" }, // 217
{ "poeartha", "Vegarlson, The Earthen Badlands" }, // 218
-{ "potimea", "Plane of Time" }, // 219
-{ "hohonorb", "Temple of Marr" }, // 220
-{ "nightmareb", "Lair of Terris Thule" }, // 221
-{ "poearthb", "Stronghold of the Twelve" }, // 222
-{ "potimeb", "Plane of Time" }, // 223
-{ "gunthak", "Gulf of Gunthak" }, // 224
+{ "potimea", "The Plane of Time" }, // 219
+{ "hohonorb", "The Temple of Marr" }, // 220
+{ "nightmareb", "The Lair of Terris-Thule" }, // 221
+{ "poearthb", "Ragrax, Stronghold of the Twelve" }, // 222
+{ "potimeb", "The Prison of the Forsaken" }, // 223
+{ "gunthak", "The Gulf of Gunthak" }, // 224
{ "dulak", "Dulak's Harbor" }, // 225
-{ "torgiran", "Torgiran Mines" }, // 226
-{ "nadox", "Crypt of Nadox" }, // 227
-{ "hatesfury", "Hate's Fury, The Scorned Maiden" }, // 228
-{ "guka", "The Cauldron of Lost Souls" }, // 229
-{ "ruja", "The Bloodied Quarries" }, // 230
-{ "taka", "The Sunken Library" }, // 231
-{ "mira", "The Silent Gallery" }, // 232
-{ "mmca", "The Forlorn Caverns" }, // 233
-{ "gukb", "The Drowning Crypt" }, // 234
-{ "rujb", "The Halls of War" }, // 235
-{ "takb", "The Shifting Tower" }, // 236
-{ "mirb", "The Maw of the Menagerie" }, // 237
-{ "mmcb", "The Dreary Grotto" }, // 238
-{ "gukc", "The Ancient Aqueducts" }, // 239
-{ "rujc", "The Wind Bridges" }, // 240
-{ "takc", "The Fading Temple" }, // 241
-{ "mirc", "The Spider Den" }, // 242
-{ "mmcc", "The Asylum of Invoked Stone" }, // 243
-{ "gukd", "The Mushroom Grove" }, // 244
-{ "rujd", "The Gladiator Pits" }, // 245
-{ "takd", "The Royal Observatory" }, // 246
-{ "mird", "The Hushed Banquet" }, // 247
-{ "mmcd", "The Chambers of Eternal Affliction" }, // 248
-{ "guke", "The Foreboding Prison" }, // 249
-{ "ruje", "The Drudge Hollows" }, // 250
-{ "take", "The River of Recollection" }, // 251
-{ "mire", "The Frosted Halls" }, // 252
-{ "mmce", "The Sepulcher of the Damned" }, // 253
-{ "gukf", "The Chapel of the Witnesses" }, // 254
-{ "rujf", "The Fortified Lair of the Taskmasters" }, // 255
-{ "takf", "The Sandfall Corridors" }, // 256
-{ "mirf", "The Forgotten Wastes" }, // 257
-{ "mmcf", "The Ritualistic Summoning Grounds" }, // 258
-{ "gukg", "The Root Garden" }, // 259
-{ "rujg", "The Hidden Vale" }, // 260
-{ "takg", "The Balancing Chamber" }, // 261
-{ "mirg", "The Heart of the Menagerie" }, // 262
-{ "mmcg", "The Cesspits of Putrescence" }, // 263
-{ "gukh", "The Accursed Sanctuary" }, // 264
-{ "rujh", "The Blazing Forge" }, // 265
-{ "takh", "The Sweeping Tides" }, // 266
-{ "mirh", "The Morbid Laboratory" }, // 267
-{ "mmch", "The Aisles of Blood" }, // 268
-{ "ruji", "The Arena of Chance" }, // 269
-{ "taki", "The Antiquated Palace" }, // 270
-{ "miri", "The Theater of Imprisoned Horrors" }, // 271
-{ "mmci", "The Halls of Sanguinary Rites" }, // 272
-{ "rujj", "The Barracks of War" }, // 273
-{ "takj", "The Prismatic Corridors" }, // 274
-{ "mirj", "The Grand Library" }, // 275
-{ "mmcj", "The Infernal Sanctuary" }, // 276
-{ "chardokb", "The Halls of Betrayal" }, // 277
+{ "torgiran", "The Torgiran Mines" }, // 226
+{ "nadox", "The Crypt of Nadox" }, // 227
+{ "hatesfury", "Hate's Fury" }, // 228
+{ "guka", "Deepest Guk: Cauldron of Lost Souls" }, // 229
+{ "ruja", "The Rujarkian Hills: Bloodied Quarries" }, // 230
+{ "taka", "Takish-Hiz: Sunken Library" }, // 231
+{ "mira", "Miragul's Menagerie: Silent Gallery" }, // 232
+{ "mmca", "Mistmoore's Catacombs: Forlorn Caverns" }, // 233
+{ "gukb", "Deepest Guk: Drowning Crypt" }, // 234
+{ "rujb", "The Rujarkian Hills: Halls of War" }, // 235
+{ "takb", "Takish-Hiz: Shifting Tower" }, // 236
+{ "mirb", "Miragul's Menagerie: Maw of the Menagerie" }, // 237
+{ "mmcb", "Mistmoore's Catacombs: Dreary Grotto" }, // 238
+{ "gukc", "Deepest Guk: Ancient Aqueducts" }, // 239
+{ "rujc", "The Rujarkian Hills: Wind Bridges" }, // 240
+{ "takc", "Takish-Hiz: Fading Temple" }, // 241
+{ "mirc", "Miragul's Menagerie: Spider Den" }, // 242
+{ "mmcc", "Mistmoore's Catacombs: Asylum of Invoked Stone" }, // 243
+{ "gukd", "Deepest Guk: Mushroom Grove" }, // 244
+{ "rujd", "The Rujarkian Hills: Gladiator Pits" }, // 245
+{ "takd", "Takish-Hiz: Royal Observatory" }, // 246
+{ "mird", "Miragul's Menagerie: Hushed Banquet" }, // 247
+{ "mmcd", "Mistmoore's Catacombs: Chambers of Eternal Affliction" }, // 248
+{ "guke", "Deepest Guk: Foreboding Prison" }, // 249
+{ "ruje", "The Rujarkian Hills: Drudge Hollows" }, // 250
+{ "take", "Takish-Hiz: River of Recollection" }, // 251
+{ "mire", "Miragul's Menagerie: Frosted Halls" }, // 252
+{ "mmce", "Mistmoore's Catacombs: Sepulcher of the Damned" }, // 253
+{ "gukf", "Deepest Guk: Chapel of the Witnesses" }, // 254
+{ "rujf", "The Rujarkian Hills: Fortified Lair of the Taskmasters" }, // 255
+{ "takf", "Takish-Hiz: Sandfall Corridors" }, // 256
+{ "mirf", "Miragul's Menagerie: Forgotten Wastes" }, // 257
+{ "mmcf", "Mistmoore's Catacombs: Ritualistic Summoning Grounds" }, // 258
+{ "gukg", "Deepest Guk: Root Garden" }, // 259
+{ "rujg", "The Rujarkian Hills: Hidden Vale" }, // 260
+{ "takg", "Takish-Hiz: Balancing Chamber" }, // 261
+{ "mirg", "Miragul's Menagerie: Heart of the Menagerie" }, // 262
+{ "mmcg", "Mistmoore's Catacombs: Cesspits of Putrescence" }, // 263
+{ "gukh", "Deepest Guk: Accursed Sanctuary" }, // 264
+{ "rujh", "The Rujarkian Hills: Blazing Forge" }, // 265
+{ "takh", "Takish-Hiz: Sweeping Tides" }, // 266
+{ "mirh", "Miragul's Menagerie: Morbid Laboratory" }, // 267
+{ "mmch", "Mistmoore's Catacombs: Aisles of Blood" }, // 268
+{ "ruji", "The Rujarkian Hills: Arena of Chance" }, // 269
+{ "taki", "Takish-Hiz: Antiquated Palace" }, // 270
+{ "miri", "Miragul's Menagerie: Theater of Imprisoned Horrors" }, // 271
+{ "mmci", "Mistmoore's Catacombs: Halls of Sanguinary Rites" }, // 272
+{ "rujj", "The Rujarkian Hills: Barracks of War" }, // 273
+{ "takj", "Takish-Hiz: Prismatic Corridors" }, // 274
+{ "mirj", "Miragul's Menagerie: Grand Library" }, // 275
+{ "mmcj", "Mistmoore's Catacombs: Infernal Sanctuary" }, // 276
+{ "chardokb", "Chardok: The Halls of Betrayal" }, // 277
{ "soldungc", "The Caverns of Exile" }, // 278
-{ "abysmal", "Abysmal Sea" }, // 279
-{ "natimbi", "Natimbi, The Broken Shores" }, // 280
+{ "abysmal", "The Abysmal Sea" }, // 279
+{ "natimbi", "Natimbi, the Broken Shores" }, // 280
{ "qinimi", "Qinimi, Court of Nihilia" }, // 281
{ "riwwi", "Riwwi, Coliseum of Games" }, // 282
{ "barindu", "Barindu, Hanging Gardens" }, // 283
{ "ferubi", "Ferubi, Forgotten Temple of Taelosia" }, // 284
{ "snpool", "Sewers of Nihilia, Pool of Sludge" }, // 285
-{ "snlair", "Sewers of Nihilia, Lair of Trapped Ones..." }, // 286
+{ "snlair", "Sewers of Nihilia, Lair of Trapped Ones" }, // 286
{ "snplant", "Sewers of Nihilia, Purifying Plant" }, // 287
-{ "sncrematory", "Sewers of Nihilia, the Crematory" }, // 288
+{ "sncrematory", "Sewers of Nihilia, Emanating Crematory" }, // 288
{ "tipt", "Tipt, Treacherous Crags" }, // 289
-{ "vxed", "Vxed, The Crumbling Caverns" }, // 290
+{ "vxed", "Vxed, the Crumbling Caverns" }, // 290
{ "yxtta", "Yxtta, Pulpit of Exiles" }, // 291
-{ "uqua", "Uqua, The Ocean God Chantry" }, // 292
+{ "uqua", "Uqua, the Ocean God Chantry" }, // 292
{ "kodtaz", "Kod'Taz, Broken Trial Grounds" }, // 293
{ "ikkinz", "Ikkinz, Chambers of Destruction" }, // 294
{ "qvic", "Qvic, Prayer Grounds of Calling" }, // 295
-{ "inktuta", "Inktu`Ta, The Unmasked Chapel" }, // 296
+{ "inktuta", "Inktu'Ta, the Unmasked Chapel" }, // 296
{ "txevu", "Txevu, Lair of the Elite" }, // 297
-{ "tacvi", "Tacvi, Seat of the Slaver" }, // 298
-{ "qvicb", "Qvic, the Hidden Vault" }, // 299
+{ "tacvi", "Tacvi, the Broken Temple" }, // 298
+{ "qvicb", "qvicb" }, // 299
{ "wallofslaughter", "Wall of Slaughter" }, // 300
{ "bloodfields", "The Bloodfields" }, // 301
{ "draniksscar", "Dranik's Scar" }, // 302
{ "causeway", "Nobles' Causeway" }, // 303
-{ "chambersa", "Muramite Proving Grounds" }, // 304
-{ "chambersb", "Muramite Proving Grounds" }, // 305
-{ "chambersc", "Muramite Proving Grounds" }, // 306
-{ "chambersd", "Muramite Proving Grounds" }, // 307
-{ "chamberse", "Muramite Proving Grounds" }, // 308
-{ "chambersf", "Muramite Proving Grounds" }, // 309
+{ "chambersa", "Proving Grounds" }, // 304
+{ "chambersb", "Proving Grounds" }, // 305
+{ "chambersc", "Proving Grounds" }, // 306
+{ "chambersd", "Proving Grounds" }, // 307
+{ "chamberse", "Proving Grounds" }, // 308
+{ "chambersf", "Proving Grounds" }, // 309
{ NULL, NULL }, // 310
{ NULL, NULL }, // 311
{ NULL, NULL }, // 312
@@ -338,9 +339,9 @@
{ NULL, NULL }, // 315
{ "provinggrounds", "Muramite Proving Grounds" }, // 316
{ "anguish", "Anguish, the Fallen Palace" }, // 317
-{ "dranikhollowsa", "Dranik's Hollows" }, // 318
-{ "dranikhollowsb", "Dranik's Hollows" }, // 319
-{ "dranikhollowsc", "Dranik's Hollows" }, // 320
+{ "dranikhollowsa", "Dranik's Hollows: Watering Hole" }, // 318
+{ "dranikhollowsb", "Dranik's Hollows: Fire Pit" }, // 319
+{ "dranikhollowsc", "Dranik's Hollows: Murkglider Hive" }, // 320
{ "dranikhollowsd", "Dranik's Hollows" }, // 321
{ "dranikhollowse", "Dranik's Hollows" }, // 322
{ "dranikhollowsf", "Dranik's Hollows" }, // 323
@@ -355,7 +356,7 @@
{ "draniksewersb", "Sewers of Dranik" }, // 332
{ "draniksewersc", "Sewers of Dranik" }, // 333
{ "riftseekers", "Riftseekers' Sanctum" }, // 334
-{ "harbingers", "Harbingers' Spire" }, // 335
+{ "harbingers", "Harbinger's Spire" }, // 335
{ "dranik", "The Ruined City of Dranik" }, // 336
{ "broodlands", "The Broodlands" }, // 337
{ "stillmoona", "Stillmoon Temple" }, // 338
@@ -364,25 +365,25 @@
{ "delvea", "Lavaspinner's Lair" }, // 341
{ "delveb", "Tirranun's Delve" }, // 342
{ "thenest", "The Accursed Nest" }, // 343
-{ "guildlobby", "The Guild Lobby" }, // 344
+{ "guildlobby", "Guild Lobby" }, // 344
{ "guildhall", "Guild Hall" }, // 345
-{ "barter", "The Barter Hall" }, // 346
+{ "barter", "barter" }, // 346
{ "illsalin", "Ruins of Illsalin" }, // 347
-{ "illsalina", "Imperial Bazaar" }, // 348
+{ "illsalina", "Illsalin Marketplace" }, // 348
{ "illsalinb", "Temple of the Korlach" }, // 349
{ "illsalinc", "The Nargilor Pits" }, // 350
{ "dreadspire", "Dreadspire Keep" }, // 351
-{ "dreadspirea", "The Torture Chamber" }, // 352
-{ "dreadspireb", "The Artifact Room" }, // 353
+{ NULL, NULL }, // 352
+{ NULL, NULL }, // 353
{ "drachnidhive", "The Hive" }, // 354
-{ "drachnidhivea", "Living Larder" }, // 355
-{ "drachnidhiveb", "Coven of the Skinwalkers" }, // 356
-{ "drachnidhivec", "Queen Sendaii's Lair" }, // 357
+{ "drachnidhivea", "The Hatchery" }, // 355
+{ "drachnidhiveb", "The Cocoons" }, // 356
+{ "drachnidhivec", "The Queen's Lair" }, // 357
{ "westkorlach", "Stoneroot Falls" }, // 358
{ "westkorlacha", "Chambers of Xill" }, // 359
{ "westkorlachb", "Caverns of the Lost" }, // 360
{ "westkorlachc", "Lair of the Korlach" }, // 361
-{ "eastkorlach", "Undershore" }, // 362
+{ "eastkorlach", "The Undershore" }, // 362
{ "eastkorlacha", "Snarlstone Dens" }, // 363
{ "shadowspine", "Shadowspine" }, // 364
{ "corathus", "Corathus Creep" }, // 365
@@ -389,8 +390,8 @@
{ "corathusa", "Sporali Caverns" }, // 366
{ "corathusb", "Corathus Lair" }, // 367
{ "nektulosa", "Shadowed Grove" }, // 368
-{ "arcstone", "Arcstone" }, // 369
-{ "relic", "Relic" }, // 370
+{ "arcstone", "Arcstone, Isle of Spirits" }, // 369
+{ "relic", "Relic, the Artifact City" }, // 370
{ "skylance", "Skylance" }, // 371
{ "devastation", "The Devastation" }, // 372
{ "devastationa", "The Seething Wall" }, // 373
@@ -412,8 +413,8 @@
{ "freeportcityhall", "City Hall" }, // 389
{ "freeporttheater", "Theater" }, // 390
{ "freeporthall", "Hall of Truth" }, // 391
-{ "northro", "North Ro" }, // 392
-{ "southro", "South Ro" }, // 393
+{ "northro", "North Desert of Ro" }, // 392
+{ "southro", "South Desert of Ro" }, // 393
{ "crescent", "Crescent Reach" }, // 394
{ "moors", "Blightfire Moors" }, // 395
{ "stonehive", "Stone Hive" }, // 396
@@ -428,11 +429,11 @@
{ "direwind", "Direwind Cliffs" }, // 405
{ "ashengate", "Ashengate, Reliquary of the Scale" }, // 406
{ "highpasshold", "Highpass Hold" }, // 407
-{ "commonlands", "Commonlands" }, // 408
-{ "oceanoftears", "Ocean of Tears" }, // 409
-{ "kithforest", "Kithicor Forest" }, // 410
-{ "befallenb", "Befallen" }, // 411
-{ "highpasskeep", "High Keep" }, // 412
+{ "commonlands", "The Commonlands" }, // 408
+{ "oceanoftears", "The Ocean of Tears" }, // 409
+{ "kithforest", "kithforest" }, // 410
+{ "befallenb", "befallenb" }, // 411
+{ "highpasskeep", "highpasskeep" }, // 412
{ "innothuleb", "Innothule Swamp" }, // 413
{ "toxxulia", "Toxxulia Forest" }, // 414
{ "mistythicket", "Misty Thicket" }, // 415
@@ -468,17 +469,17 @@
{ "bloodmoon", "Bloodmoon Keep" }, // 445
{ "crystallos", "Crystallos, Lair of the Awakened" }, // 446
{ "guardian", "The Mechamatic Guardian" }, // 447
-{ "steamfontmts", "Steamfont Mountains" }, // 448
+{ "steamfontmts", "The Steamfont Mountains" }, // 448
{ "cryptofshade", "Crypt of Shade" }, // 449
{ "dragonscalea", "Tinmizer's Wunderwerks" }, // 450
{ "dragonscaleb", "Deepscar's Den" }, // 451
{ "oldfieldofbone", "Field of Scale" }, // 452
{ "oldkaesoraa", "Kaesora Library" }, // 453
-{ "oldkaesorab", "Hatchery Wing" }, // 454
+{ "oldkaesorab", "Kaesora Hatchery" }, // 454
{ "oldkurn", "Kurn's Tower" }, // 455
{ "oldkithicor", "Bloody Kithicor" }, // 456
{ "oldcommons", "Old Commonlands" }, // 457
-{ "oldhighpass", "Highpass Hold" }, // 458
+{ "oldhighpass", "oldhighpass" }, // 458
{ "thevoida", "The Void" }, // 459
{ "thevoidb", "The Void" }, // 460
{ "thevoidc", "The Void" }, // 461
@@ -493,18 +494,18 @@
{ "discord", "Korafax, Home of the Riders" }, // 470
{ "discordtower", "Citadel of the Worldslayer" }, // 471
{ "oldbloodfield", "Old Bloodfields" }, // 472
-{ "precipiceofwar", "The Precipice of War" }, // 473
+{ "precipiceofwar", "Precipice of War" }, // 473
{ "olddranik", "City of Dranik" }, // 474
{ "toskirakk", "Toskirakk" }, // 475
{ "korascian", "Korascian Warrens" }, // 476
-{ "rathechamber", "Rathe Council Chambers" }, // 477
+{ "rathechamber", "Rathe Council Chamber" }, // 477
{ "oldfieldofboneb", "Field of Scale" }, // 478
-{ "crafthalls", "Ngreth's Den" }, // 479
+{ "crafthalls", "crafthalls" }, // 479
{ "brellsrest", "Brell's Rest" }, // 480
{ "fungalforest", "Fungal Forest" }, // 481
{ "underquarry", "The Underquarry" }, // 482
{ "coolingchamber", "The Cooling Chamber" }, // 483
-{ "shiningcity", "Kernagir, The Shining City" }, // 484
+{ "shiningcity", "Kernagir, the Shining City" }, // 484
{ "arthicrex", "Arthicrex" }, // 485
{ "foundation", "The Foundation" }, // 486
{ "lichencreep", "Lichen Creep" }, // 487
@@ -734,16 +735,16 @@
{ "thuledream", "Fear Itself" }, // 711
{ "neighborhood", "Sunrise Hills" }, // 712
{ "phylactery", "Miragul's Phylactery" }, // 713
-{ "phinterior3a1", "House Interior" }, // 714
-{ "phinterior1a1", "House Interior" }, // 715
-{ "phinterior3a2", "House Interior" }, // 716
-{ "phinterior3a3", "House Interior" }, // 717
-{ "phinterior1a2", "House Interior" }, // 718
-{ "phinterior1a3", "House Interior" }, // 719
-{ "phinterior1b1", "Dragon House Interior" }, // 720
+{ "phinterior3a1", "Three Room House Interior" }, // 714
+{ "phinterior1a1", "One Room House Interior" }, // 715
+{ "phinterior3a2", "Three Room House Interior" }, // 716
+{ "phinterior3a3", "Three Room House Interior" }, // 717
+{ "phinterior1a2", "One Room House Interior" }, // 718
+{ "phinterior1a3", "One Room House Interior" }, // 719
+{ "phinterior1b1", "One Room House Interior" }, // 720
{ NULL, NULL }, // 721
{ NULL, NULL }, // 722
-{ "phinterior1d1", "Dragon House Interior" }, // 723
+{ "phinterior1d1", "Hermit's Hideaway Interior" }, // 723
{ "argath", "Argath, Bastion of Illdaera" }, // 724
{ "arelis", "Valley of Lunanyn" }, // 725
{ "sarithcity", "Sarith, City of Tides" }, // 726
@@ -779,15 +780,15 @@
{ "crystalshard", "The Crystal Caverns: Fragment of Fear" }, // 756
{ "breedinggrounds", "The Breeding Grounds" }, // 757
{ "eviltree", "Evantil, the Vile Oak" }, // 758
-{ "grelleth", "Grelleth's Palace, the Chateau of Filth..." }, // 759
+{ "grelleth", "Grelleth's Palace, the Chateau of Filth" }, // 759
{ "chapterhouse", "Chapterhouse of the Fallen" }, // 760
-{ "pomischief", "The Plane of Mischief" }, // 761
-{ "burnedwoods", "The Burned Woods" }, // 762
+{ "pomischief", "pomischief" }, // 761
+{ "burnedwoods", "burnedwoods" }, // 762
{ "chelsithreborn", "Chelsith Reborn" }, // 763
{ "poshadow", "Plane of Shadow" }, // 764
{ "heartoffear", "Heart of Fear: The Threshold" }, // 765
{ "phinteriortree", "Evantil's Abode" }, // 766
-{ "interiorwalltest", "Wall Wall Wall" }, // 767
+{ "interiorwalltest", "interiorwalltest" }, // 767
{ "heartoffearb", "Heart of Fear: The Rebirth" }, // 768
{ "heartoffearc", "Heart of Fear: The Epicenter" }, // 769
{ "bixiewarfront", "Bixie Warfront" }, // 770
@@ -806,11 +807,11 @@
{ "thuliasaur", "Thuliasaur Island" }, // 783
{ "degmar", "Degmar, the Lost Castle" }, // 784
{ "tempesttemple", "Tempest Temple" }, // 785
-{ "plhpirateshipint", "Pirate Ship" }, // 786
+{ "plhpirateshipint", "The Wayward Lady" }, // 786
{ "gnomemtn", "Gnome Memorial Mountain" }, // 787
{ "drogab", "The Temple of Droga" }, // 788
{ "charasisb", "Sathir's Tomb" }, // 789
-{ "scorchedwoods", "Scorched Woods" }, // 790
+{ "scorchedwoods", "The Scorched Woods" }, // 790
{ "frontiermtnsb", "Frontier Mountains" }, // 791
{ "gorowyn", "Gorowyn" }, // 792
{ "korshaext", "Gates of Kor-Sha" }, // 793
@@ -834,16 +835,16 @@
{ NULL, NULL }, // 811
{ NULL, NULL }, // 812
{ "charasistwo", "Howling Stones" }, // 813
-{ "skyfiretwo", "Skyfire Mountains" }, // 814
+{ "skyfiretwo", "The Skyfire Mountains" }, // 814
{ "overtheretwo", "The Overthere" }, // 815
{ "veeshantwo", "Veeshan's Peak" }, // 816
{ "trialsofsmoke", "Plane of Smoke" }, // 817
{ "stratos", "Stratos: Zephyr's Flight" }, // 818
-{ "aalishai", "Aslishai: Palace of Embers" }, // 819
+{ "aalishai", "Aalishai: Palace of Embers" }, // 819
{ "empyr", "Empyr: Realms of Ash" }, // 820
{ "esianti", "Esianti: Palace of the Winds" }, // 821
{ "mearatas", "Mearatas: The Stone Demesne" }, // 822
-{ "chamberoftears", "The Chamber of Tears" }, // 823
+{ "chamberoftears", "Chamber of Tears" }, // 823
{ "eastwastestwo", "The Eastern Wastes" }, // 824
{ "frozenshadowtwo", "The Tower of Frozen Shadow" }, // 825
{ "crystaltwoa", "The Ry`Gorr Mines" }, // 826
@@ -856,14 +857,14 @@
{ "cobaltscartwo", "Cobalt Scar" }, // 833
{ "westwastestwo", "The Western Wastes" }, // 834
{ "skyshrinetwo", "Skyshrine" }, // 835
-{ "templeveeshantwo", "Temple of Veeshan" }, // 836
-{ NULL, NULL }, // 837
-{ NULL, NULL }, // 838
-{ NULL, NULL }, // 839
-{ NULL, NULL }, // 840
-{ NULL, NULL }, // 841
-{ NULL, NULL }, // 842
-{ "maidentwo", "The Maiden's Eye" }, // 843
+{ "templeveeshantwo", "The Temple of Veeshan" }, // 836
+{ "clz-winter", "Winter" }, // 837
+{ "clz-anniversary", "Anniversary" }, // 838
+{ "clz-spring", "Spring" }, // 839
+{ "clz-autumn", "Autumn" }, // 840
+{ "clz-frostfell", "Frostfell" }, // 841
+{ "clz-af", "April Fools" }, // 842
+{ "maidentwo", "Maiden's Eye" }, // 843
{ "umbraltwo", "Umbral Plains" }, // 844
{ "akhevatwo", "Ka Vethan" }, // 845
{ "vexthaltwo", "Vex Thal" }, // 846
@@ -886,10 +887,10 @@
{ "moorsofnokk", "Moors of Nokk" }, // 863
{ "unkemptwoods", "Unkempt Woods" }, // 864
{ "timorousfalls", "Timorous Falls" }, // 865
-{ NULL, NULL }, // 866
+{ "clz-tempest", "Tempest Festival" }, // 866
{ NULL, NULL }, // 867
{ NULL, NULL }, // 868
-{ NULL, NULL }, // 869
+{ "anniversarytower", "Tides of Time" }, // 869
{ NULL, NULL }, // 870
{ NULL, NULL }, // 871
{ NULL, NULL }, // 872
@@ -896,7 +897,7 @@
{ NULL, NULL }, // 873
{ NULL, NULL }, // 874
{ NULL, NULL }, // 875
-{ NULL, NULL }, // 876
+{ "clz-25anniversary", "clz-25anniversary" }, // 876
{ NULL, NULL }, // 877
{ NULL, NULL }, // 878
{ NULL, NULL }, // 879
@@ -1016,7 +1017,7 @@
{ NULL, NULL }, // 993
{ NULL, NULL }, // 994
{ NULL, NULL }, // 995
-{ "arttest", "Art Testing Domain" }, // 996
+{ "arttest", "The Pit of Rathpher" }, // 996
{ NULL, NULL }, // 997
{ "fhalls", "The Forgotten Halls" }, // 998
-{ "apprentice", "Designer Apprentice" }, // 999
+{ "apprentice", "apprentice" }, // 999
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-08-26 22:39:26
|
Revision: 1544
http://sourceforge.net/p/seq/svn/1544
Author: cn187
Date: 2024-08-26 22:39:24 +0000 (Mon, 26 Aug 2024)
Log Message:
-----------
Add ida helper script for generating zones.h
Added Paths:
-----------
showeq/trunk/scripts/ida/
showeq/trunk/scripts/ida/gen_zones_h.py
Added: showeq/trunk/scripts/ida/gen_zones_h.py
===================================================================
--- showeq/trunk/scripts/ida/gen_zones_h.py (rev 0)
+++ showeq/trunk/scripts/ida/gen_zones_h.py 2024-08-26 22:39:24 UTC (rev 1544)
@@ -0,0 +1,294 @@
+
+import datetime
+import sys
+import idautils
+
+""" Generate ShowEQ's zones.h from eggame.exe and Resources/ZoneNames.txt
+
+ NOTE: Requires IDA and python3
+
+ To use this script:
+ 1. Open eqgame.exe in IDA, and let IDA complete its analysis.
+ 2. Select View->Recent Scripts
+ 3. In the Recent Scripts tab, press Insert, and browse to the location
+ of this script. Select this script and click "Open".
+ 4. An entry for this script now appears in the list of scripts.
+ Double-click it to load it.
+ 5. (optional) right click in the output window and select "Clear". This
+ will reduce the extra stuff you have to delete when you copy/paste
+ 6. At the idapython command line, run
+
+ dump_zones('/path/to/ZoneNames.txt')
+
+ Note: ZoneNames.txt is found in your EQ client directory, under the
+ Resources subdirectory. If you want you can copy it to somewhere
+ convenient (e.g., /tmp), then pass that path to dump_zones.
+ 7. Create a new file (e.g. zones.h.new)
+ 8. Right-click in the output window, select "Select All", then "Copy".
+ 9. Paste into the file you created in step 7
+ 10. There will be a couple of lines (or more if you skipped step 5) at
+ the top of the file (before the start of the block comment containing
+ the copyright/license info) that need to be deleted. Basically,
+ delete everything before the line consisting of "/*"
+ 11. Save the file
+ 12. As a sanity check, diff with zones.h to see what changed. This is
+ important in case the way the code works changed, or there's a bug
+ in the script - we don't want to commit an empty or otherwise bad
+ zones file.
+ 13. If everything looks good, rename your new file to zones.h and replace
+ the existing zones.h.
+ 14. Do a test compile to make sure everything is good.
+ 15. Commit changes.
+"""
+
+def find_string_refs_to(haystack, needle):
+ refs = set()
+ for s in haystack:
+ if str(s) == needle:
+ for x in idautils.XrefsTo(s.ea):
+ refs.add(x.to)
+ return refs
+
+def find_string_refs_from(haystack, needle):
+ refs = set()
+ for s in haystack:
+ if str(s) == needle:
+ for x in idautils.XrefsTo(s.ea):
+ refs.add(x.frm)
+ return refs
+
+
+def get_worlddata_start(ida_strings=None):
+
+ if not ida_strings:
+ strings = idautils.Strings(True)
+ else:
+ strings = ida_strings
+
+ key_string = 'EQWorldData::EQWorldData'
+
+ eas = find_string_refs_from(strings, key_string)
+
+ if len(eas) == 1:
+ ea = eas.pop()
+ return ea
+ else:
+ return None
+
+
+# NOTE we could grab the addresses of EQWorldData::EQWorldData and Unknown Zone
+# and use those for addr boundaries when looking for zone string loads
+# (if there are too many conflicting loads in amongst the ones we want)
+
+# NOTE also, if we have to, we could determine exact reg numbers based on known
+# zone names, with the assumption that the compiler will reuse the same registers
+# throughout the function
+def get_next_zone_loaded(cur_ea, end_ea, rnum=None):
+ ea = cur_ea
+
+ while ea < end_ea:
+ mnem = idc.print_insn_mnem(ea)
+ if mnem == "lea":
+ if idc.get_operand_type(ea, 0) != o_reg:
+ ea = idc.next_head(ea)
+ continue
+ if rnum is not None and idc.get_operand_value(ea, 0) != rnum:
+ ea = idc.next_head(ea)
+ continue
+ if idc.get_operand_type(ea, 1) != o_mem:
+ ea = idc.next_head(ea)
+ continue
+ string = idc.get_strlit_contents(idc.get_operand_value(ea, 1))
+ if not string:
+ ea = idc.next_head(ea)
+ continue
+ return ea, idc.get_strlit_contents(idc.get_operand_value(ea, 1)).decode('ascii')
+ ea = idc.next_head(ea)
+
+ return ea, None
+
+
+
+def get_next_file_index(cur_ea, end_ea, rnum=None):
+ ea = cur_ea
+
+ offset = 0
+ backtrack = False
+
+ while ea < end_ea:
+ mnem = idc.print_insn_mnem(ea)
+ if mnem == "lea":
+ if idc.get_operand_type(ea, 0) != o_reg:
+ ea = idc.next_head(ea)
+ continue
+ if rnum is not None and idc.get_operand_value(ea, 0) != rnum:
+ ea = idc.next_head(ea)
+ continue
+ if idc.get_operand_type(ea, 1) != o_displ:
+ ea = idc.next_head(ea)
+ continue
+ backtrack = True
+ break
+ elif mnem == "mov":
+ if idc.get_operand_type(ea, 0) != o_reg:
+ ea = idc.next_head(ea)
+ continue
+ if rnum is not None and idc.get_operand_value(ea, 0) != rnum:
+ ea = idc.next_head(ea)
+ continue
+ if idc.get_operand_type(ea, 1) != o_imm:
+ ea = idc.next_head(ea)
+ continue
+ return ea, idc.get_operand_value(ea, 1)
+ ea = idc.next_head(ea)
+
+ if backtrack:
+ prev = idc.prev_head(ea)
+ mnem = idc.print_insn_mnem(prev)
+ if mnem == "xor" and \
+ idc.get_operand_type(prev, 0) == o_reg and \
+ idc.get_operand_type(prev,1) == o_reg:
+ return ea, idc.get_operand_value(ea, 1)
+
+ if mnem != "mov" or \
+ idc.get_operand_type(prev, 0) != o_reg or\
+ idc.get_operand_type(prev, 1) != o_imm:
+ sys.stderr.write("Backtrack failed at " + hex(prev) + '\n')
+ return ea, -1
+
+ offset = idc.get_operand_value(prev, 1)
+
+ return ea, idc.get_operand_value(ea, 1) + offset
+
+ return ea, -1
+
+def find_qeynos_load(cur_ea, end_ea):
+ ea = cur_ea
+
+ while ea < end_ea:
+ ea, shortzone = get_next_zone_loaded(ea, end_ea)
+ if shortzone != 'qeynos':
+ ea = idc.next_head(ea)
+ continue
+
+ rnum = idc.get_operand_value(ea, 0)
+
+ return ea, shortzone, rnum
+
+def find_qeynos_index(cur_ea, end_ea):
+ ea = cur_ea
+
+ while ea < end_ea:
+ ea, idx = get_next_file_index(ea, end_ea)
+ if idx != 1:
+ ea = idc.next_head(ea)
+ continue
+
+ rnum = idc.get_operand_value(ea, 0)
+
+ return ea, idx, rnum
+
+
+
+
+# if you know the address where "EQWorldData::EQWorldData" is loaded, you can
+# pass it as the start_ea
+def dump_zones(zonenames_path=None, ida_strings=None, start_ea=None):
+
+ if not zonenames_path:
+ sys.stderr.write("Path to ZoneNames.txt is required\n")
+ return
+
+ if not ida_strings:
+ strings = idautils.Strings(True)
+ else:
+ strings = ida_strings
+
+ if not start_ea:
+ start_ea = get_worlddata_start(strings)
+ if not start_ea:
+ sys.stderr.write("Could not find unique start ea. Found: " + eas + '\n')
+ return
+
+ wd_func = ida_funcs.get_func(start_ea)
+ func_end = wd_func.end_ea
+
+ cur_ea, shortzone, zone_regnum = find_qeynos_load(idc.next_head(start_ea), func_end)
+ if not cur_ea:
+ sys.stderr.write("Could not find first zone load\n")
+ return
+
+ cur_ea, idx, idx_regnum = find_qeynos_index(idc.next_head(start_ea), func_end)
+ if not cur_ea:
+ sys.stderr.write("Could not find first load index\n")
+ return
+
+ zonenames = {}
+ zones = {}
+
+ with open(zonenames_path, 'r') as f:
+ for line in f.readlines():
+ index, zonename, _, _ = line.split('^')
+ if index == "ZONE":
+ continue
+ zonenames[int(index)] = zonename.strip()
+
+ #print(idx, shortzone, zonenames[idx])
+ zones[idx] = (idx, shortzone, zonenames[idx])
+
+ while cur_ea < func_end:
+ cur_ea, shortzone = get_next_zone_loaded(cur_ea, func_end, zone_regnum)
+ if not shortzone:
+ break
+
+ cur_ea = idc.next_head(cur_ea)
+ cur_ea, idx = get_next_file_index(cur_ea, func_end, idx_regnum)
+ if idx < 0:
+ break;
+
+ if idx not in zonenames:
+ cur_ea = idc.next_head(cur_ea)
+ #sys.stderr.write("Did not find index {} for zone {} in ZoneNames.txt\n".format(idx, shortzone))
+ zones[idx] = (idx, shortzone, shortzone)
+ else:
+ #print(idx, shortzone, zonenames[idx])
+ zones[idx] = (idx, shortzone, zonenames[idx])
+
+ cur_ea = idc.next_head(cur_ea)
+
+
+ keys = sorted(zones.keys())
+ last_idx = keys[-1]
+ current_year=datetime.datetime.now().year
+ print(f"""/*
+ * zones.h
+ * Copyright 2003-{current_year} by the respective ShowEQ Developers
+ *
+ * This file is part of ShowEQ.
+ * http://www.sourceforge.net/projects/seq
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/* Maps zoneId numbers to strings, used in util.cpp */""")
+
+ for i in range(0, last_idx+1):
+ if i in zones:
+ idx, shortzone, longzone = zones[i]
+ print('{{ "{}", "{}" }}, // {}'.format(shortzone, longzone, idx))
+ else:
+ print('{{ NULL, NULL }}, // {}'.format(i))
+
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-08-23 20:37:54
|
Revision: 1543
http://sourceforge.net/p/seq/svn/1543
Author: cn187
Date: 2024-08-23 20:37:52 +0000 (Fri, 23 Aug 2024)
Log Message:
-----------
Add missing pthread include
Modified Paths:
--------------
showeq/branches/cn187_devel/src/packetcaptureprovider.h
Modified: showeq/branches/cn187_devel/src/packetcaptureprovider.h
===================================================================
--- showeq/branches/cn187_devel/src/packetcaptureprovider.h 2024-08-23 20:35:46 UTC (rev 1542)
+++ showeq/branches/cn187_devel/src/packetcaptureprovider.h 2024-08-23 20:37:52 UTC (rev 1543)
@@ -26,6 +26,8 @@
#include <cstdint>
#include <QString>
+#include <pthread.h>
+
class PacketCaptureProviderThread
{
public:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-08-23 20:35:48
|
Revision: 1542
http://sourceforge.net/p/seq/svn/1542
Author: cn187
Date: 2024-08-23 20:35:46 +0000 (Fri, 23 Aug 2024)
Log Message:
-----------
add missing pthread include
Modified Paths:
--------------
showeq/trunk/src/packetcaptureprovider.h
Modified: showeq/trunk/src/packetcaptureprovider.h
===================================================================
--- showeq/trunk/src/packetcaptureprovider.h 2024-08-21 21:17:21 UTC (rev 1541)
+++ showeq/trunk/src/packetcaptureprovider.h 2024-08-23 20:35:46 UTC (rev 1542)
@@ -26,6 +26,8 @@
#include <cstdint>
#include <QString>
+#include <pthread.h>
+
class PacketCaptureProviderThread
{
public:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-08-21 21:17:24
|
Revision: 1541
http://sourceforge.net/p/seq/svn/1541
Author: cn187
Date: 2024-08-21 21:17:21 +0000 (Wed, 21 Aug 2024)
Log Message:
-----------
R6elease 6.4.0
- Update to version 6.4.0
- Support for EQ Patch 08/21/24
- Struct and opcode updates
Modified Paths:
--------------
showeq/branches/cn187_devel/ChangeLog
showeq/branches/cn187_devel/conf/zoneopcodes.xml
showeq/branches/cn187_devel/configure.in
showeq/branches/cn187_devel/src/everquest.h
Modified: showeq/branches/cn187_devel/ChangeLog
===================================================================
--- showeq/branches/cn187_devel/ChangeLog 2024-08-21 20:12:56 UTC (rev 1540)
+++ showeq/branches/cn187_devel/ChangeLog 2024-08-21 21:17:21 UTC (rev 1541)
@@ -1,3 +1,30 @@
+cn187 (08/21/24)
+----------------
+- Update to version 6.4.0
+- Support for EQ Patch 08/21/24
+- Struct and opcode updates
+- Fixes:
+ - Improvements/fixes to various column sort/reorder/hide behavior
+ - Fixes for player-controlled external entity detection and updates, and related crash
+ - Rework packet capture filter to improve reliability of session detection
+ - Update OP_Consider logic to correctly display con colors and level
+ - Enable menu options to rename/delete spawnpoints
+ - Don't auto-select another mob when a targeted corpse decays
+ - Fixes for formatted messages
+ - Remove config.sub/config.guess from source and regenerate them as needed
+ - Character menu now allows selecting level 125
+ - Correctly interpret character x/y when loading map (fixes tiny map in northro, etc.)
+ - Correctly interpret zone ID for player purchased housing/guildhalls
+- Enhancements:
+ - Add option to deselect your target if mob is untargeted
+ - Add support for configuring map line/location colors
+ - Add support for configuring PCAP snaplen and ring buffer size
+ - PCAP will now attempt to detect dropped packets and emit a warning with possible fixes
+ - New UI for adding and editing spawn filters
+ - Add support for using info/equipment fields in spawn filter matches
+- Misc:
+ - Some internal and build system reorganization to make future changes less cumbersome
+
cn187 (07/17/24)
----------------
- Update to version 6.3.16
Modified: showeq/branches/cn187_devel/conf/zoneopcodes.xml
===================================================================
--- showeq/branches/cn187_devel/conf/zoneopcodes.xml 2024-08-21 20:12:56 UTC (rev 1540)
+++ showeq/branches/cn187_devel/conf/zoneopcodes.xml 2024-08-21 21:17:21 UTC (rev 1541)
@@ -3,37 +3,37 @@
<seqopcodes>
<!-- Critical opcodes used directly by ShowEQ -->
- <opcode id="3193" name="OP_PlayerProfile" updated="07/17/24">
+ <opcode id="6acb" name="OP_PlayerProfile" updated="08/21/24">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="1eb3" name="OP_ZoneEntry" updated="07/17/24">
+ <opcode id="6bee" name="OP_ZoneEntry" updated="08/21/24">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="39b4" name="OP_TimeOfDay" updated="07/17/24">
+ <opcode id="7a78" name="OP_TimeOfDay" updated="08/21/24">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="518c" name="OP_NewZone" updated="07/17/24">
+ <opcode id="461c" name="OP_NewZone" updated="08/21/24">
<comment>NewZoneCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="221a" name="OP_SpawnDoor" updated="07/17/24">
+ <opcode id="3aa8" name="OP_SpawnDoor" updated="08/21/24">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="4feb" name="OP_GroundSpawn" updated="07/17/24">
+ <opcode id="24ad" name="OP_GroundSpawn" updated="08/21/24">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="4743" name="OP_SendZonePoints" updated="07/17/24">
+ <opcode id="4dc1" name="OP_SendZonePoints" updated="08/21/24">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
- <opcode id="0d97" name="OP_AAExpUpdate" updated="07/17/24">
+ <opcode id="35d1" name="OP_AAExpUpdate" updated="08/21/24">
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
@@ -41,32 +41,32 @@
<comment>ExpUpdateCode</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="37e3" name="OP_GuildMOTD" updated="07/17/24">
+ <opcode id="198f" name="OP_GuildMOTD" updated="08/21/24">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
- <opcode id="4187" name="OP_ClientUpdate" updated="07/17/24">
+ <opcode id="441b" name="OP_ClientUpdate" updated="08/21/24">
<comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1f6b" name="OP_NpcMoveUpdate" updated="07/17/24">
+ <opcode id="5332" name="OP_NpcMoveUpdate" updated="08/21/24">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="3afa" name="OP_MobUpdate" updated="07/17/24">
+ <opcode id="6f8e" name="OP_MobUpdate" updated="08/21/24">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="1a9e" name="OP_DeleteSpawn" updated="07/17/24">
+ <opcode id="6447" name="OP_DeleteSpawn" updated="08/21/24">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="67ae" name="OP_RemoveSpawn" updated="07/17/24">
+ <opcode id="4d80" name="OP_RemoveSpawn" updated="08/21/24">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
- <opcode id="7c61" name="OP_Death" updated="07/17/24">
+ <opcode id="3054" name="OP_Death" updated="08/21/24">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
@@ -74,7 +74,7 @@
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="033d" name="OP_SpawnAppearance" updated="07/17/24">
+ <opcode id="44c3" name="OP_SpawnAppearance" updated="08/21/24">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
@@ -86,15 +86,15 @@
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="2bfb" name="OP_GuildMemberUpdate" updated="07/17/24">
+ <opcode id="169c" name="OP_GuildMemberUpdate" updated="08/21/24">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="4454" name="OP_ClickObject" updated="07/17/24">
+ <opcode id="6cec" name="OP_ClickObject" updated="08/21/24">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
- <opcode id="681d" name="OP_Action" updated="07/17/24">
+ <opcode id="38ad" name="OP_Action" updated="08/21/24">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
@@ -103,11 +103,11 @@
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
- <opcode id="4126" name="OP_Consider" updated="07/17/24">
+ <opcode id="6fc1" name="OP_Consider" updated="08/21/24">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0987" name="OP_TargetMouse" updated="07/17/24">
+ <opcode id="13f6" name="OP_TargetMouse" updated="08/21/24">
<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="24bc" name="OP_ZoneChange" updated="07/17/24">
+ <opcode id="343e" name="OP_ZoneChange" updated="08/21/24">
<comment>old ZoneChangeCode</comment>
<payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
</opcode>
@@ -191,19 +191,19 @@
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
- <opcode id="1520" name="OP_SimpleMessage" updated="07/17/24">
+ <opcode id="7a7a" name="OP_SimpleMessage" updated="08/21/24">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
- <opcode id="3fc6" name="OP_FormattedMessage" updated="07/17/24">
+ <opcode id="01b6" name="OP_FormattedMessage" updated="08/21/24">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="60f9" name="OP_CommonMessage" updated="07/17/24">
+ <opcode id="41ec" name="OP_CommonMessage" updated="08/21/24">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="36f2" name="OP_SpecialMesg" updated="07/17/24">
+ <opcode id="24fe" name="OP_SpecialMesg" updated="08/21/24">
<comment>Communicate textual info to client including hail responses etc</comment>
<payload dir="server" typename="specialMessageStruct" sizechecktype="none"/>
</opcode>
@@ -315,7 +315,7 @@
<comment>List of group members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="6d8b" name="OP_GuildMemberList" updated="07/17/24">
+ <opcode id="0ae8" name="OP_GuildMemberList" updated="08/21/24">
<comment>List of guild members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -375,7 +375,7 @@
<comment>Fellowship information - 2576 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="725b" name="OP_ExpandedGuildInfo" updated="07/17/24">
+ <opcode id="ffff" name="OP_ExpandedGuildInfo" updated="07/17/24">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -543,7 +543,7 @@
<comment>Listing of all guilds. Can be triggered by /lfg search?</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="3f04" name="OP_GuildsInZoneList" updated="07/17/24">
+ <opcode id="4a89" name="OP_GuildsInZoneList" updated="08/21/24">
<comment>Listing of guild names present in the current zone. Generally seen on zoning</comment>
<payload dir="server" typename="guildsInZoneListStruct" sizechecktype="none"/>
</opcode>
@@ -603,7 +603,7 @@
<comment>Free to play nags and other data - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="54c9" name="OP_Find" updated="07/17/24">
+ <opcode id="56f4" name="OP_Find" updated="08/21/24">
<comment>Find window data - 112 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
Modified: showeq/branches/cn187_devel/configure.in
===================================================================
--- showeq/branches/cn187_devel/configure.in 2024-08-21 20:12:56 UTC (rev 1540)
+++ showeq/branches/cn187_devel/configure.in 2024-08-21 21:17:21 UTC (rev 1541)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 6.3.16)
+AC_INIT(showeq, 6.4.0)
AC_CONFIG_SRCDIR(src/main.cpp)
AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_SYSTEM
Modified: showeq/branches/cn187_devel/src/everquest.h
===================================================================
--- showeq/branches/cn187_devel/src/everquest.h 2024-08-21 20:12:56 UTC (rev 1540)
+++ showeq/branches/cn187_devel/src/everquest.h 2024-08-21 21:17:21 UTC (rev 1541)
@@ -1119,31 +1119,25 @@
struct
{
- signed deltaX:13; // change in x
- signed deltaY:13; // change in y
- unsigned padding00:6;
-
unsigned heading:12; // heading
- signed x:19; // x coord (1st loc value)
- unsigned padding01:1;
+ signed animation:10; // current animation
+ unsigned padding00:10;
+ signed deltaZ:13; // change in z
+ signed y:19; // y coord (2nd loc value)
+
+ signed deltaX:13; // change in x
signed z:19; // z coord (3rd loc value)
- unsigned padding02:13;
- signed y:19; // y coord (2nd loc value)
+ unsigned pitch:12; // pitch (up/down heading)
signed deltaHeading:10; // change in heading
- unsigned padding03:3;
+ unsigned padding03:10;
- signed deltaZ:13; // change in z
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding04:7;
+ signed deltaY:13; // change in y
+ signed x:19; // x coord (1st loc value)
- signed animation:10; // current animation
- unsigned padding05:22;
-
};
- int32_t posData[6];
-
+ int32_t posData[5];
};
/*0000*/ union
@@ -2393,7 +2387,7 @@
/*
** Player Position Update
-** Length: 28 Octets
+** Length: 24 Octets
** OpCode: PlayerPosCode
*/
struct playerSpawnPosStruct
@@ -2401,28 +2395,23 @@
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
/*0004*/
- signed deltaX:13; // change in x
- signed deltaY:13; // change in y
- unsigned padding00:6;
+ unsigned heading:12; // heading
+ signed animation:10; // current animation
+ unsigned padding00:10;
/*0008*/
- unsigned heading:12; // heading
- signed x:19; // x coord (1st loc value)
- unsigned padding01:1;
+ signed deltaZ:13; // change in z
+ signed y:19; // y coord (2nd loc value)
/*0012*/
+ signed deltaX:13; // change in x
signed z:19; // z coord (3rd loc value)
- unsigned padding02:13;
/*0016*/
- signed y:19; // y coord (2nd loc value)
+ unsigned pitch:12; // pitch (up/down heading)
signed deltaHeading:10; // change in heading
- unsigned padding03:3;
+ unsigned padding03:10;
/*0020*/
- signed deltaZ:13; // change in z
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding04:7;
+ signed deltaY:13; // change in y
+ signed x:19; // x coord (1st loc value)
/*0024*/
- signed animation:10; // current animation
- unsigned padding05:22;
-/*0028*/
};
/*
@@ -2436,27 +2425,27 @@
/*0002*/ uint16_t spawnId; // Player's spawn id
/*0004*/ uint16_t unknown0004; // ***Placeholder
/*0006*/
- float x; // x coord (1st loc value)
+ float z; // z coord (3rd loc value)
/*0010*/
- signed deltaHeading:10; // change in heading
- unsigned padding01:22;
+ float y; // y coord (2nd loc value)
/*0014*/
- float z; // z coord (3rd loc value)
+ unsigned heading:12; // heading
+ unsigned padding02:20;
/*0018*/
- float deltaZ; // change in z
+ float deltaX; // change in x
/*0022*/
+ float x; // x coord (1st loc value)
+/*0026*/
signed animation:10; // current animation
- unsigned padding04:22;
-/*0026*/
- float deltaX; // change in x
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding05:10;
/*0030*/
float deltaY; // change in y
/*0034*/
- unsigned heading:12; // heading
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding07:8;
+ signed deltaHeading:10; // change in heading
+ unsigned padding07:22;
/*0038*/
- float y; // y coord (2nd loc value)
+ float deltaZ; // change in z
/*0042*/
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-08-21 20:12:57
|
Revision: 1540
http://sourceforge.net/p/seq/svn/1540
Author: cn187
Date: 2024-08-21 20:12:56 +0000 (Wed, 21 Aug 2024)
Log Message:
-----------
Delete incorrectly named tag for 6.4
Removed Paths:
-------------
showeq/tags/v_6_4_0/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-08-21 20:09:15
|
Revision: 1539
http://sourceforge.net/p/seq/svn/1539
Author: cn187
Date: 2024-08-21 20:09:12 +0000 (Wed, 21 Aug 2024)
Log Message:
-----------
Tag for release 6.4.0
Added Paths:
-----------
showeq/tags/v6_4_0/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-08-21 20:05:19
|
Revision: 1538
http://sourceforge.net/p/seq/svn/1538
Author: cn187
Date: 2024-08-21 20:05:16 +0000 (Wed, 21 Aug 2024)
Log Message:
-----------
Reorganize makefile for easier merging
Modified Paths:
--------------
showeq/branches/cn187_devel/src/Makefile.am
Modified: showeq/branches/cn187_devel/src/Makefile.am
===================================================================
--- showeq/branches/cn187_devel/src/Makefile.am 2024-08-21 20:00:48 UTC (rev 1537)
+++ showeq/branches/cn187_devel/src/Makefile.am 2024-08-21 20:05:16 UTC (rev 1538)
@@ -2,33 +2,128 @@
QT_LIBS = $(LIB_QT)
-bin_PROGRAMS = showeq
+bin_PROGRAMS = showeq
-showeq_SOURCES = main.cpp spawn.cpp spawnshell.cpp spawnlist.cpp spellshell.cpp \
- spelllist.cpp vpacket.cpp editor.cpp filterlistwindow.cpp filter.cpp packetfragment.cpp packetstream.cpp \
- packetinfo.cpp packet.cpp packetcapture.cpp packetformat.cpp interface.cpp compass.cpp \
- map.cpp util.cpp experiencelog.cpp combatlog.cpp player.cpp skilllist.cpp \
- statlist.cpp filtermgr.cpp mapcore.cpp category.cpp compassframe.cpp group.cpp \
- guild.cpp netdiag.cpp logger.cpp xmlconv.cpp xmlpreferences.cpp seqwindow.cpp \
- seqlistview.cpp zonemgr.cpp spawnmonitor.cpp spawnpointlist.cpp spawnlistcommon.cpp \
- spawnlist2.cpp spells.cpp datetimemgr.cpp spawnlog.cpp packetlog.cpp \
- datalocationmgr.cpp eqstr.cpp messages.cpp message.cpp messagefilter.cpp messagewindow.cpp \
- messageshell.cpp terminal.cpp filteredspawnlog.cpp messagefilterdialog.cpp \
- diagnosticmessages.cpp mapicon.cpp filternotifications.cpp netstream.cpp guildshell.cpp \
- guildlist.cpp bazaarlog.cpp mapicondialog.cpp packetcaptureprovider.cpp toolbaricons.cpp
+showeq_SOURCES = \
+ bazaarlog.cpp \
+ category.cpp \
+ combatlog.cpp \
+ compass.cpp \
+ compassframe.cpp \
+ datalocationmgr.cpp \
+ datetimemgr.cpp \
+ diagnosticmessages.cpp \
+ editor.cpp \
+ eqstr.cpp \
+ experiencelog.cpp \
+ filter.cpp \
+ filteredspawnlog.cpp \
+ filterlistwindow.cpp \
+ filtermgr.cpp \
+ filternotifications.cpp \
+ group.cpp \
+ guild.cpp \
+ guildlist.cpp \
+ guildshell.cpp \
+ interface.cpp \
+ logger.cpp \
+ main.cpp \
+ mapcore.cpp \
+ map.cpp \
+ mapicon.cpp \
+ mapicondialog.cpp \
+ message.cpp \
+ messagefilter.cpp \
+ messagefilterdialog.cpp \
+ messages.cpp \
+ messageshell.cpp \
+ messagewindow.cpp \
+ netdiag.cpp \
+ netstream.cpp \
+ packetcapture.cpp \
+ packetcaptureprovider.cpp \
+ packet.cpp \
+ packetformat.cpp \
+ packetfragment.cpp \
+ packetinfo.cpp \
+ packetlog.cpp \
+ packetstream.cpp \
+ player.cpp \
+ seqlistview.cpp \
+ seqwindow.cpp \
+ skilllist.cpp \
+ spawn.cpp \
+ spawnlist2.cpp \
+ spawnlistcommon.cpp \
+ spawnlist.cpp \
+ spawnlog.cpp \
+ spawnmonitor.cpp \
+ spawnpointlist.cpp \
+ spawnshell.cpp \
+ spelllist.cpp \
+ spells.cpp \
+ spellshell.cpp \
+ statlist.cpp \
+ terminal.cpp \
+ toolbaricons.cpp \
+ util.cpp \
+ vpacket.cpp \
+ xmlconv.cpp \
+ xmlpreferences.cpp \
+ zonemgr.cpp
-showeq_moc_SRCS = bazaarlog.moc category.moc combatlog.moc compass.moc \
- compassframe.moc datetimemgr.moc editor.moc filterlistwindow.moc experiencelog.moc \
- filteredspawnlog.moc filtermgr.moc filternotifications.moc group.moc \
- guild.moc guildlist.moc guildshell.moc interface.moc logger.moc \
- map.moc mapicon.moc mapicondialog.moc messagefilter.moc \
- messagefilterdialog.moc messages.moc messageshell.moc messagewindow.moc \
- netdiag.moc packet.moc packetinfo.moc packetlog.moc packetstream.moc \
- player.moc seqlistview.moc seqwindow.moc skilllist.moc spawnlist.moc \
- spawnlist2.moc spawnlistcommon.moc spawnlog.moc spawnmonitor.moc \
- spawnpointlist.moc spawnshell.moc spelllist.moc spellshell.moc statlist.moc \
- terminal.moc xmlpreferences.moc zonemgr.moc
+showeq_moc_SRCS = \
+ bazaarlog.moc \
+ category.moc \
+ combatlog.moc \
+ compassframe.moc \
+ compass.moc \
+ datetimemgr.moc \
+ editor.moc \
+ experiencelog.moc \
+ filteredspawnlog.moc \
+ filterlistwindow.moc \
+ filtermgr.moc \
+ filternotifications.moc \
+ group.moc \
+ guildlist.moc \
+ guild.moc \
+ guildshell.moc \
+ interface.moc \
+ logger.moc \
+ mapicondialog.moc \
+ mapicon.moc \
+ map.moc \
+ messagefilterdialog.moc \
+ messagefilter.moc \
+ messageshell.moc \
+ messages.moc \
+ messagewindow.moc \
+ netdiag.moc \
+ packetinfo.moc \
+ packetlog.moc \
+ packet.moc \
+ packetstream.moc \
+ player.moc \
+ seqlistview.moc \
+ seqwindow.moc \
+ skilllist.moc \
+ spawnlist2.moc \
+ spawnlistcommon.moc \
+ spawnlist.moc \
+ spawnlog.moc \
+ spawnmonitor.moc \
+ spawnpointlist.moc \
+ spawnshell.moc \
+ spelllist.moc \
+ spellshell.moc \
+ statlist.moc \
+ terminal.moc \
+ xmlpreferences.moc \
+ zonemgr.moc
+
+
nodist_showeq_SOURCES = ui_mapicondialog.h $(showeq_moc_SRCS)
$(srcdir)/bazaarlog.cpp: bazaarlog.moc
@@ -38,9 +133,9 @@
$(srcdir)/compassframe.cpp: compassframe.moc
$(srcdir)/datetimemgr.cpp: datetimemgr.moc
$(srcdir)/editor.cpp: editor.moc
-$(srcdir)/filterlistwindow.cpp: filterlistwindow.moc
$(srcdir)/experiencelog.cpp: experiencelog.moc
$(srcdir)/filteredspawnlog.cpp: filteredspawnlog.moc
+$(srcdir)/filterlistwindow.cpp: filterlistwindow.moc
$(srcdir)/filtermgr.cpp: filtermgr.moc
$(srcdir)/filternotifications.cpp: filternotifications.moc
$(srcdir)/group.cpp: group.moc
@@ -114,8 +209,107 @@
EXTRA_DIST = h2info.pl
-noinst_HEADERS = classes.h compass.h everquest.h interface.h main.h map.h filter.h vpacket.h editor.h filterlistwindow.h packet.h packetcapture.h packetcommon.h packetformat.h packetstream.h packetfragment.h packetinfo.h races.h skills.h spells.h util.h experiencelog.h combatlog.h spawn.h spawnshell.h spawnlist.h spellshell.h spelllist.h languages.h weapons.h weapons1.h weapons27.h weapons28.h weapons29.h weapons2a.h weapons2b.h weapons2c.h weapons2d.h weapons2e.h weapons2f.h weapons30.h weapons4e.h decode.h cgiconv.h skilllist.h statlist.h deity.h player.h crctab.h filtermgr.h point.h pointarray.h mapcore.h category.h compassframe.h group.h guild.h fixpt.h netdiag.h zones.h logger.h xmlconv.h xmlpreferences.h seqwindow.h seqlistview.h zonemgr.h spawnmonitor.h spawnpointlist.h typenames.h spawnlistcommon.h spawnlist2.h datetimemgr.h spawnlog.h packetlog.h datalocationmgr.h eqstr.h messages.h messagefilter.h messagewindow.h messageshell.h terminal.h filteredspawnlog.h messagefilterdialog.h diagnosticmessages.h mapicon.h mapicondialog.h mapicondialog.ui filternotifications.h netstream.h guildshell.h guildlist.h bazaarlog.h message.h s_everquest.h staticspells.h packetcaptureprovider.h mapcolors.h toolbaricons.h
+noinst_HEADERS = \
+ bazaarlog.h \
+ category.h \
+ cgiconv.h \
+ classes.h \
+ combatlog.h \
+ compassframe.h \
+ compass.h \
+ crctab.h \
+ datalocationmgr.h \
+ datetimemgr.h \
+ decode.h \
+ deity.h \
+ diagnosticmessages.h \
+ editor.h \
+ eqstr.h \
+ everquest.h \
+ experiencelog.h \
+ filteredspawnlog.h \
+ filter.h \
+ filterlistwindow.h \
+ filtermgr.h \
+ filternotifications.h \
+ fixpt.h \
+ group.h \
+ guild.h \
+ guildlist.h \
+ guildshell.h \
+ interface.h \
+ languages.h \
+ logger.h \
+ main.h \
+ mapcolors.h \
+ mapcore.h \
+ map.h \
+ mapicondialog.h \
+ mapicondialog.ui \
+ mapicon.h \
+ messagefilterdialog.h \
+ messagefilter.h \
+ message.h \
+ messages.h \
+ messageshell.h \
+ messagewindow.h \
+ netdiag.h \
+ netstream.h \
+ packetcapture.h \
+ packetcaptureprovider.h \
+ packetcommon.h \
+ packetformat.h \
+ packetfragment.h \
+ packet.h \
+ packetinfo.h \
+ packetlog.h \
+ packetstream.h \
+ player.h \
+ pointarray.h \
+ point.h \
+ races.h \
+ seqlistview.h \
+ seqwindow.h \
+ s_everquest.h \
+ skilllist.h \
+ skills.h \
+ spawn.h \
+ spawnlist2.h \
+ spawnlistcommon.h \
+ spawnlist.h \
+ spawnlog.h \
+ spawnmonitor.h \
+ spawnpointlist.h \
+ spawnshell.h \
+ spelllist.h \
+ spells.h \
+ spellshell.h \
+ staticspells.h \
+ statlist.h \
+ terminal.h \
+ toolbaricons.h \
+ typenames.h \
+ util.h \
+ vpacket.h \
+ weapons1.h \
+ weapons27.h \
+ weapons28.h \
+ weapons29.h \
+ weapons2a.h \
+ weapons2b.h \
+ weapons2c.h \
+ weapons2d.h \
+ weapons2e.h \
+ weapons2f.h \
+ weapons30.h \
+ weapons4e.h \
+ weapons.h \
+ xmlconv.h \
+ xmlpreferences.h \
+ zonemgr.h \
+ zones.h
+
CLEANFILES = $(nodist_showeq_SOURCES)
MAINTAINERCLEANFILES = Makefile.in s_everquest.h
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-08-21 20:00:49
|
Revision: 1537
http://sourceforge.net/p/seq/svn/1537
Author: cn187
Date: 2024-08-21 20:00:48 +0000 (Wed, 21 Aug 2024)
Log Message:
-----------
Tag for release 6.4.0
Added Paths:
-----------
showeq/tags/v_6_4_0/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-08-21 20:00:22
|
Revision: 1536
http://sourceforge.net/p/seq/svn/1536
Author: cn187
Date: 2024-08-21 20:00:20 +0000 (Wed, 21 Aug 2024)
Log Message:
-----------
Release 6.4.0
- Update to version 6.4.0
- Support for EQ Patch 08/21/24
- Struct and opcode updates
- Fixes:
- Improvements/fixes to various column sort/reorder/hide behavior
- Fixes for player-controlled external entity detection and updates, and related crash
- Rework packet capture filter to improve reliability of session detection
- Update OP_Consider logic to correctly display con colors and level
- Enable menu options to rename/delete spawnpoints
- Don't auto-select another mob when a targeted corpse decays
- Fixes for formatted messages
- Remove config.sub/config.guess from source and regenerate them as needed
- Character menu now allows selecting level 125
- Correctly interpret character x/y when loading map (fixes tiny map in northro, etc.)
- Correctly interpret zone ID for player purchased housing/guildhalls
- Enhancements:
- Add option to deselect your target if mob is untargeted
- Add support for configuring map line/location colors
- Add support for configuring PCAP snaplen and ring buffer size
- PCAP will now attempt to detect dropped packets and emit a warning with possible fixes
- New UI for adding and editing spawn filters
- Add support for using info/equipment fields in spawn filter matches
- Misc:
- Some internal and build system reorganization to make future changes less cumbersome
Modified Paths:
--------------
showeq/trunk/ChangeLog
showeq/trunk/conf/zoneopcodes.xml
showeq/trunk/configure.in
showeq/trunk/src/everquest.h
Modified: showeq/trunk/ChangeLog
===================================================================
--- showeq/trunk/ChangeLog 2024-08-21 20:00:10 UTC (rev 1535)
+++ showeq/trunk/ChangeLog 2024-08-21 20:00:20 UTC (rev 1536)
@@ -1,3 +1,29 @@
+cn187 (08/21/24)
+- Update to version 6.4.0
+- Support for EQ Patch 08/21/24
+- Struct and opcode updates
+- Fixes:
+ - Improvements/fixes to various column sort/reorder/hide behavior
+ - Fixes for player-controlled external entity detection and updates, and related crash
+ - Rework packet capture filter to improve reliability of session detection
+ - Update OP_Consider logic to correctly display con colors and level
+ - Enable menu options to rename/delete spawnpoints
+ - Don't auto-select another mob when a targeted corpse decays
+ - Fixes for formatted messages
+ - Remove config.sub/config.guess from source and regenerate them as needed
+ - Character menu now allows selecting level 125
+ - Correctly interpret character x/y when loading map (fixes tiny map in northro, etc.)
+ - Correctly interpret zone ID for player purchased housing/guildhalls
+- Enhancements:
+ - Add option to deselect your target if mob is untargeted
+ - Add support for configuring map line/location colors
+ - Add support for configuring PCAP snaplen and ring buffer size
+ - PCAP will now attempt to detect dropped packets and emit a warning with possible fixes
+ - New UI for adding and editing spawn filters
+ - Add support for using info/equipment fields in spawn filter matches
+- Misc:
+ - Some internal and build system reorganization to make future changes less cumbersome
+
cn187 (07/17/24)
----------------
- Update to version 6.3.16
Modified: showeq/trunk/conf/zoneopcodes.xml
===================================================================
--- showeq/trunk/conf/zoneopcodes.xml 2024-08-21 20:00:10 UTC (rev 1535)
+++ showeq/trunk/conf/zoneopcodes.xml 2024-08-21 20:00:20 UTC (rev 1536)
@@ -3,37 +3,37 @@
<seqopcodes>
<!-- Critical opcodes used directly by ShowEQ -->
- <opcode id="3193" name="OP_PlayerProfile" updated="07/17/24">
+ <opcode id="6acb" name="OP_PlayerProfile" updated="08/21/24">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="1eb3" name="OP_ZoneEntry" updated="07/17/24">
+ <opcode id="6bee" name="OP_ZoneEntry" updated="08/21/24">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="39b4" name="OP_TimeOfDay" updated="07/17/24">
+ <opcode id="7a78" name="OP_TimeOfDay" updated="08/21/24">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="518c" name="OP_NewZone" updated="07/17/24">
+ <opcode id="461c" name="OP_NewZone" updated="08/21/24">
<comment>NewZoneCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="221a" name="OP_SpawnDoor" updated="07/17/24">
+ <opcode id="3aa8" name="OP_SpawnDoor" updated="08/21/24">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="4feb" name="OP_GroundSpawn" updated="07/17/24">
+ <opcode id="24ad" name="OP_GroundSpawn" updated="08/21/24">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="4743" name="OP_SendZonePoints" updated="07/17/24">
+ <opcode id="4dc1" name="OP_SendZonePoints" updated="08/21/24">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
- <opcode id="0d97" name="OP_AAExpUpdate" updated="07/17/24">
+ <opcode id="35d1" name="OP_AAExpUpdate" updated="08/21/24">
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
@@ -41,32 +41,32 @@
<comment>ExpUpdateCode</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="37e3" name="OP_GuildMOTD" updated="07/17/24">
+ <opcode id="198f" name="OP_GuildMOTD" updated="08/21/24">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
- <opcode id="4187" name="OP_ClientUpdate" updated="07/17/24">
+ <opcode id="441b" name="OP_ClientUpdate" updated="08/21/24">
<comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1f6b" name="OP_NpcMoveUpdate" updated="07/17/24">
+ <opcode id="5332" name="OP_NpcMoveUpdate" updated="08/21/24">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="3afa" name="OP_MobUpdate" updated="07/17/24">
+ <opcode id="6f8e" name="OP_MobUpdate" updated="08/21/24">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="1a9e" name="OP_DeleteSpawn" updated="07/17/24">
+ <opcode id="6447" name="OP_DeleteSpawn" updated="08/21/24">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="67ae" name="OP_RemoveSpawn" updated="07/17/24">
+ <opcode id="4d80" name="OP_RemoveSpawn" updated="08/21/24">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
- <opcode id="7c61" name="OP_Death" updated="07/17/24">
+ <opcode id="3054" name="OP_Death" updated="08/21/24">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
@@ -74,7 +74,7 @@
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="033d" name="OP_SpawnAppearance" updated="07/17/24">
+ <opcode id="44c3" name="OP_SpawnAppearance" updated="08/21/24">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
@@ -86,15 +86,15 @@
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="2bfb" name="OP_GuildMemberUpdate" updated="07/17/24">
+ <opcode id="169c" name="OP_GuildMemberUpdate" updated="08/21/24">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="4454" name="OP_ClickObject" updated="07/17/24">
+ <opcode id="6cec" name="OP_ClickObject" updated="08/21/24">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
- <opcode id="681d" name="OP_Action" updated="07/17/24">
+ <opcode id="38ad" name="OP_Action" updated="08/21/24">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
@@ -103,11 +103,11 @@
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
- <opcode id="4126" name="OP_Consider" updated="07/17/24">
+ <opcode id="6fc1" name="OP_Consider" updated="08/21/24">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0987" name="OP_TargetMouse" updated="07/17/24">
+ <opcode id="13f6" name="OP_TargetMouse" updated="08/21/24">
<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="24bc" name="OP_ZoneChange" updated="07/17/24">
+ <opcode id="343e" name="OP_ZoneChange" updated="08/21/24">
<comment>old ZoneChangeCode</comment>
<payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
</opcode>
@@ -191,19 +191,19 @@
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
- <opcode id="1520" name="OP_SimpleMessage" updated="07/17/24">
+ <opcode id="7a7a" name="OP_SimpleMessage" updated="08/21/24">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
- <opcode id="3fc6" name="OP_FormattedMessage" updated="07/17/24">
+ <opcode id="01b6" name="OP_FormattedMessage" updated="08/21/24">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="60f9" name="OP_CommonMessage" updated="07/17/24">
+ <opcode id="41ec" name="OP_CommonMessage" updated="08/21/24">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="36f2" name="OP_SpecialMesg" updated="07/17/24">
+ <opcode id="24fe" name="OP_SpecialMesg" updated="08/21/24">
<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="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="6d8b" name="OP_GuildMemberList" updated="07/17/24">
+ <opcode id="0ae8" name="OP_GuildMemberList" updated="08/21/24">
<comment>List of guild members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -367,7 +367,7 @@
<comment>Fellowship information - 2576 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="725b" name="OP_ExpandedGuildInfo" updated="07/17/24">
+ <opcode id="ffff" name="OP_ExpandedGuildInfo" updated="07/17/24">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -535,7 +535,7 @@
<comment>Listing of all guilds. Can be triggered by /lfg search?</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="3f04" name="OP_GuildsInZoneList" updated="07/17/24">
+ <opcode id="4a89" name="OP_GuildsInZoneList" updated="08/21/24">
<comment>Listing of guild names present in the current zone. Generally seen on zoning</comment>
<payload dir="server" typename="guildsInZoneListStruct" sizechecktype="none"/>
</opcode>
@@ -595,7 +595,7 @@
<comment>Free to play nags and other data - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="54c9" name="OP_Find" updated="07/17/24">
+ <opcode id="56f4" name="OP_Find" updated="08/21/24">
<comment>Find window data - 112 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
Modified: showeq/trunk/configure.in
===================================================================
--- showeq/trunk/configure.in 2024-08-21 20:00:10 UTC (rev 1535)
+++ showeq/trunk/configure.in 2024-08-21 20:00:20 UTC (rev 1536)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 6.3.16)
+AC_INIT(showeq, 6.4.0)
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 2024-08-21 20:00:10 UTC (rev 1535)
+++ showeq/trunk/src/everquest.h 2024-08-21 20:00:20 UTC (rev 1536)
@@ -1119,31 +1119,25 @@
struct
{
- signed deltaX:13; // change in x
- signed deltaY:13; // change in y
- unsigned padding00:6;
-
unsigned heading:12; // heading
- signed x:19; // x coord (1st loc value)
- unsigned padding01:1;
+ signed animation:10; // current animation
+ unsigned padding00:10;
+ signed deltaZ:13; // change in z
+ signed y:19; // y coord (2nd loc value)
+
+ signed deltaX:13; // change in x
signed z:19; // z coord (3rd loc value)
- unsigned padding02:13;
- signed y:19; // y coord (2nd loc value)
+ unsigned pitch:12; // pitch (up/down heading)
signed deltaHeading:10; // change in heading
- unsigned padding03:3;
+ unsigned padding03:10;
- signed deltaZ:13; // change in z
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding04:7;
+ signed deltaY:13; // change in y
+ signed x:19; // x coord (1st loc value)
- signed animation:10; // current animation
- unsigned padding05:22;
-
};
- int32_t posData[6];
-
+ int32_t posData[5];
};
/*0000*/ union
@@ -2393,7 +2387,7 @@
/*
** Player Position Update
-** Length: 28 Octets
+** Length: 24 Octets
** OpCode: PlayerPosCode
*/
struct playerSpawnPosStruct
@@ -2401,28 +2395,23 @@
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
/*0004*/
- signed deltaX:13; // change in x
- signed deltaY:13; // change in y
- unsigned padding00:6;
+ unsigned heading:12; // heading
+ signed animation:10; // current animation
+ unsigned padding00:10;
/*0008*/
- unsigned heading:12; // heading
- signed x:19; // x coord (1st loc value)
- unsigned padding01:1;
+ signed deltaZ:13; // change in z
+ signed y:19; // y coord (2nd loc value)
/*0012*/
+ signed deltaX:13; // change in x
signed z:19; // z coord (3rd loc value)
- unsigned padding02:13;
/*0016*/
- signed y:19; // y coord (2nd loc value)
+ unsigned pitch:12; // pitch (up/down heading)
signed deltaHeading:10; // change in heading
- unsigned padding03:3;
+ unsigned padding03:10;
/*0020*/
- signed deltaZ:13; // change in z
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding04:7;
+ signed deltaY:13; // change in y
+ signed x:19; // x coord (1st loc value)
/*0024*/
- signed animation:10; // current animation
- unsigned padding05:22;
-/*0028*/
};
/*
@@ -2436,27 +2425,27 @@
/*0002*/ uint16_t spawnId; // Player's spawn id
/*0004*/ uint16_t unknown0004; // ***Placeholder
/*0006*/
- float x; // x coord (1st loc value)
+ float z; // z coord (3rd loc value)
/*0010*/
- signed deltaHeading:10; // change in heading
- unsigned padding01:22;
+ float y; // y coord (2nd loc value)
/*0014*/
- float z; // z coord (3rd loc value)
+ unsigned heading:12; // heading
+ unsigned padding02:20;
/*0018*/
- float deltaZ; // change in z
+ float deltaX; // change in x
/*0022*/
+ float x; // x coord (1st loc value)
+/*0026*/
signed animation:10; // current animation
- unsigned padding04:22;
-/*0026*/
- float deltaX; // change in x
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding05:10;
/*0030*/
float deltaY; // change in y
/*0034*/
- unsigned heading:12; // heading
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding07:8;
+ signed deltaHeading:10; // change in heading
+ unsigned padding07:22;
/*0038*/
- float y; // y coord (2nd loc value)
+ float deltaZ; // change in z
/*0042*/
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-08-21 20:00:14
|
Revision: 1535
http://sourceforge.net/p/seq/svn/1535
Author: cn187
Date: 2024-08-21 20:00:10 +0000 (Wed, 21 Aug 2024)
Log Message:
-----------
Reorganize makefile for easier merging
Modified Paths:
--------------
showeq/trunk/src/Makefile.am
Modified: showeq/trunk/src/Makefile.am
===================================================================
--- showeq/trunk/src/Makefile.am 2024-08-21 20:00:03 UTC (rev 1534)
+++ showeq/trunk/src/Makefile.am 2024-08-21 20:00:10 UTC (rev 1535)
@@ -2,33 +2,128 @@
QT_LIBS = $(LIB_QT)
-bin_PROGRAMS = showeq
+bin_PROGRAMS = showeq
-showeq_SOURCES = main.cpp spawn.cpp spawnshell.cpp spawnlist.cpp spellshell.cpp \
- spelllist.cpp vpacket.cpp editor.cpp filterlistwindow.cpp filter.cpp packetfragment.cpp packetstream.cpp \
- packetinfo.cpp packet.cpp packetcapture.cpp packetformat.cpp interface.cpp compass.cpp \
- map.cpp util.cpp experiencelog.cpp combatlog.cpp player.cpp skilllist.cpp \
- statlist.cpp filtermgr.cpp mapcore.cpp category.cpp compassframe.cpp group.cpp \
- guild.cpp netdiag.cpp logger.cpp xmlconv.cpp xmlpreferences.cpp seqwindow.cpp \
- seqlistview.cpp zonemgr.cpp spawnmonitor.cpp spawnpointlist.cpp spawnlistcommon.cpp \
- spawnlist2.cpp spells.cpp datetimemgr.cpp spawnlog.cpp packetlog.cpp \
- datalocationmgr.cpp eqstr.cpp messages.cpp message.cpp messagefilter.cpp messagewindow.cpp \
- messageshell.cpp terminal.cpp filteredspawnlog.cpp messagefilterdialog.cpp \
- diagnosticmessages.cpp mapicon.cpp filternotifications.cpp netstream.cpp guildshell.cpp \
- guildlist.cpp bazaarlog.cpp mapicondialog.cpp packetcaptureprovider.cpp toolbaricons.cpp
+showeq_SOURCES = \
+ bazaarlog.cpp \
+ category.cpp \
+ combatlog.cpp \
+ compass.cpp \
+ compassframe.cpp \
+ datalocationmgr.cpp \
+ datetimemgr.cpp \
+ diagnosticmessages.cpp \
+ editor.cpp \
+ eqstr.cpp \
+ experiencelog.cpp \
+ filter.cpp \
+ filteredspawnlog.cpp \
+ filterlistwindow.cpp \
+ filtermgr.cpp \
+ filternotifications.cpp \
+ group.cpp \
+ guild.cpp \
+ guildlist.cpp \
+ guildshell.cpp \
+ interface.cpp \
+ logger.cpp \
+ main.cpp \
+ mapcore.cpp \
+ map.cpp \
+ mapicon.cpp \
+ mapicondialog.cpp \
+ message.cpp \
+ messagefilter.cpp \
+ messagefilterdialog.cpp \
+ messages.cpp \
+ messageshell.cpp \
+ messagewindow.cpp \
+ netdiag.cpp \
+ netstream.cpp \
+ packetcapture.cpp \
+ packetcaptureprovider.cpp \
+ packet.cpp \
+ packetformat.cpp \
+ packetfragment.cpp \
+ packetinfo.cpp \
+ packetlog.cpp \
+ packetstream.cpp \
+ player.cpp \
+ seqlistview.cpp \
+ seqwindow.cpp \
+ skilllist.cpp \
+ spawn.cpp \
+ spawnlist2.cpp \
+ spawnlistcommon.cpp \
+ spawnlist.cpp \
+ spawnlog.cpp \
+ spawnmonitor.cpp \
+ spawnpointlist.cpp \
+ spawnshell.cpp \
+ spelllist.cpp \
+ spells.cpp \
+ spellshell.cpp \
+ statlist.cpp \
+ terminal.cpp \
+ toolbaricons.cpp \
+ util.cpp \
+ vpacket.cpp \
+ xmlconv.cpp \
+ xmlpreferences.cpp \
+ zonemgr.cpp
-showeq_moc_SRCS = bazaarlog.moc category.moc combatlog.moc compass.moc \
- compassframe.moc datetimemgr.moc editor.moc filterlistwindow.moc experiencelog.moc \
- filteredspawnlog.moc filtermgr.moc filternotifications.moc group.moc \
- guild.moc guildlist.moc guildshell.moc interface.moc logger.moc \
- map.moc mapicon.moc mapicondialog.moc messagefilter.moc \
- messagefilterdialog.moc messages.moc messageshell.moc messagewindow.moc \
- netdiag.moc packet.moc packetinfo.moc packetlog.moc packetstream.moc \
- player.moc seqlistview.moc seqwindow.moc skilllist.moc spawnlist.moc \
- spawnlist2.moc spawnlistcommon.moc spawnlog.moc spawnmonitor.moc \
- spawnpointlist.moc spawnshell.moc spelllist.moc spellshell.moc statlist.moc \
- terminal.moc xmlpreferences.moc zonemgr.moc
+showeq_moc_SRCS = \
+ bazaarlog.moc \
+ category.moc \
+ combatlog.moc \
+ compassframe.moc \
+ compass.moc \
+ datetimemgr.moc \
+ editor.moc \
+ experiencelog.moc \
+ filteredspawnlog.moc \
+ filterlistwindow.moc \
+ filtermgr.moc \
+ filternotifications.moc \
+ group.moc \
+ guildlist.moc \
+ guild.moc \
+ guildshell.moc \
+ interface.moc \
+ logger.moc \
+ mapicondialog.moc \
+ mapicon.moc \
+ map.moc \
+ messagefilterdialog.moc \
+ messagefilter.moc \
+ messageshell.moc \
+ messages.moc \
+ messagewindow.moc \
+ netdiag.moc \
+ packetinfo.moc \
+ packetlog.moc \
+ packet.moc \
+ packetstream.moc \
+ player.moc \
+ seqlistview.moc \
+ seqwindow.moc \
+ skilllist.moc \
+ spawnlist2.moc \
+ spawnlistcommon.moc \
+ spawnlist.moc \
+ spawnlog.moc \
+ spawnmonitor.moc \
+ spawnpointlist.moc \
+ spawnshell.moc \
+ spelllist.moc \
+ spellshell.moc \
+ statlist.moc \
+ terminal.moc \
+ xmlpreferences.moc \
+ zonemgr.moc
+
+
nodist_showeq_SOURCES = ui_mapicondialog.h $(showeq_moc_SRCS)
$(srcdir)/bazaarlog.cpp: bazaarlog.moc
@@ -38,9 +133,9 @@
$(srcdir)/compassframe.cpp: compassframe.moc
$(srcdir)/datetimemgr.cpp: datetimemgr.moc
$(srcdir)/editor.cpp: editor.moc
-$(srcdir)/filterlistwindow.cpp: filterlistwindow.moc
$(srcdir)/experiencelog.cpp: experiencelog.moc
$(srcdir)/filteredspawnlog.cpp: filteredspawnlog.moc
+$(srcdir)/filterlistwindow.cpp: filterlistwindow.moc
$(srcdir)/filtermgr.cpp: filtermgr.moc
$(srcdir)/filternotifications.cpp: filternotifications.moc
$(srcdir)/group.cpp: group.moc
@@ -114,8 +209,107 @@
EXTRA_DIST = h2info.pl
-noinst_HEADERS = classes.h compass.h everquest.h interface.h main.h map.h filter.h vpacket.h editor.h filterlistwindow.h packet.h packetcapture.h packetcommon.h packetformat.h packetstream.h packetfragment.h packetinfo.h races.h skills.h spells.h util.h experiencelog.h combatlog.h spawn.h spawnshell.h spawnlist.h spellshell.h spelllist.h languages.h weapons.h weapons1.h weapons27.h weapons28.h weapons29.h weapons2a.h weapons2b.h weapons2c.h weapons2d.h weapons2e.h weapons2f.h weapons30.h weapons4e.h decode.h cgiconv.h skilllist.h statlist.h deity.h player.h crctab.h filtermgr.h point.h pointarray.h mapcore.h category.h compassframe.h group.h guild.h fixpt.h netdiag.h zones.h logger.h xmlconv.h xmlpreferences.h seqwindow.h seqlistview.h zonemgr.h spawnmonitor.h spawnpointlist.h typenames.h spawnlistcommon.h spawnlist2.h datetimemgr.h spawnlog.h packetlog.h datalocationmgr.h eqstr.h messages.h messagefilter.h messagewindow.h messageshell.h terminal.h filteredspawnlog.h messagefilterdialog.h diagnosticmessages.h mapicon.h mapicondialog.h mapicondialog.ui filternotifications.h netstream.h guildshell.h guildlist.h bazaarlog.h message.h s_everquest.h staticspells.h packetcaptureprovider.h mapcolors.h toolbaricons.h
+noinst_HEADERS = \
+ bazaarlog.h \
+ category.h \
+ cgiconv.h \
+ classes.h \
+ combatlog.h \
+ compassframe.h \
+ compass.h \
+ crctab.h \
+ datalocationmgr.h \
+ datetimemgr.h \
+ decode.h \
+ deity.h \
+ diagnosticmessages.h \
+ editor.h \
+ eqstr.h \
+ everquest.h \
+ experiencelog.h \
+ filteredspawnlog.h \
+ filter.h \
+ filterlistwindow.h \
+ filtermgr.h \
+ filternotifications.h \
+ fixpt.h \
+ group.h \
+ guild.h \
+ guildlist.h \
+ guildshell.h \
+ interface.h \
+ languages.h \
+ logger.h \
+ main.h \
+ mapcolors.h \
+ mapcore.h \
+ map.h \
+ mapicondialog.h \
+ mapicondialog.ui \
+ mapicon.h \
+ messagefilterdialog.h \
+ messagefilter.h \
+ message.h \
+ messages.h \
+ messageshell.h \
+ messagewindow.h \
+ netdiag.h \
+ netstream.h \
+ packetcapture.h \
+ packetcaptureprovider.h \
+ packetcommon.h \
+ packetformat.h \
+ packetfragment.h \
+ packet.h \
+ packetinfo.h \
+ packetlog.h \
+ packetstream.h \
+ player.h \
+ pointarray.h \
+ point.h \
+ races.h \
+ seqlistview.h \
+ seqwindow.h \
+ s_everquest.h \
+ skilllist.h \
+ skills.h \
+ spawn.h \
+ spawnlist2.h \
+ spawnlistcommon.h \
+ spawnlist.h \
+ spawnlog.h \
+ spawnmonitor.h \
+ spawnpointlist.h \
+ spawnshell.h \
+ spelllist.h \
+ spells.h \
+ spellshell.h \
+ staticspells.h \
+ statlist.h \
+ terminal.h \
+ toolbaricons.h \
+ typenames.h \
+ util.h \
+ vpacket.h \
+ weapons1.h \
+ weapons27.h \
+ weapons28.h \
+ weapons29.h \
+ weapons2a.h \
+ weapons2b.h \
+ weapons2c.h \
+ weapons2d.h \
+ weapons2e.h \
+ weapons2f.h \
+ weapons30.h \
+ weapons4e.h \
+ weapons.h \
+ xmlconv.h \
+ xmlpreferences.h \
+ zonemgr.h \
+ zones.h
+
CLEANFILES = $(nodist_showeq_SOURCES)
MAINTAINERCLEANFILES = Makefile.in s_everquest.h
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-08-21 20:00:06
|
Revision: 1534
http://sourceforge.net/p/seq/svn/1534
Author: cn187
Date: 2024-08-21 20:00:03 +0000 (Wed, 21 Aug 2024)
Log Message:
-----------
Increase max level to 125 for Character menu
Modified Paths:
--------------
showeq/trunk/src/interface.cpp
Modified: showeq/trunk/src/interface.cpp
===================================================================
--- showeq/trunk/src/interface.cpp 2024-08-21 19:59:55 UTC (rev 1533)
+++ showeq/trunk/src/interface.cpp 2024-08-21 20:00:03 UTC (rev 1534)
@@ -2052,7 +2052,7 @@
m_levelSpinBox = new QSpinBox(this);
m_levelSpinBox->setObjectName("m_levelSpinBox");
m_levelSpinBox->setMinimum(1);
- m_levelSpinBox->setMaximum(115);
+ m_levelSpinBox->setMaximum(125);
m_levelSpinBox->setSingleStep(1);
QWidgetAction* levelSpinBoxAction = new QWidgetAction(m_charLevelMenu);
levelSpinBoxAction->setDefaultWidget(m_levelSpinBox);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-08-21 19:59:58
|
Revision: 1533
http://sourceforge.net/p/seq/svn/1533
Author: cn187
Date: 2024-08-21 19:59:55 +0000 (Wed, 21 Aug 2024)
Log Message:
-----------
Break out main menu and status bar creation
Break main menu and status bar creation into separate functions
in order to reduce the size and increase readability of the EQInterface
constructor.
Modified Paths:
--------------
showeq/trunk/src/interface.cpp
showeq/trunk/src/interface.h
Modified: showeq/trunk/src/interface.cpp
===================================================================
--- showeq/trunk/src/interface.cpp 2024-08-21 19:59:48 UTC (rev 1532)
+++ showeq/trunk/src/interface.cpp 2024-08-21 19:59:55 UTC (rev 1533)
@@ -104,6 +104,16 @@
// this define is used to diagnose the order with which zone packets are rcvd
#define ZONE_ORDER_DIAG
+const char* player_classes[] = {"Warrior", "Cleric", "Paladin",
+ "Ranger", "Shadow Knight", "Druid", "Monk", "Bard", "Rogue", "Shaman",
+ "Necromancer", "Wizard", "Magician", "Enchanter", "Beastlord", "Berserker"
+};
+
+const char* player_races[] = {"Human", "Barbarian", "Erudite",
+ "Wood elf", "High Elf", "Dark Elf", "Half Elf", "Dwarf", "Troll", "Ogre",
+ "Halfling", "Gnome", "Iksar", "Vah Shir", "Froglok" };
+
+
/* The main interface widget */
EQInterface::EQInterface(DataLocationMgr* dlm,
QWidget * parent, const char *name)
@@ -175,18 +185,6 @@
m_selectOnTarget = pSEQPrefs->getPrefBool("SelectOnTarget", section, false);
m_deselectOnUntarget = pSEQPrefs->getPrefBool("DeselectOnUntarget", section, false);
- const char* player_classes[] = {"Warrior", "Cleric", "Paladin", "Ranger",
- "Shadow Knight", "Druid", "Monk", "Bard",
- "Rogue", "Shaman", "Necromancer", "Wizard",
- "Magician", "Enchanter", "Beastlord",
- "Berserker"
- };
- const char* player_races[] = {"Human", "Barbarian", "Erudite", "Wood elf",
- "High Elf", "Dark Elf", "Half Elf", "Dwarf",
- "Troll", "Ogre", "Halfling", "Gnome", "Iksar",
- "Vah Shir", "Froglok"
- };
-
// set the applications default font
if (pSEQPrefs->isPreference("Font", section))
{
@@ -537,11 +535,710 @@
// The first call to menuBar() makes it exist
menuBar()->addSeparator();
+ createFileMenu();
+ createViewMenu();
+ createOptionsMenu();
+ createNetworkMenu();
+ createCharacterMenu();
+ createFiltersMenu();
+ createInterfaceMenu();
+ createWindowMenu();
+ createDebugMenu();
+
+////////////////////
+// QStatusBar creation
+ createStatusBar();
+
+/////////////////
+// interface connections
+ // connect EQInterface slots to its own signals
+ connect(this, SIGNAL(restoreFonts(void)),
+ this, SLOT(restoreStatusFont(void)));
+
+ // connect MapMgr slots to interface signals
+ connect(this, SIGNAL(saveAllPrefs(void)),
+ m_mapMgr, SLOT(savePrefs(void)));
+
+ // connect CategoryMgr slots to interface signals
+ connect(this, SIGNAL(saveAllPrefs(void)),
+ m_categoryMgr, SLOT(savePrefs(void)));
+
+ if (m_zoneMgr)
+ {
+ m_packet->connect2("OP_ZoneEntry", SP_Zone, DIR_Client,
+ "ClientZoneEntryStruct", SZC_Match,
+ m_zoneMgr, SLOT(zoneEntryClient(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_PlayerProfile", SP_Zone, DIR_Server,
+ "uint8_t", SZC_None,
+ m_zoneMgr, SLOT(zonePlayer(const uint8_t*, size_t)));
+ m_packet->connect2("OP_ZoneChange", SP_Zone, DIR_Client|DIR_Server,
+ "zoneChangeStruct", SZC_Match,
+ m_zoneMgr, SLOT(zoneChange(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_NewZone", SP_Zone, DIR_Server,
+ "uint8_t", SZC_None,
+ m_zoneMgr, SLOT(zoneNew(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_SendZonePoints", SP_Zone, DIR_Server,
+ "zonePointsStruct", SZC_None,
+ m_zoneMgr, SLOT(zonePoints(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_DzSwitchInfo", SP_Zone, DIR_Server,
+ "dzSwitchInfo", SZC_None,
+ m_zoneMgr, SLOT(dynamicZonePoints(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_DzInfo", SP_Zone, DIR_Server,
+ "dzInfo", SZC_Match,
+ m_zoneMgr, SLOT(dynamicZoneInfo(const uint8_t*, size_t, uint8_t)));
+ }
+
+ if (m_groupMgr != 0)
+ {
+ connect(m_zoneMgr, SIGNAL(playerProfile(const charProfileStruct*)),
+ m_groupMgr, SLOT(player(const charProfileStruct*)));
+ m_packet->connect2("OP_GroupUpdate", SP_Zone, DIR_Server,
+ "uint8_t", SZC_None,
+ m_groupMgr, SLOT(groupUpdate(const uint8_t*, size_t)));
+ m_packet->connect2("OP_GroupFollow", SP_Zone, DIR_Server,
+ "groupFollowStruct", SZC_Match,
+ m_groupMgr, SLOT(addGroupMember(const uint8_t*)));
+ m_packet->connect2("OP_GroupDisband", SP_Zone, DIR_Server,
+ "groupDisbandStruct", SZC_Match,
+ m_groupMgr, SLOT(removeGroupMember(const uint8_t*)));
+ m_packet->connect2("OP_GroupDisband2", SP_Zone, DIR_Server,
+ "groupDisbandStruct", SZC_Match,
+ m_groupMgr, SLOT(removeGroupMember(const uint8_t*)));
+ // connect GroupMgr slots to SpawnShell signals
+ connect(m_spawnShell, SIGNAL(addItem(const Item*)),
+ m_groupMgr, SLOT(addItem(const Item*)));
+ // connect GroupMgr slots to SpawnShell signals
+ connect(m_spawnShell, SIGNAL(delItem(const Item*)),
+ m_groupMgr, SLOT(delItem(const Item*)));
+ // connect GroupMgr slots to SpawnShell signals
+ connect(m_spawnShell, SIGNAL(killSpawn(const Item*, const Item*, uint16_t)),
+ m_groupMgr, SLOT(killSpawn(const Item*)));
+ }
+
+ if (m_dateTimeMgr)
+ {
+ // connect DateTimeMgr slots to EQPacket signals
+ m_packet->connect2("OP_TimeOfDay", SP_Zone, DIR_Server,
+ "timeOfDayStruct", SZC_Match,
+ m_dateTimeMgr, SLOT(timeOfDay(const uint8_t*)));
+
+ // connect interface slots to DateTimeMgr signals
+ connect(m_dateTimeMgr, SIGNAL(updatedDateTime(const QDateTime&)),
+ this, SLOT(updatedDateTime(const QDateTime&)));
+
+ connect(m_dateTimeMgr, SIGNAL(syncDateTime(const QDateTime&)),
+ this, SLOT(syncDateTime(const QDateTime&)));
+ }
+
+ if (m_filterMgr)
+ {
+ connect(m_zoneMgr, SIGNAL(zoneBegin(const QString&)),
+ m_filterMgr, SLOT(loadZone(const QString&)));
+ connect(m_zoneMgr, SIGNAL(zoneEnd(const QString&, const QString&)),
+ m_filterMgr, SLOT(loadZone(const QString&)));
+ connect(m_zoneMgr, SIGNAL(zoneChanged(const QString&)),
+ m_filterMgr, SLOT(loadZone(const QString&)));
+ }
+
+ if (m_guildmgr)
+ {
+ /*
+ m_packet->connect2("OP_GuildList", SP_World, DIR_Server,
+ "worldGuildListStruct", SZC_None,
+ m_guildmgr,
+ SLOT(worldGuildList(const uint8_t*, size_t)));
+ */
+
+ m_packet->connect2("OP_GuildsInZoneList", SP_Zone, DIR_Server,
+ "guildsInZoneListStruct", SZC_None, m_guildmgr,
+ SLOT(guildsInZoneList(const uint8_t*, size_t)));
+
+ m_packet->connect2("OP_NewGuildInZone", SP_Zone, DIR_Server,
+ "newGuildInZoneStruct", SZC_None, m_guildmgr,
+ SLOT(newGuildInZone(const uint8_t*, size_t)));
+
+ connect(this, SIGNAL(guildList2text(QString)),
+ m_guildmgr, SLOT(guildList2text(QString)));
+
+ }
+
+ if (m_guildShell)
+ {
+ m_packet->connect2("OP_GuildMemberList", SP_Zone, DIR_Server,
+ "uint8_t", SZC_None,
+ m_guildShell,
+ SLOT(guildMemberList(const uint8_t*, size_t)));
+ m_packet->connect2("OP_GuildMemberUpdate", SP_Zone, DIR_Server,
+ "GuildMemberUpdate", SZC_Match,
+ m_guildShell,
+ SLOT(guildMemberUpdate(const uint8_t*, size_t)));
+ }
+
+ if (m_messageShell)
+ {
+ m_packet->connect2("OP_CommonMessage", SP_Zone, DIR_Client|DIR_Server,
+ "channelMessageStruct", SZC_None,
+ m_messageShell,
+ SLOT(channelMessage(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_FormattedMessage", SP_Zone, DIR_Server,
+ "formattedMessageStruct", SZC_None,
+ m_messageShell,
+ SLOT(formattedMessage(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_SimpleMessage", SP_Zone, DIR_Server,
+ "simpleMessageStruct", SZC_Match,
+ m_messageShell,
+ SLOT(simpleMessage(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_SpecialMesg", SP_Zone, DIR_Server,
+ "specialMessageStruct", SZC_None,
+ m_messageShell,
+ SLOT(specialMessage(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_GuildMOTD", SP_Zone, DIR_Server,
+ "guildMOTDStruct", SZC_None,
+ m_messageShell,
+ SLOT(guildMOTD(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_RandomReq", SP_Zone, DIR_Client,
+ "randomReqStruct", SZC_Match,
+ m_messageShell, SLOT(randomRequest(const uint8_t*)));
+ m_packet->connect2("OP_RandomReply", SP_Zone, DIR_Server,
+ "randomStruct", SZC_Match,
+ m_messageShell, SLOT(random(const uint8_t*)));
+ m_packet->connect2("OP_ConsentResponse", SP_Zone, DIR_Server,
+ "consentResponseStruct", SZC_Match,
+ m_messageShell, SLOT(consent(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_DenyResponse", SP_Zone, DIR_Server,
+ "consentResponseStruct", SZC_Match,
+ m_messageShell, SLOT(consent(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_Emote", SP_Zone, DIR_Server|DIR_Client,
+ "emoteTextStruct", SZC_None,
+ m_messageShell, SLOT(emoteText(const uint8_t*)));
+ m_packet->connect2("OP_InspectAnswer", SP_Zone, DIR_Server,
+ "inspectDataStruct", SZC_Match,
+ m_messageShell, SLOT(inspectData(const uint8_t*)));
+ m_packet->connect2("OP_MoneyOnCorpse", SP_Zone, DIR_Server,
+ "moneyOnCorpseStruct", SZC_Match,
+ m_messageShell, SLOT(moneyOnCorpse(const uint8_t*)));
+ m_packet->connect2("OP_Logout", SP_Zone, DIR_Server,
+ "none", SZC_Match,
+ m_messageShell, SLOT(logOut(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_NewZone", SP_Zone, DIR_Server,
+ "uint8_t", SZC_None,
+ m_messageShell, SLOT(zoneNew(const uint8_t*, size_t, uint8_t)));
+ connect(m_zoneMgr, SIGNAL(zoneBegin(const ClientZoneEntryStruct*, size_t, uint8_t)),
+ m_messageShell, SLOT(zoneEntryClient(const ClientZoneEntryStruct*)));
+ connect(m_zoneMgr, SIGNAL(zoneChanged(const zoneChangeStruct*, size_t, uint8_t)),
+ m_messageShell, SLOT(zoneChanged(const zoneChangeStruct*, size_t, uint8_t)));
+ connect(m_zoneMgr, SIGNAL(zoneBegin(const QString&)),
+ m_messageShell, SLOT(zoneBegin(const QString&)));
+ connect(m_zoneMgr, SIGNAL(zoneEnd(const QString&, const QString&)),
+ m_messageShell, SLOT(zoneEnd(const QString&, const QString&)));
+ connect(m_zoneMgr, SIGNAL(zoneChanged(const QString&)),
+ m_messageShell, SLOT(zoneChanged(const QString&)));
+
+ m_packet->connect2("OP_MOTD", SP_World, DIR_Server,
+ "worldMOTDStruct", SZC_None,
+ m_messageShell, SLOT(worldMOTD(const uint8_t*)));
+ m_packet->connect2("OP_MemorizeSpell", SP_Zone, DIR_Server|DIR_Client,
+ "memSpellStruct", SZC_Match,
+ m_messageShell, SLOT(handleSpell(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_BeginCast", SP_Zone, DIR_Server|DIR_Client,
+ "beginCastStruct", SZC_Match,
+ m_messageShell, SLOT(beginCast(const uint8_t*)));
+ m_packet->connect2("OP_BuffFadeMsg", SP_Zone, DIR_Server|DIR_Client,
+ "spellFadedStruct", SZC_None,
+ m_messageShell, SLOT(spellFaded(const uint8_t*)));
+ m_packet->connect2("OP_CastSpell", SP_Zone, DIR_Server|DIR_Client,
+ "startCastStruct", SZC_Match,
+ m_messageShell, SLOT(startCast(const uint8_t*)));
+ connect(m_zoneMgr, SIGNAL(playerProfile(const charProfileStruct*)),
+ m_messageShell, SLOT(player(const charProfileStruct*)));
+ m_packet->connect2("OP_SkillUpdate", SP_Zone, DIR_Server,
+ "skillIncStruct", SZC_Match,
+ m_messageShell, SLOT(increaseSkill(const uint8_t*)));
+ m_packet->connect2("OP_LevelUpdate", SP_Zone, DIR_Server,
+ "levelUpUpdateStruct", SZC_Match,
+ m_messageShell, SLOT(updateLevel(const uint8_t*)));
+
+ m_packet->connect2("OP_Consider", SP_Zone, DIR_Server,
+ "considerStruct", SZC_Match,
+ m_messageShell, SLOT(consMessage(const uint8_t*, size_t, uint8_t)));
+
+ connect(m_player, SIGNAL(setExp(uint32_t, uint32_t, uint32_t, uint32_t,
+ uint32_t)),
+ m_messageShell, SLOT(setExp(uint32_t, uint32_t, uint32_t,
+ uint32_t, uint32_t)));
+ connect(m_player, SIGNAL(newExp(uint32_t, uint32_t, uint32_t, uint32_t,
+ uint32_t, uint32_t)),
+ m_messageShell, SLOT(newExp(uint32_t, uint32_t, uint32_t,
+ uint32_t, uint32_t, uint32_t)));
+ connect(m_player, SIGNAL(setAltExp(uint32_t, uint32_t, uint32_t, uint32_t)),
+ m_messageShell, SLOT(setAltExp(uint32_t, uint32_t, uint32_t, uint32_t)));
+ connect(m_player, SIGNAL(newAltExp(uint32_t, uint32_t, uint32_t, uint32_t,
+ uint32_t, uint32_t)),
+ m_messageShell, SLOT(newAltExp(uint32_t, uint32_t, uint32_t, uint32_t,
+ uint32_t, uint32_t)));
+
+ connect(m_spawnShell, SIGNAL(addItem(const Item*)),
+ m_messageShell, SLOT(addItem(const Item*)));
+ connect(m_spawnShell, SIGNAL(delItem(const Item*)),
+ m_messageShell, SLOT(delItem(const Item*)));
+ connect(m_spawnShell, SIGNAL(killSpawn(const Item*, const Item*, uint16_t)),
+ m_messageShell, SLOT(killSpawn(const Item*)));
+
+ connect(m_dateTimeMgr, SIGNAL(syncDateTime(const QDateTime&)),
+ m_messageShell, SLOT(syncDateTime(const QDateTime&)));
+
+// 9/3/2008 - Removed. Serialized packet now.
+// m_packet->connect2("OP_GroupUpdate", SP_Zone, DIR_Server,
+// "groupUpdateStruct", SZC_None,
+// m_messageShell, SLOT(groupUpdate(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_GroupInvite", SP_Zone, DIR_Client|DIR_Server,
+ "groupInviteStruct", SZC_None,
+ m_messageShell, SLOT(groupInvite(const uint8_t*, size_t, uint8_t)));
+// m_packet->connect2("OP_GroupInvite", SP_Zone, DIR_Server,
+// "groupAltInviteStruct", SZC_Match,
+// m_messageShell, SLOT(groupInvite(const uint8_t*)));
+ m_packet->connect2("OP_GroupInvite2", SP_Zone, DIR_Client,
+ "groupInviteStruct", SZC_None,
+ m_messageShell, SLOT(groupInvite(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_GroupFollow", SP_Zone, DIR_Server,
+ "groupFollowStruct", SZC_Match,
+ m_messageShell, SLOT(groupFollow(const uint8_t*)));
+ m_packet->connect2("OP_GroupFollow2", SP_Zone, DIR_Server,
+ "groupFollowStruct", SZC_Match,
+ m_messageShell, SLOT(groupFollow(const uint8_t*)));
+ m_packet->connect2("OP_GroupDisband", SP_Zone, DIR_Server,
+ "groupDisbandStruct", SZC_Match,
+ m_messageShell, SLOT(groupDisband(const uint8_t*)));
+ m_packet->connect2("OP_GroupDisband2", SP_Zone, DIR_Server,
+ "groupDisbandStruct", SZC_Match,
+ m_messageShell, SLOT(groupDisband(const uint8_t*)));
+ m_packet->connect2("OP_GroupCancelInvite", SP_Zone, DIR_Server|DIR_Client,
+ "groupDeclineStruct", SZC_Match,
+ m_messageShell, SLOT(groupDecline(const uint8_t*)));
+ m_packet->connect2("OP_GroupLeader", SP_Zone, DIR_Server,
+ "groupLeaderChangeStruct", SZC_Match,
+ m_messageShell, SLOT(groupLeaderChange(const uint8_t*)));
+ }
+
+ if (m_filterNotifications)
+ {
+ connect(m_spawnShell, SIGNAL(addItem(const Item*)),
+ m_filterNotifications, SLOT(addItem(const Item*)));
+ connect(m_spawnShell, SIGNAL(delItem(const Item*)),
+ m_filterNotifications, SLOT(delItem(const Item*)));
+ connect(m_spawnShell, SIGNAL(killSpawn(const Item*, const Item*, uint16_t)),
+ m_filterNotifications, SLOT(killSpawn(const Item*)));
+ connect(m_spawnShell, SIGNAL(changeItem(const Item*, uint32_t)),
+ m_filterNotifications,
+ SLOT(changeItem(const Item*, uint32_t)));
+ }
+
+ // connect interface slots to Packet signals
+ m_packet->connect2("OP_TargetMouse", SP_Zone, DIR_Client|DIR_Server,
+ "clientTargetStruct", SZC_Match,
+ this, SLOT(clientTarget(const uint8_t*)));
+#if 0 // ZBTEMP
+ connect(m_packet, SIGNAL(attack2Hand1(const uint8_t*, size_t, uint8_t)),
+ this, SLOT(attack2Hand1(const uint8_t*)));
+#endif
+ m_packet->connect2("OP_Action2", SP_Zone, DIR_Client|DIR_Server,
+ "action2Struct", SZC_Match,
+ this, SLOT(action2Message(const uint8_t*)));
+ m_packet->connect2("OP_Death", SP_Zone, DIR_Server,
+ "newCorpseStruct", SZC_Match,
+ this, SLOT(combatKillSpawn(const uint8_t*)));
+#if 0 // ZBTEMP
+ connect(m_packet, SIGNAL(interruptSpellCast(const uint8_t*, size_t, uint8_t)),
+ this, SLOT(interruptSpellCast(const uint8_t*)));
+ connect(m_packet, SIGNAL(moneyUpdate(const uint8_t*, size_t, uint8_t)),
+ this, SLOT(moneyUpdate(const uint8_t*)));
+ connect(m_packet, SIGNAL(moneyThing(const uint8_t*, size_t, uint8_t)),
+ this, SLOT(moneyThing(const uint8_t*)));
+#endif // ZBTEMP
+
+ connect(m_packet, SIGNAL(toggle_session_tracking(bool)),
+ this, SLOT(toggle_net_session_tracking(bool)));
+
+ // connect EQInterface slots to ZoneMgr signals
+ connect(m_zoneMgr, SIGNAL(zoneBegin(const QString&)),
+ this, SLOT(zoneBegin(const QString&)));
+ connect(m_zoneMgr, SIGNAL(zoneEnd(const QString&, const QString&)),
+ this, SLOT(zoneEnd(const QString&, const QString&)));
+ connect(m_zoneMgr, SIGNAL(zoneChanged(const QString&)),
+ this, SLOT(zoneChanged(const QString&)));
+
+ // connect the SpellShell slots to EQInterface signals
+ connect(this, SIGNAL(spellMessage(QString&)),
+ m_spellShell, SLOT(spellMessage(QString&)));
+
+ // connect EQInterface slots to SpawnShell signals
+ connect(m_spawnShell, SIGNAL(addItem(const Item*)),
+ this, SLOT(addItem(const Item*)));
+ connect(m_spawnShell, SIGNAL(delItem(const Item*)),
+ this, SLOT(delItem(const Item*)));
+ connect(m_spawnShell, SIGNAL(killSpawn(const Item*, const Item*, uint16_t)),
+ this, SLOT(killSpawn(const Item*)));
+ connect(m_spawnShell, SIGNAL(changeItem(const Item*, uint32_t)),
+ this, SLOT(changeItem(const Item*)));
+ connect(m_spawnShell, SIGNAL(spawnConsidered(const Item*)),
+ this, SLOT(spawnConsidered(const Item*)));
+
+ // connect the SpawnShell slots to Packet signals
+ m_packet->connect2("OP_GroundSpawn", SP_Zone, DIR_Server,
+ "makeDropStruct", SZC_None,
+ m_spawnShell, SLOT(newGroundItem(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_ClickObject", SP_Zone, DIR_Server,
+ "remDropStruct", SZC_Match,
+ m_spawnShell, SLOT(removeGroundItem(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_SpawnDoor", SP_Zone, DIR_Server,
+ "doorStruct", SZC_Modulus,
+ m_spawnShell, SLOT(newDoorSpawns(const uint8_t*, size_t, uint8_t)));
+// OP_NewSpawn is deprecated in the client
+// m_packet->connect2("OP_NewSpawn", SP_Zone, DIR_Server,
+// "spawnStruct", SZC_Match,
+// m_spawnShell, SLOT(newSpawn(const uint8_t*)));
+ m_packet->connect2("OP_ZoneEntry", SP_Zone, DIR_Server,
+ "uint8_t", SZC_None,
+ m_spawnShell, SLOT(zoneEntry(const uint8_t*, size_t)));
+ m_packet->connect2("OP_MobUpdate", SP_Zone, DIR_Server|DIR_Client,
+ "spawnPositionUpdate", SZC_Match,
+ m_spawnShell, SLOT(updateSpawns(const uint8_t*)));
+ m_packet->connect2("OP_WearChange", SP_Zone, DIR_Server|DIR_Client,
+ "SpawnUpdateStruct", SZC_Match,
+ m_spawnShell, SLOT(updateSpawnInfo(const uint8_t*)));
+ m_packet->connect2("OP_HPUpdate", SP_Zone, DIR_Server|DIR_Client,
+ "hpNpcUpdateStruct", SZC_Match,
+ m_spawnShell, SLOT(updateNpcHP(const uint8_t*)));
+ m_packet->connect2("OP_DeleteSpawn", SP_Zone, DIR_Server|DIR_Client,
+ "deleteSpawnStruct", SZC_Match,
+ m_spawnShell, SLOT(deleteSpawn(const uint8_t*)));
+ m_packet->connect2("OP_SpawnRename", SP_Zone, DIR_Server,
+ "spawnRenameStruct", SZC_Match,
+ m_spawnShell, SLOT(renameSpawn(const uint8_t*)));
+ m_packet->connect2("OP_Illusion", SP_Zone, DIR_Server|DIR_Client,
+ "spawnIllusionStruct", SZC_Match,
+ m_spawnShell, SLOT(illusionSpawn(const uint8_t*)));
+ m_packet->connect2("OP_SpawnAppearance", SP_Zone, DIR_Server|DIR_Client,
+ "spawnAppearanceStruct", SZC_Match,
+ m_spawnShell, SLOT(updateSpawnAppearance(const uint8_t*)));
+ m_packet->connect2("OP_Death", SP_Zone, DIR_Server,
+ "newCorpseStruct", SZC_Match,
+ m_spawnShell, SLOT(killSpawn(const uint8_t*)));
+// m_packet->connect2("OP_RespawnFromHover", SP_Zone, DIR_Server|DIR_Client,
+// "uint8_t", SZC_None,
+// m_spawnShell, SLOT(respawnFromHover(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_Shroud", SP_Zone, DIR_Server,
+ "spawnShroudSelf", SZC_None,
+ m_spawnShell, SLOT(shroudSpawn(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_RemoveSpawn", SP_Zone, DIR_Server|DIR_Client,
+ "removeSpawnStruct", SZC_None,
+ m_spawnShell, SLOT(removeSpawn(const uint8_t*, size_t, uint8_t)));
+#if 0 // ZBTEMP
+ connect(m_packet, SIGNAL(spawnWearingUpdate(const uint8_t*, size_t, uint8_t)),
+ m_spawnShell, SLOT(spawnWearingUpdate(const uint8_t*)));
+#endif
+ m_packet->connect2("OP_Consider", SP_Zone, DIR_Server|DIR_Client,
+ "considerStruct", SZC_Match,
+ m_spawnShell, SLOT(consMessage(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_NpcMoveUpdate", SP_Zone, DIR_Server,
+ "uint8_t", SZC_None,
+ m_spawnShell, SLOT(npcMoveUpdate(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_ClientUpdate", SP_Zone, DIR_Server,
+ "playerSpawnPosStruct", SZC_Match,
+ m_spawnShell, SLOT(playerUpdate(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_CorpseLocResponse", SP_Zone, DIR_Server,
+ "corpseLocStruct", SZC_Match,
+ m_spawnShell, SLOT(corpseLoc(const uint8_t*)));
+#if 0 // No longer used as of 5-22-2008
+ m_packet->connect2("OP_ZoneSpawns", SP_Zone, DIR_Server,
+ "spawnStruct", SZC_None,
+ m_spawnShell, SLOT(zoneSpawns(const uint8_t*, size_t)));
+#endif
+
+ // connect the SpellShell slots to ZoneMgr signals
+ connect(m_zoneMgr, SIGNAL(zoneChanged(const QString&)),
+ m_spellShell, SLOT(zoneChanged()));
+
+ // connect the SpellShell slots to SpawnShell signals
+ connect(m_spawnShell, SIGNAL(killSpawn(const Item*, const Item*, uint16_t)),
+ m_spellShell, SLOT(killSpawn(const Item*)));
+
+ // connect the SpellShell slots to Player signals
+ connect(m_player, SIGNAL(newPlayer(void)),
+ m_spellShell, SLOT(clear()));
+ connect(m_player, SIGNAL(buffLoad(const spellBuff *)),
+ m_spellShell, SLOT(buffLoad(const spellBuff *)));
+
+ // connect the SpellShell slots to EQPacket signals
+ m_packet->connect2("OP_CastSpell", SP_Zone, DIR_Server|DIR_Client,
+ "startCastStruct", SZC_Match,
+ m_spellShell, SLOT(selfStartSpellCast(const uint8_t*)));
+ m_packet->connect2("OP_Buff", SP_Zone, DIR_Server|DIR_Client,
+ "buffStruct", SZC_Match,
+ m_spellShell, SLOT(buff(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_Action", SP_Zone, DIR_Server|DIR_Client,
+ "actionStruct", SZC_Match,
+ m_spellShell, SLOT(action(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_Action", SP_Zone, DIR_Server|DIR_Client,
+ "actionAltStruct", SZC_Match,
+ m_spellShell, SLOT(action(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_SimpleMessage", SP_Zone, DIR_Server,
+ "simpleMessageStruct", SZC_Match,
+ m_spellShell,
+ SLOT(simpleMessage(const uint8_t*, size_t, uint8_t)));
+
+
+ // connect Player slots to EQPacket signals
+ connect(m_zoneMgr, SIGNAL(playerProfile(const charProfileStruct*)),
+ m_player, SLOT(player(const charProfileStruct*)));
+ m_packet->connect2("OP_SkillUpdate", SP_Zone, DIR_Server,
+ "skillIncStruct", SZC_Match,
+ m_player, SLOT(increaseSkill(const uint8_t*)));
+ m_packet->connect2("OP_ManaChange", SP_Zone, DIR_Server,
+ "manaDecrementStruct", SZC_Match,
+ m_player, SLOT(manaChange(const uint8_t*)));
+ m_packet->connect2("OP_ClientUpdate", SP_Zone, DIR_Server|DIR_Client,
+ "playerSelfPosStruct", SZC_Match,
+ m_player, SLOT(playerUpdateSelf(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_ExpUpdate", SP_Zone, DIR_Server,
+ "expUpdateStruct", SZC_Match,
+ m_player, SLOT(updateExp(const uint8_t*)));
+ m_packet->connect2("OP_AAExpUpdate", SP_Zone, DIR_Server,
+ "altExpUpdateStruct", SZC_Match,
+ m_player, SLOT(updateAltExp(const uint8_t*)));
+ m_packet->connect2("OP_LevelUpdate", SP_Zone, DIR_Server,
+ "levelUpUpdateStruct", SZC_Match,
+ m_player, SLOT(updateLevel(const uint8_t*)));
+ m_packet->connect2("OP_HPUpdate", SP_Zone, DIR_Server|DIR_Client,
+ "hpNpcUpdateStruct", SZC_Match,
+ m_player, SLOT(updateNpcHP(const uint8_t*)));
+ m_packet->connect2("OP_WearChange", SP_Zone, DIR_Server|DIR_Client,
+ "SpawnUpdateStruct", SZC_Match,
+ m_player, SLOT(updateSpawnInfo(const uint8_t*)));
+ m_packet->connect2("OP_Stamina", SP_Zone, DIR_Server,
+ "staminaStruct", SZC_Match,
+ m_player, SLOT(updateStamina(const uint8_t*)));
+ m_packet->connect2("OP_Consider", SP_Zone, DIR_Server|DIR_Client,
+ "considerStruct", SZC_Match,
+ m_player, SLOT(consMessage(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_SwapSpell", SP_Zone, DIR_Server,
+ "tradeSpellBookSlotsStruct", SZC_Match,
+ m_player, SLOT(tradeSpellBookSlots(const uint8_t*, size_t, uint8_t)));
+
+ // interface statusbar slots
+ connect (this, SIGNAL(newZoneName(const QString&)),
+ m_stsbarZone, SLOT(setText(const QString&)));
+ connect (m_packet, SIGNAL(stsMessage(const QString &, int)),
+ this, SLOT(stsMessage(const QString &, int)));
+ connect (m_spawnShell, SIGNAL(numSpawns(int)),
+ this, SLOT(numSpawns(int)));
+ connect (m_packet, SIGNAL(numPacket(int, int)),
+ this, SLOT(numPacket(int, int)));
+ connect (m_packet, SIGNAL(resetPacket(int, int)),
+ this, SLOT(resetPacket(int, int)));
+ connect (m_player, SIGNAL(newSpeed(double)),
+ this, SLOT(newSpeed(double)));
+ connect(m_player, SIGNAL(setExp(uint32_t, uint32_t, uint32_t, uint32_t,
+ uint32_t)),
+ this, SLOT(setExp(uint32_t, uint32_t, uint32_t,
+ uint32_t, uint32_t)));
+ connect(m_player, SIGNAL(newExp(uint32_t, uint32_t, uint32_t, uint32_t,
+ uint32_t, uint32_t)),
+ this, SLOT(newExp(uint32_t, uint32_t, uint32_t,
+ uint32_t, uint32_t, uint32_t)));
+ connect(m_player, SIGNAL(setAltExp(uint32_t, uint32_t, uint32_t, uint32_t)),
+ this, SLOT(setAltExp(uint32_t, uint32_t, uint32_t, uint32_t)));
+ connect(m_player, SIGNAL(newAltExp(uint32_t, uint32_t, uint32_t, uint32_t,
+ uint32_t, uint32_t)),
+ this, SLOT(newAltExp(uint32_t, uint32_t, uint32_t, uint32_t,
+ uint32_t, uint32_t)));
+ connect(m_player, SIGNAL(levelChanged(uint8_t)),
+ this, SLOT(levelChanged(uint8_t)));
+
+
+ if (m_expWindow != 0)
+ {
+ // connect ExperienceWindow slots to Player signals
+ connect(m_player, SIGNAL(newPlayer(void)),
+ m_expWindow, SLOT(clear(void)));
+ connect(m_player, SIGNAL(expGained(const QString &, int, long, QString )),
+ m_expWindow, SLOT(addExpRecord(const QString &, int, long,QString )));
+
+ // connect ExperienceWindow slots to EQInterface signals
+ connect(this, SIGNAL(restoreFonts(void)),
+ m_expWindow, SLOT(restoreFont(void)));
+ connect(this, SIGNAL(saveAllPrefs(void)),
+ m_expWindow, SLOT(savePrefs(void)));
+ }
+
+ if (m_combatWindow != 0)
+ {
+ // connect CombatWindow slots to the signals
+ connect(m_player, SIGNAL(newPlayer(void)),
+ m_combatWindow, SLOT(clear(void)));
+ connect (this, SIGNAL(combatSignal(int, int, int, int, int, QString, QString)),
+ m_combatWindow, SLOT(addCombatRecord(int, int, int, int, int, QString, QString)));
+ connect (m_spawnShell, SIGNAL(spawnConsidered(const Item*)),
+ m_combatWindow, SLOT(resetDPS()));
+ connect(this, SIGNAL(restoreFonts(void)),
+ m_combatWindow, SLOT(restoreFont(void)));
+ connect(this, SIGNAL(saveAllPrefs(void)),
+ m_combatWindow, SLOT(savePrefs(void)));
+ }
+
+
+ //
+ // Geometry Configuration
+ //
+
+
+ // interface components
+
+ // set mainwindow Geometry
+ section = "Interface";
+
+ // The way window/dock state was saved with Qt3 won't work with Qt4+, so
+ // we use the Qt-provided functions instead. Unforunately, that means the
+ // size/position preferences saved in the Qt3 version won't be usable, and
+ // the users will have to redo their window/dock size/placement.
+ QString dockPrefsState = pSEQPrefs->getPrefString("DockingInfoState",
+ section, QString());
+ QString dockPrefsGeometry = pSEQPrefs->getPrefString("DockingInfoGeometry",
+ section, QString());
+
+ bool usePos = pSEQPrefs->getPrefBool("UseWindowPos", section, true);
+ if (usePos)
+ {
+ if (!restoreGeometry(QByteArray::fromBase64(dockPrefsGeometry.toLatin1())))
+ seqWarn("Could not restore dock/window geometry. Rearrange windows "
+ "as desired and then re-save preferences");
+ else
+ // work around QTBUG-46620
+ if (isMaximized())
+ setGeometry(QApplication::desktop()->availableGeometry(this));
+
+ if (!restoreState(QByteArray::fromBase64(dockPrefsState.toLatin1())))
+ seqWarn("Could not restore dock/window state. Rearrange windows as"
+ " desired and then re-save prefrences");
+ }
+
+ new QShortcut(Qt::CTRL|Qt::ALT|Qt::Key_S, this, SLOT(toggle_view_statusbar()));
+ new QShortcut(Qt::CTRL|Qt::ALT|Qt::Key_T, this, SLOT(toggle_view_menubar()));
+
+ // Set main window title
+ // TODO: Add % replacement values and a signal to update, for ip address currently
+ // TODO: being monitored.
+
+ QMainWindow::setWindowTitle(pSEQPrefs->getPrefString("Caption", section,
+ "ShowEQ - Main (ctrl+alt+t to toggle menubar)"));
+
+ show();
+
+
+ // load the format strings for display
+ loadFormatStrings();
+
+ /* Start the packet capturing */
+ m_packet->start (10);
+}// end constructor
+////////////////////
+
+EQInterface::~EQInterface()
+{
+ if (m_netDiag != 0)
+ delete m_netDiag;
+
+ if (m_spawnPointList != 0)
+ delete m_spawnPointList;
+
+ if (m_statList != 0)
+ delete m_statList;
+
+ if (m_guildListWindow != 0)
+ delete m_guildListWindow;
+
+ if (m_skillList != 0)
+ delete m_skillList;
+
+ if (m_spellList != 0)
+ delete m_spellList;
+
+ if (m_spawnList2 != 0)
+ delete m_spawnList2;
+
+ if (m_spawnList != 0)
+ delete m_spawnList;
+
+ for (int i = 0; i < maxNumMaps; i++)
+ if (m_map[i] != 0)
+ delete m_map[i];
+
+ for (int i = 0; i < maxNumMessageWindows; i++)
+ if (m_messageWindow[i] != 0)
+ delete m_messageWindow[i];
+
+ if (m_combatWindow != 0)
+ delete m_combatWindow;
+
+ if (m_expWindow != 0)
+ delete m_expWindow;
+
+ if (m_spawnLogger != 0)
+ delete m_spawnLogger;
+
+ if (m_spawnMonitor != 0)
+ delete m_spawnMonitor;
+
+ if (m_groupMgr != 0)
+ delete m_groupMgr;
+
+ if (m_spellShell != 0)
+ delete m_spellShell;
+
+ if (m_spells != 0)
+ delete m_spells;
+
+ if (m_mapMgr != 0)
+ delete m_mapMgr;
+
+ if (m_spawnShell != 0)
+ delete m_spawnShell;
+
+ if (m_categoryMgr != 0)
+ delete m_categoryMgr;
+
+ if (m_filterMgr != 0)
+ delete m_filterMgr;
+
+ if (m_dateTimeMgr != 0)
+ delete m_dateTimeMgr;
+
+ if (m_eqStrings != 0)
+ delete m_eqStrings;
+
+ if (m_player != 0)
+ delete m_player;
+
+ if (m_guildShell != 0)
+ delete m_guildShell;
+
+ if (m_guildmgr != 0)
+ delete m_guildmgr;
+
+ if (m_zoneMgr != 0)
+ delete m_zoneMgr;
+
+ if (m_packet != 0)
+ delete m_packet;
+}
+
+void EQInterface::createFileMenu() {
+
// File Menu
QMenu* pFileMenu = new QMenu("&File");
menuBar()->addMenu(pFileMenu);
pFileMenu->addAction("&Save Preferences", this, SLOT(savePrefs()),
- Qt::CTRL+Qt::Key_S);
+ Qt::CTRL|Qt::Key_S);
pFileMenu->addAction("Open &Map", m_mapMgr, SLOT(loadMap()), Qt::Key_F1);
pFileMenu->addAction("&Import &Map", m_mapMgr, SLOT(importMap()));
pFileMenu->addAction("Sa&ve Map", m_mapMgr, SLOT(saveMap()), Qt::Key_F2);
@@ -549,15 +1246,15 @@
pFileMenu->addAction("Reload Guilds File", m_guildmgr, SLOT(readGuildList()));
pFileMenu->addAction("Save Guilds File", m_guildmgr, SLOT(writeGuildList()));
pFileMenu->addAction("Add Spawn Category", this, SLOT(addCategory()),
- Qt::ALT+Qt::Key_C);
+ Qt::ALT|Qt::Key_C);
pFileMenu->addAction("Rebuild SpawnList", this, SLOT(rebuildSpawnList()),
- Qt::ALT+Qt::Key_R);
+ Qt::ALT|Qt::Key_R);
pFileMenu->addAction("Reload Categories", this, SLOT(reloadCategories()),
- Qt::CTRL+Qt::Key_R);
+ Qt::CTRL|Qt::Key_R);
pFileMenu->addAction("Select Next", this, SLOT(selectNext()),
- Qt::CTRL+Qt::Key_Right);
+ Qt::CTRL|Qt::Key_Right);
pFileMenu->addAction("Select Prev", this, SLOT(selectPrev()),
- Qt::CTRL+Qt::Key_Left);
+ Qt::CTRL|Qt::Key_Left);
pFileMenu->addAction("Save Selected Spawns Path", this,
SLOT(saveSelectedSpawnPath(void)));
pFileMenu->addAction("Save NPC Spawn Paths", this, SLOT(saveSpawnPaths(void)));
@@ -564,12 +1261,17 @@
if (m_packet->playbackPackets() != PLAYBACK_OFF)
{
pFileMenu->addAction("Inc Playback Speed", m_packet, SLOT(incPlayback()),
- Qt::CTRL+Qt::Key_X);
+ Qt::CTRL|Qt::Key_X);
pFileMenu->addAction("Dec Playback Speed", m_packet, SLOT(decPlayback()),
- Qt::CTRL+Qt::Key_Z);
+ Qt::CTRL|Qt::Key_Z);
}
pFileMenu->addAction("&Quit", qApp, SLOT(quit()));
+}
+void EQInterface::createViewMenu() {
+
+ QString section = "Interface";
+
// View menu
QMenu* pViewMenu = new QMenu("&View");
menuBar()->addMenu(pViewMenu);
@@ -1003,6 +1705,11 @@
// view menu checks are set by init_view_menu
connect(pViewMenu, SIGNAL(aboutToShow()), this, SLOT(init_view_menu()));
+
+}
+
+void EQInterface::createOptionsMenu() {
+
// Options Menu
QMenu* pOptMenu = new QMenu("&Options");
menuBar()->addMenu(pOptMenu);
@@ -1056,6 +1763,7 @@
m_action_opt_PvPDeity->setCheckable(true);
m_action_opt_PvPDeity->setChecked(showeq_params->deitypvp);
+ QAction* tmpAction;
tmpAction = pOptMenu->addAction("Create Unknown Spawns", this,
SLOT(toggle_opt_CreateUnknownSpawns(bool)));
tmpAction->setCheckable(true);
@@ -1076,7 +1784,7 @@
tmpAction->setCheckable(true);
tmpAction->setChecked(showeq_params->walkpathrecord);
- subMenu = new QMenu("Walk Path Length");
+ QMenu* subMenu = new QMenu("Walk Path Length");
QSpinBox* walkPathLengthSpinBox = new QSpinBox(subMenu);
walkPathLengthSpinBox->setMinimum(0);
walkPathLengthSpinBox->setMaximum(8192);
@@ -1167,6 +1875,10 @@
m_action_opt_UseUpdateRadius->setCheckable(true);
m_action_opt_UseUpdateRadius->setChecked(showeq_params->useUpdateRadius);
+}
+
+void EQInterface::createNetworkMenu() {
+
// Network Menu
m_netMenu = new QMenu("&Network");
menuBar()->addMenu(m_netMenu);
@@ -1184,6 +1896,7 @@
m_action_net_sessiontrack->setCheckable(true);
m_action_net_sessiontrack->setChecked(m_packet->session_tracking());
+ QAction* tmpAction;
tmpAction = m_netMenu->addAction("&Real Time Thread", this,
SLOT(toggle_net_real_time_thread(bool)));
tmpAction->setCheckable(true);
@@ -1279,14 +1992,14 @@
m_netMenu->addMenu(pOpCodeMenu);
m_action_opcode_monitor = pOpCodeMenu->addAction("&OpCode Monitoring", this,
- SLOT(toggle_opcode_monitoring()), Qt::CTRL+Qt::ALT+Qt::Key_O);
+ SLOT(toggle_opcode_monitoring()), Qt::CTRL|Qt::ALT|Qt::Key_O);
m_action_opcode_monitor->setCheckable(true);
m_action_opcode_monitor->setChecked(m_opcodeMonitorLog != 0);
pOpCodeMenu->addAction("&Reload Monitored OpCode List...", this,
- SLOT(set_opcode_monitored_list()), Qt::CTRL+Qt::ALT+Qt::Key_R);
+ SLOT(set_opcode_monitored_list()), Qt::CTRL|Qt::ALT|Qt::Key_R);
- section = "OpCodeMonitoring";
+ QString section = "OpCodeMonitoring";
m_action_opcode_view = pOpCodeMenu->addAction("&View Monitored OpCode Matches",
this, SLOT(toggle_opcode_view()));
@@ -1305,7 +2018,7 @@
section = "Interface";
// Advanced menu
- subMenu = new QMenu("Advanced");
+ QMenu* subMenu = new QMenu("Advanced");
QMenu* subSubMenu = new QMenu("Arq Seq Give Up");
QSpinBox* arqSeqGiveUpSpinBox = new QSpinBox(subSubMenu);
arqSeqGiveUpSpinBox->setMinimum(32);
@@ -1320,9 +2033,14 @@
subMenu->addMenu(subSubMenu);
m_netMenu->addMenu(subMenu);
+}
+
+void EQInterface::createCharacterMenu() {
+
// Character Menu
m_charMenu = new QMenu("&Character");
menuBar()->addMenu(m_charMenu);
+ QAction* tmpAction;
tmpAction = m_charMenu->addAction("Use Auto Detected Settings", this,
SLOT(toggleAutoDetectPlayerSettings(bool)));
tmpAction->setCheckable(true);
@@ -1389,6 +2107,11 @@
connect (m_charRaceMenu, SIGNAL(triggered(QAction*)), this,
SLOT(SetDefaultCharacterRace(QAction*)));
+
+}
+
+void EQInterface::createFiltersMenu() {
+
// Filters Menu
QMenu* filterMenu = new QMenu("Fi<ers");
menuBar()->addMenu(filterMenu);
@@ -1402,9 +2125,9 @@
filterMenu->addAction("Select Fil&ter File", this, SLOT(select_filter_file()));
filterMenu->addAction("Reload &Zone Filters", m_filterMgr,
- SLOT(loadZoneFilters()), Qt::SHIFT+Qt::Key_F3);
+ SLOT(loadZoneFilters()), Qt::SHIFT|Qt::Key_F3);
filterMenu->addAction("S&ave Zone Filters", m_filterMgr,
- SLOT(saveZoneFilters()), Qt::SHIFT+Qt::Key_F4);
+ SLOT(saveZoneFilters()), Qt::SHIFT|Qt::Key_F4);
filterMenu->addAction("Edit Zone Filters", this,
SLOT(launch_filterlistwindow_zoneFilters()));
filterMenu->addAction("Edit Zone Fi<ers XML", this,
@@ -1412,6 +2135,7 @@
filterMenu->addAction("Re&filter Spawns", m_spawnShell, SLOT(refilterSpawns()));
+ QAction* tmpAction;
tmpAction = filterMenu->addAction("&Is Case Sensitive", this,
SLOT(toggle_filter_Case(bool)));
tmpAction->setCheckable(true);
@@ -1436,6 +2160,10 @@
QMenu* filterLogMenu = new QMenu("&Log");
filterMenu->addMenu(filterLogMenu);
+ uint32_t filters = 0;
+ if (m_filteredSpawnLog)
+ filters = m_filteredSpawnLog->filters();
+
tmpAction = filterLogMenu->addAction( "Alerts");
tmpAction->setCheckable(true);
tmpAction->setData(FILTER_FLAG_ALERT);
@@ -1492,6 +2220,10 @@
connect(filterCmdMenu, SIGNAL(triggered(QAction*)), this,
SLOT(set_filter_AudioCommand(QAction*)));
+}
+
+void EQInterface::createInterfaceMenu() {
+
// Interface Menu
QMenu* pInterfaceMenu = new QMenu("&Interface");
menuBar()->addMenu(pInterfaceMenu);
@@ -1514,6 +2246,7 @@
QStringList::Iterator styleItr = availableStyles.begin();
+ QAction* tmpAction;
while (styleItr != availableStyles.end()) {
tmpAction = pStyleMenu->addAction(*styleItr);
@@ -1520,7 +2253,7 @@
tmpAction->setCheckable(true);
if (currentStyleName.toLower() == (*styleItr).toLower())
- tmpAction->setChecked(true);
+ tmpAction->setChecked(true);
tmpAction->setData(*styleItr);
ActionList_StyleMenu.append(tmpAction);
@@ -1531,6 +2264,7 @@
connect (pStyleMenu, SIGNAL(triggered(QAction*)), this,
SLOT(selectTheme(QAction*)));
+ QString section = "Interface";
QString themeName = pSEQPrefs->getPrefString("ThemeName", section, "");
//Use the text name if there is one. If not, fall back to old numeric id. If no
@@ -1724,6 +2458,11 @@
pInterfaceMenu->addAction( "Spells File...", this,
SLOT(select_main_SpellsFile()));
+
+}
+
+void EQInterface::createWindowMenu() {
+
// insert Window menu
menuBar()->addMenu(m_windowMenu);
@@ -1734,6 +2473,7 @@
m_windowCaptionMenu = new QMenu("Window &Caption");
m_windowMenu->insertMenu(m_windowMenu->actions()[0], m_windowCaptionMenu);
+ QAction* tmpAction;
tmpAction = m_windowCaptionMenu->addAction("&Main Window...");
tmpAction->setData(5);
@@ -1856,29 +2596,36 @@
m_windowMenu->insertSeparator(m_windowMenu->actions()[4]);
+
+}
+
+void EQInterface::createDebugMenu() {
+
// Debug menu
QMenu* pDebugMenu = new QMenu("&Debug");
menuBar()->addMenu(pDebugMenu);
pDebugMenu->addAction("List I&nterface", this, SLOT(listInterfaceInfo()));
- pDebugMenu->addAction("List S&pawns", this, SLOT(listSpawns()), Qt::ALT+Qt::CTRL+Qt::Key_P);
- pDebugMenu->addAction("List &Drops", this, SLOT(listDrops()), Qt::ALT+Qt::CTRL+Qt::Key_D);
- pDebugMenu->addAction("List &Map Info", this, SLOT(listMapInfo()), Qt::ALT+Qt::CTRL+Qt::Key_M);
+ pDebugMenu->addAction("List S&pawns", this, SLOT(listSpawns()), Qt::ALT|Qt::CTRL|Qt::Key_P);
+ pDebugMenu->addAction("List &Drops", this, SLOT(listDrops()), Qt::ALT|Qt::CTRL|Qt::Key_D);
+ pDebugMenu->addAction("List &Map Info", this, SLOT(listMapInfo()), Qt::ALT|Qt::CTRL|Qt::Key_M);
pDebugMenu->addAction("List G&uild Info", m_guildmgr, SLOT(listGuildInfo()));
- pDebugMenu->addAction("List &Group", this, SLOT(listGroup()), Qt::ALT+Qt::CTRL+Qt::Key_G);
- pDebugMenu->addAction("List Guild M&embers", this, SLOT(listGuild()), Qt::ALT+Qt::CTRL+Qt::Key_E);
- pDebugMenu->addAction("Dump Spawns", this, SLOT(dumpSpawns()), Qt::ALT+Qt::SHIFT+Qt::CTRL+Qt::Key_P);
- pDebugMenu->addAction("Dump Drops", this, SLOT(dumpDrops()), Qt::ALT+Qt::SHIFT+Qt::CTRL+Qt::Key_D);
- pDebugMenu->addAction("Dump Map Info", this, SLOT(dumpMapInfo()), Qt::ALT+Qt::SHIFT+Qt::CTRL+Qt::Key_M);
+ pDebugMenu->addAction("List &Group", this, SLOT(listGroup()), Qt::ALT|Qt::CTRL|Qt::Key_G);
+ pDebugMenu->addAction("List Guild M&embers", this, SLOT(listGuild()), Qt::ALT|Qt::CTRL|Qt::Key_E);
+ pDebugMenu->addAction("Dump Spawns", this, SLOT(dumpSpawns()), Qt::ALT|Qt::SHIFT|Qt::CTRL|Qt::Key_P);
+ pDebugMenu->addAction("Dump Drops", this, SLOT(dumpDrops()), Qt::ALT|Qt::SHIFT|Qt::CTRL|Qt::Key_D);
+ pDebugMenu->addAction("Dump Map Info", this, SLOT(dumpMapInfo()), Qt::ALT|Qt::SHIFT|Qt::CTRL|Qt::Key_M);
pDebugMenu->addAction("Dump Guild Info", this , SLOT(dumpGuildInfo()));
pDebugMenu->addAction("Dump SpellBook Info", this , SLOT(dumpSpellBook()));
- pDebugMenu->addAction("Dump Group", this, SLOT(dumpGroup()), Qt::ALT+Qt::CTRL+Qt::SHIFT+Qt::Key_G);
- pDebugMenu->addAction("Dump Guild Members", this, SLOT(dumpGuild()), Qt::ALT+Qt::CTRL+Qt::SHIFT+Qt::Key_E);
- pDebugMenu->addAction("List &Filters", m_filterMgr, SLOT(listFilters()), Qt::ALT+Qt::CTRL+Qt::Key_F);
+ pDebugMenu->addAction("Dump Group", this, SLOT(dumpGroup()), Qt::ALT|Qt::CTRL|Qt::SHIFT|Qt::Key_G);
+ pDebugMenu->addAction("Dump Guild Members", this, SLOT(dumpGuild()), Qt::ALT|Qt::CTRL|Qt::SHIFT|Qt::Key_E);
+ pDebugMenu->addAction("List &Filters", m_filterMgr, SLOT(listFilters()), Qt::ALT|Qt::CTRL|Qt::Key_F);
pDebugMenu->addAction("List &Zone Filters", m_filterMgr, SLOT(listZoneFilters()));
-////////////////////
-// QStatusBar creation
-
+
+}
+
+void EQInterface::createStatusBar() {
+
QString statusBarSection = "Interface_StatusBar";
int sts_widget_count = 0; // total number of widgets visible on status bar
@@ -1991,691 +2738,9 @@
//hide the statusbar if no visible widgets
if (!sts_widget_count || !pSEQPrefs->getPrefBool("StatusBarActive", statusBarSection, 1))
statusBar()->hide();
+}
-/////////////////
-// interface connections
- // connect EQInterface slots to its own signals
- connect(this, SIGNAL(restoreFonts(void)),
- this, SLOT(restoreStatusFont(void)));
-
- // connect MapMgr slots to interface signals
- connect(this, SIGNAL(saveAllPrefs(void)),
- m_mapMgr, SLOT(savePrefs(void)));
-
- // connect CategoryMgr slots to interface signals
- connect(this, SIGNAL(saveAllPrefs(void)),
- m_categoryMgr, SLOT(savePrefs(void)));
-
- if (m_zoneMgr)
- {
- m_packet->connect2("OP_ZoneEntry", SP_Zone, DIR_Client,
- "ClientZoneEntryStruct", SZC_Match,
- m_zoneMgr, SLOT(zoneEntryClient(const uint8_t*, size_t, uint8_t)));
- m_packet->connect2("OP_PlayerProfile", SP_Zone, DIR_Server,
- "uint8_t", SZC_None,
- m_zoneMgr, SLOT(zonePlayer(const uint8_t*, size_t)));
- m_packet->connect2("OP_ZoneChange", SP_Zone, DIR_Client|DIR_Server,
- "zoneChangeStruct", SZC_Match,
- m_zoneMgr, SLOT(zoneChange(const uint8_t*, size_t, uint8_t)));
- m_packet->connect2("OP_NewZone", SP_Zone, DIR_Server,
- "uint8_t", SZC_None,
- m_zoneMgr, SLOT(zoneNew(const uint8_t*, size_t, uint8_t)));
- m_packet->connect2("OP_SendZonePoints", SP_Zone, DIR_Server,
- "zonePointsStruct", SZC_None,
- m_zoneMgr, SLOT(zonePoints(const uint8_t*, size_t, uint8_t)));
- m_packet->connect2("OP_DzSwitchInfo", SP_Zone, DIR_Server,
- "dzSwitchInfo", SZC_None,
- m_zoneMgr, SLOT(dynamicZonePoints(const uint8_t*, size_t, uint8_t)));
- m_packet->connect2("OP_DzInfo", SP_Zone, DIR_Server,
- "dzInfo", SZC_Match,
- m_zoneMgr, SLOT(dynamicZoneInfo(const uint8_t*, size_t, uint8_t)));
- }
-
- if (m_groupMgr != 0)
- {
- connect(m_zoneMgr, SIGNAL(playerProfile(const charProfileStruct*)),
- m_groupMgr, SLOT(player(const charProfileStruct*)));
- m_packet->connect2("OP_GroupUpdate", SP_Zone, DIR_Server,
- "uint8_t", SZC_None,
- m_groupMgr, SLOT(groupUpdate(const uint8_t*, size_t)));
- m_packet->connect2("OP_GroupFollow", SP_Zone, DIR_Server,
- "groupFollowStruct", SZC_Match,
- m_groupMgr, SLOT(addGroupMember(const uint8_t*)));
- m_packet->connect2("OP_GroupDisband", SP_Zone, DIR_Server,
- "groupDisbandStruct", SZC_Match,
- m_groupMgr, SLOT(removeGroupMember(const uint8_t*)));
- m_packet->connect2("OP_GroupDisband2", SP_Zone, DIR_Server,
- "groupDisbandStruct", SZC_Match,
- m_groupMgr, SLOT(removeGroupMember(const uint8_t*)));
- // connect GroupMgr slots to SpawnShell signals
- connect(m_spawnShell, SIGNAL(addItem(const Item*)),
- m_groupMgr, SLOT(addItem(const Item*)));
- // connect GroupMgr slots to SpawnShell signals
- connect(m_spawnShell, SIGNAL(delItem(const Item*)),
- m_groupMgr, SLOT(delItem(const Item*)));
- // connect GroupMgr slots to SpawnShell signals
- connect(m_spawnShell, SIGNAL(killSpawn(const Item*, const Item*, uint16_t)),
- m_groupMgr, SLOT(killSpawn(const Item*)));
- }
-
- if (m_dateTimeMgr)
- {
- // connect DateTimeMgr slots to EQPacket signals
- m_packet->connect2("OP_TimeOfDay", SP_Zone, DIR_Server,
- "timeOfDayStruct", SZC_Match,
- m_dateTimeMgr, SLOT(timeOfDay(const uint8_t*)));
-
- // connect interface slots to DateTimeMgr signals
- connect(m_dateTimeMgr, SIGNAL(updatedDateTime(const QDateTime&)),
- this, SLOT(updatedDateTime(const QDateTime&)));
-
- connect(m_dateTimeMgr, SIGNAL(syncDateTime(const QDateTime&)),
- this, SLOT(syncDateTime(const QDateTime&)));
- }
-
- if (m_filterMgr)
- {
- connect(m_zoneMgr, SIGNAL(zoneBegin(const QString&)),
- m_filterMgr, SLOT(loadZone(const QString&)));
- connect(m_zoneMgr, SIGNAL(zoneEnd(const QString&, const QString&)),
- m_filterMgr, SLOT(loadZone(const QString&)));
- connect(m_zoneMgr, SIGNAL(zoneChanged(const QString&)),
- m_filterMgr, SLOT(loadZone(const QString&)));
- }
-
- if (m_guildmgr)
- {
- /*
- m_packet->connect2("OP_GuildList", SP_World, DIR_Server,
- "worldGuildListStruct", SZC_None,
- m_guildmgr,
- SLOT(worldGuildList(const uint8_t*, size_t)));
- */
-
- m_packet->connect2("OP_GuildsInZoneList", SP_Zone, DIR_Server,
- "guildsInZoneListStruct", SZC_None, m_guildmgr,
- SLOT(guildsInZoneList(const uint8_t*, size_t)));
-
- m_packet->connect2("OP_NewGuildInZone", SP_Zone, DIR_Server,
- "newGuildInZoneStruct", SZC_None, m_guildmgr,
- SLOT(newGuildInZone(const uint8_t*, size_t)));
-
- connect(this, SIGNAL(guildList2text(QString)),
- m_guildmgr, SLOT(guildList2text(QString)));
-
- }
-
- if (m_guildShell)
- {
- m_packet->connect2("OP_GuildMemberList", SP_Zone, DIR_Server,
- "uint8_t", SZC_None,
- m_guildShell,
- SLOT(guildMemberList(const uint8_t*, size_t)));
- m_packet->connect2("OP_GuildMemberUpdate", SP_Zone, DIR_Server,
- "GuildMemberUpdate", SZC_Match,
- m_guildShell,
- SLOT(guildMemberUpdate(const uint8_t*, size_t)));
- }
-
- if (m_messageShell)
- {
- m_packet->connect2("OP_CommonMessage", SP_Zone, DIR_Client|DIR_Server,
- "channelMessageStruct", SZC_None,
- m_messageShell,
- SLOT(channelMessage(const uint8_t*, size_t, uint8_t)));
- m_packet->connect2("OP_FormattedMessage", SP_Zone, DIR_Server,
- "formattedMessageStruct", SZC_None,
- m_messageShell,
- SLOT(formattedMessage(const uint8_t*, size_t, uint8_t)));
- m_packet->connect2("OP_SimpleMessage", SP_Zone, DIR_Server,
- "simpleMessageStruct", SZC_Match,
- m_messageShell,
- SLOT(simpleMessage(const uint8_t*, size_t, uint8_t)));
- m_packet->connect2("OP_SpecialMesg", SP_Zone, DIR_Server,
- "specialMessageStruct", SZC_None,
- m_messageShell,
- SLOT(specialMessage(const uint8_t*, size_t, uint8_t)));
- m_packet->connect2("OP_GuildMOTD", SP_Zone, DIR_Server,
- "guildMOTDStruct", SZC_None,
- m_messageShell,
- SLOT(guildMOTD(const uint8_t*, size_t, uint8_t)));
- m_packet->connect2("OP_RandomReq", SP_Zone, DIR_Client,
- "randomReqStruct", SZC_Match,
- m_messageShell, SLOT(randomRequest(const uint8_t*)));
- m_packet->connect2("OP_RandomReply", SP_Zone, DIR_Server,
- "randomStruct", SZC_Match,
- m_messageShell, SLOT(random(const uint8_t*)));
- m_packet->connect2("OP_ConsentResponse", SP_Zone, DIR_Server,
- "consentResponseStruct", SZC_Match,
- m_messageShell, SLOT(consent(const uint8_t*, size_t, uint8_t)));
- m_packet->connect2("OP_DenyResponse", SP_Zone, DIR_Server,
- "consentResponseStruct", SZC_Match,
- m_messageShell, SLOT(consent(const uint8_t*, size_t, uint8_t)));
- m_packet->connect2("OP_Emote", SP_Zone, DIR_Server|DIR_Client,
- "emoteTextStruct", SZC_None,
- m_messageShell, SLOT(emoteText(const uint8_t*)));
- m_packet->connect2("OP_InspectAnswer", SP_Zone, DIR_Server,
- "inspectDataStruct", SZC_Match,
- m_messageShell, SLOT(inspectData(const uint8_t*)));
- m_packet->connect2("OP_MoneyOnCorpse", SP_Zone, DIR_Server,
- "moneyOnCorpseStruct", SZC_Match,
- m_messageShell, SLOT(moneyOnCorpse(const uint8_t*)));
- m_packet->connect2("OP_Logout", SP_Zone, DIR_Server,
- "none", SZC_Match,
- m_messageShell, SLOT(logOut(const uint8_t*, size_t, uint8_t)));
- m_packet->connect2("OP_NewZone", SP_Zone, DIR_Server,
- "uint8_t", SZC_None,
- m_messageShell, SLOT(zoneNew(const uint8_t*, size_t, uint8_t)));
- connect(m_zoneMgr, SIGNAL(zoneBegin(const ClientZoneEntryStruct*, size_t, uint8_t)),
- m_messageShell, SLOT(zoneEntryClient(const ClientZoneEntryStruct*)));
- connect(m_zoneMgr, SIGNAL(zoneChanged(const zoneChangeStruct*, size_t, uint8_t)),
- m_messageShell, SLOT(zoneChanged(const zoneChangeStruct*, size_t, uint8_t)));
- connect(m_zoneMgr, SIGNAL(zoneBegin(const QString&)),
- m_messageShell, SLOT(zoneBegin(const QString&)));
- connect(m_zoneMgr, SIGNAL(zoneEnd(const QString&, const QString&)),
- m_messageShell, SLOT(zoneEnd(const QString&, const QString&)));
- connect(m_zoneMgr, SIGNAL(zoneChanged(const QString&)),
- m_messageShell, SLOT(zoneChanged(const QString&)));
-
- m_packet->connect2("OP_MOTD", SP_World, DIR_Server,
- "worldMOTDStruct", SZC_None,
- m_messageShell, SLOT(worldMOTD(const uint8_t*)));
- m_packet->connect2("OP_MemorizeSpell", SP_Zone, DIR_Server|DIR_Client,
- "memSpellStruct", SZC_Match,
- m_messageShell, SLOT(handleSpell(const uint8_t*, size_t, uint8_t)));
- m_packet->connect2("OP_BeginCast", SP_Zone, DIR_Server|DIR_Client,
- "beginCastStruct", SZC_Match,
- m_messageShell, SLOT(beginCast(const uint8_t*)));
- m_packet->connect2("OP_BuffFadeMsg", SP_Zone, DIR_Server|DIR_Client,
- "spellFadedStruct", SZC_None,
- m_messageShell, SLOT(spellFaded(const uint8_t*)));
- m_packet->connect2("OP_CastSpell", SP_Zone, DIR_Server|DIR_Client,
- "startCastStruct", SZC_Match,
- m_messageShell, SLOT(startCast(const uint8_t*)));
- connect(m_zoneMgr, SIGNAL(playerProfile(const charProfileStruct*)),
- m_messageShell, SLOT(player(const charProfileStruct*)));
- m_packet->connect2("OP_SkillUpdate", SP_Zone, DIR_Server,
- "skillIncStruct", SZC_Match,
- m_messageShell, SLOT(increaseSkill(const uint8_t*)));
- m_packet->connect2("OP_LevelUpdate", SP_Zone, DIR_Server,
- "levelUpUpdateStruct", SZC_Match,
- m_messageShell, SLOT(updateLevel(const uint8_t*)));
-
- m_packet->connect2("OP_Consider", SP_Zone, DIR_Server,
- "considerStruct", SZC_Match,
- m_messageShell, SLOT(consMessage(const uint8_t*, size_t, uint8_t)));
-
- connect(m_player, SIGNAL(setExp(uint32_t, uint32_t, uint32_t, uint32_t,
- uint32_t)),
- m_messageShell, SLOT(setExp(uint32_t, uint32_t, uint32_t,
- uint32_t, uint32_t)));
- connect(m_player, SIGNAL(newExp(uint32_t, uint32_t, uint32_t, uint32_t,
- uint32_t, uint32_t)),
- m_messageShell, SLOT(newExp(uint32_t, uint32_t, uint32_t,
- uint32_t, uint32_t, uint32_t)));
- connect(m_player, SIGNAL(setAltExp(uint32_t, uint32_t, uint32_t, uint32_t)),
- m_messageShell, SLOT(setAltExp(uint32_t, uint32_t, uint32_t, uint32_t)));
- connect(m_player, SIGNAL(newAltExp(uint32_t, uint32_t, uint32_t, uint32_t,
- uint32_t, uint32_t)),
- m_messageShell, SLOT(newAltExp(uint32_t, uint32_t, uint32_t, uint32_t,
- uint32_t, uint32_t)));
-
- connect(m_spawnShell, SIGNAL(addItem(const Item*)),
- m_messageShell, SLOT(addItem(const Item*)));
- connect(m_spawnShell, SIGNAL(delItem(const Item*)),
- m_messageShell, SLOT(delItem(const Item*)));
- connect(m_spawnShell, SIGNAL(killSpawn(const Item*, const Item*, uint16_t)),
- m_messageShell, SLOT(killSpawn(const Item*)));
-
- connect(m_dateTimeMgr, SIGNAL(syncDateTime(const QDateTime&)),
- m_messageShell, SLOT(syncDateTime(const QDateTime&)));
-
-// 9/3/2008 - Removed. Serialized packet now.
-// m_packet->connect2("OP_GroupUpdate", SP_Zone, DIR_Server,
-// "groupUpdateStruct", SZC_None,
-// m_messageShell, SLOT(groupUpdate(const uint8_t*, size_t, uint8_t)));
- m_packet->connect2("OP_GroupInvite", SP_Zone, DIR_Client|DIR_Server,
- "groupInviteStruct", SZC_None,
- m_messageShell, SLOT(groupInvite(const uint8_t*, size_t, uint8_t)));
-// m_packet->connect2("OP_GroupInvite", SP_Zone, DIR_Server,
-// "groupAltInviteStruct", SZC_Match,
-// m_messageShell, SLOT(groupInvite(const uint8_t*)));
- m_packet->connect2("OP_GroupInvite2", SP_Zone, DIR_Client,
- "groupInviteStruct", SZC_None,
- m_messageShell, SLOT(groupInvite(const uint8_t*, size_t, uint8_t)));
- m_packet->connect2("OP_GroupFollow", SP_Zone, DIR_Server,
- "groupFollowStruct", SZC_Match,
- m_messageShell, SLOT(groupFollow(const uint8_t*)));
- m_packet->connect2("OP_GroupFollow2", SP_Zone, DIR_Server,
- "groupFollowStruct", SZC_Match,
- m_messageShell, SLOT(groupFollow(const uint8_t*)));
- m_packet->connect2("OP_GroupDisband", SP_Zone, DIR_Server,
- "groupDisbandStruct", SZC_Match,
- m_messageShell, SLOT(groupDisband(const uint8_t*)));
- m_packet->connect2("OP_GroupDisband2", SP_Zone, DIR_Server,
- "groupDisbandStruct", SZC_Match,
- m_messageShell, SLOT(groupDisband(const uint8_t*)));
- m_packet->connect2("OP_GroupCancelInvite", SP_Zone, DIR_Server|DIR_Client,
- "groupDeclineStruct", SZC_Match,
- m_messageShell, SLOT(groupDecline(const uint8_t*)));
- m_packet->connect2("OP_GroupLeader", SP_Zone, DIR_Server,
- "groupLeaderChangeStruct", SZC_Match,
- m_messageShell, SLOT(groupLeaderChange(const uint8_t*)));
- }
-
- if (m_filterNotifications)
- {
- connect(m_spawnShell, SIGNAL(addItem(const Item*)),
- m_filterNotifications, SLOT(addItem(const Item*)));
- connect(m_spawnShell, SIGNAL(delItem(const Item*)),
- m_filterNotifications, SLOT(delItem(const Item*)));
- connect(m_spawnShell, SIGNAL(killSpawn(const Item*, const Item*, uint16_t)),
- m_filterNotifications, SLOT(killSpawn(const Item*)));
- connect(m_spawnShell, SIGNAL(changeItem(const Item*, uint32_t)),
- m_filterNotifications,
- SLOT(changeItem(const Item*, uint32_t)));
- }
-
- // connect interface slots to Packet signals
- m_packet->connect2("OP_TargetMouse", SP_Zone, DIR_Client|DIR_Server,
- "clientTargetStruct", SZC_Match,
- this, SLOT(clientTarget(const uint8_t*)));
-#if 0 // ZBTEMP
- connect(m_packet, SIGNAL(attack2Hand1(const uint8_t*, size_t, uint8_t)),
- this, SLOT(attack2Hand1(const uint8_t*)));
-#endif
- m_packet->connect2("OP_Action2", SP_Zone, DIR_Client|DIR_Server,
- "action2Struct", SZC_Match,
- this, SLOT(action2Message(const uint8_t*)));
- m_packet->connect2("OP_Death", SP_Zone, DIR_Server,
- "newCorpseStruct", SZC_Match,
- this, SLOT(combatKillSpawn(const uint8_t*)));
-#if 0 // ZBTEMP
- connect(m_packet, SIGNAL(interruptSpellCast(const uint8_t*, size_t, uint8_t)),
- this, SLOT(interruptSpellCast(const uint8_t*)));
- connect(m_packet, SIGNAL(moneyUpdate(const uint8_t*, size_t, uint8_t)),
- this, SLOT(moneyUpdate(const uint8_t*)));
- connect(m_packet, SIGNAL(moneyThing(const uint8_t*, size_t, uint8_t)),
- this, SLOT(moneyThing(const uint8_t*)));
-#endif // ZBTEMP
-
- connect(m_packet, SIGNAL(toggle_session_tracking(bool)),
- this, SLOT(toggle_net_session_tracking(bool)));
-
- // connect EQInterface slots to ZoneMgr signals
- connect(m_zoneMgr, SIGNAL(zoneBegin(const QString&)),
- this, SLOT(zoneBegin(const QString&)));
- connect(m_zoneMgr, SIGNAL(zoneEnd(const QString&, const QString&)),
- this, SLOT(zoneEnd(const QString&, const QString&)));
- connect(m_zoneMgr, SIGNAL(zoneChanged(const QString&)),
- this, SLOT(zoneChanged(const QString&)));
-
- // connect the SpellShell slots to EQInterface signals
- connect(this, SIGNAL(spellMessage(QString&)),
- m_spellShell, SLOT(spellMessage(QString&)));
-
- // connect EQInterface slots to SpawnShell signals
- connect(m_spawnShell, SIGNAL(addItem(const Item*)),
- this, SLOT(addItem(const Item*)));
- connect(m_spawnShell, SIGNAL(delItem(const Item*)),
- this, SLOT(delItem(const Item*)));
- connect(m_spawnShell, SIGNAL(killSpawn(const Item*, const Item*, uint16_t)),
- this, SLOT(killSpawn(const Item*)));
- connect(m_spawnShell, SIGNAL(changeItem(const Item*, uint32_t)),
- this, SLOT(changeItem(const Item*)));
- connect(m_spawnShell, SIGNAL(spawnConsidered(const Item*)),
- this, SLOT(spawnConsidered(const Item*)));
-
- // connect the SpawnShell slots to Packet signals
- m_packet->conne...
[truncated message content] |
|
From: <cn...@us...> - 2024-08-21 19:59:50
|
Revision: 1532
http://sourceforge.net/p/seq/svn/1532
Author: cn187
Date: 2024-08-21 19:59:48 +0000 (Wed, 21 Aug 2024)
Log Message:
-----------
Mask high bits of zoneid so player purchased housing/guildhalls don't show as unknown
Modified Paths:
--------------
showeq/trunk/src/zonemgr.cpp
Modified: showeq/trunk/src/zonemgr.cpp
===================================================================
--- showeq/trunk/src/zonemgr.cpp 2024-08-21 19:59:37 UTC (rev 1531)
+++ showeq/trunk/src/zonemgr.cpp 2024-08-21 19:59:48 UTC (rev 1532)
@@ -96,8 +96,8 @@
QString ZoneMgr::zoneNameFromID(uint16_t zoneId)
{
const char* zoneName = NULL;
- if (zoneId < (sizeof(zoneNames) / sizeof (ZoneNames)))
- zoneName = zoneNames[zoneId].shortName;
+ if ((zoneId & 0x0fff) < (sizeof(zoneNames) / sizeof(ZoneNames)))
+ zoneName = zoneNames[zoneId & 0x0fff].shortName;
if (zoneName != NULL)
return zoneName;
@@ -115,8 +115,8 @@
QString ZoneMgr::zoneLongNameFromID(uint16_t zoneId)
{
const char* zoneName = NULL;
- if (zoneId < (sizeof(zoneNames) / sizeof (ZoneNames)))
- zoneName = zoneNames[zoneId].longName;
+ if ((zoneId & 0x0fff) < (sizeof(zoneNames) / sizeof(ZoneNames)))
+ zoneName = zoneNames[zoneId & 0x0fff].longName;
if (zoneName != NULL)
return zoneName;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2024-08-21 19:59:40
|
Revision: 1531
http://sourceforge.net/p/seq/svn/1531
Author: cn187
Date: 2024-08-21 19:59:37 +0000 (Wed, 21 Aug 2024)
Log Message:
-----------
Fix sort by distance when Fast Machine is enabled
Modified Paths:
--------------
showeq/trunk/src/spawnlistcommon.cpp
Modified: showeq/trunk/src/spawnlistcommon.cpp
===================================================================
--- showeq/trunk/src/spawnlistcommon.cpp 2024-08-21 19:59:30 UTC (rev 1530)
+++ showeq/trunk/src/spawnlistcommon.cpp 2024-08-21 19:59:37 UTC (rev 1531)
@@ -144,10 +144,20 @@
case 5: // coord 2
case 6: // coord 3
case 7: // ID
- case 8: // distance
return data(column, Qt::DisplayRole).value<int>() <
other.data(column, Qt::DisplayRole).value<int>();
+ case 8: // distance
+ // "fast machine" option will use float, not int
+ return
+ ((data(column, Qt::DisplayRole).canConvert<float>()) ?
+ data(column, Qt::DisplayRole).value<float>() :
+ data(column, Qt::DisplayRole).value<int>())
+ <
+ ((other.data(column, Qt::DisplayRole).canConvert<float>()) ?
+ other.data(column, Qt::DisplayRole).value<float>() :
+ other.data(column, Qt::DisplayRole).value<int>());
+
case 0: // name
case 9: // race
case 10:// class
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|