#undef FIELD
#undef MSLE
+ void minigame_show_allspecs(vector boardpos, vector boardsize)
+ {
+ string allspecs = "";
+ float allspecs_width = 0;
+ float max_allspecs_width = boardsize.x;
+ float max_current_spec_width = hud_fontsize.x * 5;
+ int allspecs_lines = 2;
+
+ entity e;
+ FOREACH_MINIGAME_ENTITY(e)
+ {
+ if (allspecs_width >= 0 && e.classname == "minigame_player" && e.team == C4_SPECTATOR_TEAM)
+ {
+ string current_spec = ColorTranslateRGB(entcs_GetName(e.minigame_playerslot - 1));
+ current_spec = textShortenToWidth(current_spec, max_current_spec_width, hud_fontsize, stringwidth_colors);
+ if (allspecs != "")
+ current_spec = strcat(", ", current_spec);
+ else
+ current_spec = current_spec;
+
+ allspecs_width = stringwidth(allspecs, true, hud_fontsize);
+
+ float max_width = max_allspecs_width * allspecs_lines - max_current_spec_width;
+ if (allspecs_width + stringwidth(current_spec, true, hud_fontsize) < max_width)
+ allspecs = strcat(allspecs, current_spec);
+ else
+ {
+ // current_spec doesn't fit in the list
+ allspecs = strcat(allspecs, ", ...");
+ allspecs_width = -1; // skip remaining spectators
+ }
+ }
+ }
+
+ if (allspecs != "")
+ {
+ vector pos = boardpos;
+ pos.y -= panel_bg_border + hud_fontsize.y * (1.25 + allspecs_lines + 0.5);
+ minigame_drawstring_wrapped(max_allspecs_width, pos, _("Spectators:"), hud_fontsize * 1.25, '0.85 0.47 0.42', panel_fg_alpha, DRAWFLAG_NORMAL, 0);
+
+ pos.y += hud_fontsize.y * 1.25;
+ minigame_drawcolorcodedstring_wrapped(max_allspecs_width, pos, allspecs, hud_fontsize, panel_fg_alpha, DRAWFLAG_NORMAL, 0);
+ }
+ }
+
string minigame_getWrappedLine(float w, vector theFontSize, textLengthUpToWidth_widthFunction_t tw)
{
string s = getWrappedLine_remaining;
take_until = strlen(s);
int skip = 0;
- for ( int i = 0; i < take_until; i++ )
+ for ( int i = 0; i < take_until; ++i )
if ( substring(s,i,1) == "\n" )
{
take_until = i;
string cmd;
cmd = "cmd minigame ";
float i;
- for ( i = 0; i < cmdargc; i++ )
+ for ( i = 0; i < cmdargc; ++i )
cmd = strcat(cmd,...(i,string));
localcmd(strcat(cmd,"\n"));
}
win_sz = minigame_drawcolorcodedstring_wrapped(mySize_x,win_pos,
victory_text, winfs, 0, DRAWFLAG_NORMAL, 0.5);
- drawfill(win_pos-eY*hud_fontsize_y,win_sz+2*eY*hud_fontsize_y,'0.3 0.3 1',0.8,DRAWFLAG_ADDITIVE);
+ drawfill(win_pos-eY*hud_fontsize_y,win_sz+2*eY*hud_fontsize_y,'0.3 0.3 1',0.8*panel_fg_alpha,DRAWFLAG_ADDITIVE);
minigame_drawcolorcodedstring_wrapped(mySize_x,win_pos,
victory_text, winfs, panel_fg_alpha, DRAWFLAG_NORMAL, 0.5);
}
+
+ minigame_show_allspecs(bd_boardpos, bd_boardsize);
}
if(minigame_self.team != BD_SPECTATOR_TEAM)
{
mypos = pos;
- drawfill(mypos,eX*mySize_x+eY*player_fontsize_y,'1 1 1',0.5,DRAWFLAG_ADDITIVE);
+ drawfill(mypos,eX*mySize_x+eY*player_fontsize_y,'1 1 1',0.5*panel_fg_alpha,DRAWFLAG_ADDITIVE);
mypos_y += player_fontsize_y;
- drawfill(mypos,eX*mySize_x+eY*tile_size_y,'1 1 1',0.25,DRAWFLAG_ADDITIVE);
+ drawfill(mypos,eX*mySize_x+eY*tile_size_y,'1 1 1',0.25*panel_fg_alpha,DRAWFLAG_ADDITIVE);
}
entity e;
sprintf(_("%s^7 won the game!"), pname),
winfs, 0, DRAWFLAG_NORMAL, 0.5);
- drawfill(win_pos-eY*hud_fontsize_y,win_sz+2*eY*hud_fontsize_y,'1 1 1',0.5,DRAWFLAG_ADDITIVE);
+ drawfill(win_pos-eY*hud_fontsize_y,win_sz+2*eY*hud_fontsize_y,'1 1 1',0.5*panel_fg_alpha,DRAWFLAG_ADDITIVE);
minigame_drawcolorcodedstring_wrapped(mySize_x,win_pos,
sprintf(_("%s^7 won the game!"), pname),
winfs, panel_fg_alpha, DRAWFLAG_NORMAL, 0.5);
}
+
+ minigame_show_allspecs(c4_boardpos, c4_boardsize);
}
mypos = pos;
if ( (active_minigame.minigame_flags&C4_TURN_TEAM) == 2 )
mypos_y += player_fontsize_y + ts_y;
- drawfill(mypos,eX*mySize_x+eY*player_fontsize_y,'1 1 1',0.5,DRAWFLAG_ADDITIVE);
+ drawfill(mypos,eX*mySize_x+eY*player_fontsize_y,'1 1 1',0.5*panel_fg_alpha,DRAWFLAG_ADDITIVE);
mypos_y += player_fontsize_y;
- drawfill(mypos,eX*mySize_x+eY*tile_size_y,'1 1 1',0.25,DRAWFLAG_ADDITIVE);
+ drawfill(mypos,eX*mySize_x+eY*tile_size_y,'1 1 1',0.25*panel_fg_alpha,DRAWFLAG_ADDITIVE);
}
entity e;
- string allspecs = "";
FOREACH_MINIGAME_ENTITY(e)
{
if ( e.classname == "minigame_player" && e.team != C4_SPECTATOR_TEAM )
mypos_x += tile_size_x;
}
-
- if (e.classname == "minigame_player" && e.team == C4_SPECTATOR_TEAM)
- {
- string current_spec = "";
-
- string cmpctString = entcs_GetName(e.minigame_playerslot - 1);
- if (strlennocol(cmpctString) > 8)
- {
- int new_length = textLengthUpToLength(cmpctString, 8, strlennocol);
- cmpctString = strcat(substring(cmpctString, 0, new_length), "..");
- }
- if (strlen(allspecs) > 0)
- current_spec = strcat(",", cmpctString);
- else
- current_spec = cmpctString;
- if (strlen(allspecs) < 90)
- allspecs = strcat(allspecs, current_spec);
- }
- }
- if (strlen(allspecs) > 0)
- {
- pos_y = pos_y * 0.3;
- pos_x = pos_x * 0.41;
-
- ts = minigame_drawstring_wrapped(mySize_x * 1.7, pos, "Spectators: ", '14 14 0', '0.85 0.47 0.42', panel_fg_alpha, DRAWFLAG_NORMAL, 0);
- pos_y += 14;
- ts = minigame_drawcolorcodedstring_wrapped(mySize_x * 1.7, pos, allspecs, hud_fontsize, panel_fg_alpha, DRAWFLAG_NORMAL, 0);
}
}
{
int letter = offset;
int number = offset;
- for ( int i = 0; i < 3; i++ )
+ for ( int i = 0; i < 3; ++i )
{
number = offset;
- for ( int j = 0; j < 3; j++ )
+ for ( int j = 0; j < 3; ++j )
{
if ( i != 1 || j != 1 )
nmm_spawn_tile(strzone(minigame_tile_buildname(letter,number)),minig, skip+1);
bool nmm_in_mill_string(entity tile, string s)
{
int argc = tokenize(s);
- for ( int i = 0; i < argc; i++ )
+ for ( int i = 0; i < argc; ++i )
{
entity e = nmm_find_tile(tile.owner,argv(i));
if ( !e || !e.nmm_tile_piece || e.nmm_tile_piece.team != tile.nmm_tile_piece.team )
minigame.minigame_flags = NMM_TURN_PLACE|NMM_TURN_TEAM1;
nmm_init_tiles(minigame);
entity e;
- for ( int i = 0; i < 7; i++ )
+ for ( int i = 0; i < 7; ++i )
{
e = msle_spawn(minigame,new(minigame_board_piece));
e.team = 1;
sprintf(_("%s^7 won the game!"), pname),
winfs, 0, DRAWFLAG_NORMAL, 0.5);
- drawfill(win_pos-eY*hud_fontsize_y,win_sz+2*eY*hud_fontsize_y,'1 1 1',0.5,DRAWFLAG_ADDITIVE);
+ drawfill(win_pos-eY*hud_fontsize_y,win_sz+2*eY*hud_fontsize_y,'1 1 1',0.5*panel_fg_alpha,DRAWFLAG_ADDITIVE);
minigame_drawcolorcodedstring_wrapped(mySize_x,win_pos,
sprintf(_("%s^7 won the game!"), pname),
winfs, panel_fg_alpha, DRAWFLAG_NORMAL, 0.5);
}
+
+ minigame_show_allspecs(nmm_boardpos, nmm_boardsize);
}
// Required function, draw the game status panel
mypos = pos;
if ( (active_minigame.minigame_flags&NMM_TURN_TEAM) == 2 )
mypos_y += player_fontsize_y + ts_y;
- drawfill(mypos,eX*mySize_x+eY*player_fontsize_y,'1 1 1',0.5,DRAWFLAG_ADDITIVE);
+ drawfill(mypos,eX*mySize_x+eY*player_fontsize_y,'1 1 1',0.5*panel_fg_alpha,DRAWFLAG_ADDITIVE);
mypos_y += player_fontsize_y;
- drawfill(mypos,eX*mySize_x+eY*piece_sz_y,'1 1 1',0.25,DRAWFLAG_ADDITIVE);
+ drawfill(mypos,eX*mySize_x+eY*piece_sz_y,'1 1 1',0.25*panel_fg_alpha,DRAWFLAG_ADDITIVE);
}
FOREACH_MINIGAME_ENTITY(e)
this.SendFlags |= MINIG_SF_UPDATE;
int i;
- for ( i = 1; i <= PONG_MAX_PLAYERS; i++ )
+ for ( i = 1; i <= PONG_MAX_PLAYERS; ++i )
if ( pong_paddle_hit(this, i) )
{
pong_paddle_bounce(this,i);
entity player = ...(0,entity);
int i;
- for ( i = 0; i < PONG_MAX_PLAYERS; i++ )
+ for ( i = 0; i < PONG_MAX_PLAYERS; ++i )
{
if ( minigame.pong_paddles[i] == NULL )
{
entity paddle;
entity ai;
int i;
- for ( i = 0; i < PONG_MAX_PLAYERS; i++ )
+ for ( i = 0; i < PONG_MAX_PLAYERS; ++i )
{
paddle = minigame.pong_paddles[i];
if ( paddle != NULL && paddle.realowner == player )
minigame.SendFlags |= MINIG_SF_UPDATE;
entity ball;
- for ( int j = 0; j < autocvar_sv_minigames_pong_ball_number; j++ )
+ for ( int j = 0; j < autocvar_sv_minigames_pong_ball_number; ++j )
{
ball = msle_spawn(minigame,new(pong_ball));
ball.pong_length = autocvar_sv_minigames_pong_ball_radius;
// potentially compiler bug
int j;
if ( minigame.minigame_flags & PONG_STATUS_WAIT )
- for ( j = 0; j < PONG_MAX_PLAYERS; j++ )
- //for ( int j = 0; j < PONG_MAX_PLAYERS; j++ )
+ for ( j = 0; j < PONG_MAX_PLAYERS; ++j )
+ //for ( int j = 0; j < PONG_MAX_PLAYERS; ++j )
{
if ( minigame.pong_paddles[j] == NULL )
{
if ( minigame.minigame_flags & PONG_STATUS_WAIT )
{
entity paddle;
- for ( int j = PONG_MAX_PLAYERS-1; j >= 0; j-- )
+ for ( int j = PONG_MAX_PLAYERS-1; j >= 0; --j )
{
paddle = minigame.pong_paddles[j];
if ( paddle != NULL &&
}
}
+
+ minigame_show_allspecs(pos, mySize);
}
// Required function, draw the game status panel
mypos = pos;
mypos_y += (e.team-1) * (player_fontsize_y + ts_y);
- drawfill(mypos, ts, pong_team_to_color(e.team), 0.25, DRAWFLAG_ADDITIVE);
+ drawfill(mypos, ts, pong_team_to_color(e.team), 0.25 * panel_fg_alpha, DRAWFLAG_ADDITIVE);
minigame_drawcolorcodedstring_trunc(mySize_x,mypos,
(e.minigame_playerslot ? entcs_GetName(e.minigame_playerslot-1) : _("AI")),
sprintf(_("%s^7 won the game!"), pname),
winfs, 0, DRAWFLAG_NORMAL, 0.5);
- drawfill(win_pos-eY*hud_fontsize_y,win_sz+2*eY*hud_fontsize_y,'1 1 1',0.5,DRAWFLAG_ADDITIVE);
+ drawfill(win_pos-eY*hud_fontsize_y,win_sz+2*eY*hud_fontsize_y,'1 1 1',0.5*panel_fg_alpha,DRAWFLAG_ADDITIVE);
minigame_drawcolorcodedstring_wrapped(mySize_x,win_pos,
sprintf(_("%s^7 won the game!"), pname),
winfs, panel_fg_alpha, DRAWFLAG_NORMAL, 0.5);
}
+
+ minigame_show_allspecs(pp_boardpos, pp_boardsize);
}
mypos = pos;
if ( (active_minigame.minigame_flags&PP_TURN_TEAM) == 2 )
mypos_y += player_fontsize_y + ts_y;
- drawfill(mypos,eX*mySize_x+eY*player_fontsize_y,'1 1 1',0.5,DRAWFLAG_ADDITIVE);
+ drawfill(mypos,eX*mySize_x+eY*player_fontsize_y,'1 1 1',0.5*panel_fg_alpha,DRAWFLAG_ADDITIVE);
mypos_y += player_fontsize_y;
- drawfill(mypos,eX*mySize_x+eY*tile_size_y,'1 1 1',0.25,DRAWFLAG_ADDITIVE);
+ drawfill(mypos,eX*mySize_x+eY*tile_size_y,'1 1 1',0.25*panel_fg_alpha,DRAWFLAG_ADDITIVE);
}
entity e;
strcat(_("Game over!"), " ", remaining_text),
winfs, 0, DRAWFLAG_NORMAL, 0.5);
- drawfill(win_pos-eY*hud_fontsize_y,win_sz+2*eY*hud_fontsize_y,'1 1 1',0.5,DRAWFLAG_ADDITIVE);
+ drawfill(win_pos-eY*hud_fontsize_y,win_sz+2*eY*hud_fontsize_y,'1 1 1',0.5*panel_fg_alpha,DRAWFLAG_ADDITIVE);
minigame_drawcolorcodedstring_wrapped(mySize_x,win_pos,
strcat(_("Game over!"), " ", remaining_text),
winfs, panel_fg_alpha, DRAWFLAG_NORMAL, 0.5);
}
+
+ minigame_show_allspecs(ps_boardpos, ps_boardsize);
}
if(minigame_self.team != PS_SPECTATOR_TEAM)
{
mypos = pos;
- drawfill(mypos,eX*mySize_x+eY*player_fontsize_y,'1 1 1',0.5,DRAWFLAG_ADDITIVE);
+ drawfill(mypos,eX*mySize_x+eY*player_fontsize_y,'1 1 1',0.5*panel_fg_alpha,DRAWFLAG_ADDITIVE);
mypos_y += player_fontsize_y;
- drawfill(mypos,eX*mySize_x+eY*tile_size_y,'1 1 1',0.25,DRAWFLAG_ADDITIVE);
+ drawfill(mypos,eX*mySize_x+eY*tile_size_y,'1 1 1',0.25*panel_fg_alpha,DRAWFLAG_ADDITIVE);
}
int remaining = 0;