Change snake's tint based on player-id.

This commit is contained in:
2025-12-16 12:43:23 +01:00
parent 9dc13e3feb
commit 167c8a3ce3
3 changed files with 29 additions and 3 deletions

View File

@@ -99,6 +99,17 @@ uint32_t floor_texture_variant(uint32_t x, uint32_t y, uint32_t seed, uint32_t n
return (wang_hash(x * 73856093u ^ y * 19349663u ^ seed)) % num_variants;
}
Color get_tint_for_player_id(uint16_t player_id) {
switch(player_id) {
case 0: {
return (Color) { 255, 135, 102, 255 };
}
default: {
return (Color) { 82, 33, 110, 255 };
}
}
}
#define SHADOW_ALPHA 64
static void state_render(Presentation_State *state) {
@@ -151,7 +162,21 @@ static void state_render(Presentation_State *state) {
switch(entity->type) {
case Entity_Type_Snake_Head: {
Color tint = (Color) { 255, 135, 102, 255 }; // TODO: SS - Get tint based on player ID.
Color tint = (Color) { 255, 255, 255, 255 };
// Set the snake's tint based on player-index.
for(uint16_t i = 0; i < sim_world->max_players; i++) {
Simulation_Player *player = &sim_world->players[i];
if(!player->active) {
continue;
}
if(player->entity_id == entity->id) {
tint = get_tint_for_player_id(i); // NOTE: SS - It's more like player-index. This needs to change if they're not sorted (but they are at the moment and I don't really plan on switching that up.)
break;
}
}
Vector2 origin = (Vector2) { GRID_CELL_SIZE/2, GRID_CELL_SIZE/2 };
Entity *e = entity;