From dc3e5095e4991760dc379654bdd1d1a47613980c Mon Sep 17 00:00:00 2001 From: Jaby Date: Sun, 29 Dec 2024 23:16:35 +0100 Subject: [PATCH] More TODO improvements --- include/PSX/File/Processor/file_processor.hpp | 13 +++++++++ include/PSX/File/file_processor_helper.hpp | 8 ------ .../Processor/TIM/simpletim_processor.cpp | 22 +++++++-------- .../src/File/Processor/TIM/tim_processor.cpp | 27 +++++++++---------- 4 files changed, 36 insertions(+), 34 deletions(-) diff --git a/include/PSX/File/Processor/file_processor.hpp b/include/PSX/File/Processor/file_processor.hpp index 7f00866a..d0fbd89a 100644 --- a/include/PSX/File/Processor/file_processor.hpp +++ b/include/PSX/File/Processor/file_processor.hpp @@ -28,10 +28,23 @@ namespace JabyEngine { return {reinterpret_cast(process_routine), data_adr}; } + template + T simple_read_r() { + static constexpr size_t T_SIZE = sizeof(T); + + T value = *reinterpret_cast(this->data_adr); + Configuration::processed(T_SIZE); + return value; + } + constexpr void processed(size_t bytes) { this->data_adr += bytes; this->data_bytes -= bytes; } + + constexpr void skip(size_t bytes) { + Configuration::processed(bytes); + } }; Configuration config; diff --git a/include/PSX/File/file_processor_helper.hpp b/include/PSX/File/file_processor_helper.hpp index e65efd83..c3b8e7da 100644 --- a/include/PSX/File/file_processor_helper.hpp +++ b/include/PSX/File/file_processor_helper.hpp @@ -6,14 +6,6 @@ namespace JabyEngine { namespace FileProcessor { namespace Helper { - template - static void simple_read(T& dst, State::Configuration& config) { - static constexpr size_t T_SIZE = sizeof(T); - - dst = *reinterpret_cast(config.data_adr); - config.processed(T_SIZE); - } - template static Progress exchange_and_execute_process_function(State::GenericProcessRoutine process_routine, State::Configuration& config, T& state) { config.process_routine = reinterpret_cast(process_routine); diff --git a/src/Library/src/File/Processor/TIM/simpletim_processor.cpp b/src/Library/src/File/Processor/TIM/simpletim_processor.cpp index 27da1b10..034fbf80 100644 --- a/src/Library/src/File/Processor/TIM/simpletim_processor.cpp +++ b/src/Library/src/File/Processor/TIM/simpletim_processor.cpp @@ -37,20 +37,20 @@ namespace JabyEngine { } }; - struct SimpleTIMState : public TIMFileProcessor::GenericTIM { - // TODO: Create function??? - SimpleTIMState(const SimpleTIM& dst_info) { - this->tex_area = AreaU16::create(dst_info.get_texture_position(), SizeU16::create(0, 0)); - this->clut_area = AreaU16::create(dst_info.get_clut_position(), SizeU16::create(0, 0)); - this->words_left = 0; + struct SimpleTIMState : public TIMFileProcessor::GenericTIM { + static SimpleTIMState create(const SimpleTIM& dst_info) { + SimpleTIMState state; + + state.tex_area = AreaU16::create(dst_info.get_texture_position(), SizeU16::create(0, 0)); + state.clut_area = AreaU16::create(dst_info.get_clut_position(), SizeU16::create(0, 0)); + state.words_left = 0; + return state; } virtual Progress parse_header(State::Configuration& config) override { if(config.data_bytes >= sizeof(SimpleTIMSize)) { - // TODO: Return value??? - SimpleTIMSize size_info; - Helper::simple_read(size_info, config); - + const auto size_info = config.simple_read_r(); + this->clut_area.size = size_info.get_clut_size(); this->tex_area.size = size_info.get_texture_size(); return Progress::Done; @@ -67,7 +67,7 @@ namespace JabyEngine { State create(const uint32_t* data_adr, const SimpleTIM& file) { using Callback = Progress(*)(State::Configuration& config, SimpleTIMState& simple_tim); - return State::from(SimpleTIMState(file), data_adr, reinterpret_cast(TIMFileProcessor::parse_header)); + return State::from(SimpleTIMState::create(file), data_adr, reinterpret_cast(TIMFileProcessor::parse_header)); } } } \ No newline at end of file diff --git a/src/Library/src/File/Processor/TIM/tim_processor.cpp b/src/Library/src/File/Processor/TIM/tim_processor.cpp index bc39345b..362988fd 100644 --- a/src/Library/src/File/Processor/TIM/tim_processor.cpp +++ b/src/Library/src/File/Processor/TIM/tim_processor.cpp @@ -14,24 +14,23 @@ namespace JabyEngine { uint16_t h; }; - struct TIMState : public TIMFileProcessor::GenericTIM { - // TODO: Create function??? - TIMState() { + struct TIMState : public TIMFileProcessor::GenericTIM { + static TIMState create() { + TIMState state; + return state; } virtual Progress parse_header(State::Configuration& config) override { static constexpr auto HEADER_SIZE = 2*sizeof(uint32_t); if(config.data_bytes >= (HEADER_SIZE + sizeof(BlockInfo))) { - uint32_t flag; - - config.processed(sizeof(uint32_t)); - Helper::simple_read(flag, config); - - if(flag & (0x1 << 3)) { - BlockInfo block_info; + static constexpr auto HAS_CLUT_BIT = (0x1 << 3); - Helper::simple_read(block_info, config); + config.processed(sizeof(uint32_t)); + const auto flag = config.simple_read_r(); + + if(flag & HAS_CLUT_BIT) { + const auto block_info = config.simple_read_r(); this->clut_area = AreaU16::create(block_info.x, block_info.y, block_info.w, block_info.h); } @@ -45,9 +44,7 @@ namespace JabyEngine { virtual Progress pre_data_parsing(State::Configuration& config) { if(config.data_bytes >= sizeof(BlockInfo)) { - BlockInfo block_info; - - Helper::simple_read(block_info, config); + const auto block_info = config.simple_read_r(); this->tex_area = AreaU16::create(block_info.x, block_info.y, block_info.w, block_info.h); return Progress::Done; } @@ -58,7 +55,7 @@ namespace JabyEngine { State create(const uint32_t* data_adr, const TIM& file) { using Callback = Progress(*)(State::Configuration& config, TIMState& simple_tim); - return State::from(TIMState(), data_adr, reinterpret_cast(TIMFileProcessor::parse_header)); + return State::from(TIMState::create(), data_adr, reinterpret_cast(TIMFileProcessor::parse_header)); } } } \ No newline at end of file