Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDalai Felinto <dfelinto@gmail.com>2009-07-21 00:28:29 +0400
committerDalai Felinto <dfelinto@gmail.com>2009-07-21 00:28:29 +0400
commit9a9d118bbf7786b1c5c412bef651885e33709553 (patch)
tree55f15ebe16824610b6209e3507e4698ce54c03ac /source/blender/editors/space_buttons/buttons_context.c
parent1b7f1bc72dbbf2051eb015d219f2c89d43439cad (diff)
BGE panels: wip
Logic Panel: - world settings (moved from world) ... that includes physic engine selection + gravity - game player (from gamesettings, it wasn't wrapped) - stereo/dome (from gamesettings, it wasn't wrapped) ... separated stereom into stereoflag and stereomode - properties ... (didn't touch it) Buttons Game Panel: (wip panel) - Physics (moved from Logic Panel) ... it will be a datablock in the future (right Campbell ?) - Material Physics (not currently implemented) ... a datablock link to the materials of an object + the dynamic physic variables * NOTE: in readfile.c::do_version I couldn't do if(scene->world). There is something wrong with scenes with an unlinked world. So so far we are ignoring the old values....
Diffstat (limited to 'source/blender/editors/space_buttons/buttons_context.c')
-rw-r--r--source/blender/editors/space_buttons/buttons_context.c34
1 files changed, 31 insertions, 3 deletions
diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c
index b7e2a3325cb..9048565b01f 100644
--- a/source/blender/editors/space_buttons/buttons_context.c
+++ b/source/blender/editors/space_buttons/buttons_context.c
@@ -360,6 +360,32 @@ static int buttons_context_path_texture(ButsContextPath *path)
return 0;
}
+static int buttons_context_path_game(ButsContextPath *path)
+{
+ /* XXX temporary context. Using material slot instead of ob->game_data */
+ Object *ob;
+ PointerRNA *ptr= &path->ptr[path->len-1];
+ Material *ma;
+
+ /* if we already have a (pinned) material, we're done */
+ if(RNA_struct_is_a(ptr->type, &RNA_Material)) {
+ return 1;
+ }
+ /* if we have an object, use the object material slot */
+ else if(buttons_context_path_object(path)) {
+ ob= path->ptr[path->len-1].data;
+
+ if(ob && ob->type && (ob->type<OB_LAMP)) {
+ ma= give_current_material(ob, ob->actcol);
+ RNA_id_pointer_create(&ma->id, &path->ptr[path->len]);
+ path->len++;
+ return 1;
+ }
+ }
+
+ /* no path to a material possible */
+ return 0;
+}
static int buttons_context_path(const bContext *C, ButsContextPath *path, int mainb, int worldtex)
{
SpaceButs *sbuts= (SpaceButs*)CTX_wm_space_data(C);
@@ -404,6 +430,9 @@ static int buttons_context_path(const bContext *C, ButsContextPath *path, int ma
case BCONTEXT_DATA:
found= buttons_context_path_data(path, -1);
break;
+ case BCONTEXT_GAME:
+ found= buttons_context_path_game(path);
+ break;
case BCONTEXT_PARTICLE:
found= buttons_context_path_particle(path);
break;
@@ -496,8 +525,8 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
/* here we handle context, getting data from precomputed path */
if(CTX_data_dir(member)) {
static const char *dir[] = {
- "world", "object", "meshe", "armature", "lattice", "curve",
- "meta_ball", "lamp", "camera", "material", "material_slot",
+ "world", "object", "mesh", "armature", "lattice", "curve",
+ "meta_ball", "lamp", "camera", "material", "material_slot", "game",
"texture", "texture_slot", "bone", "edit_bone", "particle_system",
"cloth", "soft_body", "fluid", "collision", NULL};
@@ -736,4 +765,3 @@ void buttons_context_register(ARegionType *art)
pt->flag= PNL_NO_HEADER;
BLI_addtail(&art->paneltypes, pt);
}
-