SceneObject::SceneObject(LuaObject* templateData) : Logger("SceneObject") {
	parent = NULL;

	objectID = 0;

	slottedObjects.setNullValue(NULL);
	objectName.setStringId(String(templateData->getStringField("objectName")));

	detailedDescription.setStringId(String(templateData->getStringField("detailedDescription")));

	containerType = templateData->getIntField("containerType");
	containerVolumeLimit = templateData->getIntField("containerVolumeLimit");

	gameObjectType = templateData->getIntField("gameObjectType");

	objectCRC = templateData->getIntField("clientObjectCRC");

	LuaObject arrangements = templateData->getObjectField("arrangementDescriptors");

	for (int i = 1; i <= arrangements.getTableSize(); ++i) {
		arrangementDescriptors.add(arrangements.getStringAt(i));
	}

	arrangements.pop();

	LuaObject slots = templateData->getObjectField("slotDescriptors");

	for (int i = 1; i <= slots.getTableSize(); ++i) {
		slotDescriptors.add(slots.getStringAt(i));
	}

	slots.pop();

	containmentType = 4;

	initializePosition(0.f, 0.f, 0.f);

	movementCounter = 0;

	setGlobalLogging(true);
	setLogging(false);

	String fullPath;
	objectName.getFullPath(fullPath);

	client = NULL;
	zone = NULL;

	info("created " + fullPath);
}
void SceneObjectImplementation::initializePrivateData() {
	pendingTasks = NULL;

	objectActiveSessions.setNullValue(NULL);
	objectActiveSessions.setNoDuplicateInsertPlan();

	server = NULL;

	templateObject = NULL;

	parent = NULL;

	sendToClient = true;

	movementCounter = 0;

	serverObjectCRC = 0;
	clientObjectCRC = 0;

	planetMapCategory = 0;
	planetMapSubCategory = 0;

	gameObjectType = 0;

	containmentType = 4;

	initializePosition(0.f, 0.f, 0.f);

	movementCounter = 0;

	staticObject = false;

	zone = NULL;

	containerType = 0;
	containerVolumeLimit = 0;
	containmentType = 0;

	setGlobalLogging(true);
	setLogging(false);

	setLoggingName("SceneObject");

	childObjects.setNoDuplicateInsertPlan();
}
void SliderWindow::startAnimation() {
	
#ifdef Q_WS_WIN
	if (isFullScreenAppRunning()) {
		return;
	}
#endif
	
	initializePosition();
	updateSizeAndPosition(0);
	show();
#ifdef Q_WS_X11
	raise();
#endif
	m_d->timeLine.setFrameRange(0, sliderHeight);
	m_d->timeLine.setDirection(QTimeLine::Forward);
	m_d->timeLine.start();
	
	m_d->isAnimating = true;
	m_d->isHovered = false;
}