Merged changes in the trunk up to revision 26719.
[blender-staging.git] / source / blender / blenkernel / intern / scene.c
index 9a20943876e31e786fab8dea84209b2e6da56f9b..9603863b60fb2680c7bfaa0a885e6c70d781b2c9 100644 (file)
@@ -83,6 +83,7 @@
 #include "BKE_sequencer.h"
 #include "BKE_world.h"
 #include "BKE_utildefines.h"
+#include "BKE_sound.h"
 
 //XXX #include "BIF_previewrender.h"
 //XXX #include "BIF_editseq.h"
@@ -235,6 +236,8 @@ Scene *copy_scene(Main *bmain, Scene *sce, int type)
         }
        }
 
+       sound_create_scene(scen);
+
        return scen;
 }
 
@@ -322,6 +325,8 @@ void free_scene(Scene *sce)
 
        if(sce->stats)
                MEM_freeN(sce->stats);
+
+       sound_destroy_scene(sce);
 }
 
 Scene *add_scene(char *name)
@@ -487,6 +492,8 @@ Scene *add_scene(char *name)
        sce->gm.flag = GAME_DISPLAY_LISTS;
        sce->gm.matmode = GAME_MAT_MULTITEX;
 
+       sound_create_scene(sce);
+
        return sce;
 }
 
@@ -726,7 +733,7 @@ Object *scene_find_camera_switch(Scene *scene)
        Object *camera= NULL;
 
        for (m= scene->markers.first; m; m= m->next) {
-               if(m->camera && (m->frame <= cfra) && (m->frame > frame)) {
+               if(m->camera && (m->camera->restrictflag & OB_RESTRICT_RENDER)==0 && (m->frame <= cfra) && (m->frame > frame)) {
                        camera= m->camera;
                        frame= m->frame;