Fri 28 Sep 2006

 

    -       ATML 'print' event handler erases any active input control before appending text to page

 

Fri 8 Sep 2006

 

    -       Fixed bug that could cause physical_space::object_picking_ray() to oscillate and

lock up when firing ray at two coincident OBBs

    -       Check for presence of wielded object before picking up another in the same hand (revealed bug above)

    -       Idea: IIgnitionSource's default active action (assuming it's unwieldable): try to

ignite an in-hand IFlammable object if there is one?  Why just in-hand?  What if there are multiple

IFlammable objects?  Better idea: Default actions that take IOs require drag-and-drop, just for consistency.

 

Sun 28 Aug 2006

 

    -       Initial implementations of IFlammable and IIgnitionSource

    -       Implemented flint_and_steel, including the ability to set stuff on fire with it

    -       Added on/off status to light sources

    -       Basic ENLI mechanics to support drag-and-drop IO actions

 

Thu 24 Aug 2006

 

    -       Added model-index parameter to physical_object::render() to support objects like torches that

            need to take on varying physical appearances.  The primary model identified at load time

remains the only supported basis for wearing, animation, and collision volumes.

 

Fri 18 Aug 2006

 

    -       Burned-out/normal torch models in Maya; work on supporting multiple models per file

 

Mon 7 Aug 2006

 

    -       Spent a lot of time figuring out why skeletal-animated torch flames were inverted in Y relative to

            unskinned torch flames.  Turns out that Maya applies a different local-axis frame to joints

            versus unskinned geometry, controllable via the Skeleton ->Orient Joint dialog.  By default,

            a joint's local X axis is that of the bone leading away from it.  If this frame doesn't coincide with the

            world-coord frame, then any rotations applied to that bone, including the rotation used by the Granny

            exporter's MoveToOrigin feature, will not be identical in world space. 

This effect can be remedied by using the GrannyGetModelInitialPlacement4x4() rotation

during world-transform construction at runtime... or by setting the Skeleton->Orient selection to 'None'.

For now, we'll use the initial-placement orientation everywhere we construct a transform.  This

is awkward in a few places (such as IK), but it may prove more stable in the long run

   -        Worn objects now have the same space considerations as wielded ones (see below)

   -        Default (0-degree) facing direction is now +Z for models imported from both Max and Maya, as a

            consequence of the initial-placement transform

 

Fri 5 Aug 2006

 

    -       Modelled an emitter object for torches, plus positioning/orientation updates.  TODO: model_filename needs to be an array...

 

Thu 4 Aug 2006

 

    -      Spent a lot of time figuring out why wielded torches caused Granny errors in camera.begin_frame()

when dropped from a wielding position.  Problem was that wielded objects were not being taken out of

KINEMATIC_CONTROL mode by game.drop_object_into_space().  They were subsequently triggering

kinematic collisions of depth < MIN_KINEMATIC_DEPTH when returned to KINEMATIC_CONTROL

after their fall into inventory space.  This was a problem because generate_collisions() was failing to

ignore kinematic collisions with zero valid contact points, so the torch's position ended up

at -1.#QNAN0.  The torch's light emitter then updated its shadow-camera position with the NAN, which

caused GrannyRayIntersectsPlaneAt() to fail

 

Sun 30 Jul 2006

 

     -      Spent a lot of time figuring out why torches weren't illuminating the inventory space when dropped

from a wielding position.  Problem was that items owned by the PC were being updated and rendered

by the PC... without verifying that they actually occupied the same space as their owner.  Consequently,

they were being updated twice per frame.  In the case of torches, the first update took place in world

space, setting the light source's "surveyed" flag for the frame so it was never being linked to any

objects in inventory space

 

Mon 17 Jul 2006

 

     -      Added multithread protection to Eden's small-block allocator.  This implementation isn't great for

applications with any amount of concurrency, but it'll prevent the memory corruption symptoms

that EDBUG has been exhibiting since the recent optimization work

 

Thu 14 Jul 2006

 

     -      Added vector.is_zero operator

     -      Some IK maintenance work (TODO: had to lower n_links from 2 to 1 to avoid left-arm deformation when carrying torch... why?)

 

Tue 11 Jul 2006

 

     -      Eden fix: instances being compared for equality weren't being type-checked

     -      Dialog base class uses new, more-explicit subpane names to reduce confusion

     -      Palettes are no longer physical_spaces.  They handle their own object containment,

and they don't need active-set, physics, or lighting support.  TODO: try to break dependencies between

cameras and physical_spaces; it would be lame to force palettes to inherit from physical_space just to make

translucency work.  And make sure that physical_objects are OK without a valid space association...

 

Mon 10 Jul 2006

 

     -      Always use clipped panes for 3D-related functions (fixes offset highlight boxes in clipped panes)

     -      User objects in palettes drawn with filled footprints for easy recognition

 

Sun 9 Jul 2006

 

     -    Asset browser dialog may be dragged by its header

     -      TODOs

                        - Fix behavior of physical_object::highlight_selected() in clipped panes

                        - Fix placement/deletion problems with user objects in asset browser

 

Thu 6 Jul 2006

 

     -    Perforce batch files for schedule maintenance

 

Wed 5 Jul 2006

 

     -    physical_space::ray() no longer ignores coincident terrain/path hits

 

Mon 26 Jun 2006

 

     -    Current preproduction TODO list

            - Postponed:

                        - Height map editing