1
0
mirror of https://github.com/rwengine/openrw.git synced 2024-11-02 00:42:33 +01:00
openrw/tests/test_Object.cpp

54 lines
1.3 KiB
C++
Raw Normal View History

2013-12-10 22:47:56 +01:00
#include <boost/test/unit_test.hpp>
2013-12-20 17:02:46 +01:00
#include <engine/GameWorld.hpp>
2016-09-09 22:13:22 +02:00
#include <objects/InstanceObject.hpp>
#include "test_Globals.hpp"
2013-12-10 22:47:56 +01:00
BOOST_AUTO_TEST_SUITE(ObjectTests)
2013-12-10 22:47:56 +01:00
2016-09-09 22:13:22 +02:00
#if 0 // Tests disabled as object damage logic is unclear
2013-12-10 22:47:56 +01:00
BOOST_AUTO_TEST_CASE(instance_test_damage)
{
std::shared_ptr<ObjectData> object(new ObjectData);
InstanceObject inst(Global::get().e,
glm::vec3(0.f, 0.f, 0.f),
glm::quat{1.0f,0.0f,0.0f,0.0f}, nullptr,
2013-12-10 22:47:56 +01:00
glm::vec3(1.f),
2014-06-11 22:00:53 +02:00
object, nullptr, nullptr
2013-12-10 22:47:56 +01:00
);
GameObject::DamageInfo dmg;
dmg.type = GameObject::DamageInfo::Bullet;
2013-12-10 22:47:56 +01:00
dmg.hitpoints = 50.f;
2013-12-10 22:47:56 +01:00
// Set object to undamagable.
object->flags = 0;
2013-12-10 22:47:56 +01:00
BOOST_CHECK( ! inst.takeDamage(dmg) );
2013-12-10 22:47:56 +01:00
BOOST_CHECK( inst.takeDamage(dmg) );
BOOST_CHECK( inst.getHealth() < 0.f );
2013-12-10 22:47:56 +01:00
}
BOOST_AUTO_TEST_CASE(instance_test_destroy)
{
std::shared_ptr<ObjectData> object(new ObjectData);
2014-06-06 16:22:26 +02:00
InstanceObject inst(Global::get().e,
glm::vec3(0.f, 0.f, 0.f),
glm::quat{1.0f,0.0f,0.0f,0.0f}, nullptr,
2013-12-10 22:47:56 +01:00
glm::vec3(1.f),
2014-06-11 22:00:53 +02:00
object, nullptr, nullptr
2013-12-10 22:47:56 +01:00
);
GameObject::DamageInfo dmg;
dmg.type = GameObject::DamageInfo::Bullet;
dmg.hitpoints = inst.getHealth() + 1.f;
2013-12-10 22:47:56 +01:00
BOOST_CHECK( inst.takeDamage(dmg) );
BOOST_CHECK( inst.getHealth() < 0.f );
2013-12-10 22:47:56 +01:00
}
#endif
2013-12-10 22:47:56 +01:00
BOOST_AUTO_TEST_SUITE_END()