diff --git a/PlayerTracker b/PlayerTracker index 606f8a2..8b17efd 100755 Binary files a/PlayerTracker and b/PlayerTracker differ diff --git a/source/main.cpp b/source/main.cpp index 7fa9908..412b332 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -18,14 +18,10 @@ #define DEBUG_CAR_INFO 0 -const int SERVER_OUT_PORT = 12000; -const int SERVER_IN_PORT = 11000; -const char *SERVER_OUT_IP = "127.0.0.1"; - const char *API_SOCKET_PATH = "/tmp/ACplayer_socket"; const int MAX_PLAYERS = 64; -const int SERVER_ID = 130; +const int SERVER_ID = 137; api_packet current_packet; int apiSent = 0; @@ -127,10 +123,10 @@ void *send_to_api_socket(void *arg) { continue; } - if (apiSent) { - usleep(10000); - continue; - } + if (apiSent) { + usleep(10000); + continue; + } ssize_t sent_bytes = send(sock_fd, ¤t_packet, sizeof(api_packet), MSG_NOSIGNAL); if (sent_bytes < 0) { @@ -204,14 +200,26 @@ void init_carupdate(carAtributes *car) { car->normalizedSplinePos = 0.0f; } -int main(void) { +int main(int argc, char *argv[]) { + + // Parse command-line arguments + if (argc != 4) { + fprintf(stderr, "Usage: %s \n", argv[0]); + fprintf(stderr, "Example: %s 131 11001 12001\n", argv[0]); + return EXIT_FAILURE; + } + + int SERVER_ID = atoi(argv[1]); + int SERVER_IN_PORT = atoi(argv[2]); + int SERVER_OUT_PORT = atoi(argv[3]); + printf("[+] Starting server...\n"); printf("[+] Server listening on port %d\n", SERVER_IN_PORT); printf("[+] Server sending to %s:%d\n\n", SERVER_OUT_IP, SERVER_OUT_PORT); current_packet.tracker_id = (u_int8_t)-1; // Mark as uninitialized - int send_sock_fd = connect_udp_socket(SERVER_OUT_IP, SERVER_IN_PORT); // SEND requests to Server + int send_sock_fd = connect_udp_socket(SERVER_OUT_IP, SERVER_IN_PORT); // SEND requests to Server int recv_sock_fd = create_bound_udp_socket("0.0.0.0", SERVER_OUT_PORT); // LISTEN to server updates if (send_sock_fd < 0 || recv_sock_fd < 0) { @@ -357,7 +365,7 @@ int main(void) { update.isConnected = 1; // Mark as connected update.isLoading = 1; // Mark as Loading - current_packet.connected_cars++; + current_packet.connected_cars++; printf("\tDriver Name: \"%s\"\n", update.driver_name); printf("\tDriver GUID: \"%s\"\n", update.driver_GUID); @@ -395,9 +403,8 @@ int main(void) { break; } - update.isConnected = 0; // Mark as disconnected - current_packet.connected_cars--; + current_packet.connected_cars--; printf("\tDriver Name: \"%s\"\n", update.driver_name); printf("\tDriver GUID: \"%s\"\n", update.driver_GUID); @@ -443,8 +450,8 @@ int main(void) { players[update.carID].carGear = update.carGear; players[update.carID].carRPM = update.carRPM; players[update.carID].normalizedSplinePos = update.normalizedSplinePos; - players[update.carID].carID = update.carID; - players[update.carID].isConnected = 1; // Ensure isConnected is set + players[update.carID].carID = update.carID; + players[update.carID].isConnected = 1; // Ensure isConnected is set } update_api_packet(trackInfo, players, update.carID);