Ejemplo n.º 1
0
void ObjectInterface::commandDeleteObject(void) {
	int32_t id = cb->popValue().getInt();
	CBObject *object = getObject(id);
	if (object->type() == CBObject::ParticleEmitter) {
		objectMap.erase(id);
		cb->effectInterface->deleteParticleEmitter(static_cast<CBParticleEmitter*>(object));
		return;
	}

	for(std::vector<CBObject*>::iterator i = pickableObjects.begin(); i != pickableObjects.end(); i++) {
		if(*i == object) {
			i = pickableObjects.erase(i);
			break;
		}
	}

	// Remove possible collision checks
	removeFromCollisionCheck(object);

	if (object->type() == CBObject::Object) {
		removeFromDrawOrder(object);
		delete object;
	}
	else if (object->type() == CBObject::Map) {
		removeFromDrawOrder(object);
		cb->mapInterface->deleteTileMap();
	}
	objectMap.erase(id);
}
Ejemplo n.º 2
0
void ObjectInterface::commandDeleteObject(void) {
	int32_t id = cb->popValue().getInt();
	CBObject *object = getObject(id);
	if (object->type() == CBObject::ParticleEmitter) {
		objectMap.erase(id);
		cb->deleteParticleEmitter(static_cast<CBParticleEmitter*>(object));
		return;
	}
	// Remove possible collision checks
	removeFromCollisionCheck(object);

	if (object->type() == CBObject::Object) {
		removeFromDrawOrder(object);
		delete object;
	}
	else if (object->type() == CBObject::Map) {
		removeFromDrawOrder(object);
		cb->deleteTileMap();
	}
	objectMap.erase(id);
}