diff options
Diffstat (limited to 'engines/titanic/core/mail_man.cpp')
-rw-r--r-- | engines/titanic/core/mail_man.cpp | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/engines/titanic/core/mail_man.cpp b/engines/titanic/core/mail_man.cpp index e96b697dff..8ac50e9767 100644 --- a/engines/titanic/core/mail_man.cpp +++ b/engines/titanic/core/mail_man.cpp @@ -47,21 +47,35 @@ CGameObject *CMailMan::getNextObject(CGameObject *prior) const { return static_cast<CGameObject *>(prior->getNextSibling()); } -void CMailMan::fn10(CGameObject *obj, int v) { - warning("TODO: CMailMan::fn10"); +void CMailMan::addMail(CGameObject *obj, int id) { + obj->detach(); + obj->addUnder(this); + setMailId(obj, id); } -void CMailMan::fn11(CGameObject *obj, int v) { - warning("TODO: CMailMan::fn11"); +void CMailMan::setMailId(CGameObject *obj, int id) { + obj->_id = id; + obj->_field58 = 0; + obj->_isMail = true; } CGameObject *CMailMan::findMail(int id) const { for (CGameObject *obj = getFirstObject(); obj; obj = getNextObject(obj)) { - if (_field50 && _field54 == id) + if (obj->_isMail && obj->_id == id) return obj; } return nullptr; } +void CMailMan::removeMail(int id, int v) { + for (CGameObject *obj = getFirstObject(); obj; obj = getNextObject(obj)) { + if (obj->_isMail && obj->_id == id) { + obj->_isMail = false; + obj->_field58 = v; + break; + } + } +} + } // End of namespace Titanic |