diff --git a/src/assetmgr/asset_dispatch.h b/src/assetmgr/asset_dispatch.h index cb4d8a99..5ba27799 100644 --- a/src/assetmgr/asset_dispatch.h +++ b/src/assetmgr/asset_dispatch.h @@ -35,9 +35,9 @@ class Asset; #define FMT_TEXTURE_RGBA "rgba" #define FMT_TEXTURE_RGBA_512_416 "rawrgba,512,416" #define FMT_TEXTURE_RGBA_512_448 "rawrgba,512,448" -#define FMT_TEXTURE_PIF4 "pif,4,unswizzled" +#define FMT_TEXTURE_PIF4 "pif,4,1,unswizzled" #define FMT_TEXTURE_PIF4_SWIZZLED "pif,4,1,swizzled" -#define FMT_TEXTURE_PIF8 "pif,8,unswizzled" +#define FMT_TEXTURE_PIF8 "pif,8,1,unswizzled" #define FMT_TEXTURE_PIF8_SWIZZLED "pif,8,1,swizzled" #define FMT_MOBY_CLASS_PHAT "phat" #define FMT_MOBY_CLASS_MESH_ONLY_ARMOR "gadget" diff --git a/src/wrenchbuild/common/texture_asset.cpp b/src/wrenchbuild/common/texture_asset.cpp index 6e1319a7..5bd842a4 100644 --- a/src/wrenchbuild/common/texture_asset.cpp +++ b/src/wrenchbuild/common/texture_asset.cpp @@ -137,7 +137,13 @@ static void pack_texture_asset( } else { verify_not_reached("Tried to pack a texture with an invalid palette size specified in the hint."); } - s32 mip_levels = atoi(next_hint(&hint)); + s32 mip_levels = 1; + const char* mip_levels_str = next_hint(&hint); + if (mip_levels_str && strlen(mip_levels_str) > 0) { + mip_levels = atoi(mip_levels_str); + verify(mip_levels > 0, "Invalid mipmap level count '%s' passed in hint for asset '%s'.", + mip_levels_str, src.absolute_link().to_string().c_str()); + } const char* swizzled = next_hint(&hint); // TODO: Once we've figure out swizzling for where palette_size == 4 // make sure to enable that here. diff --git a/src/wrenchbuild/globals/bonus_wad.cpp b/src/wrenchbuild/globals/bonus_wad.cpp index 300ab920..bc527746 100644 --- a/src/wrenchbuild/globals/bonus_wad.cpp +++ b/src/wrenchbuild/globals/bonus_wad.cpp @@ -212,7 +212,7 @@ static void pack_rac_gc_bonus_wad( pack_compressed_assets_sa(dest, ARRAY_PAIR(header.item_images), src.get_item_images(), config, "item_images", FMT_TEXTURE_PIF8); if constexpr(std::is_same_v) { header.credits_text = pack_rac_gc_credits_text(dest, src.get_credits_text(), config); - pack_compressed_assets_sa(dest, ARRAY_PAIR(header.credits_images), src.get_credits_images(), config, "credits_images", FMT_TEXTURE_RGBA); + pack_assets_sa(dest, ARRAY_PAIR(header.credits_images), src.get_credits_images(), config, FMT_TEXTURE_RGBA); pack_compressed_assets_sa(dest, ARRAY_PAIR(header.random_stuff), src.get_random_stuff(), config, "random_stuff", FMT_TEXTURE_PIF8); pack_compressed_assets_sa(dest, ARRAY_PAIR(header.movie_images), src.get_movie_images(), config, "movie_images", FMT_TEXTURE_PIF8); pack_compressed_assets_sa(dest, ARRAY_PAIR(header.cinematic_images), src.get_cinematic_images(), config, "cinematic_images", FMT_TEXTURE_PIF8); diff --git a/src/wrenchbuild/globals/misc_wad.cpp b/src/wrenchbuild/globals/misc_wad.cpp index 7fbbe2ed..db952a4d 100644 --- a/src/wrenchbuild/globals/misc_wad.cpp +++ b/src/wrenchbuild/globals/misc_wad.cpp @@ -97,9 +97,9 @@ static void pack_gc_misc_wad( header.debug_font = pack_asset_sa(dest, src.get_debug_font(), config, FMT_TEXTURE_PIF8); header.irx = pack_compressed_asset_sa(dest, src.get_irx(), config, "irx"); header.save_game = pack_asset_sa(dest, src.get_save_game(), config); - header.frontbin = pack_asset_sa(dest, src.get_frontbin(), config); + header.frontbin = pack_asset_sa(dest, src.get_frontbin(), config, FMT_ELFFILE_RATCHET_EXECUTABLE); header.frontbin_net = pack_compressed_asset_sa(dest, src.get_frontbin_net(), config, "frontbin_net"); - header.frontend = pack_asset_sa(dest, src.get_frontend(), config, FMT_ELFFILE_RATCHET_EXECUTABLE); + header.frontend = pack_asset_sa(dest, src.get_frontend(), config); header.exit = pack_asset_sa(dest, src.get_exit(), config); }