22#ifndef NANCY_ACTION_SECONDARYVIDEO_H
23#define NANCY_ACTION_SECONDARYVIDEO_H
25#include "engines/nancy/cursor.h"
26#include "engines/nancy/nancy.h"
27#include "engines/nancy/movieplayer.h"
28#include "engines/nancy/action/actionrecord.h"
39 static const byte kNoVideoHotspots = 1;
40 static const byte kVideoHotspots = 2;
42 enum HoverState { kNoHover, kHover, kEndHover };
48 void updateGraphics()
override;
49 void onPause(
bool pause)
override;
53 void execute()
override;
60 uint16 _videoFormat = kLargeVideoFormat;
61 uint16 _videoHotspots = kVideoHotspots;
63 uint16 _loopFirstFrame = 0;
64 uint16 _loopLastFrame = 0;
65 uint16 _onHoverFirstFrame = 0;
66 uint16 _onHoverLastFrame = 0;
67 uint16 _onHoverEndFirstFrame = 0;
68 uint16 _onHoverEndLastFrame = 0;
72 bool _pushSceneOnTrigger =
false;
83 bool canHaveHotspot()
const override {
return true; }
84 bool isViewportRelative()
const override {
return true; }
87 bool survivesSceneChange(
bool nextSceneIsNoArt)
const override {
return nextSceneIsNoArt; }
89 CursorManager::CursorType getHoverCursor()
const override {
90 return g_nancy->getGameType() >= kGameTypeNancy10 ? CursorManager::kHotspotTalk : CursorManager::kHotspot;
98 Common::String getRecordTypeName()
const override {
return "PlaySecondaryVideo"; }
101 HoverState _hoverState = kNoHover;
102 MoviePlayer _decoder;
103 int _currentViewportFrame = -1;
104 int _currentViewportScroll = -1;
105 bool _isInFrame =
false;
106 bool _isHovered =
false;
static String format(MSVC_PRINTF const char *fmt,...) GCC_PRINTF(1
Definition: managed_surface.h:51
Definition: secondaryvideo.h:37
Definition: actionrecord.h:169
Definition: actionmanager.h:32
Definition: secondaryvideo.h:75
Definition: commontypes.h:201
Definition: commontypes.h:186