From 5083b51bf2fe9a074e3d3c3dc9666ed9bdc1d791 Mon Sep 17 00:00:00 2001 From: collett Date: Fri, 3 Jan 2020 04:06:25 +0900 Subject: [PATCH 1/3] Play the sound effect when buying items from shop. When selling the sound effect is also played (and shop switch to buy back tab as well) but the selling logic code is not there so... --- src/scripts/common/GilShop.cpp | 4 ++-- src/world/Actor/Player.h | 2 +- src/world/Actor/PlayerEvent.cpp | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/scripts/common/GilShop.cpp b/src/scripts/common/GilShop.cpp index a57a1ecd..d15f1d4d 100644 --- a/src/scripts/common/GilShop.cpp +++ b/src/scripts/common/GilShop.cpp @@ -43,7 +43,7 @@ private: } - player.playGilShop( result.eventId, SCENE_FLAGS, std::bind( &GilShop::shopInteractionCallback, this, std::placeholders::_1, std::placeholders::_2 ) ); + player.playGilShop( result.eventId, SCENE_FLAGS, result.param2 == 1 ? 3 : 2, std::bind( &GilShop::shopInteractionCallback, this, std::placeholders::_1, std::placeholders::_2 ) ); return; } @@ -53,7 +53,7 @@ private: void shopCallback( Entity::Player& player, const Event::SceneResult& result ) { - player.playGilShop( result.eventId, SCENE_FLAGS, std::bind( &GilShop::shopInteractionCallback, this, std::placeholders::_1, std::placeholders::_2 ) ); + player.playGilShop( result.eventId, SCENE_FLAGS, 0, std::bind( &GilShop::shopInteractionCallback, this, std::placeholders::_1, std::placeholders::_2 ) ); } }; diff --git a/src/world/Actor/Player.h b/src/world/Actor/Player.h index 9f40168c..fc2020e4 100644 --- a/src/world/Actor/Player.h +++ b/src/world/Actor/Player.h @@ -67,7 +67,7 @@ namespace Sapphire::Entity /*! play a subevent */ void playScene( uint32_t eventId, uint32_t scene, uint32_t flags, uint32_t eventParam2, uint32_t eventParam3 ); - void playGilShop( uint32_t eventId, uint32_t flags, + void playGilShop( uint32_t eventId, uint32_t flags, uint32_t param1, Event::EventHandler::SceneReturnCallback eventCallback ); void directorPlayScene( uint32_t eventId, uint32_t scene, uint32_t flags, uint32_t eventParam3, diff --git a/src/world/Actor/PlayerEvent.cpp b/src/world/Actor/PlayerEvent.cpp index 15c84470..8bb7d830 100644 --- a/src/world/Actor/PlayerEvent.cpp +++ b/src/world/Actor/PlayerEvent.cpp @@ -130,7 +130,7 @@ void Sapphire::Entity::Player::playScene( uint32_t eventId, uint32_t scene, playScene( eventId, scene, flags, eventParam2, eventParam3, 0, eventCallback ); } -void Sapphire::Entity::Player::playGilShop( uint32_t eventId, uint32_t flags, +void Sapphire::Entity::Player::playGilShop( uint32_t eventId, uint32_t flags, uint32_t param, Event::EventHandler::SceneReturnCallback eventCallback ) { auto pEvent = bootstrapSceneEvent( eventId, flags ); @@ -145,6 +145,8 @@ void Sapphire::Entity::Player::playGilShop( uint32_t eventId, uint32_t flags, openGilShopPacket->data().eventId = eventId; openGilShopPacket->data().sceneFlags = flags; openGilShopPacket->data().actorId = getId(); + openGilShopPacket->data().params[ 0 ] = 1; + openGilShopPacket->data().params[ 1 ] = param; openGilShopPacket->data().scene = 10; From 00d8c0eef7be201459ab785e289418c541c1f2a6 Mon Sep 17 00:00:00 2001 From: collett Date: Wed, 8 Jan 2020 18:21:30 +0900 Subject: [PATCH 2/3] Fix shop packet. --- src/scripts/common/GilShop.cpp | 2 +- src/world/Actor/PlayerEvent.cpp | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/scripts/common/GilShop.cpp b/src/scripts/common/GilShop.cpp index d15f1d4d..8e7afe0e 100644 --- a/src/scripts/common/GilShop.cpp +++ b/src/scripts/common/GilShop.cpp @@ -43,7 +43,7 @@ private: } - player.playGilShop( result.eventId, SCENE_FLAGS, result.param2 == 1 ? 3 : 2, std::bind( &GilShop::shopInteractionCallback, this, std::placeholders::_1, std::placeholders::_2 ) ); + player.playGilShop( result.eventId, SCENE_FLAGS, result.param2, std::bind( &GilShop::shopInteractionCallback, this, std::placeholders::_1, std::placeholders::_2 ) ); return; } diff --git a/src/world/Actor/PlayerEvent.cpp b/src/world/Actor/PlayerEvent.cpp index 8bb7d830..a3d2393f 100644 --- a/src/world/Actor/PlayerEvent.cpp +++ b/src/world/Actor/PlayerEvent.cpp @@ -145,8 +145,22 @@ void Sapphire::Entity::Player::playGilShop( uint32_t eventId, uint32_t flags, ui openGilShopPacket->data().eventId = eventId; openGilShopPacket->data().sceneFlags = flags; openGilShopPacket->data().actorId = getId(); - openGilShopPacket->data().params[ 0 ] = 1; - openGilShopPacket->data().params[ 1 ] = param; + switch( param ) + { + case 1: + { + openGilShopPacket->data().params[ 0 ] = 0x02; + openGilShopPacket->data().params[ 1 ] = 1; + openGilShopPacket->data().params[ 2 ] = 0x64; + break; + } + case 2: + { + openGilShopPacket->data().params[ 0 ] = 0xA2; + openGilShopPacket->data().params[ 1 ] = 2; + break; + } + } openGilShopPacket->data().scene = 10; From f7f44e9c157666f93b5967b1140eb740034f08bd Mon Sep 17 00:00:00 2001 From: collett Date: Wed, 8 Jan 2020 18:28:19 +0900 Subject: [PATCH 3/3] rename --- src/world/Actor/PlayerEvent.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/world/Actor/PlayerEvent.cpp b/src/world/Actor/PlayerEvent.cpp index a3d2393f..0303b4fb 100644 --- a/src/world/Actor/PlayerEvent.cpp +++ b/src/world/Actor/PlayerEvent.cpp @@ -130,7 +130,7 @@ void Sapphire::Entity::Player::playScene( uint32_t eventId, uint32_t scene, playScene( eventId, scene, flags, eventParam2, eventParam3, 0, eventCallback ); } -void Sapphire::Entity::Player::playGilShop( uint32_t eventId, uint32_t flags, uint32_t param, +void Sapphire::Entity::Player::playGilShop( uint32_t eventId, uint32_t flags, uint32_t param1, Event::EventHandler::SceneReturnCallback eventCallback ) { auto pEvent = bootstrapSceneEvent( eventId, flags ); @@ -145,7 +145,7 @@ void Sapphire::Entity::Player::playGilShop( uint32_t eventId, uint32_t flags, ui openGilShopPacket->data().eventId = eventId; openGilShopPacket->data().sceneFlags = flags; openGilShopPacket->data().actorId = getId(); - switch( param ) + switch( param1 ) { case 1: {