From: ChadF <ch...@us...> - 2007-08-30 01:22:29
|
Update of /cvsroot/arianne/stendhal/src/games/stendhal/client In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv27167/src/games/stendhal/client Modified Files: GameObjects.java GameScreen.java Log Message: Removed view reference from entity model. Index: GameObjects.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/GameObjects.java,v retrieving revision 1.150 retrieving revision 1.151 diff -C2 -d -r1.150 -r1.151 *** GameObjects.java 14 Aug 2007 21:01:02 -0000 1.150 --- GameObjects.java 30 Aug 2007 01:22:29 -0000 1.151 *************** *** 146,152 **** if(entity != null) { - // Discard view for now - Just force it's creation - entity.getView(); - objects.put(FQID.create(object), entity); } --- 146,149 ---- *************** *** 183,187 **** */ if(!object.isContained()) { ! GameScreen.get().addEntityView(entity.getView()); } --- 180,184 ---- */ if(!object.isContained()) { ! GameScreen.get().addEntity(entity); } *************** *** 273,277 **** if (entity != null) { ! GameScreen.get().removeEntityView(entity.getView()); entity.release(); } --- 270,274 ---- if (entity != null) { ! GameScreen.get().removeEntity(entity); entity.release(); } Index: GameScreen.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/GameScreen.java,v retrieving revision 1.82 retrieving revision 1.83 diff -C2 -d -r1.82 -r1.83 *** GameScreen.java 19 Aug 2007 04:37:28 -0000 1.82 --- GameScreen.java 30 Aug 2007 01:22:29 -0000 1.83 *************** *** 13,19 **** --- 13,21 ---- package games.stendhal.client; + import games.stendhal.client.entity.Entity; import games.stendhal.client.gui.j2DClient; import games.stendhal.client.gui.j2d.Text; import games.stendhal.client.gui.j2d.entity.Entity2DView; + import games.stendhal.client.gui.j2d.entity.Entity2DViewFactory; import games.stendhal.client.gui.wt.core.WtBaseframe; import games.stendhal.client.sprite.ImageSprite; *************** *** 47,54 **** --- 49,58 ---- import java.util.Comparator; import java.util.ConcurrentModificationException; + import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; + import java.util.Map; import marauroa.common.Log4J; *************** *** 102,105 **** --- 106,114 ---- protected List<Entity2DView> views; + /** + * The entity to view map. + */ + protected Map<Entity, Entity2DView> entities; + private static Sprite offlineIcon; *************** *** 213,216 **** --- 222,226 ---- textsToRemove = new LinkedList<Text>(); views = new LinkedList<Entity2DView>(); + entities = new HashMap<Entity, Entity2DView>(); g = (Graphics2D) strategy.getDrawGraphics(); *************** *** 230,238 **** /** * Add an entity view. * * @param view A view. */ ! public void addEntityView(Entity2DView view) { views.add(view); --- 240,263 ---- /** + * Add an entity. + * + * @param entity An entity. + */ + public void addEntity(Entity entity) { + Entity2DView view = createView(entity); + + if(view != null) { + entities.put(entity, view); + addEntityView(view); + } + } + + + /** * Add an entity view. * * @param view A view. */ ! protected void addEntityView(Entity2DView view) { views.add(view); *************** *** 242,250 **** /** * Remove an entity view. * * @param view A view. */ ! public void removeEntityView(Entity2DView view) { views.remove(view); } --- 267,290 ---- /** + * Remove an entity. + * + * @param entity An entity. + */ + public void removeEntity(final Entity entity) { + Entity2DView view = entities.remove(entity); + + if(view != null) { + removeEntityView(view); + } + } + + + /** * Remove an entity view. * * @param view A view. */ ! protected void removeEntityView(Entity2DView view) { ! view.release(); views.remove(view); } *************** *** 410,413 **** --- 450,458 ---- + public Entity2DView createView(final Entity entity) { + return Entity2DViewFactory.get().create(entity); + } + + /* * Draw the screen. |