1
1
#include " menuConexionPuerto.hpp"
2
2
3
- MenuConexionPuerto::MenuConexionPuerto (Ventana * ventana) : MenuInput(ventana){
3
+ MenuConexionPuerto::MenuConexionPuerto (Ventana * ventana, Cliente * cliente ) : MenuInput(ventana){
4
4
titulo->cargarFuente (" INGRESE PUERTO" );
5
+ aviso = new Aviso (ventana);
6
+ this ->cliente = cliente;
5
7
}
6
8
9
+
7
10
void MenuConexionPuerto::setMenuIP (Menu * menu) {
8
11
anterior = menu;
9
12
}
@@ -18,3 +21,33 @@ void MenuConexionPuerto::accionSiguiente() {
18
21
cout << " acá se debería setear la IP." << input->getTexto () << endl;
19
22
cout << " Luego de setear la IP se debería conectar." << endl;
20
23
}
24
+
25
+
26
+ int MenuConexionPuerto::manejarEvento (SDL_Event * e) {
27
+ aviso->manejarEvento (e);
28
+ if (esTecla (e,SDLK_RETURN) || botonSiguiente->manejarEvento (e) == BOTON_APRETADO) {
29
+ stringstream ss; ss << input->getTexto ();
30
+ int puerto;
31
+ ss >> puerto;
32
+ this ->cliente ->setAddress (((MenuConexionManual*)anterior)->getIP (), puerto);
33
+
34
+ if (cliente->conectar (aviso)) {
35
+ string elServidorNecesitaEquipo;
36
+ cout << " El servidor nos dirá si es por equipos." << endl;
37
+ if (cliente->recibirMensaje (elServidorNecesitaEquipo) != MENSAJEOK) return SALIR;
38
+ if (Decodificador::popBool (elServidorNecesitaEquipo))
39
+ // Si necesitamos elegir equipo, vamos al siguiente. Si no, jugamos.
40
+ return SIGUIENTE;
41
+ return JUGAR;
42
+ // Después de la elección de equipo, si la hubo, se procede con el juego.
43
+ }
44
+ // Si no se pudo conectar, nos quedamos en la misma pantalla.
45
+ return NADA;
46
+ }
47
+ return MenuInput::manejarEvento (e);
48
+ }
49
+
50
+ void MenuConexionPuerto::render () {
51
+ MenuInput::render ();
52
+ aviso->render ();
53
+ }
0 commit comments