From 1552268daef42db1ba6a849ebe53cdc8bec7d078 Mon Sep 17 00:00:00 2001 From: Mordred <30826167+SapphireMordred@users.noreply.github.com> Date: Thu, 30 Aug 2018 11:39:39 +0200 Subject: [PATCH 01/16] Updated .editorconfig for 2 spaces --- .editorconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index 84678469..a67d46ec 100644 --- a/.editorconfig +++ b/.editorconfig @@ -3,7 +3,7 @@ root = true # find plugin for your editor here: http://editorconfig.org/#download [*.{cpp,h,chai,inc}] indent_style = space -indent_size = 3 +indent_size = 2 end_of_line = lf trim_trailing_whitespace = true indent_brace_style = Allman From 87478ea5411909582bbc41f43fe1cdf65ea31ba1 Mon Sep 17 00:00:00 2001 From: Mordred <30826167+SapphireMordred@users.noreply.github.com> Date: Thu, 30 Aug 2018 13:31:33 +0200 Subject: [PATCH 02/16] Update CONTRIBUTING.md --- CONTRIBUTING.md | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index da0c7441..b50b5c62 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -22,7 +22,7 @@ When making a PR, please make sure that it follows our style guidelines and good ### Coding style -Indentations are Allman-style based, 3-space, no tabs. +Indentations are Allman-style based, 2-space, no tabs. Space between arguments in function calls, as well as for types. Example (shortened from ActionHandler.cpp): @@ -30,30 +30,30 @@ Example (shortened from ActionHandler.cpp): ```cpp switch( commandId ) { - case 0x01: // Toggle sheathe - { - if ( param11 == 1 ) - pPlayer->setStance( Entity::Chara::Stance::Active ); - else - { - pPlayer->setStance( Entity::Chara::Stance::Passive ); - pPlayer->setAutoattack( false ); - } + case 0x01: // Toggle sheathe + { + if ( param11 == 1 ) + pPlayer->setStance( Entity::Chara::Stance::Active ); + else + { + pPlayer->setStance( Entity::Chara::Stance::Passive ); + pPlayer->setAutoattack( false ); + } - pPlayer->sendToInRangeSet( ActorControlPacket142( pPlayer->getId(), 0, param11, 1 ) ); + pPlayer->sendToInRangeSet( ActorControlPacket142( pPlayer->getId(), 0, param11, 1 ) ); - break; - } - case 0x03: // Change target - { - uint64_t targetId = inPacket.getValAt< uint64_t >( 0x24 ); - pPlayer->changeTarget( targetId ); - break; - } - default: - { - break; - } + break; + } + case 0x03: // Change target + { + uint64_t targetId = inPacket.getValAt< uint64_t >( 0x24 ); + pPlayer->changeTarget( targetId ); + break; + } + default: + { + break; + } } ``` From 62a5bcb8cb4ec48a68c870d39239af3f60d200fb Mon Sep 17 00:00:00 2001 From: Squall Leonhart <43782392+Squall5668@users.noreply.github.com> Date: Mon, 15 Oct 2018 21:38:39 +0300 Subject: [PATCH 03/16] Fixes disappearing soul crystals on re-logging. --- src/servers/sapphire_zone/Actor/PlayerSql.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/Actor/PlayerSql.cpp b/src/servers/sapphire_zone/Actor/PlayerSql.cpp index 5b6abae1..1f98fa7b 100644 --- a/src/servers/sapphire_zone/Actor/PlayerSql.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerSql.cpp @@ -608,7 +608,7 @@ bool Core::Entity::Player::loadInventory() { uint16_t storageId = res->getUInt16( 1 ); - for( uint32_t i = 1; i <= 13; i++ ) + for( uint32_t i = 1; i <= 14; i++ ) { uint64_t uItemId = res->getUInt64( i + 1 ); if( uItemId == 0 ) From a7fc43a2d5153a101ad071b674cf8b11ff2715b8 Mon Sep 17 00:00:00 2001 From: Squall Leonhart <43782392+Squall5668@users.noreply.github.com> Date: Tue, 16 Oct 2018 20:06:30 +0300 Subject: [PATCH 04/16] Add ArmorySoulCrystal on new character creation. --- src/servers/sapphire_api/PlayerMinimal.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/servers/sapphire_api/PlayerMinimal.cpp b/src/servers/sapphire_api/PlayerMinimal.cpp index d117eea0..db375d03 100644 --- a/src/servers/sapphire_api/PlayerMinimal.cpp +++ b/src/servers/sapphire_api/PlayerMinimal.cpp @@ -319,6 +319,7 @@ void PlayerMinimal::saveAsNew() createInvDbContainer( InventoryType::ArmoryWrist ); createInvDbContainer( InventoryType::ArmoryRing ); createInvDbContainer( InventoryType::ArmoryMain ); + createInvDbContainer( InventoryType::ArmorySoulCrystal ); createInvDbContainer( InventoryType::Currency ); createInvDbContainer( InventoryType::Crystal ); From 30c80450e23c62f56ec940f4ed174a753d1684db Mon Sep 17 00:00:00 2001 From: Squall Leonhart <43782392+Squall5668@users.noreply.github.com> Date: Wed, 17 Oct 2018 23:25:41 +0300 Subject: [PATCH 05/16] Implements class change on weapon swap. --- .../sapphire_zone/Actor/PlayerInventory.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp index a40ce99f..e8c51b73 100644 --- a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp @@ -122,16 +122,12 @@ void Core::Entity::Player::equipWeapon( ItemPtr pItem ) auto itemInfo = exdData->get< Core::Data::Item >( pItem->getId() ); auto itemClassJob = itemInfo->classJobUse; - - auto currentClass = getClass(); + auto classJobInfo = exdData->get< Core::Data::ClassJob >( (uint32_t)getClass() ); + auto currentParentClass = static_cast< ClassJob >(classJobInfo->classJobParent); auto newClassJob = static_cast< ClassJob >( itemClassJob ); - if( isClassJobUnlocked( newClassJob ) ) - return; - - // todo: check if soul crystal is equipped and use job instead - - setClassJob( newClassJob ); + if( ( isClassJobUnlocked( newClassJob ) ) && ( currentParentClass != newClassJob ) ) + setClassJob( newClassJob ); } // equip an item @@ -160,8 +156,7 @@ void Core::Entity::Player::updateModels( GearSetSlot equipSlotId, const Core::It case MainHand: m_modelMainWeapon = model; m_modelSubWeapon = model2; - // TODO: add job change upon changing weapon if needed - // equipWeapon( pItem ); + equipWeapon( pItem ); break; case OffHand: From 8d96779a8ec2fc60d0d56f76a1503c47544f7c58 Mon Sep 17 00:00:00 2001 From: Squall Leonhart <43782392+Squall5668@users.noreply.github.com> Date: Thu, 18 Oct 2018 07:48:34 +0300 Subject: [PATCH 06/16] Code style. --- src/servers/sapphire_zone/Actor/PlayerInventory.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp index e8c51b73..80d62605 100644 --- a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp @@ -122,8 +122,8 @@ void Core::Entity::Player::equipWeapon( ItemPtr pItem ) auto itemInfo = exdData->get< Core::Data::Item >( pItem->getId() ); auto itemClassJob = itemInfo->classJobUse; - auto classJobInfo = exdData->get< Core::Data::ClassJob >( (uint32_t)getClass() ); - auto currentParentClass = static_cast< ClassJob >(classJobInfo->classJobParent); + auto classJobInfo = exdData->get< Core::Data::ClassJob >( ( uint32_t )getClass() ); + auto currentParentClass = static_cast< ClassJob >( classJobInfo->classJobParent ); auto newClassJob = static_cast< ClassJob >( itemClassJob ); if( ( isClassJobUnlocked( newClassJob ) ) && ( currentParentClass != newClassJob ) ) From b0b09ea91fbaa6b10317fbc188b1fea4c5aeac9b Mon Sep 17 00:00:00 2001 From: Biscuit Date: Thu, 18 Oct 2018 20:46:55 +1100 Subject: [PATCH 07/16] ModelEquip Updates Turns out padding1 holds some extra stuff --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 5 ++++- .../sapphire_zone/Network/PacketWrappers/ModelEquipPacket.h | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index b4115dc4..6ea34e79 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -976,7 +976,10 @@ struct FFXIVIpcModelEquip : { /* 0000 */ uint64_t mainWeapon; /* 0008 */ uint64_t offWeapon; - /* 0010 */ uint32_t padding1; + /* 0010 */ uint8_t unk1; + /* 0011 */ uint8_t classJobId; + /* 0012 */ uint8_t level; + /* 0013 */ uint8_t unk2; /* 0014 */ uint32_t models[10]; /* 003C */ uint32_t padding2; }; diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/ModelEquipPacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/ModelEquipPacket.h index fd2801fa..f0bb7ebe 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/ModelEquipPacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/ModelEquipPacket.h @@ -28,6 +28,8 @@ private: { m_data.mainWeapon = player.getModelMainWeapon(); m_data.offWeapon = player.getModelSubWeapon(); + m_data.classJobId = static_cast< uint8_t >( player.getClass() ); + m_data.level = player.getLevel(); m_data.models[ Common::GearModelSlot::ModelHead ] = player.getModelForSlot( Common::GearModelSlot::ModelHead ); m_data.models[ Common::GearModelSlot::ModelBody ] = player.getModelForSlot( Common::GearModelSlot::ModelBody ); m_data.models[ Common::GearModelSlot::ModelHands ] = player.getModelForSlot( Common::GearModelSlot::ModelHands ); From 17f342d86cae24dbe2a63a0af653d212e41b2156 Mon Sep 17 00:00:00 2001 From: Squall Leonhart <43782392+Squall5668@users.noreply.github.com> Date: Thu, 18 Oct 2018 20:59:04 +0300 Subject: [PATCH 08/16] Fixes logon crash when using weapon of another class. --- src/servers/sapphire_zone/Actor/Player.h | 4 ++-- .../sapphire_zone/Actor/PlayerInventory.cpp | 19 ++++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index fd5f4a65..ce984909 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -324,7 +324,7 @@ public: void unequipItem( Common::GearSetSlot equipSlotId, ItemPtr pItem ); /*! equip a weapon, possibly forcing a job change */ - void equipWeapon( ItemPtr pItem ); + void equipWeapon( ItemPtr pItem, bool updateClass ); /*! get player ilvl */ uint16_t getItemLevel() const; @@ -356,7 +356,7 @@ public: /*! return the current amount of crystals of type */ uint32_t getCrystal( uint8_t type ) const; - void updateModels( Common::GearSetSlot equipSlotId, const Core::ItemPtr& pItem ); + void updateModels( Common::GearSetSlot equipSlotId, const Core::ItemPtr& pItem, bool updateClass ); Common::GearModelSlot equipSlotToModelSlot( Common::GearSetSlot slot ); diff --git a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp index 80d62605..bd7c1272 100644 --- a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp @@ -114,7 +114,7 @@ void Core::Entity::Player::sendItemLevel() queuePacket( makeActorControl142( getId(), SetItemLevel, getItemLevel(), 0 ) ); } -void Core::Entity::Player::equipWeapon( ItemPtr pItem ) +void Core::Entity::Player::equipWeapon( ItemPtr pItem, bool updateClass ) { auto exdData = g_fw.get< Core::Data::ExdDataGenerated >(); if( !exdData ) @@ -127,7 +127,12 @@ void Core::Entity::Player::equipWeapon( ItemPtr pItem ) auto newClassJob = static_cast< ClassJob >( itemClassJob ); if( ( isClassJobUnlocked( newClassJob ) ) && ( currentParentClass != newClassJob ) ) - setClassJob( newClassJob ); + { + if ( updateClass ) + setClassJob( newClassJob ); + else + return; + } } // equip an item @@ -135,18 +140,18 @@ void Core::Entity::Player::equipItem( Common::GearSetSlot equipSlotId, ItemPtr p { //g_framework.getLogger().debug( "Equipping into slot " + std::to_string( equipSlotId ) ); - - updateModels( equipSlotId, pItem ); - if( sendUpdate ) { + updateModels( equipSlotId, pItem, true ); this->sendModel(); m_itemLevel = calculateEquippedGearItemLevel(); sendItemLevel(); } + else + updateModels( equipSlotId, pItem, false ); } -void Core::Entity::Player::updateModels( GearSetSlot equipSlotId, const Core::ItemPtr& pItem ) +void Core::Entity::Player::updateModels( GearSetSlot equipSlotId, const Core::ItemPtr& pItem, bool updateClass ) { uint64_t model = pItem->getModelId1(); uint64_t model2 = pItem->getModelId2(); @@ -156,7 +161,7 @@ void Core::Entity::Player::updateModels( GearSetSlot equipSlotId, const Core::It case MainHand: m_modelMainWeapon = model; m_modelSubWeapon = model2; - equipWeapon( pItem ); + equipWeapon( pItem, updateClass ); break; case OffHand: From be5368edbf8db6516e2f3e71adc0e7676396ef06 Mon Sep 17 00:00:00 2001 From: Squall Leonhart <43782392+Squall5668@users.noreply.github.com> Date: Fri, 19 Oct 2018 16:48:18 +0300 Subject: [PATCH 09/16] Thanks Adam. Change c-style cast. --- src/servers/sapphire_zone/Actor/PlayerInventory.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp index bd7c1272..f8aef788 100644 --- a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp @@ -122,7 +122,7 @@ void Core::Entity::Player::equipWeapon( ItemPtr pItem, bool updateClass ) auto itemInfo = exdData->get< Core::Data::Item >( pItem->getId() ); auto itemClassJob = itemInfo->classJobUse; - auto classJobInfo = exdData->get< Core::Data::ClassJob >( ( uint32_t )getClass() ); + auto classJobInfo = exdData->get< Core::Data::ClassJob >( static_cast< uint32_t >( getClass() ) ); auto currentParentClass = static_cast< ClassJob >( classJobInfo->classJobParent ); auto newClassJob = static_cast< ClassJob >( itemClassJob ); From 7297c92348e55753aa39012c4abce8d09144d9b9 Mon Sep 17 00:00:00 2001 From: Squall Leonhart <43782392+Squall5668@users.noreply.github.com> Date: Sat, 20 Oct 2018 13:56:01 +0300 Subject: [PATCH 10/16] Add level1 to setCLassJob. --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 4 ++-- src/servers/sapphire_zone/Actor/Player.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 0d92d010..8b65040d 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1000,8 +1000,8 @@ struct FFXIVIpcPlayerClassInfo : uint16_t classId; uint8_t unknown; uint8_t isSpecialist; - uint16_t level; // Locks actions, equipment, prob more - uint16_t level1; // Locks roles, prob more + uint16_t level; // Locks actions, equipment, prob more. Player's current level (synced). + uint16_t level1; // Locks roles, prob more. Player's actual unsynced level. uint32_t roleActions[10]; }; diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 6efdf86a..c6a894e3 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -746,6 +746,7 @@ void Core::Entity::Player::setClassJob( Common::ClassJob classJob ) auto classInfoPacket = makeZonePacket< FFXIVIpcPlayerClassInfo >( getId() ); classInfoPacket->data().classId = static_cast< uint8_t >( getClass() ); + classInfoPacket->data().level1 = getLevel(); classInfoPacket->data().level = getLevel(); queuePacket( classInfoPacket ); @@ -1733,4 +1734,3 @@ bool Core::Entity::Player::isOnEnterEventDone() const { return m_onEnterEventDone; } - From 81399e2af2e9d76377b2208daaf88c306a7871cf Mon Sep 17 00:00:00 2001 From: Squall Leonhart <43782392+Squall5668@users.noreply.github.com> Date: Sat, 20 Oct 2018 14:20:39 +0300 Subject: [PATCH 11/16] Add equipSoulCrystal & unequipSoulCrystal --- src/servers/sapphire_zone/Actor/Player.h | 6 ++++ .../sapphire_zone/Actor/PlayerInventory.cpp | 31 +++++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index ce984909..bb17af0a 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -326,6 +326,12 @@ public: /*! equip a weapon, possibly forcing a job change */ void equipWeapon( ItemPtr pItem, bool updateClass ); + /*! equip a soul crystal, possibly forcing a job change*/ + void equipSoulCrystal( ItemPtr pItem, bool updateClass ); + + /*! unequip a soul crystal, returning to the base class*/ + void unequipSoulCrystal( ItemPtr pItem ); + /*! get player ilvl */ uint16_t getItemLevel() const; diff --git a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp index f8aef788..521b11e4 100644 --- a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp @@ -135,6 +135,20 @@ void Core::Entity::Player::equipWeapon( ItemPtr pItem, bool updateClass ) } } +void Core::Entity::Player::equipSoulCrystal( ItemPtr pItem, bool updateJob ) +{ + auto exdData = g_fw.get< Core::Data::ExdDataGenerated >(); + if ( !exdData ) + return; + + auto itemInfo = exdData->get< Core::Data::Item >( pItem->getId() ); + auto itemClassJob = itemInfo->classJobUse; + auto newClassJob = static_cast< ClassJob >( itemClassJob ); + + if ( isClassJobUnlocked( newClassJob ) && updateJob ) + setClassJob( newClassJob ); +} + // equip an item void Core::Entity::Player::equipItem( Common::GearSetSlot equipSlotId, ItemPtr pItem, bool sendUpdate ) { @@ -169,8 +183,7 @@ void Core::Entity::Player::updateModels( GearSetSlot equipSlotId, const Core::It break; case SoulCrystal: - // TODO: add Job change on equipping crystal - // change job + equipSoulCrystal( pItem, updateClass ); break; case Waist: @@ -228,6 +241,20 @@ void Core::Entity::Player::unequipItem( Common::GearSetSlot equipSlotId, ItemPtr m_itemLevel = calculateEquippedGearItemLevel(); sendItemLevel(); + + if ( equipSlotId == SoulCrystal ) + unequipSoulCrystal( pItem ); +} + +void Core::Entity::Player::unequipSoulCrystal( ItemPtr pItem ) +{ + auto exdData = g_fw.get< Core::Data::ExdDataGenerated >(); + if ( !exdData ) + return; + + auto currentClassJob = exdData->get< Core::Data::ClassJob >( static_cast< uint32_t >( getClass() ) ); + auto parentClass = static_cast< ClassJob >( currentClassJob->classJobParent ); + setClassJob ( parentClass ); } // TODO: these next functions are so similar that they could likely be simplified From b173efef762224767e334dfda7b495e6668347ce Mon Sep 17 00:00:00 2001 From: Squall Leonhart <43782392+Squall5668@users.noreply.github.com> Date: Sat, 20 Oct 2018 14:36:56 +0300 Subject: [PATCH 12/16] No space --- src/servers/sapphire_zone/Actor/PlayerInventory.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp index 521b11e4..6589a9b1 100644 --- a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp @@ -254,7 +254,7 @@ void Core::Entity::Player::unequipSoulCrystal( ItemPtr pItem ) auto currentClassJob = exdData->get< Core::Data::ClassJob >( static_cast< uint32_t >( getClass() ) ); auto parentClass = static_cast< ClassJob >( currentClassJob->classJobParent ); - setClassJob ( parentClass ); + setClassJob( parentClass ); } // TODO: these next functions are so similar that they could likely be simplified From 6be4bb36b0b75c474aee7ba5ecce07c9fc242878 Mon Sep 17 00:00:00 2001 From: Squall Leonhart <43782392+Squall5668@users.noreply.github.com> Date: Sat, 20 Oct 2018 15:39:20 +0300 Subject: [PATCH 13/16] These should be the only references. --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 4 ++-- src/servers/sapphire_zone/Actor/Player.cpp | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 8b65040d..c42be004 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1000,8 +1000,8 @@ struct FFXIVIpcPlayerClassInfo : uint16_t classId; uint8_t unknown; uint8_t isSpecialist; - uint16_t level; // Locks actions, equipment, prob more. Player's current level (synced). - uint16_t level1; // Locks roles, prob more. Player's actual unsynced level. + uint16_t syncedLevel; // Locks actions, equipment, prob more. Player's current level (synced). + uint16_t classLevel; // Locks roles, prob more. Player's actual unsynced level. uint32_t roleActions[10]; }; diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index c6a894e3..e9b06529 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -746,8 +746,8 @@ void Core::Entity::Player::setClassJob( Common::ClassJob classJob ) auto classInfoPacket = makeZonePacket< FFXIVIpcPlayerClassInfo >( getId() ); classInfoPacket->data().classId = static_cast< uint8_t >( getClass() ); - classInfoPacket->data().level1 = getLevel(); - classInfoPacket->data().level = getLevel(); + classInfoPacket->data().classLevel = getLevel(); + classInfoPacket->data().syncedLevel = getLevel(); queuePacket( classInfoPacket ); sendToInRangeSet( makeActorControl142( getId(), ClassJobChange, 0x04 ), true ); @@ -1551,8 +1551,8 @@ void Core::Entity::Player::sendZonePackets() auto classInfoPacket = makeZonePacket< FFXIVIpcPlayerClassInfo >( getId() ); classInfoPacket->data().classId = static_cast< uint8_t >( getClass() ); classInfoPacket->data().unknown = 1; - classInfoPacket->data().level = getLevel(); - classInfoPacket->data().level1 = getLevel(); + classInfoPacket->data().syncedLevel = getLevel(); + classInfoPacket->data().classLevel = getLevel(); queuePacket( classInfoPacket ); m_itemLevel = calculateEquippedGearItemLevel(); From 9d76245037c391a6fd07a3b7c94b42e466def387 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 24 Oct 2018 20:26:50 +1100 Subject: [PATCH 14/16] move to cpp17, remove most of boost from db --- cmake/compiler.cmake | 2 +- src/common/Database/DbConnection.cpp | 22 ++++++------- src/common/Database/DbConnection.h | 27 ++++++++------- src/common/Database/DbWorker.cpp | 4 +-- src/common/Database/DbWorker.h | 6 ++-- src/common/Database/DbWorkerPool.cpp | 40 +++++++++++------------ src/common/Database/DbWorkerPool.h | 20 ++++++------ src/common/Database/PreparedStatement.cpp | 3 +- src/common/Database/PreparedStatement.h | 6 ++-- src/common/Database/StatementTask.cpp | 2 +- src/common/Database/StatementTask.h | 4 +-- src/common/Database/ZoneDbConnection.cpp | 2 +- src/common/Database/ZoneDbConnection.h | 2 +- 13 files changed, 70 insertions(+), 70 deletions(-) diff --git a/cmake/compiler.cmake b/cmake/compiler.cmake index 20bab671..c614329e 100644 --- a/cmake/compiler.cmake +++ b/cmake/compiler.cmake @@ -1,6 +1,6 @@ if(UNIX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32") else() add_definitions(-D_WIN32_WINNT=0x601) diff --git a/src/common/Database/DbConnection.cpp b/src/common/Database/DbConnection.cpp index 7a27717c..ddc539db 100644 --- a/src/common/Database/DbConnection.cpp +++ b/src/common/Database/DbConnection.cpp @@ -20,7 +20,7 @@ Core::Db::DbConnection::DbConnection( ConnectionInfo& connInfo ) : } -Core::Db::DbConnection::DbConnection( Core::LockedWaitQueue< boost::shared_ptr< Operation > >* queue, +Core::Db::DbConnection::DbConnection( Core::LockedWaitQueue< std::shared_ptr< Operation > >* queue, Core::Db::ConnectionInfo& connInfo ) : m_reconnecting( false ), m_prepareError( false ), @@ -29,7 +29,7 @@ Core::Db::DbConnection::DbConnection( Core::LockedWaitQueue< boost::shared_ptr< m_connectionInfo( connInfo ), m_connectionFlags( CONNECTION_ASYNC ) { - m_worker = boost::make_shared< DbWorker >( m_queue, this ); + m_worker = std::make_shared< DbWorker >( m_queue, this ); } Core::Db::DbConnection::~DbConnection() @@ -53,7 +53,7 @@ void Core::Db::DbConnection::close() uint32_t Core::Db::DbConnection::open() { - boost::shared_ptr< Mysql::MySqlBase > base( new Mysql::MySqlBase() ); + std::shared_ptr< Mysql::MySqlBase > base( new Mysql::MySqlBase() ); Mysql::optionMap options; options[ MYSQL_OPT_RECONNECT ] = "1"; options[ MYSQL_SET_CHARSET_NAME ] = "utf8"; @@ -124,7 +124,7 @@ bool Core::Db::DbConnection::execute( const std::string& sql ) } } -boost::shared_ptr< Mysql::ResultSet > Core::Db::DbConnection::query( const std::string& sql ) +std::shared_ptr< Mysql::ResultSet > Core::Db::DbConnection::query( const std::string& sql ) { try { @@ -140,10 +140,10 @@ boost::shared_ptr< Mysql::ResultSet > Core::Db::DbConnection::query( const std:: } -boost::shared_ptr< Mysql::ResultSet > -Core::Db::DbConnection::query( boost::shared_ptr< Core::Db::PreparedStatement > stmt ) +std::shared_ptr< Mysql::ResultSet > +Core::Db::DbConnection::query( std::shared_ptr< Core::Db::PreparedStatement > stmt ) { - boost::shared_ptr< Mysql::ResultSet > res( nullptr ); + std::shared_ptr< Mysql::ResultSet > res( nullptr ); if( !stmt ) return nullptr; @@ -177,7 +177,7 @@ Core::Db::DbConnection::query( boost::shared_ptr< Core::Db::PreparedStatement > } -bool Core::Db::DbConnection::execute( boost::shared_ptr< Core::Db::PreparedStatement > stmt ) +bool Core::Db::DbConnection::execute( std::shared_ptr< Core::Db::PreparedStatement > stmt ) { if( !stmt ) return false; @@ -202,7 +202,7 @@ bool Core::Db::DbConnection::execute( boost::shared_ptr< Core::Db::PreparedState } } -boost::shared_ptr< Mysql::PreparedStatement > Core::Db::DbConnection::getPreparedStatement( uint32_t index ) +std::shared_ptr< Mysql::PreparedStatement > Core::Db::DbConnection::getPreparedStatement( uint32_t index ) { assert( index < m_stmts.size() ); auto ret = m_stmts[ index ]; @@ -225,7 +225,7 @@ void Core::Db::DbConnection::prepareStatement( uint32_t index, const std::string return; } - boost::shared_ptr< Mysql::PreparedStatement > pStmt( nullptr ); + std::shared_ptr< Mysql::PreparedStatement > pStmt( nullptr ); try { @@ -237,7 +237,7 @@ void Core::Db::DbConnection::prepareStatement( uint32_t index, const std::string m_prepareError = true; } - m_stmts[ index ] = boost::shared_ptr< Mysql::PreparedStatement >( pStmt ); + m_stmts[ index ] = std::shared_ptr< Mysql::PreparedStatement >( pStmt ); } diff --git a/src/common/Database/DbConnection.h b/src/common/Database/DbConnection.h index fda87691..b5b32a0f 100644 --- a/src/common/Database/DbConnection.h +++ b/src/common/Database/DbConnection.h @@ -7,8 +7,7 @@ #include #include #include "Util/LockedWaitQueue.h" -#include -#include +#include namespace Mysql { class Connection; @@ -30,7 +29,7 @@ class Operation; class DbWorker; -using PreparedStmtScopedPtr = boost::scoped_ptr< PreparedStatement >; +using PreparedStmtScopedPtr = std::unique_ptr< PreparedStatement >; enum ConnectionFlags { @@ -53,14 +52,14 @@ struct ConnectionInfo using PreparedStatementMap = std::map< uint32_t, std::pair< std::string, ConnectionFlags > >; class DbConnection : - public boost::enable_shared_from_this< DbConnection > + public std::enable_shared_from_this< DbConnection > { public: // Constructor for synchronous connections. DbConnection( ConnectionInfo& connInfo ); // Constructor for asynchronous connections. - DbConnection( Core::LockedWaitQueue< boost::shared_ptr< Operation > >* queue, ConnectionInfo& connInfo ); + DbConnection( Core::LockedWaitQueue< std::shared_ptr< Operation > >* queue, ConnectionInfo& connInfo ); virtual ~DbConnection(); @@ -72,11 +71,11 @@ public: bool execute( const std::string& sql ); - bool execute( boost::shared_ptr< PreparedStatement > stmt ); + bool execute( std::shared_ptr< PreparedStatement > stmt ); - boost::shared_ptr< Mysql::ResultSet > query( const std::string& sql ); + std::shared_ptr< Mysql::ResultSet > query( const std::string& sql ); - boost::shared_ptr< Mysql::ResultSet > query( boost::shared_ptr< PreparedStatement > stmt ); + std::shared_ptr< Mysql::ResultSet > query( std::shared_ptr< PreparedStatement > stmt ); void beginTransaction(); @@ -92,27 +91,27 @@ public: void unlock(); - boost::shared_ptr< Mysql::Connection > getConnection() + std::shared_ptr< Mysql::Connection > getConnection() { return m_pConnection; } - boost::shared_ptr< Mysql::PreparedStatement > getPreparedStatement( uint32_t index ); + std::shared_ptr< Mysql::PreparedStatement > getPreparedStatement( uint32_t index ); void prepareStatement( uint32_t index, const std::string& sql, ConnectionFlags flags ); virtual void doPrepareStatements() = 0; protected: - std::vector< boost::shared_ptr< Mysql::PreparedStatement > > m_stmts; + std::vector< std::shared_ptr< Mysql::PreparedStatement > > m_stmts; PreparedStatementMap m_queries; bool m_reconnecting; bool m_prepareError; private: - LockedWaitQueue< boost::shared_ptr< Operation > >* m_queue; - boost::shared_ptr< DbWorker > m_worker; - boost::shared_ptr< Mysql::Connection > m_pConnection; + LockedWaitQueue< std::shared_ptr< Operation > >* m_queue; + std::shared_ptr< DbWorker > m_worker; + std::shared_ptr< Mysql::Connection > m_pConnection; ConnectionInfo& m_connectionInfo; ConnectionFlags m_connectionFlags; std::mutex m_mutex; diff --git a/src/common/Database/DbWorker.cpp b/src/common/Database/DbWorker.cpp index b184b82f..8aa41a95 100644 --- a/src/common/Database/DbWorker.cpp +++ b/src/common/Database/DbWorker.cpp @@ -2,7 +2,7 @@ #include "Operation.h" #include "Util/LockedWaitQueue.h" -Core::Db::DbWorker::DbWorker( Core::LockedWaitQueue< boost::shared_ptr< Operation > >* newQueue, DbConnection* pConn ) +Core::Db::DbWorker::DbWorker( Core::LockedWaitQueue< std::shared_ptr< Operation > >* newQueue, DbConnection* pConn ) { m_pConn = pConn; m_queue = newQueue; @@ -24,7 +24,7 @@ void Core::Db::DbWorker::workerThread() while( true ) { - boost::shared_ptr< Operation > operation = nullptr; + std::shared_ptr< Operation > operation = nullptr; m_queue->waitAndPop( operation ); diff --git a/src/common/Database/DbWorker.h b/src/common/Database/DbWorker.h index 49f0dd56..7240cab1 100644 --- a/src/common/Database/DbWorker.h +++ b/src/common/Database/DbWorker.h @@ -4,7 +4,7 @@ #include #include #include "Util/LockedWaitQueue.h" -#include +#include namespace Core { namespace Db { @@ -15,12 +15,12 @@ class Operation; class DbWorker { public: - DbWorker( LockedWaitQueue< boost::shared_ptr< Operation > >* newQueue, DbConnection* connection ); + DbWorker( LockedWaitQueue< std::shared_ptr< Operation > >* newQueue, DbConnection* connection ); ~DbWorker(); private: - LockedWaitQueue< boost::shared_ptr< Operation > >* m_queue; + LockedWaitQueue< std::shared_ptr< Operation > >* m_queue; DbConnection* m_pConn; void workerThread(); diff --git a/src/common/Database/DbWorkerPool.cpp b/src/common/Database/DbWorkerPool.cpp index 357c8e13..d276e78c 100644 --- a/src/common/Database/DbWorkerPool.cpp +++ b/src/common/Database/DbWorkerPool.cpp @@ -25,7 +25,7 @@ class PingOperation : template< class T > Core::Db::DbWorkerPool< T >::DbWorkerPool() : - m_queue( new Core::LockedWaitQueue< boost::shared_ptr< Operation > >() ), + m_queue( new Core::LockedWaitQueue< std::shared_ptr< Operation > >() ), m_asyncThreads( 0 ), m_synchThreads( 0 ) { @@ -103,34 +103,34 @@ bool Core::Db::DbWorkerPool< T >::prepareStatements() } template< class T > -boost::shared_ptr< Mysql::ResultSet > -Core::Db::DbWorkerPool< T >::query( const std::string& sql, boost::shared_ptr< T > connection ) +std::shared_ptr< Mysql::ResultSet > +Core::Db::DbWorkerPool< T >::query( const std::string& sql, std::shared_ptr< T > connection ) { if( !connection ) connection = getFreeConnection(); - boost::shared_ptr< Mysql::ResultSet > result = connection->query( sql ); + std::shared_ptr< Mysql::ResultSet > result = connection->query( sql ); connection->unlock(); return result; } template< class T > -boost::shared_ptr< Mysql::PreparedResultSet > -Core::Db::DbWorkerPool< T >::query( boost::shared_ptr< PreparedStatement > stmt ) +std::shared_ptr< Mysql::PreparedResultSet > +Core::Db::DbWorkerPool< T >::query( std::shared_ptr< PreparedStatement > stmt ) { auto connection = getFreeConnection(); - auto ret = boost::static_pointer_cast< Mysql::PreparedResultSet >( connection->query( stmt ) ); + auto ret = std::static_pointer_cast< Mysql::PreparedResultSet >( connection->query( stmt ) ); connection->unlock(); return ret; } template< class T > -boost::shared_ptr< Core::Db::PreparedStatement > +std::shared_ptr< Core::Db::PreparedStatement > Core::Db::DbWorkerPool< T >::getPreparedStatement( PreparedStatementIndex index ) { - return boost::make_shared< PreparedStatement >( index ); + return std::make_shared< PreparedStatement >( index ); } template< class T > @@ -159,7 +159,7 @@ void Core::Db::DbWorkerPool< T >::keepAlive() const auto count = m_connections[ IDX_ASYNC ].size(); for( uint8_t i = 0; i < count; ++i ) - enqueue( boost::make_shared< PingOperation >() ); + enqueue( std::make_shared< PingOperation >() ); } template< class T > @@ -173,11 +173,11 @@ uint32_t Core::Db::DbWorkerPool< T >::openConnections( InternalIndex type, uint8 switch( type ) { case IDX_ASYNC: - return boost::make_shared< T >( m_queue.get(), m_connectionInfo ); + return std::make_shared< T >( m_queue.get(), m_connectionInfo ); case IDX_SYNCH: - return boost::make_shared< T >( m_connectionInfo ); + return std::make_shared< T >( m_connectionInfo ); default: - return boost::shared_ptr< T >( nullptr ); + return std::shared_ptr< T >( nullptr ); } }(); @@ -204,17 +204,17 @@ unsigned long Core::Db::DbWorkerPool< T >::escapeString( char* to, const char* f } template< class T > -void Core::Db::DbWorkerPool< T >::enqueue( boost::shared_ptr< Operation > op ) +void Core::Db::DbWorkerPool< T >::enqueue( std::shared_ptr< Operation > op ) { m_queue->push( op ); } template< class T > -boost::shared_ptr< T > Core::Db::DbWorkerPool< T >::getFreeConnection() +std::shared_ptr< T > Core::Db::DbWorkerPool< T >::getFreeConnection() { uint8_t i = 0; const auto numCons = m_connections[ IDX_SYNCH ].size(); - boost::shared_ptr< T > connection = nullptr; + std::shared_ptr< T > connection = nullptr; while( true ) { @@ -236,14 +236,14 @@ const std::string& Core::Db::DbWorkerPool< T >::getDatabaseName() const template< class T > void Core::Db::DbWorkerPool< T >::execute( const std::string& sql ) { - auto task = boost::make_shared< StatementTask >( sql ); + auto task = std::make_shared< StatementTask >( sql ); enqueue( task ); } template< class T > -void Core::Db::DbWorkerPool< T >::execute( boost::shared_ptr< PreparedStatement > stmt ) +void Core::Db::DbWorkerPool< T >::execute( std::shared_ptr< PreparedStatement > stmt ) { - auto task = boost::make_shared< PreparedStatementTask >( stmt ); + auto task = std::make_shared< PreparedStatementTask >( stmt ); enqueue( task ); } @@ -256,7 +256,7 @@ void Core::Db::DbWorkerPool< T >::directExecute( const std::string& sql ) } template< class T > -void Core::Db::DbWorkerPool< T >::directExecute( boost::shared_ptr< PreparedStatement > stmt ) +void Core::Db::DbWorkerPool< T >::directExecute( std::shared_ptr< PreparedStatement > stmt ) { auto connection = getFreeConnection(); connection->execute( stmt ); diff --git a/src/common/Database/DbWorkerPool.h b/src/common/Database/DbWorkerPool.h index 9833cadb..58723877 100644 --- a/src/common/Database/DbWorkerPool.h +++ b/src/common/Database/DbWorkerPool.h @@ -52,21 +52,21 @@ public: // Async execution void execute( const std::string& sql ); - void execute( boost::shared_ptr< PreparedStatement > stmt ); + void execute( std::shared_ptr< PreparedStatement > stmt ); // Sync execution void directExecute( const std::string& sql ); - void directExecute( boost::shared_ptr< PreparedStatement > stmt ); + void directExecute( std::shared_ptr< PreparedStatement > stmt ); - boost::shared_ptr< Mysql::ResultSet > - query( const std::string& sql, boost::shared_ptr< T > connection = nullptr ); + std::shared_ptr< Mysql::ResultSet > + query( const std::string& sql, std::shared_ptr< T > connection = nullptr ); - boost::shared_ptr< Mysql::PreparedResultSet > query( boost::shared_ptr< PreparedStatement > stmt ); + std::shared_ptr< Mysql::PreparedResultSet > query( std::shared_ptr< PreparedStatement > stmt ); using PreparedStatementIndex = typename T::Statements; - boost::shared_ptr< PreparedStatement > getPreparedStatement( PreparedStatementIndex index ); + std::shared_ptr< PreparedStatement > getPreparedStatement( PreparedStatementIndex index ); void escapeString( std::string& str ); @@ -77,14 +77,14 @@ private: unsigned long escapeString( char* to, const char* from, unsigned long length ); - void enqueue( boost::shared_ptr< Operation > op ); + void enqueue( std::shared_ptr< Operation > op ); - boost::shared_ptr< T > getFreeConnection(); + std::shared_ptr< T > getFreeConnection(); const std::string& getDatabaseName() const; - std::unique_ptr< Core::LockedWaitQueue< boost::shared_ptr< Operation > > > m_queue; - std::array< std::vector< boost::shared_ptr< T > >, IDX_SIZE > m_connections; + std::unique_ptr< Core::LockedWaitQueue< std::shared_ptr< Operation > > > m_queue; + std::array< std::vector< std::shared_ptr< T > >, IDX_SIZE > m_connections; ConnectionInfo m_connectionInfo; uint8_t m_asyncThreads; uint8_t m_synchThreads; diff --git a/src/common/Database/PreparedStatement.cpp b/src/common/Database/PreparedStatement.cpp index dadfb16a..2010e5eb 100644 --- a/src/common/Database/PreparedStatement.cpp +++ b/src/common/Database/PreparedStatement.cpp @@ -5,6 +5,7 @@ #include #include +#include Core::Db::PreparedStatement::PreparedStatement( uint32_t index ) : m_stmt( nullptr ), @@ -150,7 +151,7 @@ uint32_t Core::Db::PreparedStatement::getIndex() const return m_index; } -void Core::Db::PreparedStatement::setMysqlPS( boost::shared_ptr< Mysql::PreparedStatement > pStmt ) +void Core::Db::PreparedStatement::setMysqlPS( std::shared_ptr< Mysql::PreparedStatement > pStmt ) { m_stmt = pStmt; } diff --git a/src/common/Database/PreparedStatement.h b/src/common/Database/PreparedStatement.h index 351d3f81..d6127c6d 100644 --- a/src/common/Database/PreparedStatement.h +++ b/src/common/Database/PreparedStatement.h @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include "Operation.h" namespace Mysql { @@ -70,12 +70,12 @@ public: uint32_t getIndex() const; - void setMysqlPS( boost::shared_ptr< Mysql::PreparedStatement > pStmt ); + void setMysqlPS( std::shared_ptr< Mysql::PreparedStatement > pStmt ); void bindParameters(); protected: - boost::shared_ptr< Mysql::PreparedStatement > m_stmt; + std::shared_ptr< Mysql::PreparedStatement > m_stmt; uint32_t m_index; std::vector< PreparedStatementData > m_statementData; diff --git a/src/common/Database/StatementTask.cpp b/src/common/Database/StatementTask.cpp index 25753d17..87bf6e29 100644 --- a/src/common/Database/StatementTask.cpp +++ b/src/common/Database/StatementTask.cpp @@ -38,7 +38,7 @@ bool Core::Db::StatementTask::execute() } -Core::Db::PreparedStatementTask::PreparedStatementTask( boost::shared_ptr< Core::Db::PreparedStatement > stmt, +Core::Db::PreparedStatementTask::PreparedStatementTask( std::shared_ptr< Core::Db::PreparedStatement > stmt, bool async ) : m_stmt( stmt ) //, m_result(nullptr) diff --git a/src/common/Database/StatementTask.h b/src/common/Database/StatementTask.h index ff30d2e3..de1e8a3b 100644 --- a/src/common/Database/StatementTask.h +++ b/src/common/Database/StatementTask.h @@ -35,7 +35,7 @@ class PreparedStatementTask : public Operation { public: - PreparedStatementTask( boost::shared_ptr< PreparedStatement > stmt, bool async = false ); + PreparedStatementTask( std::shared_ptr< PreparedStatement > stmt, bool async = false ); ~PreparedStatementTask(); @@ -43,7 +43,7 @@ public: //PreparedQueryResultFuture getFuture() { return m_result->get_future(); } protected: - boost::shared_ptr< PreparedStatement > m_stmt; + std::shared_ptr< PreparedStatement > m_stmt; bool m_hasResult; //PreparedQueryResultPromise* m_result; }; diff --git a/src/common/Database/ZoneDbConnection.cpp b/src/common/Database/ZoneDbConnection.cpp index 0db28603..6f9e873b 100644 --- a/src/common/Database/ZoneDbConnection.cpp +++ b/src/common/Database/ZoneDbConnection.cpp @@ -6,7 +6,7 @@ Core::Db::ZoneDbConnection::ZoneDbConnection( ConnectionInfo& connInfo ) : { } -Core::Db::ZoneDbConnection::ZoneDbConnection( Core::LockedWaitQueue< boost::shared_ptr< Operation > >* q, +Core::Db::ZoneDbConnection::ZoneDbConnection( Core::LockedWaitQueue< std::shared_ptr< Operation > >* q, ConnectionInfo& connInfo ) : DbConnection( q, connInfo ) { diff --git a/src/common/Database/ZoneDbConnection.h b/src/common/Database/ZoneDbConnection.h index a2e97bae..1bf61944 100644 --- a/src/common/Database/ZoneDbConnection.h +++ b/src/common/Database/ZoneDbConnection.h @@ -88,7 +88,7 @@ public: ZoneDbConnection( ConnectionInfo& connInfo ); - ZoneDbConnection( Core::LockedWaitQueue< boost::shared_ptr< Operation > >* q, ConnectionInfo& connInfo ); + ZoneDbConnection( Core::LockedWaitQueue< std::shared_ptr< Operation > >* q, ConnectionInfo& connInfo ); ~ZoneDbConnection(); From e48b0fe7f4f955526473eb67edeba324dec74689 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 24 Oct 2018 21:03:03 +1100 Subject: [PATCH 15/16] update submodule --- src/libraries | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libraries b/src/libraries index b89d9a2d..883f4850 160000 --- a/src/libraries +++ b/src/libraries @@ -1 +1 @@ -Subproject commit b89d9a2dfcca81ab4241e791a0a78bb9ea34036c +Subproject commit 883f4850885634e2366ca82d69a730b1c2e694e7 From b48f5e39c7a6ef5894d1522863c27b2b9399fa5b Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 24 Oct 2018 21:42:30 +1100 Subject: [PATCH 16/16] move from cpp14 -> cpp17 --- src/common/CMakeLists.txt | 2 +- src/servers/Scripts/CMakeLists.txt | 2 +- src/servers/sapphire_api/CMakeLists.txt | 2 +- src/servers/sapphire_lobby/CMakeLists.txt | 2 +- src/servers/sapphire_zone/CMakeLists.txt | 2 +- src/tools/discovery_parser/CMakeLists.txt | 2 +- src/tools/event_object_parser/CMakeLists.txt | 2 +- src/tools/exd_common_gen/CMakeLists.txt | 2 +- src/tools/exd_struct_gen/CMakeLists.txt | 2 +- src/tools/exd_struct_test/CMakeLists.txt | 2 +- src/tools/mob_parse/CMakeLists.txt | 2 +- src/tools/pcb_reader/CMakeLists.txt | 2 +- src/tools/quest_parser/CMakeLists.txt | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 940e2e2d..01e031f7 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -18,7 +18,7 @@ set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) add_library( common ${UTILS_PUBLIC_INCLUDE_FILES} ${UTILS_SOURCE_FILES} ) set_target_properties( common PROPERTIES - CXX_STANDARD 14 + CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" diff --git a/src/servers/Scripts/CMakeLists.txt b/src/servers/Scripts/CMakeLists.txt index 4d2f9fa1..314f33f9 100644 --- a/src/servers/Scripts/CMakeLists.txt +++ b/src/servers/Scripts/CMakeLists.txt @@ -41,7 +41,7 @@ foreach(_scriptDir ${children}) if(MSVC) #target_link_libraries( "script_${_name}" ${Boost_LIBRARIES}) set_target_properties( "script_${_name}" PROPERTIES - CXX_STANDARD 14 + CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS ON LIBRARY_OUTPUT_DIRECTORY_DEBUG "${SCRIPT_LIB_DIR}" diff --git a/src/servers/sapphire_api/CMakeLists.txt b/src/servers/sapphire_api/CMakeLists.txt index 2f83716a..0c975b41 100644 --- a/src/servers/sapphire_api/CMakeLists.txt +++ b/src/servers/sapphire_api/CMakeLists.txt @@ -8,7 +8,7 @@ file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") add_executable(sapphire_api ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) set_target_properties(sapphire_api PROPERTIES - CXX_STANDARD 14 + CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/" diff --git a/src/servers/sapphire_lobby/CMakeLists.txt b/src/servers/sapphire_lobby/CMakeLists.txt index 63409d58..f79e8400 100644 --- a/src/servers/sapphire_lobby/CMakeLists.txt +++ b/src/servers/sapphire_lobby/CMakeLists.txt @@ -9,7 +9,7 @@ file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") add_executable(sapphire_lobby ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) set_target_properties(sapphire_lobby PROPERTIES - CXX_STANDARD 14 + CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/" diff --git a/src/servers/sapphire_zone/CMakeLists.txt b/src/servers/sapphire_zone/CMakeLists.txt index 292ffcc3..1c61dd00 100644 --- a/src/servers/sapphire_zone/CMakeLists.txt +++ b/src/servers/sapphire_zone/CMakeLists.txt @@ -23,7 +23,7 @@ file(GLOB SERVER_SOURCE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} add_executable( sapphire_zone ${SERVER_SOURCE_FILES} ) set_target_properties(sapphire_zone PROPERTIES - CXX_STANDARD 14 + CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS ON ENABLE_EXPORTS ON diff --git a/src/tools/discovery_parser/CMakeLists.txt b/src/tools/discovery_parser/CMakeLists.txt index ac6f5744..8aab97d5 100644 --- a/src/tools/discovery_parser/CMakeLists.txt +++ b/src/tools/discovery_parser/CMakeLists.txt @@ -20,7 +20,7 @@ file(GLOB SERVER_SOURCE_FILES add_executable(discovery_parser ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) set_target_properties(discovery_parser PROPERTIES - CXX_STANDARD 14 + CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" diff --git a/src/tools/event_object_parser/CMakeLists.txt b/src/tools/event_object_parser/CMakeLists.txt index 3af2ac6b..b3d39c4e 100644 --- a/src/tools/event_object_parser/CMakeLists.txt +++ b/src/tools/event_object_parser/CMakeLists.txt @@ -14,7 +14,7 @@ file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") add_executable(event_object_parser ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) set_target_properties(event_object_parser PROPERTIES - CXX_STANDARD 14 + CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" diff --git a/src/tools/exd_common_gen/CMakeLists.txt b/src/tools/exd_common_gen/CMakeLists.txt index ee45df8a..b65aaa9b 100644 --- a/src/tools/exd_common_gen/CMakeLists.txt +++ b/src/tools/exd_common_gen/CMakeLists.txt @@ -14,7 +14,7 @@ file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") add_executable(exd_common_gen ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) set_target_properties(exd_common_gen PROPERTIES - CXX_STANDARD 14 + CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" diff --git a/src/tools/exd_struct_gen/CMakeLists.txt b/src/tools/exd_struct_gen/CMakeLists.txt index 55a4f094..cc490615 100644 --- a/src/tools/exd_struct_gen/CMakeLists.txt +++ b/src/tools/exd_struct_gen/CMakeLists.txt @@ -14,7 +14,7 @@ file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") add_executable(exd_struct_gen ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) set_target_properties(exd_struct_gen PROPERTIES - CXX_STANDARD 14 + CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" diff --git a/src/tools/exd_struct_test/CMakeLists.txt b/src/tools/exd_struct_test/CMakeLists.txt index 817c85a4..24eb5045 100644 --- a/src/tools/exd_struct_test/CMakeLists.txt +++ b/src/tools/exd_struct_test/CMakeLists.txt @@ -14,7 +14,7 @@ file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") add_executable(exd_struct_test ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) set_target_properties(exd_struct_test PROPERTIES - CXX_STANDARD 14 + CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" diff --git a/src/tools/mob_parse/CMakeLists.txt b/src/tools/mob_parse/CMakeLists.txt index a2a8a440..42647570 100644 --- a/src/tools/mob_parse/CMakeLists.txt +++ b/src/tools/mob_parse/CMakeLists.txt @@ -14,7 +14,7 @@ file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") add_executable(mob_parse ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) set_target_properties(mob_parse PROPERTIES - CXX_STANDARD 14 + CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" diff --git a/src/tools/pcb_reader/CMakeLists.txt b/src/tools/pcb_reader/CMakeLists.txt index 8417673f..c01d6c42 100644 --- a/src/tools/pcb_reader/CMakeLists.txt +++ b/src/tools/pcb_reader/CMakeLists.txt @@ -14,7 +14,7 @@ file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") add_executable(pcb_reader2 ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) set_target_properties(pcb_reader2 PROPERTIES - CXX_STANDARD 14 + CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" diff --git a/src/tools/quest_parser/CMakeLists.txt b/src/tools/quest_parser/CMakeLists.txt index 9dc1c308..386495a5 100644 --- a/src/tools/quest_parser/CMakeLists.txt +++ b/src/tools/quest_parser/CMakeLists.txt @@ -20,7 +20,7 @@ file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") add_executable(quest_parse ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) set_target_properties(quest_parse PROPERTIES - CXX_STANDARD 14 + CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/"