uox3/source/CPacketSend.h
Xoduz 1848a14772 Tooltip sorting
Tooltip entries for Characters/Items now have a sorting order associated with them, defined in code via a "sortOrder" parameter in the ToolTipEntry
For custom tooltips in scripts, sort order can be set via the temporary tag. Example:
	iUsed.SetTempTag( "tooltipSortOrder", 1 ); // sort tooltip after name (sortOrder 0), but before maker's mark (sortOrder 5).
This information and a list of the default hard-coded sort order can also be found in the updated UOX3 Documentation, under Features > Object Tooltips
2025-04-22 08:36:56 +08:00

1651 lines
40 KiB
C++

#ifndef __CPACKETSEND_H__
#define __CPACKETSEND_H__
#include "CPacketReceive.h"
// Forward declare
struct __STARTLOCATIONDATA__;
class CPCharLocBody : public CPUOXBuffer
{
protected:
virtual void CopyData( CChar &toCopy );
virtual void InternalReset( void ) override;
public:
CPCharLocBody();
CPCharLocBody( CChar &toCopy );
virtual ~CPCharLocBody()
{
}
virtual void Flag( UI08 toPut );
virtual void HighlightColour( UI08 color );
CPCharLocBody & operator = ( CChar &toCopy );
virtual void Log( std::ostream &outStream, bool fullHeader = true ) override;
};
class CPacketSpeech : public CPUOXBuffer
{
protected:
bool isUnicode;
virtual void InternalReset( void ) override;
void CopyData( CSpeechEntry &toCopy );
void CopyData( CPITalkRequest &toCopy );
public:
CPacketSpeech();
CPacketSpeech( CSpeechEntry &toCopy );
CPacketSpeech( CPITalkRequest &toCopy );
virtual void SpeakerSerial( SERIAL toPut );
virtual void SpeakerModel( UI16 toPut );
virtual void Colour( COLOUR toPut );
virtual void Font( FontType toPut );
virtual void Language( UnicodeTypes toPut );
virtual void Unicode( bool toPut );
virtual void Type( SpeechType toPut );
virtual void Speech( const std::string& toPut );
virtual void SpeakerName( const std::string& toPut );
void GhostIt( UI08 method );
virtual ~CPacketSpeech()
{
}
CPacketSpeech &operator = ( CSpeechEntry &toCopy );
};
class CPWalkDeny : public CPUOXBuffer
{
public:
CPWalkDeny();
virtual ~CPWalkDeny()
{
}
virtual void SequenceNumber( char newValue );
virtual void X( SI16 newValue );
virtual void Y( SI16 newValue );
virtual void Z( SI08 newValue );
virtual void Direction( char newValue );
};
class CPWalkOK : public CPUOXBuffer
{
public:
CPWalkOK();
virtual ~CPWalkOK()
{
}
virtual void SequenceNumber( char newValue );
virtual void FlagColour( UI08 newValue );
};
class CPExtMove : public CPUOXBuffer
{
protected:
void CopyData( CChar &toCopy );
public:
CPExtMove();
virtual ~CPExtMove()
{
}
CPExtMove( CChar &toCopy );
virtual void FlagColour( UI08 newValue );
virtual void SetFlags( CChar &totoCopy );
CPExtMove &operator = ( CChar &toCopy );
};
class CPAttackOK : public CPUOXBuffer
{
protected:
void CopyData( CChar &toCopy );
public:
CPAttackOK();
virtual ~CPAttackOK()
{
}
CPAttackOK( CChar &toCopy );
virtual void Serial( SERIAL newSerial );
CPAttackOK &operator = ( CChar &toCopy );
};
class CPRemoveItem : public CPUOXBuffer
{
protected:
void CopyData( CBaseObject &toCopy );
public:
CPRemoveItem();
virtual ~ CPRemoveItem()
{
}
CPRemoveItem( CBaseObject &toCopy );
virtual void Serial( SERIAL newSerial );
CPRemoveItem &operator = ( CBaseObject &toCopy );
};
class CPWorldChange : public CPUOXBuffer
{
public:
CPWorldChange();
virtual ~CPWorldChange()
{
}
CPWorldChange( WorldType newSeason, UI08 newCursor );
virtual void Season( WorldType newSeason );
virtual void Cursor( UI08 newCursor );
};
class CPLightLevel : public CPUOXBuffer
{
public:
CPLightLevel();
virtual ~CPLightLevel()
{
}
CPLightLevel( LIGHTLEVEL level );
virtual void Level( LIGHTLEVEL level );
};
class CPUpdIndSkill : public CPUOXBuffer
{
protected:
virtual void CopyData( CChar& i, UI08 sNum );
virtual void InternalReset( void ) override;
public:
CPUpdIndSkill();
virtual ~CPUpdIndSkill()
{
}
CPUpdIndSkill( CChar& i, UI08 sNum );
virtual void Character( CChar& i, UI08 sNum );
virtual void SkillNum( UI08 sNum );
virtual void Skill( SI16 skillval );
virtual void BaseSkill( SI16 skillval );
virtual void Lock( SkillLock lockVal );
virtual void Cap( SI16 capVal );
};
class CPBuyItem : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
virtual void CopyData( CBaseObject &i );
public:
CPBuyItem();
virtual ~CPBuyItem()
{
}
CPBuyItem( CBaseObject &i );
CPBuyItem &operator = ( CBaseObject &toCopy );
void Serial( SERIAL toSet );
};
class CPRelay : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
CPRelay();
virtual ~CPRelay()
{
}
CPRelay( UI32 newIP );
CPRelay( UI32 newIP, UI16 newPort );
virtual void ServerIP( UI32 newIP );
virtual void Port( UI16 newPort );
virtual void SeedIP( UI32 newIP );
};
class CPWornItem : public CPUOXBuffer
{
protected:
virtual void CopyData( CItem &toCopy );
public:
CPWornItem();
virtual ~CPWornItem()
{
}
CPWornItem( CItem &toCopy );
virtual void ItemSerial( SERIAL itemSer );
virtual void Model( SI16 newModel );
virtual void Layer( UI08 layer );
virtual void CharSerial( SERIAL chSer );
virtual void Colour( SI16 newColour );
CPWornItem &operator = ( CItem &toCopy );
};
class CPCharacterAnimation : public CPUOXBuffer
{
protected:
virtual void CopyData( CChar &toCopy );
virtual void InternalReset( void ) override;
public:
CPCharacterAnimation();
virtual ~CPCharacterAnimation()
{
}
CPCharacterAnimation( CChar &toCopy );
virtual void Serial( SERIAL toSet );
virtual void Action( UI16 model );
virtual void FrameCount( UI08 frameCount );
virtual void Repeat( SI16 repeatValue );
virtual void DoBackwards( bool newValue );
virtual void RepeatFlag( bool newValue );
virtual void FrameDelay( UI08 delay );
CPCharacterAnimation &operator = ( CChar &toCopy );
};
class CPNewCharacterAnimation : public CPUOXBuffer
{
protected:
virtual void CopyData( CChar &toCopy );
virtual void InternalReset( void ) override;
public:
CPNewCharacterAnimation();
virtual ~CPNewCharacterAnimation()
{
}
CPNewCharacterAnimation( CChar &toCopy );
virtual void Serial( SERIAL toSet );
virtual void Action( UI16 action );
virtual void SubAction( UI16 subAction );
virtual void SubSubAction( UI08 subSubAction );
CPNewCharacterAnimation &operator = ( CChar &toCopy );
};
class CPDrawGamePlayer : public CPUOXBuffer
{
protected:
virtual void CopyData( CChar &toCopy );
virtual void InternalReset( void ) override;
public:
CPDrawGamePlayer();
virtual ~CPDrawGamePlayer()
{
}
CPDrawGamePlayer( CChar &toCopy );
};
class CPPersonalLightLevel : public CPUOXBuffer
{
protected:
virtual void CopyData( CChar &toCopy );
virtual void InternalReset( void ) override;
public:
CPPersonalLightLevel();
virtual ~CPPersonalLightLevel()
{
}
CPPersonalLightLevel( CChar &toCopy );
virtual void Serial( SERIAL toSet );
virtual void Level( UI08 lightLevel );
CPPersonalLightLevel &operator = ( CChar &toCopy );
};
class CPPlaySoundEffect : public CPUOXBuffer
{
protected:
virtual void CopyData( CBaseObject &toCopy );
virtual void InternalReset( void ) override;
public:
CPPlaySoundEffect();
virtual ~CPPlaySoundEffect()
{
}
CPPlaySoundEffect( CBaseObject &toCopy );
virtual void Mode( UI08 mode );
virtual void Model( UI16 newModel );
virtual void X( SI16 xLoc );
virtual void Y( SI16 yLoc );
virtual void Z( SI16 zLoc );
CPPlaySoundEffect &operator = ( CBaseObject &toCopy );
};
class CPPaperdoll : public CPUOXBuffer
{
protected:
virtual void CopyData( CChar &toCopy );
virtual void InternalReset( void ) override;
public:
CPPaperdoll();
virtual ~CPPaperdoll()
{
}
CPPaperdoll( CChar &toCopy );
virtual void Serial( SERIAL tSerial );
virtual void FlagByte( UI08 fVal );
virtual void Text( const std::string& toPut );
CPPaperdoll & operator = ( CChar &toCopy );
};
class CPWeather : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
CPWeather();
virtual ~CPWeather()
{
}
CPWeather( UI08 nType );
CPWeather( UI08 nType, UI08 nParts );
CPWeather( UI08 nType, UI08 nParts, UI08 nTemp );
virtual void Type( UI08 nType );
virtual void Particles( UI08 nParts );
virtual void Temperature( UI08 nTemp );
};
class CPGraphicalEffect : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
virtual ~CPGraphicalEffect()
{
}
CPGraphicalEffect( UI08 effectType );
CPGraphicalEffect( UI08 effectType, CBaseObject &src, CBaseObject &trg );
CPGraphicalEffect( UI08 effectType, CBaseObject &src );
virtual void Effect( UI08 effectType );
virtual void SourceSerial( CBaseObject &toSet );
virtual void SourceSerial( SERIAL toSet );
virtual void TargetSerial( CBaseObject &toSet );
virtual void TargetSerial( SERIAL toSet );
virtual void Model( SI16 nModel );
virtual void X( SI16 nX );
virtual void Y( SI16 nY );
virtual void Z( SI08 nZ );
virtual void XTrg( SI16 nX );
virtual void YTrg( SI16 nY );
virtual void ZTrg( SI08 nZ );
virtual void Speed( UI08 nSpeed );
virtual void Duration( UI08 nDuration );
virtual void AdjustDir( bool nValue );
virtual void ExplodeOnImpact( bool nValue );
virtual void SourceLocation( CBaseObject &toSet );
virtual void SourceLocation( SI16 x, SI16 y, SI08 z );
virtual void TargetLocation( CBaseObject &toSet );
virtual void TargetLocation( SI16 x, SI16 y, SI08 z );
};
class CPUpdateStat : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
virtual ~CPUpdateStat()
{
}
CPUpdateStat( CBaseObject &toUpdate, UI08 statNum, bool normalizeStats );
virtual void Serial( SERIAL toSet );
virtual void MaxVal( SI16 maxVal );
virtual void CurVal( SI16 curVal );
};
class CPDeathAction : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
CPDeathAction( CChar &dying, CItem &corpse );
CPDeathAction();
virtual ~CPDeathAction()
{
}
virtual void Player( SERIAL toSet );
virtual void Corpse( SERIAL toSet );
virtual void FallDirection( UI08 toFall );
CPDeathAction & operator = ( CChar &dying );
CPDeathAction & operator = ( CItem &corpse );
};
class CPPlayMusic : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
CPPlayMusic( SI16 musicId );
CPPlayMusic();
virtual ~CPPlayMusic()
{
}
virtual void MusicId( SI16 musicId );
};
class CPDrawContainer : public CPUOXBuffer
{
protected:
virtual void CopyData( CItem &toCopy );
virtual void InternalReset( void ) override;
public:
CPDrawContainer();
virtual ~CPDrawContainer()
{
}
CPDrawContainer( CItem &toCopy );
virtual void Model( UI16 newModel );
virtual void ContType( UI16 contType );
virtual void Serial( SERIAL toSet );
CPDrawContainer &operator = ( CItem &toCopy );
};
// 0x7C Packet
// Last Modified on Thursday, 03-Sep-2002
// Open Dialog Box (Variable # of bytes)
// BYTE cmd
// BYTE[2] blockSize
// BYTE[4] dialogId (echo'd back to the server in 7d)
// BYTE[2] menuid (echo'd back to server in 7d)
// BYTE length of question
// BYTE[length of question] question text
// BYTE # of responses
// Then for each response:
// BYTE[2] model id # of shown item (if grey menu -- then always 0x00 as msb)
// BYTE[2] color of shown item
// BYTE response text length
// BYTE[response text length] response text
class CPOpenGump : public CPUOXBuffer
{
protected:
virtual void CopyData( CChar &toCopy );
virtual void InternalReset( void ) override;
size_t responseOffset;
size_t responseBaseOffset;
public:
CPOpenGump();
virtual ~CPOpenGump()
{
}
CPOpenGump( CChar &toCopy );
virtual void Length( SI32 TotalLines );
virtual void GumpIndex( SI32 index );
virtual void Serial( SERIAL toSet );
virtual void Question( std::string toAdd );
virtual void AddResponse( UI16 modelNum, UI16 colour, std::string responseText );
virtual void Finalize( void );
CPOpenGump &operator = ( CChar &toCopy );
virtual void Log( std::ostream &outStream, bool fullHeader = true ) override;
};
class CPTargetCursor : public CPUOXBuffer
{
public:
CPTargetCursor();
virtual ~CPTargetCursor()
{
}
virtual void Type( UI08 nType );
virtual void ID( SERIAL toSet );
virtual void CursorType( UI08 nType ); // There is more to this packet, but it's only valid when sent by the CLIENT
};
class CPStatWindow : public CPUOXBuffer
{
protected:
bool extended3;
bool extended4;
bool extended5;
bool extended6;
size_t byteOffset;
virtual void InternalReset( void ) override;
public:
CPStatWindow();
virtual ~CPStatWindow()
{
}
CPStatWindow( CBaseObject &toCopy, CSocket &target );
virtual void Serial( SERIAL toSet );
virtual void Name( const std::string& nName );
virtual void CurrentHP( SI16 nValue );
virtual void MaxHP( SI16 nValue );
virtual void MaxWeight( UI16 value );
virtual void Race( UI08 value );
virtual void NameChange( bool nValue );
virtual void Flag( UI08 nValue );
virtual void Sex( UI08 nValue );
virtual void Strength( SI16 nValue );
virtual void Dexterity( SI16 nValue );
virtual void Intelligence( SI16 nValue );
virtual void Stamina( SI16 nValue );
virtual void MaxStamina( SI16 nValue );
virtual void Mana( SI16 nValue );
virtual void MaxMana( SI16 nValue );
virtual void Gold( UI32 gValue );
virtual void AC( UI16 nValue );
virtual void Weight( UI16 nValue );
virtual void SetCharacter( CChar &toCopy, CSocket &target );
virtual void StatCap( UI16 value );
virtual void CurrentPets( UI08 value );
virtual void MaxPets( UI08 value );
virtual void FireResist( UI16 value );
virtual void ColdResist( UI16 value );
virtual void PoisonResist( UI16 value );
virtual void EnergyResist( UI16 value );
virtual void Luck( UI16 value );
virtual void DamageMax( UI16 value );
virtual void DamageMin( UI16 value );
virtual void TithingPoints( UI32 value );
// Extended-6 (UOKR+) Stat Methods
virtual void PhysicalResistCap( UI16 value );
virtual void FireResistCap( UI16 value );
virtual void ColdResistCap( UI16 value );
virtual void PoisonResistCap( UI16 value );
virtual void EnergyResistCap( UI16 value );
virtual void HitChanceIncrease( UI16 value );
virtual void SwingSpeedIncrease( UI16 value );
virtual void DamageChanceIncrease( UI16 value );
virtual void LowerReagentCost( UI16 value );
virtual void DefenseChanceIncrease( UI16 value );
virtual void DefenseChanceIncreaseCap( UI16 value );
virtual void SpellDamageIncrease( UI16 value );
virtual void FasterCastRecovery( UI16 value );
virtual void FasterCasting( UI16 value );
virtual void LowerManaCost( UI16 value );
};
class CPIdleWarning : public CPUOXBuffer
{
/*
0x53 Client Message:
0x01=Char doesn't exist
0x02=Char Already Exists
0x03,0x04=Cannot Attach to server
0x05=Char in world Msg
0x06=Login server Syc Error
0x07=Idle msg
0x08 (and up?)=Can't Attach
*/
protected:
virtual void InternalReset( void ) override;
public:
CPIdleWarning();
virtual ~CPIdleWarning()
{
}
CPIdleWarning( UI08 errorNum );
virtual void Error( UI08 errorNum );
};
class CPTime : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
CPTime();
virtual ~CPTime()
{
}
CPTime( UI08 hour, UI08 minute, UI08 second );
virtual void Hour( UI08 hour );
virtual void Minute( UI08 minute );
virtual void Second( UI08 second );
};
class CPLoginComplete : public CPUOXBuffer
{
public:
CPLoginComplete();
};
class CPTextEmoteColour : public CPUOXBuffer
{
public:
virtual ~CPTextEmoteColour()
{
}
CPTextEmoteColour();
virtual void BlockSize( SI16 newValue );
virtual void Unknown( SI16 newValue );
};
class CPWarMode : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
virtual ~CPWarMode()
{
}
CPWarMode();
CPWarMode( UI08 nFlag );
virtual void Flag( UI08 nFlag );
};
class CPPauseResume : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
virtual ~CPPauseResume()
{
}
CPPauseResume();
CPPauseResume( UI08 mode );
virtual void Mode( UI08 mode );
virtual bool ClientCanReceive( CSocket *mSock ) override;
};
class CPWebLaunch : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
virtual void SetSize( SI16 newSize );
public:
virtual ~CPWebLaunch()
{
}
CPWebLaunch();
CPWebLaunch( const std::string& txt );
virtual void Text( const std::string& txt );
};
class CPTrackingArrow : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
virtual ~CPTrackingArrow()
{
}
CPTrackingArrow();
CPTrackingArrow( SI16 x, SI16 y );
CPTrackingArrow( CBaseObject &toCopy );
virtual void Location( SI16 x, SI16 y );
virtual void Active( UI08 value );
virtual void AddSerial( SERIAL targetSerial );
CPTrackingArrow &operator = ( CBaseObject &toCopy );
};
class CPBounce : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
virtual ~CPBounce()
{
}
CPBounce();
CPBounce( UI08 mode );
virtual void Mode( UI08 mode );
};
class CPDyeVat : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
virtual void CopyData( CBaseObject &target );
public:
virtual ~CPDyeVat()
{
}
CPDyeVat();
CPDyeVat( CBaseObject &target );
virtual void Serial( SERIAL toSet );
virtual void Model( SI16 toSet );
CPDyeVat & operator = ( CBaseObject &target );
};
class CPMultiPlacementView : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
virtual void CopyData( CItem &target );
public:
virtual ~CPMultiPlacementView()
{
}
CPMultiPlacementView();
CPMultiPlacementView( CItem &target );
CPMultiPlacementView( SERIAL toSet );
virtual void RequestType( UI08 rType );
virtual void DeedSerial( SERIAL toSet );
virtual void MultiModel( SI16 toSet );
virtual void SetHue( UI16 hueValue );
CPMultiPlacementView &operator = ( CItem &target );
};
class CPEnableClientFeatures : public CPUOXBuffer
{
public:
CPEnableClientFeatures( CSocket *mSock );
virtual void Log( std::ostream &outStream, bool fullHeader = true ) override;
};
class CPNegotiateAssistantFeatures : public CPUOXBuffer
{
public:
CPNegotiateAssistantFeatures( CSocket *mSock );
virtual void Log( std::ostream &outStream, bool fullHeader = true ) override;
};
class CPKrriosClientSpecial : public CPUOXBuffer
{
public:
CPKrriosClientSpecial( CSocket *mSock, CChar * mChar, UI08 type, bool locations );
virtual void Log( std::ostream &outStream, bool fullHeader = true ) override;
};
class CPLogoutResponse : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
CPLogoutResponse();
CPLogoutResponse( UI08 extraByte );
};
class CPAddItemToCont : public CPUOXBuffer
{
protected:
bool uokrFlag;
virtual void InternalReset( void ) override;
virtual void CopyData( CItem &toCopy );
public:
virtual ~CPAddItemToCont()
{
}
CPAddItemToCont();
CPAddItemToCont( CItem &toAdd );
virtual void Serial( SERIAL toSet );
virtual void Model( SI16 toSet );
virtual void NumItems( SI16 toSet );
virtual void X( SI16 x );
virtual void Y( SI16 y );
virtual void GridLocation( SI08 gridLoc );
virtual void Container( SERIAL toAdd );
virtual void Colour( SI16 toSet );
void UOKRFlag( bool newVal );
void Object( CItem &toAdd );
};
class CPKickPlayer : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
virtual void CopyData( CChar &toCopy );
public:
virtual ~CPKickPlayer()
{
}
CPKickPlayer();
CPKickPlayer( CChar &toCopy );
virtual void Serial( SERIAL toSet );
CPKickPlayer & operator = ( CChar &toCopy );
};
class CPResurrectMenu : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
virtual ~CPResurrectMenu()
{
}
CPResurrectMenu();
CPResurrectMenu( UI08 action );
virtual void Action( UI08 action );
};
class CPFightOccurring : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
virtual ~CPFightOccurring()
{
}
CPFightOccurring();
CPFightOccurring( CChar &attacker, CChar &defender );
virtual void Attacker( SERIAL toSet );
virtual void Attacker( CChar &attacker );
virtual void Defender( SERIAL toSet );
virtual void Defender( CChar &defender );
};
class CPSkillsValues : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
virtual void CopyData( CChar &toCopy );
virtual void BlockSize( SI16 newValue );
virtual UI08 NumSkills( void );
public:
virtual ~CPSkillsValues()
{
}
CPSkillsValues();
CPSkillsValues( CChar &toCopy );
virtual void NumSkills( UI08 numSkills );
virtual void SetCharacter( CChar &toCopy );
virtual void SkillEntry( SI16 skillId, SI16 skillVal, SI16 baseSkillVal, SkillLock skillLock );
CPSkillsValues &operator = ( CChar &toCopy );
};
class CPMapMessage : public CPUOXBuffer
{
public:
virtual ~CPMapMessage()
{
}
CPMapMessage();
virtual void UpperLeft( SI16 x, SI16 y );
virtual void LowerRight( SI16 x, SI16 y );
virtual void Dimensions( SI16 width, SI16 height );
virtual void GumpArt( SI16 newArt );
virtual void KeyUsed( UI32 key );
};
class CPMapRelated : public CPUOXBuffer
{
public:
virtual ~CPMapRelated()
{
}
CPMapRelated();
virtual void PlotState( UI08 pState );
virtual void Location( SI16 x, SI16 y );
virtual void Command( UI08 cmd );
virtual void ID( SERIAL key );
};
class CPBookTitlePage : public CPUOXBuffer
{
public:
virtual ~CPBookTitlePage()
{
}
CPBookTitlePage();
virtual void Serial( SERIAL toSet );
virtual void WriteFlag( UI08 flag );
virtual void NewFlag( UI08 flag );
virtual void Pages( SI16 pages );
virtual void Title( const std::string& txt );
virtual void Author( const std::string& txt );
};
class CPUltimaMessenger : public CPUOXBuffer
{
public:
virtual ~CPUltimaMessenger()
{
}
CPUltimaMessenger();
virtual void ID1( SERIAL toSet );
virtual void ID2( SERIAL toSet );
};
class CPGumpTextEntry : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
virtual void BlockSize( SI16 newVal );
virtual SI16 CurrentSize( void );
virtual SI16 Text1Len( void );
virtual void Text1Len( SI16 newVal );
virtual SI16 Text2Len( void );
virtual void Text2Len( SI16 newVal );
public:
virtual ~CPGumpTextEntry()
{
}
CPGumpTextEntry();
CPGumpTextEntry( const std::string& text );
CPGumpTextEntry( const std::string& text1, const std::string& text2 );
virtual void Serial( SERIAL id );
virtual void ParentId( UI08 newVal );
virtual void ButtonId( UI08 newVal );
virtual void Cancel( UI08 newVal ); // 0 = disable, 1 = enable
virtual void Style( UI08 newVal ); // 0 = disable, 1 = normal, 2 = numerical
virtual void Format( SERIAL id ); // if style 1, max text len, if style 2, max num len
virtual void Text1( const std::string& txt );
virtual void Text2( const std::string& txt );
};
class CPMapChange : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
CPMapChange();
CPMapChange( UI08 newMap );
CPMapChange( CBaseObject *moving );
virtual ~CPMapChange()
{
}
virtual void SetMap( UI08 newMap );
CPMapChange& operator = ( CBaseObject& moving );
virtual void Log( std::ostream &outStream, bool fullHeader = true ) override;
};
class CPCloseGump : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
UI32 _gumpId;
UI32 _buttonId;
public:
CPCloseGump( UI32 dialogId, UI32 buttonId );
virtual ~CPCloseGump()
{
}
virtual void Log( std::ostream &outStream, bool fullHeader = true ) override;
};
class CPItemsInContainer : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
virtual void CopyData( CSocket *mSock, CItem& toCopy );
bool isVendor;
bool isPlayerVendor;
bool isCorpse;
SERIAL vendorSerial;
bool uokrFlag;
public:
virtual ~CPItemsInContainer()
{
}
CPItemsInContainer();
CPItemsInContainer( CSocket *mSock, CItem *container, UI08 contType = 0x00, bool isPVendor = false );
virtual void NumberOfItems( UI16 numItems );
virtual UI16 NumberOfItems( void ) const;
void Type( UI08 contType );
void UOKRFlag( bool value );
void PlayerVendor( bool value );
void VendorSerial( SERIAL toSet );
virtual void AddItem( CItem *toAdd, UI16 itemNum, CSocket *mSock );
void Add( UI16 itemNum, SERIAL toAdd, SERIAL cont, UI08 amount );
virtual void Log( std::ostream &outStream, bool fullHeader = true ) override;
};
class CPCorpseClothing : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
virtual void CopyData( CItem& toCopy );
public:
virtual ~CPCorpseClothing()
{
}
CPCorpseClothing();
CPCorpseClothing( CItem *corpse );
virtual void NumberOfItems( UI16 numItems );
virtual void AddItem( CItem *toAdd, UI16 itemNum );
CPCorpseClothing& operator = ( CItem& corpse );
};
class CPOpenBuyWindow : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
virtual void CopyData( CItem& toCopy, CChar *vendorId, CPItemsInContainer& iic, CSocket *mSock );
public:
virtual ~CPOpenBuyWindow()
{
}
CPOpenBuyWindow();
CPOpenBuyWindow( CItem *container, CChar *vendorId, CPItemsInContainer& iic, CSocket *mSock );
virtual void NumberOfItems( UI08 numItems );
virtual UI08 NumberOfItems( void ) const;
virtual void AddItem( CItem *toAdd, CTownRegion *tReg, UI16 &baseOffset );
virtual void Log( std::ostream &outStream, bool fullHeader = true ) override;
};
class CPCharAndStartLoc : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
virtual void CopyData( CAccountBlock_st& toCopy );
UI16 packetSize;
UI08 numCharacters;
public:
virtual ~CPCharAndStartLoc()
{
}
CPCharAndStartLoc();
CPCharAndStartLoc( CAccountBlock_st& account, UI08 numCharacters, UI08 numLocations, CSocket *mSock );
virtual void NumberOfLocations( UI08 numLocations, CSocket *mSock );
virtual void AddCharacter( CChar *toAdd, UI08 charOffset );
virtual auto AddStartLocation( __STARTLOCATIONDATA__ *sLoc, UI08 locOffset ) -> void;
virtual auto NewAddStartLocation( __STARTLOCATIONDATA__ *sLoc, UI08 locOffset ) -> void;
CPCharAndStartLoc& operator = ( CAccountBlock_st& actbBlock );
virtual void Log( std::ostream &outStream, bool fullHeader = true ) override;
};
class CPUpdScroll : public CPUOXBuffer
{
protected:
char tipData[2048];
virtual void InternalReset( void ) override;
void SetLength( UI16 len );
public:
CPUpdScroll();
CPUpdScroll( UI08 tType );
CPUpdScroll( UI08 tType, UI08 tNum );
virtual ~CPUpdScroll()
{
}
void AddString( const char *toAdd );
void Finalize( void );
void TipNumber( UI08 tipNum );
void TipType( UI08 tType );
};
class CPGraphicalEffect2 : public CPGraphicalEffect
{
protected:
virtual void InternalReset( void ) override;
public:
virtual ~CPGraphicalEffect2()
{
}
CPGraphicalEffect2( UI08 effectType );
CPGraphicalEffect2( UI08 effectType, CBaseObject &src, CBaseObject &trg );
CPGraphicalEffect2( UI08 effectType, CBaseObject &src );
virtual void Hue( UI32 hue );
virtual void RenderMode( UI32 mode );
};
class CP3DGraphicalEffect : public CPGraphicalEffect2
{
protected:
virtual void InternalReset( void ) override;
public:
virtual ~CP3DGraphicalEffect()
{
}
CP3DGraphicalEffect( UI08 effectType );
CP3DGraphicalEffect( UI08 effectType, CBaseObject &src, CBaseObject &trg );
CP3DGraphicalEffect( UI08 effectType, CBaseObject &src );
virtual void EffectId3D( UI16 effectId3D );
virtual void ExplodeEffectId( UI16 explodeEffectId );
virtual void MovingEffectId( UI16 movingEffectId );
virtual void TargetObjSerial( SERIAL targetObjSerial );
virtual void LayerId( UI08 layerId );
virtual void Unknown( UI16 unknown );
};
class CPDrawObject : public CPUOXBuffer
{
protected:
UI16 curLen;
virtual void InternalReset( void ) override;
void SetLength( UI16 len );
void CopyData( CChar& mChar );
public:
CPDrawObject();
CPDrawObject( CChar &mChar );
virtual ~CPDrawObject()
{
}
void Finalize( void );
void AddItem( CItem *toAdd, bool alwaysSendItemHue );
void SetRepFlag( UI08 value );
};
class CPObjectInfo : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
void CopyData( CItem& mItem, CChar& mChar );
void CopyItemData( CItem& mItem, CChar& mChar );
void CopyMultiData( CMultiObj& mObj, CChar& mChar );
public:
CPObjectInfo();
CPObjectInfo( CItem& mItem, CChar& mChar );
virtual ~CPObjectInfo()
{
}
void Objects( CItem& mItem, CChar& mChar );
};
class CPNewObjectInfo : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
void CopyData( CItem& mItem, CChar& mChar );
void CopyItemData( CItem& mItem, CChar& mChar );
void CopyMultiData( CMultiObj& mObj, CChar& mChar );
public:
CPNewObjectInfo();
CPNewObjectInfo( CItem& mItem, CChar& mChar );
virtual ~CPNewObjectInfo()
{
}
void Objects( CItem& mItem, CChar& mChar );
};
class CPGameServerList : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
virtual ~CPGameServerList()
{
}
CPGameServerList();
CPGameServerList( UI16 numServers );
virtual void NumberOfServers( UI16 numItems );
virtual void AddServer( UI16 servNum, PhysicalServer *data );
virtual void addEntry( const std::string & name, UI32 addressBig );
};
class CPSecureTrading : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
void CopyData( CBaseObject& mItem, SERIAL mItem2, SERIAL mItem3 );
public:
CPSecureTrading();
CPSecureTrading( CBaseObject& mItem );
CPSecureTrading( CBaseObject& mItem, SERIAL mItem2, SERIAL mItem3 );
virtual ~CPSecureTrading()
{
}
void Action( UI08 value );
void Name( const std::string& nameFollowing );
};
class CPGodModeToggle : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
virtual void CopyData( CSocket *s );
public:
virtual ~CPGodModeToggle()
{
}
CPGodModeToggle();
CPGodModeToggle( CSocket *s );
CPGodModeToggle& operator = ( CSocket *s );
virtual void ToggleStatus( bool toSet );
};
enum LoginDenyReason
{
LDR_UNKNOWNUSER = 0,
LDR_ACCOUNTINUSE,
LDR_ACCOUNTDISABLED,
LDR_BADPASSWORD,
LDR_COMMSFAILURE,
LDR_NODENY
};
class CPLoginDeny : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
virtual ~CPLoginDeny()
{
}
CPLoginDeny();
CPLoginDeny( LoginDenyReason reason );
virtual void DenyReason( LoginDenyReason reason );
};
class CPCharDeleteResult : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
virtual ~CPCharDeleteResult()
{
}
CPCharDeleteResult();
CPCharDeleteResult( SI08 result );
virtual void DeleteResult( SI08 result );
};
class CharacterListUpdate : public CPUOXBuffer
{
protected:
UI08 numChars;
virtual void InternalReset( void ) override;
public:
virtual ~CharacterListUpdate()
{
}
CharacterListUpdate();
CharacterListUpdate( UI08 charCount );
virtual void AddCharName( UI08 charCount, std::string charName );
};
class CPKREncryptionRequest : public CPUOXBuffer
{
public:
CPKREncryptionRequest( CSocket *mSock );
};
class CPClientVersion : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
virtual ~CPClientVersion()
{
}
CPClientVersion();
};
// This packet is specific for Krrios' client
class CPKAccept : public CPUOXBuffer
{
public:
CPKAccept( UI08 Response );
};
class CPUnicodeSpeech : public CPUOXBuffer
{
protected:
void CopyData( CBaseObject &toCopy );
void CopyData( CPITalkRequestAscii &talking );
void CopyData( CPITalkRequestUnicode &talking );
void InternalReset( void ) override;
void SetLength( UI16 value );
public:
CPUnicodeSpeech();
virtual ~CPUnicodeSpeech()
{
}
CPUnicodeSpeech( CBaseObject &toCopy );
CPUnicodeSpeech( CPITalkRequestAscii &talking );
CPUnicodeSpeech( CPITalkRequestUnicode &talking );
void ID( UI16 toSet );
void Serial( SERIAL toSet );
void Object( CPITalkRequestAscii &tSaid );
void Object( CPITalkRequestUnicode &tSaid );
void Object( CBaseObject &toCopy );
void Language( char *value );
void Language( const char *value );
void Lanaguge( const std::string& value );
void Type( UI08 value );
void Colour( COLOUR value );
void Font( UI16 value );
void Name( std::string value );
void Message( const char *value );
void GhostIt( UI08 method );
CPUnicodeSpeech &operator = ( CBaseObject &toCopy );
CPUnicodeSpeech &operator = ( CPITalkRequestAscii &talking );
CPUnicodeSpeech &operator = ( CPITalkRequestUnicode &talking );
};
class CPUnicodeMessage : public CPUOXBuffer
{
protected:
void CopyData( CBaseObject &toCopy );
void InternalReset( void ) override;
void SetLength( UI16 value );
public:
CPUnicodeMessage();
virtual ~CPUnicodeMessage()
{
}
CPUnicodeMessage( CBaseObject &toCopy );
void ID( UI16 toSet );
void Serial( SERIAL toSet );
void Object( CBaseObject &toCopy );
void Language( char *value );
void Language( const char *value );
void Lanaguge( const std::string& value );
void Type( UI08 value );
void Colour( COLOUR value );
void Font( UI16 value );
void Name( std::string value );
void Message( const char *value );
void Message( const std::string value );
CPUnicodeMessage &operator = ( CBaseObject &toCopy );
};
class CPAllNames3D : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
virtual void CopyData( CBaseObject& obj );
public:
virtual ~CPAllNames3D()
{
}
CPAllNames3D();
CPAllNames3D( CBaseObject& obj );
void Object( CBaseObject& obj );
};
class CPBookPage : public CPUOXBuffer
{
protected:
UI16 bookLength;
UI08 pageCount;
virtual void InternalReset( void ) override;
virtual void CopyData( CItem& obj );
void IncLength( UI08 amount );
public:
virtual ~CPBookPage()
{
}
CPBookPage();
CPBookPage( CItem& obj );
void Object( CItem& obj );
void Serial( SERIAL value );
void NewPage( SI16 pNum = -1 );
void NewPage( SI16 pNum, const std::vector<std::string> *lines );
void AddLine( const std::string& line );
void Finalize( void );
};
class CPSendGumpMenu : public CPUOXBuffer
{
protected:
std::vector<std::string> commands, text;
public:
virtual ~CPSendGumpMenu()
{
}
CPSendGumpMenu();
void UserId( SERIAL value );
void GumpId( SERIAL value );
void X( UI32 value );
void Y( UI32 value );
void addCommand( const std::string& msg );
void addText( const std::string& msg );
void Finalize( void );
virtual void Log( std::ostream &outStream, bool fullHeader ) override;
};
class CPNewSpellBook : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
virtual void CopyData( CItem& obj );
public:
virtual ~CPNewSpellBook()
{
}
CPNewSpellBook();
CPNewSpellBook( CItem& obj );
virtual bool ClientCanReceive( CSocket *mSock ) override;
};
class CPDisplayDamage : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
virtual void CopyData( CChar& ourTarg, UI16 ourDamage );
public:
virtual ~CPDisplayDamage()
{
}
CPDisplayDamage();
CPDisplayDamage( CChar& ourTarg, UI16 ourDamage );
virtual bool ClientCanReceive( CSocket *mSock ) override;
};
class CPQueryToolTip : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
virtual void CopyData( CBaseObject& mObj );
public:
virtual ~CPQueryToolTip()
{
}
CPQueryToolTip();
CPQueryToolTip( CBaseObject& mObj );
virtual bool ClientCanReceive( CSocket *mSock ) override;
};
class CPToolTip : public CPUOXBuffer
{
protected:
struct ToolTipEntry_st
{
std::string ourText;
UI32 stringNum;
size_t stringLen;
SI16 sortOrder = DEFAULT_TOOLTIP_SORT; // default, if nothing else is specified
// Overload the less-than operator for sorting
bool operator<( const ToolTipEntry_st& other ) const {
return sortOrder < other.sortOrder;
}
};
std::vector<ToolTipEntry_st> ourEntries;
struct ToolTipEntryWide_st
{
std::wstring ourText;
UI32 stringNum;
size_t stringLen;
};
std::vector<ToolTipEntryWide_st> ourWideEntries;
CSocket *tSock;
virtual void InternalReset( void ) override;
virtual void CopyData( SERIAL objSer, bool addAmount = true, bool playerVendor = false );
void CopyItemData( CItem& cItem, size_t &totalStringLen, bool addAmount = true, bool playerVendor = false );
void CopyCharData( CChar& mChar, size_t &totalStringLen );
void FinalizeData( ToolTipEntry_st tempEntry, size_t &totalStringLen );
void FinalizeWideData( ToolTipEntryWide_st tempEntry, size_t &totalStringLen );
public:
virtual ~CPToolTip()
{
}
CPToolTip();
CPToolTip( SERIAL objSer, CSocket *mSock = nullptr, bool addAmount = true, bool playerVendor = false );
};
class CPSellList : public CPUOXBuffer
{
protected:
UI16 numItems;
virtual void InternalReset( void ) override;
virtual void CopyData( CChar& mChar, CChar& vendor );
public:
virtual ~CPSellList()
{
}
CPSellList();
void AddContainer( CTownRegion *tReg, CItem *spItem, CItem *ourPack, size_t &packetLen );
void AddItem( CTownRegion *tReg, CItem *spItem, CItem *opItem, size_t &packetLen );
bool CanSellItems( CChar &mChar, CChar &vendor );
};
class CPOpenMessageBoard : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
virtual void CopyData( CSocket *mSock );
public:
virtual ~CPOpenMessageBoard()
{
}
CPOpenMessageBoard( CSocket *mSock );
};
struct MsgBoardPost_st;
class CPOpenMsgBoardPost : public CPUOXBuffer
{
protected:
bool bFullPost;
virtual void InternalReset( void ) override;
virtual void CopyData( CSocket *mSock, const MsgBoardPost_st &mbPost );
public:
virtual ~CPOpenMsgBoardPost()
{
}
CPOpenMsgBoardPost( CSocket *mSock, const MsgBoardPost_st& mbPost, bool fullPost );
};
class CPSendMsgBoardPosts : public CPUOXBuffer
{
protected:
UI16 postCount;
virtual void InternalReset( void ) override;
public:
virtual ~CPSendMsgBoardPosts()
{
}
virtual void CopyData( CSocket *msock, SERIAL mSerial, UI08 pToggle, SERIAL oSerial );
void Finalize( void );
CPSendMsgBoardPosts();
};
class CPHealthBarStatus : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
CPHealthBarStatus();
CPHealthBarStatus( CChar& mChar, CSocket &target, UI08 healthBarColor );
virtual ~CPHealthBarStatus()
{
}
virtual void CopyData( CChar& mChar );
virtual void SetHBStatusData( CChar& mChar, CSocket &target, UI08 healthBarColor );
};
class CPExtendedStats : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
CPExtendedStats();
CPExtendedStats( CChar& mChar );
virtual ~CPExtendedStats()
{
}
virtual void CopyData( CChar& mChar );
};
class CPEnableMapDiffs : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
CPEnableMapDiffs();
virtual ~CPEnableMapDiffs()
{
}
virtual void CopyData( void );
};
class CPNewBookHeader : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
std::string title;
std::string author;
public:
CPNewBookHeader();
virtual ~CPNewBookHeader()
{
}
void Serial( UI32 bookSer );
void Flag1( UI08 toSet );
void Flag2( UI08 toSet );
void Pages( UI16 numPages );
void Author( const std::string& author );
void Title( const std::string& title );
void Finalize( void );
};
class CPPopupMenu : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
CPPopupMenu();
CPPopupMenu( CBaseObject&, CSocket& );
virtual ~CPPopupMenu()
{
}
virtual void CopyData( CBaseObject&, CSocket& );
};
class CPClilocMessage : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
CPClilocMessage();
CPClilocMessage( CBaseObject& toCopy );
virtual ~CPClilocMessage()
{
}
virtual void CopyData( CBaseObject& toCopy );
void Serial( SERIAL sourceSer );
void Body( UI16 toSet );
void Type( UI08 toSet );
void Hue( UI16 hueColor );
void Font( UI16 fontType );
void Message( UI32 messageNum );
void Name( const std::string& name );
void ArgumentString( const std::string& arguments );
};
class CPPartyMemberList : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
CPPartyMemberList();
virtual ~CPPartyMemberList()
{
}
void AddMember( CChar *member );
virtual void Log( std::ostream &outStream, bool fullHeader = true ) override;
};
class CPPartyInvitation : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
CPPartyInvitation();
virtual ~CPPartyInvitation()
{
}
virtual void Log( std::ostream &outStream, bool fullHeader = true ) override;
void Leader( CChar *leader );
};
class CPPartyMemberRemove : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
CPPartyMemberRemove( CChar *removed );
virtual ~CPPartyMemberRemove()
{
}
void AddMember( CChar *member );
virtual void Log( std::ostream &outStream, bool fullHeader = true ) override;
};
class CPPartyTell : public CPUOXBuffer
{
protected:
virtual void InternalReset( void ) override;
public:
CPPartyTell( CPIPartyCommand *told, CSocket *talker );
virtual ~CPPartyTell()
{
}
virtual void Log( std::ostream &outStream, bool fullHeader = true ) override;
};
class CPDropItemApproved : public CPUOXBuffer
{
public:
CPDropItemApproved();
};
#endif