Minor fix to loading json files from raw/.

This commit is contained in:
Oskar Wiksten
2013-01-21 21:04:08 +01:00
parent 8e75512cfa
commit 76eaf13772
2 changed files with 23 additions and 30 deletions

View File

@@ -21,7 +21,7 @@ public final class ConversationLoader {
ConversationListParser conversationListParser = new ConversationListParser();
int resourceID = resourceIDsPerPhraseID.get(phraseID);
conversationCollection.initialize(conversationListParser, ResourceLoader.readStringFromRawResource(r, resourceID));
conversationCollection.initialize(conversationListParser, ResourceLoader.readStringFromRaw(r, resourceID));
return conversationCollection.getPhrase(phraseID);
}

View File

@@ -1,32 +1,22 @@
package com.gpl.rpg.AndorsTrail.resource;
import android.content.res.Resources;
import android.content.res.TypedArray;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.conversation.ConversationCollection;
import com.gpl.rpg.AndorsTrail.model.map.TMXMapTranslator;
import com.gpl.rpg.AndorsTrail.resource.parsers.*;
import com.gpl.rpg.AndorsTrail.util.L;
import com.gpl.rpg.AndorsTrail.util.Size;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Collection;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.conversation.ConversationCollection;
import com.gpl.rpg.AndorsTrail.model.map.TMXMapTranslator;
import com.gpl.rpg.AndorsTrail.resource.parsers.ActorConditionsTypeParser;
import com.gpl.rpg.AndorsTrail.resource.parsers.ConversationListParser;
import com.gpl.rpg.AndorsTrail.resource.parsers.DropListParser;
import com.gpl.rpg.AndorsTrail.resource.parsers.ItemCategoryParser;
import com.gpl.rpg.AndorsTrail.resource.parsers.ItemTypeParser;
import com.gpl.rpg.AndorsTrail.resource.parsers.MonsterTypeParser;
import com.gpl.rpg.AndorsTrail.resource.parsers.QuestParser;
import com.gpl.rpg.AndorsTrail.resource.parsers.WorldMapParser;
import com.gpl.rpg.AndorsTrail.util.L;
import com.gpl.rpg.AndorsTrail.util.Size;
import android.content.res.Resources;
import android.content.res.TypedArray;
import org.json.JSONArray;
import org.json.JSONException;
public final class ResourceLoader {
private static final int itemCategoriesResourceId = R.array.loadresource_itemcategories;
@@ -88,7 +78,7 @@ public final class ResourceLoader {
final ItemCategoryParser itemCategoryParser = new ItemCategoryParser();
final TypedArray categoriesToLoad = r.obtainTypedArray(itemCategoriesResourceId);
for (int i = 0; i < categoriesToLoad.length(); ++i) {
world.itemCategories.initialize(itemCategoryParser, readStringFromRawResource(r, categoriesToLoad.getResourceId(i, -1)));
world.itemCategories.initialize(itemCategoryParser, readStringFromRaw(r, categoriesToLoad, i));
}
if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) timingCheckpoint("ItemCategoryParser");
@@ -97,7 +87,7 @@ public final class ResourceLoader {
final ActorConditionsTypeParser actorConditionsTypeParser = new ActorConditionsTypeParser(loader);
final TypedArray conditionsToLoad = r.obtainTypedArray(actorConditionsResourceId);
for (int i = 0; i < conditionsToLoad.length(); ++i) {
world.actorConditionsTypes.initialize(actorConditionsTypeParser, readStringFromRawResource(r, conditionsToLoad.getResourceId(i, -1)));
world.actorConditionsTypes.initialize(actorConditionsTypeParser, readStringFromRaw(r, conditionsToLoad, i));
}
if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) timingCheckpoint("ActorConditionsTypeParser");
@@ -112,7 +102,7 @@ public final class ResourceLoader {
final ItemTypeParser itemTypeParser = new ItemTypeParser(loader, world.actorConditionsTypes, world.itemCategories);
final TypedArray itemsToLoad = r.obtainTypedArray(itemsResourceId);
for (int i = 0; i < itemsToLoad.length(); ++i) {
world.itemTypes.initialize(itemTypeParser, readStringFromRawResource(r, itemsToLoad.getResourceId(i, -1)));
world.itemTypes.initialize(itemTypeParser, readStringFromRaw(r, itemsToLoad, i));
}
if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) timingCheckpoint("ItemTypeParser");
@@ -122,7 +112,7 @@ public final class ResourceLoader {
final DropListParser dropListParser = new DropListParser(world.itemTypes);
final TypedArray droplistsToLoad = r.obtainTypedArray(droplistsResourceId);
for (int i = 0; i < droplistsToLoad.length(); ++i) {
world.dropLists.initialize(dropListParser, readStringFromRawResource(r, droplistsToLoad.getResourceId(i, -1)));
world.dropLists.initialize(dropListParser, readStringFromRaw(r, droplistsToLoad, i));
}
if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) timingCheckpoint("DropListParser");
@@ -132,7 +122,7 @@ public final class ResourceLoader {
final QuestParser questParser = new QuestParser();
final TypedArray questsToLoad = r.obtainTypedArray(questsResourceId);
for (int i = 0; i < questsToLoad.length(); ++i) {
world.quests.initialize(questParser, readStringFromRawResource(r, questsToLoad.getResourceId(i, -1)));
world.quests.initialize(questParser, readStringFromRaw(r, questsToLoad, i));
}
if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) timingCheckpoint("QuestParser");
@@ -143,7 +133,7 @@ public final class ResourceLoader {
final TypedArray conversationsListsToLoad = r.obtainTypedArray(conversationsListsResourceId);
for (int i = 0; i < conversationsListsToLoad.length(); ++i) {
ConversationCollection conversations = new ConversationCollection();
Collection<String> ids = conversations.initialize(conversationListParser, readStringFromRawResource(r, conversationsListsToLoad.getResourceId(i, -1)));
Collection<String> ids = conversations.initialize(conversationListParser, readStringFromRaw(r, conversationsListsToLoad, i));
world.conversationLoader.addIDs(conversationsListsToLoad.getResourceId(i, -1), ids);
}
if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) timingCheckpoint("ConversationListParser");
@@ -154,7 +144,7 @@ public final class ResourceLoader {
final MonsterTypeParser monsterTypeParser = new MonsterTypeParser(world.dropLists, world.actorConditionsTypes, loader);
final TypedArray monstersToLoad = r.obtainTypedArray(monstersResourceId);
for (int i = 0; i < monstersToLoad.length(); ++i) {
world.monsterTypes.initialize(monsterTypeParser, readStringFromRawResource(r, monstersToLoad.getResourceId(i, -1)));
world.monsterTypes.initialize(monsterTypeParser, readStringFromRaw(r, monstersToLoad, i));
}
if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) timingCheckpoint("MonsterTypeParser");
@@ -196,7 +186,10 @@ public final class ResourceLoader {
}
}
public static String readStringFromRawResource(final Resources r, int resourceID) {
public static String readStringFromRaw(final Resources r, final TypedArray array, final int index) {
return readStringFromRaw(r, array.getResourceId(index, -1));
}
public static String readStringFromRaw(final Resources r, final int resourceID) {
InputStream is = r.openRawResource(resourceID);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder(1000);