Planeshift
slotmanager.h
Go to the documentation of this file.
1 /*
2  * slotmanager.h
3  *
4  * Copyright (C) 2002 Atomic Blue (info@planeshift.it, http://www.atomicblue.org)
5  *
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation (version 2 of the License)
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17  *
18  */
19 #ifndef __SLOTMANAGER_H__
20 #define __SLOTMANAGER_H__
21 
22 //=============================================================================
23 // Crystal Space Includes
24 //=============================================================================
25 
26 //=============================================================================
27 // Project Includes
28 //=============================================================================
29 
30 //=============================================================================
31 // Local Includes
32 //=============================================================================
33 #include "msgmanager.h"
34 
40 class SlotManager : public MessageManager<SlotManager>
41 {
42 public:
43  SlotManager(GEMSupervisor* gemsupervisor, CacheManager* cachemanager);
44  virtual ~SlotManager();
45 
46  bool Initialize();
47 
48  psItem* FindItem(Client* client, int containerID, INVENTORY_SLOT_NUMBER slotID);
49 
50 private:
51 
53  void HandleDropCommand(MsgEntry* me, Client* client);
54  void HandleSlotMovement(MsgEntry* me, Client* client);
55 
62  psItem* MakeMoneyItem(INVENTORY_SLOT_NUMBER slot, int stackCount);
63 
65  void MoveFromInventory(psSlotMovementMsg &msg, Client* fromClient);
66 
68  void MoveFromOffering(psSlotMovementMsg &msg, Client* fromClient);
69 
71  void MoveFromOfferedMoney(psSlotMovementMsg &msg, Client* fromClient);
72 
74  void MoveFromMoney(psSlotMovementMsg &msg, Client* fromClient);
75 
77  void MoveFromWorldContainer(psSlotMovementMsg &msg, Client* fromClient, uint32 containerEntityID);
78 
80  void Consume(psItem* item, psCharacter* charData, int count);
81 
82  GEMSupervisor* gemSupervisor;
83  CacheManager* cacheManager;
84  MathScript* qualityScript;
85 };
86 
87 #endif
Handles Drag and Drop Messages from the client.
Definition: slotmanager.h:40
psItem * FindItem(Client *client, int containerID, INVENTORY_SLOT_NUMBER slotID)
A MathScript is a mini-program to run.
Definition: mathscript.h:442
INVENTORY_SLOT_NUMBER
Holds a list of the possible socket identifiers that items can be attached to.
Definition: slots.h:32
The structure of 1 queue entry (pointer to a message)
Definition: message.h:143
bool Initialize()
virtual ~SlotManager()
This class collects data of a netclient.
Definition: client.h:95
SlotManager(GEMSupervisor *gemsupervisor, CacheManager *cachemanager)
This class manages the caching of data that is unchanging during server operation.
Definition: cachemanager.h:234
This class holds the refs to the core factories, etc in CEL.
Definition: gem.h:126
This class embodies item instances in the game.
Definition: psitem.h:238
Provides a manager to facilitate subscriptions.
Definition: msgmanager.h:106