diff --git a/src/scriptengine/haybail-activate.as b/src/scriptengine/haybail-activate.as new file mode 100644 index 000000000..808709e97 --- /dev/null +++ b/src/scriptengine/haybail-activate.as @@ -0,0 +1,11 @@ +void onTrigger() +{ +/*to activate this add the following line to stk-assets/farm/scene.xml + + + +*/ + displayMessage("Haybail reactivated"); + enableAnimation("hayBail.b3d"); + squashKart(0,35.0); //id of kart,time to squash +} diff --git a/src/scriptengine/haybail.as b/src/scriptengine/haybail.as index 22f45a158..7a6ad51bf 100644 --- a/src/scriptengine/haybail.as +++ b/src/scriptengine/haybail.as @@ -5,7 +5,7 @@ void onTrigger() */ - displayMessage("Wow! Such Message. Very Script... wow"); + displayMessage("Haybail deactivated"); disableAnimation("hayBail.b3d"); - //squashKart(0,35.0); //id of kart,time to squash + squashKart(0,35.0); //id of kart,time to squash } diff --git a/src/scriptengine/script_engine.cpp b/src/scriptengine/script_engine.cpp index 635e3c538..56ebb12f3 100644 --- a/src/scriptengine/script_engine.cpp +++ b/src/scriptengine/script_engine.cpp @@ -36,6 +36,7 @@ using namespace irr; // Function prototypes for binding. void displayMessage(asIScriptGeneric *gen); void disableAnimation(asIScriptGeneric *gen); + void enableAnimation(asIScriptGeneric *gen); void squashKart(asIScriptGeneric *gen); ScriptEngine::ScriptEngine(){ @@ -67,7 +68,10 @@ void disableAnimation(asIScriptGeneric *gen){ std::string *str = (std::string*)gen->GetArgAddress(0); World::getWorld()->getTrack()->getTrackObjectManager()->disable(*str); } - +void enableAnimation(asIScriptGeneric *gen){ + std::string *str = (std::string*)gen->GetArgAddress(0); + World::getWorld()->getTrack()->getTrackObjectManager()->enable(*str); +} void squashKart(asIScriptGeneric *gen){ int id = (int)gen->GetArgDWord(0); float time = gen->GetArgFloat(1); @@ -182,6 +186,7 @@ void ScriptEngine::configureEngine(asIScriptEngine *engine) r = engine->RegisterGlobalFunction("void displayMessage(string &in)", asFUNCTION(displayMessage), asCALL_GENERIC); assert(r>=0); r = engine->RegisterGlobalFunction("void disableAnimation(string &in)", asFUNCTION(disableAnimation), asCALL_GENERIC); assert(r>=0); + r = engine->RegisterGlobalFunction("void enableAnimation(string &in)", asFUNCTION(enableAnimation), asCALL_GENERIC); assert(r>=0); r = engine->RegisterGlobalFunction("void squashKart(int id, float time)", asFUNCTION(squashKart), asCALL_GENERIC); assert(r>=0); // It is possible to register the functions, properties, and types in @@ -217,9 +222,6 @@ int ScriptEngine::compileScript(asIScriptEngine *engine, std::string scriptName) int len = ftell(f); fseek(f, 0, SEEK_SET); - // On Win32 it is possible to do the following instead - // int len = _filelength(_fileno(f)); - // Read the entire file std::string script; script.resize(len); @@ -230,9 +232,7 @@ int ScriptEngine::compileScript(asIScriptEngine *engine, std::string scriptName) std::cout << "Failed to load script file." << std::endl; return -1; } - //std::cout<getName() == (name)){ - //OutputDebugString("came here2"); + curr->setEnable(false); } @@ -101,7 +101,7 @@ void TrackObjectManager::enable(std::string name){ TrackObject* curr; for_in (curr,m_all_objects){ if (curr->getName() == (name)){ - //OutputDebugString("came here2"); + curr->setEnable(true); } diff --git a/src/tracks/track_object_presentation.cpp b/src/tracks/track_object_presentation.cpp index 9391c7f9d..e3aafd673 100644 --- a/src/tracks/track_object_presentation.cpp +++ b/src/tracks/track_object_presentation.cpp @@ -803,6 +803,17 @@ void TrackObjectPresentationActionTrigger::onTriggerItemApproached(Item* who) ScriptEngine* m_script_engine = World::getWorld()->getScriptEngine(); m_script_engine->runScript(m_action); } + else if (m_action == "haybail-activate") + { + /*to activate this add the following line to stk-assets/farm/scene.xml + + + + */ + m_action_active=false; + ScriptEngine* m_script_engine = World::getWorld()->getScriptEngine(); + m_script_engine->runScript(m_action); + } else if (m_action == "tutorial_giftboxes") { m_action_active = false;