/*==LICENSE==* CyanWorlds.com Engine - MMOG client, server and tools Copyright (C) 2011 Cyan Worlds, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . You can contact Cyan Worlds, Inc. by email legal@cyan.com or by snail mail at: Cyan Worlds, Inc. 14617 N Newport Hwy Mead, WA 99021 *==LICENSE==*/ #ifndef plVersion_h_inc #define plVersion_h_inc #include "hsTypes.h" // RULES: // Log your change // Set Minor Version to ZERO when you Bump Major Version // If you change the minor, see GetChangedCreateables in plVersion.cpp #define PLASMA2_MAJOR_VERSION 70 // Major Version...every file will need to be reexported #define PLASMA2_MINOR_VERSION 2 // Minor Version...only files with the specified creatables // will need to be reexported // Don't modify this, it's automatically updated when branches are made #define PLASMA2_BRANCH_NAME "Main Branch" class plVersion { public: static UInt16 GetMajorVersion(); static UInt16 GetMinorVersion(); // Pass in a creatable index to get its current version. Zero means it // hasn't changed since the last major version change, anything else is the // last minor version it changed at. This takes into account the version of // parent classes. static int GetCreatableVersion(UInt16 creatableIndex); }; /* Major Log ---Death to those who do not log changes--- # Date Who comment 1 5/8/01 Paulg Added version Number 2 5/11/01 mf Changed sortable mesh format by 2 bytes. 3 5/14/01 Paulg Index files Location is used for ReadConfig at Client Startup, RoomLoc added to Index 4 5/21/01 matt Fixed errant bounding types for physicals (old bad codes will choke) 5 5/24/01 mf Added Occluders to the data format. 6 5/29/01 mf Purvis changed the sound data format and didn't change the version. 7 5/3/01 thamer Cleaned up some object read/write routines 8 6/12/01 mcn Obliterated hsGTexture on down. Now we use plBitmaps and plMipmaps (class IDs changed) 9 6/21/01 mcn Updated drawable disk format. Forgot a field that made particle systems break when it wasn't there 10 6/25/01 mcn Updated plMipmap format. Helps resolve the huge memory issues we were having 11 6/28/01 mf Slight changes to material and geometry formats to support projective texturing. 12 7/02/01 mcn Changed file format to fix disappearing objects in SceneViewer 13 7/09/01 bob Changed file format of plSimpleParticleGenerator to allow mesh generated systems. 14 7/13/01 thamer Changed uoid read/write to include clone number 15 7/20/01 thamer Changed uoid sequence to support up to 4 player rooms 16 7/20/01 mcn Added a second drawable + key to drawInterfaces 17 7/22/01 bob Changed file format to have particle systems support material diffuse/opacity animations 18 7/27/01 mcn Added stuff to drawableSpans for SceneViewer. Are we ever going to have another non-zero minor version? :) 19 7/31/01 mf Did a get and the format had changed but the version hadn't been updated (again). Is this version thing dead? 20 8/13/01 mcn Not that I know of. Change to various object formats to support object instancing. 21 8/20/01 mf Like you'd know. Revised inter-object dependency connections throughout the five scene graphs. 22 8/21/01 mf CoordinateInterfaces keep refs to child SceneObjects instead of child CoordinateInterfaces. 22 8/21/01 mcn You hurt my feelings. I bump major version in retaliation. (Also upped max UV count) 23 8/24/01 mf Made runtime lights respect Max's OTM. 24 8/26/01 mcn Changed plSound format to support stereo (background music) sounds 25 9/05/01 thamer Changed uoid to support 32bit clones 26 9/14/01 mcn Added all 12 parameters to the Audio Region component. 27 9/25/01 mf Added soft volumes to run-time lights. Breaks any scene with RT lights. 28 10/03/01 matt Changed physics format just enough to make everyone reexport everything. 29 10/9/01 ee Changed Uoid member types to a new format that can accomodate strings. 30 10/10/01 mcn Split diffuse layer colors to static and runtime diffuse colors. Breaks the entire universe and parts of New Jersey. 31 10/11/01 ee Activated string usage in uoids -- this version thing is sure not dead now. 32 10/11/01 mf Changed format of plSpan. Only breaks scenes with visible geometry. Should that be Minor Version? 33 10/12/01 cp changed read/write functions in plAnimTimeConvert. Breaks all previously exported animations 34 10/22/01 Colin Changed format of plBitmap 35 10/30/01 mf Change to span format, breaks anything with visible geometry. 36 11/5/01 mcn Changed structure of sound classes to be far more intuitive and bug-free. 37 11/9/01 ee Just for fun. 38 11/13/01 bob Changed file format for plAnimTimeConvert / plAnimCmdMsg / plAGAnim (sense a theme?) 39 11/25/01 mf More sorting info for drawable geometry. 40 11/29/01 mcn Fixed sound fade param read/write. Anything with sounds must be re-exported. 41 12/04/01 bob More animation file format changes. 42 12/05/01 mcn Changes to sound format. Now properties are in a general props field. Also added disable-LOD prop to sounds 43 12/18/01 cjp changes to physics system 44 12/18/01 bob anim file format. 45 12/19/01 Colin anim file format, again. 46 12/28/01 mf DrawInterface format change to purge the last of the Opaque/Blending dualism. 47 1/2/01 mf Decoupled the hardware and software skinning vertex formats. 48 1/6/01 mf Added grey area to Soft Regions (formerly Soft Volumes). 49 1/17/02 cp new camera system checked into client and plugins 50 1/21/02 Colin Physics changes 51 1/24/02 Colin Animation format change 52 2/14/02 bob plAnimTimeConvert format change 53 2/14/02 matt made all brains non-keyed. reordering all over the place 54 3/15/02 cjp new LOS query types, format change to plHKPhysical 55 4/09/02 cjp more new LOS query types, format change to plHKPhysical, camera type changes 56 4/23/02 bob nuked plSimpleModifier from plAGMasterMod. Changes file format for animation. 57 5/17/02 Colin Changed Uoid format for cloning 58 7/02/02 thamer Changed synchedOject R/W format to support more LocalOnly options 59 8/14/02 bob Anim file format 60 2/08/03 mf Changed formats for everything drawable and/or physical. That leaves behaviors, but it's about time for a major version change anyway. 61 2/18/03 mf Between my changes and Bob's, we're just not sure what hasn't changed anymore. At least drawables and avatars. 62 3/30/03 mf Added LoadMask to plUoid 63 5/30/03 thamer optimized Uoid size 64 10/28/05 jeff changed plLocation to handle more pages and plUoid for optimization reasons 65 2/22/06 bob animation key rewrite to save space 66 2/27/06 bob 64-bit quaternion anim keys 67 2/28/06 bob Anims store UInt16 frame numbers, not 32-bit float times. 68 3/03/06 bob constant anim channels (plMatrixConstant, plScalarConstant had no R/W methods) 69 5/08/06 bob changed plVertCoder and hsMatrix44::Read/Write 70 2/12/07 bob Merged in several registry/resMangaer fixes */ /* Minor Log ---Death to those who do not log changes--- # Date Who comment 1 5/8/01 Paulg Added version Number 2 5/9/01 mcn Changed color components of drawableSpans 0 5/11/01 mf Dropped back to zero on Major Version change 1 8/06/01 thamer Upped the version for mf's anim callback changes. 2 8/06/01 bob Changes to particle system read/write. 0 8/13/01 mcn Bumped back to 0 due to major version change. 1 8/23/01 bob Added animation controller to particle systems, changing their format. 0 8/24/01 mcn Bumped back to 0 yet again. 1 8/27/01 mcn Changed how emissive flags are handled on materials. 2 8/29/01 bob Changed plAvatarMod file format 0 9/05/01 thamer Bumped back to 0 yet again. 1 9/17/01 matt Avatar only. 2 9/24/01 bob Avatar and sound file formats changed. (For age linking effects) 0 9/25/01 mf Reset to zero for major change. 1 10/7/01 Colin Format of plResponderModifier and plEventCallbackMsg changed. 0 10/9/01 ee Reset to zero for major change. 1 10/11/01 mcn Changed sound format. Anything with sounds (including avatar b/c of linking sounds) breaks. Is this a record for # of version changes in one week? 1 10/15/01 mcn Added soft volumes to sounds. Breaks anything with sounds. Again. 2 10/17/01 Colin Changed format of plAGAnim 0 10/22/01 Colin Reset to zero for major change. 1 11/01/01 bob Changed format for plAGAnim and plAGMasterMod. Will break avatars without re-export. 0 11/02/01 mf Reset to zero for major change. 1 11/28/01 mcn Changed meaning of sound volume property. Will work if not re-exported, but will sound wrong. 0 11/29/01 mcn Reset on major version change. 1 12/10/01 bob Changes to animTimeConvert. Animated materials will need a re-export. 0 12/18/01 bob Reset to zero for major change. 1 1/07/02 bob File format change for particle systems. 0 1/21/02 Colin Reset to zero for major change. 1 1/24/02 Colin File format for responders 2 1/24/02 mcn Changed postEffectMod format. Not many people use it though, so only minor version change. 0 1/24/02 Colin Reset to zero for major change. 1 1/28/02 bob File format change to avatars for clothing customization. 2 1/30/02 Colin File format change to sit component 3 1/31/02 Colin File format change to logic modifier (all detector components) 4 2/13/02 Colin File format change to ladder modifier 0 2/14/02 bob Reset to zero for major change. 1(5) 2/14/02 mcn GUI control format changes to support dynamic text layers (the RIGHT way) 2(6) 2/19/02 mcn Added version field to dialogs, to allow synching with C++ and Python code (just in case) 7 3/01/02 mcn Moved GUI controls to pfGUIColorScheme methods of handling colors/fonts 8 3/01/02 cjp changed format of new camera brains, only affects the few using them right now 10 3/08/02 mcn Changed internal format of sounds to facilitate packing them in files later 11 3/08/02 mcn Added a shadow option to GUI color schemes. Also added mouse-over animations to buttons. 12 3/12/02 bob Change format of clothing 13 3/15/02 matt Changed base class for sit modifier 0 3/15/02 cjp Only chris forgot to log it - mf 1 3/29/02 mf Added light group support for particle systems. 2 4/02/02 Colin Format change for responder modifiers 0 4/15/02 cjp Only chris forgot to log it - mf 1 4/15/02 mf Added a parm to partycle systems just for fun. 2 4/17/02 cjp Added new modifier for interface information, changed plMaxNode.cpp. 0 4/23/02 bob Reset to zero. 1 4/25/02 mcn GUI objects no longer fog. Must reexport GUI components. 2 5/05/02 mf Particle system enhancements 3 5/06/02 matt Changes to one shot modifier and multistage modifier 4 5/06/02 bob Changes to plArmatureMod and Clothing stuff. For swappable meshes and footsteps. 5 5/07/02 bob Changed clothing item file format (again) for text descriptions and thumbnails 6 5/09/02 mcn Added sound event capabilities to GUI controls 7 5/13/02 mcn Added some new options to GUI knobs 8 5/14/02 matt Fix net propagation for animation stages (fading) and generic brains (exit flags) 0 5/17/02 Colin Reset for major version 1 5/21/02 mcn Added a channel select option for plWin32Sounds 2 5/23/02 bob Added multiple texture layers per element in plClothingItem 3 5/23/02 mcn Added some options to plSoundBuffer. 4 6/18/02 mcn Added some more options to plSound, incl. localOnly flags 6 6/21/02 mcn Updated plDynamicTextMap to include an initial image buffer 7 6/26/02 mcn Major revision to sound system to support hardware acceleration 0 7/02/02 thamer Reset for major version 1 7/08/02 matt Format change for animation stages -- added next/prevStage override 2 7/10/02 bob Format changes for avatar footstep sounds 3 7/12/02 mcn Format change to sounds for EAX effects 4 7/23/02 bob Format change to footstep sounds for more surface options 5 7/29/02 mcn More EAX format changes to sounds 6 7/29/02 mcn Added cutoff attenuation to spot/omni lights 7 8/01/02 bob Format change to clothing items 0 8/14/02 bob Reset for major version 1 8/19/02 bob plClothingItem file format 2 9/02/02 bob plArmatureLODMod file format change for bone LOD 3 9/12/02 mf Making ripples and waves play nice with each other. 4 9/18/02 bob plClothingItem file format... again 5 9/19/02 mcn New GUI control proxy stuff 6 9/23/02 mcn Removed dead sound stuff 7 9/24/02 mcn Sound priority stuff 8 9/25/02 mcn Support for new grouped random sound objects 9 10/15/02 mcn Material anim support in GUI controls 10 10/21/02 mcn Variable volume support to group sounds. No format break. 11 10/29/02 cjp proper python notification of avatar page out & last avatar out plus elevator persistance fix - breaks message format for exclude regions 12 10/29/02 mcn Fixing chris's booboo 13 10/29/02 cjp Changed camera component data format slightly. 16 11/18.02 cjp changed camera speed components & objects, don't know where v 14 & 15 went 17 12/04/20 matt New line-of-sight categories; format change for physicals. 18 12/05/02 mf Enhanced linefollowmod to play nice with stereizer, and added field to occluder's cullpoly. 19 12/17/02 matt Bumped armaturemod, based on strong circumstantial evidenced that I missed something. 20 12/31/02 matt New format for animation stages, written by the multistage mod. 21 01/03/03 matt Change to sitmodifier. 22 01/16/03 matt More simplification for animation stages and generic brains. 23 01/20/03 bob Added layer to clothing items for aged skin blending 24 01/21/03 mf plLayers now read and write out their shaders. 25 01/29/03 bob plMorphSequence read/writes the plSharedMeshes it uses 27 02/05/03 mcn Updates to pfGUIButtonMod 0 02/18/03 mf Reset for major version change. 1 02/19/03 bob Added layers to plClothingItem. Took the opp to cleanup the R/W functions 2 02/21/03 mf Added features to dynamic water. No one should notice. 3 02/24/03 cjp changed animated cameras - added new commands for controlling them 4 02/24/03 mcn Updates to GUI stuff to support, er, new GUI stuff. 5 03/11/03 bob Clothing and linkSound format change 0 03/30/03 mf Reset for major version change. 9 04/14/03 Colin Havok change. At 9 since mf forgot to bump the version (and Matt did a bunch of undocumented bumps) 10 04/15/03 bob Added a footstep surface type 11 4/18/03 mcn Added list of the layers grabbed by a GUI DynDisplay 12 4/23/03 bob File format for plMultistageBehMod, needed for a ladder fix 13 05/01/03 Colin Changed how Havok vectors and quats are written 14 03/30/03 mf Particle effect enhancement 0 05/30/03 thamer Reset for major version change. 1 06/01/03 bob Added a flags variable to plSharedMesh 2 06/06/03 markd Added NotifyType for GUIButtons 3 06/07/03 mcn Added sound groups to physicals 4 06/24/03 bob More params for Flocking particles 5 07/05/03 mf Particle and footprints working together 6 07/13/03 bob Avatar file format 7 07/31/03 bob LinkToAgeMsg (which affects responders) and panic link regions 8 08/21/03 Colin Removed some stuff from plSoundBuffer 9 08/22/03 bob Added info to plClothingItem 10 09/16/03 bob Removed stuff in plAnimCmdMsg, which affects responders. 11 09/18/03 mf Changed plLoadMask, of which plWaveSet7 is the biggest user. 12 01/03/04 jeff pfGUIDynDisplayCtrl now stores material as well as layer information !! 11 02/10/04 mf Dropped back a version, to reduce patch size for Expansion 1. 12 03/12/04 bob New stuff in Swim Regions 0 10/28/05 jeff Reset for major version change 1 11/28/05 jeff GUI text boxes can now pull strings from the localization mgr 2 12/01/05 jeff pfKIMsg can now handle unicode strings 3 02/02/06 adam modified plDynamicEnvMap as a part of back-porting planar reflections from P21 0 02/22/06 bob Reset for major version change 1 04/12/06 Colin Changed physical format 0 05/08/06 bob Reset for major version change 1 05/16/06 markd Changed physics format to include boxes 2 06/26/06 jeff Changed coop brain format so book sharing works again 3 12/05/06 bob Avatar uses a render target instead of a plMipmap. 4 01/16/07 bob Still does, it's just not created at export. 5 01/24/07 adam Changed plAGMasterMod so one can be set as a group master in grouped anims 0 02/12/07 bob Reset for major version change 1 03/29/07 jeff Changed plLoadAvatarMsg and plArmatureMod to be more flexible 2 06/28/07 jeff Changed plAvBrainHuman format to store whether it's an actor or not */ #endif // plVersion_h_inc