def playCutscene(self):
     name = CutsceneData.Cutscene3_1
     self.requestEndCutSent = False
     self.cutscene = Cutscene.Cutscene(self.cr, name, self.tryToEndCutscene)
     self.cutscene.play()
     self.cutscene.allowSkip = False
     self.acceptOnce('cutscene-not-skipped', self.tryToEndCutscene)
     f = render.getFog()
     if f:
         f.setExpDensity(0.0003)
    def startFinalizeScene(self, idx, giverId, endEvent=None):
        sceneInfo = self.questDNA.getFinalizeInfo()
        sceneToPlay = sceneInfo[idx]
        self.endEvent = endEvent
        if sceneToPlay.get('type') == 'dialog':
            npc = base.cr.doId2do.get(giverId)
            if npc == None:
                self.doneFinalizeScene()
                self.notify.warning('no npc %s found for %s' % (giverId, self))
                return None

            dialogId = sceneToPlay.get('sceneId')
            npc.playDialogMovie(dialogId, self.doneFinalizeScene,
                                self.prevLocalAvState)
            if self.prevLocalAvState == None:
                self.prevLocalAvState = npc.currentDialogMovie.oldGameState

        elif sceneToPlay.get('type') == 'cutscene':
            name = sceneToPlay.get('sceneId')
            preloadInfo = sceneToPlay.get('preloadInfo', [])
            for currPreload in preloadInfo:
                base.cr.preloadCutscene(currPreload)
                self.preloadedCutscenes.append(currPreload)

            plCutscene = base.cr.getPreloadedCutsceneInfo(name)
            if plCutscene == None or plCutscene.isEmpty():
                self.sceneObj = Cutscene.Cutscene(self.cr, name,
                                                  self.doneFinalizeScene,
                                                  giverId)
                self.sceneObj.play()
            else:
                self.sceneObj = plCutscene
                plCutscene.initialize(self.doneFinalizeScene, giverId, True)
                plCutscene.play()
            if self.prevLocalAvState == None:

                def cutsceneStarted():
                    localCutActor = self.sceneObj.getActor(
                        CutsceneActor.CutLocalPirate.getActorKey())
                    self.prevLocalAvState = localCutActor.oldParams.gameState

                self.sceneObj.setStartCallback(cutsceneStarted)
            else:
                self.sceneObj.overrideOldAvState(self.prevLocalAvState)
Esempio n. 3
0
 def preloadCutscene(self, name):
     if name not in self.preloadedCutscenes:
         newCutscene = Cutscene.Cutscene(self, name)
         self.preloadedCutscenes[name] = newCutscene