blob: 2e064bb96f6a7826ff29533e9c567802e4a5f3f3 [file] [log] [blame]
#include "rive/joystick.hpp"
#include "rive/shapes/shape.hpp"
#include "rive_file_reader.hpp"
#include "rive_testing.hpp"
TEST_CASE("joystick flags load as expected", "[file]")
{
auto file = ReadRiveFile("../../test/assets/joystick_flag_test.riv");
auto artboard = file->artboard();
auto invertX = artboard->find<rive::Joystick>("Invert X Joystick");
REQUIRE(invertX->isJoystickFlagged(rive::JoystickFlags::invertX));
REQUIRE(!invertX->isJoystickFlagged(rive::JoystickFlags::invertY));
REQUIRE(!invertX->isJoystickFlagged(rive::JoystickFlags::worldSpace));
invertX->x(0.0f);
invertX->apply(artboard);
REQUIRE(artboard->find<rive::Shape>("invert_x_rect")->x() == 350.0f);
invertX->x(1.0f);
invertX->apply(artboard);
REQUIRE(artboard->find<rive::Shape>("invert_x_rect")->x() == 300.0f);
invertX->x(-1.0f);
invertX->apply(artboard);
REQUIRE(artboard->find<rive::Shape>("invert_x_rect")->x() == 400.0f);
auto invertY = artboard->find<rive::Joystick>("Invert Y Joystick");
REQUIRE(!invertY->isJoystickFlagged(rive::JoystickFlags::invertX));
REQUIRE(invertY->isJoystickFlagged(rive::JoystickFlags::invertY));
REQUIRE(!invertY->isJoystickFlagged(rive::JoystickFlags::worldSpace));
invertY->y(0.0f);
invertY->apply(artboard);
REQUIRE(artboard->find<rive::Shape>("invert_y_ellipse")->x() == 425.0f);
invertY->y(1.0f);
invertY->apply(artboard);
REQUIRE(artboard->find<rive::Shape>("invert_y_ellipse")->x() == 400.0f);
invertY->y(-1.0f);
invertY->apply(artboard);
REQUIRE(artboard->find<rive::Shape>("invert_y_ellipse")->x() == 450.0f);
auto world = artboard->find<rive::Joystick>("World Joystick");
REQUIRE(!world->isJoystickFlagged(rive::JoystickFlags::invertX));
REQUIRE(!world->isJoystickFlagged(rive::JoystickFlags::invertY));
REQUIRE(world->isJoystickFlagged(rive::JoystickFlags::worldSpace));
auto normal = artboard->find<rive::Joystick>("Normal Joystick");
REQUIRE(!normal->isJoystickFlagged(rive::JoystickFlags::invertX));
REQUIRE(!normal->isJoystickFlagged(rive::JoystickFlags::invertY));
REQUIRE(!normal->isJoystickFlagged(rive::JoystickFlags::worldSpace));
}