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