58 lines
2.8 KiB
C++
58 lines
2.8 KiB
C++
#include "../include/font_writer.hpp"
|
|
#include <PSX/File/Processor/cd_file_processor.hpp>
|
|
#include <PSX/GPU/gpu_auto_load_font.hpp>
|
|
#include <PSX/GPU/make_gpu_primitives.hpp>
|
|
#include <PSX/Periphery/periphery.hpp>
|
|
#include <PSX/Timer/frame_timer.hpp>
|
|
#include <FontWriter/fonts.hpp>
|
|
|
|
using JabyEngine::Make::PositionI8;
|
|
|
|
static constexpr auto LibraryFontTIM = JabyEngine::SimpleTIM(320, 0, 320, JabyEngine::DefaultFont::Info.texture_size.height);
|
|
|
|
static JabyEngine::FontPrimitive font_buffer[2*256];
|
|
static JabyEngine::Wiggle wiggle = {PositionI8(0, 0), PositionI8(1, -2), PositionI8(0, -4), PositionI8(-1, -2), PositionI8(0, 0), PositionI8(1, 2), PositionI8(0, 4), PositionI8(-1, 2)};
|
|
static JabyEngine::FontWriter new_font_writer = JabyEngine::FontWriter::empty();
|
|
static JabyEngine::FontWriter bios_font_writer = JabyEngine::FontWriter::empty();
|
|
static JabyEngine::SimpleTimer<uint8_t> timer;
|
|
static uint8_t wiggle_count = 0;
|
|
|
|
void font_writer_setup() {
|
|
JabyEngine::DefaultFont::load(&__heap_start, LibraryFontTIM);
|
|
JabyEngine::GlobalFontPrimitivePool::setup(font_buffer);
|
|
|
|
new_font_writer.setup(LibraryFontTIM, JabyEngine::DefaultFont::Info);
|
|
bios_font_writer.setup(JabyEngine::BIOSFont::TIM, JabyEngine::BIOSFont::Info);
|
|
timer.reset();
|
|
}
|
|
|
|
void font_writer_update() {
|
|
static const char*const Text[2] = {"Planschi", "Becken"};
|
|
|
|
auto& controller = JabyEngine::Periphery::get_primary_controller_as<JabyEngine::Periphery::GenericController>();
|
|
auto cur_rumble = controller.get_large_rumble();
|
|
|
|
if(controller.button.is_down(JabyEngine::Periphery::GenericController::Button::R1) && cur_rumble < 0xFF) {
|
|
cur_rumble += 1;
|
|
}
|
|
|
|
if(controller.button.is_down(JabyEngine::Periphery::GenericController::Button::L1) && cur_rumble > 0x0) {
|
|
cur_rumble -= 1;
|
|
}
|
|
controller.set_analog_rumble(cur_rumble, controller.button.is_down(JabyEngine::Periphery::GenericController::Button::Circle));
|
|
|
|
auto state = JabyEngine::State::create(JabyEngine::Make::PositionI16(8, 8), wiggle_count);
|
|
new_font_writer.write(state, "012345 ABCDEFGHIJKL\nabcedfghijkl\n", JabyEngine::GPU::Color24::Blue(), &wiggle);
|
|
new_font_writer.write(state, "%i (0x%p)\nWiggle (%s)\n", JabyEngine::GPU::Color24::Green(), &wiggle, wiggle_count, 0xAABBCCDD, Text[wiggle_count&0x1]);
|
|
bios_font_writer.write(state, "!!PLANSCHBECKEN\n(%i)!!", controller.button.is_down(JabyEngine::Periphery::GenericController::Button::Square) ? JabyEngine::GPU::Color24::Blue() : JabyEngine::GPU::Color24::White(), static_cast<int>(cur_rumble));
|
|
|
|
if(timer.is_expired_for(50_ms)) {
|
|
timer.reset();
|
|
wiggle_count++;
|
|
}
|
|
}
|
|
|
|
void font_writer_render() {
|
|
new_font_writer.render();
|
|
bios_font_writer.render();
|
|
} |