A new begining

After much internal debate, I’ve made a string of decisions that may effect the rest of my life. Something private now lays at the foot of the cross, let it be done as HE has had it written. When the time comes, I will leave this world as I came into it, free.

I’m beginning work on the next phase of cracking the problems that stand in my way, as one legendary hacker once put it, “When in doubt, use brute force”. There are only two problems integral to moving forward, and I must advance or be this place will destroy me. I have no hate or love to drive me anymore, only an iron will. If I have to hack code until my brains fall out, I am moving ahead with this: it really is as simple as that. Life has left me no stranger to running at a 150% of normal, I’ve already spent, what? The last 5 or 6 years of my existence like this? Last night proved a point, this morning charted a path.

Today is the first day, in the next chapter of my life.

Tired…

Making like a crazy person, has got my desktop up and running again in 2 days and a night; and I’ve managed to get some game time today. Tonight, I’ve basically spent time with my routine updating procedure on FreeBSD. I update the ports tree, use the portversion script to grep what needs updating, then feed it into a little shell script to take care of business lol.

Ah, the simple beauty of automating UNIX—such a treasure to return to, after so much time with Windows NT.

There’s more then 10 ways to skin a bit

Well, I’m about ready to declare the operation a success ;). Just took off for a few minutes to inhale some kartoffelchips, and I feel ready to take a break. Aside from work, interrupts, food, sleep, and chores, I have not been away from the computer much for the last 2-3 days -> time for a night off.

Honestly, the more I do this stuff, the faster I get, I owe it to PLANNING 😀

Dancing over the Windows, Night I / Day III / Day II-C / oh fsck it

I setup RvS in between bites of dinner, luckily most of the procedure is just waiting on files to extract/copy, so I was free to sit and eat xD. I already have a collection of patches in various languages, so it was a simple matter of fishing out the v1.0-1.60 US patch.

Play testing and a quick spin around dxdiag showed that everything was good to go. All that I will need to do is setup my settings again (hoorah for archived ini files 😉 and install maps. I have a CD-ROM here which is so full of map files, that I barely fit them all on it back in the day lol. I’ve also got access to the SAS map packs and such, so shouldn’t be to much hassle.

Next up was setting up SWAT 4 with The Stetchkov Syndicate expansion pack; a quick job. Since I’m aware that SWAT 4 disks may be beyond a simple dd operation to clone, I chose to take ‘steps’ to archiving my copy of SWAT 4—I paid $80 in two installments with much waiting for a still unfinished and already abandoned product, so I have no interest in buying another copy if something happens to my disks! Before running the installer, I did a quick dump of the entire registry; after setting up SWAT4+TSS+Gez, I then took another dump of the registry. In theory, doing a simple diff of those registry dumps should allow me to create an import file, that can be used to recreate them (with needed local adjustments), then mate it with No-CD fixed EXE files, plus a lovely archive of all the latest game files; that means I should be able to backup/restore SWAT 4 at will, without having to dance through installers and patches, muahuahauha! At least, that is the _theory_ but it should work.

I’m sorry I didn’t think to do the same registry trick with RvS lol.

Since the games are poorly designed, there is probably little use in installing the game without administrative prives. Running them under a regular user isn’t to hard, in SWAT 4 all that needs to be editable at run time, is basically INI files, and that is easily adjusted with Access Control Lists. I haven’t tested RvS yet as my normal user, but it should work as well as SWAT does. I backed up the important things, but sadly I forgot to backup my in-progress SWAT 4 map files… so only Chester has a working copy of SAS Killhouse Redux, and I’ve lost all my work on the SAS Dept. of Agriculture :-(. Small loss though, since the former wouldn’t be tooo hard to recreate.

Since Windows XP by default only exposes a useless level of DOS-style permissions, I doubt most users have any concept of access controls or file permissions. I always kick Winsucks into showing my the “Security” tab in a files properties dialog. Although it is occasionally a whacky inconsistent mumbo jumbo to work with Microsofts various tools, Windows XP does actually have a very nice ACL and Policy implementation. Most Free Open-Source Unix like systems (e.g. GNU/Linux, FreeBSD, OpenBSD, etc) have support for Access Control Lists, and I believe the POSIX standards mandate them but don’t quote me. Most systems however, rely on the simple unix permission model; which is basically the most simple ACL system you could invent like 40 years ago lol. Until you get into the Policy related stuff in the MMC, there’s no serious differences. My one complaint is that working with the cacls command in XP, means putting up with DOS invocation style :-/.

I have used Microsoft operating systems since MS-DOS, and have used Windows since cica 2000, when we got our first Pentium PC with Windows 98 pre-installed on it. Since then, there are only 3 things that I have ever found, and actually like about Microsofts premier product: 0.) the start menu is a very nice file-system driven implementation, well the parts that are adjustable anyway (think All Programs); 1.) Windows NT has nice support for ACLs, and 3.) NTFS is a heck of a lot better then FAT12, FAT16, and FAT32 ever were. Beyond that, it all can go suck an egg :-P.

All that is left for me to do, is complete a few minor tweaks, like giving the File open/save dialogs a makeover and organizing files. Oh yeah, I still need to go and install KDE4 so I can get a decent Solitaire program running again ^_^_^_^_^.

Dancing over the Windows, Day II-B

After getting the backups taken care of, I took a few moments to clean up after the more intrusive installations. That involved turning off the MSSQL related services, telling Javas jusched updater to take a hike—instead making a scheduled task for it, which is what the installer should have done! After that, I sanitized the %Path% environment variable back to the default, and used my documented list of where I installed everything, to write out the desired environment variables.

In order to keep the systems path clean, yet make it easy to make regular changes as part of batch scripts (like compiler specific ones) or per-user profile variables. Here is a list of my creations:

%DEF_PATHEXT% and %Def_Path%
These are just references to the systems default values for %PATHEXT% and %Path%, so they can be referenced later without concern for the actual system values.
Userprofile overrides for %PATHEXT% and %Path%
I’ve set PATHEXT to %DEF_PATHEXT%;%Extra_PathExt% and Path to %Def_Path%;%GoogleChrome_Path%;%RemoteUtils_Path%;%Utilities_Path%;%WWW_Path%;%MediaPlayers_Path%;%Graphics_Path%;%OfficeApps_Path%;%Games_Path%;%JavaRuntime_Path%;%Gtk2Runtime_Path%;%Perl5_Path%;%PHP5_Path%;%Python2_Path%. Which provides my user with virtually everything I could want, short of access to compilers and what not.
%Extra_PathExt%
Extra extensions that I would like to *not* have to type, namely making Perl/Python/Ruby use and coexistence much easier.
%RemoteUtils_Path%
Various remote utilities that I use often, things like PuTTY.
%Utilities_Path%
Slips several frequently used programs into my path: like SysInternals and Archivers. Yes, I do use a command prompt to unzip crap often enough to warrant this :-P.
%WWW_Path%
The paths to world-wide-web related programs, that are only meaningful with an internet connection. Instant messengers, VoIP, web browsers, blah blah. This also means I can have a lot of fun without reaching for the mouse ^_^.
%MediaPlayers_Path%
Quick access to MPlayer / MEncoder and anything else that comes in handy.
%Graphics_Path%
Software for manipulating images, GIMP, Dia, Wings 3D, Blender, et alii.
%OfficeApps_Path%
Paths to the kind of software often found in office suites, most importantly a snappy PDF reader. There’s not much else that I use regularly, since word processors are often brain damaged from a productivity standpoint.
%Games_Path%
Various games, of the kind that can actually be run without changing directories; that is no unreal engine garbage.
%JavaRuntime_Path%
The systems standard Java Runtime Environment, suitable for responding to Java applications that need to make me wait an hour for them to startup ^_^
%Gtk2Runtime_Path%
The systems
%Perl5_Path%
Reference to all that Perlicous goodness, can’t have a box put to work without a copy of perl setup, now can we?
%PHP5_Path%
In case I need to test some code, I always keep an interpretor within arms reach; for things that require a server, I just SCP it over to another box, that happens to be running Apache.
%Python2_Path%
I decided that this time I would run both versions of Python, this chooses the 2.x branch. For better or worse, not all valuable libraries have made the transition Python 3.x yet :-/
%Python3_Path%
Same as the above, for for Python 3. It should be most useful to me, for testing scripts for compatibility with 3.x
%Ruby_Path%
A language that I rarely use these days, but always keep available for a rainy day 😉
%Devel_Path%
Pointer to various development tools that are not very implementation specific and should be optionally available to all user accounts. It’s made up of other environment variables, just like the %Path% override.
%Devel_Utils%
Assorted utilities like tags generators and build tools
%ScmTools_Path%
Qucik access to source code management: Subversion, CVS, blah blah. The only thing I actually give a flying flub about, is Git.
%JavaDevel_Path%
One huge Java development kit with more bells and whistles then I could care to look at. This variable basically exists to provide access to javac and relations
%Qt4Devel_Path%
Paths to the Qt SDK, the best toolkit for doing graphical software that I’ve ever found. API wise, I reckon WxWidgets would be more natural to Windows developers fingers (wxNames::LikeThis instead of QNames::likeThis) but I’m perfectly happy with Qt.
%Gtk2Devel_Path%
Basically a software development kit for GTK+ apps in C/C++, kept independent of the systems Runtime—so build time will never break Pidgin, Gimp, & friends
%MinGW_Path%
For setting up quick access to the GNU Compiler Collection.

I’ll likely write a set of development environment scripts, that will handle tailoring my cmd environment to a specific task. Exempli gratia: MinGW, Watcom, MSVC, JDK, Py2, and Py3.

Because I know from first-hand experience, many games built around Unreal Engine 2 among others, still treat the Operating System like MS-DOS, I’ve also taken the liberty of setting up a “Gamers” group. That should make playing RvS/SWAT without elevated privileges as possible as it ever is going to get… lol. Considering how crappy they are on the inside, and being UE2, I don’t expect it to actually be possible without further abuse. Really, I wonder how some companies get this crap on the market…

Anyways, time to setup the games 🙂

To be continued…

Dancing over the Windows, Day II

Installed XFire, and very interestingly only the administrator can change where it downloads files to, which should be in %AppData%Xfire along with the users chat logs. I suspect the intention behind this “Odd” design choice was to force all downloads to occur in a shared folder, which can be automated for a routine virus scan – or because many games are so crapply made that they need to run under Administrators lol.

Xming, TeamSpeak2 were quickly smashed. The most important utilities to get installed were 7-Zip and InfoZip, for dealing with the archive files involved. After that I setup Python 2.6 and 3.1, Ruby, and Perl 5.10.0. The file associations can wait until later, but quite seriously I ain’t going anywhere without Perl installed ;-).

Because I have both Python 2.6 and 3.1 installed, and the MSI installers override one anothers file associations, I had to manually setup the mappings that I want; which includes mapping .py2 and .py3 to their respective interpreters.

C:2install>ftype | findstr /r /i "Python"
Python.CompiledFile="C:DevFilesLanguagesPython31python.exe" "%1" %*
Python.File="C:DevFilesLanguagesPython31python.exe" "%1" %*
Python.NoConFile="C:DevFilesLanguagesPython31pythonw.exe" "%1" %*

C:2install> assoc .py2=Python2.File
C:2install> assoc .py3=Python3.File

C:2install> ftype Python2.File="C:DevFilesLanguagesPython26python.exe" "%1" %*
C:2install> ftype Python3.File="C:DevFilesLanguagesPython31python.exe" "%1" %*
C:2install> ftype Python.File="C:DevFilesLanguagesPython26python.exe" "%1" %*

C:2install> ftype Python.File="C:DevFilesLanguagesPython26python.exe" "%1" %*
C:2install> ftype Python.CompiledFile="C:DevFilesLanguagesPython26python.exe" "%1" %*
C:2install> ftype Python.NoConFile="C:DevFilesLanguagesPython26pythonw.exe" "%1" %*


C:2install>assoc | findstr /r ".py"
.py=Python.File
.py2=Python2.File
.py3=Python3.File
.pyc=Python.CompiledFile
.pyo=Python.CompiledFile
.pyw=Python.NoConFile


C:2install>ftype | findstr /r /i "Python"
Python.CompiledFile="C:DevFilesLanguagesPython26python.exe" "%1" %*
Python.File="C:DevFilesLanguagesPython26python.exe" "%1" %*
Python.NoConFile="C:DevFilesLanguagesPython26pythonw.exe" "%1" %*
Python2.File="C:DevFilesLanguagesPython26python.exe" "%1" %*
Python3.File="C:DevFilesLanguagesPython31python.exe" "%1" %*

I wonder how many people never knew you could change file associations from the Command Prompt? It is oh so much faster then screwing with Windows Explorer!!! Later on I’ll add .pl;.py;.py2;.py;.rb to an environment variable that users can append to their %PATHEXT% at will.

Tools for getting work taken care of next: GIMP, Dia, and Pidgin+GFire plugin. Vim is the only one that I actually care about, but since getting the newest version with all the right features that I want, means compiling my own from a CVS/SVN checkout: it might help if I installed MSVC and CVS first; will get to that later.

Misc office/unproductivity apps: GnuCash, Abiword, Gnumeric, OpenOffice.org, and AutoHotKey. Then remaining non-dev utilities: WinMD5Sum, Qlipboard, Unlocker, GNU PG.

A couple small games: prboom, OpenArena, Battle for Wesnoth, and Chromium BSU; I’ll get UrbanTerror, Raven Shield, and SWAT 4 setup later.

And now time for the huge hulking development stuff…. since it’ll take at least 15 minutes to download the remaining Microsoft development packages, I started on MinGW, MSYS /w DTK and WATCOM. I usually use Visual C++ for compiling under Win32 whenever possible, but out of respect and potentional handy’ness, I usually keep a copy of Open Watcom around; it also has one of the most polite installers ever created on Windows! Setting up the MSys kits is painless, upgrading them is not always so. MinGW, well just boring to setup 8=). After that came making sure that there is a full Java development kit and Ant available. PHP, PhpDoc, GDB, and Exuberant CTags followed.

Time for the build and scm tools: Ant, CMake, SVN, Git, and CVS.

Next up a few game development related tools: q3map2, QuArk, Wings3D, and Blender.

Wrapping up with an installation of MPlayer & Mencoder binaries (the Git ones) with codecs. Most of the development-related libraries, I don’t want installed until Visual C++ is installed, so time to get that done now. Rather then bugger with Daemon Tools Lite, I chose to try out ImDisk, something that appears less intrusive on ones computer experience ;-). After mounting the Visual Studio Express editions DVD ISO, it was a fairly quick bombing run to get C:DevFilesVisual Studio setup and running; it’s still ashame that it forcefully crams a few things into %ProgramFiles%, but I reckon that is the price of an automagic installer 8=).

Ok, time to get the rest of the development stuff setup. First off, Debugging Tools for Windows, followed by the DirectX SDK. The Qt SDK & PyQt4 bindings fell into place, GTK was a simple unzip followed by installing the appropriate Py* packages. WxWidgets is a quick installer, but still needs to be compiled later (per compiler); that can wait until I have need of compiling anything against WxWidgets, which is pretty rare.

As much as I love XML and hate XML parsers, LibXML2 / LibXSLT are just to valuable not to have installed. OpenSSL and ZLib are also kind of useful ^_^. Xerces-C++ and SDL will take a while to compile, so I will save those for later.

I would like to take a few minutes break to get some of the backups restored, while Cygwin goes and fetches a couple things (e.g. rsync).

To be continued…

Dancing over the Windows, Day I

Reinstalled Windows NT 5.1.2600 / XP Media Center Edition.

After rebooting, the machine gave a message that it was prepairing windows for start up; it was obviously trying to establish a network connection, assumably in order to phone hone registration data. That didn’t work, so the computer restarted itself and tried again, when that failed, it finally put up, shup up, and let me go through the boring setup screen.

As usual, I set the machine up for a U.S. environment but with GMT time zone and no DST adjustments, this gives me accurate enough GMT/UTC settings :-).

Was forced to create a “Regular user account” which also happened to be created as a passwordless adminisrator account: oh what a wonderful defualt! Named it “appeasement” and moved on. On the first ‘usable’ boot up, I used the double ccntl+alt+del trick to login as the pseudo-hidden Administrator, and get to work on setting up the machine. I created my limited user account, locked it with a password — then locked the forced-admin account with a ~90char password and locked it, generated manually useding my usual algorithim for creating pseduo-random passwords. Then I did like wise to the guest account, setting a random ~150char password. Both appeasement and guest were doubly checked to ensure they were properly locked down. I’ve elected to make use of Adminisrator directly for setting things up, since I’ve always used a separate admin account in the past and really see much value in hiding Adminisrator; however I do admit a temptation to rename it “Bill” as a joke between friends.

I also took the liberty of forcing Windows XP to use the classic login dialog, rather then the XP welcome screen; it’s a shame that it remembers the last used user name though, which kind of defaults the point of not listing user names (which was mentioned in the CPL). My reason for switching to the classic login screen however, is because I find it more convientant for quickly logging into the system, then having to play with the icons on the welcome screen.

Disabled Windows Firewall and installed my wifi adapters drivers, but had no luck in getting a connection to my home network :-(. After a bit of abuse, I killed the poorly written network management utility that came with the driver, along with all the programs and service it created. After that, I was able to get a clean connection to my AP :-). Personally, I think any time a network device driver tries to override the systems network configuration software by default, means either they were assholes or the system has terrible network support. Over the years, I’ve found that Windows does have terrible network support (compared to FOSS unix systems) but configuring network settings, especially wireless: is very painless under XP.

To avoid nagging, I turned off Windows auto update crap, and fired up IE6; hitting update.microsoft.com I jumped through the hoops to download/install Service Pack 3. After the rebooting dance that followed, I then returned to update.microsoft.com in order to update things. That resulting in installing _60_ updates for my computer and another reboot, after that was taken care of, I turned on Windows updates. Guess what it told me after that? There are more updatse for your computer ^_^. It has been nagging me to reboot every couple minutes since then. Two cool comments: nVidia and Creative drivers were listed, speeding up my installation of the latest nVidia drivers xD.

Kicked off cmd, explorer, control, regedit, and mmc (Micro$oft Management Console) so I could start work on making Some changes:

 Set IE8 to a higher security level for Internet use
Set IE8 to reject third party cookies
Prevent Winsucks Explorer from hiding file extensions - come one, seriously?
Automatically search[ing] for network folders and printers turned off in Explorer
*.js? *.reg, *.sh?, *.vb?, *.ws? file associations remapped to Notepad
Error Reporting set to MS/Win crap onnly
Tell Security Center not to whine about FW/AV.
Killed sticky keys & compatriates; made this default for new users
Data Execution Prevention (DEP) on for all programs
Remote Assistence / Remote Desktop / NetMeeting RDS / Remote Desktop Help Session Manager turned off
UPnP & SSDP services disabled
Remote Registry service disabled
Net Logon service disabled
Media Centre services disabled
Aleter service disabled
Computer Browser service disabled - I don't want it
Distributed Link Tracking Client disabled
Help & Support set to manual - FWIW
Network Location Awareness (NLA) set to automatic
Network Provisioning Service disabed
Print Spooler service set to manual - I rarely print stuff
Security Center service disabled
Server service disalbed
Shell Hardware Detection (autoplay) service disabled
TCP/IP NetBIOS Helper service disabled - just piss off lou
changed Windows Time server from MS to NIST
Cleared the "Register this connection's addresses in DNS" thing Disabled LMHOSTS lookup on my wifi connection
Disabled NetBIOS over TCP/IP on my wifi connection
Don't auto-restart after crash
Don't dump core on crash
Disabled hibernation support
Configured Windows to clear the pagefile on shutdown
Set power mangemenet policy to minimal (just kill monitor)
Set the system to use the Metric system by default.
Set the system to use ISO standard date/time format by default.
Turned off the advanced language/text stuff; I don't need to input Hanzi/Cyrillic

At this point, I rebooted the system:

 shutdown -t 2 -r

and logged in with my limited user account. Ahh, the passionate joys of bending computer software to your evil bidding!!! The first thing I did was double check IE8 settings, and go install Google Chrome ;-). The second thing was open a Command Prompt — I never go without having one available.

I could configure Internet Explorer 8 more diliengly for secure operation, but I don’t use the bloody thing, except when programs (like XFire) require embedding IE or when visiting update.micro$oft.com. My life is spread across Chrome, Firefox, lynx, and links; but Chrome is my preferred beast of surfing burden.

From here on in, it was time to get cracking! C:2install was setup for storing downloaded files. After taking a few moments to get Chrome hooked up, my next stop was downloading PuTTY, making it a painless process to gain access to my OpenBSD server down the hall. Namely, the cute girl holding all of my backup data lol. When I took backups of SAL1600 today, I made saved a file named software.list with a table of every thing I need to fetch & install, written as: programtt-turl and sorted in sequence.

Although my PuTTY settings are unreachable without PuTTY, since the exported registry keys for all my sessions are on Vectra, I have sufficant memory to reach her manually.

Oh yeah, now I could finally hit 949thebull.

Because of my insane nack for planning these things better then NASA can launch a space shuttle, it was a rapid file breeze downloading most of the software I need to install, and the last 9 hours have been pretty interesting. All that is left to fetch, is basically Microsoft compiler/ide/runtime stuff and my mouse drivers. Most of tomorrow will likely be spent installing/configuring everything while waiting for the backups to SCP back over. Right now only the most minimal kit is setup and as soon as this virus scan completes, I’m hitting the hay, it’s already after 0830 in the morning….

There is also one more thing that I need to do, start checking more in depth the default access control and system policies. Despite often presenting pure idoicy as a matter of standard operating procedure, Windows NT does have some very nice security features; they’re just hidden so far from the average desktop user, that most will likely never discover them :-/. One of these days, I really need to setup some custom templates in order to speed all this crap up!

To be continued…

Chuckle of the day, 2009-09-24

Because most of the Win32 subsystem operations have been moved to kernel mode drivers, in Windows NT 4 and later CSRSS is mainly responsible for Win32 console windows, GUI shutdown, and threading. It is critical to system operation, therefore terminating this process will result in a Blue Screen of Death.

Wikipedia:Client/Server Runtime Subsystem

_Rolling_On_The_Floor_Laughing_My_Freaking_Hindend_Off_.

Well, I always figured that Microshaft(tm) didn’t share my belief that no user-visible program should be able to take down the Operating System, other wise it wouldn’t be so easy :-D.

1 less job of the week…..

I spent most of the morning scrubbing globs of dog hair off baseboards at work… not fun, but I’ve had much worse tasks over there. The great thing was only having to work half a normal day!

It looks like I might be looking at having Thursday’s off work. The financial situation of todays client, is stiffening up, and as usual with my mothers choice of business: we’re the among the first to be let go. For all the countless times my mother has driven me out of my freaking skull over there, I’m not going to miss having to suffer through that job every cycle, nor am I going to miss spending a few _hours_ of the day just lugging crap up and down staircases!!! Although, I do have to admit it was always good exercise… lol. Consistently Thursday has always been the hell-job, usually the one out of the week, that most closely equates to torture. I’m too used to having to work Thursdays to ever have peace… whatever the future holds, I don’t expect it to become a restful day.

The problem is that it means H.R.P. is going to be digging into me even about her own finances then before; its already started. As far as I am concerned, any attempt to reinterpret_cast<CashCow_t>(Me) from a Slave_t is not valid code… she forfeited that right years ago. Ma is looking at a $100/month loss in her bottom line, and the bottom line is the overruling factor in every thought and action for most people in my family. I’m perhaps the only only one who rejected mercenary behaviour, as a way of life.

Now I need to put up with her jabs about having to pay off a loan, the one she took out to cover my glasses. Somehow I don’t think I will ever hear the end of that one, even though she only had to do it, because she already had to “Borrow” every damn sent I had in order to fix the car, lol. Other wise I would’ve paid for them myself, and it’s not like I was the one who pissed away the rest of the loan money on stock piling stuff.

Combined with everything else that’s going on, it just slams Operation Redeemer and my freedom further back; this damn equation is never going to get solved at this rate. In order to get my license *and* be able to make use of it, I need to solve the petrol problem, the problem to that, is how the bloody hell to solve that one, without her royal pain trying to dig hooks into it. The rest of operation redeemer is also dependent upon solving that in order to proceed with the next factor. Why do I even bother any more? There may as well be a big bulls eye on the back of my head.

I’m nether bank nor animal, but when is it remembered that I’m a person?

Much of the weeks coding has been focused around exploratory coding with OGRE and related libraries. My star fighter game was originally planned to be built around SDL, but if this goes well I might actually use OGRE, and replace GIMP/.png with Blender/meshes for the entities of interest in it lol. Being the thing I am most familiar with, the prototype work is focused around a First Person Shooter type environment for right now.

My current thing to muck around with has been input; I’d rather like to set things up to use runtime choice of OIS/SDL for handling input and OpenAL/SDL for audio; right now I’m using just OIS for the prototype (and no audio).

This type of program is quiet a different beast then I am used to working on, most programs that I write usually can care less about individual keystrokes and mouse movements lol. So I’ve laid out some thought in how to deal with things. I’ve decided settings will be saved in XML format and will employ a key = command style mapping(; whatever is considered normal, I’ve been around quake/unreal games enough that my brain thinks that way about mapping controls lol). Each command will be an instance of a subclass of a more general command class, in charge of figuring out what the heck /should/ happen when the command is given. The games input manager is to register a std::map of key sequence = command object pairings (hard coded for now, since I’ve to busy to muck with an XML parser right now). Whenever input occurs that an interested command object has registered itself for, the command listener has a method called with the details about the input it wanted to know about.

One of my reasons for doing this, is I would rather like to implement a Quake style console for communication with the game; which is a style of program more up my avenue of expertise… lol. And it seems that it would make it easier to use the same interface for both the input manager and the console, in order to dispatch commands.

The thing I have not figured out just yet, is how these command objects will relate to actually getting their work done; but hey, I have got to get some sleep eventually and life sucks anyway; the code ain’t going to go any faster then life is!

Time for me to crash to a pillow, work cometh on swift wings…