Scripting work

This commit is contained in:
Marianne Gagnon 2015-05-14 19:27:32 -04:00
parent 7d66dfec0e
commit e23f854845
2 changed files with 18 additions and 33 deletions

View File

@ -61,52 +61,44 @@ namespace Scripting
return World::getWorld()->getTrack()->getTrackObjectManager()->getTrackObject(*objID); return World::getWorld()->getTrack()->getTrackObjectManager()->getTrackObject(*objID);
} }
// TODO: assign types for documentation /** Hide/disable a track object */
/** Generic disable method for track objects */ void disableTrackObject(std::string* objID)
void disableTrackObject(asIScriptGeneric *gen)
{ {
std::string *str = (std::string*)gen->GetArgAddress(0); World::getWorld()->getTrack()->getTrackObjectManager()->disable(*objID);
World::getWorld()->getTrack()->getTrackObjectManager()->disable(*str);
} }
/** Generic enable method for track objects */ /** Show/enable a track objects */
void enableTrackObject(asIScriptGeneric *gen) void enableTrackObject(std::string* objID)
{ {
std::string *str = (std::string*)gen->GetArgAddress(0); World::getWorld()->getTrack()->getTrackObjectManager()->enable(*objID);
World::getWorld()->getTrack()->getTrackObjectManager()->enable(*str);
} }
/** Disables an action trigger of specified ID */ /** Disables an action trigger of specified ID */
void disableTrigger(asIScriptGeneric *gen) void disableTrigger(std::string* triggerID)
{ {
std::string *str = (std::string*)gen->GetArgAddress(0); World::getWorld()->getTrack()->getTrackObjectManager()->disable(*triggerID);
World::getWorld()->getTrack()->getTrackObjectManager()->disable(*str);
} }
/** Enables an action trigger of specified ID */ /** Enables an action trigger of specified ID */
void enableTrigger(asIScriptGeneric *gen) void enableTrigger(std::string* triggerID)
{ {
std::string *str = (std::string*)gen->GetArgAddress(0); World::getWorld()->getTrack()->getTrackObjectManager()->enable(*triggerID);
World::getWorld()->getTrack()->getTrackObjectManager()->enable(*str);
} }
/** Creates a trigger at the specified location */ /** Creates a trigger at the specified location */
void createTrigger(asIScriptGeneric *gen) void createTrigger(std::string* triggerID, Vec3* creation_loc, float distance)
{ {
std::string *script_name = (std::string*)gen->GetArgAddress(0);
Vec3 *creation_loc = (Vec3*)gen->GetArgAddress(1);
float x = creation_loc->getX(); float x = creation_loc->getX();
float y = creation_loc->getY(); float y = creation_loc->getY();
float z = creation_loc->getZ(); float z = creation_loc->getZ();
float distance = gen->GetArgFloat(2); //triggering distance
core::vector3df posi(x, y, z); core::vector3df posi(x, y, z);
core::vector3df hpr(0, 0, 0); core::vector3df hpr(0, 0, 0);
core::vector3df scale(1.0f, 1.0f, 1.0f); core::vector3df scale(1.0f, 1.0f, 1.0f);
TrackObjectPresentationActionTrigger* newtrigger = TrackObjectPresentationActionTrigger* newtrigger =
new TrackObjectPresentationActionTrigger(posi, *script_name, distance); new TrackObjectPresentationActionTrigger(posi, *triggerID, distance);
TrackObject* tobj = new TrackObject(posi, hpr, scale, TrackObject* tobj = new TrackObject(posi, hpr, scale,
"none", newtrigger, false /* isDynamic */, NULL /* physics settings */); "none", newtrigger, false /* isDynamic */, NULL /* physics settings */);
tobj->setID(*script_name); tobj->setID(*triggerID);
World::getWorld()->getTrack()->getTrackObjectManager()->insertObject(tobj); World::getWorld()->getTrack()->getTrackObjectManager()->insertObject(tobj);
} }
} }
@ -246,11 +238,11 @@ namespace Scripting
r = engine->RegisterObjectType("SoundEmitter", 0, asOBJ_REF | asOBJ_NOCOUNT); assert(r >= 0); r = engine->RegisterObjectType("SoundEmitter", 0, asOBJ_REF | asOBJ_NOCOUNT); assert(r >= 0);
r = engine->RegisterObjectType("Animator", 0, asOBJ_REF | asOBJ_NOCOUNT); assert(r >= 0); r = engine->RegisterObjectType("Animator", 0, asOBJ_REF | asOBJ_NOCOUNT); assert(r >= 0);
r = engine->RegisterGlobalFunction("void disableTrackObject(const string &in)", asFUNCTION(disableTrackObject), asCALL_GENERIC); assert(r >= 0); r = engine->RegisterGlobalFunction("void disableTrackObject(const string &in)", asFUNCTION(disableTrackObject), asCALL_CDECL); assert(r >= 0);
r = engine->RegisterGlobalFunction("void enableTrackObject(const string &in)", asFUNCTION(enableTrackObject), asCALL_GENERIC); assert(r >= 0); r = engine->RegisterGlobalFunction("void enableTrackObject(const string &in)", asFUNCTION(enableTrackObject), asCALL_CDECL); assert(r >= 0);
r = engine->RegisterGlobalFunction("void enableTrigger(const string &in)", asFUNCTION(enableTrigger), asCALL_GENERIC); assert(r >= 0); r = engine->RegisterGlobalFunction("void enableTrigger(const string &in)", asFUNCTION(enableTrigger), asCALL_CDECL); assert(r >= 0);
r = engine->RegisterGlobalFunction("void disableTrigger(const string &in)", asFUNCTION(disableTrigger), asCALL_GENERIC); assert(r >= 0); r = engine->RegisterGlobalFunction("void disableTrigger(const string &in)", asFUNCTION(disableTrigger), asCALL_CDECL); assert(r >= 0);
r = engine->RegisterGlobalFunction("void createTrigger(const string &in,Vec3 &in, float distance)", r = engine->RegisterGlobalFunction("void createTrigger(const string &in, const Vec3 &in, float distance)",
asFUNCTION(createTrigger), asCALL_GENERIC); assert(r >= 0); asFUNCTION(createTrigger), asCALL_GENERIC); assert(r >= 0);
r = engine->RegisterGlobalFunction("TrackObject@ getTrackObject(const string &in)", asFUNCTION(getTrackObject), asCALL_CDECL); assert(r >= 0); r = engine->RegisterGlobalFunction("TrackObject@ getTrackObject(const string &in)", asFUNCTION(getTrackObject), asCALL_CDECL); assert(r >= 0);

View File

@ -31,13 +31,6 @@ namespace Scripting
void registerScriptFunctions(asIScriptEngine *engine); void registerScriptFunctions(asIScriptEngine *engine);
asIScriptFunction* asIScriptFunction*
registerScriptCallbacks(asIScriptEngine *engine , std::string scriptName); registerScriptCallbacks(asIScriptEngine *engine , std::string scriptName);
//script-bound functions
void disableAnimation(asIScriptGeneric *gen);
void enableAnimation(asIScriptGeneric *gen);
void enableTrigger(asIScriptGeneric *gen);
void disableTrigger(asIScriptGeneric *gen);
void createTrigger(asIScriptGeneric *gen);
} }
} }