diff --git a/CMakeLists.txt b/CMakeLists.txt index af74dbfa..15393254 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,7 @@ set(CMAKE_CXX_EXTENSIONS OFF) add_executable(uking) target_include_directories(uking PRIVATE src) target_compile_options(uking PRIVATE -fno-rtti -fno-exceptions) -target_compile_options(uking PRIVATE -Wall -Wextra) +target_compile_options(uking PRIVATE -Wall -Wextra -Wdeprecated) target_compile_options(uking PRIVATE -fno-strict-aliasing) target_compile_options(uking PRIVATE -Wno-invalid-offsetof) diff --git a/lib/sead b/lib/sead index d7bf1a52..7bc4c090 160000 --- a/lib/sead +++ b/lib/sead @@ -1 +1 @@ -Subproject commit d7bf1a5232dd68886126ae9ca68698a5e07a0193 +Subproject commit 7bc4c0907158f9be382017c03b339e7d33feac55 diff --git a/src/KingSystem/ActorSystem/actActorLinkConstDataAccess.h b/src/KingSystem/ActorSystem/actActorLinkConstDataAccess.h index 7a58a5cf..9bc70714 100644 --- a/src/KingSystem/ActorSystem/actActorLinkConstDataAccess.h +++ b/src/KingSystem/ActorSystem/actActorLinkConstDataAccess.h @@ -17,6 +17,17 @@ public: /// Destructor that automatically releases any acquired BaseProc. ~ActorLinkConstDataAccess(); + ActorLinkConstDataAccess(const ActorLinkConstDataAccess&) = delete; + ActorLinkConstDataAccess& operator=(const ActorLinkConstDataAccess&) = delete; + ActorLinkConstDataAccess(ActorLinkConstDataAccess&& other) noexcept { + *this = std::move(other); + } + ActorLinkConstDataAccess& operator=(ActorLinkConstDataAccess&& other) noexcept { + std::swap(mAcquired, other.mAcquired); + std::swap(mProc, other.mProc); + return *this; + } + /// Acquire a BaseProc. This increments its reference count. /// If an actor was already acquired, it is released. bool acquire(BaseProc* proc); diff --git a/src/KingSystem/Resource/resLoadRequest.h b/src/KingSystem/Resource/resLoadRequest.h index e7384aa0..048bc306 100644 --- a/src/KingSystem/Resource/resLoadRequest.h +++ b/src/KingSystem/Resource/resLoadRequest.h @@ -21,6 +21,9 @@ class Handle; class ILoadRequest { SEAD_RTTI_BASE(ILoadRequest) public: + ILoadRequest() = default; + ILoadRequest(const ILoadRequest&) = default; + ILoadRequest& operator=(const ILoadRequest&) = default; virtual ~ILoadRequest(); bool _8 = false; @@ -34,6 +37,8 @@ class LoadRequest : public ILoadRequest { public: LoadRequest(); LoadRequest(s32 load_data_alignment, u32 arg_c, bool arg_20); + LoadRequest(const LoadRequest&) = default; + LoadRequest& operator=(const LoadRequest&) = default; ~LoadRequest() override = default; bool _20 = false; @@ -64,6 +69,8 @@ class SimpleLoadRequest : public ILoadRequest { public: SimpleLoadRequest(); ~SimpleLoadRequest() override = default; + SimpleLoadRequest(const SimpleLoadRequest&) = default; + SimpleLoadRequest& operator=(const SimpleLoadRequest&) = default; sead::SafeString mPath; void* _30 = nullptr; @@ -75,6 +82,8 @@ class SimplePackedLoadRequest : public ILoadRequest { public: SimplePackedLoadRequest(); ~SimplePackedLoadRequest() override = default; + SimplePackedLoadRequest(const SimplePackedLoadRequest&) = default; + SimplePackedLoadRequest& operator=(const SimplePackedLoadRequest&) = default; Handle* mPack = nullptr; void* _30 = nullptr;