diff --git a/ChangeLog.md b/ChangeLog.md index e5bb304b7..d40dab079 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -82,6 +82,8 @@ Nazara Engine: - Fix copy and move semantic on HandledObject and ObjectHandle - Add support for emissive and normal maps in .mtl loader using custom keywords ([map_]emissive and [map_]normal) - Music, Sound and SoundEmitter are now movable +- Fixed Sound copy which was not copying looping state +- Fixed Billboard bounding volume - Fixed Directory::GetResultSize and Directory::IsResultDirectory on Posix systems Nazara Development Kit: diff --git a/src/Nazara/Audio/Sound.cpp b/src/Nazara/Audio/Sound.cpp index c06ca5526..6937e1ec2 100644 --- a/src/Nazara/Audio/Sound.cpp +++ b/src/Nazara/Audio/Sound.cpp @@ -37,6 +37,7 @@ namespace Nz SoundEmitter(sound) { SetBuffer(sound.m_buffer); + EnableLooping(sound.IsLooping()); } /*! diff --git a/src/Nazara/Graphics/Billboard.cpp b/src/Nazara/Graphics/Billboard.cpp index e228a2a59..3896cce49 100644 --- a/src/Nazara/Graphics/Billboard.cpp +++ b/src/Nazara/Graphics/Billboard.cpp @@ -33,9 +33,12 @@ namespace Nz void Billboard::MakeBoundingVolume() const { - constexpr float sqrt2 = float(M_SQRT2); + // As billboard always face the screen, we must take its maximum size in account on every axis + float maxSize = float(M_SQRT2) * std::max(m_size.x, m_size.y); - m_boundingVolume.Set(Vector3f(0.f), sqrt2 * m_size.x * Vector3f::Right() + sqrt2 * m_size.y * Vector3f::Down()); + Nz::Vector3f halfSize = (maxSize * Vector3f::Right() + maxSize * Vector3f::Down() + maxSize * Vector3f::Forward()) / 2.f; + + m_boundingVolume.Set(-halfSize, halfSize); } BillboardLibrary::LibraryMap Billboard::s_library;