| 962 | |
| 963 | |
| 964 | void cGraphics_PC::Mission_Intro_Play( const bool pShowHelicopter, const eTileTypes pTileset, const std::string pTop, const std::string pBottom) { |
| 965 | |
| 966 | const std::vector<cPosition>& pPositions = BackgroundPositions[pTileset]; |
| 967 | |
| 968 | static int16 mouseCheck = 0; |
| 969 | |
| 970 | mFodder->mVideo_Draw_FrameDataPtr = mBriefing_ParaHeli->data(); |
| 971 | |
| 972 | mFodder->mVideo_Draw_PaletteIndex = 0xE0; |
| 973 | |
| 974 | mImageMissionIntro.CopyPalette(mPalette, 0x100, 0); |
| 975 | |
| 976 | mSurface->paletteSet(mPalette ); |
| 977 | |
| 978 | Heli_TextPos = 0; |
| 979 | Heli_TextPosBottom = 320; |
| 980 | mFodder->mString_GapCharID = 0x25; |
| 981 | |
| 982 | mFodder->String_CalculateWidth(320, mFont_Underlined_Width, pTop); |
| 983 | auto topTextPos = mFodder->mGUI_Temp_X; |
| 984 | |
| 985 | mFodder->String_CalculateWidth(320, mFont_Underlined_Width, pBottom); |
| 986 | auto bottomTextPos = mFodder->mGUI_Temp_X - 4; |
| 987 | |
| 988 | do { |
| 989 | if (mSurface->isPaletteAdjusting()) |
| 990 | mSurface->palette_FadeTowardNew(); |
| 991 | |
| 992 | mFodder->Briefing_Helicopter_Check(); |
| 993 | HeliIntro_TickParallaxAndText(); |
| 994 | |
| 995 | mFodder->String_Print(mFont_Underlined_Width, 1, -332 + (topTextPos + (Heli_TextPos)), 0x01, pTop); |
| 996 | mFodder->String_Print(mFont_Underlined_Width, 1, (Heli_TextPosBottom)+bottomTextPos, 0xB5, pBottom); |
| 997 | |
| 998 | // Clouds |
| 999 | mMission_Intro_DrawX = pPositions[0].mX; |
| 1000 | mMission_Intro_DrawY = pPositions[0].mY; |
| 1001 | HeliIntroBlit_OpaqueAlignedX( mMission_Intro_Gfx_Clouds3, 320 - (Heli_VeryBack >> 16)); |
| 1002 | |
| 1003 | mMission_Intro_DrawX = pPositions[1].mX; |
| 1004 | mMission_Intro_DrawY = pPositions[1].mY; |
| 1005 | HeliIntro_BlitMaskedAlignedX( mMission_Intro_Gfx_Clouds2, 320 - (Heli_Back >> 16)); |
| 1006 | |
| 1007 | mMission_Intro_DrawX = pPositions[2].mX; |
| 1008 | mMission_Intro_DrawY = pPositions[2].mY; |
| 1009 | HeliIntro_BlitMaskedAlignedX( mMission_Intro_Gfx_Clouds1, 320 - (Heli_middle >> 16)); |
| 1010 | |
| 1011 | // Trees (Main) |
| 1012 | mMission_Intro_DrawX = pPositions[3].mX; |
| 1013 | mMission_Intro_DrawY = pPositions[3].mY; |
| 1014 | HeliIntroBlit_OpaqueAlignedX( mMission_Intro_Gfx_TreesMain, 320 - (Heli_middle >> 16)); |
| 1015 | |
| 1016 | mFodder->mVideo_Draw_FrameDataPtr = mBriefing_ParaHeli->data() + mBriefing_ParaHeli_Frames[mFodder->mBriefingHelicopter_FrameCounter]; |
| 1017 | |
| 1018 | mFodder->mVideo_Draw_PosX = mFodder->mBriefingHelicopter_ScreenX; // X |
| 1019 | mFodder->mVideo_Draw_PosY = mFodder->mBriefingHelicopter_ScreenY; // Y |
| 1020 | mFodder->mVideo_Draw_Columns = 0x40; |
| 1021 | mFodder->mVideo_Draw_Rows = 0x18; |
nothing calls this directly
no test coverage detected