mirror of
https://github.com/scummvm/scummvm.git
synced 2026-06-20 05:45:29 +00:00
TITANIC: Implement PET Conversations & Text saving
This commit is contained in:
@@ -29,18 +29,6 @@ CPetConversations::CPetConversations() : CPetSection(),
|
||||
_logScrolled(false), _field418(0) {
|
||||
}
|
||||
|
||||
void CPetConversations::save(SimpleFile *file, int indent) const {
|
||||
|
||||
}
|
||||
|
||||
void CPetConversations::load(SimpleFile *file, int param) {
|
||||
_textInput.load(file, param);
|
||||
_log.load(file, param);
|
||||
|
||||
for (int idx = 0; idx < 3; ++idx)
|
||||
_valArray3[idx] = file->readNumber();
|
||||
}
|
||||
|
||||
bool CPetConversations::isValid(CPetControl *petControl) {
|
||||
return setupControl(petControl);
|
||||
}
|
||||
@@ -110,6 +98,39 @@ bool CPetConversations::VirtualKeyCharMsg(CVirtualKeyCharMsg *msg) {
|
||||
return handleKey(msg->_keyState);
|
||||
}
|
||||
|
||||
void CPetConversations::displayMessage(const CString &msg) {
|
||||
_log.addLine(msg, getColor(1));
|
||||
scrollToBottom();
|
||||
}
|
||||
|
||||
void CPetConversations::load(SimpleFile *file, int param) {
|
||||
_textInput.load(file, param);
|
||||
_log.load(file, param);
|
||||
|
||||
for (int idx = 0; idx < 3; ++idx)
|
||||
_valArray3[idx] = file->readNumber();
|
||||
}
|
||||
|
||||
void CPetConversations::postLoad() {
|
||||
reset();
|
||||
}
|
||||
|
||||
void CPetConversations::save(SimpleFile *file, int indent) const {
|
||||
_textInput.save(file, indent);
|
||||
_log.save(file, indent);
|
||||
|
||||
for (int idx = 0; idx < 3; ++idx)
|
||||
file->writeNumberLine(_valArray3[idx], indent);
|
||||
}
|
||||
|
||||
void CPetConversations::enter(PetArea oldArea) {
|
||||
|
||||
}
|
||||
|
||||
void CPetConversations::leave() {
|
||||
|
||||
}
|
||||
|
||||
bool CPetConversations::setupControl(CPetControl *petControl) {
|
||||
if (petControl) {
|
||||
_petControl = petControl;
|
||||
|
||||
@@ -108,16 +108,6 @@ private:
|
||||
public:
|
||||
CPetConversations();
|
||||
|
||||
/**
|
||||
* Save the data for the class to file
|
||||
*/
|
||||
virtual void save(SimpleFile *file, int indent) const;
|
||||
|
||||
/**
|
||||
* Load the data for the class from file
|
||||
*/
|
||||
virtual void load(SimpleFile *file, int param);
|
||||
|
||||
/**
|
||||
* Returns true if the object is in a valid state
|
||||
*/
|
||||
@@ -132,6 +122,35 @@ public:
|
||||
virtual bool MouseDoubleClickMsg(CMouseDoubleClickMsg *msg);
|
||||
virtual bool KeyCharMsg(CKeyCharMsg *msg);
|
||||
virtual bool VirtualKeyCharMsg(CVirtualKeyCharMsg *msg);
|
||||
|
||||
/**
|
||||
* Display a message
|
||||
*/
|
||||
virtual void displayMessage(const CString &msg);
|
||||
|
||||
/**
|
||||
* Load the data for the class from file
|
||||
*/
|
||||
virtual void load(SimpleFile *file, int param);
|
||||
|
||||
/**
|
||||
* Called after a game has been loaded
|
||||
*/
|
||||
virtual void postLoad();
|
||||
/**
|
||||
* Save the data for the class to file
|
||||
*/
|
||||
virtual void save(SimpleFile *file, int indent) const;
|
||||
|
||||
/**
|
||||
* Called when a section is switched to
|
||||
*/
|
||||
virtual void enter(PetArea oldArea);
|
||||
|
||||
/**
|
||||
* Called when a section is being left, to switch to another area
|
||||
*/
|
||||
virtual void leave();
|
||||
};
|
||||
|
||||
} // End of namespace Titanic
|
||||
|
||||
@@ -83,10 +83,7 @@ void CPetText::load(SimpleFile *file, int param) {
|
||||
int var1 = file->readNumber();
|
||||
int var2 = file->readNumber();
|
||||
uint count = file->readNumber();
|
||||
_bounds.left = file->readNumber();
|
||||
_bounds.top = file->readNumber();
|
||||
_bounds.right = file->readNumber();
|
||||
_bounds.bottom = file->readNumber();
|
||||
_bounds = file->readRect();
|
||||
_field3C = file->readNumber();
|
||||
_field40 = file->readNumber();
|
||||
_field44 = file->readNumber();
|
||||
@@ -109,6 +106,33 @@ void CPetText::load(SimpleFile *file, int param) {
|
||||
}
|
||||
}
|
||||
|
||||
void CPetText::save(SimpleFile *file, int indent) const {
|
||||
int numLines = _lineCount + 1;
|
||||
|
||||
file->writeNumberLine(_array.size(), indent);
|
||||
file->writeNumberLine(_maxCharsPerLine, indent);
|
||||
file->writeNumberLine(numLines, indent);
|
||||
|
||||
file->writeRect(_bounds, indent);
|
||||
file->writeNumberLine(_field3C, indent);
|
||||
file->writeNumberLine(_field40, indent);
|
||||
file->writeNumberLine(_field44, 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;
|
||||
|
||||
|
||||
@@ -110,6 +110,11 @@ public:
|
||||
*/
|
||||
void load(SimpleFile *file, int param);
|
||||
|
||||
/**
|
||||
* Save the data for the control
|
||||
*/
|
||||
void save(SimpleFile *file, int indent) const;
|
||||
|
||||
/**
|
||||
* Set the bounds for the control
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user