There is no hardware scaling on the Spectrum, so roadside objects like trees,
lamp posts and buildings can't just be one bitmap stretched to size. Instead
draw_stretchy_object_common (draw_stretchy_object_common, reached via
draw_stretchy_object_left or
draw_stretchy_object_right) builds
each object from a stack of small bitmap "bands": some bands are drawn at a
fixed height regardless of distance, anchoring the object's basic shape;
others are scaled to a percentage (25% to 200%) of a base height looked up in
the shared
persp_y_scale table, and it's these bands that
actually shrink and grow as the object approaches or recedes. Each band picks
its own bitmap variant for the current depth from a small per-band table, so
a fixed foot or a stretched trunk can look subtly different up close without
needing a whole extra full-size sprite. Five ~32-byte bands per object is far
cheaper than one full bitmap per depth level.