| 597 | void PBAddVoice(char *filename, int flags,char *description) {} |
| 598 | |
| 599 | bool ParseBriefing(const char *filename, tTelComInfo *tcs) { |
| 600 | if (!cfexist(filename)) { |
| 601 | tcs->state = TCS_POWEROFF; |
| 602 | return false; |
| 603 | } |
| 604 | |
| 605 | osb_xoff = tcs->Monitor_coords[MONITOR_MAIN].left; |
| 606 | osb_yoff = tcs->Monitor_coords[MONITOR_MAIN].top; |
| 607 | current_screen = -1; |
| 608 | pb_tcs = tcs; |
| 609 | gottitle = false; |
| 610 | pbtitle[0] = '\0'; |
| 611 | pbfirst_call = true; |
| 612 | |
| 613 | CBriefParse engine; |
| 614 | tBriefParseCallbacks pb_callbacks; |
| 615 | |
| 616 | pb_callbacks.AddTextEffect = PBAddTextEffect; |
| 617 | pb_callbacks.AddBmpEffect = PBAddBmpEffect; |
| 618 | pb_callbacks.AddMovieEffect = PBAddMovieEffect; |
| 619 | pb_callbacks.AddBkgEffect = PBAddBkgEffect; |
| 620 | pb_callbacks.AddPolyEffect = PBAddPolyEffect; |
| 621 | pb_callbacks.AddSoundEffect = PBAddSoundEffect; |
| 622 | pb_callbacks.AddButtonEffect = PBAddButtonEffect; |
| 623 | pb_callbacks.StartScreen = PBStartScreen; |
| 624 | pb_callbacks.EndScreen = PBEndScreen; |
| 625 | pb_callbacks.LoopCallback = PBLoopCallback; |
| 626 | pb_callbacks.SetTitle = PBSetTitle; |
| 627 | pb_callbacks.SetStatic = PBSetStatic; |
| 628 | pb_callbacks.SetGlitch = PBSetGlitch; |
| 629 | pb_callbacks.AddVoice = PBAddVoice; |
| 630 | |
| 631 | engine.SetCallbacks(&pb_callbacks); |
| 632 | |
| 633 | DestroyAllScreens(); |
| 634 | TelcomRenderSetScreen(DUMMY_SCREEN); |
| 635 | |
| 636 | skipped_screens = 0; |
| 637 | int ret = engine.ParseBriefing(filename); |
| 638 | Sound_system.EndSoundFrame(); |
| 639 | |
| 640 | if (ret == PBERR_NOERR) { |
| 641 | PlayBriefing(tcs); |
| 642 | } |
| 643 | |
| 644 | DestroyAllScreens(true); |
| 645 | TelcomCreateDummyScreen(); |
| 646 | TelcomRenderSetScreen(DUMMY_SCREEN); |
| 647 | |
| 648 | TelcomDisableStatic(); |
| 649 | TelcomDisableGlitch(); |
| 650 | |
| 651 | return false; |
| 652 | } |
no test coverage detected