mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-23 04:33:09 +00:00
MTROPOLIS: Add image effect modifier stub
This commit is contained in:
parent
3ebd9fc90a
commit
d35b69d48b
@ -1650,6 +1650,20 @@ DataReadErrorCode GraphicModifier::load(DataReader &reader) {
|
||||
return kDataReadErrorNone;
|
||||
}
|
||||
|
||||
ImageEffectModifier::ImageEffectModifier() : flags(0), type(0), bevelWidth(0), toneAmount(0), unknown2{0, 0} {
|
||||
}
|
||||
|
||||
DataReadErrorCode ImageEffectModifier::load(DataReader &reader) {
|
||||
if (_revision != 1000)
|
||||
return kDataReadErrorUnsupportedRevision;
|
||||
|
||||
if (!modHeader.load(reader) || !reader.readU32(flags) || !reader.readU16(type) || !applyWhen.load(reader) || !removeWhen.load(reader)
|
||||
|| !reader.readU16(bevelWidth) || !reader.readU16(toneAmount) || !reader.readBytes(unknown2))
|
||||
return kDataReadErrorReadFailed;
|
||||
|
||||
return kDataReadErrorNone;
|
||||
}
|
||||
|
||||
CompoundVariableModifier::CompoundVariableModifier()
|
||||
: modifierFlags(0), sizeIncludingTag(0), unknown1{0, 0}, guid(0), unknown4{0, 0, 0, 0, 0, 0}, unknown5(0),
|
||||
editorLayoutPosition(Point::createDefault()), lengthOfName(0), numChildren(0), unknown7{0, 0, 0, 0} {
|
||||
@ -2376,6 +2390,9 @@ DataReadErrorCode loadDataObject(const PlugInModifierRegistry ®istry, DataRea
|
||||
case DataObjectTypes::kGraphicModifier:
|
||||
dataObject = new GraphicModifier();
|
||||
break;
|
||||
case DataObjectTypes::kImageEffectModifier:
|
||||
dataObject = new ImageEffectModifier();
|
||||
break;
|
||||
|
||||
case DataObjectTypes::kColorTableAsset:
|
||||
dataObject = new ColorTableAsset();
|
||||
|
@ -95,7 +95,7 @@ enum DataObjectType {
|
||||
|
||||
kGraphicElement = 0x8,
|
||||
kMovieElement = 0x5,
|
||||
kMToonElement = 0x6, // NYI
|
||||
kMToonElement = 0x6,
|
||||
kImageElement = 0x7,
|
||||
kSoundElement = 0xa,
|
||||
kTextLabelElement = 0x15,
|
||||
@ -121,7 +121,7 @@ enum DataObjectType {
|
||||
kKeyboardMessengerModifier = 0x302,
|
||||
kTextStyleModifier = 0x32a,
|
||||
kGraphicModifier = 0x334,
|
||||
kImageEffectModifier = 0x384, // NYI
|
||||
kImageEffectModifier = 0x384,
|
||||
kMiniscriptModifier = 0x3c0,
|
||||
kCursorModifierV1 = 0x3ca, // NYI - Obsolete version
|
||||
kGradientModifier = 0x4b0, // NYI
|
||||
@ -1518,6 +1518,31 @@ protected:
|
||||
DataReadErrorCode load(DataReader &reader) override;
|
||||
};
|
||||
|
||||
struct ImageEffectModifier : public DataObject {
|
||||
ImageEffectModifier();
|
||||
|
||||
enum Types {
|
||||
kTypeInvert = 1,
|
||||
kTypeSelectedBevels = 2,
|
||||
kTypeDeselectedBevels = 3,
|
||||
kTypeToneDown = 4,
|
||||
kTypeToneUp = 5,
|
||||
};
|
||||
|
||||
TypicalModifierHeader modHeader;
|
||||
|
||||
uint32 flags;
|
||||
uint16 type;
|
||||
Event applyWhen;
|
||||
Event removeWhen;
|
||||
uint16 bevelWidth;
|
||||
uint16 toneAmount;
|
||||
uint8 unknown2[2];
|
||||
|
||||
protected:
|
||||
DataReadErrorCode load(DataReader &reader) override;
|
||||
};
|
||||
|
||||
struct CompoundVariableModifier : public DataObject {
|
||||
CompoundVariableModifier();
|
||||
|
||||
|
@ -109,6 +109,8 @@ SIModifierFactory *getModifierFactoryForDataObjectType(const Data::DataObjectTyp
|
||||
return ModifierFactory<TextStyleModifier, Data::TextStyleModifier>::getInstance();
|
||||
case Data::DataObjectTypes::kGraphicModifier:
|
||||
return ModifierFactory<GraphicModifier, Data::GraphicModifier>::getInstance();
|
||||
case Data::DataObjectTypes::kImageEffectModifier:
|
||||
return ModifierFactory<ImageEffectModifier, Data::ImageEffectModifier>::getInstance();
|
||||
case Data::DataObjectTypes::kMessengerModifier:
|
||||
return ModifierFactory<MessengerModifier, Data::MessengerModifier>::getInstance();
|
||||
case Data::DataObjectTypes::kSetModifier:
|
||||
|
@ -2036,6 +2036,41 @@ const char *GraphicModifier::getDefaultName() const {
|
||||
return "Graphic Modifier";
|
||||
}
|
||||
|
||||
ImageEffectModifier::ImageEffectModifier() : _type(kTypeUnknown), _bevelWidth(0), _toneAmount(0), _includeBorders(false) {
|
||||
}
|
||||
|
||||
bool ImageEffectModifier::load(ModifierLoaderContext &context, const Data::ImageEffectModifier &data) {
|
||||
if (!loadTypicalHeader(data.modHeader) || !_applyWhen.load(data.applyWhen) || !_removeWhen.load(data.removeWhen))
|
||||
return false;
|
||||
|
||||
_includeBorders = ((data.flags & 0x40000000) != 0);
|
||||
_type = static_cast<Type>(data.type);
|
||||
_bevelWidth = data.bevelWidth;
|
||||
_toneAmount = data.toneAmount;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ImageEffectModifier::respondsToEvent(const Event &evt) const {
|
||||
return _applyWhen.respondsTo(evt) || _removeWhen.respondsTo(evt);
|
||||
}
|
||||
|
||||
VThreadState ImageEffectModifier::consumeMessage(Runtime *runtime, const Common::SharedPtr<MessageProperties> &msg) {
|
||||
warning("Image effect modifier not implemented");
|
||||
return kVThreadReturn;
|
||||
}
|
||||
|
||||
void ImageEffectModifier::disable(Runtime *runtime) {
|
||||
}
|
||||
|
||||
Common::SharedPtr<Modifier> ImageEffectModifier::shallowClone() const {
|
||||
return Common::SharedPtr<Modifier>(new ImageEffectModifier(*this));
|
||||
}
|
||||
|
||||
const char *ImageEffectModifier::getDefaultName() const {
|
||||
return "Image Effect Modifier";
|
||||
}
|
||||
|
||||
bool CompoundVariableModifier::load(ModifierLoaderContext &context, const Data::CompoundVariableModifier &data) {
|
||||
if (data.numChildren > 0) {
|
||||
ChildLoaderContext loaderContext;
|
||||
|
@ -799,6 +799,43 @@ private:
|
||||
VisualElementRenderProperties _renderProps;
|
||||
};
|
||||
|
||||
class ImageEffectModifier : public Modifier {
|
||||
public:
|
||||
ImageEffectModifier();
|
||||
|
||||
bool load(ModifierLoaderContext &context, const Data::ImageEffectModifier &data);
|
||||
|
||||
bool respondsToEvent(const Event &evt) const override;
|
||||
VThreadState consumeMessage(Runtime *runtime, const Common::SharedPtr<MessageProperties> &msg) override;
|
||||
void disable(Runtime *runtime) override;
|
||||
|
||||
#ifdef MTROPOLIS_DEBUG_ENABLE
|
||||
const char *debugGetTypeName() const override { return "Image Effect Modifier"; }
|
||||
SupportStatus debugGetSupportStatus() const override { return kSupportStatusNone; }
|
||||
#endif
|
||||
|
||||
private:
|
||||
enum Type {
|
||||
kTypeUnknown = 0,
|
||||
|
||||
kTypeInvert = 1,
|
||||
kTypeSelectedBevels,
|
||||
kTypeDeselectedBevels,
|
||||
kTypeToneDown,
|
||||
kTypeToneUp,
|
||||
};
|
||||
|
||||
Common::SharedPtr<Modifier> shallowClone() const override;
|
||||
const char *getDefaultName() const override;
|
||||
|
||||
Event _applyWhen;
|
||||
Event _removeWhen;
|
||||
Type _type;
|
||||
uint16 _bevelWidth;
|
||||
uint16 _toneAmount;
|
||||
bool _includeBorders;
|
||||
};
|
||||
|
||||
// Compound variable modifiers are not true variable modifiers.
|
||||
// They aren't treated as values by Miniscript and they aren't
|
||||
// treated as unique objects by aliases. The only way that
|
||||
|
Loading…
x
Reference in New Issue
Block a user