mirror of
https://github.com/open-goal/jak-project
synced 2026-06-29 03:31:21 -04:00
083202929c
* begin work * work * working objs * exporting * it works * before some time of day fixes * add time of day interp and also fix zbuffer * some small blending fixes * improve randomess * clean up extraction and missing blend mode * culling, time of day, more level fixes * more cleanup * cleanup memory usage * windows fix
34 lines
1.1 KiB
C++
34 lines
1.1 KiB
C++
#include "Loader.h"
|
|
#include "common/util/Timer.h"
|
|
#include "common/util/FileUtil.h"
|
|
|
|
namespace {
|
|
std::string uppercase_string(const std::string& s) {
|
|
std::string result;
|
|
for (auto c : s) {
|
|
result.push_back(toupper(c));
|
|
}
|
|
return result;
|
|
}
|
|
} // namespace
|
|
|
|
tfrag3::Level* Loader::get_tfrag3_level(const std::string& level_name) {
|
|
const auto& existing = m_tfrag3_levels.find(level_name);
|
|
if (existing == m_tfrag3_levels.end()) {
|
|
fmt::print("Loader needs to load tfrag3 level: {}\n", level_name);
|
|
Timer disk_timer;
|
|
auto data = file_util::read_binary_file(
|
|
file_util::get_file_path({fmt::format("assets/{}.fr3", uppercase_string(level_name))}));
|
|
double disk_load_time = disk_timer.getSeconds();
|
|
|
|
Timer import_timer;
|
|
auto& result = m_tfrag3_levels[level_name];
|
|
Serializer ser(data.data(), data.size());
|
|
result.serialize(ser);
|
|
double import_time = import_timer.getSeconds();
|
|
fmt::print("Load from file: {:.3f}s, import {:.3f}s\n", disk_load_time, import_time);
|
|
return &result;
|
|
} else {
|
|
return &existing->second;
|
|
}
|
|
} |