21 #include "C4Version.h"
45 int iButtonPadding = 2;
87 keys.emplace_back(K_DOWN); keys.emplace_back(K_RIGHT);
94 keys.clear(); keys.emplace_back(K_UP); keys.emplace_back(K_LEFT);
101 keys.clear(); keys.emplace_back(K_RETURN);
118 Base::DrawElement(cgo);
121 float fLogoZoom = 1.0f;
159 char szPlayer[1024+1];
176 char szPlayer[1024+1];
186 std::vector<char> strPlayer(1025);
188 for (
int i = 0;
SCopySegment(strPlayers.c_str(), i, &strPlayer[0],
';', strPlayer.size() - 1,
true); i++)
190 const char *szPlayer = &strPlayer[0];
192 strPlayerFile.append(szPlayer);
193 if (!szPlayer || !*szPlayer)
continue;
194 if (!
FileExists(strPlayerFile.c_str()))
continue;
203 strPlayers.append(
LoadResStr(
"IDS_DLG_NOPLAYERSSELECTED"));
207 if (i > 0) strPlayers.append(
", ");
210 pParticipantsLbl->
SetText(strPlayers.c_str());
241 if (!rsHostAddress || !*rsHostAddress.
getData())
return;
304 #ifdef WITH_AUTOMATIC_UPDATE
314 C4UpdateDlg::CheckForUpdates(
GetScreen(),
false);
321 C4UpdateDlg::CheckForUpdates(
GetScreen(),
true);
331 bool fHasPlayer =
false;
#define C4CFN_PlayerFiles
C4Application Application
C4GraphicsResource GraphicsResource
#define C4GUI_BigButtonHgt
const char * LoadResStr(const char *id)
bool SIsModule(const char *szList, const char *szString, int *ipIndex, bool fCaseSensitive)
bool SCopySegment(const char *szString, int iSegment, char *sTarget, char cSeparator, int iMaxL, bool fSkipWhitespace)
void SCopy(const char *szSource, char *sTarget, size_t iMaxL)
bool SRemoveModule(char *szList, const char *szModule, bool fCaseSensitive)
bool SEqualNoCase(const char *szStr1, const char *szStr2, int iLen)
bool SAddModule(char *szList, const char *szModule, bool fCaseSensitive)
char * GetExtension(char *szFilename)
bool WildcardMatch(const char *szWildcard, const char *szString)
const char * GetFilenameOnly(const char *strFilename)
char * GetFilename(char *szPath)
bool FileExists(const char *szFileName)
std::string IncomingUpdate
void OpenGame(const char *scenario=nullptr)
int32_t GamepadGuiControl
char Participants[CFG_MaxString+1]
char UserDataPath[CFG_MaxString+1]
const char * AtRelativePath(const char *filename)
C4ConfigControls Controls
std::vector< C4KeyCodeEx > CodeList
bool TextOut(const char *szText, CStdFont &rFont, float fZoom, C4Surface *sfcDest, float iTx, float iTy, DWORD dwFCol=0xffffffff, BYTE byForm=ALeft, bool fDoMarkup=true)
void DrawX(C4Surface *sfcTarget, float iX, float iY, float iWdt, float iHgt, int32_t iPhaseX=0, int32_t iPhaseY=0) const
bool GetFromLeft(int32_t iWdt, int32_t iHgt, C4Rect &rcOut)
bool GetFromTop(int32_t iHgt, int32_t iWdt, C4Rect &rcOut)
void GetAll(C4Rect &rcOut)
void AddElement(Element *pChild)
void SetFocus(Control *pCtrl, bool fByMouse)
bool KeyAdvanceFocus(bool fBackwards)
virtual Screen * GetScreen()
void SetToolTip(const char *szNewTooltip, bool is_immediate=false)
void SetContextHandler(ContextHandler *pNewHd)
void SetText(const char *szToText, bool fAllowHotkey=true)
bool ShowModalDlg(Dialog *pDlg, bool fDestruct=true)
bool ShowErrorMessage(const char *szMessage)
bool ShowMessage(const char *szMessage, const char *szCaption, Icons icoIcon, int32_t *piConfigDontShowAgainSetting=nullptr)
C4Rect & GetClientRect() override
char DirectJoinAddress[_MAX_PATH_LEN]
bool DoKeyboardInput(C4KeyCode vk_code, C4KeyEventType event_type, bool alt, bool ctrl, bool shift, bool repeated, class C4GUI::Dialog *for_dialog=nullptr, bool fPlrCtrlOnly=false, int32_t strength=-1)
char ScenarioFilename[_MAX_PATH_LEN]
char DefinitionFilenames[20 *_MAX_PATH_LEN]
C4GUI::DynBarFacet barMainButtonsDown
class C4StartupDlg * SwitchDialog(DialogID eToDlg, bool fFade=true, const char *szSubDialog=nullptr)
C4StartupGraphics Graphics
void OnClosed(bool fOK) override
void OnPlayerSelContextAddPlr(C4GUI::Element *pTarget, const StdCopyStrBuf &rsFilename)
void OnStartBtn(C4GUI::Control *btn)
void DrawElement(C4TargetFacet &cgo) override
void OnNetJoin(const StdStrBuf &rsHostAddress)
~C4StartupMainDlg() override
void OnPlayerSelContextRemovePlr(C4GUI::Element *pTarget, const int &iIndex)
C4GUI::ContextMenu * OnPlayerSelContextAdd(C4GUI::Element *pBtn, int32_t iX, int32_t iY)
void OnEditorBtn(C4GUI::Control *btn)
void OnPlayerSelectionBtn(C4GUI::Control *btn)
void OnExitBtn(C4GUI::Control *btn)
void UpdateParticipants()
void OnAboutBtn(C4GUI::Control *btn)
C4GUI::ContextMenu * OnPlayerSelContext(C4GUI::Element *pBtn, int32_t iX, int32_t iY)
void OnModsBtn(C4GUI::Control *btn)
C4GUI::ContextMenu * OnPlayerSelContextRemove(C4GUI::Element *pBtn, int32_t iX, int32_t iY)
void OnOptionsBtn(C4GUI::Control *btn)
void OnNetJoinBtn(C4GUI::Control *btn)
void OnTODO(C4GUI::Control *btn)
const char * getData() const
void Format(const char *szFmt,...) GNUC_FORMAT_ATTRIBUTE_O