forked from TeamTofuShop/segatools
board/io3.c: Fix JVS coin counter emulation
This commit is contained in:
@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user