message: Correct the ASSERT macro by wrapping it in a do {} while (0) wrapper.
  It could previously fail in this case:
  if (x)
  ASSERT();
  else
  x = y;
  This would actually compile to:
  if (x)
  ASSERT();
  else
  x = y;
diff: @@ -13,11 +13,20 @@ namespace Assert {
  #define ASSERT_FAIL_MSG(format, ...) (void)0
  #else
  #define ASSERT(condition) \
  - if (!(condition)) ::NWNXLib::Assert::Fail((#condition), __FILE__, __LINE__, nullptr)
  + do \
  + { \
  + if (!(condition)) ::NWNXLib::Assert::Fail((#condition), __FILE__, __LINE__, nullptr) \
  + } while (0);
  +
  #define ASSERT_MSG(condition, format, ...) \
  - if (!(condition)) ::NWNXLib::Assert::Fail((#condition), __FILE__, __LINE__, (format), ##__VA_ARGS__)
  + do \
  + { \
  + if (!(condition)) ::NWNXLib::Assert::Fail((#condition), __FILE__, __LINE__, (format), ##__VA_ARGS__) \
  + } while (0);
  +
  #define ASSERT_FAIL() \
  ::NWNXLib::Assert::Fail(nullptr, __FILE__, __LINE__, nullptr)
  +
  #define ASSERT_FAIL_MSG(format, ...) \
  ::NWNXLib::Assert::Fail(nullptr, __FILE__, __LINE__, (format), ##__VA_ARGS__)
  #endif
  