diff --git a/mods/randomizer/res/fused_shadow_1.bti b/mods/randomizer/res/fused_shadow_1.bti new file mode 100644 index 0000000000..965657a168 Binary files /dev/null and b/mods/randomizer/res/fused_shadow_1.bti differ diff --git a/mods/randomizer/res/fused_shadow_2.bti b/mods/randomizer/res/fused_shadow_2.bti new file mode 100644 index 0000000000..9da47c28f5 Binary files /dev/null and b/mods/randomizer/res/fused_shadow_2.bti differ diff --git a/mods/randomizer/res/fused_shadow_3.bti b/mods/randomizer/res/fused_shadow_3.bti new file mode 100644 index 0000000000..9bed3d777d Binary files /dev/null and b/mods/randomizer/res/fused_shadow_3.bti differ diff --git a/mods/randomizer/res/mirror_shard_1.bti b/mods/randomizer/res/mirror_shard_1.bti new file mode 100644 index 0000000000..fc794fdd48 Binary files /dev/null and b/mods/randomizer/res/mirror_shard_1.bti differ diff --git a/mods/randomizer/res/mirror_shard_2.bti b/mods/randomizer/res/mirror_shard_2.bti new file mode 100644 index 0000000000..73578ed559 Binary files /dev/null and b/mods/randomizer/res/mirror_shard_2.bti differ diff --git a/mods/randomizer/res/mirror_shard_3.bti b/mods/randomizer/res/mirror_shard_3.bti new file mode 100644 index 0000000000..51c15a7396 Binary files /dev/null and b/mods/randomizer/res/mirror_shard_3.bti differ diff --git a/mods/randomizer/res/mirror_shard_4.bti b/mods/randomizer/res/mirror_shard_4.bti new file mode 100644 index 0000000000..e552d953a1 Binary files /dev/null and b/mods/randomizer/res/mirror_shard_4.bti differ diff --git a/mods/randomizer/src/hooks.cpp b/mods/randomizer/src/hooks.cpp index b6ca691d02..30b8dc2dcf 100644 --- a/mods/randomizer/src/hooks.cpp +++ b/mods/randomizer/src/hooks.cpp @@ -726,15 +726,27 @@ HookAction hookPreObjGbCreate(ModContext*, void* args, void* retval, void*) { return HOOK_CONTINUE; } +const std::map kCustomItemImages = { + {dItemNo_Randomizer_MAGIC_LV1_e, "shadow_crystal.bti"}, + {dItemNo_Randomizer_FUSED_SHADOW_1_e, "fused_shadow_1.bti"}, + {dItemNo_Randomizer_FUSED_SHADOW_2_e, "fused_shadow_2.bti"}, + {dItemNo_Randomizer_FUSED_SHADOW_3_e, "fused_shadow_3.bti"}, + {dItemNo_Randomizer_MIRROR_PIECE_1_e, "mirror_shard_1.bti"}, + {dItemNo_Randomizer_MIRROR_PIECE_2_e, "mirror_shard_2.bti"}, + {dItemNo_Randomizer_MIRROR_PIECE_3_e, "mirror_shard_3.bti"}, + {dItemNo_Randomizer_MIRROR_PIECE_4_e, "mirror_shard_4.bti"}, +}; + void hookPostReadItemTexture(ModContext*, void* args, void*, void*) { const u8 item_no = mods::arg(args, 0); void* tex_buf1 = mods::arg(args, 1); - if (tex_buf1 == nullptr || item_no != dItemNo_Randomizer_MAGIC_LV1_e) { + if (tex_buf1 == nullptr || !kCustomItemImages.contains(item_no)) { return; } ResourceBuffer bti = RESOURCE_BUFFER_INIT; - if (session::svc_mng.resource->load(session::svc_mng.mod_ctx, "shadow_crystal.bti", &bti) == MOD_OK) { + auto& imagePath = kCustomItemImages.at(item_no); + if (session::svc_mng.resource->load(session::svc_mng.mod_ctx, imagePath, &bti) == MOD_OK) { std::memcpy(tex_buf1, bti.data, bti.size < 0xC00 ? bti.size : 0xC00); session::svc_mng.resource->free(session::svc_mng.mod_ctx, &bti); }