1
0

Merge branch 'master' into NetherFortGen

This commit is contained in:
madmaxoft 2014-03-28 21:37:31 +01:00
commit 18dad36189
11 changed files with 61 additions and 37 deletions

View File

@ -128,6 +128,8 @@ public: // tolua_export
class cCommandEnumCallback class cCommandEnumCallback
{ {
public: public:
virtual ~cCommandEnumCallback() {}
/** Called for each command; return true to abort enumeration /** Called for each command; return true to abort enumeration
For console commands, a_Permission is not used (set to empty string) For console commands, a_Permission is not used (set to empty string)
*/ */

View File

@ -4,6 +4,7 @@
class cBroadcastInterface class cBroadcastInterface
{ {
public: public:
virtual ~cBroadcastInterface() {}
virtual void BroadcastUseBed (const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ ) = 0; virtual void BroadcastUseBed (const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ ) = 0;
virtual void BroadcastSoundEffect(const AString & a_SoundName, int a_SrcX, int a_SrcY, int a_SrcZ, float a_Volume, float a_Pitch, const cClientHandle * a_Exclude = NULL) = 0; virtual void BroadcastSoundEffect(const AString & a_SoundName, int a_SrcX, int a_SrcY, int a_SrcZ, float a_Volume, float a_Pitch, const cClientHandle * a_Exclude = NULL) = 0;

View File

@ -9,6 +9,7 @@ class cItems;
class cWorldInterface class cWorldInterface
{ {
public: public:
virtual ~cWorldInterface() {}
virtual Int64 GetTimeOfDay(void) const = 0; virtual Int64 GetTimeOfDay(void) const = 0;
virtual Int64 GetWorldAge(void) const = 0; virtual Int64 GetWorldAge(void) const = 0;

View File

@ -24,6 +24,8 @@ class cBlockArea;
class cForEachChunkProvider class cForEachChunkProvider
{ {
public: public:
virtual ~cForEachChunkProvider() {}
/** Calls the callback for each chunk in the specified range. */ /** Calls the callback for each chunk in the specified range. */
virtual bool ForEachChunkInRect(int a_MinChunkX, int a_MaxChunkX, int a_MinChunkZ, int a_MaxChunkZ, cChunkDataCallback & a_Callback) = 0; virtual bool ForEachChunkInRect(int a_MinChunkX, int a_MaxChunkX, int a_MinChunkZ, int a_MaxChunkZ, cChunkDataCallback & a_Callback) = 0;

View File

@ -264,11 +264,17 @@ template class SizeChecker<UInt16, 2>;
#define assert_test(x) ( !!(x) || (assert(!#x), exit(1), 0)) #define assert_test(x) ( !!(x) || (assert(!#x), exit(1), 0))
#endif #endif
/// A generic interface used mainly in ForEach() functions
/** A generic interface used mainly in ForEach() functions */
template <typename Type> class cItemCallback template <typename Type> class cItemCallback
{ {
public: public:
/// Called for each item in the internal list; return true to stop the loop, or false to continue enumerating virtual ~cItemCallback() {}
/** Called for each item in the internal list; return true to stop the loop, or false to continue enumerating */
virtual bool Item(Type * a_Type) = 0; virtual bool Item(Type * a_Type) = 0;
} ; } ;

View File

@ -37,6 +37,8 @@ public:
class cCallbacks class cCallbacks
{ {
public: public:
virtual ~cCallbacks() {}
/** Called when a new request arrives over a connection and its headers have been parsed. /** Called when a new request arrives over a connection and its headers have been parsed.
The request body needn't have arrived yet. The request body needn't have arrived yet.
*/ */
@ -50,7 +52,7 @@ public:
} ; } ;
cHTTPServer(void); cHTTPServer(void);
~cHTTPServer(); virtual ~cHTTPServer();
/// Initializes the server on the specified ports /// Initializes the server on the specified ports
bool Initialize(const AString & a_PortsIPv4, const AString & a_PortsIPv6); bool Initialize(const AString & a_PortsIPv4, const AString & a_PortsIPv6);

View File

@ -52,6 +52,8 @@ public:
cInventory(cPlayer & a_Owner); cInventory(cPlayer & a_Owner);
virtual ~cInventory() {}
// tolua_begin // tolua_begin
/// Removes all items from the entire inventory /// Removes all items from the entire inventory

View File

@ -20,11 +20,13 @@ class cItemGrid
public: public:
// tolua_end // tolua_end
/// This class is used as a callback for when a slot changes /** This class is used as a callback for when a slot changes */
class cListener class cListener
{ {
public: public:
/// Called whenever a slot changes virtual ~cListener() {}
/** Called whenever a slot changes */
virtual void OnSlotChanged(cItemGrid * a_ItemGrid, int a_SlotNum) = 0; virtual void OnSlotChanged(cItemGrid * a_ItemGrid, int a_SlotNum) = 0;
} ; } ;
typedef std::vector<cListener *> cListeners; typedef std::vector<cListener *> cListeners;
@ -38,12 +40,12 @@ public:
int GetHeight (void) const { return m_Height; } int GetHeight (void) const { return m_Height; }
int GetNumSlots(void) const { return m_NumSlots; } int GetNumSlots(void) const { return m_NumSlots; }
/// Converts XY coords into slot number; returns -1 on invalid coords /** Converts XY coords into slot number; returns -1 on invalid coords */
int GetSlotNum(int a_X, int a_Y) const; int GetSlotNum(int a_X, int a_Y) const;
// tolua_end // tolua_end
/// Converts slot number into XY coords; sets coords to -1 on invalid slot number. Exported in ManualBindings.cpp /** Converts slot number into XY coords; sets coords to -1 on invalid slot number. Exported in ManualBindings.cpp */
void GetSlotCoords(int a_SlotNum, int & a_X, int & a_Y) const; void GetSlotCoords(int a_SlotNum, int & a_X, int & a_Y) const;
// tolua_begin // tolua_begin
@ -62,16 +64,16 @@ public:
void EmptySlot(int a_X, int a_Y); void EmptySlot(int a_X, int a_Y);
void EmptySlot(int a_SlotNum); void EmptySlot(int a_SlotNum);
/// Returns true if the specified slot is empty or the slot doesn't exist /** Returns true if the specified slot is empty or the slot doesn't exist */
bool IsSlotEmpty(int a_SlotNum) const; bool IsSlotEmpty(int a_SlotNum) const;
/// Returns true if the specified slot is empty or the slot doesn't exist /** Returns true if the specified slot is empty or the slot doesn't exist */
bool IsSlotEmpty(int a_X, int a_Y) const; bool IsSlotEmpty(int a_X, int a_Y) const;
/// Sets all items as empty /** Sets all items as empty */
void Clear(void); void Clear(void);
/// Returns number of items out of a_ItemStack that can fit in the storage /** Returns number of items out of a_ItemStack that can fit in the storage */
int HowManyCanFit(const cItem & a_ItemStack, bool a_AllowNewStacks = true); int HowManyCanFit(const cItem & a_ItemStack, bool a_AllowNewStacks = true);
/** Adds as many items out of a_ItemStack as can fit. /** Adds as many items out of a_ItemStack as can fit.
@ -117,37 +119,37 @@ public:
*/ */
cItem RemoveOneItem(int a_X, int a_Y); cItem RemoveOneItem(int a_X, int a_Y);
/// Returns the number of items of type a_Item that are stored /** Returns the number of items of type a_Item that are stored */
int HowManyItems(const cItem & a_Item); int HowManyItems(const cItem & a_Item);
/// Returns true if there are at least as many items of type a_ItemStack as in a_ItemStack /** Returns true if there are at least as many items of type a_ItemStack as in a_ItemStack */
bool HasItems(const cItem & a_ItemStack); bool HasItems(const cItem & a_ItemStack);
/// Returns the index of the first empty slot; -1 if all full /** Returns the index of the first empty slot; -1 if all full */
int GetFirstEmptySlot(void) const; int GetFirstEmptySlot(void) const;
/// Returns the index of the first non-empty slot; -1 if all empty /** Returns the index of the first non-empty slot; -1 if all empty */
int GetFirstUsedSlot(void) const; int GetFirstUsedSlot(void) const;
/// Returns the index of the last empty slot; -1 if all full /** Returns the index of the last empty slot; -1 if all full */
int GetLastEmptySlot(void) const; int GetLastEmptySlot(void) const;
/// Returns the index of the last used slot; -1 if all empty /** Returns the index of the last used slot; -1 if all empty */
int GetLastUsedSlot(void) const; int GetLastUsedSlot(void) const;
/// Returns the index of the first empty slot following a_StartFrom (a_StartFrom is not checked) /** Returns the index of the first empty slot following a_StartFrom (a_StartFrom is not checked) */
int GetNextEmptySlot(int a_StartFrom) const; int GetNextEmptySlot(int a_StartFrom) const;
/// Returns the index of the first used slot following a_StartFrom (a_StartFrom is not checked) /** Returns the index of the first used slot following a_StartFrom (a_StartFrom is not checked) */
int GetNextUsedSlot(int a_StartFrom) const; int GetNextUsedSlot(int a_StartFrom) const;
/// Copies the contents into a cItems object; preserves the original a_Items contents /** Copies the contents into a cItems object; preserves the original a_Items contents */
void CopyToItems(cItems & a_Items) const; void CopyToItems(cItems & a_Items) const;
/// Adds the specified damage to the specified item; returns true if the item broke (but the item is left intact) /** Adds the specified damage to the specified item; returns true if the item broke (but the item is left intact) */
bool DamageItem(int a_SlotNum, short a_Amount); bool DamageItem(int a_SlotNum, short a_Amount);
/// Adds the specified damage to the specified item; returns true if the item broke (but the item is left intact) /** Adds the specified damage to the specified item; returns true if the item broke (but the item is left intact) */
bool DamageItem(int a_X, int a_Y, short a_Amount); bool DamageItem(int a_X, int a_Y, short a_Amount);
// tolua_end // tolua_end
@ -159,10 +161,10 @@ public:
*/ */
void GenerateRandomLootWithBooks(const cLootProbab * a_LootProbabs, size_t a_CountLootProbabs, int a_NumSlots, int a_Seed); void GenerateRandomLootWithBooks(const cLootProbab * a_LootProbabs, size_t a_CountLootProbabs, int a_NumSlots, int a_Seed);
/// Adds a callback that gets called whenever a slot changes. Must not be called from within the listener callback! /** Adds a callback that gets called whenever a slot changes. Must not be called from within the listener callback! */
void AddListener(cListener & a_Listener); void AddListener(cListener & a_Listener);
/// Removes a slot-change-callback. Must not be called from within the listener callback! /** Removes a slot-change-callback. Must not be called from within the listener callback! */
void RemoveListener(cListener & a_Listener); void RemoveListener(cListener & a_Listener);
// tolua_begin // tolua_begin
@ -177,7 +179,7 @@ protected:
cCriticalSection m_CSListeners; ///< CS that guards the m_Listeners against multi-thread access cCriticalSection m_CSListeners; ///< CS that guards the m_Listeners against multi-thread access
bool m_IsInTriggerListeners; ///< Set to true while TriggerListeners is running, to detect attempts to manipulate listener list while triggerring bool m_IsInTriggerListeners; ///< Set to true while TriggerListeners is running, to detect attempts to manipulate listener list while triggerring
/// Calls all m_Listeners for the specified slot number /** Calls all m_Listeners for the specified slot number */
void TriggerListeners(int a_SlotNum); void TriggerListeners(int a_SlotNum);
/** Adds up to a_Num items out of a_ItemStack, as many as can fit, in specified slot /** Adds up to a_Num items out of a_ItemStack, as many as can fit, in specified slot

View File

@ -29,43 +29,45 @@ class cListenThread :
typedef cIsThread super; typedef cIsThread super;
public: public:
/// Used as the callback for connection events /** Used as the callback for connection events */
class cCallback class cCallback
{ {
public: public:
/// This callback is called whenever a socket connection is accepted virtual ~cCallback() {}
/** This callback is called whenever a socket connection is accepted */
virtual void OnConnectionAccepted(cSocket & a_Socket) = 0; virtual void OnConnectionAccepted(cSocket & a_Socket) = 0;
} ; } ;
cListenThread(cCallback & a_Callback, cSocket::eFamily a_Family, const AString & a_ServiceName = ""); cListenThread(cCallback & a_Callback, cSocket::eFamily a_Family, const AString & a_ServiceName = "");
~cListenThread(); ~cListenThread();
/// Creates all the sockets, returns trus if successful, false if not. /** Creates all the sockets, returns trus if successful, false if not. */
bool Initialize(const AString & a_PortsString); bool Initialize(const AString & a_PortsString);
bool Start(void); bool Start(void);
void Stop(void); void Stop(void);
/// Call before Initialize() to set the "reuse" flag on the sockets /** Call before Initialize() to set the "reuse" flag on the sockets */
void SetReuseAddr(bool a_Reuse = true); void SetReuseAddr(bool a_Reuse = true);
protected: protected:
typedef std::vector<cSocket> cSockets; typedef std::vector<cSocket> cSockets;
/// The callback which to notify of incoming connections /** The callback which to notify of incoming connections */
cCallback & m_Callback; cCallback & m_Callback;
/// Socket address family to use /** Socket address family to use */
cSocket::eFamily m_Family; cSocket::eFamily m_Family;
/// Sockets that are being monitored /** Sockets that are being monitored */
cSockets m_Sockets; cSockets m_Sockets;
/// If set to true, the SO_REUSEADDR socket option is set to true /** If set to true, the SO_REUSEADDR socket option is set to true */
bool m_ShouldReuseAddr; bool m_ShouldReuseAddr;
/// Name of the service that's listening on the ports; for logging purposes only /** Name of the service that's listening on the ports; for logging purposes only */
AString m_ServiceName; AString m_ServiceName;

View File

@ -29,7 +29,7 @@ class cRCONServer :
{ {
public: public:
cRCONServer(cServer & a_Server); cRCONServer(cServer & a_Server);
~cRCONServer(); virtual ~cRCONServer();
void Initialize(cIniFile & a_IniFile); void Initialize(cIniFile & a_IniFile);

View File

@ -33,6 +33,10 @@ public:
{ {
} }
virtual ~cWindowOwner()
{
}
void CloseWindow(void) void CloseWindow(void)
{ {
m_Window = NULL; m_Window = NULL;