Re-create PoolBox Paco
This commit is contained in:
47
examples/PoolBox/application/src/asset_mgr.cpp
Normal file
47
examples/PoolBox/application/src/asset_mgr.cpp
Normal file
@@ -0,0 +1,47 @@
|
||||
#include "../include/asset_mgr.hpp"
|
||||
#include <PSX/File/Processor/cd_file_processor.hpp>
|
||||
#include <PSX/AutoLBA/auto_lba.hpp>
|
||||
#include <PSX/AutoLBA/auto_lba_declaration.hpp>
|
||||
#include <stdio.h>
|
||||
|
||||
namespace Assets {
|
||||
enum LBA {
|
||||
__jabyengine_start_lba_request
|
||||
__jabyengine_request_lba_for(PACO, "ASSETS/MAIN/PACO.BIN"),
|
||||
__jabyengine_end_lba_request
|
||||
};
|
||||
__declare_lba_header(LBA);
|
||||
|
||||
static void load(const CDFile* assets, size_t size) {
|
||||
const auto buffer_cfg = CDFileProcessor::BufferConfiguration::new_default();
|
||||
CDFileProcessor file_processor;
|
||||
|
||||
file_processor.setup(lba, CDFileProcessor::JobArray{assets, size}, buffer_cfg);
|
||||
while(true) {
|
||||
switch(file_processor.process()) {
|
||||
case Progress::InProgress:
|
||||
break;
|
||||
|
||||
case Progress::Done:
|
||||
if(!file_processor.next(lba, buffer_cfg)) {
|
||||
return;
|
||||
}
|
||||
break;
|
||||
|
||||
case Progress::Error:
|
||||
printf("Error detected! Aborting load\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
namespace Main {
|
||||
static const CDFile Files[] = {
|
||||
CDFileBuilder::simple_tim(LBA::PACO, PacoTIM)
|
||||
};
|
||||
|
||||
void load() {
|
||||
::Assets::load(Files, sizeof(Files)/sizeof(Files[0]));
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user