diff --git a/src/scripts/common/GilShop.cpp b/src/scripts/common/GilShop.cpp index a57a1ecd..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, 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; } @@ -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..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, +void Sapphire::Entity::Player::playGilShop( uint32_t eventId, uint32_t flags, uint32_t param1, Event::EventHandler::SceneReturnCallback eventCallback ) { auto pEvent = bootstrapSceneEvent( eventId, flags ); @@ -145,6 +145,22 @@ void Sapphire::Entity::Player::playGilShop( uint32_t eventId, uint32_t flags, openGilShopPacket->data().eventId = eventId; openGilShopPacket->data().sceneFlags = flags; openGilShopPacket->data().actorId = getId(); + switch( param1 ) + { + 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;