Tank interiors do not draw properly

Issue #424 resolved
Colin Basnett created an issue

This happens quite frequently in a multiplayer environment. Switch rapidly between hull gunner and driver and this is what you'll get. Had multiple reports from people on this. This has nothing to do with DHDebugMode being on, as I rebuilt the test binaries with that set to False.

Comments (2)

  1. Matt Hands

    Should be fixed in commit f9de568. Will leave open for a little while, so testing can verify this.

    Similar root cause to issue 395 - HUDOverlay on VehicleWeapons sometimes do not display.

    When vehicle is entered, server changes RemoteRole to AutonomousProxy. New value replicates to client, but a slight delay can mean ClientKDriverEnter() gets called on the client before it does. That results in client going to state 'EnteringVehicle' and trying to switch to the interior mesh, but if net client actor hasn't received ROLE_AutonomousProxy yet, SwitchMesh() does nothing.

    The fix I've used is to set a client to ROLE_AutonomousProxy in ClientKDriverEnter(). When entering any Vehicle or VehicleWeaponPawn, the new Role will always be AutonomousProxy as that is hard coded into the server enter/possess functionality, so that can be safely be set on the client, without waiting for the changed value to replicate.

    This should be a fundamental fix to various replication timing related problems when entering vehicles or weapon positions.

    I think it also avoids the short but noticeable delay & camera stutter when entering vehicles/weapon positions in laggy conditions, i.e. as soon as the client knows you are entering (ClientKDriverEnter being called) the key properties are set, without waiting for variable replication.

  2. Log in to comment