summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Zhao <44533763+Pistonight@users.noreply.github.com>2026-05-31 14:26:22 -0700
committerGitHub <noreply@github.com>2026-05-31 14:26:22 -0700
commit77d70466690bf252d642dbdfa3fa689c00484ae0 (patch)
tree6327a04d99d525904d6dbf9f38674aa4201146c0 /src
parentd10aef2b4fe55fa281572b24576f4cef8fef4c3e (diff)
parent3183601b597bff191f7805f0af18495554ede9e6 (diff)
Merge pull request #170 from Pistonight/fix/new_viking_mismatches
take new viking and update mismatches
Diffstat (limited to 'src')
-rw-r--r--src/Game/AI/AI/aiRideHorseAI.cpp2
-rw-r--r--src/Game/AI/Action/actionCameraEventFocusDistSetting.cpp6
-rw-r--r--src/Game/AI/Action/actionCameraEventOverwriteFar.cpp2
-rw-r--r--src/Game/AI/Action/actionCameraEventOverwriteNear.cpp2
-rw-r--r--src/Game/AI/Action/actionCameraEventReserveConnectTime.cpp2
-rw-r--r--src/Game/AI/Action/actionCameraRotRumble.cpp6
-rw-r--r--src/Game/AI/Action/actionCameraRumble.cpp8
-rw-r--r--src/Game/AI/Action/actionCameraRumbleLoop.cpp6
-rw-r--r--src/Game/AI/Action/actionCameraRumbleStopWithDamping.cpp2
-rw-r--r--src/Game/AI/Action/actionControllerRumble.cpp2
-rw-r--r--src/Game/AI/Action/actionGiantDoubleGroundPunch.cpp2
-rw-r--r--src/Game/AI/Action/actionMsg2CameraResetInterpolate.cpp2
-rw-r--r--src/Game/AI/Query/queryIsCurrentMainFieldStage.cpp4
-rw-r--r--src/Game/gameScene.cpp9
-rw-r--r--src/KingSystem/ActorSystem/Awareness/actAwareness.cpp4
-rw-r--r--src/KingSystem/ActorSystem/Awareness/actAwareness.h2
-rw-r--r--src/KingSystem/ActorSystem/Awareness/actAwarenessDefs.cpp5
-rw-r--r--src/KingSystem/ActorSystem/actAiActionBase.h56
-rw-r--r--src/KingSystem/ActorSystem/actAiParam.h4
-rw-r--r--src/KingSystem/Map/mapObject.cpp2
-rw-r--r--src/KingSystem/Quest/qstQuest.cpp2
21 files changed, 90 insertions, 40 deletions
diff --git a/src/Game/AI/AI/aiRideHorseAI.cpp b/src/Game/AI/AI/aiRideHorseAI.cpp
index 6f45b1b7..3bc177b2 100644
--- a/src/Game/AI/AI/aiRideHorseAI.cpp
+++ b/src/Game/AI/AI/aiRideHorseAI.cpp
@@ -19,7 +19,7 @@ void RideHorseAI::leave_() {
}
void RideHorseAI::loadParams_() {
- getDynamicParam2(&mHasToPlayRidingOnAS_d, "HasToPlayRidingOnAS");
+ getDynamicParam_2(&mHasToPlayRidingOnAS_d, "HasToPlayRidingOnAS");
}
} // namespace uking::ai
diff --git a/src/Game/AI/Action/actionCameraEventFocusDistSetting.cpp b/src/Game/AI/Action/actionCameraEventFocusDistSetting.cpp
index ec064acc..fa1a208a 100644
--- a/src/Game/AI/Action/actionCameraEventFocusDistSetting.cpp
+++ b/src/Game/AI/Action/actionCameraEventFocusDistSetting.cpp
@@ -8,9 +8,9 @@ CameraEventFocusDistSetting::CameraEventFocusDistSetting(const InitArg& arg)
CameraEventFocusDistSetting::~CameraEventFocusDistSetting() = default;
void CameraEventFocusDistSetting::loadParams_() {
- getDynamicParam2(&mClipIndex_d, "ClipIndex");
- getDynamicParam2(&mFocusDistStart_d, "FocusDistStart");
- getDynamicParam2(&mFocusDistEnd_d, "FocusDistEnd");
+ getDynamicParam_2(&mClipIndex_d, "ClipIndex");
+ getDynamicParam_2(&mFocusDistStart_d, "FocusDistStart");
+ getDynamicParam_2(&mFocusDistEnd_d, "FocusDistEnd");
}
void CameraEventFocusDistSetting::calc_() {
diff --git a/src/Game/AI/Action/actionCameraEventOverwriteFar.cpp b/src/Game/AI/Action/actionCameraEventOverwriteFar.cpp
index 6526526d..17a1a4f2 100644
--- a/src/Game/AI/Action/actionCameraEventOverwriteFar.cpp
+++ b/src/Game/AI/Action/actionCameraEventOverwriteFar.cpp
@@ -15,7 +15,7 @@ void CameraEventOverwriteFar::leave_() {
}
void CameraEventOverwriteFar::loadParams_() {
- getDynamicParam2(&mFar_d, "Far");
+ getDynamicParam_2(&mFar_d, "Far");
}
} // namespace uking::action
diff --git a/src/Game/AI/Action/actionCameraEventOverwriteNear.cpp b/src/Game/AI/Action/actionCameraEventOverwriteNear.cpp
index a78cd1cb..aa89a0d8 100644
--- a/src/Game/AI/Action/actionCameraEventOverwriteNear.cpp
+++ b/src/Game/AI/Action/actionCameraEventOverwriteNear.cpp
@@ -16,7 +16,7 @@ void CameraEventOverwriteNear::leave_() {
}
void CameraEventOverwriteNear::loadParams_() {
- getDynamicParam2(&mNear_d, "Near");
+ getDynamicParam_2(&mNear_d, "Near");
}
} // namespace uking::action
diff --git a/src/Game/AI/Action/actionCameraEventReserveConnectTime.cpp b/src/Game/AI/Action/actionCameraEventReserveConnectTime.cpp
index 403ca399..e44920e8 100644
--- a/src/Game/AI/Action/actionCameraEventReserveConnectTime.cpp
+++ b/src/Game/AI/Action/actionCameraEventReserveConnectTime.cpp
@@ -8,7 +8,7 @@ CameraEventReserveConnectTime::CameraEventReserveConnectTime(const InitArg& arg)
CameraEventReserveConnectTime::~CameraEventReserveConnectTime() = default;
void CameraEventReserveConnectTime::loadParams_() {
- getDynamicParam2(&mInterpolateTime_d, "InterpolateTime");
+ getDynamicParam_2(&mInterpolateTime_d, "InterpolateTime");
}
} // namespace uking::action
diff --git a/src/Game/AI/Action/actionCameraRotRumble.cpp b/src/Game/AI/Action/actionCameraRotRumble.cpp
index 95cf7c16..b0d62205 100644
--- a/src/Game/AI/Action/actionCameraRotRumble.cpp
+++ b/src/Game/AI/Action/actionCameraRotRumble.cpp
@@ -5,9 +5,9 @@ namespace uking::action {
CameraRotRumble::CameraRotRumble(const InitArg& arg) : ksys::act::ai::Action(arg) {}
void CameraRotRumble::loadParams_() {
- getDynamicParam2(&mPattern_d, "Pattern");
- getDynamicParam2(&mCount_d, "Count");
- getDynamicParam2(&mPower_d, "Power");
+ getDynamicParam_2(&mPattern_d, "Pattern");
+ getDynamicParam_2(&mCount_d, "Count");
+ getDynamicParam_2(&mPower_d, "Power");
}
} // namespace uking::action
diff --git a/src/Game/AI/Action/actionCameraRumble.cpp b/src/Game/AI/Action/actionCameraRumble.cpp
index 95f58351..9774faab 100644
--- a/src/Game/AI/Action/actionCameraRumble.cpp
+++ b/src/Game/AI/Action/actionCameraRumble.cpp
@@ -5,10 +5,10 @@ namespace uking::action {
CameraRumble::CameraRumble(const InitArg& arg) : ksys::act::ai::Action(arg) {}
void CameraRumble::loadParams_() {
- getDynamicParam2(&mPattern_d, "Pattern");
- getDynamicParam2(&mCount_d, "Count");
- getDynamicParam2(&mPower_d, "Power");
- getDynamicParam2(&mSideways_d, "Sideways");
+ getDynamicParam_2(&mPattern_d, "Pattern");
+ getDynamicParam_2(&mCount_d, "Count");
+ getDynamicParam_2(&mPower_d, "Power");
+ getDynamicParam_2(&mSideways_d, "Sideways");
}
} // namespace uking::action
diff --git a/src/Game/AI/Action/actionCameraRumbleLoop.cpp b/src/Game/AI/Action/actionCameraRumbleLoop.cpp
index 6214e899..d7dc582d 100644
--- a/src/Game/AI/Action/actionCameraRumbleLoop.cpp
+++ b/src/Game/AI/Action/actionCameraRumbleLoop.cpp
@@ -9,9 +9,9 @@ void CameraRumbleLoop::enter_(ksys::act::ai::InlineParamPack* params) {
}
void CameraRumbleLoop::loadParams_() {
- getDynamicParam2(&mPattern_d, "Pattern");
- getDynamicParam2(&mPower_d, "Power");
- getDynamicParam2(&mSideways_d, "Sideways");
+ getDynamicParam_2(&mPattern_d, "Pattern");
+ getDynamicParam_2(&mPower_d, "Power");
+ getDynamicParam_2(&mSideways_d, "Sideways");
getAITreeVariable(&mCamVibId_a, "CamVibId");
}
diff --git a/src/Game/AI/Action/actionCameraRumbleStopWithDamping.cpp b/src/Game/AI/Action/actionCameraRumbleStopWithDamping.cpp
index bb2ab469..a5a62770 100644
--- a/src/Game/AI/Action/actionCameraRumbleStopWithDamping.cpp
+++ b/src/Game/AI/Action/actionCameraRumbleStopWithDamping.cpp
@@ -6,7 +6,7 @@ CameraRumbleStopWithDamping::CameraRumbleStopWithDamping(const InitArg& arg)
: ksys::act::ai::Action(arg) {}
void CameraRumbleStopWithDamping::loadParams_() {
- getDynamicParam2(&mDampingTime_d, "DampingTime");
+ getDynamicParam_2(&mDampingTime_d, "DampingTime");
getAITreeVariable(&mCamVibId_a, "CamVibId");
}
diff --git a/src/Game/AI/Action/actionControllerRumble.cpp b/src/Game/AI/Action/actionControllerRumble.cpp
index 4a85b15d..e9e77e01 100644
--- a/src/Game/AI/Action/actionControllerRumble.cpp
+++ b/src/Game/AI/Action/actionControllerRumble.cpp
@@ -10,7 +10,7 @@ void ControllerRumble::enter_(ksys::act::ai::InlineParamPack* params) {
void ControllerRumble::loadParams_() {
getStaticParam(&mPattern_s, "Pattern");
- getDynamicParam2(&mCount_d, "Count");
+ getDynamicParam_2(&mCount_d, "Count");
}
} // namespace uking::action
diff --git a/src/Game/AI/Action/actionGiantDoubleGroundPunch.cpp b/src/Game/AI/Action/actionGiantDoubleGroundPunch.cpp
index 2fcb26ef..a083e14b 100644
--- a/src/Game/AI/Action/actionGiantDoubleGroundPunch.cpp
+++ b/src/Game/AI/Action/actionGiantDoubleGroundPunch.cpp
@@ -89,7 +89,7 @@ void GiantDoubleGroundPunch::loadParams_() {
// FIXME: CALL _ZN4sead14PrintFormatter20proceedToFormatMark_EPc @ 0x7100b0bde0
// FIXME: CALL _ZN4sead14PrintFormatter5flushEv @ 0x7100b0bd94
// FIXME: CALL sead__PrintFormatter__x @ 0x7100b0c528
- getDynamicParam2(&mTargetPos_d, "TargetPos");
+ getDynamicParam_2(&mTargetPos_d, "TargetPos");
}
void GiantDoubleGroundPunch::calc_() {
diff --git a/src/Game/AI/Action/actionMsg2CameraResetInterpolate.cpp b/src/Game/AI/Action/actionMsg2CameraResetInterpolate.cpp
index 9e483112..c48aef0c 100644
--- a/src/Game/AI/Action/actionMsg2CameraResetInterpolate.cpp
+++ b/src/Game/AI/Action/actionMsg2CameraResetInterpolate.cpp
@@ -6,7 +6,7 @@ Msg2CameraResetInterpolate::Msg2CameraResetInterpolate(const InitArg& arg)
: ksys::act::ai::Action(arg) {}
void Msg2CameraResetInterpolate::loadParams_() {
- getDynamicParam2(&mInterpolateParam_d, "InterpolateParam");
+ getDynamicParam_2(&mInterpolateParam_d, "InterpolateParam");
}
} // namespace uking::action
diff --git a/src/Game/AI/Query/queryIsCurrentMainFieldStage.cpp b/src/Game/AI/Query/queryIsCurrentMainFieldStage.cpp
index ddd0aa88..879bfced 100644
--- a/src/Game/AI/Query/queryIsCurrentMainFieldStage.cpp
+++ b/src/Game/AI/Query/queryIsCurrentMainFieldStage.cpp
@@ -1,6 +1,6 @@
#include "Game/AI/Query/queryIsCurrentMainFieldStage.h"
#include <evfl/Query.h>
-#include "KingSystem/System/StageInfo.h"
+#include "Game/gameScene.h"
namespace uking::query {
@@ -9,7 +9,7 @@ IsCurrentMainFieldStage::IsCurrentMainFieldStage(const InitArg& arg) : ksys::act
IsCurrentMainFieldStage::~IsCurrentMainFieldStage() = default;
int IsCurrentMainFieldStage::doQuery() {
- return ksys::StageInfo::getCurrentMapType() == "MainField";
+ return GameScene::getCurrentMapType() == "MainField";
}
void IsCurrentMainFieldStage::loadParams(const evfl::QueryArg& arg) {}
diff --git a/src/Game/gameScene.cpp b/src/Game/gameScene.cpp
index 2f5a4344..96c5a936 100644
--- a/src/Game/gameScene.cpp
+++ b/src/Game/gameScene.cpp
@@ -1,7 +1,16 @@
#include "Game/gameScene.h"
+#include "KingSystem/System/StageInfo.h"
namespace uking {
bool GameScene::sIsOpenWorldDemo{};
+const sead::SafeString& GameScene::getCurrentMapType() {
+ return ksys::StageInfo::getCurrentMapType();
+}
+
+const sead::SafeString& GameScene::getCurrentMapName() {
+ return ksys::StageInfo::getCurrentMapName();
+}
+
} // namespace uking
diff --git a/src/KingSystem/ActorSystem/Awareness/actAwareness.cpp b/src/KingSystem/ActorSystem/Awareness/actAwareness.cpp
index 4d4e8d67..a06e3e67 100644
--- a/src/KingSystem/ActorSystem/Awareness/actAwareness.cpp
+++ b/src/KingSystem/ActorSystem/Awareness/actAwareness.cpp
@@ -231,6 +231,10 @@ void Awareness::calc() {
resetFlag(Flag::_0);
}
+u32 Awareness::calcHash(const sead::SafeString& key) {
+ return agl::utl::ParameterBase::calcHash(key);
+}
+
void Awareness::Links2::calc() {
count = 0;
}
diff --git a/src/KingSystem/ActorSystem/Awareness/actAwareness.h b/src/KingSystem/ActorSystem/Awareness/actAwareness.h
index 970ec635..5b13c5ef 100644
--- a/src/KingSystem/ActorSystem/Awareness/actAwareness.h
+++ b/src/KingSystem/ActorSystem/Awareness/actAwareness.h
@@ -35,6 +35,8 @@ public:
void setEventActive(bool active);
void calc();
+ static u32 calcHash(const sead::SafeString& key);
+
private:
friend class AwarenessInstance;
diff --git a/src/KingSystem/ActorSystem/Awareness/actAwarenessDefs.cpp b/src/KingSystem/ActorSystem/Awareness/actAwarenessDefs.cpp
index a6f3b30d..8c13c6fc 100644
--- a/src/KingSystem/ActorSystem/Awareness/actAwarenessDefs.cpp
+++ b/src/KingSystem/ActorSystem/Awareness/actAwarenessDefs.cpp
@@ -1,6 +1,7 @@
#include "KingSystem/ActorSystem/Awareness/actAwarenessDefs.h"
#include <container/seadSafeArray.h>
#include <utility/aglParameter.h>
+#include "KingSystem/ActorSystem/Awareness/actAwareness.h"
namespace ksys::act {
@@ -28,7 +29,7 @@ sead::SafeArray<const char*, 23> sAwarenessSensorTypes = sead::toArray({
u32 getAwarenessTerrorFlags(u32 hash) {
for (u32 i = 0; i < u32(sAwarenessTerrorTypes.size()); ++i) {
- if (agl::utl::ParameterBase::calcHash(sAwarenessTerrorTypes(i)) == hash)
+ if (Awareness::calcHash(sAwarenessTerrorTypes(i)) == hash)
return 1 << i;
}
@@ -38,7 +39,7 @@ u32 getAwarenessTerrorFlags(u32 hash) {
u32 getAwarenessSensorFlags(u32 hash) {
for (u32 i = 0; i < u32(sAwarenessSensorTypes.size()); ++i) {
- if (agl::utl::ParameterBase::calcHash(sAwarenessSensorTypes(i)) == hash)
+ if (Awareness::calcHash(sAwarenessSensorTypes(i)) == hash)
return 1 << i;
}
return 0xffffffff;
diff --git a/src/KingSystem/ActorSystem/actAiActionBase.h b/src/KingSystem/ActorSystem/actAiActionBase.h
index 88dd364f..e20cf06f 100644
--- a/src/KingSystem/ActorSystem/actAiActionBase.h
+++ b/src/KingSystem/ActorSystem/actAiActionBase.h
@@ -197,6 +197,35 @@ protected:
return false;
}
+ // likely duplicated by compiler?
+ template <typename T>
+ bool getDynamicParamImpl_2(T* value, const sead::SafeString& key,
+ bool (ParamPack::*getter)(T* value, const sead::SafeString& key)
+ const,
+ T* default_value) const {
+ auto* action = this;
+ while (action && action->mFlags.isOff(Flag::_80)) {
+ if ((action->mParams.*getter)(value, key))
+ return true;
+ if (action->mFlags.isOff(Flag::DynamicParamChild))
+ goto fail;
+ action = action->getCurrentChild();
+ if (!action)
+ goto fail;
+ }
+
+ for (s32 i = 0, n = action->getNumChildren(); i < n; ++i) {
+ auto* child = action->getChild(i);
+ if (child->getDynamicParamImpl_2<T>(value, key, getter, default_value))
+ return true;
+ }
+
+ fail:
+ logMissingParam(key);
+ *value = *default_value;
+ return false;
+ }
+
template <AIDefParamType Type, typename T>
bool getDynamicParamPtrImpl(T** value, const sead::SafeString& key, T* default_value) const {
return getDynamicParamImpl(value, key, &ParamPack::getPtrGeneric<T, Type>, &default_value);
@@ -246,26 +275,31 @@ protected:
value, key, static_cast<sead::SafeString*>(getDefaultString32()));
}
- // TODO: rename -- why do these exist?
+ // likely duplicated by compiler?
template <AIDefParamType Type, typename T>
- bool getDynamicParamPtrImpl2(T** value, const sead::SafeString& key, T* default_value) const {
- return getDynamicParamImpl(value, key, &ParamPack::getPtrGeneric2<T, Type>, &default_value);
+ bool getDynamicParamPtrImpl_2(T** value, const sead::SafeString& key, T* default_value) const {
+ return getDynamicParamImpl_2(value, key, &ParamPack::getPtrGeneric_2<T, Type>,
+ &default_value);
}
- bool getDynamicParam2(int** value, const sead::SafeString& key) const {
- return getDynamicParamPtrImpl2<AIDefParamType::Int>(value, key, getDefaultInt());
+ // likely duplicated by compiler?
+ bool getDynamicParam_2(int** value, const sead::SafeString& key) const {
+ return getDynamicParamPtrImpl_2<AIDefParamType::Int>(value, key, getDefaultInt());
}
- bool getDynamicParam2(float** value, const sead::SafeString& key) const {
- return getDynamicParamPtrImpl2<AIDefParamType::Float>(value, key, getDefaultFloat());
+ // likely duplicated by compiler?
+ bool getDynamicParam_2(float** value, const sead::SafeString& key) const {
+ return getDynamicParamPtrImpl_2<AIDefParamType::Float>(value, key, getDefaultFloat());
}
- bool getDynamicParam2(sead::Vector3f** value, const sead::SafeString& key) const {
- return getDynamicParamPtrImpl2<AIDefParamType::Vec3>(value, key, getDefaultVec3());
+ // likely duplicated by compiler?
+ bool getDynamicParam_2(sead::Vector3f** value, const sead::SafeString& key) const {
+ return getDynamicParamPtrImpl_2<AIDefParamType::Vec3>(value, key, getDefaultVec3());
}
- bool getDynamicParam2(bool** value, const sead::SafeString& key) const {
- return getDynamicParamPtrImpl2<AIDefParamType::Bool>(value, key, getDefaultBool());
+ // likely duplicated by compiler?
+ bool getDynamicParam_2(bool** value, const sead::SafeString& key) const {
+ return getDynamicParamPtrImpl_2<AIDefParamType::Bool>(value, key, getDefaultBool());
}
Actor* mActor;
diff --git a/src/KingSystem/ActorSystem/actAiParam.h b/src/KingSystem/ActorSystem/actAiParam.h
index e775f7fd..a39e30eb 100644
--- a/src/KingSystem/ActorSystem/actAiParam.h
+++ b/src/KingSystem/ActorSystem/actAiParam.h
@@ -104,9 +104,9 @@ public:
return ptr != nullptr;
}
- // TODO: rename this -- why does this exist?
+ // likely duplicated by compiler?
template <typename T, AIDefParamType Type>
- bool getPtrGeneric2(T** value, const sead::SafeString& key) const {
+ bool getPtrGeneric_2(T** value, const sead::SafeString& key) const {
auto* ptr = static_cast<T*>(getAITreeVariablePointer(key, Type));
*value = ptr;
return ptr != nullptr;
diff --git a/src/KingSystem/Map/mapObject.cpp b/src/KingSystem/Map/mapObject.cpp
index 6775a577..f2173ac5 100644
--- a/src/KingSystem/Map/mapObject.cpp
+++ b/src/KingSystem/Map/mapObject.cpp
@@ -401,7 +401,7 @@ void Object::setRevivalFlagValueIf(ActorData::Flag bit, bool value) {
}
void Object::setRevivalFlagValue(bool value) {
- gdt::Manager::instance()->setBool(value, mRevivalGameDataFlagHash);
+ gdt::Manager::instance()->setBoolNoCheck(value, mRevivalGameDataFlagHash);
}
// NON_MATCHING
diff --git a/src/KingSystem/Quest/qstQuest.cpp b/src/KingSystem/Quest/qstQuest.cpp
index dffa196f..a06c3623 100644
--- a/src/KingSystem/Quest/qstQuest.cpp
+++ b/src/KingSystem/Quest/qstQuest.cpp
@@ -73,7 +73,7 @@ void Quest::x_3() {
auto* gdm = gdt::Manager::instance();
if (gdm != nullptr) {
if (gdm->getBool(handle, &result, true); !result)
- gdm->setBool(true, handle);
+ gdm->setBoolNoCheck(true, handle);
}
}
_8 = _c;