project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/ClientFlagsUpdate.java
changeset 10017 de822cd3df3a
parent 7691 55c0a856ecd0
equal deleted inserted replaced
10015:4feced261c68 10017:de822cd3df3a
     2 
     2 
     3 import org.hedgewars.hedgeroid.Datastructures.Player;
     3 import org.hedgewars.hedgeroid.Datastructures.Player;
     4 import org.hedgewars.hedgeroid.Datastructures.PlayerInRoom;
     4 import org.hedgewars.hedgeroid.Datastructures.PlayerInRoom;
     5 
     5 
     6 final class ClientFlagsUpdate {
     6 final class ClientFlagsUpdate {
     7 	public static final char FLAG_ADMIN = 'a';
     7     public static final char FLAG_ADMIN = 'a';
     8 	public static final char FLAG_CHIEF = 'h';
     8     public static final char FLAG_CHIEF = 'h';
     9 	public static final char FLAG_READY = 'r';
     9     public static final char FLAG_READY = 'r';
    10 	public static final char FLAG_REGISTERED = 'u';
    10     public static final char FLAG_REGISTERED = 'u';
    11 	
       
    12 	public final String nick, flags;
       
    13 	public final boolean newFlagState;
       
    14 	
       
    15 	public ClientFlagsUpdate(String nick, String flags, boolean newFlagState) {
       
    16 		this.nick = nick;
       
    17 		this.flags = flags;
       
    18 		this.newFlagState = newFlagState;
       
    19 	}
       
    20 
    11 
    21 	public Player applyTo(Player p) {
    12     public final String nick, flags;
    22 		return new Player(
    13     public final boolean newFlagState;
    23 				p.name,
    14 
    24 				updatedFlag(FLAG_REGISTERED, p.registered),
    15     public ClientFlagsUpdate(String nick, String flags, boolean newFlagState) {
    25 				updatedFlag(FLAG_ADMIN, p.admin));
    16         this.nick = nick;
    26 	}
    17         this.flags = flags;
    27 	
    18         this.newFlagState = newFlagState;
    28 	public PlayerInRoom applyTo(PlayerInRoom p) {
    19     }
    29 		return new PlayerInRoom(
    20 
    30 				this.applyTo(p.player),
    21     public Player applyTo(Player p) {
    31 				updatedFlag(FLAG_READY, p.ready),
    22         return new Player(
    32 				updatedFlag(FLAG_CHIEF, p.roomChief));
    23                 p.name,
    33 	}
    24                 updatedFlag(FLAG_REGISTERED, p.registered),
    34 	
    25                 updatedFlag(FLAG_ADMIN, p.admin));
    35 	public boolean appliesTo(char flag) {
    26     }
    36 		return flags.indexOf(flag) != -1;
    27 
    37 	}
    28     public PlayerInRoom applyTo(PlayerInRoom p) {
    38 	
    29         return new PlayerInRoom(
    39 	private boolean updatedFlag(char flag, boolean oldValue) {
    30                 this.applyTo(p.player),
    40 		return appliesTo(flag) ? newFlagState : oldValue;
    31                 updatedFlag(FLAG_READY, p.ready),
    41 	}
    32                 updatedFlag(FLAG_CHIEF, p.roomChief));
    42 	
    33     }
    43 	@Override
    34 
    44 	public String toString() {
    35     public boolean appliesTo(char flag) {
    45 		return "ClientFlagsUpdate [nick=" + nick + ", flags=" + flags
    36         return flags.indexOf(flag) != -1;
    46 				+ ", newFlagState=" + newFlagState + "]";
    37     }
    47 	}
    38 
       
    39     private boolean updatedFlag(char flag, boolean oldValue) {
       
    40         return appliesTo(flag) ? newFlagState : oldValue;
       
    41     }
       
    42 
       
    43     @Override
       
    44     public String toString() {
       
    45         return "ClientFlagsUpdate [nick=" + nick + ", flags=" + flags
       
    46                 + ", newFlagState=" + newFlagState + "]";
       
    47     }
    48 }
    48 }