[TEAMS] Mixed Team Spawn Pointsis being used, then the spawning order must be interleaved (e.g. P1 Blue, P1 Red, P2 Blue, P2 Red, etc), otherwise one side may have more starting players than the other. To do all these adjustments by hand would be quite annoying and time consuming, so, to help with that task, we implemented a few routines on the
produke.m32script to help you with the proccess of ordering the APLAYER sprites. Assuming you follwed all the steps on the Getting Started, section, the
produke.m32script is already being included automatically. So, to use the helper routines from it, all you have to do is to open the Mapster32 console (usually via the key `) and then type the command
do ROUTINE_NAME. Below there's a list of all helper routines available:
| Routine name | Description |
|---|---|
| po_get |
Sets the extraof every APLAYER sprite with the current sprite order (starting at 1). It correctly separates the APLAYER sprites in distinct groups (COOP / DM / Blue-Team / Red-Team / Green-Team / Brown-Team). |
| po_set |
Reorders the APLAYER sprites based on their extra(first call po_get to fill them for you, do your adjustments, and then run po_set). When reordering TEAM spawn points, it will apropriatelly interleave across teams, so if playing with [TEAMS] Mixed Team Spawn Points, the initial spawn will still be symmetric. |
| po_clear |
Clears the extraof the APLAYER sprites. Not extremelly needed, but recommended to do before releasing the map publicly. |
| cam_get | Similar to po_get, but for the CAMERA1 sprites, since they follow the same logic (i.e. ID ordered). |
| cam_set | Similar to po_set, but for the CAMERA1 sprites. |
| cam_clear | Similar to po_clear, but for the CAMERA1 sprites. |
| ang_fix | Adjusts the angle of certain effect sprites when the angle have meaning, so when doing a X+Y flip on the whole map the effects will have their behavior preserved. |
| bump_tags | Bumps the non-zero channel tags of every sprite/wall/sector by 5000. |
| actor_fix | Sets actors sprites size & cstat to how they are in game. |
po_getand
po_set. So, as explained above,
po_getwill set the extra of every APLAYER sprite to their current order. If you run
po_get(by openning the console and typing
do po_get) on E1L1.map for example, it will set the extra of the APLAYER sprite from the bathroom to 1 (since that's P2's start point), the one on the exit to 2 (since that's P3 start point), and so on... The idea is to get the extra of every APLAYER sprite to a value that you choose (first by calling
po_getand after that editing each one individually when needed by the
ALT + Mhotkey), and then run
po_setto reorder them based on the values you choose.