Thursday, February 2, 2012

Results and changelogs

I've been pretty busy over the past few weeks with a lot of things related to Game Development, but not necessarily CubeWars. We're currently working on getting this set up as a business which is pretty time consuming but also a very cool and promising prospect. Because of this I haven't had the greatest amount of attention for CubeWars.

That doesn't mean that I didn't spend any time on it however!


The past 2 months I've spent a lot of time getting the Interface handling done and today I can finally say that the framework stands! Again! I've done some cleaning to prevent a lot of duplicate code and to make it easier to add new Interface elements in the future, though I'm pretty confident that won't be necessary... or at least that much.



On the functionality side I've finished up the multi-layer gizmo which let's you turn on/off layers for viewing and sets which layer you're currently editting. I've also added in a 'solid color view mode' which draws tiles as colored rectangles representing the layer they're on.



Below you'll find an *extensive* changelog of all the things I've been doing since the last update. It can get pretty technical, so consider this a disclaimer for the uninitiated.

Until next time!



(Most recent commit at the top)

- Added Toggle group functionality, only 1 toggle will be on in each group
- Added animationstep(level*, player*) to the Window Manager
- Moved existing animation code from putscene(level*, player*) and draw(int) to animationstep(level*, palyer*)
- Moved level::animstep() and player::animate() calls from Main.cpp and Editor.cpp to animationstep(level*, player*)
- Renamed level::animstep() to level::animationstep() for consistency
- Added a command line option to the editor to disable all animations ('--noanimation')
- Added "super secret" command line option from CubeWars to the Editor as well
- Added window::putlayer(level*, int) to draw specific layers only
- Added window::putactors(level*) to draw the actors only
- Rewrote window::putscene(level*, player*) to use the new putlayer(level*) and putactors(level*) functions
- Added editorinterface::putscene() function to draw only the visible layers
- Added editorinterface::toggleviewlayer(int) and editorinterface::setdrawlayer(int) functions
- The editor now only renders the visible layers as indicated by viewlayers
- Hooked the Layer Gizmo toggle buttons to the triggers for setting drawlayer and viewlayers
- Added 'solid color' mode to window::putlayer(level*, int, bool)
- Added layercolor variable to editorinterface to determine whether or not to use 'solid color' mode
- The amount of 'clip' entries for blitting is now determined by MAX_CLIP and MAX_MINICLIP
- Changed MAX_MINICLIP from 64 to 256, giving us 8 rows of 'mini' tiles instead of 2
- Added new 'eye icon' graphics to the tileset
- Added new 'eye icon' toggle button on the Layer Gizmo
- The 'eye icon' now toggles layercolor, the drawing of each layer as a solid color

- Replaced 'Layer Gizmo' items with Toggles
- Added icon drawing for Toggles
- Created all the 'Layer Gizmo' button artwork (CTRL+C - CTRL+V)
- In Layer Gizmo set up, changed thisbuttoncount to thisbuttonnum
- Added Toggle group functionality. Each group always has 1 member set to 'on'
- Toggle's initial/zero state is now 'Off'. Drawing logic now abides this

- The rendering of an ui_element's base is now a seperate function
- The rendering of a ui button is now a seperate function
- The rendering of a ui slider is now a seperate function
- The rendering of a ui toggle is now a seperate function
- Changed button's offsetonclick to offsetondown for consistency
- Restored button rendering
- Restored slider rendering
- Added rudimentry toggle drawing
- Reworked the mouse handling code to use ui_elements
- Added basic handling for toggles
- Added back the slider's customised handling
- Adjusted the Editor version number in the roadmap

- Fixed render segfault, was a problem with pointer init for the ui_element array
- Render code currently uses just ui_element information, but it works for all of them
- Changed sliders to have 'drawbase' set to 'false' by default, fixing their apppearance with the new code

- More GUI graphics
- Fixed a bug where Guiclip would wrap around to the next row too soon
- Introduced abstracted communication with interface elements
- Fixed an overflow problem with the new method of interface communication
- Init'ing elements will still be done the old way now, changed code accordingly
- Element init routines now share the code for basic error checking
- Finished set up and init routines for Toggles
- Looked at the rendering code and decided to redo this :/
- Broke the rendering code, it segfaults. Better commit.
 

No comments: