/* ================= UI_CreateGame_Init ================= */ static void UI_CreateGame_Init( void ) { Mem_Set( &uiCreateGame, 0, sizeof( uiCreateGame_t )); com.strncat( uiCreateGame.hintText, "Map", MAPNAME_LENGTH ); com.strncat( uiCreateGame.hintText, uiEmptyString, MAPNAME_LENGTH ); com.strncat( uiCreateGame.hintText, "Title", TITLE_LENGTH ); com.strncat( uiCreateGame.hintText, uiEmptyString, TITLE_LENGTH ); uiCreateGame.background.generic.id = ID_BACKGROUND; uiCreateGame.background.generic.type = QMTYPE_BITMAP; uiCreateGame.background.generic.flags = QMF_INACTIVE; uiCreateGame.background.generic.x = 0; uiCreateGame.background.generic.y = 0; uiCreateGame.background.generic.width = 1024; uiCreateGame.background.generic.height = 768; uiCreateGame.background.pic = ART_BACKGROUND; uiCreateGame.banner.generic.id = ID_BANNER; uiCreateGame.banner.generic.type = QMTYPE_BITMAP; uiCreateGame.banner.generic.flags = QMF_INACTIVE; uiCreateGame.banner.generic.x = UI_BANNER_POSX; uiCreateGame.banner.generic.y = UI_BANNER_POSY; uiCreateGame.banner.generic.width = UI_BANNER_WIDTH; uiCreateGame.banner.generic.height = UI_BANNER_HEIGHT; uiCreateGame.banner.pic = ART_BANNER; uiCreateGame.advOptions.generic.id = ID_ADVOPTIONS; uiCreateGame.advOptions.generic.type = QMTYPE_ACTION; uiCreateGame.advOptions.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW|QMF_GRAYED; uiCreateGame.advOptions.generic.x = 72; uiCreateGame.advOptions.generic.y = 230; uiCreateGame.advOptions.generic.name = "Adv. Options"; uiCreateGame.advOptions.generic.statusText = "Open the LAN game advanced options menu"; uiCreateGame.advOptions.generic.callback = UI_CreateGame_Callback; uiCreateGame.done.generic.id = ID_DONE; uiCreateGame.done.generic.type = QMTYPE_ACTION; uiCreateGame.done.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiCreateGame.done.generic.x = 72; uiCreateGame.done.generic.y = 280; uiCreateGame.done.generic.name = "Ok"; uiCreateGame.done.generic.statusText = "Start the multiplayer game"; uiCreateGame.done.generic.callback = UI_CreateGame_Callback; uiCreateGame.cancel.generic.id = ID_CANCEL; uiCreateGame.cancel.generic.type = QMTYPE_ACTION; uiCreateGame.cancel.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiCreateGame.cancel.generic.x = 72; uiCreateGame.cancel.generic.y = 330; uiCreateGame.cancel.generic.name = "Cancel"; uiCreateGame.cancel.generic.statusText = "Return to LAN game menu"; uiCreateGame.cancel.generic.callback = UI_CreateGame_Callback; uiCreateGame.dedicatedServer.generic.id = ID_DEDICATED; uiCreateGame.dedicatedServer.generic.type = QMTYPE_CHECKBOX; uiCreateGame.dedicatedServer.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_ACT_ONRELEASE|QMF_MOUSEONLY|QMF_DROPSHADOW; uiCreateGame.dedicatedServer.generic.name = "Dedicated server"; uiCreateGame.dedicatedServer.generic.x = 72; uiCreateGame.dedicatedServer.generic.y = 685; uiCreateGame.dedicatedServer.generic.callback = UI_CreateGame_Callback; uiCreateGame.dedicatedServer.generic.statusText = "faster, but you can't join the server from this machine"; uiCreateGame.hintMessage.generic.id = ID_TABLEHINT; uiCreateGame.hintMessage.generic.type = QMTYPE_ACTION; uiCreateGame.hintMessage.generic.flags = QMF_INACTIVE|QMF_SMALLFONT; uiCreateGame.hintMessage.generic.color = uiColorHelp; uiCreateGame.hintMessage.generic.name = uiCreateGame.hintText; uiCreateGame.hintMessage.generic.x = 590; uiCreateGame.hintMessage.generic.y = 215; uiCreateGame.mapsList.generic.id = ID_MAPLIST; uiCreateGame.mapsList.generic.type = QMTYPE_SCROLLLIST; uiCreateGame.mapsList.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_SMALLFONT; uiCreateGame.mapsList.generic.x = 590; uiCreateGame.mapsList.generic.y = 245; uiCreateGame.mapsList.generic.width = 410; uiCreateGame.mapsList.generic.height = 440; uiCreateGame.mapsList.generic.callback = UI_CreateGame_Callback; uiCreateGame.hostName.generic.id = ID_HOSTNAME; uiCreateGame.hostName.generic.type = QMTYPE_FIELD; uiCreateGame.hostName.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiCreateGame.hostName.generic.name = "Server Name:"; uiCreateGame.hostName.generic.x = 350; uiCreateGame.hostName.generic.y = 260; uiCreateGame.hostName.generic.width = 205; uiCreateGame.hostName.generic.height = 32; uiCreateGame.hostName.generic.callback = UI_CreateGame_Callback; uiCreateGame.hostName.maxLength = 16; com.strncpy( uiCreateGame.hostName.buffer, Cvar_VariableString( "sv_hostname" ), sizeof( uiCreateGame.hostName.buffer )); uiCreateGame.maxClients.generic.id = ID_MAXCLIENTS; uiCreateGame.maxClients.generic.type = QMTYPE_FIELD; uiCreateGame.maxClients.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW|QMF_NUMBERSONLY; uiCreateGame.maxClients.generic.name = "Max Players:"; uiCreateGame.maxClients.generic.x = 350; uiCreateGame.maxClients.generic.y = 360; uiCreateGame.maxClients.generic.width = 205; uiCreateGame.maxClients.generic.height = 32; uiCreateGame.maxClients.maxLength = 3; if( Cvar_VariableInteger( "sv_maxclients" ) <= 1 ) com.snprintf( uiCreateGame.maxClients.buffer, sizeof( uiCreateGame.maxClients.buffer ), "8" ); else com.snprintf( uiCreateGame.maxClients.buffer, sizeof( uiCreateGame.maxClients.buffer ), "%i", Cvar_VariableInteger( "sv_maxclients" )); uiCreateGame.password.generic.id = ID_PASSWORD; uiCreateGame.password.generic.type = QMTYPE_FIELD; uiCreateGame.password.generic.flags = QMF_CENTER_JUSTIFY|QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiCreateGame.password.generic.name = "Password:"******"Starting a new game will exit"; uiCreateGame.dlgMessage1.generic.x = 248; uiCreateGame.dlgMessage1.generic.y = 280; uiCreateGame.dlgMessage2.generic.id = ID_MSGTEXT; uiCreateGame.dlgMessage2.generic.type = QMTYPE_ACTION; uiCreateGame.dlgMessage2.generic.flags = QMF_INACTIVE|QMF_HIDDEN; uiCreateGame.dlgMessage2.generic.name = "any current game, OK to exit?"; uiCreateGame.dlgMessage2.generic.x = 248; uiCreateGame.dlgMessage2.generic.y = 310; uiCreateGame.yes.generic.id = ID_YES; uiCreateGame.yes.generic.type = QMTYPE_ACTION; uiCreateGame.yes.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_HIDDEN; uiCreateGame.yes.generic.name = "Ok"; uiCreateGame.yes.generic.x = 380; uiCreateGame.yes.generic.y = 460; uiCreateGame.yes.generic.callback = UI_CreateGame_Callback; uiCreateGame.no.generic.id = ID_NO; uiCreateGame.no.generic.type = QMTYPE_ACTION; uiCreateGame.no.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_HIDDEN; uiCreateGame.no.generic.name = "Cancel"; uiCreateGame.no.generic.x = 530; uiCreateGame.no.generic.y = 460; uiCreateGame.no.generic.callback = UI_CreateGame_Callback; UI_CreateGame_GetMapsList(); if( !Host_ServerState()) SV_LoadProgs( "server" ); // force to get user mp_variables UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.background ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.banner ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.advOptions ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.done ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.cancel ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.maxClients ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.hostName ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.password ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.dedicatedServer ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.hintMessage ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.mapsList ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.msgBox ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.dlgMessage1 ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.dlgMessage2 ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.no ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.yes ); }
/* ================= UI_CreateGame_Init ================= */ static void UI_CreateGame_Init( void ) { memset( &uiCreateGame, 0, sizeof( uiCreateGame_t )); uiCreateGame.menu.vidInitFunc = UI_CreateGame_Init; uiCreateGame.menu.keyFunc = UI_CreateGame_KeyFunc; StringConcat( uiCreateGame.hintText, "Map", MAPNAME_LENGTH ); StringConcat( uiCreateGame.hintText, uiEmptyString, MAPNAME_LENGTH ); StringConcat( uiCreateGame.hintText, "Title", TITLE_LENGTH ); StringConcat( uiCreateGame.hintText, uiEmptyString, TITLE_LENGTH ); uiCreateGame.background.generic.id = ID_BACKGROUND; uiCreateGame.background.generic.type = QMTYPE_BITMAP; uiCreateGame.background.generic.flags = QMF_INACTIVE; uiCreateGame.background.generic.x = 0; uiCreateGame.background.generic.y = 0; uiCreateGame.background.generic.width = 1024; uiCreateGame.background.generic.height = 768; uiCreateGame.background.pic = ART_BACKGROUND; uiCreateGame.banner.generic.id = ID_BANNER; uiCreateGame.banner.generic.type = QMTYPE_BITMAP; uiCreateGame.banner.generic.flags = QMF_INACTIVE|QMF_DRAW_ADDITIVE; uiCreateGame.banner.generic.x = UI_BANNER_POSX; uiCreateGame.banner.generic.y = UI_BANNER_POSY; uiCreateGame.banner.generic.width = UI_BANNER_WIDTH; uiCreateGame.banner.generic.height = UI_BANNER_HEIGHT; uiCreateGame.banner.pic = ART_BANNER; uiCreateGame.advOptions.generic.id = ID_ADVOPTIONS; uiCreateGame.advOptions.generic.type = QMTYPE_BM_BUTTON; uiCreateGame.advOptions.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW|QMF_GRAYED; uiCreateGame.advOptions.generic.x = 72; uiCreateGame.advOptions.generic.y = 230; uiCreateGame.advOptions.generic.name = "Adv. Options"; uiCreateGame.advOptions.generic.statusText = "Open the LAN game advanced options menu"; uiCreateGame.advOptions.generic.callback = UI_CreateGame_Callback; UI_UtilSetupPicButton( &uiCreateGame.advOptions, PC_ADV_OPT ); uiCreateGame.done.generic.id = ID_DONE; uiCreateGame.done.generic.type = QMTYPE_BM_BUTTON; uiCreateGame.done.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiCreateGame.done.generic.x = 72; uiCreateGame.done.generic.y = 280; uiCreateGame.done.generic.name = "Ok"; uiCreateGame.done.generic.statusText = "Start the multiplayer game"; uiCreateGame.done.generic.callback = UI_CreateGame_Callback; UI_UtilSetupPicButton( &uiCreateGame.done, PC_OK ); uiCreateGame.cancel.generic.id = ID_CANCEL; uiCreateGame.cancel.generic.type = QMTYPE_BM_BUTTON; uiCreateGame.cancel.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiCreateGame.cancel.generic.x = 72; uiCreateGame.cancel.generic.y = 330; uiCreateGame.cancel.generic.name = "Cancel"; uiCreateGame.cancel.generic.statusText = "Return to LAN game menu"; uiCreateGame.cancel.generic.callback = UI_CreateGame_Callback; UI_UtilSetupPicButton( &uiCreateGame.cancel, PC_CANCEL ); uiCreateGame.dedicatedServer.generic.id = ID_DEDICATED; uiCreateGame.dedicatedServer.generic.type = QMTYPE_CHECKBOX; uiCreateGame.dedicatedServer.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_ACT_ONRELEASE|QMF_MOUSEONLY|QMF_DROPSHADOW; uiCreateGame.dedicatedServer.generic.name = "Dedicated server"; uiCreateGame.dedicatedServer.generic.x = 72; uiCreateGame.dedicatedServer.generic.y = 685; uiCreateGame.dedicatedServer.generic.callback = UI_CreateGame_Callback; uiCreateGame.dedicatedServer.generic.statusText = "faster, but you can't join the server from this machine"; uiCreateGame.hltv.generic.id = ID_HLTV; uiCreateGame.hltv.generic.type = QMTYPE_CHECKBOX; uiCreateGame.hltv.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_ACT_ONRELEASE|QMF_MOUSEONLY|QMF_DROPSHADOW; uiCreateGame.hltv.generic.name = "HLTV"; uiCreateGame.hltv.generic.x = 72; uiCreateGame.hltv.generic.y = 635; uiCreateGame.hltv.generic.callback = UI_CreateGame_Callback; uiCreateGame.hltv.generic.statusText = "enable hltv mode in multiplayer"; uiCreateGame.hintMessage.generic.id = ID_TABLEHINT; uiCreateGame.hintMessage.generic.type = QMTYPE_ACTION; uiCreateGame.hintMessage.generic.flags = QMF_INACTIVE|QMF_SMALLFONT; uiCreateGame.hintMessage.generic.color = uiColorHelp; uiCreateGame.hintMessage.generic.name = uiCreateGame.hintText; uiCreateGame.hintMessage.generic.x = 590; uiCreateGame.hintMessage.generic.y = 215; uiCreateGame.mapsList.generic.id = ID_MAPLIST; uiCreateGame.mapsList.generic.type = QMTYPE_SCROLLLIST; uiCreateGame.mapsList.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_SMALLFONT; uiCreateGame.mapsList.generic.x = 590; uiCreateGame.mapsList.generic.y = 245; uiCreateGame.mapsList.generic.width = 410; uiCreateGame.mapsList.generic.height = 440; uiCreateGame.mapsList.generic.callback = UI_CreateGame_Callback; uiCreateGame.hostName.generic.id = ID_HOSTNAME; uiCreateGame.hostName.generic.type = QMTYPE_FIELD; uiCreateGame.hostName.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiCreateGame.hostName.generic.name = "Server Name:"; uiCreateGame.hostName.generic.x = 350; uiCreateGame.hostName.generic.y = 260; uiCreateGame.hostName.generic.width = 205; uiCreateGame.hostName.generic.height = 32; uiCreateGame.hostName.generic.callback = UI_CreateGame_Callback; uiCreateGame.hostName.maxLength = 16; strcpy( uiCreateGame.hostName.buffer, CVAR_GET_STRING( "hostname" )); uiCreateGame.maxClients.generic.id = ID_MAXCLIENTS; uiCreateGame.maxClients.generic.type = QMTYPE_FIELD; uiCreateGame.maxClients.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW|QMF_NUMBERSONLY; uiCreateGame.maxClients.generic.name = "Max Players:"; uiCreateGame.maxClients.generic.x = 350; uiCreateGame.maxClients.generic.y = 360; uiCreateGame.maxClients.generic.width = 205; uiCreateGame.maxClients.generic.height = 32; uiCreateGame.maxClients.maxLength = 3; if( CVAR_GET_FLOAT( "maxplayers" ) <= 1 ) strcpy( uiCreateGame.maxClients.buffer, "8" ); else sprintf( uiCreateGame.maxClients.buffer, "%i", (int)CVAR_GET_FLOAT( "maxplayers" )); uiCreateGame.password.generic.id = ID_PASSWORD; uiCreateGame.password.generic.type = QMTYPE_FIELD; uiCreateGame.password.generic.flags = QMF_CENTER_JUSTIFY|QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW|QMF_HIDEINPUT; uiCreateGame.password.generic.name = "Password:"******"Starting a new game will exit"; uiCreateGame.dlgMessage1.generic.x = 248; uiCreateGame.dlgMessage1.generic.y = 280; uiCreateGame.dlgMessage2.generic.id = ID_MSGTEXT; uiCreateGame.dlgMessage2.generic.type = QMTYPE_ACTION; uiCreateGame.dlgMessage2.generic.flags = QMF_INACTIVE|QMF_HIDDEN|QMF_DROPSHADOW; uiCreateGame.dlgMessage2.generic.name = "any current game, OK to exit?"; uiCreateGame.dlgMessage2.generic.x = 248; uiCreateGame.dlgMessage2.generic.y = 310; uiCreateGame.yes.generic.id = ID_YES; uiCreateGame.yes.generic.type = QMTYPE_BM_BUTTON; uiCreateGame.yes.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_HIDDEN|QMF_DROPSHADOW; uiCreateGame.yes.generic.name = "Ok"; uiCreateGame.yes.generic.x = 380; uiCreateGame.yes.generic.y = 460; uiCreateGame.yes.generic.callback = UI_CreateGame_Callback; UI_UtilSetupPicButton( &uiCreateGame.yes, PC_OK ); uiCreateGame.no.generic.id = ID_NO; uiCreateGame.no.generic.type = QMTYPE_BM_BUTTON; uiCreateGame.no.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_HIDDEN|QMF_DROPSHADOW; uiCreateGame.no.generic.name = "Cancel"; uiCreateGame.no.generic.x = 530; uiCreateGame.no.generic.y = 460; uiCreateGame.no.generic.callback = UI_CreateGame_Callback; UI_UtilSetupPicButton( &uiCreateGame.no, PC_CANCEL ); UI_CreateGame_GetMapsList(); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.background ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.banner ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.advOptions ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.done ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.cancel ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.maxClients ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.hostName ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.password ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.dedicatedServer ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.hltv ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.hintMessage ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.mapsList ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.msgBox ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.dlgMessage1 ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.dlgMessage2 ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.no ); UI_AddItem( &uiCreateGame.menu, (void *)&uiCreateGame.yes ); }