|
From: <iea...@us...> - 2009-01-20 17:41:17
|
Revision: 718
http://seq.svn.sourceforge.net/seq/?rev=718&view=rev
Author: ieatacid
Date: 2009-01-20 17:41:14 +0000 (Tue, 20 Jan 2009)
Log Message:
-----------
+ Opcode updates from December
+ Added instance location marker
+ Added option to filter client/server zone logs
+ Version to 5.13.0
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/interface.h
showeq/trunk/src/main.cpp
showeq/trunk/src/main.h
showeq/trunk/src/map.cpp
showeq/trunk/src/map.h
showeq/trunk/src/mapicon.cpp
showeq/trunk/src/mapicon.h
showeq/trunk/src/packetlog.cpp
showeq/trunk/src/packetlog.h
showeq/trunk/src/s_everquest.h
showeq/trunk/src/zonemgr.cpp
showeq/trunk/src/zonemgr.h
Modified: showeq/trunk/ChangeLog
===================================================================
--- showeq/trunk/ChangeLog 2008-11-21 15:30:09 UTC (rev 717)
+++ showeq/trunk/ChangeLog 2009-01-20 17:41:14 UTC (rev 718)
@@ -1,3 +1,10 @@
+ieatacid (1/20/09)
+-----------------
+- Updated version to 5.13.0
+- Opcode updates from December
+- Added instance location marker. Right-click map -> Show -> Instance Location Marker
+- Added option to filter client/server packets in the zone log file
+
purple (11/21/08)
-----------------
- Fixed acincludes test for QT to use modern headers so we don't require
Modified: showeq/trunk/conf/zoneopcodes.xml
===================================================================
--- showeq/trunk/conf/zoneopcodes.xml 2008-11-21 15:30:09 UTC (rev 717)
+++ showeq/trunk/conf/zoneopcodes.xml 2009-01-20 17:41:14 UTC (rev 718)
@@ -274,9 +274,16 @@
<comment></comment>
<payload dir="server" typename="none" sizechecktype="match"/>
</opcode>
+ <opcode id="35D3" name="OP_DzSwitchInfo" updated="12/23/08">
+ <comment></comment>
+ <payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/>
+ </opcode>
+ <opcode id="128E" name="OP_DzInfo" updated="12/23/08">
+ <comment></comment>
+ <payload dir="server" typename="dzInfo" sizechecktype="match"/>
+ </opcode>
+
-
-
<!--
Not necessary for SEQ to run but here to name packets in logs.
Also unverified as of 12-1-2007.
Modified: showeq/trunk/configure.in
===================================================================
--- showeq/trunk/configure.in 2008-11-21 15:30:09 UTC (rev 717)
+++ showeq/trunk/configure.in 2009-01-20 17:41:14 UTC (rev 718)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 5.12.7.0)
+AC_INIT(showeq, 5.13.0.0)
AC_CONFIG_SRCDIR(src/main.cpp)
AC_CANONICAL_SYSTEM
Modified: showeq/trunk/src/everquest.h
===================================================================
--- showeq/trunk/src/everquest.h 2008-11-21 15:30:09 UTC (rev 717)
+++ showeq/trunk/src/everquest.h 2009-01-20 17:41:14 UTC (rev 718)
@@ -608,6 +608,42 @@
/*0932*/
};
+/*
+** Dynamic Zone Switch Info Struct
+** Length: 32 Octets
+** OpCode: DzSwitchInfo
+*/
+struct dzSwitchInfo
+{
+/*0000*/ uint32_t unknown0000;
+/*0004*/ uint32_t show; // Show compass line
+/*0008*/ uint16_t zoneID;
+/*0010*/ uint16_t instanceID;
+/*0012*/ uint32_t type; // if(type != 1 && type > 2 && type <= 5) { color = green; } else { color = pink; }
+/*0016*/ uint32_t unknown0016;
+/*0020*/ float y;
+/*0024*/ float x;
+/*0028*/ float z;
+/*0032*/
+};
+
+/*
+** Dynamic Zone Info Struct
+** Length: 208 Octets
+** OpCode: DzInfo
+*/
+struct dzInfo
+{
+/*0000*/ uint32_t unknown0000;
+/*0004*/ uint32_t unknown0004;
+/*0008*/ uint8_t newDZ;
+/*0009*/ uint8_t padding0009[3];
+/*0012*/ uint32_t maxPlayers;
+/*0016*/ char dzName[128]; // Instance name
+/*0144*/ char name[64]; // Your player's name
+/*0208*/
+};
+
/**
* Player Profile. Common part of charProfileStruct shared between
* shrouding and zoning profiles.
Modified: showeq/trunk/src/interface.cpp
===================================================================
--- showeq/trunk/src/interface.cpp 2008-11-21 15:30:09 UTC (rev 717)
+++ showeq/trunk/src/interface.cpp 2009-01-20 17:41:14 UTC (rev 718)
@@ -905,7 +905,7 @@
m_id_opt_KeepSelectedVisible =
pOptMenu->insertItem("Keep Selected Visible?" , this, SLOT(toggle_opt_KeepSelectedVisible()));
m_id_opt_LogSpawns = pOptMenu->insertItem("Log Spawns", this, SLOT(toggle_opt_LogSpawns()));
- m_id_opt_BazaarData = pOptMenu->insertItem("Bazaar Searches", this, SLOT(toggle_opt_BazaarData()), Key_F11);
+ m_id_opt_BazaarData = pOptMenu->insertItem("Bazaar Searches", this, SLOT(toggle_opt_BazaarData()));
menuBar()->setItemChecked (m_id_opt_BazaarData, (m_bazaarLog != 0));
m_id_opt_ResetMana = pOptMenu->insertItem("Reset Max Mana", this, SLOT(resetMaxMana()));
m_id_opt_PvPTeams = pOptMenu->insertItem("PvP Teams", this, SLOT(toggle_opt_PvPTeams()));
@@ -988,11 +988,10 @@
x = conColorBaseMenu->insertItem("Unknown Spawn...");
conColorBaseMenu->setItemParameter(x, tUnknownSpawn);
connect(conColorBaseMenu, SIGNAL(activated(int)),
- this, SLOT(select_opt_conColorBase(int)));
+ this, SLOT(select_opt_conColorBase(int)));
pOptMenu->insertItem("Con &Colors", conColorBaseMenu);
-
- m_id_opt_useUpdateRadius = pOptMenu->insertItem("&Use EQ's Update Radius",
- this, SLOT(toggle_opt_UseUpdateRadius()));
+ m_id_opt_useUpdateRadius = pOptMenu->insertItem("Use EQ's Update Radius",
+ this, SLOT(toggle_opt_UseUpdateRadius()));
menuBar()->setItemChecked (m_id_opt_useUpdateRadius, showeq_params->useUpdateRadius);
// Network Menu
@@ -1021,6 +1020,14 @@
SLOT(toggle_view_UnknownData()) ,
Key_F9);
m_id_log_RawData = pLogMenu->insertItem("Raw Data", this, SLOT(toggle_log_RawData()), Key_F10);
+
+ m_filterZoneDataMenu = new QPopupMenu;
+ pLogMenu->insertItem("Filter Zone Data", m_filterZoneDataMenu);
+ m_id_log_Filter_ZoneData_Client = m_filterZoneDataMenu->insertItem("Client", this,
+ SLOT(toggle_log_Filter_ZoneData_Client()));
+ m_id_log_Filter_ZoneData_Server = m_filterZoneDataMenu->insertItem("Server", this,
+ SLOT(toggle_log_Filter_ZoneData_Server()));
+
menuBar()->setItemChecked (m_id_log_AllPackets, (m_globalLog != 0));
menuBar()->setItemChecked (m_id_log_WorldData, (m_worldLog != 0));
menuBar()->setItemChecked (m_id_log_ZoneData, (m_zoneLog != 0));
@@ -1648,6 +1655,12 @@
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)
@@ -3580,6 +3593,38 @@
pSEQPrefs->setPrefBool("LogZonePackets", "PacketLogging", state);
}
+void EQInterface::toggle_log_Filter_ZoneData_Client (void)
+{
+ bool state = true;
+ if(showeq_params->filterZoneDataLog == DIR_Client)
+ {
+ showeq_params->filterZoneDataLog = 0;
+ state = false;
+ }
+ else
+ {
+ showeq_params->filterZoneDataLog = DIR_Client;
+ }
+ m_filterZoneDataMenu->setItemChecked(m_id_log_Filter_ZoneData_Client, state);
+ m_filterZoneDataMenu->setItemChecked(m_id_log_Filter_ZoneData_Server, false);
+}
+
+void EQInterface::toggle_log_Filter_ZoneData_Server (void)
+{
+ bool state = true;
+ if(showeq_params->filterZoneDataLog == DIR_Server)
+ {
+ showeq_params->filterZoneDataLog = 0;
+ state = false;
+ }
+ else
+ {
+ showeq_params->filterZoneDataLog = DIR_Server;
+ }
+ m_filterZoneDataMenu->setItemChecked(m_id_log_Filter_ZoneData_Server, state);
+ m_filterZoneDataMenu->setItemChecked(m_id_log_Filter_ZoneData_Client, false);
+}
+
void EQInterface::toggle_opt_BazaarData (void)
{
if (m_bazaarLog)
@@ -5950,6 +5995,8 @@
m_zoneLog->setRaw(pSEQPrefs->getPrefBool("LogRawPackets", "PacketLogging",
false));
+
+ m_zoneLog->setDir(0);
connect(m_packet, SIGNAL(rawZonePacket(const uint8_t*, size_t, uint8_t, uint16_t)),
m_zoneLog, SLOT(rawStreamPacket(const uint8_t*, size_t, uint8_t, uint16_t)));
Modified: showeq/trunk/src/interface.h
===================================================================
--- showeq/trunk/src/interface.h 2008-11-21 15:30:09 UTC (rev 717)
+++ showeq/trunk/src/interface.h 2009-01-20 17:41:14 UTC (rev 718)
@@ -199,6 +199,8 @@
void toggle_view_SpawnListCol( int id );
void toggle_view_DockedWin( int id );
void toggle_view_DockableWin( int id );
+ void toggle_log_Filter_ZoneData_Client();
+ void toggle_log_Filter_ZoneData_Server();
void selectTheme(int id);
void toggle_opcode_monitoring (int id);
@@ -391,6 +393,7 @@
QPopupMenu* m_terminalHideUserFilterMenu;
QPopupMenu* m_windowMenu;
QPtrDict<int> m_windowsMenus;
+ QPopupMenu* m_filterZoneDataMenu;
CompassFrame* m_compass;
MessageWindow* m_messageWindow[maxNumMessageWindows];
@@ -461,6 +464,8 @@
int m_packetStartTime;
int m_initialcount;
int m_id_opt_useUpdateRadius;
+ int m_id_log_Filter_ZoneData_Client;
+ int m_id_log_Filter_ZoneData_Server;
MenuIDList IDList_StyleMenu;
Modified: showeq/trunk/src/main.cpp
===================================================================
--- showeq/trunk/src/main.cpp 2008-11-21 15:30:09 UTC (rev 717)
+++ showeq/trunk/src/main.cpp 2009-01-20 17:41:14 UTC (rev 718)
@@ -235,7 +235,7 @@
showeq_params->pvp = pSEQPrefs->getPrefBool("PvPTeamColoring", section, false);
showeq_params->deitypvp = pSEQPrefs->getPrefBool("DeityPvPTeamColoring", section, false);
showeq_params->keep_selected_visible = pSEQPrefs->getPrefBool("KeepSelected", section, true);
- showeq_params->useUpdateRadius = pSEQPrefs->getPrefBool("UseUpdateRadius", section, true);
+ showeq_params->useUpdateRadius = pSEQPrefs->getPrefBool("UseUpdateRadius", section, false);
section = "Misc";
showeq_params->fast_machine = pSEQPrefs->getPrefBool("FastMachine", section, true);
@@ -262,6 +262,7 @@
showeq_params->restoreZoneState = false;
showeq_params->restoreSpawns = false;
showeq_params->saveRestoreBaseFilename = dataLocMgr.findWriteFile("tmp", pSEQPrefs->getPrefString("BaseFilename", section, "last")).absFilePath();
+ showeq_params->filterZoneDataLog = 0;
/* Parse the commandline for commandline parameters */
while ((opt = getopt_long( argc,
Modified: showeq/trunk/src/main.h
===================================================================
--- showeq/trunk/src/main.h 2008-11-21 15:30:09 UTC (rev 717)
+++ showeq/trunk/src/main.h 2009-01-20 17:41:14 UTC (rev 718)
@@ -45,6 +45,7 @@
bool restoreSpawns;
QString saveRestoreBaseFilename;
bool useUpdateRadius;
+ uint8_t filterZoneDataLog;
};
extern struct ShowEQParams *showeq_params;
Modified: showeq/trunk/src/map.cpp
===================================================================
--- showeq/trunk/src/map.cpp 2008-11-21 15:30:09 UTC (rev 717)
+++ showeq/trunk/src/map.cpp 2009-01-20 17:41:14 UTC (rev 718)
@@ -818,6 +818,8 @@
subMenu->insertItem("Race PvP", this, SLOT(toggle_racePvP(int)));
m_id_zoneSafePoint =
subMenu->insertItem("Zone Safe Point", this, SLOT(toggle_zoneSafePoint(int)));
+ m_id_instanceLocation =
+ subMenu->insertItem("Instance Location Marker", this, SLOT(toggle_instanceLocationMarker(int)));
#ifdef DEBUG
m_id_debugInfo = subMenu->insertItem("Debug Info", this, SLOT(toggle_debugInfo(int)));
#endif
@@ -985,6 +987,7 @@
setItemChecked(m_id_deityPvP, m_map->deityPvP());
setItemChecked(m_id_racePvP, m_map->racePvP());
setItemChecked(m_id_zoneSafePoint, m_map->showZoneSafePoint());
+ setItemChecked(m_id_instanceLocation, m_map->showInstanceLocationMarker());
#ifdef DEBUG
setItemChecked(m_id_debugInfo, m_map->showDebugInfo());
#endif
@@ -1209,6 +1212,11 @@
m_map->setShowZoneSafePoint(!m_map->showZoneSafePoint());
}
+void MapMenu::toggle_instanceLocationMarker(int itemId)
+{
+ m_map->setShowInstanceLocationMarker(!m_map->showInstanceLocationMarker());
+}
+
void MapMenu::select_mapOptimization(int itemId)
{
m_map->setMapOptimization((MapOptimizationMethod)itemParameter(itemId));
@@ -1504,6 +1512,9 @@
tmpPrefString = "ShowZoneSafePoint";
m_showZoneSafePoint = pSEQPrefs->getPrefBool(tmpPrefString, prefString, true);
+ tmpPrefString = "ShowInstanceLocationMarker";
+ m_showInstanceLocationMarker = pSEQPrefs->getPrefBool(tmpPrefString, prefString, false);
+
// Accelerators
QAccel *accel = new QAccel(this);
int key;
@@ -2655,6 +2666,17 @@
refreshMap ();
}
+void Map::setShowInstanceLocationMarker(bool val)
+{
+ m_showInstanceLocationMarker = val;
+
+ QString tmpPrefString = "ShowInstanceLocationMarker";
+ pSEQPrefs->setPrefBool(tmpPrefString, preferenceName(), m_showInstanceLocationMarker);
+
+ if(!m_cacheChanges)
+ refreshMap ();
+}
+
void Map::dumpInfo(QTextStream& out)
{
out << "[" << preferenceName() << "]" << endl;
@@ -3071,6 +3093,14 @@
if (m_showSpawns)
paintSpawns(m_param, tmp, drawTime);
+ if(m_showInstanceLocationMarker && m_zoneMgr->dzID())
+ {
+ const Point3D<int16_t>& instancePoint = m_zoneMgr->dzPoint();
+ m_mapIcons->paintIcon(m_param, tmp, m_mapIcons->icon(tIconTypeDynamicZoneLocation),
+ instancePoint, m_zoneMgr->dzLongName(), QPoint(m_param.calcXOffsetI(instancePoint.x()),
+ m_param.calcYOffsetI(instancePoint.y())));
+ }
+
paintSelectedSpawnSpecials(m_param, tmp, drawTime);
paintSelectedSpawnPointSpecials(m_param, tmp, drawTime);
Modified: showeq/trunk/src/map.h
===================================================================
--- showeq/trunk/src/map.h 2008-11-21 15:30:09 UTC (rev 717)
+++ showeq/trunk/src/map.h 2009-01-20 17:41:14 UTC (rev 718)
@@ -249,6 +249,7 @@
void toggle_cacheAlwaysRepaint();
void toggle_cacheChanges();
void toggle_zoneSafePoint(int itemId);
+ void toggle_instanceLocationMarker(int itemId);
void select_mapOptimization(int itemId);
void select_gridTickColor(int itemId);
void select_gridLineColor(int itemId);
@@ -307,6 +308,7 @@
int m_id_pvp;
int m_id_racePvP;
int m_id_zoneSafePoint;
+ int m_id_instanceLocation;
#ifdef DEBUG
int m_id_debugInfo;
#endif
@@ -412,7 +414,8 @@
bool deityPvP() const { return m_deityPvP; }
bool racePvP() const { return m_racePvP; }
bool showZoneSafePoint() const { return m_showZoneSafePoint; }
-
+ bool showInstanceLocationMarker() const { return m_showInstanceLocationMarker; }
+
MapLineStyle mapLineStyle() { return m_param.mapLineStyle(); }
MapOptimizationMethod mapOptimization() { return m_param.mapOptimizationMethod(); }
int zoom() const { return m_param.zoom(); }
@@ -530,6 +533,7 @@
void setShowGridTicks(bool val);
void setCacheAlwaysRepaint(bool val);
void setShowZoneSafePoint(bool val);
+ void setShowInstanceLocationMarker(bool val);
// dump debug info
void dumpInfo(QTextStream& out);
@@ -649,6 +653,7 @@
bool m_deityPvP;
bool m_racePvP;
bool m_showZoneSafePoint;
+ bool m_showInstanceLocationMarker;
};
//----------------------------------------------------------------------
Modified: showeq/trunk/src/mapicon.cpp
===================================================================
--- showeq/trunk/src/mapicon.cpp 2008-11-21 15:30:09 UTC (rev 717)
+++ showeq/trunk/src/mapicon.cpp 2009-01-20 17:41:14 UTC (rev 718)
@@ -85,6 +85,7 @@
"ZoneSafePoint",
"SpawnPlayerNoUpdate",
"SpawnNPCNoUpdate",
+ "InstanceLocation",
};
static const QString iconTypeNames[] =
@@ -125,6 +126,7 @@
"Zone Safe Point",
"Spawn Player No Update",
"Spawn NPC No Update",
+ "Instance Location",
};
//----------------------------------------------------------------------
@@ -693,8 +695,8 @@
true, false, false, true);
m_mapIcons[tIconTypeFilterFlagFiltered]
.setImage(QBrush(Dense2Pattern), QPen(gray, 0, SolidLine, cap, join),
- tIconStyleCircle, tIconSizeSmall,
- true, false, true, false);
+ tIconStyleCircle, tIconSizeSmall,
+ true, false, true, false);
m_mapIcons[tIconTypeFilterFlagTracer]
.setHighlight(QBrush(NoBrush), QPen(yellow, 1, SolidLine, cap, join),
tIconStyleCircle, tIconSizeLarge,
@@ -705,8 +707,8 @@
true, false, false, true);
m_mapIcons[tIconTypeSpawnPoint]
.setImage(QBrush(SolidPattern), QPen(darkGray, 1, SolidLine, cap, join),
- tIconStylePlus, tIconSizeRegular,
- true, true, false, false);
+ tIconStylePlus, tIconSizeRegular,
+ true, true, false, false);
m_mapIcons[tIconTypeSpawnPointSelected]
.setHighlight(QBrush(NoBrush), QPen(blue, 1, SolidLine, cap, join),
tIconStyleCircle, tIconSizeTiny,
@@ -715,17 +717,22 @@
.setLine0(true, QPen(blue));
m_mapIcons[tIconTypeZoneSafePoint]
.setImage(QBrush(), QPen(green, 1, SolidLine, cap, join),
- tIconStyleX, tIconSizeSmall,
- true, false, false, false);
+ tIconStyleX, tIconSizeSmall,
+ true, false, false, false);
m_mapIcons[tIconTypeZoneSafePoint].setShowName(true);
m_mapIcons[tIconTypeSpawnPlayerNoUpdate]
.setImage(QBrush(gray), QPen(darkGray, 1, SolidLine, cap, join),
- tIconStyleSquare, tIconSizeRegular,
- true, false, false, false);
+ tIconStyleSquare, tIconSizeRegular,
+ true, false, false, false);
m_mapIcons[tIconTypeSpawnNPCNoUpdate]
.setImage(QBrush(gray), QPen(NoPen, 1, SolidLine, cap, join),
- tIconStyleCircle, tIconSizeRegular,
- true, false, false, false);
+ tIconStyleCircle, tIconSizeRegular,
+ true, false, false, false);
+ m_mapIcons[tIconTypeDynamicZoneLocation]
+ .setImage(QBrush(magenta), QPen(magenta, 1, SolidLine, cap, join),
+ tIconStyleX, tIconSizeLarge,
+ true, false, false, false);
+ m_mapIcons[tIconTypeDynamicZoneLocation].setShowName(true);
// setup icon size maps
m_mapIconSizes[tIconSizeNone] = &m_markerNSize; // none should never be drawn
Modified: showeq/trunk/src/mapicon.h
===================================================================
--- showeq/trunk/src/mapicon.h 2008-11-21 15:30:09 UTC (rev 717)
+++ showeq/trunk/src/mapicon.h 2009-01-20 17:41:14 UTC (rev 718)
@@ -109,7 +109,8 @@
tIconTypeZoneSafePoint,
tIconTypeSpawnPlayerNoUpdate,
tIconTypeSpawnNPCNoUpdate,
- tIconTypeMax = tIconTypeSpawnNPCNoUpdate,
+ tIconTypeDynamicZoneLocation,
+ tIconTypeMax = tIconTypeDynamicZoneLocation,
};
//----------------------------------------------------------------------
Modified: showeq/trunk/src/packetlog.cpp
===================================================================
--- showeq/trunk/src/packetlog.cpp 2008-11-21 15:30:09 UTC (rev 717)
+++ showeq/trunk/src/packetlog.cpp 2009-01-20 17:41:14 UTC (rev 718)
@@ -21,7 +21,8 @@
PacketLog::PacketLog(EQPacket& packet, const QString& fname,
QObject* parent, const char* name)
: SEQLogger(fname, parent, name),
- m_packet(packet)
+ m_packet(packet),
+ m_dir(0)
{
m_timeDateFormat = "MMM dd yyyy hh:mm:ss:zzz";
}
@@ -156,6 +157,9 @@
if (!open())
return;
+ if (showeq_params->filterZoneDataLog && showeq_params->filterZoneDataLog != dir)
+ return;
+
// timestamp
m_out << QDateTime::currentDateTime().toString(m_timeDateFormat) << " ";
Modified: showeq/trunk/src/packetlog.h
===================================================================
--- showeq/trunk/src/packetlog.h 2008-11-21 15:30:09 UTC (rev 717)
+++ showeq/trunk/src/packetlog.h 2009-01-20 17:41:14 UTC (rev 718)
@@ -55,6 +55,7 @@
protected:
QString m_timeDateFormat;
EQPacket& m_packet;
+ uint8_t m_dir;
};
//----------------------------------------------------------------------
@@ -68,6 +69,8 @@
QObject* parent=0, const char* name = 0);
bool raw();
void setRaw(bool val);
+ uint8_t getDir() { return m_dir; }
+ void setDir(uint8_t direction) { m_dir = direction; }
public slots:
void rawStreamPacket(const uint8_t* data, size_t len, uint8_t dir,
Modified: showeq/trunk/src/s_everquest.h
===================================================================
--- showeq/trunk/src/s_everquest.h 2008-11-21 15:30:09 UTC (rev 717)
+++ showeq/trunk/src/s_everquest.h 2009-01-20 17:41:14 UTC (rev 718)
@@ -28,6 +28,8 @@
AddStruct(requestZoneChangeStruct);
AddStruct(ClientZoneEntryStruct);
AddStruct(newZoneStruct);
+AddStruct(dzSwitchInfo);
+AddStruct(dzInfo);
AddStruct(playerProfileStruct);
AddStruct(charProfileStruct);
AddStruct(playerAAStruct);
Modified: showeq/trunk/src/zonemgr.cpp
===================================================================
--- showeq/trunk/src/zonemgr.cpp 2008-11-21 15:30:09 UTC (rev 717)
+++ showeq/trunk/src/zonemgr.cpp 2009-01-20 17:41:14 UTC (rev 718)
@@ -56,6 +56,7 @@
m_shortZoneName = "unknown";
m_longZoneName = "unknown";
m_zoning = false;
+ m_dzID = 0;
if (showeq_params->restoreZoneState)
restoreZoneState();
@@ -273,6 +274,41 @@
sizeof(zonePointStruct) * m_zonePointCount);
}
+void ZoneMgr::dynamicZonePoints(const uint8_t *data, size_t len, uint8_t)
+{
+ const dzSwitchInfo *dz = (const dzSwitchInfo*)data;
+
+ if(len == sizeof(dzSwitchInfo))
+ {
+ m_dzPoint.setPoint(lrintf(dz->x), lrintf(dz->y), lrintf(dz->z));
+ m_dzID = dz->zoneID;
+ m_dzLongName = zoneLongNameFromID(m_dzID);
+ if(dz->type != 1 && dz->type > 2 && dz->type <= 5)
+ m_dzType = 0; // green
+ else
+ m_dzType = 1; // pink
+ }
+ else if(len == 8)
+ {
+ // we quit the expedition
+ m_dzPoint.setPoint(0, 0, 0);
+ m_dzID = 0;
+ m_dzLongName = "";
+ }
+}
+
+void ZoneMgr::dynamicZoneInfo(const uint8_t* data, size_t len, uint8_t)
+{
+ const dzInfo *dz = (const dzInfo*)data;
+
+ if(!dz->newDZ)
+ {
+ m_dzPoint.setPoint(0, 0, 0);
+ m_dzID = 0;
+ m_dzLongName = "";
+ }
+}
+
#ifndef QMAKEBUILD
#include "zonemgr.moc"
#endif
Modified: showeq/trunk/src/zonemgr.h
===================================================================
--- showeq/trunk/src/zonemgr.h 2008-11-21 15:30:09 UTC (rev 717)
+++ showeq/trunk/src/zonemgr.h 2009-01-20 17:41:14 UTC (rev 718)
@@ -29,6 +29,7 @@
struct newZoneStruct;
struct zonePointsStruct;
struct zonePointStruct;
+struct dzSwitchInfo;
class ZoneMgr : public QObject
{
@@ -46,6 +47,10 @@
const Point3D<int16_t>& safePoint() const { return m_safePoint; }
float zoneExpMultiplier() { return m_zone_exp_multiplier; }
const zonePointStruct* zonePoint(uint32_t zoneTrigger);
+ uint32_t dzID() { return m_dzID; }
+ const Point3D<int16_t>& dzPoint() const { return m_dzPoint; }
+ QString dzLongName() { return m_dzLongName; }
+ uint32_t dzType() { return m_dzType; }
public slots:
void saveZoneState(void);
@@ -57,6 +62,8 @@
void zoneChange(const uint8_t* zoneChange, size_t, uint8_t);
void zoneNew(const uint8_t* zoneNew, size_t, uint8_t);
void zonePoints(const uint8_t* zp, size_t, uint8_t);
+ void dynamicZonePoints(const uint8_t *data, size_t len, uint8_t);
+ void dynamicZoneInfo(const uint8_t *data, size_t len, uint8_t);
signals:
void zoneBegin();
@@ -75,6 +82,10 @@
float m_zone_exp_multiplier;
size_t m_zonePointCount;
zonePointStruct* m_zonePoints;
+ Point3D<int16_t> m_dzPoint;
+ uint32_t m_dzID;
+ QString m_dzLongName;
+ uint32_t m_dzType;
};
#endif // ZONEMGR
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|