merged in warnings changes
This commit is contained in:
parent
d2ed9d9fc4
commit
15a980a616
@ -494,10 +494,6 @@
|
|||||||
RelativePath="..\src\Chunk.h"
|
RelativePath="..\src\Chunk.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\src\Chunk.inl.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\ChunkDef.h"
|
RelativePath="..\src\ChunkDef.h"
|
||||||
>
|
>
|
||||||
|
@ -246,6 +246,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, const cRet & a_Mark, RetT1 & a_Ret1)
|
bool Call(FnT a_FnName, const cRet & a_Mark, RetT1 & a_Ret1)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -265,6 +266,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, const cRet & a_Mark, RetT1 & a_Ret1)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, const cRet & a_Mark, RetT1 & a_Ret1)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -285,6 +287,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, const cRet & a_Mark, RetT1 & a_Ret1)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, const cRet & a_Mark, RetT1 & a_Ret1)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -306,6 +309,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, const cRet & a_Mark, RetT1 & a_Ret1)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, const cRet & a_Mark, RetT1 & a_Ret1)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -328,6 +332,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, const cRet & a_Mark, RetT1 & a_Ret1)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, const cRet & a_Mark, RetT1 & a_Ret1)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -351,6 +356,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, const cRet & a_Mark, RetT1 & a_Ret1)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, const cRet & a_Mark, RetT1 & a_Ret1)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -376,6 +382,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, const cRet & a_Mark, RetT1 & a_Ret1)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, const cRet & a_Mark, RetT1 & a_Ret1)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -402,6 +409,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, ArgT7 a_Arg7, const cRet & a_Mark, RetT1 & a_Ret1)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, ArgT7 a_Arg7, const cRet & a_Mark, RetT1 & a_Ret1)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -429,6 +437,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, ArgT7 a_Arg7, ArgT8 a_Arg8, const cRet & a_Mark, RetT1 & a_Ret1)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, ArgT7 a_Arg7, ArgT8 a_Arg8, const cRet & a_Mark, RetT1 & a_Ret1)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -457,6 +466,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, ArgT7 a_Arg7, ArgT8 a_Arg8, ArgT9 a_Arg9, const cRet & a_Mark, RetT1 & a_Ret1)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, ArgT7 a_Arg7, ArgT8 a_Arg8, ArgT9 a_Arg9, const cRet & a_Mark, RetT1 & a_Ret1)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -486,6 +496,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, ArgT7 a_Arg7, ArgT8 a_Arg8, ArgT9 a_Arg9, ArgT10 a_Arg10, const cRet & a_Mark, RetT1 & a_Ret1)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, ArgT7 a_Arg7, ArgT8 a_Arg8, ArgT9 a_Arg9, ArgT10 a_Arg10, const cRet & a_Mark, RetT1 & a_Ret1)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -515,6 +526,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -536,6 +548,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -559,6 +572,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -583,6 +597,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -608,6 +623,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -635,6 +651,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -663,6 +680,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, ArgT7 a_Arg7, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, ArgT7 a_Arg7, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -692,6 +710,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, ArgT7 a_Arg7, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2, RetT3 & a_Ret3)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, ArgT7 a_Arg7, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2, RetT3 & a_Ret3)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -722,6 +741,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, ArgT7 a_Arg7, ArgT8 a_Arg8, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2, RetT3 & a_Ret3)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, ArgT7 a_Arg7, ArgT8 a_Arg8, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2, RetT3 & a_Ret3)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -753,6 +773,7 @@ public:
|
|||||||
>
|
>
|
||||||
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, ArgT7 a_Arg7, ArgT8 a_Arg8, ArgT9 a_Arg9, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2, RetT3 & a_Ret3, RetT4 & a_Ret4, RetT5 & a_Ret5)
|
bool Call(FnT a_FnName, ArgT1 a_Arg1, ArgT2 a_Arg2, ArgT3 a_Arg3, ArgT4 a_Arg4, ArgT5 a_Arg5, ArgT6 a_Arg6, ArgT7 a_Arg7, ArgT8 a_Arg8, ArgT9 a_Arg9, const cRet & a_Mark, RetT1 & a_Ret1, RetT2 & a_Ret2, RetT3 & a_Ret3, RetT4 & a_Ret4, RetT5 & a_Ret5)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Mark);
|
||||||
if (!PushFunction(a_FnName))
|
if (!PushFunction(a_FnName))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
@ -273,7 +273,7 @@ private:
|
|||||||
bool m_bReloadPlugins;
|
bool m_bReloadPlugins;
|
||||||
|
|
||||||
cPluginManager();
|
cPluginManager();
|
||||||
~cPluginManager();
|
virtual ~cPluginManager();
|
||||||
|
|
||||||
/// Reloads all plugins, defaulting to settings.ini for settings location
|
/// Reloads all plugins, defaulting to settings.ini for settings location
|
||||||
void ReloadPluginsNow(void);
|
void ReloadPluginsNow(void);
|
||||||
|
@ -87,7 +87,11 @@ public:
|
|||||||
virtual void SendTo(cClientHandle & a_Client) = 0;
|
virtual void SendTo(cClientHandle & a_Client) = 0;
|
||||||
|
|
||||||
/// Ticks the entity; returns true if the chunk should be marked as dirty as a result of this ticking. By default does nothing.
|
/// Ticks the entity; returns true if the chunk should be marked as dirty as a result of this ticking. By default does nothing.
|
||||||
virtual bool Tick(float a_Dt, cChunk & a_Chunk) { return false; }
|
virtual bool Tick(float a_Dt, cChunk & /* a_Chunk */)
|
||||||
|
{
|
||||||
|
UNUSED(a_Dt);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/// Position in absolute block coordinates
|
/// Position in absolute block coordinates
|
||||||
|
@ -73,6 +73,7 @@ protected:
|
|||||||
// cItemGrid::cListener overrides:
|
// cItemGrid::cListener overrides:
|
||||||
virtual void OnSlotChanged(cItemGrid * a_Grid, int a_SlotNum)
|
virtual void OnSlotChanged(cItemGrid * a_Grid, int a_SlotNum)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_SlotNum);
|
||||||
ASSERT(a_Grid == &m_Contents);
|
ASSERT(a_Grid == &m_Contents);
|
||||||
if (m_World != NULL)
|
if (m_World != NULL)
|
||||||
{
|
{
|
||||||
|
@ -95,7 +95,7 @@ public:
|
|||||||
|
|
||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
void SetBurnTimes(int a_FuelBurnTime, int a_TimeBurned) {m_FuelBurnTime = a_FuelBurnTime; m_TimeBurned = 0; }
|
void SetBurnTimes(int a_FuelBurnTime, int a_TimeBurned) {m_FuelBurnTime = a_FuelBurnTime; m_TimeBurned = a_TimeBurned; }
|
||||||
void SetCookTimes(int a_NeedCookTime, int a_TimeCooked) {m_NeedCookTime = a_NeedCookTime; m_TimeCooked = a_TimeCooked; }
|
void SetCookTimes(int a_NeedCookTime, int a_TimeCooked) {m_NeedCookTime = a_NeedCookTime; m_TimeCooked = a_TimeCooked; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -45,7 +45,7 @@ public:
|
|||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
virtual void UsedBy(cPlayer * a_Player) override;
|
virtual void UsedBy(cPlayer * a_Player) override;
|
||||||
virtual void SendTo(cClientHandle & a_Client) override { };
|
virtual void SendTo(cClientHandle &) override { };
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int m_Record;
|
int m_Record;
|
||||||
|
@ -52,7 +52,7 @@ public:
|
|||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
virtual void UsedBy(cPlayer * a_Player) override;
|
virtual void UsedBy(cPlayer * a_Player) override;
|
||||||
virtual void SendTo(cClientHandle & a_Client) override { };
|
virtual void SendTo(cClientHandle &) override { };
|
||||||
|
|
||||||
private:
|
private:
|
||||||
char m_Pitch;
|
char m_Pitch;
|
||||||
|
@ -99,7 +99,11 @@ public:
|
|||||||
virtual bool DoesIgnoreBuildCollision(void);
|
virtual bool DoesIgnoreBuildCollision(void);
|
||||||
|
|
||||||
/// <summary>Similar to DoesIgnoreBuildCollision(void), but is used for cases where block meta/player item-in-hand is needed to determine collision (thin snow)</summary>
|
/// <summary>Similar to DoesIgnoreBuildCollision(void), but is used for cases where block meta/player item-in-hand is needed to determine collision (thin snow)</summary>
|
||||||
virtual bool DoesIgnoreBuildCollision(cPlayer * a_Player, NIBBLETYPE a_Meta) { return DoesIgnoreBuildCollision(); }
|
virtual bool DoesIgnoreBuildCollision(cPlayer *, NIBBLETYPE a_Meta)
|
||||||
|
{
|
||||||
|
UNUSED(a_Meta);
|
||||||
|
return DoesIgnoreBuildCollision();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>Returns if this block drops if it gets destroyed by an unsuitable situation. Default: true</summary>
|
/// <summary>Returns if this block drops if it gets destroyed by an unsuitable situation. Default: true</summary>
|
||||||
virtual bool DoesDropOnUnsuitable(void);
|
virtual bool DoesDropOnUnsuitable(void);
|
||||||
|
@ -527,9 +527,10 @@ void cChunk::SpawnMobs(cMobSpawner& a_MobSpawner)
|
|||||||
|
|
||||||
// MG TODO : check that "Level" really means Y
|
// MG TODO : check that "Level" really means Y
|
||||||
|
|
||||||
|
/*
|
||||||
NIBBLETYPE SkyLight = 0;
|
NIBBLETYPE SkyLight = 0;
|
||||||
|
|
||||||
NIBBLETYPE BlockLight = 0;
|
NIBBLETYPE BlockLight = 0;
|
||||||
|
*/
|
||||||
|
|
||||||
if (IsLightValid())
|
if (IsLightValid())
|
||||||
{
|
{
|
||||||
@ -2324,8 +2325,8 @@ BLOCKTYPE cChunk::GetBlock(int a_BlockIdx) const
|
|||||||
void cChunk::GetBlockTypeMeta(int a_RelX, int a_RelY, int a_RelZ, BLOCKTYPE & a_BlockType, NIBBLETYPE & a_BlockMeta)
|
void cChunk::GetBlockTypeMeta(int a_RelX, int a_RelY, int a_RelZ, BLOCKTYPE & a_BlockType, NIBBLETYPE & a_BlockMeta)
|
||||||
{
|
{
|
||||||
int Idx = cChunkDef::MakeIndexNoCheck(a_RelX, a_RelY, a_RelZ);
|
int Idx = cChunkDef::MakeIndexNoCheck(a_RelX, a_RelY, a_RelZ);
|
||||||
a_BlockType = cChunkDef::GetBlock (m_BlockTypes, a_RelX, a_RelY, a_RelZ);
|
a_BlockType = cChunkDef::GetBlock (m_BlockTypes, Idx);
|
||||||
a_BlockMeta = cChunkDef::GetNibble(m_BlockMeta, a_RelX, a_RelY, a_RelZ);
|
a_BlockMeta = cChunkDef::GetNibble(m_BlockMeta, Idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2897,11 +2898,3 @@ NIBBLETYPE cChunk::GetTimeAlteredLight(NIBBLETYPE a_Skylight) const
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if !C_CHUNK_USE_INLINE
|
|
||||||
# include "cChunk.inl.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
23
src/Chunk.h
23
src/Chunk.h
@ -12,19 +12,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define C_CHUNK_USE_INLINE 1
|
|
||||||
|
|
||||||
// Do not touch
|
|
||||||
#if C_CHUNK_USE_INLINE
|
|
||||||
#define __C_CHUNK_INLINE__ inline
|
|
||||||
#else
|
|
||||||
#define __C_CHUNK_INLINE__
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
namespace Json
|
namespace Json
|
||||||
{
|
{
|
||||||
class Value;
|
class Value;
|
||||||
@ -436,8 +423,6 @@ private:
|
|||||||
void RemoveBlockEntity(cBlockEntity * a_BlockEntity);
|
void RemoveBlockEntity(cBlockEntity * a_BlockEntity);
|
||||||
void AddBlockEntity (cBlockEntity * a_BlockEntity);
|
void AddBlockEntity (cBlockEntity * a_BlockEntity);
|
||||||
|
|
||||||
void SpreadLightOfBlock(NIBBLETYPE * a_LightBuffer, int a_X, int a_Y, int a_Z, char a_Falloff);
|
|
||||||
|
|
||||||
/// Creates a block entity for each block that needs a block entity and doesn't have one in the list
|
/// Creates a block entity for each block that needs a block entity and doesn't have one in the list
|
||||||
void CreateBlockEntities(void);
|
void CreateBlockEntities(void);
|
||||||
|
|
||||||
@ -482,11 +467,3 @@ typedef std::list<cChunkPtr> cChunkPtrList;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if C_CHUNK_USE_INLINE
|
|
||||||
#include "Chunk.inl.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
|
|
||||||
#ifndef __C_CHUNK_INL_H__
|
|
||||||
#define __C_CHUNK_INL_H__
|
|
||||||
|
|
||||||
#ifndef MAX
|
|
||||||
# define MAX(a,b) (((a)>(b))?(a):(b))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
__C_CHUNK_INLINE__
|
|
||||||
void cChunk::SpreadLightOfBlock(NIBBLETYPE * a_LightBuffer, int a_X, int a_Y, int a_Z, char a_Falloff)
|
|
||||||
{
|
|
||||||
unsigned char CurrentLight = cChunkDef::GetNibble( a_LightBuffer, a_X, a_Y, a_Z );
|
|
||||||
cChunkDef::SetNibble( a_LightBuffer, a_X-1, a_Y, a_Z, MAX(cChunkDef::GetNibble( a_LightBuffer, a_X-1, a_Y, a_Z ), MAX(0,CurrentLight-a_Falloff) ) );
|
|
||||||
cChunkDef::SetNibble( a_LightBuffer, a_X+1, a_Y, a_Z, MAX(cChunkDef::GetNibble( a_LightBuffer, a_X+1, a_Y, a_Z ), MAX(0,CurrentLight-a_Falloff) ) );
|
|
||||||
cChunkDef::SetNibble( a_LightBuffer, a_X, a_Y-1, a_Z, MAX(cChunkDef::GetNibble( a_LightBuffer, a_X, a_Y-1, a_Z ), MAX(0,CurrentLight-a_Falloff) ) );
|
|
||||||
cChunkDef::SetNibble( a_LightBuffer, a_X, a_Y+1, a_Z, MAX(cChunkDef::GetNibble( a_LightBuffer, a_X, a_Y+1, a_Z ), MAX(0,CurrentLight-a_Falloff) ) );
|
|
||||||
cChunkDef::SetNibble( a_LightBuffer, a_X, a_Y, a_Z-1, MAX(cChunkDef::GetNibble( a_LightBuffer, a_X, a_Y, a_Z-1 ), MAX(0,CurrentLight-a_Falloff) ) );
|
|
||||||
cChunkDef::SetNibble( a_LightBuffer, a_X, a_Y, a_Z+1, MAX(cChunkDef::GetNibble( a_LightBuffer, a_X, a_Y, a_Z+1 ), MAX(0,CurrentLight-a_Falloff) ) );
|
|
||||||
MarkDirty();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -182,6 +182,7 @@ public:
|
|||||||
/// Converts absolute block coords into relative (chunk + block) coords:
|
/// Converts absolute block coords into relative (chunk + block) coords:
|
||||||
inline static void AbsoluteToRelative(/* in-out */ int & a_X, int & a_Y, int & a_Z, /* out */ int & a_ChunkX, int & a_ChunkZ )
|
inline static void AbsoluteToRelative(/* in-out */ int & a_X, int & a_Y, int & a_Z, /* out */ int & a_ChunkX, int & a_ChunkZ )
|
||||||
{
|
{
|
||||||
|
UNUSED(a_Y);
|
||||||
BlockToChunk(a_X, a_Z, a_ChunkX, a_ChunkZ);
|
BlockToChunk(a_X, a_Z, a_ChunkX, a_ChunkZ);
|
||||||
|
|
||||||
a_X = a_X - a_ChunkX * Width;
|
a_X = a_X - a_ChunkX * Width;
|
||||||
|
@ -264,7 +264,7 @@ void cChunkSender::BlockEntity(cBlockEntity * a_Entity)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void cChunkSender::Entity(cEntity * a_Entity)
|
void cChunkSender::Entity(cEntity *)
|
||||||
{
|
{
|
||||||
// Nothing needed yet, perhaps in the future when we save entities into chunks we'd like to send them upon load, too ;)
|
// Nothing needed yet, perhaps in the future when we save entities into chunks we'd like to send them upon load, too ;)
|
||||||
}
|
}
|
||||||
|
@ -38,6 +38,7 @@ class cNullCommandOutputCallback :
|
|||||||
virtual void Out(const AString & a_Text) override
|
virtual void Out(const AString & a_Text) override
|
||||||
{
|
{
|
||||||
// Do nothing
|
// Do nothing
|
||||||
|
UNUSED(a_Text);
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
@ -351,10 +351,14 @@ public:
|
|||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
/// Called when the specified player right-clicks this entity
|
/// Called when the specified player right-clicks this entity
|
||||||
virtual void OnRightClicked(cPlayer & a_Player) {};
|
virtual void OnRightClicked(cPlayer &) {};
|
||||||
|
|
||||||
/// Returns the list of drops for this pawn when it is killed. May check a_Killer for special handling (sword of looting etc.). Called from KilledBy().
|
/// Returns the list of drops for this pawn when it is killed. May check a_Killer for special handling (sword of looting etc.). Called from KilledBy().
|
||||||
virtual void GetDrops(cItems & a_Drops, cEntity * a_Killer = NULL) {}
|
virtual void GetDrops(cItems & a_Drops, cEntity * a_Killer = NULL)
|
||||||
|
{
|
||||||
|
UNUSED(a_Drops);
|
||||||
|
UNUSED(a_Killer);
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
static cCriticalSection m_CSCount;
|
static cCriticalSection m_CSCount;
|
||||||
@ -420,11 +424,13 @@ protected:
|
|||||||
void Dereference( cEntity*& a_EntityPtr );
|
void Dereference( cEntity*& a_EntityPtr );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Measured in degrees (MAX 360°)
|
// Measured in degrees, [-180, +180)
|
||||||
double m_HeadYaw;
|
double m_HeadYaw;
|
||||||
|
|
||||||
// Measured in meter/second (m/s)
|
// Measured in meter/second (m/s)
|
||||||
Vector3d m_Speed;
|
Vector3d m_Speed;
|
||||||
// Measured in degrees (MAX 360°)
|
|
||||||
|
// Measured in degrees, [-180, +180)
|
||||||
Vector3d m_Rot;
|
Vector3d m_Rot;
|
||||||
|
|
||||||
/// Position of the entity's XZ center and Y bottom
|
/// Position of the entity's XZ center and Y bottom
|
||||||
|
@ -45,7 +45,7 @@ public:
|
|||||||
|
|
||||||
virtual void Tick(float a_Dt, cChunk & a_Chunk) override;
|
virtual void Tick(float a_Dt, cChunk & a_Chunk) override;
|
||||||
|
|
||||||
virtual void HandlePhysics(float a_Dt, cChunk & a_Chunk) override { };
|
virtual void HandlePhysics(float a_Dt, cChunk &) override { UNUSED(a_Dt); };
|
||||||
|
|
||||||
/// Returns the curently equipped weapon; empty item if none
|
/// Returns the curently equipped weapon; empty item if none
|
||||||
virtual cItem GetEquippedWeapon(void) const override { return m_Inventory.GetEquippedItem(); }
|
virtual cItem GetEquippedWeapon(void) const override { return m_Inventory.GetEquippedItem(); }
|
||||||
@ -114,7 +114,7 @@ public:
|
|||||||
double GetEyeHeight(void) const; // tolua_export
|
double GetEyeHeight(void) const; // tolua_export
|
||||||
Vector3d GetEyePosition(void) const; // tolua_export
|
Vector3d GetEyePosition(void) const; // tolua_export
|
||||||
inline bool IsOnGround(void) const {return m_bTouchGround; } // tolua_export
|
inline bool IsOnGround(void) const {return m_bTouchGround; } // tolua_export
|
||||||
inline const double GetStance(void) const { return GetPosY() + 1.62; } // tolua_export // TODO: Proper stance when crouching etc.
|
inline double GetStance(void) const { return GetPosY() + 1.62; } // tolua_export // TODO: Proper stance when crouching etc.
|
||||||
inline cInventory & GetInventory(void) { return m_Inventory; } // tolua_export
|
inline cInventory & GetInventory(void) { return m_Inventory; } // tolua_export
|
||||||
inline const cInventory & GetInventory(void) const { return m_Inventory; }
|
inline const cInventory & GetInventory(void) const { return m_Inventory; }
|
||||||
|
|
||||||
|
@ -52,7 +52,11 @@ public:
|
|||||||
virtual void OnHitSolidBlock(const Vector3d & a_HitPos, char a_HitFace);
|
virtual void OnHitSolidBlock(const Vector3d & a_HitPos, char a_HitFace);
|
||||||
|
|
||||||
/// Called by the physics blocktracer when the entity hits another entity
|
/// Called by the physics blocktracer when the entity hits another entity
|
||||||
virtual void OnHitEntity(cEntity & a_EntityHit, const Vector3d & a_HitPos) {}
|
virtual void OnHitEntity(cEntity & a_EntityHit, const Vector3d & a_HitPos)
|
||||||
|
{
|
||||||
|
UNUSED(a_EntityHit);
|
||||||
|
UNUSED(a_HitPos);
|
||||||
|
}
|
||||||
|
|
||||||
/// Called by Chunk when the projectile is eligible for player collection
|
/// Called by Chunk when the projectile is eligible for player collection
|
||||||
virtual void CollectedBy(cPlayer * a_Dest);
|
virtual void CollectedBy(cPlayer * a_Dest);
|
||||||
|
@ -25,7 +25,13 @@ public:
|
|||||||
virtual bool OnItemUse(cWorld * a_World, cPlayer * a_Player, const cItem & a_Item, int a_BlockX, int a_BlockY, int a_BlockZ, char a_Dir);
|
virtual bool OnItemUse(cWorld * a_World, cPlayer * a_Player, const cItem & a_Item, int a_BlockX, int a_BlockY, int a_BlockZ, char a_Dir);
|
||||||
|
|
||||||
/// Called when the client sends the SHOOT status in the lclk packet
|
/// Called when the client sends the SHOOT status in the lclk packet
|
||||||
virtual void OnItemShoot(cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace) {}
|
virtual void OnItemShoot(cPlayer *, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace)
|
||||||
|
{
|
||||||
|
UNUSED(a_BlockX);
|
||||||
|
UNUSED(a_BlockY);
|
||||||
|
UNUSED(a_BlockZ);
|
||||||
|
UNUSED(a_BlockFace);
|
||||||
|
}
|
||||||
|
|
||||||
/// Called while the player diggs a block using this item
|
/// Called while the player diggs a block using this item
|
||||||
virtual bool OnDiggingBlock(cWorld * a_World, cPlayer * a_Player, const cItem & a_HeldItem, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace);
|
virtual bool OnDiggingBlock(cWorld * a_World, cPlayer * a_Player, const cItem & a_HeldItem, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace);
|
||||||
|
@ -238,6 +238,7 @@ bool cPiston::CanPush(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta)
|
|||||||
|
|
||||||
bool cPiston::CanBreakPush(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta)
|
bool cPiston::CanBreakPush(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta)
|
||||||
{
|
{
|
||||||
|
UNUSED(a_BlockMeta);
|
||||||
return g_BlockPistonBreakable[a_BlockType];
|
return g_BlockPistonBreakable[a_BlockType];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -596,10 +596,10 @@ bool cRoot::FindAndDoWithPlayer(const AString & a_PlayerName, cPlayerListCallbac
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
cCallback (const AString & a_PlayerName, cPlayerListCallback & a_Callback) :
|
cCallback (const AString & a_PlayerName, cPlayerListCallback & a_Callback) :
|
||||||
m_Callback(a_Callback),
|
|
||||||
m_BestRating(0),
|
m_BestRating(0),
|
||||||
m_NameLength(a_PlayerName.length()),
|
m_NameLength(a_PlayerName.length()),
|
||||||
m_PlayerName(a_PlayerName),
|
m_PlayerName(a_PlayerName),
|
||||||
|
m_Callback(a_Callback),
|
||||||
m_BestMatch(NULL),
|
m_BestMatch(NULL),
|
||||||
m_NumMatches(0)
|
m_NumMatches(0)
|
||||||
{}
|
{}
|
||||||
|
@ -35,6 +35,8 @@ class cServer // tolua_export
|
|||||||
: public cListenThread::cCallback
|
: public cListenThread::cCallback
|
||||||
{ // tolua_export
|
{ // tolua_export
|
||||||
public: // tolua_export
|
public: // tolua_export
|
||||||
|
|
||||||
|
virtual ~cServer() {}
|
||||||
bool InitServer(cIniFile & a_SettingsIni);
|
bool InitServer(cIniFile & a_SettingsIni);
|
||||||
|
|
||||||
// tolua_begin
|
// tolua_begin
|
||||||
|
@ -22,7 +22,7 @@ public:
|
|||||||
cFireSimulator(cWorld & a_World, cIniFile & a_IniFile);
|
cFireSimulator(cWorld & a_World, cIniFile & a_IniFile);
|
||||||
~cFireSimulator();
|
~cFireSimulator();
|
||||||
|
|
||||||
virtual void Simulate(float a_Dt) override {} // not used
|
virtual void Simulate(float a_Dt) override { UNUSED(a_Dt);} // not used
|
||||||
virtual void SimulateChunk(float a_Dt, int a_ChunkX, int a_ChunkZ, cChunk * a_Chunk) override;
|
virtual void SimulateChunk(float a_Dt, int a_ChunkX, int a_ChunkZ, cChunk * a_Chunk) override;
|
||||||
|
|
||||||
virtual bool IsAllowedBlock(BLOCKTYPE a_BlockType) override;
|
virtual bool IsAllowedBlock(BLOCKTYPE a_BlockType) override;
|
||||||
|
@ -19,7 +19,7 @@ public:
|
|||||||
cRedstoneSimulator(cWorld & a_World);
|
cRedstoneSimulator(cWorld & a_World);
|
||||||
~cRedstoneSimulator();
|
~cRedstoneSimulator();
|
||||||
|
|
||||||
virtual void Simulate(float a_Dt) override {}; // Not used in this simulator
|
virtual void Simulate(float a_Dt) override { UNUSED(a_Dt);} // not used
|
||||||
virtual void SimulateChunk(float a_Dt, int a_ChunkX, int a_ChunkZ, cChunk * a_Chunk) override;
|
virtual void SimulateChunk(float a_Dt, int a_ChunkX, int a_ChunkZ, cChunk * a_Chunk) override;
|
||||||
virtual bool IsAllowedBlock( BLOCKTYPE a_BlockType ) override { return IsRedstone(a_BlockType); }
|
virtual bool IsAllowedBlock( BLOCKTYPE a_BlockType ) override { return IsRedstone(a_BlockType); }
|
||||||
|
|
||||||
@ -271,4 +271,4 @@ private:
|
|||||||
default: return false;
|
default: return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -15,7 +15,7 @@ public:
|
|||||||
cSandSimulator(cWorld & a_World, cIniFile & a_IniFile);
|
cSandSimulator(cWorld & a_World, cIniFile & a_IniFile);
|
||||||
|
|
||||||
// cSimulator overrides:
|
// cSimulator overrides:
|
||||||
virtual void Simulate(float a_Dt) override {} // Unused in this simulator
|
virtual void Simulate(float a_Dt) override { UNUSED(a_Dt);} // not used
|
||||||
virtual void SimulateChunk(float a_Dt, int a_ChunkX, int a_ChunkZ, cChunk * a_Chunk) override;
|
virtual void SimulateChunk(float a_Dt, int a_ChunkX, int a_ChunkZ, cChunk * a_Chunk) override;
|
||||||
virtual bool IsAllowedBlock(BLOCKTYPE a_BlockType) override;
|
virtual bool IsAllowedBlock(BLOCKTYPE a_BlockType) override;
|
||||||
|
|
||||||
|
@ -25,7 +25,14 @@ public:
|
|||||||
virtual void Simulate(float a_Dt) = 0;
|
virtual void Simulate(float a_Dt) = 0;
|
||||||
|
|
||||||
/// Called in each tick for each chunk, a_Dt is the time passed since the last tick, in msec; direct access to chunk data available
|
/// Called in each tick for each chunk, a_Dt is the time passed since the last tick, in msec; direct access to chunk data available
|
||||||
virtual void SimulateChunk(float a_Dt, int a_ChunkX, int a_ChunkZ, cChunk * a_Chunk) {};
|
virtual void SimulateChunk(float a_Dt, int a_ChunkX,
|
||||||
|
int a_ChunkZ, cChunk * a_Chunk)
|
||||||
|
{
|
||||||
|
UNUSED(a_Dt);
|
||||||
|
UNUSED(a_ChunkX);
|
||||||
|
UNUSED(a_ChunkZ);
|
||||||
|
UNUSED(a_Chunk);
|
||||||
|
};
|
||||||
|
|
||||||
/// Called when a block changes
|
/// Called when a block changes
|
||||||
virtual void WakeUp(int a_BlockX, int a_BlockY, int a_BlockZ, cChunk * a_Chunk);
|
virtual void WakeUp(int a_BlockX, int a_BlockY, int a_BlockZ, cChunk * a_Chunk);
|
||||||
|
@ -105,7 +105,7 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
cWebAdmin(void);
|
cWebAdmin(void);
|
||||||
~cWebAdmin();
|
virtual ~cWebAdmin();
|
||||||
|
|
||||||
/// Initializes the object. Returns true if successfully initialized and ready to start
|
/// Initializes the object. Returns true if successfully initialized and ready to start
|
||||||
bool Init(void);
|
bool Init(void);
|
||||||
@ -169,9 +169,16 @@ protected:
|
|||||||
virtual void OnBody(const char * a_Data, int a_Size) override;
|
virtual void OnBody(const char * a_Data, int a_Size) override;
|
||||||
|
|
||||||
// cHTTPFormParser::cCallbacks overrides. Files are ignored:
|
// cHTTPFormParser::cCallbacks overrides. Files are ignored:
|
||||||
virtual void OnFileStart(cHTTPFormParser & a_Parser, const AString & a_FileName) override {}
|
virtual void OnFileStart(cHTTPFormParser &, const AString & a_FileName) override
|
||||||
virtual void OnFileData(cHTTPFormParser & a_Parser, const char * a_Data, int a_Size) override {}
|
{
|
||||||
virtual void OnFileEnd(cHTTPFormParser & a_Parser) override {}
|
UNUSED(a_FileName);
|
||||||
|
}
|
||||||
|
virtual void OnFileData(cHTTPFormParser &, const char * a_Data, int a_Size) override
|
||||||
|
{
|
||||||
|
UNUSED(a_Data);
|
||||||
|
UNUSED(a_Size);
|
||||||
|
}
|
||||||
|
virtual void OnFileEnd(cHTTPFormParser &) override {}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user