diff options
Diffstat (limited to 'src/object')
-rw-r--r-- | src/object/object.cpp | 25 | ||||
-rw-r--r-- | src/object/robotmain.cpp | 2 | ||||
-rw-r--r-- | src/object/task/taskbuild.cpp | 17 | ||||
-rw-r--r-- | src/object/task/taskshield.cpp | 13 |
4 files changed, 18 insertions, 39 deletions
diff --git a/src/object/object.cpp b/src/object/object.cpp index 8f2a4cc..d6ac681 100644 --- a/src/object/object.cpp +++ b/src/object/object.cpp @@ -2248,15 +2248,10 @@ bool CObject::CreateShadowLight(float height, Gfx::Color color) Gfx::Light light; light.type = Gfx::LIGHT_SPOT; - light.diffuse.r = color.r; - light.diffuse.g = color.g; - light.diffuse.b = color.b; - light.position.x = pos.x; - light.position.y = pos.y+height; - light.position.z = pos.z; - light.direction.x = 0.0f; - light.direction.y = -1.0f; // against the bottom - light.direction.z = 0.0f; + light.diffuse = color; + light.ambient = color * 0.1f; + light.position = Math::Vector(pos.x, pos.y+height, pos.z); + light.direction = Math::Vector(0.0f, -1.0f, 0.0f); // against the bottom light.spotIntensity = 128; light.attenuation0 = 1.0f; light.attenuation1 = 0.0f; @@ -2291,15 +2286,9 @@ bool CObject::CreateEffectLight(float height, Gfx::Color color) Gfx::Light light; light.type = Gfx::LIGHT_SPOT; - light.diffuse.r = color.r; - light.diffuse.g = color.g; - light.diffuse.b = color.b; - light.position.x = 0.0f; - light.position.y = 0.0f+height; - light.position.z = 0.0f; - light.direction.x = 0.0f; - light.direction.y = -1.0f; // against the bottom - light.direction.z = 0.0f; + light.diffuse = color; + light.position = Math::Vector(0.0f, height, 0.0f); + light.direction = Math::Vector(0.0f, -1.0f, 0.0f); // against the bottom light.spotIntensity = 0.0f; light.attenuation0 = 1.0f; light.attenuation1 = 0.0f; diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 6efd853..29fdd31 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -4917,6 +4917,7 @@ int CRobotMain::CreateLight(Math::Vector direction, Gfx::Color color) Gfx::Light light; light.type = Gfx::LIGHT_DIRECTIONAL; light.diffuse = color; + light.ambient = color * 0.1f; light.direction = direction; int obj = m_lightMan->CreateLight(Gfx::LIGHT_PRI_HIGH); m_lightMan->SetLight(obj, light); @@ -4934,6 +4935,7 @@ int CRobotMain::CreateSpot(Math::Vector pos, Gfx::Color color) Gfx::Light light; light.type = Gfx::LIGHT_SPOT; light.diffuse = color; + light.ambient = color * 0.1f; light.position = pos; light.direction = Math::Vector(0.0f, -1.0f, 0.0f); light.spotIntensity = 1.0f; diff --git a/src/object/task/taskbuild.cpp b/src/object/task/taskbuild.cpp index f209cd5..b9af475 100644 --- a/src/object/task/taskbuild.cpp +++ b/src/object/task/taskbuild.cpp @@ -114,7 +114,6 @@ bool CTaskBuild::CreateBuilding(Math::Vector pos, float angle) void CTaskBuild::CreateLight() { - Gfx::Light light; Gfx::Color color; Math::Vector center, pos, dir; Math::Point c, p; @@ -141,18 +140,12 @@ void CTaskBuild::CreateLight() pos.y = center.y+40.0f; dir = center-pos; - memset(&light, 0, sizeof(light)); + Gfx::Light light; light.type = Gfx::LIGHT_SPOT; - light.diffuse.r = 0.0f; - light.diffuse.g = 0.0f; - light.diffuse.b = 0.0f; // white (invisible) - light.position.x = pos.x; - light.position.y = pos.y; - light.position.z = pos.z; - light.direction.x = dir.x; - light.direction.y = dir.y; - light.direction.z = dir.z; - //TODO Is this value correct + light.ambient = Gfx::Color(0.0f, 0.0f, 0.0f); + light.diffuse = Gfx::Color(0.0f, 0.0f, 0.0f); // invisible + light.position = pos; + light.direction = dir; light.spotIntensity = 128; light.attenuation0 = 1.0f; light.attenuation1 = 0.0f; diff --git a/src/object/task/taskshield.cpp b/src/object/task/taskshield.cpp index 4b2fccd..929dd5c 100644 --- a/src/object/task/taskshield.cpp +++ b/src/object/task/taskshield.cpp @@ -488,15 +488,10 @@ bool CTaskShield::CreateLight(Math::Vector pos) memset(&light, 0, sizeof(light)); light.type = Gfx::LIGHT_SPOT; - light.diffuse.r = 0.0f; - light.diffuse.g = 1.0f; - light.diffuse.b = 2.0f; - light.position.x = pos.x; - light.position.y = pos.y; - light.position.z = pos.z; - light.direction.x = 0.0f; - light.direction.y = -1.0f; // against the bottom - light.direction.z = 0.0f; + light.ambient = Gfx::Color(0.0f, 0.0f, 0.0f); + light.diffuse = Gfx::Color(0.0f, 1.0f, 2.0f); + light.position = pos; + light.direction = Math::Vector(0.0f, -1.0f, 0.0f); // against the bottom light.spotIntensity = 128; light.attenuation0 = 1.0f; light.attenuation1 = 0.0f; |