I've uploaded Hugo v3.0.05 to the IF Archive.
The most notable things about this update are a much-improved Mac port, now
with Quartz text rendering (on OS 10.1.5 and later), full media support,
proper scrollback, and a nice compass rose; and a much better-performing
PalmOS port.
Other than that, there's a rather lengthy list of minor fixes and
improvements. The complete v3.0.05 section of the change log is at the end
of this message.
(As always, I'd ask Hugo game developers if possible to test existing
working
games for proper playthrough if you have a solution script handy. While not
too much has changed drastically on the interior, there have been some
tweaks to engine functionality that I'd like to be sure don't have any
unforeseen effects. Since I won't have access to all of the platforms I
personally maintain over the holidays, I've put backups of the last public
versions of the most popular packages at
http://www.plover.net/~hugo/backup,
just in case there
are any problems that can't be fixed until January.)
Anyway, that's it, and happy holidays to all.
--Kent
Here is the list of files:
For players and developers:
hugov30_win32.zip - Windows executables
hugov30_wxwin_mac.sit - Macintosh engine (wxWindows/PPC only)
hugov30_palm.sit - PalmOS engine (PalmOS 3.5 and later)
hugov30_linux.tar.gz - Linux executables (x86)
hugov30_wxwin_linux.tar.gz - Linux engine (for X Windows)
hugov30_beosx86.zip - BeOS x86 executables
hugov30_beosppc.zip - BeOS PowerPC executables
hugov30_32bit.zip - 32-bit (386+) DOS executables
hdgr.zip - 32-bit DOS graphical debugger
hugov30_16bit.zip - 16-bit (sub-386) DOS executables
hugov25_16bit_simple.zip - speech-friendly DOS engine (v2.5)
hugov30_winglk.zip - Glk executables for Win32
hugov30_macglk.sit - Glk executables for Macintosh (PPC/68K)
For developers:
hugolib.zip - Hugo Library
For porters:
hugov30_source.tar.gz - Main portable sources
hugov30_beos_source.zip - BeOS source
hugov30_glk_source.zip - Glk source
hugov30_palm_source.sit - PalmOS source
hugov30_unix_source.tar.gz - Unix source
hugov30_win32_source.zip - Win32 source
hugov30_wince_source.zip - WinCE source
hugov30_wxwin_source.tar.gz - wxWindows source
hugov30_wxmac_source.sit - wxWindows source (for Mac)
And here's the relevant section of the change log:
- No longer building "v2.5" executables per se; COMPILE_V25 results in
a version number like "v3.0.05 (2.5)"
- Windows - fixed flickering when video finished playing in fullscreen
- Windows - fixed async updating in hugo_playvideo() for XP
- Mac - Carbonized app now runs on both OS X and OS 9/earlier
- Windows - fixed changing of fonts in-game and font/line clipping
- hcres.c - sped up building of resourcefiles using TRANSFER_BLOCK_SIZE
- hemisc.c - AP() - fixed smart-formatting where a line begins with "--"
- Windows, wxWin (Linux and Mac), BeOS, Palm - changed so that Story
menu functions Save, Restore, and Undo pass an actual "typed" string
- Windows XP - video disappeared when changing window size
- Windows - fixed off-by-one error on bottom of statusline during video
- provided a monochrome mode for ncurses-based debugger (for non-color
terminals, such as xterm or OS X Terminal)
- hugolib.h - better (object-based) handling of pronouns (currently
turned off because it doesn't yet work perfectly)
- hugolib.h - more sensible parser errors thanks to implementation
of parser_status
- hugolib.h - moved SetupDirectionObjects from Perform into its own
routine
- Windows - compiler front-end now behaves properly if the program
location contains a space (such as "C:\Program Files\Hugo")
- Mac - proper color-selector widget
- fixed line-counting bug left over from text-rendering rewrite by
adding currentline to SAVED_WINDOW_DATA struct
- added system(SYSTEM_TIME) call to engine (and resource.h)
- resource.h - GetSystemTimeValue(TIME_CONSTANT) added
- compiler - fixed BuildEvent() to correct local-variable count
(causing improper local name display in debugger)
- fixed return-value bug when calling runevents from a property routine
- objlib.h - components have an additional built-in scoper that
makes them known if their "parent" is known
- debugger - fixed stepping out of a routine call that was not originally
stepped into
- debugger - saving/loading of additional preferences, such as runtime
warnings and nesting formatting
- hugolib.h - changes to indent-overriding allowing ShortDescribe to
override indenting completely (including AFTER_PERIOD)
- Mac - scrollback window
- debugger - 'runevents' wasn't being stepped over properly
- debugger - multiple matched blocks of a complex property weren't being
stepped over properly
- herun.c - RunWindow() calls hugo_settextpos() at close instead of
resetting current_text_y directly
- hugolib.h - tweaked disambiguation of pronoun vs. possessive "her"
- Windows - fixed all-at-once updating of input line with when
override_update_client is true (for context menus)
- heparse.c - fixed ordering of word[] and wd[] restore after a
disambiguation GetCommand()
- heparse.c - reset odomain = 0 in MatchCommand() after NextStructure in
case a previous HELD_T or MULTIHELD_T grammar is found invalid
- hebuffer.c - fixed storing/retrieval of text cells with smart-formatted
characters
- hepass.c, hedef.c - changes to when CreateResourceFile() is called in
order to allow compiler directives within resource blocks
- compiler - can now report total number of files compiled
- wxWin - hugo_getfilename() uses wxOVERWRITE_PROMPT, making
hugo_overwrite() redundant
- Mac - now has proper scrollback
- wxWin - fixed incorrect saving of some font information when font-chooser
dialog is cancelled
- Mac - better font selector dialog
- Mac - added compass rose
- Mac - added support for video (AVI/MPEG) and MIDI/MP3
- Mac - changed default Mac type/creator for Hugo games to Hugo/HUGO
- Unix he/hd - fixed bug with pressing Delete at the end of an input
- Palm - fixed non-repainting of prompt when returning to game screen
- Palm - fixed field colors to use proper system defaults
- smart formatting option for both Palm and BeOS
- Palm - fixed text buffering of formatted text to correct display glitches
- Palm - changing default blocksize of game .pdb files to 32 kB improves
performance up to 8 times, in places (with other optimizations)
- Windows - shell properly enters .hex file into Recent Documents
- heparse.c - properly account for property routines in ObjWord()
- engine - implemented obj_parselist to predetermine what objects have
noun/adjective properties
- PalmHugo - fixed sizing of "..." button popup and memory leak for entry[0]
- engine - changed implementations of hugo_getkey() to allow proper
reporting of values > 127 (Windows, Mac, Linux, BeOS, Palm)
- Windows - fixed encoding of application-specific "control characters" to
not interfere with Latin-1 range on input
- compiler - fixed overflow crash with misplaced quotes in long lines of
text (and other very long error lines)
- engine - MoveObj() always moves an object, regardless of whether it was
already in the specified new parent (for reordering capability)
- heparse.c - various speed optimizations
- compiler - stricter checking of verb definition headers
- BeOS, wxWindows - needed to set getline_active = false after menu-based
restart--otherwise a mouse-click wouldn't work on an initial [MORE] prompt
- fixed lingering DOS/Mac/Unix line-ending counting problem
- file i/o (readfile and writefile) now better constrained to the engine's
program or user's home directory, where appropriate for OS
- wxHugo - fixed off-by-one error in updating
- heparse.c - substantial improvement to how MatchWord() and MatchObject()
find the xobject--which also fixes a bug regarding trailing dict. words
- heparse.c - fixed end-of-MatchObject() disambiguation when speaking
to a character and no valid object is found
- fixed stepping issues with debugger in RunRoutine() by setting
debugger_interrupt = false if debugger_step_over is true
- RunSet() was sending the property length to SaveUndo() instead of the
property element--Undo() takes care of resetting the length anyway
- compiler - added fatal error for end-of-file before #endif
- debugger - fixed decoding of readfile/writefile lines
- Palm - fixed bug with printing underlined fixed-width text
- Win32 - Windows port converted to Unicode
- Win32 - ported to compile under Windows CE (eVC++ 4.0/WCE SDK)
- herun.c - added #ifdef NO_STRFTIME for PalmOS, WinCE; moved OS-specific
strftime() replacement(s) to hugo_gettimeformatted()
- Mac - added option to use Quartz text rendering on OS X (10.1.5 or later)
- Win32 - fixed additional non-updating bug in hevideo.cpp for XP
- Win32 - worked around the one-letter-printing effect after playing video
- heparse.c - generalized disambiguation for non-player actors
- hemisc.c - fixed a line-count bug due to a rounding error in AP()
- engine - added MINIMAL_INTERFACE system() constant for Glk, etc.
- various - fixed bug with scrollback text leaving old text at end
- hugolib.h - added activate_event and deactivate_event properties
for fuses and daemons
- Mac - filetyper utility is now written in AppleScript