void G_NewInit () { int i; G_ClearSnapshots (); ST_SetNeedRefresh(); netgame = false; multiplayer = false; if (demoplayback) { C_RestoreCVars (); demoplayback = false; D_SetupUserInfo (); } for (i = 0; i < MAXPLAYERS; ++i) { player_t *p = &players[i]; userinfo_t saved_ui; saved_ui.TransferFrom(players[i].userinfo); int chasecam = p->cheats & CF_CHASECAM; p->~player_t(); ::new(p) player_t; players[i].cheats |= chasecam; players[i].playerstate = PST_DEAD; playeringame[i] = 0; players[i].userinfo.TransferFrom(saved_ui); } BackupSaveName = ""; consoleplayer = 0; NextSkill = -1; }
void G_NewInit () { int i; // Destory all old player refrences that may still exist TThinkerIterator<APlayerPawn> it(STAT_TRAVELLING); APlayerPawn *pawn, *next; next = it.Next(); while ((pawn = next) != NULL) { next = it.Next(); pawn->flags |= MF_NOSECTOR | MF_NOBLOCKMAP; pawn->Destroy(); } G_ClearSnapshots (); ST_SetNeedRefresh(); netgame = false; multiplayer = multiplayernext; multiplayernext = false; if (demoplayback) { C_RestoreCVars (); demoplayback = false; D_SetupUserInfo (); } for (i = 0; i < MAXPLAYERS; ++i) { player_t *p = &players[i]; userinfo_t saved_ui; saved_ui.TransferFrom(players[i].userinfo); int chasecam = p->cheats & CF_CHASECAM; p->~player_t(); ::new(p) player_t; players[i].cheats |= chasecam; players[i].playerstate = PST_DEAD; playeringame[i] = 0; players[i].userinfo.TransferFrom(saved_ui); } BackupSaveName = ""; consoleplayer = 0; NextSkill = -1; }