X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fminigames%2Fminigame%2Fpp.qc;h=4a445fa45c3a356f93d54e1367f84f1facd279cd;hb=3e6e644488b54b638078fb88b88c643e103ac8e1;hp=e8aed878aab9c31ce663bd453747d996e1a191a2;hpb=be37ea91fb3bbd1a6fa4f0b70b32d1ea95343ad4;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/minigames/minigame/pp.qc b/qcsrc/common/minigames/minigame/pp.qc index e8aed878a..4a445fa45 100644 --- a/qcsrc/common/minigames/minigame/pp.qc +++ b/qcsrc/common/minigames/minigame/pp.qc @@ -125,7 +125,7 @@ void pp_move(entity minigame, entity player, string pos ) delete(existing); } - entity piece = msle_spawn(minigame,"minigame_board_piece"); + entity piece = msle_spawn(minigame,new(minigame_board_piece)); piece.cnt = 1; piece.team = player.team; // temporary piece.netname = strzone(pos); @@ -157,7 +157,7 @@ void pp_setup_pieces(entity minigame) if(t1_true || t2_true) { - entity piece = msle_spawn(minigame,"minigame_board_piece"); + entity piece = msle_spawn(minigame,new(minigame_board_piece)); piece.team = ((t1_true) ? 1 : 2); piece.netname = strzone(minigame_tile_buildname(i,t)); minigame_server_sendflags(piece,MINIG_SF_ALL); @@ -495,13 +495,18 @@ int pp_client_event(entity minigame, string event, ...) return false; } case "key_pressed": + case "key_released": { - if((minigame.minigame_flags & PP_TURN_TEAM) == minigame_self.team) + bool event_blocked = ((event == "key_released") + || ((minigame.minigame_flags & PP_TURN_TEAM) != minigame_self.team)); + if (!(minigame.minigame_flags & PP_TURN_WIN) && !(minigame.minigame_flags & PP_TURN_DRAW)) { switch ( ...(0,int) ) { case K_RIGHTARROW: case K_KP_RIGHTARROW: + if (event_blocked) + return true; if ( ! pp_curr_pos ) pp_set_curr_pos("a3"); else @@ -509,6 +514,8 @@ int pp_client_event(entity minigame, string event, ...) return true; case K_LEFTARROW: case K_KP_LEFTARROW: + if (event_blocked) + return true; if ( ! pp_curr_pos ) pp_set_curr_pos("c3"); else @@ -516,6 +523,8 @@ int pp_client_event(entity minigame, string event, ...) return true; case K_UPARROW: case K_KP_UPARROW: + if (event_blocked) + return true; if ( ! pp_curr_pos ) pp_set_curr_pos("a1"); else @@ -523,6 +532,8 @@ int pp_client_event(entity minigame, string event, ...) return true; case K_DOWNARROW: case K_KP_DOWNARROW: + if (event_blocked) + return true; if ( ! pp_curr_pos ) pp_set_curr_pos("a3"); else @@ -531,6 +542,8 @@ int pp_client_event(entity minigame, string event, ...) case K_ENTER: case K_KP_ENTER: case K_SPACE: + if (event_blocked) + return true; pp_make_move(minigame); return true; } @@ -542,6 +555,7 @@ int pp_client_event(entity minigame, string event, ...) { if(...(0,int) == K_MOUSE1) { + pp_client_event(minigame, "mouse_moved"); pp_make_move(minigame); return true; }