|
1 |
| -using Assets.Scripts.Core.Buriko; |
| 1 | +using MOD.Scripts.Core; |
| 2 | +using MOD.Scripts.Core.TextWindow; |
2 | 3 | using Newtonsoft.Json;
|
3 | 4 | using Newtonsoft.Json.Bson;
|
4 | 5 | using System.Collections.Generic;
|
@@ -283,67 +284,24 @@ public void FadeOutSE(int channel, float time, bool waitForFade)
|
283 | 284 |
|
284 | 285 | public void PlayVoice(string filename, int channel, float volume)
|
285 | 286 | {
|
286 |
| - string text = filename.Substring(0, 4); |
287 |
| - bool flag = false; |
288 |
| - switch (text) |
289 |
| - { |
290 |
| - case "chie": |
291 |
| - flag = BurikoMemory.Instance.GetGlobalFlag("GVChie").BoolValue(); |
292 |
| - break; |
293 |
| - case "eiji": |
294 |
| - flag = BurikoMemory.Instance.GetGlobalFlag("GVEiji").BoolValue(); |
295 |
| - break; |
296 |
| - case "kana": |
297 |
| - flag = BurikoMemory.Instance.GetGlobalFlag("GVKana").BoolValue(); |
298 |
| - break; |
299 |
| - case "kira": |
300 |
| - flag = BurikoMemory.Instance.GetGlobalFlag("GVKira").BoolValue(); |
301 |
| - break; |
302 |
| - case "mast": |
303 |
| - flag = BurikoMemory.Instance.GetGlobalFlag("GVMast").BoolValue(); |
304 |
| - break; |
305 |
| - case "mura": |
306 |
| - flag = BurikoMemory.Instance.GetGlobalFlag("GVMura").BoolValue(); |
307 |
| - break; |
308 |
| - case "riho": |
309 |
| - flag = BurikoMemory.Instance.GetGlobalFlag("GVRiho").BoolValue(); |
310 |
| - break; |
311 |
| - case "rmn_": |
312 |
| - flag = BurikoMemory.Instance.GetGlobalFlag("GVRmn_").BoolValue(); |
313 |
| - break; |
314 |
| - case "sari": |
315 |
| - flag = BurikoMemory.Instance.GetGlobalFlag("GVSari").BoolValue(); |
316 |
| - break; |
317 |
| - case "tika": |
318 |
| - flag = BurikoMemory.Instance.GetGlobalFlag("GVTika").BoolValue(); |
319 |
| - break; |
320 |
| - case "yayo": |
321 |
| - flag = BurikoMemory.Instance.GetGlobalFlag("GVYayo").BoolValue(); |
322 |
| - break; |
323 |
| - default: |
324 |
| - flag = BurikoMemory.Instance.GetGlobalFlag("GVOther").BoolValue(); |
325 |
| - break; |
| 287 | + MODTextController.MODCurrentVoiceLayerDetect = channel; |
| 288 | + AudioLayer audio = channelDictionary[GetChannelByTypeChannel(AudioType.Voice, channel)]; |
| 289 | + if (currentAudio[AudioType.Voice].ContainsKey(channel)) |
| 290 | + { |
| 291 | + currentAudio[AudioType.Voice].Remove(channel); |
326 | 292 | }
|
327 |
| - if (!flag) |
| 293 | + currentAudio[AudioType.Voice].Add(channel, new AudioInfo(volume, filename)); |
| 294 | + if (audio.IsPlaying()) |
328 | 295 | {
|
329 |
| - AudioLayer audio = channelDictionary[GetChannelByTypeChannel(AudioType.Voice, channel)]; |
330 |
| - if (currentAudio[AudioType.Voice].ContainsKey(channel)) |
331 |
| - { |
332 |
| - currentAudio[AudioType.Voice].Remove(channel); |
333 |
| - } |
334 |
| - currentAudio[AudioType.Voice].Add(channel, new AudioInfo(volume, filename)); |
335 |
| - if (audio.IsPlaying()) |
336 |
| - { |
337 |
| - audio.StopAudio(); |
338 |
| - } |
339 |
| - audio.PlayAudio(filename, AudioType.Voice, volume); |
340 |
| - if (GameSystem.Instance.IsAuto) |
| 296 | + audio.StopAudio(); |
| 297 | + } |
| 298 | + audio.PlayAudio(filename, AudioType.Voice, volume); |
| 299 | + if (GameSystem.Instance.IsAuto) |
| 300 | + { |
| 301 | + audio.OnLoadCallback(delegate |
341 | 302 | {
|
342 |
| - audio.OnLoadCallback(delegate |
343 |
| - { |
344 |
| - GameSystem.Instance.AddWait(new Wait(audio.GetRemainingPlayTime(), WaitTypes.WaitForVoice, null)); |
345 |
| - }); |
346 |
| - } |
| 303 | + GameSystem.Instance.AddWait(new Wait(audio.GetRemainingPlayTime(), WaitTypes.WaitForVoice, null)); |
| 304 | + }); |
347 | 305 | }
|
348 | 306 | }
|
349 | 307 |
|
@@ -510,5 +468,41 @@ public void RefreshLayerVolumes()
|
510 | 468 | audioLayer4.SetBaseVolume(SystemVolume * GlobalVolume);
|
511 | 469 | }
|
512 | 470 | }
|
| 471 | + |
| 472 | + public bool IsSEPlaying(int channel) |
| 473 | + { |
| 474 | + return channelDictionary[GetChannelByTypeChannel(AudioType.SE, channel)].IsPlaying(); |
| 475 | + } |
| 476 | + |
| 477 | + public void MODOnlyRecompile() |
| 478 | + { |
| 479 | + } |
| 480 | + |
| 481 | + public void MODPlayVoiceLS(string filename, int channel, float volume, int character) |
| 482 | + { |
| 483 | + MODTextController.MODCurrentVoiceLayerDetect = channel; |
| 484 | + AudioLayer audio = channelDictionary[GetChannelByTypeChannel(AudioType.Voice, channel)]; |
| 485 | + if (currentAudio[AudioType.Voice].ContainsKey(channel)) |
| 486 | + { |
| 487 | + currentAudio[AudioType.Voice].Remove(channel); |
| 488 | + } |
| 489 | + currentAudio[AudioType.Voice].Add(channel, new AudioInfo(volume, filename)); |
| 490 | + if (audio.IsPlaying()) |
| 491 | + { |
| 492 | + audio.StopAudio(); |
| 493 | + } |
| 494 | + audio.PlayAudio(filename, AudioType.Voice, volume); |
| 495 | + if (MODSystem.instance.modSceneController.MODLipSyncBoolCheck(character)) |
| 496 | + { |
| 497 | + GameSystem.Instance.SceneController.MODLipSyncStart(character, channel, filename); |
| 498 | + } |
| 499 | + if (GameSystem.Instance.IsAuto) |
| 500 | + { |
| 501 | + audio.OnLoadCallback(delegate |
| 502 | + { |
| 503 | + GameSystem.Instance.AddWait(new Wait(audio.GetRemainingPlayTime(), WaitTypes.WaitForVoice, null)); |
| 504 | + }); |
| 505 | + } |
| 506 | + } |
513 | 507 | }
|
514 | 508 | }
|
0 commit comments