DI-Guy SDK Documentation  13.5
diguy_changes_older_dox.h
Go to the documentation of this file.
1 
2 /*****************************************************************************/
519  /*****************************************************************************
520  *****************************************************************************
521  **
522  ** \section v9apps DI-Guy 9.0 and Earlier
523  **
524  *****************************************************************************
525  *****************************************************************************
526  **
527  **************************************
528  ** \subsection v9diguyapi DI-Guy API
529  **************************************
530  **
531  *b Note that most changes to the DI-Guy API also apply to DI-Guy Scenario.
532  **
533  ** \subsubsection v904api Version 9.0.4
534  **
535  *- - Added new argument to diguyCharacter::force_action() that allows
536  *- the forced action to begin partway into the action.
537  *- - Added the following functions to diguyCharacter API:
538  *>
539  *- - diguyCharacter::get_most_recent_forced_action()
540  *- - diguyCharacter::get_most_recent_forced_action_t()
541  *- - diguyCharacter::get_most_recent_forced_action_t_offset()
542  *<
543  ** \subsubsection v901api Version 9.0.1
544  **
545  *- - Added new guide example, see $DIGUY/programming_examples/diguy_ogl/guide_example
546  *- - Added the following functions to diguyCharacter API:
547  *>
548  *- - diguyCharacter::get_distance_to_impact()
549  *- - diguyCharacter::set_is_scene_object()
550  *- - diguyCharacter::get_is_scene_object()
551  *- - diguyCharacter::set_apply_actor_scale_to_action_bead_xy_travel() deprecated;
552  *- use diguyCharacter::set_apply_actor_scale_to_action_bead_travel() instead
553  *- - diguyCharacter::get_apply_actor_scale_to_action_bead_xy_travel() deprecated;
554  *- use diguyCharacter::get_apply_actor_scale_to_action_bead_travel() instead
555  *<
556  *- - Manually invoking a diguyCharacter perl script callback via
557  *- diguyCharacter::manually_invoke_event_handler() will now have the
558  *- $callback_object variable properly set.
559  *- - Minor munition system improvements:
560  *>
561  *- - Munitions sound effects now include sound gain.
562  *- - Added diguyScenario::trigger_detonation(), a function for
563  *- creating a detonation at an arbitrary xyz location.
564  *- - Fixed bug with location of munition particle effects.
565  *<
566  *- - Added new Munition system demonstration; see AI_Munitions_Demo.dss in
567  *- scenarios directory.
568  *- - Improved default 3d sound behavior; prior default 3d sound falloff
569  *- was much too aggressive. Future DI-Guy releases will make more of
570  *- these values tuneable.
571  **
572  ** \subsubsection v900api Version 9.0.0
573  **
574  *- - Promoted the following functions from experimental to
575  *- official status:
576  *>
577  *- - diguyScenario::find_character_at_screen_coords()
578  *- - diguyScenario::get_impact_at_screen_coords()
579  *- - diguyScenario::get_intersection_at_screen_coords()
580  *- - diguyScenario::force_octtree_generation()
581  *- - diguyScenario::intersect_static_geometry()
582  *- - diguyScenario::add_character_to_octtree()
583  *- - diguyScenario::remove_character_from_octtree()
584  *- - diguyCharacter::set_apply_actor_scale_to_action_bead_xy_travel()
585  *- - diguyCharacter::get_apply_actor_scale_to_action_bead_xy_travel()
586  *<
587  *- - Added functions to allow user to specify custom feeler functions:
588  *>
589  *- - diguyScenario::set_default_agent_feeler_function()
590  *- - diguyCharacter::agent_set_feeler_function()
591  *- - diguyCharacter::agent_get_feeler_function()
592  *<
593  *- - Fixed more issues with recent changes to reduce path memory overhead.
594  *- - Changing current appearance will now complain less if the resulting
595  *- change doesn't require recompilation of path data.
596  *- - diguy_dis_constants.h now includes custom PDU enumeration.
597  *- - Changes made to aim algorithm 8 parameter functions in an effort
598  *- to make them more descriptive. Note that only the set functions
599  *- are listed; the corresponding get functions have changed, too.
600  *>
601  *- - diguyCharacter::set_aim_param_time_constant() deprecated;
602  *- use diguyCharacter::set_aim_param_acquire_factor() instead
603  *- - diguyCharacter::set_aim_param_reset_time_constant() deprecated;
604  *- use diguyCharacter::set_aim_param_new_aim_factor() instead
605  *- - diguyCharacter::set_aim_param_time_constant2() deprecated;
606  *- use diguyCharacter::set_aim_param_new_aim_duration() instead
607  *<
608  ** \subsubsection v863api Version 8.6.3
609  **
610  *- - Fixed some issues with recent changes to reduce path memory overhead.
611  **
612  ** \subsubsection v862api Version 8.6.2
613  **
614  *- - Changes made to support multiple active formations. New arguments
615  *- added to diguyCharacter::call_formation() and
616  *- diguyCharacter::break_formation() to support multiple formations.
617  *- Default behavior remains the same as before.
618  *- - Significant memory savings when dealing with characters with
619  *- long paths.
620  *- - Added new argument to diguyCharacter::set_current_appearance()
621  *- function: allow_actor_change. Previously changes to a character's
622  *- appearance that would result in an actor (size of character) change
623  *- were not allowed. Passing 1 (the default) for this argument now
624  *- allows such a change.
625  **
626  ** \subsubsection v861api Version 8.6.1
627  **
628  *- - Added function diguyCharacter::get_current_traveled_path().
629  *- - Improved logic for picking dead action.
630  *- - Removed deprecated functions:
631  *>
632  *- - diguyLoadManager::set_max_update_period()
633  *- - diguyLoadManager::set_nonvisible_update_rate()
634  *- - diguyLoadManager::set_zone_bounds()
635  *- - diguyLoadManager::set_zone_parameters()
636  *<
637  *- - Improved DIS/HLA Networking:
638  *>
639  *- - Added support for Flat Earth and Geocentric coordinates.
640  *- - Coordinate system changes can now be applied while the system is
641  *- connected to the network.
642  *- - DI-Guy characters can now have different Munition types which are
643  *- sent over the network as part of the detonation pdus.
644  *<
645  *- - Improved Munition Support:
646  *>
647  ** Heavy rewrite/solidification of our munition and detonation code.
648  *>
649  *- - Characters now have a munition type, defaults to "m16".
650  *- - Munition definitions are stored in the munition_type.cfg file.
651  *- They have a number of required and optional fields including
652  *- septet, radius, and special effects to create when triggered.
653  *- - The munition name and radius is now part of diguyImpact
654  *- structure. This allows the end user to build damage models in
655  *- scripts that are based on the munition type of an impact, along
656  *- with fall-off effects based on distance from impact location.
657  *- - Characters hit by broadcast detonations will now call the
658  *- CALLBACK_ID_IMPACT callback if they have one, this emulates what
659  *- happens when characters are shot by other DI-Guys. If they are
660  *- members of a crowd and the crowd has an impact callback that will
661  *- be called, if no impact callback exists they will die.
662  *- - Crowds should now react to remote detonations.
663  *- - Impacting a scene object will now transmit a detonation.
664  *<
665  *<
666  ** \subsubsection v850api Version 8.5.0
667  **
668  *- - Many new function calls available from decisions.
669  *- - Changed default aim algorithm from 7 to 8. To change it back to 7,
670  *- call diguyCharacter::set_aim_algorithm(), passing 7 as the
671  *- aim_algorithm argument.
672  *- - Improved diguyCharacter::check_character_visibility(). Character
673  *- will now use the cervical joint as the source point, and test
674  *- multiple positions on the target.
675  *- - Promoted diguyCharacter version 8 aim algorithm functions from
676  *- experimental to official.
677  *- - Characters that are flagged as scene object are no longer baked
678  *- into the world octtree. Editing them no longer requires an expensive
679  *- octtree rebuild.
680  *- - Fixed access bug in diguyScenario::find_path_shape().
681  *- - Added functions:
682  *>
683  *- - diguyCharacter::get_last_impact_is_from_vehicle()
684  *- - diguyCharacter::get_last_impact_speed_is_greater_than()
685  *- - diguyCharacterGuide::set_position_acquired()
686  *- - diguyCharacterGuide::set_orientation_acquired()
687  *- - diguyImpact::get_impact_speed()
688  *<
689  ** \subsubsection v810api Version 8.1.0
690  **
691  *- - Added function diguyScenario::preload_sound()
692  *- - Added callback id diguyScenario::CALLBACK_ID_SAVE_SCENARIO_FILE
693  *- - Added experimental functions:
694  *>
695  *- - diguyCharacter::get_nearest_waypoint_index_in_path()
696  *- - diguyCharacter::set_desired_orientation_to_current_orientation()
697  *- - diguyCharacter::check_character_visibility()
698  *<
699  ** \subsubsection v806api Version 8.0.6
700  **
701  *- - Fixed issue where turreted vehicles broadcast angle did not match
702  *- the DIS standard.
703  *- - Added experimental aim functions. These functions are for the new
704  *- DI-Guy version 8 aim algorithm.
705  *>
706  *- - diguyCharacter::set_aim_algorithm()
707  *- - diguyCharacter::get_aim_algorithm()
708  *- - diguyCharacter::set_aim_param_seek_tolerance()
709  *- - diguyCharacter::get_aim_param_seek_tolerance()
710  *- - diguyCharacter::set_aim_param_time_constant()
711  *- - diguyCharacter::get_aim_param_time_constant()
712  *- - diguyCharacter::set_aim_param_time_constant2()
713  *- - diguyCharacter::get_aim_param_time_constant2()
714  *- - diguyCharacter::set_aim_param_reset_time_constant()
715  *- - diguyCharacter::get_aim_param_reset_time_constant()
716  *- - diguyCharacter::set_aim_param_azimuth_acquired_range()
717  *- - diguyCharacter::get_aim_param_azimuth_acquired_range()
718  *- - diguyCharacter::set_aim_param_elevation_acquired_range()
719  *- - diguyCharacter::get_aim_param_elevation_acquired_range()
720  *- - diguyCharacter::set_aim_param_max_per_frame_adj_factor()
721  *- - diguyCharacter::get_aim_param_max_per_frame_adj_factor()
722  *- - diguyCharacter::set_aim_converge_every_frame()
723  *- - diguyCharacter::get_aim_converge_every_frame()
724  *- - diguyCharacter::aim_converge()
725  *<
726  ** \subsubsection v805api Version 8.0.5
727  **
728  *- - Fixed issue with TXP geometry loader. If external textures are
729  *- marked as "Unknown" format, the actual format is now derived from
730  *- the filename extension in the case of .rgb, .rgba, .int, and .inta
731  *- texture files.
732  **
733  ** \subsubsection v804api Version 8.0.4
734  **
735  *- - Improved documentation for function diguyScenario::update().
736  *- - Fixed some issues with I-Guy and its use of joystick input. I-Guy
737  *- input for DI-Guy 8 now more closely matches that of previous
738  *- versions.
739  *- - Fixed some issues with muzzle flashes. In particular, muzzle
740  *- flashes were not consistently showing up in DI-Guy Scenario, both
741  *- during initial simulation and during review data playback.
742  *- - DI-Guy now includes a DIGuyLicenseTool application that makes it
743  *- easier to gather the appropriate information needed to request a
744  *- license from Boston Dynamics. This utility program can be run
745  *- during Applications installation, or, after installation is
746  *- complete, from the DI-Guy folder in the Start Menu.
747  *- - Fixed a problem with programming examples that used OpenAL
748  *- with the VC7 static libs (Makefile.vc7_md, for example)
749  *- would crash when an .ogg file was loaded.
750  **
751  ** \subsubsection v803api Version 8.0.3
752  **
753  *- - Fixed some issues with I-Guy:
754  *>
755  *- - Firing the I-Guy's weapon now correctly uses the trajectory
756  *- to the crosshair, instead of along the weapon barrel.
757  *- - Keyboard control of looking up and down now possible; use
758  *- 'Page Up' and 'Page Down' keys.
759  *<
760  *- - Fixed problem with networked characters climbing hills.
761  *- - Fixed problem with networked characters transitioning too quickly.
762  *- - Added Visual Studio 7.1 solution for diguy_ogl/simple_playback
763  *- example.
764  *- - Fixed issue with diguyCharacter::stop_all_sounds() and
765  *- diguyScenario::stop_all_sounds() not saving history events.
766  **
767  ** \subsubsection v802api Version 8.0.2
768  **
769  *- - Fixed problem with some textures not loading properly.
770  *- - Fixed problem with DirectX examples not shutting down cleanly
771  *- if there is a license problem.
772  **
773  ** \subsubsection v801api Version 8.0.1
774  **
775  *- - Fixed issues with temporary characters not always being destroyed.
776  *- - Fixed issues with temporary characters showing up in review
777  *- playback.
778  *- - Fixed issues with appearance effects being recycled properly.
779  *- - Fixed problem with eyes not participating in gazing.
780  *- - Rework of many examples in the programming_examples directory.
781  *- Some new examples added, some older ones removed.
782  *- - Added README.txt files to diguy_plugin examples that better describe
783  *- what the examples show, and how to use them in DI-Guy Scenario.
784  **
785  ** \subsubsection v800api Version 8.0.0
786  **
787  *- - Initial 8.0 release candidate.
788  *- - Setting of tin (T In) and tout (T Out) calls for characters have
789  *- been tightened up. For example, a character's tin can no longer
790  *- be set to before the current scenario t. It could be before, but
791  *- would cause potential problems. Warning messages are printed to
792  *- the log when improper tin or tout times are attempted.
793  **
794  ** \subsubsection v7120api Version 7.1.20
795  **
796  *- - Added new diguySignal and diguyScenario functions:
797  *>
798  *- - diguySignal::set_info_text()
799  *- - diguySignal::get_info_text()
800  *- - diguyScenario::signal_palette_show_all()
801  *- - diguyScenario::signal_palette_hide_all()
802  *<
803  *- - The signal info_text field allows signals to be tagged in the DI-Guy
804  *- Scenario Signal Palette with text different than the signal name.
805  *- The new show all and hide all functions take an optional filter
806  *- that can be used to make the operation work on a subset of the
807  *- signals.
808  **
809  ** \subsubsection v7119api Version 7.1.19
810  **
811  *- - Fixed problem with vehicle_wheels character in which first frame
812  *- of playback had wheels in incorrect position.
813  *- - Improved documentation for diguyCharacter Performance Functions.
814  *- - Improved documentation for diguyCharacter functions that
815  *- deal with enabling and disabling characters in various ways.
816  *- - Added functions:
817  *>
818  *- - diguyLoadManager::set_zone_all_blends_disabled()
819  *- - diguyLoadManager::get_zone_all_blends_disabled()
820  *- - diguyLoadManager::set_zone_shape_switches_disabled()
821  *- - diguyLoadManager::get_zone_shape_switches_disabled()
822  *- - diguyLoadManager::set_zone_shape_callbacks_disabled()
823  *- - diguyLoadManager::get_zone_shape_callbacks_disabled()
824  *- - diguyLoadManager::set_zone_graphics_api_shape_update_disabled()
825  *- - diguyLoadManager::get_zone_graphics_api_shape_update_disabled()
826  *- - diguyCharacter::get_is_active()
827  *- - diguyCharacter::set_invisible_flag()
828  *- - diguyCharacter::get_invisible_flag()
829  *<
830  *- - Added function diguyCharacterGroup::get_is_network_paused(), and
831  *- deprecated function diguyCharacterGroup::get_paused()
832  *- - Added function diguyCharacterGroup::get_visible(), and
833  *- deprecated function diguyCharacterGroup::get_is_drawn()
834  *- - Made the following functions callable from decisions:
835  *>
836  *- - diguyCharacter::get_is_network_paused()
837  *- - diguyCharacter::get_is_network_published()
838  *- - diguyCharacter::get_is_network_reflected()
839  *<
840  ** \subsubsection v718api Version 7.1.18
841  **
842  *- - Added functions:
843  *>
844  *- - diguy_extract_translation_and_euler_angles_from_matrix()
845  *- - diguy_create_matrix_from_translation_and_euler_angles()
846  *- - diguyCharacter::set_appearance()
847  *- - diguyCharacter::get_aim_is_possible()
848  *<
849  *- - Changed the name of several experimental functions:
850  *>
851  *- - diguyCharacter::start_appearance_effect() -> diguyCharacter::begin_appearance_effect()
852  *- - diguyCharacter::stop_appearance_effect() -> diguyCharacter::end_appearance_effect()
853  *<
854  *- - The following experimental functions were promoted to
855  *- official API status:
856  *>
857  *- - diguyScenario::create_temporary_character()
858  *- - diguyScenario::send_character_to_recycle_bin()
859  *- - diguyScenario::retrieve_character_from_recycle_bin()
860  *- - diguyScenario::set_playback_mode()
861  *- - diguyScenario::set_playback_mode_stop()
862  *- - diguyScenario::set_playback_mode_play()
863  *- - diguyCharacter::get_is_temporary()
864  *- - diguyCharacter::translate_all_paths()
865  *- - diguyCharacter::rotate_all_paths_about_point()
866  *- - diguyCharacter::rotate_all_paths_about_current_waypoint()
867  *- - diguyCharacter::manually_invoke_event_handler()
868  *<
869  *- - The ability to change the tin ("T In") time of a scenario has been
870  *- removed. THIS CHANGE WILL AFFECT SCENARIOS THAT USED THIS
871  *- FUNCTIONALITY. Setting the tin of a scenario to anything other than
872  *- 0 has always had unintended side-effects for DI-Guy, which is why
873  *- this capability has been removed. The functions
874  *- diguyScenario::set_tin() and diguyScenario::get_tin() are now
875  *- deprecated as a result. (Note that diguyCharacter::set_tin()
876  *- has not been changed.)
877  **
878  ** \subsubsection v7116api Version 7.1.16
879  **
880  *- - Added the following functions:
881  *>
882  *- - diguyCharacter::set_initial_up_vector()
883  *- - diguyCharacter::get_initial_up_vector()
884  *- - diguyCharacter::get_up_vector()
885  *<
886  ** \subsubsection v7114api Version 7.1.14
887  **
888  *- - Fixed issues with scenario merging. Chain settings and particle
889  *- systems in particular did not merge well.
890  **
891  ** \subsubsection v7113api Version 7.1.13
892  **
893  *- - The following experimental functions were promoted to
894  *- official API status:
895  *>
896  *- - diguyCharacter::set_minimum_cpl()
897  *- - diguyCharacter::get_minimum_cpl()
898  *- - diguyCharacter::get_maximum_possible_current_cpl()
899  *- - diguyCharacter::maximize_current_cpl()
900  *- - diguyCharacter::set_automatic_cpl_switching_enabled()
901  *- - diguyCharacter::get_automatic_cpl_switching_enabled()
902  *- - diguyCharacter::set_current_cpl()
903  *- - diguyCharacter::get_current_cpl()
904  *- - diguyCharacter::set_position_accumulation_disabled()
905  *- - diguyCharacter::get_position_accumulation_disabled()
906  *- - diguyCharacter::set_all_blends_disabled()
907  *- - diguyCharacter::get_all_blends_disabled()
908  *- - diguyCharacter::set_shape_switches_disabled()
909  *- - diguyCharacter::get_shape_switches_disabled()
910  *- - diguyCharacter::set_shape_callbacks_disabled()
911  *- - diguyCharacter::get_shape_callbacks_disabled()
912  *- - diguyCharacter::set_graphics_api_shape_update_disabled()
913  *- - diguyCharacter::get_graphics_api_shape_update_disabled()
914  *- - diguyCharacter::optimized_update()
915  *- - diguyCharacter::get_is_recycled()
916  *- - diguyCharacter::get_last_impact_record()
917  *- - diguyCharacter::get_last_impact_number()
918  *- - diguyCharacter::get_last_impact_been_processed()
919  *- - diguyCharacter::set_last_impact_been_processed()
920  *- - diguyCharacter::get_last_impact_link()
921  *- - diguyCharacter::get_last_impact_link_is()
922  *- - diguyCharacter::set_weapon_projectile_is_visible()
923  *- - diguyCharacter::get_weapon_projectile_is_visible()
924  *- - diguyCharacter::start_appearance_effect()
925  *- - diguyCharacter::stop_appearance_effect()
926  *- - diguyApp::set_precompute_quaternions_enabled()
927  *- - diguyApp::get_precompute_quaternions_enabled()
928  *- - diguyApp::set_num_rendering_passes()
929  *- - diguyApp::get_num_rendering_passes()
930  *<
931  *- - The following deprecated functions were removed:
932  *>
933  *- - diguyApp::set_use_varsets_enabled()
934  *- - diguyApp::get_use_varsets_enabled()
935  *- - diguyCharacterGroup::set_all_members_t()
936  *<
937  ** \subsubsection v712api Version 7.1.12
938  **
939  *- - Added new functions to diguyCharacter:
940  *>
941  *- - diguyCharacter::set_position_to_other_character_position()
942  *- - diguyCharacter::set_desired_position_to_current_position()
943  *- - diguyCharacter::set_desired_position_to_waypoint()
944  *- - diguyCharacter::set_desired_position_to_path_waypoint()
945  *- - diguyCharacter::set_desired_position_to_path_shape_waypoint()
946  *- - diguyCharacter::find_guide()
947  *<
948  ** \subsubsection v711api Version 7.1.11
949  **
950  *- - The following functions were added to diguySensorRegion that
951  *- make it easier to write callback handlers for sensor regions:
952  *>
953  *- - get_autosense_callback_candidate_entered()
954  *- - get_autosense_callback_candidate_left()
955  *<
956  *- - Characters now fire live rounds by default when
957  *- diguyCharacter::fire_weapon() is called. THIS IS A CHANGE
958  *- FROM PREVIOUS DEFAULT BEHAVIOR.
959  *- The old behavior can be restored in two ways:
960  *>
961  *- - In DI-Guy Scenario, the Weapon Params tab on the Character
962  *- Elements palette has a checkbox called "Weapon Fires Live
963  *- Rounds". The checkbox can be unchecked, followed by pressing
964  *- the "Copy to All Characters" button.
965  *- - In a program using the DI-Guy API, the function
966  *- diguyCharacter::set_weapon_fires_live_rounds() can be called.
967  *<
968  *- - Character Labels Visibility is now set to 'None' in the default
969  *- .dss file.
970  *- - Added function to diguyCharacterGuide:
971  *>
972  *- - diguyCharacterGuide::remove_all_disabled_guides()
973  *<
974  *- - Made the following functions available to Decision Beads and Decision
975  *- Events:
976  *>
977  *- - diguyCharacter::remove_all_guides()
978  *- - diguyCharacter::remove_all_disabled_guides()
979  *<
980  *- - Removed DI-Guy Graphics API programming example
981  *- ogl_examples_high_precision/simple_playback_high_precision.
982  *- Replaced it with streamlined example
983  *- ogl_examples/simple_playback_far_positions.
984  *- - Fixed problem with props/scene objects showing up at origin
985  *- in after-action review.
986  **
987  ** \subsubsection v7110api Version 7.1.10
988  **
989  *- - Fixed a problem with the DI-Guy Graphics API that prevented
990  *- textures on some characters from being correctly bound under
991  *- certain circumstances.
992  **
993  ** \subsubsection v719api Version 7.1.9
994  **
995  *- - The following optional functions were added to plugins:
996  *>
997  *- - void key_press()
998  *- - void key_release()
999  *<
1000  *- - Added diguyIGuyController class for C++ and script control over
1001  *- the I-Guy character.
1002  *- - Setting the dead reckoning time threshold is now done by setting the
1003  *- variable time_threshold in the network.cfg file. The variable
1004  *- tick_period has been deprecated and will no longer have any effect.
1005  *- The default value is 5 seconds.
1006  **
1007  ** \subsubsection v718api Version 7.1.8
1008  **
1009  *- - Added callback and event handling support for scenario variables:
1010  *>
1011  *- - diguyScenario::add_default_variable_callback()
1012  *- - diguyScenario::remove_default_variable_callback()
1013  *- - diguyScenario::remove_default_variable_callback_with_user_data()
1014  *- - diguyScenario::add_default_variable_callback_script()
1015  *- - diguyScenario::remove_default_variable_callback_script()
1016  *- - diguyScenario::register_variable_event_handler()
1017  *- - diguyScenario::register_variable_event_handler_from_library()
1018  *- - diguyScenario::register_variable_event_handler_script()
1019  *- - diguyScenario::has_registered_variable_event_handler()
1020  *- - diguyScenario::unregister_variable_event_handler()
1021  *- - diguyVariable::CALLBACK_ID_VALUE_CHANGED
1022  *- - diguyVariable::add_callback()
1023  *- - diguyVariable::remove_callback()
1024  *- - diguyVariable::remove_callback_with_user_data()
1025  *- - diguyVariable::add_callback_script()
1026  *- - diguyVariable::remove_callback_script()
1027  *- - diguyVariable::map_event_handler_to_callback_id()
1028  *- - diguyVariable::unmap_event_handler_from_callback_id()
1029  *<
1030  ** \subsubsection v717api Version 7.1.7
1031  **
1032  *- - Added parameters polygon_offset_factor and polygon_offset_units
1033  *- to bdiGraphicsInitOgl structure to allow for better control
1034  *- over subface rendering in OpenGL.
1035  *- - Addressed some issues with diguyGraphicsLink and far positions.
1036  **
1037  ** \subsubsection v716api Version 7.1.6
1038  **
1039  *- - Added functions to diguySensorRegion:
1040  *>
1041  *- - diguySensorRegion::contains_character_from_group()
1042  *<
1043  *- - Added experimental functions
1044  *- diguyScenario::create_temporary_character() and
1045  *- diguyCharacter::get_is_temporary(). These functions allow
1046  *- for the creation of 'temporary' characters that are not saved
1047  *- in a .dss file and are recycled on scenario reset. Temporary
1048  *- characters are useful as fired munitions, effects, etc.
1049  *- - Added functions to diguyCharacterGuide:
1050  *>
1051  *- - diguyCharacterGuide::get_position_acquired()
1052  *- - diguyCharacterGuide::get_orientation_acquired()
1053  *<
1054  *- - Added new callbacks to diguyCharacter:
1055  *>
1056  *- - diguyCharacter::CALLBACK_ID_GUIDE_POSITION_ACQUIRED
1057  *- - diguyCharacter::CALLBACK_ID_GUIDE_POSITION_UNACQUIRED
1058  *- - diguyCharacter::CALLBACK_ID_GUIDE_ORIENTATION_ACQUIRED
1059  *- - diguyCharacter::CALLBACK_ID_GUIDE_ORIENTATION_UNACQUIRED
1060  *- - diguyCharacter::CALLBACK_ID_CURRENT_TOUT_REACHED
1061  *<
1062  *- - Added function diguyCharacter::set_custom_orientation_rx_and_ry().
1063  *- This function allows the roll and pitch components of a
1064  *- character to be set without taking the character off of its
1065  *- current path, if there is one. The character's up vector
1066  *- (as set by diguyCharacter::set_up_vector()) must be 'c'
1067  *- (custom) for these values to have an effect.
1068  *- - Added new distance calculation functions:
1069  *>
1070  *- - diguyCharacter::get_distance_to_character()
1071  *- - diguyCharacter::get_distance_xy_to_character()
1072  *- - diguyCharacter::get_distance_to_path()
1073  *<
1074  *- - Added new experimental functions for locating a nearby character.
1075  *- These functions have a check_visibility argument; if 1, the
1076  *- function will do a simple ray trace against scene object geometry.
1077  *>
1078  *- - diguyCharacter::get_nearest_active_character()
1079  *- - diguyCharacter::get_nearest_active_character_in_group()
1080  *<
1081  *- - Added diguySensorRegion::contains_character_by_type()
1082  *- - Added diguyCharacter::force_local_path() new function that
1083  *- can grab a preexisting path. copy and transform it into the
1084  *- local space of the character and switch to it.
1085  *- - Removed function diguy_dis_get_action_from_entity_state() from
1086  *- diguy_module_dis.h. diguyCharacter::get_action_from_entity_state()
1087  *- should be called instead to map DIS values to an action.
1088  **
1089  ** \subsubsection v715api Version 7.1.5
1090  **
1091  *- - Added experimental transformation functions for paths:
1092  *>
1093  *- - diguyCharacterPath::translate()
1094  *- - diguyCharacterPath::rotate_about_point()
1095  *- - diguyPathShape::translate()
1096  *- - diguyPathShape::rotate_about_point()
1097  *<
1098  *- - Added experimental performance tuning functions:
1099  *>
1100  *- - diguyScenario::send_character_to_recycle_bin()
1101  *- - diguyScenario::retrieve_character_from_recycle_bin()
1102  *<
1103  *- - Deprecated experimental performance tuning functions:
1104  *>
1105  *- - diguyApp::set_use_varsets_enabled()
1106  *- - diguyApp::get_use_varsets_enabled()
1107  *<
1108  ** \subsubsection v714api Version 7.1.4
1109  **
1110  *- - Added function diguyCharacterPath::get_path_shape(), that
1111  *- provides access to a path's underlying path shape.
1112  *- - Added functions diguyCharacter::get_nearest_active_character()
1113  *- and diguyCharacter::get_nearest_active_character_in_group().
1114  *- These functions will walk through either all characters or all
1115  *- characters in a group, and return the nearest character that is
1116  *- both alive and enabled. An optional argument specifies whether
1117  *- to skip characters that are invisible to the caller because a
1118  *- scene object is in the way.
1119  *- - Added convenience functions diguyCharacter::get_distance() and
1120  *- diguyCharacter::get_distance_xy() for getting the distance
1121  *- between two characters.
1122  **
1123  ** \subsubsection v713api Version 7.1.3
1124  **
1125  *- - Deprecated diguyChainSimulation::set_connection_character()
1126  *- function. Replaced with
1127  *- diguyChainSimulation::set_chain_mass_connection_character().
1128  *- - Added ability to set all chain mass positions in the
1129  *- call diguyChainSimulation::set_chain_mass_position()
1130  *- by passing -1 for the chain_mass_index.
1131  *- - Added ability to fix all chain mass positions in the
1132  *- call diguyChainSimulation::set_chain_mass_position_is_fixed()
1133  *- by passing -1 for the chain_mass_index.
1134  *- - Added aiming ability for characters with turrets.
1135  *- - Fixed problems with debug versions of programming examples
1136  *- that caused heap corruption on some Windows systems.
1137  **
1138  ** \subsubsection v712api Version 7.1.2
1139  **
1140  *- - Added new callback to diguyCharacter:
1141  *>
1142  *- - diguyCharacter::CALLBACK_ID_DESIRED_ACTION_REACHED
1143  *<
1144  ** \subsubsection v711api Version 7.1.1
1145  **
1146  *- - Added a new experimental character type called "chain_simulation"
1147  *- that can do realtime simulation of chains, ropes, and hoses.
1148  *- The appearance of the chain_simulation character determines its
1149  *- simulation settings. Chain simulation settings are created and
1150  *- on the DI-Guy Scenario Chain Sim Settings page, or via the
1151  *- diguyChainSettings class. Runtime parameters of the chain
1152  *- simulation are set by obtaining a diguyChainSimulation object
1153  *- via the diguyCharacter::get_chain_simulation() call.
1154  *- - Fixed issues with diguyCharacter::set_current_appearance().
1155  *- 0 was returned even if appearance change failed; not correctly
1156  *- returns -1 on failure.
1157  *- - Added new experimental functions to event bead classes. These
1158  *- functions make it possible to specify that event beads should
1159  *- begin and/or when a specific action bead or waypoint is reached.
1160  *- Members are:
1161  *>
1162  *- - diguyCharacterPathAimBead::get_begin_at_object_name()
1163  *- - diguyCharacterPathAimBead::set_begin_at_object_name()
1164  *- - diguyCharacterPathAimBead::get_end_at_object_name()
1165  *- - diguyCharacterPathAimBead::set_end_at_object_name()
1166  *- - diguyCharacterPathDecisionBead::get_begin_at_object_name()
1167  *- - diguyCharacterPathDecisionBead::set_begin_at_object_name()
1168  *- - diguyCharacterPathDecisionBead::get_end_at_object_name()
1169  *- - diguyCharacterPathDecisionBead::set_end_at_object_name()
1170  *- - diguyCharacterPathGazeBead::get_begin_at_object_name()
1171  *- - diguyCharacterPathGazeBead::set_begin_at_object_name()
1172  *- - diguyCharacterPathGazeBead::get_end_at_object_name()
1173  *- - diguyCharacterPathGazeBead::set_end_at_object_name()
1174  *- - diguyCharacterPathScriptBead::get_begin_at_object_name()
1175  *- - diguyCharacterPathScriptBead::set_begin_at_object_name()
1176  *- - diguyCharacterPathScriptBead::get_end_at_object_name()
1177  *- - diguyCharacterPathScriptBead::set_end_at_object_name()
1178  *<
1179  *- - Function diguyApp::load_plugin() has three new optional arguments:
1180  *- required_by_scenario, unload_on_scenario_close, and
1181  *- accepts_mouse_input.
1182  *- - Added functions to diguyImpact:
1183  *>
1184  *- - diguyImpact::get_location_in_link_coordinates()
1185  *<
1186  *- - Added functions to diguyScenario:
1187  *>
1188  *- - diguyScenario::get_impact_at_screen_coords()
1189  *<
1190  *- - Added functions to diguyCharacter:
1191  *>
1192  *- - diguyCharacter::set_label_text_shadow_color()
1193  *- - diguyCharacter::get_label_text_shadow_color()
1194  *- - diguyCharacter::set_label_text_shadow_is_visible()
1195  *- - diguyCharacter::get_label_text_shadow_is_visible()
1196  *<
1197  *- - Character label information is now saved in the scenario
1198  *- file and restored when the scenario is loaded.
1199  **
1200  ** \subsubsection v710api Version 7.1.0
1201  **
1202  *- - Added function diguy_get_app(), a cleaner function for
1203  *- retrieving the diguyApp object than diguyApp::get_app().
1204  *- - Added experimental transformation functions for paths:
1205  *>
1206  *- - diguyCharacter::translate_all_paths()
1207  *- - diguyCharacter::rotate_all_paths_about_point()
1208  *- - diguyCharacter::rotate_all_paths_about_current_waypoint()
1209  *- - diguyCharacterGroup::translate_all_paths()
1210  *- - diguyCharacterGroup::rotate_all_paths_about_point()
1211  *- - diguyCharacterGroup::rotate_all_paths_about_current_waypoint()
1212  *<
1213  *- - Added functions diguyApp::get_diguy_base_dir() and
1214  *- diguyApp::get_diguy_subdir().
1215  *- - Added diguyCharacter::get_parent() function.
1216  *- - Added diguyViewLight::set_shadowmap_size() and
1217  *- diguyViewLight::get_shadowmap_size(); allows setting shadow
1218  *- map resolution.
1219  *- Must be a power of 2.
1220  *- - Made various internal performance enhancements for scenario
1221  *- updates.
1222  *- - Fixed a problem with motion LODs updating all links every
1223  *- now and then, even if the current action hasn't changed.
1224  *- - Made the scenario be able to go past 60000 seconds. Now a
1225  *- scenario tout greater than 60000 seconds is interpreted as
1226  *- unlimited.
1227  *- - Fixed a problem with motion LODs updating too many links.
1228  *- - Made various internal performance enhancements for scenario
1229  *- updates.
1230  *- - Added performance tuning functions:
1231  *>
1232  *- - diguyCharacter::set_automatic_cpl_switching_enabled()
1233  *- - diguyCharacter::get_automatic_cpl_switching_enabled()
1234  *- - diguyCharacter::set_minimum_cpl()
1235  *- - diguyCharacter::get_minimum_cpl()
1236  *- - diguyCharacter::get_maximum_possible_current_cpl()
1237  *- - diguyCharacter::maximize_current_cpl()
1238  *- - diguyCharacter::get_current_cpl()
1239  *- - diguyCharacter::set_position_accumulation_disabled()
1240  *- - diguyCharacter::get_position_accumulation_disabled()
1241  *- - diguyCharacter::set_all_blends_disabled()
1242  *- - diguyCharacter::get_all_blends_disabled()
1243  *- - diguyCharacter::set_shape_switches_disabled()
1244  *- - diguyCharacter::get_shape_switches_disabled()
1245  *- - diguyCharacter::set_shape_callbacks_disabled()
1246  *- - diguyCharacter::get_shape_callbacks_disabled()
1247  *- - diguyCharacter::set_graphics_api_shape_update_disabled()
1248  *- - diguyCharacter::get_graphics_api_shape_update_disabled()
1249  *- - diguyCharacter::optimized_update()
1250  *- - diguyScenario::optimized_update()
1251  *- - diguyScenario::send_character_to_recycle_bin()
1252  *- - diguyScenario::retrieve_character_from_recycle_bin()
1253  *- - diguyGraphicsLink::get_data_ptr()
1254  *- - diguyGraphicsLink::get_translation_data_index()
1255  *- - diguyGraphicsLink::get_rotation_data_index()
1256  *- - diguyGraphicsLink::get_scale_data_index()
1257  *- - diguyGraphicsLink::get_quat_data_ptr()
1258  *- - diguyGraphicsLink::get_quat_data_index()
1259  *- - diguyApp::set_use_varsets_enabled()
1260  *- - diguyApp::get_use_varsets_enabled()
1261  *- - diguyApp::set_precompute_quaternions_enabled()
1262  *- - diguyApp::get_precompute_quaternions_enabled()
1263  *<
1264  ** \subsubsection v709api Version 7.0.9
1265  **
1266  *- - Rewrote portions of network mapping code, custom pdus/specialized
1267  *- motions will now work with more characters.
1268  *- This requires a new version of data, but any character that has
1269  *- been properly tagged with variants and postures should transmit
1270  *- better.
1271  *- - Rewrote speed code, networked characters should scale speed to
1272  *- try and match packets that are coming in.
1273  **
1274  ** \subsubsection v708api Version 7.0.8
1275  **
1276  *- - Trying to get the position of a invalid link will behave a bit
1277  *- better.
1278  **
1279  ** \subsubsection v706api Version 7.0.6
1280  **
1281  *- - Creating a path when a character has none will properly set
1282  *- the initial path name.
1283  **
1284  ** \subsubsection v705api Version 7.0.5
1285  **
1286  *- - Fixed a crash that sometimes happened while reading comments
1287  *- out of texture .attr files.
1288  **
1289  ** \subsubsection v703api Version 7.0.3
1290  **
1291  *- - Fixed a problem with the diguyGraphicsShape::update() function not
1292  *- always being called.
1293  *- - Fixed various bugs with VR-Link and DI-Guy time sync code.
1294  *- - Added warning if diguyCharacter::set_desired_action() is called
1295  *- with 0.0f as the speed.
1296  **
1297  ** \subsubsection v702 Version 7.0.2
1298  **
1299  *- - Fixed a problem with gazing and aiming not zeroing in on the
1300  *- correct positions when using DI-Guy for Vega.
1301  **
1302  ** \subsubsection v701 Version 7.0.1
1303  **
1304  *- - Deprecated "named_callback" functions in diguyApp. Event handler
1305  *- functions should be used instead.
1306  *- - Renamed some diguyViewCamera functions:
1307  *>
1308  *- - diguyViewCamera::get_world_offset_position() has become
1309  *- diguyViewCamera::get_segment_origin()
1310  *- - diguyViewCamera::get_local_position() has become
1311  *- diguyViewCamera::get_position_segment_offset()
1312  *- - diguyViewCamera::get_local_fix() has become
1313  *- diguyViewCamera::get_fix_segment_offset()
1314  *<
1315  *- - Added function diguyCharacterGroup::update_all_members(), and
1316  *- deprecated function diguyCharacterGroup::set_all_members_t()
1317  *- - Fixed problem with deleting one scenario and creating another
1318  *- causing a crash.
1319  *- - Fixed crash problem with function diguy_set_cfg_file().
1320  *- - Changed the default settings of automatic switching of graphics
1321  *- LODs and motion LODs, as set by
1322  *- diguyScenario::set_automatic_graphics_lod_switching() and
1323  *- diguyScenario::set_automatic_motion_lod_switching(). Previously
1324  *- automatic LOD switching was always enabled unless explicitly
1325  *- disabled by calling the above functions. Now automatic LOD
1326  *- switching will be disabled by default in DI-Guy API applications,
1327  *- but remain enabled by default in DI-Guy Scenario.
1328  *- - Added the following functions for adding and removing appearances:
1329  *>
1330  *- - diguyScenario::add_appearance()
1331  *- - diguyScenario::add_appearance_based_on_existing_appearance()
1332  *- - diguyScenario::remove_appearance()
1333  *<
1334  *- - diguyScenario::add_custom_appearance() deprecated;
1335  *- use diguyScenario::add_appearance().
1336  *- - diguyScenario::add_custom_appearance_based_on_existing_appearance()
1337  *- deprecated; use
1338  *- diguyScenario::add_appearance_based_on_existing_appearance().
1339  *- - Promoted the following functions from experimental to
1340  *- official status:
1341  *>
1342  *- - diguyCharacter::get_label_text()
1343  *- - diguyCharacter::set_label_text()
1344  *- - diguyCharacter::get_label_is_visible()
1345  *- - diguyCharacter::set_label_is_visible()
1346  *- - diguyCharacter::set_label_text_color()
1347  *- - diguyCharacter::get_label_text_color()
1348  *- - diguyCharacter::set_label_background_color()
1349  *- - diguyCharacter::get_label_background_color()
1350  *<
1351  *- - Removed diguyLoadManager camera functions (load manager camera
1352  *- now always tracks the scenario's primary view camera):
1353  *>
1354  *- - diguyLoadManager::add_camera()
1355  *- - diguyLoadManager::add_view_camera()
1356  *- - diguyLoadManager::move_camera()
1357  *- - diguyLoadManager::change_view_camera_settings()
1358  *- - diguyLoadManager::remove_camera()
1359  *- - diguyLoadManager::remove_all_cameras()
1360  *<
1361  ** \subsubsection v700 Version 7.0.0
1362  **
1363  *- - Fixed problem with diguyCharacter::set_speed(). The set speed
1364  *- was being reset to the action's default speed after a short time,
1365  *- which is not correct behavior.
1366  *- - Changed values returned by diguyCharacter::get_aim_azimuth()
1367  *- and diguyCharacter::get_aim_elevation() to be character-
1368  *- relative rather than world-relative.
1369  **
1370  ** \subsubsection v6110 Version 6.1.10
1371  **
1372  *- - Fixed event propagation bug when event tout is -1 and scenario
1373  *- tout is changed.
1374  *- - Added optional actor argument to
1375  *- diguyScenario::add_custom_appearance() function. This
1376  *- fixes a problem with characters not being able to switch
1377  *- to custom appearances with
1378  *- diguyCharacter::set_current_appearance() because of actors
1379  *- being different.
1380  *- - Added simple_playback_high_precision and view_far_position that
1381  *- demonstrate off the use of high precision position values.
1382  **
1383  ** \subsubsection v619 Version 6.1.9
1384  **
1385  *- - Fixed problem with various diguyWaypoint "get" functions
1386  *- that return angles (e.g., diguyWaypoint::get_yaw_in());
1387  *- they weren't properly returning angles in degrees.
1388  *- - Fixed problem with merging scenarios: merged waypoints at
1389  *- the origin were not being rotated correctly.
1390  *- - Fixed problem with config file appearance syntax. The
1391  *- item "shapeset:shape" format caused a crash; it now works
1392  *- again.
1393  *- - Fixed problems with required plug-in list not saving or
1394  *- resetting properly.
1395  **
1396  ** \subsubsection v618 Version 6.1.8
1397  **
1398  *- - Far positions rendering are now off by default, though
1399  *- DI-Guy Scenario and DI-Guy Scenario UI V6 turn them on.
1400  *- Practically this means that while internally things are
1401  *- done at a higher precision format, the render camera being
1402  *- in local space will be a change that needs to be explicitly
1403  *- asked for.
1404  *- - Added the following functions for controlling far position
1405  *- state:
1406  *>
1407  *- - diguy_ogl_get_use_far_positions()
1408  *- - diguy_ogl_set_use_far_positions()
1409  *- - diguy_graphics_get_use_far_positions()
1410  *- - diguy_graphics_set_use_far_positions()
1411  *<
1412  *- - Added accessors for setting character and scene object culling
1413  *- on/off.
1414  *>
1415  *- - diguyScenario::set_character_culling_enabled()
1416  *- - diguyScenario::get_character_culling_enabled()
1417  *- - diguyScenario::set_scene_object_culling_enabled()
1418  *- - diguyScenario::get_scene_object_culling_enabled()
1419  *<
1420  *- - Added accessors for setting character and scene object bounding
1421  *- volume visualization on/off. (only works for OpenGL)
1422  *>
1423  *- - diguyScenario::set_character_visualize_bounds_enabled()
1424  *- - diguyScenario::get_character_visualize_bounds_enabled()
1425  *- - diguyScenario::set_scene_object_visualize_bounds_enabled()
1426  *- - diguyScenario::get_scene_object_visualize_bounds_enabled()
1427  *<
1428  *- - Fixed a bug with diguyCharacter::set_current_appearance().
1429  *- - Added warning message if a proposed appearance change is null;
1430  *- fixes crash bug.
1431  *- - diguyScenario::trigger_script_event() deprecated;
1432  *- use diguyScenario::trigger_script().
1433  *- - Added function diguyScenario::trigger_decision().
1434  **
1435  ** \subsubsection v617 Version 6.1.7
1436  **
1437  *- - Added new experimental functions. (Experimental
1438  *- functions are typically for probationary features whose final
1439  *- functionality or API has not been fully worked out.)
1440  *>
1441  *- - diguyCharacter::set_weapon_projectile_is_visible()
1442  *- - diguyCharacter::get_weapon_projectile_is_visible()
1443  *- - diguyCharacter::get_label_text()
1444  *- - diguyCharacter::set_label_text()
1445  *- - diguyCharacter::get_label_is_visible()
1446  *- - diguyCharacter::set_label_is_visible()
1447  *- - diguyCharacter::set_label_text_color()
1448  *- - diguyCharacter::get_label_text_color()
1449  *- - diguyCharacter::set_label_background_color()
1450  *- - diguyCharacter::get_label_background_color()
1451  *- - diguyScenario::find_character_at_screen_coords()
1452  *- - diguyScenario::set_playback_mode()
1453  *- - diguyScenario::set_playback_mode_stop()
1454  *- - diguyScenario::set_playback_mode_play()
1455  *<
1456  *- - Removed the function diguyLoadManager::set_enable_culling().
1457  *- - Added optional arguments initial_posture and initial_variant
1458  *- to diguyScenario::set_iguy_character().
1459  *- - Added function diguyScenario::get_time_of_day().
1460  *- - Fixed bug in diguyCharacter::is_speaking(). It was
1461  *- sometimes improperly returning FALSE.
1462  *- - Added the following functions that control whether the scenario
1463  *- will be reset (as if diguyScenario::reset() were called) when
1464  *- a merge happens:
1465  *>
1466  *- - diguyScenarioMergeSettings::set_reset_flag()
1467  *- - diguyScenarioMergeSettings::get_reset_flag()
1468  *<
1469  *- - Now incoming XC_MERGE_SCENARIO PDUs do not cause the running
1470  *- scenario to stop and reset.
1471  *- - Now incoming XC_MERGE_SCENARIO PDUs cause a
1472  *- XC_MERGE_SCENARIO_COMPLETE PDU to be sent when the merge
1473  *- operation is done.
1474  *- - Now incoming XC_LOAD_SCENARIO PDUs cause a
1475  *- XC_LOAD_SCENARIO_COMPLETE PDU to be sent when the load
1476  *- operation is complete.
1477  *- - Added the following functions:
1478  *>
1479  *- - diguyExerciseInterface::send_pdu_xc_eval_script()
1480  *- - diguyExerciseInterface::send_pdu_xc_time_now()
1481  *<
1482  *- - Now incoming XC_TIME_NOW messages cause the scenario to chase
1483  *- sync.
1484  *- - Now incoming XC_EVAL_SCRIPT messages cause the script therein
1485  *- to be evaluated.
1486  *- - diguyScenario::load() has been changed to not accept .flt
1487  *- filenames. The new function diguyScenario::create_scene_object()
1488  *- should be used instead.
1489  *- - Added the following functions:
1490  *>
1491  *- - diguyScenario::create_scene_object()
1492  *- - diguyScenario::destroy_scene_object()
1493  *<
1494  *- - Fixed problem with DX99 version of the library that prevented
1495  *- gazing from working correctly.
1496  *- - Added better detection of and error message for missing
1497  *- DI-Guy Data installation.
1498  *- - Renamed experimental "shot" class, function names, and
1499  *- callback ids to use the more generic term "impact":
1500  *>
1501  *- - diguyShot
1502  *>
1503  *- - diguyShot (class name) -> diguyImpact
1504  *- - get_shooter_name() -> get_attacker_name()
1505  *- - get_shooter() -> get_attacker()
1506  *- - get_shot_number() -> get_impact_number()
1507  *- - set_shot_number() -> set_impact_number()
1508  *- - get_shot_been_processed() -> get_impact_been_processed()
1509  *- - set_shot_been_processed() -> set_impact_been_processed()
1510  *<
1511  *- - diguyCharacter
1512  *>
1513  *- - CALLBACK_ID_GOT_SHOT -> CALLBACK_ID_IMPACT
1514  *- - CALLBACK_ID_SHOT_SUCCESS -> CALLBACK_ID_FIRE_WEAPON_SUCCESS
1515  *- - get_last_shot_record() -> get_last_impact_record()
1516  *- - get_last_shot_number() -> get_last_impact_number()
1517  *- - get_last_shot_been_processed() -> get_last_impact_been_processed()
1518  *- - set_last_shot_been_processed() -> set_last_impact_been_processed()
1519  *- - get_last_shot_link() -> get_last_impact_link()
1520  *- - get_last_shot_link_is() -> get_last_impact_link_is()
1521  *- - set_max_shot_hits() -> set_max_impact_hits()
1522  *<
1523  *- - diguyScenario
1524  *>
1525  *- - CALLBACK_ID_ENVIRONMENTAL_DETONATION -> CALLBACK_ID_SCENE_OBJECT_IMPACT
1526  *- - get_last_env_shot_info() -> get_last_env_impact_info()
1527  *<
1528  *<
1529  *- - Added function diguyExerciseInterface::send_pdu_xc_time_now().
1530  *- - Added code to properly respond to incoming XC_TIME_NOW PDUs.
1531  **
1532  ** \subsubsection v616 Version 6.1.6
1533  **
1534  *- - Added functions and diguyExerciseInterface class for
1535  *- enhanced networking support:
1536  *>
1537  *- - diguyApp::get_exercise_interface()
1538  *- - diguyExerciseInterface::send_pdu_xc_load_scenario()
1539  *- - diguyExerciseInterface::send_pdu_xc_merge_scenario()
1540  *- - diguyExerciseInterface::send_pdu_xc_trigger_script()
1541  *- - diguyExerciseInterface::send_pdu_xc_control()
1542  *- - diguyScenario::set_tin_time_of_day()
1543  *- - diguyScenario::get_tin_time_of_day()
1544  *<
1545  *- - Added new functions diguyView::get_width() and
1546  *- diguyView::get_height().
1547  *- - Experimental plugin infrastructure has been reworked a fair amount.
1548  *>
1549  *- - Function diguyScenario::add_plugin() has been changed to
1550  *- diguyApp::load_plugin().
1551  *- - Function diguyScenario::remove_plugin() has been changed to
1552  *- diguyApp::unload_plugin().
1553  *- - The following functions will be imported when a plugin
1554  *- is loaded. Note that not only diguy_version() must be
1555  *- implemented:
1556  *>
1557  *- - void diguy_version(int* version_major, int* version_minor, int* version_point)
1558  *- - void initialize_plugin(diguyApp* app)
1559  *- - void deinitialize_plugin(diguyApp* app)
1560  *- - void initialize(diguyScenario* s)
1561  *- - void deinitialize(diguyScenario* s)
1562  *- - void pre_update(diguyScenario* s)
1563  *- - void post_update(diguyScenario* s)
1564  *- - void pre_draw(diguyScenario* s)
1565  *- - void post_draw(diguyScenario* s)
1566  *- - void reset(diguyScenario* s)
1567  *- - diguyPluginMouseCursor get_mouse_cursor(diguyScenario* s)
1568  *- - void mouse_press(diguyScenario* s, diguyPluginMouseEvent* mouse_event)
1569  *- - void mouse_drag(diguyScenario* s, diguyPluginMouseEvent* mouse_event)
1570  *- - void mouse_release(diguyScenario* s, diguyPluginMouseEvent* mouse_event)
1571  *- - void mouse_move(diguyScenario* s, diguyPluginMouseEvent* mouse_event)
1572  *- - void save_review_data(diguyScenario* s, const char* filename)
1573  *- - void load_review_data(diguyScenario* s, const char* filename)
1574  *<
1575  *<
1576  *- - Added an additional argument, merge_settings, to the
1577  *- diguyScenario::merge() function.
1578  *- - Added the following functions to enable better control of
1579  *- merging scenarios:
1580  *>
1581  *- - diguyScenario::create_merge_settings()
1582  *- - diguyScenario::destroy_merge_settings()
1583  *<
1584  *- - Added the following functions:
1585  *>
1586  *- - diguyCharacter::revive_now()
1587  *<
1588  *- - Added the following functions in support of 3D positional sound:
1589  *>
1590  *- - diguyCharacter::set_default_weapon_sound()
1591  *- - diguyCharacter::get_default_weapon_sound()
1592  *- - diguyCharacter::set_default_weapon_sound_gain()
1593  *- - diguyCharacter::get_default_weapon_sound_gain()
1594  *- - diguyCharacter::play_3d_sound()
1595  *- - diguySoundInstance::set_is_3d_sound_flag()
1596  *- - diguySoundInstance::get_is_3d_sound_flag()
1597  *<
1598  *- - Added new optional argument "gain" to diguyCharacter::play_sound()
1599  *- function.
1600  *- - Made following functions available to Decision Beads and Decision
1601  *- Events:
1602  *>
1603  *- - diguyCharacter::aim_at_character()
1604  *- - diguyCharacter::end_aim()
1605  *- - diguyCharacter::end_gaze()
1606  *- - diguyCharacter::end_lpoint()
1607  *- - diguyCharacter::gaze_at_character()
1608  *- - diguyCharacter::lpoint_at_character()
1609  *- - diguyCharacter::resume_interrupted_path()
1610  *- - diguyCharacter::play_3d_sound()
1611  *<
1612  *- - Removed unused variable "working_directory" from bdiExFaceInit
1613  *- structure. Replaced with variable "placeholder", leaving the
1614  *- option open for future init variables. Calls passing NULL for
1615  *- the bdiExFaceInit structure to diguy_exface_initialize() will
1616  *- not need to change.
1617  *- - Fixed problem with Decision Bead that incorrectly put function
1618  *- variable_less_than_string() in variable query functions instead
1619  *- of character query functions.
1620  *- - Added script_type argument to diguyScenario::eval_script() and
1621  *- diguyScenario::eval_script_file() functions.
1622  **
1623  ** \subsubsection v615 Version 6.1.5
1624  **
1625  *- - Fixed problem that newly created characters were not
1626  *- appearing until the next scenario tick dt boundary was
1627  *- crossed.
1628  *- - diguyCharacter::set_t() deprecated;
1629  *- use diguyCharacter::update().
1630  *- - Added new function diguyCharacterPath::get_length().
1631  *- - Fixed potential crash from call to function
1632  *- diguyCharacterPath::update().
1633  *- - Character positions now stored in higher precision format.
1634  *>
1635  *- - Added new functions:
1636  *>
1637  *- - diguyCharacter::set_position_double()
1638  *- - diguyCharacter::get_position_double()
1639  *- - diguyCharacter::get_link_position_double()
1640  *- - diguyCharacter::get_link_position_with_offset_double()
1641  *- - diguyGraphicsLink::get_translation_double()
1642  *- - diguyViewCamera::get_position_double()
1643  *<
1644  *- - New local space camera. DI-Guy can now render in the local
1645  *- space of the camera. This allows DI-Guy to avoid putting
1646  *- large values on the rendering stack, avoiding numerical
1647  *- imprecision on objects that are far from the origin.
1648  *- - Added new local space camera functions:
1649  *>
1650  *- - diguyScenario::set_render_camera()
1651  *- - diguyViewCamera::get_local_fix()
1652  *- - diguyViewCamera::get_local_position()
1653  **
1654  ** In OpenGL, use gluLookAt(local_position_x, local_position_y,
1655  ** local_position_z, local_fix_x, local_fix_y, local_fix_z,
1656  ** 0.0, 0.0, 1.0); to emulate the DI-Guy camera.
1657  *<
1658  *<
1659  ** \subsubsection v614 Version 6.1.4
1660  **
1661  *- - Added new function diguyGraphicsShape::get_is_hidden().
1662  *- - Added new functions to diguyCharacterGroup class:
1663  *>
1664  *- - diguyCharacterGroup::get_num_members()
1665  *- - diguyCharacterGroup::get_member_at_index()
1666  *<
1667  *- - Added new functions to diguySensorRegion class:
1668  *>
1669  *- - diguySensorRegion::add_characters_in_region_to_group()
1670  *- - diguySensorRegion::add_candidate_characters_in_region_to_group()
1671  *<
1672  *- - Removed unused functions from diguySensorRegion class:
1673  *>
1674  *- - diguySensorRegion::get_characters_in_region()
1675  *- - diguySensorRegion::update_characters_in_region()
1676  *- - diguySensorRegion::update_candidate_characters_in_region()
1677  *<
1678  ** \subsubsection v613 Version 6.1.3
1679  **
1680  *- - Added new utility function diguy_convert_euler_angle_order().
1681  *- This function should help DI-Guy API users convert the DI-Guy
1682  *- standard Euler angle order of ZXY (yaw then roll then pitch)
1683  *- into other Euler angle orders.
1684  *- - Added new argument rampup_interval to function
1685  *- diguyCharacter::add_motion_texture(). This function makes it
1686  *- possible to more smoothly enter a motion texture. Previously
1687  *- the rampup was hard-coded to 0.2 seconds. If the function
1688  *- is to end existing motion textures, it also uses the passed
1689  *- rampup interval as the rampdown interval for ending the
1690  *- existing motion textures.
1691  *- - Fixed annoying error message that was printed when motion textures
1692  *- ended.
1693  *- - Added new variants that can be added to custom motions:
1694  *>
1695  *- - DIGUY_MOTION_VARIANT_MISC0
1696  *- - DIGUY_MOTION_VARIANT_MISC1
1697  *- - DIGUY_MOTION_VARIANT_MISC2
1698  *- - DIGUY_MOTION_VARIANT_MISC3
1699  *- - DIGUY_MOTION_VARIANT_MISC4
1700  *- - DIGUY_MOTION_VARIANT_MISC5
1701  *- - DIGUY_MOTION_VARIANT_MISC6
1702  *- - DIGUY_MOTION_VARIANT_MISC7
1703  *- - DIGUY_MOTION_VARIANT_MISC8
1704  *- - DIGUY_MOTION_VARIANT_MISC9
1705  *<
1706  ** \subsubsection v612 Version 6.1.2
1707  **
1708  *- - Changed win32 programming examples so that when examples are
1709  *- compiled for different versions of LIBC (i586_md_debug as
1710  *- opposed to i586_md, for example), the object files will be
1711  *- placed in separate directories.
1712  *- - Added new function calls that will free memory allocated by
1713  *- the DI-Guy Graphics API loader once platform-specific objects
1714  *- have been created:
1715  *>
1716  *- - diguyGraphicsMaterial::free_loader_memory()
1717  *- - diguyGraphicsMesh::free_loader_memory()
1718  *- - diguyGraphicsState::free_loader_memory()
1719  *- - diguyGraphicsTexture::free_loader_memory()
1720  *<
1721  *- - Fixed a problem with gazing in which a character with orientation
1722  *- change enabled would do an extra shuffle to the left and back
1723  *- again when the character was already facing the gaze angle at
1724  *- gaze start.
1725  *- - Added new side-effects to characters that die, including those
1726  *- for which the diguyCharacter::die_now() function is called:
1727  *>
1728  *- - all aiming is ended
1729  *- - all gazing is ended
1730  *- - all pointing is ended
1731  *- - head nodding and shaking are stopped
1732  *- - all gestures are aborted
1733  *- - all sounds originated by the character are stopped
1734  *<
1735  *- - Added new function call limitations to dead characters. The
1736  *- following function calls will have no effect on dead characters:
1737  *>
1738  *- - diguyCharacter::add_motion_texture()
1739  *- - diguyCharacter::aim_at_angle()
1740  *- - diguyCharacter::aim_at_angle_local()
1741  *- - diguyCharacter::aim_at_character()
1742  *- - diguyCharacter::aim_at_point()
1743  *- - diguyCharacter::aim_at_point_local()
1744  *- - diguyCharacter::create_and_force_bridge_path()
1745  *- - diguyCharacter::execute_gesture()
1746  *- - diguyCharacter::execute_1stage_gesture()
1747  *- - diguyCharacter::execute_2stage_gesture()
1748  *- - diguyCharacter::execute_3stage_gesture()
1749  *- - diguyCharacter::fire_screen_space_bullet()
1750  *- - diguyCharacter::fire_weapon()
1751  *- - diguyCharacter::fire_weapon_n_times()
1752  *- - diguyCharacter::force_action()
1753  *- - diguyCharacter::force_action_and_path_shape()
1754  *- - diguyCharacter::force_action_with_duration()
1755  *- - diguyCharacter::force_partial_path()
1756  *- - diguyCharacter::force_path()
1757  *- - diguyCharacter::gaze_at_angle()
1758  *- - diguyCharacter::gaze_at_angle_local()
1759  *- - diguyCharacter::gaze_at_character()
1760  *- - diguyCharacter::gaze_at_point()
1761  *- - diguyCharacter::gaze_at_point_local()
1762  *- - diguyCharacter::lpoint_at_angle()
1763  *- - diguyCharacter::lpoint_at_angle_local()
1764  *- - diguyCharacter::lpoint_at_character()
1765  *- - diguyCharacter::lpoint_at_point()
1766  *- - diguyCharacter::lpoint_at_point_local()
1767  *- - diguyCharacter::nod_head()
1768  *- - diguyCharacter::play_sound()
1769  *- - diguyCharacter::push_path()
1770  *- - diguyCharacter::resume_interrupted_path()
1771  *- - diguyCharacter::set_aim()
1772  *- - diguyCharacter::set_desired_action()
1773  *- - diguyCharacter::set_nod()
1774  *- - diguyCharacter::shake_head()
1775  *<
1776  *- - Added diguyCharacterPath::get_point_at_distance() function that
1777  *- makes it possible to sample path points. The function is very
1778  *- similar to diguyPathShape::get_point_at_distance().
1779  *- - Changed diguyScenario::create_waypoint() function to take an
1780  *- additional argument. Waypoints created with the function can
1781  *- now have different initial weights for entering and leaving the
1782  *- waypoint.
1783  **
1784  ** \subsubsection v611 Version 6.1.1
1785  **
1786  *- - Added new member function:
1787  *>
1788  *- - diguyLoadManager::remove_all_cameras()
1789  *<
1790  *- - Added new member functions to diguyVariable that allow for
1791  *- setting and getting the initial value of the variable, and
1792  *- for retrieving the scenario and/or character the variable
1793  *- belongs to:
1794  *>
1795  *- - diguyVariable::get_scenario()
1796  *- - diguyVariable::get_character()
1797  *- - diguyVariable::get_initial_value_as_int()
1798  *- - diguyVariable::get_initial_value_as_float()
1799  *- - diguyVariable::get_initial_value_as_string()
1800  *- - diguyVariable::set_initial_value_as_int()
1801  *- - diguyVariable::set_initial_value_as_float()
1802  *- - diguyVariable::set_initial_value_as_string()
1803  *<
1804  *- - Added character variables to characters. Character variables
1805  *- are almost exactly like scenario variables but are local to each
1806  *- character instead of being shared across the scenario. For
1807  *- example, all characters in a scenario could be given a variable
1808  *- named "panic_level" that tracks how panicked the character is.
1809  *- Character variables use the same class as scenario variables:
1810  *- diguyVariable. The following functions are available for
1811  *- accessing character variables:
1812  *>
1813  *- - diguyCharacter::get_num_variables()
1814  *- - diguyCharacter::get_variable_at_index()
1815  *- - diguyCharacter::find_variable()
1816  *- - diguyCharacter::find_or_create_variable()
1817  *- - diguyCharacter::destroy_variable()
1818  *- - diguyCharacter::variable_equal_to_int()
1819  *- - diguyCharacter::variable_greater_than_int()
1820  *- - diguyCharacter::variable_less_than_int()
1821  *- - diguyCharacter::variable_equal_to_float()
1822  *- - diguyCharacter::variable_greater_than_float()
1823  *- - diguyCharacter::variable_less_than_float()
1824  *- - diguyCharacter::variable_equal_to_string()
1825  *- - diguyCharacter::variable_greater_than_string()
1826  *- - diguyCharacter::variable_less_than_string()
1827  *<
1828  ** \subsubsection v610 Version 6.1.0
1829  **
1830  *- - Added new functions to the DI-Guy Graphics API to make it easier
1831  *- to know which character links or shapes belong to, and to easily
1832  *- get a pointer to the character's base link:
1833  *>
1834  *- - diguyGraphicsLink::get_character()
1835  *- - diguyGraphicsShape::get_character()
1836  *- - diguyCharacter::get_position_link()
1837  *<
1838  *- - Added new function diguyGraphicsLink::get_transformation_matrix().
1839  *- This function provides access to the link transformation in matrix
1840  *- form rather than separate vectors for translation, rotation, etc.
1841  *- - Added new blend functions "StepHalfway" and "Waver". The
1842  *- "StepHalfway" blend function makes an instant step from 0 to 1
1843  *- halfway through the blend. The "Waver" blend function wavers from 0
1844  *- to 1 back to 0 and back to 1 using a three-quarter sine wave.
1845  *- - Added functions to diguyScenario API:
1846  *>
1847  *- - diguyScenario::get_character_type_num_gestures()
1848  *- - diguyScenario::get_character_type_gesture_at_index()
1849  *<
1850  *- - Added functions to diguyCharacterGesture API:
1851  *>
1852  *- - diguyCharacterGesture::force_table_action()
1853  *<
1854  ** \subsubsection v608 Version 6.0.8
1855  **
1856  *- - Changed DI-Guy Graphics API to not print a warning if a geometry
1857  *- file is not found. This allows external loaders to load their
1858  *- own version of a geometry file without warnings, and without the
1859  *- file having to be present in $DIGUY/geometry.
1860  *- - Added function diguyCharacter::is_group_member().
1861  *- - For Windows, added the DI-Guy version number as a suffix to the
1862  *- .dll that gets installed in the bin directory.
1863  **
1864  ** \subsubsection v606 Version 6.0.6
1865  **
1866  *- - Changed default for gaze parameter "orientation enabled for
1867  *- gaze". In DI-Guy 5.x this parameter defaulted to 0 for all
1868  *- characters except the sergeant. In earlier versions of 6.0 this
1869  *- was changed to "1 if character has turning actions, else 0".
1870  *- This change has, however, resulted in too much confusion and
1871  *- user astonishment. The new (and hopefully final) change
1872  *- is to default the parameter to 0 for *all* characters. This fixes
1873  *- a backwards incompatibility problem where some version 5 characters
1874  *- that were gazing would leave their path on version 6 and thus not
1875  *- complete the actions specified by their path.
1876  *- - Implemented function diguyCharacter::end_aim(). This function
1877  *- had been omitted from the DI-Guy API.
1878  *- - Fixed problem with initial value of scenario variables, where
1879  *- the integer value of each variable was initialized to zero,
1880  *- even if the intended initial value was nonzero.
1881  *- - Fixed problem when merging two scenarios with different
1882  *- values for tick dt. Decision beads, Script event beads, Aim
1883  *- beads and Gaze beads were being improperly scheduled.
1884  **
1885  ** \subsubsection v605 Version 6.0.5
1886  **
1887  *- - Fixed diguyCharacter::get_aim_azimuth() and
1888  *- diguyCharacter::get_aim_elevation(). They were returning
1889  *- zero. Now they return meaningful values if the character is
1890  *- aiming.
1891  **
1892  ** \subsubsection v604 Version 6.0.4
1893  **
1894  *- - DI-Guy can now use OpenGL's multitexturing mechanism. The
1895  *- OpenGL texture unit that DI-Guy will use can be set by
1896  *- setting the bdiGraphicsInitOgl::use_multitexture_extension
1897  *- and bdiGraphicsInitOgl::texture_unit initialization variables.
1898  **
1899  ** \subsubsection v603 Version 6.0.3
1900  **
1901  *- - Fixed a problem with DI-Guy Graphics API functions not being
1902  *- correctly declared for DLL use.
1903  *- - Fixed a problem with calling path edit functions on a path
1904  *- that is in use. The change was not being fully propagated
1905  *- to the character's motions.
1906  *- - Eliminated GoThere camera instability at low frame rates.
1907  *- - Eliminated aiming instability at low frame rates and at low
1908  *- desired locate times.
1909  **
1910  ** \subsubsection v602 Version 6.0.2
1911  **
1912  *- - No changes.
1913  **
1914  ** \subsubsection v601 Version 6.0.1
1915  **
1916  *- - Fixed problem with motion scaling where the scale factor was
1917  *- being applied twice in some cases. (PR 3029)
1918  *- - Removed deprecated diguyCharacter functions:
1919  *>
1920  *- - diguyCharacter::force_action_by_name()
1921  *- - diguyCharacter::get_desired_action_name()
1922  *- - diguyCharacter::set_desired_action_by_name()
1923  *- - diguyCharacter::force_partial_path_by_name()
1924  *- - diguyCharacter::force_path_by_name()
1925  *- - diguyCharacter::push_path_by_name()
1926  *- - diguyCharacter::set_parent_by_name()
1927  *<
1928  *- - Removed deprecated diguySensorRegion function
1929  *- diguySensorRegion::contains_character_by_name().
1930  *- - Removed deprecated diguySignal function diguySignal::play_sound().
1931  *- - Removed deprecated diguyScenario function
1932  *- diguyScenario::find_or_create_face_expression().
1933  **
1934  ** \subsubsection v600 Version 6.0.0
1935  **
1936  *- - Made aiming precise. Characters now actually aim at the
1937  *- targets specified by aim beads, rather than giving an
1938  *- approximation of proper aim.
1939  *- - Made aiming dynamic. Character aiming motion is now much more
1940  *- realistic, homing in on the specified target.
1941  *- - Added new diguyCharacter functions:
1942  *>
1943  *- - diguyCharacter::aim_at_angle()
1944  *- - diguyCharacter::aim_at_angle_local()
1945  *- - diguyCharacter::aim_at_point()
1946  *- - diguyCharacter::aim_at_point_local()
1947  *- - diguyCharacter::aim_at_character()
1948  *- - diguyCharacter::set_aim_param_desired_locate_time()
1949  *- - diguyCharacter::get_aim_param_desired_locate_time()
1950  *- - diguyCharacter::get_aim_is_acquired()
1951  *- - diguyCharacter::get_aim_is_steady()
1952  *- - diguyCharacter::set_weapon_near_range()
1953  *- - diguyCharacter::set_weapon_far_range()
1954  *<
1955  *- - Added diguyLoadManager class. Members are:
1956  *>
1957  *- - diguyLoadManager::add_camera()
1958  *- - diguyLoadManager::add_view_camera()
1959  *- - diguyLoadManager::move_camera()
1960  *- - diguyLoadManager::change_view_camera_settings()
1961  *- - diguyLoadManager::remove_camera()
1962  *- - diguyLoadManager::set_enable_culling()
1963  *- - diguyLoadManager::set_nonvisible_update_rate()
1964  *- - diguyLoadManager::set_zone_bounds()
1965  *- - diguyLoadManager::set_zone_parameters()
1966  *- - diguyLoadManager::set_max_update_period()
1967  *<
1968  *- - Added new diguyApp functions:
1969  *>
1970  *- - diguyApp::create_load_manager()
1971  *- - diguyApp::get_load_manager()
1972  *- - diguyApp::destroy_load_manager()
1973  *<
1974  *- - Added new diguyCharacter functions:
1975  *>
1976  *- - diguyCharacter::get_bounding_radius()
1977  *- - diguyCharacter::get_default_bounding_radius()
1978  *- - diguyCharacter::set_bounding_radius()
1979  *<
1980  *- - Added new diguyApp class. There is only one diguyApp object per
1981  *- application. It is available after the diguy_*_initialize() call
1982  *- by calling the static function diguyApp::get_app(). The diguyApp
1983  *- object will hold data that is application-wide, which in the past
1984  *- has been somewhat artificially placed in the diguyScenario class.
1985  *- - Removed support for character history types
1986  *- DIGUY_HISTORY_TYPE_FIRST and DIGUY_HISTORY_TYPE_LAST. Characters
1987  *- saved using these history types will have their history type
1988  *- set to DIGUY_HISTORY_TYPE_COMPLETE.
1989  *- - Moved some static functions from diguyScenario to diguyApp:
1990  *>
1991  *- - diguyScenario::add_default_callback() deprecated;
1992  *- use diguyApp::add_default_scenario_callback()
1993  *- - diguyScenario::remove_default_callback() deprecated;
1994  *- use diguyApp::remove_default_scenario_callback()
1995  *- - diguyScenario::remove_default_callback_with_user_data() deprecated;
1996  *- use diguyApp::remove_default_scenario_callback_with_user_data()
1997  *- - diguyScenario::add_default_callback_script() deprecated;
1998  *- use diguyApp::add_default_scenario_callback_script()
1999  *- - diguyScenario::remove_default_callback_script() deprecated;
2000  *- use diguyApp::remove_default_scenario_callback_script()
2001  *<
2002  *- - Deprecated two diguyCharacterPath callback ids. A decision
2003  *- bead or script bead at the appropriate place in the path
2004  *- should be used instead of the deprecated callbacks:
2005  *>
2006  *- - CALLBACK_ID_TIME_LEFT has been changed to
2007  *- CALLBACK_ID_TIME_LEFT_DEPRECATED
2008  *- - CALLBACK_ID_TIME_INTO has been changed to
2009  *- CALLBACK_ID_TIME_INTO_DEPRECATED
2010  *<
2011  *- - Fixed problem with gestures not range checking stage
2012  *- argument. If 0 was passed as the stage in some functions,
2013  *- memory overwrites could have occurred or garbage results could
2014  *- have been returned. Also updated doc of affected functions
2015  *- to specify that stages are between 1 and 3.
2016  *- - Added functions to character for manually applying path
2017  *- bead effects:
2018  *>
2019  *- - diguyCharacter::apply_aim_bead()
2020  *- - diguyCharacter::apply_decision_bead()
2021  *- - diguyCharacter::apply_gaze_bead()
2022  *- - diguyCharacter::apply_script_bead()
2023  *<
2024  *- - Added new diguyCharacterPathDecisionBead class. Members are:
2025  *>
2026  *- - diguyCharacterPathDecisionBead::get_name()
2027  *- - diguyCharacterPathDecisionBead::set_name()
2028  *- - diguyCharacterPathDecisionBead::get_distance_into_path()
2029  *- - diguyCharacterPathDecisionBead::set_distance_into_path()
2030  *- - diguyCharacterPathDecisionBead::get_length()
2031  *- - diguyCharacterPathDecisionBead::set_length()
2032  *- - diguyCharacterPathDecisionBead::get_tin()
2033  *- - diguyCharacterPathDecisionBead::set_tin()
2034  *- - diguyCharacterPathDecisionBead::get_duration()
2035  *- - diguyCharacterPathDecisionBead::set_duration()
2036  *<
2037  *- - Added new diguyCharacterPathAimBead class. Members are:
2038  *>
2039  *- - diguyCharacterPathAimBead::get_name()
2040  *- - diguyCharacterPathAimBead::set_name()
2041  *- - diguyCharacterPathAimBead::get_distance_into_path()
2042  *- - diguyCharacterPathAimBead::set_distance_into_path()
2043  *- - diguyCharacterPathAimBead::get_length()
2044  *- - diguyCharacterPathAimBead::set_length()
2045  *- - diguyCharacterPathAimBead::get_tin()
2046  *- - diguyCharacterPathAimBead::set_tin()
2047  *- - diguyCharacterPathAimBead::get_duration()
2048  *- - diguyCharacterPathAimBead::set_duration()
2049  *<
2050  *- - Added new diguyCharacterPathGazeBead class. Members are:
2051  *>
2052  *- - diguyCharacterPathGazeBead::get_name()
2053  *- - diguyCharacterPathGazeBead::set_name()
2054  *- - diguyCharacterPathGazeBead::get_distance_into_path()
2055  *- - diguyCharacterPathGazeBead::set_distance_into_path()
2056  *- - diguyCharacterPathGazeBead::get_length()
2057  *- - diguyCharacterPathGazeBead::set_length()
2058  *- - diguyCharacterPathGazeBead::get_tin()
2059  *- - diguyCharacterPathGazeBead::set_tin()
2060  *- - diguyCharacterPathGazeBead::get_duration()
2061  *- - diguyCharacterPathGazeBead::set_duration()
2062  *<
2063  *- - Added function diguyCharacter::find_waypoint(). This
2064  *- function finds a waypoint by name.
2065  *- - Added functions to access new bead types. Also added find
2066  *- functions for action beads and script beads. The following
2067  *- functions have been added to diguyCharacterPath:
2068  *>
2069  *- - diguyCharacterPath::find_waypoint()
2070  *- - diguyCharacterPath::find_action_bead()
2071  *- - diguyCharacterPath::find_script_bead()
2072  *- - diguyCharacterPath::get_num_aim_beads()
2073  *- - diguyCharacterPath::get_aim_bead_at_index()
2074  *- - diguyCharacterPath::find_aim_bead()
2075  *- - diguyCharacterPath::get_num_decision_beads()
2076  *- - diguyCharacterPath::get_decision_bead_at_index()
2077  *- - diguyCharacterPath::find_decision_bead()
2078  *- - diguyCharacterPath::get_num_gaze_beads()
2079  *- - diguyCharacterPath::get_gaze_bead_at_index()
2080  *- - diguyCharacterPath::find_gaze_bead()
2081  *<
2082  *- - Added functions to diguyCharacterGesture API:
2083  *>
2084  *- - diguyCharacterGesture::set_table_action_begin()
2085  *- - diguyCharacterGesture::get_table_action_begin()
2086  *- - diguyCharacterGesture::set_table_action_end()
2087  *- - diguyCharacterGesture::get_table_action_end()
2088  *- - diguyCharacterGesture::get_table_action_now()
2089  *- - diguyCharacterGesture::get_table_action_next()
2090  *- - diguyCharacterGesture::get_rampup_duration()
2091  *- - diguyCharacterGesture::set_rampup_duration()
2092  *- - diguyCharacterGesture::get_rampup_blend_function_name()
2093  *- - diguyCharacterGesture::set_rampup_blend_function_name()
2094  *- - diguyCharacterGesture::get_rampdown_duration()
2095  *- - diguyCharacterGesture::set_rampdown_duration()
2096  *- - diguyCharacterGesture::get_rampdown_blend_function_name()
2097  *- - diguyCharacterGesture::set_rampdown_blend_function_name()
2098  *- - diguyCharacterGesture::get_table_action_rep_duration()
2099  *- - diguyCharacterGesture::get_table_transition_duration()
2100  *- - diguyCharacterGesture::get_default_blend_duration()
2101  *- - diguyCharacterGesture::get_num_table_actions()
2102  *- - diguyCharacterGesture::get_table_action_at_index()
2103  *<
2104  *- - Added functions for setting initial motion texture parameters:
2105  *>
2106  *- - diguyCharacter::set_initial_motion_texture()
2107  *- - diguyCharacter::get_initial_motion_texture()
2108  *- - diguyCharacter::set_initial_motion_texture_gain()
2109  *- - diguyCharacter::get_initial_motion_texture_gain()
2110  *<
2111  *- - Plugins require a license.
2112  *- - Moved to flexlm 10.1 on Windows for license management.
2113  *- - Particles now work in locked scenarios.
2114  *- - Made characters with non default actors display properly in
2115  *- Vega Prime.
2116  *- - Saving review data now saves all generated data, not just up to
2117  *- the time slider.
2118  *- - Fixed a bug with history saving.
2119  **
2120  ** \subsubsection v535 Version 5.3.5
2121  **
2122  *- - Fixed problem with .flt loader not dealing well with .flt files that
2123  *- contain multiple nodes that have the same name. The .flt loader now
2124  *- more vigorously checks for name collisions.
2125  *- - Removed one unused level of Motion LODs. The unused LOD 6 was not
2126  *- mentioned in documentation nor was it used in motion generation
2127  *- code. This change requires use of DI-Guy Data 5.3.5.
2128  *- - Worked on diguyCharacterGesture API:
2129  *>
2130  *- - diguyCharacterGesture::get_num_stages() deprecated;
2131  *- use diguyCharacterGesture::get_num_progression_stages()
2132  *- - diguyCharacterGesture::set_stage_duration() deprecated
2133  *- use diguyCharacterGesture::set_progression_stage_duration()
2134  *- - diguyCharacterGesture::get_stage_duration() deprecated
2135  *- use diguyCharacterGesture::get_progression_stage_duration()
2136  *- - diguyCharacterGesture::get_stage_optimal_duration() deprecated
2137  *- use diguyCharacterGesture::get_progression_stage_optimal_duration()
2138  *<
2139  *- - Worked on diguyCharacterGesture documentation. Added more
2140  *- which functions can be called for which gesture types.
2141  *- - Added type diguyCharacterGestureType and corresponding function
2142  *- diguyCharacterGesture::get_type().
2143  *- - New experimental shooting functionality:
2144  *>
2145  *- - Added callback diguyCharacter::CALLBACK_ID_GOT_SHOT.
2146  *- - Added callback diguyCharacter::CALLBACK_ID_SHOT_SUCCESS.
2147  *- - Added new find all hits functionality.
2148  *- - Added new diguyShot class accessible from scripts,
2149  *- records who got shot and where.
2150  *- - Characters can now shoot multiple targets; added
2151  *- max_shot_hits to control the maximum number of
2152  *- shots to report. By default scene objects stop bullets.
2153  *- - Weapon spread shots test against the octtree first (speed up).
2154  *<
2155  *- - Fixed some bugs with review data.
2156  *- - Experimental plugin infrastructure:
2157  *>
2158  *- - Added functions diguyScenario::add_plugin() and
2159  *- diguyScenario::remove_plugin().
2160  *- - The following functions can be exported from the dll to plug
2161  *- into DI-Guy code:
2162  *>
2163  *- - void initialize(diguyScenario* s)
2164  *- - void deinitialize(diguyScenario* s)
2165  *- - void pre_draw(diguyScenario* s)
2166  *- - void post_draw(diguyScenario* s)
2167  *- - void update(diguyScenario* s)
2168  *- - void reset(diguyScenario* s)
2169  *- - void save_review_data(const char* filename)
2170  *- - void load_review_data(const char* filename)
2171  *<
2172  *- - See Documentation for more information.
2173  *<
2174  **
2175  ** \subsubsection v534 Version 5.3.4
2176  **
2177  *- - Added new callbacks for use with the diguyCharacter::add_callback()
2178  *- function:
2179  *>
2180  *- - CALLBACK_ID_CURRENT_APPEARANCE_CHANGED
2181  *- - CALLBACK_ID_CURRENT_HEAD_APPEARANCE_CHANGED
2182  *<
2183  *- - Added new gesture type: table gestures. Table gestures are much
2184  *- like character action tables, and allow a single gesture to employ
2185  *- many different motions.
2186  **
2187  ** \subsubsection v533 Version 5.3.3
2188  **
2189  *- - Improved SDK's initialization time. Version 5.3.3 should take about
2190  *- half the time of version 5.3.2 to initialize.
2191  *- - Changed default override stage of function
2192  *- diguyCharacter::create_pose_override() from 2 to 3.
2193  *- - Improved documentation for diguyCharacter "Pose Functions"
2194  *- section.
2195  *- - Improved documentation for
2196  *- diguyScenario::set_automatic_motion_lod_switching() function.
2197  *- - Added function diguyCharacter::end_all_gestures(), a gentler way
2198  *- than diguyCharacter::abort_all_gestures() to stop a character's
2199  *- active gestures.
2200  *- - Fixed problem with changing an existing character's type via the
2201  *- diguyCharacter::set_character_type() function. The geometry of the
2202  *- character wasn't displaying properly until the scenario was reset.
2203  *- This has been fixed.
2204  *- - Fixed documentation for the
2205  *- diguyCharacterPoseOverride::get_pose_in_radians() function; it was
2206  *- incorrectly implying that it could be used to read the current pose
2207  *- of the character, when it really only returns the most recent pose
2208  *- as set by diguyCharacterPoseOverride::set_pose_in_radians().
2209  *- - Fixed problem where specifying a non-existent default appearance
2210  *- for a character caused a crash.
2211  *- - Fixed problem where characters with no links due to config file
2212  *- syntax errors caused a crash.
2213  **
2214  ** \subsubsection v532 Version 5.3.2
2215  **
2216  *- - Added missing initial position and orientation functions to
2217  *- diguyCharacter:
2218  *>
2219  *- - diguyCharacter::set_initial_position()
2220  *- - diguyCharacter::get_initial_position()
2221  *- - diguyCharacter::set_initial_orientation()
2222  *- - diguyCharacter::get_initial_orientation()
2223  *<
2224  *- - Added set_name() functions to most DI-Guy API objects.
2225  *- - Added better access to path data such as waypoints and action
2226  *- beads. The following functions have been added to
2227  *- diguyCharacterPath:
2228  *>
2229  *- - diguyCharacterPath::update()
2230  *- - diguyCharacterPath::get_num_waypoints()
2231  *- - diguyCharacterPath::get_waypoint_at_index()
2232  *- - diguyCharacterPath::create_waypoint()
2233  *- - diguyCharacterPath::get_num_action_beads()
2234  *- - diguyCharacterPath::get_action_bead_at_index()
2235  *- - diguyCharacterPath::create_action_bead()
2236  *- - diguyCharacterPath::destroy_action_bead()
2237  *- - diguyCharacterPath::get_num_script_beads()
2238  *- - diguyCharacterPath::get_script_bead_at_index()
2239  *- - diguyCharacterPath::create_script_bead()
2240  *- - diguyCharacterPath::destroy_script_bead()
2241  *<
2242  *- - Added better access to path shape data such as waypoints. The
2243  *- following functions have been added to diguyPathShape:
2244  *>
2245  *- - diguyPathShape::update()
2246  *- - diguyPathShape::get_num_waypoints()
2247  *- - diguyPathShape::get_waypoint_at_index()
2248  *- - diguyPathShape::create_waypoint()
2249  *<
2250  *- - Added new diguyCharacterPathActionBead class. Members are:
2251  *>
2252  *- - diguyCharacterPathActionBead::get_name()
2253  *- - diguyCharacterPathActionBead::get_action()
2254  *- - diguyCharacterPathActionBead::set_action()
2255  *- - diguyCharacterPathActionBead::get_distance_into_path()
2256  *- - diguyCharacterPathActionBead::set_distance_into_path()
2257  *- - diguyCharacterPathActionBead::get_length()
2258  *- - diguyCharacterPathActionBead::set_length()
2259  *- - diguyCharacterPathActionBead::get_derive_length_flag()
2260  *- - diguyCharacterPathActionBead::set_derive_length_flag()
2261  *- - diguyCharacterPathActionBead::get_tin()
2262  *- - diguyCharacterPathActionBead::set_tin()
2263  *- - diguyCharacterPathActionBead::get_duration()
2264  *- - diguyCharacterPathActionBead::set_duration()
2265  *- - diguyCharacterPathActionBead::get_derive_duration_flag()
2266  *- - diguyCharacterPathActionBead::set_derive_duration_flag()
2267  *- - diguyCharacterPathActionBead::get_desired_duration()
2268  *- - diguyCharacterPathActionBead::set_desired_duration()
2269  *- - diguyCharacterPathActionBead::get_derive_desired_duration_flag()
2270  *- - diguyCharacterPathActionBead::set_derive_desired_duration_flag()
2271  *- - diguyCharacterPathActionBead::get_motion_reps()
2272  *- - diguyCharacterPathActionBead::set_motion_reps()
2273  *- - diguyCharacterPathActionBead::get_derive_motion_reps_flag()
2274  *- - diguyCharacterPathActionBead::set_derive_motion_reps_flag()
2275  *- - diguyCharacterPathActionBead::get_transition_before_bead_flag()
2276  *- - diguyCharacterPathActionBead::set_transition_before_bead_flag()
2277  *<
2278  *- - Added new diguyCharacterPathScriptBead class. Members are:
2279  *>
2280  *- - diguyCharacterPathScriptBead::get_name()
2281  *- - diguyCharacterPathScriptBead::set_name()
2282  *- - diguyCharacterPathScriptBead::get_script()
2283  *- - diguyCharacterPathScriptBead::set_script()
2284  *- - diguyCharacterPathScriptBead::get_distance_into_path()
2285  *- - diguyCharacterPathScriptBead::set_distance_into_path()
2286  *- - diguyCharacterPathScriptBead::get_length()
2287  *- - diguyCharacterPathScriptBead::set_length()
2288  *- - diguyCharacterPathScriptBead::get_tin()
2289  *- - diguyCharacterPathScriptBead::set_tin()
2290  *- - diguyCharacterPathScriptBead::get_duration()
2291  *- - diguyCharacterPathScriptBead::set_duration()
2292  *<
2293  *- - Changed API of diguyWaypoint object to have more intuitive function
2294  *- names. Old function names have been deprecated but will still work.
2295  *- - Improved behavior of reflected characters when the remote scenario is
2296  *- reset. After remote reset, on remote play, local reflected
2297  *- characters now immediately perform their desired actions rather than
2298  *- gradually transitioning into them.
2299  *- - Switched to using asynchronous I/O for DIS networking. This improves
2300  *- DI-Guy's robustness on networks with lots of entities.
2301  *- - Fixed problem with diguyPathShape::get_length(). The
2302  *- diguyPathShape::update() function must be called after waypoints have
2303  *- been added to the path shape for the length to be updated. After
2304  *- the update() call, get_length() will return a valid length. (PR 2852)
2305  *- - Fixed problem with diguyCharacter::get_current_path_index()
2306  *- function. The value 0 was being returned when the character was not
2307  *- on a path, and when the character was on the first path. The return
2308  *- value for "not on a path" has been changed to -1. (PR 2856)
2309  *- - Fixed problem with diguyCharacter::get_path_name_at_index() function.
2310  *- An empty string was being returned when the path at the specified
2311  *- index had a zero-length name, and when there was no path at the
2312  *- specified index. The return value for no path at index has been
2313  *- changed to NULL.
2314  *- - Fixed problem which, under DIS using DI-Guy custom information,
2315  *- caused newly created reflected characters not to receive custom action
2316  *- information for up to five seconds. Now custom action information is
2317  *- sent immediately after the first entity state PDU is sent.
2318  **
2319  ** \subsubsection v531 Version 5.3.1
2320  **
2321  *- - Added support for "live reckoning". Live reckoning provides more
2322  *- accurate display of the behavior of remote characters, using less
2323  *- networking bandwidth.
2324  *- - Added network support for multiple concurrent scenario instances.
2325  *- Characters in all scenarios are published to the network. Incoming
2326  *- entities are created in the scenario which is passed to
2327  *- diguy_dis_go_online() or diguy_hla_go_online().
2328  *- - Improved behavior of reflected entities when the local scenario is
2329  *- reset.
2330  *- - Removed some options from network.cfg. It is recommended that the
2331  *- current network.cfg be deleted and let DI-Guy recreate it.
2332  *- - Improved behavior of reflected entities when the remote scenario is
2333  *- paused. Now they can move to their correct location even when
2334  *- paused, rather than staying still in a location that is suboptimal.
2335  *- - Fixed bug preventing incoming (reflected) non-soldier characters from
2336  *- walking when DI-Guy custom action information is not available.
2337  *- - Removed Review Data dt data member from diguyScenario objects
2338  *- and from the DI-Guy Scenario UI. Any scenario review data is
2339  *- now recorded at the scenario's tick dt.
2340  *- - Added access to the DirectX 9 world stack used by DI-Guy through
2341  *- the new function diguy_dx9_get_world_stack(). This allows users
2342  *- of DI-Guy for DirectX 9 to offset the origin used by characters
2343  *- from 0,0,0. Use of the new function is demonstrated in the
2344  *- example program $DIGUY/programming_examples/diguy_dx9/offset_example.
2345  *- - Made it possible to set the tick dt of a scenario using the
2346  *- function diguyScenario::set_tick_dt(). This was previously
2347  *- possible only in the DI-Guy Scenario UI.
2348  *- - Made it possible to turn off review data generation for scenarios.
2349  *- By default, scenarios created in the DI-Guy Scenario editor will
2350  *- have review data enabled; scenarios created using the DI-Guy API
2351  *- will have review data disabled. Turning on review data can add
2352  *- significantly to memory usage. Changing review data settings can
2353  *- be done using the function diguyScenario::set_history_type().
2354  *- - Turned off review data by default for characters created using the
2355  *- DI-Guy API. The significantly reduces the memory overhead of each
2356  *- character. Review data can be re-enabled using the function
2357  *- diguyCharacter::set_history_type().
2358  *- - Added new callbacks for use with the diguyCharacter::add_callback()
2359  *- function:
2360  *>
2361  *- - CALLBACK_ID_PRE_DIE
2362  *- - CALLBACK_ID_POST_DIE
2363  *- - CALLBACK_ID_PRE_FIRE_WEAPON
2364  *- - CALLBACK_ID_POST_FIRE_WEAPON
2365  *<
2366  *- - Fixed problem with setting character's current appearance too soon
2367  *- after the character was created. This caused a crash.
2368  **
2369  ** \subsubsection v522 Version 5.2.2
2370  **
2371  *- - New function diguyCharacter::set_weapon_fires_live_rounds() sets
2372  *- whether firing causes collision search for characters to be killed.
2373  *- Default is to fire blanks. Old scenarios that used this
2374  *- functionality need to call this function to re-enable firing to kill
2375  *- other characters.
2376  *- - Fixed problem for expressive faces in Vega. If a model without
2377  *- texture or material was drawn just before the expressive face,
2378  *- the expressive face would inherit its color.
2379  *- - Fixed various memory leaks.
2380  **
2381  ** \subsubsection v521 Version 5.2.1
2382  **
2383  *- - Improved DIS/HLA Networking:
2384  *>
2385  *- - Motion behavior improved when receiving standard PDUs in DIS.
2386  *- - Motion behavior improved when not using DI-Guy Custom FOM in HLA.
2387  *<
2388  *- - Improved vpNet/DI-Guy for Vega Prime interaction:
2389  *>
2390  *- - DI-Guy for Vega Prime now shares the network connection created
2391  *- by vpNet (MaK Technologies networking add-on to
2392  *- MultiGen-Paradigm's Vega Prime product).
2393  *- - Special programming no longer required to have DI-Guy for Vega
2394  *- Prime/vpNet work together.
2395  *- - Users need to maintain two separate modelmaps, but mapping to
2396  *- NULL is now implemented for both vpNet and DI-Guy, so that
2397  *- entities being drawn by other modules in Vega will not be
2398  *- drawn a second time by DI-Guy for Vega Prime and vice-versa.
2399  *- - Programming examples have been expanded to show simple
2400  *- examples of vpNet/DI-Guy for Vega Prime interaction. Note
2401  *- that these programming examples are copied to the samples
2402  *- directory of the Vega Prime installation.
2403  *- - Added function call diguy_net_get_character_from_id()
2404  *- which returns the diguyCharacter associated with the entity id.
2405  *- Works with both DIS and HLA. (see ref. manual).
2406  *- - Added option hla_advisories to network.cfg. When using HLA,
2407  *- if the RTI uses advisories, hla_advisories should be set to 1.
2408  *- If not, set this to zero. Mismatch between the settings should
2409  *- be avoided.
2410  *<
2411  *- - Fixed problem for expressive faces in Vega. The normals
2412  *- on the head were being scaled incorrectly, causing strange
2413  *- shading artifacts.
2414  *- - Fixed problem for expressive faces in Vega. If more than one
2415  *- expressive face was in a scene, all expressive faces would
2416  *- use the texture of the first expressive face.
2417  **
2418  ** \subsubsection v520 Version 5.2.0
2419  **
2420  *- - Added dynamic (dll) versions of DI-Guy libraries for win32.
2421  *- - Discontinued support of MT and MTd versions of DI-Guy libraries for
2422  *- win32.
2423  *- - Fixed nmake-based makefiles for win32 programming examples
2424  *- so that they'll work if DI-Guy is installed in a directory with
2425  *- spaces.
2426  **
2427  ** \subsubsection v5125 Version 5.1.25
2428  **
2429  *- - Initial release of version 5.1.
2430  **
2431  ** \subsubsection v5124 Versions 5.1.0 - 5.1.24
2432  **
2433  *- - These versions are 5.1 pre-releases.
2434  **
2435  **
2436  **************************************
2437  ** \section v9digs DI-Guy Scenario Version 9 and earlier
2438  **************************************
2439  **
2440  *b Note that most changes to the DI-Guy API also apply to DI-Guy Scenario.
2441  **
2442  ** \subsection v90digs Version 9.0
2443  **
2444  ** \subsubsection v914digs Version 9.1.4
2445  **
2446  *- - Scenario can now be stopped, run, and reset in I-Guy Input
2447  *- Mode by hitting Shift-Space (toggle stop and run) an Shift-Ctrl-Space
2448  *- (reset). Keyboard reset can be disabled in I-Guy mode in the I-Guy
2449  *- Page.
2450  **
2451  ** \subsubsection v910digs Version 9.1.0
2452  **
2453  *- - Large rework of Object pages. There is now one Scenario Objects page
2454  *- that contains all of the pages from previous versions' Scenario
2455  *- Elements, Character Elements, View Settings, Event Handlers, and
2456  *- DI-Guy AI Elements. Pages are separated into multiple tab groups.
2457  **
2458  ** \subsubsection v902digs Version 9.0.2
2459  **
2460  *- - Fixed bug where network page wouldn't remember current coordinate
2461  *- converter settings when closed and reopened.
2462  **
2463  ** \subsubsection v900digs Version 9.0.0
2464  **
2465  *- - Near and far parameters of character weapon parameters are now
2466  *- always enabled, and will alway be taken into consideration.
2467  *- Before they only had an effect if the "spread" of a weapon was
2468  *- greater than 0.
2469  *- - New command line flag added: -runtime_only. If this flag is
2470  *- specified, DI-Guy Scenario will not attempt to check out the
2471  *- development license feature but instead will remain in runtime mode,
2472  *- leaving the development license available to another program.
2473  **
2474  **
2475  ** \subsection v80digs Version 8.0
2476  **
2477  ** \subsubsection v863digs Version 8.6.3
2478  **
2479  *- - Changing a character's character type no longer deletes all action
2480  *- beads. The actions of the existing beads are changed to the nearest
2481  *- equivalent of the new character type.
2482  *- - Region/crowd painting now works on scene object grids. delayed
2483  *- loading of grids should be more responsive as well.
2484  *- - Fixed issues with feelers: changes made via UI now change all crowd
2485  *- members, 3D rep of feelers now updated immediately when changed and
2486  *- on reset.
2487  *- - Fixed set_playback_mode_play() so that it works in decisions.
2488  *- - Ctrl-a will now restore previous visibility settings if hit 2 times
2489  *- in a row.
2490  *- - Added experimental feeler callback option.
2491  *- - Minor UI preference bug fixes.
2492  **
2493  ** \subsubsection v862digs Version 8.6.2
2494  **
2495  *- - Improved speed of particle system rendering.
2496  *- - Fixes to scene object grid rendering.
2497  *- - Fixed problem that character initial path could not be deleted.
2498  *- - If last character path is deleted, initial position and orientation
2499  *- controls now become enabled as they should.
2500  *- - Added preference for changing the fast-forward playback factor.
2501  *- Default is 4. Can be changed in the Preferences dialog.
2502  *- - Symbolic View: Characters merging into a crowd symbol should now work
2503  *- outside of ortho_xy view.
2504  *- - 3d UI: Added right click pop-up menu to character mode.
2505  *- - Added smoothing to ground clamp function.
2506  **
2507  ** \subsubsection v861digs Version 8.6.1
2508  **
2509  *- - Added one click movie creation to DI-Guy Scenario.
2510  *- - More of the UI has up/down sorting arrows.
2511  *- - Added is_speaking as a decision bead query.
2512  *- - Fixed bug with "this_character" not properly having sub-objects
2513  *- listed in decision beads.
2514  *- - Added the ability for labels to reflect character state, accessible
2515  *- in the character label UI.
2516  *- - Fixed math issues with scene object sub-culling, feature should be
2517  *- significantly more robust with scaled and rotated scene objects.
2518  *- - Character's added to dynamic octtree and scene object characters
2519  *- should require less memory, and be more efficient.
2520  *- - Minor improvements to advanced light UI.
2521  *- - Action bead page now lists the current action's information.
2522  *- - Fixed bug where 1st person I-Guy could not be killed.
2523  *- - Better performance when populating or repopulating crowds.
2524  *-
2525  **
2526  ** \subsubsection v850digs Version 8.5.0
2527  **
2528  *- - Initial DI-Guy SAF release.
2529  *- - Added new SAF Elements palette that provides access to DI-Guy SAF
2530  *- objects.
2531  *- - Added shortcut ctrl-a: turns off *all* supplemental visuals,
2532  *- providing better viewing for non-demo scenario run.
2533  *- - Added "Ortho XY" Projection Mode to Camera settings. This provides
2534  *- an alternative planview that uses an orthonormal projection rather
2535  *- that a perspective-based one.
2536  *- - Added "Symbolic View" checkbox to Camera settings. When this is
2537  *- checked characters will be represented as flat polygons rather than
2538  *- their full animated graphics. This, along with the Ortho XY
2539  *- Projection Mode, provides a good SAF-like view of a scenario.
2540  **
2541  ** \subsubsection v803digs Version 8.0.3
2542  **
2543  *- - Fixed issue with I-Guy not using a joystick for input, even through
2544  *- the UI says it is enabled.
2545  *- - Fixed issue with children's bounding volumes not being factored into
2546  *- culling calculation.
2547  *- - User interface polish:
2548  *>
2549  *- - Added more context sensitive input mode buttons.
2550  *- - Labels identifying what character and path is selected have
2551  *- been replaced with combo boxes, allowing for faster editing of
2552  *- complex scenarios.
2553  *- - Fixed various other small UI issues.
2554  *<
2555  ** \subsubsection v802digs Version 8.0.2
2556  **
2557  *- - Fixed issue with sound not playing properly when scenario is
2558  *- fast-forwarded.
2559  *- - Fixed issues with jittery camera in I-Guy 3rd person mode.
2560  *- - Multisync masters now send and receive characters over the network.
2561  **
2562  ** \subsubsection v800digs Version 8.0.0
2563  **
2564  *- - Initial 8.0 release candidate.
2565  *- - Improved plugin interface so that existing plugin name can be
2566  *- changed instead of just being deleted and a new one created.
2567  *- - DI-Guy plugin libraries can now be browsed for in the Plugins page,
2568  *- instead of just typing in the library name.
2569  *- - Added limits to the Tick dt parameter in the Performance page.
2570  *- The Tick dt must now be >= 0.01 seconds, and <= 0.1 seconds.
2571  **
2572  **
2573  ** \subsection v70digs Version 7.0
2574  **
2575  ** \subsubsection v7119digs Version 7.1.19
2576  **
2577  *- - Made improvements to DI-Guys sound system, sounds will now pause
2578  *- along with the scenario and can now be fast forwarded and rewound
2579  *- (to a degree).
2580  *-
2581  ** \subsubsection v7116digs Version 7.1.16
2582  **
2583  *- - Added 'Init. Up Vector' combo box to Character page. Allows
2584  *- user to set the up vector that the character will use. Previously
2585  *- this could only be done via script of decision.
2586  **
2587  ** \subsubsection v7115digs Version 7.1.15
2588  **
2589  *- - Added '-safe_mode' flag to command line. Passing this flag on
2590  *- the command line will cause DI-Guy Scenario to start up using
2591  *- default preferences, which may resolve some unexpected issues.
2592  **
2593  ** \subsubsection v7114digs Version 7.1.14
2594  **
2595  *- - Added chain settings to Merge Settings UI.
2596  *- - Fixed issues with selecting a different path by clicking on
2597  *- one of its waypoints in Path Edit Input Mode.
2598  **
2599  ** \subsubsection v7112digs Version 7.1.12
2600  **
2601  *- - Review data for new scenarios is now turned off by default.
2602  *- - New characters created in DI-Guy scenario now have no review data
2603  *- by default. Characters from existing scenarios will not be
2604  *- affected. Note that this removes the ability to rewind scenarios
2605  *- unless some review data is turned back on.
2606  **
2607  ** \subsubsection v7111digs Version 7.1.11
2608  **
2609  *- - Sounds now stop when a scenario loops or is rewound. Added a
2610  *- 'Stop All Sounds' button to the Scenario palette Sound page,
2611  *- to make it easier to stop playing long sounds.
2612  *- - Window menu now always opens UI windows instead of toggling whether
2613  *- they are shown or hidden. If a window is already open, it is
2614  *- brought to the top of the window stack.
2615  *- - The F-key shortcuts for opening UI windows have changed behavior.
2616  *- Pressing F2 for the Time Control window, for example, will make
2617  *- the Time Control window visible by either opening it or bringing it
2618  *- to the top. Old behavior toggled whether windows were shown or
2619  *- hidden. Use Shift-F-key to use old toggle behavior (hide if
2620  *- showing, show if hidden).
2621  *- - Character Labels Visibility is now set to 'None' in the default
2622  *- .dss file.
2623  **
2624  ** \subsubsection v718digs Version 7.1.8
2625  **
2626  *- - Fixed problem with restoring all event mappings when reloading
2627  *- a previously saved scenario.
2628  **
2629  ** \subsubsection v717digs Version 7.1.7
2630  **
2631  *- - Switch to new installer setup. Should better detect and remove
2632  *- previous versions, and in general be more stable.
2633  *- - Added preliminary support for TerraPage .txp files in scene objects.
2634  *- - Fixed issue with OpenAL not being able to play sounds on some
2635  *- machines.
2636  **
2637  ** \subsubsection v716digs Version 7.1.6
2638  **
2639  *- - Added 3rd Parameter to Decision Beads.
2640  *- - Added diguyCharacter::create_and_force_bridge_spath() and
2641  *- diguyCharacter::force_local_path to Decision Beads editor.
2642  *- - Application now asks user to confirm whether an existing
2643  *- file can be overwritten when Save As is selected.
2644  *- - Added Comment field to Decisions and Decision Beads.
2645  *- - Added new cursor to represent current input mode.
2646  *- - Added events page to character as well as signal and sensor region.
2647  *- Same basic functionality as the event mapper but more distributed
2648  *- UI design.
2649  **
2650  ** \subsubsection v714digs Version 7.1.4
2651  **
2652  *- - Added functionality to the character elements page that allows
2653  *- character list to be reordered using up and down arrows next to
2654  *- the list box.
2655  *- - Character list box will now display disabled characters in gray.
2656  **
2657  ** \subsubsection v713digs Version 7.1.3
2658  **
2659  *- - Added offset XYZ line edits for aiming at characters on Aim
2660  *- Bead page.
2661  **
2662  ** \subsubsection v712digs Version 7.1.2
2663  **
2664  *- - Added new "Character" Input Mode. While in this mode clicks and
2665  *- drags will have the following effects:
2666  *>
2667  *a click and drag - translate character
2668  *a shift-click and drag - rotate character
2669  *<
2670  *- - Made 'Delete' key work on more object types in the 3D window,
2671  *- depending on the current Input Mode:
2672  *>
2673  *a Character or PeopleBlitzer - delete current character
2674  *a Path Edit or Path Insert - delete current waypoint
2675  *a Action Edit or Action Insert - delete current action bead
2676  *a Sensor Edit or Sensor Insert - delete current sensor region
2677  *a Group - delete current group
2678  *<
2679  **
2680  ** \subsubsection v711digs Version 7.1.1
2681  **
2682  *- - Added new "Group" Input Mode. While in the mode clicks and
2683  *- drags will have the following effects:
2684  *>
2685  *a click and drag - translate all group characters
2686  *a shift-click and drag - rotate all group characters
2687  *a ctrl-click - add or remove clicked character
2688  *a to group
2689  *<
2690  *- - Added Chain Sim Settings page to the Scenario Elements palette.
2691  *- - Added edit boxes to event beads (Aim, Decision, Gaze, and Script
2692  *- beads) that allow beginning and end of beads to be tied to
2693  *- specific waypoints or action beads.
2694  *- - Added ability to set character label colors on the Character page.
2695  *- - Added optional labels for action beads in the 3D window that show
2696  *- the action name and the time at which the action begins.
2697  *- - Current selected character index is now saved in .dss file and
2698  *- restored when the scenario is loaded.
2699  *- - Revamped Plugins page. Each plugin now has these parameters:
2700  *>
2701  *a Required By Scenario - If checked, this plugin is required
2702  *a for proper execution of this scenario.
2703  *a When the scenario is loaded this plugin
2704  *a will be loaded as well if it is not
2705  *a already active. Default is unchecked.
2706  *a Unload on Scenario Close - If checked, this plugin will be
2707  *a unloaded if this scenario is closed
2708  *a or a new scenario is opened. Default
2709  *a is unchecked.
2710  *a Accepts Mouse Input - If checked, this plugin will receive
2711  *a mouse events via the mouse plugin
2712  *a functions when the input mode is
2713  *a "Plugin". Default is checked.
2714  *<
2715  *- - Added new camera frustum culling functionality that works on the
2716  *- subshapes of a scene object. The functionality can be turned on
2717  *- via a check box in the performance page, or via
2718  *- diguyScenario::set_scene_object_sub_culling_enabled() and
2719  *- diguyScenario::get_scene_object_sub_culling_enabled().
2720  *- Potentially this can lead to 100%-200% rendering speed increase
2721  *- for large well segmented terrains. Note currently scene object
2722  *- culling must be on for this to work.
2723  **
2724  ** \subsubsection v710digs Version 7.1.0
2725  **
2726  *- - Revamped Cut and Paste operations to use the merge functionality
2727  *- that makes sure objects added to a scenario have unique names.
2728  **
2729  ** \subsubsection v708digs Version 7.0.8
2730  **
2731  *- - Camera speed UI input was broken, should be responsive again
2732  *- - Hitting cancel in particle system texture map property widget will
2733  *- no longer delete the currently selected texture.
2734  *- - Fixed Camera Affected by Script events check box; was actually an
2735  *- SDK fix.
2736  **
2737  ** \subsubsection v705digs Version 7.0.5
2738  **
2739  *- - Enhanced character path following so that waypoints that
2740  *- have a roll parameter specified will roll the character
2741  *- as it travels along the path.
2742  *- - Enhanced character path following so that characters can
2743  *- now pitch "upside-down" along paths.
2744  **
2745  ** \subsubsection v703digs Version 7.0.3
2746  **
2747  *- - Look At button now works for reflected characters.
2748  **
2749  ** \subsubsection v701digs Version 7.0.1
2750  **
2751  *- - Velocity Noise on particles will now get transformed with the
2752  *- parent's orientation.
2753  *- - Fixed problems with various guide algorithms not working well
2754  *- if the desired z coordinate is not at the same altitude as the
2755  *- character.
2756  *- - Re-enabled "-C cfg_file" command line flag.
2757  **
2758  **
2759  ** \subsection v60 Version 6.0
2760  **
2761  ** \subsubsection v6110digs Version 6.1.10
2762  **
2763  *- - Fixed problem that prevented some parameters from being
2764  *- editable in the Decision editor; in particular, when param 2
2765  *- was an appearance or a string.
2766  *- - Fixed aim trajectory rendering to more consistently render
2767  *- and use the proper color.
2768  *- - Fixed problem with I-Guy characters not being able to move
2769  *- forward and back.
2770  *- - Particles are more aggressive about requesting that octtree is
2771  *- rebuilt.
2772  *- - High velocity particles, stuck particles and bouncing particles all
2773  *- interact better after colliding with scene geometry.
2774  *- - BDI_LOG_FATAL errors will behave better in DI-Scenario, giving the
2775  *- option to save before exiting.
2776  *- - Fixed decision beads pseudocode description crash.
2777  **
2778  ** \subsubsection v619digs Version 6.1.9
2779  **
2780  *- - Fixed problem with OpenGL renderer that prevented objects
2781  *- with subfaces from rendering correctly.
2782  *- - Fixed problem with Draw Mode radio buttons in the Preferences
2783  *- dialog not having the correct effect on rendering.
2784  *- - Changed info popups to show up as dialog windows separate
2785  *- from the main window. This prevents the Primary 3D Window
2786  *- from un-maximizing when an info popup pops up.
2787  *- - Fixed problem that scene objects did not correctly look in
2788  *- custom directory for models.
2789  *- - Added code to check positions of DI-Guy Scenario windows;
2790  *- if windows will not be visible (are off-screen, etc.), they
2791  *- are moved to screen coordinate 0,0.
2792  *- - Updated Networking Settings page to be consistent with V6 UI.
2793  *- - Numerous fixes to Networking Settings page.
2794  *- - Added About box with version information.
2795  *- - Fixed bug that preferences weren't correctly saved if app
2796  *- was closed by clicking 'X' button in upper right corner.
2797  *- - Fixed various problems with values entered into edit boxes
2798  *- being clobbered.
2799  *- - Added plugins page to DI-Guy Scenario to match page from V6 UI.
2800  **
2801  ** \subsubsection v618digs Version 6.1.8
2802  **
2803  *- - Fixed world space collisions for particles, functionality was
2804  *- temporally broken.
2805  *- - Particle UI should be now be almost entirely working in DI-Guy
2806  *- Scenario.
2807  *>
2808  *- - Added load particle descriptions button to UI.
2809  *- - Added collision plane rendering check box to UI.
2810  *- - Added check box to particle page that optionally turns off
2811  *- placeholders.
2812  *- - Added orientation flag to particles, useful for parented
2813  *- emitters.
2814  *- - Renaming particles should validate names and echo to other
2815  *- appearance menus.
2816  *- - Adding or removing particle descriptions now properly updates
2817  *- the appearance section of the character page and people blitzer.
2818  *- - Particle manager was getting updated unnecessarily causing
2819  *- particles to playback 2x as fast.
2820  *<
2821  *- - Fixed a focus out problem that yielded a hard lock up if a load
2822  *- manager error message was produced.
2823  *- - Waypoints and sensor regions visuals weren't being properly
2824  *- updated when data changed.
2825  *- - Editing a Scene object triggers the unsaved flag more often.
2826  *- - Fixed a glitch where shadows and the profiler wouldn't work
2827  *- together.
2828  *- - Added UI for setting character and scene object culling active.
2829  *- - Added UI for setting character and scene object bounding volume
2830  *- visualization active.
2831  *-
2832  ** \subsubsection v617digs Version 6.1.7
2833  **
2834  *- - Added UI for setting the character's label text and controlling
2835  *- whether the label is visible to the Character page.
2836  *- - Added new visibility option for Character Labels on the
2837  *- Visibility page: Per Object.
2838  *- - Major reworking of the DI-Guy Scenario user interface in
2839  *- preparation for the DI-Guy 7 release.
2840  *- A version of the program with the old interface (henceforth
2841  *- called the V6 UI) will be available in releases for awhile
2842  *- with a different filename. As time goes on new features that
2843  *- appear in DI-Guy Scenario may not appear in the V6 UI.
2844  *- - Changed the sound module of DI-Guy Scenario to be based on
2845  *- OpenAL. This fixed a problem with sounds playing back too
2846  *- fast on certain systems, and allows for 3D position sounds.
2847  **
2848  ** \subsubsection v616digs Version 6.1.6
2849  **
2850  *- - Added "+plugin <plugin_name>" command line argument. This will
2851  *- load the specified plugin as the application is starting up.
2852  *- This is essentially the same as calling diguyApp::load_plugin()
2853  *- before the initial scenario is created.
2854  *- - Added "Plugin" page. This allows a scenario designer to specify
2855  *- which plugins are required for proper execution of the scenario.
2856  *- - Fixed crash bug that occasionally occurred when the "Trigger Now"
2857  *- button was clicked on the Script and Decision pages.
2858  *- - Added UTM Coordinates to the Networking page.
2859  *- - Added "Decisions", which are similar to Script Events but
2860  *- have a UI for constructing logic similar to Decision Beads.
2861  **
2862  ** \subsubsection v614digs Version 6.1.4
2863  **
2864  *- - Fixed minor problems with decision bead page. The parameters for
2865  *- the sensor region function
2866  *- contains_character_by_type_and_appearance() did not include
2867  *- quotes and were not alphabetized.
2868  *- - Added buttons "Add All" and "Remove All" to Group page.
2869  **
2870  ** \subsubsection v611digs Version 6.1.1
2871  **
2872  *- - Added Load Manager page to the Scenario window. Now users can
2873  *- enable load management, and adjust load management parameters
2874  *- from within DI-Guy Scenario.
2875  *- - Particle warm up time should now work properly on reset.
2876  *- - Added particle system life time, after which it will no longer emit
2877  *- particles.
2878  *- - Added new Particle position and velocity noise options, should allow
2879  *- for better control and movement options.
2880  *- - Added character variable querying to decision beads, can now query
2881  *- variables with: variable_equal_to_(float, int, string),
2882  *- variable_less_than_(float, int, string) and
2883  *- variable_greater_than_(float, int, string).
2884  *- - Added character variable actions to decision beads, can now have
2885  *- actions that affect variables, using
2886  *- variable_set_value_as_(float, int, string) and
2887  *- variable_increment and decrement.
2888  *- string) and variable_greater_than_(float, int, string).
2889  *- - Can now use decision beads to check whether someone's been shot,
2890  *- as well as where the shot hit.
2891  *- - Changed how decision beads get pointers to objects; previously
2892  *- if an object was referenced multiple times in a decision bead
2893  *- (e.g., multiple queries were made of character "soldier-1" in
2894  *- the if clauses), the same object was searched for multiple times.
2895  *- Now a pointer to the object is just searched for once.
2896  *- - Added Variable page to Character window. This page allows for
2897  *- creation, deletion, and editing of character variables. Character
2898  *- variables are almost exactly the same as scenario variables, but
2899  *- are private to each character instead of being shared across the
2900  *- entire scenario.
2901  **
2902  ** \subsubsection v610digs Version 6.1.0
2903  **
2904  *- - Ctrl-'u' now pushes a scenario undo onto the undo stack.
2905  *- - Space bar toggles between play and pause; Ctrl-space bar does a
2906  *- reset.
2907  **
2908  ** \subsubsection v608digs Version 6.0.8
2909  **
2910  *- - DI-Guy Scenario now properly sets the network Force ID for
2911  *- outgoing entities based on group membership. Groups
2912  *- net_friendly, net_opposing, and net_neutral should be used to
2913  *- indicate the Force ID of outgoing entities.
2914  *- - DI-Guy Scenario now assigns incoming entities to group
2915  *- net_friendly, net_opposing, or net_neutral based on the
2916  *- incoming Force ID.
2917  *- - Incoming entities cannot now be assigned to or removed from
2918  *- groups. As well, groups to which incoming entities belong
2919  *- cannot be deleted.
2920  **
2921  ** \subsubsection v602digs Version 6.0.2
2922  **
2923  *- - Fixed problem with "Deflate" compression method for movie frame
2924  *- capture.
2925  *- - Changed label of "Reset" button on Movie Settings page to "Reset
2926  *- Next Frame Number", to differentiate it from the Reset button
2927  *- on the Control palette.
2928  **
2929  ** \subsubsection v601digs Version 6.0.1
2930  **
2931  *- - Added setting of Scenario Review Data on Scenario Performance
2932  *- page to .dss file. It was not being saved and restored as
2933  *- scenarios were saved and loaded.
2934  *- - Changed scenario "Loop" functionality. If no characters have
2935  *- review data, the scenario will reset and play rather than
2936  *- rewind and show review data.
2937  *- - Removed unused "Altitude" edit box from Networking property page.
2938  *- (PR 3002)
2939  *- - Changed gaze bead logic so that faster gazes are possible. The
2940  *- desired locate time for gaze beads was effectively limiting the
2941  *- maximum angular velocity. Now if a gaze bead overrides gaze
2942  *- parameters, it also turns off use of the desired locate time for
2943  *- each link. (PR 3030)
2944  **
2945  ** \subsubsection v600digs Version 6.0.0
2946  **
2947  *- - Added "GoThere" camera movement. In Camera mode, if there is
2948  *- neither a Look At character nor a Look From character selected
2949  *- and the camera projection mode is "free camera", if you hold
2950  *- the Shift key and left-click on anything in the scene, the
2951  *- camera will rapidly travel to what you Shift+clicked on and
2952  *- turn around to face the location from which the camera came.
2953  *- This also works from modes other than camera mode, if you press
2954  *- and hold Alt+Shift while left-clicking.
2955  *- - Changed Aim Bead UI to match Gaze Bead UI. Note that now
2956  *- aiming is also precise, and dynamic. See DI-Guy aiming change
2957  *- above.
2958  *- - Fixed problem with current light and fog settings being overwritten
2959  *- when a .dss file was loaded. (PR 2019)
2960  *- - Fixed problem with primary view of scenario returning 0 when
2961  *- diguyScenarioView::is_showing() was called on it. The correct
2962  *- value is now returned. (PR 2954)
2963  *- - Added ability to change window title of primary view using the
2964  *- call diguyView::set_window_title(). (PR 2953)
2965  *- - Fixed problem with looking at scene objects that are translated
2966  *- away from the origin. (PR 2722)
2967  *- - Fixed problem for character paths on load. Paths that weren't
2968  *- the initial path of the character weren't being fully initialized
2969  *- until they were used by the character. Now all paths receive
2970  *- an initial update call on load.
2971  *- (PR 2791)
2972  *- - Added new command line argument: -no_info_popup_server. Adding
2973  *- this argument to the command line causes DI-Guy Scenario to not
2974  *- attempt to start the program DIGuyInfoPopupServer. If the
2975  *- server is not started, info popup windows will not appear.
2976  *- - Fixed problem that if the Initial Script Filename on the Script
2977  *- Event property page specified a script that didn't exist,
2978  *- no warning was given. Now a log message at Warn level is
2979  *- printed for a missing script file. (PR 2826)
2980  *- - Fixed problem that prevented Performance settings from taking
2981  *- effect unless the scenario was saved and reloaded.
2982  *- - Added edit box for setting character's initial motion texture
2983  *- gain. (PR 2845)
2984  *- - Added UI preference for turning off the "DI-Guy Scenario by
2985  *- Boston Dynamics" overlay.
2986  **
2987  **
2988  ** \subsection v50digs Version 5.0
2989  **
2990  ** \subsubsection v535digs Version 5.3.5
2991  **
2992  *- - Changed edit box for setting character's initial motion texture
2993  *- into a combo box that shows which motion textures are available.
2994  **
2995  ** \subsubsection v532digs Version 5.3.2
2996  **
2997  *- - Small improvement to particle system UI, fixed outstanding issues
2998  *- with texture map browser widget. Color Widgets go right to a color
2999  *- picker. Clicking on static text opens subitems.
3000  *- - Particle Systems now populate better between ticks, i.e. release
3001  *- intervals smaller then the update time now work.
3002  *- - Performance improvements to the particle systems.
3003  **
3004  ** \subsubsection v531digs Version 5.3.1
3005  **
3006  *- - Removed Review Data dt data member from diguyScenario objects
3007  *- and from the DI-Guy Scenario UI. Any scenario review data is
3008  *- now recorded at the scenario's tick dt.
3009  *- - Split Visibility / Performance page into two separate
3010  *- pages named Visibility and Performance.
3011  **
3012  ** \subsubsection v530digs Version 5.3.0
3013  **
3014  *- - Made it possible to turn off review data generation for scenarios.
3015  *- By default, scenarios created in the DI-Guy Scenario editor will
3016  *- have review data enabled; scenarios created using the DI-Guy API
3017  *- will have review data disabled. Turning on review data can add
3018  *- significantly to memory usage. Changing review data settings can
3019  *- be done using the function diguyScenario::set_history_type(), or
3020  *- using the Review Data Type radio buttons on the Visibility /
3021  *- Performance page of the DI-Guy Scenario editor.
3022  **
3023  ** \subsubsection v523digs Version 5.2.3
3024  **
3025  *- - Added joystick gain settings to Preferences. The gains allow
3026  *- DI-Guy Scenario users to adjust how sensitive the joystick will
3027  *- be. Gains of 1.0 retain previous behaviors. Gains less than
3028  *- 1.0 make joystick control less sensitive; i.e., it will take a
3029  *- larger movement to achieve a response. Gains more than
3030  *- 1.0 make joystick control more sensitive; i.e., it will take a
3031  *- smaller movement to achieve a response.
3032  **
3033  ** \subsubsection v521digs Version 5.2.1
3034  **
3035  *- - Special Effects: DI-Guy Scenario now offers a new add-on option for
3036  *- particle-based special effects. Examples of particle effects include
3037  *- smoke, fire, debris, missile trails, rotor wash, explosions, and dust
3038  *- trails. A Particles tab is now available in the Scenario palette for
3039  *- easy control of effects parameters include size, number, color,
3040  *- texture map, velocity, wind effect, and gravity.
3041  *- - Fixed crashing bug when undoing path changes.
3042  *- - Fixed minor issues with using soldier character
3043  *- backward actions and companion waypoints.
3044  *- - Fixed problem where character sounds were not consistently
3045  *- playing when a scenario looped.
3046  *- - Fixed problem where path shapes were not always being drawn
3047  *- when they should have been.
3048  *- - Fixed problem where having path shapes in a scenario caused
3049  *- the program to crash on exit.
3050  *- - Fixed crashing bug when shutting down a scenario that
3051  *- contains characters with guides.
3052  **
3053  ** \subsubsection v520digs Version 5.2.0
3054  **
3055  *- - Added ability to show character names as floating
3056  *- labels next to the character in the 3D window.
3057  *- Name labels can be shown for current character only,
3058  *- all characters, or no characters. Access via the
3059  *- Scenario | Visibility / Performance property page.
3060  *- - Added "Look At" buttons for characters, waypoints,
3061  *- and path beads on respective Elements pages.
3062  *- - Added special effects such as smoke and fire.
3063  *- - Fixed perl script interpreter so that it will work
3064  *- if DI-Guy is installed in a directory with spaces.
3065  *- - Fixed problem where LOD range scale factors weren't
3066  *- taking effect for scene objects.
3067  **
3068  **
3069  **************************************
3070  ** \section v9diguyAI DI-Guy AI 9.0 and earlier
3071  **************************************
3072  **
3073  ** \subsection v90AI Version 9.0.x
3074  **
3075  ** \subsubsection v901AI Version 9.0.1
3076  **
3077  *- - Fixed bug where characters were improperly going through walls.
3078  *- - Fixed a number of minor crashes with creating behavior paths.
3079  **
3080  ** \subsubsection v900AI Version 9.0.0
3081  **
3082  *- - To enable DI-Guy AI in programs using the DI-Guy SDK, the header
3083  *- file "diguy_ai.h" must be included, and the functions
3084  *- diguy_ai_initialize() and diguy_ai_deinitialize() must be called
3085  *- at the appropriate times.
3086  *- - New command line flag added to DI-Guy Scenario for optionally.
3087  *- disabling DI-Guy AI. By default DI-Guy Scenario will look for the
3088  *- diguy_ai license feature and check it out if it is present. By
3089  *- putting "-module diguy_ai" on the command line, DI-Guy Scenario will
3090  *- not attempt to enable DI-Guy AI.
3091  *- - Fixed problem with DI-Guy AI agents having trouble killing animals.
3092  *- - Painting a non-continuous region will be more likely to successfully
3093  *- create a behavior path, the longest path from the start point to the
3094  *- mouse up location is used.
3095  *- - Fixed issues with feelers: changes made via UI now change all crowd
3096  *- members, 3D rep of feelers now updated immediately when changed and
3097  *- on reset.
3098  *- - Fixed problem that agent feeler collide distance could not be
3099  *- greater than turn distance.
3100  *- - It is now possible to add a feeler callback to enable DI-Guy AI agents
3101  *- to interact better with static geometry in the SDK. See the following
3102  *- functions for more details:
3103  *>
3104  *- - diguyCharacter::agent_set_feeler_function()
3105  *- - diguyCharacter::agent_get_feeler_function()
3106  *- - diguyScenario::agent_set_default_character_feeler_function()
3107  *<
3108  *- - Crowds and agents can now flee a group. Accessed via:
3109  *>
3110  *- - diguyCharacter::agent_flee_group()
3111  *- - diguyCrowd::agents_flee_group()
3112  *<
3113  **
3114  ** \subsubsection v863AI Version 8.6.3
3115  **
3116  *- - Crowd UI Improvements:
3117  *>
3118  *- - Selected member will now only show postures and variants that it has
3119  *- available.
3120  *- - Selected edit mode with display better visual cues indicating which
3121  *- crowd members will be affected by changes
3122  *- - Added look at member button.
3123  *<
3124  *- - Crowd Blitzing: Blitzing a crowd into an area that is non-contiguous
3125  *- will now attempt to find the longest path from the start point to
3126  *- the end point, This should fix a frequent failure case with the
3127  *- Blitzer.
3128  **
3129  ** \subsubsection v861AI Version 8.6.1
3130  **
3131  *- - DI-Guy SAF references changed to DI-Guy AI.
3132  **
3133  ** \subsubsection v860AI Version 8.6.0
3134  **
3135  *- - New DI-Guy SAF functions:
3136  *>
3137  *- - diguyCharacter::agent_set_current_behavior_region_border_is_solid()
3138  *- - diguyCrowd::set_all_members_enabled()
3139  *- - diguyCrowd::set_current_behavior_region_border_is_solid()
3140  *- - diguyCrowd::is_current_behavior_and_focus_group()
3141  *- - diguyCrowd::is_current_behavior_and_focus_character()
3142  *- - diguyCrowd::is_current_behavior()
3143  *- - diguyCrowd::is_crowd_dead()
3144  *- - diguyScenario::set_create_network_crowds()
3145  *- - diguyScenario::get_create_network_crowds()
3146  *<
3147  ** \subsubsection v850AI Version 8.5.0
3148  **
3149  *- - Initial DI-Guy SAF release.
3150  *- - Added/updated DI-Guy SAF classes:
3151  *>
3152  *- - diguyAgentParams
3153  *- - diguyCrowdProfile
3154  *- - diguyCrowd (extensive changes, promoted from experimental)
3155  *<
3156  *- - New DI-Guy SAF functions:
3157  *>
3158  *- - diguyScenario::destroy_crowd()
3159  *- - diguyScenario::get_num_crowds()
3160  *- - diguyScenario::find_crowd()
3161  *- - diguyScenario::get_crowd_at_index()
3162  *- - diguyScenario::create_crowd_profile()
3163  *- - diguyScenario::destroy_crowd_profile()
3164  *- - diguyScenario::get_num_crowd_profile()
3165  *- - diguyScenario::find_crowd_profile()
3166  *- - diguyScenario::get_crowd_profile_at_index()
3167  *- - diguyScenario::create_group_in_region()
3168  *- - diguyCharacter::agent_attack_group()
3169  *- - diguyCharacter::agent_flee_character()
3170  *- - diguyCharacter::agent_flee_location()
3171  *- - diguyCharacter::agent_remove_all_flee_objects()
3172  *- - diguyCharacter::agent_mingle_in_region()
3173  *- - diguyCharacter::agent_pursue_character()
3174  *- - diguyCharacter::agent_pursue_group()
3175  *- - diguyCharacter::agent_travel_behavior_path()
3176  *- - diguyCharacter::agent_travel_path_shape()
3177  *- - diguyCharacter::agent_travel_region_border()
3178  *- - diguyCharacter::agent_wander_region()
3179  *- - diguyCharacter::agent_stop_behavior()
3180  *- - diguyCharacter::agent_set_current_focus_character()
3181  *- - diguyCharacter::agent_set_current_focus_group()
3182  *- - diguyCharacter::agent_get_initial_params()
3183  *- - diguyCharacter::agent_get_current_params()
3184  *- - diguyCharacter::agent_set_current_params_from_profile()
3185  *- - diguyCharacter::agent_get_current_focus_character()
3186  *<
3187  **
3188  **************************************
3189  ** \section v9ME DI-Guy Motion Editor 9.0 and earlier
3190  **************************************
3191  **
3192  ** \subsection v90ME Version 9.0.x
3193  **
3194  ** \subsubsection v901ME Version 9.0.1
3195  **
3196  *- - Added sample bvh file to motions directory, should help document how
3197  *- DI-Guy expects bvh files to be structured.
3198  **
3199  ** \subsubsection v900ME Version 9.0.0
3200  **
3201  *- - If motions are added to an action table, the proper default actor
3202  *- is now set automatically.
3203  *- - Improved support for editing offset poses, should be much easier, and
3204  *- not cause abrupt joint behavior.
3205  *- - Changing the actor of a motion arc now immediately applies the new
3206  *- scale to the motion, improvements to actor choosing, motion scaling,
3207  *- and importing code.
3208  *- - Fixed a number of action table editing issues: including hard crash
3209  *- with undo, "remove unused motions" causing corrupted action tables.
3210  *- - General UI improvements:
3211  *>
3212  *- - +/- keys behave more intuitively with regards to the yaw/pitch/roll
3213  *- of the poser.
3214  *- - Shift key alters magnitude of +/- change.
3215  *- - Poser editing gizmo now auto-scales based on camera distance.
3216  *- - Editing mode is now displayed in 3D window title bar.
3217  *- - Initial directories for me project, importing motions and saving
3218  *- motions are now set to expected values.
3219  *<
3220  **
3221  ** \subsubsection v863ME Version 8.6.3
3222  **
3223  *- - Fixed issue with zero length animations causing div by zero.
3224  *- - Fixed minor bug with action tables not properly updating when unused
3225  *- motions were removed.
3226  **
3227  ** \subsubsection v7111ME Version 7.1.11
3228  **
3229  *- - Fixed problem that many error messages would appear when saving
3230  *- action tables.
3231  **
3232  ** \subsubsection v7110ME Version 7.1.0
3233  **
3234  *- - Fixed various problems with setting variants and angle
3235  *- extents for 2-axis motions in the Action Table Editor.
3236  *- - Added sliders for testing aim actions in the Action Table
3237  *- Editor.
3238  **
3239  ** \subsubsection v619ME Version 6.1.9
3240  **
3241  *- - Fixed a number of bugs introduced with the upgrade to high
3242  *- precision positions.
3243  **
3244  ** \subsubsection Version 6.1.0
3245  **
3246  *- - Added new gesture table editor, allows for the modification of
3247  *- the action tables of table gestures.
3248  *- - Null motion arcs are now editable, with blend type and duration
3249  *- as parameters.
3250  **
3251  ** \subsubsection v606ME Version 6.0.6
3252  **
3253  *- - BVH file import now supports joint translations in addition to
3254  *- rotations.
3255  *- - Resultant BDM files contain only relevant variables.
3256  **
3257  ** \subsubsection v600ME Version 6.0.0
3258  **
3259  *- - Initial 6.0 DI-Guy Motion Editor release.
3260  **
3261  **
3262  **************************************
3263  ** \section v8digcv DI-Guy Character Viewer 9.0 and earlier
3264  **************************************
3265  **
3266  ** \subsection v80cv Version 8.0.x
3267  **
3268  ** \subsubsection v802CV Version 8.0.2
3269  **
3270  *- - Added view selection buttons that load new camera settings.
3271  **
3272  ** \subsubsection v619CV Version 6.1.9
3273  **
3274  *- - Fixed a number of bugs introduced with the upgrade to high
3275  *- precision positions.
3276  *- - Fixed character transparency.
3277  *- - Fixed selecting the default appearance.
3278  **
3279  ** \subsection v60cv Version 6.0.x
3280  **
3281  ** \subsubsection v602CV Version 6.0.2
3282  **
3283  *- - Added default settings file that shows Character Type /
3284  *- Appearance / Action selection page.
3285  **
3286  ** \subsubsection v601CV Version 6.0.1
3287  **
3288  *- - Fixed problem where appearances that used a different actor than
3289  *- the default actor for a character did not correctly display.
3290  **
3291  ** \subsubsection v600CV Version 6.0.0
3292  **
3293  *- - DI-Guy Character Viewer added to DI-Guy Applications Suite.
3294  *- Allows quick review of character types, appearances, and
3295  *- actions.
3296  **
3297  **
3298  **************************************
3299  ** \section v9vpdiguy DI-Guy for Vega Prime Version 5.2 - 9.0
3300  **************************************
3301  **
3302  ** \subsection v90VP Version 9.0
3303  **
3304  ** \subsubsection v903VP Version 9.0.3
3305  **
3306  *- - vpNet 2.2 should now be enabled.
3307  *- - Fixed issue with skyLight lighting and shaders not being properly
3308  *- applied.
3309  *- - Fixed Memory leak when characters were unrefed to zero. Note a slight
3310  *- change to the basics example.
3311  **
3312  ** \subsubsection v901VP Version 9.0.1
3313  **
3314  *- - Fixed issue with new vpDiguys not having their locations properly
3315  *- set when reading out of an acf.
3316  *- - Fixed issue with vpDiguyCharacters parented to vpTransforms not
3317  *- being properly created.
3318  **
3319  ** \subsubsection v900VP Version 9.0.0
3320  **
3321  *- - DI-Guy for Vega Prime now works with VP 2.2.
3322  **
3323  ** \subsection v80VP Version 8.0
3324  **
3325  ** \subsubsection v863VP Version 8.6.3
3326  **
3327  *- - Fixed crash on exit when a vpDiguyCharacter parent was not a
3328  *- scenario.
3329  *- - Fixed bug where characters would multiply render if they were
3330  *- parented to a vpObject
3331  *- - parented and translated characters will should start broadcasting
3332  *- over the network with proper values.
3333  **
3334  ** \subsubsection v803VP Version 8.0.3
3335  **
3336  *- - Moved example_acfs to their own subdirectory instead of in
3337  ** simple_playback directory.
3338  *- - Added warning about setting channel LOD scale to zero, can cause
3339  ** character to not draw.
3340  *- - Fixed an issue where not having a valid license could cause vp
3341  ** applications to crash.
3342  *- - Fixed licensing issue effecting vpDiguy/vpNet/HLA/stealth.
3343  *- - Basics Programming example now demonstrates ground clamping. As well
3344  *- as some other polish to programming examples.
3345  **
3346  ** \subsubsection v802VP Version 8.0.2
3347  **
3348  *- - Improved reporting of version information during installation.
3349  **
3350  ** \subsubsection v800VP Version 8.0.0
3351  **
3352  *- - Initial 8.0 release candidate.
3353  *- - vpDiguy using vpNet should now support all coordinate conversion
3354  *- routines that vpNet supports.
3355  *- - Memory usage and rendering performance improvements.
3356  **
3357  ** \subsection v70VP Version 7.0
3358  **
3359  ** \subsubsection v708VP Version 7.0.8
3360  **
3361  *- - Fixed HLA networking licensing issue. Shouldn't need explicit hla
3362  *- license with vpNet.
3363  *- - Added new autogenerated vpDiguy SDK docs.
3364  *- - Added code to basics example that demonstrates creating a character
3365  *- after configure.
3366  *- - Added documentation about vpDiguy openAL audio module's
3367  *- incompatibility with vpAudio module.
3368  *- - Added static versions of vpDiguy libraries, updated autolinking
3369  *- code in vpDiguyCpp.cpp.
3370  **
3371  ** \subsubsection v707VP Version 7.0.7
3372  **
3373  *- - Fixed a number of vpNet related bugs.
3374  *- - NOTE: In order to make vpNet interaction more solid reading of
3375  *- UTM coordinates out of Scenario Objects in vpDiguy has been
3376  *- disabled. UTM coordinates should be specified explicitly in the
3377  *- Net Connection gcf panel and the DI-Guy Scenario Network Page.
3378  **
3379  ** \subsubsection v706VP Version 7.0.6
3380  **
3381  *- - Fixed a number of recreation/looping related bugs.
3382  **
3383  ** \subsubsection v703VP Version 7.0.3
3384  **
3385  *- - Turned on vpNet/vpDiguy networking.
3386  *- - Updated all the acfs to be vp 2.0 compliant.
3387  *- - Updated vpDiguy gcf to include new 7.0 content.
3388  *- - Fixed bug in UTM support.
3389  *- - Fixed problem if multiple diguy particles attempt to instantiate
3390  *- the same type of vpFX. Fixed memory leak as well.
3391  *- - Fixed divide by zero bug in networking code, could cause 0th
3392  *- character to never show up.
3393  *- - Fixed bug where a character with an appearance change would
3394  *- not be recreated properly if a scenario was looping.
3395  **
3396  ** \subsubsection v700VP Version 7.0.0
3397  **
3398  *- - Fixed a couple of vpDiguyScenario function calls to print a warning
3399  *- if the functions are called before configure, instead of crashing.
3400  *- - diguyCharacter's position syncs with vpDiguyCharacter on creation.
3401  *- - Distributed rendering should now support mapping from DI-Guy
3402  * particles.
3403  **
3404  **
3405  ** \subsection v60VP Version 6.0
3406  **
3407  ** \subsubsection v6111VP Version 6.1.11
3408  **
3409  *- - Consolidated networking examples, moved
3410  *- vpnet_(send/receive)_(dis/hla).acf
3411  *- into simple_playback because they didn't have unique c++ code.
3412  *- - Added postLoad function to vpDiguyCharacter building code to try
3413  *- and enable sensor prime.
3414  *- - Added vpDiguyScenario::set_time_independant_of_vp_sim_time() and
3415  *- vpDiguyScenario::get_time_independant_of_vp_sim_time() Allows
3416  *- time to be disconnected from sim time.
3417  **
3418  ** \subsubsection v6110VP Version 6.1.10
3419  **
3420  *- - Renamed vpDiguyScenario::SetSyncCameraEnable() to
3421  *- vpDiguyScenario::setSyncCameraEnable().
3422  **
3423  ** \subsubsection v619VP Version 6.1.9
3424  **
3425  *- - Added per scenario time offset code.
3426  **
3427  ** \subsubsection v618VP Version 6.1.8
3428  **
3429  *- - Code now compiles against Vega 2.0 libraries:
3430  *- - Added 2.0 style copy constructor for diguyCharacters to use in
3431  *- cloning.
3432  *- - Fixed a bug where locked off joints issued warnings.
3433  *- - Fixed a bug where some dynamic matrixes weren't being properly
3434  *- updating, fixes gazing inside Vega.
3435  *- - Altered how diguyScenarios get loaded to accommodate new
3436  *- merging code.
3437  *- - Unsupported Vega sound module now uses openAL.
3438  **
3439  ** \subsubsection v611VP Version 6.1.1
3440  **
3441  *- - gcfs and xsd no longer use "DI-Guy" in the naming convention;
3442  *- instead "Diguy" is now used. This avoids uncompilable code
3443  *- generated from lynxPrime's export .cpp functionality, as well
3444  *- as being more consistent with Vega conventions.
3445  **
3446  ** \subsubsection v608VP Version 6.0.8
3447  **
3448  *- - Fixed serious bug affecting HLA networking in DI-Guy for Vega
3449  *- Prime. This bug was causing various problems, ranging from
3450  *- missing or extra apparent network entities, to entities
3451  *- appearing at the wrong location.
3452  **
3453  ** \subsubsection v607VP Version 6.0.7
3454  **
3455  *- - Changed all Vega Prime code/acfs that specify "DI-Guy" to "Diguy".
3456  *- This should allow cpp exports to work better.
3457  *- - Renamed vpDiguy.h/cpp to vpDiguySettings to better match acf info.
3458  *- - Added Vega Prime view settings example that shows off camera sync
3459  *- code.
3460  *- - Added Vega Prime simple example that shows how to initialize and
3461  *- run with no acf or dss.
3462  **
3463  ** \subsubsection v606VP Version 6.0.6
3464  **
3465  *- - Fixed problem which inadvertently disabled standard Vega Prime
3466  *- "X" key functionality (enable / disable the position strategy
3467  *- for all observers) in a vpDiguy application.
3468  **
3469  ** \subsubsection v605VP Version 6.0.5
3470  **
3471  *- - Fixed problems preventing DI-Guy for Vega Prime from
3472  *- working with DIS/HLA for Vega Prime. DI-Guy for Vega
3473  *- Prime now works with Vega Prime 1.2.2 from MultiGen
3474  *- Paradigm and vpNet 1.2.2 from MAK Technologies. Prior
3475  *- versions of vpNet are not supported.
3476  **
3477  ** \subsubsection v602VP Version 6.0.2
3478  **
3479  *- - Switched bdiString to bdiString* in vpDiguyCharacter.h, to remove
3480  *- a dependency on a header file that is not distributed.
3481  **
3482  ** \subsubsection v601VP Version 6.0.1
3483  **
3484  *- - Fixed problem in vpDiguy DIS networking. Outgoing entities were
3485  *- being published with entity numbers which conflicted with those
3486  *- being used by Vega Prime entities. On the receiving end, this
3487  *- would cause characters to pop from place to place.
3488  **
3489  **
3490  ** \subsection v50VP Version 5.0
3491  **
3492  ** \subsubsection v534VP Version 5.3.4
3493  **
3494  *- - Added a circle example program to programming_examples/vpdiguy.
3495  **
3496  ** \subsubsection v533VP Version 5.3.3
3497  **
3498  *- - DI-Guy characters types are now listed in a Character Type combo box.
3499  *- - A character type sensitive list of appearances are now listed in an
3500  *- Appearance combo box.
3501  *- - A character type sensitive list of actions are now listed in an
3502  *- Action combo box.
3503  *- - A character type sensitive list of head appearances are now listed
3504  *- in a Head Appearance combo box.
3505  *- - Altering the xyz position, heading or scale factor of a character
3506  *- now reflects on the character immediately.
3507  *- - Adding a ground clamp to a DI-Guy Scenario node now adds the ground
3508  *- clamp to all of its children that don't currently have a ground
3509  *- clamp.
3510  *- - Added new DI-Guy Settings functionality, including turning on/off
3511  *- scripting, sound effects, facial expressions, and the mapping of
3512  *- DI-Guy particles to Vega particles.
3513  *- - Added new options to DI-Guy Scenario panel.
3514  *- - Added toggle for showing scene objects found in the scenario file.
3515  *- - Added Sync Camera option that will slave the observer/motion controls
3516  *- to the DI-Guy camera.
3517  *- - Adding a DI-Guy character directly to a scene now creates one without
3518  *- a scenario being necessary.
3519  *- - DI-Guy characters dropped into a vpNet model map are now correctly
3520  *- cloned. (Requires the latest version of vpNet.)
3521  **
3522  ** \subsubsection v531VP Version 5.2.1
3523  **
3524  *- - Better integration with MaK's vpNet module (see above).
3525  *- - Installation now occurs as a separate module on the DI-Guy CD.
3526  *- - Installation now automatically copies samples, documents to the Vega
3527  *- Prime installation as well as registering the DI-Guy for Vega Prime
3528  *- module.
3529  **
3530  *
3531 
3532  *****************************************************************************
3533  *****************************************************************************
3534  **
3535  ** \section diguydata DI-Guy Data, 9.0 and Earlier
3536  **
3537  *****************************************************************************
3538  *****************************************************************************
3539  **
3540  ** \subsection v90data Version 9.0
3541  **
3542  **
3543  ** \subsubsection v901data Version 9.0.1
3544  **
3545  *- - Added character soldier_sa80, a British soldier with desert and
3546  *- temperate appearances using a sa80, based on the soldier_07 character.
3547  *- Available appearances:
3548  *>
3549  *- - uk_desert_sa80
3550  *- - uk_temperate_sa80
3551  *<
3552  *- - Added character "projectile" with meters per second motions.
3553  *- Character projectile appearances:
3554  *>
3555  *- - rpg_fired
3556  *- - sa7_fired
3557  *- - stinger_fired
3558  *- - javelin_fired
3559  *- - 120mm_tank_round_fired
3560  *- - at4_fired
3561  *- - 40mm_fired
3562  *<
3563  *- - Added sound files: m203_hit.wav, fire_m203.wav, arabic_street_sounds.wav
3564  *- sa7_flight.wav, sa7_fired.wav, stinger_fired.wav, stinger_flight.wav,
3565  *- javelin_flight.wav, javelin_impact.wav, at4_fired.wav, at4_flight.wav
3566  *- at4_impact.wav, javelin_fired.wav, pk74_fired.wav, m1a1_fired.wav
3567  **
3568  ** \subsubsection v901data Version 9.0.0
3569  **
3570  *- - Some character types have been made deprecated, and made "legacy"
3571  *- character types. If these character types are used in an existing
3572  *- .dss file or are created by a diguyScenario::create_character()
3573  *- call they will be created, but by default they will not show up
3574  *- in any DI-Guy Scenario character type selection controls. The
3575  *- legacy character types are:
3576  *>
3577  *- - soldier_m249
3578  *- - soldier_m4
3579  *- - soldier_qk
3580  *- - soldier_signals
3581  *- - soldier_fire
3582  *- - soldier_pistol
3583  *- - soldier_melios
3584  *- - afghan_child_crowd
3585  *- - male_pedestrian3
3586  *- - mped_sweeper
3587  *- - mped1_misc
3588  *- - mped2_misc
3589  *- - mped3_misc
3590  *- - mped5_crowd2
3591  *- - mped5_crowd3
3592  *- - mped5_crowd4
3593  *- - mped5_crowd5
3594  *- - mped5_crowd6
3595  *- - fped2_misc
3596  *- - fped3_crowd2
3597  *- - suspect3
3598  *- - marshaller
3599  *- - esil
3600  *- - soldier_precise
3601  *- - launcher
3602  *- - suspect
3603  *- - suspect2
3604  *- - fped_mother
3605  *- - sergeant
3606  *<
3607  **
3608  ** \subsection v80data Version 8.0
3609  **
3610  ** \subsubsection v800data Version 8.0.0
3611  **
3612  *- - New character types:
3613  *>
3614  *- - chain_simulation
3615  *- - civilian_cc
3616  *- - soldier_cc
3617  *- - soldier_at4
3618  *- - soldier_javelin
3619  *- - soldier_m249
3620  *- - soldier_m9
3621  *- - soldier_m4
3622  *- - train
3623  *<
3624  *- - New human appearances:
3625  *>
3626  *- - 3 Security Guards
3627  *- - Hazmat Suits level A B and C
3628  *- - Assortment of Hazmat props
3629  **
3630  *- - 10 different Close Combat civilians
3631  *- - Close Combat BDU and DCU with M9, M249, M240, M60, AT4,
3632  *- Javelin M4 with M203, M16 with M203 Stinger weapons
3633  *- - Close Combat Opfor with SA16, RPG7, AK47 and PK74 weapons
3634  **
3635  *- - 3 Iraqi Insurgents
3636  *- - 2 Iraqi Soldier
3637  *- - 2 Iraqi Police
3638  **
3639  ** The following soldier appearances can have M9, M249, M240, M60,
3640  ** AT4, Javelin M4 with M203 and M16 with M203 weapons:
3641  **
3642  *- - 4 BDU with IBA
3643  *- - 4 ACU with IBA
3644  *- - 4 USMC with IBA
3645  *- - 4 USMC desert with IBA
3646  *<
3647  *- - New turret vehicle and technical vehicle appearances:
3648  *>
3649  *- - gaz_truck_w_ZSU23_turret
3650  *- - gaz_truck_w_ZSU23_turret_blown
3651  *- - toyota_pickup_tech_turret
3652  *- - toyota_pickup_tech_turret_blown
3653  *- - humvee_50cal_grn_turret
3654  *- - humvee_50cal_grn_turret_blown
3655  *- - humvee_50cal_des_turret
3656  *- - humvee_50cal_des_turret_blown
3657  *- - m1a2_abrams_grn_turret
3658  *- - m1a2_abrams_grn_turret_blown
3659  *- - m1a2_abrams_des_turret
3660  *- - m1a2_abrams_des_turret_blown
3661  *- - t72_tank_grn_turret
3662  *- - t72_tank_grn_turret_blown
3663  *- - t72_tank_des_turret
3664  *- - t72_tank_des_turret_blown
3665  *- - m2a3_bradley_grn_turret
3666  *- - m2a3_bradley_grn_turret_blown
3667  *- - m2a3_bradley_des_turret
3668  *- - m2a3_bradley_des_turret_blown
3669  *- - leclerc_tank_descamo_turret
3670  *- - leclerc_tank_descamo_turret_blown
3671  *- - leclerc_tank_camo_turret
3672  *- - leclerc_tank_camo_turret_blown
3673  *<
3674  *- - Added Motions to Soldier and Soldier2 characters:
3675  *>
3676  *- - stand_ready_8th_turn_left
3677  *- - stand_ready_8th_turn_right
3678  *- - stand_ready_qtr_turn_left
3679  *- - stand_ready_qtr_turn_right
3680  *- - stand_aim_extreme
3681  *- - kneel_aim_extreme
3682  *- - walk_aim
3683  *- - walk_aim_back
3684  *<
3685  **
3686  ** \subsection v70data Version 7.0
3687  **
3688  ** \subsubsection v700data Version 7.0.0
3689  **
3690  *- - New character types:
3691  *>
3692  *- - chem_bio_pedestrian
3693  *- - fdc_chock_and_chains
3694  *- - fdc_fuelman
3695  *- - fdc_grounding
3696  *- - fdc_pallet
3697  *- - fdc_pedestrian
3698  *- - firefighter
3699  *- - fireman_silver
3700  *- - vehicle_technical
3701  *- - vehicle_turret
3702  *- - vehicle_wheels
3703  *<
3704  **
3705  ** \subsection v60data Version 6.0
3706  **
3707  ** \subsubsection v612data Version 6.1.2
3708  **
3709  *- - Vehicles and props now have more accurate bounding volumes.
3710  *- - Fixed problem with config file appearance syntax. The
3711  *- item "shapeset:shape" format caused a crash; it now works
3712  *- again.
3713  *- - Replaced default scene object
3714  *- (sets/default_stage/default_stage.flt) with new default
3715  *- (sets/default_stage7/flt/default_stage7.flt). The new
3716  *- default_stage7.flt scene object has a number of different
3717  *- areas in which example scenarios can be placed.
3718  **
3719  ** \subsubsection v611data Version 6.1.1
3720  **
3721  *- - Added new appearance "invisible_human"; Using this appearance
3722  *- for a human character will remove all geometry from the
3723  *- character, effectively making it invisible.
3724  **
3725  ** \subsubsection v610data Version 6.1.0
3726  **
3727  *- - Added ability to specify in config files how long a null
3728  *- transition should take, and which blend function it should use.
3729  **
3730  ** \subsubsection v602data Version 6.0.2
3731  **
3732  *- - Modified stroll motions of female_pedestrian character to move
3733  *- hands further away from body.
3734  *- - Fixed some facing issues for soldier-type characters in transition
3735  *- motions between stand_aim and kneel_aim actions.
3736  **
3737  ** \subsubsection v601data Version 6.0.1
3738  **
3739  *- - Added particle_puff.rgba to list of effects textures.
3740  *- - Fixed the standing hip height of actor greg. It had been
3741  *- mistakenly changed to match that of actor bill. This caused
3742  *- problems for motion scaling for some actor / appearance
3743  *- combinations. (PR 3029)
3744  **
3745  ** \subsubsection v600data Version 6.0.0
3746  **
3747  *- - Initial 6.0 DI-Guy Data release.
3748  **
3749  **
3750  ** \subsection v50data Version 5.0
3751  **
3752  ** \subsubsection v535data Version 5.3.5
3753  **
3754  *- - Removed one unused level of Motion LODs from data loaders
3755  *- config entries. The removed LOD 6 always had 0 variables in
3756  *- it, which wasn't useful for anything.
3757  *- This change requires use of DI-Guy Applications 5.3.5.
3758  **
3759  ** \subsubsection v532data Version 5.3.2
3760  **
3761  *- - Changed format of Motion Texture (motex) entries in DI-Guy
3762  *- config files. The new format gives motion textures their
3763  *- own config entry keyword, separate from motion arcs. This
3764  *- allows DI-Guy to know exactly which motions are going to be
3765  *- used as motion textures. Custom motion textures using the
3766  *- old format need to be updated.
3767  *- - Changed format of gesture entries in DI-Guy config files.
3768  *- Custom gestures using the old format need to be updated.
3769  **
3770  ** \subsubsection v531data Version 5.3.1
3771  **
3772  *- - Fixed problem with airport_crowd character selecting wrong
3773  *- action for default moving action.
3774  *- - Added sergeant2 character, which is similar to the sergeant
3775  *- character but better deals with transitions between actions.
3776  *- - Added fped_mother2 character, which is similar to the fped_mother
3777  *- character but better deals with transitions between actions.
3778  **
3779  ** \subsubsection v522data Version 5.2.2
3780  **
3781  *- - Running motion has been improved for the following characters:
3782  *- afghan_fighter, cbd, soldier, soldier2, soldier_precise, soldier_qk.
3783  *- Scenarios from previous revisions using these motions may behave
3784  *- slightly differently.
3785  **
3786  */