diff options
| author | Christopher Leggett <chris@leggett.dev> | 2022-12-13 14:55:00 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-13 14:55:00 -0500 |
| commit | 7718e74d735bd2e7e2c4bf1b208312a4a2be5de6 (patch) | |
| tree | f129f7e7b6054702bd76c2bc1bbd493eb3a44c2e /soh/src/code | |
| parent | 639e51bb8edcda4a4e7756de88070b7a53b91079 (diff) | |
Always use authentic cache policy for replaced seqs (#2176)
Diffstat (limited to 'soh/src/code')
| -rw-r--r-- | soh/src/code/audio_load.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/soh/src/code/audio_load.c b/soh/src/code/audio_load.c index 354119cb2..ad6310157 100644 --- a/soh/src/code/audio_load.c +++ b/soh/src/code/audio_load.c @@ -78,6 +78,8 @@ void* sUnusedHandler = NULL; s32 gAudioContextInitalized = false; char* sequenceMap[MAX_SEQUENCES]; +// A map of authentic sequence IDs to their cache policies, for use with sequence swapping. +u8 seqCachePolicyMap[MAX_AUTHENTIC_SEQID]; char* fontMap[256]; uintptr_t fontStart; @@ -569,15 +571,20 @@ s32 AudioLoad_SyncInitSeqPlayerInternal(s32 playerIdx, s32 seqId, s32 arg2) { s32 index; s32 numFonts; s32 fontId; + s8 authCachePolicy = -1; // since 0 is a valid cache policy value AudioSeq_SequencePlayerDisable(seqPlayer); fontId = 0xFF; if (gAudioContext.seqReplaced[playerIdx]) { + authCachePolicy = seqCachePolicyMap[seqId]; seqId = gAudioContext.seqToPlay[playerIdx]; } SequenceData seqData2 = ResourceMgr_LoadSeqByName(sequenceMap[seqId]); + if (authCachePolicy != -1) { + seqData2.cachePolicy = authCachePolicy; + } for (int i = 0; i < seqData2.numFonts; i++) { @@ -1316,6 +1323,7 @@ void AudioLoad_Init(void* heap, size_t heapSize) { strcpy(str, seqList[i]); sequenceMap[sDat.seqNumber] = str; + seqCachePolicyMap[sDat.seqNumber] = sDat.cachePolicy; } free(seqList); |
