mirror of
https://gitlab.com/Syroot/Worms.git
synced 2025-03-04 09:25:22 +03:00
Fix WWP land data IMG alignment and accept bugged PX weapon blocks.
This commit is contained in:
parent
e4f3c0ced1
commit
5e23aef58c
@ -40,7 +40,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
|
|||||||
{
|
{
|
||||||
using (BinaryDataReader reader = new BinaryDataReader(stream, Encoding.ASCII, true))
|
using (BinaryDataReader reader = new BinaryDataReader(stream, Encoding.ASCII, true))
|
||||||
{
|
{
|
||||||
Collisions = reader.ReadEnum<CollisionFlags>(true);
|
Collisions = reader.ReadEnum<CollisionFlags>(false);
|
||||||
Bounciness = reader.ReadInt32();
|
Bounciness = reader.ReadInt32();
|
||||||
Acceleration = reader.ReadInt32();
|
Acceleration = reader.ReadInt32();
|
||||||
Sound = reader.ReadInt32();
|
Sound = reader.ReadInt32();
|
||||||
|
@ -29,7 +29,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
|
|||||||
{
|
{
|
||||||
reader.Seek(4);
|
reader.Seek(4);
|
||||||
Sprite = reader.ReadStruct<Sprite>();
|
Sprite = reader.ReadStruct<Sprite>();
|
||||||
HomeStyle = reader.ReadEnum<HomeStyle>(true);
|
HomeStyle = reader.ReadEnum<HomeStyle>(false);
|
||||||
Delay = reader.ReadInt32();
|
Delay = reader.ReadInt32();
|
||||||
Duration = reader.ReadInt32();
|
Duration = reader.ReadInt32();
|
||||||
}
|
}
|
||||||
|
@ -54,8 +54,8 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
|
|||||||
{
|
{
|
||||||
using (BinaryDataReader reader = new BinaryDataReader(stream, Encoding.ASCII, true))
|
using (BinaryDataReader reader = new BinaryDataReader(stream, Encoding.ASCII, true))
|
||||||
{
|
{
|
||||||
RoamCollisions = reader.ReadEnum<CollisionFlags>(true);
|
RoamCollisions = reader.ReadEnum<CollisionFlags>(false);
|
||||||
ExplosionCollisions = reader.ReadEnum<CollisionFlags>(true);
|
ExplosionCollisions = reader.ReadEnum<CollisionFlags>(false);
|
||||||
WalkSpeed = reader.ReadInt32();
|
WalkSpeed = reader.ReadInt32();
|
||||||
Unknown = reader.ReadInt32();
|
Unknown = reader.ReadInt32();
|
||||||
JumpAngleEdge = reader.ReadInt32();
|
JumpAngleEdge = reader.ReadInt32();
|
||||||
|
@ -40,7 +40,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
|
|||||||
HorizontalSpeed = reader.ReadInt32();
|
HorizontalSpeed = reader.ReadInt32();
|
||||||
Sound = reader.ReadInt32();
|
Sound = reader.ReadInt32();
|
||||||
|
|
||||||
Action = reader.ReadEnum<WeaponAirstrikeAction>(true);
|
Action = reader.ReadEnum<WeaponAirstrikeAction>(false);
|
||||||
switch (Action)
|
switch (Action)
|
||||||
{
|
{
|
||||||
case WeaponAirstrikeAction.Launcher:
|
case WeaponAirstrikeAction.Launcher:
|
||||||
|
@ -52,7 +52,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
|
|||||||
BulletSpread = reader.ReadInt32();
|
BulletSpread = reader.ReadInt32();
|
||||||
Burst = reader.ReadInt32();
|
Burst = reader.ReadInt32();
|
||||||
BurstSpread = reader.ReadInt32();
|
BurstSpread = reader.ReadInt32();
|
||||||
Collisions = reader.ReadEnum<CollisionFlags>(true);
|
Collisions = reader.ReadEnum<CollisionFlags>(false);
|
||||||
ExplosionBias = reader.ReadInt32();
|
ExplosionBias = reader.ReadInt32();
|
||||||
ExplosionPower = reader.ReadInt32();
|
ExplosionPower = reader.ReadInt32();
|
||||||
MaxDamage = reader.ReadInt32();
|
MaxDamage = reader.ReadInt32();
|
||||||
|
@ -69,7 +69,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
|
|||||||
SpriteSize = reader.ReadInt32();
|
SpriteSize = reader.ReadInt32();
|
||||||
FixedSpeed = reader.ReadInt32();
|
FixedSpeed = reader.ReadInt32();
|
||||||
RunAway = reader.ReadBoolean(BinaryBooleanFormat.NonZeroDword);
|
RunAway = reader.ReadBoolean(BinaryBooleanFormat.NonZeroDword);
|
||||||
Collisions = reader.ReadEnum<CollisionFlags>(true);
|
Collisions = reader.ReadEnum<CollisionFlags>(false);
|
||||||
ExplosionBias = reader.ReadInt32();
|
ExplosionBias = reader.ReadInt32();
|
||||||
ExplosionPushPower = reader.ReadInt32();
|
ExplosionPushPower = reader.ReadInt32();
|
||||||
ExplosionDamage = reader.ReadInt32();
|
ExplosionDamage = reader.ReadInt32();
|
||||||
@ -85,7 +85,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
|
|||||||
Sound = reader.ReadStruct<Sound>();
|
Sound = reader.ReadStruct<Sound>();
|
||||||
ExplodeOnSpace = reader.ReadBoolean(BinaryBooleanFormat.NonZeroDword);
|
ExplodeOnSpace = reader.ReadBoolean(BinaryBooleanFormat.NonZeroDword);
|
||||||
|
|
||||||
ExplosionAction = reader.ReadEnum<ExplosionAction>(true);
|
ExplosionAction = reader.ReadEnum<ExplosionAction>(false);
|
||||||
switch (ExplosionAction)
|
switch (ExplosionAction)
|
||||||
{
|
{
|
||||||
case ExplosionAction.Bounce:
|
case ExplosionAction.Bounce:
|
||||||
@ -103,7 +103,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
|
|||||||
}
|
}
|
||||||
|
|
||||||
reader.Position = offset + 180;
|
reader.Position = offset + 180;
|
||||||
ExplosionTarget = reader.ReadEnum<ExplosionTarget>(true);
|
ExplosionTarget = reader.ReadEnum<ExplosionTarget>(false);
|
||||||
reader.Seek(sizeof(int));
|
reader.Seek(sizeof(int));
|
||||||
switch (ExplosionTarget)
|
switch (ExplosionTarget)
|
||||||
{
|
{
|
||||||
|
@ -68,7 +68,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
|
|||||||
Speed = reader.ReadInt32();
|
Speed = reader.ReadInt32();
|
||||||
EjectionAngle = reader.ReadInt32();
|
EjectionAngle = reader.ReadInt32();
|
||||||
DispersionAngle = reader.ReadInt32();
|
DispersionAngle = reader.ReadInt32();
|
||||||
Collisions = reader.ReadEnum<CollisionFlags>(true);
|
Collisions = reader.ReadEnum<CollisionFlags>(false);
|
||||||
ExplosionBias = reader.ReadInt32();
|
ExplosionBias = reader.ReadInt32();
|
||||||
ExplosionPushPower = reader.ReadInt32();
|
ExplosionPushPower = reader.ReadInt32();
|
||||||
ExplosionDamage = reader.ReadInt32();
|
ExplosionDamage = reader.ReadInt32();
|
||||||
@ -84,7 +84,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
|
|||||||
Sound = reader.ReadStruct<Sound>();
|
Sound = reader.ReadStruct<Sound>();
|
||||||
ExplodeOnSpace = reader.ReadBoolean(BinaryBooleanFormat.NonZeroDword);
|
ExplodeOnSpace = reader.ReadBoolean(BinaryBooleanFormat.NonZeroDword);
|
||||||
|
|
||||||
ExplosionAction = reader.ReadEnum<ExplosionAction>(true);
|
ExplosionAction = reader.ReadEnum<ExplosionAction>(false);
|
||||||
switch (ExplosionAction)
|
switch (ExplosionAction)
|
||||||
{
|
{
|
||||||
case ExplosionAction.Bounce:
|
case ExplosionAction.Bounce:
|
||||||
|
@ -131,7 +131,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
|
|||||||
Unknown2 = reader.ReadInt32();
|
Unknown2 = reader.ReadInt32();
|
||||||
|
|
||||||
// Read the activation and the corresponding weapon settings.
|
// Read the activation and the corresponding weapon settings.
|
||||||
Activation = reader.ReadEnum<WeaponActivation>(true);
|
Activation = reader.ReadEnum<WeaponActivation>(false);
|
||||||
switch (Activation)
|
switch (Activation)
|
||||||
{
|
{
|
||||||
case WeaponActivation.Airstrike:
|
case WeaponActivation.Airstrike:
|
||||||
@ -140,7 +140,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
|
|||||||
break;
|
break;
|
||||||
case WeaponActivation.Crosshair:
|
case WeaponActivation.Crosshair:
|
||||||
reader.Seek(sizeof(int));
|
reader.Seek(sizeof(int));
|
||||||
CrosshairAction = reader.ReadEnum<WeaponCrosshairAction>(true);
|
CrosshairAction = reader.ReadEnum<WeaponCrosshairAction>(false);
|
||||||
switch (CrosshairAction)
|
switch (CrosshairAction)
|
||||||
{
|
{
|
||||||
case WeaponCrosshairAction.Bow:
|
case WeaponCrosshairAction.Bow:
|
||||||
@ -158,7 +158,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WeaponActivation.Spacebar:
|
case WeaponActivation.Spacebar:
|
||||||
SpacebarAction = reader.ReadEnum<WeaponSpacebarAction>(true);
|
SpacebarAction = reader.ReadEnum<WeaponSpacebarAction>(false);
|
||||||
switch (SpacebarAction)
|
switch (SpacebarAction)
|
||||||
{
|
{
|
||||||
case WeaponSpacebarAction.Armageddon:
|
case WeaponSpacebarAction.Armageddon:
|
||||||
@ -219,7 +219,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
|
|||||||
break;
|
break;
|
||||||
case WeaponActivation.Throw:
|
case WeaponActivation.Throw:
|
||||||
ThrowHerdCount = reader.ReadInt32();
|
ThrowHerdCount = reader.ReadInt32();
|
||||||
ThrowAction = reader.ReadEnum<WeaponThrowAction>(true);
|
ThrowAction = reader.ReadEnum<WeaponThrowAction>(false);
|
||||||
switch (ThrowAction)
|
switch (ThrowAction)
|
||||||
{
|
{
|
||||||
case WeaponThrowAction.Canister:
|
case WeaponThrowAction.Canister:
|
||||||
|
@ -53,7 +53,7 @@ namespace Syroot.Worms.Gen2
|
|||||||
/// <param name="alignData"><c>true</c> to align the data array by 4 bytes.</param>
|
/// <param name="alignData"><c>true</c> to align the data array by 4 bytes.</param>
|
||||||
internal Image(Stream stream, bool alignData)
|
internal Image(Stream stream, bool alignData)
|
||||||
{
|
{
|
||||||
Load(stream);
|
Load(stream, alignData);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---- PROPERTIES ---------------------------------------------------------------------------------------------
|
// ---- PROPERTIES ---------------------------------------------------------------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user