Rollers

From Valve Cut Content
Jump to: navigation, search

The earlier form of the Rollermine, the Roller and its variations are some of the earlier entities present in the Leak's source, and they come accompanied with two early models.

Model

There are two models present in the leak:

"roller.mdl"
"roller_spikes.mdl"

Roller is used by all of the unused Roller variations (including the base class Roller), and appears to be a default sphere, UVed with a cylinder map and two caps. It uses a less-refined texture, which also has its PSD[1] included. In it, there is an alternate base texture which seems to be based on the side of a train.

The JPG render present in the /models/ folder doesn't have the caps of the current model, which would make more sense for the older Roller texture.

Roller_spikes is only used by the Rollerbull and Rollermine and is swapped out from Roller model when called for. Roller_spikes's sphere is identical UV-wise, but also has several spikes in it. The texture is more refined than Roller's, utilizing normal maps and a more complex base texture.

Both models have a default bone named "polymsh2", with roller_spikes additionally having one named "polymsh".

Gallery

Renders

Textures

Code

There are 5 cut Rollermine variants, with one being a base class that the others inherit from. They all use the Rollermine model as placeholder and some changes to the code may have to be made for them to function correctly.

The Rollerbull and Rollermine have the earliest copyright starting at 1996-2001, while the rest are 1999.

Roller

Roller
Condition
Model Uses leak roller model
Texture Ditto
AI Basic; patrols a path

Roller is a base class with the ability to patrol around a map using hint nodes. The class also has the ability to "Marco polo" close Rollers towards the one that initiated a Marco but it has been disabled with an Ifdef.

Upon spawning it, the class generates a randomized unique code that would be used as flavor sound when commanding the roller. Only the Rollerbuddy makes use of this, but does not use the derived version from this class instead using a copy of the code to do so.

Most inherited classes fall back to this upon being hit to wait until they are not moving for class specific behavior to resume.

Rollerbuddy

Rollerbuddy
Condition
Model Uses the same model as the base roller class
Texture Ditto
AI Basic; commanded by player

The Rollerbuddy follows the player and can be commanded with the roller wand weapon.

Left click tells the Rollerbuddy to move to a position, and right click toggles between follow mode and command mode.

Follow mode tells Rollerbuddy to stay close to the player, while command mode would have the Rollerbuddy stay at the position specified.

Upon being commanded, the Rollerbuddy plays back a series of tones that was randomly generated when it was spawned. Since the Rollerbuddy defaults to its own idle schedule, the inherited roller behavior is never called and may not wait until it has stopped moving to attempt to move to its destination again.

Rollerdozer

Rollerdozer
Condition
Model Uses the same model as the base roller class
Texture Ditto
AI Basic; patrols a path, clears props if valid hint present

The Rollerdozer defaults to patrolling behavior, while searching for physics props within a radius of the closest HINT_ROLLER_CLEANUP_POINT hint nodes to it placed on a map.

Upon locating some props, the Rollerdozer moves to the center of the node, selects the heaviest that it can push, and begins moving them away from the center of the hint node until either 5 seconds have passed or the prop is no longer being pushed away from the center. The Rollerdozer then locates the next prop to doze away, or it returns to patrol.

Rollerbull

Rollerbull
Condition
Model Uses leak roller and roller_spikes model as placeholder
Texture Ditto
AI Crashes game

The Rollerbull defaults to patrolling behavior. Judging by its name and the existing source code, it is inferred that the Rollerbull had blades instead of the normal protrusions.

Upon locating an enemy, the Rollerbull would jump in a random direction and attempt to attack the “best enemy” by charging towards it and ramming into it. If the enemy is too close to get up to speed to ram into it, the Rollerbull would back up a distance and try again.

Unlike the rest of the variants, this roller attempts to use base AI to find its enemy. Even the Rollermine does not make use of the “bestenemy” method as it has been commented out in the code.

This NPC has references to squad positions that are seemingly unused, being “guard”, “setup charge” and “charge”. Additionally it has an unused squad interaction that would cause all Rollerbull members of a squad to explode when a new enemy is sighted.

Rollerturret

Rollerturret
Condition
Model Uses leak roller model as placeholder
Texture Ditto
AI Basic; patrols and fires at player

The Rollerturret defaults to patrolling behavior. Upon acquiring an enemy, the Rollerturret stops patrolling and opens, as it can not attack while closed.

To attack, the Rollerturret fires a laser at its target. If the target is too far away, it will give chase. The Rollerturret's view distance changes based on if it is in an open or closed state.

Sound

The usage of sounds with specific naming conventions imply that the Rollerbull and Roller were one in the same at one point and was the first to be made out of the other roller variations in this state. Evidence for this is that the base Roller does not use any rol_ sounds, but the Rollerbull does and much of the rol_ sounds are specifically for Rollerbull behaviours even though there is a bull_ naming convention. Additionally much of the Rollermine code and sound events appear to be carry overs from the Rollerbull. There are no unique sounds for the Rollerdozer.

Roller

Directory Comments Creation date
npc/roller/power_up.wav referenced as NPC_Roller.PowerOn 30/05/2001
npc/roller/shut_down.wav referenced as NPC_Roller.PowerOff
npc/roller/code1.wav Referenced in code, also used by the Rollerbuddy 25/12/1998
npc/roller/code2.wav 9/10/2001
npc/roller/code3.wav
npc/roller/code4.wav 23/12/1998
npc/roller/code5.wav 9/10/2001
npc/roller/code6.wav
This is missingnpc/roller/call1.wav referenced as NPC_Roller.Marco
This is missingnpc/roller/call2.wav
This is missingnpc/roller/call3.wav referenced as NPC_Roller.Polo

Roller buddy

Condition Directory Comments Creation date
Miss-used npc/roller/remote_no.wav NPC_RollerBuddy.RemoteNo uses npc/roller/remote_yes.wav instead 27/06/2001
Present npc/roller/confirm_move.wav referenced as NPC_RollerBuddy.Confirm 6/09/2001
npc/roller/remote_yes.wav referenced as NPC_RollerBuddy.RemoteYes
npc/roller/roll.wav referenced in code
npc/roller/code1.wav 25/12/1998
npc/roller/code2.wav 9/10/2001
npc/roller/code3.wav
npc/roller/code4.wav 23/12/1998
npc/roller/code5.wav 9/10/2001
npc/roller/code6.wav

Roller bull

Condition Directory Comments Creation date
Miss-used npc/roller/test/rol_measure1.wav NPC_RollerBull.Measure uses npc/roller/test/rol_probe1.wav instead
Present npc/roller/test/rol_tossed1.wav referenced as NPC_RollerBull.Tossed
npc/roller/test/rol_swingbladetaunt1.wav referenced as NPC_RollerBull.Taunt
npc/roller/blade_out.wav referenced as NPC_RollerBull.OpenSpikes 22/10/2001
npc/roller/blade_in.wav referenced as NPC_RollerBull.CloseSpikes
npc/roller/blade_cut.wav referenced as NPC_RollerBull.Cut 1/11/2001
npc/roller/test/rol_summon1.wav referenced as NPC_RollerBull.Summon
npc/roller/test/rol_idle1.wav referenced as NPC_RollerBull.Idle
npc/roller/test/rol_idle2.wav
npc/roller/test/rol_idle3.wav
npc/roller/test/rol_idle4.wav
npc/roller/bark1.wav referenced as NPC_RollerBull.Bark 29/10/2001
npc/roller/bark2.wav
npc/roller/bark3.wav
npc/roller/bull_slow.wav referenced in code 6/11/2001
npc/roller/bull_fast.wav
npc/roller/bull_buzz.wav 2/11/2001
Unused npc/roller/bull_power_up.wav related, but unused, same naming scheme as the Roller mine 30/05/2001
npc/roller/bull_shut_down.wav

Roller turret

Directory Comments
This is missingnpc/roller/turret_shoot.wav referenced as NPC_RollerTurret.Shoot

References

  1. With color differences from the VTF version