diff --git a/src/game/Object.cpp b/src/game/Object.cpp index c37b85348..9a5555ad3 100644 --- a/src/game/Object.cpp +++ b/src/game/Object.cpp @@ -277,7 +277,7 @@ void Object::BuildMovementUpdate(ByteBuffer * data, uint16 flags, uint32 flags2) if(((Player*)this)->isInFlight()) { - WPAssert(((Player*)this)->GetMotionMaster()->GetCurrentMovementGeneratorType() == FLIGHT_MOTION_TYPE); + ASSERT(((Player*)this)->GetMotionMaster()->GetCurrentMovementGeneratorType() == FLIGHT_MOTION_TYPE); flags2 = (MOVEMENTFLAG_FORWARD | MOVEMENTFLAG_SPLINE2); } } @@ -384,7 +384,7 @@ void Object::BuildMovementUpdate(ByteBuffer * data, uint16 flags, uint32 flags2) return; } - WPAssert(((Player*)this)->GetMotionMaster()->GetCurrentMovementGeneratorType() == FLIGHT_MOTION_TYPE); + ASSERT(((Player*)this)->GetMotionMaster()->GetCurrentMovementGeneratorType() == FLIGHT_MOTION_TYPE); FlightPathMovementGenerator *fmg = (FlightPathMovementGenerator*)(((Player*)this)->GetMotionMaster()->top()); @@ -616,7 +616,7 @@ void Object::BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask * } } - WPAssert(updateMask && updateMask->GetCount() == m_valuesCount); + ASSERT(updateMask && updateMask->GetCount() == m_valuesCount); *data << (uint8)updateMask->GetBlockCount(); data->append( updateMask->GetMask(), updateMask->GetLength() ); diff --git a/src/shared/Errors.h b/src/shared/Errors.h index 01d504229..701bda930 100644 --- a/src/shared/Errors.h +++ b/src/shared/Errors.h @@ -22,22 +22,56 @@ #include "Common.h" #ifndef HAVE_CONFIG_H -#define HAVE_ACE_STACK_TRACE_H 1 +# define HAVE_ACE_STACK_TRACE_H 1 #endif #ifdef HAVE_ACE_STACK_TRACE_H -#include "ace/Stack_Trace.h" +# include "ace/Stack_Trace.h" #endif -#ifdef HAVE_ACE_STACK_TRACE_H // old versions ACE not have Stack_Trace.h but used at some oS for better compatibility -#define WPAssert( assertion ) { if (!(assertion)) { ACE_Stack_Trace st; fprintf( stderr, "\n%s:%i in %s ASSERTION FAILED:\n %s\n%s\n", __FILE__, __LINE__,__FUNCTION__, #assertion, st.c_str()); assert( #assertion &&0 ); } } +#ifdef HAVE_ACE_STACK_TRACE_H +// Normal assert. +#define WPError(CONDITION) \ +if (!(CONDITION)) \ +{ \ + ACE_Stack_Trace st; \ + printf("%s:%i: Error: Assertion in %s failed: %s\nStack Trace:\n%s", \ + __FILE__, __LINE__, __FUNCTION__, STRINGIZE(CONDITION), st.c_str()); \ + assert(STRINGIZE(CONDITION) && 0); \ +} + +// Just warn. +#define WPWarning(CONDITION) \ +if (!(CONDITION)) \ +{ \ + ACE_Stack_Trace st; \ + printf("%s:%i: Warning: Assertion in %s failed: %s\nStack Trace:\n%s",\ + __FILE__, __LINE__, __FUNCTION__, STRINGIZE(CONDITION), st.c_str()); \ +} #else -#define WPAssert( assertion ) { if (!(assertion)) { fprintf( stderr, "\n%s:%i in %s ASSERTION FAILED2:\n %s\n", __FILE__, __LINE__,__FUNCTION__, #assertion); assert( #assertion &&0 ); } } -#endif -#define WPError( assertion, errmsg ) if( ! (assertion) ) { sLog.outError( "%\n%s:%i in %s ERROR:\n %s\n", __FILE__, __LINE__, __FUNCTION__, (char *)errmsg ); assert( false ); } -#define WPWarning( assertion, errmsg ) if( ! (assertion) ) { sLog.outError( "\n%s:%i in %s WARNING:\n %s\n", __FILE__, __LINE__, __FUNCTION__, (char *)errmsg ); } +// Normal assert. +#define WPError(CONDITION) \ +if (!(CONDITION)) \ +{ \ + printf("%s:%i: Error: Assertion in %s failed: %s", \ + __FILE__, __LINE__, __FUNCTION__, STRINGIZE(CONDITION)); \ + assert(STRINGIZE(CONDITION) && 0); \ +} + +// Just warn. +#define WPWarning(CONDITION) \ +if (!(CONDITION)) \ +{ \ + ACE_Stack_Trace st; \ + printf("%s:%i: Warning: Assertion in %s failed: %s",\ + __FILE__, __LINE__, __FUNCTION__, STRINGIZE(CONDITION)); \ +} +#endif + +#ifdef MANGOS_DEBUG +# define ASSERT WPError +#else +# define ASSERT WPError // Error even if in release mode. +#endif -#define WPFatal( assertion, errmsg ) if( ! (assertion) ) { sLog.outError( "\n%s:%i in %s FATAL ERROR:\n %s\n", __FILE__, __LINE__, __FUNCTION__, (char *)errmsg ); assert( #assertion &&0 ); abort(); } - -#define ASSERT WPAssert #endif diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index b24ff9977..04a47d92b 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "8786" + #define REVISION_NR "8787" #endif // __REVISION_NR_H__