22#if !defined(SCUMM_SMUSH_PLAYER_RA1_H) && defined(ENABLE_SCUMM_7_8)
23#define SCUMM_SMUSH_PLAYER_RA1_H
25#include "scumm/smush/smush_player.h"
29class SmushPlayerRebel1 :
public SmushPlayer {
30 friend class InsaneRebel1;
32 SmushPlayerRebel1(ScummEngine_v7 *scumm, IMuseDigital *imuseDigital, Insane *insane);
33 ~SmushPlayerRebel1()
override;
36 void initGamePlayerFields()
override;
37 void destroyGamePlayerFields()
override;
38 void resetGameVideoState()
override;
39 void initGameVideoState()
override;
40 void releaseGameVideoState()
override;
43 SmushFont *getGameFont(
int font)
override;
44 void adjustGamePalette()
override;
45 bool handleGameAnimHeader(
byte *headerContent)
override;
46 void handleGameParseNextFrame()
override;
47 bool handleGameFrameBufferSelect(
int codec,
int width,
int height)
override;
48 bool handleGameDimensionOverride(
int codec,
int width,
int height)
override;
49 bool handleGameAdjustCoords(
int codec,
int &left,
int &top,
int &width,
int &height,
int pitch,
int *srcSkipY)
override;
50 bool handleGameCodecDecode(
int codec,
const uint8 *src,
int left,
int top,
int width,
int height,
int pitch,
int dataSize, uint8 param = 0, uint16 parm2 = 0)
override;
51 bool handleGameStoreFrame()
override;
52 void handleGameFrameObjectPre(
int codec,
int left,
int top,
int width,
int height,
int dataSize)
override;
53 void handleGameFrameObjectPost(
int codec,
const byte *data, int32 dataSize,
int left,
int top,
int width,
int height)
override;
54 void handleGameFrameStart()
override;
56 void handleGameProcessAudio(int16 feedSize)
override;
57 bool isInsaneGame()
const override {
return true; }
60 void handleGameUpdateScreen(
const byte *src,
int srcPitch,
int width,
int height)
override;
63 void markLogicalEndOfStream();
67 SmushFont *ra1GetFont(
int font);
70 void ra1LoadSegaCDFont();
72 void ra1FeedAudio(uint32 subType, uint8 *srcBuf,
int groupId,
int volume,
int pan, int16 flags);
75 bool ra1HandleUnknownFrameChunk(uint32 subType, int32 subSize);
76 bool ra1DispatchFrameChunk(uint32 subType, int32 subSize, int32 &frameSize,
78 void ra1InitAudioTrackSizes();
81 int32 _segaCDFontSize;
85 int32 _ra1CleanFrameSize;
86 bool _ra1HasCleanFrame;
89 byte *_ra1PresentationBuffer;
90 int32 _ra1PresentationBufferSize;
93 byte *_ra1ObjOverlayData;
94 int32 _ra1ObjOverlayDataSize;
95 int _ra1ObjOverlayCodec;
96 int _ra1ObjOverlayLeft;
97 int _ra1ObjOverlayTop;
98 int _ra1ObjOverlayWidth;
99 int _ra1ObjOverlayHeight;
102 int _ra1ViewportOffsetX;
103 int _ra1ViewportOffsetY;
104 int _ra1FrameSourceSkipX;
105 int _ra1FrameSourceSkipY;
106 bool _ra1LastFrameObjectVisible;
110 int32 _ra1FadeFrameSize;
111 int _ra1FadeFrameWidth;
112 int _ra1FadeFrameHeight;
113 bool _ra1FadeFrameValid;
114 bool _ra1UseFadeFrame;