Nuvie: More Work on Martian Dreams Support, Including the Ruby Slippers

Eric Fry and the rest of the Nuvie team have been hard at work on the engine over the last month or so. Or, well, over the last week at least; there was a brief hiatus in updates to the project’s changelog that began in mid-July, and lasted until August 13th.

The last July update, though, was a fairly significant one:

2014-07-16 Eric Fry r1955
* Added support for mid-game cut sequences.
* Added new script functions
player_get_gender() – Returns the Avatar’s gender
game_get_ui_style() – Returns an integer representing the current UI style.
play_end_sequence() – Play the end sequence
clear_scroll() – Clear the message scroll.
* Added new cutscene scripting functions
midgame_load() – load a WOU midgame file. eg MIDGAME1.LZC
canvas_set_solid_bg() – enable / disable solid colour backgrounds for cutscenes this is used to display the mid game cutscenes over the map window in the original UI.
canvas_show() – Show the cutscene canvas.
canvas_rotate_game_palette() – enable/disable the in-game palette rotation
effect. Used for mid-game sequences
* Added MD ruby slippers usecode.
* Added gender sprite selection logic to MD end sequence.

There are a lot of “under the hood” changes here, though one notes that support for the ruby slippers has been added to the engine. (The slippers, in case you never tried them out in Martian Dreams, allow players to view in-game cutscenes out of sequence, and can also trigger a momentary vision of a field of wheat if the option to view the scenes is not selected.)

At any rate, here are the changes logged for August, to date:

2014-08-13 Eric Fry r1956
* Added new WOUActor base class.
* Added MD specific ‘new object’ op code in the conversation engine. This fixes problems with actors not thinking you’ve got the object they gave you.
* Added bool U6Shape::load_from_lzc(std::string filename, uint32 idx, uint32 sub_idx)

2014-08-14 Eric Fry r1957
* Added MD sky widget when using original style.

2014-08-15 Malignant Manor r1958
* Fix MD sky widget offset and don’t use it in original+ (at least for now).

2014-08-17 Eric Fry r1959
* Started work on adding multiple language support.
* Added sample Italian language file to MD for testing multiple language support.
* Added config_get_game_type() script function. This returns either “U6”, “MD” or “SE”.
* Added config_get_language() script function. This returns the currently selected language. This is a two character code. The default is “en” for English.
* Added lang.lua This is responsible for language translations in script.
* Added i18n(), printl() and printfl() script functions. These provide language support.
* Converted MD script files to use the new multiple language system.
* Changed nuvie_load() script function to return nil if it cannot open the requested file.

2014-08-17 Eric Fry r1961
* Bug fixes as a result of Coverity code scan.

2014-08-17 Kirben r1960
* Add common language script to Windows installer.

Here too, there’s a fair bit, most notably the beginnings of multi-language support. Because let’s face it: translating Ultima 6 seems to be all the rage right now.