2010-03-28 Little fixes to paths handling [Mion] Cleared ctrl-press after a movie [Mion] Fix for text output "skip to end of line/wait on click" for Mac; also grafted additional skip/wait/delay handling from ons-en [Mion] 2010-03-24 Changed basic functionality on Windows: stdout.txt & stderr.txt will go under the current user's AppData instead of AllUsers' from now on [Mion] Added "shell" cmd [Mion] Grafted nicer non-ASCII Windows caption handling from ons-en [Mion] Some Mac fixes related to "debug_string" [Roto] 2010-03-11 Updated bstrlib (used for pstring type) [Mion] Fixed memory leaks and uninitialized variables [Mion & Andrius] Grafted recent (and some not-so-recent) small fixes from ons-en [Mion] Added Mac app bundle handling [Mion & Roto] 2010-03-08 Fix for the enormously slow startup time for Umineko (caused by unnecessarily decompressing all bitmaps to find their lengths) [Mion & Roto] Added support for "pns.cfg" file containing command-line options [Mion] Grafted "--gameid", "--current-user-appdata", "--disable-cpu-gfx" command-line option support from ons-en [Mion] 2010-03-06 Corrections for building on non-gcc compilers; fixes for gcc4.5+ compilation, added strict compilation option [Andrius & Mion] Plugged icon-related memory leak [Roto & Mion] Various small bugfixes [Mion] 2010-02-28 Fixed memory leak in BaseReader [Roto] 2010-02-19 Pretextgosub-related fixes (also for "gettag" cmd) [Mion] 2010-02-17 Various bugfixes; cleaned up custom build process, added "--no-cpu-gfx" configure option [Mion] 2010-02-14 Fixed case in which there's a folder in the game's search path with the same name as a directory in the archive [Mion & Roto] Bugfix for Mac file reading issue [Mion] 2010-02-05 Ported audio fixes from ons-en, added "mode_wave_demo" cmd [Mion] Bugfix for alpha png images, various other bugfixes [Mion] 2010-01-20 Began porting image processing routines from ons-en [Mion] 2010-01-15 Updated XCode for 10.6, added DirPath support [Roto] 2009-10-15 Check entire DirPath for font files [Mion] Remove every UTF-8 BOM as the script file is read [Mion] Removed default indent and break chars (except for break on space); added "basic" option to "pindentstr" and "pbreakstr", which will restore those defaults (e.g. use "pindentstr basic") [Mion] various bugfixes [Mion] 2009-10-13 Added "localestring" command and locale handling [Mion] Corrected right-click menus for compatibility mode [Mion] 2009-10-08 Bugfix for digit character handling [Mion] 2009-10-07 Fixed several format string issues with debug messages that were breaking the Linux build [Roto] Fixed a bug in the default save/load menu [Mion] 2009-10-03 Corrected ligature handling to work with multi-byte matching characters [Mion] Corrected "setwindow" textwindow dimension handling (should use right/bottom positions, not width & height, for the final 2 parameters) [Mion] Reimplemented indenting; preliminary support for vertical and right-to-left text ("tateyoko" and "bidirect" commands) [Mion] 2009-09-26 Added DirPaths feature, allowing multiple directories as the "root" [Mion] 2009-09-16 Various bugfixes; added "savegame2" command [Mion] 2009-08-23 Added XCode project for Mac OS X compilation [Roto] 2009-07-07 Various bugfixes [Mion] 2009-02-07 Ligature selection is no longer dependent on the order of definition, and a saner data structure is used. 2009-01-20 Refactor documentation, and translate it to DocBook to make HTML generation easier. 2009-01-18 Refactor source tree into something sane. Improve Vista support. Add packaging support for RPM- and DEB-based Linux distributions. 2008-12-29 Tweak script filename detection. Define #@, #_, etc by default. 2008-12-28 Implement variable interpolation in text lines, with the syntax {$var}, {%var}, {?var[0]}. {|$ etc can be used if literal output is required. Remove altogether the distinction between END_1BYTE_CHAR and other end states. The only thing it was doing was causing whitespace to be ignored (often unexpectedly) when printing text. Add a command-line option to specify a script filename. Among other things, this will make it much easier to have a range of different test scripts. The relatively unimportant -s flag has been repurposed for this; the old -s can still be accessed with its long name --save. 2008-12-26 Write some manpages at last. Fix `puttext' command. The distinction between string literal quoting types is now clearly defined: ~tags~ are parsed in ^...^ strings, and treated as literal in "..." strings. "^..." strings are treated identically to "..." strings. There is no other difference in behaviour whatsoever. 2008-12-19 New command `watch_var' logs all changes to an (integer) variable, so you can figure out why on earth it's got the wrong value. 2008-12-16 Fix occasional segfaults during subtitled movies. This is a quick and dirty fix, and should ideally be replaced with something more robust. 2008-12-14 Fix infinite loop caused by a line of the form "^\n" when a pretextgosub hook is defined. Make @ behave as expected when embedded in lines, even when a textgosub hook is defined. Add shortcuts #@, #\, etc, for printing literal characters. Add ponscripter-mode.el (Emacs syntax highlighting) 2008-11-18 Fix fatal error caused by ~~ in a script becoming ~ in the lookback buffer. 2008-09-09 New command `vsp_when' allows sprite visibility to be linked automatically to auto-mode status. Fix auto-mode so that all sprites start animating again immediately when the player terminates auto-mode during a page pause. Hack SDL to add a fixed-aspect-ratio mode for widescreen displays. 2008-03-26 Add h_textheight command to facilitate footnote positioning in Narci2. h_locate now adds the equivalent of ~x...y...~ to the lookback buffer, so pages using it will appear correctly in lookback mode. Add gettextspeed command to determine the current text speed. Tweak line wrapping code; formatting commands no longer count as break points, and formatting changes are always taken into account when wrapping. 2008-03-11 Fix random number generation; the first instance of rnd in a program will no longer produce predictable results. Fix built-in load menu line truncation. Fix bug causing text to be missing when coming out of skip mode. 2008-03-09 Get Vista working properly (?). Add Mion's workaround to fix sample rate mismatches in MPEG playback. Merge across the upstream ONScripter enhancements (mostly sp2-related) that Mion has integrated into ONScripter-En. 2008-02-25 Improve diagnostics slightly. Extend vsp, csp, (a)msp, and cell to provide some convenient shorthands, tablegoto to provide a 1-based alternative, and add movz, which is like movl but treats missing args as implicit zeroes. Merge across the RC version synchronisation code from ONScripter-En. 2008-01-27 Revert setwindow and locate commands to the NScripter behaviour (sizes defined in characters not pixels) in all cases, to simplify porting. A new h_locate command is provided as a pixel-oriented replacement for locate, while a much improved pixel-oriented setwindow replacement is already available in the form of h_usewindow. Filenames are now checked for non-ASCII text; finding any is considered an error. Life's too short to implement a fully general cross-platform encoding-independent file access mechanism, and frankly ASCII is good enough -- we're talking arbitrary identifier tokens here, not _literature_. Games were randomly segfaulting on my computer, and the problem seemed to be related to string handling, so I've taken the opportunity to get rid of the horrid pstring interface and replace it with something a little saner, based on bstrlib. Now it doesn't segfault any more. Fixed some other architectural oddities, notably the far-too-early substitution of ligatures; this now doesn't take place until we're actually trying to access glyphs, and consequentially we can stop worrying about ligature substitution mangling filenames, and we can ignore ligature definitions where there's no suitable glyph in the active font. 2007-10-08 Support for soft subtitles in MPEG playback (but not, at present, in AVI playback). Add command logsp2utf -- equivalent to logsp2, but for UTF-8 text. Various bug fixes: interaction between default styles and saved games, ludicrously inefficient ligature searching, handling of overlapping sprite-buttons. Remove support for obsolete ONScripter-format saved games. 2007-09-25 Implement h_defwindow, h_usewindow, h_usewindow3: create and use predefined sets of window settings. Implement h_speedpercent: adjust all font speed settings proportionately with a single convenient command. 2007-07-15 Fix glyph positioning and a number of OS X build bugs. 2007-06-16 Merge recent portability enhancements from ONScripter-En: configure now works properly on a wider range of Unixes, and generates an `install' target as documented. 2007-05-14 Improve path handling: all paths are now specified explicitly. Full file handling is partly rewritten in a higher-level manner as a prelude to making things encoding-independent, but direct access to files with non-ASCII filenames is still very much dependent on a UTF-8 filesystem. 2007-05-13 The game identifier can now be derived from caption or versionstr commands if the ;gameid directive is absent. 2007-04-28 Ponscripter games now use slightly different script filenames. Limited support for NScripter scripts added; output is by no means identical with ONScripter, and many things will not work, but some NScripter games are now playable with proportional text (even proportional Japanese text!) without any porting. Reimplement the clickstr function. Fix bug in selectcolor implementation that was causing select colours to be lost whenever the interpreter was reset. 2007-04-25 Merge in an adapted version of the `drawfix' patch to speed up screen updates in windowed mode, plus a number of other patches: Reduce flicker when sprites are changed (Roine Gustafsson) Fix gcc detection on OS X (Roine) Support multiple games without game IDs at the same time (Roine) Fix incorrect clipping of text shadow (Roine) 2007-04 (passim) Major cleanup of source code, including conversion of many aspects to use C++ idioms and STL containers. 2007-04-15 Merge in useful fixes from onscripter-20070206. 2007-01 Redesign build system to support automatic platform/dependency detection and to allow bundling of dependencies. This makes it plausible to distribute the Linux version as source code, since a straight configure-make cycle should finally "just work". Reimplement menu handling initially stripped out during proportionalisation. Right-click menus now function as in ONScripter. Built-in save/load menus take advantage of proportional text to display in automatically-formatted columns. 2006-11-30 Increase flexibility of file embedding. Font files can now be embedded in the executable: embedded fonts will be used only if the file is not found in the data directory or in the game archive. Icon embedding is now optional; the embedded icon, if present, will be used only if "icon.png" is not found in the working directory. The new system could easily be expanded to allow other files to be embedded, including game data. 2006-11-22 Implement default data/save separation for Windows and Linux too. This should enhance Vista compatibility considerably, and make it possible to package Linux versions in a way that respects the FHS. 2006-11-21 Implement ligature customisation. Integers can now be expressed in hexadecimal with an 0x prefix, as in C. 2006-09-24 Replace SDL_ttf with a simpler, saner C++ interface (the implementation still being largely drawn from SDL_ttf, of course). Convert horizontal font positioning to use floating-point rather than integer offsets. Begin attempts at subpixel positioning (still buggy). In the process, glyph caching has been removed. ONScripter uses _two_ glyph caches (!) -- one in SDL_ttf, which apparently only works on ASCII characters anyway, and one in ONScripterLabel. However, the speed of text rendering does not seem to be affected at all by removing caching, suggesting that it's a premature optimisation. The code is simplified considerably by its removal. 2006-09-18 Multi-font-style support. 2006-09-14 Automatic ligature support. 2006-09-08 Default icon embedded in interpreter. (This is game-specific; users are expected to use custom builds with these replaced.) 2006-09-06 Fork. UTF-8 and proportional text support. Ruby, clickstr, and tategaki support removed. 2006-09-05 (as ONScripter) Make archive path and save path separately configurable. Game data no longer has to be stored in a writable directory. OS X: make default archive path be the Resources folder of the application bundle, and default save path be a new subfolder of the user's Library/Preferences. The name of the subfolder is derived from a new "game identifier" that should be specified at the top of 0.txt with a ";gameid Whatever" line immediately after the modeline.