static QScriptValue js_enumFeature(QScriptContext *context, QScriptEngine *engine) { QScriptValue result = engine->newArray(3); for (int i = 0; i < 3; i++) { result.setProperty(i, convFeature(engine)); } return result; }
QScriptValue convMax(BASE_OBJECT *psObj, QScriptEngine *engine) { switch (psObj->type) { case OBJ_DROID: return convDroid((DROID *)psObj, engine); case OBJ_STRUCTURE: return convStructure((STRUCTURE *)psObj, engine); case OBJ_FEATURE: return convFeature((FEATURE *)psObj, engine); default: ASSERT(false, "No such supported object type"); return convObj(psObj, engine); } }
//__ \subsection{eventPickup(feature, droid)} //__ An event that is run whenever a feature is picked up. It is called for //__ all players / scripts. //__ Careful passing the parameter object around, since it is about to vanish! (3.2+ only) bool triggerEventPickup(FEATURE *psFeat, DROID *psDroid) { for (int i = 0; i < scripts.size(); ++i) { QScriptEngine *engine = scripts.at(i); QScriptValueList args; args += convFeature(psFeat, engine); args += convDroid(psDroid, engine); callFunction(engine, "eventPickup", args); } return true; }
static QScriptValue js_label(QScriptContext *context, QScriptEngine *engine) { QString label = context->argument(0).toString(); QScriptValue ret = engine->newObject(); if (labels.contains(label)) { labeltype p = labels.value(label); if (p.type == AREA || p.type == POSITION) { ret.setProperty("x", map_coord(p.p1.x), QScriptValue::ReadOnly); ret.setProperty("y", map_coord(p.p1.y), QScriptValue::ReadOnly); } if (p.type == AREA) { ret.setProperty("x2", map_coord(p.p2.x), QScriptValue::ReadOnly); ret.setProperty("xy", map_coord(p.p2.y), QScriptValue::ReadOnly); } else if (p.type == OBJ_DROID) { DROID *psDroid = IdToDroid(p.id, p.player); if (psDroid) ret = convDroid(psDroid, engine); } else if (p.type == OBJ_STRUCTURE) { STRUCTURE *psStruct = IdToStruct(p.id, p.player); if (psStruct) ret = convStructure(psStruct, engine); } else if (p.type == OBJ_FEATURE) { FEATURE *psFeature = IdToFeature(p.id, p.player); if (psFeature) ret = convFeature(psFeature, engine); } } else debug(LOG_ERROR, "label %s not found!", label.toUtf8().constData()); return ret; }
static QScriptValue js_addFeature(QScriptContext *context, QScriptEngine *engine) { ARG_STRING(2); return QScriptValue(convFeature(engine)); }