CHANGELOG
=========

This file contains a listing of modifications to dreamblade.
Dates are included.  All changes by <bsturk<-A-T->comcast.net> unless
noted.  Newest changes are at the top.

11/17/24 - 2.1.0

    * Switched to newest wxWidgets (3.2.6) and ported to 64 bits.
    * Correctly remove sustained effects if affected piece leaves play.
      If multiple pieces are affected, remove piece from affected list.
    * Consolidated a bunch of platform specific functions to be more common.
    * Fixed bug w/ blade assignments and locations.
    * Fixed an issue with triggered abilities not handling base class trigger
      conditions.
    * Updated exchange_pieces ability to allow any number of exchanges, 
      not just 1 for 1.
    * Implemented most of the 60 pieces from the new (well, 2018) fan based
      expansion, Daybreak.  This includes support in the UI as well as 
      generating sealed content using the set.
    * Fixed references in ability descriptions to die faces to be {face} not 
      (face).
    * Updated modify_attack_dice_values ability to support adding a new die
      face to the roll in addition to changing them.
    * Updated engine to support attacking your own creatures (Rover)
    * New ability, special_attack_multiple_when_entering_cell (Rover).
    * Made Charge more generic and renamed it to special_attack_single_when_entering_cell.
    * Made Bloodthirsty more generic and renamed it to action_post_combat.
    * Fixed Drunken Master, had Bloodthirsty in a static_abilities block.
    * Fixed Fiendish Hybrid, had Bloodthirsty in an activated_abilities block.
    * All uses of 'cannot' in ability text -> can't
    * Updated IN_GRAVEYARD condition to be shown as {Graveyard}
    * New ability, piece_cant_shift_or_strike.
    * New ability, piece_cant_strike.
    * New ability, piece_cant_shift.
    * Added new hook, can_piece_strike.
    * Added support for specifying discrete number of pieces for targets
      with -1 being unlimited (by piece_conds).
    * Fixed 64 bit issue with setting current_combat, one case was still
      setting it as an int, not a ptr.
    * Fixed long standing random (but infrequent) crash with allocating
      string buffers for g_ltoa.
    * Added support for all activated abilities to utilize an activation
      cost discount calculation/hook.
    * Fixed Animated Standards ability descriptions to include 'Madness'.
    * Removed mingw.dll from windows zip, no longer needed.
    * Upgraded to wxWidgets 3.0.5 for Windows build.  New toolchain as well.
    * Migrated project to 64 bits.
    * Tweaked a lot of the custom pieces stats based on the algorithm I have
      for costing pieces (using a regression algorithm w/ released set data)
    * Removed double -- from effect_add_to_combat_damage.
    * New custom Inspired Ranger.
    * Fixed an infinite recursion issue w/ handling multiple destroy replacements.
    * New custom 3 Armed Bandit.
    * Fixed effect_move_to_opponents_zone_if_target_destroyed (Inter).  Wasn't
      removing destroy hook if player chose to not activate the ability.
    * Completely revamped destroy replacement effects to ensure they are executed
      in order.
    * add_to_combat_damage_x_target ability now supports other attributes other 
      than power.
    * Renamed piece_conds -> piece_action_conds for action_and_activated_ability.
    * Added piece_damage_conds to action_and_assign_damage ability, both activated
      and triggered.
    * Fixed filename of Arachnaphobian.
    * Correctly implemented Beacon ability which wasn't adding cell to
      spawnable cells.  Also correctly cleaned up hooks.
    * Commonalized spawning logic in phase_spawn and Beacon ability.
    * Mindthief now correctly resolves with event containing targets chosen for
      reactive abilities.

06/11/19 - 2.0.6

    * Fixed crash with effect_move_creature_between_zones_if_target_destroyed and
      registering the destroy_piece_hook.
    * Fixed crash with simultaneous triggered abilities causing a piece
      to leave play and a special attack not checking if targets that
      were present when triggered are still there when resolving.
    * Optimized action_disrupt.
    * action notify pointer now goes through undo engine, was causing subtle
      issues not putting through undo.
    * Added missing opponent_gains boolean to Possessed Poinsettia's XML def.
    * Fixed a debug issue w/ initializing warbands for the option
      to dump pieces to stdout and the warband builder.
    * Fixed some warnings w/ mingw build.
    * Removed some debug prints that were enabled in release mode.
    * Fixed a state/undo issue w/ effect_gain_static_abilities.
    * Fixed issue w/ activated_static_ability.  It was enabling the aggregated
      static ability more than once through the sustained effect.
    * Fixed Klepto's XML def.  It cannot use combat blade abilities.
    * Fixed issue w/ Toss and abilities that "steal" or "rip" blades.
    * Fixed issue w/ Vortex.  Some cells had the wrong clockwise/counter clockwise cells.
    * Fixed bug with in_play_zone() function. Was including not in play zones.
      Should fix a lot of subtle gameplay issues and bump performance up a little.
    * Fixed an issue where the action group string was going past the end of
      buffer, corrupting the stack.
    * Add missing <name> to xml def for Carrion Warcharm.
    * action_destroy replacement now handles listening for destruction for setting
      was_destroyed.
    * Improved replacement effect handling for action_destroy.  If a replacement
      effect does not result in destruction, the player continues to resolve
      replacements until it is resolved or there are no more replacements to resolve.
    * Added a new state change type, state_change_vector_int.
    * Small non-gameplay related change to sort warbands based on display name
      to ensure better chance of reproducible games w/ same warbands and random
      seed.

07/21/18 - 2.0.5

    * Added note to welcome dialog that Ctrl is mapped to Cmd on the Mac.
    * Fixed crash w/ updated wxWidgets when handling keypresses.
    * Fixed Carrion Warcharm's XML def.
    * Migrated code to wxWidgets 3.x for MacOS.
    * Ported code to work on 64 bit MacOS.
    * Fixed issue with double submissions of event registering for Detonate.
    * Fixed issue where piece marked for both disruption and destruction and
      getting a deathblow would get an additional deathblow (in their empty
      cell after being disrupted).
    * Added check for number of turns getting very high (>200) 
      during AI -vs- AI at low minmax depth.  This happens when
      both reserves are empty and the AI just moves pieces back and forth.
    * Fixed issue w/ Ferocity abilities used by Rage of One were not given an 
      initial controller.
    * Added u-z to display characters in the event a warband has more than 20 minis.
    * Fixed mismatch of Ninja Instructors Halo Crit 2 to description which was Crit 3.
    * Added missing initialization of controller to copied abilities.
    * Put in check for Copy Enemies ability's owning piece to be in play.
      There were never enemies in zones other than in play.
    * Fixed spelling error w/ The Gallows activated ability long description.
    * Revamped how Blackmail is handled.  Now correctly gives control of an
      ability for the duration of the activation.  It was never properly handled
      before giving permanent control to the opponent.
    * multiple_actions_and_move_single_x now verifies that actions actually happen.
    * Updated Grand Hive to check for unique and also verify cell is able to 
      be spawned into (i.e. blocked by Soul Harrow).
    * Updated move_multiple to track targets and resolve the ability with those targets.
    * Added always_on parameter to spawnable_cells_modify.  This set to false 
      keeps Yazrael, Dreadfiend's Soul Harrow ability from being in the spawn
      cell path when not in play.
    * Updated Shapeshifter ability to verify the sacrifice happens before
      spawning.  Also ensured it handled resolving when either sacrificing or passing.
    * Fixed issue with action_and_add_to_combat_damage, banish and sacrifice
      were ignoring the conditions and just doing the action to the owning piece.
    * New event info for piece_removed_from_game.
    * Added support for piece conditions and damage calculation for action_and_assign_damage.
    * Fixed action_and_assign_damage, it was not handling the notify of actions correctly.
    * EVENT_ID_PIECE_DISRUPTED_MOVED and EVENT_ID_PIECE_DISRUPTED_MOVED now both
      send the same event for consistency.
    * Big change to ensure that effects or abilities that trigger off an action
      such as sacrificing and banishing actually happening before allowing effect. 
      Relevant actions and abilities were all updated.  This is now common code, 
      and doesn't need to be done per ability/effect.
    * Fixed rare crash with action_destroy.
    * Moved damage calculation for ABILITY_TYPE_ACTION_AND_ADD_TO_COMBAT_DAMAGE_ACTIVATED
      until after action resolves in the event the game state has changed after
      the action is executed.
    * Added option for opponent gaining conquest points from 
      ABILITY_TYPE_ACTION_AND_GAIN_CONQUEST_POINTS.
    * Added check for unique when handling Beacon ability.
    * Handled active (priority) player determination during the initiatve phase
      when there is a tie with both initiative and victory points.
    * Made some small performance improvements.
    * spawn_no_cost ability was not being notified of pass or spawn happening.
    * Renamed Alien Earwig's take control ability to Mindmend.
    * Added support for ABILITY_TYPE_TAKE_CONTROL_OF_PIECE_ACTIVATED being
      a 'may' ability.  Updated all relevant abilities.
    * Fixed Wail to take 'snapshot' of eligible creatures to banish.  Also now
      correctly updates context_piece of ability after each creature is banished.
    * Added missing wording about being in reserves requirement for Guardian Angel
      and Stained-Glass Angel.
    * Added ability category type ABILITY_TYPE_LEAP for Leap 2.
    * Fixed ability category of Carrion Warcharm's Valor-Edged Scare.
    * New custom McMaster.
    * New abilty activated_ability_if_action_during_combat.
    * Fixed potential issue with not allowing multiple triggers of Bloodthirsty
      for a single ability instance.
    * Fixed Divine Weaver, Nascent Hope, Nascent Potential, Nascent Desire,
      Nascent Doubt, Unificator, Ancient Valkyrie, and Gent symbol usage, (...) not {...}.
    * Migrated Windows project to Visual Studio 2010 which fixed a crash that was
      happening with cross compiled mingw32.
    * Fixed up some MSVC compilation issues needed to allow debugging of Windows crash 
      with 2.0.4.

06/03/17 - 2.0.4

    * (wx) Updated compilation issues w/ wxString constructors after moving to new
      version of wxWidgets.
    * (ncurses) Fixed issue w/ redrawing event status line over a previous longer
      line with some TERM settings.
    * Shackle can trigger infinite loops w/ pieces that attack when entering a
      cell.  Put in code to detect this and end the game in a draw.
    * Added infrastructure for ending the game in a draw due to an infinite loop.
    * Updated ncurses UI to show modified initiative value in the status area.
    * Fixed issue w/ Nitro applying to both players if both players rolled 1s for
      initiative.  Also fixed infinite loop issue if both players had an active Nitro 
      ability and both rolled 1s during the initiative phase.
    * Fixed infinite loop issue w/ Knight of the Bronze Horn's Lead ability.
    * Integrated image for Reactive abilities and removed use of '%' for the symbol.
    * Fixed crash with the cant_be_disrupted ability.  Was incorrectly handling
      the EVENT_ID_PIECE_DISRUPTED_NO_MOVE event.
    * Fixed issue with UI arguments not being handled correctly.
    * Fixed issue w/ transitioning from the initiative phase to the spawn phase.
    * Fixed issue w/ debug printing and mutex used for handling multiple threads 
      printing at the same time.
    * Fixed Aggrocopter's defense 5 -> 6.
    * Added missing Stitched lineage to Failed Experiment.
    * Consistent use of '+' when stating something is being gained.
    * Luminous Muse's Tempt Madness was missing the Madness from the short and long 
      descriptions.
    * Insubordination (Engergy) -> Insubordination (Energy 2)
    * New custom Junk Golem.
    * New custom Ylang Ylang.
    * New custom Bouncing Betty.
    * Made the Toss ability more flexible and updated Grinder to comply with the new options.
    * Updated Colonize to make any any cell claimable as per the FAQ (not a scoring cell).

04/26/15 - 2.0.3

    * Added check when targetting enemies with Spur to ensure in play.
    * Increased the buffer size for reading in lines from warband files.
      Longer comments were being truncated and causing warbands not to load.
    * Fixed issue with handling damage outside of combat and group abilities.
      Disruption and destruction is now checked after resolving all triggered
      abilities due to a part of group ability happening per the FAQ.
    * Added new field to move_multiple_activated, may_at_start_only.  This
      fixes Advance/Skirmish All which now prevents only moving some of 
      the targets after starting movement.
    * New abilities action_multiple_activated and action_multiple_triggered.
    * New condition, piece_none, for using part of multi-segment abilities.
    * Fixed issue with Spur, an optimization to prevent checking the same
      zone more than once was not taking into account which piece was
      being checked before doing so.
    * Fixed issue with trigger_action_phase_entered.  Was never checking
      Player 2.  Also was always passing in owning_piece->controller
      to check on which phase was chosen.
    * Fixed issue w/ Pacify having sustained effect if any creature was
      disrupted or destroyed during combat, should only happen if the ability
      owner is disrupted or destroyed.
    * Updated Falling Man's Splat ability.  It was triggering and not resolving
      when both players got a spawn phase, should trigger only when a player
      is not getting a spawn phase.
    * Fixed Tattooed Squashbug's (and some custom's) Shapechange ability
      was triggering with locations.
    * Fixed Nitro ability.  Was able to manipulate during the spawn phase (i.e.
      by moving it out of a scoring cell) when the ability is resolved in the 
      initiative phase.
    * Fixed issue with zone_is_scoring_cell condition.  Had inverse logic for
      handling special case of checking for a scoring cell worth X points.
      This fixes Illuminati Pyramid and Cookie Beast.
    * Fixed Forgeblind Smasher's Smash ability.  It is single blade, not double
      blade.
    * Added missing Hellbred lineage to Putrid Princess.
    * Fixed Tower of Unquenched Flame to only hook during a (potential) 
      spawn phase.  Hooking during the initiative phase broke Splat per the FAQ.
    * Fixed Heart Thief's Energy Feed ability.  According to the FAQ
      this is determined during the initiative phase, not at the beginning
      of a spawn phase (before entering the spawn phase).
      Also added a new event to allow this to resolve after Rewind (both players
      have rolled) and before Splat (end of phase).
    * Fixed Soulwash Temple's XML def.  It's triggered CiP ability was in
      a static_ability block and not triggering.
    * Changed attack damage stack to allow going negative to handle things
      like Fumble 5 correctly.  Before assigning damage, if negative
      it goes to 0 as damage cannot be < 0.
    * Updated Bewitching' Assassin's filename assasin -> assassin.
    * Made Bliss' Warpstrike All 5 a may ability to handle choosing no target
      creatures.
    * Corrected Bliss' description for Blight.
    * Added support for pressing 'Escape' key in wx GUI warband dialog to exit it.
    * Updated Colonize to work with updated effect_conquest_for_cell_if_claimed.
      You can no longer Colonize any cell, only ones marked as scoring for
      players on the board.
    * Added support to effect_conquest_for_cell_if_claimed to only allow
      for the fixed claimable cells for each player.  Default behavior
      made cells claimable for the duration of the effect.
    * Fixed multiple issues w/ Soul Harrow ability.  Was allowing locations
      to be spawned in the same column.
    * Renamed custom Morpheus, Lord of Dreams' ability Raise -> Revive
      since it also allows locations.
    * Fixed Raise ability, was allowing locations should only be creatures.
    * Updated doc/making_customs.txt about variable attributes.

03/07/15 - 2.0.2

    * Updated doc/README to be current with my new web storage and updates to the
      engine.
    * Fixed Unknown Kadath's Unstable ability.  Was triggering on phase_enter
      which at that point strike/shift has not been decided, changed trigger
      event to CONDITION_TYPE_TRIGGER_ACTION_PHASE_ENTERED.
    * Made trigger_action_phase_entered_controller more generic and added a flag
      for controller only.
    * Updated move_or_action to take a flag, move_all_at_once.  This was
      mostly for Corpsebuilt 2 since the FAQ states 2 have to be moved or none
      so the moves should be done atomically and checked at the time of
      triggering rather than 1 at a time.
    * New effect move_pieces.
    * Fixed Equitar's Corpsebuilt 2 long description Sacrifce -> Sacrifice.
    * Fixed variable shadowing issue that prevented Warmonger's Grand Melee 
      from gaining blade abilities of local allies when triggered.
      Also fixed the issue w/ assigning damage to opponent's creatures 
      in that cell (eligible was passed by value, not reference).
    * Fixed an issue w/ the wx GUI.  The filter pieces dialog for warband
      creation would continually re-populate the controls, making multiples
      of combo box entries.
    * Fixed Protect ability, was checking pieces to be local after piece with
      Protect was disrupted, changed to check conditions with respect to context
      zone for disruption.
    * Fixed The Sweeper's Timely Betrayal.  Was not working correctly due
      to the wrong xml parameter being passed in for action_type.
      Also, some of the action types were not setting the notify parameter
      correctly, so the effect to prevent damage from being assigned was
      not executed.
    * Added power, defense, life, and rarity columns to warband builder dialog.
      Also increased its size based on the user's desktop size.
    * Fixed Greenlife Dryad's aspect cost, it is P, not PPP.
    * Added owning piece in play trigger condition to Faceless Vigilante's 
      Lost Revenge 4 ability.  Also fixed its XML definition,
      previous_zone_conditions -> prev_zone_conditions.  This ensures
      only local or adjacent Lost allies trigger Lost Revenge.
    * Added missing Stalwart ability to Fireman.
    * Fixed Incomplete Masterpiece's Insubordination Assembly ability.
      For an odd roll it was returning true and would re-activate the ability.
    * Fixed Warlust Satyr's life, it is 5, not 6.
    * Added AI optimization for spawning locations.
    * Medusa's Petrify now just marks for destruction in combat per the FAQ.  
      In general the ability destroy_piece will behave that way.  In combat, mark,
      and out of combat destroy.
    * Added option to stop moving pieces at any point w/ move_multiple ability,
      not just during a move when the number of cells to move is > 1.
    * With strikes, the destroyer of a piece is now correctly passed
      to action_destroy ensuring rules about granting of conquest points
      are honored (i.e. Death Cycle not awarding opponent conquest for
      destroying your own creatures).
    * Fixed Beacon ability.  Now checks if spawning cell is in allowed
      spawnable cells.  So Soul Harrow now blocks Beacon correctly.
    * Fixed Strikeback X ability.  Attack was being created but not being
      put on generated effects list.
    * Fixed Birthing Frog's power, it was set to 0 when it needed to be -1
      to be treated as variable.
    * Fixed Copper Skeleton's Offering Boon 1 xml def, was missing some
      conditions.
    * Fixed Offering Boon w/ Mindlock'ed creatures by adding player_conditions to
      trigger_piece_sacrificed and adding player_is_ability_controller to conditions.
    * New condition player_is_ability_controller.
    * Added new by_player to piece_sacrificed event, this fixes Fountain of Shades 
      working with Mindlock'ed creatures.
    * Fixed Ferocity ability.  It now correctly marks the piece for destruction
      after replacing disruption.  Also check if already handled in a pass to allow 
      for handling in next pass, allowing for deathblow, etc.
    * Fixed Red Reaver's Annihilate 5 ability, it is a single blade, not double.
    * Fixed Sybil's Splinter ability, it was allowing the distrupted Sybil piece
      to be spawned, not a piece in the player's reserves.
    * New warband "Two Faced Janus" by sawbladex.
    * Added missing Janus lineage to Mirrorman and Animated Standards.
    * Made Spur more correct as far as ability wording.  You can now target an
      enemy with no local allies thus not doing an attack.
    * Fixed Knight of Strife and Joy.  Was limiting its Skirmish 2 to local allies
      which was not correct.
    * Fixed issue w/ spawn_cost_modify ability (i.e. Channel Hiveling 1).
      Was enabling the static ability when it was specified to be "in play only".
    * Fixed issue w/ synergy_x ability (Swarm Synergy X, Bloodcut Synergy X,
      Monstrous Synergy X, etc).  Logic for xml setting "only when owner in play" 
      was inverse.
    * Fixed issues w/ Bloody Glory X.  Was incorrectly checking for creature damage
      when anything happening during combat is fair game.  Also cleaned up logic
      removing check for participating when already done when triggered.
    * Fixed activated_static_ability and activated_triggered_ability.
      They now create a sustained effect after being activated.  Previously
      they did not work since once the activated portion resolved, the ability
      could potentially go away.
    * New effect, gain_triggered_abilities.
    * Replaced broken lineage string handling in Deathswarm X Y.  XML
      now takes desc and desc_long.
    * Added missing notify handler for removing a piece from the game to
      action_and_activated_ability.  Was affecting Purgatory Respawn.
    * Added new parameter to can_zone_be_entered_into_by_pieces to take an ignore
      count.  This allows a 1 to 1 exchange to work correctly for abilities like
      Deathswarm.
    * Fixed issue w/ RageStrike X/Y.  An optimization I had put in was causing
      this to not finish the attack.
    * Updated all activated abilities to ensure they resolve or resolve with pass
      allowing Edged and Reactive abilities to trigger.
    * Added notification to Venom ability to be pinged when effect has finished
      so the ability can send out a resolved event.  This was keeping Edged
      abilties from triggering.
    * Added scoring cell condition for Stormrider Shaman's Energize Bloodcut 2
      ability.
    * Fixed Toxic Sirroth's Venom 1 ability, it should be a multiblade activated
      ability.
    * Fixed Caged Grawlth's Constrained ability.  Was acting like Defender.
    * Made the Lead ability copyable.
    * Cleaned up Knight of the Bronze Horn's ability Lead.  It now correctly
      ensures the piece goes to the same cell, and also allows for the may part of
      the move portion of the ability (up to 1).
    * Added missing Madness qualifier to desc and long desc of Bladespine
      Eyesack's Appease ability.
    * Fixed Armadillo Shieldbearer's multiblade Crit, it should be Crit 1, not 3.
      It was also missing an XML block containing the activated ability.
    * Added missing Janus lineage to Battleweaver.
    * Fixed Tower of Faces Warpstrike, it should be Warpstrike 7, not 2.
    * Fixed Queen Chrysota.  Her Channel Hiveling was working while not in play,
      and she also had Expel, which she shouldn't.
    * Fixed win32 makefile target, was not adding .exe to the end of the binaries
      so was picking up Linux binaries.

01/15/15 - 2.0.1

    * Updated README on infinite combos.
    * More progress on Cocos UI.
    * Fixed issue w/ deal_damage_triggered.  In some tricky interations
      this could get triggered additional times before resolving, so
      now each triggering puts a self contained effect on the stack.
    * Fixed issue with effect remove_from_game_if_target_destroyed.  Was
      not setting owning_ability so destroy replacement effects didn't work
      correctly.
    * Made move_single_triggered ability copy'able (for Team Blitz).
    * Fixed crash w/ Nascent X's Conceive {Aspect} 2 abilities.  Were all set 
      to look at parent ability's X cost, which was wrong.
    * Updated Nascent Desire's long description.
    * Fixed Earwig's ability text, enemy creature -> enemy.
    * Fixed print out of debuging flags to be hex.
    * Fixed default for console version not showing board.
    * Fixed Mac Plist file, an accidental change of a character was preventing app
      from running.
    * New custom Sea Sprite.

03/26/14 - 2.0.0

    * Fixed Hungry Ghost, had 2 copies of Bloodlust ability.
    * New custom Bane Cultist.
    * New custom Cloud Seeder.
    * New custom Unificator.
    * New ability gain_aspects_fixed.
    * New condition piece_aspect_cost_highest.
    * Makefile updates to support building and packaging different UI versions
      of the app.
    * Added empty cell condition to Seasoned Veteran's Teleport Refuge
      Self ability.
    * Updated the wording on The Morgue's Corpse Harvest 1 ability.
    * New custom Nullscreamer.
    * Added value argument to condition zone_is_scoring_cell.  This allows
      for only matching scoring cells of a particular value.
    * Made condition zone_is_closer_to_match_zone_for_reference the more
      generic zone_is_closer_to_match_cell w/ a flag for closeness in respect 
      to reference or target piece.
    * New custom Miner Slave.
    * New custom Gigabite.
    * New custom Infernal Lawyer.
    * New custom Rocket Sled.
    * Updated the long description of a bunch of abilities to properly
      use a comma (i.e. At the beginning of your spawn phase, where X, etc).
    * Changed Cookie Beast's ability name to Territorial 1.
    * New custom Technogoyle.
    * New custom Motivational Speaker.
    * Updated Big Top's long description.
    * Upgraded my dev environment to a newer XCode so OS X build is now
      done w/ clang instead of gcc.
    * New custom Glorified Squire.
    * New condition piece_is_unique.
    * Updated the stats for Pet Project and Felis Abjurer.
    * New custom Honored One.
    * Added ability_piece_conditions to ability cant_be_target, allowing
      for checking piece w/ ability to be not of a certain aspect/lineage, etc.
    * Updated Spirit Vault to use X icon rather than the text 'X'.
    * Updated Schoolyard Bully to use Shield icon rather than the text 'shield'.
    * Removed local specifier for Spiritslayer's Dissolve ability.  Was never
      part of the ability.
    * Updated Miss Discipline's ability text to specify duration.  Also now shows
      correct X spawn cost symbol in GUI instead of 'X'.
    * the -? flag now just shows usage instead of 'unknown option' then the usage.
    * Lots of plumbing changes for a new UI port (using cocos2d-x) (bumping up to 2.0)
    * New custom Patchwork Palace.
    * New condition piece_has_no_lineage.
    * New custom Nascent Desire.
    * New custom Nascent Hope.
    * New custom Nascent Doubt.
    * New custom Nascent Potential.
    * Fixed issue w/ Longstride triggering during opponents' shift phases.
    * Added an additional cost argument to piece_spawn_cost_equals_ability_x_payment
      and others to allow for X + num costs.
    * Fixed infinite loop bug w/ Hot Rod Lincoln's Collision 6 ability.
    * Revamped Beacon to be more generic.
    * New piece condition piece_aspect_cost_ge_than.
    * New custom Engine That Will.
    * Added a triggered variant of deal_damage.
    * New custom Bumper Buggy.
    * New custom Creamroller.
    * New conditions zone_is_clockwise and zone_is_counter_clockwise.
    * Made zone::vortex_clockwise and zone::vortex_counter_clockwise more generic
      and added clock/counterclockwise fields for all but central key cell.

09/25/13 - 1.0.55

    * Fixed exception handling, was crashing trying to print out winner when there
      is none.
    * Fixed crash w/ move_multiple_triggered.  Class layout was such that
      it caused memory corruption in base class when adding a new
      member continue_context_mv.  Most likely an optimizer issue.
    * New custom Firecracker.
    * Revamped Bomb ability to be more generic.  Now action_and_assign_damage.
      Also added triggered version and handling of resolution for reactive
      abilities.
    * New custom False Idol.
    * New custom Baku.
    * New activated version of remove_from_game_replaces_destruction.
    * Fixed crash with Reckless Hunger ability.
    * Improved the context wording for move_multiple when passing on moving as
      opposed to choosing targets.
    * New custom Rebuilding Block.
    * New custom Pet Project.
    * New custom Nowhere Node.
    * New custom Goldheart Wizard.
    * Bunch of changes to action_and_gain_spawn_points.  Honor bonus_points flag
      for non-spawn abilities, new flag which allows points to go to action'ed
      piece's controller, and correctly set context piece on resolving action portion.
    * New custom Commando Carnage.
    * New custom Night Princess.
    * Fixed Brainboom's Explosive Aneurysm ability.  Was not checking
      if in opponent's portal before decrementing victory points.
    * New custom Hellion.
    * New custom Ekkyon Vagabond.
    * New custom Arachnaphobian.
    * Tightened up action_and_activated_ability.  Needed to emulate
      action_activate_ability as much as possible but ignoring costs, limits.
      Also check for the ability to resolve.
    * New custom Dreamscape Realtor.
    * New calculation parent_ability_context_piece_spawn_cost.
    * Updated the templating of Haunted Warlord's Appease Local & Pacify Local 
      ability.
    * Updated the templating of Alien Earwig's Mindreplace ability.
    * New custom Pearlthorn Paragon.
    * New custom Lionheart Commander.
    * New custom Knight of Love and Hope.
    * New custom King Theodore.
    * New condition piece_has_lineage ('Lineaged').
    * New custom Platform Hero.
    * New condition zone_is_x_cells_away.
    * New custom Kid Glorious.
    * Fixed issue w/ effect_gain_static_abilities.  It was disabling the static
      ability when it should have been enabling it.
    * Fixed issue w/ not pruning all dup combinations w/ exchange_pieces ability.
    * Small optimization added to exchange_pieces ability.
    * Added new custom Gravedigger (Twilight).
    * Removed synergy_x's handlers for entering/leaving play.  Already handled by
      base class.
    * Fixed Hand of Oblivion's ability.  Wasn't working because the ability
      was being disabled when leaving play.  Added an always_on flag for
      remove_from_game_replaces_destruction.
    * Correctly initialize always_on static abilities.
    * Fixed issue w/ effect_gain_static_abilities.  Was not disabling the ability
      after removing the hook.
    * New ability Inter.
    * Added ability for destroy hook to pass in action_destroy.  Useful for may
      hooks which need to resume the original destroy action.
    * Implemented handling multiple replacement destroy effects.
    * New effect effect_move_to_opponents_zone_if_target_destroyed.
    * Handled case where assigning Venom to your own pieces gets handled as such
      for determining who destroyed the piece in the event enough venom
      is assigned to a piece to destroy it.
    * Fixed venom_mechanic and effect_destroy_if_target_disrupted.  Need to use a destroy_action
      so that things were cleaned up properly.  This is also needed to have a
      single place to resolve multiple replacement effects for destruction.
    * destroy_piece hook now has the ability to query if it applies to a
      particular piece.  Will be used for resolving multiple replacement effects.
    * Lots of plumbing changes to handle a piece owned by one player being able to
      go into an opponents out of play zone (until it enters play again which
      resumes normal play).
    * Added code to hook template class to query for number of replacements and
      modifier functions.  Paving the way to handling multiple replacement effects.
    * Added is_may flag to effect_move_creature_between_zones_if_target_destroyed.
    * Fixed a couple of issues w/ Boogeyman's Gloom ability.
    * Added set numbers for all Twilight pieces.
    * New custom Felis Abjurer.
    * Made gambit_put_single_piece_into_play more generic gambit_move_single.
      Also made a triggered version of it.
    * Cleaned up the templating of Doctor Shocksalot's Chain Warpstrike X ability.
    * lurid_ladybud.dxp -> lurid_ladybug.dxp
    * New custom Rocket Ape.

07/17/13 - 1.0.54

    * Fixed issue with semaphore usage w/ multiple threads.  Was causing
      hangs on Windows when enabling it.
    * Removed unused pthread wake_up_event.
    * Bumped Convertible Convertible's power from 0 -> 1.
    * LOTS of changes, fixes, additions to get the codebase compiling and running
      under Visual Studio.  This was necessary to debug a few Windows specific
      issues (lack of transparency on Win7 and the multithread hang).
    * Updated Splinter ability wording, it now mentions spawning into cell rather
      than put into play since that is what it is doing.  Also added check
      to ensure it is a different piece being spawned (to avoid infinite loop).
    * Slight change to how sacrificing a piece action shows up.  Some abilities
      allow choosing of an opponent's piece to sacrifice.  In this case, it will
      show "Choose to sacrifice" instead of "Sacrifice".
    * Fixed issue w/ Gelatinous Dude's Digest ability.
    * Fixed issue w/ take_control_of_piece treating return value of
      unique_in_play as a bool, when it is a piece*.
    * Cleaned up various warnings, some of which were marked as performance sensitive.
    * Fix for deal_damage_dice_modify, condition var ok was int and should be bool.
    * Fix for action_and_add_to_combat_damage, multiplier could never be over
      1 due to being treated as a bool.
    * New custom Dreamspoiler Witch.
    * Fixed a bug w/ the venom_mechanic.  It was incorrectly treating
      the info ptr for a leaves play event as a piece* not a
      event_piece_exited_play*.
    * New custom Knight of Virtue.
    * Fixed issue with pay_spawn_points_or_action ability.  Wasn't
      handling a piece leaving play due to simultaneous resolution
      of triggered abilities.
    * Bumped up cutoff for high depth action count w/ minmax AI, was preventing 
      pieces like Whirlwind Dervish from making good decisions.
    * Fixed issue w/ hybrid AI attempting to undo actions when none
      were done due to either end game or turn condition met.
    * Fixed some math issues w/ the hybrid AI, plays much better now.
    * Fixed a longstanding bug where some cells could not be spawned into
      a legal cell after spawning something.
    * Fixed issue w/ activated static abilities and pieces leaving play
      and re-entering play in the same spawn phase and being re-activated.
    * Fixed issue where spawn row cells were being marked as portals
      due to uninitialized variable.  This prevented them from being
      added to list of non-portal spawn row cells.
    * Twin of Akiza Guardian/Champion ability text, a Akiza -> an Akiza.
    * Corrected duplicated flavor text of Forgeblind Smasher.
    * Ghostghast's Incorporeal was spelled incorrectly.
    * Carrion Spiker's Thanatomancy was spelled incorrectly.
    * Windborne Blademaster's Dissipate was spelled incorrectly.
    * Added new member to zone class, in_same_row which has all other cells
      in that cell's row.
    * New condition piece_in_same_row.
    * Fixed issue w/ trigger eval for declared attackers.
    * Fixed issue w/ move_or_action ability (i.e. Replenishing Corpsebuilt)
      not checking if owning piece is in play before resolving after triggering.  
      A previous sacrifice of the piece due to a simultaneous triggered ability
      (i.e. Unwishing Well) could trigger the bug.
    * Fixed Nightfire Giant's XML def.  Its Crit +3 activation cost was
      mis-spelled.
    * Fixed Lost Scissors' XML def.  PIECE_ATTRIBUTE_LIFE was misspelled.
    * Fixed Grand Hive's XML def, was still using LEGEND instead of LEGENDARY.
    * Fixed crash w/ Twin-Skull Archway.  Logic checking damage type was shadowing
      ability piece.
    * Fixed issue w/ activated_ability not cleaning up instance specific 'memory'
      (i.e. x activation cost, activating action) when ability was done.  Would
      cause crashes when using more than 1 thread.
    * Fixed bug where activating_action of activated_ability did not go through
      undo engine.
    * Cleaned up AI optimization for spawning locations that have scoring cell
      abilities.  Logic ended up creating a lot more options than necessary and did 
      reundant things as well.

04/08/13 - 1.0.53

    * Spent a lot of time improving performance.  Eeked out about another 10% increase
      overall from the previous work done.  With the example warbands even a depth
      of 9 w/ minmax is do-able without it taking long at all.
    * Fixed issue w/ trigger eval for declared attackers looking at
      attack->attack_type which isn't initialized until attackers are declared.
      Instead, the event_info_declared_attackers has the attack type, so that is
      used.  Now The Pusher's Sucker Punch 5 works the first time a strike
      is declared.
    * Added a bunch of fun warbands I found on the web.
    * Fixed issue where special attacks ending up in the STATE_ATTACK_MARK_DISRUPT_DESTROY
      state, which should never happen.  Also fixes indirect reactive abilities
      which need to resolve after the ability that triggers it resolves.
    * The ability that allowed for only disrupting to occupied cells has been named
      Theatrics.
    * Updated Focused ability templating to handle losing victory points.
    * Fixed Tectonic Shepherd's Focused ability.  Was triggering but not
      resolving when out of play.  Was also triggering when not in a scoring cell.
    * Fixed Rewind ability.  Was triggering correctly but the order of players for
      action phases was not being updated appropriately and also necessary re-rolls
      were not happening (i.e. a tie in initiative and no way to resolve it).
    * New event EVENT_ID_PLAYER_REROLLED_INITIATIVE.
    * New event send macro for non event_entities EVENT_SEND_ANON.
    * Lots of performance tweaks.  Gained about 10% in performance after
      a lot of profiling and inlining expensive functions.
    * Fixed bug w/ dest_zone not being set early on after a strike was declared.
    * Fixed bug w/ action_strike being passed into action_declare_attackers
      instead of the action_regular_attack.
    * Optimization for regular attacks, if no shield actions, no need
      to exit and re-enter w/ new state.
    * action_assign_attack_damage and action_declare_atteckers now show cell in to_str.
    * Ability Legend -> Legendary.
    * Cleaned up damage assignment options.
    * Fixed issue w/ multiple Bodyguard pieces in the same cell for one player.

11/21/12 - 1.0.52

    * Added missing Quantum lineage to lineage_strs.
    * Added the Quantum lineage to a bunch of the customs where appropriate.
    * Changed "true" and "false" for creature/location in warband editor to be
      "yes" and "no".
    * Shadow Assasin -> Assassin.
    * Fixed bug w/ sealed generation and pieces without a rarity.
    * Fixed bug w/ sealed generation not setting modified flag.
    * Cleaned up sealed booster set selection dialog and added some error
      checking.
    * New custom Mimring.
    * Update long descriptions to be consistent about using '-' to separate
      ability name from what it does.
    * Fixed horizontal scrollbars not showing up on Mac OS X for the actions
      and event listboxes.
    * Changed Spiritslayer's ability text to reflect that it doesn't
      allow *any* bonus spawn for the destroyed miniature, not just +2.
      i.e. a creature w/ Vessel.
    * New custom Cathedral of Thorns.
    * Fixed Princes of Thorns Bloody Glory ability, it is 12 damage 3 conquest,
      not 10 damage 12 conquest.
    * Added a small optimization when determining empty spawn row cells (avoid a
      vector copy).
    * New custom Barbarian King.
    * Changed trigger_shift_phase_entered_controller to be more generic.
    * Fixed bug w/ trigger_shift_phase_entered_controller.  Was checking player 2
      action phase 2 for player 1.
    * New ability gambit_battle.
    * New ability choose_first_action_phase_player_activated.
    * New custom The Pusher.
    * Removed is_creature and creature text from Faceless Vigilante.  It's
      redundant when specifying the word 'enemy'.
    * Fixed trigger_declared_attackers.  Was checking current_combat for whether
      or not it was a regular attack, but special attacks can happen during
      the current combat.
    * New custom Gonzo.
    * Fixed issue with dice combinations for re-rolls not always having every
      possible combination.
    * Bumped Scythejaw spawn cost and spawn ability cost, both were a little
      undercosted.
    * Fixed Screaming Satellite causing infinite skipping of spawn phases once
      in play.
    * New custom Bad Mad Kitty.
    * Added sustained effects queue with expiration on a new turn.
    * New activated ability modify_venom_clear_event.  This allows changing when
      venom clears from pieces.  Also added corresponding effect.
    * Updated Rot's long description to mention locations, not enemies.
    * Fixed issue with no prompt for filename after generating a random warband
      and choosing to 'Save'.
    * Fixed issue with warband filename not showing in the UI after a save as.
    * Added support for venom clearing on different events (i.e. end of turn
      instead of end of phase).
    * New custom Abandonded Lighthouse.
    * New custom Lost Scissors.
    * Updated attribute_modify to pass in piece context.
    * Don't try and create boosters if no sets are chosen.
    * Fixed issue w/ warband/sealed generator and use of Serrated Dawn.
      Was never checking for that set if selected, causing an infinite loop
      if it were the only set and not selecting pieces in that set if selected
      with others.

06/11/12 - 1.0.51

      * Fixed Wail ability.  Was rolling 2 initiative dice for
        each piece banished.
      * Fixed Mindthief ability.  Was doing reserves -> graveyard
        for both controller and opponent.
      * Added zone brackets to effect_move's desc.
      * Fixed Vengeance X and Hibernation X abilities to enable their
        static abilities even when out of play.
      * Updated Rampage and Turbo abilities to allow for is_may.
      * Added is_may arg to effect_move_creature_if_all_targets_destroyed.
      * The Disarm ability was triggering after combinations of valid attackers
        were generating.  Added a new event which is sent out before the state
        transition in action_strike to STATE_BATTLE_DECLARE_ATTACKERS.
        This gives a window for the ability to trigger and resolve before
        declaring attackers.
      * Fixed Greenlife Dryad's Energize All ability, was only giving
        bonus spawn to its controller.
      * Fixed Hand of Oblivion's Grave Gift ability.  Was awarding spawn
        to both players.
      * Nightfire Giant's Crit 3 is a single blade ability, not multiblade.
      * Knight of Light and Shadow -> Soldier of Light and Shadow.
      * Fixed issue w/ cached counters and damage causing a crash w/ wx GUI.
      * Fixed the alignment/display of damage and counters in the wx GUI.
      * Fixed Panic ability, migrated it to attribute_modify_activated.
      * Modifyied effect_modify_local_defense to be more generic via
        piece conditions and allowing different attributes.
      * Added support for unlimited number of targets for deal_damage
        ability.  -1 means to deal the damage to any matching piece.
        This fixes Mass Wound X.
      * Fixed issue w/ venom_multiple, was only allowing 1 target.
      * Implmented reroll_attack_dice usage of attack_types.  Fixes
        Madhouse allowing re-rolls for Deathblows.
      * Fixed War Toller's util_name (was set to mujina).
      * Fixed issue with abilities like Ambition awarding conquest points
        for opponent's claimable cells.  Claimable cells mask needed to be 
        per player.
      * Removed unused game_state::all_scoring_cells.
      * Fixed Pearlthorn Gargoyle's Flux Ward ability, was missing
        piece conditions limiting the ability to itself.
      * Fixed Raging Tusker's spawn cost 5PP -> 6P.
      * Dice roll input dialog now shows which player the roll is for.
      * Fixed issue w/ zone_conquest_modify ability (i.e. Illuminati Pyramid).
        Was iterating all cells in dreamscape in hook instead of checking 
        passed in cell.
      * Fixed Fleshworm Broodsire's XML def.  Was preventing
        correct destination zone of Awaken from being used.
      *    EVENT_ID_INITIATIVE_ONE_ROLLED_TOURNEMENT_RULES 
        -> EVENT_ID_INITIATIVE_ONE_ROLLED_TOURNAMENT_RULES
      * Cleaned up Insubordination Energy's long desc.

03/01/12 - 1.0.50

      * New custom Ghostghast (now at 650 pieces!).
      * New static ability cant_be_destroyed.
      * New custom Stitched Subordinate.
      * Event for both players rolling initiative is now shown by all UIs.
      * Event for both players rolling initiative also now shows the initiative
        value for each player taking into account modifiers like Alert X.
      * Removed UI event when rolling an initiative die, an event already goes
        out for initiative.
      * rolled an d6 -> rolled a d6.
      * Added update_desc to effect_add_encumbered_spawn_points.
      * New custom Mind Weaver.  From 2nd place winner, Zaphod, in 
        the DB design contest at boardgamegeek.
      * New condition zone_is_in_spawn_row_of_ability_owners_controller.
      * get_spawn_cost_str does not add spawn cost if it is 0.  So rather than
        0MMMM you'd just see MMMM.
      * New custom Unknown Kadath.  From 3rd place winner, Tevish_Szat, in 
        the DB design contest at boardgamegeek.
      * Fixed Serpentine Specter's Expel Nonvalor's long desc.
      * move_single_triggered and move_single_activated now take a flag on
        whether active player controls the action or not.
      * New custom Faceless Informer.  From 1st place winner, Malpertius, in 
        the DB design contest at boardgamegeek.
      * Cleaned up some of the controls in dialogs which were not aligned
        correctly.
      * effect_attribute_modify now states which attributes 
        are being modified in to_str().
      * Infernal Shrieker's Offering Boon 1 now only triggers
        when it is in play.
      * Fixed Pick-Pick's name (was Pick Pick).
      * Removed unused CTRL_C define in ncurses ui.
      * Fixed issue with multithreaded AI where comparison of abilities
        w/ parent_abilities (i.e. granted abilities) would almost always
        match even if the granting ability had a different owning piece.
        The program ran for almost a month non-stop playing random games
        (thousands) before this showed up w/ the debug build.  The key
        was having 3 Locomotivator's in a warband.
      * effect_move_piece now also checks instance id for equality.
      * Charging Cactus -> Cackling Cactus.
      * Added missing Signal Jam ability to Screaming Satellite.
      * New condition player_has_spawn_row_where_piece_is.
      * Condition class has new virtual for querying about a particular player.
      * Fixed Screaming Satellite's long desc.
      * New ability gets_spawn_phase.
      * New custom Mystro.
      * New condition trigger_spawn_phase_skipped_for_player.
      * Changed event EVENT_ID_DOESNT_GET_SPAWN_PHASE to a non-info event
        so abilities can trigger from it.
      * New custom Tectonic Shepherd.
      * End of game winner message uses player's names, not just
        Silver/Gold.
      * Fixed issue w/ Soul Mine's Dense Harvest ability.  Was
        awarding the bonus spawn to the owner at the beginning
        of both players' spawn phase.
      * Added update_desc func to effect_add_blades_to_combat.
      * New custom Faceless Lover.
      * New ability add_blades_to_combat_triggered.
      * New ability activated_triggered_ability.
      * New custom Armored Pupa.
      * New custom Hand of Oblivion.
      * New ability remove_from_game_replaces_destruction.
      * New ability limit_can_enter_zone.
      * Added ability condition to Usurp for being in that player's spawn
        phase.  Piece could come into play possibly during the opponent's
        spawn phase.
      * Added a flag to condition in_a_spawn_phase to allow being in
        just the ability's owning piece's controller's spawn phase.
      * Fixed issue w/ combat damage modifier abilities (crit, etc) where
        when resolving would have no effect.
      * Added call to update effect desc for action_and_add_to_combat_damage
        and others.
      * Added an additional arg to activate_blade_ability (both activated
        and triggered).  This allows ability to not allow activation of 
        combat only abilities.
      * Shackle X now has AI optimization to not choose enemies w/ Charge when
        not in combat.  In testing this was causing nearly endless loops 
        of disrupt, shackle, charge, etc.  Easy to make happen w/ Shackle 2 
        and 2 Brighthammers with one moving into the cell triggering the
        initial disruption.
      * Fixed bug where if you had a location in your spawn row
        it was not counting towards a mini in that column to allow spawning
        in that spawn row cell.
      * Deathblow attack actions also now use [] around cell name
        like regular attacks.
      * Fixed issue with damage_type_from_str, caused issue
        with Steadfast and Immortals' Resting Place.
      * New damage type, DAMAGE_ANY.  Used by Carnival Charger.
      * Both ncurses and wx apps now subscribe for
        EVENT_ID_INITIATIVE_ONE_ROLLED_TOURNAMENT_RULES.
      * Parting Shot now correctly checks that the piece was removed
        from its cell in addition to being disrupted.
      * Curse (and variants) is now correctly not an optional ability.
      * Ability reroll_attack_dice now takes is_may, updated all xml defs
        to handle this.
      * Fear-Edged Advance ability checks for owner to be in play before
        triggering.
      * ABILITY_TYPE_SUPRESS -> ABILITY_TYPE_CANT_SPAWN_MATCH_PIECE_NAME.
      * Engine now follows the combat rules for disruption and
        damage clearing correctly.  Damage only clears in step 8
        after all pieces that will be disrupted that pass have
        been disrupted.
      * Rage of One now (per the FAQ) only triggers on regular and
        deathblow attacks.
      * action_declare_attackers now correctly sets attack type
        to deathblow instead of special attack.
      * Updated Deathblast to not trigger when under Mindlock
        (per the FAQ).  This means tucking away controller
        at time of exiting play and checking graveyard against
        the owning_player.
      * New event info piece_exited_play.
      * Venom Cloud tucks away cell activated in in the event
        the owning piece is somehow moved before the ability
        fully resolves.
      * Put explicit check for is_in_play for Edged Crit and
        Fear-Edged Advance so that abilities that are activated 
        while in the reserves (i.e. Manifest) do not trigger it 
        ('you control').
      * Removed Venom Cloud from Plaguebrood Larva, it doesn't have
        that ability.
      * Triskelion's Reverse Purge and Valkyrie Moonrider's Cleanse are 
        now limited to creatures only.

11/11/11 - 1.0.49

      * Fixed a bunch of issues w/ Toss, including not doing
        all the attacks, allowing disruption into the same cell
        i.e. not 'another' occupied cell.
      * Updated effect_disrupt_to_occupied_cells to check instance_id.
      * Fixed issue w/ Insubordination Assembly where the owning piece
        may have left play before resolving sacrificing itself.
      * Fixed issue with Toss where it was unsubscribing on every disruption 
        seen during a combat.
      * Ability special_attack_multiple_chosen_cell (i.e. Mass Warpstrike)
        is now copy'able.
      * Retooled handling of group abilities.  Eliminated small windows
        where out of combat there were disruption/destruction checks
        when there shouldn't have been.  It will also give a performance
        boost when playing with pieces w/ group abilities.
      * action::notify() now takes an additional flag for whether or
        not the action who is doing the notifying will be resuming.
        This will be used for proper handing of group action execution
        of individual actions.
      * Fixed Splat to set src zone of attack to be where it is at time
        of attack, not at the time before sacrificing.  This prevents
        abilities like Darkheart Cottage from bumping it.
      * Added a mutex for do_print w/ debug build.
      * Bumped threshold for hybrid action "wins" from 5% to 10%.
      * Darkheart Cottage and Infernal Bomber only boosts creature attacks.
      * Added piece_in_play check to attackers_conditions for
        Infernal Bomber ("you control").
      * Ability modify_num_attack_dice now also checks attackers w/
        conditions.  i.e. Tactics does not modify a Deathblast or
        Splat attack.
      * Changed signalling for multiple threads from condition vars w/
        mutexes to semaphores.  This eliminated a small race condition
        that could show up causing the app to hang.
      * Fixed issue w/ Conquest Synergy.
      * Added checkbox in game settings dialog for toggling tournament
        initiative.
      * Now log all rules values at startup in game.log.
      * Migrated my desktop to OS X Lion, unfortunately the new XCode
        has dropped support for PowerPC.  I will continue to make 1.0.48
        available but will not be doing any more releases w/ PowerPC 
        support unless there is a big call for it.
      * Fixed a very small race condition w/ threaded AI and monte carlo.
        Towards the end of a game, having only a couple of choices could finish
        being evaluated before a lock was taken.
      * Added missing condition def PIECE_NAME_CONTAINS to ident map.
      * Added missing piece_is_not_in_set handling to wxGUI warband
        filter dialog.
      * Added support for printing out pieces that match a list of
        conditions on the command line (-x [names] and -X [full]).
        See doc/README for info on syntax.
      * New flag for wxGUI port, -E, which exits the app when a game 
        is over.  Use in conjunction w/ -A.
      * effect_move_piece uses to_str() rather than referencing ability 
        desc.
      * Fixed a crash when using hybrid AI without threads.
      * Fixed issue w/ multiple threads and ai state actions
        w/ locations having a different desc than the main
        action (and failing comparison match).
      * assigned_damage_modify (i.e. Zungar Citadel) should be
        a post modify hook, not post replacement hook.
      * Fixed crash in Twin-Skull Archway.  Wasn't using damage_type
        to determine what context arg was (attack or ability).
      * Fixed reversed logic in special attack to determine if a mini
        is doing the attack (most special attacks) or a player is doing
        the attack (i.e. Bloodtusk Throne).
      * Fixed issue w/ Twin-Skull Archway.  DAMAGE_TYPE_BLADE was
        not being or'ed into damage type with special attacks 
        (like Warpstrike) so it was not having any effect.
      * Made Grand Hive a 'Legend' in addition to Gargantuan.  Should
        balance it out a bit since it does not have {S} as a condition.
        Also updated random warband generator script to honor this.
      * New custom lineage 'Quantum'.  This is to fill in the color
        pie for Valor/Fear, some customs will be using this.  Think
        aliens, science, robots.
      * Fixed crash when there were more actions for the AI to 
        consider than the number of work items allocated.  
        Teleport Ally with a lot of pieces in play easily 
        generates almost 300 different actions to consider.
      * Fixed issue w/ exchange_pieces.  You cannot exchange or 
        transpose a piece with itself.
      * Fixed a crash when using hybrid AI w/ multiple threads 
        and the MC eval returned no actions.
      * Game log now prints winner of game and score.
      * Fixed issue where AI would never consider spawning
        a location without a scoring cell condition.
      * Fixed Mantlet, it has Shadow Field, not Shadow.
      * Added support for trailing comments in warbands.
        i.e. Cannibal Pariah    #  some comment
        This also works w/ the initial placement syntax '%'.
      * Tweaked cell scoring algorithm for AI.  Disruption choices 
        should be ordered better now for the AI.
      * Fixed Red Reaver's power 3 -> 4.
      * Fixed Equitar's description for Corpsebuilt 2.
      * Fixed set for Spy vs Spy, Hellwasp, Divine Weaver,
        Faint-hearted Acquaintance, Fill-in, Foobar, Protective
        Beauty, Punishing Beast, Zombie Gunslinger, Zungar
        Quartermaster.
      * Added a couple of new warbands.
      * On Mac wx GUI changed wxMemoryDC to wxGCDC which fixes
        the lack of transparency on base corners.

10/01/11 - 1.0.48
    
      * Exchange pieces X with Y -> Exchange piece X with Y.
      * Fixed infinite loop w/ gain_aspect_choice (Recruit Valor/Tolerant)
        when declining to use it (pass on may).  Also 
        finished implementing the resolution of the ability.
      * Went over all abilities/effects that did movement and updated
        to reflect that changing zones does not constitute a 'move'
        so do not go thorugh hook for can_piece_move, i.e. Mire.
        Certain abilities were checking this preventing
        them from working when they should.  Affected abilities were:
        action_and_put_all_matching, gambit_put_single_into_play,
        exchange_pieces, exchange_pieces_choose_cells, move_match_pieces_to_zone,
        move_multiple, move_single, move_single_and_action, 
        multiple_actions_and_move_single_x, and put_multiple_into_play.
      * New custom Divine Weaver.
      * Fixed tricky interaction between Bloodthirsty/Bloodthirsty
        Lineage and Halo (Last Gasp).  Piece was attacking and destroyed
        an enemy, then itself was destroyed by a deathblow by the destroyed
        enemy, and the Bloodthirsty triggered again when having a deathblow
        (due to Last Gasp) after already being triggered that combat.
      * Fixed issue w/ add_spawn_points_triggered when value was 0.
      * Fixed use of RNG where last action in a list would never
        be chosen (due to an off by one modulo).
      * Fixed infinite loop bug w/ move_replaces_disruption ability.
      * Fixed some memory leaks which could cause OOM conditions
        at high depths.
      * With all the optimizations, the minmax has sped up quite
        a bit, raised the default depth to 8.
      * Small optimization w/ regular attacks.  When done with
        blade assignments, if no damage to assign go right to marking for
        disruption/destruction.
      * Don't apply blocking spawn row 'bonus' score to portals.
        After this change and the one below the minmax is doing
        better against the hybrid.
      * Fixed issue where some spawn row cells would end up with
        a negative starting score which made spawning or shifting
        to those cells less appealing for more powerful pieces.
      * Lots of tweaking of Hybrid AI.  At default minmax depth
        and 5000 plays @ 4 turns, it beats straight up minmax
        at same depth almost 100% of the time.  With the new
        way the MC portion acts as a pruner when there is no clear
        cut great move and also allows for minmax when all moves
        are always winners.
      * Added empty entry for aspect cost condition in filter
        dialog.  This allows searching for no aspect cost pieces.
      * Fixed Infernal Bomber's spawn cost 4 -> 8.
      * Fixed Master Tactician's spawn cost 8VV -> 6VV.
      * Removed minmax fallback for pure Monte Carlo AI.
      * Improved memory utilization w/ hybrid AI.
      * Removed debug prints from check_legal_attacker, 
        cant_gain_victory_points, move_single_and_action,
        and take_control_of_piece.
      * Optimization w/ getting aspects.  Avoided a lot of small
        memory allocations.
      * Fixed crash w/ monte carlo AI when there are no wins for
        any move.
      * Removed debug prints from check_legal_attacker and
        cant_gain_victory_points.
      * Re-enabled checking for marked destruction/disruption in eval
        function.  Will keep the AI from doing boneheaded things like
        Missile'ing its own pieces.  Also added taking into account
        damage assigned.
      * add_to_combat_damage now shows +/-.
      * Fixed potential issue w/ setting damage type of add_to_combat_damage.
        If a piece could ever become/unbecome a creature/location this will
        now work correctly.
      * Added support for updating add_to_combat_damage abilities' effect
        description.
      * add_spawn_points_activated now correctly updates desc string
        of aggregated effect before resolving.
      * Removed debug log when rendering top base in wx UI.
      * New custom Robot Rocketeer.
      * Update context_piece/zone in action_and_activated_ability
        on notify.
      * Added support for other action types and piece_conds to
        ability action_and_add_to_combat_damage.
      * Fixed potential corruption for abilities that override on_activate
        and manipulate context_piece or context_zone and do not call
        base class to clear them on activation.

08/27/11 - 1.0.47

      * Removed all hard coded checks for is_in_play in triggered abilities
        that override does_ability_trigger.
      * Shapechange now calls base class's does_ability_trigger which
        checks trigger conditions.
      * Fixed potential issue w/ double-y enabling modify_spawn_cost
        ability.
      * Added check to Shapechange ability XML def to also not trigger
        for piece itself w/ Shapechange.
      * New custom Foobar.
      * New calculation initiative_values_difference.
      * Fixed Infernal Shrieker's Offering Boon 1.  Was missing
        check for creature and was only applying to itself rather than
        all pieces controlled by the controller of Infernal Shrieker.
      * Fixed Shard Troll's Assault X ability, had the wrong power 
        calculation id in its XML def.
      * New calculation initiative_value which is the player's actual
        initiative (after abilities/modifiers).
      * Renamed calculation initiative_die_roll to d6_die_roll.
        and made initiative_die_roll the current roll value of the 
        player's initiative.
      * New conditions piece_controller_has_lower_initiative_value, 
        piece_controller_has_initiative, and
        piece_controller_does_not_have_initiative.
      * Fixed Stormrider Shaman's Energize Bloodcut, was applying the spawn
        points to the Hellbred lineage.
      * Thanatopsist's Gravemulch -> Grave Mulch.
      * Fixed Respawn ability in xml defs.  Were missing assign_condition 
        of 'in graveyard'.
      * Fixed spelling of Stained-Glass Angel's Manifest ability (was
        Mainfest).
      * New custom Vengeful Vermin.
      * Made Synergy X ability more flexible.  Added a flag to specify
        if the ability is in effect only when the owning piece is in play or not.
      * Fixed Synergy X (Location Synergy, Monstrous Synergy, Bloodcut Synergy, 
        and Swarm Synergy).
      * Fixed Synergy Conquest ability.  This is an always on static ability
        not just when the owning piece is in play.  This broke as a result
        of the optimization made for static abilities in 1.0.43.  The synergy
        abilities need to be enabled even when the owning piece is not in play.
      * Implemented rendering rarity symbol on bottom base.
      * Updated doc/README with latest info and some new info about
        adding images.
      * Made an empty res/pieces/artwork file in the OS X bundle.
      * Optimized copying of event subscriber list to avoid memcpys.  Gave
        about a 4% perf boost overall.
      * Removed check for scoring cell in ability additional_conquest_if_claimed
        and effect gain_conquest_if_claimed.  Non scoring cells can be claimed
        i.e. Colonize.
      * Ability resolving no longer sends out info event.
      * Fixed a bug w/ ncurses ui with entering an action number
        that was not valid.
      * Removed need for notify_of_execution usage for passing
        current combat around.
      * Fixed data corruption bug w/ abilities that activated other 
        abilities (Wish, Deathrip, etc).
      * Added a command line option (-D) for using a different XML
        piece definitions directory.
      * Done declaring attackers no longer sends out info event.
      * New custom Hellwasp.
      * Made Folk Hero unique based on play testing.
      * Made bonus_spawn_if_selected_destroyed_activated copy'able.
      * Fixed bug w/ effect_no_assigning_damage not returning a value
        when no piece matched.
      * Fixed a ton of compiler warnings.
      * Fixed a subtle bug w/ multiple copies of the same ability
        owned by the same piece granted from different pieces
        when running with multiple threads.
      * Made The Ugly Stick unique.
      * Fixed Maiden Moderator's xml def.
      * New custom Savage Reaver.
      * New ability bonus_spawn_if_selected_destroyed_activated.
      * New effect bonus_spawn_if_destroyed.
      * Fixed Spiritslayer, needed local check.
      * Fixed issue w/ not being able to disrupt due to having
        no legal disruption cell, forcing destruction but not 
        being able to destroy due to an ability (like Phantom).  
        In this case things need to be cleaned up, and damage is cleared.
      * Optimized hook can_piece_use_ability.  This one is also
        pretty expensive.
      * Optimized hooks for getting abilities.  These are called a lot
        if certain pieces are in play.
      * Fixed interaction bug with Mire and move_replaces_disruption.
      * New custom Fill-In.
      * New custom Charging Cactus.
      * Clarified Brainboom's Explosive Aneurysm ability text.

07/15/11 - 1.0.46

      * Fixed The Widow's set.
      * Optimized the block rect text rendering by not changing
        the font for each word check.
      * Cleaned up ability pay_spawn_points_or_action (i.e. Fickle).
        When showing choices to player, show owning piece's name in the
        event there is more than 1 triggered.  Also cleaned up Insubordination
        Energy which also uses those same 2 actions.
      * All disruption cells are now checked for legality, including abilities
        that modify disruption cells.  For instance, pieces that can
        only be disrupted to occupied cells need to check the stacking limit.
      * Fixed a bug where spawn cost orientation for top base was off due
        to getting text extensions before setting font size for DC.
      * Warband editor dialog is now sized based on the size of the main window.
      * Ability text on top base is now centered correctly in its region.
      * Fixed initial placement of window on OS X, was @ 0,0 which hid the
        titlebar under the main OS X menu bar.
      * Made disruption_cells_modify more flexible by allowing replacement 
        instead of modify and also cell conditions.
      * New custom Comeback Kid.
      * Reverted enemy lineage/aspect conditions to not show x{Whatever}.
        There are no graphical symbols for them and it goes against existing
        ability text.  So {xP} Fight +2 goes back to Fight Passion +2.
      * Cleaned up the centering of the spawn cost and piece letter identifier.  
        Looks much better now.
      * Fixed a scaling bug w/ rendering the top base.
      * New custom Spy vs Spy.
      * New ability special_attack_multiple_chosen_cell (Mass Warpstrike).
      * Fixed an issue with exiting the wx UI and the engine not handling the 
        quit request.
      * Added support for rendering symbols for blades, aspect symbols, etc on 
        top and bottom base to wx UI.  Only remaining ones to do are lineages
        and rarity.
      * Common-alized the rendering code for the silver and gold
        reserves/gy/oop areas in the wx UI.
      * New custom Atomic Fly.
      * New ability move_replaces_disruption.
      * 64 bit change for ncurses ui w/ EVENT_INFO msgs.
      * Cleaned up event handling in ncurses ui.
      * event_prompt flag is now an int, 1 == prompt on any event
        2 == prompted whenever an effect or AI action results in a piece moving.
      * Cleared up Gelatinous Dude's ability text.
      * New warband 'Whisper to a Scream'
      * New warband 'Sac Pact'

05/20/11 - 1.0.45

      * New custom Mortar Slaughterer.
      * Added a multiplier arg to calculation power_piece_matches.
      * New custom The Peacemaker.
      * Added support for filtering when creating random warbands.
      * Cleaned up the makefile as far as switching off variables.
      * New condition piece_is_not_in_set.  Added this to the warband
        filter view.
      * activated_ability class handles all instances of a combat
        blade ability being activated out of combat by 'fizzling'.
      * Fixed gain_static_ability.  Did not handle another
        piece other than the owner very well.
      * Made ability cant_use_ability copyable.
      * Fixed issues w/ abilities that grant other abilities.  In
        all cases parent ability was not being set.
      * Added logic to handle spawning a piece when it is not
        the owning player's spawn phase.  The rule is, the empty
        spawn row cells are evaluated using the current game state.
      * New custom Carnivorous Weevil.
      * New ability gambit_put_single_into_play.
      * New custom Eeeeeevil Bunny.
      * New custom Mirror Ravager.
      * New condition piece_spawn_cost_le_ability_owning_piece_spawn_cost.
      * Tweaked spawn_no_cost to handle triggered versions better when 
        triggered allows an opponent to spawn for no cost (i.e. Mirror).
      * New custom Klepto.
      * New condition trigger_attacker_matches.
      * Added a triggered variant of activate_blade_ability and added a few more
        options to handle payment and is_may.
      * Added a new event for all calculations being done from a regular attack roll.
      * New custom Hot Rod Lincoln.
      * New ability move_single_and_action.
      * New ability multiple_actions_and_move_single_x.
      * Added support in wx UI to change the font of the actions and events
        text widgets (Ctrl-Shift-F).
      * New custom Clockwork Knight.
      * Added support for a replacement attribute modifier to attribute_modify.
      * New condition trigger_initiative_value_ability_owning_piece_controller_equals.
      * Added ability condition in_combat to triggered version of
        add_to_combat_damage.  Needed for Gent activating blade ability
        which then triggered stuff like Edged Crit X.
      * New condition in_combat.
      * Fixed a very unlikely corner case of Gent triggering a blade
        ability when in a previous turn a strike started but had no
        valid attackers (leaving the current_combat unclear'ed).
        This would also only happen when the AI was thinking.
      * Made take_control_of_piece_activated copyable.
      * Added an ability condition to Gelatinous Dude's Immaterial ability
        to fix a very unlikely scenario where he has eliminated all pieces
        from the game except himself resulting in an game that does not end.
      * Fixed Gelatinous Dude's long desc.
      * New custom Morpheus, Lord of Dreams.
      * New ability move_match_pieces_to_zone.
      * New custom Mad Hatter.
      * Fixed exchange_pieces ability, was not setting notify for 
        pass on may action.
      * Made Chaos Drive copyable.
      * Fixed Mimic ability, was not loaded by engine.
      * Fixed xml def for Swordstrider.
      * Fixed xml def for Locomotivator.
      * Fixed xml def for Stormwatch Peak.
      * Fixed xml def for Hypnotic Freak.
      * New custom Tesseract Mage.
      * New action action_choose_two_zones.
      * New ability exchange_pieces_choose_cells.
      * Made Unstoppable the more generic can_move_when_shifting_if_engaged
        w/ conditions and made it copyable.
      * Fixed a crash w/ effect_gain_static_abilities.
      * Venom Cloud X is fixed.  Was walking list when a piece
        could be removed if destroyed.  Also allow player to
        choose order for assignment, could be important for
        other abilities that trigger on destruction.
      * Fixed an issue w/ events being sent out more than once.
      * Fixed Savannah Harrower's utility name.
      * Fixed Bloodtusk Throne's ability.  Was checking all creatures
        for highest power, should only be local creatures.
      * special_attack_single uses ability::to_str() to handle locations
        that have no desc.

04/06/11 - 1.0.44

      * New custom Cookie Beast.
      * New condition piece_current_zone_match_conds.
      * Added triggered version of gain_conquest_points ability and
        allowed it to take a calculation.
      * New custom Hypnotic Freak.
      * New custom Termite Head.
      * New custom Bloodthirsty Samurai.
      * New custom Damsel in Distress.
      * New custom Two-Faced Freak.
      * New custom Yellow-Bellied Coward.
      * Fixed Night Queen and Triskelion's Purge ability, it is not a 
        combat blade ability.
      * New custom Zungar Quartermaster.
      * New custom Ninja Instructor.
      * New custom Locomotivator.
      * New custom Maiden Moderator.
      * Fixed issue w/ Underpower ability allowing via hook for attack
        damage to go negative.
      * New custom Possessed Poinsettia.
      * New ability action_and_gain_conquest_points.
      * Added piece_is_not_of_aspect and piece_is_not_of_lineage to
        filter dialog in wx UI.
      * New condition piece_is_not_of_lineage.
      * Fixed an issue w/ Shapechange triggering when piece was not
        in play.
      * Removed conditions relating to ability_controller.  They
        were not used and not needed.
      * Added instance_id check to effect_gain_static_abilities.
      * Set all abilities initial controller to be the owning
        player.  Only a potential issue w/ static abilities
        as other types always re-init their controller on
        triggering/activation.
      * Fixed some conditions which uses ability's controller
        rather than ability's owning piece controller.
      * Fixed issue w/ initializing piece index #s which were
        used for indexing gained abilities.
      * action_assign_damage now shows ability name for display str.
      * New calculation excess_combat_damage_over_num_dice_rolled.
      * New custom Shieldmaiden.
      * Added amount calculation and num_targets to deal_damage ability.
      * New custom Bubblefudge.
      * New custom Meat Wagon.
      * New custom Brainboom.
      * New calculation context_zone_conquest_value.
      * Deathblast now sets context piece/zone on triggering, also supports
        an amount calculation.
      * New ability action_and_victory_points.
      * New condition piece_ability_context_zone_is_piece_opponent_portal.
      * New custom Abominable Snowman.
      * New calculation rolled_combat_damage.
      * New custom Knight of the Empty Helm.
      * Fixed ncurses ui when inputting dice rolls.  You could previously put in
        456 etc for initiative.  The num to roll is now honored.
      * Fixed ncurses ui status row when viewing pieces w/ variable defense
        and/or life.
      * special_attack_multiple passes along piece being attacked as context.
      * Fixed a crash w/ special_attack_single and power calculations that
        reference the context ptr.
      * Fixed cant_gain_victory_points (Deny Victory, etc), post replacements 
        were being done after victory points were awarded.
      * Pass on may now sets notify correctly in action_and_activated_ability.
      * action_and_activated_ability tucks away context piece and zone.
      * New conditions piece_in_ability_context_zone and piece_defense_lowest.
      * sacrifice_piece_activated tucks away zone before
        sacrificing as context_zone.
      * Enabled deathblow_any_action_phase to be copied.
      * New custom Hnakra (600th piece!!).
      * New custom Warfang Warrior.
      * Updated bonus_spawn_for_destroyed_modify to allow either
        replacement or modify.
      * New custom Boneclan Wardrummer.
      * New custom Stumbling Drunk.
      * New custom Shambling Horde.
      * New custom Mansquito.
      * New custom Deathwish Guardian.
      * New custom Faint-Hearted Acquaintance.
      * Added support for a triggered version of disrupt_piece and removed
        assumptions about the owning piece having the ability.
      * Fixed bug w/ disrupt_piece ability, was checking can_piece_be_disrupted
        w/ owning_piece, not iterated piece.
      * New custom Pompous Paladin.
      * Follower 1 long description are -> is.
      * Added support for cant_attack_conditions to check_legal_attacker 
        ability.
      * New custom Sir Percival.
      * limit_can_shift_and_attack now has flags to specify either/or
        limit shift/attack.
      * New custom Mongol Envoy.
      * New custom Assassin Automaton.
      * Error message for not finding a piece by name now shows which
        warband file the piece name was in.
      * Fixed Dream Lord ability to_long_str().  It's a keyword ability
        and has no long description.
      * New custom Alien Earwig.
      * Added support for taking ownership of a piece (differs from
        controller, i.e. goes back to your graveyard, etc).
      * Added slot for sustained effects that last the duration of the game.
      * New custom Draco, the Lawgiver.
      * New custom Great Googly-Moogly.
      * Slight modified the state machine for regular attacks to
        allow shield abilities to modify the dice rolled before final
        totals are calculated.
      * Fortune is now the generic modify_attack_dice ability, also
        made an activated version of it.
      * Fixed customs w/ set SET_CUSTOM to be SET_CUSTOM_MISC.  Caused
        them to show up as unknown.
      * modify_attack_dice -> modify_num_attack_dice.
      * New custom Escape Pod.
      * New condition ability_owning_piece_current_zone_matches.
      * New condition zone_is_not_ability_piece_current_zone.
      * New custom Deimos.
      * New custom Phobos.
      * New calculation context_combined_power_local_allies.
      * New custom Shadow Splitter.
      * Made Shapechange much more flexible using conditions.
      * action_sacrifice_piece now tucks away cell before sacrificing, used
        by some ability's notify routines.
      * New custom Twilight Dragoon.
      * Fixed Deny Victory, was not allowing either player to gain victory points.
        Also made it the generic cant_gain_victory_points w/ conditions.
      * New custom Wizened General.
      * New custom Fearless Warrior.
      * New custom Nest Egg.
      * New custom Protector Cocoon.
      * New custom Stampeding Rage-Beetle.
      * New custom Thanatopsist.
      * New calculation num_per_multiple_match_pieces.
      * New custom Drifting Miasma.
      * New custom Tower of Babel.
      * New custom Predatory Mantis.
      * New custom House of Mirrors.
      * Made Rally <lineage> the more generic controller_chooses_disrupt_cell
        w/ conditions.
      * Null Arch now just affects local creatures.  Was WAY too powerful.
      * Added new custom Amnesia Manor.
      * Added support for activation types for lose_abilities ability.
      * Added new custom Zombie Gunslinger.
      * Added new custom The Ugly Stick.
      * Added new custom Nevret Charlatan.
      * Fixed issue the AI thinking and sending end of turn event, was being 
        sent as info event and some abilities trigger on the end of turn.
      * Fixed interation issue w/ choosing who goes first w/ action phases 
        (Corrupt Politician) and Heart Thief's Energy Feed causing a player
        to skip their spawn phase.
      * New custom Zebra Administrator.
      * New duration effect gain_aspect.
      * New ability gain_aspect_choice.
      * Made Chameleon the more generic gain_aspects w/ conditions.
      * Bumped up default depth to 7 from 6.  Enough improvements have
        been made in performance that 7 is reasonable on most modern HW.
      * Now correctly trigger a redraw of the playing area when a new
        font is selected.
      * Migrated state change stuff to being macros for a small performance
        gain.
      * Fixed bug w/ replacement abilities for defense.
      * Fixed crash in the ncurses version when quitting a game early.
      * Fixed the check for the game being over.  Gambit abilities
        could have made the game end sooner than it should.
      * ncurses UI now dumps event log when the game ends.
      * New custom Altar of Despair.
      * Added support for alternate win conditions.
      * spawn_cost_modify now supports a in_play_only flag to allow
        pieces in your reserves to change spawn costs, etc.
        It also now supports reducing costs by negating a positive value
        (for things like piece match counts, etc).
      * Gelatinous Dude now has the Immaterial ability to offset how
        powerful it is.
      * Renamed Altar of Dementia to Altar of Fire.  Dementia seems more 
        like Madness.
      * modify_can_claim now takes a flag so a piece can either claim or
        not claim if the conditions are met.
      * New custom Bloodthrone Vampire.
      * New condition piece_spawn_cost_equals_parent_ability_x_payment.
      * New custom rule implemented.  When a player takes control of an opponent's
        piece that is not in play, it goes into the equivalent zone of the new
        controller.  The owning_player does not change so if the piece leaves
        play after coming into play or is re taken control of, it will revert back.
      * Added expire_id to all variants of take_control_of_piece, also handle
        sentinal expire id EVENT_ID_INDEFINITE which does not put the effect
        on the sustain list.  Also now sets context piece.
      * Fixed XML def for Gutsoup Golem, Recalcitrant Roach, and Necrodancer, 
        their ability condition block for Respawn was not correct.
      * New custom Unholy Abomination.
      * Fixed High Inquisitor's Cartographer ability, can only choose 
        locations in controller's graveyard.
      * Fixed interaction issue w/ Gelatinous Dude and other triggered
        abilities resolving on the same event (end of turn).
      * Revamped event sending for a ~25% speed up.  There was a big hit
        when the AI was thinking and generating std::string temporaries
        and concat'ing them.
      * Made Passion minis bold like the other aspects w/ ncurses ui.
      * Dumping of UI events was always missing the last line w/
        the final score, elapsed time, etc.  Fixed.
      * Fixed crash when running wx GUI version w/ -A flag.

03/12/11 - 1.0.43

      * Fixed issue w/ clean target of makefile.
      * New custom Gelatinous Dude.
      * New custom Hermit Werewolf.
      * -P w/ ncurses ui now surpresses loading xml messages, was breaking
        random warband generator and calculate cost python scripts.
      * New custom Killer Bean.
      * Fixed an issue w/ abilities being init'ed twice in grant_ability.
      * New custom Corrupt Politician.
      * New abilities choose_first_action_phase_player_activated and 
        choose_first_action_phase_player_triggered.
      * New action choose_identifier.
      * New custom Deranged Volleyball.
      * Updated Fido's Impede long description to be more precise (specify end of
        turn etc).
      * New custom Ink Cloud.
      * New custom Assassin Opossum.
      * Initial placement of warband now handles static abilities being init'ed
        if starting in play.
      * Fixed an issue w/ abilities that deal with zones in the same column.
        Was not including the originating cell in the list of cells in a column
        so things like Soul Harrow and Geomancy didn't count the cell that
        the ability owning piece was in.
      * Fixed gain_static_ability_triggered, it wasn't init'ing the
        aggregated static ability.
      * Updated static_ability class to default to not being enabled
        and added methods to handle entering/leaving play with default
        handling to be to enable/disable the ability.  99% of static
        abilities work that way.  This results in a massive speed up
        for warbands with pieces w/ a lot of static abilities especially
        pieces w/ Halo abilities.
      * Updated awarding of victory points event to better describe
        losing victory points (i.e. Dreamlord).
      * Added missing {P} requirement for Armadillo Shieldbearer's
        Bodyguard ability.  Also changed it's set # from 7 to 4.
      * Added new custom The Widow (Twilight).
      * Updated Death Chanter and Unstable Mabel to use current cost
        as they should instead of spawn cost.
      * New condition piece_current_cost_le_than.
      * Added function to return current cost assuming spawning to portal.
      * New condition trigger_piece_assigned_damage.
      * New calculation, context_damage_assigned.
      * New custom Cutthroat Assassin.
      * -A is a wxUI flag not ncurses.
      * Fixed a crash in the UI when starting a new game after
        a previous game had an error starting due to a misspelled
        piece name in a warband or failing to initialize the
        game for some other reason.
      * Fixed issue w/ controller change event going out before
        controller was changed.  Was causing the UI to not reflect
        changes until another action was performed.
      * Added support for 0 power special attacks w/ variable spawn
        cost abilities.
      * Added combat_only flag to trigger_piece_destroyed condition.
      * Added support for empty strings in XML tags.  Updated all locations
        and components utilizing NONE sential to work with this.
      * Fixed an issue w/ the filter dialog and filtering on aspect cost.
      * Fixed an issue w/ abilities that allow spawning (Shapechange, Beacon,
        Grand Hive's ability) and running a multi-threaded AI.
      * Fixed strings used to populate aspect cost drop down combo.
        The order has to match the routine that converts numerical
        costs to strings.
      * Fixed a few deadlock conditions w/ the input dice dialog being up
        and events coming in (i.e. dice being rolled) or an event coming
        in while waiting for human player selection of action.
      * New abilities put_into_play_multiple_activated/triggered.
      * Fixed issue w/ bumping the instance id of a piece too many times.
      * Fixed issue w/ thread AIs not having disruption cell hint vectors
        populated correctly.  Was causing some very weird behavior when running
        threaded AI.
      * New custom Broken Glass.
      * Added support for piece conditions to Ambush ability.
      * New custom Necrodancer.
      * New custom Seasoned Veteran.
      * New condition zone_is_not_scoring_cell.
      * Calculate cost script now does a case insensitive name compare.
      * New custom Xenophobe.
      * Supress is now cant_spawn_miniatures_with_name.  Also added variant
        cant_spawn_match_attribute_x.
      * New effect cant_spawn_match_piece.
      * Fixed issue w/ Null Arch.  Was affecting pieces in warband before
        game started, negating warband contribution costs etc (i.e. Duplicate, 
        Triplicate).
      * New custom Pearlthorn Phantom.
      * New custom Easy-Bake Oven.
      * New calculation initiative_die_roll_result.
      * New custom Bearshark.
      * New condition zone_is_closer_to_match_zone_for_reference.
      * New conditions opponent_victory_ge_than, combined_victory_ge_than.
      * Made Vengeance the generic cant_spawn_unless_conditions.
      * Tweaked Phaseweb Spider, was way too powerful @ its cost.
      * Fixed location desc handling.
      * Added method to effect_add_spawn_points, update_desc, since number
        of points is calculated on resolving and that particular effect
        is not used by the memory pool.
      * Fixed a few issues w/ python script to calculate piece cost when
        checking pieces w/ variable (*) attributes.
      * Added support for showing * instead of 0 for variable attributes in
        both UIs.
      * Fixed Warmind Scorpion, was showing a power of 5.
      * Updated pieces w/ replacement ATTRIBUTE_X from 0 to -1 which
        will be sentinel for using an asterisk.
      * Renamed Lazarus to Reanimator and updated stats based on testing.
        Was WAY too undercosted for use w/ {CiP} abilities.
      * Fixed corner case of someone taking control of Lazarus and activating
        its ability.  Ritual Respawn only applies to owning player, not controller.
      * New condition piece_owner_is_ability_controller.
      * Added Mire Local to Lobstrocity and changed Ambushes to Assaults.
      * New condition in_a_spawn_phase.
      * Made Mire the generic cant_move w/ conditions.
      * Adding spawn points now sends out an event regardless of
        how they are added (unless explicitly asked to not send due
        to a more detailed message going out).
      * Fixed some issues w/ Insubordination Energy.  Was re-entering
        after resolving, choice to not pay if odd roll was not
        correct text, also send out event so UI is updated.
      * Fixed bonus_spawn_for_destroyed_modify (i.e. Vessel), was being
        awarded for all destroyed pieces if in a warband.
      * Fixed issue with all abilities long contains condition in filter
        dialog.  Was checking against a piece's name.
      * Fixed issue w/ -P flag which was keeping some custom pieces from
        being selected with the random warband generator.
      * Added new custom Probability Rogue.
      * Added new custom The Madding Crowd.
      * Added new custom Chupacabra.
      * Added new custom Folk Hero.
      * Added new custom Eight-Arm.
      * Added new custom Counting Fence.
      * Added new custom Morgue.
      * Added new custom Paranoid Pummeler.
      * EVENT_ID_PIECE_ENTERED_CELL now has an associated event_info w/ piece
        prev and new cell.
      * Added is_may support to special_attack_multiple, attacks like Brainblast
        are not optional.  Updated all pieces accordingly.
      * Added new custom Witch-ita Line-Woman.
      * Added new custom Insolent Pawn.
      * Added new custom Thulykos.
      * Added new custom Nevret Ripper.
      * Added new custom Nevret Screamblader.
      * Added new custom Phaseweb Spider.
      * UI gives more feedback when one of the necessary files etc for startup
        are not present.

02/13/11 - 1.0.42

      * Added new custom Copper Skeleton.
      * Added new custom Apostate.
      * Added new custom Lobstrocity.
      * Added new custom Venerealist.
      * Fixed issue w/ is_of_lineage and is_of_aspect when choosing None.
      * Fixed issue w/ is_of_aspect in filter dialog.
      * Fixed issue w/ string comparing conditions in filter dialog.
      * New condition piece_is_previous_ability_in_combined_context_piece.
      * Fixed issue w/ Valor Beacon, was not correctly bumping
        the spawn cost down by 1.
      * App does not hang if example warband doesn't exist and
        there are no command line arguments (i.e. using defaults).
      * Added a global flag to surpress printing via do_print.
        This will allow things like -P and -p to ensure nothing
        prints out as a part of engine init.
      * Added more width/height to Windows dialogs as necessary.
      * Added new custom Murderous Moppet.
      * Added new custom Lazarus.
      * New condition piece_is_ability_context_piece.
      * Fixed Gutsoup Golem's Respawn ability, it is a may.
      * Added new custom Faceless Vigilante.
      * New conditions trigger_piece_disrupted, piece_in_ability_context_zone.
      * Made base ability class hold both the context piece and zone ptr
        this will allow for more flexibility with conditions/calculations/etc.
      * Changed Lurid Ladybug's ability to only last for that combat,
        most shield abilities work that way.
      * Added new custom Milkman.
      * piece_spawn_cost_le_than now accepts a calculation rather than a number.
      * New calculation combined_victory_points.
      * Updated pieces w/ Respawn ability to additionally have an ability
        condition of in_graveyard.  This will keep the AI from using it
        when not appropriate and also will show that it doesn't resolve
        when activated and the piece is not in the graveyard.
      * New condition in_graveyard.
      * Print more info when a condition lookup from xml fails.
      * Fixed an inverse logic comparison in an assert in move_multiple.
      * Made Ambush ability copyable.
      * Updated Shackle X and Mine X's long desc to handle 1 -vs- many.
      * Undo event now shows up in wx GUI event area.  Will make it easier
        to debug things that look strange without knowing an undo was done.
      * Cleaned up effect_assign_venom's description and event txt.
      * Fixed Valor Beacon ability.  Was allowing locations in addition
        to creatures.
      * Added check for is_creature when determining if there are any deathblows.
        Deathblows were happening (with 0 attack dice) when a location
        was destroyed via Rot etc.
      * Removed Scare from Stormwatch Peak, it does not have that ability.
        It's activated_ability block was also blocking the (M) Mass Wound
        ability.
      * Removed all condition checks of is_in_play when a check
        for engaged or unengaged are also done.  A check for engagement
        or not already checks if a piece is in play.
      * Moved current warband file label above list view and to the
        right, should be seen now.
      * Updated event sending for activating an X ability to handle
        abilities with no names (i.e. Locations).
      * Fixed Grand Hive ability.  It wasn't returning true after execution so
        only 1 mini could be spawned.  Also correctly have pass on may action
        set notification ptr.  Also added ability description for pass on may.
      * Action for activating an X ability now has correct spacing for description
        and also added "X=" to the x portion.
      * Both UIs now subscribe for awarding of victory point and wx UI
        properly re-renders the side panel when this event fires.
      * Added new custom The Gallows (Twilight).
      * New calculation parent_context_piece_spawn_cost.
      * Updated base ability class and sacrifice_piece ability
        to set context piece ptr when appropriate.
      * Added piece ptr member to activated_combined_ability
        for context/use by subsequent abilities.
      * Fixed random_warband.py, needed to be updated for addition
        of printing rarity w/ -P flag.
      * Added missing rarity for Demented Stepmother.
      * Added new custom Haunted Warlord (Twilight).
      * Made an activated variant of no_damage_assign_in_cell_triggered
        (Pacify).
      * Added new custom Lurid Ladybug (Twilight).
      * Added new custom Knucklebreaker (Twilight).
      * Fixed Deathhead and Blood Golem to only give the bonus
        conquest during the conquest phase.
      * Removed hardcoded CiP condition generation from Bloodtax,
        Haste Gambit, and Spur.
      * Fixed -h output, missing a newline before -U string.
      * Fixed Deathhead's Infest 13 ability, was l3 in the xml def.
      * Fixed some location abilities not showing any text when user action
        is needed.  i.e. Grand Hive
      * Added logging of zone scores when loading eval.conf.
      * Shortened the text for triggered abilities resolution actions.
      * New ability fewer_attack_dice_and_activated_ability (Scarestrike).
      * Cleaned up handling of string for fixed base cost of variable
        spawn abilities (like Strafe).
      * Added check for in play for both is_engaged and is_unengaged.
        Abilities that needed targets chosen first was allowing
        pieces not in play to be chosen, i.e. Skirmish 2.
      * Added print out of rarity when dumping pieces w/ -P flag.
      * Added new custom Wardrummer (Twilight) probably most complicated
        and nested ability yet (and needed no engine changes!).
      * Added new custom General Glorius (Twilight).
      * Made move_multiple a lot more flexible in the number of targets,
        number of spaces to move up to, and added support for a post
        action w/ piece conditions.
      * Added rules dir and rules/alt_board_config.conf example.
      * Late change seems to have broken custom layouts.  Now fixed.
        Whoops!

01/21/11 - 1.0.41

      * The optimized order of disruption cells for the AI is now also
        dynamically created based on the scoring cell/portal configuration.
      * Fixed a bug w/ scoring cell initialization.  D and E cells 
        were being given stats for C cells.  Conquest points were correct
        but were being marked as scoring cells so the AI could get confused
        on when to do things such as spawning locations that needed to 
        be in a scoring cell.  Also means abilities that had the requirement
        of {S} would work in these cells.
      * Made the calculation for evaluation zone scores generic so it
        will work with any custom configuration of scoring cells/portal.
      * Warband save dialog now has a default filename to hint to the user
        that the file should end in .txt.
      * Fixed Equitar's desc, it had Corpsebuilt, should be Corpsebuilt 2.
      * Updated assertion for activated abilities w/ a can_use_ai handler
        to check for parent having an X cost.  i.e. Advance & Bomb.
      * Empty strings are no longer added to the ncurses event
        buffer.
      * Made some optimizations when calculating conquest points
        and in a few places where memory allocations were being
        done a lot.  Slight speed-up.
      * Added can_use_ai to activated_combined_ability.  It just
        aggregates the results of can_use_ai on all abilities it
        cares about.
      * Fixed issue w/ initial draw of board.  If board was resized
        before starting game, it would take a full redraw to see
        rendered board components (scoring cell, portals).
      * Don't add undo action when @ the start of a game.
      * Fixed bug w/ wx UI.  Undo'ing back to the start of the
        game was unsubscring UI events so no future events
        were handled.
      * game.log on wx UI now also saves all UI events to the end
        of the log.  This is saved when the application is closed
        or when a game ends.
      * Set focus on OK button with wx dice input dialog.
      * Added check for valid input in the wx dice input dialog.
      * Updated wx cached game state to go through hook for rolled initiative for
        each player.  Nitro results were not being shown in the UI.
      * Fixed Nitro ability.  Was never doing its replacment.
      * Removed double can_use check from Nitro ability.
      * Added context string for sacrifice_pice and banish_piece.
      * Updated the makefile to create empty directory 
        res/pieces/artwork on the Mac.
      * wx UI supports custom portal location and draws the portal
        graphics in that cell.  ncurses has always checked is_portal.
      * Buttons are now centered in sealed dialog.
      * Made the silver and gold portal cell a configurable parameter.
        see silver_portal_string and gold_portal_string in rules.conf.
        The defaults are A5 and E1.
      * Made all popup dialogs (warband editor, etc) center on the main 
        window.
      * Added ui update triggers for Undo and gaining bonus spawn points
        (Heartsblood Temple).
      * Added new event type EVENT_ID_UNDO, also added EVENT_INFO_WITH_ID
        call in action_undo to trigger wx UI updates.
      * Went over the doc/README files and updated as necessary,
        a lot has changed since I last updated these.
      * Added a can_use_ai handler to activate_cip_ability.
      * Made Flicker the generic activate_cip_ability w/ conditions and
        calculation ptr.
      * Cleaned up the sealed generation config dialog.
      * After removing a selection in the warband dialog, the previous
        entry in the list view is selected now.
      * Added missing Reinforce Battle ability to Steelborn Lioness.
      * Added a clear button to the warband dialog.
      * Fixed in_a_shift_phase condition, was only checking for player 1's
        action phases (Inertia ability).
      * Modified action_activate_ability to "fizzle" if it is
        a combat only ability and no combat is taking place.
      * Edgemaker w/ human players now also allows you to activate combat 
        abilities which will not resolve (per Baxar's FAQ).
      * Made Edgemaker more generic activate_blade_ability, also added 
        a can_use_ai handler.
      * Added support for a triggered (i.e. CiP) Mindlock.
      * Fixed move_single ability, pass on may was not setting notify
        so not resolving w/ pass (needed for Reactive abilities).
      * Tweaked the eval function a little bit to account for 
        pieces marked for disruption/destruction.
      * Cleaned up dicestrike ability's continue on action context str.
      * Condensed the warband editor dialog to fit in a much smaller
        resolution.
      * Actions that take a context string now handle locations
        which have no desc.
      * Removed testing piece names from bin/random_warband.py.
      * Fixed Bliss' long desc, made it seem like she
        could only attack 2 targets.
      * Updated all action_and_X abilities to also support
        removing a piece from the game for the action.
      * New action remove_piece_from_game.
      * Made Awaken the generic action_and_put_matching w/ lots
        of conditions.
      * Added new action and engine routines for removing a piece
        from play.
      * Added piece count to destination side of warband dialog.
      * Greatly improved the rendering of abilities and stats on the bottom base
        as far as used space and layout.
      * Sacrifice and Banish now include cell it happened from in
        event info msg.
      * Updated Aviax Cowboy and Infernal Screamer's long description.
      * Added can_use_ai handler to action_and_gain_spawn_points.  AI
        was activating Citadel of Torture's ability with no local
        allies present.
      * Made input control for random seed wider.
      * Shortened "Player <player_name>" to just <player_name> for
        initiative roll and action phase actions.  Also removed its
        use from the core engine when the player's name is already referenced.
      * Fixed Mighty Stride ability, can also apply to the creature itself with
        Mighty Stride, not just allies.
      * action_special_attack handles empty ability descriptions better.

01/08/11 - 1.0.40

      * Fixed Terrible Termite's Rot abilities.  They would only
        assign to locations controlled by the controller of Terrible
        Termite.
      * Fixed issue w/ action label text not showing 'Silver choose an
        action' like it did for Gold player.
      * Changed outline rectangle while dragging to full piece image.
      * Trigger redraw of board in wx UI if piece controller changes.
      * Cleaned up Bast's Handmaid's Mighty Stride, the condition block
        for handling highest power was not correct.
      * Rolled Bloodtusk Throne into special_attack_single_triggered.
      * New conditions piece_controller_is_active_player and
        piece_controller_is_not_active_player.
      * Added support to special_attack_single to allow the attack to be
        done by the active player (Bloodtusk Throne).
      * Made the ability text equals/contains and name equals/contains 
        filter entries case insensitive.  So a search for 'mire' would 
        match 'Mire'.
      * New routines to convert from text representation of aspect cost
        to broken down costs per aspect and back.
      * Implemented missing restoration of filter values for some
        choices (aspect, ability text, etc).
      * Small usability improvements w/ activating abilities.
      * Fixed spacing of pieces filter dialog.
      * Made Mindlock X more generic take_control_of_piece w/ conditions.
      * Added support for specifing alternate rules.conf and eval.conf
        on the command line (-f and -F flags).
      * Updated Baba Yaga's static ability to only be used during
        the conquest phase.
      * New conditions in_conquest_phase, spawn_point_match_piece (replacing
        all the lineage specific ones), and 
        piece_spawn_cost_equals_ability_x_payment.
      * Rolled Energize <lineage> and Summon <lineage> into the generic
        conditional_spawn_points_match_piece.
      * Fixed spelling of Terrible Termite in xml def, also changed
        is enemy check to controller check since locations are not
        enemies according to the rules.
      * Made Altar of Dementia's long description follow that of
        the most similar piece, Citadel of Torture (ally -vs- creature
        that you control).
      * Added an AI optimization to spawn_no_cost (i.e. Gutsoup Golem's
        Respawn ability).
      * Fixed an issues w/ ability check_legal_attacker (i.e. Loner).
      * Added effect_move_piece actions as ones that are "draggable".
      * Fixed issue w/ the Transfer X abilities.  Was allowing
        a transfer to happen to the reserves or graveyard
        if a location was present.  Only works w/ with cells.
      * Made Synergy X more generic w/ 2 different calculations
        instead of discrete numbers (X count and num spawn).
      * Won't start game if not at least 1 piece in each warband.
      * Fixed interaction assert w/ Hammerhead's Double Stakes and One-Man Army's
        Deny Victory.  It is possible to be gaining more than 1 victory pt.
      * wx UI now redraws zoomed in piece if either damage is assigned or
        counters are assigned.
      * effect_assign_venom now sends out info msg w/ EVENT_TYPE_COUNTER_ASSIGNED.
        This allows UI to redraw zoomed piece w/ venom counters when assigned.
      * New event id EVENT_TYPE_COUNTER_ASSIGNED.
      * Added subscription for EVENT_ID_PASS_ON_MAY to both uis.  This
        is useful for when AI passes on things like Gambit etc after
        activating.
      * Fixed Coral Archerfish's Defender ability, was specifying any
        piece match rather than enemy, was behaving like Constrained.
      * Fixed issue w/ 2 pieces that have Hivetunnel.  There were two
        <piece_condition> blocks which kept the conditions from being
        used.
      * Added zoomed piece refresh for disruption since damage clears.
      * Increased buffer size for translating wxStrings to std::string,
        this was causing crashes when saving warbands to very long
        paths.
      * Fixed take_no_damage ability.  Was taking attack types and comparing
        against damage types.  So things like Immortal's Resting Place
        was allowing damage from deathblows but not for regular attacks.
      * New routine to translate damage type strings to ids.
      * Updated assign_attack_damage's text to use the word attack.  There
        is a different between attack damage and damage.
      * Added can_use_ai handler to special_attack_single_piece_attribute
        to keep the AI from activating at 0 cost like Mightly Valor 
        Assault when there are no pieces to attack or attribute targets.
      * Fixed issue w/ Guardian Angel's Intervene ability.  Was
        allowing Shield assignment when controller was attacking.
      * Added event info message showing roll from Mindstrike.
      * Bumped up Null Arch's spawn cost.  It's quite powerful.
      * New custom, High Inquisitor, uses a custom ability 'Cartographer'.
      * Made Alert the generic modify_initiative_roll and added support
        for taking an amount calculation.
      * Made Ambition and variants the generic additional_conquest_if_claimed
        with conditions.
      * Deny Victory is now a post replacement instead of a pre as it should be.
      * Made Deny Victory more flexible by allowing a list of piece conditions.
      * New condition piece_in_opponent_portal.
      * It's been quite a while and a lot of changes have been 
        made so I updated the doc/making_customs.txt with
        the latest info and some suggestions on choosing aspects
        for customs.
      * Ability description (and code) updated to handle cases of new Rip
        abilities to avoid infinite loops.
      * Made Deathrip the generic Rip.  Will allow for customs
        that do stuff like Mindrip, or Rip Local, etc.
      * Tweaked Shadow Assasin's stats, Teleport Self seems very
        Valor so changed cost to 7PPV.
      * Fixed drawing of outline drag rectangle when just selecting
        a piece.
      * Made Gloom more flexible as a generic triggered ability
        rather than hardcoded CiP.
      * Added info events to announce total damage and blades for a 
        particular attack.  Knowing this @ the start helps with making
        choices, esp if other attacks are done overwriting the last
        dice roll.
      * Added support for generated sealed boosters and
        the ability to filter which sets to pull from.
      * Added dynamic depth for minmax AI.  Useful when the number of
        actions gets very high (like a lot of unengaged creatures during
        a shift phase).
      * Updated Gloom ability to use trigger_conditions so now it
        correctly shows up as {CiP}.
      * Added support for showing currently assigned damage and counters
        to wx UI.  Zoomed in top base shows these stats at the top.
        Red is assigned damage, Green is assigned (i.e. venom) counters.
      * Added assigned damage and custom counter maps to cached
        game state.
      * Fixed beeping issue when selecting a piece and not
        dragging in wx UI.
      * Changed all cost related text values to use '(' and ')'
        So {B} is now (B) like for spawn points.  Conditionals 
        like scoring cell, reserves, local ally, etc, still use 
        '{' and '}'.

12/22/10 - 1.0.39

      * Fixed initial sort in warband dialog.
      * Updated the welcome dialog w/ new info about dragging
        and using spacebar for passing.
      * Made a separate OS X bundle target in the makefile.
      * Added key accelerator support to the warband dialog.
        Pressing a-z will jump to the first entry with that
        letter.
      * Increased height of warband dialog on the Mac.
      * New custom Terrible Termite.
      * Removed double iterator check from venom_multiple.
      * Made the Venom and Venom multiple abilities much more flexible 
        in terms of targets, number of counters, and description/name.  
        This will allow for some cool custom abilities.
      * Changed non-ASCII apostrophe in Paper Hound's flavor text.
      * When running threaded minmax, prefer the lower action indexes
        for same score actions.  They are (usually) ordered best -> worst.
      * Fixed Defender ability for all pieces.  Was not allowing
        the piece to shift at all once in play.
      * Fixed issue w/ can_zone_be_entered_into_by_pieces hook.
      * Fixed a memory crash when running with a LOT of threads.
      * Fixed bug w/ handling ai thread actions w/ the monte
        carlo algorithms.
      * Added support for specifying number of turns of look ahead
        for hybrid AI.
      * Inlined all default handlers for hooks for a decent
        performance increase.  Preliminary testing shows that
        with 2 minmax AIs playing the example warbands I see
        ~40% performance boost.
      * Added optimization of tucking away spawn pool in player class.
      * Some routines were still using the old (slower) check for
        a zone being in the dreamscape.  Removed the old routine
        and updated the routines to use the new one.
      * Made check for an ai thinking inline.
      * Fixed uninitialized flag issue in Beacon ability.
      * The start game action is now preferably started by the human
        player.  This lets a human player UNDO all the way back
        to the beginning of the game.
      * Added support for pressing space key for passing type actions,
        including continue on (when for instance selecting targets),
        passing on may ability etc, and going to the next phase.
      * Added support for dragging pieces to do shift, spawn,
        and choose disrupt cell actions.
      * Added code to tuck away coordinates of all zones and also
        mouse down/up/move event handlers.  Will be used for dragging
        pieces between zones/cells.
      * Tweaked Altar of Dementia's stats a bit by comparing against
        a similar piece, Citadel of Torture.
      * Re-enabled UNDO support for human players.  This was in before
        I officially released the game, but I removed it for some reason
        that I can't recall.  It's back now.
      * Cleaned up attack dice rolled event string.
      * Added special handling for Fortunate All when the AI is thinking.
        Sifting through millions of options for rerolls is just too much.
      * Added AI handling to effect_reroll_attack_dice to limit branching
        with minmax.
      * Fixed issue w/ rolling attack dice, event was not being
        sent out when AI was thinking.
      * Optimized generating reroll dice combinations.  With some
        attacks I was seeing crazy numbers of permuations which
        would take a LONG time to go through.  Much, much faster
        now, we're talking minutes -vs- hours.  :)
      * Fixed bug w/ removing sustained effects through undo engine
        while iterating.
      * Added support to effects to query if they have expired or
        not.  This allows for more flexibility, i.e. things that carry 
        on until the NEXT occurance of an event.
      * Fixed a potential variable shadowing issue when emptying
        sustained effects lists at trigger points.
      * New ability action_and_activated_ability.  i.e. (2) You
        may sacrifice a local creature.  If you do: Lure.  IMO
        using the ability itself is good rather than having it be
        some generic container.  It allows things like Reactive abilities
        to have more uses.
      * Fixed potential issue w/ activated_combined_ability.  Was
        not calling on_activate() for contained abilities so if they
        had state they would not reset.
      * Updated Dance of Chaos warband, was missing a few pieces.
      * Tweaked The Hills's stats, was a little too cheap.
      * Tweaked Shadow Assasin's stats, was a little too costly.

12/07/10 - 1.0.38

      * Made the default for do_print fall back to printf if the log file hasn't
        been opened (i.e. -P or -p flags).
      * Made the ability instantiation more robust in the event it fails.
      * Fixed cant_move_when_shifting ability (Lockdown, etc).  Was not in list
        of abilities to instantiate.  Fixes Lockjaw.
      * Fixed Lockjaw's Lockdown ability, can only select a cell in the dreamscape
        not any zone.
      * New custom Scythejaw, now up to 515 pieces total!
      * Added scoring cell graphics to wx GUI version.
      * Updated GUI code to work with wx 2.9.x which will be necessary for 64
        bit versions.
      * New condition piece_is_not_of_current_aspects.
      * Added a piece count to the filtered pieces list area of the warband
        creator.
      * Added support for auto starting a game with the starting params w/
        the wx GUI version.  Mostly for my debugging purposes.
      * Small string constant fix for Linux wx version.
      * Removed un-needed check for chosen_targets == 0 in move_multiple
        ability.
      * Fixed a subtle race condition w/ the wx GUI which would
        cause a crash.  Seemed to happen easier on the Mac for some
        reason.
      * Upgraded to wxWidgets 2.8.11 for wxMac.
      * Fixed a spacing issue w/ the resolving triggered ability
        event info msg.
      * Went over the entire codebase to make it 64 bit ready.  Had
        to update a lot of the state change stuff which did casting
        from ptr to int.
      * Fixed issue w/ EVENT_INFO of a stacking limit issue.
      * New conditions piece_all_abilities_long_contain.
      * New custom The Hills.
      * Fixed Soulwash Temple's long desc.
      * New conditions piece_defense_le_than, piece_defense_ge_than,
        piece_defense_equals, piece_aspect_cost_equals, piece_is_in_set,
        piece_name_contains, piece_abilities_contain, piece_life_equals,
        piece_life_ge_than, piece_power_ge_than, piece_is_of_rarity.
      * Implemented a piece filter dialog used for the warband creator display
        and generating random warbands.
      * New custom Shadow Assasin.
      * Fixed duplicate keyboard accelerator for 'V', 'R', and 'S' in warband dialog.
      * New ability condition, is_ability_owning_piece_a_creature, displayed as
       {Creature}.  Acts just like other other ones like in_a_scoring_cell {S}.
      * New ability and effect become_creature.
      * Changed ai_style's initiative dice sides to work w/ any setting for 
        num_sides_initiative_die.
      * Fixed issue w/ Frantic Generator's Boost ability not being created.
      * Fixed Carrion Hulk and Rotting Juggernaut's XML def to use 
        ACTION_SACRIFICE rather than hardcoded 30.
      * Added Creature and Location columns to warband dialog and the ability
        to sort on them.
      * Correctly check for legal entry (i.e. stacking limit, effects)
        when iterating disruption cells.
      * Fixed showing of 'NONE' for location's activated and triggered ability
        short descriptions.
      * Made DAMAGE_TYPE a bitmask now that theoretically a piece could be
        both a creature and a location.
      * Piece class has new attribute is_location.  No longer relying on !is_creature
        for location.  This will allow a location to become a creature etc and
        remain in addition a location.
      * Made a separate routine for rolling a d6 die now that initiative
        can be more than 6 sides (i.e. d8).  This keeps abilities that say
        "roll an initiative die" etc from using them.  Some key directly
        from being a d6 (i.e. Insubordination abilities).
      * Fixed issue with ai_player::is_thinking was being set back to false
        by new Bodyguard damage assignee handling when it needs to preserve the 
        existing value.
      * Removed the unused dice::roll_results.
      * Changed use of strings for initiative rolls to ints internally, slight
        performance tweak.
      * Fixed a small memory leak that reared its head when doing very high
        numbers of Monte Carlo iterations.
      * Removed some debugging prints that were being done in the release version.
      * New custom Null Arch.
      * Some wxMac cleanup work w/ std:strings.

10/31/10 - 1.0.37

      * Added new method to wx_gui frame class to only load images for a single
        piece and added a flag to the loader to not clear cached images (used by
        warband creator).
      * Fixed action_and_no_damage_assign and move_or_action.  Was using the wrong 
        defs for action_type.  Also added support for disrupt and destroy actions and
        appropriate checks for can_be_disrupted and can_be_destroyed.
      * New custom Paper Hound (uses new ability Fickle 1).
      * New ability pay_spawn_cost_or_action.
      * Made Boost the more generic modify_spawn_ability_cost w/ conditions and
        calculation.  Also renamed it to Boost 1.
      * Updated activated static ability to show short desc as well as long.
      * Changed triggered version of Rush to use trigger_id and 
        trigger_conditions rather than hardcoded to entering play.
      * Fixed Double Venom's long desc.
      * Fixed misinterpreted - character in some long desc.
        Was showing up as some weird UNICODE sequence.
      * Made use of (X) for spawn points consistent.
      * New custom Joker Joker Joker (Twilight).
      * New ability contributes_towards_pair_or_triple.
      * New custom Righteous Fury (Twilight).
      * New custom Harrowing Shade (Twilight).
      * New condition piece_power_le_than.
      * New custom Phalanx Soldier (Twilight).
      * New hook contributes_to_pair_or_triple.
      * New conditions has_pair, has_triple.
      * Changed Offer Self over to generic action_and_gain_spawn_points.
      * New custom Zombie Master (Twilight).
      * New condition zone_is_targets_graveyard_or_reserves.
      * Made Hell Spawn ability the generic move_if_selected_destroyed, also made the
        corresponding effect more generic.
      * New ability gain_static_ability_triggered.
      * Added support for verifying and generating random warbands to the new
        warband editor.
      * Changed verify_warband to return an int rather than bool so caller can
        decode why warband failed verification.
      * Fixed default miniature type limit in code (was 4, should be 3).
        rules.conf has correct value.
      * Fixed The Gates of Hell XML def, was missing <activated_ability> tags.
      * Made ABILITY_TYPE_GAIN_ACTIVATED_ABILITY_CIP more generic to work with
        any trigger.
      * Changed Soulwash Temple's triggered ability to use trigger_conditions 
        instead of hardcoded checks.  Now plays nice w/ is_cip() and shows up
        as {CiP}.
      * Updated reactive abilities' long desc.
      * Fixed Bloated Parasite's short desc.
      * Added long desc for activated_combined_ability.
      * Cleaned up display handling of no-name abilities for locations.
      * Cleaned up Venom's long description.
      * Common-alized full ability string generation.
      * Added support for a warband builder/Dreamcatcher equivalent.
      * Imported about 30 or so images for Serrated Dawn matching
        my homemade proxies.
      * With the help of the ImageMagick utilities I was able to scale
        all of the images to be the right aspect ratio so they do not
        look stretched or weird in the UI.
      * Updated images (thanks extreme!) to remove the colored bases which
        was redundant given they are shown within a base in the UI.
      * Cleaned up Doctor Shocksalot's Chain Warpstrike.  Clarified ability 
        behavior via feedback from the author (Scud-O).
      * Added support for inputing real dice rolls in wx GUI (specific w/ -c
        on command line or using the checkbox in the UI settings).
      * Added support for a variable # of sides for the initiative
        die (defaults to 6).  See rules.conf.
      * New custom location Altar of Dementia (inspired from MtG).
      * Made Lockdown the generic cant_move_when_shifting and also
        made an activated version.
      * Made Torture the generic action_and_gain_spawn_points.
      * New calculation piece_attribute.
      * Rolled Dominate and Baba Yaga's static ability into the generic
        modify_can_claim.
      * Removed some debugging prints in conditions that were not debug only.
      * New condition zone_is_local_to_reference.
      * Rolled Tactics X and Darkhart Cottage's ability
        into the generic modify_attack_dice.
      * Migrated Strafe to special_attack_multiple.
      * New calculation ability_x_payment.
      * Added support for a variable number of pieces to choose
        for special_attack_multiple (i.e. Strafe).
      * Converted Equistrike to gain_attribute_modify_triggered.
      * New condition trigger_equal_num_piece_match.
      * Upgraded my Linux distribution which caused an upgraded of gcc etc.
        4.2 -> 4.4.

09/13/10 - 1.0.36

      * Changed effect_score_conquest_for_destroyed to grant the bonus
        conquest when a matching piece is destroyed, rather than waiting
        for the effect to expire.
      * Added conquest point info to "won turn" event info.
      * Fixed spelling of Murderous Berserker's utility name.  Was
        preventing its image from loading.
      * Fixed trigger_piece_changed_zones.  Wasn't checking piece
        conditions so stuff like Mind Mulch was triggering for both
        the owning player and their opponent.
      * Removed action* param to handle_undo_stack, wasn't used.
      * Changed the default # of iterations for Monte Carlo based AI
        2000 -> 200.  2000 is way too many for straight MC, but good
        for hybrid.
      * Updated action string when game ends.
      * Revamped damage assignment so it is now (to the player) as you
        would expect with abilities like Trample and Bodyguard.
      * Added can be target check for Supress.
      * Fixed Edged-X abilities which state "a local creature you control".
        Via gaining blade abilities, the piece w/ the Edged-X ability itself
        could be activating a blade so the check is not for ally, but that
        the controller's match.  Also now correctly check for is_creature.
      * Fixed handling of not assigning attack damage (regular and deathblow)
        due to an ability like Bodyguard.  Damage wasn't being assigned but 
        it WAS being removed from the damage total for the attack.  Per the 
        rules, all damage needs to be assigned.  This may make the minimax AI
        a wee bit slower since it could continually have N number of assignees
        after assigning to pieces that cannot be assigned damage.
      * Converted Brainblast to special_attack_multiple which also
        gives it the ability to be copied.
      * Fixed Doomsinger's ability.  It was using the wrong special
        attack type id.
      * Merged Warpstrike Multiple and Warpstrike All into generic
        special_attack_multiple.
      * Fixed issue w/ Conductor's {CiP} Transpose Enemy/Ally.  XML def
        was using trigger_condition, needed to be triggered_conditions.  
        Ability was triggering even when out of play since there were
        no conditions.
      * Made the zoomed piece image square so it looks normal when using
        the original pics of the minis.
      * Added option to now show board (-U) w/ ncurses UI.
      * Updated triggered Spur to show {CiP} and correct long
        description.
      * Migrated Soul Harrow to use spawnable_cells_modify.  Also
        fixed to also not allow locations to spawn in that column.
        The ability states "miniatures", not creatures.
      * Added hooks for location spawning and pre/post modifier
        hooking to spawnable_cells_modify ability.
      * Migrated Stray Warpstrike to use special_attack_single.
      * Added an opponent_chooses flag to special_attack_single.
      * Migrated Grave Harvest to move_single w/ conditions.
      * Added support for trigger_condition piece_destroyed.
      * Added new condition zone_is_local_or_adjacent_to_reference.
      * Added new condition piece_is_not_triggered_ability_context_ptr.
      * Added a new field to triggered_ability allowing a context ptr
        which can be used by certain conditions.
      * Updated special_attack action text to take up less space.
      * Bristleback Basher is now available to use.
      * Updated Torture Chamber to use generic special_attack_single_target_attribute.
      * Fixed an issue w/ Birthing Frog, unengaged check does not check in play.
      * Cleaned up packaging of OS X bundle.
      * Fixed some uninitialized class members in wx_gui.cpp.

08/21/10 - 1.0.35

      * Optimized clearing of index memory pools for non initial game state
        allocations.
      * Fixed Unravel X ability.  Was boosting defense of chosen piece rather than
        lowering it.
      * Optimized the state machine do/undo for game phases.
      * Added elapsed time msg for game for wx GUI version.
      * Fixed issue w/ Flanking X and Heroics X.  Ability conditions were
        not in a <condition> block.
      * Cleaned up cell drawing so it always "fits" the board image.
      * Fixed issue w/ cached bitmaps after playing first game.
      * Fixed a bug in the redraw/resize logic in the wx GUI, updates are now
        much more snappy.
      * Updated the background to match the original game board.  Thanks to
        slambert for removing the cell lines and scoring cell graphics.
      * Switched to a much faster random number generator for the Monte Carlo
        and hybrid AI algorithms.  It's about 100x faster than the boost one used
        for dice rolls etc.
      * Inlined some very frequently called functions and gained a nice speed
        increase.
      * Exposed a lot more options in the wx GUI version including random seed,
        inputting of dice rolls (not implemented yet), new AI algorithms.
      * Optimzed the use of some stl vectors and the game_phases class.
      * Removed for_player from action_group.  Wasn't used.
      * Fixed Rampage.  Was triggering but not resolving due to not casting
        event info to correct type.
      * Small optimization with checking if a player can strike in a cell.
      * Small optimization with getting a player's portal.
      * 2 new AI algorithms implemented Monte Carlo and a hybrid of Monte Carlo
        and minmax.  The -o and -O flags control which are used as well as -r.  
        See doc/README for more info.
      * Made Synergy X more flexible and also check all conditions to be forfilled
        to contribute to the X count.  Updated all pieces w/ Synergy X
        accordingly.
      * Fixed bug w/ Synergy X, wasn't dereferencing the spawn_cost pointer when
        modifying the cost.
      * Fixed a bug w/ Darkheart Cottage applying to both players.
      * Removed aspiration code from minmax AI and separated minmax out into
        a separate module.
      * Now load cell scores for each player from file (eval.conf).
      * Changed all line endings for piece definitions to DOS.
      * Removed Advance All from Knight of Strife and Joy.
      * Fixed issue w/ Frightwave, was only allowing pushing pieces with
        the same spawn cost of the roll, should be <=.
      * Went through all pieces w/ static abilities and added is_in_play
        checks as needed.  This fixes stuff like Channel Hiveling 1 working when
        Queen Chrysota is in the reserves.
      * New condition owning_piece_in_play.  Optimized version of
        match_piece_in_play.
      * Tweaked eval function multipliers to prevent overflowing a 32 bit unsigned
        number which would cause some AI anomolies.
      * Added an AI optimization for declaring attackers for strikes and
        deathblows.
      * Fixed AI_OPTIMIZATION macro, should also test if player
        is not human in addition to whether or not an AI is thinking.
      * Added new keybindings to wx welcome dialog.
      * Fixed issue w/ Channel Hiveling 1.  Was working when 
        Queen Chrysota was not in play.
      * New condition match_piece_in_play.

06/28/10 - 1.0.34

      * Fixed bug in Insubordination Energy.
      * Fixed up action_pay_spawn_points desc.
      * Added some new warbands contributed by Anborn.
      * Changed all text files under doc/ and all warbands to be DOS
        line-endings.
      * Rolled Bloodletting and Infest into generic
        gain_bonus_conquest_if_conditions.
      * New conditions destroyed_more_match_pieces_this_turn and
        controls_match_piece_in_each_scoring_cell.
      * For human players, allow all pieces from reserves, not just one instance
        of a piece.  Could be confusing to see a piece in your reserves and not
        see it in the list of pieces that can be spawned.
      * Game end msg now uses player's names instead of Silver/Gold.
      * Fixed potential crash w/ engine responding to certain events and handling
        sustained effects.
      * Fixed an issue w/ Locus Drive ability.  Wasn't limiting to adjacent
        cells.
      * Added new shortcuts for toggling base stats "," and the left hand side
        panel ".".
      * Correctly handle the extremely unlikely case of no cells to disrupt to
        meaning destruction but an ability prevents destruction.  Things are
        cleaned up correctly in this rare case.
      * Cleaned up the damage clearing on disrupted creatures.  It was being
        done all at once once all had been disrupted.  Now it is done correctly
        after each individual creature is disrupted.  This fixed issues w/ blade
        abilities that disrupts creature(s).
      * Fixed Boneclan Hunter's aspect cost.
      * Rolled Mighty Assault into the generic special_attack_single_target_attribute.
      * Fixed race condition in multi-threaded AI code.
      * Fixed Kendra Vale's aspect, she is Passion, not Madness.
      * Fixed an issue with parent_ability_x_payment.
      * Added a check for being in play for Bomb.  Piece could have
        left play due ot an Ambush, etc when part of a combined ability.
      * Migrated Skid Drive to move_single_triggered w/ conditions.
      * New condition zone_is_to_left.
      * Fixed some oddball interactions with disruption, Dissipate,
        and Deathrip.
      * Rolled Vessel and Dissolve into the generic
        bonus_spawn_for_destroyed_modify. 
      * New condition trigger_piece_destroyed.
      * Rolled Edged crit into add_to_combat_damage_triggered.
      * Made Dissipate more generic disrupt_piece w/ conditions.
      * Rolled Steadfast, Inertia, and Immortals' Resting Place's ability
        into the generic take_no_damage.
      * Rolled Hiveling Frenzy into reroll_attack_dice.
      * Rolled Soul Mine's Dense Harvest into add_spawn_points_triggered.
      * Removed all usage of special case events for spawn phase.
      * New condition trigger_phase_entered, also made trigger_phase_exited
        more generic.
      * Changed order of entering phase and sending out event.  This will
        allow conquest points to be calculated before any triggered abilities
        trigger from entering the phase (i.e. Boon abilities).
      * Fixed move_multiple_triggered's long description.
      * Added support for trigger id and conditions for move_multiple_triggered.
      * Fixed Eternal Beacon's ability descriptions.
      * Reduced the flicker of the zoomed base image when UI gets
        events from the core engine.
      * Changed Zungar Winddancer's ability desc to Etherdance 3.
      * New custom Rotting Juggernaut (Twilight).
      * Made Corpsebuilt more generic move_or_action w/ conditions.
      * Fixed an issue with condition piece_power_greater_than_parent_x_payment.
      * action_and_no_assign_damage can now be copied (Unhinge).
      * Fixed scaling of black center when no image is found.
      * Fixed makefile.  Twilight pieces were not being packed w/ Windows version.
      * New custom Earwig (Witching Hour).
      * Modified action_choose_disrupt_destination to allow
        intervening triggered ability (Burrow).
      * New activated ability , take_control_if_disrupted.
      * New triggered effect, take_control_if_disrupted.
      * New custom Nurse Nighty-Night (Twilight).
      * Rolled Bit Top's ability into limit_can_shift_and_attack.
      * Changed choose_piece_as_target and choose_zone_as_target to
        just be choose_piece/choose_zone.  Being a target is one
        of any possible conditions, no targetting is implied by the
        choice so it was changed to avoid confusion.
      * New ability limit_can_shift_and_attack.
      * New effect piece_cant_shift.
      * Fixed effect piece_cant_move.  Wasn't setting target_instance_id.
      * Fixed inverse logic of limit_can_shift ability.  Was keeping
        pieces from shifting at all to anything but the matching
        zones.
      * Zone of activation and activating action now go through undo
        engine.
      * Optimized regular and deathblow attacks in the special case
        of one damage assignee.  No need to come back and check
        for more damage assignees.
      * Fixed bug in ability cant_be_disrupted (Nightfire Giant).
      * New custom Punch-Drunk Champ (Twilight).
      * Fixed Knight of Here and There's short description.
      * New custom Wildman (Twilight).
      * New custom Stormwatch Peak (Twilight).
      * New custom Sleeping Giant (Twilight).
      * New custom Boneclan Guardian (Twilight).
      * Fixed Droning Damselfly.  It has Ambush 5, not Charge 5.
      * Updated Ambush to take a power calculation parameter.
      * New custom Fido (Twilight).
      * New condition piece_power_greater_than_parent_x_payment.
      * New calculation parent_ability_x_payment.
      * Some performance tweaks for the AI.

05/29/10 - 1.0.33

      * Rolled Indisruptible, Blind Fury, and Protect into the single module
        cant_be_disrupted.
      * Fixed a lot of issues w/ Protect ability.  Wasn't doing sustained
        effect when disrupted (only destroyed) also wasn't using new
        event_info classes and was expiring at the beginning of a phase
        not the end.
      * Rolled Accuracy and Overpower into generic deal_damage_dice_modify.
      * Moved Steadfast to take_no_damage_from_deathblows ability.
      * Moved Flux Crit to add_to_combat_damage ability.
      * Added a calculation parameter to add_to_combat_damage ability.
      * Fixed Soulwash Temple's short and long description, it has Crit 1,
        not Crit 3.
      * New custom Torch and Pitchfork (Twilight).
      * New condition trigger_declared_attackers.
      * New calculation power_match_pieces.
      * Rolled Unravel ability into generic gain_attribute_modify_activated.
      * Rolled Might ability into generic gain_attribute_modify_triggered.
      * Updated all modify type abilities/effects to be consistent in naming.
      * New custom Performance Artist (Twilight).
      * New ability modify_disruption_cells.
      * New abilities gain_attribute_modify_triggered and
        gain_attribute_modify_activated.
      * Changed zoom piece to be entire width of panel and larger height
        (but no longer square).
      * New custom Fish on a Bicycle (Twilight).
      * New ability using action_and_no_assign_damage, Unhinge (Twilight).
      * New condition zone_is_where_ability_activated.
      * Added new member to activated_ability class which holds the
        zone where the ability was last activated.
      * New condition zone_any.
      * Tweaked effect_modify_spawn_cost_piece_name to be more generic.
      * Rolled Timely Betrayal into generic action_and_no_assign_damage.
      * Migrated Clone ability to modify_spawn_points_triggered.
      * Optimized re-rendering of scaled pieces so that it is only done
        on a resize.  Was slowing the wx GUI down a **lot** due to the dynamic
        font sizing, image scaling, etc.  Downside is transparency of the bases
        seems to no longer work due to a wxMemoryDC issue.
      * Moved base rendering code to common routine.  Was 2 copies of it, 1
        for the board, one for the zoomed piece in the panel.
      * Added info event for when initiative die rolled for something
        other than initiative (i.e. Frightwave, Insubordination).
      * New event type for player rolling an initiative die.
      * Put up a dialog when trying to quit in the wx GUI when the AI is
        thinking.  This prevents having to have a lot of checks for exiting
        all over the place which will slow the AI down and also prevents
        weird crashes when yanking the thread out from under it.
      * Fixed bugs in Haunt Gambit and Haste Gambit when interacting with
        the undo engine.
      * Added scoring cell condition to Lunar Handmaiden's Advance ability.
      * Added missing Unwishing Well to Chaos Well-Bred warband to bring it
        up to 16.
      * Random warband generator now supports limiting which sets, aspects,
        and lineages to include.  See bin/random_warband.py for more info.
      * All special attacks now show the owning piece's name so when
        multiple of the same type of attack trigger (i.e. Ambush)
        you can distinguish between them.
      * Fixed Vortex and Reverse Vortex's short and long description.
        They were swapped.
      * wx GUI cleans up all threading before starting a new game.
      * Added support for specifying number of ai threads in wx game settings
        dialog.
      * Fixed issue w/ initial attack roll being modified outside of undo engine.
      * Fixed issue w/ Edged Fortune and calculated damage, actual damage 
        was not being calculated after dice modifiers.
      * Fixed the lowest/highest power conditions to be consistent in using
        hooked check for power.
      * Removed unused static member var from Fluctuate.
      * Fixed issue w/ wx GUI and auto executing single choice actions.  Was
        not triggering UI update so player's would see stale game state info.
      * Maded tournament initiative the default since that is how most people
        play.
      * Updated mingw environment to use pthread-win32 and added necessary
        dll to released zip file.
      * Fixed issue w/ Awaken.  Need to make a temporary vector before moving
        all the pieces.
      * The controller of a mini now correctly reverts back to the owner when
        leaving play for any reason when under Mindlock.  Was previously only 
        happening @ the end of the turn.
      * Cleaned up Mindlock and moved all piece list handling into game_state.
      * Fixed a very long standing issue w/ the undo engine.  Once in a while
        an action would be undone out of the order it was done.
      * Removed 2nd check on bool can_spawn in phase_spawn::generate_spawn_actions().
        and also removed duplicate calls to can_zone_be_entered_into_by_piece
        in this code path.
      * Fixed bug where an enemy piece in an player's spawn row cell was
        keeping it from being eligible for spawning into.
      * Multithreaded AI is now implemented and working.  It still has
        performance issues due to the memory allocator being used on
        some platforms.  Use the -t flag to specify how many AI threads
        to run.  Ideally you would run 1 thread per processor/core you have
        in your computer.
      * Fixed issue w/ multiple replacements for boolean hooks.
        (i.e. are_attackers_legal [Loner and Ponderous]).
      * Fixed Ambush when triggered multiple times for a single trigger event
        (i.e. Vortex).  Was only doing one attack against the last one to 
        initiate trigger.
      * Triggered abilities can now put effects onto the effects list on
        triggering, i.e. do not to be resolved via the ability itself.
      * Fixed a tricky interaction w/ Manifest (and similar abilities) and
        Copy Enemies.
      * Fixed uninitialized class member in grant_ability.
      * Fixed bug in Bloodthirsty and its variants.
      * Fixed makefile.  Twilight pieces were not being packed w/ Linux version.
      * Piece lists are now sorted before deciding spawn actions.
      * Fixed issue w/ spawn_no_cost ability.  Was adding a pass for each
        piece iterated.
      * Updated all pieces w/ exchange_pieces_triggered to use support
        trigger conditions.
      * Call init() on player after setting game_state's silver and gold
        player members so ai_threads can get at it.
      * All action derived classes overload operator== to allow comparisons
        (used by AI game states).
      * Fixed Mind Mulch, was triggering on pieces from either play going
        between reserves/graveyard.
      * Fixed an operator precendence issue in Copy Enemies.
      * Fixed issue w/ exchange_pieces_triggered not passing down trigger
        conditions.
      * Removed global id for actions.  Not just used for id'ing for
        multithreaded version.
      * Converted Flummox 2 to grant_ability w/ conditions.
      * Migrated all of the memory pool containers into the game_state
        class.  This is needed for multi-threaded AI support.  This
        was a pretty intrusive change and touched just about every file
        in some way.
      * Fixed Frightwave, was allowing pieces with a spawn cost equal to
        or less than the rolled die.
      * Merged special_attack_single and special_attack_x using calculation
        ptr for calculating attack power.
      * Random warband generator now supports a list of auto adds
        for a warband.
      * Made action_and_add_to_combat_damage_activated copyable.
      * Random warband generator now handles Sybil, Grand Hive, and Omen
        Locust without generating illegal warbands.
      * Flux Ward is now a attribute_modify w/ conditions. 
      * Cleaned up calculation classes, there was some duplication.
      * Merged Shadow and Shadow Field into a common cant_be_target ability
        with conditions.
      * Added ability description to print out when failing to copy an ability.
      * grant_ability checks stack flag before granting a static ability if the
        piece already has it.
      * Added stacks flag to ability class.  Some static abilities do not stack.
      * Added Regenerate to copy_ability function.
      * Some of the Halo abilities were working only when the owning piece
        was engaged instead of unengaged.  Some were also granting abilities
        to pieces out of play.
      * Fixed Soul Warden's Eternity ability, it was granting Shadow instead of
        Regenerate.
      * Rolled grant_activated_ability, grant_static_ability, and
      * halo_triggered_ability into the single grant_ability.
      * Rolled Unwishing Well's ability into sacrifice_piece_triggered.
      * New conditions piece_check_controller_spawn_phase and
        trigger_spawn_phase_entered.
      * New custom Cannon Fodder, uses Expendable ability.
      * Migrated Expendable to be action_and_add_to_combat_damage w/
        discrete calculation.
      * Added new flag to modify_contribution_warband_limit to specify
        amount to add/remove from the matched piece.
      * Added missing Gargantuan ability to Grand Hive.
      * Rolled Gargantuan into modify_contribution_warband_limit.
      * Control fewer/more (local) creatures rolled into control_more_match_pieces
        and control_fewer_match_pieces.

04/10/10 - 1.0.32
 
      * Fixed corner case of strike being declared, Disarm being used on
        the sole eligible attacker, and the combat not being declared
        ended.
      * Fixed issue w/ move_multiple.  Was allowing 1 more than specified.
      * New custom Den Mother (Twilight).
      * Added calculation param to add_spawn_points_activated and
        add_spawn_points_triggered.
      * New calculations num_match_pieces and discrete_value.
      * Fixed Call to Arms by adding check for a creature being spawned.
      * Bloodlust is now a move_single_activated w/ conditions.
      * Rally X is now a move_multiple w/ conditions.
      * Call X is now a move_single_activated w/ conditions.
      * New condition piece_spawn_cost_equals.
      * Added an info event when an activated ability is activated but it does not
        resolve (i.e. due to some condition like scoring cell etc).
      * Converted Mighty Stride to move_single_activated.
      * New conditions piece_power_highest, control_match_pieces.
      * Cleaned up clearing of activated abilities.  No need to query for
        current activated abilities, just match owning piece.
      * Fixed issue w/ spawn abilities and Mindlock.  FAQ says spawn abilities
        can only be activated once per *turn*, not per phase.
      * Separated used_activated_abilities into one for spawn abilities and one
        for used combat abilities.
      * New undo class state_change_vector_activated_ability.
      * Rolled Hivetunnel into move_single_activated.
      * Moved Punishing Beast and Protective Beauty into Twilight as they were
        designated the remaining 2 pieces to make up the 60 piece set.
      * Removed all entered play trigger stuff from insubordination abilities
        and made them generic triggered.
      * New custom Carrion Warcharm (Twilight).
      * Rolled Intimidation into move_single_activated.
      * Rolled Deathwish, Tantrum, and Appease into the generic sacrifice_piece
        ability.
      * Removed check for owning_piece being declared in check_legal_attacker.
      * Fixed off by one in attack_type_from_str().
      * New condition piece_check_controller_action_phase.
      * check_legal_attacker ability now also supports specifying attack
        types.
      * Fixed issue w/ disabling the attribute_x static ability.  When
        done as a replacement was re-adding it instead of removing.
      * Rolled power_x and power_defense_life_x into attribute_x.
      * Removed display_desc from all conditions that shouldn't be displaying
        anything, which is pretty much all of them.
      * Moved all global zone containers (g_zone_map, g_all_cells, g_all_zones,
        etc) into the game_state class in preparation for multi-game state
        support for parallel evaluation by the AI.
      * Changed logic of game_state::is_unengaged to return false for
        pieces not in the dreamscape.  It's not engaged or unengaged.
      * Fixed very rare occurance issue of Charge triggering Deathblast out
        of combat and never clearing marked_for_destruction.
      * Fixed targetting for Moondark Knight's Advance 2.
      * Removed type and obligation fields from the action_group class.
        They have never been used.
      * Rolled Pacifist and Ponderous into check_legal_attacker generic
        ability.
      * Fixed issue w/ check_legal_attacker ability.
      * Rolled Channel Hiveling 1 into the generic modify_spawn_cost
        ability.
      * Fixed issue w/ Arch of Triumph allowing spawning from reserves
        to reserves (only allow when zone is in dreamscape).
      * Added a small optimization when determining pieces to spawn.
      * Updated Raze ability to have multiple triggering conditions.
      * Rolled Petrify, Demolish, Smash, and Supersmash into a generic
        destroy_piece ability w/ conditions. 
      * Fixed Strikeback to correctly unsubscribe when combat ends regardless
        of pieces disrupted/destroyed or not.
      * Fixed a few effects which were unsubscribing for the same 
        event twice.
      * Bewitching Assassin has Ambush 5 not Charge 5.
      * Fixed event unsubscription issue w/ Bloodthirsty and its variants.
      * Changed Lethal Glory to not reuse a single effect.  Was preventing
        it from being activated more than once and having cummulative effects.
        Also made it a sustained effect.  Previously it would be executed and
        be done.
      * Removed double subscription for turn ending event in both
        ncurses and wx ui.
      * Removed duplicate call to init() with a copied ability.
      * Migrated Etherdance to move_single_triggered.
      * Updated Bloodcut Champion and Zungar Winddancer to handle
        their 'intervening if' correctly.  i.e. check on trigger
        and resolution.
      * New condition piece_power_equals.
      * Changed trigger_owning_piece_in_play to trigger_owning_piece_match.
      * Made Provoke's activated flag be a counter since it
        does not stack.
      * Fixed a crash with an event subscriber unsubscribing in
        the corresponding event handler.
      * New custom Tempestuous Queen (Twilight).
      * Glory and Transmute are now the generic gain_conquest_points.
        Also removed effect from those abilities since it wasn't
        needed.
      * Rolled Defender, Constrained, and Impede into the generic
        limit_can_shift which uses conditions.
      * New custom Knight of Here and There (Twilight).
      * Changed Spirit Slayer to Spiritslayer (Twilight).
      * activated_ability now has the notion of assign conditions.
        This is needed to, by default, check if a piece is in play
        but allow for overrides/additions (i.e. Stained-Glass Angel's
        Manifest Reserves requirement).
      * Regular attack no longer checks for piece's eligible
        for blade assignment to still be in play, the default
        hook handler for get_eligible_blade_assignees handles
        that.  Also removed is_in_play check from 
        activated_ability::can_use().  This allows pieces 
        w/ the Reserves requirement for a blade ability to work.
      * Fixed issue w/ Stained-Glass Angel not being eligible
        for assigning blades during combat when in the reserves.
      * Added hyphen to Stained-Glass Angel's name.
      * Constrained and Defender now are replacements instead
        of modifiers.
      * New custom Baleful Banshee (Twilight).
      * Fixed Backalley Skuntch's desc from Dampen to Dampen 1.
      * Updated modify_creature_spawn_cost to be more generic
        modify_spawn_cost w/ conditions.
      * New condition zone_is_current_combat_cell.
      * New custom Guardian Angel (Twilight).
      * New hook get_eligible_shield_assignees.
      * Rolled Manifest into spawn_no_cost_combat_assignee.
      * Removed some iterating from hooks where the type of hook
        wasn't relevant (i.e. modifying a value when it would just be
        default || replacement).
      * special_attack_single_triggered now takes a list of trigger
        conditions.  Needed for Passionborn Assault.
      * move_single_triggered now takes a list of trigger
        conditions.  Needed for Valorborn Advance Self.
      * New condition trigger_owning_piece_in_play.
      * Fixed issue w/ X spawn abilities not having a controller
        set and calling has_x w/ AI_OPTIMATION block.
      * Rolled Shimmering Watchtower's ability, Hell's Fury,
        and Halo <activated ability> into grant_activated_ability.
      * Removed gain_activated_ability.
      * New ability grant_activated_ability.
      * Added has_ability and can_use checks to grant_static_ability.
        Also added flag to prevent infinite recursion when checking
        has_ability.
      * Migrated Purge and Reverse Purge to move_single ability.
      * Added optional parameter to move_single ability, 
        opponent_controls.  Used by Reverse Purge, etc.
      * Made grant_lineage_local_allies the generic grant_lineage
        w/ conditions.
      * Changed Warpstrike X to a more generic special_attack_x.
      * Rolled Respawn and Animate Dead into a generic spawn_no_cost
        ability.
      * Moved some of the core functionality of triggered abilities
        into the base class.  Also made is_cip a function that
        walks the conditions looking for a match.

03/06/10 - 1.0.31

      * Fixed issue w/ zone lists/maps not being cleared
        before starting a new game.  This appeared as
        pieces disappearing in the wx version.
      * Fixed issue w/ check for can_zone_be_entered
        and the stacking limit being applied to non-cells
        like the graveyard and reserves.
      * Fixed effect_modify_spawn_cost_piece_type, wasn't
        initializing the spawn_cost amount, so abilities
        like Clone X were not working.
      * Fixed Shapechange ability to only do it for creatures
        and in non-local cells (was just doing local cell).
        Also correctly sets notify for post sacrifice handling.
      * wx version now correctly subscribes for entering
        cell msgs to update screen (i.e. Vortex which does
        a simultaneous move of all).
      * Tattooed Squashbug was incorrectly marked as being
        aspect Fear, should be Madness.
      * Warband names are now checked case insensitive so
        that 'of' will match 'Of', etc.
      * Fixed Stray Warpstrike's controller for action to
        select target.  Should be opponent.
      * Made Cleanse a generic move_single ability.
      * Added is ally check to Knight of Dusk and Dawn's
        Advance Janus 2 ability.
      * Added can_use_ai handler for move_single.  Should
        keep the AI from activating stuff like Slip when 
        it won't benefit from it.
      * Bloodcut Champion's Passionborn Assault and Valorborn
        Advance Self now only trigger on creatures, were also 
        triggering on locations.
      * Bloodtusk Throne's ability checks the 'intervening if'
        clause as a part of the check for triggering and also
        on resolution.
      * Dense Harvest doesn't bother w/ an effect if the number
        of local allies is 0.
      * Tweaked the eval function a little bit to encourage striking
        at lower depths.
      * Put special logic in exchange_pieces_activated::can_use_ai
        for Twin ability to keep AI player from just doing it
        forever.
      * phase_action was missing call to hook for
        can_choose_shift_for_action.
      * Fixed Provoke ability.  Was doing its effect
        for both action phases and wasn't subscribing
        to end of turn to remove hook.
      * Banishing and sacrificing a piece now correctly
        clear things as a part of leaving play (dmg, ability
        usage, etc).  Moved the cleanup to move handler which
        is executed for all pieces' moves.  However,
        this has brought up other issues like the AI doing
        Twin of <X> infintely when both Twins are in its warband.
      * ncurses UI now matches up w/ event handlers from wx UI.
      * Added can_use_ai handler for exchange_pieces.  Should
        keep the AI from activating stuff like Twin of <>
        when it won't benefit from it.
      * Optimized damage assignment choices for AI player(s).
        Speeds things up quite a bit.
      * Cleaned up the shift action.  Had some stuff that
        was no longer used.
      * Made the max_phase_depth dynamic so that during
        a spawn phase an AI player will not skip spawning
        altogether to be able to shift into a higher scoring
        board position within max_tree_depth # of moves.
      * Added can_use_ai handler for special_attack_single.
      * Enabled writing out actions taken by players to
        help in debugging issues with the AI.
      * Updated move_single_triggered ability's desc_long
        to new method.
      * Fixed Assist Drive, Intercept Drive, Pursuit Drive,
        and Geography Drive.
      * New condition zone_is_closer_to_match_piece.
      * Venom now clears when piece leaves play.
      * Fixed Regenerate ability.  Was set as a post replacement
        so default impl for destruction was still running which
        awarded bonus conquest/spawn.
      * Removed Bloodcut from ability description for Mask Dancer's
        Attract ability.
      * Fixed name and util_name in XML def for Sightless Eunuch 
        (was Eunich).
      * Lots of changes to handle the OS X bundle (Dreamblade.app)
        correctly.  It follows none of the standard things you'd expect
        as far as argv, pwd, and other things, ugh.  Seems to only work
        currently on 10.6 (Snow Leopard).

02/21/10 - 1.0.30

      * Venom, Deathblast, Demolish, Smash, Supersmash, and Petrify
        now check if a piece can be destroyed before doing it.
        Also check for legality to destroy when no cells available
        resulting in possible destruction.
      * Fixed Venom not clearing @ the end of a phase.
      * Small optimization w/ exchange_pieces.  Exchanging
        piece A with B is the same as B with A.
      * Fixed stacking limit issue w/ exchange_pieces abilities.
        When controllers do not match, enforce it, if not ignore
        it.
      * Added support for custom trigger id & condition
        for exchange_pieces_triggered, so now Swap Drive
        works.
      * Fixed move_single.  Was only iterating all cells
        but should have been all zones.
      * UI now subscribes for strike starting info event.
      * Cleaned up event msg for rerolling attack dice
        (die/dice).
      * Added display desc for 
        more_pieces_in_reserves_than_opponent.
      * Enabled "overkilling" w/ damage when the AI is not
        thinking.  This allows a player to both choose who
        to overkill (if so desired) and allows for things
        like the "may" portion of Trample.  This is more 
        intuitive (and mimics how people play in real life)
        than first assigning 0 to get this behavior.
      * Fixed issue w/ Trample showing owning piece's zone
        as choices, not adjacent zones.  Also fixed handling
        of damage assignment legaility, only hook pieces in
        the target cell, enable hook for eligible
        damage assignees, and change vector arg to reference.
      * All zone conditions take a reference player now.
      * Fixed issue w/ Illuminati Pyramind and the condition
        zone_is_scoring_cell.
      * Rolled (no pun intended) Fortunate, Flux Fortunate,
        Curse, Flux Curse, and Madhouse into a single
        reroll_attack_dice ability.
      * New class type, calculation.  Used for a one shot
        calculation of some kind.  Currently used for calculating
        the number dice to reroll in abilities.
      * Some optimizations in some of the more expensive
        functions.
      * Fixed logic issues w/ piece_spawn_cost_le_than and
        and piece_spawn_cost_ge_than.
      * Fixed Cannis Horribilis' Deathform 5, was set to 4.
      * Fixed operator precendence issue w/ checking damage
        outside of combat.
      * special_attack now sends out a declared_attackers event
        which fixed Cursed Faerie's Fade not triggering after
        a Spur.
      * Fixed Spur's attack cell.  The attack is done by the
        piece w/ Spur, not the chosen ally.
      * Changed Fade and action_attack to handle special case
        of an attack starting w/ 0 power but never gets "bumped"
        by other abilities (i.e. Darkheart Cottage).  Per the
        FAQ under these circumstances an attack did not happen
        and Fade doesn't trigger.
      * Fade now works correctly when owner does an attack in
        combat, but wasn't part of the original strike.
      * Made Blight a generic lose_abilities ability.
      * Added more flexibity to static version of Ambition via
        conditions.
      * Rolled Follower X and Loner into check_legal_attacker.
      * Changed Last Gasp and Beasts' Fury to be a generic
        deathblow_during_any_action_phase.
      * Removed Charge 5 triggered ability from Blademiller.
      * Merged Duplicate and Triplicate into a single generic ability which
        can also handle any # of pieces not counting.
      * Made Warfang Keep's ability generic, modify_conquest_for_destroyed.
      * Fixed Warfang Keep's ability.  When destroying a piece
        check for conquest/spawn generated before moving
        piece to graveyard.
      * Made modify_power a more generic modify_attribute.
        Changed Bolster, Skull Hill's ability, and more
        to use this.
      * Rolled Nullify, Web Breath, and Demoralize into one
        generic ability cant_activate_ability.
      * Changed Assault (both activated and triggered) to use
        the generic special_attack_single.
      * Changed Illuminati Pyramid's ability to be a generic
        modify_zone_conquest ability.
      * New condition zone_is_scoring_cell.
      * Fixed Turbo ability's long str.
      * New conditions zone_is_not_occupied_by and piece_is_x_cells_away.
      * Made Reinforce and Arch of Triumph's ability a more
        generic modify_spawnable_cells ability.
      * Modify defense effect now shows the amount being
        added/subtracted from piece's defense.
      * Trimmed pass action's text (removed 'effect').
      * Made Warpstrike more generic special_attack_single w/
        conditions.
      * Made Immortals' Resting Place's ability more generic.
      * Fixed Expel ability, was behaving like Scare.
      * Added Intercept Drive to Aggrocopter (Witching Hour).
      * New conditions piece_life_lowest.
      * New custom Screaming Satellite (Witching Hour).
      * New conditions zone_is_forward and zone_is_backward.
      * Replaced Pursuit Drive and Assist Drive w/ move_single_triggered.
      * New conditions piece_spawn_cost_lowest and piece_spawn_cost_highest.
      * New variation of Vortex, Reverse Vortex which goes
        counter-clockwise.
      * New condition zone_is_targets_reserves.
      * New condition trigger_piece_changed_zones.
      * Fixed Manic Miner's Mine ability, was set to be a static
        ability in the XML definition.
      * Energize, Battle Energize, Vault, Mine, Heartsblood Temple, etc now use
        the generic add_spawn_points_activated and add_spawn_points_triggered
        abilities.
      * Moved Payback to be add_to_combat_damage_x_target.
      * New condition control_more_local_creatures.
      * Fixed id of condition control_fewer_local_creatures.
      * New condition control_fewer_creatures.
      * Moved Stalwart, Pack, and Heroics to use add_to_combat_damage_x.
      * Removed Assisted Strike, Duel, <lineage> Crit, and Flanking and 
        now use generic add_to_combat_damage w/ ability pre-condition.
      * New condition match_pieces.
      * Made Crit X, Fumble X, etc a generic add_to_combat_damage
        class.  Also updated Flummox to use this.
      * Commonalized the handling of hash_str for both UIs.
      * Added support for changing the ai tree and phase depths from
        the wx config dialog (it also can be done on the command line).
      * Fixed Mindthief.  Was having owner continuously move all pieces
        from their reserves after opponent moved one.  Also owning player
        can do their move even if opponent has nothing to move.
      * Reversed UI display str for ncurses using lowercase for gold
        player (usually the human).
      * Use black font for multi-aspect base in wx UI.
      * Fixed Mindstrike was targetting owning piece's reserves.
      * Fixed Awaken, Double Stakes to always put the removed from 
        game creature to owning player's graveyard, not controller.
      * Fixed an issue w/ Rewind in the event that Chronosphere is destroyed
        before it's triggered ability can be resolved (via a Splat).  Now
        check for being in play on resolution.
      * Fixed a potential issue with a destroyed or sacrificed piece 
        not controlled by its owner going to the wrong graveyard.
      * More optimizations with getting a player's graveyard/oop/reserves
        and the pieces in them.
      * Small optimizations in checking for spawnable pieces.
        (Only checking can_spawn once for each piece, and sorting
        by inverse spawn cost).

01/20/10 - 1.0.29

      * OS X release only (unannounced).
      * Lots of changes to get Mac OS X wx GUI build working.
      * Added missing check for targetting in Isolationist's Expel
        definition.

01/08/10 - 1.0.28

      * Removed the need for duplicate vars for base UI/game stuff
        now that a common startup routine is used for both console
        and GUI.
      * Removed 'Unique Dream Lord' from bottom stats.  Dream Lord
        is a keyword ability which implies that, but doesn't need
        to be shown.
      * Cleaned up which messages get shown as a result of an event
        coming in.  No need to show move events when shifting/spawning.
      * Fixed logic bug when calculating dynamic font size which
        caused Windows GUI version to hang when certain pieces
        were used.
      * Fixed Tower of Unquenched Flame's util_name.
      * Doctor Shocksalot's ability is called Chain Warpstrike X, not
        Insane Chain Warpstrike X.    :)
      * Fixed a crash that happened under certain circumstances when
        starting up the wx version (unit'ed ptrs).
      * Fixed spelling error w/ Chrysotic Plaugue def which was keeping
        images for that set from loading.
      * Made Halo (static ability) and Eternity a generic 
        grant_static_ability.
      * New condition trigger_turn_ended.
      * Made Unmake, Fade Ally, etc a generic banish_single ability.
      * Fixed issue when both players have a Falling Man and the attack
        from one kills the other leaving Splat with nothing to sacrifice.
      * Fixed the corner case of a creature being targetted by Ferocity
        twice during the same combat and having an active Phantom ability
        causing the piece to be disrupted twice.
      * Instead of bailing out when 0 dice are to be rolled for an attack
        just skip the roll part.  There is a possibility that with the 
        Dicestrike etc abilities there will be no dice rolled but damage 
        blades to assign.  Shields correctly do not trigger on this damage
        compared to 0 dice rolled, only *rolled* damage is considered.
      * Fixed Dicestrike so that it cannot allow rolling X fewer dice
        if there are lass than X being rolled for the attack (per the
        FAQ).
      * Fixed issue for abilities that key off of calculating attack
        dice and the attack ends up being 0 dice.
      * Fixed crash when not showing UI (debug option) and having
        a human player.
      * Fixed Reckless Hunger.  Wasn't resolving correctly after
        triggering it's first part which was being declared an
        attacker.
      * New custom Demented Stepmother (Twilight).
      * Changed Geomancy, Frightomancy, etc to a more generic power_defense_life_x 
        static ability.
      * New condition piece_in_same_column.
      * Changed Thantomancy, Darkheart, etc to a more generic power_x
        static ability.
      * New condition piece_is_not_ability_owner.
      * Fixed pieces that used Fight now used updated <ability_conditions>
        for stuff like {P}.
      * Fixed Virtuous Maiden.  Was applying Enrage to everyone.
      * Fixed event_entity's dbg print in event_send.
      * Changed Fight, Weaken, Incite, Enrage, etc to a more generic modify_power 
        static ability.
      * New condition trigger_phase_exited.
      * Migrated Raze to generic move.
      * Fixed Wreckless Wrecker's XML def.  Was putting Raze
        in static ability block.
      * Migrated Bloodport ability to generic move.
      * New condition zone_is_occupied_by.
      * Migrated Pearlthorn Castle's ability to generic move.
      * New condition zone_is_ability_piece_current_zone.
      * Migrated all Teleport abilities to generic move.
      * New conditions zone_is_non_portal, zone_is_in_dreamscape.
      * Migrated Unknow ability to generic move.
      * Moved Baba Yaga's Hut's spawn ability into the generic move_single
        ability.
      * Fixed Annihilate X to put piece in owner's OOP, not controller's (which
        could be different).
      * Moved Annihilate X into the generic move_single ability using the new
        conditions.
      * New conditions piece_life_is_le_than, zone_is_targets_oop.
      * Moved Longstride into the generic move_single_triggered ability 
        using the new conditions.
      * New condition trigger_shift_phase_entered_controller.
      * Moved Bogillian's Slip into the generic move_single ability using the new
        conditions.
      * New conditions piece_at_end_of_row and zone_is_other_end_of_row.
      * Changed Copy Enemies to handle recursion without checking
        explicitly for pieces named Ego Cannibal.  Also now utilize
        is_copied flag of ability so that other pieces that might
        have copied abilities (so copied abilities are not copied).
      * Added handlers for abilities resolving both with pass and with
        actions taken (with or without targets).
      * New flag for event_ability_resolved, passed_on_may.
      * More infrastructure to support all abilities to broadcast when
        they have resolved.
      * Updated conditon trigger_blade_ability_activated to setup delayed
        trigger on ability that caused the trigger resolving.
      * Moved state var up into action class since so many abilities/actions 
        use it.
      * Removed pass_num from action_handle_damage_outside_of_combat.
      * Added new modifiable flag to does_ability_trigger, resolve_now.
        Used mostly for abilities that *trigger* on a blade ability
        being successfully activated, but not resolving until the ability
        that was activated has resolved (i.e. Fear-Edged Advance).
      * Fixed Oneironaut Secundus's Swap Janus, was ASPECT_JANUS.
        Janus is a lineage.
      * Fixed get_conditions_xml, was only iterating once, needed
        to be a while loop.
      * Changed choose_zone_as_target's text to Target [zone].
      * Removed Passionborn Assault from Scarred Harbinger.
      * Fixed Enrage's desc to show amount.
      * Fixed reactivate static ability's desc.
      * Added flag to effect_disrupt_to_occupied_cells for allowing only occupied
        cells only (replacement -vs- modifier).
      * New condition trigger_spawn_phase_entered_controller.
      * Adding condition handler for move_single_triggered and 
        move_multiple_triggered allowing for generic trigger handling.
      * Added table for mapping event_id strings to event ids.
      * Fixed Skyshield Eagle, Totem Lord, and 'Fraidy Cat's expiration id, 
        were set to combat starting, not combat ending.
      * New conditions piece_spawn_cost_le_than, piece_spawn_cost_ge_than,
        and piece_name_equals.
      * Updated Splat to do one attack at a time and re-evaluate who is 
        local/adjacent.
      * Implemented Probability Walker, for some reason it was a copy
        of Drakesnail.
      * Consolidated all exchange type abilities into one ability w/
        conditions, i.e. Transpose, Swap, Mutation, Deathform.
      * Added new method is_unengaged.  Now that there are conditions
        is_engaged checks for in play and is_creature so !is_engaged
        no longer works.
      * Consolidated all Wound type abilities into one ability w/ conditions.
      * Combined Purge and Reverse Purge into one class w/ a flag.
      * New conditions piece_in_reserves, piece_in_graveyard,
        zone_is_ability_owners_graveyard,
        piece_controller_is_ability_piece_controller,
        piece_controller_is_ability_piece_opponent.
      * Changed condition strs from a vector to a map.
      * Added handling of non-cell zones in is_cell_closer and
        is_cell_further_away now that conditions are being used.
      * New conditions piece_is_ability_owner, piece_is_enemy.
      * Consolidated all abilities involving moving a single piece.
        This was a big change but means a lot less code to maintain.
        Advance, Skirmish, Expel, Lure, Scare, Attract, Tempt, etc
        all fall into this category.
      * New custom Eternal Beacon (Twilight).
      * Fixed Sir Wolven's aspect cost.  Was set to madness and should be valor.
      * Consolidated Advance All, Skirmish All Local, Terrify, and Attract All (i.e.
        Beckon) into a generic Move All w/ conditions for target and dest cell.
        Also added triggered version.
      * Removed _generated_actions param from all resolve_ability implementations.
        Only 2 abilities were using it, and they have now been changed to
        re-evaluate after every action.
      * Updated Deathblast ability to be more correct rules-wise.  A snapshot
        of enemies local to the piece w/ Deathblast is taken when triggered
        and removed check for targetting since the ability does not mention
        target for the attack, just the location.  It also re-evaluates after
        every attack.
      * New conditions for zone being adjacent to target, zone being closer,
        and zone being further away.
      * Changed effect_banish_piece to be an action.
      * effect_sacrifice_piece checks for piece to be in play before doing
        sacrifice.  Since it is a delayed trigger, piece may have left play.
      * Changed Wail ability to be re-executed after each creature is banished
        rather than having all actions created at once.  There may be
        circumstances where a piece may leave play due to another piece
        being banished.  Re-evaluating after every Banish eliminates this
        corner case.
      * Added check for conquest points going below zero in hook
        and setting to 0.  Might be used with an ability in the future
        that lowers conquest points for scoring cells.
      * New effect remove_piece_from_game_on_trigger.
      * New custom Dragon Sage (Twilight).
      * Changed Dicestrike ability to also take long description.
      * New custom Archdevil (Twilight).
      * New custom Spirit Guide (Twilight).
      * New custom Rainforest Zealot (Twilight).
      * New ability Berzerk Crit X (Twilight).
      * New custom Unnerving Apparition (Twilight).
      * New custom Dreadful Druid (Twilight).
      * New ability Flux Curse (Twilight).
      * New custom Jeeves (Twilight).
      * New piece conditions piece_is_local_or_adjacent, piece_is_local.
      * Changed Warpstrike X to take a list of conditions rather
        than having all the flags + 1 condition for calculating attack
        power.
      * New piece condition piece_is_unengaged_creature.
      * New custom Slaughter Gauntlets (Twilight).
      * New custom Radiant Warcharm (Twilight).
      * New custom Fiery Muse (Twilight).
      * New custom Squamous Horror (Twilight).
      * New custom Pentacles (Twilight).
      * New custom Zungar Courier (Twilight).
      * New custom Runetagged Master (Twilight).
      * New custom Grizzled Veteran (Twilight).
      * New custom Four Horns (Twilight).
      * New custom Adept Envoy (Twilight).
      * New activated ability, Ambition (activated version of static one) (Twilight).
      * New effect, gain_conquest_if_claimed.  Used for activated Ambition.
      * Cleaned up triggered Skirmish's desc.
      * Added set to piece info displayed via -P.
      * New activated ability, Unearth.
        Unearth - You may put target creature from your graveyard into this cell.  
        If you do, at the end of the turn remove it from the game.
      * New effect sacrifice_piece_on_trigger.  Moved effect_sacrifice_piece
        to be an action and removed action_sacrifice_unique_piece, now that
        just uses action_sacrifice_piece which takes a context str.

11/30/09 - 1.0.27

      * New activated ability Expendable.
        Expendable X - You may sacrifice this creature. 
        If you do, deal +X damage this combat.
      * New custom Recalcitrant Roach (bageljester).
      * New custom Brighthammer Lancer (bageljester).
      * Added new page to config dialog.  You can now change
        the background, top, and bottom images via this dialog.
      * New command line flag -U.  This disables showing
        of piece images (even if present).
      * Both ncurses and wx applications use the common main()
        rather than having 2 separate handlers of args.  This
        also means you can use all the arguments available
        with the ncurses version (that are applicable).
      * Broke out game settings dialog into a tabbed interface and
        added a tab for UI settings.
      * wx UI now registers for EVENT_ID_CONQUEST_TIE event.
      * Put back in sorting by name for reserves but then doing the
        sort by spawn cost.  This means pieces of the same name will
        be adjacent and pieces will go from lowest to highest spawn cost.
      * Added support for loading images for pieces.  See doc/README.wx
        for more details.  Also added skeleton directory structure.
      * Tweaked the center black rect drawn inside the piece base
        to fit without showing on the corners.
      * Added support for universal binaries when building on OS X.
        This allows the program to be run on older PowerPC Macs.
        Now if I just had a Mac to build on...
      * Pieces in reserves area are now sorted by spawn cost.  That
        seems to be how most players (including myself) sort them.
      * New sorting predicate for pieces.  Sorts on spawn cost
        and if == sorts on aspect cost.

11/23/09 - 1.0.26

      * First release w/ GUI using wxWidgets for all platforms.
        See doc/README.wx for more info.  Info about ncurses version
        is now in doc/README.ncurses.
      * Fixed the confirm quit current game, wxNO -> wxID_NO.
      * Fixed the focus issues w/ dialogs on Windows as well as the repainting
        by re-doing all of the paint handlers.  Also got rid of the flickering
        on all platforms when getting events.
      * Don't bother entering next phase when exiting previous if game is over.
      * Added a new post move info event for the UI so it can get the latest
        positions of minis after a move.
      * Reduced font size in listboxes for non-Windows platforms.  Default
        is way too big.
      * Added wxLB_HSCROLL to action and msg listboxes on Windows platform
        so you can scroll horizontally when the text is wider than the control.
      * Changed order of move events such that triggered
        events that are triggered by the move show up *after* the move.
        It was confusing seeing ability activated, Ambush triggered,
        piece moved.
      * Fixed up a bunch of compiiler warnings that showed up when
        using MSVC.
      * Fixed Bolster's desc when using a target condition.
      * Fixed Whisper Gambit 6 ability, was doing < rather than <= than.
        6 or less, not less than 6.
      * Fixed Gloom ability, was not checking for creatures.
      * First pass at GUI is done.  Playable, but not the prettiest.
        Future work will involve making it better looking.
      * Shortened spawn action string.  No need to include
        the word 'cell'.
      * Shortened length of shift action string.  No need to include
        cell piece is in.
      * Changed order of actual move and event sending for a shift.
        Event happens after move.
      * Lots of GUI work done, too much to individually mention.
      * New class for cached game state.  Needed for threaded
        GUI app.
      * Removed wxIMAGE_QUALITY_HIGH from wxBitmap constructor.
        Was causing images on Linux to not show up.
      * Fixed modality of game settings dialog.
      * Fixed race condition between game engine event handler
        and wx GUI event handler.
      * Revamped entire WX based GUI layout.  No more pop-up
        actions dialog.
      * Changed {} to () for spawn point costs.
      * All pieces w/ Reinforce now specify description.
      * Fixed Manifest's description.

11/11/09 - 1.0.25

      * Added support for creating Zungar Citadel's ability from XML.
      * Removed code for piece factory now that all pieces are in XML
        format.
      * Enabled Zungar Marauder's Charge 3.  Was commented out (probably
        for testing).
      * Fixed Queen Raven's combined ability description.
      * Converted all Serrated Dawn pieces to XML.
      * Updated combat sequence in action_regular_attack and
        handle_damage_outside_of_combat.  They can now
        correctly handle the corner case of more than 2 passes 
        to resolve deathblows which can happen when a creature 
        can make deathblows in phases other than the normal ones.  
        i.e. Bloodcut Behemoth.  
      * Added Mighty Warpstrike to abilities that can be copied/created from xml.
      * Fixed Totem Lord's set, was set to Serrated Dawn.
      * Converted all Night Fusion pieces to XML.
      * New ability Legend ~
        Legend ~ - You may only have 1 miniature with the name ~ in your warband.
      * New custom See Saw.  Uses Equistrike.
      * New ability Equistrike.
        Equistrike X - Whenever this creature is chosen as an attacker, 
        if both players control the same number of creatures in this cell,
        its power that combat is +X.
      * Changed Mimic to use new effect effect_set_power.
      * New effect effect_set_power.  Mimic is a replacment effect w/ duration
        and it was using the effect_modify_power which worked because its
        starting power was 0 but was not correct.
      * Separated out the warband contribution hook into two, one for
        per mini count, one for warband total.
      * Converted all Anvilborn pieces to XML.
      * Updated Etherdance to check for still being in play before
        resolving ability after triggering.
      * Removed notion of pass number in action_regular_attack.  Due
        to some pieces having the ability to make a deathblow in any
        phase, there could be more than 2 passes.
      * Fixed Bolster, was also applying to enemies.
      * Fixed Tragicomic Gunslinger's Insane Warpstrike ability.
        Was using warpstrike_lineage and Janus.
      * Fixed Conquest Synergy via xml was using Swarm Synergy ability.
      * Fixed Rage of One.  Now only triggers for allies who attack alone.
        Was also triggering for enemies.
      * Fixed all versions of Reinforce.  Had some inverse logic checking
        for the cell already being in the list of available spawn cells.
      * Added modifier_post support to hooks for getting activated, triggered,
        and static abilities.
      * Changed Blight and Blight Local to have locations lose their abilities
        rather than not allow their use.  No difference as far as play but
        abilities under the effect of Blight will no longer show up on
        the extended view for a piece.  Also if a custom ability is created
        that gains abilities from a location that would also work.
        This also ensures that Blight's interaction w/ Soulwash Temple 
        (as stated in the FAQ) works as expected.
      * Fixed effect move_creature_between_zones_if_target_destroyed, was
        passing an effect cast as the owning_ability.
      * Consolidated all other abilities that were specialized
        based on aspect/lineage.
      * Consolidated Blight, Expel, Scare, Tempt, and Bolster.
      * Consolidated Appease, Attract, and Mighty Assault using piece conditions.
      * Consolidated Reinforce X and Nullify X using piece conditions.
      * Consolidated Weaken X Y and Pack X using piece conditions.
      * Consolidated all versions of Enrage using piece conditions.
      * Consolidated all versions of Raise using piece conditions.
      * Rolled warpstrike_aspect and warpstrike_lineage into one
        class using piece conditions.
      * Consolidated all versions of Advance, Advance #, and Skirmish 
        by using piece conditions.
      * Made Incite <aspect/lineage> more generic by having it take
        a piece condition.  Updated Double Talker to use a condition
        of type CONDITION_TYPE_PIECE_IS_OF_LINEAGE_HELLBRED.
      * A bunch of new conditions CONDITION_TYPE_PIECE_IS_OF_ASPECT_X
        and CONDITION_TYPE_PIECE_IS_OF_LINEAGE_X.
      * Fixed a few small typos w/ the bin/calculate_ability_cost.py script.

11/03/09 - 1.0.24

      * Ctrl-C now works on Windows.
      * Removed the need for batch file on Windows by programatically resizing
        the console window to the correct number of columns/rows.
      * Fixed UI resetting display of both initiative values when a reroll
        happens.  There are now cases where only one player rerolls (tournament
        initiative rule enabled and one on first turn)
      * Removed 'supported_pieces' target from makefile.  No longer needed.
      * Added new script to calculate the cost of a piece's abilities.
        Useful for creating customs.  Uses the determined algorithm
        for calculating a piece's base spawn cost using power/defense/life.
        On windows it is in the same directory as the program, on UNIX
        platforms it is under the 'bin' directory.
      * Fixed Flame Harrower's XML def. Ability cost and Assault amount 
        were wrong.
      * Cleaned up some pieces' flavor text.
      * Cleaned up a a lot of abilities' long description.
      * New utility functions to dump all supported miniatures stats.
        Specifying -P prints out the equivalent of the bottom sticker
        for every supported piece.
      * Added list of aspect cost strs for stuff like Beacon <Valor>.
      * Fixed spelling of Tower of Unquenched Flame's ability id.
      * Fixed Bloodlust ability, was using Advance's ability id.
      * Added Janus lineage to Thrice-Crowned Androgyne.
      * Fixed Lord Slobber's set, was set to SET_CORE.
      * Converted all Chrysotic Plague's pieces to XML.
      * Removed <amount> tags from Ferocity in Boneblade Servant.
      * 2 new types of conditions.  Local ally lineage and local enemy lineage.
        Updated Double Talker to use this.  Displayed as {Hv} and {xHv}.
      * Updated AI hint code for spawning locations to use new condition
        type id rather than checking description for being a scoring cell.
      * Added 3 new condition classes for checking controller of a spawned
        piece against the controller of the ability hooking it.
      * Made Dampen a more generic ability so I can have it apply to
        both players or just one or the other.  This will allow for
        stuff like 'Leech X: Your creatures cost X more to spawn'.
        I plan on doing this with a lot of the abilities which are similar
        except for a very small condition like applying to an aspect/lineage
        etc, will reduce the code base significantly and allow more customization.
      * Added type field for all conditions.
      * Fixed bug w/ spawn_point_lineage_creature_only.  Wasn't checking
        for creature, just lineage.
      * Fixed bug w/ Dampen, was adding spawn point amount to ptr not contents
        of it.
      * Fixed a crash with Ferocity's effect interacting with the Phantom 
        ability.  Can't remove a replacement while iterating them.  Instead
        of removing in the hook I now use a flag like I do in Chameleon 
        to prevent infinite recursion when disrupting inside of a hook (which is
        what happens when Ghost of the Key affects a piece who
        had Ferocity assigned to it.)
      * Fixed random_warband.py script on Windows w/ no arguments.

10/25/09 - 1.0.23

      * Haste Gambit now unsubscribes for events when ability has resolved.
        Was crashing w/ multiple subscriptions.
      * My utility file random_warband.py is now included with the program.
        On windows it is in the same directory as the program, on UNIX
        platforms it is under the 'bin' directory.
      * Added a new flag -p.  This will print out the names of all supported
        pieces.  Will be used by the random warband generator and also for
        verifying spelling of pieces specified in warbands.
      * New utility function all_piece_names, returns a vector of strings
        with all compiled in and XML defined piece names.
      * Updated initiative code to handle either a single player re-rolling
        (for 1s) or both (for ties).  Previously both players rerolled for
        any of those conditions.
      * New tweakable in rules.conf, tournament_initiative, this follows the tournament
        initiative rules per the Dreamblade DCI Floor Rules.  See doc/README.
        Default is 'false', to enable it set it to 'true'.
      * Modified piece not found error text to suggest checking spelling
        of piece name.
      * Fixed spelling errors for piece names in some of the sample
        provided warbands.
      * Added a has_x handler for Flicker to speed up AI.
      * Updated Flicker to use action_activate_cip_ability correctly.
        It passes it's controller as the controller and the selected
        ability's owner as the ability controller.
      * Finished implementing action_activate_cip_ability (for Flicker).
      * Fixed Corpsebuilt's on_triggered handler to match the prototype.
      * Fixed a crash with encumbered spawn points (Energize Bloodcut).
      * Beasts' Fury now checks for an action phase for allowing deathblows (as
        Last Gasp does).

10/21/09 - 1.0.22

      * Fixed a ptr shadowing issue w/ effects in Nightstrike.
      * New custom Mr. Fixit (Witching Hour).
      * New ability Blackmail (Witching Hour).
      * Updated action_activate_ability to take an ability controller as an
        argument.  Updated Wish, Deathrip, Edgemaker, regular attacks, and the
        spawn phase code to use this new parameter.
      * Added blade_assign_player and blade_ability_player to regular attacks as
        well as methods to change them.
        Will be used for Blackmail and other abilities that may allow the opponent
        to control blade assignment and/or blade ability resolution.
      * Fixed the Rewind only triggering once issue.  Was subscribing with the
        wrong callback for turn end events.
      * New action for rerolling initiative.  Gets rid of the call back into the
        phases hack after resetting initiatives to invalid and the do/while loop
        for handling actions.
      * Very BIG change.  Revamped action (and derived effect/ability) controller 
        to distinguish between controller and beneficiary.  This will allow anyone 
        to control them (i.e. for the Blackmail ability in Witching Hour).
        Pretty much every class had to be changed for this so I may have broken
        something.  Having the correct player associated with all actions will
        also allow the AI to better score the game after making moves.
      * Fixed encumbered spawn points effect.  Was always granting to gold
        player.
      * Fixed controller of 'may' for deathblows outside of combat.
      * action::controller and now goes through undo engine.
      * controller of an ability is now set when either activated or triggered.
        This is needed in the event of very uncommon corner case of a piece being
        under an opponent's control and gaining abilities.
        static abilities are always the piece's controller.
      * Fixed id of Vortex ability, was using Swap's id.
      * Changed blade type for Unsated Ragedrake's Trample ability to be
        of type BLADE_COMBAT.
      * Cleaned up Trample ability.
      * Converted all Baxar's War pieces to XML.
      * Added Janus lineage to Honor Guard.
      * Added scoring cell condition to Baxar the Soulstitcher's Call ability.
      * Moved generate_dice_combinations to the dice module.
      * Insubordination abilities, Chaos Drive, and Frightwave initiative rolls 
        now go through engine.
      * Added check for unengaged for Longstride's trigger in addition to when
        it resolves.
      * Attack ptr is now passed in event for declared attackers.  Needed to tuck
        it away for new Relentless ability.
      * Fixed Bloody Glory, it grants the conquest points if the number or above
        is assigned for damage.  It was only allowing if over specified amount.
        Also now makes sure that damage came from an attack by the controller
        of Bloody Glory or from an ability who's controller is the same as 
        the controller of the piece w/ Bloody Glory.
      * Added piece assigned to and context parameters to event for assigning damage.
      * New ability Relentless.  This was in the rulebook, but never used.
        It is similar to Blind Fury.  "Whenever a creature with an active Relentless 
        ability attacks, enemy creatures damaged by the attack can't be disrupted."
      * New ability Invigorate X.  This was in the rulebook, but never used.
        "While allies are local or adjacent to a miniature with an active 
        Invigorate ability, they have +X life."
      * New ability Drain X.  This was in the rulebook but never used.  
        Gateway to Psychosis now uses a version this w/ a description override.
        "While enemies are in the same cell as a miniature with an active Drain ability, 
        they have -X life."
        I've made the generic Drain apply to all creatures and a Drain Enemies
        would do what the original intended Drain would have done.
      * If a piece being disrupted is not an enemy of the disrupting player
        their portal is now an available cell to disrupt to (i.e. Rally Lost).
        According to the rules you cannot disrupt an *enemy* creature to
        your portal.
      * Removed stacking limit check on creatures for player's portal.  
        The rules state you can spawn any # of your creatures in that cell.
      * Added new param to get_disrupt_cells hook.  The player doing the
        disrupting is now passed so Exile and Toss's effect now only applies 
        to the appropriate player.  This is needed for Rally Lost.
      * Fixed a crash w/ Rampage's effect move_creature_if_all_targets_destroyed
        in DEBUG mode.
      * Fixed handling of X spawn abilities with an active Boost ability.
        Now correctly activates with correct X cost (not the paid cost).
      * Pushed default 'no zero' has_x behavior up into base class.
        Only ability that really modifies the values right now is Mindlock.
      * Fixed base class of activate_x_cost_ability.
      * Fixed set id and rarity loading from XML.
      * Fixed Panic's long description.
      * Fixed Blood-Ash Infantry's flavor text and Panic value.
      * Fixed Mighty Stride, was calculating highest power for each cell
        instead of the entire dreamscape.  Also only iterate over the cells,
        not all zones.

10/13/09 - 1.0.21

      * Single actions are no longer executed out of the AI's loop.  It
        was causing the game to proceed sometimes a little ahead of the specified
        phase depth and skewing the evaluation function scoring.  AI now won't
        do really dumb moves like moving from B5 back to his portal.   :)
        May slow things down a wee bit but pruning should improve offsetting it.
        This significantly reduces the "horizon" effect of the AI.
      * Consolidated AI expectation behavior into ai_player class.
      * Added condition check for abilities that activate other abilities, i.e.
        Edgemaker, Wish, Deathrip.  Requirements for those abilities still must
        be met like scoring cell, local ally aspect, etc.  Got ruling from JeffV.
      * Fixed a bug w/ Stained Glass Angel's Manifest <aspect>.  It is a modifier
        not a replacement for eligible blade assignees.
      * Added info event for player choosing shift or strike for their action
        phase.
      * Added an AI optimization for spawning locations that require being
        in scoring cells as a condition to use their ability.
      * Mimic looks for other creatures w/ Mimic through hook.  No ability
        grants Mimic yet but this future proofs it.  Also fixed it so that
        pieces without triggered abilities could be targetted.
      * Added Advance <num> and Advance <lineage> <num>.  Not sure how I missed
        these.  Updated Moondark Knight and Knight of Dusk and Dawn, as well
        as the reactive abilities that trigger on Advance.
      * Fixed a nasty crash, w/ Shimmering Watchtower's ability.  Only happened
        when a piece was at the end of the list of all pieces.
      * Updated move and exchange effects to do nothing when the destination
        zones are the same.  So it does nothing, i.e. a Charge/Ambush etc will 
        not trigger.  Got ruling from JeffV.
      * Charge now only triggers if it enters an enemy occupied cell, not every
        time it enters a cell (which did nothing when empty).
      * Chameleon ability checks for being in play for static ability to
        apply.
      * Tweaked eval function for board position a wee bit.
      * Revamped all of the XML loading.  Hopefully I didn't break anything.
      * Fixed handling of initial placement zone specifications in warband
        files.  Now correctly handles multiple pieces of the same name in
        different starting zones.
      * Made scoring cell and # of conquest points configurable for each
        cell.  Tweakable in rules.conf.
      * Converted the remaining pieces in the core set to XML <whew>.
      * Fixed crash w/ activated_static_ability when expire id is hit but was
        never activated.
      * Fade is now a triggered ability as it should be.

09/30/09 - 1.0.20

      * Changed actions dialog to be modeless so that pieces can
        be viewed in large form while deciding up on action to take.
      * Fixed shadowing of ability pointer when creating certain
        abilities from XML.
      * New custom Miss Discipline (Witching Hour).
      * Added new ability gain_activated_ability_cip.  This will be used for Miss
        Discipline's {CiP} Scare X ability.  I've modified her ability somewhat
        to make it work within the engine but still behave (I believe) the same.
        As originally written it is a combined triggered and activated ability.
        With my changes it is a {CiP} ability that grants Scare X until the end of
        the phase which should accomplish the same thing until there is an ability
        that lets spawn abilities be used more than once in a phase.  It will
        also make working w/ Flicker more straightforward.
      * Added support for X spawn activation cost for ability Scare <multiple>.
        Will be used by Miss Discipline.
      * Added missing text descriptions for newer state change classes.
      * Changed the venom mechanic to not use statics for keeping track 
        of assigned venom.
      * Changed Fluctuate to not use statics for keeping track of scoring 
        cell amounts.  Also changed it to only track cells, not all zones.
      * Changed Double Stakes to not use statics for keeping track of 
        non-cummulative effect.
      * Changed Bloodletting to not use statics for keeping track of 
        destroyed pieces etc.
      * Modified custom_counter map to be the more generic <string, <int,int>>
      * New file sdl_gui.cpp.  At some point this will be the
        "eye candy" GUI version of the game.
      * Made Twin of <name> ability's ai activation hint counter
        a class member in preperation for new threaded AI.
      * Added Charge to abilities that can be created via XML.
      * Converted Blind Spikemauler, Raging Tusker, Savage Ogre,
        Bloodthirsty Redcap, Blood Wolf, Boneblade Serpent,
        Boneclan Hunter, Book of Nothing, Brighthammer Avenger,
        Chrysalis Spinner, Darkheart Cottage, Doctor Ape,
        Doomball, Doomsinger, Dreadmorph Ogre, Dreamreef Marauder,
        and Dreamstuff Entity to XML.
      * Converted Axemorph Demon, Ardent Zungar, Asymlum Escapee
        and Barbstrider to XML.
      * New files for running the game in a separate thread.
      * New files for choosing action pop up dialog.
      * Updated makefile to support different extensions for intermediate
        files.  This lets me keep a Windows and Linux build in the same tree.
      * New directory 'res', also added a png of the dreamblade map.
      * New files for game settings dialog.
      * New files ui/wx_gui.c/h.  Graphical port to wxWidgets.  ncurses
        will also still be supported.
      * Updated makefile for wxWidgets targets on all 3 platforms.
      * Added -? flag for seeing usage since launching w/ no args gives
        default args.
      * Fixed Deathboon's sustained effect.
      * Fixed up calls to is_enemy/is_ally (which checks is_creature)
        ensuring before is_engaged.
      * Cleaned up default handler for can_strike_in_cell.
      * Changed Dicestrike and Reckless Hunger to not need simultateous
        resolution when first triggered (declared attacker) but does
        use simultaneous resolution when attack starts and dice have
        been totalled.
      * Fixed Bloodthirsty <lineage>.  Made check for any other
        local lineage.
      * Changed order of Reckless Hunger's options.  May always goes last.
      * Added Janus lineage to Jack-in-the-Box.
      * Changed Jack in the Box to the correct Jack-in-the-Box.
      * Revamped event sending for declared attackers.  Now just
        one event is sent since they are declared simultaneously.
        Updated all triggered abilities that trigger on being declared
        an attacker.  Also updated Dicestrike to be 2 phased since
        it triggers before total number of attack dice has been calculated.
        i.e. Darkheart Cottage etc.  Also, Mimic's effect was going into
        effect post dice calculation, so now the declared attackers event
        goes out right when they are declared.
      * Fixed Trample's effect.  Was allowing assignment to adjacent
        cell if at least one local enemy had enough damage assigned
        to destroy/disrupt, has to be all.
      * Removed Fight <lineage> I plan on creating a local_[ally/enemy]_lineage 
        condition.
      * Converted Fight <aspect> to be just generic Fight and
        use new condition for local enemy aspect.  Updated Bloated
        Parasite to use this.  NOTE: Ability text will not match
        actual miniature text (Fight Passion +2 -vs- {xP} Fight 2)
      * Converted Bloated Parasite to XML.
      * Changed local ally/enemy aspect to query aspects through
        hook. 
      * Added new condition for local enemy aspect.  Will show up
        similar to local ally aspect. {xV} means a local Valor enemy.
      * Converted Jack of Blades to XML.
      * Converted Hellshrieker to XML.
      * Converted Alluring Succubus to XML.
      * Fixed end_of_row for some of the cells which were wrong.

09/19/09 - 1.0.19

      * Added check for is_creature to Reinforce Battle.
      * Bunch of small optimizations in some frequently used hooks.
      * Changed shift event to an info one.  No abilities trigger from it
        and it's very expensive to do while the AI is thinking.
      * Another optimization for keeping track of pieces controlled
        by silver and gold players.
      * Converted All-Seeing Mage to XML.
      * Fixed Doctor Shocksalot's activation type, it's non-combat.
      * Removed argument to action_assign_damage.  Action now determines
        damage type from arguments.  Will allow things like a {Shield}
        Mass Wound to not trigger abilities that look for damage from
        blades.  Updated Mass Wound, Bomb, and Wound Self accordingly.
      * Added new damage type DAMAGE_TYPE_LOCATION.  Currently unused
        but could be (i.e. non blade damage from location).
      * Added check to all Gambit abilities to see if victory point
        is actually awarded before granting benefit.
      * Added reset on activation to Energy Gambit, was still doing it
        the old way.
      * Removed check for is_creature in can_piece_shift and is_engaged calls.
        They're never called for locations.
      * Fixed reactive container's short description to show 2nd part.
      * Fixed crash when an active spawn cost ability modifier (Boost) is in 
        effect with an X spawn cost ability with a non-zero fixed cost (Strafe).
      * Fixed crash w/ Skid Drive.

09/16/09 - 1.0.18

      * Fixed 'bug egg' in action handle_damage_outside_of_combat.
        Was modifying a vector while iterating it.
      * New custom Frantic Generator (Witching Hour).
      * New ability Boost (Witching Hour).
      * Cleaned up X spawn ability activation action generation.
      * New hook get_activated_ability_cost.  Needed for Boost.  Also
        changed all related checks and actions related to spawn abilities costs.
      * Locations can no longer by default claim cells.  No idea how this
        slipped through my testing.
      * Updated Deathform, Deathswarm, Twin of <name>, and Mutation to 
        not allow an exchange when the piece is not controlled by it's "owner", 
        i.e. under control of Mindlock etc.
      * Added some AI optimizations for Transposing.
      * Added stacking limit checking (via can_zone_be_entered_into_by_piece)
        for Transpose Enemy/Ally.
      * Fixed Transpose Enemy/Ally.  Ally has to be non-local to ability's owner
        not the chosen enemy.
      * Added long description for Grand Hive's spawn ability.
      * Fixed War Chief's ability def to be Scare % Advance, not Scare % Lure.
      * Added has_x override for Call to prevent AI using it w/ 0 X cost.
      * Fixed Deathboon.  Effect now is executed.  Also fixed its long ability desc.
      * Sent out an info event when there is a tie in conquest points when
        awarding victory points.
      * Added new vector of claimable cells only to game_state, optimization
        which gives a nice speed up.  Updated effect_conquest_for_cell_if_claimed
        to add/remove to list if used (i.e. Colonize X).
      * Removed unused loop from is_engaged() call, nice speed up of AI.
      * Fixed a crash w/ reactive_static_ability container.  Sustained
        effect (gain static ability) was free'ing static ability.
      * Added witching_hour dir to staging for Linux and OS X.  Whoops.
      * Changed order of ability display string to show conditions
        before cost.  i.e. in scoring cell requirement before blade cost.
      * Added override of has_x for Flicker ability to not bother with
        use of 0 for X by AI.
      * Tweaked scoring of cells for eval function.  I had the cell
        notation backwards which is why sometimes where the AI disrupts 
        to seems like a poor choice, seems to be MUCH better overall now.
      * Fixed order of base_cost and x_cost in activate_x_cost_ability
        in one of the calls.
      * Fixed Bloodtusk Throne's ability.  It can target any
        enemy, not just local ones.
      * Tweaked eval function.  AI player now much less apt to
        rush into the 3, 4, and 5 point scoring cells if they
        don't need to, i.e. no more being hyper aggressive.
      * Removed non DEBUG print in ai player's logic code.
      * Cleaned up Whisper Gambit's continue text.
      * Fixed Rush ability, use targetted cell not owning piece's current
        cell.  Also, pieces can move to adjacent cells, not targeted cell.

09/12/09 - 1.0.17

      * Fixed Rage of One, gained Ferocity only lasts until the
        end of combat.
      * Fixed single stacking limit check for locations.  No need
        to look at controller.
      * Updated core spawning code and abilities that allow spawning
        (i.e. Animate Dead) to check stacking limit.
      * Removed 'may' from Soulwash Temple's triggered ability.
        Must destroy a location.
      * Fixed Rage of One and Soulwash Temple's triggered ability 
        to correctly init and subscribe for events.
      * Added support for specifying a starting zone/cell for a piece
        in a warband file.  See doc/README for more info.  Mostly
        for testing but could be fun to play with too.
      * Removed some unused vectors from game state class.
      * Removed double check of stacking limit, was preventing Soulwash
        Temple from being spawned in a cell w/ a location.
      * Fixed Soulwash Temple's {CiP} ability, was set to trigger on wrong
        event.
      * Chronosphere's Rewind now works when there are more than 1 in play
        with the same controller.
      * Removed multiple calls to get initative roll in phase_initiative.
      * New ability Geography Drive (Witching Hour).
      * New custom Wreckless Wrecker (Witching Hour).
      * New ability Raze (Witching Hour).
      * New ability Drift Drive (Witching Hour).
      * New ability Skid Drive (Witching Hour).
      * New custom Fiendish Hybrid (Witching Hour).
      * New ability Turbo (Witching Hour).
      * Added list of current aspects for piece to info display.
      * Updated ui display of {CiP} to not just be for triggered
        abilities that trigger on pieces entering play.
      * New custom Aggrocopter (Witching Hour).
      * New ability Strafe X Y (Witching Hour).
      * More cleanup on X abilities w/ a fixed starting cost.
      * New custom Infernal Persuader (Witching Hour).
      * New ability grant lineage local allies.  Generic form of
        Condemn (Witching Hour).
      * Fixed Marian, Bound to Pain's spawn cost.
      * Updated UI to handle list of lineages.
      * Changed *all* references to a single lineage to be a list
        of lineages.  This includes all piece defs, abilities, effects,
        conditions, etc.
      * New hook get_lineages.
      * Fixed Fury <lineage> to only apply to specified lineage.
      * Fixed Blight Rat's utility name.
      * Updated 'Fraidy Cat to use changed activated_static_ability.
      * New custom Ravenous Vampyre.
      * New ability Carnage Energize X (Witching Hour).
      * Fixed effect_move_creature_between_zones_if_target_destroyed.  Was not
        using event_info for destroyed piece.
      * New effect gain_spawn_for_each_destroyed, used by Carnage Energize X.
      * Added new custom Burning Desire (Witching Hour).
      * New ability Insubordination (Energy) (Witching Hour).
      * Added new action pay_spawn_points for non ability cost payments.
      * Added new method to spawn pool class for paying spawn
        points outside of an ability's cost (i.e. Insubordination (Energy)).
      * Added new custom Incomplete Masterpiece (Witching Hour).
      * New ability Insubordination (Assembly) (Witching Hour).
      * Added new custom Grand Hive (Witching Hour).
      * New ability for Grand Hive (Witching Hour).
      * New ability Gargantuan w/ a little more flexibility via
        desc and num_contrib.  (Witching Hour).
      * Added new custom Sybil (Witching Hour).
      * New ability Splinter (Witching Hour).
      * New ability Duplicate <name> (Witching Hour).
      * Fixed infinite recursion issue when querifying for aspects
        in Chameleon ability (shows up when more than 1 Convertible
        Convertible is in play for a player).
      * Added new custom War Chief (Witching Hour).
      * Added new effect for 'Reactive' static abilities, gain_static_abilities.
      * Made "Hell's Fury"'s ability (Gain Crit <lineage>) a more
        generic container ability for easier re-use.  Updated
        Ekkyon Wayfarer accordingly.
      * Removed Gain Enrage ability and switched to the more correct
        activated static ability (with duration).  Updated Virtuous 
        Maiden accordingly.
      * Added new param for activated static ability (expiration event id).
      * Added new container ability for 'Reactive' static abilities
        (with duration).
      * New ability Enrage X.
      * Fixed Advance All.  Wasn't removing from targets list after
        advancing.
      * All forms of Advance and Transpose now send out an event saying they
        have resolved (used by Reactive abilities).
      * Added new custom Failed Experiment (Witching Hour).
      * Added new custom Sabrefang Skirmisher (Witching Hour).
      * Added new custom Inescapable Adversary (Witching Hour).
      * All forms of Expel and Scare now send out an event saying they
        have resolved (used by Reactive abilities).
      * Added new custom Master Tactician (Witching Hour).
      * All forms of Skirmish now send out an event saying they
        have resolved (used by Reactive abilities).
      * Added new event type and info class for ability_resolved.
      * Correctly implemented Reactive activated ability container class.
      * Added new field to ability class (parent_ability) will
        be set when ability is part of a container ability
        i.e. Halo, Reactive <ability>, and combined abilities.
      * Tweaked eval function, now faster and it seems to play better.
      * Fixed Spark's AI can_use optimization.  Was backwards.
      * Fixed Fluctuate's reset after turn ends.  Wasn't going through UNDO
        engine.
      * Fixed Bloodlust's AI optimization, should check for be unengaged.
      * Removed can_use override in Animate Dead, as it's a triggered ability.
      * Fixed up Respawn's can_use logic.
      * Overrides of can_use are now can_use_ai since that is the only time
        they are called.
      * All can_use AI optimizations are now enclosed in a macro which
        allows me to disable it easily.  Also made all special checks like that
        only apply when an AI is thinking or doing the actions.  It was
        confusing for human players to not see the option to activate
        in the list of choices.
      * Revamped paying and checking activated ability costs to support
        cost modifying hooks and non-fixed costs (i.e. Boost).
      * Added support for X spawn abilities with a fixed starting cost,
        to support Strafe ability of Aggrocopter (Witching Hour).
      * Fixed issue w/ instantiating Spirit Vault's ability from XML def.
      * Added new custom Unstable Mabel (Witching Hour).
      * Added new ability Flicker (Witching Hour).
      * Added new flag for triggered abilities is_cip_ability.  Needed
        due to some triggered abilities triggering on a piece coming
        into play, but not being {CiP}.
      * Added new action action_activate_cip_ability.
      * Fixed triggered version of Rush {CiP}, wasn't resetting state
        when triggered.
      * Broke out does_ability_trigger into two parts to support
        Flicker ability.  One part just says whether it triggers, the
        other half does a reset, etc as on_activate does for activated_ability.
      * Added new custom Faceless Sniper (Witching Hour).
      * Added new ability Deadeye Warpstrike X (Witching Hour).
      * Added new custom Whirlygig (Witching Hour).
      * Added new ability Insubordination (Reinforcement) (Witching Hour).
      * Added new custom Doctor Shocksalot (Witching Hour).
      * Added new ability Warpstrike Chain <aspect> (Witching Hour).
      * Fixed Mine ability, it applies to all local locations not just 
        'allied' ones.
      * Added new custom Infernal Whisperer (Witching Hour).
      * Added new ability Weaken <aspect> (Witching Hour).
      * Added new tweakable spawn_at_start_of_spawn_phase.  This
        defaults to 0.  The number is added to the starting spawn
        points for each player in addition to the normal spawn points.
      * Implemented correct handling of damage outside of combat with 
        group abilities.
      * Added new custom Soldier of Fortune (Witching Hour).
      * Added new ability Insubordination (Entry) (Witching Hour).
      * Fixed Chaos Drive's long text description, had a non viewable
        char in it.
      * Added new container ability for 'Reactive' activated abilities.
      * Added new custom Conductor (Witching Hour).
      * Added triggered version of Transpose Enemy/Ally {CiP}.
      * Added new custom Shimmering Watchtower (Witching Hour).
      * Added new ability for Shimmering Watchtower (Witching Hour).

09/04/09 - 1.0.16

      * Added new custom Spirit Slayer (Witching Hour).
      * Added new ability Dissolve (Witching Hour).
      * Added new effect modify_spawn_for_destroyed
      * Added new custom Spirit Vault (Witching Hour).
      * Added new ability Vault (Witching Hour).
      * Added new custom Convertible Convertible (Witching Hour).
      * Added new ability Assist Drive (Witching Hour).
      * Added new ability Chameleon (Witching Hour).
      * Added new hook get_aspects.  Updated all code using old method of
        checking for aspect(s).
      * Added new custom Big Top (Witching Hour).
      * Added new ability for Big Top (Witching Hour).
      * Added new effect piece_cant_move.
      * Added new custom Zungar Herald (Witching Hour).
      * Added new ability move_after_spawning_aspect, generic
        form for 'Call to Arms'.
      * Added new custom Pearlthorn Marshal (Witching Hour).
      * Implemented triggered Rush {CiP}.
      * Fixed Disarm X.  Was triggering on any attack, not just when
        opponent attacked.
      * Fixed Baba Yaga's static ability.
      * Optimization for 2 phased phase transition (for triggered abilities that
        trigger @ the end of a phase).
      * Fixed Hero of the People's Glory ability def.
      * Fixed Madcap Aristocrat's Shackle ability def.
      * Added ability trigger check to Mine ability.
      * Updated all triggered abilities to check if owning piece is
        in play (where it's needed and not already checked implicitly).
      * Removed in play check for dispatching triggered ability events.
        Was keeping Reincarnate from triggering.
      * Implemented ability Reincarnate.  Somehow this one slipped
        through the cracks.  I had given Chrysalis Spinner the
        Regenerate ability which is wrong.  Now fixed.
      * Fixed special attack event text.  Should be sending out
        dest cell of attack (i.e. Warpstrike).
      * Fixed <aspect> Edged Advance.  Should only trigger for allies.
      * Added a few more info events for the turn ending and
        awarding victory points.
      * Activated static abilities (i.e. Shield abilities) now
        show long description.
      * Added 'may' option to Skirmish <aspect>.
      * Vortex no longer moves locations.
      * Fixed Coral Archerfish's Warpstrike to be power of 2.
      * Changed identifier for local Madness ally aspect from {M} to
        {U} to avoid confusing w/ Multiblade.  WotC also used this.
      * Fixed Inciter X and Incite <lineage>, were modifying enemy 
        life instead of power.
      * Fixed text for Panic X, should be positive #.
      * Send out an info event when Double Stakes resolves when
        calculating victory points for turn winner.
      * Fixed issue w/ Torture not giving spawn points after
        sacrificing a local ally.
      * Added EVENT_ID_DAMAGE_ASSIGNED to ui handler.
      * Added Hiveling lineage to Deathhead.
      * Swarm <lineage> should only change power when owning
        piece is in play.

08/24/09 - 1.0.15

      * Fixed issue w/ Corpsebuilt where it was requiring 1 more
        creature moved to the graveyard than needed.
      * Fixed issues with both players having actions as a result of damage
        outside of combat (i.e. Valorborn Advance Self + Ambush + Passionborn Assault).
      * Fixed issue w/ effect move_creature_between_zones_if_target_destroyed
        did not set controller of sub-effect move_piece.
      * Correctly implemented handing of come into play
        and spawned piece event triggers.  Updated
        Etherdance, Valorborn Advance Self, and 
        Passionborn Assault.
      * Fixed Nevret Warmaster's Fortunate ability.
        Should be Fortunate 5, not 2.
      * Fixed Deathrip abilities.  Wasn't being marked
        as used for that combat after 1st activation.
      * Optimized Smash, Supersmash, and Demolish for AI.
      * Print out the final score when exiting
      * -V flag shouldn't show usage etc.

08/11/09 - 1.0.14

      * Fixed Unravel's text to be a positive #.
      * Fixed a bug w/ Rally Lineage.
      * Fixed a bug w/ disrupted pieces during combat.
      * Fixed typo in Coral Archerfish's XML def.
      * Fixed issue w/ creating Shard Troll's Assault.
      * Fixed issue w/ creating Tunnel <lineage> ability via XML.
      * Added new custom Horrifying Spectre (Witching Hour).
      * Added new custom Gas Man (Witching Hour).
      * Added new custom 'Fraidy Cat (Witching Hour).
      * Added support for copying and creating from XML, activated static abilities 
        (mostly Shield abilities).
      * Added new custom Blood-Ash Infantry (Witching Hour).
      * Added new custom Madcap Aristocrat (Witching Hour).
      * Added new custom Dancing Lunatic (Witching Hour).
      * Added new custom Cornered Kitty (Witching Hour).
      * Added new custom Chaos Beast (Witching Hour).
      * Added new custom Zungar Champion (Witching Hour).
      * Added new custom Steadfast Squire (Witching Hour).
      * Added new custom Runetagged Acolyte (Witching Hour).
      * Added new custom Man-At-Arms (Witching Hour).
      * Added new custom Hero of the People (Witching Hour).
      * Added new ability Accuracy.
      * Added new custom Isolationist (Witching Hour).
      * Added new custom Manic Miner (Witching Hour).
      * Added new ability Mine.
      * Added new custom Double Talker (Witching Hour).
      * Added new ability Incite Aspect.
      * Added new ability Fight Aspect.
      * Fixed Unravel ability, it was adding to defense.
      * Added new custom Drunken Master (Witching Hour).
      * Added new custom Heartsblood Marshall (Witching Hour).
      * Added new custom Bounty Hunter (Witching Hour).
      * Added new ability Reward, for Bounty Hunter.
      * Fixed uninitialized flag in Valor Beacon.
      * Added new custom Schoolyard Bully (Witching Hour).
      * Added new ability Demoralize, for Schoolyard Bully.
      * Added new custom Nightmare (Witching Hour).
      * Added new custom Bare-Knuckle Brawler (Witching Hour).
      * Added new custom Luminous Muse (Witching Hour).
      * Added new ability Tempt Aspect, for Luminous Muse.
      * Added new custom Clawclan Slasher (Witching Hour).
      * Fixed Infernal Beauty's aspect cost.

08/01/09 - 1.0.13

      * Added new custom Infernal Beauty.
        From Witching Hour fan made set by Scud-O.
      * Added new ability (for customs).  From Witching Hour fan made set by Scud-O.
          Tempt - You may pull target engaged enemy one cell. ("Pulling"
          means moving a creature closer.)
      * Added new defs/strs for custom sets "Witching Hour" and "Twilight".
      * Added missing piece to Chessmaster warband.
      * Fixed a memory corruption issue that showed up with
        abilities that walked ability lists (Wish, Deathrip).
      * Fixed an initialization issue w/ Intimidation.
      * Fixed an interaction issue w/ Edged Crit and Deathrip.
      * Fixed an issue with abilities not being marked as unused 
        correctly after destruction.
      * Fixed an infinite loop issue with Haunt Gambit when no enemies are
        in play.
      * Fixed a tricky interaction w/ Ghost of the Key's Phantom
        ability and Ferocity, per the FAQ:

        'Both the Phantom ability and the Ferocity ability affect step 5 of
         combat. If a creature is under the effect of both of these abilities and
         is dealt enough damage to disrupt it, the Phantom ability "wins" since
         it's the ability that says something can't happen, and the creature will
         be disrupted. See "General Rules" in the Abilities section of the
         Dreamblade rulebook.'

      * Fixed an issue w/ Death Cycle and Shadow interaction.
      * Fixed an issue w/ Deathrip crashing.

07/23/09 - 1.0.12

      * Fixed an issue with activated combined abilities that
        have abilities that need to resume, i.e Sun Titan's
        Advance 10 & Bomb.
      * Fixed an issue with activated combined abilities that
        are created via XML.
      * Fixed Triplicate ability.
      * Fixed spelling errors of minis in fear.txt and valor.txt.
      * Tweaked board scoring for non in play zones.
      * Fixed an issue w/ the AI's evaluation function.
      * When cycling through event messages skip over ones
        about AI thinking.
      * Fixed an issue with activated combined abilities that
        enforce order.
      * Fixed a bunch of issues w/ Death Cycle.
      * Fixed a few issues when potential attackers for a deathblow
        were not legal (single piece w/ Follower).
      * Performances tweaks in most expensive function 
        (calculating conquest points).  Increase of about 8%.

07/09/09 - 1.0.11

      * Fixed a crash w/ the Slip ability.
      * Fixed a bug w/ abilities that need to calculate
        the number of cells between 2 cells.  i.e. Missile
      * Fixed issue w/ passing on deathblows outside of
        combat.
      * Fixed issue w/ successful initiative rolls being
        informational which limits dispatch to when AI
        is not thinking.
      * Now keep track of pruned nodes at each depth.
        Mostly for my use in tweaking/evaluating performance.
      * Fixed issue w/ Nightstrike's description.
      * Changed order of disruption cells to improve 
        AI pruning.
      * Added some info events to the gambit abilities.
      * When AI starts thinking it sends out an event for display.
      * Cleaned up handling of disrupt/destroy actions in
        the rare case there are actions for both active
        and not active player.  A good example is Wicked 
        Carriage's Fracture ability.
      * Changed order of potential spawn row spawning cells to
        improve AI pruning.
      * Made the piece dialog a little larger.
      * Fixed Tower of Unquenched Flame's ability to apply
        to both players.
      * Updated text for Fortunate All.
      * Fixed Mighty Stride.  Was allowing opponent's pieces
        and locations.
      * Fixed Flummox's corrupt description.
      * Added aspect strings to desc for <aspect> Beacon.
      * Fixed an issue w/ marking pieces for disruption/destruction.
      * Moved shift event to before actual move mimic'ing real play.
        i.e. Shift a piece and see that Ambush triggers.
      * Fixed the pass action for deathblows, was being assigned
        to the attacking player.
      * Fixed bug w/ showing triggered abilities in the status bar.
      * Fixed an issue with resolving the stack when both players
        have actions.
      * Fixed a logic bug w/ determining the active player
        during the initiative phase.  Fixes resolving Rewind.
      * Implemented active player handling for the conquest phase.
      * Rewind now correctly only triggers after players have
        successfully rolled initiative, not after each has
        rolled initiative.
      * Purge and Reverse Purge no longer allow locations to be purged.
      * Fixed up Fluctuate.  It can apply to either player.  Also
        send out an event w/ the new conquest value amount.
      * Changed Payback and Nightstrike to deal (additional) combat damage like
        other abilities do which allows it to got through modifier hooks.
      * Blind Fury now correctly only triggers when owning piece is
        declared as an attacker during combat.
      * New event obj for banishing and send out banish event when
        a piece is banished.
      * Clear usage of activated abilities on destruction.  Now
        pieces destroyed and brought back into play somehow during
        the same phase can activate their abilities.
      * Commonalized a lot of action_deathblow and action_strike.
      * Converted a few more pieces to XML format.
      * Piece dialog shows all triggered abilities (i.e. granted
        ones), not just printed ones.

07/01/09 - 1.0.10

      * Updated makefile to include all dxp files in 6 core set dirs.
      * Fixed handling of "granted" triggered abilities.
      * Halo {B}: Battle Energize was incorrectly marked as a combat
        only blade ability.
      * All minis w/ Halo abilities are now XML definitions.
      * Changed all Halo abilities to be one of the following 3:

            halo_activated_ability
            halo_static_ability
            halo_triggered_ability

        Updated all parts of the code that were referencing explicit
        Halo abilities.
      * Changed use of 'may' action to 'continue' action in regular attack
        and handling damage outside of combat.  'May' should only used
        w/ abilities.
      * All prompts for 'may' abilities now show owning piece name of
        ability.
      * Did some commonalization w/ Halo type abilities.
      * Cleaned up detailed piece info dialog.  Also added current
        venom below assigned damage.
      * Ability info does not spill out of status area.
      * Migrated curses specific stuff out of UI header and other work
        preparing for non-text GUI port.
      * For Mighty Warpstrike display attack power in attack_desc.
        This reflects the power of target piece(s).
      * Fixed bug w/ Eternity.
      * Fixed opposite row handling (for Slip).
      * Fixed crash w/ Deathrip's sustained effect.
      * Fixed issues w/ Rewind.
      * Fixed a crash w/ Swarm <lineage>.
      * Fixed bug w/ encumbered spawn points (Spark, Energize Lineage, 
        Summon, etc).
      * Fixed issue w/ Corpsebuilt.
      * Fixed issue w/ Rampage's sustained effect.
      * Added flag for triggered abilities to distinguish between ones that
        need player decisions when simultaneously triggered and ones that 
        don't.  Bloodthirsty is an example of one that doesn't.
      * Added long desc for {C}:Spur.

06/24/09 - 1.0.9

      * Implemented Corpsebuilt X when X > 1.
      * Added missing description text to Provoke ability.
      * Eternity now also applies to the piece w/ the abilitiy.  It states
        local creatures not local allies.
      * Clone X was missing its description.
      * Fixed a bug in Bolster <aspect>.  It applies to allies, not piece
        with ability.
      * <aspect>-born Assault did not set attack amount correctly.  Fixed.
      * Added a long description for each ability (which equates to the
        description on the bottom of the mini).  That was painful to do
        for each ability, ugh.  Long description can be seen when viewing
        a piece (select piece and press <Tab>).
      * Implemented reroll initiative for Rewind correctly.
      * Optimized Fluctuate for AI (no need to use if not a scoring cell).
      * Mind Mulch adds bonus spawn used @ the beginning of next spawn phase.
        A condition could arise (using Gent) where the player would not get
        the spawn point(s) the way it was being done.
      * Revamped damage modifiers so that they now work w/ Twin-Skull Archway
        and Zungar Citadel.  Also the design will allow me to easily add support
        for allowing player to choose order to apply modifiers.
      * Optimized Teleport Self and Teleport Ally for AI player.
      * Lockdown ability sends out an event when target cell is chosen so
        a human player can see which cell they can't shift in.
      * UI now subscribes for events related to triggered ability activation.
      * Removed auto-set of notify for triggered abilities.  May give
        slight speed bump.
      * Fixed an issue w/ Frightwave.  After moving a piece it is no longer
        eligible to be moved again.
      * Deathblows do not send out a damage assign event when there are
        no assign damage actions.
      * Added more detail to assign damage messages (whether for deathblow,
        special attack, etc)
      * Implemented handling of conditional spawn points from abilities.
        Spark, Summon <lineage>, Energize <lineage>.
      * Added text for declaring deathblow attackers so it is known it is
        a deathblow without having to scroll back a few events.
      * Special attack text now shows destination cell so that Warpstrikes
        etc show correct place attack is happening.
      * Baba Yaga's hut's ability text is what is printed on the mini.
      * Added missing display string for local ally aspect condition.
      * Added a batch script for Windows to correctly set the window
        size before launching.

06/17/09 - 1.0.8

      * Made the default when launching with no arguments be something
        so the player knows it's working.  Use default warband and silver
        AI player.
      * Added support for inputting real dice rolls (for human rolls).
        Use -c flag to enable it (off by default).
      * Fixed issues w/ Lure X, Skirmish X, Scare X, Advance All,
        and Skirmsh All Local.
      * Made Venom X/Y a group ability as it should be.
      * Fixed interaction bug w/ Gent and Wicked Carriage.  Fracture
        is a combat only ability.
      * Added sustained effect to all Deathrip abilities.
      * Added support for activated combined abilities in custom
        XML pieces.
      * Added support for copying an activated combined ability.
        i.e. Advance & Skirmish.
      * Fixed an issue w/ Spawn <lineage> (i.e. Hell Spawn) where 
        it would continue to just ask to select target.  Also fixed
        it being executed before being triggered.
      * Removed Advance ability from Ardent Zungar.
      * Fixed an issue w/ is_cell_further_away function which
        affected Scare (and its variants), Frightwave, and
        Terrify.

06/12/09 - 1.0.7

      * Fixed an issue with combined abilities (X & Y) when player can 
        choose order.
      * Fixed an infinite loop bug w/ Warpstrike X and Warpstrike All.
        Was checking attackers instead of attackees.  Also optimized
        it so not to keep getting notified by action_special_attack.
      * Fixed a crash w/ Bloodtusk Throne.  It technically speaking
        has no attackers.
      * Fixed infinite loop w/ Trample after choosing target cell.
      * Added Mindthief to copy_abilities.
      * Fixed a crash w/ Deathboon.
      * Removed auto-adding notify ptrs. Should speed things up a
        little bit. Changed abilities relying on that behavior including
        Grave Crit, Flux Crit, Duel, Crit, Swarm Crit, Flanking, Fumble,
        Heroics, Pack, Edged Crit, and Stalwart.
      * Implemented correct targeting rules for Skirmish All Local.
      * Madhouse ability now correctly enforces rerolling
        the conquest amount of dice, not "up to".
      * Implemented correct targeting rules for Terrify.
      * Added check for controlled local creature in Tower
        of Unquenched Flame's ability.
      * Getting all pieces by controller now checks controller
        instead of just returning the warband.  This handles
        stuff like Mindlock but will affect performance.
        May have to find a way to offset the performance hit.
      * Implemented correct targeting rules for Warpstrike All.
      * Rampage only triggers for a regular attack.
      * Optimized Bloodlust for AI usage.
      * Fountain of Shades, per the FAQ, uses the power of
        the sacrificed piece before it leaves play.
      * Changed Mindstrike, Annihilate, and Intercept Drive
        to use a creatures' current life, not its printed life.
      * Phantom only triggers when in combat, as it should.  Not
        deathblows or special attacks.
      * Changed Mimic, Mighty Stride, Spur, Payback, and Bloodtusk
        Throne's ability to use a creatures' current power, 
        not its printed power.
      * Optimized Tunnel <lineage> for AI usage.
      * Stats for selected piece in status bar use "printed" stats.
        The info dialog reflects any in play effects/modifiers etc.
      * Fixed a bug in Splat where choosing to pass on the ability
        would cause an infinite loop.
      * Fixed right alignment of conquest points in column.
      * Added abilities to status area.  If the width of the board
        isn't long enough, not all text from abilities will show up.
        Also available area will depend on last attack dice roll.
      * Added support for 3 values in Fortune ability when
        making custom minis (val_to_replace, replacement_val, desc).
      * Implemented "may" handling in Skirmish X (X>1).
      * Implemented correct targeting rules for Advance All.
      * Cleaned up the piece info dialog and added more piece
        info (unique, set, etc).
      * Fixed a bug w/ Shackle X where it would only work
        once per turn.
      * Supress now sends out an info event saying which 
        name was chosen when resolved.
      * Optimized Shackle X a little bit.
      * During combat (and handling damage outside of combat)
        no longer using the marked_for_destruction/disruption
        maps for determining whether a piece can be marked for
        destruction/disruption.
        This is needed since an ability like Venom can mark
        a piece for destruction but the player can still choose
        to mark it for disruption after taking damage.
        This is legal according to the FAQ and now supported.
      * Fixed recursion issue w/ when 2 or more abilities
        that prevent abilities from being used (i.e. Web Breath
        and Nullify).
      * Changed color for no aspect pieces to be different from
        madness on all platforms.
      * Fixed recursion with all abilities that prevent
        abilities from being used (Nullify, Blight, Web Breath).
      * Only count enemy disrupted or destroyed pieces for
        Strikeback ability.
      * Updated doc/README with info about dice, performance.
      * Implemented handling for the situation where a piece
        is marked for disruption and also marked for destruction
        (by something like Venom, etc).  From DB FAQ.
      * Moved the Venom mechanic out of the core engine.  Should
        add a wee bit of performance as it isn't used if no pieces
        have a Venom type ability.  And also going forward will
        be the way similar mechanics could be added.
      * AI Optimization for Attract <lineage>.
      * Fixed some issues w/ Manifest <aspect>.  For Stained-Glass
        Angel.
      * More events are handled by UI (disruption, sacrificing,
        banishing, destruction)
      * Tweaked the eval function.  It seems to be both better
        and faster.  Lost my first game against it w/ a depth
        of 5 both using random warbands.   :)
        It also seems to play a lot better @ lower depths.
      * Reversed the logic of the -z flag so that players can 
        see who won when not specified.  The -z flag is mostly for 
        timing/performance measurement.

06/08/09 - 1.0.6

      * Left and right arrows now scroll between newer and older
        event messages.
      * Made statically linking against libstdc++ the default since
        I've had 2 people with older versions trying to use it.
      * Added support for combined abilities which allow player
        to choose order.
      * Moving done by something other than spawning or shifting
        (i.e. effects) now send events.
      * Better handling of empty lines and lines with whitespace
        in warband files.
      * Fixed a memory corruption crash with Soul Harrow.
      * Fixed a recursion issue with Nullify and Nullify <aspect>
        which caused a crash.
      * Removed some no longer used command line arguments
        and #ifdef'ed ones for my use during debugging.
      * Fixed a crash when doing deathblows out of combat.

06/07/09 - 1.0.5

      * Added support for OS X (Intel).

06/05/09 - 1.0.4

      * Added some pieces from the "Dreamblade Design Challenge".
        I added pieces that used abilities already implemented
        in the 6 official sets.

            http://forums.gleemax.com/showthread.php?t=1025756

        The custom pieces are under pieces/custom.
      * Custom pieces can now be created using XML specification.
        See doc/making_customs.txt for more info.  I will slowly
        be moving the pieces from all sets to this format.
      * Changed Colonize to use a sustained effect.
      * Finished implementing Fortune ability.  Had a TODO in there.
        For Hog Fairy.
      * Don't exit if no rules.conf file found.  Just use defaults.

06/01/09 - 1.0.3

      * All blade abilities can be copied now via Copy Enemies and Grand Melee.
      * Implemented Venom X/Y (Y > 1) and used correct targetting rules.
        i.e. Double Venom, for Toxic Sirroth.
      * Implemented Skirmish X (X > 1) and used correct targetting rules.
        For Knight of Strife and Joy.
      * Implemented Scare X (X > 1) and used correct targetting rules.
        For Zungar Revenger.
      * Added support for overriding core rules.  See rules.conf.
      * The -v flag works much better now.  All events that the AI does
        can be seen as and are paused at.

05/31/09 - 1.0.2

      * Switched Windows build to use PDCurses so no need for Cygwin.
      * Added some new warbands.
      * Added a target for statically linking against libstdc++.  Allows
        the program to work w/ older Linux distros.
      * More performance enhancements.
      * UI now shows event info when an ability is activated or triggered.

05/29/09 - 1.0.1

      * (ncurses) Added A_UNDERLINE for locations to help them stand out.  Only
        seems to work correctly on Linux.
      * Pushed ai_player::is_thinking up to player class as optimization so fewer
        logic checks when calling game_state::is_an_ai_thinking().
      * Added support logging warbands used, starting parameters.  Will be 
        useful for doing post-mortems now that other people are using it.
      * Changed default tree depth to 6
      * Hawk-Eyed Instigator was named wrong, fixed.
      * Added VERSION info, and a flag for showing it -V
      * cygwin release makefile target

05/28/09 - 1.0.0

      * Initial release.  Linux and Windows (cygwin) version.
        Engine is mostly complete and all original 396 pieces are added.
        Some basic testing done.

vim:tw=82:expandtab
