I haven't actually tested to change levels.con and make it work with usermaps, but yes, levels.con and the HUB sections and level transitions work together.
Let's say that you want to have ONE zone and that you're trying replace the Preview Campaign by your own campaign. This is just an example because it's easier to use preview as an example: you don't
need to replace any existing episode and you can
add your own, you should also be able to make several zones if you want to; but if you understand my example hopefully you should be able to
add as many EPs and zones as you want.
Anyway, in that example try the following:
- Not a mandatory step but, rename the name of the ep there
Quote
definevolumename EP_PREVIEW Crisis in Columbia
.
- then, rename the map files and level names in the part in levels.con corresponding to that
Quote
definelevelname EP_PREVIEW 0 maps/preview_0.map 00:00 00:00 Defense Farce
definelevelname EP_PREVIEW 1 maps/preview_1.map 00:00 00:00 Washington Wasteland
definelevelname EP_PREVIEW 2 maps/preview_2.map 00:00 00:00 Blast Processing
definelevelname EP_PREVIEW 3 maps/preview_3.map 00:00 00:00 Disrupted Service
definelevelname EP_PREVIEW 4 maps/preview_4.map 00:00 00:00 Nukage Nightmare
definelevelname EP_PREVIEW 5 maps/preview_hhoh.map 00:00 00:00 Heskel's House of Horrors
- Finally, you can change the music tracks in music.con
- then, I assume you know how to add this con and have it load with your maps without the files overwriting anything from the main game.
- as for the level transitions you need:
a HUBSECTION sprite in each map, the hitag determines level number. It starts with 0 so the first level should be hitag 0.
a SE64 at the end of each map that teleporters to a corresponding SE65 in the next map. Think of it like SE7 except it teleporters to another level. Check the documention for the tagging system, everything should be noted there, notice that you can send the player to any map within the zone, it doesn't have to be the next map according to filenames per se.
If you want the player to be able to backtrack to the previous level, you need to add a seperate SE64-65 link that goes the other way. If no backtracking is possible, the game should automatically consider this a Point Of No Return and delete the remaining keycards in the player's inventory.
You may also use SE80 instead of SE64, which works the same way but adds a fade to black for transition (I do not know for sure that you can add backtracking with SE80 as we never used it that way).
For the end of the zone, have an EOL sprite to end the last map (instead of SE64). If you have another zone afterwards, the tag of the EOL should correspond to the next level number
according to the levels masterlist in levels.con. In other words, the EOL which ends the zone in z5a2 is lotag 23 because z6a1 is level 23 in the master list, so this setting is seperate to level numbers according to HUBSECTION, for reasons that should be obvious with my next paragraph.
Also note that secrets/enemy counts only reset at the end of a zone.
If you have several zones, know that it's levels.con that determines the zones; and that what the HUBSECTIONS, and SE64-65 effects sprites know are zone contained. What I mean by that is, for instance, zone 1 level 2 is HUBSECTION hitag 1; but zone 6 level 2 is also HUBSECTION hitag 1.
Hope I was helpful and didn't make a mistake there. It's actually not that complicated !