diff --git a/source/CGump.cpp b/source/CGump.cpp index 669e0e758..b47edead7 100644 --- a/source/CGump.cpp +++ b/source/CGump.cpp @@ -166,7 +166,7 @@ UI16 CGump::StartPage( void ) //o------------------------------------------------------------------------------------------------o //| Purpose - Callback for gumps.cpp //o------------------------------------------------------------------------------------------------o -void MultiGumpCallback( CSocket *mySocket, SERIAL gumpSerial, UI32 button ) +void MultiGumpCallback( CSocket /* *mySocket */, SERIAL gumpSerial, UI32 /*button*/ ) { if( gumpSerial == 0 ) // Do nothing on close gump return; diff --git a/source/CJSEngine.cpp b/source/CJSEngine.cpp index bac6961ea..c6a1f0584 100644 --- a/source/CJSEngine.cpp +++ b/source/CJSEngine.cpp @@ -248,6 +248,12 @@ void CJSRuntime::InitializePrototypes() { protoList.resize( JSP_COUNT ); + // Use the below in a void context since they are used in cScript.cpp + (void)uox_class; + (void)UOXGumpData_class; + (void)CGumpData_Methods; + (void)CGumpDataProperties; + JSContext *cx = jsContext; JSObject *obj = jsGlobal; diff --git a/source/CPacketReceive.cpp b/source/CPacketReceive.cpp index a66927161..1a05c72e0 100644 --- a/source/CPacketReceive.cpp +++ b/source/CPacketReceive.cpp @@ -28,7 +28,7 @@ //o------------------------------------------------------------------------------------------------o void pSplit( const std::string pass0, std::string &pass1, std::string &pass2 ) { - auto i = 0; + size_t i = 0; pass1 = ""; auto pass0Len = pass0.length(); while( i < pass0Len && pass0[i] != '/' ) @@ -762,7 +762,7 @@ void CPINewClientVersion::Receive( void ) { tSock->ClientType( CV_SA2D ); } - else if( tSock->ClientVersion() <= 117442562 && clientRevision >= 0 && clientRevision < 9 ) + else if( tSock->ClientVersion() <= 117442562 && clientRevision < 9 ) { tSock->ClientType( CV_SA2D ); } @@ -3560,7 +3560,7 @@ CPIMsgBoardEvent::CPIMsgBoardEvent( CSocket *s ) : CPInputBuffer( s ) { Receive(); } -CPIMsgBoardEvent::CPIMsgBoardEvent( CSocket *s, bool receive ) : CPInputBuffer( s ) +CPIMsgBoardEvent::CPIMsgBoardEvent( CSocket *s, bool /*receive*/ ) : CPInputBuffer( s ) { } diff --git a/source/CPacketReceive.h b/source/CPacketReceive.h index f3c7f56af..2068fa27b 100644 --- a/source/CPacketReceive.h +++ b/source/CPacketReceive.h @@ -749,8 +749,8 @@ class CPISubcommands : public CPInputBuffer protected: UI16 subCmd; UI08 subSubCmd; + bool skipOver; CPInputBuffer * subPacket; - bool skipOver; public: virtual ~CPISubcommands() { diff --git a/source/CPacketSend.cpp b/source/CPacketSend.cpp index 7126bc435..4b45a89c2 100644 --- a/source/CPacketSend.cpp +++ b/source/CPacketSend.cpp @@ -260,7 +260,7 @@ void CPacketSpeech::CopyData( CSpeechEntry &toCopy ) } break; case SPK_NULL: - + break; } if( toCopy.SpeakerName().length() != 0 ) @@ -269,7 +269,7 @@ void CPacketSpeech::CopyData( CSpeechEntry &toCopy ) } } -void CPacketSpeech::GhostIt( UI08 method ) +void CPacketSpeech::GhostIt( UI08 /*method*/ ) { // Method ignored currently // Designed with the idea that you can garble text in more than one way @@ -330,7 +330,7 @@ void CPacketSpeech::Font( FontType toPut ) #if defined( _MSC_VER ) #pragma note( "Function Warning: CPacketSpeech::Language(), does nothing" ) #endif -void CPacketSpeech::Language( UnicodeTypes toPut ) +void CPacketSpeech::Language( UnicodeTypes /*toPut*/ ) { } @@ -861,7 +861,7 @@ void CPRelay::InternalReset( void ) //| Client will send this packet without 0x01 Byte when the server sends FLAG & 0x02 in the 0xA9 Packet during logon. //| Server responds with same packet, plus the 0x01 Byte, allowing client to finish logging out. //o------------------------------------------------------------------------------------------------o -CPLogoutResponse::CPLogoutResponse( UI08 extraByte ) +CPLogoutResponse::CPLogoutResponse( UI08 /*extraByte*/ ) { InternalReset(); } @@ -1465,10 +1465,11 @@ void CPWeather::Particles( UI08 nParts ) { nParts = 70; } - if( nParts < 0 ) + // nParts is unsigned and can never be negative + /*if( nParts < 0 ) { nParts = 0; - } + }*/ pStream.WriteByte( 2, nParts ); } @@ -3254,6 +3255,7 @@ void CPEnableClientFeatures::Log( std::ofstream &outStream, bool fullHeader ) //o------------------------------------------------------------------------------------------------o CPNegotiateAssistantFeatures::CPNegotiateAssistantFeatures( CSocket *mSock ) { + (void)mSock; // unused variable pStream.ReserveSize( 12 ); pStream.WriteByte( 0, 0xF0 ); pStream.WriteShort( 1, 0x000C ); @@ -4068,6 +4070,7 @@ void CharacterListUpdate::AddCharName( UI08 charNum, std::string charName ) //o------------------------------------------------------------------------------------------------o CPKREncryptionRequest::CPKREncryptionRequest( CSocket* s) { + (void)s; // unused variable pStream.ReserveSize( 77 ); pStream.WriteByte( 0, 0xE3 ); @@ -4249,7 +4252,7 @@ CPKrriosClientSpecial::CPKrriosClientSpecial( CSocket * mSock, CChar * mChar, UI size_t numMembers = mGuild->NumMembers(); // First, look up the recruits to see who's online - for( auto i = 0; i < numRecruits; i++ ) + for( size_t i = 0; i < numRecruits; i++ ) { SERIAL recruitSerial = mGuild->RecruitNumber( i ); CChar *guildRecruit = CalcCharObjFromSer( recruitSerial ); @@ -4283,7 +4286,7 @@ CPKrriosClientSpecial::CPKrriosClientSpecial( CSocket * mSock, CChar * mChar, UI } // Then, look up the guild members to see who's online - for( auto i = 0; i < numMembers; i++ ) + for( size_t i = 0; i < numMembers; i++ ) { SERIAL memberSerial = mGuild->MemberNumber( i ); CChar *guildMember = CalcCharObjFromSer( memberSerial ); @@ -5045,7 +5048,7 @@ CPCharAndStartLoc::CPCharAndStartLoc() { InternalReset(); } -CPCharAndStartLoc::CPCharAndStartLoc( CAccountBlock_st& actbBlock, UI08 numCharacters, UI08 numLocations, CSocket *mSock ) +CPCharAndStartLoc::CPCharAndStartLoc( CAccountBlock_st& actbBlock, UI08 /*numCharacters*/, UI08 numLocations, CSocket *mSock ) { InternalReset(); @@ -5124,6 +5127,7 @@ void CPCharAndStartLoc::AddCharacter( CChar *toAdd, UI08 charOffset ) void CPCharAndStartLoc::NumberOfLocations( UI08 numLocations, CSocket *mSock ) { + (void)mSock; // unused variable UI16 byteOffset = 0; byteOffset = static_cast( 4 + ( pStream.GetByte( 3 ) * 60 )); pStream.WriteByte( byteOffset, numLocations ); @@ -6234,7 +6238,7 @@ void CPUnicodeSpeech::ID( UI16 toSet ) pStream.WriteShort( 7, toSet ); } -void CPUnicodeSpeech::GhostIt( UI08 method ) +void CPUnicodeSpeech::GhostIt( UI08 /*method*/ ) { // Method ignored currently // Designed with the idea that you can garble text in more than one way @@ -8212,6 +8216,7 @@ void CPSendMsgBoardPosts::InternalReset( void ) void CPSendMsgBoardPosts::CopyData( CSocket *mSock, SERIAL mSerial, UI08 pToggle, SERIAL oSerial ) { + (void)pToggle; // unused variable size_t byteOffset = pStream.GetSize(); if( mSock->ClientVerShort() >= CVS_6017 ) { diff --git a/source/CResponse.cpp b/source/CResponse.cpp index 9e2a614cc..228c5fd66 100644 --- a/source/CResponse.cpp +++ b/source/CResponse.cpp @@ -85,6 +85,7 @@ auto FindNearbyItems( CBaseObject *mObj, distLocs distance ) -> std::vectorIsDead() ) return; @@ -953,6 +955,7 @@ CVendorBuyResponse::CVendorBuyResponse( bool vendVal, const std::string &text ) //o------------------------------------------------------------------------------------------------o bool CVendorBuyResponse::Handle( CSocket *mSock, CChar *mChar, CChar *vendorNpc ) { + (void)mChar; // unused variable vendorNpc->SetTimer( tNPC_MOVETIME, BuildTimeValue( 60 )); if( vendorNpc->GetNpcAiType() == AI_PLAYERVENDOR ) { @@ -1018,6 +1021,7 @@ CVendorViewResponse::CVendorViewResponse( bool vendVal, const std::string &text //o------------------------------------------------------------------------------------------------o bool CVendorViewResponse::Handle( CSocket *mSock, CChar *mChar, CChar *vendorNpc ) { + (void)mChar; // unused variable if( vendorNpc->GetNpcAiType() == AI_PLAYERVENDOR ) { CItem *pack = nullptr; @@ -1044,6 +1048,7 @@ CVendorGoldResponse::CVendorGoldResponse( bool vendVal, const std::string &text //o------------------------------------------------------------------------------------------------o bool CVendorGoldResponse::Handle( CSocket *mSock, CChar *mChar, CChar *vendorNpc ) { + (void)mChar; // unused variable if( vendorNpc->GetNpcAiType() == AI_PLAYERVENDOR ) { CChar *mChar = mSock->CurrcharObj(); @@ -1112,6 +1117,7 @@ CVendorStatusResponse::CVendorStatusResponse( bool vendVal, const std::string &t //o------------------------------------------------------------------------------------------------o bool CVendorStatusResponse::Handle( CSocket *mSock, CChar *mChar, CChar *vendorNpc ) { + (void)mChar; // unused variable if( vendorNpc->GetNpcAiType() == AI_PLAYERVENDOR ) { CChar *mChar = mSock->CurrcharObj(); @@ -1156,6 +1162,7 @@ CVendorDismissResponse::CVendorDismissResponse( bool vendVal, const std::string //o------------------------------------------------------------------------------------------------o bool CVendorDismissResponse::Handle( CSocket *mSock, CChar *mChar, CChar *vendorNpc ) { + (void)mChar; // unused variable if( vendorNpc->GetNpcAiType() == AI_PLAYERVENDOR ) { CChar *mChar = mSock->CurrcharObj(); diff --git a/source/Makefile b/source/Makefile index fc62027d1..7a06b11cf 100644 --- a/source/Makefile +++ b/source/Makefile @@ -9,7 +9,7 @@ else CXX := g++ endif -CXXFLAGS := -std=c++17 -O2 -pthread -Wno-shift-negative-value +CXXFLAGS := -std=c++17 -O2 -pthread -Wno-shift-negative-value -Wall -Wextra -Werror LDFLAGS := -L$(SPIDER) -ljs32 -L$(ZLIB) -lz TARGET := uox3 INCLUDE := -I$(SPIDER) -I. -I$(ZLIB) diff --git a/source/MultiMul.hpp b/source/MultiMul.hpp index cb61465e6..1d426e042 100644 --- a/source/MultiMul.hpp +++ b/source/MultiMul.hpp @@ -60,8 +60,8 @@ class MultiCollection : public UopFile std::unordered_map _multis; std::string _housingBin; - auto ProcessEntry( std::size_t entry, std::size_t index, std::vector &data ) -> bool final; - auto ProcessHash( std::uint64_t hash, std::size_t entry, std::vector &data ) -> bool final; + auto virtual ProcessEntry( std::size_t entry, std::size_t index, std::vector &data ) -> bool final; + auto virtual ProcessHash( std::uint64_t hash, std::size_t entry, std::vector &data ) -> bool final; auto ProcessData( bool isHS, int index, std::vector &data ) -> void; public: diff --git a/source/UOPData.hpp b/source/UOPData.hpp index 5279482e7..d333dc499 100644 --- a/source/UOPData.hpp +++ b/source/UOPData.hpp @@ -214,15 +214,15 @@ protected: //============================================================================== // Virtual routines, modify based on uop file processing //============================================================================== - virtual auto ProcessEntry( std::size_t entry, std::size_t index, std::vector &data ) -> bool { return true; } - virtual auto ProcessHash( std::uint64_t hash, std::size_t entry, std::vector &data ) -> bool { return true; } + virtual auto ProcessEntry( std::size_t /*entry*/, std::size_t /*index*/, std::vector /*&data*/ ) -> bool { return true; } + virtual auto ProcessHash( std::uint64_t /*hash*/, std::size_t /*entry*/, std::vector /*&data*/ ) -> bool { return true; } virtual auto NonIndexHash( std::uint64_t hash, std::size_t entry, std::vector &data ) -> bool; virtual auto EndUopProcessing() -> bool { return true; }; virtual auto EntriesToWrite() const -> int { return 0; } virtual auto WriteCompress() const -> bool { return false; } - virtual auto EntryForWrite( int entry ) -> std::vector{ return std::vector(); } - virtual auto WriteHash( int entry ) -> std::string{ return std::string(); }; + virtual auto EntryForWrite( int /*entry*/ ) -> std::vector{ return std::vector(); } + virtual auto WriteHash( int /*entry*/ ) -> std::string{ return std::string(); }; //======================================================================== auto IsUop( const std::string &filepath ) const -> bool; diff --git a/source/UOXJSClasses.h b/source/UOXJSClasses.h index e371956f2..4e5ad2e44 100644 --- a/source/UOXJSClasses.h +++ b/source/UOXJSClasses.h @@ -9,7 +9,7 @@ #define __UOXJSClasses__ #include "UOXJSPropertyFuncs.h" -static JSClass global_class = +inline JSClass global_class = { "global", 0, @@ -20,8 +20,10 @@ static JSClass global_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; + static JSClass uox_class = { "uoxscript", @@ -33,10 +35,11 @@ static JSClass uox_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; -static JSClass UOXSpell_class = +inline JSClass UOXSpell_class = { "UOXSpell", JSCLASS_HAS_PRIVATE, @@ -47,10 +50,11 @@ static JSClass UOXSpell_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; -static JSClass UOXSpells_class = +inline JSClass UOXSpells_class = { "UOXSpells", JSCLASS_HAS_PRIVATE, @@ -61,10 +65,11 @@ static JSClass UOXSpells_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; -static JSClass UOXGlobalSkill_class = +inline JSClass UOXGlobalSkill_class = { "UOXGlobalSkill", JSCLASS_HAS_PRIVATE, @@ -75,10 +80,11 @@ static JSClass UOXGlobalSkill_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; -static JSClass UOXGlobalSkills_class = +inline JSClass UOXGlobalSkills_class = { "UOXGlobalSkills", JSCLASS_HAS_PRIVATE, @@ -89,10 +95,11 @@ static JSClass UOXGlobalSkills_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; -static JSClass UOXCreateEntry_class = +inline JSClass UOXCreateEntry_class = { "UOXCreateEntry", JSCLASS_HAS_PRIVATE, @@ -103,10 +110,11 @@ static JSClass UOXCreateEntry_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; -static JSClass UOXCreateEntries_class = +inline JSClass UOXCreateEntries_class = { "UOXCreateEntries", JSCLASS_HAS_PRIVATE, @@ -117,10 +125,11 @@ static JSClass UOXCreateEntries_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; -static JSClass UOXTimer_class = +inline JSClass UOXTimer_class = { "UOXTimer", JSCLASS_HAS_PRIVATE, @@ -131,10 +140,11 @@ static JSClass UOXTimer_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; -static JSExtendedClass UOXChar_class = +inline JSExtendedClass UOXChar_class = { { "UOXChar", JSCLASS_HAS_PRIVATE | JSCLASS_IS_EXTENDED, @@ -155,7 +165,7 @@ static JSExtendedClass UOXChar_class = JSCLASS_NO_RESERVED_MEMBERS }; -static JSExtendedClass UOXItem_class = +inline JSExtendedClass UOXItem_class = { { "UOXItem", JSCLASS_HAS_PRIVATE | JSCLASS_IS_EXTENDED, @@ -181,6 +191,7 @@ static JSExtendedClass UOXItem_class = // Returns the skill-values for a character // and is able to set them too // +/* Unused static JSClass UOXSkills_class = { "UOXSkills", @@ -192,9 +203,12 @@ static JSClass UOXSkills_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; +*/ +/* Unused static JSClass UOXBaseSkills_class = { "UOXBaseSkills", @@ -206,9 +220,12 @@ static JSClass UOXBaseSkills_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; +*/ +/* Unused static JSClass UOXSkillsUsed_class = { "UOXSkillsUsed", @@ -220,9 +237,12 @@ static JSClass UOXSkillsUsed_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; +*/ +/* Unused static JSClass UOXSkillsLock_class = { "UOXSkillsLock", @@ -234,10 +254,12 @@ static JSClass UOXSkillsLock_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; +*/ -static JSClass UOXRace_class = +inline JSClass UOXRace_class = { "UOXRace", JSCLASS_HAS_PRIVATE, @@ -248,10 +270,11 @@ static JSClass UOXRace_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; -static JSClass UOXGuild_class = +inline JSClass UOXGuild_class = { "UOXGuild", JSCLASS_HAS_PRIVATE, @@ -262,9 +285,11 @@ static JSClass UOXGuild_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; +/* Unused static JSClass UOXGuilds_class = { "UOXGuilds", @@ -276,10 +301,12 @@ static JSClass UOXGuilds_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; +*/ -static JSClass UOXRegion_class = +inline JSClass UOXRegion_class = { "UOXRegion", JSCLASS_HAS_PRIVATE, @@ -290,10 +317,11 @@ static JSClass UOXRegion_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; -static JSClass UOXSpawnRegion_class = +inline JSClass UOXSpawnRegion_class = { "UOXSpawnRegion", JSCLASS_HAS_PRIVATE, @@ -304,10 +332,11 @@ static JSClass UOXSpawnRegion_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; -static JSExtendedClass UOXSocket_class = +inline JSExtendedClass UOXSocket_class = { { "UOXSocket", JSCLASS_HAS_PRIVATE | JSCLASS_IS_EXTENDED, @@ -328,7 +357,7 @@ static JSExtendedClass UOXSocket_class = JSCLASS_NO_RESERVED_MEMBERS }; -static JSClass UOXFile_class = +inline JSClass UOXFile_class = { "UOXCFile", JSCLASS_HAS_PRIVATE, @@ -339,11 +368,12 @@ static JSClass UOXFile_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; // var myGump = new Gump; // should be possible -static JSClass UOXGump_class = +inline JSClass UOXGump_class = { "Gump", JSCLASS_HAS_PRIVATE, @@ -354,7 +384,8 @@ static JSClass UOXGump_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; //o------------------------------------------------------------------------------------------------o @@ -372,10 +403,11 @@ static JSClass UOXGumpData_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; -static JSClass UOXAccount_class = +inline JSClass UOXAccount_class = { "CAccountClass", JSCLASS_HAS_PRIVATE, @@ -386,10 +418,11 @@ static JSClass UOXAccount_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; -static JSClass UOXConsole_class = +inline JSClass UOXConsole_class = { "CConsoleClass", JSCLASS_HAS_PRIVATE, @@ -400,9 +433,11 @@ static JSClass UOXConsole_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; +/* Unused static JSClass UOXScriptSection_class = { "UOXScriptSection", @@ -414,10 +449,12 @@ static JSClass UOXScriptSection_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; +*/ -static JSClass UOXResource_class = +inline JSClass UOXResource_class = { "UOXResource", JSCLASS_HAS_PRIVATE, @@ -428,10 +465,11 @@ static JSClass UOXResource_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; -static JSClass UOXPacket_class = +inline JSClass UOXPacket_class = { "Packet", JSCLASS_HAS_PRIVATE, @@ -442,10 +480,11 @@ static JSClass UOXPacket_class = JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - JS_FinalizeStub + JS_FinalizeStub, + JSCLASS_NO_OPTIONAL_MEMBERS }; -static JSExtendedClass UOXParty_class = +inline JSExtendedClass UOXParty_class = { { "UOXParty", JSCLASS_HAS_PRIVATE | JSCLASS_IS_EXTENDED, diff --git a/source/UOXJSMethods.h b/source/UOXJSMethods.h index 06b374ed6..9f30b608d 100644 --- a/source/UOXJSMethods.h +++ b/source/UOXJSMethods.h @@ -302,7 +302,7 @@ JSMethodFunc CSocket_FinishedTriggerWords; JSMethodFunc CRegion_AddScriptTrigger; JSMethodFunc CRegion_RemoveScriptTrigger; - +/* Unused static JSFunctionSpec CGump_Methods[] = { { "Free", CGump_Free, 0, 0, 0 }, @@ -340,8 +340,9 @@ static JSFunctionSpec CGump_Methods[] = { "Send", CGump_Send, 1, 0, 0 }, { nullptr, nullptr, 0, 0, 0 } }; +*/ -static JSFunctionSpec CChar_Methods[] = +inline JSFunctionSpec CChar_Methods[] = { { "KillTimers", CBase_KillTimers, 1, 0, 0 }, { "GetJSTimer", CBase_GetJSTimer, 2, 0, 0 }, @@ -437,11 +438,10 @@ static JSFunctionSpec CChar_Methods[] = { "GetPetList", CChar_GetPetList, 0, 0, 0 }, { "HasBeenOwner", CChar_HasBeenOwner, 1, 0, 0 }, { "CalculateControlChance", CChar_CalculateControlChance, 1, 0, 0 }, - { nullptr, nullptr, 0, 0, 0 } }; -static JSFunctionSpec CItem_Methods[] = +inline JSFunctionSpec CItem_Methods[] = { { "KillTimers", CBase_KillTimers, 1, 0, 0 }, { "GetJSTimer", CBase_GetJSTimer, 2, 0, 0 }, @@ -522,19 +522,19 @@ static JSFunctionSpec CItem_Methods[] = { "FirstChar", CMulti_FirstChar, 1, 0, 0 }, { "NextChar", CMulti_NextChar, 1, 0, 0 }, { "FinishedChars", CMulti_FinishedChars, 1, 0, 0 }, - + //{ "SetMoreSerial", CBase_SetMoreSerial, 1, 0, 0 }, { nullptr, nullptr, 0, 0, 0 } }; -static JSFunctionSpec CRegion_Methods[] = +inline JSFunctionSpec CRegion_Methods[] = { { "AddScriptTrigger", CRegion_AddScriptTrigger, 1, 0, 0 }, { "RemoveScriptTrigger", CRegion_RemoveScriptTrigger, 1, 0, 0 }, { nullptr, nullptr, 0, 0, 0 } }; -static JSFunctionSpec CSocket_Methods[] = +inline JSFunctionSpec CSocket_Methods[] = { { "SysMessage", CMisc_SysMessage, 10, 0, 0 }, { "Disconnect", CSocket_Disconnect, 0, 0, 0 }, @@ -574,13 +574,13 @@ static JSFunctionSpec CSocket_Methods[] = { nullptr, nullptr, 0, 0, 0 } }; -static JSFunctionSpec CGuild_Methods[] = +inline JSFunctionSpec CGuild_Methods[] = { { "AcceptRecruit", CGuild_AcceptRecruit, 1, 0, 0 }, { nullptr, nullptr, 0, 0, 0 } }; -static JSFunctionSpec CRace_Methods[] = +inline JSFunctionSpec CRace_Methods[] = { { "CanWearArmour", CRace_CanWearArmour, 1, 0, 0 }, { "IsValidHairColour", CRace_IsValidHairColour, 1, 0, 0 }, @@ -598,6 +598,7 @@ static JSFunctionSpec CGumpData_Methods[] = { nullptr, nullptr, 0, 0, 0 } }; +/* Unused static JSFunctionSpec CFile_Methods[] = { { "Free", CFile_Free, 0, 0, 0 }, @@ -611,15 +612,16 @@ static JSFunctionSpec CFile_Methods[] = { "Pos", CFile_Pos, 1, 0, 0 }, { nullptr, nullptr, 0, 0, 0 } }; +*/ -static JSFunctionSpec CAccount_Methods[] = +inline JSFunctionSpec CAccount_Methods[] = { { "AddAccount", CAccount_AddAccount, 4, 0, 0 }, { "DelAccount", CAccount_DelAccount, 1, 0, 0 }, { nullptr, nullptr, 0, 0, 0 } }; -static JSFunctionSpec CConsole_Methods[] = +inline JSFunctionSpec CConsole_Methods[] = { { "Print", CConsole_Print, 1, 0, 0 }, { "Log", CConsole_Log, 1, 0, 0 }, @@ -644,6 +646,7 @@ static JSFunctionSpec CConsole_Methods[] = { nullptr, nullptr, 0, 0, 0 } }; +/* Unused static JSFunctionSpec CPacket_Methods[] = { { "Free", CPacket_Free, 0, 0, 0 }, @@ -654,8 +657,9 @@ static JSFunctionSpec CPacket_Methods[] = { "ReserveSize", CPacket_ReserveSize, 1, 0, 0 }, { nullptr, nullptr, 0, 0, 0 } }; +*/ -static JSFunctionSpec CParty_Methods[] = +inline JSFunctionSpec CParty_Methods[] = { { "GetMember", CParty_GetMember, 1, 0, 0 }, { "Add", CParty_Add, 1, 0, 0 }, diff --git a/source/UOXJSPropertySpecs.h b/source/UOXJSPropertySpecs.h index 725c7ef83..1d51718fa 100644 --- a/source/UOXJSPropertySpecs.h +++ b/source/UOXJSPropertySpecs.h @@ -13,597 +13,591 @@ #include "enums.h" -static JSPropertySpec CSpellProperties[] = +inline JSPropertySpec CSpellProperties[] = { - { "id", CSP_ID, JSPROP_ENUMANDPERM }, - { "action", CSP_ACTION, JSPROP_ENUMANDPERM }, - { "delay", CSP_DELAY, JSPROP_ENUMANDPERM }, - { "damageDelay", CSP_DAMAGEDELAY, JSPROP_ENUMANDPERM }, - { "recoveryDelay", CSP_RECOVERYDELAY, JSPROP_ENUMANDPERM }, - { "health", CSP_HEALTH, JSPROP_ENUMANDPERM }, - { "stamina", CSP_STAMINA, JSPROP_ENUMANDPERM }, - { "mana", CSP_MANA, JSPROP_ENUMANDPERM }, - { "mantra", CSP_MANTRA, JSPROP_ENUMANDPERM }, - { "name", CSP_NAME, JSPROP_ENUMANDPERM }, - { "strToSay", CSP_STRTOSAY, JSPROP_ENUMANDPERM }, - { "scrollLow", CSP_SCROLLLOW, JSPROP_ENUMANDPERM }, - { "scrollHigh", CSP_SCROLLHIGH, JSPROP_ENUMANDPERM }, - { "circle", CSP_CIRCLE, JSPROP_ENUMANDPERM }, - { "lowSkill", CSP_LOWSKILL, JSPROP_ENUMANDPERM }, - { "highSkill", CSP_HIGHSKILL, JSPROP_ENUMANDPERM }, - { "ginseng", CSP_GINSENG, JSPROP_ENUMANDPERM }, - { "moss", CSP_MOSS, JSPROP_ENUMANDPERM }, - { "drake", CSP_DRAKE, JSPROP_ENUMANDPERM }, - { "pearl", CSP_PEARL, JSPROP_ENUMANDPERM }, - { "silk", CSP_SILK, JSPROP_ENUMANDPERM }, - { "ash", CSP_ASH, JSPROP_ENUMANDPERM }, - { "shade", CSP_SHADE, JSPROP_ENUMANDPERM }, - { "garlic", CSP_GARLIC, JSPROP_ENUMANDPERM }, - { "requireTarget", CSP_REQUIRETARGET, JSPROP_ENUMANDPERM }, - { "requireItem", CSP_REQUIREITEM, JSPROP_ENUMANDPERM }, - { "requireLocation", CSP_REQUIRELOCATION, JSPROP_ENUMANDPERM }, - { "requireChar", CSP_REQUIRECHAR, JSPROP_ENUMANDPERM }, - { "travelSpell", CSP_TRAVELSPELL, JSPROP_ENUMANDPERM }, - { "fieldSpell", CSP_FIELDSPELL, JSPROP_ENUMANDPERM }, - { "reflectable", CSP_REFLECTABLE, JSPROP_ENUMANDPERM }, - { "aggressiveSpell", CSP_AGGRESSIVESPELL, JSPROP_ENUMANDPERM }, - { "resistable", CSP_RESISTABLE, JSPROP_ENUMANDPERM }, - { "soundEffect", CSP_SOUNDEFFECT, JSPROP_ENUMANDPERM }, - { "enabled", CSP_ENABLED, JSPROP_ENUMANDPERM }, - { "baseDmg", CSP_BASEDMG, JSPROP_ENUMANDPERM }, - { nullptr, (SI08)0, (UI08)0 } + { "id", CSP_ID, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "action", CSP_ACTION, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "delay", CSP_DELAY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "damageDelay", CSP_DAMAGEDELAY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "recoveryDelay", CSP_RECOVERYDELAY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "health", CSP_HEALTH, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "stamina", CSP_STAMINA, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "mana", CSP_MANA, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "mantra", CSP_MANTRA, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "name", CSP_NAME, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "strToSay", CSP_STRTOSAY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "scrollLow", CSP_SCROLLLOW, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "scrollHigh", CSP_SCROLLHIGH, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "circle", CSP_CIRCLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "lowSkill", CSP_LOWSKILL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "highSkill", CSP_HIGHSKILL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "ginseng", CSP_GINSENG, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "moss", CSP_MOSS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "drake", CSP_DRAKE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "pearl", CSP_PEARL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "silk", CSP_SILK, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "ash", CSP_ASH, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "shade", CSP_SHADE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "garlic", CSP_GARLIC, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "requireTarget", CSP_REQUIRETARGET, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "requireItem", CSP_REQUIREITEM, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "requireLocation", CSP_REQUIRELOCATION, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "requireChar", CSP_REQUIRECHAR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "travelSpell", CSP_TRAVELSPELL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "fieldSpell", CSP_FIELDSPELL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "reflectable", CSP_REFLECTABLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "aggressiveSpell", CSP_AGGRESSIVESPELL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "resistable", CSP_RESISTABLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "soundEffect", CSP_SOUNDEFFECT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "enabled", CSP_ENABLED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "baseDmg", CSP_BASEDMG, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { nullptr, (SI08)0, (UI08)0, nullptr, nullptr } }; -static JSPropertySpec CGlobalSkillProperties[] = +inline JSPropertySpec CGlobalSkillProperties[] = { - { "name", CGSKILL_NAME, JSPROP_ENUMANDPERM }, - { "madeWord", CGSKILL_MADEWORD, JSPROP_ENUMANDPERM }, - { "strength", CGSKILL_STRENGTH, JSPROP_ENUMANDPERM }, - { "dexterity", CGSKILL_DEXTERITY, JSPROP_ENUMANDPERM }, - { "intelligence", CGSKILL_INTELLIGENCE, JSPROP_ENUMANDPERM }, - { "skillDelay", CGSKILL_SKILLDELAY, JSPROP_ENUMANDPERM }, - { "scriptID", CGSKILL_SCRIPTID, JSPROP_ENUMANDPERM }, - - { nullptr, (SI08)0, (UI08)0 } + { "name", CGSKILL_NAME, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "madeWord", CGSKILL_MADEWORD, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "strength", CGSKILL_STRENGTH, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "dexterity", CGSKILL_DEXTERITY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "intelligence", CGSKILL_INTELLIGENCE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "skillDelay", CGSKILL_SKILLDELAY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "scriptID", CGSKILL_SCRIPTID, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { nullptr, (SI08)0, (UI08)0, nullptr, nullptr } }; -static JSPropertySpec CCreateEntryProperties[] = +inline JSPropertySpec CCreateEntryProperties[] = { - { "id", CMAKE_ID, JSPROP_ENUMANDPERM }, - { "name", CMAKE_NAME, JSPROP_ENUMANDPERM }, - { "addItem", CMAKE_ADDITEM, JSPROP_ENUMANDPERM }, - { "colour", CMAKE_COLOUR, JSPROP_ENUMANDPERM }, - { "sound", CMAKE_SOUND, JSPROP_ENUMANDPERM }, - { "minRank", CMAKE_MINRANK, JSPROP_ENUMANDPERM }, - { "maxRank", CMAKE_MAXRANK, JSPROP_ENUMANDPERM }, - { "delay", CMAKE_DELAY, JSPROP_ENUMANDPERM }, - { "spell", CMAKE_SPELL, JSPROP_ENUMANDPERM }, - { "resources", CMAKE_RESOURCES, JSPROP_ENUMANDPERM }, - { "skills", CMAKE_SKILLS, JSPROP_ENUMANDPERM }, - { "avgMinSkill", CMAKE_AVGMINSKILL, JSPROP_ENUMANDPERM }, - { "avgMaxSkill", CMAKE_AVGMAXSKILL, JSPROP_ENUMANDPERM }, - { nullptr, (SI08)0, (UI08)0 } + { "id", CMAKE_ID, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "name", CMAKE_NAME, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "addItem", CMAKE_ADDITEM, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "colour", CMAKE_COLOUR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "sound", CMAKE_SOUND, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "minRank", CMAKE_MINRANK, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxRank", CMAKE_MAXRANK, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "delay", CMAKE_DELAY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "spell", CMAKE_SPELL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "resources", CMAKE_RESOURCES, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "skills", CMAKE_SKILLS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "avgMinSkill", CMAKE_AVGMINSKILL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "avgMaxSkill", CMAKE_AVGMAXSKILL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { nullptr, (SI08)0, (UI08)0, nullptr, nullptr } }; -static JSPropertySpec CTimerProperties[] = +inline JSPropertySpec CTimerProperties[] = { // Character Timers - { "TIMEOUT", TIMER_TIMEOUT, JSPROP_ENUMPERMRO }, - { "INVIS", TIMER_INVIS, JSPROP_ENUMPERMRO }, - { "HUNGER", TIMER_HUNGER, JSPROP_ENUMPERMRO }, - { "THIRST", TIMER_THIRST, JSPROP_ENUMPERMRO }, - { "POISONTIME", TIMER_POISONTIME, JSPROP_ENUMPERMRO }, - { "POISONTEXT", TIMER_POISONTEXT, JSPROP_ENUMPERMRO }, - { "POISONWEAROFF", TIMER_POISONWEAROFF, JSPROP_ENUMPERMRO }, - { "SPELLTIME", TIMER_SPELLTIME, JSPROP_ENUMPERMRO }, - { "SPELLRECOVERYTIME", TIMER_SPELLRECOVERYTIME,JSPROP_ENUMPERMRO }, - { "CRIMFLAG", TIMER_CRIMFLAG, JSPROP_ENUMPERMRO }, - { "ANTISPAM", TIMER_ANTISPAM, JSPROP_ENUMPERMRO }, - { "MURDERRATE", TIMER_MURDERRATE, JSPROP_ENUMPERMRO }, - { "PEACETIMER", TIMER_PEACETIMER, JSPROP_ENUMPERMRO }, - { "FLYINGTOGGLE", TIMER_FLYINGTOGGLE, JSPROP_ENUMPERMRO }, - { "FIREFIELDTICK", TIMER_FIREFIELDTICK, JSPROP_ENUMPERMRO }, - { "POISONFIELDTICK", TIMER_POISONFIELDTICK, JSPROP_ENUMPERMRO }, - { "PARAFIELDTICK", TIMER_PARAFIELDTICK, JSPROP_ENUMPERMRO }, - { "MOVETIME", TIMER_MOVETIME, JSPROP_ENUMPERMRO }, - { "SPATIMER", TIMER_SPATIMER, JSPROP_ENUMPERMRO }, - { "SUMMONTIME", TIMER_SUMMONTIME, JSPROP_ENUMPERMRO }, - { "EVADETIME", TIMER_EVADETIME, JSPROP_ENUMPERMRO }, - { "LOYALTYTIME", TIMER_LOYALTYTIME, JSPROP_ENUMPERMRO }, - { "IDLEANIMTIME", TIMER_IDLEANIMTIME, JSPROP_ENUMPERMRO }, - { "LOGOUT", TIMER_LOGOUT, JSPROP_ENUMPERMRO }, + { "TIMEOUT", TIMER_TIMEOUT, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "INVIS", TIMER_INVIS, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "HUNGER", TIMER_HUNGER, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "THIRST", TIMER_THIRST, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "POISONTIME", TIMER_POISONTIME, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "POISONTEXT", TIMER_POISONTEXT, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "POISONWEAROFF", TIMER_POISONWEAROFF, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "SPELLTIME", TIMER_SPELLTIME, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "SPELLRECOVERYTIME", TIMER_SPELLRECOVERYTIME,JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "CRIMFLAG", TIMER_CRIMFLAG, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "ANTISPAM", TIMER_ANTISPAM, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "MURDERRATE", TIMER_MURDERRATE, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "PEACETIMER", TIMER_PEACETIMER, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "FLYINGTOGGLE", TIMER_FLYINGTOGGLE, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "FIREFIELDTICK", TIMER_FIREFIELDTICK, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "POISONFIELDTICK", TIMER_POISONFIELDTICK, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "PARAFIELDTICK", TIMER_PARAFIELDTICK, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "MOVETIME", TIMER_MOVETIME, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "SPATIMER", TIMER_SPATIMER, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "SUMMONTIME", TIMER_SUMMONTIME, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "EVADETIME", TIMER_EVADETIME, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "LOYALTYTIME", TIMER_LOYALTYTIME, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "IDLEANIMTIME", TIMER_IDLEANIMTIME, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "LOGOUT", TIMER_LOGOUT, JSPROP_ENUMPERMRO, nullptr, nullptr }, // Socket Timers - { "SOCK_SKILLDELAY", TIMER_SOCK_SKILLDELAY, JSPROP_ENUMPERMRO }, - { "SOCK_OBJDELAY", TIMER_SOCK_OBJDELAY, JSPROP_ENUMPERMRO }, - { "SOCK_SPIRITSPEAK", TIMER_SOCK_SPIRITSPEAK, JSPROP_ENUMPERMRO }, - { "SOCK_TRACKING", TIMER_SOCK_TRACKING, JSPROP_ENUMPERMRO }, - { "SOCK_FISHING", TIMER_SOCK_FISHING, JSPROP_ENUMPERMRO }, - { "SOCK_MUTETIME", TIMER_SOCK_MUTETIME, JSPROP_ENUMPERMRO }, - { "SOCK_TRACKINGDISPLAY", TIMER_SOCK_TRACKINGDISPLAY, JSPROP_ENUMPERMRO }, - { "SOCK_TRAFFICWARDEN", TIMER_SOCK_TRAFFICWARDEN, JSPROP_ENUMPERMRO }, - { nullptr, (SI08)0, (UI08)0 } + { "SOCK_SKILLDELAY", TIMER_SOCK_SKILLDELAY, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "SOCK_OBJDELAY", TIMER_SOCK_OBJDELAY, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "SOCK_SPIRITSPEAK", TIMER_SOCK_SPIRITSPEAK, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "SOCK_TRACKING", TIMER_SOCK_TRACKING, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "SOCK_FISHING", TIMER_SOCK_FISHING, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "SOCK_MUTETIME", TIMER_SOCK_MUTETIME, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "SOCK_TRACKINGDISPLAY", TIMER_SOCK_TRACKINGDISPLAY, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "SOCK_TRAFFICWARDEN", TIMER_SOCK_TRAFFICWARDEN, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { nullptr, (SI08)0, (UI08)0, nullptr, nullptr } }; -static JSPropertySpec CRaceProperties[] = +inline JSPropertySpec CRaceProperties[] = { - { "id", CRP_ID, JSPROP_ENUMANDPERM }, - { "name", CRP_NAME, JSPROP_ENUMANDPERM }, - { "weakToWeather", CRP_WEAKTOWEATHER, JSPROP_ENUMPERMIDX }, - { "requiresBeard", CRP_REQUIRESBEARD, JSPROP_ENUMANDPERM }, - { "requiresNoBeard", CRP_REQUIRESNOBEARD, JSPROP_ENUMANDPERM }, - { "isPlayerRace", CRP_ISPLAYERRACE, JSPROP_ENUMANDPERM }, - { "genderRestrict", CRP_GENDERRESTRICT, JSPROP_ENUMANDPERM }, - { "armourClass", CRP_ARMOURCLASS, JSPROP_ENUMANDPERM }, - { "languageSkillMin", CRP_LANGUAGESKILLMIN, JSPROP_ENUMANDPERM }, - { "skillAdjustment", CRP_SKILLADJUSTMENT, JSPROP_ENUMPERMIDX }, - { "poisonResistance", CRP_POISONRESISTANCE, JSPROP_ENUMANDPERM }, - { "magicResistance", CRP_MAGICRESISTANCE, JSPROP_ENUMANDPERM }, - { "visibleDistance", CRP_VISIBLEDISTANCE, JSPROP_ENUMANDPERM }, - { "nightVision", CRP_NIGHTVISION, JSPROP_ENUMANDPERM }, - { nullptr, (SI08)0, (UI08)0 } + { "id", CRP_ID, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "name", CRP_NAME, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "weakToWeather", CRP_WEAKTOWEATHER, JSPROP_ENUMPERMIDX, nullptr, nullptr }, + { "requiresBeard", CRP_REQUIRESBEARD, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "requiresNoBeard", CRP_REQUIRESNOBEARD, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isPlayerRace", CRP_ISPLAYERRACE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "genderRestrict", CRP_GENDERRESTRICT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "armourClass", CRP_ARMOURCLASS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "languageSkillMin", CRP_LANGUAGESKILLMIN, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "skillAdjustment", CRP_SKILLADJUSTMENT, JSPROP_ENUMPERMIDX, nullptr, nullptr }, + { "poisonResistance", CRP_POISONRESISTANCE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "magicResistance", CRP_MAGICRESISTANCE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "visibleDistance", CRP_VISIBLEDISTANCE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "nightVision", CRP_NIGHTVISION, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { nullptr, (SI08)0, (UI08)0, nullptr, nullptr } }; -static JSPropertySpec CRegionProperties[] = +inline JSPropertySpec CRegionProperties[] = { - { "name", CREGP_NAME, JSPROP_ENUMANDPERM }, - { "mayor", CREGP_MAYOR, JSPROP_ENUMANDPERM }, - { "race", CREGP_RACE, JSPROP_ENUMANDPERM }, - { "tax", CREGP_TAX, JSPROP_ENUMANDPERM }, - { "taxResource", CREGP_TAXRESOURCE, JSPROP_ENUMANDPERM }, - { "canMark", CREGP_CANMARK, JSPROP_ENUMANDPERM }, - { "canRecall", CREGP_CANRECALL, JSPROP_ENUMANDPERM }, - { "canGate", CREGP_CANGATE, JSPROP_ENUMANDPERM }, - { "canTeleport", CREGP_CANTELEPORT, JSPROP_ENUMANDPERM }, - { "canPlaceHouse", CREGP_CANPLACEHOUSE, JSPROP_ENUMANDPERM }, - { "isGuarded", CREGP_ISGUARDED, JSPROP_ENUMANDPERM }, - { "canCastAggressive", CREGP_CANCASTAGGRESSIVE, JSPROP_ENUMANDPERM }, - { "isSafeZone", CREGP_ISSAFEZONE, JSPROP_ENUMANDPERM }, - { "health", CREGP_HEALTH, JSPROP_ENUMANDPERM }, - { "isDungeon", CREGP_ISDUNGEON, JSPROP_ENUMANDPERM }, - { "worldNumber", CREGP_WORLDNUMBER, JSPROP_ENUMANDPERM }, - { "instanceID", CREGP_INSTANCEID, JSPROP_ENUMANDPERM }, - { "chanceBigOre", CREGP_CHANCEBIGORE, JSPROP_ENUMANDPERM }, - { "numOrePrefs", CREGP_NUMOREPREFERENCES, JSPROP_ENUMPERMRO }, - { "population", CREGP_POPULATION, JSPROP_ENUMPERMRO }, - { "members", CREGP_MEMBERS, JSPROP_ENUMPERMIDX }, - { "id", CREGP_ID, JSPROP_ENUMANDPERM }, - { "scriptTrigger", CREGP_SCRIPTTRIGGER, JSPROP_ENUMANDPERM }, - { "scriptTriggers", CREGP_SCRIPTTRIGGERS, JSPROP_ENUMANDPERM }, - { "numGuards", CREGP_NUMGUARDS, JSPROP_ENUMANDPERM }, - { "taxes", CREGP_TAXES, JSPROP_ENUMANDPERM }, - { "reserves", CREGP_RESERVES, JSPROP_ENUMANDPERM }, - { "appearance", CREGP_APPEARANCE, JSPROP_ENUMANDPERM }, - { "music", CREGP_MUSIC, JSPROP_ENUMANDPERM }, - { "weather", CREGP_WEATHER, JSPROP_ENUMANDPERM }, - { "owner", CREGP_OWNER, JSPROP_ENUMANDPERM }, - { nullptr, (SI08)0, (UI08)0 } + { "name", CREGP_NAME, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "mayor", CREGP_MAYOR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "race", CREGP_RACE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "tax", CREGP_TAX, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "taxResource", CREGP_TAXRESOURCE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "canMark", CREGP_CANMARK, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "canRecall", CREGP_CANRECALL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "canGate", CREGP_CANGATE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "canTeleport", CREGP_CANTELEPORT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "canPlaceHouse", CREGP_CANPLACEHOUSE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isGuarded", CREGP_ISGUARDED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "canCastAggressive", CREGP_CANCASTAGGRESSIVE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isSafeZone", CREGP_ISSAFEZONE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "health", CREGP_HEALTH, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isDungeon", CREGP_ISDUNGEON, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "worldNumber", CREGP_WORLDNUMBER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "instanceID", CREGP_INSTANCEID, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "chanceBigOre", CREGP_CHANCEBIGORE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "numOrePrefs", CREGP_NUMOREPREFERENCES, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "population", CREGP_POPULATION, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "members", CREGP_MEMBERS, JSPROP_ENUMPERMIDX, nullptr, nullptr }, + { "id", CREGP_ID, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "scriptTrigger", CREGP_SCRIPTTRIGGER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "scriptTriggers", CREGP_SCRIPTTRIGGERS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "numGuards", CREGP_NUMGUARDS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "taxes", CREGP_TAXES, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "reserves", CREGP_RESERVES, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "appearance", CREGP_APPEARANCE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "music", CREGP_MUSIC, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "weather", CREGP_WEATHER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "owner", CREGP_OWNER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { nullptr, (SI08)0, (UI08)0, nullptr, nullptr } }; -static JSPropertySpec CSpawnRegionProperties[] = +inline JSPropertySpec CSpawnRegionProperties[] = { - { "name", CSPAWNREGP_NAME, JSPROP_ENUMANDPERM }, - { "regionNum", CSPAWNREGP_REGIONNUM, JSPROP_ENUMANDPERM }, - { "itemList", CSPAWNREGP_ITEMLIST, JSPROP_ENUMANDPERM }, - { "npcList", CSPAWNREGP_NPCLIST, JSPROP_ENUMANDPERM }, - { "item", CSPAWNREGP_ITEM, JSPROP_ENUMANDPERM }, - { "npc", CSPAWNREGP_NPC, JSPROP_ENUMANDPERM }, - { "maxItems", CSPAWNREGP_MAXITEMS, JSPROP_ENUMANDPERM }, - { "maxNpcs", CSPAWNREGP_MAXNPCS, JSPROP_ENUMANDPERM }, - { "itemCount", CSPAWNREGP_ITEMCOUNT, JSPROP_ENUMANDPERM }, - { "npcCount", CSPAWNREGP_NPCCOUNT, JSPROP_ENUMANDPERM }, - { "onlyOutside", CSPAWNREGP_ONLYOUTSIDE, JSPROP_ENUMANDPERM }, - { "isSpawner", CSPAWNREGP_ISSPAWNER, JSPROP_ENUMANDPERM }, - { "defZ", CSPAWNREGP_DEFZ, JSPROP_ENUMANDPERM }, - { "prefZ", CSPAWNREGP_PREFZ, JSPROP_ENUMANDPERM }, - { "x1", CSPAWNREGP_X1, JSPROP_ENUMANDPERM }, - { "y1", CSPAWNREGP_X2, JSPROP_ENUMANDPERM }, - { "x2", CSPAWNREGP_X2, JSPROP_ENUMANDPERM }, - { "y2", CSPAWNREGP_Y2, JSPROP_ENUMANDPERM }, - { "world", CSPAWNREGP_WORLD, JSPROP_ENUMANDPERM }, - { "instanceID", CSPAWNREGP_INSTANCEID, JSPROP_ENUMANDPERM }, - { "minTime", CSPAWNREGP_MINTIME, JSPROP_ENUMANDPERM }, - { "maxTime", CSPAWNREGP_MAXTIME, JSPROP_ENUMANDPERM }, - { "call", CSPAWNREGP_CALL, JSPROP_ENUMANDPERM }, - { nullptr, (SI08)0, (UI08)0 } + { "name", CSPAWNREGP_NAME, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "regionNum", CSPAWNREGP_REGIONNUM, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "itemList", CSPAWNREGP_ITEMLIST, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "npcList", CSPAWNREGP_NPCLIST, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "item", CSPAWNREGP_ITEM, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "npc", CSPAWNREGP_NPC, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxItems", CSPAWNREGP_MAXITEMS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxNpcs", CSPAWNREGP_MAXNPCS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "itemCount", CSPAWNREGP_ITEMCOUNT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "npcCount", CSPAWNREGP_NPCCOUNT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "onlyOutside", CSPAWNREGP_ONLYOUTSIDE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isSpawner", CSPAWNREGP_ISSPAWNER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "defZ", CSPAWNREGP_DEFZ, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "prefZ", CSPAWNREGP_PREFZ, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "x1", CSPAWNREGP_X1, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "y1", CSPAWNREGP_X2, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "x2", CSPAWNREGP_X2, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "y2", CSPAWNREGP_Y2, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "world", CSPAWNREGP_WORLD, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "instanceID", CSPAWNREGP_INSTANCEID, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "minTime", CSPAWNREGP_MINTIME, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxTime", CSPAWNREGP_MAXTIME, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "call", CSPAWNREGP_CALL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { nullptr, (SI08)0, (UI08)0, nullptr, nullptr } }; -static JSPropertySpec CGuildProperties[] = +inline JSPropertySpec CGuildProperties[] = { - { "name", CGP_NAME, JSPROP_ENUMANDPERM }, - { "type", CGP_TYPE, JSPROP_ENUMANDPERM }, - { "master", CGP_MASTER, JSPROP_ENUMANDPERM }, - { "stone", CGP_STONE, JSPROP_ENUMANDPERM }, - { "numMembers", CGP_NUMMEMBERS, JSPROP_ENUMPERMRO }, - { "numRecruits", CGP_NUMRECRUITS, JSPROP_ENUMPERMRO }, - { "members", CGP_MEMBERS, JSPROP_ENUMPERMIDX }, - { "recruits", CGP_RECRUITS, JSPROP_ENUMPERMIDX }, - { "charter", CGP_CHARTER, JSPROP_ENUMANDPERM }, - { "abbreviation", CGP_ABBREVIATION, JSPROP_ENUMANDPERM }, - { "webPage", CGP_WEBPAGE, JSPROP_ENUMANDPERM }, - { nullptr, (SI08)0, (UI08)0} + { "name", CGP_NAME, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "type", CGP_TYPE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "master", CGP_MASTER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "stone", CGP_STONE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "numMembers", CGP_NUMMEMBERS, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "numRecruits", CGP_NUMRECRUITS, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "members", CGP_MEMBERS, JSPROP_ENUMPERMIDX, nullptr, nullptr }, + { "recruits", CGP_RECRUITS, JSPROP_ENUMPERMIDX, nullptr, nullptr }, + { "charter", CGP_CHARTER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "abbreviation", CGP_ABBREVIATION, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "webPage", CGP_WEBPAGE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { nullptr, (SI08)0, (UI08)0, nullptr, nullptr } }; -static JSPropertySpec CCharacterProps[] = +inline JSPropertySpec CCharacterProps[] = { - { "sectionID", CCP_SECTIONID, JSPROP_ENUMANDPERM }, - { "name", CCP_NAME, JSPROP_ENUMANDPERM }, - { "title", CCP_TITLE, JSPROP_ENUMANDPERM }, - { "x", CCP_X, JSPROP_ENUMANDPERM }, - { "y", CCP_Y, JSPROP_ENUMANDPERM }, - { "z", CCP_Z, JSPROP_ENUMANDPERM }, - { "oldX", CCP_OLDX, JSPROP_ENUMANDPERM }, - { "oldY", CCP_OLDY, JSPROP_ENUMANDPERM }, - { "oldZ", CCP_OLDZ, JSPROP_ENUMANDPERM }, - { "id", CCP_ID, JSPROP_ENUMANDPERM }, - { "colour", CCP_COLOUR, JSPROP_ENUMANDPERM }, - { "color", CCP_COLOUR, JSPROP_ENUMANDPERM }, - { "skin", CCP_COLOUR, JSPROP_ENUMANDPERM }, - { "hue", CCP_COLOUR, JSPROP_ENUMANDPERM }, - { "controlSlots", CCP_CONTROLSLOTS, JSPROP_ENUMANDPERM }, - { "controlSlotsUsed", CCP_CONTROLSLOTSUSED, JSPROP_ENUMANDPERM }, - { "orneriness", CCP_ORNERINESS, JSPROP_ENUMANDPERM }, - { "owner", CCP_OWNER, JSPROP_ENUMANDPERM }, - { "visible", CCP_VISIBLE, JSPROP_ENUMANDPERM }, - { "serial", CCP_SERIAL, JSPROP_ENUMANDPERM }, - { "health", CCP_HEALTH, JSPROP_ENUMANDPERM }, - { "scripttrigger", CCP_SCRIPTTRIGGER, JSPROP_ENUMANDPERM }, - { "scriptTriggers", CCP_SCRIPTTRIGGERS, JSPROP_ENUMANDPERM }, - { "worldnumber", CCP_WORLDNUMBER, JSPROP_ENUMANDPERM }, - { "instanceID", CCP_INSTANCEID, JSPROP_ENUMANDPERM }, - { "target", CCP_TARGET, JSPROP_ENUMANDPERM }, - { "dexterity", CCP_DEXTERITY, JSPROP_ENUMANDPERM }, - { "intelligence", CCP_INTELLIGENCE, JSPROP_ENUMANDPERM }, - { "strength", CCP_STRENGTH, JSPROP_ENUMANDPERM }, - { "actualDexterity", CCP_ACTUALDEXTERITY, JSPROP_ENUMANDPERM }, - { "actualIntelligence", CCP_ACTUALINTELLIGENCE, JSPROP_ENUMANDPERM }, - { "actualStrength", CCP_ACTUALSTRENGTH, JSPROP_ENUMANDPERM }, - { "skills", CCP_SKILLS, JSPROP_ENUMANDPERM }, - { "mana", CCP_MANA, JSPROP_ENUMANDPERM }, - { "stamina", CCP_STAMINA, JSPROP_ENUMANDPERM }, - { "pack", CCP_CHARPACK, JSPROP_ENUMANDPERM }, - { "fame", CCP_FAME, JSPROP_ENUMANDPERM }, - { "karma", CCP_KARMA, JSPROP_ENUMANDPERM }, - { "attack", CCP_ATTACK, JSPROP_ENUMPERMRO }, - { "canAttack", CCP_CANATTACK, JSPROP_ENUMANDPERM }, - { "fleeAt", CCP_FLEEAT, JSPROP_ENUMANDPERM }, - { "reAttackAt", CCP_REATTACKAT, JSPROP_ENUMANDPERM }, - { "brkPeaceChance", CCP_BRKPEACE, JSPROP_ENUMANDPERM }, - { "setPeace", CCP_SETPEACE, JSPROP_ENUMANDPERM }, - { "hunger", CCP_HUNGER, JSPROP_ENUMANDPERM }, - { "hungerRate", CCP_HUNGERRATE, JSPROP_ENUMPERMRO }, - { "thirst", CCP_THIRST, JSPROP_ENUMANDPERM }, - { "thirstRate", CCP_THIRSTRATE, JSPROP_ENUMPERMRO }, - { "frozen", CCP_FROZEN, JSPROP_ENUMANDPERM }, - { "commandlevel", CCP_COMMANDLEVEL, JSPROP_ENUMANDPERM }, - { "race", CCP_RACE, JSPROP_ENUMANDPERM }, - { "criminal", CCP_CRIMINAL, JSPROP_ENUMANDPERM }, - { "murderer", CCP_MURDERER, JSPROP_ENUMPERMRO }, - { "innocent", CCP_INNOCENT, JSPROP_ENUMANDPERM }, - { "murdercount", CCP_MURDERCOUNT, JSPROP_ENUMANDPERM }, - { "neutral", CCP_NEUTRAL, JSPROP_ENUMANDPERM }, - { "npcFlag", CCP_NPCFLAG, JSPROP_ENUMANDPERM }, - { "gender", CCP_GENDER, JSPROP_ENUMANDPERM }, - { "dead", CCP_DEAD, JSPROP_ENUMPERMRO }, - { "npc", CCP_NPC, JSPROP_ENUMANDPERM }, - { "isAwake", CCP_AWAKE, JSPROP_ENUMANDPERM }, - { "online", CCP_ONLINE, JSPROP_ENUMPERMRO }, - { "direction", CCP_DIRECTION, JSPROP_ENUMANDPERM }, - { "isRunning", CCP_ISRUNNING, JSPROP_ENUMANDPERM }, - { "region", CCP_REGION, JSPROP_ENUMANDPERM }, - { "town", CCP_TOWN, JSPROP_ENUMANDPERM }, - { "guild", CCP_GUILD, JSPROP_ENUMANDPERM }, - { "baseskills", CCP_BASESKILLS, JSPROP_ENUMANDPERM }, - { "skillsused", CCP_SKILLUSE, JSPROP_ENUMANDPERM }, - { "socket", CCP_SOCKET, JSPROP_ENUMANDPERM }, - { "isChar", CCP_ISCHAR, JSPROP_ENUMPERMRO }, - { "isItem", CCP_ISITEM, JSPROP_ENUMPERMRO }, - { "isSpawner", CCP_ISSPAWNER, JSPROP_ENUMPERMRO }, - { "spawnSerial", CCP_SPAWNSERIAL, JSPROP_ENUMPERMRO }, - { "maxhp", CCP_MAXHP, JSPROP_ENUMANDPERM }, - { "maxstamina", CCP_MAXSTAMINA, JSPROP_ENUMANDPERM }, - { "maxmana", CCP_MAXMANA, JSPROP_ENUMANDPERM }, - { "oldWandertype", CCP_OLDWANDERTYPE, JSPROP_ENUMANDPERM }, - { "wandertype", CCP_WANDERTYPE, JSPROP_ENUMANDPERM }, - { "fx1", CCP_FX1, JSPROP_ENUMANDPERM }, - { "fy1", CCP_FY1, JSPROP_ENUMANDPERM }, - { "fx2", CCP_FX2, JSPROP_ENUMANDPERM }, - { "fy2", CCP_FY2, JSPROP_ENUMANDPERM }, - { "fz", CCP_FZ, JSPROP_ENUMANDPERM }, - { "isonhorse", CCP_ISONHORSE, JSPROP_ENUMANDPERM }, - { "isFlying", CCP_ISFLYING, JSPROP_ENUMANDPERM }, - { "isGuarded", CCP_ISGUARDED, JSPROP_ENUMANDPERM }, - { "guarding", CCP_GUARDING, JSPROP_ENUMANDPERM }, - { "tempdex", CCP_TDEXTERITY, JSPROP_ENUMANDPERM }, - { "tempint", CCP_TINTELLIGENCE, JSPROP_ENUMANDPERM }, - { "tempstr", CCP_TSTRENGTH, JSPROP_ENUMANDPERM }, - { "poison", CCP_POISON, JSPROP_ENUMANDPERM }, - { "lightlevel", CCP_LIGHTLEVEL, JSPROP_ENUMANDPERM }, - { "vulnerable", CCP_VULNERABLE, JSPROP_ENUMANDPERM }, - { "willhunger", CCP_HUNGERSTATUS, JSPROP_ENUMANDPERM }, - { "willthirst", CCP_THIRSTSTATUS, JSPROP_ENUMANDPERM }, - { "lodamage", CCP_LODAMAGE, JSPROP_ENUMANDPERM }, - { "hidamage", CCP_HIDAMAGE, JSPROP_ENUMANDPERM }, - { "flag", CCP_FLAG, JSPROP_ENUMPERMRO }, - { "atWar", CCP_ATWAR, JSPROP_ENUMANDPERM }, - { "spellCast", CCP_SPELLCAST, JSPROP_ENUMANDPERM }, - { "isCasting", CCP_ISCASTING, JSPROP_ENUMANDPERM }, - { "priv", CCP_PRIV, JSPROP_ENUMANDPERM }, - - { "townPriv", CCP_TOWNPRIV, JSPROP_ENUMANDPERM }, - { "guildTitle", CCP_GUILDTITLE, JSPROP_ENUMANDPERM }, - { "fontType", CCP_FONTTYPE, JSPROP_ENUMANDPERM }, - { "sayColour", CCP_SAYCOLOUR, JSPROP_ENUMANDPERM }, - { "emoteColour", CCP_EMOTECOLOUR, JSPROP_ENUMANDPERM }, - { "attacker", CCP_ATTACKER, JSPROP_ENUMANDPERM }, - { "raceGate", CCP_RACEGATE, JSPROP_ENUMANDPERM }, - { "skillLock", CCP_SKILLLOCK, JSPROP_ENUMANDPERM }, - { "deaths", CCP_DEATHS, JSPROP_ENUMANDPERM }, - { "ownerCount", CCP_OWNERCOUNT, JSPROP_ENUMANDPERM }, - { "nextAct", CCP_NEXTACT, JSPROP_ENUMANDPERM }, - { "petCount", CCP_PETCOUNT, JSPROP_ENUMPERMRO }, - { "ownedItemsCount",CCP_OWNEDITEMSCOUNT,JSPROP_ENUMPERMRO }, - { "cell", CCP_CELL, JSPROP_ENUMANDPERM }, - { "allmove", CCP_ALLMOVE, JSPROP_ENUMANDPERM }, - { "houseicons", CCP_HOUSEICONS, JSPROP_ENUMANDPERM }, - { "spattack", CCP_SPATTACK, JSPROP_ENUMANDPERM }, - { "spdelay", CCP_SPDELAY, JSPROP_ENUMANDPERM }, - { "aitype", CCP_AITYPE, JSPROP_ENUMANDPERM }, - { "split", CCP_SPLIT, JSPROP_ENUMANDPERM }, - { "splitchance", CCP_SPLITCHANCE, JSPROP_ENUMANDPERM }, - { "hireling", CCP_HIRELING, JSPROP_ENUMANDPERM }, - { "trainer", CCP_TRAINER, JSPROP_ENUMANDPERM }, - { "weight", CCP_WEIGHT, JSPROP_ENUMANDPERM }, - { "squelch", CCP_SQUELCH, JSPROP_ENUMANDPERM }, - { "isJailed", CCP_ISJAILED, JSPROP_ENUMPERMRO }, - { "magicReflect", CCP_MAGICREFLECT, JSPROP_ENUMANDPERM }, - { "permanentMagicReflect", CCP_PERMMAGICREFLECT, JSPROP_ENUMANDPERM }, - { "tamed", CCP_TAMED, JSPROP_ENUMANDPERM }, - { "tamedHungerRate",CCP_TAMEDHUNGERRATE,JSPROP_ENUMANDPERM }, - { "tamedThirstRate",CCP_TAMEDTHIRSTRATE,JSPROP_ENUMANDPERM }, - { "hungerWildChance",CCP_HUNGERWILDCHANCE,JSPROP_ENUMANDPERM }, - { "thirstWildChance",CCP_THIRSTWILDCHANCE,JSPROP_ENUMANDPERM }, - { "foodList", CCP_FOODLIST, JSPROP_ENUMANDPERM }, - { "mounted", CCP_MOUNTED, JSPROP_ENUMANDPERM }, - { "stabled", CCP_STABLED, JSPROP_ENUMANDPERM }, - { "isUsingPotion", CCP_USINGPOTION, JSPROP_ENUMANDPERM }, - { "stealth", CCP_STEALTH, JSPROP_ENUMANDPERM }, - { "skillToTame", CCP_SKILLTOTAME, JSPROP_ENUMANDPERM }, - { "skillToProv", CCP_SKILLTOPROV, JSPROP_ENUMANDPERM }, - { "skillToPeace", CCP_SKILLTOPEACE, JSPROP_ENUMANDPERM }, - { "poisonStrength", CCP_POISONSTRENGTH, JSPROP_ENUMANDPERM }, - { "isPolymorphed", CCP_ISPOLYMORPHED, JSPROP_ENUMANDPERM }, - { "isIncognito", CCP_ISINCOGNITO, JSPROP_ENUMANDPERM }, - { "canRun", CCP_CANRUN, JSPROP_ENUMANDPERM }, - { "isMeditating", CCP_ISMEDITATING, JSPROP_ENUMANDPERM }, - { "isGM", CCP_ISGM, JSPROP_ENUMANDPERM }, - { "canBroadcast", CCP_CANBROADCAST, JSPROP_ENUMANDPERM }, - { "singClickSer", CCP_SINGCLICKSER, JSPROP_ENUMANDPERM }, - { "noSkillTitles", CCP_NOSKILLTITLES, JSPROP_ENUMANDPERM }, - { "isGMPageable", CCP_ISGMPAGEABLE, JSPROP_ENUMANDPERM }, - { "canSnoop", CCP_CANSNOOP, JSPROP_ENUMANDPERM }, - { "isCounselor", CCP_ISCOUNSELOR, JSPROP_ENUMANDPERM }, - { "noNeedMana", CCP_NONEEDMANA, JSPROP_ENUMANDPERM }, - { "isDispellable", CCP_ISDISPELLABLE, JSPROP_ENUMANDPERM }, - { "noNeedReags", CCP_NONEEDREAGS, JSPROP_ENUMANDPERM }, - { "orgID", CCP_ORGID, JSPROP_ENUMANDPERM }, - { "orgSkin", CCP_ORGSKIN, JSPROP_ENUMANDPERM }, - { "isAnimal", CCP_ISANIMAL, JSPROP_ENUMPERMRO }, - { "isHuman", CCP_ISHUMAN, JSPROP_ENUMPERMRO }, - { "isShop", CCP_ISSHOP, JSPROP_ENUMANDPERM }, - { "attackFirst", CCP_ATTACKFIRST, JSPROP_ENUMANDPERM }, - { "maxLoyalty", CCP_MAXLOYALTY, JSPROP_ENUMANDPERM }, - { "loyalty", CCP_LOYALTY, JSPROP_ENUMANDPERM }, - { "loyaltyRate", CCP_LOYALTYRATE, JSPROP_ENUMANDPERM }, - { "shouldSave", CCP_SHOULDSAVE, JSPROP_ENUMANDPERM }, - - { "partyLootable", CCP_PARTYLOOTABLE, JSPROP_ENUMANDPERM }, - { "party", CCP_PARTY, JSPROP_ENUMPERMRO }, - { "multi", CCP_MULTI, JSPROP_ENUMANDPERM }, - { "accountNum", CCP_ACCOUNTNUM, JSPROP_ENUMANDPERM }, - { "account", CCP_ACCOUNT, JSPROP_ENUMANDPERM }, - { "createdOn", CCP_CREATEDON, JSPROP_ENUMANDPERM }, - { "housesOwned", CCP_HOUSESOWNED, JSPROP_ENUMANDPERM }, - { "housesCoOwned", CCP_HOUSESCOOWNED, JSPROP_ENUMANDPERM }, - - { nullptr, (SI08)0, (UI08)0} + { "sectionID", CCP_SECTIONID, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "name", CCP_NAME, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "title", CCP_TITLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "x", CCP_X, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "y", CCP_Y, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "z", CCP_Z, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "oldX", CCP_OLDX, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "oldY", CCP_OLDY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "oldZ", CCP_OLDZ, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "id", CCP_ID, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "colour", CCP_COLOUR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "color", CCP_COLOUR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "skin", CCP_COLOUR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "hue", CCP_COLOUR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "controlSlots", CCP_CONTROLSLOTS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "controlSlotsUsed", CCP_CONTROLSLOTSUSED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "orneriness", CCP_ORNERINESS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "owner", CCP_OWNER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "visible", CCP_VISIBLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "serial", CCP_SERIAL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "health", CCP_HEALTH, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "scripttrigger", CCP_SCRIPTTRIGGER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "scriptTriggers", CCP_SCRIPTTRIGGERS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "worldnumber", CCP_WORLDNUMBER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "instanceID", CCP_INSTANCEID, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "target", CCP_TARGET, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "dexterity", CCP_DEXTERITY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "intelligence", CCP_INTELLIGENCE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "strength", CCP_STRENGTH, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "actualDexterity", CCP_ACTUALDEXTERITY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "actualIntelligence", CCP_ACTUALINTELLIGENCE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "actualStrength", CCP_ACTUALSTRENGTH, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "skills", CCP_SKILLS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "mana", CCP_MANA, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "stamina", CCP_STAMINA, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "pack", CCP_CHARPACK, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "fame", CCP_FAME, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "karma", CCP_KARMA, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "attack", CCP_ATTACK, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "canAttack", CCP_CANATTACK, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "fleeAt", CCP_FLEEAT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "reAttackAt", CCP_REATTACKAT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "brkPeaceChance", CCP_BRKPEACE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "setPeace", CCP_SETPEACE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "hunger", CCP_HUNGER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "hungerRate", CCP_HUNGERRATE, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "thirst", CCP_THIRST, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "thirstRate", CCP_THIRSTRATE, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "frozen", CCP_FROZEN, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "commandlevel", CCP_COMMANDLEVEL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "race", CCP_RACE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "criminal", CCP_CRIMINAL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "murderer", CCP_MURDERER, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "innocent", CCP_INNOCENT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "murdercount", CCP_MURDERCOUNT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "neutral", CCP_NEUTRAL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "npcFlag", CCP_NPCFLAG, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "gender", CCP_GENDER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "dead", CCP_DEAD, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "npc", CCP_NPC, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isAwake", CCP_AWAKE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "online", CCP_ONLINE, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "direction", CCP_DIRECTION, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isRunning", CCP_ISRUNNING, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "region", CCP_REGION, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "town", CCP_TOWN, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "guild", CCP_GUILD, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "baseskills", CCP_BASESKILLS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "skillsused", CCP_SKILLUSE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "socket", CCP_SOCKET, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isChar", CCP_ISCHAR, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "isItem", CCP_ISITEM, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "isSpawner", CCP_ISSPAWNER, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "spawnSerial", CCP_SPAWNSERIAL, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "maxhp", CCP_MAXHP, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxstamina", CCP_MAXSTAMINA, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxmana", CCP_MAXMANA, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "oldWandertype", CCP_OLDWANDERTYPE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "wandertype", CCP_WANDERTYPE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "fx1", CCP_FX1, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "fy1", CCP_FY1, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "fx2", CCP_FX2, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "fy2", CCP_FY2, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "fz", CCP_FZ, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isonhorse", CCP_ISONHORSE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isFlying", CCP_ISFLYING, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isGuarded", CCP_ISGUARDED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "guarding", CCP_GUARDING, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "tempdex", CCP_TDEXTERITY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "tempint", CCP_TINTELLIGENCE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "tempstr", CCP_TSTRENGTH, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "poison", CCP_POISON, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "lightlevel", CCP_LIGHTLEVEL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "vulnerable", CCP_VULNERABLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "willhunger", CCP_HUNGERSTATUS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "willthirst", CCP_THIRSTSTATUS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "lodamage", CCP_LODAMAGE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "hidamage", CCP_HIDAMAGE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "flag", CCP_FLAG, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "atWar", CCP_ATWAR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "spellCast", CCP_SPELLCAST, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isCasting", CCP_ISCASTING, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "priv", CCP_PRIV, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "townPriv", CCP_TOWNPRIV, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "guildTitle", CCP_GUILDTITLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "fontType", CCP_FONTTYPE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "sayColour", CCP_SAYCOLOUR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "emoteColour", CCP_EMOTECOLOUR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "attacker", CCP_ATTACKER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "raceGate", CCP_RACEGATE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "skillLock", CCP_SKILLLOCK, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "deaths", CCP_DEATHS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "ownerCount", CCP_OWNERCOUNT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "nextAct", CCP_NEXTACT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "petCount", CCP_PETCOUNT, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "ownedItemsCount",CCP_OWNEDITEMSCOUNT,JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "cell", CCP_CELL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "allmove", CCP_ALLMOVE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "houseicons", CCP_HOUSEICONS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "spattack", CCP_SPATTACK, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "spdelay", CCP_SPDELAY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "aitype", CCP_AITYPE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "split", CCP_SPLIT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "splitchance", CCP_SPLITCHANCE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "hireling", CCP_HIRELING, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "trainer", CCP_TRAINER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "weight", CCP_WEIGHT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "squelch", CCP_SQUELCH, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isJailed", CCP_ISJAILED, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "magicReflect", CCP_MAGICREFLECT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "permanentMagicReflect", CCP_PERMMAGICREFLECT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "tamed", CCP_TAMED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "tamedHungerRate",CCP_TAMEDHUNGERRATE,JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "tamedThirstRate",CCP_TAMEDTHIRSTRATE,JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "hungerWildChance",CCP_HUNGERWILDCHANCE,JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "thirstWildChance",CCP_THIRSTWILDCHANCE,JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "foodList", CCP_FOODLIST, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "mounted", CCP_MOUNTED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "stabled", CCP_STABLED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isUsingPotion", CCP_USINGPOTION, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "stealth", CCP_STEALTH, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "skillToTame", CCP_SKILLTOTAME, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "skillToProv", CCP_SKILLTOPROV, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "skillToPeace", CCP_SKILLTOPEACE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "poisonStrength", CCP_POISONSTRENGTH, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isPolymorphed", CCP_ISPOLYMORPHED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isIncognito", CCP_ISINCOGNITO, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "canRun", CCP_CANRUN, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isMeditating", CCP_ISMEDITATING, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isGM", CCP_ISGM, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "canBroadcast", CCP_CANBROADCAST, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "singClickSer", CCP_SINGCLICKSER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "noSkillTitles", CCP_NOSKILLTITLES, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isGMPageable", CCP_ISGMPAGEABLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "canSnoop", CCP_CANSNOOP, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isCounselor", CCP_ISCOUNSELOR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "noNeedMana", CCP_NONEEDMANA, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isDispellable", CCP_ISDISPELLABLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "noNeedReags", CCP_NONEEDREAGS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "orgID", CCP_ORGID, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "orgSkin", CCP_ORGSKIN, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isAnimal", CCP_ISANIMAL, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "isHuman", CCP_ISHUMAN, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "isShop", CCP_ISSHOP, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "attackFirst", CCP_ATTACKFIRST, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxLoyalty", CCP_MAXLOYALTY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "loyalty", CCP_LOYALTY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "loyaltyRate", CCP_LOYALTYRATE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "shouldSave", CCP_SHOULDSAVE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "partyLootable", CCP_PARTYLOOTABLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "party", CCP_PARTY, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "multi", CCP_MULTI, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "accountNum", CCP_ACCOUNTNUM, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "account", CCP_ACCOUNT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "createdOn", CCP_CREATEDON, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "housesOwned", CCP_HOUSESOWNED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "housesCoOwned", CCP_HOUSESCOOWNED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { nullptr, (SI08)0, (UI08)0, nullptr, nullptr } }; -static JSPropertySpec CItemProps[] = +inline JSPropertySpec CItemProps[] = { - { "sectionID", CIP_SECTIONID, JSPROP_ENUMANDPERM }, - { "name", CIP_NAME, JSPROP_ENUMANDPERM }, - { "title", CIP_TITLE, JSPROP_ENUMANDPERM }, - { "x", CIP_X, JSPROP_ENUMANDPERM }, - { "y", CIP_Y, JSPROP_ENUMANDPERM }, - { "z", CIP_Z, JSPROP_ENUMANDPERM }, - { "oldX", CIP_OLDX, JSPROP_ENUMANDPERM }, - { "oldY", CIP_OLDY, JSPROP_ENUMANDPERM }, - { "oldZ", CIP_OLDZ, JSPROP_ENUMANDPERM }, - { "id", CIP_ID, JSPROP_ENUMANDPERM }, - { "colour", CIP_COLOUR, JSPROP_ENUMANDPERM }, - { "color", CIP_COLOUR, JSPROP_ENUMANDPERM }, - { "skin", CIP_COLOUR, JSPROP_ENUMANDPERM }, - { "hue", CIP_COLOUR, JSPROP_ENUMANDPERM }, - { "owner", CIP_OWNER, JSPROP_ENUMANDPERM }, - { "visible", CIP_VISIBLE, JSPROP_ENUMANDPERM }, - { "serial", CIP_SERIAL, JSPROP_ENUMANDPERM }, - { "health", CIP_HEALTH, JSPROP_ENUMANDPERM }, - { "scripttrigger", CIP_SCRIPTTRIGGER, JSPROP_ENUMANDPERM }, - { "scriptTriggers", CIP_SCRIPTTRIGGERS, JSPROP_ENUMANDPERM }, - { "worldnumber", CIP_WORLDNUMBER, JSPROP_ENUMANDPERM }, - { "instanceID", CIP_INSTANCEID, JSPROP_ENUMANDPERM }, - { "amount", CIP_AMOUNT, JSPROP_ENUMANDPERM }, - { "container", CIP_CONTAINER, JSPROP_ENUMANDPERM }, - { "type", CIP_TYPE, JSPROP_ENUMANDPERM }, - { "more", CIP_MORE, JSPROP_ENUMANDPERM }, - { "morex", CIP_MOREX, JSPROP_ENUMANDPERM }, - { "morey", CIP_MOREY, JSPROP_ENUMANDPERM }, - { "morez", CIP_MOREZ, JSPROP_ENUMANDPERM }, - { "movable", CIP_MOVABLE, JSPROP_ENUMANDPERM }, - { "att", CIP_ATT, JSPROP_ENUMANDPERM }, - { "layer", CIP_LAYER, JSPROP_ENUMANDPERM }, - { "itemsinside", CIP_ITEMSINSIDE, JSPROP_ENUMANDPERM }, - { "totalItemCount", CIP_TOTALITEMCOUNT, JSPROP_ENUMANDPERM }, - { "decayable", CIP_DECAYABLE, JSPROP_ENUMANDPERM }, - { "decaytime", CIP_DECAYTIME, JSPROP_ENUMANDPERM }, - { "lodamage", CIP_LODAMAGE, JSPROP_ENUMANDPERM }, - { "hidamage", CIP_HIDAMAGE, JSPROP_ENUMANDPERM }, - { "ac", CIP_AC, JSPROP_ENUMANDPERM }, - { "def", CIP_DEF, JSPROP_ENUMANDPERM }, - { "resistCold", CIP_RESISTCOLD, JSPROP_ENUMANDPERM }, - { "resistHeat", CIP_RESISTHEAT, JSPROP_ENUMANDPERM }, - { "resistLight", CIP_RESISTLIGHT, JSPROP_ENUMANDPERM }, - { "resistLightning",CIP_RESISTLIGHTNING,JSPROP_ENUMANDPERM }, - { "resistPoison", CIP_RESISTPOISON, JSPROP_ENUMANDPERM }, - { "resistRain", CIP_RESISTRAIN, JSPROP_ENUMANDPERM }, - { "resistSnow", CIP_RESISTSNOW, JSPROP_ENUMANDPERM }, - { "damageHeat", CIP_DAMAGEHEAT, JSPROP_ENUMANDPERM }, - { "damageCold", CIP_DAMAGECOLD, JSPROP_ENUMANDPERM }, - { "damageLight", CIP_DAMAGELIGHT, JSPROP_ENUMANDPERM }, - { "damageLightning",CIP_DAMAGELIGHTNING,JSPROP_ENUMANDPERM }, - { "damagePoison", CIP_DAMAGEPOISON, JSPROP_ENUMANDPERM }, - { "damageRain", CIP_DAMAGERAIN, JSPROP_ENUMANDPERM }, - { "damageSnow", CIP_DAMAGESNOW, JSPROP_ENUMANDPERM }, - { "name2", CIP_NAME2, JSPROP_ENUMANDPERM }, - { "isChar", CIP_ISCHAR, JSPROP_ENUMPERMRO }, - { "isItem", CIP_ISITEM, JSPROP_ENUMPERMRO }, - { "isSpawner", CIP_ISSPAWNER, JSPROP_ENUMPERMRO }, - { "race", CIP_RACE, JSPROP_ENUMANDPERM }, - { "maxhp", CIP_MAXHP, JSPROP_ENUMANDPERM }, - { "maxUses", CIP_MAXUSES, JSPROP_ENUMANDPERM }, - { "usesLeft", CIP_USESLEFT, JSPROP_ENUMANDPERM }, - { "rank", CIP_RANK, JSPROP_ENUMANDPERM }, - { "creator", CIP_CREATOR, JSPROP_ENUMANDPERM }, - { "poison", CIP_POISON, JSPROP_ENUMANDPERM }, - { "dir", CIP_DIR, JSPROP_ENUMANDPERM }, - { "wipable", CIP_WIPABLE, JSPROP_ENUMANDPERM }, - { "buyvalue", CIP_BUYVALUE, JSPROP_ENUMANDPERM }, - { "sellvalue", CIP_SELLVALUE, JSPROP_ENUMANDPERM }, - { "vendorPrice", CIP_VENDORPRICE, JSPROP_ENUMANDPERM }, - { "restock", CIP_RESTOCK, JSPROP_ENUMANDPERM }, - { "divinelock", CIP_DIVINELOCK, JSPROP_ENUMANDPERM }, - { "baseWeight", CIP_BASEWEIGHT, JSPROP_ENUMANDPERM }, - { "weight", CIP_WEIGHT, JSPROP_ENUMANDPERM }, - { "weightMax", CIP_WEIGHTMAX, JSPROP_ENUMANDPERM }, - { "maxItems", CIP_MAXITEMS, JSPROP_ENUMANDPERM }, - { "strength", CIP_STRENGTH, JSPROP_ENUMANDPERM }, - { "dexterity", CIP_DEXTERITY, JSPROP_ENUMANDPERM }, - { "intelligence", CIP_INTELLIGENCE, JSPROP_ENUMANDPERM }, - { "corpse", CIP_CORPSE, JSPROP_ENUMANDPERM }, - { "desc", CIP_DESC, JSPROP_ENUMANDPERM }, - { "event", CIP_EVENT, JSPROP_ENUMANDPERM }, - { "tempTimer", CIP_TEMPTIMER, JSPROP_ENUMANDPERM }, - { "shouldSave", CIP_SHOULDSAVE, JSPROP_ENUMANDPERM }, + { "sectionID", CIP_SECTIONID, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "name", CIP_NAME, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "title", CIP_TITLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "x", CIP_X, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "y", CIP_Y, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "z", CIP_Z, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "oldX", CIP_OLDX, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "oldY", CIP_OLDY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "oldZ", CIP_OLDZ, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "id", CIP_ID, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "colour", CIP_COLOUR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "color", CIP_COLOUR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "skin", CIP_COLOUR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "hue", CIP_COLOUR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "owner", CIP_OWNER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "visible", CIP_VISIBLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "serial", CIP_SERIAL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "health", CIP_HEALTH, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "scripttrigger", CIP_SCRIPTTRIGGER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "scriptTriggers", CIP_SCRIPTTRIGGERS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "worldnumber", CIP_WORLDNUMBER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "instanceID", CIP_INSTANCEID, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "amount", CIP_AMOUNT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "container", CIP_CONTAINER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "type", CIP_TYPE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "more", CIP_MORE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "morex", CIP_MOREX, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "morey", CIP_MOREY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "morez", CIP_MOREZ, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "movable", CIP_MOVABLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "att", CIP_ATT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "layer", CIP_LAYER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "itemsinside", CIP_ITEMSINSIDE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "totalItemCount", CIP_TOTALITEMCOUNT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "decayable", CIP_DECAYABLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "decaytime", CIP_DECAYTIME, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "lodamage", CIP_LODAMAGE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "hidamage", CIP_HIDAMAGE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "ac", CIP_AC, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "def", CIP_DEF, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "resistCold", CIP_RESISTCOLD, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "resistHeat", CIP_RESISTHEAT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "resistLight", CIP_RESISTLIGHT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "resistLightning",CIP_RESISTLIGHTNING,JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "resistPoison", CIP_RESISTPOISON, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "resistRain", CIP_RESISTRAIN, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "resistSnow", CIP_RESISTSNOW, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "damageHeat", CIP_DAMAGEHEAT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "damageCold", CIP_DAMAGECOLD, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "damageLight", CIP_DAMAGELIGHT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "damageLightning",CIP_DAMAGELIGHTNING,JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "damagePoison", CIP_DAMAGEPOISON, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "damageRain", CIP_DAMAGERAIN, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "damageSnow", CIP_DAMAGESNOW, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "name2", CIP_NAME2, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isChar", CIP_ISCHAR, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "isItem", CIP_ISITEM, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "isSpawner", CIP_ISSPAWNER, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "race", CIP_RACE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxhp", CIP_MAXHP, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxUses", CIP_MAXUSES, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "usesLeft", CIP_USESLEFT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "rank", CIP_RANK, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "creator", CIP_CREATOR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "poison", CIP_POISON, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "dir", CIP_DIR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "wipable", CIP_WIPABLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "buyvalue", CIP_BUYVALUE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "sellvalue", CIP_SELLVALUE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "vendorPrice", CIP_VENDORPRICE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "restock", CIP_RESTOCK, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "divinelock", CIP_DIVINELOCK, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "baseWeight", CIP_BASEWEIGHT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "weight", CIP_WEIGHT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "weightMax", CIP_WEIGHTMAX, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxItems", CIP_MAXITEMS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "strength", CIP_STRENGTH, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "dexterity", CIP_DEXTERITY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "intelligence", CIP_INTELLIGENCE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "corpse", CIP_CORPSE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "desc", CIP_DESC, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "event", CIP_EVENT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "tempTimer", CIP_TEMPTIMER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "shouldSave", CIP_SHOULDSAVE, JSPROP_ENUMANDPERM, nullptr, nullptr }, - { "isNewbie", CIP_ISNEWBIE, JSPROP_ENUMANDPERM }, - { "isDispellable", CIP_ISDISPELLABLE, JSPROP_ENUMANDPERM }, - { "madeWith", CIP_MADEWITH, JSPROP_ENUMANDPERM }, - { "entryMadeFrom", CIP_ENTRYMADEFROM, JSPROP_ENUMANDPERM }, - { "isPileable", CIP_ISPILEABLE, JSPROP_ENUMANDPERM }, - { "isMarkedByMaker",CIP_ISMARKEDBYMAKER,JSPROP_ENUMANDPERM }, - { "isDyeable", CIP_ISDYEABLE, JSPROP_ENUMANDPERM }, - { "isDamageable", CIP_ISDAMAGEABLE, JSPROP_ENUMANDPERM }, - { "isWipeable", CIP_ISWIPEABLE, JSPROP_ENUMANDPERM }, - { "isGuarded", CIP_ISGUARDED, JSPROP_ENUMANDPERM }, - { "isDoorOpen", CIP_ISDOOROPEN, JSPROP_ENUMANDPERM }, - { "isFieldSpell", CIP_ISFIELDSPELL, JSPROP_ENUMPERMRO }, - { "isLockedDown", CIP_ISLOCKEDDOWN, JSPROP_ENUMPERMRO }, - { "isShieldType", CIP_ISSHIELDTYPE, JSPROP_ENUMPERMRO }, - { "isMetalType", CIP_ISMETALTYPE, JSPROP_ENUMPERMRO }, - { "isLeatherType", CIP_ISLEATHERTYPE, JSPROP_ENUMPERMRO }, - { "canBeLockedDown",CIP_CANBELOCKEDDOWN,JSPROP_ENUMPERMRO }, - { "isContType", CIP_ISCONTTYPE, JSPROP_ENUMPERMRO }, - { "carveSection", CIP_CARVESECTION, JSPROP_ENUMANDPERM }, - { "ammoID", CIP_AMMOID, JSPROP_ENUMANDPERM }, - { "ammoHue", CIP_AMMOHUE, JSPROP_ENUMANDPERM }, - { "ammoFX", CIP_AMMOFX, JSPROP_ENUMANDPERM }, - { "ammoFXHue", CIP_AMMOFXHUE, JSPROP_ENUMANDPERM }, - { "ammoFXRender", CIP_AMMOFXRENDER, JSPROP_ENUMANDPERM }, - { "speed", CIP_SPEED, JSPROP_ENUMANDPERM }, - { "multi", CIP_MULTI, JSPROP_ENUMANDPERM }, - { "maxRange", CIP_MAXRANGE, JSPROP_ENUMANDPERM }, - { "baseRange", CIP_BASERANGE, JSPROP_ENUMANDPERM }, - { "region", CIP_REGION, JSPROP_ENUMPERMRO }, - { "spawnSerial", CIP_SPAWNSERIAL, JSPROP_ENUMPERMRO }, - { "isItemHeld", CIP_ISITEMHELD, JSPROP_ENUMANDPERM }, + { "isNewbie", CIP_ISNEWBIE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isDispellable", CIP_ISDISPELLABLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "madeWith", CIP_MADEWITH, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "entryMadeFrom", CIP_ENTRYMADEFROM, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isPileable", CIP_ISPILEABLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isMarkedByMaker",CIP_ISMARKEDBYMAKER,JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isDyeable", CIP_ISDYEABLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isDamageable", CIP_ISDAMAGEABLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isWipeable", CIP_ISWIPEABLE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isGuarded", CIP_ISGUARDED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isDoorOpen", CIP_ISDOOROPEN, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isFieldSpell", CIP_ISFIELDSPELL, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "isLockedDown", CIP_ISLOCKEDDOWN, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "isShieldType", CIP_ISSHIELDTYPE, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "isMetalType", CIP_ISMETALTYPE, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "isLeatherType", CIP_ISLEATHERTYPE, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "canBeLockedDown",CIP_CANBELOCKEDDOWN,JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "isContType", CIP_ISCONTTYPE, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "carveSection", CIP_CARVESECTION, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "ammoID", CIP_AMMOID, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "ammoHue", CIP_AMMOHUE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "ammoFX", CIP_AMMOFX, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "ammoFXHue", CIP_AMMOFXHUE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "ammoFXRender", CIP_AMMOFXRENDER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "speed", CIP_SPEED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "multi", CIP_MULTI, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxRange", CIP_MAXRANGE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "baseRange", CIP_BASERANGE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "region", CIP_REGION, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "spawnSerial", CIP_SPAWNSERIAL, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "isItemHeld", CIP_ISITEMHELD, JSPROP_ENUMANDPERM, nullptr, nullptr }, // The Following vars are specific to CSpawnItem objects - { "spawnsection", CIP_SPAWNSECTION, JSPROP_ENUMANDPERM }, - { "sectionalist", CIP_SECTIONALIST, JSPROP_ENUMANDPERM }, - { "mininterval", CIP_MININTERVAL, JSPROP_ENUMANDPERM }, - { "maxinterval", CIP_MAXINTERVAL, JSPROP_ENUMANDPERM }, - + { "spawnsection", CIP_SPAWNSECTION, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "sectionalist", CIP_SECTIONALIST, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "mininterval", CIP_MININTERVAL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxinterval", CIP_MAXINTERVAL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + // The Following vars are specific to cMultiObj objects - { "lockdowns", CIP_LOCKDDOWNS, JSPROP_ENUMANDPERM }, - { "maxLockdowns", CIP_MAXLOCKDOWNS, JSPROP_ENUMANDPERM }, - { "trashContainers", CIP_TRASHCONTAINERS, JSPROP_ENUMANDPERM }, - { "maxTrashContainers", CIP_MAXTRASHCONTAINERS, JSPROP_ENUMANDPERM }, - { "secureContainers", CIP_SECURECONTAINERS, JSPROP_ENUMANDPERM }, - { "maxSecureContainers",CIP_MAXSECURECONTAINERS,JSPROP_ENUMANDPERM }, - { "friends", CIP_FRIENDS, JSPROP_ENUMANDPERM }, - { "maxFriends", CIP_MAXFRIENDS, JSPROP_ENUMANDPERM }, - { "guests", CIP_GUESTS, JSPROP_ENUMANDPERM }, - { "maxGuests", CIP_MAXGUESTS, JSPROP_ENUMANDPERM }, - { "owners", CIP_OWNERS, JSPROP_ENUMANDPERM }, - { "maxOwners", CIP_MAXOWNERS, JSPROP_ENUMANDPERM }, - { "bans", CIP_BANS, JSPROP_ENUMANDPERM }, - { "maxBans", CIP_MAXBANS, JSPROP_ENUMANDPERM }, - { "vendors", CIP_VENDORS, JSPROP_ENUMANDPERM }, - { "maxVendors", CIP_MAXVENDORS, JSPROP_ENUMANDPERM }, - { "deed", CIP_DEED, JSPROP_ENUMANDPERM }, - { "isPublic", CIP_ISPUBLIC, JSPROP_ENUMANDPERM }, - { "buildTimestamp", CIP_BUILDTIMESTAMP, JSPROP_ENUMANDPERM }, - { "tradeTimestamp", CIP_TRADETIMESTAMP, JSPROP_ENUMANDPERM }, - { "banX", CIP_BANX, JSPROP_ENUMANDPERM }, - { "banY", CIP_BANY, JSPROP_ENUMANDPERM }, - - - { nullptr, (SI08)0, (UI08)0} + { "lockdowns", CIP_LOCKDDOWNS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxLockdowns", CIP_MAXLOCKDOWNS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "trashContainers", CIP_TRASHCONTAINERS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxTrashContainers", CIP_MAXTRASHCONTAINERS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "secureContainers", CIP_SECURECONTAINERS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxSecureContainers",CIP_MAXSECURECONTAINERS,JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "friends", CIP_FRIENDS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxFriends", CIP_MAXFRIENDS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "guests", CIP_GUESTS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxGuests", CIP_MAXGUESTS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "owners", CIP_OWNERS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxOwners", CIP_MAXOWNERS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "bans", CIP_BANS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxBans", CIP_MAXBANS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "vendors", CIP_VENDORS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "maxVendors", CIP_MAXVENDORS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "deed", CIP_DEED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isPublic", CIP_ISPUBLIC, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "buildTimestamp", CIP_BUILDTIMESTAMP, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "tradeTimestamp", CIP_TRADETIMESTAMP, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "banX", CIP_BANX, JSPROP_ENUMANDPERM, nullptr, nullptr}, + { "banY", CIP_BANY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { nullptr, (SI08)0, (UI08)0, nullptr, nullptr } }; -static JSPropertySpec CSocketProps[] = +inline JSPropertySpec CSocketProps[] = { - { "account", CSOCKP_ACCOUNT, JSPROP_ENUMANDPERM }, - { "currentChar", CSOCKP_CURRENTCHAR, JSPROP_ENUMANDPERM }, - { "idleTimeout", CSOCKP_IDLETIMEOUT, JSPROP_ENUMANDPERM }, - { "wasIdleWarned", CSOCKP_WASIDLEWARNED, JSPROP_ENUMANDPERM }, - { "tempInt", CSOCKP_TEMPINT, JSPROP_ENUMANDPERM }, - { "tempInt2", CSOCKP_TEMPINT2, JSPROP_ENUMANDPERM }, - { "buffer", CSOCKP_BUFFER, JSPROP_ENUMPERMIDX }, - { "xText", CSOCKP_XTEXT, JSPROP_ENUMPERMIDX }, - { "clickZ", CSOCKP_CLICKZ, JSPROP_ENUMANDPERM }, - { "addID", CSOCKP_ADDID, JSPROP_ENUMPERMIDX }, - { "newClient", CSOCKP_NEWCLIENT, JSPROP_ENUMANDPERM }, - { "firstPacket", CSOCKP_FIRSTPACKET, JSPROP_ENUMANDPERM }, - { "cryptClient", CSOCKP_CRYPTCLIENT, JSPROP_ENUMANDPERM }, - { "clientIP", CSOCKP_CLIENTIP, JSPROP_ENUMPERMIDX }, - { "walkSequence", CSOCKP_WALKSEQUENCE, JSPROP_ENUMANDPERM }, - { "currentSpellType", CSOCKP_CURRENTSPELLTYPE, JSPROP_ENUMANDPERM }, - { "logging", CSOCKP_LOGGING, JSPROP_ENUMANDPERM }, - { "bytesSent", CSOCKP_BYTESSENT, JSPROP_ENUMANDPERM }, - { "bytesReceived", CSOCKP_BYTESRECEIVED, JSPROP_ENUMANDPERM }, - { "targetOK", CSOCKP_TARGETOK, JSPROP_ENUMANDPERM }, - { "clickX", CSOCKP_CLICKX, JSPROP_ENUMANDPERM }, - { "clickY", CSOCKP_CLICKY, JSPROP_ENUMANDPERM }, - { "pickupX", CSOCKP_PICKUPX, JSPROP_ENUMANDPERM }, - { "pickupY", CSOCKP_PICKUPY, JSPROP_ENUMANDPERM }, - { "pickupZ", CSOCKP_PICKUPZ, JSPROP_ENUMANDPERM }, - { "pickupSpot", CSOCKP_PICKUPSPOT, JSPROP_ENUMANDPERM }, - { "pickupSerial", CSOCKP_PICKUPSERIAL, JSPROP_ENUMANDPERM }, - { "language", CSOCKP_LANGUAGE, JSPROP_ENUMANDPERM }, - { "clientMajorVer", CSOCKP_CLIENTMAJORVER, JSPROP_ENUMANDPERM }, - { "clientMinorVer", CSOCKP_CLIENTMINORVER, JSPROP_ENUMANDPERM }, - { "clientSubVer", CSOCKP_CLIENTSUBVER, JSPROP_ENUMANDPERM }, - { "clientLetterVer", CSOCKP_CLIENTLETTERVER, JSPROP_ENUMANDPERM }, - { "clientType", CSOCKP_CLIENTTYPE, JSPROP_ENUMANDPERM }, - { "target", CSOCKP_TARGET, JSPROP_ENUMANDPERM }, - { "tempObj", CSOCKP_TEMPOBJ, JSPROP_ENUMANDPERM }, - { "tempObj2", CSOCKP_TEMPOBJ2, JSPROP_ENUMANDPERM }, - { nullptr, (SI08)0, (UI08)0} + { "account", CSOCKP_ACCOUNT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "currentChar", CSOCKP_CURRENTCHAR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "idleTimeout", CSOCKP_IDLETIMEOUT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "wasIdleWarned", CSOCKP_WASIDLEWARNED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "tempInt", CSOCKP_TEMPINT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "tempInt2", CSOCKP_TEMPINT2, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "buffer", CSOCKP_BUFFER, JSPROP_ENUMPERMIDX, nullptr, nullptr }, + { "xText", CSOCKP_XTEXT, JSPROP_ENUMPERMIDX, nullptr, nullptr }, + { "clickZ", CSOCKP_CLICKZ, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "addID", CSOCKP_ADDID, JSPROP_ENUMPERMIDX, nullptr, nullptr }, + { "newClient", CSOCKP_NEWCLIENT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "firstPacket", CSOCKP_FIRSTPACKET, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "cryptClient", CSOCKP_CRYPTCLIENT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "clientIP", CSOCKP_CLIENTIP, JSPROP_ENUMPERMIDX, nullptr, nullptr }, + { "walkSequence", CSOCKP_WALKSEQUENCE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "currentSpellType", CSOCKP_CURRENTSPELLTYPE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "logging", CSOCKP_LOGGING, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "bytesSent", CSOCKP_BYTESSENT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "bytesReceived", CSOCKP_BYTESRECEIVED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "targetOK", CSOCKP_TARGETOK, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "clickX", CSOCKP_CLICKX, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "clickY", CSOCKP_CLICKY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "pickupX", CSOCKP_PICKUPX, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "pickupY", CSOCKP_PICKUPY, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "pickupZ", CSOCKP_PICKUPZ, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "pickupSpot", CSOCKP_PICKUPSPOT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "pickupSerial", CSOCKP_PICKUPSERIAL, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "language", CSOCKP_LANGUAGE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "clientMajorVer", CSOCKP_CLIENTMAJORVER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "clientMinorVer", CSOCKP_CLIENTMINORVER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "clientSubVer", CSOCKP_CLIENTSUBVER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "clientLetterVer", CSOCKP_CLIENTLETTERVER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "clientType", CSOCKP_CLIENTTYPE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "target", CSOCKP_TARGET, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "tempObj", CSOCKP_TEMPOBJ, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "tempObj2", CSOCKP_TEMPOBJ2, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { nullptr, (SI08)0, (UI08)0, nullptr, nullptr } }; - +/* Unused static JSPropertySpec CSkillsProps[] = { { "alchemy", ALCHEMY, JSPROP_ENUMANDPERM }, @@ -667,89 +661,87 @@ static JSPropertySpec CSkillsProps[] = { "allskills", ALLSKILLS, JSPROP_ENUMANDPERM }, { nullptr, (SI08)0, (UI08)0} }; +*/ -static JSPropertySpec CGumpDataProperties[] = +inline JSPropertySpec CGumpDataProperties[] = { - { "buttons", CGumpData_Button, JSPROP_ENUMANDPERM }, - { "IDs", CGumpData_ID , JSPROP_ENUMANDPERM }, - { nullptr, (SI08)0, (UI08)0 } - + { "buttons", CGumpData_Button, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "IDs", CGumpData_ID , JSPROP_ENUMANDPERM, nullptr, nullptr }, + { nullptr, (SI08)0, (UI08)0, nullptr, nullptr } }; -static JSPropertySpec CAccountProperties[] = +inline JSPropertySpec CAccountProperties[] = { - { "id", CACCOUNT_ID, JSPROP_ENUMANDPERM }, - { "username", CACCOUNT_USERNAME, JSPROP_ENUMANDPERM }, - { "password", CACCOUNT_PASSWORD, JSPROP_ENUMANDPERM }, - { "flags", CACCOUNT_FLAGS, JSPROP_ENUMANDPERM }, - { "path", CACCOUNT_PATH, JSPROP_ENUMANDPERM }, - { "comment", CACCOUNT_COMMENT, JSPROP_ENUMANDPERM }, - { "timeban", CACCOUNT_TIMEBAN, JSPROP_ENUMANDPERM }, - { "firstLogin", CACCOUNT_FIRSTLOGIN, JSPROP_ENUMANDPERM }, - { "character1", CACCOUNT_CHARACTER1, JSPROP_ENUMANDPERM }, - { "character2", CACCOUNT_CHARACTER2, JSPROP_ENUMANDPERM }, - { "character3", CACCOUNT_CHARACTER3, JSPROP_ENUMANDPERM }, - { "character4", CACCOUNT_CHARACTER4, JSPROP_ENUMANDPERM }, - { "character5", CACCOUNT_CHARACTER5, JSPROP_ENUMANDPERM }, - { "character6", CACCOUNT_CHARACTER6, JSPROP_ENUMANDPERM }, - { "character7", CACCOUNT_CHARACTER7, JSPROP_ENUMANDPERM }, - - { "currentChar", CACCOUNT_CURRENTCHAR, JSPROP_ENUMANDPERM }, - { "lastIP", CACCOUNT_LASTIP, JSPROP_ENUMANDPERM }, + { "id", CACCOUNT_ID, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "username", CACCOUNT_USERNAME, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "password", CACCOUNT_PASSWORD, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "flags", CACCOUNT_FLAGS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "path", CACCOUNT_PATH, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "comment", CACCOUNT_COMMENT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "timeban", CACCOUNT_TIMEBAN, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "firstLogin", CACCOUNT_FIRSTLOGIN, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "character1", CACCOUNT_CHARACTER1, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "character2", CACCOUNT_CHARACTER2, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "character3", CACCOUNT_CHARACTER3, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "character4", CACCOUNT_CHARACTER4, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "character5", CACCOUNT_CHARACTER5, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "character6", CACCOUNT_CHARACTER6, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "character7", CACCOUNT_CHARACTER7, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "currentChar", CACCOUNT_CURRENTCHAR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "lastIP", CACCOUNT_LASTIP, JSPROP_ENUMANDPERM, nullptr, nullptr }, // Flags - { "isBanned", CACCOUNT_BANNED, JSPROP_ENUMANDPERM }, - { "isSuspended", CACCOUNT_SUSPENDED, JSPROP_ENUMANDPERM }, - { "isPublic", CACCOUNT_PUBLIC, JSPROP_ENUMANDPERM }, - { "isOnline", CACCOUNT_ONLINE, JSPROP_ENUMANDPERM }, - { "isSlot1Blocked", CACCOUNT_CHARSLOT1BLOCKED, JSPROP_ENUMANDPERM }, - { "isSlot2Blocked", CACCOUNT_CHARSLOT2BLOCKED, JSPROP_ENUMANDPERM }, - { "isSlot3Blocked", CACCOUNT_CHARSLOT3BLOCKED, JSPROP_ENUMANDPERM }, - { "isSlot4Blocked", CACCOUNT_CHARSLOT4BLOCKED, JSPROP_ENUMANDPERM }, - { "isSlot5Blocked", CACCOUNT_CHARSLOT5BLOCKED, JSPROP_ENUMANDPERM }, - { "isSlot6Blocked", CACCOUNT_CHARSLOT6BLOCKED, JSPROP_ENUMANDPERM }, - { "isSlot7Blocked", CACCOUNT_CHARSLOT7BLOCKED, JSPROP_ENUMANDPERM }, - { "unused9", CACCOUNT_UNUSED9, JSPROP_ENUMANDPERM }, - { "unused10", CACCOUNT_UNUSED10, JSPROP_ENUMANDPERM }, - { "isSeer", CACCOUNT_SEER, JSPROP_ENUMANDPERM }, - { "isCounselor", CACCOUNT_COUNSELOR, JSPROP_ENUMANDPERM }, - { "isGM", CACCOUNT_GM, JSPROP_ENUMANDPERM }, - - { nullptr, (SI08)0, (UI08)0 } + { "isBanned", CACCOUNT_BANNED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isSuspended", CACCOUNT_SUSPENDED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isPublic", CACCOUNT_PUBLIC, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isOnline", CACCOUNT_ONLINE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isSlot1Blocked", CACCOUNT_CHARSLOT1BLOCKED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isSlot2Blocked", CACCOUNT_CHARSLOT2BLOCKED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isSlot3Blocked", CACCOUNT_CHARSLOT3BLOCKED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isSlot4Blocked", CACCOUNT_CHARSLOT4BLOCKED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isSlot5Blocked", CACCOUNT_CHARSLOT5BLOCKED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isSlot6Blocked", CACCOUNT_CHARSLOT6BLOCKED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isSlot7Blocked", CACCOUNT_CHARSLOT7BLOCKED, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "unused9", CACCOUNT_UNUSED9, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "unused10", CACCOUNT_UNUSED10, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isSeer", CACCOUNT_SEER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isCounselor", CACCOUNT_COUNSELOR, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "isGM", CACCOUNT_GM, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { nullptr, (SI08)0, (UI08)0, nullptr, nullptr } }; -static JSPropertySpec CConsoleProperties[] = +inline JSPropertySpec CConsoleProperties[] = { - { "mode", CCONSOLE_MODE, JSPROP_ENUMANDPERM }, - { "logEcho", CCONSOLE_LOGECHO, JSPROP_ENUMANDPERM }, - { nullptr, (SI08)0, (UI08)0 } + { "mode", CCONSOLE_MODE, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "logEcho", CCONSOLE_LOGECHO, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { nullptr, (SI08)0, (UI08)0, nullptr, nullptr } }; -static JSPropertySpec CScriptSectionProperties[] = +inline JSPropertySpec CScriptSectionProperties[] = { - { "numTags", CSS_NUMTAGS, JSPROP_ENUMANDPERM }, - { "atEnd", CSS_ATEND, JSPROP_ENUMANDPERM }, - { "atEndTags", CSS_ATENDTAGS, JSPROP_ENUMANDPERM }, - { nullptr, (SI08)0, (UI08)0 } + { "numTags", CSS_NUMTAGS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "atEnd", CSS_ATEND, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "atEndTags", CSS_ATENDTAGS, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { nullptr, (SI08)0, (UI08)0, nullptr, nullptr } }; -static JSPropertySpec CResourceProperties[] = +inline JSPropertySpec CResourceProperties[] = { - { "logAmount", CRESP_LOGAMT, JSPROP_ENUMANDPERM }, - { "logTime", CRESP_LOGTIME, JSPROP_ENUMANDPERM }, - { "oreAmount", CRESP_OREAMT, JSPROP_ENUMANDPERM }, - { "oreTime", CRESP_ORETIME, JSPROP_ENUMANDPERM }, - { "fishAmount", CRESP_FISHAMT, JSPROP_ENUMANDPERM }, - { "fishTime", CRESP_FISHTIME, JSPROP_ENUMANDPERM }, - { nullptr, (SI08)0, (UI08)0 } + { "logAmount", CRESP_LOGAMT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "logTime", CRESP_LOGTIME, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "oreAmount", CRESP_OREAMT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "oreTime", CRESP_ORETIME, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "fishAmount", CRESP_FISHAMT, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "fishTime", CRESP_FISHTIME, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { nullptr, (SI08)0, (UI08)0, nullptr, nullptr } }; -static JSPropertySpec CPartyProperties[] = +inline JSPropertySpec CPartyProperties[] = { - { "leader", CPARTYP_LEADER, JSPROP_ENUMANDPERM }, - { "memberCount", CPARTYP_MEMBERCOUNT, JSPROP_ENUMPERMRO }, - { "isNPC", CPARTYP_ISNPC, JSPROP_ENUMANDPERM }, - { nullptr, (SI08)0, (UI08)0 } + { "leader", CPARTYP_LEADER, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { "memberCount", CPARTYP_MEMBERCOUNT, JSPROP_ENUMPERMRO, nullptr, nullptr }, + { "isNPC", CPARTYP_ISNPC, JSPROP_ENUMANDPERM, nullptr, nullptr }, + { nullptr, (SI08)0, (UI08)0, nullptr, nullptr } }; #endif diff --git a/source/cAccountClass.cpp b/source/cAccountClass.cpp index c3c76feb3..42e2b0ced 100644 --- a/source/cAccountClass.cpp +++ b/source/cAccountClass.cpp @@ -123,7 +123,7 @@ UI16 cAccountClass::CreateAccountSystem( void ) bool bBraces2[3]= { false, false, false }; CAccountBlock_st actb; UI16 wAccountId = 0x0000; - UI16 wAccessId = 0x0000; + UI16 wAccessId = 0x0000; (void)wAccessId; // unused variable UI16 wAccountCount = 0x0000; UI08 nLockCount = 0x00; bool bSkipUAD = false; @@ -498,7 +498,7 @@ UI16 cAccountClass::CreateAccountSystem( void ) } else { - if( !r.empty() && r.length() != 0 && oldstrutil::value( r ) != INVALIDSERIAL ) + if( !r.empty() && r.length() != 0 && static_cast(oldstrutil::value( r )) != INVALIDSERIAL ) { actb.dwCharacters[charNum-1] = static_cast( std::stoul( r, nullptr, 0 )); actb.lpCharacters[charNum-1] = CalcCharObjFromSer( actb.dwCharacters[charNum-1] ); @@ -942,7 +942,7 @@ UI16 cAccountClass::Load( void ) sLine = oldstrutil::trim( oldstrutil::removeTrailing( sLine, "//" )); // Ok start the loop and process bool bBraces[3] = { false, false, false }; - bool bBraces2[3] = { false, false, false }; + bool bBraces2[3] = { false, false, false }; (void)bBraces2; // unused variable CAccountBlock_st actb; UI16 wAccountId = 0x0000; UI16 wAccountCount = 0x0000; @@ -1232,7 +1232,7 @@ UI16 cAccountClass::Load( void ) actb.reset(); } // We need to see if there are any new accounts to come. - UI16 wImportCount = 0x0000; + UI16 wImportCount = 0x0000; (void)wImportCount; // unused variable wImportCount = ImportAccounts(); // Return the number of accounts loaded return static_cast( m_mapUsernameMap.size() ); @@ -1768,7 +1768,7 @@ CAccountBlock_st& cAccountClass::GetAccountById( UI16 wAccountId ) //| file, even though the access.adm will still eventually //| be used for server sharing. //o------------------------------------------------------------------------------------------------o -UI16 cAccountClass::Save( bool bForceLoad ) +UI16 cAccountClass::Save( bool /*bForceLoad*/ ) { // Ok were not going to mess around. so we open truncate the file and write std::string sTemp( m_sAccountsDirectory ); diff --git a/source/cAccountClass.h b/source/cAccountClass.h index 38bf0fb5c..58787bdd9 100644 --- a/source/cAccountClass.h +++ b/source/cAccountClass.h @@ -105,10 +105,10 @@ public: UI32 wFirstLogin; UI32 dwInGame; UI32 dwLastIP; + bool bChanged; UI32 dwLastClientVer; UI08 dwLastClientType; UI08 dwLastClientVerShort; - bool bChanged; UI32 dwCharacters[7]; CChar * lpCharacters[7]; } CAccountBlock_st; diff --git a/source/cBaseObject.h b/source/cBaseObject.h index d5835899c..721938ecb 100644 --- a/source/cBaseObject.h +++ b/source/cBaseObject.h @@ -48,67 +48,62 @@ enum UpdateTypes class CBaseObject { protected: - TAGMAP2 tags; - TAGMAP2 tempTags; - std::string title; - SI16 mana; - SI16 stamina; - SI32 weight; - ObjectType objType; - mutable SI32 FilePosition; - SI16 x; - SI16 y; - SI08 z; - UI16 id; - UI16 colour; - UI08 dir; - SERIAL serial; - SERIAL tempMulti; - CMultiObj * multis; - SERIAL spawnSerial; - SERIAL owner; - RACEID race; - std::string name; - std::string sectionId; - SI16 strength; - SI16 dexterity; - SI16 intelligence; - SI16 hitpoints; - SI16 st2; - SI16 dx2; - SI16 in2; - VisibleTypes visible; - SI16 hiDamage; - SI16 loDamage; - UI16 scriptTrig; + TAGMAP2 tags; + TAGMAP2 tempTags; + std::string title; + ObjectType objType; + RACEID race; + SI16 x; + SI16 y; + SI08 z; + UI16 id; + UI16 colour; + UI08 dir; + SERIAL serial; + CMultiObj *multis; + SERIAL spawnSerial; + SERIAL owner; + UI08 worldNumber; + UI16 instanceId; + SI16 strength; + SI16 dexterity; + SI16 intelligence; + SI16 hitpoints; + VisibleTypes visible; + SI16 hiDamage; + SI16 loDamage; + SI32 weight; + SI16 mana; + SI16 stamina; + UI16 scriptTrig; + SI16 st2; + SI16 dx2; + SI16 in2; + mutable SI32 FilePosition; + SERIAL tempMulti; + std::string name; + std::string sectionId; std::vector scriptTriggers; - - SI16 carve; // Carve.dfn entry - - UI08 worldNumber; - UI16 instanceId; - UI16 subRegion; + UI08 poisoned; + SI16 carve; // Carve.dfn entry + SI16 oldLocX; + SI16 oldLocY; + SI08 oldLocZ; + SI16 oldTargLocX; + SI16 oldTargLocY; + SI16 fame; + SI16 karma; + SI16 kills; + UI16 subRegion; void RemoveFromMulti( bool fireTrigger = true ); void AddToMulti( bool fireTrigger = true ); - UI08 poisoned; std::bitset<8> objSettings; UI16 resistances[WEATHNUM]; - SI16 oldLocX; - SI16 oldLocY; - SI08 oldLocZ; - - SI16 oldTargLocX; - SI16 oldTargLocY; - - SI16 fame; - SI16 karma; - SI16 kills; - - SERIAL tempContainerSerial; + SERIAL tempContainerSerial; bool nameRequestActive; @@ -116,29 +111,29 @@ protected: public: - Point3_st GetOldLocation( void ); + Point3_st GetOldLocation( void ); - size_t GetNumTags( void ) const; + size_t GetNumTags( void ) const; - TAGMAPOBJECT GetTag( std::string tagname ) const; + TAGMAPOBJECT GetTag( std::string tagname ) const; void SetTag( std::string tagname, TAGMAPOBJECT tagval ); - TAGMAPOBJECT GetTempTag( std::string tempTagName ) const; + TAGMAPOBJECT GetTempTag( std::string tempTagName ) const; void SetTempTag( std::string tempTagName, TAGMAPOBJECT tagVal ); void SetResist( UI16 newValue, WeatherType damage ); UI16 GetResist( WeatherType damage ) const; void SetTitle( std::string newtitle ); - std::string GetTitle( void ) const; - virtual void SetMana( SI16 mn ); + std::string GetTitle( void ) const; + virtual void SetMana( SI16 mn ); SI16 GetMana( void ) const; - virtual void SetStamina( SI16 stam ); + virtual void SetStamina( SI16 stam ); SI16 GetStamina( void ) const; SI32 GetFilePosition( void ) const; SI32 SetFilePosition( SI32 filepos ); - virtual ~CBaseObject(); + virtual ~CBaseObject(); CBaseObject( void ); SI16 GetOldTargLocX( void ) const; @@ -146,7 +141,7 @@ public: SI16 GetX( void ) const; SI16 GetY( void ) const; SI08 GetZ( void ) const; - Point3_st GetLocation( void ) const; + Point3_st GetLocation( void ) const; void SetOldTargLocX( SI16 newvalue ); void SetOldTargLocY( SI16 newvalue ); @@ -154,10 +149,10 @@ public: void SetY( SI16 newValue ); void SetZ( SI08 newValue ); void WalkXY( SI16 newX, SI16 newY ); - virtual void SetOldLocation( SI16 newX, SI16 newY, SI08 newZ ) = 0; - virtual void SetLocation( SI16 newX, SI16 newY, SI08 newZ, UI08 world, UI16 instanceId ) = 0; - virtual void SetLocation( SI16 newX, SI16 newY, SI08 newZ ) = 0; - virtual void SetLocation( const CBaseObject *toSet ) = 0; + virtual void SetOldLocation( SI16 newX, SI16 newY, SI08 newZ ) = 0; + virtual void SetLocation( SI16 newX, SI16 newY, SI08 newZ, UI08 world, UI16 instanceId ) = 0; + virtual void SetLocation( SI16 newX, SI16 newY, SI08 newZ ) = 0; + virtual void SetLocation( const CBaseObject *toSet ) = 0; UI16 GetId( void ) const; UI16 GetColour( void ) const; @@ -169,15 +164,15 @@ public: void SetId( UI08 newValue, UI08 part ); SI32 GetWeight( void ) const; - virtual void SetWeight( SI32 newVal, bool doWeightUpdate = true ) = 0; + virtual void SetWeight( SI32 newVal, bool doWeightUpdate = true ) = 0; - SERIAL GetSerial( void ) const; - SERIAL GetSpawn( void ) const; - SERIAL GetOwner( void ) const; - SERIAL GetMulti( void ) const; - CMultiObj * GetMultiObj( void ) const; - CSpawnItem * GetSpawnObj( void ) const; - CChar * GetOwnerObj( void ) const; + SERIAL GetSerial( void ) const; + SERIAL GetSpawn( void ) const; + SERIAL GetOwner( void ) const; + SERIAL GetMulti( void ) const; + CMultiObj * GetMultiObj( void ) const; + CSpawnItem * GetSpawnObj( void ) const; + CChar * GetOwnerObj( void ) const; UI08 GetSerial( UI08 part ) const; UI08 GetSpawn( UI08 part ) const; @@ -186,45 +181,45 @@ public: void SetMulti( CMultiObj *newMulti, bool fireTrigger = true ); void SetSerial( SERIAL newSerial ); void SetSpawn( SERIAL newSpawn ); - virtual void SetOwner( CChar *newOwner ); + virtual void SetOwner( CChar *newOwner ); - virtual bool Save( std::ofstream &outStream ) = 0; - virtual bool DumpHeader( std::ofstream &outStream ) const = 0; - virtual bool DumpBody( std::ofstream &outStream ) const; + virtual bool Save( std::ofstream &outStream ) = 0; + virtual bool DumpHeader( std::ofstream &outStream ) const = 0; + virtual bool DumpBody( std::ofstream &outStream ) const; bool DumpFooter( std::ofstream &outStream ) const; bool Load( std::ifstream &inStream ); - virtual bool HandleLine( std::string &UTag, std::string &data ); + virtual bool HandleLine( std::string &UTag, std::string &data ); - RACEID GetRace( void ) const; + RACEID GetRace( void ) const; void SetRace( RACEID newValue ); - std::string GetNameRequest( CChar *nameRequester ); - std::string GetName( void ) const; + std::string GetNameRequest( CChar *nameRequester ); + std::string GetName( void ) const; void SetName( std::string newName ); - std::string GetSectionId( void ) const; + std::string GetSectionId( void ) const; void SetSectionId( std::string newSectionID ); - virtual SI16 GetStrength( void ) const; - virtual SI16 GetDexterity( void ) const; - virtual SI16 GetIntelligence( void ) const; + virtual SI16 GetStrength( void ) const; + virtual SI16 GetDexterity( void ) const; + virtual SI16 GetIntelligence( void ) const; SI16 GetHP( void ) const; - virtual void SetStrength( SI16 newValue ); - virtual void SetDexterity( SI16 newValue ); - virtual void SetIntelligence( SI16 newValue ); - virtual void SetHP( SI16 newValue ); + virtual void SetStrength( SI16 newValue ); + virtual void SetDexterity( SI16 newValue ); + virtual void SetIntelligence( SI16 newValue ); + virtual void SetHP( SI16 newValue ); void IncHP( SI16 amtToChange ); void SetDir( UI08 newDir, bool sendUpdate = true ); UI08 GetDir( void ) const; void SetVisible( VisibleTypes newValue ); - VisibleTypes GetVisible( void ) const; + VisibleTypes GetVisible( void ) const; - ObjectType GetObjType( void ) const; - virtual bool CanBeObjType( ObjectType toCompare ) const; + ObjectType GetObjType( void ) const; + virtual bool CanBeObjType( ObjectType toCompare ) const; SI16 GetHiDamage( void ) const; SI16 GetLoDamage( void ) const; @@ -242,16 +237,16 @@ public: SI16 GetDexterity2( void ) const; SI16 GetIntelligence2( void ) const; - virtual void SetStrength2( SI16 nVal ); - virtual void SetDexterity2( SI16 nVal ); - virtual void SetIntelligence2( SI16 nVal ); + virtual void SetStrength2( SI16 nVal ); + virtual void SetDexterity2( SI16 nVal ); + virtual void SetIntelligence2( SI16 nVal ); void IncStrength( SI16 toInc = 1 ); void IncDexterity( SI16 toInc = 1 ); void IncIntelligence( SI16 toInc = 1 ); - virtual void PostLoadProcessing( void ); - virtual bool LoadRemnants( void ) = 0; + virtual void PostLoadProcessing( void ); + virtual bool LoadRemnants( void ) = 0; UI08 WorldNumber( void ) const; void WorldNumber( UI08 value ); @@ -263,21 +258,21 @@ public: void SetSubRegion( UI16 value ); UI08 GetPoisoned( void ) const; - virtual void SetPoisoned( UI08 newValue ); + virtual void SetPoisoned( UI08 newValue ); SI16 GetCarve( void ) const; void SetCarve( SI16 newValue ); - virtual void Update( CSocket *mSock = nullptr, bool drawGamePlayer = false, bool sendToSelf = true ) = 0; - virtual void SendToSocket( CSocket *mSock, bool drawGamePlayer = false ) = 0; - virtual void Dirty( UpdateTypes updateType ); + virtual void Update( CSocket *mSock = nullptr, bool drawGamePlayer = false, bool sendToSelf = true ) = 0; + virtual void SendToSocket( CSocket *mSock, bool drawGamePlayer = false ) = 0; + virtual void Dirty( UpdateTypes updateType ); void RemoveFromRefreshQueue( void ); - virtual void Delete( void ) = 0; - virtual void Cleanup( void ); + virtual void Delete( void ) = 0; + virtual void Cleanup( void ); - virtual void RemoveSelfFromOwner( void ) = 0; - virtual void AddSelfToOwner( void ) = 0; + virtual void RemoveSelfFromOwner( void ) = 0; + virtual void AddSelfToOwner( void ) = 0; bool IsFree( void ) const; bool IsDeleted( void ) const; @@ -306,8 +301,6 @@ public: void SetKills( SI16 value ); SI16 GetKills( void ) const; - }; #endif - diff --git a/source/cBaseobject.cpp b/source/cBaseobject.cpp index 0df08cb3e..49b53ddb2 100644 --- a/source/cBaseobject.cpp +++ b/source/cBaseobject.cpp @@ -114,7 +114,6 @@ fame( DEFBASE_FAME ), karma( DEFBASE_KARMA ), kills( DEFBASE_KILLS ), subRegion( multis = nullptr; tempMulti = INVALIDSERIAL; objSettings.reset(); - tempContainerSerial = INVALIDSERIAL; name.reserve( MAX_NAME ); title.reserve( MAX_TITLE ); @@ -2423,7 +2422,7 @@ void CBaseObject::Cleanup( void ) //o------------------------------------------------------------------------------------------------o //| Purpose - Forces the object onto the global refresh queue //o------------------------------------------------------------------------------------------------o -void CBaseObject::Dirty( UpdateTypes updateType ) +void CBaseObject::Dirty( UpdateTypes /*updateType*/ ) { if( IsDeleted() ) { diff --git a/source/cChar.cpp b/source/cChar.cpp index d14712aaa..05d9453d2 100644 --- a/source/cChar.cpp +++ b/source/cChar.cpp @@ -5969,10 +5969,10 @@ void CChar::SetCallNum( SERIAL newValue ) { if( !IsValidPlayer() ) { - if( newValue != DEFPLAYER_CALLNUM ) - { - CreatePlayer(); - } + if( DEFPLAYER_CALLNUM < 0 || (DEFPLAYER_CALLNUM >= 0 && newValue != (unsigned)DEFPLAYER_CALLNUM) ) + { + CreatePlayer(); + } } if( IsValidPlayer() ) { @@ -5999,10 +5999,10 @@ void CChar::SetPlayerCallNum( SERIAL newValue ) { if( !IsValidPlayer() ) { - if( newValue != DEFPLAYER_PLAYERCALLNUM ) - { - CreatePlayer(); - } + if( DEFPLAYER_PLAYERCALLNUM < 0 || (DEFPLAYER_PLAYERCALLNUM >= 0 && newValue != (unsigned)DEFPLAYER_PLAYERCALLNUM) ) + { + CreatePlayer(); + } } if( IsValidPlayer() ) { @@ -8001,7 +8001,7 @@ void CChar::Heal( SI16 healValue, CChar *healer ) //o------------------------------------------------------------------------------------------------o //| Purpose - Lets character react to damage dealt to them //o------------------------------------------------------------------------------------------------o -void CChar::ReactOnDamage( WeatherType damageType, CChar *attacker ) +void CChar::ReactOnDamage( WeatherType /*damageType*/, CChar *attacker ) { CSocket *mSock = GetSocket(); @@ -8312,7 +8312,7 @@ void CChar::UpdateDamageTrack( void ) //o------------------------------------------------------------------------------------------------o //| Purpose - Sets weight of character //o------------------------------------------------------------------------------------------------o -void CChar::SetWeight( SI32 newVal, bool doWeightUpdate ) +void CChar::SetWeight( SI32 newVal, bool /*doWeightUpdate*/ ) { Dirty( UT_STATWINDOW ); weight = newVal; diff --git a/source/cChar.h b/source/cChar.h index 6dce0f68e..82f23ea5c 100644 --- a/source/cChar.h +++ b/source/cChar.h @@ -65,40 +65,45 @@ private: NPCValues_st(); void DumpBody( std::ofstream& outStream ); + SI08 wanderMode; // NPC Wander Mode + SI08 oldWanderMode; // Used for fleeing npcs + SERIAL fTarg; // NPC Follow Target + SI16 fx[2]; //NPC Wander Point x + SI16 fy[2]; //NPC Wander Point y + SI08 fz; //NPC Wander Point z SI16 aiType; + SI16 spellAttack; + SI08 spellDelay; // won't time out for more than 255 seconds! + SI16 taming; + SI16 fleeAt; // HP Level to flee at + SI16 reAttackAt; // HP Level to re-Attack at + UI08 splitNum; + UI08 splitChance; + UI08 trainingPlayerIn; + UI32 goldOnHand; + UI08 questType; + UI08 questDestRegion; + UI08 questOrigRegion; CBaseObject * petGuarding; - SI16 taming; + cNPC_FLAG npcFlag; + std::bitset<8> boolFlags; SI16 peaceing; SI16 provoing; - UI08 trainingPlayerIn; - UI32 goldOnHand; - - UI08 splitNum; - UI08 splitChance; + UI16 tamedHungerRate; // The rate at which hunger decreases when char is tamed + UI16 tamedThirstRate; // The rate at which thirst decreases when char is tamed + UI08 hungerWildChance; // The chance that the char goes wild when hungry + UI08 thirstWildChance; // The chance that the char goes wild when thirsty + R32 walkingSpeed; + R32 runningSpeed; + R32 fleeingSpeed; SI08 pathFail; SI08 pathResult; UI16 pathTargX; UI16 pathTargY; - SI16 fx[2]; //NPC Wander Point x - SI16 fy[2]; //NPC Wander Point y - SI08 fz; //NPC Wander Point z - - SI08 wanderMode; // NPC Wander Mode - SI08 oldWanderMode; // Used for fleeing npcs std::deque pathToFollow; // let's use a queue of directions to follow - SI16 spellAttack; - SI08 spellDelay; // won't time out for more than 255 seconds! - - UI08 questType; - UI08 questDestRegion; - UI08 questOrigRegion; - - SI16 fleeAt; // HP Level to flee at - SI16 reAttackAt; // HP Level to re-Attack at - UI08 controlSlots; // Amount of control slots taken up by a particular NPC std::vector petFriends; // Temporary list of friends a pet has GenericList petOwnerList; // Persistent list of owners a pet has previously had @@ -106,21 +111,8 @@ private: UI16 loyalty; // Pet's current loyalty to its master UI16 orneriness; // Difficulty to control pet - UI16 tamedHungerRate; // The rate at which hunger decreases when char is tamed - UI16 tamedThirstRate; // The rate at which thirst decreases when char is tamed - UI08 hungerWildChance; // The chance that the char goes wild when hungry - UI08 thirstWildChance; // The chance that the char goes wild when thirsty std::string foodList; - SERIAL fTarg; // NPC Follow Target - - cNPC_FLAG npcFlag; - - std::bitset<8> boolFlags; - - R32 walkingSpeed; - R32 runningSpeed; - R32 fleeingSpeed; R32 mountedWalkingSpeed; R32 mountedRunningSpeed; R32 mountedFleeingSpeed; @@ -131,48 +123,43 @@ private: PlayerValues_st(); void DumpBody( std::ofstream& outStream ); + SERIAL callNum; // Callnum GM or Counsellor is on + SERIAL playerCallNum; // Players call number in GM or Counsellor requestQueue + SERIAL trackingTarget; // Tracking target ID + UI08 squelched; // Squelching + UI08 commandLevel; // 0 = player, 1 = counselor, 2 = GM + UI08 postType; + UI16 hairStyle; + UI16 beardStyle; + COLOUR hairColour; + COLOUR beardColour; + CItem * speechItem; + UI08 speechMode; + UI08 speechId; + cScript * speechCallback; + SERIAL robe; + UI16 accountNum; + UI16 origSkin; + UI16 origId; // Backup of body type for polymorph + UI08 fixedLight; // Fixed lighting level (For chars in dungeons, where they dont see the night) + UI16 deaths; CSocket * socket; - SERIAL robe; - - SERIAL trackingTarget; // Tracking target ID std::vector trackingTargets; - UI16 accountNum; - - UI16 origId; // Backup of body type for polymorph - UI16 origSkin; std::string origName; // original name - for Incognito - UI16 hairStyle; - UI16 beardStyle; - COLOUR hairColour; - COLOUR beardColour; - std::string lastOn; //Last time a character was on UI32 lastOnSecs; //Last time a character was on in seconds. - UI08 commandLevel; // 0 = player, 1 = counselor, 2 = GM - UI08 postType; - SERIAL callNum; // Callnum GM or Counsellor is on - SERIAL playerCallNum; // Players call number in GM or Counsellor requestQueue - - UI08 squelched; // Squelching - UI08 fixedLight; // Fixed lighting level (For chars in dungeons, where they dont see the night) - UI16 deaths; + SERIAL townVote; + SI08 townPriv; //0=non resident (Other privledges added as more functionality added) UI08 controlSlotsUsed; // The total number of control slots currently taken up by followers/pets UI32 createdOn; // Timestamp for when player character was created - SERIAL townVote; - SI08 townPriv; //0=non resident (Other privledges added as more functionality added) - UI08 atrophy[INTELLECT+1]; SkillLock lockState[INTELLECT+1]; // state of the skill locks - CItem * speechItem; - UI08 speechMode; - UI08 speechId; - cScript * speechCallback; // speechMode valid values // 0 normal speech // 1 GM page @@ -190,50 +177,55 @@ protected: NPCValues_st * mNPC; PlayerValues_st * mPlayer; + std::bitset<64> bools; // lots of flags + SI08 fontType; // Speech font to use + UI16 maxHP; + UI16 maxHP_oldstr; + RACEID oldRace; + SI16 maxMana; + UI16 maxMana_oldint; + SI16 maxStam; + UI16 maxStam_olddex; + COLOUR sayColor; + COLOUR emoteColor; + SI08 cell; // Reserved for jailing players + CItem * packItem; // Characters backpack + SERIAL targ; // Current combat target + SERIAL attacker; // Character who attacked this character SI08 hunger; // Level of hungerness, 6 = full, 0 = "empty" SI08 thirst; // Level of thirstiness, 6 = full, 0 = "empty" - UI16 town; // Matches Region number in regions.dfn - UI16 regionNum; + UI16 regionNum; + UI16 town; // Matches Region number in regions.dfn UI08 brkPeaceChanceGain; UI08 brkPeaceChance; + UI16 advObj; //Has used advance gate? + SERIAL guildFealty; // Serial of player you are loyal to (default=yourself) (DasRaetsel) + SI16 guildNumber; // Number of guild player is in (0=no guild) (DasRaetsel) + UI08 flag; //1=red 2=grey 4=Blue 8=green 10=Orange // should it not be 0x10??? sounds like we're trying to do + SI08 spellCast; + UI08 nextAct; //time to next spell action.. + SI08 stealth; // stealth ( steps already done, -1=not using ) + UI08 running; // Stamina Loose while running + RACEID raceGate; // Race gate that has been used + UI08 step; // 1 if step 1 0 if step 2 3 if step 1 skip 2 if step 2 skip - std::bitset<64> bools; // lots of flags std::bitset<16> priv; - SI16 guildNumber; // Number of guild player is in (0=no guild) (DasRaetsel) - SERIAL guildFealty; // Serial of player you are loyal to (default=yourself) (DasRaetsel) - std::string guildTitle; // Title Guildmaster granted player (DasRaetsel) + std::string guildTitle; // Title Guildmaster granted player (DasRaetsel) TIMERVAL charTimers[tCHAR_COUNT]; TIMERVAL regen[3]; TIMERVAL weathDamage[WEATHNUM]; // Light Damage timer - UI08 nextAct; //time to next spell action.. - SI08 fontType; // Speech font to use - COLOUR sayColor; - COLOUR emoteColor; - - SI08 stealth; // stealth ( steps already done, -1=not using ) - SI08 cell; // Reserved for jailing players - UI08 running; // Stamina Loose while running - UI08 step; // 1 if step 1 0 if step 2 3 if step 1 skip 2 if step 2 skip - UI32 lastMoveTime; // Timestamp for when character moved last - - CItem * packItem; // Characters backpack - SERIAL targ; // Current combat target - SERIAL attacker; // Character who attacked this character - UI16 advObj; //Has used advance gate? - RACEID raceGate; // Race gate that has been used - - SI08 spellCast; + UI08 PoisonStrength; + BodyType bodyType; + UI32 lastMoveTime; // Timestamp for when character moved last SKILLVAL baseskill[ALLSKILLS]; // Base skills without stat modifiers SKILLVAL skill[INTELLECT+1]; // List of skills (with stat modifiers) - UI08 flag; //1=red 2=grey 4=Blue 8=green 10=Orange // should it not be 0x10??? sounds like we're trying to do - LAYERLIST itemLayers; LAYERLIST_ITERATOR layerCtr; GenericList petsControlled; @@ -241,18 +233,6 @@ protected: std::bitset<32> skillUsed[2]; // no more than 64 skills std::bitset updateTypes; - UI16 maxHP; - UI16 maxHP_oldstr; - SI16 maxMana; - UI16 maxMana_oldint; - SI16 maxStam; - UI16 maxStam_olddex; - RACEID oldRace; - - BodyType bodyType; - - UI08 PoisonStrength; - DAMAGETRACK damageDealt; DAMAGETRACK damageHealed; diff --git a/source/cConsole.cpp b/source/cConsole.cpp index c68a1971c..72e9a22d2 100644 --- a/source/cConsole.cpp +++ b/source/cConsole.cpp @@ -395,7 +395,7 @@ auto CConsole::operator << ( const std::string &output ) -> CConsole& } //================================================================================================ -auto CConsole::operator << ( CEndL& myObj ) -> CConsole& +auto CConsole::operator << ( CEndL& /*myObj*/ ) -> CConsole& { if( curLeft == 0 ) { @@ -768,7 +768,7 @@ auto CConsole::MoveTo( SI32 x, SI32 y ) -> void } } #else -void CConsole::MoveTo( SI32 x, SI32 y ) +void CConsole::MoveTo( SI32 x, SI32 /*y*/ ) { std::cout << "\033[255D"; std::cout << "\033[" << x << "C"; diff --git a/source/cConsole.h b/source/cConsole.h index d906a76a6..ba54f48ae 100644 --- a/source/cConsole.h +++ b/source/cConsole.h @@ -31,7 +31,7 @@ public: std::cout.flush(); } // streaming overloads, we take pointers and references - + auto operator << ( const char *output ) -> CConsole&; auto operator << ( const std::int8_t *output ) -> CConsole&; auto operator << ( const std::uint8_t *output ) -> CConsole&; @@ -53,21 +53,20 @@ public: auto operator<<( const CBaseObject &output) -> CConsole&; auto operator<<( const std::string &outPut ) -> CConsole&; - + auto operator << ( CEndL& myObj ) -> CConsole&; - - + auto Print( const std::string& toPrint) -> void; auto Log(const std::string& msg, const std::string& filename) -> void; auto Log( const std::string& msg) -> void; auto Error( const std::string& msg) -> void; auto Warning( const std::string& msg ) -> void; - + auto CurrentMode() const -> std::uint8_t; auto CurrentMode( std::uint8_t value ) -> void; - + auto PrintSectionBegin() -> void; - + auto TurnYellow() -> void; auto TurnRed() -> void; auto TurnGreen() -> void; @@ -77,30 +76,30 @@ public: auto PrintDone() -> void; auto PrintFailed() -> void; auto PrintPassed() -> void; - + auto ClearScreen() -> void; auto Start( const std::string& temp) -> void; auto PrintBasedOnVal( bool value ) -> void; auto MoveTo( std::int32_t x, std::int32_t y = -1 ) -> void; // y=-1 will move on the current line - + auto LogEcho() const -> bool; auto LogEcho( bool value ) -> void; auto PrintSpecial( std::uint8_t color, const std::string& msg ) -> void; auto Poll() -> void; - + auto RegisterKey( std::int32_t key, std::string cmdName, std::uint16_t scriptId ) -> void; auto RegisterFunc( const std::string &key, const std::string &cmdName, UI16 scriptId ) -> void; auto SetKeyStatus( std::int32_t key, bool isEnabled ) -> void; auto SetFuncStatus( const std::string &key, bool isEnabled ) -> void; auto Registration() -> void; - + private: auto Reset() -> void; auto WindowSize() -> std::pair; auto DoClearScreen() -> void; auto SetTitle( const std::string& title ) -> void; auto SendCMD( const std::string& cmd ) -> CConsole&; - + auto PrintStartOfLine() -> void; auto StartOfLineCheck() -> void; auto cl_getch() -> std::int32_t; @@ -119,22 +118,22 @@ private: { } }; - + typedef std::map JSCONSOLEFUNCMAP; typedef std::map::iterator JSCONSOLEFUNCMAP_ITERATOR; typedef std::map JSCONSOLEKEYMAP; typedef std::map::iterator JSCONSOLEKEYMAP_ITERATOR; - + JSCONSOLEKEYMAP JSKeyHandler; JSCONSOLEFUNCMAP JSConsoleFunctions; - UI16 height, width; // for differing windows + UI16 width, height; // for differing windows UI16 curLeft, curTop; std::bitset<16> filterSettings; UI08 currentMode; UI08 previousColour; bool logEcho; bool is_initialized; - + static const std::string ESC; static const std::string CSI; static const std::string BEL; @@ -145,12 +144,12 @@ private: static const std::string VERTMOVE; static const std::string OFFCURSOR; static const std::string ONCURSOR; - + static const std::string ONGRAPHIC; static const std::string OFFGRAPHIC; - + static const std::string SETTITLE; - + static const std::string CLEAR; }; @@ -165,11 +164,10 @@ public: { test << "\n"; test.Flush(); } - + }; //o------------------------------------------------------------------------------------------------o extern CConsole Console; extern CEndL myendl; #endif - diff --git a/source/cHTMLSystem.cpp b/source/cHTMLSystem.cpp index 477f0ea96..c52c3a845 100644 --- a/source/cHTMLSystem.cpp +++ b/source/cHTMLSystem.cpp @@ -58,6 +58,7 @@ std::string GetUptime( void ) bool CountNPCFunctor( CBaseObject *a, UI32 &b, void *extraData ) { + (void)extraData; bool retVal = true; if( ValidateObject( a )) { diff --git a/source/cItem.cpp b/source/cItem.cpp index d4c0cca70..802dcd3f3 100644 --- a/source/cItem.cpp +++ b/source/cItem.cpp @@ -2492,6 +2492,7 @@ auto CItem::TextMessage( CSocket *s, SI32 dictEntry, R32 secsFromNow, UI16 Colou if( s != nullptr && cwmWorldState->ServerData()->UseUnicodeMessages() ) { bool sendAll = true; + (void)sendAll; // unused variable if( target == SPTRG_INDIVIDUAL ) { sendAll = false; @@ -2542,11 +2543,14 @@ auto CItem::TextMessage( CSocket *s, SI32 dictEntry, R32 secsFromNow, UI16 Colou //o------------------------------------------------------------------------------------------------o void CItem::Update( CSocket *mSock, bool drawGamePlayer, bool sendToSelf ) { + (void)mSock; // unused variable + (void)drawGamePlayer; // unused variable + (void)sendToSelf; // unused variable if( GetType() == IT_TRADEWINDOW ) return; //RemoveFromSight( mSock ); -#pragma note( "To monitor: Commented out RemoveFromSight() in CItem::Update() to potentially fix a lot of flickering issues with animated items, boats, etc." ) + // Note: To monitor: Commented out RemoveFromSight() in CItem::Update() to potentially fix a lot of flickering issues with animated items, boats, etc. if( GetCont() == this ) { @@ -2621,7 +2625,7 @@ void CItem::Update( CSocket *mSock, bool drawGamePlayer, bool sendToSelf ) //o------------------------------------------------------------------------------------------------o //| Purpose - Updates an item on the ground to specified socket //o------------------------------------------------------------------------------------------------o -void CItem::SendToSocket( CSocket *mSock, bool drawGamePlayer ) +void CItem::SendToSocket( CSocket *mSock, bool /*drawGamePlayer*/ ) { if( !mSock->LoginComplete() ) return; @@ -3377,7 +3381,7 @@ auto CSpawnItem::HandleSpawnContainer() -> bool { // Spawn one instance of EACH entry in the list std::string listEntry = ""; - for( int i = 0; i < itemListSize; i++ ) + for( size_t i = 0; i < itemListSize; i++ ) { // listObj will either contain an itemID and amount, or an itemlist/lootlist tag auto listObj = oldstrutil::sections( oldstrutil::trim( oldstrutil::removeTrailing( itemList->MoveTo( i ), "//" )), "," ); diff --git a/source/cItem.h b/source/cItem.h index 85d46c4f2..742bd6a35 100644 --- a/source/cItem.h +++ b/source/cItem.h @@ -16,54 +16,55 @@ class CItem : public CBaseObject protected: GenericList Contains; + CBaseObject * contObj; + UI08 glowEffect; + SERIAL glow; // identifies glowing objects + COLOUR glowColour; + SI08 madeWith; // Store the skills used to make this item + SI32 rndValueRate; // Store the value calculated base on RANDOMVALUE in region.dfn + SI16 good; // Store type of GOODs to trade system! (Plz not set as UNSIGNED) + + // for example: RANK 5 --> 5*10 = 50% of malus + // this item has same values decreased by 50%.. + // RANK 1 --> 1*10=10% this item has 90% of malus! + // RANK 10 --> 10*10 = 100% this item has no malus! RANK 10 is automatically setted if you select RANKSYSTEM 0. + // Vars: LODAMAGE, HIDAMAGE, ATT, DEF, HP, MAXHP + SI08 rank; // for rank system, this value is the LEVEL of the item from 1 to 10. Simply multiply t he rank*10 and calculate the MALUS this item has from the original. + ARMORCLASS armorClass; + UI16 restock; // Number up to which shopkeeper should restock this item + SI08 movable; // 0=Default as stored in client, 1=Always movable, 2=Never movable, 3=Owner movable. + TIMERVAL tempTimer; + TIMERVAL decayTime; + UI08 spd; //The speed of the weapon + UI16 maxHp; // Max number of hit points an item can have. + UI16 amount; // Amount of items in pile + ItemLayers layer; // Layer if equipped on paperdoll + ItemTypes type; // For things that do special things on doubleclicking + SI08 offspell; + UI16 entryMadeFrom; + SERIAL creator; // Store the serial of the player made this item SI08 gridLoc; - CBaseObject * contObj; std::bitset<8> bools; std::bitset<8> priv; // Bit 0, decay off/on. Bit 1, newbie item off/on. Bit 2 Dispellable std::string name2; - SERIAL creator; // Store the serial of the player made this item std::string desc; std::string eventName; // Name of custom event item belongs to - ItemLayers layer; // Layer if equipped on paperdoll - ItemTypes type; // For things that do special things on doubleclicking - - SI08 offspell; UI32 tempVars[CITV_COUNT]; - UI16 amount; // Amount of items in pile - UI16 maxHp; // Max number of hit points an item can have. + SI32 weightMax; //Maximum weight a container can hold + SI32 baseWeight; //Base weight of item. Applied when item is created for the first time, based on weight. Primarily used to determine base weight of containers + UI16 maxItems; // Maximum amount of items a container can hold + UI08 maxRange; // Max range of ranged weapon + UI08 baseRange; // Base range of thrown weapon UI16 maxUses; // Max number of uses an item can have UI16 usesLeft; // Current number of uses left on an item - UI08 spd; //The speed of the weapon - SI08 movable; // 0=Default as stored in client, 1=Always movable, 2=Never movable, 3=Owner movable. UI08 dir; //direction an item can have - TIMERVAL tempTimer; - TIMERVAL decayTime; UI32 value[3]; // Price a shopkeep buys and sells items for, with price on player vendor as optional third value - UI16 restock; // Number up to which shopkeeper should restock this item - ARMORCLASS armorClass; - SI08 rank; // for rank system, this value is the LEVEL of the item from 1 to 10. Simply multiply t he rank*10 and calculate the MALUS this item has from the original. - // for example: RANK 5 --> 5*10 = 50% of malus - // this item has same values decreased by 50%.. - // RANK 1 --> 1*10=10% this item has 90% of malus! - // RANK 10 --> 10*10 = 100% this item has no malus! RANK 10 is automatically setted if you select RANKSYSTEM 0. - // Vars: LODAMAGE, HIDAMAGE, ATT, DEF, HP, MAXHP - SI16 good; // Store type of GOODs to trade system! (Plz not set as UNSIGNED) - SI32 rndValueRate; // Store the value calculated base on RANDOMVALUE in region.dfn - SI08 madeWith; // Store the skills used to make this item - SERIAL glow; // identifies glowing objects - COLOUR glowColour; - UI08 glowEffect; UI16 ammo[2]; // Ammo ID and Hue UI16 ammoFX[3]; // Ammo-effect ID, Hue and rendermode - UI08 baseRange; // Base range of thrown weapon - UI08 maxRange; // Max range of ranged weapon - SI32 weightMax; //Maximum weight a container can hold - SI32 baseWeight; //Base weight of item. Applied when item is created for the first time, based on weight. Primarily used to determine base weight of containers - UI16 maxItems; // Maximum amount of items a container can hold UI16 regionNum; @@ -77,7 +78,6 @@ protected: virtual bool DumpHeader( std::ofstream &outStream ) const override; virtual bool LoadRemnants( void ) override; - UI16 entryMadeFrom; UI32 spells[3]; // For spellbooks (eventually should be a derived class) auto CopyData( CItem *target ) -> void; @@ -348,4 +348,3 @@ public: }; #endif - diff --git a/source/cMultiObj.h b/source/cMultiObj.h index 9226f3004..12cbf25dc 100644 --- a/source/cMultiObj.h +++ b/source/cMultiObj.h @@ -15,16 +15,17 @@ protected: std::vector secureContainerList; UI16 maxSecureContainers; + UI16 maxFriends; + UI16 maxGuests; + UI16 maxOwners; + UI16 maxBans; + + UI16 maxVendors; + std::vector trashContainerList; UI16 maxTrashContainers; std::vector vendorList; - UI16 maxVendors; - - UI16 maxFriends; - UI16 maxGuests; - UI16 maxOwners; - UI16 maxBans; SI16 banX; SI16 banY; diff --git a/source/cPlayerAction.cpp b/source/cPlayerAction.cpp index b571e10bf..57b515e09 100644 --- a/source/cPlayerAction.cpp +++ b/source/cPlayerAction.cpp @@ -111,6 +111,7 @@ void PickupBounce( CSocket *bouncer, UI08 mode = 0 ) //o------------------------------------------------------------------------------------------------o CItem *DoStacking( CSocket *mSock, CChar *mChar, CItem *i, CItem *stack ) { + (void)mChar; // unused variable UI32 newAmt = stack->GetAmount() + i->GetAmount(); if( newAmt > MAX_STACK ) { @@ -1589,6 +1590,7 @@ UI16 HandleAutoStack( CItem *mItem, CItem *mCont, CSocket *mSock, CChar *mChar ) //o------------------------------------------------------------------------------------------------o bool DropOnContainer( CSocket& mSock, CChar& mChar, CItem& droppedOn, CItem& iDropped, bool &stackDeleted, SI16 x, SI16 y, SI08 gridLoc ) { + (void)stackDeleted; // unused variable CChar *contOwner = FindItemOwner( &droppedOn ); if( ValidateObject( contOwner )) { diff --git a/source/cRaces.cpp b/source/cRaces.cpp index ea8141ad2..b7ee8a6b4 100644 --- a/source/cRaces.cpp +++ b/source/cRaces.cpp @@ -1730,7 +1730,7 @@ void CRace::Load( size_t sectNum, SI32 modCount ) if( subUTag == "ITEMS" ) { auto csecs = oldstrutil::sections( subData, "," ); - for( int i = 0; i < csecs.size() - 1; i++ ) + for( size_t i = 0; i < csecs.size() - 1; i++ ) { UI16 temp = static_cast( std::stoul( oldstrutil::trim( oldstrutil::removeTrailing( csecs[i], "//" )), nullptr, 0 )); //allowedEquipment.push_back( temp ); @@ -1773,7 +1773,7 @@ void CRace::Load( size_t sectNum, SI32 modCount ) if( subUTag == "ITEMS" ) { auto csecs = oldstrutil::sections( subData, "," ); - for( int i = 0; i < csecs.size() - 1; i++ ) + for( size_t i = 0; i < csecs.size() - 1; i++ ) { UI16 temp = static_cast( std::stoul( oldstrutil::trim( oldstrutil::removeTrailing( csecs[i], "//" )), nullptr, 0 )); //bannedEquipment.push_back( temp ); diff --git a/source/cRaces.h b/source/cRaces.h index 69814b26d..a8bc457b6 100644 --- a/source/cRaces.h +++ b/source/cRaces.h @@ -30,21 +30,25 @@ private: //SKILLVAL iSkills[SKILLS]; std::string raceName; + std::bitset<8> bools; + RANGE visDistance; + LIGHTLEVEL nightVision; + ARMORCLASS armourRestrict; + LIGHTLEVEL lightLevel; + GENDER restrictGender; + SKILLVAL languageMin; + R32 poisonResistance; // % of poison to cancel + R32 magicResistance; // % of magic to cancel + COLOURLIST beardColours; COLOURLIST hairColours; COLOURLIST skinColours; COLOUR bloodColour; - std::bitset<8> bools; - - GENDER restrictGender; RACEIDLIST racialEnemies; - LIGHTLEVEL lightLevel; COLDLEVEL coldLevel; HEATLEVEL heatLevel; - LIGHTLEVEL nightVision; - ARMORCLASS armourRestrict; ALLOWEQUIPLIST allowedEquipment; BANEQUIPLIST bannedEquipment; @@ -55,10 +59,6 @@ private: std::array weathDamage; //SI08 weathDamage[WEATHNUM]; - SKILLVAL languageMin; - RANGE visDistance; - R32 poisonResistance; // % of poison to cancel - R32 magicResistance; // % of magic to cancel bool doesHunger; bool doesThirst; UI16 hungerRate; diff --git a/source/cScript.h b/source/cScript.h index fc4cc8989..7acd52046 100644 --- a/source/cScript.h +++ b/source/cScript.h @@ -136,9 +136,9 @@ private: JSContext * targContext; JSObject * targObject; + bool isFiring; UI08 runTime; - bool isFiring; std::bitset<64> eventPresence[3]; std::bitset<64> needsChecking[3]; bool EventExists( ScriptEvent eventNum ) const; diff --git a/source/cServerData.cpp b/source/cServerData.cpp index eb4766b9e..e3794fd96 100644 --- a/source/cServerData.cpp +++ b/source/cServerData.cpp @@ -2808,7 +2808,7 @@ auto CServerData::HirelingCombatTraining() const -> bool { return boolVals.test( BIT_HIRELINGCOMBATTRAINING ); } -auto CServerData::HirelingCombatTraining( bool newVal ) -> void +auto CServerData::HirelingCombatTraining( bool /*newVal*/ ) -> void { boolVals.set( BIT_HIRELINGCOMBATTRAINING ); } @@ -4971,6 +4971,7 @@ auto CServerData::ParseIni( const std::string& filename ) -> bool } } } + [[fallthrough]]; case static_cast( search_t::startsection ): { if( line[0] == '{' ) @@ -4978,6 +4979,7 @@ auto CServerData::ParseIni( const std::string& filename ) -> bool state = search_t::endsection; } } + [[fallthrough]]; case static_cast( search_t::endsection ): { if( line[0] != '}' ) diff --git a/source/cSocket.cpp b/source/cSocket.cpp index 072c51a02..ccabd2c95 100644 --- a/source/cSocket.cpp +++ b/source/cSocket.cpp @@ -126,15 +126,15 @@ const char *socket_error::what( void ) const throw() return runtime_error::what(); } -socket_error::socket_error( void ) : errorNum( -1 ), runtime_error( "" ) +socket_error::socket_error( void ) : runtime_error( "" ), errorNum( -1 ) { } -socket_error::socket_error( const std::string& what_arg ) : errorNum( -1 ), runtime_error( what_arg ) +socket_error::socket_error( const std::string& what_arg ) : runtime_error( what_arg ), errorNum( -1 ) { } -socket_error::socket_error( const UI32 errorNumber ) : errorNum( errorNumber ), runtime_error( "" ) +socket_error::socket_error( const UI32 errorNumber ) : runtime_error( "" ), errorNum( errorNumber ) { } @@ -622,10 +622,10 @@ const bool DEFSOCK_LOGINCOMPLETE = false; //| Purpose - This function basically does what the name implies //o------------------------------------------------------------------------------------------------o CSocket::CSocket( size_t sockNum ) : currCharObj( nullptr ), idleTimeout( DEFSOCK_IDLETIMEOUT ), -tempint( DEFSOCK_TEMPINT ), dyeall( DEFSOCK_DYEALL ), clickz( DEFSOCK_CLICKZ ), newClient( DEFSOCK_NEWCLIENT ), firstPacket( DEFSOCK_FIRSTPACKET ), -range( DEFSOCK_RANGE ), cryptclient( DEFSOCK_CRYPTCLIENT ), cliSocket( sockNum ), walkSequence( DEFSOCK_WALKSEQUENCE ), clickx( DEFSOCK_CLICKX ), -currentSpellType( DEFSOCK_CURSPELLTYPE ), outlength( DEFSOCK_OUTLENGTH ), inlength( DEFSOCK_INLENGTH ), logging( DEFSOCK_LOGGING ), clicky( DEFSOCK_CLICKY ), -postAckCount( DEFSOCK_POSTACKCOUNT ), pSpot( DEFSOCK_PSPOT ), pFrom( DEFSOCK_PFROM ), pX( DEFSOCK_PX ), pY( DEFSOCK_PY ), +tempint( DEFSOCK_TEMPINT ), dyeall( DEFSOCK_DYEALL ), clickz( DEFSOCK_CLICKZ ), range( DEFSOCK_RANGE ), clickx( DEFSOCK_CLICKX ), clicky( DEFSOCK_CLICKY ), +newClient( DEFSOCK_NEWCLIENT ), currentSpellType( DEFSOCK_CURSPELLTYPE ), outlength( DEFSOCK_OUTLENGTH ), inlength( DEFSOCK_INLENGTH ), +logging( DEFSOCK_LOGGING ), cryptclient( DEFSOCK_CRYPTCLIENT ), cliSocket( sockNum ), walkSequence( DEFSOCK_WALKSEQUENCE ), postAckCount( DEFSOCK_POSTACKCOUNT ), +pSpot( DEFSOCK_PSPOT ), pFrom( DEFSOCK_PFROM ), firstPacket( DEFSOCK_FIRSTPACKET ), pX( DEFSOCK_PX ), pY( DEFSOCK_PY ), pZ( DEFSOCK_PZ ), lang( DEFSOCK_LANG ), cliType( DEFSOCK_CLITYPE ), cliVerShort( DEFSOCK_CLIVERSHORT), clientVersion( DEFSOCK_CLIENTVERSION ), bytesReceived( DEFSOCK_BYTESRECEIVED ), bytesSent( DEFSOCK_BYTESSENT ), receivedVersion( DEFSOCK_RECEIVEDVERSION ), tmpObj( nullptr ), tmpObj2( nullptr ), loginComplete( DEFSOCK_LOGINCOMPLETE ), cursorItem( nullptr ), bytesRecvWarningCount( DEFSOCK_BYTESRECEIVEDWARNINGCOUNT ), bytesSentWarningCount( DEFSOCK_BYTESSENTWARNINGCOUNT ) @@ -1067,8 +1067,8 @@ SI32 CSocket::Receive( SI32 x, bool doLog ) } ++recvAttempts; nexTime = GetClock(); - // You will find the values for the following in the uox.ini file as NETRCVTIMEOUT, and NETRETRYCOUNT respectivly - if( recvAttempts == cwmWorldState->ServerData()->ServerNetRetryCount() || (nexTime - curTime) > static_cast( cwmWorldState->ServerData()->ServerNetRcvTimeout() * 1000 )) + // You will find the values for the following in the uox.ini file as NETRCVTIMEOUT, and NETRETRYCOUNT respectively + if( recvAttempts == cwmWorldState->ServerData()->ServerNetRetryCount() || (nexTime - curTime) > static_cast( cwmWorldState->ServerData()->ServerNetRcvTimeout() * 1000 )) { // looks like we're not going to get it! // April 3, 2004 - If we have some data, then we need to return it. Some of the network logic is looking at count size. this way we can also validate on the calling side so we ask for 4 bytes, but only 3 were sent back, adn let the calling routing handle it, if we call for 4 and get get NOTHING then throw... Just my thoughts - if( count <= 0 ) @@ -2842,6 +2842,7 @@ const UI08 *CPUOXBuffer::PackedPointer( void ) const bool CPUOXBuffer::ClientCanReceive( CSocket *mSock ) { + (void)mSock; // unused variable // Default implementation, all clients can receive all packets return true; } diff --git a/source/cSocket.h b/source/cSocket.h index 2602f407d..364b50044 100644 --- a/source/cSocket.h +++ b/source/cSocket.h @@ -94,34 +94,51 @@ private: std::vector largePackBuffer; std::string xtext; + SI16 clickx; + SI16 clicky; + UI08 currentSpellType; + SI32 outlength; + SI32 inlength; + bool logging; + UI08 range; + bool cryptclient; + size_t cliSocket; // client + SI16 walkSequence; + size_t postAckCount; + PickupLocations pSpot; + SERIAL pFrom; + SI16 pX; + SI16 pY; + SI08 pZ; + + UnicodeTypes lang; + ClientTypes cliType; + ClientVersions cliVerShort; + UI32 clientVersion; + + UI32 bytesReceived; + UI32 bytesSent; + bool receivedVersion; // Temporary variables (For targeting commands, etc) CBaseObject * tmpObj; CBaseObject * tmpObj2; + SI32 tempint; + SI32 tempint2; + UI08 dyeall; SI08 clickz; UI08 addid[4]; - SI32 tempint; - SI32 tempint2; - UI08 dyeall; - bool newClient; - bool firstPacket; - bool cryptclient; + bool newClient; + bool firstPacket; + bool forceOffline; - size_t cliSocket; // client UI08 clientip[4]; - SI16 walkSequence; - UI08 currentSpellType; + bool loginComplete; + CItem * cursorItem; //pointer to item held on mouse cursor - SI32 outlength; - SI32 inlength; - - bool logging; - - UI32 bytesReceived; - UI32 bytesSent; UI16 bytesRecvWarningCount; UI16 bytesSentWarningCount; @@ -129,30 +146,9 @@ private: std::vector postAcked; std::vector::iterator ackIter; - size_t postAckCount; - - SI16 clickx; - SI16 clicky; - - PickupLocations pSpot; - SERIAL pFrom; - SI16 pX; - SI16 pY; - SI08 pZ; - CItem * cursorItem; //pointer to item held on mouse cursor - UI32 Pack( void *pvIn, void *pvOut, SI32 len ); - UnicodeTypes lang; - UI32 clientVersion; - ClientTypes cliType; - ClientVersions cliVerShort; - UI08 range; - - bool receivedVersion; - bool loginComplete; - // Timer Vals moved here from CChar due to their inherently temporary nature and to reduce wasted memory TIMERVAL pcTimers[tPC_COUNT]; public: diff --git a/source/cmdtable.cpp b/source/cmdtable.cpp index 390b2c53d..7bdc8ffb7 100644 --- a/source/cmdtable.cpp +++ b/source/cmdtable.cpp @@ -149,8 +149,9 @@ void NextCall( CSocket *s, bool isGM ) //o------------------------------------------------------------------------------------------------o //| Purpose - Replaces legacy spawner objects that have incorrect item type //o------------------------------------------------------------------------------------------------o -bool FixSpawnFunctor( CBaseObject *a, UI32 &b, void *extraData ) +bool FixSpawnFunctor( CBaseObject *a, UI32 /*&b*/, void *extraData ) { + (void)extraData; // unused variable bool retVal = true; if( ValidateObject( a )) { @@ -718,8 +719,9 @@ void Command_SetShopRestockRate( CSocket *s ) s->SysMessage( 57 ); // Invalid number of parameters. } -bool RespawnFunctor( CBaseObject *a, UI32 &b, void *extraData ) +bool RespawnFunctor( CBaseObject *a, UI32 /*&b*/, void *extraData ) { + (void)extraData; // unused variable bool retVal = true; if( ValidateObject( a )) { @@ -1510,6 +1512,7 @@ void CCommands::CommandReset() //o------------------------------------------------------------------------------------------------o void CCommands::UnRegister( const std::string &cmdName, cScript *toRegister ) { + (void)toRegister; // unused variable #if defined( UOX_DEBUG_MODE ) Console.Print( oldstrutil::format( " UnRegistering command %s\n", cmdName.c_str() )); #endif diff --git a/source/mapclasses.h b/source/mapclasses.h index 8335f2060..52b502a74 100644 --- a/source/mapclasses.h +++ b/source/mapclasses.h @@ -208,7 +208,7 @@ public: auto IsRoadId() const -> bool { auto rValue = false; - for( auto j = 0; j < roadIds.size(); j += 2 ) + for( size_t j = 0; j < roadIds.size(); j += 2 ) { if( textureId >= roadIds[j] && textureId <= roadIds[j + 1] ) { @@ -227,8 +227,8 @@ enum TileType_t { terrain, art, dyn }; struct Tile_st { + TileType_t type; std::uint16_t tileId; // for instance, this should be a tileid_t , that would make sense! - TileType_t type; std::int8_t altitude; std::uint16_t staticHue; union diff --git a/source/mapstuff.h b/source/mapstuff.h index ebd3b5ee3..1ee7cc617 100644 --- a/source/mapstuff.h +++ b/source/mapstuff.h @@ -82,7 +82,7 @@ class UltimaMap : public UopFile bool isUop; int _diffCount; int _diffTerrain; - auto ProcessEntry( std::size_t entry, std::size_t index, std::vector &data ) -> bool final; + auto virtual ProcessEntry( std::size_t entry, std::size_t index, std::vector &data ) -> bool final; auto CalcBlock (int x, int y ) const -> int; auto CalcXYOffset( int block ) const -> std::pair; auto LoadTerrainBlock( int blockNum, std::uint8_t *data ) -> void; diff --git a/source/network.h b/source/network.h index d6d59cc13..200229ca6 100644 --- a/source/network.h +++ b/source/network.h @@ -234,8 +234,7 @@ private: } // End of strutil inclusion //============================================================================================= - - + protected: mutable int _index; std::vector _bytedata; @@ -243,26 +242,27 @@ protected: auto Exceeds( int offset, int bytelength, bool expand ) -> bool; public: ByteBuffer_t( int size = 0, int reserve = 0 ); - + auto size() const -> size_t; auto size( int value, std::uint8_t fill = 0 ) -> void; - + auto index() const -> int; auto index( int value ) -> void; - + auto raw() const -> const std::uint8_t*; auto raw() -> std::uint8_t*; - + auto operator[]( int index ) const -> const std::uint8_t &; auto operator[]( int index ) -> std::uint8_t &; - + auto Fill( std::uint8_t value, int offset, int length ) -> void; auto LogByteBuffer( std::ostream &output, radix_t radix = radix_t::hex, int entries_line = 8 ) const -> void; - + // we need to read :integral/floating, vectors/list/strings template auto read( int offset =- 1, int amount =- 1, bool reverse = true ) const -> T { + (void)amount; // unused variable if( offset < 0 ) { offset = _index; @@ -419,15 +419,16 @@ public: return *this; // we put this here, versue at the end, for we want a compile error if a type not caught with if constexpr. So a return in each if constexpr at the top level } } - + template auto write( int offset, const T &value, int amount = -1, bool reverse = true, bool expand = true ) -> ByteBuffer_t& { + (void)amount; // unused variable if( offset < 0 ) { offset = _index; } - + if constexpr( std::is_integral_v || std::is_floating_point_v ) { // we ignore amount for integrals and floating point @@ -438,7 +439,7 @@ public: } if( Exceeds( offset, size, expand )) { - + throw ByteBufferBounds_st( offset, size, static_cast( _bytedata.size() )); } // we need to write it diff --git a/source/uoxstruct.h b/source/uoxstruct.h index 50b329521..1362b2f09 100644 --- a/source/uoxstruct.h +++ b/source/uoxstruct.h @@ -53,7 +53,7 @@ public: CCreatures() : creatureId( 0 ), icon( 0 ), mountId( 0 ) { who_am_i.reset(); - memset( soundList, 0x00, SND_COUNT ); + memset( soundList, 0x00, SND_COUNT * sizeof( soundList[0] )); } UI16 GetSound( monsterSound soundType ) const {