585 std::unordered_map<std::string, std::unordered_map<std::string, std::string>>
590 for (
size_t i = 0; i < rooms.size(); ++i) {
591 labels[
"room"][std::to_string(i)] = rooms[i];
596 for (
size_t i = 0; i < entrances.size(); ++i) {
597 labels[
"entrance"][std::to_string(i)] = entrances[i];
602 for (
size_t i = 0; i < sprites.size(); ++i) {
603 labels[
"sprite"][std::to_string(i)] = sprites[i];
608 for (
size_t i = 0; i < overlords.size(); ++i) {
609 labels[
"overlord"][std::to_string(i)] = overlords[i];
614 for (
size_t i = 0; i < maps.size(); ++i) {
615 labels[
"overworld_map"][std::to_string(i)] = maps[i];
620 for (
size_t i = 0; i < items.size(); ++i) {
621 labels[
"item"][std::to_string(i)] = items[i];
626 for (
size_t i = 0; i < music.size(); ++i) {
627 labels[
"music"][std::to_string(i)] = music[i];
632 for (
size_t i = 0; i < gfx.size(); ++i) {
633 labels[
"graphics"][std::to_string(i)] = gfx[i];
638 for (
size_t i = 0; i < effects.size(); ++i) {
639 labels[
"room_effect"][std::to_string(i)] = effects[i];
644 for (
size_t i = 0; i < tags.size(); ++i) {
645 labels[
"room_tag"][std::to_string(i)] = tags[i];
650 for (
size_t i = 0; i < tiles.size(); ++i) {
651 labels[
"tile_type"][std::to_string(i)] = tiles[i];
656 for (
size_t i = 0; i < type1_objects.size(); ++i) {
657 labels[
"room_object_type1"][std::to_string(i)] = type1_objects[i];
658 labels[
"room_object"][std::to_string(i)] = type1_objects[i];
662 for (
size_t i = 0; i < type2_objects.size(); ++i) {
663 const int object_id = 0x100 +
static_cast<int>(i);
664 labels[
"room_object_type2"][std::to_string(i)] = type2_objects[i];
665 labels[
"room_object"][std::to_string(object_id)] = type2_objects[i];
669 for (
size_t i = 0; i < type3_objects.size(); ++i) {
670 const int object_id = 0xF80 +
static_cast<int>(i);
671 labels[
"room_object_type3"][std::to_string(i)] = type3_objects[i];
672 labels[
"room_object"][std::to_string(object_id)] = type3_objects[i];
680 const std::string& default_value) {
683 auto type_it = labels.find(resource_type);
684 if (type_it == labels.end()) {
685 return default_value.empty() ? resource_type +
"_" + std::to_string(
id)
689 auto label_it = type_it->second.find(std::to_string(
id));
690 if (label_it == type_it->second.end()) {
691 return default_value.empty() ? resource_type +
"_" + std::to_string(
id)
695 return label_it->second;