If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Gorillas

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Gorillas

Also known as: GORILLA.BAS
Developer: Microsoft
Publisher: Microsoft
Platform: DOS
Released internationally: June 11, 1991


CodeIcon.png This game has unused code.


Gorillas (also known as GORILLA.BAS), a King Kong-inspired artillery game where you lob explosive bananas at your enemy. What better way to showcase that hip new QBASIC programming language from Microsoft?

Unused Skyline Slope

When generating the city skylines, the game chooses a number to determine the "slope" (basic shape) of the buildings. Half the time, this is "^" shaped, with a "mountain" between the players that bananas must be thrown over. The others choices are "slope up" / "slope down" (buildings rise steadily to the left, or right) and "inverted V" (a bowl: buildings heights are lowest in the center).

However, due to a bug in a later SELECT ... CASE statement, the inverted V never actually has any height changes - it behaves, instead, as a flat and very tall skyline.

Incorrect (Original) V Slope Fixed V Slope
GORILLA.BAS-Slope6.png GORILLA.BAS-Slope6-Fixed.png

Incorrect Banana Rotation

The routine for drawing the banana takes a "rotation" argument. According to the comments, the rotation should be as follows:

'  r - rotation position (0-3). (  \_/  ) /-\

However, the actual order in this sub is wrong, leading the banana to flip around wildly instead of spinning. The difference between the bugged and intended animations is illustrated here:

Incorrect (Original) Rotation Fixed Rotation
GORILLA.BAS-Banana.gif
GORILLA.BAS-Banana-Fixed.gif

Hit Sun With Banana

An off-by-one error exists when comparing banana Y position to SunHt ("Sun Height") in PlotShot: this allows a carefully aimed banana to strike the bottom-most pixel of the sun and explode, instead of triggering the sun's open mouthed face image.

GORILLA.BAS-SunHt.png

Automatic Self-Destruct

The subroutine PlotShot includes code that checks if the player entered velocity < 2, and if so, it resets the initial banana position to hit the gorilla that threw it. The comment for this section reads "Shot too slow - hit self". However, this position is overwritten later by the regular movement routine, which means that the check has no actual effect.

The result is that, in game, it is sometimes possible to "drop" the banana with 0 velocity, yet the wind will safely blow it away rather than automatically destroying the gorilla who threw it.

  IF Velocity < 2 THEN              'Shot too slow - hit self
    x# = StartX
    y# = StartY
    pointval = OBJECTCOLOR
  END IF

Red Explosion Square

When a player is hit by a banana, the explosion animation includes a large red off-center square that seems to be bugged - either in placement or in shape. It's not clear what this is supposed to be.

GORILLA.BAS-Explosion.png

This is easy to miss for a different reason: Most of the game (but not all of it) uses a calculated machine speed to introduce delays for various animations... but not all of it, some of which still uses a FOR ... NEXT busy loop designed for a much older / slower machine. The gorilla death explosion plays too fast on faster computers, so this is usually not noticeable as it happens far too quickly to be seen.