X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fevents.c;h=b54623d4e030fbdff367497aad6f1788bbeb3df4;hb=c74a890afba46c41f6ba6ef691bc89da0dd0135c;hp=d7d023e72c2343c953cbad089cf8049e3cb3b050;hpb=ee749a764df3dfa944c1f9de740ccbeb1cfdef40;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index d7d023e7..b54623d4 100644 --- a/src/events.c +++ b/src/events.c @@ -171,7 +171,9 @@ void EventLoop(void) has its own synchronization and is CPU friendly, too */ if (game_status == GAME_MODE_PLAYING) + { HandleGameActions(); + } else { SyncDisplay(); @@ -435,6 +437,7 @@ void HandleButton(int mx, int my, int button) break; case GAME_MODE_EDITOR: + HandleLevelEditorIdle(); break; case GAME_MODE_INFO: @@ -543,10 +546,7 @@ static void HandleKeysSpecial(Key key) { #ifdef DEBUG if (is_string_suffix(cheat_input, ".q")) - for (i = 0; i < MAX_INVENTORY_SIZE; i++) - if (local_player->inventory_size < MAX_INVENTORY_SIZE) - local_player->inventory_element[local_player->inventory_size++] = - EL_DYNAMITE; + DEBUG_SetMaximumDynamite(); #endif } else if (game_status == GAME_MODE_EDITOR) @@ -565,7 +565,6 @@ static void HandleKeysSpecial(Key key) void HandleKey(Key key, int key_status) { - int joy = 0; boolean anyTextGadgetActiveOrJustFinished = anyTextGadgetActive(); static struct SetupKeyboardInfo custom_key; static struct @@ -582,6 +581,8 @@ void HandleKey(Key key, int key_status) { &custom_key.snap, DEFAULT_KEY_SNAP, JOY_BUTTON_1 }, { &custom_key.drop, DEFAULT_KEY_DROP, JOY_BUTTON_2 } }; + int joy = 0; + int i; if (game_status == GAME_MODE_PLAYING) { @@ -592,7 +593,6 @@ void HandleKey(Key key, int key_status) for (pnr = 0; pnr < MAX_PLAYERS; pnr++) { - int i; byte key_action = 0; if (setup.input[pnr].use_joystick) @@ -648,8 +648,6 @@ void HandleKey(Key key, int key_status) } else { - int i; - for (i = 0; i < 6; i++) if (key == key_info[i].key_default) joy |= key_info[i].action; @@ -681,7 +679,8 @@ void HandleKey(Key key, int key_status) return; } - if (game_status == GAME_MODE_MAIN && key == setup.shortcut.toggle_pause) + if (game_status == GAME_MODE_MAIN && + (key == setup.shortcut.toggle_pause || key == KSYM_space)) { StartGameActions(options.network, setup.autorecord, NEW_RANDOMIZE); @@ -698,6 +697,30 @@ void HandleKey(Key key, int key_status) TapeTogglePause(TAPE_TOGGLE_MANUAL); } + if (game_status == GAME_MODE_PLAYING) + { + int centered_player_nr_next = -999; + + if (key == setup.shortcut.focus_player_all) + centered_player_nr_next = -1; + else + for (i = 0; i < MAX_PLAYERS; i++) + if (key == setup.shortcut.focus_player[i]) + centered_player_nr_next = i; + + if (centered_player_nr_next != -999) + { + game.centered_player_nr_next = centered_player_nr_next; + game.set_centered_player = TRUE; + + if (tape.recording) + { + tape.centered_player_nr_next = game.centered_player_nr_next; + tape.set_centered_player = TRUE; + } + } + } + HandleKeysSpecial(key); if (HandleGadgetsKeyInput(key)) @@ -718,7 +741,12 @@ void HandleKey(Key key, int key_status) case GAME_MODE_INFO: switch(key) { +#if 1 + case KSYM_space: +#else + /* !!! only use "space" key to start game from main menu !!! */ case KSYM_space: +#endif case KSYM_Return: if (game_status == GAME_MODE_MAIN) HandleMainMenu(0,0, 0,0, MB_MENU_CHOICE); @@ -757,6 +785,12 @@ void HandleKey(Key key, int key_status) HandleInfoScreen(0,0, 0, +1 * SCROLL_PAGE, MB_MENU_MARK); break; +#ifdef DEBUG + case KSYM_0: + GameFrameDelay = (GameFrameDelay == 500 ? GAME_FRAME_DELAY : 500); + break; +#endif + default: break; } @@ -800,6 +834,7 @@ void HandleKey(Key key, int key_status) #ifdef DEBUG case KSYM_0: +#if 0 case KSYM_1: case KSYM_2: case KSYM_3: @@ -809,6 +844,7 @@ void HandleKey(Key key, int key_status) case KSYM_7: case KSYM_8: case KSYM_9: +#endif if (key == KSYM_0) { if (GameFrameDelay == 500)