diff --git a/src/files/setup/setupark.c b/src/files/setup/setupark.c index 23a4a5232..704aeb898 100644 --- a/src/files/setup/setupark.c +++ b/src/files/setup/setupark.c @@ -364,7 +364,7 @@ u32 props[] = { stdobject(0x0100, MODEL_DD_DESK, PAD_ARK_022F, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000) stdobject(0x0100, MODEL_QUADPOD, PAD_ARK_01B6, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, OBJFLAG2_00000001, 0, 1000) tag(0x1f, 1) - weapon(0x0100, MODEL_CHRDYROCKET, PAD_ARK_01C4, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE | OBJFLAG_00400000 | OBJFLAG_40000000, OBJFLAG2_00000001, 0, WEAPON_ROCKETLAUNCHER) + weapon(0x0100, MODEL_CHRDYROCKET, PAD_ARK_01C4, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE | OBJFLAG_00400000 | OBJFLAG_WEAPON_40000000, OBJFLAG2_00000001, 0, WEAPON_ROCKETLAUNCHER) camera2(0x0000, 0xffff9931, 0xfffea6ce, 0x00003a3e, 0x00410000, 0x00000000, PAD_ARK_001B) tag(0x06, -1) camera2(0x0000, 0xffffba1e, 0xfffeba56, 0xffff7356, 0x01560000, 0x00000000, PAD_ARK_001B) diff --git a/src/files/setup/setupcave.c b/src/files/setup/setupcave.c index d2e8bbe7f..c33092424 100644 --- a/src/files/setup/setupcave.c +++ b/src/files/setup/setupcave.c @@ -453,10 +453,10 @@ u32 props[] = { door(0x0100, MODEL_AF1_INNERDOOR, PAD_CAVE_018F, OBJFLAG_ILLUMINATED | OBJFLAG_DEACTIVATED, OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000800) tag(0x19, 1) multimonitor(0x0099, MODEL_COMHUB, PAD_CAVE_0154, OBJFLAG_00000002 | OBJFLAG_00000100, OBJFLAG2_00000001, 0, 1000, 3, 3, 3, 0) - hovercar(0x0080, MODEL_TESTERBOT, PAD_CAVE_01BA, OBJFLAG_00000008 | OBJFLAG_20000000 | OBJFLAG_40000000 | OBJFLAG_80000000, 0, 0, 100, 0x0000042e) - hovercar(0x0080, MODEL_HOOVERBOT, PAD_CAVE_01BA, OBJFLAG_00000008 | OBJFLAG_20000000 | OBJFLAG_40000000 | OBJFLAG_80000000, 0, 0, 100, 0x0000042f) - hovercar(0x0080, MODEL_HOOVERBOT, PAD_CAVE_01C3, OBJFLAG_00000008 | OBJFLAG_20000000 | OBJFLAG_40000000 | OBJFLAG_80000000, 0, 0, 100, 0x00000431) - hovercar(0x004c, MODEL_TESTERBOT, PAD_CAVE_01C3, OBJFLAG_00000008 | OBJFLAG_20000000 | OBJFLAG_40000000 | OBJFLAG_80000000, 0, 0, 100, 0x00000432) + hovercar(0x0080, MODEL_TESTERBOT, PAD_CAVE_01BA, OBJFLAG_00000008 | OBJFLAG_20000000 | OBJFLAG_HOVERCAR_40000000 | OBJFLAG_80000000, 0, 0, 100, 0x0000042e) + hovercar(0x0080, MODEL_HOOVERBOT, PAD_CAVE_01BA, OBJFLAG_00000008 | OBJFLAG_20000000 | OBJFLAG_HOVERCAR_40000000 | OBJFLAG_80000000, 0, 0, 100, 0x0000042f) + hovercar(0x0080, MODEL_HOOVERBOT, PAD_CAVE_01C3, OBJFLAG_00000008 | OBJFLAG_20000000 | OBJFLAG_HOVERCAR_40000000 | OBJFLAG_80000000, 0, 0, 100, 0x00000431) + hovercar(0x004c, MODEL_TESTERBOT, PAD_CAVE_01C3, OBJFLAG_00000008 | OBJFLAG_20000000 | OBJFLAG_HOVERCAR_40000000 | OBJFLAG_80000000, 0, 0, 100, 0x00000432) tag(0x03, 1) weapon(0x0040, MODEL_SAFEITEM, PAD_CAVE_00D6, OBJFLAG_00000008, 0, OBJFLAG3_00400000, WEAPON_FLIGHTPLANS) rename_object(-1, WEAPON_FLIGHTPLANS, L_CAVE_020, L_CAVE_021, L_CAVE_022, L_CAVE_023, L_CAVE_024) // "Obtain flight plans from safe." diff --git a/src/files/setup/setupdepo.c b/src/files/setup/setupdepo.c index 79b5aca53..8efa1909b 100644 --- a/src/files/setup/setupdepo.c +++ b/src/files/setup/setupdepo.c @@ -342,11 +342,11 @@ u32 props[] = { door(0x0100, MODEL_G5SAFEDOOR, PAD_DEPO_00C2, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, OBJFLAG2_AICANNOTUSE, 0, 1000, 0x005a0000, 0x03e80000, 0x00500000, 0x00500000, 0x00001999, 0, DOORTYPE_SWINGING, 0x00000040, 0x00000e10, 0x00000000, 0x00000000, 0x00000300) tag(OBJ_CMP150_BOND, 1) - weapon(0x0100, MODEL_CHRCMP150, -1, OBJFLAG_40000000, 0, OBJFLAG3_00400000, WEAPON_REMOTEMINE) + weapon(0x0100, MODEL_CHRCMP150, -1, OBJFLAG_WEAPON_40000000, 0, OBJFLAG3_00400000, WEAPON_REMOTEMINE) rename_object(-1, WEAPON_REMOTEMINE, L_DEPO_066, L_DEPO_067, L_DEPO_068, L_DEPO_069, L_DEPO_070) // "" tag(OBJ_CMP150_COOP, 1) - weapon(0x0100, MODEL_CHRCMP150, -1, OBJFLAG_40000000, 0, OBJFLAG3_00400000, WEAPON_REMOTEMINE) + weapon(0x0100, MODEL_CHRCMP150, -1, OBJFLAG_WEAPON_40000000, 0, OBJFLAG3_00400000, WEAPON_REMOTEMINE) rename_object(-1, WEAPON_REMOTEMINE, L_DEPO_066, L_DEPO_067, L_DEPO_068, L_DEPO_069, L_DEPO_070) // "" glass(0x0100, MODEL_WINDOW, PAD_DEPO_00C0, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_ILLUMINATED | OBJFLAG_00000800, OBJFLAG2_00100000, 0, 1000) @@ -356,34 +356,34 @@ u32 props[] = { tag(0x23, 4) tag(0x24, 4) tag(0x25, 4) - door(0x0100, MODEL_LASDOOR, PAD_DEPO_00D1, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_40000000, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) - door(0x0100, MODEL_LASDOOR, PAD_DEPO_00D2, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_40000000, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) - door(0x0100, MODEL_LASDOOR, PAD_DEPO_00D3, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_40000000, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) - door(0x0100, MODEL_LASDOOR, PAD_DEPO_00D4, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_40000000, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, PAD_DEPO_00D1, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_DOOR_KEEPOPEN, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, PAD_DEPO_00D2, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_DOOR_KEEPOPEN, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, PAD_DEPO_00D3, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_DOOR_KEEPOPEN, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, PAD_DEPO_00D4, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_DOOR_KEEPOPEN, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) tag(0x26, 4) tag(0x27, 4) tag(0x28, 4) tag(0x29, 4) - door(0x0100, MODEL_LASDOOR, PAD_DEPO_00D5, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_40000000, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) - door(0x0100, MODEL_LASDOOR, PAD_DEPO_00D6, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_40000000, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) - door(0x0100, MODEL_LASDOOR, PAD_DEPO_00D7, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_40000000, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) - door(0x0100, MODEL_LASDOOR, PAD_DEPO_00D8, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_40000000, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, PAD_DEPO_00D5, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_DOOR_KEEPOPEN, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, PAD_DEPO_00D6, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_DOOR_KEEPOPEN, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, PAD_DEPO_00D7, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_DOOR_KEEPOPEN, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, PAD_DEPO_00D8, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_DOOR_KEEPOPEN, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) tag(0x2a, 4) tag(0x2b, 4) tag(0x2c, 4) tag(0x2d, 4) - door(0x0100, MODEL_LASDOOR, PAD_DEPO_00D9, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_40000000, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) - door(0x0100, MODEL_LASDOOR, PAD_DEPO_00DA, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_40000000, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) - door(0x0100, MODEL_LASDOOR, PAD_DEPO_00DB, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_40000000, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) - door(0x0100, MODEL_LASDOOR, PAD_DEPO_00DC, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_40000000, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, PAD_DEPO_00D9, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_DOOR_KEEPOPEN, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, PAD_DEPO_00DA, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_DOOR_KEEPOPEN, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, PAD_DEPO_00DB, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_DOOR_KEEPOPEN, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, PAD_DEPO_00DC, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_DOOR_KEEPOPEN, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000) tag(0x2e, 4) tag(0x2f, 4) tag(0x30, 4) tag(0x31, 4) - door(0x0100, MODEL_LASDOOR, PAD_DEPO_00DD, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_40000000, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000000) - door(0x0100, MODEL_LASDOOR, PAD_DEPO_00DE, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_40000000, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000000) - door(0x0100, MODEL_LASDOOR, PAD_DEPO_00DF, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_40000000, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000000) - door(0x0100, MODEL_LASDOOR, PAD_DEPO_00E0, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_40000000, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0xfffffffd, 0x00000000) + door(0x0100, MODEL_LASDOOR, PAD_DEPO_00DD, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_DOOR_KEEPOPEN, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000000) + door(0x0100, MODEL_LASDOOR, PAD_DEPO_00DE, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_DOOR_KEEPOPEN, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000000) + door(0x0100, MODEL_LASDOOR, PAD_DEPO_00DF, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_DOOR_KEEPOPEN, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000000) + door(0x0100, MODEL_LASDOOR, PAD_DEPO_00E0, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_04000000 | OBJFLAG_DOOR_KEEPOPEN, OBJFLAG2_00020000 | OBJFLAG2_THROWTHROUGH, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x0000003c, 0x00000000, 0xfffffffd, 0x00000000) tag(OBJ_ESCAPEDOOR1, 2) conditional_scenery(1, 0, 2) door(0x0100, MODEL_G5_ESCDOORUP, PAD_DEPO_00F0, OBJFLAG_00000100 | OBJFLAG_ILLUMINATED | OBJFLAG_00000800 | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_DEACTIVATED, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_00100000 | OBJFLAG2_00200000 | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0, DOORTYPE_SLIDING, 0x00000080, 0x00000001, 0x00010000, 0x00000000, 0x00000000) diff --git a/src/files/setup/setupear.c b/src/files/setup/setupear.c index a340edf2f..ab5e10462 100644 --- a/src/files/setup/setupear.c +++ b/src/files/setup/setupear.c @@ -264,14 +264,14 @@ u32 props[] = { tag(0x3f, 1) door(0x0100, MODEL_DD_GRATE, PAD_EAR_016A, OBJFLAG_ILLUMINATED, OBJFLAG2_AICANNOTUSE | OBJFLAG2_80000000, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_SLIDING, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000300) tag(0x01, 1) - singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0213, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_DEACTIVATED | OBJFLAG_40000000, OBJFLAG2_00000001, OBJFLAG3_INTERACTABLE, 1000, 3) + singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0213, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_DEACTIVATED | OBJFLAG_MONITOR_40000000, OBJFLAG2_00000001, OBJFLAG3_INTERACTABLE, 1000, 3) tag(0x02, 1) - singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0214, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_DEACTIVATED | OBJFLAG_40000000, OBJFLAG2_00000001, OBJFLAG3_INTERACTABLE, 1000, 3) + singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0214, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_DEACTIVATED | OBJFLAG_MONITOR_40000000, OBJFLAG2_00000001, OBJFLAG3_INTERACTABLE, 1000, 3) tag(0x03, 1) - singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0215, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_DEACTIVATED | OBJFLAG_40000000, OBJFLAG2_00000001, OBJFLAG3_INTERACTABLE, 1000, 3) - singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0216, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_DEACTIVATED | OBJFLAG_40000000, OBJFLAG2_00000001, 0, 1000, 3) - singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0217, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_DEACTIVATED | OBJFLAG_40000000, OBJFLAG2_00000001, 0, 1000, 3) - singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0218, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_DEACTIVATED | OBJFLAG_40000000, OBJFLAG2_00000001, 0, 1000, 3) + singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0215, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_DEACTIVATED | OBJFLAG_MONITOR_40000000, OBJFLAG2_00000001, OBJFLAG3_INTERACTABLE, 1000, 3) + singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0216, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_DEACTIVATED | OBJFLAG_MONITOR_40000000, OBJFLAG2_00000001, 0, 1000, 3) + singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0217, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_DEACTIVATED | OBJFLAG_MONITOR_40000000, OBJFLAG2_00000001, 0, 1000, 3) + singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0218, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_DEACTIVATED | OBJFLAG_MONITOR_40000000, OBJFLAG2_00000001, 0, 1000, 3) singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0219, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_00000001, 0, 1000, 3) singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_021A, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_00000001, 0, 1000, 3) singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_021B, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_00000001, 0, 1000, 3) @@ -455,9 +455,9 @@ u32 props[] = { tag(0x0a, 1) singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_025A, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED | OBJFLAG_01000000, OBJFLAG2_00000001, OBJFLAG3_INTERACTABLE, 1000, 3) tag(0x37, 1) - hovercar(0x00c0, MODEL_HOOVERBOT, PAD_EAR_0001, OBJFLAG_00000008 | OBJFLAG_20000000 | OBJFLAG_40000000 | OBJFLAG_80000000, OBJFLAG2_00000001, 0, 100, 0x00000411) + hovercar(0x00c0, MODEL_HOOVERBOT, PAD_EAR_0001, OBJFLAG_00000008 | OBJFLAG_20000000 | OBJFLAG_HOVERCAR_40000000 | OBJFLAG_80000000, OBJFLAG2_00000001, 0, 100, 0x00000411) tag(0x38, 1) - hovercar(0x00c0, MODEL_TESTERBOT, PAD_EAR_003B, OBJFLAG_00000008 | OBJFLAG_INVINCIBLE | OBJFLAG_40000000 | OBJFLAG_80000000, OBJFLAG2_00000001, 0, 100, 0x00000412) + hovercar(0x00c0, MODEL_TESTERBOT, PAD_EAR_003B, OBJFLAG_00000008 | OBJFLAG_INVINCIBLE | OBJFLAG_HOVERCAR_40000000 | OBJFLAG_80000000, OBJFLAG2_00000001, 0, 100, 0x00000412) glass(0x0100, MODEL_WINDOW, PAD_EAR_01B3, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_00000800 | OBJFLAG_04000000, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_00100000, 0, 1000) glass(0x0100, MODEL_WINDOW, PAD_EAR_01B4, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_00000800 | OBJFLAG_04000000, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_00100000, 0, 1000) glass(0x0100, MODEL_WINDOW, PAD_EAR_01B8, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_00000800 | OBJFLAG_04000000, 0, 0, 1000) diff --git a/src/files/setup/setupeld.c b/src/files/setup/setupeld.c index c712d9279..0f3861c84 100644 --- a/src/files/setup/setupeld.c +++ b/src/files/setup/setupeld.c @@ -712,7 +712,7 @@ u32 props[] = { tag(0x11, 1) shield(0x0100, MODEL_CHRSHIELD, PAD_ELD_0239, OBJFLAG_00000001, OBJFLAG2_EXCLUDE_SA | OBJFLAG2_EXCLUDE_PA | OBJFLAG2_EXCLUDE_PD, 0, 1000) stdobject(0x0100, MODEL_A51_CRATE2, PAD_ELD_01EC, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, 0, 0, 1000) - weapon(0x0100, MODEL_CHRDEVASTATOR, -1, OBJFLAG_00008000 | OBJFLAG_INVINCIBLE | OBJFLAG_40000000, 0, 0, WEAPON_DEVASTATOR) + weapon(0x0100, MODEL_CHRDEVASTATOR, -1, OBJFLAG_00008000 | OBJFLAG_INVINCIBLE | OBJFLAG_WEAPON_40000000, 0, 0, WEAPON_DEVASTATOR) tag(0x99, -1) endprops }; diff --git a/src/files/setup/setuppete.c b/src/files/setup/setuppete.c index 15b02be7c..14c8df2eb 100644 --- a/src/files/setup/setuppete.c +++ b/src/files/setup/setuppete.c @@ -277,7 +277,7 @@ u32 props[] = { #else stdobject(0x0100, MODEL_DUMPSTER, PAD_PETE_011E, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000) #endif - weapon(0x0100, MODEL_CHRBRIEFCASE, -1, OBJFLAG_00008000 | OBJFLAG_40000000, 0, 0, WEAPON_EYESPY) + weapon(0x0100, MODEL_CHRBRIEFCASE, -1, OBJFLAG_00008000 | OBJFLAG_WEAPON_40000000, 0, 0, WEAPON_EYESPY) tag(0x24, -1) stdobject(0x0100, MODEL_BARREL, PAD_PETE_010B, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100, OBJFLAG2_00000001, 0, 1000) stdobject(0x0100, MODEL_BARREL, PAD_PETE_010C, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100, OBJFLAG2_00000001, 0, 1000) diff --git a/src/files/setup/setupsev.c b/src/files/setup/setupsev.c index 2fb127ed5..3cff891f2 100644 --- a/src/files/setup/setupsev.c +++ b/src/files/setup/setupsev.c @@ -106,8 +106,8 @@ u32 props[] = { weapon(0x0100, MODEL_CHRDRAGON, 0x0009, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON) chr(SPAWNFLAG_00000200, 0x0b, PAD_SEV_013A, BODY_AREA51GUARD, HEAD_KEN, AILIST_INIT_LX_GUARD, -1, -1, 1000, 100, CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_AIVSAI | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_05, -1, 0, 0, 0, 0, 0) - weapon(0x0100, MODEL_CHRDY357TRENT, 0x000b, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_40000000, 0, 0, WEAPON_DY357LX) - weapon(0x0100, MODEL_CHRDY357TRENT, 0x000b, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED | OBJFLAG_40000000, 0, 0, WEAPON_DY357LX) + weapon(0x0100, MODEL_CHRDY357TRENT, 0x000b, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_WEAPON_40000000, 0, 0, WEAPON_DY357LX) + weapon(0x0100, MODEL_CHRDY357TRENT, 0x000b, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED | OBJFLAG_WEAPON_40000000, 0, 0, WEAPON_DY357LX) link_guns(-1, -2) chr(SPAWNFLAG_00000200, 0x0c, PAD_SEV_013D, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_INIT_80HP_GUARD, -1, -1, 1000, 100, CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_AIVSAI | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_05, -1, 0, 0, 0, 0, 0) diff --git a/src/game/bondbike.c b/src/game/bondbike.c index ff2c95fe8..b157a31e6 100644 --- a/src/game/bondbike.c +++ b/src/game/bondbike.c @@ -87,7 +87,7 @@ void bbikeExit(void) func0f0939f8(NULL, g_Vars.currentplayer->hoverbike, SFX_BIKE_PULSE, -1, -1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1); - obj->flags |= OBJFLAG_40000000; + obj->flags |= OBJFLAG_HOVERBIKE_MOVINGWHILEEMPTY; } void bbikeUpdateVehicleOffset(void) @@ -1594,7 +1594,7 @@ void bbikeTick(void) } if (g_Vars.currentplayer->bondvehiclemode == VEHICLEMODE_OFF) { - func0f072adc(bike, + hoverbikeUpdateMovement(bike, g_Vars.currentplayer->speedforwards, g_Vars.currentplayer->speedsideways, g_Vars.currentplayer->speedtheta); @@ -1603,7 +1603,7 @@ void bbikeTick(void) g_Vars.currentplayer->bondvehiclemode = VEHICLEMODE_RUNNING; } - func0f072adc(bike, + hoverbikeUpdateMovement(bike, g_Vars.currentplayer->speedforwards, g_Vars.currentplayer->speedsideways, g_Vars.currentplayer->speedtheta); diff --git a/src/game/game_00c490.c b/src/game/game_00c490.c index b48de32b3..298c7f820 100644 --- a/src/game/game_00c490.c +++ b/src/game/game_00c490.c @@ -1390,7 +1390,7 @@ void setupSingleMonitor(struct singlemonitorobj *monitor, s32 cmdindex) setupGenericObject(&monitor->base, cmdindex); } - if (monitor->base.prop && (monitor->base.flags & OBJFLAG_40000000)) { + if (monitor->base.prop && (monitor->base.flags & OBJFLAG_MONITOR_40000000)) { monitor->base.prop->flags |= PROPFLAG_01; } } diff --git a/src/game/propobj.c b/src/game/propobj.c index 7f84fb757..bca4631f8 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -20288,7 +20288,7 @@ glabel var7f1aa320 #if VERSION >= VERSION_PAL_FINAL GLOBAL_ASM( -glabel func0f072adc +glabel hoverbikeUpdateMovement .late_rodata glabel var7f1ab5d0pf .word 0x3d32b179 @@ -20898,7 +20898,7 @@ glabel var7f1ab654pf ); #else GLOBAL_ASM( -glabel func0f072adc +glabel hoverbikeUpdateMovement .late_rodata glabel var7f1aa324 .word 0x3d32b179 @@ -21518,6 +21518,203 @@ glabel var7f1aa3b8 ); #endif +// Mismatches: +// Goal loads 1.0f earlier for use with leanmult +// Mine loads 1.0f twice for leanmult +// Mine loads speedfowards twice while goal keeps in f2 (near maxspeedtime240) +//void hoverbikeUpdateMovement(struct hoverbikeobj *bike, f32 speedforwards, f32 speedsideways, f32 speedtheta) +//{ +// f32 fVar6; +// f32 angle; // 80 +// f32 sinangle; // 7c +// f32 cosangle; +// f32 f2; +// f32 sp70 = 0; +// f32 sp6c = 0; +// f32 sp68 = 0; +// s32 i; // 64 +// f32 leanmult; +// f32 fVar7; +// f32 fVar10; +// f32 prevleanspeed; +// u32 stack; +// f32 tmp; +// f32 sp44; +// +// tmp = speedtheta * 0.04362628236413f; +// +// if (speedforwards < 0) { +// tmp *= 1.0f - speedforwards * 0.5f; +// } +// +// for (i = 0; i < g_Vars.lvupdate240_60; i++) { +// bike->w += (tmp - bike->w) * 0.075f; +// } +// +// // b84 +// sp6c += bike->w * 12; +// angle = hoverpropGetTurnAngle(&bike->base); +// sinangle = sinf(angle); +// cosangle = cosf(angle); +// +// if (speedforwards >= 0) { +// f2 = (0.1f + speedforwards) * 0.3f * g_Vars.lvupdate240freal; +// } else { +// f2 = (0.1f - speedforwards) * 0.3f * g_Vars.lvupdate240freal; +// } +// +// // c3c +// if (bike->rels[1] < speedforwards * 0.5f) { +// bike->rels[1] += f2; +// +// if (bike->rels[1] > speedforwards * 0.5f) { +// bike->rels[1] = speedforwards * 0.5f; +// } +// } else { +// bike->rels[1] -= f2; +// +// if (bike->rels[1] < speedforwards * 0.5f) { +// bike->rels[1] = speedforwards * 0.5f; +// } +// } +// +// prevleanspeed = bike->leanspeed; +// bike->leanspeed = speedforwards; +// bike->leandiff *= 0.93f; +// bike->leandiff += speedforwards - prevleanspeed; +// +// leanmult = bike->leandiff * 5; +// +// if (leanmult > 1.0f) { +// leanmult = 1.0f; +// } else if (leanmult < -1.0f) { +// leanmult = -1.0f; +// } +// +// // d14 +// if (speedforwards >= 0) { +// if (leanmult > 0) { +// fVar7 = speedforwards * 0.3f + speedforwards * 0.7f * leanmult; +// } else { +// fVar7 = speedforwards * 0.3f; +// } +// } else { +// if (leanmult < 0) { +// fVar7 = speedforwards * 0.5f - speedforwards * 0.5f * leanmult; +// } else { +// fVar7 = speedforwards * 0.5f; +// } +// } +// +// // d84 +// sp70 += fVar7 * 0.04f * M_BADTAU; +// +// if (speedsideways >= 0) { +// f2 = (0.1f + speedsideways) * 0.3f * g_Vars.lvupdate240freal; +// } else { +// f2 = (0.1f - speedsideways) * 0.3f * g_Vars.lvupdate240freal; +// } +// +// if (bike->rels[0] < speedsideways * 0.4f) { +// bike->rels[0] += f2; +// +// if (bike->rels[0] > speedsideways * 0.4f) { +// bike->rels[0] = speedsideways * 0.4f; +// } +// } else { +// bike->rels[0] -= f2; +// +// if (bike->rels[0] < speedsideways * 0.4f) { +// bike->rels[0] = speedsideways * 0.4f; +// } +// } +// +// sp68 += speedsideways * 0.2512874007225f; +// +// for (i = 0; i < g_Vars.lvupdate240_60; i++) { +// bike->speedabs[1] *= 0.97f; +// bike->speedabs[0] *= 0.97f; +// bike->speedabs[1] += bike->rels[1] * cosangle * 1.08f; +// bike->speedabs[0] += bike->rels[1] * sinangle * 1.08f; +// bike->speedabs[1] += bike->rels[0] * sinangle * 0.72f; +// bike->speedabs[0] += -bike->rels[0] * cosangle * 0.72f; +// } +// +// for (i = 0; i < g_Vars.lvupdate240_60; i++) { +// bike->exreal += (sp70 - bike->exreal) * 0.04f; +// bike->ezreal += (sp6c - bike->ezreal) * 0.15f; +// bike->ezreal2 += (sp68 - bike->ezreal2) * 0.04f; +// } +// +// if (speedforwards >= 0.99f) { +// bike->maxspeedtime240 += g_Vars.lvupdate240; +// +// if (bike->maxspeedtime240 > 2400) { +// bike->maxspeedtime240 = 2400; +// } +// } else if (bike->maxspeedtime240 > 0) { +// if (speedforwards >= 0.8f) { +// // empty +// } else if (speedforwards >= -0.1f) { +// bike->maxspeedtime240 -= g_Vars.lvupdate240; +// +// if (bike->maxspeedtime240 < 0) { +// bike->maxspeedtime240 = 0; +// } +// } else { +// bike->maxspeedtime240 = 0; +// } +// } +// +// bike->speedrel[1] = bike->maxspeedtime240 * 50000.0f / 2400000; +// +// bike->speed[1] = bike->speedabs[1] + bike->speedrel[0] * sinangle + bike->speedrel[1] * cosangle; +// bike->speed[0] = bike->speedabs[0] + bike->speedrel[1] * sinangle - bike->speedrel[0] * cosangle; +// +// if (bike->base.flags & OBJFLAG_HOVERBIKE_MOVINGWHILEEMPTY) { +// if (bike->speed[0] > 0.1f +// || bike->speed[1] > 0.1f +// || bike->w > 0.001f +// || bike->rels[0] > 0.001f +// || bike->rels[1] > 0.001f +// || bike->exreal > 0.001f +// || bike->ezreal > 0.001f +// || bike->ezreal2 > 0.001f +// || bike->leandiff > 0.1f +// || (bike->speed[0] < -0.1f) +// || (bike->speed[1] < -0.1f) +// || (bike->w < -0.001f) +// || (bike->rels[0] < -0.001f) +// || (bike->rels[1] < -0.001f) +// || (bike->exreal < -0.001f) +// || (bike->ezreal < -0.001f) +// || (bike->ezreal2 < -0.001f) +// || (bike->leandiff < -0.1f)) { +// // still moving +// } else { +// bike->speed[0] = 0; +// bike->speed[1] = 0; +// bike->w = 0; +// bike->rels[0] = 0; +// bike->rels[1] = 0; +// bike->exreal = 0; +// bike->ezreal = 0; +// bike->ezreal2 = 0; +// bike->leanspeed = 0; +// bike->leandiff = 0; +// bike->maxspeedtime240 = 0; +// bike->speedabs[0] = 0; +// bike->speedabs[1] = 0; +// bike->speedrel[0] = 0; +// bike->speedrel[1] = 0; +// +// if (1); +// +// bike->base.flags &= ~OBJFLAG_HOVERBIKE_MOVINGWHILEEMPTY; +// } +// } +//} + GLOBAL_ASM( glabel func0f0732d4 /* f0732d4: 27bdfd58 */ addiu $sp,$sp,-680 @@ -49350,8 +49547,8 @@ void hoverbikeTick(struct prop *prop, bool arg1) func0f0714b8(&obj->base, &obj->hov); } - if (obj->base.flags & OBJFLAG_DOOR_KEEPOPEN) { - func0f072adc(obj, 0, 0, 0); + if (obj->base.flags & OBJFLAG_HOVERBIKE_MOVINGWHILEEMPTY) { + hoverbikeUpdateMovement(obj, 0, 0, 0); } } } @@ -64056,7 +64253,7 @@ s32 weaponGetPickupAmmoQty(struct weaponobj *weapon) return 1; } - if (weapon->base.flags & OBJFLAG_DOOR_KEEPOPEN) { + if (weapon->base.flags & OBJFLAG_WEAPON_40000000) { return 0; } diff --git a/src/include/constants.h b/src/include/constants.h index 2a3bf3adb..e8e5c53f3 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -2852,14 +2852,17 @@ #define OBJFLAG_DOOR_OPENTOFRONT 0x20000000 #define OBJFLAG_HOVERCAR_20000000 0x20000000 #define OBJFLAG_WEAPON_AICANNOTUSE 0x20000000 -#define OBJFLAG_40000000 0x40000000 #define OBJFLAG_AUTOGUN_ALERTED 0x40000000 #define OBJFLAG_CAMERA_BONDINVIEW 0x40000000 #define OBJFLAG_DOOR_KEEPOPEN 0x40000000 // Editor: "Door open by default/Empty weapon" +#define OBJFLAG_HOVERBIKE_MOVINGWHILEEMPTY 0x40000000 +#define OBJFLAG_HOVERCAR_40000000 0x40000000 #define OBJFLAG_LIFT_TRIGGERDISABLE 0x40000000 +#define OBJFLAG_MONITOR_40000000 0x40000000 +#define OBJFLAG_WEAPON_40000000 0x40000000 #define OBJFLAG_80000000 0x80000000 -#define OBJFLAG_DOOR_TWOWAY 0x80000000 // Door swings in both directions #define OBJFLAG_CHOPPER_INACTIVE 0x80000000 // Or lift disabled, or hovercar something +#define OBJFLAG_DOOR_TWOWAY 0x80000000 // Door swings in both directions // obj->flags2 #define OBJFLAG2_00000001 0x00000001 // Used only in CI Training diff --git a/src/include/game/propobj.h b/src/include/game/propobj.h index 30ad75896..4db492d68 100644 --- a/src/include/game/propobj.h +++ b/src/include/game/propobj.h @@ -155,7 +155,7 @@ void hovercarFindNextPath(struct hovercarobj *hovercar); void hovercarStartNextPath(struct hovercarobj *hovercar); void hovercarIncrementStep(struct hovercarobj *hovercar); u32 func0f0727d4(void); -void func0f072adc(struct hoverbikeobj *hoverbike, f32 arg1, f32 arg2, f32 arg3); +void hoverbikeUpdateMovement(struct hoverbikeobj *hoverbike, f32 arg1, f32 arg2, f32 arg3); u32 func0f0732d4(void); u32 func0f073478(void); u32 func0f073ae8(void); diff --git a/src/include/types.h b/src/include/types.h index 32f8339a6..291ceb819 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -1981,7 +1981,7 @@ struct hoverbikeobj { // objtype 0x33 /*0x0c0*/ f32 ezreal2; /*0x0c4*/ f32 leanspeed; /*0x0c8*/ f32 leandiff; - /*0x0cc*/ u32 maxspeedtime240; + /*0x0cc*/ s32 maxspeedtime240; /*0x0d0*/ f32 speedabs[2]; /*0x0d8*/ f32 speedrel[2]; };