mirror of
https://github.com/MonsterDruide1/OdysseyDecomp
synced 2026-04-23 09:04:21 +00:00
Merge bea6449f99 into 0f550e5aae
This commit is contained in:
commit
7ac21c13a6
|
|
@ -50617,27 +50617,27 @@ Item/ShineFukankunWatchObj.o:
|
|||
- offset: 0x1d5f04
|
||||
size: 124
|
||||
label: _ZN21ShineFukankunWatchObjC2EPKc
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
- offset: 0x1d5f80
|
||||
size: 136
|
||||
label: _ZN21ShineFukankunWatchObjC1EPKc
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
- offset: 0x1d6008
|
||||
size: 188
|
||||
label: _ZN21ShineFukankunWatchObj4initERKN2al13ActorInitInfoE
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
- offset: 0x1d60c4
|
||||
size: 20
|
||||
label: _ZN21ShineFukankunWatchObj18initAfterPlacementEv
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
- offset: 0x1d60d8
|
||||
size: 140
|
||||
label: _ZN21ShineFukankunWatchObj7exeWaitEv
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
- offset: 0x1d6164
|
||||
size: 144
|
||||
label: _ZNK12_GLOBAL__N_128ShineFukankunWatchObjNrvWait7executeEPN2al11NerveKeeperE
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
guess: true
|
||||
Item/ShineInfo.o:
|
||||
'.text':
|
||||
|
|
@ -135376,7 +135376,7 @@ Scene/ProjectActorFactory.o:
|
|||
- offset: 0x4bbb5c
|
||||
size: 52
|
||||
label: _ZN2al19createActorFunctionI21ShineFukankunWatchObjEEPNS_9LiveActorEPKc
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
lazy: true
|
||||
- offset: 0x4bbb90
|
||||
size: 52
|
||||
|
|
|
|||
55
src/Item/ShineFukankunWatchObj.cpp
Normal file
55
src/Item/ShineFukankunWatchObj.cpp
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
#include "Item/ShineFukankunWatchObj.h"
|
||||
|
||||
#include <math/seadMatrix.h>
|
||||
#include <math/seadVector.h>
|
||||
|
||||
#include "Library/LiveActor/ActorClippingFunction.h"
|
||||
#include "Library/LiveActor/ActorInitFunction.h"
|
||||
#include "Library/LiveActor/ActorInitUtil.h"
|
||||
#include "Library/LiveActor/ActorPoseUtil.h"
|
||||
#include "Library/Nerve/NerveSetupUtil.h"
|
||||
|
||||
#include "Item/Shine.h"
|
||||
#include "MapObj/FukankunZoomTargetFunction.h"
|
||||
#include "Util/ItemUtil.h"
|
||||
|
||||
namespace {
|
||||
NERVE_IMPL(ShineFukankunWatchObj, Wait);
|
||||
|
||||
NERVES_MAKE_NOSTRUCT(ShineFukankunWatchObj, Wait);
|
||||
} // namespace
|
||||
|
||||
ShineFukankunWatchObj::ShineFukankunWatchObj(const char* name) : al::LiveActor(name) {}
|
||||
|
||||
void ShineFukankunWatchObj::init(const al::ActorInitInfo& info) {
|
||||
al::initActorSceneInfo(this, info);
|
||||
al::initActorPoseTQSV(this);
|
||||
al::initActorSRT(this, info);
|
||||
al::initExecutorWatchObj(this, info);
|
||||
al::initActorClipping(this, info);
|
||||
al::setClippingInfo(this, 500.0f, nullptr);
|
||||
al::initNerve(this, &Wait, 0);
|
||||
FukankunZoomTargetFunction::declareUseFukankunZoomTargetActor(this);
|
||||
|
||||
mShine = rs::initShineByPlacementInfo(info);
|
||||
mShine->initAppearDemoFromHost(info, al::getTrans(this));
|
||||
|
||||
makeActorAlive();
|
||||
}
|
||||
|
||||
void ShineFukankunWatchObj::initAfterPlacement() {
|
||||
return FukankunZoomTargetFunction::registerFukankunZoomTargetActor(
|
||||
this, 0, sead::Vector3f::zero, nullptr);
|
||||
}
|
||||
|
||||
void ShineFukankunWatchObj::exeWait() {
|
||||
if (FukankunZoomTargetFunction::getWatchCount(this) >= 121) {
|
||||
const sead::Matrix34f* linkedShineMtx = nullptr;
|
||||
if (FukankunZoomTargetFunction::tryGetActiveFukankunLinkedShineMtx(&linkedShineMtx, this)) {
|
||||
sead::Vector3f linkedShinePos;
|
||||
linkedShineMtx->getTranslation(linkedShinePos);
|
||||
mShine->appearWarp(al::getTrans(this), linkedShinePos);
|
||||
kill();
|
||||
}
|
||||
}
|
||||
}
|
||||
20
src/Item/ShineFukankunWatchObj.h
Normal file
20
src/Item/ShineFukankunWatchObj.h
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
#pragma once
|
||||
|
||||
#include "Library/LiveActor/LiveActor.h"
|
||||
|
||||
class Shine;
|
||||
|
||||
class ShineFukankunWatchObj : public al::LiveActor {
|
||||
public:
|
||||
ShineFukankunWatchObj(const char* name);
|
||||
|
||||
void init(const al::ActorInitInfo& info) override;
|
||||
void initAfterPlacement() override;
|
||||
|
||||
void exeWait();
|
||||
|
||||
private:
|
||||
Shine* mShine = nullptr;
|
||||
};
|
||||
|
||||
static_assert(sizeof(ShineFukankunWatchObj) == 0x110);
|
||||
|
|
@ -66,6 +66,7 @@
|
|||
#include "Item/LifeMaxUpItem2D.h"
|
||||
#include "Item/LifeUpItem.h"
|
||||
#include "Item/LifeUpItem2D.h"
|
||||
#include "Item/ShineFukankunWatchObj.h"
|
||||
#include "MapObj/AllDeadWatcherWithShine.h"
|
||||
#include "MapObj/AnagramAlphabet.h"
|
||||
#include "MapObj/BlockEmpty2D.h"
|
||||
|
|
@ -537,7 +538,7 @@ const al::NameToCreator<al::ActorCreatorFunction> sProjectActorFactoryEntries[]
|
|||
{"ShineWithAppearCamera", nullptr},
|
||||
{"ShineChipWatcher", nullptr},
|
||||
{"ShineDot", nullptr},
|
||||
{"ShineFukankunWatchObj", nullptr},
|
||||
{"ShineFukankunWatchObj", al::createActorFunction<ShineFukankunWatchObj>},
|
||||
{"ShineTowerRocket", al::createActorFunction<ShineTowerRocket>},
|
||||
{"ShopBgmPlayer", nullptr},
|
||||
{"ShopMark", nullptr},
|
||||
|
|
|
|||
Loading…
Reference in a new issue