80 lines
2.0 KiB
C
80 lines
2.0 KiB
C
#include "share.h"
|
|
|
|
static uint8 GunSight[] = {
|
|
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
|
|
1, 2, 1, 2, 0, 3, 3, 3, 0, 2, 1, 2, 1,
|
|
0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
|
|
};
|
|
static uint8 FCEUcursor[11 * 19] =
|
|
{
|
|
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0,
|
|
1, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0,
|
|
1, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0,
|
|
1, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0,
|
|
1, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0,
|
|
1, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0,
|
|
1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0,
|
|
1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
|
|
1, 2, 2, 1, 2, 2, 1, 0, 0, 0, 0,
|
|
1, 2, 1, 0, 1, 2, 2, 1, 0, 0, 0,
|
|
1, 1, 0, 0, 1, 2, 2, 1, 0, 0, 0,
|
|
1, 0, 0, 0, 0, 1, 2, 2, 1, 0, 0,
|
|
0, 0, 0, 0, 0, 1, 2, 2, 1, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 1, 2, 2, 1, 0,
|
|
0, 0, 0, 0, 0, 0, 1, 2, 2, 1, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
|
|
};
|
|
|
|
void FCEU_DrawGunSight(uint8 *buf, int xc, int yc) {
|
|
int x, y;
|
|
int c, d;
|
|
|
|
for (y = 0; y < 13; y++)
|
|
for (x = 0; x < 13; x++) {
|
|
uint8 a;
|
|
a = GunSight[y * 13 + x];
|
|
if (a) {
|
|
c = (yc + y - 7);
|
|
d = (xc + x - 7);
|
|
if (c >= 0 && d >= 0 && d < 256 && c < 240) {
|
|
if (a == 3)
|
|
buf[c * 256 + d] = 0xBF - (buf[c * 256 + d] & 0x3F);
|
|
else
|
|
buf[c * 256 + d] = a - 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void FCEU_DrawCursor(uint8 *buf, int xc, int yc) {
|
|
int x, y;
|
|
int c, d;
|
|
|
|
if (xc < 256 && yc < 240)
|
|
for (y = 0; y < 19; y++)
|
|
for (x = 0; x < 11; x++) {
|
|
uint8 a;
|
|
a = FCEUcursor[y * 11 + x];
|
|
if (a) {
|
|
c = (yc + y);
|
|
d = (xc + x);
|
|
if (d < 256 && c < 240)
|
|
buf[c * 256 + d] = a + 127;
|
|
}
|
|
}
|
|
}
|