tajmone / hugo

Hugo Interactive Fiction system

Home Page:https://www.generalcoffee.com/hugo/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hugo Interactive Fiction System

Hugo (1995–2006) by Kent Tessman, BSD 2-Clause License:

This repository contains Tristano Ajmone’s custom fork of Dannii Willis’s Hugo repository.


Table of Contents


About This Project

In order to better understand the role of this repository, I'll provide here some historical background on Hugo development and distribution history.

Hugo Active Development (1995–2006)

Historically, Hugo binaries and sources were distributed on the Hugo website as platform-specific downloadable archives. Beside the main Hugo releases created by Kent Tessman, third party ports to various OSs where also available for download.

The Upstream Void (2006–)

When active development of Hugo ceased around 2006, the IF Archive became the main reference for Hugo official releases and third party updates and ports, and all downloads links on the Hugo website now redirect to the IF Archive.

Although the Hugo website is still on-line, it's no longer being updated. The Hugo website hosts a Subversion repository of Hugo sources, but it's not open to third party contributions, and it hasn't been updated since 2014.

With the IF Archive being the only place of reference left for Hugo downloads and uploads, there's no longer an official upstream repository for version-controlled Hugo development.

Third Party Git Revival (2008, 2012)

In an attempt to fill this «upstream void», two Git repositories for Hugo sources were created by members of the IF community:

The curiousdannii/hugo repository is an attempt to gather under one roof all the different Hugo editions. From the curiousdannii/hugo README:

In this repository I have tried to collect together all the various versions of the Hugo source code I could find. I don't know the codebase well enough to commit to maintaining the code, but patches and pull requests are very welcome.

For more info on these two upstream repositories, see the discussion on curiousdannii/hugo#4.

The 0branch/hugo-unix repository focuses on the Unix port of Hugo, by Bill Lash (and updated by Kent Tessman).

This Repository (2019)

The main reason why I created this fork of Danniis's Hugo repository was to provide a freely-editable public Wiki on Hugo — now available at Hugo Wiki. But then, having forked the upstream repository, I decided I might just as well maintain my own custom Hugo codebase, while still keeping a connection with its upstream in order to integrate updates and be able to contribute to it.

Right now, my edits to the master branch are mainly focused on cleaning up the repository from unneeded left overs, tweaking its settings to my custom workflow and tools of choice, and trying to document what's here, how to build Hugo for different platforms, and how the codebase evolved since the last official Hugo releases.

My main focus of interest is on building Hugo for Windows, possibly via MSYS2.

Changes

I've enforced consistent coding styles on the various project files via EditorConfig settings.

The added .editorconfig file should be picked automatically by most modern editors (either natively or via plug-ins), which means end users won't have to worry about handling details like tab settings, trimming trailing spaces and adding an empty line at the end of files.

Furthermore, these settings can be employed to validate commits and pull requests via continuous integration services, using third party tools like ECLint.

Many of the C sources displayed inconsistent use of tabs and spaces for indentation — the original Hugo code has been handled by various users in these years, which lead to a proliferation of different indentation standards in the code base. After comparing the original Hugo distribution sources to the files in this project, I settled on arbitrarily enforcing indentation using spaces (tab width = 3 spaces), and manually amended all stray indentation and extra whitespace until the whole code base passed a test-run against EClint.

This is an opinionated choice, which might make someone unhappy, but enforcing a coding standard is better than having none. The same goes for other file extensions which are covered in the .editorconfig settings file. Now, at least, the repository is guaranteed to meet and preserve consistent coding styles across commits.

Custom Branches

Any branch in this repository that doesn't start with dannii- is my own custom branch, diverging from Danniis' upstream repository — therefore, the master branch of my repository is not kept in synch with the master branch of curiousdannii/hugo.

Upstream Branches

In order to keep a clear separation between my own branches and their upstream counterparts, I've prefixed with dannii- the name of any branch which mirrors the branches of curiousdannii/hugo:

on this repository upstream description
dannii-master master Main upstream branch.
dannii-emglken emglken
dannii-emglkenasync emglkenasync
dannii-garglk garglk
dannii-hugo-unix hugo-unix Unix port by Bill Lash.
dannii-hugor hugor Modern Hugo terp by Nikos Chantziaras.
dannii-v3.2 v3.2

I still haven't worked out what most of those upstream branches do, but I'll try to document them as I get more time to explore them.

About Hugo

Hugo was created and developed (1995–2006) by Kent Tessman. It's a cross platform Interactive Fiction system for developing and playing text adventure games, supporting multimedia.

The latest (official) stable release of Hugo is v3.1.03 (2006/01/05).

Multimedia Support

  • images: JPG.
  • sounds: MOD, S3M, MP3, MIDI, XM and WAV.
  • videos: AVI and MPEG.

License

Hugo is released under the terms of the BSD 2-Clause License (see license file on Hugo website).

BSD 2-Clause License

Copyright (c) 2011 by Kent Tessman
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

External Links

For more information on Hugo:

Hugo repositories:

About

Hugo Interactive Fiction system

https://www.generalcoffee.com/hugo/

License:BSD 2-Clause "Simplified" License


Languages

Language:C 96.9%Language:Objective-C 1.6%Language:Makefile 1.5%