The way my engine is supposed to work is by reading in .ini files that contain the information about the scene. For this example I am working with the following scene which consists of ambient light, diffuse light and an orange icosahedron. (See the attached images for more information). Everything works fine up to diffuse lighting (ambient light, or when no lighting is specified (ambient is just cranked up to 1)).
[General]
size = 1024
backgroundcolor = (0, 0, 0)
type = "LightedZBuffering"
nrLights = 1
eye = (100, 50, 75)
nrFigures = 1
[Light0]
infinity = TRUE
direction = (-1, -1, -1)
ambientLight = (1, 1, 1)
diffuseLight = (1, 1, 1)
[Figure0]
type = "Icosahedron"
scale = 1
rotateX = 0
rotateY = 0
rotateZ = 0
center = (0, 0, 0)
ambientReflection = (0.50, 0.25, 0.00)
diffuseReflection = (0.50, 0.25, 0.00)