Important! Please read the announcement at http://myst.dustbird.net/uru-account.htm
Also! Please read the retirement announcement at http://myst.dustbird.net/uru-retirement.htm

Drizzle/Old

From UamWiki

General Introduction

Drizzle is a collection of tools, of which the most notable is the ability to convert Moul datafiles to Pots datafiles.

Links

Authors

  • H'astin - integrated flymode
  • ddb174 - most stuff

License

GPLv3 or at your option, any later version.

Questions/Documention

Feel free to post on the forums any and all questions, and I'll try to post the useful answers here as well.

The Prp Converting Tool

Languages

  • Mostly Java, because as we know, every H'uru programmer needs to use a language none of the others use! (I used the Netbeans IDE.) You'll need Java 6 and Netbeans 6. If you're using Linux, there's a Netbeans platform-independent zip file you can use, without requiring it to be in the repository.
  • Some Python

Developers

Feel free to commit changes without asking me. Be sure to add your name to the header of each file you modify, but otherwise go ahead.

Quick Tool Tutorial

I put up the binary(well, bytecode anyway) at Sourceforge, but it's really easy to compile with Netbeans, you just open and run. I never bothered making it pretty, or making many adjustable options on the GUI, so you may just want to use Netbeans to set things.


Here's a quick tutorial, that I haven't actually tested, but unless I forgot something, will work. Some Ages may crash with this method, since it skips the SDL and python files, but I know it at least works with this Age.

Binary only(will only work if you're using Windows and have a d:) note: the previous sequence of glyphs is not a smiley face with a ballcap!

  • Download the binary: DrizzlePrp.jar on Sourceforge
  • Create the folder D:/a/leftoff/output/ (if you don't have a d:, you'll have to go the source code route)
  • Run it (you'll need Java)
  • Make sure the 'absolute' option is selected in the radio buttons.
  • Use the 'Select' button to select the file 'GuildPub-Writers_District_Pub.prp', wherever you keep it.
  • Click 'Recompile Prp'
  • You should now have the modified form of the prp in D:/a/leftoff/output/
  • Do the last 3 steps with all the other prp files for that Age(i.e. GuildPub-Writers_District_Textures.prp and GuildPub-Writers_District_BuiltIn.prp)
  • Copy these new prp files, along with the .age and .fni (unmodified) to your Pots /dat folder.
  • Follow the steps you normally do to update the .sum file and link to the Age.
  • Cross fingers

From source with Netbeans(recommended):

  • Download the source (it's in the DrizzlePrp folder of the zip file on Sourceforge)
  • Open with Netbeans
  • Set the paths near the start of Gui.java(There are 3 of them, the moul folder(read only), the output folder(read/write) and the pots folder(read only, optional) This is also all you have to do to let it run in Linux.
  • Run it
  • You can either a)click the 'moul' radio button and select 'GuildPub-Writers_District_Pub.prp' from the dropdown list or b)click the 'absolute' radio button and click 'Select' to point to the file manually.
  • Click 'Recompile Prp'
  • You should now have the modified form of the prp in the output folder you set above.
  • Do the last 3 steps with all the other prp files for that Age(i.e. GuildPub-Writers_District_Textures.prp and GuildPub-Writers_District_BuiltIn.prp)
  • Copy these new prp files, along with the .age and .fni (unmodified) to your Pots /dat folder.
  • Follow the steps you normally do to update the .sum file and link to the Age.
  • Cross fingers

(For Developers) Pythoncommand.txt Info

This file is a way to not have to go through the Python compilation procedure for each change you wish to make. It also allows you to fix bugs without modifying the original Age's Python files.

functions:
  dostartupwork: is called when the game first loads up.  It sets some flymode parameters and registers a bunch of keys.
  execute: is called when the 'M' key is pressed. Useful for testing things.
  linkToAge: links you to a given Age
  setTimer: sets a callback timer.
  OnTimer: is the callback for 'setTimer'
  showJournal: displays a particular Journal.
  showNotebook, showBook: displays books with given text.
  getsdl: gets an SDL variable.
  setsdl: sets an SDL variable.
  objectToString: dislays the object as a printable String.
  output: writes a message to 'uruutilsoutput.txt'
  getAgeFilename: returns the current Age name.
  showhideobj: show or hide an object.
  togglesdl: flip boolean SDL vars.
  msg: all debugging messages should go through here, so it provides a handy way to change where they are output to, for example, the screen.
  handleAgeLink: called whenever a new Age is linked into.
  handleKeystroke: called whenever a handled key is pressed.
    setstate: a helper function for handleKeyStroke
    link: a helper function for handleKeyPress
  moveto: moves your avatar to the given position.
  movetoobj: moves your avatar to the given SceneObject.
  jalakcommand: sends a message to the jalak python file.
bugfixing functions:
  jalakbugfix2: fixes the bug where jalak walls are impassable.
  jalakbugfix1: fixes the bug where spheres and ramps would get stuck in mid-air.
  negilahnbugfix1: fixes the bug where the Negilahn book would show up on the bookshelf.


Release pack

This is a user-friendly test release of the converted files.

Installation

Instructions can be found in the 'Drizzle Readme.txt' file, towards the end.

Known Compatibilities

It's known to work with:

  • OSs: WinXP, Vista, Linux through WINE(at least some versions)
  • patches: flymode, nocdpatch, UruAgeManager, UruLibraryManager
  • Uru versions: PathOfTheShell, CompleteChronicles