19 #ifndef HIRE_MANAGER_HEADER 20 #define HIRE_MANAGER_HEADER 25 #include <csutil/list.h> 144 bool AllowedToHire(
gemActor* owner);
164 HireSession* GetSessionByPIDs(PID ownerPID, PID hiredPID);
168 void RemovePendingHire(
gemActor* owner);
176 bool ValidateScript(PID ownerPID, PID hiredPID,
const csString &script, csString &errorMessage);
180 bool HandleScriptMessageCommit(uint32_t clientnum, PID ownerPID, PID hiredPID);
184 bool CancelScript(PID ownerPID, PID hiredPID);
192 Location* CreateUpdateLocation(
const char* type,
const char* name,
193 iSector* sector,
const csVector3 &position,
float angle);
197 csList<HireSession*> hires;
199 csHash<HireSession*,PID> pendingHires;
The Hire Sessin will manage all aspects related to a specefic hiring of a NPC.
bool SetHireType(gemActor *owner, const csString &name, const csString &npcType)
Set the type of NPC to hire for a pending hire.
bool CheckWorkLocationResult(gemNPC *hiredNPC, bool valid, const char *errorMessage)
Result from work location check.
bool Initialize()
Initialize the Hire Manager.
bool ReleaseHire(gemActor *owner, gemNPC *hiredNPC)
Release the hire.
bool AddOwner(gemActor *owner)
Register an owner with the hire manager.
virtual ~HireManager()
Destructor.
bool AddHiredNPC(gemNPC *hiredNPC)
Register a hired NPC with the hire manager.
The structure of 1 queue entry (pointer to a message)
HireManager()
Constructor.
Any semi-autonomous object, either a player or an NPC.
bool HandleScriptMessageRequest(uint32_t clientnum, gemActor *owner, gemNPC *hiredNPC)
Start Scripting the hire.
This class collects data of a netclient.
The Hire Manager will manage all aspects related to hiring of NPCs.
bool SetHireMasterPID(gemActor *owner, PID masterPID)
Set the PID of the master NPC to use when hiring for a pending hire.
A Location is a named place on the map, located dynamically by NPCs as scripted.
gemActor * ConfirmHire(gemActor *owner)
Confirm the hire.
bool StartHire(gemActor *owner)
Start a new Hire Session.
Provides a manager to facilitate subscriptions.