TITANIC: Implement PET Conversations & Text saving

This commit is contained in:
Paul Gilbert
2016-07-10 16:22:42 -04:00
parent 6fa57389a2
commit 5d087a8fcd
4 changed files with 95 additions and 26 deletions
@@ -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;
+29 -10
View File
@@ -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
+28 -4
View File
@@ -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;
+5
View File
@@ -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
*/