public override void SendCachedResultsToHeadJudger()
    {
        base.SendCachedResultsToHeadJudger();

        if (Networking.IsConnectedToServer)
        {
            Global.NetObj.ClientSendFinishJudgingDiff(CachedData.SerializeToString());
            Networking.bNeedSendCachedResults = false;
        }
    }
    public override void SendResultsToHeadJudger(int InDiv, int InRound, int InPool, int InTeam)
    {
        base.SendResultsToHeadJudger(InDiv, InRound, InPool, InTeam);

        RoutineScoreData SData = Global.AllData.AllDivisions[InDiv].Rounds[InRound].Pools[(int)CurPool].Teams[InTeam].Data.RoutineScores;

        CurData.Division    = (EDivision)InDiv;
        CurData.Round       = (ERound)InRound;
        CurData.Pool        = (EPool)InPool;
        CurData.Team        = InTeam;
        CurData.JudgeNameId = GetJudgeNameId();
        SData.SetDiffResults(CurData);

        if (Networking.IsConnectedToServer)
        {
            Global.NetObj.ClientSendFinishJudgingDiff(CurData.SerializeToString());
        }
        else
        {
            CachedData = new DiffData(CurData);
            Networking.bNeedSendCachedResults = true;
        }
    }