board/io3.c: Fix JVS coin counter emulation

This commit is contained in:
Tau
2019-05-02 19:38:39 -04:00
parent 025102fc58
commit 0271abb21e
5 changed files with 31 additions and 37 deletions

View File

@ -14,16 +14,17 @@
#include "util/dprintf.h"
static void chunithm_jvs_read_switches(void *ctx, struct io3_switch_state *out);
static uint16_t chunithm_jvs_consume_coins(void *ctx, uint8_t slot_no);
static uint16_t chunithm_jvs_read_coin_counter(void *ctx, uint8_t slot_no);
static const struct io3_ops chunithm_jvs_io3_ops = {
.read_switches = chunithm_jvs_read_switches,
.consume_coins = chunithm_jvs_consume_coins,
.read_switches = chunithm_jvs_read_switches,
.read_coin_counter = chunithm_jvs_read_coin_counter,
};
static struct io3 chunithm_jvs_io3;
static size_t chunithm_jvs_rise_pos;
static bool chunithm_jvs_coin;
static uint16_t chunithm_jvs_coins;
void chunithm_jvs_init(void)
{
@ -74,24 +75,21 @@ static void chunithm_jvs_read_switches(void *ctx, struct io3_switch_state *out)
}
}
static uint16_t chunithm_jvs_consume_coins(void *ctx, uint8_t slot_no)
static uint16_t chunithm_jvs_read_coin_counter(void *ctx, uint8_t slot_no)
{
if (slot_no > 0) {
return 0;
}
if (GetAsyncKeyState('3')) {
if (chunithm_jvs_coin) {
return 0;
} else {
if (!chunithm_jvs_coin) {
dprintf("Chunithm JVS: Coin drop\n");
chunithm_jvs_coin = true;
return 1;
chunithm_jvs_coins++;
}
} else {
chunithm_jvs_coin = false;
return 0;
}
return chunithm_jvs_coins;
}