From 9d8bef877d34d5dd13885cceaeaeb89d10cfb8d3 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Fri, 14 Aug 2015 13:37:40 +0200 Subject: [PATCH] Renamed old-style shadows to shadow spots in the code --- src/graphics/engine/engine.cpp | 134 +++++++++++++++---------------- src/graphics/engine/engine.h | 22 ++--- src/graphics/engine/pyro.cpp | 6 +- src/object/motion/motionworm.cpp | 2 +- src/object/old_object.cpp | 24 +++--- 5 files changed, 94 insertions(+), 94 deletions(-) diff --git a/src/graphics/engine/engine.cpp b/src/graphics/engine/engine.cpp index 17229880..955371e6 100644 --- a/src/graphics/engine/engine.cpp +++ b/src/graphics/engine/engine.cpp @@ -867,7 +867,7 @@ int CEngine::CreateObject() void CEngine::DeleteAllObjects() { m_objects.clear(); - m_shadows.clear(); + m_shadowSpots.clear(); DeleteAllGroundSpots(); } @@ -880,7 +880,7 @@ void CEngine::DeleteObject(int objRank) m_objects[objRank].used = false; // Delete associated shadows - DeleteShadow(objRank); + DeleteShadowSpot(objRank); } void CEngine::SetObjectBaseRank(int objRank, int baseObjRank) @@ -1281,7 +1281,7 @@ void CEngine::TrackTextureMapping(int objRank, const Material& mat, int state, } -void CEngine::CreateShadow(int objRank) +void CEngine::CreateShadowSpot(int objRank) { assert(objRank >= 0 && objRank < static_cast( m_objects.size() )); @@ -1290,26 +1290,26 @@ void CEngine::CreateShadow(int objRank) return; int index = 0; - for ( ; index < static_cast( m_shadows.size() ); index++) + for ( ; index < static_cast( m_shadowSpots.size() ); index++) { - if (! m_shadows[index].used) + if (! m_shadowSpots[index].used) { - m_shadows[index].LoadDefault(); + m_shadowSpots[index].LoadDefault(); break; } } - if (index == static_cast( m_shadows.size() )) - m_shadows.push_back(EngineShadow()); + if (index == static_cast( m_shadowSpots.size() )) + m_shadowSpots.push_back(EngineShadow()); - m_shadows[index].used = true; - m_shadows[index].objRank = objRank; - m_shadows[index].height = 0.0f; + m_shadowSpots[index].used = true; + m_shadowSpots[index].objRank = objRank; + m_shadowSpots[index].height = 0.0f; m_objects[objRank].shadowRank = index; } -void CEngine::DeleteShadow(int objRank) +void CEngine::DeleteShadowSpot(int objRank) { assert(objRank >= 0 && objRank < static_cast( m_objects.size() )); @@ -1317,15 +1317,15 @@ void CEngine::DeleteShadow(int objRank) if (shadowRank == -1) return; - assert(shadowRank >= 0 && shadowRank < static_cast( m_shadows.size() )); + assert(shadowRank >= 0 && shadowRank < static_cast( m_shadowSpots.size() )); - m_shadows[shadowRank].used = false; - m_shadows[shadowRank].objRank = -1; + m_shadowSpots[shadowRank].used = false; + m_shadowSpots[shadowRank].objRank = -1; m_objects[objRank].shadowRank = -1; } -void CEngine::SetObjectShadowHide(int objRank, bool hide) +void CEngine::SetObjectShadowSpotHide(int objRank, bool hide) { assert(objRank >= 0 && objRank < static_cast( m_objects.size() )); @@ -1333,12 +1333,12 @@ void CEngine::SetObjectShadowHide(int objRank, bool hide) if (shadowRank == -1) return; - assert(shadowRank >= 0 && shadowRank < static_cast( m_shadows.size() )); + assert(shadowRank >= 0 && shadowRank < static_cast( m_shadowSpots.size() )); - m_shadows[shadowRank].hide = hide; + m_shadowSpots[shadowRank].hide = hide; } -void CEngine::SetObjectShadowType(int objRank, EngineShadowType type) +void CEngine::SetObjectShadowSpotType(int objRank, EngineShadowType type) { assert(objRank >= 0 && objRank < static_cast( m_objects.size() )); @@ -1346,12 +1346,12 @@ void CEngine::SetObjectShadowType(int objRank, EngineShadowType type) if (shadowRank == -1) return; - assert(shadowRank >= 0 && shadowRank < static_cast( m_shadows.size() )); + assert(shadowRank >= 0 && shadowRank < static_cast( m_shadowSpots.size() )); - m_shadows[shadowRank].type = type; + m_shadowSpots[shadowRank].type = type; } -void CEngine::SetObjectShadowPos(int objRank, const Math::Vector& pos) +void CEngine::SetObjectShadowSpotPos(int objRank, const Math::Vector& pos) { assert(objRank >= 0 && objRank < static_cast( m_objects.size() )); @@ -1359,12 +1359,12 @@ void CEngine::SetObjectShadowPos(int objRank, const Math::Vector& pos) if (shadowRank == -1) return; - assert(shadowRank >= 0 && shadowRank < static_cast( m_shadows.size() )); + assert(shadowRank >= 0 && shadowRank < static_cast( m_shadowSpots.size() )); - m_shadows[shadowRank].pos = pos; + m_shadowSpots[shadowRank].pos = pos; } -void CEngine::SetObjectShadowAngle(int objRank, float angle) +void CEngine::SetObjectShadowSpotAngle(int objRank, float angle) { assert(objRank >= 0 && objRank < static_cast( m_objects.size() )); @@ -1372,12 +1372,12 @@ void CEngine::SetObjectShadowAngle(int objRank, float angle) if (shadowRank == -1) return; - assert(shadowRank >= 0 && shadowRank < static_cast( m_shadows.size() )); + assert(shadowRank >= 0 && shadowRank < static_cast( m_shadowSpots.size() )); - m_shadows[shadowRank].angle = angle; + m_shadowSpots[shadowRank].angle = angle; } -void CEngine::SetObjectShadowRadius(int objRank, float radius) +void CEngine::SetObjectShadowSpotRadius(int objRank, float radius) { assert(objRank >= 0 && objRank < static_cast( m_objects.size() )); @@ -1385,12 +1385,12 @@ void CEngine::SetObjectShadowRadius(int objRank, float radius) if (shadowRank == -1) return; - assert(shadowRank >= 0 && shadowRank < static_cast( m_shadows.size() )); + assert(shadowRank >= 0 && shadowRank < static_cast( m_shadowSpots.size() )); - m_shadows[shadowRank].radius = radius; + m_shadowSpots[shadowRank].radius = radius; } -void CEngine::SetObjectShadowIntensity(int objRank, float intensity) +void CEngine::SetObjectShadowSpotIntensity(int objRank, float intensity) { assert(objRank >= 0 && objRank < static_cast( m_objects.size() )); @@ -1398,12 +1398,12 @@ void CEngine::SetObjectShadowIntensity(int objRank, float intensity) if (shadowRank == -1) return; - assert(shadowRank >= 0 && shadowRank < static_cast( m_shadows.size() )); + assert(shadowRank >= 0 && shadowRank < static_cast( m_shadowSpots.size() )); - m_shadows[shadowRank].intensity = intensity; + m_shadowSpots[shadowRank].intensity = intensity; } -void CEngine::SetObjectShadowHeight(int objRank, float height) +void CEngine::SetObjectShadowSpotHeight(int objRank, float height) { assert(objRank >= 0 && objRank < static_cast( m_objects.size() )); @@ -1411,9 +1411,9 @@ void CEngine::SetObjectShadowHeight(int objRank, float height) if (shadowRank == -1) return; - assert(shadowRank >= 0 && shadowRank < static_cast( m_shadows.size() )); + assert(shadowRank >= 0 && shadowRank < static_cast( m_shadowSpots.size() )); - m_shadows[shadowRank].height = height; + m_shadowSpots[shadowRank].height = height; } bool CEngine::GetHighlight(Math::Point &p1, Math::Point &p2) @@ -4182,12 +4182,12 @@ void CEngine::DrawShadowSpots() float endDeepView = m_deepView[m_rankView]; float lastIntensity = -1.0f; - for (int i = 0; i < static_cast( m_shadows.size() ); i++) + for (int i = 0; i < static_cast( m_shadowSpots.size() ); i++) { - if (m_shadows[i].hide || !m_shadows[i].used) + if (m_shadowSpots[i].hide || !m_shadowSpots[i].used) continue; - Math::Vector pos = m_shadows[i].pos; // pos = center of the shadow on the ground + Math::Vector pos = m_shadowSpots[i].pos; // pos = center of the shadow on the ground if (m_eyePt.y == pos.y) continue; // camera at the same level? @@ -4200,7 +4200,7 @@ void CEngine::DrawShadowSpots() if (m_eyePt.y > pos.y) // camera on? { float height = m_eyePt.y-pos.y; - float h = m_shadows[i].radius; + float h = m_shadowSpots[i].radius; float max = height*0.5f; if ( h > max ) h = max; if ( h > 4.0f ) h = 4.0f; @@ -4218,7 +4218,7 @@ void CEngine::DrawShadowSpots() else // camera underneath? { float height = pos.y-m_eyePt.y; - float h = m_shadows[i].radius; + float h = m_shadowSpots[i].radius; float max = height*0.1f; if ( h > max ) h = max; if ( h > 4.0f ) h = 4.0f; @@ -4236,20 +4236,20 @@ void CEngine::DrawShadowSpots() // The hFactor decreases the intensity and size increases more // the object is high relative to the ground. - float hFactor = m_shadows[i].height/20.0f; + float hFactor = m_shadowSpots[i].height/20.0f; if ( hFactor < 0.0f ) hFactor = 0.0f; if ( hFactor > 1.0f ) hFactor = 1.0f; hFactor = powf(1.0f-hFactor, 2.0f); if ( hFactor < 0.2f ) hFactor = 0.2f; - float radius = m_shadows[i].radius*1.5f; + float radius = m_shadowSpots[i].radius*1.5f; radius *= 2.0f-hFactor; // greater if high radius *= 1.0f-d/D; // smaller if close Math::Vector corner[4]; - if (m_shadows[i].type == ENG_SHADOW_NORM) + if (m_shadowSpots[i].type == ENG_SHADOW_NORM) { corner[0].x = +radius; corner[0].z = +radius; @@ -4274,27 +4274,27 @@ void CEngine::DrawShadowSpots() { Math::Point rot; - rot = Math::RotatePoint(-m_shadows[i].angle, Math::Point(radius, radius)); + rot = Math::RotatePoint(-m_shadowSpots[i].angle, Math::Point(radius, radius)); corner[0].x = rot.x; corner[0].z = rot.y; corner[0].y = 0.0f; - rot = Math::RotatePoint(-m_shadows[i].angle, Math::Point(-radius, radius)); + rot = Math::RotatePoint(-m_shadowSpots[i].angle, Math::Point(-radius, radius)); corner[1].x = rot.x; corner[1].z = rot.y; corner[1].y = 0.0f; - rot = Math::RotatePoint(-m_shadows[i].angle, Math::Point(radius, -radius)); + rot = Math::RotatePoint(-m_shadowSpots[i].angle, Math::Point(radius, -radius)); corner[2].x = rot.x; corner[2].z = rot.y; corner[2].y = 0.0f; - rot = Math::RotatePoint(-m_shadows[i].angle, Math::Point(-radius, -radius)); + rot = Math::RotatePoint(-m_shadowSpots[i].angle, Math::Point(-radius, -radius)); corner[3].x = rot.x; corner[3].z = rot.y; corner[3].y = 0.0f; - if (m_shadows[i].type == ENG_SHADOW_WORM) + if (m_shadowSpots[i].type == ENG_SHADOW_WORM) { ts.x = 96.0f/256.0f; ti.x = 128.0f/256.0f; @@ -4306,10 +4306,10 @@ void CEngine::DrawShadowSpots() } } - corner[0] = Math::CrossProduct(corner[0], m_shadows[i].normal); - corner[1] = Math::CrossProduct(corner[1], m_shadows[i].normal); - corner[2] = Math::CrossProduct(corner[2], m_shadows[i].normal); - corner[3] = Math::CrossProduct(corner[3], m_shadows[i].normal); + corner[0] = Math::CrossProduct(corner[0], m_shadowSpots[i].normal); + corner[1] = Math::CrossProduct(corner[1], m_shadowSpots[i].normal); + corner[2] = Math::CrossProduct(corner[2], m_shadowSpots[i].normal); + corner[3] = Math::CrossProduct(corner[3], m_shadowSpots[i].normal); corner[0] += pos; corner[1] += pos; @@ -4327,7 +4327,7 @@ void CEngine::DrawShadowSpots() Vertex(corner[2], n, Math::Point(ti.x, ti.y)) }; - float intensity = (0.5f+m_shadows[i].intensity*0.5f)*hFactor; + float intensity = (0.5f+m_shadowSpots[i].intensity*0.5f)*hFactor; // Decreases the intensity of the shade if you're in the area // between the beginning and the end of the fog. @@ -4912,7 +4912,7 @@ int CEngine::GetEngineState(const ModelTriangle& triangle) return state; } -void CEngine::UpdateObjectShadowNormal(int rank) +void CEngine::UpdateObjectShadowSpotNormal(int rank) { assert(rank >= 0 && rank < static_cast( m_objects.size() )); @@ -4920,13 +4920,13 @@ void CEngine::UpdateObjectShadowNormal(int rank) if (shadowRank == -1) return; - assert(shadowRank >= 0 && shadowRank < static_cast( m_shadows.size() )); + assert(shadowRank >= 0 && shadowRank < static_cast( m_shadowSpots.size() )); // Calculating the normal to the ground in nine strategic locations, // then perform a weighted average (the dots in the center are more important). - Math::Vector pos = m_shadows[shadowRank].pos; - float radius = m_shadows[shadowRank].radius; + Math::Vector pos = m_shadowSpots[shadowRank].pos; + float radius = m_shadowSpots[shadowRank].radius; Math::Vector n[20]; Math::Vector norm; @@ -4996,7 +4996,7 @@ void CEngine::UpdateObjectShadowNormal(int rank) } norm /= static_cast(i); // average vector - m_shadows[shadowRank].normal = norm; + m_shadowSpots[shadowRank].normal = norm; } int CEngine::AddStaticMesh(const std::string& key, const CModelMesh* mesh, const Math::Matrix& worldMatrix) @@ -5027,20 +5027,20 @@ void CEngine::AddStaticMeshShadowSpot(int meshHandle, const ModelShadowSpot& sha { int objRank = meshHandle; - CreateShadow(objRank); - SetObjectShadowRadius(objRank, shadowSpot.radius); - SetObjectShadowIntensity(objRank, shadowSpot.intensity); - SetObjectShadowType(objRank, ENG_SHADOW_NORM); - SetObjectShadowHeight(objRank, 0.0f); - SetObjectShadowAngle(objRank, 0.0f); - UpdateObjectShadowNormal(objRank); + CreateShadowSpot(objRank); + SetObjectShadowSpotRadius(objRank, shadowSpot.radius); + SetObjectShadowSpotIntensity(objRank, shadowSpot.intensity); + SetObjectShadowSpotType(objRank, ENG_SHADOW_NORM); + SetObjectShadowSpotHeight(objRank, 0.0f); + SetObjectShadowSpotAngle(objRank, 0.0f); + UpdateObjectShadowSpotNormal(objRank); } void CEngine::DeleteStaticMesh(int meshHandle) { int objRank = meshHandle; - DeleteShadow(objRank); + DeleteShadowSpot(objRank); DeleteObject(objRank); } diff --git a/src/graphics/engine/engine.h b/src/graphics/engine/engine.h index 02e2020d..2e4ab688 100644 --- a/src/graphics/engine/engine.h +++ b/src/graphics/engine/engine.h @@ -842,20 +842,20 @@ public: int DetectObject(Math::Point mouse); //! Creates a shadow for the given object - void CreateShadow(int objRank); + void CreateShadowSpot(int objRank); //! Deletes the shadow for given object - void DeleteShadow(int objRank); + void DeleteShadowSpot(int objRank); //@{ //! Management of different shadow params - void SetObjectShadowHide(int objRank, bool hide); - void SetObjectShadowType(int objRank, EngineShadowType type); - void SetObjectShadowPos(int objRank, const Math::Vector& pos); - void SetObjectShadowAngle(int objRank, float angle); - void SetObjectShadowRadius(int objRank, float radius); - void SetObjectShadowIntensity(int objRank, float intensity); - void SetObjectShadowHeight(int objRank, float height); - void UpdateObjectShadowNormal(int objRank); + void SetObjectShadowSpotHide(int objRank, bool hide); + void SetObjectShadowSpotType(int objRank, EngineShadowType type); + void SetObjectShadowSpotPos(int objRank, const Math::Vector& pos); + void SetObjectShadowSpotAngle(int objRank, float angle); + void SetObjectShadowSpotRadius(int objRank, float radius); + void SetObjectShadowSpotIntensity(int objRank, float intensity); + void SetObjectShadowSpotHeight(int objRank, float height); + void UpdateObjectShadowSpotNormal(int objRank); //@} //! Lists the ranks of objects and subobjects selected @@ -1330,7 +1330,7 @@ protected: //! Object parameters std::vector m_objects; //! Shadow list - std::vector m_shadows; + std::vector m_shadowSpots; //! Ground spot list std::vector m_groundSpots; //! Ground mark diff --git a/src/graphics/engine/pyro.cpp b/src/graphics/engine/pyro.cpp index 1647d4fb..565693aa 100644 --- a/src/graphics/engine/pyro.cpp +++ b/src/graphics/engine/pyro.cpp @@ -257,7 +257,7 @@ bool CPyro::Create(PyroType type, CObject* obj, float force) m_type == PT_FRAGO || m_type == PT_FRAGW ) { - m_engine->DeleteShadow(m_object->GetObjectRank(0)); + m_engine->DeleteShadowSpot(m_object->GetObjectRank(0)); } if ( m_type == PT_DEADG ) @@ -345,7 +345,7 @@ bool CPyro::Create(PyroType type, CObject* obj, float force) m_type == PT_EXPLOW ) { CreateTriangle(obj, oType, 0); - m_engine->DeleteShadow(m_object->GetObjectRank(0)); + m_engine->DeleteShadowSpot(m_object->GetObjectRank(0)); ExploStart(); } @@ -376,7 +376,7 @@ bool CPyro::Create(PyroType type, CObject* obj, float force) Math::Matrix* mat = obj->GetWorldMatrix(0); m_pos = Math::Transform(*mat, pos); - m_engine->DeleteShadow(m_object->GetObjectRank(0)); + m_engine->DeleteShadowSpot(m_object->GetObjectRank(0)); } if ( m_type != PT_EGG && diff --git a/src/object/motion/motionworm.cpp b/src/object/motion/motionworm.cpp index c98b060b..c25d03f4 100644 --- a/src/object/motion/motionworm.cpp +++ b/src/object/motion/motionworm.cpp @@ -291,7 +291,7 @@ bool CMotionWorm::EventFrame(const Event &event) radius = radius*1.3f-0.3f; if ( radius < 0.0f ) radius = 0.0f; radius *= 5.0f; - m_engine->SetObjectShadowRadius(m_object->GetObjectRank(0), radius); + m_engine->SetObjectShadowSpotRadius(m_object->GetObjectRank(0), radius); pos.x = px+ sinf(m_armTimeMarch*4.0f+0.5f*i)*0.6f; pos.y = height[i]+sinf(m_armTimeMarch*4.0f+0.5f*i)*0.2f*m_armLinSpeed; diff --git a/src/object/old_object.cpp b/src/object/old_object.cpp index b1c831e3..d85e4a4e 100644 --- a/src/object/old_object.cpp +++ b/src/object/old_object.cpp @@ -1290,16 +1290,16 @@ void COldObject::SetPartPosition(int part, const Math::Vector &pos) Math::Vector shPos = pos; m_terrain->AdjustToFloor(shPos, true); - m_engine->SetObjectShadowPos(rank, shPos); + m_engine->SetObjectShadowSpotPos(rank, shPos); float height = 0.0f; if ( Implements(ObjectInterfaceType::Flying) ) { height = pos.y-shPos.y; } - m_engine->SetObjectShadowHeight(rank, height); + m_engine->SetObjectShadowSpotHeight(rank, height); - m_engine->UpdateObjectShadowNormal(rank); + m_engine->UpdateObjectShadowSpotNormal(rank); if ( m_shadowLight != -1 ) { @@ -1331,7 +1331,7 @@ void COldObject::SetPartRotation(int part, const Math::Vector &angle) if ( part == 0 && !m_bFlat ) // main part? { - m_engine->SetObjectShadowAngle(m_objectPart[0].object, m_objectPart[0].angle.y); + m_engine->SetObjectShadowSpotAngle(m_objectPart[0].object, m_objectPart[0].angle.y); } } @@ -1349,7 +1349,7 @@ void COldObject::SetPartRotationY(int part, float angle) if ( part == 0 && !m_bFlat ) // main part? { - m_engine->SetObjectShadowAngle(m_objectPart[0].object, m_objectPart[0].angle.y); + m_engine->SetObjectShadowSpotAngle(m_objectPart[0].object, m_objectPart[0].angle.y); } } @@ -1533,7 +1533,7 @@ void COldObject::SetTransporter(CObject* transporter) m_transporter = transporter; // Invisible shadow if the object is transported. - m_engine->SetObjectShadowHide(m_objectPart[0].object, (m_transporter != 0)); + m_engine->SetObjectShadowSpotHide(m_objectPart[0].object, (m_transporter != 0)); } CObject* COldObject::GetTransporter() @@ -1678,13 +1678,13 @@ bool COldObject::CreateShadowCircle(float radius, float intensity, zoom = GetScaleX(); - m_engine->CreateShadow(m_objectPart[0].object); + m_engine->CreateShadowSpot(m_objectPart[0].object); - m_engine->SetObjectShadowRadius(m_objectPart[0].object, radius*zoom); - m_engine->SetObjectShadowIntensity(m_objectPart[0].object, intensity); - m_engine->SetObjectShadowHeight(m_objectPart[0].object, 0.0f); - m_engine->SetObjectShadowAngle(m_objectPart[0].object, m_objectPart[0].angle.y); - m_engine->SetObjectShadowType(m_objectPart[0].object, type); + m_engine->SetObjectShadowSpotRadius(m_objectPart[0].object, radius*zoom); + m_engine->SetObjectShadowSpotIntensity(m_objectPart[0].object, intensity); + m_engine->SetObjectShadowSpotHeight(m_objectPart[0].object, 0.0f); + m_engine->SetObjectShadowSpotAngle(m_objectPart[0].object, m_objectPart[0].angle.y); + m_engine->SetObjectShadowSpotType(m_objectPart[0].object, type); return true; }