68 lines
1.6 KiB
C
68 lines
1.6 KiB
C
/**
|
|
* 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);
|
|
} |