mirror of
https://github.com/scummvm/scummvm.git
synced 2026-06-20 05:45:29 +00:00
TITANIC: Implement TTword copy
This commit is contained in:
@@ -33,7 +33,39 @@ TTword::TTword(TTString &str, int mode, int val2) : _string(str),
|
||||
}
|
||||
|
||||
TTword::TTword(TTword *src) {
|
||||
// TODO
|
||||
if (src->getStatus() != SS_VALID) {
|
||||
_status = SS_5;
|
||||
return;
|
||||
}
|
||||
|
||||
_string = src->_string;
|
||||
_wordMode = src->_wordMode;
|
||||
_field1C = src->_field1C;
|
||||
_field20 = src->_field20;
|
||||
_synP = nullptr;
|
||||
|
||||
TTsynonym *priorSyn = nullptr;
|
||||
for (TTsynonym *synP = _synP; synP && !_status;) {
|
||||
TTsynonym *newSyn = new TTsynonym(synP);
|
||||
if (!newSyn) {
|
||||
_status = SS_7;
|
||||
} else {
|
||||
newSyn->_pPrior = priorSyn;
|
||||
newSyn->_pNext = nullptr;
|
||||
|
||||
if (priorSyn) {
|
||||
priorSyn->_pNext = newSyn;
|
||||
} else {
|
||||
_synP = newSyn;
|
||||
}
|
||||
|
||||
priorSyn = newSyn;
|
||||
}
|
||||
}
|
||||
|
||||
_pNext = src->_pNext;
|
||||
_field24 = src->_field24;
|
||||
_field28 = src->_field28;
|
||||
}
|
||||
|
||||
void TTword::deleteSiblings() {
|
||||
|
||||
@@ -78,6 +78,11 @@ public:
|
||||
const char *c_str() const { return _string.c_str(); }
|
||||
operator const char *() const { return c_str(); }
|
||||
|
||||
/**
|
||||
* Return the status of the word
|
||||
*/
|
||||
TTStringStatus getStatus() const { return _status; }
|
||||
|
||||
/**
|
||||
* Creates a copy of the word
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user