0.1.4 ?/?/01 -Added the ability for objectFlock's to keep track of all of the inventories -Renamed Inventory to objectList -Renamed userKeyHandler to userKeyManager, to be more consistent on manager names -Started implementation of menu system through CSWS -Changed the meaning of userWorkspace. It is now different configurations of keys/ui/extra camera for unique situations, like if you want to use different settings for controlling a flock vs individual vs in-game movie -Move parts of userGameSpace to userWorkspace and userEnviroment -Renamed userWorkspace to userInterface to help clarify its new role. userEnviroment controls the overall game while userInterface handles keys/gui etc -Added in pausing and made sure that game persistence is fully working. -Made userEnviroment a Window instead of a compnent and that got it all working Console is a little gittery, but it adds sort of a half working computer feel -Implemented Video settings, about, and new game windows. New game is the farthest from complete. The shared problem is lack of buttons showing up -Cleaned up code so that there is less of a chance of a buffer overflow due to strcpy's -Add support to configure full screen and added the statistics dialog box -Fixed a bug in projectiles where it scaled movement in that and in the normal place -Changed it so now speeds are measured in meters/second by changing how the frame adjustments to speed work -Weapons now have an accuracy level, inputed by the max angle that the weapon can veer off -Fixed a bug in configuration files. When switch to CS0.18, models were refered to as meshes, yet I didn't change the config file to match -Added i full multi-vehicle support. The only change that is needed that I can think of is a key for jumping in and out 0.1.3 4/23/00 -Removed uneeded apps, libs, and plugins from archive. The rest serve as examples -Updated version numbering -Switched to using csVectors and added a base class for the object and widget managers -Bug fixes -Switch from direct memory use to CS_ID's for the objects and widgets. This allows for easier handling of objects that might have been destroyed or moved in memory that have other pointers to them -Switched from individual data for objects, added struct PhysicalState to glue it all together. -Added air resistance back in. -Seperated out the Camera from the objects and entities. This makes more sense since only one camera is really allowed. So the camera traces behind any object and rotates independently. -Finally made it so you can bind multiple commands to a key. Did this so rotating the person and camera can be combind (refer to previous change) -Cleaned up the menu code. I really meant to make it configurable by reading OMIGGData/menu.cfg. I hope to get that working -Cleaned up some of the userXXXX classes and omiggSystem -Made a entityCollider from parts of entityModel -Moved PointXXXX classes to their own file. Normally these files don't need editing. -Cleaned up some widgets -Reimplimented Inventory (Item) System. When switching to Vectors, it was easier to remove it and finish the change. Now it is implemented cleaner then before -Updated objectFlock to be using vectors and ID's -Move CDManager and that physics stuff into ct.cpp and ct.h and added bounds checking to the arrays -Renamed omiggSystem::ReInit to omiggSystem::LoadWorld -Removed garbage CS Scripting. I don't use it and newer versions of CS use better scripting systems -Changed the vehicle movement system to be cleaner -Changed overall movement system so that they move only once, during nextframe. This is to cut down on multiple, uneeded moves and to make it so someone can't simply go faster by binding a key multiple times to move -Rid the code of the global variable omiggSystem* Sys -Fixed vehicle rotations and movement -Cached the call to CheckCollisions () within objectBody -Fixed movement bug in the fact that the vehicle wanted movements to be relative to camera, while it was already made into absolute movement -Switched to userEnviroment layer over omiggSystem. This cleans things up. With this, statistics and mouse settings moved over also -Refined the definition of an object and entity. For every thing in the universe there is one object and multiple entities. So this means object's won't require objects as members of their class. So if objectBody was pulled out of the heirarchy to be a member, it would have to become an entity since it would be a required member class while the inventory data would still be objects because they are individuals in the universe also, just are carried by the person. UPDATE: objectPerson can have 1 objectVehicle -Finished omiggSystem clean up. Omigg classes and global functions are the only files left in omigg.(cpp|h), the rest went to user.(cpp|h) -Added type conversions to PointPosition and PointState so that they auto cast to csVector3, csSector*, and csMatrix3 since those are pretty much the soul of the Point classes -Cleaned up the tie between userEnviroment and userWorkspaces more. The workspaces are now deleted since I removed the "feature" in the cmd.cpp which wouldn't let more then one depth of command interpretation occur Not sure why, maybe the person in CS who did that was afraid of infinite loops -Cleaned up a good number of bugs when porting to CS0.18 from CS0.16 -Fixed person movement due to idiotic mistakes -Fixed Invenotry thanks to Michael H. Voas, it was initialized too early -Fixed The bug on open thanks to Michael H. Voas, it was since a new message was sent through that wasn't expected that early, so had to put checks on it -Cleaned up ObjManager [] overload -Seperated out object related stuff -Cleaned out some dependencies that widgetManager had on userWorkspace -Fixed some more bugs, still some to dig through to get this working. One thing that was fixed was the console, had to send events to iConsoleInput instead of the massive iConsole. -Most stuff is working now. Problems with objectPerson, so whenever testing stuff, I have WorldObject selected for the camera. Removed userMenuSpace so that a complete rewrite could go under way that takes advantage of CSWS -Worked on objectManager's GetLocalNoises and GetVisible, for AI and HUD use. The 'Noises one still needs a special data type as to not reveal too much info and the 'Visible one bives a 360 deg view. -The inventory now takes into account some kind of limits on mass and space, but they are hardcoded right now -Made basic test to determine if the objectBody is on ground or not -Added air and liquid movement support to vehicles -Pulled userKeyHandler and userCamera out of user.(cpp|h) -Movement, rotations, and camera zoom work now for the first time since the move to CS0.18 -For some reason, had to modified my collidion detection hack (added in 0.1.2) from 0.001 m to 0.8 m, again, this is just a hack to get Physics working 0.1.2 9/8/00 -Converted Weapons on person to Items and changed Shoot to Activate and added it to WorldObject -Physics nows steps thorugh. This increases stability of physics, but slows the game down overall. -Plugged up some memory leaks -Taken out some extra calls to moving the camera that weren't needed. -Added some consts -Fixed the Makefile, so that you can type "make omg" for OMIGG, this allows Simple to compile again. This also allows easier integration into an existing CS branch. -Fixed some more memory leaks -Removed division where ever possible. -Fixed the most annoying bug. Well, not exactly fixed. It is a hack. The problem is that the physics code whether CSPhyzik or my CollisionManager. It would corrupt memory when trying to force out of the world. Before I couldn't run a sprite collision detection before because it was to close to the floor. Now, before collision collision is done,k the model is move up 0.001 units (a millimeter) and back down afterwards -Fixed the bug above for weapon fire. It depended upon physics CD, so it never would die. So I added a call for CheckCollisions () after Move. -Made it so when a vehicle is in 2D mode (ground based), "look up" and "look down" keys make it only look up, instead of rotating the whole thing. It also disables banking. -Added ActiveItem system. Also made code move only the active item. 0.1.1 7/31/00 -Moved away from userCamera, and added entityCamera, objectCameraMan, and objectCamera(this will handle multiple views) -Added CD tests for terrain -Added work on physics -Removed work on views. I want to start off fresh -Removed last bit of code left over from before the PointPosition and PointState times. It was in entityModel -Got scripted worlds working again (large, flarge, perf) -Fixed the crash on shutdown -Fixed the crash associated with objects. It had been because some objects were accidently deleted -Fixed a bug. I was suprised that it wouldn't cause serious problem. I wasn't properly disposing of the weapons -Made all objects that had child objects set those child objects to persist, unless the parent object dies. This will help save it from some possible crashes. This is like a dependancy check -Made the Ai follow the same rules as the player, as in speed of rotations and movement -Finally finished making objectPerson not inherit objectVehicle, but decided it would be better and went back to it. The problem is of handling bodies. I thin I might have the vehicles have a pointer to their owner, like I used todo with objectBody. This would let me have the same functionality, but easier to actually change the vehicle -Cleaned up the System initialization code -Did some cleanups and removal of the "unused valriable" wanrings -Fixed some naming -Finally got physics working. It is obvious in the weapon fire. I had to speed up weapon fire so they wouldn't fall like a rock. There is a problem in person movement though -Got rid of "warning: division: function singularity", this basically means there was a divide by zero error. It was in some code left over from CS0.15 It was in a function call that I passed a zero to, that would divide by it. -Made a change to PointPosition, PointState, all entities and objects. It adds the function MoveWorld. MoveWorld moves according to World Space, Move moves according to object space. -Because of my rework of initialization of the system, the scripted levels don't work again. I don't think it is worth getting to work again, because in future versions of CS, the system has been dropped -By reworking userKeyHandler, I got it working so keys that are held down don't cancel eachother out. By doing this, I had to remove the "status" binding keyword, at least for now. What status would do is it would have the key's command executed on press and release only of the key. I am not sure if I want this, but I would want something that would oly execute a key on press -Finally got physics working with everything. I had fixed a bug in PointPosition::MoveTo along the way. This also fixed the bug associated with weapons fire when SHORT_MOVE was true. I was depending upon MoveTo, when in fact it was borken. So I took the model code for movement and used that, then to at least save some processor I had the model depend upon this function, so the task MoveTo does wouldn't repeat itself everytime. -I have third person and first person views working. Origin view is the one used before. Currently this is hardcoded. That is going to be fixed. 3rd person view is alos a little bit jerky. I just need to work out the system. This is the first really working system, so that is why I am keeping it. -Camera view stuff can be changed within the console now 0.1.0 7/10/00 -Moved a lot more code over to the PointPosition and PointState system rather then individual csVector3, csSector, and csMatrix3 -The bug about the camera not following the model is now mostly fixed, by having both move in world space coordinates, and doing a conversion. -Some name changes in class names. userInterface, etc are changed to userWorkspace. Other changes were made to handle this -Cleaned up the code somewhat -Physics started. Now only taking into affect and CD are left and model movement. One thing that is cool is I can connect weapon bodies to vehicle bodies, not done though -Add objectBody that combined entityBody and entityModel. Several classes have switched to this new method of doing things -Finally fixed my work with matrices. Now the camera follows the model correctly. Before it would mess up easily, and they moved in the wrong direction -Removed the movie manager. This was done because in the future, movies will be in the main UserInteface, and able to control the Workspaces(lookin TODO) -Moved #include "cssysdef.h" to source code, and out of a header file like CS suggests. -Updated work on physics -Fixed some naming 0.0.09 7/3/00 -Fixed the command-line options. The mouse options are not working yet -Statistical displays now work again. This just might have been because of the command line was not working though. -Almost got internal sprite format conversion working -Fixed a bug dealing with the shutdown crash, well now it is probably easier to find the true cause -Moved all PrepareFrame () tasks to NextFrame () if existant, if not, renamed them. So now the Frame development process is a little simpler and standard across all the classes. -Reimplemented class widgetMamager and all subsequent classes. -Fixed a lot of major bugs -Generalized the menus a little -Started work on Interface focus. This will be finished in the next release because it will finished in the workspave rewrite -Finally fixed the major sprite movement bug. For some reason the sprite collided with its self. I made a check to see if it is testing against itself and a check to make sure it was a sprite OMIGG created(has an owner) -To make it so I could modify the console, I basically stole csSimpleConsole and Command out. This has now allowed it so I could change the console key, and made it so I didn't have to completely rewrite eveyrthing. -Changed bits of the console like the prompt and the key to acces it -You and the AI can now die. Also code was added to handle a dead player -Some of the menus work, basically mainly the switches(bool, on/off) -Finished the work for weapons for now, go kill em -Switched over to Crystal Space v0.16r2+bugfix by Jorrit(fix will be in next stable, v0.16r3) from CS v0.15r2 -Switched over to new debugging system that is in CS0.16, no more CHK's -Switched to new Crystal Spave random number generator. It passes all tests and has a period of 2^144, and is mostly consistent across platforms -Not as much annoying console output, but it is easy to reimplement. Do this by going into cmd.cpp and setting the "#if 0" to "#if 1". You can do the same in omigg.cpp to get more details on collisions 0.0.08 5/31/00 -Camera system done -Lots of code cleanup and bug fixes -More Configurable -Started work on a vehicle templete system -Got CommandHandler working, now the console actualle does stuff, wow -The code now works under Crystal Space 0.15r2. -Improved the port. It runs now at normal speed. Also I did more code cleanup and bug fixes. Now "New Game" works again. -Improved the console. Added several commands. Got keybindings working. All that is needed is now to further implement the bindings and console commands -Added scripted movies through a file and the console instead of reading a config file through csIniFile -Added keybindings and console commands for rotating -Changed entityManager back to objectManager, added WorldObject, and made entities work more as components to an object, but still being able to be created for other uses -Moved over to PointPosition and PointState. PointPosition is a class for handling all the data required for knowing a position. PointState adds to PointPosition by including rotation. -Got rid of Entity and Object Init functions and am now just using Constructors I might switch more of the code to this method, except the userInterfaces. I would like to run as low mem as possible, so userInterfaces will ot be initialized till use -The model associated with the player is working a lot better now -I have the AI players working. They are basically meant for experimental canon fodder for when I finish weapons :), I will add them shooting though :(, eventually :) -Weapons now work :) -Added dynamic number of objects. Currently it is set to start with 5 openings. It then aligns the objects in the array, to help cleanout the empty space from killing things, then, if the object array is full, it will make 3/2 tines the current totals opening. I might experimnent on making this completely dynamic, basically making it larger constantly instead of filling it up, then making it larger because all it is is passing pointers -Setup collision response for projectiles launched -Fixed some Object array aligning bugs. It finally works I think. -The enemy now randomly shoots 0.0.07 1/16/00 -Added code to make it easier to change internally what version number it is -class entity and derived classes are now implemented -class entityManager is now functional. It has now replaced class objectManager -Now have models working under entity system -Restructred objectPerson and the classes derived from it -Did code cleanup, and move function call names to more standard naming system with GetXXX and SetXXX applied whenever the other is implemented, and renamed some of the older ones, especially in class object, which is now class entityModel. -Added debugging code. Removed code that was not needed. -userCamera and userInput both work. Just some more minor changes, and they will be done 0.0.06 12/27/99 -modified my docs -Made the models more configurable -Linked models with camera :-) -Fixed some bugs -Added bugs.txt to help keep trach of where there are probelms -Added in code to move and rotate models. Still needs some work though -Modified code to use Vectors, instead of older, cruder methods -Code cleanup -Now loads models :) -Started work on Collision Detection-ALMOST COMPLETE? -Created Object Manager -changed frame count to use elapsed_time instead of its own way 0.0.05 9/14/99 -Got the code working on CS 0.14. This took some pretty major rewrites -When working on rewrites I got the Interfaces to work happily together -Added more commands to the MoviePlayer -Finally got the console to the point where we can display some text -Got the menus working with images. The menus are in the MInterface I also started the basic structure for the submenus to work I also got the menus to work with plain text and console in <320x240 resolution -Code Cleanup -Vehicles are more configurable now -Scritping Works. Yeah. Now large.zip runs. I will not move movie code, etc over to scripting though, till CrystalScript is done, or maybe sooner -Loading of new worlds after one is already loaded -Switched to CrystalSpace 0.14r2 0.0.04 7/29/99 -Added Quake like movement system, set it in omigg.cfg -Code clean up when working with getting MoviePlayer better supported -Got Camera Movement on MovePlayer -Added a second way for movement for MoviePlayer so you can work by relation to the axis or by simpler commands -General Code clean up -Finally got FPS count working, I think -Added a new command for movies, REPEAT takes the previous frame and loops it till the end 0.0.03 7/6/99 -Code clean up especially in main() -Takes screenshots, TAB key -The way turning speed is set is changed slightly -Now omigg.cfg is actually being used, levels wont be loaded through it but it will have an opening level, then a training level appropraite with the game when Game Projects are fully supported -Can display some rendering Statistics, turn them on/off in config file -Added omiggInterface::Init so that the render would be more self contained and easier to duplicate -Started support for the run time rendered movie player -Added omiggCamera 0.0.02 06/21/99 -Loads almost all levels -Mouse suport almost complete, but disabled by default -code clean up -Initial Object class made -Player class more advanced 0.0.01 5/21/99 -Walk around in a world -Basic vehicle support