"""Production local head-fade ownership and restoration using native doubles.""" from policy_harness import ROOT,body,run p=ROOT/'addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverPlayerView.c' s='\n'.join(body(p,k) for k in ['void Update(IEntity target', 'void Restore()']) s=s.replace('null','nullptr').replace('SCR_ChimeraCharacter.Cast','SCR_ChimeraCharacter::Cast').replace('SCR_CharacterCameraHandlerComponent.Cast','SCR_CharacterCameraHandlerComponent::Cast').replace('m_Character.','m_Character->').replace('m_Handler.','m_Handler->').replace('GetCharacterController().','GetCharacterController()->') run(r''' #include using vector=int; struct SCR_ChimeraCharacter; struct SCR_CharacterCameraHandlerComponent {SCR_ChimeraCharacter* character;int calls=0;static SCR_CharacterCameraHandlerComponent* Cast(SCR_CharacterCameraHandlerComponent* p){return p;}void UpdateHeadVisibility(int);void OnAlphatestChange(int);}; struct SCR_ChimeraCharacter {int m_fFaceAlphaTest=0;bool animation=true;SCR_CharacterCameraHandlerComponent handler{this};static SCR_ChimeraCharacter* Cast(SCR_ChimeraCharacter* p){return p;}SCR_ChimeraCharacter* GetCharacterController(){return this;}SCR_CharacterCameraHandlerComponent* GetCameraHandlerComponent(){return &handler;}bool GetAnimation(){return animation;}}; void SCR_CharacterCameraHandlerComponent::UpdateHeadVisibility(int value){character->m_fFaceAlphaTest=value;calls++;} void SCR_CharacterCameraHandlerComponent::OnAlphatestChange(int value){character->m_fFaceAlphaTest=value;calls++;} using IEntity=SCR_ChimeraCharacter*; struct Fade {SCR_ChimeraCharacter* m_Character=nullptr;SCR_CharacterCameraHandlerComponent* m_Handler=nullptr;int m_Previous=0,m_Applied=0; '''+s+r''' }; int main(){ SCR_ChimeraCharacter a,b;Fade f;a.m_fFaceAlphaTest=42;b.m_fFaceAlphaTest=10; f.Update(&a,255);assert(a.m_fFaceAlphaTest==255);f.Update(&a,230);f.Restore();assert(a.m_fFaceAlphaTest==42); int calls=a.handler.calls;f.Restore();assert(a.handler.calls==calls); f.Update(&a,255);f.Update(&b,255);assert(a.m_fFaceAlphaTest==42&&b.m_fFaceAlphaTest==255); b.m_fFaceAlphaTest=99;f.Restore();assert(b.m_fFaceAlphaTest==99); // later native camera owner wins f.Update(&a,255);f.Update(nullptr,0);assert(a.m_fFaceAlphaTest==42); a.animation=false;f.Update(&a,255);assert(a.m_fFaceAlphaTest==42);f.Restore();assert(a.m_fFaceAlphaTest==42); } ''') print('PASS: native head/helmet fade is local, target-scoped, restored on exit/switch and does not overwrite a later camera owner')