private PlayerData GetPlayerStartingData(RoomData rd) { // Respawning from death? Return THAT data! if (dm.playerGroundedRespawnData != null) { return(dm.playerGroundedRespawnData); } // Otherwise... PlayerData pd = new PlayerData { pos = rd.DefaultPlayerStartPos(), // Default to PlayerStart pos. type = PlayerTypeHelper.LoadLastPlayedType(), // Default to last-played PlayerType. }; // Trial?? FORCE it to this PlayerType. if (rd.MyCluster != null && rd.MyCluster.IsCharTrial) { pd.type = rd.MyCluster.TrialPlayerType; } // Starting at RoomDoor? if (!string.IsNullOrEmpty(dm.doorToID)) { pd.pos = rd.GetRoomDoorPos(dm.doorToID);// + new Vector2(0, -playerHeight*0.5f); } // Return! return(pd); }