|
From: <cn...@us...> - 2022-12-06 23:21:29
|
Revision: 1318
http://sourceforge.net/p/seq/svn/1318
Author: cn187
Date: 2022-12-06 23:21:26 +0000 (Tue, 06 Dec 2022)
Log Message:
-----------
Release 6.2.15
- Update to version 6.2.15
- Support EQ Patch 12/06/22
- Struct and opcode updates
- Add zones/races for Night of Shadows
- Fix save/restore of message filter visibility preferences
Modified Paths:
--------------
showeq/trunk/ChangeLog
showeq/trunk/conf/zoneopcodes.xml
showeq/trunk/configure.in
showeq/trunk/src/everquest.h
showeq/trunk/src/interface.cpp
showeq/trunk/src/races.h
showeq/trunk/src/xmlconv.cpp
showeq/trunk/src/xmlpreferences.cpp
showeq/trunk/src/zones.h
Modified: showeq/trunk/ChangeLog
===================================================================
--- showeq/trunk/ChangeLog 2022-12-05 01:09:24 UTC (rev 1317)
+++ showeq/trunk/ChangeLog 2022-12-06 23:21:26 UTC (rev 1318)
@@ -1,3 +1,11 @@
+cn187 (12/06/22)
+----------------
+- Update to version 6.2.15
+- Support EQ Patch 12/06/22
+- Struct and opcode updates
+- Add zones/races for Night of Shadows
+- Fix save/restore of message filter visibility preferences
+
cn187 (11/29/22)
----------------
- Update to version 6.2.14
Modified: showeq/trunk/conf/zoneopcodes.xml
===================================================================
--- showeq/trunk/conf/zoneopcodes.xml 2022-12-05 01:09:24 UTC (rev 1317)
+++ showeq/trunk/conf/zoneopcodes.xml 2022-12-06 23:21:26 UTC (rev 1318)
@@ -3,127 +3,127 @@
<seqopcodes>
<!-- Critical opcodes used directly by ShowEQ -->
- <opcode id="00e9" name="OP_PlayerProfile" updated="11/16/22">
+ <opcode id="18bd" name="OP_PlayerProfile" updated="12/06/22">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="8f12" name="OP_ZoneEntry" updated="11/16/22">
+ <opcode id="1bf9" name="OP_ZoneEntry" updated="12/06/22">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="776b" name="OP_TimeOfDay" updated="11/16/22">
+ <opcode id="7fbb" name="OP_TimeOfDay" updated="12/06/22">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1d8a" name="OP_NewZone" updated="11/16/22">
+ <opcode id="1b34" name="OP_NewZone" updated="12/06/22">
<comment>NewZoneCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="0818" name="OP_SpawnDoor" updated="11/16/22">
+ <opcode id="612d" name="OP_SpawnDoor" updated="12/06/22">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="05fb" name="OP_GroundSpawn" updated="11/16/22">
+ <opcode id="0f40" name="OP_GroundSpawn" updated="12/06/22">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="2b22" name="OP_SendZonePoints" updated="11/16/22">
+ <opcode id="550f" name="OP_SendZonePoints" updated="12/06/22">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
- <opcode id="71d3" name="OP_AAExpUpdate" updated="11/16/22">
+ <opcode id="63d8" name="OP_AAExpUpdate" updated="12/06/22">
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="103c" name="OP_ExpUpdate" updated="05/18/22">
+ <opcode id="26d3" name="OP_ExpUpdate" updated="12/06/22">
<comment>ExpUpdateCode</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5e83" name="OP_GuildMOTD" updated="11/16/22">
+ <opcode id="6c08" name="OP_GuildMOTD" updated="12/06/22">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
- <opcode id="1604" name="OP_ClientUpdate" updated="11/16/22">
+ <opcode id="6658" name="OP_ClientUpdate" updated="12/06/22">
<comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0195" name="OP_NpcMoveUpdate" updated="11/16/22">
+ <opcode id="5788" name="OP_NpcMoveUpdate" updated="12/06/22">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="1e77" name="OP_MobUpdate" updated="11/16/22">
+ <opcode id="39af" name="OP_MobUpdate" updated="12/06/22">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="3f95" name="OP_DeleteSpawn" updated="11/16/22">
+ <opcode id="2dfe" name="OP_DeleteSpawn" updated="12/06/22">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6319" name="OP_RemoveSpawn" updated="11/16/22">
+ <opcode id="39b6" name="OP_RemoveSpawn" updated="12/06/22">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
- <opcode id="2e0d" name="OP_Death" updated="11/16/22">
+ <opcode id="6e4f" name="OP_Death" updated="12/06/22">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
- <opcode id="7f21" name="OP_WearChange" updated="05/18/22">
+ <opcode id="7cfb" name="OP_WearChange" updated="12/06/22">
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="749b" name="OP_SpawnAppearance" updated="11/16/22">
+ <opcode id="38ad" name="OP_SpawnAppearance" updated="12/06/22">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
- <opcode id="ffff" name="OP_Stamina" updated="09/21/22">
+ <opcode id="00f6" name="OP_Stamina" updated="12/06/22">
<comment>Server updating on hunger/thirst</comment>
<payload dir="server" typename="staminaStruct" sizechecktype="match"/>
</opcode>
- <opcode id="3b05" name="OP_HPUpdate" updated="05/18/22">
+ <opcode id="0981" name="OP_HPUpdate" updated="12/06/22">
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1771" name="OP_GuildMemberUpdate" updated="11/16/22">
+ <opcode id="52dd" name="OP_GuildMemberUpdate" updated="12/06/22">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="2c0f" name="OP_ClickObject" updated="11/16/22">
+ <opcode id="0a1d" name="OP_ClickObject" updated="12/06/22">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0243" name="OP_Action" updated="11/16/22">
+ <opcode id="1512" name="OP_Action" updated="12/06/22">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
</opcode>
- <opcode id="32d3" name="OP_Action2" updated="11/16/22">
+ <opcode id="4f25" name="OP_Action2" updated="12/06/22">
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
- <opcode id="18fa" name="OP_Consider" updated="11/16/22">
+ <opcode id="0727" name="OP_Consider" updated="12/06/22">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="3b71" name="OP_TargetMouse" updated="11/16/22">
+ <opcode id="0d34" name="OP_TargetMouse" updated="12/06/22">
<comment>Targeting a person - old ClientTargetCode</comment>
<payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5f3f" name="OP_SpawnRename" updated="05/18/22">
+ <opcode id="6af8" name="OP_SpawnRename" updated="12/06/22">
<comment>Spawns getting renamed after initial NewSpawn</comment>
<payload dir="server" typename="spawnRenameStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4859" name="OP_Illusion" updated="05/18/22">
+ <opcode id="1091" name="OP_Illusion" updated="12/06/22">
<comment>Spawn being illusioned (changing forms)</comment>
<payload dir="both" typename="spawnIllusionStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0905" name="OP_Shroud" updated="05/18/22">
+ <opcode id="1cdf" name="OP_Shroud" updated="12/06/22">
<comment>Server putting players into shroud form</comment>
<payload dir="server" typename="spawnShroudSelf" sizechecktype="none"/>
</opcode>
- <opcode id="48a9" name="OP_ZoneChange" updated="11/16/22">
+ <opcode id="3b51" name="OP_ZoneChange" updated="12/06/22">
<comment>old ZoneChangeCode</comment>
<payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
</opcode>
@@ -163,55 +163,55 @@
<comment>Group leader change</comment>
<payload dir="server" typename="groupLeaderChangeStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4d81" name="OP_Buff" updated="05/18/22">
+ <opcode id="1e9e" name="OP_Buff" updated="12/06/22">
<comment>old BuffDropCode</comment>
<payload dir="both" typename="buffStruct" sizechecktype="match"/>
</opcode>
- <opcode id="224d" name="OP_BeginCast" updated="05/18/22">
+ <opcode id="5ea8" name="OP_BeginCast" updated="12/06/22">
<comment>BeginCastCode</comment>
<payload dir="both" typename="beginCastStruct" sizechecktype="match"/>
</opcode>
- <opcode id="18cc" name="OP_CastSpell" updated="05/18/22">
+ <opcode id="44d8" name="OP_CastSpell" updated="12/06/22">
<comment>StartCastCode</comment>
<payload dir="both" typename="startCastStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1d77" name="OP_SwapSpell" updated="05/18/22">
+ <opcode id="1363" name="OP_SwapSpell" updated="12/06/22">
<comment>TradeSpellBookSlotsCode</comment>
<payload dir="both" typename="tradeSpellBookSlotsStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0f38" name="OP_MemorizeSpell" updated="05/18/22">
+ <opcode id="3cfc" name="OP_MemorizeSpell" updated="12/06/22">
<comment>MemSpellCode</comment>
<payload dir="both" typename="memSpellStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0bf8" name="OP_InspectAnswer" updated="05/18/22">
+ <opcode id="3bef" name="OP_InspectAnswer" updated="12/06/22">
<comment>InspectDataCode</comment>
<payload dir="both" typename="inspectDataStruct" sizechecktype="match"/>
</opcode>
- <opcode id="3019" name="OP_Emote" updated="05/18/22">
+ <opcode id="6602" name="OP_Emote" updated="12/06/22">
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
- <opcode id="4298" name="OP_SimpleMessage" updated="11/16/22">
+ <opcode id="0d76" name="OP_SimpleMessage" updated="12/06/22">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
- <opcode id="2623" name="OP_FormattedMessage" updated="11/16/22">
+ <opcode id="25c2" name="OP_FormattedMessage" updated="12/06/22">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="39a1" name="OP_CommonMessage" updated="11/16/22">
+ <opcode id="05e7" name="OP_CommonMessage" updated="12/06/22">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="4612" name="OP_SpecialMesg" updated="11/16/22">
+ <opcode id="0107" name="OP_SpecialMesg" updated="12/06/22">
<comment>Communicate textual info to client including hail responses etc</comment>
<payload dir="server" typename="specialMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="ffff" name="OP_RandomReq" updated="09/21/22">
+ <opcode id="7f13" name="OP_RandomReq" updated="12/06/22">
<comment>RandomReqCode</comment>
<payload dir="client" typename="randomReqStruct" sizechecktype="match"/>
</opcode>
- <opcode id="425d" name="OP_RandomReply" updated="05/18/22">
+ <opcode id="20b5" name="OP_RandomReply" updated="12/06/22">
<comment>RandomCode</comment>
<payload dir="server" typename="randomStruct" sizechecktype="match"/>
</opcode>
@@ -223,36 +223,36 @@
<comment>Server replying with deny information after /deny</comment>
<payload dir="server" typename="consentResponseStruct" sizechecktype="match"/>
</opcode>
- <opcode id="12bc" name="OP_ManaChange" updated="05/18/22">
+ <opcode id="4658" name="OP_ManaChange" updated="12/06/22">
<comment>Mana change. Bards send this up with no size. Casters receive this for mana updates.</comment>
<payload dir="server" typename="manaDecrementStruct" sizechecktype="match"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="64c1" name="OP_BazaarSearchRequest" updated="05/18/22">
+ <opcode id="59d7" name="OP_BazaarSearchRequest" updated="12/06/22">
<comment>Bazaar search request </comment>
<payload dir="client" typename="bazaarSearchQueryStruct" sizechecktype="none"/>
</opcode>
- <opcode id="3686" name="OP_BazaarSearchResponse" updated="05/18/22">
+ <opcode id="6ca8" name="OP_BazaarSearchResponse" updated="12/06/22">
<comment>Bazaar search Response - Struct incorrect </comment>
<payload dir="server" typename="bazaarSearchResponseStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="ffff" name="OP_MoneyOnCorpse" updated="05/18/22">
+ <opcode id="38c3" name="OP_MoneyOnCorpse" updated="12/06/22">
<comment>MoneyOnCorpseCode</comment>
<payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5e74" name="OP_SkillUpdate" updated="05/18/22">
+ <opcode id="420e" name="OP_SkillUpdate" updated="12/06/22">
<comment>Skill up code</comment>
<payload dir="server" typename="skillIncStruct" sizechecktype="match"/>
</opcode>
- <opcode id="007f" name="OP_LevelUpdate" updated="05/18/22">
+ <opcode id="59d6" name="OP_LevelUpdate" updated="12/06/22">
<comment>LevelUpUpdateCode</comment>
<payload dir="server" typename="levelUpUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1d10" name="OP_DzSwitchInfo" updated="05/18/22">
+ <opcode id="599e" name="OP_DzSwitchInfo" updated="12/06/22">
<comment>Expedition compass etc</comment>
<payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/>
</opcode>
- <opcode id="2487" name="OP_DzInfo" updated="05/18/22">
+ <opcode id="5e28" name="OP_DzInfo" updated="12/06/22">
<comment>Expedition Information</comment>
<payload dir="server" typename="dzInfo" sizechecktype="match"/>
</opcode>
@@ -260,11 +260,11 @@
<comment>Environmental Damage</comment>
<payload dir="client" typename="environmentDamageStruct" sizechecktype="match"/>
</opcode>
- <opcode id="173c" name="OP_SetRunMode" updated="05/18/22">
+ <opcode id="13e3" name="OP_SetRunMode" updated="12/06/22">
<comment>old cRunToggleCode</comment>
<payload dir="client" typename="cRunToggleStruct" sizechecktype="match"/>
</opcode>
- <opcode id="10e9" name="OP_Trader" updated="05/18/22">
+ <opcode id="311f" name="OP_Trader" updated="12/06/22">
<comment>PC's turning trader on and off</comment>
<payload dir="server" typename="bazaarTraderRequest" sizechecktype="match"/>
</opcode>
@@ -307,15 +307,15 @@
<comment>List of group members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="324b" name="OP_GuildMemberList" updated="11/16/22">
+ <opcode id="5c91" name="OP_GuildMemberList" updated="12/06/22">
<comment>List of guild members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="1fe5" name="OP_ManaUpdate" updated="05/18/22">
+ <opcode id="0eab" name="OP_ManaUpdate" updated="12/06/22">
<comment>Mana Update opcode - 10 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="21c9" name="OP_EndUpdate" updated="05/18/22">
+ <opcode id="5472" name="OP_EndUpdate" updated="12/06/22">
<comment>Endurance Update opcode - 10 bytes</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="4867" name="OP_ExpandedGuildInfo" updated="11/16/22">
+ <opcode id="6335" name="OP_ExpandedGuildInfo" updated="12/06/22">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
@@ -535,11 +535,11 @@
<comment>Listing of all guilds. Can be triggered by /lfg search?</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="63c4" name="OP_GuildsInZoneList" updated="05/18/22">
+ <opcode id="3da5" name="OP_GuildsInZoneList" updated="12/06/22">
<comment>Listing of guild names present in the current zone. Generally seen on zoning</comment>
<payload dir="server" typename="guildsInZoneListStruct" sizechecktype="none"/>
</opcode>
- <opcode id="1d0a" name="OP_NewGuildInZone" updated="05/18/22">
+ <opcode id="773e" name="OP_NewGuildInZone" updated="12/06/22">
<comment>An additional guild name has appeared in the current zone. Seen when a guilded player enters the current zone</comment>
<payload dir="server" typename="newGuildInZoneStruct" 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="1fa1" name="OP_Find" updated="11/16/22">
+ <opcode id="53bb" name="OP_Find" updated="12/06/22">
<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 2022-12-05 01:09:24 UTC (rev 1317)
+++ showeq/trunk/configure.in 2022-12-06 23:21:26 UTC (rev 1318)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 6.2.14)
+AC_INIT(showeq, 6.2.15)
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 2022-12-05 01:09:24 UTC (rev 1317)
+++ showeq/trunk/src/everquest.h 2022-12-06 23:21:26 UTC (rev 1318)
@@ -1113,25 +1113,25 @@
struct
{
- unsigned pitch:12; // pitch (up/down heading)
- signed deltaY:13; // change in y
- unsigned padding00:7;
+ signed y:19; // y coord (2nd loc value)
+ signed deltaHeading:10; // change in heading
+ unsigned padding00:3;
+ signed deltaZ:13; // change in z
+ signed deltaX:13; // change in x
+ unsigned padding01:6;
+
signed z:19; // z coord (3rd loc value)
- signed animation:10; // current animation
- unsigned padding01:3;
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding02:1;
signed x:19; // x coord (1st loc value)
- signed deltaHeading:10; // change in heading
- unsigned padding02:3;
-
unsigned heading:12; // heading
- signed y:19; // y coord (2nd loc value)
unsigned padding03:1;
- signed deltaX:13; // change in x
- signed deltaZ:13; // change in z
- unsigned padding04:6;
+ signed deltaY:13; // change in y
+ signed animation:10; // current animation
+ unsigned padding04:9;
};
int32_t posData[5];
@@ -2391,25 +2391,25 @@
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
/*0004*/
- unsigned pitch:12; // pitch (up/down heading)
- signed deltaY:13; // change in y
- unsigned padding00:7;
+ signed y:19; // y coord (2nd loc value)
+ signed deltaHeading:10; // change in heading
+ unsigned padding00:3;
/*0008*/
+ signed deltaZ:13; // change in z
+ signed deltaX:13; // change in x
+ unsigned padding01:6;
+/*0012*/
signed z:19; // z coord (3rd loc value)
- signed animation:10; // current animation
- unsigned padding01:3;
-/*0012*/
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding02:1;
+/*0016*/
signed x:19; // x coord (1st loc value)
- signed deltaHeading:10; // change in heading
- unsigned padding02:3;
-/*0016*/
unsigned heading:12; // heading
- signed y:19; // y coord (2nd loc value)
unsigned padding03:1;
/*0020*/
- signed deltaX:13; // change in x
- signed deltaZ:13; // change in z
- unsigned padding04:6;
+ signed deltaY:13; // change in y
+ signed animation:10; // current animation
+ unsigned padding04:9;
/*0024*/
};
@@ -2424,25 +2424,28 @@
/*0002*/ uint16_t spawnId; // Player's spawn id
/*0004*/ uint16_t unknown0004; // ***Placeholder
/*0006*/
- unsigned pitch:12; // pitch (up/down heading)
- signed deltaHeading:10; // change in heading
- signed animation:10; // current animation
+ float deltaX; // change in x
/*0010*/
- float y; // y coord (2nd loc value)
+ float deltaY; // change in y
/*0014*/
- float deltaZ; // change in z
+ unsigned heading:12; // heading
+ unsigned padding07:20;
/*0018*/
- float deltaY; // change in y
+ float x; // x coord (1st loc value)
/*0022*/
- float z; // z coord (3rd loc value)
+ signed animation:10; // current animation
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding22:10;
/*0026*/
- float deltaX; // change in x
+ float deltaZ; // change in z
/*0030*/
- float x; // x coord (1st loc value)
+ float z; // z coord (3rd loc value)
/*0034*/
- unsigned heading:12; // heading
- unsigned padding07:20;
+ signed deltaHeading:10; // change in heading
+ unsigned padding34:22;
/*0038*/
+ float y; // y coord (2nd loc value)
+/*0042*/
};
/*
Modified: showeq/trunk/src/interface.cpp
===================================================================
--- showeq/trunk/src/interface.cpp 2022-12-05 01:09:24 UTC (rev 1317)
+++ showeq/trunk/src/interface.cpp 2022-12-06 23:21:26 UTC (rev 1318)
@@ -5449,6 +5449,10 @@
void EQInterface::toggleTypeFilter(QAction* type)
{
+
+ if (type->text() == "&Enable All" || type->text() == "&Disable All")
+ return;
+
uint64_t enabledTypes = m_terminal->enabledTypes();
int id = type->data().value<int>();
@@ -5473,7 +5477,7 @@
for (int i = MT_Guild; i <= MT_Max; i++)
{
typeName = MessageEntry::messageTypeString((MessageType)i);
- if (!typeName.isEmpty())
+ if (!typeName.isEmpty() && m_action_term_MessageTypeFilters[i])
m_action_term_MessageTypeFilters[i]->setChecked(false);
}
}
@@ -5494,6 +5498,10 @@
void EQInterface::toggleShowUserFilter(QAction* filter)
{
+
+ if (filter->text() == "&Enable All" || filter->text() == "&Disable All")
+ return;
+
uint32_t enabledShowUserFilters = m_terminal->enabledShowUserFilters();
int id = filter->data().value<int>();
@@ -5540,6 +5548,9 @@
void EQInterface::toggleHideUserFilter(QAction* filter)
{
+ if (filter->text() == "&Enable All" || filter->text() == "&Disable All")
+ return;
+
uint32_t enabledHideUserFilters = m_terminal->enabledHideUserFilters();
int id = filter->data().value<int>();
Modified: showeq/trunk/src/races.h
===================================================================
--- showeq/trunk/src/races.h 2022-12-05 01:09:24 UTC (rev 1317)
+++ showeq/trunk/src/races.h 2022-12-06 23:21:26 UTC (rev 1318)
@@ -924,4 +924,22 @@
"Blood Bag", // 900
"Stonegrabber", // 901
"Riding Dog", // 902
+ "Boar Mount", // 903
+ "Fungal Fiend", // 904
+ "Grimling", // 905
+ "Rockhopper", // 906
+ "Shik'Nar", // 907
+ "Shrieker", // 908
+ "Underbulk", // 909
+ "Sonic Wolf", // 910
+ "Sonic Wolf Mount", // 911
+ "Shik'Nar Mount", // 912
+ "Rakshasa", // 913
+ "Gumdrop", // 914
+ "Fish", // 915
+ "Turtle", // 916
+ "Bear", // 917
+ "Stitchwork Lion", // 918
+ "Fungus Man", // 919
+ "Duck", // 920
#endif
Modified: showeq/trunk/src/xmlconv.cpp
===================================================================
--- showeq/trunk/src/xmlconv.cpp 2022-12-05 01:09:24 UTC (rev 1317)
+++ showeq/trunk/src/xmlconv.cpp 2022-12-06 23:21:26 UTC (rev 1318)
@@ -288,53 +288,14 @@
{
QString value = e.attribute("value");
- // borrowed more or less from Qt 3.2 (since we have to support older)
- uint64_t val = 0;
- const QChar* p = value.unicode();
- int l = value.length();
- const uint64_t max_mult = UINT64_MAX / 16;
- if (!p)
- {
- qWarning("Invalid value for tag: %s", e.tagName().toLatin1().data());
- return false;
- }
+ uint64_t tmp = value.toULongLong(&ok, 16);
- while ( l && p->isSpace() ) // skip leading space
- l--,p++;
- if ( !l )
- return false;
- if ( *p == '+' )
- l--,p++;
-
- if ( !l || !ok_in_hex(*p) )
+ if (!ok)
return false;
- while ( l && ok_in_hex(*p) )
- {
- l--;
- uint dv;
- if ( p->isDigit() )
- dv = p->digitValue();
- else
- {
- if ( *p >= 'a' && *p <= 'f' )
- dv = p->toLatin1() - 'a' + 10;
- else
- dv = p->toLatin1() - 'A' + 10;
- }
- if ( val > max_mult || (val == max_mult && dv > UINT64_MAX % 16) )
- return false;
- val = 16 * val + dv;
- p++;
- }
- //fromRawData() creates a reference to the existing data
- QByteArray ba_ref = QByteArray::fromRawData((const char*)&val, sizeof(uint64_t));
- //so we make a (deep) copy
- QByteArray ba = ba_ref;
+ v.setValue(tmp);
- v = ba;
- ok = true;
}
else if (e.tagName() == "list")
{
@@ -360,27 +321,55 @@
switch (v.type())
{
- case QVariant::String:
+ case QMetaType::QString:
e.setTagName("string");
e.setAttribute("value", v.toString().toUtf8().data());
break;
- case QVariant::Int:
+ case QMetaType::Int:
e.setTagName("int");
e.setAttribute("value", v.toInt());
break;
- case QVariant::UInt:
+ case QMetaType::UInt:
e.setTagName("uint");
e.setAttribute("value", v.toUInt());
break;
- case QVariant::Double:
+ case QMetaType::Long:
+ case QMetaType::LongLong:
+ {
+ e.setTagName("int64");
+ QString val;
+#if (QT_VERSION >= QT_VERSION_CHECK(5,5,0))
+ val = QString::asprintf("%0.16llx", v.toLongLong());
+#else
+ val = v.toLongLong();
+ val.sprintf("%0.16llx", v.toLongLong());
+#endif
+ e.setAttribute("value", val);
+ break;
+ }
+ case QMetaType::ULong:
+ case QMetaType::ULongLong:
+ {
+ e.setTagName("uint64");
+ QString val;
+#if (QT_VERSION >= QT_VERSION_CHECK(5,5,0))
+ val = QString::asprintf("%0.16llx", v.toULongLong());
+#else
+ val = v.toULongLong();
+ val.sprintf("%0.16llx", v.toULongLong());
+#endif
+ e.setAttribute("value", val);
+ break;
+ }
+ case QMetaType::Double:
e.setTagName("double");
e.setAttribute("value", v.toDouble());
break;
- case QVariant::Bool:
+ case QMetaType::Bool:
e.setTagName("bool");
e.setAttribute("value", boolString(v.toBool()));
break;
- case QVariant::Color:
+ case QMetaType::QColor:
{
e.setTagName("color");
QColor color = v.value<QColor>();
@@ -389,7 +378,7 @@
e.setAttribute("blue", color.blue());
}
break;
- case QVariant::Pen:
+ case QMetaType::QPen:
{
e.setTagName("pen");
QPen pen = v.value<QPen>();
@@ -401,7 +390,7 @@
e.setAttribute("join", pen.joinStyle());
}
break;
- case QVariant::Brush:
+ case QMetaType::QBrush:
{
e.setTagName("brush");
QBrush brush = v.value<QBrush>();
@@ -411,7 +400,7 @@
e.setAttribute("style", brush.style());
}
break;
- case QVariant::Point:
+ case QMetaType::QPoint:
{
e.setTagName("point");
QPoint point = v.toPoint();
@@ -419,7 +408,7 @@
e.setAttribute("y", point.y());
}
break;
- case QVariant::Rect:
+ case QMetaType::QRect:
{
e.setTagName("rect");
QRect rect = v.toRect();
@@ -429,7 +418,7 @@
e.setAttribute("height", rect.height());
}
break;
- case QVariant::Size:
+ case QMetaType::QSize:
{
e.setTagName("size");
QSize qsize = v.toSize();
@@ -437,7 +426,7 @@
e.setAttribute("height", qsize.height());
}
break;
- case QVariant::Font:
+ case QMetaType::QFont:
{
e.setTagName("font");
QFont f(v.value<QFont>());
@@ -449,7 +438,7 @@
e.setAttribute("strikeout", boolString(f.strikeOut()));
}
break;
- case QVariant::SizePolicy:
+ case QMetaType::QSizePolicy:
{
e.setTagName("sizepolicy");
QSizePolicy sp(v.value<QSizePolicy>());
@@ -459,12 +448,12 @@
e.setAttribute("verstretch", sp.verticalStretch());
}
break;
- case QVariant::Cursor:
+ case QMetaType::QCursor:
e.setTagName("cursor");
e.setAttribute("shape", v.value<QCursor>().shape());
break;
- case QVariant::StringList:
+ case QMetaType::QStringList:
{
e.setTagName("stringlist");
uint j;
@@ -515,50 +504,11 @@
}
break;
- case QVariant::KeySequence:
+ case QMetaType::QKeySequence:
e.setTagName("key");
e.setAttribute("sequence", (QString)v.value<QKeySequence>().toString());
break;
- case QVariant::ByteArray: // this is only for [u]int64_t
- {
- e.setTagName("uint64");
- QByteArray ba = v.toByteArray();
-
- // make sure this only handles [u]int64_t's
- if (ba.size() != sizeof(uint64_t))
- {
- qWarning("Don't know how to persist variant of type: %s (%d) (size=%d)!",
- v.typeName(), v.type(), ba.size());
- ok = false;
- break;
- }
-
- // convert the data back into a uint64_t
- uint64_t num = *(uint64_t*)ba.data();
-
- QChar buff[33];
- QChar* p = &buff[32];
- const char* digitSet = "0123456789abcdef";
- int len = 0;
-
- // construct the string
- do
- {
- *--p = digitSet[((int)(num%16))];
- num = num >> 4; // divide by 16
- len++;
- } while ( num );
-
- // store it in a QString
- QString storage;
- storage.setUnicode(p, len);
-
- // set the value
- e.setAttribute("value", storage);
- }
- break;
-
#if 0
case QVariant::List:
case QVaraint::Map:
Modified: showeq/trunk/src/xmlpreferences.cpp
===================================================================
--- showeq/trunk/src/xmlpreferences.cpp 2022-12-05 01:09:24 UTC (rev 1317)
+++ showeq/trunk/src/xmlpreferences.cpp 2022-12-06 23:21:26 UTC (rev 1318)
@@ -740,31 +740,35 @@
switch(preference->type())
{
- case QVariant::String:
- // convert it to a int64_t (in base 16)
+ case QMetaType::QString:
+ // convert it to a uint64_t (in base 16)
+ //TODO ok
value = strtoll(preference->toString().toLatin1().data(), 0, 16);
break;
- case QVariant::Int:
- case QVariant::UInt:
- value = preference->toInt();
+ case QMetaType::UInt:
+ case QMetaType::Int:
+ case QMetaType::Long:
+ case QMetaType::ULong:
+ case QMetaType::ULongLong:
+ case QMetaType::LongLong:
+
+ value = preference->toLongLong();
break;
- case QVariant::Double:
+ case QMetaType::Double:
value = int64_t(preference->toDouble());
break;
- case QVariant::ByteArray:
- {
- QByteArray ba = preference->toByteArray();
- if (ba.size() == sizeof(int64_t))
- value = *(int64_t*)ba.data();
- break;
- }
+
default:
- qWarning("XMLPreferences::getPrefInt64(%s, %s, %lld): preference found,\n"
+ qWarning("XMLPreferences::getPrefInt64(%s, %s, %llu): preference found,\n"
"\tbut type %s is not convertable to type int64_t!",
- inName.toLatin1().data(), inSection.toLatin1().data(), (long long)def,
+ inName.toLatin1().data(), inSection.toLatin1().data(),
+ (unsigned long long)def,
preference->typeName());
- }
+ value=def;
+ break;
+ } //end switch
+
// return the key
return value;
}
@@ -788,24 +792,24 @@
switch(preference->type())
{
- case QVariant::String:
+ case QMetaType::QString:
// convert it to a uint64_t (in base 16)
+ // TODO ok
value = strtoull(preference->toString().toLatin1().data(), 0, 16);
break;
- case QVariant::Int:
- case QVariant::UInt:
- value = preference->toInt();
+ case QMetaType::UInt:
+ case QMetaType::Int:
+ case QMetaType::Long:
+ case QMetaType::ULong:
+ case QMetaType::ULongLong:
+ case QMetaType::LongLong:
+
+ value = preference->toULongLong();
break;
- case QVariant::Double:
+ case QMetaType::Double:
value = uint64_t(preference->toDouble());
break;
- case QVariant::ByteArray:
- {
- QByteArray ba = preference->toByteArray();
- if (ba.size() == sizeof(uint64_t))
- value = *(uint64_t*)ba.data();
- break;
- }
+
default:
qWarning("XMLPreferences::getPrefUInt64(%s, %s, %llu): preference found,\n"
"\tbut type %s is not convertable to type uint64_t!",
@@ -812,8 +816,11 @@
inName.toLatin1().data(), inSection.toLatin1().data(),
(unsigned long long)def,
preference->typeName());
- }
+ value=def;
+ break;
+ } //end switch
+
// return the key
return value;
}
@@ -885,9 +892,9 @@
int64_t inValue,
Persistence pers)
{
- QByteArray ba_ref = QByteArray::fromRawData((const char*)&inValue, sizeof(int64_t));
- QByteArray ba = ba_ref;
- setPref(inName, inSection, ba, pers);
+ QVariant tmp;
+ tmp.setValue((qlonglong)inValue);
+ setPref(inName, inSection, tmp, pers);
}
@@ -896,9 +903,9 @@
uint64_t inValue,
Persistence pers)
{
- QByteArray ba_ref = QByteArray::fromRawData((const char*)&inValue, sizeof(uint64_t));
- QByteArray ba = ba_ref;
- setPref(inName, inSection, ba, pers);
+ QVariant tmp;
+ tmp.setValue((qulonglong)inValue);
+ setPref(inName, inSection, tmp, pers);
}
void XMLPreferences::setPrefVariant(const QString& inName,
Modified: showeq/trunk/src/zones.h
===================================================================
--- showeq/trunk/src/zones.h 2022-12-05 01:09:24 UTC (rev 1317)
+++ showeq/trunk/src/zones.h 2022-12-06 23:21:26 UTC (rev 1318)
@@ -870,15 +870,15 @@
{ "shadowvalley", "Shadow Valley" }, // 847
{ "basilica", "Basilica of Adumbration" }, // 848
{ "bloodfalls", "Bloodfalls" }, // 849
-{ NULL, NULL }, // 850
-{ NULL, NULL }, // 851
-{ NULL, NULL }, // 852
-{ NULL, NULL }, // 853
-{ NULL, NULL }, // 854
-{ NULL, NULL }, // 855
-{ NULL, NULL }, // 856
-{ NULL, NULL }, // 857
-{ NULL, NULL }, // 858
+{ "maidenhouseint", "Coterie Chambers" }, // 850
+{ "shadowhaventwo", "Ruins of Shadow Haven" }, // 851
+{ "sharvahltwo", "Shar Vahl, Divided" }, // 852
+{ "paludaltwo", "Paludal Depths" }, // 853
+{ "shadeweavertwo", "Shadeweaver's Tangle" }, // 854
+{ "darklightcaverns", "Darklight Caverns" }, // 855
+{ "deepshade", "Deepshade" }, // 856
+{ "firefallpass", "Firefall Pass" }, // 857
+{ "hollowshadetwo", "Hollowshade Moor" }, // 858
{ NULL, NULL }, // 859
{ NULL, NULL }, // 860
{ NULL, NULL }, // 861
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|