Git Product home page Git Product logo

qtads's Introduction

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/>.

qtads's People

Contributors

0branch avatar a-detiste avatar akien-mga avatar curiousdannii avatar denispokataev avatar disconnect3d avatar mjrgh avatar realnc avatar tetzank avatar valtri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qtads's Issues

Unwanted dialog/update prefs

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)

Xcode 9 build failure for 2.1.7

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.

[Release Begging] Please release a new stable version – or the little Bengal gets it!

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.

lil' cuties

In conclusion, adorable Bengal kittens desperately cry out for a new QTads release.

Problems with cancelling a background sound

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:

  • If I use 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.
  • If I use 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.)
  • If I use 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.

Unpredictable indentation in `pre` element

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.
The Bug Demo

Changing the first line’s apostrophe from ' to the HTML entity &#39; 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.
Bug Demo

Time for a new release?

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 :-)

Background color problem

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]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.