diff --git a/extras/conf/udb/Includes/SRB222_things.cfg b/extras/conf/udb/Includes/SRB222_things.cfg index 0efe006fb10f1733a1a099f1e542412bd1dabc0b..8ae317d89deca483a81a362bb175cb4b40f49a49 100644 --- a/extras/conf/udb/Includes/SRB222_things.cfg +++ b/extras/conf/udb/Includes/SRB222_things.cfg @@ -3187,176 +3187,386 @@ udmf { title = "Player 01 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 2 { title = "Player 02 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 3 { title = "Player 03 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 4 { title = "Player 04 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 5 { title = "Player 05 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 6 { title = "Player 06 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 7 { title = "Player 07 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 8 { title = "Player 08 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 9 { title = "Player 09 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 10 { title = "Player 10 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 11 { title = "Player 11 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 12 { title = "Player 12 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 13 { title = "Player 13 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 14 { title = "Player 14 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 15 { title = "Player 15 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 16 { title = "Player 16 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 17 { title = "Player 17 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 18 { title = "Player 18 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 19 { title = "Player 19 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 20 { title = "Player 20 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 21 { title = "Player 21 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 22 { title = "Player 22 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 23 { title = "Player 23 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 24 { title = "Player 24 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 25 { title = "Player 25 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 26 { title = "Player 26 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 27 { title = "Player 27 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 28 { title = "Player 28 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 29 { title = "Player 29 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 30 { title = "Player 30 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 31 { title = "Player 31 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 32 { title = "Player 32 Start"; sprite = "PLAYA0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 33 { title = "Match Start"; sprite = "NDRNA2A8"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 34 { title = "CTF Red Team Start"; sprite = "SIGNG0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } 35 { title = "CTF Blue Team Start"; sprite = "SIGNE0"; + arg0 + { + title = "Spawn on ceiling?"; + type = 11; + enum = "noyes"; + } } } diff --git a/src/p_mobj.c b/src/p_mobj.c index beed59e8fb24fa3c6fe3926dd54e90a8615dc7a0..c673f39711773b93a18a4232bb8859adc704aaba 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -11643,9 +11643,9 @@ void P_MovePlayerToSpawn(INT32 playernum, mapthing_t *mthing) { fixed_t offset = mthing->z << FRACBITS; - // Flagging a player's ambush will make them start on the ceiling + // Setting the spawnpoint's args[0] will make the player start on the ceiling // Objectflip inverts - if (!!(mthing->options & MTF_AMBUSH) ^ !!(mthing->options & MTF_OBJECTFLIP)) + if (!!(mthing->args[0]) ^ !!(mthing->options & MTF_OBJECTFLIP)) z = ceilingspawn - offset; else z = floor + offset; diff --git a/src/p_setup.c b/src/p_setup.c index 46b47100c2046cbf9e12cdcf23fb6ebba0f06bbc..fc47c457326ef149ff1a64f503a6a69cd93beef1 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -4871,6 +4871,12 @@ static void P_ConvertBinaryMap(void) for (i = 0; i < nummapthings; i++) { + if (mapthings[i].type >= 1 && mapthings[i].type <= 35) + { + mapthings[i].args[0] = !!(mapthings[i].options & MTF_AMBUSH); + continue; + } + switch (mapthings[i].type) { case 110: //THZ Turret