Support Second controller port (or not if disabled) and have a fancy background
This commit is contained in:
parent
0ba35cc66d
commit
e083e13a83
|
@ -1,6 +1,9 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#include "../src/include/menu.hpp"
|
#include "../src/include/menu.hpp"
|
||||||
|
#include "../src/include/font_writer.hpp"
|
||||||
|
#include <PSX/GPU/gpu_types.hpp>
|
||||||
|
|
||||||
namespace Shared {
|
namespace Shared {
|
||||||
extern Menu::BackMenu back_menu;
|
extern Menu::BackMenu back_menu;
|
||||||
|
extern JabyEngine::GPU::POLY_G4 background;
|
||||||
}
|
}
|
|
@ -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[] = {
|
static const DigitalButton ButtonSprtMap[] = {
|
||||||
DigitalButton::Triangle, DigitalButton::Circle, DigitalButton::Cross, DigitalButton::Square,
|
DigitalButton::Triangle, DigitalButton::Circle, DigitalButton::Cross, DigitalButton::Square,
|
||||||
DigitalButton::ST, DigitalButton::SEL, DigitalButton::L1, DigitalButton::L2, DigitalButton::R1, DigitalButton::R2,
|
DigitalButton::ST, DigitalButton::SEL, DigitalButton::L1, DigitalButton::L2, DigitalButton::R1, DigitalButton::R2,
|
||||||
|
@ -88,22 +88,31 @@ namespace ControllerTest {
|
||||||
auto& cur_button_sprts = this->buttons[GPU::update_id()];
|
auto& cur_button_sprts = this->buttons[GPU::update_id()];
|
||||||
auto& cur_arrow_poly = this->arrows[GPU::update_id()];
|
auto& cur_arrow_poly = this->arrows[GPU::update_id()];
|
||||||
|
|
||||||
|
if(controller) {
|
||||||
for(size_t n = 0; n < sizeof(ButtonSprtMap)/sizeof(ButtonSprtMap[0]); n++) {
|
for(size_t n = 0; n < sizeof(ButtonSprtMap)/sizeof(ButtonSprtMap[0]); n++) {
|
||||||
set_active(cur_button_sprts[n], controller.button.is_down(ButtonSprtMap[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++) {
|
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_arrow_poly[n], controller->button.is_down(ArrowPolyMap[n]));
|
||||||
}
|
}
|
||||||
|
|
||||||
set_active(cur_button_sprts[12], controller.header.state == Periphery::RawController::State::Disconnected);
|
set_active(cur_button_sprts[12], controller->header.state == Periphery::RawController::State::Disconnected);
|
||||||
|
|
||||||
// Text stuff down here
|
// Text stuff down here
|
||||||
const auto left_stick = controller.get_left_stick_pos();
|
const auto offset_point = cur_button_sprts[1]->position;
|
||||||
const auto right_stick = controller.get_right_stick_pos();
|
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);
|
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, "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())));
|
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() {
|
void ControllerState :: render() {
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
#include "../../../include/shared.hpp"
|
#include "../../../include/shared.hpp"
|
||||||
#include "../../include/font_writer.hpp"
|
|
||||||
#include "include/controller_state.hpp"
|
#include "include/controller_state.hpp"
|
||||||
#include <PSX/Periphery/periphery.hpp>
|
#include <PSX/Periphery/periphery.hpp>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -7,11 +6,13 @@
|
||||||
namespace ControllerTest {
|
namespace ControllerTest {
|
||||||
using namespace JabyEngine;
|
using namespace JabyEngine;
|
||||||
|
|
||||||
static auto controller_state = ControllerState::create();
|
static auto controller_state0 = ControllerState::create(Make::PositionI16(0, 0));
|
||||||
|
static auto controller_state1 = ControllerState::create(Make::PositionI16(0, 76));
|
||||||
|
|
||||||
static void setup() {
|
static void setup() {
|
||||||
Shared::back_menu.reset();
|
Shared::back_menu.reset();
|
||||||
controller_state.setup();
|
controller_state0.setup();
|
||||||
|
controller_state1.setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool update_or_exit() {
|
static bool update_or_exit() {
|
||||||
|
@ -20,12 +21,15 @@ namespace ControllerTest {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
controller_state.update(Periphery::get_primary_controller_as<JabyEngine::Periphery::AnalogeController>(), FontWriter::new_font_writer);
|
controller_state0.update(&Periphery::get_primary_controller_as<JabyEngine::Periphery::AnalogeController>(), FontWriter::new_font_writer);
|
||||||
|
controller_state1.update(Periphery::PortCount > 1 ? &Periphery::get_controller_as<JabyEngine::Periphery::AnalogeController>(1, 0) : nullptr, FontWriter::new_font_writer);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void render() {
|
static void render() {
|
||||||
controller_state.render();
|
GPU::render(Shared::background);
|
||||||
|
controller_state0.render();
|
||||||
|
controller_state1.render();
|
||||||
FontWriter::new_font_writer.render();
|
FontWriter::new_font_writer.render();
|
||||||
Shared::back_menu.render();
|
Shared::back_menu.render();
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,7 +61,7 @@ namespace ControllerTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
void setup();
|
void setup();
|
||||||
void update(const Periphery::AnalogeController& controller, JabyEngine::FontWriter& font_writer);
|
void update(const Periphery::AnalogeController* controller, JabyEngine::FontWriter& font_writer);
|
||||||
void render();
|
void render();
|
||||||
};
|
};
|
||||||
}
|
}
|
|
@ -47,6 +47,10 @@ static StateChange old_state_changer;
|
||||||
|
|
||||||
namespace Shared {
|
namespace Shared {
|
||||||
Menu::BackMenu back_menu;
|
Menu::BackMenu back_menu;
|
||||||
|
JabyEngine::GPU::POLY_G4 background = Make::POLY_G4(
|
||||||
|
Make::AreaI16(0, 0, GPU::Display::Width, GPU::Display::Height),
|
||||||
|
{GPU::Color24::Red(0xA0), GPU::Color24::Green(0xA0), GPU::Color24::Blue(0xA0), GPU::Color24::Black()}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setup() {
|
static void setup() {
|
||||||
|
@ -84,6 +88,7 @@ namespace NormalScene {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void render() {
|
static void render() {
|
||||||
|
GPU::render(Shared::background);
|
||||||
FontWriter::new_font_writer.render();
|
FontWriter::new_font_writer.render();
|
||||||
FontWriter::bios_font_writer.render();
|
FontWriter::bios_font_writer.render();
|
||||||
paco.render();
|
paco.render();
|
||||||
|
|
Loading…
Reference in New Issue