Pushable Objects
by Bedazzled

The NG game engine has made available several new features for use with pushable objects. I shall try to cover them all in this tutorial, explaining the OCB codes required to make these new features work.

Standing on pushable blocks

By using an appropriate OCB code, Lara is able to stand on pushable blocks ranging in height from 1 - 28 clicks or the equivalent of 7 blocks. The formulae used to determine this code is: OCB = (64 required to enable the new features) + (block height measured in clicks.) For convenience a table listing the required codes for block heights ranging from 1 - 28 clicks is given below.

This picture shows Lara standing on a 1 block high crate in order to reach a higher tunnel.

Pushable blocks are also able to be stacked and providing that each block has been given the ocb code appropriate to its height, Lara is also able to move a block along the top of other pushables as seen here in order to gain access to another tunnel.

Pushables can also be used in conjunction with climbable walls as seen in this screenshot. In this scenario you would set parameters for the climbing wall to make the climbable section start at a distance of 8 clicks above the ground, necessitating the use of the pushable block.

Pushables & Raising Blocks

Pushables can be used in conjunction with both the RAISING_BLOCK 1 and RAISING_BLOCK2 objects. When used in this way once placed onto a raising block the pushable will rise and fall in real time with the raising block beneath it.

However it should be noted that due to technical limitations which cannot be changed, when a previously climbable block is pushed onto a raising block it will lose its climbable attributes. It regains them once removed from the raising block.

Pushing objects off Ledges or Platforms

This new move also requires an OCB code, in this case 32 (which must be added to the OCB of 64 required to enable new features). For statues and non-climbable blocks this results in a required code of 96. For climbable blocks simply add 32 to the appropriate OCB code in the table above.

With this OCB code Lara is able to push an object off a ledge or platform, with the following exceptions.

1. There is a shatter object on the tile the pushable object will land on.
2. If the tile the object will land on is not flat. The tile can be raised from floor level but it must be flat.

In both these cases Lara will stop pushing when the object reaches the edge of the ledge or platform.

You should also ensure there is a minimum clear drop of one block between the point the object will be pushed from and the tile it will land on. This is needed to avoid having Lara walking in thin air as the object tips and begins to fall and also for the object to fall correctly.

Due to technical limitations which Paolone can't change, if an object such as a statue is pushed off a ledge or platform it will tip over as it begins to fall, but will be standing upright again once it lands.

Disabling pulling & pushing

Note: The OCB values listed in the table below concerning disabling of pushing or pulling are only for combining with the OCB codes described in the sections above covering climbable blocks and pushing objects off ledges.

If the disable pushing or pulling feature is to be used as a stand alone feature, OCB 64 must be added to the value shown in the table in order to enable the NG features and this applies to all pushable objects.

Restricting which Block sides can be Climbed

Applicable only to blocks 8 clicks or more in height, the code given in the table below should be added to the code for the corresponding block height found in the first table to arrive at the final OCB code.

If you want Lara to climb on only the West & North sides, for example, the final code is calculated as follows:

2048 + 4096 + 64 + (block height in clicks)

Pushables and Meta

When creating a pushable object it's important that the point of origin is at the centre of the object's base as shown here with a pushable block. This is to ensure it will fall correctly when pushed from a ledge.