From e84cdbd704efb253081d30f9979f850d98077351 Mon Sep 17 00:00:00 2001 From: djsrv Date: Tue, 10 Aug 2021 14:21:43 -0400 Subject: [PATCH] DIRECTOR: LINGO: Implement FileIO(mReadFile) --- engines/director/lingo/xlibs/fileio.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/engines/director/lingo/xlibs/fileio.cpp b/engines/director/lingo/xlibs/fileio.cpp index 982c8d6c281..e17f4e95fd3 100644 --- a/engines/director/lingo/xlibs/fileio.cpp +++ b/engines/director/lingo/xlibs/fileio.cpp @@ -293,9 +293,21 @@ void FileIO::m_readToken(int nargs) { } void FileIO::m_readFile(int nargs) { - g_lingo->printSTUBWithArglist("FileIO::m_readFile", nargs); - g_lingo->dropStack(nargs); - g_lingo->push(Datum()); + FileObject *me = static_cast(g_lingo->_currentMe.u.obj); + + if (!me->_inStream || me->_inStream->eos() || me->_inStream->err()) { + g_lingo->push(Datum("")); + return; + } + + Common::String res; + char ch = me->_inStream->readByte(); + while (!me->_inStream->eos() && !me->_inStream->err()) { + res += ch; + ch = me->_inStream->readByte(); + } + + g_lingo->push(res); } // Write