Name: Euan MacGregor
Member since: 2002-09-09 21:15:21
Last Login: N/A
Notes: Now at University.
The sides I take:
Code
Bleeh, FreeCNC 0.2.1 still not out. There are a bunch of annoying bugs and design issues (the current code for animating things is a little crufty and is a bitch to debug) that need fixing and I've been preoccupied with both exams last June and preparing for next year at Uni. I'm still rather pleased with the guy who sent in a patch that contained a mostly complete ratemplates.ini so Red Alert maps now load a lot more correctly than before.
On the way to the party in Cambridge I did some mildly crazy stuff to cut out the overhead involved in parsing large ini files that don't change that often by "serialising" the data structure as a .so by emitting C code that was then wrapped inside some boilerplate routines to handle all the library stuff (such as initialising the hash table inside _init and freeing it in _fini). This turned into an interesting learning experience with glib2 (a library I previously hadn't written anything with): I didn't have the API docs installed, so I picked things up by reading the header files (and found gems like g_blow_chunks). The library stuff is done, I "just" have to write the emitter and see what whacky stuff I can do with make so you'd just dump an ini file (e.g. foo.ini) in the right directory and run "make foo.ini"
to get your library.
Regardless of whether it has any practical use, it was a fun way to spend about four hours :).
My next mini-project is to extend the ini-file format to support inheritance. This would actually be of use in FreeCNC as there is quite a large intersection between the ini files used for Tiberium Dawn and for Red Alert (which I haven't yet explicitly written because e.g. "raunits.ini" would have a lot from "units.ini" [i.e. data duplication]).
XML is more or less out of the question as ini files are sufficient anyway (this is just me being anal about data duplication) and ini files were what were used by Westwood in their games (so mods can be ported quicker).
Also, if you write C++ that uses the STL, you probably will appreciate StlFilt.
Code
Yesterday evening, I added write support to the VFS (for external files only). The VFS lacked this before as hardly any of the code needed to write to anything. Also started making the dispatcher code less of a quick-n-dirty, proof of concept hack.
Yes, I have been outside my room.
On Sunday, I got an eight port hub from Robot101 on the cheap and obtained some cabling from Maplins with the intention of turning my old workstation into a firewall so that my parents can use my cable modem while I'm away at uni (University of Warwick, for Maths with Comp. Sci.) Still random problems with ntl's DHCP not working when plugged into the would be firewall (will probably have to import lease from current workstation and hack it to work).
More Uni. related stuff: I have a pile of exercises on differential and integral calculus, trig and inequalities to work though. The payoff is that the exam all first year Maths students have to sit is contained inside the exercises (I have a strong suspicion that "sqrt(x + sqrt(x + sqrt(x) ) )" will come up on the differentiation).
Coding: Not much. Probably related to my recent joining and participating of #C++ on freenode (as well as odd sleeping patterns). Started writing a Dispatcher for FreeCNC into which ui/input.cpp and ui/selection.cpp will hook. The Dispatcher will handle relevant input and game events so that game sessions can be stored to disk and played back (mainly to make things easier to test fixes to the anim code). The main things left to do are how to track adding and removing units and structures (so that stored orders will always map to the right thing), and getting the events to be replayed at the right time. The next step is to make the Dispatcher read/write stuff from/to the network layer, which will result in low security (relies on non h4x0r3d clients) multlplayer now (more as a proof of concept), and better security when the server is done (i.e. all calculations done server end, then relevant info pushed out to clients).
9 Sep 2002 (updated 9 Sep 2002 at 22:08 UTC) »
Still todo for FreeCNC 0.2.1:
zx64 certified others as follows:
Others have certified zx64 as follows:
[ Certification disabled because you're not logged in. ]
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!