2022-06-16 21:33:18 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <sead/math/seadMatrix.h>
|
|
|
|
#include <sead/math/seadQuat.h>
|
|
|
|
#include <sead/math/seadVector.h>
|
|
|
|
#include <sead/prim/seadSafeString.h>
|
|
|
|
#include "al/LiveActor/LiveActor.h"
|
|
|
|
#include "al/async/FunctorBase.h"
|
|
|
|
#include "al/collision/Collider.h"
|
2022-08-10 21:11:52 +00:00
|
|
|
#include "game/Player/PlayerActorBase.h"
|
2022-06-16 21:33:18 +00:00
|
|
|
#include "game/Player/PlayerActorHakoniwa.h"
|
|
|
|
#include "al/layout/LayoutActor.h"
|
|
|
|
#include "al/layout/LayoutInitInfo.h"
|
|
|
|
|
|
|
|
typedef unsigned int uint;
|
|
|
|
|
|
|
|
namespace al {
|
|
|
|
|
|
|
|
void tryInitFixedModelGpuBuffer(const LiveActor*);
|
|
|
|
void offUpdateMovementEffectAudioCollisionSensor(const LiveActor*);
|
|
|
|
void hideModel(LiveActor *);
|
|
|
|
void hideModelIfShow(const LiveActor*);
|
|
|
|
void showModelIfHide(const LiveActor*);
|
|
|
|
void setModelAlphaMask(const LiveActor*, float);
|
|
|
|
void resetPosition(const LiveActor*);
|
|
|
|
void onSyncClippingSubActor(LiveActor*, const LiveActor*);
|
|
|
|
void onSyncHideSubActor(LiveActor*, const LiveActor*);
|
|
|
|
void onSyncAlphaMaskSubActor(LiveActor*, const LiveActor*);
|
2022-09-04 09:23:02 +00:00
|
|
|
void onSyncAppearSubActor(al::LiveActor *,al::LiveActor const*);
|
|
|
|
void onSyncAppearSubActor(al::LiveActor *,char const*);
|
|
|
|
void onSyncAppearSubActorAll(al::LiveActor *);
|
2022-06-16 21:33:18 +00:00
|
|
|
void setMaterialProgrammable(LiveActor*);
|
|
|
|
void startAction(LiveActor*, char const*);
|
|
|
|
void startAction(IUseLayoutAction*, const char *, const char *);
|
|
|
|
void startFreezeActionEnd(IUseLayoutAction *,char const*,char const*);
|
2022-07-08 05:36:29 +00:00
|
|
|
void startHitReaction(const LiveActor *, char const*);
|
2022-06-16 21:33:18 +00:00
|
|
|
void invalidateClipping(const LiveActor *);
|
|
|
|
void validateClipping(const LiveActor *);
|
|
|
|
void setNerveAtActionEnd(LiveActor*, const al::Nerve*);
|
|
|
|
void updateMaterialCodeWater(LiveActor *);
|
|
|
|
void updateMaterialCodeWater(LiveActor *, bool);
|
|
|
|
void appearItem(const LiveActor *);
|
|
|
|
void turnToTarget(LiveActor*, const sead::Vector3f&, float);
|
|
|
|
void turnToTarget(LiveActor*, const al::LiveActor *, float);
|
|
|
|
|
|
|
|
void expandClippingRadiusByShadowLength(LiveActor *,sead::Vector3f *, float);
|
2022-09-04 09:23:02 +00:00
|
|
|
void addPartialSklAnimPartsListRecursive(al::LiveActor*, char const*, int);
|
|
|
|
void setMaterialProgrammable(al::LiveActor *);
|
2022-06-16 21:33:18 +00:00
|
|
|
|
|
|
|
void initJointLocalXRotator(const LiveActor *,const float *,const char *);
|
|
|
|
void initJointLocalYRotator(const LiveActor *,const float *,const char *);
|
|
|
|
void initJointLocalZRotator(const LiveActor*, const float*, const char*);
|
|
|
|
|
|
|
|
void initActorPoseTRSV(al::LiveActor *);
|
|
|
|
void initActorPoseTRMSV(al::LiveActor *);
|
|
|
|
void initActorPoseTRGMSV(al::LiveActor *);
|
|
|
|
void initActorPoseTFSV(al::LiveActor *);
|
|
|
|
void initActorPoseTFUSV(al::LiveActor *);
|
|
|
|
void initActorPoseTFGSV(al::LiveActor *);
|
|
|
|
void initActorPoseTQSV(al::LiveActor *);
|
|
|
|
void initActorPoseTQGSV(al::LiveActor *);
|
|
|
|
void initActorPoseTQGMSV(al::LiveActor *);
|
|
|
|
void initActorPoseT(al::LiveActor *,sead::Vector3<float> const&);
|
2022-09-04 09:23:02 +00:00
|
|
|
void initActorPoseTR(al::LiveActor*, sead::Vector3<float> const&, sead::Vector3<float> const&);
|
|
|
|
|
|
|
|
void initActorSRT(al::LiveActor*, al::ActorInitInfo const&);
|
|
|
|
void initActorSceneInfo(al::LiveActor *, al::ActorInitInfo const&);
|
|
|
|
void initActorModelKeeper(al::LiveActor *,al::ActorInitInfo const&,al::ActorResource const*,int);
|
|
|
|
void initActorModelKeeper(al::LiveActor*, al::ActorInitInfo const&, char const*, int,
|
|
|
|
char const*);
|
|
|
|
void initActorEffectKeeper(al::LiveActor*, al::ActorInitInfo const&, char const*);
|
|
|
|
void initActorActionKeeper(al::LiveActor *,al::ActorInitInfo const&,char const*,char const*);
|
|
|
|
void initActorActionKeeper(al::LiveActor*, al::ActorResource const*, char const*, char const*);
|
|
|
|
void initActorClipping(al::LiveActor *,al::ActorInitInfo const&);
|
|
|
|
void initPartialSklAnim(al::LiveActor*, int, int, int);
|
|
|
|
|
|
|
|
bool tryGetActorInitFileIterAndName(al::ByamlIter *,sead::BufferedSafeStringBase<char> *,al::Resource const*,char const*,char const*);
|
|
|
|
bool tryGetActorInitFileIter(al::ByamlIter *,al::Resource const*,char const*,char const*);
|
|
|
|
bool tryGetActorInitFileIterAndName(al::ByamlIter *,sead::BufferedSafeStringBase<char> *,al::LiveActor const*,char const*,char const*);
|
|
|
|
bool tryGetActorInitFileIter(al::ByamlIter *,al::LiveActor const*,char const*,char const*);
|
2022-06-16 21:33:18 +00:00
|
|
|
|
|
|
|
void initLayoutPartsActor(LayoutActor*, LayoutActor*, const LayoutInitInfo&, char const*,
|
|
|
|
char const*);
|
|
|
|
void initCreateActorWithPlacementInfo(LiveActor*, const al::ActorInitInfo&);
|
|
|
|
void initMapPartsActor(LiveActor *, const al::ActorInitInfo &, const char *);
|
|
|
|
void initActorWithArchiveName(LiveActor*, const al::ActorInitInfo&, const sead::SafeString&, const char*);
|
|
|
|
void initJointControllerKeeper(const LiveActor*, int);
|
|
|
|
void initJointGlobalQuatController(const LiveActor*, const sead::Quatf*, const char*);
|
|
|
|
|
|
|
|
void appearBreakModelRandomRotateY(LiveActor *);
|
|
|
|
|
|
|
|
bool isNear(const LiveActor *, const LiveActor *, float);
|
|
|
|
bool isClipped(const LiveActor*);
|
|
|
|
bool isDead(const LiveActor*);
|
|
|
|
bool isAlive(const LiveActor*);
|
|
|
|
bool isHideModel(const LiveActor*);
|
|
|
|
bool isEffectEmitting(const IUseEffectKeeper*, const char*);
|
|
|
|
bool isActionEnd(const LiveActor*);
|
|
|
|
bool isActionPlaying(const LiveActor*, const char *);
|
|
|
|
bool isInvalidClipping(const LiveActor*);
|
|
|
|
bool isInWater(const LiveActor *);
|
|
|
|
bool isInWaterArea(const LiveActor *);
|
|
|
|
bool isOnGround(const LiveActor *, unsigned int);
|
|
|
|
bool isOnStageSwitch(IUseStageSwitch const *, const char *);
|
|
|
|
bool isValidStageSwitch(IUseStageSwitch const *, const char *);
|
|
|
|
bool isFallNextMove(const LiveActor *, const sead::Vector3f &, float, float);
|
|
|
|
bool isInDeathArea(LiveActor *);
|
|
|
|
bool isCollidedFloorCode(LiveActor *, const char *);
|
|
|
|
bool isNoCollide(LiveActor const *);
|
|
|
|
bool isNearPlayer(const LiveActor*, float);
|
|
|
|
bool isFallOrDamageCodeNextMove(const LiveActor *, const sead::Vector3f &, float, float);
|
|
|
|
bool isFaceToTargetDegreeH(const LiveActor*, const sead::Vector3f &, const sead::Vector3f &, float);
|
|
|
|
|
|
|
|
bool tryOnSwitchDeadOn(IUseStageSwitch *);
|
|
|
|
bool trySyncStageSwitchAppear(LiveActor *);
|
2022-08-10 21:11:52 +00:00
|
|
|
PlayerActorBase* tryFindNearestPlayerActor(const LiveActor *);
|
2022-06-16 21:33:18 +00:00
|
|
|
bool tryFindNearestPlayerPos(sead::Vector3f *, const LiveActor *);
|
|
|
|
bool tryAddRippleMiddle(LiveActor*);
|
|
|
|
bool tryStartActionIfNotPlaying(LiveActor*, const char*);
|
|
|
|
|
|
|
|
float getClippingRadius(al::LiveActor const*);
|
|
|
|
sead::Vector3f *getClippingObb(al::LiveActor *);
|
|
|
|
sead::Vector3f *getClippingCenterPos(al::LiveActor const*);
|
|
|
|
|
|
|
|
sead::Vector3f& getTrans(const LiveActor*);
|
|
|
|
sead::Vector3f* getTransPtr(LiveActor*);
|
|
|
|
sead::Vector3f& getGravity(const LiveActor*);
|
|
|
|
sead::Vector3f* getGravityPtr(const LiveActor*);
|
|
|
|
sead::Vector3f& getFront(const LiveActor*);
|
|
|
|
sead::Vector3f* getFrontPtr(LiveActor*);
|
|
|
|
sead::Vector3f& getVelocity(const LiveActor*);
|
|
|
|
sead::Vector3f* getVelocityPtr(LiveActor*);
|
|
|
|
sead::Quatf& getQuat(al::LiveActor const*);
|
|
|
|
sead::Quatf* getQuatPtr(al::LiveActor *);
|
|
|
|
Collider* getActorCollider(LiveActor*);
|
|
|
|
|
|
|
|
sead::Matrix34f* getJointMtxPtr(const LiveActor*, const char*); //return type might be const
|
|
|
|
|
|
|
|
sead::Quatf* getQuatPtr(LiveActor *);
|
|
|
|
|
|
|
|
sead::Vector3f* getOnGroundNormal(const LiveActor *, uint);
|
|
|
|
|
|
|
|
void scaleVelocity(LiveActor*, float);
|
|
|
|
void scaleVelocityDirection(LiveActor*, sead::Vector3f const&, float);
|
|
|
|
|
|
|
|
void setClippingObb(LiveActor*, sead::BoundBox3f const&);
|
|
|
|
void setClippingInfo(LiveActor*, float, sead::Vector3f const*);
|
|
|
|
void setClippingNearDistance(LiveActor *,float);
|
|
|
|
|
|
|
|
void setTrans(LiveActor *, sead::Vector3f const &);
|
|
|
|
void setVelocity(LiveActor*, sead::Vector3f const&);
|
|
|
|
void setVelocity(LiveActor*, float, float, float);
|
|
|
|
void setVelocityX(LiveActor*, float);
|
|
|
|
void setVelocityY(LiveActor*, float);
|
|
|
|
void setVelocityZ(LiveActor*, float);
|
|
|
|
void setVelocityZero(LiveActor*);
|
|
|
|
void setVelocityBlowAttackAndTurnToTarget(LiveActor *, sead::Vector3f const&,
|
|
|
|
float, float);
|
|
|
|
void setActionFrameRate(LiveActor*, float);
|
|
|
|
|
|
|
|
void addVelocityToGravityFittedGround(LiveActor*, float, unsigned int);
|
|
|
|
void addVelocityToGravity(LiveActor*, float);
|
|
|
|
void addVelocityToDirection(LiveActor*, sead::Vector3f const &, float);
|
|
|
|
void addVelocity(LiveActor*, sead::Vector3f const &);
|
|
|
|
void addVelocityX(LiveActor*, float);
|
|
|
|
void addVelocityY(LiveActor*, float);
|
|
|
|
void addVelocityZ(LiveActor*, float);
|
|
|
|
|
|
|
|
void calcFrontDir(sead::Vector3f *, const LiveActor *);
|
|
|
|
void calcQuat(sead::Quatf*, const LiveActor*);
|
|
|
|
void calcJointFrontDir(sead::Vector3f*, const LiveActor*, const char*);
|
|
|
|
void calcJointPos(sead::Vector3f*, const LiveActor*, const char*);
|
|
|
|
|
|
|
|
void makeQuatUpFront(sead::Quatf *, sead::Vector3f const &, sead::Vector3f const &);
|
|
|
|
|
|
|
|
void rotateQuatYDirDegree(LiveActor *, float);
|
|
|
|
|
|
|
|
f32* findActorParamF32(const LiveActor*, const char*);
|
|
|
|
|
|
|
|
s32* findActorParamS32(const LiveActor*, const char*);
|
|
|
|
|
|
|
|
LiveActor* getSubActor(const LiveActor*, const char*); //NOTE: unknown return type
|
|
|
|
|
|
|
|
bool listenStageSwitchOnAppear(IUseStageSwitch *, al::FunctorBase const &functor);
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace rs {
|
|
|
|
|
|
|
|
sead::Vector3f* getPlayerPos(const al::LiveActor*);
|
|
|
|
|
|
|
|
}
|