mirror of https://github.com/zeldaret/botw.git
Remove unnecessary usages of sead::StorageFor
Turns out they are just value-initialised aggregates.
This commit is contained in:
parent
d3902a9ad4
commit
d893fd5ead
|
@ -91561,7 +91561,7 @@ Address,Quality,Size,Name
|
|||
0x00000071011aed1c,O,000040,_ZThn664_N4ksys3res9ModelListD0Ev
|
||||
0x00000071011aed44,O,000004,_ZN4ksys3res9ModelList9doCreate_EPhjPN4sead4HeapE
|
||||
0x00000071011aed48,O,000004,_ZThn632_N4ksys3res9ModelList9doCreate_EPhjPN4sead4HeapE
|
||||
0x00000071011aed4c,m,002096,_ZN4ksys3res9ModelList6parse_EPhmPN4sead4HeapE
|
||||
0x00000071011aed4c,O,002096,_ZN4ksys3res9ModelList6parse_EPhmPN4sead4HeapE
|
||||
0x00000071011af57c,O,002488,_ZN4ksys3res9ModelList14parseModelDataERKN3agl3utl16ResParameterListEPN4sead4HeapE
|
||||
0x00000071011aff34,O,002636,_ZN4ksys3res9ModelList14parseAnmTargetERKN3agl3utl16ResParameterListEPN4sead4HeapE
|
||||
0x00000071011b0980,O,000008,_ZThn632_N4ksys3res9ModelList6parse_EPhmPN4sead4HeapE
|
||||
|
@ -91862,7 +91862,7 @@ Address,Quality,Size,Name
|
|||
0x00000071011bf214,O,000020,_ZN4ksys3act11BaseProcMgr13decrementUnk3Ev
|
||||
0x00000071011bf228,U,000732,BaseProcMgr::writeResidentActorsCsv
|
||||
0x00000071011bf504,U,000084,appendToResidentActorsList
|
||||
0x00000071011bf558,m,000068,_ZN4ksys3act11BaseProcMgr17queueExtraJobPushEPNS0_15BaseProcJobLinkE
|
||||
0x00000071011bf558,O,000068,_ZN4ksys3act11BaseProcMgr17queueExtraJobPushEPNS0_15BaseProcJobLinkE
|
||||
0x00000071011bf59c,M,000164,_ZN4ksys3act11BaseProcMgr26moveExtraJobsToOtherBufferENS0_7JobTypeE
|
||||
0x00000071011bf640,O,000080,_ZN4ksys3act11BaseProcMgr15hasExtraJobLinkEPNS0_15BaseProcJobLinkEi
|
||||
0x00000071011bf690,O,000040,_ZN4ksys3act11BaseProcMgr19clearExtraJobArraysEv
|
||||
|
@ -97024,7 +97024,7 @@ Address,Quality,Size,Name
|
|||
0x00000071013069d4,O,000208,_ZN4ksys3act14BaseProcJobQue12pushJobQueueEPN4sead9WorkerMgrEPNS0_16BaseProcJobListsEiNS0_7JobTypeE
|
||||
0x0000007101306aa4,O,000516,_ZN4ksys3act14BaseProcJobQue8pushJobsEPN4sead11FixedSizeJQEPNS0_16BaseProcJobListsEibNS0_7JobTypeE
|
||||
0x0000007101306ca8,m,000288,_ZN4ksys3act14BaseProcJobQue13pushExtraJobsEPN4sead11FixedSizeJQEPNS0_16BaseProcJobListsEiNS0_7JobTypeE
|
||||
0x0000007101306dc8,O,000180,_ZN4ksys3act14BaseProcJobQue13pushExtraJobsEPN4sead11FixedSizeJQERKN3agl3utl14AtomicPtrArrayINS0_15BaseProcJobLinkEEE
|
||||
0x0000007101306dc8,W,000180,_ZN4ksys3act14BaseProcJobQue13pushExtraJobsEPN4sead11FixedSizeJQERKN3agl3utl14AtomicPtrArrayINS0_15BaseProcJobLinkEEE
|
||||
0x0000007101306e7c,O,000028,_ZN4ksys3act11BaseProcJob6invokeEv
|
||||
0x0000007101306e98,O,000036,_ZN4ksys3act11BaseProcJobD0Ev
|
||||
0x0000007101306ebc,U,000080,
|
||||
|
|
Can't render this file because it is too large.
|
|
@ -50,7 +50,7 @@ constexpr int NumDungeons = 16;
|
|||
|
||||
SEAD_SINGLETON_DISPOSER_IMPL(Manager)
|
||||
|
||||
Manager::Manager() : mGdtReinitSlot{this, &Manager::onGdtReinit} {
|
||||
Manager::Manager() : mVersionFile(), mGdtReinitSlot{this, &Manager::onGdtReinit} {
|
||||
resetFlags();
|
||||
}
|
||||
|
||||
|
@ -113,7 +113,7 @@ void Manager::loadVersionFile() {
|
|||
req._26 = false;
|
||||
req.mAocFileDevice = mFileDevice;
|
||||
const sead::SafeString path = "System/AocVersion.txt";
|
||||
mVersionFile->file_handle.requestLoad(path, &req);
|
||||
mVersionFile.file_handle.requestLoad(path, &req);
|
||||
}
|
||||
|
||||
void Manager::loadAocMainFieldPack(ksys::OverlayArena* arena) {
|
||||
|
@ -404,19 +404,19 @@ bool Manager::changeMoviePath(sead::BufferedSafeString& path) const {
|
|||
}
|
||||
|
||||
bool Manager::parseVersion() {
|
||||
if (!mVersionFile->readVersion())
|
||||
if (!mVersionFile.readVersion())
|
||||
return false;
|
||||
|
||||
if (mVersionFile->string.isEmpty()) {
|
||||
if (mVersionFile.string.isEmpty()) {
|
||||
mVersion = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
{
|
||||
const int dot_index = mVersionFile->string.findIndex(".");
|
||||
const int dot_index = mVersionFile.string.findIndex(".");
|
||||
const int minor_index = dot_index + 1;
|
||||
if (dot_index <= 0 || minor_index >= mVersionFile->string.calcLength()) {
|
||||
mVersionFile->string.clear();
|
||||
if (dot_index <= 0 || minor_index >= mVersionFile.string.calcLength()) {
|
||||
mVersionFile.string.clear();
|
||||
mVersion = 0;
|
||||
return true;
|
||||
}
|
||||
|
@ -424,13 +424,13 @@ bool Manager::parseVersion() {
|
|||
u32 major, minor;
|
||||
const auto parse = [&] {
|
||||
sead::FixedSafeString<16> major_str;
|
||||
major_str.copy(mVersionFile->string, dot_index);
|
||||
major_str.copy(mVersionFile.string, dot_index);
|
||||
|
||||
constexpr auto base = sead::StringUtil::CardinalNumber::Base10;
|
||||
if (!sead::StringUtil::tryParseU32(&major, major_str, base))
|
||||
return false;
|
||||
|
||||
const auto minor_str = mVersionFile->string.getPart(minor_index);
|
||||
const auto minor_str = mVersionFile.string.getPart(minor_index);
|
||||
if (!sead::StringUtil::tryParseU32(&minor, minor_str, base))
|
||||
return false;
|
||||
|
||||
|
@ -438,7 +438,7 @@ bool Manager::parseVersion() {
|
|||
};
|
||||
|
||||
if (!parse()) {
|
||||
mVersionFile->string.clear();
|
||||
mVersionFile.string.clear();
|
||||
mVersion = 0;
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
#include <prim/seadBitFlag.h>
|
||||
#include <prim/seadEnum.h>
|
||||
#include <prim/seadSafeString.h>
|
||||
#include <prim/seadStorageFor.h>
|
||||
#include "KingSystem/GameData/gdtManager.h"
|
||||
#include "KingSystem/Resource/resHandle.h"
|
||||
#include "KingSystem/Resource/resResourceMgrTask.h"
|
||||
|
@ -106,7 +105,7 @@ private:
|
|||
sead::FileDevice* mFileDevice{};
|
||||
|
||||
ksys::res::FileDevicePrefix mVersionFileDevPrefix;
|
||||
sead::StorageFor<VersionFile, true> mVersionFile{sead::ZeroInitializeTag{}};
|
||||
VersionFile mVersionFile{};
|
||||
u32 mVersion{};
|
||||
|
||||
ksys::res::Handle mAocMainFieldPack;
|
||||
|
|
|
@ -62,7 +62,7 @@ SEAD_SINGLETON_DISPOSER_IMPL(ActorLimiter)
|
|||
|
||||
bool ActorLimiter::init(sead::Heap* heap, const sead::SafeArray<int, NumCategories>& capacities) {
|
||||
for (s32 i = 0; i < NumCategories; ++i) {
|
||||
if (!mLists.ref()[i].init(heap, capacities[i]))
|
||||
if (!mLists[i].init(heap, capacities[i]))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
#include <container/seadOffsetList.h>
|
||||
#include <container/seadSafeArray.h>
|
||||
#include <heap/seadDisposer.h>
|
||||
#include <prim/seadStorageFor.h>
|
||||
#include <thread/seadCriticalSection.h>
|
||||
#include "KingSystem/ActorSystem/actBaseProcLink.h"
|
||||
#include "KingSystem/Utils/Types.h"
|
||||
|
@ -13,8 +12,8 @@ namespace ksys::act {
|
|||
|
||||
class ActorLimiter {
|
||||
SEAD_SINGLETON_DISPOSER(ActorLimiter)
|
||||
ActorLimiter() = default;
|
||||
~ActorLimiter() { mLists.destruct(); }
|
||||
ActorLimiter() : mLists() {}
|
||||
~ActorLimiter() = default;
|
||||
|
||||
public:
|
||||
enum class Category {
|
||||
|
@ -51,11 +50,11 @@ public:
|
|||
|
||||
bool init(sead::Heap* heap, const sead::SafeArray<int, NumCategories>& capacities);
|
||||
|
||||
List& get(Category category) { return mLists.ref()[s32(category)]; }
|
||||
const List& get(Category category) const { return mLists.ref()[s32(category)]; }
|
||||
List& get(Category category) { return mLists[s32(category)]; }
|
||||
const List& get(Category category) const { return mLists[s32(category)]; }
|
||||
|
||||
private:
|
||||
sead::StorageFor<sead::SafeArray<List, NumCategories>> mLists{sead::ZeroInitializeTag{}};
|
||||
sead::SafeArray<List, NumCategories> mLists{};
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(ActorLimiter, 0x360);
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
namespace ksys::act {
|
||||
|
||||
BaseProcJobQue::BaseProcJobQue() = default;
|
||||
BaseProcJobQue::BaseProcJobQue() : mPool() {}
|
||||
|
||||
BaseProcJobQue::~BaseProcJobQue() {
|
||||
mJobQueue.clear();
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
#include <basis/seadTypes.h>
|
||||
#include <mc/seadJob.h>
|
||||
#include <mc/seadJobQueue.h>
|
||||
#include <prim/seadStorageFor.h>
|
||||
#include <thread/seadAtomic.h>
|
||||
#include "KingSystem/ActorSystem/actBaseProcJob.h"
|
||||
#include "KingSystem/Utils/Types.h"
|
||||
|
@ -37,22 +36,9 @@ private:
|
|||
bool pushJobs(sead::FixedSizeJQ* queue, BaseProcJobLists* lists, int priority,
|
||||
bool should_reset_job_idx, JobType type);
|
||||
|
||||
struct Pool {
|
||||
Pool() {
|
||||
for (auto& job : mPool)
|
||||
job.constructDefault();
|
||||
}
|
||||
|
||||
u32 size() const { return u32(mPool.size()); }
|
||||
auto& operator[](int idx) { return mPool[idx].ref(); }
|
||||
auto& operator[](int idx) const { return mPool[idx].ref(); }
|
||||
|
||||
std::array<sead::StorageFor<BaseProcJob, true>, 1200> mPool{};
|
||||
};
|
||||
|
||||
int mFreeJobIdx = 0;
|
||||
sead::FixedSizeJQ mJobQueue;
|
||||
Pool mPool;
|
||||
std::array<BaseProcJob, 1200> mPool;
|
||||
sead::Atomic<u32> mNumExtraJobs = 0;
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(BaseProcJobQue, 0xbc38);
|
||||
|
|
|
@ -14,7 +14,7 @@ namespace ksys::act {
|
|||
|
||||
SEAD_SINGLETON_DISPOSER_IMPL(BaseProcMgr)
|
||||
|
||||
BaseProcMgr::BaseProcMgr() {
|
||||
BaseProcMgr::BaseProcMgr() : mExtraJobLinkArrays() {
|
||||
mProcPreDeleteList.initOffset(offsetof(BaseProc, mPreDeleteListNode));
|
||||
mProcUpdateStateList.initOffset(offsetof(BaseProc, mUpdateStateListNode));
|
||||
}
|
||||
|
@ -162,7 +162,7 @@ void BaseProcMgr::processPreDeleteList() {
|
|||
}
|
||||
|
||||
BaseProcMgr::ExtraJobLinkArray& BaseProcMgr::getExtraJobs() {
|
||||
return mExtraJobLinkArrays.ref()[mCurrentExtraJobArrayIdx];
|
||||
return mExtraJobLinkArrays[mCurrentExtraJobArrayIdx];
|
||||
}
|
||||
|
||||
void BaseProcMgr::swapExtraJobArray() {
|
||||
|
@ -637,19 +637,16 @@ void BaseProcMgr::decrementUnk3() {
|
|||
--mUnk3;
|
||||
}
|
||||
|
||||
// reorderings
|
||||
#ifdef NON_MATCHING
|
||||
void BaseProcMgr::queueExtraJobPush(BaseProcJobLink* job_link) {
|
||||
getExtraJobs().pushBack(job_link);
|
||||
}
|
||||
#endif
|
||||
|
||||
// ???
|
||||
#ifdef NON_MATCHING
|
||||
void BaseProcMgr::moveExtraJobsToOtherBuffer(JobType type) {
|
||||
const auto old_idx = mCurrentExtraJobArrayIdx;
|
||||
swapExtraJobArray();
|
||||
auto& array = mExtraJobLinkArrays.ref()[old_idx];
|
||||
auto& array = mExtraJobLinkArrays[old_idx];
|
||||
for (auto& link : array) {
|
||||
link.getProc()->queueExtraJobPush_(type, mCurrentExtraJobArrayIdx);
|
||||
}
|
||||
|
@ -657,7 +654,7 @@ void BaseProcMgr::moveExtraJobsToOtherBuffer(JobType type) {
|
|||
#endif
|
||||
|
||||
bool BaseProcMgr::hasExtraJobLink(BaseProcJobLink* job_link, s32 idx) {
|
||||
for (auto& ptr : mExtraJobLinkArrays.ref()[idx]) {
|
||||
for (auto& ptr : mExtraJobLinkArrays[idx]) {
|
||||
if (&ptr == job_link)
|
||||
return true;
|
||||
}
|
||||
|
@ -665,8 +662,8 @@ bool BaseProcMgr::hasExtraJobLink(BaseProcJobLink* job_link, s32 idx) {
|
|||
}
|
||||
|
||||
void BaseProcMgr::clearExtraJobArrays() {
|
||||
mExtraJobLinkArrays.ref()[0].clear();
|
||||
mExtraJobLinkArrays.ref()[1].clear();
|
||||
mExtraJobLinkArrays[0].clear();
|
||||
mExtraJobLinkArrays[1].clear();
|
||||
}
|
||||
|
||||
} // namespace ksys::act
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
#include <prim/seadBitFlag.h>
|
||||
#include <prim/seadScopedLock.h>
|
||||
#include <prim/seadSizedEnum.h>
|
||||
#include <prim/seadStorageFor.h>
|
||||
#include <prim/seadTypedBitFlag.h>
|
||||
#include <thread/seadAtomic.h>
|
||||
#include <thread/seadCriticalSection.h>
|
||||
|
@ -266,8 +265,7 @@ private:
|
|||
u32 mHavokThreadId1 = 0;
|
||||
u32 mHavokThreadId2 = 0;
|
||||
u32 mUnk4 = 0;
|
||||
sead::StorageFor<sead::SafeArray<ExtraJobLinkArray, 2>> mExtraJobLinkArrays{
|
||||
sead::ZeroInitializeTag{}};
|
||||
sead::SafeArray<ExtraJobLinkArray, 2> mExtraJobLinkArrays{};
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(BaseProcMgr, 0x21a0);
|
||||
|
||||
|
|
|
@ -1039,7 +1039,7 @@ void Manager::syncUpdate(const char* data) {
|
|||
|
||||
void Manager::recordFlagChange(u32 platform_core_id, TriggerParam* tparam, u8 type, const s32& idx,
|
||||
const s32& sub_idx) {
|
||||
auto& buffer = tparam->mFlagChangeRecords[platform_core_id].ref();
|
||||
auto& buffer = tparam->mFlagChangeRecords[platform_core_id];
|
||||
buffer[tparam->mFlagChangeRecordIndices[platform_core_id]].type.mValue = type;
|
||||
buffer[tparam->mFlagChangeRecordIndices[platform_core_id]].index = idx;
|
||||
buffer[tparam->mFlagChangeRecordIndices[platform_core_id]].sub_index = sub_idx;
|
||||
|
|
|
@ -20,12 +20,7 @@
|
|||
|
||||
namespace ksys::gdt {
|
||||
|
||||
TriggerParam::TriggerParam() {
|
||||
for (auto& buffer : mFlagChangeRecords)
|
||||
buffer.constructDefault();
|
||||
for (auto& cs : mCriticalSections)
|
||||
cs.constructDefault();
|
||||
mBitFlags.constructDefault();
|
||||
TriggerParam::TriggerParam() : mFlagChangeRecords(), mCriticalSections() {
|
||||
mFlagChangeRecordIndices.fill(0);
|
||||
mNumBoolFlagsPerCategory0.fill(0);
|
||||
mNumBoolFlagsPerCategory.fill(0);
|
||||
|
@ -920,7 +915,7 @@ void TriggerParam::copyAllFlags(const TriggerParam& src, sead::Heap* heap, bool
|
|||
|
||||
if (init_reset_data) {
|
||||
for (auto& array : mFlagChangeRecords)
|
||||
array.ref().allocBufferAssert(num_flags, heap);
|
||||
array.allocBufferAssert(num_flags, heap);
|
||||
initResetData(heap);
|
||||
initRevivalRandomBools(heap);
|
||||
}
|
||||
|
@ -1331,7 +1326,7 @@ bool TriggerParam::getMaxValueForS32(s32* max, const sead::SafeString& name) con
|
|||
\
|
||||
if constexpr (std::is_same<T, bool>()) { \
|
||||
if (FLAGS[idx]->getProperties().isEventAssociated()) \
|
||||
mBitFlags.ref().set(BitFlag::EventAssociatedFlagModified); \
|
||||
mBitFlags.set(BitFlag::EventAssociatedFlagModified); \
|
||||
} \
|
||||
\
|
||||
return ret; \
|
||||
|
@ -1407,11 +1402,11 @@ void TriggerParam::recordFlagChange(const FlagBase* flag, s32 idx, s32 sub_idx)
|
|||
const auto core = sead::CoreInfo::getCurrentCoreId();
|
||||
const u32 platform_core_id = sead::CoreInfo::getPlatformCoreId(core);
|
||||
|
||||
auto& buffer = mFlagChangeRecords[platform_core_id].ref();
|
||||
auto& buffer = mFlagChangeRecords[platform_core_id];
|
||||
if (buffer.size() < 1)
|
||||
return;
|
||||
|
||||
auto lock = sead::makeScopedLock(mCriticalSections[platform_core_id].ref());
|
||||
auto lock = sead::makeScopedLock(mCriticalSections[platform_core_id]);
|
||||
|
||||
buffer[mFlagChangeRecordIndices[platform_core_id]].type.mValue = u8(flag->getType());
|
||||
buffer[mFlagChangeRecordIndices[platform_core_id]].index = idx;
|
||||
|
@ -1419,7 +1414,7 @@ void TriggerParam::recordFlagChange(const FlagBase* flag, s32 idx, s32 sub_idx)
|
|||
++mFlagChangeRecordIndices[platform_core_id];
|
||||
|
||||
if (flag->getType() == FlagType::Bool)
|
||||
mBitFlags.ref().set(BitFlag::_8);
|
||||
mBitFlags.set(BitFlag::_8);
|
||||
}
|
||||
|
||||
SET_FLAG_VALUE_IMPL_(TriggerParam::setS32, s32, mS32Flags, s32, value)
|
||||
|
@ -1928,10 +1923,10 @@ void TriggerParam::copyChangedFlags(TriggerParam& other, bool set_all_flags, boo
|
|||
bool ignore_temp_flags) {
|
||||
if (!set_all_flags) {
|
||||
for (s32 i = 0; i < 3; ++i) {
|
||||
auto lock = sead::makeScopedLock(other.mCriticalSections[i].ref());
|
||||
auto lock = sead::makeScopedLock(other.mCriticalSections[i]);
|
||||
|
||||
for (s32 j = 0; j < mFlagChangeRecordIndices[i]; ++i) {
|
||||
const FlagChangeRecord& record = mFlagChangeRecords[i].ref()[j];
|
||||
const FlagChangeRecord& record = mFlagChangeRecords[i][j];
|
||||
const auto idx = record.index;
|
||||
const auto sub_idx = record.sub_index;
|
||||
switch (record.type) {
|
||||
|
@ -2112,7 +2107,7 @@ void TriggerParam::copyChangedFlags(TriggerParam& other, bool set_all_flags, boo
|
|||
}
|
||||
|
||||
mFlagChangeRecordIndices[i] = 0;
|
||||
other.mBitFlags.ref().reset(BitFlag::_8);
|
||||
other.mBitFlags.reset(BitFlag::_8);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
#include <container/seadSafeArray.h>
|
||||
#include <gfx/seadColor.h>
|
||||
#include <prim/seadBitFlag.h>
|
||||
#include <prim/seadStorageFor.h>
|
||||
#include <prim/seadTypedBitFlag.h>
|
||||
#include "KingSystem/GameData/gdtFlag.h"
|
||||
#include "KingSystem/Utils/Types.h"
|
||||
|
@ -476,7 +475,7 @@ private:
|
|||
|
||||
void recordFlagChange(const FlagBase* flag, s32 idx, s32 sub_idx = -1);
|
||||
|
||||
bool shouldFindExistingCopyRecord() const { return mBitFlags.ref().isOn(BitFlag::_7); }
|
||||
bool shouldFindExistingCopyRecord() const { return mBitFlags.isOn(BitFlag::_7); }
|
||||
|
||||
bool shouldSkipRevivingShopItem(bool* is_shop_item, u32 flag_hash, bool is_main_field,
|
||||
const sead::Buffer<s32>& arrow_counts, s32 col1, s32 row1,
|
||||
|
@ -504,7 +503,7 @@ private:
|
|||
sead::PtrArray<sead::PtrArray<FlagBase>> mVector3fArrayFlags;
|
||||
sead::PtrArray<sead::PtrArray<FlagBase>> mVector4fArrayFlags;
|
||||
|
||||
sead::SafeArray<sead::StorageFor<sead::Buffer<FlagChangeRecord>>, 3> mFlagChangeRecords{};
|
||||
sead::SafeArray<sead::Buffer<FlagChangeRecord>, 3> mFlagChangeRecords;
|
||||
|
||||
sead::ObjArray<FlagCopyRecord> mCopiedBoolFlags;
|
||||
sead::ObjArray<FlagCopyRecord> mCopiedS32Flags;
|
||||
|
@ -524,8 +523,8 @@ private:
|
|||
std::array<s32, 3> mFlagChangeRecordIndices;
|
||||
sead::SafeArray<s32, 15> mNumBoolFlagsPerCategory0;
|
||||
sead::SafeArray<s32, 15> mNumBoolFlagsPerCategory;
|
||||
sead::SafeArray<sead::StorageFor<sead::CriticalSection>, 3> mCriticalSections{};
|
||||
sead::StorageFor<sead::TypedBitFlag<BitFlag>> mBitFlags;
|
||||
sead::SafeArray<sead::CriticalSection, 3> mCriticalSections;
|
||||
sead::TypedBitFlag<BitFlag> mBitFlags;
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(TriggerParam, 0x3f0);
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ namespace {
|
|||
[[maybe_unused]] sead::SafeArray<sead::FixedSafeString<128>, 3> sStrings;
|
||||
}
|
||||
|
||||
ASList::ASList() : ParamIO("aslist", 0) {}
|
||||
ASList::ASList() : ParamIO("aslist", 0), mCommon() {}
|
||||
|
||||
ASList::~ASList() {
|
||||
mASDefines.freeBuffer();
|
||||
|
@ -129,10 +129,10 @@ bool ASList::parse_(u8* data, size_t size, sead::Heap* heap) {
|
|||
if (agl::utl::getResParameterObj(root, "Common").ptr()) {
|
||||
const sead::SafeString name = "RateAll";
|
||||
const sead::SafeString label = "";
|
||||
mCommon->rate_all.init(1.0, name, label, &mCommon->obj);
|
||||
addObj(&mCommon->obj, "Common");
|
||||
mCommon.rate_all.init(1.0, name, label, &mCommon.obj);
|
||||
addObj(&mCommon.obj, "Common");
|
||||
} else {
|
||||
mCommon->rate_all = 1.0;
|
||||
mCommon.rate_all = 1.0;
|
||||
}
|
||||
|
||||
applyResParameterArchive(agl::utl::ResParameterArchive{data});
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
#include <agl/Utils/aglParameterList.h>
|
||||
#include <agl/Utils/aglParameterObj.h>
|
||||
#include <container/seadBuffer.h>
|
||||
#include <prim/seadStorageFor.h>
|
||||
#include "KingSystem/Resource/resResource.h"
|
||||
#include "KingSystem/Utils/ParamIO.h"
|
||||
|
||||
|
@ -77,7 +76,7 @@ public:
|
|||
const sead::Buffer<ASDefine>& getASDefines() const { return mASDefines; }
|
||||
const sead::Buffer<CFDefine>& getCFDefines() const { return mCFDefines; }
|
||||
const sead::Buffer<AddRes>& getAddReses() const { return mAddReses; }
|
||||
const Common& getCommon() const { return mCommon.ref(); }
|
||||
const Common& getCommon() const { return mCommon; }
|
||||
|
||||
void addAS_(s32 index, AS* as);
|
||||
|
||||
|
@ -102,7 +101,7 @@ private:
|
|||
agl::utl::ParameterList mCFDefinesList;
|
||||
agl::utl::ParameterList mASDefinesList;
|
||||
agl::utl::ParameterList mAddResesList;
|
||||
sead::StorageFor<Common, true> mCommon{sead::ZeroInitializeTag{}};
|
||||
Common mCommon;
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(ASList, 0x410);
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ sead::SafeArray<const char*, 6> sLocatorTypes{{
|
|||
constexpr u32 NumUnitMax = 8;
|
||||
} // namespace
|
||||
|
||||
ModelList::ModelList() : ParamIO("modellist", 0) {}
|
||||
ModelList::ModelList() : ParamIO("modellist", 0), mControllerInfo(), mAttention() {}
|
||||
|
||||
ModelList::~ModelList() {
|
||||
for (auto& entry : mModelData)
|
||||
|
@ -36,8 +36,6 @@ ModelList::~ModelList() {
|
|||
|
||||
void ModelList::doCreate_(u8* buffer, u32 buffer_size, sead::Heap* heap) {}
|
||||
|
||||
// reorderings
|
||||
#ifdef NON_MATCHING
|
||||
bool ModelList::parse_(u8* data, size_t size, sead::Heap* heap) {
|
||||
agl::utl::ResParameterArchive archive{data};
|
||||
const auto root = archive.getRootList();
|
||||
|
@ -56,46 +54,43 @@ bool ModelList::parse_(u8* data, size_t size, sead::Heap* heap) {
|
|||
}
|
||||
addList(&mAnmTargetList, str_AnmTarget);
|
||||
|
||||
mControllerInfo->mAddColor.init({0.0, 0.0, 0.0, 0.0}, "AddColor", "", &mControllerInfo->mObj);
|
||||
mControllerInfo->mMulColor.init({1.0, 1.0, 1.0, 1.0}, "MulColor", "", &mControllerInfo->mObj);
|
||||
mControllerInfo->mBaseScale.init(sead::Vector3f::ones, "BaseScale", "", &mControllerInfo->mObj);
|
||||
mControllerInfo->mVariationMatAnim.init("", "VariationMatAnim", "", &mControllerInfo->mObj);
|
||||
mControllerInfo->mVariationMatAnimFrame.init(0, "VariationMatAnimFrame", "",
|
||||
&mControllerInfo->mObj);
|
||||
mControllerInfo->mVariationShaderAnim.init("", "VariationShaderAnim", "",
|
||||
&mControllerInfo->mObj);
|
||||
mControllerInfo->mVariationShaderAnimFrame.init(0, "VariationShaderAnimFrame", "",
|
||||
&mControllerInfo->mObj);
|
||||
mControllerInfo->mCalcAABBASKey.init("Wait", "CalcAABBASKey", "", &mControllerInfo->mObj);
|
||||
addObj(&mControllerInfo->mObj, sead::FormatFixedSafeString<128>("ControllerInfo"));
|
||||
mControllerInfo.mAddColor.init({0.0, 0.0, 0.0, 0.0}, "AddColor", "", &mControllerInfo.mObj);
|
||||
mControllerInfo.mMulColor.init({1.0, 1.0, 1.0, 1.0}, "MulColor", "", &mControllerInfo.mObj);
|
||||
mControllerInfo.mBaseScale.init(sead::Vector3f::ones, "BaseScale", "", &mControllerInfo.mObj);
|
||||
mControllerInfo.mVariationMatAnim.init("", "VariationMatAnim", "", &mControllerInfo.mObj);
|
||||
mControllerInfo.mVariationMatAnimFrame.init(0, "VariationMatAnimFrame", "",
|
||||
&mControllerInfo.mObj);
|
||||
mControllerInfo.mVariationShaderAnim.init("", "VariationShaderAnim", "", &mControllerInfo.mObj);
|
||||
mControllerInfo.mVariationShaderAnimFrame.init(0, "VariationShaderAnimFrame", "",
|
||||
&mControllerInfo.mObj);
|
||||
mControllerInfo.mCalcAABBASKey.init("Wait", "CalcAABBASKey", "", &mControllerInfo.mObj);
|
||||
addObj(&mControllerInfo.mObj, sead::FormatFixedSafeString<128>("ControllerInfo"));
|
||||
|
||||
mAttention->mIsEnableAttention.init(false, "IsEnableAttention", "", &mAttention->mObj);
|
||||
mAttention->mLookAtBone.init("", "LookAtBone", "", &mAttention->mObj);
|
||||
mAttention->mLookAtOffset.init(sead::Vector3f::zero, "LookAtOffset", "", &mAttention->mObj);
|
||||
mAttention->mCursorOffsetY.init(0.0, "CursorOffsetY", "", &mAttention->mObj);
|
||||
mAttention->mAIInfoOffsetY.init(0.0, "AIInfoOffsetY", "", &mAttention->mObj);
|
||||
mAttention->mCutTargetBone.init("", "CutTargetBone", "", &mAttention->mObj);
|
||||
mAttention->mCutTargetOffset.init(sead::Vector3f::zero, "CutTargetOffset", "",
|
||||
&mAttention->mObj);
|
||||
mAttention->mGameCameraBone.init("", "GameCameraBone", "", &mAttention->mObj);
|
||||
mAttention->mGameCameraOffset.init(sead::Vector3f::zero, "GameCameraOffset", "",
|
||||
&mAttention->mObj);
|
||||
mAttention->mBowCameraBone.init("", "BowCameraBone", "", &mAttention->mObj);
|
||||
mAttention->mBowCameraOffset.init(sead::Vector3f::zero, "BowCameraOffset", "",
|
||||
&mAttention->mObj);
|
||||
mAttention->mAttackTargetBone.init("", "AttackTargetBone", "", &mAttention->mObj);
|
||||
mAttention->mAttackTargetOffset.init(sead::Vector3f::zero, "AttackTargetOffset", "",
|
||||
&mAttention->mObj);
|
||||
mAttention->mAttackTargetOffsetBack.init(0.0, "AttackTargetOffsetBack", "", &mAttention->mObj);
|
||||
mAttention->mAtObstacleChkUseLookAtPos.init(true, "AtObstacleChkUseLookAtPos", "",
|
||||
&mAttention->mObj);
|
||||
mAttention->mAtObstacleChkOffsetBone.init("", "AtObstacleChkOffsetBone", "", &mAttention->mObj);
|
||||
mAttention->mAtObstacleChkOffset.init(sead::Vector3f::zero, "AtObstacleChkOffset", "",
|
||||
&mAttention->mObj);
|
||||
mAttention->mCursorAIInfoBaseBone.init("", "CursorAIInfoBaseBone", "", &mAttention->mObj);
|
||||
mAttention->mCursorAIInfoBaseOffset.init(sead::Vector3f::zero, "CursorAIInfoBaseOffset", "",
|
||||
&mAttention->mObj);
|
||||
addObj(&mAttention->mObj, sead::FormatFixedSafeString<128>("Attention"));
|
||||
mAttention.mIsEnableAttention.init(false, "IsEnableAttention", "", &mAttention.mObj);
|
||||
mAttention.mLookAtBone.init("", "LookAtBone", "", &mAttention.mObj);
|
||||
mAttention.mLookAtOffset.init(sead::Vector3f::zero, "LookAtOffset", "", &mAttention.mObj);
|
||||
mAttention.mCursorOffsetY.init(0.0, "CursorOffsetY", "", &mAttention.mObj);
|
||||
mAttention.mAIInfoOffsetY.init(0.0, "AIInfoOffsetY", "", &mAttention.mObj);
|
||||
mAttention.mCutTargetBone.init("", "CutTargetBone", "", &mAttention.mObj);
|
||||
mAttention.mCutTargetOffset.init(sead::Vector3f::zero, "CutTargetOffset", "", &mAttention.mObj);
|
||||
mAttention.mGameCameraBone.init("", "GameCameraBone", "", &mAttention.mObj);
|
||||
mAttention.mGameCameraOffset.init(sead::Vector3f::zero, "GameCameraOffset", "",
|
||||
&mAttention.mObj);
|
||||
mAttention.mBowCameraBone.init("", "BowCameraBone", "", &mAttention.mObj);
|
||||
mAttention.mBowCameraOffset.init(sead::Vector3f::zero, "BowCameraOffset", "", &mAttention.mObj);
|
||||
mAttention.mAttackTargetBone.init("", "AttackTargetBone", "", &mAttention.mObj);
|
||||
mAttention.mAttackTargetOffset.init(sead::Vector3f::zero, "AttackTargetOffset", "",
|
||||
&mAttention.mObj);
|
||||
mAttention.mAttackTargetOffsetBack.init(0.0, "AttackTargetOffsetBack", "", &mAttention.mObj);
|
||||
mAttention.mAtObstacleChkUseLookAtPos.init(true, "AtObstacleChkUseLookAtPos", "",
|
||||
&mAttention.mObj);
|
||||
mAttention.mAtObstacleChkOffsetBone.init("", "AtObstacleChkOffsetBone", "", &mAttention.mObj);
|
||||
mAttention.mAtObstacleChkOffset.init(sead::Vector3f::zero, "AtObstacleChkOffset", "",
|
||||
&mAttention.mObj);
|
||||
mAttention.mCursorAIInfoBaseBone.init("", "CursorAIInfoBaseBone", "", &mAttention.mObj);
|
||||
mAttention.mCursorAIInfoBaseOffset.init(sead::Vector3f::zero, "CursorAIInfoBaseOffset", "",
|
||||
&mAttention.mObj);
|
||||
addObj(&mAttention.mObj, sead::FormatFixedSafeString<128>("Attention"));
|
||||
|
||||
if (data) {
|
||||
applyResParameterArchive(agl::utl::ResParameterArchive{data});
|
||||
|
@ -104,7 +99,6 @@ bool ModelList::parse_(u8* data, size_t size, sead::Heap* heap) {
|
|||
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
bool ModelList::parseModelData(const agl::utl::ResParameterList& res, sead::Heap* heap) {
|
||||
if (!mModelData.tryAllocBuffer(res.getResParameterListNum() != 0, heap))
|
||||
|
@ -228,11 +222,11 @@ void ModelList::getModelDataInfo(ModelList::ModelDataInfo* info) const {
|
|||
}
|
||||
}
|
||||
|
||||
info->base_scale = mControllerInfo->mBaseScale.ref();
|
||||
info->base_scale = mControllerInfo.mBaseScale.ref();
|
||||
}
|
||||
|
||||
bool ModelList::getAttentionInfo(AttentionInfo* info) const {
|
||||
if (!mAttention->mIsEnableAttention.ref()) {
|
||||
if (!mAttention.mIsEnableAttention.ref()) {
|
||||
info->look_at_bone = {};
|
||||
info->look_at_offset = sead::Vector3f::zero;
|
||||
|
||||
|
@ -258,35 +252,35 @@ bool ModelList::getAttentionInfo(AttentionInfo* info) const {
|
|||
return false;
|
||||
}
|
||||
|
||||
info->look_at_bone = mAttention->mLookAtBone.ref().cstr();
|
||||
info->look_at_offset = mAttention->mLookAtOffset.ref();
|
||||
info->look_at_bone = mAttention.mLookAtBone.ref().cstr();
|
||||
info->look_at_offset = mAttention.mLookAtOffset.ref();
|
||||
|
||||
info->cursor_offset_y = mAttention->mCursorOffsetY.ref();
|
||||
info->ai_info_offset_y = mAttention->mAIInfoOffsetY.ref();
|
||||
info->cursor_offset_y = mAttention.mCursorOffsetY.ref();
|
||||
info->ai_info_offset_y = mAttention.mAIInfoOffsetY.ref();
|
||||
|
||||
info->cut_target_bone = mAttention->mCutTargetBone.ref().cstr();
|
||||
info->cut_target_offset = mAttention->mCutTargetOffset.ref();
|
||||
info->cut_target_bone = mAttention.mCutTargetBone.ref().cstr();
|
||||
info->cut_target_offset = mAttention.mCutTargetOffset.ref();
|
||||
|
||||
info->game_camera_bone = mAttention->mGameCameraBone.ref().cstr();
|
||||
info->game_camera_offset = mAttention->mGameCameraOffset.ref();
|
||||
info->game_camera_bone = mAttention.mGameCameraBone.ref().cstr();
|
||||
info->game_camera_offset = mAttention.mGameCameraOffset.ref();
|
||||
|
||||
info->bow_camera_bone = mAttention->mBowCameraBone.ref().cstr();
|
||||
info->bow_camera_offset = mAttention->mBowCameraOffset.ref();
|
||||
info->bow_camera_bone = mAttention.mBowCameraBone.ref().cstr();
|
||||
info->bow_camera_offset = mAttention.mBowCameraOffset.ref();
|
||||
|
||||
info->attack_target_bone = mAttention->mAttackTargetBone.ref().cstr();
|
||||
info->attack_target_offset = mAttention->mAttackTargetOffset.ref();
|
||||
info->attack_target_offset_back = mAttention->mAttackTargetOffsetBack.ref();
|
||||
info->attack_target_bone = mAttention.mAttackTargetBone.ref().cstr();
|
||||
info->attack_target_offset = mAttention.mAttackTargetOffset.ref();
|
||||
info->attack_target_offset_back = mAttention.mAttackTargetOffsetBack.ref();
|
||||
|
||||
if (mAttention->mAtObstacleChkUseLookAtPos.ref()) {
|
||||
info->at_obstacle_chk_bone = mAttention->mLookAtBone.ref().cstr();
|
||||
info->at_obstacle_chk_offset = mAttention->mLookAtOffset.ref();
|
||||
if (mAttention.mAtObstacleChkUseLookAtPos.ref()) {
|
||||
info->at_obstacle_chk_bone = mAttention.mLookAtBone.ref().cstr();
|
||||
info->at_obstacle_chk_offset = mAttention.mLookAtOffset.ref();
|
||||
} else {
|
||||
info->at_obstacle_chk_bone = mAttention->mAtObstacleChkOffsetBone.ref().cstr();
|
||||
info->at_obstacle_chk_offset = mAttention->mAtObstacleChkOffset.ref();
|
||||
info->at_obstacle_chk_bone = mAttention.mAtObstacleChkOffsetBone.ref().cstr();
|
||||
info->at_obstacle_chk_offset = mAttention.mAtObstacleChkOffset.ref();
|
||||
}
|
||||
|
||||
info->cursor_ai_info_base_bone = mAttention->mCursorAIInfoBaseBone.ref().cstr();
|
||||
info->cursor_ai_info_base_offset = mAttention->mCursorAIInfoBaseOffset.ref();
|
||||
info->cursor_ai_info_base_bone = mAttention.mCursorAIInfoBaseBone.ref().cstr();
|
||||
info->cursor_ai_info_base_offset = mAttention.mCursorAIInfoBaseOffset.ref();
|
||||
|
||||
const auto clear_if_empty = [](const char** s) {
|
||||
if (!(*s)[0])
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
#include <agl/Utils/aglParameterObj.h>
|
||||
#include <container/seadBuffer.h>
|
||||
#include <prim/seadSafeString.h>
|
||||
#include <prim/seadStorageFor.h>
|
||||
#include "KingSystem/ActorSystem/actInfoData.h"
|
||||
#include "KingSystem/Resource/resResource.h"
|
||||
#include "KingSystem/Utils/ParamIO.h"
|
||||
|
@ -132,8 +131,8 @@ public:
|
|||
bool needsParse() const override { return true; }
|
||||
bool parse_(u8* data, size_t size, sead::Heap* heap) override;
|
||||
|
||||
const ControllerInfo& getControllerInfo() const { return mControllerInfo.ref(); }
|
||||
const Attention& getAttention() const { return mAttention.ref(); }
|
||||
const ControllerInfo& getControllerInfo() const { return mControllerInfo; }
|
||||
const Attention& getAttention() const { return mAttention; }
|
||||
const sead::Buffer<ModelData>& getModelData() const { return mModelData; }
|
||||
const sead::Buffer<AnmTarget>& getAnmTargets() const { return mAnmTargets; }
|
||||
|
||||
|
@ -155,8 +154,8 @@ private:
|
|||
bool parseModelData(const agl::utl::ResParameterList& res, sead::Heap* heap);
|
||||
bool parseAnmTarget(const agl::utl::ResParameterList& res, sead::Heap* heap);
|
||||
|
||||
sead::StorageFor<ControllerInfo, true> mControllerInfo{sead::ZeroInitializeTag{}};
|
||||
sead::StorageFor<Attention, true> mAttention{sead::ZeroInitializeTag{}};
|
||||
ControllerInfo mControllerInfo;
|
||||
Attention mAttention;
|
||||
u8* mRawData{};
|
||||
sead::Buffer<ModelData> mModelData;
|
||||
agl::utl::ParameterList mModelDataList;
|
||||
|
|
Loading…
Reference in New Issue