|
From: <iea...@us...> - 2010-02-20 23:01:53
|
Revision: 750
http://seq.svn.sourceforge.net/seq/?rev=750&view=rev
Author: ieatacid
Date: 2010-02-20 23:01:46 +0000 (Sat, 20 Feb 2010)
Log Message:
-----------
Fixed structs
+ Fixed code to handle serialized makeDrop struct
+ Added new item codes
+ Version to 5.13.10
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/main.cpp
showeq/trunk/src/spawnshell.cpp
showeq/trunk/src/weapons29.h
showeq/trunk/src/weapons2a.h
showeq/trunk/src/weapons2b.h
showeq/trunk/src/weapons2c.h
showeq/trunk/src/weapons2d.h
Modified: showeq/trunk/ChangeLog
===================================================================
--- showeq/trunk/ChangeLog 2009-12-25 19:12:20 UTC (rev 749)
+++ showeq/trunk/ChangeLog 2010-02-20 23:01:46 UTC (rev 750)
@@ -1,3 +1,10 @@
+ieatacid (2/20/09)
+-----------------
+- Updated version to 5.13.10
+- Fixed structs
+- Fixed code to handle serialized makeDrop struct
+- Added new item codes (uRit1u2CBBA=)
+
ieatacid (12/25/09)
-----------------
- Updated version to 5.13.9.1
Modified: showeq/trunk/conf/zoneopcodes.xml
===================================================================
--- showeq/trunk/conf/zoneopcodes.xml 2009-12-25 19:12:20 UTC (rev 749)
+++ showeq/trunk/conf/zoneopcodes.xml 2010-02-20 23:01:46 UTC (rev 750)
@@ -179,7 +179,7 @@
</opcode>
<opcode id="5C85" name="OP_GroundSpawn" updated="06/12/09">
<comment>old MakeDropCode</comment>
- <payload dir="server" typename="makeDropStruct" sizechecktype="match"/>
+ <payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
<payload dir="client" typename="uint8_t" sizechecktype="none"/>
</opcode>
<opcode id="0555" name="OP_ExpUpdate" updated="06/12/09">
Modified: showeq/trunk/configure.in
===================================================================
--- showeq/trunk/configure.in 2009-12-25 19:12:20 UTC (rev 749)
+++ showeq/trunk/configure.in 2010-02-20 23:01:46 UTC (rev 750)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 5.13.9.1)
+AC_INIT(showeq, 5.13.10.0)
AC_CONFIG_SRCDIR(src/main.cpp)
AC_CANONICAL_SYSTEM
Modified: showeq/trunk/src/everquest.h
===================================================================
--- showeq/trunk/src/everquest.h 2009-12-25 19:12:20 UTC (rev 749)
+++ showeq/trunk/src/everquest.h 2010-02-20 23:01:46 UTC (rev 750)
@@ -425,7 +425,7 @@
/*
** Buffs
-** Length: 28 Octets
+** Length: 32 Octets
** Used in:
** charProfileStruct(07012)
*/
@@ -435,13 +435,14 @@
/*0001*/ int8_t level; // Level of person who cast buff
/*0002*/ uint8_t unknown0002; //
/*0003*/ uint8_t unknown0003; //
-/*0004*/ int32_t spellid; // Spell
-/*0008*/ int32_t duration; // Time remaining in ticks
-/*0012*/ int32_t effect; // holds the dmg absorb amount on runes
-/*0016*/ uint8_t unknown0016[4]; // *** this might need to be swapped with playerId
-/*0020*/ uint32_t playerId; // Global id of caster (for wear off)
-/*0024*/ uint8_t unknown0024[4];
-/*0028*/
+/*0004*/ float unknown0004;
+/*0008*/ int32_t spellid; // Spell
+/*0012*/ int32_t duration; // Time remaining in ticks
+/*0016*/ int32_t effect; // holds the dmg absorb amount on runes
+/*0020*/ uint8_t unknown0020[4]; // *** this might need to be swapped with playerId
+/*0024*/ uint32_t playerId; // Global id of caster (for wear off)
+/*0028*/ uint8_t unknown0028[4];
+/*0032*/
};
@@ -1959,12 +1960,13 @@
/*0000*/ uint16_t target; // Target ID
/*0002*/ uint16_t source; // SourceID
/*0004*/ uint8_t level; // Caster level
-/*0005*/ uint8_t unknown0005[17]; // ***Placeholder
-/*0022*/ uint8_t type; // Casts, Falls, Bashes, etc...
-/*0023*/ int32_t damage; // Amount of Damage
-/*0027*/ int16_t spell; // SpellID
-/*0029*/ uint8_t unknown0029[2]; // ***Placeholder
-/*0031*/
+/*0005*/ uint8_t unknown0005[21]; // ***Placeholder
+/*0026*/ uint8_t type; // Casts, Falls, Bashes, etc...
+/*0027*/ int32_t damage; // Amount of Damage
+/*0031*/ uint8_t unknown0031[2];
+/*0033*/ int16_t spell; // SpellID
+/*0035*/ uint8_t unknown0035[2]; // ***Placeholder
+/*0037*/
};
// Starting with 2/21/2006, OP_Actions seem to come in pairs, duplicating
@@ -1975,14 +1977,15 @@
/*0000*/ uint16_t target; // Target ID
/*0002*/ uint16_t source; // SourceID
/*0004*/ uint8_t level; // Caster level
-/*0005*/ uint8_t unknown0005[17]; // ***Placeholder
-/*0022*/ uint8_t type; // Casts, Falls, Bashes, etc...
-/*0023*/ int32_t damage; // Amount of Damage
-/*0027*/ int16_t spell; // SpellID
-/*0029*/ uint8_t unknown0029[2]; // ***Placeholder
-/*0031*/ uint32_t unknown0031;
-/*0035*/ uint8_t unknown0035[21];
-/*0056*/
+/*0005*/ uint8_t unknown0005[21]; // ***Placeholder
+/*0026*/ uint8_t type; // Casts, Falls, Bashes, etc...
+/*0027*/ int32_t damage; // Amount of Damage
+/*0031*/ uint8_t unknown0031[2];
+/*0033*/ int16_t spell; // SpellID
+/*0035*/ uint8_t unknown0035[2]; // ***Placeholder
+/*0037*/ uint32_t unknown0037;
+/*0041*/ uint8_t unknown0041[23];
+/*0064*/
};
/*
@@ -2499,14 +2502,15 @@
{
/*0000*/ uint32_t spawnid; //spawn id
/*0004*/ uint8_t unknown0004[4];
-/*0008*/ uint32_t spellid; // spellid
-/*0012*/ uint32_t duration; // duration
-/*0016*/ uint8_t unknown0012[8];
-/*0024*/ uint32_t playerId; // Player id who cast the buff
-/*0028*/ uint8_t unknown0028[4];
-/*0032*/ uint32_t spellslot; // spellslot
-/*0036*/ uint32_t changetype; // 1=buff fading,2=buff duration
-/*0040*/
+/*0008*/ float unknown0008;
+/*0012*/ uint32_t spellid; // spellid
+/*0016*/ uint32_t duration; // duration
+/*0024*/ uint8_t unknown0024[8];
+/*0028*/ uint32_t playerId; // Player id who cast the buff
+/*0032*/ uint8_t unknown0032[4];
+/*0036*/ uint32_t spellslot; // spellslot
+/*0040*/ uint32_t changetype; // 1=buff fading,2=buff duration
+/*0044*/
};
/*
Modified: showeq/trunk/src/interface.cpp
===================================================================
--- showeq/trunk/src/interface.cpp 2009-12-25 19:12:20 UTC (rev 749)
+++ showeq/trunk/src/interface.cpp 2010-02-20 23:01:46 UTC (rev 750)
@@ -1949,7 +1949,7 @@
// connect the SpawnShell slots to Packet signals
m_packet->connect2("OP_GroundSpawn", SP_Zone, DIR_Server,
- "makeDropStruct", SZC_Match,
+ "makeDropStruct", SZC_None,
m_spawnShell, SLOT(newGroundItem(const uint8_t*, size_t, uint8_t)));
m_packet->connect2("OP_ClickObject", SP_Zone, DIR_Server,
"remDropStruct", SZC_Match,
Modified: showeq/trunk/src/main.cpp
===================================================================
--- showeq/trunk/src/main.cpp 2009-12-25 19:12:20 UTC (rev 749)
+++ showeq/trunk/src/main.cpp 2010-02-20 23:01:46 UTC (rev 750)
@@ -736,7 +736,7 @@
{
printf ("ShowEQ %s, released under the GPL.\n", VERSION);
printf (" SINS 0.5, released under the GPL.\n");
- printf ("All ShowEQ source code is Copyright (C) 2000-2005 by the respective ShowEQ Developers\n");
+ printf ("All ShowEQ source code is Copyright (C) 2000-2010 by the respective ShowEQ Developers\n");
printf ("ShowEQ comes with NO WARRANTY.\n\n");
Modified: showeq/trunk/src/spawnshell.cpp
===================================================================
--- showeq/trunk/src/spawnshell.cpp 2009-12-25 19:12:20 UTC (rev 749)
+++ showeq/trunk/src/spawnshell.cpp 2010-02-20 23:01:46 UTC (rev 750)
@@ -319,27 +319,73 @@
}
// same-name slots, connecting to Packet signals
-void SpawnShell::newGroundItem(const uint8_t* data, size_t, uint8_t dir)
+// this packet is variable in length. everything is dwords except the "idFile" field
+// which can be variable
+void SpawnShell::newGroundItem(const uint8_t* data, size_t len, uint8_t dir)
{
- const makeDropStruct *d = (const makeDropStruct *)data;
+ if (m_zoneMgr->isZoning())
+ return;
+
+ if (dir != DIR_Server)
+ return;
+
+ if (!data)
+ return;
+
+ NetStream netStream(data, len);
+ makeDropStruct ds;
+ QString name;
+ union { uint32_t n; float f; } x;
+
+ // read drop id
+ ds.dropId = netStream.readUInt32NC();
+
+ // read name
+ name = netStream.readText();
+ strcpy(ds.idFile, name.latin1());
+
+ // read past zone id
+ netStream.readUInt32NC();
+
+ // read past zone instance
+ netStream.readUInt32NC();
+
+ // read past unknown dword field
+ netStream.readUInt32NC();
+
+ // read heading
+ x.n = netStream.readUInt32NC();
+ ds.heading = x.f;
+
+ // read past unknown dword field
+ netStream.readUInt32NC();
+
+ // read past unknown dword field
+ netStream.readUInt32NC();
+
+ // read past unknown dword field
+ netStream.readUInt32NC();
+
+ // read y pos
+ x.n = netStream.readUInt32NC();
+ ds.y = x.f;
+
+ // read x pos
+ x.n = netStream.readUInt32NC();
+ ds.x = x.f;
+
+ // read z pos
+ x.n = netStream.readUInt32NC();
+ ds.z = x.f;
+
#ifdef SPAWNSHELL_DIAG
seqDebug("SpawnShell::newGroundItem(makeDropStruct *)");
#endif
- // if zoning, then don't do anything
- if (m_zoneMgr->isZoning())
- return;
- if (dir != DIR_Server)
- return;
-
- if (!d)
- return;
-
- QString name;
- Drop* item = (Drop*)m_drops.find(d->dropId);
+ Drop* item = (Drop*)m_drops.find(ds.dropId);
if (item != NULL)
{
- item->update(d, name);
+ item->update(&ds, name);
if (!showeq_params->fast_machine)
item->setDistanceToPlayer(m_player->calcDist2DInt(*item));
else
@@ -350,13 +396,13 @@
}
else
{
- item = new Drop(d, name);
+ item = new Drop(&ds, name);
if (!showeq_params->fast_machine)
item->setDistanceToPlayer(m_player->calcDist2DInt(*item));
else
item->setDistanceToPlayer(m_player->calcDist(*item));
updateFilterFlags(item);
- m_drops.insert(d->dropId, item);
+ m_drops.insert(ds.dropId, item);
emit addItem(item);
}
}
Modified: showeq/trunk/src/weapons29.h
===================================================================
--- showeq/trunk/src/weapons29.h 2009-12-25 19:12:20 UTC (rev 749)
+++ showeq/trunk/src/weapons29.h 2010-02-20 23:01:46 UTC (rev 750)
@@ -29,7 +29,7 @@
NULL, // 0x14
NULL, // 0x15
NULL, // 0x16
- NULL, // 0x17
+ "Hammer", // 0x17
NULL, // 0x18
NULL, // 0x19
NULL, // 0x1a
@@ -241,7 +241,7 @@
NULL, // 0xe8
NULL, // 0xe9
NULL, // 0xea
- NULL, // 0xeb
+ "Wand", // 0xeb
NULL, // 0xec
NULL, // 0xed
NULL, // 0xee
Modified: showeq/trunk/src/weapons2a.h
===================================================================
--- showeq/trunk/src/weapons2a.h 2009-12-25 19:12:20 UTC (rev 749)
+++ showeq/trunk/src/weapons2a.h 2010-02-20 23:01:46 UTC (rev 750)
@@ -44,7 +44,7 @@
NULL, // 0x23
NULL, // 0x24
NULL, // 0x25
- NULL, // 0x26
+ "Shield", // 0x26
NULL, // 0x27
NULL, // 0x28
NULL, // 0x29
@@ -164,7 +164,7 @@
NULL, // 0x9b
NULL, // 0x9c
NULL, // 0x9d
- NULL, // 0x9e
+ "Sabre", // 0x9e
NULL, // 0x9f
NULL, // 0xa0
NULL, // 0xa1
Modified: showeq/trunk/src/weapons2b.h
===================================================================
--- showeq/trunk/src/weapons2b.h 2009-12-25 19:12:20 UTC (rev 749)
+++ showeq/trunk/src/weapons2b.h 2010-02-20 23:01:46 UTC (rev 750)
@@ -181,13 +181,13 @@
NULL, // 0xac
NULL, // 0xad
NULL, // 0xae
- NULL, // 0xaf
+ "Shield", // 0xaf
NULL, // 0xb0
NULL, // 0xb1
NULL, // 0xb2
NULL, // 0xb3
NULL, // 0xb4
- NULL, // 0xb5
+ "Shield", // 0xb5
NULL, // 0xb6
NULL, // 0xb7
NULL, // 0xb8
Modified: showeq/trunk/src/weapons2c.h
===================================================================
--- showeq/trunk/src/weapons2c.h 2009-12-25 19:12:20 UTC (rev 749)
+++ showeq/trunk/src/weapons2c.h 2010-02-20 23:01:46 UTC (rev 750)
@@ -44,7 +44,7 @@
NULL, // 0x23
NULL, // 0x24
NULL, // 0x25
- NULL, // 0x26
+ "Hammer", // 0x26
NULL, // 0x27
NULL, // 0x28
NULL, // 0x29
@@ -88,7 +88,7 @@
NULL, // 0x4f
NULL, // 0x50
NULL, // 0x51
- NULL, // 0x52
+ "Dagger", // 0x52
NULL, // 0x53
NULL, // 0x54
NULL, // 0x55
Modified: showeq/trunk/src/weapons2d.h
===================================================================
--- showeq/trunk/src/weapons2d.h 2009-12-25 19:12:20 UTC (rev 749)
+++ showeq/trunk/src/weapons2d.h 2010-02-20 23:01:46 UTC (rev 750)
@@ -72,7 +72,7 @@
NULL, // 0x3f
NULL, // 0x40
NULL, // 0x41
- NULL, // 0x42
+ "Dagger", // 0x42
NULL, // 0x43
NULL, // 0x44
NULL, // 0x45
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|