Sorry, another list!
1. Sign me up and I will give you as much time as I can. Are you planning on creating a forum or web for communicating design?
2. I will not get too heavily involved in the core programming until I am free (hopefully July/August), but until then I will help with design and providing high-level algorithms you could translate into source code.
3. Pathfinding - a better explaination.
Each unit has the following attributes (of course, as well as others):
Origin (the position x,y of unit on map)
Destination (the position x,y of the destination of the unit)
Destination Unit (special cases, fixed and cancelled)
Pathfinder (an array of several positions x,y on the map)
Lets say we have two units, they can be anything from a tree to a catapult. Label the units A and B.
Example:
A.Origin = (10,10)
A.Destination = (null) i.e. not set or set to a special case
A.Destination Unit = (0) i.e. set to nothing
A.Pathfinder = empty array
B.Origin = (20,20)
B.Destination = (null) i.e. not set or set to a special case
B.Destination Unit = (0) i.e. set to nothing
B.Pathfinder = empty array
If A is commanded to attack B, or cut down B etc then the following assignments occur:
A.Destination = B.Origin
A.Destination Unit = B.Unique ID (an id used to determine the instance of B)
As A moves, A.Origin is updated
If B moves, B.Origin is updated, as so is A.Destination
As soon as the A.Destination is updated, a calculation occurs where a straight line is drawn from A to B. Then, if any terrain, units etc are in the way from the start of the line a change in direction is used to redraw the line.
Not every single step is required, just an advancement on so many steps. The A.Pathfinder array is populated with an array of coordinates (where the change in direction occurs).
A.Destination being updated will trigger A.Pathfinder re-calculating. If the unit reaches the final step in A.Pathfinder but is not at the destination A.Pathfinder will be updated.
You need a special case where the destination is not a unit but a place on the map. This can either use a pre-set value or assign the map a unit id. The latter is a simpler approach but could eat up more memory.
4. Graphics.drs
The coordinates may actually be the central coordinates of the graphics. In other words, when using the graphic for a unit at coordinate x,y on the map, re-alignment is required so that the centre of the image (given by the coordinates in the text file) = x,y on the map.
5. Colours
I am not sure but you may find that there are only 2 shades of blue, 1 being a shadow?
When you rip the images from drs you should get three files. 1 is the graphic, 1 is the coordinates, 1 is the extra details. The extra details will be a white silhouette of the unit, and the player colour added in the same location as the blue colour in the original graphic. There is another colour used for shadow.
I guess we could use this file to mask the graphic. Set the colour to the player colour and then add to the graphic. Any parts which are white (i think, or it may be black) are not overwritten.[This message has been edited by Rasteve (edited 04-04-2007 @ 10:47 AM).]