diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 1571123dd..c65d9f828 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -6,7 +6,6 @@
-
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ba528998e..5dbaf06dd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,7 +12,7 @@ if(APPLE)
function(add_library TARGET)
_add_library(${TARGET} ${ARGN})
list(GET ARGV 1 ARG1)
- if(NOT ${ARG1} STREQUAL INTERFACE)
+ if(NOT ${ARG1} STREQUAL INTERFACE AND NOT ${ARG1} STREQUAL ALIAS)
set_target_properties(${TARGET} PROPERTIES XCODE_ATTRIBUTE_WARNING_CFLAGS "")
endif()
endfunction()
@@ -135,10 +135,11 @@ else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
add_compile_options(-fsanitize=memory -fsanitize-memory-track-origins -fsanitize-recover=all)
endif()
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
- add_compile_options(-Wall -Wno-multichar -Werror=implicit-fallthrough -Wno-unknown-warning-option
- -Wno-lto-type-mismatch -Wno-unused-variable -Wno-unused-private-field
- -Wno-unused-function -Wno-sign-compare -Wno-unknown-pragmas -fno-exceptions -Werror)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fno-exceptions")
+ add_compile_options(-Wall -Wno-multichar -Werror=implicit-fallthrough -Wno-unknown-warning-option
+ -Wno-lto-type-mismatch -Wno-unused-variable -Wno-unused-private-field
+ -Wno-unused-function -Wno-sign-compare -Wno-unknown-pragmas -Werror)
+ add_compile_definitions(FMT_EXCEPTIONS=0)
if(APPLE)
add_compile_options(-Wno-error=deprecated-declarations)
diff --git a/DataSpec/SpecMP1.cpp b/DataSpec/SpecMP1.cpp
index 4a1142a03..5553b1491 100644
--- a/DataSpec/SpecMP1.cpp
+++ b/DataSpec/SpecMP1.cpp
@@ -357,16 +357,19 @@ struct SpecMP1 : SpecBase {
progress.startNewLine();
for (std::pair& pair : m_orderedPaks) {
#if 0
- const DNAMP1::PAK::Entry* ent = pair.second->getPAK().lookupEntry(UniqueID32("A4DFCAD6"));
- if (ent)
- {
- DNAMP1::ANIM anim;
- PAKEntryReadStream rs = ent->beginReadStream(pair.second->getNode());
- anim.read(rs);
- exit(0);
- }
- else
- continue;
+ const DNAMP1::PAK::Entry* ent = pair.second->getPAK().lookupEntry(UniqueID32(0xE39FC9A1));
+ if (ent) {
+ PAKEntryReadStream rs = ent->beginReadStream(pair.second->getNode());
+ DNAMP1::CMDL::Extract(*this, rs, hecl::ProjectPath(m_project.getProjectWorkingPath(), "MP1/Metroid1/!1IntroLevel1027/CMDL_E39FC9A1.blend"), m_pakRouter, *ent, true, hecl::blender::SharedBlenderToken, {});
+
+ ent = pair.second->getPAK().lookupEntry(UniqueID32(0xC1AE2B4A));
+ rs = ent->beginReadStream(pair.second->getNode());
+ DNAMP1::CMDL::Extract(*this, rs, hecl::ProjectPath(m_project.getProjectWorkingPath(), "MP1/Metroid1/!1IntroLevel1027/CMDL_C1AE2B4A.blend"), m_pakRouter, *ent, true, hecl::blender::SharedBlenderToken, {});
+
+ exit(0);
+ }
+ else
+ continue;
#endif
DNAMP1::PAKBridge& pak = *pair.second;
diff --git a/hecl b/hecl
index 920fcb3c3..625d22cba 160000
--- a/hecl
+++ b/hecl
@@ -1 +1 @@
-Subproject commit 920fcb3c3d90f3db95f097c235597aff211227bc
+Subproject commit 625d22cbab3277ef9f55f85a022ffb69c4a1cb4c
diff --git a/visigen/MainMac.mm b/visigen/MainMac.mm
index 0e2b9045f..ddd0cb276 100644
--- a/visigen/MainMac.mm
+++ b/visigen/MainMac.mm
@@ -104,13 +104,9 @@ static void UpdatePercent(float percent)
@end
static logvisor::Module AthenaLog("Athena");
-static void AthenaExc(athena::error::Level level, const char* file,
- const char*, int line, const char* fmt, ...)
-{
- va_list ap;
- va_start(ap, fmt);
- AthenaLog.report(logvisor::Level(level), fmt, ap);
- va_end(ap);
+static void AthenaExc(athena::error::Level level, const char* /*file*/, const char*, int /*line*/,
+ fmt::string_view fmt, fmt::format_args args) {
+ AthenaLog.vreport(logvisor::Level(level), fmt, args);
}
int main(int argc, const char** argv)