[Scummvm-git-logs] scummvm master -> 702ab440ca15bb8a9c14b34d237400a8bea05b97
aquadran
noreply at scummvm.org
Wed Aug 13 07:50:21 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:
702ab440ca WINTERMUTE: Synced with original code
Commit: 702ab440ca15bb8a9c14b34d237400a8bea05b97
https://github.com/scummvm/scummvm/commit/702ab440ca15bb8a9c14b34d237400a8bea05b97
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2025-08-13T09:50:13+02:00
Commit Message:
WINTERMUTE: Synced with original code
Changed paths:
engines/wintermute/ad/ad_actor.cpp
engines/wintermute/ad/ad_actor_3dx.cpp
engines/wintermute/ad/ad_attach_3dx.cpp
engines/wintermute/ad/ad_entity.cpp
engines/wintermute/ad/ad_game.cpp
engines/wintermute/ad/ad_inventory.cpp
engines/wintermute/ad/ad_inventory_box.cpp
engines/wintermute/ad/ad_item.cpp
engines/wintermute/ad/ad_layer.cpp
engines/wintermute/ad/ad_object.cpp
engines/wintermute/ad/ad_region.cpp
engines/wintermute/ad/ad_response_box.cpp
engines/wintermute/ad/ad_scene.cpp
engines/wintermute/ad/ad_scene_geometry.cpp
engines/wintermute/ad/ad_sprite_set.cpp
engines/wintermute/ad/ad_talk_holder.cpp
engines/wintermute/ad/ad_waypoint_group.cpp
engines/wintermute/base/base.h
engines/wintermute/base/base_active_rect.h
engines/wintermute/base/base_dynamic_buffer.h
engines/wintermute/base/base_fader.h
engines/wintermute/base/base_frame.cpp
engines/wintermute/base/base_frame.h
engines/wintermute/base/base_game.cpp
engines/wintermute/base/base_game.h
engines/wintermute/base/base_game_music.cpp
engines/wintermute/base/base_keyboard_state.h
engines/wintermute/base/base_named_object.h
engines/wintermute/base/base_object.cpp
engines/wintermute/base/base_parser.h
engines/wintermute/base/base_persistence_manager.cpp
engines/wintermute/base/base_quick_msg.cpp
engines/wintermute/base/base_quick_msg.h
engines/wintermute/base/base_region.cpp
engines/wintermute/base/base_region.h
engines/wintermute/base/base_script_holder.cpp
engines/wintermute/base/base_script_holder.h
engines/wintermute/base/base_scriptable.cpp
engines/wintermute/base/base_sprite.cpp
engines/wintermute/base/base_sprite.h
engines/wintermute/base/base_string_table.h
engines/wintermute/base/base_sub_frame.cpp
engines/wintermute/base/base_transition_manager.h
engines/wintermute/base/font/base_font.cpp
engines/wintermute/base/font/base_font_bitmap.cpp
engines/wintermute/base/font/base_font_bitmap.h
engines/wintermute/base/font/base_font_truetype.cpp
engines/wintermute/base/font/base_font_truetype.h
engines/wintermute/base/gfx/base_renderer.cpp
engines/wintermute/base/gfx/base_renderer.h
engines/wintermute/base/gfx/base_surface.h
engines/wintermute/base/gfx/xframe_node.cpp
engines/wintermute/base/gfx/xmesh.cpp
engines/wintermute/base/particles/part_emitter.cpp
engines/wintermute/base/particles/part_emitter.h
engines/wintermute/base/particles/part_force.cpp
engines/wintermute/base/particles/part_force.h
engines/wintermute/base/particles/part_particle.h
engines/wintermute/base/save_thumb_helper.cpp
engines/wintermute/base/scriptables/script.cpp
engines/wintermute/base/scriptables/script.h
engines/wintermute/base/scriptables/script_ext_array.h
engines/wintermute/base/scriptables/script_ext_date.h
engines/wintermute/base/scriptables/script_ext_directory.h
engines/wintermute/base/scriptables/script_ext_file.h
engines/wintermute/base/scriptables/script_ext_mem_buffer.h
engines/wintermute/base/scriptables/script_ext_string.cpp
engines/wintermute/base/scriptables/script_ext_string.h
engines/wintermute/base/scriptables/script_value.cpp
engines/wintermute/base/sound/base_sound.h
engines/wintermute/debugger/debugger_controller.cpp
engines/wintermute/ui/ui_button.cpp
engines/wintermute/ui/ui_button.h
engines/wintermute/ui/ui_edit.cpp
engines/wintermute/ui/ui_edit.h
engines/wintermute/ui/ui_entity.cpp
engines/wintermute/ui/ui_entity.h
engines/wintermute/ui/ui_object.cpp
engines/wintermute/ui/ui_object.h
engines/wintermute/ui/ui_text.cpp
engines/wintermute/ui/ui_text.h
engines/wintermute/ui/ui_tiled_image.h
engines/wintermute/ui/ui_window.cpp
engines/wintermute/ui/ui_window.h
engines/wintermute/video/video_subtitler.cpp
engines/wintermute/wintermute.cpp
diff --git a/engines/wintermute/ad/ad_actor.cpp b/engines/wintermute/ad/ad_actor.cpp
index 3629651116e..c678cf169af 100644
--- a/engines/wintermute/ad/ad_actor.cpp
+++ b/engines/wintermute/ad/ad_actor.cpp
@@ -1133,7 +1133,7 @@ bool AdActor::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
bool found = false;
for (int32 i = 0; i < _anims.getSize(); i++) {
- if (scumm_stricmp(_anims[i]->getName(), animName) == 0) {
+ if (scumm_stricmp(_anims[i]->_name, animName) == 0) {
// invalidate sprites in use
if (_anims[i]->containsSprite(_tempSprite2)) {
_tempSprite2 = nullptr;
@@ -1325,7 +1325,7 @@ BaseSprite *AdActor::getTalkStance(const char *stance) {
if (_animSprite) {
bool res = _animSprite->loadFile(_forcedTalkAnimName);
if (DID_FAIL(res)) {
- _gameRef->LOG(res, "AdActor::GetTalkStance: error loading talk sprite (object:\"%s\" sprite:\"%s\")", getName(), _forcedTalkAnimName);
+ _gameRef->LOG(res, "AdActor::GetTalkStance: error loading talk sprite (object:\"%s\" sprite:\"%s\")", _name, _forcedTalkAnimName);
delete _animSprite;
_animSprite = nullptr;
} else {
@@ -1352,7 +1352,7 @@ BaseSprite *AdActor::getTalkStance(const char *stance) {
if (!ret) {
BaseArray<AdSpriteSet *> talkAnims;
for (int32 i = 0; i < _anims.getSize(); i++) {
- if (_talkAnimName.compareToIgnoreCase(_anims[i]->getName()) == 0) {
+ if (_talkAnimName.compareToIgnoreCase(_anims[i]->_name) == 0) {
talkAnims.add(_anims[i]);
}
}
@@ -1381,7 +1381,7 @@ BaseSprite *AdActor::getTalkStanceOld(const char *stance) {
if (stance != nullptr) {
// search special stances
for (int32 i = 0; i < _talkSpritesEx.getSize(); i++) {
- if (scumm_stricmp(_talkSpritesEx[i]->getName(), stance) == 0) {
+ if (scumm_stricmp(_talkSpritesEx[i]->_name, stance) == 0) {
ret = _talkSpritesEx[i]->getSprite(_dir);
break;
}
@@ -1389,7 +1389,7 @@ BaseSprite *AdActor::getTalkStanceOld(const char *stance) {
if (ret == nullptr) {
// search generic stances
for (int32 i = 0; i < _talkSprites.getSize(); i++) {
- if (scumm_stricmp(_talkSprites[i]->getName(), stance) == 0) {
+ if (scumm_stricmp(_talkSprites[i]->_name, stance) == 0) {
ret = _talkSprites[i]->getSprite(_dir);
break;
}
@@ -1495,7 +1495,7 @@ AdSpriteSet *AdActor::getAnimByName(const Common::String &animName) {
return nullptr;
for (int32 i = 0; i < _anims.getSize(); i++) {
- if (animName.compareToIgnoreCase(_anims[i]->getName()) == 0) {
+ if (animName.compareToIgnoreCase(_anims[i]->_name) == 0) {
return _anims[i];
}
}
diff --git a/engines/wintermute/ad/ad_actor_3dx.cpp b/engines/wintermute/ad/ad_actor_3dx.cpp
index 3accc4d33dd..a8a5979068e 100644
--- a/engines/wintermute/ad/ad_actor_3dx.cpp
+++ b/engines/wintermute/ad/ad_actor_3dx.cpp
@@ -411,7 +411,7 @@ bool AdActor3DX::display() {
bool res = _xmodel->render();
if (_registrable) {
- _gameRef->_renderer->addRectToList(new BaseActiveRect(_gameRef, this, _xmodel,
+ _gameRef->_renderer->_rectList.add(new BaseActiveRect(_gameRef, this, _xmodel,
_xmodel->_boundingRect.left,
_xmodel->_boundingRect.top,
_xmodel->_boundingRect.right - _xmodel->_boundingRect.left,
@@ -431,9 +431,9 @@ bool AdActor3DX::display() {
}
// accessibility
- // if (_gameRef->_accessMgr->GetActiveObject() == this) {
- // _gameRef->_accessMgr->SetHintRect(&_xmodel->m_BoundingRect);
- // }
+ //if (_gameRef->_accessMgr->GetActiveObject() == this) {
+ // _gameRef->_accessMgr->SetHintRect(&_xmodel->m_BoundingRect);
+ //}
return res;
}
@@ -471,7 +471,7 @@ bool AdActor3DX::displayShadowVolume() {
DXVector3 lightPos = DXVector3(_shadowLightPos._x * _scale3D,
_shadowLightPos._y * _scale3D,
- _shadowLightPos._z * _scale3D);
+ _shadowLightPos._z * _scale3D);
pos = _posVector + lightPos;
target = _posVector;
@@ -731,8 +731,8 @@ void AdActor3DX::getNextStep2D() {
DXVector3 currentPoint;
adGame->_scene->_geom->convert2Dto3DTolerant(_path2D->getCurrent()->x,
- _path2D->getCurrent()->y,
- ¤tPoint);
+ _path2D->getCurrent()->y,
+ ¤tPoint);
DXVector3 origVec, newVec;
@@ -753,8 +753,8 @@ void AdActor3DX::getNextStep2D() {
}
} else {
adGame->_scene->_geom->convert2Dto3DTolerant(_path2D->getCurrent()->x,
- _path2D->getCurrent()->y,
- ¤tPoint);
+ _path2D->getCurrent()->y,
+ ¤tPoint);
initLine3D(_posVector, currentPoint, false);
}
} else
@@ -782,8 +782,8 @@ void AdActor3DX::followPath2D() {
DXVector3 currentPoint;
adGameRef->_scene->_geom->convert2Dto3DTolerant(_path2D->getCurrent()->x,
- _path2D->getCurrent()->y,
- ¤tPoint);
+ _path2D->getCurrent()->y,
+ ¤tPoint);
initLine3D(_posVector, currentPoint, true);
} else {
@@ -1452,7 +1452,7 @@ bool AdActor3DX::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
} else {
bool isSet = false;
for (int32 i = 0; i < _attachments.getSize(); i++) {
- if (scumm_stricmp(_attachments[i]->getName(), attachName) == 0) {
+ if (scumm_stricmp(_attachments[i]->_name, attachName) == 0) {
delete _attachments[i];
_attachments[i] = at;
isSet = true;
@@ -1486,7 +1486,7 @@ bool AdActor3DX::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
} else {
bool isFound = false;
for (int32 i = 0; i < _attachments.getSize(); i++) {
- if (scumm_stricmp(_attachments[i]->getName(), attachmentName) == 0) {
+ if (scumm_stricmp(_attachments[i]->_name, attachmentName) == 0) {
delete _attachments[i];
_attachments.removeAt(i);
isFound = true;
@@ -1510,7 +1510,7 @@ bool AdActor3DX::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
} else {
bool isFound = false;
for (int32 i = 0; i < _attachments.getSize(); i++) {
- if (scumm_stricmp(_attachments[i]->getName(), attachmentName) == 0) {
+ if (scumm_stricmp(_attachments[i]->_name, attachmentName) == 0) {
stack->pushNative(_attachments[i], true);
isFound = true;
break;
diff --git a/engines/wintermute/ad/ad_attach_3dx.cpp b/engines/wintermute/ad/ad_attach_3dx.cpp
index 4a059031187..2c5227c7753 100644
--- a/engines/wintermute/ad/ad_attach_3dx.cpp
+++ b/engines/wintermute/ad/ad_attach_3dx.cpp
@@ -92,7 +92,7 @@ bool AdAttach3DX::displayAttachable(DXMatrix *viewMat, bool registerObjects) {
_xmodel->render();
if (registerObjects && _owner && _owner->_registrable) {
- _gameRef->_renderer->addRectToList(new BaseActiveRect(_gameRef, _owner, _xmodel,
+ _gameRef->_renderer->_rectList.add(new BaseActiveRect(_gameRef, _owner, _xmodel,
_xmodel->_boundingRect.left,
_xmodel->_boundingRect.top,
_xmodel->_boundingRect.right - _xmodel->_boundingRect.left,
diff --git a/engines/wintermute/ad/ad_entity.cpp b/engines/wintermute/ad/ad_entity.cpp
index 6aedec564d5..f819df81b89 100644
--- a/engines/wintermute/ad/ad_entity.cpp
+++ b/engines/wintermute/ad/ad_entity.cpp
@@ -542,7 +542,7 @@ bool AdEntity::loadBuffer(char *buffer, bool complete) {
}
if (_region && _sprite) {
- _gameRef->LOG(0, "Warning: Entity '%s' has both sprite and region.", getName());
+ _gameRef->LOG(0, "Warning: Entity '%s' has both sprite and region.", _name);
}
updatePosition();
@@ -594,7 +594,7 @@ bool AdEntity::display() {
}
if (_region && (reg || _editorAlwaysRegister)) {
- _gameRef->_renderer->addRectToList(new BaseActiveRect(_gameRef, _registerAlias, _region, _gameRef->_offsetX, _gameRef->_offsetY));
+ _gameRef->_renderer->_rectList.add(new BaseActiveRect(_gameRef, _registerAlias, _region, _gameRef->_offsetX, _gameRef->_offsetY));
}
displaySpriteAttachments(true);
@@ -854,7 +854,7 @@ bool AdEntity::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
stack->correctParams(1);
const char *nodeName = stack->pop()->getString();
- if (strcmp(getName(), nodeName) == 0) {
+ if (strcmp(_name, nodeName) == 0) {
warning("%s(%s): source and target have the same name", name, nodeName);
stack->pushBool(false);
return STATUS_OK;
@@ -866,7 +866,7 @@ bool AdEntity::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
if (layer->_nodes[j]->_type == OBJECT_ENTITY && this == layer->_nodes[j]->_entity) {
// found source layer and index, looking for target node
for (int32 k = 0; k < layer->_nodes.getSize(); k++) {
- if (layer->_nodes[k]->_type == OBJECT_ENTITY && strcmp(layer->_nodes[k]->_entity->getName(), nodeName) == 0) {
+ if (layer->_nodes[k]->_type == OBJECT_ENTITY && strcmp(layer->_nodes[k]->_entity->_name, nodeName) == 0) {
// update target index, depending on method name and comparison of index values
if (j < k && strcmp(name, "SetBeforeEntity") == 0) {
k--;
@@ -1126,7 +1126,7 @@ const char *AdEntity::scToString() {
//////////////////////////////////////////////////////////////////////////
bool AdEntity::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent, "ENTITY {\n");
- buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", getName());
+ buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", _name);
if (_subtype == ENTITY_SOUND) {
buffer->putTextIndent(indent + 2, "SUBTYPE=\"SOUND\"\n");
}
@@ -1176,8 +1176,8 @@ bool AdEntity::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent + 2, "SPRITE=\"%s\"\n", _sprite->getFilename());
}
- if (_subtype == ENTITY_SOUND && _sFX && _sFX->getFilename()) {
- buffer->putTextIndent(indent + 2, "SOUND=\"%s\"\n", _sFX->getFilename());
+ if (_subtype == ENTITY_SOUND && _sFX && !_sFX->_soundFilename.empty()) {
+ buffer->putTextIndent(indent + 2, "SOUND=\"%s\"\n", _sFX->_soundFilename.c_str());
buffer->putTextIndent(indent + 2, "SOUND_START_TIME=%d\n", _sFXStart);
buffer->putTextIndent(indent + 2, "SOUND_VOLUME=%d\n", _sFXVolume);
}
@@ -1301,6 +1301,6 @@ bool AdEntity::setSprite(const char *filename) {
}
Common::String AdEntity::debuggerToString() const {
- return Common::String::format("%p: Entity \"%s\"; (X,Y): (%d, %d), rotate(%d): %f deg, scale(%d): (%f, %f)%%", (const void *)this, getName(), _posX, _posY, _rotatable, _rotate, _zoomable, _scaleX, _scaleY);
+ return Common::String::format("%p: Entity \"%s\"; (X,Y): (%d, %d), rotate(%d): %f deg, scale(%d): (%f, %f)%%", (const void *)this, _name, _posX, _posY, _rotatable, _rotate, _zoomable, _scaleX, _scaleY);
}
} // End of namespace Wintermute
diff --git a/engines/wintermute/ad/ad_game.cpp b/engines/wintermute/ad/ad_game.cpp
index 5ffa5022378..98354c5c4ad 100644
--- a/engines/wintermute/ad/ad_game.cpp
+++ b/engines/wintermute/ad/ad_game.cpp
@@ -284,7 +284,7 @@ bool AdGame::changeScene(const char *filename, bool fadeIn) {
_gameRef->pluginEvents().applyEvent(WME_EVENT_SCENE_SHUTDOWN, _scene);
_scene->applyEvent("SceneShutdown", true);
- setPrevSceneName(_scene->getName());
+ setPrevSceneName(_scene->_name);
setPrevSceneFilename(_scene->getFilename());
if (!_tempDisableSaveState) {
@@ -779,7 +779,7 @@ bool AdGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
if (val->getNative() == inv->_takenItems[j]) {
stack->pushBool(true);
return STATUS_OK;
- } else if (scumm_stricmp(val->getString(), inv->_takenItems[j]->getName()) == 0) {
+ } else if (scumm_stricmp(val->getString(), inv->_takenItems[j]->_name) == 0) {
stack->pushBool(true);
return STATUS_OK;
}
@@ -1319,7 +1319,7 @@ bool AdGame::showCursor() {
_lastCursor = origLastCursor;
}
if (_activeObject && _selectedItem->_cursorHover && _activeObject->getExtendedFlag("usable")) {
- if (!_smartItemCursor || _activeObject->canHandleEvent(_selectedItem->getName())) {
+ if (!_smartItemCursor || _activeObject->canHandleEvent(_selectedItem->_name)) {
return drawCursor(_selectedItem->_cursorHover);
} else {
return drawCursor(_selectedItem->_cursorNormal);
@@ -1782,7 +1782,7 @@ bool AdGame::loadItemsBuffer(char *buffer, bool merge) {
if (item && !DID_FAIL(item->loadBuffer(params, false))) {
// delete item with the same name, if exists
if (merge) {
- AdItem *prevItem = getItemByName(item->getName());
+ AdItem *prevItem = getItemByName(item->_name);
if (prevItem) {
deleteItem(prevItem);
}
@@ -2184,7 +2184,7 @@ bool AdGame::isItemTaken(char *itemName) {
AdInventory *inv = _inventories[i];
for (int32 j = 0; j < inv->_takenItems.getSize(); j++) {
- if (scumm_stricmp(itemName, inv->_takenItems[j]->getName()) == 0) {
+ if (scumm_stricmp(itemName, inv->_takenItems[j]->_name) == 0) {
return true;
}
}
@@ -2195,7 +2195,7 @@ bool AdGame::isItemTaken(char *itemName) {
//////////////////////////////////////////////////////////////////////////
AdItem *AdGame::getItemByName(const char *name) const {
for (int32 i = 0; i < _items.getSize(); i++) {
- if (scumm_stricmp(_items[i]->getName(), name) == 0) {
+ if (scumm_stricmp(_items[i]->_name, name) == 0) {
return _items[i];
}
}
@@ -2262,7 +2262,7 @@ bool AdGame::deleteItem(AdItem *item) {
if (_selectedItem == item) {
_selectedItem = nullptr;
}
- _scene->handleItemAssociations(item->getName(), false);
+ _scene->handleItemAssociations(item->_name, false);
// remove from all inventories
for (int32 i = 0; i < _inventories.getSize(); i++) {
@@ -2511,7 +2511,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->getName()) ? _scene->getName() : "???", _prevSceneName ? _prevSceneName : "???");
+ Common::sprintf_s(str, "Scene: %s (prev: %s)", (_scene && _scene->_name) ? _scene->_name : "???", _prevSceneName ? _prevSceneName : "???");
_systemFont->drawText((byte *)str, 0, 110, _renderer->getWidth(), TAL_RIGHT);
}
return BaseGame::displayDebugInfo();
@@ -2595,6 +2595,6 @@ bool AdGame::onScriptShutdown(ScScript *script) {
}
Common::String AdGame::debuggerToString() const {
- return Common::String::format("%p: Game \"%s\"", (const void *)this, getName());
+ return Common::String::format("%p: Game \"%s\"", (const void *)this, _name);
}
} // End of namespace Wintermute
diff --git a/engines/wintermute/ad/ad_inventory.cpp b/engines/wintermute/ad/ad_inventory.cpp
index ab6d77353a9..4ac1fe7192b 100644
--- a/engines/wintermute/ad/ad_inventory.cpp
+++ b/engines/wintermute/ad/ad_inventory.cpp
@@ -60,12 +60,12 @@ bool AdInventory::insertItem(const char *name, const char *insertAfter) {
int32 insertIndex = -1;
for (int32 i = 0; i < _takenItems.getSize(); i++) {
- if (scumm_stricmp(_takenItems[i]->getName(), name) == 0) {
+ if (scumm_stricmp(_takenItems[i]->_name, name) == 0) {
_takenItems.removeAt(i);
i--;
continue;
}
- if (insertAfter && scumm_stricmp(_takenItems[i]->getName(), insertAfter) == 0) {
+ if (insertAfter && scumm_stricmp(_takenItems[i]->_name, insertAfter) == 0) {
insertIndex = i + 1;
}
}
@@ -88,7 +88,7 @@ bool AdInventory::removeItem(const char *name) {
}
for (int32 i = 0; i < _takenItems.getSize(); i++) {
- if (scumm_stricmp(_takenItems[i]->getName(), name) == 0) {
+ if (scumm_stricmp(_takenItems[i]->_name, name) == 0) {
if (((AdGame *)_gameRef)->_selectedItem == _takenItems[i]) {
((AdGame *)_gameRef)->_selectedItem = nullptr;
}
diff --git a/engines/wintermute/ad/ad_inventory_box.cpp b/engines/wintermute/ad/ad_inventory_box.cpp
index 1eb8353f90a..52535e37e09 100644
--- a/engines/wintermute/ad/ad_inventory_box.cpp
+++ b/engines/wintermute/ad/ad_inventory_box.cpp
@@ -79,12 +79,12 @@ bool AdInventoryBox::listen(BaseScriptHolder *param1, uint32 param2) {
switch (obj->_type) {
case UI_BUTTON:
- if (scumm_stricmp(obj->getName(), "close") == 0) {
+ if (scumm_stricmp(obj->_name, "close") == 0) {
_visible = false;
- } else if (scumm_stricmp(obj->getName(), "prev") == 0) {
+ } else if (scumm_stricmp(obj->_name, "prev") == 0) {
_scrollOffset -= _scrollBy;
_scrollOffset = MAX<int32>(_scrollOffset, 0);
- } else if (scumm_stricmp(obj->getName(), "next") == 0) {
+ } else if (scumm_stricmp(obj->_name, "next") == 0) {
_scrollOffset += _scrollBy;
} else {
return BaseObject::listen(param1, param2);
@@ -119,8 +119,8 @@ bool AdInventoryBox::display() {
if (_closeButton) {
_closeButton->_posX = _closeButton->_posY = 0;
- _closeButton->setWidth(_gameRef->_renderer->getWidth());
- _closeButton->setHeight(_gameRef->_renderer->getHeight());
+ _closeButton->_width = _gameRef->_renderer->getWidth();
+ _closeButton->_height = _gameRef->_renderer->getHeight();
_closeButton->display();
}
@@ -325,7 +325,7 @@ bool AdInventoryBox::loadBuffer(char *buffer, bool complete) {
if (_window) {
for (int32 i = 0; i < _window->_widgets.getSize(); i++) {
- if (!_window->_widgets[i]->getListener()) {
+ if (!_window->_widgets[i]->_listenerObject) {
_window->_widgets[i]->setListener(this, _window->_widgets[i], 0);
}
}
@@ -339,7 +339,7 @@ bool AdInventoryBox::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent, "INVENTORY_BOX\n");
buffer->putTextIndent(indent, "{\n");
- buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", getName());
+ buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", _name);
buffer->putTextIndent(indent + 2, "CAPTION=\"%s\"\n", getCaption());
buffer->putTextIndent(indent + 2, "AREA { %d, %d, %d, %d }\n", _itemsArea.left, _itemsArea.top, _itemsArea.right, _itemsArea.bottom);
diff --git a/engines/wintermute/ad/ad_item.cpp b/engines/wintermute/ad/ad_item.cpp
index 0f07da41a1e..06aa617147c 100644
--- a/engines/wintermute/ad/ad_item.cpp
+++ b/engines/wintermute/ad/ad_item.cpp
@@ -439,7 +439,7 @@ bool AdItem::display(int x, int y) {
}
amountX += _amountOffsetX;
- BaseFont *font = _font ? _font : _gameRef->getSystemFont();
+ BaseFont *font = _font ? _font : _gameRef->_systemFont;
if (font) {
if (_amountString) {
font->drawText((byte *)_amountString, amountX, amountY, width, _amountAlign);
@@ -667,7 +667,7 @@ ScValue *AdItem::scGetProperty(const Common::String &name) {
// Name
//////////////////////////////////////////////////////////////////////////
else if (name == "Name") {
- _scValue->setString(getName());
+ _scValue->setString(_name);
return _scValue;
}
diff --git a/engines/wintermute/ad/ad_layer.cpp b/engines/wintermute/ad/ad_layer.cpp
index 42cd9e4ee47..982baa077a2 100644
--- a/engines/wintermute/ad/ad_layer.cpp
+++ b/engines/wintermute/ad/ad_layer.cpp
@@ -242,8 +242,8 @@ bool AdLayer::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
node = val->getInt();
} else { // get by name
for (int32 i = 0; i < _nodes.getSize(); i++) {
- if ((_nodes[i]->_type == OBJECT_ENTITY && scumm_stricmp(_nodes[i]->_entity->getName(), val->getString()) == 0) ||
- (_nodes[i]->_type == OBJECT_REGION && scumm_stricmp(_nodes[i]->_region->getName(), val->getString()) == 0)) {
+ if ((_nodes[i]->_type == OBJECT_ENTITY && scumm_stricmp(_nodes[i]->_entity->_name, val->getString()) == 0) ||
+ (_nodes[i]->_type == OBJECT_REGION && scumm_stricmp(_nodes[i]->_region->_name, val->getString()) == 0)) {
node = i;
break;
}
@@ -503,7 +503,7 @@ const char *AdLayer::scToString() {
//////////////////////////////////////////////////////////////////////////
bool AdLayer::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent, "LAYER {\n");
- buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", getName());
+ buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", _name);
buffer->putTextIndent(indent + 2, "CAPTION=\"%s\"\n", getCaption());
buffer->putTextIndent(indent + 2, "MAIN=%s\n", _main ? "TRUE" : "FALSE");
buffer->putTextIndent(indent + 2, "WIDTH=%d\n", _width);
diff --git a/engines/wintermute/ad/ad_object.cpp b/engines/wintermute/ad/ad_object.cpp
index beaac3a0d15..71a79c75693 100644
--- a/engines/wintermute/ad/ad_object.cpp
+++ b/engines/wintermute/ad/ad_object.cpp
@@ -160,12 +160,12 @@ bool AdObject::playAnim(const char *filename) {
delete _animSprite;
_animSprite = new BaseSprite(_gameRef, this);
if (!_animSprite) {
- _gameRef->LOG(0, "AdObject::PlayAnim: error creating temp sprite (object:\"%s\" sprite:\"%s\")", getName(), filename);
+ _gameRef->LOG(0, "AdObject::PlayAnim: error creating temp sprite (object:\"%s\" sprite:\"%s\")", _name, filename);
return STATUS_FAILED;
}
bool res = _animSprite->loadFile(filename);
if (DID_FAIL(res)) {
- _gameRef->LOG(res, "AdObject::PlayAnim: error loading temp sprite (object:\"%s\" sprite:\"%s\")", getName(), filename);
+ _gameRef->LOG(res, "AdObject::PlayAnim: error loading temp sprite (object:\"%s\" sprite:\"%s\")", _name, filename);
delete _animSprite;
_animSprite = nullptr;
return res;
@@ -313,7 +313,7 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
} else if (val->isString()) {
const char *regionName = val->getString();
for (i = 0; i < main->_nodes.getSize(); i++) {
- if (main->_nodes[i]->_type == OBJECT_REGION && main->_nodes[i]->_region->getName() && scumm_stricmp(main->_nodes[i]->_region->getName(), regionName) == 0) {
+ if (main->_nodes[i]->_type == OBJECT_REGION && main->_nodes[i]->_region->_name && scumm_stricmp(main->_nodes[i]->_region->_name, regionName) == 0) {
_stickRegion = main->_nodes[i]->_region;
regFound = true;
break;
@@ -472,7 +472,7 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
if (val->getNative() == _inventory->_takenItems[i]) {
stack->pushBool(true);
return STATUS_OK;
- } else if (scumm_stricmp(val->getString(), _inventory->_takenItems[i]->getName()) == 0) {
+ } else if (scumm_stricmp(val->getString(), _inventory->_takenItems[i]->_name) == 0) {
stack->pushBool(true);
return STATUS_OK;
}
@@ -581,7 +581,7 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
} else {
const char *attachmentName = val->getString();
for (int32 i = 0; i < _attachmentsPre.getSize(); i++) {
- if (_attachmentsPre[i]->getName() && scumm_stricmp(_attachmentsPre[i]->getName(), attachmentName) == 0) {
+ if (_attachmentsPre[i]->_name && scumm_stricmp(_attachmentsPre[i]->_name, attachmentName) == 0) {
found = true;
_gameRef->unregisterObject(_attachmentsPre[i]);
_attachmentsPre.removeAt(i);
@@ -589,7 +589,7 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
}
}
for (int32 i = 0; i < _attachmentsPost.getSize(); i++) {
- if (_attachmentsPost[i]->getName() && scumm_stricmp(_attachmentsPost[i]->getName(), attachmentName) == 0) {
+ if (_attachmentsPost[i]->_name && scumm_stricmp(_attachmentsPost[i]->_name, attachmentName) == 0) {
found = true;
_gameRef->unregisterObject(_attachmentsPost[i]);
_attachmentsPost.removeAt(i);
@@ -628,14 +628,14 @@ bool AdObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
} else {
const char *attachmentName = val->getString();
for (int32 i = 0; i < _attachmentsPre.getSize(); i++) {
- if (_attachmentsPre[i]->getName() && scumm_stricmp(_attachmentsPre[i]->getName(), attachmentName) == 0) {
+ if (_attachmentsPre[i]->_name && scumm_stricmp(_attachmentsPre[i]->_name, attachmentName) == 0) {
ret = _attachmentsPre[i];
break;
}
}
if (!ret) {
for (int32 i = 0; i < _attachmentsPost.getSize(); i++) {
- if (_attachmentsPost[i]->getName() && scumm_stricmp(_attachmentsPost[i]->getName(), attachmentName) == 0) {
+ if (_attachmentsPost[i]->_name && scumm_stricmp(_attachmentsPost[i]->_name, attachmentName) == 0) {
ret = _attachmentsPre[i];
break;
}
@@ -901,7 +901,7 @@ void AdObject::talk(const char *text, const char *sound, uint32 duration, const
_sentence->_align = Align;
_sentence->_startTime = _gameRef->getTimer()->getTime();
_sentence->_currentStance = -1;
- _sentence->_font = _font == nullptr ? _gameRef->getSystemFont() : _font;
+ _sentence->_font = _font == nullptr ? _gameRef->_systemFont : _font;
_sentence->_freezable = _freezable;
// try to locate speech file automatically
diff --git a/engines/wintermute/ad/ad_region.cpp b/engines/wintermute/ad/ad_region.cpp
index a1bbc448adb..6b89bd8213a 100644
--- a/engines/wintermute/ad/ad_region.cpp
+++ b/engines/wintermute/ad/ad_region.cpp
@@ -259,7 +259,7 @@ ScValue *AdRegion::scGetProperty(const Common::String &name) {
// Name
//////////////////////////////////////////////////////////////////////////
else if (name == "Name") {
- _scValue->setString(getName());
+ _scValue->setString(_name);
return _scValue;
}
@@ -354,7 +354,7 @@ const char *AdRegion::scToString() {
//////////////////////////////////////////////////////////////////////////
bool AdRegion::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent, "REGION {\n");
- buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", getName());
+ buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", _name);
buffer->putTextIndent(indent + 2, "CAPTION=\"%s\"\n", getCaption());
buffer->putTextIndent(indent + 2, "BLOCKED=%s\n", _blocked ? "TRUE" : "FALSE");
buffer->putTextIndent(indent + 2, "DECORATION=%s\n", _decoration ? "TRUE" : "FALSE");
diff --git a/engines/wintermute/ad/ad_response_box.cpp b/engines/wintermute/ad/ad_response_box.cpp
index e4cc763a4b2..c9629d34b24 100644
--- a/engines/wintermute/ad/ad_response_box.cpp
+++ b/engines/wintermute/ad/ad_response_box.cpp
@@ -117,11 +117,11 @@ void AdResponseBox::clearButtons() {
//////////////////////////////////////////////////////////////////////////
bool AdResponseBox::invalidateButtons() {
for (int32 i = 0; i < _respButtons.getSize(); i++) {
- _respButtons[i]->setImage(nullptr);
+ _respButtons[i]->_image = nullptr;
_respButtons[i]->_cursor = nullptr;
- _respButtons[i]->setFont(nullptr);
- _respButtons[i]->setFontHover(nullptr);
- _respButtons[i]->setFontPress(nullptr);
+ _respButtons[i]->_font = nullptr;
+ _respButtons[i]->_fontHover = nullptr;
+ _respButtons[i]->_fontPress = nullptr;
_respButtons[i]->setText("");
}
return STATUS_OK;
@@ -137,17 +137,17 @@ bool AdResponseBox::createButtons() {
UIButton *btn = new UIButton(_gameRef);
if (btn) {
btn->_parent = _window;
- btn->setSharedFonts(true);
- btn->setSharedImages(true);
+ btn->_sharedFonts = true;
+ btn->_sharedImages = true;
btn->_sharedCursors = true;
// iconic
if (_responses[i]->_icon) {
- btn->setImage(_responses[i]->_icon);
+ btn->_image = _responses[i]->_icon;
if (_responses[i]->_iconHover) {
- btn->setImageHover(_responses[i]->_iconHover);
+ btn->_imageHover = _responses[i]->_iconHover;
}
if (_responses[i]->_iconPressed) {
- btn->setImagePress(_responses[i]->_iconPressed);
+ btn->_imagePress = _responses[i]->_iconPressed;
}
btn->setCaption(_responses[i]->_text);
@@ -161,34 +161,34 @@ bool AdResponseBox::createButtons() {
else {
btn->setText(_responses[i]->_text);
if (_font == nullptr) {
- btn->setFont(_gameRef->getSystemFont());
+ btn->_font = _gameRef->_systemFont;
} else {
- btn->setFont(_font);
+ btn->_font = _font;
}
- btn->setFontHover((_fontHover == nullptr) ? _gameRef->getSystemFont() : _fontHover);
- btn->setFontPress(btn->getFontHover());
- btn->setTextAlign(_align);
+ btn->_fontHover = (_fontHover == nullptr) ? _gameRef->_systemFont : _fontHover;
+ btn->_fontPress = btn->_fontHover;
+ btn->_align = _align;
if (_responses[i]->_font) {
- btn->setFont(_responses[i]->_font);
+ btn->_font = _responses[i]->_font;
}
int width = _responseArea.right - _responseArea.left;
if (width <= 0) {
- btn->setWidth(_gameRef->_renderer->getWidth());
+ btn->_width = _gameRef->_renderer->getWidth();
} else {
- btn->setWidth(width);
+ btn->_width = width;
}
}
#ifdef ENABLE_FOXTAIL
if (BaseEngine::instance().isFoxTail()) {
btn->addScript("interface/scripts/dialogue_button.script");
- btn->setWidth(120);
+ btn->_width = 120;
if (_fontHover == nullptr) {
- btn->setFontHover(btn->getFont());
- btn->setFontPress(btn->getFontHover());
+ btn->_fontHover = btn->_font;
+ btn->_fontPress = btn->_fontHover;
}
}
#endif
@@ -197,7 +197,7 @@ bool AdResponseBox::createButtons() {
btn->correctSize();
//btn->SetListener(this, btn, _responses[i]->_iD);
btn->setListener(this, btn, i);
- btn->setVisible(false);
+ btn->_visible = false;
_respButtons.add(btn);
if (_responseArea.bottom - _responseArea.top < btn->getHeight()) {
@@ -376,7 +376,7 @@ bool AdResponseBox::loadBuffer(char *buffer, bool complete) {
if (_window) {
for (int32 i = 0; i < _window->_widgets.getSize(); i++) {
- if (!_window->_widgets[i]->getListener()) {
+ if (!_window->_widgets[i]->_listenerObject) {
_window->_widgets[i]->setListener(this, _window->_widgets[i], 0);
}
}
@@ -506,29 +506,29 @@ bool AdResponseBox::display() {
scrollNeeded = true;
break;
}
- _respButtons[i]->setVisible(true);
+ _respButtons[i]->_visible = true;
_respButtons[i]->_posX = 55 + 120 * (i / 3);
_respButtons[i]->_posY = 100 + 10 * (i % 3);
continue;
}
#endif
- if ((_horizontal && xxx + _respButtons[i]->getWidth() > rect.right)
+ if ((_horizontal && xxx + _respButtons[i]->_width > rect.right)
|| (!_horizontal && yyy + _respButtons[i]->getHeight() > rect.bottom)) {
scrollNeeded = true;
- _respButtons[i]->setVisible(false);
+ _respButtons[i]->_visible = false;
break;
}
- _respButtons[i]->setVisible(true);
+ _respButtons[i]->_visible = true;
_respButtons[i]->_posX = xxx;
_respButtons[i]->_posY = yyy;
if (_horizontal) {
- xxx += (_respButtons[i]->getWidth() + _spacing);
+ xxx += (_respButtons[i]->_width + _spacing);
} else {
- yyy += (_respButtons[i]->getHeight() + _spacing);
+ yyy += (_respButtons[i]->_height+ _spacing);
}
}
@@ -541,8 +541,8 @@ bool AdResponseBox::display() {
// go exclusive
if (_shieldWindow) {
_shieldWindow->_posX = _shieldWindow->_posY = 0;
- _shieldWindow->setWidth(_gameRef->_renderer->getWidth());
- _shieldWindow->setHeight(_gameRef->_renderer->getHeight());
+ _shieldWindow->_width = _gameRef->_renderer->getWidth();
+ _shieldWindow->_height = _gameRef->_renderer->getHeight();
_shieldWindow->display();
}
@@ -568,11 +568,11 @@ bool AdResponseBox::listen(BaseScriptHolder *param1, uint32 param2) {
switch (obj->_type) {
case UI_BUTTON:
- if (scumm_stricmp(obj->getName(), "prev") == 0) {
+ if (scumm_stricmp(obj->_name, "prev") == 0) {
_scrollOffset--;
- } else if (scumm_stricmp(obj->getName(), "next") == 0) {
+ } else if (scumm_stricmp(obj->_name, "next") == 0) {
_scrollOffset++;
- } else if (scumm_stricmp(obj->getName(), "response") == 0) {
+ } else if (scumm_stricmp(obj->_name, "response") == 0) {
if (_waitingScript) {
_waitingScript->_stack->pushInt(_responses[param2]->_iD);
}
diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp
index d2be20b433d..2f90c96d261 100644
--- a/engines/wintermute/ad/ad_scene.cpp
+++ b/engines/wintermute/ad/ad_scene.cpp
@@ -1181,8 +1181,8 @@ bool AdScene::traverseNodes(bool doUpdate) {
}
if (_shieldWindow) {
_shieldWindow->_posX = _shieldWindow->_posY = 0;
- _shieldWindow->setWidth(_gameRef->_renderer->getWidth());
- _shieldWindow->setHeight(_gameRef->_renderer->getHeight());
+ _shieldWindow->_width = _gameRef->_renderer->getWidth();
+ _shieldWindow->_height = _gameRef->_renderer->getHeight();
_shieldWindow->display();
}
}
@@ -1398,8 +1398,8 @@ bool AdScene::updateFreeObjects() {
}
- if (_autoScroll && _gameRef->getMainObject() != nullptr) {
- scrollToObject(_gameRef->getMainObject());
+ if (_autoScroll && _gameRef->_mainObject != nullptr) {
+ scrollToObject(_gameRef->_mainObject);
}
@@ -1570,7 +1570,7 @@ void AdScene::scrollTo(int offsetX, int offsetY) {
_targetOffsetTop = MIN(_targetOffsetTop, _height - viewportHeight);
- if (_gameRef->getMainObject() && _gameRef->getMainObject()->_is3D) {
+ if (_gameRef->_mainObject && _gameRef->_mainObject->_is3D) {
if (abs(origOffsetLeft - _targetOffsetLeft) < 5) {
_targetOffsetLeft = origOffsetLeft;
}
@@ -1753,7 +1753,7 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
const char *layerName = val->getString();
bool layerFound = false;
for (int32 i = 0; i < _layers.getSize(); i++) {
- if (scumm_stricmp(layerName, _layers[i]->getName()) == 0) {
+ if (scumm_stricmp(layerName, _layers[i]->_name) == 0) {
stack->pushNative(_layers[i], true);
layerFound = true;
break;
@@ -1825,7 +1825,7 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
} else {
const char *nodeName = val->getString();
for (int32 i = 0; i < _objects.getSize(); i++) {
- if (_objects[i] && _objects[i]->getName() && scumm_stricmp(_objects[i]->getName(), nodeName) == 0) {
+ if (_objects[i] && _objects[i]->_name && scumm_stricmp(_objects[i]->_name, nodeName) == 0) {
ret = _objects[i];
break;
}
@@ -2112,7 +2112,7 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
int32 index = stack->pop()->getInt();
if (_geom ) {
if (index >= 0 && index < _geom->_lights.getSize()) {
- stack->pushString(_geom->_lights[index]->getName());
+ stack->pushString(_geom->_lights[index]->_name);
} else {
stack->pushNULL();
}
@@ -3384,8 +3384,8 @@ BaseObject *AdScene::getNodeByName(const char *name) {
AdLayer *layer = _layers[i];
for (int32 j = 0; j < layer->_nodes.getSize(); j++) {
AdSceneNode *node = layer->_nodes[j];
- if ((node->_type == OBJECT_ENTITY && !scumm_stricmp(name, node->_entity->getName())) ||
- (node->_type == OBJECT_REGION && !scumm_stricmp(name, node->_region->getName()))) {
+ if ((node->_type == OBJECT_ENTITY && !scumm_stricmp(name, node->_entity->_name)) ||
+ (node->_type == OBJECT_REGION && !scumm_stricmp(name, node->_region->_name))) {
switch (node->_type) {
case OBJECT_ENTITY:
ret = node->_entity;
@@ -3403,14 +3403,14 @@ BaseObject *AdScene::getNodeByName(const char *name) {
// free entities
for (int32 i = 0; i < _objects.getSize(); i++) {
- if (_objects[i]->_type == OBJECT_ENTITY && !scumm_stricmp(name, _objects[i]->getName())) {
+ if (_objects[i]->_type == OBJECT_ENTITY && !scumm_stricmp(name, _objects[i]->_name)) {
return _objects[i];
}
}
// waypoint groups
for (int32 i = 0; i < _waypointGroups.getSize(); i++) {
- if (!scumm_stricmp(name, _waypointGroups[i]->getName())) {
+ if (!scumm_stricmp(name, _waypointGroups[i]->_name)) {
return _waypointGroups[i];
}
}
@@ -3455,7 +3455,7 @@ bool AdScene::persistState(bool saving) {
if (!node->_entity->_saveState) {
continue;
}
- nodeState = state->getNodeState(node->_entity->getName(), saving);
+ nodeState = state->getNodeState(node->_entity->_name, saving);
if (nodeState) {
nodeState->transferEntity(node->_entity, _persistentStateSprites, saving);
//if (Saving) NodeState->_active = node->_entity->_active;
@@ -3466,7 +3466,7 @@ bool AdScene::persistState(bool saving) {
if (!node->_region->_saveState) {
continue;
}
- nodeState = state->getNodeState(node->_region->getName(), saving);
+ nodeState = state->getNodeState(node->_region->_name, saving);
if (nodeState) {
if (saving) {
nodeState->_active = node->_region->_active;
@@ -3488,7 +3488,7 @@ bool AdScene::persistState(bool saving) {
continue;
}
if (_objects[i]->_type == OBJECT_ENTITY) {
- nodeState = state->getNodeState(_objects[i]->getName(), saving);
+ nodeState = state->getNodeState(_objects[i]->_name, saving);
if (nodeState) {
nodeState->transferEntity((AdEntity *)_objects[i], _persistentStateSprites, saving);
//if (Saving) NodeState->_active = _objects[i]->_active;
@@ -3499,7 +3499,7 @@ bool AdScene::persistState(bool saving) {
// waypoint groups
for (int32 i = 0; i < _waypointGroups.getSize(); i++) {
- nodeState = state->getNodeState(_waypointGroups[i]->getName(), saving);
+ nodeState = state->getNodeState(_waypointGroups[i]->_name, saving);
if (nodeState) {
if (saving) {
nodeState->_active = _waypointGroups[i]->_active;
@@ -3766,7 +3766,7 @@ void Wintermute::AdScene::setMaxShadowType(Wintermute::TShadowType shadowType) {
#endif
Common::String AdScene::debuggerToString() const {
- return Common::String::format("%p: Scene \"%s\", paralax: %d, autoscroll: %d", (const void *)this, getName(), _paralaxScrolling, _autoScroll);
+ return Common::String::format("%p: Scene \"%s\", paralax: %d, autoscroll: %d", (const void *)this, _name, _paralaxScrolling, _autoScroll);
}
} // End of namespace Wintermute
diff --git a/engines/wintermute/ad/ad_scene_geometry.cpp b/engines/wintermute/ad/ad_scene_geometry.cpp
index 16166e04da8..803bc008ee2 100644
--- a/engines/wintermute/ad/ad_scene_geometry.cpp
+++ b/engines/wintermute/ad/ad_scene_geometry.cpp
@@ -364,7 +364,7 @@ bool AdSceneGeometry::setActiveCamera(int camera, float fov, float nearClipPlane
//////////////////////////////////////////////////////////////////////////
bool AdSceneGeometry::setActiveCamera(const char *camera, float fov, float nearClipPlane, float farClipPlane) {
for (int32 i = 0; i < _cameras.getSize(); i++) {
- if (scumm_stricmp(_cameras[i]->getName(), camera) == 0)
+ if (scumm_stricmp(_cameras[i]->_name, camera) == 0)
return setActiveCamera(i, fov, nearClipPlane, farClipPlane);
}
@@ -395,7 +395,7 @@ bool AdSceneGeometry::setActiveLight(int32 light) {
//////////////////////////////////////////////////////////////////////////
bool AdSceneGeometry::setActiveLight(char *light) {
for (int32 i = 0; i < _lights.getSize(); i++) {
- if (scumm_stricmp(_lights[i]->getName(), light) == 0) {
+ if (scumm_stricmp(_lights[i]->_name, light) == 0) {
return setActiveLight(i);
}
}
@@ -972,7 +972,7 @@ bool AdSceneGeometry::enableLights(DXVector3 point, BaseArray<char *> &ignoreLig
if (ignoreLights.getSize()) {
bool ignore = false;
for (int32 j = 0; j < ignoreLights.getSize(); j++) {
- if (scumm_stricmp(_lights[i]->getName(), ignoreLights[j]) == 0) {
+ if (scumm_stricmp(_lights[i]->_name, ignoreLights[j]) == 0) {
ignore = true;
break;
}
@@ -1108,21 +1108,21 @@ bool AdSceneGeometry::enableNode(const char *nodeName, bool enable) {
int32 i;
for (i = 0; i < _blocks.getSize(); i++) {
- if (scumm_stricmp(nodeName, _blocks[i]->getName()) == 0) {
+ if (scumm_stricmp(nodeName, _blocks[i]->_name) == 0) {
_blocks[i]->_active = enable;
ret = true;
}
}
for (i = 0; i < _planes.getSize(); i++) {
- if (scumm_stricmp(nodeName, _planes[i]->getName()) == 0) {
+ if (scumm_stricmp(nodeName, _planes[i]->_name) == 0) {
_planes[i]->_active = enable;
ret = true;
}
}
for (i = 0; i < _generics.getSize(); i++) {
- if (scumm_stricmp(nodeName, _generics[i]->getName()) == 0) {
+ if (scumm_stricmp(nodeName, _generics[i]->_name) == 0) {
_generics[i]->_active = enable;
ret = true;
}
@@ -1134,18 +1134,18 @@ bool AdSceneGeometry::enableNode(const char *nodeName, bool enable) {
//////////////////////////////////////////////////////////////////////////
bool AdSceneGeometry::isNodeEnabled(const char *nodeName) {
for (int32 i = 0; i < _blocks.getSize(); i++) {
- if (scumm_stricmp(nodeName, _blocks[i]->getName()) == 0) {
+ if (scumm_stricmp(nodeName, _blocks[i]->_name) == 0) {
return _blocks[i]->_active;
}
}
for (int32 i = 0; i < _planes.getSize(); i++) {
- if (scumm_stricmp(nodeName, _planes[i]->getName()) == 0) {
+ if (scumm_stricmp(nodeName, _planes[i]->_name) == 0) {
return _planes[i]->_active;
}
}
for (int32 i = 0; i < _generics.getSize(); i++) {
- if (scumm_stricmp(nodeName, _generics[i]->getName()) == 0) {
+ if (scumm_stricmp(nodeName, _generics[i]->_name) == 0) {
return _generics[i]->_active;
}
}
@@ -1159,7 +1159,7 @@ bool AdSceneGeometry::enableLight(const char *lightName, bool enable) {
int32 i;
for (i = 0; i < _lights.getSize(); i++) {
- if (scumm_stricmp(lightName, _lights[i]->getName()) == 0) {
+ if (scumm_stricmp(lightName, _lights[i]->_name) == 0) {
_lights[i]->_active = enable;
ret = true;
}
@@ -1172,7 +1172,7 @@ bool AdSceneGeometry::enableLight(const char *lightName, bool enable) {
//////////////////////////////////////////////////////////////////////////
bool AdSceneGeometry::isLightEnabled(const char *lightName) {
for (int32 i = 0; i < _lights.getSize(); i++) {
- if (scumm_stricmp(lightName, _lights[i]->getName()) == 0) {
+ if (scumm_stricmp(lightName, _lights[i]->_name) == 0) {
return _lights[i]->_active;
}
}
@@ -1185,7 +1185,7 @@ bool AdSceneGeometry::setLightColor(const char *lightName, uint32 color) {
int32 i;
for (i = 0; i < _lights.getSize(); i++) {
- if (scumm_stricmp(lightName, _lights[i]->getName()) == 0) {
+ if (scumm_stricmp(lightName, _lights[i]->_name) == 0) {
_lights[i]->_diffuseColor = color;
ret = true;
}
@@ -1198,7 +1198,7 @@ bool AdSceneGeometry::setLightColor(const char *lightName, uint32 color) {
//////////////////////////////////////////////////////////////////////////
uint32 AdSceneGeometry::getLightColor(const char *lightName) {
for (int32 i = 0; i < _lights.getSize(); i++) {
- if (scumm_stricmp(lightName, _lights[i]->getName()) == 0) {
+ if (scumm_stricmp(lightName, _lights[i]->_name) == 0) {
return _lights[i]->_diffuseColor;
}
}
@@ -1208,7 +1208,7 @@ uint32 AdSceneGeometry::getLightColor(const char *lightName) {
//////////////////////////////////////////////////////////////////////////
DXVector3 AdSceneGeometry::getLightPos(const char *lightName) {
for (int32 i = 0; i < _lights.getSize(); i++) {
- if (scumm_stricmp(lightName, _lights[i]->getName()) == 0) {
+ if (scumm_stricmp(lightName, _lights[i]->_name) == 0) {
return _lights[i]->_pos;
}
}
@@ -1257,7 +1257,7 @@ bool AdSceneGeometry::persist(BasePersistenceManager *persistMgr) {
bool found = false;
for (int32 j = 0; j < _lights.getSize(); j++) {
- if (scumm_stricmp(name, _lights[j]->getName()) == 0) {
+ if (scumm_stricmp(name, _lights[j]->_name) == 0) {
_lights[j]->persist(persistMgr);
found = true;
break;
@@ -1290,7 +1290,7 @@ bool AdSceneGeometry::persist(BasePersistenceManager *persistMgr) {
persistMgr->transferCharPtr(TMEMBER(name));
bool found = false;
for (int32 j = 0; j < _blocks.getSize(); j++) {
- if (scumm_stricmp(name, _blocks[j]->getName()) == 0) {
+ if (scumm_stricmp(name, _blocks[j]->_name) == 0) {
_blocks[j]->persist(persistMgr);
found = true;
break;
@@ -1321,7 +1321,7 @@ bool AdSceneGeometry::persist(BasePersistenceManager *persistMgr) {
persistMgr->transferCharPtr(TMEMBER(name));
bool found = false;
for (int32 j = 0; j < _planes.getSize(); j++) {
- if (scumm_stricmp(name, _planes[j]->getName()) == 0) {
+ if (scumm_stricmp(name, _planes[j]->_name) == 0) {
_planes[j]->persist(persistMgr);
found = true;
break;
@@ -1352,7 +1352,7 @@ bool AdSceneGeometry::persist(BasePersistenceManager *persistMgr) {
persistMgr->transferCharPtr(TMEMBER(name));
bool found = false;
for (int32 j = 0; j < _generics.getSize(); j++) {
- if (scumm_stricmp(name, _generics[j]->getName()) == 0) {
+ if (scumm_stricmp(name, _generics[j]->_name) == 0) {
_generics[j]->persist(persistMgr);
found = true;
break;
diff --git a/engines/wintermute/ad/ad_sprite_set.cpp b/engines/wintermute/ad/ad_sprite_set.cpp
index ad3e9003e93..e6d42d90a71 100644
--- a/engines/wintermute/ad/ad_sprite_set.cpp
+++ b/engines/wintermute/ad/ad_sprite_set.cpp
@@ -300,8 +300,8 @@ BaseSprite *AdSpriteSet::getSprite(TDirection direction) {
//////////////////////////////////////////////////////////////////////////
bool AdSpriteSet::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent, "SPRITESET {\n");
- if (getName()) {
- buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", getName());
+ if (_name) {
+ buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", _name);
}
for (int i = 0; i < NUM_DIRECTIONS; i++) {
if (_sprites[i]) {
diff --git a/engines/wintermute/ad/ad_talk_holder.cpp b/engines/wintermute/ad/ad_talk_holder.cpp
index 5f4535e4ab7..20aaa8d7c88 100644
--- a/engines/wintermute/ad/ad_talk_holder.cpp
+++ b/engines/wintermute/ad/ad_talk_holder.cpp
@@ -76,7 +76,7 @@ BaseSprite *AdTalkHolder::getTalkStance(const char *stance) {
if (_animSprite) {
bool res = _animSprite->loadFile(_forcedTalkAnimName);
if (DID_FAIL(res)) {
- _gameRef->LOG(res, "AdTalkHolder::GetTalkStance: error loading talk sprite (object:\"%s\" sprite:\"%s\")", getName(), _forcedTalkAnimName);
+ _gameRef->LOG(res, "AdTalkHolder::GetTalkStance: error loading talk sprite (object:\"%s\" sprite:\"%s\")", _name, _forcedTalkAnimName);
delete _animSprite;
_animSprite = nullptr;
} else {
@@ -89,7 +89,7 @@ BaseSprite *AdTalkHolder::getTalkStance(const char *stance) {
if (stance != nullptr) {
// search special talk stances
for (int32 i = 0; i < _talkSpritesEx.getSize(); i++) {
- if (scumm_stricmp(_talkSpritesEx[i]->getName(), stance) == 0) {
+ if (scumm_stricmp(_talkSpritesEx[i]->_name, stance) == 0) {
ret = _talkSpritesEx[i];
break;
}
@@ -97,7 +97,7 @@ BaseSprite *AdTalkHolder::getTalkStance(const char *stance) {
if (ret == nullptr) {
// serach generic talk stances
for (int32 i = 0; i < _talkSprites.getSize(); i++) {
- if (scumm_stricmp(_talkSprites[i]->getName(), stance) == 0) {
+ if (scumm_stricmp(_talkSprites[i]->_name, stance) == 0) {
ret = _talkSprites[i];
break;
}
diff --git a/engines/wintermute/ad/ad_waypoint_group.cpp b/engines/wintermute/ad/ad_waypoint_group.cpp
index 80ee14cfe0c..22b4e86d0a1 100644
--- a/engines/wintermute/ad/ad_waypoint_group.cpp
+++ b/engines/wintermute/ad/ad_waypoint_group.cpp
@@ -172,7 +172,7 @@ bool AdWaypointGroup::loadBuffer(char *buffer, bool complete) {
//////////////////////////////////////////////////////////////////////////
bool AdWaypointGroup::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent, "WAYPOINTS {\n");
- buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", getName());
+ buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", _name);
buffer->putTextIndent(indent + 2, "EDITOR_SELECTED=%s\n", _editorSelected ? "TRUE" : "FALSE");
buffer->putTextIndent(indent + 2, "EDITOR_SELECTED_POINT=%d\n", _editorSelectedPoint);
diff --git a/engines/wintermute/base/base.h b/engines/wintermute/base/base.h
index 8a379d84e40..0e9a2bebc74 100644
--- a/engines/wintermute/base/base.h
+++ b/engines/wintermute/base/base.h
@@ -49,13 +49,12 @@ public:
bool parseEditorProperty(char *buffer, bool complete = true);
virtual bool saveAsText(BaseDynamicBuffer *buffer, int indent = 0);
BaseClass();
+ BaseGame *_gameRef;
BaseClass(BaseGame *GameOwner);
virtual ~BaseClass();
- BaseGame *_gameRef;
virtual const char *getClassName() { return ""; }
virtual bool persist(BasePersistenceManager *persistMgr) { return true; }
-protected:
Common::HashMap<Common::String, Common::String> _editorProps;
Common::HashMap<Common::String, Common::String>::iterator _editorPropsIter;
};
diff --git a/engines/wintermute/base/base_active_rect.h b/engines/wintermute/base/base_active_rect.h
index 21474875e71..f23d76e6e48 100644
--- a/engines/wintermute/base/base_active_rect.h
+++ b/engines/wintermute/base/base_active_rect.h
@@ -60,7 +60,6 @@ public:
BaseActiveRect(BaseGame *inGame, BaseObject *owner, XModel *model, int x, int y, int width, int height, bool precise = true);
#endif
~BaseActiveRect() override;
-
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/base/base_dynamic_buffer.h b/engines/wintermute/base/base_dynamic_buffer.h
index 75158fa67af..c08d9017481 100644
--- a/engines/wintermute/base/base_dynamic_buffer.h
+++ b/engines/wintermute/base/base_dynamic_buffer.h
@@ -34,6 +34,7 @@ namespace Wintermute {
class BaseDynamicBuffer {
public:
+ bool _initialized;
void putText(const char *fmt, ...);
void putTextIndent(int indent, const char *fmt, ...);
uint32 getDWORD();
@@ -45,13 +46,12 @@ public:
uint32 getSize() const;
bool init(uint32 initSize = 0);
void cleanup();
+ uint32 _size;
+ byte *_buffer;
BaseDynamicBuffer(BaseGame *inGame, uint32 initSize = 1000, uint32 growBy = 1000);
virtual ~BaseDynamicBuffer();
private:
- uint32 _size;
- byte *_buffer;
- bool _initialized;
uint32 _realSize;
uint32 _growBy;
uint32 _initSize;
diff --git a/engines/wintermute/base/base_fader.h b/engines/wintermute/base/base_fader.h
index 319442132fc..2e79b57825f 100644
--- a/engines/wintermute/base/base_fader.h
+++ b/engines/wintermute/base/base_fader.h
@@ -35,6 +35,7 @@ namespace Wintermute {
class BaseFader : public BaseObject {
public:
+ bool _system;
uint32 getCurrentColor() const;
bool fadeOut(uint32 targetColor, uint32 duration, bool system = false);
bool fadeIn(uint32 sourceColor, uint32 duration, bool system = false);
@@ -44,8 +45,6 @@ public:
DECLARE_PERSISTENT(BaseFader, BaseObject)
BaseFader(BaseGame *inGame);
~BaseFader() override;
-private:
- bool _system;
bool _active;
byte _red;
byte _green;
diff --git a/engines/wintermute/base/base_frame.cpp b/engines/wintermute/base/base_frame.cpp
index 3d42a38ca85..0b8fece22fc 100644
--- a/engines/wintermute/base/base_frame.cpp
+++ b/engines/wintermute/base/base_frame.cpp
@@ -93,13 +93,6 @@ bool BaseFrame::draw(int x, int y, BaseObject *registerOwner, float zoomX, float
return STATUS_OK;
}
-void BaseFrame::stopSound() {
- if (_sound) {
- _sound->stop();
- }
-}
-
-
//////////////////////////////////////////////////////////////////////////
bool BaseFrame::oneTimeDisplay(BaseObject *owner, bool muted) {
if (_sound && !muted) {
@@ -383,8 +376,8 @@ bool BaseFrame::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent + 2, "MOVE {%d, %d}\n", _moveX, _moveY);
}
- if (_sound && _sound->getFilename()) {
- buffer->putTextIndent(indent + 2, "SOUND=\"%s\"\n", _sound->getFilename());
+ if (_sound && !_sound->_soundFilename.empty()) {
+ buffer->putTextIndent(indent + 2, "SOUND=\"%s\"\n", _sound->_soundFilename.c_str());
}
buffer->putTextIndent(indent + 2, "KEYFRAME=%s\n", _keyframe ? "TRUE" : "FALSE");
@@ -447,8 +440,8 @@ bool BaseFrame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStac
if (strcmp(name, "GetSound") == 0) {
stack->correctParams(0);
- if (_sound && _sound->getFilename()) {
- stack->pushString(_sound->getFilename());
+ if (_sound && !_sound->_soundFilename.empty()) {
+ stack->pushString(_sound->_soundFilename.c_str());
} else {
stack->pushNULL();
}
@@ -774,6 +767,6 @@ const char *BaseFrame::scToString() {
}
Common::String BaseFrame::debuggerToString() const {
- return Common::String::format("%p: Frame \"%s\": #subframes %d ", (const void *)this, getName(), _subframes.getSize());
+ return Common::String::format("%p: Frame \"%s\": #subframes %d ", (const void *)this, _name, _subframes.getSize());
}
} // End of namespace Wintermute
diff --git a/engines/wintermute/base/base_frame.h b/engines/wintermute/base/base_frame.h
index 94ddb516723..28c05b6a289 100644
--- a/engines/wintermute/base/base_frame.h
+++ b/engines/wintermute/base/base_frame.h
@@ -41,10 +41,11 @@ class ScStack;
class BaseFrame: public BaseScriptable {
public:
bool _killSound;
- void stopSound();
+ bool _keyframe;
bool oneTimeDisplay(BaseObject *owner, bool muted = false);
DECLARE_PERSISTENT(BaseFrame, BaseScriptable)
-
+ BaseSound *_sound;
+ bool _editorExpanded;
bool getBoundingRect(Rect32 *rect, int x, int y, float scaleX = 100, float scaleY = 100);
bool saveAsText(BaseDynamicBuffer *buffer, int indent) override;
int32 _moveY;
@@ -65,11 +66,6 @@ public:
bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name) override;
const char *scToString() override;
Common::String debuggerToString() const override;
-
-private:
- bool _keyframe;
- bool _editorExpanded;
- BaseSound *_sound;
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp
index b5f579074e7..f106e715173 100644
--- a/engines/wintermute/base/base_game.cpp
+++ b/engines/wintermute/base/base_game.cpp
@@ -179,7 +179,6 @@ BaseGame::BaseGame(const Common::String &targetName) : BaseObject(this), _target
_personalizedSave = false;
_editorMode = false;
- //_doNotExpandStrings = false;
_engineLogCallback = nullptr;
_engineLogCallbackData = nullptr;
@@ -226,6 +225,18 @@ BaseGame::BaseGame(const Common::String &targetName) : BaseObject(this), _target
_lastCursor = nullptr;
+ // accessibility flags
+/* m_AccessTTSEnabled = false;
+ m_AccessTTSTalk = true;
+ m_AccessTTSCaptions = true;
+ m_AccessTTSKeypress = true;
+ m_AccessKeyboardEnabled = false;
+ m_AccessKeyboardCursorSkip = true;
+ m_AccessKeyboardPause = false;
+
+ m_AccessGlobalPaused = false;
+ m_AccessShieldWin = NULL;*/
+
_mouseLockRect.setEmpty();
_suppressScriptErrors = false;
@@ -276,7 +287,6 @@ BaseGame::~BaseGame() {
delete _videoPlayer;
delete _theoraPlayer;
delete _soundMgr;
- //SAFE_DELETE(_keyboardState);
delete _renderer;
delete _musicSystem;
@@ -292,6 +302,7 @@ BaseGame::~BaseGame() {
_videoPlayer = nullptr;
_theoraPlayer = nullptr;
_soundMgr = nullptr;
+ //SAFE_DELETE(_keyboardState);
_renderer = nullptr;
_musicSystem = nullptr;
@@ -332,15 +343,15 @@ bool BaseGame::cleanup() {
_focusedWindow = nullptr; // ref only
delete _cursorNoninteractive;
- delete _cursor;
- delete _activeCursor;
_cursorNoninteractive = nullptr;
+ delete _cursor;
_cursor = nullptr;
+ delete _activeCursor;
_activeCursor = nullptr;
delete _scValue;
- delete _sFX;
_scValue = nullptr;
+ delete _sFX;
_sFX = nullptr;
for (int32 i = 0; i < _scripts.getSize(); i++) {
@@ -586,6 +597,9 @@ bool BaseGame::initialize3() { // renderer is initialized
_posX = _renderer->getWidth() / 2;
_posY = _renderer->getHeight() / 2;
_renderer->initIndicator();
+
+ //if(m_AccessMgr) Game->m_AccessMgr->Initialize();
+
return STATUS_OK;
}
@@ -670,6 +684,9 @@ bool BaseGame::initLoop() {
_musicSystem->updateMusicCrossfade();
_surfaceStorage->initLoop();
+
+ //if(m_AccessMgr) m_AccessMgr->InitLoop();
+
_fontStorage->initLoop();
@@ -700,7 +717,7 @@ bool BaseGame::initLoop() {
_focusedWindow = nullptr;
for (int32 i = _windows.getSize() - 1; i >= 0; i--) {
- if (_windows[i]->isVisible()) {
+ if (_windows[i]->_visible) {
_focusedWindow = _windows[i];
break;
}
@@ -1212,7 +1229,6 @@ bool BaseGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
stack->pushNative(win, true);
} else {
delete win;
- win = nullptr;
stack->pushNULL();
}
return STATUS_OK;
@@ -1799,7 +1815,7 @@ bool BaseGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
int fileNum = 0;
while (true) {
- Common::sprintf_s(filename, "%s%03d.bmp", val->isNULL() ? getName() : val->getString(), fileNum);
+ Common::sprintf_s(filename, "%s%03d.bmp", val->isNULL() ? _name : val->getString(), fileNum);
if (!sfmFileExists(filename)) {
break;
}
@@ -2052,9 +2068,9 @@ bool BaseGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "AccOutputText") == 0) {
stack->correctParams(2);
- /* const char *str = */ stack->pop()->getString();
- /* int type = */ stack->pop()->getInt();
- // do nothing
+ /* const char *str = */stack->pop()->getString();
+ /* int type = */stack->pop()->getInt();
+ //m_AccessMgr->Speak(Str, (TTTSType)Type);
stack->pushNULL();
return STATUS_OK;
@@ -2327,7 +2343,7 @@ bool BaseGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
else if (strcmp(name, "SetScreenTypeMode") == 0) {
stack->correctParams(2);
int type = stack->pop()->getInt();
- stack->pop()->getInt(); //mode is unused
+ stack->pop()->getInt(); // mode is unused
_renderer->setWindowed(type);
stack->pushNULL();
@@ -2415,7 +2431,7 @@ ScValue *BaseGame::scGetProperty(const Common::String &name) {
// Name
//////////////////////////////////////////////////////////////////////////
else if (name == "Name") {
- _scValue->setString(getName());
+ _scValue->setString(_name);
return _scValue;
}
//////////////////////////////////////////////////////////////////////////
@@ -2722,6 +2738,7 @@ ScValue *BaseGame::scGetProperty(const Common::String &name) {
// AccTTSEnabled
//////////////////////////////////////////////////////////////////////////
else if (name == "AccTTSEnabled") {
+ //m_ScValue->SetBool(m_AccessTTSEnabled);
_scValue->setBool(false);
return _scValue;
}
@@ -2730,6 +2747,7 @@ ScValue *BaseGame::scGetProperty(const Common::String &name) {
// AccTTSTalk
//////////////////////////////////////////////////////////////////////////
else if (name == "AccTTSTalk") {
+ //m_ScValue->SetBool(m_AccessTTSTalk);
_scValue->setBool(false);
return _scValue;
}
@@ -3262,8 +3280,8 @@ bool BaseGame::displayQuickMsg() {
}
// update
- for (int32 i = 0; i < (int32)_quickMessages.getSize(); i++) {
- if (_currentTime - _quickMessages[i]->getStartTime() >= QUICK_MSG_DURATION) {
+ for (int32 i = 0; i < _quickMessages.getSize(); i++) {
+ if (_currentTime - _quickMessages[i]->_startTime>= QUICK_MSG_DURATION) {
delete _quickMessages[i];
_quickMessages.removeAt(i);
i--;
@@ -3835,10 +3853,10 @@ bool BaseGame::displayWindows(bool inGame) {
bool res;
// did we lose focus? focus topmost window
- if (_focusedWindow == nullptr || !_focusedWindow->isVisible() || _focusedWindow->isDisabled()) {
+ if (_focusedWindow == nullptr || !_focusedWindow->_visible || _focusedWindow->_disable) {
_focusedWindow = nullptr;
for (int32 i = _windows.getSize() - 1; i >= 0; i--) {
- if (_windows[i]->isVisible() && !_windows[i]->isDisabled()) {
+ if (_windows[i]->_visible && !_windows[i]->_disable) {
_focusedWindow = _windows[i];
break;
}
@@ -3847,7 +3865,7 @@ bool BaseGame::displayWindows(bool inGame) {
// display all windows
for (int32 i = 0; i < _windows.getSize(); i++) {
- if (_windows[i]->isVisible() && _windows[i]->getInGame() == inGame) {
+ if (_windows[i]->_visible && _windows[i]->_inGame == inGame) {
res = _windows[i]->display();
if (DID_FAIL(res)) {
@@ -3961,7 +3979,7 @@ bool BaseGame::focusWindow(UIWindow *window) {
_gameRef->_focusedWindow = window;
}
- if (window->getMode() == WINDOW_NORMAL && prev != window && _gameRef->validObject(prev) && (prev->getMode() == WINDOW_EXCLUSIVE || prev->getMode() == WINDOW_SYSTEM_EXCLUSIVE)) {
+ if (window->_mode == WINDOW_NORMAL && prev != window && _gameRef->validObject(prev) && (prev->_mode == WINDOW_EXCLUSIVE || prev->_mode == WINDOW_SYSTEM_EXCLUSIVE)) {
return focusWindow(prev);
} else {
return STATUS_OK;
@@ -4124,8 +4142,8 @@ void BaseGame::setWindowTitle() {
} else {
warning("BaseGame::SetWindowTitle - Ignoring textencoding");
utf8Title = Utf8String(title);
- /* WideString wstr = StringUtil::AnsiToWide(Title);
- title = StringUtil::WideToUtf8(wstr);*/
+ /*WideString wstr = StringUtil::AnsiToWide(Title);
+ title = StringUtil::WideToUtf8(wstr);*/
}
warning("BaseGame::SetWindowTitle: Ignoring value: %s", utf8Title.c_str());
}
@@ -4180,10 +4198,12 @@ bool BaseGame::popViewport() {
if (_viewportSP >= 0 && _viewportSP < _viewportStack.getSize()) {
_renderer->setViewport(_viewportStack[_viewportSP]->getRect());
- } else _renderer->setViewport(_renderer->_drawOffsetX,
- _renderer->_drawOffsetY,
- _renderer->getWidth() + _renderer->_drawOffsetX,
- _renderer->getHeight() + _renderer->_drawOffsetY);
+ } else {
+ _renderer->setViewport(_renderer->_drawOffsetX,
+ _renderer->_drawOffsetY,
+ _renderer->getWidth() + _renderer->_drawOffsetX,
+ _renderer->getHeight() + _renderer->_drawOffsetY);
+ }
return STATUS_OK;
}
@@ -4201,9 +4221,9 @@ bool BaseGame::getCurrentViewportRect(Rect32 *rect, bool *custom) const {
}
} else {
rect->setRect(_renderer->_drawOffsetX,
- _renderer->_drawOffsetY,
- _renderer->getWidth() + _renderer->_drawOffsetX,
- _renderer->getHeight() + _renderer->_drawOffsetY);
+ _renderer->_drawOffsetY,
+ _renderer->getWidth() + _renderer->_drawOffsetX,
+ _renderer->getHeight() + _renderer->_drawOffsetY);
if (custom) {
*custom = false;
}
@@ -4619,7 +4639,7 @@ bool BaseGame::displayDebugInfo() {
_gameRef->_systemFont->drawText((byte *)str, 0, 130, _renderer->getWidth(), TAL_RIGHT);
if (_activeObject != nullptr) {
- _systemFont->drawText((const byte *)_activeObject->getName(), 0, 150, _renderer->getWidth(), TAL_RIGHT);
+ _systemFont->drawText((const byte *)_activeObject->_name, 0, 150, _renderer->getWidth(), TAL_RIGHT);
}
Common::sprintf_s(str, "GfxMem: %dMB", _usedMem / (1024 * 1024));
diff --git a/engines/wintermute/base/base_game.h b/engines/wintermute/base/base_game.h
index a0128cd096c..bdc6639c201 100644
--- a/engines/wintermute/base/base_game.h
+++ b/engines/wintermute/base/base_game.h
@@ -75,15 +75,19 @@ struct FogParameters;
class BaseGame: public BaseObject {
public:
+
+
DECLARE_PERSISTENT(BaseGame, BaseObject)
+ virtual bool onScriptShutdown(ScScript *script);
+
virtual bool getLayerSize(int *LayerWidth, int *LayerHeight, Rect32 *viewport, bool *customViewport);
#ifdef ENABLE_WME3D
virtual uint32 getAmbientLightColor();
virtual bool getFogParams(bool *fogEnabled, uint32 *fogColor, float *start, float *end);
#endif
-
- virtual bool onScriptShutdown(ScScript *script);
+ //virtual CBObject *GetNextAccessObject(CBObject *CurrObject);
+ //virtual CBObject *GetPrevAccessObject(CBObject *CurrObject);
virtual bool onActivate(bool activate, bool refreshMouse);
virtual bool onMouseLeftDown();
@@ -101,10 +105,8 @@ public:
bool isRightDoubleClick();
bool _autorunDisabled;
-
uint32 _lastMiniUpdate;
bool _miniUpdateEnabled;
-
virtual void miniUpdate();
void getMousePos(Point32 *Pos);
@@ -113,24 +115,32 @@ public:
bool _shuttingDown;
virtual bool displayDebugInfo();
+ bool _debugShowFPS;
- void setShowFPS(bool enabled) { _debugShowFPS = enabled; }
- bool getBilinearFiltering() { return _bilinearFiltering; }
- bool getSuspendedRendering() const { return _suspendedRendering; }
+ bool _suspendedRendering;
+ int32 _soundBufferSizeSec;
virtual bool renderShadowGeometry();
TTextEncoding _textEncoding;
bool _textRTL;
+ BaseSprite *_loadingIcon;
+ int32 _loadingIconX;
+ int32 _loadingIconY;
+ int32 _loadingIconPersistent;
+
virtual bool resetContent();
void DEBUG_DumpClassRegistry();
bool setWaitCursor(const char *filename);
+ Common::String _localSaveDir;
+ // TODO: This can probably be removed completely:
+ bool _saveDirChecked;
+
#ifdef ENABLE_WME3D
bool _supportsRealTimeShadows;
TShadowType _maxShadowType;
-
bool setMaxShadowType(TShadowType maxShadowType);
virtual TShadowType getMaxShadowType(BaseObject *object = nullptr);
@@ -138,27 +148,30 @@ public:
int32 _editorResolutionHeight;
#endif
- uint32 getSaveThumbWidth() const { return _thumbnailWidth; }
- uint32 getSaveThumbHeight() const { return _thumbnailHeight; }
+ uint32 _thumbnailWidth;
+ uint32 _thumbnailHeight;
+
+ bool _reportTextureFormat;
+
+ void setEngineLogCallback(ENGINE_LOG_CALLBACK callback = nullptr, void *data = nullptr);
+ ENGINE_LOG_CALLBACK _engineLogCallback;
+ void *_engineLogCallbackData;
bool _editorMode;
void getOffset(int *offsetX, int *offsetY) const;
void setOffset(int32 offsetX, int32 offsetY);
int getSequence();
-
int32 _offsetY;
int32 _offsetX;
float _offsetPercentX;
float _offsetPercentY;
-
- inline BaseObject *getMainObject() { return _mainObject; }
- inline BaseFont *getSystemFont() { return _systemFont; }
- inline BaseFont *getVideoFont() { return _videoFont; }
-
+ BaseObject *_mainObject;
bool initInput();
bool initLoop();
uint32 _currentTime;
uint32 _deltaTime;
+ BaseFont *_systemFont;
+ BaseFont *_videoFont;
// Init-functions:
bool initConfManSettings();
@@ -167,21 +180,15 @@ public:
bool initialize1();
bool initialize2();
bool initialize3();
+ //CBAccessMgr *m_AccessMgr;
BaseTransitionMgr *_transMgr;
- // String Table
- void expandStringByStringTable(char **str) const;
- void expandStringByStringTable(Common::String &str) const;
- char *getKeyFromStringTable(const char *str) const;
-
void LOG(bool res, const char *fmt, ...);
-
BaseRenderer *_renderer;
#ifdef ENABLE_WME3D
BaseRenderer3D *_renderer3D;
bool _playing3DGame;
#endif
-
BaseSoundMgr *_soundMgr;
#if EXTENDED_DEBUGGER_ENABLED
DebuggableScEngine *_scEngine;
@@ -194,78 +201,101 @@ public:
BaseFontStorage *_fontStorage;
BaseGame(const Common::String &targetName);
~BaseGame() override;
-
+ void DEBUG_DebugDisable();
+ void DEBUG_DebugEnable(const char *filename = nullptr);
bool _debugDebugMode;
-
+ void *_debugLogFile;
int32 _sequence;
virtual bool loadFile(const char *filename);
virtual bool loadBuffer(char *buffer, bool complete = true);
-
+ BaseArray<BaseQuickMsg *> _quickMessages;
+ BaseArray<UIWindow *> _windows;
+ BaseArray<BaseViewport *> _viewportStack;
int32 _viewportSP;
+ bool _mouseLeftDown;
+ bool _mouseRightDown;
+ bool _mouseMidlleDown;
+ // String Table
+ void expandStringByStringTable(char **str) const;
+ void expandStringByStringTable(Common::String &str) const;
+ char *getKeyFromStringTable(const char *str) const;
+
+ BaseGameSettings *_settings;
+ BaseFader *_fader;
bool _suppressScriptErrors;
- bool _mouseLeftDown; // TODO: Hide
+
+ bool invalidateDeviceObjects() override;
+ bool restoreDeviceObjects() override;
virtual bool externalCall(ScScript *script, ScStack *stack, ScStack *thisStack, char *name);
+
// scripting interface
ScValue *scGetProperty(const Common::String &name) override;
bool scSetProperty(const char *name, ScValue *value) override;
bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name) override;
const char *scToString() override;
+
// compatibility bits
bool _compatKillMethodThreads;
- const char* getGameTargetName() const { return _targetName.c_str(); }
- void setGameTargetName(const Common::String& targetName) { _targetName = targetName; }
+ // FPS stuff
+private:
+ uint32 _lastTime;
+ uint32 _fpsTime;
+ uint32 _framesRendered;
+
+public:
uint32 _surfaceGCCycleTime;
bool _smartCache; // RO
+ bool _videoSubtitles;
bool _subtitles; // RO
int32 _scheduledLoadSlot;
+ bool _loading;
+ bool _personalizedSave;
- bool getIsLoading() const { return _loading; }
-
+ void setWindowTitle();
bool handleMouseWheel(int32 delta) override;
bool _quitting;
virtual bool getVersion(byte *verMajor, byte *verMinor, byte *extMajor, byte *extMinor) const;
-
bool handleKeypress(Common::Event *event, bool printable = false) override;
virtual void handleKeyRelease(Common::Event *event);
+ //bool HandleAccessKey(bool Printable, DWORD CharCode, DWORD KeyData);
virtual bool handleCustomActionStart(BaseGameCustomAction action);
virtual bool handleCustomActionEnd(BaseGameCustomAction action);
-
+ int32 _freezeLevel;
bool unfreeze();
bool freeze(bool includingMusic = true);
bool focusWindow(UIWindow *window);
+ VideoPlayer *_videoPlayer;
+ VideoTheoraPlayer *_theoraPlayer;
bool _loadInProgress;
UIWindow *_focusedWindow;
bool _editorForceScripts;
static void invalidateValues(void *value, void *data);
-
bool loadSettings(const char *filename);
bool displayWindows(bool inGame = false);
+ // TODO: This should be expanded into a proper class eventually:
+ Common::String readRegistryString(const Common::String &key, const Common::String &initValue) const;
bool _useD3D;
virtual bool cleanup();
bool loadGame(uint32 slot);
bool loadGame(const char *filename);
bool saveGame(int32 slot, const char *desc, bool quickSave = false);
bool showCursor() override;
-
+ BaseSprite *_cursorNoninteractive;
BaseObject *_activeObject;
-
+ BaseKeyboardState *_keyboardState;
bool _interactive;
TGameState _state;
TGameState _origState;
bool _origInteractive;
-
- const Timer *getTimer() const { return &_timerNormal; }
- const Timer *getLiveTimer() const { return &_timerLive; }
-private:
Timer _timerNormal;
Timer _timerLive;
-public:
+
BaseObject *_capturedObject;
Point32 _mousePos;
bool validObject(BaseObject *object);
@@ -274,7 +304,29 @@ public:
void quickMessage(const char *text);
void quickMessageForm(char *fmt, ...);
bool displayQuickMsg();
+ uint32 _fps;
+
+ bool isVideoPlaying();
+ bool stopVideo();
+
+ BaseArray<BaseObject *> _regObjects;
+ // accessibility flags
+/* bool m_AccessTTSEnabled;
+ bool m_AccessTTSTalk;
+ bool m_AccessTTSCaptions;
+ bool m_AccessTTSKeypress;
+ bool m_AccessKeyboardEnabled;
+ bool m_AccessKeyboardCursorSkip;
+ bool m_AccessKeyboardPause;
+
+ bool m_AccessGlobalPaused;
+
+ CUIWindow *m_AccessShieldWin;
+ HRESULT AccessPause();
+ HRESULT AccessUnpause();*/
+
+public:
virtual bool displayContent(bool update = true, bool displayAll = false);
virtual bool displayContentSimple();
bool _forceNonStreamedSounds;
@@ -288,92 +340,19 @@ public:
bool popViewport();
bool pushViewport(BaseViewport *Viewport);
bool setActiveObject(BaseObject *Obj);
+
BaseSprite *_lastCursor;
bool drawCursor(BaseSprite *Cursor);
bool storeSaveThumbnail();
void deleteSaveThumbnail();
SaveThumbHelper *_cachedThumbnail;
- void addMem(int32 bytes);
-
- bool stopVideo();
-protected:
- BaseFont *_systemFont;
- BaseFont *_videoFont;
-
- BaseSprite *_loadingIcon;
- int32 _loadingIconX;
- int32 _loadingIconY;
- int32 _loadingIconPersistent;
-
- BaseFader *_fader;
- int32 _freezeLevel;
- VideoPlayer *_videoPlayer;
- VideoTheoraPlayer *_theoraPlayer;
private:
- bool _debugShowFPS;
bool _bilinearFiltering;
#ifdef ENABLE_WME3D
bool _force2dRenderer;
#endif
- void *_debugLogFile;
- void DEBUG_DebugDisable();
- void DEBUG_DebugEnable(const char *filename = nullptr);
-
- BaseObject *_mainObject;
-
- bool _mouseRightDown;
- bool _mouseMidlleDown;
-
- BaseGameSettings *_settings;
-
- int32 _soundBufferSizeSec;
-
- bool invalidateDeviceObjects() override;
- bool restoreDeviceObjects() override;
-
- // TODO: This can probably be removed completely:
- bool _saveDirChecked;
-
- Common::String _localSaveDir;
- bool _loading;
-
- bool _reportTextureFormat;
-
- // FPS stuff
- uint32 _lastTime;
- uint32 _fpsTime;
- uint32 _framesRendered;
- Common::String _targetName;
-
- void setEngineLogCallback(ENGINE_LOG_CALLBACK callback = nullptr, void *data = nullptr);
- ENGINE_LOG_CALLBACK _engineLogCallback;
- void *_engineLogCallbackData;
-
- bool _videoSubtitles;
-
- bool _personalizedSave;
-
- uint32 _thumbnailWidth;
- uint32 _thumbnailHeight;
-
- void setWindowTitle();
-
- bool _suspendedRendering;
-
- BaseSprite *_cursorNoninteractive;
- BaseKeyboardState *_keyboardState;
-
- uint32 _fps;
- BaseGameMusic *_musicSystem;
-
- bool isVideoPlaying();
-
- BaseArray<BaseQuickMsg *> _quickMessages;
- BaseArray<UIWindow *> _windows;
- BaseArray<BaseViewport *> _viewportStack;
- BaseArray<BaseObject *> _regObjects;
AnsiString getDeviceType() const;
@@ -392,8 +371,6 @@ private:
bool isDoubleClick(int32 buttonIndex);
uint32 _usedMem;
-// TODO: This should be expanded into a proper class eventually:
- Common::String readRegistryString(const Common::String &key, const Common::String &initValue) const;
protected:
@@ -403,6 +380,14 @@ protected:
bool _cursorHidden;
public:
+ BaseGameMusic *_musicSystem;
+ Common::String _targetName;
+
+ bool getBilinearFiltering() { return _bilinearFiltering; }
+ void addMem(int32 bytes);
+ const Timer *getTimer() const { return &_timerNormal; }
+ const Timer *getLiveTimer() const { return &_timerLive; }
+
void autoSaveOnExit();
PluginEvent &pluginEvents() { return _pluginEvents; }
diff --git a/engines/wintermute/base/base_game_music.cpp b/engines/wintermute/base/base_game_music.cpp
index efc48bbabd3..e60008ce685 100644
--- a/engines/wintermute/base/base_game_music.cpp
+++ b/engines/wintermute/base/base_game_music.cpp
@@ -352,10 +352,10 @@ bool BaseGameMusic::scCallMethod(ScScript *script, ScStack *stack, ScStack *this
if (channel < 0 || channel >= NUM_MUSIC_CHANNELS) {
stack->pushNULL();
} else {
- if (!_music[channel] || !_music[channel]->getFilename()) {
+ if (!_music[channel] || _music[channel]->_soundFilename.empty()) {
stack->pushNULL();
} else {
- stack->pushString(_music[channel]->getFilename());
+ stack->pushString(_music[channel]->_soundFilename.c_str());
}
}
return STATUS_OK;
diff --git a/engines/wintermute/base/base_keyboard_state.h b/engines/wintermute/base/base_keyboard_state.h
index f3e00e4652f..13baa250b6d 100644
--- a/engines/wintermute/base/base_keyboard_state.h
+++ b/engines/wintermute/base/base_keyboard_state.h
@@ -43,6 +43,13 @@ struct keyCodeMapping {
class BaseKeyboardState : public BaseScriptable {
public:
+ uint32 _currentKeyData;
+ uint32 _currentCharCode;
+ bool _currentPrintable;
+
+ bool _currentShift;
+ bool _currentAlt;
+ bool _currentControl;
DECLARE_PERSISTENT(BaseKeyboardState, BaseScriptable)
BaseKeyboardState(BaseGame *inGame);
~BaseKeyboardState() override;
@@ -64,14 +71,6 @@ public:
private:
void init();
- bool _currentPrintable;
- uint32 _currentKeyData;
- uint32 _currentCharCode;
-
- bool _currentShift;
- bool _currentAlt;
- bool _currentControl;
-
uint8 *_keyStates;
const keyCodeMapping *_mapping;
diff --git a/engines/wintermute/base/base_named_object.h b/engines/wintermute/base/base_named_object.h
index 669bea5e346..21681bd397a 100644
--- a/engines/wintermute/base/base_named_object.h
+++ b/engines/wintermute/base/base_named_object.h
@@ -35,14 +35,13 @@ namespace Wintermute {
class BaseNamedObject : public BaseClass {
public:
- char *_name;
BaseNamedObject(BaseGame *inGame);
BaseNamedObject();
~BaseNamedObject() override;
BaseNamedObject(TDynamicConstructor, TDynamicConstructor);
- const char *getName() const { return _name; }
+ char *_name;
void setName(const char *name);
};
diff --git a/engines/wintermute/base/base_object.cpp b/engines/wintermute/base/base_object.cpp
index 17bc364648f..436b40ec0fa 100644
--- a/engines/wintermute/base/base_object.cpp
+++ b/engines/wintermute/base/base_object.cpp
@@ -580,7 +580,7 @@ bool BaseObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
if (!_sFX) {
stack->pushNULL();
} else {
- stack->pushString(_sFX->getFilename());
+ stack->pushString(_sFX->_soundFilename.c_str());
}
return STATUS_OK;
}
diff --git a/engines/wintermute/base/base_parser.h b/engines/wintermute/base/base_parser.h
index 3918dd38e37..ace64c95935 100644
--- a/engines/wintermute/base/base_parser.h
+++ b/engines/wintermute/base/base_parser.h
@@ -64,10 +64,6 @@ public:
public:
int32 scanStr(const char *in, const char *format, ...);
- int32 getCommand(char **buf, const TokenDesc *tokens, char **params);
- BaseParser();
- virtual ~BaseParser();
-private:
char *getLastOffender();
void skipToken(char **buf, char *tok, char *msg = nullptr);
int32 getTokenInt(char **buf);
@@ -76,9 +72,12 @@ private:
char *getAssignmentText(char **buf);
char *getSubText(char **buf, char open, char close);
void skipCharacters(char **buf, const char *toSkip);
+ int32 getCommand(char **buf, const TokenDesc *tokens, char **params);
int32 getObject(char **buf, const TokenDesc *tokens, char **name, char **data);
int32 _parserLine = 0;
char _lastOffender[255];
+ BaseParser();
+ virtual ~BaseParser();
char *_whiteSpace;
};
diff --git a/engines/wintermute/base/base_persistence_manager.cpp b/engines/wintermute/base/base_persistence_manager.cpp
index 33dc17ea7ce..f12f9c5586f 100644
--- a/engines/wintermute/base/base_persistence_manager.cpp
+++ b/engines/wintermute/base/base_persistence_manager.cpp
@@ -92,7 +92,7 @@ BasePersistenceManager::BasePersistenceManager(const Common::String &savePrefix,
if (savePrefix != "") {
_savePrefix = savePrefix;
} else if (_gameRef) {
- _savePrefix = _gameRef->getGameTargetName();
+ _savePrefix = _gameRef->_targetName.c_str();
} else {
_savePrefix = "wmesav";
}
@@ -256,7 +256,7 @@ bool BasePersistenceManager::initSave(const Common::String &desc) {
// new in ver 2
putDWORD((uint32)DCGF_VER_BUILD);
- putString(_gameRef->getName());
+ putString(_gameRef->_name);
// thumbnail data size
bool thumbnailOK = false;
@@ -387,7 +387,7 @@ bool BasePersistenceManager::initLoad(const Common::String &filename) {
}
_saving = false;
- if (_savedName == "" || scumm_stricmp(_savedName.c_str(), _gameRef->getName()) != 0) {
+ if (_savedName == "" || scumm_stricmp(_savedName.c_str(), _gameRef->_name) != 0) {
debugC(kWintermuteDebugSaveGame, "ERROR: Saved game name doesn't match current game");
cleanup();
return STATUS_FAILED;
diff --git a/engines/wintermute/base/base_quick_msg.cpp b/engines/wintermute/base/base_quick_msg.cpp
index a2d7a74e63b..b323220722a 100644
--- a/engines/wintermute/base/base_quick_msg.cpp
+++ b/engines/wintermute/base/base_quick_msg.cpp
@@ -46,9 +46,4 @@ const char *BaseQuickMsg::getText() const {
return _text.c_str();
}
-//////////////////////////////////////////////////////////////////////////
-uint32 BaseQuickMsg::getStartTime() const {
- return _startTime;
-}
-
} // End of namespace Wintermute
diff --git a/engines/wintermute/base/base_quick_msg.h b/engines/wintermute/base/base_quick_msg.h
index 02f7177f841..5dbf9a6c27e 100644
--- a/engines/wintermute/base/base_quick_msg.h
+++ b/engines/wintermute/base/base_quick_msg.h
@@ -35,12 +35,10 @@ namespace Wintermute {
class BaseQuickMsg {
public:
const char *getText() const;
- uint32 getStartTime() const;
+ uint32 _startTime;
+ Common::String _text;
BaseQuickMsg(uint32 startTime, const char *text);
virtual ~BaseQuickMsg();
-private:
- Common::String _text;
- uint32 _startTime;
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/base/base_region.cpp b/engines/wintermute/base/base_region.cpp
index 19f2d6e143a..4dc4a63c5ab 100644
--- a/engines/wintermute/base/base_region.cpp
+++ b/engines/wintermute/base/base_region.cpp
@@ -344,7 +344,7 @@ ScValue *BaseRegion::scGetProperty(const Common::String &name) {
// Name
//////////////////////////////////////////////////////////////////////////
else if (name == "Name") {
- _scValue->setString(getName());
+ _scValue->setString(_name);
return _scValue;
}
@@ -404,7 +404,7 @@ bool BaseRegion::saveAsText(BaseDynamicBuffer *buffer, int indent, const char *n
buffer->putTextIndent(indent, "%s {\n", nameOverride);
}
- buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", getName());
+ buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", _name);
buffer->putTextIndent(indent + 2, "CAPTION=\"%s\"\n", getCaption());
buffer->putTextIndent(indent + 2, "ACTIVE=%s\n", _active ? "TRUE" : "FALSE");
buffer->putTextIndent(indent + 2, "EDITOR_SELECTED_POINT=%d\n", _editorSelectedPoint);
@@ -535,6 +535,6 @@ bool BaseRegion::mimic(BaseRegion *region, float scale, int x, int y) {
}
Common::String BaseRegion::debuggerToString() const {
- return Common::String::format("%p: Region \"%s\": Rect (top, right, bottom, left): (%d, %d, %d, %d), active: %d ", (const void *)this, getName(), _rect.top, _rect.right, _rect.bottom, _rect.left, _active);
+ return Common::String::format("%p: Region \"%s\": Rect (top, right, bottom, left): (%d, %d, %d, %d), active: %d ", (const void *)this, _name, _rect.top, _rect.right, _rect.bottom, _rect.left, _active);
}
} // End of namespace Wintermute
diff --git a/engines/wintermute/base/base_region.h b/engines/wintermute/base/base_region.h
index 8409e1ed56e..838c9d7ac73 100644
--- a/engines/wintermute/base/base_region.h
+++ b/engines/wintermute/base/base_region.h
@@ -35,6 +35,9 @@ namespace Wintermute {
class BaseRegion : public BaseObject {
public:
+ float _lastMimicScale;
+ int32 _lastMimicX;
+ int32 _lastMimicY;
void cleanup();
bool mimic(BaseRegion *region, float scale = 100.0f, int x = 0, int y = 0);
bool getBoundingRect(Rect32 *rect);
@@ -59,11 +62,6 @@ public:
bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name) override;
const char *scToString() override;
Common::String debuggerToString() const override;
-
-private:
- float _lastMimicScale;
- int32 _lastMimicX;
- int32 _lastMimicY;
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/base/base_script_holder.cpp b/engines/wintermute/base/base_script_holder.cpp
index 1790e5bd26c..606b27a0e80 100644
--- a/engines/wintermute/base/base_script_holder.cpp
+++ b/engines/wintermute/base/base_script_holder.cpp
@@ -233,7 +233,7 @@ ScValue *BaseScriptHolder::scGetProperty(const Common::String &name) {
// Name
//////////////////////////////////////////////////////////////////////////
else if (name == "Name") {
- _scValue->setString(getName());
+ _scValue->setString(_name);
return _scValue;
}
@@ -281,7 +281,7 @@ bool BaseScriptHolder::persist(BasePersistenceManager *persistMgr) {
persistMgr->transferCharPtr(TMEMBER(_filename));
persistMgr->transferBool(TMEMBER(_freezable));
if (persistMgr->getIsSaving()) {
- const char *name = getName();
+ const char *name = _name;
persistMgr->transferConstChar(TMEMBER(name));
} else {
char *name;
@@ -300,7 +300,7 @@ bool BaseScriptHolder::addScript(const char *filename) {
for (int32 i = 0; i < _scripts.getSize(); i++) {
if (scumm_stricmp(_scripts[i]->_filename, filename) == 0) {
if (_scripts[i]->_state != SCRIPT_FINISHED) {
- BaseEngine::LOG(0, "BaseScriptHolder::AddScript - trying to add script '%s' multiple times (obj: '%s')", filename, getName());
+ BaseEngine::LOG(0, "BaseScriptHolder::AddScript - trying to add script '%s' multiple times (obj: '%s')", filename, _name);
return STATUS_OK;
}
}
@@ -483,9 +483,9 @@ ScScript *BaseScriptHolder::invokeMethodThread(const char *methodName) {
//////////////////////////////////////////////////////////////////////////
void BaseScriptHolder::scDebuggerDesc(char *buf, int bufSize) {
Common::strcpy_s(buf, bufSize, scToString());
- if (getName() && strcmp(getName(), "<unnamed>") != 0) {
+ if (_name && strcmp(_name, "<unnamed>") != 0) {
Common::strcat_s(buf, bufSize, " Name: ");
- Common::strcat_s(buf, bufSize, getName());
+ Common::strcat_s(buf, bufSize, _name);
}
if (_filename) {
Common::strcat_s(buf, bufSize, " File: ");
diff --git a/engines/wintermute/base/base_script_holder.h b/engines/wintermute/base/base_script_holder.h
index 054272fd31b..1e401ac6d9b 100644
--- a/engines/wintermute/base/base_script_holder.h
+++ b/engines/wintermute/base/base_script_holder.h
@@ -40,6 +40,7 @@ public:
BaseScriptHolder(BaseGame *inGame);
~BaseScriptHolder() override;
+
ScScript *invokeMethodThread(const char *methodName) override;
virtual void makeFreezable(bool freezable);
bool canHandleEvent(const char *eventName) const;
@@ -53,19 +54,20 @@ public:
void setFilename(const char *filename);
const char *getFilename() { return _filename; }
bool parseProperty(char *buffer, bool complete = true);
+
+ char *_filename;
bool _freezable;
bool _ready;
-
BaseArray<ScScript *> _scripts;
+
// scripting interface
ScValue *scGetProperty(const Common::String &name) override;
bool scSetProperty(const char *name, ScValue *value) override;
bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name) override;
const char *scToString() override;
void scDebuggerDesc(char *buf, int bufSize) override;
+
// IWmeObject
-private:
- char *_filename;
public:
virtual bool sendEvent(const char *eventName);
};
diff --git a/engines/wintermute/base/base_scriptable.cpp b/engines/wintermute/base/base_scriptable.cpp
index b8ca42338da..a362659800d 100644
--- a/engines/wintermute/base/base_scriptable.cpp
+++ b/engines/wintermute/base/base_scriptable.cpp
@@ -53,8 +53,8 @@ BaseScriptable::BaseScriptable(BaseGame *inGame, bool noValue, bool persistable)
BaseScriptable::~BaseScriptable() {
//if (_refCount>0) BaseEngine::LOG(0, "Warning: Destroying object, _refCount=%d", _refCount);
delete _scValue;
- delete _scProp;
_scValue = nullptr;
+ delete _scProp;
_scProp = nullptr;
}
@@ -188,7 +188,7 @@ ScScript *BaseScriptable::invokeMethodThread(const char *methodName) {
}
Common::String BaseScriptable::debuggerToString() const {
- return Common::String::format("%p: BaseScriptable %s", (const void *)this, getName());
+ return Common::String::format("%p: BaseScriptable %s", (const void *)this, _name);
}
diff --git a/engines/wintermute/base/base_sprite.cpp b/engines/wintermute/base/base_sprite.cpp
index bdc060b20cc..f30e63ceb03 100644
--- a/engines/wintermute/base/base_sprite.cpp
+++ b/engines/wintermute/base/base_sprite.cpp
@@ -482,7 +482,7 @@ bool BaseSprite::getBoundingRect(Rect32 *rect, int x, int y, float scaleX, float
//////////////////////////////////////////////////////////////////////////
bool BaseSprite::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent, "SPRITE {\n");
- buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", getName());
+ buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", _name);
buffer->putTextIndent(indent + 2, "LOOPING=%s\n", _looping ? "TRUE" : "FALSE");
buffer->putTextIndent(indent + 2, "CONTINUOUS=%s\n", _continuous ? "TRUE" : "FALSE");
buffer->putTextIndent(indent + 2, "PRECISE=%s\n", _precise ? "TRUE" : "FALSE");
@@ -818,12 +818,14 @@ const char *BaseSprite::scToString() {
//////////////////////////////////////////////////////////////////////////
bool BaseSprite::killAllSounds() {
for (int32 i = 0; i < _frames.getSize(); i++) {
- _frames[i]->stopSound();
+ if (_frames[i]->_sound) {
+ _frames[i]->_sound->stop();
+ }
}
return STATUS_OK;
}
Common::String BaseSprite::debuggerToString() const {
- return Common::String::format("%p: Sprite \"%s\"", (const void *)this, getName());
+ return Common::String::format("%p: Sprite \"%s\"", (const void *)this, _name);
}
} // End of namespace Wintermute
diff --git a/engines/wintermute/base/base_sprite.h b/engines/wintermute/base/base_sprite.h
index b6e2adcea70..79f937015a9 100644
--- a/engines/wintermute/base/base_sprite.h
+++ b/engines/wintermute/base/base_sprite.h
@@ -39,21 +39,36 @@ class BaseSurface;
class BaseObject;
class BaseSprite: public BaseScriptHolder {
public:
+ bool killAllSounds();
BaseSurface *getSurface();
+ char *_editorBgFile;
+ int32 _editorBgOffsetX;
+ int32 _editorBgOffsetY;
+ int32 _editorBgAlpha;
+ bool _streamed;
+ bool _streamedKeepLoaded;
void cleanup();
void setDefaults();
+ bool _precise;
DECLARE_PERSISTENT(BaseSprite, BaseScriptHolder)
+ bool _editorAllFrames;
bool getBoundingRect(Rect32 *rect, int x, int y, float scaleX = Graphics::kDefaultZoomX, float scaleY = Graphics::kDefaultZoomY);
int32 _moveY;
int32 _moveX;
bool display(int x, int y, BaseObject *registerOwner = nullptr, float zoomX = Graphics::kDefaultZoomX, float zoomY = Graphics::kDefaultZoomY, uint32 alpha = Graphics::kDefaultRgbaMod, float rotate = Graphics::kDefaultAngle, Graphics::TSpriteBlendMode blendMode = Graphics::BLEND_NORMAL);
bool getCurrentFrame(float zoomX = Graphics::kDefaultZoomX, float zoomY = Graphics::kDefaultZoomY);
+ bool _canBreak;
+ bool _editorMuted;
+ bool _continuous;
void reset();
+ BaseObject *_owner;
bool isChanged();
+ bool _paused;
bool isFinished();
bool loadBuffer(char *buffer, bool compete = true, int lifeTime = -1, TSpriteCacheType cacheType = CACHE_ALL);
bool loadFile(const Common::String &filename, int lifeTime = -1, TSpriteCacheType cacheType = CACHE_ALL);
+ uint32 _lastFrameTime;
bool draw(int x, int y, BaseObject *Register = nullptr, float zoomX = Graphics::kDefaultZoomX, float zoomY = Graphics::kDefaultZoomY, uint32 alpha = Graphics::kDefaultRgbaMod);
bool _looping;
int32 _currentFrame;
@@ -70,23 +85,8 @@ public:
const char *scToString() override;
Common::String debuggerToString() const override;
private:
- BaseObject *_owner;
- bool _canBreak;
bool _changed;
- bool _editorAllFrames;
- char *_editorBgFile;
- int32 _editorBgOffsetX;
- int32 _editorBgOffsetY;
- int32 _editorBgAlpha;
- bool _editorMuted;
bool _finished;
- bool _continuous;
- uint32 _lastFrameTime;
- bool _precise;
- bool _paused;
- bool _streamed;
- bool _streamedKeepLoaded;
- bool killAllSounds();
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/base/base_string_table.h b/engines/wintermute/base/base_string_table.h
index 5200f694a0a..adab3210f61 100644
--- a/engines/wintermute/base/base_string_table.h
+++ b/engines/wintermute/base/base_string_table.h
@@ -45,10 +45,10 @@ public:
bool addString(const char *key, const char *val, bool reportDuplicities = true);
BaseStringTable(BaseGame *inGame);
~BaseStringTable() override;
+ Common::HashMap<Common::String, Common::String> _strings;
char *getKey(const char *str) const;
bool persist(BasePersistenceManager *persistMgr) override;
private:
- Common::HashMap<Common::String, Common::String> _strings;
Common::Array<Common::String> _filenames;
typedef Common::HashMap<Common::String, Common::String>::const_iterator StringsIter;
void replaceExpand(char *key, char *newStr, size_t newStrSize) const;
diff --git a/engines/wintermute/base/base_sub_frame.cpp b/engines/wintermute/base/base_sub_frame.cpp
index 671c0a35b52..9eeb960d67e 100644
--- a/engines/wintermute/base/base_sub_frame.cpp
+++ b/engines/wintermute/base/base_sub_frame.cpp
@@ -247,12 +247,12 @@ bool BaseSubFrame::draw(int x, int y, BaseObject *registerOwner, float zoomX, fl
if (registerOwner != nullptr && !_decoration) {
if (zoomX == Graphics::kDefaultZoomX && zoomY == Graphics::kDefaultZoomY) {
- BaseEngine::getRenderer()->addRectToList(new BaseActiveRect(_gameRef, registerOwner, this, x - _hotspotX + getRect().left, y - _hotspotY + getRect().top, getRect().right - getRect().left, getRect().bottom - getRect().top, zoomX, zoomY, precise));
+ BaseEngine::getRenderer()->_rectList.add(new BaseActiveRect(_gameRef, registerOwner, this, x - _hotspotX + getRect().left, y - _hotspotY + getRect().top, getRect().right - getRect().left, getRect().bottom - getRect().top, zoomX, zoomY, precise));
} else {
- BaseEngine::getRenderer()->addRectToList(new BaseActiveRect(_gameRef, registerOwner, this, (int)(x - (_hotspotX + getRect().left) * (zoomX / 100)), (int)(y - (_hotspotY + getRect().top) * (zoomY / 100)), (int)((getRect().right - getRect().left) * (zoomX / 100)), (int)((getRect().bottom - getRect().top) * (zoomY / 100)), zoomX, zoomY, precise));
+ BaseEngine::getRenderer()->_rectList.add(new BaseActiveRect(_gameRef, registerOwner, this, (int)(x - (_hotspotX + getRect().left) * (zoomX / 100)), (int)(y - (_hotspotY + getRect().top) * (zoomY / 100)), (int)((getRect().right - getRect().left) * (zoomX / 100)), (int)((getRect().bottom - getRect().top) * (zoomY / 100)), zoomX, zoomY, precise));
}
}
- if (_gameRef->getSuspendedRendering()) {
+ if (_gameRef->_suspendedRendering) {
return STATUS_OK;
}
@@ -774,7 +774,7 @@ int32 BaseSubFrame::getHeight() {
}
Common::String BaseSubFrame::debuggerToString() const {
- return Common::String::format("%p: BaseSubFrame \"%s\" - Mirror:(%d, %d), Hotspot:(%d, %d), ", (const void *)this, getName(), _mirrorX, _mirrorY, _hotspotX, _hotspotY);
+ return Common::String::format("%p: BaseSubFrame \"%s\" - Mirror:(%d, %d), Hotspot:(%d, %d), ", (const void *)this, _name, _mirrorX, _mirrorY, _hotspotX, _hotspotY);
}
} // End of namespace Wintermute
diff --git a/engines/wintermute/base/base_transition_manager.h b/engines/wintermute/base/base_transition_manager.h
index a21961f3986..196e577698d 100644
--- a/engines/wintermute/base/base_transition_manager.h
+++ b/engines/wintermute/base/base_transition_manager.h
@@ -45,7 +45,6 @@ public:
BaseTransitionMgr(BaseGame *inGame);
~BaseTransitionMgr() override;
TTransitionType _type;
-
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/base/font/base_font.cpp b/engines/wintermute/base/font/base_font.cpp
index 2884ca30f9c..70ba5ac1bd3 100644
--- a/engines/wintermute/base/font/base_font.cpp
+++ b/engines/wintermute/base/font/base_font.cpp
@@ -68,7 +68,7 @@ int BaseFont::getTextWidth(const byte *text, int maxLength) {
//////////////////////////////////////////////////////////////////////////
-int BaseFont::getLetterHeight() {
+int32 BaseFont::getLetterHeight() {
return 0;
}
diff --git a/engines/wintermute/base/font/base_font_bitmap.cpp b/engines/wintermute/base/font/base_font_bitmap.cpp
index e2fab8b621b..10e9794c160 100644
--- a/engines/wintermute/base/font/base_font_bitmap.cpp
+++ b/engines/wintermute/base/font/base_font_bitmap.cpp
@@ -62,8 +62,8 @@ BaseFontBitmap::BaseFontBitmap(BaseGame *inGame) : BaseFont(inGame) {
//////////////////////////////////////////////////////////////////////
BaseFontBitmap::~BaseFontBitmap() {
delete _subframe;
- delete _sprite;
_subframe = nullptr;
+ delete _sprite;
_sprite = nullptr;
}
@@ -264,7 +264,7 @@ void BaseFontBitmap::drawChar(byte c, int x, int y) {
bool handled = false;
if (_sprite) {
_sprite->getCurrentFrame();
- if (_sprite->_currentFrame >= 0 && _sprite->_currentFrame < (int32)_sprite->_frames.getSize() && _sprite->_frames[_sprite->_currentFrame]) {
+ if (_sprite->_currentFrame >= 0 && _sprite->_currentFrame < _sprite->_frames.getSize() && _sprite->_frames[_sprite->_currentFrame]) {
if (_sprite->_frames[_sprite->_currentFrame]->_subframes.getSize() > 0) {
_sprite->_frames[_sprite->_currentFrame]->_subframes[0]->_surface->displayTrans(x, y, rect);
}
@@ -623,7 +623,7 @@ bool BaseFontBitmap::getWidths() {
}
//////////////////////////////////////////////////////////////////////////
-int BaseFontBitmap::getLetterHeight() {
+int32 BaseFontBitmap::getLetterHeight() {
return _tileHeight;
}
diff --git a/engines/wintermute/base/font/base_font_bitmap.h b/engines/wintermute/base/font/base_font_bitmap.h
index 6ff6495212b..5e9bce6ef19 100644
--- a/engines/wintermute/base/font/base_font_bitmap.h
+++ b/engines/wintermute/base/font/base_font_bitmap.h
@@ -46,7 +46,6 @@ public:
BaseFontBitmap(BaseGame *inGame);
~BaseFontBitmap() override;
-private:
bool getWidths();
BaseSprite *_sprite;
int32 _widthsFrame;
@@ -58,6 +57,7 @@ private:
BaseSubFrame *_subframe;
bool _wholeCell;
+private:
int getCharWidth(byte index);
void drawChar(byte c, int x, int y);
diff --git a/engines/wintermute/base/font/base_font_truetype.cpp b/engines/wintermute/base/font/base_font_truetype.cpp
index be8075ba8dd..771fec964f4 100644
--- a/engines/wintermute/base/font/base_font_truetype.cpp
+++ b/engines/wintermute/base/font/base_font_truetype.cpp
@@ -281,8 +281,8 @@ BaseSurface *BaseFontTT::renderTextToTexture(const WideString &text, int width,
//////////////////////////////////////////////////////////////////////////
-int BaseFontTT::getLetterHeight() {
- return (int)getLineHeight();
+int32 BaseFontTT::getLetterHeight() {
+ return (int32)_lineHeight;
}
@@ -603,7 +603,7 @@ void BaseFontTT::measureText(const WideString &text, int maxWidth, int maxHeight
//WrapText(text, maxWidth, maxHeight, lines);
- textHeight = (int)(lines.size() * getLineHeight());
+ textHeight = (int)(lines.size() * _lineHeight);
} else {
textWidth = _font->getStringWidth(text);
textHeight = _fontHeight;
diff --git a/engines/wintermute/base/font/base_font_truetype.h b/engines/wintermute/base/font/base_font_truetype.h
index 9de1a110dcd..b3a3df9938b 100644
--- a/engines/wintermute/base/font/base_font_truetype.h
+++ b/engines/wintermute/base/font/base_font_truetype.h
@@ -101,15 +101,11 @@ public:
int getTextWidth(const byte *text, int maxLength = -1) override;
int getTextHeight(const byte *text, int width) override;
void drawText(const byte *text, int x, int y, int width, TTextAlign align = TAL_LEFT, int max_height = -1, int maxLength = -1) override;
- int getLetterHeight() override;
+ int32 getLetterHeight() override;
bool loadBuffer(char *buffer);
bool loadFile(const Common::String &filename);
- float getLineHeight() const {
- return _lineHeight;
- }
-
void afterLoad() override;
void initLoop() override;
diff --git a/engines/wintermute/base/gfx/base_renderer.cpp b/engines/wintermute/base/gfx/base_renderer.cpp
index cf436e2cec4..f35f334a7fc 100644
--- a/engines/wintermute/base/gfx/base_renderer.cpp
+++ b/engines/wintermute/base/gfx/base_renderer.cpp
@@ -340,10 +340,6 @@ bool BaseRenderer::pointInViewport(Point32 *p) {
return true;
}
-void BaseRenderer::addRectToList(BaseActiveRect *rect) {
- _rectList.add(rect);
-}
-
//////////////////////////////////////////////////////////////////////////
bool BaseRenderer::displayIndicator() {
if (!_indicatorDisplay || !_indicatorProgress) {
diff --git a/engines/wintermute/base/gfx/base_renderer.h b/engines/wintermute/base/gfx/base_renderer.h
index 3d171a4edaf..f853b836f08 100644
--- a/engines/wintermute/base/gfx/base_renderer.h
+++ b/engines/wintermute/base/gfx/base_renderer.h
@@ -164,6 +164,9 @@ public:
return STATUS_OK;
};
bool pointInViewport(Point32 *P);
+ uint32 _forceAlphaColor;
+ uint32 _window;
+ uint32 _clipperWindow;
bool _active;
bool _ready;
@@ -171,10 +174,6 @@ public:
bool isWindowed() const { return _windowed; }
int32 getBPP() const { return _bPP; }
- uint32 _window;
- uint32 _forceAlphaColor;
-
- void addRectToList(BaseActiveRect *rect);
// Indicator & Save/Load-related functions
void initIndicator();
@@ -190,13 +189,7 @@ public:
int32 getWidth() const { return _width; }
int32 getHeight() const { return _height; }
-protected:
- int32 _height;
- int32 _width;
-
bool _windowed;
- int32 _bPP;
-
Common::String _loadImageName;
Common::String _saveImageName;
int32 _saveImageX;
@@ -216,13 +209,14 @@ protected:
bool _indicatorDisplay;
int32 _indicatorProgress;
- uint32 _clipperWindow;
-
Rect32 _windowRect;
Rect32 _viewportRect;
Rect32 _screenRect;
Rect32 _monitorRect;
-private:
+ int32 _bPP;
+ int32 _height;
+ int32 _width;
+
BaseArray<BaseActiveRect *> _rectList;
bool displaySaveloadImage();
bool displaySaveloadRect();
diff --git a/engines/wintermute/base/gfx/base_surface.h b/engines/wintermute/base/gfx/base_surface.h
index 84659695740..5a76d0f4447 100644
--- a/engines/wintermute/base/gfx/base_surface.h
+++ b/engines/wintermute/base/gfx/base_surface.h
@@ -39,9 +39,15 @@ class BaseSurface: public BaseClass {
public:
virtual bool invalidate();
virtual bool prepareToDraw();
+ bool _ckDefault;
+ byte _ckRed;
+ byte _ckGreen;
+ byte _ckBlue;
+
uint32 _lastUsedTime;
bool _valid;
int32 _lifeTime;
+ bool _keepLoaded;
BaseSurface(BaseGame *inGame);
~BaseSurface() override;
@@ -82,12 +88,7 @@ public:
//void SetWidth(int Width) { _width = Width; }
//void SetHeight(int Height){ _height = Height; }
protected:
- bool _ckDefault;
- byte _ckRed;
- byte _ckGreen;
- byte _ckBlue;
- bool _keepLoaded;
Common::String _filename;
int32 _height;
int32 _width;
diff --git a/engines/wintermute/base/gfx/xframe_node.cpp b/engines/wintermute/base/gfx/xframe_node.cpp
index c32fbaf0630..2ee45cb84c4 100644
--- a/engines/wintermute/base/gfx/xframe_node.cpp
+++ b/engines/wintermute/base/gfx/xframe_node.cpp
@@ -222,7 +222,7 @@ bool FrameNode::findBones(FrameNode *rootFrame) {
//////////////////////////////////////////////////////////////////////////
FrameNode *FrameNode::findFrame(const char *frameName) {
- if (getName() && strcmp(getName(), frameName) == 0) {
+ if (_name && strcmp(_name, frameName) == 0) {
return this;
} else {
for (int32 i = 0; i < _frames.getSize(); i++) {
diff --git a/engines/wintermute/base/gfx/xmesh.cpp b/engines/wintermute/base/gfx/xmesh.cpp
index cf08069fd4b..1bf462f76ef 100644
--- a/engines/wintermute/base/gfx/xmesh.cpp
+++ b/engines/wintermute/base/gfx/xmesh.cpp
@@ -310,7 +310,7 @@ bool XMesh::pickPoly(DXVector3 *pickRayOrig, DXVector3 *pickRayDir) {
////////////////////////////////////////////////////////////////////////////
bool XMesh::setMaterialSprite(const Common::String &matName, BaseSprite *sprite) {
for (int32 i = 0; i < _materials.getSize(); i++) {
- if (_materials[i]->getName() && scumm_stricmp(_materials[i]->getName(), matName.c_str()) == 0) {
+ if (_materials[i]->_name && scumm_stricmp(_materials[i]->_name, matName.c_str()) == 0) {
_materials[i]->setSprite(sprite);
}
}
@@ -320,7 +320,7 @@ bool XMesh::setMaterialSprite(const Common::String &matName, BaseSprite *sprite)
//////////////////////////////////////////////////////////////////////////
bool XMesh::setMaterialTheora(const Common::String &matName, VideoTheoraPlayer *theora) {
for (int32 i = 0; i < _materials.getSize(); i++) {
- if (_materials[i]->getName() && scumm_stricmp(_materials[i]->getName(), matName.c_str()) == 0) {
+ if (_materials[i]->_name && scumm_stricmp(_materials[i]->_name, matName.c_str()) == 0) {
_materials[i]->setTheora(theora);
}
}
@@ -330,7 +330,7 @@ bool XMesh::setMaterialTheora(const Common::String &matName, VideoTheoraPlayer *
//////////////////////////////////////////////////////////////////////////
bool XMesh::setMaterialEffect(const Common::String &matName, Effect3D *effect, Effect3DParams *params) {
for (int32 i = 0; i < _materials.getSize(); i++) {
- if (_materials[i]->getName() && scumm_stricmp(_materials[i]->getName(), matName.c_str()) == 0) {
+ if (_materials[i]->_name && scumm_stricmp(_materials[i]->_name, matName.c_str()) == 0) {
_materials[i]->setEffect(effect, params);
}
}
@@ -340,7 +340,7 @@ bool XMesh::setMaterialEffect(const Common::String &matName, Effect3D *effect, E
//////////////////////////////////////////////////////////////////////////
bool XMesh::removeMaterialEffect(const Common::String &matName) {
for (int32 i = 0; i < _materials.getSize(); i++) {
- if (_materials[i]->getName() && scumm_stricmp(_materials[i]->getName(), matName.c_str()) == 0) {
+ if (_materials[i]->_name && scumm_stricmp(_materials[i]->_name, matName.c_str()) == 0) {
_materials[i]->setEffect(nullptr, nullptr);
}
}
diff --git a/engines/wintermute/base/particles/part_emitter.cpp b/engines/wintermute/base/particles/part_emitter.cpp
index ac7d089e607..752f61b9ccb 100644
--- a/engines/wintermute/base/particles/part_emitter.cpp
+++ b/engines/wintermute/base/particles/part_emitter.cpp
@@ -407,7 +407,7 @@ PartForce *PartEmitter::addForceByName(const Common::String &name) {
PartForce *force = nullptr;
for (int32 i = 0; i < _forces.getSize(); i++) {
- if (scumm_stricmp(name.c_str(), _forces[i]->getName()) == 0) {
+ if (scumm_stricmp(name.c_str(), _forces[i]->_name) == 0) {
force = _forces[i];
break;
}
@@ -445,7 +445,7 @@ bool PartEmitter::addForce(const Common::String &name, PartForce::TForceType typ
//////////////////////////////////////////////////////////////////////////
bool PartEmitter::removeForce(const Common::String &name) {
for (int32 i = 0; i < _forces.getSize(); i++) {
- if (scumm_stricmp(name.c_str(), _forces[i]->getName()) == 0) {
+ if (scumm_stricmp(name.c_str(), _forces[i]->_name) == 0) {
delete _forces[i];
_forces.removeAt(i);
return STATUS_OK;
diff --git a/engines/wintermute/base/particles/part_emitter.h b/engines/wintermute/base/particles/part_emitter.h
index 9d99e0e92e7..1288e609b40 100644
--- a/engines/wintermute/base/particles/part_emitter.h
+++ b/engines/wintermute/base/particles/part_emitter.h
@@ -42,33 +42,6 @@ public:
PartEmitter(BaseGame *inGame, BaseScriptHolder *Owner);
~PartEmitter() override;
- int32 _fadeOutTime;
-
- bool start();
-
- bool update() override;
- bool display() override { return display(nullptr); } // To avoid shadowing the inherited display-function.
- bool display(BaseRegion *region);
-
- bool sortParticlesByZ();
- bool addSprite(const char *filename);
- bool removeSprite(const char *filename);
- bool setBorder(int x, int y, int width, int height);
- bool setBorderThickness(int thicknessLeft, int thicknessRight, int thicknessTop, int thicknessBottom);
-
- bool addForce(const Common::String &name, PartForce::TForceType type, int posX, int posY, float angle, float strength);
- bool removeForce(const Common::String &name);
-
- BaseArray<PartForce *> _forces;
-
- // scripting interface
- ScValue *scGetProperty(const Common::String &name) override;
- bool scSetProperty(const char *name, ScValue *value) override;
- bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name) override;
- const char *scToString() override;
-
-
-private:
int32 _width;
int32 _height;
@@ -115,6 +88,7 @@ private:
int32 _borderThicknessBottom;
int32 _fadeInTime;
+ int32 _fadeOutTime;
int32 _alpha1;
int32 _alpha2;
@@ -125,6 +99,30 @@ private:
char *_emitEvent;
BaseScriptHolder *_owner;
+ bool start();
+
+ bool update() override;
+ bool display() override { return display(nullptr); } // To avoid shadowing the inherited display-function.
+ bool display(BaseRegion *region);
+
+ bool sortParticlesByZ();
+ bool addSprite(const char *filename);
+ bool removeSprite(const char *filename);
+ bool setBorder(int x, int y, int width, int height);
+ bool setBorderThickness(int thicknessLeft, int thicknessRight, int thicknessTop, int thicknessBottom);
+
+ bool addForce(const Common::String &name, PartForce::TForceType type, int posX, int posY, float angle, float strength);
+ bool removeForce(const Common::String &name);
+
+ BaseArray<PartForce *> _forces;
+
+ // scripting interface
+ ScValue *scGetProperty(const Common::String &name) override;
+ bool scSetProperty(const char *name, ScValue *value) override;
+ bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name) override;
+ const char *scToString() override;
+
+private:
PartForce *addForceByName(const Common::String &name);
int static compareZ(const void *obj1, const void *obj2);
bool initParticle(PartParticle *particle, uint32 currentTime, uint32 timerDelta);
diff --git a/engines/wintermute/base/particles/part_force.cpp b/engines/wintermute/base/particles/part_force.cpp
index cbc35560cb0..b118d8bb1ad 100644
--- a/engines/wintermute/base/particles/part_force.cpp
+++ b/engines/wintermute/base/particles/part_force.cpp
@@ -47,7 +47,7 @@ PartForce::~PartForce() {
//////////////////////////////////////////////////////////////////////////
bool PartForce::persist(BasePersistenceManager *persistMgr) {
if (persistMgr->getIsSaving()) {
- const char *name = getName();
+ const char *name = _name;
persistMgr->transferConstChar(TMEMBER(name));
} else {
const char *name;
diff --git a/engines/wintermute/base/particles/part_force.h b/engines/wintermute/base/particles/part_force.h
index fdb6e5725f0..e0b0d1cb84e 100644
--- a/engines/wintermute/base/particles/part_force.h
+++ b/engines/wintermute/base/particles/part_force.h
@@ -38,7 +38,8 @@ namespace Wintermute {
class PartForce : public BaseNamedObject {
public:
enum TForceType {
- FORCE_POINT, FORCE_GLOBAL
+ FORCE_POINT,
+ FORCE_GLOBAL
};
PartForce(BaseGame *inGame);
diff --git a/engines/wintermute/base/particles/part_particle.h b/engines/wintermute/base/particles/part_particle.h
index c00e0afe51d..2133263f901 100644
--- a/engines/wintermute/base/particles/part_particle.h
+++ b/engines/wintermute/base/particles/part_particle.h
@@ -42,7 +42,9 @@ class BasePersistenceManager;
class PartParticle : public BaseClass {
public:
enum TParticleState {
- PARTICLE_NORMAL, PARTICLE_FADEIN, PARTICLE_FADEOUT
+ PARTICLE_NORMAL,
+ PARTICLE_FADEIN,
+ PARTICLE_FADEOUT
};
PartParticle(BaseGame *inGame);
@@ -77,6 +79,7 @@ public:
bool fadeOut(uint32 currentTime, int fadeTime);
bool persist(BasePersistenceManager *PersistMgr) override;
+
private:
uint32 _fadeStart;
int32 _fadeTime;
diff --git a/engines/wintermute/base/save_thumb_helper.cpp b/engines/wintermute/base/save_thumb_helper.cpp
index efe5ad49f04..8ebe1b4fdc0 100644
--- a/engines/wintermute/base/save_thumb_helper.cpp
+++ b/engines/wintermute/base/save_thumb_helper.cpp
@@ -48,7 +48,7 @@ SaveThumbHelper::~SaveThumbHelper() {
}
BaseImage *SaveThumbHelper::storeThumb(bool doFlip, int width, int height) {
- if (_gameRef->getSaveThumbWidth() > 0 && _gameRef->getSaveThumbHeight() > 0) {
+ if (_gameRef->_thumbnailWidth > 0 && _gameRef->_thumbnailHeight > 0) {
if (doFlip) {
// when using opengl on windows it seems to be necessary to do this twice
// works normally for direct3d
@@ -70,9 +70,9 @@ bool SaveThumbHelper::storeThumbnail(bool doFlip) {
delete _thumbnail;
_thumbnail = nullptr;
- if (_gameRef->getSaveThumbWidth() > 0 && _gameRef->getSaveThumbHeight() > 0) {
+ if (_gameRef->_thumbnailWidth > 0 && _gameRef->_thumbnailHeight > 0) {
- _thumbnail = storeThumb(doFlip, _gameRef->getSaveThumbWidth(), _gameRef->getSaveThumbHeight());
+ _thumbnail = storeThumb(doFlip, _gameRef->_thumbnailWidth, _gameRef->_thumbnailHeight);
if (!_thumbnail) {
return STATUS_FAILED;
}
diff --git a/engines/wintermute/base/scriptables/script.cpp b/engines/wintermute/base/scriptables/script.cpp
index 8815d8797fe..e125826ae07 100644
--- a/engines/wintermute/base/scriptables/script.cpp
+++ b/engines/wintermute/base/scriptables/script.cpp
@@ -254,7 +254,6 @@ bool ScScript::create(const char *filename, byte *buffer, uint32 size, BaseScrip
_thread = false;
_methodThread = false;
-
delete[] _threadEvent;
_threadEvent = nullptr;
@@ -328,9 +327,6 @@ bool ScScript::createThread(ScScript *original, uint32 initIP, const Common::Str
return STATUS_OK;
}
-
-
-
//////////////////////////////////////////////////////////////////////////
bool ScScript::createMethodThread(ScScript *original, const Common::String &methodName) {
uint32 ip = original->getMethodPos(methodName);
@@ -445,8 +441,8 @@ void ScScript::cleanup() {
_numExternals = 0;
delete _operand;
- delete _reg1;
_operand = nullptr;
+ delete _reg1;
_reg1 = nullptr;
delete[] _threadEvent;
@@ -471,7 +467,7 @@ uint32 ScScript::getDWORD() {
_scriptStream->seek((int32)_iP);
uint32 ret = _scriptStream->readUint32LE();
_iP += sizeof(uint32);
-// assert(oldRet == ret);
+
return ret;
}
@@ -569,7 +565,6 @@ bool ScScript::executeInstruction() {
case II_DEF_GLOB_VAR:
case II_DEF_CONST_VAR: {
dw = getDWORD();
- /* char *temp = _symbols[dw]; // TODO delete */
// only create global var if it doesn't exist
if (!_engine->_globals->propExists(_symbols[dw])) {
_operand->setNULL();
diff --git a/engines/wintermute/base/scriptables/script.h b/engines/wintermute/base/scriptables/script.h
index 9adfedc3630..ae175191b0e 100644
--- a/engines/wintermute/base/scriptables/script.h
+++ b/engines/wintermute/base/scriptables/script.h
@@ -51,11 +51,8 @@ public:
bool finishThreads();
bool copyParameters(ScStack *stack);
- void afterLoad();
-protected:
ScValue *_operand;
ScValue *_reg1;
-public:
bool _freezable;
bool resume();
bool pause();
@@ -66,6 +63,7 @@ public:
ScScript *invokeEventHandler(const Common::String &eventName, bool unbreakable = false);
uint32 _timeSlice;
DECLARE_PERSISTENT(ScScript, BaseClass)
+ void afterLoad();
void runtimeError(const char *fmt, ...);
bool run();
bool finish(bool includingThreads = false);
@@ -134,22 +132,13 @@ public:
void cleanup();
bool create(const char *filename, byte *buffer, uint32 size, BaseScriptHolder *owner);
uint32 _iP;
-private:
void readHeader();
uint32 _bufferSize;
byte *_buffer;
-public:
Common::SeekableReadStream *_scriptStream;
ScScript(BaseGame *inGame, ScEngine *engine);
~ScScript() override;
char *_filename;
- bool _thread;
- bool _methodThread;
- char *_threadEvent;
- BaseScriptHolder *_owner;
- ScScript::TExternalFunction *getExternal(char *name);
- bool externalCall(ScStack *stack, ScStack *thisStack, ScScript::TExternalFunction *function);
-private:
char **_symbols;
uint32 _numSymbols;
TFunctionPos *_functions;
@@ -160,6 +149,13 @@ private:
uint32 _numFunctions;
uint32 _numMethods;
uint32 _numEvents;
+ bool _thread;
+ bool _methodThread;
+ char *_threadEvent;
+ BaseScriptHolder *_owner;
+ ScScript::TExternalFunction *getExternal(char *name);
+ bool externalCall(ScStack *stack, ScStack *thisStack, ScScript::TExternalFunction *function);
+private:
bool initScript();
bool initTables();
diff --git a/engines/wintermute/base/scriptables/script_ext_array.h b/engines/wintermute/base/scriptables/script_ext_array.h
index 4c4387cc56e..136b04040f8 100644
--- a/engines/wintermute/base/scriptables/script_ext_array.h
+++ b/engines/wintermute/base/scriptables/script_ext_array.h
@@ -44,7 +44,6 @@ public:
bool scSetProperty(const char *name, ScValue *value) override;
bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name) override;
const char *scToString() override;
-private:
int32 _length;
ScValue *_values;
Common::String _strRep;
diff --git a/engines/wintermute/base/scriptables/script_ext_date.h b/engines/wintermute/base/scriptables/script_ext_date.h
index 293ef312e22..905946167a7 100644
--- a/engines/wintermute/base/scriptables/script_ext_date.h
+++ b/engines/wintermute/base/scriptables/script_ext_date.h
@@ -43,9 +43,8 @@ public:
bool scSetProperty(const char *name, ScValue *value) override;
bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name) override;
const char *scToString() override;
-private:
- TimeDate _tm;
Common::String _strRep;
+ TimeDate _tm;
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/base/scriptables/script_ext_directory.h b/engines/wintermute/base/scriptables/script_ext_directory.h
index 7cf656910da..8eeec097710 100644
--- a/engines/wintermute/base/scriptables/script_ext_directory.h
+++ b/engines/wintermute/base/scriptables/script_ext_directory.h
@@ -36,10 +36,10 @@ namespace Wintermute {
class SXDirectory : public BaseScriptable {
public:
DECLARE_PERSISTENT(SXDirectory, BaseScriptable)
- SXDirectory(BaseGame *inGame);
- ~SXDirectory() override;
ScValue *scGetProperty(const Common::String &name) override;
bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name) override;
+ SXDirectory(BaseGame *inGame);
+ ~SXDirectory() override;
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/base/scriptables/script_ext_file.h b/engines/wintermute/base/scriptables/script_ext_file.h
index 25832152ee4..65643c3e582 100644
--- a/engines/wintermute/base/scriptables/script_ext_file.h
+++ b/engines/wintermute/base/scriptables/script_ext_file.h
@@ -43,6 +43,7 @@ public:
const char *scToString() override;
SXFile(BaseGame *inGame, ScStack *Stack);
~SXFile() override;
+
private:
Common::SeekableReadStream *_readFile;
Common::WriteStream *_writeFile;
diff --git a/engines/wintermute/base/scriptables/script_ext_mem_buffer.h b/engines/wintermute/base/scriptables/script_ext_mem_buffer.h
index f98ea5f4f24..e37377d8b2a 100644
--- a/engines/wintermute/base/scriptables/script_ext_mem_buffer.h
+++ b/engines/wintermute/base/scriptables/script_ext_mem_buffer.h
@@ -45,9 +45,9 @@ public:
SXMemBuffer(BaseGame *inGame, void *buffer);
~SXMemBuffer() override;
void *scToMemBuffer() override;
-private:
int32 _size;
+private:
bool resize(int newSize);
void *_buffer;
void cleanup();
diff --git a/engines/wintermute/base/scriptables/script_ext_string.cpp b/engines/wintermute/base/scriptables/script_ext_string.cpp
index 11b2197dc82..4cfab371f37 100644
--- a/engines/wintermute/base/scriptables/script_ext_string.cpp
+++ b/engines/wintermute/base/scriptables/script_ext_string.cpp
@@ -80,7 +80,6 @@ void SXString::setStringVal(const char *val) {
if (len >= _capacity) {
_capacity = len + 1;
delete[] _string;
- _string = nullptr;
_string = new char[_capacity]();
}
Common::strcpy_s(_string, _capacity, val);
diff --git a/engines/wintermute/base/scriptables/script_ext_string.h b/engines/wintermute/base/scriptables/script_ext_string.h
index 5a5280ea565..86dd3d23f31 100644
--- a/engines/wintermute/base/scriptables/script_ext_string.h
+++ b/engines/wintermute/base/scriptables/script_ext_string.h
@@ -43,12 +43,9 @@ public:
void scSetString(const char *val) override;
const char *scToString() override;
void setStringVal(const char *val);
-
+ char *_string;
SXString(BaseGame *inGame, ScStack *Stack);
~SXString() override;
-
-private:
- char *_string;
int32 _capacity;
};
diff --git a/engines/wintermute/base/scriptables/script_value.cpp b/engines/wintermute/base/scriptables/script_value.cpp
index 91ccfb64706..6e356914fce 100644
--- a/engines/wintermute/base/scriptables/script_value.cpp
+++ b/engines/wintermute/base/scriptables/script_value.cpp
@@ -130,7 +130,6 @@ void ScValue::cleanup(bool ignoreNatives) {
_valNative->_refCount--;
if (_valNative->_refCount <= 0) {
delete _valNative;
- _valNative = nullptr;
}
}
}
@@ -149,7 +148,6 @@ void ScValue::cleanup(bool ignoreNatives) {
}
-
//////////////////////////////////////////////////////////////////////////
ScValue::~ScValue() {
cleanup();
diff --git a/engines/wintermute/base/sound/base_sound.h b/engines/wintermute/base/sound/base_sound.h
index c4f2aafcabc..4745085c339 100644
--- a/engines/wintermute/base/sound/base_sound.h
+++ b/engines/wintermute/base/sound/base_sound.h
@@ -39,6 +39,7 @@ class BaseSoundBuffer;
class BaseSound : public BaseClass {
public:
bool setPan(float pan);
+ int32 _soundPrivateVolume;
int getVolume();
int getVolumePercent();
bool setVolumePercent(int percent);
@@ -47,37 +48,37 @@ public:
bool setLoopStart(uint32 pos);
uint32 getPositionTime();
bool setPositionTime(uint32 time);
+ bool _soundPaused;
+ bool _soundFreezePaused;
bool isPlaying();
bool isPaused();
+ bool _soundPlaying;
+ bool _soundLooping;
+ uint32 _soundLoopStart;
+ uint32 _soundPosition;
DECLARE_PERSISTENT(BaseSound, BaseClass)
bool resume();
bool pause(bool freezePaused = false);
bool stop();
bool play(bool looping = false);
uint32 getLength();
- const char *getFilename() { return _soundFilename.c_str(); }
+ bool _soundStreamed;
+ Audio::Mixer::SoundType _soundType;
+ Common::String _soundFilename;
bool setSoundSimple();
bool setSound(const Common::String &filename, Audio::Mixer::SoundType type = Audio::Mixer::kSFXSoundType, bool streamed = false);
BaseSound(BaseGame *inGame);
~BaseSound() override;
bool applyFX(TSFXType type = SFX_NONE, float param1 = 0, float param2 = 0, float param3 = 0, float param4 = 0);
-private:
- Common::String _soundFilename;
- bool _soundStreamed;
- Audio::Mixer::SoundType _soundType;
- int32 _soundPrivateVolume;
- uint32 _soundLoopStart;
- uint32 _soundPosition;
- bool _soundPlaying;
- bool _soundLooping;
- bool _soundPaused;
- bool _soundFreezePaused;
+
TSFXType _sFXType;
float _sFXParam1;
float _sFXParam2;
float _sFXParam3;
float _sFXParam4;
+
+private:
BaseSoundBuffer *_sound;
};
diff --git a/engines/wintermute/debugger/debugger_controller.cpp b/engines/wintermute/debugger/debugger_controller.cpp
index 29d737f7d9b..909314bab29 100644
--- a/engines/wintermute/debugger/debugger_controller.cpp
+++ b/engines/wintermute/debugger/debugger_controller.cpp
@@ -255,7 +255,7 @@ Error DebuggerController::setValue(const Common::String &name, const Common::Str
}
void DebuggerController::showFps(bool show) {
- _engine->_game->setShowFPS(show);
+ _engine->_game->_debugShowFPS = show;
}
Common::Array<BreakpointInfo> DebuggerController::getBreakpoints() const {
diff --git a/engines/wintermute/ui/ui_button.cpp b/engines/wintermute/ui/ui_button.cpp
index 5c895f8b5e3..45336db3b3d 100644
--- a/engines/wintermute/ui/ui_button.cpp
+++ b/engines/wintermute/ui/ui_button.cpp
@@ -479,7 +479,7 @@ bool UIButton::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent, "BUTTON\n");
buffer->putTextIndent(indent, "{\n");
- buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", getName());
+ buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", _name);
buffer->putTextIndent(indent + 2, "CAPTION=\"%s\"\n", getCaption());
buffer->putTextIndent(indent + 2, "\n");
@@ -624,12 +624,11 @@ void UIButton::correctSize() {
}
if (_text) {
- int textHeight = 0;
- BaseFont *font = _font ? _font : _gameRef->getSystemFont();
-
- if (font) {
- textHeight = font->getTextHeight((byte *)_text, _width);
- }
+ int textHeight;
+ if (_font)
+ textHeight = _font->getTextHeight((byte *)_text, _width);
+ else
+ textHeight = _gameRef->_systemFont->getTextHeight((byte *)_text, _width);
if (textHeight > _height) {
_height = textHeight;
@@ -719,7 +718,7 @@ bool UIButton::display(int offsetX, int offsetY) {
if (_font) {
font = _font;
} else {
- font = _gameRef->getSystemFont();
+ font = _gameRef->_systemFont;
}
}
@@ -747,7 +746,7 @@ bool UIButton::display(int offsetX, int offsetY) {
}
if (!_pixelPerfect || !_image) {
- _gameRef->_renderer->addRectToList(new BaseActiveRect(_gameRef, this, nullptr, offsetX + _posX, offsetY + _posY, _width, _height, 100, 100, false));
+ _gameRef->_renderer->_rectList.add(new BaseActiveRect(_gameRef, this, nullptr, offsetX + _posX, offsetY + _posY, _width, _height, 100, 100, false));
}
// reset unused sprites
@@ -765,6 +764,12 @@ bool UIButton::display(int offsetX, int offsetY) {
}
if (_imageHover && _imageHover != image) {
_imageHover->reset();
+
+/* if (Game->m_AccessMgr->GetActiveObject() == this) {
+ RECT rc;
+ SetRect(&rc, OffsetX + m_PosX, OffsetY + m_PosY, OffsetX + m_PosX + m_Width, OffsetY + m_PosY + m_Height);
+ Game->m_AccessMgr->SetHintRect(&rc, true);
+ }*/
}
_press = _hover && _gameRef->_mouseLeftDown && _gameRef->_capturedObject == this;
@@ -780,7 +785,7 @@ void UIButton::press() {
_listenerObject->listen(_listenerParamObject, _listenerParamDWORD);
}
if (_parentNotify && _parent) {
- _parent->applyEvent(getName());
+ _parent->applyEvent(_name);
}
_oneTimePress = false;
@@ -1222,29 +1227,4 @@ bool UIButton::persist(BasePersistenceManager *persistMgr) {
return STATUS_OK;
}
-
-void UIButton::setFontHover(BaseFont *font) {
- _fontHover = font;
-}
-
-BaseFont *UIButton::getFontHover() {
- return _fontHover;
-}
-
-void UIButton::setFontPress(BaseFont *font) {
- _fontPress = font;
-}
-
-void UIButton::setImageHover(BaseSprite *sprite) {
- _imageHover = sprite;
-}
-
-void UIButton::setImagePress(BaseSprite *sprite) {
- _imagePress = sprite;
-}
-
-void UIButton::setTextAlign(TTextAlign align) {
- _align = align;
-}
-
} // End of namespace Wintermute
diff --git a/engines/wintermute/ui/ui_button.h b/engines/wintermute/ui/ui_button.h
index bee77fc64cd..5edcedf895d 100644
--- a/engines/wintermute/ui/ui_button.h
+++ b/engines/wintermute/ui/ui_button.h
@@ -36,14 +36,31 @@ namespace Wintermute {
class UIButton : public UIObject {
public:
-
+ bool _pixelPerfect;
+ bool _stayPressed;
+ bool _centerImage;
+ bool _oneTimePress;
+ uint32 _oneTimePressTime;
DECLARE_PERSISTENT(UIButton, UIObject)
void press();
bool display() override { return display(0, 0); }
bool display(int offsetX, int offsetY) override;
-
+ bool _press;
+ bool _hover;
void correctSize() override;
-
+ TTextAlign _align;
+ BaseSprite *_imageHover;
+ BaseSprite *_imagePress;
+ BaseSprite *_imageDisable;
+ BaseSprite *_imageFocus;
+ BaseFont *_fontDisable;
+ BaseFont *_fontPress;
+ BaseFont *_fontHover;
+ BaseFont *_fontFocus;
+ UITiledImage *_backPress;
+ UITiledImage *_backHover;
+ UITiledImage *_backDisable;
+ UITiledImage *_backFocus;
UIButton(BaseGame *inGame = nullptr);
~UIButton() override;
bool loadFile(const char *filename);
@@ -55,39 +72,6 @@ public:
bool scSetProperty(const char *name, ScValue *value) override;
bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name) override;
const char *scToString() override;
-
-
- void setFontHover(BaseFont *font);
- BaseFont *getFontHover();
- void setFontPress(BaseFont *font);
-
- void setTextAlign(TTextAlign align);
-
- void setImageHover(BaseSprite *sprite);
- void setImagePress(BaseSprite *sprite);
-
-private:
- bool _pixelPerfect;
- bool _stayPressed;
- bool _centerImage;
- bool _oneTimePress;
- UITiledImage *_backPress;
- UITiledImage *_backHover;
- UITiledImage *_backDisable;
- UITiledImage *_backFocus;
- bool _press;
- bool _hover;
- BaseFont *_fontDisable;
- BaseFont *_fontPress;
- BaseFont *_fontHover;
- BaseFont *_fontFocus;
- BaseSprite *_imageHover;
- BaseSprite *_imagePress;
- BaseSprite *_imageDisable;
- BaseSprite *_imageFocus;
- uint32 _oneTimePressTime;
- TTextAlign _align;
-
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/ui/ui_edit.cpp b/engines/wintermute/ui/ui_edit.cpp
index a9647aa3a8a..abeb00d1f7f 100644
--- a/engines/wintermute/ui/ui_edit.cpp
+++ b/engines/wintermute/ui/ui_edit.cpp
@@ -318,28 +318,28 @@ bool UIEdit::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent, "EDIT\n");
buffer->putTextIndent(indent, "{\n");
- buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", getName());
+ buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", _name);
buffer->putTextIndent(indent + 2, "CAPTION=\"%s\"\n", getCaption());
buffer->putTextIndent(indent + 2, "\n");
- if (_back && _back->getFilename()) {
- buffer->putTextIndent(indent + 2, "BACK=\"%s\"\n", _back->getFilename());
+ if (_back && _back->_filename) {
+ buffer->putTextIndent(indent + 2, "BACK=\"%s\"\n", _back->_filename);
}
- if (_image && _image->getFilename()) {
- buffer->putTextIndent(indent + 2, "IMAGE=\"%s\"\n", _image->getFilename());
+ if (_image && _image->_filename) {
+ buffer->putTextIndent(indent + 2, "IMAGE=\"%s\"\n", _image->_filename);
}
- if (_font && _font->getFilename()) {
- buffer->putTextIndent(indent + 2, "FONT=\"%s\"\n", _font->getFilename());
+ if (_font && _font->_filename) {
+ buffer->putTextIndent(indent + 2, "FONT=\"%s\"\n", _font->_filename);
}
- if (_fontSelected && _fontSelected->getFilename()) {
- buffer->putTextIndent(indent + 2, "FONT_SELECTED=\"%s\"\n", _fontSelected->getFilename());
+ if (_fontSelected && _fontSelected->_filename) {
+ buffer->putTextIndent(indent + 2, "FONT_SELECTED=\"%s\"\n", _fontSelected->_filename);
}
- if (_cursor && _cursor->getFilename()) {
- buffer->putTextIndent(indent + 2, "CURSOR=\"%s\"\n", _cursor->getFilename());
+ if (_cursor && _cursor->_filename) {
+ buffer->putTextIndent(indent + 2, "CURSOR=\"%s\"\n", _cursor->_filename);
}
buffer->putTextIndent(indent + 2, "\n");
@@ -484,7 +484,7 @@ bool UIEdit::scSetProperty(const char *name, ScValue *value) {
if (strcmp(name, "SelStart") == 0) {
_selStart = value->getInt();
_selStart = MAX<int32>(_selStart, 0);
- _selStart = (int)MIN((size_t)_selStart, strlen(_text));
+ _selStart = (int32)MIN((size_t)_selStart, strlen(_text));
return STATUS_OK;
}
@@ -494,7 +494,7 @@ bool UIEdit::scSetProperty(const char *name, ScValue *value) {
else if (strcmp(name, "SelEnd") == 0) {
_selEnd = value->getInt();
_selEnd = MAX<int32>(_selEnd, 0);
- _selEnd = (int)MIN((size_t)_selEnd, strlen(_text));
+ _selEnd = (int32)MIN((size_t)_selEnd, strlen(_text));
return STATUS_OK;
}
@@ -590,7 +590,7 @@ bool UIEdit::display(int offsetX, int offsetY) {
if (_font) {
font = _font;
} else {
- font = _gameRef->getSystemFont();
+ font = _gameRef->_systemFont;
}
if (_fontSelected) {
@@ -604,8 +604,8 @@ bool UIEdit::display(int offsetX, int offsetY) {
_selStart = MAX<int32>(_selStart, 0);
_selEnd = MAX<int32>(_selEnd, 0);
- _selStart = (int)MIN((size_t)_selStart, strlen(_text));
- _selEnd = (int)MIN((size_t)_selEnd, strlen(_text));
+ _selStart = (int32)MIN((size_t)_selStart, strlen(_text));
+ _selEnd = (int32)MIN((size_t)_selEnd, strlen(_text));
//int CursorWidth = font->GetCharWidth(_cursorChar[0]);
int cursorWidth = font->getTextWidth((byte *)_cursorChar);
@@ -628,11 +628,10 @@ bool UIEdit::display(int offsetX, int offsetY) {
curFirst = true;
} else {
while (font->getTextWidth((byte *)_text + _scrollOffset, MAX<int32>(0, _selStart - _scrollOffset)) +
- sfont->getTextWidth((byte *)(_text + MAX<int32>(_scrollOffset, _selStart)), _selEnd - MAX(_scrollOffset, _selStart))
-
- > _width - cursorWidth - 2 * _frameWidth) {
+ sfont->getTextWidth((byte *)(_text + MAX<int32>(_scrollOffset, _selStart)), _selEnd - MAX(_scrollOffset, _selStart))
+ > _width - cursorWidth - 2 * _frameWidth) {
_scrollOffset++;
- if (_scrollOffset >= (int)strlen(_text)) {
+ if (_scrollOffset >= (int32)strlen(_text)) {
break;
}
}
@@ -727,8 +726,13 @@ bool UIEdit::display(int offsetX, int offsetY) {
}
- _gameRef->_renderer->addRectToList(new BaseActiveRect(_gameRef, this, nullptr, offsetX + _posX, offsetY + _posY, _width, _height, 100, 100, false));
+ _gameRef->_renderer->_rectList.add(new BaseActiveRect(_gameRef, this, nullptr, offsetX + _posX, offsetY + _posY, _width, _height, 100, 100, false));
+/* if (Game->m_AccessMgr->GetActiveObject() == this) {
+ RECT rc;
+ SetRect(&rc, OffsetX + m_PosX, OffsetY + m_PosY, OffsetX + m_PosX + m_Width, OffsetY + m_PosY + m_Height);
+ Game->m_AccessMgr->SetHintRect(&rc, true);
+ }*/
_gameRef->_textEncoding = OrigEncoding;
@@ -868,7 +872,7 @@ int UIEdit::deleteChars(int start, int end) {
_text = str;
}
if (_parentNotify && _parent) {
- _parent->applyEvent(getName());
+ _parent->applyEvent(_name);
}
return end - start;
@@ -897,7 +901,7 @@ int UIEdit::insertChars(int pos, const byte *chars, int num) {
_text = str;
}
if (_parentNotify && _parent) {
- _parent->applyEvent(getName());
+ _parent->applyEvent(_name);
}
return num;
diff --git a/engines/wintermute/ui/ui_edit.h b/engines/wintermute/ui/ui_edit.h
index 239f2b634ca..8726fe25384 100644
--- a/engines/wintermute/ui/ui_edit.h
+++ b/engines/wintermute/ui/ui_edit.h
@@ -37,15 +37,21 @@ class BaseFont;
class UIEdit : public UIObject {
public:
DECLARE_PERSISTENT(UIEdit, UIObject)
-
+ int32 _maxLength;
int insertChars(int pos, const byte *chars, int num);
int deleteChars(int start, int end);
-
+ bool _cursorVisible;
+ uint32 _lastBlinkTime;
bool display(int offsetX, int offsetY) override;
bool handleKeypress(Common::Event *event, bool printable = false) override;
-
+ int32 _scrollOffset;
+ int32 _frameWidth;
+ uint32 _cursorBlinkRate;
void setCursorChar(const char *character);
-
+ char *_cursorChar;
+ int32 _selEnd;
+ int32 _selStart;
+ BaseFont *_fontSelected;
UIEdit(BaseGame *inGame);
~UIEdit() override;
@@ -58,17 +64,6 @@ public:
bool scSetProperty(const char *name, ScValue *value) override;
bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name) override;
const char *scToString() override;
-private:
- uint32 _cursorBlinkRate;
- uint32 _lastBlinkTime;
- int32 _selEnd;
- int32 _selStart;
- int32 _scrollOffset;
- int32 _frameWidth;
- BaseFont *_fontSelected;
- int32 _maxLength;
- bool _cursorVisible;
- char *_cursorChar;
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/ui/ui_entity.cpp b/engines/wintermute/ui/ui_entity.cpp
index a4eadf797dc..829cc316ac2 100644
--- a/engines/wintermute/ui/ui_entity.cpp
+++ b/engines/wintermute/ui/ui_entity.cpp
@@ -187,7 +187,7 @@ bool UIEntity::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent, "ENTITY_CONTAINER\n");
buffer->putTextIndent(indent, "{\n");
- buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", getName());
+ buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", _name);
buffer->putTextIndent(indent + 2, "\n");
@@ -197,8 +197,8 @@ 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->getFilename()) {
- buffer->putTextIndent(indent + 2, "ENTITY=\"%s\"\n", _entity->getFilename());
+ if (_entity && _entity->_filename) {
+ buffer->putTextIndent(indent + 2, "ENTITY=\"%s\"\n", _entity->_filename);
}
buffer->putTextIndent(indent + 2, "\n");
diff --git a/engines/wintermute/ui/ui_entity.h b/engines/wintermute/ui/ui_entity.h
index 257d9ec0dcc..6b84fff8677 100644
--- a/engines/wintermute/ui/ui_entity.h
+++ b/engines/wintermute/ui/ui_entity.h
@@ -43,6 +43,7 @@ public:
bool display() override { return display(0, 0); }
bool display(int offsetX, int offsetY) override;
+ AdEntity *_entity;
bool setEntity(const char *filename);
// scripting interface
@@ -50,9 +51,6 @@ public:
bool scSetProperty(const char *name, ScValue *value) override;
bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name) override;
const char *scToString() override;
-
-private:
- AdEntity *_entity;
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/ui/ui_object.cpp b/engines/wintermute/ui/ui_object.cpp
index 586f309e613..df288fd8115 100644
--- a/engines/wintermute/ui/ui_object.cpp
+++ b/engines/wintermute/ui/ui_object.cpp
@@ -149,8 +149,6 @@ void UIObject::correctSize() {
}
}
-
-
//////////////////////////////////////////////////////////////////////////
// high level scripting interface
//////////////////////////////////////////////////////////////////////////
@@ -267,7 +265,7 @@ bool UIObject::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
else {
const char *findName = val->getString();
for (i = 0; i < win->_widgets.getSize(); i++) {
- if (scumm_stricmp(win->_widgets[i]->getName(), findName) == 0) {
+ if (scumm_stricmp(win->_widgets[i]->_name, findName) == 0) {
found = true;
break;
}
@@ -373,7 +371,7 @@ ScValue *UIObject::scGetProperty(const Common::String &name) {
// Name
//////////////////////////////////////////////////////////////////////////
else if (name == "Name") {
- _scValue->setString(getName());
+ _scValue->setString(_name);
return _scValue;
}
@@ -641,87 +639,21 @@ bool UIObject::persist(BasePersistenceManager *persistMgr) {
return STATUS_OK;
}
+//////////////////////////////////////////////////////////////////////////
+/*char *CUIObject::GetAccessCaption() {
+ if (m_AccessCaption)
+ return m_AccessCaption;
+ else {
+ if (m_Text)
+ return m_Text;
+ else
+ return GetCaption();
+ }
+}*/
+
//////////////////////////////////////////////////////////////////////////
bool UIObject::saveAsText(BaseDynamicBuffer *buffer, int indent) {
return STATUS_FAILED;
}
-int32 UIObject::getWidth() const {
- return _width;
-}
-
-// Has to be non-const to allow the virtual override to work,
-// as other getHeight()-functions currently have the potential
-// of having side-effects.
-int32 UIObject::getHeight() {
- return _height;
-}
-
-void UIObject::setWidth(int32 width) {
- assert(width >= 0);
- _width = width;
-}
-
-void UIObject::setHeight(int32 height) {
- assert(height >= 0);
- _height = height;
-}
-
-bool UIObject::isDisabled() const {
- return _disable;
-}
-
-bool UIObject::isVisible() const {
- return _visible;
-}
-
-void UIObject::setVisible(bool visible) {
- _visible = visible;
-}
-
-void UIObject::setDisabled(bool disable) {
- _disable = disable;
-}
-
-bool UIObject::hasSharedFonts() const {
- return _sharedFonts;
-}
-
-void UIObject::setSharedFonts(bool shared) {
- _sharedFonts = shared;
-}
-
-bool UIObject::hasSharedImages() const {
- return _sharedImages;
-}
-
-void UIObject::setSharedImages(bool shared) {
- _sharedImages = shared;
-}
-
-BaseSprite *UIObject::getImage() const {
- return _image;
-}
-
-void UIObject::setImage(BaseSprite *image) {
- _image = image;
-}
-
-bool UIObject::canFocus() const {
- return _canFocus;
-}
-
-void UIObject::setFont(BaseFont *font) {
- _font = font;
-}
-
-BaseFont *UIObject::getFont() {
- return _font;
-}
-
-BaseScriptHolder *UIObject::getListener() const {
- return _listenerObject;
-}
-
-
} // End of namespace Wintermute
diff --git a/engines/wintermute/ui/ui_object.h b/engines/wintermute/ui/ui_object.h
index 733b3ca6fff..76bb5fe224a 100644
--- a/engines/wintermute/ui/ui_object.h
+++ b/engines/wintermute/ui/ui_object.h
@@ -38,25 +38,38 @@ class UITiledImage;
class BaseFont;
class UIObject : public BaseObject {
public:
+ //virtual char *GetAccessCaption();
bool getTotalOffset(int *offsetX, int *offsetY);
+ bool _canFocus;
bool focus();
bool handleMouse(TMouseEvent event, TMouseButton button) override;
bool isFocused();
-
+ bool _parentNotify;
DECLARE_PERSISTENT(UIObject, BaseObject)
UIObject *_parent;
bool display() override { return display(0, 0); }
virtual bool display(int offsetX) { return display(offsetX, 0); }
virtual bool display(int offsetX, int offsetY);
virtual void correctSize();
+ bool _sharedFonts;
+ bool _sharedImages;
void setText(const char *text);
-
+ char *_text;
+ BaseFont *_font;
+ bool _visible;
+ UITiledImage *_back;
+ bool _disable;
UIObject(BaseGame *inGame = nullptr);
~UIObject() override;
+ int32 _width;
+ int32 _height;
+ TUIObjectType _type;
+ BaseSprite *_image;
void setListener(BaseScriptHolder *object, BaseScriptHolder *listenerObject, uint32 listenerParam);
- BaseScriptHolder *getListener() const;
-
+ BaseScriptHolder *_listenerParamObject;
+ uint32 _listenerParamDWORD;
+ BaseScriptHolder *_listenerObject;
UIObject *_focusedWidget;
bool saveAsText(BaseDynamicBuffer *buffer, int indent) override;
@@ -65,42 +78,6 @@ public:
bool scSetProperty(const char *name, ScValue *value) override;
bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name) override;
const char *scToString() override;
- TUIObjectType _type;
-
- int32 getWidth() const;
- int32 getHeight() override;
- void setHeight(int32 height);
- void setWidth(int32 width);
- bool isDisabled() const;
- void setDisabled(bool disable);
- bool isVisible() const;
- void setVisible(bool visible);
- bool hasSharedFonts() const;
- void setSharedFonts(bool shared);
- bool hasSharedImages() const;
- void setSharedImages(bool shared);
- BaseSprite *getImage() const;
- void setImage(BaseSprite *image);
- void setFont(BaseFont *font);
- BaseFont *getFont();
- bool canFocus() const;
-
-protected:
- BaseScriptHolder *_listenerParamObject;
- uint32 _listenerParamDWORD;
- BaseScriptHolder *_listenerObject;
- BaseSprite *_image;
- BaseFont *_font;
- bool _sharedFonts;
- bool _sharedImages;
- char *_text;
- bool _visible;
- bool _disable;
- int32 _width;
- int32 _height;
- bool _canFocus;
- bool _parentNotify;
- UITiledImage *_back;
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/ui/ui_text.cpp b/engines/wintermute/ui/ui_text.cpp
index 361c6d0b0fc..800175e9a50 100644
--- a/engines/wintermute/ui/ui_text.cpp
+++ b/engines/wintermute/ui/ui_text.cpp
@@ -68,7 +68,7 @@ bool UIText::display(int offsetX, int offsetY) {
BaseFont *font = _font;
if (!font) {
- font = _gameRef->getSystemFont();
+ font = _gameRef->_systemFont;
}
if (_back) {
@@ -321,7 +321,7 @@ bool UIText::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent, "STATIC\n");
buffer->putTextIndent(indent, "{\n");
- buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", getName());
+ buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", _name);
buffer->putTextIndent(indent + 2, "CAPTION=\"%s\"\n", getCaption());
buffer->putTextIndent(indent + 2, "\n");
diff --git a/engines/wintermute/ui/ui_text.h b/engines/wintermute/ui/ui_text.h
index 6bf3ef430a2..4a46ad04c97 100644
--- a/engines/wintermute/ui/ui_text.h
+++ b/engines/wintermute/ui/ui_text.h
@@ -34,15 +34,14 @@
namespace Wintermute {
class UIText : public UIObject {
-private:
- bool sizeToFit();
- TTextAlign _textAlign;
- TVerticalAlign _verticalAlign;
public:
+ bool sizeToFit();
bool display(int offsetX, int offsetY) override;
DECLARE_PERSISTENT(UIText, UIObject)
UIText(BaseGame *inGame = nullptr);
~UIText() override;
+ TTextAlign _textAlign;
+ TVerticalAlign _verticalAlign;
bool loadFile(const char *filename);
bool loadBuffer(char *buffer, bool complete = true);
bool saveAsText(BaseDynamicBuffer *buffer, int indent) override;
diff --git a/engines/wintermute/ui/ui_tiled_image.h b/engines/wintermute/ui/ui_tiled_image.h
index a50b0942c65..c199118597f 100644
--- a/engines/wintermute/ui/ui_tiled_image.h
+++ b/engines/wintermute/ui/ui_tiled_image.h
@@ -47,7 +47,6 @@ public:
bool display(int x, int y, int width, int height);
UITiledImage(BaseGame *inGame = nullptr);
~UITiledImage() override;
-private:
BaseSubFrame *_image;
Rect32 _upLeft;
Rect32 _upMiddle;
diff --git a/engines/wintermute/ui/ui_window.cpp b/engines/wintermute/ui/ui_window.cpp
index 51d873d99d2..0888be060e2 100644
--- a/engines/wintermute/ui/ui_window.cpp
+++ b/engines/wintermute/ui/ui_window.cpp
@@ -97,10 +97,10 @@ UIWindow::~UIWindow() {
//////////////////////////////////////////////////////////////////////////
void UIWindow::cleanup() {
delete _shieldWindow;
- delete _shieldButton;
- delete _viewport;
_shieldWindow = nullptr;
+ delete _shieldButton;
_shieldButton = nullptr;
+ delete _viewport;
_viewport = nullptr;
delete _backInactive;
@@ -141,8 +141,8 @@ bool UIWindow::display(int offsetX, int offsetY) {
}
_shieldButton->_posX = _shieldButton->_posY = 0;
- _shieldButton->setWidth(_gameRef->_renderer->getWidth());
- _shieldButton->setHeight(_gameRef->_renderer->getHeight());
+ _shieldButton->_width = _gameRef->_renderer->getWidth();
+ _shieldButton->_height = _gameRef->_renderer->getHeight();
_shieldButton->display();
}
@@ -167,7 +167,7 @@ bool UIWindow::display(int offsetX, int offsetY) {
_dragFrom.y = _gameRef->_mousePos.y;
}
- if (!_focusedWidget || (!_focusedWidget->canFocus() || _focusedWidget->isDisabled() || !_focusedWidget->isVisible())) {
+ if (!_focusedWidget || (!_focusedWidget->_canFocus || _focusedWidget->_disable || !_focusedWidget->_visible)) {
moveFocus();
}
@@ -215,7 +215,7 @@ bool UIWindow::display(int offsetX, int offsetY) {
}
if (!_transparent && !image) {
- _gameRef->_renderer->addRectToList(new BaseActiveRect(_gameRef, this, nullptr, _posX + offsetX, _posY + offsetY, _width, _height, 100, 100, false));
+ _gameRef->_renderer->_rectList.add(new BaseActiveRect(_gameRef, this, nullptr, _posX + offsetX, _posY + offsetY, _width, _height, 100, 100, false));
}
for (int32 i = 0; i < _widgets.getSize(); i++) {
@@ -527,7 +527,6 @@ bool UIWindow::loadBuffer(char *buffer, bool complete) {
}
break;
-
case TOKEN_TRANSPARENT:
parser.scanStr(params, "%b", &_transparent);
break;
@@ -586,7 +585,6 @@ bool UIWindow::loadBuffer(char *buffer, bool complete) {
parser.scanStr(params, "%d", &alpha);
break;
-
default:
if (DID_FAIL(_gameRef->windowLoadHook(this, &buffer, ¶ms))) {
cmd = PARSERR_GENERIC;
@@ -630,7 +628,7 @@ bool UIWindow::saveAsText(BaseDynamicBuffer *buffer, int indent) {
buffer->putTextIndent(indent, "WINDOW\n");
buffer->putTextIndent(indent, "{\n");
- buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", getName());
+ buffer->putTextIndent(indent + 2, "NAME=\"%s\"\n", _name);
buffer->putTextIndent(indent + 2, "CAPTION=\"%s\"\n", getCaption());
buffer->putTextIndent(indent + 2, "\n");
@@ -740,8 +738,8 @@ bool UIWindow::saveAsText(BaseDynamicBuffer *buffer, int indent) {
//////////////////////////////////////////////////////////////////////////
bool UIWindow::enableWidget(const char *name, bool enable) {
for (int32 i = 0; i < _widgets.getSize(); i++) {
- if (scumm_stricmp(_widgets[i]->getName(), name) == 0) {
- _widgets[i]->setDisabled(!enable);
+ if (scumm_stricmp(_widgets[i]->_name, name) == 0) {
+ _widgets[i]->_disable = !enable;
}
}
return STATUS_OK;
@@ -751,8 +749,8 @@ bool UIWindow::enableWidget(const char *name, bool enable) {
//////////////////////////////////////////////////////////////////////////
bool UIWindow::showWidget(const char *name, bool visible) {
for (int32 i = 0; i < _widgets.getSize(); i++) {
- if (scumm_stricmp(_widgets[i]->getName(), name) == 0) {
- _widgets[i]->setVisible(visible);
+ if (scumm_stricmp(_widgets[i]->_name, name) == 0) {
+ _widgets[i]->_visible = visible;
}
}
return STATUS_OK;
@@ -778,7 +776,7 @@ bool UIWindow::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
}
} else {
for (int32 i = 0; i < _widgets.getSize(); i++) {
- if (scumm_stricmp(_widgets[i]->getName(), val->getString()) == 0) {
+ if (scumm_stricmp(_widgets[i]->_name, val->getString()) == 0) {
stack->pushNative(_widgets[i], true);
return STATUS_OK;
}
@@ -1313,7 +1311,7 @@ bool UIWindow::moveFocus(bool forward) {
bool done = false;
while (numTries <= _widgets.getSize()) {
- if (_widgets[i] != _focusedWidget && _widgets[i]->canFocus() && _widgets[i]->isVisible() && !_widgets[i]->isDisabled()) {
+ if (_widgets[i] != _focusedWidget && _widgets[i]->_canFocus && _widgets[i]->_visible && !_widgets[i]->_disable) {
_focusedWidget = _widgets[i];
done = true;
break;
@@ -1344,6 +1342,7 @@ bool UIWindow::goExclusive() {
}
if (_mode == WINDOW_NORMAL) {
+ //Game->m_AccessMgr->SetActiveObject();
_ready = false;
_mode = WINDOW_EXCLUSIVE;
_visible = true;
@@ -1364,6 +1363,7 @@ bool UIWindow::goSystemExclusive() {
makeFreezable(false);
+ //Game->m_AccessMgr->SetActiveObject();
_mode = WINDOW_SYSTEM_EXCLUSIVE;
_ready = false;
_visible = true;
@@ -1395,7 +1395,7 @@ bool UIWindow::listen(BaseScriptHolder *param1, uint32 param2) {
switch (obj->_type) {
case UI_BUTTON:
- if (scumm_stricmp(obj->getName(), "close") == 0) {
+ if (scumm_stricmp(obj->_name, "close") == 0) {
close();
} else {
return BaseObject::listen(param1, param2);
@@ -1418,12 +1418,57 @@ void UIWindow::makeFreezable(bool freezable) {
BaseObject::makeFreezable(freezable);
}
+//////////////////////////////////////////////////////////////////////////
+/*CBObject *CUIWindow::GetNextAccessObject(CBObject *CurrObject) {
+ CBArray<CUIObject *, CUIObject *> Objects;
+ GetWindowObjects(Objects, true);
+
+ if (Objects.GetSize() == 0)
+ return NULL;
+ else {
+ if (CurrObject != NULL) {
+ for (int i = 0; i < Objects.GetSize(); i++) {
+ if (Objects[i] == CurrObject) {
+ if (i < Objects.GetSize() - 1)
+ return Objects[i + 1];
+ else
+ break;
+ }
+ }
+ }
+ return Objects[0];
+ }
+ return NULL;
+}*/
+
+//////////////////////////////////////////////////////////////////////////
+/*CBObject *CUIWindow::GetPrevAccessObject(CBObject *CurrObject) {
+ CBArray<CUIObject *, CUIObject *> Objects;
+ GetWindowObjects(Objects, true);
+
+ if (Objects.GetSize() == 0)
+ return NULL;
+ else {
+ if (CurrObject != NULL) {
+ for (int i = Objects.GetSize() - 1; i >= 0; i--) {
+ if (Objects[i] == CurrObject) {
+ if (i > 0)
+ return Objects[i - 1];
+ else
+ break;
+ }
+ }
+ }
+ return Objects[Objects.GetSize() - 1];
+ }
+ return NULL;
+}*/
//////////////////////////////////////////////////////////////////////////
bool UIWindow::getWindowObjects(BaseArray<UIObject *> &objects, bool interactiveOnly) {
for (int32 i = 0; i < _widgets.getSize(); i++) {
UIObject *control = _widgets[i];
- if (control->isDisabled() && interactiveOnly) {
+ if (control->_disable && interactiveOnly) {
continue;
}
@@ -1446,14 +1491,4 @@ bool UIWindow::getWindowObjects(BaseArray<UIObject *> &objects, bool interactive
return STATUS_OK;
}
-bool UIWindow::getInGame() const {
- return _inGame;
-}
-
-TWindowMode UIWindow::getMode() const {
- return _mode;
-}
-
-
-
} // End of namespace Wintermute
diff --git a/engines/wintermute/ui/ui_window.h b/engines/wintermute/ui/ui_window.h
index bbf2afdf09a..56c0478402e 100644
--- a/engines/wintermute/ui/ui_window.h
+++ b/engines/wintermute/ui/ui_window.h
@@ -38,31 +38,47 @@ class UIButton;
class BaseViewport;
class UIWindow : public UIObject {
public:
+ //CBObject *GetPrevAccessObject(CBObject *CurrObject);
+ //CBObject *GetNextAccessObject(CBObject *CurrObject);
bool getWindowObjects(BaseArray<UIObject *> &Objects, bool InteractiveOnly);
+ bool _pauseMusic;
void cleanup();
void makeFreezable(bool freezable) override;
-
+ BaseViewport *_viewport;
+ bool _clipContents;
+ bool _inGame;
+ bool _isMenu;
+ bool _fadeBackground;
+ uint32 _fadeColor;
bool handleMouseWheel(int32 delta) override;
-
+ UIWindow *_shieldWindow;
+ UIButton *_shieldButton;
bool close();
bool goSystemExclusive();
bool goExclusive();
+ TWindowMode _mode;
bool moveFocus(bool forward = true);
bool handleMouse(TMouseEvent Event, TMouseButton Button) override;
+ Point32 _dragFrom;
+ bool _dragging;
DECLARE_PERSISTENT(UIWindow, UIObject)
+ bool _transparent;
bool showWidget(const char *name, bool visible = true);
bool enableWidget(const char *name, bool enable = true);
-
+ Rect32 _titleRect;
+ Rect32 _dragRect;
bool display(int offsetX = 0, int offsetY = 0) override;
UIWindow(BaseGame *inGame);
~UIWindow() override;
bool handleKeypress(Common::Event *event, bool printable = false) override;
BaseArray<UIObject *> _widgets;
-
+ TTextAlign _titleAlign;
bool loadFile(const char *filename);
bool loadBuffer(char *buffer, bool complete = true);
-
+ UITiledImage *_backInactive;
+ BaseFont *_fontInactive;
+ BaseSprite *_imageInactive;
bool listen(BaseScriptHolder *param1, uint32 param2) override;
bool saveAsText(BaseDynamicBuffer *buffer, int indent) override;
@@ -71,30 +87,6 @@ public:
bool scSetProperty(const char *name, ScValue *value) override;
bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name) override;
const char *scToString() override;
-
- bool getInGame() const;
- TWindowMode getMode() const;
-
-private:
- bool _pauseMusic;
- BaseViewport *_viewport;
- bool _clipContents;
- bool _inGame;
- bool _isMenu;
- bool _fadeBackground;
- TWindowMode _mode;
- Point32 _dragFrom;
- bool _dragging;
- bool _transparent;
- uint32 _fadeColor;
- UIWindow *_shieldWindow;
- UIButton *_shieldButton;
- Rect32 _titleRect;
- Rect32 _dragRect;
- UITiledImage *_backInactive;
- BaseFont *_fontInactive;
- BaseSprite *_imageInactive;
- TTextAlign _titleAlign;
};
} // End of namespace Wintermute
diff --git a/engines/wintermute/video/video_subtitler.cpp b/engines/wintermute/video/video_subtitler.cpp
index 7e384d92a6e..b7a1e81a2a0 100644
--- a/engines/wintermute/video/video_subtitler.cpp
+++ b/engines/wintermute/video/video_subtitler.cpp
@@ -179,10 +179,10 @@ void VideoSubtitler::display() {
BaseFont *font;
- if (_gameRef->getVideoFont() == nullptr) {
- font = _gameRef->getSystemFont();
+ if (_gameRef->_videoFont == nullptr) {
+ font = _gameRef->_systemFont;
} else {
- font = _gameRef->getVideoFont();
+ font = _gameRef->_videoFont;
}
int textHeight = font->getTextHeight(
diff --git a/engines/wintermute/wintermute.cpp b/engines/wintermute/wintermute.cpp
index 9f436a4d5c9..03d0ece9cab 100644
--- a/engines/wintermute/wintermute.cpp
+++ b/engines/wintermute/wintermute.cpp
@@ -211,7 +211,7 @@ int WintermuteEngine::init() {
_game->initialize1();
// set gameId, for savegame-naming:
- _game->setGameTargetName(_targetName);
+ _game->_targetName = _targetName;
if (DID_FAIL(_game->loadSettings("startup.settings"))) {
_game->LOG(0, "Error loading game settings.");
@@ -305,11 +305,11 @@ int WintermuteEngine::messageLoop() {
// ***** flip
limiter.delayBeforeSwap();
- if (!_game->getSuspendedRendering()) {
+ if (!_game->_suspendedRendering) {
_game->_renderer->flip();
}
limiter.startFrame();
- if (_game->getIsLoading()) {
+ if (_game->_loading) {
_game->loadGame(_game->_scheduledLoadSlot);
}
}
More information about the Scummvm-git-logs
mailing list