realnc / qtads Goto Github PK
View Code? Open in Web Editor NEWA cross-platform, multimedia interpreter for TADS adventure games.
Home Page: https://realnc.github.io/qtads
License: GNU General Public License v3.0
A cross-platform, multimedia interpreter for TADS adventure games.
Home Page: https://realnc.github.io/qtads
License: GNU General Public License v3.0
QTads - A multimedia interpreter for Tads games. Written and maintained by Nikos Chantziaras. Based on Mike Roberts' portable reference implementation of Tads. This file contains an overview of QTads. Other documentation files in the distribution include: AUTHORS People who wrote QTads' code. LICENSE.TXT The GNU General Public License (GPL). INSTALL Installation and usage instructions. NEWS Contains the list of changes between QTads versions. qtads.6.gz Manual page. The newest version of QTads can be downloaded from its homepage at: https://realnc.github.io/qtads Previous versions can be found at: https://github.com/realnc/qtads/releases About Tads and QTads ==================== QTads is a so called "interpreter" for games created with the Text Adventure Development System, or "Tads" for short, a C-like object oriented programming language for authoring Interactive Fiction (similar to the Infocom or Legend Entertainment games, like "Zork"). The Tads compiler creates executables for the Tads Virtual Machine (the "Tads VM"). QTads is an implementation of this Virtual Machine; it runs Tads VM programs. Both Tads 2 as well as Tads 3 games are supported. QTads is not written from scratch; it uses Mike Roberts' reference implementations of the Tads VM. For more information about Tads, visit its home page: https://www.tads.org On what systems does it run? ============================ Theoretically, it should run on *any* system for which a version of Qt exists. The main targets however are Linux, macOS and Windows. Where do I find games? ====================== https://realnc.github.io/qtads/#games License Notice ============== Copyright 2003-2023 Nikos Chantziaras <[email protected]> QTads is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. QTads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with QTads. If not, see <https://www.gnu.org/licenses/>.
The program seems to always check for update info (if Wi-Fi on) or bring up a dialog saying 'It was not possible to retrieve update info' (if no Internet connection), even though update preferences set to 'Never'.
MacOS 10.14.2, MacBook Air (13-inch, 2017)
tads3/vmtz.cpp:1987:30: error: ordered comparison between pointer and zero ('vmtz_trans *' and 'int')
result->set(tcur > 0 ? tcur - 1 : tcur);
~~~~ ^ ~
1 error generated.
I can work around it with
diff --git a/tads3/vmtz.cpp b/tads3/vmtz.cpp
index 525c781..6d3acf0 100644
--- a/tads3/vmtz.cpp
+++ b/tads3/vmtz.cpp
@@ -1984,7 +1984,7 @@ void CVmTimeZone::query(vmtzquery *result, int32_t dayno, int32_t daytime,
* the transition in terms of the local time that was in effect
* up until that moment
*/
- result->set(tcur > 0 ? tcur - 1 : tcur);
+ result->set(tcur != NULL ? tcur - 1 : tcur);
return;
}
}
This doesn't appear to affect master, so a new release might be worthwhile at this point.
well, I know it's not officially supported anymore, but I've always been using the repository. Is it possible to update the specs?
Thanks for the many gruelling years ...possibly decades by now of dedicated QTads volunteerism. Sadly, the last stable release was over three years ago. There have been nearly 80 commits since then, including a critical macOS-specific XCode fix.
A new stable release hallmarking the upcoming holidays and bold, brave New Year would be swell – when scarce time permits, of course. The world of interactive fiction (IF) crawls slowly forwards at a snail's pace... but it crawls all the same.
Thanks again, @realnc! You and QTads continue to rock the HTML-based multimedia.
In conclusion, adorable Bengal kittens desperately cry out for a new QTads release.
When a game is waiting for an input event (like Space Shooter does), closing it will hang the interpreter. Trying to exit qtads will result in the window closing but the process is still running, maxing out a CPU core.
I have a minimal test case that looks like this:
me: Actor
location = quietRoom
;
musicRoom: Room 'Room with music'
desc = """
Music starts.
<sound
layer=background
src='TheNorth.ogg'
>
"""
south = quietRoom
;
quietRoom: Room 'A quiet room'
desc = """
Music fades.
<sound
cancel=background
fadeout=crossfade,1.5
>
"""
north = musicRoom
;
When the player moves north (into musicRoom
) the background music starts fine. When they move back south to quietRoom
, the music fades off, but only the first time.
Thereafter, going to musicRoom
will start the music, but going south again will cause the music to end abruptly, with no fade-out.
Fiddling with <SOUND CANCEL>
reveals other problems:
fadeout=1.5
, the music will start and fade-out the first trip through the rooms, but thereafter the music will never play, no matter what rooms the player moves into.fadeout=crossfade
, there's no fade-out ever, but the music will start each time musicRoom
is entered. (I suppose this is by-design, since the fadeout
attribute has no time element.)fadeout=1.5,crossfade
, it's just like using fadeout=1.5
, that is, the music won't start after it's been stopped. (I'm surprised the element ordering matters).I've tested this on both Linux and MacOS QTads 3.0.0. I don't have access to a Windows machine to test there.
Hopefully there's something obvious I'm doing wrong and this can be fixed on my end.
Is an AppImage available for download? If so, we'd like to add it to https://github.com/AppImage/appimage.github.io.
Thanks.
QTads 3.3.0 unpredictably indents lines with leading spaces in pre
elements.
bug.zip contains a T3 image and its source code. The important part of the source code is:
showIntro
{
"<pre>";
" <font color=#19177C>aaaaaaaaaaa</font> a <font color=#BA2121>aaaaaa aaaaaaa</font><b><font color=#AA5D1F>a</font></b><b><font color=#008000>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</font></b><font color=#BA2121>'</font><br>";
" <font color=#19177C>aaaa</font> a <font color=#BA2121>aaaa aaaaaa aa aaaaaaaaaa a aaaaaaaaaaaa aaa aaaa aaaaaaaa aaaaaaa</font><br>";
"</pre>";
}
In QTads, the second line is only indented one space. Compare FrobTADS and the Web UI, which display it properly with both lines indented by four spaces.
Changing the first line’s apostrophe from '
to the HTML entity '
fixes the indentation in QTads. Alternatively, changing the game’s name from “The Bug Demo” to “Bug Demo” also fixes the indentation. It is unclear why either change would have any effect on the indentation of the second line.
Development is relatively slow-paced currently but there are quite a few interesting changes in the NEWS file, especially
- Fixed a problem with the online update check, which would result in a
a connection error, or sometimes an application crash.
Above issue is quite annoying in 2.1.6, and I haven't found an easy way to workaround it (it seems updates are check at every application start regardless of the updates frequency defined in the options).
A 2.1.7 release would be very welcome :-)
Hi, thanks for responding to my email! Glad to know there's still people investing in text adventures out there.
As said in my email, QTads will always open a game file with the banner and the main backgrounds both black, even if the preferences were changed during the previous use of the application. If I'm not mistaken this did not happen when I used QTads on a desktop Mac from the early 2000s, but it does do it on my 2017 Mac laptop (Mojave 10.14.2).
Thanks again and good luck!
John Ziegler
[email protected]
".... HTML TADS Freeware Source Code License."
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.