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)
def preloadCutscene(self, name): if name not in self.preloadedCutscenes: newCutscene = Cutscene.Cutscene(self, name) self.preloadedCutscenes[name] = newCutscene