diff --git a/src/game/propobj.c b/src/game/propobj.c index b3c37de55..097117bca 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -7990,7 +7990,11 @@ void platform_displace_props(struct prop *platform, s16 *propnums, struct coord g_Vars.players[playernum]->vv_ground += ydist; - if (ydist > 0.0f || (platformobj->flags & OBJFLAG_LIFT_CHECKCEILING) == 0) { + // OBJFLAG_LIFT_CHECKPROPS is used on unwalled lifts where a prop on the ground + // could be blocking the player's descent if the player is standing near the edge + // of the lift. If this flag is set, do collision checks when descending. + if (ydist > 0.0f || (platformobj->flags & OBJFLAG_LIFT_CHECKPROPS) == 0) { + // Simple collision check based on rooms and portals only sp78.x = prop->pos.x; sp78.y = prop->pos.y + ydist; sp78.z = prop->pos.z; @@ -8006,9 +8010,12 @@ void platform_displace_props(struct prop *platform, s16 *propnums, struct coord g_Vars.players[playernum]->vv_manground += ydist; g_Vars.players[playernum]->sumground = g_Vars.players[playernum]->vv_manground / (PAL ? 0.054400026798248f : 0.045499980449677f); - } else if (bwalk_try_move_upwards(ydist) == CDRESULT_NOCOLLISION) { - g_Vars.players[playernum]->vv_manground += ydist; - g_Vars.players[playernum]->sumground = g_Vars.players[playernum]->vv_manground / (PAL ? 0.054400026798248f : 0.045499980449677f); + } else { + // Comprehensive collision check + if (bwalk_try_move_upwards(ydist) == CDRESULT_NOCOLLISION) { + g_Vars.players[playernum]->vv_manground += ydist; + g_Vars.players[playernum]->sumground = g_Vars.players[playernum]->vv_manground / (PAL ? 0.054400026798248f : 0.045499980449677f); + } } player_update_perim_info(); diff --git a/src/include/constants.h b/src/include/constants.h index c747d03df..27253a3e8 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -3086,7 +3086,7 @@ #define OBJFLAG_CHOPPER_INACTIVE 0x80000000 #define OBJFLAG_DOOR_TWOWAY 0x80000000 // Door swings in both directions #define OBJFLAG_HOVERCAR_ISHOVERBOT 0x80000000 -#define OBJFLAG_LIFT_CHECKCEILING 0x80000000 +#define OBJFLAG_LIFT_CHECKPROPS 0x80000000 #define OBJFLAG_WEAPON_CANMIXDUAL 0x80000000 // obj->flags2 diff --git a/src/setups/mp_setupcrad.c b/src/setups/mp_setupcrad.c index 4f2107876..e4955dfd6 100644 --- a/src/setups/mp_setupcrad.c +++ b/src/setups/mp_setupcrad.c @@ -53,7 +53,7 @@ u32 props[] = { ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00FF, OBJFLAG_FALL, 0, 0, 1000) stdobject(0x0100, MODEL_A51_CRATE2, PAD_CRAD_0100, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_CORE_GEO_INUSE | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000) tag(0x01, 1) - lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_CRAD_0104, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKCEILING, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x0104, 0x0103, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005b0, 0x00050000, 0x00000000) + lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_CRAD_0104, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKPROPS, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x0104, 0x0103, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005b0, 0x00050000, 0x00000000) endprops }; diff --git a/src/setups/mp_setupmp1.c b/src/setups/mp_setupmp1.c index 0e0381244..b1811af93 100644 --- a/src/setups/mp_setupmp1.c +++ b/src/setups/mp_setupmp1.c @@ -52,9 +52,9 @@ u32 props[] = { ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_0048, OBJFLAG_FALL, 0, 0, 1000) ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_0049, OBJFLAG_FALL, 0, 0, 1000) tag(0x01, 1) - lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP1_004C, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKCEILING, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x004c, 0x004d, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001555, 0x00320000, 0x00000000) + lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP1_004C, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKPROPS, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x004c, 0x004d, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001555, 0x00320000, 0x00000000) tag(0x02, 1) - lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP1_004B, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKCEILING, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x004b, 0x004a, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001555, 0x00320000, 0x00000000) + lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP1_004B, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKPROPS, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x004b, 0x004a, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001555, 0x00320000, 0x00000000) door(0x0100, MODEL_DD_LABDOOR, PAD_MP1_004E, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000100) door(0x0100, MODEL_DD_LABDOOR, PAD_MP1_004F, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000100) door(0x0100, MODEL_DD_LABDOOR, PAD_MP1_0051, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000100) diff --git a/src/setups/mp_setupmp10.c b/src/setups/mp_setupmp10.c index 9259656fe..725b06ec6 100644 --- a/src/setups/mp_setupmp10.c +++ b/src/setups/mp_setupmp10.c @@ -55,13 +55,11 @@ u32 props[] = { ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00B5, OBJFLAG_FALL, 0, 0, 1000) ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00B6, OBJFLAG_FALL, 0, 0, 1000) tag(0x00, 1) - // @bug: This lift is missing OBJFLAG_LIFT_CHECKCEILING. If one player stands - // on top of another player while on this lift, they'll ascend indefinitely. lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP10_006A, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x006a, 0x006b, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c71, 0x0074aaaa, 0x00000000) tag(0x01, 1) - lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP10_006C, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKCEILING, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x006c, 0x006d, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c71, 0x0074aaaa, 0x00000000) + lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP10_006C, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKPROPS, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x006c, 0x006d, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c71, 0x0074aaaa, 0x00000000) tag(0x02, 1) - lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP10_006E, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKCEILING, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x006e, 0x006f, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c71, 0x0074aaaa, 0x00000000) + lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP10_006E, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKPROPS, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x006e, 0x006f, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c71, 0x0074aaaa, 0x00000000) endprops }; diff --git a/src/setups/mp_setupmp12.c b/src/setups/mp_setupmp12.c index 0fc6efc5c..91af4c779 100644 --- a/src/setups/mp_setupmp12.c +++ b/src/setups/mp_setupmp12.c @@ -97,21 +97,21 @@ u32 props[] = { ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01F0, OBJFLAG_FALL, 0, 0, 1000) ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01F1, OBJFLAG_FALL, 0, 0, 1000) tag(0x01, 1) - lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01F2, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKCEILING, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x01f2, 0x01f3, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000) + lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01F2, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKPROPS, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x01f2, 0x01f3, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000) tag(0x02, 1) - lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01F4, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKCEILING, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x01f4, 0x01f5, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000) + lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01F4, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKPROPS, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x01f4, 0x01f5, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000) tag(0x03, 1) - lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01F6, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKCEILING, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x01f6, 0x01f7, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000) + lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01F6, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKPROPS, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x01f6, 0x01f7, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000) tag(0x04, 1) - lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01F8, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKCEILING, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x01f8, 0x01f9, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000) + lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01F8, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKPROPS, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x01f8, 0x01f9, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000) tag(0x05, 1) - lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01FA, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKCEILING, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x01fa, 0x01fb, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000) + lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01FA, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKPROPS, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x01fa, 0x01fb, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000) tag(0x06, 1) - lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01FC, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKCEILING, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x01fc, 0x01fd, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000) + lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01FC, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKPROPS, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x01fc, 0x01fd, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000) tag(0x07, 1) - lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01FE, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKCEILING, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x01fe, 0x01ff, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000) + lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01FE, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKPROPS, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x01fe, 0x01ff, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000) tag(0x08, 1) - lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_0200, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKCEILING, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x0200, 0x0201, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000) + lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_0200, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKPROPS, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x0200, 0x0201, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000) door(0x0100, MODEL_CH_SHUTTER1, PAD_MP12_019E, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000a00) door(0x0100, MODEL_CH_SHUTTER1, PAD_MP12_019F, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000a00) door(0x0100, MODEL_CH_SHUTTER1, PAD_MP12_01A0, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000a00) diff --git a/src/setups/setupear.c b/src/setups/setupear.c index acc2e449a..c87bc92ea 100644 --- a/src/setups/setupear.c +++ b/src/setups/setupear.c @@ -144,7 +144,7 @@ u32 props[] = { endobjective tag(0x60, 1) - lift(0x0100, MODEL_LIFT_PLATFORM, PAD_EAR_025B, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKCEILING, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x025b, 0x025c, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000b6, 0x0010aaaa, 0x15000000) + lift(0x0100, MODEL_LIFT_PLATFORM, PAD_EAR_025B, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKPROPS, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x025b, 0x025c, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000b6, 0x0010aaaa, 0x15000000) door(0x0100, MODEL_DD_ACCESSDOORUP, PAD_EAR_019B, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000100) door(0x0100, MODEL_DD_ACCESSDOORDN, PAD_EAR_019C, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000) door(0x0100, MODEL_DD_ACCESSDOORUP, PAD_EAR_019D, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000100) diff --git a/src/setups/setuprit.c b/src/setups/setuprit.c index 79c2368f0..c41afa900 100644 --- a/src/setups/setuprit.c +++ b/src/setups/setuprit.c @@ -247,7 +247,7 @@ u32 props[] = { chr(0, 0x36, PAD_RIT_00B5, BODY_STRIPES, HEAD_RANDOM, AILIST_CLONER2, -1, -1, 200, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_AIVSAI | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, CHRFLAG1_NOHANDCOMBAT | CHRFLAG1_NOIDLEANIMS | CHRFLAG1_AIVSAI_ADVANTAGED | CHRFLAG1_NOOP_00200000, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0) chr(0, 0x37, PAD_RIT_00B6, BODY_STRIPES, HEAD_RANDOM, AILIST_CLONER3, -1, -1, 200, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_AIVSAI | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, CHRFLAG1_NOHANDCOMBAT | CHRFLAG1_NOIDLEANIMS | CHRFLAG1_AIVSAI_ADVANTAGED | CHRFLAG1_NOOP_00200000, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0) tag(0x1b, 1) - lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_RIT_010B, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKCEILING, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x010b, 0x010a, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x15000000) + lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_RIT_010B, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKPROPS, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x010b, 0x010a, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x15000000) tag(0x1f, 1) lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_RIT_0110, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x0110, 0x0111, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x15000000) door(0x0100, MODEL_DD_DR_NONREF, PAD_RIT_00D2, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000800)