void CmMergeUpdate(void *w, gpointer client_data) { struct narray farray; struct objlist *obj; int i, j; int *array, num; if (Menulock || Globallock) return; if ((obj = chkobject("merge")) == NULL) return; if (chkobjlastinst(obj) == -1) return; SelectDialog(&DlgSelect, obj, FileCB, (struct narray *) &farray, NULL); if (DialogExecute(TopLevel, &DlgSelect) == IDOK) { num = arraynum(&farray); array = arraydata(&farray); for (i = 0; i < num; i++) { MergeDialog(NgraphApp.MergeWin.data.data, array[i], -1); if (DialogExecute(TopLevel, &DlgMerge) == IDDELETE) { delobj(obj, array[i]); set_graph_modified(); for (j = i + 1; j < num; j++) array[j]--; } } MergeWinUpdate(NgraphApp.MergeWin.data.data, TRUE); } arraydel(&farray); }
DialogObject::DialogObject(QWidget *parent) : QDialog(parent), ui(new Ui::DialogObject), dialogItem(this) { ui->setupUi(this); ui->dialog->setEnabled(false); for (short i = 0 ; i < 4 ; ++i) ui->type->addItem(objectTypes[i]); connect(ui->interactionTalkTo, SIGNAL(toggled(bool)), ui->dialog, SLOT(setEnabled(bool))); connect(ui->type, SIGNAL(currentIndexChanged(QString)), this, SLOT(UpdateType(QString))); connect(this, SIGNAL(accepted()), this, SLOT(Apply())); connect(ui->buttonBox->button(QDialogButtonBox::Reset), SIGNAL(clicked()), this, SLOT(Reset())); connect(ui->itemList, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(ItemAdd())); connect(ui->inventory, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(OpenItemDialog())); connect(&dialogItem, SIGNAL(accepted()), this, SLOT(ItemSave())); connect(ui->toolSelectCharsheet, SIGNAL(clicked()), this, SLOT(SelectCharsheet())); connect(ui->toolSelectScript, SIGNAL(clicked()), this, SLOT(SelectScript())); connect(ui->toolSelectDialog, SIGNAL(clicked()), this, SLOT(SelectDialog())); connect(ui->modelPick, SIGNAL(clicked()), this, SLOT(SelectModel())); connect(ui->texturePick, SIGNAL(clicked()), this, SLOT(SelectTexture())); }
void CmMergeClose(void *w, gpointer client_data) { struct narray farray; struct objlist *obj; int i; int num, *array; if (Menulock || Globallock) return; if ((obj = chkobject("merge")) == NULL) return; if (chkobjlastinst(obj) == -1) return; SelectDialog(&DlgSelect, obj, FileCB, (struct narray *) &farray, NULL); if (DialogExecute(TopLevel, &DlgSelect) == IDOK) { num = arraynum(&farray); array = arraydata(&farray); for (i = num - 1; i >= 0; i--) { delobj(obj, array[i]); set_graph_modified(); } MergeWinUpdate(NgraphApp.MergeWin.data.data, TRUE); } arraydel(&farray); }
WorldObjectWidget::WorldObjectWidget(QWidget *parent) : QWidget(parent), ui(new Ui::WorldObjectWidget) { ui->setupUi(this); selection.object = 0; selection_type = 0; UnsetSelection(); ui->actionsButton->setMenu(&action_menu); connect(ui->objectName, SIGNAL(textChanged(QString)), this, SLOT(UpdateName(QString))); // Geometry connect(ui->objectPosX, SIGNAL(valueChanged(double)), this, SLOT(UpdateGeometry())); connect(ui->objectPosY, SIGNAL(valueChanged(double)), this, SLOT(UpdateGeometry())); connect(ui->objectPosZ, SIGNAL(valueChanged(double)), this, SLOT(UpdateGeometry())); connect(ui->objectRotationX, SIGNAL(valueChanged(double)), this, SLOT(UpdateGeometry())); connect(ui->objectRotationY, SIGNAL(valueChanged(double)), this, SLOT(UpdateGeometry())); connect(ui->objectRotationZ, SIGNAL(valueChanged(double)), this, SLOT(UpdateGeometry())); connect(ui->objectScaleX, SIGNAL(valueChanged(double)), this, SLOT(UpdateGeometry())); connect(ui->objectScaleY, SIGNAL(valueChanged(double)), this, SLOT(UpdateGeometry())); connect(ui->objectScaleZ, SIGNAL(valueChanged(double)), this, SLOT(UpdateGeometry())); connect(ui->objectFloor, SIGNAL(valueChanged(int)), this, SLOT(UpdateFloor())); connect(ui->inheritsFloor, SIGNAL(toggled(bool)), this, SLOT(UpdateFloor())); // Collider connect(ui->displayColliders, SIGNAL(toggled(bool)), this, SLOT(UpdateColliderDisplay())); connect(ui->collider_type, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateColliderType())); connect(ui->collider_pos_x, SIGNAL(valueChanged(double)), this, SLOT(UpdateColliderGeometry())); connect(ui->collider_pos_y, SIGNAL(valueChanged(double)), this, SLOT(UpdateColliderGeometry())); connect(ui->collider_pos_z, SIGNAL(valueChanged(double)), this, SLOT(UpdateColliderGeometry())); connect(ui->collider_hpr_x, SIGNAL(valueChanged(double)), this, SLOT(UpdateColliderGeometry())); connect(ui->collider_hpr_y, SIGNAL(valueChanged(double)), this, SLOT(UpdateColliderGeometry())); connect(ui->collider_hpr_z, SIGNAL(valueChanged(double)), this, SLOT(UpdateColliderGeometry())); connect(ui->collider_scale_x, SIGNAL(valueChanged(double)), this, SLOT(UpdateColliderGeometry())); connect(ui->collider_scale_y, SIGNAL(valueChanged(double)), this, SLOT(UpdateColliderGeometry())); connect(ui->collider_scale_z, SIGNAL(valueChanged(double)), this, SLOT(UpdateColliderGeometry())); // Light connect(ui->lightSetEnabled, SIGNAL(toggled(bool)), this, SLOT(LightSetEnabled(bool))); connect(ui->lightSetDisabled, SIGNAL(toggled(bool)), this, SLOT(LightSetDisabled(bool))); connect(ui->lightColorR, SIGNAL(valueChanged(double)), this, SLOT(UpdateLightColor())); connect(ui->lightColorG, SIGNAL(valueChanged(double)), this, SLOT(UpdateLightColor())); connect(ui->lightColorB, SIGNAL(valueChanged(double)), this, SLOT(UpdateLightColor())); connect(ui->lightAttenuationA, SIGNAL(valueChanged(double)), this, SLOT(UpdateLightAttenuation())); connect(ui->lightAttenuationB, SIGNAL(valueChanged(double)), this, SLOT(UpdateLightAttenuation())); connect(ui->lightAttenuationC, SIGNAL(valueChanged(double)), this, SLOT(UpdateLightAttenuation())); connect(ui->lightTypesList, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateLightType())); connect(ui->lightCompile, SIGNAL(clicked()), this, SLOT(LightCompile())); connect(ui->lightPriority, SIGNAL(valueChanged(int)), this, SLOT(UpdateLightPriority())); connect(ui->addLightTarget, SIGNAL(clicked()), this, SLOT(AddEnlightenedObject())); connect(ui->deleteLightTarget, SIGNAL(clicked()), this, SLOT(DeleteEnlightenedObject())); connect(ui->showFrustum, SIGNAL(toggled(bool)), this, SLOT(LightShowFrustum(bool))); connect(ui->lightTargets, SIGNAL(updatedPriority()), this, SLOT(UpdateEnlightenedObject())); connect(ui->lightTargets, SIGNAL(updatedPropagation()), this, SLOT(UpdateEnlightenedObject())); // Light -> Shadow caster connect(ui->shadowFilmSize, SIGNAL(valueChanged(int)), this, SLOT(UpdateShadowCaster())); connect(ui->shadowNear, SIGNAL(valueChanged(int)), this, SLOT(UpdateShadowCaster())); connect(ui->shadowFar, SIGNAL(valueChanged(int)), this, SLOT(UpdateShadowCaster())); connect(ui->shadowBufferSizeX, SIGNAL(valueChanged(int)), this, SLOT(UpdateShadowCaster())); connect(ui->shadowBufferSizeY, SIGNAL(valueChanged(int)), this, SLOT(UpdateShadowCaster())); // Render connect(ui->selectModel, SIGNAL(clicked()), this, SLOT(PickModel())); connect(ui->selectTexture, SIGNAL(clicked()), this, SLOT(PickTexture())); connect(ui->objectModel, SIGNAL(textChanged(QString)), this, SLOT(UpdateRender())); connect(ui->objectTexture, SIGNAL(textChanged(QString)), this, SLOT(UpdateRender())); connect(ui->objectFocus, SIGNAL(clicked()), this, SLOT(FocusCurrentObject())); connect(ui->useTexture, SIGNAL(toggled(bool)), this, SLOT(UpdateRender())); connect(ui->useColor, SIGNAL(toggled(bool)), this, SLOT(UpdateRender())); connect(ui->useOpacity, SIGNAL(toggled(bool)), this, SLOT(UpdateRender())); connect(ui->colorRed, SIGNAL(valueChanged(double)), SLOT(UpdateRender())); connect(ui->colorGreen, SIGNAL(valueChanged(double)), SLOT(UpdateRender())); connect(ui->colorBlue, SIGNAL(valueChanged(double)), SLOT(UpdateRender())); connect(ui->opacity, SIGNAL(valueChanged(double)), SLOT(UpdateRender())); connect(ui->objectToggleVisibility, SIGNAL(clicked()), this, SLOT(ToogleCurrentObject())); // Waypoint connect(ui->setCurrentWaypoint, SIGNAL(clicked()), this, SLOT(SetCurrentWaypoint())); connect(ui->selectCurrentWaypoint, SIGNAL(clicked()), this, SLOT(SelectCurrentWaypoint())); // Behaviour connect(ui->objectTypeList, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateBehaviour())); connect(ui->character, SIGNAL(textChanged(QString)), this, SLOT(UpdateBehaviour())); connect(ui->dialog, SIGNAL(textChanged(QString)), this, SLOT(UpdateBehaviour())); connect(ui->script, SIGNAL(textChanged(QString)), this, SLOT(UpdateBehaviour())); connect(ui->doorLocked, SIGNAL(toggled(bool)), this, SLOT(UpdateBehaviour())); connect(ui->key, SIGNAL(textChanged(QString)), this, SLOT(UpdateBehaviour())); connect(ui->interactionUse, SIGNAL(toggled(bool)), this, SLOT(UpdateBehaviour())); connect(ui->interactionUseSkill, SIGNAL(toggled(bool)), this, SLOT(UpdateBehaviour())); connect(ui->interactionUseSpell, SIGNAL(toggled(bool)), this, SLOT(UpdateBehaviour())); connect(ui->interactionUseObject, SIGNAL(toggled(bool)), this, SLOT(UpdateBehaviour())); connect(ui->interactionLookAt, SIGNAL(toggled(bool)), this, SLOT(UpdateBehaviour())); connect(ui->interactionTalkTo, SIGNAL(toggled(bool)), this, SLOT(UpdateBehaviour())); connect(ui->selectCharacter, SIGNAL(clicked()), this, SLOT(SelectCharacter())); connect(ui->selectItem, SIGNAL(clicked()), this, SLOT(SelectItem())); connect(ui->selectKey, SIGNAL(clicked()), this, SLOT(SelectKey())); connect(ui->selectScript, SIGNAL(clicked()), this, SLOT(SelectScript())); connect(ui->selectDialog, SIGNAL(clicked()), this, SLOT(SelectDialog())); // Render Particles connect(ui->particleEffectName, SIGNAL(textChanged(QString)), this, SLOT(UpdateParticleEffect())); connect(ui->showParticleEffect, SIGNAL(clicked()), this, SLOT(RestartParticleEffect())); connect(ui->selectParticleEffect, SIGNAL(clicked()), this, SLOT(SelectParticleEffect())); ui->actionsButton->setMenu(&action_menu); action_menu.addAction("Copy", this, SIGNAL(CopyRequested()), QKeySequence::Copy); action_menu.addAction("Paste", this, SIGNAL(PasteRequested()), QKeySequence::Paste); }