From 8fd4987016ac1df81069c07e169401d320b08e8a Mon Sep 17 00:00:00 2001 From: Fabien_HENON Date: Thu, 31 May 2012 20:38:35 +0200 Subject: [PATCH] Added: #1469 sound_trigger and camera_animation step contents in mission compiler --HG-- branch : gsoc2012-fabien --- code/ryzom/server/shard_start_cmake.bat | 2 +- .../mission_compiler_lib/step_content.cpp | 72 +++++++++++++++++++ 2 files changed, 73 insertions(+), 1 deletion(-) diff --git a/code/ryzom/server/shard_start_cmake.bat b/code/ryzom/server/shard_start_cmake.bat index 9d68b5272..db18cfb9e 100644 --- a/code/ryzom/server/shard_start_cmake.bat +++ b/code/ryzom/server/shard_start_cmake.bat @@ -18,7 +18,7 @@ rem wait 2s (yes, i didn't find a better way to wait N seconds) ping -n 2 127.0.0.1 > NUL 2>&1 rem egs -start %MODE%\ryzom_entities_game_service --writepid +rem start %MODE%\ryzom_entities_game_service --writepid rem wait 2s (yes, i didn't find a better way to wait N seconds) ping -n 2 127.0.0.1 > NUL 2>&1 diff --git a/code/ryzom/tools/leveldesign/mission_compiler_lib/step_content.cpp b/code/ryzom/tools/leveldesign/mission_compiler_lib/step_content.cpp index 0e24b05e6..11a0e0b4c 100644 --- a/code/ryzom/tools/leveldesign/mission_compiler_lib/step_content.cpp +++ b/code/ryzom/tools/leveldesign/mission_compiler_lib/step_content.cpp @@ -3464,3 +3464,75 @@ public: }; REGISTER_STEP_CONTENT(CContentRingScenario, "ring_scenario"); +// --------------------------------------------------------------------------- +class CActionSoundTrigger : public IStepContent +{ + string _SoundName; + string _SoundPos; + + void getPredefParam(uint32 &numEntry, CPhrase::TPredefParams &predef) + { + numEntry = 0; + } +public: + void init(CMissionData &md, IPrimitive *prim) + { + IStepContent::init(md, prim); + _SoundName = md.getProperty(prim, "sound_name", true, false); + _SoundPos = md.getProperty(prim, "sound_position", true, false); + + // We assert everything is ok + if (_SoundPos.empty()) + { + string err = toString("primitive(%s): 'sound_position' must not be empty.", prim->getName().c_str()); + throw EParseException(prim, err.c_str()); + } + if (_SoundName.empty()) + { + string err = toString("primitive(%s): 'sound_name' must not be empty.", prim->getName().c_str()); + throw EParseException(prim, err.c_str()); + } + } + + string genCode(CMissionData &md) + { + string ret; + ret = "sound_trigger : "+_SoundName + " : " + _SoundPos + NL; + return ret; + } + +}; +REGISTER_STEP_CONTENT(CActionSoundTrigger, "sound_trigger"); + +// --------------------------------------------------------------------------- +class CActionCameraAnimation : public IStepContent +{ + string _Name; + + void getPredefParam(uint32 &numEntry, CPhrase::TPredefParams &predef) + { + numEntry = 0; + } +public: + void init(CMissionData &md, IPrimitive *prim) + { + IStepContent::init(md, prim); + _Name = md.getProperty(prim, "animation_name", true, false); + + // We assert everything is ok + if (_Name.empty()) + { + string err = toString("primitive(%s): 'animation_name' must not be empty.", prim->getName().c_str()); + throw EParseException(prim, err.c_str()); + } + } + + string genCode(CMissionData &md) + { + string ret; + ret = "camera_animation : " + _Name + NL; + return ret; + } + +}; +REGISTER_STEP_CONTENT(CActionCameraAnimation, "camera_animation");