/** ** Show a title image */ void TitleScreen::ShowTitleImage() { const EventCallback *old_callbacks = GetCallbacks(); EventCallback callbacks; WaitNoEvent = true; callbacks.ButtonPressed = WaitCallbackButtonPressed; callbacks.ButtonReleased = WaitCallbackButtonReleased; callbacks.MouseMoved = WaitCallbackMouse; callbacks.MouseExit = WaitCallbackExit; callbacks.KeyPressed = WaitCallbackKeyPressed; callbacks.KeyReleased = WaitCallbackKeyReleased; callbacks.KeyRepeated = WaitCallbackKeyRepeated; //callbacks.NetworkEvent = NetworkEvent; callbacks.NetworkEvent = nullptr; SetCallbacks(&callbacks); CGraphic *g = CGraphic::New(this->File); g->Load(); if (this->StretchImage) { g->Resize(Video.Width, Video.Height); } int timeout = this->Timeout ? this->Timeout * CYCLES_PER_SECOND : -1; while (timeout-- && WaitNoEvent) { g->DrawClip((Video.Width - g->Width) / 2, (Video.Height - g->Height) / 2); this->ShowLabels(); Invalidate(); RealizeVideoMemory(); WaitEventsOneFrame(); } SetCallbacks(old_callbacks); CGraphic::Free(g); }