MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / AutoLoginAndJoinGame

Function AutoLoginAndJoinGame

netcon/mtclient/mtclient.cpp:3000–3079  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2998}
2999
3000void 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 }

Callers 1

DLLFUNCCALL DLLMultiCallFunction · 0.70

Calls 4

LoginMasterTrackerFunction · 0.85
ValidateUserFunction · 0.85
DLLDoMessageBoxFunction · 0.85
PollPTrackNetFunction · 0.85

Tested by

no test coverage detected