From 31804fd0989992f62f2434573d00d41302f50552 Mon Sep 17 00:00:00 2001
From: Xoduz
Date: Sat, 3 Dec 2022 22:56:40 +0800
Subject: [PATCH 01/24] Updated a couple of JS methods, fixed issue with
HirelingCombatTraining setting,minor cleanup
Updated .ResourceCount() and .UseResource() JS Object Methods to include optional parameter for sectionId. New supported syntax:
int ResourceCount( realId, colour )
int ResourceCount( realId, colour, moreVal )
int ResourceCount( realId, colour, moreVal, sectionId )
int UseResource( amount, realItemId )
int UseResource( amount, realItemId, colour )
int UseResource( amount, realItemId, colour, moreVal )
int UseResource( amount, realItemId, colour, moreVal, sectionId )
Fixed an issue where the bit flag for the HirelingCombatTraining setting was not set properly
Fixed an issue in SpiderMonkey VS project that prevented compiling a x64 debug build (thanks, punt!)
Some minor cleanup
---
source/CPacketSend.cpp | 13 ++-
source/Changelog.txt | 23 +++++
source/UOXJSMethods.cpp | 54 ++++++----
source/UOXJSPropertySpecs.h | 110 ++++++++++----------
source/cBaseObject.h | 200 ++++++++++++++++++------------------
source/cChar.h | 76 +++++++-------
source/cItem.h | 50 ++++-----
source/cMultiObj.h | 2 +-
source/cRaces.h | 14 +--
source/cServerData.cpp | 4 +-
source/cSocket.h | 14 +--
source/funcdecl.h | 6 +-
source/magic.cpp | 2 +
source/quantityfuncs.cpp | 26 +++--
spidermonkey/js32.vcxproj | 5 +
15 files changed, 328 insertions(+), 271 deletions(-)
diff --git a/source/CPacketSend.cpp b/source/CPacketSend.cpp
index 3efb77e3c..2fad42aef 100644
--- a/source/CPacketSend.cpp
+++ b/source/CPacketSend.cpp
@@ -2986,15 +2986,20 @@ CPDyeVat &CPDyeVat::operator = ( CBaseObject &target )
//| Purpose - Handles outgoing packet to bring up house/boat placement preview
//o------------------------------------------------------------------------------------------------o
//| Notes - Packet: 0x99 (Bring Up House/Boat Placement View)
-//| Size: 26 bytes
+//| Size: 26/30 bytes
//|
//| Packet Build
//| BYTE cmd
//| BYTE request (0x01 from server, 0x00 from client)
-//| BYTE[4] ID of deed
-//| BYTE[12] unknown (all 0)
+//| BYTE[4] SERIAL of deed
+//| BYTE cursorFlags (0?)
+//| BYTE[11] unknown (all 0)
//| BYTE[2] multi model (item model - 0x4000)
-//| BYTE[6] unknown (all 0)
+//| BYTE[2] xOffset
+//| BYTE[2] yOffset
+//| BYTE[2] zOffset
+//| clientVer > 7.0.9.0, 30 byte size packet
+//| BYTE[4] Hue
//o------------------------------------------------------------------------------------------------o
void CPMultiPlacementView::InternalReset( void )
{
diff --git a/source/Changelog.txt b/source/Changelog.txt
index 167d0b153..e428b5606 100644
--- a/source/Changelog.txt
+++ b/source/Changelog.txt
@@ -1,3 +1,26 @@
+03/12/2022 - Xuri
+ Updated .ResourceCount() and .UseResource() JS Object Methods to include optional parameter for sectionId. New supported syntax:
+ int ResourceCount( realId, colour )
+ int ResourceCount( realId, colour, moreVal )
+ int ResourceCount( realId, colour, moreVal, sectionId )
+ int UseResource( amount, realItemId )
+ int UseResource( amount, realItemId, colour )
+ int UseResource( amount, realItemId, colour, moreVal )
+ int UseResource( amount, realItemId, colour, moreVal, sectionId )
+ Fixed an issue where the bit flag for the HirelingCombatTraining setting was not set properly
+ Fixed an issue in SpiderMonkey VS project that prevented compiling a x64 debug build (thanks, punt!)
+ Some minor cleanup
+
+03/12/2022 - Dragon Slayer
+ GM and Counselors can now go though the wind teleporter
+
+03/12/2022 - ldilley
+ Comment line in jsconfig.mk that attempts to cat a non-existent Version file. This causes an error otherwise during the SpiderMonkey build.
+ Initialize totalPlayerGold in vendor.cpp.
+ Flag unused variable in gumps.cpp.
+ Update README.md to include references to FreeBSD and also alter the command (libtool instead of ar) used to generate the JavaScript library on macOS.
+ Improve automake.sh.
+
29/11/2022 - Xuri
Added some validation checks for attacker object in onDamage JS event in several scripts
Enabled onSellToVendor, onSoldToVendor, onBuyFromVendor and onBoughtFromVendor JS events to also run if attached to NPCs
diff --git a/source/UOXJSMethods.cpp b/source/UOXJSMethods.cpp
index 84392e727..cd63b7224 100644
--- a/source/UOXJSMethods.cpp
+++ b/source/UOXJSMethods.cpp
@@ -3580,8 +3580,9 @@ JSBool CGuild_AcceptRecruit( JSContext *cx, JSObject *obj, uintN argc, jsval *ar
//o------------------------------------------------------------------------------------------------o
//| Function - CChar_ResourceCount()
-//| Prototype - int ResourceCount( realitemid, colour )
-//| int ResourceCount( realitemid, colour, moreVal )
+//| Prototype - int ResourceCount( realId, colour )
+//| int ResourceCount( realId, colour, moreVal )
+//| int ResourceCount( realId, colour, moreVal, sectionId )
//o------------------------------------------------------------------------------------------------o
//| Purpose - Returns the amount of the items of given ID, colour and moreVal character has in packs
//o------------------------------------------------------------------------------------------------o
@@ -3597,11 +3598,12 @@ JSBool CChar_ResourceCount( JSContext *cx, JSObject *obj, uintN argc, jsval *arg
UI16 realId = static_cast( JSVAL_TO_INT( argv[0] ));
SI32 itemColour = 0;
- UI32 moreVal = 0;
+ SI64 moreVal = -1;
+ std::string sectionId = "";
- if(( argc < 1 ) || ( argc > 3 ))
+ if(( argc < 1 ) || ( argc > 4 ))
{
- MethodError( "(ResourceCount) Invalid count of parameters: %d, either needs 1, 2 or 3", argc );
+ MethodError( "(ResourceCount) Invalid count of parameters: %d, needs from 1 to 4 parameters", argc );
return JS_FALSE;
}
@@ -3611,20 +3613,26 @@ JSBool CChar_ResourceCount( JSContext *cx, JSObject *obj, uintN argc, jsval *arg
}
if( argc >= 3 )
{
- moreVal = static_cast( JSVAL_TO_INT( argv[2] ));
+ moreVal = static_cast( JSVAL_TO_INT( argv[2] ));
+ }
+ if( argc >= 4 )
+ {
+ sectionId = JS_GetStringBytes( JS_ValueToString( cx, argv[3] ));
}
bool colorCheck = ( itemColour != -1 ? true : false );
+ bool moreCheck = ( moreVal != -1 ? true : false );
- *rval = INT_TO_JSVAL( GetItemAmount( myChar, realId, static_cast( itemColour ), moreVal, colorCheck ));
+ *rval = INT_TO_JSVAL( GetItemAmount( myChar, realId, static_cast( itemColour ), static_cast( moreVal ), colorCheck, moreCheck, sectionId ));
return JS_TRUE;
}
//o------------------------------------------------------------------------------------------------o
//| Function - CBase_UseResource()
-//| Prototype - int UseResource( amount, realitemid )
-//| int UseResource( amount, realitemid, colour )
-//| int UseResource( amount, realitemid, colour, moreVal )
+//| Prototype - int UseResource( amount, realItemId )
+//| int UseResource( amount, realItemId, colour )
+//| int UseResource( amount, realItemId, colour, moreVal )
+//| int UseResource( amount, realItemId, colour, moreVal, sectionId )
//o------------------------------------------------------------------------------------------------o
//| Purpose - Removes specified amount of items of given ID, colour and MORE value from
//| char's packs, and returns amount deleted
@@ -3642,36 +3650,44 @@ JSBool CBase_UseResource( JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
UI32 amount = static_cast( JSVAL_TO_INT( argv[0] ));
UI16 realId = static_cast( JSVAL_TO_INT( argv[1] ));
- UI16 itemColour = 0;
- UI32 moreVal = 0;
+ SI32 itemColour = 0;
+ SI64 moreVal = -1;
+ std::string sectionId = "";
- // Min. 2 Arguments (amount + id) or max 4 (amount + id + color + moreVal)
- if(( argc < 2 ) || ( argc > 4 ))
+ // Min. 2 Arguments (amount + id) or max 5 (amount + id + color + moreVal + sectionId)
+ if(( argc < 2 ) || ( argc > 5 ))
{
- MethodError( "(UseResource) Invalid count of parameters: %d, either needs 2, 3 or 4", argc );
+ MethodError( "(UseResource) Invalid count of parameters: %d, needs from 2 to 5 parameters", argc );
return JS_FALSE;
}
if( argc >= 3 )
{
- itemColour = static_cast( JSVAL_TO_INT( argv[2] ));
+ itemColour = static_cast( JSVAL_TO_INT( argv[2] ));
}
if( argc >= 4 )
{
- moreVal = static_cast( JSVAL_TO_INT( argv[3] ));
+ moreVal = static_cast( JSVAL_TO_INT( argv[3] ));
}
+ if( argc >= 5 )
+ {
+ sectionId = JS_GetStringBytes( JS_ValueToString( cx, argv[4] ));
+ }
+
+ bool colorCheck = ( itemColour != -1 ? true : false );
+ bool moreCheck = ( moreVal != -1 ? true : false );
UI32 retVal = 0;
if( myClass.ClassName() == "UOXChar" )
{
CChar *myChar = static_cast( myObj );
- retVal = DeleteItemAmount( myChar, amount, realId, itemColour, moreVal );
+ retVal = DeleteItemAmount( myChar, amount, realId, static_cast( itemColour ), static_cast( moreVal ), colorCheck, moreCheck, sectionId );
}
else
{
CItem *myItem = static_cast( myObj );
- retVal = DeleteSubItemAmount( myItem, amount, realId, itemColour, moreVal );
+ retVal = DeleteSubItemAmount( myItem, amount, realId, static_cast( itemColour ), static_cast( moreVal ), colorCheck, moreCheck, sectionId );
}
*rval = INT_TO_JSVAL( retVal );
return JS_TRUE;
diff --git a/source/UOXJSPropertySpecs.h b/source/UOXJSPropertySpecs.h
index 8021cbf5b..79f8bdd91 100644
--- a/source/UOXJSPropertySpecs.h
+++ b/source/UOXJSPropertySpecs.h
@@ -51,7 +51,7 @@ inline JSPropertySpec CSpellProperties[] =
{ "soundEffect", CSP_SOUNDEFFECT, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "enabled", CSP_ENABLED, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "baseDmg", CSP_BASEDMG, JSPROP_ENUMANDPERM, nullptr, nullptr },
- { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
+ { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
};
inline JSPropertySpec CGlobalSkillProperties[] =
@@ -63,7 +63,7 @@ inline JSPropertySpec CGlobalSkillProperties[] =
{ "intelligence", CGSKILL_INTELLIGENCE, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "skillDelay", CGSKILL_SKILLDELAY, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "scriptID", CGSKILL_SCRIPTID, JSPROP_ENUMANDPERM, nullptr, nullptr },
- { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
+ { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
};
inline JSPropertySpec CCreateEntryProperties[] =
@@ -81,7 +81,7 @@ inline JSPropertySpec CCreateEntryProperties[] =
{ "skills", CMAKE_SKILLS, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "avgMinSkill", CMAKE_AVGMINSKILL, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "avgMaxSkill", CMAKE_AVGMAXSKILL, JSPROP_ENUMANDPERM, nullptr, nullptr },
- { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
+ { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
};
inline JSPropertySpec CTimerProperties[] =
@@ -121,7 +121,7 @@ inline JSPropertySpec CTimerProperties[] =
{ "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, static_cast(0), static_cast(0), nullptr, nullptr }
+ { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
};
inline JSPropertySpec CRaceProperties[] =
@@ -140,7 +140,7 @@ inline JSPropertySpec CRaceProperties[] =
{ "magicResistance", CRP_MAGICRESISTANCE, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "visibleDistance", CRP_VISIBLEDISTANCE, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "nightVision", CRP_NIGHTVISION, JSPROP_ENUMANDPERM, nullptr, nullptr },
- { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
+ { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
};
@@ -177,7 +177,7 @@ inline JSPropertySpec CRegionProperties[] =
{ "music", CREGP_MUSIC, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "weather", CREGP_WEATHER, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "owner", CREGP_OWNER, JSPROP_ENUMANDPERM, nullptr, nullptr },
- { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
+ { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
};
inline JSPropertySpec CSpawnRegionProperties[] =
@@ -205,7 +205,7 @@ inline JSPropertySpec CSpawnRegionProperties[] =
{ "minTime", CSPAWNREGP_MINTIME, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "maxTime", CSPAWNREGP_MAXTIME, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "call", CSPAWNREGP_CALL, JSPROP_ENUMANDPERM, nullptr, nullptr },
- { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
+ { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
};
inline JSPropertySpec CGuildProperties[] =
@@ -221,7 +221,7 @@ inline JSPropertySpec CGuildProperties[] =
{ "charter", CGP_CHARTER, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "abbreviation", CGP_ABBREVIATION, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "webPage", CGP_WEBPAGE, JSPROP_ENUMANDPERM, nullptr, nullptr },
- { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
+ { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
};
inline JSPropertySpec CCharacterProps[] =
@@ -403,7 +403,7 @@ inline JSPropertySpec CCharacterProps[] =
{ "createdOn", CCP_CREATEDON, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "housesOwned", CCP_HOUSESOWNED, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "housesCoOwned", CCP_HOUSESCOOWNED, JSPROP_ENUMANDPERM, nullptr, nullptr },
- { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
+ { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
};
inline JSPropertySpec CItemProps[] =
@@ -554,7 +554,7 @@ inline JSPropertySpec CItemProps[] =
{ "tradeTimestamp", CIP_TRADETIMESTAMP, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "banX", CIP_BANX, JSPROP_ENUMANDPERM, nullptr, nullptr},
{ "banY", CIP_BANY, JSPROP_ENUMANDPERM, nullptr, nullptr },
- { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
+ { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
};
inline JSPropertySpec CSocketProps[] =
@@ -595,7 +595,7 @@ inline JSPropertySpec CSocketProps[] =
{ "target", CSOCKP_TARGET, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "tempObj", CSOCKP_TEMPOBJ, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "tempObj2", CSOCKP_TEMPOBJ2, JSPROP_ENUMANDPERM, nullptr, nullptr },
- { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
+ { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
};
inline JSPropertySpec CSkillsProps[] =
@@ -664,9 +664,9 @@ inline JSPropertySpec CSkillsProps[] =
inline JSPropertySpec CGumpDataProperties[] =
{
- { "buttons", CGumpData_Button, JSPROP_ENUMANDPERM, nullptr, nullptr },
- { "IDs", CGumpData_ID , JSPROP_ENUMANDPERM, nullptr, nullptr },
- { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
+ { "buttons", CGumpData_Button, JSPROP_ENUMANDPERM, nullptr, nullptr },
+ { "IDs", CGumpData_ID , JSPROP_ENUMANDPERM, nullptr, nullptr },
+ { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
};
inline JSPropertySpec CAccountProperties[] =
@@ -678,61 +678,61 @@ inline JSPropertySpec CAccountProperties[] =
{ "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 },
+ { "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 },
+ { "lastIP", CACCOUNT_LASTIP, JSPROP_ENUMANDPERM, nullptr, nullptr },
// Flags
- { "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, static_cast(0), static_cast(0), nullptr, nullptr }
+ { "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, static_cast(0), static_cast(0), nullptr, nullptr }
};
inline JSPropertySpec CConsoleProperties[] =
{
- { "mode", CCONSOLE_MODE, JSPROP_ENUMANDPERM, nullptr, nullptr },
- { "logEcho", CCONSOLE_LOGECHO, JSPROP_ENUMANDPERM, nullptr, nullptr },
- { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
+ { "mode", CCONSOLE_MODE, JSPROP_ENUMANDPERM, nullptr, nullptr },
+ { "logEcho", CCONSOLE_LOGECHO, JSPROP_ENUMANDPERM, nullptr, nullptr },
+ { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
};
inline JSPropertySpec CScriptSectionProperties[] =
{
- { "numTags", CSS_NUMTAGS, JSPROP_ENUMANDPERM, nullptr, nullptr },
- { "atEnd", CSS_ATEND, JSPROP_ENUMANDPERM, nullptr, nullptr },
- { "atEndTags", CSS_ATENDTAGS, JSPROP_ENUMANDPERM, nullptr, nullptr },
- { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
+ { "numTags", CSS_NUMTAGS, JSPROP_ENUMANDPERM, nullptr, nullptr },
+ { "atEnd", CSS_ATEND, JSPROP_ENUMANDPERM, nullptr, nullptr },
+ { "atEndTags", CSS_ATENDTAGS, JSPROP_ENUMANDPERM, nullptr, nullptr },
+ { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
};
inline JSPropertySpec CResourceProperties[] =
{
- { "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, static_cast(0), static_cast(0), nullptr, nullptr }
+ { "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, static_cast(0), static_cast(0), nullptr, nullptr }
};
inline JSPropertySpec CPartyProperties[] =
@@ -740,7 +740,7 @@ inline JSPropertySpec CPartyProperties[] =
{ "leader", CPARTYP_LEADER, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "memberCount", CPARTYP_MEMBERCOUNT, JSPROP_ENUMPERMRO, nullptr, nullptr },
{ "isNPC", CPARTYP_ISNPC, JSPROP_ENUMANDPERM, nullptr, nullptr },
- { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
+ { nullptr, static_cast(0), static_cast(0), nullptr, nullptr }
};
#endif
diff --git a/source/cBaseObject.h b/source/cBaseObject.h
index 48f2ce1a0..7063251b2 100644
--- a/source/cBaseObject.h
+++ b/source/cBaseObject.h
@@ -48,53 +48,53 @@ enum UpdateTypes
class CBaseObject
{
protected:
- 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;
+ 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;
- 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;
+ 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 );
@@ -103,7 +103,7 @@ class CBaseObject
UI16 resistances[WEATHNUM];
- SERIAL tempContainerSerial;
+ SERIAL tempContainerSerial;
bool nameRequestActive;
@@ -111,29 +111,29 @@ class CBaseObject
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;
@@ -141,7 +141,7 @@ class CBaseObject
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 );
@@ -149,10 +149,10 @@ class CBaseObject
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;
@@ -164,15 +164,15 @@ class CBaseObject
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;
@@ -181,45 +181,45 @@ class CBaseObject
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;
@@ -237,16 +237,16 @@ class CBaseObject
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 );
@@ -258,21 +258,21 @@ class CBaseObject
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;
diff --git a/source/cChar.h b/source/cChar.h
index 532f251ac..525b0ef5f 100644
--- a/source/cChar.h
+++ b/source/cChar.h
@@ -67,7 +67,7 @@ class CChar : public CBaseObject
SI08 wanderMode; // NPC Wander Mode
SI08 oldWanderMode; // Used for fleeing npcs
- SERIAL fTarg; // NPC Follow Target
+ 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
@@ -85,8 +85,8 @@ class CChar : public CBaseObject
UI08 questDestRegion;
UI08 questOrigRegion;
CBaseObject * petGuarding;
- cNPC_FLAG npcFlag;
- std::bitset<8> boolFlags;
+ cNPC_FLAG npcFlag;
+ std::bitset<8> boolFlags;
SI16 peaceing;
SI16 provoing;
@@ -126,23 +126,23 @@ class CChar : public CBaseObject
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;
+ 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;
+ 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;
+ 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;
std::vector trackingTargets;
@@ -181,34 +181,34 @@ class CChar : public CBaseObject
SI08 fontType; // Speech font to use
UI16 maxHP;
UI16 maxHP_oldstr;
- RACEID oldRace;
+ 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
+ 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 regionNum;
- UI16 town; // Matches Region number in regions.dfn
+ 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
+ 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<16> priv;
@@ -217,14 +217,14 @@ class CChar : public CBaseObject
TIMERVAL charTimers[tCHAR_COUNT];
TIMERVAL regen[3];
- TIMERVAL weathDamage[WEATHNUM]; // Light Damage timer
+ TIMERVAL weathDamage[WEATHNUM]; // Light Damage timer
- UI08 PoisonStrength;
+ UI08 PoisonStrength;
BodyType bodyType;
- UI32 lastMoveTime; // Timestamp for when character moved last
+ 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)
+ SKILLVAL baseskill[ALLSKILLS]; // Base skills without stat modifiers
+ SKILLVAL skill[INTELLECT+1]; // List of skills (with stat modifiers)
LAYERLIST itemLayers;
LAYERLIST_ITERATOR layerCtr;
diff --git a/source/cItem.h b/source/cItem.h
index ef5bfb74f..894427b57 100644
--- a/source/cItem.h
+++ b/source/cItem.h
@@ -16,55 +16,55 @@ class CItem : public CBaseObject
protected:
GenericList Contains;
- CBaseObject * contObj;
+ CBaseObject * contObj;
UI08 glowEffect;
- SERIAL glow; // identifies glowing objects
- COLOUR glowColour;
- SI08 madeWith; // Store the skills used to make this item
+ 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)
+ 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.
+ 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;
+ 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;
std::bitset<8> bools;
- std::bitset<8> priv; // Bit 0, decay off/on. Bit 1, newbie item off/on. Bit 2 Dispellable
+ std::bitset<8> priv; // Bit 0, decay off/on. Bit 1, newbie item off/on. Bit 2 Dispellable
std::string name2;
std::string desc;
- std::string eventName; // Name of custom event item belongs to
+ std::string eventName; // Name of custom event item belongs to
UI32 tempVars[CITV_COUNT];
- 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
+ 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
+ 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 dir; //direction an item can have
+ UI08 dir; // direction an item can have
UI32 value[3]; // Price a shopkeep buys and sells items for, with price on player vendor as optional third value
UI16 ammo[2]; // Ammo ID and Hue
- UI16 ammoFX[3]; // Ammo-effect ID, Hue and rendermode
+ UI16 ammoFX[3]; // Ammo-effect ID, Hue and rendermode
UI16 regionNum;
diff --git a/source/cMultiObj.h b/source/cMultiObj.h
index 0db47e427..40a9dd141 100644
--- a/source/cMultiObj.h
+++ b/source/cMultiObj.h
@@ -23,7 +23,7 @@ class CMultiObj : public CItem
UI16 maxVendors;
std::vector trashContainerList;
- UI16 maxTrashContainers;
+ UI16 maxTrashContainers;
std::vector vendorList;
diff --git a/source/cRaces.h b/source/cRaces.h
index df9f80b14..211f42afa 100644
--- a/source/cRaces.h
+++ b/source/cRaces.h
@@ -30,20 +30,20 @@ class CRace
//SKILLVAL iSkills[SKILLS];
std::string raceName;
- std::bitset<8> bools;
- RANGE visDistance;
+ 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
+ GENDER restrictGender;
+ SKILLVAL languageMin;
+ R32 poisonResistance; // % of poison to cancel
+ R32 magicResistance; // % of magic to cancel
COLOURLIST beardColours;
COLOURLIST hairColours;
COLOURLIST skinColours;
- COLOUR bloodColour;
+ COLOUR bloodColour;
RACEIDLIST racialEnemies;
diff --git a/source/cServerData.cpp b/source/cServerData.cpp
index 5c5802bc2..4f6f719c3 100644
--- a/source/cServerData.cpp
+++ b/source/cServerData.cpp
@@ -2808,9 +2808,9 @@ auto CServerData::HirelingCombatTraining() const -> bool
{
return boolVals.test( BIT_HIRELINGCOMBATTRAINING );
}
-auto CServerData::HirelingCombatTraining( [[maybe_unused]] bool newVal ) -> void
+auto CServerData::HirelingCombatTraining( bool newVal ) -> void
{
- boolVals.set( BIT_HIRELINGCOMBATTRAINING );
+ boolVals.set( BIT_HIRELINGCOMBATTRAINING, newVal );
}
//o------------------------------------------------------------------------------------------------o
diff --git a/source/cSocket.h b/source/cSocket.h
index 67b0ec982..f345de569 100644
--- a/source/cSocket.h
+++ b/source/cSocket.h
@@ -103,20 +103,20 @@ class CSocket
bool logging;
UI08 range;
bool cryptclient;
- size_t cliSocket; // client
+ size_t cliSocket; // client
SI16 walkSequence;
- size_t postAckCount;
+ size_t postAckCount;
PickupLocations pSpot;
- SERIAL pFrom;
+ SERIAL pFrom;
SI16 pX;
SI16 pY;
SI08 pZ;
- UnicodeTypes lang;
- ClientTypes cliType;
+ UnicodeTypes lang;
+ ClientTypes cliType;
ClientVersions cliVerShort;
- UI32 clientVersion;
+ UI32 clientVersion;
UI32 bytesReceived;
UI32 bytesSent;
@@ -137,7 +137,7 @@ class CSocket
UI08 clientip[4];
bool loginComplete;
- CItem * cursorItem; //pointer to item held on mouse cursor
+ CItem * cursorItem; //pointer to item held on mouse cursor
UI16 bytesRecvWarningCount;
UI16 bytesSentWarningCount;
diff --git a/source/funcdecl.h b/source/funcdecl.h
index d43623551..be05670e2 100644
--- a/source/funcdecl.h
+++ b/source/funcdecl.h
@@ -97,10 +97,10 @@ TIMERVAL GetPoisonTickTime( UI08 poisonStrength );
//o------------------------------------------------------------------------------------------------o
// Amount related
//o------------------------------------------------------------------------------------------------o
-UI32 GetItemAmount( CChar *s, UI16 realId, UI16 realColour = 0x0000, UI32 realMoreVal = 0x0, bool colorCheck = false );
+UI32 GetItemAmount( CChar *s, UI16 realId, UI16 realColour = 0x0000, UI32 realMoreVal = 0x0, bool colorCheck = false, bool moreCheck = false, std::string sectionId = "" );
UI32 GetTotalItemCount( CItem *objCont );
-UI32 DeleteItemAmount( CChar *s, UI32 amount, UI16 realId, UI16 realColour = 0x0000, UI32 realMoreVal = 0x0 );
-UI32 DeleteSubItemAmount( CItem *p, UI32 amount, UI16 realId, UI16 realColour = 0x0000, UI32 realMoreVal = 0x0 );
+UI32 DeleteItemAmount( CChar *s, UI32 amount, UI16 realId, UI16 realColour = 0x0000, UI32 realMoreVal = 0x0, bool colorCheck = false, bool moreCheck = false, std::string sectionId = "" );
+UI32 DeleteSubItemAmount( CItem *p, UI32 amount, UI16 realId, UI16 realColour = 0x0000, UI32 realMoreVal = 0x0, bool colorCheck = false, bool moreCheck = false, std::string sectionId = "" );
UI32 GetBankCount( CChar *p, UI16 itemId, UI16 realColour = 0x0000, UI32 realMoreVal = 0x0 );
UI32 DeleteBankItem( CChar *p, UI32 amt, UI16 itemId, UI16 realColour = 0x0000, UI32 realMoreVal = 0x0 );
diff --git a/source/magic.cpp b/source/magic.cpp
index 3545c444e..20176dde0 100644
--- a/source/magic.cpp
+++ b/source/magic.cpp
@@ -4968,6 +4968,7 @@ void CMagic::LoadScript( void )
auto ssecs = oldstrutil::sections( data, " " );
if( ssecs.size() > 1 )
{
+ // This is used to load flags from old-style spells.dfn, where flags are written as FLAGS=## ## instead of FLAGS=0x####
spells[i].Flags((( static_cast( std::stoul( oldstrutil::trim( oldstrutil::removeTrailing( ssecs[0], "//" )), nullptr, 16 ))) << 8 ) |
static_cast( std::stoul( oldstrutil::trim( oldstrutil::removeTrailing( ssecs[1], "//" )), nullptr, 16 )));
}
@@ -5055,6 +5056,7 @@ void CMagic::LoadScript( void )
auto ssecs = oldstrutil::sections( data, " " );
if( ssecs.size() > 1 )
{
+ // This is used to load sounds from old-style spells.dfn, where soundfx are written as SOUNDFX=## ## instead of SOUNDFX=0x####
spells[i].Effect(((static_cast( std::stoul( oldstrutil::trim( oldstrutil::removeTrailing( ssecs[0], "//" )), nullptr, 16 )) << 8 ) |
static_cast( std::stoul( oldstrutil::trim( oldstrutil::removeTrailing( ssecs[1], "//" )), nullptr, 16 ))));
}
diff --git a/source/quantityfuncs.cpp b/source/quantityfuncs.cpp
index 418cf3c2d..3dd1131ea 100644
--- a/source/quantityfuncs.cpp
+++ b/source/quantityfuncs.cpp
@@ -49,7 +49,7 @@ UI32 GetTotalItemCount( CItem *objCont )
//o------------------------------------------------------------------------------------------------o
//| Purpose - Get the total amount of an item in a pack
//o------------------------------------------------------------------------------------------------o
-auto GetSubItemAmount( CItem *p, UI16 realId, UI16 realColour, UI32 realMoreVal, bool colorCheck = false ) -> UI32
+auto GetSubItemAmount( CItem *p, UI16 realId, UI16 realColour, UI32 realMoreVal, bool colorCheck = false, bool moreCheck = false, std::string sectionId = "" ) -> UI32
{
UI32 total = 0;
auto pCont = p->GetContainsList();
@@ -59,9 +59,12 @@ auto GetSubItemAmount( CItem *p, UI16 realId, UI16 realColour, UI32 realMoreVal,
{
if( i->GetId() != realId && ( i->GetType() == IT_CONTAINER || i->GetType() == IT_LOCKEDCONTAINER ))
{
- total += GetSubItemAmount( i, realId, realColour, realMoreVal );
+ total += GetSubItemAmount( i, realId, realColour, realMoreVal, colorCheck, moreCheck, sectionId );
}
- else if( i->GetId() == realId && ( !colorCheck || ( colorCheck && i->GetColour() == realColour )))
+ else if( i->GetId() == realId
+ && ( !colorCheck || ( colorCheck && i->GetColour() == realColour ))
+ && ( !moreCheck || ( moreCheck && i->GetTempVar( CITV_MORE ) == realMoreVal ))
+ && ( sectionId == "" || sectionId == i->GetSectionId() ))
{
if( i->GetUsesLeft() > 0 )
{
@@ -82,13 +85,13 @@ auto GetSubItemAmount( CItem *p, UI16 realId, UI16 realColour, UI32 realMoreVal,
//o------------------------------------------------------------------------------------------------o
//| Purpose - Get the total amount of an item on a character
//o------------------------------------------------------------------------------------------------o
-UI32 GetItemAmount( CChar *s, UI16 realId, UI16 realColour, UI32 realMoreVal, bool colorCheck )
+UI32 GetItemAmount( CChar *s, UI16 realId, UI16 realColour, UI32 realMoreVal, bool colorCheck, bool moreCheck, std::string sectionId )
{
CItem *p = s->GetPackItem();
if( !ValidateObject( p ))
return 0;
- return GetSubItemAmount( p, realId, realColour, realMoreVal, colorCheck );
+ return GetSubItemAmount( p, realId, realColour, realMoreVal, colorCheck, moreCheck, sectionId );
}
//o------------------------------------------------------------------------------------------------o
@@ -96,7 +99,7 @@ UI32 GetItemAmount( CChar *s, UI16 realId, UI16 realColour, UI32 realMoreVal, bo
//o------------------------------------------------------------------------------------------------o
//| Purpose - Remove a certain amount of an item of specified color in a pack
//o------------------------------------------------------------------------------------------------o
-auto DeleteSubItemAmount( CItem *p, UI32 amount, UI16 realId, UI16 realColour, UI32 realMoreVal ) -> UI32
+auto DeleteSubItemAmount( CItem *p, UI32 amount, UI16 realId, UI16 realColour, UI32 realMoreVal, bool colorCheck, bool moreCheck, std::string sectionId ) -> UI32
{
if( !ValidateObject( p ))
return 0;
@@ -113,9 +116,12 @@ auto DeleteSubItemAmount( CItem *p, UI32 amount, UI16 realId, UI16 realColour, U
if( i->GetId() != realId && ( i->GetType() == IT_CONTAINER || i->GetType() == IT_LOCKEDCONTAINER ))
{
// Is item an pack or container?
- amtDeleted += DeleteSubItemAmount( i, total, realId, realColour );
+ amtDeleted += DeleteSubItemAmount( i, total, realId, realColour, realMoreVal, colorCheck, moreCheck, sectionId );
}
- else if( i->GetId() == realId && i->GetColour() == realColour && i->GetTempVar( CITV_MORE ) == realMoreVal )
+ else if( i->GetId() == realId
+ && ( !colorCheck || ( colorCheck && i->GetColour() == realColour ))
+ && ( !moreCheck || ( moreCheck && i->GetTempVar( CITV_MORE ) == realMoreVal ))
+ && ( sectionId == "" || sectionId == i->GetSectionId() ))
{
UI16 usesLeft = i->GetUsesLeft();
if( usesLeft > 0 )
@@ -171,7 +177,7 @@ auto DeleteSubItemAmount( CItem *p, UI32 amount, UI16 realId, UI16 realColour, U
//|
//| Changes - 09/25/2002 - Weight Fixes
//o------------------------------------------------------------------------------------------------o
-UI32 DeleteItemAmount( CChar *s, UI32 amount, UI16 realId, UI16 realColour, UI32 realMoreVal )
+UI32 DeleteItemAmount( CChar *s, UI32 amount, UI16 realId, UI16 realColour, UI32 realMoreVal, bool colorCheck, bool moreCheck, std::string sectionId )
{
if( !ValidateObject( s ))
return 0;
@@ -180,7 +186,7 @@ UI32 DeleteItemAmount( CChar *s, UI32 amount, UI16 realId, UI16 realColour, UI32
if( !ValidateObject( p ))
return 0;
- return DeleteSubItemAmount( p, amount, realId, realColour, realMoreVal );
+ return DeleteSubItemAmount( p, amount, realId, realColour, realMoreVal, colorCheck, moreCheck, sectionId );
}
//o------------------------------------------------------------------------------------------------o
diff --git a/spidermonkey/js32.vcxproj b/spidermonkey/js32.vcxproj
index 9ad0cf4f5..46ab2cdd5 100644
--- a/spidermonkey/js32.vcxproj
+++ b/spidermonkey/js32.vcxproj
@@ -119,6 +119,11 @@
false
+
+
+ _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG;_WINDOWS;_X86_=1;DEBUG;EXPORT_JS_API;JSFILE;WIN32;XP_WIN;%(PreprocessorDefinitions)
+
+
From 780341dfd0b18e55c094c1690b8640c2c0e6c30c Mon Sep 17 00:00:00 2001
From: Lloyd Dilley
Date: Sat, 3 Dec 2022 17:47:50 -0500
Subject: [PATCH 02/24] Fix size_t -> int issues with casts
---
source/UOXJSPropertyFuncs.cpp | 12 ++++++------
source/items.cpp | 4 ++--
source/mapstuff.cpp | 4 ++--
3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/source/UOXJSPropertyFuncs.cpp b/source/UOXJSPropertyFuncs.cpp
index 73da5e4af..830574d5d 100644
--- a/source/UOXJSPropertyFuncs.cpp
+++ b/source/UOXJSPropertyFuncs.cpp
@@ -359,14 +359,14 @@ JSBool CCreateEntryProps_getProperty( JSContext *cx, JSObject *obj, jsval id, js
for( size_t j = 0; j < resEntry.idList.size(); j++ )
{
jsval targId = INT_TO_JSVAL( resEntry.idList[j] );
- JS_SetElement( cx, idList, j, &targId );
+ JS_SetElement( cx, idList, static_cast( j ), &targId );
}
jsval idListVal = OBJECT_TO_JSVAL( idList );
JS_SetElement( cx, resource, 2, &idListVal );
// Now stuff the resource object into the parent object
jsval resourceVal = OBJECT_TO_JSVAL( resource );
- JS_SetElement( cx, resources, i, &resourceVal );
+ JS_SetElement( cx, resources, static_cast( i ), &resourceVal );
}
*vp = OBJECT_TO_JSVAL( resources );
@@ -397,7 +397,7 @@ JSBool CCreateEntryProps_getProperty( JSContext *cx, JSObject *obj, jsval id, js
// Now stuff the skill object into the parent object
jsval skillVal = OBJECT_TO_JSVAL( skill );
- JS_SetElement( cx, skills, i, &skillVal );
+ JS_SetElement( cx, skills, static_cast( i ), &skillVal );
}
*vp = OBJECT_TO_JSVAL( skills );
@@ -511,7 +511,7 @@ JSBool CItemProps_getProperty( JSContext *cx, JSObject *obj, jsval id, jsval *vp
for( size_t i = 0; i < scriptTriggers.size(); i++ )
{
scriptId = INT_TO_JSVAL( scriptTriggers[i] );
- JS_SetElement( cx, scriptTriggersJS, i, &scriptId );
+ JS_SetElement( cx, scriptTriggersJS, static_cast( i ), &scriptId );
}
*vp = OBJECT_TO_JSVAL( scriptTriggersJS );
@@ -1522,7 +1522,7 @@ JSBool CCharacterProps_getProperty( JSContext *cx, JSObject *obj, jsval id, jsva
for( size_t i = 0; i < scriptTriggers.size(); i++ )
{
scriptId = INT_TO_JSVAL( scriptTriggers[i] );
- JS_SetElement( cx, scriptTriggersJS, i, &scriptId );
+ JS_SetElement( cx, scriptTriggersJS, static_cast( i ), &scriptId );
}
*vp = OBJECT_TO_JSVAL( scriptTriggersJS );
@@ -2485,7 +2485,7 @@ JSBool CRegionProps_getProperty( JSContext *cx, JSObject *obj, jsval id, jsval *
for( size_t i = 0; i < scriptTriggers.size(); i++ )
{
scriptId = INT_TO_JSVAL( scriptTriggers[i] );
- JS_SetElement( cx, scriptTriggersJS, i, &scriptId );
+ JS_SetElement( cx, scriptTriggersJS, static_cast( i ), &scriptId );
}
*vp = OBJECT_TO_JSVAL( scriptTriggersJS );
diff --git a/source/items.cpp b/source/items.cpp
index 27f3a25e5..27eff4b28 100644
--- a/source/items.cpp
+++ b/source/items.cpp
@@ -958,11 +958,11 @@ auto cItem::CreateRandomItem( CItem *mCont, const std::string& sItemList, const
// If we find another entry with same weight as the first one found, or if none have been found yet, add to list
if( weightOfChosenItem == 0 || weightOfChosenItem == itemWeight )
{
- itemEntryToSpawn = j;
+ itemEntryToSpawn = static_cast( j );
weightOfChosenItem = itemWeight;
// Add the entry index to a temporary vector of all entries with same weight, then continue looking for more!
- matchingEntries.push_back( j );
+ matchingEntries.push_back( static_cast( j ) );
continue;
}
}
diff --git a/source/mapstuff.cpp b/source/mapstuff.cpp
index ee2cdfe6f..b47ea03ea 100644
--- a/source/mapstuff.cpp
+++ b/source/mapstuff.cpp
@@ -111,7 +111,7 @@ auto CMulHandler::LoadMapsDFN( const std::string &uodir ) -> std::map( i ), entry );
}
}
return results;
@@ -1970,7 +1970,7 @@ auto UltimaMap::ProcessEntry( [[maybe_unused]] std::size_t entry, std::size_t in
auto ptr = data.data() + ( i * 196 );
if( block < _terrain.size() )
{
- LoadTerrainBlock( block, ptr );
+ LoadTerrainBlock( static_cast( block ), ptr );
}
++block;
}
From 57a626559fa8b6c75f28686756a96112458326a4 Mon Sep 17 00:00:00 2001
From: Lloyd Dilley
Date: Sun, 4 Dec 2022 02:03:43 -0500
Subject: [PATCH 03/24] Change approach after some testing with Xuri
---
source/UOXJSPropertyFuncs.cpp | 24 ++++++++++++------------
source/items.cpp | 6 +++---
source/mapstuff.cpp | 8 ++++----
3 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/source/UOXJSPropertyFuncs.cpp b/source/UOXJSPropertyFuncs.cpp
index 830574d5d..c8c19f34f 100644
--- a/source/UOXJSPropertyFuncs.cpp
+++ b/source/UOXJSPropertyFuncs.cpp
@@ -343,7 +343,7 @@ JSBool CCreateEntryProps_getProperty( JSContext *cx, JSObject *obj, jsval id, js
jsval amountNeeded = 0;
jsval targColour = 0;
JSObject *resources = JS_NewArrayObject( cx, 0, nullptr );
- for( size_t i = 0; i < resourcesNeeded.size(); i++ )
+ for( auto i = 0; i < static_cast( resourcesNeeded.size() ); i++ )
{
resEntry = resourcesNeeded[i];
amountNeeded = INT_TO_JSVAL( resEntry.amountNeeded );
@@ -356,17 +356,17 @@ JSBool CCreateEntryProps_getProperty( JSContext *cx, JSObject *obj, jsval id, js
// Make a child object with all the supported resource IDs
JSObject *idList = JS_NewArrayObject( cx, 0, nullptr );
- for( size_t j = 0; j < resEntry.idList.size(); j++ )
+ for( auto j = 0; j < static_cast( resEntry.idList.size() ); j++ )
{
jsval targId = INT_TO_JSVAL( resEntry.idList[j] );
- JS_SetElement( cx, idList, static_cast( j ), &targId );
+ JS_SetElement( cx, idList, j, &targId );
}
jsval idListVal = OBJECT_TO_JSVAL( idList );
JS_SetElement( cx, resource, 2, &idListVal );
// Now stuff the resource object into the parent object
jsval resourceVal = OBJECT_TO_JSVAL( resource );
- JS_SetElement( cx, resources, static_cast( i ), &resourceVal );
+ JS_SetElement( cx, resources, i, &resourceVal );
}
*vp = OBJECT_TO_JSVAL( resources );
@@ -382,7 +382,7 @@ JSBool CCreateEntryProps_getProperty( JSContext *cx, JSObject *obj, jsval id, js
jsval minSkill = 0;
jsval maxSkill = 0;
JSObject *skills = JS_NewArrayObject( cx, 0, nullptr );
- for( size_t i = 0; i < skillReqs.size(); i++ )
+ for( auto i = 0; i < static_cast( skillReqs.size() ); i++ )
{
resEntry = skillReqs[i];
skillNumber = INT_TO_JSVAL( resEntry.skillNumber );
@@ -397,7 +397,7 @@ JSBool CCreateEntryProps_getProperty( JSContext *cx, JSObject *obj, jsval id, js
// Now stuff the skill object into the parent object
jsval skillVal = OBJECT_TO_JSVAL( skill );
- JS_SetElement( cx, skills, static_cast( i ), &skillVal );
+ JS_SetElement( cx, skills, i, &skillVal );
}
*vp = OBJECT_TO_JSVAL( skills );
@@ -508,10 +508,10 @@ JSBool CItemProps_getProperty( JSContext *cx, JSObject *obj, jsval id, jsval *vp
JSObject *scriptTriggersJS = JS_NewArrayObject( cx, 0, nullptr );
std::vector scriptTriggers = gPriv->GetScriptTriggers();
- for( size_t i = 0; i < scriptTriggers.size(); i++ )
+ for( auto i = 0; i < static_cast( scriptTriggers.size() ); i++ )
{
scriptId = INT_TO_JSVAL( scriptTriggers[i] );
- JS_SetElement( cx, scriptTriggersJS, static_cast( i ), &scriptId );
+ JS_SetElement( cx, scriptTriggersJS, i, &scriptId );
}
*vp = OBJECT_TO_JSVAL( scriptTriggersJS );
@@ -1519,10 +1519,10 @@ JSBool CCharacterProps_getProperty( JSContext *cx, JSObject *obj, jsval id, jsva
JSObject *scriptTriggersJS = JS_NewArrayObject( cx, 0, nullptr );
std::vector scriptTriggers = gPriv->GetScriptTriggers();
- for( size_t i = 0; i < scriptTriggers.size(); i++ )
+ for( auto i = 0; i < static_cast( scriptTriggers.size() ); i++ )
{
scriptId = INT_TO_JSVAL( scriptTriggers[i] );
- JS_SetElement( cx, scriptTriggersJS, static_cast( i ), &scriptId );
+ JS_SetElement( cx, scriptTriggersJS, i, &scriptId );
}
*vp = OBJECT_TO_JSVAL( scriptTriggersJS );
@@ -2482,10 +2482,10 @@ JSBool CRegionProps_getProperty( JSContext *cx, JSObject *obj, jsval id, jsval *
JSObject *scriptTriggersJS = JS_NewArrayObject( cx, 0, nullptr );
std::vector scriptTriggers = gPriv->GetScriptTriggers();
- for( size_t i = 0; i < scriptTriggers.size(); i++ )
+ for( auto i = 0; i < static_cast( scriptTriggers.size() ); i++ )
{
scriptId = INT_TO_JSVAL( scriptTriggers[i] );
- JS_SetElement( cx, scriptTriggersJS, static_cast( i ), &scriptId );
+ JS_SetElement( cx, scriptTriggersJS, i, &scriptId );
}
*vp = OBJECT_TO_JSVAL( scriptTriggersJS );
diff --git a/source/items.cpp b/source/items.cpp
index 27eff4b28..57ace36bc 100644
--- a/source/items.cpp
+++ b/source/items.cpp
@@ -946,7 +946,7 @@ auto cItem::CreateRandomItem( CItem *mCont, const std::string& sItemList, const
// Loop through the items in the itemlist/lootlist
int weightOfChosenItem = 0;
- for( size_t j = 0; j < itemListSize; j++ )
+ for( auto j = 0; j < static_cast( itemListSize ); j++ )
{
auto csecs = oldstrutil::sections( oldstrutil::trim( oldstrutil::removeTrailing( ItemList->MoveTo( j ), "//" )), "|" );
if( csecs.size() == 2 )
@@ -958,11 +958,11 @@ auto cItem::CreateRandomItem( CItem *mCont, const std::string& sItemList, const
// If we find another entry with same weight as the first one found, or if none have been found yet, add to list
if( weightOfChosenItem == 0 || weightOfChosenItem == itemWeight )
{
- itemEntryToSpawn = static_cast( j );
+ itemEntryToSpawn = j;
weightOfChosenItem = itemWeight;
// Add the entry index to a temporary vector of all entries with same weight, then continue looking for more!
- matchingEntries.push_back( static_cast( j ) );
+ matchingEntries.push_back( j );
continue;
}
}
diff --git a/source/mapstuff.cpp b/source/mapstuff.cpp
index b47ea03ea..ce27cb30e 100644
--- a/source/mapstuff.cpp
+++ b/source/mapstuff.cpp
@@ -39,7 +39,7 @@ auto CMulHandler::LoadMapsDFN( const std::string &uodir ) -> std::mapCountOfEntries( maps_def );
std::map results;
auto uopath = std::filesystem::path( uodir );
- for( size_t i = 0; i < entrycount; i++ )
+ for( auto i = 0; i < static_cast( entrycount ); i++ )
{
auto toFind = FileLookup->FindEntry( "MAP "s + std::to_string( i ), maps_def );
if( toFind == nullptr )
@@ -111,7 +111,7 @@ auto CMulHandler::LoadMapsDFN( const std::string &uodir ) -> std::map( i ), entry );
+ results.insert_or_assign( i, entry );
}
}
return results;
@@ -1965,12 +1965,12 @@ auto UltimaMap::ProcessEntry( [[maybe_unused]] std::size_t entry, std::size_t in
{
auto count = data.size() / 196;
size_t block = ( static_cast( index ) * 0xC4000 ) / 196;
- for( size_t i = 0; i < count; ++i )
+ for( auto i = 0; i < static_cast( count ); ++i )
{
auto ptr = data.data() + ( i * 196 );
if( block < _terrain.size() )
{
- LoadTerrainBlock( static_cast( block ), ptr );
+ LoadTerrainBlock( block, ptr );
}
++block;
}
From a05a3126b2b00dc2e067371da435d271f6da431a Mon Sep 17 00:00:00 2001
From: Dragon Slayer <85514184+DragonSlayer62@users.noreply.github.com>
Date: Tue, 6 Dec 2022 20:39:12 -0600
Subject: [PATCH 04/24] Replaced spawn
Replaced orc Spawns with Savages in T2A orc fort. this would bring the spawns up to date with LBR.
---
.../npc/npclists/npclists_t2a_lands.dfn | 6 +++++
.../felucca/spawn_felucca_world_lostlands.dfn | 26 ++++++++++++++-----
2 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/data/dfndata/npc/npclists/npclists_t2a_lands.dfn b/data/dfndata/npc/npclists/npclists_t2a_lands.dfn
index 1c6f44e3c..495ed663f 100644
--- a/data/dfndata/npc/npclists/npclists_t2a_lands.dfn
+++ b/data/dfndata/npc/npclists/npclists_t2a_lands.dfn
@@ -45,6 +45,12 @@ orcmage
orclord
}
+[NPCLIST Location_Orc_Fort_Savages]
+{
+savageshaman
+savagewarrior
+}
+
[NPCLIST Location_Terathan_Keep]
{
allterathans
diff --git a/data/dfndata/spawn/felucca/spawn_felucca_world_lostlands.dfn b/data/dfndata/spawn/felucca/spawn_felucca_world_lostlands.dfn
index addd28ebb..82b3d6ad0 100644
--- a/data/dfndata/spawn/felucca/spawn_felucca_world_lostlands.dfn
+++ b/data/dfndata/spawn/felucca/spawn_felucca_world_lostlands.dfn
@@ -64,12 +64,13 @@ CALL=5
[REGIONSPAWN 6204]
{
NAME=Location_Orc_Fort
-NPCLIST=Location_Orc_Fort
-MAXNPCS=25
-X1=5201
-Y1=3609
+//NPCLIST=Location_Orc_Fort
+NPCLIST=Location_Orc_Fort_Savages
+MAXNPCS=15
+X1=5200
+Y1=3610
X2=5229
-Y2=3627
+Y2=3628
WORLD=0
MINTIME=18
MAXTIME=20
@@ -256,4 +257,17 @@ MAXTIME=40
CALL=2
}
-EOF
\ No newline at end of file
+[REGIONSPAWN 6217]
+{
+NAME=Location_Around_Orc_Fort
+NPC=savagerider
+MAXNPCS=15
+X1=5162
+Y1=3585
+X2=5273
+Y2=3637
+WORLD=0
+MINTIME=18
+MAXTIME=20
+CALL=5
+}
\ No newline at end of file
From 472a6b3e845634082c5d6a71e3d2aaa86ae93be1 Mon Sep 17 00:00:00 2001
From: Geir Ove Alnes
Date: Wed, 7 Dec 2022 21:10:59 +0800
Subject: [PATCH 05/24] Update source/UOXJSMethods.cpp
Co-authored-by: Daniel Stratton
---
source/UOXJSMethods.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/UOXJSMethods.cpp b/source/UOXJSMethods.cpp
index cd63b7224..57d3f8d3b 100644
--- a/source/UOXJSMethods.cpp
+++ b/source/UOXJSMethods.cpp
@@ -3674,7 +3674,7 @@ JSBool CBase_UseResource( JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
sectionId = JS_GetStringBytes( JS_ValueToString( cx, argv[4] ));
}
- bool colorCheck = ( itemColour != -1 ? true : false );
+ bool colorCheck = ( itemColour != -1 );
bool moreCheck = ( moreVal != -1 ? true : false );
UI32 retVal = 0;
From eeeae604cd49197e5ae8c3225552327768aa100d Mon Sep 17 00:00:00 2001
From: Dragon Slayer <85514184+DragonSlayer62@users.noreply.github.com>
Date: Wed, 7 Dec 2022 19:41:49 -0600
Subject: [PATCH 06/24] update to remove comment marks
---
data/dfndata/spawn/felucca/spawn_felucca_world_lostlands.dfn | 1 -
1 file changed, 1 deletion(-)
diff --git a/data/dfndata/spawn/felucca/spawn_felucca_world_lostlands.dfn b/data/dfndata/spawn/felucca/spawn_felucca_world_lostlands.dfn
index 82b3d6ad0..a41f02491 100644
--- a/data/dfndata/spawn/felucca/spawn_felucca_world_lostlands.dfn
+++ b/data/dfndata/spawn/felucca/spawn_felucca_world_lostlands.dfn
@@ -64,7 +64,6 @@ CALL=5
[REGIONSPAWN 6204]
{
NAME=Location_Orc_Fort
-//NPCLIST=Location_Orc_Fort
NPCLIST=Location_Orc_Fort_Savages
MAXNPCS=15
X1=5200
From f625e6b6ee926c992244058c60153e195102498c Mon Sep 17 00:00:00 2001
From: Xoduz
Date: Sat, 10 Dec 2022 01:18:55 +0800
Subject: [PATCH 07/24] Restructuring of
Folder and file restructuring for Visual Studio, XCode and CMake project files
Moving uox3.ico and uox3.rc out of source folder and into a separate assets folder
---
{source => assets}/uox3.ico | Bin
{source => assets}/uox3.rc | 0
{source => make/VS2017}/UOX3_Official.sln | 0
{source => make/VS2017}/UOX3_Official.vcxproj | 0
.../VS2017}/UOX3_Official.vcxproj.filters | 0
{vs2022 => make/VS2022}/readme-vs2022.txt | 0
{vs2022 => make/VS2022}/uox3.sln | 0
{vs2022 => make/VS2022}/uox3.vcxproj | 0
{vs2022 => make/VS2022}/uox3.vcxproj.filters | 0
.../XCode/uox3.xcodeproj}/project.pbxproj | 0
.../xcshareddata/xcschemes/uox3.xcscheme | 0
{source => make/cmake}/CMakeLists.txt | 204 +++++++++---------
.../{ => make/VS2017}/SpiderMonkey.sln | 0
spidermonkey/{ => make/VS2017}/js32.vcxproj | 0
.../{ => make/VS2017}/js32.vcxproj.filters | 0
.../{ => make/VS2017}/jskwgen.vcxproj | 0
.../{ => make/VS2017}/jskwgen.vcxproj.filters | 0
.../{vs2022 => make/VS2022}/jsengine.sln | 0
.../{vs2022 => make/VS2022}/jsengine.vcxproj | 0
.../VS2022}/jsengine.vcxproj.filters | 0
.../VS2017}/zlib-static.vcxproj | 0
.../VS2017}/zlib-static.vcxproj.filters | 0
.../VS2017}/zlib-static.vcxproj.user | 0
zlib/{ => make/VS2017}/zlib.sln | 0
zlib/{ => make/VS2022}/vs2022/zlib.sln | 0
zlib/{ => make/VS2022}/vs2022/zlib.vcxproj | 0
.../VS2022}/vs2022/zlib.vcxproj.filters | 0
zlib/{ => make/cmake}/CMakeLists.txt | 0
28 files changed, 102 insertions(+), 102 deletions(-)
rename {source => assets}/uox3.ico (100%)
rename {source => assets}/uox3.rc (100%)
rename {source => make/VS2017}/UOX3_Official.sln (100%)
rename {source => make/VS2017}/UOX3_Official.vcxproj (100%)
rename {source => make/VS2017}/UOX3_Official.vcxproj.filters (100%)
rename {vs2022 => make/VS2022}/readme-vs2022.txt (100%)
rename {vs2022 => make/VS2022}/uox3.sln (100%)
rename {vs2022 => make/VS2022}/uox3.vcxproj (100%)
rename {vs2022 => make/VS2022}/uox3.vcxproj.filters (100%)
rename {uox3.xcodeproj => make/XCode/uox3.xcodeproj}/project.pbxproj (100%)
rename {uox3.xcodeproj => make/XCode/uox3.xcodeproj}/xcshareddata/xcschemes/uox3.xcscheme (100%)
rename {source => make/cmake}/CMakeLists.txt (94%)
rename spidermonkey/{ => make/VS2017}/SpiderMonkey.sln (100%)
rename spidermonkey/{ => make/VS2017}/js32.vcxproj (100%)
rename spidermonkey/{ => make/VS2017}/js32.vcxproj.filters (100%)
rename spidermonkey/{ => make/VS2017}/jskwgen.vcxproj (100%)
rename spidermonkey/{ => make/VS2017}/jskwgen.vcxproj.filters (100%)
rename spidermonkey/{vs2022 => make/VS2022}/jsengine.sln (100%)
rename spidermonkey/{vs2022 => make/VS2022}/jsengine.vcxproj (100%)
rename spidermonkey/{vs2022 => make/VS2022}/jsengine.vcxproj.filters (100%)
rename zlib/{zlib-static => make/VS2017}/zlib-static.vcxproj (100%)
rename zlib/{zlib-static => make/VS2017}/zlib-static.vcxproj.filters (100%)
rename zlib/{zlib-static => make/VS2017}/zlib-static.vcxproj.user (100%)
rename zlib/{ => make/VS2017}/zlib.sln (100%)
rename zlib/{ => make/VS2022}/vs2022/zlib.sln (100%)
rename zlib/{ => make/VS2022}/vs2022/zlib.vcxproj (100%)
rename zlib/{ => make/VS2022}/vs2022/zlib.vcxproj.filters (100%)
rename zlib/{ => make/cmake}/CMakeLists.txt (100%)
diff --git a/source/uox3.ico b/assets/uox3.ico
similarity index 100%
rename from source/uox3.ico
rename to assets/uox3.ico
diff --git a/source/uox3.rc b/assets/uox3.rc
similarity index 100%
rename from source/uox3.rc
rename to assets/uox3.rc
diff --git a/source/UOX3_Official.sln b/make/VS2017/UOX3_Official.sln
similarity index 100%
rename from source/UOX3_Official.sln
rename to make/VS2017/UOX3_Official.sln
diff --git a/source/UOX3_Official.vcxproj b/make/VS2017/UOX3_Official.vcxproj
similarity index 100%
rename from source/UOX3_Official.vcxproj
rename to make/VS2017/UOX3_Official.vcxproj
diff --git a/source/UOX3_Official.vcxproj.filters b/make/VS2017/UOX3_Official.vcxproj.filters
similarity index 100%
rename from source/UOX3_Official.vcxproj.filters
rename to make/VS2017/UOX3_Official.vcxproj.filters
diff --git a/vs2022/readme-vs2022.txt b/make/VS2022/readme-vs2022.txt
similarity index 100%
rename from vs2022/readme-vs2022.txt
rename to make/VS2022/readme-vs2022.txt
diff --git a/vs2022/uox3.sln b/make/VS2022/uox3.sln
similarity index 100%
rename from vs2022/uox3.sln
rename to make/VS2022/uox3.sln
diff --git a/vs2022/uox3.vcxproj b/make/VS2022/uox3.vcxproj
similarity index 100%
rename from vs2022/uox3.vcxproj
rename to make/VS2022/uox3.vcxproj
diff --git a/vs2022/uox3.vcxproj.filters b/make/VS2022/uox3.vcxproj.filters
similarity index 100%
rename from vs2022/uox3.vcxproj.filters
rename to make/VS2022/uox3.vcxproj.filters
diff --git a/uox3.xcodeproj/project.pbxproj b/make/XCode/uox3.xcodeproj/project.pbxproj
similarity index 100%
rename from uox3.xcodeproj/project.pbxproj
rename to make/XCode/uox3.xcodeproj/project.pbxproj
diff --git a/uox3.xcodeproj/xcshareddata/xcschemes/uox3.xcscheme b/make/XCode/uox3.xcodeproj/xcshareddata/xcschemes/uox3.xcscheme
similarity index 100%
rename from uox3.xcodeproj/xcshareddata/xcschemes/uox3.xcscheme
rename to make/XCode/uox3.xcodeproj/xcshareddata/xcschemes/uox3.xcscheme
diff --git a/source/CMakeLists.txt b/make/cmake/CMakeLists.txt
similarity index 94%
rename from source/CMakeLists.txt
rename to make/cmake/CMakeLists.txt
index 2451dfb66..38ba37fb7 100644
--- a/source/CMakeLists.txt
+++ b/make/cmake/CMakeLists.txt
@@ -1,102 +1,102 @@
-add_library(uox
- STATIC
- CGump.cpp
- boats.cpp
- cSocket.cpp
- items.cpp
- speech.cpp
- CJSEngine.cpp
- books.cpp
- cSpawnRegion.cpp
- jail.cpp
- ssection.cpp
- CJSMapping.cpp
- cAccountClass.cpp
- cThreadQueue.cpp
- lineofsight.cpp
- targeting.cpp
- CPacketReceive.cpp
- cBaseobject.cpp
- cVersionClass.cpp
- magic.cpp
- CPacketSend.cpp
- cChar.cpp
- cWeather.cpp
- mapstuff.cpp
- townregion.cpp
- CResponse.cpp
- cConsole.cpp
- calcfuncs.cpp
- movement.cpp
- trade.cpp
- Dictionary.cpp
- cDice.cpp
- cmdtable.cpp
- msgboard.cpp
- uox3.cpp
- JSEncapsulate.cpp
- cGuild.cpp
- combat.cpp
- network.cpp
- cHTMLSystem.cpp
- commands.cpp
- npcs.cpp
- vendor.cpp
- ObjectFactory.cpp
- cItem.cpp
- cPlayerAction.cpp
- pcmanage.cpp
- weight.cpp
- PartySystem.cpp
- cMultiObj.cpp
- dist.cpp
- quantityfuncs.cpp
- wholist.cpp
- SEFunctions.cpp
- effect.cpp
- queue.cpp
- worldmain.cpp
- UOXJSMethods.cpp
- cRaces.cpp
- fileio.cpp
- regions.cpp
- UOXJSPropertyFuncs.cpp
- cScript.cpp
- findfuncs.cpp
- scriptc.cpp
- ai.cpp
- cServerData.cpp
- gumps.cpp
- skills.cpp
- archive.cpp
- cServerDefinitions.cpp
- house.cpp
- sound.cpp
- StringUtility.cpp
- UOPData.cpp
- MultiMul.cpp
- IP4Address.cpp
- TimeUtility.cpp
- EventTimer.cpp
- osunique.cpp
-)
-
-target_include_directories(uox
- PUBLIC
- ${PROJECT_SOURCE_DIR}/spidermonkey
- ${PROJECT_SOURCE_DIR}/zlib
-)
-
-target_compile_definitions(uox
- PRIVATE
- _CRT_NO_VA_START_VALIDATION
- $<$:_ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH>
- $<$:EXPORT_JS_API>
-)
-
-target_link_libraries(uox
- PUBLIC
- js32
- zlibstatic
- $<$:ws2_32>
-)
+add_library(uox
+ STATIC
+ CGump.cpp
+ boats.cpp
+ cSocket.cpp
+ items.cpp
+ speech.cpp
+ CJSEngine.cpp
+ books.cpp
+ cSpawnRegion.cpp
+ jail.cpp
+ ssection.cpp
+ CJSMapping.cpp
+ cAccountClass.cpp
+ cThreadQueue.cpp
+ lineofsight.cpp
+ targeting.cpp
+ CPacketReceive.cpp
+ cBaseobject.cpp
+ cVersionClass.cpp
+ magic.cpp
+ CPacketSend.cpp
+ cChar.cpp
+ cWeather.cpp
+ mapstuff.cpp
+ townregion.cpp
+ CResponse.cpp
+ cConsole.cpp
+ calcfuncs.cpp
+ movement.cpp
+ trade.cpp
+ Dictionary.cpp
+ cDice.cpp
+ cmdtable.cpp
+ msgboard.cpp
+ uox3.cpp
+ JSEncapsulate.cpp
+ cGuild.cpp
+ combat.cpp
+ network.cpp
+ cHTMLSystem.cpp
+ commands.cpp
+ npcs.cpp
+ vendor.cpp
+ ObjectFactory.cpp
+ cItem.cpp
+ cPlayerAction.cpp
+ pcmanage.cpp
+ weight.cpp
+ PartySystem.cpp
+ cMultiObj.cpp
+ dist.cpp
+ quantityfuncs.cpp
+ wholist.cpp
+ SEFunctions.cpp
+ effect.cpp
+ queue.cpp
+ worldmain.cpp
+ UOXJSMethods.cpp
+ cRaces.cpp
+ fileio.cpp
+ regions.cpp
+ UOXJSPropertyFuncs.cpp
+ cScript.cpp
+ findfuncs.cpp
+ scriptc.cpp
+ ai.cpp
+ cServerData.cpp
+ gumps.cpp
+ skills.cpp
+ archive.cpp
+ cServerDefinitions.cpp
+ house.cpp
+ sound.cpp
+ StringUtility.cpp
+ UOPData.cpp
+ MultiMul.cpp
+ IP4Address.cpp
+ TimeUtility.cpp
+ EventTimer.cpp
+ osunique.cpp
+)
+
+target_include_directories(uox
+ PUBLIC
+ ${PROJECT_SOURCE_DIR}/spidermonkey
+ ${PROJECT_SOURCE_DIR}/zlib
+)
+
+target_compile_definitions(uox
+ PRIVATE
+ _CRT_NO_VA_START_VALIDATION
+ $<$:_ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH>
+ $<$:EXPORT_JS_API>
+)
+
+target_link_libraries(uox
+ PUBLIC
+ js32
+ zlibstatic
+ $<$:ws2_32>
+)
diff --git a/spidermonkey/SpiderMonkey.sln b/spidermonkey/make/VS2017/SpiderMonkey.sln
similarity index 100%
rename from spidermonkey/SpiderMonkey.sln
rename to spidermonkey/make/VS2017/SpiderMonkey.sln
diff --git a/spidermonkey/js32.vcxproj b/spidermonkey/make/VS2017/js32.vcxproj
similarity index 100%
rename from spidermonkey/js32.vcxproj
rename to spidermonkey/make/VS2017/js32.vcxproj
diff --git a/spidermonkey/js32.vcxproj.filters b/spidermonkey/make/VS2017/js32.vcxproj.filters
similarity index 100%
rename from spidermonkey/js32.vcxproj.filters
rename to spidermonkey/make/VS2017/js32.vcxproj.filters
diff --git a/spidermonkey/jskwgen.vcxproj b/spidermonkey/make/VS2017/jskwgen.vcxproj
similarity index 100%
rename from spidermonkey/jskwgen.vcxproj
rename to spidermonkey/make/VS2017/jskwgen.vcxproj
diff --git a/spidermonkey/jskwgen.vcxproj.filters b/spidermonkey/make/VS2017/jskwgen.vcxproj.filters
similarity index 100%
rename from spidermonkey/jskwgen.vcxproj.filters
rename to spidermonkey/make/VS2017/jskwgen.vcxproj.filters
diff --git a/spidermonkey/vs2022/jsengine.sln b/spidermonkey/make/VS2022/jsengine.sln
similarity index 100%
rename from spidermonkey/vs2022/jsengine.sln
rename to spidermonkey/make/VS2022/jsengine.sln
diff --git a/spidermonkey/vs2022/jsengine.vcxproj b/spidermonkey/make/VS2022/jsengine.vcxproj
similarity index 100%
rename from spidermonkey/vs2022/jsengine.vcxproj
rename to spidermonkey/make/VS2022/jsengine.vcxproj
diff --git a/spidermonkey/vs2022/jsengine.vcxproj.filters b/spidermonkey/make/VS2022/jsengine.vcxproj.filters
similarity index 100%
rename from spidermonkey/vs2022/jsengine.vcxproj.filters
rename to spidermonkey/make/VS2022/jsengine.vcxproj.filters
diff --git a/zlib/zlib-static/zlib-static.vcxproj b/zlib/make/VS2017/zlib-static.vcxproj
similarity index 100%
rename from zlib/zlib-static/zlib-static.vcxproj
rename to zlib/make/VS2017/zlib-static.vcxproj
diff --git a/zlib/zlib-static/zlib-static.vcxproj.filters b/zlib/make/VS2017/zlib-static.vcxproj.filters
similarity index 100%
rename from zlib/zlib-static/zlib-static.vcxproj.filters
rename to zlib/make/VS2017/zlib-static.vcxproj.filters
diff --git a/zlib/zlib-static/zlib-static.vcxproj.user b/zlib/make/VS2017/zlib-static.vcxproj.user
similarity index 100%
rename from zlib/zlib-static/zlib-static.vcxproj.user
rename to zlib/make/VS2017/zlib-static.vcxproj.user
diff --git a/zlib/zlib.sln b/zlib/make/VS2017/zlib.sln
similarity index 100%
rename from zlib/zlib.sln
rename to zlib/make/VS2017/zlib.sln
diff --git a/zlib/vs2022/zlib.sln b/zlib/make/VS2022/vs2022/zlib.sln
similarity index 100%
rename from zlib/vs2022/zlib.sln
rename to zlib/make/VS2022/vs2022/zlib.sln
diff --git a/zlib/vs2022/zlib.vcxproj b/zlib/make/VS2022/vs2022/zlib.vcxproj
similarity index 100%
rename from zlib/vs2022/zlib.vcxproj
rename to zlib/make/VS2022/vs2022/zlib.vcxproj
diff --git a/zlib/vs2022/zlib.vcxproj.filters b/zlib/make/VS2022/vs2022/zlib.vcxproj.filters
similarity index 100%
rename from zlib/vs2022/zlib.vcxproj.filters
rename to zlib/make/VS2022/vs2022/zlib.vcxproj.filters
diff --git a/zlib/CMakeLists.txt b/zlib/make/cmake/CMakeLists.txt
similarity index 100%
rename from zlib/CMakeLists.txt
rename to zlib/make/cmake/CMakeLists.txt
From 435686614a170027f7c1fb03f16b1e22560eca9a Mon Sep 17 00:00:00 2001
From: Xoduz
Date: Sat, 10 Dec 2022 01:39:24 +0800
Subject: [PATCH 08/24] More moved/renamed files
---
make/VS2017/{UOX3_Official.sln => uox3.sln} | 0
.../VS2017/{UOX3_Official.vcxproj.filters => uox3.vcproj.filters} | 0
make/VS2017/{UOX3_Official.vcxproj => uox3.vcxproj} | 0
spidermonkey/{ => make/VS2017}/fdlibm/fdlibm.vcxproj | 0
spidermonkey/{ => make/VS2017}/fdlibm/fdlibm.vcxproj.filters | 0
.../make/VS2017/{SpiderMonkey.sln => jscript/jscript.sln} | 0
.../make/VS2017/{js32.vcxproj => jscript/jscript.vcxproj} | 0
.../{js32.vcxproj.filters => jscript/jscript.vcxproj.filters} | 0
spidermonkey/make/VS2017/{ => jskwgen}/jskwgen.vcxproj | 0
spidermonkey/make/VS2017/{ => jskwgen}/jskwgen.vcxproj.filters | 0
spidermonkey/make/VS2022/{jsengine.sln => jscript.sln} | 0
spidermonkey/make/VS2022/{jsengine.vcxproj => jscript.vcxproj} | 0
.../VS2022/{jsengine.vcxproj.filters => jscript.vcxproj.filters} | 0
zlib/make/VS2017/{zlib-static.vcxproj => zlib.vcxproj} | 0
.../VS2017/{zlib-static.vcxproj.filters => zlib.vcxproj.filters} | 0
zlib/make/VS2017/{zlib-static.vcxproj.user => zlib.vcxproj.user} | 0
zlib/make/VS2022/{vs2022 => }/zlib.sln | 0
zlib/make/VS2022/{vs2022 => }/zlib.vcxproj | 0
zlib/make/VS2022/{vs2022 => }/zlib.vcxproj.filters | 0
19 files changed, 0 insertions(+), 0 deletions(-)
rename make/VS2017/{UOX3_Official.sln => uox3.sln} (100%)
rename make/VS2017/{UOX3_Official.vcxproj.filters => uox3.vcproj.filters} (100%)
rename make/VS2017/{UOX3_Official.vcxproj => uox3.vcxproj} (100%)
rename spidermonkey/{ => make/VS2017}/fdlibm/fdlibm.vcxproj (100%)
rename spidermonkey/{ => make/VS2017}/fdlibm/fdlibm.vcxproj.filters (100%)
rename spidermonkey/make/VS2017/{SpiderMonkey.sln => jscript/jscript.sln} (100%)
rename spidermonkey/make/VS2017/{js32.vcxproj => jscript/jscript.vcxproj} (100%)
rename spidermonkey/make/VS2017/{js32.vcxproj.filters => jscript/jscript.vcxproj.filters} (100%)
rename spidermonkey/make/VS2017/{ => jskwgen}/jskwgen.vcxproj (100%)
rename spidermonkey/make/VS2017/{ => jskwgen}/jskwgen.vcxproj.filters (100%)
rename spidermonkey/make/VS2022/{jsengine.sln => jscript.sln} (100%)
rename spidermonkey/make/VS2022/{jsengine.vcxproj => jscript.vcxproj} (100%)
rename spidermonkey/make/VS2022/{jsengine.vcxproj.filters => jscript.vcxproj.filters} (100%)
rename zlib/make/VS2017/{zlib-static.vcxproj => zlib.vcxproj} (100%)
rename zlib/make/VS2017/{zlib-static.vcxproj.filters => zlib.vcxproj.filters} (100%)
rename zlib/make/VS2017/{zlib-static.vcxproj.user => zlib.vcxproj.user} (100%)
rename zlib/make/VS2022/{vs2022 => }/zlib.sln (100%)
rename zlib/make/VS2022/{vs2022 => }/zlib.vcxproj (100%)
rename zlib/make/VS2022/{vs2022 => }/zlib.vcxproj.filters (100%)
diff --git a/make/VS2017/UOX3_Official.sln b/make/VS2017/uox3.sln
similarity index 100%
rename from make/VS2017/UOX3_Official.sln
rename to make/VS2017/uox3.sln
diff --git a/make/VS2017/UOX3_Official.vcxproj.filters b/make/VS2017/uox3.vcproj.filters
similarity index 100%
rename from make/VS2017/UOX3_Official.vcxproj.filters
rename to make/VS2017/uox3.vcproj.filters
diff --git a/make/VS2017/UOX3_Official.vcxproj b/make/VS2017/uox3.vcxproj
similarity index 100%
rename from make/VS2017/UOX3_Official.vcxproj
rename to make/VS2017/uox3.vcxproj
diff --git a/spidermonkey/fdlibm/fdlibm.vcxproj b/spidermonkey/make/VS2017/fdlibm/fdlibm.vcxproj
similarity index 100%
rename from spidermonkey/fdlibm/fdlibm.vcxproj
rename to spidermonkey/make/VS2017/fdlibm/fdlibm.vcxproj
diff --git a/spidermonkey/fdlibm/fdlibm.vcxproj.filters b/spidermonkey/make/VS2017/fdlibm/fdlibm.vcxproj.filters
similarity index 100%
rename from spidermonkey/fdlibm/fdlibm.vcxproj.filters
rename to spidermonkey/make/VS2017/fdlibm/fdlibm.vcxproj.filters
diff --git a/spidermonkey/make/VS2017/SpiderMonkey.sln b/spidermonkey/make/VS2017/jscript/jscript.sln
similarity index 100%
rename from spidermonkey/make/VS2017/SpiderMonkey.sln
rename to spidermonkey/make/VS2017/jscript/jscript.sln
diff --git a/spidermonkey/make/VS2017/js32.vcxproj b/spidermonkey/make/VS2017/jscript/jscript.vcxproj
similarity index 100%
rename from spidermonkey/make/VS2017/js32.vcxproj
rename to spidermonkey/make/VS2017/jscript/jscript.vcxproj
diff --git a/spidermonkey/make/VS2017/js32.vcxproj.filters b/spidermonkey/make/VS2017/jscript/jscript.vcxproj.filters
similarity index 100%
rename from spidermonkey/make/VS2017/js32.vcxproj.filters
rename to spidermonkey/make/VS2017/jscript/jscript.vcxproj.filters
diff --git a/spidermonkey/make/VS2017/jskwgen.vcxproj b/spidermonkey/make/VS2017/jskwgen/jskwgen.vcxproj
similarity index 100%
rename from spidermonkey/make/VS2017/jskwgen.vcxproj
rename to spidermonkey/make/VS2017/jskwgen/jskwgen.vcxproj
diff --git a/spidermonkey/make/VS2017/jskwgen.vcxproj.filters b/spidermonkey/make/VS2017/jskwgen/jskwgen.vcxproj.filters
similarity index 100%
rename from spidermonkey/make/VS2017/jskwgen.vcxproj.filters
rename to spidermonkey/make/VS2017/jskwgen/jskwgen.vcxproj.filters
diff --git a/spidermonkey/make/VS2022/jsengine.sln b/spidermonkey/make/VS2022/jscript.sln
similarity index 100%
rename from spidermonkey/make/VS2022/jsengine.sln
rename to spidermonkey/make/VS2022/jscript.sln
diff --git a/spidermonkey/make/VS2022/jsengine.vcxproj b/spidermonkey/make/VS2022/jscript.vcxproj
similarity index 100%
rename from spidermonkey/make/VS2022/jsengine.vcxproj
rename to spidermonkey/make/VS2022/jscript.vcxproj
diff --git a/spidermonkey/make/VS2022/jsengine.vcxproj.filters b/spidermonkey/make/VS2022/jscript.vcxproj.filters
similarity index 100%
rename from spidermonkey/make/VS2022/jsengine.vcxproj.filters
rename to spidermonkey/make/VS2022/jscript.vcxproj.filters
diff --git a/zlib/make/VS2017/zlib-static.vcxproj b/zlib/make/VS2017/zlib.vcxproj
similarity index 100%
rename from zlib/make/VS2017/zlib-static.vcxproj
rename to zlib/make/VS2017/zlib.vcxproj
diff --git a/zlib/make/VS2017/zlib-static.vcxproj.filters b/zlib/make/VS2017/zlib.vcxproj.filters
similarity index 100%
rename from zlib/make/VS2017/zlib-static.vcxproj.filters
rename to zlib/make/VS2017/zlib.vcxproj.filters
diff --git a/zlib/make/VS2017/zlib-static.vcxproj.user b/zlib/make/VS2017/zlib.vcxproj.user
similarity index 100%
rename from zlib/make/VS2017/zlib-static.vcxproj.user
rename to zlib/make/VS2017/zlib.vcxproj.user
diff --git a/zlib/make/VS2022/vs2022/zlib.sln b/zlib/make/VS2022/zlib.sln
similarity index 100%
rename from zlib/make/VS2022/vs2022/zlib.sln
rename to zlib/make/VS2022/zlib.sln
diff --git a/zlib/make/VS2022/vs2022/zlib.vcxproj b/zlib/make/VS2022/zlib.vcxproj
similarity index 100%
rename from zlib/make/VS2022/vs2022/zlib.vcxproj
rename to zlib/make/VS2022/zlib.vcxproj
diff --git a/zlib/make/VS2022/vs2022/zlib.vcxproj.filters b/zlib/make/VS2022/zlib.vcxproj.filters
similarity index 100%
rename from zlib/make/VS2022/vs2022/zlib.vcxproj.filters
rename to zlib/make/VS2022/zlib.vcxproj.filters
From 34b918a852f2e49ffe356350c9a51a61610d02f7 Mon Sep 17 00:00:00 2001
From: Xoduz
Date: Sat, 10 Dec 2022 01:43:33 +0800
Subject: [PATCH 09/24] Couple more
---
spidermonkey/make/VS2022/{ => jscript}/jscript.sln | 0
spidermonkey/make/VS2022/{ => jscript}/jscript.vcxproj | 0
spidermonkey/make/VS2022/{ => jscript}/jscript.vcxproj.filters | 0
3 files changed, 0 insertions(+), 0 deletions(-)
rename spidermonkey/make/VS2022/{ => jscript}/jscript.sln (100%)
rename spidermonkey/make/VS2022/{ => jscript}/jscript.vcxproj (100%)
rename spidermonkey/make/VS2022/{ => jscript}/jscript.vcxproj.filters (100%)
diff --git a/spidermonkey/make/VS2022/jscript.sln b/spidermonkey/make/VS2022/jscript/jscript.sln
similarity index 100%
rename from spidermonkey/make/VS2022/jscript.sln
rename to spidermonkey/make/VS2022/jscript/jscript.sln
diff --git a/spidermonkey/make/VS2022/jscript.vcxproj b/spidermonkey/make/VS2022/jscript/jscript.vcxproj
similarity index 100%
rename from spidermonkey/make/VS2022/jscript.vcxproj
rename to spidermonkey/make/VS2022/jscript/jscript.vcxproj
diff --git a/spidermonkey/make/VS2022/jscript.vcxproj.filters b/spidermonkey/make/VS2022/jscript/jscript.vcxproj.filters
similarity index 100%
rename from spidermonkey/make/VS2022/jscript.vcxproj.filters
rename to spidermonkey/make/VS2022/jscript/jscript.vcxproj.filters
From 4ec12750b9d7c8c257e0eee31d36a923868d7af1 Mon Sep 17 00:00:00 2001
From: Xoduz
Date: Sun, 11 Dec 2022 07:35:54 +0800
Subject: [PATCH 10/24] Updated a bunch of build-related files and docs, added
some new ones
Co-Authored-By: Charles Kerr
---
.github/workflows/windows_x64_build.yml | 8 +-
.gitignore | 178 ++-
README.md | 244 ++--
assets/uox3.rc | 9 +-
automake.sh | 100 +-
docs/index.html | 480 ++++---
docs/jsdocs.html | 32 +-
docs/styleguide.html | 404 ++++++
make/VS2017/uox3.sln | 2 +-
make/VS2017/uox3.vcxproj | 387 ++---
...x3.vcproj.filters => uox3.vcxproj.filters} | 320 ++---
make/VS2022/uox3.sln | 34 +-
make/VS2022/uox3.vcxproj | 402 +++---
make/VS2022/uox3.vcxproj.filters | 814 ++++++-----
make/XCode/uox3.xcodeproj/project.pbxproj | 1246 ++++++++---------
.../contents.xcworkspacedata | 7 +
.../xcshareddata/IDEWorkspaceChecks.plist | 8 +
.../xcshareddata/xcschemes/uox3.xcscheme | 17 +-
.../uox3.xcworkspace/contents.xcworkspacedata | 10 +
.../xcshareddata/IDEWorkspaceChecks.plist | 8 +
make/cmake/CMakeLists.txt | 330 +++--
spidermonkey/jsautocfg.h | 52 +
spidermonkey/make/Spidermonkey.txt | 5 +
spidermonkey/make/VS2017/fdlibm/fdlibm.sln | 31 +
.../make/VS2017/fdlibm/fdlibm.vcxproj | 192 +--
.../make/VS2017/fdlibm/fdlibm.vcxproj.filters | 38 +-
spidermonkey/make/VS2017/jscript/jscript.sln | 57 +-
.../make/VS2017/jscript/jscript.vcxproj | 314 +++--
.../VS2017/jscript/jscript.vcxproj.filters | 154 +-
spidermonkey/make/VS2017/jskwgen/jskwgen.sln | 51 +
.../make/VS2017/jskwgen/jskwgen.vcxproj | 146 +-
.../VS2017/jskwgen/jskwgen.vcxproj.filters | 14 +-
spidermonkey/make/VS2022/fdlibm/fdlibm.sln | 31 +
.../make/VS2022/fdlibm/fdlibm.vcxproj | 184 +++
.../make/VS2022/fdlibm/fdlibm.vcxproj.filters | 69 +
spidermonkey/make/VS2022/jscript/jscript.sln | 30 +-
.../make/VS2022/jscript/jscript.vcxproj | 272 ++--
.../VS2022/jscript/jscript.vcxproj.filters | 290 ++--
spidermonkey/make/VS2022/jskwgen/jskwgen.sln | 51 +
.../make/VS2022/jskwgen/jskwgen.vcxproj | 166 +++
.../VS2022/jskwgen/jskwgen.vcxproj.filters | 33 +
spidermonkey/make/cmake/CMakeLists.txt | 152 ++
zlib/README.md | 49 +-
zlib/make/VS2017/zlib.sln | 2 +-
zlib/make/VS2017/zlib.vcxproj | 52 +-
zlib/make/VS2017/zlib.vcxproj.filters | 52 +-
zlib/make/VS2022/zlib.sln | 20 +-
zlib/make/VS2022/zlib.vcxproj | 177 ++-
zlib/make/VS2022/zlib.vcxproj.filters | 100 +-
zlib/make/XCode/Why-No-Project.txt | 2 +
zlib/make/cmake/CMakeLists.txt | 311 +---
51 files changed, 4856 insertions(+), 3281 deletions(-)
create mode 100644 docs/styleguide.html
rename make/VS2017/{uox3.vcproj.filters => uox3.vcxproj.filters} (60%)
create mode 100644 make/XCode/uox3.xcodeproj/project.xcworkspace/contents.xcworkspacedata
create mode 100644 make/XCode/uox3.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
create mode 100644 make/XCode/uox3.xcworkspace/contents.xcworkspacedata
create mode 100644 make/XCode/uox3.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
create mode 100644 spidermonkey/jsautocfg.h
create mode 100644 spidermonkey/make/Spidermonkey.txt
create mode 100644 spidermonkey/make/VS2017/fdlibm/fdlibm.sln
create mode 100644 spidermonkey/make/VS2017/jskwgen/jskwgen.sln
create mode 100644 spidermonkey/make/VS2022/fdlibm/fdlibm.sln
create mode 100644 spidermonkey/make/VS2022/fdlibm/fdlibm.vcxproj
create mode 100644 spidermonkey/make/VS2022/fdlibm/fdlibm.vcxproj.filters
create mode 100644 spidermonkey/make/VS2022/jskwgen/jskwgen.sln
create mode 100644 spidermonkey/make/VS2022/jskwgen/jskwgen.vcxproj
create mode 100644 spidermonkey/make/VS2022/jskwgen/jskwgen.vcxproj.filters
create mode 100644 spidermonkey/make/cmake/CMakeLists.txt
create mode 100644 zlib/make/XCode/Why-No-Project.txt
diff --git a/.github/workflows/windows_x64_build.yml b/.github/workflows/windows_x64_build.yml
index c0d456ee6..a59d27084 100644
--- a/.github/workflows/windows_x64_build.yml
+++ b/.github/workflows/windows_x64_build.yml
@@ -15,12 +15,12 @@ jobs:
runs-on: windows-latest
steps:
- name: checkout
- uses: actions/checkout@v2
- - name: setupt msvc console
+ uses: actions/checkout@v3
+ - name: setup msvc console
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x64
- name: cmake and build
run: |
- cmake -G "NMake Makefiles" .
- nmake
+ cmake make/cmake -DCMAKE_BUILD_TYPE=Release -G"NMake Makefiles"
+ cmake --build . --config Release
diff --git a/.gitignore b/.gitignore
index 1c5db1f17..e72241a64 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,14 @@
+# Project unique Items
+
+[Bb]uild/
+
+
+
+
+# Created by https://www.toptal.com/developers/gitignore/api/c++
+# Edit at https://www.toptal.com/developers/gitignore?templates=c++
+
+### C++ ###
# Prerequisites
*.d
@@ -31,6 +42,27 @@
*.out
*.app
+# End of https://www.toptal.com/developers/gitignore/api/c++
+
+
+# Created by https://www.toptal.com/developers/gitignore/api/macos,windows,linux
+# Edit at https://www.toptal.com/developers/gitignore?templates=macos,windows,linux
+
+### Linux ###
+*~
+
+# temporary files which can be created if a process still has a handle open of a deleted file
+.fuse_hidden*
+
+# KDE directory preferences
+.directory
+
+# Linux trash folder which might appear on any partition or disk
+.Trash-*
+
+# .nfs files are created when an open file is removed but is still being accessed
+.nfs*
+
### macOS ###
# General
.DS_Store
@@ -60,59 +92,9 @@ Network Trash Folder
Temporary Items
.apdisk
-### Xcode ###
-# Xcode
-#
-# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
-
-## User settings
-xcuserdata/
-
-## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
-*.xcscmblueprint
-*.xccheckout
-
-## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
-build/
-DerivedData/
-*.moved-aside
-*.pbxuser
-!default.pbxuser
-*.mode1v3
-!default.mode1v3
-*.mode2v3
-!default.mode2v3
-*.perspectivev3
-!default.perspectivev3
-
-## Gcc Patch
-/*.gcno
-
-### Xcode Patch ###
-*.xcodeproj/*
-!*.xcodeproj/project.pbxproj
-!*.xcodeproj/xcshareddata/
-!*.xcworkspace/contents.xcworkspacedata
-**/xcshareddata/WorkspaceSettings.xcsettings
-
-### VisualStudioCode ###
-.vscode/*
-!.vscode/settings.json
-!.vscode/tasks.json
-!.vscode/launch.json
-!.vscode/extensions.json
-*.code-workspace
-
-# Local History for Visual Studio Code
-.history/
-
-### VisualStudioCode Patch ###
-# Ignore all local history of files
-.history
-.ionide
-
-# Support for Project snippet scope
-!.vscode/*.code-snippets
+### macOS Patch ###
+# iCloud generated files
+*.icloud
### Windows ###
# Windows thumbnail cache files
@@ -140,11 +122,73 @@ $RECYCLE.BIN/
# Windows shortcuts
*.lnk
+# End of https://www.toptal.com/developers/gitignore/api/macos,windows,linux
+
+
+
+
+
+# Created by https://www.toptal.com/developers/gitignore/api/cmake,xcode,visualstudio,visualstudiocode
+# Edit at https://www.toptal.com/developers/gitignore?templates=cmake,xcode,visualstudio,visualstudiocode
+
+### CMake ###
+CMakeLists.txt.user
+CMakeCache.txt
+CMakeFiles
+CMakeScripts
+Testing
+Makefile
+cmake_install.cmake
+install_manifest.txt
+compile_commands.json
+CTestTestfile.cmake
+_deps
+
+### CMake Patch ###
+# External projects
+*-prefix/
+
+### VisualStudioCode ###
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+!.vscode/*.code-snippets
+
+# Local History for Visual Studio Code
+.history/
+
+# Built Visual Studio Code Extensions
+*.vsix
+
+### VisualStudioCode Patch ###
+# Ignore all local history of files
+.history
+.ionide
+
+### Xcode ###
+## User settings
+xcuserdata/
+
+## Xcode 8 and earlier
+*.xcscmblueprint
+*.xccheckout
+
+### Xcode Patch ###
+*.xcodeproj/*
+!*.xcodeproj/project.pbxproj
+!*.xcodeproj/xcshareddata/
+!*.xcodeproj/project.xcworkspace/
+!*.xcworkspace/contents.xcworkspacedata
+/*.gcno
+**/xcshareddata/WorkspaceSettings.xcsettings
+
### VisualStudio ###
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
-## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
+## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
# User-specific files
*.rsuser
@@ -349,9 +393,6 @@ PublishScripts/
*.nuget.props
*.nuget.targets
-# Nuget personal access tokens and Credentials
-# nuget.config
-
# Microsoft Azure Build Output
csx/
*.build.csdef
@@ -440,6 +481,15 @@ node_modules/
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
+# Visual Studio 6 auto-generated project file (contains which files were open etc.)
+*.vbp
+
+# Visual Studio 6 workspace and project file (working project files containing files to include in project)
+*.dsw
+*.dsp
+
+# Visual Studio 6 technical files
+
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
@@ -496,6 +546,9 @@ ASALocalRun/
# Local History for Visual Studio
.localhistory/
+# Visual Studio History (VSHistory) files
+.vshistory/
+
# BeatPulse healthcheck temp database
healthchecksdb
@@ -509,14 +562,23 @@ MigrationBackup/
FodyWeavers.xsd
# VS Code files for those working on multiple tools
+*.code-workspace
# Local History for Visual Studio Code
# Windows Installer files from build outputs
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
# JetBrains Rider
-.idea/
*.sln.iml
### VisualStudio Patch ###
# Additional files built by Visual Studio
+
+# End of https://www.toptal.com/developers/gitignore/api/cmake,xcode,visualstudio,visualstudiocode
+
+
diff --git a/README.md b/README.md
index 0b2673c2f..dccd1a532 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@
**Ultima Offline eXperiment 3** - the original open source Ultima Online server emulator, allowing people to run their own, custom UO shards since 1997. Comes with cross-platform 64-bit support for **Windows**, **Linux**, **macOS**, and **FreeBSD**. News, releases, forums, additional documentation and more can be found at https://www.uox3.org
-Supported UO Client versions: **~4.0.0p** to **~7.0.91.15** (with encryption removed by [ClassicUO](https://www.classicuo.eu), [Razor](https://github.com/msturgill/razor/releases) or similar tools). For additional details on UO client compatibility, check https://www.uox3.org/forums/viewtopic.php?f=1&t=2289
+Supported UO Client versions: **~4.0.0p** to at least **~7.0.97.25** (with encryption removed by [ClassicUO](https://www.classicuo.eu), [Razor](https://github.com/msturgill/razor/releases) or similar tools). For additional details on UO client compatibility, check https://www.uox3.org/forums/viewtopic.php?f=1&t=2289
UOX3 relies on **SpiderMonkey v1.7.0** for its JS-based scripting engine, and on **zlib-1.2.11** for data compression matters, and comes bundled with specific, compatible versions of these.
@@ -16,192 +16,146 @@ Join the [UOX3 Discord](https://discord.gg/uBAXxhF) for support and/or a quick c
---
# How to compile UOX3...
-# ...under Linux, macOS, or FreeBSD
-## Step 1: Clone the UOX3 Git Repository
+## Step 1: Set up a Build Environment
+*First, set up a proper build environment with the various tools needed to clone and compile UOX3.*
- Using git and Terminal
-
-First step, open a new terminal and enter the commands below:
-
-1) Install prerequisites:
-
- * **Linux:** `sudo apt install git` - This will install git if not already installed (Ubuntu/Debian-based Linux variants). If you're using a non-Debian flavour of Linux, use the default package manager that comes with it to install git instead.
-
- * **macOS:** `xcode-select --install` - This will install git if not already installed, along with required make and gcc tools
-
- * **FreeBSD:** `pkg install git gmake` - This will install git and gmake if not already installed. Alternatively, build `git` and `gmake` via ports if desired.
-
-2) `git clone https://github.com/UOX3DevTeam/UOX3.git` - This will clone the stable master branch of the UOX3 git repository into a subdirectory of the current directory you're in, named UOX3. The latest verified compatible version of SpiderMonkey (v1.7.0) is also included, as well as a minimal set of files required to compile zlib-1.2.11.
-
-
- Checking out Other Branches
-
- If you'd rather grab another branch of the git repository, like the **develop** branch where most updates get pushed first before being merged into the master branch, you can use the following command *after* completing the previous step:
- `git checkout develop`
+ Install build tools
-
+ > * **Windows** - Download and install [Community Edition of Visual Studio 2017 or 2022](https://visualstudio.microsoft.com/downloads/).
+ > * * Be sure to also install **Desktop development with C++** via the Visual Studio Installer, along with the individual component titled **VC++ 2017 version 15.9 v14.16 latest v141 tools** (VS2017) or **MSVC v143 - VS 2022 C++ x64/x86 build tools** (VS2022). CMake is included for command-line builds.
+ > * **Linux (Debian-based)** - Run `sudo apt install build-essentials cmake` in a Terminal: (or use your Linux distro's package manager)
+ > * **FreeBSD** - Run `pkg install cmake` in a Terminal. Alternatively, build `cmake` via ports if desired.
+ > * **macOS** - Download [Xcode](https://apps.apple.com/us/app/xcode/id497799835?mt=12) (for building with an IDE) via the App Store, and/or [CMake](https://cmake.org/download/) (for command-line builds)
- (macOS alternative) GitHub Desktop
-
- 1) Download and install the macOS version of [GitHub Desktop](https://desktop.github.com/).
- 2) Run GitHub Desktop and click **File->Clone Repository** from the menu.
- 3) Click the **URL** tab, enter **https://github.com/UOX3DevTeam/UOX3.git**, then provide a local path for where you want the UOX3 git repository cloned on your drive.
- 4) Hit the **Clone** button!
+ Install Git
+ > * **Windows/macOS** - Grab [GitHub Desktop](https://desktop.github.com) or your preferred git tool
+ > * **Linux** - Run `sudo apt install git` in a Terminal.
+ > * **FreeBSD** - Run `pkg install git` in a Terminal. Alternatively, build `git` via ports if desired.
-## Step 2: Compile UOX3
-
- Compiling with GNU Make and GCC (v9.x and above) or Clang
-
-You'll need a couple tools before you can compile UOX3 on Linux, like **GNU Make** (*v4.2.1* or higher recommended) and **gcc** (*v9.x* or higher recommended). Install these through your favourite package manager or through your flavour of Linux' variant of the following terminal command (example specific to Debian/Ubuntu Linux flavours):
-
-1) (Linux only) `sudo apt install build-essential`
+---
-Once these are in place, navigate to the **UOX3** project folder in your terminal and execute the following command from the project's root directory:
+## Step 2: Clone the UOX3 Git Repository
+*Next up, clone the UOX3 git repository, which also includes the latest verified compatible version of SpiderMonkey (v1.7.0) and a minimal set of files required to compile zlib-1.2.11.*
+
+ Using GitHub Desktop (Windows/macOS)
-`./automake.sh` - First compiles the SpiderMonkey JS library bundled with UOX3, then compiles the included zlib library, and finally compiles the actual UOX3 build, before copying the compiled binary to the **root** UOX3 project directory.
+ > 1. Run GitHub Desktop and click **File->Clone Repository** from the menu.
+ > 2. Enter **https://github.com/UOX3DevTeam/UOX3.git** in the URL tab, and provide a local path for storing the cloned repo on your drive.
+ > 3. Hit the **Clone** button to clone the stable master branch of UOX3 to the specified local path
- Special note for users of Debian/GCC versions below 9.x
+ Using Command Line git
- If your version of gcc is below 9.x, you'll need to add *-lstdc++fs* in *Makefile* to include the experimental filesystem library from c++17.
-
- Change the following line (~34) from
-
- `$(CXX) $(CXXFLAGS) -o $(TARGET) $^ $(LDFLAGS)`
-
- to
-
- `$(CXX) $(CXXFLAGS) -o $(TARGET) $^ $(LDFLAGS) -lstdc++fs`
+ > 1. Run `git clone https://github.com/UOX3DevTeam/UOX3.git` in a Terminal to clone the stable master branch of UOX3 into a subdirectory of the current directory you're in.
- Manual Instructions
-
- If you don't wish to rely on the automake.sh script, but want control over the process yourself, follow these steps (same as what automake.sh does):
+ (Optional) Checking out Other Branches
- - `cd spidermonkey`
- ### Linux ###
- - `make -f Makefile.ref DEFINES=-DHAVE_VA_LIST_AS_ARRAY CC=gcc`
- - `ar -r libjs32.a Linux_All_DBG.OBJ/*.o`
- - `cp Linux_All_DBG.OBJ/jsautocfg.h ./`
- ### macOS ###
- - `make -f Makefile.ref DEFINES=-DHAVE_VA_LIST_AS_ARRAY CC=gcc`
- - `libtool -static -o libjs32.a -s Darwin_DBG.OBJ/*.o`
- - `cp Darwin_DBG.OBJ/jsautocfg.h ./`
- ### FreeBSD ###
- - `gmake -f Makefile.ref DEFINES=-DHAVE_VA_LIST_AS_ARRAY CC=clang`
- - `ar rcs libjs32.a FreeBSD_DBG.OBJ/*.o`
- - `cp FreeBSD_DBG.OBJ/jsautocfg.h ./`
+ > If you'd rather grab another branch of the git repository, like the **develop** branch where most updates get pushed first before being merged into the master branch, you can use the following command *after* completing the previous step:
+ `git checkout develop`
- *Next up, compile a static library of the included zlib package:*
-
- - `cd ../zlib`
- - `make distclean`
- - `./configure`
- - `make`
-
- *At this point, now cd to the root UOX3 project directory and build UOX3:*
-
- - `cd ../source`
- - `make` (`gmake` under FreeBSD)
+ > GitHub Desktop users can change the active branch via the *Current Branch* dropdown menu in GitHub Desktop.
---
-Once done compiling, you will find the compiled uox3 binary in the root UOX3 directory. You can copy this binary to the directory you intend to run your UOX3 shard from, along with all the files and folders contained in the UOX3/data subdirectory.
-
-**It is recommended** to run your UOX3 shard from a separate, dedicated directory instead of the data directory in your local UOX3 git repository, to avoid potential git conflicts and accidental overwrites when pulling updates to UOX3 from GitHub in the future.
+## Step 3: Compile UOX3
+*Finally, compile UOX3 using the build environment you set up above.*
+ * **Windows** - Open *UOX3\make\VS2022\uox3.sln* (VS2022), choose *Release/Debug* from dropdown menu, and hit *Build -> Build UOX3*
+ * **Linux/FreeBSD** - Run `./automake.sh` in a Terminal, from the root of the cloned UOX3 repository.
+ * **macOS** - Open *UOX3/make/XCode/uox3/uox3.xcworkspace*, select *Build*
- Copying Required Files to Dedicated UOX3 Directory
-
-This is an example of how to copy all required files to a directory called UOX3 in your user account's home directory
-1) *navigate to root UOX3 project directory*
-2) `mkdir ~/UOX3`
-3) `cp uox3 ~/UOX3`
-4) `cp -r data/* ~/UOX3`
-5) `cd ~/UOX3`
-
+ Manual command-line instructions for CMake
+
+ > If you don't wish to rely on the automake.sh script, but want control over the process yourself, follow these steps (same as what automake.sh does) in a Terminal:
+ > - Navigate to root of cloned UOX3 git repository
+ > - `cd make/cmake`
+ > - `mkdir -p build`
+ > - `cd build`
+ > - `cmake .. -DCMAKE_BUILD_TYPE=Release` (Linux/FreeBSD)
+ > - `cmake .. -DCMAKE_BUILD_TYPE=Release` -G"Unix Makefiles" (macOS)
+ > - `cmake --build . --config Release`
-Once you have all the required files in place, you can follow the regular steps listed under **Installation and Setup > Configuring Your UOX3 Shard** in the UOX3 documentation (see docs folder, or visit https://www.uox3.org/docs/index.html#configureUOX3) to finish your UOX3 setup.
-
----
-
-# ...under Windows
-## Step 1: Clone the UOX3 Git Repository
-1) Download and install [GitHub Desktop](https://desktop.githubc.om). If you already have another tool for git installed, you can use that instead.
-2) Run GitHub Desktop (or your preferred git tool) and click **File->Clone Repository** from the menu.
-3) Click the **URL** tab, enter `https://github.com/UOX3DevTeam/UOX3.git`, then provide a local path for where you want the UOX3 git repository cloned on your drive.
-4) Hit the **Clone** button to clone the stable master branch of the UOX3 git repository to the specified local path, along with the latest verified compatible version of SpiderMonkey (v1.7.0).
-
-## Step 2: Compile UOX3
-### Option A) Visual Studio 2017/2019 ([Free Community edition](https://visualstudio.microsoft.com/downloads/))
- Visual Studio 2017/2019
+ Manual command-line instructions for GCC/make/gmake
+
+ > If you'd rather use GCC (v9.x or higher)/make (GNU Make 4.2.1 or higher) than CMake, you can follow these manual steps. Note that for FreeBSD, this approach requires installing **gmake** as an alternative to *make*: `pkg install gmake`
+
+ > First, navigate to **spidermonkey** directory and run these commands:
+ > `make -f Makefile.ref DEFINES=-DHAVE_VA_LIST_AS_ARRAY CC=gcc` (Linux)
+ > `ar -r libjs32.a Linux_All_DBG.OBJ/*.o` (Linux)
+ > `cp Linux_All_DBG.OBJ/jsautocfg.h ./` (Linux)
+ > `gmake -f Makefile.ref DEFINES=-DHAVE_VA_LIST_AS_ARRAY CC=clang` (FreeBSD)
+ > `ar rcs libjs32.a FreeBSD_DBG.OBJ/*.o` (FreeBSD)
+ > `cp FreeBSD_DBG.OBJ/jsautocfg.h ./` (FreeBSD)
+
+ > Next, head to the **zlib** directory:
+ > `cd ../zlib`
+ > `make distclean`
+ > `./configure`
+ > `make`
+
+ > Finally, head to **UOX3/source** directory:
+ > `cd ../source`
+ > `make` (Linux)
+ > `gmake` (FreeBSD)
+
-*This option will let you use Visual Studio solution/project files to compile both UOX3 and SpiderMonkey with Visual Studio's default VC++ compiler. Note that you can download the [Free Community edition](https://visualstudio.microsoft.com/downloads/) of Visual Studio if you don't have it already. This approach also embeds SpiderMonkey directly inside UOX3 for a slightly larger (~1-2MB) executable, instead of requiring a separate DLL file, and comes with options for compiling either **32-bit** or **64-bit** (default) versions of UOX3.*
+
+ Instructions for VS2017
-***Note:*** You'll need to install **"Desktop development with C++"** via the Visual Studio Installer if you don't have it already, along with the option for this titled **MSVC v141 - VS 2017 C++ x64/x86 build tools (v14.16)**
+ > When using VS2017, static libraries of the dependency projects (SpiderMonkey and zlib) need to be compiled first before UOX3 itself can be compiled UOX3 will work:
-#### SpiderMonkey ####
-1) Navigate to the **UOX3\spidermonkey** folder and open **SpiderMonkey.sln** in Visual Studio.
-2) Make sure you have **js32** selected in the Solution Explorer, then select **Release** and either **x64** (64-bit) or **Win32** (32-bit) in the Solution Configuration/Platform dropdown menus
-3) Click **Build > Build js32** from the menu.
-4) Visual Studio will compile SpiderMonkey and create **spidermonkey\Release\x64** (64-bit) or **spidermonkey\Release\x86** (32-bit) folders with the compiled **js32.lib** library file contained within. No further actions are necessary here, so you can close the SpiderMonkey VS Solution.
+ > #### SpiderMonkey ####
+ > 1) Navigate to the **UOX3\spidermonkey\make\VS2017\jscript\** folder and open **jscript.sln** in VS2017.
+ > 2) Make sure you have **jscript** selected in the Solution Explorer, then select **Release** and **x64** (64-bit) in the Solution Configuration/Platform dropdown menus
+ > 3) Click **Build > Build jscript** from the menu.
+ > 4) Visual Studio will compile SpiderMonkey and create a **spidermonkey\make\VS2017\jscript\x64\Release\** (64-bit) folder with the compiled **jscript.lib** library file contained within. No further actions are necessary here, so you can close the SpiderMonkey VS Solution.
-### zlib ###
-1) Navigate to the **UOX3\zlib** folder and open **zlib.sln** in Visual Studio.
-2) Select **Release** and either **x64** (64-bit) or **Win32** (32-bit) in the Solution Configuration/Platform dropdown menus
-3) Click **Build > Build zlib-static** from the menu.
-4) Visual Studio will compile zlib and create **zlib\x64\Release** (64-bit) or **zlib\x86\Release** (32-bit) folders with the compiled **zlib-static.lib** library file contained within. No further actions are necessary here, so you can close the zlib VS Solution.
+ > ### zlib ###
+ > 1) Navigate to the **UOX3\zlib\make\VS2017** folder and open **zlib.sln** in VS2017.
+ > 2) Select **Release** and **x64** (64-bit) in the Solution Configuration/Platform dropdown menus
+ > 3) Click **Build > Build zlib-static** from the menu.
+ > 4) Visual Studio will compile zlib and create a **zlib\x64\Release** (64-bit) folder with the compiled **zlib-static.lib** library file contained within. No further actions are necessary here, so you can close the zlib VS Solution.
-#### UOX3 ####
-1) Open **UOX3_Official.sln** from the **UOX3\source** folder.
-2) Make sure you have **UOX3_Official** selected in the Solution Explorer, then select either **Release** or **Debug**, and either **x64** (64-bit) or **Win32** (32-bit) in the *Solution Configuration/Platform dropdown menus*, or via **Build -> Configuration Manager**.
-3) Select **Build -> Build UOX3_Official** to start compiling UOX3. When done, you'll find **UOX3.exe** either in **UOX3\source\Release\x64** (or **\x86**) or in **UOX3\source\Debug\x64** (or **\86**), depending on your choices in the previous step.
+ > #### UOX3 ####
+ > 1) Navigate to the **UOX3\make\VS2017\** folder and open **uox3.sln** in VS2017.
+ > 2) Make sure you have **UOX3** selected in the Solution Explorer, then select **Release** and **x64** (64-bit) in the *Solution Configuration/Platform dropdown menus*, or via **Build -> Configuration Manager**.
+ > 3) Select **Build -> Build UOX3** to start compiling UOX3. When done, you'll find **UOX3.exe** in **UOX3\make\VS2017\Release\x64**.
- Adding SpiderMonkey/zlib references in Configuration Manager
+ (Troubleshooting) Adding SpiderMonkey/zlib references in Configuration Manager
-If VS give you link errors when attempting to build UOX3, references to SpiderMonkey or zlib might have gone missing! Try the following steps to add them back.
+ > If VS give you link errors when attempting to build UOX3, references to SpiderMonkey or zlib might have gone missing! Try the following steps to add them back.
-1) Right click on **UOX3_Official** in the Solution Explorer, and select Properties.
-2) With the desired configuration (ex: Release, x64) selected at the top of the panel, add references to SpiderMonkey and zlib in these sections:
- * *VC++ Directories >* **Include Directories** (add path to SpiderMonkey and zlib root folders)
- * *VC++ Directories >* **Library Directories** (add path to SpiderMonkey **Release\x64** or **Release\x86** folder, as well as zlib **\x64\Release** or **\x86\Release** folder, depending on desired configuration)
- * *VC++ Directories >* **Source Directories** (add path to SpiderMonkey and zlib root folders)
- * *Linker >* **Additional Library Dependencies** (add path to SpiderMonkey **Release\x64** or **Release\x86** folder, as well as zlib **\x64\Release** or **\x86\Release** folder, depending on desired configuration)
-Press apply!
-Repeat process for both Release and Debug configurations (chosen at top of panel), then retry the UOX3 build process!
+ > 1) Right click on **UOX3_Official** in the Solution Explorer, and select Properties.
+ > 2) With the desired configuration (ex: Release, x64) selected at the top of the panel, add references to SpiderMonkey and zlib in these sections:
+ > * *VC++ Directories >* **Include Directories** (add path to SpiderMonkey and zlib root folders)
+ > * *VC++ Directories >* **Library Directories** (add path to **spidermonkey\make\VS2017\jscript\x64\Release** folder, as well as **zlib\make\VS2017\x64\Release** folder)
+ > * *VC++ Directories >* **Source Directories** (add path to SpiderMonkey and zlib root folders)
+ > * *Linker >* **Additional Library Dependencies** (add path to **spidermonkey\make\VS2017\jscript\x64\Release** folder, as well as **zlib\make\VS2017\x64\Release** folder)
+ > Press apply!
+ > Repeat process for both Release and Debug configurations (chosen at top of panel), then retry the UOX3 build process!
-### Option B) Visual Studio 2017/2019 and CMake ([Free Community edition](https://visualstudio.microsoft.com/downloads/))
-
- Visual Studio 2017/2019 and CMake
-
-*This option requires installing the Visual Studio toolset named **Linux development with C++** and the component called **Visual C++ tools for CMake and Linux**. Use the Visual Studio Installer to modify your install of Visual Studio if you don't already have these installed! This approach compiles SpiderMonkey to a separate DLL (**js32.dll**) file that needs to live inside the same folder as the main UOX3 executable, and currently only supports compiling a **32-bit** version of UOX3.*
-
-1) Start Visual Studio and use **File > Open > CMake** and select *CMakeLists.txt* in the root project folder (*Example: **D:\UOX3***). **Don't** open the similarly named file in the source folder directly.
-2) After Visual Studio is done loading the project and has generated some necessary files, select **CMake > Change CMake Settings > UOX3** from the toolbar menu, and select either *x86-Debug* or *x86-Release* depending on what kind of build you want to make - or do this using the Solution Configuration select menu.
-3) When Visual Studio is done switching to the new configuration, select **CMake > Build All** from the toolbar menu to start compiling UOX3.
-4) When done, you'll find **uox3.exe** and **js32.dll** in a subfolder named **out** of the root project folder, more specifically **/UOX3/out/build/x86-Debug** or **x86-Release**, based on the selected configuration.
-5) Note that the **js32.dll** file must be copied to the same folder as UOX3.exe.
-
-
-
---
+## UOX3 Compiled! Now what?
+Once done compiling, you can copy the compiled UOX3 binary/executable to the directory you intend to run your UOX3 shard from, along with all the files and folders contained in the UOX3/data subdirectory. Where you'll find the compiled UOX3 binary/executable depends on your platform and build method. Examples:
+ * **Windows** - Compiled UOX3.exe can be found in **UOX3/make/VS2022/x64/Release**
+ * **Linux/FreeBSD** - Compiled uox3 binary can be found in **root UOX3 repository**
+ * **macOS** - Compiled uox3 binary can be found in **UOX3\make\XCode\Build\Products\Release**
-Once done compiling, you can copy your new **uox3.exe** (and if using CMake, **js32.dll**) file from the appropriate output folders (depending on which method and configuration you used) to the root folder of your actual UOX3 project. You'll also need to copy the files and folders contained within the **data** subfolder of the UOX3 repository, if you don't already have these.
-
-**It is recommended** to run your UOX3 shard from a separate, dedicated folder instead of the data folder in your local UOX3 git repository, to avoid potential git conflicts and accidental overwrites when pulling updates to UOX3 from GitHub in the future.
+**It is recommended** to run your UOX3 shard from a separate, dedicated directory instead of the data directory in your local UOX3 git repository, to avoid potential git conflicts and accidental overwrites when pulling updates to UOX3 from GitHub in the future.
-Once you have all the required files in place, you can follow the regular steps listed under **Installation and Setup > Configuring Your UOX3 Shard** in the UOX3 documentation (see docs folder, or visit https://www.uox3.org/docs/index.html#configureUOX3) to finish your UOX3 setup!
+Once you have all the required files in place, you can follow the regular steps listed under **Installation and Setup > Configuring Your UOX3 Shard** in the UOX3 documentation (see docs folder, or visit https://www.uox3.org/docs/index.html#configureUOX3) to finish your UOX3 setup.
\ No newline at end of file
diff --git a/assets/uox3.rc b/assets/uox3.rc
index d3cdf73d4..599a2e9cf 100644
--- a/assets/uox3.rc
+++ b/assets/uox3.rc
@@ -1,6 +1,5 @@
// Microsoft Visual C++ generated resource script.
//
-#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
@@ -35,18 +34,14 @@ IDI_MAINFRAME ICON "uox3.ico"
// TEXTINCLUDE
//
-1 TEXTINCLUDE
-BEGIN
- "resource.h\0"
-END
-2 TEXTINCLUDE
+1 TEXTINCLUDE
BEGIN
"#include ""windows.h""\r\n"
"\0"
END
-3 TEXTINCLUDE
+2 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
diff --git a/automake.sh b/automake.sh
index cde2cbb9f..06bd08d51 100755
--- a/automake.sh
+++ b/automake.sh
@@ -1,81 +1,47 @@
-#!/usr/bin/env sh
-
-echo "Building SpiderMonkey..."
-cd spidermonkey
-if [ "$(uname)" = "FreeBSD" ]
+#!/bin/sh
+
+# Support optional argument: -b Debug/Release
+buildtype="Release"
+while getopts b: flag
+do
+ case "${flag}" in
+ b) buildtype=${OPTARG};;
+ esac
+done
+
+echo "Creating Build directory"
+cd make/cmake
+mkdir -p build
+cd build
+
+echo "Creating Make Files"
+if [ "$(uname)" = "Darwin" ]
then
- gmake -f Makefile.ref DEFINES=-DHAVE_VA_LIST_AS_ARRAY CC=clang
-else
- make -f Makefile.ref DEFINES=-DHAVE_VA_LIST_AS_ARRAY CC=gcc
-fi
-
-ev=$?
-if [ $ev -ne 0 ]; then
- echo "Unable to build SpiderMonkey! Exiting..."
- exit $ev
-else
- echo "Done building SpiderMonkey."
-fi
-
-echo "Creating JavaScript library..."
-if [ "$(uname)" = "Darwin" ] # macOS
-then
- libtool -static -o libjs32.a -s Darwin_DBG.OBJ/*.o
- cp Darwin_DBG.OBJ/jsautocfg.h ./
-elif [ "$(uname)" = "FreeBSD" ]
-then
- ar rcs libjs32.a FreeBSD_DBG.OBJ/*.o
- cp FreeBSD_DBG.OBJ/jsautocfg.h ./
-elif [ "$(expr substr $(uname -s) 1 5)" = "Linux" ]
-then
- # Linux
- ar -r libjs32.a Linux_All_DBG.OBJ/*.o
- cp Linux_All_DBG.OBJ/jsautocfg.h ./
-fi
-
-ev=$?
-if [ $ev -ne 0 ]; then
- echo "Unable to create JavaScript library! Exiting..."
- exit $ev
-else
- echo "Done creating JavaScript library."
+ # Mac OS X
+ cmake .. -DCMAKE_BUILD_TYPE=$buildtype -G"Unix Makefiles"
+else
+ cmake .. -DCMAKE_BUILD_TYPE=$buildtype
fi
-echo "Bulding zlib..."
-cd ../zlib
-make distclean
-./configure && make
+echo "Building UOX3 ($buildtype)..."
+cmake --build . --config $buildtype
ev=$?
if [ $ev -ne 0 ]; then
- echo "Unable to build zlib! Exiting..."
- exit $ev
-else
- echo "Done building zlib."
-fi
-
-echo "Building UOX3..."
-cd ../source
-if [ "$(uname)" = "FreeBSD" ]
-then
- gmake
-else
- make
-fi
-
-ev=$?
-if [ $ev -ne 0 ]; then
- echo "Unable to build UOX3! Exiting..."
- cd ..
+ echo "Unable to build UOX3 ($buildtype)! Exiting..."
+ cd ../../..
exit $ev
else
if [ -f ./uox3 ]; then
- cp uox3 ..
+ cp uox3 ../../..
echo "Done! You should now find the compiled uox3 binary in the root UOX3 project directory. Copy this binary"
echo "to a separate directory dedicated to running your UOX3 shard, along with the contents of the UOX3/data directory,"
- echo "to avoid potential git conflicts and accidental overwriting of data when pulling UOX3 updates in the future."
+ echo "to avoid potential git conflicts and accidental overwriting of data when pulling UOX3 updates in the future."
+ cd ../../..
+ rm -R make/cmake/build/
+ exit $ev
else
echo "uox3 program not found! Please review the build status."
+ cd ../../..
fi
-fi
-cd ..
+fi
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
index 96d6fb542..683d41ce3 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -22,12 +22,12 @@ UOX3 Documentation
-
Last Updated: 22. November, 2022
+
Last Updated: 11. December, 2022
Written for UOX3 Version: v0.99.6-RC1
@@ -60,6 +60,14 @@ UOX3 Documentation
Latest Documentation Updates
+
December 11th, 2022
+
+
November 24th, 2022
+
+ Updated UOX.INI Settings section with details on additional settings: BLOODDECAYTIMER, BLOODDECAYCORPSETIMER, CORESHARDERA, ARMORCALCULATION, STRENGTHDAMAGEBONUS, TACTICSDAMAGEBONUS, ANATOMYDAMAGEBONUS, LUMBERJACKDAMAGEBONUS, RACIALDAMAGEBONUS, DAMAGEBONUSCAP, SHIELDPARRY, WEAPONPARRY, WRESTLINGPARRY, COMBATHITCHANCE, GLOBALRESTOCKMULTIPLIER, SHOWREPUTATIONTITLEINTOOLTIP, SHOWGUILDINFOINTOOLTIP, SHOWNPCTITLESINTOOLTIPS, SHOWNPCTITLESOVERHEAD, SHOWINVULNERABLETAGOVERHEAD, SHOWRACEWITHNAME, SHOWRACEINPAPERDOLL, MAXPLAYERPACKWEIGHT, MAXPLAYERBANKWEIGHT, FORCENEWANIMATIONPACKET, CASTSPELLSWHILEMOVING
+
August 24th, 2022
Made it easier to find the Frequently Asked Questions section of the document
@@ -1025,8 +1033,8 @@ The Community Discord
Determines if support for the UOGateway Info Request Service is enabled.
-
CUOENABLED =0
- Determines if support for the ConnectUO Server Poll Packet request is enabled.
+
FREESHARDSERVERPOLL =0
+ Determines if support for the Freeshard Server Poll Packet request is enabled.
RANDOMSTARTINGLOCATION =0
@@ -1312,6 +1320,119 @@
The Community Discord
NPCFLAGUPDATETIMER =5
Interval in seconds between each time NPC flags are updated.
+
+
BLOODDECAYTIMER =3
+ Time in seconds it takes small blood splatter on ground spawned during combat to decay. Defaults to 3 seconds.
+
+
+
BLOODDECAYCORPSETIMER =210
+ Time in seconds it takes larger blood splatter on ground spawned upon death to decay. Defaults to half the duration of the default corpse decay timer.
+
+
+
+
+ [expansion settings]
+
+
Supported era values: core, t2a, uor, td, lbr, pub15, aos, se, ml, sa, hs, tol Note: A value of 'core' inherits whatever is set in CORESHARDERA
+
+
CORESHARDERA =pub15
+ Defines the "core" era of the shard. Defaults to pub15 (Publish 15).
+
+ any - determines which Item/NPC DFNs gets loaded, based on tags like GETT2A, GETPUB15
+ uor or later - enables bonus hit chance for archery via ARCHERYHITBONUS setting
+ pub15 or earlier - final combat damage value reduced by half
+
+
+
+
ARMORCALCULATION =core
+ Defines era to base armor calculations on
+
+ pub15 or earlier - different armor pieces contribute different percentage of the total Armor Rating
+ aos or later - each armor piece contribute to sum total of Physical Resistance, and other elemental resistance stats
+
+
+
+
STRENGTHDAMAGEBONUS =core
+ Defines era to base strength damage bonus on
+
+ uor or earlier - 20% damage bonus based on strength, capped at 200 strength
+ td or later - 35% damage bonus based on strength if 100 strength or more, otherwise 30% damage bonus
+
+
+
+
TACTICSDAMAGEBONUS =core
+ Defines era to base tactics damage bonus on
+
+ pub15 or earlier - bonus = Tactics skill + 50
+ aos or later - 68.75% damage bonus if GM Tactics, 62.5% bonus if below
+
+
+
+
ANATOMYDAMAGEBONUS =core
+ Defines era to base anatomy damage bonus on
+
+ uor or earlier - bonus = Anatomy / 5 vs NPCs, Anatomy / 2.5 vs Players
+ td or later - 30% damage bonus at GM anatomy, up to 20% below GM
+ ml or later - 50% + 5 damage bonus at GM anatomy, up to 50% below GM
+
+
+
+
LUMBERJACKDAMAGEBONUS =core
+ Defines era to base lumberjacking damage bonus on
+
+ uor or earlier - 35% damage bonus at GM skill, up to 25% below GM
+ td or later - 30% damage bonus at GM skill, up to 20% below GM
+ hs or later - 10% chance of 100% damage bonus
+
+
+
+
RACIALDAMAGEBONUS =core
+ Defines era to base racial damage bonus on
+
+ sa or later - Gargoyles gain +15% damage bonus per each 20 HP lost
+
+
+
+
DAMAGEBONUSCAP =core
+ Defines era to base damage bonus cap on
+
+ pub15 or earlier - No cap on damage bonus multiplier
+ aos or later - Total damage bonus multiplier capped at 300% higher than base damage
+
+
+
+
SHIELDPARRY =core
+ Defines era to base shield parry calculations on
+
+ t2a - chance to block is parryskill / 2. shield absorbs damage equivalent of AR/2 for melee, or equivalent of AR for archery
+ uor to pub15 - higher AR equals lower block chance, but more damage absorbed.
+ aos or later - chance to block dependent on parry skill vs bushido skill, with dex modifier
+
+
+
+
WEAPONPARRY =core
+ Defines era to base weapon parry calculations on
+
+ aos or later - chance to parry with weapon based on parry skill and bushido skill, with a dex modifier, 16.6% chance weapon will take damage from parrying
+ ml or later - chance to parry with weapon based on parry skill and bushido skill, with a dex modifier, 5% chance weapon will take damage from parrying, or 75% if opponent has mace
+
+
+
+
WRESTLINGPARRY =core
+ Defines era to base wrestling parry calculations on
+
+ tol or later - From 12.5% chance (at GM wrestling, increases with higher skill) that an NPC will parry an attack
+
+
+
+
COMBATHITCHANCE =core
+ Defines era to base combat hit chance calculations on
+
+ t2a to pub15 - hit chance based on attacker's skill vs defender's skill. No minimum chance to hit
+ uor to pub15 - Additional bonus hit chance for archery
+ aos to tol - hit chance based on attacker's skill (and hit chance increase) vs defender's skill (and defense chance increase). Minimum 2% chance to hit
+
+
@@ -1363,12 +1484,16 @@ The Community Discord
SELLBYNAME =0
- Determines if items are sold by their name, not just ID/Colour.
+ Determines if items are sold by their name, not just ID/Colour. Recommended to leave off.
SELLMAXITEMS =5
Maximum number of items that can be sold to a vendor at a time.
+
+
GLOBALRESTOCKMULTIPLIER =1
+ Global multiplier used to alter how many items NPC shopkeepers will restock. Defaults to 1, which means RESTOCK values in item definitions are taken at face value.
+
BANKBUYTHRESHOLD =2000
Defines the lower limit for when a purchase will withdraw money from bank instead of backpack
@@ -1492,6 +1617,35 @@
The Community Discord
BASICTOOLTIPSONLY =0
If enabled, tooltips will only show name and weight of items
+
+
+
SHOWREPUTATIONTITLEINTOOLTIP =1
+ If enabled, shows player's reputation title in tooltip. Defaults to 1
+
+
+
SHOWGUILDINFOINTOOLTIP =1
+ If enabled, shows player's guild info in tooltip. Defaults to 1
+
+
+
SHOWNPCTITLESINTOOLTIPS =1
+ If enabled, shows NPC titles in tooltip. Defaults to 1
+
+
+
SHOWNPCTITLESOVERHEAD =1
+ If enabled, shows NPC titles over their heads. Defaults to 1
+
+
+
SHOWINVULNERABLETAGOVERHEAD =1
+ If enabled, shows invulnerable tags over the head of characters. Defaults to 0
+
+
+
SHOWRACEWITHNAME =1
+ If enabled, shows a character's race along with their name. Defaults to 1
+
+
+
SHOWRACEINPAPERDOLL =1
+ If enabled, shows a character's race in the paperdoll. Defaults to 1
+
GLOBALITEMDECAY =1
Toggles decay on/off on a global scale. Does not remove decay flag from items, only stops them from decaying
@@ -1524,6 +1678,18 @@
The Community Discord
MAXPLAYERBANKITEMS =125
Sets max amount of items players can keep in their bank box.
+
+
MAXPLAYERPACKWEIGHT =40000
+ Sets max weight capacity in stones for player backpacks (including items in sub-containers). 40000 = 400.00 stones
+
+
+
MAXPLAYERBANKWEIGHT =160000
+ Sets max weight capacity in stones for player bankboxes (including items in sub-containers). 160000 = 1600.00 stones
+
+
+
FORCENEWANIMATIONPACKET =1
+ If enabled (default), forces the use of the new animation packet for playing various character animations for both NPCs in general and for player characters connected with client v7.0.0.0+
+
MAPDIFFSENABLED =0
If enabled, server will attempt to load diff files, and send "Enable Map-diff files" packet to client to also load these. Disabled by default.
@@ -1927,6 +2093,10 @@
The Community Discord
HIDESTATSFORUNKNOWNMAGICITEMS =1
Toggles whether item stats for unidentified magic items are hidden from tooltips
+
+
CASTSPELLSWHILEMOVING =0
+ Toggles whether spells can be cast while moving, without ever having to stop!
+
@@ -4548,184 +4718,146 @@ Step 4 - Convert UOP Files to MUL
Compiling UOX3 Source
-
Follow the steps below for your preferred platform if you wish to download and compile the UOX3 source directly from GitHub yourself.
-
Windows Users
-
Step 1 - Clone the UOX3 Git Repository
-
-
Using GitHub Desktop
-
-
- Download and install GitHub Desktop . If you already have another tool for git installed, you can use that instead.
- Run GitHub Desktop (or your preferred git tool) and click File->Clone Repository from the menu.
- Click the URL tab, enter https://github.com/UOX3DevTeam/UOX3.git , then provide a local path for where you want the UOX3 git repository cloned on your drive.
- Hit the Clone button to clone the stable branch of the UOX3 git repository to the specified local path, along with the latest verified compatible version of SpiderMonkey (v1.7.0 ).
-
-
-
Checking out Other Branches
-
-
If you'd rather grab another branch of the git repository, like the develop branch where most updates get pushed first before being merged into the master branch, you can click the Current branch dropdown menu in GitHub Desktop and select the branch you wish to check out. If you're out to do some code development, or just want to get at the latest possible changes, be sure to select the develop branch instead of the main/master one!
-
-
-
Step 2 - Compile UOX3
-
-
Option A - Visual Studio 2017/2019
+
Follow the steps below for your preferred platform if you wish to download and compile the UOX3 source directly from GitHub yourself. These instructions are also available in UOX3's GitHub repository .
+
+
Step 1: Set up a Build Environment
+
First, setup a proper build environment with the various tools needed to clone and compile UOX3.
+
+
Install build tools
-
This option will let you use Visual Studio solution/project files to compile both UOX3, SpiderMonkey and zlib with Visual Studio's default VC++ compiler. Note that you can download the Free Community Edition of Visual Studio if you don't have it already. This approach also embeds SpiderMonkey directly inside UOX3 for a slightly larger (~1-2MB) executable, instead of requiring a separate DLL file, and comes with options for compiling either 32-bit or 64-bit (default) versions of UOX3.
-
Note: You'll need to install "Desktop development with C++" via the Visual Studio Installer if you don't have it already, along with the option for this titled MSVC v141 - VS 2017 C++ x64/x86 build tools (v14.16)
-
SpiderMonkey
-
- Navigate to the UOX3\spidermonkey folder and open SpiderMonkey.sln in Visual Studio.
- Make sure you have js32 selected in the Solution Explorer, then select Release and either x64 (64-bit) or Win32 (32-bit) in the Solution Configuration/Platform dropdown menus
- Click Build > Build js32 from the menu.
- Visual Studio will compile SpiderMonkey and create spidermonkey\Release\x64 (64-bit) or spidermonkey\Release\x86 (32-bit) folders with the compiled js32.lib library file contained within. No further actions are necessary here, so you can close the SpiderMonkey VS Solution.
-
-
zlib
-
- Navigate to the UOX3\zlib folder and open zlib.sln in Visual Studio.
- Select Release and either x64 (64-bit) or Win32 (32-bit) in the Solution Configuration/Platform dropdown menus
- Click Build > Build zlib-static from the menu.
- Visual Studio will compile zlib and create zlib\x64\Release (64-bit) or zlib\x86\Release (32-bit) folders with the compiled zlib-static.lib library file contained within. No further actions are necessary here, so you can close the zlib VS Solution.
-
-
UOX3
-
- Open UOX3_Official.sln from the UOX3\source folder.
- Make sure you have UOX3_Official selected in the Solution Explorer, then select either Release or Debug , and either x64 (64-bit) or Win32 (32-bit) in the Solution Configuration/Platform dropdown menus , or via Build -> Configuration Manager .
- Select Build -> Build UOX3_Official to start compiling UOX3. When done, you'll find UOX3.exe in either UOX3\source\Release\x64 (or \x86) or UOX3\source\Debug\x64 (or \x86) , depending on your choices in the previous step.
-
-
-
Adding SpiderMonkey/zlib references in Configuration Manager
-
-
If VS give you link errors when attempting to build UOX3, references to SpiderMonkey or zlib might have gone missing! Try the following steps to add them back.
-
- Right click on UOX3_Official in the Solution Explorer, and select Properties .
- With the desired configuration (ex: Release, x64) selected at the top of the panel, add references to SpiderMonkey and zlib in these sections:
+
+ Windows - Download and install Community Edition of Visual Studio 2017 or 2022 .
- VC++ Directories > Include Directories (add path to SpiderMonkey and zlib root folders)
- VC++ Directories > Library Directories (add path to SpiderMonkey Release\x64 or Release\x86 folder, as well as zlib \x64\Release or \x86\Release folder, depending on desired configuration)
- VC++ Directories > Source Directories (add path to SpiderMonkey and zlib root folder)
- Linker > Additional Library Dependencies (add path to SpiderMonkey Release\x64 or Release\x86 folder, as well as zlib \x64\Release or \x86\Release , depending on desired configuration)
+ Be sure to also install Desktop development with C++ via the Visual Studio Installer, along with the individual component titled VC++ 2017 version 15.9 v14.16 latest v141 tools (VS2017) or MSVC v143 - VS 2022 C++ x64/x86 build tools (VS2022). CMake is included for command-line builds.
- Press apply!
- Repeat process for both Release and Debug configurations (chosen at top of panel), then retry the UOX3 build process!
-
-
+
Linux (Debian-based) - Run sudo apt install build-essentials cmake in a Terminal: (or use your Linux distro's package manager)
+
FreeBSD - Run pkg install cmake in a Terminal. Alternatively, build cmake via ports if desired.
+
macOS - Download Xcode (for building with an IDE) via the App Store, and/or CMake (for command-line builds)
-
-
Option B - Visual Studio 2017/2019 and CMake
+
+
Install Git
-
This option requires installing the Visual Studio toolset named Linux development with C++ and the component called Visual C++ tools for CMake and Linux . Use the Visual Studio Installer to modify your install of Visual Studio if you don't already have these installed! This approach compiles SpiderMonkey to a separate DLL (js32.dll ) file that needs to live inside the same folder as the main UOX3 executable, and currently only supports compiling a 32-bit version of UOX3.
-
- Start Visual Studio and use File > Open > CMake and select CMakeLists.txt in the root project folder (Example: D:\UOX3). Don't open the similarly named file in the source folder directly.
- After Visual Studio is done loading the project and has generated some necessary files, select CMake > Change CMake Settings > UOX3 from the toolbar menu, and select either x86-Debug or x86-Release depending on what kind of build you want to make - or do this using the Solution Configuration select menu.
- When Visual Studio is done switching to the new configuration, select CMake > Build All from the toolbar menu to start compiling UOX3.
- When done, you'll find UOX3.exe and js32.dll in a subfolder named out of the root project folder, more specifically /UOX3/out/build/x86-Debug or x86-Release , based on the selected configuration.
- Note that the js32.dll file must be copied to the same folder as UOX3.exe.
-
+
+ Windows/macOS - Grab GitHub Desktop or your preferred git tool
+ Linux - Run sudo apt install git in a Terminal.
+ FreeBSD - Run pkg install git in a Terminal. Alternatively, build git via ports if desired.
-
Once this process is done, you can copy your new UOX3.exe (and if using CMake, js32.dll ) file from the appropriate output folders (depending on which method and configuration you used) to the root folder of your actual UOX3 project. You'll also need to copy the files and folders contained within the data subfolder of the UOX3 repository, if you don't already have these.
-
It is recommended to run your UOX3 shard from a separate, dedicated folder instead of the data folder in your local UOX3 git repository, to avoid potential git conflicts and accidental overwrites when pulling updates to UOX3 from GitHub in the future.
-
Once you have all the files in place, you can follow the regular steps listed under Installation and Setup > Configuring Your UOX3 Shard to finish your UOX3 setup!
-
Linux/macOS Users
-
Step 1 - Clone the UOX3 Git Repository
-
-
Using git and Terminal
+
+
Step 2: Clone the UOX3 Git Repository
+
Next up, clone the UOX3 git repository, which also includes the latest verified compatible version of SpiderMonkey (v1.7.0) and a minimal set of files required to compile zlib-1.2.11.
+
+
Using GitHub Desktop (Windows/macOS)
-
First step, open a new terminal and enter the following commands:
-
- (Linux) sudo apt install git - This will install git if not already installed (Ubuntu/Debian-based Linux variants). If you're using a non-Debian flavour of Linux, use the default package manager that comes with it to install git instead.
- (macOS) xcode-select --install - This will install git if not already installed, along with required make and gcc tools
- git clone https://github.com/UOX3DevTeam/UOX3.git - This will clone the stable branch of the UOX3 git repository into a subdirectory of the current directory you're in, named UOX3. The latest verified compatible version of SpiderMonkey (v1.7.0 ) is also included, as well as a minimal set of files required to compile zlib-1.2.11.
-
-
-
Checking out Other Branches
-
-
If you'd rather grab another branch of the git repository, like the develop branch where most updates get pushed first before being merged into the master branch, you can use the following command *after* completing the previous step: git checkout develop
-
+
+ Run GitHub Desktop and click File->Clone Repository from the menu.
+ Enter https://github.com/UOX3DevTeam/UOX3.git in the URL tab, and provide a local path for storing the cloned repo on your drive.
+ Hit the Clone button to clone the stable master branch of UOX3 to the specified local path
-
-
(macOS alternative) Using GitHub Desktop
+
+
Using Command Line git (Linux/FreeBSD/any)
-
- Download and install the macOS version of GitHub Desktop .
- Run GitHub Desktop and click File->Clone Repository from the menu.
- Click the URL tab, enter https://github.com/UOX3DevTeam/UOX3.git , then provide a local path for where you want the UOX3 git repository cloned on your drive.
- Hit the Clone button!
-
+
+ Run git clone https://github.com/UOX3DevTeam/UOX3.git in a Terminal to clone the stable master branch of UOX3 into a subdirectory of the current directory you're in.
-
Step 2 - Compile UOX3
-
-
Compiling with GNU Make and GCC (v9.x and above)
+
+
(Optional) Checking out Other Branches
+
+
If you'd rather grab another branch of the git repository, like the develop branch where most updates get pushed first before being merged into the master branch, you can use the following command after completing the previous step: git checkout develop
+
GitHub Desktop users can change the active branch via the Current Branch dropdown menu in GitHub Desktop.
+
+
+
Step 3: Compile UOX3
+
Finally, compile UOX3 using the build environment you setup above
+
+ Windows - Open UOX3\make\VS2022\uox3.sln (VS2022), choose Release/Debug from dropdown menu, and hit Build -> Build UOX3
+ Linux/FreeBSD - Run ./automake.sh in a Terminal, from the root of the cloned UOX3 repository.
+ macOS - Open UOX3/make/XCode/uox3/uox3.xcworkspace , select Build
+
+
+
Manual command-line instructions for CMake
-
You'll need a couple tools before you can compile UOX3 on Linux, like GNU Make (4.2.1 or higher recommended) and gcc (v9.x or higher recommended). Install these through your favourite package manager or through your flavour of Linux' variant of the following terminal command (specific to Debian/Ubuntu Linux flavours):
+
If you don't wish to rely on the automake.sh script, but want control over the process yourself, follow these steps (same as what automake.sh does) in a Terminal:
- (Linux only) sudo apt install build-essential
+ Navigate to root of cloned UOX3 git repository
+ cd make/cmake
+ mkdir -p build
+ cd build
+ cmake .. -DCMAKE_BUILD_TYPE=Release (Linux/FreeBSD)
+ cmake .. -DCMAKE_BUILD_TYPE=Release -G"Unix Makefiles" (macOS)
+ cmake --build . --config Release
-
Once these tools are in place, navigate to the UOX3 project directory in your terminal and execute the following commands from the project's root directory, in order:
-
- ./automake.sh - First compiles the SpiderMonkey JS library bundled with UOX3, then compiles the included zlib library, and finally compiles the actual UOX3 build, before copying the compiled binary to the root UOX3 project directory.
-
+
-
-
Special note for users of Debian/GCC versions below 9.x
+
+
Manual command-line instructions for GCC/make/gmake
+
+
If you'd rather use GCC (v9.x or higher)/make (GNU Make 4.2.1 or higher) than CMake, you can follow these manual steps. Note that for FreeBSD, this approach requires installing gmake as an alternative to make: pkg install gmake
+
+
First, navigate to spidermonkey directory and run these commands:
+ make -f Makefile.ref DEFINES=-DHAVE_VA_LIST_AS_ARRAY CC=gcc (Linux)
+ ar -r libjs32.a Linux_All_DBG.OBJ/*.o (Linux)
+ cp Linux_All_DBG.OBJ/jsautocfg.h ./ (Linux)
+ gmake -f Makefile.ref DEFINES=-DHAVE_VA_LIST_AS_ARRAY CC=clang (FreeBSD)
+ ar rcs libjs32.a FreeBSD_DBG.OBJ/*.o (FreeBSD)
+ cp FreeBSD_DBG.OBJ/jsautocfg.h ./ (FreeBSD)
+
+
Next, head to the zlib directory:
+ cd ../zlib
+ make distclean
+ ./configure
+ make
+
+
Finally, head to UOX3/source directory:
+ cd ../source
+ make (Linux)
+ gmake (FreeBSD)
+
+
Special note for users of Debian/GCC versions below 9.x
-
If your version of gcc is below 9.x, you'll need to add -lstdc++fs in Makefile to include the experimental filesystem library from c++17.:
+
If your version of gcc is below 9.x, you'll need to add -lstdc++fs in Makefile to include the experimental filesystem library from c++17.:
Change the following line (~34) from
$(CXX) $(CXXFLAGS) -o $(TARGET) $^ $(LDFLAGS)
to
$(CXX) $(CXXFLAGS) -o $(TARGET) $^ $(LDFLAGS) -lstdc++fs
-
-
-
Manual Instructions
-
-
If you don't wish to rely on the automake.sh script, but want control over the process yourself, follow these steps (same as what automake.sh does):
-
- cd spidermonkey
- make -f Makefile.ref DEFINES=-DHAVE_VA_LIST_AS_ARRAY CC=gcc
- Linux
-
- ar -r libjs32.a Linux_All_DBG.OBJ/*.o
- cp Linux_All_DBG.OBJ/jsautocfg.h ./
-
- macOS
-
- ar rcs libjs32.a Darwin_DBG.OBJ/*.o
- cp Darwin_DBG.OBJ/jsautocfg.h ./
-
- Next up, compile a static library of the included zlib package:
-
- cd ../zlib
- make distclean
- ./configure
- make
-
- At this point, now cd to the root UOX3 project directory and build UOX3:
-
-
-
-
Once this process is done, you will find the compiled uox3 binary in the root UOX3 directory. You can copy this binary to the directory you intend to run your UOX3 shard from, along with all the files and folders contained in the UOX3/data/ subdirectory.
-
It is recommended to run your UOX3 shard from a separate, dedicated directory instead of the data directory in your local UOX3 git repository, to avoid potential git conflicts and accidental overwrites when pulling updates to UOX3 from GitHub in the future.
-
-
-
Copying Required Files to Dedicated UOX3 Directory
+
+
Instructions for VS2017
-
This is an example of how to copy all required files to a directory called UOX3 in your user account's home directory
-
- navigate to root UOX3 project directory
- mkdir ~/UOX3
- cp uox3 ~/UOX3
- cp -r data/* ~/UOX3
- cd ~/UOX3
-
+ When using VS2017, static libraries of the dependency projects (SpiderMonkey and zlib) need to be compiled first before UOX3 itself can be compiled UOX3 will work:
+
+ SpiderMonkey
+
+ Navigate to the UOX3\spidermonkey\make\VS2017\jscript folder and open jscript.sln in VS2017.
+ Make sure you have jscript selected in the Solution Explorer, then select Release and x64 (64-bit) in the Solution Configuration/Platform dropdown menus
+ Click Build > Build jscript from the menu.
+ Visual Studio will compile SpiderMonkey and create a spidermonkey\make\VS2017\jscript\x64\Release (64-bit) folder with the compiled jscript.lib library file contained within. No further actions are necessary here, so you can close the SpiderMonkey VS Solution.
+
+ zlib
+
+ Navigate to the UOX3\zlib\make\VS2017 folder and open zlib.sln in VS2017.
+ Select Release and x64 (64-bit) in the Solution Configuration/Platform dropdown menus
+ Click Build > Build zlib-static from the menu.
+ Visual Studio will compile zlib and create a zlib\x64\Release (64-bit) folder with the compiled zlib-static.lib library file contained within. No further actions are necessary here, so you can close the zlib VS Solution.
+
+ UOX3
+
+ Navigate to the UOX3\make\VS2017 folder and open uox3.sln in VS2017.
+ Make sure you have UOX3 selected in the Solution Explorer, then select Release and x64 (64-bit) in the Solution Configuration/Platform dropdown menus, or via Build -> Configuration Manager.
+ Select Build -> Build UOX3 to start compiling UOX3. When done, you'll find UOX3.exe in UOX3\make\VS2017\Release\x64 .
+
-
Once you have all the files in place, you can follow the regular steps listed under Installation and Setup > Configuring Your UOX3 Shard to finish your UOX3 setup.
-
+
UOX3 Compiled! Now what?
+
Once done compiling, you can copy the compiled UOX3 binary/executable to the directory you intend to run your UOX3 shard from, along with all the files and folders contained in the UOX3/data subdirectory. Where you'll find the compiled UOX3 binary/executable depends on your platform and build method. Examples:
+
+ Windows - Compiled UOX3.exe can be found in UOX3/make/VS2022/x64/Release
+ Linux/FreeBSD - Compiled uox3 binary can be found in root UOX3 repository
+ macOS - Compiled uox3 binary can be found in UOX3\make\XCode\Build\Products\Release
+
+
It is recommended to run your UOX3 shard from a separate, dedicated directory instead of the data directory in your local UOX3 git repository, to avoid potential git conflicts and accidental overwrites when pulling updates to UOX3 from GitHub in the future.
+
Once you have all the files in place, you can follow the regular steps listed under Installation and Setup > Configuring Your UOX3 Shard to finish your UOX3 setup!
@@ -4746,8 +4878,8 @@ Step 2 - Compile UOX3
Any contributions that involve making changes to UOX3 can either be posted in the Submissions - Fixes & Improvements section of the UOX3.org forums, or can be submitted as a Pull Request on UOX3's GitHub page , for those familiar with that workflow. Do note that any such contributions will be reviewed for quality and fit with the project before being accepted and merged into the core UOX3 project.
If it so happens, that your code or script contribution is not approved for inclusion in the core UOX3 project, you can still post it as custom additions/tweaks in other parts of the UOX3.org forums, for other users to download! Alternatively, if your changes are extensive enough, you can do what many others have done before you and branch off the main UOX3 project to create something entirely new and exciting!
-
+ A Note about Coding Styles and Practices
+ Before venturing on a grand coding adventure, pause for a moment and take a peek at the UOX3 Style Guide for Code (WIP). Sticking closely to the guidelines in that document increases the chance that one's code submissions can be included/merged into the main UOX3 codebase, and also helps ensure that all (new, if not all old) code follows a consistent style. This makes it easier to read and understand the codebase.
@@ -5273,6 +5405,10 @@ Available NPC AI types
Passive AI that doesn't fight back or react to being attacked.
8 - AI_BANKER
Bankers give players access to their bank boxes when saying the word "bank" nearby. Tip: This can also be used on players to ALWAYS give them access to their bankbox ;)
+ 10 - AI_CASTER
+ Same as AI_FIGHTER, but will try to stay at casting range.
+ 11 - AI_EVIL_CASTER
+ Same as AI_EVIL, but will try to stay at casting range.
17 - AI_PLAYERVENDOR
Used by playervendors placed by players at their houses to sell items to other players.
32 - AI_PET_GUARD
@@ -6430,6 +6566,10 @@
Manage Event Decorations
def =[defense] or [lowdef highdef]
Set Physical-resist/defense value - either fixed or random range
+
+
defbonus =[minDefenseBonus maxDefenseBonus]
+ Set defense/physical resistance bonus applied on top of standard def (maxDefenseBonus is optional, but if specified, randomizes). Should be applied after the def tag.
+
detectinghidden =[skillpoints] or [lowskill highskill]
Set Detecting Hidden skill (0 - 1000)
@@ -6446,6 +6586,10 @@
Manage Event Decorations
elementresist =[fire cold energy poison]
Set Element-resist stats (0 - 1000 for each stat)
+
+
erbonus =[fire cold energy poison]
+ Set elemental resistance bonus applied on top of standard elementresist. Should be applied after the elementresist tag.
+
emotecolour =[color]
Set the default colour (in hex or decimal) for the NPC's emote text
@@ -6526,6 +6670,10 @@
Manage Event Decorations
get =[npcSectionID]
Inherit properties from NPC defined by npcSectionID in NPC DFNs
+
+
gett2a/gettd/getuor/getlbr/getpub15/getaos/getse/getml/getsa/gettol =[npcSectionID]
+ Inherit properties from NPC defined by npcSectionID in NPC DFNs, based on selected era in expansion settings of uox.ini
+
gold =[gold] or [mingold maxgold]
Set the amount of gold this NPC carries - either fixed or random range
@@ -7021,6 +7169,10 @@
Manage Event Decorations
def =[defense]
Set physical resist/armor rating value of item. Primarily used with wearables like clothes, armour, etc.
+
+
defbonus =[minDefenseBonus maxDefenseBonus]
+ Set defense/physical resistance bonus applied on top of standard def (maxDefenseBonus is optional, but if specified, randomizes). Should be applied after the def tag.
+
dex =[statpoints]
Minimum dexterity required to equip item
@@ -7049,10 +7201,18 @@
Manage Event Decorations
elementresist =[fire cold energy poison]
Set fire, cold, energy and poison resistance values (0 - 1000, where 1000 = 100.0)
+
+
erbonus =[fire cold energy poison]
+ Set elemental resistance bonus applied on top of standard elementresist. Should be applied after the elementresist tag.
+
get =[itemSectionID]
Inherit properties of item with specified itemSectionID from item DFNs
+
+
gett2a/gettd/getuor/getlbr/getpub15/getaos/getse/getml/getsa/gettol =[itemSectionID]
+ Inherit properties from Item defined by itemSectionID in Item DFNs, based on selected era in expansion settings of uox.ini
+
glow =[0/1]
Attaches a hidden lightsource to the item to make it appear to glow
diff --git a/docs/jsdocs.html b/docs/jsdocs.html
index c453910c2..7d2241ef2 100644
--- a/docs/jsdocs.html
+++ b/docs/jsdocs.html
@@ -23,7 +23,7 @@
UOX3 JS Engine Docs
@@ -4041,7 +4041,7 @@
January 9th, 2022
Prototype
-
function onTooltip( myObject )
+
function onTooltip( myObject, pSocket )
Purpose
@@ -4054,7 +4054,7 @@
January 9th, 2022
Example of usage
// Display remaining uses left in a tooltip, based on item's UsesLeft tag
-function onTooltip( myObj )
+function onTooltip( myObj, pSocket )
{
var tooltipText = "";
var usesLeft = myObj.GetTag( "UsesLeft" );
@@ -8740,7 +8740,7 @@ January 9th, 2022
Purpose
-
Get/Set the time in milliseconds until specified timer expires for a Character object
+
Get a timestamp for when timer will run out, or set the time in milliseconds until specified timer expires for a Character object
Notes
@@ -8755,7 +8755,7 @@
January 9th, 2022
Timer.SPELLTIME // Time until spell cast is completed. Can be set to 0 to interrupt
Timer.SPELLRECOVERYTIME // Time until player has recovered from casting a spell
Timer.ANTISPAM // Time until next speech message can be sent (for anti spam purposes)
-Timer.CRIMFLAG // Time until criminal flag runs out
+Timer.CRIMFLAG // Time until criminal flag runs out (should be set after criminal flag itself)
Timer.MURDERRATE // Time until next murder count decay
Timer.PEACETIMER // Time until character can re-enter combat after being affected by peacemaking
Timer.FLYINGTOGGLE // Time until next time flying ability can be toggled for gargoyles
@@ -8773,10 +8773,12 @@
January 9th, 2022
Example of usage
-
// Get remaining time in milliseconds before criminal flag expires
-var criminalTimer = myChar.GetTimer( Timer.CRIMFLAG );
+ // Get a timestamp for when criminal flag expires, and spit out milliseconds left
+var criminalTimestamp = myChar.GetTimer( Timer.CRIMFLAG );
+myChar.TextMessage(( myTarget.GetTimer( Timer.CRIMFLAG ) - GetCurrentClock() ).toString() );
-// Set time from now in milliseconds that criminal flag will last
+// Set time from now in milliseconds that criminal flag will last, after making character a criminal
+myChar.criminal = true;
myChar.SetTimer( timer.CRIMFLAG, 3000 );
@@ -10478,7 +10480,7 @@
January 9th, 2022
Purpose
-
Adds a gump on the current gump (ie any image in the gumps part of InsideUO). A fourth parameter - hue - is optional, and can be used to set the color of the gump.
+
Adds a gump on the current gump (ie any image in the Gumps-tab of a tool like UOFiddler ). A fourth parameter - hue - is optional, and can be used to set the color of the gump.
Example of usage
@@ -10499,7 +10501,7 @@
January 9th, 2022
Purpose
-
Adds a gump on the current gump (ie any image in the gumps part of InsideUO). Same as AddGump, but with an additional parameter for hue/color.
+
Adds a gump on the current gump (ie any image in the Gumps-tab of a tool like UOFiddler ). Same as AddGump, but with an additional parameter for hue/color.
Example of usage
@@ -12977,8 +12979,10 @@
January 9th, 2022
Example of usage
-
// Get remaining time in milliseconds until next time player can use an object
-var objectDelay = mySock.GetTimer( Timer.SOCK_OBJDELAY );
+ // Get timestamp for when player can next use an object, and spit out remaining time in milliseconds
+Get a timestamp for when criminal flag expires, and spit out milliseconds left
+var objectDelayTimestamp = myChar.GetTimer( Timer.SOCK_OBJDELAY );
+myChar.TextMessage(( myTarget.GetTimer( Timer.SOCK_OBJDELAY ) - GetCurrentClock() ).toString() );
// Set time from now in milliseconds until next time player can use another item
mySock.SetTimer( timer.SOCK_OBJDELAY, 3000 );
@@ -13529,7 +13533,7 @@ Flag/Boolean Types
.criminal (bool, true/false )
- Get/Set whether the character is flagged as a criminal
+ Get/Set whether the character is flagged as a criminal. If set to true, default criminal timer is applied, as defined in the uox.ini setting CRIMINALTIMER. Can override with .SetTimer( Timer.CRIMFLAG, timeInMilliseconds )
after flag has already been set to true.
.dead (bool, true/false )
@@ -13549,7 +13553,7 @@
Flag/Boolean Types
.innocent (bool, true/false )
- Get/Set whether character is flagged as innocent
+ Get/Set whether character is flagged as innocent. If set to false, default criminal timer is applied, as defined in the uox.ini setting CRIMINALTIMER.
.isAwake (bool, true/false )
diff --git a/docs/styleguide.html b/docs/styleguide.html
new file mode 100644
index 000000000..5bd878d1e
--- /dev/null
+++ b/docs/styleguide.html
@@ -0,0 +1,404 @@
+
+
+
+
+
+
+
+
+
+
UOX3 Style Guide for Code
+
+
+
+
+
+
+
+
+
UOX3 Style Guide
+
+
+
+
+
+
+
Last Updated: 24. November, 2022
+
UOX3 Version: v0.99.6-RC1
+
+
+
+
+
+
+
+ About this Style Guide
+
+
+ Latest Updates
+
+
+
This section contains the latest notable updates made to the style guide.
+
+
Latest Documentation Updates
+
+
November 24th, 2022
+
+ Initial version of document completed
+
+
+
+
+
+
+
+ Purpose of This Style Guide
+
+
+
This style provides a common, shared set of (lightweight) guidelines for anyone who wishes to contribute source code and/or scripts to the UOX3 project, in order to help ensure that those contributions follow a standardized approach not only for code style , but also for conventions and practices used in the project. This also improves the maintainability of the project in the future.
+
The UOX3 code base has historically been a hodgepodge of different styles and approaches, written by people with varying programming skills over a period of more than 20 years, and that history highlights the need for a standard that can be followed when working on the project.
+
These guidelines are not meant to be understood as hard requirements , yet the closer to the guidelines that new contributions adhere to, the easier it will be to review any changes in context of the current code base and - if accepted - merge those contributions in.
+
+
+
+
+
+
+
+ Basic Style Guide
+
+ General Guidelines
+
+
+
Above all else, please take to heart the general guidelines listed below and follow them as best you can:
+
+ Write understandable, self-documenting code - Give sensible, descriptive names to classes, functions and variables that clarify their purpose, rather than short and ambiguous names that say nothing about what they are for.
+ Add comments where needed - Use comments to leave hints for the reader of your code if the code is not self-explanatory for the average programmer. If the code you write is so advanced and complex that no one else can understand it by reading it, then comments are crucial for anyone else to be able to maintain it if/once you've lost interest in the project and moved on (as happens).
+ Be consistent with existing code - Make life easy for anyone who needs to read or maintain your code in the future, by adopting the coding style, conventions and practices most commonly used in the project. If the existing code offers two alternatives on how to proceed in this context, choose one of the two; don't introduce a third option.
+ Avoid making unnecessary, sweeping style changes - If possible, avoid making sweeping changes throughout the entire code base that forces everyone else to adopt your own preferred style. Not only is it quite an assumption to make that everyone else on the project will prefer your style, it may also cause problems for anyone who wishes to merge their code changes with yours; instead of comparing differences in a few functions in a few files, they now potentially have thousands of differences to go through!
+ If unsure, ask - If you're unsure if a change would conflict with the guidelines laid out in this Style Guide, don't hesitate to bring it up in Discord or on the UOX3 Community forums to get a second opinion - preferably before you make the change!
+
+
If you have identified a need for a change that conflicts with the above points, or with anything else in this Style Guide, create a new topic on the Communtiy Forums and state your case, or bring it up in the Discord chat. None of these "rules" are etched in stone, they can (and should) be challenged, updated and added to when appropriate.
+
+
+
+
+
+ C++ Target Versions
+
+
+
Currently, any new code written for UOX3 should target C++11 to C++17 , and aim to be cross-platform conforming across Windows, Linux and macOS platforms, when compiled using VS2017-2022 , GCC/G++ v8-9 and/or CMake v? . Avoid using features specific to C++20 or newer, to not introduce additional compiler dependencies and requirements.
+
+
+
+
+
+
+ Cross-Platform Support
+
+
+
UOX3 aims to be cross-platform conformant across (at least) 64-bit Windows, Linux and macOS platforms, with feature parity between each platform. Implementations specific to any one particular platform should be avoided if possible, though there might be exceptions for special cases where platform-specific handling is unavoidable - such as when dealing with console and/or networking.
+
Any code being contributed that does not compile , run and function the same on all the above-mentioned platforms will probably not be approved for inclusion in UOX3 until/unless necessary changes have been made to comply with the above.
+
+
+
+
+
+ Naming Conventions
+
+
+
Use Self-Descriptive Names
+
Always prefer self-descriptive names (skillUsageDelay instead of skUseDel, itemCount instead of ic)
+
Filenames
+
If creation of new source files is necessary, use camelCase when naming the files to make the name more readable in a list of other, perhaps similarly named files. Try to stick close to existing naming practice.
+
Classes/Methods/Functions
+
Use PascalCase for class/function/method names.
+
Variables and Parameters
+
Use camelCase for variables, non-method class/struct members and function/method parameters.
+
+
+
+
+
+
+ Advanced Style Guide
+
+
+
+
+
+
Function/Method Comment Blocks
+
This Style Guide makes no differentiation between functions and methods for the purpose of comment blocks.
+
+ Comment blocks should be added for any new functions or methods added, should describe the purpose of the function/method and provide any extra context that is relevant for future maintainers of the code. For the sake of making the maintenance of comments more manageable, adopt a minimalistic approach where only relevant details are included:
+ //o-----------------------------------------------------------------------------------------------o
+//| Function - CSocket::AddTrigWord()
+//o-----------------------------------------------------------------------------------------------o
+//| Purpose - Adds trigger word to list of trigger words detected in player's speech
+//o-----------------------------------------------------------------------------------------------o
+
Getters/setters that have been grouped together should be commented together , where possible:
+
//o-----------------------------------------------------------------------------------------------o
+//| Function - CSocket::TargetOK()
+//o-----------------------------------------------------------------------------------------------o
+//| Purpose - Gets/Sets socket property to indicate whether waiting for client target
+//o-----------------------------------------------------------------------------------------------o
+auto CSocket::TargetOK( void ) const -> bool
+{
+ return targetok;
+}
+auto CSocket::TargetOK( bool newValue ) -> void
+{
+ targetok = newValue;
+}
+
+
General Comments
+
+ Pay attention to grammar, spelling and punctuation, even in comments
+ Variables in general should have names that are descriptive enough that they'd not need comments, but if comments are needed - add them!
+ For global variables, try to always add a comment to explain what it's used for, and potentially why it needs to be a global variable
+ Don't remove comments added by other maintainers unless the comments in question are no longer relevant/accurate
+ If the use of magic numbers is necessary, add context for the magic number via comments
+ When deciding what to comment or not, try to think from the perspective of people maintaining the code after you're gone. Is it likely that someone will need some extra context to understand your code? Add a comment .
+
+
+
+
+
+
+ Const
+
+
+
+ Make liberal use of const . Any member function that does not modify its object should be const. Any function parameter that references an object, but doesn't actually change it , should be passed as a const reference.
+ For function parameters passed by value, const has no effect on the caller, and is not needed
+ When declaring something as const, follow this pattern: const int *foo (const comes first)
+
+
+
+
+
+
+ Functions
+
+
+
Write Short Functions
+
+ Write short functions, whenever possible. Sometimes it makes sense for a function to be a bit longer, but if the code in a function exceeds ~40 lines, start thinking about whether it could be broken up.
+ Short functions are easier to read, easier to test, easier to debug, and easier to modify.
+
+
+
+
+
+
+ Getters and Setters
+
+
+
+ Group getters and setters for class members together in pairs ; put the getter for X next to the setter for X. Avoid spreading them out to different sections of a file. Grouping them up makes the code easier to read, maintain and debug :
+ auto CItem::GetType( void ) const -> ItemTypes
+{
+ return type;
+}
+auto CItem::SetType( ItemTypes newValue ) -> void
+{
+ type = newValue;
+}
+
+
+
+
+
+
+ Variable Scope
+
+
+
+ Declare local variables when you need to use them , and not a moment sooner. The narrower the scope for a variable, and the closer it is declared to where it is actually used, the easier it becomes to read and understand the code for future code maintainers (or yourself a month from now).
+ If possible initialize variables as they are declared , instead of declaring and then assigning values to them separately, so whoever reads the code can see at a glance both the type and value the variable was initialized to.
+ Example:
+
// Not ideal
+std::string myString;
+myString = "Hello";
+
+// Better
+std::string myString = "Hello";
+
+// Preferred
+auto myString = "Hello"s; // note the 's' at the end
+
+
+ Exception: If the variable is an object, and it's used in a for-loop, declare it outside the for-loop so the constructor and destructor of the object doesn't get invoked multiple times as it loops.
+
+
+
+
+
+
+
+ Auto keyword
+
+
+
+ Use the auto keyword when declaring variables to automatically deduct the variable type based on the initializer. Same can be done with return types for functions. Examples:
+ // Using auto with a variable
+auto myChar = "Hello"; // type is const char* pointer to const char[5] array
+auto myString = "Hello, World!"s; // type is std::string (note the 's' at the end)
+auto myVar = GetMyVarValue(); // type depends on what GetMyVarValue() returns
+
+// Using auto with functions
+auto CItem::SetRegion( UI16 newValue ) -> void
+{
+ regionNum = newValue;
+ UpdateRegion();
+}
+auto CItem::GetRegionNum( void ) const -> UI16
+{
+ return regionNum;
+}
+
+
+
+
+
+
+ Variable Types and Casting
+
+
+
+ Use the UOX3-defined type aliases like UI16, SI32, etc. for different integer types where possible, to increase readability and maintainability of the code. These are defined as follows:
+ using R32 = float;
+using R64 = double;
+using UI08 = std::uint8_t; // 0 to 255
+using SI08 = std::int8_t; // -128 to 127
+using UI16 = std::uint16_t; // 0 to 65535
+using SI16 = std::int16_t; // -32768 to 32767
+using UI32 = std::uint32_t; // 0 to 4294967295
+using SI32 = std::int32_t; // -2147483648 to 2147483647
+using UI64 = std::uint64_t; // 0 to 18446744073709551615
+using SI64 = std::int64_t; // -9223372036854775808 to 9223372036854775807
+Use C++-style casts , and avoid C-style casts. Example:
+ // Good - C++-style cast
+static_cast<R32>( double_value )
+
+// Avoid - C-style cast
+( R32 )double_value
+ When in doubt about how large integer type is needed, prefer the larger type unless(i.e. UI64 over UI32, or SI32 over SI16)
+
+
+
+
+
+
+ Whitespace, Indentation and Braces
+
+
+
Tabs vs Spaces
+
For consistency with the rest of the code base, indent your code using tabs (size: 4), not spaces.
+
Indentation
+
+ Vertical alignment can be done to increase readability in certain situations, like:
+ case CCP_FAME: *vp = INT_TO_JSVAL( gPriv->GetFame() ); break;
+case CCP_KARMA: *vp = INT_TO_JSVAL( gPriv->GetKarma() ); break;
+case CCP_ATTACK: *vp = INT_TO_JSVAL( Combat->calcAtt( gPriv, true )); break;
+case CCP_CANATTACK: *vp = BOOLEAN_TO_JSVAL( gPriv->GetCanAttack() ); break;
+case CCP_BRKPEACE: *vp = INT_TO_JSVAL( gPriv->GetBrkPeaceChance() ); break;
+case CCP_HUNGER: *vp = INT_TO_JSVAL( gPriv->GetHunger() ); break;
+
pStream.ReserveSize( 44 );
+pStream.WriteByte( 0, 0x1C );
+pStream.WriteShort( 1, 44 );
+pStream.WriteLong( 3, 0xFFFFFFFF );
+pStream.WriteShort( 7, 0xFFFF );
+pStream.WriteString( 14, "System", 6 );
+pStream.WriteByte( 20, 0 );
+
+
Whitespace Guidelines
+
+ Spaces inside parentheses
+ ( x, y, z )
+
Spaces after commas in list/function/method parameters
+
void MyFunction( std::string myString, int myInt )
+
Spaces around operators
+
var foo = x - 1;
+var bar = x <= 10;
+
No spaces before parentheses in function or method declarations
+
bool myClass::MyMethod()
+
No spaces before parentheses in control statements
+
if( x == 1 )
+for( int i = 0; i < 10; ++i )
+
No spaces between multiple parentheses in control statements
+
if( foo || ( !bar ))
+if(( x == y ) && ( z != x ))
+
No spaces inside angled or square brackets, except after comma, or between operators
+
[x, y, z]
+static_cast<SI16>
+
+
Braces
+
+ Braces ALWAYS on their own lines (Allman style)
+ if( something )
+{
+ ...
+}
+
+void myFunction( std::string myString )
+{
+}
+
Always use braces with if & else statements, even for one liners, to prevent easy mistakes by future maintainers
+
if( something )
+{
+ // one liner
+}
+
+
Exception to the previous point: Braces can be skipped for one-liners that are intended to return early, continue/break a loop, etc. In those cases, try to leave an empty line after the early return/continue/break and the rest of the code in the function/method in question
+
bool cScript::OnCreate( CBaseObject *thingCreated, bool dfnCreated )
+{
+ if( !ValidateObject( thingCreated ))
+ return false;
+
+ std::string functionName = "onCreateDFN";
+ ...
+}
+
for( auto &MapArea : MapRegion->PopulateList( this ))
+{
+ if( MapArea == nullptr )
+ continue;
+
+ // First remove nearby characters from sight
+ ...
+}
+
+
+
+
+
+
+
+
+
+ Close
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/make/VS2017/uox3.sln b/make/VS2017/uox3.sln
index bdd835a22..e1306244a 100644
--- a/make/VS2017/uox3.sln
+++ b/make/VS2017/uox3.sln
@@ -2,7 +2,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26430.16
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UOX3_Official", "UOX3_Official.vcxproj", "{82A66DAD-C555-416B-94DF-9784AFBB11FC}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uox3", "uox3.vcxproj", "{82A66DAD-C555-416B-94DF-9784AFBB11FC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/make/VS2017/uox3.vcxproj b/make/VS2017/uox3.vcxproj
index 9647dd501..48baf8638 100644
--- a/make/VS2017/uox3.vcxproj
+++ b/make/VS2017/uox3.vcxproj
@@ -33,6 +33,7 @@
{82A66DAD-C555-416B-94DF-9784AFBB11FC}
8.1
+
UOX3
@@ -100,18 +101,18 @@
.\Release\x86\
.\Release\x86\
false
- ..\spidermonkey\Release\x86;..\zlib\Release;$(LibraryPath)
- ..\spidermonkey;..\zlib;$(SourcePath)
- ..\spidermonkey;..\zlib;$(IncludePath)
+ ..\..\spidermonkey\make\VS2017\jscript\Release\;..\..\zlib\make\VS2017\Release;$(LibraryPath)
+ ..\..\spidermonkey;..\..\zlib;$(SourcePath)
+ ..\..\spidermonkey;..\..\zlib;$(IncludePath)
UOX3
NativeRecommendedRules.ruleset
false
false
- ..\zlib\x64\Release;..\spidermonkey\Release\x64;$(LibraryPath)
- ..\zlib;..\spidermonkey;$(SourcePath)
- ..\zlib;..\spidermonkey;$(IncludePath)
+ ..\..\zlib\make\VS2017\x64\Release;..\..\spidermonkey\make\VS2017\jscript\x64\Release;$(LibraryPath)
+ ..\..\zlib;..\..\spidermonkey;$(SourcePath)
+ ..\..\zlib;..\..\spidermonkey;$(IncludePath)
UOX3
NativeRecommendedRules.ruleset
false
@@ -130,16 +131,16 @@
.\Debug\x86\
.\Debug\x86\
true
- ..\spidermonkey\Release\x86;..\zlib\Debug;$(LibraryPath)
- ..\spidermonkey;..\zlib;$(SourcePath)
- ..\spidermonkey;..\zlib;$(IncludePath)
+ ..\..\spidermonkey\make\VS2017\jscript\Debug;..\..\zlib\make\VS2017\Debug;$(LibraryPath)
+ ..\..\spidermonkey;..\..\zlib;$(SourcePath)
+ ..\..\spidermonkey;..\..\zlib;$(IncludePath)
UOX3_debug
true
- ..\spidermonkey\Release\x64;..\zlib\x64\Debug;$(LibraryPath)
- ..\spidermonkey;..\zlib;$(SourcePath)
- ..\spidermonkey;..\zlib;$(IncludePath)
+ ..\..\spidermonkey\make\VS2017\jscript\x64\Debug;..\..\zlib\make\VS2017\x64\Debug;$(LibraryPath)
+ ..\..\spidermonkey;..\..\zlib;$(SourcePath)
+ ..\..\spidermonkey;..\..\zlib;$(IncludePath)
UOX3_debug
.\Debug\x64\
.\Debug\x64\
@@ -154,7 +155,7 @@
true
/J
- $(OutDir)/UOX3_Official.pch
+ $(OutDir)/uox3.pch
$(OutDir)
$(OutDir)
$(OutDir)
@@ -170,17 +171,17 @@
true
- wsock32.lib;ws2_32.lib;js32.lib;zlib-static.lib;%(AdditionalDependencies)
+ wsock32.lib;ws2_32.lib;jscript.lib;zlib-static.lib;%(AdditionalDependencies)
$(OutDir)$(TargetName).exe
true
- ..\spidermonkey\Release\x86;..\zlib\Release;%(AdditionalLibraryDirectories)
+ ..\..\spidermonkey\make\VS2017\Release;..\zlib\make\VS2017\Release;%(AdditionalLibraryDirectories)
$(OutDir)$(TargetName).pdb
Console
MachineX86
UseLinkTimeCodeGeneration
- .\Release/UOX3_Official.tlb
+ .\Release/uox3.tlb
@@ -199,7 +200,7 @@
/J
- $(OutDir)/UOX3_Official.pch
+ $(OutDir)/uox3.pch
$(OutDir)
$(OutDir)
$(OutDir)
@@ -215,16 +216,16 @@
true
- wsock32.lib;ws2_32.lib;js32.lib;zlib-static.lib;%(AdditionalDependencies)
+ wsock32.lib;ws2_32.lib;jscript.lib;zlib-static.lib;%(AdditionalDependencies)
$(OutDir)$(TargetName).exe
true
- ..\zlib\x64\Release\;..\spidermonkey\Release\x64;%(AdditionalLibraryDirectories)
+ ..\..\zlib\make\VS2017\x64\Release\;..\..\spidermonkey\make\VS2017\x64\Release;%(AdditionalLibraryDirectories)
$(OutDir)$(TargetName).pdb
Console
UseLinkTimeCodeGeneration
- .\Release/UOX3_Official.tlb
+ .\Release/uox3.tlb
@@ -240,7 +241,7 @@
MultiThreadedDebug
/J
- .\DebugProfile/UOX3_Official.pch
+ .\DebugProfile/uox3.pch
.\DebugProfile/
.\DebugProfile/
.\DebugProfile/
@@ -250,7 +251,7 @@
EditAndContinue
- odbc32.lib;odbccp32.lib;ws2_32.lib;js32.lib;%(AdditionalDependencies)
+ odbc32.lib;odbccp32.lib;ws2_32.lib;jscript.lib;%(AdditionalDependencies)
DebugProfile\UOX3.exe
true
JavaScript;%(AdditionalLibraryDirectories)
@@ -260,7 +261,7 @@
MachineX86
- .\DebugProfile/UOX3_Official.tlb
+ .\DebugProfile/uox3.tlb
@@ -276,7 +277,7 @@
/J
- .\DebugProfile/UOX3_Official.pch
+ .\DebugProfile/uox3.pch
.\DebugProfile/
.\DebugProfile/
.\DebugProfile/
@@ -286,7 +287,7 @@
ProgramDatabase
- odbc32.lib;odbccp32.lib;ws2_32.lib;js32.lib;%(AdditionalDependencies)
+ odbc32.lib;odbccp32.lib;ws2_32.lib;jscript.lib;%(AdditionalDependencies)
DebugProfile\UOX3.exe
true
JavaScript;%(AdditionalLibraryDirectories)
@@ -295,7 +296,7 @@
Console
- .\DebugProfile/UOX3_Official.tlb
+ .\DebugProfile/uox3.tlb
@@ -311,7 +312,7 @@
MultiThreadedDebug
/J
- $(OutDir)/UOX3_Official.pch
+ $(OutDir)/uox3.pch
$(OutDir)
$(OutDir)
$(OutDir)
@@ -326,10 +327,10 @@
false
- ws2_32.lib;js32.lib;zlib-static.lib;%(AdditionalDependencies)
+ ws2_32.lib;jscript.lib;zlib-static.lib;%(AdditionalDependencies)
$(OutDir)$(TargetName).exe
true
- ..\spidermonkey\Release\x86;..\zlib\Debug;%(AdditionalLibraryDirectories)
+ ..\..\spidermonkey\make\VS2017\Release;..\..\zlib\make\VS2017\Debug;%(AdditionalLibraryDirectories)
true
$(OutDir)$(TargetName).pdb
Console
@@ -338,7 +339,7 @@
LIBCMT;%(IgnoreSpecificDefaultLibraries)
- .\Debug/UOX3_Official.tlb
+ .\Debug/uox3.tlb
@@ -354,7 +355,7 @@
/J
- $(OutDir)/UOX3_Official.pch
+ $(OutDir)/uox3.pch
$(OutDir)
$(OutDir)
$(OutDir)
@@ -368,10 +369,10 @@
true
- ws2_32.lib;js32.lib;zlib-static.lib;%(AdditionalDependencies)
+ ws2_32.lib;jscript.lib;zlib-static.lib;%(AdditionalDependencies)
$(OutDir)$(TargetName).exe
true
- ..\spidermonkey\Release\x64;..\zlib\x64\Debug;%(AdditionalLibraryDirectories)
+ ..\..\spidermonkey\make\VS2017\x64\Release;..\..\zlib\make\VS2017\x64\Debug;%(AdditionalLibraryDirectories)
true
$(OutDir)$(TargetName).pdb
Console
@@ -379,7 +380,7 @@
LIBCMT;%(IgnoreSpecificDefaultLibraries)
- .\Debug/UOX3_Official.tlb
+ .\Debug/uox3.tlb
@@ -389,7 +390,7 @@
-
+
Disabled
Disabled
true
@@ -403,7 +404,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -417,7 +418,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -431,7 +432,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -445,7 +446,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -459,7 +460,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -473,7 +474,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -487,7 +488,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -501,7 +502,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -515,7 +516,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -529,7 +530,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -543,7 +544,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -557,7 +558,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -571,7 +572,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -585,9 +586,9 @@
true
true
-
-
-
+
+
+
Disabled
Disabled
true
@@ -601,7 +602,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -615,7 +616,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -629,7 +630,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -643,7 +644,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -657,7 +658,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -671,7 +672,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -685,7 +686,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -699,7 +700,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -713,7 +714,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -727,7 +728,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -741,7 +742,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -755,7 +756,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -769,7 +770,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -783,7 +784,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -797,7 +798,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -811,7 +812,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -825,7 +826,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -839,7 +840,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -853,7 +854,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -867,8 +868,8 @@
true
true
-
-
+
+
Disabled
Disabled
true
@@ -882,7 +883,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -896,7 +897,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -910,7 +911,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -924,8 +925,8 @@
true
true
-
-
+
+
Disabled
Disabled
true
@@ -939,7 +940,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -953,7 +954,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -967,7 +968,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -981,7 +982,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -995,7 +996,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1009,7 +1010,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1023,7 +1024,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1037,8 +1038,8 @@
true
true
-
-
+
+
Disabled
Disabled
true
@@ -1052,7 +1053,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1066,7 +1067,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1080,8 +1081,8 @@
true
true
-
-
+
+
Disabled
Disabled
true
@@ -1095,7 +1096,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1109,7 +1110,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1123,7 +1124,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1137,7 +1138,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1151,7 +1152,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1165,7 +1166,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1179,7 +1180,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1193,7 +1194,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1207,7 +1208,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1221,9 +1222,9 @@
true
true
-
-
-
+
+
+
Disabled
Disabled
true
@@ -1237,7 +1238,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1251,7 +1252,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1265,8 +1266,8 @@
true
true
-
-
+
+
Disabled
Disabled
true
@@ -1280,7 +1281,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1294,7 +1295,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1308,7 +1309,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1322,7 +1323,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1336,7 +1337,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1350,7 +1351,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1364,7 +1365,7 @@
true
true
-
+
Disabled
Disabled
true
@@ -1380,90 +1381,90 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
diff --git a/make/VS2017/uox3.vcproj.filters b/make/VS2017/uox3.vcxproj.filters
similarity index 60%
rename from make/VS2017/uox3.vcproj.filters
rename to make/VS2017/uox3.vcxproj.filters
index 480241cd7..022e4f485 100644
--- a/make/VS2017/uox3.vcproj.filters
+++ b/make/VS2017/uox3.vcxproj.filters
@@ -62,490 +62,490 @@
-
+
Source Files
-
+
Source Files\Script
-
+
Source Files\Script
-
+
Source Files\Script
-
+
Source Files\Script
-
+
Source Files\Base Objects
-
+
Source Files\Base Objects
-
+
Source Files\Base Objects
-
+
Source Files\Base Objects
-
+
Source Files\Base Objects
-
+
Source Files\Base Objects
-
+
Source Files\Base Objects
-
+
Source Files\Base Objects
-
+
Source Files\Base Objects
-
+
Source Files\Base Objects
-
+
Source Files\Base Objects
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Other
-
+
Source Files\Other
-
+
Source Files\Other
-
+
Source Files\Other
-
+
Source Files\Other
-
+
Source Files\Other
-
+
Source Files\Other
-
+
Source Files\Other
-
+
Source Files\Other
-
+
Source Files\Other
-
+
Source Files\Other
-
+
Source Files\Other
-
+
Source Files\Other
-
+
Source Files\JS Engine
-
+
Source Files\JS Engine
-
+
Source Files\JS Engine
-
+
Source Files\JS Engine
-
+
Source Files\JS Engine
-
+
Source Files\JS Engine
-
+
Source Files\JS Engine
-
+
Source Files\Network
-
+
Source Files\Network
-
+
Source Files\UOData
-
+
Source Files\UOData
-
+
Source Files\Network
-
+
Source Files\Network
-
+
Source Files\Utility
-
+
Source Files\Utility
-
+
Source Files\Utility
-
+
Source Files\Subsystem
-
+
Source Files
-
+
Source Files
-
+
Header Files
-
+
Header Files
-
+
Header Files
-
+
Header Files\Base Objects
-
+
Header Files\Base Objects
-
+
Header Files\Base Objects
-
+
Header Files\Base Objects
-
+
Header Files\Base Objects
-
+
Header Files\Base Objects
-
+
Header Files\Base Objects
-
+
Header Files\Base Objects
-
+
Header Files\Base Objects
-
+
Header Files\Base Objects
-
+
Header Files\Base Objects
-
+
Header Files\Script
-
+
Header Files\Script
-
+
Header Files\Script
-
+
Header Files\Script
-
+
Header Files\Script
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Subsystem
-
+
Header Files\Other
-
+
Header Files\Other
-
+
Header Files\Other
-
+
Header Files\Other
-
+
Header Files\Other
-
+
Header Files\Other
-
+
Header Files\Other
-
+
Header Files\Other
-
+
Header Files\Other
-
+
Header Files\Other
-
+
Header Files\Other
-
+
Header Files\Other
-
+
Header Files\Other
-
+
Header Files\Other
-
+
Header Files\JS Engine
-
+
Header Files\JS Engine
-
+
Header Files\JS Engine
-
+
Header Files\JS Engine
-
+
Header Files\JS Engine
-
+
Header Files\JS Engine
-
+
Header Files\JS Engine
-
+
Header Files\JS Engine
-
+
Header Files\JS Engine
-
+
Header Files\JS Engine
-
+
Header Files\Network
-
+
Header Files\Network
-
+
Header Files\Network
-
+
Header Files
-
+
Header Files\UOData
-
+
Header Files\UOData
-
+
Header Files\Network No. 1
-
+
Header Files\Network
-
+
Header Files\Utility
-
+
Header Files\Utility
-
+
Header Files\Base Objects
-
+
Header Files\Utility
-
+
Header Files\Subsystem
-
+
Header Files
-
+
Header Files
-
+
Resource Files
-
+
Resource Files
diff --git a/make/VS2022/uox3.sln b/make/VS2022/uox3.sln
index adb31620c..7666b71d6 100644
--- a/make/VS2022/uox3.sln
+++ b/make/VS2022/uox3.sln
@@ -1,13 +1,13 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
-VisualStudioVersion = 17.0.32112.339
+VisualStudioVersion = 17.4.33122.133
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uox3", "uox3.vcxproj", "{874C3F38-3B02-407B-823F-CE8F73B52580}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uox3", "uox3.vcxproj", "{062AE4B6-C989-4919-ADBF-7CD5A2CF30C5}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jsengine", "..\spidermonkey\VS2022\jsengine.vcxproj", "{4366F707-C296-4510-85AA-A61DD77DE34B}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jscript", "..\..\spidermonkey\make\vs2022\jscript\jscript.vcxproj", "{2AF3A5EA-0CEC-4D24-80F7-05E0B8B300C5}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "..\zlib\vs2022\zlib.vcxproj", "{7DDBF2DC-F199-4F38-B56D-C75270C3922D}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "..\..\zlib\make\vs2022\zlib.vcxproj", "{091529FD-5075-45F1-9D96-5708B3AB7C2B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -15,23 +15,23 @@ Global
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {874C3F38-3B02-407B-823F-CE8F73B52580}.Debug|x64.ActiveCfg = Debug|x64
- {874C3F38-3B02-407B-823F-CE8F73B52580}.Debug|x64.Build.0 = Debug|x64
- {874C3F38-3B02-407B-823F-CE8F73B52580}.Release|x64.ActiveCfg = Release|x64
- {874C3F38-3B02-407B-823F-CE8F73B52580}.Release|x64.Build.0 = Release|x64
- {4366F707-C296-4510-85AA-A61DD77DE34B}.Debug|x64.ActiveCfg = Debug|x64
- {4366F707-C296-4510-85AA-A61DD77DE34B}.Debug|x64.Build.0 = Debug|x64
- {4366F707-C296-4510-85AA-A61DD77DE34B}.Release|x64.ActiveCfg = Release|x64
- {4366F707-C296-4510-85AA-A61DD77DE34B}.Release|x64.Build.0 = Release|x64
- {7DDBF2DC-F199-4F38-B56D-C75270C3922D}.Debug|x64.ActiveCfg = Debug|x64
- {7DDBF2DC-F199-4F38-B56D-C75270C3922D}.Debug|x64.Build.0 = Debug|x64
- {7DDBF2DC-F199-4F38-B56D-C75270C3922D}.Release|x64.ActiveCfg = Release|x64
- {7DDBF2DC-F199-4F38-B56D-C75270C3922D}.Release|x64.Build.0 = Release|x64
+ {062AE4B6-C989-4919-ADBF-7CD5A2CF30C5}.Debug|x64.ActiveCfg = Debug|x64
+ {062AE4B6-C989-4919-ADBF-7CD5A2CF30C5}.Debug|x64.Build.0 = Debug|x64
+ {062AE4B6-C989-4919-ADBF-7CD5A2CF30C5}.Release|x64.ActiveCfg = Release|x64
+ {062AE4B6-C989-4919-ADBF-7CD5A2CF30C5}.Release|x64.Build.0 = Release|x64
+ {2AF3A5EA-0CEC-4D24-80F7-05E0B8B300C5}.Debug|x64.ActiveCfg = Debug|x64
+ {2AF3A5EA-0CEC-4D24-80F7-05E0B8B300C5}.Debug|x64.Build.0 = Debug|x64
+ {2AF3A5EA-0CEC-4D24-80F7-05E0B8B300C5}.Release|x64.ActiveCfg = Release|x64
+ {2AF3A5EA-0CEC-4D24-80F7-05E0B8B300C5}.Release|x64.Build.0 = Release|x64
+ {091529FD-5075-45F1-9D96-5708B3AB7C2B}.Debug|x64.ActiveCfg = Debug|x64
+ {091529FD-5075-45F1-9D96-5708B3AB7C2B}.Debug|x64.Build.0 = Debug|x64
+ {091529FD-5075-45F1-9D96-5708B3AB7C2B}.Release|x64.ActiveCfg = Release|x64
+ {091529FD-5075-45F1-9D96-5708B3AB7C2B}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {356E900D-8220-47C9-AF00-B965C5D986B3}
+ SolutionGuid = {CF21F62F-540E-4063-B542-B2421969D2C0}
EndGlobalSection
EndGlobal
diff --git a/make/VS2022/uox3.vcxproj b/make/VS2022/uox3.vcxproj
index a73ac515c..2e2d14e49 100644
--- a/make/VS2022/uox3.vcxproj
+++ b/make/VS2022/uox3.vcxproj
@@ -10,200 +10,25 @@
x64
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {4366f707-c296-4510-85aa-a61dd77de34b}
-
-
- {7ddbf2dc-f199-4f38-b56d-c75270c3922d}
-
-
16.0
Win32Proj
- {874c3f38-3b02-407b-823f-ce8f73b52580}
+ {062ae4b6-c989-4919-adbf-7cd5a2cf30c5}
uox3
10.0
+
Application
true
v143
MultiByte
-
Application
false
v143
- false
+ true
MultiByte
@@ -218,65 +43,226 @@
-
- true
-
false
- Disabled
Level3
- MultiThreadedDebug
- /J
- true
- EditAndContinue
- _ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH;EXPORT_JS_API;_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION;_WARNING_CRT_NO_VA_START_VALIDATION;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ _DEBUG;_CONSOLE;_CRT_NO_VA_START_VALIDATION;_ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH;EXPORT_JS_API;_CRT_SECURE_NO_WARNINGS;_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION
true
stdcpp17
stdc11
- ..\source;..\zlib;..\spidermonkey
- false
+
true
- true
- false
- Sync
+ /J
+ ..\..\source;..\..\zlib;..\..\spidermonkey
+ MultiThreadedDebug
Console
true
- ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
- MaxSpeed
Level3
- MultiThreaded
- /J
- true
- _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;_CRT_NO_VA_START_VALIDATION;EXPORT_JS_API;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;_CRT_NO_VA_START_VALIDATION;_ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH;EXPORT_JS_API;_CRT_SECURE_NO_WARNINGS;_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION
true
stdcpp17
stdc11
- ..\source;..\zlib;..\spidermonkey
- false
+
true
- true
- false
- Sync
- true
- OnlyExplicitInline
- true
- true
+ /J
+ ..\..\source;..\..\zlib;..\..\spidermonkey
+ MultiThreaded
Console
- ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
+ false
+ true
+ false
UseLinkTimeCodeGeneration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {2af3a5ea-0cec-4d24-80f7-05e0b8b300c5}
+
+
+ {091529fd-5075-45f1-9d96-5708b3ab7c2b}
+
+
diff --git a/make/VS2022/uox3.vcxproj.filters b/make/VS2022/uox3.vcxproj.filters
index 80290ca49..ae0e11fa8 100644
--- a/make/VS2022/uox3.vcxproj.filters
+++ b/make/VS2022/uox3.vcxproj.filters
@@ -13,537 +13,533 @@
{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
-
- {274e96e8-de7a-41ad-8594-90bd68f0f353}
+
+ {cd40ad04-825d-48bb-9a86-ff3ee1b2925e}
-
- {0bfc6dfc-539a-4feb-926a-7dcf248b105a}
+
+ {f1c80722-7193-47b7-8c33-b900a0063ae4}
-
- {0e099317-e932-45be-996c-fcb43d4d42ab}
+
+ {803b199d-3be5-4df0-a1a3-606c8ee008df}
-
- {8898a532-b7e0-4f91-8755-27d7100c6c45}
+
+ {9070ad2d-6668-48f5-a867-d62bf7e1c2ce}
+
+
+ {5dc0e64e-1161-4bdd-b7a9-08309a58eb14}
- {e7c93d8f-387d-4b78-b573-51b5cce671eb}
+ {e69fb852-15bb-499d-a73e-13f7b97c87b5}
-
- {701247da-b7de-4859-81f3-42a84d34a445}
+
+ {5fcfac04-c4f0-4c48-804a-8b4f49e615c4}
- {3b23bdce-f84c-4264-b241-5c745928b4c0}
+ {d191cb74-b6ab-4daa-9a7d-23c417c8efa5}
- {30d280c4-5fd2-41c6-97ee-f9a8f03fcc63}
+ {39d50936-dc83-4b6c-b219-2f79d292d75b}
-
- {0bfee963-d056-4eb6-9f61-8861eb79d979}
-
-
- {1c962ff3-a42a-4894-acc5-898005fb981d}
+
+ {6a0862ae-8f52-4d2e-bac1-51e13e865632}
-
- {5450e04f-62a4-441f-ba5e-7fad214a483b}
+
+ {9a0e0d95-1028-413d-916f-c79b93d05203}
-
- {1f38c55b-c2ca-4548-9384-dc297d476d71}
+
+ {d08079d3-ca4f-47c2-834e-b2982e2cc5d2}
-
- {926f0a88-1049-4700-bded-7ccd6524e438}
+
+ {6120db4f-bb2e-449f-b847-1547b395dee6}
-
- {da730940-f39f-41b5-96c1-05e690d46584}
+
+ {b53b55e3-1e33-4ebf-a60f-a7e98258942c}
-
- {309ef513-f9c9-426d-aa44-6e03659b6d44}
+
+ {4e9f44ee-ffe6-4241-9ba9-faa06b8bcd9b}
-
- {65548359-8d35-4132-98a1-d9e33044a8f7}
+
+ {47123d74-35f3-41ba-b7ee-c4d15af5c6af}
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files\Base Objects
-
-
- Header Files\Base Objects
-
-
- Header Files\Base Objects
-
-
- Header Files\Base Objects
-
-
- Header Files\Base Objects
-
-
- Header Files\Base Objects
-
-
- Header Files\Base Objects
-
-
- Header Files\Base Objects
-
-
- Header Files\Base Objects
-
-
- Header Files\Base Objects
-
-
- Header Files\Base Objects
-
-
- Header Files\Base Objects
-
-
- Header Files\JS Engine
-
-
- Header Files\JS Engine
-
-
- Header Files\JS Engine
-
-
- Header Files\JS Engine
-
-
- Header Files\JS Engine
-
-
- Header Files\JS Engine
-
-
- Header Files\JS Engine
-
-
- Header Files\JS Engine
-
-
- Header Files\JS Engine
-
-
- Header Files\JS Engine
-
-
- Header Files\Network
-
-
- Header Files\Network
-
-
- Header Files\Network
-
-
- Header Files\Network
-
-
- Header Files\Other
-
-
- Header Files\Other
-
-
- Header Files\Other
-
-
- Header Files\Other
-
-
- Header Files\Other
-
-
- Header Files\Other
-
-
- Header Files\Other
-
-
- Header Files\Other
-
-
- Header Files\Other
-
-
- Header Files\Other
-
-
- Header Files\Other
-
-
- Header Files\Other
-
-
- Header Files\Other
-
-
- Header Files\Other
-
-
- Header Files\Script
-
-
- Header Files\Script
-
-
- Header Files\Script
-
-
- Header Files\Script
-
-
- Header Files\Script
-
-
- Header Files\Subsystem
-
-
- Header Files\Subsystem
-
-
- Header Files\Subsystem
-
-
- Header Files\Subsystem
-
-
- Header Files\Subsystem
-
-
- Header Files\Subsystem
-
-
- Header Files\Subsystem
-
-
- Header Files\Subsystem
-
-
- Header Files\Subsystem
-
-
- Header Files\Subsystem
-
-
- Header Files\Subsystem
-
-
- Header Files\Subsystem
-
-
- Header Files\Subsystem
-
-
- Header Files\Subsystem
-
-
- Header Files\Subsystem
-
-
- Header Files\Subsystem
-
-
- Header Files\Subsystem
-
-
- Header Files\UOData
-
-
- Header Files\UOData
-
-
- Header Files\Utility
-
-
- Header Files\Utility
-
-
- Header Files\Utility
-
-
- Header Files\Subsystem
-
-
- Header Files\Subsystem
-
-
- Header Files\Other
-
-
- Header Files\Other
-
-
- Header Files\Other
-
-
- Header Files
-
-
- Header Files
-
+
+ Resource Files
+
-
+
Source Files
-
- Source Files\UOData
-
-
- Source Files\UOData
-
-
- Source Files\Utility
-
-
- Source Files\Utility
-
-
- Source Files\Utility
-
-
- Source Files\JS Engine
-
-
- Source Files\JS Engine
-
-
- Source Files\JS Engine
-
-
- Source Files\JS Engine
-
-
- Source Files\JS Engine
+
+ Source Files\Script
-
- Source Files\JS Engine
+
+ Source Files\Script
-
- Source Files\JS Engine
+
+ Source Files\Script
-
- Source Files\Network
+
+ Source Files\Script
-
- Source Files\Network
+
+ Source Files\Base Objects
-
- Source Files\Network
+
+ Source Files\Base Objects
-
- Source Files\Network
+
+ Source Files\Base Objects
-
- Source Files\Network
+
+ Source Files\Base Objects
-
+
Source Files\Base Objects
-
+
Source Files\Base Objects
-
+
Source Files\Base Objects
-
+
Source Files\Base Objects
-
+
Source Files\Base Objects
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
- Source Files\Other
-
-
- Source Files\Other
-
-
- Source Files\Other
-
-
- Source Files\Other
-
-
- Source Files\Other
-
-
- Source Files\Other
-
-
- Source Files\Other
-
-
- Source Files\Other
-
-
- Source Files\Other
-
-
- Source Files\Other
-
-
- Source Files\Other
-
-
- Source Files\Other
-
-
- Source Files\Other
-
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
+
Source Files\Subsystem
-
- Source Files\Subsystem
+
+ Source Files\Other
-
- Source Files\Script
+
+ Source Files\Other
-
- Source Files\Script
+
+ Source Files\Other
-
- Source Files\Script
+
+ Source Files\Other
-
- Source Files\Script
+
+ Source Files\Other
-
- Source Files\Base Objects
+
+ Source Files\Other
-
- Source Files\Base Objects
+
+ Source Files\Other
-
- Source Files\Base Objects
+
+ Source Files\Other
-
- Source Files\Base Objects
+
+ Source Files\Other
-
- Source Files\Base Objects
+
+ Source Files\Other
+
+
+ Source Files\Other
+
+
+ Source Files\Other
+
+
+ Source Files\Other
+
+
+ Source Files\JS Engine
+
+
+ Source Files\JS Engine
+
+
+ Source Files\JS Engine
+
+
+ Source Files\JS Engine
+
+
+ Source Files\JS Engine
+
+
+ Source Files\JS Engine
+
+
+ Source Files\JS Engine
+
+
+ Source Files\Network
+
+
+ Source Files\Network
-
+
+ Source Files\UOData
+
+
+ Source Files\UOData
+
+
+ Source Files\Network
+
+
+ Source Files\Network
+
+
+ Source Files\Utility
+
+
+ Source Files\Utility
+
+
+ Source Files\Utility
+
+
Source Files\Subsystem
-
+
Source Files
-
+
+ Source Files
+
+
+
+ Source Files
+
+
Source Files
-
- Resource Files
-
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files\Base Objects
+
+
+ Header Files\Base Objects
+
+
+ Header Files\Base Objects
+
+
+ Header Files\Base Objects
+
+
+ Header Files\Base Objects
+
+
+ Header Files\Base Objects
+
+
+ Header Files\Base Objects
+
+
+ Header Files\Base Objects
+
+
+ Header Files\Base Objects
+
+
+ Header Files\Base Objects
+
+
+ Header Files\Base Objects
+
+
+ Header Files\Script
+
+
+ Header Files\Script
+
+
+ Header Files\Script
+
+
+ Header Files\Script
+
+
+ Header Files\Script
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Subsystem
+
+
+ Header Files\Other
+
+
+ Header Files\Other
+
+
+ Header Files\Other
+
+
+ Header Files\Other
+
+
+ Header Files\Other
+
+
+ Header Files\Other
+
+
+ Header Files\Other
+
+
+ Header Files\Other
+
+
+ Header Files\Other
+
+
+ Header Files\Other
+
+
+ Header Files\Other
+
+
+ Header Files\Other
+
+
+ Header Files\Other
+
+
+ Header Files\JS Engine
+
+
+ Header Files\JS Engine
+
+
+ Header Files\JS Engine
+
+
+ Header Files\JS Engine
+
+
+ Header Files\JS Engine
+
+
+ Header Files\JS Engine
+
+
+ Header Files\JS Engine
+
+
+ Header Files\JS Engine
+
+
+ Header Files\JS Engine
+
+
+ Header Files\Network
+
+
+ Header Files\Network
+
+
+ Header Files\Network
+
+
+ Header Files
+
+
+ Header Files\UOData
+
+
+ Header Files\UOData
+
+
+ Header Files\Network No. 1
+
+
+ Header Files\Network
+
+
+ Header Files\Utility
+
+
+ Header Files\Utility
+
+
+ Header Files\Base Objects
+
+
+ Header Files\Utility
+
+
+ Header Files\Subsystem
+
+
+ Header Files
+
+
+ Header Files
+
+
-
+
Resource Files
diff --git a/make/XCode/uox3.xcodeproj/project.pbxproj b/make/XCode/uox3.xcodeproj/project.pbxproj
index 766e87105..e52835d72 100644
--- a/make/XCode/uox3.xcodeproj/project.pbxproj
+++ b/make/XCode/uox3.xcodeproj/project.pbxproj
@@ -7,91 +7,91 @@
objects = {
/* Begin PBXBuildFile section */
- 6452D32227D3A7CB00E5AFB4 /* osunique.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6452D32127D3A7CB00E5AFB4 /* osunique.cpp */; };
- 648AF79627CFF2CD009327DE /* cConsole.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF6F627CFF2CC009327DE /* cConsole.cpp */; };
- 648AF79727CFF2CD009327DE /* dist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF6F727CFF2CC009327DE /* dist.cpp */; };
- 648AF79827CFF2CD009327DE /* calcfuncs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF6FA27CFF2CC009327DE /* calcfuncs.cpp */; };
- 648AF79927CFF2CD009327DE /* CPacketReceive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF6FC27CFF2CC009327DE /* CPacketReceive.cpp */; };
- 648AF79A27CFF2CD009327DE /* cScript.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF6FD27CFF2CC009327DE /* cScript.cpp */; };
- 648AF79B27CFF2CD009327DE /* uox3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF70027CFF2CC009327DE /* uox3.cpp */; };
- 648AF79C27CFF2CD009327DE /* boats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF70127CFF2CC009327DE /* boats.cpp */; };
- 648AF79D27CFF2CD009327DE /* IP4Address.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF70227CFF2CC009327DE /* IP4Address.cpp */; };
- 648AF79E27CFF2CD009327DE /* cItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF70527CFF2CC009327DE /* cItem.cpp */; };
- 648AF79F27CFF2CD009327DE /* worldmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF70727CFF2CC009327DE /* worldmain.cpp */; };
- 648AF7A027CFF2CD009327DE /* cBaseobject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF70827CFF2CC009327DE /* cBaseobject.cpp */; };
- 648AF7A127CFF2CD009327DE /* cServerData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF70A27CFF2CC009327DE /* cServerData.cpp */; };
- 648AF7A227CFF2CD009327DE /* cMultiObj.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF70E27CFF2CC009327DE /* cMultiObj.cpp */; };
- 648AF7A327CFF2CD009327DE /* jail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF71227CFF2CC009327DE /* jail.cpp */; };
- 648AF7A427CFF2CD009327DE /* cSocket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF71427CFF2CC009327DE /* cSocket.cpp */; };
- 648AF7A627CFF2CD009327DE /* queue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF71727CFF2CC009327DE /* queue.cpp */; };
- 648AF7A827CFF2CD009327DE /* SEFunctions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF71B27CFF2CC009327DE /* SEFunctions.cpp */; };
- 648AF7A927CFF2CD009327DE /* archive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF71D27CFF2CC009327DE /* archive.cpp */; };
- 648AF7AA27CFF2CD009327DE /* lineofsight.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF72027CFF2CC009327DE /* lineofsight.cpp */; };
- 648AF7AB27CFF2CD009327DE /* TimeUtility.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF72527CFF2CC009327DE /* TimeUtility.cpp */; };
- 648AF7AC27CFF2CD009327DE /* townregion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF72627CFF2CC009327DE /* townregion.cpp */; };
- 648AF7AD27CFF2CD009327DE /* house.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF72B27CFF2CC009327DE /* house.cpp */; };
- 648AF7AE27CFF2CD009327DE /* CResponse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF72D27CFF2CC009327DE /* CResponse.cpp */; };
- 648AF7AF27CFF2CD009327DE /* UOXJSPropertyFuncs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF72F27CFF2CC009327DE /* UOXJSPropertyFuncs.cpp */; };
- 648AF7B027CFF2CD009327DE /* UOPData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF73227CFF2CC009327DE /* UOPData.cpp */; };
- 648AF7B127CFF2CD009327DE /* UOXJSMethods.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF73327CFF2CC009327DE /* UOXJSMethods.cpp */; };
- 648AF7B227CFF2CD009327DE /* cRaces.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF73427CFF2CC009327DE /* cRaces.cpp */; };
- 648AF7B327CFF2CD009327DE /* MultiMul.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF73627CFF2CD009327DE /* MultiMul.cpp */; };
- 648AF7B427CFF2CD009327DE /* targeting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF73727CFF2CD009327DE /* targeting.cpp */; };
- 648AF7B527CFF2CD009327DE /* skills.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF73827CFF2CD009327DE /* skills.cpp */; };
- 648AF7B627CFF2CD009327DE /* findfuncs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF73A27CFF2CD009327DE /* findfuncs.cpp */; };
- 648AF7B727CFF2CD009327DE /* Dictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF73B27CFF2CD009327DE /* Dictionary.cpp */; };
- 648AF7B827CFF2CD009327DE /* CJSEngine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF73D27CFF2CD009327DE /* CJSEngine.cpp */; };
- 648AF7B927CFF2CD009327DE /* magic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF73F27CFF2CD009327DE /* magic.cpp */; };
- 648AF7BA27CFF2CD009327DE /* cGuild.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF74227CFF2CD009327DE /* cGuild.cpp */; };
- 648AF7BB27CFF2CD009327DE /* EventTimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF74327CFF2CD009327DE /* EventTimer.cpp */; };
- 648AF7BC27CFF2CD009327DE /* cChar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF74427CFF2CD009327DE /* cChar.cpp */; };
- 648AF7BD27CFF2CD009327DE /* commands.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF74527CFF2CD009327DE /* commands.cpp */; };
- 648AF7BE27CFF2CD009327DE /* cThreadQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF74727CFF2CD009327DE /* cThreadQueue.cpp */; };
- 648AF7BF27CFF2CD009327DE /* cHTMLSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF74827CFF2CD009327DE /* cHTMLSystem.cpp */; };
- 648AF7C027CFF2CD009327DE /* network.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF74A27CFF2CD009327DE /* network.cpp */; };
- 648AF7C127CFF2CD009327DE /* gumps.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF74C27CFF2CD009327DE /* gumps.cpp */; };
- 648AF7C227CFF2CD009327DE /* sound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF74D27CFF2CD009327DE /* sound.cpp */; };
- 648AF7C327CFF2CD009327DE /* cmdtable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF75127CFF2CD009327DE /* cmdtable.cpp */; };
- 648AF7C427CFF2CD009327DE /* cDice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF75227CFF2CD009327DE /* cDice.cpp */; };
- 648AF7C527CFF2CD009327DE /* items.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF75327CFF2CD009327DE /* items.cpp */; };
- 648AF7C627CFF2CD009327DE /* cVersionClass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF75427CFF2CD009327DE /* cVersionClass.cpp */; };
- 648AF7C727CFF2CD009327DE /* regions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF75627CFF2CD009327DE /* regions.cpp */; };
- 648AF7C827CFF2CD009327DE /* cServerDefinitions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF75827CFF2CD009327DE /* cServerDefinitions.cpp */; };
- 648AF7C927CFF2CD009327DE /* ssection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF75927CFF2CD009327DE /* ssection.cpp */; };
- 648AF7CA27CFF2CD009327DE /* scriptc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF75E27CFF2CD009327DE /* scriptc.cpp */; };
- 648AF7CB27CFF2CD009327DE /* mapstuff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF76127CFF2CD009327DE /* mapstuff.cpp */; };
- 648AF7CC27CFF2CD009327DE /* msgboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF76427CFF2CD009327DE /* msgboard.cpp */; };
- 648AF7CD27CFF2CD009327DE /* cWeather.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF76527CFF2CD009327DE /* cWeather.cpp */; };
- 648AF7CE27CFF2CD009327DE /* cPlayerAction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF76627CFF2CD009327DE /* cPlayerAction.cpp */; };
- 648AF7CF27CFF2CD009327DE /* movement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF76827CFF2CD009327DE /* movement.cpp */; };
- 648AF7D027CFF2CD009327DE /* cSpawnRegion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF76927CFF2CD009327DE /* cSpawnRegion.cpp */; };
- 648AF7D127CFF2CD009327DE /* PartySystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF76B27CFF2CD009327DE /* PartySystem.cpp */; };
- 648AF7D227CFF2CD009327DE /* vendor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF76E27CFF2CD009327DE /* vendor.cpp */; };
- 648AF7D327CFF2CD009327DE /* fileio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF77027CFF2CD009327DE /* fileio.cpp */; };
- 648AF7D427CFF2CD009327DE /* CJSMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF77227CFF2CD009327DE /* CJSMapping.cpp */; };
- 648AF7D527CFF2CD009327DE /* books.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF77527CFF2CD009327DE /* books.cpp */; };
- 648AF7D627CFF2CD009327DE /* CPacketSend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF77627CFF2CD009327DE /* CPacketSend.cpp */; };
- 648AF7D727CFF2CD009327DE /* StringUtility.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF77927CFF2CD009327DE /* StringUtility.cpp */; };
- 648AF7D827CFF2CD009327DE /* quantityfuncs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF77A27CFF2CD009327DE /* quantityfuncs.cpp */; };
- 648AF7D927CFF2CD009327DE /* cAccountClass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF77F27CFF2CD009327DE /* cAccountClass.cpp */; };
- 648AF7DA27CFF2CD009327DE /* ObjectFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF78027CFF2CD009327DE /* ObjectFactory.cpp */; };
- 648AF7DB27CFF2CD009327DE /* npcs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF78127CFF2CD009327DE /* npcs.cpp */; };
- 648AF7DC27CFF2CD009327DE /* wholist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF78427CFF2CD009327DE /* wholist.cpp */; };
- 648AF7DD27CFF2CD009327DE /* combat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF78527CFF2CD009327DE /* combat.cpp */; };
- 648AF7DE27CFF2CD009327DE /* CGump.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF78727CFF2CD009327DE /* CGump.cpp */; };
- 648AF7DF27CFF2CD009327DE /* JSEncapsulate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF78927CFF2CD009327DE /* JSEncapsulate.cpp */; };
- 648AF7E027CFF2CD009327DE /* ai.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF78A27CFF2CD009327DE /* ai.cpp */; };
- 648AF7E127CFF2CD009327DE /* pcmanage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF78B27CFF2CD009327DE /* pcmanage.cpp */; };
- 648AF7E227CFF2CD009327DE /* trade.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF78E27CFF2CD009327DE /* trade.cpp */; };
- 648AF7E327CFF2CD009327DE /* weight.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF79127CFF2CD009327DE /* weight.cpp */; };
- 648AF7E427CFF2CD009327DE /* effect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF79327CFF2CD009327DE /* effect.cpp */; };
- 648AF7E527CFF2CD009327DE /* speech.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 648AF79527CFF2CD009327DE /* speech.cpp */; };
- 64E0066C2935A37500BEBA8F /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 64E0066829354B1800BEBA8F /* libz.tbd */; };
- 64E0066E2935A39A00BEBA8F /* libjs.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64E0066D2935A38900BEBA8F /* libjs.a */; };
+ 64A9011A293E3DD4009B54DA /* ai.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A90075293E3DD4009B54DA /* ai.cpp */; };
+ 64A9011B293E3DD4009B54DA /* archive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A90076293E3DD4009B54DA /* archive.cpp */; };
+ 64A9011C293E3DD4009B54DA /* boats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A90077293E3DD4009B54DA /* boats.cpp */; };
+ 64A9011D293E3DD4009B54DA /* books.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A90078293E3DD4009B54DA /* books.cpp */; };
+ 64A9011E293E3DD4009B54DA /* cAccountClass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A9007A293E3DD4009B54DA /* cAccountClass.cpp */; };
+ 64A9011F293E3DD4009B54DA /* calcfuncs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A9007C293E3DD4009B54DA /* calcfuncs.cpp */; };
+ 64A90120293E3DD4009B54DA /* cBaseobject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A9007D293E3DD4009B54DA /* cBaseobject.cpp */; };
+ 64A90121293E3DD4009B54DA /* cChar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A9007F293E3DD4009B54DA /* cChar.cpp */; };
+ 64A90122293E3DD4009B54DA /* cConsole.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A90081293E3DD4009B54DA /* cConsole.cpp */; };
+ 64A90123293E3DD4009B54DA /* cDice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A90083293E3DD4009B54DA /* cDice.cpp */; };
+ 64A90124293E3DD4009B54DA /* cGuild.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A90086293E3DD4009B54DA /* cGuild.cpp */; };
+ 64A90125293E3DD4009B54DA /* CGump.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A90088293E3DD4009B54DA /* CGump.cpp */; };
+ 64A90126293E3DD4009B54DA /* cHTMLSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A9008A293E3DD4009B54DA /* cHTMLSystem.cpp */; };
+ 64A90127293E3DD4009B54DA /* cItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A9008C293E3DD4009B54DA /* cItem.cpp */; };
+ 64A90128293E3DD4009B54DA /* CJSEngine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A9008E293E3DD4009B54DA /* CJSEngine.cpp */; };
+ 64A90129293E3DD4009B54DA /* CJSMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A90090293E3DD4009B54DA /* CJSMapping.cpp */; };
+ 64A9012A293E3DD4009B54DA /* cmdtable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A90095293E3DD4009B54DA /* cmdtable.cpp */; };
+ 64A9012B293E3DD4009B54DA /* cMultiObj.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A90097293E3DD4009B54DA /* cMultiObj.cpp */; };
+ 64A9012C293E3DD4009B54DA /* combat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A90099293E3DD4009B54DA /* combat.cpp */; };
+ 64A9012D293E3DD4009B54DA /* commands.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A9009B293E3DD4009B54DA /* commands.cpp */; };
+ 64A9012E293E3DD4009B54DA /* CPacketReceive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A9009E293E3DD4009B54DA /* CPacketReceive.cpp */; };
+ 64A9012F293E3DD4009B54DA /* CPacketSend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900A0293E3DD4009B54DA /* CPacketSend.cpp */; };
+ 64A90130293E3DD4009B54DA /* cPlayerAction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900A2293E3DD4009B54DA /* cPlayerAction.cpp */; };
+ 64A90131293E3DD4009B54DA /* cRaces.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900A3293E3DD4009B54DA /* cRaces.cpp */; };
+ 64A90132293E3DD4009B54DA /* CResponse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900A5293E3DD4009B54DA /* CResponse.cpp */; };
+ 64A90133293E3DD4009B54DA /* cScript.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900A7293E3DD4009B54DA /* cScript.cpp */; };
+ 64A90134293E3DD4009B54DA /* cServerData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900A9293E3DD4009B54DA /* cServerData.cpp */; };
+ 64A90135293E3DD4009B54DA /* cServerDefinitions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900AB293E3DD4009B54DA /* cServerDefinitions.cpp */; };
+ 64A90136293E3DD4009B54DA /* cSocket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900AE293E3DD4009B54DA /* cSocket.cpp */; };
+ 64A90137293E3DD4009B54DA /* cSpawnRegion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900B0293E3DD4009B54DA /* cSpawnRegion.cpp */; };
+ 64A90138293E3DD4009B54DA /* cThreadQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900B2293E3DD4009B54DA /* cThreadQueue.cpp */; };
+ 64A90139293E3DD4009B54DA /* cVersionClass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900B4293E3DD4009B54DA /* cVersionClass.cpp */; };
+ 64A9013A293E3DD4009B54DA /* cWeather.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900B6293E3DD4009B54DA /* cWeather.cpp */; };
+ 64A9013B293E3DD4009B54DA /* Dictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900B8293E3DD4009B54DA /* Dictionary.cpp */; };
+ 64A9013C293E3DD4009B54DA /* dist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900BA293E3DD4009B54DA /* dist.cpp */; };
+ 64A9013D293E3DD4009B54DA /* effect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900BB293E3DD4009B54DA /* effect.cpp */; };
+ 64A9013E293E3DD4009B54DA /* EventTimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900BD293E3DD4009B54DA /* EventTimer.cpp */; };
+ 64A9013F293E3DD4009B54DA /* fileio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900BF293E3DD4009B54DA /* fileio.cpp */; };
+ 64A90140293E3DD4009B54DA /* findfuncs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900C0293E3DD4009B54DA /* findfuncs.cpp */; };
+ 64A90141293E3DD4009B54DA /* gumps.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900C4293E3DD4009B54DA /* gumps.cpp */; };
+ 64A90142293E3DD4009B54DA /* house.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900C5293E3DD4009B54DA /* house.cpp */; };
+ 64A90143293E3DD4009B54DA /* IP4Address.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900C6293E3DD4009B54DA /* IP4Address.cpp */; };
+ 64A90144293E3DD4009B54DA /* items.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900C8293E3DD4009B54DA /* items.cpp */; };
+ 64A90145293E3DD4009B54DA /* jail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900C9293E3DD4009B54DA /* jail.cpp */; };
+ 64A90146293E3DD4009B54DA /* JSEncapsulate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900CB293E3DD4009B54DA /* JSEncapsulate.cpp */; };
+ 64A90147293E3DD4009B54DA /* lineofsight.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900CD293E3DD4009B54DA /* lineofsight.cpp */; };
+ 64A90148293E3DD4009B54DA /* magic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900CE293E3DD4009B54DA /* magic.cpp */; };
+ 64A9014A293E3DD4009B54DA /* mapstuff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900D2293E3DD4009B54DA /* mapstuff.cpp */; };
+ 64A9014B293E3DD4009B54DA /* movement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900D4293E3DD4009B54DA /* movement.cpp */; };
+ 64A9014C293E3DD4009B54DA /* msgboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900D6293E3DD4009B54DA /* msgboard.cpp */; };
+ 64A9014D293E3DD4009B54DA /* MultiMul.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900D8293E3DD4009B54DA /* MultiMul.cpp */; };
+ 64A9014E293E3DD4009B54DA /* network.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900DA293E3DD4009B54DA /* network.cpp */; };
+ 64A9014F293E3DD4009B54DA /* npcs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900DC293E3DD4009B54DA /* npcs.cpp */; };
+ 64A90150293E3DD4009B54DA /* ObjectFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900DD293E3DD4009B54DA /* ObjectFactory.cpp */; };
+ 64A90151293E3DD4009B54DA /* osunique.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900DF293E3DD4009B54DA /* osunique.cpp */; };
+ 64A90152293E3DD4009B54DA /* PartySystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900E2293E3DD4009B54DA /* PartySystem.cpp */; };
+ 64A90153293E3DD4009B54DA /* pcmanage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900E4293E3DD4009B54DA /* pcmanage.cpp */; };
+ 64A90154293E3DD4009B54DA /* quantityfuncs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900E7293E3DD4009B54DA /* quantityfuncs.cpp */; };
+ 64A90155293E3DD4009B54DA /* queue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900E8293E3DD4009B54DA /* queue.cpp */; };
+ 64A90156293E3DD4009B54DA /* regions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900E9293E3DD4009B54DA /* regions.cpp */; };
+ 64A90157293E3DD4009B54DA /* scriptc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900EC293E3DD4009B54DA /* scriptc.cpp */; };
+ 64A90158293E3DD4009B54DA /* SEFunctions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900EE293E3DD4009B54DA /* SEFunctions.cpp */; };
+ 64A90159293E3DD4009B54DA /* skills.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900F0293E3DD4009B54DA /* skills.cpp */; };
+ 64A9015A293E3DD4009B54DA /* sound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900F2293E3DD4009B54DA /* sound.cpp */; };
+ 64A9015B293E3DD4009B54DA /* speech.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900F3293E3DD4009B54DA /* speech.cpp */; };
+ 64A9015C293E3DD4009B54DA /* ssection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900F5293E3DD4009B54DA /* ssection.cpp */; };
+ 64A9015D293E3DD4009B54DA /* StringUtility.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900F7293E3DD4009B54DA /* StringUtility.cpp */; };
+ 64A9015E293E3DD4009B54DA /* targeting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900F9293E3DD4009B54DA /* targeting.cpp */; };
+ 64A9015F293E3DD4009B54DA /* TimeUtility.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900FB293E3DD4009B54DA /* TimeUtility.cpp */; };
+ 64A90160293E3DD4009B54DA /* townregion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900FD293E3DD4009B54DA /* townregion.cpp */; };
+ 64A90161293E3DD4009B54DA /* trade.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A900FF293E3DD4009B54DA /* trade.cpp */; };
+ 64A90162293E3DD4009B54DA /* UOPData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A90101293E3DD4009B54DA /* UOPData.cpp */; };
+ 64A90163293E3DD4009B54DA /* uox3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A90103293E3DD4009B54DA /* uox3.cpp */; };
+ 64A90164293E3DD4009B54DA /* UOXJSMethods.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A9010B293E3DD4009B54DA /* UOXJSMethods.cpp */; };
+ 64A90165293E3DD4009B54DA /* UOXJSPropertyFuncs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A9010E293E3DD4009B54DA /* UOXJSPropertyFuncs.cpp */; };
+ 64A90166293E3DD4009B54DA /* vendor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A90113293E3DD4009B54DA /* vendor.cpp */; };
+ 64A90167293E3DD4009B54DA /* weight.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A90114293E3DD4009B54DA /* weight.cpp */; };
+ 64A90168293E3DD4009B54DA /* wholist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A90116293E3DD4009B54DA /* wholist.cpp */; };
+ 64A90169293E3DD4009B54DA /* worldmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 64A90118293E3DD4009B54DA /* worldmain.cpp */; };
+ 64A9016D293E3EED009B54DA /* libjscript.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64A9016C293E3EED009B54DA /* libjscript.a */; };
+ 64A9016F293E3EFD009B54DA /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 64A9016E293E3EF5009B54DA /* libz.tbd */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
- 648AF6E227CFEF79009327DE /* CopyFiles */ = {
+ 64A90068293E3DA3009B54DA /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = /usr/share/man/man1/;
@@ -103,473 +103,454 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
- 6452D32027D2E13B00E5AFB4 /* osunique.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = osunique.hpp; sourceTree = ""; };
- 6452D32127D3A7CB00E5AFB4 /* osunique.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = osunique.cpp; sourceTree = ""; };
- 6453667D2859FB340064E649 /* Changelog.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = Changelog.txt; sourceTree = ""; };
- 6453667E285A04130064E649 /* CMakeLists.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; };
- 648AF6E427CFEF79009327DE /* uox3 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = uox3; sourceTree = BUILT_PRODUCTS_DIR; };
- 648AF6F627CFF2CC009327DE /* cConsole.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cConsole.cpp; sourceTree = ""; };
- 648AF6F727CFF2CC009327DE /* dist.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dist.cpp; sourceTree = ""; };
- 648AF6F827CFF2CC009327DE /* cSpawnRegion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cSpawnRegion.h; sourceTree = ""; };
- 648AF6F927CFF2CC009327DE /* skills.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = skills.h; sourceTree = ""; };
- 648AF6FA27CFF2CC009327DE /* calcfuncs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = calcfuncs.cpp; sourceTree = ""; };
- 648AF6FB27CFF2CC009327DE /* books.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = books.h; sourceTree = ""; };
- 648AF6FC27CFF2CC009327DE /* CPacketReceive.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CPacketReceive.cpp; sourceTree = ""; };
- 648AF6FD27CFF2CC009327DE /* cScript.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cScript.cpp; sourceTree = ""; };
- 648AF6FE27CFF2CC009327DE /* ConfigOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfigOS.h; sourceTree = ""; };
- 648AF6FF27CFF2CC009327DE /* msgboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = msgboard.h; sourceTree = ""; };
- 648AF70027CFF2CC009327DE /* uox3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = uox3.cpp; sourceTree = ""; };
- 648AF70127CFF2CC009327DE /* boats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = boats.cpp; sourceTree = ""; };
- 648AF70227CFF2CC009327DE /* IP4Address.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IP4Address.cpp; sourceTree = ""; };
- 648AF70327CFF2CC009327DE /* cGuild.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cGuild.h; sourceTree = ""; };
- 648AF70427CFF2CC009327DE /* UOXJSMethods.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UOXJSMethods.h; sourceTree = ""; };
- 648AF70527CFF2CC009327DE /* cItem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cItem.cpp; sourceTree = ""; };
- 648AF70627CFF2CC009327DE /* worldmain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = worldmain.h; sourceTree = ""; };
- 648AF70727CFF2CC009327DE /* worldmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = worldmain.cpp; sourceTree = ""; };
- 648AF70827CFF2CC009327DE /* cBaseobject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cBaseobject.cpp; sourceTree = ""; };
- 648AF70A27CFF2CC009327DE /* cServerData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cServerData.cpp; sourceTree = ""; };
- 648AF70B27CFF2CC009327DE /* TimeUtility.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = TimeUtility.hpp; sourceTree = ""; };
- 648AF70C27CFF2CC009327DE /* townregion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = townregion.h; sourceTree = ""; };
- 648AF70D27CFF2CC009327DE /* magic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = magic.h; sourceTree = ""; };
- 648AF70E27CFF2CC009327DE /* cMultiObj.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cMultiObj.cpp; sourceTree = ""; };
- 648AF70F27CFF2CC009327DE /* cmdtable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cmdtable.h; sourceTree = ""; };
- 648AF71027CFF2CC009327DE /* jail.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = jail.h; sourceTree = ""; };
- 648AF71127CFF2CC009327DE /* cServerDefinitions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cServerDefinitions.h; sourceTree = ""; };
- 648AF71227CFF2CC009327DE /* jail.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = jail.cpp; sourceTree = ""; };
- 648AF71327CFF2CC009327DE /* movement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = movement.h; sourceTree = ""; };
- 648AF71427CFF2CC009327DE /* cSocket.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cSocket.cpp; sourceTree = ""; };
- 648AF71527CFF2CC009327DE /* mapstuff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mapstuff.h; sourceTree = ""; };
- 648AF71727CFF2CC009327DE /* queue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = queue.cpp; sourceTree = ""; };
- 648AF71927CFF2CC009327DE /* CResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CResponse.h; sourceTree = ""; };
- 648AF71A27CFF2CC009327DE /* UOXJSPropertySpecs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UOXJSPropertySpecs.h; sourceTree = ""; };
- 648AF71B27CFF2CC009327DE /* SEFunctions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SEFunctions.cpp; sourceTree = ""; };
- 648AF71C27CFF2CC009327DE /* cEffects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cEffects.h; sourceTree = ""; };
- 648AF71D27CFF2CC009327DE /* archive.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = archive.cpp; sourceTree = ""; };
- 648AF71E27CFF2CC009327DE /* Dictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Dictionary.h; sourceTree = ""; };
- 648AF71F27CFF2CC009327DE /* mapclasses.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mapclasses.h; sourceTree = ""; };
- 648AF72027CFF2CC009327DE /* lineofsight.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lineofsight.cpp; sourceTree = ""; };
- 648AF72127CFF2CC009327DE /* uoxstruct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = uoxstruct.h; sourceTree = ""; };
- 648AF72227CFF2CC009327DE /* ObjectFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjectFactory.h; sourceTree = ""; };
- 648AF72327CFF2CC009327DE /* uox3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = uox3.h; sourceTree = ""; };
- 648AF72427CFF2CC009327DE /* cAccountClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cAccountClass.h; sourceTree = ""; };
- 648AF72527CFF2CC009327DE /* TimeUtility.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TimeUtility.cpp; sourceTree = ""; };
- 648AF72627CFF2CC009327DE /* townregion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = townregion.cpp; sourceTree = ""; };
- 648AF72727CFF2CC009327DE /* StringUtility.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = StringUtility.hpp; sourceTree = ""; };
- 648AF72827CFF2CC009327DE /* cScript.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cScript.h; sourceTree = ""; };
- 648AF72927CFF2CC009327DE /* SEFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SEFunctions.h; sourceTree = ""; };
- 648AF72A27CFF2CC009327DE /* UOXJSClasses.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UOXJSClasses.h; sourceTree = ""; };
- 648AF72B27CFF2CC009327DE /* house.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = house.cpp; sourceTree = ""; };
- 648AF72C27CFF2CC009327DE /* cMagic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cMagic.h; sourceTree = ""; };
- 648AF72D27CFF2CC009327DE /* CResponse.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CResponse.cpp; sourceTree = ""; };
- 648AF72E27CFF2CC009327DE /* cRaces.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cRaces.h; sourceTree = ""; };
- 648AF72F27CFF2CC009327DE /* UOXJSPropertyFuncs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UOXJSPropertyFuncs.cpp; sourceTree = ""; };
- 648AF73027CFF2CC009327DE /* cChar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cChar.h; sourceTree = ""; };
- 648AF73127CFF2CC009327DE /* GenericList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GenericList.h; sourceTree = ""; };
- 648AF73227CFF2CC009327DE /* UOPData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UOPData.cpp; sourceTree = ""; };
- 648AF73327CFF2CC009327DE /* UOXJSMethods.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UOXJSMethods.cpp; sourceTree = ""; };
- 648AF73427CFF2CC009327DE /* cRaces.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cRaces.cpp; sourceTree = ""; };
- 648AF73527CFF2CC009327DE /* cItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cItem.h; sourceTree = ""; };
- 648AF73627CFF2CD009327DE /* MultiMul.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MultiMul.cpp; sourceTree = ""; };
- 648AF73727CFF2CD009327DE /* targeting.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = targeting.cpp; sourceTree = ""; };
- 648AF73827CFF2CD009327DE /* skills.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = skills.cpp; sourceTree = ""; };
- 648AF73927CFF2CD009327DE /* power.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = power.h; sourceTree = ""; };
- 648AF73A27CFF2CD009327DE /* findfuncs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = findfuncs.cpp; sourceTree = ""; };
- 648AF73B27CFF2CD009327DE /* Dictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Dictionary.cpp; sourceTree = ""; };
- 648AF73C27CFF2CD009327DE /* CJSEngine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CJSEngine.h; sourceTree = ""; };
- 648AF73D27CFF2CD009327DE /* CJSEngine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CJSEngine.cpp; sourceTree = ""; };
- 648AF73E27CFF2CD009327DE /* UOXJSPropertyFuncs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UOXJSPropertyFuncs.h; sourceTree = ""; };
- 648AF73F27CFF2CD009327DE /* magic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = magic.cpp; sourceTree = ""; };
- 648AF74027CFF2CD009327DE /* commands.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = commands.h; sourceTree = ""; };
- 648AF74127CFF2CD009327DE /* funcdecl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = funcdecl.h; sourceTree = ""; };
- 648AF74227CFF2CD009327DE /* cGuild.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cGuild.cpp; sourceTree = ""; };
- 648AF74327CFF2CD009327DE /* EventTimer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EventTimer.cpp; sourceTree = ""; };
- 648AF74427CFF2CD009327DE /* cChar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cChar.cpp; sourceTree = ""; };
- 648AF74527CFF2CD009327DE /* commands.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = commands.cpp; sourceTree = ""; };
- 648AF74627CFF2CD009327DE /* cServerData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cServerData.h; sourceTree = ""; };
- 648AF74727CFF2CD009327DE /* cThreadQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cThreadQueue.cpp; sourceTree = ""; };
- 648AF74827CFF2CD009327DE /* cHTMLSystem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cHTMLSystem.cpp; sourceTree = ""; };
- 648AF74927CFF2CD009327DE /* combat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = combat.h; sourceTree = ""; };
- 648AF74A27CFF2CD009327DE /* network.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = network.cpp; sourceTree = ""; };
- 648AF74B27CFF2CD009327DE /* scriptc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scriptc.h; sourceTree = ""; };
- 648AF74C27CFF2CD009327DE /* gumps.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gumps.cpp; sourceTree = ""; };
- 648AF74D27CFF2CD009327DE /* sound.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sound.cpp; sourceTree = ""; };
- 648AF74E27CFF2CD009327DE /* teffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = teffect.h; sourceTree = ""; };
- 648AF74F27CFF2CD009327DE /* cHTMLSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cHTMLSystem.h; sourceTree = ""; };
- 648AF75027CFF2CD009327DE /* cConsole.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cConsole.h; sourceTree = ""; };
- 648AF75127CFF2CD009327DE /* cmdtable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cmdtable.cpp; sourceTree = ""; };
- 648AF75227CFF2CD009327DE /* cDice.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cDice.cpp; sourceTree = ""; };
- 648AF75327CFF2CD009327DE /* items.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = items.cpp; sourceTree = ""; };
- 648AF75427CFF2CD009327DE /* cVersionClass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cVersionClass.cpp; sourceTree = ""; };
- 648AF75527CFF2CD009327DE /* cdice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cdice.h; sourceTree = ""; };
- 648AF75627CFF2CD009327DE /* regions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = regions.cpp; sourceTree = ""; };
- 648AF75727CFF2CD009327DE /* Prerequisites.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Prerequisites.h; sourceTree = ""; };
- 648AF75827CFF2CD009327DE /* cServerDefinitions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cServerDefinitions.cpp; sourceTree = ""; };
- 648AF75927CFF2CD009327DE /* ssection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ssection.cpp; sourceTree = ""; };
- 648AF75A27CFF2CD009327DE /* UOXJSPropertyEnums.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UOXJSPropertyEnums.h; sourceTree = ""; };
- 648AF75B27CFF2CD009327DE /* UOXStdHeaders.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UOXStdHeaders.h; sourceTree = ""; };
- 648AF75C27CFF2CD009327DE /* CPacketReceive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPacketReceive.h; sourceTree = ""; };
- 648AF75D27CFF2CD009327DE /* weight.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = weight.h; sourceTree = ""; };
- 648AF75E27CFF2CD009327DE /* scriptc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scriptc.cpp; sourceTree = ""; };
- 648AF75F27CFF2CD009327DE /* EventTimer.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = EventTimer.hpp; sourceTree = ""; };
- 648AF76027CFF2CD009327DE /* JSEncapsulate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSEncapsulate.h; sourceTree = ""; };
- 648AF76127CFF2CD009327DE /* mapstuff.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mapstuff.cpp; sourceTree = ""; };
- 648AF76227CFF2CD009327DE /* cMultiObj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cMultiObj.h; sourceTree = ""; };
- 648AF76327CFF2CD009327DE /* cBaseObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cBaseObject.h; sourceTree = ""; };
- 648AF76427CFF2CD009327DE /* msgboard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = msgboard.cpp; sourceTree = ""; };
- 648AF76527CFF2CD009327DE /* cWeather.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cWeather.cpp; sourceTree = ""; };
- 648AF76627CFF2CD009327DE /* cPlayerAction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cPlayerAction.cpp; sourceTree = ""; };
- 648AF76727CFF2CD009327DE /* gump.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gump.h; sourceTree = ""; };
- 648AF76827CFF2CD009327DE /* movement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = movement.cpp; sourceTree = ""; };
- 648AF76927CFF2CD009327DE /* cSpawnRegion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cSpawnRegion.cpp; sourceTree = ""; };
- 648AF76A27CFF2CD009327DE /* cWeather.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = cWeather.hpp; sourceTree = ""; };
- 648AF76B27CFF2CD009327DE /* PartySystem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PartySystem.cpp; sourceTree = ""; };
- 648AF76C27CFF2CD009327DE /* regions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = regions.h; sourceTree = ""; };
- 648AF76D27CFF2CD009327DE /* MultiMul.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = MultiMul.hpp; sourceTree = ""; };
- 648AF76E27CFF2CD009327DE /* vendor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vendor.cpp; sourceTree = ""; };
- 648AF76F27CFF2CD009327DE /* cThreadQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cThreadQueue.h; sourceTree = ""; };
- 648AF77027CFF2CD009327DE /* fileio.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fileio.cpp; sourceTree = ""; };
- 648AF77127CFF2CD009327DE /* CPacketSend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPacketSend.h; sourceTree = ""; };
- 648AF77227CFF2CD009327DE /* CJSMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CJSMapping.cpp; sourceTree = ""; };
- 648AF77327CFF2CD009327DE /* ssection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ssection.h; sourceTree = ""; };
- 648AF77427CFF2CD009327DE /* IP4Address.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = IP4Address.hpp; sourceTree = ""; };
- 648AF77527CFF2CD009327DE /* books.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = books.cpp; sourceTree = ""; };
- 648AF77627CFF2CD009327DE /* CPacketSend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CPacketSend.cpp; sourceTree = ""; };
- 648AF77727CFF2CD009327DE /* network.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = network.h; sourceTree = ""; };
- 648AF77827CFF2CD009327DE /* PageVector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageVector.h; sourceTree = ""; };
- 648AF77927CFF2CD009327DE /* StringUtility.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StringUtility.cpp; sourceTree = ""; };
- 648AF77A27CFF2CD009327DE /* quantityfuncs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = quantityfuncs.cpp; sourceTree = ""; };
- 648AF77C27CFF2CD009327DE /* typedefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = typedefs.h; sourceTree = ""; };
- 648AF77E27CFF2CD009327DE /* wholist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wholist.h; sourceTree = ""; };
- 648AF77F27CFF2CD009327DE /* cAccountClass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cAccountClass.cpp; sourceTree = ""; };
- 648AF78027CFF2CD009327DE /* ObjectFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ObjectFactory.cpp; sourceTree = ""; };
- 648AF78127CFF2CD009327DE /* npcs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = npcs.cpp; sourceTree = ""; };
- 648AF78227CFF2CD009327DE /* PartySystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PartySystem.h; sourceTree = ""; };
- 648AF78327CFF2CD009327DE /* resource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = resource.h; sourceTree = ""; };
- 648AF78427CFF2CD009327DE /* wholist.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wholist.cpp; sourceTree = ""; };
- 648AF78527CFF2CD009327DE /* combat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = combat.cpp; sourceTree = ""; };
- 648AF78627CFF2CD009327DE /* classes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = classes.h; sourceTree = ""; };
- 648AF78727CFF2CD009327DE /* CGump.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CGump.cpp; sourceTree = ""; };
- 648AF78827CFF2CD009327DE /* UOPData.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = UOPData.hpp; sourceTree = ""; };
- 648AF78927CFF2CD009327DE /* JSEncapsulate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSEncapsulate.cpp; sourceTree = ""; };
- 648AF78A27CFF2CD009327DE /* ai.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ai.cpp; sourceTree = ""; };
- 648AF78B27CFF2CD009327DE /* pcmanage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pcmanage.cpp; sourceTree = ""; };
- 648AF78C27CFF2CD009327DE /* CJSMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CJSMapping.h; sourceTree = ""; };
- 648AF78D27CFF2CD009327DE /* cVersionClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cVersionClass.h; sourceTree = ""; };
- 648AF78E27CFF2CD009327DE /* trade.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = trade.cpp; sourceTree = ""; };
- 648AF78F27CFF2CD009327DE /* enums.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = enums.h; sourceTree = ""; };
- 648AF79027CFF2CD009327DE /* speech.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = speech.h; sourceTree = ""; };
- 648AF79127CFF2CD009327DE /* weight.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = weight.cpp; sourceTree = ""; };
- 648AF79227CFF2CD009327DE /* cSkillClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cSkillClass.h; sourceTree = ""; };
- 648AF79327CFF2CD009327DE /* effect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = effect.cpp; sourceTree = ""; };
- 648AF79427CFF2CD009327DE /* cSocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cSocket.h; sourceTree = ""; };
- 648AF79527CFF2CD009327DE /* speech.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = speech.cpp; sourceTree = ""; };
- 64E0066829354B1800BEBA8F /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
- 64E0066D2935A38900BEBA8F /* libjs.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjs.a; path = ../spidermonkey/libjs.a; sourceTree = ""; };
+ 64A9006A293E3DA3009B54DA /* uox3 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = uox3; sourceTree = BUILT_PRODUCTS_DIR; };
+ 64A90075293E3DD4009B54DA /* ai.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ai.cpp; sourceTree = ""; };
+ 64A90076293E3DD4009B54DA /* archive.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = archive.cpp; sourceTree = ""; };
+ 64A90077293E3DD4009B54DA /* boats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = boats.cpp; sourceTree = ""; };
+ 64A90078293E3DD4009B54DA /* books.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = books.cpp; sourceTree = ""; };
+ 64A90079293E3DD4009B54DA /* books.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = books.h; sourceTree = ""; };
+ 64A9007A293E3DD4009B54DA /* cAccountClass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cAccountClass.cpp; sourceTree = ""; };
+ 64A9007B293E3DD4009B54DA /* cAccountClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cAccountClass.h; sourceTree = ""; };
+ 64A9007C293E3DD4009B54DA /* calcfuncs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = calcfuncs.cpp; sourceTree = ""; };
+ 64A9007D293E3DD4009B54DA /* cBaseobject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cBaseobject.cpp; sourceTree = ""; };
+ 64A9007E293E3DD4009B54DA /* cBaseObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cBaseObject.h; sourceTree = ""; };
+ 64A9007F293E3DD4009B54DA /* cChar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cChar.cpp; sourceTree = ""; };
+ 64A90080293E3DD4009B54DA /* cChar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cChar.h; sourceTree = ""; };
+ 64A90081293E3DD4009B54DA /* cConsole.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cConsole.cpp; sourceTree = ""; };
+ 64A90082293E3DD4009B54DA /* cConsole.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cConsole.h; sourceTree = ""; };
+ 64A90083293E3DD4009B54DA /* cDice.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cDice.cpp; sourceTree = ""; };
+ 64A90084293E3DD4009B54DA /* cdice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cdice.h; sourceTree = ""; };
+ 64A90085293E3DD4009B54DA /* cEffects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cEffects.h; sourceTree = ""; };
+ 64A90086293E3DD4009B54DA /* cGuild.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cGuild.cpp; sourceTree = ""; };
+ 64A90087293E3DD4009B54DA /* cGuild.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cGuild.h; sourceTree = ""; };
+ 64A90088293E3DD4009B54DA /* CGump.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CGump.cpp; sourceTree = ""; };
+ 64A90089293E3DD4009B54DA /* Changelog.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Changelog.txt; sourceTree = ""; };
+ 64A9008A293E3DD4009B54DA /* cHTMLSystem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cHTMLSystem.cpp; sourceTree = ""; };
+ 64A9008B293E3DD4009B54DA /* cHTMLSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cHTMLSystem.h; sourceTree = ""; };
+ 64A9008C293E3DD4009B54DA /* cItem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cItem.cpp; sourceTree = ""; };
+ 64A9008D293E3DD4009B54DA /* cItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cItem.h; sourceTree = ""; };
+ 64A9008E293E3DD4009B54DA /* CJSEngine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CJSEngine.cpp; sourceTree = ""; };
+ 64A9008F293E3DD4009B54DA /* CJSEngine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CJSEngine.h; sourceTree = ""; };
+ 64A90090293E3DD4009B54DA /* CJSMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CJSMapping.cpp; sourceTree = ""; };
+ 64A90091293E3DD4009B54DA /* CJSMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CJSMapping.h; sourceTree = ""; };
+ 64A90092293E3DD4009B54DA /* classes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = classes.h; sourceTree = ""; };
+ 64A90093293E3DD4009B54DA /* cMagic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cMagic.h; sourceTree = ""; };
+ 64A90095293E3DD4009B54DA /* cmdtable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cmdtable.cpp; sourceTree = ""; };
+ 64A90096293E3DD4009B54DA /* cmdtable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cmdtable.h; sourceTree = ""; };
+ 64A90097293E3DD4009B54DA /* cMultiObj.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cMultiObj.cpp; sourceTree = ""; };
+ 64A90098293E3DD4009B54DA /* cMultiObj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cMultiObj.h; sourceTree = ""; };
+ 64A90099293E3DD4009B54DA /* combat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = combat.cpp; sourceTree = ""; };
+ 64A9009A293E3DD4009B54DA /* combat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = combat.h; sourceTree = ""; };
+ 64A9009B293E3DD4009B54DA /* commands.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = commands.cpp; sourceTree = ""; };
+ 64A9009C293E3DD4009B54DA /* commands.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = commands.h; sourceTree = ""; };
+ 64A9009D293E3DD4009B54DA /* ConfigOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfigOS.h; sourceTree = ""; };
+ 64A9009E293E3DD4009B54DA /* CPacketReceive.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CPacketReceive.cpp; sourceTree = ""; };
+ 64A9009F293E3DD4009B54DA /* CPacketReceive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPacketReceive.h; sourceTree = ""; };
+ 64A900A0293E3DD4009B54DA /* CPacketSend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CPacketSend.cpp; sourceTree = ""; };
+ 64A900A1293E3DD4009B54DA /* CPacketSend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPacketSend.h; sourceTree = ""; };
+ 64A900A2293E3DD4009B54DA /* cPlayerAction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cPlayerAction.cpp; sourceTree = ""; };
+ 64A900A3293E3DD4009B54DA /* cRaces.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cRaces.cpp; sourceTree = ""; };
+ 64A900A4293E3DD4009B54DA /* cRaces.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cRaces.h; sourceTree = ""; };
+ 64A900A5293E3DD4009B54DA /* CResponse.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CResponse.cpp; sourceTree = ""; };
+ 64A900A6293E3DD4009B54DA /* CResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CResponse.h; sourceTree = ""; };
+ 64A900A7293E3DD4009B54DA /* cScript.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cScript.cpp; sourceTree = ""; };
+ 64A900A8293E3DD4009B54DA /* cScript.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cScript.h; sourceTree = ""; };
+ 64A900A9293E3DD4009B54DA /* cServerData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cServerData.cpp; sourceTree = ""; };
+ 64A900AA293E3DD4009B54DA /* cServerData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cServerData.h; sourceTree = ""; };
+ 64A900AB293E3DD4009B54DA /* cServerDefinitions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cServerDefinitions.cpp; sourceTree = ""; };
+ 64A900AC293E3DD4009B54DA /* cServerDefinitions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cServerDefinitions.h; sourceTree = ""; };
+ 64A900AD293E3DD4009B54DA /* cSkillClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cSkillClass.h; sourceTree = ""; };
+ 64A900AE293E3DD4009B54DA /* cSocket.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cSocket.cpp; sourceTree = ""; };
+ 64A900AF293E3DD4009B54DA /* cSocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cSocket.h; sourceTree = ""; };
+ 64A900B0293E3DD4009B54DA /* cSpawnRegion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cSpawnRegion.cpp; sourceTree = ""; };
+ 64A900B1293E3DD4009B54DA /* cSpawnRegion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cSpawnRegion.h; sourceTree = ""; };
+ 64A900B2293E3DD4009B54DA /* cThreadQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cThreadQueue.cpp; sourceTree = ""; };
+ 64A900B3293E3DD4009B54DA /* cThreadQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cThreadQueue.h; sourceTree = ""; };
+ 64A900B4293E3DD4009B54DA /* cVersionClass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cVersionClass.cpp; sourceTree = ""; };
+ 64A900B5293E3DD4009B54DA /* cVersionClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cVersionClass.h; sourceTree = ""; };
+ 64A900B6293E3DD4009B54DA /* cWeather.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cWeather.cpp; sourceTree = ""; };
+ 64A900B7293E3DD4009B54DA /* cWeather.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = cWeather.hpp; sourceTree = ""; };
+ 64A900B8293E3DD4009B54DA /* Dictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Dictionary.cpp; sourceTree = ""; };
+ 64A900B9293E3DD4009B54DA /* Dictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Dictionary.h; sourceTree = ""; };
+ 64A900BA293E3DD4009B54DA /* dist.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dist.cpp; sourceTree = ""; };
+ 64A900BB293E3DD4009B54DA /* effect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = effect.cpp; sourceTree = ""; };
+ 64A900BC293E3DD4009B54DA /* enums.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = enums.h; sourceTree = ""; };
+ 64A900BD293E3DD4009B54DA /* EventTimer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EventTimer.cpp; sourceTree = ""; };
+ 64A900BE293E3DD4009B54DA /* EventTimer.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = EventTimer.hpp; sourceTree = ""; };
+ 64A900BF293E3DD4009B54DA /* fileio.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fileio.cpp; sourceTree = ""; };
+ 64A900C0293E3DD4009B54DA /* findfuncs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = findfuncs.cpp; sourceTree = ""; };
+ 64A900C1293E3DD4009B54DA /* funcdecl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = funcdecl.h; sourceTree = ""; };
+ 64A900C2293E3DD4009B54DA /* GenericList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GenericList.h; sourceTree = "