mirror of
https://github.com/rwengine/openrw.git
synced 2024-11-07 03:12:36 +01:00
Merge branch 'master' of bitbucket.org:danharibo/gtfw
This commit is contained in:
commit
73c7e136e2
@ -9,8 +9,8 @@ include_directories(${PROJECT_SOURCE_DIR}/engine/include)
|
|||||||
|
|
||||||
find_package(Boost COMPONENTS unit_test_framework REQUIRED)
|
find_package(Boost COMPONENTS unit_test_framework REQUIRED)
|
||||||
|
|
||||||
include_directories(../framework2/include)
|
include_directories(../framework2/include /usr/include/bullet)
|
||||||
|
|
||||||
target_link_libraries(run_tests renderware sfml-window sfml-system GL ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
|
target_link_libraries(run_tests renderware sfml-window sfml-system GL GLEW BulletDynamics BulletCollision LinearMath ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
|
||||||
|
|
||||||
add_test(UnitTests run_tests)
|
add_test(UnitTests run_tests)
|
||||||
|
58
tests/test_object.cpp
Normal file
58
tests/test_object.cpp
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
#include <boost/test/unit_test.hpp>
|
||||||
|
#include <renderwure/objects/GTAInstance.hpp>
|
||||||
|
#include <renderwure/engine/GTAEngine.hpp>
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_SUITE(ObjectUnitTests)
|
||||||
|
|
||||||
|
GTAEngine e("");
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(instance_test_damage)
|
||||||
|
{
|
||||||
|
std::shared_ptr<ObjectData> object(new ObjectData);
|
||||||
|
GTAInstance inst(&e,
|
||||||
|
glm::vec3(0.f, 0.f, 0.f),
|
||||||
|
glm::quat(), nullptr,
|
||||||
|
glm::vec3(1.f),
|
||||||
|
object,
|
||||||
|
nullptr
|
||||||
|
);
|
||||||
|
GTAObject::DamageInfo dmg;
|
||||||
|
dmg.type = GTAObject::DamageInfo::Bullet;
|
||||||
|
dmg.hitpoints = 50.f;
|
||||||
|
|
||||||
|
// Set object to undamagable.
|
||||||
|
object->flags = 0;
|
||||||
|
|
||||||
|
BOOST_CHECK( ! inst.takeDamage(dmg) );
|
||||||
|
|
||||||
|
// Now make it damageable
|
||||||
|
|
||||||
|
object->flags = ObjectData::BREAKABLE;
|
||||||
|
|
||||||
|
BOOST_CHECK( inst.takeDamage(dmg) );
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(instance_test_destroy)
|
||||||
|
{
|
||||||
|
std::shared_ptr<ObjectData> object(new ObjectData);
|
||||||
|
GTAInstance inst(&e,
|
||||||
|
glm::vec3(0.f, 0.f, 0.f),
|
||||||
|
glm::quat(), nullptr,
|
||||||
|
glm::vec3(1.f),
|
||||||
|
object,
|
||||||
|
nullptr
|
||||||
|
);
|
||||||
|
GTAObject::DamageInfo dmg;
|
||||||
|
dmg.type = GTAObject::DamageInfo::Bullet;
|
||||||
|
dmg.hitpoints = inst.mHealth + 1.f;
|
||||||
|
|
||||||
|
// Now make it damageable
|
||||||
|
|
||||||
|
object->flags = ObjectData::BREAKABLE;
|
||||||
|
|
||||||
|
BOOST_CHECK( inst.takeDamage(dmg) );
|
||||||
|
|
||||||
|
BOOST_CHECK( inst.mHealth < 0.f );
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_SUITE_END()
|
@ -449,6 +449,7 @@ void render()
|
|||||||
if(debugObject) {
|
if(debugObject) {
|
||||||
auto p = debugObject->getPosition();
|
auto p = debugObject->getPosition();
|
||||||
ss << "Position: " << p.x << " " << p.y << " " << p.z << std::endl;
|
ss << "Position: " << p.x << " " << p.y << " " << p.z << std::endl;
|
||||||
|
ss << "Health: " << debugObject->mHealth << std::endl;
|
||||||
if(debugObject->type() == GTAObject::Vehicle) {
|
if(debugObject->type() == GTAObject::Vehicle) {
|
||||||
GTAVehicle* vehicle = static_cast<GTAVehicle*>(debugObject);
|
GTAVehicle* vehicle = static_cast<GTAVehicle*>(debugObject);
|
||||||
ss << "ID: " << vehicle->info.handling.ID << std::endl;
|
ss << "ID: " << vehicle->info.handling.ID << std::endl;
|
||||||
|
Loading…
Reference in New Issue
Block a user