void D_SetupUserInfo () { int i; userinfo_t *coninfo = &players[consoleplayer].userinfo; for (i = 0; i < MAXPLAYERS; i++) memset (&players[i].userinfo, 0, sizeof(userinfo_t)); strncpy (coninfo->netname, name, MAXPLAYERNAME); if (teamplay && !TeamLibrary.IsValidTeam (team)) { coninfo->team = D_PickRandomTeam (); } else { coninfo->team = team; } if (autoaim > 35.f || autoaim < 0.f) { coninfo->aimdist = ANGLE_1*35; } else { coninfo->aimdist = abs ((int)(autoaim * (float)ANGLE_1)); } coninfo->color = color; coninfo->skin = R_FindSkin (skin, 0); coninfo->gender = D_GenderToInt (gender); coninfo->neverswitch = neverswitchonpickup; coninfo->MoveBob = (fixed_t)(65536.f * movebob); coninfo->StillBob = (fixed_t)(65536.f * stillbob); coninfo->PlayerClass = D_PlayerClassToInt (playerclass); R_BuildPlayerTranslation (consoleplayer); }
void D_PickRandomTeam (int player) { static char teamline[8] = "\\team\\X"; BYTE *foo = (BYTE *)teamline; teamline[6] = (char)D_PickRandomTeam() + '0'; D_ReadUserInfoStrings (player, &foo, teamplay); }
int userinfo_t::TeamChanged(int team) { if (teamplay && !TeamLibrary.IsValidTeam(team)) { // Force players onto teams in teamplay mode team = D_PickRandomTeam(); } *static_cast<FIntCVar *>((*this)[NAME_Team]) = team; return team; }
static void UpdateTeam (int pnum, int team, bool update) { userinfo_t *info = &players[pnum].userinfo; if ((dmflags2 & DF2_NO_TEAM_SWITCH) && (alwaysapplydmflags || deathmatch) && TeamLibrary.IsValidTeam (info->team)) { Printf ("Team changing has been disabled!\n"); return; } int oldteam; if (!TeamLibrary.IsValidTeam (team)) { team = TEAM_NONE; } oldteam = info->team; info->team = team; if (teamplay && !TeamLibrary.IsValidTeam (info->team)) { // Force players onto teams in teamplay mode info->team = D_PickRandomTeam (); } if (update && oldteam != info->team) { if (TeamLibrary.IsValidTeam (info->team)) Printf ("%s joined the %s team\n", info->netname, Teams[info->team].GetName ()); else Printf ("%s is now a loner\n", info->netname); } // Let the player take on the team's color R_BuildPlayerTranslation (pnum); if (StatusBar != NULL && StatusBar->GetPlayer() == pnum) { StatusBar->AttachToPlayer (&players[pnum]); } if (!TeamLibrary.IsValidTeam (info->team)) info->team = TEAM_NONE; }