mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-11-23 19:55:17 +00:00
added new headers, puppet actor archive, basic player interaction impl
This commit is contained in:
parent
2e2909e908
commit
1df21b2a3e
11 changed files with 565 additions and 12 deletions
|
@ -34,6 +34,9 @@ class PuppetActor : public al::LiveActor {
|
|||
virtual void makeActorAlive(void) override;
|
||||
virtual void makeActorDead(void) override;
|
||||
|
||||
virtual void attackSensor(al::HitSensor *, al::HitSensor *) override;
|
||||
virtual bool receiveMsg(const al::SensorMsg *, al::HitSensor *, al::HitSensor *) override;
|
||||
|
||||
void initOnline(PuppetInfo *pupInfo);
|
||||
|
||||
void startAction(const char *actName);
|
||||
|
|
|
@ -61,8 +61,10 @@ namespace al
|
|||
virtual void draw() const;
|
||||
virtual void startClipped();
|
||||
virtual void endClipped();
|
||||
virtual void attackSensor(HitSensor *, HitSensor *);
|
||||
virtual bool receiveMsg(const SensorMsg *, HitSensor *, HitSensor *);
|
||||
// source = sensor belonging to this actor
|
||||
// target = sensor belonging to other actor
|
||||
virtual void attackSensor(HitSensor *source, HitSensor *target);
|
||||
virtual bool receiveMsg(const SensorMsg *msg, HitSensor *source, HitSensor *target);
|
||||
virtual bool receiveMsgScreenPoint(const SensorMsg *, ScreenPointer *, ScreenPointTarget *);
|
||||
|
||||
virtual const char *getName() const { return this->mActorName; };
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#pragma once
|
||||
|
||||
#include "types.h"
|
||||
#include "al/LiveActor/LiveActor.h"
|
||||
#include "al/sensor/SensorHitGroup.h"
|
||||
#include "sead/math/seadVector.h"
|
||||
#include "sead/math/seadMatrix.h"
|
||||
|
@ -9,6 +8,9 @@
|
|||
|
||||
namespace al
|
||||
{
|
||||
|
||||
class LiveActor;
|
||||
|
||||
class HitSensorKeeper
|
||||
{
|
||||
public:
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace al {
|
|||
void startAction(LiveActor*, char const*);
|
||||
void startAction(IUseLayoutAction*, const char *, const char *);
|
||||
void startFreezeActionEnd(IUseLayoutAction *,char const*,char const*);
|
||||
void startHitReaction(LiveActor*, char const*);
|
||||
void startHitReaction(const LiveActor *, char const*);
|
||||
void invalidateClipping(const LiveActor *);
|
||||
void validateClipping(const LiveActor *);
|
||||
void setNerveAtActionEnd(LiveActor*, const al::Nerve*);
|
||||
|
|
480
include/al/util/SensorUtil.h
Normal file
480
include/al/util/SensorUtil.h
Normal file
|
@ -0,0 +1,480 @@
|
|||
#pragma once
|
||||
|
||||
#include "al/sensor/HitSensor.h"
|
||||
#include "al/sensor/HitSensorKeeper.h"
|
||||
#include "al/sensor/SensorHitGroup.h"
|
||||
|
||||
#include "al/LiveActor/LiveActor.h" // for SensorMsg
|
||||
|
||||
#include <math/seadVector.h>
|
||||
|
||||
struct SaveObjInfo;
|
||||
struct HackEndParam;
|
||||
struct IUsePlayerCollision;
|
||||
struct IUsePlayerHack;
|
||||
|
||||
struct DigPoint;
|
||||
struct TouchTargetInfo;
|
||||
struct WhipTargetInfo;
|
||||
struct CapTargetInfo;
|
||||
struct GotogotonMark;
|
||||
struct FishingFish;
|
||||
|
||||
typedef unsigned int uint;
|
||||
|
||||
namespace al
|
||||
{
|
||||
|
||||
struct ComboCounter;
|
||||
struct EventFlowExecutor;
|
||||
struct ParabolicPath;
|
||||
|
||||
sead::Vector3f *getSensorPos(al::HitSensor const *);
|
||||
sead::Vector3f* getActorTrans(al::HitSensor const*);
|
||||
|
||||
bool tryReceiveMsgPushAndAddVelocity(al::LiveActor*, al::SensorMsg const*, al::HitSensor const*,
|
||||
al::HitSensor const*, float);
|
||||
|
||||
bool isSensorTypeYoshiEnableSendPush(al::HitSensor const*);
|
||||
bool isSensorTypeYoshiMsgReceivable(al::HitSensor const*);
|
||||
bool isSensorValid(al::HitSensor const*);
|
||||
bool isSensorName(al::HitSensor const*, char const*);
|
||||
bool isSensorHostName(al::HitSensor const*, char const*);
|
||||
bool isSensorHost(al::HitSensor const*, al::LiveActor const*);
|
||||
bool isSensorValid(al::LiveActor const*, char const*);
|
||||
bool isSensorBindableAll(al::HitSensor const*);
|
||||
bool isSensorEnemy(al::HitSensor const*);
|
||||
bool isSensorEnemyAttack(al::HitSensor const*);
|
||||
bool isSensorEnemyBody(al::HitSensor const*);
|
||||
bool isSensorEye(al::HitSensor const*);
|
||||
bool isSensorMapObj(al::HitSensor const*);
|
||||
bool isSensorNpc(al::HitSensor const*);
|
||||
bool isSensorPlayerAll(al::HitSensor const*);
|
||||
bool isSensorRide(al::HitSensor const*);
|
||||
bool isSensorPlayerAttack(al::HitSensor const*);
|
||||
bool isSensorPlayer(al::HitSensor const*);
|
||||
bool isSensorPlayerFoot(al::HitSensor const*);
|
||||
bool isSensorPlayerDecoration(al::HitSensor const*);
|
||||
bool isSensorPlayerEye(al::HitSensor const*);
|
||||
bool isSensorPlayerOrPlayerWeapon(al::HitSensor const*);
|
||||
bool isSensorCollision(al::HitSensor const*);
|
||||
bool isSensorPlayerFireBall(al::HitSensor const*);
|
||||
bool isSensorHoldObj(al::HitSensor const*);
|
||||
bool isSensorLookAt(al::HitSensor const*);
|
||||
bool isSensorBindableGoal(al::HitSensor const*);
|
||||
bool isSensorBindableAllPlayer(al::HitSensor const*);
|
||||
bool isSensorBindableBubbleOutScreen(al::HitSensor const*);
|
||||
bool isSensorBindableKoura(al::HitSensor const*);
|
||||
bool isSensorBindableRouteDokan(al::HitSensor const*);
|
||||
bool isSensorBindableBubblePadInput(al::HitSensor const*);
|
||||
bool isSensorBindable(al::HitSensor const*);
|
||||
bool isSensorSimple(al::HitSensor const*);
|
||||
bool isSensorHitAnyPlane(al::HitSensor const*,al::HitSensor const*, sead::Vector3<float> const&);
|
||||
bool isSensorHitRingShape(al::HitSensor const*, al::HitSensor const*, float);
|
||||
|
||||
bool isMsgRequestPlayerStainWet(al::SensorMsg const *, int *);
|
||||
bool isMsgPushAll(al::SensorMsg const *);
|
||||
bool isMsgPush(al::SensorMsg const *);
|
||||
bool isMsgPushStrong(al::SensorMsg const *);
|
||||
bool isMsgPushVeryStrong(al::SensorMsg const *);
|
||||
bool isMsgHoldReleaseAll(al::SensorMsg const *);
|
||||
bool isMsgHoldCancel(al::SensorMsg const *);
|
||||
bool isMsgPlayerRelease(al::SensorMsg const *);
|
||||
bool isMsgPlayerReleaseBySwing(al::SensorMsg const *);
|
||||
bool isMsgPlayerReleaseDead(al::SensorMsg const *);
|
||||
bool isMsgPlayerReleaseDamage(al::SensorMsg const *);
|
||||
bool isMsgPlayerReleaseDemo(al::SensorMsg const *);
|
||||
bool isMsgItemGetDirectAll(al::SensorMsg const *);
|
||||
bool isMsgPlayerItemGet(al::SensorMsg const *);
|
||||
bool isMsgRideAllPlayerItemGet(al::SensorMsg const *);
|
||||
bool isMsgPlayerTailAttack(al::SensorMsg const *);
|
||||
bool isMsgItemGetByObjAll(al::SensorMsg const *);
|
||||
bool isMsgBallItemGet(al::SensorMsg const *);
|
||||
bool isMsgKickKouraItemGet(al::SensorMsg const *);
|
||||
bool isMsgKillerItemGet(al::SensorMsg const *);
|
||||
bool isMsgItemGetAll(al::SensorMsg const *);
|
||||
bool isMsgFloorTouch(al::SensorMsg const *);
|
||||
bool isMsgPlayerFloorTouch(al::SensorMsg const *);
|
||||
bool isMsgEnemyFloorTouch(al::SensorMsg const *);
|
||||
bool isMsgUpperPunch(al::SensorMsg const *);
|
||||
bool isMsgPlayerUpperPunch(al::SensorMsg const *);
|
||||
bool isMsgEnemyUpperPunch(al::SensorMsg const *);
|
||||
bool isMsgPlayerTrample(al::SensorMsg const *);
|
||||
bool isMsgPlayerTrampleReflect(al::SensorMsg const *);
|
||||
bool isMsgPlayerHipDropAll(al::SensorMsg const *);
|
||||
bool isMsgPlayerStatueDrop(al::SensorMsg const *);
|
||||
bool isMsgPlayerObjHipDropAll(al::SensorMsg const *);
|
||||
bool isMsgPlayerObjStatueDrop(al::SensorMsg const *);
|
||||
bool isMsgPlayerObjHipDropReflectAll(al::SensorMsg const *);
|
||||
bool isMsgPlayerObjStatueDropReflect(al::SensorMsg const *);
|
||||
bool isMsgPlayerObjHipDropHighJump(al::SensorMsg const *);
|
||||
bool isMsgPlayerHipDropKnockDown(al::SensorMsg const *);
|
||||
bool isMsgPlayerObjStatueDropReflectNoCondition(al::SensorMsg const *);
|
||||
bool isMsgPlayerStatueTouch(al::SensorMsg const *);
|
||||
bool isMsgPlayerObjUpperPunch(al::SensorMsg const *);
|
||||
bool isMsgPlayerRollingAttack(al::SensorMsg const *);
|
||||
bool isMsgPlayerRollingReflect(al::SensorMsg const *);
|
||||
bool isMsgPlayerObjRollingAttack(al::SensorMsg const *);
|
||||
bool isMsgPlayerObjRollingAttackFailure(al::SensorMsg const *);
|
||||
bool isMsgPlayerInvincibleAttack(al::SensorMsg const *);
|
||||
bool isMsgPlayerFireBallAttack(al::SensorMsg const *);
|
||||
bool isMsgPlayerRouteDokanFireBallAttack(al::SensorMsg const *);
|
||||
bool isMsgPlayerKick(al::SensorMsg const *);
|
||||
bool isMsgPlayerCatch(al::SensorMsg const *);
|
||||
bool isMsgPlayerSlidingAttack(al::SensorMsg const *);
|
||||
bool isMsgPlayerBoomerangAttack(al::SensorMsg const *);
|
||||
bool isMsgPlayerBoomerangAttackCollide(al::SensorMsg const *);
|
||||
bool isMsgPlayerBoomerangReflect(al::SensorMsg const *);
|
||||
bool isMsgPlayerBoomerangBreak(al::SensorMsg const *);
|
||||
bool isMsgPlayerBodyAttack(al::SensorMsg const *);
|
||||
bool isMsgPlayerBodyLanding(al::SensorMsg const *);
|
||||
bool isMsgPlayerBodyAttackReflect(al::SensorMsg const *);
|
||||
bool isMsgPlayerClimbAttack(al::SensorMsg const *);
|
||||
bool isMsgPlayerSpinAttack(al::SensorMsg const *);
|
||||
bool isMsgPlayerGiantAttack(al::SensorMsg const *);
|
||||
bool isMsgPlayerCooperationHipDrop(al::SensorMsg const *);
|
||||
bool isMsgPlayerClimbSlidingAttack(al::SensorMsg const *);
|
||||
bool isMsgPlayerClimbRollingAttack(al::SensorMsg const *);
|
||||
bool isMsgPlayerGiantHipDrop(al::SensorMsg const *);
|
||||
bool isMsgPlayerDisregard(al::SensorMsg const *);
|
||||
bool isMsgPlayerDash(al::SensorMsg const *);
|
||||
bool isMsgPlayerDamageTouch(al::SensorMsg const *);
|
||||
bool isMsgPlayerFloorTouchBind(al::SensorMsg const *);
|
||||
bool isMsgPlayerTouch(al::SensorMsg const *);
|
||||
bool isMsgPlayerInvincibleTouch(al::SensorMsg const *);
|
||||
bool isMsgPlayerGiantTouch(al::SensorMsg const *);
|
||||
bool isMsgPlayerObjTouch(al::SensorMsg const *);
|
||||
bool isMsgPlayerPutOnEquipment(al::SensorMsg const *);
|
||||
bool isMsgPlayerReleaseEquipment(al::SensorMsg const *);
|
||||
bool isMsgPlayerReleaseEquipmentGoal(al::SensorMsg const *);
|
||||
bool isMsgPlayerCarryFront(al::SensorMsg const *);
|
||||
bool isMsgPlayerCarryFrontWallKeep(al::SensorMsg const *);
|
||||
bool isMsgPlayerCarryUp(al::SensorMsg const *);
|
||||
bool isMsgPlayerCarryKeepDemo(al::SensorMsg const *);
|
||||
bool isMsgPlayerCarryWarp(al::SensorMsg const *);
|
||||
bool isMsgPlayerLeave(al::SensorMsg const *);
|
||||
bool isMsgPlayerToss(al::SensorMsg const *);
|
||||
bool isMsgEnemyAttack(al::SensorMsg const *);
|
||||
bool isMsgEnemyAttackFire(al::SensorMsg const *);
|
||||
bool isMsgEnemyAttackKnockDown(al::SensorMsg const *);
|
||||
bool isMsgEnemyAttackBoomerang(al::SensorMsg const *);
|
||||
bool isMsgEnemyAttackNeedle(al::SensorMsg const *);
|
||||
bool isMsgEnemyItemGet(al::SensorMsg const *);
|
||||
bool isMsgEnemyRouteDokanAttack(al::SensorMsg const *);
|
||||
bool isMsgEnemyRouteDokanFire(al::SensorMsg const *);
|
||||
bool isMsgExplosion(al::SensorMsg const *);
|
||||
bool isMsgExplosionCollide(al::SensorMsg const *);
|
||||
bool isMsgBindStart(al::SensorMsg const *);
|
||||
bool isMsgBindInit(al::SensorMsg const *);
|
||||
bool isMsgBindEnd(al::SensorMsg const *);
|
||||
bool isMsgBindCancel(al::SensorMsg const *);
|
||||
bool isMsgBindCancelByDemo(al::SensorMsg const *);
|
||||
bool isMsgBindDamage(al::SensorMsg const *);
|
||||
bool isMsgBindSteal(al::SensorMsg const *);
|
||||
bool isMsgBindGiant(al::SensorMsg const *);
|
||||
bool isMsgPressureDeath(al::SensorMsg const *);
|
||||
bool isMsgNpcTouch(al::SensorMsg const *);
|
||||
bool isMsgHit(al::SensorMsg const *);
|
||||
bool isMsgHitStrong(al::SensorMsg const *);
|
||||
bool isMsgHitVeryStrong(al::SensorMsg const *);
|
||||
bool isMsgKnockDown(al::SensorMsg const *);
|
||||
bool isMsgMapPush(al::SensorMsg const *);
|
||||
bool isMsgVanish(al::SensorMsg const *);
|
||||
bool isMsgChangeAlpha(al::SensorMsg const *);
|
||||
bool isMsgShowModel(al::SensorMsg const *);
|
||||
bool isMsgHideModel(al::SensorMsg const *);
|
||||
bool isMsgRestart(al::SensorMsg const *);
|
||||
bool isMsgEnemyTouch(al::SensorMsg const *);
|
||||
bool isMsgEnemyTrample(al::SensorMsg const *);
|
||||
bool isMsgMapObjTrample(al::SensorMsg const *);
|
||||
bool isMsgNeedleBallAttack(al::SensorMsg const *);
|
||||
bool isMsgPunpunFloorTouch(al::SensorMsg const *);
|
||||
bool isMsgInvalidateFootPrint(al::SensorMsg const *);
|
||||
bool isMsgKickKouraAttack(al::SensorMsg const *);
|
||||
bool isMsgKickKouraAttackCollide(al::SensorMsg const *);
|
||||
bool isMsgKickKouraReflect(al::SensorMsg const *);
|
||||
bool isMsgKickKouraCollideNoReflect(al::SensorMsg const *);
|
||||
bool isMsgKickKouraBreak(al::SensorMsg const *);
|
||||
bool isMsgKickKouraBlow(al::SensorMsg const *);
|
||||
bool isMsgKickStoneAttack(al::SensorMsg const *);
|
||||
bool isMsgKickStoneAttackCollide(al::SensorMsg const *);
|
||||
bool isMsgKickStoneAttackHold(al::SensorMsg const *);
|
||||
bool isMsgKickStoneAttackReflect(al::SensorMsg const *);
|
||||
bool isMsgKickStoneTrample(al::SensorMsg const *);
|
||||
bool isMsgKillerAttack(al::SensorMsg const *);
|
||||
bool isMsgLiftGeyser(al::SensorMsg const *);
|
||||
bool isMsgWarpStart(al::SensorMsg const *);
|
||||
bool isMsgWarpEnd(al::SensorMsg const *);
|
||||
bool isMsgHoleIn(al::SensorMsg const *);
|
||||
bool isMsgJumpInhibit(al::SensorMsg const *);
|
||||
bool isMsgGoalKill(al::SensorMsg const *);
|
||||
bool isMsgGoal(al::SensorMsg const *);
|
||||
bool isMsgBallAttack(al::SensorMsg const *);
|
||||
bool isMsgBallRouteDokanAttack(al::SensorMsg const *);
|
||||
bool isMsgBallAttackHold(al::SensorMsg const *);
|
||||
bool isMsgBallAttackDRCHold(al::SensorMsg const *);
|
||||
bool isMsgBallAttackCollide(al::SensorMsg const *);
|
||||
bool isMsgBallTrample(al::SensorMsg const *);
|
||||
bool isMsgBallTrampleCollide(al::SensorMsg const *);
|
||||
bool isMsgFireBallCollide(al::SensorMsg const *);
|
||||
bool isMsgFireBallFloorTouch(al::SensorMsg const *);
|
||||
bool isMsgDokanBazookaAttack(al::SensorMsg const *);
|
||||
bool isMsgSwitchOn(al::SensorMsg const *);
|
||||
bool isMsgSwitchOnInit(al::SensorMsg const *);
|
||||
bool isMsgSwitchOffInit(al::SensorMsg const *);
|
||||
bool isMsgSwitchKillOn(al::SensorMsg const *);
|
||||
bool isMsgSwitchKillOnInit(al::SensorMsg const *);
|
||||
bool isMsgSwitchKillOffInit(al::SensorMsg const *);
|
||||
bool isMsgAskSafetyPoint(al::SensorMsg const *);
|
||||
bool isMsgTouchAssist(al::SensorMsg const *);
|
||||
bool isMsgTouchAssistNoPat(al::SensorMsg const *);
|
||||
bool isMsgTouchAssistTrig(al::SensorMsg const *);
|
||||
bool isMsgTouchAssistTrigOff(al::SensorMsg const *);
|
||||
bool isMsgTouchAssistTrigNoPat(al::SensorMsg const *);
|
||||
bool isMsgTouchAssistBurn(al::SensorMsg const *);
|
||||
bool isMsgTouchAssistAll(al::SensorMsg const *);
|
||||
bool isMsgTouchCarryItem(al::SensorMsg const *);
|
||||
bool isMsgTouchReleaseItem(al::SensorMsg const *);
|
||||
bool isMsgTouchStroke(al::SensorMsg const *);
|
||||
bool isMsgIsNerveSupportFreeze(al::SensorMsg const *);
|
||||
bool isMsgOnSyncSupportFreeze(al::SensorMsg const *);
|
||||
bool isMsgOffSyncSupportFreeze(al::SensorMsg const *);
|
||||
bool isMsgScreenPointInvalidCollisionParts(al::SensorMsg const *);
|
||||
bool isMsgBlockUpperPunch(al::SensorMsg const *);
|
||||
bool isMsgBlockLowerPunch(al::SensorMsg const *);
|
||||
bool isMsgBlockItemGet(al::SensorMsg const *);
|
||||
bool isMsgPlayerKouraAttack(al::SensorMsg const *);
|
||||
bool isMsgLightFlash(al::SensorMsg const *);
|
||||
bool isMsgForceAbyss(al::SensorMsg const *);
|
||||
bool isMsgSwordAttackHigh(al::SensorMsg const *);
|
||||
bool isMsgSwordAttackHighLeft(al::SensorMsg const *);
|
||||
bool isMsgSwordAttackHighRight(al::SensorMsg const *);
|
||||
bool isMsgSwordAttackLow(al::SensorMsg const *);
|
||||
bool isMsgSwordAttackLowLeft(al::SensorMsg const *);
|
||||
bool isMsgSwordAttackLowRight(al::SensorMsg const *);
|
||||
bool isMsgSwordBeamAttack(al::SensorMsg const *);
|
||||
bool isMsgSwordBeamReflectAttack(al::SensorMsg const *);
|
||||
bool isMsgSwordAttackJumpUnder(al::SensorMsg const *);
|
||||
bool isMsgShieldGuard(al::SensorMsg const *);
|
||||
bool isMsgAskMultiPlayerEnemy(al::SensorMsg const *);
|
||||
bool isMsgItemGettable(al::SensorMsg const *);
|
||||
bool isMsgKikkiThrow(al::SensorMsg const *);
|
||||
bool isMsgIsKikkiThrowTarget(al::SensorMsg const *);
|
||||
bool isMsgPlayerCloudGet(al::SensorMsg const *);
|
||||
bool isMsgAutoJump(al::SensorMsg const *);
|
||||
bool isMsgPlayerTouchShadow(al::SensorMsg const *);
|
||||
bool isMsgPlayerPullOutShadow(al::SensorMsg const *);
|
||||
bool isMsgPlayerAttackShadow(al::SensorMsg const *);
|
||||
bool isMsgPlayerAttackShadowStrong(al::SensorMsg const *);
|
||||
bool isMsgPlayerAttackChangePos(al::SensorMsg const *);
|
||||
bool isMsgAtmosOnlineLight(al::SensorMsg const *);
|
||||
bool isMsgLightBurn(al::SensorMsg const *);
|
||||
bool isMsgMoonLightBurn(al::SensorMsg const *);
|
||||
bool isMsgString(al::SensorMsg const *);
|
||||
bool isMsgStringV4fPtr(al::SensorMsg const *);
|
||||
bool isMsgStringV4fSensorPtr(al::SensorMsg const *);
|
||||
bool isMsgStringVoidPtr(al::SensorMsg const *);
|
||||
bool isMsgPlayerTrampleForCrossoverSensor(al::SensorMsg const *, al::HitSensor const *, al::HitSensor const *);
|
||||
bool isMsgPlayerTrampleReflectForCrossoverSensor(al::SensorMsg const *, al::HitSensor const *, al::HitSensor const *);
|
||||
bool isMsgPlayerUpperPunchForCrossoverSensor(al::SensorMsg const *, al::HitSensor const *, al::HitSensor const *, float);
|
||||
bool isMsgKickStoneTrampleForCrossoverSensor(al::SensorMsg const *, al::HitSensor const *, al::HitSensor const *);
|
||||
|
||||
bool sendMsgPlayerAttackTrample(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerTrampleReflect(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerReflectOrTrample(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerHipDrop(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerObjHipDrop(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerObjHipDropReflect(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerObjHipDropHighJump(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerHipDropKnockDown(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerStatueDrop(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerObjStatueDrop(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerObjStatueDropReflect(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerObjStatueDropReflectNoCondition(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerStatueTouch(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerUpperPunch(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerObjUpperPunch(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerRollingAttack(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerRollingReflect(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerObjRollingAttack(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerObjRollingAttackFailure(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerInvincibleAttack(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerFireBallAttack(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerRouteDokanFireBallAttack(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerTailAttack(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerTouch(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerKick(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerCatch(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerSlidingAttack(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerBoomerangAttack(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerBoomerangAttackCollide(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerBoomerangReflect(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerBoomerangBreak(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerBodyAttack(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerBodyLanding(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerBodyAttackReflect(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerClimbAttack(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerSpinAttack(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerGiantAttack(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerCooperationHipDrop(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerClimbSlidingAttack(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerClimbRollingAttack(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerGiantHipDrop(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPlayerDisregard(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerItemGet(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerPutOnEquipment(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerReleaseEquipment(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerReleaseEquipmentGoal(al::HitSensor *, al::HitSensor *, uint);
|
||||
bool sendMsgPlayerFloorTouch(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerDamageTouch(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerCarryFront(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerCarryFrontWallKeep(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerCarryUp(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerCarryKeepDemo(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerCarryWarp(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerLeave(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerRelease(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerReleaseBySwing(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerReleaseDamage(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerReleaseDead(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerReleaseDemo(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerToss(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerInvincibleTouch(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgEnemyAttack(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgEnemyAttackBoomerang(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgEnemyAttackFire(al::HitSensor *, al::HitSensor *, char const *);
|
||||
bool sendMsgEnemyAttackNeedle(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgEnemyFloorTouch(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgEnemyItemGet(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgEnemyRouteDokanAttack(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgEnemyRouteDokanFire(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgEnemyTouch(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgEnemyUpperPunch(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgEnemyTrample(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgMapObjTrample(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPressureDeath(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgNpcTouch(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgExplosion(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgExplosionCollide(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgPush(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPushStrong(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPushVeryStrong(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgHit(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgHitStrong(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgHitVeryStrong(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgKnockDown(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgMapPush(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgVanish(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgChangeAlpha(al::LiveActor *, float);
|
||||
bool sendMsgShowModel(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgHideModel(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgRestart(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgNeedleBallAttack(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPunpunFloorTouch(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgInvalidateFootPrint(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgKickKouraAttack(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgKickKouraAttackCollide(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgKickKouraGetItem(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgKickKouraReflect(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgKickKouraCollideNoReflect(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgKickKouraBreak(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgKickKouraBlow(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgKickStoneAttack(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgKickStoneAttackCollide(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgKickStoneAttackHold(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgKickStoneAttackReflect(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgKickStoneTrample(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgKillerAttack(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgLiftGeyser(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgWarpStart(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgWarpEnd(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgHoldCancel(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgHoleIn(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgJumpInhibit(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgGoalKill(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgGoal(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgBindStart(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgBindInit(al::HitSensor *, al::HitSensor *, uint);
|
||||
bool sendMsgBindEnd(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgBindCancel(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgBindCancelByDemo(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgBindDamage(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgBindSteal(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgBindGiant(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgBallAttack(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgBallRouteDokanAttack(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgBallAttackHold(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgBallAttackDRCHold(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgBallAttackCollide(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgBallTrample(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgBallTrampleCollide(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgBallItemGet(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgFireBalCollide(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgFireBallFloorTouch(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgDokanBazookaAttack(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgRideAllPlayerItemGet(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgHideModel(al::LiveActor *);
|
||||
bool sendMsgShowModel(al::LiveActor *);
|
||||
bool sendMsgRestart(al::LiveActor *);
|
||||
bool sendMsgCollisionImpulse(al::HitSensor *, al::HitSensor *, sead::Vector3f *, sead::Vector3f const &, float, sead::Vector3f const &, float);
|
||||
bool sendMsgSwitchOn(al::LiveActor *);
|
||||
bool sendMsgSwitchOnInit(al::LiveActor *);
|
||||
bool sendMsgSwitchOffInit(al::LiveActor *);
|
||||
bool sendMsgSwitchKillOn(al::LiveActor *);
|
||||
bool sendMsgSwitchKillOnInit(al::LiveActor *);
|
||||
bool sendMsgSwitchKillOffInit(al::LiveActor *);
|
||||
bool sendMsgPlayerFloorTouchToColliderGround(al::LiveActor *, al::HitSensor *);
|
||||
bool sendMsgPlayerUpperPunchToColliderCeiling(al::LiveActor *, al::HitSensor *);
|
||||
bool sendMsgEnemyFloorTouchToColliderGround(al::LiveActor *, al::HitSensor *);
|
||||
bool sendMsgEnemyUpperPunchToColliderCeiling(al::LiveActor *, al::HitSensor *);
|
||||
bool sendMsgAskSafetyPoint(al::HitSensor *, al::HitSensor *, sead::Vector3f **);
|
||||
bool sendMsgAskSafetyPointToColliderGround(al::LiveActor *, al::HitSensor *, sead::Vector3f **);
|
||||
bool sendMsgTouchAssist(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgTouchAssistTrig(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgTouchStroke(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgScreenPointInvalidCollisionParts(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgBlockUpperPunch(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgBlockLowerPunch(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgBlockItemGet(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgKillerItemGet(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerKouraAttack(al::HitSensor *, al::HitSensor *, al::ComboCounter *);
|
||||
bool sendMsgLightFlash(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgForceAbyss(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgIsNerveSupportFreeze(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgOnSyncSupportFreeze(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgOffSyncSupportFreeze(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgSwordAttackHighLeft(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgSwordAttackLowLeft(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgSwordAttackHighRight(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgSwordAttackLowRight(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgSwordAttackJumpUnder(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgSwordBeamAttack(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgSwordBeamReflectAttack(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgShieldGuard(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgEnemyAttackKnockDown(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgAskMultiPlayerEnemy(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgItemGettable(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgKikkiThrow(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgIsKikkiThrowTarget(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerCloudGet(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgAutoJump(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerTouchShadow(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerPullOutShadow(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerAttackShadow(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerAttackShadowStrong(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPlayerAttackChangePos(al::HitSensor *, al::HitSensor *, sead::Vector3f *);
|
||||
bool sendMsgAtmosOnlineLight(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgLightBurn(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgMoonLightBurn(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgString(al::HitSensor *, al::HitSensor *, char const *);
|
||||
bool sendMsgStringV4fPtr(al::HitSensor *, al::HitSensor *, char const *, sead::Vector4f *);
|
||||
bool sendMsgStringV4fSensorPtr(al::HitSensor *, al::HitSensor *, char const *, sead::Vector4f *);
|
||||
bool sendMsgStringVoidPtr(al::HitSensor *, al::HitSensor *, char const *, void *);
|
||||
bool sendMsgEnemyAttackForCrossoverSensor(al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgEnemyAttackForCrossoverCylinderSensor(al::HitSensor *, al::HitSensor *, sead::Vector3f const &, sead::Vector3f const &, float);
|
||||
bool sendMsgPushAndKillVelocityToTarget(al::LiveActor *, al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgPushAndKillVelocityToTargetH(al::LiveActor *, al::HitSensor *, al::HitSensor *);
|
||||
bool sendMsgCollidePush(al::HitSensor *, al::HitSensor *, sead::Vector3f const &);
|
||||
bool sendMsgScreenPointTarget(al::SensorMsg const &, al::ScreenPointer *, al::ScreenPointTarget *);
|
||||
|
||||
} // namespace al
|
38
include/cameras/CameraVerticalAbsorber2DGalaxy.h
Normal file
38
include/cameras/CameraVerticalAbsorber2DGalaxy.h
Normal file
|
@ -0,0 +1,38 @@
|
|||
#pragma once
|
||||
|
||||
#include "al/camera/CameraPoser.h"
|
||||
#include "al/nerve/NerveExecutor.h"
|
||||
#include "math/seadVector.h"
|
||||
|
||||
namespace al {
|
||||
class CameraVerticalAbsorber2DGalaxy : public al::NerveExecutor {
|
||||
public:
|
||||
CameraVerticalAbsorber2DGalaxy(void);
|
||||
|
||||
void start(al::CameraPoser const*);
|
||||
void update(al::CameraPoser const*);
|
||||
void applyLimit(sead::Vector3f* output);
|
||||
|
||||
void exeNone(void);
|
||||
void exeGround(void);
|
||||
void exeLimit(void);
|
||||
void exeLimitOver(void);
|
||||
void exeLimitAfter(void);
|
||||
|
||||
sead::Vector3f mTargetTrans;
|
||||
sead::Vector3f mTargetGravity;
|
||||
sead::Vector3f mTargetUp;
|
||||
bool mIsTargetCollideGround;
|
||||
sead::Vector3f mPrevTargetTrans;
|
||||
sead::Vector3f mPrevTargetGravity;
|
||||
float unkFloat;
|
||||
sead::Vector3f mLimit;
|
||||
sead::Vector3f unkVec;
|
||||
float unkFloat2;
|
||||
|
||||
};
|
||||
|
||||
static_assert(sizeof(CameraVerticalAbsorber2DGalaxy) == 0x70, "");
|
||||
|
||||
|
||||
}
|
|
@ -5,6 +5,8 @@
|
|||
#include "al/sensor/SensorHitGroup.h"
|
||||
|
||||
#include "al/LiveActor/LiveActor.h" // for SensorMsg
|
||||
#include "game/Interfaces/IUsePlayerHack.h"
|
||||
#include "game/Player/PlayerHackKeeper.h"
|
||||
|
||||
#include <sead/math/seadVector.h>
|
||||
|
||||
|
@ -880,7 +882,7 @@ bool sendMsgGolemStampPress(al::HitSensor*, al::HitSensor*);
|
|||
// bool sendMsgSwitchOnWithSaveRequest(al::LiveActor*, SaveObjInfo*);
|
||||
bool sendMsgWanwanReboundAttackToCollided(al::LiveActor const*, al::HitSensor*);
|
||||
bool sendMsgWanwanBlockAttackToCollided(al::LiveActor const*, al::HitSensor*);
|
||||
bool sendMsgDigPointSmell(al::HitSensor*, al::HitSensor*, DigPoint*);
|
||||
bool sendMsgDigPointSmell(al::HitSensor*, al::HitSensor*, struct DigPoint*);
|
||||
bool sendMsgMofumofuBodyChainExplode(al::HitSensor*, al::HitSensor*, int);
|
||||
bool sendMsgMoonBasementRockThroughCollision(al::HitSensor*, al::HitSensor*, bool);
|
||||
bool sendMsgFishingWait(al::HitSensor*, al::HitSensor*, al::HitSensor*);
|
||||
|
@ -1006,7 +1008,7 @@ bool sendMsgBossMagmaDeadDemoStart(al::HitSensor*, al::HitSensor*);
|
|||
bool sendMsgBossMagmaDeadDemoEnd(al::HitSensor*, al::HitSensor*, sead::Vector3<float> const&);
|
||||
bool sendMsgBossMagmaResetPos(al::HitSensor*, al::HitSensor*, sead::Vector3<float> const&);
|
||||
bool sendMsgBossMagmaQueryToBubble(al::HitSensor*, al::HitSensor*);
|
||||
bool sendMsgCheckFishingTarget(al::HitSensor*, al::HitSensor*, FishingFish const*);
|
||||
bool sendMsgCheckFishingTarget(al::HitSensor*, al::HitSensor*, struct FishingFish const*);
|
||||
bool sendMsgPushToPlayerAndKillVelocityToTarget(al::LiveActor*, al::HitSensor*, al::HitSensor*);
|
||||
bool sendMsgPushToPlayerAndKillVelocityToTargetH(al::LiveActor*, al::HitSensor*, al::HitSensor*);
|
||||
bool sendMsgInitCapTarget(al::HitSensor*, al::HitSensor*, CapTargetInfo const**);
|
||||
|
|
BIN
romfs/ObjectData/PuppetActor.szs
Normal file
BIN
romfs/ObjectData/PuppetActor.szs
Normal file
Binary file not shown.
|
@ -1,3 +1,6 @@
|
|||
#include <cmath>
|
||||
#include "al/util/SensorUtil.h"
|
||||
#include "rs/util/SensorUtil.h"
|
||||
#include "server/Client.hpp"
|
||||
#include "al/LiveActor/LiveActor.h"
|
||||
#include "al/layout/BalloonMessage.h"
|
||||
|
@ -31,7 +34,7 @@ void PuppetActor::init(al::ActorInitInfo const &initInfo) {
|
|||
|
||||
mPuppetCap->init(initInfo);
|
||||
|
||||
al::initActorWithArchiveName(this, initInfo, "PlayerActorHakoniwa", nullptr);
|
||||
al::initActorWithArchiveName(this, initInfo, "PuppetActor", nullptr);
|
||||
|
||||
const char *bodyName = "Mario";
|
||||
const char *capName = "Mario";
|
||||
|
@ -243,6 +246,26 @@ void PuppetActor::makeActorDead() {
|
|||
}
|
||||
}
|
||||
|
||||
void PuppetActor::attackSensor(al::HitSensor* source, al::HitSensor* target) {
|
||||
|
||||
if (!al::sendMsgPush(target, source)) {
|
||||
rs::sendMsgPushToPlayer(target, source);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
bool PuppetActor::receiveMsg(const al::SensorMsg* msg, al::HitSensor* source,
|
||||
al::HitSensor* target) {
|
||||
|
||||
if ((al::isMsgPlayerTrampleReflect(msg) || rs::isMsgPlayerAndCapObjHipDropReflectAll(msg)) && al::isSensorName(target, "Body"))
|
||||
{
|
||||
rs::requestHitReactionToAttacker(msg, target, source);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// this is more or less how nintendo does it with marios demo puppet
|
||||
void PuppetActor::startAction(const char *actName) {
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ void initPuppetActors(al::Scene *scene, al::ActorInitInfo const &rootInfo, char
|
|||
}
|
||||
|
||||
// create a debug puppet for testing purposes
|
||||
// createPuppetActorFromFactory(rootInfo, playerPlacement, true);
|
||||
createPuppetActorFromFactory(rootInfo, playerPlacement, true);
|
||||
}
|
||||
|
||||
al::initPlacementObjectMap(scene, rootInfo, listName); // run init for ObjectList after we init our puppet actors
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#include <cstring>
|
||||
#include "al/actor/ActorSceneInfo.h"
|
||||
#include "al/layout/WindowConfirmWait.h"
|
||||
#include "al/util/ControllerUtil.h"
|
||||
#include "al/util/LiveActorUtil.h"
|
||||
#include "algorithms/PlayerAnims.h"
|
||||
#include "game/GameData/GameDataFunction.h"
|
||||
|
@ -219,7 +220,9 @@ bool Client::startConnection() {
|
|||
|
||||
bool isNeedSave = false;
|
||||
|
||||
if (mServerIP.isEmpty()) {
|
||||
bool isOverride = al::isPadHoldZL(-1);
|
||||
|
||||
if (mServerIP.isEmpty() || isOverride) {
|
||||
mKeyboard->setHeaderText(u"Save File does not contain an IP!");
|
||||
mKeyboard->setSubText(u"Please set a Server IP Below.");
|
||||
mServerIP = "0.0.0.0";
|
||||
|
@ -227,7 +230,7 @@ bool Client::startConnection() {
|
|||
isNeedSave = true;
|
||||
}
|
||||
|
||||
if (!mServerPort) {
|
||||
if (!mServerPort || isOverride) {
|
||||
mKeyboard->setHeaderText(u"Save File does not contain a port!");
|
||||
mKeyboard->setSubText(u"Please set a Server Port Below.");
|
||||
mServerPort = 1027;
|
||||
|
@ -585,7 +588,7 @@ void Client::sendHackCapInfPacket(const HackCap* hackCap) {
|
|||
packet.mUserID = sInstance->mUserID;
|
||||
packet.capPos = al::getTrans(hackCap);
|
||||
|
||||
packet.isCapVisible = hackCap->isFlying();
|
||||
packet.isCapVisible = isFlying;
|
||||
|
||||
packet.capQuat.x = hackCap->mJointKeeper->mJointRot.x;
|
||||
packet.capQuat.y = hackCap->mJointKeeper->mJointRot.y;
|
||||
|
@ -1016,7 +1019,7 @@ void Client::disconnectPlayer(PlayerDC *packet) {
|
|||
|
||||
PuppetInfo* curInfo = findPuppetInfo(packet->mUserID, false);
|
||||
|
||||
if (!curInfo) {
|
||||
if (!curInfo || !curInfo->isConnected) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue