package seng302.Networking.Messages;

import seng302.Networking.Messages.Enums.MessageType;

/**
 * Created by fwy13 on 25/04/17.
 */
public class MarkRounding extends AC35Data {

    private int msgVerNum;
    private long time;
    private int ackNum;
    private int raceID;
    private int sourceID;
    private int boatStatus;
    private int roundingSide;
    private int markType;
    private int markID;

    public static int BoatStatusUnknown = 0;
    public static int BoatStatusRacing = 1;
    public static int BoatStatusDSQ = 2;
    public static int BoatStatusWithdrawn = 3;

    public static int RoundingSideUnknown = 0;
    public static int RoundingSidePort = 1;
    public static int RoundingSideStarboard = 2;

    public static int MarkTypeUnknown = 0;
    public static int MarkTypeRoundingMark = 1;
    public static int MarkTypeGate = 2;

    public static int MarkIDEntryLimitLine = 100;
    public static int MarkIDEntryLine = 101;
    public static int MarkIDRaceStartStartline = 102;
    public static int MarkIDRaceFinishline = 103;
    public static int MarkIDSpeedTestStart = 104;
    public static int MarkIDSpeedTestFinish = 105;
    public static int MarkIDClearStart = 106;

    public MarkRounding(int msgVerNum, long time, int ackNum, int raceID, int sourceID, int boatStatus, int roundingSide, int markType, int markID){
        super(MessageType.MARKROUNDING);
        this.msgVerNum = msgVerNum;
        this.time = time;
        this.ackNum = ackNum;
        this.raceID = raceID;
        this.sourceID = sourceID;
        this.boatStatus = boatStatus;
        this.roundingSide = roundingSide;
        this.markType = markType;
        this.markID = markID;
    }

    /**
     * Returns the boat (source) ID for this message.
     * @return Boat ID for this message.
     */
    public int getSourceID() {
        return sourceID;
    }

    /**
     * Returns the timestamp for this message.
     * @return Timestamp for this message.
     */
    public long getTime() {
        return time;
    }
}
