Merge pull request #170 from Pistonight/fix/new_viking_mismatches

take new viking and update mismatches
This commit is contained in:
Michael Zhao
2026-05-31 14:26:22 -07:00
committed by GitHub
24 changed files with 519 additions and 468 deletions
+427 -427
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -19,7 +19,7 @@ void RideHorseAI::leave_() {
}
void RideHorseAI::loadParams_() {
getDynamicParam2(&mHasToPlayRidingOnAS_d, "HasToPlayRidingOnAS");
getDynamicParam_2(&mHasToPlayRidingOnAS_d, "HasToPlayRidingOnAS");
}
} // namespace uking::ai
@@ -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_() {
@@ -15,7 +15,7 @@ void CameraEventOverwriteFar::leave_() {
}
void CameraEventOverwriteFar::loadParams_() {
getDynamicParam2(&mFar_d, "Far");
getDynamicParam_2(&mFar_d, "Far");
}
} // namespace uking::action
@@ -16,7 +16,7 @@ void CameraEventOverwriteNear::leave_() {
}
void CameraEventOverwriteNear::loadParams_() {
getDynamicParam2(&mNear_d, "Near");
getDynamicParam_2(&mNear_d, "Near");
}
} // namespace uking::action
@@ -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
+3 -3
View File
@@ -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
+4 -4
View File
@@ -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
@@ -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");
}
@@ -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");
}
@@ -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
@@ -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_() {
@@ -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
@@ -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) {}
+9
View File
@@ -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
@@ -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;
}
@@ -35,6 +35,8 @@ public:
void setEventActive(bool active);
void calc();
static u32 calcHash(const sead::SafeString& key);
private:
friend class AwarenessInstance;
@@ -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;
+45 -11
View File
@@ -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;
+2 -2
View File
@@ -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;
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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;
+1
View File
@@ -1,5 +1,6 @@
functions_csv = "data/uking_functions.csv"
build_target = "uking"
check_unimplemented_references = false
[decomp_me]
compiler_name = "clang-4.0.1"