Project cleanup pre merge.
This commit is contained in:
@@ -13,119 +13,118 @@ import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
public class GuildStatusController {
|
||||
|
||||
/*
|
||||
* Status is stored in a single integer contained within the Character Table
|
||||
*
|
||||
* This class is responsible for maintaining and interpreting that value.
|
||||
*
|
||||
* Byte 1 - All : Title [0x000000FF]
|
||||
* Byte 2 - Low : isFullMember [0x00000F00]
|
||||
* Byte 2 - High : isTaxCollector [0x0000F000]
|
||||
* Byte 3 - Low : isRecruiter [0x000F0000]
|
||||
* Byte 3 - High : isInnerCouncil [0x00F00000]
|
||||
* Byte 4 - Low : isGuildLeader [0x0F000000]
|
||||
* Byte 4 - High : Empty [0xF0000000]
|
||||
*/
|
||||
/*
|
||||
* Status is stored in a single integer contained within the Character Table
|
||||
*
|
||||
* This class is responsible for maintaining and interpreting that value.
|
||||
*
|
||||
* Byte 1 - All : Title [0x000000FF]
|
||||
* Byte 2 - Low : isFullMember [0x00000F00]
|
||||
* Byte 2 - High : isTaxCollector [0x0000F000]
|
||||
* Byte 3 - Low : isRecruiter [0x000F0000]
|
||||
* Byte 3 - High : isInnerCouncil [0x00F00000]
|
||||
* Byte 4 - Low : isGuildLeader [0x0F000000]
|
||||
* Byte 4 - High : Empty [0xF0000000]
|
||||
*/
|
||||
|
||||
//Getters
|
||||
public static boolean isGuildLeader(AtomicInteger status) {
|
||||
return ((status.get() & GUILDLEADER) > 0);
|
||||
}
|
||||
|
||||
public static boolean isInnerCouncil(AtomicInteger status) {
|
||||
return ((status.get() & INNERCOUNCIL) > 0);
|
||||
}
|
||||
|
||||
public static boolean isRecruiter(AtomicInteger status) {
|
||||
return ((status.get() & RECRUITER) > 0);
|
||||
}
|
||||
|
||||
public static boolean isTaxCollector(AtomicInteger status) {
|
||||
return ((status.get() & TAXCOLLECTOR) > 0);
|
||||
}
|
||||
|
||||
public static boolean isFullMember(AtomicInteger status) {
|
||||
return ((status.get() & FULLMEMBER) > 0);
|
||||
}
|
||||
|
||||
public static int getTitle(AtomicInteger status) {
|
||||
return status.get() & TITLE;
|
||||
}
|
||||
|
||||
public static int getRank(AtomicInteger status) {
|
||||
int value = status.get();
|
||||
|
||||
//Guild Leader
|
||||
if(value > 0x00FFFFFF) {
|
||||
return 10;
|
||||
}
|
||||
|
||||
//Inner Council
|
||||
if(value > 0x000FFFFF) {
|
||||
return 9;
|
||||
}
|
||||
|
||||
//Recruiter
|
||||
if(value > 0x0000FFFF) {
|
||||
return 8;
|
||||
}
|
||||
|
||||
//Tax Collector
|
||||
if(value > 0x00000FFF) {
|
||||
return 7;
|
||||
}
|
||||
|
||||
//Full Member
|
||||
if(value > 0x000000FF) {
|
||||
return 6;
|
||||
}
|
||||
|
||||
//Petitioner
|
||||
return 5;
|
||||
}
|
||||
|
||||
//Setters
|
||||
public static void setTitle(AtomicInteger current, int i) {
|
||||
int value;
|
||||
i &= TITLE;
|
||||
do {
|
||||
value = current.get();
|
||||
}while(!current.compareAndSet(value, (value & ~TITLE) | i));
|
||||
}
|
||||
|
||||
|
||||
public static void setFullMember(AtomicInteger status, boolean newValue) {
|
||||
setNibble(status, newValue, FULLMEMBER);
|
||||
}
|
||||
|
||||
public static void setTaxCollector(AtomicInteger status, boolean newValue) {
|
||||
setNibble(status, newValue, TAXCOLLECTOR);
|
||||
}
|
||||
|
||||
public static void setRecruiter(AtomicInteger status, boolean newValue) {
|
||||
setNibble(status, newValue, RECRUITER);
|
||||
}
|
||||
|
||||
public static void setInnerCouncil(AtomicInteger status, boolean newValue) {
|
||||
setNibble(status, newValue, INNERCOUNCIL);
|
||||
}
|
||||
|
||||
public static void setGuildLeader (AtomicInteger status, boolean newValue) {
|
||||
setNibble(status, newValue, GUILDLEADER);
|
||||
}
|
||||
|
||||
private static void setNibble(AtomicInteger current, boolean newValue, int mask) {
|
||||
int value, i = ((newValue)?mask & -1:0);
|
||||
do {
|
||||
value = current.get();
|
||||
}while(!current.compareAndSet(value, (value & ~mask) | i));
|
||||
}
|
||||
|
||||
//Constants
|
||||
private static final int TITLE = 0x000000FF; // 00, F0 and 0F had no effect
|
||||
private static final int FULLMEMBER = 0x00000F00;
|
||||
private static final int TAXCOLLECTOR = 0x0000F000;
|
||||
private static final int RECRUITER = 0x000F0000;
|
||||
private static final int INNERCOUNCIL = 0x00F00000;
|
||||
private static final int GUILDLEADER = 0x0F000000;
|
||||
//Constants
|
||||
private static final int TITLE = 0x000000FF; // 00, F0 and 0F had no effect
|
||||
private static final int FULLMEMBER = 0x00000F00;
|
||||
private static final int TAXCOLLECTOR = 0x0000F000;
|
||||
private static final int RECRUITER = 0x000F0000;
|
||||
private static final int INNERCOUNCIL = 0x00F00000;
|
||||
private static final int GUILDLEADER = 0x0F000000;
|
||||
|
||||
//Getters
|
||||
public static boolean isGuildLeader(AtomicInteger status) {
|
||||
return ((status.get() & GUILDLEADER) > 0);
|
||||
}
|
||||
|
||||
public static boolean isInnerCouncil(AtomicInteger status) {
|
||||
return ((status.get() & INNERCOUNCIL) > 0);
|
||||
}
|
||||
|
||||
public static boolean isRecruiter(AtomicInteger status) {
|
||||
return ((status.get() & RECRUITER) > 0);
|
||||
}
|
||||
|
||||
public static boolean isTaxCollector(AtomicInteger status) {
|
||||
return ((status.get() & TAXCOLLECTOR) > 0);
|
||||
}
|
||||
|
||||
public static boolean isFullMember(AtomicInteger status) {
|
||||
return ((status.get() & FULLMEMBER) > 0);
|
||||
}
|
||||
|
||||
public static int getTitle(AtomicInteger status) {
|
||||
return status.get() & TITLE;
|
||||
}
|
||||
|
||||
public static int getRank(AtomicInteger status) {
|
||||
int value = status.get();
|
||||
|
||||
//Guild Leader
|
||||
if (value > 0x00FFFFFF) {
|
||||
return 10;
|
||||
}
|
||||
|
||||
//Inner Council
|
||||
if (value > 0x000FFFFF) {
|
||||
return 9;
|
||||
}
|
||||
|
||||
//Recruiter
|
||||
if (value > 0x0000FFFF) {
|
||||
return 8;
|
||||
}
|
||||
|
||||
//Tax Collector
|
||||
if (value > 0x00000FFF) {
|
||||
return 7;
|
||||
}
|
||||
|
||||
//Full Member
|
||||
if (value > 0x000000FF) {
|
||||
return 6;
|
||||
}
|
||||
|
||||
//Petitioner
|
||||
return 5;
|
||||
}
|
||||
|
||||
//Setters
|
||||
public static void setTitle(AtomicInteger current, int i) {
|
||||
int value;
|
||||
i &= TITLE;
|
||||
do {
|
||||
value = current.get();
|
||||
} while (!current.compareAndSet(value, (value & ~TITLE) | i));
|
||||
}
|
||||
|
||||
public static void setFullMember(AtomicInteger status, boolean newValue) {
|
||||
setNibble(status, newValue, FULLMEMBER);
|
||||
}
|
||||
|
||||
public static void setTaxCollector(AtomicInteger status, boolean newValue) {
|
||||
setNibble(status, newValue, TAXCOLLECTOR);
|
||||
}
|
||||
|
||||
public static void setRecruiter(AtomicInteger status, boolean newValue) {
|
||||
setNibble(status, newValue, RECRUITER);
|
||||
}
|
||||
|
||||
public static void setInnerCouncil(AtomicInteger status, boolean newValue) {
|
||||
setNibble(status, newValue, INNERCOUNCIL);
|
||||
}
|
||||
|
||||
public static void setGuildLeader(AtomicInteger status, boolean newValue) {
|
||||
setNibble(status, newValue, GUILDLEADER);
|
||||
}
|
||||
|
||||
private static void setNibble(AtomicInteger current, boolean newValue, int mask) {
|
||||
int value, i = ((newValue) ? mask & -1 : 0);
|
||||
do {
|
||||
value = current.get();
|
||||
} while (!current.compareAndSet(value, (value & ~mask) | i));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user