Fix WWP land data IMG alignment and accept bugged PX weapon blocks.

This commit is contained in:
Ray Koopa 2017-05-01 14:39:14 +02:00
parent e4f3c0ced1
commit 5e23aef58c
9 changed files with 16 additions and 16 deletions

View File

@ -40,7 +40,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
{
using (BinaryDataReader reader = new BinaryDataReader(stream, Encoding.ASCII, true))
{
Collisions = reader.ReadEnum<CollisionFlags>(true);
Collisions = reader.ReadEnum<CollisionFlags>(false);
Bounciness = reader.ReadInt32();
Acceleration = reader.ReadInt32();
Sound = reader.ReadInt32();

View File

@ -29,7 +29,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
{
reader.Seek(4);
Sprite = reader.ReadStruct<Sprite>();
HomeStyle = reader.ReadEnum<HomeStyle>(true);
HomeStyle = reader.ReadEnum<HomeStyle>(false);
Delay = reader.ReadInt32();
Duration = reader.ReadInt32();
}

View File

@ -54,8 +54,8 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
{
using (BinaryDataReader reader = new BinaryDataReader(stream, Encoding.ASCII, true))
{
RoamCollisions = reader.ReadEnum<CollisionFlags>(true);
ExplosionCollisions = reader.ReadEnum<CollisionFlags>(true);
RoamCollisions = reader.ReadEnum<CollisionFlags>(false);
ExplosionCollisions = reader.ReadEnum<CollisionFlags>(false);
WalkSpeed = reader.ReadInt32();
Unknown = reader.ReadInt32();
JumpAngleEdge = reader.ReadInt32();

View File

@ -40,7 +40,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
HorizontalSpeed = reader.ReadInt32();
Sound = reader.ReadInt32();
Action = reader.ReadEnum<WeaponAirstrikeAction>(true);
Action = reader.ReadEnum<WeaponAirstrikeAction>(false);
switch (Action)
{
case WeaponAirstrikeAction.Launcher:

View File

@ -52,7 +52,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
BulletSpread = reader.ReadInt32();
Burst = reader.ReadInt32();
BurstSpread = reader.ReadInt32();
Collisions = reader.ReadEnum<CollisionFlags>(true);
Collisions = reader.ReadEnum<CollisionFlags>(false);
ExplosionBias = reader.ReadInt32();
ExplosionPower = reader.ReadInt32();
MaxDamage = reader.ReadInt32();

View File

@ -69,7 +69,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
SpriteSize = reader.ReadInt32();
FixedSpeed = reader.ReadInt32();
RunAway = reader.ReadBoolean(BinaryBooleanFormat.NonZeroDword);
Collisions = reader.ReadEnum<CollisionFlags>(true);
Collisions = reader.ReadEnum<CollisionFlags>(false);
ExplosionBias = reader.ReadInt32();
ExplosionPushPower = reader.ReadInt32();
ExplosionDamage = reader.ReadInt32();
@ -85,7 +85,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
Sound = reader.ReadStruct<Sound>();
ExplodeOnSpace = reader.ReadBoolean(BinaryBooleanFormat.NonZeroDword);
ExplosionAction = reader.ReadEnum<ExplosionAction>(true);
ExplosionAction = reader.ReadEnum<ExplosionAction>(false);
switch (ExplosionAction)
{
case ExplosionAction.Bounce:
@ -103,7 +103,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
}
reader.Position = offset + 180;
ExplosionTarget = reader.ReadEnum<ExplosionTarget>(true);
ExplosionTarget = reader.ReadEnum<ExplosionTarget>(false);
reader.Seek(sizeof(int));
switch (ExplosionTarget)
{

View File

@ -68,7 +68,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
Speed = reader.ReadInt32();
EjectionAngle = reader.ReadInt32();
DispersionAngle = reader.ReadInt32();
Collisions = reader.ReadEnum<CollisionFlags>(true);
Collisions = reader.ReadEnum<CollisionFlags>(false);
ExplosionBias = reader.ReadInt32();
ExplosionPushPower = reader.ReadInt32();
ExplosionDamage = reader.ReadInt32();
@ -84,7 +84,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
Sound = reader.ReadStruct<Sound>();
ExplodeOnSpace = reader.ReadBoolean(BinaryBooleanFormat.NonZeroDword);
ExplosionAction = reader.ReadEnum<ExplosionAction>(true);
ExplosionAction = reader.ReadEnum<ExplosionAction>(false);
switch (ExplosionAction)
{
case ExplosionAction.Bounce:

View File

@ -131,7 +131,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
Unknown2 = reader.ReadInt32();
// Read the activation and the corresponding weapon settings.
Activation = reader.ReadEnum<WeaponActivation>(true);
Activation = reader.ReadEnum<WeaponActivation>(false);
switch (Activation)
{
case WeaponActivation.Airstrike:
@ -140,7 +140,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
break;
case WeaponActivation.Crosshair:
reader.Seek(sizeof(int));
CrosshairAction = reader.ReadEnum<WeaponCrosshairAction>(true);
CrosshairAction = reader.ReadEnum<WeaponCrosshairAction>(false);
switch (CrosshairAction)
{
case WeaponCrosshairAction.Bow:
@ -158,7 +158,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
}
break;
case WeaponActivation.Spacebar:
SpacebarAction = reader.ReadEnum<WeaponSpacebarAction>(true);
SpacebarAction = reader.ReadEnum<WeaponSpacebarAction>(false);
switch (SpacebarAction)
{
case WeaponSpacebarAction.Armageddon:
@ -219,7 +219,7 @@ namespace Syroot.Worms.Gen2.Armageddon.ProjectX
break;
case WeaponActivation.Throw:
ThrowHerdCount = reader.ReadInt32();
ThrowAction = reader.ReadEnum<WeaponThrowAction>(true);
ThrowAction = reader.ReadEnum<WeaponThrowAction>(false);
switch (ThrowAction)
{
case WeaponThrowAction.Canister:

View File

@ -53,7 +53,7 @@ namespace Syroot.Worms.Gen2
/// <param name="alignData"><c>true</c> to align the data array by 4 bytes.</param>
internal Image(Stream stream, bool alignData)
{
Load(stream);
Load(stream, alignData);
}
// ---- PROPERTIES ---------------------------------------------------------------------------------------------