|
|
HCU: HoverCAD Unlimited Because regular HoverCAD just plain sucks. { Location :: Documentation } |
|
hcudownload - download page - source 0.5.2.2 [zip] - hcu 0.5.2.2 [exe] - hcucpe 1.0.0.0 [zip] - hcucpe 1.0.0.0 [exe] hcuinfo - main - about - timeline - goals - documentation - screenshots - console info - 404 error hcubug - report a bug hcunews - current news - old news hculinks - hoverrace webring - hoverrace main site - hoverrace forums - tracks - timesheets hcucontact - contact - contact igglybob |
//////////////////////////////////////////
// // // | | ------- // // | | / // // | | | // // |----+---| | | // // | | | | | // // | | | | | // // | | | \ | // // | -+----- // // \ / // // ---------- // // HoverCAD Unlimited // ////////////////////////////////////////// // HoverCAD Unlimited // ////////////////////////////////////////// // An editor to take the place of // // HoverCAD, and that does more // // complicated functions. // ////////////////////////////////////////// // Authors: // // Ryan Curtin // // [add your name here] // ////////////////////////////////////////// CURRENT VERSION: 0.5.1.2 [version numbering]: [release].[major change].[minor change].[build] TO RUN PROGRAM: Run /Debug/HCU.exe. All the HoverRace files are already in the /Debug directory to make use simpler. Please report bugs! ////////////////////////////////////////// 11 MAY 2006 [0.5.1.2] Ryan Curtin Files changed: - guidoc.cpp DONE: Added a couple RefreshObjectSelector() lines where they might be needed. DONE: Added handlers for the Object Type label, so it actually says what is selected. DONE: Implemented Edit Node tool, seems to be working fine. DONE: Implemented Select Node tool to point where click and drag select functionality works. TODO: Test timer (so editing a node doesn't eat too many resources) on other, different systems. - proppanel.cpp DONE: Moved around properties panel items to fit smaller screens. ////////////////////////////////////////// 17 MARCH 2006 [0.5.1.1] Ryan Curtin Files changed: - hcutoolkit.cpp - hcutoolkit.h DONE: Determined that pathToOldDos is completely unnecessary - the compiler will accept spaces in quotes. DONE: Rewrote manager::compileTrack(). DONE: Left pathToOldDos commented out as legacy in case it's needed again for some reason. TODO: Figure out why the initpos array doesn't seem to __hook. - console.cpp DONE: Implemented simple math detection in set commands: +, -, *, /, and ^. Needs some work, but is fine for now. DONE: Fixed findMostRecentCommand() - it was finding the oldest command. NOTE: Sometimes the console seems to act weird, but it seems somewhat random. - guidoc.cpp - guidoc.h DONE: Removed some legacy event handlers that were no longer needed. DONE: Implemented key handlers for '+' and '-' (zoom in and zoom out, respectively). DONE: Fixed scrollbars (or at least helped them) so that they are actually useful. DONE: Fixed drawing method so track is no longer drawn upside down; it is drawn exactly how it is seen in-game. DONE: Removed traces of TOOL_PLACEINITPOS - you can't place an initpos! - main.cpp DONE: Fixed zoom handlers. DONE: Removed Place Initial Position tool; you can't place an initpos (if you didn't read that already). - linkeverything.h DONE: Removed TOOL_PLACEINITPOS - you can't place an initpos! ////////////////////////////////////////// 1 MARCH 2006 [0.5.1.0] Ryan Curtin Files changed: - console.cpp - console.h DONE: Implemented variable support for up to 100 variables. DONE: Created and implemented findIndexOfVariable(). DONE: Created memory for undo and redo functionality. DONE: Implemented for loops. DONE: Merged consoleform.h and consoleform.cpp into console.h and console.cpp. DONE: Modified 'end room' code so it tries to make connections. - guidoc.cpp DONE: Changed drawing code so it is capable of shading rooms and features. DONE: Streamlined code for drawing outlines of rooms and features. ////////////////////////////////////////// 18 FEBRUARY 2006 [0.5.0.3] Ryan Curtin Files changed: - consoleform.cpp DONE: Made the console automatically scroll to the bottom when text is appended. - console.cpp DONE: Added remove command and its functionality. DONE: Made more error checking in edit room/edit wall. DONE: Implemented 'edit background'. DONE: Implemented 'edit description'. - main.cpp DONE: Made open dialog only create a new MDI child after the file to open is selected. - hcutoolkit.cpp DONE: Added notification when a wall is erased from a room. DONE: Fixed notifications so features are properly identified. ////////////////////////////////////////// 14 FEBRUARY 2006 [0.5.0.2] Ryan Curtin Files changed: - hcutoolkit.cpp DONE: Worked on event handlers and __hooking events to them correctly. DONE: Inserted code that will __unhook things when they are removed. DONE: Made more output for events. - console.cpp DONE: Fixed small errors in parser. - consoleform.cpp DONE: Messed with console TextBox; added vertical scrollbar. TODO: Make the console automatically scroll to the bottom. ////////////////////////////////////////// 9 FEBRUARY 2006 [0.5.0.1] Ryan Curtin Files changed: - guidoc.cpp - guidoc.h DONE: Removed legacy propPanel handlers. Nothing seems to be broken, but I could be wrong. For now they're just commented out. - hcutoolkit.h - hcutoolkit.cpp DONE: Implemented events and event handlers for output when a property is changed. - console.h - console.cpp DONE: Created managerEvent class to handle event interactions between console and manager. DONE: Implemented managerEvent into console; works correctly. ////////////////////////////////////////// 15 JANUARY 2006 [0.5.0.0] Ryan Curtin Files changed: - proppanel.cpp - proppanel.h DONE: Added 'track description' text box and label. DONE: Added 'background' text box and label. DONE: Added 'parent' text box and label. DONE: Implemented handlers for events that could happen to description, background, and parent. DONE: Added include checker. TODO: Are they all in the right place? TODO: Figure out how I'm going to get all the properties panel objects to fit on the screen. - linkeverything.h DONE: Added PROP_L_DESCRIPTION. DONE: Added PROP_TB_DESCRIPTION. DONE: Added PROP_L_BACKGROUND. DONE: Added PROP_TB_BACKGROUND. DONE: Added PROP_L_PARENT. DONE: Added PROP_TB_PARENT. DONE: Updated PROP_NUM_ITEMS. DONE: Added CONSOLE_BLOCK_NONE. DONE: Added CONSOLE_BLOCK_ROOM. DONE: Added CONSOLE_BLOCK_FEATURE. DONE: Added include checker. TODO: Some copy-paste work to order all the objects right. - guidoc.cpp - guidoc.h DONE: Implemented handlers for events that could happen to description, background, and parent. DONE: Added include checker. DONE: Added console object. DONE: Removed manager object, it's now accessed through the console. DONE: Implemented all track changes through the console. TODO: Could this be streamlined? Accessing the track takes a lot of jumping through hoops. - prompter.h DONE: Moved definitions to linkeverything.h. DONE: Added include checker. - hcutoolkit.h DONE: Added include checker. - misctools.h DONE: Added include checker. - console.h - console.cpp DONE: Added files. DONE: Designed and created command class - simple wrapper class to hold a command. DONE: Designed, created, and implemented console class. It will do all the track editing. - consoleForm.h - consoleForm.cpp DONE: Added files. DONE: Designed, created, and implemented consoleForm class, a GUI for the console. ////////////////////////////////////////// 14 DECEMBER 2005 [0.4.3.1] Ryan Curtin Files changed: - guidoc.cpp DONE: Modified guiDoc->setTool to fix possible errors in Objects Selected propListBox. DONE: Fixed error in properties changing code that would cause a crash when making a room. DONE: Fixed odd bug in connection-making. It's actually fixed. DONE: Rewrote and commented makeConnections(). It was impossible to figure out what I was thinking. DONE: Fixed a couple zoom bugs - now the zoom is always a square zoom. DONE: Fixed feature creation tool. DONE: Added checker to figure out which room a placed element gets put into. TODO: Scrollbars can act a little funny; figure out why. TODO: Add dialogs asking whether to merge points? TODO: Add a couple missing properties panel TextBoxes - background, parent room, some more stuff too. - proppanel.cpp DONE: Added 'black stars' and 'nothing' as choices for ceiling and floor textures. DONE: Fixed code so you can actually change the textures of floors, ceilings, and walls correctly. DONE: Added 'water' and 'yellow' as choices for textures. - hcutoolkit.cpp DONE: Fixed error where initial positions would not initialize in newly created guiDocs. DONE: Changed hcuToolkit::point's default room id to 1. Room 0 never exists. DONE: Added room::sortNodesClockwise(). DONE: Added helper method room::isCounterClockwise(). - misctools.cpp DONE: Added a couple textures to functions. ////////////////////////////////////////// 18 NOVEMBER 2005 [0.4.3.0] Ryan Curtin Files changed: - proppanel.h - proppanel.cpp DONE: Added files. DONE: Decided on complete revamping of event handling - Microsoft's built in stuff just isn't doing it. DONE: Added class propPanel : Panel. DONE: Added class propTextBox : TextBox. DONE: Added class propComboBox : ComboBox. DONE: Added class propListBox : ListBox. DONE: Added event and handler for propTextBox::TextValueChanged. DONE: Added event and handler for propComboBox::SelectedValueChanged. DONE: Replaced all ComboBoxes, ListBoxes, and TextBoxes with propComboBoxes, propListBoxes, and propTextBoxes, respectively. DONE: Implemented handlers in propPanel for propTextBox::TextValueChanged and propComboBox::SelectedValueChanged. DONE: Implemented code to successfully handle all events. DONE: Gave elementType ComboBox items to select from; also implemented it. - guidoc.cpp - guidoc.h DONE: Changed the stored properties panel to be of type propPanel instead of just Panel. DONE: Created and implemented handlers for SomethingShouldChange events (OnSomethingShouldChange()). DONE: Created changeNumericValue() to change values in objects; used by OnSomethingShouldChange(). - main.cpp DONE: Moved all items in the properties panel to proppanel.h and proppanel.cpp and implemented them in propPanel. ////////////////////////////////////////// 23 OCTOBER 2005 [0.4.2.8] Ryan Curtin Files changed: - guidoc.cpp DONE: Changed code in OnClick() where clicked is transferred to sv - there was a possible memory location error, etc. TODO: Figure out what in the hell is going on whenever an event happens. NOTE: This version is a complete failure, it's time to innovate. ////////////////////////////////////////// 9 OCTOBER 2005 [0.4.2.7] Ryan Curtin Files changed: - guidoc.cpp - guidoc.h DONE: Cleaned up weird coding bug where there was too much code, but it still somehow worked. DONE: Realized that I could use System::Drawing::Graphics with a bitmap and replaced all bitmap drawing code to do this. DONE: Removed drawLineInBitmap(), drawCircleInBitmap(), and outlineCircleInBitmap() as they are no longer needed. DONE: Fixed algorithm to change clicked location to location relative to the bitmap (in OnClick()). - main.cpp DONE: Added a label for the objects selected ListBox. - linkeverything.h DONE: Added definition entry for ObjectsSelected label and updated other definitions accordingly. ////////////////////////////////////////// 2 OCTOBER 2005 [0.4.2.6] Ryan Curtin Files changed: - guidoc.cpp DONE: Figured out why changingPropertiesValues seems to change randomly: it's called once for each guiDoc. DONE: Added code to fix problem where changingPropertiesValues changes. DONE: Fixed code that checks for whether a string is null, "-", "-.", or "." before it yells at you for not entering a number. DONE: Deprecated and removed RoomOrFeatureSelected() and similar methods, opting instead for an UpdateProperties() that can work with more than one selected object. - linkeverything.h DONE: Defined PROP_NUMITEMS as the total number of items in the properties panel. ////////////////////////////////////////// 26 SEPTEMBER 2005 [0.4.2.5] Ryan Curtin Files changed: - guidoc.cpp - guidoc.h DONE: Added changingPropertyValues (boolean) to monitor if we're messing with things or not (see below). DONE: Removed attempts at state checkers (are we editing property values) at beginning of event handlers for changes in properties panel objects and replaced them with a check of a global constant telling us whether we should mess with them or not. TODO: Figure out why the heck changingPropertyValues appears to change randomly. ////////////////////////////////////////// 25 SEPTEMBER 2005 [0.4.2.4] Ryan Curtin Files changed: - guidoc.cpp DONE: Implemented basic changes in property panel to be made when a connection is selected. DONE: Added event handlers for changes in most properties panel objects. DONE: Implemented event handlers for changes in most properties panel objects. TODO: Fix weird bugs that happen when initial positions, elements, and other things are deselected in the properties panel. - hcutoolkit.cpp - hcutoolkit.h DONE: Commented out getClassType() inherited functions that seem to be completely useless and cause errors. TODO: Get rid of these functions? ////////////////////////////////////////// 23 SEPTEMBER 2005 [0.4.2.3] Ryan Curtin Files changed: - guidoc.cpp DONE: Implemented x,y,z,a information into properties for elements. DONE: Implemented x,y,z,a information into properties for initial positions. DONE: Added all the walls to the list of objects in the object selector. DONE: Implemented adding objects to the objects selected list when they are selected. DONE: Added RoomOrFeatureSelected() to make ObjectSelectorSelected() code less funky. DONE: Added ElementOrInitposSelected() to make ObjectSelectorSelected() code less funky. DONE: Implemented showing all information for when features or rooms are selected. DONE: Implemented showing all information for when elements or initial positions are selected. - misctools.h - misctools.cpp DONE: Added floatToString() method for simple changing of float values to System::Strings. DONE: Added findItem() polymorphic method so you can search for an item's label with a selectable *. DONE: Added elementTypeFromNumber() method to get element type descriptions from the element ID. - main.cpp DONE: Added objectsSelected ListBox to the Properties Panel to show what objects are selected. DONE: Fixed simple error in elementType initialization code. DONE: Initialized ceiling textbox and accompanying label. DONE: Initialized floor textbox and accompanying label. - linkeverything.h DONE: Added objectsSelected definition. DONE: Added lceiling definition. DONE: Added ceiling definition. DONE: Added lfloor definition. DONE: Added floor definition. ////////////////////////////////////////// 12 SEPTEMBER 2005 [0.4.2.2] Ryan Curtin Files changed: - misctools.h - misctools.cpp DONE: Renamed selectableObjects to comboBoxList. A much more descriptive name. - guidoc.cpp DONE: Changed RefreshObjectSelector code to put objects inside the comboBoxList() instead of straight into the ComboBox. DONE: Successfully integrated comboBoxList into guidoc. Now the object selector lists all objects. DONE: Successfully implemented finding out what object was clicked. The correct selectable is returned. DONE: Implemented changes in 'object type' text box depending on the object that is selected. DONE: Messed with basic implementation for the changes in properties panel objects. TODO: Fix null connection. ////////////////////////////////////////// 26 AUGUST 2005 [0.4.2.1] Ryan Curtin Files changed: - guidoc.h - guidoc.cpp DONE: Added ObjectSelectorSelected method to catch object selection events. DONE: Moved ComboBox item initialization into its own method for easy access from other places in the code. DONE: Added selectableObjects object to guiDoc. - misctools.h - misctools.cpp DONE: Added selectableObjects class to take care of objects inside Object Selector ComboBox. DONE: Added selectableObjects::clear(). DONE: Added selectableObjects::addItem(). DONE: Added selectableObjects::removeItem(). DONE: Added selectableObjects::findItem(). DONE: Added selectableObjects::getItem(). DONE: Added selectableObjects::numItems(). DONE: Added selectableObjects::getLabel(). TODO: Think up a better name for selectableObjects. It's vague and stupid. ////////////////////////////////////////// 25 AUGUST 2005 [0.4.2.0] Ryan Curtin Files changed: - main.cpp DONE: Added 'properties' panel to main window. DONE: Added ComboBox for selecting objects to properties panel. DONE: Added Properties label to properties panel. DONE: Added Wall Texture, Floor Texture, and Ceiling Texture labels to properties panel. DONE: Added Wall Texture, Floor Texture, and Ceiling Texture ComboBoxes to properties panel. DONE: Added X, Y, Z, and A labels to properties panel. DONE: Added X, Y, Z, and A TextBoxes to properties panel. DONE: Added elementType label and ComboBox to properties panel. - guidoc.h - guidoc.cpp DONE: Changed constructor to pass the properties panel to the guiDoc. DONE: Implemented adding of rooms, features, elements, initial positions, nodes, and connections to ObjectSelector ComboBox. DONE: Made ObjectSelector ComboBox clear the list of objects each time a new file is loaded. - hcutoolkit.h - hcutoolkit.cpp DONE: Added new version of getConn() -- does it by vector id ////////////////////////////////////////// 31 JULY 2005 [0.4.1.14] Ryan Curtin Files changed: - guidoc.cpp - guidoc.h DONE: Added makeConnections() for when the creation of a room is finished. DONE: Added canMergeWithAnotherRoom() to find any rooms which could merge with a point. DONE: Made prompt for merging points when a user clicks close enough to an existing node. Some bugs to work out. DONE: Fixed errors in makeConnections() so connections are done correctly. DONE: Changed code slightly so that tools now allow making nodes outside the bitmap boundaries. TODO: Draw bitmap upside-down. It currently draws it so that when compiled, a vertical mirror image is what is played in HoverRace. - hcutoolkit.cpp - hcutoolkit.h DONE: Added findAndReturnId(). DONE: Changed findAndReturnId() to fix bug where it returned the wrong id. - main.cpp DONE: Prevented error messagebox from displaying every time HoverRace is launched from inside HCU. ////////////////////////////////////////// 22 JULY 2005 [0.4.1.13] Ryan Curtin Files changed: - guidoc.cpp DONE: Changed line drawing code so that last node line isn't drawn when making rooms or features. DONE: Fixed absolute value bug in TOOL_MAKEROOM switch statement in MouseDown(). DONE: Added bounds checker for MAKEROOM tool. DONE: Added functionality for MAKEFEATURE tool. This does not work correctly. TODO: Fix MAKEFEATURE functionality. It draws first node, but nothing else. ////////////////////////////////////////// 20 JULY 2005 [0.4.1.12] Ryan Curtin Files changed: - hcutoolkit.cpp DONE: Fixed an error in findAndReturnWall(). DONE: Removed MessageBox that appears when compiling a track. - guidoc.cpp DONE: Rewrote MAKE_ROOM code so adding nodes to rooms works semi-properly. DONE: Made rooms and features that are being made not be completely drawn - last wall line is left out. - main.cpp DONE: Added "Launch HoverRace" option to the main menu, also implemented it. TODO: Possibly add "Launch with Cheats" option or three more for each cheats mode. ////////////////////////////////////////// 11 JULY 2005 [0.4.1.11] Ryan Curtin <It's been awhile...> Files changed: - guidoc.cpp DONE: Fixed node drawing problem - selected node was not drawn correctly, but now is. DONE: Attempted to implement MAKE_ROOM tool. TODO: Figure out what to do when room is finished. - hcutoolkit.h - hcutoolkit.cpp DONE: Added findAndReturnRoom(). DONE: Added findAndReturnFeature(). DONE: Added findAndReturnElement(). DONE: Added findAndReturnInitpos(). DONE: Added findAndReturnConn(). DONE: Added findAndReturnWall(). ////////////////////////////////////////// 13 JUNE 2005 [0.4.1.10] Ryan Curtin <Today I move across the country...> Files changed: - guidoc.cpp DONE: Implemented 'backspace' key functionality - deletes selected objects. DONE: Fixed simple error in room/feature node selection checking. - hcutoolkit.h - hcutoolkit.cpp DONE: Rewrote getRoomFromVector() as getRoom(). DONE: Rewrote getFeatureFromVector() as getFeature(). DONE: Rewrote getElementFromVector() as getElement(). DONE: Moved around function definitions for easier code navigation. DONE: Added findAndRemove(). DONE: Fixed element::element() code to set selectable::classType correctly. DONE: Fixed initpos::initpos() code to set selectable::classType correctly. ////////////////////////////////////////// 12 JUNE 2005 [0.4.1.9] Ryan Curtin Files changed: - guidoc.h - guidoc.cpp DONE: Made adding elements refresh screen (so you can see them). DONE: Added OnKeyPress() to overriden super methods in guiDoc. DONE: Implemented OnKeyPress() to display MessageBox when a key is pressed. ////////////////////////////////////////// 11 JUNE 2005 [0.4.1.8] Ryan Curtin Things: DONE: Changed build directory to /Debug/bin so that compiler will work. Files changed: - guidoc.cpp DONE: Changed small bit of onClick() code. DONE: Implemented basic functionality for 'Add Element' tool. ////////////////////////////////////////// 10 JUNE 2005 [0.4.1.7] Ryan Curtin <I swam a mile and a half today!> Things: DONE: Removed 'HCUDLL' from project - it is useless. DONE: Restored HCUDLL folder - it has the readme.txt in it. DONE: Added files misctools.h and misctools.cpp DONE: Moved readme.txt to /hcu from /hcudll. DONE: Removed /hcudll for good (it isn't included in source anyway because it was stupid). Files changed: - guidoc.cpp - guidoc.h DONE: Tried again to use casting to selectable * to select objects. Successful. DONE: Implemented use of a selectableVector to hold selected objects for quick changes. DONE: Added method deselectAll() to make all selected objects unselected and to remove them from the selected vector. DONE: Implemented deselectAll(). DONE: Added try/catch block in draw() to catch an odd error. Didn't bother handling error. - misctools.h - misctools.cpp DONE: Added these files to hold miscellaneous classes used by the program, mostly to get around __gc. DONE: Added selectableVector. DONE: Implemented selectableVector. ////////////////////////////////////////// 9 JUNE 2005 [0.4.1.6] Ryan Curtin Files changed: - guidoc.cpp DONE: Changed selection code slightly. DONE: Made 'selected' in selectable a private variable. DONE: Made selected feature nodes drawn a different color. Seems to be not working, though code is right. DONE: Found that things are selected, but only when bitmap is updated. >_<! DONE: Made bitmap be redrawn each time something is selected. Could be done more efficiently. TODO: Figure out why features and nodes can act so weird when selected. ////////////////////////////////////////// 8 JUNE 2005 [0.4.1.5] Ryan Curtin Files changed: - guidoc.cpp DONE: Changed casting for select handler (in OnMouseDown()). DONE: Changed selectable **clicked to selectable &clicked. DONE: Simply removed 'clicked' and set selected to 'true' in each element as it is found to be clicked. DONE: Added feature node checking to selection checking. TODO: Figure out why selection isn't working. TODO: Work on large-scale selection (detect click-and-drags). - guidoc.h - linkeverything.h DONE: Moved tool definitions from guidoc.h to linkeverything.h - hcutoolkit.h - hcutoolkit.cpp DONE: Changed a small amount of code in 'selectable' to make things easier to understand. - main.cpp DONE: Created 'tools' menu bar. DONE: Added items and handlers to 'tools' bar. DONE: Implemented 'tools' menu handlers, successfully changing tools. TODO: Make selected tool known. ////////////////////////////////////////// 7 JUNE 2005 [0.4.1.4] Ryan Curtin Files changed: - guidoc.cpp DONE: Switched initial guiDoc tool to select tool, not make-room tool. DONE: Made guiDoc::onMouseDown() refresh screen. DONE: Fixed small code error in selection code. DONE: Updated code to match with hcutoolkit changes. DONE: Implemented querying of room nodes when select tool is used. DONE: Rewrote selection code to be more efficient and use the power of HCUToolkit::selectable. DONE: Attempted to make selecting work. Failed. - hcutoolkit.h - hcutoolkit.cpp DONE: Changed manager::getInitPos() to return initpos * (used to be initpos). DONE: Changed manager::getRoomFromVector() to return room * (used to be room). DONE: Changed manager::getFeatureFromVector() to return feature * (used to be feature). DONE: Changed manager::getElementFromVector() to return element * (used to be element). DONE: Changed manager::getConn() to return conn * (used to be conn). DONE: Changed room::getNode() to return wall * (used to be wall). DONE: Updated manager code to reflect changes in room::getNode(). DONE: Changed selectable::selected to bool * and selectable::classtype to int *. ////////////////////////////////////////// 6 JUNE 2005 [0.4.1.3] Ryan Curtin Files changed: - guidoc.cpp - guidoc.h DONE: Added drawLines(). DONE: Added drawNodes(). DONE: Added drawElements(). DONE: Rewrote drawBitmap() to call three other functions (drawLines(), drawNodes(), drawElements()). DONE: Attempted to implement 'selectable' by changing colors of nodes once they were clicked, using selectable interface. Failed. - hcutoolkit.h - hcutoolkit.cpp DONE: Added class 'selectable', implementing selectability in classes. DONE: Implemented class selectable. DONE: Added selectable::getClassType(), selectable::setClassType(), and selectable::classType. DONE: Added selectable::getSelected(), selectable::setSelected(), and selectable::selected. DONE: Added selectable as a base class for point, element, initpos, room, wall, feature, and conn. ////////////////////////////////////////// 5 JUNE 2005 [0.4.1.2] Ryan Curtin <Whee! I'm in California!> Files changed: - guidoc.cpp DONE: Made size of clicks that register as a click on something smaller. DONE: Changed drawCircleInBitmap() and outlineCircleInBitmap() to use the coordinates given as the center of the circle instead of the upper left enclosing square corner. DONE: Changed drawBitmap() to initialize and use less variables; saves memory. DONE: Removed red debugging line from drawing. DONE: Removed black debugging line from draw() method. DONE: Added the drawing of room and feature nodes. - hcutoolkit.cpp DONE: Cleaned up and optimized a couple functions. Likely to be no noticeable effect. - main.cpp DONE: Switched click_MenuViewZoomIn() and click_MenuViewZoomOut() so they work correctly. ////////////////////////////////////////// 5 JUNE 2005 [0.4.1.1] Ryan Curtin Files changed: - guidoc.h DONE: Merged 0.4.1.0 and 0.3.6.51 successfully. - guidoc.cpp DONE: Merged 0.4.1.0 and 0.3.6.51 successfully. DONE: Created and implemented drawCircleInBitmap(). DONE: Created and implemented outlineCircleInBitmap(). DONE: Removed curZoom; replaced with curXZoom and curYZoom. DONE: Changed draw() to clear screen, fixing double-draw problem. DONE: Fixed element and initpos drawing routines to include 100-pixel bitmap buffer. TODO: Rewrite drawCircleInBitmap() as drawEllipseInBitmap() for more functionality? TODO: Rewrite outlineCircleInBitmap() as outlineEllipseInBitmap() for more functionality? - hcutoolkit.h DONE: Merged 0.4.1.0 and 0.3.6.51 successfully. - hcutoolkit.cpp DONE: Merged 0.4.1.0 and 0.3.6.51 successfully. ////////////////////////////////////////// 2 JUNE 2005 [0.3.6.51] Ryan Curtin Files changed: - guidoc.cpp DONE: Implemented basic clicking functionality. DONE: Created semi-functional message boxes attempting to tell what was clicked (not fully working). - hcutoolkit.h - hcutoolkit.cpp DONE: Added getElementFromVector() for use by guiDoc. DONE: Implemented getElementFromVector() in the same way as getRoomFromVector(). TODO: Deprecate and remove getRoom(), getFeature(), and getElement()? NOTE: The programming done in this update was done on the framework of 0.3.6.50 because of different files on different computers. The computer this work was done on was not the same computer that 0.4.0.0 and 0.4.1.0 was done on, and this computer was not updated, unfortunately. The files will have to be merged when the updating is done. ////////////////////////////////////////// 30 MAY 2005 [0.4.1.0] Ryan Curtin Files changed: - guidoc.h - guidoc.cpp DONE: Fixed loading-centering algorithm. DONE: Changed scrollbar functionality so that it functions like a normal program. DONE: Added curVBarPos and curHBarPos to hold the last recorded values of the scrollbars. DONE: Made scrollbars more volatile by a factor of 5. TODO: Fix double-drawing bug. ////////////////////////////////////////// 28 MAY 2005 [0.4.0.0] Ryan Curtin Files changed: - guidoc.h - guidoc.cpp DONE: Completely rewrote drawing method to read from bitmaps that are created when files are initialized. DONE: Implemented zoom feature on bitmaps. DONE: Added setZoom() method. DONE: Added drawBitmap() method. DONE: Added drawLineInBitmap() method. DONE: Rewrote draw() to only display the bitmap, not calculate everything. DONE: Added System::Bitmap *b, the bitmap for the drawings. DONE: Removed curXRange and curYRange, favoring b->Width and b->Height. DONE: Added 'curZoom' variable to hold the current zoom factor, where 1.00 is 1 pixel to 1 HCad unit. DONE: Removed xScrollbarOffset. DONE: Removed yScrollbarOffset. DONE: Added xOffset and yOffset; they function practically the same as the scrollbarOffsets, but not just for the scrollbars. DONE: Replaced curMidX and curMidY with curX and curY, which will signify to the graphics object when drawing the bitmap the points at which to draw it. DONE: Flipped all Y values so the 0 of the y-axis is at the bottom of the screen, not the top. DONE: Implemented scrollbar functionality. ////////////////////////////////////////// 28 MAY 2005 [0.3.6.50] Ryan Curtin Files changed: - guidoc.cpp DONE: Attempted to fix centering of files in screen, slight progress. DONE: Modified feature drawing code slightly to adapt to all screen sizes. ////////////////////////////////////////// 20 MAY 2005 [0.3.6.49] Ryan Curtin Files changed: - guidoc.h - guidoc.cpp DONE: Added xScrollbarOffset and yScrollbarOffset variables, so Scrollbar minimums can always be 0. DONE: Changed several algorithms for calculating scrollbar size, etc. ////////////////////////////////////////// 14 MAY 2005 [0.3.6.48] Ryan Curtin Files changed: - guidoc.cpp DONE: Changed guiDoc init routines so that initial drawing displays scroll bars correctly. DONE: Changed direction of scroll bars (suggestion by Austin). DONE: Changed where scrollbar and zoom are initialized, possibly making method more reliable. DONE: Made drawing method draw in the correct bounds instead of 1024x768. TODO: On load, make scrollbars be in middle value, not to either side. TODO: On load, make document draw all of file in the center of the form. QUESTION: Remove curYRange, disallowing skewed drawings but saving memory and code? - hcutoolkit.h - hcutoolkit.cpp DONE: Added getMaximumXValue(), which searches through all objects for the maximum x value. DONE: Added getMinimumXValue(). DONE: Added getMaximumYValue(). DONE: Added getMinimumYValue(). DONE: Added getMaximumZValue() (height). DONE: Added getMinimumZValue(). NOTE: Those six functions are rather CPU intensive - be careful when using them. ////////////////////////////////////////// 10 MAY 2005 [0.3.6.47] Ryan Curtin <lot of time on my hands lately...> Files changed: - main.cpp DONE: Implemented prompter ok button handler, now correctly works - deletes object DONE: Implemented 'Zoom...' dialog, works completely DONE: Added 'Color Scheme...' menuItem, yet to be implemented DONE: Changed open method to create a new MDI child each time a file is opened NOTE: Use prompter for all dialog boxes requiring information. Get the information back by setting an event handler for handlePrompterResults and use the switch() to find the id. - guidoc.h - guidoc.cpp DONE: Created zoom function that takes a percentage of the original zoom, not the current zoom. DONE: Added scrollbars, implemented basic functionality. TODO: Make scrollbars dynamically change maximums like regular HCad TODO: Fix odd behavior on guiDoc startup pertaining to drawing - prompter.h - prompter.cpp DONE: Implemented id constants, to make identification easier in the handler in main.cpp DONE: Implemented cancel button handler, created destructor DONE: Made ok button default button - now you can hit enter directly after entering data instead of clicking ////////////////////////////////////////// 9 MAY 2005 [0.3.6.46] Ryan Curtin Files changed: - main.cpp DONE: Implemented basic prompter functionality, as well as handler method for hcuGui. TODO: Get hcuGui to deinitialize prompter when it's done with it. - prompter.h - prompter.cpp DONE: Implemented death handler, by making button object public. hcuGui owner now implements its own handler to the button object. DONE: Created die() method, used when the cancel button is pressed. ////////////////////////////////////////// 8 MAY 2005 [0.3.6.45] Ryan Curtin Added files: - prompter.h - prompter.cpp The class 'prompter', contained in these files, is designed to provide a simple input functionality for the HCU program. It will be mainly used in dialogs such as getting the amount to zoom in or other simple text input. It only has one method (other than initialization), run(), which returns the values, in std::string objects. All casting to the desired types will have to be done after the class runs. Files changed: - main.cpp DONE: Added 'View' menu, and 'Zoom In', 'Zoom Out', 'Zoom...', and '-' MenuItems, as well as handlers. DONE: Fixed odd logical error that caused program not to exit when a user asked to exit while having an open, unchanged track. - guidoc.h - guidoc.cpp DONE: Added 'zoom' function, allowing a user to zoom in to a multiple specified. - prompter.h - prompter.cpp DONE: Added basic functionality; give it prompts, numPrompts, and a title and it will run. TODO: Implement death handler; see code of okClickGo() in prompter.cpp ////////////////////////////////////////// 30 APRIL 2005 [0.3.6.44] Ryan Curtin Files changed: - guidoc.cpp DONE: Fixed curXRange and curYRange equations so it displays correctly. DONE: Fixed algorithms so that rooms are drawn correctly. Some error checking still needed. DONE: Optimized drawing algorithms, so that the CPU is not calculating the same equation five or six times. DONE: Features are drawn now; however, not correctly. TODO: Fix drawing of features. TODO: Finish other drawing methods, like initial positions and free elements. Also, draw nodes. - main.cpp DONE: Made guiDoc caption text display the name of the open file. QUESTION: Remove all directories from filename display, so instead of "C:\blah\track.hcu" it is "track.hcu"? - hcutoolkit.cpp, hcutoolkit.h DONE: Added getFeatureFromVector(). DONE: Added getRoomFromVector(). TODO: Decide whether getFeature() and getRoom() are deprecated, and take steps to get rid of their use ////////////////////////////////////////// 30 APRIL 2005 [0.3.6.43] Ryan Curtin Files changed: - main.cpp - hcutoolkit.h - guidoc.cpp - hcutoolkit.cpp - guidoc.h - linkeverything.h DONE TO ALL: Removed all version numbers, and chose instead to just have 'last updated' at end of top block comment. ////////////////////////////////////////// 29 APRIL 2005 [0.3.6.42] Ryan Curtin Files changed: - guiDoc.cpp DONE: Added functionality for drawing files. TODO: Fix functionality for drawing .hcu files. Else: DONE: Began documenting changes in code using Readme.txt ////////////////////////////////////////// |