
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