X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fevents.c;h=d261a4db45f368f1ff27c8a4f8424a5662845a4a;hb=438885e31e0cf03304f95b125c949b9c8641e6b5;hp=071796d8494bb8d0e17be730d409430fad7071e8;hpb=439b24a7e57f7af4081ef917fabe6b3cb78d902d;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index 071796d8..d261a4db 100644 --- a/src/events.c +++ b/src/events.c @@ -1146,7 +1146,7 @@ void HandleButton(int mx, int my, int button, int button_nr) case GAME_MODE_PLAYING: #ifdef DEBUG - if (button == MB_PRESSED && !motion_status && IN_GFX_SCREEN(mx, my)) + if (button == MB_PRESSED && !motion_status && IN_GFX_FIELD_PLAY(mx, my)) DumpTile(LEVELX((mx - SX) / TILEX), LEVELY((my - SY) / TILEY)); #endif break; @@ -1237,6 +1237,20 @@ static void HandleKeysSpecial(Key key) { DumpTape(&tape); } + else if (is_string_suffix(cheat_input, ":fix-tape") || + is_string_suffix(cheat_input, ":ft")) + { + /* fix single-player tapes that contain player input for more than one + player (due to a bug in 3.3.1.2 and earlier versions), which results + in playing levels with more than one player in multi-player mode, + even though the tape was originally recorded in single-player mode */ + + /* remove player input actions for all players but the first one */ + for (i = 1; i < MAX_PLAYERS; i++) + tape.player_participates[i] = FALSE; + + tape.changed = TRUE; + } else if (is_string_suffix(cheat_input, ":save-native-level") || is_string_suffix(cheat_input, ":snl")) { @@ -1695,6 +1709,7 @@ void HandleKey(Key key, int key_status) } break; +#if 0 case KSYM_s: if (!global.fps_slowdown) { @@ -1714,7 +1729,9 @@ void HandleKey(Key key, int key_status) printf("fps slowdown disabled\n"); } break; +#endif +#if 0 case KSYM_f: ScrollStepSize = TILEX / 8; printf("ScrollStepSize == %d (1/8)\n", ScrollStepSize); @@ -1734,6 +1751,7 @@ void HandleKey(Key key, int key_status) ScrollStepSize = TILEX; printf("ScrollStepSize == %d (1/1)\n", ScrollStepSize); break; +#endif case KSYM_v: printf("::: currently using game engine version %d\n",