From 84ac95688398d3d2bbe51bcca8189b2f02897ea2 Mon Sep 17 00:00:00 2001 From: stpohle Date: Mon, 13 Sep 2004 22:15:56 +0000 Subject: [PATCH] chat mode changed, if only one player is using the computer keep the chat always active. --- ChangeLog | 12 +++++++- include/keyb.h | 2 +- src/game.c | 7 +++-- src/keyb.c | 77 +++++++++++++++++++++++++++-------------------- src/playerinput.c | 19 +++++------- 5 files changed, 70 insertions(+), 47 deletions(-) diff --git a/ChangeLog b/ChangeLog index a31866a..62f32d3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,4 @@ -$Id: ChangeLog,v 1.79 2004/09/12 21:50:55 stpohle Exp $ +$Id: ChangeLog,v 1.80 2004/09/13 22:18:28 stpohle Exp $ * NEED TO FIX: Server starts the game soo fast that the client's ignore the gamestat for a running game. @@ -6,6 +6,14 @@ $Id: ChangeLog,v 1.79 2004/09/12 21:50:55 stpohle Exp $ * FINISH TEAM MODE. +2004-09-13 + +- changed: Chat Mode will always keep active if there is + only one player on one computer. If there are two player + we have to press F5 to activate the chatwindow. + +2004-09-12 + - fixed: Quit Game wasn't working from the in game menu - fixed: Network Version Error. There is no @@ -13,6 +21,8 @@ $Id: ChangeLog,v 1.79 2004/09/12 21:50:55 stpohle Exp $ - fixed: Single Player Menu there was no ESC key working +2004-09-11 + - fixed: Player Selection Screen (single player) ESC key wasn't working and also closing the program haven't worked. diff --git a/include/keyb.h b/include/keyb.h index 1fe2673..3c7cb4d 100644 --- a/include/keyb.h +++ b/include/keyb.h @@ -18,7 +18,7 @@ enum _bcplayerkeys { }; enum _bckeys { - BCK_help = BCPK_max * 2, + BCK_help = BCPK_max * 3, BCK_esc, BCK_fullscreen, BCK_chat, diff --git a/src/game.c b/src/game.c index fe36912..f4ea58c 100644 --- a/src/game.c +++ b/src/game.c @@ -1,4 +1,4 @@ -/* $Id: game.c,v 1.89 2004/09/12 21:49:13 stpohle Exp $ +/* $Id: game.c,v 1.90 2004/09/13 22:15:57 stpohle Exp $ game.c - procedures for the game. */ #include @@ -185,7 +185,7 @@ void game_keys_loop () { */ if (keyb_gamekeys.state[BCK_esc] && !keyb_gamekeys.old[BCK_esc]) { - if (chat.active && (bman.state == GS_ready || bman.state == GS_running)) { + if (chat.active && (bman.state == GS_ready || bman.state == GS_running) && IS_LPLAYER2) { chat.active = 0; d_printf ("Chatmode Disabled\n"); } @@ -240,6 +240,9 @@ game_loop () game_keys_loop (); chat_loop (&event); + if ((!IS_LPLAYER2) && (!chat.active)) + chat_setactive (1, 1); + restore_players_screen (); player_check (bman.p_nr); diff --git a/src/keyb.c b/src/keyb.c index d1c6c0f..768079f 100644 --- a/src/keyb.c +++ b/src/keyb.c @@ -1,4 +1,4 @@ -/* $Id: keyb.c,v 1.4 2004/05/20 16:55:30 stpohle Exp $ +/* $Id: keyb.c,v 1.5 2004/09/13 22:15:57 stpohle Exp $ * keyb.c */ @@ -43,22 +43,31 @@ const struct _key_codes key_codetab [] = { * set the default keyboard settings */ void keyb_config_reset () { - /* player 1 */ + + /* One Player on One Screen - player one */ keyb_gamekeys.keycode[BCPK_up] = SDLK_UP; keyb_gamekeys.keycode[BCPK_down] = SDLK_DOWN; keyb_gamekeys.keycode[BCPK_left] = SDLK_LEFT; keyb_gamekeys.keycode[BCPK_right] = SDLK_RIGHT; - keyb_gamekeys.keycode[BCPK_drop] = SDLK_RCTRL; - keyb_gamekeys.keycode[BCPK_special] = SDLK_RSHIFT; - - /* player 2 */ - keyb_gamekeys.keycode[BCPK_max + BCPK_up] = 'W'; - keyb_gamekeys.keycode[BCPK_max + BCPK_down] = 'S'; - keyb_gamekeys.keycode[BCPK_max + BCPK_left] = 'A'; - keyb_gamekeys.keycode[BCPK_max + BCPK_right] = 'D'; - keyb_gamekeys.keycode[BCPK_max + BCPK_drop] = SDLK_LCTRL; - keyb_gamekeys.keycode[BCPK_max + BCPK_special] = SDLK_LSHIFT; + keyb_gamekeys.keycode[BCPK_drop] = SDLK_LCTRL; + keyb_gamekeys.keycode[BCPK_special] = SDLK_LSHIFT; + + /* Two Players on One Screen - player one */ + keyb_gamekeys.keycode[BCPK_max + BCPK_up] = SDLK_UP; + keyb_gamekeys.keycode[BCPK_max + BCPK_down] = SDLK_DOWN; + keyb_gamekeys.keycode[BCPK_max + BCPK_left] = SDLK_LEFT; + keyb_gamekeys.keycode[BCPK_max + BCPK_right] = SDLK_RIGHT; + keyb_gamekeys.keycode[BCPK_max + BCPK_drop] = SDLK_RCTRL; + keyb_gamekeys.keycode[BCPK_max + BCPK_special] = SDLK_RSHIFT; + /* Two Player on One Screen - player two */ + keyb_gamekeys.keycode[BCPK_max + BCPK_max + BCPK_up] = 'W'; + keyb_gamekeys.keycode[BCPK_max + BCPK_max + BCPK_down] = 'S'; + keyb_gamekeys.keycode[BCPK_max + BCPK_max + BCPK_left] = 'A'; + keyb_gamekeys.keycode[BCPK_max + BCPK_max + BCPK_right] = 'D'; + keyb_gamekeys.keycode[BCPK_max + BCPK_max + BCPK_drop] = SDLK_LCTRL; + keyb_gamekeys.keycode[BCPK_max + BCPK_max + BCPK_special] = SDLK_LSHIFT; + /* game keys */ keyb_gamekeys.keycode[BCK_help] = SDLK_F1; keyb_gamekeys.keycode[BCK_playermenu] = SDLK_F2; @@ -111,9 +120,7 @@ void keyb_config_createkeymenu (_menu *menu, int key, int x, int y, int menu_nr) char keyname [32]; char keytext [50]; - if (key >= BCPK_max && key < BCPK_max * 2) - key_id = key - BCPK_max; - else key_id = key; + for (key_id = key; key_id >= BCPK_max && key_id < BCPK_max * 3; key_id = key_id - BCPK_max); switch (key_id) { case (BCPK_up): @@ -156,7 +163,7 @@ void keyb_config_createkeymenu (_menu *menu, int key, int x, int y, int menu_nr) menu_create_label (menu, keyname, x, y + 2, 0, COLOR_brown); keyb_code2text (keyb_gamekeys.keycode[key], keytext); - menu_create_button (menu, keytext, x + 50, y, 100, menu_nr + key); + menu_create_button (menu, keytext, x + 70, y, 100, menu_nr + key); } @@ -227,21 +234,27 @@ void keyb_config () { do { menu = menu_new ("Keyboard Config", 420, 400); - menu_create_label (menu, "Player 1", 10, 50, 2, COLOR_brown); - keyb_config_createkeymenu (menu, BCPK_up, 25, 90, 10); - keyb_config_createkeymenu (menu, BCPK_down, 25, 120, 10); - keyb_config_createkeymenu (menu, BCPK_left, 25, 150, 10); - keyb_config_createkeymenu (menu, BCPK_right, 25, 180, 10); - keyb_config_createkeymenu (menu, BCPK_drop, 25, 210, 10); - keyb_config_createkeymenu (menu, BCPK_special, 25, 240, 10); + + + menu_create_label (menu, "One Screen Keys", -1, 50, 1, COLOR_yellow); + keyb_config_createkeymenu (menu, BCPK_drop, 25, 75, 10); + keyb_config_createkeymenu (menu, BCPK_special, 225, 75, 10); + + menu_create_label (menu, "Player 1", 20, 105, 1, COLOR_yellow); + keyb_config_createkeymenu (menu, BCPK_max + BCPK_up, 25, 130, 10); + keyb_config_createkeymenu (menu, BCPK_max + BCPK_down, 25, 160, 10); + keyb_config_createkeymenu (menu, BCPK_max + BCPK_left, 25, 190, 10); + keyb_config_createkeymenu (menu, BCPK_max + BCPK_right, 25, 220, 10); + keyb_config_createkeymenu (menu, BCPK_max + BCPK_drop, 25, 250, 10); + keyb_config_createkeymenu (menu, BCPK_max + BCPK_special, 25, 280, 10); - menu_create_label (menu, "Player 2", 200, 50, 2, COLOR_brown); - keyb_config_createkeymenu (menu, BCPK_max + BCPK_up, 225, 90, 10); - keyb_config_createkeymenu (menu, BCPK_max + BCPK_down, 225, 120, 10); - keyb_config_createkeymenu (menu, BCPK_max + BCPK_left, 225, 150, 10); - keyb_config_createkeymenu (menu, BCPK_max + BCPK_right, 225, 180, 10); - keyb_config_createkeymenu (menu, BCPK_max + BCPK_drop, 225, 210, 10); - keyb_config_createkeymenu (menu, BCPK_max + BCPK_special, 225, 240, 10); + menu_create_label (menu, "Player 2", 210, 105, 1, COLOR_yellow); + keyb_config_createkeymenu (menu, BCPK_max + BCPK_max + BCPK_up, 225, 130, 10); + keyb_config_createkeymenu (menu, BCPK_max + BCPK_max + BCPK_down, 225, 160, 10); + keyb_config_createkeymenu (menu, BCPK_max + BCPK_max + BCPK_left, 225, 190, 10); + keyb_config_createkeymenu (menu, BCPK_max + BCPK_max + BCPK_right, 225, 220, 10); + keyb_config_createkeymenu (menu, BCPK_max + BCPK_max + BCPK_drop, 225, 250, 10); + keyb_config_createkeymenu (menu, BCPK_max + BCPK_max + BCPK_special, 225, 280, 10); /*menu_create_label ("Other Keys", -1, 270, 2, COLOR_brown); keyb_config_createkeymenu (BCK_help, 25, 300, 10); @@ -251,8 +264,8 @@ void keyb_config () { keyb_config_createkeymenu (BCK_playermenu, 225, 330, 10); keyb_config_createkeymenu (BCK_pause, 225, 360, 10); */ - menu_create_button (menu, "Default", 50, 280, 150, 2); - menu_create_button (menu, "OK", 250, 280, 150, 1); + menu_create_button (menu, "Default", 50, 330, 150, 2); + menu_create_button (menu, "OK", 250, 330, 150, 1); menu_focus_id (menu, menuselect); menuselect = menu_loop (menu); menu_delete (menu); diff --git a/src/playerinput.c b/src/playerinput.c index c2e38ba..965980c 100644 --- a/src/playerinput.c +++ b/src/playerinput.c @@ -1,4 +1,4 @@ -/* $Id: playerinput.c,v 1.2 2004/04/03 14:48:43 stpohle Exp $ +/* $Id: playerinput.c,v 1.3 2004/09/13 22:15:57 stpohle Exp $ * playerinput * * the playerinput system will only set some values and flags of the player @@ -25,15 +25,13 @@ void playerinput_loop (int pl_nr) { - if (!chat.active) + if ((!IS_LPLAYER2 )|| (!chat.active)) playerinput_keyb_loop (pl_nr); }; /* * keyboard handling read keyboard and set playervariables - * if only one player is used player one can even use the keys - * of player two. */ void playerinput_keyb_loop (int pl_nr) @@ -43,18 +41,17 @@ playerinput_keyb_loop (int pl_nr) if (bman.state != GS_running) return; - /* select the current playerkeys (pk_offset) */ - if (pl_nr == bman.p_nr) + if (!IS_LPLAYER2) /* One Player per Screen */ pk_offset = 0; - else if (pl_nr == bman.p2_nr) + else if (pl_nr == bman.p_nr) /* Two Player per Screen - Player 1 */ pk_offset = BCPK_max; - else - return; // not a local player + else if (pl_nr == bman.p2_nr) /* Two Player per Screen - Player 2 */ + pk_offset = 2*BCPK_max; + else /* not a local player */ + return; /* read the keys and set playervariables */ playerinput_keyb_read (pk_offset, pl_nr); - if (!IS_LPLAYER2 && pk_offset == 0) - playerinput_keyb_read (BCPK_max, pl_nr); };