1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-13 14:07:46 +00:00
sapphire/src/world/Manager/EventMgr.h

74 lines
3.8 KiB
C++

#pragma once
#include <cstdint>
#include <string>
#include <ForwardsZone.h>
#include "Event/EventHandler.h"
namespace Sapphire::World::Manager
{
class EventMgr
{
public:
EventMgr() = default;
std::string getEventName( uint32_t eventId );
std::string getErrorCodeName( uint8_t errorCode );
uint32_t mapEventActorToRealActor( uint32_t eventActorId );
void handleReturnEventScene( Entity::Player& player, uint32_t eventId, uint16_t sceneId, uint8_t errorCode,
uint8_t numOfResults, const std::vector< uint32_t >& results );
void handleReturnStringEventScene( Entity::Player& player, uint32_t eventId, uint16_t sceneId, const std::string& resultString );
void handleReturnIntAndStringEventScene( Entity::Player& player, uint32_t eventId, uint16_t sceneId, const std::string& resultString, uint64_t resultInt );
void checkEvent( Entity::Player& player, uint32_t eventId );
void eventFinish( Entity::Player& player, uint32_t eventId, uint32_t freePlayer );
void eventStart( Entity::Player& player, uint64_t actorId, uint32_t eventId, Event::EventHandler::EventType eventType, uint8_t eventParam1,
uint32_t eventParam2, Event::EventHandler::EventFinishCallback callback = nullptr );
void eventActionStart( Entity::Player& player, uint32_t eventId, uint32_t action, World::Action::ActionCallback finishCallback,
World::Action::ActionCallback interruptCallback, uint64_t additional );
/*! start an event item action */
void eventItemActionStart( Entity::Player& player, uint32_t eventId, uint32_t action, World::Action::ActionCallback finishCallback,
World::Action::ActionCallback interruptCallback, uint64_t additional );
void playGilShop( Entity::Player& player, uint32_t eventId, uint32_t flags, uint32_t param1, Event::EventHandler::SceneReturnCallback eventCallback );
/*! play a subevent */
void playScene( Entity::Player& player, uint32_t eventId, uint32_t scene, uint32_t flags, std::vector< uint32_t > values,
Event::EventHandler::SceneReturnCallback eventReturnCallback = nullptr );
/*! resume a subevent */
void resumeScene( Entity::Player& player, uint32_t eventId, uint32_t scene, std::vector< uint32_t > values, bool resetCallback );
/*! play a subevent */
void playScene( Entity::Player& player, uint32_t eventId, uint32_t scene, uint32_t flags,
Event::EventHandler::SceneReturnCallback eventReturnCallback = nullptr );
void playQuestScene( Entity::Player& player, uint32_t eventId, uint32_t scene, uint32_t flags,
Event::EventHandler::QuestSceneReturnCallback eventReturnCallback = nullptr );
/*! play a subevent */
void playSceneChain( Entity::Player& player, uint32_t eventId, uint32_t scene, uint32_t flags,
std::vector< uint32_t > values,
Event::EventHandler::SceneChainCallback sceneChainCallback = nullptr );
/*! play a subevent */
void playSceneChain( Entity::Player& player, uint32_t eventId, uint32_t scene, uint32_t flags,
Event::EventHandler::SceneChainCallback sceneChainCallback = nullptr );
void playQuestSceneChain( Entity::Player& player, uint32_t eventId, uint32_t scene, uint32_t flags,
Event::EventHandler::QuestSceneChainCallback sceneChainCallback = nullptr );
bool sendEventPlay( Entity::Player& player, uint32_t eventid, uint32_t scene, uint32_t flags );
void sendEventNotice( Entity::Player& player, uint32_t eventId, int8_t noticeId, uint8_t numOfArgs = 0, uint32_t var1 = 0, uint32_t var2 = 0 );
/*! setup the event and return a ptr to it */
Event::EventHandlerPtr bootstrapSceneEvent( Entity::Player& player, uint32_t eventId, uint32_t flags );
};
}