Dawn/temp/render/player.c

71 lines
1.7 KiB
C

/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#include "player.h"
void holdemRenderPlayerInit(poker_t *poker) {
GAME_STATE.kagamiTexture = assetTextureLoad("kagami.png");
GAME_STATE.kagamiTileset = tilesetCreate(3, 2,
GAME_STATE.kagamiTexture->width,
GAME_STATE.kagamiTexture->height,
0, 0, 0, 0
);
GAME_STATE.kagamiQuad = quadCreate(0, 0, 0, 0, 0, 1, 1, 1, 1);
}
uint8_t holdemRenderPlayerGetSeatForPlayer(uint8_t player) {
switch(player) {
case 0x01:
return HOLDEM_GAME_SEAT_PLAYER1;
case 0x02:
return HOLDEM_GAME_SEAT_PLAYER2;
case 0x03:
return HOLDEM_GAME_SEAT_PLAYER3;
case 0x04:
return HOLDEM_GAME_SEAT_PLAYER4;
default:
return HOLDEM_GAME_SEAT_PLAYER0;
}
}
void holdemRenderPlayer(uint8_t seat) {
float x, z, angle;
// Determine position
angle = HOLDEM_GAME_SEAT_ANGLE(seat);
x = sin(angle) * -1;
z = cos(angle) * -1;
// Determine size
float w, h;
w = 0.6, h = (
(float)GAME_STATE.kagamiTileset->divY /
(float)GAME_STATE.kagamiTileset->divX
) * w;
// Animation
int i = (int32_t)(TIME_STATE.current*10)%GAME_STATE.kagamiTileset->count;
quadBuffer(GAME_STATE.kagamiQuad, 0,
-w/2, -h/2,
GAME_STATE.kagamiTileset->divisions[i].x0,
GAME_STATE.kagamiTileset->divisions[i].y1,
w/2, h/2,
GAME_STATE.kagamiTileset->divisions[i].x1,
GAME_STATE.kagamiTileset->divisions[i].y0,
0, 0
);
// Render
shaderUseTexture(GAME_STATE.shaderWorld, GAME_STATE.kagamiTexture);
shaderUsePosition(GAME_STATE.shaderWorld,
x, 0.34, z,
0, angle, 0
);
primitiveDraw(GAME_STATE.kagamiQuad, 0, -1);
}