From da0663bea61cd106baaa3b3bec7307af6bd2f212 Mon Sep 17 00:00:00 2001 From: Zukero Date: Fri, 31 Mar 2017 09:26:07 +0200 Subject: [PATCH] Preparatory commit for the stoutford_roots_love ATCS project --- AndorsTrail/res/values/loadresources.xml | 15 ++++++++----- .../AndorsTrail/AndorsTrailApplication.java | 2 +- .../AndorsTrail/activity/DebugInterface.java | 22 ++++++------------- .../controller/ConversationController.java | 6 +++-- .../controller/VisualEffectController.java | 4 ++++ .../listeners/VisualEffectFrameListener.java | 2 ++ .../listeners/VisualEffectFrameListeners.java | 10 +++++++++ .../resource/tiles/TileManager.java | 2 +- .../gpl/rpg/AndorsTrail/view/MainView.java | 7 +++++- 9 files changed, 45 insertions(+), 25 deletions(-) diff --git a/AndorsTrail/res/values/loadresources.xml b/AndorsTrail/res/values/loadresources.xml index ae949b870..50d26abad 100644 --- a/AndorsTrail/res/values/loadresources.xml +++ b/AndorsTrail/res/values/loadresources.xml @@ -13,7 +13,8 @@ @raw/actorconditions_v0612_2 @raw/actorconditions_v070 @raw/actorconditions_stoutford - + @raw/itemlist_money @@ -39,7 +40,8 @@ @raw/itemlist_v070_questitems @raw/itemlist_shortcut_lodar @raw/itemlist_stoutford - @raw/itemlist_pathway_fallhaven + @raw/itemlist_pathway_fallhaven @@ -61,7 +63,8 @@ @raw/droplists_v070_mobs @raw/droplists_shortcut_lodar @raw/droplists_stoutford - @raw/droplists_pathway_fallhaven + @raw/droplists_pathway_fallhaven @@ -79,7 +82,8 @@ @raw/questlist_v070_misc @raw/questlist_shortcut_lodar @raw/questlist_stoutford - @raw/questlist_pathway_fallhaven + @raw/questlist_pathway_fallhaven @raw/questlist_halvor_surprise @@ -239,7 +243,8 @@ @raw/conversationlist_pathway_fallhaven @raw/conversationlist_halvor_surprise @raw/conversationlist_stoutford - + @raw/monsterlist_crossglen_animals diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java index 65dc3c6bc..86ef2b4d8 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java @@ -18,7 +18,7 @@ public final class AndorsTrailApplication extends Application { public static final boolean DEVELOPMENT_FORCE_STARTNEWGAME = false; public static final boolean DEVELOPMENT_FORCE_CONTINUEGAME = false; public static final boolean DEVELOPMENT_DEBUGBUTTONS = true; - public static final boolean DEVELOPMENT_FASTSPEED = false; + public static final boolean DEVELOPMENT_FASTSPEED = true; public static final boolean DEVELOPMENT_VALIDATEDATA = true; public static final boolean DEVELOPMENT_DEBUGMESSAGES = true; public static final boolean DEVELOPMENT_INCOMPATIBLE_SAVEGAMES = DEVELOPMENT_DEBUGRESOURCES || DEVELOPMENT_DEBUGBUTTONS || DEVELOPMENT_FASTSPEED; diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/DebugInterface.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/DebugInterface.java index 45d86e2ea..eb4b2bc0f 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/DebugInterface.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/DebugInterface.java @@ -11,6 +11,7 @@ import com.gpl.rpg.AndorsTrail.AndorsTrailApplication; import com.gpl.rpg.AndorsTrail.R; import com.gpl.rpg.AndorsTrail.context.ControllerContext; import com.gpl.rpg.AndorsTrail.context.WorldContext; +import com.gpl.rpg.AndorsTrail.model.item.ItemType; import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap; public final class DebugInterface { @@ -46,25 +47,16 @@ public final class DebugInterface { showToast(mainActivity, "DEBUG: damagePotential=1", Toast.LENGTH_SHORT); } })*/ - /*,new DebugButton("items", new OnClickListener() { + ,new DebugButton("items", new OnClickListener() { @Override public void onClick(View arg0) { - world.model.player.inventory.addItem(world.itemTypes.getItemType("elytharan_redeemer")); - world.model.player.inventory.addItem(world.itemTypes.getItemType("ring_shadow0")); - world.model.player.inventory.addItem(world.itemTypes.getItemType("shadow_slayer")); - world.model.player.inventory.addItem(world.itemTypes.getItemType("pot_blind_rage"), 10); - world.model.player.inventory.addItem(world.itemTypes.getItemType("clouded_rage")); - world.model.player.inventory.addItem(world.itemTypes.getItemType("pot_fatigue_restore"), 20); - world.model.player.inventory.addItem(world.itemTypes.getItemType("quickdagger1")); - world.model.player.inventory.addItem(world.itemTypes.getItemType("bonemeal_potion")); - world.model.player.inventory.addItem(world.itemTypes.getItemType("calomyran_secrets")); - world.model.player.inventory.addItem(world.itemTypes.getItemType("tail_caverat")); - world.model.player.inventory.addItem(world.itemTypes.getItemType("bwm_leather_cap")); - world.model.player.inventory.addItem(world.itemTypes.getItemType("chaosreaper")); - + for (ItemType item : world.itemTypes.UNITTEST_getAllItemTypes().values()) { + world.model.player.inventory.addItem(item, 10); + } + world.model.player.inventory.gold += 50000; showToast(mainActivity, "DEBUG: added items", Toast.LENGTH_SHORT); } - })*/ + }) /*,new DebugButton("prim", new OnClickListener() { @Override public void onClick(View arg0) { diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java index b6dc38241..4c8db6a69 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java @@ -144,15 +144,16 @@ public final class ConversationController { controllers.mapController.activateMapObjectGroup(map, mapObjectGroupID); } - private void spawnAll(String mapName, String monsterTypeSpawnGroup) { + private void spawnAll(String mapName, String areaId) { PredefinedMap map = findMapForScriptEffect(mapName); LayeredTileMap tileMap = null; if (map == world.model.currentMap) { tileMap = world.model.currentTileMap; } for (MonsterSpawnArea area : map.spawnAreas) { - if (!area.areaID.equals(monsterTypeSpawnGroup)) continue; + if (!area.areaID.equals(areaId)) continue; controllers.monsterSpawnController.activateSpawnArea(map, tileMap, area, true); + controllers.effectController.asyncUpdateArea(area.area); } } @@ -161,6 +162,7 @@ public final class ConversationController { for (MonsterSpawnArea area : map.spawnAreas) { if (!area.areaID.equals(areaID)) continue; controllers.monsterSpawnController.deactivateSpawnArea(area, removeAllMonsters); + if (removeAllMonsters) controllers.effectController.asyncUpdateArea(area.area); } } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/VisualEffectController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/VisualEffectController.java index e7e67dd2f..9777a42c4 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/VisualEffectController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/VisualEffectController.java @@ -263,6 +263,10 @@ public final class VisualEffectController { return -1; } } + + public void asyncUpdateArea(CoordRect area) { + visualEffectFrameListeners.onAsyncAreaUpdate(area); + } } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/listeners/VisualEffectFrameListener.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/listeners/VisualEffectFrameListener.java index c794c8624..8c8d6bbce 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/listeners/VisualEffectFrameListener.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/listeners/VisualEffectFrameListener.java @@ -2,10 +2,12 @@ package com.gpl.rpg.AndorsTrail.controller.listeners; import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.SpriteMoveAnimation; import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.VisualEffectAnimation; +import com.gpl.rpg.AndorsTrail.util.CoordRect; public interface VisualEffectFrameListener { void onNewAnimationFrame(VisualEffectAnimation animation, int tileID, int textYOffset); void onAnimationCompleted(VisualEffectAnimation animation); void onNewSpriteMoveFrame(SpriteMoveAnimation animation); void onSpriteMoveCompleted(SpriteMoveAnimation animation); + void onAsyncAreaUpdate(CoordRect area); } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/listeners/VisualEffectFrameListeners.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/listeners/VisualEffectFrameListeners.java index 48a756c0e..4abe7d0f5 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/listeners/VisualEffectFrameListeners.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/listeners/VisualEffectFrameListeners.java @@ -2,6 +2,7 @@ package com.gpl.rpg.AndorsTrail.controller.listeners; import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.SpriteMoveAnimation; import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.VisualEffectAnimation; +import com.gpl.rpg.AndorsTrail.util.CoordRect; import com.gpl.rpg.AndorsTrail.util.ListOfListeners; public final class VisualEffectFrameListeners extends ListOfListeners implements VisualEffectFrameListener { @@ -22,6 +23,10 @@ public final class VisualEffectFrameListeners extends ListOfListeners onAsyncAreaUpdate = new Function1() { + @Override public void call(VisualEffectFrameListener listener, CoordRect area) { listener.onAsyncAreaUpdate(area); } + }; + @Override public void onNewAnimationFrame(VisualEffectAnimation animation, int tileID, int textYOffset) { callAllListeners(this.onNewAnimationFrame, animation, tileID, textYOffset); @@ -41,4 +46,9 @@ public final class VisualEffectFrameListeners extends ListOfListeners preloadedTileIDs = new HashSet(); diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/MainView.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/MainView.java index c632ae72d..58b8dc3f4 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/MainView.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/MainView.java @@ -210,7 +210,7 @@ public final class MainView extends SurfaceView SurfaceChanged, MapChanged, PlayerMoved, MapScrolling, FilterAnimation } private static enum RedrawAreaDebugReason { - MonsterMoved, MonsterKilled, EffectCompleted + MonsterMoved, MonsterKilled, EffectCompleted, AsyncRequest } private static enum RedrawTileDebugReason { SelectionRemoved, SelectionAdded, Bag @@ -852,6 +852,11 @@ public final class MainView extends SurfaceView public void onSpriteMoveCompleted(SpriteMoveAnimation animation) { redrawArea(CoordRect.getBoundingRect(animation.origin, animation.destination, animation.actor.tileSize), RedrawAreaDebugReason.EffectCompleted); } + + @Override + public void onAsyncAreaUpdate(CoordRect area) { + redrawArea(area, RedrawAreaDebugReason.AsyncRequest); + } @Override public void onNewTick() {