DIRECTOR: Add some enums for cast structures

This commit is contained in:
Dmitry Iskrich 2016-06-18 19:12:33 +03:00 committed by Eugene Sandulenko
parent 632a07500f
commit 952c2ceabd
2 changed files with 65 additions and 19 deletions

View File

@ -506,23 +506,30 @@ BitmapCast::BitmapCast(Common::SeekableReadStream &stream) {
TextCast::TextCast(Common::SeekableReadStream &stream) { TextCast::TextCast(Common::SeekableReadStream &stream) {
/*byte flags =*/ stream.readByte(); /*byte flags =*/ stream.readByte();
borderSize = stream.readByte(); borderSize = static_cast<SizeType>(stream.readByte());
gutterSize = stream.readByte(); gutterSize = static_cast<SizeType>(stream.readByte());
boxShadow = stream.readByte(); boxShadow = static_cast<SizeType>(stream.readByte());
textType = stream.readByte(); textType = static_cast<TextType>(stream.readByte());
textAlign = stream.readUint16BE(); textAlign = static_cast<TextAlignType>(stream.readUint16BE());
stream.skip(6); //palinfo stream.skip(6); //palinfo
/*uint32 unk1 = */ stream.readUint32BE(); /*uint32 unk1 = */ stream.readUint32BE();
initialRect = Score::readRect(stream); initialRect = Score::readRect(stream);
textShadow = stream.readByte(); textShadow = static_cast<SizeType>(stream.readByte());
textFlags = stream.readByte(); byte flags = stream.readByte();
if (flags & 0x1)
textFlags.push_back(kTextFlagEditable);
if (flags & 0x2)
textFlags.push_back(kTextFlagAutoTab);
if (flags & 0x4)
textFlags.push_back(kTextFlagDoNotWrap);
/*uint16 unk2 =*/ stream.readUint16BE(); /*uint16 unk2 =*/ stream.readUint16BE();
} }
ShapeCast::ShapeCast(Common::SeekableReadStream &stream) { ShapeCast::ShapeCast(Common::SeekableReadStream &stream) {
/*byte flags = */ stream.readByte(); /*byte flags = */ stream.readByte();
/*unk1 = */ stream.readByte(); /*unk1 = */ stream.readByte();
shapeType = stream.readByte(); shapeType = static_cast<ShapeType>(stream.readByte());
initialRect = Score::readRect(stream); initialRect = Score::readRect(stream);
pattern = stream.readUint16BE(); pattern = stream.readUint16BE();
fgCol = stream.readByte(); fgCol = stream.readByte();

View File

@ -179,10 +179,17 @@ struct BitmapCast : Cast {
uint8 flags; uint8 flags;
}; };
enum ShapeType {
kShapeRectangle,
kShapeRoundRect,
kShapeOval,
kShapeLine
};
struct ShapeCast : Cast { struct ShapeCast : Cast {
ShapeCast(Common::SeekableReadStream &stream); ShapeCast(Common::SeekableReadStream &stream);
byte shapeType; ShapeType shapeType;
uint16 pattern; uint16 pattern;
byte fgCol; byte fgCol;
byte bgCol; byte bgCol;
@ -191,26 +198,58 @@ struct ShapeCast : Cast {
byte lineDirection; byte lineDirection;
}; };
enum TextType {
kTextTypeAdjustToFit,
kTextTypeScrolling,
kTextTypeFixed
};
enum TextAlignType {
kTextAlignRight = -1,
kTextAlignLeft,
kTextAlignCenter
};
enum TextFlag {
kTextFlagEditable,
kTextFlagAutoTab,
kTextFlagDoNotWrap
};
enum SizeType {
kSizeNone,
kSizeSmallest,
kSizeSmall,
kSizeMedium,
kSizeLarge,
kSizeLargest
};
struct TextCast : Cast { struct TextCast : Cast {
TextCast(Common::SeekableReadStream &stream); TextCast(Common::SeekableReadStream &stream);
byte borderSize; SizeType borderSize;
byte gutterSize; SizeType gutterSize;
byte boxShadow; SizeType boxShadow;
byte textType; TextType textType;
byte textAlign; TextAlignType textAlign;
byte textShadow; SizeType textShadow;
byte textFlags; Common::Array<TextFlag> textFlags;
};
enum ButtonType {
kTypeButton,
kTypeCheckBox,
kTypeRadio
}; };
struct ButtonCast : TextCast { struct ButtonCast : TextCast {
ButtonCast(Common::SeekableReadStream &stream) : TextCast(stream) { ButtonCast(Common::SeekableReadStream &stream) : TextCast(stream) {
buttonType = stream.readUint16BE(); buttonType = static_cast<ButtonType>(stream.readUint16BE());
} }
//TODO types? ButtonType buttonType;
uint16 buttonType;
}; };
struct CastInfo { struct CastInfo {