| 2998 | } |
| 2999 | |
| 3000 | void AutoLoginAndJoinGame() { |
| 3001 | |
| 3002 | int loginlen = LOGIN_LEN; |
| 3003 | int passlen = PASSWORD_LEN; |
| 3004 | int valret; |
| 3005 | uint16_t port; |
| 3006 | uint32_t iaddr; |
| 3007 | |
| 3008 | *DLLMultiGameStarting = 0; |
| 3009 | DLLCreateSplashScreen(TXT_PXO_CONNECTING, 0); |
| 3010 | DLLDatabaseRead("TrackerLogin", szloginid, &loginlen); |
| 3011 | DLLDatabaseRead("TrackerPassword", szpassword, &passlen); |
| 3012 | if (!*DLLAuto_login_addr) { |
| 3013 | DLLmprintf(0, "Can't autostart because no IP address was specified!!\n"); |
| 3014 | *DLLMultiGameStarting = 0; |
| 3015 | goto failed_login; |
| 3016 | } |
| 3017 | if (*DLLAuto_login_port) { |
| 3018 | port = atoi(DLLAuto_login_port); |
| 3019 | } else { |
| 3020 | port = DEFAULT_GAME_PORT; |
| 3021 | } |
| 3022 | if (!*szloginid || !*szpassword) { |
| 3023 | if (LoginMasterTracker()) { |
| 3024 | // Uh... now connect to the server |
| 3025 | } else { |
| 3026 | goto failed_login; |
| 3027 | } |
| 3028 | } |
| 3029 | |
| 3030 | // Fill out the validate struct and send off the packet |
| 3031 | validate_id_request val_user; |
| 3032 | strcpy(val_user.tracker_id, sztrackerid); |
| 3033 | strcpy(val_user.login, szloginid); |
| 3034 | strcpy(val_user.password, szpassword); |
| 3035 | |
| 3036 | valret = ValidateUser(&val_user, sztrackerid); |
| 3037 | while (valret == 0) { |
| 3038 | valret = ValidateUser(nullptr, nullptr); |
| 3039 | DLLDescentDefer(); |
| 3040 | } |
| 3041 | if (valret == 1) { |
| 3042 | // User was validated |
| 3043 | DLLmprintf(0, "Mastertracker user validated!\n"); |
| 3044 | strcpy(DLLTracker_id, sztrackerid); |
| 3045 | strcpy(DLLMPlayers[DLLPlayer_num].tracker_id, sztrackerid); |
| 3046 | |
| 3047 | } else if (valret == -1) { |
| 3048 | // User invalid! |
| 3049 | DLLmprintf(0, "Mastertracker user not validated!\n"); |
| 3050 | DLLDoMessageBox(TXT_PXO_MASTERTRACKER, TXT_PXO_BADLOGIN, MSGBOX_OK, UICOL_WINDOW_TITLE, UICOL_TEXT_NORMAL); |
| 3051 | goto failed_login; |
| 3052 | } else { |
| 3053 | // timeout waiting for tracker! |
| 3054 | DLLmprintf(0, "Mastertracker timeout!\n"); |
| 3055 | DLLDoMessageBox(TXT_PXO_MASTERTRACKER, TXT_PXO_TIMEOUTMT, MSGBOX_OK, UICOL_WINDOW_TITLE, UICOL_TEXT_NORMAL); |
| 3056 | goto failed_login; |
| 3057 | } |
no test coverage detected