X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fminigames%2Fminigame%2Fsnake.qc;h=3aedeb01632db8081faf98e3308738b51dcd45e5;hb=cbca1a79315fe08c4796273a490a4d12b7d3291d;hp=4248d589a13391c0f6218d518a155f0cf5727556;hpb=4d9a40898926a8da83b788f9a862f35cdd4c8905;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/minigames/minigame/snake.qc b/qcsrc/common/minigames/minigame/snake.qc index 4248d589a..3aedeb016 100644 --- a/qcsrc/common/minigames/minigame/snake.qc +++ b/qcsrc/common/minigames/minigame/snake.qc @@ -1,3 +1,4 @@ +#include "snake.qh" REGISTER_MINIGAME(snake, "Snake"); // SNAAAAKE const float SNAKE_TURN_MOVE = 0x0100; // the snake is moving, player must control it @@ -20,7 +21,9 @@ bool autocvar_sv_minigames_snake_wrap = false; float autocvar_sv_minigames_snake_delay_initial = 0.7; float autocvar_sv_minigames_snake_delay_multiplier = 50; float autocvar_sv_minigames_snake_delay_min = 0.1; +#ifdef SVQC int autocvar_sv_minigames_snake_lives = 3; +#endif .int snake_score; @@ -94,7 +97,7 @@ void snake_new_mouse(entity minigame) { string pos = minigame_tile_buildname(i, j); if(!snake_find_piece(minigame, pos)) - RandomSelection_Add(NULL, 0, pos, 1, 1); + RandomSelection_AddString(pos, 1, 1); } entity piece = msle_spawn(minigame,"minigame_board_piece"); @@ -174,7 +177,7 @@ void minigame_setup_snake(entity minigame, int pteam) { string pos = minigame_tile_buildname(i, j); if(!snake_find_piece(minigame, pos)) - RandomSelection_Add(NULL, 0, pos, 1, 1); + RandomSelection_AddString(pos, 1, 1); } entity piece = msle_spawn(minigame,"minigame_board_piece"); @@ -673,17 +676,16 @@ void snake_hud_board(vector pos, vector mySize) // Required function, draw the game status panel void snake_hud_status(vector pos, vector mySize) { - HUD_Panel_DrawBg(1); - vector ts; - ts = minigame_drawstring_wrapped(mySize_x,pos,active_minigame.descriptor.message, + HUD_Panel_DrawBg(); + vector ts = minigame_drawstring_wrapped(mySize.x, pos, active_minigame.descriptor.message, hud_fontsize * 2, '0.25 0.47 0.72', panel_fg_alpha, DRAWFLAG_NORMAL,0.5); - ts_y += hud_fontsize_y; - pos_y += ts_y; - mySize_y -= ts_y; + ts.y += hud_fontsize.y; + pos.y += ts.y; + mySize.y -= ts.y; vector player_fontsize = hud_fontsize * 1.75; - ts_y = ( mySize_y - SNAKE_TEAMS*player_fontsize_y ) / SNAKE_TEAMS; - ts_x = mySize_x; + ts.y = player_fontsize.y + (mySize.y - SNAKE_TEAMS * player_fontsize.y) / SNAKE_TEAMS; + ts.x = mySize_x; vector mypos; entity e; @@ -691,22 +693,26 @@ void snake_hud_status(vector pos, vector mySize) { if ( e.classname == "minigame_player" ) { - mypos = pos; - mypos_y += (e.team-1) * (player_fontsize_y + ts_y); + mypos = pos + eY * (e.team - 1) * ts.y; - drawfill(mypos, ts, snake_teamcolor(e.team), 0.25, DRAWFLAG_ADDITIVE); + if (e == minigame_self) + { + const vector hl_size = '1 1 0'; + drawfill(mypos + hl_size, ts - 2 * hl_size, snake_teamcolor(e.team), 0.25 * panel_fg_alpha, DRAWFLAG_ADDITIVE); + drawborderlines(hl_size.x, mypos + hl_size, ts - 2 * hl_size, snake_teamcolor(e.team), panel_fg_alpha, DRAWFLAG_NORMAL); + } + else + drawfill(mypos, ts, snake_teamcolor(e.team), 0.25 * panel_fg_alpha, DRAWFLAG_ADDITIVE); - minigame_drawcolorcodedstring_trunc(mySize_x,mypos, - entcs_GetName(e.minigame_playerslot-1), + minigame_drawcolorcodedstring_trunc(mySize.x - hud_fontsize.x * 0.5, mypos + eX * hud_fontsize.x * 0.25, + entcs_GetName(e.minigame_playerslot - 1), player_fontsize, panel_fg_alpha, DRAWFLAG_NORMAL); - drawstring(mypos+eY*player_fontsize_y,ftos(e.snake_score),'48 48 0' * (SNAKE_TEAMS * 0.1), - '0.7 0.84 1', panel_fg_alpha, DRAWFLAG_NORMAL); - drawstring(mypos+(eY*player_fontsize_y) + (eX*player_fontsize_x),strcat("1UP: ", ftos(active_minigame.snake_lives[e.team])),'48 48 0' * (SNAKE_TEAMS * 0.1), - '1 0.44 0.54', panel_fg_alpha, DRAWFLAG_NORMAL); - - if ( e == minigame_self ) - drawborderlines(1, mypos, ts, snake_teamcolor(e.team), 1, DRAWFLAG_NORMAL); + mypos.y += player_fontsize.y; + drawstring_aspect(mypos, ftos(e.snake_score), ts - eY * player_fontsize.y - eX * ts.x * (3 / 4), + '0.7 0.84 1', panel_fg_alpha, DRAWFLAG_NORMAL); + drawstring_aspect(mypos + eX * ts.x * (1 / 4), strcat("1UP: ", ftos(active_minigame.snake_lives[e.team])), ts - eY * player_fontsize.y - eX * ts.x * (1 / 4), + '1 0.44 0.54', panel_fg_alpha, DRAWFLAG_NORMAL); } } }