It's not much of one, but I got the inventory panel control rendering. Here it is in high resolution:
The line width doesn't scale with resolution, so I'm going to have to fix that later.
Weapons, etc: Proceeding. This is my last week at work, so I'm hoping to get that done and out of the way and then start again on making equipped weapons visible, as well as communicating with the inventory panels.
Not Afterglow related news strictly, but I have just finished building a new machine.
The specs:
C2D E8400 @ 3.05GHz (they were out of Q6600s)
ATI Radeon HD4870 with 512MB of VRAM (much cheaper than GTX280 and supports Crossfire if I suddenly develop more case room)
Lian-Li V600 case (by far the worst part of the build)
700W PSU (second-worst part)
dual 1TB Samsung Spinpoints
4GB of RAM
Vista Ultimate x64
Not a bad little machine; gets 5.9s on everything in the Vista Experience Index except for CPU (5.7) but that can be fixed with the Asus soft overclock feature.
The thing that bothered me the most was the power supply; unlike my last one it's not modular. Modular power supplies are a no-brainer, and the inside of this machine resembles a squid on LSD. The case is too small to handle all of the cables I'm not using on the PSU, and I'm wondering if I'll even be able to upgrade this thing considering where I've got cables crammed.
Now I just wish I had some games that would push the machine; I ran 3Dmark and got a respectable score.
I did a bit of Afterglow work last night (making weapons visible in your hand); this is not significant enough to make an entry for.
So since Trent bugged me about it last night, I did a bit of work on item management. You can now see items on the ground, but you cannot yet pick them up.
Right now, the "item manager" is just a typedef std::list<ItemPtr>, but later I'll probably turn it into a proper class that will wrap things like collision detection and removing/adding between item repositories (e.g. inventory to ground, ground to inventory, shop inventory to your inventory).
If I were more awake last night, I would have taken a screenshot. Instead, you'll have to put up with this:
A very small micro-update -- I just got finished implementing the skeleton for items. I'm hoping that it will be extensible enough that I can fix stuff up without breaking it; currently it doesn't rely on magic flags anymore to figure out basic behaviour.
Once the rubber hits the road, it might change, but my SVN server is down right now and I don't want to try anything risky in case my house spontaneously bursts into flames or something. Yes, I'm paranoid about my source. Also I have a paper to finish.
So, in lieu of a further update, this:
I promise I'll come back and make up for it later this week. I did buy Snapz Pro X, as I've said before, so I've spent money on this. Money.
So I worked a bit more on the editor and then ginned up a reasonable test map. That's when I discovered that I could no longer go places on the map which should be certainly valid.
So I launched into a bit of an investigation, ending in the culprit being a broken line-circle intersection routine.
See, in Afterglow, when you ask to move somewhere, we do a circle-line collision. This is because all the walls in the game can be represented by line segments, and your player is best represented as a circle (for simplicity). I ended up writing my own circle-line collision routine, based on some back-of-the-napkin sketches.
It's been fixed with someone else's circle-line collision routine, which works a treat. The only problem now is sliding along walls.
See, when you request to go somewhere in Afterglow, the routine for checking for collision gives you back a legitimate vector upon which you can continue. In most cases that's the vector you asked for, but in the case where you are rubbing against a wall, that's a vector along the wall (that is, projected by the wall).
So what's the problem with that? Well, I stop as soon as I find one wall that's invalid -- the wall you collided with. Then I bail on further collision checking (for speed) and return the vector, which I then treat as gospel.
This makes it possible to slide along one wall right through another one. Here I am doing it:
Luckily, this is easy to fix -- I just have to feed in the 'new' vector into the collision detection function again until I get a valid permutation. I'm just worried about too much recursion in the event of an "impossible" scenario (such as spawning inside a wall).
Hey Kids! If you're a ravuya fanboy (or, dare I say it, fangirl) you can check out my whack at a Daily GDNet this Monday.
Presumably this will become a common thing. We'll have to rename Monday to Ravuyaday, and have Jim Davis executed for speaking out against me.