Personal tools
You are here: Home wiki Developer Information PortStatus

Target Platforms

I do not want to leave anybody out on this port. Unfortunately, I'm finding myself unable to reach everybody. Here's where I can work, and where I need help.

  • Windows - One of the two primary platforms. In other words, I work directly on a machine running it, so am able to support it.

  • Linux - The other primary platform.

  • FreeBSD? - Many thanks to RobertHuff?, I have access to such a machine. That port will work happily.

  • MacOS? - Many thanks to Charles Reynolds, and Tim Doty, we will be able to make sure that OSX will be a supported platform.

Current Status

AutoRealm?, the Delphi version, is about 50,000 lines of code intertwined with itself (several circular dependencies have been found already). The wxWidgets port is a complete re-write of the code. It will, unfortunately, be a slower re-write than I would like.

One thing that has been ported to wxWidgets successfully is the forms. They're done using XRC files (XML ResourCe?), which is a nice, platform independent way of describing the windows. All graphics have been converted to .png files, and overall, they look fairly decent.

So, where are things right now? A small shell for the main form has been written. It compiles and runs, bringing up the new AutoRealm? main window. A couple of the minor buttons work (color buttons). A menu item or two (notably Help->Display Contents).

As to what's being done right now... there are several classes which act as the main "meat" of AutoRealm?, if you will, along with some fairly important utility routines. These are being actively ported.

Milestones To Reach

Now, what do I consider to be alpha, beta, and release works? Before answering that, allow me to note one thing: I'm planning on up to three alpha releases before releasing to beta.

Alpha1: The framework has been done. It is now relatively easy to add new objects, and new methods. Basic file save and load is done and working. However, this release is *not* a useable release as anything other than a marker. In particular, the most that any user will get out of it is a glimpse of the next generation GUI. *This code is done!*

Alpha2: When Alpha2 is completed, we will be posting rules for a contest for the redesign of the AutoRealm? websites. Changes for Alpha2:

  • Add code which saves window positions on exit. Will allow for testing on multi-headed setups, which needs to be done sooner rather than later.

  • Cleaning up all doxygen errors

  • Getting all map objects to load/save correctly

  • Getting all map objects to draw correctly to the canvas

  • There are many chunks of code which do not have sufficient wxLogTrace statements that need them. Use new TRACER macro from Jacob.

  • ARDocument? needs to have an "upgradeToLatestModels" method which, after loading a document, will be called to make sure that everything is validated. For instance, after loading a v1 file (AR 1.0), this method will walk the tree, and ensure that all pieces are upgraded to v7 (the map format version for AR3.0)

  • File loading code for down-level versions of AR needs to be implemented


From here to Alpha3 is actually done already


  • Convert TestAutoRealm? into a wxApp, just to make wxLogDebug/wxLogTrace statements work as expected. done

From EMail? From Jacob --- This entire piece is done


  1. The ability to triger the OpenFile? dialog from the button, and have

it call the file open code. Even if it is not the final implementation, it would be great.

  1. Have that code call the pritErrors routine (or something very

similar) on the ObjectBuilder?, and display the results in a text box.

  1. (This one is a bit bigger I think) The ability of the object

builder to get file/line info from the parser so that when I put out error messages I can reference file and line. This will help me focus on specific problems in files, rather than trying to guess which bits of a file are causing problems, or even approaching it with a debugger which with a large file is nearly impossible.


  • All option buttons need to be active, and switching the lower left panel around as appropriate. done

  • ViewPointModel? unit tests didn't test for isValid, since zoom was set to an invalid number. done

  • Reworking of file load framework, to make expatpp behave more normally done

  • ObjectWriter?.cpp isn't outputting valid XML (missing one of the map close tags), must be fixed. done

  • Reworking of unit test framework, to speed it up done

  • The biggest problem identified to date with the GUI is that the buttons in the left hand panes are not ToggleBitmapButtons?. Instead, they use a style hack to try and provide something similar. This is not good enough, and we should definitely address it. This may be addressed in Alpha2, or in Alpha3. Not sure yet which one. (Michael Pedersen has volunteered to work on mmMultiButton, in autorealm_wx/trunk/extras, under thw wxWindows license, so as to allow usage by other projects. If others wish to work under the same license, help will be gladly accepted). done

Alpha3: The basic framework for all editing tools will be completely defined. This is the one missing framework from Alpha1. At least one editing tool (besides selection) will work. It is unclear how many others will work, though.

Alpha4: All editing tools will work. This release of the code is the first one that could actually be considered for use by users. This release must also have two layouts, managed by a secondary XRC file, for the main window. The second layout should mimic the current AR2.x series. However, two major pieces will be missing, basically rendering this as a not release quality program. Those components are:

  • Printing

  • Help Files

Alpha5: Printing will be done. Help files may be done. Translators should begin working on localized translations at this time. No further GUI changes for messages will be permitted at this point, except to correct spelling errors.

Beta: All todo items completed, User documentation completed. Basically, this is (to me) what is coming to be known as "Preview Release" or "Release Candidate". Possibly some still known bugs being worked on.

Release: No known bugs, everything completed. Only things which may be missing will be translations to other languages.

Notes

An important note about this version: This version will include very very *very* few new features. One of the only ones to come to mind, in fact, is the file format, .ARZ. This will be a .zip file (with a different extension), which contains data files for use by the save/load code.

Of course, I'm always happy to receive any help that can be given. If you're a coder, let me know, and I'll help you get set up to work on the codebase. If you're a translator, I can use that, too. If you just want to make sure that everything has the correct keyboard shortcuts, I can even help you get set up to do that. I promise, I won't turn down any help :)

Also, please check out the FutureDevelopment page. There is some information on where things can/will go once this port is completed.


« January 2009 »
January
MonTueWedThuFriSatSun
1234
567891011
12131415161718
19202122232425
262728293031