コード例 #1
0
ファイル: Simulation.cpp プロジェクト: GustavoPB/CeCe
object::Object* Simulation::buildObject(const String& name, object::Object::Type type)
{
    // Try to find object internal object type
    auto desc = findObjectType(name);

    if (desc)
    {
        // Create parent object
        auto obj = buildObject(desc->baseName);

        // Configure
        obj->configure(desc->config, *this);

        return obj;
    }

    Log::debug("Create object '", name, "'");

    // Create object with given name
    auto object = getPluginContext().createObject(name, *this, type);

    // Register module
    if (object)
        return addObject(std::move(object));

    Log::warning("Unable to create object: ", name, " (unsupported by library?)");

    return nullptr;
}
コード例 #2
0
char * getTextFromAnyVar (const variable & from) {
	switch (from.varType) {
		case SVT_STRING:
		return copyString (from.varData.theString);

		case SVT_FASTARRAY:
		{
			char * builder = copyString ("FAST:");
			char * builder2;
			char * grabText;

			for (int i = 0; i < from.varData.fastArray -> size; i ++) {
				builder2 = joinStrings (builder, " ");
				if (! builder2) return NULL;
				delete builder;
				grabText = getTextFromAnyVar (from.varData.fastArray -> fastVariables[i]);
				builder = joinStrings (builder2, grabText);
				if (! builder) return NULL;
				delete grabText;
				grabText = NULL;
				delete builder2;
				builder2 = NULL;
			}
			return builder;
		}

		case SVT_STACK:
		{
			char * builder = copyString ("ARRAY:");
			char * builder2;
			char * grabText;

			variableStack * stacky = from.varData.theStack -> first;

			while (stacky) {
				builder2 = joinStrings (builder, " ");
				if (! builder2) return NULL;
				delete builder;
				grabText = getTextFromAnyVar (stacky -> thisVar);
				builder = joinStrings (builder2, grabText);
				if (! builder) return NULL;
				delete grabText;
				grabText = NULL;
				delete builder2;
				builder2 = NULL;
				stacky = stacky -> next;
			}
			return builder;
		}

		case SVT_INT:
		{
			char * buff = new char[10];
			if (! checkNew (buff)) return NULL;
			sprintf (buff, "%i", from.varData.intValue);
			return buff;
		}

		case SVT_FILE:
		{
//			char * buff = new char[15];
//			if (! checkNew (buff)) return NULL;
//			sprintf (buff, "FILE %i", from.varData.intValue);
			return joinStrings ("", resourceNameFromNum (from.varData.intValue));
		}

/*		case SVT_ANIM:
		{
			char * buff = new char[20];
			if (! checkNew (buff)) return NULL;
			sprintf (buff, "%p", from.varData.animHandler);
			return buff;
		}*/

		case SVT_OBJTYPE:
		{
			objectType * thisType = findObjectType (from.varData.intValue);
			if (thisType) return copyString (thisType -> screenName);
		}

		default:
		break;
	}

	return copyString (typeName[from.varType]);
}