CHANGES from v0.4 to v0.4.1

---------------------------------------------------------------------------
This file will just list changes in the core packages 
(q2java, q2jgame, baseq2). Add-ons will have to list their own changes.
---------------------------------------------------------------------------

==== No changes to the DLL ====


q2java.NativeEntity

    Added:   getPlayerViewOffset() accessor function.
    
q2java.Q2JavaSecurityManager

    Added:   Ability for games to create ClassLoaders. 
             Not sure how dangerous this is, but was necessary to be able
             to get ResourceBundles (for formatting dates and such)
             
q2jgame.*

    Added:   Withnails' ClassFactory system, allowing easy substitution of 
             the module that finds game classes
           
    Changed: The use of the word "Package" was changed in most places to
             "Module".  So now instead of typing things like:
             
                sv addpackage barryp.telnet telnet
                sv removepackage telnet
                
             you'd say:
             
                sv addmodule barryp.telnet telnet
                sv removemodule telnet
                
             The syntax for specifying a specific module's svcmd is now
             <alias>.<cmd> instead of the old <alias>:<cmd>.  Switching
             from a colon to a period makes it more Java-like, and doesn't
             require using the shift key, which seems to work intermittently
             on a dedicated Q2 server.                                         

baseq2.GameModule

    Added:   svcmd_vwep() - turns VWep support on and off
             isVWepOn     - Check whether VWep support is turned on.
             
             svcmd_cheating() - turns Cheating on and off
             isCheating()     - check whether cheating is allowed or not.
    
    Changed: timeToQuit had incorrect typecast when checking player scores, 
             causing "FragLimit" check to fail.

baseq2.GameObject          

    Added:   getSpawnFlags() and getTargets() accessor functions, to fix the 
             problem with compiling baseq2.spawn.func_train where it complained
             about accessing protected members. "protected" is more complicated
             than I thought..and a subclass can't access the protected member of
             another class that's separately descended from the common superclass.   

    Changed: Fixed check for worldspawn to simply look at the boolean flag that's
             already being passed (doh!)

baseq2.GenericItem

    Changed: Added the behavior of dropping to the floor after spawning, so items
             don't just hang in midair, and ride platforms & trains properly. Part 
             of this involved setting default Mins and Maxs, which may have fixed
             the problem with having to run -exactly- over an item to pick it up.
             
             Player screen flashes when item is picked up (thanks to Tom Winzig)             

baseq2.GenericSpawnpoint

    Changed: Viewangles now defaults to (0,0,0).  Some map spawnpoints don't 
             have "angle" or "angles" parameters, which was causing some 
             spawnpoints to cause NullPointerExceptions to be thrown, and 
             prevented the player from moving.
             
baseq2.GenericWeapon

    Added:  getIconName()   - get the name of the icon representing the weapon object.
            getWeaponName() - get the name of the weapon.
            getAmmoName()   - get the name of the kind of ammo the weapon uses
            getAmmoCount()  - get how much ammo the weapon is carrying inside it.
             
baseq2.Player
    
    Added:   cmd_id() - identifies the player in your crosshairs.
             cmd_giveall() - gives a player all the weapons 
             (for debugging of course!)
    
             Tom Winzig supplied code to flash the screen when a player 
             picks up an item, and changes the screen color when under water,
             lava and slime.  addBlend() and calcBlend() methods mainly.
    
    Changed: die() method wasn't setting proper animation in the case of 
             extremely violent death (health <-40) - because the real gib 
             code isn't implemented yet.  Set to display a normal death 
             animation for now.
             
             Brian Haskin added refinements to the scoreboard, including
             cmd_putaway() to clear it by hitting ESC, and refinements to the 
             armor handling/icon display.
             
             Altered the methods for adding weapons.  Now they just require
             either the java.lang.Class of the weapon, or a class name.
             
             sexedSoundIndex() renamed to getSexedSoundIndex()
             
             Simplified and generalized the player animation to help with 
             VWep support.
             
baseq2.spawn.func_train

    Changed: now uses GameObject.getSpawnFlags() and GameObject.getTargets(), so
             the class will now compile cleanly in JDK.  
             
             (Thanks to mkuehl@inforopa.net for pointing out that J++ reported the 
             same errors compiling this class as the JDK, causing me to -really- 
             read the docs and see why they were unhappy)
             
baseq2.spawn.weapon_*

    Changed: setFields() now sets the name of each weapon's icon.