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
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <cn...@us...> - 2023-03-15 18:23:57
|
Revision: 1340
http://sourceforge.net/p/seq/svn/1340
Author: cn187
Date: 2023-03-15 18:23:54 +0000 (Wed, 15 Mar 2023)
Log Message:
-----------
Add "none" placeholder when no layers are loaded
Modified Paths:
--------------
showeq/trunk/src/map.cpp
Modified: showeq/trunk/src/map.cpp
===================================================================
--- showeq/trunk/src/map.cpp 2023-03-15 18:23:47 UTC (rev 1339)
+++ showeq/trunk/src/map.cpp 2023-03-15 18:23:54 UTC (rev 1340)
@@ -5262,8 +5262,14 @@
}
}
+ int numLayers = m_map->mapMgr()->mapData().numLayers();
+
QLabel* tmpLabel = new QLabel(m_layersBox);
- tmpLabel->setText("Layers:");
+ if (numLayers == 0)
+ tmpLabel->setText("Layers: None");
+ else
+ tmpLabel->setText("Layers:");
+
layersBoxLayout->addWidget(tmpLabel);
QToolButton* tmpButton = NULL;
@@ -5271,7 +5277,6 @@
QAction* tmpAction = NULL;
- int numLayers = m_map->mapMgr()->mapData().numLayers();
for (int i = 0; i < numLayers; ++i)
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2023-03-15 18:23:49
|
Revision: 1339
http://sourceforge.net/p/seq/svn/1339
Author: cn187
Date: 2023-03-15 18:23:47 +0000 (Wed, 15 Mar 2023)
Log Message:
-----------
Add support for multi-layer maps
Add the ability to load multi-layer maps (e.g, SOE, Brewall's, Good's).
* On zoning, SEQ will automatically load the base zone map as well as maps 1-3
of the same name.
* The layer control on the map bottom control pane allows you to select
which layers you want to see/hide.
* Manual load/import of maps will now allow the selection of multiple files
* Saving maps will save all layers as their individual filenames
* The map edit menu now contains an "Edit Layer" setting, allowing you
choose which layer will be modified when doing map edits.
Modified Paths:
--------------
showeq/trunk/conf/seqdef.xml
showeq/trunk/src/map.cpp
showeq/trunk/src/map.h
showeq/trunk/src/mapcore.cpp
showeq/trunk/src/mapcore.h
Modified: showeq/trunk/conf/seqdef.xml
===================================================================
--- showeq/trunk/conf/seqdef.xml 2023-02-19 18:39:16 UTC (rev 1338)
+++ showeq/trunk/conf/seqdef.xml 2023-03-15 18:23:47 UTC (rev 1339)
@@ -604,6 +604,10 @@
<bool value="true" />
<comment>Display map frame rate control</comment>
</property>
+ <property name="ShowLayersControl" >
+ <bool value="true" />
+ <comment>Display map layer control</comment>
+ </property>
<property name="ShowFilter" >
<bool value="true" />
<comment>Display the map's runtime filter control</comment>
@@ -632,6 +636,9 @@
<int value="5" />
<comment>Map frame rate (number of map refreshes per second)</comment>
</property>
+ <property name="MapLayerMask">
+ <int value="-7"/>
+ </property>
<property name="CacheChanges" >
<bool value="true" />
<comment>property that controls repaints, true = Just at repaint ast Framerate, or false = Whenever spawn/map info changes in addition to Framerate</comment>
@@ -904,6 +911,10 @@
<bool value="true" />
<comment>Display map frame rate control</comment>
</property>
+ <property name="ShowLayersControl" >
+ <bool value="true" />
+ <comment>Display map layer control</comment>
+ </property>
<property name="ShowFilter" >
<bool value="true" />
<comment>Display the map's runtime filter control</comment>
@@ -932,6 +943,9 @@
<int value="5" />
<comment>Map frame rate (number of map refreshes per second)</comment>
</property>
+ <property name="MapLayerMask">
+ <int value="-7"/>
+ </property>
<property name="CacheChanges" >
<bool value="true" />
<comment>property that controls repaints, true = Just at repaint ast Framerate, or false = Whenever spawn/map info changes in addition to Framerate</comment>
@@ -1204,6 +1218,10 @@
<bool value="true" />
<comment>Display map frame rate control</comment>
</property>
+ <property name="ShowLayersControl" >
+ <bool value="true" />
+ <comment>Display map layer control</comment>
+ </property>
<property name="ShowFilter" >
<bool value="true" />
<comment>Display the map's runtime filter control</comment>
@@ -1232,6 +1250,9 @@
<int value="5" />
<comment>Map frame rate (number of map refreshes per second)</comment>
</property>
+ <property name="MapLayerMask">
+ <int value="-7"/>
+ </property>
<property name="CacheChanges" >
<bool value="true" />
<comment>property that controls repaints, true = Just at repaint ast Framerate, or false = Whenever spawn/map info changes in addition to Framerate</comment>
@@ -1504,6 +1525,10 @@
<bool value="true" />
<comment>Display map frame rate control</comment>
</property>
+ <property name="ShowLayersControl" >
+ <bool value="true" />
+ <comment>Display map layer control</comment>
+ </property>
<property name="ShowFilter" >
<bool value="true" />
<comment>Display the map's runtime filter control</comment>
@@ -1532,6 +1557,9 @@
<int value="5" />
<comment>Map frame rate (number of map refreshes per second)</comment>
</property>
+ <property name="MapLayerMask">
+ <int value="-7"/>
+ </property>
<property name="CacheChanges" >
<bool value="true" />
<comment>property that controls repaints, true = Just at repaint ast Framerate, or false = Whenever spawn/map info changes in addition to Framerate</comment>
@@ -1804,6 +1832,10 @@
<bool value="true" />
<comment>Display map frame rate control</comment>
</property>
+ <property name="ShowLayersControl" >
+ <bool value="true" />
+ <comment>Display map layer control</comment>
+ </property>
<property name="ShowFilter" >
<bool value="true" />
<comment>Display the map's runtime filter control</comment>
@@ -1831,6 +1863,9 @@
<int value="5" />
<comment>Map frame rate (number of map refreshes per second)</comment>
</property>
+ <property name="MapLayerMask">
+ <int value="-7"/>
+ </property>
<property name="CacheChanges" >
<bool value="true" />
<comment>property that controls repaints, true = Just at repaint ast Framerate, or false = Whenever spawn/map info changes in addition to Framerate</comment>
Modified: showeq/trunk/src/map.cpp
===================================================================
--- showeq/trunk/src/map.cpp 2023-02-19 18:39:16 UTC (rev 1338)
+++ showeq/trunk/src/map.cpp 2023-03-15 18:23:47 UTC (rev 1339)
@@ -56,6 +56,7 @@
#include <QFileDialog>
#include <QEvent>
#include <QPushButton>
+#include <QToolButton>
#include <QLayout>
#include <QShortcut>
#include <QColorDialog>
@@ -359,27 +360,33 @@
void MapMgr::loadZoneMap(const QString& shortZoneName)
{
- // first attempt to find map with .map suffix
- QFileInfo fileInfo = m_dataLocMgr->findExistingFile("maps",
- shortZoneName + ".map");
-
- // if that file doesn't exist, try a straight .txt suffix
- if (!fileInfo.exists())
- fileInfo = m_dataLocMgr->findExistingFile("maps",
- shortZoneName + ".txt");
- // if that file doesn't exist, try a _1.txt suffix
- if (!fileInfo.exists())
- fileInfo = m_dataLocMgr->findExistingFile("maps",
- shortZoneName + "_1.txt");
+ bool found = false;
+ QString extension = "";
- if (fileInfo.exists())
+ QStringList mapFiles;
+
+ // find maps
+ QFileInfo mapFileInfo = m_dataLocMgr->findExistingFile("maps",
+ shortZoneName + ".map");
+
+ QFileInfo txtFileInfo = m_dataLocMgr->findExistingFile("maps",
+ shortZoneName + ".txt");
+
+ if (mapFileInfo.exists())
{
- // load the map if it's not already loaded
- if (fileInfo.absoluteFilePath() != m_mapData.fileName())
- loadFileMap(fileInfo.absoluteFilePath());
+ found = true;
+ extension = ".map";
+ mapFiles.append(mapFileInfo.absoluteFilePath());
+
+ } else if (txtFileInfo.exists())
+ {
+ found = true;
+ extension = ".txt";
+ mapFiles.append(txtFileInfo.absoluteFilePath());
}
- else
+
+ if (!found)
{
seqInfo("No Map found for zone '%s'!", shortZoneName.toLatin1().data());
seqInfo(" Checked for all variants of '%s.map', '%s.txt', and '%s_1.txt'",
@@ -389,7 +396,22 @@
seqInfo(" in directories '%s' and '%s'!",
m_dataLocMgr->userDataDir("maps").absolutePath().toLatin1().data(),
m_dataLocMgr->pkgDataDir("maps").absolutePath().toLatin1().data());
+
+ return;
}
+
+ // add other layers
+ QFileInfo fileInfo;
+ for (int i = 1; i < 4; ++i)
+ {
+ fileInfo = m_dataLocMgr->findExistingFile("maps",
+ shortZoneName + "_" + QString::number(i) + extension);
+
+ if (fileInfo.exists())
+ mapFiles.append(fileInfo.absoluteFilePath());
+ }
+
+ loadFileMap(mapFiles);
}
void MapMgr::loadMap ()
@@ -398,22 +420,28 @@
qDebug ("loadMap()");
#endif /* DEBUGMAP */
- QString fileName = m_mapData.fileName();
+ QStringList fileNames;
+ for (int i = 0; i < m_mapData.numLayers(); ++i)
+ {
+ fileNames.append(m_mapData.mapLayer(i)->fileName());
+ }
- if (fileName.isEmpty())
- fileName = m_dataLocMgr->findExistingFile("maps", fileName).absoluteFilePath();
+ if (fileNames.isEmpty())
+ fileNames.append(m_dataLocMgr->findExistingFile("maps", "").absoluteFilePath());
// create a file dialog the defaults to the currently open map
- fileName = QFileDialog::getOpenFileName(m_dialogParent, "Load Map", fileName,
+ // it doesn't look like we can start with all the loaded files selected,
+ // so we pick the first one, which should be the base map
+ fileNames = QFileDialog::getOpenFileNames(m_dialogParent, "Load Map", fileNames.first(),
"All maps (*.map *.txt);;SEQ maps (*.map);;EQ maps (*.txt)");
- if (fileName.isEmpty ())
+ if (fileNames.isEmpty ())
return;
- seqInfo("Attempting to load map: %s", fileName.toLatin1().data());
+ fileNames.sort();
// load the map
- loadFileMap(fileName, false, true);
+ loadFileMap(fileNames, false, true);
}
void MapMgr::importMap ()
@@ -422,22 +450,26 @@
qDebug ("importMap()");
#endif /* DEBUGMAP */
- QString fileName = m_mapData.fileName();
+ QStringList fileNames;
+ for (int i = 0; i < m_mapData.numLayers(); ++i)
+ {
+ fileNames.append(m_mapData.mapLayer(i)->fileName());
+ }
- if (fileName.isEmpty())
- fileName = m_dataLocMgr->findExistingFile("maps", fileName).absoluteFilePath();
+ if (fileNames.isEmpty())
+ fileNames.append(m_dataLocMgr->findExistingFile("maps", "").absoluteFilePath());
// create a file dialog the defaults to the currently open map
- fileName = QFileDialog::getOpenFileName(m_dialogParent, "Import Map", fileName,
+ fileNames = QFileDialog::getOpenFileNames(m_dialogParent, "Import Map", fileNames.first(),
"All maps (*.map *.txt);;SEQ maps (*.map);;EQ maps (*.txt)");
- if (fileName.isEmpty ())
+ if (fileNames.isEmpty ())
return;
- seqInfo("Attempting to import map: %s", fileName.toLatin1().data());
+ fileNames.sort();
// load the map
- loadFileMap(fileName, true, true);
+ loadFileMap(fileNames, true, true);
}
@@ -447,11 +479,24 @@
qDebug ("loadFileMap()");
#endif /* DEBUGMAP */
+ if (import)
+ seqInfo("Attempting to import map: %s", fileName.toLatin1().data());
+ else
+ seqInfo("Attempting to load map: %s", fileName.toLatin1().data());
+
+
// if not a forced load, and the same map is already loaded, do nothing
- if (!force && m_mapData.mapLoaded() &&
- (m_mapData.fileName() == fileName))
- return;
+ if (!force)
+ {
+ for (int i = 0; i < m_mapData.numLayers(); ++i)
+ {
+ if (m_mapData.mapLayer(i)->mapLoaded() &&
+ m_mapData.mapLayer(i)->fileName() == fileName)
+ return;
+ }
+ }
+
// load the specified map
if (!fileName.endsWith(".txt"))
m_mapData.loadMap(fileName, import);
@@ -489,22 +534,45 @@
m_mapData.updateBounds();
// signal that the map has been loaded
- if (m_mapData.mapLoaded())
+ // note, the layers are populated in order, so the highest layer
+ // number (0-indexed) will be the one we just loaded
+ if (m_mapData.mapLayer(m_mapData.numLayers()-1)->mapLoaded())
emit mapLoaded();
} // END loadFileMap
+void MapMgr::loadFileMap (const QStringList& files, bool import, bool force)
+{
+ QStringList::const_iterator it = files.begin();
+ for (; it != files.end(); ++it)
+ {
+ // if we're loading multiple files, it doesn't sense to load and
+ // immediately clear/replace each one. So if import isn't specified,
+ // we clear the current maps, load the first one, then import the
+ // rest as layers
+ if (!import && it == files.begin())
+ loadFileMap(*it, false, force);
+ else
+ loadFileMap(*it, true, force);
+ }
+}
+
+
void MapMgr::saveMap ()
{
#ifdef DEBUGMAP
qDebug ("saveMap()");
#endif /* DEBUGMAP */
- QFileInfo fileInfo(m_mapData.fileName());
- fileInfo = m_dataLocMgr->findWriteFile("maps", fileInfo.baseName() + ".map",
+ for (int i = 0; i < m_mapData.numLayers(); ++i)
+ {
+ QFileInfo fileInfo(m_mapData.mapLayer(i)->fileName());
+
+ fileInfo = m_dataLocMgr->findWriteFile("maps", fileInfo.baseName() + ".map",
false);
- m_mapData.saveMap(fileInfo.absoluteFilePath());
+ m_mapData.saveMap(fileInfo.absoluteFilePath(), i);
+ }
}
void MapMgr::saveSOEMap ()
@@ -512,12 +580,16 @@
#ifdef DEBUGMAP
qDebug ("saveMap()");
#endif /* DEBUGMAP */
- QFileInfo fileInfo(m_mapData.fileName());
- fileInfo = m_dataLocMgr->findWriteFile("maps", fileInfo.baseName() + "_2.txt",
+ for (int i = 0; i < m_mapData.numLayers(); ++i)
+ {
+ QFileInfo fileInfo(m_mapData.mapLayer(i)->fileName());
+
+ fileInfo = m_dataLocMgr->findWriteFile("maps", fileInfo.baseName() + ".txt",
false);
- m_mapData.saveSOEMap(fileInfo.absoluteFilePath());
+ m_mapData.saveSOEMap(fileInfo.absoluteFilePath(), i);
+ }
}
void MapMgr::addItem(const Item* item)
@@ -696,6 +768,16 @@
emit mapUpdated();
}
+void MapMgr::setEditLayer(int layerNum)
+{
+ if (layerNum >= m_mapData.numLayers())
+ return;
+
+ m_mapData.setEditLayer(layerNum);
+
+ emit editLayerChanged();
+}
+
void MapMgr::savePrefs(void)
{
#if 0 // ZBTEMP: Migrate to place where ever this is set
@@ -710,8 +792,6 @@
out << "DefaultLineName: " << m_curLineName << endl;
out << "DefaultLocationColor: " << m_curLocationColor << endl;
out << "ImageLoaded: " << m_mapData.imageLoaded() << endl;
- out << "MapLoaded: " << m_mapData.mapLoaded() << endl;
- out << "MapFileName: " << m_mapData.fileName() << endl;
out << "ZoneShortName: " << m_mapData.zoneShortName() << endl;
out << "ZoneLongName: " << m_mapData.zoneLongName() << endl;
out << "boundingRect: top(" << m_mapData.boundingRect().top()
@@ -721,9 +801,16 @@
out << "size: width(" << m_mapData.size().width()
<< ") height(" << m_mapData.size().height() << ")" << endl;
out << "ZoneZEM: " << m_mapData.zoneZEM() << endl;
- out << "LLines: " << m_mapData.lLines().count() << endl;
- out << "MLines: " << m_mapData.mLines().count() << endl;
- out << "Locations: " << m_mapData.locations().count() << endl;
+ out << "numLayers: " << m_mapData.numLayers() << endl;
+ for (int i = 0; i < m_mapData.numLayers(); ++i)
+ {
+ out << "Layer " << i << ":" << endl;
+ out << "\tMapFileName: " << m_mapData.mapLayer(i)->fileName() << endl;
+ out << "\tMapLoaded: " << m_mapData.mapLayer(i)->mapLoaded() << endl;
+ out << "\tLLines: " << m_mapData.mapLayer(i)->lLines().count() << endl;
+ out << "\tMLines: " << m_mapData.mapLayer(i)->mLines().count() << endl;
+ out << "\tLocations: " << m_mapData.mapLayer(i)->locations().count() << endl;
+ }
out << "Aggros: " << m_mapData.aggros().count() << endl;
out << endl;
}
@@ -786,6 +873,28 @@
* - cn187
*/
+ QWidget* tmpWidget = new QWidget(subMenu);
+ QHBoxLayout* tmpLayout = new QHBoxLayout(tmpWidget);
+ tmpLayout->setContentsMargins(1, 1, 1, 1);
+ m_editLayerSpinBox = new QSpinBox(tmpWidget);
+ QLabel* tmpLabel = new QLabel("Edit Layer:", tmpWidget);
+ tmpLayout->addWidget(tmpLabel);
+ tmpLayout->addWidget(m_editLayerSpinBox);
+ QWidgetAction* tmpWidgetAction = new QWidgetAction(subMenu);
+ tmpWidgetAction->setDefaultWidget(tmpWidget);
+ subMenu->addAction(tmpWidgetAction);
+
+ m_editLayerSpinBox->setMinimum(0);
+ m_editLayerSpinBox->setSingleStep(1);
+ m_editLayerSpinBox->setMaximum(m_map->mapMgr()->mapData().numLayers()-1);
+ m_editLayerSpinBox->setValue(m_map->mapMgr()->mapData().editLayer());
+
+ connect(m_editLayerSpinBox, SIGNAL(valueChanged(int)),
+ m_map->mapMgr(), SLOT(setEditLayer(int)));
+
+ connect(m_map->mapMgr(), SIGNAL(mapLoaded(void)), this, SLOT(editLayerChanged(void)));
+ connect(m_map->mapMgr(), SIGNAL(editLayerChanged(void)), this, SLOT(editLayerChanged(void)));
+
key = pSEQPrefs->getPrefKey("AddLocationKey", preferenceName, "Ctrl+O");
m_action_addLocation = subMenu->addAction(
QString("Add Location...\t") + key.toString(), m_map, SLOT(addLocation()));
@@ -1269,6 +1378,15 @@
m_action_FOVScaledClassic->setChecked(fovMode == tFOVScaledClassic);
m_action_FOVClassic->setChecked(fovMode == tFOVClassic);
}
+
+void MapMenu::editLayerChanged(void)
+{
+ m_editLayerSpinBox->setMinimum(0);
+ m_editLayerSpinBox->setSingleStep(1);
+ m_editLayerSpinBox->setMaximum(m_map->mapMgr()->mapData().numLayers()-1);
+ m_editLayerSpinBox->setValue(m_map->mapMgr()->mapData().editLayer());
+}
+
void MapMenu::select_follow(QAction* item)
{
int mode = item->data().value<int>();
@@ -1740,6 +1858,12 @@
tmpPrefString = "ShowInstanceLocationMarker";
m_showInstanceLocationMarker = pSEQPrefs->getPrefBool(tmpPrefString, prefString, false);
+ tmpPrefString = "MapLayerMask";
+ uint32_t mask = pSEQPrefs->getPrefInt(tmpPrefString, prefString, 0xffffffff);
+ for (int i = 0; i < 32; ++i)
+ m_param.setLayerVisibility(i, mask & (1 << i));
+
+
// Accelerators
QShortcut *tmpShortcut = nullptr;
QKeySequence key;
@@ -2904,6 +3028,25 @@
refreshMap ();
}
+void Map::toggleMapLayerVisibility(QAction* layer)
+{
+ int layerNum = layer->data().value<int>();
+ int layerChecked = layer->isChecked();
+
+ m_param.setLayerVisibility(layerNum, layerChecked);
+
+ QString tmpPrefString = "MapLayerMask";
+ uint32_t mask = pSEQPrefs->getPrefInt(tmpPrefString, preferenceName(), 0xffffffff);
+ if (layerChecked)
+ mask |= (1 << layerNum);
+ else
+ mask &= ~(1 << layerNum);
+ pSEQPrefs->setPrefInt(tmpPrefString, preferenceName(), mask);
+
+ if(!m_cacheChanges)
+ refreshMap();
+}
+
void Map::dumpInfo(QTextStream& out)
{
out << "[" << preferenceName() << "]" << endl;
@@ -4785,6 +4928,23 @@
#endif
topControlBoxLayout->addWidget(m_filterBox);
+ // setup Layers control
+ m_layersBox = new QWidget(m_bottomControlBox);
+ m_layersBox->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ QHBoxLayout* layersBoxLayout = new QHBoxLayout(m_layersBox);
+ layersBoxLayout->setSpacing(1);
+ layersBoxLayout->setMargin(0);
+
+ loadLayerButtons();
+
+ tmpPrefString = "ShowLayersControl";
+ if (!pSEQPrefs->getPrefBool(tmpPrefString, prefString, 1))
+ m_layersBox->hide();
+
+ bottomControlBoxLayout->addWidget(m_layersBox);
+
+ connect(mapMgr, SIGNAL(mapLoaded()), this, SLOT(mapLoaded()));
+
// setup Frame Rate control
m_frameRateBox = new QWidget(m_bottomControlBox);
m_frameRateBox->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
@@ -4959,6 +5119,10 @@
subMenu = new QMenu("Bottom Controls");
+ m_action_layers = subMenu->addAction("Show Layer Controls", this,
+ SLOT(toggle_layers()));
+ m_action_layers->setCheckable(true);
+
m_action_frameRate = subMenu->addAction("Show Frame Rate", this,
SLOT(toggle_frameRate()));
m_action_frameRate->setCheckable(true);
@@ -5077,6 +5241,74 @@
m_map->savePrefs();
}
+void MapFrame::mapLoaded()
+{
+ loadLayerButtons();
+}
+
+
+void MapFrame::loadLayerButtons()
+{
+
+ //delete existing buttons
+ QLayout* layersBoxLayout = m_layersBox->layout();
+ QLayoutItem* item;
+ while ((item = layersBoxLayout->takeAt(0)))
+ {
+ if (item)
+ {
+ delete item->widget();
+ delete item;
+ }
+ }
+
+ QLabel* tmpLabel = new QLabel(m_layersBox);
+ tmpLabel->setText("Layers:");
+ layersBoxLayout->addWidget(tmpLabel);
+
+ QToolButton* tmpButton = NULL;
+ int w = tmpLabel->minimumSizeHint().width();
+
+ QAction* tmpAction = NULL;
+
+ int numLayers = m_map->mapMgr()->mapData().numLayers();
+
+ for (int i = 0; i < numLayers; ++i)
+ {
+ QString label;
+ if (i == 0)
+ label = "Base";
+ else
+ label = QString::number(i);
+
+ tmpAction = new QAction(tmpButton);
+ tmpAction->setText(label);
+ tmpAction->setCheckable(true);
+ tmpAction->setData(i);
+ tmpAction->setChecked(m_map->isLayerVisible(i));
+
+ tmpButton = new QToolButton();
+ tmpButton->setDefaultAction(tmpAction);
+ tmpButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
+ tmpButton->setMinimumWidth(fontMetrics().width(label));
+
+ layersBoxLayout->addWidget(tmpButton);
+ w += fontMetrics().width(label);
+
+ connect(tmpButton, SIGNAL(triggered(QAction*)),
+ m_map, SLOT(toggleMapLayerVisibility(QAction*)));
+ }
+
+ //minimum width should be the sum of all the minimum widths of the components
+ //minimum height should be the minimum height of the tallest component
+ m_layersBox->setMinimumSize(tmpLabel->minimumSizeHint().width() + w,
+ qMax(tmpLabel->minimumSizeHint().height(),
+ (tmpButton) ? tmpButton->minimumSizeHint().height():0));
+
+
+
+}
+
void MapFrame::dumpInfo(QTextStream& out)
{
// first dump information about the map frame
@@ -5089,6 +5321,7 @@
out << "ShowFilter: " << m_filterBox->isVisible() << endl;
out << "ShowControlBox: " << m_bottomControlBox->isVisible() << endl;
out << "ShowFrameRate: " << m_frameRateBox->isVisible() << endl;
+ out << "ShowLayersControl: " << m_layersBox->isVisible() << endl;
out << "ShowPanControls: " << m_panBox->isVisible() << endl;
out << "ShowDepthFilterControls: " << m_depthControlBox->isVisible() << endl;
out << "CurrentFilter: '" << m_lastFilter << "'" << endl;
@@ -5116,6 +5349,7 @@
m_action_bottomControl->setChecked(m_bottomControlBox->isVisible());
if (m_bottomControlBox->isVisible())
{
+ m_action_layers->setChecked(m_layersBox->isVisible());
m_action_frameRate->setChecked(m_frameRateBox->isVisible());
m_action_pan->setChecked(m_panBox->isVisible());
m_action_depthControlRoom->setChecked(m_depthControlBox->isVisible());
@@ -5246,6 +5480,21 @@
}
}
+void MapFrame::toggle_layers()
+{
+ if (m_layersBox->isVisible())
+ m_layersBox->hide();
+ else
+ m_layersBox->show();
+
+ QString tmpPrefString = "SaveControls";
+ if (pSEQPrefs->getPrefBool(tmpPrefString, preferenceName(), true))
+ {
+ tmpPrefString = "ShowLayersControl";
+ pSEQPrefs->setPrefBool(tmpPrefString, preferenceName(), m_layersBox->isVisible());
+ }
+}
+
void MapFrame::toggle_pan()
{
if (m_panBox->isVisible())
Modified: showeq/trunk/src/map.h
===================================================================
--- showeq/trunk/src/map.h 2023-02-19 18:39:16 UTC (rev 1338)
+++ showeq/trunk/src/map.h 2023-03-15 18:23:47 UTC (rev 1339)
@@ -173,6 +173,8 @@
void importMap(void);
void loadFileMap(const QString& fileName,
bool import = false, bool force = false);
+ void loadFileMap(const QStringList& files,
+ bool import = false, bool force = false);
void saveMap(void);
void saveSOEMap(void);
@@ -196,6 +198,8 @@
void scaleDownZ(int16_t);
void scaleUpZ(int16_t);
+ void setEditLayer(int layerNum);
+
// Preference handling
void savePrefs(void);
@@ -206,6 +210,7 @@
void mapLoaded(void);
void mapUnloaded(void);
void mapUpdated(void);
+ void editLayerChanged(void);
private:
const DataLocationMgr* m_dataLocMgr;
@@ -235,6 +240,8 @@
void init_Menu(void);
void init_fovMenu(void);
+ void editLayerChanged(void);
+
void select_follow(QAction* item);
void select_mapLine(QAction* item);
@@ -286,6 +293,7 @@
QSpinBox* m_fovSpinBox;
QSpinBox* m_drawSizeSpinBox;
QSpinBox* m_zoomDefaultSpinBox;
+ QSpinBox* m_editLayerSpinBox;
QAction* m_action_followMenu_Player;
QAction* m_action_followMenu_Spawn;
QAction* m_action_followMenu_None;
@@ -451,7 +459,9 @@
bool showGridLines() const { return m_param.showGridLines(); }
bool showGridTicks() const { return m_param.showGridTicks(); }
bool cacheAlwaysRepaint() const { return m_mapCache.alwaysRepaint(); }
-
+
+ bool isLayerVisible(uint8_t layerNum) const { return m_param.isLayerVisible(layerNum); }
+
public slots:
void savePrefs(void);
void saveMapImage(void);
@@ -468,6 +478,8 @@
void mapUnloaded(void);
void mapUpdated(void);
+ void toggleMapLayerVisibility(QAction* layer);
+
// map editing
void addLocation();
void startLine();
@@ -708,6 +720,8 @@
Map* map() { return m_map; }
const QString& mapPreferenceName() { return m_mapPreferenceName; }
+ void loadLayerButtons(void);
+
public slots:
void regexpok(int ok);
void setregexp(const QString&);
@@ -716,6 +730,7 @@
void setPlayer(int16_t x, int16_t y, int16_t z,
int16_t Dx, int16_t Dy, int16_t Dz, int32_t degrees);
virtual void savePrefs(void);
+ void mapLoaded(void);
// dump debug info
void dumpInfo(QTextStream& out);
@@ -730,6 +745,7 @@
void toggle_mouseLocation();
void toggle_filter();
void toggle_frameRate();
+ void toggle_layers();
void toggle_pan();
void toggle_depthControls();
void set_font();
@@ -758,6 +774,7 @@
MapFilterLineEdit* m_filter;
QWidget* m_bottomControlBox;
+ QWidget* m_layersBox;
QWidget* m_frameRateBox;
QSpinBox* m_frameRate;
QWidget* m_panBox;
@@ -776,6 +793,7 @@
QAction* m_action_filter;
QAction* m_action_topControl_Options;
QAction* m_action_frameRate;
+ QAction* m_action_layers;
QAction* m_action_pan;
QAction* m_action_depthControlRoom;
QAction* m_action_bottomControl_Options;
Modified: showeq/trunk/src/mapcore.cpp
===================================================================
--- showeq/trunk/src/mapcore.cpp 2023-02-19 18:39:16 UTC (rev 1338)
+++ showeq/trunk/src/mapcore.cpp 2023-03-15 18:23:47 UTC (rev 1339)
@@ -291,6 +291,20 @@
m_playerFloorRoom = m_curPlayer.z() - m_floorRoom;
}
+bool MapParameters::isLayerVisible(uint8_t layerNum) const
+{
+ return m_layerVisibility & (1 << layerNum);
+}
+
+void MapParameters::setLayerVisibility(uint8_t layerNum, bool isVisible)
+{
+ if (isVisible)
+ m_layerVisibility |= (1 << layerNum);
+ else
+ m_layerVisibility &= ~(1 << layerNum);
+}
+
+
//----------------------------------------------------------------------
// MapCommon
MapCommon::~MapCommon()
@@ -426,17 +440,24 @@
{
}
-
//----------------------------------------------------------------------
-// MapData
-MapData::MapData()
+// MapLayer
+MapLayer::MapLayer()
{
- // clear the structure
clear();
}
-MapData::~MapData()
+MapLayer::~MapLayer()
{
+ clear();
+}
+
+void MapLayer::clear()
+{
+
+ m_mapLoaded = false;
+ m_fileName = QString();
+
qDeleteAll(m_lLines);
m_lLines.clear();
@@ -445,7 +466,23 @@
qDeleteAll(m_locations);
m_locations.clear();
+}
+
+//----------------------------------------------------------------------
+// MapData
+MapData::MapData()
+{
+ // clear the structure
+ clear();
+}
+
+MapData::~MapData()
+{
+
+ qDeleteAll(m_mapLayers);
+ m_mapLayers.clear();
+
qDeleteAll(m_aggros);
m_aggros.clear();
}
@@ -452,7 +489,6 @@
void MapData::clear()
{
- m_fileName = "";
m_zoneLongName = "";
m_zoneShortName = "";
m_minX = -50;
@@ -461,26 +497,29 @@
m_maxY = 50;
updateBounds();
- qDeleteAll(m_lLines);
- m_lLines.clear();
+ qDeleteAll(m_mapLayers);
+ m_mapLayers.clear();
- qDeleteAll(m_mLines);
- m_mLines.clear();
-
- qDeleteAll(m_locations);
- m_locations.clear();
-
qDeleteAll(m_aggros);
m_aggros.clear();
- m_mapLoaded = false;
m_imageLoaded = false;
m_editLineM = NULL;
m_editLocation = NULL;
m_zoneZEM = 75;
+
+ m_editLayer = 0;
}
+MapLayer* MapData::mapLayer(uint8_t layerNum)
+{
+ if (layerNum < m_mapLayers.count())
+ return m_mapLayers[layerNum];
+
+ return NULL;
+}
+
void MapData::loadMap(const QString& fileName, bool import)
{
int16_t mx, my, mz;
@@ -495,10 +534,8 @@
uint32_t specifiedLinePoints;
MapLineL* currentLineL = NULL;
MapLineM* currentLineM = NULL;
+ MapLayer* layer = NULL;
- // set the map filename
- setFileName(fileName);
-
// clear any existing map data (if not importing)
if (!import)
clear();
@@ -519,8 +556,10 @@
return;
}
- // note the file name
- m_fileName = filename;
+ layer = new MapLayer();
+
+ // note the file name
+ layer->setFileName(fileName);
// allocate memory in a QByteArray to hold the entire file contents
QByteArray textData(mapFile.size() + 1, '\0');
@@ -686,7 +725,7 @@
quickCheckPos(bounds.right(), bounds.bottom());
// add it to the list of L lines
- m_mLines.append(currentLineM);
+ layer->mLines().append(currentLineM);
}
break;
@@ -774,7 +813,7 @@
quickCheckPos(bounds.right(), bounds.bottom());
// add it to the list of L lines
- m_lLines.append(currentLineL);
+ layer->lLines().append(currentLineL);
}
break;
@@ -802,15 +841,15 @@
mz = (*fit++).toShort();
// add the appropriate style Location depending on if the global height is set
- m_locations.append(new MapLocation(name, color, mx, my, mz));
+ layer->locations().append(new MapLocation(name, color, mx, my, mz));
}
// add the appropriate style Location depending on if the global
// height has been set
if (globHeightSet)
- m_locations.append(new MapLocation(name, color, mx, my, globHeight));
+ layer->locations().append(new MapLocation(name, color, mx, my, globHeight));
else
- m_locations.append(new MapLocation(name, color, mx, my));
+ layer->locations().append(new MapLocation(name, color, mx, my));
// adjust map boundaries
quickCheckPos(mx, my);
@@ -908,8 +947,9 @@
// calculate the bounding rect
updateBounds();
- m_mapLoaded = true;
-
+ m_mapLayers.append(layer);
+ layer->setMapLoaded(true);
+
m_imageLoaded = false;
QString imageFileName = filename;
imageFileName.truncate(imageFileName.lastIndexOf('.'));
@@ -936,13 +976,15 @@
QString name;
MapLineM* currentLineM = 0;
size_t count;
+ MapLayer* layer = NULL;
// if the same map is already loaded, don't reload it.
- if (m_mapLoaded && (m_fileName.toLower() == fileName.toLower()))
- return;
+ for (int i = 0; i < m_mapLayers.count(); ++i)
+ {
+ if (m_mapLayers[i]->mapLoaded() && m_mapLayers[i]->fileName().toLower() == fileName.toLower())
+ return;
+ }
- // set the map filename
- setFileName(fileName);
// clear any existing map data if not importing
if (!import)
@@ -963,8 +1005,10 @@
return;
}
+ layer = new MapLayer();
+
// note the file name
- m_fileName = filename;
+ layer->setFileName(fileName);
// allocate memory in a QByteArray to hold the entire file contents
QByteArray textData(mapFile.size() + 1, '\0');
@@ -992,7 +1036,7 @@
// use the file base name as the zone long/short name, it isn't perfect,
// but neither is this file format
- QFileInfo fileInfo(m_fileName);
+ QFileInfo fileInfo(fileName);
QRegExp reStripTrailer("_[1-3]");
m_zoneLongName = fileInfo.baseName().remove(reStripTrailer);
@@ -1072,7 +1116,7 @@
currentLineM->setPoint(checkPoint = numPoints++, x1, y1, z1);
// add it to the list of M lines
- m_mLines.append(currentLineM);
+ layer->mLines().append(currentLineM);
}
else
{
@@ -1124,7 +1168,7 @@
name.replace("_", " ");
// add it to the list of locations
- m_locations.append(new MapLocation(name, QColor(r, g, b),
+ layer->locations().append(new MapLocation(name, QColor(r, g, b),
x1, y1, z1));
// adjust map boundaries
@@ -1138,8 +1182,9 @@
// calculate the bounding rect
updateBounds();
- m_mapLoaded = true;
-
+ m_mapLayers.append(layer);
+ layer->setMapLoaded(true);
+
m_imageLoaded = false;
QString imageFileName = filename;
imageFileName.truncate(imageFileName.lastIndexOf('.'));
@@ -1154,7 +1199,7 @@
seqInfo("Loaded SOE map: '%s'", filename);
}
-void MapData::saveMap(const QString& fileName) const
+void MapData::saveMap(const QString& fileName, const uint8_t layerNum) const
{
#ifdef DEBUG
qDebug ("saveMap()");
@@ -1162,15 +1207,9 @@
FILE * fh;
uint32_t i;
- const char* filename;
- if (!fileName.isEmpty())
- filename = fileName.toLatin1().data();
- else
- filename = m_fileName.toLatin1().data();
-
- if ((fh = fopen(filename, "w")) == NULL)
+ if ((fh = fopen(fileName.toLatin1().data(), "w")) == NULL)
{
- seqWarn("Error saving map '%s'!", filename);
+ seqWarn("Error saving map '%s'!", fileName.toLatin1().data());
return;
}
@@ -1186,10 +1225,9 @@
bool heightSet = false;
int16_t lastHeightSet = 0;
MapLineL* currentLineL;
- QList<MapLineL*>::const_iterator mlit = m_lLines.begin();
- for (mlit = m_lLines.begin();
- mlit != m_lLines.end() && *mlit != NULL;
- ++mlit)
+ QList<MapLineL*>::const_iterator mlit = m_mapLayers[layerNum]->lLines().begin();
+ for (mlit = m_mapLayers[layerNum]->lLines().begin();
+ mlit != m_mapLayers[layerNum]->lLines().end(); ++mlit)
{
currentLineL = *mlit;
// was the global height set?
@@ -1227,10 +1265,9 @@
// write out the M (3D) lines
MapLineM* currentLineM;
- QList<MapLineM*>::const_iterator mmit = m_mLines.begin();
- for (mmit = m_mLines.begin();
- mmit != m_mLines.end() && *mmit != NULL;
- ++mmit)
+ QList<MapLineM*>::const_iterator mmit = m_mapLayers[layerNum]->mLines().begin();
+ for (mmit = m_mapLayers[layerNum]->mLines().begin();
+ mmit != m_mapLayers[layerNum]->mLines().end(); ++mmit)
{
currentLineM = *mmit;
// write out the start of the line info
@@ -1252,8 +1289,8 @@
}
// write out location information
- QList<MapLocation*>::const_iterator lit = m_locations.begin();
- for(; lit != m_locations.end() && *lit != NULL; ++lit)
+ QList<MapLocation*>::const_iterator lit = m_mapLayers[layerNum]->locations().begin();
+ for(; lit != m_mapLayers[layerNum]->locations().end(); ++lit)
{
MapLocation* currentLoc = *lit;
@@ -1283,16 +1320,18 @@
}
#ifdef DEBUGMAP
- seqDebug("saveMap() - map '%s' saved with %d L lines, %d M lines, %d locations", filename,
- m_lLines.count(), m_mLines.count(), m_locations.count());
+ seqDebug("saveMap() - map '%s' saved with %d L lines, %d M lines, %d locations",
+ fileName.toLatin1().data(),
+ m_mapLayers[layerNum].m_lLines().count(), m_mapLayers[layerNum].m_mLines().count(),
+ m_mapLayers[layerNum].m_locations().count());
#endif
fclose (fh);
- seqInfo("Saved map: '%s'", filename);
+ seqInfo("Saved map: '%s'", fileName.toLatin1().data());
}
-void MapData::saveSOEMap(const QString& fileName) const
+void MapData::saveSOEMap(const QString& fileName, const uint8_t layerNum) const
{
#ifdef DEBUG
qDebug ("saveMap()");
@@ -1300,15 +1339,9 @@
FILE * fh;
uint i;
- const char* filename;
- if (!fileName.isEmpty())
- filename = fileName.toLatin1().data();
- else
- filename = m_fileName.toLatin1().data();
-
- if ((fh = fopen(filename, "w")) == NULL)
+ if ((fh = fopen(fileName.toLatin1().data(), "w")) == NULL)
{
- seqWarn("Error saving map '%s'!", filename);
+ seqWarn("Error saving map '%s'!", fileName.toLatin1().data());
return;
}
@@ -1317,8 +1350,8 @@
float z1;
QString name;
MapLineL* currentLineL;
- QList<MapLineL*>::const_iterator mlit = m_lLines.begin();
- for (; mlit != m_lLines.end() && *mlit != NULL; ++mlit)
+ QList<MapLineL*>::const_iterator mlit = m_mapLayers[layerNum]->lLines().begin();
+ for (; mlit != m_mapLayers[layerNum]->lLines().end(); ++mlit)
{
currentLineL = *mlit;
z1 = float(currentLineL->z());
@@ -1348,10 +1381,10 @@
fprintf (fh, "\n");
}
- // write out the M (3D) lines
+ // write out the M (3D) lines)
MapLineM* currentLineM;
- QList<MapLineM*>::const_iterator mmit = m_mLines.begin();
- for (; mmit != m_mLines.end() && *mmit != NULL; ++mmit)
+ QList<MapLineM*>::const_iterator mmit = m_mapLayers[layerNum]->mLines().begin();
+ for (; mmit != m_mapLayers[layerNum]->mLines().end(); ++mmit)
{
currentLineM = *mmit;
const QColor& color = currentLineM->color();
@@ -1377,9 +1410,9 @@
}
// write out location information
- QList<MapLocation*>::const_iterator lit = m_locations.begin();
+ QList<MapLocation*>::const_iterator lit = m_mapLayers[layerNum]->locations().begin();
MapLocation* currentLoc;
- for (; lit != m_locations.end() && *lit != NULL; ++lit)
+ for (; lit != m_mapLayers[layerNum]->locations().end(); ++lit)
{
currentLoc = *lit;
const QColor& color = currentLoc->color();
@@ -1395,13 +1428,15 @@
name.toLatin1().data());
}
#ifdef DEBUGMAP
- seqDebug("saveMap() - map '%s' saved with %d L lines, %d M lines, %d locations", filename,
- m_lLines.count(), m_mLines.count(), m_locations.count());
+ seqDebug("saveMap() - map '%s' saved with %d L lines, %d M lines, %d locations",
+ fileName.toLatin1().data(),
+ m_mapLayers[layerNum]->m_lLines().count(), m_mapLayers[layerNum]->m_mLines().count(),
+ m_mapLayers[layerNum]->m_locations().count());
#endif
fclose (fh);
- seqInfo("Saved SOE map: '%s'", filename);
+ seqInfo("Saved SOE map: '%s'", fileName.toLatin1().data());
}
bool MapData::isAggro(const QString& name, uint16_t* range) const
@@ -1428,11 +1463,13 @@
const QString& color,
const QPoint& point)
{
+ if (m_editLayer >= m_mapLayers.count())
+ return;
// create the new location
m_editLocation = new MapLocation(name, color, point);
// add it to the list of locations
- m_locations.append(m_editLocation);
+ m_mapLayers[m_editLayer]->locations().append(m_editLocation);
}
void MapData::setLocationName(const QString& name)
@@ -1459,6 +1496,10 @@
const QString& color,
const MapPoint& point)
{
+
+ if (m_editLayer >= m_mapLayers.count())
+ return;
+
// create the new line, with just the first point
m_editLineM = new MapLineM(name, color, point);
@@ -1466,7 +1507,7 @@
m_editLineM->calcBounds();
// add line to the line list
- m_mLines.append(m_editLineM);
+ m_mapLayers[m_editLayer]->mLines().append(m_editLineM);
}
void MapData::addLinePoint(const MapPoint& point)
@@ -1493,6 +1534,9 @@
if (m_editLineM == NULL)
return;
+ if (m_editLayer >= m_mapLayers.count())
+ return;
+
// remove the last entry from the line
m_editLineM->resize(m_editLineM->size() - 1);
@@ -1500,7 +1544,7 @@
if (m_editLineM->size() == 0)
{
// remove the line
- delete m_mLines.takeAt(m_mLines.indexOf(m_editLineM));
+ delete m_mapLayers[m_editLayer]->mLines().takeAt(m_mapLayers[m_editLayer]->mLines().indexOf(m_editLineM));
// clear the currently edited line entry
m_editLineM = NULL;
@@ -1534,10 +1578,14 @@
void MapData::scaleDownZ(int16_t factor)
{
+
+ if (m_editLayer >= m_mapLayers.count())
+ return;
+
// first scale down the L lines
MapLineL* currentLineL;
- QList<MapLineL*>::const_iterator mlit = m_lLines.begin();
- for (; mlit != m_lLines.end() && *mlit != NULL; ++mlit)
+ QList<MapLineL*>::const_iterator mlit = m_mapLayers[m_editLayer]->lLines().begin();
+ for (; mlit != m_mapLayers[m_editLayer]->lLines().end(); ++mlit)
{
currentLineL = *mlit;
currentLineL->setZPos(currentLineL->z() / factor);
@@ -1548,8 +1596,8 @@
MapPoint* mData;
size_t numPoints;
size_t i;
- QList<MapLineM*>::const_iterator mmit = m_mLines.begin();
- for (; mmit != m_mLines.end() && *mmit != NULL; ++mmit)
+ QList<MapLineM*>::const_iterator mmit = m_mapLayers[m_editLayer]->mLines().begin();
+ for (; mmit != m_mapLayers[m_editLayer]->mLines().end(); ++mmit)
{
currentLineM = *mmit;
// get the number of points in the line
@@ -1565,10 +1613,14 @@
void MapData::scaleUpZ(int16_t factor)
{
+
+ if (m_editLayer >= m_mapLayers.count())
+ return;
+
// first scale down the L lines
MapLineL* currentLineL;
- QList<MapLineL*>::const_iterator mlit = m_lLines.begin();
- for (; mlit != m_lLines.end() && *mlit != NULL; ++mlit)
+ QList<MapLineL*>::const_iterator mlit = m_mapLayers[m_editLayer]->lLines().begin();
+ for (; mlit != m_mapLayers[m_editLayer]->lLines().end(); ++mlit)
{
currentLineL = *mlit;
currentLineL->setZPos(currentLineL->z() * factor);
@@ -1579,8 +1631,8 @@
MapPoint* mData;
size_t numPoints;
size_t i;
- QList<MapLineM*>::const_iterator mmit = m_mLines.begin();
- for (; mmit != m_mLines.end() && *mmit != NULL; ++mmit)
+ QList<MapLineM*>::const_iterator mmit = m_mapLayers[m_editLayer]->mLines().begin();
+ for (; mmit != m_mapLayers[m_editLayer]->mLines().end(); ++mmit)
{
currentLineM = *mmit;
// get the number of points in the line
@@ -1717,103 +1769,111 @@
QPoint* lData;
MapPoint* mData;
- // first paint the L lines
- QList<MapLineL*>::const_iterator mlit = m_lLines.begin();
- for (; mlit != m_lLines.end() && *mlit != NULL; ++mlit)
+
+ for (int i = 0; i < m_mapLayers.count(); ++i)
{
- currentLineL = *mlit;
- // if line is outside the currently visible region, skip it.
- if (!currentLineL->boundingRect().intersects(screenBounds))
- continue;
+ MapLayer* layer = m_mapLayers[i];
+ if (!param.isLayerVisible(i))
+ continue;
- // get the number of points in the line
- numPoints = currentLineL->size();
+ // first paint the L lines
+ QList<MapLineL*>::const_iterator mlit = layer->lLines().begin();
+ for (; mlit != layer->lLines().end(); ++mlit)
+ {
+ currentLineL = *mlit;
+ // if line is outside the currently visible region, skip it.
+ if (!currentLineL->boundingRect().intersects(screenBounds))
+ continue;
- // get the underlying array
- lData = currentLineL->data();
+ // get the number of points in the line
+ numPoints = currentLineL->size();
- // set pen color
-#ifdef DEBUGMAP
- seqDebug("lineColor = '%s'", (char *) currentLineL->color());
-#endif
- p.setPen(currentLineL->color());
+ // get the underlying array
+ lData = currentLineL->data();
- cur2DX_1 = lData[0].x();
- cur2DY_1 = lData[0].y();
+ // set pen color
+ #ifdef DEBUGMAP
+ seqDebug("lineColor = '%s'", (char *) currentLineL->color());
+ #endif
+ p.setPen(currentLineL->color());
- // see if the starting position is in bounds
- lastInBounds = inRect(screenBounds, cur2DX_1, cur2DY_1);
+ cur2DX_1 = lData[0].x();
+ cur2DY_1 = lData[0].y();
- // iterate over all the points in the line
- for (uint32_t i = 1; i < numPoints; i++)
- {
- cur2DX_2 = lData[i].x();
- cur2DY_2 = lData[i].y();
+ // see if the starting position is in bounds
+ lastInBounds = inRect(screenBounds, cur2DX_1, cur2DY_1);
- // determine if the current position is in bounds
- curInBounds = inRect(screenBounds, cur2DX_2, cur2DY_2);
+ // iterate over all the points in the line
+ for (uint32_t i = 1; i < numPoints; i++)
+ {
+ cur2DX_2 = lData[i].x();
+ cur2DY_2 = lData[i].y();
- // draw the line segment if either end is in bounds
- if (lastInBounds || curInBounds)
- p.drawLine(param.calcXOffsetI(cur2DX_1),
- param.calcYOffsetI(cur2DY_1),
- param.calcXOffsetI(cur2DX_2),
- param.calcYOffsetI(cur2DY_2));
+ // determine if the current position is in bounds
+ curInBounds = inRect(screenBounds, cur2DX_2, cur2DY_2);
- // current becomes the last
- lastInBounds = curInBounds;
- cur2DX_1 = cur2DX_2;
- cur2DY_1 = cur2DY_2;
+ // draw the line segment if either end is in bounds
+ if (lastInBounds || curInBounds)
+ p.drawLine(param.calcXOffsetI(cur2DX_1),
+ param.calcYOffsetI(cur2DY_1),
+ param.calcXOffsetI(cur2DX_2),
+ param.calcYOffsetI(cur2DY_2));
+
+ // current becomes the last
+ lastInBounds = curInBounds;
+ cur2DX_1 = cur2DX_2;
+ cur2DY_1 = cur2DY_2;
+ }
}
- }
- // then paint the M lines
- QList<MapLineM*>::const_iterator mmit = m_mLines.begin();
- for (; mmit != m_mLines.end() && *mmit != NULL; ++mmit)
- {
- currentLineM = *mmit;
- // if line is outside the currently visible region, skip it.
- if (!currentLineM->boundingRect().intersects(screenBounds))
- continue;
+ // then paint the M lines
+ QList<MapLineM*>::const_iterator mmit = layer->mLines().begin();
+ for (; mmit != layer->mLines().end(); ++mmit)
+ {
+ currentLineM = *mmit;
+ // if line is outside the currently visible region, skip it.
+ if (!currentLineM->boundingRect().intersects(screenBounds))
+ continue;
- // get the number of points in the line
- numPoints = currentLineM->size();
+ // get the number of points in the line
+ numPoints = currentLineM->size();
- // get the underlying array
- mData = currentLineM->data();
+ // get the underlying array
+ mData = currentLineM->data();
- // set pen color
-#ifdef DEBUGMAP
- seqDebug("lineColor = '%s'", (char *) currentLineM->color());
-#endif
- p.setPen(currentLineM->color());
+ // set pen color
+ #ifdef DEBUGMAP
+ seqDebug("lineColor = '%s'", (char *) currentLineM->color());
+ #endif
+ p.setPen(currentLineM->color());
- curX_1 = mData[0].x();
- curY_1 = mData[0].y();
+ curX_1 = mData[0].x();
+ curY_1 = mData[0].y();
- // see if the starting position is in bounds
- lastInBounds = inRect(screenBounds, curX_1, curY_1);
+ // see if the starting position is in bounds
+ lastInBounds = inRect(screenBounds, curX_1, curY_1);
- // iterate over all the points in the line
- for (uint32_t i = 1; i < numPoints; i++)
- {
- curX_2 = mData[i].x();
- curY_2 = mData[i].y();
+ // iterate over all the points in the line
+ for (uint32_t i = 1; i < numPoints; i++)
+ {
+ curX_2 = mData[i].x();
+ curY_2 = mData[i].y();
- // determine if the current position is in bounds
- curInBounds = inRect(screenBounds, curX_2, curY_2);
+ // determine if the current position is in bounds
+ curInBounds = inRect(screenBounds, curX_2, curY_2);
- // draw the line segment if either end is in bounds
- if (lastInBounds || curInBounds)
- p.drawLine(param.calcXOffsetI(curX_1),
- param.calcYOffsetI(curY_1),
- param.calcXOffsetI(curX_2),
- param.calcYOffsetI(curY_2));
+ // draw the line segment if either end is in bounds
+ if (lastInBounds || curInBounds)
+ p.drawLine(param.calcXOffsetI(curX_1),
+ param.calcYOffsetI(curY_1),
+ param.calcXOffsetI(curX_2),
+ param.calcYOffsetI(curY_2));
- // current becomes the last
- lastInBounds = curInBounds;
- curX_1 = curX_2;
- curY_1 = curY_2;
+ // current becomes the last
+ lastInBounds = curInBounds;
+ curX_1 = curX_2;
+ curY_1 = curY_2;
+ }
}
}
}
@@ -1851,120 +1911,127 @@
// get the players position for it's Z information
MapPoint playerPos = param.player();
- // first paint the L lines
- QList<MapLineL*>::const_iterator mlit = m_lLines.begin();
- for (; mlit != m_lLines.end() && *mlit != NULL; ++mlit)
+ for (int i = 0; i < m_mapLayers.count(); ++i)
{
- currentLineL = *mlit;
- // if line is outside the currently visible region, skip it.
- if (!currentLineL->boundingRect().intersects(screenBounds))
- continue;
+ MapLayer* layer = m_mapLayers[i];
+ if (!param.isLayerVisible(i))
+ continue;
- // since it's an L type line, check for the depth is easy
- // just check if height is set, and if so, check if it's within range
- if (currentLineL->heightSet() &&
- !inRoom(param.playerHeadRoom(), param.playerFloorRoom(),
- currentLineL->z()))
- continue; // outside of range, continue to the next line
+ // first paint the L lines
+ QList<MapLineL*>::const_iterator mlit = layer->lLines().begin();
+ for (; mlit != layer->lLines().end(); ++mlit)
+ {
+ currentLineL = *mlit;
+ // if line is outside the currently visible region, skip it.
+ if (!currentLineL->boundingRect().intersects(screenBounds))
+ continue;
- // get the number of points in the line
- numPoints = currentLineL->size();
+ // since it's an L type line, check for the depth is easy
+ // just check if height is set, and if so, check if it's within range
+ if (currentLineL->heightSet() &&
+ !inRoom(param.playerHeadRoom(), param.playerFloorRoom(),
+ currentLineL->z()))
+ continue; // outside of range, continue to the next line
- // get the underlying array
- lData = currentLineL->data();
+ // get the number of points in the line
+ numPoints = currentLineL->size();
- // set the line color
-#ifdef DEBUGMAP
- seqDebug("lineColor = '%s'", (char *) currentLineL->color());
-#endif
- p.setPen(currentLineL->color());
+ // get the underlying array
+ lData = currentLineL->data();
- cur2DX_1 = lData[0].x();
- cur2DY_1 = lData[0].y();
+ // set the line color
+ #ifdef DEBUGMAP
+ seqDebug("lineColor = '%s'", (char *) currentLineL->color());
+ #endif
+ p.setPen(currentLineL->color());
- // see if the starting position is in bounds
- lastInBounds = inRect(screenBounds, cur2DX_1, cur2DY_1);
+ cur2DX_1 = lData[0].x();
+ cur2DY_1 = lData[0].y();
- // iterate over all the points in the line
- for (uint32_t i = 1; i < numPoints; i++)
- {
- cur2DX_2 = lData[i].x();
- cur2DY_2 = lData[i].y();
+ // see if the starting position is in bounds
+ lastInBounds = inRect(screenBounds, cur2DX_1, cur2DY_1);
- // determine if the current position is in bounds
- curInBounds = inRect(screenBounds, cur2DX_2, cur2DY_2);
+ // iterate over all the points in the line
+ for (uint32_t i = 1; i < numPoints; i++)
+ {
+ cur2DX_2 = lData[i].x();
+ cur2DY_2 = lData[i].y();
- // draw the line segment if either end is in bounds
- if (lastInBounds || curInBounds)
- p.drawLine(param.calcXOffsetI(cur2DX_1),
- param.calcYOffsetI(cur2DY_1),
- param.calcXOffsetI(cur2DX_2),
- param.calcYOffsetI(cur2DY_2));
+ // determine if the current position is in bounds
+ curInBounds = inRect(screenBounds, cur2DX_2, cur2DY_2);
- // current becomes the last
- lastInBounds = curInBounds;
- cur2DX_1 = cur2DX_2;
- cur2DY_1 = cur2DY_2;
+ // draw the line segment if either end is in bounds
+ if (lastInBounds || curInBounds)
+ p.drawLine(param.calcXOffsetI(cur2DX_1),
+ param.calcYOffsetI(cur2DY_1),
+ param.calcXOffsetI(cur2DX_2),
+ param.calcYOffsetI(cur2DY_2));
+
+ // current becomes the last
+ lastInBounds = curInBounds;
+ cur2DX_1 = cur2DX_2;
+ cur2DY_1 = cur2DY_2;
+ }
}
- }
- // then paint the M lines
- QList<MapLineM*>::const_iterator mmit = m_mLines.begin();
- for (; mmit != m_mLines.end() && *mmit != NULL; ++mmit)
- {
- currentLineM = *mmit;
- // if line is outside the currently visible region, skip it.
- if (!currentLineM->boundingRect().intersects(screenBounds))
- continue;
+ // then paint the M lines
+ QList<MapLineM*>::const_iterator mmit = layer->mLines().begin();
+ for (; mmit != layer->mLines().end(); ++mmit)
+ {
+ currentLineM = *mmit;
+ // if line is outside the currently visible region, skip it.
+ if (!currentLineM->boundingRect().intersects(screenBounds))
+ continue;
- // get the number of points in the line
- numPoints = currentLineM->size();
+ // get the number of points in the line
+ numPoints = currentLineM->size();
- // get the underlying array
- mData = currentLineM->data();
+ // get the underlying array
+ mData = currentLineM->data();
- // set the line color
-#ifdef DEBUGMAP
- seqDebug("lineColor = '%s'", (char *) currentLineM->color());
-#endif
- p.setPen(currentLineM->color());
+ // set the line color
+ #ifdef DEBUGMAP
+ seqDebug("lineColor = '%s'", (char *) currentLineM->color());
+ #endif
+ p.setPen(currentLineM->color());
- // get current coordinates
- curX_1 = mData[0].x();
- curY_1 = mData[0].y();
- curZ_1 = mData[0].z();
+ // get current coordinates
+ curX_1 = mData[0].x();
+ curY_1 = mData[0].y();
+ curZ_1 = mData[0].z();
- // see if the starting position is in bounds
- lastInBounds = (inRect(screenBounds, curX_1, curY_1) &&
- inRoom(param.playerHeadRoom(), param.playerFloorRoom(), curZ_1));
+ // see if the starting position is in bounds
+ lastInBounds = (inRect(screenBounds, curX_1, curY_1) &&
+ inRoom(param.playerHeadRoom(), param.playerFloorRoom(), curZ_1));
-#ifdef DEBUGMAP
- seqDebug("Line has %i points:", currentLineM->size());
-#endif
+ #ifdef DEBUGMAP
+ seqDebug("Line has %i points:", currentLineM->size());
+ #endif
- // iterate over all the points in the line
- for (uint32_t i = 1; i < numPoints; i++)
- {
- // get current coordinates
- curX_2 = mData[i].x();
- curY_2 = mData[i].y();
- curZ_2 = mData[i].z();
+ // iterate over all the points in the line
+ for (uint32_t i = 1; i < numPoints; i++)
+ {
+ // get current coordinates
+ curX_2 = mData[i].x();
+ curY_2 = mData[i].y();
+ curZ_2 = mData[i].z();
- // determine if the current position is in bounds
- curInBounds = (inRect(screenBounds, curX_2, curY_2) &&
- inRoom(param.playerHeadRoom(), param.playerFloorRoom(), curZ_2));
+ // determine if the current position is in bounds
+ curInBounds = (inRect(screenBounds, curX_2, curY_2) &&
+ inRoom(param.playerHeadRoom(), param.playerFloorRoom(), curZ_2));
- // draw the line segment if either end is in bounds
- if (lastInBounds || curInBounds)
- p.drawLine(param.calcXOffsetI(curX_1),
- param.calcYOffsetI(curY_1),
- param.calcXOffsetI(curX_2),
- param.calcYOffsetI(curY_2));
+ // draw the line segment if either end is in bounds
+ if (lastInBounds || curInBounds)
+ p.drawLine(param.calcXOffsetI(curX_1),
+ param.calcYOffsetI(curY_1),
+ param.calcXOffsetI(curX_2),
+ param.calcYOffsetI(curY_2));
- // current becomes the last
- lastInBounds = curInBounds;
- curX_1 = curX_2;
- curY_1 = curY_2;
+ // current becomes the last
+ lastInBounds = curInBounds;
+ curX_1 = curX_2;
+ curY_1 = curY_2;
+ }
}
}
}
@@ -2008,158 +2075,165 @@
double topb = 255 - (topm * playerPos.z());
double botb = 255 - (botm * playerPos.z());
- // first paint the L lines
- QList<MapLineL*>::const_iterator mlit = m_lLines.begin();
- for (; mlit != m_lLines.end() && *mlit != NULL; ++mlit)
+ for (int i = 0; i < m_mapLayers.count(); ++i)
{
- currentLineL = *mlit;
- // if line is outside the currently visible region, skip it.
- if (!currentLineL->boundingRect().intersects(screenBounds))
- continue;
+ MapLayer* layer = m_mapLayers[i];
+ if (!param.isLayerVisible(i))
+ continue;
- // get the number of points in the line
- numPoints = currentLineL->size();
+ // first paint the L lines
+ QList<MapLineL*>::const_iterator mlit = layer->lLines().begin();
+ for (; mlit != layer->lLines().end(); ++mlit)
+ {
+ currentLineL = *mlit;
+ // if line is outside the currently visible region, skip it.
+ if (!currentLineL->boundingRect().intersects(screenBounds))
+ continue;
- // get the underlying array
- lData = currentLineL->data();
+ // get the number of points in the line
+ numPoints = currentLineL->size();
- // get first point coordinates
- cur2DX_1 = lData[0].x();
- cur2DY_1 = lData[0].y();
- cur2DZ_1 = currentLineL->z();
+ // get the underlying array
+ lData = currentLineL->data();
- // color determination is different depending on if a height was set
- if (!currentLineL->heightSet())
- {
- // set the line color
-#ifdef DEBUGMAP
- seqDebug("lineColor = '%s'", (char *) currentLineL->color());
-#endif
- p.setPen(currentLineL->color());
- }
- else
- {
- // calculate color to use for the line (since L type, only do this once)
- if (currentLineL->z() > playerPos.z())
- useColor = (int)((cur2DZ_1 * topm) + topb);
- else
- useColor = (int)((cur2DZ_1 * botm) + botb);
+ // get first point coordinates
+ cur2DX_1 = lData[0].x();
+ cur2DY_1 = lData[0].y();
+ cur2DZ_1 = currentLineL->z();
- if (useColor > 255) useColor = 255;
- if (useColor < 0) useColor = 0;
+ // color determination is different depending on if a height was set
+ if (!currentLineL->heightSet())
+ {
+ // set the line color
+ #ifdef DEBUGMAP
+ seqDebug("lineColor = '%s'", (char *) currentLineL->color());
+ #endif
+ p.setPen(currentLineL->color());
+ }
+ else
+ {
+ // calculate color to use for the line (since L type, only do this once)
+ if (currentLineL->z() > playerPos.z())
+ useColor = (int)((cur2DZ_1 * topm) + topb);
+ else
+ useColor = (int)((cur2DZ_1 * botm) + botb);
- // set the line color
-#ifdef DEBUGMAP
- seqDebug("lineColor = '#%2x%2x%2x'", useColor, useColor, useColor);
-#endif
- p.setPen(QColor(useColor, useColor, useColor));
- }
+ if (useColor > 255) useColor = 255;
+ if (useColor < 0) useColor = 0;
- // see if the starting position is in bounds
- lastInBounds = inRect(screenBounds, cur2DX_1, cur2DY_1);
+ // set the line color
+ #ifdef DEBUGMAP
+ seqDebug("lineColor = '#%2x%2x%2x'", useColor, useColor, useColor);
+ #endif
+ p.setPen(QColor(useColor, useColor, useColor));
+ }
- // iterate over all the points in the line
- for (uint32_t i = 1; i < numPoints; i++)
- {
- // get coordinates
- cur2DX_2 = lData[i].x();
- cur2DY_2 = lData[i].y();
+ // see if the starting position is in bounds
+ lastInBounds = inRect(screenBounds, cur2DX_1, cur2DY_1);
- // determine if the current position is in bounds
- curInBounds = inRect(screenBounds, cur2DX_2, cur2DY_2);
+ // iterate over all the points in the line
+ for (uint32_t i = 1; i < numPoints; i++)
+ {
+ // get coordinates
+ cur2DX_2 = lData[i].x();
+ cur2DY_2 = lData[i].y();
- // draw the line segment if either end is in bounds
- if (lastInBounds || curInBounds)
- p.drawLine(param.calcXOffsetI(cur2DX_1),
- param.calcYOffsetI(cur2DY_1),
- param.calcXOffsetI(cur2DX_2),
- param.calcYOffsetI(cur2DY_2));
+ // determine if the current position is in bounds
+ curInBounds = inRect(screenBounds, cur2DX_2, cur2DY_2);
- // current becomes the last
- lastInBounds = curInBounds;
- cur2DX_1 = cur2DX_2;
- cur2DY_1 = cur2DY_2;
+ // draw the line segment if either end is in bounds
+ if (lastInBounds || curInBounds)
+ p.drawLine(param.calcXOffsetI(cur2DX_1),
+ param.calcYOffsetI(cur2DY_1),
+ param.calcXOffsetI(cur2DX_2),
+ param.calcYOffsetI(cur2DY_2));
+
+ // current becomes the last
+ lastInBounds = curInBounds;
+ cur2DX_1 = cur2DX_2;
+ cur2DY_1 = cur2DY_2;
+ }
}
- }
- // then paint the M lines
- QList<MapLineM*>::const_iterator mmit = m_mLines.begin();
- for (; mmit != m_mLines.end() && *mmit != NULL; ++mmit)
- {
- currentLineM = *mmit;
- // if line is outside the currently visible region, skip it.
- if (!currentLineM->boundingRect().intersects(scre...
[truncated message content] |
|
From: <cn...@us...> - 2023-02-19 18:39:21
|
Revision: 1338
http://sourceforge.net/p/seq/svn/1338
Author: cn187
Date: 2023-02-19 18:39:16 +0000 (Sun, 19 Feb 2023)
Log Message:
-----------
Release 6.2.18
- Update to version 6.2.18
- Support for EQ Patch 02/15/23
- 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 2023-02-19 18:28:08 UTC (rev 1337)
+++ showeq/branches/cn187_devel/ChangeLog 2023-02-19 18:39:16 UTC (rev 1338)
@@ -1,3 +1,8 @@
+cn187 (02/19/23)
+- Update to version 6.2.18
+- Support for EQ Patch 02/15/23
+- Struct and opcode updates (Newby)
+
cn187 (01/18/23)
----------------
- Update to version 6.2.17
Modified: showeq/branches/cn187_devel/conf/zoneopcodes.xml
===================================================================
--- showeq/branches/cn187_devel/conf/zoneopcodes.xml 2023-02-19 18:28:08 UTC (rev 1337)
+++ showeq/branches/cn187_devel/conf/zoneopcodes.xml 2023-02-19 18:39:16 UTC (rev 1338)
@@ -3,37 +3,37 @@
<seqopcodes>
<!-- Critical opcodes used directly by ShowEQ -->
- <opcode id="5cb1" name="OP_PlayerProfile" updated="01/18/23">
+ <opcode id="473a" name="OP_PlayerProfile" updated="02/15/23">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="54f6" name="OP_ZoneEntry" updated="01/18/23">
+ <opcode id="6d25" name="OP_ZoneEntry" updated="02/15/23">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="7c99" name="OP_TimeOfDay" updated="01/18/23">
+ <opcode id="732c" name="OP_TimeOfDay" updated="02/15/23">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="7f17" name="OP_NewZone" updated="01/18/23">
+ <opcode id="1548" name="OP_NewZone" updated="02/15/23">
<comment>NewZoneCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="5051" name="OP_SpawnDoor" updated="01/18/23">
+ <opcode id="307e" name="OP_SpawnDoor" updated="02/15/23">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="30a5" name="OP_GroundSpawn" updated="01/18/23">
+ <opcode id="4e0c" name="OP_GroundSpawn" updated="02/15/23">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="07a1" name="OP_SendZonePoints" updated="01/18/23">
+ <opcode id="5300" name="OP_SendZonePoints" updated="02/15/23">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
- <opcode id="3bea" name="OP_AAExpUpdate" updated="01/18/23">
+ <opcode id="c4d1" name="OP_AAExpUpdate" updated="02/15/23">
<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="3050" name="OP_GuildMOTD" updated="01/18/23">
+ <opcode id="4448" name="OP_GuildMOTD" updated="02/15/23">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
- <opcode id="3efc" name="OP_ClientUpdate" updated="01/18/23">
+ <opcode id="58b3" name="OP_ClientUpdate" updated="02/15/23">
<comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
- <opcode id="705e" name="OP_NpcMoveUpdate" updated="01/18/23">
+ <opcode id="0077" name="OP_NpcMoveUpdate" updated="02/15/23">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="52f9" name="OP_MobUpdate" updated="01/18/23">
+ <opcode id="5a0c" name="OP_MobUpdate" updated="02/15/23">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="59d7" name="OP_DeleteSpawn" updated="01/18/23">
+ <opcode id="2c95" name="OP_DeleteSpawn" updated="02/15/23">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="116e" name="OP_RemoveSpawn" updated="01/18/23">
+ <opcode id="58e2" name="OP_RemoveSpawn" updated="02/15/23">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
- <opcode id="4805" name="OP_Death" updated="01/18/23">
+ <opcode id="0a43" name="OP_Death" updated="02/15/23">
<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="5160" name="OP_SpawnAppearance" updated="01/18/23">
+ <opcode id="7882" name="OP_SpawnAppearance" updated="02/15/23">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
@@ -86,28 +86,28 @@
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1d80" name="OP_GuildMemberUpdate" updated="01/18/23">
+ <opcode id="30b3" name="OP_GuildMemberUpdate" updated="02/15/23">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="41ae" name="OP_ClickObject" updated="01/18/23">
+ <opcode id="5bce" name="OP_ClickObject" updated="02/15/23">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
- <opcode id="7a94" name="OP_Action" updated="01/18/23">
+ <opcode id="5bda" name="OP_Action" updated="02/15/23">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
</opcode>
- <opcode id="35e2" name="OP_Action2" updated="01/18/23">
+ <opcode id="399b" name="OP_Action2" updated="02/15/23">
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
- <opcode id="2229" name="OP_Consider" updated="01/18/23">
+ <opcode id="5f99" name="OP_Consider" updated="02/15/23">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="7eee" name="OP_TargetMouse" updated="01/18/23">
+ <opcode id="635c" name="OP_TargetMouse" updated="02/15/23">
<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="63cb" name="OP_ZoneChange" updated="01/18/23">
+ <opcode id="5e6a" name="OP_ZoneChange" updated="02/15/23">
<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="277c" name="OP_SimpleMessage" updated="01/18/23">
+ <opcode id="2bcb" name="OP_SimpleMessage" updated="02/15/23">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
- <opcode id="67d3" name="OP_FormattedMessage" updated="01/18/23">
+ <opcode id="48c6" name="OP_FormattedMessage" updated="02/15/23">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="43d1" name="OP_CommonMessage" updated="01/18/23">
+ <opcode id="2cdb" name="OP_CommonMessage" updated="02/15/23">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="0056" name="OP_SpecialMesg" updated="01/18/23">
+ <opcode id="25a6" name="OP_SpecialMesg" updated="02/15/23">
<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="080a" name="OP_GuildMemberList" updated="01/18/23">
+ <opcode id="1829" name="OP_GuildMemberList" updated="02/15/23">
<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="074f" name="OP_ExpandedGuildInfo" updated="01/18/23">
+ <opcode id="5cb9" name="OP_ExpandedGuildInfo" updated="02/15/23">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="uint8_t" 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="1873" name="OP_Find" updated="01/18/23">
+ <opcode id="6107" name="OP_Find" updated="02/15/23">
<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 2023-02-19 18:28:08 UTC (rev 1337)
+++ showeq/branches/cn187_devel/configure.in 2023-02-19 18:39:16 UTC (rev 1338)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 6.2.17)
+AC_INIT(showeq, 6.2.18)
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 2023-02-19 18:28:08 UTC (rev 1337)
+++ showeq/branches/cn187_devel/src/everquest.h 2023-02-19 18:39:16 UTC (rev 1338)
@@ -1115,29 +1115,26 @@
struct
{
- signed animation:10; // current animation
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding00:10;
-
- unsigned heading:12; // heading
signed deltaY:13; // change in y
- unsigned padding01:7;
-
signed x:19; // x coord (1st loc value)
- unsigned padding02:13;
signed y:19; // y coord (2nd loc value)
- signed deltaHeading:10; // change in heading
- unsigned padding03:3;
+ unsigned padding01:13;
signed z:19; // z coord (3rd loc value)
- signed deltaX:13; // change in x
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding02:1;
+ unsigned heading:12; // heading
+ signed animation:10; // current animation
+ signed deltaHeading:10; // change in heading
+
signed deltaZ:13; // change in z
- unsigned padding05:19;
+ signed deltaX:13; // change in x
+ unsigned padding04:6;
};
- int32_t posData[6];
+ int32_t posData[5];
};
/*0000*/ union
@@ -2386,7 +2383,7 @@
/*
** Player Position Update
-** Length: 28 Octets
+** Length: 24 Octets
** OpCode: PlayerPosCode
*/
struct playerSpawnPosStruct
@@ -2394,32 +2391,29 @@
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
/*0004*/
- signed animation:10; // current animation
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding00:10;
+ signed deltaY:13; // change in y
+ signed x:19; // x coord (1st loc value)
/*0008*/
- unsigned heading:12; // heading
- signed deltaY:13; // change in y
- unsigned padding01:7;
+ signed y:19; // y coord (2nd loc value)
+ unsigned padding01:13;
/*0012*/
- signed x:19; // x coord (1st loc value)
- unsigned padding02:13;
+ signed z:19; // z coord (3rd loc value)
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding02:1;
/*0016*/
- signed y:19; // y coord (2nd loc value)
+ unsigned heading:12; // heading
+ signed animation:10; // current animation
signed deltaHeading:10; // change in heading
- unsigned padding03:3;
/*0020*/
- signed z:19; // z coord (3rd loc value)
+ signed deltaZ:13; // change in z
signed deltaX:13; // change in x
+ unsigned padding04:6;
/*0024*/
- signed deltaZ:13; // change in z
- unsigned padding05:19;
-/*0028*/
};
/*
** Self Position Update
-** Length: 46 Octets
+** Length: 42 Octets
** OpCode: PlayerPosCode
*/
struct playerSelfPosStruct
@@ -2428,30 +2422,28 @@
/*0002*/ uint16_t spawnId; // Player's spawn id
/*0004*/ uint16_t unknown0004; // ***Placeholder
/*0006*/
- float y; // y coord (2nd loc value)
+ signed deltaHeading:10; // change in heading
+ unsigned padding0:22;
/*0010*/
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding1:20;
+ float deltaZ; // change in z
/*0014*/
- float z; // z coord (3rd loc value)
+ float deltaX; // change in x
/*0018*/
- signed deltaHeading:10; // change in heading
- unsigned padding3:22;
+ signed animation:10; // current animation
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding3:10;
/*0022*/
- float deltaZ; // change in z
+ float z; // z coord (3rd loc value)
/*0026*/
- float deltaX; // change in x
+ float y; // y coord (2nd loc value)
/*0030*/
float deltaY; // change in y
/*0034*/
- signed animation:10; // current animation
- unsigned padding7:22;
+ unsigned heading:12; // heading
+ unsigned padding7:20;
/*0038*/
float x; // x coord (1st loc value)
/*0042*/
- unsigned heading:12; // heading
- unsigned padding9:20;
-/*0046*/
};
/*
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2023-02-19 18:28:09
|
Revision: 1337
http://sourceforge.net/p/seq/svn/1337
Author: cn187
Date: 2023-02-19 18:28:08 +0000 (Sun, 19 Feb 2023)
Log Message:
-----------
Tag for release 6.2.18
Added Paths:
-----------
showeq/tags/v6_2_18/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2023-02-19 18:23:27
|
Revision: 1336
http://sourceforge.net/p/seq/svn/1336
Author: cn187
Date: 2023-02-19 18:23:25 +0000 (Sun, 19 Feb 2023)
Log Message:
-----------
Release 6.2.18
- Update to version 6.2.17
- Support for EQ Patch 01/18/23
- 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 2023-01-19 04:00:11 UTC (rev 1335)
+++ showeq/trunk/ChangeLog 2023-02-19 18:23:25 UTC (rev 1336)
@@ -1,3 +1,8 @@
+cn187 (02/19/23)
+- Update to version 6.2.18
+- Support for EQ Patch 02/15/23
+- Struct and opcode updates (Newby)
+
cn187 (01/18/23)
----------------
- Update to version 6.2.17
Modified: showeq/trunk/conf/zoneopcodes.xml
===================================================================
--- showeq/trunk/conf/zoneopcodes.xml 2023-01-19 04:00:11 UTC (rev 1335)
+++ showeq/trunk/conf/zoneopcodes.xml 2023-02-19 18:23:25 UTC (rev 1336)
@@ -3,37 +3,37 @@
<seqopcodes>
<!-- Critical opcodes used directly by ShowEQ -->
- <opcode id="5cb1" name="OP_PlayerProfile" updated="01/18/23">
+ <opcode id="473a" name="OP_PlayerProfile" updated="02/15/23">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="54f6" name="OP_ZoneEntry" updated="01/18/23">
+ <opcode id="6d25" name="OP_ZoneEntry" updated="02/15/23">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="7c99" name="OP_TimeOfDay" updated="01/18/23">
+ <opcode id="732c" name="OP_TimeOfDay" updated="02/15/23">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="7f17" name="OP_NewZone" updated="01/18/23">
+ <opcode id="1548" name="OP_NewZone" updated="02/15/23">
<comment>NewZoneCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="5051" name="OP_SpawnDoor" updated="01/18/23">
+ <opcode id="307e" name="OP_SpawnDoor" updated="02/15/23">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="30a5" name="OP_GroundSpawn" updated="01/18/23">
+ <opcode id="4e0c" name="OP_GroundSpawn" updated="02/15/23">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="07a1" name="OP_SendZonePoints" updated="01/18/23">
+ <opcode id="5300" name="OP_SendZonePoints" updated="02/15/23">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
- <opcode id="3bea" name="OP_AAExpUpdate" updated="01/18/23">
+ <opcode id="c4d1" name="OP_AAExpUpdate" updated="02/15/23">
<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="3050" name="OP_GuildMOTD" updated="01/18/23">
+ <opcode id="4448" name="OP_GuildMOTD" updated="02/15/23">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
- <opcode id="3efc" name="OP_ClientUpdate" updated="01/18/23">
+ <opcode id="58b3" name="OP_ClientUpdate" updated="02/15/23">
<comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
- <opcode id="705e" name="OP_NpcMoveUpdate" updated="01/18/23">
+ <opcode id="0077" name="OP_NpcMoveUpdate" updated="02/15/23">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="52f9" name="OP_MobUpdate" updated="01/18/23">
+ <opcode id="5a0c" name="OP_MobUpdate" updated="02/15/23">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="59d7" name="OP_DeleteSpawn" updated="01/18/23">
+ <opcode id="2c95" name="OP_DeleteSpawn" updated="02/15/23">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="116e" name="OP_RemoveSpawn" updated="01/18/23">
+ <opcode id="58e2" name="OP_RemoveSpawn" updated="02/15/23">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
- <opcode id="4805" name="OP_Death" updated="01/18/23">
+ <opcode id="0a43" name="OP_Death" updated="02/15/23">
<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="5160" name="OP_SpawnAppearance" updated="01/18/23">
+ <opcode id="7882" name="OP_SpawnAppearance" updated="02/15/23">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
@@ -86,28 +86,28 @@
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1d80" name="OP_GuildMemberUpdate" updated="01/18/23">
+ <opcode id="30b3" name="OP_GuildMemberUpdate" updated="02/15/23">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="41ae" name="OP_ClickObject" updated="01/18/23">
+ <opcode id="5bce" name="OP_ClickObject" updated="02/15/23">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
- <opcode id="7a94" name="OP_Action" updated="01/18/23">
+ <opcode id="5bda" name="OP_Action" updated="02/15/23">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
</opcode>
- <opcode id="35e2" name="OP_Action2" updated="01/18/23">
+ <opcode id="399b" name="OP_Action2" updated="02/15/23">
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
- <opcode id="2229" name="OP_Consider" updated="01/18/23">
+ <opcode id="5f99" name="OP_Consider" updated="02/15/23">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="7eee" name="OP_TargetMouse" updated="01/18/23">
+ <opcode id="635c" name="OP_TargetMouse" updated="02/15/23">
<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="63cb" name="OP_ZoneChange" updated="01/18/23">
+ <opcode id="5e6a" name="OP_ZoneChange" updated="02/15/23">
<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="277c" name="OP_SimpleMessage" updated="01/18/23">
+ <opcode id="2bcb" name="OP_SimpleMessage" updated="02/15/23">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
- <opcode id="67d3" name="OP_FormattedMessage" updated="01/18/23">
+ <opcode id="48c6" name="OP_FormattedMessage" updated="02/15/23">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="43d1" name="OP_CommonMessage" updated="01/18/23">
+ <opcode id="2cdb" name="OP_CommonMessage" updated="02/15/23">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="0056" name="OP_SpecialMesg" updated="01/18/23">
+ <opcode id="25a6" name="OP_SpecialMesg" updated="02/15/23">
<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="080a" name="OP_GuildMemberList" updated="01/18/23">
+ <opcode id="1829" name="OP_GuildMemberList" updated="02/15/23">
<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="074f" name="OP_ExpandedGuildInfo" updated="01/18/23">
+ <opcode id="5cb9" name="OP_ExpandedGuildInfo" updated="02/15/23">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="uint8_t" 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="1873" name="OP_Find" updated="01/18/23">
+ <opcode id="6107" name="OP_Find" updated="02/15/23">
<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 2023-01-19 04:00:11 UTC (rev 1335)
+++ showeq/trunk/configure.in 2023-02-19 18:23:25 UTC (rev 1336)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 6.2.17)
+AC_INIT(showeq, 6.2.18)
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 2023-01-19 04:00:11 UTC (rev 1335)
+++ showeq/trunk/src/everquest.h 2023-02-19 18:23:25 UTC (rev 1336)
@@ -1113,29 +1113,26 @@
struct
{
- signed animation:10; // current animation
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding00:10;
-
- unsigned heading:12; // heading
signed deltaY:13; // change in y
- unsigned padding01:7;
-
signed x:19; // x coord (1st loc value)
- unsigned padding02:13;
signed y:19; // y coord (2nd loc value)
- signed deltaHeading:10; // change in heading
- unsigned padding03:3;
+ unsigned padding01:13;
signed z:19; // z coord (3rd loc value)
- signed deltaX:13; // change in x
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding02:1;
+ unsigned heading:12; // heading
+ signed animation:10; // current animation
+ signed deltaHeading:10; // change in heading
+
signed deltaZ:13; // change in z
- unsigned padding05:19;
+ signed deltaX:13; // change in x
+ unsigned padding04:6;
};
- int32_t posData[6];
+ int32_t posData[5];
};
/*0000*/ union
@@ -2384,7 +2381,7 @@
/*
** Player Position Update
-** Length: 28 Octets
+** Length: 24 Octets
** OpCode: PlayerPosCode
*/
struct playerSpawnPosStruct
@@ -2392,32 +2389,29 @@
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
/*0004*/
- signed animation:10; // current animation
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding00:10;
+ signed deltaY:13; // change in y
+ signed x:19; // x coord (1st loc value)
/*0008*/
- unsigned heading:12; // heading
- signed deltaY:13; // change in y
- unsigned padding01:7;
+ signed y:19; // y coord (2nd loc value)
+ unsigned padding01:13;
/*0012*/
- signed x:19; // x coord (1st loc value)
- unsigned padding02:13;
+ signed z:19; // z coord (3rd loc value)
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding02:1;
/*0016*/
- signed y:19; // y coord (2nd loc value)
+ unsigned heading:12; // heading
+ signed animation:10; // current animation
signed deltaHeading:10; // change in heading
- unsigned padding03:3;
/*0020*/
- signed z:19; // z coord (3rd loc value)
+ signed deltaZ:13; // change in z
signed deltaX:13; // change in x
+ unsigned padding04:6;
/*0024*/
- signed deltaZ:13; // change in z
- unsigned padding05:19;
-/*0028*/
};
/*
** Self Position Update
-** Length: 46 Octets
+** Length: 42 Octets
** OpCode: PlayerPosCode
*/
struct playerSelfPosStruct
@@ -2426,30 +2420,28 @@
/*0002*/ uint16_t spawnId; // Player's spawn id
/*0004*/ uint16_t unknown0004; // ***Placeholder
/*0006*/
- float y; // y coord (2nd loc value)
+ signed deltaHeading:10; // change in heading
+ unsigned padding0:22;
/*0010*/
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding1:20;
+ float deltaZ; // change in z
/*0014*/
- float z; // z coord (3rd loc value)
+ float deltaX; // change in x
/*0018*/
- signed deltaHeading:10; // change in heading
- unsigned padding3:22;
+ signed animation:10; // current animation
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding3:10;
/*0022*/
- float deltaZ; // change in z
+ float z; // z coord (3rd loc value)
/*0026*/
- float deltaX; // change in x
+ float y; // y coord (2nd loc value)
/*0030*/
float deltaY; // change in y
/*0034*/
- signed animation:10; // current animation
- unsigned padding7:22;
+ unsigned heading:12; // heading
+ unsigned padding7:20;
/*0038*/
float x; // x coord (1st loc value)
/*0042*/
- unsigned heading:12; // heading
- unsigned padding9:20;
-/*0046*/
};
/*
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2023-01-19 04:00:13
|
Revision: 1335
http://sourceforge.net/p/seq/svn/1335
Author: cn187
Date: 2023-01-19 04:00:11 +0000 (Thu, 19 Jan 2023)
Log Message:
-----------
Release 6.2.17
- Updated to version 6.2.17
- Support for EQ Patch 01/18/23
- 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 2023-01-19 03:54:19 UTC (rev 1334)
+++ showeq/branches/cn187_devel/ChangeLog 2023-01-19 04:00:11 UTC (rev 1335)
@@ -1,3 +1,9 @@
+cn187 (01/18/23)
+----------------
+- Update to version 6.2.17
+- Support for EQ Patch 01/18/23
+- Struct and opcode updates (Newby)
+
cn187 (12/08/22)
----------------
- Update to version 6.2.16
Modified: showeq/branches/cn187_devel/conf/zoneopcodes.xml
===================================================================
--- showeq/branches/cn187_devel/conf/zoneopcodes.xml 2023-01-19 03:54:19 UTC (rev 1334)
+++ showeq/branches/cn187_devel/conf/zoneopcodes.xml 2023-01-19 04:00:11 UTC (rev 1335)
@@ -3,37 +3,37 @@
<seqopcodes>
<!-- Critical opcodes used directly by ShowEQ -->
- <opcode id="6daf" name="OP_PlayerProfile" updated="12/08/22">
+ <opcode id="5cb1" name="OP_PlayerProfile" updated="01/18/23">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="7192" name="OP_ZoneEntry" updated="12/08/22">
+ <opcode id="54f6" name="OP_ZoneEntry" updated="01/18/23">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="1cd4" name="OP_TimeOfDay" updated="12/08/22">
+ <opcode id="7c99" name="OP_TimeOfDay" updated="01/18/23">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="48a4" name="OP_NewZone" updated="12/08/22">
+ <opcode id="7f17" name="OP_NewZone" updated="01/18/23">
<comment>NewZoneCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="7187" name="OP_SpawnDoor" updated="12/08/22">
+ <opcode id="5051" name="OP_SpawnDoor" updated="01/18/23">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="1d06" name="OP_GroundSpawn" updated="12/08/22">
+ <opcode id="30a5" name="OP_GroundSpawn" updated="01/18/23">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="3d86" name="OP_SendZonePoints" updated="12/08/22">
+ <opcode id="07a1" name="OP_SendZonePoints" updated="01/18/23">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
- <opcode id="0971" name="OP_AAExpUpdate" updated="12/08/22">
+ <opcode id="3bea" name="OP_AAExpUpdate" updated="01/18/23">
<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="5c10" name="OP_GuildMOTD" updated="12/08/22">
+ <opcode id="3050" name="OP_GuildMOTD" updated="01/18/23">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
- <opcode id="0767" name="OP_ClientUpdate" updated="12/08/22">
+ <opcode id="3efc" name="OP_ClientUpdate" updated="01/18/23">
<comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5f74" name="OP_NpcMoveUpdate" updated="12/08/22">
+ <opcode id="705e" name="OP_NpcMoveUpdate" updated="01/18/23">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="768c" name="OP_MobUpdate" updated="12/08/22">
+ <opcode id="52f9" name="OP_MobUpdate" updated="01/18/23">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="6855" name="OP_DeleteSpawn" updated="12/08/22">
+ <opcode id="59d7" name="OP_DeleteSpawn" updated="01/18/23">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4be2" name="OP_RemoveSpawn" updated="12/08/22">
+ <opcode id="116e" name="OP_RemoveSpawn" updated="01/18/23">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
- <opcode id="35e1" name="OP_Death" updated="12/08/22">
+ <opcode id="4805" name="OP_Death" updated="01/18/23">
<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="3883" name="OP_SpawnAppearance" updated="12/08/22">
+ <opcode id="5160" name="OP_SpawnAppearance" updated="01/18/23">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
@@ -86,28 +86,28 @@
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5390" name="OP_GuildMemberUpdate" updated="12/08/22">
+ <opcode id="1d80" name="OP_GuildMemberUpdate" updated="01/18/23">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="4339" name="OP_ClickObject" updated="12/08/22">
+ <opcode id="41ae" name="OP_ClickObject" updated="01/18/23">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6979" name="OP_Action" updated="12/08/22">
+ <opcode id="7a94" name="OP_Action" updated="01/18/23">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4782" name="OP_Action2" updated="12/08/22">
+ <opcode id="35e2" name="OP_Action2" updated="01/18/23">
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
- <opcode id="0602" name="OP_Consider" updated="12/08/22">
+ <opcode id="2229" name="OP_Consider" updated="01/18/23">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0a08" name="OP_TargetMouse" updated="12/08/22">
+ <opcode id="7eee" name="OP_TargetMouse" updated="01/18/23">
<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="3c54" name="OP_ZoneChange" updated="12/08/22">
+ <opcode id="63cb" name="OP_ZoneChange" updated="01/18/23">
<comment>old ZoneChangeCode</comment>
<payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
</opcode>
@@ -171,7 +171,7 @@
<comment>BeginCastCode</comment>
<payload dir="both" typename="beginCastStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1d80" name="OP_CastSpell" updated="12/08/22">
+ <opcode id="ffff" name="OP_CastSpell" updated="12/08/22">
<comment>StartCastCode</comment>
<payload dir="both" typename="startCastStruct" sizechecktype="match"/>
</opcode>
@@ -191,19 +191,19 @@
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
- <opcode id="6e7c" name="OP_SimpleMessage" updated="12/08/22">
+ <opcode id="277c" name="OP_SimpleMessage" updated="01/18/23">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
- <opcode id="7590" name="OP_FormattedMessage" updated="12/08/22">
+ <opcode id="67d3" name="OP_FormattedMessage" updated="01/18/23">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="6885" name="OP_CommonMessage" updated="12/08/22">
+ <opcode id="43d1" name="OP_CommonMessage" updated="01/18/23">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="72b8" name="OP_SpecialMesg" updated="12/08/22">
+ <opcode id="0056" name="OP_SpecialMesg" updated="01/18/23">
<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="1dd6" name="OP_GuildMemberList" updated="12/08/22">
+ <opcode id="080a" name="OP_GuildMemberList" updated="01/18/23">
<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="6f96" name="OP_ExpandedGuildInfo" updated="12/08/22">
+ <opcode id="074f" name="OP_ExpandedGuildInfo" updated="01/18/23">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="uint8_t" 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="2a48" name="OP_Find" updated="12/08/22">
+ <opcode id="1873" name="OP_Find" updated="01/18/23">
<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 2023-01-19 03:54:19 UTC (rev 1334)
+++ showeq/branches/cn187_devel/configure.in 2023-01-19 04:00:11 UTC (rev 1335)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 6.2.16)
+AC_INIT(showeq, 6.2.17)
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 2023-01-19 03:54:19 UTC (rev 1334)
+++ showeq/branches/cn187_devel/src/everquest.h 2023-01-19 04:00:11 UTC (rev 1335)
@@ -1115,26 +1115,29 @@
struct
{
+ signed animation:10; // current animation
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding00:10;
+
unsigned heading:12; // heading
- signed deltaZ:13; // change in z
- unsigned padding00:7;
+ signed deltaY:13; // change in y
+ unsigned padding01:7;
signed x:19; // x coord (1st loc value)
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding01:1;
+ unsigned padding02:13;
+ signed y:19; // y coord (2nd loc value)
+ signed deltaHeading:10; // change in heading
+ unsigned padding03:3;
+
+ signed z:19; // z coord (3rd loc value)
signed deltaX:13; // change in x
- signed z:19; // z coord (3rd loc value)
- signed animation:10; // current animation
- signed deltaHeading:10; // change in heading
- unsigned padding03:12;
+ signed deltaZ:13; // change in z
+ unsigned padding05:19;
- signed y:19; // y coord (2nd loc value)
- signed deltaY:13; // change in y
-
};
- int32_t posData[5];
+ int32_t posData[6];
};
/*0000*/ union
@@ -2383,7 +2386,7 @@
/*
** Player Position Update
-** Length: 24 Octets
+** Length: 28 Octets
** OpCode: PlayerPosCode
*/
struct playerSpawnPosStruct
@@ -2391,24 +2394,27 @@
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
/*0004*/
+ signed animation:10; // current animation
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding00:10;
+/*0008*/
unsigned heading:12; // heading
- signed deltaZ:13; // change in z
- unsigned padding00:7;
-/*0008*/
+ signed deltaY:13; // change in y
+ unsigned padding01:7;
+/*0012*/
signed x:19; // x coord (1st loc value)
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding01:1;
-/*0012*/
- signed deltaX:13; // change in x
- signed z:19; // z coord (3rd loc value)
+ unsigned padding02:13;
/*0016*/
- signed animation:10; // current animation
+ signed y:19; // y coord (2nd loc value)
signed deltaHeading:10; // change in heading
- unsigned padding03:12;
+ unsigned padding03:3;
/*0020*/
- signed y:19; // y coord (2nd loc value)
- signed deltaY:13; // change in y
+ signed z:19; // z coord (3rd loc value)
+ signed deltaX:13; // change in x
/*0024*/
+ signed deltaZ:13; // change in z
+ unsigned padding05:19;
+/*0028*/
};
/*
@@ -2422,29 +2428,29 @@
/*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*/
- unsigned heading:12; // heading
- unsigned padding01:20;
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding1:20;
/*0014*/
- float deltaZ; // change in z
+ float z; // z coord (3rd loc value)
/*0018*/
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding03:20;
+ signed deltaHeading:10; // change in heading
+ unsigned padding3:22;
/*0022*/
- float x; // x coord (1st loc value)
+ float deltaZ; // change in z
/*0026*/
- signed animation:10; // current animation
- unsigned padding5:22;
+ float deltaX; // change in x
/*0030*/
- float y; // y coord (2nd loc value)
+ float deltaY; // change in y
/*0034*/
- float deltaY; // change in y
+ signed animation:10; // current animation
+ unsigned padding7:22;
/*0038*/
- float deltaX; // change in x
+ float x; // x coord (1st loc value)
/*0042*/
- signed deltaHeading:10; // change in heading
- unsigned padding9:22;
+ unsigned heading:12; // heading
+ unsigned padding9:20;
/*0046*/
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2023-01-19 03:54:20
|
Revision: 1334
http://sourceforge.net/p/seq/svn/1334
Author: cn187
Date: 2023-01-19 03:54:19 +0000 (Thu, 19 Jan 2023)
Log Message:
-----------
Tag for release 6.2.17
Added Paths:
-----------
showeq/tags/v6_2_17/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2023-01-19 03:52:55
|
Revision: 1333
http://sourceforge.net/p/seq/svn/1333
Author: cn187
Date: 2023-01-19 03:52:53 +0000 (Thu, 19 Jan 2023)
Log Message:
-----------
Release 6.2.17
- Updated to version 6.2.17
- Support for EQ Patch 01/18/23
- 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 2022-12-09 17:13:07 UTC (rev 1332)
+++ showeq/trunk/ChangeLog 2023-01-19 03:52:53 UTC (rev 1333)
@@ -1,3 +1,9 @@
+cn187 (01/18/23)
+----------------
+- Update to version 6.2.17
+- Support for EQ Patch 01/18/23
+- Struct and opcode updates (Newby)
+
cn187 (12/08/22)
----------------
- Update to version 6.2.16
Modified: showeq/trunk/conf/zoneopcodes.xml
===================================================================
--- showeq/trunk/conf/zoneopcodes.xml 2022-12-09 17:13:07 UTC (rev 1332)
+++ showeq/trunk/conf/zoneopcodes.xml 2023-01-19 03:52:53 UTC (rev 1333)
@@ -3,37 +3,37 @@
<seqopcodes>
<!-- Critical opcodes used directly by ShowEQ -->
- <opcode id="6daf" name="OP_PlayerProfile" updated="12/08/22">
+ <opcode id="5cb1" name="OP_PlayerProfile" updated="01/18/23">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="7192" name="OP_ZoneEntry" updated="12/08/22">
+ <opcode id="54f6" name="OP_ZoneEntry" updated="01/18/23">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="1cd4" name="OP_TimeOfDay" updated="12/08/22">
+ <opcode id="7c99" name="OP_TimeOfDay" updated="01/18/23">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="48a4" name="OP_NewZone" updated="12/08/22">
+ <opcode id="7f17" name="OP_NewZone" updated="01/18/23">
<comment>NewZoneCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="7187" name="OP_SpawnDoor" updated="12/08/22">
+ <opcode id="5051" name="OP_SpawnDoor" updated="01/18/23">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="1d06" name="OP_GroundSpawn" updated="12/08/22">
+ <opcode id="30a5" name="OP_GroundSpawn" updated="01/18/23">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="3d86" name="OP_SendZonePoints" updated="12/08/22">
+ <opcode id="07a1" name="OP_SendZonePoints" updated="01/18/23">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
- <opcode id="0971" name="OP_AAExpUpdate" updated="12/08/22">
+ <opcode id="3bea" name="OP_AAExpUpdate" updated="01/18/23">
<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="5c10" name="OP_GuildMOTD" updated="12/08/22">
+ <opcode id="3050" name="OP_GuildMOTD" updated="01/18/23">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
- <opcode id="0767" name="OP_ClientUpdate" updated="12/08/22">
+ <opcode id="3efc" name="OP_ClientUpdate" updated="01/18/23">
<comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5f74" name="OP_NpcMoveUpdate" updated="12/08/22">
+ <opcode id="705e" name="OP_NpcMoveUpdate" updated="01/18/23">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="768c" name="OP_MobUpdate" updated="12/08/22">
+ <opcode id="52f9" name="OP_MobUpdate" updated="01/18/23">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="6855" name="OP_DeleteSpawn" updated="12/08/22">
+ <opcode id="59d7" name="OP_DeleteSpawn" updated="01/18/23">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4be2" name="OP_RemoveSpawn" updated="12/08/22">
+ <opcode id="116e" name="OP_RemoveSpawn" updated="01/18/23">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
- <opcode id="35e1" name="OP_Death" updated="12/08/22">
+ <opcode id="4805" name="OP_Death" updated="01/18/23">
<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="3883" name="OP_SpawnAppearance" updated="12/08/22">
+ <opcode id="5160" name="OP_SpawnAppearance" updated="01/18/23">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
@@ -86,28 +86,28 @@
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5390" name="OP_GuildMemberUpdate" updated="12/08/22">
+ <opcode id="1d80" name="OP_GuildMemberUpdate" updated="01/18/23">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="4339" name="OP_ClickObject" updated="12/08/22">
+ <opcode id="41ae" name="OP_ClickObject" updated="01/18/23">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6979" name="OP_Action" updated="12/08/22">
+ <opcode id="7a94" name="OP_Action" updated="01/18/23">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4782" name="OP_Action2" updated="12/08/22">
+ <opcode id="35e2" name="OP_Action2" updated="01/18/23">
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
- <opcode id="0602" name="OP_Consider" updated="12/08/22">
+ <opcode id="2229" name="OP_Consider" updated="01/18/23">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0a08" name="OP_TargetMouse" updated="12/08/22">
+ <opcode id="7eee" name="OP_TargetMouse" updated="01/18/23">
<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="3c54" name="OP_ZoneChange" updated="12/08/22">
+ <opcode id="63cb" name="OP_ZoneChange" updated="01/18/23">
<comment>old ZoneChangeCode</comment>
<payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
</opcode>
@@ -171,7 +171,7 @@
<comment>BeginCastCode</comment>
<payload dir="both" typename="beginCastStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1d80" name="OP_CastSpell" updated="12/08/22">
+ <opcode id="ffff" name="OP_CastSpell" updated="12/08/22">
<comment>StartCastCode</comment>
<payload dir="both" typename="startCastStruct" sizechecktype="match"/>
</opcode>
@@ -191,19 +191,19 @@
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
- <opcode id="6e7c" name="OP_SimpleMessage" updated="12/08/22">
+ <opcode id="277c" name="OP_SimpleMessage" updated="01/18/23">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
- <opcode id="7590" name="OP_FormattedMessage" updated="12/08/22">
+ <opcode id="67d3" name="OP_FormattedMessage" updated="01/18/23">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="6885" name="OP_CommonMessage" updated="12/08/22">
+ <opcode id="43d1" name="OP_CommonMessage" updated="01/18/23">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="72b8" name="OP_SpecialMesg" updated="12/08/22">
+ <opcode id="0056" name="OP_SpecialMesg" updated="01/18/23">
<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="1dd6" name="OP_GuildMemberList" updated="12/08/22">
+ <opcode id="080a" name="OP_GuildMemberList" updated="01/18/23">
<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="6f96" name="OP_ExpandedGuildInfo" updated="12/08/22">
+ <opcode id="074f" name="OP_ExpandedGuildInfo" updated="01/18/23">
<comment>Guild ranks and other misc guild data - Variable length</comment>
<payload dir="server" typename="uint8_t" 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="2a48" name="OP_Find" updated="12/08/22">
+ <opcode id="1873" name="OP_Find" updated="01/18/23">
<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-09 17:13:07 UTC (rev 1332)
+++ showeq/trunk/configure.in 2023-01-19 03:52:53 UTC (rev 1333)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 6.2.16)
+AC_INIT(showeq, 6.2.17)
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-09 17:13:07 UTC (rev 1332)
+++ showeq/trunk/src/everquest.h 2023-01-19 03:52:53 UTC (rev 1333)
@@ -1113,26 +1113,29 @@
struct
{
+ signed animation:10; // current animation
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding00:10;
+
unsigned heading:12; // heading
- signed deltaZ:13; // change in z
- unsigned padding00:7;
+ signed deltaY:13; // change in y
+ unsigned padding01:7;
signed x:19; // x coord (1st loc value)
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding01:1;
+ unsigned padding02:13;
+ signed y:19; // y coord (2nd loc value)
+ signed deltaHeading:10; // change in heading
+ unsigned padding03:3;
+
+ signed z:19; // z coord (3rd loc value)
signed deltaX:13; // change in x
- signed z:19; // z coord (3rd loc value)
- signed animation:10; // current animation
- signed deltaHeading:10; // change in heading
- unsigned padding03:12;
+ signed deltaZ:13; // change in z
+ unsigned padding05:19;
- signed y:19; // y coord (2nd loc value)
- signed deltaY:13; // change in y
-
};
- int32_t posData[5];
+ int32_t posData[6];
};
/*0000*/ union
@@ -2381,7 +2384,7 @@
/*
** Player Position Update
-** Length: 24 Octets
+** Length: 28 Octets
** OpCode: PlayerPosCode
*/
struct playerSpawnPosStruct
@@ -2389,24 +2392,27 @@
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
/*0004*/
+ signed animation:10; // current animation
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding00:10;
+/*0008*/
unsigned heading:12; // heading
- signed deltaZ:13; // change in z
- unsigned padding00:7;
-/*0008*/
+ signed deltaY:13; // change in y
+ unsigned padding01:7;
+/*0012*/
signed x:19; // x coord (1st loc value)
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding01:1;
-/*0012*/
- signed deltaX:13; // change in x
- signed z:19; // z coord (3rd loc value)
+ unsigned padding02:13;
/*0016*/
- signed animation:10; // current animation
+ signed y:19; // y coord (2nd loc value)
signed deltaHeading:10; // change in heading
- unsigned padding03:12;
+ unsigned padding03:3;
/*0020*/
- signed y:19; // y coord (2nd loc value)
- signed deltaY:13; // change in y
+ signed z:19; // z coord (3rd loc value)
+ signed deltaX:13; // change in x
/*0024*/
+ signed deltaZ:13; // change in z
+ unsigned padding05:19;
+/*0028*/
};
/*
@@ -2420,29 +2426,29 @@
/*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*/
- unsigned heading:12; // heading
- unsigned padding01:20;
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding1:20;
/*0014*/
- float deltaZ; // change in z
+ float z; // z coord (3rd loc value)
/*0018*/
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding03:20;
+ signed deltaHeading:10; // change in heading
+ unsigned padding3:22;
/*0022*/
- float x; // x coord (1st loc value)
+ float deltaZ; // change in z
/*0026*/
- signed animation:10; // current animation
- unsigned padding5:22;
+ float deltaX; // change in x
/*0030*/
- float y; // y coord (2nd loc value)
+ float deltaY; // change in y
/*0034*/
- float deltaY; // change in y
+ signed animation:10; // current animation
+ unsigned padding7:22;
/*0038*/
- float deltaX; // change in x
+ float x; // x coord (1st loc value)
/*0042*/
- signed deltaHeading:10; // change in heading
- unsigned padding9:22;
+ unsigned heading:12; // heading
+ unsigned padding9:20;
/*0046*/
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2022-12-09 17:13:10
|
Revision: 1332
http://sourceforge.net/p/seq/svn/1332
Author: cn187
Date: 2022-12-09 17:13:07 +0000 (Fri, 09 Dec 2022)
Log Message:
-----------
Release 6.2.16
- Update to version 6.2.16
- Support for EQ Patch 12/08/22
- Struct and opcode updates (Newby, cn187)
- Simplicfication of aura/ldon fix (Newby)
- Add some missing NPC classes (xerces, cn187)
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 2022-12-09 17:04:27 UTC (rev 1331)
+++ showeq/branches/cn187_devel/ChangeLog 2022-12-09 17:13:07 UTC (rev 1332)
@@ -1,3 +1,11 @@
+cn187 (12/08/22)
+----------------
+- Update to version 6.2.16
+- Support for EQ Patch 12/08/22
+- Struct and opcode updates (Newby, cn187)
+- Simplicfication of aura/ldon fix (Newby)
+- Add some missing NPC classes (xerces, cn187)
+
cn187 (12/06/22)
----------------
- Update to version 6.2.15
Modified: showeq/branches/cn187_devel/conf/zoneopcodes.xml
===================================================================
--- showeq/branches/cn187_devel/conf/zoneopcodes.xml 2022-12-09 17:04:27 UTC (rev 1331)
+++ showeq/branches/cn187_devel/conf/zoneopcodes.xml 2022-12-09 17:13:07 UTC (rev 1332)
@@ -3,127 +3,127 @@
<seqopcodes>
<!-- Critical opcodes used directly by ShowEQ -->
- <opcode id="18bd" name="OP_PlayerProfile" updated="12/06/22">
+ <opcode id="6daf" name="OP_PlayerProfile" updated="12/08/22">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="1bf9" name="OP_ZoneEntry" updated="12/06/22">
+ <opcode id="7192" name="OP_ZoneEntry" updated="12/08/22">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="7fbb" name="OP_TimeOfDay" updated="12/06/22">
+ <opcode id="1cd4" name="OP_TimeOfDay" updated="12/08/22">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1b34" name="OP_NewZone" updated="12/06/22">
+ <opcode id="48a4" name="OP_NewZone" updated="12/08/22">
<comment>NewZoneCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="612d" name="OP_SpawnDoor" updated="12/06/22">
+ <opcode id="7187" name="OP_SpawnDoor" updated="12/08/22">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="0f40" name="OP_GroundSpawn" updated="12/06/22">
+ <opcode id="1d06" name="OP_GroundSpawn" updated="12/08/22">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="550f" name="OP_SendZonePoints" updated="12/06/22">
+ <opcode id="3d86" name="OP_SendZonePoints" updated="12/08/22">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
- <opcode id="63d8" name="OP_AAExpUpdate" updated="12/06/22">
+ <opcode id="0971" name="OP_AAExpUpdate" updated="12/08/22">
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="26d3" name="OP_ExpUpdate" updated="12/06/22">
+ <opcode id="3e6f" name="OP_ExpUpdate" updated="12/08/22">
<comment>ExpUpdateCode</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6c08" name="OP_GuildMOTD" updated="12/06/22">
+ <opcode id="5c10" name="OP_GuildMOTD" updated="12/08/22">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
- <opcode id="6658" name="OP_ClientUpdate" updated="12/06/22">
+ <opcode id="0767" name="OP_ClientUpdate" updated="12/08/22">
<comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5788" name="OP_NpcMoveUpdate" updated="12/06/22">
+ <opcode id="5f74" name="OP_NpcMoveUpdate" updated="12/08/22">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="39af" name="OP_MobUpdate" updated="12/06/22">
+ <opcode id="768c" name="OP_MobUpdate" updated="12/08/22">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="2dfe" name="OP_DeleteSpawn" updated="12/06/22">
+ <opcode id="6855" name="OP_DeleteSpawn" updated="12/08/22">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="39b6" name="OP_RemoveSpawn" updated="12/06/22">
+ <opcode id="4be2" name="OP_RemoveSpawn" updated="12/08/22">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
- <opcode id="6e4f" name="OP_Death" updated="12/06/22">
+ <opcode id="35e1" name="OP_Death" updated="12/08/22">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
- <opcode id="7cfb" name="OP_WearChange" updated="12/06/22">
+ <opcode id="0349" name="OP_WearChange" updated="12/08/22">
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="38ad" name="OP_SpawnAppearance" updated="12/06/22">
+ <opcode id="3883" name="OP_SpawnAppearance" updated="12/08/22">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
- <opcode id="00f6" name="OP_Stamina" updated="12/06/22">
+ <opcode id="31b1" name="OP_Stamina" updated="12/08/22">
<comment>Server updating on hunger/thirst</comment>
<payload dir="server" typename="staminaStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0981" name="OP_HPUpdate" updated="12/06/22">
+ <opcode id="281f" name="OP_HPUpdate" updated="12/08/22">
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="52dd" name="OP_GuildMemberUpdate" updated="12/06/22">
+ <opcode id="5390" name="OP_GuildMemberUpdate" updated="12/08/22">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="0a1d" name="OP_ClickObject" updated="12/06/22">
+ <opcode id="4339" name="OP_ClickObject" updated="12/08/22">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1512" name="OP_Action" updated="12/06/22">
+ <opcode id="6979" name="OP_Action" updated="12/08/22">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4f25" name="OP_Action2" updated="12/06/22">
+ <opcode id="4782" name="OP_Action2" updated="12/08/22">
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
- <opcode id="0727" name="OP_Consider" updated="12/06/22">
+ <opcode id="0602" name="OP_Consider" updated="12/08/22">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0d34" name="OP_TargetMouse" updated="12/06/22">
+ <opcode id="0a08" name="OP_TargetMouse" updated="12/08/22">
<comment>Targeting a person - old ClientTargetCode</comment>
<payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6af8" name="OP_SpawnRename" updated="12/06/22">
+ <opcode id="3056" name="OP_SpawnRename" updated="12/08/22">
<comment>Spawns getting renamed after initial NewSpawn</comment>
<payload dir="server" typename="spawnRenameStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1091" name="OP_Illusion" updated="12/06/22">
+ <opcode id="5d3a" name="OP_Illusion" updated="12/08/22">
<comment>Spawn being illusioned (changing forms)</comment>
<payload dir="both" typename="spawnIllusionStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1cdf" name="OP_Shroud" updated="12/06/22">
+ <opcode id="62bc" name="OP_Shroud" updated="12/08/22">
<comment>Server putting players into shroud form</comment>
<payload dir="server" typename="spawnShroudSelf" sizechecktype="none"/>
</opcode>
- <opcode id="3b51" name="OP_ZoneChange" updated="12/06/22">
+ <opcode id="3c54" name="OP_ZoneChange" updated="12/08/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="1e9e" name="OP_Buff" updated="12/06/22">
+ <opcode id="03db" name="OP_Buff" updated="12/08/22">
<comment>old BuffDropCode</comment>
<payload dir="both" typename="buffStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5ea8" name="OP_BeginCast" updated="12/06/22">
+ <opcode id="62af" name="OP_BeginCast" updated="12/08/22">
<comment>BeginCastCode</comment>
<payload dir="both" typename="beginCastStruct" sizechecktype="match"/>
</opcode>
- <opcode id="44d8" name="OP_CastSpell" updated="12/06/22">
+ <opcode id="1d80" name="OP_CastSpell" updated="12/08/22">
<comment>StartCastCode</comment>
<payload dir="both" typename="startCastStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1363" name="OP_SwapSpell" updated="12/06/22">
+ <opcode id="1736" name="OP_SwapSpell" updated="12/08/22">
<comment>TradeSpellBookSlotsCode</comment>
<payload dir="both" typename="tradeSpellBookSlotsStruct" sizechecktype="match"/>
</opcode>
- <opcode id="3cfc" name="OP_MemorizeSpell" updated="12/06/22">
+ <opcode id="46b7" name="OP_MemorizeSpell" updated="12/08/22">
<comment>MemSpellCode</comment>
<payload dir="both" typename="memSpellStruct" sizechecktype="match"/>
</opcode>
- <opcode id="3bef" name="OP_InspectAnswer" updated="12/06/22">
+ <opcode id="2283" name="OP_InspectAnswer" updated="12/08/22">
<comment>InspectDataCode</comment>
<payload dir="both" typename="inspectDataStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6602" name="OP_Emote" updated="12/06/22">
+ <opcode id="17bb" name="OP_Emote" updated="12/08/22">
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
- <opcode id="0d76" name="OP_SimpleMessage" updated="12/06/22">
+ <opcode id="6e7c" name="OP_SimpleMessage" updated="12/08/22">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
- <opcode id="25c2" name="OP_FormattedMessage" updated="12/06/22">
+ <opcode id="7590" name="OP_FormattedMessage" updated="12/08/22">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="05e7" name="OP_CommonMessage" updated="12/06/22">
+ <opcode id="6885" name="OP_CommonMessage" updated="12/08/22">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="0107" name="OP_SpecialMesg" updated="12/06/22">
+ <opcode id="72b8" name="OP_SpecialMesg" updated="12/08/22">
<comment>Communicate textual info to client including hail responses etc</comment>
<payload dir="server" typename="specialMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="7f13" name="OP_RandomReq" updated="12/06/22">
+ <opcode id="7c52" name="OP_RandomReq" updated="12/08/22">
<comment>RandomReqCode</comment>
<payload dir="client" typename="randomReqStruct" sizechecktype="match"/>
</opcode>
- <opcode id="20b5" name="OP_RandomReply" updated="12/06/22">
+ <opcode id="3dfe" name="OP_RandomReply" updated="12/08/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="4658" name="OP_ManaChange" updated="12/06/22">
+ <opcode id="2a0d" name="OP_ManaChange" updated="12/08/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="59d7" name="OP_BazaarSearchRequest" updated="12/06/22">
+ <opcode id="3764" name="OP_BazaarSearchRequest" updated="12/08/22">
<comment>Bazaar search request </comment>
<payload dir="client" typename="bazaarSearchQueryStruct" sizechecktype="none"/>
</opcode>
- <opcode id="6ca8" name="OP_BazaarSearchResponse" updated="12/06/22">
+ <opcode id="4925" name="OP_BazaarSearchResponse" updated="12/08/22">
<comment>Bazaar search Response - Struct incorrect </comment>
<payload dir="server" typename="bazaarSearchResponseStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="38c3" name="OP_MoneyOnCorpse" updated="12/06/22">
+ <opcode id="4f39" name="OP_MoneyOnCorpse" updated="12/08/22">
<comment>MoneyOnCorpseCode</comment>
<payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/>
</opcode>
- <opcode id="420e" name="OP_SkillUpdate" updated="12/06/22">
+ <opcode id="68f3" name="OP_SkillUpdate" updated="12/08/22">
<comment>Skill up code</comment>
<payload dir="server" typename="skillIncStruct" sizechecktype="match"/>
</opcode>
- <opcode id="59d6" name="OP_LevelUpdate" updated="12/06/22">
+ <opcode id="7300" name="OP_LevelUpdate" updated="12/08/22">
<comment>LevelUpUpdateCode</comment>
<payload dir="server" typename="levelUpUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="599e" name="OP_DzSwitchInfo" updated="12/06/22">
+ <opcode id="1d43" name="OP_DzSwitchInfo" updated="12/08/22">
<comment>Expedition compass etc</comment>
<payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/>
</opcode>
- <opcode id="5e28" name="OP_DzInfo" updated="12/06/22">
+ <opcode id="17b6" name="OP_DzInfo" updated="12/08/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="13e3" name="OP_SetRunMode" updated="12/06/22">
+ <opcode id="1d40" name="OP_SetRunMode" updated="12/08/22">
<comment>old cRunToggleCode</comment>
<payload dir="client" typename="cRunToggleStruct" sizechecktype="match"/>
</opcode>
- <opcode id="311f" name="OP_Trader" updated="12/06/22">
+ <opcode id="0700" name="OP_Trader" updated="12/08/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="5c91" name="OP_GuildMemberList" updated="12/06/22">
+ <opcode id="1dd6" name="OP_GuildMemberList" updated="12/08/22">
<comment>List of guild members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="0eab" name="OP_ManaUpdate" updated="12/06/22">
+ <opcode id="72ef" name="OP_ManaUpdate" updated="12/08/22">
<comment>Mana Update opcode - 10 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="5472" name="OP_EndUpdate" updated="12/06/22">
+ <opcode id="1a74" name="OP_EndUpdate" updated="12/08/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="6335" name="OP_ExpandedGuildInfo" updated="12/06/22">
+ <opcode id="6f96" name="OP_ExpandedGuildInfo" updated="12/08/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="3da5" name="OP_GuildsInZoneList" updated="12/06/22">
+ <opcode id="259b" name="OP_GuildsInZoneList" updated="12/08/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="773e" name="OP_NewGuildInZone" updated="12/06/22">
+ <opcode id="6bd2" name="OP_NewGuildInZone" updated="12/08/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="53bb" name="OP_Find" updated="12/06/22">
+ <opcode id="2a48" name="OP_Find" updated="12/08/22">
<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 2022-12-09 17:04:27 UTC (rev 1331)
+++ showeq/branches/cn187_devel/configure.in 2022-12-09 17:13:07 UTC (rev 1332)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 6.2.12)
+AC_INIT(showeq, 6.2.16)
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 2022-12-09 17:04:27 UTC (rev 1331)
+++ showeq/branches/cn187_devel/src/everquest.h 2022-12-09 17:13:07 UTC (rev 1332)
@@ -1115,26 +1115,24 @@
struct
{
- signed y:19; // y coord (2nd loc value)
- signed deltaHeading:10; // change in heading
- unsigned padding00:3;
-
+ unsigned heading:12; // heading
signed deltaZ:13; // change in z
- signed deltaX:13; // change in x
- unsigned padding01:6;
+ unsigned padding00:7;
- signed z:19; // z coord (3rd loc value)
+ signed x:19; // x coord (1st loc value)
unsigned pitch:12; // pitch (up/down heading)
- unsigned padding02:1;
+ unsigned padding01:1;
- signed x:19; // x coord (1st loc value)
- unsigned heading:12; // heading
- unsigned padding03:1;
+ signed deltaX:13; // change in x
+ signed z:19; // z coord (3rd loc value)
- signed deltaY:13; // change in y
signed animation:10; // current animation
- unsigned padding04:9;
+ signed deltaHeading:10; // change in heading
+ unsigned padding03:12;
+ signed y:19; // y coord (2nd loc value)
+ signed deltaY:13; // change in y
+
};
int32_t posData[5];
};
@@ -2393,31 +2391,29 @@
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
/*0004*/
- signed y:19; // y coord (2nd loc value)
- signed deltaHeading:10; // change in heading
- unsigned padding00:3;
+ unsigned heading:12; // heading
+ signed deltaZ:13; // change in z
+ unsigned padding00:7;
/*0008*/
- signed deltaZ:13; // change in z
+ signed x:19; // x coord (1st loc value)
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding01:1;
+/*0012*/
signed deltaX:13; // change in x
- unsigned padding01:6;
-/*0012*/
signed z:19; // z coord (3rd loc value)
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding02:1;
/*0016*/
- signed x:19; // x coord (1st loc value)
- unsigned heading:12; // heading
- unsigned padding03:1;
+ signed animation:10; // current animation
+ signed deltaHeading:10; // change in heading
+ unsigned padding03:12;
/*0020*/
+ signed y:19; // y coord (2nd loc value)
signed deltaY:13; // change in y
- signed animation:10; // current animation
- unsigned padding04:9;
/*0024*/
};
/*
** Self Position Update
-** Length: 38 Octets
+** Length: 46 Octets
** OpCode: PlayerPosCode
*/
struct playerSelfPosStruct
@@ -2426,28 +2422,30 @@
/*0002*/ uint16_t spawnId; // Player's spawn id
/*0004*/ uint16_t unknown0004; // ***Placeholder
/*0006*/
- float deltaX; // change in x
+ float z; // z coord (3rd loc value)
/*0010*/
- float deltaY; // change in y
+ unsigned heading:12; // heading
+ unsigned padding01:20;
/*0014*/
- unsigned heading:12; // heading
- unsigned padding07:20;
+ float deltaZ; // change in z
/*0018*/
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding03:20;
+/*0022*/
float x; // x coord (1st loc value)
-/*0022*/
+/*0026*/
signed animation:10; // current animation
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding22:10;
-/*0026*/
- float deltaZ; // change in z
+ unsigned padding5:22;
/*0030*/
- float z; // z coord (3rd loc value)
+ float y; // y coord (2nd loc value)
/*0034*/
- signed deltaHeading:10; // change in heading
- unsigned padding34:22;
+ float deltaY; // change in y
/*0038*/
- float y; // y coord (2nd loc value)
+ float deltaX; // change in x
/*0042*/
+ signed deltaHeading:10; // change in heading
+ unsigned padding9:22;
+/*0046*/
};
/*
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2022-12-09 17:04:29
|
Revision: 1331
http://sourceforge.net/p/seq/svn/1331
Author: cn187
Date: 2022-12-09 17:04:27 +0000 (Fri, 09 Dec 2022)
Log Message:
-----------
Create tag v6_2_16
Added Paths:
-----------
showeq/tags/v6_2_16/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2022-12-09 17:02:25
|
Revision: 1330
http://sourceforge.net/p/seq/svn/1330
Author: cn187
Date: 2022-12-09 17:02:22 +0000 (Fri, 09 Dec 2022)
Log Message:
-----------
Release 6.2.16
- Update to version 6.2.16
- Support for EQ Patch 12/08/22
- Struct and opcode updates (Newby, cn187)
- Simplicfication of aura/ldon fix (Newby)
- Add some missing NPC classes (xerces, cn187)
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 2022-12-08 05:36:34 UTC (rev 1329)
+++ showeq/trunk/ChangeLog 2022-12-09 17:02:22 UTC (rev 1330)
@@ -1,3 +1,11 @@
+cn187 (12/08/22)
+----------------
+- Update to version 6.2.16
+- Support for EQ Patch 12/08/22
+- Struct and opcode updates (Newby, cn187)
+- Simplicfication of aura/ldon fix (Newby)
+- Add some missing NPC classes (xerces, cn187)
+
cn187 (12/06/22)
----------------
- Update to version 6.2.15
Modified: showeq/trunk/conf/zoneopcodes.xml
===================================================================
--- showeq/trunk/conf/zoneopcodes.xml 2022-12-08 05:36:34 UTC (rev 1329)
+++ showeq/trunk/conf/zoneopcodes.xml 2022-12-09 17:02:22 UTC (rev 1330)
@@ -3,127 +3,127 @@
<seqopcodes>
<!-- Critical opcodes used directly by ShowEQ -->
- <opcode id="18bd" name="OP_PlayerProfile" updated="12/06/22">
+ <opcode id="6daf" name="OP_PlayerProfile" updated="12/08/22">
<comment>CharProfileCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="1bf9" name="OP_ZoneEntry" updated="12/06/22">
+ <opcode id="7192" name="OP_ZoneEntry" updated="12/08/22">
<comment>ZoneEntryCode</comment>
<payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="7fbb" name="OP_TimeOfDay" updated="12/06/22">
+ <opcode id="1cd4" name="OP_TimeOfDay" updated="12/08/22">
<comment>TimeOfDayCode</comment>
<payload dir="server" typename="timeOfDayStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1b34" name="OP_NewZone" updated="12/06/22">
+ <opcode id="48a4" name="OP_NewZone" updated="12/08/22">
<comment>NewZoneCode</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="612d" name="OP_SpawnDoor" updated="12/06/22">
+ <opcode id="7187" name="OP_SpawnDoor" updated="12/08/22">
<comment>DoorSpawnsCode</comment>
<payload dir="server" typename="doorStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="0f40" name="OP_GroundSpawn" updated="12/06/22">
+ <opcode id="1d06" name="OP_GroundSpawn" updated="12/08/22">
<comment>MakeDropCode</comment>
<payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="550f" name="OP_SendZonePoints" updated="12/06/22">
+ <opcode id="3d86" name="OP_SendZonePoints" updated="12/08/22">
<comment>Coords in a zone that will port you to another zone</comment>
<payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
</opcode>
- <opcode id="63d8" name="OP_AAExpUpdate" updated="12/06/22">
+ <opcode id="0971" name="OP_AAExpUpdate" updated="12/08/22">
<comment>Receiving AA experience. Also when percent to AA changes.</comment>
<payload dir="server" typename="altExpUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="26d3" name="OP_ExpUpdate" updated="12/06/22">
+ <opcode id="3e6f" name="OP_ExpUpdate" updated="12/08/22">
<comment>ExpUpdateCode</comment>
<payload dir="server" typename="expUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6c08" name="OP_GuildMOTD" updated="12/06/22">
+ <opcode id="5c10" name="OP_GuildMOTD" updated="12/08/22">
<comment>GuildMOTD</comment>
<payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
</opcode>
- <opcode id="6658" name="OP_ClientUpdate" updated="12/06/22">
+ <opcode id="0767" name="OP_ClientUpdate" updated="12/08/22">
<comment>Position updates</comment>
<payload dir="server" typename="playerSpawnPosStruct" sizechecktype="match"/>
<payload dir="both" typename="playerSelfPosStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5788" name="OP_NpcMoveUpdate" updated="12/06/22">
+ <opcode id="5f74" name="OP_NpcMoveUpdate" updated="12/08/22">
<comment>Position updates</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="39af" name="OP_MobUpdate" updated="12/06/22">
+ <opcode id="768c" name="OP_MobUpdate" updated="12/08/22">
<comment>MobUpdateCode</comment>
<payload dir="both" typename="spawnPositionUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="2dfe" name="OP_DeleteSpawn" updated="12/06/22">
+ <opcode id="6855" name="OP_DeleteSpawn" updated="12/08/22">
<comment>DeleteSpawnCode</comment>
<payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
</opcode>
- <opcode id="39b6" name="OP_RemoveSpawn" updated="12/06/22">
+ <opcode id="4be2" name="OP_RemoveSpawn" updated="12/08/22">
<comment>Remove spawn from zone</comment>
<payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
</opcode>
- <opcode id="6e4f" name="OP_Death" updated="12/06/22">
+ <opcode id="35e1" name="OP_Death" updated="12/08/22">
<comment>old NewCorpseCode</comment>
<payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
</opcode>
- <opcode id="7cfb" name="OP_WearChange" updated="12/06/22">
+ <opcode id="0349" name="OP_WearChange" updated="12/08/22">
<comment>SpawnUpdateCode</comment>
<payload dir="both" typename="SpawnUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="38ad" name="OP_SpawnAppearance" updated="12/06/22">
+ <opcode id="3883" name="OP_SpawnAppearance" updated="12/08/22">
<comment>SpawnAppearanceCode</comment>
<payload dir="both" typename="spawnAppearanceStruct" sizechecktype="match"/>
</opcode>
- <opcode id="00f6" name="OP_Stamina" updated="12/06/22">
+ <opcode id="31b1" name="OP_Stamina" updated="12/08/22">
<comment>Server updating on hunger/thirst</comment>
<payload dir="server" typename="staminaStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0981" name="OP_HPUpdate" updated="12/06/22">
+ <opcode id="281f" name="OP_HPUpdate" updated="12/08/22">
<comment>NpcHpUpdateCode Update HP % of a PC or NPC</comment>
<payload dir="both" typename="hpNpcUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="52dd" name="OP_GuildMemberUpdate" updated="12/06/22">
+ <opcode id="5390" name="OP_GuildMemberUpdate" updated="12/08/22">
<comment>Info regarding guild members</comment>
<payload dir="server" typename="GuildMemberUpdate" sizechecktype="match"/>
</opcode>
- <opcode id="0a1d" name="OP_ClickObject" updated="12/06/22">
+ <opcode id="4339" name="OP_ClickObject" updated="12/08/22">
<comment>Items dropped on the ground</comment>
<payload dir="both" typename="remDropStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1512" name="OP_Action" updated="12/06/22">
+ <opcode id="6979" name="OP_Action" updated="12/08/22">
<comment>Spells cast etc</comment>
<payload dir="both" typename="actionStruct" sizechecktype="match"/>
<payload dir="both" typename="actionAltStruct" sizechecktype="match"/>
</opcode>
- <opcode id="4f25" name="OP_Action2" updated="12/06/22">
+ <opcode id="4782" name="OP_Action2" updated="12/08/22">
<comment>Combat actions i.e. bash, kick etc</comment>
<payload dir="both" typename="action2Struct" sizechecktype="match"/>
</opcode>
- <opcode id="0727" name="OP_Consider" updated="12/06/22">
+ <opcode id="0602" name="OP_Consider" updated="12/08/22">
<comment>ConsiderCode</comment>
<payload dir="both" typename="considerStruct" sizechecktype="match"/>
</opcode>
- <opcode id="0d34" name="OP_TargetMouse" updated="12/06/22">
+ <opcode id="0a08" name="OP_TargetMouse" updated="12/08/22">
<comment>Targeting a person - old ClientTargetCode</comment>
<payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6af8" name="OP_SpawnRename" updated="12/06/22">
+ <opcode id="3056" name="OP_SpawnRename" updated="12/08/22">
<comment>Spawns getting renamed after initial NewSpawn</comment>
<payload dir="server" typename="spawnRenameStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1091" name="OP_Illusion" updated="12/06/22">
+ <opcode id="5d3a" name="OP_Illusion" updated="12/08/22">
<comment>Spawn being illusioned (changing forms)</comment>
<payload dir="both" typename="spawnIllusionStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1cdf" name="OP_Shroud" updated="12/06/22">
+ <opcode id="62bc" name="OP_Shroud" updated="12/08/22">
<comment>Server putting players into shroud form</comment>
<payload dir="server" typename="spawnShroudSelf" sizechecktype="none"/>
</opcode>
- <opcode id="3b51" name="OP_ZoneChange" updated="12/06/22">
+ <opcode id="3c54" name="OP_ZoneChange" updated="12/08/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="1e9e" name="OP_Buff" updated="12/06/22">
+ <opcode id="03db" name="OP_Buff" updated="12/08/22">
<comment>old BuffDropCode</comment>
<payload dir="both" typename="buffStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5ea8" name="OP_BeginCast" updated="12/06/22">
+ <opcode id="62af" name="OP_BeginCast" updated="12/08/22">
<comment>BeginCastCode</comment>
<payload dir="both" typename="beginCastStruct" sizechecktype="match"/>
</opcode>
- <opcode id="44d8" name="OP_CastSpell" updated="12/06/22">
+ <opcode id="1d80" name="OP_CastSpell" updated="12/08/22">
<comment>StartCastCode</comment>
<payload dir="both" typename="startCastStruct" sizechecktype="match"/>
</opcode>
- <opcode id="1363" name="OP_SwapSpell" updated="12/06/22">
+ <opcode id="1736" name="OP_SwapSpell" updated="12/08/22">
<comment>TradeSpellBookSlotsCode</comment>
<payload dir="both" typename="tradeSpellBookSlotsStruct" sizechecktype="match"/>
</opcode>
- <opcode id="3cfc" name="OP_MemorizeSpell" updated="12/06/22">
+ <opcode id="46b7" name="OP_MemorizeSpell" updated="12/08/22">
<comment>MemSpellCode</comment>
<payload dir="both" typename="memSpellStruct" sizechecktype="match"/>
</opcode>
- <opcode id="3bef" name="OP_InspectAnswer" updated="12/06/22">
+ <opcode id="2283" name="OP_InspectAnswer" updated="12/08/22">
<comment>InspectDataCode</comment>
<payload dir="both" typename="inspectDataStruct" sizechecktype="match"/>
</opcode>
- <opcode id="6602" name="OP_Emote" updated="12/06/22">
+ <opcode id="17bb" name="OP_Emote" updated="12/08/22">
<comment>EmoteTextCode</comment>
<payload dir="both" typename="emoteTextStruct" sizechecktype="none"/>
</opcode>
- <opcode id="0d76" name="OP_SimpleMessage" updated="12/06/22">
+ <opcode id="6e7c" name="OP_SimpleMessage" updated="12/08/22">
<comment>SimpleMessageCode</comment>
<payload dir="server" typename="simpleMessageStruct" sizechecktype="match"/>
</opcode>
- <opcode id="25c2" name="OP_FormattedMessage" updated="12/06/22">
+ <opcode id="7590" name="OP_FormattedMessage" updated="12/08/22">
<comment>FormattedMessageCode i.e. pet dismissed etc</comment>
<payload dir="server" typename="formattedMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="05e7" name="OP_CommonMessage" updated="12/06/22">
+ <opcode id="6885" name="OP_CommonMessage" updated="12/08/22">
<comment>ChannelMessageCode i.e. /tell /ooc /shout etc</comment>
<payload dir="both" typename="channelMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="0107" name="OP_SpecialMesg" updated="12/06/22">
+ <opcode id="72b8" name="OP_SpecialMesg" updated="12/08/22">
<comment>Communicate textual info to client including hail responses etc</comment>
<payload dir="server" typename="specialMessageStruct" sizechecktype="none"/>
</opcode>
- <opcode id="7f13" name="OP_RandomReq" updated="12/06/22">
+ <opcode id="7c52" name="OP_RandomReq" updated="12/08/22">
<comment>RandomReqCode</comment>
<payload dir="client" typename="randomReqStruct" sizechecktype="match"/>
</opcode>
- <opcode id="20b5" name="OP_RandomReply" updated="12/06/22">
+ <opcode id="3dfe" name="OP_RandomReply" updated="12/08/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="4658" name="OP_ManaChange" updated="12/06/22">
+ <opcode id="2a0d" name="OP_ManaChange" updated="12/08/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="59d7" name="OP_BazaarSearchRequest" updated="12/06/22">
+ <opcode id="3764" name="OP_BazaarSearchRequest" updated="12/08/22">
<comment>Bazaar search request </comment>
<payload dir="client" typename="bazaarSearchQueryStruct" sizechecktype="none"/>
</opcode>
- <opcode id="6ca8" name="OP_BazaarSearchResponse" updated="12/06/22">
+ <opcode id="4925" name="OP_BazaarSearchResponse" updated="12/08/22">
<comment>Bazaar search Response - Struct incorrect </comment>
<payload dir="server" typename="bazaarSearchResponseStruct" sizechecktype="modulus"/>
</opcode>
- <opcode id="38c3" name="OP_MoneyOnCorpse" updated="12/06/22">
+ <opcode id="4f39" name="OP_MoneyOnCorpse" updated="12/08/22">
<comment>MoneyOnCorpseCode</comment>
<payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/>
</opcode>
- <opcode id="420e" name="OP_SkillUpdate" updated="12/06/22">
+ <opcode id="68f3" name="OP_SkillUpdate" updated="12/08/22">
<comment>Skill up code</comment>
<payload dir="server" typename="skillIncStruct" sizechecktype="match"/>
</opcode>
- <opcode id="59d6" name="OP_LevelUpdate" updated="12/06/22">
+ <opcode id="7300" name="OP_LevelUpdate" updated="12/08/22">
<comment>LevelUpUpdateCode</comment>
<payload dir="server" typename="levelUpUpdateStruct" sizechecktype="match"/>
</opcode>
- <opcode id="599e" name="OP_DzSwitchInfo" updated="12/06/22">
+ <opcode id="1d43" name="OP_DzSwitchInfo" updated="12/08/22">
<comment>Expedition compass etc</comment>
<payload dir="server" typename="dzSwitchInfo" sizechecktype="none"/>
</opcode>
- <opcode id="5e28" name="OP_DzInfo" updated="12/06/22">
+ <opcode id="17b6" name="OP_DzInfo" updated="12/08/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="13e3" name="OP_SetRunMode" updated="12/06/22">
+ <opcode id="1d40" name="OP_SetRunMode" updated="12/08/22">
<comment>old cRunToggleCode</comment>
<payload dir="client" typename="cRunToggleStruct" sizechecktype="match"/>
</opcode>
- <opcode id="311f" name="OP_Trader" updated="12/06/22">
+ <opcode id="0700" name="OP_Trader" updated="12/08/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="5c91" name="OP_GuildMemberList" updated="12/06/22">
+ <opcode id="1dd6" name="OP_GuildMemberList" updated="12/08/22">
<comment>List of guild members - Variable length</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="0eab" name="OP_ManaUpdate" updated="12/06/22">
+ <opcode id="72ef" name="OP_ManaUpdate" updated="12/08/22">
<comment>Mana Update opcode - 10 bytes</comment>
<payload dir="server" typename="uint8_t" sizechecktype="none"/>
</opcode>
- <opcode id="5472" name="OP_EndUpdate" updated="12/06/22">
+ <opcode id="1a74" name="OP_EndUpdate" updated="12/08/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="6335" name="OP_ExpandedGuildInfo" updated="12/06/22">
+ <opcode id="6f96" name="OP_ExpandedGuildInfo" updated="12/08/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="3da5" name="OP_GuildsInZoneList" updated="12/06/22">
+ <opcode id="259b" name="OP_GuildsInZoneList" updated="12/08/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="773e" name="OP_NewGuildInZone" updated="12/06/22">
+ <opcode id="6bd2" name="OP_NewGuildInZone" updated="12/08/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="53bb" name="OP_Find" updated="12/06/22">
+ <opcode id="2a48" name="OP_Find" updated="12/08/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-08 05:36:34 UTC (rev 1329)
+++ showeq/trunk/configure.in 2022-12-09 17:02:22 UTC (rev 1330)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 6.2.15)
+AC_INIT(showeq, 6.2.16)
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-08 05:36:34 UTC (rev 1329)
+++ showeq/trunk/src/everquest.h 2022-12-09 17:02:22 UTC (rev 1330)
@@ -1113,26 +1113,24 @@
struct
{
- signed y:19; // y coord (2nd loc value)
- signed deltaHeading:10; // change in heading
- unsigned padding00:3;
-
+ unsigned heading:12; // heading
signed deltaZ:13; // change in z
- signed deltaX:13; // change in x
- unsigned padding01:6;
+ unsigned padding00:7;
- signed z:19; // z coord (3rd loc value)
+ signed x:19; // x coord (1st loc value)
unsigned pitch:12; // pitch (up/down heading)
- unsigned padding02:1;
+ unsigned padding01:1;
- signed x:19; // x coord (1st loc value)
- unsigned heading:12; // heading
- unsigned padding03:1;
+ signed deltaX:13; // change in x
+ signed z:19; // z coord (3rd loc value)
- signed deltaY:13; // change in y
signed animation:10; // current animation
- unsigned padding04:9;
+ signed deltaHeading:10; // change in heading
+ unsigned padding03:12;
+ signed y:19; // y coord (2nd loc value)
+ signed deltaY:13; // change in y
+
};
int32_t posData[5];
};
@@ -2391,31 +2389,29 @@
/*0000*/ uint16_t spawnId;
/*0002*/ uint16_t spawnId2;
/*0004*/
- signed y:19; // y coord (2nd loc value)
- signed deltaHeading:10; // change in heading
- unsigned padding00:3;
+ unsigned heading:12; // heading
+ signed deltaZ:13; // change in z
+ unsigned padding00:7;
/*0008*/
- signed deltaZ:13; // change in z
+ signed x:19; // x coord (1st loc value)
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding01:1;
+/*0012*/
signed deltaX:13; // change in x
- unsigned padding01:6;
-/*0012*/
signed z:19; // z coord (3rd loc value)
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding02:1;
/*0016*/
- signed x:19; // x coord (1st loc value)
- unsigned heading:12; // heading
- unsigned padding03:1;
+ signed animation:10; // current animation
+ signed deltaHeading:10; // change in heading
+ unsigned padding03:12;
/*0020*/
+ signed y:19; // y coord (2nd loc value)
signed deltaY:13; // change in y
- signed animation:10; // current animation
- unsigned padding04:9;
/*0024*/
};
/*
** Self Position Update
-** Length: 38 Octets
+** Length: 46 Octets
** OpCode: PlayerPosCode
*/
struct playerSelfPosStruct
@@ -2424,28 +2420,30 @@
/*0002*/ uint16_t spawnId; // Player's spawn id
/*0004*/ uint16_t unknown0004; // ***Placeholder
/*0006*/
- float deltaX; // change in x
+ float z; // z coord (3rd loc value)
/*0010*/
- float deltaY; // change in y
+ unsigned heading:12; // heading
+ unsigned padding01:20;
/*0014*/
- unsigned heading:12; // heading
- unsigned padding07:20;
+ float deltaZ; // change in z
/*0018*/
+ unsigned pitch:12; // pitch (up/down heading)
+ unsigned padding03:20;
+/*0022*/
float x; // x coord (1st loc value)
-/*0022*/
+/*0026*/
signed animation:10; // current animation
- unsigned pitch:12; // pitch (up/down heading)
- unsigned padding22:10;
-/*0026*/
- float deltaZ; // change in z
+ unsigned padding5:22;
/*0030*/
- float z; // z coord (3rd loc value)
+ float y; // y coord (2nd loc value)
/*0034*/
- signed deltaHeading:10; // change in heading
- unsigned padding34:22;
+ float deltaY; // change in y
/*0038*/
- float y; // y coord (2nd loc value)
+ float deltaX; // change in x
/*0042*/
+ signed deltaHeading:10; // change in heading
+ unsigned padding9:22;
+/*0046*/
};
/*
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2022-12-08 05:36:36
|
Revision: 1329
http://sourceforge.net/p/seq/svn/1329
Author: cn187
Date: 2022-12-08 05:36:34 +0000 (Thu, 08 Dec 2022)
Log Message:
-----------
Add missing NPC classes
Modified Paths:
--------------
showeq/branches/cn187_devel/src/classes.h
Modified: showeq/branches/cn187_devel/src/classes.h
===================================================================
--- showeq/branches/cn187_devel/src/classes.h 2022-12-08 05:36:02 UTC (rev 1328)
+++ showeq/branches/cn187_devel/src/classes.h 2022-12-08 05:36:34 UTC (rev 1329)
@@ -89,5 +89,12 @@
"Guild Tribute Master", // 64
NULL, // 65
"Guild Banker", // 66
+ "Norrath's Keepers Merchant", // 67
+ "Dark Reign Merchant", // 68
+ "Fellowship Registrar", //69
+ "Alt Currency Merchant", // 70
+ "Mercenary Liaison", // 71
+ NULL, // 72
+ "Loyalist Merchant", // 73
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2022-12-08 05:36:05
|
Revision: 1328
http://sourceforge.net/p/seq/svn/1328
Author: cn187
Date: 2022-12-08 05:36:02 +0000 (Thu, 08 Dec 2022)
Log Message:
-----------
Add missing NPC races
Modified Paths:
--------------
showeq/trunk/src/classes.h
Modified: showeq/trunk/src/classes.h
===================================================================
--- showeq/trunk/src/classes.h 2022-12-07 15:50:04 UTC (rev 1327)
+++ showeq/trunk/src/classes.h 2022-12-08 05:36:02 UTC (rev 1328)
@@ -89,5 +89,12 @@
"Guild Tribute Master", // 64
NULL, // 65
"Guild Banker", // 66
+ "Norrath's Keepers Merchant", // 67
+ "Dark Reign Merchant", // 68
+ "Fellowship Registrar", //69
+ "Alt Currency Merchant", // 70
+ "Mercenary Liaison", // 71
+ NULL, // 72
+ "Loyalist Merchant", // 73
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2022-12-07 15:50:09
|
Revision: 1327
http://sourceforge.net/p/seq/svn/1327
Author: cn187
Date: 2022-12-07 15:50:04 +0000 (Wed, 07 Dec 2022)
Log Message:
-----------
Cleanup/simplification of aura/ldon fix. (Thanks Newby)
Modified Paths:
--------------
showeq/trunk/src/spawnshell.cpp
Modified: showeq/trunk/src/spawnshell.cpp
===================================================================
--- showeq/trunk/src/spawnshell.cpp 2022-12-07 15:49:19 UTC (rev 1326)
+++ showeq/trunk/src/spawnshell.cpp 2022-12-07 15:50:04 UTC (rev 1327)
@@ -690,13 +690,6 @@
netStream.readText();
netStream.readText();
netStream.skipBytes(50); // and 50 static bytes
-
- //the next byte indicates how many DWORDs to skip, and
- //includes the DWORD that the byte is part of
- uint8_t skip = netStream.readUInt8();
- netStream.skipBytes(3); //to complete DWORD
- --skip; //we just skipped the first dword
- netStream.skipBytes(skip * sizeof(uint32_t));
}
spawn->charProperties = netStream.readUInt8();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2022-12-07 15:49:25
|
Revision: 1326
http://sourceforge.net/p/seq/svn/1326
Author: cn187
Date: 2022-12-07 15:49:19 +0000 (Wed, 07 Dec 2022)
Log Message:
-----------
Cleanup/simplification of aura/ldon fix. (Thanks Newby)
Modified Paths:
--------------
showeq/branches/cn187_devel/src/spawnshell.cpp
Modified: showeq/branches/cn187_devel/src/spawnshell.cpp
===================================================================
--- showeq/branches/cn187_devel/src/spawnshell.cpp 2022-12-07 00:05:39 UTC (rev 1325)
+++ showeq/branches/cn187_devel/src/spawnshell.cpp 2022-12-07 15:49:19 UTC (rev 1326)
@@ -698,13 +698,6 @@
netStream.readText();
netStream.readText();
netStream.skipBytes(50); // and 50 static bytes
-
- //the next byte indicates how many DWORDs to skip, and
- //includes the DWORD that the byte is part of
- uint8_t skip = netStream.readUInt8();
- netStream.skipBytes(3); //to complete DWORD
- --skip; //we just skipped the first dword
- netStream.skipBytes(skip * sizeof(uint32_t));
}
spawn->charProperties = netStream.readUInt8();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2022-12-07 00:05:41
|
Revision: 1325
http://sourceforge.net/p/seq/svn/1325
Author: cn187
Date: 2022-12-07 00:05:39 +0000 (Wed, 07 Dec 2022)
Log Message:
-----------
Tag for release 6.2.15
Added Paths:
-----------
showeq/tags/v6_2_15/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2022-12-07 00:05:16
|
Revision: 1324
http://sourceforge.net/p/seq/svn/1324
Author: cn187
Date: 2022-12-07 00:05:14 +0000 (Wed, 07 Dec 2022)
Log Message:
-----------
Delete messed up tags
Removed Paths:
-------------
showeq/tags/v6.2.15/
showeq/tags/v6_2_15/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2022-12-06 23:54:58
|
Revision: 1323
http://sourceforge.net/p/seq/svn/1323
Author: cn187
Date: 2022-12-06 23:54:56 +0000 (Tue, 06 Dec 2022)
Log Message:
-----------
Silence struct size warnings for OP_Illusion and OP_WearChange
Modified Paths:
--------------
showeq/branches/cn187_devel/src/everquest.h
Modified: showeq/branches/cn187_devel/src/everquest.h
===================================================================
--- showeq/branches/cn187_devel/src/everquest.h 2022-12-06 23:54:13 UTC (rev 1322)
+++ showeq/branches/cn187_devel/src/everquest.h 2022-12-06 23:54:56 UTC (rev 1323)
@@ -1541,7 +1541,7 @@
/*0075*/ uint8_t unknown0075; // ***Placeholder
/*0076*/ uint32_t unknown0076; // ***Placeholder
/*0080*/ uint32_t face; // New face
-/*0084*/ uint8_t unknown0084[252]; // ***Placeholder
+/*0084*/ uint8_t unknown0084[248]; // ***Placeholder
/*0336*/
};
@@ -2295,7 +2295,7 @@
/*0004*/ int16_t arg1; // first option
/*0006*/ int16_t arg2; // second option
/*0008*/ uint8_t arg3; // third option?
-/*0009*/ uint8_t unknown0009[18];
+/*0009*/ uint8_t unknown0009[23];
/*0027*/
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2022-12-06 23:54:15
|
Revision: 1322
http://sourceforge.net/p/seq/svn/1322
Author: cn187
Date: 2022-12-06 23:54:13 +0000 (Tue, 06 Dec 2022)
Log Message:
-----------
Silence struct size warnings for OP_Illusion and OP_WearChange
Modified Paths:
--------------
showeq/trunk/src/everquest.h
Modified: showeq/trunk/src/everquest.h
===================================================================
--- showeq/trunk/src/everquest.h 2022-12-06 23:32:34 UTC (rev 1321)
+++ showeq/trunk/src/everquest.h 2022-12-06 23:54:13 UTC (rev 1322)
@@ -1539,7 +1539,7 @@
/*0075*/ uint8_t unknown0075; // ***Placeholder
/*0076*/ uint32_t unknown0076; // ***Placeholder
/*0080*/ uint32_t face; // New face
-/*0084*/ uint8_t unknown0084[252]; // ***Placeholder
+/*0084*/ uint8_t unknown0084[248]; // ***Placeholder
/*0336*/
};
@@ -2293,7 +2293,7 @@
/*0004*/ int16_t arg1; // first option
/*0006*/ int16_t arg2; // second option
/*0008*/ uint8_t arg3; // third option?
-/*0009*/ uint8_t unknown0009[18];
+/*0009*/ uint8_t unknown0009[23];
/*0027*/
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2022-12-06 23:32:39
|
Revision: 1321
http://sourceforge.net/p/seq/svn/1321
Author: cn187
Date: 2022-12-06 23:32:34 +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
Modified Paths:
--------------
showeq/branches/cn187_devel/ChangeLog
showeq/branches/cn187_devel/conf/zoneopcodes.xml
showeq/branches/cn187_devel/src/everquest.h
Modified: showeq/branches/cn187_devel/ChangeLog
===================================================================
--- showeq/branches/cn187_devel/ChangeLog 2022-12-06 23:28:06 UTC (rev 1320)
+++ showeq/branches/cn187_devel/ChangeLog 2022-12-06 23:32:34 UTC (rev 1321)
@@ -1,3 +1,9 @@
+cn187 (12/06/22)
+----------------
+- Update to version 6.2.15
+- Support EQ Patch 12/06/22
+- Struct and opcode updates
+
BlueAdept (11/17/22)
----------------
- Update to version 6.2.12
Modified: showeq/branches/cn187_devel/conf/zoneopcodes.xml
===================================================================
--- showeq/branches/cn187_devel/conf/zoneopcodes.xml 2022-12-06 23:28:06 UTC (rev 1320)
+++ showeq/branches/cn187_devel/conf/zoneopcodes.xml 2022-12-06 23:32:34 UTC (rev 1321)
@@ -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/branches/cn187_devel/src/everquest.h
===================================================================
--- showeq/branches/cn187_devel/src/everquest.h 2022-12-06 23:28:06 UTC (rev 1320)
+++ showeq/branches/cn187_devel/src/everquest.h 2022-12-06 23:32:34 UTC (rev 1321)
@@ -1115,25 +1115,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];
@@ -2393,25 +2393,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*/
};
@@ -2426,25 +2426,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*/
};
/*
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2022-12-06 23:28:08
|
Revision: 1320
http://sourceforge.net/p/seq/svn/1320
Author: cn187
Date: 2022-12-06 23:28:06 +0000 (Tue, 06 Dec 2022)
Log Message:
-----------
Tag for release 6.2.15
Added Paths:
-----------
showeq/tags/v6_2_15/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2022-12-06 23:23:16
|
Revision: 1319
http://sourceforge.net/p/seq/svn/1319
Author: cn187
Date: 2022-12-06 23:23:14 +0000 (Tue, 06 Dec 2022)
Log Message:
-----------
Tag for release 6.2.15
Added Paths:
-----------
showeq/tags/v6.2.15/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
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.
|
|
From: <cn...@us...> - 2022-12-05 01:09:25
|
Revision: 1317
http://sourceforge.net/p/seq/svn/1317
Author: cn187
Date: 2022-12-05 01:09:24 +0000 (Mon, 05 Dec 2022)
Log Message:
-----------
Fix rest of issue saving/restoring messag filter visibility
Modified Paths:
--------------
showeq/branches/cn187_devel/src/xmlconv.cpp
showeq/branches/cn187_devel/src/xmlpreferences.cpp
Modified: showeq/branches/cn187_devel/src/xmlconv.cpp
===================================================================
--- showeq/branches/cn187_devel/src/xmlconv.cpp 2022-12-04 19:51:14 UTC (rev 1316)
+++ showeq/branches/cn187_devel/src/xmlconv.cpp 2022-12-05 01:09:24 UTC (rev 1317)
@@ -339,10 +339,10 @@
e.setTagName("int64");
QString val;
#if (QT_VERSION >= QT_VERSION_CHECK(5,5,0))
- val = QString::asprintf("%0.16x", v.toLongLong());
+ val = QString::asprintf("%0.16llx", v.toLongLong());
#else
val = v.toLongLong();
- val.sprintf("%0.16x", v.toLongLong());
+ val.sprintf("%0.16llx", v.toLongLong());
#endif
e.setAttribute("value", val);
break;
@@ -353,10 +353,10 @@
e.setTagName("uint64");
QString val;
#if (QT_VERSION >= QT_VERSION_CHECK(5,5,0))
- val = QString::asprintf("%0.16x", v.toULongLong());
+ val = QString::asprintf("%0.16llx", v.toULongLong());
#else
val = v.toULongLong();
- val.sprintf("%0.16x", v.toULongLong());
+ val.sprintf("%0.16llx", v.toULongLong());
#endif
e.setAttribute("value", val);
break;
Modified: showeq/branches/cn187_devel/src/xmlpreferences.cpp
===================================================================
--- showeq/branches/cn187_devel/src/xmlpreferences.cpp 2022-12-04 19:51:14 UTC (rev 1316)
+++ showeq/branches/cn187_devel/src/xmlpreferences.cpp 2022-12-05 01:09:24 UTC (rev 1317)
@@ -903,7 +903,7 @@
Persistence pers)
{
QVariant tmp;
- tmp.setValue(inValue);
+ tmp.setValue((qlonglong)inValue);
setPref(inName, inSection, tmp, pers);
}
@@ -914,7 +914,7 @@
Persistence pers)
{
QVariant tmp;
- tmp.setValue(inValue);
+ tmp.setValue((qulonglong)inValue);
setPref(inName, inSection, tmp, pers);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2022-12-04 19:51:15
|
Revision: 1316
http://sourceforge.net/p/seq/svn/1316
Author: cn187
Date: 2022-12-04 19:51:14 +0000 (Sun, 04 Dec 2022)
Log Message:
-----------
Fix prefs issues with saving/restoring/toggling message filters
Modified Paths:
--------------
showeq/branches/cn187_devel/src/interface.cpp
showeq/branches/cn187_devel/src/xmlconv.cpp
showeq/branches/cn187_devel/src/xmlpreferences.cpp
Modified: showeq/branches/cn187_devel/src/interface.cpp
===================================================================
--- showeq/branches/cn187_devel/src/interface.cpp 2022-11-30 03:49:18 UTC (rev 1315)
+++ showeq/branches/cn187_devel/src/interface.cpp 2022-12-04 19:51:14 UTC (rev 1316)
@@ -5536,6 +5536,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>();
@@ -5560,7 +5564,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);
}
}
@@ -5581,6 +5585,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>();
@@ -5627,6 +5635,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/branches/cn187_devel/src/xmlconv.cpp
===================================================================
--- showeq/branches/cn187_devel/src/xmlconv.cpp 2022-11-30 03:49:18 UTC (rev 1315)
+++ showeq/branches/cn187_devel/src/xmlconv.cpp 2022-12-04 19:51:14 UTC (rev 1316)
@@ -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.16x", v.toLongLong());
+#else
+ val = v.toLongLong();
+ val.sprintf("%0.16x", 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.16x", v.toULongLong());
+#else
+ val = v.toULongLong();
+ val.sprintf("%0.16x", 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/branches/cn187_devel/src/xmlpreferences.cpp
===================================================================
--- showeq/branches/cn187_devel/src/xmlpreferences.cpp 2022-11-30 03:49:18 UTC (rev 1315)
+++ showeq/branches/cn187_devel/src/xmlpreferences.cpp 2022-12-04 19:51:14 UTC (rev 1316)
@@ -750,31 +750,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;
}
@@ -798,24 +802,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!",
@@ -822,8 +826,11 @@
inName.toLatin1().data(), inSection.toLatin1().data(),
(unsigned long long)def,
preference->typeName());
- }
+ value=def;
+ break;
+ } //end switch
+
// return the key
return value;
}
@@ -895,9 +902,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(inValue);
+ setPref(inName, inSection, tmp, pers);
}
@@ -906,9 +913,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(inValue);
+ setPref(inName, inSection, tmp, pers);
}
void XMLPreferences::setPrefVariant(const QString& inName,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|