aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/pet_control
diff options
context:
space:
mode:
authorPaul Gilbert2017-01-01 05:24:31 -0500
committerPaul Gilbert2017-01-01 05:24:31 -0500
commitd0d00f6beb9a2fab19455f653837af1b629d00da (patch)
tree7b92015c46e06490468da152b65374e61ce0b5a0 /engines/titanic/pet_control
parentab7a152c3a47427b606503ac3ee16abf0cb94bbe (diff)
downloadscummvm-rg350-d0d00f6beb9a2fab19455f653837af1b629d00da.tar.gz
scummvm-rg350-d0d00f6beb9a2fab19455f653837af1b629d00da.tar.bz2
scummvm-rg350-d0d00f6beb9a2fab19455f653837af1b629d00da.zip
TITANIC: Rename CPetText to CTextControl
The class is used in several areas outside of the PET, so it makes better sense to not have it in the pet_control/ folder and named so
Diffstat (limited to 'engines/titanic/pet_control')
-rw-r--r--engines/titanic/pet_control/pet_conversations.h6
-rw-r--r--engines/titanic/pet_control/pet_glyphs.cpp2
-rw-r--r--engines/titanic/pet_control/pet_glyphs.h4
-rw-r--r--engines/titanic/pet_control/pet_inventory.h6
-rw-r--r--engines/titanic/pet_control/pet_inventory_glyphs.cpp2
-rw-r--r--engines/titanic/pet_control/pet_inventory_glyphs.h2
-rw-r--r--engines/titanic/pet_control/pet_load.cpp2
-rw-r--r--engines/titanic/pet_control/pet_load.h2
-rw-r--r--engines/titanic/pet_control/pet_load_save.h4
-rw-r--r--engines/titanic/pet_control/pet_quit.cpp2
-rw-r--r--engines/titanic/pet_control/pet_quit.h8
-rw-r--r--engines/titanic/pet_control/pet_real_life.h6
-rw-r--r--engines/titanic/pet_control/pet_remote.cpp2
-rw-r--r--engines/titanic/pet_control/pet_remote.h6
-rw-r--r--engines/titanic/pet_control/pet_remote_glyphs.cpp36
-rw-r--r--engines/titanic/pet_control/pet_remote_glyphs.h36
-rw-r--r--engines/titanic/pet_control/pet_rooms.cpp2
-rw-r--r--engines/titanic/pet_control/pet_rooms.h6
-rw-r--r--engines/titanic/pet_control/pet_rooms_glyphs.cpp2
-rw-r--r--engines/titanic/pet_control/pet_rooms_glyphs.h2
-rw-r--r--engines/titanic/pet_control/pet_save.cpp2
-rw-r--r--engines/titanic/pet_control/pet_save.h2
-rw-r--r--engines/titanic/pet_control/pet_section.cpp4
-rw-r--r--engines/titanic/pet_control/pet_section.h4
-rw-r--r--engines/titanic/pet_control/pet_sound.cpp2
-rw-r--r--engines/titanic/pet_control/pet_sound.h12
-rw-r--r--engines/titanic/pet_control/pet_starfield.h4
-rw-r--r--engines/titanic/pet_control/pet_text.cpp491
-rw-r--r--engines/titanic/pet_control/pet_text.h285
-rw-r--r--engines/titanic/pet_control/pet_translation.cpp4
-rw-r--r--engines/titanic/pet_control/pet_translation.h8
31 files changed, 90 insertions, 866 deletions
diff --git a/engines/titanic/pet_control/pet_conversations.h b/engines/titanic/pet_control/pet_conversations.h
index c3508f62a8..37d216ed2f 100644
--- a/engines/titanic/pet_control/pet_conversations.h
+++ b/engines/titanic/pet_control/pet_conversations.h
@@ -24,7 +24,7 @@
#define TITANIC_PET_CONVERSATIONS_H
#include "titanic/pet_control/pet_section.h"
-#include "titanic/pet_control/pet_text.h"
+#include "titanic/gfx/text_control.h"
#include "titanic/pet_control/pet_gfx_element.h"
#include "titanic/true_talk/true_talk_manager.h"
@@ -48,8 +48,8 @@ private:
CPetGfxElement _splitter;
CPetGfxElement _npcIcons[9];
int _npcNum;
- CPetText _log;
- CPetText _textInput;
+ CTextControl _log;
+ CTextControl _textInput;
bool _logChanged;
int _field418;
CString _npcName;
diff --git a/engines/titanic/pet_control/pet_glyphs.cpp b/engines/titanic/pet_control/pet_glyphs.cpp
index ed043811ce..b42b87199b 100644
--- a/engines/titanic/pet_control/pet_glyphs.cpp
+++ b/engines/titanic/pet_control/pet_glyphs.cpp
@@ -39,7 +39,7 @@ void CPetGlyph::drawAt(CScreenManager *screenManager, const Point &pt, bool isHi
}
void CPetGlyph::updateTooltip() {
- CPetText *petText = getPetSection()->getText();
+ CTextControl *petText = getPetSection()->getText();
if (petText) {
petText->setColor(getPetSection()->getColor(0));
getTooltip(petText);
diff --git a/engines/titanic/pet_control/pet_glyphs.h b/engines/titanic/pet_control/pet_glyphs.h
index ac008c5ab0..6229d17994 100644
--- a/engines/titanic/pet_control/pet_glyphs.h
+++ b/engines/titanic/pet_control/pet_glyphs.h
@@ -35,7 +35,7 @@ namespace Titanic {
class CPetGlyphs;
class CPetSection;
-class CPetText;
+class CTextControl;
enum GlyphActionMode { ACTION_REMOVE = 0, ACTION_REMOVED = 1, ACTION_CHANGE = 2 };
@@ -177,7 +177,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text) {}
+ virtual void getTooltip(CTextControl *text) {}
/**
* Saves the data for the glyph
diff --git a/engines/titanic/pet_control/pet_inventory.h b/engines/titanic/pet_control/pet_inventory.h
index 7710ee0799..7efc0755d8 100644
--- a/engines/titanic/pet_control/pet_inventory.h
+++ b/engines/titanic/pet_control/pet_inventory.h
@@ -26,7 +26,7 @@
#include "titanic/support/simple_file.h"
#include "titanic/pet_control/pet_section.h"
#include "titanic/pet_control/pet_inventory_glyphs.h"
-#include "titanic/pet_control/pet_text.h"
+#include "titanic/gfx/text_control.h"
namespace Titanic {
@@ -35,7 +35,7 @@ namespace Titanic {
*/
class CPetInventory : public CPetSection {
private:
- CPetText _text;
+ CTextControl _text;
CPetInventoryGlyphs _items;
CGameObject *_itemBackgrounds[46];
CGameObject *_itemGlyphs[46];
@@ -134,7 +134,7 @@ public:
/**
* Get a reference to the tooltip text associated with the section
*/
- virtual CPetText *getText() { return &_text; }
+ virtual CTextControl *getText() { return &_text; }
/**
* Special retrieval of glyph background image
diff --git a/engines/titanic/pet_control/pet_inventory_glyphs.cpp b/engines/titanic/pet_control/pet_inventory_glyphs.cpp
index 74d769af6d..9d745d8806 100644
--- a/engines/titanic/pet_control/pet_inventory_glyphs.cpp
+++ b/engines/titanic/pet_control/pet_inventory_glyphs.cpp
@@ -143,7 +143,7 @@ bool CPetInventoryGlyph::dragGlyph(const Point &topLeft, CMouseDragStartMsg *msg
}
}
-void CPetInventoryGlyph::getTooltip(CPetText *text) {
+void CPetInventoryGlyph::getTooltip(CTextControl *text) {
if (text) {
text->setText("");
diff --git a/engines/titanic/pet_control/pet_inventory_glyphs.h b/engines/titanic/pet_control/pet_inventory_glyphs.h
index 508db67f2d..e843cf53f9 100644
--- a/engines/titanic/pet_control/pet_inventory_glyphs.h
+++ b/engines/titanic/pet_control/pet_inventory_glyphs.h
@@ -106,7 +106,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
/**
* Return whether the glyph is currently valid
diff --git a/engines/titanic/pet_control/pet_load.cpp b/engines/titanic/pet_control/pet_load.cpp
index 3d67cf6d71..81ea85874f 100644
--- a/engines/titanic/pet_control/pet_load.cpp
+++ b/engines/titanic/pet_control/pet_load.cpp
@@ -50,7 +50,7 @@ bool CPetLoad::MouseButtonUpMsg(const Point &pt) {
}
}
-void CPetLoad::getTooltip(CPetText *text) {
+void CPetLoad::getTooltip(CTextControl *text) {
text->setText("Load the game.");
}
diff --git a/engines/titanic/pet_control/pet_load.h b/engines/titanic/pet_control/pet_load.h
index 5669991b59..103477a2f5 100644
--- a/engines/titanic/pet_control/pet_load.h
+++ b/engines/titanic/pet_control/pet_load.h
@@ -47,7 +47,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
/**
* Highlights a save slot
diff --git a/engines/titanic/pet_control/pet_load_save.h b/engines/titanic/pet_control/pet_load_save.h
index 26ddec0ff9..5bdb2b5485 100644
--- a/engines/titanic/pet_control/pet_load_save.h
+++ b/engines/titanic/pet_control/pet_load_save.h
@@ -24,7 +24,7 @@
#define TITANIC_PET_LOAD_SAVE_H
#include "titanic/pet_control/pet_glyphs.h"
-#include "titanic/pet_control/pet_text.h"
+#include "titanic/gfx/text_control.h"
namespace Titanic {
@@ -52,7 +52,7 @@ private:
*/
bool isSlotHighlighted(int index, const Point &pt);
protected:
- CPetText _slotNames[SAVEGAME_SLOTS_COUNT];
+ CTextControl _slotNames[SAVEGAME_SLOTS_COUNT];
bool _slotInUse[SAVEGAME_SLOTS_COUNT];
CPetGfxElement _btnLoadSave;
CPetGfxElement _gutter;
diff --git a/engines/titanic/pet_control/pet_quit.cpp b/engines/titanic/pet_control/pet_quit.cpp
index a6fb22d7e1..0d94474f99 100644
--- a/engines/titanic/pet_control/pet_quit.cpp
+++ b/engines/titanic/pet_control/pet_quit.cpp
@@ -83,7 +83,7 @@ bool CPetQuit::MouseButtonUpMsg(const Point &pt) {
}
}
-void CPetQuit::getTooltip(CPetText *text) {
+void CPetQuit::getTooltip(CTextControl *text) {
text->setText("Quit the game.");
}
diff --git a/engines/titanic/pet_control/pet_quit.h b/engines/titanic/pet_control/pet_quit.h
index b775000933..7eeedaf701 100644
--- a/engines/titanic/pet_control/pet_quit.h
+++ b/engines/titanic/pet_control/pet_quit.h
@@ -25,13 +25,13 @@
#include "titanic/pet_control/pet_gfx_element.h"
#include "titanic/pet_control/pet_glyphs.h"
-#include "titanic/pet_control/pet_text.h"
+#include "titanic/gfx/text_control.h"
namespace Titanic {
class CPetQuit : public CPetGlyph {
private:
- CPetText _text;
+ CTextControl _text;
CPetGfxElement _btnYes;
public:
/**
@@ -62,12 +62,12 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
/**
* Get a reference to the tooltip text associated with the section
*/
- virtual CPetText *getText() { return &_text; }
+ virtual CTextControl *getText() { return &_text; }
};
} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_real_life.h b/engines/titanic/pet_control/pet_real_life.h
index 7c7101a84b..294f9a3f9f 100644
--- a/engines/titanic/pet_control/pet_real_life.h
+++ b/engines/titanic/pet_control/pet_real_life.h
@@ -25,7 +25,7 @@
#include "titanic/pet_control/pet_section.h"
#include "titanic/pet_control/pet_glyphs.h"
-#include "titanic/pet_control/pet_text.h"
+#include "titanic/gfx/text_control.h"
namespace Titanic {
@@ -35,7 +35,7 @@ class CPetSaveGlyphs : public CPetGlyphs {
class CPetRealLife : public CPetSection {
private:
CPetGlyphs _glyphs;
- CPetText _text;
+ CTextControl _text;
private:
/**
* Does setup
@@ -124,7 +124,7 @@ public:
/**
* Get a reference to the tooltip text associated with the section
*/
- virtual CPetText *getText() { return &_text; }
+ virtual CTextControl *getText() { return &_text; }
};
diff --git a/engines/titanic/pet_control/pet_remote.cpp b/engines/titanic/pet_control/pet_remote.cpp
index 3f00ce5066..0293ec93a1 100644
--- a/engines/titanic/pet_control/pet_remote.cpp
+++ b/engines/titanic/pet_control/pet_remote.cpp
@@ -202,7 +202,7 @@ void CPetRemote::enterRoom(CRoomItem *room) {
}
}
-CPetText *CPetRemote::getText() {
+CTextControl *CPetRemote::getText() {
return &_text;
}
diff --git a/engines/titanic/pet_control/pet_remote.h b/engines/titanic/pet_control/pet_remote.h
index 9cd9c1e9d7..008c6459df 100644
--- a/engines/titanic/pet_control/pet_remote.h
+++ b/engines/titanic/pet_control/pet_remote.h
@@ -27,7 +27,7 @@
#include "titanic/pet_control/pet_section.h"
#include "titanic/pet_control/pet_glyphs.h"
#include "titanic/pet_control/pet_remote_glyphs.h"
-#include "titanic/pet_control/pet_text.h"
+#include "titanic/gfx/text_control.h"
namespace Titanic {
@@ -45,7 +45,7 @@ private:
CPetGfxElement _send;
CPetGfxElement _receive;
CPetGfxElement _call;
- CPetText _text;
+ CTextControl _text;
private:
/**
* Setup the control
@@ -137,7 +137,7 @@ public:
/**
* Get a reference to the tooltip text associated with the section
*/
- virtual CPetText *getText();
+ virtual CTextControl *getText();
/**
* Get an element from the section by a designated Id
diff --git a/engines/titanic/pet_control/pet_remote_glyphs.cpp b/engines/titanic/pet_control/pet_remote_glyphs.cpp
index f0e71d31ee..7f52ca7ee9 100644
--- a/engines/titanic/pet_control/pet_remote_glyphs.cpp
+++ b/engines/titanic/pet_control/pet_remote_glyphs.cpp
@@ -81,7 +81,7 @@ bool CBasicRemoteGlyph::MouseButtonUpMsg(const Point &pt) {
return false;
}
-void CBasicRemoteGlyph::getTooltip(CPetText *text) {
+void CBasicRemoteGlyph::getTooltip(CTextControl *text) {
text->setText(_tooltip);
}
@@ -160,7 +160,7 @@ bool CRemoteGotoGlyph::MouseButtonUpMsg(const Point &pt) {
return true;
}
-void CRemoteGotoGlyph::getTooltip(CPetText *text) {
+void CRemoteGotoGlyph::getTooltip(CTextControl *text) {
text->setText(_tooltip);
}
@@ -216,7 +216,7 @@ bool CTelevisionControlGlyph::MouseButtonUpMsg(const Point &pt) {
return false;
}
-void CTelevisionControlGlyph::getTooltip(CPetText *text) {
+void CTelevisionControlGlyph::getTooltip(CTextControl *text) {
text->setText(TELEVISION_CONTROL);
}
@@ -280,7 +280,7 @@ bool CEntertainmentDeviceGlyph::MouseButtonUpMsg(const Point &pt) {
return false;
}
-void CEntertainmentDeviceGlyph::getTooltip(CPetText *text) {
+void CEntertainmentDeviceGlyph::getTooltip(CTextControl *text) {
text->setText(OPERATE_ENTERTAINMENT);
}
@@ -334,7 +334,7 @@ bool COperateLightsGlyph::MouseButtonUpMsg(const Point &pt) {
return true;
}
-void COperateLightsGlyph::getTooltip(CPetText *text) {
+void COperateLightsGlyph::getTooltip(CTextControl *text) {
text->setText(OPERATE_LIGHTS);
}
@@ -346,7 +346,7 @@ bool CDeployFloralGlyph::setup(CPetControl *petControl, CPetGlyphs *owner) {
return true;
}
-void CDeployFloralGlyph::getTooltip(CPetText *text) {
+void CDeployFloralGlyph::getTooltip(CTextControl *text) {
text->setText(DEPLOY_FLORAL_ENHANCEMENT);
}
@@ -359,7 +359,7 @@ bool CDeployFullyRelaxationGlyph::setup(CPetControl *petControl, CPetGlyphs *own
return true;
}
-void CDeployFullyRelaxationGlyph::getTooltip(CPetText *text) {
+void CDeployFullyRelaxationGlyph::getTooltip(CTextControl *text) {
text->setText(DEPLOY_FULLY_RELAXATION);
}
@@ -371,7 +371,7 @@ bool CDeployComfortGlyph::setup(CPetControl *petControl, CPetGlyphs *owner) {
return true;
}
-void CDeployComfortGlyph::getTooltip(CPetText *text) {
+void CDeployComfortGlyph::getTooltip(CTextControl *text) {
text->setText(DEPLOY_COMFORT_WORKSTATION);
}
@@ -383,7 +383,7 @@ bool CDeployMinorStorageGlyph::setup(CPetControl *petControl, CPetGlyphs *owner)
return true;
}
-void CDeployMinorStorageGlyph::getTooltip(CPetText *text) {
+void CDeployMinorStorageGlyph::getTooltip(CTextControl *text) {
text->setText(DEPLOY_MINOR_STORAGE);
}
@@ -395,7 +395,7 @@ bool CDeployMajorRelaxationGlyph::setup(CPetControl *petControl, CPetGlyphs *own
return true;
}
-void CDeployMajorRelaxationGlyph::getTooltip(CPetText *text) {
+void CDeployMajorRelaxationGlyph::getTooltip(CTextControl *text) {
text->setText(DEPLOY_MAJOR_RELAXATION);
}
@@ -407,7 +407,7 @@ bool CInflateRelaxationGlyph::setup(CPetControl *petControl, CPetGlyphs *owner)
return true;
}
-void CInflateRelaxationGlyph::getTooltip(CPetText *text) {
+void CInflateRelaxationGlyph::getTooltip(CTextControl *text) {
text->setText(INFLATE_RELAXATION_DEVICE);
}
@@ -419,7 +419,7 @@ bool CDeployMaintenanceGlyph::setup(CPetControl *petControl, CPetGlyphs *owner)
return true;
}
-void CDeployMaintenanceGlyph::getTooltip(CPetText *text) {
+void CDeployMaintenanceGlyph::getTooltip(CTextControl *text) {
text->setText(DEPLOY_MAINTENANCE_HUB);
}
@@ -431,7 +431,7 @@ bool CDeployWorkSurfaceGlyph::setup(CPetControl *petControl, CPetGlyphs *owner)
return true;
}
-void CDeployWorkSurfaceGlyph::getTooltip(CPetText *text) {
+void CDeployWorkSurfaceGlyph::getTooltip(CTextControl *text) {
text->setText(DEPLOY_EXECUTIVE_SURFACE);
}
@@ -443,7 +443,7 @@ bool CDeployMinorRelaxationGlyph::setup(CPetControl *petControl, CPetGlyphs *own
return true;
}
-void CDeployMinorRelaxationGlyph::getTooltip(CPetText *text) {
+void CDeployMinorRelaxationGlyph::getTooltip(CTextControl *text) {
text->setText(DEPLOY_MINOR_RELAXATION);
}
@@ -455,7 +455,7 @@ bool CDeploySinkGlyph::setup(CPetControl *petControl, CPetGlyphs *owner) {
return true;
}
-void CDeploySinkGlyph::getTooltip(CPetText *text) {
+void CDeploySinkGlyph::getTooltip(CTextControl *text) {
text->setText(DEPLOY_SINK);
}
@@ -467,7 +467,7 @@ bool CDeployMajorStorageGlyph::setup(CPetControl *petControl, CPetGlyphs *owner)
return true;
}
-void CDeployMajorStorageGlyph::getTooltip(CPetText *text) {
+void CDeployMajorStorageGlyph::getTooltip(CTextControl *text) {
text->setText(DEPLOY_MAJOR_STORAGE);
}
@@ -515,7 +515,7 @@ bool CSuccubusDeliveryGlyph::MouseButtonUpMsg(const Point &pt) {
return true;
}
-void CSuccubusDeliveryGlyph::getTooltip(CPetText *text) {
+void CSuccubusDeliveryGlyph::getTooltip(CTextControl *text) {
text->setText(SUCCUBUS_DELIVERY_SYSTEM);
}
@@ -554,7 +554,7 @@ bool CNavigationControllerGlyph::MouseButtonUpMsg(const Point &pt) {
return true;
}
-void CNavigationControllerGlyph::getTooltip(CPetText *text) {
+void CNavigationControllerGlyph::getTooltip(CTextControl *text) {
text->setText(NAVIGATION_CONTROLLER);
}
diff --git a/engines/titanic/pet_control/pet_remote_glyphs.h b/engines/titanic/pet_control/pet_remote_glyphs.h
index 691a70f609..0a035ec03a 100644
--- a/engines/titanic/pet_control/pet_remote_glyphs.h
+++ b/engines/titanic/pet_control/pet_remote_glyphs.h
@@ -116,7 +116,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
class CToggleRemoteGlyph : public CPetRemoteGlyph {
@@ -181,7 +181,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
class CSummonElevatorGlyph : public CBasicRemoteGlyph {
@@ -225,7 +225,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
class CEntertainmentDeviceGlyph : public CToggleRemoteGlyph {
@@ -259,7 +259,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
@@ -293,7 +293,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
class CDeployFloralGlyph : public CToggleRemoteGlyph {
@@ -320,7 +320,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
class CDeployFullyRelaxationGlyph : public CToggleRemoteGlyph {
@@ -347,7 +347,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
class CDeployComfortGlyph : public CToggleRemoteGlyph {
@@ -374,7 +374,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
class CDeployMinorStorageGlyph : public CToggleRemoteGlyph {
@@ -401,7 +401,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
class CDeployMajorRelaxationGlyph : public CToggleRemoteGlyph {
@@ -428,7 +428,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
class CInflateRelaxationGlyph : public CToggleRemoteGlyph {
@@ -455,7 +455,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
class CDeployMaintenanceGlyph : public CToggleRemoteGlyph {
@@ -482,7 +482,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
class CDeployWorkSurfaceGlyph : public CToggleRemoteGlyph {
@@ -509,7 +509,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
class CDeployMinorRelaxationGlyph : public CToggleRemoteGlyph {
@@ -536,7 +536,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
class CDeploySinkGlyph : public CToggleRemoteGlyph {
@@ -563,7 +563,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
class CDeployMajorStorageGlyph : public CToggleRemoteGlyph {
@@ -590,7 +590,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
class CSuccubusDeliveryGlyph : public CPetRemoteGlyph {
@@ -623,7 +623,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
class CNavigationControllerGlyph : public CPetRemoteGlyph {
@@ -657,7 +657,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
class CGotoBottomOfWellGlyph : public CRemoteGotoGlyph {
diff --git a/engines/titanic/pet_control/pet_rooms.cpp b/engines/titanic/pet_control/pet_rooms.cpp
index c00a7ca811..88d9df15cd 100644
--- a/engines/titanic/pet_control/pet_rooms.cpp
+++ b/engines/titanic/pet_control/pet_rooms.cpp
@@ -170,7 +170,7 @@ void CPetRooms::enterRoom(CRoomItem *room) {
resetHighlight();
}
-CPetText *CPetRooms::getText() {
+CTextControl *CPetRooms::getText() {
return &_text;
}
diff --git a/engines/titanic/pet_control/pet_rooms.h b/engines/titanic/pet_control/pet_rooms.h
index 19c97c0d4e..6b71359ce6 100644
--- a/engines/titanic/pet_control/pet_rooms.h
+++ b/engines/titanic/pet_control/pet_rooms.h
@@ -24,7 +24,7 @@
#define TITANIC_PET_ROOMS_H
#include "titanic/pet_control/pet_section.h"
-#include "titanic/pet_control/pet_text.h"
+#include "titanic/gfx/text_control.h"
#include "titanic/pet_control/pet_rooms_glyphs.h"
#include "titanic/game_location.h"
@@ -43,7 +43,7 @@ private:
CGameObject *_chevRightOnLit;
CGameObject *_chevRightOffLit;
CPetGfxElement _plinth;
- CPetText _text;
+ CTextControl _text;
int _floorNum;
int _elevatorNum;
int _roomNum;
@@ -141,7 +141,7 @@ public:
/**
* Get a reference to the tooltip text associated with the section
*/
- virtual CPetText *getText();
+ virtual CTextControl *getText();
/**
* Special retrieval of glyph background image
diff --git a/engines/titanic/pet_control/pet_rooms_glyphs.cpp b/engines/titanic/pet_control/pet_rooms_glyphs.cpp
index 2197713fa1..a69704c7a5 100644
--- a/engines/titanic/pet_control/pet_rooms_glyphs.cpp
+++ b/engines/titanic/pet_control/pet_rooms_glyphs.cpp
@@ -141,7 +141,7 @@ bool CPetRoomsGlyph::dragGlyph(const Point &topLeft, CMouseDragStartMsg *msg) {
return false;
}
-void CPetRoomsGlyph::getTooltip(CPetText *text) {
+void CPetRoomsGlyph::getTooltip(CTextControl *text) {
CRoomFlags roomFlags(_roomFlags);
CPetRooms *owner = static_cast<CPetRooms *>(getPetSection());
diff --git a/engines/titanic/pet_control/pet_rooms_glyphs.h b/engines/titanic/pet_control/pet_rooms_glyphs.h
index 6c51b6f875..3a43bdc06c 100644
--- a/engines/titanic/pet_control/pet_rooms_glyphs.h
+++ b/engines/titanic/pet_control/pet_rooms_glyphs.h
@@ -89,7 +89,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
/**
* Saves the data for the glyph
diff --git a/engines/titanic/pet_control/pet_save.cpp b/engines/titanic/pet_control/pet_save.cpp
index 60afa11ab4..00dbfa6b4a 100644
--- a/engines/titanic/pet_control/pet_save.cpp
+++ b/engines/titanic/pet_control/pet_save.cpp
@@ -64,7 +64,7 @@ void CPetSave::highlightCurrent(const Point &pt) {
highlightSave(_savegameSlotNum);
}
-void CPetSave::getTooltip(CPetText *text) {
+void CPetSave::getTooltip(CTextControl *text) {
text->setText("Save the game.");
}
diff --git a/engines/titanic/pet_control/pet_save.h b/engines/titanic/pet_control/pet_save.h
index 39a25eb087..9b3c11566f 100644
--- a/engines/titanic/pet_control/pet_save.h
+++ b/engines/titanic/pet_control/pet_save.h
@@ -57,7 +57,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
/**
* Called on a highlighted item when PET area is entered
diff --git a/engines/titanic/pet_control/pet_section.cpp b/engines/titanic/pet_control/pet_section.cpp
index aced697705..2c2238e3f9 100644
--- a/engines/titanic/pet_control/pet_section.cpp
+++ b/engines/titanic/pet_control/pet_section.cpp
@@ -39,7 +39,7 @@ static const uint PALETTE3[5] = {
};
void CPetSection::displayMessage(const CString &msg) {
- CPetText *text = getText();
+ CTextControl *text = getText();
if (text) {
text->setColor(getColor(1));
@@ -64,7 +64,7 @@ void CPetSection::removeText(int duration) {
}
void CPetSection::removeText() {
- CPetText *text = getText();
+ CTextControl *text = getText();
if (text)
text->setup();
}
diff --git a/engines/titanic/pet_control/pet_section.h b/engines/titanic/pet_control/pet_section.h
index c68aa90411..e245d5176b 100644
--- a/engines/titanic/pet_control/pet_section.h
+++ b/engines/titanic/pet_control/pet_section.h
@@ -35,7 +35,7 @@ enum PetArea {
class CPetControl;
class CPetElement;
-class CPetText;
+class CTextControl;
class CScreenManager;
class CRoomItem;
@@ -170,7 +170,7 @@ public:
/**
* Get a reference to the tooltip text associated with the section
*/
- virtual CPetText *getText() { return nullptr; }
+ virtual CTextControl *getText() { return nullptr; }
/**
* Removes text after a given duration
diff --git a/engines/titanic/pet_control/pet_sound.cpp b/engines/titanic/pet_control/pet_sound.cpp
index e9958c67be..f4d45038e9 100644
--- a/engines/titanic/pet_control/pet_sound.cpp
+++ b/engines/titanic/pet_control/pet_sound.cpp
@@ -275,7 +275,7 @@ bool CPetSound::MouseButtonUpMsg(const Point &pt) {
return true;
}
-void CPetSound::getTooltip(CPetText *text) {
+void CPetSound::getTooltip(CTextControl *text) {
text->setText("Change the volume settings.");
}
diff --git a/engines/titanic/pet_control/pet_sound.h b/engines/titanic/pet_control/pet_sound.h
index c4b663ad44..fed4f43f92 100644
--- a/engines/titanic/pet_control/pet_sound.h
+++ b/engines/titanic/pet_control/pet_sound.h
@@ -25,7 +25,7 @@
#include "titanic/pet_control/pet_glyphs.h"
#include "titanic/pet_control/pet_gfx_element.h"
-#include "titanic/pet_control/pet_text.h"
+#include "titanic/gfx/text_control.h"
#include "titanic/pet_control/pet_slider.h"
namespace Titanic {
@@ -39,10 +39,10 @@ private:
CPetSlider _musicVolume;
CPetSlider _parrotVolume;
CPetSlider _speechVolume;
- CPetText _textMasterVolume;
- CPetText _textMusicVolume;
- CPetText _textParrotVolume;
- CPetText _textSpeechVolume;
+ CTextControl _textMasterVolume;
+ CTextControl _textMusicVolume;
+ CTextControl _textParrotVolume;
+ CTextControl _textSpeechVolume;
CPetSlider *_draggingSlider;
int _draggingSliderNum;
private:
@@ -96,7 +96,7 @@ public:
/**
* Returns the tooltip text for when the glyph is selected
*/
- virtual void getTooltip(CPetText *text);
+ virtual void getTooltip(CTextControl *text);
};
} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_starfield.h b/engines/titanic/pet_control/pet_starfield.h
index 6c47f47d67..ec96fb93ef 100644
--- a/engines/titanic/pet_control/pet_starfield.h
+++ b/engines/titanic/pet_control/pet_starfield.h
@@ -24,7 +24,7 @@
#define TITANIC_PET_STARFIELD_H
#include "titanic/pet_control/pet_section.h"
-#include "titanic/pet_control/pet_text.h"
+#include "titanic/gfx/text_control.h"
#include "titanic/pet_control/pet_gfx_element.h"
namespace Titanic {
@@ -39,7 +39,7 @@ private:
CPetGfxElement _leds[6];
Rect _rect1;
int _field18C;
- CPetText _text;
+ CTextControl _text;
bool _photoOn;
bool _hasReference;
private:
diff --git a/engines/titanic/pet_control/pet_text.cpp b/engines/titanic/pet_control/pet_text.cpp
deleted file mode 100644
index 05038d2fd0..0000000000
--- a/engines/titanic/pet_control/pet_text.cpp
+++ /dev/null
@@ -1,491 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software(0), you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation(0), either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY(0), without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program(0), if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#include "titanic/pet_control/pet_text.h"
-#include "titanic/titanic.h"
-
-namespace Titanic {
-
-CPetText::CPetText(uint count) :
- _stringsMerged(false), _maxCharsPerLine(-1), _lineCount(0),
- _displayEndCharIndex(-1), _unused1(0), _unused2(0), _unused3(0),
- _backR(0xff), _backG(0xff), _backB(0xff),
- _textR(0), _textG(0), _textB(200),
- _fontNumber(0), _npcFlag(0), _npcId(0), _hasBorder(true),
- _scrollTop(0), _textCursor(nullptr) {
- setupArrays(count);
-}
-
-void CPetText::setupArrays(int count) {
- freeArrays();
- if (count < 10 || count > 60)
- count = 10;
- _array.resize(count);
-}
-
-void CPetText::freeArrays() {
- _array.clear();
-}
-
-void CPetText::setup() {
- for (int idx = 0; idx < (int)_array.size(); ++idx) {
- _array[idx]._line.clear();
- setLineColor(idx, _textR, _textG, _textB);
- _array[idx]._string3.clear();
- }
-
- _lineCount = 0;
- _stringsMerged = false;
-}
-
-void CPetText::setLineColor(uint lineNum, uint col) {
- setLineColor(lineNum, col & 0xff, (col >> 8) & 0xff, (col >> 16) & 0xff);
-}
-
-void CPetText::setLineColor(uint lineNum, byte r, byte g, byte b) {
- _array[lineNum]._rgb = getColorText(r, g, b);
- _stringsMerged = false;
-}
-
-CString CPetText::getColorText(byte r, byte g, byte b) {
- char buffer[6];
- if (!r)
- r = 1;
- if (!g)
- g = 1;
- if (!b)
- b = 1;
-
- buffer[0] = TEXTCMD_SET_COLOR;
- buffer[1] = r;
- buffer[2] = g;
- buffer[3] = b;
- buffer[4] = TEXTCMD_SET_COLOR;
- buffer[5] = '\0';
-
- return CString(buffer);
-}
-
-void CPetText::load(SimpleFile *file, int param) {
- if (!param) {
- uint numLines = file->readNumber();
- int charsPerLine = file->readNumber();
- uint count = file->readNumber();
- _bounds = file->readRect();
- _unused1 = file->readNumber();
- _unused2 = file->readNumber();
- _unused3 = file->readNumber();
- _backR = file->readNumber();
- _backG = file->readNumber();
- _backB = file->readNumber();
- _textR = file->readNumber();
- _textG = file->readNumber();
- _textB = file->readNumber();
- _hasBorder = file->readNumber() != 0;
- _scrollTop = file->readNumber();
-
- setMaxCharsPerLine(charsPerLine);
- resize(numLines);
- _lineCount = (count == 0) ? 0 : count - 1;
-
- assert(_array.size() >= count);
- for (uint idx = 0; idx < count; ++idx) {
- _array[idx]._line = file->readString();
- _array[idx]._rgb = file->readString();
- _array[idx]._string3 = file->readString();
- }
- }
-}
-
-void CPetText::save(SimpleFile *file, int indent) {
- int numLines = _lineCount + 1;
-
- file->writeNumberLine(_array.size(), indent);
- file->writeNumberLine(_maxCharsPerLine, indent);
- file->writeNumberLine(numLines, indent);
-
- file->writeRect(_bounds, indent);
- file->writeNumberLine(_unused1, indent);
- file->writeNumberLine(_unused2, indent);
- file->writeNumberLine(_unused3, indent);
- file->writeNumberLine(_backR, indent);
- file->writeNumberLine(_backG, indent);
- file->writeNumberLine(_backB, indent);
- file->writeNumberLine(_textR, indent);
- file->writeNumberLine(_textG, indent);
- file->writeNumberLine(_textB, indent);
- file->writeNumberLine(_hasBorder, indent);
- file->writeNumberLine(_scrollTop, indent);
-
- for (int idx = 0; idx < numLines; ++idx) {
- file->writeQuotedLine(_array[idx]._line, indent);
- file->writeQuotedLine(_array[idx]._rgb, indent);
- file->writeQuotedLine(_array[idx]._string3, indent);
- }
-}
-
-void CPetText::draw(CScreenManager *screenManager) {
- Rect tempRect = _bounds;
-
- if (_hasBorder) {
- // Create border effect
- // Top edge
- tempRect.bottom = tempRect.top + 1;
- screenManager->fillRect(SURFACE_BACKBUFFER, &tempRect, _backR, _backG, _backB);
-
- // Bottom edge
- tempRect.top = _bounds.bottom - 1;
- tempRect.bottom = _bounds.bottom;
- screenManager->fillRect(SURFACE_BACKBUFFER, &tempRect, _backR, _backG, _backB);
-
- // Left edge
- tempRect = _bounds;
- tempRect.right = tempRect.left + 1;
- screenManager->fillRect(SURFACE_BACKBUFFER, &tempRect, _backR, _backG, _backB);
-
- // Right edge
- tempRect = _bounds;
- tempRect.left = tempRect.right - 1;
- screenManager->fillRect(SURFACE_BACKBUFFER, &tempRect, _backR, _backG, _backB);
- }
-
- getTextHeight(screenManager);
-
- tempRect = _bounds;
- tempRect.grow(-2);
- int oldFontNumber = screenManager->setFontNumber(_fontNumber);
-
- _displayEndCharIndex = screenManager->writeString(SURFACE_BACKBUFFER, tempRect, _scrollTop, _lines, _textCursor);
-
- screenManager->setFontNumber(oldFontNumber);
-}
-
-void CPetText::mergeStrings() {
- if (!_stringsMerged) {
- _lines.clear();
-
- for (int idx = 0; idx <= _lineCount; ++idx) {
- CString line = _array[idx]._rgb + _array[idx]._string3 +
- _array[idx]._line + "\n";
- _lines += line;
- }
-
- _stringsMerged = true;
- }
-}
-
-void CPetText::resize(uint count) {
- if (!count || _array.size() == count)
- return;
- _array.clear();
- _array.resize(count);
-}
-
-CString CPetText::getText() const {
- CString result = "";
- for (int idx = 0; idx <= _lineCount; ++idx)
- result += _array[idx]._line;
-
- return result;
-}
-
-void CPetText::setText(const CString &str) {
- setup();
- appendText(str);
-}
-
-void CPetText::setText(StringId stringId) {
- setText(g_vm->_strings[stringId]);
-}
-
-void CPetText::appendText(const CString &str) {
- int lineSize = _array[_lineCount]._line.size();
- int strSize = str.size();
-
- if (_maxCharsPerLine == -1) {
- // No limit on horizontal characters, so append string to current line
- _array[_lineCount]._line += str;
- } else if ((lineSize + strSize) <= _maxCharsPerLine) {
- // New string fits into line, so add it on
- _array[_lineCount]._line += str;
- } else {
- // Only add part of the str up to the maximum allowed limit for line
- _array[_lineCount]._line += str.left(_maxCharsPerLine - lineSize);
- }
-
- updateStr3(_lineCount);
- _stringsMerged = false;
-}
-
-void CPetText::setColor(uint col) {
- _textR = col & 0xff;
- _textG = (col >> 8) & 0xff;
- _textB = (col >> 16) & 0xff;
-}
-
-void CPetText::setColor(byte r, byte g, byte b) {
- _textR = r;
- _textG = g;
- _textB = b;
-}
-
-void CPetText::remapColors(uint count, uint *srcColors, uint *destColors) {
- for (int lineNum = 0; lineNum <= _lineCount; ++lineNum) {
- if (_array[lineNum]._rgb.empty())
- continue;
-
- // Get the rgb values
- uint r = _array[lineNum]._rgb[1];
- uint g = _array[lineNum]._rgb[2];
- uint b = _array[lineNum]._rgb[3];
- uint color = r | (g << 8) | (b << 16);
-
- for (uint index = 0; index < count; ++index) {
- if (color == srcColors[index]) {
- // Found a match, so replace the color
- setLineColor(lineNum, destColors[lineNum]);
- break;
- }
- }
- }
-
- _stringsMerged = false;
-}
-
-void CPetText::setMaxCharsPerLine(int maxChars) {
- if (maxChars >= -1 && maxChars < 257)
- _maxCharsPerLine = maxChars;
-}
-
-void CPetText::updateStr3(int lineNum) {
- if (_npcFlag > 0 && _npcId > 0) {
- char line[5];
- line[0] = line[3] = TEXTCMD_NPC;
- line[1] = _npcFlag;
- line[2] = _npcId;
- line[4] = '\0';
- _array[lineNum]._string3 = CString(line);
-
- _stringsMerged = false;
- _npcFlag = _npcId = 0;
- }
-}
-
-int CPetText::getTextWidth(CScreenManager *screenManager) {
- mergeStrings();
- int oldFontNumber = screenManager->setFontNumber(_fontNumber);
- int textWidth = screenManager->stringWidth(_lines);
- screenManager->setFontNumber(oldFontNumber);
-
- return textWidth;
-}
-
-int CPetText::getTextHeight(CScreenManager *screenManager) {
- mergeStrings();
- int oldFontNumber = screenManager->setFontNumber(_fontNumber);
- int textHeight = screenManager->getTextBounds(_lines, _bounds.width() - 4);
- screenManager->setFontNumber(oldFontNumber);
-
- return textHeight;
-}
-
-void CPetText::deleteLastChar() {
- if (!_array[_lineCount]._line.empty()) {
- _array[_lineCount]._line.deleteLastChar();
- _stringsMerged = false;
- }
-}
-
-void CPetText::setNPC(int npcFlag, int npcId) {
- _npcFlag = npcFlag;
- _npcId = npcId;
-}
-
-void CPetText::scrollUp(CScreenManager *screenManager) {
- int oldFontNumber = screenManager->setFontNumber(_fontNumber);
- _scrollTop -= screenManager->getFontHeight();
- constrainScrollUp(screenManager);
- screenManager->setFontNumber(oldFontNumber);
-}
-
-void CPetText::scrollDown(CScreenManager *screenManager) {
- int oldFontNumber = screenManager->setFontNumber(_fontNumber);
- _scrollTop += screenManager->getFontHeight();
- constrainScrollDown(screenManager);
- screenManager->setFontNumber(oldFontNumber);
-}
-
-void CPetText::scrollUpPage(CScreenManager *screenManager) {
- int oldFontNumber = screenManager->setFontNumber(_fontNumber);
- _scrollTop -= getPageHeight(screenManager);
- constrainScrollUp(screenManager);
- screenManager->setFontNumber(oldFontNumber);
-}
-
-void CPetText::scrollDownPage(CScreenManager *screenManager) {
- int oldFontNumber = screenManager->setFontNumber(_fontNumber);
- _scrollTop += getPageHeight(screenManager);
- constrainScrollDown(screenManager);
- screenManager->setFontNumber(oldFontNumber);
-}
-
-void CPetText::scrollToTop(CScreenManager *screenManager) {
- _scrollTop = 0;
-}
-
-void CPetText::scrollToBottom(CScreenManager *screenManager) {
- int oldFontNumber = screenManager->setFontNumber(_fontNumber);
- _scrollTop = getTextHeight(screenManager);
- constrainScrollDown(screenManager);
- screenManager->setFontNumber(oldFontNumber);
-}
-
-void CPetText::constrainScrollUp(CScreenManager *screenManager) {
- if (_scrollTop < 0)
- _scrollTop = 0;
-}
-
-void CPetText::constrainScrollDown(CScreenManager *screenManager) {
- // Figure out the maximum scroll amount allowed
- int maxScroll = getTextHeight(screenManager) - _bounds.height() - 4;
- if (maxScroll < 0)
- maxScroll = 0;
-
- if (_scrollTop > maxScroll)
- _scrollTop = maxScroll;
-}
-
-int CPetText::getPageHeight(CScreenManager *screenManager) {
- int textHeight = _bounds.height();
- int oldFontNumber = screenManager->setFontNumber(_fontNumber);
- int fontHeight = screenManager->getFontHeight();
- screenManager->setFontNumber(oldFontNumber);
-
- if (fontHeight) {
- int lines = textHeight / fontHeight;
- if (lines > 1)
- --lines;
- return lines * fontHeight;
- } else {
- return 0;
- }
-}
-
-void CPetText::addLine(const CString &str) {
- addLine(str, _textR, _textG, _textB);
-}
-
-void CPetText::addLine(const CString &str, uint color) {
- addLine(str, color & 0xff, (color >> 8) & 0xff,
- (color >> 16) & 0xff);
-}
-
-void CPetText::addLine(const CString &str, byte r, byte g, byte b) {
- if (_lineCount == ((int)_array.size() - 1)) {
- // Lines array is full
- if (_array.size() > 1) {
- // Delete the oldest line, and add a new entry at the end
- _array.remove_at(0);
- _array.resize(_array.size() + 1);
- }
-
- --_lineCount;
- }
-
- setLineColor(_lineCount, r, g, b);
- appendText(str);
- ++_lineCount;
-}
-
-bool CPetText::handleKey(char c) {
- switch (c) {
- case (char)Common::KEYCODE_BACKSPACE:
- deleteLastChar();
- break;
-
- case (char)Common::KEYCODE_RETURN:
- return true;
-
- default:
- if ((byte)c >= 32 && (byte)c <= 127)
- appendText(CString(c, 1));
- break;
- }
-
- return false;
-}
-
-void CPetText::showCursor(int mode) {
- CScreenManager *screenManager = CScreenManager::setCurrent();
- _textCursor = screenManager->_textCursor;
- if (_textCursor) {
- _textCursor->setPos(Point(0, 0));
- _textCursor->setSize(Point(2, 10));
- _textCursor->setColor(0, 0, 0);
- _textCursor->setBlinkRate(300);
- _textCursor->setMode(mode);
- _textCursor->setBounds(_bounds);
- _textCursor->show();
- }
-}
-
-void CPetText::hideCursor() {
- if (_textCursor) {
- _textCursor->setMode(-1);
- _textCursor->hide();
- _textCursor = nullptr;
- }
-}
-
-int CPetText::getNPCNum(uint ident, uint startIndex) {
- if (!_stringsMerged) {
- mergeStrings();
- if (!_stringsMerged)
- return -1;
- }
-
- uint size = _lines.size();
- if (startIndex < 5 || startIndex >= size)
- return -1;
-
- // Loop backwards from the starting index to find an NPC ident sequence
- for (const char *strP = _lines.c_str() + startIndex;
- strP >= (_lines.c_str() + 5); --strP) {
- if (*strP == 26) {
- byte id = *(strP - 2);
- if (id == ident)
- return *(strP - 1);
- strP -= 3;
- } else if (*strP == 27) {
- strP -= 4;
- }
- }
-
- return -1;
-}
-
-void CPetText::setFontNumber(int fontNumber) {
- if (fontNumber >= 0 && fontNumber <= 2)
- _fontNumber = fontNumber;
-}
-
-} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_text.h b/engines/titanic/pet_control/pet_text.h
deleted file mode 100644
index 9b2f47274c..0000000000
--- a/engines/titanic/pet_control/pet_text.h
+++ /dev/null
@@ -1,285 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef TITANIC_PET_TEXT_H
-#define TITANIC_PET_TEXT_H
-
-#include "common/keyboard.h"
-#include "titanic/support/simple_file.h"
-#include "titanic/support/screen_manager.h"
-#include "titanic/support/text_cursor.h"
-
-namespace Titanic {
-
-class CPetText {
- struct ArrayEntry {
- CString _line;
- CString _rgb;
- CString _string3;
- };
-private:
- Common::Array<ArrayEntry> _array;
- CString _lines;
- bool _stringsMerged;
- Rect _bounds;
- int _maxCharsPerLine;
- int _lineCount;
- int _displayEndCharIndex;
- int _unused1;
- int _unused2;
- int _unused3;
- int _backR;
- int _backG;
- int _backB;
- int _textR;
- int _textG;
- int _textB;
- int _fontNumber;
- int _npcFlag;
- int _npcId;
- bool _hasBorder;
- int _scrollTop;
- CTextCursor *_textCursor;
-private:
- void setupArrays(int count);
-
- void freeArrays();
-
- /**
- * Merges the strings in the strings array
- */
- void mergeStrings();
-
- /**
- * Append text to the current text line
- */
- void appendText(const CString &str);
-
- void updateStr3(int lineNum);
-
- /**
- * Ensures the Y scrolling for the text is in the valid range
- */
- void constrainScrollUp(CScreenManager *screenManager);
-
- /**
- * Ensures the Y scrolling for the text is in the valid range
- */
- void constrainScrollDown(CScreenManager *screenManager);
-
- /**
- * Get the page height for paging up and down
- */
- int getPageHeight(CScreenManager *screenManager);
-public:
- CPetText(uint count = 10);
-
- /**
- * Set up the control
- */
- void setup();
-
- /**
- * Load the data for the control
- */
- void load(SimpleFile *file, int param);
-
- /**
- * Save the data for the control
- */
- void save(SimpleFile *file, int indent);
-
- /**
- * Set the bounds for the control
- */
- void setBounds(const Rect &bounds) { _bounds = bounds; }
-
- /**
- * Sets the flag for whether to draw a frame border around the control
- */
- void setHasBorder(bool val) { _hasBorder = val; }
-
- /**
- * Draw the control
- */
- void draw(CScreenManager *screenManager);
-
- void resize(uint count);
-
- /**
- * Returns the text from all the lines as a single string
- */
- CString getText() const;
-
- /**
- * Set the text
- */
- void setText(const CString &str);
-
- /**
- * Set the text
- */
- void setText(StringId stringId);
-
- /**
- * Set text color
- */
- void setColor(uint col);
-
- /**
- * Set text color
- */
- void setColor(byte r, byte g, byte b);
-
- /**
- * Set the color for a line
- */
- void setLineColor(uint lineNum, byte r, byte g, byte b);
-
- /**
- * Gets the text string representing a color encoding
- */
- static CString getColorText(byte r, byte g, byte b);
-
- /**
- * Set the color for a line
- */
- void setLineColor(uint lineNum, uint col);
-
- /**
- * Sets the maximum number of characters per line
- */
- void setMaxCharsPerLine(int maxChars);
-
- /**
- * Delete the last character from the last line
- */
- void deleteLastChar();
-
- /**
- * Sets the current NPC text is being added for
- */
- void setNPC(int npcFlag, int npcId);
-
- /**
- * Returns the character index into _lines of the last
- * character to be displayed on-screen
- */
- int displayEndIndex() const { return _displayEndCharIndex; }
-
- /**
- * Scroll the text up
- */
- void scrollUp(CScreenManager *screenManager);
-
- /**
- * Scroll the text down
- */
- void scrollDown(CScreenManager *screenManager);
-
- /**
- * Scroll the text up one page
- */
- void scrollUpPage(CScreenManager *screenManager);
-
- /**
- * Scroll the text down one page
- */
- void scrollDownPage(CScreenManager *screenManager);
-
- /**
- * Scroll to the top of the text
- */
- void scrollToTop(CScreenManager *screenManager);
-
- /**
- * Scroll to the bottom of the text
- */
- void scrollToBottom(CScreenManager *screenManager);
-
- /**
- * Add a line to the text
- */
- void addLine(const CString &str);
-
- /**
- * Add a line to the text
- */
- void addLine(const CString &str, uint color);
-
- /**
- * Add a line to the text
- */
- void addLine(const CString &str, byte r, byte g, byte b);
-
- /**
- * Handles character processing to add or remove characters to
- * the current text line
- * @returns True if the Enter key was pressed
- */
- bool handleKey(char c);
-
- /**
- * Attaches the current system cursor to the text control,
- * and give it suitable defaults
- */
- void showCursor(int mode);
-
- /**
- * Removes the cursor attached to the text
- */
- void hideCursor();
-
- /**
- * Get an NPC Number embedded within on-screen text.
- * Used by the PET log to encode which NPC spoke
- * @param ident Npc Type. Always passed as 1
- * @param startIndex Starting index to scan backwards
- * through the log text to find an NPC ident sequence
- */
- int getNPCNum(uint ident, uint startIndex);
-
- /**
- * Replaces any occurances of line colors that appear in the
- * first list with the entry at the same index in the dest list
- */
- void remapColors(uint count, uint *srcColors, uint *destColors);
-
- /**
- * Set the font number to use
- */
- void setFontNumber(int fontNumber);
-
- /**
- * Get the width of the text
- */
- int getTextWidth(CScreenManager *screenManager);
-
- /**
- * Get the required height to draw the text
- */
- int getTextHeight(CScreenManager *screenManager);
-};
-
-} // End of namespace Titanic
-
-#endif /* TITANIC_PET_TEXT_H */
diff --git a/engines/titanic/pet_control/pet_translation.cpp b/engines/titanic/pet_control/pet_translation.cpp
index fe6c37c8ab..9509047325 100644
--- a/engines/titanic/pet_control/pet_translation.cpp
+++ b/engines/titanic/pet_control/pet_translation.cpp
@@ -61,8 +61,8 @@ void CPetTranslation::clearTranslation() {
void CPetTranslation::addTranslation(const CString &str1, const CString &str2) {
CString msg = CString::format("%s%s - %s%s",
- CPetText::getColorText(0, 0x80, 0).c_str(), str1.c_str(),
- CPetText::getColorText(0, 0, 0).c_str(), str2.c_str());
+ CTextControl::getColorText(0, 0x80, 0).c_str(), str1.c_str(),
+ CTextControl::getColorText(0, 0, 0).c_str(), str2.c_str());
_message.addLine(msg);
_petControl->makeDirty();
}
diff --git a/engines/titanic/pet_control/pet_translation.h b/engines/titanic/pet_control/pet_translation.h
index 26070d6e59..ce12be454e 100644
--- a/engines/titanic/pet_control/pet_translation.h
+++ b/engines/titanic/pet_control/pet_translation.h
@@ -24,14 +24,14 @@
#define TITANIC_PET_TRANSLATION_H
#include "titanic/pet_control/pet_section.h"
-#include "titanic/pet_control/pet_text.h"
+#include "titanic/gfx/text_control.h"
namespace Titanic {
class CPetTranslation : public CPetSection {
private:
- CPetText _message;
- CPetText _tooltip;
+ CTextControl _message;
+ CTextControl _tooltip;
private:
/**
* Setup the control
@@ -87,7 +87,7 @@ public:
/**
* Get a reference to the tooltip text associated with the section
*/
- virtual CPetText *getText() { return &_tooltip; }
+ virtual CTextControl *getText() { return &_tooltip; }
/**
* Clear any current translation text