mirror of
https://github.com/MonsterDruide1/OdysseyDecomp.git
synced 2024-11-23 13:29:49 +00:00
Additions by Sanae (9fc45c7)
Co-authored-by: Sanae <atmatm6000@outlook.com>
This commit is contained in:
parent
2d093584f2
commit
62ce79a118
@ -82,7 +82,7 @@ Address,Quality,Size,Name
|
||||
0x00000071000025b8,U,000008,_ZNK21HelpAmiiboCountUpCoin14getNerveKeeperEv
|
||||
0x00000071000025c0,U,000008,_ZThn32_NK21HelpAmiiboCountUpCoin14getNerveKeeperEv
|
||||
0x00000071000025c8,U,000004,nullsub_1
|
||||
0x00000071000025cc,U,000004,_ZNK2al5Nerve12executeOnEndEPNS_11NerveKeeperE
|
||||
0x00000071000025cc,O,000004,_ZNK2al5Nerve12executeOnEndEPNS_11NerveKeeperE
|
||||
0x00000071000025d0,U,000084,
|
||||
0x0000007100002624,U,000020,
|
||||
0x0000007100002638,U,000060,_ZN18HelpAmiiboDirectorC2Ev
|
||||
@ -4772,15 +4772,15 @@ Address,Quality,Size,Name
|
||||
0x00000071000b71f8,O,000060,_ZN16MofumofuWarpHole11exeHideMoveEv
|
||||
0x00000071000b7234,m,000420,_ZN16MofumofuWarpHole11exeDashSignEv
|
||||
0x00000071000b73d8,O,000064,_ZN16MofumofuWarpHole14exeDashSignEndEv
|
||||
0x00000071000b7418,O,000068,_ZN12_GLOBAL__N_125MofumofuWarpHoleNrvAppear7executeEPN2al11NerveKeeperE
|
||||
0x00000071000b745c,O,000100,_ZN12_GLOBAL__N_128MofumofuWarpHoleNrvDisappear7executeEPN2al11NerveKeeperE
|
||||
0x00000071000b74c0,O,000124,_ZN12_GLOBAL__N_124MofumofuWarpHoleNrvClose7executeEPN2al11NerveKeeperE
|
||||
0x00000071000b753c,O,000124,_ZN12_GLOBAL__N_136MofumofuWarpHoleNrvCloseAndDisappear7executeEPN2al11NerveKeeperE
|
||||
0x00000071000b75b8,O,000064,_ZN12_GLOBAL__N_127MofumofuWarpHoleNrvHideMove7executeEPN2al11NerveKeeperE
|
||||
0x00000071000b75f8,O,000008,_ZN12_GLOBAL__N_127MofumofuWarpHoleNrvDashSign7executeEPN2al11NerveKeeperE
|
||||
0x00000071000b7600,O,000064,_ZN12_GLOBAL__N_123MofumofuWarpHoleNrvWait7executeEPN2al11NerveKeeperE
|
||||
0x00000071000b7640,O,000004,_ZN12_GLOBAL__N_127MofumofuWarpHoleNrvHideWait7executeEPN2al11NerveKeeperE
|
||||
0x00000071000b7644,O,000068,_ZN12_GLOBAL__N_130MofumofuWarpHoleNrvDashSignEnd7executeEPN2al11NerveKeeperE
|
||||
0x00000071000b7418,U,000068,StartOfNervesForMofumofuWarpHole
|
||||
0x00000071000b745c,U,000100,
|
||||
0x00000071000b74c0,U,000124,
|
||||
0x00000071000b753c,U,000124,
|
||||
0x00000071000b75b8,U,000064,
|
||||
0x00000071000b75f8,U,000008,
|
||||
0x00000071000b7600,U,000064,
|
||||
0x00000071000b7640,U,000004,
|
||||
0x00000071000b7644,U,000068,EndOfNervesForMofumofuWarpHole
|
||||
0x00000071000b7688,U,000140,_ZN22MultiGateKeeperBonfire4initERKN2al13ActorInitInfoE
|
||||
0x00000071000b7714,U,000076,_ZN22MultiGateKeeperBonfire6deadGKEv
|
||||
0x00000071000b7760,U,000136,_ZN22MultiGateKeeperWatcherC2EPKc
|
||||
@ -11521,18 +11521,18 @@ Address,Quality,Size,Name
|
||||
0x00000071001d8d34,U,000100,_ZN12AimingCursor9exeAppearEv
|
||||
0x00000071001d8d98,U,000064,_ZN12AimingCursor7exeWaitEv
|
||||
0x00000071001d8dd8,U,000100,_ZN12AimingCursor6exeEndEv
|
||||
0x00000071001d8e3c,U,000008,_ZNK2al11LayoutActor14getNerveKeeperEv
|
||||
0x00000071001d8e44,U,000048,_ZNK2al11LayoutActor7getNameEv
|
||||
0x00000071001d8e74,U,000008,_ZNK2al11LayoutActor15getEffectKeeperEv
|
||||
0x00000071001d8e7c,U,000008,_ZNK2al11LayoutActor14getAudioKeeperEv
|
||||
0x00000071001d8e84,U,000008,_ZNK2al11LayoutActor21getLayoutActionKeeperEv
|
||||
0x00000071001d8e8c,U,000008,_ZNK2al11LayoutActor15getLayoutKeeperEv
|
||||
0x00000071001d8e94,U,000004,_ZN2al11LayoutActor7controlEv
|
||||
0x00000071001d8e98,U,000056,_ZTv0_n24_NK2al11LayoutActor7getNameEv
|
||||
0x00000071001d8ed0,U,000008,_ZThn8_NK2al11LayoutActor15getLayoutKeeperEv
|
||||
0x00000071001d8ed8,U,000008,_ZThn16_NK2al11LayoutActor21getLayoutActionKeeperEv
|
||||
0x00000071001d8ee0,U,000008,_ZThn40_NK2al11LayoutActor14getAudioKeeperEv
|
||||
0x00000071001d8ee8,U,000008,_ZThn48_NK2al11LayoutActor15getEffectKeeperEv
|
||||
0x00000071001d8e3c,O,000008,_ZNK2al11LayoutActor14getNerveKeeperEv
|
||||
0x00000071001d8e44,O,000048,_ZNK2al11LayoutActor7getNameEv
|
||||
0x00000071001d8e74,O,000008,_ZNK2al11LayoutActor15getEffectKeeperEv
|
||||
0x00000071001d8e7c,O,000008,_ZNK2al11LayoutActor14getAudioKeeperEv
|
||||
0x00000071001d8e84,O,000008,_ZNK2al11LayoutActor21getLayoutActionKeeperEv
|
||||
0x00000071001d8e8c,O,000008,_ZNK2al11LayoutActor15getLayoutKeeperEv
|
||||
0x00000071001d8e94,O,000004,_ZN2al11LayoutActor7controlEv
|
||||
0x00000071001d8e98,O,000056,_ZTv0_n24_NK2al11LayoutActor7getNameEv
|
||||
0x00000071001d8ed0,O,000008,_ZThn8_NK2al11LayoutActor15getLayoutKeeperEv
|
||||
0x00000071001d8ed8,O,000008,_ZThn16_NK2al11LayoutActor21getLayoutActionKeeperEv
|
||||
0x00000071001d8ee0,O,000008,_ZThn40_NK2al11LayoutActor14getAudioKeeperEv
|
||||
0x00000071001d8ee8,O,000008,_ZThn48_NK2al11LayoutActor15getEffectKeeperEv
|
||||
0x00000071001d8ef0,U,000104,
|
||||
0x00000071001d8f58,U,000104,
|
||||
0x00000071001d8fc0,U,000068,
|
||||
@ -33867,8 +33867,8 @@ Address,Quality,Size,Name
|
||||
0x0000007100536cb8,U,000160,_ZNK13HintPhotoData19checkSavedHintPhotoEPKc
|
||||
0x0000007100536d58,U,000172,_ZN13HintPhotoData5writeEPN2al11ByamlWriterE
|
||||
0x0000007100536e04,U,000304,_ZN13HintPhotoData4readERKN2al9ByamlIterE
|
||||
0x0000007100536f34,U,000092,nninitStartup
|
||||
0x0000007100536f90,U,000176,nnMain
|
||||
0x0000007100536f34,O,000092,nninitStartup
|
||||
0x0000007100536f90,O,000176,nnMain
|
||||
0x0000007100537040,U,000760,_ZN13MapDataHolderC1EPK14GameDataHolder
|
||||
0x0000007100537338,U,002224,_ZN13MapDataHolder11loadMapDataEPN2al8ResourceEPKci
|
||||
0x0000007100537be8,U,000208,_ZN13MapDataHolder14tryLoadMapDataEPN2al8ResourceEPKci
|
||||
@ -54835,28 +54835,28 @@ Address,Quality,Size,Name
|
||||
0x00000071008b1684,U,000180,_ZN2al16startHitReactionEPKNS_11LayoutActorEPKcS4_
|
||||
0x00000071008b1738,U,000492,_ZN2al11LayoutActorC2EPKc
|
||||
0x00000071008b1924,U,000340,_ZN2al11LayoutActorC1EPKc
|
||||
0x00000071008b1a78,U,000084,_ZN2al11LayoutActor6appearEv
|
||||
0x00000071008b1a78,O,000084,_ZN2al11LayoutActor6appearEv
|
||||
0x00000071008b1acc,U,000068,_ZN2al11LayoutActor4killEv
|
||||
0x00000071008b1b10,U,000136,_ZN2al11LayoutActor8movementEv
|
||||
0x00000071008b1b98,U,000072,_ZN2al11LayoutActor10syncActionEv
|
||||
0x00000071008b1be0,U,000076,_ZN2al11LayoutActor8calcAnimEb
|
||||
0x00000071008b1c2c,U,000008,_ZN2al11LayoutActor16initLayoutKeeperEPNS_12LayoutKeeperE
|
||||
0x00000071008b1c2c,O,000008,_ZN2al11LayoutActor16initLayoutKeeperEPNS_12LayoutKeeperE
|
||||
0x00000071008b1c34,U,000096,_ZN2al11LayoutActor16initActionKeeperEv
|
||||
0x00000071008b1c94,U,000008,_ZN2al11LayoutActor20initTextPaneAnimatorEPNS_22LayoutTextPaneAnimatorE
|
||||
0x00000071008b1c9c,U,000008,_ZN2al11LayoutActor15initExecuteInfoEPNS_17LayoutExecuteInfoE
|
||||
0x00000071008b1ca4,U,000008,_ZN2al11LayoutActor21initHitReactionKeeperEPNS_17HitReactionKeeperE
|
||||
0x00000071008b1cac,U,000008,_ZN2al11LayoutActor13initSceneInfoEPNS_15LayoutSceneInfoE
|
||||
0x00000071008b1cb4,U,000064,_ZN2al11LayoutActor26initLayoutPartsActorKeeperEi
|
||||
0x00000071008b1cb4,O,000064,_ZN2al11LayoutActor26initLayoutPartsActorKeeperEi
|
||||
0x00000071008b1cf4,U,000032,_ZN2al11LayoutActor16initEffectKeeperEPNS_12EffectKeeperE
|
||||
0x00000071008b1d14,U,000008,_ZN2al11LayoutActor15initAudioKeeperEPNS_11AudioKeeperE
|
||||
0x00000071008b1d1c,U,000076,_ZN2al11LayoutActor9initNerveEPKNS_5NerveEi
|
||||
0x00000071008b1d68,U,000008,_ZN2al11LayoutActor16setMainGroupNameEPKc
|
||||
0x00000071008b1d70,U,000012,_ZNK2al11LayoutActor17getCameraDirectorEv
|
||||
0x00000071008b1d7c,U,000012,_ZThn32_NK2al11LayoutActor17getCameraDirectorEv
|
||||
0x00000071008b1d88,U,000012,_ZNK2al11LayoutActor17getSceneObjHolderEv
|
||||
0x00000071008b1d94,U,000012,_ZThn56_NK2al11LayoutActor17getSceneObjHolderEv
|
||||
0x00000071008b1da0,U,000012,_ZNK2al11LayoutActor16getMessageSystemEv
|
||||
0x00000071008b1dac,U,000012,_ZThn24_NK2al11LayoutActor16getMessageSystemEv
|
||||
0x00000071008b1d70,O,000012,_ZNK2al11LayoutActor17getCameraDirectorEv
|
||||
0x00000071008b1d7c,O,000012,_ZThn32_NK2al11LayoutActor17getCameraDirectorEv
|
||||
0x00000071008b1d88,O,000012,_ZNK2al11LayoutActor17getSceneObjHolderEv
|
||||
0x00000071008b1d94,O,000012,_ZThn56_NK2al11LayoutActor17getSceneObjHolderEv
|
||||
0x00000071008b1da0,O,000012,_ZNK2al11LayoutActor16getMessageSystemEv
|
||||
0x00000071008b1dac,O,000012,_ZThn24_NK2al11LayoutActor16getMessageSystemEv
|
||||
0x00000071008b1db8,U,000080,_ZN2al16LayoutActorGroupC2EPKci
|
||||
0x00000071008b1e08,U,000028,_ZN2al16LayoutActorGroup13registerActorEPNS_11LayoutActorE
|
||||
0x00000071008b1e24,U,000052,_ZNK2al16LayoutActorGroup13findDeadActorEv
|
||||
@ -55067,12 +55067,12 @@ Address,Quality,Size,Name
|
||||
0x00000071008b9854,U,000428,_ZN2al18setTextBoxPaneFontEPN2nn4ui2d4PaneEPKNS0_4font4FontE
|
||||
0x00000071008b9a00,U,000240,_ZN2al23requestCaptureRecursiveEPN2nn4ui2d4PaneE
|
||||
0x00000071008b9af0,U,000004,_ZN4sead22WFormatFixedSafeStringILi2048EED0Ev
|
||||
0x00000071008b9af4,U,000064,_ZN2al22LayoutPartsActorKeeperC2Ei
|
||||
0x00000071008b9af4,O,000064,_ZN2al22LayoutPartsActorKeeperC2Ei
|
||||
0x00000071008b9b34,U,000028,_ZN2al22LayoutPartsActorKeeper18resisterPartsActorEPNS_11LayoutActorE
|
||||
0x00000071008b9b50,U,000080,_ZN2al22LayoutPartsActorKeeper6appearEv
|
||||
0x00000071008b9b50,O,000080,_ZN2al22LayoutPartsActorKeeper6appearEv
|
||||
0x00000071008b9ba0,U,000080,_ZN2al22LayoutPartsActorKeeper4killEv
|
||||
0x00000071008b9bf0,U,000080,_ZN2al22LayoutPartsActorKeeper6updateEv
|
||||
0x00000071008b9c40,U,000096,_ZN2al22LayoutPartsActorKeeper8calcAnimEb
|
||||
0x00000071008b9c40,O,000096,_ZN2al22LayoutPartsActorKeeper8calcAnimEb
|
||||
0x00000071008b9ca0,U,000100,_ZN2al14LayoutResourceC1EPKNS_8ResourceEPKNS_12LayoutSystemEb
|
||||
0x00000071008b9d04,U,000364,_ZN2al14LayoutResource15addResourceLinkEPKNS_8ResourceE
|
||||
0x00000071008b9e70,U,000296,_ZN2al14LayoutResource18FindResourceByNameEPmjPKc
|
||||
@ -56061,9 +56061,9 @@ Address,Quality,Size,Name
|
||||
0x00000071008d97c0,U,000032,_ZN2al29followRotateFrontAxisUpGroundEPNS_9LiveActorE
|
||||
0x00000071008d97e0,U,000364,_ZN2al23followRotateFrontAxisUpEPNS_9LiveActorEPKNS_14CollisionPartsE
|
||||
0x00000071008d994c,O,000032,_ZN2al12ActorFactoryC1EPKc
|
||||
0x00000071008d996c,U,000020,_ZN2al7isAliveEPKNS_9LiveActorE
|
||||
0x00000071008d9980,U,000012,_ZN2al6isDeadEPKNS_9LiveActorE
|
||||
0x00000071008d998c,U,000012,_ZN2al11isNoCollideEPKNS_9LiveActorE
|
||||
0x00000071008d996c,O,000020,_ZN2al7isAliveEPKNS_9LiveActorE
|
||||
0x00000071008d9980,O,000012,_ZN2al6isDeadEPKNS_9LiveActorE
|
||||
0x00000071008d998c,O,000012,_ZN2al11isNoCollideEPKNS_9LiveActorE
|
||||
0x00000071008d9998,U,000012,_ZN2al10onCalcAnimEPNS_9LiveActorE
|
||||
0x00000071008d99a4,U,000016,_ZN2al11offCalcAnimEPNS_9LiveActorE
|
||||
0x00000071008d99b4,U,000020,_ZN2al14validateShadowEPNS_9LiveActorE
|
||||
@ -60048,11 +60048,11 @@ Address,Quality,Size,Name
|
||||
0x0000007100959588,O,000076,_ZN2al13NerveExecutor9initNerveEPKNS_5NerveEi
|
||||
0x00000071009595d4,O,000016,_ZN2al13NerveExecutor11updateNerveEv
|
||||
0x00000071009595e4,U,000092,_ZN2al11NerveKeeperC2EPNS_9IUseNerveEPKNS_5NerveEi
|
||||
0x0000007100959640,U,000172,_ZN2al11NerveKeeper6updateEv
|
||||
0x0000007100959640,O,000172,_ZN2al11NerveKeeper6updateEv
|
||||
0x00000071009596ec,O,000072,_ZN2al11NerveKeeper14tryChangeNerveEv
|
||||
0x0000007100959734,O,000076,_ZN2al11NerveKeeper8setNerveEPKNS_5NerveE
|
||||
0x0000007100959780,O,000020,_ZNK2al11NerveKeeper15getCurrentNerveEv
|
||||
0x0000007100959794,U,000008,_ZN2al11NerveKeeper15initNerveActionEPNS_15NerveActionCtrlE
|
||||
0x0000007100959794,O,000008,_ZN2al11NerveKeeper15initNerveActionEPNS_15NerveActionCtrlE
|
||||
0x000000710095979c,O,000056,_ZN2al14NerveStateBaseC1EPKc
|
||||
0x00000071009597d4,O,000076,_ZN2al14NerveStateBase6updateEv
|
||||
0x0000007100959820,O,000064,_ZN2al14ActorStateBaseC1EPKcPNS_9LiveActorE
|
||||
@ -61884,7 +61884,7 @@ Address,Quality,Size,Name
|
||||
0x00000071009a3a6c,U,000260,_ZN2al26addPlayerAccelInputGravityEPNS_9LiveActorEPN4sead7Vector3IfEERKNS2_7Vector2IfEEfRKS4_PKNS2_8Matrix34IfEE
|
||||
0x00000071009a3b70,U,000156,_ZN2al25tryCalcTouchWorldPosPlaneEPKNS_10IUseCameraEPN4sead7Vector3IfEERKS5_S8_
|
||||
0x00000071009a3c0c,U,000164,_ZN2al27tryCalcTouchWorldPosPlaneXZEPKNS_10IUseCameraEPN4sead7Vector3IfEEf
|
||||
0x00000071009a3cb0,O,000196,_ZN2al12PlayerHolderC2Ei
|
||||
0x00000071009a3cb0,O,000196,_ZN2al12PlayerHolderC1Ei
|
||||
0x00000071009a3d74,O,000064,_ZN2al12PlayerHolder5clearEv
|
||||
0x00000071009a3db4,O,000048,_ZN2al12PlayerHolder14registerPlayerEPNS_9LiveActorEPNS_15PadRumbleKeeperE
|
||||
0x00000071009a3de4,O,000016,_ZNK2al12PlayerHolder9getPlayerEi
|
||||
@ -65971,7 +65971,7 @@ Address,Quality,Size,Name
|
||||
0x0000007100a4cf74,U,000088,_ZN2al12ViewIdHolder9tryCreateERKNS_13PlacementInfoE
|
||||
0x0000007100a4cfcc,U,000248,_ZN2al12ViewIdHolder4initERKNS_13PlacementInfoE
|
||||
0x0000007100a4d0c4,U,000016,_ZNK2al12ViewIdHolder9getViewIdEi
|
||||
0x0000007100a4d0d4,U,000012,_ZN2al12ViewIdHolderC2Ev
|
||||
0x0000007100a4d0d4,O,000012,_ZN2al12ViewIdHolderC2Ev
|
||||
0x0000007100a4d0e0,U,000132,_ZN2al12ViewInfoCtrlC2EPKNS_12PlayerHolderEPKNS_15SceneCameraInfoE
|
||||
0x0000007100a4d164,U,000272,_ZN2al12ViewInfoCtrl13initActorInfoEPNS_17ClippingActorInfoE
|
||||
0x0000007100a4d274,U,000008,_ZN2al12ViewInfoCtrl21initViewCtrlAreaGroupEPKNS_12AreaObjGroupE
|
||||
@ -66379,7 +66379,7 @@ Address,Quality,Size,Name
|
||||
0x0000007100a61a7c,U,000008,_ZN16alSensorFunction19updateHitSensorsAllEPN2al9LiveActorE
|
||||
0x0000007100a61a84,U,000008,_ZN16alSensorFunction15clearHitSensorsEPN2al9LiveActorE
|
||||
0x0000007100a61a8c,U,000096,_ZN16alSensorFunction20findSensorTypeByNameEPKc
|
||||
0x0000007100a61aec,U,000120,_ZN2al14SensorHitGroupC2EiPKc
|
||||
0x0000007100a61aec,O,000120,_ZN2al14SensorHitGroupC2EiPKc
|
||||
0x0000007100a61b64,O,000028,_ZN2al14SensorHitGroup3addEPNS_9HitSensorE
|
||||
0x0000007100a61b80,U,000084,_ZN2al14SensorHitGroup6removeEPNS_9HitSensorE
|
||||
0x0000007100a61bd4,O,000012,_ZNK2al14SensorHitGroup9getSensorEi
|
||||
|
Can't render this file because it is too large.
|
41
lib/al/Library/Area/AreaInitInfo.h
Normal file
41
lib/al/Library/Area/AreaInitInfo.h
Normal file
@ -0,0 +1,41 @@
|
||||
#pragma once
|
||||
|
||||
#include <math/seadMatrix.h>
|
||||
#include <math/seadVector.h>
|
||||
#include "al/Library/HostIO/HioNode.h"
|
||||
|
||||
namespace al {
|
||||
class AudioDirector;
|
||||
class ModelKeeper;
|
||||
class CameraDirector;
|
||||
class AudioEventController;
|
||||
class AudioEffectController;
|
||||
class AudioRequestKeeperSyncedBgm;
|
||||
class AudioMic;
|
||||
class SeKeeper;
|
||||
class BgmKeeper;
|
||||
|
||||
class AudioKeeper : public IUseHioNode {
|
||||
public:
|
||||
AudioKeeper(const AudioDirector*);
|
||||
~AudioKeeper();
|
||||
|
||||
void initSeKeeper(const AudioDirector*, const char*, const sead::Vector3f*,
|
||||
const sead::Matrix34f*, const ModelKeeper*, CameraDirector*);
|
||||
void initBgmKeeper(const AudioDirector*, const char*);
|
||||
void validate();
|
||||
void invalidate();
|
||||
void startClipped();
|
||||
void endClipped();
|
||||
void appear();
|
||||
void kill();
|
||||
|
||||
private:
|
||||
AudioEventController* mAudioEventController;
|
||||
AudioEffectController* mAudioEffectController;
|
||||
AudioRequestKeeperSyncedBgm* mAudioRequestKeeperSyncedBgm;
|
||||
SeKeeper* mSeKeeper;
|
||||
BgmKeeper* mBgmKeeper;
|
||||
AudioMic* mAudioMic;
|
||||
};
|
||||
} // namespace al
|
41
lib/al/Library/Audio/AudioKeeper.h
Normal file
41
lib/al/Library/Audio/AudioKeeper.h
Normal file
@ -0,0 +1,41 @@
|
||||
#pragma once
|
||||
|
||||
#include <math/seadMatrix.h>
|
||||
#include <math/seadVector.h>
|
||||
#include "al/Library/HostIO/HioNode.h"
|
||||
|
||||
namespace al {
|
||||
class AudioDirector;
|
||||
class ModelKeeper;
|
||||
class CameraDirector;
|
||||
class AudioEventController;
|
||||
class AudioEffectController;
|
||||
class AudioRequestKeeperSyncedBgm;
|
||||
class AudioMic;
|
||||
class SeKeeper;
|
||||
class BgmKeeper;
|
||||
|
||||
class AudioKeeper : public IUseHioNode {
|
||||
public:
|
||||
AudioKeeper(const AudioDirector*);
|
||||
~AudioKeeper();
|
||||
|
||||
void initSeKeeper(const AudioDirector*, const char*, const sead::Vector3f*,
|
||||
const sead::Matrix34f*, const ModelKeeper*, CameraDirector*);
|
||||
void initBgmKeeper(const AudioDirector*, const char*);
|
||||
void validate();
|
||||
void invalidate();
|
||||
void startClipped();
|
||||
void endClipped();
|
||||
void appear();
|
||||
void kill();
|
||||
|
||||
private:
|
||||
AudioEventController* mAudioEventController;
|
||||
AudioEffectController* mAudioEffectController;
|
||||
AudioRequestKeeperSyncedBgm* mAudioRequestKeeperSyncedBgm;
|
||||
SeKeeper* mSeKeeper;
|
||||
BgmKeeper* mBgmKeeper;
|
||||
AudioMic* mAudioMic;
|
||||
};
|
||||
} // namespace al
|
20
lib/al/Library/Clipping/ViewIdHolder.h
Normal file
20
lib/al/Library/Clipping/ViewIdHolder.h
Normal file
@ -0,0 +1,20 @@
|
||||
#pragma once
|
||||
|
||||
#include <container/seadBuffer.h>
|
||||
|
||||
namespace al {
|
||||
class PlacementInfo;
|
||||
class PlacementId;
|
||||
|
||||
class ViewIdHolder {
|
||||
public:
|
||||
ViewIdHolder();
|
||||
void init(const PlacementInfo& placementInfo);
|
||||
|
||||
static ViewIdHolder* tryCreate(const PlacementInfo& placementInfo);
|
||||
|
||||
private:
|
||||
s32 mNumPlacements = 0;
|
||||
PlacementId* mPlacementIds = nullptr;
|
||||
};
|
||||
} // namespace al
|
@ -10,186 +10,186 @@ class IUseCamera;
|
||||
bool isValidReplayController(u32);
|
||||
sead::ControllerBase* getReplayController(u32); // return type might be wrong
|
||||
|
||||
bool isPadTypeJoySingle(int);
|
||||
bool isPadTypeJoySingle(s32 port);
|
||||
|
||||
bool isPadTrigger(int, int);
|
||||
bool isPadTriggerA(int);
|
||||
bool isPadTriggerB(int);
|
||||
bool isPadTriggerX(int);
|
||||
bool isPadTriggerY(int);
|
||||
bool isPadTriggerZL(int);
|
||||
bool isPadTriggerZR(int);
|
||||
bool isPadTriggerL(int);
|
||||
bool isPadTriggerR(int);
|
||||
bool isPadTrigger1(int);
|
||||
bool isPadTrigger2(int);
|
||||
bool isPadTriggerUp(int);
|
||||
bool isPadTriggerDown(int);
|
||||
bool isPadTriggerLeft(int);
|
||||
bool isPadTriggerRight(int);
|
||||
bool isPadTriggerLeftUp(int);
|
||||
bool isPadTriggerLeftDown(int);
|
||||
bool isPadTriggerRightUp(int);
|
||||
bool isPadTriggerRightDown(int);
|
||||
bool isPadTriggerHome(int);
|
||||
bool isPadTriggerStart(int);
|
||||
bool isPadTriggerSelect(int);
|
||||
bool isPadTriggerPlus(int);
|
||||
bool isPadTriggerMinus(int);
|
||||
bool isPadTrigger(s32 port, s32 button);
|
||||
bool isPadTriggerA(s32 port);
|
||||
bool isPadTriggerB(s32 port);
|
||||
bool isPadTriggerX(s32 port);
|
||||
bool isPadTriggerY(s32 port);
|
||||
bool isPadTriggerZL(s32 port);
|
||||
bool isPadTriggerZR(s32 port);
|
||||
bool isPadTriggerL(s32 port);
|
||||
bool isPadTriggerR(s32 port);
|
||||
bool isPadTrigger1(s32 port);
|
||||
bool isPadTrigger2(s32 port);
|
||||
bool isPadTriggerUp(s32 port);
|
||||
bool isPadTriggerDown(s32 port);
|
||||
bool isPadTriggerLeft(s32 port);
|
||||
bool isPadTriggerRight(s32 port);
|
||||
bool isPadTriggerLeftUp(s32 port);
|
||||
bool isPadTriggerLeftDown(s32 port);
|
||||
bool isPadTriggerRightUp(s32 port);
|
||||
bool isPadTriggerRightDown(s32 port);
|
||||
bool isPadTriggerHome(s32 port);
|
||||
bool isPadTriggerStart(s32 port);
|
||||
bool isPadTriggerSelect(s32 port);
|
||||
bool isPadTriggerPlus(s32 port);
|
||||
bool isPadTriggerMinus(s32 port);
|
||||
bool isPadTriggerTouch();
|
||||
bool isPadTriggerUpLeftStick(int);
|
||||
bool isPadTriggerDownLeftStick(int);
|
||||
bool isPadTriggerLeftLeftStick(int);
|
||||
bool isPadTriggerRightLeftStick(int);
|
||||
bool isPadTriggerUpRightStick(int);
|
||||
bool isPadTriggerDownRightStick(int);
|
||||
bool isPadTriggerLeftRightStick(int);
|
||||
bool isPadTriggerRightRightStick(int);
|
||||
bool isPadTriggerAnyABXY(int);
|
||||
bool isPadTriggerAny(int);
|
||||
bool isPadTriggerLeftStick(int);
|
||||
bool isPadTriggerRightStick(int);
|
||||
bool isPadTriggerPressLeftStick(int);
|
||||
bool isPadTriggerPressRightStick(int);
|
||||
bool isPadTriggerUiCursorUp(int); // TODO implement below
|
||||
bool isPadTriggerUiCursorDown(int);
|
||||
bool isPadTriggerUiCursorLeft(int);
|
||||
bool isPadTriggerUiCursorRight(int);
|
||||
bool isPadTriggerUpLeftStick(s32 port);
|
||||
bool isPadTriggerDownLeftStick(s32 port);
|
||||
bool isPadTriggerLeftLeftStick(s32 port);
|
||||
bool isPadTriggerRightLeftStick(s32 port);
|
||||
bool isPadTriggerUpRightStick(s32 port);
|
||||
bool isPadTriggerDownRightStick(s32 port);
|
||||
bool isPadTriggerLeftRightStick(s32 port);
|
||||
bool isPadTriggerRightRightStick(s32 port);
|
||||
bool isPadTriggerAnyABXY(s32 port);
|
||||
bool isPadTriggerAny(s32 port);
|
||||
bool isPadTriggerLeftStick(s32 port);
|
||||
bool isPadTriggerRightStick(s32 port);
|
||||
bool isPadTriggerPressLeftStick(s32 port);
|
||||
bool isPadTriggerPressRightStick(s32 port);
|
||||
bool isPadTriggerUiCursorUp(s32 port); // TODO implement below
|
||||
bool isPadTriggerUiCursorDown(s32 port);
|
||||
bool isPadTriggerUiCursorLeft(s32 port);
|
||||
bool isPadTriggerUiCursorRight(s32 port);
|
||||
|
||||
bool isPadRepeatA(int);
|
||||
bool isPadRepeatB(int);
|
||||
bool isPadRepeatX(int);
|
||||
bool isPadRepeatY(int);
|
||||
bool isPadRepeatZL(int);
|
||||
bool isPadRepeatZR(int);
|
||||
bool isPadRepeatL(int);
|
||||
bool isPadRepeatR(int);
|
||||
bool isPadRepeat1(int);
|
||||
bool isPadRepeat2(int);
|
||||
bool isPadRepeatUp(int);
|
||||
bool isPadRepeatDown(int);
|
||||
bool isPadRepeatLeft(int);
|
||||
bool isPadRepeatRight(int);
|
||||
bool isPadRepeatHome(int);
|
||||
bool isPadRepeatStart(int);
|
||||
bool isPadRepeatSelect(int);
|
||||
bool isPadRepeatPlus(int);
|
||||
bool isPadRepeatMinus(int);
|
||||
bool isPadRepeatA(s32 port);
|
||||
bool isPadRepeatB(s32 port);
|
||||
bool isPadRepeatX(s32 port);
|
||||
bool isPadRepeatY(s32 port);
|
||||
bool isPadRepeatZL(s32 port);
|
||||
bool isPadRepeatZR(s32 port);
|
||||
bool isPadRepeatL(s32 port);
|
||||
bool isPadRepeatR(s32 port);
|
||||
bool isPadRepeat1(s32 port);
|
||||
bool isPadRepeat2(s32 port);
|
||||
bool isPadRepeatUp(s32 port);
|
||||
bool isPadRepeatDown(s32 port);
|
||||
bool isPadRepeatLeft(s32 port);
|
||||
bool isPadRepeatRight(s32 port);
|
||||
bool isPadRepeatHome(s32 port);
|
||||
bool isPadRepeatStart(s32 port);
|
||||
bool isPadRepeatSelect(s32 port);
|
||||
bool isPadRepeatPlus(s32 port);
|
||||
bool isPadRepeatMinus(s32 port);
|
||||
bool isPadRepeatTouch();
|
||||
bool isPadRepeatUpLeftStick(int);
|
||||
bool isPadRepeatDownLeftStick(int);
|
||||
bool isPadRepeatLeftLeftStick(int);
|
||||
bool isPadRepeatRightLeftStick(int);
|
||||
bool isPadRepeatUpRightStick(int);
|
||||
bool isPadRepeatDownRightStick(int);
|
||||
bool isPadRepeatLeftRightStick(int);
|
||||
bool isPadRepeatRightRightStick(int);
|
||||
bool isPadRepeatUiCursorUp(int); // TODO implement below
|
||||
bool isPadRepeatUiCursorDown(int);
|
||||
bool isPadRepeatUiCursorLeft(int);
|
||||
bool isPadRepeatUiCursorRight(int);
|
||||
bool isPadRepeatUpLeftStick(s32 port);
|
||||
bool isPadRepeatDownLeftStick(s32 port);
|
||||
bool isPadRepeatLeftLeftStick(s32 port);
|
||||
bool isPadRepeatRightLeftStick(s32 port);
|
||||
bool isPadRepeatUpRightStick(s32 port);
|
||||
bool isPadRepeatDownRightStick(s32 port);
|
||||
bool isPadRepeatLeftRightStick(s32 port);
|
||||
bool isPadRepeatRightRightStick(s32 port);
|
||||
bool isPadRepeatUiCursorUp(s32 port); // TODO implement below
|
||||
bool isPadRepeatUiCursorDown(s32 port);
|
||||
bool isPadRepeatUiCursorLeft(s32 port);
|
||||
bool isPadRepeatUiCursorRight(s32 port);
|
||||
|
||||
bool isPadHoldPressLeftStick(int);
|
||||
bool isPadHoldPressRightStick(int);
|
||||
bool isPadHold(int, int);
|
||||
bool isPadHoldA(int);
|
||||
bool isPadHoldB(int);
|
||||
bool isPadHoldX(int);
|
||||
bool isPadHoldY(int);
|
||||
bool isPadHoldZL(int);
|
||||
bool isPadHoldZR(int);
|
||||
bool isPadHoldL(int);
|
||||
bool isPadHoldR(int);
|
||||
bool isPadHold1(int);
|
||||
bool isPadHold2(int);
|
||||
bool isPadHoldUp(int);
|
||||
bool isPadHoldDown(int);
|
||||
bool isPadHoldLeft(int);
|
||||
bool isPadHoldRight(int);
|
||||
bool isPadHoldLeftUp(int);
|
||||
bool isPadHoldLeftDown(int);
|
||||
bool isPadHoldRightUp(int);
|
||||
bool isPadHoldRightDown(int);
|
||||
bool isPadHoldHome(int);
|
||||
bool isPadHoldStart(int);
|
||||
bool isPadHoldSelect(int);
|
||||
bool isPadHoldPlus(int);
|
||||
bool isPadHoldMinus(int);
|
||||
bool isPadHoldAny(int);
|
||||
bool isPadHoldAnyWithoutStick(int);
|
||||
bool isPadHoldPressLeftStick(s32 port);
|
||||
bool isPadHoldPressRightStick(s32 port);
|
||||
bool isPadHold(s32, s32);
|
||||
bool isPadHoldA(s32 port);
|
||||
bool isPadHoldB(s32 port);
|
||||
bool isPadHoldX(s32 port);
|
||||
bool isPadHoldY(s32 port);
|
||||
bool isPadHoldZL(s32 port);
|
||||
bool isPadHoldZR(s32 port);
|
||||
bool isPadHoldL(s32 port);
|
||||
bool isPadHoldR(s32 port);
|
||||
bool isPadHold1(s32 port);
|
||||
bool isPadHold2(s32 port);
|
||||
bool isPadHoldUp(s32 port);
|
||||
bool isPadHoldDown(s32 port);
|
||||
bool isPadHoldLeft(s32 port);
|
||||
bool isPadHoldRight(s32 port);
|
||||
bool isPadHoldLeftUp(s32 port);
|
||||
bool isPadHoldLeftDown(s32 port);
|
||||
bool isPadHoldRightUp(s32 port);
|
||||
bool isPadHoldRightDown(s32 port);
|
||||
bool isPadHoldHome(s32 port);
|
||||
bool isPadHoldStart(s32 port);
|
||||
bool isPadHoldSelect(s32 port);
|
||||
bool isPadHoldPlus(s32 port);
|
||||
bool isPadHoldMinus(s32 port);
|
||||
bool isPadHoldAny(s32 port);
|
||||
bool isPadHoldAnyWithoutStick(s32 port);
|
||||
bool isPadHoldTouch();
|
||||
bool isPadHoldUpLeftStick(int);
|
||||
bool isPadHoldDownLeftStick(int);
|
||||
bool isPadHoldLeftLeftStick(int);
|
||||
bool isPadHoldRightLeftStick(int);
|
||||
bool isPadHoldUpRightStick(int);
|
||||
bool isPadHoldDownRightStick(int);
|
||||
bool isPadHoldLeftRightStick(int);
|
||||
bool isPadHoldRightRightStick(int);
|
||||
bool isPadHoldLeftStick(int);
|
||||
bool isPadHoldRightStick(int);
|
||||
bool isPadHoldUiCursorUp(int);
|
||||
bool isPadHoldUiCursorDown(int);
|
||||
bool isPadHoldUiCursorLeft(int);
|
||||
bool isPadHoldUiCursorRight(int);
|
||||
bool isPadHoldUpLeftStick(s32 port);
|
||||
bool isPadHoldDownLeftStick(s32 port);
|
||||
bool isPadHoldLeftLeftStick(s32 port);
|
||||
bool isPadHoldRightLeftStick(s32 port);
|
||||
bool isPadHoldUpRightStick(s32 port);
|
||||
bool isPadHoldDownRightStick(s32 port);
|
||||
bool isPadHoldLeftRightStick(s32 port);
|
||||
bool isPadHoldRightRightStick(s32 port);
|
||||
bool isPadHoldLeftStick(s32 port);
|
||||
bool isPadHoldRightStick(s32 port);
|
||||
bool isPadHoldUiCursorUp(s32 port);
|
||||
bool isPadHoldUiCursorDown(s32 port);
|
||||
bool isPadHoldUiCursorLeft(s32 port);
|
||||
bool isPadHoldUiCursorRight(s32 port);
|
||||
|
||||
bool isPadRelease(int, int);
|
||||
bool isPadReleaseA(int);
|
||||
bool isPadReleaseB(int);
|
||||
bool isPadReleaseX(int);
|
||||
bool isPadReleaseY(int);
|
||||
bool isPadReleaseZL(int);
|
||||
bool isPadReleaseZR(int);
|
||||
bool isPadReleaseL(int);
|
||||
bool isPadReleaseR(int);
|
||||
bool isPadRelease1(int);
|
||||
bool isPadRelease2(int);
|
||||
bool isPadReleaseUp(int);
|
||||
bool isPadReleaseDown(int);
|
||||
bool isPadReleaseLeft(int);
|
||||
bool isPadReleaseRight(int);
|
||||
bool isPadReleaseHome(int);
|
||||
bool isPadReleaseStart(int);
|
||||
bool isPadReleaseSelect(int);
|
||||
bool isPadReleasePlus(int);
|
||||
bool isPadReleaseMinus(int);
|
||||
bool isPadRelease(s32, s32);
|
||||
bool isPadReleaseA(s32 port);
|
||||
bool isPadReleaseB(s32 port);
|
||||
bool isPadReleaseX(s32 port);
|
||||
bool isPadReleaseY(s32 port);
|
||||
bool isPadReleaseZL(s32 port);
|
||||
bool isPadReleaseZR(s32 port);
|
||||
bool isPadReleaseL(s32 port);
|
||||
bool isPadReleaseR(s32 port);
|
||||
bool isPadRelease1(s32 port);
|
||||
bool isPadRelease2(s32 port);
|
||||
bool isPadReleaseUp(s32 port);
|
||||
bool isPadReleaseDown(s32 port);
|
||||
bool isPadReleaseLeft(s32 port);
|
||||
bool isPadReleaseRight(s32 port);
|
||||
bool isPadReleaseHome(s32 port);
|
||||
bool isPadReleaseStart(s32 port);
|
||||
bool isPadReleaseSelect(s32 port);
|
||||
bool isPadReleasePlus(s32 port);
|
||||
bool isPadReleaseMinus(s32 port);
|
||||
bool isPadReleaseTouch();
|
||||
bool isPadReleaseUpLeftStick(int);
|
||||
bool isPadReleaseDownLeftStick(int);
|
||||
bool isPadReleaseLeftLeftStick(int);
|
||||
bool isPadReleaseRightLeftStick(int);
|
||||
bool isPadReleaseUpRightStick(int);
|
||||
bool isPadReleaseDownRightStick(int);
|
||||
bool isPadReleaseLeftRightStick(int);
|
||||
bool isPadReleaseRightRightStick(int);
|
||||
bool isPadReleaseUiCursorUp(int); // TODO implement below
|
||||
bool isPadReleaseUiCursorDown(int);
|
||||
bool isPadReleaseUiCursorLeft(int);
|
||||
bool isPadReleaseUiCursorRight(int);
|
||||
bool isPadReleaseUpLeftStick(s32 port);
|
||||
bool isPadReleaseDownLeftStick(s32 port);
|
||||
bool isPadReleaseLeftLeftStick(s32 port);
|
||||
bool isPadReleaseRightLeftStick(s32 port);
|
||||
bool isPadReleaseUpRightStick(s32 port);
|
||||
bool isPadReleaseDownRightStick(s32 port);
|
||||
bool isPadReleaseLeftRightStick(s32 port);
|
||||
bool isPadReleaseRightRightStick(s32 port);
|
||||
bool isPadReleaseUiCursorUp(s32 port); // TODO implement below
|
||||
bool isPadReleaseUiCursorDown(s32 port);
|
||||
bool isPadReleaseUiCursorLeft(s32 port);
|
||||
bool isPadReleaseUiCursorRight(s32 port);
|
||||
|
||||
const sead::Vector2f& getLeftStick(int);
|
||||
const sead::Vector2f& getRightStick(int);
|
||||
const sead::Vector2f& getLeftStick(s32 port);
|
||||
const sead::Vector2f& getRightStick(s32 port);
|
||||
|
||||
void getPadCrossDir(sead::Vector2f*, int);
|
||||
void getPadCrossDirSideways(sead::Vector2f*, int);
|
||||
void getPadCrossDir(sead::Vector2f*, s32);
|
||||
void getPadCrossDirSideways(sead::Vector2f*, s32);
|
||||
|
||||
void calcTouchScreenPos(sead::Vector2f*);
|
||||
void calcTouchLayoutPos(sead::Vector2f*);
|
||||
|
||||
bool isTouchPosInRect(const sead::Vector2f&, const sead::Vector2f&);
|
||||
bool isTouchPosInCircle(const sead::Vector2f&, float);
|
||||
bool isTouchPosInCircleByWorldPos(const sead::Vector2f&, const al::IUseCamera*, float, float);
|
||||
bool isPadTouchRect(float, float, float, float);
|
||||
bool isTouchPosInCircle(const sead::Vector2f&, f32);
|
||||
bool isTouchPosInCircleByWorldPos(const sead::Vector2f&, const IUseCamera*, f32, f32);
|
||||
bool isPadTouchRect(f32, f32, f32, f32);
|
||||
|
||||
void setPadRepeat(int, int, int, int);
|
||||
void setPadRepeat(s32, s32, s32, s32);
|
||||
|
||||
int getPlayerControllerPort(int);
|
||||
int getTouchPanelPort();
|
||||
int getMainControllerPort();
|
||||
int getMainJoyPadDoublePort();
|
||||
int getMainJoyPadSingleRightPort();
|
||||
int getMainJoyPadSingleLeftPort();
|
||||
s32 getPlayerControllerPort(s32 port);
|
||||
s32 getTouchPanelPort();
|
||||
s32 getMainControllerPort();
|
||||
s32 getMainJoyPadDoublePort();
|
||||
s32 getMainJoyPadSingleRightPort();
|
||||
s32 getMainJoyPadSingleLeftPort();
|
||||
|
||||
bool isSameNpadId(u32, int); // TODO implement
|
||||
bool isSameNpadId(u32, s32); // TODO implement
|
||||
|
||||
} // namespace al
|
||||
|
27
lib/al/Library/Demo/DemoFunction.h
Normal file
27
lib/al/Library/Demo/DemoFunction.h
Normal file
@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
namespace al {
|
||||
class AddDemoInfo;
|
||||
class ActorInitInfo;
|
||||
class DemoActorHolder;
|
||||
class LiveActor;
|
||||
class Scene;
|
||||
|
||||
void registDemoRequesterToAddDemoInfo(const LiveActor* actor, const ActorInitInfo& initInfo,
|
||||
s32 index);
|
||||
void registActorToDemoInfo(LiveActor* actor, const ActorInitInfo& initInfo);
|
||||
void addDemoActorFromAddDemoInfo(const LiveActor* actor, const AddDemoInfo* info);
|
||||
void addDemoActorFromDemoActorHolder(const LiveActor* actor, const DemoActorHolder* holder);
|
||||
void addDemoActorFromDemoActorHolder(const Scene* scene, const DemoActorHolder* holder);
|
||||
void setDemoInfoDemoName(const LiveActor* actor, const char* name);
|
||||
void killForceBeforeDemo(LiveActor* actor);
|
||||
void prepareSkip(LiveActor* actor, s32);
|
||||
void invalidateLODWithSubActor(LiveActor*);
|
||||
|
||||
} // namespace al
|
||||
|
||||
namespace alDemoUtilTmp {
|
||||
bool isActiveDemo(const al::LiveActor*);
|
||||
}
|
18
lib/al/Library/Draw/GraphicsFunction.h
Normal file
18
lib/al/Library/Draw/GraphicsFunction.h
Normal file
@ -0,0 +1,18 @@
|
||||
#pragma once
|
||||
|
||||
// TODO: Someone should add this to nnheaders!
|
||||
namespace nn::g3d {
|
||||
class MaterialObj;
|
||||
}
|
||||
// TODO: Someone should add this to sead!
|
||||
namespace sead {
|
||||
class GraphicsContext;
|
||||
}
|
||||
|
||||
namespace al {
|
||||
void setDepthFuncNearDraw(sead::GraphicsContext* context);
|
||||
void setDepthFuncFarDraw(sead::GraphicsContext* context);
|
||||
void setDepthFuncNearDraw(sead::GraphicsContext* context);
|
||||
void setDepthFuncFarDraw(sead::GraphicsContext* context);
|
||||
bool getAlphaTestEnable(nn::g3d::MaterialObj* material);
|
||||
} // namespace al
|
8
lib/al/Library/Execute/ExecuteDirector.h
Normal file
8
lib/al/Library/Execute/ExecuteDirector.h
Normal file
@ -0,0 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
namespace al {
|
||||
class ExecuteDirector {
|
||||
public:
|
||||
ExecuteDirector();
|
||||
};
|
||||
} // namespace al
|
@ -1,34 +1,36 @@
|
||||
#pragma once
|
||||
|
||||
namespace al {
|
||||
struct FactoryEntry {
|
||||
struct NameToCreator {
|
||||
const char* mName;
|
||||
void* mCreationFunction;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
using CreatorFunction = T* (*)(const char*);
|
||||
|
||||
template <typename T>
|
||||
class Factory {
|
||||
public:
|
||||
inline Factory(const char* factory_name)
|
||||
: mFactoryName(factory_name), mFactoryEntries(nullptr), mNumFactoryEntries(0) {}
|
||||
inline Factory(const char* factoryName)
|
||||
: mFactoryName(factoryName), mFactoryEntries(nullptr), mNumFactoryEntries(0) {}
|
||||
|
||||
template <int N>
|
||||
inline Factory(const char* factory_name, al::FactoryEntry (&entries)[N])
|
||||
: mFactoryName(factory_name) {
|
||||
inline Factory(const char* factoryName, NameToCreator (&entries)[N])
|
||||
: mFactoryName(factoryName) {
|
||||
initFactory(entries);
|
||||
}
|
||||
template <int N>
|
||||
inline void initFactory(al::FactoryEntry (&entries)[N]) {
|
||||
inline void initFactory(NameToCreator (&entries)[N]) {
|
||||
mFactoryEntries = entries;
|
||||
mNumFactoryEntries = N;
|
||||
}
|
||||
|
||||
virtual const char* convertName(const char* pName) const {
|
||||
return pName;
|
||||
}
|
||||
virtual const char* convertName(const char* name) const { return name; }
|
||||
|
||||
private:
|
||||
const char* mFactoryName;
|
||||
al::FactoryEntry* mFactoryEntries;
|
||||
NameToCreator* mFactoryEntries;
|
||||
int mNumFactoryEntries;
|
||||
};
|
||||
|
||||
|
@ -1,8 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <prim/seadSafeString.h>
|
||||
#include <resource/seadResource.h>
|
||||
|
||||
namespace al {
|
||||
sead::ArchiveRes* loadArchive(const sead::SafeStringBase<char>&);
|
||||
};
|
34
lib/al/Library/File/FileUtil.h
Normal file
34
lib/al/Library/File/FileUtil.h
Normal file
@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
#include <filedevice/seadArchiveFileDevice.h>
|
||||
#include <prim/seadSafeString.h>
|
||||
|
||||
namespace al {
|
||||
class IAudioResourceLoader;
|
||||
class Resource;
|
||||
|
||||
bool isExistFile(const sead::SafeString& fileName);
|
||||
bool isExistDirectory(const sead::SafeString& fileName);
|
||||
bool isExistArchive(const sead::SafeString& fileName);
|
||||
bool isExistArchive(const sead::SafeString& fileName, const char* ext);
|
||||
u32 getFileSize(const sead::SafeString& fileName);
|
||||
u32 calcFileAlignment(const sead::SafeString& fileName);
|
||||
u32 calcBufferSizeAlignment(const sead::SafeString& fileName);
|
||||
u8* loadFile(const sead::SafeString& fileName);
|
||||
void tryLoadFileToBuffer(const sead::SafeString& fileName, u8*, u32, s32);
|
||||
sead::ArchiveRes* loadArchive(const sead::SafeString& fileName);
|
||||
void loadArchiveWithExt(const sead::SafeString& fileName, char const* ext);
|
||||
void tryRequestLoadArchive(const sead::SafeString& fileName, sead::Heap* heap);
|
||||
void loadSoundItem(u32, u32, IAudioResourceLoader* resLoader);
|
||||
void tryRequestLoadSoundItem(u32);
|
||||
void tryRequestPreLoadFile(const Resource* res, s32, sead::Heap* heap,
|
||||
IAudioResourceLoader* resLoader);
|
||||
void tryRequestPreLoadFile(const Resource* res, const sead::SafeString& fileName, sead::Heap* heap,
|
||||
IAudioResourceLoader* resLoader);
|
||||
void waitLoadDoneAllFile();
|
||||
void clearFileLoaderEntry();
|
||||
void makeLocalizedArchivePath(sead::BufferedSafeString* outPath, const sead::SafeString& fileName);
|
||||
void makeLocalizedArchivePathByCountryCode(sead::BufferedSafeString* outPath,
|
||||
const sead::SafeString& fileName);
|
||||
void setFileLoaderThreadPriority(s32 priority);
|
||||
} // namespace al
|
@ -1,18 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
namespace al {
|
||||
class HitSensor;
|
||||
|
||||
class SensorHitGroup {
|
||||
public:
|
||||
SensorHitGroup(int, const char*);
|
||||
|
||||
void add(al::HitSensor*);
|
||||
void remove(al::HitSensor*);
|
||||
al::HitSensor* getSensor(int) const;
|
||||
|
||||
int _0;
|
||||
int mSensorCount; // _4
|
||||
al::HitSensor** mSensors; // _8
|
||||
};
|
||||
}; // namespace al
|
@ -1,12 +1,12 @@
|
||||
/**
|
||||
* @file IUseLayout.h
|
||||
* @brief Interface for classes that are layouts.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "al/actor/IUseName.h"
|
||||
#include "al/Library/HostIO/IUseName.h"
|
||||
|
||||
namespace al {
|
||||
class IUseLayout : public al::IUseName {};
|
||||
} // namespace al
|
||||
class LayoutKeeper;
|
||||
|
||||
class IUseLayout : virtual public IUseName {
|
||||
public:
|
||||
virtual LayoutKeeper* getLayoutKeeper() const = 0;
|
||||
};
|
||||
}
|
||||
|
12
lib/al/Library/Layout/IUseLayoutAction.h
Normal file
12
lib/al/Library/Layout/IUseLayoutAction.h
Normal file
@ -0,0 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
#include "al/Library/HostIO/IUseName.h"
|
||||
|
||||
namespace al {
|
||||
class LayoutActionKeeper;
|
||||
|
||||
class IUseLayoutAction : virtual public IUseName {
|
||||
public:
|
||||
virtual LayoutActionKeeper* getLayoutActionKeeper() const = 0;
|
||||
};
|
||||
}
|
36
lib/al/Library/Layout/LayoutActionFunction.h
Normal file
36
lib/al/Library/Layout/LayoutActionFunction.h
Normal file
@ -0,0 +1,36 @@
|
||||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
namespace al {
|
||||
class IUseLayoutAction;
|
||||
class Nerve;
|
||||
|
||||
void startAction(IUseLayoutAction* layout, const char* actionName, const char* paneName);
|
||||
void startFreezeAction(IUseLayoutAction* layout, const char* actionName, f32 frame,
|
||||
const char* paneName);
|
||||
void startFreezeActionEnd(IUseLayoutAction* layout, const char* actionName, const char* paneName);
|
||||
void startActionAtRandomFrame(IUseLayoutAction* layout, const char* actionName,
|
||||
const char* paneName);
|
||||
void startFreezeGaugeAction(IUseLayoutAction* layout, f32 value, f32 minFrame, f32 maxFrame,
|
||||
const char* actionName, const char* paneName);
|
||||
|
||||
bool tryStartAction(IUseLayoutAction* layout, const char* actionName, const char* paneName);
|
||||
|
||||
f32 getActionFrame(const IUseLayoutAction* layout, const char* paneName);
|
||||
f32 getActionFrameRate(const IUseLayoutAction* layout, const char* paneName);
|
||||
f32 getActionFrameMax(const IUseLayoutAction* layout, const char* actionName, const char* paneName);
|
||||
|
||||
void setActionFrameRate(const IUseLayoutAction* layout, f32 frameRate, const char* paneName);
|
||||
void setActionFrame(const IUseLayoutAction* layout, f32 frame, const char* paneName);
|
||||
|
||||
bool isActionOneTime(const IUseLayoutAction* layout, const char* actionName, const char* paneName);
|
||||
bool isActionPlaying(const IUseLayoutAction* layout, const char* actionName, const char* paneName);
|
||||
bool isAnyActionPlaying(const IUseLayoutAction* layout, const char* paneName);
|
||||
bool isActionEnd(const IUseLayoutAction* layout, const char* paneName);
|
||||
|
||||
bool isExistAction(const IUseLayoutAction* layout, const char* actionName);
|
||||
bool isExistAction(const IUseLayoutAction* layout, const char* actionName, const char* paneName);
|
||||
|
||||
void setNerveAtActionEnd(const IUseLayoutAction* layout, const Nerve* nerve);
|
||||
} // namespace al
|
@ -1,25 +1,85 @@
|
||||
#pragma once
|
||||
|
||||
#include "al/audio/AudioKeeper.h"
|
||||
#include "al/camera/CameraDirector.h"
|
||||
#include "al/effect/EffectKeeper.h"
|
||||
#include <prim/seadSafeString.h>
|
||||
#include "al/Library/Audio/IUseAudioKeeper.h"
|
||||
#include "al/Library/Camera/IUseCamera.h"
|
||||
#include "al/Library/Effect/IUseEffectKeeper.h"
|
||||
#include "al/Library/HostIO/HioNode.h"
|
||||
#include "al/layout/IUseLayout.h"
|
||||
#include "al/message/IUseMessageSystem.h"
|
||||
#include "al/Library/Nerve/Nerve.h"
|
||||
#include "al/Library/Layout/IUseLayout.h"
|
||||
#include "al/Library/Layout/IUseLayoutAction.h"
|
||||
#include "al/Library/Message/IUseMessageSystem.h"
|
||||
#include "al/Library/Nerve/IUseNerve.h"
|
||||
#include "al/Library/Scene/SceneObjHolder.h"
|
||||
|
||||
namespace al {
|
||||
class NerveKeeper;
|
||||
class LayoutKeeper;
|
||||
class LayoutActionKeeper;
|
||||
class LayoutTextPaneAnimator;
|
||||
class EffectKeeper;
|
||||
class AudioKeeper;
|
||||
class LayoutExecuteInfo;
|
||||
class HitReactionKeeper;
|
||||
class LayoutSceneInfo;
|
||||
class LayoutPartsActorKeeper;
|
||||
class CameraDirector;
|
||||
class SceneObjHolder;
|
||||
class MessageSystem;
|
||||
class Nerve;
|
||||
|
||||
class IUseLayoutAction {};
|
||||
class LayoutActor : public IUseHioNode,
|
||||
public IUseNerve,
|
||||
public IUseLayout,
|
||||
public IUseLayoutAction,
|
||||
public IUseMessageSystem,
|
||||
public IUseCamera,
|
||||
public IUseAudioKeeper,
|
||||
public IUseEffectKeeper,
|
||||
public IUseSceneObjHolder {
|
||||
public:
|
||||
LayoutActor(const char*);
|
||||
|
||||
class LayoutActor : public al::IUseHioNode,
|
||||
public al::IUseNerve,
|
||||
public al::IUseLayout,
|
||||
public al::IUseLayoutAction,
|
||||
public al::IUseMessageSystem,
|
||||
public al::IUseCamera,
|
||||
public al::IUseAudioKeeper,
|
||||
public al::IUseEffectKeeper,
|
||||
public al::IUseSceneObjHolder {};
|
||||
virtual void appear();
|
||||
virtual void kill();
|
||||
virtual void control() {}
|
||||
virtual void calcAnim(bool recursive);
|
||||
virtual void movement();
|
||||
|
||||
virtual NerveKeeper* getNerveKeeper() const override;
|
||||
virtual const char* getName() const override;
|
||||
virtual EffectKeeper* getEffectKeeper() const override;
|
||||
virtual AudioKeeper* getAudioKeeper() const override;
|
||||
virtual LayoutActionKeeper* getLayoutActionKeeper() const override;
|
||||
virtual LayoutKeeper* getLayoutKeeper() const override;
|
||||
virtual CameraDirector* getCameraDirector() const override;
|
||||
virtual SceneObjHolder* getSceneObjHolder() const override;
|
||||
virtual const MessageSystem* getMessageSystem() const override;
|
||||
|
||||
void initLayoutKeeper(LayoutKeeper*);
|
||||
void initActionKeeper();
|
||||
void initTextPaneAnimator(LayoutTextPaneAnimator*);
|
||||
void initExecuteInfo(LayoutExecuteInfo*);
|
||||
void initHitReactionKeeper(HitReactionKeeper*);
|
||||
void initSceneInfo(LayoutSceneInfo*);
|
||||
void initLayoutPartsActorKeeper(s32);
|
||||
void initEffectKeeper(EffectKeeper*);
|
||||
void initAudioKeeper(AudioKeeper*);
|
||||
void initNerve(const Nerve*, s32);
|
||||
void setMainGroupName(const char*);
|
||||
void syncAction();
|
||||
|
||||
private:
|
||||
sead::FixedSafeString<0x80> mName;
|
||||
NerveKeeper* mNerveKeeper;
|
||||
LayoutKeeper* mLayoutKeeper;
|
||||
LayoutActionKeeper* mLayoutActionKeeper;
|
||||
LayoutTextPaneAnimator* mTextPaneAnimator;
|
||||
EffectKeeper* mEffectKeeper;
|
||||
AudioKeeper* mAudioKeeper;
|
||||
LayoutExecuteInfo* mExecuteInfo;
|
||||
HitReactionKeeper* mHitReactionKeeper;
|
||||
LayoutSceneInfo* mLayoutSceneInfo;
|
||||
LayoutPartsActorKeeper* mLayoutPartsActorKeeper;
|
||||
bool mIsAlive;
|
||||
};
|
||||
} // namespace al
|
||||
|
7
lib/al/Library/Layout/LayoutActorGroup.h
Normal file
7
lib/al/Library/Layout/LayoutActorGroup.h
Normal file
@ -0,0 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
namespace al {
|
||||
class LayoutActor;
|
||||
|
||||
class LayoutActorGroup {};
|
||||
}
|
19
lib/al/Library/Layout/LayoutActorUtil.h
Normal file
19
lib/al/Library/Layout/LayoutActorUtil.h
Normal file
@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
|
||||
#include <math/seadVector.h>
|
||||
|
||||
namespace al {
|
||||
class LayoutActor;
|
||||
class IUseLayout;
|
||||
|
||||
bool isActive(LayoutActor* actor);
|
||||
bool isDead(LayoutActor* actor);
|
||||
|
||||
void killLayoutIfActive(LayoutActor* actor);
|
||||
void appearLayoutIfDead(LayoutActor* actor);
|
||||
|
||||
void calcTrans(sead::Vector3f* trans, const IUseLayout*);
|
||||
const sead::Vector3f& getLocalTrans(const IUseLayout*);
|
||||
|
||||
void updateLayoutPaneRecursive(LayoutActor* actor);
|
||||
} // namespace al
|
16
lib/al/Library/Layout/LayoutKeeper.h
Normal file
16
lib/al/Library/Layout/LayoutKeeper.h
Normal file
@ -0,0 +1,16 @@
|
||||
#pragma once
|
||||
|
||||
namespace nn::ui2d {
|
||||
class Layout;
|
||||
}
|
||||
|
||||
namespace al {
|
||||
class LayoutResource;
|
||||
|
||||
class LayoutKeeper {
|
||||
public:
|
||||
LayoutKeeper();
|
||||
|
||||
void initScreen(nn::ui2d::Layout* layout, LayoutResource* resource);
|
||||
};
|
||||
}
|
23
lib/al/Library/Layout/LayoutPartsActorKeeper.h
Normal file
23
lib/al/Library/Layout/LayoutPartsActorKeeper.h
Normal file
@ -0,0 +1,23 @@
|
||||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
namespace al {
|
||||
class LayoutActor;
|
||||
|
||||
class LayoutPartsActorKeeper {
|
||||
public:
|
||||
LayoutPartsActorKeeper(s32 maxActors);
|
||||
|
||||
void resisterPartsActor(LayoutActor* actor);
|
||||
void appear();
|
||||
void kill();
|
||||
void update();
|
||||
void calcAnim(bool recursive);
|
||||
|
||||
private:
|
||||
LayoutActor** mPartsActors = nullptr;
|
||||
s32 mNumActors = 0;
|
||||
s32 mMaxActors = 0;
|
||||
};
|
||||
} // namespace al
|
32
lib/al/Library/Layout/LayoutSceneInfo.h
Normal file
32
lib/al/Library/Layout/LayoutSceneInfo.h
Normal file
@ -0,0 +1,32 @@
|
||||
#pragma once
|
||||
|
||||
namespace eui {
|
||||
class FontMgr;
|
||||
}
|
||||
|
||||
namespace al {
|
||||
class CameraDirector;
|
||||
class PadRumbleDirector;
|
||||
class SceneObjHolder;
|
||||
class MessageSystem;
|
||||
class GamePadSystem;
|
||||
|
||||
class LayoutSceneInfo {
|
||||
public:
|
||||
LayoutSceneInfo();
|
||||
eui::FontMgr* getFontMgr() const { return mFontMgr; }
|
||||
CameraDirector* getCameraDirector() const { return mCameraDirector; }
|
||||
PadRumbleDirector* getPadRumbleDirector() const { return mPadRumbleDirector; }
|
||||
SceneObjHolder* getSceneObjHolder() const { return mSceneObjHolder; }
|
||||
const MessageSystem* getMessageSystem() const { return mMessageSystem; }
|
||||
const GamePadSystem* getGamePadSystem() const { return mGamePadSystem; }
|
||||
|
||||
private:
|
||||
eui::FontMgr* mFontMgr = nullptr;
|
||||
CameraDirector* mCameraDirector = nullptr;
|
||||
PadRumbleDirector* mPadRumbleDirector = nullptr;
|
||||
SceneObjHolder* mSceneObjHolder = nullptr;
|
||||
const MessageSystem* mMessageSystem = nullptr;
|
||||
const GamePadSystem* mGamePadSystem = nullptr;
|
||||
};
|
||||
} // namespace al
|
35
lib/al/Library/LiveActor/ActorActionFunction.h
Normal file
35
lib/al/Library/LiveActor/ActorActionFunction.h
Normal file
@ -0,0 +1,35 @@
|
||||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
namespace al {
|
||||
class LiveActor;
|
||||
class Nerve;
|
||||
|
||||
void startAction(LiveActor* actor, const char* actionName);
|
||||
void startActionAtRandomFrame(LiveActor* actor, const char* actionName);
|
||||
bool tryStartAction(LiveActor* actor, const char* actionName);
|
||||
bool tryStartActionIfNotPlaying(LiveActor* actor, const char* actionName);
|
||||
bool tryStartActionIfActionEnd(LiveActor* actor, const char* actionName);
|
||||
|
||||
bool isActionPlaying(LiveActor* actor, const char* actionName);
|
||||
bool isActionEnd(LiveActor* actor);
|
||||
bool isExistAction(LiveActor* actor);
|
||||
bool isExistAction(LiveActor* actor, const char* actionName);
|
||||
bool isActionOneTime(LiveActor* actor);
|
||||
bool isActionOneTime(LiveActor* actor, const char* actionName);
|
||||
|
||||
const char* getActionName(LiveActor* actor);
|
||||
s32 getActionFrame(LiveActor* actor);
|
||||
s32 getActionFrameMax(LiveActor* actor);
|
||||
s32 getActionFrameMax(LiveActor* actor, const char* actionName);
|
||||
f32 getActionFrameRate(LiveActor* actor);
|
||||
|
||||
void stopAction(LiveActor* actor);
|
||||
void restartAction(LiveActor* actor);
|
||||
void copyAction(LiveActor* actor, const LiveActor* sourceActor);
|
||||
|
||||
void startNerveAction(LiveActor* actor, const char* actionName);
|
||||
void setNerveAtActionEnd(LiveActor* actor, const Nerve* nerve);
|
||||
void resetNerveActionForInit(LiveActor* actor);
|
||||
} // namespace al
|
35
lib/al/Library/LiveActor/ActorClippingFunction.h
Normal file
35
lib/al/Library/LiveActor/ActorClippingFunction.h
Normal file
@ -0,0 +1,35 @@
|
||||
#pragma once
|
||||
|
||||
#include <math/seadBoundBox.h>
|
||||
#include <math/seadVector.h>
|
||||
|
||||
namespace al {
|
||||
class LiveActor;
|
||||
class ActorInitInfo;
|
||||
class ClippingDirector;
|
||||
|
||||
void initActorClipping(LiveActor* actor, const ActorInitInfo& initInfo);
|
||||
void initGroupClipping(LiveActor* actor, const ActorInitInfo& initInfo);
|
||||
f32 getClippingRadius(const LiveActor* actor);
|
||||
void setClippingInfo(LiveActor* actor, f32, const sead::Vector3f*);
|
||||
void setClippingObb(LiveActor* actor, const sead::BoundBox3f& boundingBox);
|
||||
sead::BoundBox3f& getClippingObb(LiveActor* actor);
|
||||
sead::Vector3f& getClippingCenterPos(const LiveActor* actor);
|
||||
void setClippingNearDistance(LiveActor* actor, f32 near);
|
||||
void expandClippingRadiusByShadowLength(LiveActor* actor, sead::Vector3f*, f32 radius);
|
||||
bool tryExpandClippingToGround(LiveActor* actor, sead::Vector3f*, f32);
|
||||
bool tryExpandClippingByShadowMaskLength(LiveActor* actor, sead::Vector3f*);
|
||||
bool tryExpandClippingByDepthShadowLength(LiveActor* actor, sead::Vector3f*);
|
||||
bool tryExpandClippingByExpandObject(LiveActor*, const ActorInitInfo& initInfo);
|
||||
bool isClipped(const LiveActor*);
|
||||
bool isInvalidClipping(const LiveActor*);
|
||||
void invalidateClipping(LiveActor* actor);
|
||||
void validateClipping(LiveActor* actor);
|
||||
void onDrawClipping(LiveActor* actor);
|
||||
void offDrawClipping(LiveActor* actor);
|
||||
void onGroupClipping(LiveActor* actor);
|
||||
void offGroupClipping(LiveActor* actor);
|
||||
bool isInClippingFrustum(const LiveActor* actor, const sead::Vector3f&, f32, f32, s32);
|
||||
bool isInClippingFrustum(const ClippingDirector* director, const sead::Vector3f&, f32, f32, s32);
|
||||
bool isInClippingFrustumAllView(const LiveActor* actor, const sead::Vector3f& pos, f32, f32);
|
||||
} // namespace al
|
@ -5,8 +5,8 @@
|
||||
namespace al {
|
||||
class LiveActor;
|
||||
|
||||
class ActorFactory : public al::Factory<al::LiveActor* (*)(char const*)> {
|
||||
class ActorFactory : public Factory<CreatorFunction<LiveActor>> {
|
||||
public:
|
||||
ActorFactory(const char*);
|
||||
ActorFactory(const char* factoryName);
|
||||
};
|
||||
} // namespace al
|
||||
|
25
lib/al/Library/LiveActor/ActorFlagFunction.h
Normal file
25
lib/al/Library/LiveActor/ActorFlagFunction.h
Normal file
@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
|
||||
namespace al {
|
||||
class LiveActor;
|
||||
|
||||
bool isAlive(const LiveActor* actor);
|
||||
bool isDead(const LiveActor* actor);
|
||||
bool isNoCollide(const LiveActor* actor);
|
||||
void onCalcAnim(LiveActor* actor);
|
||||
void offCalcAnim(LiveActor* actor);
|
||||
void validateShadow(LiveActor* actor);
|
||||
void invalidateShadow(LiveActor* actor);
|
||||
void onCollide(LiveActor* actor);
|
||||
void offCollide(LiveActor* actor);
|
||||
void validateMaterialCode(LiveActor* actor);
|
||||
void invalidateMaterialCode(LiveActor* actor);
|
||||
void validatePuddleMaterial(LiveActor* actor);
|
||||
void invalidatePuddleMaterial(LiveActor* actor);
|
||||
bool isAreaTarget(const LiveActor* actor);
|
||||
void onAreaTarget(LiveActor* actor);
|
||||
void offAreaTarget(LiveActor* actor);
|
||||
void isUpdateMovementEffectAudioCollisionSensor(const LiveActor* actor);
|
||||
void onUpdateMovementEffectAudioCollisionSensor(LiveActor* actor);
|
||||
void offUpdateMovementEffectAudioCollisionSensor(LiveActor* actor);
|
||||
}
|
@ -1,6 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#include "al/Library/Placement/Placement.h"
|
||||
#include <basis/seadTypes.h>
|
||||
#include <gfx/seadDrawContext.h>
|
||||
#include <math/seadBoundBox.h>
|
||||
#include <math/seadVector.h>
|
||||
#include <prim/seadSafeString.h>
|
||||
#include "al/Library/LiveActor/ActorSceneInfo.h"
|
||||
#include "al/Library/Nerve/NerveUtil.h"
|
||||
#include "al/Library/Placement/PlacementInfo.h"
|
||||
|
||||
namespace al {
|
||||
class LiveActor;
|
||||
@ -27,7 +34,6 @@ class ShadowDirector;
|
||||
class ModelGroup;
|
||||
class GraphicsSystemInfo;
|
||||
class ModelDrawBufferCounter;
|
||||
class LiveActorGroup;
|
||||
class ActorFactory;
|
||||
class ActorResourceHolder;
|
||||
class AudioDirector;
|
||||
@ -37,59 +43,93 @@ class HitSensorDirector;
|
||||
class StageSwitchDirector;
|
||||
class ScreenPointDirector;
|
||||
class ViewIdHolder;
|
||||
class SceneCameraInfo;
|
||||
class Nerve;
|
||||
class PlacementInfo;
|
||||
class LayoutInitInfo;
|
||||
class AudioDirector;
|
||||
class CollisionDirector;
|
||||
class GraphicsSystemInfo;
|
||||
|
||||
class ActorInitInfo {
|
||||
public:
|
||||
ActorInitInfo();
|
||||
void initNew(const PlacementInfo*, const LayoutInitInfo*, LiveActorGroup*, const ActorFactory*,
|
||||
ActorResourceHolder*, AreaObjDirector*, AudioDirector*, CameraDirector*,
|
||||
ClippingDirector*, CollisionDirector*, DemoDirector*, EffectSystemInfo*,
|
||||
ExecuteDirector*, GameDataHolderBase*, GravityHolder*, HitSensorDirector*,
|
||||
ItemDirectorBase*, NatureDirector*, const GamePadSystem*, PadRumbleDirector*,
|
||||
PlayerHolder*, SceneObjHolder*, SceneMsgCtrl*, SceneStopCtrl*, ScreenCoverCtrl*,
|
||||
ScreenPointDirector*, ShadowDirector*, StageSwitchDirector*, ModelGroup*,
|
||||
GraphicsSystemInfo*, ModelDrawBufferCounter*, LiveActorGroup*);
|
||||
void initNew(const PlacementInfo*, const LayoutInitInfo*, LiveActorGroup*, const ActorFactory*, ActorResourceHolder*, AreaObjDirector*,
|
||||
AudioDirector*, CameraDirector*, ClippingDirector*, CollisionDirector*, DemoDirector*, EffectSystemInfo*, ExecuteDirector*,
|
||||
GameDataHolderBase*, GravityHolder*, HitSensorDirector*, ItemDirectorBase*, NatureDirector*, const GamePadSystem*,
|
||||
PadRumbleDirector*, PlayerHolder*, SceneObjHolder*, SceneMsgCtrl*, SceneStopCtrl*, ScreenCoverCtrl*, ScreenPointDirector*,
|
||||
ShadowDirector*, StageSwitchDirector*, ModelGroup*, GraphicsSystemInfo*, ModelDrawBufferCounter*, LiveActorGroup*);
|
||||
void initViewIdSelf(const PlacementInfo*, const ActorInitInfo&);
|
||||
void copyHostInfo(const ActorInitInfo&, const PlacementInfo*);
|
||||
void initViewIdHost(const PlacementInfo*, const ActorInitInfo&);
|
||||
void initViewIdHostActor(const ActorInitInfo&, const LiveActor*);
|
||||
void initNoViewId(const PlacementInfo*, const ActorInitInfo&);
|
||||
|
||||
const al::PlacementInfo& getPlacementInfo() const { return *mPlacementInfo; }
|
||||
const PlacementInfo& getPlacementInfo() const { return *mPlacementInfo; }
|
||||
|
||||
private:
|
||||
al::LiveActorGroup* mLiveActorGroup1;
|
||||
const al::PlacementInfo* mPlacementInfo;
|
||||
const al::LayoutInitInfo* mLayoutInitInfo;
|
||||
al::AreaObjDirector* mAreaObjDirector;
|
||||
al::CameraDirector* mCameraDirector;
|
||||
al::ClippingDirector* mClippingDirector;
|
||||
al::CollisionDirector* mCollisionDirector;
|
||||
al::DemoDirector* mDemoDirector;
|
||||
al::GameDataHolderBase* mGameDataHolderBase;
|
||||
al::GravityHolder* mGravityHolder;
|
||||
al::ItemDirectorBase* mItemDirectorBase;
|
||||
al::NatureDirector* mNatureDirector;
|
||||
const al::GamePadSystem* mGamePadSystem;
|
||||
al::PadRumbleDirector* mPadRumbleDirector;
|
||||
al::PlayerHolder* mPlayerHolder;
|
||||
al::SceneObjHolder* mSceneObjHolder;
|
||||
al::SceneStopCtrl* mSceneStopCtrl;
|
||||
al::SceneMsgCtrl* mSceneMsgCtrl;
|
||||
al::ScreenCoverCtrl* mScreenCoverCtrl;
|
||||
al::ShadowDirector* mShadowDirector;
|
||||
al::ModelGroup* mModelGroup;
|
||||
al::GraphicsSystemInfo* mGraphicsSystemInfo;
|
||||
al::ModelDrawBufferCounter* mModelDrawBufferCounter;
|
||||
al::LiveActorGroup* mLiveActorGroup2;
|
||||
const al::ActorFactory* mActorFactory;
|
||||
al::ActorResourceHolder* mActorResourceHolder;
|
||||
al::AudioDirector* mAudioDirector;
|
||||
al::EffectSystemInfo* mEffectSystemInfo;
|
||||
al::ExecuteDirector* mExecuteDirector;
|
||||
al::HitSensorDirector* mHitSensorDirector;
|
||||
al::StageSwitchDirector* mStageSwitchDirector;
|
||||
al::ScreenPointDirector* mScreenPointDirector;
|
||||
al::ViewIdHolder* mViewIdHolder;
|
||||
LiveActorGroup* mKitDrawingGroup;
|
||||
const PlacementInfo* mPlacementInfo;
|
||||
const LayoutInitInfo* mLayoutInitInfo;
|
||||
ActorSceneInfo mActorSceneInfo;
|
||||
LiveActorGroup* mAllActorsGroup;
|
||||
const ActorFactory* mActorFactory;
|
||||
ActorResourceHolder* mActorResourceHolder;
|
||||
AudioDirector* mAudioDirector;
|
||||
EffectSystemInfo* mEffectSystemInfo;
|
||||
ExecuteDirector* mExecuteDirector;
|
||||
HitSensorDirector* mHitSensorDirector;
|
||||
ScreenPointDirector* mScreenPointDirector;
|
||||
StageSwitchDirector* mStageSwitchDirector;
|
||||
ViewIdHolder* mViewIdHolder;
|
||||
};
|
||||
|
||||
void initActor(LiveActor* actor, const ActorInitInfo& initInfo);
|
||||
void initActorSuffix(LiveActor* actor, const ActorInitInfo& initInfo, const char* suffix);
|
||||
void initActorWithArchiveName(LiveActor* actor, const ActorInitInfo& initInfo, const sead::SafeString& archiveName, const char* suffix);
|
||||
void initChildActorWithArchiveNameWithPlacementInfo(LiveActor* actor, const ActorInitInfo& initInfo, const sead::SafeString& archiveName,
|
||||
const char* suffix);
|
||||
void initChildActorWithArchiveNameNoPlacementInfo(LiveActor* actor, const ActorInitInfo& initInfo, const sead::SafeString& archiveName,
|
||||
const char* suffix);
|
||||
void initMapPartsActor(LiveActor* actor, const ActorInitInfo& initInfo, const char* suffix);
|
||||
void initLinksActor(LiveActor* actor, const ActorInitInfo& initInfo, const char* suffix, s32 linkIndex);
|
||||
|
||||
void createChildLinkSimpleActor(const char* actorName, const char* archiveName, const ActorInitInfo& initInfo, bool alive);
|
||||
void createChildLinkMapPartsActor(const char* actorName, const char* archiveName, const ActorInitInfo& initInfo, s32 linkIndex, bool alive);
|
||||
|
||||
ActorInitInfo* createLinksPlayerActorInfo(LiveActor* actor, const ActorInitInfo& initInfo);
|
||||
|
||||
void initNerve(LiveActor* actor, const Nerve* nerve, s32 maxStates);
|
||||
void initNerveAction(LiveActor* actor, const char* actionName, alNerveFunction::NerveActionCollector* collector, s32 maxStates);
|
||||
|
||||
bool trySyncStageSwitchAppear(LiveActor* actor);
|
||||
bool trySyncStageSwitchKill(LiveActor* actor);
|
||||
bool trySyncStageSwitchAppearAndKill(LiveActor* actor);
|
||||
bool tryListenStageSwitchAppear(LiveActor* actor);
|
||||
bool tryListenStageSwitchKill(LiveActor* actor);
|
||||
|
||||
void syncSensorScaleY(LiveActor* actor);
|
||||
void syncSensorAndColliderScaleY(LiveActor* actor);
|
||||
|
||||
void setMaterialCode(LiveActor* actor, const char*);
|
||||
void initMaterialCode(LiveActor* actor, const ActorInitInfo& initInfo);
|
||||
|
||||
bool tryAddDisplayRotate(LiveActor* actor, const ActorInitInfo& initInfo);
|
||||
bool tryAddDisplayOffset(LiveActor* actor, const ActorInitInfo& initInfo);
|
||||
bool tryAddDisplayScale(LiveActor* actor, const ActorInitInfo& initInfo);
|
||||
|
||||
PlacementInfo* getPlacementInfo(const ActorInitInfo& initInfo);
|
||||
const LayoutInitInfo* getLayoutInitInfo(const ActorInitInfo& initInfo);
|
||||
AudioDirector* getAudioDirector(const ActorInitInfo& initInfo);
|
||||
CollisionDirector* getCollisionDirectorFromInfo(const ActorInitInfo& initInfo);
|
||||
const SceneCameraInfo* getSceneCameraInfoFromInfo(const ActorInitInfo& initInfo);
|
||||
GraphicsSystemInfo* getGraphicsSystemInfo(const ActorInitInfo& initInfo);
|
||||
sead::DrawContext* getDrawContext(const ActorInitInfo& initInfo);
|
||||
|
||||
void getActorRecourseDataF32(f32*, LiveActor*, const char*, const char*);
|
||||
void getActorRecourseDataString(const char**, LiveActor*, const char*, const char*);
|
||||
void getActorRecourseDataV3f(sead::Vector3f*, LiveActor* actor, const char*, const char*);
|
||||
void getActorRecourseDataBox3f(sead::BoundBox3f* box, LiveActor* actor, const char*, const char*);
|
||||
|
||||
void createPartsEffectGroup(LiveActor* actor, const ActorInitInfo& initInfo, s32);
|
||||
} // namespace al
|
||||
|
205
lib/al/Library/LiveActor/ActorModelFunction.h
Normal file
205
lib/al/Library/LiveActor/ActorModelFunction.h
Normal file
@ -0,0 +1,205 @@
|
||||
#pragma once
|
||||
|
||||
#include <gfx/seadColor.h>
|
||||
#include <math/seadBoundBox.h>
|
||||
#include <math/seadMatrix.h>
|
||||
#include <math/seadQuat.h>
|
||||
#include <nn/g3d/ResFile.h>
|
||||
#include <nn/gfx/gfx_DescriptorSlot.h>
|
||||
|
||||
namespace agl {
|
||||
class UniformBlock;
|
||||
}
|
||||
namespace nn::gfx {
|
||||
class ResTexture;
|
||||
}
|
||||
|
||||
namespace al {
|
||||
class LayoutTextureRenderObj;
|
||||
class LiveActor;
|
||||
class ClippingDirector;
|
||||
|
||||
void updateMaterialCodeGround(LiveActor* actor, const char*);
|
||||
void updateMaterialCodeAll(LiveActor* actor);
|
||||
void updateMaterialCodeArea(LiveActor* actor);
|
||||
void updateMaterialCodeWet(LiveActor* actor, bool);
|
||||
void updateMaterialCodeWater(LiveActor* actor);
|
||||
void updateMaterialCodeWater(LiveActor* actor, bool);
|
||||
void updateMaterialCodePuddle(LiveActor* actor);
|
||||
void updateMaterialCodePuddle(LiveActor* actor, bool);
|
||||
void resetMaterialCode(LiveActor* actor);
|
||||
void showModel(LiveActor* actor);
|
||||
void showModelIfHide(LiveActor* actor);
|
||||
bool isHideModel(const LiveActor* actor);
|
||||
void hideModel(LiveActor* actor);
|
||||
void hideModelIfShow(LiveActor* actor);
|
||||
bool isExistModel(const LiveActor* actor);
|
||||
void switchShowHideModelIfNearCamera(LiveActor* actor, f32);
|
||||
void blinkModel(LiveActor* actor, s32, s32, s32);
|
||||
void calcViewModelSystem(LiveActor* actor);
|
||||
void calcViewModel(LiveActor* actor);
|
||||
void showSilhouetteModel(LiveActor* actor);
|
||||
void hideSilhouetteModel(LiveActor* actor);
|
||||
bool isSilhouetteModelHidden(const LiveActor* actor);
|
||||
void showSilhouetteModelIfHide(LiveActor* actor);
|
||||
void hideSilhouetteModelIfShow(LiveActor* actor);
|
||||
void setModelAlphaMask(LiveActor* actor, f32);
|
||||
void getModelAlphaMask(const LiveActor* actor);
|
||||
bool isModelAlphaMask(const LiveActor* actor);
|
||||
void updateModelAlphaMaskCameraDistance(LiveActor* actor, f32, f32, f32, f32);
|
||||
bool isExistZPrePass(const LiveActor* actor);
|
||||
bool isEnableZPrePass(const LiveActor* actor);
|
||||
void validateZPrePass(LiveActor* actor);
|
||||
void invalidateZPrePass(LiveActor* actor);
|
||||
void invalidateOcclusionQuery(LiveActor* actor);
|
||||
void validateOcclusionQuery(LiveActor* actor);
|
||||
bool isValidOcclusionQuery(const LiveActor* actor);
|
||||
void setFixedModelFlag(LiveActor* actor);
|
||||
void tryInitFixedModelGpuBuffer(LiveActor* actor);
|
||||
void setIgnoreUpdateDrawClipping(LiveActor* actor, bool value);
|
||||
void setNeedSetBaseMtxAndCalcAnimFlag(LiveActor* actor, bool value);
|
||||
bool isViewDependentModel(const LiveActor* actor);
|
||||
bool isNeedUpdateModel(const LiveActor* actor);
|
||||
void setEnvTextureMirror(LiveActor* actor, s32);
|
||||
void setEnvTextureProc3D(LiveActor* actor, s32);
|
||||
void forceApplyCubeMap(LiveActor* actor, const char* cubeMapName);
|
||||
void setMaterialProgrammable(LiveActor* actor);
|
||||
bool isIncludePrepassCullingShape(LiveActor* actor);
|
||||
void isExistJoint(const LiveActor* actor, const char*);
|
||||
void getJointIndex(const LiveActor* actor, const char*);
|
||||
sead::Matrix34f* getJointMtxPtr(const LiveActor* actor, const char*); // return type might be const
|
||||
void getJointMtxPtrByIndex(const LiveActor* actor, int);
|
||||
void getJointLocalTrans(sead::Vector3f*, const LiveActor* actor, const char*);
|
||||
void calcJointPos(sead::Vector3f*, const LiveActor* actor, const char*);
|
||||
void calcJointOffsetPos(sead::Vector3f*, const LiveActor* actor, const char*,
|
||||
const sead::Vector3f&);
|
||||
void calcJointPosByIndex(sead::Vector3f*, const LiveActor* actor, int);
|
||||
void calcJointSideDir(sead::Vector3f*, const LiveActor* actor, const char*);
|
||||
void calcJointUpDir(sead::Vector3f*, const LiveActor* actor, const char*);
|
||||
void calcJointFrontDir(sead::Vector3f*, const LiveActor* actor, const char*);
|
||||
void calcJointScale(sead::Vector3f*, const LiveActor* actor, const char*);
|
||||
void calcJointQuat(sead::Quatf*, const LiveActor* actor, const char*);
|
||||
void multVecJointMtx(sead::Vector3f*, const sead::Vector3f&, const LiveActor* actor, const char*);
|
||||
void multVecJointInvMtx(sead::Vector3f*, const sead::Vector3f&, const LiveActor* actor,
|
||||
const char*);
|
||||
void multMtxJointInvMtx(sead::Matrix34f*, const sead::Matrix34f&, const LiveActor* actor,
|
||||
const char*);
|
||||
void setJointVisibility(LiveActor* actor, const char*, bool);
|
||||
void isJointVisibility(const LiveActor* actor, const char*);
|
||||
void isFaceJointXDirDegreeYZ(const LiveActor* actor, const char*, const sead::Vector3f&, float,
|
||||
float);
|
||||
void isFaceJointYDirDegreeZX(const LiveActor* actor, const char*, const sead::Vector3f&, float,
|
||||
float);
|
||||
void isFaceJointZDirDegreeXY(const LiveActor* actor, const char*, const sead::Vector3f&, float,
|
||||
float);
|
||||
void calcJointAngleXDirToTargetOnYDir(const LiveActor* actor, const char*, const sead::Vector3f&);
|
||||
void calcJointAngleXDirToTargetOnZDir(const LiveActor* actor, const char*, const sead::Vector3f&);
|
||||
void calcJointAngleYDirToTargetOnXDir(const LiveActor* actor, const char*, const sead::Vector3f&);
|
||||
void calcJointAngleYDirToTargetOnZDir(const LiveActor* actor, const char*, const sead::Vector3f&);
|
||||
void calcJointAngleZDirToTargetOnXDir(const LiveActor* actor, const char*, const sead::Vector3f&);
|
||||
void calcJointAngleZDirToTargetOnYDir(const LiveActor* actor, const char*, const sead::Vector3f&);
|
||||
void getMaterialName(const LiveActor* actor, int);
|
||||
void getMaterialCount(const LiveActor* actor);
|
||||
void isExistMaterial(const LiveActor* actor, const char*);
|
||||
void getMaterialObj(const LiveActor* actor, int);
|
||||
void getMaterialObj(const LiveActor* actor, const char*);
|
||||
void getMaterialIndex(const LiveActor* actor, const char*);
|
||||
void isExistMaterialTexture(const LiveActor* actor, const char*, const char*);
|
||||
void getMaterialCategory(const LiveActor* actor, int);
|
||||
void tryGetMaterialCategory(const LiveActor* actor, int);
|
||||
void isOnlyMaterialCategoryObject(const LiveActor* actor);
|
||||
void showMaterial(LiveActor* actor, const char*);
|
||||
void hideMaterial(LiveActor* actor, const char*);
|
||||
void showMaterial(LiveActor* actor, int);
|
||||
void hideMaterial(LiveActor* actor, int);
|
||||
void showMaterialAll(LiveActor* actor);
|
||||
void tryShowMaterial(LiveActor* actor, int);
|
||||
void tryHideMaterial(LiveActor* actor, int);
|
||||
void tryShowMaterialAll(LiveActor* actor);
|
||||
void setModelMaterialParameterF32(const LiveActor* actor, int, const char*, float);
|
||||
void setModelMaterialParameterF32(const LiveActor* actor, const char*, const char*, float);
|
||||
void setModelMaterialParameterV2F(const LiveActor* actor, int, const char*, const sead::Vector2f&);
|
||||
void setModelMaterialParameterV2F(const LiveActor* actor, const char*, const char*,
|
||||
const sead::Vector2f&);
|
||||
void setModelMaterialParameterV3F(const LiveActor* actor, int, const char*, const sead::Vector3f&);
|
||||
void setModelMaterialParameterV3F(const LiveActor* actor, const char*, const char*,
|
||||
const sead::Vector3f&);
|
||||
void setModelMaterialParameterV4F(const LiveActor* actor, int, const char*, const sead::Vector4f&);
|
||||
void setModelMaterialParameterV4F(const LiveActor* actor, const char*, const char*,
|
||||
const sead::Vector4f&);
|
||||
void setModelMaterialParameterRgb(const LiveActor* actor, int, const char*, const sead::Vector3f&);
|
||||
void setModelMaterialParameterRgb(const LiveActor* actor, const char*, const char*,
|
||||
const sead::Vector3f&);
|
||||
void setModelMaterialParameterRgb(const LiveActor* actor, int, const char*, const sead::Color4f&);
|
||||
void setModelMaterialParameterRgb(const LiveActor* actor, const char*, const char*,
|
||||
const sead::Color4f&);
|
||||
void setModelMaterialParameterRgba(const LiveActor* actor, int, const char*, const sead::Color4f&);
|
||||
void setModelMaterialParameterRgba(const LiveActor* actor, const char*, const char*,
|
||||
const sead::Color4f&);
|
||||
void setModelMaterialParameterAlpha(const LiveActor* actor, int, const char*, float);
|
||||
void setModelMaterialParameterAlpha(const LiveActor* actor, const char*, const char*, float);
|
||||
void setModelMaterialParameterTextureTrans(const LiveActor* actor, const char*, int,
|
||||
const sead::Vector2f&);
|
||||
void getModelMaterialParameterDisplacementScale(const LiveActor* actor, const char*, int);
|
||||
void setModelMaterialParameterDisplacementScale(const LiveActor* actor, const char*, int, float);
|
||||
void getModelUniformBlock(const LiveActor* actor, const char*);
|
||||
void findModelUniformBlock(const LiveActor* actor, const char*);
|
||||
void swapModelUniformBlock(agl::UniformBlock*);
|
||||
void flushModelUniformBlock(agl::UniformBlock*);
|
||||
void getModelDrawCategoryFromShaderAssign(bool*, bool*, bool*, bool*, const LiveActor* actor);
|
||||
void trySetOcclusionQueryBox(LiveActor* actor, float);
|
||||
void trySetOcclusionQueryBox(LiveActor* actor, const sead::BoundBox3f&);
|
||||
void trySetOcclusionQueryCenter(LiveActor* actor, const sead::Vector3f*);
|
||||
void getModelName(const LiveActor* actor);
|
||||
void isModelName(const LiveActor* actor, const char*);
|
||||
void calcModelBoundingSphereRadius(const LiveActor* actor);
|
||||
void getBoundingSphereCenterAndRadius(sead::Vector3f*, float*, const LiveActor* actor);
|
||||
void calcModelBoundingBox(sead::BoundBox3f*, const LiveActor* actor);
|
||||
void calcModelBoundingBoxMtx(sead::Matrix34f*, const LiveActor* actor);
|
||||
void submitViewModel(const LiveActor* actor, const sead::Matrix34f&);
|
||||
void replaceMaterialTextureRef(LiveActor* actor, nn::g3d::TextureRef*, const char*, const char*);
|
||||
void replaceMaterialResTexture(LiveActor* actor, nn::gfx::ResTexture*, const char*, const char*);
|
||||
void replaceMaterialResTexture(LiveActor*, const char*, const char*, const nn::gfx::DescriptorSlot,
|
||||
nn::gfx::TextureView*);
|
||||
void replaceMaterialLayoutTexture(LiveActor* actor, const LayoutTextureRenderObj*, const char*,
|
||||
const char*);
|
||||
void recreateModelDisplayList(const LiveActor* actor);
|
||||
void calcPolygonNum(const LiveActor* actor, int);
|
||||
void calcPolygonNumCurrentLod(const LiveActor* actor);
|
||||
void calcPolygonNumCurrentLodWithoutVisAnim(const LiveActor* actor);
|
||||
void getLodLevel(const LiveActor* actor);
|
||||
void getMaterialLodLevel(const LiveActor* actor);
|
||||
void getLodLevelNoClamp(const LiveActor* actor);
|
||||
void getLodModelCount(const LiveActor* actor);
|
||||
void forceLodLevel(LiveActor* actor, int);
|
||||
void unforceLodLevel(LiveActor* actor);
|
||||
void isExistLodModel(const LiveActor* actor);
|
||||
void isEnableMaterialLod(const LiveActor* actor);
|
||||
void validateLodModel(LiveActor* actor);
|
||||
void invalidateLodModel(LiveActor* actor);
|
||||
void isValidateLodModel(const LiveActor* actor);
|
||||
void isExistDitherAnimator(const LiveActor* actor);
|
||||
void isValidNearDitherAnim(const LiveActor* actor);
|
||||
void stopDitherAnimAutoCtrl(LiveActor* actor);
|
||||
void restartDitherAnimAutoCtrl(LiveActor* actor);
|
||||
void validateDitherAnim(LiveActor* actor);
|
||||
void invalidateDitherAnim(LiveActor* actor);
|
||||
void validateFarDitherIfInvalidateClipping(LiveActor* actor);
|
||||
void setDitherAnimSphereRadius(LiveActor* actor, float);
|
||||
void setDitherAnimBoundingBox(LiveActor* actor, const sead::Vector3f&);
|
||||
void setDitherAnimMaxAlpha(LiveActor* actor, float);
|
||||
void setDitherAnimClippingJudgeLocalOffset(LiveActor* actor, const sead::Vector3f&);
|
||||
void setDitherAnimClippingJudgeParam(LiveActor* actor, const char*);
|
||||
void resetDitherAnimClippingJudgeParam(LiveActor* actor);
|
||||
void getDitherAnimMinNearDitherAlpha(const LiveActor* actor);
|
||||
void getDitherAnimNearClipStartDistance(const LiveActor* actor);
|
||||
void getDitherAnimNearClipEndDistance(const LiveActor* actor);
|
||||
void calcDitherAnimJudgeDistance(const LiveActor* actor);
|
||||
void createUniqueShader(LiveActor* actor);
|
||||
void isJudgedToClipFrustum(const ClippingDirector*, const sead::Vector3f&, float, float);
|
||||
void isJudgedToClipFrustum(const LiveActor* actor, const sead::Vector3f&, float, float);
|
||||
void isJudgedToClipFrustum(const LiveActor* actor, float, float);
|
||||
void isJudgedToClipFrustumWithoutFar(const ClippingDirector*, const sead::Vector3f&, float, float);
|
||||
void isJudgedToClipFrustumWithoutFar(const LiveActor* actor, const sead::Vector3f&, float, float);
|
||||
void isJudgedToClipFrustumWithoutFar(const LiveActor* actor, float, float);
|
||||
} // namespace al
|
254
lib/al/Library/LiveActor/ActorMovementFunction.h
Normal file
254
lib/al/Library/LiveActor/ActorMovementFunction.h
Normal file
@ -0,0 +1,254 @@
|
||||
#pragma once
|
||||
|
||||
#include <math/seadBoundBox.h>
|
||||
#include <math/seadMatrix.h>
|
||||
#include <math/seadQuat.h>
|
||||
#include <math/seadVector.h>
|
||||
|
||||
namespace al {
|
||||
class LiveActor;
|
||||
class HitSensor;
|
||||
class ActorParamMove;
|
||||
|
||||
void resetPosition(LiveActor* actor);
|
||||
void resetPosition(LiveActor* actor, const sead::Vector3f& trans);
|
||||
void resetRotatePosition(LiveActor* actor, const sead::Vector3f& rot, const sead::Vector3f& trans);
|
||||
void resetQuatPosition(LiveActor* actor, const sead::Quatf& quat, const sead::Vector3f& trans);
|
||||
void resetMtxPosition(LiveActor* actor, const sead::Matrix34f& mtx);
|
||||
void resetActorPosition(LiveActor* actor, const LiveActor* target);
|
||||
bool trySetPosOnGround(LiveActor* actor);
|
||||
void getVelocity(const LiveActor* actor);
|
||||
void getVelocityPtr(LiveActor* actor);
|
||||
void separateVelocityHV(sead::Vector3f*, sead::Vector3f*, const LiveActor* actor);
|
||||
void separateVelocityDirHV(sead::Vector3f*, sead::Vector3f*, const LiveActor* actor, const sead::Vector3f&);
|
||||
void separateVelocityParallelVertical(sead::Vector3f*, sead::Vector3f*, const LiveActor* actor, const sead::Vector3f&);
|
||||
void setVelocity(LiveActor* actor, const sead::Vector3f& vel);
|
||||
void setVelocity(LiveActor* actor, f32 x, f32 y, f32 z);
|
||||
void setVelocityX(LiveActor* actor, f32 x);
|
||||
void setVelocityY(LiveActor* actor, f32 y);
|
||||
void setVelocityZ(LiveActor* actor, f32 z);
|
||||
void setVelocityZero(LiveActor* actor);
|
||||
void setVelocityZeroX(LiveActor* actor);
|
||||
void setVelocityZeroY(LiveActor* actor);
|
||||
void setVelocityZeroZ(LiveActor* actor);
|
||||
void setVelocityZeroH(LiveActor* actor);
|
||||
void setVelocityZeroH(LiveActor* actor, const sead::Vector3f&);
|
||||
void setVelocityZeroV(LiveActor* actor);
|
||||
void setVelocityZeroV(LiveActor* actor, const sead::Vector3f&);
|
||||
void setVelocityJump(LiveActor* actor, f32);
|
||||
void setVelocityToFront(LiveActor* actor, f32);
|
||||
void setVelocityToUp(LiveActor* actor, f32);
|
||||
void setVelocityToSide(LiveActor* actor, f32);
|
||||
void setVelocityToDirection(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void setVelocityToGravity(LiveActor* actor, f32);
|
||||
void setVelocitySeparateHV(LiveActor* actor, const sead::Vector3f&, const sead::Vector3f&, f32, f32);
|
||||
void setVelocitySeparateHV(LiveActor* actor, const sead::Vector3f&, f32, f32);
|
||||
void calcVelocitySeparateHV(sead::Vector3f*, const LiveActor* actor, const sead::Vector3f&, f32, f32);
|
||||
void setVelocitySeparateUp(LiveActor* actor, const sead::Vector3f&, f32, f32);
|
||||
void setVelocityOnlyDir(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void setVelocityOnlyV(LiveActor* actor, f32);
|
||||
void setVelocityOnlyGravity(LiveActor* actor, f32);
|
||||
void addVelocity(LiveActor* actor, const sead::Vector3f& vel);
|
||||
void addVelocity(LiveActor* actor, f32 x, f32 y, f32 z);
|
||||
void addVelocityX(LiveActor* actor, f32 x);
|
||||
void addVelocityY(LiveActor* actor, f32 y);
|
||||
void addVelocityZ(LiveActor* actor, f32 z);
|
||||
void addVelocityDump(LiveActor* actor, const sead::Vector3f& dir, f32 force);
|
||||
void addVelocityJump(LiveActor* actor, f32 force);
|
||||
void addVelocityToFront(LiveActor* actor, f32 force);
|
||||
void addVelocityToUp(LiveActor* actor, f32 force);
|
||||
void addVelocityToSide(LiveActor* actor, f32 force);
|
||||
void addVelocityToDown(LiveActor* actor, f32 force);
|
||||
void addVelocityToDirection(LiveActor* actor, const sead::Vector3f& dir, f32 force);
|
||||
void addVelocityToGravity(LiveActor* actor, f32);
|
||||
void addVelocityToGravityLimit(LiveActor* actor, f32, f32);
|
||||
void addVelocityToGravityFittedGround(LiveActor* actor, f32, u32);
|
||||
void addVelocityToGravityNaturalOrFittedGround(LiveActor* actor, f32);
|
||||
void calcGravityDir(sead::Vector3f*, const LiveActor* actor);
|
||||
void addVelocityToTarget(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void addVelocityToTarget(LiveActor* actor, const sead::Vector3f&, f32, f32, f32, f32);
|
||||
void addVelocityToTargetH(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void addVelocityToTargetHV(LiveActor* actor, const sead::Vector3f&, f32, f32);
|
||||
void addVelocityDampToTarget(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void addVelocityDampToTarget(LiveActor* actor, const sead::Vector3f&, f32, f32);
|
||||
void addVelocityToPlayer(LiveActor* actor, const f32, sead::Vector3f&);
|
||||
void addVelocityToPlayerHV(LiveActor* actor, const f32, f32, sead::Vector3f&);
|
||||
void addVelocityFromTarget(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void addVelocityFromTargetHV(LiveActor* actor, const sead::Vector3f&, f32, f32);
|
||||
void addVelocityFromPlayer(LiveActor* actor, const f32, sead::Vector3f&);
|
||||
void addVelocityFromPlayerHV(LiveActor* actor, const f32, f32, sead::Vector3f&);
|
||||
void addVelocityClockwiseToDirection(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void calcVelocityClockwiseToDirection(LiveActor* actor, sead::Vector3f*, const sead::Vector3f&);
|
||||
void addVelocityClockwiseToTarget(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void addVelocityJumpGroundInertia(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
bool tryAddVelocityLimit(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void subVelocityExceptDirectionLimit(LiveActor* actor, const sead::Vector3f&, f32, f32);
|
||||
void scaleVelocity(LiveActor* actor, f32);
|
||||
void scaleVelocityLimit(LiveActor* actor, f32, f32);
|
||||
void scaleVelocityX(LiveActor* actor, f32);
|
||||
void scaleVelocityY(LiveActor* actor, f32);
|
||||
void scaleVelocityZ(LiveActor* actor, f32);
|
||||
void scaleVelocityHV(LiveActor* actor, f32, f32);
|
||||
void scaleVelocityDirection(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void scaleVelocityExceptDirection(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void scaleVelocityParallelVertical(LiveActor* actor, const sead::Vector3f&, f32, f32);
|
||||
void limitVelocity(LiveActor* actor, f32);
|
||||
void calcSpeed(const LiveActor* actor);
|
||||
void limitVelocityX(LiveActor* actor, f32);
|
||||
void limitVelocityY(LiveActor* actor, f32);
|
||||
void limitVelocityZ(LiveActor* actor, f32);
|
||||
void limitVelocityH(LiveActor* actor, f32);
|
||||
void limitVelocityHV(LiveActor* actor, f32, f32);
|
||||
void limitVelocityUpGravityH(LiveActor* actor, f32, f32, f32);
|
||||
void limitVelocityDir(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void limitVelocityDirSign(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void limitVelocityDirV(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void limitVelocityDirVRate(LiveActor* actor, const sead::Vector3f&, f32, f32);
|
||||
void limitVelocityParallelVertical(LiveActor* actor, const sead::Vector3f&, f32, f32);
|
||||
void limitVelocitySeparateHV(LiveActor* actor, const sead::Vector3f&, f32, f32);
|
||||
void reboundVelocityPart(LiveActor* actor, f32, f32);
|
||||
void reboundVelocityPart(LiveActor* actor, f32, f32, f32, f32);
|
||||
void reboundVelocityFromEachCollision(LiveActor* actor, f32, f32, f32, f32);
|
||||
void reboundVelocityFromCollision(LiveActor* actor, f32, f32, f32);
|
||||
void reboundVelocityFromTriangles(LiveActor* actor, f32, f32);
|
||||
void reboundVelocityFromActor(LiveActor* actor, const LiveActor* target, f32);
|
||||
void reboundVelocityFromActor(LiveActor* actor, const LiveActor* target, const sead::Vector3f&, f32);
|
||||
void reboundVelocityFromSensor(LiveActor* actor, const HitSensor*, f32);
|
||||
void reboundVelocityFromSensor(LiveActor* actor, const HitSensor*, const sead::Vector3f&, f32);
|
||||
void calcDirToActor(sead::Vector3f*, const LiveActor* actor, const LiveActor* target);
|
||||
void reboundVelocityBetweenActor(LiveActor* actor, LiveActor* target, f32);
|
||||
void reboundVelocityBetweenSensor(HitSensor*, HitSensor*, f32);
|
||||
void calcVelocityKeepLengthBetweenActor(sead::Vector3f*, const LiveActor* actor, const LiveActor* target, f32, f32);
|
||||
void addVelocityKeepLengthBetweenActor(LiveActor* actor, LiveActor* target, f32, f32);
|
||||
void addVelocityDumpKeepLengthBetweenActor(LiveActor* actor, LiveActor* target, f32, f32, f32);
|
||||
void calcVelocityBlowAttack(sead::Vector3f*, const LiveActor* actor, const sead::Vector3f&, f32, f32);
|
||||
void addVelocityBlowAttack(LiveActor* actor, const sead::Vector3f&, f32, f32);
|
||||
void addVelocityBlowAttack(LiveActor* actor, const HitSensor*, f32, f32);
|
||||
void setVelocityBlowAttack(LiveActor* actor, const sead::Vector3f&, f32, f32);
|
||||
void setVelocityBlowAttack(LiveActor* actor, const HitSensor*, f32, f32);
|
||||
void setVelocityBlowAttackAndTurnToTarget(LiveActor* actor, const sead::Vector3f&, f32, f32);
|
||||
bool isVelocityFast(const LiveActor* actor, f32);
|
||||
bool isVelocityFastH(const LiveActor* actor, f32);
|
||||
bool isVelocitySlow(const LiveActor* actor, f32);
|
||||
bool isVelocitySlowH(const LiveActor* actor, f32);
|
||||
void calcSpeedH(const LiveActor* actor);
|
||||
void calcSpeedV(const LiveActor* actor);
|
||||
void calcSpeedDirection(const LiveActor* actor, const sead::Vector3f&);
|
||||
void calcSpeedExceptDir(const LiveActor* actor, const sead::Vector3f&);
|
||||
bool isNear(const LiveActor* actor, const LiveActor* target, f32);
|
||||
bool isNear(const LiveActor* actor, const sead::Vector3f&, f32);
|
||||
bool isNearXZ(const LiveActor* actor, const sead::Vector3f&, f32);
|
||||
bool isNearH(const LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void calcDistanceH(const LiveActor* actor, const sead::Vector3f&);
|
||||
bool isNearV(const LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void calcDistanceV(const LiveActor* actor, const sead::Vector3f&);
|
||||
bool isNearHV(const LiveActor* actor, const sead::Vector3f&, f32, f32);
|
||||
bool isNearHV(const LiveActor* actor, const sead::Vector3f&, f32, f32, f32);
|
||||
void calcHeight(const LiveActor* actor, const sead::Vector3f&);
|
||||
bool isFar(const LiveActor* actor, const LiveActor* target, f32);
|
||||
bool isFar(const LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void calcDistance(const LiveActor* actor, const LiveActor* target);
|
||||
void calcDistance(const LiveActor* actor, const sead::Vector3f&);
|
||||
void calcDistanceV(const LiveActor* actor, const LiveActor* target);
|
||||
void calcDistanceH(const LiveActor* actor, const LiveActor* target);
|
||||
void calcDistanceH(const LiveActor* actor, const sead::Vector3f&, const sead::Vector3f&);
|
||||
void calcHeight(const LiveActor* actor, const LiveActor* target);
|
||||
void calcDistanceFront(const LiveActor* actor, const sead::Vector3f&);
|
||||
void calcDistanceFront(const LiveActor* actor, const LiveActor* target);
|
||||
void addRotateAndRepeatX(LiveActor* actor, f32);
|
||||
void addRotateAndRepeatY(LiveActor* actor, f32);
|
||||
void addRotateAndRepeatZ(LiveActor* actor, f32);
|
||||
void addRandomRotateY(LiveActor* actor);
|
||||
void calcQuatSide(sead::Vector3f*, const LiveActor* actor);
|
||||
void calcQuatUp(sead::Vector3f*, const LiveActor* actor);
|
||||
void calcQuatFront(sead::Vector3f*, const LiveActor* actor);
|
||||
void calcQuatLocalAxis(sead::Vector3f*, const LiveActor* actor, s32);
|
||||
void calcTransOffsetFront(sead::Vector3f*, const LiveActor* actor, f32);
|
||||
void calcTransOffsetUp(sead::Vector3f*, const LiveActor* actor, f32);
|
||||
void calcTransOffsetSide(sead::Vector3f*, const LiveActor* actor, f32);
|
||||
void setTransOffsetLocalDir(LiveActor* actor, const sead::Quatf&, const sead::Vector3f&, f32, s32);
|
||||
void addTransOffsetLocal(LiveActor* actor, const sead::Vector3f&);
|
||||
void addTransOffsetLocalDir(LiveActor* actor, f32, s32);
|
||||
void rotateQuatXDirDegree(LiveActor* actor, f32);
|
||||
void rotateQuatXDirDegree(LiveActor* actor, const sead::Quatf&, f32);
|
||||
void rotateQuatYDirDegree(LiveActor* actor, f32);
|
||||
void rotateQuatYDirDegree(LiveActor* actor, const sead::Quatf&, f32);
|
||||
void rotateQuatZDirDegree(LiveActor* actor, f32);
|
||||
void rotateQuatZDirDegree(LiveActor* actor, const sead::Quatf&, f32);
|
||||
void rotateQuatLocalDirDegree(LiveActor* actor, s32, f32);
|
||||
void rotateQuatLocalDirDegree(LiveActor* actor, const sead::Quatf&, s32, f32);
|
||||
void rotateQuatYDirRandomDegree(LiveActor* actor);
|
||||
void rotateQuatYDirRandomDegree(LiveActor* actor, const sead::Quatf&);
|
||||
void turnQuatFrontToDirDegreeH(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void turnQuatFrontToPosDegreeH(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void turnQuatFrontFromPosDegreeH(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void turnFront(LiveActor* actor, f32);
|
||||
void turnFront(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void turnFrontToPos(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void turnFrontToDir(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void turnFrontToDirGetIsFinished(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void turnDirectionDegree(const LiveActor* actor, sead::Vector3f*, const sead::Vector3f&, f32);
|
||||
void turnFrontToTarget(LiveActor* actor, const LiveActor* target, f32);
|
||||
void turnFrontFromTarget(LiveActor* actor, const LiveActor* target, f32);
|
||||
void turnFrontToPlayer(LiveActor* actor, f32);
|
||||
void turnFrontFromPlayer(LiveActor* actor, f32);
|
||||
void turnDirection(const LiveActor* actor, sead::Vector3f*, const sead::Vector3f&, f32);
|
||||
void turnDirectionToTarget(const LiveActor* actor, sead::Vector3f*, const sead::Vector3f&, f32);
|
||||
void turnDirectionToTargetDegree(const LiveActor* actor, sead::Vector3f*, const sead::Vector3f&, f32);
|
||||
void turnDirectionFromTargetDegree(const LiveActor* actor, sead::Vector3f*, const sead::Vector3f&, f32);
|
||||
void turnDirectionAlongGround(const LiveActor* actor, sead::Vector3f*);
|
||||
void turnDirectionAlongGround(LiveActor* actor);
|
||||
void turnToDirectionAxis(LiveActor* actor, const sead::Vector3f&, const sead::Vector3f&, f32);
|
||||
void turnFrontSpherical(const LiveActor* actor, sead::Vector3f*, const sead::Vector3f&, f32);
|
||||
void turnFrontSphericalToTarget(const LiveActor* actor, sead::Vector3f*, const sead::Vector3f&, f32);
|
||||
void turnFrontSphericalToTargetDegree(const LiveActor* actor, sead::Vector3f*, const sead::Vector3f&, f32);
|
||||
void turnToDirection(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void turnLocalDirToDirection(LiveActor* actor, const sead::Vector3f&, const sead::Vector3f&, f32);
|
||||
void turnToTarget(LiveActor* actor, const sead::Vector3f&, f32);
|
||||
void turnToTarget(LiveActor* actor, const LiveActor* target, f32);
|
||||
void faceToDirection(LiveActor* actor, const sead::Vector3f&);
|
||||
void faceToDirectionSupportUp(LiveActor* actor, const sead::Vector3f&);
|
||||
void faceToTarget(LiveActor* actor, const sead::Vector3f&);
|
||||
void faceToTarget(LiveActor* actor, const LiveActor* target);
|
||||
void faceToSensor(LiveActor* actor, const HitSensor*);
|
||||
void faceToVelocity(LiveActor* actor);
|
||||
void calcDirClockwiseToDir(sead::Vector3f*, const LiveActor* actor, const sead::Vector3f&);
|
||||
void calcDirClockwiseToPos(sead::Vector3f*, const LiveActor* actor, const sead::Vector3f&);
|
||||
void calcDirToActorH(sead::Vector3f*, const LiveActor* actor, const LiveActor* target);
|
||||
void calcDirToActorH(sead::Vector3f*, const LiveActor* actor, const sead::Vector3f&);
|
||||
void calcAngleToTargetH(const LiveActor* actor, const sead::Vector3f&);
|
||||
void calcAngleToTargetV(const LiveActor* actor, const sead::Vector3f&);
|
||||
bool isFaceToTargetDegree(const LiveActor* actor, const sead::Vector3f&, const sead::Vector3f&, f32);
|
||||
bool isFaceToTargetDegree(const LiveActor* actor, const sead::Vector3f&, f32);
|
||||
bool isFaceToTargetDegreeHV(const LiveActor* actor, const sead::Vector3f&, const sead::Vector3f&, f32, f32);
|
||||
bool isFaceToTargetDegreeH(const LiveActor* actor, const sead::Vector3f&, const sead::Vector3f&, f32);
|
||||
bool isInSightCone(const LiveActor* actor, const sead::Vector3f&, const sead::Vector3f&, f32, f32);
|
||||
bool isInSightConeTarget(const LiveActor* actor, const LiveActor* target, f32, f32);
|
||||
bool isInSightConePlayer(const LiveActor* actor, f32, f32);
|
||||
bool isInSightFan(const LiveActor* actor, const sead::Vector3f&, const sead::Vector3f&, f32, f32, f32);
|
||||
bool isInSightFanTarget(const LiveActor* actor, const LiveActor* target, f32, f32, f32);
|
||||
bool isInSightBox(const LiveActor* actor, const sead::Vector3f&, const sead::BoundBox3f&);
|
||||
void walkAndTurnToDirection(LiveActor* actor, const sead::Vector3f&, f32, f32, f32, f32, bool);
|
||||
void walkAndTurnToDirection(LiveActor* actor, sead::Vector3f*, const sead::Vector3f&, f32, f32, f32, f32, bool);
|
||||
void walkAndTurnPoseToDirection(LiveActor* actor, const sead::Vector3f&, const ActorParamMove&, bool);
|
||||
void walkAndTurnToTarget(LiveActor* actor, const sead::Vector3f&, f32, f32, f32, f32, bool);
|
||||
void flyAndTurnToDirection(LiveActor* actor, sead::Vector3f*, const sead::Vector3f&, f32, f32, f32, f32);
|
||||
void flyAndTurnToDirection(LiveActor* actor, const sead::Vector3f&, f32, f32, f32, f32);
|
||||
void flyAndTurnToTarget(LiveActor* actor, const sead::Vector3f&, f32, f32, f32, f32);
|
||||
void walkAndTurnToDirectionFittedGroundGravity(LiveActor* actor, sead::Vector3f*, const sead::Vector3f&, f32, f32, f32, f32, bool);
|
||||
void walkAndTurnToDirectionFittedGroundGravity(LiveActor* actor, const sead::Vector3f&, f32, f32, f32, f32, bool);
|
||||
void walkAndTurnToTargetFittedGroundGravity(LiveActor* actor, const sead::Vector3f&, f32, f32, f32, f32, bool);
|
||||
bool tryKillByDeathArea(LiveActor* actor);
|
||||
void rotateAndKeepColliderPosRate(LiveActor* actor, const sead::Vector3f&, const sead::Vector3f&, f32);
|
||||
void calcSpringMovement(LiveActor* actor, const sead::Vector3f&, const f32, f32, sead::Vector3f&, f32, f32);
|
||||
void addVelocityClockwiseToPlayer(LiveActor* actor, f32);
|
||||
void calcDirClockwiseToPlayer(sead::Vector3f*, const LiveActor* actor);
|
||||
void flyAndTurnToPlayer(LiveActor* actor, const ActorParamMove&);
|
||||
void escapeFromPlayer(LiveActor* actor, f32, f32, f32, f32);
|
||||
void escapeFromPlayer(LiveActor* actor, sead::Vector3f*, f32, f32, f32, f32);
|
||||
void walkAndTurnToPlayer(LiveActor* actor, f32, f32, f32, f32, bool);
|
||||
bool isPlayerInSightFan(const LiveActor* actor, f32, f32, f32);
|
||||
bool isFallOrDamageCodeNextMove(const LiveActor* actor, const sead::Vector3f&, f32, f32);
|
||||
bool isFallNextMove(const LiveActor* actor, const sead::Vector3f&, f32, f32);
|
||||
|
||||
} // namespace al
|
20
lib/al/Library/LiveActor/ActorParamHolder.h
Normal file
20
lib/al/Library/LiveActor/ActorParamHolder.h
Normal file
@ -0,0 +1,20 @@
|
||||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
namespace al {
|
||||
class LiveActor;
|
||||
class Resource;
|
||||
|
||||
class ActorParamHolder {
|
||||
public:
|
||||
static const char* getYamlName();
|
||||
static ActorParamHolder* tryCreate(LiveActor* actor, const Resource* resource,
|
||||
const char* suffix);
|
||||
|
||||
f32 findParamF32(const char*);
|
||||
|
||||
private:
|
||||
ActorParamHolder(LiveActor* actor, const Resource* resource, const char* suffix);
|
||||
};
|
||||
} // namespace al
|
@ -33,7 +33,7 @@ public:
|
||||
virtual void copyPose(const ActorPoseKeeperBase* other);
|
||||
virtual void calcBaseMtx(sead::Matrix34f* mtx) const = 0;
|
||||
|
||||
protected: // protected so it's visible to all sub-classes (TFSV, TFGSV, ...)
|
||||
protected: // protected so it's visible to all sub-classes (TFSV, TFGSV, ...)
|
||||
sead::Vector3f mTrans{0, 0, 0};
|
||||
|
||||
static sead::Vector3f sDefaultVelocity;
|
||||
@ -55,7 +55,7 @@ public:
|
||||
void updatePoseMtx(const sead::Matrix34f* mtx) override;
|
||||
void calcBaseMtx(sead::Matrix34f* mtx) const override;
|
||||
|
||||
protected: // protected so it's visible to all sub-classes (TFGSV, TFUSV)
|
||||
protected: // protected so it's visible to all sub-classes (TFGSV, TFUSV)
|
||||
sead::Vector3f mFront = sead::Vector3f::ez;
|
||||
sead::Vector3f mScale{1.0, 1.0, 1.0};
|
||||
sead::Vector3f mVelocity{0.0, 0.0, 0.0};
|
||||
@ -72,6 +72,7 @@ public:
|
||||
void updatePoseQuat(const sead::Quatf& quat) override;
|
||||
void updatePoseMtx(const sead::Matrix34f* mtx) override;
|
||||
void calcBaseMtx(sead::Matrix34f* mtx) const override;
|
||||
|
||||
private:
|
||||
sead::Vector3f mGravity{0.0, -1.0, 0.0};
|
||||
};
|
||||
@ -87,6 +88,7 @@ public:
|
||||
void updatePoseQuat(const sead::Quatf& quat) override;
|
||||
void updatePoseMtx(const sead::Matrix34f* mtx) override;
|
||||
void calcBaseMtx(sead::Matrix34f* mtx) const override;
|
||||
|
||||
private:
|
||||
sead::Vector3f mUp = sead::Vector3f::ey;
|
||||
bool mIsFrontUp = false;
|
||||
@ -107,6 +109,7 @@ public:
|
||||
void updatePoseQuat(const sead::Quatf& quat) override;
|
||||
void updatePoseMtx(const sead::Matrix34f* mtx) override;
|
||||
void calcBaseMtx(sead::Matrix34f* mtx) const override;
|
||||
|
||||
private:
|
||||
sead::Quatf mQuat = sead::Quatf::unit;
|
||||
sead::Vector3f mScale{1.0, 1.0, 1.0};
|
||||
@ -130,6 +133,7 @@ public:
|
||||
void updatePoseQuat(const sead::Quatf& quat) override;
|
||||
void updatePoseMtx(const sead::Matrix34f* mtx) override;
|
||||
void calcBaseMtx(sead::Matrix34f* mtx) const override;
|
||||
|
||||
private:
|
||||
sead::Quatf mQuat = sead::Quatf::unit;
|
||||
sead::Vector3f mGravity{0.0, -1.0, 0.0};
|
||||
@ -156,6 +160,7 @@ public:
|
||||
void updatePoseQuat(const sead::Quatf& quat) override;
|
||||
void updatePoseMtx(const sead::Matrix34f* mtx) override;
|
||||
void calcBaseMtx(sead::Matrix34f* mtx) const override;
|
||||
|
||||
private:
|
||||
sead::Quatf mQuat = sead::Quatf::unit;
|
||||
sead::Vector3f mGravity{0.0, -1.0, 0.0};
|
||||
@ -179,6 +184,7 @@ public:
|
||||
void updatePoseQuat(const sead::Quatf& quat) override;
|
||||
void updatePoseMtx(const sead::Matrix34f* mtx) override;
|
||||
void calcBaseMtx(sead::Matrix34f* mtx) const override;
|
||||
|
||||
private:
|
||||
sead::Vector3f mRotate{0.0, 0.0, 0.0};
|
||||
sead::Vector3f mScale{1.0, 1.0, 1.0};
|
||||
@ -197,17 +203,17 @@ public:
|
||||
sead::Vector3f* getScalePtr() override;
|
||||
const sead::Vector3f& getVelocity() const override;
|
||||
sead::Vector3f* getVelocityPtr() override;
|
||||
__attribute__((flatten))
|
||||
void updatePoseTrans(const sead::Vector3f& trans) override;
|
||||
__attribute__((flatten)) void updatePoseTrans(const sead::Vector3f& trans) override;
|
||||
void updatePoseRotate(const sead::Vector3f& rot) override;
|
||||
void updatePoseQuat(const sead::Quatf& quat) override;
|
||||
void updatePoseMtx(const sead::Matrix34f* mtx) override;
|
||||
void calcBaseMtx(sead::Matrix34f* mtx) const override;
|
||||
|
||||
private:
|
||||
sead::Vector3f mRotate{0.0, 0.0, 0.0};
|
||||
sead::Vector3f mScale{1.0, 1.0, 1.0};
|
||||
sead::Vector3f mVelocity{0.0, 0.0, 0.0};
|
||||
sead::Matrix34f mMtx; // manually set in the ctor
|
||||
sead::Matrix34f mMtx; // manually set in the ctor
|
||||
};
|
||||
|
||||
class ActorPoseKeeperTRGMSV : public ActorPoseKeeperBase {
|
||||
@ -229,6 +235,7 @@ public:
|
||||
void updatePoseQuat(const sead::Quatf& quat) override;
|
||||
void updatePoseMtx(const sead::Matrix34f* mtx) override;
|
||||
void calcBaseMtx(sead::Matrix34f* mtx) const override;
|
||||
|
||||
private:
|
||||
sead::Vector3f mRotate{0.0, 0.0, 0.0};
|
||||
sead::Vector3f mGravity{0.0, -1.0, 0.0};
|
||||
@ -237,4 +244,97 @@ private:
|
||||
sead::Matrix34f mMtx;
|
||||
};
|
||||
|
||||
} // namespace al
|
||||
|
||||
class LiveActor;
|
||||
|
||||
void initActorPoseT(LiveActor* actor, const sead::Vector3f&);
|
||||
void setTrans(LiveActor* actor, const sead::Vector3f&);
|
||||
void initActorPoseTR(LiveActor* actor, const sead::Vector3f&, const sead::Vector3f&);
|
||||
void setRotate(LiveActor* actor, const sead::Vector3f&);
|
||||
void makeMtxSRT(sead::Matrix34f*, const LiveActor* actor);
|
||||
void makeMtxRT(sead::Matrix34f*, const LiveActor* actor);
|
||||
void makeMtxR(sead::Matrix34f*, const LiveActor* actor);
|
||||
void calcAnimFrontGravityPos(LiveActor* actor, const sead::Vector3f&);
|
||||
const sead::Vector3f& getGravity(const al::LiveActor* actor);
|
||||
const sead::Vector3f& getTrans(const al::LiveActor* actor);
|
||||
const sead::Vector3f& getScale(const al::LiveActor* actor);
|
||||
void copyPose(LiveActor* actor, const LiveActor* target);
|
||||
void updatePoseTrans(LiveActor* actor, const sead::Vector3f&);
|
||||
void updatePoseRotate(LiveActor* actor, const sead::Vector3f&);
|
||||
void updatePoseQuat(LiveActor* actor, const sead::Quatf&);
|
||||
void updatePoseMtx(LiveActor* actor, const sead::Matrix34f*);
|
||||
void calcSideDir(sead::Vector3f*, const LiveActor* actor);
|
||||
void calcLeftDir(sead::Vector3f*, const LiveActor* actor);
|
||||
void calcRightDir(sead::Vector3f*, const LiveActor* actor);
|
||||
void calcUpDir(sead::Vector3f*, const LiveActor* actor);
|
||||
void calcDownDir(sead::Vector3f*, const LiveActor* actor);
|
||||
void calcFrontDir(sead::Vector3f*, const LiveActor* actor);
|
||||
void calcBackDir(sead::Vector3f*, const LiveActor* actor);
|
||||
void calcPoseDir(sead::Vector3f*, sead::Vector3f*, sead::Vector3f*, const LiveActor* actor);
|
||||
void calcQuat(sead::Quatf*, const LiveActor* actor);
|
||||
void calcDistanceSignLocalXDir(const LiveActor* actor, const sead::Vector3f&);
|
||||
void calcDistanceSignLocalYDir(const LiveActor* actor, const sead::Vector3f&);
|
||||
void calcDistanceSignLocalZDir(const LiveActor* actor, const sead::Vector3f&);
|
||||
void calcDistanceLocalXDir(const LiveActor* actor, const sead::Vector3f&);
|
||||
void calcDistanceLocalYDir(const LiveActor* actor, const sead::Vector3f&);
|
||||
void calcDistanceLocalZDir(const LiveActor* actor, const sead::Vector3f&);
|
||||
sead::Vector3f* getTransPtr(al::LiveActor* actor);
|
||||
void setTrans(LiveActor* actor, f32, f32, f32);
|
||||
void setTransX(LiveActor* actor, f32);
|
||||
void setTransY(LiveActor* actor, f32);
|
||||
void setTransZ(LiveActor* actor, f32);
|
||||
void getRotate(const LiveActor* actor);
|
||||
void getRotatePtr(LiveActor* actor);
|
||||
void setRotate(LiveActor* actor, f32, f32, f32);
|
||||
void setRotateX(LiveActor* actor, f32);
|
||||
void setRotateY(LiveActor* actor, f32);
|
||||
void setRotateZ(LiveActor* actor, f32);
|
||||
void getScalePtr(LiveActor* actor);
|
||||
bool tryGetScalePtr(LiveActor* actor);
|
||||
float getScaleX(const al::LiveActor* actor);
|
||||
float getScaleY(const al::LiveActor* actor);
|
||||
float getScaleZ(const al::LiveActor* actor);
|
||||
void setScale(LiveActor* actor, const sead::Vector3f&);
|
||||
void setScale(LiveActor* actor, f32, f32, f32);
|
||||
void setScaleAll(LiveActor* actor, f32);
|
||||
void setScaleX(LiveActor* actor, f32);
|
||||
void setScaleY(LiveActor* actor, f32);
|
||||
void setScaleZ(LiveActor* actor, f32);
|
||||
bool isFrontTarget(const LiveActor* actor, const sead::Vector3f&);
|
||||
bool isFrontDir(const LiveActor* actor, const sead::Vector3f&);
|
||||
bool isBackTarget(const LiveActor* actor, const sead::Vector3f&);
|
||||
bool isBackDir(const LiveActor* actor, const sead::Vector3f&);
|
||||
bool isLeftTarget(const LiveActor* actor, const sead::Vector3f&);
|
||||
bool isLeftDir(const LiveActor* actor, const sead::Vector3f&);
|
||||
bool isRightTarget(const LiveActor* actor, const sead::Vector3f&);
|
||||
bool isRightDir(const LiveActor* actor, const sead::Vector3f&);
|
||||
bool isUpTarget(const LiveActor* actor, const sead::Vector3f&);
|
||||
bool isUpDir(const LiveActor* actor, const sead::Vector3f&);
|
||||
bool isDownTarget(const LiveActor* actor, const sead::Vector3f&);
|
||||
bool isDownDir(const LiveActor* actor, const sead::Vector3f&);
|
||||
const sead::Quatf& getQuat(const al::LiveActor* actor);
|
||||
sead::Quatf* getQuatPtr(al::LiveActor* actor);
|
||||
bool tryGetQuatPtr(LiveActor* actor);
|
||||
void setQuat(LiveActor* actor, const sead::Quatf&);
|
||||
void getGravityPtr(const LiveActor* actor);
|
||||
void setGravity(const LiveActor* actor, const sead::Vector3f&);
|
||||
const sead::Vector3f& getFront(const al::LiveActor* actor);
|
||||
sead::Vector3f* getFrontPtr(al::LiveActor* actor);
|
||||
void setFront(LiveActor* actor, const sead::Vector3f&);
|
||||
const sead::Vector3f& getUp(const al::LiveActor* actor);
|
||||
sead::Vector3f* getUpPtr(al::LiveActor* actor);
|
||||
void setUp(LiveActor* actor, const sead::Vector3f&);
|
||||
void multVecPoseNoTrans(sead::Vector3f*, const LiveActor* actor, const sead::Vector3f&);
|
||||
void multVecPose(sead::Vector3f*, const LiveActor* actor, const sead::Vector3f&);
|
||||
void multVecPoseAndScale(sead::Vector3f*, const LiveActor* actor, const sead::Vector3f&);
|
||||
void multVecInvPose(sead::Vector3f*, const LiveActor* actor, const sead::Vector3f&);
|
||||
void multVecInvQuat(sead::Vector3f*, const LiveActor* actor, const sead::Vector3f&);
|
||||
void multMtxInvPose(sead::Matrix34f*, const LiveActor* actor, const sead::Matrix34f&);
|
||||
void calcTransLocalOffset(sead::Vector3f*, const LiveActor* actor, const sead::Vector3f&);
|
||||
|
||||
} // namespace al
|
||||
|
||||
class alActorPoseFunction {
|
||||
void calcBaseMtx(sead::Matrix34f* mtx, const al::LiveActor* actor);
|
||||
void updatePoseTRMSV(al::LiveActor* actor);
|
||||
};
|
||||
|
47
lib/al/Library/LiveActor/ActorSceneInfo.h
Normal file
47
lib/al/Library/LiveActor/ActorSceneInfo.h
Normal file
@ -0,0 +1,47 @@
|
||||
#pragma once
|
||||
|
||||
namespace al {
|
||||
class AreaObjDirector;
|
||||
class CameraDirector;
|
||||
class ClippingDirector;
|
||||
class CollisionDirector;
|
||||
class DemoDirector;
|
||||
class GameDataHolderBase;
|
||||
class GravityHolder;
|
||||
class ItemDirectorBase;
|
||||
class NatureDirector;
|
||||
class GamePadSystem;
|
||||
class PadRumbleDirector;
|
||||
class PlayerHolder;
|
||||
class SceneObjHolder;
|
||||
class SceneStopCtrl;
|
||||
class SceneMsgCtrl;
|
||||
class ScreenCoverCtrl;
|
||||
class ShadowDirector;
|
||||
class ModelGroup;
|
||||
class GraphicsSystemInfo;
|
||||
class ModelDrawBufferCounter;
|
||||
|
||||
struct ActorSceneInfo {
|
||||
AreaObjDirector* mAreaObjDirector;
|
||||
CameraDirector* mCameraDirector;
|
||||
ClippingDirector* mClippingDirector;
|
||||
CollisionDirector* mCollisionDirector;
|
||||
DemoDirector* mDemoDirector;
|
||||
GameDataHolderBase* mGameDataHolder;
|
||||
GravityHolder* mGravityHolder;
|
||||
ItemDirectorBase* mItemDirector;
|
||||
NatureDirector* mNatureDirector;
|
||||
const GamePadSystem* mGamePadSystem;
|
||||
PadRumbleDirector* mPadRumbleDirector;
|
||||
PlayerHolder* mPlayerHolder;
|
||||
SceneObjHolder* mSceneObjHolder;
|
||||
SceneStopCtrl* mSceneStopCtrl;
|
||||
SceneMsgCtrl* mSceneMsgCtrl;
|
||||
ScreenCoverCtrl* mScreenCoverCtrl;
|
||||
ShadowDirector* mShadowDirector;
|
||||
ModelGroup* mModelGroup;
|
||||
GraphicsSystemInfo* mGraphicsSystemInfo;
|
||||
ModelDrawBufferCounter* mModelDrawBufferCounter;
|
||||
};
|
||||
} // namespace al
|
@ -1,15 +1,430 @@
|
||||
#pragma once
|
||||
|
||||
namespace al {
|
||||
#include <math/seadVector.h>
|
||||
|
||||
namespace al {
|
||||
class HitSensor;
|
||||
class ComboCounter;
|
||||
class LiveActor;
|
||||
class SensorMsg;
|
||||
|
||||
void sendMsgPlayerReleaseEquipment(HitSensor* source, HitSensor* target);
|
||||
|
||||
bool isMsgPlayerDisregard(const al::SensorMsg* message);
|
||||
bool isMsgHideModel(const al::SensorMsg* message);
|
||||
bool isMsgShowModel(const al::SensorMsg* message);
|
||||
bool isMsgAskSafetyPoint(const al::SensorMsg* message);
|
||||
bool sendMsgPlayerAttackTrample(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerTrampleReflect(HitSensor* receiver, HitSensor* sender,
|
||||
ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerReflectOrTrample(HitSensor* receiver, HitSensor* sender,
|
||||
ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerHipDrop(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerObjHipDrop(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerObjHipDropReflect(HitSensor* receiver, HitSensor* sender,
|
||||
ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerObjHipDropHighJump(HitSensor* receiver, HitSensor* sender,
|
||||
ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerHipDropKnockDown(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerStatueDrop(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerObjStatueDrop(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerObjStatueDropReflect(HitSensor* receiver, HitSensor* sender,
|
||||
ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerObjStatueDropReflectNoCondition(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerStatueTouch(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerUpperPunch(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerObjUpperPunch(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerRollingAttack(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerRollingReflect(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerObjRollingAttack(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerObjRollingAttackFailure(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerInvincibleAttack(HitSensor* receiver, HitSensor* sender,
|
||||
ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerFireBallAttack(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerRouteDokanFireBallAttack(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerTailAttack(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerTouch(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerKick(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerCatch(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerSlidingAttack(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerBoomerangAttack(HitSensor* receiver, HitSensor* sender,
|
||||
ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerBoomerangAttackCollide(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerBoomerangReflect(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerBoomerangBreak(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerBodyAttack(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerBodyLanding(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerBodyAttackReflect(HitSensor* receiver, HitSensor* sender,
|
||||
ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerClimbAttack(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerSpinAttack(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerGiantAttack(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerCooperationHipDrop(HitSensor* receiver, HitSensor* sender,
|
||||
ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerClimbSlidingAttack(HitSensor* receiver, HitSensor* sender,
|
||||
ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerClimbRollingAttack(HitSensor* receiver, HitSensor* sender,
|
||||
ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerGiantHipDrop(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgPlayerDisregard(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerItemGet(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerPutOnEquipment(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerReleaseEquipment(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerReleaseEquipmentGoal(HitSensor* receiver, HitSensor* sender, u32);
|
||||
bool sendMsgPlayerFloorTouch(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerDamageTouch(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerCarryFront(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerCarryFrontWallKeep(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerCarryUp(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerCarryKeepDemo(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerCarryWarp(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerLeave(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerRelease(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerReleaseBySwing(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerReleaseDamage(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerReleaseDead(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerReleaseDemo(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerToss(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerInvincibleTouch(HitSensor* receiver, HitSensor* sender,
|
||||
ComboCounter* comboCounter);
|
||||
bool sendMsgEnemyAttack(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgEnemyAttackBoomerang(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgEnemyAttackFire(HitSensor* receiver, HitSensor* sender, const char*);
|
||||
bool sendMsgEnemyAttackNeedle(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgEnemyFloorTouch(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgEnemyItemGet(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgEnemyRouteDokanAttack(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgEnemyRouteDokanFire(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgEnemyTouch(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgEnemyUpperPunch(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgEnemyTrample(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgMapObjTrample(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPressureDeath(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgNpcTouch(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgExplosion(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgExplosionCollide(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgPush(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPushStrong(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPushVeryStrong(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgHit(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgHitStrong(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgHitVeryStrong(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgKnockDown(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgMapPush(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgVanish(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgChangeAlpha(LiveActor* receiver, f32 alpha);
|
||||
bool sendMsgShowModel(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgHideModel(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgRestart(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgNeedleBallAttack(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPunpunFloorTouch(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgInvalidateFootPrint(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgKickKouraAttack(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgKickKouraAttackCollide(HitSensor* receiver, HitSensor* sender,
|
||||
ComboCounter* comboCounter);
|
||||
bool sendMsgKickKouraGetItem(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgKickKouraReflect(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgKickKouraCollideNoReflect(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgKickKouraBreak(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgKickKouraBlow(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgKickStoneAttack(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgKickStoneAttackCollide(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgKickStoneAttackHold(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgKickStoneAttackReflect(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgKickStoneTrample(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgKillerAttack(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgLiftGeyser(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgWarpStart(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgWarpEnd(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgHoldCancel(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgHoleIn(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgJumpInhibit(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgGoalKill(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgGoal(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgBindStart(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgBindInit(HitSensor* receiver, HitSensor* sender, u32);
|
||||
bool sendMsgBindEnd(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgBindCancel(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgBindCancelByDemo(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgBindDamage(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgBindSteal(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgBindGiant(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgBallAttack(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgBallRouteDokanAttack(HitSensor* receiver, HitSensor* sender,
|
||||
ComboCounter* comboCounter);
|
||||
bool sendMsgBallAttackHold(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgBallAttackDRCHold(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgBallAttackCollide(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgBallTrample(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgBallTrampleCollide(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgBallItemGet(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgFireBalCollide(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgFireBallFloorTouch(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgDokanBazookaAttack(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgRideAllPlayerItemGet(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgHideModel(LiveActor* receiver);
|
||||
bool sendMsgShowModel(LiveActor* receiver);
|
||||
bool sendMsgRestart(LiveActor* receiver);
|
||||
bool sendMsgCollisionImpulse(HitSensor* receiver, HitSensor* sender, sead::Vector3f*,
|
||||
const sead::Vector3f&, const f32, sead::Vector3f&, f32);
|
||||
bool sendMsgSwitchOn(LiveActor* receiver);
|
||||
bool sendMsgSwitchOnInit(LiveActor* receiver);
|
||||
bool sendMsgSwitchOffInit(LiveActor* receiver);
|
||||
bool sendMsgSwitchKillOn(LiveActor* receiver);
|
||||
bool sendMsgSwitchKillOnInit(LiveActor* receiver);
|
||||
bool sendMsgSwitchKillOffInit(LiveActor* receiver);
|
||||
bool sendMsgPlayerFloorTouchToColliderGround(LiveActor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerUpperPunchToColliderCeiling(LiveActor* receiver, HitSensor* sender);
|
||||
bool sendMsgEnemyFloorTouchToColliderGround(LiveActor* receiver, HitSensor* sender);
|
||||
bool sendMsgEnemyUpperPunchToColliderCeiling(LiveActor* receiver, HitSensor* sender);
|
||||
bool sendMsgAskSafetyPoint(HitSensor* receiver, HitSensor* sender, sead::Vector3f**);
|
||||
bool sendMsgAskSafetyPointToColliderGround(LiveActor* receiver, HitSensor* sender,
|
||||
sead::Vector3f**);
|
||||
bool sendMsgTouchAssist(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgTouchAssistTrig(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgTouchStroke(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgScreenPointInvalidCollisionParts(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgBlockUpperPunch(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgBlockLowerPunch(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgBlockItemGet(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgKillerItemGet(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerKouraAttack(HitSensor* receiver, HitSensor* sender, ComboCounter* comboCounter);
|
||||
bool sendMsgLightFlash(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgForceAbyss(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgIsNerveSupportFreeze(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgOnSyncSupportFreeze(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgOffSyncSupportFreeze(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgSwordAttackHighLeft(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgSwordAttackLowLeft(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgSwordAttackHighRight(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgSwordAttackLowRight(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgSwordAttackJumpUnder(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgSwordBeamAttack(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgSwordBeamReflectAttack(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgShieldGuard(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgEnemyAttackKnockDown(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgAskMultiPlayerEnemy(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgItemGettable(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgKikkiThrow(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgIsKikkiThrowTarget(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerCloudGet(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgAutoJump(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerTouchShadow(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerPullOutShadow(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerAttackShadow(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerAttackShadowStrong(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgPlayerAttackChangePos(HitSensor* receiver, HitSensor* sender, sead::Vector3f* pos);
|
||||
bool sendMsgAtmosOnlineLight(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgLightBurn(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgMoonLightBurn(HitSensor* receiver, HitSensor* sender);
|
||||
bool sendMsgString(HitSensor* receiver, HitSensor* sender, const char* str);
|
||||
bool sendMsgStringV4fPtr(HitSensor* receiver, HitSensor* sender, const char* str,
|
||||
sead::Vector4f* vec);
|
||||
bool sendMsgStringV4fSensorPtr(HitSensor* receiver, HitSensor* sender, const char* str,
|
||||
sead::Vector4f* vec);
|
||||
bool sendMsgStringVoidPtr(HitSensor* receiver, HitSensor* sender, const char* str, void* ptr);
|
||||
|
||||
bool isMsgPushAll(const SensorMsg* msg);
|
||||
bool isMsgPush(const SensorMsg* msg);
|
||||
bool isMsgPushStrong(const SensorMsg* msg);
|
||||
bool isMsgPushVeryStrong(const SensorMsg* msg);
|
||||
bool isMsgHoldReleaseAll(const SensorMsg* msg);
|
||||
bool isMsgHoldCancel(const SensorMsg* msg);
|
||||
bool isMsgPlayerRelease(const SensorMsg* msg);
|
||||
bool isMsgPlayerReleaseBySwing(const SensorMsg* msg);
|
||||
bool isMsgPlayerReleaseDead(const SensorMsg* msg);
|
||||
bool isMsgPlayerReleaseDamage(const SensorMsg* msg);
|
||||
bool isMsgPlayerReleaseDemo(const SensorMsg* msg);
|
||||
bool isMsgItemGetDirectAll(const SensorMsg* msg);
|
||||
bool isMsgPlayerItemGet(const SensorMsg* msg);
|
||||
bool isMsgRideAllPlayerItemGet(const SensorMsg* msg);
|
||||
bool isMsgPlayerTailAttack(const SensorMsg* msg);
|
||||
bool isMsgItemGetByObjAll(const SensorMsg* msg);
|
||||
bool isMsgBallItemGet(const SensorMsg* msg);
|
||||
bool isMsgKickKouraItemGet(const SensorMsg* msg);
|
||||
bool isMsgKillerItemGet(const SensorMsg* msg);
|
||||
bool isMsgItemGetAll(const SensorMsg* msg);
|
||||
bool isMsgFloorTouch(const SensorMsg* msg);
|
||||
bool isMsgPlayerFloorTouch(const SensorMsg* msg);
|
||||
bool isMsgEnemyFloorTouch(const SensorMsg* msg);
|
||||
bool isMsgUpperPunch(const SensorMsg* msg);
|
||||
bool isMsgPlayerUpperPunch(const SensorMsg* msg);
|
||||
bool isMsgEnemyUpperPunch(const SensorMsg* msg);
|
||||
bool isMsgPlayerTrample(const SensorMsg* msg);
|
||||
bool isMsgPlayerTrampleReflect(const SensorMsg* msg);
|
||||
bool isMsgPlayerHipDropAll(const SensorMsg* msg);
|
||||
bool isMsgPlayerStatueDrop(const SensorMsg* msg);
|
||||
bool isMsgPlayerObjHipDropAll(const SensorMsg* msg);
|
||||
bool isMsgPlayerObjStatueDrop(const SensorMsg* msg);
|
||||
bool isMsgPlayerObjHipDropReflectAll(const SensorMsg* msg);
|
||||
bool isMsgPlayerObjStatueDropReflect(const SensorMsg* msg);
|
||||
bool isMsgPlayerObjHipDropHighJump(const SensorMsg* msg);
|
||||
bool isMsgPlayerHipDropKnockDown(const SensorMsg* msg);
|
||||
bool isMsgPlayerObjStatueDropReflectNoCondition(const SensorMsg* msg);
|
||||
bool isMsgPlayerStatueTouch(const SensorMsg* msg);
|
||||
bool isMsgPlayerObjUpperPunch(const SensorMsg* msg);
|
||||
bool isMsgPlayerRollingAttack(const SensorMsg* msg);
|
||||
bool isMsgPlayerRollingReflect(const SensorMsg* msg);
|
||||
bool isMsgPlayerObjRollingAttack(const SensorMsg* msg);
|
||||
bool isMsgPlayerObjRollingAttackFailure(const SensorMsg* msg);
|
||||
bool isMsgPlayerInvincibleAttack(const SensorMsg* msg);
|
||||
bool isMsgPlayerFireBallAttack(const SensorMsg* msg);
|
||||
bool isMsgPlayerRouteDokanFireBallAttack(const SensorMsg* msg);
|
||||
bool isMsgPlayerKick(const SensorMsg* msg);
|
||||
bool isMsgPlayerCatch(const SensorMsg* msg);
|
||||
bool isMsgPlayerSlidingAttack(const SensorMsg* msg);
|
||||
bool isMsgPlayerBoomerangAttack(const SensorMsg* msg);
|
||||
bool isMsgPlayerBoomerangAttackCollide(const SensorMsg* msg);
|
||||
bool isMsgPlayerBoomerangReflect(const SensorMsg* msg);
|
||||
bool isMsgPlayerBoomerangBreak(const SensorMsg* msg);
|
||||
bool isMsgPlayerBodyAttack(const SensorMsg* msg);
|
||||
bool isMsgPlayerBodyLanding(const SensorMsg* msg);
|
||||
bool isMsgPlayerBodyAttackReflect(const SensorMsg* msg);
|
||||
bool isMsgPlayerClimbAttack(const SensorMsg* msg);
|
||||
bool isMsgPlayerSpinAttack(const SensorMsg* msg);
|
||||
bool isMsgPlayerGiantAttack(const SensorMsg* msg);
|
||||
bool isMsgPlayerCooperationHipDrop(const SensorMsg* msg);
|
||||
bool isMsgPlayerClimbSlidingAttack(const SensorMsg* msg);
|
||||
bool isMsgPlayerClimbRollingAttack(const SensorMsg* msg);
|
||||
bool isMsgPlayerGiantHipDrop(const SensorMsg* msg);
|
||||
bool isMsgPlayerDisregard(const SensorMsg* msg);
|
||||
bool isMsgPlayerDash(const SensorMsg* msg);
|
||||
bool isMsgPlayerDamageTouch(const SensorMsg* msg);
|
||||
bool isMsgPlayerFloorTouchBind(const SensorMsg* msg);
|
||||
bool isMsgPlayerTouch(const SensorMsg* msg);
|
||||
bool isMsgPlayerInvincibleTouch(const SensorMsg* msg);
|
||||
bool isMsgPlayerGiantTouch(const SensorMsg* msg);
|
||||
bool isMsgPlayerObjTouch(const SensorMsg* msg);
|
||||
bool isMsgPlayerPutOnEquipment(const SensorMsg* msg);
|
||||
bool isMsgPlayerReleaseEquipment(const SensorMsg* msg);
|
||||
bool isMsgPlayerReleaseEquipmentGoal(const SensorMsg* msg);
|
||||
bool isMsgPlayerCarryFront(const SensorMsg* msg);
|
||||
bool isMsgPlayerCarryFrontWallKeep(const SensorMsg* msg);
|
||||
bool isMsgPlayerCarryUp(const SensorMsg* msg);
|
||||
bool isMsgPlayerCarryKeepDemo(const SensorMsg* msg);
|
||||
bool isMsgPlayerCarryWarp(const SensorMsg* msg);
|
||||
bool isMsgPlayerLeave(const SensorMsg* msg);
|
||||
bool isMsgPlayerToss(const SensorMsg* msg);
|
||||
bool isMsgEnemyAttack(const SensorMsg* msg);
|
||||
bool isMsgEnemyAttackFire(const SensorMsg* msg);
|
||||
bool isMsgEnemyAttackKnockDown(const SensorMsg* msg);
|
||||
bool isMsgEnemyAttackBoomerang(const SensorMsg* msg);
|
||||
bool isMsgEnemyAttackNeedle(const SensorMsg* msg);
|
||||
bool isMsgEnemyItemGet(const SensorMsg* msg);
|
||||
bool isMsgEnemyRouteDokanAttack(const SensorMsg* msg);
|
||||
bool isMsgEnemyRouteDokanFire(const SensorMsg* msg);
|
||||
bool isMsgExplosion(const SensorMsg* msg);
|
||||
bool isMsgExplosionCollide(const SensorMsg* msg);
|
||||
bool isMsgBindStart(const SensorMsg* msg);
|
||||
bool isMsgBindInit(const SensorMsg* msg);
|
||||
bool isMsgBindEnd(const SensorMsg* msg);
|
||||
bool isMsgBindCancel(const SensorMsg* msg);
|
||||
bool isMsgBindCancelByDemo(const SensorMsg* msg);
|
||||
bool isMsgBindDamage(const SensorMsg* msg);
|
||||
bool isMsgBindSteal(const SensorMsg* msg);
|
||||
bool isMsgBindGiant(const SensorMsg* msg);
|
||||
bool isMsgPressureDeath(const SensorMsg* msg);
|
||||
bool isMsgNpcTouch(const SensorMsg* msg);
|
||||
bool isMsgHit(const SensorMsg* msg);
|
||||
bool isMsgHitStrong(const SensorMsg* msg);
|
||||
bool isMsgHitVeryStrong(const SensorMsg* msg);
|
||||
bool isMsgKnockDown(const SensorMsg* msg);
|
||||
bool isMsgMapPush(const SensorMsg* msg);
|
||||
bool isMsgVanish(const SensorMsg* msg);
|
||||
bool isMsgChangeAlpha(const SensorMsg* msg);
|
||||
bool isMsgShowModel(const SensorMsg* msg);
|
||||
bool isMsgHideModel(const SensorMsg* msg);
|
||||
bool isMsgRestart(const SensorMsg* msg);
|
||||
bool isMsgEnemyTouch(const SensorMsg* msg);
|
||||
bool isMsgEnemyTrample(const SensorMsg* msg);
|
||||
bool isMsgMapObjTrample(const SensorMsg* msg);
|
||||
bool isMsgNeedleBallAttack(const SensorMsg* msg);
|
||||
bool isMsgPunpunFloorTouch(const SensorMsg* msg);
|
||||
bool isMsgInvalidateFootPrint(const SensorMsg* msg);
|
||||
bool isMsgKickKouraAttack(const SensorMsg* msg);
|
||||
bool isMsgKickKouraAttackCollide(const SensorMsg* msg);
|
||||
bool isMsgKickKouraReflect(const SensorMsg* msg);
|
||||
bool isMsgKickKouraCollideNoReflect(const SensorMsg* msg);
|
||||
bool isMsgKickKouraBreak(const SensorMsg* msg);
|
||||
bool isMsgKickKouraBlow(const SensorMsg* msg);
|
||||
bool isMsgKickStoneAttack(const SensorMsg* msg);
|
||||
bool isMsgKickStoneAttackCollide(const SensorMsg* msg);
|
||||
bool isMsgKickStoneAttackHold(const SensorMsg* msg);
|
||||
bool isMsgKickStoneAttackReflect(const SensorMsg* msg);
|
||||
bool isMsgKickStoneTrample(const SensorMsg* msg);
|
||||
bool isMsgKillerAttack(const SensorMsg* msg);
|
||||
bool isMsgLiftGeyser(const SensorMsg* msg);
|
||||
bool isMsgWarpStart(const SensorMsg* msg);
|
||||
bool isMsgWarpEnd(const SensorMsg* msg);
|
||||
bool isMsgHoleIn(const SensorMsg* msg);
|
||||
bool isMsgJumpInhibit(const SensorMsg* msg);
|
||||
bool isMsgGoalKill(const SensorMsg* msg);
|
||||
bool isMsgGoal(const SensorMsg* msg);
|
||||
bool isMsgBallAttack(const SensorMsg* msg);
|
||||
bool isMsgBallRouteDokanAttack(const SensorMsg* msg);
|
||||
bool isMsgBallAttackHold(const SensorMsg* msg);
|
||||
bool isMsgBallAttackDRCHold(const SensorMsg* msg);
|
||||
bool isMsgBallAttackCollide(const SensorMsg* msg);
|
||||
bool isMsgBallTrample(const SensorMsg* msg);
|
||||
bool isMsgBallTrampleCollide(const SensorMsg* msg);
|
||||
bool isMsgFireBallCollide(const SensorMsg* msg);
|
||||
bool isMsgFireBallFloorTouch(const SensorMsg* msg);
|
||||
bool isMsgDokanBazookaAttack(const SensorMsg* msg);
|
||||
bool isMsgSwitchOn(const SensorMsg* msg);
|
||||
bool isMsgSwitchOnInit(const SensorMsg* msg);
|
||||
bool isMsgSwitchOffInit(const SensorMsg* msg);
|
||||
bool isMsgSwitchKillOn(const SensorMsg* msg);
|
||||
bool isMsgSwitchKillOnInit(const SensorMsg* msg);
|
||||
bool isMsgSwitchKillOffInit(const SensorMsg* msg);
|
||||
bool isMsgAskSafetyPoint(const SensorMsg* msg);
|
||||
bool trySetAskSafetyPointFollowPos(const SensorMsg* msg, sead::Vector3f*);
|
||||
bool isMsgTouchAssist(const SensorMsg* msg);
|
||||
bool isMsgTouchAssistNoPat(const SensorMsg* msg);
|
||||
bool isMsgTouchAssistTrig(const SensorMsg* msg);
|
||||
bool isMsgTouchAssistTrigOff(const SensorMsg* msg);
|
||||
bool isMsgTouchAssistTrigNoPat(const SensorMsg* msg);
|
||||
bool isMsgTouchAssistBurn(const SensorMsg* msg);
|
||||
bool isMsgTouchAssistAll(const SensorMsg* msg);
|
||||
bool isMsgTouchCarryItem(const SensorMsg* msg);
|
||||
bool isMsgTouchReleaseItem(const SensorMsg* msg);
|
||||
bool isMsgTouchStroke(const SensorMsg* msg);
|
||||
bool isMsgIsNerveSupportFreeze(const SensorMsg* msg);
|
||||
bool isMsgOnSyncSupportFreeze(const SensorMsg* msg);
|
||||
bool isMsgOffSyncSupportFreeze(const SensorMsg* msg);
|
||||
bool isMsgScreenPointInvalidCollisionParts(const SensorMsg* msg);
|
||||
bool isMsgBlockUpperPunch(const SensorMsg* msg);
|
||||
bool isMsgBlockLowerPunch(const SensorMsg* msg);
|
||||
bool isMsgBlockItemGet(const SensorMsg* msg);
|
||||
bool isMsgPlayerKouraAttack(const SensorMsg* msg);
|
||||
bool isMsgLightFlash(const SensorMsg* msg);
|
||||
bool isMsgForceAbyss(const SensorMsg* msg);
|
||||
bool isMsgSwordAttackHigh(const SensorMsg* msg);
|
||||
bool isMsgSwordAttackHighLeft(const SensorMsg* msg);
|
||||
bool isMsgSwordAttackHighRight(const SensorMsg* msg);
|
||||
bool isMsgSwordAttackLow(const SensorMsg* msg);
|
||||
bool isMsgSwordAttackLowLeft(const SensorMsg* msg);
|
||||
bool isMsgSwordAttackLowRight(const SensorMsg* msg);
|
||||
bool isMsgSwordBeamAttack(const SensorMsg* msg);
|
||||
bool isMsgSwordBeamReflectAttack(const SensorMsg* msg);
|
||||
bool isMsgSwordAttackJumpUnder(const SensorMsg* msg);
|
||||
bool isMsgShieldGuard(const SensorMsg* msg);
|
||||
bool isMsgAskMultiPlayerEnemy(const SensorMsg* msg);
|
||||
bool isMsgItemGettable(const SensorMsg* msg);
|
||||
bool isMsgKikkiThrow(const SensorMsg* msg);
|
||||
bool isMsgIsKikkiThrowTarget(const SensorMsg* msg);
|
||||
bool isMsgPlayerCloudGet(const SensorMsg* msg);
|
||||
bool isMsgAutoJump(const SensorMsg* msg);
|
||||
bool isMsgPlayerTouchShadow(const SensorMsg* msg);
|
||||
bool isMsgPlayerPullOutShadow(const SensorMsg* msg);
|
||||
bool isMsgPlayerAttackShadow(const SensorMsg* msg);
|
||||
bool isMsgPlayerAttackShadowStrong(const SensorMsg* msg);
|
||||
bool isMsgPlayerAttackChangePos(const SensorMsg* msg);
|
||||
bool isMsgAtmosOnlineLight(const SensorMsg* msg);
|
||||
bool isMsgLightBurn(const SensorMsg* msg);
|
||||
bool isMsgMoonLightBurn(const SensorMsg* msg);
|
||||
bool isMsgString(const SensorMsg* msg);
|
||||
bool isMsgStringV4fPtr(const SensorMsg* msg);
|
||||
bool isMsgStringV4fSensorPtr(const SensorMsg* msg);
|
||||
bool isMsgStringVoidPtr(const SensorMsg* msg);
|
||||
bool isMsgPlayerTrampleForCrossoverSensor(const SensorMsg* msg, const HitSensor*, const HitSensor*);
|
||||
bool isMsgPlayerTrampleReflectForCrossoverSensor(const SensorMsg* msg, const HitSensor*,
|
||||
const HitSensor*);
|
||||
bool isMsgPlayerUpperPunchForCrossoverSensor(const SensorMsg* msg, const HitSensor*,
|
||||
const HitSensor*, f32);
|
||||
bool isMsgKickStoneTrampleForCrossoverSensor(const SensorMsg* msg, const HitSensor*,
|
||||
const HitSensor*);
|
||||
} // namespace al
|
||||
|
@ -1,43 +1,18 @@
|
||||
#pragma once
|
||||
|
||||
#include "al/Library/Yaml/ByamlIter.h"
|
||||
|
||||
#include "al/Library/HostIO/HioNode.h"
|
||||
#include <math/seadMatrix.h>
|
||||
#include "al/Library/Area/IUseAreaObj.h"
|
||||
#include "al/Library/Audio/IUseAudioKeeper.h"
|
||||
#include "al/Library/Camera/IUseCamera.h"
|
||||
#include "al/Library/Collision/IUseCollision.h"
|
||||
#include "al/Library/Effect/IUseEffectKeeper.h"
|
||||
#include "al/Library/Nerve/Nerve.h"
|
||||
#include "al/Library/Rail/RailKeeper.h"
|
||||
#include "al/Library/Rail/RailRider.h"
|
||||
#include "al/Library/HostIO/HioNode.h"
|
||||
#include "al/Library/Nerve/IUseNerve.h"
|
||||
#include "al/Library/Rail/IUseRail.h"
|
||||
#include "al/Library/Scene/SceneObjHolder.h"
|
||||
#include "al/Library/Screen/ScreenPointKeeper.h"
|
||||
#include "al/Library/HitSensor/HitSensorKeeper.h"
|
||||
#include "al/Library/Stage/StageSwitchKeeper.h"
|
||||
|
||||
namespace al {
|
||||
class ActorScoreKeeper {
|
||||
public:
|
||||
struct Entry {
|
||||
const char* factorName;
|
||||
const char* categoryName;
|
||||
};
|
||||
|
||||
ActorScoreKeeper();
|
||||
|
||||
void init(const al::ByamlIter& iter);
|
||||
void getCategoryName(); // unknown return type
|
||||
const char* tryGetCategoryName(const char* a1);
|
||||
|
||||
private:
|
||||
inline void allocArray();
|
||||
inline void putEntry(int index, const al::ByamlIter& iter);
|
||||
|
||||
Entry* array;
|
||||
int size;
|
||||
};
|
||||
|
||||
class ActorPoseKeeperBase;
|
||||
class ActorExecuteInfo;
|
||||
class ActorActionKeeper;
|
||||
@ -46,33 +21,43 @@ class ActorScoreKeeper;
|
||||
class Collider;
|
||||
class CollisionParts;
|
||||
class ModelKeeper;
|
||||
class NerveKeeper;
|
||||
class HitSensorKeeper;
|
||||
class ScreenPointKeeper;
|
||||
class EffectKeeper;
|
||||
class AudioKeeper;
|
||||
class HitReactionKeeper;
|
||||
class StageSwitchKeeper;
|
||||
class RailKeeper;
|
||||
class ShadowKeeper;
|
||||
class ActorPrePassLightKeeper;
|
||||
class ActorOcclusionKeeper;
|
||||
class SubActorKeeper;
|
||||
class ActorSceneInfo;
|
||||
class LiveActorFlag;
|
||||
|
||||
class ActorParamHolder;
|
||||
struct ActorSceneInfo;
|
||||
struct LiveActorFlag;
|
||||
class ActorInitInfo;
|
||||
class HitSensor;
|
||||
class SensorMsg;
|
||||
class ScreenPointer;
|
||||
class ScreenPointTarget;
|
||||
|
||||
class LiveActor : public al::IUseNerve,
|
||||
public al::IUseEffectKeeper,
|
||||
public al::IUseAudioKeeper,
|
||||
public al::IUseStageSwitch,
|
||||
public al::IUseSceneObjHolder,
|
||||
public al::IUseAreaObj,
|
||||
public al::IUseCamera,
|
||||
public al::IUseCollision,
|
||||
public al::IUseRail,
|
||||
public al::IUseHioNode {
|
||||
public:
|
||||
LiveActor(const char* name); // TODO requires implementation
|
||||
class LiveActor : public IUseNerve,
|
||||
public IUseEffectKeeper,
|
||||
public IUseAudioKeeper,
|
||||
public IUseStageSwitch,
|
||||
public IUseSceneObjHolder,
|
||||
public IUseAreaObj,
|
||||
public IUseCamera,
|
||||
public IUseCollision,
|
||||
public IUseRail,
|
||||
public IUseHioNode {
|
||||
friend class alActorFunction;
|
||||
|
||||
virtual NerveKeeper* getNerveKeeper() const override;
|
||||
public:
|
||||
LiveActor(const char* actorName);
|
||||
|
||||
NerveKeeper* getNerveKeeper() const override;
|
||||
virtual void init(const ActorInitInfo& info);
|
||||
virtual void initAfterPlacement();
|
||||
virtual void appear();
|
||||
@ -85,12 +70,10 @@ public:
|
||||
virtual void startClipped();
|
||||
virtual void endClipped();
|
||||
virtual void attackSensor(HitSensor* target, HitSensor* source);
|
||||
virtual bool receiveMsg(const SensorMsg* message, HitSensor* source,
|
||||
HitSensor* target); // NOTE: return type unknown
|
||||
virtual bool receiveMsgScreenPoint(const SensorMsg*, ScreenPointer*,
|
||||
ScreenPointTarget*); // NOTE: return type unknown
|
||||
virtual bool receiveMsg(const SensorMsg* message, HitSensor* source, HitSensor* target);
|
||||
virtual bool receiveMsgScreenPoint(const SensorMsg*, ScreenPointer*, ScreenPointTarget*);
|
||||
virtual const char* getName() const override;
|
||||
virtual void* getBaseMtx() const; // NOTE: return type unknown
|
||||
virtual sead::Matrix44f* getBaseMtx() const;
|
||||
virtual EffectKeeper* getEffectKeeper() const override;
|
||||
virtual AudioKeeper* getAudioKeeper() const override;
|
||||
virtual StageSwitchKeeper* getStageSwitchKeeper() const override;
|
||||
@ -109,42 +92,66 @@ public:
|
||||
void initModelKeeper(ModelKeeper*);
|
||||
void initActionKeeper(ActorActionKeeper*);
|
||||
void initNerveKeeper(NerveKeeper*);
|
||||
void initHitSensor(int);
|
||||
void initHitSensor(s32);
|
||||
void initScreenPointKeeper(ScreenPointKeeper*);
|
||||
void initEffectKeeper(EffectKeeper*);
|
||||
void initAudioKeeper(AudioKeeper*);
|
||||
void initRailKeeper(const ActorInitInfo&, const char*);
|
||||
void initCollider(float, float, unsigned int);
|
||||
void initItemKeeper(int);
|
||||
void initCollider(f32, f32, u32);
|
||||
void initItemKeeper(s32);
|
||||
void initScoreKeeper();
|
||||
void initActorPrePassLightKeeper(ActorPrePassLightKeeper*);
|
||||
void initActorOcclusionKeeper(ActorOcclusionKeeper*);
|
||||
void initSubActorKeeper(SubActorKeeper*);
|
||||
void initSceneInfo(ActorSceneInfo*);
|
||||
|
||||
LiveActorFlag* getFlags() const { return mFlags; }
|
||||
ModelKeeper* getModelKeeper() const { return mModelKeeper; }
|
||||
ActorPoseKeeperBase* getPoseKeeper() const { return mPoseKeeper; }
|
||||
|
||||
private:
|
||||
const char* mActorName;
|
||||
al::ActorPoseKeeperBase* mPoseKeeper;
|
||||
al::ActorExecuteInfo* mLayoutExecuteInfo;
|
||||
al::ActorActionKeeper* mActorActionKeeper;
|
||||
al::ActorItemKeeper* mActorItemKeeper;
|
||||
al::ActorScoreKeeper* mActorScoreKeeper;
|
||||
al::Collider* mCollider;
|
||||
al::CollisionParts* mCollisionParts;
|
||||
al::ModelKeeper* mModelKeeper;
|
||||
al::NerveKeeper* mNerveKeeper;
|
||||
al::HitSensorKeeper* mHitSensorKeeper;
|
||||
al::ScreenPointKeeper* mScreenPointKeeper;
|
||||
al::EffectKeeper* mEffectKeeper;
|
||||
al::AudioKeeper* mAudioKeeper;
|
||||
void* gap_4;
|
||||
al::StageSwitchKeeper* mStageSwitchKeeper;
|
||||
al::RailKeeper* mRailKeeper;
|
||||
al::ShadowKeeper* mShadowKeeper;
|
||||
al::ActorPrePassLightKeeper* mActorPrePassLightKeeper;
|
||||
al::ActorOcclusionKeeper* mActorOcclusionKeeper;
|
||||
al::SubActorKeeper* mSubActorKeeper;
|
||||
void* gap_6;
|
||||
al::ActorSceneInfo* mSceneInfo;
|
||||
al::LiveActorFlag* mLiveActorFlag;
|
||||
ActorPoseKeeperBase* mPoseKeeper;
|
||||
ActorExecuteInfo* mLayoutExecuteInfo;
|
||||
ActorActionKeeper* mActorActionKeeper;
|
||||
ActorItemKeeper* mActorItemKeeper;
|
||||
ActorScoreKeeper* mActorScoreKeeper;
|
||||
Collider* mCollider;
|
||||
CollisionParts* mCollisionParts;
|
||||
ModelKeeper* mModelKeeper;
|
||||
NerveKeeper* mNerveKeeper;
|
||||
HitSensorKeeper* mHitSensorKeeper;
|
||||
ScreenPointKeeper* mScreenPointKeeper;
|
||||
EffectKeeper* mEffectKeeper;
|
||||
AudioKeeper* mAudioKeeper;
|
||||
HitReactionKeeper* mHitReactionKeeper;
|
||||
StageSwitchKeeper* mStageSwitchKeeper;
|
||||
RailKeeper* mRailKeeper;
|
||||
ShadowKeeper* mShadowKeeper;
|
||||
ActorPrePassLightKeeper* mActorPrePassLightKeeper;
|
||||
ActorOcclusionKeeper* mActorOcclusionKeeper;
|
||||
SubActorKeeper* mSubActorKeeper;
|
||||
ActorParamHolder* mActorParamHolder;
|
||||
ActorSceneInfo* mSceneInfo;
|
||||
LiveActorFlag* mFlags;
|
||||
};
|
||||
}; // namespace al
|
||||
|
||||
struct LiveActorFlag {
|
||||
bool isDead = true;
|
||||
bool isClipped = false;
|
||||
bool isClippingInvalid = true;
|
||||
bool isDrawClipped = false;
|
||||
bool isCalcAnim = false;
|
||||
bool isModelVisible = false;
|
||||
bool isCollideOff = true;
|
||||
bool field_07 = false;
|
||||
bool isMaterialCodeValid = false;
|
||||
bool isPuddleMaterialValid = false;
|
||||
bool isAreaTargetOn = true;
|
||||
bool isUpdateOn = true;
|
||||
|
||||
LiveActorFlag();
|
||||
};
|
||||
static_assert(sizeof(LiveActorFlag) == 0xC);
|
||||
|
||||
} // namespace al
|
||||
|
@ -1,24 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
namespace al {
|
||||
|
||||
class LiveActorFlag {
|
||||
public:
|
||||
LiveActorFlag();
|
||||
|
||||
bool val1 = true;
|
||||
bool val2 = false;
|
||||
bool val3 = true;
|
||||
bool val4 = false;
|
||||
bool val5 = false;
|
||||
bool val6 = false;
|
||||
bool val7 = true;
|
||||
bool val8 = false;
|
||||
bool val9 = false;
|
||||
bool val10 = false;
|
||||
bool val11 = true;
|
||||
bool val12 = true;
|
||||
};
|
||||
static_assert(sizeof(LiveActorFlag) == 0xC);
|
||||
|
||||
} // namespace al
|
@ -1,31 +1,50 @@
|
||||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
#include "al/Library/HostIO/HioNode.h"
|
||||
|
||||
namespace al {
|
||||
class LiveActor;
|
||||
|
||||
class LiveActorGroup : public al::HioNode {
|
||||
class LiveActorGroup : public HioNode {
|
||||
public:
|
||||
LiveActorGroup(const char*, int);
|
||||
LiveActorGroup(const char*, s32);
|
||||
|
||||
virtual int registerActor(al::LiveActor*);
|
||||
virtual s32 registerActor(LiveActor*);
|
||||
|
||||
void removeActor(const al::LiveActor*);
|
||||
void removeActor(const LiveActor*);
|
||||
void removeActorAll();
|
||||
bool isExistActor(const al::LiveActor*) const;
|
||||
bool isExistActor(const LiveActor*) const;
|
||||
bool isFull() const;
|
||||
int calcAliveActorNum() const;
|
||||
al::LiveActor* getDeadActor() const;
|
||||
al::LiveActor* tryFindDeadActor() const;
|
||||
LiveActor* getDeadActor() const;
|
||||
LiveActor* tryFindDeadActor() const;
|
||||
void appearAll();
|
||||
void killAll();
|
||||
void makeActorAliveAll();
|
||||
void makeActorDeadAll();
|
||||
|
||||
const char* mGroupName; // _8
|
||||
int mMaxActorCount; // _10
|
||||
int mActorCount; // _14
|
||||
al::LiveActor** mActors; // _18
|
||||
private:
|
||||
const char* mGroupName;
|
||||
s32 mMaxActorCount;
|
||||
s32 mActorCount;
|
||||
LiveActor** mActors;
|
||||
};
|
||||
|
||||
template <class T>
|
||||
class DeriveActorGroup : LiveActorGroup {
|
||||
public:
|
||||
s32 registerActor(T* actor) { LiveActorGroup::registerActor(actor); }
|
||||
void removeActor(const T* actor) { LiveActorGroup::removeActor(actor); }
|
||||
void removeActorAll() { LiveActorGroup::removeActorAll(); }
|
||||
bool isExistActor(const T* actor) const { return LiveActorGroup::isExistActor(actor); }
|
||||
bool isFull() const { return LiveActorGroup::isFull(); }
|
||||
s32 calcAliveActorNum() const { return LiveActorGroup::calcAliveActorNum(); }
|
||||
T* getDeadActor() const { return LiveActorGroup::getDeadActor(); }
|
||||
T* tryFindDeadActor() const { return LiveActorGroup::tryFindDeadActor(); }
|
||||
void appearAll() { LiveActorGroup::appearAll(); }
|
||||
void killAll() { LiveActorGroup::killAll(); }
|
||||
void makeActorAliveAll() { LiveActorGroup::makeActorAliveAll(); }
|
||||
void makeActorDeadAll() { LiveActorGroup::makeActorDeadAll(); }
|
||||
};
|
||||
}; // namespace al
|
||||
|
@ -5,31 +5,18 @@
|
||||
#include <math/seadVector.h>
|
||||
#include <prim/seadSafeString.h>
|
||||
#include "al/Library/LiveActor/LiveActor.h"
|
||||
#include "al/Library/Nerve/Nerve.h"
|
||||
|
||||
namespace al {
|
||||
|
||||
template <typename T>
|
||||
al::LiveActor* createActorFunction(const char* actorName);
|
||||
|
||||
const sead::Vector3f& getTrans(const al::LiveActor*);
|
||||
const sead::Vector3f& getGravity(const al::LiveActor*);
|
||||
const sead::Vector3f& getUp(const al::LiveActor*);
|
||||
const sead::Vector3f& getFront(const al::LiveActor*);
|
||||
const sead::Vector3f& getVelocity(const al::LiveActor*);
|
||||
const sead::Quatf& getQuat(const al::LiveActor*);
|
||||
sead::Vector3f* getTransPtr(al::LiveActor*);
|
||||
sead::Vector3f* getGravityPtr(al::LiveActor*);
|
||||
sead::Vector3f* getUpPtr(al::LiveActor*);
|
||||
sead::Vector3f* getFrontPtr(al::LiveActor*);
|
||||
sead::Vector3f* getVelocityPtr(al::LiveActor*);
|
||||
sead::Quatf* getQuatPtr(al::LiveActor*);
|
||||
|
||||
const sead::Vector3f& getCameraUp(const al::LiveActor*, int);
|
||||
|
||||
const sead::Vector3f& getScale(const al::LiveActor*);
|
||||
float getScaleX(const al::LiveActor*);
|
||||
float getScaleY(const al::LiveActor*);
|
||||
float getScaleZ(const al::LiveActor*);
|
||||
const sead::Vector3f& getVelocity(const al::LiveActor* actor);
|
||||
sead::Vector3f* getVelocityPtr(al::LiveActor* actor);
|
||||
sead::Vector3f* getGravityPtr(al::LiveActor* actor);
|
||||
|
||||
float calcDistance(const al::LiveActor*, const sead::Vector3f&);
|
||||
float calcDistance(const al::LiveActor*, const al::LiveActor*);
|
||||
@ -39,7 +26,6 @@ float calcSpeedV(const al::LiveActor*);
|
||||
|
||||
bool isClipped(const LiveActor*);
|
||||
void tryInitFixedModelGpuBuffer(const LiveActor*);
|
||||
void offUpdateMovementEffectAudioCollisionSensor(const LiveActor*);
|
||||
bool isDead(const LiveActor*);
|
||||
bool isAlive(const LiveActor*);
|
||||
bool isHideModel(const LiveActor*);
|
||||
@ -48,15 +34,10 @@ void showModelIfHide(al::LiveActor*);
|
||||
void setModelAlphaMask(const LiveActor*, float);
|
||||
void resetPosition(const LiveActor*);
|
||||
const LiveActor* getSubActor(const LiveActor*, const char*); // NOTE: unknown return type
|
||||
sead::Matrix34f* getJointMtxPtr(const LiveActor*, const char*); // return type might be const
|
||||
void onSyncClippingSubActor(LiveActor*, const LiveActor*);
|
||||
void onSyncHideSubActor(LiveActor*, const LiveActor*);
|
||||
void onSyncAlphaMaskSubActor(LiveActor*, const LiveActor*);
|
||||
void setMaterialProgrammable(al::LiveActor*);
|
||||
void startAction(al::LiveActor*, char const*);
|
||||
void tryStartAction(al::LiveActor*, char const*);
|
||||
bool isActionEnd(const al::LiveActor*);
|
||||
bool isExistAction(const al::LiveActor*);
|
||||
bool isExistModel(const al::LiveActor*);
|
||||
bool isViewDependentModel(const al::LiveActor*);
|
||||
void calcViewModel(const al::LiveActor*);
|
||||
@ -76,9 +57,6 @@ void initJointGlobalQuatController(const al::LiveActor*, const sead::Quatf*, con
|
||||
|
||||
bool isEffectEmitting(const IUseEffectKeeper*, const char*);
|
||||
|
||||
void trySyncStageSwitchAppear(al::LiveActor* actor);
|
||||
void trySyncStageSwitchAppearAndKill(al::LiveActor* actor);
|
||||
|
||||
void registActorToDemoInfo(al::LiveActor* actor, const al::ActorInitInfo& info);
|
||||
|
||||
} // namespace al
|
||||
|
@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "al/Library/LiveActor/LiveActor.h"
|
||||
|
||||
namespace al {
|
||||
class FixMapParts : public LiveActor {
|
||||
public:
|
||||
|
27
lib/al/Library/Math/InOutParam.h
Normal file
27
lib/al/Library/Math/InOutParam.h
Normal file
@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
namespace al {
|
||||
class ByamlIter;
|
||||
|
||||
class InOutParam {
|
||||
public:
|
||||
InOutParam();
|
||||
InOutParam(const InOutParam& src);
|
||||
InOutParam(f32 inMin, f32 inMax, f32 outMin, f32 outMax);
|
||||
void init(const ByamlIter& iter);
|
||||
f32 calcLeapValue(f32 value);
|
||||
f32 calcEaseInValue(f32 value);
|
||||
f32 calcEaseOutValue(f32 value);
|
||||
f32 calcEaseInOutValue(f32 value);
|
||||
f32 calcSqrtValue(f32 value);
|
||||
f32 calcSquareValue(f32 value);
|
||||
|
||||
private:
|
||||
f32 mInMin;
|
||||
f32 mInMax;
|
||||
f32 mOutMin;
|
||||
f32 mOutMax;
|
||||
};
|
||||
}
|
11
lib/al/Library/Math/IntervalTrigger.h
Normal file
11
lib/al/Library/Math/IntervalTrigger.h
Normal file
@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
namespace al {
|
||||
class IntervalTrigger {
|
||||
public:
|
||||
IntervalTrigger(f32);
|
||||
void update(f32);
|
||||
};
|
||||
} // namespace al
|
26
lib/al/Library/Math/MathGridUtil.h
Normal file
26
lib/al/Library/Math/MathGridUtil.h
Normal file
@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <math/seadBoundBox.h>
|
||||
#include <math/seadMatrix.h>
|
||||
#include <math/seadVector.h>
|
||||
|
||||
namespace al {
|
||||
void calcWorldPosFromGridIndex(sead::Vector3f* out, const sead::Matrix34f& matrix,
|
||||
const sead::Vector3i& in);
|
||||
void calcGridIndexFromWorldPos(sead::Vector3i* out, const sead::Matrix34f& matrix,
|
||||
const sead::Vector3f& in);
|
||||
sead::Vector3f calcGridIndexNext(const sead::Vector3f&, s32);
|
||||
f32 calcDegreeDirIndexSignedX(s32 index);
|
||||
f32 calcDegreeDirIndexSignedY(s32 index);
|
||||
f32 calcDegreeDirIndexSignedZ(s32 index);
|
||||
f32 calcDirIndexNearXY(const sead::Vector3i&, const sead::Vector3i&);
|
||||
f32 calcDirIndexNearXY(const sead::Vector3i&, const sead::Vector3i&);
|
||||
f32 calcDirIndexNearXY(const sead::Vector3i&, const sead::Vector3i&);
|
||||
f32 signDirIndexX(s32);
|
||||
f32 signDirIndexY(s32);
|
||||
f32 signDirIndexZ(s32);
|
||||
void calcGridMinMaxFromOBB(sead::Vector3i*, sead::Vector3i*, const sead::Matrix34f&,
|
||||
const sead::Matrix34f&, const sead::BoundBox3f&);
|
||||
void expandGridFromOBB(sead::Vector3i*, sead::Vector3i*, const sead::Matrix34f&,
|
||||
const sead::Matrix34f&, const sead::BoundBox3f&);
|
||||
} // namespace al
|
@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include <math/seadMatrix.h>
|
||||
#include <math/seadVector.h>
|
||||
|
||||
namespace al {
|
||||
@ -33,7 +34,35 @@ inline T clamp(T value, T min, T max) {
|
||||
}
|
||||
|
||||
void verticalizeVec(sead::Vector3f*, const sead::Vector3f&, const sead::Vector3f&);
|
||||
void parallelizeVec(sead::Vector3f*, const sead::Vector3f&, const sead::Vector3f&);
|
||||
|
||||
float modf(float, float);
|
||||
f32 modf(f32 a, f32 b);
|
||||
|
||||
}; // namespace al
|
||||
bool normalize(f32 value);
|
||||
bool normalize(sead::Matrix33f* value);
|
||||
bool normalize(sead::Matrix34f* value);
|
||||
|
||||
bool isNear(f32 value, f32 target, f32 tolerance);
|
||||
bool isNear(const sead::Vector2f& value, const sead::Vector2f& target, f32 tolerance);
|
||||
bool isNear(const sead::Vector3f& value, const sead::Vector3f& target, f32 tolerance);
|
||||
bool isNear(const sead::Matrix34f& value, const sead::Matrix34f& target, f32 tolerance);
|
||||
bool isNearZero(f32 value, f32 tolerance);
|
||||
bool isNearZero(const sead::Vector2f& value, f32 tolerance);
|
||||
bool isNearZero(const sead::Vector3f& value, f32 tolerance);
|
||||
bool isNearZero(const sead::Matrix34f& value, f32 tolerance);
|
||||
bool isNearZeroOrGreater(f32 value, f32 tolerance);
|
||||
bool isNearZeroOrLess(f32 value, f32 tolerance);
|
||||
|
||||
void calcQuatSide(sead::Vector3f* out, const sead::Quatf& quat);
|
||||
void calcQuatUp(sead::Vector3f* out, const sead::Quatf& quat);
|
||||
void calcQuatGravity(sead::Vector3f* out, const sead::Quatf& quat);
|
||||
void calcQuatFront(sead::Vector3f* out, const sead::Quatf& quat);
|
||||
|
||||
void makeMtxRotateTrans(sead::Matrix34f* out, const sead::Vector3f& rotate,
|
||||
const sead::Vector3f& trans);
|
||||
void makeMtxFrontUpPos(sead::Matrix34f* out, const sead::Vector3f& front, const sead::Vector3f& up,
|
||||
const sead::Vector3f& pos);
|
||||
void makeMtxUpFrontPos(sead::Matrix34f* out, const sead::Vector3f& up, const sead::Vector3f& front,
|
||||
const sead::Vector3f& pos);
|
||||
|
||||
} // namespace al
|
||||
|
@ -11,6 +11,7 @@ bool isNearZero(const sead::Vector2f&, float);
|
||||
bool isNearZero(const sead::Vector3f&, float);
|
||||
void verticalizeVec(sead::Vector3f*, const sead::Vector3f&, const sead::Vector3f&);
|
||||
bool tryNormalizeOrZero(sead::Vector3f*);
|
||||
bool normalize(sead::Vector2f* value);
|
||||
void normalize(sead::Vector3f*);
|
||||
void turnVecToVecDegree(sead::Vector3f*, const sead::Vector3f&, const sead::Vector3f&, float);
|
||||
void turnVecToVecRate(sead::Vector3f*, const sead::Vector3f&, const sead::Vector3f&, float);
|
||||
|
8
lib/al/Library/Memory/HeapUtil.h
Normal file
8
lib/al/Library/Memory/HeapUtil.h
Normal file
@ -0,0 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include <heap/seadHeap.h>
|
||||
|
||||
namespace al {
|
||||
sead::Heap* getStationedHeap();
|
||||
sead::Heap* getCurrentHeap();
|
||||
} // namespace al
|
@ -1,5 +1,10 @@
|
||||
#pragma once
|
||||
|
||||
namespace al {
|
||||
class IUseMessageSystem {};
|
||||
} // namespace al
|
||||
class MessageSystem;
|
||||
|
||||
class IUseMessageSystem {
|
||||
public:
|
||||
virtual const MessageSystem* getMessageSystem() const;
|
||||
};
|
||||
} // namespace al
|
||||
|
12
lib/al/Library/Nerve/IUseNerve.h
Normal file
12
lib/al/Library/Nerve/IUseNerve.h
Normal file
@ -0,0 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
namespace al {
|
||||
class NerveKeeper;
|
||||
|
||||
class IUseNerve {
|
||||
public:
|
||||
inline IUseNerve() {}
|
||||
|
||||
virtual NerveKeeper* getNerveKeeper() const = 0;
|
||||
};
|
||||
}; // namespace al
|
@ -3,16 +3,9 @@
|
||||
namespace al {
|
||||
class NerveKeeper;
|
||||
|
||||
class IUseNerve {
|
||||
public:
|
||||
inline IUseNerve() {}
|
||||
|
||||
virtual NerveKeeper* getNerveKeeper() const = 0;
|
||||
};
|
||||
|
||||
class Nerve {
|
||||
public:
|
||||
virtual void execute(NerveKeeper*) = 0;
|
||||
virtual void executeOnEnd(NerveKeeper*) const;
|
||||
virtual void execute(NerveKeeper* keeper) const = 0;
|
||||
virtual void executeOnEnd(NerveKeeper* keeper) const;
|
||||
};
|
||||
}; // namespace al
|
||||
} // namespace al
|
||||
|
@ -1,30 +1,17 @@
|
||||
#pragma once
|
||||
|
||||
#include "al/Library/Nerve/Nerve.h"
|
||||
#include "al/Library/Nerve/NerveUtil.h"
|
||||
|
||||
namespace al {
|
||||
class NerveAction : public al::Nerve {
|
||||
class NerveAction : public Nerve {
|
||||
friend class alNerveFunction::NerveActionCollector;
|
||||
|
||||
public:
|
||||
NerveAction();
|
||||
|
||||
virtual const char* getActionName() const = 0;
|
||||
|
||||
al::NerveAction* _8;
|
||||
private:
|
||||
NerveAction* mNextAction = nullptr;
|
||||
};
|
||||
}; // namespace al
|
||||
|
||||
namespace alNerveFunction {
|
||||
class NerveActionCollector {
|
||||
public:
|
||||
NerveActionCollector();
|
||||
|
||||
void addNerve(al::NerveAction*);
|
||||
|
||||
int mActionCount; // _0
|
||||
int _4;
|
||||
al::NerveAction* _8;
|
||||
al::NerveAction* _10;
|
||||
|
||||
static alNerveFunction::NerveActionCollector* sCurrentCollector;
|
||||
};
|
||||
}; // namespace alNerveFunction
|
||||
} // namespace al
|
||||
|
@ -1,20 +1,23 @@
|
||||
#pragma once
|
||||
|
||||
#include "al/Library/HostIO/HioNode.h"
|
||||
#include "al/Library/Nerve/Nerve.h"
|
||||
#include "al/Library/Nerve/NerveKeeper.h"
|
||||
#include "al/Library/Nerve/IUseNerve.h"
|
||||
|
||||
namespace al {
|
||||
class NerveExecutor : public IUseNerve, public al::HioNode {
|
||||
class Nerve;
|
||||
class NerveKeeper;
|
||||
|
||||
class NerveExecutor : public IUseNerve, public HioNode {
|
||||
public:
|
||||
NerveExecutor(const char*);
|
||||
NerveExecutor(const char* name);
|
||||
|
||||
virtual NerveKeeper* getNerveKeeper() const;
|
||||
virtual ~NerveExecutor();
|
||||
|
||||
void initNerve(const al::Nerve*, int);
|
||||
void initNerve(const Nerve* nerve, int stateCount);
|
||||
void updateNerve();
|
||||
|
||||
al::NerveKeeper* mKeeper; // _8
|
||||
private:
|
||||
NerveKeeper* mKeeper = nullptr;
|
||||
};
|
||||
}; // namespace al
|
||||
|
@ -1,26 +1,39 @@
|
||||
#pragma once
|
||||
|
||||
#include "al/Library/Nerve/Nerve.h"
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
namespace al {
|
||||
class IUseNerve;
|
||||
class Nerve;
|
||||
class NerveStateCtrl;
|
||||
class NerveActionCtrl;
|
||||
|
||||
class NerveKeeper {
|
||||
public:
|
||||
NerveKeeper(al::IUseNerve*, const al::Nerve*, int);
|
||||
|
||||
void update();
|
||||
NerveKeeper(IUseNerve* parent, const Nerve* nerve, s32 maxStates);
|
||||
|
||||
void initNerveAction(NerveActionCtrl* actionCtrl);
|
||||
void setNerve(const Nerve* nextNerve);
|
||||
void tryChangeNerve();
|
||||
void setNerve(const al::Nerve*);
|
||||
const al::Nerve* getCurrentNerve() const;
|
||||
void update();
|
||||
const Nerve* getCurrentNerve() const;
|
||||
|
||||
al::IUseNerve* mParent; // _0
|
||||
const al::Nerve* _8;
|
||||
const al::Nerve* mNerve; // _10
|
||||
int mStep; // _18
|
||||
int _1C;
|
||||
al::NerveStateCtrl* mStateCtrl; // _20
|
||||
unsigned long _28;
|
||||
s32 getCurrentStep() const { return mStep; }
|
||||
bool isNewNerve() const { return mNextNerve != nullptr; }
|
||||
NerveStateCtrl* getStateCtrl() const { return mStateCtrl; }
|
||||
NerveActionCtrl* getActionCtrl() const { return mActionCtrl; }
|
||||
|
||||
template <typename T>
|
||||
T* getParent() {
|
||||
return static_cast<T*>(mParent);
|
||||
}
|
||||
|
||||
private:
|
||||
IUseNerve* mParent = nullptr;
|
||||
const Nerve* mCurrentNerve = nullptr;
|
||||
const Nerve* mNextNerve = nullptr;
|
||||
s32 mStep = 0;
|
||||
NerveStateCtrl* mStateCtrl = nullptr;
|
||||
NerveActionCtrl* mActionCtrl = nullptr;
|
||||
};
|
||||
}; // namespace al
|
||||
} // namespace al
|
||||
|
13
lib/al/Library/Nerve/NerveSetupUtil.h
Normal file
13
lib/al/Library/Nerve/NerveSetupUtil.h
Normal file
@ -0,0 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#include "al/Library/Nerve/Nerve.h"
|
||||
#include "al/Library/Nerve/NerveKeeper.h"
|
||||
|
||||
#define MAKE_NERVE_FUNC(Class, Action, Func) \
|
||||
class ClassNrv##Action : public al::Nerve { \
|
||||
void execute(al::NerveKeeper* keeper) const override { \
|
||||
keeper->getParent<Class>()->exe##Func(); \
|
||||
} \
|
||||
}; \
|
||||
ClassNrv##Action nrv##Class##Action
|
||||
#define MAKE_NERVE(Class, Action) MAKE_NERVE_FUNC(Class, Action, Action)
|
@ -5,7 +5,7 @@
|
||||
namespace al {
|
||||
class NerveStateBase : public NerveExecutor {
|
||||
public:
|
||||
NerveStateBase(const char*);
|
||||
NerveStateBase(const char* stateName);
|
||||
virtual ~NerveStateBase();
|
||||
|
||||
virtual void init();
|
||||
@ -14,16 +14,19 @@ public:
|
||||
virtual bool update();
|
||||
virtual void control();
|
||||
|
||||
bool isDead() const { return mIsDead; }
|
||||
|
||||
private:
|
||||
bool mIsDead = true;
|
||||
};
|
||||
|
||||
class LiveActor;
|
||||
|
||||
class ActorStateBase : public al::NerveStateBase {
|
||||
class ActorStateBase : public NerveStateBase {
|
||||
public:
|
||||
ActorStateBase(const char*, al::LiveActor*);
|
||||
ActorStateBase(const char* stateName, LiveActor* actor);
|
||||
|
||||
private:
|
||||
LiveActor* mLiveActor;
|
||||
LiveActor* mActor;
|
||||
};
|
||||
}; // namespace al
|
||||
|
@ -1,31 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
#include "al/Library/Nerve/Nerve.h"
|
||||
#include "al/Library/Nerve/NerveStateBase.h"
|
||||
|
||||
namespace al {
|
||||
struct State {
|
||||
al::NerveStateBase* mStateBase; // _0
|
||||
const al::Nerve* mNerve; // _8
|
||||
const char* mName; // _10
|
||||
};
|
||||
|
||||
class NerveStateCtrl {
|
||||
public:
|
||||
NerveStateCtrl(int);
|
||||
struct State {
|
||||
NerveStateBase* state;
|
||||
const Nerve* nerve;
|
||||
const char* name;
|
||||
};
|
||||
|
||||
void addState(al::NerveStateBase*, const al::Nerve*, const char*);
|
||||
public:
|
||||
NerveStateCtrl(s32 maxStates);
|
||||
|
||||
void addState(NerveStateBase* state, const Nerve* nerve, const char* name);
|
||||
bool updateCurrentState();
|
||||
void startState(const al::Nerve*);
|
||||
void startState(const Nerve* nerve);
|
||||
void update();
|
||||
|
||||
State* findStateInfo(const al::Nerve*);
|
||||
State* findStateInfo(const Nerve* nerve);
|
||||
bool isCurrentStateEnd() const;
|
||||
void tryEndCurrentState();
|
||||
|
||||
int _0;
|
||||
int mStateCount; // _4
|
||||
State* mStates; // _8
|
||||
State* mCurrentState; // _10
|
||||
private:
|
||||
s32 mMaxStates;
|
||||
s32 mStateCount;
|
||||
State* mStates;
|
||||
State* mCurrentState;
|
||||
};
|
||||
}; // namespace al
|
||||
|
@ -1,47 +1,101 @@
|
||||
#pragma once
|
||||
|
||||
#include "al/Library/Nerve/Nerve.h"
|
||||
#include "al/Library/Nerve/NerveStateBase.h"
|
||||
|
||||
#define NERVE_HEADER(Class, Action) \
|
||||
class Class##Nrv##Action : public al::Nerve { \
|
||||
public: \
|
||||
void execute(al::NerveKeeper*) override; \
|
||||
}; \
|
||||
Class##Nrv##Action nrv##Class##Action;
|
||||
|
||||
#define NERVE_IMPL_(Class, Action, ActionFunc) \
|
||||
void Class##Nrv##Action::execute(al::NerveKeeper* keeper) { \
|
||||
static_cast<Class*>(keeper->mParent)->exe##ActionFunc(); \
|
||||
}
|
||||
#define NERVE_IMPL(Class, Action) NERVE_IMPL_(Class, Action, Action)
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
namespace al {
|
||||
void setNerve(al::IUseNerve*, const al::Nerve*);
|
||||
void setNerveAtStep(al::IUseNerve*, const al::Nerve*, int);
|
||||
bool isStep(const al::IUseNerve*, int);
|
||||
void setNerveAtGreaterEqualStep(al::IUseNerve*, const al::Nerve*, int);
|
||||
bool isGreaterEqualStep(const al::IUseNerve*, int);
|
||||
bool isNerve(const al::IUseNerve*, const al::Nerve*);
|
||||
int getNerveStep(const al::IUseNerve*);
|
||||
const al::Nerve* getCurrentNerve(const al::IUseNerve*);
|
||||
bool isFirstStep(const al::IUseNerve*);
|
||||
bool isLessStep(const al::IUseNerve*, int);
|
||||
bool isGreaterStep(const al::IUseNerve*, int);
|
||||
bool isInRangeStep(const al::IUseNerve*, int, int);
|
||||
bool isIntervalStep(const al::IUseNerve*, int, int);
|
||||
bool isIntervalOnOffStep(const al::IUseNerve*, int, int);
|
||||
bool isNewNerve(const al::IUseNerve*);
|
||||
int calcNerveInterval(const al::IUseNerve*, int, int);
|
||||
float calcNerveRate(const al::IUseNerve*, int);
|
||||
float calcNerveRate(const al::IUseNerve*, int, int);
|
||||
float calcNerveEaseInRate(const al::IUseNerve*, int);
|
||||
float calcNerveEaseInRate(const al::IUseNerve*, int, int);
|
||||
class IUseNerve;
|
||||
class Nerve;
|
||||
class NerveAction;
|
||||
class NerveStateBase;
|
||||
class LiveActor;
|
||||
|
||||
void initNerveState(al::IUseNerve*, al::NerveStateBase*, const al::Nerve*, const char*);
|
||||
void initNerve(al::LiveActor*, const al::Nerve*, int);
|
||||
void addNerveState(al::IUseNerve*, al::NerveStateBase*, const al::Nerve*, const char*);
|
||||
void updateNerveState(al::IUseNerve*);
|
||||
bool updateNerveStateAndNextNerve(al::IUseNerve*, const al::Nerve*);
|
||||
bool isStateEnd(const al::IUseNerve*);
|
||||
}; // namespace al
|
||||
void setNerve(IUseNerve* user, const Nerve* nerve);
|
||||
void setNerveAtStep(IUseNerve* user, const Nerve* nerve, s32 step);
|
||||
void setNerveAtGreaterEqualStep(IUseNerve* user, const Nerve* nerve, s32 step);
|
||||
|
||||
int getNerveStep(const IUseNerve*);
|
||||
const Nerve* getCurrentNerve(const IUseNerve*);
|
||||
|
||||
bool isStep(const IUseNerve* user, s32 step);
|
||||
bool isFirstStep(const IUseNerve* user);
|
||||
bool isGreaterStep(const IUseNerve* user, s32 step);
|
||||
bool isGreaterEqualStep(const IUseNerve* user, s32 step);
|
||||
bool isLessStep(const IUseNerve* user, s32 step);
|
||||
bool isLessEqualStep(const IUseNerve* user, s32 step);
|
||||
bool isInRangeStep(const IUseNerve* user, s32 startStep, s32 endStep);
|
||||
bool isIntervalStep(const IUseNerve* user, s32 interval, s32 offset);
|
||||
bool isIntervalOnOffStep(const IUseNerve* user, s32 interval, s32 offset);
|
||||
|
||||
bool isNerve(const IUseNerve* user, const Nerve* nerve);
|
||||
bool isNewNerve(const IUseNerve* user);
|
||||
|
||||
int calcNerveInterval(const IUseNerve* user, s32, s32);
|
||||
float calcNerveRate(const IUseNerve* user, s32);
|
||||
float calcNerveRate(const IUseNerve* user, s32, s32);
|
||||
float calcNerveEaseInRate(const IUseNerve* user, s32);
|
||||
float calcNerveEaseInRate(const IUseNerve* user, s32, s32);
|
||||
float calcNerveEaseOutRate(const IUseNerve* user, s32);
|
||||
float calcNerveEaseOutRate(const IUseNerve* user, s32, s32);
|
||||
float calcNerveEaseInOutRate(const IUseNerve* user, s32);
|
||||
float calcNerveEaseInOutRate(const IUseNerve* user, s32, s32);
|
||||
float calcNerveSquareInRate(const IUseNerve* user, s32);
|
||||
float calcNerveSquareInRate(const IUseNerve* user, s32, s32);
|
||||
float calcNerveSquareOutRate(const IUseNerve* user, s32);
|
||||
float calcNerveSquareOutRate(const IUseNerve* user, s32, s32);
|
||||
float calcNerveEaseByTypeRate(const IUseNerve* user, s32, s32);
|
||||
float calcNerveEaseByTypeRate(const IUseNerve* user, s32, s32, s32);
|
||||
float calcNervePowerInRate(const IUseNerve* user, s32, f32);
|
||||
float calcNervePowerInRate(const IUseNerve* user, s32, s32, f32);
|
||||
float calcNervePowerOutRate(const IUseNerve* user, s32, f32);
|
||||
float calcNervePowerOutRate(const IUseNerve* user, s32, s32, f32);
|
||||
float calcNerveJumpRate(const IUseNerve* user, s32, s32, s32);
|
||||
float calcNerveEaseInValue(const IUseNerve* user, s32, s32, f32, f32);
|
||||
float calcNerveStartEndRate(const IUseNerve* user, s32, s32, s32);
|
||||
float calcNerveEaseInOutValue(const IUseNerve* user, s32, s32, f32, f32);
|
||||
float calcNerveValue(const IUseNerve* user, s32, f32, f32);
|
||||
float calcNerveValue(const IUseNerve* user, s32, s32, f32, f32);
|
||||
float calcNerveEaseInValue(const IUseNerve* user, s32, f32, f32);
|
||||
float calcNerveEaseOutValue(const IUseNerve* user, s32, f32, f32);
|
||||
float calcNerveEaseOutValue(const IUseNerve* user, s32, s32, f32, f32);
|
||||
float calcNerveEaseInOutValue(const IUseNerve* user, s32, f32, f32);
|
||||
float calcNerveSquareInValue(const IUseNerve* user, s32, f32, f32);
|
||||
float calcNerveSquareInValue(const IUseNerve* user, s32, s32, f32, f32);
|
||||
float calcNerveSquareOutValue(const IUseNerve* user, s32, f32, f32);
|
||||
float calcNerveSquareOutValue(const IUseNerve* user, s32, s32, f32, f32);
|
||||
float calcNerveEaseByTypeValue(const IUseNerve* user, s32, f32, f32, s32);
|
||||
float calcNerveEaseByTypeValue(const IUseNerve* user, s32, s32, f32, f32, s32);
|
||||
float calcNerveCosCycle(const IUseNerve* user, s32);
|
||||
float calcNerveSinCycle(const IUseNerve* user, s32);
|
||||
float calcNerveRepeatRate(const IUseNerve* user, s32);
|
||||
float calcNerveRepeatDegree(const IUseNerve* user, s32);
|
||||
float calcNerveJumpValue(const IUseNerve* user, s32, s32, s32, f32);
|
||||
float calcNerveStartEndValue(const IUseNerve* user, s32, s32, s32, f32, f32);
|
||||
|
||||
void initNerveState(IUseNerve* user, NerveStateBase* state, const Nerve* nerve, const char* hostName);
|
||||
void addNerveState(IUseNerve* user, NerveStateBase* state, const Nerve* nerve, const char* hostName);
|
||||
bool updateNerveState(IUseNerve* user);
|
||||
bool updateNerveStateAndNextNerve(IUseNerve* user, const Nerve* nerve);
|
||||
bool isStateEnd(const IUseNerve* user);
|
||||
void initNerve(LiveActor* actor, const Nerve* nerve, int);
|
||||
} // namespace al
|
||||
|
||||
namespace alNerveFunction {
|
||||
void setNerveAction(al::IUseNerve* user, const char* action);
|
||||
|
||||
class NerveActionCollector {
|
||||
friend class al::NerveAction;
|
||||
|
||||
public:
|
||||
NerveActionCollector();
|
||||
|
||||
void addNerve(al::NerveAction* action);
|
||||
|
||||
private:
|
||||
s32 mActionCount = 0;
|
||||
al::NerveAction* mHead = nullptr;
|
||||
al::NerveAction* mTail = nullptr;
|
||||
|
||||
static alNerveFunction::NerveActionCollector* sCurrentCollector;
|
||||
};
|
||||
|
||||
} // namespace alNerveFunction
|
||||
|
@ -1,39 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <resource/seadResource.h>
|
||||
#include "al/Library/Yaml/ByamlIter.h"
|
||||
|
||||
namespace al {
|
||||
class PlacementInfo {
|
||||
public:
|
||||
PlacementInfo();
|
||||
|
||||
void set(const al::ByamlIter& placement_iter, const al::ByamlIter& zone_iter);
|
||||
|
||||
const al::ByamlIter& getPlacementIter() const { return mPlacementIter; }
|
||||
const al::ByamlIter& getZoneIter() const { return mZoneIter; }
|
||||
|
||||
private:
|
||||
al::ByamlIter mPlacementIter;
|
||||
al::ByamlIter mZoneIter;
|
||||
};
|
||||
|
||||
class PlacementId {
|
||||
public:
|
||||
static bool isEqual(const al::PlacementId&, const al::PlacementId&);
|
||||
|
||||
PlacementId();
|
||||
PlacementId(const char*, const char*, const char*);
|
||||
|
||||
bool init(const al::PlacementInfo&);
|
||||
bool isEqual(const al::PlacementId&) const;
|
||||
bool isValid() const;
|
||||
bool makeString(sead::BufferedSafeString*) const;
|
||||
|
||||
private:
|
||||
const char* mId;
|
||||
const char* mUnitConfigName;
|
||||
const char* mZoneId;
|
||||
const char* mCommonID;
|
||||
};
|
||||
} // namespace al
|
@ -1,28 +1,261 @@
|
||||
#pragma once
|
||||
|
||||
#include "al/Library/LiveActor/ActorInitInfo.h"
|
||||
#include "al/Library/Placement/Placement.h"
|
||||
#include "math/seadVector.h"
|
||||
#include <gfx/seadColor.h>
|
||||
#include <math/seadMatrix.h>
|
||||
#include <math/seadVector.h>
|
||||
|
||||
namespace al {
|
||||
int getCountPlacementInfo(const al::PlacementInfo&);
|
||||
void getPlacementInfoByKey(al::PlacementInfo*, const al::PlacementInfo&, const char*);
|
||||
void getPlacementInfoByIndex(al::PlacementInfo*, const al::PlacementInfo&, int);
|
||||
bool tryGetPlacementInfoByIndex(al::PlacementInfo*, const al::PlacementInfo&, int);
|
||||
bool tryGetPlacementInfoByKey(al::PlacementInfo*, const al::PlacementInfo&, const char*);
|
||||
void getPlacementInfoAndKeyNameByIndex(al::PlacementInfo*, const char**, const al::PlacementInfo&,
|
||||
int);
|
||||
bool tryGetPlacementInfoAndKeyNameByIndex(al::PlacementInfo*, const char**,
|
||||
const al::PlacementInfo&, int);
|
||||
al::PlacementId* createPlacementId(const al::ActorInitInfo&);
|
||||
al::PlacementId* createPlacementId(const al::PlacementInfo&);
|
||||
bool tryGetPlacementId(al::PlacementId*, const al::ActorInitInfo&);
|
||||
bool tryGetPlacementId(al::PlacementId*, const al::PlacementInfo&);
|
||||
void getPlacementId(al::PlacementId*, const al::ActorInitInfo&);
|
||||
bool isEqualPlacementId(const al::PlacementId&, const al::PlacementId&);
|
||||
bool isEqualPlacementId(const al::PlacementInfo&, const al::PlacementInfo&);
|
||||
class ActorInitInfo;
|
||||
class AreaInitInfo;
|
||||
class PlacementInfo;
|
||||
class PlacementId;
|
||||
|
||||
bool tryGetRailPointPos(sead::Vector3f*, const al::PlacementInfo&);
|
||||
bool getRailPointHandlePrev(sead::Vector3f*, const al::PlacementInfo&);
|
||||
bool getRailPointHandleNext(sead::Vector3f*, const al::PlacementInfo&);
|
||||
}; // namespace al
|
||||
bool isValidInfo(const PlacementInfo& placementInfo);
|
||||
bool isPlaced(const PlacementInfo& placementInfo);
|
||||
|
||||
void getObjectName(const char** name, const ActorInitInfo& initInfo);
|
||||
void getObjectName(const char** name, const PlacementInfo& placementInfo);
|
||||
bool tryGetObjectName(const char** name, const ActorInitInfo& initInfo);
|
||||
bool tryGetObjectName(const char** name, const PlacementInfo& placementInfo);
|
||||
bool isObjectName(const ActorInitInfo& initInfo, const char* name);
|
||||
bool isObjectName(const PlacementInfo& placementInfo, const char* name);
|
||||
bool isObjectNameSubStr(const ActorInitInfo& initInfo, const char* name);
|
||||
bool isObjectNameSubStr(const PlacementInfo& placementInfo, const char* name);
|
||||
|
||||
void getClassName(const char** name, const ActorInitInfo& initInfo);
|
||||
void getClassName(const char** name, const PlacementInfo& placementInfo);
|
||||
bool tryGetClassName(const char** name, const ActorInitInfo& initInfo);
|
||||
bool tryGetClassName(const char** name, const PlacementInfo& placementInfo);
|
||||
|
||||
void getDisplayName(const char** name, const ActorInitInfo& initInfo);
|
||||
void getDisplayName(const char** name, const PlacementInfo& placementInfo);
|
||||
bool tryGetDisplayName(const char** name, const ActorInitInfo& initInfo);
|
||||
bool tryGetDisplayName(const char** name, const PlacementInfo& placementInfo);
|
||||
|
||||
void getPlacementTargetFile(const char** targetFile, const PlacementInfo& placementInfo);
|
||||
|
||||
void getTrans(sead::Vector3f* trans, const ActorInitInfo& initInfo);
|
||||
void getTrans(sead::Vector3f* trans, const PlacementInfo& placementInfo);
|
||||
void multZoneMtx(sead::Vector3f* trans, const PlacementInfo& placementInfo);
|
||||
bool tryGetTrans(sead::Vector3f* trans, const ActorInitInfo& initInfo);
|
||||
bool tryGetTrans(sead::Vector3f* trans, const PlacementInfo& placementInfo);
|
||||
|
||||
void getRotate(sead::Vector3f* rotate, const ActorInitInfo& initInfo);
|
||||
void getRotate(sead::Vector3f* rotate, const PlacementInfo& placementInfo);
|
||||
bool tryGetRotate(sead::Vector3f* rotate, const ActorInitInfo& initInfo);
|
||||
bool tryGetRotate(sead::Vector3f* rotate, const PlacementInfo& placementInfo);
|
||||
void tryGetZoneMatrixTR(sead::Matrix34f* matrix, const PlacementInfo& placementInfo);
|
||||
|
||||
void getQuat(sead::Quatf* quat, const ActorInitInfo& initInfo);
|
||||
void getQuat(sead::Quatf* quat, const PlacementInfo& placementInfo);
|
||||
bool tryGetQuat(sead::Quatf* quat, const ActorInitInfo& initInfo);
|
||||
bool tryGetQuat(sead::Quatf* quat, const PlacementInfo& placementInfo);
|
||||
|
||||
void getScale(sead::Vector3f* scale, const ActorInitInfo& initInfo);
|
||||
void getScale(sead::Vector3f* scale, const PlacementInfo& placementInfo);
|
||||
bool tryGetScale(sead::Vector3f* scale, const ActorInitInfo& initInfo);
|
||||
bool tryGetScale(sead::Vector3f* scale, const PlacementInfo& placementInfo);
|
||||
|
||||
void getSide(sead::Vector3f* side, const ActorInitInfo& initInfo);
|
||||
void getSide(sead::Vector3f* side, const PlacementInfo& placementInfo);
|
||||
bool tryGetSide(sead::Vector3f* side, const ActorInitInfo& initInfo);
|
||||
bool tryGetSide(sead::Vector3f* side, const PlacementInfo& placementInfo);
|
||||
|
||||
void getUp(sead::Vector3f* up, const ActorInitInfo& initInfo);
|
||||
void getUp(sead::Vector3f* up, const PlacementInfo& placementInfo);
|
||||
bool tryGetUp(sead::Vector3f* up, const ActorInitInfo& initInfo);
|
||||
bool tryGetUp(sead::Vector3f* up, const PlacementInfo& placementInfo);
|
||||
|
||||
void getFront(sead::Vector3f* front, const ActorInitInfo& initInfo);
|
||||
void getFront(sead::Vector3f* front, const PlacementInfo& placementInfo);
|
||||
bool tryGetFront(sead::Vector3f* front, const ActorInitInfo& initInfo);
|
||||
bool tryGetFront(sead::Vector3f* front, const PlacementInfo& placementInfo);
|
||||
|
||||
bool tryGetLocalAxis(sead::Vector3f* front, const ActorInitInfo& initInfo, s32 axis);
|
||||
bool tryGetLocalAxis(sead::Vector3f* front, const PlacementInfo& placementInfo, s32 axis);
|
||||
bool tryGetLocalSignAxis(sead::Vector3f* front, const ActorInitInfo& initInfo, s32 axis);
|
||||
bool tryGetLocalSignAxis(sead::Vector3f* front, const PlacementInfo& placementInfo, s32 axis);
|
||||
|
||||
bool tryGetMatrixTR(sead::Matrix34f* matrix, const ActorInitInfo& initInfo);
|
||||
bool tryGetMatrixTR(sead::Matrix34f* matrix, const PlacementInfo& placementInfo);
|
||||
bool tryGetMatrixTRS(sead::Matrix34f* matrix, const ActorInitInfo& initInfo);
|
||||
bool tryGetMatrixTRS(sead::Matrix34f* matrix, const PlacementInfo& placementInfo);
|
||||
bool tryGetInvertMatrixTR(sead::Matrix34f* matrix, const ActorInitInfo& initInfo);
|
||||
bool tryGetInvertMatrixTR(sead::Matrix34f* matrix, const PlacementInfo& placementInfo);
|
||||
|
||||
void calcMatrixMultParent(sead::Matrix34f* matrix, const ActorInitInfo& initInfo);
|
||||
void calcMatrixMultParent(sead::Matrix34f* matrix, const PlacementInfo& placementInfo);
|
||||
|
||||
bool getArg(s32* arg, const ActorInitInfo& initInfo, const char* key);
|
||||
bool getArg(s32* arg, const PlacementInfo& placementInfo, const char* key);
|
||||
bool tryGetArg(s32* arg, const ActorInitInfo& initInfo, const char* key);
|
||||
bool tryGetArg(s32* arg, const PlacementInfo& placementInfo, const char* key);
|
||||
bool getArg(f32* arg, const ActorInitInfo& initInfo, const char* key);
|
||||
bool getArg(f32* arg, const PlacementInfo& placementInfo, const char* key);
|
||||
bool tryGetArg(f32* arg, const ActorInitInfo& initInfo, const char* key);
|
||||
bool tryGetArg(f32* arg, const PlacementInfo& placementInfo, const char* key);
|
||||
bool getArg(bool* arg, const ActorInitInfo& initInfo, const char* key);
|
||||
bool getArg(bool* arg, const PlacementInfo& placementInfo, const char* key);
|
||||
bool tryGetArg(bool* arg, const ActorInitInfo& initInfo, const char* key);
|
||||
bool tryGetArg(bool* arg, const PlacementInfo& placementInfo, const char* key);
|
||||
|
||||
s32 getArgS32(const ActorInitInfo& actorInitInfo, const char* key);
|
||||
f32 getArgF32(const ActorInitInfo& actorInitInfo, const char* key);
|
||||
bool getArgV3f(sead::Vector3f* arg, const ActorInitInfo& actorInitInfo, const char* key);
|
||||
bool getArgV3f(sead::Vector3f* arg, const PlacementInfo& placementInfo, const char* key);
|
||||
bool tryGetArgV3f(sead::Vector3f* arg, const ActorInitInfo& actorInitInfo, const char* key);
|
||||
bool tryGetArgV3f(sead::Vector3f* arg, const PlacementInfo& placementInfo, const char* key);
|
||||
|
||||
bool isArgBool(const ActorInitInfo& initInfo, const char* key);
|
||||
bool isArgBool(const PlacementInfo& placementInfo, const char* key);
|
||||
bool isArgString(const ActorInitInfo& initInfo, const char* arg, const char* key);
|
||||
bool isArgString(const PlacementInfo& placementInfo, const char* arg, const char* key);
|
||||
|
||||
void getStringArg(const char** arg, const ActorInitInfo& initInfo, const char* key);
|
||||
void getStringArg(const char** arg, const PlacementInfo& placementInfo, const char* key);
|
||||
void getStringArg(const char** arg, const AreaInitInfo& initInfo, const char* key);
|
||||
void getStringArg(const ActorInitInfo& initInfo, const char* key);
|
||||
void getStringArg(const PlacementInfo& placementInfo, const char* key);
|
||||
void getStringArg(const AreaInitInfo& initInfo, const char* key);
|
||||
bool tryGetStringArg(const char** arg, const ActorInitInfo& initInfo, const char* key);
|
||||
bool tryGetStringArg(const char** arg, const AreaInitInfo& initInfo, const char* key);
|
||||
bool tryGetArgV2f(sead::Vector2f* arg, const ActorInitInfo& initInfo, const char* key);
|
||||
bool tryGetArgV2f(sead::Vector2f* arg, const PlacementInfo& initInfo, const char* key);
|
||||
bool tryGetArgColor(sead::Color4f* arg, const ActorInitInfo& initInfo, const char* key);
|
||||
bool tryGetArgColor(sead::Color4f* arg, const PlacementInfo& initInfo, const char* key);
|
||||
|
||||
void getLayerConfigName(const char** name, const ActorInitInfo& initInfo);
|
||||
void getLayerConfigName(const char** name, const PlacementInfo& initInfo);
|
||||
bool tryGetZoneNameIfExist(const char** name, const PlacementInfo& placementInfo);
|
||||
void getPlacementId(PlacementId* placementId, const PlacementInfo& placementInfo);
|
||||
|
||||
bool tryGetBoolArgOrFalse(const ActorInitInfo& initInfo, const char* key);
|
||||
s32 getCountPlacementInfo(const PlacementInfo& placementInfo);
|
||||
void getPlacementInfoByKey(PlacementInfo* outPlacementInfo, const PlacementInfo&,
|
||||
const char* key);
|
||||
bool tryGetPlacementInfoByKey(PlacementInfo* outPlacementInfo, const PlacementInfo&,
|
||||
const char* key);
|
||||
void getPlacementInfoByIndex(PlacementInfo* outPlacementInfo, const PlacementInfo&,
|
||||
s32 index);
|
||||
bool tryGetPlacementInfoByIndex(PlacementInfo* outPlacementInfo, const PlacementInfo&,
|
||||
s32 index);
|
||||
void getPlacementInfoAndKeyNameByIndex(PlacementInfo* outPlacementInfo, const char** outKey,
|
||||
const PlacementInfo&, s32 index);
|
||||
bool tryGetPlacementInfoAndKeyNameByIndex(PlacementInfo* outPlacementInfo, const char** outKey,
|
||||
const PlacementInfo&, s32 index);
|
||||
|
||||
PlacementId* createPlacementId(const ActorInitInfo& initInfo);
|
||||
PlacementId* createPlacementId(const PlacementInfo& placementInfo);
|
||||
bool tryGetPlacementId(PlacementId* placementId, const ActorInitInfo& initInfo);
|
||||
bool tryGetPlacementId(PlacementId* placementId, const PlacementInfo& placementInfo);
|
||||
void getPlacementId(PlacementId* placementId, const ActorInitInfo& initInfo);
|
||||
bool isEqualPlacementId(PlacementId* placementId, const PlacementId& otherPlacementId);
|
||||
bool isEqualPlacementId(PlacementId* placementId, const PlacementInfo& placementInfo);
|
||||
|
||||
bool isExistRail(const ActorInitInfo& initInfo, const char* linkName);
|
||||
|
||||
bool tryGetRailIter(PlacementInfo& railPlacementInfo, const PlacementInfo& placementInfo,
|
||||
const char* linkName);
|
||||
bool tryGetLinksInfo(PlacementInfo& railPlacementInfo, const PlacementInfo& placementInfo,
|
||||
const char* linkName);
|
||||
bool tryGetMoveParameterRailIter(PlacementInfo& railPlacementInfo,
|
||||
const PlacementInfo& placementInfo);
|
||||
bool tryGetRailPointPos(sead::Vector3f* railPoint,
|
||||
const PlacementInfo& placementInfo);
|
||||
void getRailPointHandlePrev(sead::Vector3f* railPoint, const PlacementInfo& placementInfo);
|
||||
void tryGetRailPointHandlePrev(sead::Vector3f* railPoint, const PlacementInfo& placementInfo);
|
||||
void getRailPointHandleNext(sead::Vector3f* railPoint, const PlacementInfo& placementInfo);
|
||||
void tryGetRailPointHandleNext(sead::Vector3f* railPoint, PlacementInfo const& placementInfo);
|
||||
|
||||
bool isExistGraphRider(const ActorInitInfo& initInfo);
|
||||
|
||||
s32 calcLinkChildNum(const ActorInitInfo& initInfo, const char* linkName);
|
||||
s32 calcLinkChildNum(const PlacementInfo& placementInfo, const char* linkName);
|
||||
|
||||
bool isExistLinkChild(const ActorInitInfo& initInfo, const char* linkName, s32 index);
|
||||
bool isExistLinkChild(const PlacementInfo& placementInfo, const char* linkName, s32 index);
|
||||
bool isExistLinkChild(const PlacementInfo& placementInfo, const char* linkName, s32 index);
|
||||
|
||||
s32 calcLinkNestNum(const ActorInitInfo& initInfo, const char* linkName);
|
||||
s32 calcLinkNestNum(const PlacementInfo& placementInfo, const char* linkName);
|
||||
|
||||
void getLinksInfo(PlacementInfo* linkPlacementInfo, const PlacementInfo& placementInfo,
|
||||
const char* linkName);
|
||||
void getLinksInfoByIndex(PlacementInfo* linkPlacementInfo,
|
||||
const PlacementInfo& placementInfo, const char* linkName, s32);
|
||||
void getLinksInfo(PlacementInfo* linkPlacementInfo, const ActorInitInfo& initInfo,
|
||||
const char* linkName);
|
||||
void getLinksInfoByIndex(PlacementInfo* linkPlacementInfo, const ActorInitInfo& initInfo,
|
||||
const char* linkName, s32);
|
||||
bool tryGetLinksInfo(PlacementInfo* linkPlacementInfo, const ActorInitInfo& initInfo,
|
||||
const char* linkName);
|
||||
|
||||
void getLinksMatrix(sead::Matrix34f* matrix, const ActorInitInfo& initInfo,
|
||||
const char* linkName);
|
||||
void getLinksMatrixByIndex(sead::Matrix34f*, const ActorInitInfo& initInfo,
|
||||
const char* linkName, s32);
|
||||
void getLinkTR(sead::Vector3f* trans, sead::Vector3f* rotate,
|
||||
const PlacementInfo& placementInfo, const char* linkName);
|
||||
void getLinkTR(sead::Vector3f* trans, sead::Vector3f* rotate, const ActorInitInfo& initInfo,
|
||||
const char* linkName);
|
||||
void getLinkTR(sead::Vector3f* trans, sead::Vector3f* rotate, const AreaInitInfo& initInfo,
|
||||
const char* linkName);
|
||||
void getLinksQT(sead::Quatf* quat, sead::Vector3f* trans, const ActorInitInfo& initInfo,
|
||||
const char* linkName);
|
||||
void getLinksQT(sead::Quatf* quat, sead::Vector3f* trans, const PlacementInfo& placementInfo,
|
||||
const char* linkName);
|
||||
|
||||
bool tryGetLinksQT(sead::Quatf*, sead::Vector3f*, const ActorInitInfo& initInfo,
|
||||
const char* linkName);
|
||||
bool tryGetLinksQTS(sead::Quatf*, sead::Vector3f*, sead::Vector3f*,
|
||||
const ActorInitInfo& initInfo, const char* linkName);
|
||||
bool tryGetLinksMatrixTR(sead::Matrix34f* matrix, const ActorInitInfo& initInfo,
|
||||
const char* linkName);
|
||||
bool tryGetLinksMatrixTR(sead::Matrix34f* matrix, const AreaInitInfo& initInfo,
|
||||
const char* linkName);
|
||||
bool tryGetLinksMatrixTRS(sead::Matrix34f* matrix, const ActorInitInfo& initInfo,
|
||||
const char* linkName);
|
||||
bool tryGetLinksTrans(sead::Vector3f* trans, const ActorInitInfo& initInfo,
|
||||
const char* linkName);
|
||||
bool tryGetLinksTrans(sead::Vector3f* trans, const PlacementInfo& placementInfo,
|
||||
const char* linkName);
|
||||
bool tryGetLinksQuat(sead::Quatf* quat, const ActorInitInfo& initInfo, const char* linkName);
|
||||
bool tryGetLinksTR(sead::Vector3f* trans, sead::Vector3f* rotate, const ActorInitInfo& initInfo,
|
||||
const char* linkName);
|
||||
|
||||
void getChildTrans(sead::Vector3f* trans, const PlacementInfo& placementInfo,
|
||||
const char* linkName);
|
||||
void getChildTrans(sead::Vector3f* trans, const ActorInitInfo& initInfo, const char* linkName);
|
||||
void getChildTrans(sead::Vector3f* trans, const AreaInitInfo& initInfo, const char* linkName);
|
||||
void getChildLinkT(sead::Vector3f* trans, const ActorInitInfo& initInfo, const char* linkName,
|
||||
s32 index);
|
||||
void getChildLinkTR(sead::Vector3f* trans, sead::Vector3f* rotate,
|
||||
const ActorInitInfo& initInfo, const char* linkName, s32 index);
|
||||
|
||||
s32 calcMatchNameLinkCount(const PlacementInfo& placementInfo, const char* linkName);
|
||||
s32 calcLinkCountClassName(const PlacementInfo& placementInfo, const char* linkName);
|
||||
|
||||
bool tryGetZoneMatrixTR(sead::Matrix34f* matrix, const ActorInitInfo& initInfo);
|
||||
bool tryGetDisplayOffset(sead::Vector3f* offset, const ActorInitInfo& initInfo);
|
||||
bool tryGetDisplayOffset(sead::Vector3f* offset, const PlacementInfo& placementInfo);
|
||||
bool tryGetChildDisplayOffset(sead::Vector3f* offset, const ActorInitInfo& initInfo,
|
||||
const char* linkName);
|
||||
bool tryGetDisplayRotate(sead::Vector3f* rotate, const ActorInitInfo& initInfo);
|
||||
bool tryGetDisplayScale(sead::Vector3f* scale, const ActorInitInfo& initInfo);
|
||||
|
||||
} // namespace al
|
||||
|
||||
class alPlacementFunction {
|
||||
s32 getCameraId(const al::ActorInitInfo& initInfo);
|
||||
void getLinkGroupId(al::PlacementId* groupId, const al::ActorInitInfo& initInfo, const char* linkName);
|
||||
bool isEnableLinkGroupId(const al::ActorInitInfo& initInfo, const char* linkName);
|
||||
bool isEnableGroupClipping(const al::ActorInitInfo& initInfo);
|
||||
void getClippingGroupId(al::PlacementId* groupId, const al::ActorInitInfo& initInfo);
|
||||
void createClippingViewId(const al::PlacementInfo& placementInfo);
|
||||
void getClippingViewId(al::PlacementId* viewId, const al::PlacementInfo& placementInfo);
|
||||
void getClippingViewId(al::PlacementId* viewId, const al::ActorInitInfo& initInfo);
|
||||
void getModelName(const char** modelName, const al::ActorInitInfo& initInfo);
|
||||
void getModelName(const char** modelName, const al::PlacementInfo& placementInfo);
|
||||
bool tryGetModelName(const char** modelName, const al::PlacementInfo& placementInfo);
|
||||
bool tryGetModelName(const char** modelName, const al::ActorInitInfo& initInfo);
|
||||
};
|
||||
|
26
lib/al/Library/Placement/PlacementId.h
Executable file
26
lib/al/Library/Placement/PlacementId.h
Executable file
@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <resource/seadResource.h>
|
||||
|
||||
namespace al {
|
||||
class PlacementInfo;
|
||||
|
||||
class PlacementId {
|
||||
public:
|
||||
static bool isEqual(const PlacementId&, const PlacementId&);
|
||||
|
||||
PlacementId();
|
||||
PlacementId(const char*, const char*, const char*);
|
||||
|
||||
bool init(const PlacementInfo&);
|
||||
bool isEqual(const PlacementId&) const;
|
||||
bool isValid() const;
|
||||
bool makeString(sead::BufferedSafeString*) const;
|
||||
|
||||
private:
|
||||
const char* mId;
|
||||
const char* mUnitConfigName;
|
||||
const char* mZoneId;
|
||||
const char* mCommonID;
|
||||
};
|
||||
} // namespace al
|
20
lib/al/Library/Placement/PlacementInfo.h
Executable file
20
lib/al/Library/Placement/PlacementInfo.h
Executable file
@ -0,0 +1,20 @@
|
||||
#pragma once
|
||||
|
||||
#include <resource/seadResource.h>
|
||||
#include "al/Library/Yaml/ByamlIter.h"
|
||||
|
||||
namespace al {
|
||||
class PlacementInfo {
|
||||
public:
|
||||
PlacementInfo();
|
||||
|
||||
void set(const ByamlIter& placement_iter, const ByamlIter& zone_iter);
|
||||
|
||||
const ByamlIter& getPlacementIter() const { return mPlacementIter; }
|
||||
const ByamlIter& getZoneIter() const { return mZoneIter; }
|
||||
|
||||
private:
|
||||
ByamlIter mPlacementIter;
|
||||
ByamlIter mZoneIter;
|
||||
};
|
||||
} // namespace al
|
@ -1,5 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
namespace al {
|
||||
|
||||
class PadRumbleKeeper;
|
||||
@ -7,16 +9,16 @@ class LiveActor;
|
||||
|
||||
class PlayerHolder {
|
||||
public:
|
||||
PlayerHolder(int);
|
||||
PlayerHolder(s32 maxPlayers);
|
||||
void clear();
|
||||
void registerPlayer(LiveActor* actor, PadRumbleKeeper* rumble_keeper);
|
||||
LiveActor* getPlayer(int index) const;
|
||||
LiveActor* tryGetPlayer(int index) const;
|
||||
int getPlayerNum() const;
|
||||
int getBufferSize() const;
|
||||
void registerPlayer(LiveActor* actor, PadRumbleKeeper* rumbleKeeper);
|
||||
LiveActor* getPlayer(s32 index) const;
|
||||
LiveActor* tryGetPlayer(s32 index) const;
|
||||
s32 getPlayerNum() const;
|
||||
s32 getBufferSize() const;
|
||||
bool isFull() const;
|
||||
bool isExistPadRumbleKeeper(int index) const;
|
||||
PadRumbleKeeper* getPadRumbleKeeper(int index) const;
|
||||
bool isExistPadRumbleKeeper(s32 index) const;
|
||||
PadRumbleKeeper* getPadRumbleKeeper(s32 index) const;
|
||||
|
||||
private:
|
||||
struct Player {
|
||||
@ -25,7 +27,7 @@ private:
|
||||
};
|
||||
|
||||
Player* mPlayers = nullptr;
|
||||
int mBufferSize = 0;
|
||||
int mPlayerNum = 0;
|
||||
s32 mBufferSize = 0;
|
||||
s32 mPlayerNum = 0;
|
||||
};
|
||||
} // namespace al
|
||||
|
@ -46,16 +46,16 @@ public:
|
||||
};
|
||||
static_assert(sizeof(Edge) == 0x20);
|
||||
|
||||
Graph(int vertices_size, int edges_size);
|
||||
Graph(int verticesSize, int edgesSize);
|
||||
void appendVertex(int size);
|
||||
void appendVertex(Vertex* vertex);
|
||||
void removeVertex(const Vertex* vertex);
|
||||
void removeEdge(const Edge* edge);
|
||||
Edge* tryFindEdge(int index_vertex1, int index_vertex2) const;
|
||||
Edge* tryFindEdge(int indexVertex1, int indexVertex2) const;
|
||||
void appendEdge(Edge* edge);
|
||||
bool tryAppendEdge(Edge* edge);
|
||||
void appendEdge(int index_vertex1, int index_vertex2, float weight);
|
||||
bool tryAppendEdge(int index_vertex1, int index_vertex2, float weight);
|
||||
void appendEdge(int indexVertex1, int indexVertex2, float weight);
|
||||
bool tryAppendEdge(int indexVertex1, int indexVertex2, float weight);
|
||||
|
||||
private:
|
||||
sead::PtrArray<Vertex> mVertices;
|
||||
|
@ -1,12 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#include "al/Library/Rail/RailRider.h"
|
||||
|
||||
namespace al {
|
||||
class RailRider;
|
||||
|
||||
class RailKeeper {
|
||||
public:
|
||||
virtual al::RailRider* getRailRider() const;
|
||||
|
||||
al::RailRider* mRailRider; // _8
|
||||
private:
|
||||
al::RailRider* mRailRider;
|
||||
};
|
||||
}; // namespace al
|
||||
} // namespace al
|
||||
|
@ -7,27 +7,43 @@
|
||||
#include <resource/seadResource.h>
|
||||
|
||||
namespace al {
|
||||
class ActorInitResourceData;
|
||||
|
||||
class Resource {
|
||||
public:
|
||||
Resource(const sead::SafeStringBase<char>&);
|
||||
Resource(const sead::SafeStringBase<char>&, sead::ArchiveRes*);
|
||||
Resource(const sead::SafeString& path);
|
||||
Resource(const sead::SafeString& path, sead::ArchiveRes* archive);
|
||||
|
||||
bool isExistFile(const sead::SafeStringBase<char>&) const;
|
||||
bool isExistFile(const sead::SafeString& name) const;
|
||||
bool isExistByml(const char*) const;
|
||||
unsigned int getSize() const;
|
||||
u32 getSize() const;
|
||||
|
||||
unsigned int getFileSize(const sead::SafeStringBase<char>&) const;
|
||||
u32 getFileSize(const sead::SafeString&) const;
|
||||
|
||||
const u8* getByml(const sead::SafeString&);
|
||||
|
||||
bool tryCreateResGraphicsFile(const sead::SafeStringBase<char>&, nn::g3d::ResFile*);
|
||||
bool tryCreateResGraphicsFile(const sead::SafeString& name, nn::g3d::ResFile* resFile);
|
||||
void cleanupResGraphicsFile();
|
||||
|
||||
sead::ArchiveRes* mArchive; // _0
|
||||
sead::ArchiveFileDevice* mDevice; // _8
|
||||
sead::FixedSafeString<0x80> mName; // _10
|
||||
sead::Heap* mHeap; // _A8
|
||||
unsigned long _B0;
|
||||
nn::g3d::ResFile* mResFile; // _B8
|
||||
u32 getEntryNum(const sead::SafeString&) const;
|
||||
const char* getEntryName(const sead::BufferedSafeString* outName, const sead::SafeString&,
|
||||
u32) const;
|
||||
const u8* getByml(const sead::SafeString& name) const;
|
||||
void* getFile(const sead::SafeString& name) const;
|
||||
void tryGetByml(const sead::SafeString& name) const;
|
||||
void getKcl(const sead::SafeString& name) const;
|
||||
void tryGetKcl(const sead::SafeString& name) const;
|
||||
void getPa(const sead::SafeString& name) const;
|
||||
void tryGetPa(const sead::SafeString& name) const;
|
||||
void getOtherFile(const sead::SafeString& name) const;
|
||||
const char* getArchiveName() const;
|
||||
|
||||
private:
|
||||
sead::ArchiveRes* mArchive;
|
||||
sead::ArchiveFileDevice* mDevice;
|
||||
sead::FixedSafeString<0x80> mName;
|
||||
sead::Heap* mHeap;
|
||||
ActorInitResourceData* mData;
|
||||
nn::g3d::ResFile* mResFile;
|
||||
};
|
||||
}; // namespace al
|
||||
} // namespace al
|
||||
|
@ -1,10 +1,10 @@
|
||||
#pragma once
|
||||
|
||||
#include "al/audio/AudioKeeper.h"
|
||||
#include "al/camera/CameraDirector.h"
|
||||
#include "al/Library/Audio/AudioKeeper.h"
|
||||
#include "al/Library/Camera/CameraDirector.h"
|
||||
#include "al/Library/Nerve/NerveExecutor.h"
|
||||
#include "al/scene/SceneInitInfo.h"
|
||||
#include "al/Library/Scene/SceneObjHolder.h"
|
||||
#include "al/Project/Scene/SceneInitInfo.h"
|
||||
|
||||
namespace al {
|
||||
class Scene : public al::NerveExecutor,
|
||||
@ -41,4 +41,4 @@ public:
|
||||
virtual void control();
|
||||
virtual void drawMain();
|
||||
};
|
||||
}; // namespace al
|
||||
} // namespace al
|
||||
|
@ -22,8 +22,9 @@ private:
|
||||
|
||||
class IUseSceneObjHolder {
|
||||
public:
|
||||
virtual al::SceneObjHolder* getSceneObjHolder() const = 0;
|
||||
virtual SceneObjHolder* getSceneObjHolder() const = 0;
|
||||
|
||||
private:
|
||||
static const char* sSceneObjName;
|
||||
};
|
||||
|
||||
|
@ -15,33 +15,33 @@ class ModelDrawerMask;
|
||||
|
||||
class DepthShadowMapCtrl {
|
||||
public:
|
||||
DepthShadowMapCtrl(const al::Resource*);
|
||||
DepthShadowMapCtrl(const al::Resource* resource);
|
||||
~DepthShadowMapCtrl();
|
||||
|
||||
void actorModelDrawDepth();
|
||||
void actorModelDrawMask();
|
||||
void appendDepthShadowMapInfo(char const*, int, int, int, float, bool,
|
||||
sead::Vector3<float> const&, bool, sead::Vector3<float> const&,
|
||||
sead::Vector3<float> const&, bool, char const*, int, bool, float,
|
||||
float, float, bool, bool, float, int, bool, bool, float);
|
||||
DepthShadowMapInfo* getDepthShadowMapInfo(int);
|
||||
unsigned int getDepthShadowMapNum();
|
||||
void appendDepthShadowMapInfo(const char*, s32, s32, s32, f32, bool, const sead::Vector3f&,
|
||||
bool, const sead::Vector3f&, const sead::Vector3f&, bool,
|
||||
const char*, s32, bool, f32, f32, f32, bool, bool, f32, s32, bool,
|
||||
bool, f32);
|
||||
DepthShadowMapInfo* getDepthShadowMapInfo(s32 index);
|
||||
u32 getDepthShadowMapNum();
|
||||
void hide();
|
||||
void init(al::LiveActor*, const al::ByamlIter&);
|
||||
void initAfterPlacement(al::GraphicsSystemInfo*);
|
||||
void initWithoutIter(al::LiveActor*, int);
|
||||
void init(al::LiveActor* actor, const al::ByamlIter& iter);
|
||||
void initAfterPlacement(al::GraphicsSystemInfo* graphicsSystemInfo);
|
||||
void initWithoutIter(al::LiveActor* actor, s32);
|
||||
void show();
|
||||
DepthShadowMapInfo* tryFindDepthShadowMapInfo(const char*);
|
||||
void update();
|
||||
void updateShapeVisible(const al::LiveActor*);
|
||||
void updateShapeVisible(const al::LiveActor* actor);
|
||||
|
||||
private:
|
||||
al::LiveActor* mLiveActor;
|
||||
sead::Vector3<float> lightDir;
|
||||
sead::Vector3f lightDir;
|
||||
bool mIsAppendSubActor;
|
||||
sead::PtrArray<DepthShadowMapInfo> mDepthShadowMaps;
|
||||
sead::PtrArray<ModelDrawerDepthShadowMap> mModelDrawerDepthShadowMaps;
|
||||
sead::PtrArray<ModelDrawerMask> mModelDrawerMasks;
|
||||
};
|
||||
|
||||
} // namespace al
|
||||
} // namespace al
|
||||
|
@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <container/seadPtrArray.h>
|
||||
#include <math/seadMatrix.h>
|
||||
|
||||
namespace al {
|
||||
|
||||
@ -20,9 +21,9 @@ public:
|
||||
ShadowMaskBase* findShadowMask(const char*);
|
||||
void hide();
|
||||
bool init(LiveActor*, const ActorInitInfo&, const ByamlIter&);
|
||||
bool init(LiveActor*, int);
|
||||
bool init(LiveActor*, s32);
|
||||
void initAfterPlacement();
|
||||
void initShadowMaskNum(int);
|
||||
void initShadowMaskNum(s32);
|
||||
void invalidate();
|
||||
bool isHide();
|
||||
void setupShadowMaskCastOvalCylinderParam(ShadowMaskCastOvalCylinder*);
|
||||
@ -33,10 +34,10 @@ public:
|
||||
void validate();
|
||||
|
||||
private:
|
||||
sead::PtrArray<ShadowMaskBase> array;
|
||||
void* gap[6];
|
||||
sead::PtrArray<ShadowMaskBase> mShadowMasks;
|
||||
sead::Matrix34f mMtx;
|
||||
void* mLiveActor;
|
||||
bool mIsIgnoreShadowMaskYaml;
|
||||
};
|
||||
|
||||
} // namespace al
|
||||
} // namespace al
|
||||
|
@ -1,6 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "al/Library/Base/IUseName.h"
|
||||
#include "al/Library/HostIO/IUseName.h"
|
||||
|
||||
namespace al {
|
||||
class StageSwitchKeeper;
|
||||
|
@ -2,7 +2,25 @@
|
||||
|
||||
namespace al {
|
||||
class IUseStageSwitch;
|
||||
class StageSwitchDirector;
|
||||
class PlacementInfo;
|
||||
|
||||
bool isValidSwitchAppear(const IUseStageSwitch* user);
|
||||
bool isValidSwitchKill(const IUseStageSwitch* user);
|
||||
void initStageSwitch(al::IUseStageSwitch* user, al::StageSwitchDirector* stageSwitchDirector, const al::PlacementInfo& placementInfo);
|
||||
bool isValidStageSwitch(const al::IUseStageSwitch* user, const char* linkName);
|
||||
bool isOnStageSwitch(const al::IUseStageSwitch* user, const char* linkName);
|
||||
void onStageSwitch(al::IUseStageSwitch* user, const char* linkName);
|
||||
void offStageSwitch(al::IUseStageSwitch* user, const char* linkName);
|
||||
bool isOnStageSwitch(al::IUseStageSwitch* user, const char* linkName);
|
||||
bool isOffStageSwitch(al::IUseStageSwitch* user, const char* linkName);
|
||||
bool isSameStageSwitch(const al::IUseStageSwitch* user, const al::IUseStageSwitch* otherUser, const char* linkName);
|
||||
bool isValidSwitchAppear(const al::IUseStageSwitch* user);
|
||||
bool isOnSwitchAppear(const al::IUseStageSwitch* user);
|
||||
bool isValidSwitchKill(const al::IUseStageSwitch* user);
|
||||
bool isValidSwitchDeadOn(const al::IUseStageSwitch* user);
|
||||
void onSwitchDeadOn(al::IUseStageSwitch* user);
|
||||
void offSwitchDeadOn(al::IUseStageSwitch* user);
|
||||
bool isOnSwitchDeadOn(al::IUseStageSwitch* user);
|
||||
bool isOffSwitchDeadOn(al::IUseStageSwitch* user);
|
||||
bool isValidSwitchStart(const al::IUseStageSwitch* user);
|
||||
bool isOnSwitchStart(const al::IUseStageSwitch* user);
|
||||
} // namespace al
|
||||
|
37
lib/al/Library/System/System.Kit.h
Normal file
37
lib/al/Library/System/System.Kit.h
Normal file
@ -0,0 +1,37 @@
|
||||
#pragma once
|
||||
|
||||
#include <heap/seadHeap.h>
|
||||
|
||||
namespace al {
|
||||
class FileLoader;
|
||||
class MemorySystem;
|
||||
class ResourceSystem;
|
||||
class SaveDataDirector;
|
||||
|
||||
class SystemKit {
|
||||
friend class alProjectInterface;
|
||||
|
||||
public:
|
||||
SystemKit();
|
||||
|
||||
void createFileLoader(s32 threadPriority);
|
||||
void createMemorySystem(sead::Heap* heap);
|
||||
void createResourceSystem(const char* archivePath, s32, s32, bool);
|
||||
void createSaveDataSystem();
|
||||
|
||||
MemorySystem* getMemorySystem() { return mMemorySystem; }
|
||||
FileLoader* getFileLoader() { return mFileLoader; }
|
||||
ResourceSystem* getResourceSystem() { return mResourceSystem; }
|
||||
SaveDataDirector* getSaveDataDirector() { return mSaveDataDirector; }
|
||||
|
||||
private:
|
||||
MemorySystem* mMemorySystem;
|
||||
FileLoader* mFileLoader;
|
||||
ResourceSystem* mResourceSystem;
|
||||
SaveDataDirector* mSaveDataDirector;
|
||||
};
|
||||
} // namespace al
|
||||
|
||||
class alProjectInterface {
|
||||
static al::SystemKit* getSystemKit();
|
||||
};
|
@ -15,13 +15,13 @@ public:
|
||||
|
||||
private:
|
||||
union {
|
||||
int _0;
|
||||
unsigned short mTag, mVersion; // unusable due to different loading mechanisms
|
||||
s32 _0;
|
||||
u16 mTag, mVersion; // unusable due to different loading mechanisms
|
||||
};
|
||||
|
||||
int mHashKeyOffset;
|
||||
int mStringTableOffset;
|
||||
int mDataOffset;
|
||||
s32 mHashKeyOffset;
|
||||
s32 mStringTableOffset;
|
||||
s32 mDataOffset;
|
||||
};
|
||||
|
||||
class ByamlStringTableIter {
|
||||
@ -29,13 +29,13 @@ public:
|
||||
ByamlStringTableIter();
|
||||
ByamlStringTableIter(const u8* data, bool isRev);
|
||||
|
||||
int getSize() const;
|
||||
s32 getSize() const;
|
||||
const u32* getAddressTable() const;
|
||||
u32 getStringAddress(int index) const;
|
||||
u32 getStringAddress(s32 index) const;
|
||||
u32 getEndAddress() const;
|
||||
const char* getString(int index) const;
|
||||
int getStringSize(int index) const;
|
||||
int findStringIndex(const char* str) const;
|
||||
const char* getString(s32 index) const;
|
||||
s32 getStringSize(s32 index) const;
|
||||
s32 findStringIndex(const char* str) const;
|
||||
bool isValidate() const;
|
||||
|
||||
private:
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
#include <math/seadMatrix.h>
|
||||
#include <math/seadVector.h>
|
||||
#include "al/Library/HitSensor/SensorHitGroup.h"
|
||||
#include "al/Project/HitSensor/SensorHitGroup.h"
|
||||
|
||||
namespace al {
|
||||
class LiveActor;
|
21
lib/al/Project/HitSensor/SensorHitGroup.h
Executable file
21
lib/al/Project/HitSensor/SensorHitGroup.h
Executable file
@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
namespace al {
|
||||
class HitSensor;
|
||||
|
||||
class SensorHitGroup {
|
||||
public:
|
||||
SensorHitGroup(s32 maxSensors, const char* groupName);
|
||||
|
||||
void add(HitSensor* sensor);
|
||||
void remove(HitSensor* sensor);
|
||||
HitSensor* getSensor(s32 index) const;
|
||||
|
||||
private:
|
||||
s32 mMaxSensors;
|
||||
s32 mSensorCount = 0;
|
||||
HitSensor** mSensors;
|
||||
};
|
||||
}; // namespace al
|
26
lib/al/Project/Item/ActorScoreKeeper.h
Normal file
26
lib/al/Project/Item/ActorScoreKeeper.h
Normal file
@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
namespace al {
|
||||
class ByamlIter;
|
||||
|
||||
class ActorScoreKeeper {
|
||||
public:
|
||||
struct Entry {
|
||||
const char* factorName;
|
||||
const char* categoryName;
|
||||
};
|
||||
|
||||
ActorScoreKeeper();
|
||||
|
||||
void init(const ByamlIter& iter);
|
||||
void getCategoryName(); // unknown return type
|
||||
const char* tryGetCategoryName(const char* a1);
|
||||
|
||||
private:
|
||||
inline void allocArray();
|
||||
inline void putEntry(int index, const ByamlIter& iter);
|
||||
|
||||
Entry* array;
|
||||
int size;
|
||||
};
|
||||
}; // namespace al
|
@ -2,8 +2,6 @@
|
||||
|
||||
#include <container/seadPtrArray.h>
|
||||
#include <gfx/seadColor.h>
|
||||
#include "al/Library/LiveActor/ActorInitInfo.h"
|
||||
#include "al/Library/Resource/Resource.h"
|
||||
|
||||
namespace al {
|
||||
class PrePassLightBase;
|
||||
@ -14,6 +12,8 @@ class ParameterStringRef;
|
||||
class ParameterC4f;
|
||||
class ParameterArray;
|
||||
class LiveActor;
|
||||
class Resource;
|
||||
class ActorInitInfo;
|
||||
|
||||
class ActorPrePassLightKeeper {
|
||||
class UserColor {
|
||||
@ -32,19 +32,19 @@ public:
|
||||
|
||||
ActorPrePassLightKeeper(LiveActor*);
|
||||
void init(const Resource*, const ActorInitInfo&, const char*);
|
||||
void initLightNum(int);
|
||||
void initLightNum(s32);
|
||||
void initAfterPlacement();
|
||||
void appear(bool);
|
||||
void requestKill();
|
||||
void hideModel();
|
||||
void updateHideModel(bool);
|
||||
PrePassLightBase* getLightBase(const char*);
|
||||
PrePassLightBase* getLightBase(int);
|
||||
PrePassLightBase* getLightBase(s32);
|
||||
sead::Color4f* findUserColor(const char*);
|
||||
|
||||
private:
|
||||
ParameterIo* mParameterIo;
|
||||
ParameterBool* isIgnoreHideModel;
|
||||
ParameterBool* mIsIgnoreHideModel;
|
||||
ParameterArray* mLightParameters;
|
||||
ParameterArray* mUserColorParameters;
|
||||
sead::PtrArray<PrePassLightBase*> mLights;
|
||||
|
@ -31,17 +31,3 @@ public:
|
||||
private:
|
||||
sead::Quatf gap = sead::Quatf::unit;
|
||||
};
|
||||
|
||||
namespace {
|
||||
|
||||
NERVE_HEADER(MofumofuWarpHole, Close)
|
||||
NERVE_HEADER(MofumofuWarpHole, Disappear)
|
||||
NERVE_HEADER(MofumofuWarpHole, Appear)
|
||||
NERVE_HEADER(MofumofuWarpHole, HideMove)
|
||||
NERVE_HEADER(MofumofuWarpHole, HideWait)
|
||||
NERVE_HEADER(MofumofuWarpHole, Wait)
|
||||
NERVE_HEADER(MofumofuWarpHole, DashSign)
|
||||
NERVE_HEADER(MofumofuWarpHole, DashSignEnd)
|
||||
NERVE_HEADER(MofumofuWarpHole, CloseAndDisappear)
|
||||
|
||||
} // namespace
|
||||
|
@ -25,8 +25,3 @@ public:
|
||||
private:
|
||||
ActorDimensionKeeper* mActorDimensionKeeper = nullptr;
|
||||
};
|
||||
|
||||
namespace {
|
||||
NERVE_HEADER(FireDrum2D, Wait)
|
||||
NERVE_HEADER(FireDrum2D, Burn)
|
||||
} // namespace
|
||||
|
@ -1,10 +1,25 @@
|
||||
#pragma once
|
||||
|
||||
class IUseDimension;
|
||||
#include "al/Library/LiveActor/LiveActor.h"
|
||||
|
||||
namespace al {
|
||||
class LiveActor;
|
||||
}
|
||||
class Player : public al::LiveActor {
|
||||
public:
|
||||
Player(const char* actorName, const char* archiveName, s32 port);
|
||||
|
||||
void init(const al::ActorInitInfo& initInfo) override;
|
||||
void control() override;
|
||||
|
||||
void exeWait();
|
||||
void exeRun();
|
||||
void exeJump();
|
||||
void exeFall();
|
||||
void exeDamage();
|
||||
|
||||
private:
|
||||
const char* mArchiveName;
|
||||
s32 mPort;
|
||||
s32 mAirTime;
|
||||
};
|
||||
|
||||
namespace rs {
|
||||
|
||||
|
@ -1,14 +1,22 @@
|
||||
/**
|
||||
* @file PlayerHackKeeper.h
|
||||
* @brief Contains info on the current hack (capture)
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "al/Library/LiveActor/LiveActor.h"
|
||||
|
||||
class PlayerRecoverySafetyPoint;
|
||||
class HackCap;
|
||||
class PlayerInput;
|
||||
class PlayerDamageKeeper;
|
||||
class IPlayerModelChanger;
|
||||
class IUsePlayerHeightCheck;
|
||||
|
||||
class PlayerHackKeeper {
|
||||
public:
|
||||
PlayerHackKeeper(al::LiveActor* player, HackCap* cap, PlayerRecoverySafetyPoint* safetyPoint,
|
||||
const PlayerInput* input, const sead::Matrix34f* mtx,
|
||||
PlayerDamageKeeper* damageKeeper, const IPlayerModelChanger* modelChanger,
|
||||
const IUsePlayerHeightCheck* heightCheck);
|
||||
|
||||
private:
|
||||
char padding[0x68];
|
||||
al::LiveActor* currentHackActor;
|
||||
};
|
||||
|
40
lib/game/System/Application.h
Normal file
40
lib/game/System/Application.h
Normal file
@ -0,0 +1,40 @@
|
||||
#pragma once
|
||||
|
||||
#include <heap/seadDisposer.h>
|
||||
|
||||
namespace al {
|
||||
class SystemKit;
|
||||
class GameFrameworkNx;
|
||||
class AccountHolder;
|
||||
} // namespace al
|
||||
|
||||
class RootTask;
|
||||
struct GameDrawInfo;
|
||||
|
||||
class Application {
|
||||
friend class ApplicationFunction;
|
||||
SEAD_SINGLETON_DISPOSER(Application);
|
||||
public:
|
||||
Application();
|
||||
void init(s32 argc, char** argv);
|
||||
void run();
|
||||
RootTask* getRootTask() const;
|
||||
|
||||
private:
|
||||
al::SystemKit* mSystemKit;
|
||||
al::GameFrameworkNx* mGameFramework;
|
||||
al::AccountHolder* mAccountHolder;
|
||||
GameDrawInfo* mDrawInfo;
|
||||
};
|
||||
|
||||
namespace agl {
|
||||
class RenderBuffer;
|
||||
class DrawContext;
|
||||
} // namespace agl
|
||||
|
||||
struct GameDrawInfo {
|
||||
agl::RenderBuffer* dockedRenderBuffer;
|
||||
agl::RenderBuffer* handheldRenderBuffer;
|
||||
bool isDocked;
|
||||
agl::DrawContext* drawContext;
|
||||
};
|
8
lib/game/System/ApplicationFunction.h
Normal file
8
lib/game/System/ApplicationFunction.h
Normal file
@ -0,0 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
class ApplicationFunction {
|
||||
public:
|
||||
static void initialize(s32 argc, char** argv);
|
||||
};
|
22
lib/game/System/RootTask.h
Normal file
22
lib/game/System/RootTask.h
Normal file
@ -0,0 +1,22 @@
|
||||
#pragma once
|
||||
|
||||
#include <gfx/seadDrawContext.h>
|
||||
|
||||
class GameSystem;
|
||||
|
||||
// TODO: Implement sead::Task, currently missing from sead headers
|
||||
class RootTask {
|
||||
public:
|
||||
RootTask();
|
||||
void enter();
|
||||
void draw();
|
||||
void calc();
|
||||
void prepare();
|
||||
|
||||
private:
|
||||
// TODO: Remove once RootTask implements sead::Task
|
||||
char taskImplDetails[0x200];
|
||||
GameSystem* mGameSystem;
|
||||
void* field_208;
|
||||
sead::DrawContext* drawContext;
|
||||
};
|
@ -1,7 +1,8 @@
|
||||
add_subdirectory(Base)
|
||||
add_subdirectory(Clipping)
|
||||
add_subdirectory(Controller)
|
||||
add_subdirectory(Execute)
|
||||
add_subdirectory(HitSensor)
|
||||
add_subdirectory(Layout)
|
||||
add_subdirectory(LiveActor)
|
||||
add_subdirectory(MapObj)
|
||||
add_subdirectory(Math)
|
||||
|
3
src/al/Library/Clipping/CMakeLists.txt
Normal file
3
src/al/Library/Clipping/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
||||
target_sources(odyssey PRIVATE
|
||||
ViewIdHolder.cpp
|
||||
)
|
19
src/al/Library/Clipping/ViewIdHolder.cpp
Normal file
19
src/al/Library/Clipping/ViewIdHolder.cpp
Normal file
@ -0,0 +1,19 @@
|
||||
#include "al/Library/Clipping/ViewIdHolder.h"
|
||||
#include "al/Library/Placement/PlacementFunction.h"
|
||||
#include "al/Library/Placement/PlacementId.h"
|
||||
|
||||
namespace al {
|
||||
ViewIdHolder::ViewIdHolder() {}
|
||||
ViewIdHolder* ViewIdHolder::tryCreate(const PlacementInfo& placementInfo) {
|
||||
if (calcLinkChildNum(placementInfo, "ViewGroup") < 1) {
|
||||
return nullptr;
|
||||
} else {
|
||||
ViewIdHolder* holder = new ViewIdHolder();
|
||||
holder->init(placementInfo);
|
||||
return holder;
|
||||
}
|
||||
}
|
||||
void ViewIdHolder::init(const PlacementInfo& placementInfo) {
|
||||
mPlacementIds = new PlacementId[calcLinkChildNum(placementInfo, "ViewGroup")];
|
||||
}
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
#include "al/Library/HitSensor/SensorHitGroup.h"
|
||||
|
||||
namespace al {
|
||||
void SensorHitGroup::add(al::HitSensor* pSensor) {
|
||||
mSensors[mSensorCount] = pSensor;
|
||||
mSensorCount++;
|
||||
}
|
||||
|
||||
al::HitSensor* SensorHitGroup::getSensor(int idx) const {
|
||||
return mSensors[idx];
|
||||
}
|
||||
}; // namespace al
|
4
src/al/Library/Layout/CMakeLists.txt
Normal file
4
src/al/Library/Layout/CMakeLists.txt
Normal file
@ -0,0 +1,4 @@
|
||||
target_sources(odyssey PRIVATE
|
||||
LayoutActor.cpp
|
||||
LayoutPartsActorKeeper.cpp
|
||||
)
|
50
src/al/Library/Layout/LayoutActor.cpp
Normal file
50
src/al/Library/Layout/LayoutActor.cpp
Normal file
@ -0,0 +1,50 @@
|
||||
#include "al/Library/Layout/LayoutActor.h"
|
||||
#include "al/Library/Audio/AudioKeeper.h"
|
||||
#include "al/Library/Layout/LayoutActorUtil.h"
|
||||
#include "al/Library/Layout/LayoutPartsActorKeeper.h"
|
||||
#include "al/Library/Layout/LayoutSceneInfo.h"
|
||||
|
||||
namespace al {
|
||||
void LayoutActor::appear() {
|
||||
mIsAlive = true;
|
||||
if (mAudioKeeper)
|
||||
mAudioKeeper->appear();
|
||||
if (mLayoutPartsActorKeeper)
|
||||
mLayoutPartsActorKeeper->appear();
|
||||
updateLayoutPaneRecursive(this);
|
||||
this->calcAnim(false);
|
||||
}
|
||||
void LayoutActor::initLayoutPartsActorKeeper(s32 capacity) {
|
||||
mLayoutPartsActorKeeper = new LayoutPartsActorKeeper(capacity);
|
||||
}
|
||||
void LayoutActor::initLayoutKeeper(LayoutKeeper* layoutKeeper) {
|
||||
mLayoutKeeper = layoutKeeper;
|
||||
}
|
||||
NerveKeeper* LayoutActor::getNerveKeeper(void) const {
|
||||
return mNerveKeeper;
|
||||
}
|
||||
const char* LayoutActor::getName(void) const {
|
||||
return mName.cstr();
|
||||
}
|
||||
EffectKeeper* LayoutActor::getEffectKeeper(void) const {
|
||||
return mEffectKeeper;
|
||||
}
|
||||
AudioKeeper* LayoutActor::getAudioKeeper(void) const {
|
||||
return mAudioKeeper;
|
||||
}
|
||||
LayoutActionKeeper* LayoutActor::getLayoutActionKeeper(void) const {
|
||||
return mLayoutActionKeeper;
|
||||
}
|
||||
LayoutKeeper* LayoutActor::getLayoutKeeper(void) const {
|
||||
return mLayoutKeeper;
|
||||
}
|
||||
CameraDirector* LayoutActor::getCameraDirector(void) const {
|
||||
return mLayoutSceneInfo->getCameraDirector();
|
||||
}
|
||||
SceneObjHolder* LayoutActor::getSceneObjHolder(void) const {
|
||||
return mLayoutSceneInfo->getSceneObjHolder();
|
||||
}
|
||||
const MessageSystem* LayoutActor::getMessageSystem(void) const {
|
||||
return mLayoutSceneInfo->getMessageSystem();
|
||||
}
|
||||
} // namespace al
|
21
src/al/Library/Layout/LayoutPartsActorKeeper.cpp
Normal file
21
src/al/Library/Layout/LayoutPartsActorKeeper.cpp
Normal file
@ -0,0 +1,21 @@
|
||||
#include "al/Library/Layout/LayoutPartsActorKeeper.h"
|
||||
#include "al/Library/Layout/LayoutActor.h"
|
||||
|
||||
namespace al {
|
||||
void LayoutPartsActorKeeper::resisterPartsActor(LayoutActor* actor) {
|
||||
|
||||
}
|
||||
void LayoutPartsActorKeeper::appear() {
|
||||
for (s32 i = 0; i < mNumActors; i++) {
|
||||
mPartsActors[i]->appear();
|
||||
}
|
||||
}
|
||||
void LayoutPartsActorKeeper::calcAnim(bool recursive) {
|
||||
for (s32 i = 0; i < mNumActors; i++) {
|
||||
mPartsActors[i]->calcAnim(recursive);
|
||||
}
|
||||
}
|
||||
LayoutPartsActorKeeper::LayoutPartsActorKeeper(s32 maxActors) : mMaxActors(maxActors) {
|
||||
mPartsActors = new LayoutActor*[maxActors];
|
||||
}
|
||||
} // namespace al
|
32
src/al/Library/LiveActor/ActorFlagFunction.cpp
Normal file
32
src/al/Library/LiveActor/ActorFlagFunction.cpp
Normal file
@ -0,0 +1,32 @@
|
||||
#include "al/Library/LiveActor/ActorFlagFunction.h"
|
||||
#include "al/Library/LiveActor/LiveActor.h"
|
||||
|
||||
namespace al {
|
||||
bool isAlive(const LiveActor* actor) {
|
||||
return !actor->getFlags()->isDead;
|
||||
}
|
||||
bool isDead(const LiveActor* actor) {
|
||||
return actor->getFlags()->isDead;
|
||||
}
|
||||
bool isNoCollide(const LiveActor* actor) {
|
||||
return actor->getFlags()->isCollideOff;
|
||||
}
|
||||
void onCalcAnim(LiveActor* actor) {}
|
||||
void offCalcAnim(LiveActor* actor) {}
|
||||
void validateShadow(LiveActor* actor) {}
|
||||
void invalidateShadow(LiveActor* actor) {}
|
||||
void onCollide(LiveActor* actor) {
|
||||
actor->getFlags()->isCollideOff = false;
|
||||
}
|
||||
void offCollide(LiveActor* actor) {}
|
||||
void validateMaterialCode(LiveActor* actor) {}
|
||||
void invalidateMaterialCode(LiveActor* actor) {}
|
||||
void validatePuddleMaterial(LiveActor* actor) {}
|
||||
void invalidatePuddleMaterial(LiveActor* actor) {}
|
||||
bool isAreaTarget(const LiveActor* actor) {}
|
||||
void onAreaTarget(LiveActor* actor) {}
|
||||
void offAreaTarget(LiveActor* actor) {}
|
||||
void isUpdateMovementEffectAudioCollisionSensor(const LiveActor* actor) {}
|
||||
void onUpdateMovementEffectAudioCollisionSensor(LiveActor* actor) {}
|
||||
void offUpdateMovementEffectAudioCollisionSensor(LiveActor* actor) {}
|
||||
}
|
60
src/al/Library/LiveActor/ActorInitInfo.cpp
Normal file
60
src/al/Library/LiveActor/ActorInitInfo.cpp
Normal file
@ -0,0 +1,60 @@
|
||||
#include "al/Library/LiveActor/ActorInitInfo.h"
|
||||
#include "al/Library/Clipping/ViewIdHolder.h"
|
||||
|
||||
namespace al {
|
||||
ActorInitInfo::ActorInitInfo() = default;
|
||||
|
||||
|
||||
/// TODO: FINISH THIS
|
||||
//void ActorInitInfo::initNew(
|
||||
// const PlacementInfo* placementInfo, const LayoutInitInfo* layoutInitInfo,
|
||||
// LiveActorGroup* allActorsGroup, const ActorFactory* actorFactory,
|
||||
// ActorResourceHolder* actorResourceHolder, AreaObjDirector* areaObjDirector,
|
||||
// AudioDirector* audioDirector, CameraDirector* cameraDirector,
|
||||
// ClippingDirector* clippingDirector, CollisionDirector* collisionDirector,
|
||||
// DemoDirector* demoDirector, EffectSystemInfo* effectSystemInfo,
|
||||
// ExecuteDirector* executeDirector, GameDataHolderBase* gameDataHolder,
|
||||
// GravityHolder* gravityHolder, HitSensorDirector* hitSensorDirector,
|
||||
// ItemDirectorBase* itemDirector, NatureDirector* natureDirector,
|
||||
// const GamePadSystem* gamePadSystem, PadRumbleDirector* padRumbleDirector,
|
||||
// PlayerHolder* playerHolder, SceneObjHolder* sceneObjHolder, SceneMsgCtrl* sceneMsgCtrl,
|
||||
// SceneStopCtrl* sceneStopCtrl, ScreenCoverCtrl* screenCoverCtrl,
|
||||
// ScreenPointDirector* screenPointDirector, ShadowDirector* shadowDirector,
|
||||
// StageSwitchDirector* stageSwitchDirector, ModelGroup* modelGroup,
|
||||
// GraphicsSystemInfo* graphicsSystemInfo, ModelDrawBufferCounter* modelDrawBufferCounter,
|
||||
// LiveActorGroup* kitDrawingGroup) {
|
||||
// mActorSceneInfo.mModelDrawBufferCounter = modelDrawBufferCounter;
|
||||
// mKitDrawingGroup = kitDrawingGroup;
|
||||
// mActorFactory = actorFactory;
|
||||
// mActorResourceHolder = actorResourceHolder;
|
||||
// mEffectSystemInfo = effectSystemInfo;
|
||||
// mExecuteDirector = executeDirector;
|
||||
// mLayoutInitInfo = layoutInitInfo;
|
||||
// mActorSceneInfo.mAreaObjDirector = areaObjDirector;
|
||||
// mHitSensorDirector = hitSensorDirector;
|
||||
// mStageSwitchDirector = stageSwitchDirector;
|
||||
// mScreenPointDirector = screenPointDirector;
|
||||
// mActorSceneInfo.mCameraDirector = cameraDirector;
|
||||
// mActorSceneInfo.mClippingDirector = clippingDirector;
|
||||
// mActorSceneInfo.mGameDataHolder = gameDataHolder;
|
||||
// mActorSceneInfo.mGravityHolder = gravityHolder;
|
||||
// mActorSceneInfo.mCollisionDirector = collisionDirector;
|
||||
// mActorSceneInfo.mDemoDirector = demoDirector;
|
||||
// mActorSceneInfo.mItemDirector = itemDirector;
|
||||
// mActorSceneInfo.mNatureDirector = natureDirector;
|
||||
// mActorSceneInfo.mGamePadSystem = gamePadSystem;
|
||||
// mActorSceneInfo.mPadRumbleDirector = padRumbleDirector;
|
||||
// mActorSceneInfo.mPlayerHolder = playerHolder;
|
||||
// mActorSceneInfo.mSceneObjHolder = sceneObjHolder;
|
||||
// mActorSceneInfo.mSceneStopCtrl = sceneStopCtrl;
|
||||
// mActorSceneInfo.mSceneMsgCtrl = sceneMsgCtrl;
|
||||
// mActorSceneInfo.mScreenCoverCtrl = screenCoverCtrl;
|
||||
// mActorSceneInfo.mShadowDirector = shadowDirector;
|
||||
// mActorSceneInfo.mModelGroup = modelGroup;
|
||||
// mActorSceneInfo.mGraphicsSystemInfo = graphicsSystemInfo;
|
||||
// mAllActorsGroup = allActorsGroup;
|
||||
// mAudioDirector = audioDirector;
|
||||
// mPlacementInfo = placementInfo;
|
||||
// mViewIdHolder = ViewIdHolder::tryCreate(*placementInfo);
|
||||
//}
|
||||
} // namespace al
|
@ -15,17 +15,17 @@ float calcDistance(const al::LiveActor* l1, const sead::Vector3f& vec) {
|
||||
}
|
||||
|
||||
float calcSpeed(const al::LiveActor* actor) {
|
||||
return actor->mPoseKeeper->getVelocity().length();
|
||||
return actor->getPoseKeeper()->getVelocity().length();
|
||||
}
|
||||
|
||||
float calcSpeedH(const al::LiveActor* actor) {
|
||||
sead::Vector3f verticalized;
|
||||
al::verticalizeVec(&verticalized, al::getGravity(actor), actor->mPoseKeeper->getVelocity());
|
||||
al::verticalizeVec(&verticalized, al::getGravity(actor), actor->getPoseKeeper()->getVelocity());
|
||||
return verticalized.length();
|
||||
}
|
||||
|
||||
float calcSpeedV(const al::LiveActor* actor) {
|
||||
return -actor->mPoseKeeper->getVelocity().dot(al::getGravity(actor));
|
||||
return -actor->getPoseKeeper()->getVelocity().dot(al::getGravity(actor));
|
||||
}
|
||||
|
||||
} // namespace al
|
||||
|
@ -1,5 +1,7 @@
|
||||
target_sources(odyssey PRIVATE
|
||||
ActorFactory.cpp
|
||||
ActorFlagFunction.cpp
|
||||
ActorInitInfo.cpp
|
||||
ActorMovementFunction.cpp
|
||||
ActorPoseKeeper.cpp
|
||||
LiveActor.cpp
|
||||
|
@ -1,27 +1,28 @@
|
||||
#include "al/Library/LiveActor/LiveActor.h"
|
||||
|
||||
#include <string.h>
|
||||
#include "al/Library/LiveActor/LiveActorFlag.h"
|
||||
#include "al/Library/LiveActor/ActorFlagFunction.h"
|
||||
#include "al/Library/LiveActor/LiveActorUtil.h"
|
||||
#include "al/Library/Rail/RailKeeper.h"
|
||||
#include "al/Library/Shadow/ShadowKeeper.h"
|
||||
#include "al/Project/Light/ActorPrepassLightKeeper.h"
|
||||
#include "al/Library/LiveActor/LiveActorUtil.h"
|
||||
|
||||
namespace al {
|
||||
|
||||
LiveActor::LiveActor(const char* actorName) : mActorName(actorName) {
|
||||
memset(&mPoseKeeper, 0, 0xB8);
|
||||
mLiveActorFlag = new LiveActorFlag();
|
||||
mFlags = new LiveActorFlag();
|
||||
mShadowKeeper = new ShadowKeeper();
|
||||
}
|
||||
|
||||
al::NerveKeeper* LiveActor::getNerveKeeper() const {
|
||||
NerveKeeper* LiveActor::getNerveKeeper() const {
|
||||
return mNerveKeeper;
|
||||
}
|
||||
|
||||
const char* LiveActor::getName() const {
|
||||
return mActorName;
|
||||
}
|
||||
al::EffectKeeper* LiveActor::getEffectKeeper() const {
|
||||
EffectKeeper* LiveActor::getEffectKeeper() const {
|
||||
return mEffectKeeper;
|
||||
}
|
||||
AudioKeeper* LiveActor::getAudioKeeper() const {
|
||||
@ -94,35 +95,4 @@ void LiveActor::initSceneInfo(ActorSceneInfo* sceneInfo) {
|
||||
mSceneInfo = sceneInfo;
|
||||
}
|
||||
|
||||
ActorScoreKeeper::ActorScoreKeeper() = default;
|
||||
|
||||
void ActorScoreKeeper::init(const al::ByamlIter& iter) {
|
||||
if (iter.isTypeArray()) {
|
||||
size = iter.getSize();
|
||||
allocArray();
|
||||
for (int i = 0; i < size; i++) {
|
||||
al::ByamlIter subIter;
|
||||
iter.tryGetIterByIndex(&subIter, i);
|
||||
putEntry(i, subIter);
|
||||
}
|
||||
} else {
|
||||
size = 1;
|
||||
allocArray();
|
||||
putEntry(0, iter);
|
||||
}
|
||||
}
|
||||
|
||||
inline void ActorScoreKeeper::allocArray() {
|
||||
Entry* local_array = new Entry[size];
|
||||
if (size)
|
||||
memset(local_array, 0, sizeof(Entry) * size);
|
||||
array = local_array;
|
||||
}
|
||||
|
||||
inline void ActorScoreKeeper::putEntry(int index, const al::ByamlIter& iter) {
|
||||
auto& entry = array[index];
|
||||
iter.tryGetStringByKey(&entry.factorName, "FactorName");
|
||||
iter.tryGetStringByKey(&entry.categoryName, "CategoryName");
|
||||
}
|
||||
|
||||
}; // namespace al
|
||||
} // namespace al
|
||||
|
@ -1,7 +1,5 @@
|
||||
#include "al/Library/LiveActor/LiveActorFlag.h"
|
||||
#include "al/Library/LiveActor/LiveActor.h"
|
||||
|
||||
namespace al {
|
||||
|
||||
LiveActorFlag::LiveActorFlag() = default;
|
||||
|
||||
} // namespace al
|
||||
}
|
||||
|
@ -2,21 +2,20 @@
|
||||
#include "al/Library/LiveActor/LiveActorUtil.h"
|
||||
|
||||
namespace al {
|
||||
LiveActorGroup::LiveActorGroup(const char* pName, int max) {
|
||||
mMaxActorCount = max;
|
||||
LiveActorGroup::LiveActorGroup(const char* groupName, s32 maxActors)
|
||||
: mGroupName(groupName), mMaxActorCount(maxActors) {
|
||||
mActorCount = 0;
|
||||
mGroupName = pName;
|
||||
mActors = new LiveActor*[max];
|
||||
mActors = new LiveActor*[maxActors];
|
||||
}
|
||||
|
||||
int LiveActorGroup::registerActor(al::LiveActor* pActor) {
|
||||
int LiveActorGroup::registerActor(LiveActor* pActor) {
|
||||
this->mActors[this->mActorCount] = pActor;
|
||||
auto count = this->mActorCount;
|
||||
this->mActorCount = count + 1;
|
||||
return count;
|
||||
}
|
||||
|
||||
void LiveActorGroup::removeActor(const al::LiveActor* pActor) {
|
||||
void LiveActorGroup::removeActor(const LiveActor* pActor) {
|
||||
for (int i = 0; i < mActorCount; i++) {
|
||||
if (mActors[i] == pActor) {
|
||||
mActors[i] = mActors[mActorCount - 1];
|
||||
@ -30,7 +29,7 @@ void LiveActorGroup::removeActorAll() {
|
||||
mActorCount = 0;
|
||||
}
|
||||
|
||||
bool LiveActorGroup::isExistActor(const al::LiveActor* pActor) const {
|
||||
bool LiveActorGroup::isExistActor(const LiveActor* pActor) const {
|
||||
if (mActorCount < 1) {
|
||||
return false;
|
||||
}
|
||||
@ -52,7 +51,7 @@ int LiveActorGroup::calcAliveActorNum() const {
|
||||
int count = 0;
|
||||
|
||||
for (int i = 0; i < mActorCount; i++) {
|
||||
if (!al::isDead(mActors[i])) {
|
||||
if (!isDead(mActors[i])) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
@ -60,9 +59,9 @@ int LiveActorGroup::calcAliveActorNum() const {
|
||||
return count;
|
||||
}
|
||||
|
||||
al::LiveActor* LiveActorGroup::getDeadActor() const {
|
||||
LiveActor* LiveActorGroup::getDeadActor() const {
|
||||
for (int i = 0; i < mActorCount; i++) {
|
||||
if (al::isDead(mActors[i])) {
|
||||
if (isDead(mActors[i])) {
|
||||
return mActors[i];
|
||||
}
|
||||
}
|
||||
@ -70,9 +69,9 @@ al::LiveActor* LiveActorGroup::getDeadActor() const {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
al::LiveActor* LiveActorGroup::tryFindDeadActor() const {
|
||||
LiveActor* LiveActorGroup::tryFindDeadActor() const {
|
||||
for (int i = 0; i < mActorCount; i++) {
|
||||
if (al::isDead(mActors[i])) {
|
||||
if (isDead(mActors[i])) {
|
||||
return mActors[i];
|
||||
}
|
||||
}
|
||||
@ -82,7 +81,7 @@ al::LiveActor* LiveActorGroup::tryFindDeadActor() const {
|
||||
|
||||
void LiveActorGroup::appearAll() {
|
||||
for (int i = 0; i < mActorCount; i++) {
|
||||
if (al::isDead(mActors[i])) {
|
||||
if (isDead(mActors[i])) {
|
||||
mActors[i]->appear();
|
||||
}
|
||||
}
|
||||
@ -90,7 +89,7 @@ void LiveActorGroup::appearAll() {
|
||||
|
||||
void LiveActorGroup::killAll() {
|
||||
for (int i = 0; i < mActorCount; i++) {
|
||||
if (al::isAlive(mActors[i])) {
|
||||
if (isAlive(mActors[i])) {
|
||||
mActors[i]->kill();
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,6 @@
|
||||
#include "al/Library/MapObj/FixMapParts.h"
|
||||
#include "al/Library/LiveActor/ActorActionFunction.h"
|
||||
#include "al/Library/LiveActor/ActorInitInfo.h"
|
||||
#include "al/Library/LiveActor/ActorSensorMsgFunction.h"
|
||||
#include "al/Library/LiveActor/LiveActorUtil.h"
|
||||
#include "al/util/OtherUtil.h"
|
||||
@ -13,7 +15,7 @@ void FixMapParts::init(const ActorInitInfo& info) {
|
||||
trySyncStageSwitchAppearAndKill(this);
|
||||
registActorToDemoInfo(this, info);
|
||||
|
||||
if (mModelKeeper != nullptr && !isExistAction(this) && !isViewDependentModel(this)) {
|
||||
if (getModelKeeper() != nullptr && !isExistAction(this) && !isViewDependentModel(this)) {
|
||||
mStatic = true;
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
target_sources(odyssey PRIVATE
|
||||
Nerve.cpp
|
||||
NerveAction.cpp
|
||||
NerveExecutor.cpp
|
||||
NerveKeeper.cpp
|
||||
|
5
src/al/Library/Nerve/Nerve.cpp
Normal file
5
src/al/Library/Nerve/Nerve.cpp
Normal file
@ -0,0 +1,5 @@
|
||||
#include "al/Library/Nerve/Nerve.h"
|
||||
|
||||
namespace al {
|
||||
void Nerve::executeOnEnd(NerveKeeper* keeper) const {}
|
||||
} // namespace al
|
@ -1,39 +1,32 @@
|
||||
#include "al/Library/Nerve/NerveAction.h"
|
||||
|
||||
#include "al/Library/Nerve/NerveUtil.h"
|
||||
|
||||
namespace al {
|
||||
NerveAction::NerveAction() {
|
||||
_8 = nullptr;
|
||||
|
||||
alNerveFunction::NerveActionCollector* collector =
|
||||
alNerveFunction::NerveActionCollector::sCurrentCollector;
|
||||
|
||||
if (collector->_8) {
|
||||
collector->_10->_8 = this;
|
||||
} else {
|
||||
collector->_8 = this;
|
||||
}
|
||||
|
||||
collector->_10 = this;
|
||||
if (!collector->mHead)
|
||||
collector->mHead = this;
|
||||
else
|
||||
collector->mTail->mNextAction = this;
|
||||
collector->mTail = this;
|
||||
collector->mActionCount++;
|
||||
}
|
||||
}; // namespace al
|
||||
} // namespace al
|
||||
|
||||
namespace alNerveFunction {
|
||||
void NerveActionCollector::addNerve(al::NerveAction* pAction) {
|
||||
if (_8) {
|
||||
_10->_8 = pAction;
|
||||
} else {
|
||||
_8 = pAction;
|
||||
}
|
||||
|
||||
_10 = pAction;
|
||||
NerveActionCollector::NerveActionCollector() {
|
||||
sCurrentCollector = this;
|
||||
}
|
||||
void NerveActionCollector::addNerve(al::NerveAction* action) {
|
||||
if (!mHead)
|
||||
mHead = action;
|
||||
else
|
||||
mTail->mNextAction = action;
|
||||
mTail = action;
|
||||
mActionCount++;
|
||||
}
|
||||
|
||||
NerveActionCollector::NerveActionCollector() {
|
||||
mActionCount = 0;
|
||||
_8 = nullptr, _10 = nullptr;
|
||||
|
||||
alNerveFunction::NerveActionCollector::sCurrentCollector = this;
|
||||
}
|
||||
}; // namespace alNerveFunction
|
||||
} // namespace alNerveFunction
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user