void snake_move_head(entity minigame, entity head);
void snake_head_think()
{
+ SELFPARAM();
entity minigame = self.owner;
if(minigame.minigame_flags & SNAKE_TURN_MOVE)
minigame.snake_lost_teams |= BIT(pteam);
if(pl && minigame.snake_lives[pteam] > 0)
- minigame_setup_snake(minigame, pteam);
+ minigame_setup_snake(minigame, pteam);
}
void snake_move_head(entity minigame, entity head)
}
else
minigame.snake_lives[1] = 1;
-
+
return true;
}
case "end":
{
switch(argv(0))
{
- case "move":
- snake_move(minigame, ...(0,entity), ((...(1,int)) >= 2 ? argv(1) : string_null), ((...(1,int)) == 3 ? argv(2) : string_null));
+ case "move":
+ snake_move(minigame, ...(0,entity), ((...(1,int)) >= 2 ? argv(1) : string_null), ((...(1,int)) == 3 ? argv(2) : string_null));
return true;
}
return false;
}
}
-
+
return false;
}
minigame_hud_fitsqare(pos, mySize);
snake_boardpos = pos;
snake_boardsize = mySize;
-
+
minigame_hud_simpleboard(pos,mySize,minigame_texture("snake/board"));
vector tile_size = minigame_hud_denormalize_size('1 1 0' / SNAKE_TILE_SIZE,pos,mySize);
{
int thex = minigame_tile_letter(e.netname);
int they = minigame_tile_number(e.netname);
- entity t = snake_find_cnt(active_minigame, minigame_self.team, e.cnt - 1);
+ entity t = snake_find_cnt(active_minigame, e.team, e.cnt - 1);
int tx = minigame_tile_letter(t.netname);
int ty = minigame_tile_number(t.netname);
}
else
{
- minigame_drawpic_centered( tile_pos,
+ minigame_drawpic_centered( tile_pos,
minigame_texture(thepiece),
tile_size, tile_color, panel_fg_alpha, DRAWFLAG_NORMAL );
}
victory_text = "You win!";
if(active_minigame.snake_lives[minigame_self.team] <= 0)
victory_text = "You ran out of lives!";
-
+
vector win_pos = pos+eY*(mySize_y-winfs_y)/2;
vector win_sz;
win_sz = minigame_drawcolorcodedstring_wrapped(mySize_x,win_pos,
- sprintf("%s %s", victory_text, scores_text),
+ sprintf("%s %s", victory_text, scores_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);
-
+
minigame_drawcolorcodedstring_wrapped(mySize_x,win_pos,
- sprintf("%s %s", victory_text, scores_text),
+ sprintf("%s %s", victory_text, scores_text),
winfs, panel_fg_alpha, DRAWFLAG_NORMAL, 0.5);
}
}
vector ts;
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;
vector player_fontsize = hud_fontsize * 1.75;
- ts_y = ( mySize_y - 2*player_fontsize_y ) / SNAKE_TEAMS;
+ ts_y = ( mySize_y - SNAKE_TEAMS*player_fontsize_y ) / SNAKE_TEAMS;
ts_x = mySize_x;
vector mypos;
- vector tile_size = '48 48 0';
-
- mypos = pos;
- if ( minigame_self.team > 1 )
- mypos_y += player_fontsize_y + (ts_y * (minigame_self.team - 1));
- drawfill(mypos,eX*mySize_x+eY*player_fontsize_y,'1 1 1',0.5,DRAWFLAG_ADDITIVE);
- mypos_y += player_fontsize_y;
- drawfill(mypos,eX*mySize_x+eY*tile_size_y,'1 1 1',0.25,DRAWFLAG_ADDITIVE);
entity e;
FOREACH_MINIGAME_ENTITY(e)
if ( e.classname == "minigame_player" )
{
mypos = pos;
- if ( e.team > 1 )
- mypos_y += player_fontsize_y + (ts_y * (e.team - 1));
- minigame_drawcolorcodedstring_trunc(mySize_x,mypos,
- GetPlayerName(e.minigame_playerslot-1),
- player_fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
-
- vector tile_color = snake_teamcolor(e.team);
+ mypos_y += (e.team-1) * (player_fontsize_y + ts_y);
- mypos_y += player_fontsize_y;
- drawpic( mypos,
- minigame_texture("snake/head"),
- tile_size * 0.7, tile_color, panel_fg_alpha, DRAWFLAG_NORMAL );
+ drawfill(mypos, ts, snake_teamcolor(e.team), 0.25, DRAWFLAG_ADDITIVE);
- mypos_x += tile_size_x;
+ minigame_drawcolorcodedstring_trunc(mySize_x,mypos,
+ entcs_GetName(e.minigame_playerslot-1),
+ player_fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
- drawstring(mypos,ftos(e.snake_score),tile_size,
+ 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);
- mypos_x += tile_size_x;
-
- drawstring(mypos,strcat("1UP: ", ftos(active_minigame.snake_lives[e.team])),tile_size * 0.6,
- '0.7 0.84 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+ if ( e == minigame_self )
+ drawborderlines(1, mypos, ts, snake_teamcolor(e.team), 1, DRAWFLAG_NORMAL);
}
}
}
if(active_minigame.snake_lives[minigame_self.team] <= 0)
return _("You ran out of lives!");
-
+
if ( (snake_find_head(active_minigame, minigame_self.team)).snake_dir == '0 0 0' )
return _("Press an arrow key to begin the game");
return _("Avoid the snake's body, collect the mice!");
else
return _("Avoid the screen edges and the snake's body, collect the mice!");
-
+
return "";
}
return false;
}
-#endif
\ No newline at end of file
+#endif