added being able to create a host on the game server now need to work on joining that game
This commit is contained in:
134
input.c
134
input.c
@@ -6,36 +6,21 @@
|
||||
#include <overworld.h>
|
||||
#include <host.h>
|
||||
#include <mydebug.h>
|
||||
#include <options.h>
|
||||
#include <net.h>
|
||||
|
||||
|
||||
int prev_state;
|
||||
|
||||
void mainmenu_selection_state();
|
||||
void handle_input_mainmenu(SDL_Event *e);
|
||||
void handle_input_battle(SDL_Event *e);
|
||||
void handle_input_overworld(SDL_Event *e);
|
||||
void handle_input_host(SDL_Event *e);
|
||||
void handle_input_join(SDL_Event *e);
|
||||
void handle_input_options(SDL_Event *e);
|
||||
|
||||
void mainmenu_selection_state()
|
||||
{
|
||||
switch (selected_index)
|
||||
{
|
||||
case START_GAME:
|
||||
state = START;
|
||||
break;
|
||||
case HOST_GAME:
|
||||
state = HOST;
|
||||
break;
|
||||
case JOIN_GAME:
|
||||
state = JOIN;
|
||||
break;
|
||||
case OPTIONS_MENU:
|
||||
state = OPTIONS;
|
||||
break;
|
||||
case EXIT_GAME:
|
||||
running = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//main event handler
|
||||
void handle_event(SDL_Event *e){
|
||||
while(SDL_PollEvent(e))
|
||||
{
|
||||
@@ -78,6 +63,9 @@ void handle_event(SDL_Event *e){
|
||||
case JOIN:
|
||||
handle_input_join(e);
|
||||
break;
|
||||
case OPTIONS:
|
||||
handle_input_options(e);
|
||||
break;
|
||||
default:
|
||||
if(e->type == SDL_KEYDOWN && e->key.keysym.sym == SDLK_ESCAPE)
|
||||
{
|
||||
@@ -89,12 +77,32 @@ void handle_event(SDL_Event *e){
|
||||
}
|
||||
}
|
||||
|
||||
void mainmenu_selection_state()
|
||||
{
|
||||
switch (selected_index)
|
||||
{
|
||||
case START_GAME:
|
||||
state = START;
|
||||
break;
|
||||
case HOST_GAME:
|
||||
state = HOST;
|
||||
break;
|
||||
case JOIN_GAME:
|
||||
state = JOIN;
|
||||
break;
|
||||
case OPTIONS_MENU:
|
||||
prev_state = state;
|
||||
state = OPTIONS;
|
||||
break;
|
||||
case EXIT_GAME:
|
||||
running = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void handle_input_mainmenu(SDL_Event *e)
|
||||
{
|
||||
switch(e->key.keysym.sym){
|
||||
case SDLK_ESCAPE:
|
||||
running = 0;
|
||||
break;
|
||||
case SDLK_UP:
|
||||
case SDLK_w:
|
||||
if (selected_index) { selected_index--; }
|
||||
@@ -131,7 +139,8 @@ void handle_input_overworld(SDL_Event *e)
|
||||
switch(e->key.keysym.sym)
|
||||
{
|
||||
case SDLK_ESCAPE:
|
||||
running = 0;
|
||||
prev_state = state;
|
||||
state = OPTIONS;
|
||||
break;
|
||||
case SDLK_UP:
|
||||
case SDLK_w:
|
||||
@@ -170,7 +179,8 @@ void handle_input_host(SDL_Event *e)
|
||||
switch(e->key.keysym.sym)
|
||||
{
|
||||
case SDLK_ESCAPE:
|
||||
running = 0;
|
||||
PRINT_M(TELL SERVER IM NOT A HOST)
|
||||
state = TITLE;
|
||||
break;
|
||||
case SDLK_BACKSPACE:
|
||||
PRINT_M(got backspace)
|
||||
@@ -196,8 +206,17 @@ void handle_input_host(SDL_Event *e)
|
||||
strcpy(get_this_name(0), nameptr);
|
||||
break;
|
||||
case START_GAME_BUTTON:
|
||||
if(strlen(get_this_name(0)) >= 1){
|
||||
lobby_has_name = 1;
|
||||
PRINT_M(CHECK THAT NAME IS VALID!!)
|
||||
if(strlen(get_this_name(0)) >= 1 && !lobby_has_name){
|
||||
if(new_host(get_this_name(0))){
|
||||
lobby_has_name = 1;
|
||||
}
|
||||
else{
|
||||
PRINT_M(ERROR GOT NEG FOR NEW HOST)
|
||||
}
|
||||
}
|
||||
else{//were in the lobby waiting for homies
|
||||
PRINT_M(START COOP GAME)
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -221,7 +240,7 @@ void handle_input_join(SDL_Event *e)
|
||||
switch(e->key.keysym.sym)
|
||||
{
|
||||
case SDLK_ESCAPE:
|
||||
running = 0;
|
||||
state = TITLE;
|
||||
break;
|
||||
case SDLK_BACKSPACE:
|
||||
PRINT_M(got backspace)
|
||||
@@ -259,3 +278,58 @@ void handle_input_join(SDL_Event *e)
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
void options_select(int sel)
|
||||
{
|
||||
switch(sel)
|
||||
{
|
||||
case GP_OPT_SEL:
|
||||
PRINT_M(GAMEPLAY OPTIONS)
|
||||
break;
|
||||
case VID_OPT_SEL:
|
||||
PRINT_M(VIDEO OPTIONS)
|
||||
break;
|
||||
case AUD_OPT_SEL:
|
||||
PRINT_M(AUDIO OPTIONS)
|
||||
break;
|
||||
case MM_OPT_SEL:
|
||||
PRINT_M(HANDLE EXITING GRACEFULLY I.E. SAVING GAME)
|
||||
prev_state = state = TITLE;
|
||||
break;
|
||||
case EXT_OPT_SEL:
|
||||
PRINT_M(EXIT GAME)
|
||||
running = 0;
|
||||
break;
|
||||
default:
|
||||
PRINT_M(UNKNOWN OPTION PASSED)
|
||||
break;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
void handle_input_options(SDL_Event *e)
|
||||
{
|
||||
int sel = get_sel_opt();
|
||||
if(e->type == SDL_KEYUP){ return; }
|
||||
switch(e->key.keysym.sym){
|
||||
case SDLK_ESCAPE:
|
||||
PRINT_M(NEED TO GET PREV STATE)
|
||||
state = prev_state;
|
||||
break;
|
||||
case SDLK_UP:
|
||||
case SDLK_w:
|
||||
if (sel) { sel--; }
|
||||
else { sel = NUM_OPTIONS - 1; }
|
||||
break;
|
||||
case SDLK_DOWN:
|
||||
case SDLK_s:
|
||||
++sel;
|
||||
sel %= NUM_OPTIONS;
|
||||
break;
|
||||
case SDLK_RETURN:
|
||||
options_select(sel);
|
||||
break;
|
||||
}
|
||||
set_sel_opt(sel);
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user