mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-14 02:27:40 -04:00
@ -313,7 +313,7 @@ hsBool plAnimStage::ISendNotify(UInt32 notifyMask, UInt32 notifyType, plArmature
|
|||||||
int stageNum = genBrain ? genBrain->GetStageNum(this) : -1;
|
int stageNum = genBrain ? genBrain->GetStageNum(this) : -1;
|
||||||
msg->AddMultiStageEvent(stageNum, notifyType, armature->GetTarget(0)->GetKey());
|
msg->AddMultiStageEvent(stageNum, notifyType, armature->GetTarget(0)->GetKey());
|
||||||
|
|
||||||
if (! genBrain->RelayNotifyMsg(msg) )
|
if (stageNum < 0 || !genBrain || !genBrain->RelayNotifyMsg(msg) )
|
||||||
{
|
{
|
||||||
msg->UnRef(); // couldn't send; destroy...
|
msg->UnRef(); // couldn't send; destroy...
|
||||||
}
|
}
|
||||||
|
@ -703,8 +703,8 @@ void plAvBrainClimb::ICalcProbeLengths()
|
|||||||
{
|
{
|
||||||
// we assume that the up and down climbs go the same distance;
|
// we assume that the up and down climbs go the same distance;
|
||||||
// same for the left and right climbs
|
// same for the left and right climbs
|
||||||
plAGAnim *up = fAvMod->FindCustomAnim("ClimbUp");
|
plAGAnim *up = fAvMod->FindCustomAnim("WallClimbUp");
|
||||||
plAGAnim *left = fAvMod->FindCustomAnim("ClimbLeft");
|
plAGAnim *left = fAvMod->FindCustomAnim("WallClimbLeft");
|
||||||
|
|
||||||
hsMatrix44 upMove, leftMove;
|
hsMatrix44 upMove, leftMove;
|
||||||
|
|
||||||
|
@ -75,6 +75,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
|||||||
#include "../plInputCore/plInputDevice.h"
|
#include "../plInputCore/plInputDevice.h"
|
||||||
#include "../plMath/plRandom.h"
|
#include "../plMath/plRandom.h"
|
||||||
#include "../plPipeline/plDebugText.h"
|
#include "../plPipeline/plDebugText.h"
|
||||||
|
#include "../plNetClient/plNetClientMgr.h"
|
||||||
#include "../plNetClient/plNetLinkingMgr.h"
|
#include "../plNetClient/plNetLinkingMgr.h"
|
||||||
|
|
||||||
#include "../plMessage/plAvatarMsg.h"
|
#include "../plMessage/plAvatarMsg.h"
|
||||||
@ -494,12 +495,20 @@ hsBool plAvBrainHuman::IHandleClimbMsg(plClimbMsg *msg)
|
|||||||
bool isStartClimb = msg->fCommand == plClimbMsg::kStartClimbing;
|
bool isStartClimb = msg->fCommand == plClimbMsg::kStartClimbing;
|
||||||
if(isStartClimb)
|
if(isStartClimb)
|
||||||
{
|
{
|
||||||
// let's build a seek task to get us to the attach point
|
// Warp the player to the Seekpoint
|
||||||
plKey seekTarget = msg->fTarget;
|
plSceneObject *avatarObj = plSceneObject::ConvertNoRef(plNetClientMgr::GetInstance()->GetLocalPlayer());
|
||||||
plAvTaskSeek *seekTask = TRACKED_NEW plAvTaskSeek(seekTarget);
|
plSceneObject *obj = plSceneObject::ConvertNoRef(msg->fTarget->ObjectIsLoaded());
|
||||||
QueueTask(seekTask);
|
plArmatureMod *localAvatar = plAvatarMgr::GetInstance()->GetLocalAvatar();
|
||||||
|
plArmatureMod *climbAvatar = plArmatureMod::ConvertNoRef(fArmature);
|
||||||
|
if (climbAvatar == localAvatar) // is it our avatar who has to seek?
|
||||||
|
{
|
||||||
|
hsMatrix44 target = obj->GetLocalToWorld();
|
||||||
|
plWarpMsg *warp = TRACKED_NEW plWarpMsg(NULL, avatarObj->GetKey(), plWarpMsg::kFlushTransform, target);
|
||||||
|
warp->SetBCastFlag(plMessage::kNetPropagate);
|
||||||
|
plgDispatch::MsgSend(warp);
|
||||||
|
}
|
||||||
|
|
||||||
// now a brain task to start the actual climb.
|
// build the Climb brain
|
||||||
plAvBrainClimb::Mode startMode;
|
plAvBrainClimb::Mode startMode;
|
||||||
switch(msg->fDirection)
|
switch(msg->fDirection)
|
||||||
{
|
{
|
||||||
@ -515,10 +524,11 @@ hsBool plAvBrainHuman::IHandleClimbMsg(plClimbMsg *msg)
|
|||||||
case plClimbMsg::kRight:
|
case plClimbMsg::kRight:
|
||||||
startMode = plAvBrainClimb::kMountingRight;
|
startMode = plAvBrainClimb::kMountingRight;
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
plAvBrainClimb *brain = TRACKED_NEW plAvBrainClimb(startMode);
|
plAvBrainClimb *brain = TRACKED_NEW plAvBrainClimb(startMode);
|
||||||
plAvTaskBrain *brainTask = TRACKED_NEW plAvTaskBrain(brain);
|
climbAvatar->PushBrain(brain);
|
||||||
QueueTask(brainTask);
|
|
||||||
}
|
}
|
||||||
// ** potentially controversial:
|
// ** potentially controversial:
|
||||||
// It's fairly easy for a human brain to hit a climb trigger - like when falling off a wall.
|
// It's fairly easy for a human brain to hit a climb trigger - like when falling off a wall.
|
||||||
|
Reference in New Issue
Block a user