SpawnShell::FillSpawnStruct needs to be updated. It reads the data in a specific order and is probably filling in the position data wrong.
This is where it reads in the position data:
Code:
spawn->posData[0] = netStream.readUInt32NC();
spawn->posData[1] = netStream.readUInt32NC();
spawn->posData[2] = netStream.readUInt32NC();
spawn->posData[3] = netStream.readUInt32NC();
spawn->posData[4] = netStream.readUInt32NC();
And spawnStruct in everquest.h should be arranged in the right order as well -- it keeps it less confusing.
This part (from spawnStruct in everquest.h) is the position data that gets filled in in SpawnShell::FillSpawnStruct:
Code:
union
{
struct
{
signed padding0000:12; // ***Placeholder
signed deltaHeading:10; // change in heading
signed padding0005:10; // ***Placeholder
signed z:19; // z coord
signed deltaZ:13; // change in z
signed deltaY:13; // change in y
signed y:19; // y coord
signed x:19; // x coord
signed deltaX:13; // change in x
unsigned heading:12; // heading
signed animation:10; // animation
signed padding0006:10; // ***Placeholder
};
int32_t posData[5];
};