Skip to content

Commit 7d42b02

Browse files
committed
Conexion Manual
1 parent 34f0565 commit 7d42b02

File tree

5 files changed

+47
-3
lines changed

5 files changed

+47
-3
lines changed

src/menu/Menu/menuIntermedio/menuInput/menuConexionManual.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,7 @@ void MenuConexionManual::accionAnterior() {}
1717
void MenuConexionManual::accionSiguiente() {
1818
cout << "acá se debería setear la IP." << endl;
1919
}
20+
21+
string MenuConexionManual::getIP() {
22+
return input->getTexto();
23+
}

src/menu/Menu/menuIntermedio/menuInput/menuConexionManual.hpp

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ class MenuConexionManual: public MenuInput {
1212
void setMenuConexiones(Menu * menu);
1313
void accionAnterior();
1414
void accionSiguiente();
15+
string getIP();
1516
};
1617

1718
#endif

src/menu/Menu/menuIntermedio/menuInput/menuConexionPuerto.cpp

+34-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
#include "menuConexionPuerto.hpp"
22

3-
MenuConexionPuerto::MenuConexionPuerto(Ventana * ventana) : MenuInput(ventana){
3+
MenuConexionPuerto::MenuConexionPuerto(Ventana * ventana, Cliente * cliente) : MenuInput(ventana){
44
titulo->cargarFuente("INGRESE PUERTO");
5+
aviso = new Aviso(ventana);
6+
this->cliente = cliente;
57
}
68

9+
710
void MenuConexionPuerto::setMenuIP(Menu * menu) {
811
anterior = menu;
912
}
@@ -18,3 +21,33 @@ void MenuConexionPuerto::accionSiguiente() {
1821
cout << "acá se debería setear la IP." << input->getTexto() << endl;
1922
cout << "Luego de setear la IP se debería conectar." << endl;
2023
}
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+
}

src/menu/Menu/menuIntermedio/menuInput/menuConexionPuerto.hpp

+7-1
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,21 @@
22
#define MENUCONEXIONPUERTO_H
33

44
#include "menuInput.hpp"
5+
#include "menuConexionManual.hpp"
56
using namespace std;
67

78
class MenuConexionPuerto: public MenuInput {
9+
private:
10+
Aviso * aviso;
11+
Cliente * cliente;
812
public:
9-
MenuConexionPuerto(Ventana * ventana);
13+
MenuConexionPuerto(Ventana * ventana, Cliente * cliente);
1014
void setMenuIP(Menu * menu);
1115
void setMenuEquipos(Menu * menu);
1216
void accionAnterior();
1317
void accionSiguiente();
18+
int manejarEvento(SDL_Event * e);
19+
void render();
1420
};
1521

1622
#endif

src/menu/manejador/manejador1942.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Manejador1942::Manejador1942(Ventana * ventana, Cliente * cliente, SoundBoard *
77
menuPrincipal = new MenuPrincipal(ventana);
88
menuConexiones = new MenuConexiones(ventana, cliente);
99
menuIp = new MenuConexionManual(ventana);
10-
menuPuerto = new MenuConexionPuerto(ventana);
10+
menuPuerto = new MenuConexionPuerto(ventana, cliente);
1111
menuDatosDeUsuario = new MenuDatosDeUsuario(ventana, cliente);
1212
menuPorEquipos = new MenuPorEquipos(ventana, cliente);
1313

0 commit comments

Comments
 (0)