mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-26 04:35:16 +00:00
ZVISION: Draw transparent text in original save dialog
Before this change, text was drawn in black boxes in Zork Nemesis, so while this does make it look better (and more like the original) this may actually make the text slightly harder to read. The original dialogs allowed only upper-case letters, but I think that it's better to leave that to the player.
This commit is contained in:
parent
a0661328b9
commit
b7b4e9cc58
@ -39,6 +39,7 @@ namespace ZVision {
|
||||
|
||||
InputControl::InputControl(ZVision *engine, uint32 key, Common::SeekableReadStream &stream)
|
||||
: Control(engine, key, CONTROL_INPUT),
|
||||
_background(0),
|
||||
_nextTabstop(0),
|
||||
_focused(false),
|
||||
_textChanged(false),
|
||||
@ -111,6 +112,11 @@ InputControl::InputControl(ZVision *engine, uint32 key, Common::SeekableReadStre
|
||||
}
|
||||
}
|
||||
|
||||
InputControl::~InputControl() {
|
||||
_background->free();
|
||||
delete _background;
|
||||
}
|
||||
|
||||
bool InputControl::onMouseUp(const Common::Point &screenSpacePos, const Common::Point &backgroundImageSpacePos) {
|
||||
if (_engine->getScriptManager()->getStateFlag(_key) & Puzzle::DISABLED)
|
||||
return false;
|
||||
@ -191,12 +197,16 @@ bool InputControl::process(uint32 deltaTimeInMillis) {
|
||||
if (_engine->getScriptManager()->getStateFlag(_key) & Puzzle::DISABLED)
|
||||
return false;
|
||||
|
||||
if (!_background) {
|
||||
_background = _engine->getRenderManager()->getBkgRect(_textRectangle);
|
||||
}
|
||||
|
||||
// First see if we need to render the text
|
||||
if (_textChanged) {
|
||||
// Blit the text using the RenderManager
|
||||
|
||||
Graphics::Surface txt;
|
||||
txt.create(_textRectangle.width(), _textRectangle.height(), _engine->_resourcePixelFormat);
|
||||
txt.copyFrom(*_background);
|
||||
|
||||
if (!_readOnly || !_focused)
|
||||
_txtWidth = _engine->getTextRenderer()->drawTxt(_currentInputText, _stringInit, txt);
|
||||
|
@ -38,8 +38,10 @@ namespace ZVision {
|
||||
class InputControl : public Control {
|
||||
public:
|
||||
InputControl(ZVision *engine, uint32 key, Common::SeekableReadStream &stream);
|
||||
~InputControl();
|
||||
|
||||
private:
|
||||
Graphics::Surface *_background;
|
||||
Common::Rect _textRectangle;
|
||||
Common::Rect _headerRectangle;
|
||||
cTxtStyle _stringInit;
|
||||
|
@ -315,8 +315,6 @@ int32 TextRenderer::drawTxt(const Common::String &txt, cTxtStyle &fontStyle, Gra
|
||||
StyledTTFont font(_engine);
|
||||
fontStyle.setFont(font);
|
||||
|
||||
dst.fillRect(Common::Rect(dst.w, dst.h), 0);
|
||||
|
||||
uint32 clr = _engine->_resourcePixelFormat.RGBToColor(fontStyle._red, fontStyle._green, fontStyle._blue);
|
||||
|
||||
int16 w;
|
||||
|
Loading…
x
Reference in New Issue
Block a user