diff --git a/src/micetools/dll/drivers/mxjvs.c b/src/micetools/dll/drivers/mxjvs.c index 40f1908..943aa84 100644 --- a/src/micetools/dll/drivers/mxjvs.c +++ b/src/micetools/dll/drivers/mxjvs.c @@ -324,14 +324,22 @@ void mxjvs_handle(unsigned char* paddedIn, short inCount, unsigned char* outData } unsigned char destination = inData[1]; - if (destination == 0 || destination > jvs_num_boards) return; + // Not broadcast, not master-bound, and within bounds + if (destination != 0xff && (destination == 0 || destination > jvs_num_boards)) return; unsigned char* response = malloc(maxOut); - jvs_board_t* board = &(*jvs_config)[jvs_num_boards - destination]; - // jvs_board_t* board = &(*jvs_config)[0]; unsigned char packetSize; - unsigned char status = - board->handler(board, inData + 3, inData[2] - 1, response + 4, &packetSize); + unsigned char status; + if (destination == 0xff) { + for (int i = 0; i < jvs_num_boards; i++) { + jvs_board_t* board = &(*jvs_config)[i]; + status = board->handler(board, inData + 3, inData[2] - 1, response + 4, &packetSize); + if (packetSize != 0) break; + } + } else { + jvs_board_t* board = &(*jvs_config)[jvs_num_boards - destination]; + status = board->handler(board, inData + 3, inData[2] - 1, response + 4, &packetSize); + } free(inData); if (status == JVS_STATUS_OK) { @@ -637,10 +645,10 @@ jvs_board_t under_night_jvs_config[1] = { // }, }; -// jvs_board_t (*jvs_config)[] = &maimai_jvs_config; -// size_t jvs_num_boards = sizeof maimai_jvs_config / sizeof maimai_jvs_config[0]; -jvs_board_t (*jvs_config)[] = &under_night_jvs_config; -size_t jvs_num_boards = sizeof under_night_jvs_config / sizeof under_night_jvs_config[0]; +jvs_board_t (*jvs_config)[] = &maimai_jvs_config; +size_t jvs_num_boards = sizeof maimai_jvs_config / sizeof maimai_jvs_config[0]; +// jvs_board_t (*jvs_config)[] = &under_night_jvs_config; +// size_t jvs_num_boards = sizeof under_night_jvs_config / sizeof under_night_jvs_config[0]; void setup_mxjvs() { file_hook_t* mxjvs = new_file_hook(L"\\\\.\\mxjvs"); diff --git a/src/micetools/dll/hooks/files.c b/src/micetools/dll/hooks/files.c index 30c352d..0b44326 100644 --- a/src/micetools/dll/hooks/files.c +++ b/src/micetools/dll/hooks/files.c @@ -99,7 +99,6 @@ void hook_file_with_buffer(LPCWSTR filename, LPBYTE buffer, DWORD nBytes, DWORD drive_redirect_t DRIVE_REDIRECT_TABLE[] = { // Note: Had to create last_shime.log { .drive = "C:\\Documents and Settings\\AppUser\\temp\\", .path = ".\\dev\\temp\\" }, - { .drive = "E:\\", .path = "\\\\.\\E:" }, // {.drive = "C:\\ProgramData/boost_interprocess/", .path = "\\\\.\\ipc\\"}, }; @@ -155,10 +154,7 @@ BOOL redirect_path(LPCSTR path, LPCSTR* redirected) { // Don't redirect local paths GetCurrentDirectoryA(sizeof WORKING_DIR, WORKING_DIR); - if (strstr(path, WORKING_DIR) == path) { - puts("SKIP"); - return FALSE; - } + if (strstr(path, WORKING_DIR) == path) return FALSE; if ((('a' <= path[0] && path[0] <= 'z') || ('A' <= path[0] && path[0] <= 'Z')) && path[1] == ':' && (path[2] == '/' || path[2] == '\\')) { diff --git a/src/micetools/lib/mice/config.c b/src/micetools/lib/mice/config.c index 6510acf..d6db19e 100644 --- a/src/micetools/lib/mice/config.c +++ b/src/micetools/lib/mice/config.c @@ -55,8 +55,8 @@ void make_default_config() { if (strlen(comment) != 0) fprintf_prefix(config_file, "; ", comment); \ fprintf(config_file, "%s = %d ;(int)\n", #n, default); -#define CFG_hex(s, n, precision, default, comment) \ - if (strlen(comment) != 0) fprintf_prefix(config_file, "; ", comment); \ +#define CFG_hex(s, n, precision, default, comment) \ + if (strlen(comment) != 0) fprintf_prefix(config_file, "; ", comment); \ fprintf(config_file, "%s = %.*X ;(hex, %d byte%s)\n", #n, precision, 0x##default, precision, \ precision == 1 ? "" : "s"); @@ -93,7 +93,6 @@ int handler(void *user, const char *section, const char *name, const char *value #define CFG_int(s, n, default, comment) \ else if (_stricmp(section, #s) == 0 && _stricmp(name, #n) == 0) { \ cfg->s.n = strtol(value, &end, 10); \ - printf("%s.%s:%d\n", #s, #n, cfg->s.n);\ if (end == value || *end != '\0' || errno == ERANGE) cfg->s.n = default; \ } #define CFG_hex(s, n, precision, default, comment) \