Recovered from microbel
This commit is contained in:
341
common/lib/world/msgworld.C
Normal file
341
common/lib/world/msgworld.C
Normal file
@@ -0,0 +1,341 @@
|
||||
/*
|
||||
* PVVMUD a 3D MUD
|
||||
* Copyright (C) 1998-1999 Programvareverkstedet (pvv@pvv.org)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
*/
|
||||
#include "pvvmud.H"
|
||||
#include "msgworld.H"
|
||||
#include "position.H"
|
||||
#include "direction.H"
|
||||
|
||||
/*
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// CMsgSection
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CMsgSection::CMsgSection():CMessage(MSG_SECTION,sizeof(DWORD)+sizeof(BYTE)){
|
||||
setName("MsgSection");
|
||||
}
|
||||
|
||||
CMsgSection::CMsgSection( DWORD sectionId, BOOL create )
|
||||
:CMessage(MSG_SECTION,sizeof(DWORD) + sizeof(BYTE)){
|
||||
|
||||
setName("MsgSection");
|
||||
writeDWord(1,sectionId);
|
||||
writeByte(5,create);
|
||||
}
|
||||
|
||||
DWORD CMsgSection::getSectionId(){
|
||||
return readDWord(1);
|
||||
}
|
||||
|
||||
BOOL CMsgSection::getCreate(){
|
||||
return readByte(5);
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// CMsgCell
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CMsgCell::CMsgCell():CMessage(MSG_CELL,5*sizeof(DWORD)){
|
||||
setName("MsgCell");
|
||||
}
|
||||
|
||||
CMsgCell::CMsgCell( DWORD cellId, DWORD geometryId,
|
||||
const CPosition & position):CMessage(MSG_CELL,5*sizeof(DWORD)){
|
||||
|
||||
setName("MsgCell");
|
||||
writeDWord(1,cellId);
|
||||
writeDWord(5,geometryId);
|
||||
writePosition(9,position);
|
||||
}
|
||||
|
||||
DWORD CMsgCell::getCellId(){
|
||||
return readDWord(1);
|
||||
}
|
||||
|
||||
DWORD CMsgCell::getGeometryId(){
|
||||
return readDWord(5);
|
||||
}
|
||||
|
||||
CPosition CMsgCell::getPosition(){
|
||||
return readPosition(9);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// CMsgRemoveCell
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CMsgRemoveCell::CMsgRemoveCell():CMessage(MSG_REMOVECELL,1*sizeof(DWORD)){
|
||||
setName("MsgRemoveCell");
|
||||
}
|
||||
|
||||
CMsgRemoveCell::CMsgRemoveCell( DWORD cellId )
|
||||
:CMessage(MSG_REMOVECELL,1*sizeof(DWORD)){
|
||||
|
||||
setName("MsgRemoveCell");
|
||||
writeDWord(1,cellId);
|
||||
}
|
||||
|
||||
DWORD CMsgRemoveCell::getCellId(){
|
||||
return readDWord(1);
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// CMsgObject
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CMsgObject::CMsgObject():CMessage(MSG_OBJECT,9*sizeof(DWORD)){
|
||||
setName("MsgObject");
|
||||
}
|
||||
|
||||
CMsgObject::CMsgObject( DWORD objectId, DWORD geometryId, DWORD parentId,
|
||||
const CPosition & position,
|
||||
const CDirection & direction ):CMessage(MSG_OBJECT,9*sizeof(DWORD)){
|
||||
|
||||
setName("MsgObject");
|
||||
writeDWord(1,objectId);
|
||||
writeDWord(5,geometryId);
|
||||
writeDWord(9,parentId);
|
||||
writePosition(13,position);
|
||||
writeDirection(25,direction);
|
||||
}
|
||||
|
||||
DWORD CMsgObject::getObjectId(){
|
||||
return readDWord(1);
|
||||
}
|
||||
|
||||
DWORD CMsgObject::getGeometryId(){
|
||||
return readDWord(5);
|
||||
}
|
||||
|
||||
DWORD CMsgObject::getParentId(){
|
||||
return readDWord(9);
|
||||
}
|
||||
|
||||
CPosition CMsgObject::getPosition(){
|
||||
return readPosition(13);
|
||||
}
|
||||
|
||||
CDirection CMsgObject::getDirection(){
|
||||
return readDirection(25);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// CMsgRemoveObject
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CMsgRemoveObject::CMsgRemoveObject():CMessage(MSG_REMOVEOBJECT,2*sizeof(DWORD)){
|
||||
setName("MsgRemoveObject");
|
||||
}
|
||||
|
||||
CMsgRemoveObject::CMsgRemoveObject( DWORD objectId,
|
||||
DWORD parentId ):CMessage(MSG_REMOVEOBJECT,2*sizeof(DWORD)){
|
||||
|
||||
setName("MsgRemoveObject");
|
||||
writeDWord(1,objectId);
|
||||
writeDWord(5,parentId);
|
||||
}
|
||||
|
||||
DWORD CMsgRemoveObject::getObjectId(){
|
||||
return readDWord(1);
|
||||
}
|
||||
|
||||
DWORD CMsgRemoveObject::getParentId(){
|
||||
return readDWord(5);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// CMsgChangeMasterCell
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CMsgChangeMasterCell::CMsgChangeMasterCell():CMessage(MSG_CHANGEMASTERCELL,sizeof(DWORD)){
|
||||
setName("MsgChangeMasterCell");
|
||||
}
|
||||
|
||||
CMsgChangeMasterCell::CMsgChangeMasterCell( DWORD newMasterCellId)
|
||||
:CMessage(MSG_CHANGEMASTERCELL,sizeof(DWORD)){
|
||||
|
||||
setName("MsgChangeMasterCell");
|
||||
writeDWord(1,newMasterCellId);
|
||||
}
|
||||
|
||||
DWORD CMsgChangeMasterCell::getNewMasterCellId(){
|
||||
return readDWord(1);
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// CMsgPVCell
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CMsgPVCell::CMsgPVCell():CMessage(MSG_PVCELL,5*sizeof(DWORD)){
|
||||
setName("MsgPVCell");
|
||||
}
|
||||
|
||||
CMsgPVCell::CMsgPVCell( DWORD cellId, DWORD PVCellId,
|
||||
const CPosition & position ):CMessage(MSG_PVCELL,5*sizeof(DWORD)){
|
||||
|
||||
setName("MsgPVCell");
|
||||
writeDWord(1,cellId);
|
||||
writeDWord(5,PVCellId);
|
||||
for (int ii = 0; ii < 3; ii++){
|
||||
writeDouble(9+ii*4,position.getValue(ii));
|
||||
}
|
||||
}
|
||||
|
||||
DWORD CMsgPVCell::getCellId(){
|
||||
return readDWord(1);
|
||||
}
|
||||
|
||||
DWORD CMsgPVCell::getPVCellId(){
|
||||
return readDWord(5);
|
||||
}
|
||||
|
||||
CPosition CMsgPVCell::getPosition(){
|
||||
return CPosition(readDouble(9),readDouble(13),readDouble(17));
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// CMsgUpdatePosition
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CMsgUpdatePosition::CMsgUpdatePosition()
|
||||
:CMessage(MSG_UPDATEPOSITION,4*sizeof(DWORD)){
|
||||
|
||||
setName("MsgUpdatePosition");
|
||||
}
|
||||
|
||||
CMsgUpdatePosition::CMsgUpdatePosition(DWORD objectId,const CPosition& position)
|
||||
:CMessage(MSG_UPDATEPOSITION,sizeof(DWORD)*4){
|
||||
|
||||
setName("MsgUpdatePosition");
|
||||
writeDWord(1,objectId);
|
||||
writePosition(5,position);
|
||||
}
|
||||
|
||||
DWORD CMsgUpdatePosition::getObjectId(){
|
||||
return readDWord(1);
|
||||
}
|
||||
|
||||
CPosition CMsgUpdatePosition::getPosition(){
|
||||
return readPosition(5);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// CMsgUpdateDirection
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CMsgUpdateDirection::CMsgUpdateDirection()
|
||||
:CMessage(MSG_UPDATEDIRECTION,4*sizeof(DWORD)){
|
||||
|
||||
setName("MsgUpdateDirection");
|
||||
}
|
||||
|
||||
CMsgUpdateDirection::CMsgUpdateDirection(DWORD objectId,const CDirection& direction):CMessage(MSG_UPDATEDIRECTION, 4*sizeof(DWORD)){
|
||||
|
||||
setName("MsgUpdateDirection");
|
||||
writeDWord(1,objectId);
|
||||
writeDirection(5,direction);
|
||||
}
|
||||
|
||||
DWORD CMsgUpdateDirection::getObjectId(){
|
||||
return readDWord(1);
|
||||
}
|
||||
|
||||
CDirection CMsgUpdateDirection::getDirection(){
|
||||
return readDirection(5);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// CMsgUpdateHierarchy
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CMsgUpdateHierarchy::CMsgUpdateHierarchy()
|
||||
:CMessage(MSG_UPDATEHIERARCHY,2*sizeof(DWORD)){
|
||||
|
||||
setName("MsgUpdateHierarchy");
|
||||
}
|
||||
|
||||
CMsgUpdateHierarchy::CMsgUpdateHierarchy(DWORD objectId, DWORD parentId):CMessage(MSG_UPDATEHIERARCHY, 2*sizeof(DWORD)){
|
||||
|
||||
setName("MsgUpdateHierarchy");
|
||||
writeDWord(1,objectId);
|
||||
writeDWord(5,parentId);
|
||||
}
|
||||
|
||||
DWORD CMsgUpdateHierarchy::getObjectId(){
|
||||
return readDWord(1);
|
||||
}
|
||||
|
||||
DWORD CMsgUpdateHierarchy::getParentId(){
|
||||
return readDWord(5);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// CMsgRotate
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CMsgRotate::CMsgRotate()
|
||||
:CMessage(MSG_ROTATE,4*sizeof(DWORD)){
|
||||
|
||||
setName("MsgRotate");
|
||||
}
|
||||
|
||||
CMsgRotate::CMsgRotate(DWORD objectId, const CDirection& angleSpeed):CMessage(MSG_ROTATE, 4*sizeof(DWORD)){
|
||||
|
||||
setName("MsgRotate");
|
||||
writeDWord(1,objectId);
|
||||
writeDirection(5,angleSpeed);
|
||||
}
|
||||
|
||||
DWORD CMsgRotate::getObjectId(){
|
||||
return readDWord(1);
|
||||
}
|
||||
|
||||
CDirection CMsgRotate::getAngleSpeed(){
|
||||
return readDirection(5);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user