You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
3.4 KiB
145 lines
3.4 KiB
#include "../../types.h" |
|
|
|
void selconn_Render() |
|
{ |
|
DrawArtImage(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, pPcxTitleImage); |
|
RenderDiabloLogoSm(); |
|
|
|
PrintText30Silver(-1, 161, "Multi Player Game", JustCentre); |
|
|
|
int w = 334; |
|
int x = 280; |
|
int y = 261; |
|
|
|
PrintText30Silver(x, 211, "Select Connection", JustCentre, w); |
|
|
|
char *connections[2] = { |
|
//"Battle.net", |
|
//"Local Area Network (IPC)", |
|
//"Modem", |
|
//"Direct Cable Connection", |
|
"Local Area Network (UDP)" |
|
,"Solo" |
|
}; |
|
|
|
int selectorTop = y; |
|
|
|
for (int i = 0; i < 2; i++) { |
|
PrintText16Gold(x - 1, y, connections[i], JustCentre, w); |
|
y += 26; |
|
} |
|
|
|
DrawSelector16(x, selectorTop - 2, w, 35, 26); |
|
|
|
if (SelectedItem == 1) { |
|
PrintText16Silver(35, 218, "Players Supported: 4"); |
|
PrintText16Silver(35, 256, "Requirements:"); |
|
// TODO need a word wrap function |
|
PrintText16Silver(35, 275, "All computers must be"); |
|
PrintText16Silver(35, 291, "connected to an"); |
|
PrintText16Silver(35, 307, "UDP-compatible network."); |
|
} else { |
|
PrintText16Silver(35, 218, "Players Supported: 1"); |
|
PrintText16Silver(35, 256, "Play by your self with"); |
|
PrintText16Silver(35, 275, "no network exposure."); |
|
} |
|
|
|
PrintText24Silver(26, 356, "no gateway needed", JustCentre, 226); |
|
|
|
PrintText30Gold(349, 429, "OK"); |
|
PrintText30Gold(476, 429, "Cancel"); |
|
} |
|
|
|
void selconn_Loade() |
|
{ |
|
LoadTitelArt("ui_art\\selconn.pcx"); |
|
} |
|
|
|
void selconn_Free() |
|
{ |
|
mem_free_dbg(pPcxTitleImage); |
|
pPcxTitleImage = NULL; |
|
} |
|
|
|
int __stdcall UiSelectProvider(int a1, _SNETPROGRAMDATA *client_info, _SNETPLAYERDATA *user_info, _SNETUIDATA *ui_info, |
|
_SNETVERSIONDATA *file_info, int *type) |
|
{ |
|
selconn_Loade(); |
|
|
|
SelectedItem = 1; |
|
SelectedItemMax = 2; |
|
SDL_Event event; |
|
|
|
bool endMenu = false; |
|
while (!endMenu) { |
|
CapFPS(); |
|
selconn_Render(); |
|
DrawMouse(); |
|
UiFadeIn(); |
|
|
|
while (SDL_PollEvent(&event)) { |
|
switch (event.type) { |
|
case SDL_KEYDOWN: |
|
switch (event.key.keysym.sym) { |
|
case SDLK_UP: |
|
SelectedItem--; |
|
if (SelectedItem < MAINMENU_SINGLE_PLAYER) { |
|
SelectedItem = SelectedItemMax; |
|
} |
|
effects_play_sound("sfx\\items\\titlemov.wav"); |
|
break; |
|
case SDLK_DOWN: |
|
SelectedItem++; |
|
if (SelectedItem > SelectedItemMax) { |
|
SelectedItem = MAINMENU_SINGLE_PLAYER; |
|
} |
|
effects_play_sound("sfx\\items\\titlemov.wav"); |
|
break; |
|
case SDLK_ESCAPE: |
|
if (PreviousItem[submenu]) { |
|
SetMenu(PreviousItem[submenu]); |
|
break; |
|
} |
|
return FALSE; |
|
case SDLK_RETURN: |
|
case SDLK_KP_ENTER: |
|
case SDLK_SPACE: |
|
effects_play_sound("sfx\\items\\titlslct.wav"); |
|
switch (SelectedItem) { |
|
/* |
|
case 1: |
|
endMenu = SNetInitializeProvider('BNET', client_info, user_info, ui_info, file_info); |
|
break; |
|
case 2: |
|
endMenu = SNetInitializeProvider('IPXN', client_info, user_info, ui_info, file_info); |
|
break; |
|
case 3: |
|
endMenu = SNetInitializeProvider('MODM', client_info, user_info, ui_info, file_info); |
|
break; |
|
case 4: |
|
endMenu = SNetInitializeProvider('SCBL', client_info, user_info, ui_info, file_info); |
|
break; |
|
case 5:*/ |
|
case 1: |
|
endMenu = SNetInitializeProvider('UDPN', client_info, user_info, ui_info, file_info); |
|
break; |
|
case 2: |
|
endMenu = SNetInitializeProvider('SCBL', client_info, user_info, ui_info, file_info); |
|
break; |
|
} |
|
SelectedItem = 1; |
|
SelectedItemMax = 3; |
|
break; |
|
} |
|
break; |
|
case SDL_QUIT: |
|
exit(0); |
|
} |
|
} |
|
} |
|
BlackPalette(); |
|
|
|
selconn_Free(); |
|
|
|
return TRUE; |
|
}
|
|
|