Skip to content

Commit fa47f62

Browse files
committed
Don't cache unittype & player anymore, using Unsafe makes this much faster, position is probably still worth to cache
1 parent 7eb1439 commit fa47f62

File tree

2 files changed

+3
-33
lines changed

2 files changed

+3
-33
lines changed

src/main/java/bwapi/EventHandler.java

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ class EventHandler implements Client.EventHandler {
66
private final Game game;
77
private final Client client;
88

9-
public EventHandler(final BWEventListener eventListener, final Client client) {
9+
EventHandler(final BWEventListener eventListener, final Client client) {
1010
this.eventListener = eventListener;
1111
this.game = new Game(client);
1212
this.client = client;
@@ -49,8 +49,6 @@ public void operation(final ClientData.Event event) {
4949
game.unitCreate(event.getV1());
5050
u = game.getUnit(event.getV1());
5151
u.updatePosition(frames);
52-
u.updateType(frames);
53-
u.updatePlayer(frames);
5452
eventListener.onUnitDiscover(u);
5553
break;
5654
case UnitEvade:
@@ -62,8 +60,6 @@ public void operation(final ClientData.Event event) {
6260
game.unitShow(event.getV1());
6361
u = game.getUnit(event.getV1());
6462
u.updatePosition(frames);
65-
u.updateType(frames);
66-
u.updatePlayer(frames);
6763
eventListener.onUnitShow(u);
6864
break;
6965
case UnitHide:
@@ -75,8 +71,6 @@ public void operation(final ClientData.Event event) {
7571
game.unitCreate(event.getV1());
7672
u = game.getUnit(event.getV1());
7773
u.updatePosition(frames);
78-
u.updateType(frames);
79-
u.updatePlayer(frames);
8074
eventListener.onUnitCreate(u);
8175
break;
8276
case UnitDestroy:
@@ -87,19 +81,15 @@ public void operation(final ClientData.Event event) {
8781
case UnitMorph:
8882
u = game.getUnit(event.getV1());
8983
u.updatePosition(frames);
90-
u.updateType(frames);
91-
u.updatePlayer(frames);
9284
eventListener.onUnitMorph(u);
9385
break;
9486
case UnitRenegade:
9587
u = game.getUnit(event.getV1());
96-
u.updatePlayer(frames);
9788
eventListener.onUnitRenegade(u);
9889
break;
9990
case UnitComplete:
10091
game.unitCreate(event.getV1());
10192
u = game.getUnit(event.getV1());
102-
u.updatePlayer(frames);
10393
eventListener.onUnitComplete(u);
10494
break;
10595
}

src/main/java/bwapi/Unit.java

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,8 @@ public class Unit implements Comparable<Unit>{
2828
private final int id;
2929
private final int replayID;
3030
// variable
31-
private Player player;
32-
private UnitType unitType;
3331
private Position position;
3432
private int lastPositionUpdate = -1;
35-
private int lastTypeUpdate = -1;
36-
private int lastPlayerUpdate = -1;
3733
private int lastCommandFrame;
3834
private UnitCommand lastCommand;
3935

@@ -42,8 +38,6 @@ public class Unit implements Comparable<Unit>{
4238
this.unitData = unitData;
4339
this.game = game;
4440

45-
updateType(0);
46-
updatePlayer(0);
4741
updatePosition(0);
4842

4943
initialType = getType();
@@ -79,11 +73,11 @@ public int getReplayID() {
7973
}
8074

8175
public Player getPlayer() {
82-
return player;
76+
return game.getPlayer(unitData.getPlayer());
8377
}
8478

8579
public UnitType getType() {
86-
return unitType;
80+
return UnitType.idToEnum[unitData.getType()];
8781
}
8882

8983
public Position getPosition() {
@@ -4120,20 +4114,6 @@ public int compareTo(final Unit other) {
41204114
return getID() - other.getID();
41214115
}
41224116

4123-
void updateType(final int frame) {
4124-
if (frame > lastTypeUpdate) {
4125-
lastTypeUpdate = frame;
4126-
unitType = UnitType.idToEnum[unitData.getType()];
4127-
}
4128-
}
4129-
4130-
void updatePlayer(final int frame) {
4131-
if (frame > lastPlayerUpdate) {
4132-
lastPlayerUpdate = frame;
4133-
player = game.getPlayer(unitData.getPlayer());
4134-
}
4135-
}
4136-
41374117
void updatePosition(final int frame) {
41384118
if (frame > lastPositionUpdate) {
41394119
lastPositionUpdate = frame;

0 commit comments

Comments
 (0)