69 lines
1.7 KiB
C
69 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() {
|
|
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);
|
|
} |