Fix atlas resource handling and suppression AI serialization

This commit is contained in:
2026-10-16 16:36:46 +02:00
parent a66aca35bf
commit f15c915e54
8 changed files with 21 additions and 7 deletions
+5
View File
@@ -55,6 +55,7 @@ bool gameAvailable=true;Game* GetGame(){return gameAvailable?&game:nullptr;}
struct Controller {
Controller(){game.local=this;}
void ERR_UpdateRecoveryCamera(ERR_GameMode*){}
string epiHint;string ERR_SelfEpinephrineHint(){return epiHint;}
int nativeChanges=0,starts=0;bool m_ERRGuideStarted=false;void ERR_StartGuide(){starts++;StartActual();}
int m_ERRGuidePhase=-1;string m_ERRGuideMessage;bool m_ERRObserverMonitor=false;Actor* m_ERRRecoveryBody=nullptr;float m_ERRRecoveryDeadline=-1;
Actor* controlled=&actor;int m_ERRObserverReason=ERR_ObserverReason::NONE;
@@ -167,6 +168,10 @@ int main(){
mode.active=false;mode.recovery="old round recovery";newCasualty.ERR_UpdateObserverClient();assert(hints.shown==beforeOld+1&&!newCasualty.m_ERRObserverReady&&newCasualty.m_ERRShownRecoveryStatus.empty());
// A later active round's first observer hint contains only its current fact.
mode.active=true;mode.recovery="new round recovery";newCasualty.ERR_UpdateObserverClient();assert(hints.shown==beforeOld+2&&hints.last.find("new round recovery")!=string::npos&&hints.last.find("old round recovery")==string::npos);
// An admin-enabled self-epi hint refreshes once, and disappears when disabled.
newCasualty.epiHint="Press Space to use epinephrine";newCasualty.ERR_UpdateObserverClient();assert(hints.shown==beforeOld+3&&hints.last.find(newCasualty.epiHint)!=string::npos);
newCasualty.ERR_UpdateObserverClient();assert(hints.shown==beforeOld+3);
newCasualty.epiHint="";newCasualty.ERR_UpdateObserverClient();assert(hints.shown==beforeOld+4&&hints.last.find("epinephrine")==string::npos);
}
''')
for path,signature in ((GUIDE,'protected void ERR_UpdateGuide('),(OBSERVER,'protected void ERR_UpdateObserverClient(')):