46 ScrollUpBinding =
nullptr;
47 ScrollDownBinding =
nullptr;
64 ScreenFader = std::max(ScreenFader - 0.20f, -1.0f);
72 ScreenFader = std::min(ScreenFader + 0.05f, 1.0f);
77 Speed = std::max(1, iBackScroll / 5);
80 Fader = std::max(Fader - Speed, 0);
88 const char *szCurrMsg = LogBuffer.
GetLine(std::min(-iBackScroll, -1),
nullptr,
nullptr,
nullptr);
89 if (szCurrMsg) Delay = strlen(szCurrMsg);
else Delay = 0;
92 if (Delay > 0) Delay = std::max(Delay - Speed, 0);
97 iBackScroll = std::max(iBackScroll - 1, -1);
152 if (ScreenFader >= 1.0f)
158 for (
int iMsg = -iMsgFader; iMsg < 0; iMsg++)
161 if (iMsg-iBackScroll >= 0)
break;
162 const char *Message = LogBuffer.
GetLine(iMsg-iBackScroll,
nullptr,
nullptr,
nullptr);
163 if (!Message || !*Message)
continue;
165 int iMsgY = cgo.
Y + cgo.
Hgt + iMsg * iLineHgt + Fader;
176 float fade = std::max(ScreenFader, 0.0f) + ((iMsg + 2.0f + float(Fader) / iLineHgt) / std::min(2-iMsgFader, -1));
177 DWORD dwFade = (0xff -
Clamp(
int(fade * 0xff), 0, 0xff)) << 24;
189 for (
int i = 0; i < 100; i++)
193 if (iBackScroll < 0)
break;
201 if (!szMessage || !*szMessage)
return;
256 if (iBackScroll > -1) iBackScroll--;
C4Application Application
C4GraphicsSystem GraphicsSystem
C4GraphicsResource GraphicsResource
const int C4MSGB_MaxMsgFading
unsigned int SCharCount(char cTarget, const char *szInStr, const char *cpUntil)
bool SEqual2(const char *szStr1, const char *szStr2)
T Clamp(T bval, T lbound, T rbound)
DWORD PlrClr2TxtClr(DWORD dwClr)
bool StringOut(const char *szText, CStdFont &rFont, float fZoom, C4Surface *sfcDest, float iTx, float iTy, DWORD dwFCol=0xffffffff, BYTE byForm=ALeft, bool fDoMarkup=true)
void DrawBoxDw(C4Surface *sfcDest, int iX1, int iY1, int iX2, int iY2, DWORD dwClr)
std::unique_ptr< C4MessageBoard > MessageBoard
C4LoaderScreen * pLoaderScreen
void Draw(C4Facet &cgo, Flag options=Flag::ALL, int iProgress=0, class C4LogBuffer *pLog=nullptr, int Process=0)
const char * GetLine(int iLineIndex, CStdFont **ppFont, DWORD *pdwClr, bool *pNewParagraph) const
void SetLBWidth(int iToWidth)
void AppendLines(const char *szLine, CStdFont *pFont, DWORD dwClr, CStdFont *pFirstLineFont=nullptr)
C4Player * GetMessagePlayer(const char *szMessage)
void Init(C4Facet &cgo, bool fStartup)
void AddLog(const char *szMessage)
C4Player * GetByName(const char *szName, int iExcluding=NO_OWNER) const
bool PageFlip(C4Rect *pSrcRt=nullptr, C4Rect *pDstRt=nullptr)
int GetLineHeight() const
void CopyUntil(const char *szString, char cUntil)
const char * getData() const