From 9b232ee3f5d8f314a47304b5a071ab95d40c7339 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Sun, 5 Jul 2015 13:00:48 +0200 Subject: [PATCH] Sound enum refactoring * rename Sound -> SoundType * add parsing string to SoundType --- src/CMakeLists.txt | 1 + src/graphics/engine/particle.cpp | 2 +- src/graphics/engine/particle.h | 2 +- src/graphics/engine/pyro.cpp | 2 +- src/object/motion/motionhuman.cpp | 2 +- src/object/motion/motiontoto.cpp | 2 +- src/object/object.h | 2 + src/object/old_object.cpp | 4 +- src/object/old_object.h | 6 +- src/object/old_object_interface.h | 6 +- src/object/task/taskgungoal.cpp | 2 +- src/physics/physics.cpp | 8 +- src/script/scriptfunc.cpp | 1 + src/sound/oalsound/alsound.cpp | 76 ++++++++-------- src/sound/oalsound/alsound.h | 23 ++--- src/sound/oalsound/buffer.cpp | 4 +- src/sound/oalsound/buffer.h | 6 +- src/sound/oalsound/channel.cpp | 4 +- src/sound/oalsound/channel.h | 2 +- src/sound/sound.cpp | 18 ++-- src/sound/sound.h | 142 +++++------------------------- src/sound/sound_type.cpp | 127 ++++++++++++++++++++++++++ src/sound/sound_type.h | 117 ++++++++++++++++++++++++ src/ui/displaytext.cpp | 2 +- src/ui/edit.cpp | 18 ++-- src/ui/studio.cpp | 26 +++--- 26 files changed, 384 insertions(+), 221 deletions(-) create mode 100644 src/sound/sound_type.cpp create mode 100644 src/sound/sound_type.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f7d79509..145130b5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -195,6 +195,7 @@ set(BASE_SOURCES script/script.cpp script/scriptfunc.cpp sound/sound.cpp + sound/sound_type.cpp ui/button.cpp ui/check.cpp ui/color.cpp diff --git a/src/graphics/engine/particle.cpp b/src/graphics/engine/particle.cpp index 31eea1c4..af936e20 100644 --- a/src/graphics/engine/particle.cpp +++ b/src/graphics/engine/particle.cpp @@ -3814,7 +3814,7 @@ CObject* CParticle::SearchObjectRay(Math::Vector pos, Math::Vector goal, return nullptr; } -void CParticle::Play(Sound sound, Math::Vector pos, float amplitude) +void CParticle::Play(SoundType sound, Math::Vector pos, float amplitude) { if (m_sound == nullptr) m_sound = CApplication::GetInstancePointer()->GetSound(); diff --git a/src/graphics/engine/particle.h b/src/graphics/engine/particle.h index c7c7cefc..00974010 100644 --- a/src/graphics/engine/particle.h +++ b/src/graphics/engine/particle.h @@ -365,7 +365,7 @@ protected: //! Seeks if an object collided with a ray CObject* SearchObjectRay(Math::Vector pos, Math::Vector goal, ParticleType type, CObject *father); //! Sounded one - void Play(Sound sound, Math::Vector pos, float amplitude); + void Play(SoundType sound, Math::Vector pos, float amplitude); //! Moves a drag; returns true if the drag is finished bool TrackMove(int i, Math::Vector pos, float progress); //! Draws a drag diff --git a/src/graphics/engine/pyro.cpp b/src/graphics/engine/pyro.cpp index 23eabaa3..dbe49ddc 100644 --- a/src/graphics/engine/pyro.cpp +++ b/src/graphics/engine/pyro.cpp @@ -192,7 +192,7 @@ bool CPyro::Create(PyroType type, CObject* obj, float force) type == PT_EXPLOT || type == PT_EXPLOW ) { - Sound sound; + SoundType sound; if ( m_power ) { sound = SOUND_EXPLOp; diff --git a/src/object/motion/motionhuman.cpp b/src/object/motion/motionhuman.cpp index d773149d..fb07734e 100644 --- a/src/object/motion/motionhuman.cpp +++ b/src/object/motion/motionhuman.cpp @@ -1615,7 +1615,7 @@ bool CMotionHuman::EventFrame(const Event &event) if ( legAction == MH_MARCH || legAction == MH_MARCHTAKE ) { - Sound sound[2]; + SoundType sound[2]; float synchro, volume[2], freq[2], hard; float speedX = m_physics->GetLinMotionX(MO_REASPEED); diff --git a/src/object/motion/motiontoto.cpp b/src/object/motion/motiontoto.cpp index 3acb4f79..1e97e2c9 100644 --- a/src/object/motion/motiontoto.cpp +++ b/src/object/motion/motiontoto.cpp @@ -824,7 +824,7 @@ bool CMotionToto::EventFrame(const Event &event) Error CMotionToto::SetAction(int action, float time) { - Sound sound; + SoundType sound; CMotion::SetAction(action, time); diff --git a/src/object/object.h b/src/object/object.h index 77189eb6..82b121a2 100644 --- a/src/object/object.h +++ b/src/object/object.h @@ -27,6 +27,7 @@ #include "object/object_interface_type.h" #include "object/old_object_interface.h" + /** * \class CObject * \brief Base class for all 3D in-game objects @@ -78,6 +79,7 @@ public: //! Reads object properties from line in level file virtual void Read(CLevelParserLine* line) = 0; + //! Check if object implements the given type of interface inline bool Implements(ObjectInterfaceType type) const { diff --git a/src/object/old_object.cpp b/src/object/old_object.cpp index f3a5f551..2e277078 100644 --- a/src/object/old_object.cpp +++ b/src/object/old_object.cpp @@ -1072,7 +1072,7 @@ void COldObject::FlushCrashShere() // Adds a new sphere. -int COldObject::CreateCrashSphere(Math::Vector pos, float radius, Sound sound, +int COldObject::CreateCrashSphere(Math::Vector pos, float radius, SoundType sound, float hardness) { float zoom; @@ -1132,7 +1132,7 @@ bool COldObject::GetCrashSphere(int rank, Math::Vector &pos, float &radius) // Returns the hardness of a sphere. -Sound COldObject::GetCrashSphereSound(int rank) +SoundType COldObject::GetCrashSphereSound(int rank) { return m_crashSphereSound[rank]; } diff --git a/src/object/old_object.h b/src/object/old_object.h index 1889dfe6..7c5a8a37 100644 --- a/src/object/old_object.h +++ b/src/object/old_object.h @@ -103,11 +103,11 @@ public: int GetEffectLight() override; void FlushCrashShere() override; - int CreateCrashSphere(Math::Vector pos, float radius, Sound sound, float hardness=0.45f) override; + int CreateCrashSphere(Math::Vector pos, float radius, SoundType sound, float hardness=0.45f) override; int GetCrashSphereTotal() override; bool GetCrashSphere(int rank, Math::Vector &pos, float &radius) override; float GetCrashSphereHardness(int rank) override; - Sound GetCrashSphereSound(int rank) override; + SoundType GetCrashSphereSound(int rank) override; void SetGlobalSphere(Math::Vector pos, float radius) override; void GetGlobalSphere(Math::Vector &pos, float &radius) override; void GetJostlingSphere(Math::Vector &pos, float &radius) override; @@ -395,7 +395,7 @@ protected: Math::Vector m_crashSpherePos[MAXCRASHSPHERE]; float m_crashSphereRadius[MAXCRASHSPHERE]; float m_crashSphereHardness[MAXCRASHSPHERE]; - Sound m_crashSphereSound[MAXCRASHSPHERE]; + SoundType m_crashSphereSound[MAXCRASHSPHERE]; Math::Vector m_globalSpherePos; float m_globalSphereRadius; Math::Vector m_jostlingSpherePos; diff --git a/src/object/old_object_interface.h b/src/object/old_object_interface.h index 90c635cd..fcb03c5a 100644 --- a/src/object/old_object_interface.h +++ b/src/object/old_object_interface.h @@ -30,7 +30,7 @@ #include "object/object_type.h" -#include "sound/sound.h" +#include "sound/sound_type.h" #include @@ -99,11 +99,11 @@ public: virtual int GetEffectLight() = 0; virtual void FlushCrashShere() = 0; - virtual int CreateCrashSphere(Math::Vector pos, float radius, Sound sound, float hardness=0.45f) = 0; + virtual int CreateCrashSphere(Math::Vector pos, float radius, SoundType sound, float hardness=0.45f) = 0; virtual int GetCrashSphereTotal() = 0; virtual bool GetCrashSphere(int rank, Math::Vector &pos, float &radius) = 0; virtual float GetCrashSphereHardness(int rank) = 0; - virtual Sound GetCrashSphereSound(int rank) = 0; + virtual SoundType GetCrashSphereSound(int rank) = 0; virtual void SetGlobalSphere(Math::Vector pos, float radius) = 0; virtual void GetGlobalSphere(Math::Vector &pos, float &radius) = 0; virtual void GetJostlingSphere(Math::Vector &pos, float &radius) = 0; diff --git a/src/object/task/taskgungoal.cpp b/src/object/task/taskgungoal.cpp index f4e4aa6c..4209a4e0 100644 --- a/src/object/task/taskgungoal.cpp +++ b/src/object/task/taskgungoal.cpp @@ -22,7 +22,7 @@ #include "object/object.h" - +#include "sound/sound.h" // Object's constructor. diff --git a/src/physics/physics.cpp b/src/physics/physics.cpp index 1523f8bd..16a957da 100644 --- a/src/physics/physics.cpp +++ b/src/physics/physics.cpp @@ -1862,7 +1862,7 @@ void CPhysics::WaterFrame(float aTime, float rTime) void CPhysics::SoundMotorFull(float rTime, ObjectType type) { - Sound sound; + SoundType sound; float amplitude, time, freq; if ( type == OBJECT_MOBILEia || @@ -1976,7 +1976,7 @@ void CPhysics::SoundMotorSlow(float rTime, ObjectType type) Math::Matrix* mat; Math::Vector pos, speed; Math::Point dim; - Sound sound; + SoundType sound; float amplitude; int i, max; @@ -2129,7 +2129,7 @@ void CPhysics::SoundMotorStop(float rTime, ObjectType type) void CPhysics::SoundReactorFull(float rTime, ObjectType type) { - Sound sound; + SoundType sound; Math::Matrix* mat; Math::Vector pos, speed; Math::Point dim; @@ -2512,7 +2512,7 @@ int CPhysics::ObjectAdapt(const Math::Vector &pos, const Math::Vector &angle) CPhysics* ph; Math::Matrix matRotate; Math::Vector iPos, oPos, iiPos, oAngle, oSpeed; - Sound sound; + SoundType sound; float iRad, oRad, distance, force, volume; int j, colType; ObjectType iType, oType; diff --git a/src/script/scriptfunc.cpp b/src/script/scriptfunc.cpp index 74ac9290..9a2e5184 100644 --- a/src/script/scriptfunc.cpp +++ b/src/script/scriptfunc.cpp @@ -23,6 +23,7 @@ #include "app/app.h" #include "common/config.h" +#include "common/logger.h" #include "common/pathman.h" #include "common/resources/inputstream.h" #include "common/resources/resourcemanager.h" diff --git a/src/sound/oalsound/alsound.cpp b/src/sound/oalsound/alsound.cpp index 6dd991bb..a87ce4e2 100644 --- a/src/sound/oalsound/alsound.cpp +++ b/src/sound/oalsound/alsound.cpp @@ -156,7 +156,7 @@ int ALSound::GetMusicVolume() } -bool ALSound::Cache(Sound sound, const std::string &filename) +bool ALSound::Cache(SoundType sound, const std::string &filename) { Buffer *buffer = new Buffer(); if (buffer->LoadFromFile(filename, sound)) @@ -172,7 +172,7 @@ bool ALSound::CacheMusic(const std::string &filename) if (m_music.find("music/"+filename) == m_music.end()) { Buffer *buffer = new Buffer(); - if (buffer->LoadFromFile("music/"+filename, static_cast(-1))) + if (buffer->LoadFromFile("music/"+filename, static_cast(-1))) { m_music["music/"+filename] = buffer; return true; @@ -181,7 +181,7 @@ bool ALSound::CacheMusic(const std::string &filename) return false; } -bool ALSound::IsCached(Sound sound) +bool ALSound::IsCached(SoundType sound) { return m_sounds.find(sound) != m_sounds.end(); } @@ -191,7 +191,7 @@ bool ALSound::IsCachedMusic(const std::string &filename) return m_music.find("music/"+filename) != m_music.end(); } -int ALSound::GetPriority(Sound sound) +int ALSound::GetPriority(SoundType sound) { if ( sound == SOUND_FLYh || sound == SOUND_FLY || @@ -240,7 +240,7 @@ int ALSound::GetPriority(Sound sound) } -bool ALSound::SearchFreeBuffer(Sound sound, int &channel, bool &bAlreadyLoaded) +bool ALSound::SearchFreeBuffer(SoundType sound, int &channel, bool &alreadyLoaded) { int priority = GetPriority(sound); @@ -259,7 +259,7 @@ bool ALSound::SearchFreeBuffer(Sound sound, int &channel, bool &bAlreadyLoaded) it.second->SetPriority(priority); it.second->Reset(); channel = it.first; - bAlreadyLoaded = it.second->IsLoaded(); + alreadyLoaded = it.second->IsLoaded(); return true; } @@ -274,7 +274,7 @@ bool ALSound::SearchFreeBuffer(Sound sound, int &channel, bool &bAlreadyLoaded) chn->Reset(); m_channels[1] = chn; channel = 1; - bAlreadyLoaded = false; + alreadyLoaded = false; return true; } delete chn; @@ -300,7 +300,7 @@ bool ALSound::SearchFreeBuffer(Sound sound, int &channel, bool &bAlreadyLoaded) chn->Reset(); m_channels[++i] = chn; channel = i; - bAlreadyLoaded = false; + alreadyLoaded = false; return true; } delete chn; @@ -337,13 +337,13 @@ bool ALSound::SearchFreeBuffer(Sound sound, int &channel, bool &bAlreadyLoaded) } -int ALSound::Play(Sound sound, float amplitude, float frequency, bool bLoop) +int ALSound::Play(SoundType sound, float amplitude, float frequency, bool loop) { - return Play(sound, m_eye, amplitude, frequency, bLoop); + return Play(sound, m_eye, amplitude, frequency, loop); } -int ALSound::Play(Sound sound, const Math::Vector &pos, float amplitude, float frequency, bool bLoop) +int ALSound::Play(SoundType sound, const Math::Vector &pos, float amplitude, float frequency, bool loop) { if (!m_enabled) { @@ -356,13 +356,13 @@ int ALSound::Play(Sound sound, const Math::Vector &pos, float amplitude, float f } int channel; - bool bAlreadyLoaded = false; - if (!SearchFreeBuffer(sound, channel, bAlreadyLoaded)) + bool alreadyLoaded = false; + if (!SearchFreeBuffer(sound, channel, alreadyLoaded)) { return -1; } - if (!bAlreadyLoaded) + if (!alreadyLoaded) { if (!m_channels[channel]->SetBuffer(m_sounds[sound])) { @@ -381,7 +381,7 @@ int ALSound::Play(Sound sound, const Math::Vector &pos, float amplitude, float f m_channels[channel]->ResetOper(); m_channels[channel]->SetFrequency(frequency); m_channels[channel]->SetVolume(powf(amplitude * m_channels[channel]->GetVolumeAtrib(), 0.2f) * m_audioVolume); - m_channels[channel]->SetLoop(bLoop); + m_channels[channel]->SetLoop(loop); if (!m_channels[channel]->Play()) { @@ -485,7 +485,7 @@ bool ALSound::StopAll() } -bool ALSound::MuteAll(bool bMute) +bool ALSound::MuteAll(bool mute) { if (!m_enabled) { @@ -496,7 +496,7 @@ bool ALSound::MuteAll(bool bMute) { if (it.second->IsPlaying()) { - it.second->Mute(bMute); + it.second->Mute(mute); } } @@ -566,9 +566,9 @@ void ALSound::FrameMove(float delta) } } } - + std::list toRemove; - + for (auto& it : m_oldMusic) { if (it.currentTime >= it.fadeTime) @@ -582,7 +582,7 @@ void ALSound::FrameMove(float delta) it.music->SetVolume(((it.fadeTime-it.currentTime) / it.fadeTime) * m_musicVolume); } } - + if (m_previousMusic.fadeTime > 0.0f) { if (m_previousMusic.currentTime >= m_previousMusic.fadeTime) { @@ -594,7 +594,7 @@ void ALSound::FrameMove(float delta) m_previousMusic.music->SetVolume(((m_previousMusic.fadeTime-m_previousMusic.currentTime) / m_previousMusic.fadeTime) * m_musicVolume); } } - + for (auto it : toRemove) m_oldMusic.remove(it); } @@ -613,11 +613,11 @@ void ALSound::SetListener(const Math::Vector &eye, const Math::Vector &lookat) } -bool ALSound::PlayMusic(int rank, bool bRepeat, float fadeTime) +bool ALSound::PlayMusic(int rank, bool repeat, float fadeTime) { std::stringstream filename; filename << "music" << std::setfill('0') << std::setw(3) << rank << ".ogg"; - return PlayMusic(filename.str(), bRepeat, fadeTime); + return PlayMusic(filename.str(), repeat, fadeTime); } @@ -633,7 +633,7 @@ bool operator==(const OldMusic & l, const OldMusic & r) } -bool ALSound::PlayMusic(const std::string &filename, bool bRepeat, float fadeTime) +bool ALSound::PlayMusic(const std::string &filename, bool repeat, float fadeTime) { if (!m_enabled) { @@ -653,7 +653,7 @@ bool ALSound::PlayMusic(const std::string &filename, bool bRepeat, float fadeTim } */ buffer = new Buffer(); - if (!buffer->LoadFromFile("music/"+filename, static_cast(-1))) + if (!buffer->LoadFromFile("music/"+filename, static_cast(-1))) { return false; } @@ -677,7 +677,7 @@ bool ALSound::PlayMusic(const std::string &filename, bool bRepeat, float fadeTim m_currentMusic = new Channel(); m_currentMusic->SetBuffer(buffer); m_currentMusic->SetVolume(m_musicVolume); - m_currentMusic->SetLoop(bRepeat); + m_currentMusic->SetLoop(repeat); m_currentMusic->Play(); return true; @@ -688,15 +688,15 @@ bool ALSound::PlayPauseMusic(const std::string &filename, bool repeat) { if (m_previousMusic.fadeTime > 0.0f) { - if(m_currentMusic) - { - OldMusic old; - old.music = m_currentMusic; - old.fadeTime = 2.0f; - old.currentTime = 0.0f; - m_oldMusic.push_back(old); - m_currentMusic = nullptr; - } + if (m_currentMusic) + { + OldMusic old; + old.music = m_currentMusic; + old.fadeTime = 2.0f; + old.currentTime = 0.0f; + m_oldMusic.push_back(old); + m_currentMusic = nullptr; + } } else { @@ -720,10 +720,10 @@ void ALSound::StopPauseMusic() m_currentMusic = m_previousMusic.music; m_previousMusic.music = nullptr; - if(m_currentMusic != nullptr) + if (m_currentMusic != nullptr) { m_currentMusic->SetVolume(m_musicVolume); - if(m_previousMusic.currentTime >= m_previousMusic.fadeTime) + if (m_previousMusic.currentTime >= m_previousMusic.fadeTime) { m_currentMusic->Play(); } @@ -758,7 +758,7 @@ void ALSound::StopMusic(float fadeTime) old.fadeTime = fadeTime; old.currentTime = 0.0f; m_oldMusic.push_back(old); - + m_currentMusic = nullptr; } diff --git a/src/sound/oalsound/alsound.h b/src/sound/oalsound/alsound.h index 895b5ac3..35ac9d3a 100644 --- a/src/sound/oalsound/alsound.h +++ b/src/sound/oalsound/alsound.h @@ -38,7 +38,8 @@ #include -struct OldMusic { +struct OldMusic +{ Channel* music; float fadeTime; float currentTime; @@ -51,9 +52,9 @@ public: ~ALSound(); bool Create() override; - bool Cache(Sound, const std::string &) override; + bool Cache(SoundType, const std::string &) override; bool CacheMusic(const std::string &) override; - bool IsCached(Sound) override; + bool IsCached(SoundType) override; bool IsCachedMusic(const std::string &) override; bool GetEnable() override; @@ -66,18 +67,18 @@ public: void SetListener(const Math::Vector &eye, const Math::Vector &lookat) override; void FrameMove(float rTime) override; - int Play(Sound sound, float amplitude=1.0f, float frequency=1.0f, bool bLoop = false) override; - int Play(Sound sound, const Math::Vector &pos, float amplitude=1.0f, float frequency=1.0f, bool bLoop = false) override; + int Play(SoundType sound, float amplitude=1.0f, float frequency=1.0f, bool loop = false) override; + int Play(SoundType sound, const Math::Vector &pos, float amplitude=1.0f, float frequency=1.0f, bool loop = false) override; bool FlushEnvelope(int channel) override; bool AddEnvelope(int channel, float amplitude, float frequency, float time, SoundNext oper) override; bool Position(int channel, const Math::Vector &pos) override; bool Frequency(int channel, float frequency) override; bool Stop(int channel) override; bool StopAll() override; - bool MuteAll(bool bMute) override; + bool MuteAll(bool mute) override; - bool PlayMusic(int rank, bool bRepeat, float fadeTime=2.0f) override; - bool PlayMusic(const std::string &filename, bool bRepeat, float fadeTime=2.0f) override; + bool PlayMusic(int rank, bool repeat, float fadeTime=2.0f) override; + bool PlayMusic(const std::string &filename, bool repeat, float fadeTime=2.0f) override; bool RestartMusic() override; void SuspendMusic() override; void StopMusic(float fadeTime=2.0f) override; @@ -87,8 +88,8 @@ public: private: void CleanUp(); - int GetPriority(Sound); - bool SearchFreeBuffer(Sound sound, int &channel, bool &bAlreadyLoaded); + int GetPriority(SoundType); + bool SearchFreeBuffer(SoundType sound, int &channel, bool &alreadyLoaded); bool CheckChannel(int &channel); bool m_enabled; @@ -97,7 +98,7 @@ private: unsigned int m_channels_limit; ALCdevice* m_device; ALCcontext* m_context; - std::map m_sounds; + std::map m_sounds; std::map m_music; std::map m_channels; Channel *m_currentMusic; diff --git a/src/sound/oalsound/buffer.cpp b/src/sound/oalsound/buffer.cpp index df31b825..bbf3b554 100644 --- a/src/sound/oalsound/buffer.cpp +++ b/src/sound/oalsound/buffer.cpp @@ -43,7 +43,7 @@ Buffer::~Buffer() } -bool Buffer::LoadFromFile(std::string filename, Sound sound) +bool Buffer::LoadFromFile(std::string filename, SoundType sound) { m_sound = sound; GetLogger()->Debug("Loading audio file: %s\n", filename.c_str()); @@ -88,7 +88,7 @@ bool Buffer::LoadFromFile(std::string filename, Sound sound) } -Sound Buffer::GetSoundType() +SoundType Buffer::GetSoundType() { return m_sound; } diff --git a/src/sound/oalsound/buffer.h b/src/sound/oalsound/buffer.h index a34f7644..aecabc41 100644 --- a/src/sound/oalsound/buffer.h +++ b/src/sound/oalsound/buffer.h @@ -42,16 +42,16 @@ public: Buffer(); ~Buffer(); - bool LoadFromFile(std::string, Sound); + bool LoadFromFile(std::string, SoundType); bool IsLoaded(); - Sound GetSoundType(); + SoundType GetSoundType(); ALuint GetBuffer(); float GetDuration(); private: ALuint m_buffer; - Sound m_sound; + SoundType m_sound; bool m_loaded; float m_duration; }; diff --git a/src/sound/oalsound/channel.cpp b/src/sound/oalsound/channel.cpp index c7311f75..e39932a9 100644 --- a/src/sound/oalsound/channel.cpp +++ b/src/sound/oalsound/channel.cpp @@ -84,7 +84,7 @@ bool Channel::Pause() { return false; } - + alSourcePause(m_source); if (alCheck()) { @@ -262,7 +262,7 @@ void Channel::ResetOper() } -Sound Channel::GetSoundType() +SoundType Channel::GetSoundType() { if (!m_ready || m_buffer == nullptr) { diff --git a/src/sound/oalsound/channel.h b/src/sound/oalsound/channel.h index 4e0b52cd..0be8044a 100644 --- a/src/sound/oalsound/channel.h +++ b/src/sound/oalsound/channel.h @@ -95,7 +95,7 @@ public: void AddOper(SoundOper); void ResetOper(); - Sound GetSoundType(); + SoundType GetSoundType(); void SetLoop(bool); void Mute(bool); bool IsMuted(); diff --git a/src/sound/sound.cpp b/src/sound/sound.cpp index 582ab1c9..38ec56e8 100644 --- a/src/sound/sound.cpp +++ b/src/sound/sound.cpp @@ -49,7 +49,7 @@ void CSoundInterface::CacheAll() { std::stringstream filename; filename << "sounds/sound" << std::setfill('0') << std::setw(3) << i << ".wav"; - if ( !Cache(static_cast(i), filename.str()) ) + if ( !Cache(static_cast(i), filename.str()) ) GetLogger()->Warn("Unable to load audio: %s\n", filename.str().c_str()); } } @@ -62,22 +62,22 @@ void CSoundInterface::AddMusicFiles() CacheMusic("music011.ogg"); } -bool CSoundInterface::Cache(Sound bSound, const std::string &bFile) +bool CSoundInterface::Cache(SoundType sound, const std::string &file) { return true; } -bool CSoundInterface::CacheMusic(const std::string &bFile) +bool CSoundInterface::CacheMusic(const std::string &file) { return true; } -bool CSoundInterface::IsCached(Sound bSound) +bool CSoundInterface::IsCached(SoundType sound) { return false; } -bool CSoundInterface::IsCachedMusic(const std::string& bFile) +bool CSoundInterface::IsCachedMusic(const std::string& file) { return false; } @@ -113,12 +113,12 @@ void CSoundInterface::FrameMove(float rTime) { } -int CSoundInterface::Play(Sound sound, float amplitude, float frequency, bool bLoop) +int CSoundInterface::Play(SoundType sound, float amplitude, float frequency, bool loop) { return 0; } -int CSoundInterface::Play(Sound sound, const Math::Vector &pos, float amplitude, float frequency, bool bLoop) +int CSoundInterface::Play(SoundType sound, const Math::Vector &pos, float amplitude, float frequency, bool loop) { return 0; } @@ -158,12 +158,12 @@ bool CSoundInterface::MuteAll(bool bMute) return true; } -bool CSoundInterface::PlayMusic(int rank, bool bRepeat, float fadeTime) +bool CSoundInterface::PlayMusic(int rank, bool repeat, float fadeTime) { return true; } -bool CSoundInterface::PlayMusic(const std::string &filename, bool bRepeat, float fadeTime) +bool CSoundInterface::PlayMusic(const std::string &filename, bool repeat, float fadeTime) { return true; } diff --git a/src/sound/sound.h b/src/sound/sound.h index 20f459ca..fb0d4aa7 100644 --- a/src/sound/sound.h +++ b/src/sound/sound.h @@ -26,7 +26,7 @@ #include "math/vector.h" -#include "common/logger.h" +#include "sound/sound_type.h" #include @@ -36,100 +36,6 @@ const float MAXVOLUME = 100.0f; -/** - * \public - * \enum Sound sound/sound.h - * \brief Sound enum representing sound file -**/ -enum Sound -{ - SOUND_NONE = -1, - SOUND_CLICK = 0, - SOUND_BOUM = 1, - SOUND_EXPLO = 2, - SOUND_FLYh = 3, /*!< human */ - SOUND_FLY = 4, - SOUND_STEPs = 5, /*!< smooth */ - SOUND_MOTORw = 6, /*!< wheel */ - SOUND_MOTORt = 7, /*!< tank */ - SOUND_MOTORr = 8, /*!< roller */ - SOUND_ERROR = 9, - SOUND_CONVERT = 10, - SOUND_ENERGY = 11, - SOUND_PLOUF = 12, - SOUND_BLUP = 13, - SOUND_WARNING = 14, - SOUND_DERRICK = 15, - SOUND_LABO = 16, - SOUND_STATION = 17, - SOUND_REPAIR = 18, - SOUND_RESEARCH = 19, - SOUND_INSECTs = 20, /*!< spider */ - SOUND_BURN = 21, - SOUND_TZOING = 22, - SOUND_GGG = 23, - SOUND_MANIP = 24, - SOUND_FIRE = 25, /*!< shooting with fireball */ - SOUND_HUMAN1 = 26, /*!< breathing */ - SOUND_STEPw = 27, /*!< water */ - SOUND_SWIM = 28, - SOUND_RADAR = 29, - SOUND_BUILD = 30, - SOUND_ALARM = 31, /*!< energy alarm */ - SOUND_SLIDE = 32, - SOUND_EXPLOi = 33, /*!< insect */ - SOUND_INSECTa = 34, /*!< ant */ - SOUND_INSECTb = 35, /*!< bee */ - SOUND_INSECTw = 36, /*!< worm */ - SOUND_INSECTm = 37, /*!< mother */ - SOUND_TREMBLE = 38, - SOUND_PSHHH = 39, - SOUND_NUCLEAR = 40, - SOUND_INFO = 41, - SOUND_OPEN = 42, - SOUND_CLOSE = 43, - SOUND_FACTORY = 44, - SOUND_EGG = 45, - SOUND_MOTORs = 46, /*!< submarine */ - SOUND_MOTORi = 47, /*!< insect (legs) */ - SOUND_SHIELD = 48, - SOUND_FIREi = 49, /*!< shooting with orgaball (insect) */ - SOUND_GUNDEL = 50, - SOUND_PSHHH2 = 51, /*!< shield */ - SOUND_MESSAGE = 52, - SOUND_BOUMm = 53, /*!< metal */ - SOUND_BOUMv = 54, /*!< plant */ - SOUND_BOUMs = 55, /*!< smooth */ - SOUND_EXPLOl = 56, /*!< little */ - SOUND_EXPLOlp = 57, /*!< little power */ - SOUND_EXPLOp = 58, /*!< power */ - SOUND_STEPh = 59, /*!< hard */ - SOUND_STEPm = 60, /*!< metal */ - SOUND_POWERON = 61, - SOUND_POWEROFF = 62, - SOUND_AIE = 63, - SOUND_WAYPOINT = 64, - SOUND_RECOVER = 65, - SOUND_DEADi = 66, - SOUND_JOSTLE = 67, - SOUND_GFLAT = 68, - SOUND_DEADg = 69, /*!< shooting death */ - SOUND_DEADw = 70, /*!< drowning */ - SOUND_FLYf = 71, /*!< reactor fail */ - SOUND_ALARMt = 72, /*!< temperature alarm */ - SOUND_FINDING = 73, /*!< finds a cache object */ - SOUND_THUMP = 74, - SOUND_TOUCH = 75, - SOUND_BLITZ = 76, - SOUND_MUSHROOM = 77, - SOUND_FIREp = 78, /*!< shooting with phazer */ - SOUND_EXPLOg1 = 79, /*!< impact gun 1 */ - SOUND_EXPLOg2 = 80, /*!< impact gun 2 */ -// SOUND_MOTORd = 81, /*!< engine friction */ - SOUND_MAX /** number of items in enum */ -}; - - /** * \enum SoundNext * \brief Enum representing operation that will be performend on a sound at given time @@ -168,30 +74,30 @@ public: /** Function called to cache sound effect file. * This function is called by plugin interface for each file. - * \param bSound - id of a file, will be used to identify sound files - * \param bFile - file to load + * \param sound - id of a file, will be used to identify sound files + * \param file - file to load * \return return true on success */ - virtual bool Cache(Sound bSound, const std::string &bFile); + virtual bool Cache(SoundType sound, const std::string &file); /** Function called to cache music file. * This function is called by CRobotMain for each file used in the mission. - * \param bFile - file to load + * \param file - file to load * \return return true on success */ - virtual bool CacheMusic(const std::string &bFile); - + virtual bool CacheMusic(const std::string &file); + /** Function to check if sound effect file was cached. - * \param bSound - id of a sound effect file + * \param sound - id of a sound effect file * \return return true if the file was cached */ - virtual bool IsCached(Sound bSound); - + virtual bool IsCached(SoundType sound); + /** Function called to check if music file was cached. - * \param bFile - file to check + * \param file - file to check * \return return true if the file was cached */ - virtual bool IsCachedMusic(const std::string &bFile); + virtual bool IsCachedMusic(const std::string &file); /** Return if plugin is enabled * \return return true if plugin is enabled @@ -233,20 +139,20 @@ public: * \param sound - sound to play * \param amplitude - change amplitude of sound before playing * \param frequency - change sound frequency before playing (0.5 octave down, 2.0 octave up) - * \param bLoop - loop sound + * \param loop - loop sound * \return identifier of channel that sound will be played on */ - virtual int Play(Sound sound, float amplitude=1.0f, float frequency=1.0f, bool bLoop = false); + virtual int Play(SoundType sound, float amplitude=1.0f, float frequency=1.0f, bool loop = false); /** Play specific sound * \param sound - sound to play * \param pos - position of sound in space * \param amplitude - change amplitude of sound before playing * \param frequency - change sound frequency before playing (0.5 octave down, 2.0 octave up) - * \param bLoop - loop sound + * \param loop - loop sound * \return identifier of channel that sound will be played on */ - virtual int Play(Sound sound, const Math::Vector &pos, float amplitude=1.0f, float frequency=1.0f, bool bLoop = false); + virtual int Play(SoundType sound, const Math::Vector &pos, float amplitude=1.0f, float frequency=1.0f, bool loop = false); /** Remove all operations that would be made on sound in channel. * \param channel - channel to work on @@ -290,26 +196,26 @@ public: virtual bool StopAll(); /** Mute/unmute all sounds - * \param bMute + * \param mute * \return return true on success */ - virtual bool MuteAll(bool bMute); + virtual bool MuteAll(bool mute); /** Start playing music * \param rank - track number - * \param bRepeat - repeat playing + * \param repeat - repeat playing * \param fadeTime - time of transition between music * \return return true on success */ - virtual bool PlayMusic(int rank, bool bRepeat, float fadeTime=2.0f); + virtual bool PlayMusic(int rank, bool repeat, float fadeTime=2.0f); /** Start playing music * \param filename - name of file to play - * \param bRepeat - repeat playing + * \param repeat - repeat playing * \param fadeTime - time of transition between music * \return return true on success */ - virtual bool PlayMusic(const std::string &filename, bool bRepeat, float fadeTime=2.0f); + virtual bool PlayMusic(const std::string &filename, bool repeat, float fadeTime=2.0f); /** Restart music * \return return true on success @@ -330,13 +236,13 @@ public: * \return return true if music is playing */ virtual bool IsPlayingMusic(); - + /** Start playing pause music * \param filename - name of file to play * \return return true on success */ virtual bool PlayPauseMusic(const std::string &filename, bool repeat); - + /** Stop playing pause music and return to the mission music * \return nothing */ diff --git a/src/sound/sound_type.cpp b/src/sound/sound_type.cpp new file mode 100644 index 00000000..a0088496 --- /dev/null +++ b/src/sound/sound_type.cpp @@ -0,0 +1,127 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2015, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see http://gnu.org/licenses + */ + +#include "sound/sound_type.h" + +#include "common/logger.h" + +#include + +namespace +{ + +const std::unordered_map SOUND_STRINGS = +{ + {"none", SOUND_NONE}, + {"click", SOUND_CLICK}, + {"boum", SOUND_BOUM}, + {"explo", SOUND_EXPLO}, + {"flyh", SOUND_FLYh}, + {"fly", SOUND_FLY}, + {"steps", SOUND_STEPs}, + {"motorw", SOUND_MOTORw}, + {"motort", SOUND_MOTORt}, + {"motorr", SOUND_MOTORr}, + {"error", SOUND_ERROR}, + {"convert", SOUND_CONVERT}, + {"energy", SOUND_ENERGY}, + {"plouf", SOUND_PLOUF}, + {"blup", SOUND_BLUP}, + {"warning", SOUND_WARNING}, + {"derrick", SOUND_DERRICK}, + {"labo", SOUND_LABO}, + {"station", SOUND_STATION}, + {"repair", SOUND_REPAIR}, + {"research", SOUND_RESEARCH}, + {"insects", SOUND_INSECTs}, + {"burn", SOUND_BURN}, + {"tzoing", SOUND_TZOING}, + {"ggg", SOUND_GGG}, + {"manip", SOUND_MANIP}, + {"fire", SOUND_FIRE}, + {"human1", SOUND_HUMAN1}, + {"stepw", SOUND_STEPw}, + {"swim", SOUND_SWIM}, + {"radar", SOUND_RADAR}, + {"build", SOUND_BUILD}, + {"alarm", SOUND_ALARM}, + {"slide", SOUND_SLIDE}, + {"exploi", SOUND_EXPLOi}, + {"insecta", SOUND_INSECTa}, + {"insectb", SOUND_INSECTb}, + {"insectw", SOUND_INSECTw}, + {"insectm", SOUND_INSECTm}, + {"tremble", SOUND_TREMBLE}, + {"pshhh", SOUND_PSHHH}, + {"nuclear", SOUND_NUCLEAR}, + {"info", SOUND_INFO}, + {"open", SOUND_OPEN}, + {"close", SOUND_CLOSE}, + {"factory", SOUND_FACTORY}, + {"egg", SOUND_EGG}, + {"motors", SOUND_MOTORs}, + {"motori", SOUND_MOTORi}, + {"shield", SOUND_SHIELD}, + {"firei", SOUND_FIREi}, + {"gundel", SOUND_GUNDEL}, + {"pshhh2", SOUND_PSHHH2}, + {"message", SOUND_MESSAGE}, + {"boumm", SOUND_BOUMm}, + {"boumv", SOUND_BOUMv}, + {"boums", SOUND_BOUMs}, + {"explol", SOUND_EXPLOl}, + {"explolp", SOUND_EXPLOlp}, + {"explop", SOUND_EXPLOp}, + {"steph", SOUND_STEPh}, + {"stepm", SOUND_STEPm}, + {"poweron", SOUND_POWERON}, + {"poweroff", SOUND_POWEROFF}, + {"aie", SOUND_AIE}, + {"waypoint", SOUND_WAYPOINT}, + {"recover", SOUND_RECOVER}, + {"deadi", SOUND_DEADi}, + {"jostle", SOUND_JOSTLE}, + {"gflat", SOUND_GFLAT}, + {"deadg", SOUND_DEADg}, + {"deadw", SOUND_DEADw}, + {"flyf", SOUND_FLYf}, + {"alarmt", SOUND_ALARMt}, + {"finding", SOUND_FINDING}, + {"thump", SOUND_THUMP}, + {"touch", SOUND_TOUCH}, + {"blitz", SOUND_BLITZ}, + {"mushroom", SOUND_MUSHROOM}, + {"firep", SOUND_FIREp}, + {"explog1", SOUND_EXPLOg1}, + {"explog2", SOUND_EXPLOg2} +}; + +} // anonymous namespace + +SoundType StringToSound(const std::string& str) +{ + auto it = SOUND_STRINGS.find(str); + if (it == SOUND_STRINGS.end()) + { + GetLogger()->Error("Could not parse sound string: %s\n", str.c_str()); + return SOUND_NONE; + } + + return it->second; +} diff --git a/src/sound/sound_type.h b/src/sound/sound_type.h new file mode 100644 index 00000000..040d7798 --- /dev/null +++ b/src/sound/sound_type.h @@ -0,0 +1,117 @@ +/* + * This file is part of the Colobot: Gold Edition source code + * Copyright (C) 2001-2015, Daniel Roux, EPSITEC SA & TerranovaTeam + * http://epsiteс.ch; http://colobot.info; http://github.com/colobot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see http://gnu.org/licenses + */ + +#pragma once + +#include + +/** + * \public + * \enum SoundType + * \brief Enum representing sound file +**/ +enum SoundType +{ + SOUND_NONE = -1, + SOUND_CLICK = 0, + SOUND_BOUM = 1, + SOUND_EXPLO = 2, + SOUND_FLYh = 3, /*!< human */ + SOUND_FLY = 4, + SOUND_STEPs = 5, /*!< smooth */ + SOUND_MOTORw = 6, /*!< wheel */ + SOUND_MOTORt = 7, /*!< tank */ + SOUND_MOTORr = 8, /*!< roller */ + SOUND_ERROR = 9, + SOUND_CONVERT = 10, + SOUND_ENERGY = 11, + SOUND_PLOUF = 12, + SOUND_BLUP = 13, + SOUND_WARNING = 14, + SOUND_DERRICK = 15, + SOUND_LABO = 16, + SOUND_STATION = 17, + SOUND_REPAIR = 18, + SOUND_RESEARCH = 19, + SOUND_INSECTs = 20, /*!< spider */ + SOUND_BURN = 21, + SOUND_TZOING = 22, + SOUND_GGG = 23, + SOUND_MANIP = 24, + SOUND_FIRE = 25, /*!< shooting with fireball */ + SOUND_HUMAN1 = 26, /*!< breathing */ + SOUND_STEPw = 27, /*!< water */ + SOUND_SWIM = 28, + SOUND_RADAR = 29, + SOUND_BUILD = 30, + SOUND_ALARM = 31, /*!< energy alarm */ + SOUND_SLIDE = 32, + SOUND_EXPLOi = 33, /*!< insect */ + SOUND_INSECTa = 34, /*!< ant */ + SOUND_INSECTb = 35, /*!< bee */ + SOUND_INSECTw = 36, /*!< worm */ + SOUND_INSECTm = 37, /*!< mother */ + SOUND_TREMBLE = 38, + SOUND_PSHHH = 39, + SOUND_NUCLEAR = 40, + SOUND_INFO = 41, + SOUND_OPEN = 42, + SOUND_CLOSE = 43, + SOUND_FACTORY = 44, + SOUND_EGG = 45, + SOUND_MOTORs = 46, /*!< submarine */ + SOUND_MOTORi = 47, /*!< insect (legs) */ + SOUND_SHIELD = 48, + SOUND_FIREi = 49, /*!< shooting with orgaball (insect) */ + SOUND_GUNDEL = 50, + SOUND_PSHHH2 = 51, /*!< shield */ + SOUND_MESSAGE = 52, + SOUND_BOUMm = 53, /*!< metal */ + SOUND_BOUMv = 54, /*!< plant */ + SOUND_BOUMs = 55, /*!< smooth */ + SOUND_EXPLOl = 56, /*!< little */ + SOUND_EXPLOlp = 57, /*!< little power */ + SOUND_EXPLOp = 58, /*!< power */ + SOUND_STEPh = 59, /*!< hard */ + SOUND_STEPm = 60, /*!< metal */ + SOUND_POWERON = 61, + SOUND_POWEROFF = 62, + SOUND_AIE = 63, + SOUND_WAYPOINT = 64, + SOUND_RECOVER = 65, + SOUND_DEADi = 66, + SOUND_JOSTLE = 67, + SOUND_GFLAT = 68, + SOUND_DEADg = 69, /*!< shooting death */ + SOUND_DEADw = 70, /*!< drowning */ + SOUND_FLYf = 71, /*!< reactor fail */ + SOUND_ALARMt = 72, /*!< temperature alarm */ + SOUND_FINDING = 73, /*!< finds a cache object */ + SOUND_THUMP = 74, + SOUND_TOUCH = 75, + SOUND_BLITZ = 76, + SOUND_MUSHROOM = 77, + SOUND_FIREp = 78, /*!< shooting with phazer */ + SOUND_EXPLOg1 = 79, /*!< impact gun 1 */ + SOUND_EXPLOg2 = 80, /*!< impact gun 2 */ +// SOUND_MOTORd = 81, /*!< engine friction */ + SOUND_MAX /** number of items in enum */ +}; + +SoundType ParseSoundType(const std::string& str); diff --git a/src/ui/displaytext.cpp b/src/ui/displaytext.cpp index 7632a653..b55044d9 100644 --- a/src/ui/displaytext.cpp +++ b/src/ui/displaytext.cpp @@ -196,7 +196,7 @@ void CDisplayText::DisplayText(const char *text, Math::Vector goal, float height Ui::CGroup* group; Ui::CLabel* label; Math::Point pos, ppos, dim; - Sound sound; + SoundType sound; float hLine, hBox; int nLine, icon, i; diff --git a/src/ui/edit.cpp b/src/ui/edit.cpp index bea582a6..113786dd 100644 --- a/src/ui/edit.cpp +++ b/src/ui/edit.cpp @@ -26,6 +26,7 @@ #include "clipboard/clipboard.h" #include "common/config.h" +#include "common/logger.h" #include "common/pathman.h" #include "common/resources/inputstream.h" #include "common/resources/outputstream.h" @@ -1458,10 +1459,10 @@ bool CEdit::ReadText(std::string filename, int addSize) bool bInSoluce, bBOL; if ( filename == "" ) return false; - + CInputStream stream; stream.open(filename); - + if (!stream.is_open()) { CLogger::GetInstancePointer()->Error("Failed to load text file %s\n", filename.c_str()); @@ -1644,7 +1645,8 @@ bool CEdit::ReadText(std::string filename, int addSize) // A part of image per line of text. for ( iCount=0 ; iCount= EDITIMAGEMAX) { + if (iIndex >= EDITIMAGEMAX) + { CLogger::GetInstancePointer()->Warn("Too many images, current limit is %d image lines. This limit will be removed in the future.\n", EDITIMAGEMAX); break; } @@ -1792,7 +1794,7 @@ bool CEdit::ReadText(std::string filename, int addSize) buffer[i+4] == ' ' ) { int count; - for(count = 0; buffer[i+5+count] != ';'; count++); + for (count = 0; buffer[i+5+count] != ';'; count++); if ( m_bSoluce || !bInSoluce ) //TODO: ??? { CInput* input = CInput::GetInstancePointer(); @@ -1814,7 +1816,9 @@ bool CEdit::ReadText(std::string filename, int addSize) m_text[j] = ' '; m_format[j] = font; j ++; - } else { + } + else + { m_text[j] = '?'; m_format[j] = font; j ++; @@ -1860,10 +1864,10 @@ bool CEdit::WriteText(std::string filename) float iDim = 0.0f; if ( filename[0] == 0 ) return false; - + COutputStream stream; stream.open(filename); - + if (!stream.is_open()) { return false; diff --git a/src/ui/studio.cpp b/src/ui/studio.cpp index 19f41115..ada6f81d 100644 --- a/src/ui/studio.cpp +++ b/src/ui/studio.cpp @@ -24,6 +24,7 @@ #include "app/app.h" +#include "common/logger.h" #include "common/resources/resourcemanager.h" #include "common/event.h" @@ -646,12 +647,12 @@ void CStudio::StartEditScript(CScript *script, std::string name, Program* progra button = pw->CreateButton(pos, dim, 64+29, EVENT_STUDIO_STEP); button->SetState(STATE_SHADOW); - if(!m_program->runnable) + if (!m_program->runnable) { GetResource(RES_TEXT, RT_PROGRAM_EXAMPLE, res); SetInfoText(res, false); } - else if(m_program->readOnly) + else if (m_program->readOnly) { GetResource(RES_TEXT, RT_PROGRAM_READONLY, res); SetInfoText(res, false); @@ -1159,7 +1160,7 @@ void CStudio::StartDialog(StudioDialog type) UpdateDialogList(); UpdateDialogPublic(); UpdateDialogAction(); - + if ( m_dialog == SD_SAVE ) { SetFilenameField(pe, m_script->GetFilename()); @@ -1437,10 +1438,12 @@ void CStudio::UpdateChangeList() void CStudio::SetFilenameField(CEdit* edit, const std::string& filename) { std::string name = filename; - if(name.length() > static_cast(edit->GetMaxChar())) { - if(name.substr(name.length()-4) == ".txt") + if (name.length() > static_cast(edit->GetMaxChar())) + { + if (name.substr(name.length()-4) == ".txt") name = name.substr(0, name.length()-4); - if(name.length() > static_cast(edit->GetMaxChar())) { + if (name.length() > static_cast(edit->GetMaxChar())) + { CLogger::GetInstancePointer()->Warn("Tried to load too long filename!\n"); name = name.substr(0, edit->GetMaxChar()); // truncates according to max length } @@ -1555,11 +1558,12 @@ void CStudio::UpdateDialogList() if ( pl == nullptr ) return; pl->Flush(); - if(!CResourceManager::DirectoryExists(SearchDirectory(false))) + if (!CResourceManager::DirectoryExists(SearchDirectory(false))) return; - + std::vector programs = CResourceManager::ListFiles(SearchDirectory(false)); - for(auto& prog : programs) { + for (auto& prog : programs) + { std::ostringstream temp; TimeToAscii(CResourceManager::GetLastModificationTime(SearchDirectory(false) + prog), time); temp << prog << '\t' << CResourceManager::GetFileSize(SearchDirectory(false) + prog) << " \t" << time; @@ -1583,7 +1587,7 @@ std::string CStudio::SearchDirectory(bool bCreate) if ( bCreate ) { - if(!CResourceManager::DirectoryExists(dir)) + if (!CResourceManager::DirectoryExists(dir)) CResourceManager::CreateDirectory(dir); } return dir; @@ -1657,7 +1661,7 @@ bool CStudio::WriteProgram() if ( pw == nullptr ) return false; pe = static_cast< CEdit* >(pw->SearchControl(EVENT_STUDIO_EDIT)); if ( pe == nullptr ) return false; - + if ( !pe->WriteText(std::string(dir)) ) return false; m_script->SetFilename(filename);