all: Fix function calls to unimplemented functions

This commit is contained in:
MonsterDruide1 2026-01-09 00:39:01 +01:00
parent 79362ac33a
commit 80658223b0
19 changed files with 59 additions and 57 deletions

View file

@ -10,8 +10,9 @@ UNKNOWN:
status: NotDecompiled
- offset: 0x00019c
size: 8
label: ''
label: __cxa_atexit
status: NotDecompiled
guess: true
- offset: 0x0001ac
size: 4
label: __nnDetailNintendoSdkRuntimeObjectFileRefer
@ -200269,8 +200270,9 @@ Util/YoshiUtil.o:
status: Matching
- offset: 0x723d9c
size: 556
label: ''
status: NotDecompiled
label: _ZN2nn3gfx6detail12_GLOBAL__N_119SetupTextureBuilderEP17NVNtextureBuilderP9NVNdeviceRKNS0_11TextureInfoE
status: Matching
guess: true
- offset: 0x723fc8
size: 64
label: _ZN2nn3gfx6detail11TextureImplINS0_12ApiVariationINS0_7ApiTypeILi4EEENS0_10ApiVersionILi8EEEEEE20CalculateMipDataSizeEPNS1_10DeviceImplIS8_EERKNS0_11TextureInfoE
@ -308274,8 +308276,9 @@ Unknown/SePlayer.o:
status: Matching
- offset: 0xae8298
size: 204
label: ''
status: NotDecompiled
label: _ZN2nn3gfx6detail12_GLOBAL__N_116GetNvnCopyStrideEPlS3_RKNS0_23BufferTextureCopyRegionEP10NVNtexture
status: Matching
guess: true
- offset: 0xae8364
size: 356
label: _ZN2nn3gfx6detail17CommandBufferImplINS0_12ApiVariationINS0_7ApiTypeILi4EEENS0_10ApiVersionILi8EEEEEE17CopyImageToBufferEPNS1_10BufferImplIS8_EEPKNS1_11TextureImplIS8_EERKNS0_23BufferTextureCopyRegionE

View file

@ -34,36 +34,32 @@ void createFileNameBySuffix(sead::BufferedSafeString* out, const char* name, con
u32 outputValueWithComma(char* out, u32 size, u64 value, bool usePadding, bool padToThousands) {
if (value > 999999999) {
return sead::StringUtil::snprintf(out, size, "%3d,%03d,%03d,%03d",
(u32)(value / 1000000000), (u32)(value / 1000000 % 1000),
(u32)(value / 1000 % 1000), (u32)(value % 1000));
return snprintf(out, size, "%3d,%03d,%03d,%03d", (u32)(value / 1000000000),
(u32)(value / 1000000 % 1000), (u32)(value / 1000 % 1000),
(u32)(value % 1000));
}
if (value > 999999) {
if (usePadding) {
return sead::StringUtil::snprintf(out, size, "%3d,%03d,%03d", (u32)(value / 1000000),
(u32)(value / 1000 % 1000), (u32)(value % 1000));
return snprintf(out, size, "%3d,%03d,%03d", (u32)(value / 1000000),
(u32)(value / 1000 % 1000), (u32)(value % 1000));
}
return sead::StringUtil::snprintf(out, size, "%d,%03d,%03d", (u32)(value / 1000000),
(u32)(value / 1000 % 1000), (u32)(value % 1000));
return snprintf(out, size, "%d,%03d,%03d", (u32)(value / 1000000),
(u32)(value / 1000 % 1000), (u32)(value % 1000));
}
if (value > 999) {
if (usePadding) {
if (padToThousands) {
return sead::StringUtil::snprintf(out, size, "%3d,%03d", (u32)(value / 1000),
(u32)(value % 1000));
}
return sead::StringUtil::snprintf(out, size, " %3d,%03d", (u32)(value / 1000),
(u32)(value % 1000));
if (padToThousands)
return snprintf(out, size, "%3d,%03d", (u32)(value / 1000), (u32)(value % 1000));
return snprintf(out, size, " %3d,%03d", (u32)(value / 1000), (u32)(value % 1000));
}
return sead::StringUtil::snprintf(out, size, "%d,%03d", (u32)(value / 1000),
(u32)(value % 1000));
return snprintf(out, size, "%d,%03d", (u32)(value / 1000), (u32)(value % 1000));
}
if (usePadding) {
if (padToThousands)
return sead::StringUtil::snprintf(out, size, " %3d", (u32)value);
return sead::StringUtil::snprintf(out, size, " %3d", (u32)value);
return snprintf(out, size, " %3d", (u32)value);
return snprintf(out, size, " %3d", (u32)value);
}
return sead::StringUtil::snprintf(out, size, "%d", (u32)value);
return snprintf(out, size, "%d", (u32)value);
}
void extractString(char* out, const char* str, u32 len, u32 unused) {
@ -100,8 +96,8 @@ const char* searchSubString(const char* str, const char* substr, s32 substrLen)
void removeExtensionString(char* out, u32 len, const char* str) {
snprintf(out, len, "%s", str);
char* dot = strchr(out, '.');
char* dirSeparator = strchr(out, '/');
char* dot = strrchr(out, '.');
char* dirSeparator = strrchr(out, '/');
if (!dot || dot < dirSeparator || ++dirSeparator == dot)
return;

View file

@ -20,6 +20,7 @@ class OcclusionCullingJudge;
class LayoutInitInfo : public LayoutSceneInfo {
public:
LayoutInitInfo();
void init(ExecuteDirector*, const EffectSystemInfo*, SceneObjHolder*, const AudioDirector*,
CameraDirector*, const LayoutSystem*, const MessageSystem*, const GamePadSystem*,
PadRumbleDirector*);

View file

@ -1208,7 +1208,7 @@ bool turnFrontToDirGetIsFinished(LiveActor* actor, const sead::Vector3f& dir, f3
sead::Vector3f up;
calcFrontDir(&up, actor);
bool finished = turnDirectionDegree(actor, &up, dir, deg);
rotateVectorDegree(getFrontPtr(actor), getFront(actor), up, deg);
turnVecToVecDegree(getFrontPtr(actor), getFront(actor), up, deg);
normalize(getFrontPtr(actor));
return finished;
}

View file

@ -155,7 +155,7 @@ void WobbleMapParts::updateMove() {
void WobbleMapParts::exeMove() {
updateMove();
tryStartSeWithParam(this, "Rotate", mTiltSpeed, "");
tryHoldSeWithParam(this, "Rotate", mTiltSpeed, "");
if (mTiltSpeed < 0.1f)
startNerveAction(this, "Wait");
}

View file

@ -30,7 +30,7 @@ void EffectObjFollowCamera::init(const ActorInitInfo& info) {
EffectObjFunction::initActorEffectObj(this, info);
invalidateClipping(this);
setEffectNamedMtxPtr(this, "Wait", &mBaseMtx);
setEffectFollowMtxPtr(this, "Wait", &mBaseMtx);
initNerve(this, &Wait, 0);
listenStageSwitchOnOffAppear(

View file

@ -11,8 +11,8 @@ namespace {
using namespace al;
NERVE_IMPL(CameraVerticalAbsorber, FollowGround);
NERVE_IMPL(CameraVerticalAbsorber, FollowAbsolute);
NERVE_IMPL_(CameraVerticalAbsorber, FollowClimbPoleNoInterp, Follow);
NERVE_IMPL_(CameraVerticalAbsorber, FollowSlow, Absorb);
NERVE_IMPL_(CameraVerticalAbsorber, FollowClimbPoleNoInterp, FollowClimbPole);
NERVE_IMPL_(CameraVerticalAbsorber, FollowSlow, Follow);
NERVE_IMPL(CameraVerticalAbsorber, Absorb);
NERVE_IMPL(CameraVerticalAbsorber, Follow);
NERVE_IMPL(CameraVerticalAbsorber, FollowClimbPole);

View file

@ -48,7 +48,8 @@ void executeUpdateCalcView(const LiveActorKit* actorKit) {
}
void waitUpdateCalcView(const LiveActorKit* actorKit) {
executeUpdateCalcView(actorKit);
actorKit->getExecutorCore1()->waitAsync();
actorKit->getExecutorCore2()->waitAsync();
if (actorKit->getGraphicsSystemInfo() && actorKit->getGraphicsSystemInfo()->getSkyDirector())
actorKit->getGraphicsSystemInfo()->getSkyDirector()->update();
}

View file

@ -2,6 +2,7 @@
#include <basis/seadRawPrint.h>
#include <filedevice/seadFileDeviceMgr.h>
#include <heap/seadFrameHeap.h>
#include <heap/seadHeapMgr.h>
#include "Library/Base/Macros.h"
@ -17,8 +18,8 @@ MemorySystem::MemorySystem(sead::Heap* heap)
: mDelegate(this, &MemorySystem::allocFailedCallbackFunc) {
sead::HeapMgr::instance()->setAllocFailedCallback(&mDelegate);
mStationedHeap =
sead::ExpHeap::tryCreate((u32)heap->getMaxAllocatableSize(8) - 0x1900000, "StationedHeap",
heap, 8, sead::Heap::cHeapDirection_Forward, false);
sead::ExpHeap::create((u32)heap->getMaxAllocatableSize(8) - 0x1900000, "StationedHeap",
heap, 8, sead::Heap::cHeapDirection_Forward, false);
{
sead::ScopedCurrentHeapSetter setter(mStationedHeap);
@ -40,8 +41,8 @@ void MemorySystem::allocFailedCallbackFunc(const sead::HeapMgr::AllocFailedCallb
}
void MemorySystem::createSequenceHeap() {
mSequenceHeap = sead::ExpHeap::tryCreate(0, "SequenceHeap", nullptr, 8,
sead::Heap::cHeapDirection_Forward, false);
mSequenceHeap = sead::ExpHeap::create(0, "SequenceHeap", nullptr, 8,
sead::Heap::cHeapDirection_Forward, false);
}
void MemorySystem::freeAllSequenceHeap() {
@ -67,7 +68,7 @@ bool MemorySystem::createSceneHeap(const char* stageName, bool backwards) {
if (currentHeap && currentHeap->getMaxAllocatableSize(8) < size)
size = currentHeap->getMaxAllocatableSize(8);
mSceneHeap = sead::ExpHeap::tryCreate(size, "SceneHeap", nullptr, 8, direction, false);
mSceneHeap = sead::FrameHeap::create(size, "SceneHeap", nullptr, 8, direction, false);
mSceneHeap->mFlag.reset(sead::Heap::Flag::cEnableDebugFillUser);
return currentSceneResourceHeap == nullptr;
@ -139,7 +140,7 @@ void MemorySystem::createCourseSelectHeap() {
if (currentHeap && currentHeap->getMaxAllocatableSize(8) < size)
size = currentHeap->getMaxAllocatableSize(8);
mCourseSelectResourceHeap = sead::ExpHeap::tryCreate(
mCourseSelectResourceHeap = sead::FrameHeap::create(
size, "CourseSelectHeapResource", nullptr, 8, sead::Heap::cHeapDirection_Reverse, true);
mCourseSelectResourceHeap->mFlag.reset(sead::Heap::Flag::cEnableDebugFillUser);
}
@ -149,8 +150,8 @@ void MemorySystem::createCourseSelectHeap() {
if (currentHeap && currentHeap->getMaxAllocatableSize(8) < size)
size = currentHeap->getMaxAllocatableSize(8);
mCourseSelectHeap = sead::ExpHeap::tryCreate(size, "CourseSelectHeapScene", nullptr, 8,
sead::Heap::cHeapDirection_Reverse, false);
mCourseSelectHeap = sead::FrameHeap::create(size, "CourseSelectHeapScene", nullptr, 8,
sead::Heap::cHeapDirection_Reverse, false);
mCourseSelectHeap->mFlag.reset(sead::Heap::Flag::cEnableDebugFillUser);
}
}

View file

@ -58,10 +58,10 @@ private:
sead::ExpHeap* mStationedHeap = nullptr;
sead::ExpHeap* mSequenceHeap = nullptr;
sead::FrameHeap* mSceneResourceHeap = nullptr;
sead::ExpHeap* mSceneHeap = nullptr;
sead::FrameHeap* mSceneHeap = nullptr;
sead::ExpHeap* mPlayerResourceHeap = nullptr;
sead::ExpHeap* mCourseSelectResourceHeap = nullptr;
sead::ExpHeap* mCourseSelectHeap = nullptr;
sead::FrameHeap* mCourseSelectResourceHeap = nullptr;
sead::FrameHeap* mCourseSelectHeap = nullptr;
sead::ExpHeap* mWorldResourceHeap = nullptr;
sead::StrTreeMap<32, sead::Heap*> mHeapList;
AudioResourceDirector* mAudioResourceDirector = nullptr;

View file

@ -140,7 +140,7 @@ void Kuribo2D::appearByGenerator(const sead::Vector3f& trans, const sead::Vector
al::setGravity(this, dimensionGravity);
al::setVelocityZero(this);
al::offCollide(this);
al::invalidateHitSensors(this);
al::invalidateClipping(this);
appear();
al::setNerve(this, &NrvKuribo2D.Wait);
}

View file

@ -126,7 +126,7 @@ void Togezo2D::control() {
void Togezo2D::exeWalk() {
if (al::isFirstStep(this)) {
al::validateClipping(this);
al::invalidateClipping(this);
al::showModelIfHide(this);
al::onCollide(this);
al::validateHitSensors(this);

View file

@ -62,7 +62,7 @@ void CoinCollectEmpty2D::initAfterPlacement() {
bool CoinCollectEmpty2D::receiveMsg(const al::SensorMsg* message, al::HitSensor* other,
al::HitSensor* self) {
if (rs::isMsgItemGet2D(message) && al::isNerve(this, &NrvCoinCollectEmpty2D.Wait)) {
if (rs::isMsgPlayerItemGet2D(message) && al::isNerve(this, &NrvCoinCollectEmpty2D.Wait)) {
al::invalidateClipping(this);
al::setNerve(this, &NrvCoinCollectEmpty2D.Got);
return true;

View file

@ -648,8 +648,8 @@ void HackFork::exeHackBend() {
sead::Vector3f oldPullDirection = mPullDirection;
f32 jumpDir = mIsPullDown ? -1.0f : 1.0f;
f32 angle = sead::Mathf::clamp((jumpDir * mUpDir).dot(pullDirection), -1.0f, 1.0f);
if (sead::Mathf::rad2deg(sead::Mathf::cos(angle)) < getJumpRange())
f32 cos = sead::Mathf::clamp((jumpDir * mUpDir).dot(pullDirection), -1.0f, 1.0f);
if (sead::Mathf::rad2deg(sead::Mathf::acos(cos)) < getJumpRange())
mPullDirection = mPullDirection * 0.5f + pullDirection * 0.5f;
al::normalize(&mPullDirection);
f32 oldDampingForce = mDampingForce;

View file

@ -140,7 +140,7 @@ s32 AchievementHolder::getAchievementProgressCurrentRow(s32 index,
if (al::isEqualString(*name, "Souvenir_Count_1") ||
al::isEqualString(*name, "Souvenir_Count_2") ||
al::isEqualString(*name, "Souvenir_Count_3"))
return rs::calcHaveStickerNum(accessor) + rs::calcHaveGiftNum(accessor);
return rs::calcHaveGiftNum(accessor) + rs::calcHaveStickerNum(accessor);
if (al::isEqualString(*name, "Capture_Count_1") ||
al::isEqualString(*name, "Capture_Count_2") || al::isEqualString(*name, "Capture_Count_3"))
return rs::calcHackObjNum(accessor);

View file

@ -15,8 +15,8 @@ PlayerJudgeCameraSubjective::PlayerJudgeCameraSubjective(const al::LiveActor* pl
: mPlayer(player), mCollider(collider), mInput(input) {
mTicket = al::initSubjectiveCameraNoSave(player, "Subjective");
al::validateSnapShotCameraRoll(mTicket);
al::validateSnapShotCameraZoomFovy(mTicket);
al::validateSnapShotCameraRoll(mTicket);
}
bool PlayerJudgeCameraSubjective::isEnableKeepSubjectiveCamera() const {

View file

@ -136,7 +136,7 @@ void PlayerStateCameraSubjective::exeWait() {
if (al::isFirstStep(this)) {
mModelChanger->hideModel();
if (mCarryKeeper->isCarry())
mCarryKeeper->endCameraSubjective();
mCarryKeeper->startCameraSubjective();
rs::tryAppearPlayerCameraSubjectiveTutorial(mActor);
mAnimator->startAnim("Wait");
}

View file

@ -220,11 +220,11 @@ s32 GameProgressData::calcNextLockedWorldIdForWorldMap(s32 idx) const {
case 5:
return GameDataFunction::getWorldIndexCity();
case 8:
return idx != 0 ? GameDataFunction::getWorldIndexSnow() :
GameDataFunction::getWorldIndexSea();
return idx == 0 ? GameDataFunction::getWorldIndexSea() :
GameDataFunction::getWorldIndexSnow();
case 9:
return isUnlockFirstSea() ? GameDataFunction::getWorldIndexSea() :
GameDataFunction::getWorldIndexSnow();
return isUnlockFirstSea() ? GameDataFunction::getWorldIndexSnow() :
GameDataFunction::getWorldIndexSea();
case 11:
return GameDataFunction::getWorldIndexSky();
default:

View file

@ -605,7 +605,7 @@ s32 getStageShineAnimFrame(const al::LiveActor* actor, s32 worldId) {
s32 getStageShineAnimFrame(const al::LiveActor* actor, const char* stageName) {
s32 worldId =
al::getSceneObj<GameDataHolder>(actor)->getWorldList()->tryFindWorldIndexByMainStageName(
al::getSceneObj<GameDataHolder>(actor)->getWorldList()->tryFindWorldIndexByStageName(
stageName);
worldId = sead::Mathi::max(0, worldId);
@ -636,7 +636,7 @@ void setStageShineAnimFrame(al::LiveActor* actor, const char* stageName, s32 shi
const char* getStageShineArchiveName(const al::LiveActor* actor, const char* stageName) {
s32 worldId =
al::getSceneObj<GameDataHolder>(actor)->getWorldList()->tryFindWorldIndexByMainStageName(
al::getSceneObj<GameDataHolder>(actor)->getWorldList()->tryFindWorldIndexByStageName(
stageName);
return worldId == GameDataFunction::getWorldIndexPeach() ? "PowerStar" : "Shine";
@ -644,7 +644,7 @@ const char* getStageShineArchiveName(const al::LiveActor* actor, const char* sta
const char* getStageShineEmptyArchiveName(const al::LiveActor* actor, const char* stageName) {
s32 worldId =
al::getSceneObj<GameDataHolder>(actor)->getWorldList()->tryFindWorldIndexByMainStageName(
al::getSceneObj<GameDataHolder>(actor)->getWorldList()->tryFindWorldIndexByStageName(
stageName);
return worldId == GameDataFunction::getWorldIndexPeach() ? "PowerStarEmpty" : "ShineEmpty";