/** * Copyright (c) 2021 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #include "player.h" void pokerPlayerInit(poker_t *poker) { uint8_t i; pokerplayer_t *player; float w, h; for(i = 0; i < POKER_PLAYER_COUNT; i++) { player = poker->players + i; assetTextureLoad(&player->bodyTexture, "characters/penny/textures/body.png"); assetTextureLoad(&player->faceTexture, "characters/penny/textures/face.png"); w = 0.6; h=((float)player->faceTexture.width)/((float)player->faceTexture.height)*w; w = w / 2; h = h / 2; quadInit(&player->bodyPrimitive, 0, -w, -h, 0, 1, w, h, 1, 0 ); quadInit(&player->facePrimitive, 0, -w, -h, 0, 1, w, h, 1, 0 ); } } uint8_t pokerPlayerGetSeatForPlayer(uint8_t player) { switch(player) { case 0x01: return POKER_SEAT_PLAYER1; case 0x02: return POKER_SEAT_PLAYER2; case 0x03: return POKER_SEAT_PLAYER3; case 0x04: return POKER_SEAT_PLAYER4; default: return POKER_SEAT_PLAYER0; } } void pokerPlayerRender(poker_t* poker, pokerplayer_t *player, uint8_t seat) { float x, z, angle; float w, h; // Determine position angle = POKER_SEAT_ANGLE(seat); x = sin(angle) * -1; z = cos(angle) * -1; shaderUsePosition(&poker->shader, x,0.34,z, 0,angle,0); // Render Body shaderUseTexture(&poker->shader, &player->bodyTexture); primitiveDraw(&player->bodyPrimitive, 0, -1); // Render Face shaderUseTexture(&poker->shader, &player->faceTexture); primitiveDraw(&player->facePrimitive, 0, -1); }