Reset medical spectator state on heal
- Factor spectator cleanup into a reusable handler - Delay the healed server event until spectator init finishes - Restore camera, HUD, and user input when leaving medical spectator
This commit is contained in:
parent
53a2bb4280
commit
d2811a3c43
@ -25,6 +25,24 @@ player addEventHandler ["Respawn", {
|
||||
|
||||
if (isNil QGVAR(ActorRepository)) then { call FUNC(initRepository); };
|
||||
|
||||
GVAR(resetMedicalSpectator) = {
|
||||
player switchMove "";
|
||||
player playMoveNow "";
|
||||
|
||||
["Terminate"] call BFUNC(EGSpectator);
|
||||
|
||||
private _spectatorDisplay = findDisplay 60492;
|
||||
if !(isNull _spectatorDisplay) then { _spectatorDisplay closeDisplay 1; };
|
||||
if !(isNull player) then {
|
||||
player switchCamera "INTERNAL";
|
||||
player enableSimulation true;
|
||||
};
|
||||
|
||||
cameraEffectEnableHUD true;
|
||||
showCinemaBorder false;
|
||||
disableUserInput false;
|
||||
};
|
||||
|
||||
[QGVAR(initActor), {
|
||||
GVAR(ActorRepository) call ["init", []];
|
||||
}] call CFUNC(addEventHandler);
|
||||
@ -40,14 +58,15 @@ if (isNil QGVAR(ActorRepository)) then { call FUNC(initRepository); };
|
||||
player setDir _medSpawnDir;
|
||||
player switchMove "Acts_LyingWounded_loop";
|
||||
|
||||
["Initialize", [player, [], false, true, true, true, true, true, false, false]] call BFUNC(EGSpectator);
|
||||
|
||||
[SRPC(economy,onHealed), [player]] call CFUNC(serverEvent);
|
||||
[] spawn {
|
||||
["Initialize", [player, [], false, true, true, true, true, true, false, false]] call BFUNC(EGSpectator);
|
||||
uiSleep 5;
|
||||
[SRPC(economy,onHealed), [player]] call CFUNC(serverEvent);
|
||||
};
|
||||
}] call CFUNC(addEventHandler);
|
||||
|
||||
[QGVAR(onActorHealed), {
|
||||
player switchMove "";
|
||||
["Terminate"] call BFUNC(EGSpectator);
|
||||
call GVAR(resetMedicalSpectator);
|
||||
}] call CFUNC(addEventHandler);
|
||||
|
||||
[QGVAR(responseInitActor), {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user