This post is mostly for Koden (who logged off while I was typing...) but I will sticky it in case anybody else wants to try to convert a 2.8 map to 2.5. Basically, the AA developers renamed texture/staticmesh/sound packages for 2.8. Why they did this... I have no idea, it serves absolutely no purpose and gave them more work. So, this is the main obstacle for converting maps.
If you have never seen an Americas Army map in text format then this link will show you exactly what it looks like
http://dl.dropbox.com/u/7352483/Americas%20Army/Bridge.txtas daunting as it may seem actually converting is very simple (albeit tedious) process.
Extraction:The first step to converting is to pull the map out of the editor. To do this, you need to have the 2.8 editor and the map you want to convert. Open the map in the editor and go to Edit > Select All Actors then Edit > Copy
On larger maps, the editor WILL stall out. Don't click around, don't close the editor, just wait. If it doesn't come back alive in 1 minute, kill it and try again. Now that you have copied all of the maps' contents, paste it into Notepad and save it.
Conversion:Now you have to rename all those packages we talked about earlier. Sometimes it's easy and sometimes it's not. The easiest way to explain this is to give you an example of a line, and how you need to change it. We will take one from the bridge.txt linked to earlier:
Begin Polygon Texture=T_AA2_Sky.fog.sky_fog_grayfog Flags=128 Link=0
here's something you gotta understand the periods, they separate the package name, group name and texture name. What we will currently focus on is the texture name. At the beginning of the texture name it says sky_ so you can pretty much safely assume that's from the T-Sky package, not T2-Sky package. So the line
Begin Polygon Texture=T_AA2_Sky.fog.sky_fog_grayfog Flags=128 Link=0
will become
Begin Polygon Texture=T-Sky.fog.sky_fog_grayfog Flags=128 Link=0
However, if the original line had been
Begin Polygon Texture=T_AA2_METAL.Diamondplate.met2_diamondplate_Dplate_white_rusty
We can see the texture name begins with met2_ not just met_ so what happens in this case is we can determine this texture comes from package T2-Metal, so it will become
Begin Polygon Texture=T2-METAL.Diamondplate.met2_diamondplate_Dplate_white_rusty
This applies to other textures as well. T2-Doors.wood.doors2, T2-Fabric.Detail.fabric2_, T2-FX.Projector.FX2_, etc. This is usually a good rule of thumb but doesn't always work. Light meshes are notoriously problematic. To overcome this, you can find out where a specific resource is at in AA 2.5 with UTPT:
http://www.acordero.org/download/utpt20beta5.zipYou should be able to open most packages from 2.5 in UTPT to find out for sure what a specific resource is named.
This technique will also need to be done with staticmeshes and sounds;
StaticMesh=StaticMesh'M_AA2_Pipeline.Supports.pipe_supports_truss01
But using what we learned above, we can already know how it is changed, just instead of T_AA2_ becoming T- its just M_AA2_ becoming M- or M2- respectfully, so that line will become
StaticMesh=StaticMesh'M-Pipeline.Supports.pipe_supports_truss01
But, there is good news. You don't need to change every single one by hand. Take note of this line:
Texture=T_AA2_METAL.Diamondplate.met2_
As you can see its not the full line, just the important part. Use a "Find and Replace" feature of a text editor to replace all of these occurances with the updated string
Texture=T2-METAL.Diamondplate.met2_
This way, not only does the met2_diamondplate_Dplate_white_rusty texture get converted but all of the other textures in the group get converted as well. Sure beats changing 300 of the exact same line.
Tips:- When choosing a map to convert, try to choose one with little or no terrain. Terrain can be imported but it usually needs to have a lot of editing done.
- If you haven't converted a map before, choose a small one, as small as you can.
- Notepad++ is a great program to do this in.
Here is an unfinished list of textures I started many years ago. It's not much but it may help give you an idea:
Textures:
T_AA2_Attachments.carryobjects=T2-Attachments.carryobjects
T_AA2_Attachments.Civilian=T-Attachments.Civilian
T_AA2_Attachments.Default=T-Attachments.Default
T_AA2_Attachments.op-DesOp=T-Attachments.op-DesOp
T_AA2_Attachments.US_Special_Forces=T-Attachments.US_Special_Forces
T_AA2_Attachments.us-soldier.skn2=T-Attachments.us-soldier.skn2
T_AA2_Attachments.us-soldier.face_nvg_test2=T-Attachments.us-soldier.face_nvg_test2
T_AA2_Attachments.us-soldier.helmet_=T-Attachments.us-soldier.helmet_
T_AA2_Attachments.us-soldier.target=T-Attachments.us-soldier.target
T_AA2_Attachments.us-soldier.visors=T-Attachments.us-soldier.visors
T_AA2_Attachments.us-soldier.visors_m=T-Attachments.us-soldier.visors_m
T_AA2_Attachments.us-soldier.SKIN_=T-Attachments.us-soldier.SKIN_
T_AA2_Attachments.us-soldier.skn-=T-Attachments.us-soldier.skn-
T_AA2_Attachments.us-soldier.skn_=T-Attachments.us-soldier.skn_
T_AA2_Brick.Detail=T2-Brick.Detail
T_AA2_Brick.Floor=T2-Brick.Floor
T_AA2_Brick.Skins=T2-Brick.Skins
T_AA2_Brick.Trim.brk2_=T2-Brick.Trim.brk2_
T_AA2_Brick.Wall.brk2_=T2-Brick.Wall.brk2_
T_AA2_Brick.Trim.brk_=T-Brick.Trim.brk_
T_AA2_Brick.Wall.brk_=T-Brick.Wall.brk_
T_AA2_CampMackall=T-CampMackall
T_AA2_Characters.FlightCrew=T2-Characters.FlightCrew
T_AA2_Characters.Soldier=T2-Characters.Soldier
T_AA2_Characters.ArcOp=T-Characters.ArcOp
T_AA2_Characters.CivDoc=T-Characters.CivDoc
T_AA2_Characters.Civilian=T-Characters.Civilian
T_AA2_Characters.CivOp=T-Characters.CivOp
T_AA2_Characters.George=T-Characters.George
T_AA2_Characters.Inf=T-Characters.Inf
T_AA2_Characters.Instructor=T-Characters.Instructor
T_AA2_Characters.OpInf=T-Characters.OfInf
T_AA2_Characters.OpM=T-Characters.OpM
T_AA2_Characters.RealHeroes=T-Characters.RealHeroes
T_AA2_Characters.SF=T-Characters.SF
T_AA2_Characters.SFArc=T-Characters.SFArc
T_AA2_Characters.Soldier=T-Characters.Soldier
T_AA2_Characters.US_Guerrilla=T-Characters.US_Guerrilla
T_AA2_Characters.US_OpGuard=T-Characters.US_OpGuard
T_AA2_Characters.Wounded=T-Characters.Wounded
T_AA2_Characters.Yeti=T-Characters.Yeti
T_AA2_Concrete.ceiling.con_=T-Concrete.ceiling.con_
T_AA2_Concrete.Floor.con_=T-Concrete.Floor.con_
T_AA2_Concrete.misc.con_=T-Concrete.misc.con_
T_AA2_Concrete.skins.con_=T-Concrete.skins.con_
T_AA2_Concrete.trim.con_=T-Concrete.trim.con_
T_AA2_Concrete.wall.con_=T-Concrete.wall.con_
T_AA2_Concrete.ceiling.con2_=T2-Concrete.ceiling.con2_
T_AA2_Concrete.detail.con2_=T2-Concrete.detail.con2_
T_AA2_Concrete.floor.con2_=T2-Concrete.floor.con2_
T_AA2_Concrete.misc.con2_=T2-Concrete.misc.con2_
T_AA2_Concrete.skins.con2_=T2-Concrete.skins.con2_
T_AA2_Concrete.trim.con2_=T2-Concrete.trim.con2_
T_AA2_Concrete.wall.con2_=T2-Concrete.wall.con2_
T_AA2_Concrete.ceiling.conc2_=T2-Concrete.ceiling.conc2_
T_AA2_Concrete.Detail.conc2_=T2-Concrete.Detail.conc2_
T_AA2_Concrete.Floor.conc2_=T2-Concrete.Floor.conc2_
T_AA2_Concrete.misc.conc2_=T2-Concrete.misc.conc2_
T_AA2_Concrete.skins.conc2_=T2-Concrete.skins.conc2_
T_AA2_Concrete.trim.conc2_=T2-Concrete.trim.conc2_
T_AA2_Concrete.wall.conc2_=T2-Concrete.wall.conc2_
T_AA2_Doors.Gate=T-Doors.Gate
T_AA2_Doors.hospital=T2-Doors.hospital
T_AA2_Doors.metal.Door_=T-Doors.metal.Door_
T_AA2_Doors.metal.Door2_=T2-Doors.metal.Door2_
T_AA2_Doors.metal.Doors2_=T2-Doors.metal.Doors2_
T_AA2_Doors.sliding=T2-Doors.metal.sliding
T_AA2_Doors.storefront=T2-Doors.metal.storefront
T_AA2_Doors.unopenable=T2-Doors.metal.unopenable
T_AA2_Doors.wood.door_=T-Doors.wood.door_
T_AA2_Doors.wood.door2_=T2-Doors.wood.door2_
T_AA2_Doors.wood.doors2_=T2-Doors.wood.doors2_
T_AA2_Doors.wood.drs=T2-Doors.wood.drs
T_AA2_Doors.wtentrance=T2-Doors.wtentrance
T_AA2_Editor=T-Editor
T_AA2_Fabric.bedding=T-Fabric.bedding
T_AA2_Fabric.crpt=T-Fabric.crpt
T_AA2_Fabric.cubicle=T2-Fabric.cubicle
T_AA2_Fabric.Detail.FAB_=T-Fabric.Detail.FAB_
T_AA2_Fabric.Detail.fabric2_=T2-Fabric.Detail.fabric2_
T_AA2_Fabric.misc=T-Fabric.misc
T_AA2_Fabric.patterns=T2-Fabric.patterns
T_AA2_Fabric.skins=T2-Fabric.skins
T_AA2_Fabric.trim=T-Fabric.trim
T_AA2_Fabric.tweed=T-Fabric.tweed
T_AA2_FX.Animated=T2-FX.Animated
T_AA2_FX.Corona=T2-FX.Corona
T_AA2_FX.Coronas=T-FX.Coronas
T_AA2_FX.Cubes.CUBE-=T2-FX.Cubes.CUBE-
T_AA2_FX.Cubes.FX_=T-FX.Cubes.FX_
T_AA2_FX.Cubes.FX2_=T2-FX.Cubes.FX2_
T_AA2_FX.Cubes.SKY=T2-FX.Cubes.SKY
T_AA2_FX.Cubes.WT_=T2-FX.Cubes.WT_
T_AA2_FX.Decal=T-FX.Decal
T_AA2_FX.Decals=T2-FX.Decals
T_AA2_FX.Egg=T2-FX.Egg
T_AA2_FX.flash=T2-FX.flash
T_AA2_FX.Gradients=T2-FX.Gradients
T_AA2_FX.Light=T2-FX.Light
T_AA2_FX.Lights=T-FX.Lights
T_AA2_FX.MedicTraining=T2-FX.MedicTraining
T_AA2_FX.Optics=T-FX.Optics
T_AA2_FX.Overlay=T2-FX.Overlay
T_AA2_FX.Overlays=T-FX.Overlays
T_AA2_FX.Particle=T2-FX.Particle
T_AA2_FX.Particles=T-FX.Particles
T_AA2_FX.Projector.FX2_=T2-FX.Projector.FX2_
T_AA2_FX.Projector.FX_=T-FX.Projector.FX_
T_AA2_FX.ProjectorTerrain=T-FX.ProjectorTerrain
T_AA2_FX.Shadow.2FX_=T2-FX.Shadow.2FX_
T_AA2_FX.Shadow.FX_=T-FX.Shadow.FX_
T_AA2_FX.Shadow.FX2_=T2-FX.Shadow.FX2_
T_AA2_FX.Shadow.genshadow=T-FX.Shadow.genshadow
T_AA2_FX.sunflares=T-FX.sunflares
T_AA2_FX.tags=T3-FX.tags
Meshes:
M_AA2_Architectural.Pipes_low=M2-Architectural.Pipes_low.
M_AA2_Lights.Interior=M-Light.Interior
Blueblaster and Skrewy, be sure to add your thoughts on this and how to make it easier for noobs.