Support Second controller port (or not if disabled) and have a fancy background

This commit is contained in:
2024-01-04 22:28:25 -06:00
parent 8a7bcf92fa
commit 60c4c5e61f
5 changed files with 46 additions and 25 deletions

View File

@@ -75,7 +75,7 @@ namespace ControllerTest {
}
}
void ControllerState :: update(const Periphery::AnalogeController& controller, JabyEngine::FontWriter& font_writer) {
void ControllerState :: update(const Periphery::AnalogeController* controller, JabyEngine::FontWriter& font_writer) {
static const DigitalButton ButtonSprtMap[] = {
DigitalButton::Triangle, DigitalButton::Circle, DigitalButton::Cross, DigitalButton::Square,
DigitalButton::ST, DigitalButton::SEL, DigitalButton::L1, DigitalButton::L2, DigitalButton::R1, DigitalButton::R2,
@@ -85,25 +85,34 @@ namespace ControllerTest {
DigitalButton::Up, DigitalButton::Right, DigitalButton::Down, DigitalButton::Left
};
auto& cur_button_sprts = this->buttons[GPU::update_id()];
auto& cur_arrow_poly = this->arrows[GPU::update_id()];
auto& cur_button_sprts = this->buttons[GPU::update_id()];
auto& cur_arrow_poly = this->arrows[GPU::update_id()];
for(size_t n = 0; n < sizeof(ButtonSprtMap)/sizeof(ButtonSprtMap[0]); n++) {
set_active(cur_button_sprts[n], controller.button.is_down(ButtonSprtMap[n]));
}
for(size_t n = 0; n < sizeof(ArrowPolyMap)/sizeof(ArrowPolyMap[0]); n++) {
set_active(cur_arrow_poly[n], controller.button.is_down(ArrowPolyMap[n]));
if(controller) {
for(size_t n = 0; n < sizeof(ButtonSprtMap)/sizeof(ButtonSprtMap[0]); n++) {
set_active(cur_button_sprts[n], controller->button.is_down(ButtonSprtMap[n]));
}
for(size_t n = 0; n < sizeof(ArrowPolyMap)/sizeof(ArrowPolyMap[0]); n++) {
set_active(cur_arrow_poly[n], controller->button.is_down(ArrowPolyMap[n]));
}
set_active(cur_button_sprts[12], controller->header.state == Periphery::RawController::State::Disconnected);
// Text stuff down here
const auto offset_point = cur_button_sprts[1]->position;
const auto left_stick = controller->get_left_stick_pos();
const auto right_stick = controller->get_right_stick_pos();
auto cursor = State::create(offset_point.move(16, 0), 0);
font_writer.write(cursor, "Right: %i, %i\nLeft : %i, %i\n", right_stick.x, right_stick.y, left_stick.x, left_stick.y);
font_writer.write(cursor, "[%s]", get_type_name(static_cast<Periphery::ControllerType>(controller->get_type())));
}
set_active(cur_button_sprts[12], controller.header.state == Periphery::RawController::State::Disconnected);
// Text stuff down here
const auto left_stick = controller.get_left_stick_pos();
const auto right_stick = controller.get_right_stick_pos();
auto cursor = State::create(Make::PositionI16(98, 0), 0);
font_writer.write(cursor, "Right: %i, %i\nLeft : %i, %i\n", right_stick.x, right_stick.y, left_stick.x, left_stick.y);
font_writer.write(cursor, "[%s]", get_type_name(static_cast<Periphery::ControllerType>(controller.get_type())));
else {
auto cursor = State::create(Make::PositionI16(cur_arrow_poly[3]->vertex0.x, cur_button_sprts[0]->position.y), 0);
font_writer.write(cursor, "!!This Port is not\nenabled in JabyEngine!!", GPU::Color24::Red());
this->tex_page[GPU::update_id()].terminate();
}
}
void ControllerState :: render() {