[Scummvm-git-logs] scummvm master -> fd8285ee936aae4a711dda42a1ab13713da22f1d
aquadran
noreply at scummvm.org
Sun Sep 28 05:03:24 UTC 2025
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
fd8285ee93 WINTERMUTE: Added check for empty strings which are part of persistent
Commit: fd8285ee936aae4a711dda42a1ab13713da22f1d
https://github.com/scummvm/scummvm/commit/fd8285ee936aae4a711dda42a1ab13713da22f1d
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2025-09-28T07:03:20+02:00
Commit Message:
WINTERMUTE: Added check for empty strings which are part of persistent
Changed paths:
engines/wintermute/ad/ad_actor.cpp
engines/wintermute/ad/ad_actor_3dx.cpp
engines/wintermute/ad/ad_entity.cpp
engines/wintermute/ad/ad_game.cpp
engines/wintermute/ad/ad_item.cpp
engines/wintermute/ad/ad_node_state.cpp
engines/wintermute/ad/ad_object.cpp
engines/wintermute/ad/ad_response_box.cpp
engines/wintermute/ad/ad_scene.cpp
engines/wintermute/ad/ad_sentence.cpp
engines/wintermute/ad/ad_sprite_set.cpp
engines/wintermute/ad/ad_talk_def.cpp
engines/wintermute/ad/ad_talk_holder.cpp
engines/wintermute/ad/ad_talk_node.cpp
engines/wintermute/base/base_frame.cpp
engines/wintermute/base/base_game.cpp
engines/wintermute/base/base_object.cpp
engines/wintermute/base/base_script_holder.cpp
engines/wintermute/base/base_sprite.cpp
engines/wintermute/base/base_sub_frame.cpp
engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp
engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
engines/wintermute/base/gfx/xmodel.cpp
engines/wintermute/base/particles/part_emitter.cpp
engines/wintermute/base/particles/part_particle.cpp
engines/wintermute/base/scriptables/script_engine.cpp
engines/wintermute/base/scriptables/script_ext_file.cpp
engines/wintermute/ui/ui_button.cpp
engines/wintermute/ui/ui_edit.cpp
engines/wintermute/ui/ui_entity.cpp
engines/wintermute/ui/ui_object.cpp
engines/wintermute/ui/ui_text.cpp
engines/wintermute/ui/ui_tiled_image.cpp
engines/wintermute/ui/ui_window.cpp
engines/wintermute/video/video_theora_player.cpp
diff --git a/engines/wintermute/ad/ad_actor.cpp b/engines/wintermute/ad/ad_actor.cpp
index bd56f14592f..54ca3cd1057 100644
--- a/engines/wintermute/ad/ad_actor.cpp
+++ b/engines/wintermute/ad/ad_actor.cpp
@@ -1360,7 +1360,7 @@ const char *AdActor::scToString() {
//////////////////////////////////////////////////////////////////////////
BaseSprite *AdActor::getTalkStance(const char *stance) {
// forced stance?
- if (_forcedTalkAnimName && !_forcedTalkAnimUsed) {
+ if (_forcedTalkAnimName && _forcedTalkAnimName[0] && !_forcedTalkAnimUsed) {
_forcedTalkAnimUsed = true;
SAFE_DELETE(_animSprite);
_animSprite = new BaseSprite(_game, this);
@@ -1540,7 +1540,7 @@ int32 AdActor::getHeight() {
//////////////////////////////////////////////////////////////////////////
AdSpriteSet *AdActor::getAnimByName(const char *animName) {
- if (!animName) {
+ if (!animName || !animName[0]) {
return nullptr;
}
diff --git a/engines/wintermute/ad/ad_actor_3dx.cpp b/engines/wintermute/ad/ad_actor_3dx.cpp
index b419fa39411..ab975fd9cbd 100644
--- a/engines/wintermute/ad/ad_actor_3dx.cpp
+++ b/engines/wintermute/ad/ad_actor_3dx.cpp
@@ -179,7 +179,7 @@ bool AdActor3DX::update() {
if (_directWalkMode != DIRECT_WALK_NONE) {
// disabled in original code
} else if (_directTurnMode != DIRECT_TURN_NONE) {
- if (_directTurnAnim) {
+ if (_directTurnAnim && _directTurnAnim[0]) {
_xmodel->playAnim(0, _directTurnAnim, _defaultTransTime, false, _defaultStopTransTime);
} else {
_xmodel->playAnim(0, _idleAnimName, _defaultTransTime, false, _defaultStopTransTime);
@@ -228,7 +228,7 @@ bool AdActor3DX::update() {
}
if (canWalk) {
- if (_directWalkAnim != nullptr) {
+ if (_directWalkAnim && _directWalkAnim[0]) {
_xmodel->playAnim(0, _directWalkAnim, _defaultTransTime, false, _defaultStopTransTime);
} else {
_xmodel->playAnim(0, _walkAnimName, _defaultTransTime, false, _defaultStopTransTime);
@@ -304,7 +304,7 @@ bool AdActor3DX::update() {
_sentence->update();
- if (_sentence->_currentSkelAnim) {
+ if (_sentence->_currentSkelAnim && _sentence->_currentSkelAnim[0]) {
_tempSkelAnim = _sentence->_currentSkelAnim;
}
diff --git a/engines/wintermute/ad/ad_entity.cpp b/engines/wintermute/ad/ad_entity.cpp
index 3526363c56e..c9c22b0e259 100644
--- a/engines/wintermute/ad/ad_entity.cpp
+++ b/engines/wintermute/ad/ad_entity.cpp
@@ -523,7 +523,7 @@ bool AdEntity::loadBuffer(char *buffer, bool complete) {
_alphaColor = BYTETORGBA(ar, ag, ab, alpha);
_state = STATE_READY;
- if (_item && ((AdGame *)_game)->isItemTaken(_item)) {
+ if (_item && _item[0] && ((AdGame *)_game)->isItemTaken(_item)) {
_active = false;
}
@@ -959,7 +959,7 @@ ScValue *AdEntity::scGetProperty(const char *name) {
// Item
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "Item") == 0) {
- if (_item) {
+ if (_item && _item[0]) {
_scValue->setString(_item);
} else {
_scValue->setNULL();
@@ -1135,7 +1135,7 @@ bool AdEntity::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent + 2, "SAVE_STATE=%s\n", _saveState ? "TRUE" : "FALSE");
}
- if (_item && _item[0] != '\0') {
+ if (_item && _item[0]) {
buffer->putTextIndent(indent + 2, "ITEM=\"%s\"\n", _item);
}
@@ -1158,7 +1158,7 @@ bool AdEntity::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent + 2, "SPRITE=\"%s\"\n", _sprite->_filename);
}
- if (_subtype == ENTITY_SOUND && _sFX && _sFX->_soundFilename) {
+ if (_subtype == ENTITY_SOUND && _sFX && _sFX->_soundFilename && _sFX->_soundFilename[0]) {
buffer->putTextIndent(indent + 2, "SOUND=\"%s\"\n", _sFX->_soundFilename);
buffer->putTextIndent(indent + 2, "SOUND_START_TIME=%d\n", _sFXStart);
buffer->putTextIndent(indent + 2, "SOUND_VOLUME=%d\n", _sFXVolume);
@@ -1180,11 +1180,11 @@ bool AdEntity::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent + 2, "RELATIVE_SCALE = %d\n", (int)_relativeScale);
}
- if (_font && _font->_filename) {
+ if (_font && _font->_filename && _font->_filename[0]) {
buffer->putTextIndent(indent + 2, "FONT=\"%s\"\n", _font->_filename);
}
- if (_cursor && _cursor->_filename) {
+ if (_cursor && _cursor->_filename && _cursor->_filename[0]) {
buffer->putTextIndent(indent + 2, "CURSOR=\"%s\"\n", _cursor->_filename);
}
diff --git a/engines/wintermute/ad/ad_game.cpp b/engines/wintermute/ad/ad_game.cpp
index bdc0a892c70..76fb76b6268 100644
--- a/engines/wintermute/ad/ad_game.cpp
+++ b/engines/wintermute/ad/ad_game.cpp
@@ -207,7 +207,7 @@ bool AdGame::cleanup() {
//////////////////////////////////////////////////////////////////////////
bool AdGame::initLoop() {
- if (_scheduledScene && _transMgr->isReady()) {
+ if (_scheduledScene && _scheduledScene[0] && _transMgr->isReady()) {
changeScene(_scheduledScene, _scheduledFadeIn);
SAFE_DELETE_ARRAY(_scheduledScene);
@@ -299,7 +299,7 @@ bool AdGame::changeScene(const char *filename, bool fadeIn) {
}
bool ret;
- if (_initialScene && _debugMode && _debugStartupScene) {
+ if (_initialScene && _debugMode && _debugStartupScene && _debugStartupScene[0]) {
_initialScene = false;
ret = _scene->loadFile(_debugStartupScene);
} else {
@@ -1031,7 +1031,7 @@ ScValue *AdGame::scGetProperty(const char *name) {
// PrevSceneFilename / PreviousSceneFilename (RO)
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "PrevSceneFilename") == 0 || strcmp(name, "PreviousSceneFilename") == 0) {
- if (!_prevSceneFilename) {
+ if (!_prevSceneFilename || !_prevSceneFilename[0]) {
_scValue->setString("");
} else {
_scValue->setString(_prevSceneFilename);
@@ -1043,7 +1043,7 @@ ScValue *AdGame::scGetProperty(const char *name) {
// LastResponse (RO)
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "LastResponse") == 0) {
- if (!_responseBox || !_responseBox->_lastResponseText) {
+ if (!_responseBox || !_responseBox->_lastResponseText|| !_responseBox->_lastResponseText[0]) {
_scValue->setString("");
} else {
_scValue->setString(_responseBox->_lastResponseText);
@@ -1055,7 +1055,7 @@ ScValue *AdGame::scGetProperty(const char *name) {
// LastResponseOrig (RO)
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "LastResponseOrig") == 0) {
- if (!_responseBox || !_responseBox->_lastResponseTextOrig) {
+ if (!_responseBox || !_responseBox->_lastResponseTextOrig || !_responseBox->_lastResponseTextOrig[0]) {
_scValue->setString("");
} else {
_scValue->setString(_responseBox->_lastResponseTextOrig);
@@ -1112,7 +1112,7 @@ ScValue *AdGame::scGetProperty(const char *name) {
// StartupScene
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "StartupScene") == 0) {
- if (!_startupScene) {
+ if (!_startupScene && !_startupScene[0]) {
_scValue->setNULL();
} else {
_scValue->setString(_startupScene);
@@ -2132,7 +2132,7 @@ bool AdGame::resetContent() {
_responsesGame.removeAll();
// reload inventory items
- if (_itemsFile) {
+ if (_itemsFile && _itemsFile[0]) {
loadItemsFile(_itemsFile);
}
@@ -2449,7 +2449,7 @@ bool AdGame::displayDebugInfo() {
Common::sprintf_s(str, "Mouse: %d, %d (scene: %d, %d)", _mousePos.x, _mousePos.y, _mousePos.x + (_scene ? _scene->getOffsetLeft() : 0), _mousePos.y + (_scene ? _scene->getOffsetTop() : 0));
_systemFont->drawText((byte *)str, 0, 90, _renderer->getWidth(), TAL_RIGHT);
- Common::sprintf_s(str, "Scene: %s (prev: %s)", (_scene && _scene->_name) ? _scene->_name : "???", _prevSceneName ? _prevSceneName : "???");
+ Common::sprintf_s(str, "Scene: %s (prev: %s)", (_scene && _scene->_name && _scene->_name[0]) ? _scene->_name : "???", (_prevSceneName && _prevSceneName[0]) ? _prevSceneName : "???");
_systemFont->drawText((byte *)str, 0, 110, _renderer->getWidth(), TAL_RIGHT);
}
return BaseGame::displayDebugInfo();
diff --git a/engines/wintermute/ad/ad_item.cpp b/engines/wintermute/ad/ad_item.cpp
index 29c1f109d7b..32c8ae15597 100644
--- a/engines/wintermute/ad/ad_item.cpp
+++ b/engines/wintermute/ad/ad_item.cpp
@@ -434,7 +434,7 @@ bool AdItem::display(int x, int y) {
BaseFont *font = _font ? _font : _game->_systemFont;
if (font) {
- if (_amountString) {
+ if (_amountString && _amountString[0]) {
font->drawText((byte *)_amountString, amountX, amountY, width, _amountAlign);
} else {
char str[256];
@@ -486,7 +486,7 @@ bool AdItem::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
else if (strcmp(name, "GetHoverSprite") == 0) {
stack->correctParams(0);
- if (!_spriteHover || !_spriteHover->_filename) {
+ if (!_spriteHover || !_spriteHover->_filename || !_spriteHover->_filename[0]) {
stack->pushNULL();
} else {
stack->pushString(_spriteHover->_filename);
@@ -550,7 +550,7 @@ bool AdItem::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
else if (strcmp(name, "GetNormalCursor") == 0) {
stack->correctParams(0);
- if (!_cursorNormal || !_cursorNormal->_filename) {
+ if (!_cursorNormal || !_cursorNormal->_filename || !_cursorNormal->_filename[0]) {
stack->pushNULL();
} else {
stack->pushString(_cursorNormal->_filename);
@@ -615,7 +615,7 @@ bool AdItem::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
else if (strcmp(name, "GetHoverCursor") == 0) {
stack->correctParams(0);
- if (!_cursorHover || !_cursorHover->_filename) {
+ if (!_cursorHover || !_cursorHover->_filename || !_cursorHover->_filename[0]) {
stack->pushNULL();
} else {
stack->pushString(_cursorHover->_filename);
@@ -705,7 +705,7 @@ ScValue *AdItem::scGetProperty(const char *name) {
// AmountString
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "AmountString") == 0) {
- if (!_amountString) {
+ if (!_amountString || _amountString[0]) {
_scValue->setNULL();
} else {
_scValue->setString(_amountString);
diff --git a/engines/wintermute/ad/ad_node_state.cpp b/engines/wintermute/ad/ad_node_state.cpp
index 1bbbdab0116..d280ce9e45e 100644
--- a/engines/wintermute/ad/ad_node_state.cpp
+++ b/engines/wintermute/ad/ad_node_state.cpp
@@ -149,30 +149,30 @@ bool AdNodeState::transferEntity(AdEntity *entity, bool includingSprites, bool s
setCaption(entity->_caption[i], i);
}
}
- if (!entity->_region && entity->_sprite && entity->_sprite->_filename) {
+ if (!entity->_region && entity->_sprite && entity->_sprite->_filename && entity->_sprite->_filename[0]) {
if (includingSprites) {
setFilename(entity->_sprite->_filename);
} else {
setFilename("");
}
}
- if (entity->_cursor && entity->_cursor->_filename) {
+ if (entity->_cursor && entity->_cursor->_filename && entity->_cursor->_filename[0]) {
setCursor(entity->_cursor->_filename);
}
_alphaColor = entity->_alphaColor;
_active = entity->_active;
} else {
for (int i = 0; i < 7; i++) {
- if (_caption[i]) {
+ if (_caption[i] && _caption[i][0]) {
entity->setCaption(_caption[i], i);
}
}
- if (_filename && !entity->_region && includingSprites && strcmp(_filename, "") != 0) {
+ if (_filename && _filename[0] && !entity->_region && includingSprites) {
if (!entity->_sprite || !entity->_sprite->_filename || scumm_stricmp(entity->_sprite->_filename, _filename) != 0) {
entity->setSprite(_filename);
}
}
- if (_cursor) {
+ if (_cursor && _cursor[0]) {
if (!entity->_cursor || !entity->_cursor->_filename || scumm_stricmp(entity->_cursor->_filename, _cursor) != 0) {
entity->setCursor(_cursor);
}
diff --git a/engines/wintermute/ad/ad_object.cpp b/engines/wintermute/ad/ad_object.cpp
index ecd548b15f9..f823b9083b4 100644
--- a/engines/wintermute/ad/ad_object.cpp
+++ b/engines/wintermute/ad/ad_object.cpp
@@ -353,7 +353,7 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "GetFont") == 0) {
stack->correctParams(0);
- if (_font && _font->_filename) {
+ if (_font && _font->_filename && _font->_filename[0]) {
stack->pushString(_font->_filename);
} else {
stack->pushNULL();
@@ -877,7 +877,7 @@ void AdObject::talk(const char *text, const char *sound, uint32 duration, const
return;
}
- if (_forcedTalkAnimName && _forcedTalkAnimUsed) {
+ if (_forcedTalkAnimName && _forcedTalkAnimName[0] && _forcedTalkAnimUsed) {
SAFE_DELETE_ARRAY(_forcedTalkAnimName);
_forcedTalkAnimUsed = false;
}
diff --git a/engines/wintermute/ad/ad_response_box.cpp b/engines/wintermute/ad/ad_response_box.cpp
index 1aa65b2eea6..ffa772afe6a 100644
--- a/engines/wintermute/ad/ad_response_box.cpp
+++ b/engines/wintermute/ad/ad_response_box.cpp
@@ -389,14 +389,14 @@ bool AdResponseBox::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent + 2, "AREA { %d, %d, %d, %d }\n", _responseArea.left, _responseArea.top, _responseArea.right, _responseArea.bottom);
- if (_font && _font->_filename) {
+ if (_font && _font->_filename && _font->_filename[0]) {
buffer->putTextIndent(indent + 2, "FONT=\"%s\"\n", _font->_filename);
}
- if (_fontHover && _fontHover->_filename) {
+ if (_fontHover && _fontHover->_filename && _fontHover->_filename[0]) {
buffer->putTextIndent(indent + 2, "FONT_HOVER=\"%s\"\n", _fontHover->_filename);
}
- if (_cursor && _cursor->_filename) {
+ if (_cursor && _cursor->_filename && _cursor->_filename[0]) {
buffer->putTextIndent(indent + 2, "CURSOR=\"%s\"\n", _cursor->_filename);
}
diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp
index 743c2b75ecc..723f03a1f09 100644
--- a/engines/wintermute/ad/ad_scene.cpp
+++ b/engines/wintermute/ad/ad_scene.cpp
@@ -2526,7 +2526,7 @@ ScValue *AdScene::scGetProperty(const char *name) {
// GeometryFile
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "GeometryFile") == 0) {
- if (_geom && _geom->_filename) {
+ if (_geom && _geom->_filename && _geom->_filename[0]) {
_scValue->setString(_geom->_filename);
} else {
_scValue->setNULL();
@@ -2799,7 +2799,7 @@ bool AdScene::saveAsText(BaseDynamicBuffer *buffer, int indent) {
#ifdef ENABLE_WME3D
if (_geom) {
- if (_geom->_filename)
+ if (_geom->_filename && _geom->_filename[0])
buffer->putTextIndent(indent + 2, "GEOMETRY=\"%s\"\n", _geom->_filename);
if (_geom->_activeCamera >= 0 && _geom->_activeCamera < _geom->_cameras.getSize()) {
buffer->putTextIndent(indent + 2, "CAMERA=\"%s\"\n", _geom->_cameras[_geom->_activeCamera]->_name);
diff --git a/engines/wintermute/ad/ad_sentence.cpp b/engines/wintermute/ad/ad_sentence.cpp
index 203db7f0643..37ce1bd0156 100644
--- a/engines/wintermute/ad/ad_sentence.cpp
+++ b/engines/wintermute/ad/ad_sentence.cpp
@@ -122,7 +122,7 @@ char *AdSentence::getNextStance() {
//////////////////////////////////////////////////////////////////////////
char *AdSentence::getStance(int stance) {
- if (_stances == nullptr) {
+ if (_stances == nullptr || !_stances[0]) {
return nullptr;
}
@@ -184,7 +184,7 @@ char *AdSentence::getStance(int stance) {
//////////////////////////////////////////////////////////////////////////
bool AdSentence::display() {
- if (!_font || !_text) {
+ if (!_font || !_text || !_text[0]) {
return STATUS_FAILED;
}
diff --git a/engines/wintermute/ad/ad_sprite_set.cpp b/engines/wintermute/ad/ad_sprite_set.cpp
index 0dbea3e131f..3afd6dc9b49 100644
--- a/engines/wintermute/ad/ad_sprite_set.cpp
+++ b/engines/wintermute/ad/ad_sprite_set.cpp
@@ -292,7 +292,7 @@ BaseSprite *AdSpriteSet::getSprite(TDirection direction) {
//////////////////////////////////////////////////////////////////////////
bool AdSpriteSet::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent, "SPRITESET {\n");
- if (_name) {
+ if (_name && _name[0]) {
buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", _name);
}
for (int i = 0; i < NUM_DIRECTIONS; i++) {
diff --git a/engines/wintermute/ad/ad_talk_def.cpp b/engines/wintermute/ad/ad_talk_def.cpp
index ffa64c08d0f..81d8d7e26bd 100644
--- a/engines/wintermute/ad/ad_talk_def.cpp
+++ b/engines/wintermute/ad/ad_talk_def.cpp
@@ -179,14 +179,14 @@ bool AdTalkDef::loadBuffer(char *buffer, bool complete) {
SAFE_DELETE(_defaultSprite);
SAFE_DELETE(_defaultSpriteSet);
- if (_defaultSpriteFilename) {
+ if (_defaultSpriteFilename && _defaultSpriteFilename[0]) {
_defaultSprite = new BaseSprite(_game);
if (!_defaultSprite || DID_FAIL(_defaultSprite->loadFile(_defaultSpriteFilename))) {
return STATUS_FAILED;
}
}
- if (_defaultSpriteSetFilename) {
+ if (_defaultSpriteSetFilename && _defaultSpriteSetFilename[0]) {
_defaultSpriteSet = new AdSpriteSet(_game);
if (!_defaultSpriteSet || DID_FAIL(_defaultSpriteSet->loadFile(_defaultSpriteSetFilename))) {
return STATUS_FAILED;
@@ -217,11 +217,11 @@ bool AdTalkDef::persist(BasePersistenceManager *persistMgr) {
//////////////////////////////////////////////////////////////////////////
bool AdTalkDef::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent, "TALK {\n");
- if (_defaultSpriteFilename) {
+ if (_defaultSpriteFilename && _defaultSpriteFilename[0]) {
buffer->putTextIndent(indent + 2, "DEFAULT_SPRITE=\"%s\"\n", _defaultSpriteFilename);
}
- if (_defaultSpriteSetFilename) {
+ if (_defaultSpriteSetFilename && _defaultSpriteSetFilename[0]) {
buffer->putTextIndent(indent + 2, "DEFAULT_SPRITESET_FILE=\"%s\"\n", _defaultSpriteSetFilename);
} else if (_defaultSpriteSet) {
_defaultSpriteSet->saveAsText(buffer, indent + 2);
@@ -241,7 +241,7 @@ bool AdTalkDef::saveAsText(BaseDynamicBuffer *buffer, int indent) {
//////////////////////////////////////////////////////////////////////////
bool AdTalkDef::loadDefaultSprite() {
- if (_defaultSpriteFilename && !_defaultSprite) {
+ if (_defaultSpriteFilename && _defaultSpriteFilename[0] && !_defaultSprite) {
_defaultSprite = new BaseSprite(_game);
if (!_defaultSprite || DID_FAIL(_defaultSprite->loadFile(_defaultSpriteFilename))) {
SAFE_DELETE(_defaultSprite);
@@ -249,7 +249,7 @@ bool AdTalkDef::loadDefaultSprite() {
} else {
return STATUS_OK;
}
- } else if (_defaultSpriteSetFilename && !_defaultSpriteSet) {
+ } else if (_defaultSpriteSetFilename && _defaultSpriteSetFilename[0] && !_defaultSpriteSet) {
_defaultSpriteSet = new AdSpriteSet(_game);
if (!_defaultSpriteSet || DID_FAIL(_defaultSpriteSet->loadFile(_defaultSpriteSetFilename))) {
SAFE_DELETE(_defaultSpriteSet);
diff --git a/engines/wintermute/ad/ad_talk_holder.cpp b/engines/wintermute/ad/ad_talk_holder.cpp
index adaa3d5378d..db0aba5b011 100644
--- a/engines/wintermute/ad/ad_talk_holder.cpp
+++ b/engines/wintermute/ad/ad_talk_holder.cpp
@@ -70,7 +70,7 @@ BaseSprite *AdTalkHolder::getTalkStance(const char *stance) {
// forced stance?
- if (_forcedTalkAnimName && !_forcedTalkAnimUsed) {
+ if (_forcedTalkAnimName && _forcedTalkAnimName[0] && !_forcedTalkAnimUsed) {
_forcedTalkAnimUsed = true;
SAFE_DELETE(_animSprite);
_animSprite = new BaseSprite(_game, this);
@@ -168,7 +168,7 @@ bool AdTalkHolder::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisS
else if (strcmp(name, "GetSprite") == 0) {
stack->correctParams(0);
- if (!_sprite || !_sprite->_filename) {
+ if (!_sprite || !_sprite->_filename || !_sprite->_filename[0]) {
stack->pushNULL();
} else {
stack->pushString(_sprite->_filename);
@@ -395,13 +395,13 @@ const char *AdTalkHolder::scToString() {
//////////////////////////////////////////////////////////////////////////
bool AdTalkHolder::saveAsText(BaseDynamicBuffer *buffer, int indent) {
for (int32 i = 0; i < _talkSprites.getSize(); i++) {
- if (_talkSprites[i]->_filename) {
+ if (_talkSprites[i]->_filename && _talkSprites[i]->_filename[0]) {
buffer->putTextIndent(indent + 2, "TALK=\"%s\"\n", _talkSprites[i]->_filename);
}
}
for (int32 i = 0; i < _talkSpritesEx.getSize(); i++) {
- if (_talkSpritesEx[i]->_filename) {
+ if (_talkSpritesEx[i]->_filename && _talkSpritesEx[i]->_filename[0]) {
buffer->putTextIndent(indent + 2, "TALK_SPECIAL=\"%s\"\n", _talkSpritesEx[i]->_filename);
}
}
diff --git a/engines/wintermute/ad/ad_talk_node.cpp b/engines/wintermute/ad/ad_talk_node.cpp
index cab7c3aa9ce..927026cf9dd 100644
--- a/engines/wintermute/ad/ad_talk_node.cpp
+++ b/engines/wintermute/ad/ad_talk_node.cpp
@@ -164,7 +164,7 @@ bool AdTalkNode::loadBuffer(char *buffer, bool complete) {
_playToEnd = false;
}
- if (_preCache && _spriteFilename) {
+ if (_preCache && _spriteFilename && _spriteFilename[0]) {
SAFE_DELETE(_sprite);
_sprite = new BaseSprite(_game);
if (!_sprite || DID_FAIL(_sprite->loadFile(_spriteFilename))) {
@@ -172,7 +172,7 @@ bool AdTalkNode::loadBuffer(char *buffer, bool complete) {
}
}
- if (_preCache && _spriteSetFilename) {
+ if (_preCache && _spriteSetFilename && _spriteSetFilename[0]) {
SAFE_DELETE(_spriteSet);
_spriteSet = new AdSpriteSet(_game);
if (!_spriteSet || DID_FAIL(_spriteSet->loadFile(_spriteSetFilename))) {
@@ -208,17 +208,17 @@ bool AdTalkNode::persist(BasePersistenceManager *persistMgr) {
//////////////////////////////////////////////////////////////////////////
bool AdTalkNode::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent, "ACTION {\n");
- if (_comment) {
+ if (_comment && _comment[0]) {
buffer->putTextIndent(indent + 2, "COMMENT=\"%s\"\n", _comment);
}
buffer->putTextIndent(indent + 2, "START_TIME=%d\n", _startTime);
if (!_playToEnd) {
buffer->putTextIndent(indent + 2, "END_TIME=%d\n", _endTime);
}
- if (_spriteFilename) {
+ if (_spriteFilename && _spriteFilename[0]) {
buffer->putTextIndent(indent + 2, "SPRITE=\"%s\"\n", _spriteFilename);
}
- if (_spriteSetFilename) {
+ if (_spriteSetFilename && _spriteSetFilename[0]) {
buffer->putTextIndent(indent + 2, "SPRITESET_FILE=\"%s\"\n", _spriteSetFilename);
} else if (_spriteSet) {
_spriteSet->saveAsText(buffer, indent + 2);
@@ -237,7 +237,7 @@ bool AdTalkNode::saveAsText(BaseDynamicBuffer *buffer, int indent) {
//////////////////////////////////////////////////////////////////////////
bool AdTalkNode::loadSprite() {
- if (_spriteFilename && !_sprite) {
+ if (_spriteFilename && _spriteFilename[0] && !_sprite) {
_sprite = new BaseSprite(_game);
if (!_sprite || DID_FAIL(_sprite->loadFile(_spriteFilename))) {
SAFE_DELETE(_sprite);
@@ -245,7 +245,7 @@ bool AdTalkNode::loadSprite() {
} else {
return STATUS_OK;
}
- } else if (_spriteSetFilename && !_spriteSet) {
+ } else if (_spriteSetFilename && _spriteSetFilename[0] && !_spriteSet) {
_spriteSet = new AdSpriteSet(_game);
if (!_spriteSet || DID_FAIL(_spriteSet->loadFile(_spriteSetFilename))) {
SAFE_DELETE(_spriteSet);
@@ -263,9 +263,9 @@ bool AdTalkNode::loadSprite() {
bool AdTalkNode::isInTimeInterval(uint32 time, TDirection dir) {
if (time >= _startTime) {
if (_playToEnd) {
- if ((_spriteFilename && _sprite == nullptr) || (_sprite && _sprite->_finished == false)) {
+ if ((_spriteFilename && _spriteFilename[0] && _sprite == nullptr) || (_sprite && _sprite->_finished == false)) {
return true;
- } else if ((_spriteSetFilename && _spriteSet == nullptr) || (_spriteSet && _spriteSet->getSprite(dir) && _spriteSet->getSprite(dir)->_finished == false)) {
+ } else if ((_spriteSetFilename && _spriteSetFilename[0] && _spriteSet == nullptr) || (_spriteSet && _spriteSet->getSprite(dir) && _spriteSet->getSprite(dir)->_finished == false)) {
return true;
} else {
return false;
diff --git a/engines/wintermute/base/base_frame.cpp b/engines/wintermute/base/base_frame.cpp
index 59a715a4cec..d469076bbde 100644
--- a/engines/wintermute/base/base_frame.cpp
+++ b/engines/wintermute/base/base_frame.cpp
@@ -374,7 +374,7 @@ bool BaseFrame::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent + 2, "MOVE {%d, %d}\n", _moveX, _moveY);
}
- if (_sound && _sound->_soundFilename) {
+ if (_sound && _sound->_soundFilename && _sound->_soundFilename[0]) {
buffer->putTextIndent(indent + 2, "SOUND=\"%s\"\n", _sound->_soundFilename);
}
@@ -438,7 +438,7 @@ bool BaseFrame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStac
if (strcmp(name, "GetSound") == 0) {
stack->correctParams(0);
- if (_sound && _sound->_soundFilename) {
+ if (_sound && _sound->_soundFilename && _sound->_soundFilename[0]) {
stack->pushString(_sound->_soundFilename);
} else {
stack->pushNULL();
diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp
index 8bb17bbbc0b..1b496439d06 100644
--- a/engines/wintermute/base/base_game.cpp
+++ b/engines/wintermute/base/base_game.cpp
@@ -1391,7 +1391,7 @@ bool BaseGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
if (channel < 0 || channel >= NUM_MUSIC_CHANNELS) {
stack->pushNULL();
} else {
- if (!_music[channel] || !_music[channel]->_soundFilename) {
+ if (!_music[channel] || !_music[channel]->_soundFilename || !_music[channel]->_soundFilename[0]) {
stack->pushNULL();
} else {
stack->pushString(_music[channel]->_soundFilename);
@@ -2222,7 +2222,7 @@ bool BaseGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "GetActiveCursor") == 0) {
stack->correctParams(0);
- if (!_activeCursor || !_activeCursor->_filename) {
+ if (!_activeCursor || !_activeCursor->_filename || !_activeCursor->_filename[0]) {
stack->pushNULL();
} else {
stack->pushString(_activeCursor->_filename);
diff --git a/engines/wintermute/base/base_object.cpp b/engines/wintermute/base/base_object.cpp
index a21b9f15966..629a6fd828d 100644
--- a/engines/wintermute/base/base_object.cpp
+++ b/engines/wintermute/base/base_object.cpp
@@ -270,7 +270,7 @@ bool BaseObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "GetCursor") == 0) {
stack->correctParams(0);
- if (!_cursor || !_cursor->_filename) {
+ if (!_cursor || !_cursor->_filename || !_cursor->_filename[0]) {
stack->pushNULL();
} else {
stack->pushString(_cursor->_filename);
@@ -1316,7 +1316,7 @@ bool BaseObject::setSFXVolume(int volume) {
//////////////////////////////////////////////////////////////////////////
bool BaseObject::updateSounds() {
- if (_soundEvent) {
+ if (_soundEvent && _soundEvent[0]) {
if (_sFX && !_sFX->isPlaying()) {
applyEvent(_soundEvent);
setSoundEvent(nullptr);
diff --git a/engines/wintermute/base/base_script_holder.cpp b/engines/wintermute/base/base_script_holder.cpp
index 61689226cc2..2c35bf01a4f 100644
--- a/engines/wintermute/base/base_script_holder.cpp
+++ b/engines/wintermute/base/base_script_holder.cpp
@@ -483,11 +483,11 @@ ScScript *BaseScriptHolder::invokeMethodThread(const char *methodName) {
//////////////////////////////////////////////////////////////////////////
void BaseScriptHolder::scDebuggerDesc(char *buf, int bufSize) {
Common::strcpy_s(buf, bufSize, scToString());
- if (_name && strcmp(_name, "<unnamed>") != 0) {
+ if (_name && _name[0] && strcmp(_name, "<unnamed>") != 0) {
Common::strcat_s(buf, bufSize, " Name: ");
Common::strcat_s(buf, bufSize, _name);
}
- if (_filename) {
+ if (_filename && _filename[0]) {
Common::strcat_s(buf, bufSize, " File: ");
Common::strcat_s(buf, bufSize, _filename);
}
diff --git a/engines/wintermute/base/base_sprite.cpp b/engines/wintermute/base/base_sprite.cpp
index f7eeba7ea3c..be2189e4c71 100644
--- a/engines/wintermute/base/base_sprite.cpp
+++ b/engines/wintermute/base/base_sprite.cpp
@@ -490,7 +490,7 @@ bool BaseSprite::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent + 2, "EDITOR_MUTED=%s\n", _editorMuted ? "TRUE" : "FALSE");
}
- if (_editorBgFile) {
+ if (_editorBgFile && _editorBgFile[0]) {
buffer->putTextIndent(indent + 2, "EDITOR_BG_FILE=\"%s\"\n", _editorBgFile);
buffer->putTextIndent(indent + 2, "EDITOR_BG_OFFSET_X=%d\n", _editorBgOffsetX);
buffer->putTextIndent(indent + 2, "EDITOR_BG_OFFSET_Y=%d\n", _editorBgOffsetY);
diff --git a/engines/wintermute/base/base_sub_frame.cpp b/engines/wintermute/base/base_sub_frame.cpp
index e8ce570423c..9ac3c37ebdd 100644
--- a/engines/wintermute/base/base_sub_frame.cpp
+++ b/engines/wintermute/base/base_sub_frame.cpp
@@ -284,7 +284,7 @@ bool BaseSubFrame::saveAsText(BaseDynamicBuffer *buffer, int indent, bool comple
buffer->putTextIndent(indent, "SUBFRAME {\n");
}
- if (_surface && _surface->_filename != nullptr) {
+ if (_surface && _surface->_filename && _surface->_filename[0]) {
buffer->putTextIndent(indent + 2, "IMAGE = \"%s\"\n", _surface->_filename);
}
@@ -415,7 +415,7 @@ bool BaseSubFrame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisS
if (strcmp(name, "GetImage") == 0) {
stack->correctParams(0);
- if (!_surfaceFilename) {
+ if (!_surfaceFilename && _surfaceFilename[0]) {
stack->pushNULL();
} else {
stack->pushString(_surfaceFilename);
@@ -708,7 +708,7 @@ bool BaseSubFrame::setSurface(const char *filename, bool defaultCK, byte ckRed,
//////////////////////////////////////////////////////////////////////////
bool BaseSubFrame::setSurfaceSimple() {
- if (!_surfaceFilename) {
+ if (!_surfaceFilename && _surfaceFilename[0]) {
_surface = nullptr;
return STATUS_OK;
}
diff --git a/engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp b/engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp
index 128b1b47ca9..246b8cfab42 100644
--- a/engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp
@@ -168,7 +168,7 @@ bool BaseSurfaceOpenGL3D::create(const char *filename, bool defaultCK, byte ckRe
}
bool BaseSurfaceOpenGL3D::loadImage() {
- if (!_filename) {
+ if (!_filename || !_filename[0]) {
return false;
}
Common::String filename = _filename;
diff --git a/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp b/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
index 4c8b7cbb467..c93d5d43c15 100644
--- a/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
+++ b/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
@@ -116,7 +116,7 @@ bool BaseSurfaceOSystem::create(const char *filename, bool defaultCK, byte ckRed
}
bool BaseSurfaceOSystem::loadImage() {
- if (!_filename) {
+ if (!_filename || !_filename[0]) {
return false;
}
Common::String filename = _filename;
diff --git a/engines/wintermute/base/gfx/xmodel.cpp b/engines/wintermute/base/gfx/xmodel.cpp
index 865a1e13404..7dfa3ee502f 100644
--- a/engines/wintermute/base/gfx/xmodel.cpp
+++ b/engines/wintermute/base/gfx/xmodel.cpp
@@ -1014,7 +1014,7 @@ bool XModel::persist(BasePersistenceManager *persistMgr) {
}
_rootFrame = nullptr;
- if (_filename) {
+ if (_filename && _filename[0]) {
loadFromFile(_filename);
}
diff --git a/engines/wintermute/base/particles/part_emitter.cpp b/engines/wintermute/base/particles/part_emitter.cpp
index eeddfceec3e..03f9e46e8bb 100644
--- a/engines/wintermute/base/particles/part_emitter.cpp
+++ b/engines/wintermute/base/particles/part_emitter.cpp
@@ -307,7 +307,7 @@ bool PartEmitter::updateInternal(uint32 currentTime, uint32 timerDelta) {
// we actually generated some particles and we're not in fast-forward mode
if (needsSort && _overheadTime == 0) {
- if (_owner && _emitEvent) {
+ if (_owner && _emitEvent && _emitEvent[0]) {
_owner->applyEvent(_emitEvent);
}
}
@@ -868,7 +868,7 @@ ScValue *PartEmitter::scGetProperty(const char *name) {
// EmitEvent
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "EmitEvent") == 0) {
- if (!_emitEvent) {
+ if (!_emitEvent || !_emitEvent[0]) {
_scValue->setNULL();
} else {
_scValue->setString(_emitEvent);
diff --git a/engines/wintermute/base/particles/part_particle.cpp b/engines/wintermute/base/particles/part_particle.cpp
index 51c1aa506de..37ed66d7e3e 100644
--- a/engines/wintermute/base/particles/part_particle.cpp
+++ b/engines/wintermute/base/particles/part_particle.cpp
@@ -71,7 +71,7 @@ PartParticle::~PartParticle() {
//////////////////////////////////////////////////////////////////////////
bool PartParticle::setSprite(const char *filename) {
- if (_sprite && _sprite->_filename && scumm_stricmp(filename, _sprite->_filename) == 0) {
+ if (_sprite && _sprite->_filename && _sprite->_filename[0] && scumm_stricmp(filename, _sprite->_filename) == 0) {
_sprite->reset();
return STATUS_OK;
}
diff --git a/engines/wintermute/base/scriptables/script_engine.cpp b/engines/wintermute/base/scriptables/script_engine.cpp
index 0efd57cb7c9..0682fe4317d 100644
--- a/engines/wintermute/base/scriptables/script_engine.cpp
+++ b/engines/wintermute/base/scriptables/script_engine.cpp
@@ -357,7 +357,7 @@ bool ScEngine::tick() {
_currentScript = _scripts[i];
_scripts[i]->executeInstruction();
}
- if (_isProfiling && _scripts[i]->_filename) {
+ if (_isProfiling && _scripts[i]->_filename && _scripts[i]->_filename[0]) {
addScriptTime(_scripts[i]->_filename, BasePlatform::getTime() - startTime);
}
}
@@ -374,7 +374,7 @@ bool ScEngine::tick() {
_currentScript = _scripts[i];
_scripts[i]->executeInstruction();
}
- if (isProfiling && _scripts[i]->_filename) {
+ if (isProfiling && _scripts[i]->_filename && _scripts[i]->_filename[0]) {
addScriptTime(_scripts[i]->_filename, BasePlatform::getTime() - startTime);
}
}
diff --git a/engines/wintermute/base/scriptables/script_ext_file.cpp b/engines/wintermute/base/scriptables/script_ext_file.cpp
index 0224cdaf87d..908beb4df1d 100644
--- a/engines/wintermute/base/scriptables/script_ext_file.cpp
+++ b/engines/wintermute/base/scriptables/script_ext_file.cpp
@@ -94,7 +94,7 @@ void SXFile::close() {
//////////////////////////////////////////////////////////////////////////
const char *SXFile::scToString() {
- if (_filename) {
+ if (_filename && _filename[0]) {
return _filename;
} else {
return "[file object]";
diff --git a/engines/wintermute/ui/ui_button.cpp b/engines/wintermute/ui/ui_button.cpp
index 9cb1ccdc568..237dcda9a80 100644
--- a/engines/wintermute/ui/ui_button.cpp
+++ b/engines/wintermute/ui/ui_button.cpp
@@ -475,62 +475,62 @@ bool UIButton::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent + 2, "\n");
- if (_back && _back->_filename) {
+ if (_back && _back->_filename && _back->_filename[0]) {
buffer->putTextIndent(indent + 2, "BACK=\"%s\"\n", _back->_filename);
}
- if (_backHover && _backHover->_filename) {
+ if (_backHover && _backHover->_filename && _backHover->_filename[0]) {
buffer->putTextIndent(indent + 2, "BACK_HOVER=\"%s\"\n", _backHover->_filename);
}
- if (_backPress && _backPress->_filename) {
+ if (_backPress && _backPress->_filename && _backPress->_filename[0]) {
buffer->putTextIndent(indent + 2, "BACK_PRESS=\"%s\"\n", _backPress->_filename);
}
- if (_backDisable && _backDisable->_filename) {
+ if (_backDisable && _backDisable->_filename && _backDisable->_filename[0]) {
buffer->putTextIndent(indent + 2, "BACK_DISABLE=\"%s\"\n", _backDisable->_filename);
}
- if (_backFocus && _backFocus->_filename) {
+ if (_backFocus && _backFocus->_filename && _backFocus->_filename[0]) {
buffer->putTextIndent(indent + 2, "BACK_FOCUS=\"%s\"\n", _backFocus->_filename);
}
- if (_image && _image->_filename) {
+ if (_image && _image->_filename && _image->_filename[0]) {
buffer->putTextIndent(indent + 2, "IMAGE=\"%s\"\n", _image->_filename);
}
- if (_imageHover && _imageHover->_filename) {
+ if (_imageHover && _imageHover->_filename && _imageHover->_filename[0]) {
buffer->putTextIndent(indent + 2, "IMAGE_HOVER=\"%s\"\n", _imageHover->_filename);
}
- if (_imagePress && _imagePress->_filename) {
+ if (_imagePress && _imagePress->_filename && _imagePress->_filename[0]) {
buffer->putTextIndent(indent + 2, "IMAGE_PRESS=\"%s\"\n", _imagePress->_filename);
}
- if (_imageDisable && _imageDisable->_filename) {
+ if (_imageDisable && _imageDisable->_filename && _imageDisable->_filename[0]) {
buffer->putTextIndent(indent + 2, "IMAGE_DISABLE=\"%s\"\n", _imageDisable->_filename);
}
- if (_imageFocus && _imageFocus->_filename) {
+ if (_imageFocus && _imageFocus->_filename && _imageFocus->_filename[0]) {
buffer->putTextIndent(indent + 2, "IMAGE_FOCUS=\"%s\"\n", _imageFocus->_filename);
}
- if (_font && _font->_filename) {
+ if (_font && _font->_filename && _font->_filename[0]) {
buffer->putTextIndent(indent + 2, "FONT=\"%s\"\n", _font->_filename);
}
- if (_fontHover && _fontHover->_filename) {
+ if (_fontHover && _fontHover->_filename && _fontHover->_filename[0]) {
buffer->putTextIndent(indent + 2, "FONT_HOVER=\"%s\"\n", _fontHover->_filename);
}
- if (_fontPress && _fontPress->_filename) {
+ if (_fontPress && _fontPress->_filename && _fontPress->_filename[0]) {
buffer->putTextIndent(indent + 2, "FONT_PRESS=\"%s\"\n", _fontPress->_filename);
}
- if (_fontDisable && _fontDisable->_filename) {
+ if (_fontDisable && _fontDisable->_filename && _fontDisable->_filename[0]) {
buffer->putTextIndent(indent + 2, "FONT_DISABLE=\"%s\"\n", _fontDisable->_filename);
}
- if (_fontFocus && _fontFocus->_filename) {
+ if (_fontFocus && _fontFocus->_filename && _fontFocus->_filename[0]) {
buffer->putTextIndent(indent + 2, "FONT_FOCUS=\"%s\"\n", _fontFocus->_filename);
}
- if (_cursor && _cursor->_filename) {
+ if (_cursor && _cursor->_filename && _cursor->_filename[0]) {
buffer->putTextIndent(indent + 2, "CURSOR=\"%s\"\n", _cursor->_filename);
}
buffer->putTextIndent(indent + 2, "\n");
- if (_text) {
+ if (_text && _text[0]) {
buffer->putTextIndent(indent + 2, "TEXT=\"%s\"\n", _text);
}
@@ -613,7 +613,7 @@ void UIButton::correctSize() {
}
}
- if (_text) {
+ if (_text && _text[0]) {
int textHeight;
if (_font) {
textHeight = _font->getTextHeight((byte *)_text, _width);
@@ -664,7 +664,7 @@ bool UIButton::display(int offsetX, int offsetY) {
if (_imageDisable) {
image = _imageDisable;
}
- if (_text && _fontDisable) {
+ if (_text && _text[0] && _fontDisable) {
font = _fontDisable;
}
} else if (_press || _oneTimePress || _stayPressed) {
@@ -674,7 +674,7 @@ bool UIButton::display(int offsetX, int offsetY) {
if (_imagePress) {
image = _imagePress;
}
- if (_text && _fontPress) {
+ if (_text && _text[0] && _fontPress) {
font = _fontPress;
}
} else if (_hover) {
@@ -684,7 +684,7 @@ bool UIButton::display(int offsetX, int offsetY) {
if (_imageHover) {
image = _imageHover;
}
- if (_text && _fontHover) {
+ if (_text && _text[0] && _fontHover) {
font = _fontHover;
}
} else if (_canFocus && isFocused()) {
@@ -694,7 +694,7 @@ bool UIButton::display(int offsetX, int offsetY) {
if (_imageFocus) {
image = _imageFocus;
}
- if (_text && _fontFocus) {
+ if (_text && _text[0] && _fontFocus) {
font = _fontFocus;
}
}
@@ -705,7 +705,7 @@ bool UIButton::display(int offsetX, int offsetY) {
if (!image && _image) {
image = _image;
}
- if (_text && !font) {
+ if (_text && _text[0] && !font) {
if (_font) {
font = _font;
} else {
@@ -731,7 +731,7 @@ bool UIButton::display(int offsetX, int offsetY) {
image->draw(imageX + ((_press || _oneTimePress) && back ? 1 : 0), imageY + ((_press || _oneTimePress) && back ? 1 : 0), _pixelPerfect ? this : nullptr);
}
- if (font && _text) {
+ if (font && _text && _text[0]) {
int text_offset = (_height - font->getTextHeight((byte *)_text, _width)) / 2;
font->drawText((byte *)_text, offsetX + _posX + ((_press || _oneTimePress) ? 1 : 0), offsetY + _posY + text_offset + ((_press || _oneTimePress) ? 1 : 0), _width, _align);
}
@@ -906,7 +906,7 @@ bool UIButton::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "GetDisabledImage") == 0) {
stack->correctParams(0);
- if (!_imageDisable || !_imageDisable->_filename) {
+ if (!_imageDisable || !_imageDisable->_filename|| !_imageDisable->_filename[0]) {
stack->pushNULL();
} else {
stack->pushString(_imageDisable->_filename);
@@ -954,7 +954,7 @@ bool UIButton::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "GetHoverImage") == 0) {
stack->correctParams(0);
- if (!_imageHover || !_imageHover->_filename) {
+ if (!_imageHover || !_imageHover->_filename || !_imageHover->_filename[0]) {
stack->pushNULL();
} else {
stack->pushString(_imageHover->_filename);
@@ -1001,7 +1001,7 @@ bool UIButton::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "GetPressedImage") == 0) {
stack->correctParams(0);
- if (!_imagePress || !_imagePress->_filename) {
+ if (!_imagePress || !_imagePress->_filename || !_imagePress->_filename[0]) {
stack->pushNULL();
} else {
stack->pushString(_imagePress->_filename);
@@ -1048,7 +1048,7 @@ bool UIButton::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "GetFocusedImage") == 0) {
stack->correctParams(0);
- if (!_imageFocus || !_imageFocus->_filename) {
+ if (!_imageFocus || !_imageFocus->_filename || !_imageFocus->_filename[0]) {
stack->pushNULL();
} else {
stack->pushString(_imageFocus->_filename);
diff --git a/engines/wintermute/ui/ui_edit.cpp b/engines/wintermute/ui/ui_edit.cpp
index 3699ea798aa..498541f77ad 100644
--- a/engines/wintermute/ui/ui_edit.cpp
+++ b/engines/wintermute/ui/ui_edit.cpp
@@ -322,28 +322,28 @@ bool UIEdit::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent + 2, "\n");
- if (_back && _back->_filename) {
+ if (_back && _back->_filename && _back->_filename[0]) {
buffer->putTextIndent(indent + 2, "BACK=\"%s\"\n", _back->_filename);
}
- if (_image && _image->_filename) {
+ if (_image && _image->_filename && _image->_filename[0]) {
buffer->putTextIndent(indent + 2, "IMAGE=\"%s\"\n", _image->_filename);
}
- if (_font && _font->_filename) {
+ if (_font && _font->_filename && _font->_filename[0]) {
buffer->putTextIndent(indent + 2, "FONT=\"%s\"\n", _font->_filename);
}
- if (_fontSelected && _fontSelected->_filename) {
+ if (_fontSelected && _fontSelected->_filename && _fontSelected->_filename[0]) {
buffer->putTextIndent(indent + 2, "FONT_SELECTED=\"%s\"\n", _fontSelected->_filename);
}
- if (_cursor && _cursor->_filename) {
+ if (_cursor && _cursor->_filename && _cursor->_filename[0]) {
buffer->putTextIndent(indent + 2, "CURSOR=\"%s\"\n", _cursor->_filename);
}
buffer->putTextIndent(indent + 2, "\n");
- if (_text) {
+ if (_text && _text[0]) {
buffer->putTextIndent(indent + 2, "TEXT=\"%s\"\n", _text);
}
diff --git a/engines/wintermute/ui/ui_entity.cpp b/engines/wintermute/ui/ui_entity.cpp
index cee33db7c39..182c529187d 100644
--- a/engines/wintermute/ui/ui_entity.cpp
+++ b/engines/wintermute/ui/ui_entity.cpp
@@ -198,7 +198,7 @@ bool UIEntity::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent + 2, "DISABLED=%s\n", _disable ? "TRUE" : "FALSE");
buffer->putTextIndent(indent + 2, "VISIBLE=%s\n", _visible ? "TRUE" : "FALSE");
- if (_entity && _entity->_filename) {
+ if (_entity && _entity->_filename && _entity->_filename[0]) {
buffer->putTextIndent(indent + 2, "ENTITY=\"%s\"\n", _entity->_filename);
}
diff --git a/engines/wintermute/ui/ui_object.cpp b/engines/wintermute/ui/ui_object.cpp
index b9376f8f869..71363b89722 100644
--- a/engines/wintermute/ui/ui_object.cpp
+++ b/engines/wintermute/ui/ui_object.cpp
@@ -205,7 +205,7 @@ bool UIObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "GetImage") == 0) {
stack->correctParams(0);
- if (!_image || !_image->_filename) {
+ if (!_image || !_image->_filename || !_image->_filename[0]) {
stack->pushNULL();
} else {
stack->pushString(_image->_filename);
diff --git a/engines/wintermute/ui/ui_text.cpp b/engines/wintermute/ui/ui_text.cpp
index ee802eec42b..276c5aaf94b 100644
--- a/engines/wintermute/ui/ui_text.cpp
+++ b/engines/wintermute/ui/ui_text.cpp
@@ -79,7 +79,7 @@ bool UIText::display(int offsetX, int offsetY) {
_image->draw(offsetX + _posX, offsetY + _posY, nullptr);
}
- if (font && _text) {
+ if (font && _text && _text[0]) {
int textOffset;
switch (_verticalAlign) {
case VAL_TOP:
@@ -324,23 +324,23 @@ bool UIText::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent + 2, "\n");
- if (_back && _back->_filename) {
+ if (_back && _back->_filename && _back->_filename[0]) {
buffer->putTextIndent(indent + 2, "BACK=\"%s\"\n", _back->_filename);
}
- if (_image && _image->_filename) {
+ if (_image && _image->_filename && _image->_filename[0]) {
buffer->putTextIndent(indent + 2, "IMAGE=\"%s\"\n", _image->_filename);
}
- if (_font && _font->_filename) {
+ if (_font && _font->_filename && _font->_filename[0]) {
buffer->putTextIndent(indent + 2, "FONT=\"%s\"\n", _font->_filename);
}
- if (_cursor && _cursor->_filename) {
+ if (_cursor && _cursor->_filename && _cursor->_filename[0]) {
buffer->putTextIndent(indent + 2, "CURSOR=\"%s\"\n", _cursor->_filename);
}
- if (_text) {
+ if (_text && _text[0]) {
buffer->putTextIndent(indent + 2, "TEXT=\"%s\"\n", _text);
}
@@ -511,7 +511,7 @@ bool UIText::persist(BasePersistenceManager *persistMgr) {
//////////////////////////////////////////////////////////////////////////
bool UIText::sizeToFit() {
- if (_font && _text) {
+ if (_font && _text && _text[0]) {
_width = _font->getTextWidth((byte *)_text);
_height = _font->getTextHeight((byte *)_text, _width);
}
diff --git a/engines/wintermute/ui/ui_tiled_image.cpp b/engines/wintermute/ui/ui_tiled_image.cpp
index b87a249d600..1e2439c28f5 100644
--- a/engines/wintermute/ui/ui_tiled_image.cpp
+++ b/engines/wintermute/ui/ui_tiled_image.cpp
@@ -327,7 +327,7 @@ bool UITiledImage::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent, "TILED_IMAGE\n");
buffer->putTextIndent(indent, "{\n");
- if (_image && _image->_surfaceFilename) {
+ if (_image && _image->_surfaceFilename && _image->_surfaceFilename[0]) {
buffer->putTextIndent(indent + 2, "IMAGE=\"%s\"\n", _image->_surfaceFilename);
}
diff --git a/engines/wintermute/ui/ui_window.cpp b/engines/wintermute/ui/ui_window.cpp
index 8c7e74d8764..04767fecf1b 100644
--- a/engines/wintermute/ui/ui_window.cpp
+++ b/engines/wintermute/ui/ui_window.cpp
@@ -622,34 +622,34 @@ bool UIWindow::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent + 2, "\n");
- if (_back && _back->_filename) {
+ if (_back && _back->_filename && _back->_filename[0]) {
buffer->putTextIndent(indent + 2, "BACK=\"%s\"\n", _back->_filename);
}
- if (_backInactive && _backInactive->_filename) {
+ if (_backInactive && _backInactive->_filename && _backInactive->_filename[0]) {
buffer->putTextIndent(indent + 2, "BACK_INACTIVE=\"%s\"\n", _backInactive->_filename);
}
- if (_image && _image->_filename) {
+ if (_image && _image->_filename && _image->_filename[0]) {
buffer->putTextIndent(indent + 2, "IMAGE=\"%s\"\n", _image->_filename);
}
- if (_imageInactive && _imageInactive->_filename) {
+ if (_imageInactive && _imageInactive->_filename && _imageInactive->_filename[0]) {
buffer->putTextIndent(indent + 2, "IMAGE_INACTIVE=\"%s\"\n", _imageInactive->_filename);
}
- if (_font && _font->_filename) {
+ if (_font && _font->_filename && _font->_filename[0]) {
buffer->putTextIndent(indent + 2, "FONT=\"%s\"\n", _font->_filename);
}
- if (_fontInactive && _fontInactive->_filename) {
+ if (_fontInactive && _fontInactive->_filename && _fontInactive->_filename[0]) {
buffer->putTextIndent(indent + 2, "FONT_INACTIVE=\"%s\"\n", _fontInactive->_filename);
}
- if (_cursor && _cursor->_filename) {
+ if (_cursor && _cursor->_filename && _cursor->_filename[0]) {
buffer->putTextIndent(indent + 2, "CURSOR=\"%s\"\n", _cursor->_filename);
}
buffer->putTextIndent(indent + 2, "\n");
- if (_text) {
+ if (_text && _text[0]) {
buffer->putTextIndent(indent + 2, "TITLE=\"%s\"\n", _text);
}
@@ -815,7 +815,7 @@ bool UIWindow::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "GetInactiveImage") == 0) {
stack->correctParams(0);
- if (!_imageInactive || !_imageInactive->_filename) {
+ if (!_imageInactive || !_imageInactive->_filename || !_imageInactive->_filename[0]) {
stack->pushNULL();
} else {
stack->pushString(_imageInactive->_filename);
diff --git a/engines/wintermute/video/video_theora_player.cpp b/engines/wintermute/video/video_theora_player.cpp
index e4f8c32bd40..1853bd2d412 100644
--- a/engines/wintermute/video/video_theora_player.cpp
+++ b/engines/wintermute/video/video_theora_player.cpp
@@ -462,7 +462,7 @@ bool VideoTheoraPlayer::persist(BasePersistenceManager *persistMgr) {
//////////////////////////////////////////////////////////////////////////
bool VideoTheoraPlayer::initializeSimple() {
if (DID_SUCCEED(initialize(_filename))) {
- if (_alphaFilename) {
+ if (_alphaFilename && _alphaFilename[0]) {
setAlphaImage(_alphaFilename);
}
play(_playbackType, _posX, _posY, false, false, _looping, _savedPos, _playZoom);
More information about the Scummvm-git-logs
mailing list