Syncing attack input
This commit is contained in:
@@ -247,6 +247,11 @@ namespace Barotrauma
|
|||||||
attackingLimb = limb;
|
attackingLimb = limb;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Character.IsRemotePlayer)
|
||||||
|
{
|
||||||
|
if (!Character.IsKeyDown(InputType.Attack)) return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (attackLimb != null)
|
if (attackLimb != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -39,9 +39,9 @@ namespace Barotrauma
|
|||||||
Select = 0x40,
|
Select = 0x40,
|
||||||
Use = 0x80,
|
Use = 0x80,
|
||||||
Aim = 0x100,
|
Aim = 0x100,
|
||||||
//Attack = 0x200
|
Attack = 0x200,
|
||||||
|
|
||||||
MaxVal = 0x1FF
|
MaxVal = 0x3FF
|
||||||
}
|
}
|
||||||
private InputNetFlags dequeuedInput = 0;
|
private InputNetFlags dequeuedInput = 0;
|
||||||
private InputNetFlags prevDequeuedInput = 0;
|
private InputNetFlags prevDequeuedInput = 0;
|
||||||
@@ -744,6 +744,8 @@ namespace Barotrauma
|
|||||||
return dequeuedInput.HasFlag(InputNetFlags.Aim);
|
return dequeuedInput.HasFlag(InputNetFlags.Aim);
|
||||||
case InputType.Use:
|
case InputType.Use:
|
||||||
return dequeuedInput.HasFlag(InputNetFlags.Use);
|
return dequeuedInput.HasFlag(InputNetFlags.Use);
|
||||||
|
case InputType.Attack:
|
||||||
|
return dequeuedInput.HasFlag(InputNetFlags.Attack);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -1400,6 +1402,7 @@ namespace Barotrauma
|
|||||||
if (IsKeyHit(InputType.Select)) newInput |= InputNetFlags.Select; //TODO: clean up the way this input is registered
|
if (IsKeyHit(InputType.Select)) newInput |= InputNetFlags.Select; //TODO: clean up the way this input is registered
|
||||||
if (IsKeyDown(InputType.Use)) newInput |= InputNetFlags.Use;
|
if (IsKeyDown(InputType.Use)) newInput |= InputNetFlags.Use;
|
||||||
if (IsKeyDown(InputType.Aim)) newInput |= InputNetFlags.Aim;
|
if (IsKeyDown(InputType.Aim)) newInput |= InputNetFlags.Aim;
|
||||||
|
if (IsKeyDown(InputType.Attack)) newInput |= InputNetFlags.Attack;
|
||||||
|
|
||||||
if (AnimController.TargetDir == Direction.Left) newInput |= InputNetFlags.FacingLeft;
|
if (AnimController.TargetDir == Direction.Left) newInput |= InputNetFlags.FacingLeft;
|
||||||
|
|
||||||
@@ -2132,23 +2135,33 @@ namespace Barotrauma
|
|||||||
|
|
||||||
bool aiming = false;
|
bool aiming = false;
|
||||||
bool use = false;
|
bool use = false;
|
||||||
|
bool attack = false;
|
||||||
|
|
||||||
if (IsRemotePlayer)
|
if (IsRemotePlayer)
|
||||||
{
|
{
|
||||||
aiming = dequeuedInput.HasFlag(InputNetFlags.Aim);
|
aiming = dequeuedInput.HasFlag(InputNetFlags.Aim);
|
||||||
use = dequeuedInput.HasFlag(InputNetFlags.Use);
|
use = dequeuedInput.HasFlag(InputNetFlags.Use);
|
||||||
|
|
||||||
|
attack = dequeuedInput.HasFlag(InputNetFlags.Attack);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
aiming = keys[(int)InputType.Aim].GetHeldQueue;
|
aiming = keys[(int)InputType.Aim].GetHeldQueue;
|
||||||
use = keys[(int)InputType.Use].GetHeldQueue;
|
use = keys[(int)InputType.Use].GetHeldQueue;
|
||||||
|
|
||||||
|
attack = keys[(int)InputType.Attack].GetHeldQueue;
|
||||||
|
|
||||||
networkUpdateSent = true;
|
networkUpdateSent = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
tempBuffer.Write(aiming);
|
tempBuffer.Write(aiming);
|
||||||
tempBuffer.Write(use);
|
tempBuffer.Write(use);
|
||||||
|
|
||||||
|
if (AnimController.Limbs.Any(l => l != null && l.attack != null))
|
||||||
|
{
|
||||||
|
tempBuffer.Write(attack);
|
||||||
|
}
|
||||||
|
|
||||||
if (selectedCharacter != null || selectedConstruction != null)
|
if (selectedCharacter != null || selectedConstruction != null)
|
||||||
{
|
{
|
||||||
tempBuffer.Write(true);
|
tempBuffer.Write(true);
|
||||||
@@ -2200,6 +2213,13 @@ namespace Barotrauma
|
|||||||
keys[(int)InputType.Use].Held = useInput;
|
keys[(int)InputType.Use].Held = useInput;
|
||||||
keys[(int)InputType.Use].SetState(false, useInput);
|
keys[(int)InputType.Use].SetState(false, useInput);
|
||||||
|
|
||||||
|
if (AnimController.Limbs.Any(l => l != null && l.attack != null))
|
||||||
|
{
|
||||||
|
bool attackInput = msg.ReadBoolean();
|
||||||
|
keys[(int)InputType.Attack].Held = attackInput;
|
||||||
|
keys[(int)InputType.Attack].SetState(false, attackInput);
|
||||||
|
}
|
||||||
|
|
||||||
bool entitySelected = msg.ReadBoolean();
|
bool entitySelected = msg.ReadBoolean();
|
||||||
if (entitySelected)
|
if (entitySelected)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user