diff options
author | krzys-h <krzys_h@interia.pl> | 2014-10-22 17:52:17 +0200 |
---|---|---|
committer | krzys-h <krzys_h@interia.pl> | 2014-10-22 17:52:17 +0200 |
commit | 2d043d46bb85f486847300080e4d58add49c0a44 (patch) | |
tree | b79da960c4d3b7d0452b0a199be19da61133df30 | |
parent | d3a722a0c56119f13d5ff3e68e9f4560c7924788 (diff) | |
parent | d019a4990f2e2da71555daf085a3e09c92085fa5 (diff) | |
download | colobot-2d043d46bb85f486847300080e4d58add49c0a44.tar.gz colobot-2d043d46bb85f486847300080e4d58add49c0a44.tar.bz2 colobot-2d043d46bb85f486847300080e4d58add49c0a44.zip |
Merge branch 'vieux-blood_mode' into dev
Conflicts:
src/common/restext.cpp
src/ui/maindialog.cpp
-rw-r--r-- | src/common/event.h | 1 | ||||
-rw-r--r-- | src/common/restext.cpp | 1 | ||||
-rw-r--r-- | src/graphics/engine/camera.cpp | 10 | ||||
-rw-r--r-- | src/graphics/engine/camera.h | 4 | ||||
-rw-r--r-- | src/graphics/engine/pyro.cpp | 6 | ||||
-rw-r--r-- | src/ui/maindialog.cpp | 23 | ||||
-rw-r--r-- | src/ui/maindialog.h | 1 |
7 files changed, 43 insertions, 3 deletions
diff --git a/src/common/event.h b/src/common/event.h index 7637e34..bb9e123 100644 --- a/src/common/event.h +++ b/src/common/event.h @@ -240,6 +240,7 @@ enum EventType EVENT_INTERFACE_EDITMODE= 476, EVENT_INTERFACE_EDITVALUE= 477, EVENT_INTERFACE_SOLUCE4 = 478, + EVENT_INTERFACE_BLOOD = 479, EVENT_INTERFACE_KINFO1 = 500, EVENT_INTERFACE_KINFO2 = 501, diff --git a/src/common/restext.cpp b/src/common/restext.cpp index dcecb81..95e015c 100644 --- a/src/common/restext.cpp +++ b/src/common/restext.cpp @@ -205,6 +205,7 @@ void InitializeRestext() stringsEvent[EVENT_INTERFACE_EDITMODE] = TR("Automatic indent\\When program editing"); stringsEvent[EVENT_INTERFACE_EDITVALUE] = TR("Big indent\\Indent 2 or 4 spaces per level defined by braces"); stringsEvent[EVENT_INTERFACE_SOLUCE4] = TR("Access to solutions\\Show program \"4: Solution\" in the exercises"); + stringsEvent[EVENT_INTERFACE_BLOOD] = TR("Blood\\Display blood when the astronaut or the alien queen is hit"); stringsEvent[EVENT_INTERFACE_KDEF] = TR("Standard controls\\Standard key functions"); stringsEvent[EVENT_INTERFACE_KLEFT] = TR("Turn left\\turns the bot to the left"); diff --git a/src/graphics/engine/camera.cpp b/src/graphics/engine/camera.cpp index b7769ab..6464b22 100644 --- a/src/graphics/engine/camera.cpp +++ b/src/graphics/engine/camera.cpp @@ -139,6 +139,7 @@ CCamera::CCamera() m_scriptLookat = Math::Vector(0.0f, 0.0f, 0.0f); m_effect = true; + m_blood = true; m_cameraScroll = true; m_cameraInvertX = false; m_cameraInvertY = false; @@ -153,6 +154,15 @@ void CCamera::SetEffect(bool enable) m_effect = enable; } +void CCamera::SetBlood(bool enable) +{ + m_blood = enable; +} + +bool CCamera::GetBlood() { + return m_blood; +} + void CCamera::SetCameraScroll(bool scroll) { m_cameraScroll = scroll; diff --git a/src/graphics/engine/camera.h b/src/graphics/engine/camera.h index 3478086..4fe821f 100644 --- a/src/graphics/engine/camera.h +++ b/src/graphics/engine/camera.h @@ -200,6 +200,8 @@ public: void SetScriptLookat(Math::Vector lookat); void SetEffect(bool enable); + void SetBlood(bool enable); + bool GetBlood(); void SetCameraScroll(bool scroll); void SetCameraInvertX(bool invert); void SetCameraInvertY(bool invert); @@ -381,6 +383,8 @@ protected: //! Shocks if explosion? bool m_effect; + //! Blood? + bool m_blood; //! Scroll in the edges? bool m_cameraScroll; //! X inversion in the edges? diff --git a/src/graphics/engine/pyro.cpp b/src/graphics/engine/pyro.cpp index 42f0e84..8d5d323 100644 --- a/src/graphics/engine/pyro.cpp +++ b/src/graphics/engine/pyro.cpp @@ -314,7 +314,7 @@ bool CPyro::Create(PyroType type, CObject* obj, float force) } if ( m_type == PT_SHOTH ) { - if ( m_object->GetSelect() ) + if ( m_camera->GetBlood() && m_object->GetSelect() ) { m_camera->StartOver(CAM_OVER_EFFECT_BLOOD, m_pos, force); } @@ -674,7 +674,7 @@ bool CPyro::EventProcess(const Event &event) } } - if ( m_type == PT_SHOTH && + if ( m_camera->GetBlood() && m_type == PT_SHOTH && m_lastParticle+m_engine->ParticleAdapt(0.05f) <= m_time ) { m_lastParticle = m_time; @@ -696,7 +696,7 @@ bool CPyro::EventProcess(const Event &event) } } - if ( m_type == PT_SHOTM && + if ( m_camera->GetBlood() && m_type == PT_SHOTM && m_lastParticle+m_engine->ParticleAdapt(0.05f) <= m_time ) { m_lastParticle = m_time; diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index cc0c8ec..fe40609 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -170,6 +170,7 @@ CMainDialog::CMainDialog() m_bCameraInvertX = false; m_bCameraInvertY = false; m_bEffect = true; + m_bBlood = true; m_shotDelay = 0; m_glintMouse = Math::Point(0.0f, 0.0f); @@ -1213,6 +1214,9 @@ void CMainDialog::ChangePhase(Phase phase) pos.y -= 0.048f; pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_EFFECT); pc->SetState(STATE_SHADOW); + pos.y -= 0.048f; + pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_BLOOD); + pc->SetState(STATE_SHADOW); //? pos.y -= 0.048f; //? pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_NICERST); //? pc->SetState(STATE_SHADOW); @@ -2535,6 +2539,13 @@ bool CMainDialog::EventProcess(const Event &event) UpdateSetupButtons(); break; + case EVENT_INTERFACE_BLOOD: + m_bBlood = !m_bBlood; + m_camera->SetBlood(m_bBlood); + ChangeSetupButtons(); + UpdateSetupButtons(); + break; + default: break; } @@ -4856,6 +4867,12 @@ void CMainDialog::UpdateSetupButtons() pc->SetState(STATE_CHECK, m_bEffect); } + pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_BLOOD)); + if ( pc != 0 ) + { + pc->SetState(STATE_CHECK, m_bBlood); + } + pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_SHADOW)); if ( pc != 0 ) { @@ -5041,6 +5058,7 @@ void CMainDialog::SetupMemorize() GetProfile().SetIntProperty("Setup", "CameraInvertX", m_bCameraInvertX); GetProfile().SetIntProperty("Setup", "CameraInvertY", m_bCameraInvertY); GetProfile().SetIntProperty("Setup", "InterfaceEffect", m_bEffect); + GetProfile().SetIntProperty("Setup", "Blood", m_bBlood); GetProfile().SetIntProperty("Setup", "GroundShadow", m_engine->GetShadow()); GetProfile().SetIntProperty("Setup", "GroundSpot", m_engine->GetGroundSpot()); GetProfile().SetIntProperty("Setup", "ObjectDirty", m_engine->GetDirty()); @@ -5189,6 +5207,11 @@ void CMainDialog::SetupRecall() m_bEffect = iValue; } + if ( GetProfile().GetIntProperty("Setup", "Blood", iValue) ) + { + m_bBlood = iValue; + } + if ( GetProfile().GetIntProperty("Setup", "GroundShadow", iValue) ) { m_engine->SetShadow(iValue); diff --git a/src/ui/maindialog.h b/src/ui/maindialog.h index 1ff9045..355b18e 100644 --- a/src/ui/maindialog.h +++ b/src/ui/maindialog.h @@ -245,6 +245,7 @@ protected: bool m_bCameraInvertX; // for CCamera bool m_bCameraInvertY; // for CCamera bool m_bEffect; // for CCamera + bool m_bBlood; // for CCamera Math::Point m_glintMouse; float m_glintTime; |