From 159806140fd33e6ddab951c0f6f180cfbf927d38 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Mon, 16 Apr 2018 14:07:42 +0200 Subject: Removing Blender Game Engine from Blender 2.8 Folders removed entirely: * //extern/recastnavigation * //intern/decklink * //intern/moto * //source/blender/editors/space_logic * //source/blenderplayer * //source/gameengine This includes DNA data and any reference to the BGE code in Blender itself. We are bumping the subversion. Pending tasks: * Tile/clamp code in image editor draw code. * Viewport drawing code (so much of this will go away because of BI removal that we can wait until then to remove this. --- source/blender/editors/object/CMakeLists.txt | 5 - source/blender/editors/object/object_add.c | 37 -- source/blender/editors/object/object_constraint.c | 9 - source/blender/editors/object/object_edit.c | 521 +--------------------- source/blender/editors/object/object_intern.h | 8 - source/blender/editors/object/object_lod.c | 114 ----- source/blender/editors/object/object_ops.c | 14 - source/blender/editors/object/object_relations.c | 5 - source/blender/editors/object/object_select.c | 38 +- 9 files changed, 4 insertions(+), 747 deletions(-) delete mode 100644 source/blender/editors/object/object_lod.c (limited to 'source/blender/editors/object') diff --git a/source/blender/editors/object/CMakeLists.txt b/source/blender/editors/object/CMakeLists.txt index 646b8137b2d..e25b04668bc 100644 --- a/source/blender/editors/object/CMakeLists.txt +++ b/source/blender/editors/object/CMakeLists.txt @@ -50,7 +50,6 @@ set(SRC object_facemap_ops.c object_group.c object_hook.c - object_lod.c object_modes.c object_modifier.c object_ops.c @@ -72,10 +71,6 @@ if(WITH_PYTHON) add_definitions(-DWITH_PYTHON) endif() -if(WITH_GAMEENGINE) - add_definitions(-DWITH_GAMEENGINE) -endif() - if(WITH_INTERNATIONAL) add_definitions(-DWITH_INTERNATIONAL) endif() diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index 4abd80a18e8..6f9f18d301e 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -48,7 +48,6 @@ #include "DNA_lightprobe_types.h" #include "DNA_scene_types.h" #include "DNA_vfont_types.h" -#include "DNA_actuator_types.h" #include "DNA_gpencil_types.h" #include "BLI_utildefines.h" @@ -88,7 +87,6 @@ #include "BKE_object.h" #include "BKE_particle.h" #include "BKE_report.h" -#include "BKE_sca.h" #include "BKE_scene.h" #include "BKE_screen.h" #include "BKE_speaker.h" @@ -440,12 +438,6 @@ Object *ED_object_add_type( /* more editor stuff */ ED_object_base_init_transform(C, view_layer->basact, loc, rot); - /* Ignore collisions by default for non-mesh objects */ - if (type != OB_MESH) { - ob->body_type = OB_BODY_TYPE_NO_COLLISION; - ob->gameflag &= ~(OB_SENSOR | OB_RIGID_BODY | OB_SOFT_BODY | OB_COLLISION | OB_CHARACTER | OB_OCCLUDER | OB_DYNAMIC | OB_NAVMESH); /* copied from rna_object.c */ - } - /* TODO(sergey): This is weird to manually tag objects for update, better to * use DEG_id_tag_update here perhaps. */ @@ -1347,8 +1339,6 @@ static void copy_object_set_idnew(bContext *C) } CTX_DATA_END; - set_sca_new_poins(); - BKE_main_id_clear_newpoins(bmain); } @@ -1502,7 +1492,6 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base, /* Remap new object to itself, and clear again newid pointer of orig object. */ BKE_libblock_relink_to_newid(&ob_dst->id); - set_sca_new_poins_ob(ob_dst); DEG_id_tag_update(&ob_dst->id, OB_RECALC_DATA); @@ -1659,10 +1648,6 @@ static void curvetomesh(Depsgraph *depsgraph, Scene *scene, Object *ob) if (ob->type == OB_MESH) { BKE_object_free_modifiers(ob, 0); - - /* Game engine defaults for mesh objects */ - ob->body_type = OB_BODY_TYPE_STATIC; - ob->gameflag = OB_PROP | OB_COLLISION; } } @@ -2277,25 +2262,10 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, ViewLayer } if (dupflag & USER_DUP_ACT) { - bActuator *act; - BKE_animdata_copy_id_action((ID *)obn->data, true); if (key) { BKE_animdata_copy_id_action((ID *)key, true); } - - /* Update the duplicated action in the action actuators */ - /* XXX TODO this code is all wrong! actact->act is user-refcounted (see readfile.c), - * and what about other ID pointers of other BGE logic bricks, - * and since this is object-level, why is it only ran if obdata was duplicated??? -mont29 */ - for (act = obn->actuators.first; act; act = act->next) { - if (act->type == ACT_ACTION) { - bActionActuator *actact = (bActionActuator *) act->data; - if (ob->adt && actact->act == ob->adt->action) { - actact->act = obn->adt->action; - } - } - } } if (dupflag & USER_DUP_MAT) { @@ -2331,8 +2301,6 @@ Base *ED_object_add_duplicate(Main *bmain, Scene *scene, ViewLayer *view_layer, Base *basen; Object *ob; - clear_sca_new_poins(); /* BGE logic */ - basen = object_add_duplicate_internal(bmain, scene, view_layer, base->object, dupflag); if (basen == NULL) { return NULL; @@ -2342,7 +2310,6 @@ Base *ED_object_add_duplicate(Main *bmain, Scene *scene, ViewLayer *view_layer, /* link own references to the newly duplicated data [#26816] */ BKE_libblock_relink_to_newid(&ob->id); - set_sca_new_poins_ob(ob); /* DAG_relations_tag_update(bmain); */ /* caller must do */ @@ -2364,8 +2331,6 @@ static int duplicate_exec(bContext *C, wmOperator *op) const bool linked = RNA_boolean_get(op->ptr, "linked"); int dupflag = (linked) ? 0 : U.dupflag; - clear_sca_new_poins(); /* BGE logic */ - CTX_DATA_BEGIN (C, Base *, base, selected_bases) { Base *basen = object_add_duplicate_internal(bmain, scene, view_layer, base->object, dupflag); @@ -2449,8 +2414,6 @@ static int add_named_exec(bContext *C, wmOperator *op) } /* prepare dupli */ - clear_sca_new_poins(); /* BGE logic */ - basen = object_add_duplicate_internal(bmain, scene, view_layer, ob, dupflag); if (basen == NULL) { diff --git a/source/blender/editors/object/object_constraint.c b/source/blender/editors/object/object_constraint.c index ca742222d81..95778b73e55 100644 --- a/source/blender/editors/object/object_constraint.c +++ b/source/blender/editors/object/object_constraint.c @@ -1615,11 +1615,6 @@ static bool get_new_constraint_target(bContext *C, int con_type, Object **tar_ob only_ob = true; add = false; break; - - /* object only - add here is ok? */ - case CONSTRAINT_TYPE_RIGIDBODYJOINT: - only_ob = true; - break; } /* if the active Object is Armature, and we can search for bones, do so... */ @@ -1748,10 +1743,6 @@ static int constraint_add_exec(bContext *C, wmOperator *op, Object *ob, ListBase if (type == CONSTRAINT_TYPE_NULL) { return OPERATOR_CANCELLED; } - if ((type == CONSTRAINT_TYPE_RIGIDBODYJOINT) && (list != &ob->constraints)) { - BKE_report(op->reports, RPT_ERROR, "Rigid Body Joint constraint can only be added to objects"); - return OPERATOR_CANCELLED; - } if ((type == CONSTRAINT_TYPE_KINEMATIC) && ((!pchan) || (list != &pchan->constraints))) { BKE_report(op->reports, RPT_ERROR, "IK constraint can only be added to bones"); return OPERATOR_CANCELLED; diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index e884989b6b5..5565565c679 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -51,7 +51,6 @@ #include "DNA_group_types.h" #include "DNA_material_types.h" #include "DNA_meta_types.h" -#include "DNA_property_types.h" #include "DNA_scene_types.h" #include "DNA_object_types.h" #include "DNA_object_force_types.h" @@ -80,8 +79,6 @@ #include "BKE_object.h" #include "BKE_paint.h" #include "BKE_pointcache.h" -#include "BKE_property.h" -#include "BKE_sca.h" #include "BKE_softbody.h" #include "BKE_modifier.h" #include "BKE_editlattice.h" @@ -613,102 +610,6 @@ void OBJECT_OT_posemode_toggle(wmOperatorType *ot) ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } -static void copymenu_properties(ViewLayer *view_layer, Object *ob) -{ -//XXX no longer used - to be removed - replaced by game_properties_copy_exec - bProperty *prop; - Base *base; - int nr, tot = 0; - char *str; - - prop = ob->prop.first; - while (prop) { - tot++; - prop = prop->next; - } - - str = MEM_callocN(50 + 33 * tot, "copymenu prop"); - - if (tot) - strcpy(str, "Copy Property %t|Replace All|Merge All|%l"); - else - strcpy(str, "Copy Property %t|Clear All (no properties on active)"); - - tot = 0; - prop = ob->prop.first; - while (prop) { - tot++; - strcat(str, "|"); - strcat(str, prop->name); - prop = prop->next; - } - - nr = pupmenu(str); - - if (nr == 1 || nr == 2) { - for (base = FIRSTBASE(view_layer); base; base = base->next) { - if ((base != BASACT(view_layer)) && (TESTBASELIB(base))) { - if (nr == 1) { /* replace */ - BKE_bproperty_copy_list(&base->object->prop, &ob->prop); - } - else { - for (prop = ob->prop.first; prop; prop = prop->next) { - BKE_bproperty_object_set(base->object, prop); - } - } - } - } - } - else if (nr > 0) { - prop = BLI_findlink(&ob->prop, nr - 4); /* account for first 3 menu items & menu index starting at 1*/ - - if (prop) { - for (base = FIRSTBASE(view_layer); base; base = base->next) { - if ((base != BASACT(view_layer)) && (TESTBASELIB(base))) { - BKE_bproperty_object_set(base->object, prop); - } - } - } - } - MEM_freeN(str); - -} - -static void copymenu_logicbricks(ViewLayer *view_layer, Object *ob) -{ -//XXX no longer used - to be removed - replaced by logicbricks_copy_exec - Base *base; - - for (base = FIRSTBASE(view_layer); base; base = base->next) { - if (base->object != ob) { - if (TESTBASELIB(base)) { - - /* first: free all logic */ - free_sensors(&base->object->sensors); - unlink_controllers(&base->object->controllers); - free_controllers(&base->object->controllers); - unlink_actuators(&base->object->actuators); - free_actuators(&base->object->actuators); - - /* now copy it, this also works without logicbricks! */ - clear_sca_new_poins_ob(ob); - copy_sensors(&base->object->sensors, &ob->sensors, 0); - copy_controllers(&base->object->controllers, &ob->controllers, 0); - copy_actuators(&base->object->actuators, &ob->actuators, 0); - set_sca_new_poins_ob(base->object); - - /* some menu settings */ - base->object->scavisflag = ob->scavisflag; - base->object->scaflag = ob->scaflag; - - /* set the initial state */ - base->object->state = ob->state; - base->object->init_state = ob->init_state; - } - } - } -} - /* both pointers should exist */ static void copy_texture_space(Object *to, Object *ob) { @@ -776,15 +677,8 @@ static void copy_attr(Main *bmain, Scene *scene, ViewLayer *view_layer, short ev /* obedit_copymenu(); */ return; } - if (event == 9) { - copymenu_properties(view_layer, ob); - return; - } - else if (event == 10) { - copymenu_logicbricks(view_layer, ob); - return; - } - else if (event == 24) { + + if (event == 24) { /* moved to BKE_object_link_modifiers */ /* copymenu_modifiers(bmain, scene, v3d, ob); */ return; @@ -832,30 +726,6 @@ static void copy_attr(Main *bmain, Scene *scene, ViewLayer *view_layer, short ev if (ob->dup_group) id_us_plus(&ob->dup_group->id); } - else if (event == 7) { /* mass */ - base->object->mass = ob->mass; - } - else if (event == 8) { /* damping */ - base->object->damping = ob->damping; - base->object->rdamping = ob->rdamping; - } - else if (event == 11) { /* all physical attributes */ - base->object->gameflag = ob->gameflag; - base->object->inertia = ob->inertia; - base->object->formfactor = ob->formfactor; - base->object->damping = ob->damping; - base->object->rdamping = ob->rdamping; - base->object->min_vel = ob->min_vel; - base->object->max_vel = ob->max_vel; - base->object->min_angvel = ob->min_angvel; - base->object->max_angvel = ob->max_angvel; - if (ob->gameflag & OB_BOUNDS) { - base->object->collision_boundtype = ob->collision_boundtype; - } - base->object->margin = ob->margin; - base->object->bsoft = copy_bulletsoftbody(ob->bsoft, 0); - - } else if (event == 17) { /* tex space */ copy_texture_space(base->object, ob); } @@ -1641,393 +1511,6 @@ void OBJECT_OT_mode_set(wmOperatorType *ot) RNA_def_property_flag(prop, PROP_SKIP_SAVE); } -/************************ Game Properties ***********************/ - -static int game_property_new_exec(bContext *C, wmOperator *op) -{ - Object *ob = CTX_data_active_object(C); - bProperty *prop; - char name[MAX_NAME]; - int type = RNA_enum_get(op->ptr, "type"); - - prop = BKE_bproperty_new(type); - BLI_addtail(&ob->prop, prop); - - RNA_string_get(op->ptr, "name", name); - if (name[0] != '\0') { - BLI_strncpy(prop->name, name, sizeof(prop->name)); - } - - BLI_uniquename(&ob->prop, prop, DATA_("Property"), '.', offsetof(bProperty, name), sizeof(prop->name)); - - WM_event_add_notifier(C, NC_LOGIC, NULL); - return OPERATOR_FINISHED; -} - - -void OBJECT_OT_game_property_new(wmOperatorType *ot) -{ - /* identifiers */ - ot->name = "New Game Property"; - ot->description = "Create a new property available to the game engine"; - ot->idname = "OBJECT_OT_game_property_new"; - - /* api callbacks */ - ot->exec = game_property_new_exec; - ot->poll = ED_operator_object_active_editable; - - /* flags */ - ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; - - RNA_def_enum(ot->srna, "type", rna_enum_gameproperty_type_items, GPROP_FLOAT, "Type", "Type of game property to add"); - RNA_def_string(ot->srna, "name", NULL, MAX_NAME, "Name", "Name of the game property to add"); -} - -static int game_property_remove_exec(bContext *C, wmOperator *op) -{ - Object *ob = CTX_data_active_object(C); - bProperty *prop; - int index = RNA_int_get(op->ptr, "index"); - - if (!ob) - return OPERATOR_CANCELLED; - - prop = BLI_findlink(&ob->prop, index); - - if (prop) { - BLI_remlink(&ob->prop, prop); - BKE_bproperty_free(prop); - - WM_event_add_notifier(C, NC_LOGIC, NULL); - return OPERATOR_FINISHED; - } - else { - return OPERATOR_CANCELLED; - } -} - -void OBJECT_OT_game_property_remove(wmOperatorType *ot) -{ - /* identifiers */ - ot->name = "Remove Game Property"; - ot->description = "Remove game property"; - ot->idname = "OBJECT_OT_game_property_remove"; - - /* api callbacks */ - ot->exec = game_property_remove_exec; - ot->poll = ED_operator_object_active_editable; - - /* flags */ - ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; - - RNA_def_int(ot->srna, "index", 0, 0, INT_MAX, "Index", "Property index to remove ", 0, INT_MAX); -} - -#define GAME_PROPERTY_MOVE_UP 1 -#define GAME_PROPERTY_MOVE_DOWN -1 - -static int game_property_move(bContext *C, wmOperator *op) -{ - Object *ob = CTX_data_active_object(C); - bProperty *prop; - bProperty *otherprop = NULL; - const int index = RNA_int_get(op->ptr, "index"); - const int dir = RNA_enum_get(op->ptr, "direction"); - - if (ob == NULL) - return OPERATOR_CANCELLED; - - prop = BLI_findlink(&ob->prop, index); - /* invalid index */ - if (prop == NULL) - return OPERATOR_CANCELLED; - - if (dir == GAME_PROPERTY_MOVE_UP) { - otherprop = prop->prev; - } - else if (dir == GAME_PROPERTY_MOVE_DOWN) { - otherprop = prop->next; - } - else { - BLI_assert(0); - } - - if (prop && otherprop) { - BLI_listbase_swaplinks(&ob->prop, prop, otherprop); - - WM_event_add_notifier(C, NC_LOGIC, NULL); - return OPERATOR_FINISHED; - } - else { - return OPERATOR_CANCELLED; - } -} - -void OBJECT_OT_game_property_move(wmOperatorType *ot) -{ - static const EnumPropertyItem direction_property_move[] = { - {GAME_PROPERTY_MOVE_UP, "UP", 0, "Up", ""}, - {GAME_PROPERTY_MOVE_DOWN, "DOWN", 0, "Down", ""}, - {0, NULL, 0, NULL, NULL} - }; - PropertyRNA *prop; - - /* identifiers */ - ot->name = "Move Game Property"; - ot->description = "Move game property"; - ot->idname = "OBJECT_OT_game_property_move"; - - /* api callbacks */ - ot->exec = game_property_move; - ot->poll = ED_operator_object_active_editable; - - /* flags */ - ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; - - /* properties */ - prop = RNA_def_int(ot->srna, "index", 0, 0, INT_MAX, "Index", "Property index to move", 0, INT_MAX); - RNA_def_property_flag(prop, PROP_HIDDEN); - RNA_def_enum(ot->srna, "direction", direction_property_move, 0, "Direction", - "Direction for moving the property"); -} - -#undef GAME_PROPERTY_MOVE_UP -#undef GAME_PROPERTY_MOVE_DOWN - -#define COPY_PROPERTIES_REPLACE 1 -#define COPY_PROPERTIES_MERGE 2 -#define COPY_PROPERTIES_COPY 3 - -static const EnumPropertyItem game_properties_copy_operations[] = { - {COPY_PROPERTIES_REPLACE, "REPLACE", 0, "Replace Properties", ""}, - {COPY_PROPERTIES_MERGE, "MERGE", 0, "Merge Properties", ""}, - {COPY_PROPERTIES_COPY, "COPY", 0, "Copy a Property", ""}, - {0, NULL, 0, NULL, NULL} -}; - -static const EnumPropertyItem *gameprops_itemf(bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free) -{ - Object *ob = ED_object_active_context(C); - EnumPropertyItem tmp = {0, "", 0, "", ""}; - EnumPropertyItem *item = NULL; - bProperty *prop; - int a, totitem = 0; - - if (!ob) - return DummyRNA_NULL_items; - - for (a = 1, prop = ob->prop.first; prop; prop = prop->next, a++) { - tmp.value = a; - tmp.identifier = prop->name; - tmp.name = prop->name; - RNA_enum_item_add(&item, &totitem, &tmp); - } - - RNA_enum_item_end(&item, &totitem); - *r_free = true; - - return item; -} - -static int game_property_copy_exec(bContext *C, wmOperator *op) -{ - Object *ob = ED_object_active_context(C); - bProperty *prop; - int type = RNA_enum_get(op->ptr, "operation"); - int propid = RNA_enum_get(op->ptr, "property"); - - if (propid > 0) { /* copy */ - prop = BLI_findlink(&ob->prop, propid - 1); - - if (prop) { - CTX_DATA_BEGIN(C, Object *, ob_iter, selected_editable_objects) - { - if (ob != ob_iter) - BKE_bproperty_object_set(ob_iter, prop); - } CTX_DATA_END; - } - } - - else { - CTX_DATA_BEGIN(C, Object *, ob_iter, selected_editable_objects) - { - if (ob != ob_iter) { - if (type == COPY_PROPERTIES_REPLACE) { - BKE_bproperty_copy_list(&ob_iter->prop, &ob->prop); - } - else { - /* merge - the default when calling with no argument */ - for (prop = ob->prop.first; prop; prop = prop->next) { - BKE_bproperty_object_set(ob_iter, prop); - } - } - } - } - CTX_DATA_END; - } - - return OPERATOR_FINISHED; -} - -void OBJECT_OT_game_property_copy(wmOperatorType *ot) -{ - PropertyRNA *prop; - /* identifiers */ - ot->name = "Copy Game Property"; - ot->idname = "OBJECT_OT_game_property_copy"; - ot->description = "Copy/merge/replace a game property from active object to all selected objects"; - - /* api callbacks */ - ot->exec = game_property_copy_exec; - ot->poll = ED_operator_object_active_editable; - - /* flags */ - ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; - - RNA_def_enum(ot->srna, "operation", game_properties_copy_operations, 3, "Operation", ""); - prop = RNA_def_enum(ot->srna, "property", DummyRNA_NULL_items, 0, "Property", "Properties to copy"); - RNA_def_property_flag(prop, PROP_SKIP_SAVE | PROP_ENUM_NO_TRANSLATE); - RNA_def_enum_funcs(prop, gameprops_itemf); - ot->prop = prop; -} - -static int game_property_clear_exec(bContext *C, wmOperator *UNUSED(op)) -{ - CTX_DATA_BEGIN(C, Object *, ob_iter, selected_editable_objects) - { - BKE_bproperty_free_list(&ob_iter->prop); - } - CTX_DATA_END; - - WM_event_add_notifier(C, NC_LOGIC, NULL); - return OPERATOR_FINISHED; -} -void OBJECT_OT_game_property_clear(wmOperatorType *ot) -{ - /* identifiers */ - ot->name = "Clear Game Properties"; - ot->idname = "OBJECT_OT_game_property_clear"; - ot->description = "Remove all game properties from all selected objects"; - - /* api callbacks */ - ot->exec = game_property_clear_exec; - ot->poll = ED_operator_object_active_editable; - - /* flags */ - ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; -} - -/************************ Copy Logic Bricks ***********************/ - -static int logicbricks_copy_exec(bContext *C, wmOperator *UNUSED(op)) -{ - Object *ob = ED_object_active_context(C); - - CTX_DATA_BEGIN(C, Object *, ob_iter, selected_editable_objects) - { - if (ob != ob_iter) { - /* first: free all logic */ - free_sensors(&ob_iter->sensors); - unlink_controllers(&ob_iter->controllers); - free_controllers(&ob_iter->controllers); - unlink_actuators(&ob_iter->actuators); - free_actuators(&ob_iter->actuators); - - /* now copy it, this also works without logicbricks! */ - clear_sca_new_poins_ob(ob); - copy_sensors(&ob_iter->sensors, &ob->sensors, 0); - copy_controllers(&ob_iter->controllers, &ob->controllers, 0); - copy_actuators(&ob_iter->actuators, &ob->actuators, 0); - set_sca_new_poins_ob(ob_iter); - - /* some menu settings */ - ob_iter->scavisflag = ob->scavisflag; - ob_iter->scaflag = ob->scaflag; - - /* set the initial state */ - ob_iter->state = ob->state; - ob_iter->init_state = ob->init_state; - - if (ob_iter->totcol == ob->totcol) { - ob_iter->actcol = ob->actcol; - WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob_iter); - } - } - } - CTX_DATA_END; - - WM_event_add_notifier(C, NC_LOGIC, NULL); - - return OPERATOR_FINISHED; -} - -void OBJECT_OT_logic_bricks_copy(wmOperatorType *ot) -{ - /* identifiers */ - ot->name = "Copy Logic Bricks to Selected"; - ot->description = "Copy logic bricks to other selected objects"; - ot->idname = "OBJECT_OT_logic_bricks_copy"; - - /* api callbacks */ - ot->exec = logicbricks_copy_exec; - ot->poll = ED_operator_object_active_editable; - - /* flags */ - ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; -} - -static int game_physics_copy_exec(bContext *C, wmOperator *UNUSED(op)) -{ - Object *ob = ED_object_active_context(C); - - CTX_DATA_BEGIN(C, Object *, ob_iter, selected_editable_objects) - { - if (ob != ob_iter) { - ob_iter->gameflag = ob->gameflag; - ob_iter->gameflag2 = ob->gameflag2; - ob_iter->inertia = ob->inertia; - ob_iter->formfactor = ob->formfactor; - ob_iter->damping = ob->damping; - ob_iter->rdamping = ob->rdamping; - ob_iter->min_vel = ob->min_vel; - ob_iter->max_vel = ob->max_vel; - ob_iter->min_angvel = ob->min_angvel; - ob_iter->max_angvel = ob->max_angvel; - ob_iter->obstacleRad = ob->obstacleRad; - ob_iter->mass = ob->mass; - copy_v3_v3(ob_iter->anisotropicFriction, ob->anisotropicFriction); - ob_iter->collision_boundtype = ob->collision_boundtype; - ob_iter->margin = ob->margin; - ob_iter->bsoft = copy_bulletsoftbody(ob->bsoft, 0); - if (ob->restrictflag & OB_RESTRICT_RENDER) - ob_iter->restrictflag |= OB_RESTRICT_RENDER; - else - ob_iter->restrictflag &= ~OB_RESTRICT_RENDER; - - ob_iter->col_group = ob->col_group; - ob_iter->col_mask = ob->col_mask; - } - } - CTX_DATA_END; - - return OPERATOR_FINISHED; -} - -void OBJECT_OT_game_physics_copy(struct wmOperatorType *ot) -{ - /* identifiers */ - ot->name = "Copy Game Physics Properties to Selected"; - ot->description = "Copy game physics properties to other selected objects"; - ot->idname = "OBJECT_OT_game_physics_copy"; - - /* api callbacks */ - ot->exec = game_physics_copy_exec; - ot->poll = ED_operator_object_active_editable; - - /* flags */ - ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; -} - bool ED_object_editmode_calc_active_center(Object *obedit, const bool select_only, float r_center[3]) { switch (obedit->type) { diff --git a/source/blender/editors/object/object_intern.h b/source/blender/editors/object/object_intern.h index 75117ccdce3..5025ca5bb96 100644 --- a/source/blender/editors/object/object_intern.h +++ b/source/blender/editors/object/object_intern.h @@ -87,14 +87,6 @@ void OBJECT_OT_paths_update(struct wmOperatorType *ot); void OBJECT_OT_paths_clear(struct wmOperatorType *ot); void OBJECT_OT_forcefield_toggle(struct wmOperatorType *ot); -void OBJECT_OT_game_property_new(struct wmOperatorType *ot); -void OBJECT_OT_game_property_remove(struct wmOperatorType *ot); -void OBJECT_OT_game_property_copy(struct wmOperatorType *ot); -void OBJECT_OT_game_property_clear(struct wmOperatorType *ot); -void OBJECT_OT_game_property_move(struct wmOperatorType *ot); -void OBJECT_OT_logic_bricks_copy(struct wmOperatorType *ot); -void OBJECT_OT_game_physics_copy(struct wmOperatorType *ot); - void OBJECT_OT_move_to_collection(struct wmOperatorType *ot); /* object_select.c */ diff --git a/source/blender/editors/object/object_lod.c b/source/blender/editors/object/object_lod.c deleted file mode 100644 index ced306178b8..00000000000 --- a/source/blender/editors/object/object_lod.c +++ /dev/null @@ -1,114 +0,0 @@ -/* - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) Blender Foundation - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file blender/editors/object/object_lod.c - * \ingroup edobj - */ - -#include "DNA_object_types.h" - -#include "BKE_context.h" - -#include "WM_api.h" -#include "WM_types.h" - -#include "RNA_access.h" -#include "RNA_define.h" - -#include "ED_screen.h" -#include "ED_object.h" - -#ifdef WITH_GAMEENGINE -# include "BKE_object.h" - -# include "RNA_enum_types.h" -#endif - -#include "object_intern.h" - -static int object_lod_add_exec(bContext *C, wmOperator *UNUSED(op)) -{ - Object *ob = ED_object_context(C); - -#ifdef WITH_GAMEENGINE - BKE_object_lod_add(ob); -#else - (void)ob; -#endif - - return OPERATOR_FINISHED; -} - -void OBJECT_OT_lod_add(wmOperatorType *ot) -{ - /* identifiers */ - ot->name = "Add Level of Detail"; - ot->description = "Add a level of detail to this object"; - ot->idname = "OBJECT_OT_lod_add"; - - /* api callbacks */ - ot->exec = object_lod_add_exec; - ot->poll = ED_operator_object_active; - - /* flags */ - ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; -} - -static int object_lod_remove_exec(bContext *C, wmOperator *op) -{ - Object *ob = ED_object_context(C); - int index = RNA_int_get(op->ptr, "index"); - -#ifdef WITH_GAMEENGINE - if (!BKE_object_lod_remove(ob, index)) - return OPERATOR_CANCELLED; -#else - (void)ob; - (void)index; -#endif - - WM_event_add_notifier(C, NC_OBJECT | ND_LOD, CTX_wm_view3d(C)); - return OPERATOR_FINISHED; -} - -void OBJECT_OT_lod_remove(wmOperatorType *ot) -{ - /* identifiers */ - ot->name = "Remove Level of Detail"; - ot->description = "Remove a level of detail from this object"; - ot->idname = "OBJECT_OT_lod_remove"; - - /* api callbacks */ - ot->exec = object_lod_remove_exec; - ot->poll = ED_operator_object_active; - - /* flags */ - ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; - - /* properties */ - ot->prop = RNA_def_int(ot->srna, "index", 1, 1, INT_MAX, "Index", "", 1, INT_MAX); -} diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c index 66dc17fe77d..c4c86b3932d 100644 --- a/source/blender/editors/object/object_ops.c +++ b/source/blender/editors/object/object_ops.c @@ -212,14 +212,6 @@ void ED_operatortypes_object(void) WM_operatortype_append(TRANSFORM_OT_vertex_warp); - WM_operatortype_append(OBJECT_OT_game_property_new); - WM_operatortype_append(OBJECT_OT_game_property_remove); - WM_operatortype_append(OBJECT_OT_game_property_copy); - WM_operatortype_append(OBJECT_OT_game_property_clear); - WM_operatortype_append(OBJECT_OT_game_property_move); - WM_operatortype_append(OBJECT_OT_logic_bricks_copy); - WM_operatortype_append(OBJECT_OT_game_physics_copy); - WM_operatortype_append(OBJECT_OT_move_to_collection); WM_operatortype_append(OBJECT_OT_shape_key_add); @@ -249,9 +241,6 @@ void ED_operatortypes_object(void) WM_operatortype_append(OBJECT_OT_unlink_data); WM_operatortype_append(OBJECT_OT_laplaciandeform_bind); - WM_operatortype_append(OBJECT_OT_lod_add); - WM_operatortype_append(OBJECT_OT_lod_remove); - WM_operatortype_append(TRANSFORM_OT_vertex_random); WM_operatortype_append(OBJECT_OT_data_transfer); @@ -327,9 +316,6 @@ void ED_keymap_object(wmKeyConfig *keyconf) ED_keymap_proportional_cycle(keyconf, keymap); ED_keymap_proportional_obmode(keyconf, keymap); - /* game-engine only, leave free for users to define */ - WM_keymap_add_item(keymap, "VIEW3D_OT_game_start", PKEY, KM_PRESS, 0, 0); - kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_all", AKEY, KM_PRESS, 0, 0); RNA_enum_set(kmi->ptr, "action", SEL_TOGGLE); kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_all", IKEY, KM_PRESS, KM_CTRL, 0); diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index 417c32a71e9..0e0f2784936 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -89,7 +89,6 @@ #include "BKE_node.h" #include "BKE_object.h" #include "BKE_report.h" -#include "BKE_sca.h" #include "BKE_scene.h" #include "BKE_speaker.h" #include "BKE_texture.h" @@ -1681,8 +1680,6 @@ static void single_object_users(Main *bmain, Scene *scene, View3D *v3d, const in { Group *group, *groupn; - clear_sca_new_poins(); /* BGE logic */ - /* duplicate all the objects of the scene */ SceneCollection *msc = BKE_collection_master(&scene->id); single_object_users_scene_collection(bmain, scene, msc, flag, copy_groups); @@ -1728,8 +1725,6 @@ static void single_object_users(Main *bmain, Scene *scene, View3D *v3d, const in /* object and group pointers */ libblock_relink_scene_collection(msc); - - set_sca_new_poins(); } /* not an especially efficient function, only added so the single user diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c index cd1300dd52e..d958381efe7 100644 --- a/source/blender/editors/object/object_select.c +++ b/source/blender/editors/object/object_select.c @@ -37,7 +37,6 @@ #include "DNA_group_types.h" #include "DNA_material_types.h" #include "DNA_modifier_types.h" -#include "DNA_property_types.h" #include "DNA_scene_types.h" #include "DNA_armature_types.h" #include "DNA_lamp_types.h" @@ -59,7 +58,6 @@ #include "BKE_object.h" #include "BKE_particle.h" #include "BKE_paint.h" -#include "BKE_property.h" #include "BKE_report.h" #include "BKE_scene.h" #include "BKE_workspace.h" @@ -504,9 +502,8 @@ enum { OBJECT_GRPSEL_HOOK = 7, OBJECT_GRPSEL_PASS = 8, OBJECT_GRPSEL_COLOR = 9, - OBJECT_GRPSEL_PROPERTIES = 10, - OBJECT_GRPSEL_KEYINGSET = 11, - OBJECT_GRPSEL_LAMP_TYPE = 12, + OBJECT_GRPSEL_KEYINGSET = 10, + OBJECT_GRPSEL_LAMP_TYPE = 11, }; static const EnumPropertyItem prop_select_grouped_types[] = { @@ -520,7 +517,6 @@ static const EnumPropertyItem prop_select_grouped_types[] = { {OBJECT_GRPSEL_HOOK, "HOOK", 0, "Hook", ""}, {OBJECT_GRPSEL_PASS, "PASS", 0, "Pass", "Render pass Index"}, {OBJECT_GRPSEL_COLOR, "COLOR", 0, "Color", "Object Color"}, - {OBJECT_GRPSEL_PROPERTIES, "PROPERTIES", 0, "Properties", "Game Properties"}, {OBJECT_GRPSEL_KEYINGSET, "KEYINGSET", 0, "Keying Set", "Objects included in active Keying Set"}, {OBJECT_GRPSEL_LAMP_TYPE, "LAMP_TYPE", 0, "Lamp Type", "Matching lamp types"}, {0, NULL, 0, NULL, NULL} @@ -773,33 +769,6 @@ static bool select_grouped_color(bContext *C, Object *ob) return changed; } -static bool objects_share_gameprop(Object *a, Object *b) -{ - bProperty *prop; - - for (prop = a->prop.first; prop; prop = prop->next) { - if (BKE_bproperty_object_get(b, prop->name)) { - return 1; - } - } - return 0; -} - -static bool select_grouped_gameprops(bContext *C, Object *ob) -{ - bool changed = false; - - CTX_DATA_BEGIN (C, Base *, base, selectable_bases) - { - if (((base->flag & BASE_SELECTED) == 0) && (objects_share_gameprop(base->object, ob))) { - ED_object_base_select(base, BA_SELECT); - changed = true; - } - } - CTX_DATA_END; - return changed; -} - static bool select_grouped_keyingset(bContext *C, Object *UNUSED(ob), ReportList *reports) { KeyingSet *ks = ANIM_scene_get_active_keyingset(CTX_data_scene(C)); @@ -907,9 +876,6 @@ static int object_select_grouped_exec(bContext *C, wmOperator *op) case OBJECT_GRPSEL_COLOR: changed |= select_grouped_color(C, ob); break; - case OBJECT_GRPSEL_PROPERTIES: - changed |= select_grouped_gameprops(C, ob); - break; case OBJECT_GRPSEL_KEYINGSET: changed |= select_grouped_keyingset(C, ob, op->reports); break; -- cgit v1.2.3