Files
wagic/projects/mtg/src/Credits.cpp
T
wrenczes@gmail.com 2063e27681 Added a debug helper override class for ifstream - this normally washes out to std::ifstream. If #define TRACK_FILE_USAGE_STATS is enabled, it derives from ifstream, but additionally tracks each time we create an instance for a given file name & counts each hit in a map, and dump the statistics on shutdown. This is to help track how often we open up certain files, since i/o is costly on the psp.
Here's an sample run on my win box where I launched & ran the test suite once (note that for more interesting stats, forcing a low memory condition would be more interesting so that it'll thrash more):

-------------------
File Usage Statistics

../../../wagic_res/graphics/simon.dat  -- 1
../../wagic_res/graphics/simon.dat  -- 1
../wagic_res/graphics/simon.dat  -- 1
22222220.jpg  -- 1
42187t.jpg  -- 1
4514111t.jpg  -- 1
4838511t.jpg  -- 1
4838512t.jpg  -- 1
51613t.jpg  -- 1
89069t.jpg  -- 1
Advisor.wav  -- 1
Ally.wav  -- 1
Angel Token.jpg  -- 1
Angel.wav  -- 1
Ape.wav  -- 1
Archer.wav  -- 1
Assassin.wav  -- 1
Atog.wav  -- 1
Aura.wav  -- 1
Barbarian.wav  -- 1
Basic.wav  -- 1
Bat.wav  -- 1
Bear.jpg  -- 1
Beast Token.jpg  -- 1
Berserker.wav  -- 1
Bird.wav  -- 1
Centaur.wav  -- 1
Cleric.wav  -- 1
Cockatrice.wav  -- 1
Construct.wav  -- 1
Crocodile.wav  -- 1
Cyclops.wav  -- 1
Dauthi.wav  -- 1
Demon.wav  -- 1
Dragon.jpg  -- 1
Drake.wav  -- 1
Druid.wav  -- 1
Dryad.wav  -- 1
Dwarf.wav  -- 1
Efreet.wav  -- 1
Elemental.wav  -- 1
Elephant.wav  -- 1
Elf.wav  -- 1
Elk.wav  -- 1
Equipment.wav  -- 1
Forest.wav  -- 1
Frog.wav  -- 1
Fungus.wav  -- 1
Giant.wav  -- 1
Gnome.wav  -- 1
Golem.wav  -- 1
Horror.wav  -- 1
Horse.wav  -- 1
Hydra.wav  -- 1
Illusion.wav  -- 1
Insect Token.jpg  -- 1
Insect.jpg  -- 1
Insect.wav  -- 1
Island.wav  -- 1
Juggernaut.wav  -- 1
Kithkin.wav  -- 1
Kobold.wav  -- 1
Kor.wav  -- 1
Kraken.wav  -- 1
Lair.wav  -- 1
Land.wav  -- 1
Leech.wav  -- 1
Legendary.wav  -- 1
Leviathan.wav  -- 1
Lhurgoyf.wav  -- 1
Lizard.wav  -- 1
Masticore.wav  -- 1
Mercenary.wav  -- 1
Merfolk.wav  -- 1
Metathran.wav  -- 1
Minion.wav  -- 1
Minotaur.wav  -- 1
Monk.wav  -- 1
Mountain.wav  -- 1
Mutant.wav  -- 1
Myr.wav  -- 1
Nightmare.wav  -- 1
Nothing.wav  -- 1
Ogre.wav  -- 1
Ooze.wav  -- 1
Orc.wav  -- 1
Orgg.wav  -- 1
Ouphe.wav  -- 1
Pirate.wav  -- 1
Plains.wav  -- 1
Plant.wav  -- 1
Rat.wav  -- 1
Rebel.wav  -- 1
Res.txt  -- 1
Res/../../../wagic_res/graphics/simon.dat  -- 1
Res/../../wagic_res/graphics/simon.dat  -- 1
Res/../wagic_res/graphics/simon.dat  -- 1
Res//test/Amugaba.txt  -- 1
Res//test/Auriok_Sunchaser_ASLONGAS_1.txt  -- 1
Res//test/Auriok_Sunchaser_ASLONGAS_2.txt  -- 1
Res//test/Call_to_Heel_1.txt  -- 1
Res//test/Call_to_Heel_2.txt  -- 1
Res//test/Covetous_Dragon_ASLONGAS_3.txt  -- 1
Res//test/Covetous_Dragon_ASLONGAS_4.txt  -- 1
Res//test/Glimmervoid_ASLONGAS&TRIGGER.txt  -- 1
Res//test/Nevinyrrals_Disk.txt  -- 1
Res//test/Nevinyrrals_Disk2.txt  -- 1
Res//test/Nyxathid.txt  -- 1
Res//test/OneDozenEyes.txt  -- 1
Res//test/Zombie_Infestation.txt  -- 1
Res//test/act_of_treason.txt  -- 1
Res//test/aegis_of_the_meek.txt  -- 1
Res//test/aether_flash.txt  -- 1
Res//test/aether_mutation.txt  -- 1
Res//test/afflict.txt  -- 1
Res//test/akron_legionnaire.txt  -- 1
Res//test/alabaster_dragon.txt  -- 1
Res//test/alabaster_leech.txt  -- 1
Res//test/alabaster_leech2.txt  -- 1
Res//test/alluring_siren.txt  -- 1
Res//test/anarchy.txt  -- 1
Res//test/ancestors_chosen.txt  -- 1
Res//test/angry_mob1.txt  -- 1
Res//test/angry_mob2.txt  -- 1
Res//test/angry_mob3.txt  -- 1
Res//test/angry_mob4.txt  -- 1
Res//test/angry_mob4b.txt  -- 1
Res//test/angry_mob5.txt  -- 1
Res//test/angry_mob7.txt  -- 1
Res//test/animate_artifact.txt  -- 1
Res//test/animate_artifact2.txt  -- 1
Res//test/animate_dead.txt  -- 1
Res//test/animate_dead2.txt  -- 1
Res//test/animate_dead3.txt  -- 1
Res//test/animated_legendaries1_i221.txt  -- 1
Res//test/animated_legendaries2_i221.txt  -- 1
Res//test/animated_legendaries3_i221.txt  -- 1
Res//test/ankh_of_mishra.txt  -- 1
Res//test/arcanis_the_omnipotent.txt  -- 1
Res//test/arcanis_the_omnipotent2.txt  -- 1
Res//test/arcbound.txt  -- 1
Res//test/ardakar_wastes.txt  -- 1
Res//test/ardent_soldier.txt  -- 1
Res//test/argothian_enchantress.txt  -- 1
Res//test/armadillo_cloak.txt  -- 1
Res//test/ascendant_evincar.txt  -- 1
Res//test/ascendant_evincar2.txt  -- 1
Res//test/ascendant_evincar3.txt  -- 1
Res//test/ashen_firebeast.txt  -- 1
Res//test/ashen_firebeast2.txt  -- 1
Res//test/aura_mutation.txt  -- 1
Res//test/avarice_totem.txt  -- 1
Res//test/aven_riftwatcher.txt  -- 1
Res//test/aven_riftwatcher2.txt  -- 1
Res//test/aysen_bureaucrats.txt  -- 1
Res//test/balduvian_conjurer.txt  -- 1
Res//test/baneslayer_angel.txt  -- 1
Res//test/baneslayer_angel2.txt  -- 1
Res//test/barbed_sliver.txt  -- 1
Res//test/basal_sliver.txt  -- 1
Res//test/beacon_of_creation.txt  -- 1
Res//test/beacon_of_destruction.txt  -- 1
Res//test/beacon_of_unrest.txt  -- 1
Res//test/behemoth_sledge.txt  -- 1
Res//test/behemoth_sledge2.txt  -- 1
Res//test/behemoth_sledge3.txt  -- 1
Res//test/behemoth_sledge4.txt  -- 1
Res//test/behemoth_sledge5.txt  -- 1
Res//test/belligerent_hatchling.txt  -- 1
Res//test/benalish_knight.txt  -- 1
Res//test/biorhythm.txt  -- 1
Res//test/black_market.txt  -- 1
Res//test/black_vise.txt  -- 1
Res//test/blessed_wind.txt  -- 1
Res//test/blessed_wine.txt  -- 1
Res//test/blinking_spirit.txt  -- 1
Res//test/blinkmoth_nexus.txt  -- 1
Res//test/bloated_toad1.txt  -- 1
Res//test/bloated_toad2.txt  -- 1
Res//test/bloodfire_colossus.txt  -- 1
Res//test/bloodhall_ooze.txt  -- 1
Res//test/bloodscale_prowler.txt  -- 1
Res//test/body_double.txt  -- 1
Res//test/boggart_arsonists.txt  -- 1
Res//test/borderland_behemoth.txt  -- 1
Res//test/bottle_gnomes.txt  -- 1
Res//test/bottle_gnomes2.txt  -- 1
Res//test/brainstorm.txt  -- 1
Res//test/bramblewood_paragon.txt  -- 1
Res//test/brass_man.txt  -- 1
Res//test/brass_man_i161.txt  -- 1
Res//test/briarhorn.txt  -- 1
Res//test/cage_of_hands.txt  -- 1
Res//test/castle.txt  -- 1
Res//test/cathodion.txt  -- 1
Res//test/celestial_purge.txt  -- 1
Res//test/chainbreaker.txt  -- 1
Res//test/circle_of_protection.txt  -- 1
Res//test/circle_of_protection_i211.txt  -- 1
Res//test/civic_wayfinder.txt  -- 1
Res//test/clone.txt  -- 1
Res//test/clone2.txt  -- 1
Res//test/clone3.txt  -- 1
Res//test/cockatrice.txt  -- 1
Res//test/cockatrice_i228.txt  -- 1
Res//test/colossus_of_sardia1.txt  -- 1
Res//test/colossus_of_sardia2.txt  -- 1
Res//test/composite_golem.txt  -- 1
Res//test/conservator.txt  -- 1
Res//test/control_magic.txt  -- 1
Res//test/control_magic2.txt  -- 1
Res//test/control_magic3.txt  -- 1
Res//test/control_magic4.txt  -- 1
Res//test/corrupt.txt  -- 1
Res//test/counsel_of_the_soratami.txt  -- 1
Res//test/counterspell.txt  -- 1
Res//test/counterspell2.txt  -- 1
Res//test/counterspell3.txt  -- 1
Res//test/counterspell4.txt  -- 1
Res//test/cranial_plating.txt  -- 1
Res//test/creature_bond.txt  -- 1
Res//test/crimson_kobolds.txt  -- 1
Res//test/crosis_s_catacombs_1.txt  -- 1
Res//test/crosis_s_catacombs_2.txt  -- 1
Res//test/crumble.txt  -- 1
Res//test/crystal_rod_i172.txt  -- 1
Res//test/curiosity1_i217.txt  -- 1
Res//test/curiosity2_i217.txt  -- 1
Res//test/dark_banishing.txt  -- 1
Res//test/dauntless_escort.txt  -- 1
Res//test/dauthi_embrace.txt  -- 1
Res//test/death_grasp.txt  -- 1
Res//test/death_ward.txt  -- 1
Res//test/decree_of_justice.txt  -- 1
Res//test/deja_vu.txt  -- 1
Res//test/delusions_of_mediocrity.txt  -- 1
Res//test/dematerialize_flashback.txt  -- 1
Res//test/dingus_egg.txt  -- 1
Res//test/dingus_staff_i153.txt  -- 1
Res//test/divergent_growth.txt  -- 1
Res//test/doomed_necromancer.txt  -- 1
Res//test/double_strike2_i145.txt  -- 1
Res//test/double_strike_i145.txt  -- 1
Res//test/dragon_broodmother_i491.txt  -- 1
Res//test/dragon_fodder.txt  -- 1
Res//test/dragon_fodder2.txt  -- 1
Res//test/dragon_whelp_i154.txt  -- 1
Res//test/drain_life.txt  -- 1
Res//test/dream_fracture_i142.txt  -- 1
Res//test/drift_of_the_dead.txt  -- 1
Res//test/dromad_purebred.txt  -- 1
Res//test/dross_golem.txt  -- 1
Res//test/dross_harvester.txt  -- 1
Res//test/duskwalker.txt  -- 1
Res//test/dust_corona.txt  -- 1
Res//test/dwarven_warriors.txt  -- 1
Res//test/ebony_horse.txt  -- 1
Res//test/ekundu_cyclops1_i218.txt  -- 1
Res//test/ekundu_cyclops2_i218.txt  -- 1
Res//test/elvish_piper.txt  -- 1
Res//test/elvish_promenade.txt  -- 1
Res//test/emblem_of_the_warmind.txt  -- 1
Res//test/enchanted evening.txt  -- 1
Res//test/enchantress_s_presence.txt  -- 1
Res//test/enervate.txt  -- 1
Res//test/erg_raiders_i157.txt  -- 1
Res//test/explore.txt  -- 1
Res//test/fangren_pathcutter.txt  -- 1
Res//test/farhaven_elf.txt  -- 1
Res//test/farmstead.txt  -- 1
Res//test/fastbond.txt  -- 1
Res//test/fastbond2.txt  -- 1
Res//test/fault_line.txt  -- 1
Res//test/feral_hydra.txt  -- 1
Res//test/fieldmist_borderpost.txt  -- 1
Res//test/fire_tempest.txt  -- 1
Res//test/firebreathing.txt  -- 1
Res//test/fists_of_ironwood.txt  -- 1
Res//test/flagstones.txt  -- 1
Res//test/flame_fusillade_i265.txt  -- 1
Res//test/flare.txt  -- 1
Res//test/fledgling_imp.txt  -- 1
Res//test/fledgling_imp2.txt  -- 1
Res//test/fleshformer.txt  -- 1
Res//test/flowstone_hellion.txt  -- 1
Res//test/flowstone_slide.txt  -- 1
Res//test/fog.txt  -- 1
Res//test/fog_bank.txt  -- 1
Res//test/foratog.txt  -- 1
Res//test/force_of_nature.txt  -- 1
Res//test/force_of_nature2.txt  -- 1
Res//test/force_of_nature3.txt  -- 1
Res//test/fountain_of_youth.txt  -- 1
Res//test/frogmite.txt  -- 1
Res//test/fungus_sliver.txt  -- 1
Res//test/gamble.txt  -- 1
Res//test/gelatinous_generation.txt  -- 1
Res//test/gempalm_avenger.txt  -- 1
Res//test/generic/attacks_each_turn.txt  -- 1
Res//test/generic/becomes_transform_i559.txt  -- 1
Res//test/generic/becomes_transform_i559_2.txt  -- 1
Res//test/generic/bushido_1.txt  -- 1
Res//test/generic/bushido_2.txt  -- 1
Res//test/generic/cycling.txt  -- 1
Res//test/generic/cycling2.txt  -- 1
Res//test/generic/deathtouch.txt  -- 1
Res//test/generic/doesnotuntap.txt  -- 1
Res//test/generic/doesnotuntap2.txt  -- 1
Res//test/generic/double_strike.txt  -- 1
Res//test/generic/equip_landfall_buff.txt  -- 1
Res//test/generic/equip_reach.txt  -- 1
Res//test/generic/equip_shroud.txt  -- 1
Res//test/generic/equip_shroud2.txt  -- 1
Res//test/generic/equip_wither.txt  -- 1
Res//test/generic/equipment_i252.txt  -- 1
Res//test/generic/exalted.txt  -- 1
Res//test/generic/exalted_i143.txt  -- 1
Res//test/generic/exalted_i310.txt  -- 1
Res//test/generic/fear.txt  -- 1
Res//test/generic/fear_i147.txt  -- 1
Res//test/generic/first_and_double_strike1_i187.txt  -- 1
Res//test/generic/first_and_double_strike2_i187.txt  -- 1
Res//test/generic/first_strike.txt  -- 1
Res//test/generic/first_strike2.txt  -- 1
Res//test/generic/first_strike3.txt  -- 1
Res//test/generic/flanking.txt  -- 1
Res//test/generic/fresh.txt  -- 1
Res//test/generic/hybrid_mana.txt  -- 1
Res//test/generic/hybrid_mana_2.txt  -- 1
Res//test/generic/hybrid_mana_3.txt  -- 1
Res//test/generic/indestructible.txt  -- 1
Res//test/generic/kicker.txt  -- 1
Res//test/generic/kicker2.txt  -- 1
Res//test/generic/landwalk.txt  -- 1
Res//test/generic/legendary.txt  -- 1
Res//test/generic/level_up.txt  -- 1
Res//test/generic/level_up2.txt  -- 1
Res//test/generic/lifelink.txt  -- 1
Res//test/generic/lord_counter.txt  -- 1
Res//test/generic/lord_counter_any.txt  -- 1
Res//test/generic/m10_blockers.txt  -- 1
Res//test/generic/m10_blockers2.txt  -- 1
Res//test/generic/must1.txt  -- 1
Res//test/generic/must2.txt  -- 1
Res//test/generic/nofizzle.txt  -- 1
Res//test/generic/oneblocker.txt  -- 1
Res//test/generic/persist.txt  -- 1
Res//test/generic/persist2.txt  -- 1
Res//test/generic/persist3.txt  -- 1
Res//test/generic/phases.txt  -- 1
Res//test/generic/preventalldamage.txt  -- 1
Res//test/generic/rampage.txt  -- 1
Res//test/generic/rampage2.txt  -- 1
Res//test/generic/rampage3.txt  -- 1
Res//test/generic/rampage_vs_first_strike.txt  -- 1
Res//test/generic/regenerate.txt  -- 1
Res//test/generic/regenerate_wither_i146.txt  -- 1
Res//test/generic/sacrifice.txt  -- 1
Res//test/generic/summoning_sickness.txt  -- 1
Res//test/generic/sunburst.txt  -- 1
Res//test/generic/tap_other_card_as_cost.txt  -- 1
Res//test/generic/targetController_damage.txt  -- 1
Res//test/generic/targetController_life.txt  -- 1
Res//test/generic/targetController_life2.txt  -- 1
Res//test/generic/thisforeach.txt  -- 1
Res//test/generic/tokens.txt  -- 1
Res//test/generic/tokens2.txt  -- 1
Res//test/generic/trample.txt  -- 1
Res//test/generic/trample_vs_indestructible.txt  -- 1
Res//test/generic/trample_vs_multiblock.txt  -- 1
Res//test/generic/triggers_at_movedto_i179.txt  -- 1
Res//test/generic/triggers_attacking.txt  -- 1
Res//test/generic/triggers_blocking.txt  -- 1
Res//test/generic/triggers_combatdamaged_1.txt  -- 1
Res//test/generic/triggers_combatdamaged_2.txt  -- 1
Res//test/generic/triggers_drawn.txt  -- 1
Res//test/generic/triggers_noncombatdamaged.txt  -- 1
Res//test/generic/triggers_untapped.txt  -- 1
Res//test/generic/wither.txt  -- 1
Res//test/ghost_warden.txt  -- 1
Res//test/giant_growth.txt  -- 1
Res//test/giant_growth2.txt  -- 1
Res//test/glen_elendra_archmage_i222.txt  -- 1
Res//test/glimpse_the_unthinkable.txt  -- 1
Res//test/gnarled_effigy.txt  -- 1
Res//test/gnat_alley_creeper1.txt  -- 1
Res//test/gnat_alley_creeper2.txt  -- 1
Res//test/goblin_balloon_brigade.txt  -- 1
Res//test/goblin_balloon_brigade2.txt  -- 1
Res//test/goblin_gardener.txt  -- 1
Res//test/goblin_king.txt  -- 1
Res//test/goblin_lackey1.txt  -- 1
Res//test/goblin_lackey2.txt  -- 1
Res//test/goblin_lackey3.txt  -- 1
Res//test/goblin_lackey4.txt  -- 1
Res//test/goblin_offensive.txt  -- 1
Res//test/goblin_razerunners.txt  -- 1
Res//test/golgari_germination_i153.txt  -- 1
Res//test/gravedigger.txt  -- 1
Res//test/gravity_well.txt  -- 1
Res//test/gravity_well2.txt  -- 1
Res//test/great_defender.txt  -- 1
Res//test/hannas_custody.txt  -- 1
Res//test/harpoon_sniper.txt  -- 1
Res//test/hellfire.txt  -- 1
Res//test/helm_of_kaldra1.txt  -- 1
Res//test/holy_day_i226.txt  -- 1
Res//test/hope_charm_i267.txt  -- 1
Res//test/hopping_automaton_i232.txt  -- 1
Res//test/horned_helm.txt  -- 1
Res//test/howl_from_beyond.txt  -- 1
Res//test/howl_of_the_night_pack.txt  -- 1
Res//test/hunted_dragon.txt  -- 1
Res//test/hunting_pack.txt  -- 1
Res//test/hurricane.txt  -- 1
Res//test/hyalopterous_lemure.txt  -- 1
Res//test/hymn_of_rebirth.txt  -- 1
Res//test/hypnotic_specter.txt  -- 1
Res//test/icatian_priest.txt  -- 1
Res//test/imaginary_pet.txt  -- 1
Res//test/immaculate_magistrate.txt  -- 1
Res//test/incinerate.txt  -- 1
Res//test/instill_energy_i166.txt  -- 1
Res//test/iron_will_i270.txt  -- 1
Res//test/ivy_elemental.txt  -- 1
Res//test/jodahs_avenger.txt  -- 1
Res//test/juggernaut.txt  -- 1
Res//test/jump.txt  -- 1
Res//test/juniper_order_ranger.txt  -- 1
Res//test/karns_touch_i233.txt  -- 1
Res//test/keldon_warlord.txt  -- 1
Res//test/keldon_warlord2.txt  -- 1
Res//test/khalni_hydra.txt  -- 1
Res//test/kird_ape.txt  -- 1
Res//test/kjeldoran_frostbeast1.txt  -- 1
Res//test/kjeldoran_frostbeast2_i167.txt  -- 1
Res//test/knight_captain_of_eos_i294.txt  -- 1
Res//test/knight_captain_of_eos_i294_2.txt  -- 1
Res//test/kormus_bell_i301.txt  -- 1
Res//test/kraken_eye.txt  -- 1
Res//test/kraken_eye2.txt  -- 1
Res//test/kraken_eye3.txt  -- 1
Res//test/kraken_eye4.txt  -- 1
Res//test/krosan_beast.txt  -- 1
Res//test/krosan_beast2.txt  -- 1
Res//test/kudzu.txt  -- 1
Res//test/kudzu2.txt  -- 1
Res//test/kudzu_i168.txt  -- 1
Res//test/leveler.txt  -- 1
Res//test/lhurgoyf.txt  -- 1
Res//test/liability.txt  -- 1
Res//test/lifeforce.txt  -- 1
Res//test/lifetap.txt  -- 1
Res//test/lightmine_field1.txt  -- 1
Res//test/lightmine_field2.txt  -- 1
Res//test/living_artifact_i169.txt  -- 1
Res//test/living_lands.txt  -- 1
Res//test/lord_of_the_pit.txt  -- 1
Res//test/lord_of_the_pit2.txt  -- 1
Res//test/magma_spray.txt  -- 1
Res//test/martial_coup.txt  -- 1
Res//test/martial_coup2.txt  -- 1
Res//test/master_decoy.txt  -- 1
Res//test/master_of_etherium.txt  -- 1
Res//test/masticore.txt  -- 1
Res//test/masticore2.txt  -- 1
Res//test/maze_of_ith.txt  -- 1
Res//test/meekstone.txt  -- 1
Res//test/memnarch.txt  -- 1
Res//test/memory_erosion.txt  -- 1
Res//test/mephidross_vampire.txt  -- 1
Res//test/millstone.txt  -- 1
Res//test/mirri_the_cursed.txt  -- 1
Res//test/mirri_the_cursed2_i284.txt  -- 1
Res//test/misc01.txt  -- 1
Res//test/moat.txt  -- 1
Res//test/mobile_fort.txt  -- 1
Res//test/momir/keldon_warlord.txt  -- 1
Res//test/momir/overcost.txt  -- 1
Res//test/momir/persist_i304.txt  -- 1
Res//test/mortuary.txt  -- 1
Res//test/nantuko_husk.txt  -- 1
Res//test/natural_order.txt  -- 1
Res//test/necrogenesis.txt  -- 1
Res//test/nightmare.txt  -- 1
Res//test/northern_paladin.txt  -- 1
Res//test/northern_paladin2.txt  -- 1
Res//test/ondu_cleric.txt  -- 1
Res//test/orcish_artillery.txt  -- 1
Res//test/orcish_lumberjack.txt  -- 1
Res//test/overrun.txt  -- 1
Res//test/paradise_mantle.txt  -- 1
Res//test/paralysis.txt  -- 1
Res//test/paralysis2.txt  -- 1
Res//test/persuasion.txt  -- 1
Res//test/phytohydra.txt  -- 1
Res//test/plague_rats.txt  -- 1
Res//test/plumes_of_peace_i260.txt  -- 1
Res//test/pouncing_jaguar_i425.txt  -- 1
Res//test/promise_of_bunrei_i305.txt  -- 1
Res//test/prosperity.txt  -- 1
Res//test/protomatter_powder.txt  -- 1
Res//test/prowess_of_the_fair.txt  -- 1
Res//test/prowess_of_the_fair2.txt  -- 1
Res//test/prowess_of_the_fair3.txt  -- 1
Res//test/pygmy_troll.txt  -- 1
Res//test/pyknite_i426.txt  -- 1
Res//test/pyroclasm.txt  -- 1
Res//test/quilled_sliver.txt  -- 1
Res//test/rain_of_filth_i206.txt  -- 1
Res//test/rain_of_filth_i283.txt  -- 1
Res//test/rampant_growth.txt  -- 1
Res//test/rancid_earth_with_threshold.txt  -- 1
Res//test/rancid_earth_without_threshold.txt  -- 1
Res//test/rancor.txt  -- 1
Res//test/ray_of_command.txt  -- 1
Res//test/ray_of_command_i176.txt  -- 1
Res//test/razor_golem.txt  -- 1
Res//test/reclusive_wight.txt  -- 1
Res//test/reclusive_wight2.txt  -- 1
Res//test/recover.txt  -- 1
Res//test/regal_force.txt  -- 1
Res//test/reinforcements_1.txt  -- 1
Res//test/resounding_roar.txt  -- 1
Res//test/resurrection.txt  -- 1
Res//test/resuscitate_i210.txt  -- 1
Res//test/righteous_cause.txt  -- 1
Res//test/river_kelpie2_i335.txt  -- 1
Res//test/rockslide_elemental.txt  -- 1
Res//test/rootwalla.txt  -- 1
Res//test/royal_assassin.txt  -- 1
Res//test/sacred_foundry_i275.txt  -- 1
Res//test/safe_passage.txt  -- 1
Res//test/safehold_duo.txt  -- 1
Res//test/samite_healer.txt  -- 1
Res//test/scourge_of_kher_ridges.txt  -- 1
Res//test/scourge_of_kher_ridges2.txt  -- 1
Res//test/scourglass.txt  -- 1
Res//test/scouts_warning.txt  -- 1
Res//test/scute_mob.txt  -- 1
Res//test/sedge_sliver.txt  -- 1
Res//test/seedcradle_witch.txt  -- 1
Res//test/seismic_assault.txt  -- 1
Res//test/seismic_spike_i191.txt  -- 1
Res//test/selesnya_guildmage.txt  -- 1
Res//test/shard_volley.txt  -- 1
Res//test/shepherd_of_rot.txt  -- 1
Res//test/shivan_hellkite.txt  -- 1
Res//test/shock.txt  -- 1
Res//test/shock2.txt  -- 1
Res//test/siege_gang_commander.txt  -- 1
Res//test/sigil_captain_i467.txt  -- 1
Res//test/silver_seraph_i300.txt  -- 1
Res//test/simic_initiate.txt  -- 1
Res//test/skullcage0_i239.txt  -- 1
Res//test/skullcage1_i239.txt  -- 1
Res//test/skullcage2_i239.txt  -- 1
Res//test/skullcage3_i239.txt  -- 1
Res//test/skullcage4_i239.txt  -- 1
Res//test/skullcage5_i239.txt  -- 1
Res//test/skullcage6_i239.txt  -- 1
Res//test/skullcage7_i239.txt  -- 1
Res//test/skullclamp.txt  -- 1
Res//test/skullclamp2_i439.txt  -- 1
Res//test/slate_of_ancestry.txt  -- 1
Res//test/sleeper_agent.txt  -- 1
Res//test/slith_bloodletter.txt  -- 1
Res//test/sneak_attack.txt  -- 1
Res//test/soulblast.txt  -- 1
Res//test/souls_attendant_i489.txt  -- 1
Res//test/spark_elemental.txt  -- 1
Res//test/sphinx_summoner.txt  -- 1
Res//test/spirit_link.txt  -- 1
Res//test/spitting_earth.txt  -- 1
Res//test/spoils_of_evil.txt  -- 1
Res//test/spore_frog.txt  -- 1
Res//test/stasis.txt  -- 1
Res//test/steelclad_serpent1.txt  -- 1
Res//test/steelclad_serpent2.txt  -- 1
Res//test/stillmoon_cavalier.txt  -- 1
Res//test/stonebrow2.txt  -- 1
Res//test/stonebrow_i159.txt  -- 1
Res//test/stronghold_discipline.txt  -- 1
Res//test/sword_to_plowshares.txt  -- 1
Res//test/sylvan_scrying_i195.txt  -- 1
Res//test/symbiotic_wurm.txt  -- 1
Res//test/tangle_golem.txt  -- 1
Res//test/tanglesap.txt  -- 1
Res//test/telekinetic_sliver.txt  -- 1
Res//test/terror.txt  -- 1
Res//test/terror2.txt  -- 1
Res//test/thallid.txt  -- 1
Res//test/thellon_of_havenwood.txt  -- 1
Res//test/threaten.txt  -- 1
Res//test/throne_of_bone.txt  -- 1
Res//test/thunder-thrash_elder.txt  -- 1
Res//test/titanic_ultimatum.txt  -- 1
Res//test/tolsimir_wolfblood.txt  -- 1
Res//test/torture.txt  -- 1
Res//test/tranquil_domain.txt  -- 1
Res//test/twinstrike.txt  -- 1
Res//test/twinstrike2.txt  -- 1
Res//test/twinstrike3.txt  -- 1
Res//test/twitch.txt  -- 1
Res//test/uncle_istvan.txt  -- 1
Res//test/undermine_i408.txt  -- 1
Res//test/underworld_dreams.txt  -- 1
Res//test/unearth1.txt  -- 1
Res//test/unearth2.txt  -- 1
Res//test/unearth3.txt  -- 1
Res//test/unstable_mutation.txt  -- 1
Res//test/unstable_mutation2.txt  -- 1
Res//test/unwilling_recruit.txt  -- 1
Res//test/urzas_lands.txt  -- 1
Res//test/urzas_lands2.txt  -- 1
Res//test/urzas_mine_i287.txt  -- 1
Res//test/vampire_bats.txt  -- 1
Res//test/vampiric_link.txt  -- 1
Res//test/vine_dryad.txt  -- 1
Res//test/volcanic_eruption.txt  -- 1
Res//test/walking_wall.txt  -- 1
Res//test/wall_of_diffusion.txt  -- 1
Res//test/wall_of_diffusion2.txt  -- 1
Res//test/warren_instigator.txt  -- 1
Res//test/welkin_hawk.txt  -- 1
Res//test/whispers_of_the_muse.txt  -- 1
Res//test/white_knight1.txt  -- 1
Res//test/windswept_heath.txt  -- 1
Res//test/wrath_of_god.txt  -- 1
Res//test/wrath_of_god2.txt  -- 1
Res//test/wreak_havoc.txt  -- 1
Res//test/zombie_master.txt  -- 1
Res//test/zombify.txt  -- 1
Res/22222220.jpg  -- 1
Res/42187t.jpg  -- 1
Res/4514111t.jpg  -- 1
Res/4838511t.jpg  -- 1
Res/4838512t.jpg  -- 1
Res/51613t.jpg  -- 1
Res/89069t.jpg  -- 1
Res/Advisor.wav  -- 1
Res/Ally.wav  -- 1
Res/Angel Token.jpg  -- 1
Res/Angel.wav  -- 1
Res/Ape.wav  -- 1
Res/Archer.wav  -- 1
Res/Assassin.wav  -- 1
Res/Atog.wav  -- 1
Res/Aura.wav  -- 1
Res/Barbarian.wav  -- 1
Res/Basic.wav  -- 1
Res/Bat.wav  -- 1
Res/Bear.jpg  -- 1
Res/Beast Token.jpg  -- 1
Res/Berserker.wav  -- 1
Res/Bird.wav  -- 1
Res/Centaur.wav  -- 1
Res/Cleric.wav  -- 1
Res/Cockatrice.wav  -- 1
Res/Construct.wav  -- 1
Res/Crocodile.wav  -- 1
Res/Cyclops.wav  -- 1
Res/Dauthi.wav  -- 1
Res/Demon.wav  -- 1
Res/Dragon.jpg  -- 1
Res/Drake.wav  -- 1
Res/Druid.wav  -- 1
Res/Dryad.wav  -- 1
Res/Dwarf.wav  -- 1
Res/Efreet.wav  -- 1
Res/Elemental.wav  -- 1
Res/Elephant.wav  -- 1
Res/Elf.wav  -- 1
Res/Elk.wav  -- 1
Res/Equipment.wav  -- 1
Res/Forest.wav  -- 1
Res/Frog.wav  -- 1
Res/Fungus.wav  -- 1
Res/Giant.wav  -- 1
Res/Gnome.wav  -- 1
Res/Golem.wav  -- 1
Res/Horror.wav  -- 1
Res/Horse.wav  -- 1
Res/Hydra.wav  -- 1
Res/Illusion.wav  -- 1
Res/Insect Token.jpg  -- 1
Res/Insect.jpg  -- 1
Res/Insect.wav  -- 1
Res/Island.wav  -- 1
Res/Juggernaut.wav  -- 1
Res/Kithkin.wav  -- 1
Res/Kobold.wav  -- 1
Res/Kor.wav  -- 1
Res/Kraken.wav  -- 1
Res/Lair.wav  -- 1
Res/Land.wav  -- 1
Res/Leech.wav  -- 1
Res/Legendary.wav  -- 1
Res/Leviathan.wav  -- 1
Res/Lhurgoyf.wav  -- 1
Res/Lizard.wav  -- 1
Res/Masticore.wav  -- 1
Res/Mercenary.wav  -- 1
Res/Merfolk.wav  -- 1
Res/Metathran.wav  -- 1
Res/Minion.wav  -- 1
Res/Minotaur.wav  -- 1
Res/Monk.wav  -- 1
Res/Mountain.wav  -- 1
Res/Mutant.wav  -- 1
Res/Myr.wav  -- 1
Res/Nightmare.wav  -- 1
Res/Nothing.wav  -- 1
Res/Ogre.wav  -- 1
Res/Ooze.wav  -- 1
Res/Orc.wav  -- 1
Res/Orgg.wav  -- 1
Res/Ouphe.wav  -- 1
Res/Pirate.wav  -- 1
Res/Plains.wav  -- 1
Res/Plant.wav  -- 1
Res/Rat.wav  -- 1
Res/Rebel.wav  -- 1
Res/Res/ai/baka/deck107.txt  -- 1
Res/Rhino.wav  -- 1
Res/Rogue.wav  -- 1
Res/Samurai.wav  -- 1
Res/Saproling.jpg  -- 1
Res/Saproling.wav  -- 1
Res/Scarecrow.wav  -- 1
Res/Scout.wav  -- 1
Res/Serpent.wav  -- 1
Res/Shade.wav  -- 1
Res/Shaman.wav  -- 1
Res/Shapeshifter.wav  -- 1
Res/Siren.wav  -- 1
Res/Skeleton.wav  -- 1
Res/Slith.wav  -- 1
Res/Sliver.wav  -- 1
Res/Snake.wav  -- 1
Res/Snow.wav  -- 1
Res/Soldier.wav  -- 1
Res/Specter.wav  -- 1
Res/Sphinx.wav  -- 1
Res/Spider.wav  -- 1
Res/Spirit.wav  -- 1
Res/Swamp.wav  -- 1
Res/Thopter.wav  -- 1
Res/Treefolk.wav  -- 1
Res/Vedalken.wav  -- 1
Res/Viashino.wav  -- 1
Res/Wall.wav  -- 1
Res/Warrior.wav  -- 1
Res/Wizard.wav  -- 1
Res/Wolf.wav  -- 1
Res/Wraith.wav  -- 1
Res/affinitygreencreatures.wav  -- 1
Res/ai/baka/avatars/baka.jpg  -- 521
Res/ai/baka/deck1.txt  -- 2
Res/ai/baka/deck10.txt  -- 2
Res/ai/baka/deck100.txt  -- 2
Res/ai/baka/deck101.txt  -- 2
Res/ai/baka/deck102.txt  -- 2
Res/ai/baka/deck103.txt  -- 2
Res/ai/baka/deck104.txt  -- 2
Res/ai/baka/deck105.txt  -- 2
Res/ai/baka/deck106.txt  -- 2
Res/ai/baka/deck107.txt  -- 1
Res/ai/baka/deck11.txt  -- 2
Res/ai/baka/deck12.txt  -- 2
Res/ai/baka/deck13.txt  -- 2
Res/ai/baka/deck14.txt  -- 2
Res/ai/baka/deck15.txt  -- 2
Res/ai/baka/deck16.txt  -- 2
Res/ai/baka/deck17.txt  -- 2
Res/ai/baka/deck18.txt  -- 2
Res/ai/baka/deck19.txt  -- 2
Res/ai/baka/deck2.txt  -- 2
Res/ai/baka/deck20.txt  -- 2
Res/ai/baka/deck21.txt  -- 2
Res/ai/baka/deck22.txt  -- 2
Res/ai/baka/deck23.txt  -- 2
Res/ai/baka/deck24.txt  -- 2
Res/ai/baka/deck25.txt  -- 2
Res/ai/baka/deck26.txt  -- 2
Res/ai/baka/deck27.txt  -- 2
Res/ai/baka/deck28.txt  -- 2
Res/ai/baka/deck29.txt  -- 2
Res/ai/baka/deck3.txt  -- 2
Res/ai/baka/deck30.txt  -- 2
Res/ai/baka/deck31.txt  -- 2
Res/ai/baka/deck32.txt  -- 2
Res/ai/baka/deck33.txt  -- 2
Res/ai/baka/deck34.txt  -- 2
Res/ai/baka/deck35.txt  -- 2
Res/ai/baka/deck36.txt  -- 2
Res/ai/baka/deck37.txt  -- 2
Res/ai/baka/deck38.txt  -- 2
Res/ai/baka/deck39.txt  -- 2
Res/ai/baka/deck4.txt  -- 2
Res/ai/baka/deck40.txt  -- 2
Res/ai/baka/deck41.txt  -- 2
Res/ai/baka/deck42.txt  -- 2
Res/ai/baka/deck43.txt  -- 2
Res/ai/baka/deck44.txt  -- 2
Res/ai/baka/deck45.txt  -- 2
Res/ai/baka/deck46.txt  -- 2
Res/ai/baka/deck47.txt  -- 2
Res/ai/baka/deck48.txt  -- 2
Res/ai/baka/deck49.txt  -- 2
Res/ai/baka/deck5.txt  -- 2
Res/ai/baka/deck50.txt  -- 2
Res/ai/baka/deck51.txt  -- 2
Res/ai/baka/deck52.txt  -- 2
Res/ai/baka/deck53.txt  -- 2
Res/ai/baka/deck54.txt  -- 2
Res/ai/baka/deck55.txt  -- 2
Res/ai/baka/deck56.txt  -- 2
Res/ai/baka/deck57.txt  -- 2
Res/ai/baka/deck58.txt  -- 2
Res/ai/baka/deck59.txt  -- 2
Res/ai/baka/deck6.txt  -- 2
Res/ai/baka/deck60.txt  -- 2
Res/ai/baka/deck61.txt  -- 2
Res/ai/baka/deck62.txt  -- 2
Res/ai/baka/deck63.txt  -- 2
Res/ai/baka/deck64.txt  -- 2
Res/ai/baka/deck65.txt  -- 2
Res/ai/baka/deck66.txt  -- 2
Res/ai/baka/deck67.txt  -- 2
Res/ai/baka/deck68.txt  -- 2
Res/ai/baka/deck69.txt  -- 2
Res/ai/baka/deck7.txt  -- 2
Res/ai/baka/deck70.txt  -- 2
Res/ai/baka/deck71.txt  -- 2
Res/ai/baka/deck72.txt  -- 2
Res/ai/baka/deck73.txt  -- 2
Res/ai/baka/deck74.txt  -- 2
Res/ai/baka/deck75.txt  -- 2
Res/ai/baka/deck76.txt  -- 2
Res/ai/baka/deck77.txt  -- 2
Res/ai/baka/deck78.txt  -- 2
Res/ai/baka/deck79.txt  -- 2
Res/ai/baka/deck8.txt  -- 2
Res/ai/baka/deck80.txt  -- 2
Res/ai/baka/deck81.txt  -- 2
Res/ai/baka/deck82.txt  -- 2
Res/ai/baka/deck83.txt  -- 2
Res/ai/baka/deck84.txt  -- 2
Res/ai/baka/deck85.txt  -- 2
Res/ai/baka/deck86.txt  -- 2
Res/ai/baka/deck87.txt  -- 2
Res/ai/baka/deck88.txt  -- 2
Res/ai/baka/deck89.txt  -- 2
Res/ai/baka/deck9.txt  -- 2
Res/ai/baka/deck90.txt  -- 2
Res/ai/baka/deck91.txt  -- 2
Res/ai/baka/deck92.txt  -- 2
Res/ai/baka/deck93.txt  -- 2
Res/ai/baka/deck94.txt  -- 2
Res/ai/baka/deck95.txt  -- 2
Res/ai/baka/deck96.txt  -- 2
Res/ai/baka/deck97.txt  -- 2
Res/ai/baka/deck98.txt  -- 2
Res/ai/baka/deck99.txt  -- 2
Res/ai/baka/stats/testsuite.stats  -- 1042
Res/defender.wav  -- 1
Res/fear.wav  -- 1
Res/first strike.wav  -- 1
Res/flash.wav  -- 1
Res/forestwalk.wav  -- 1
Res/graphics/BattleIcon.png  -- 1
Res/graphics/DefenderIcon.png  -- 1
Res/graphics/Ok.png  -- 521
Res/graphics/artifact_thumb.jpg  -- 34
Res/graphics/black_thumb.jpg  -- 1
Res/graphics/button_shoulder.png  -- 2
Res/graphics/f3.png  -- 1
Res/graphics/gold.png  -- 1
Res/graphics/gold_thumb.jpg  -- 1
Res/graphics/goldglow.png  -- 1
Res/graphics/green.jpg  -- 1
Res/graphics/green_thumb.jpg  -- 5
Res/graphics/magic.png  -- 1
Res/graphics/mana.psi  -- 1
Res/graphics/manablack.psi  -- 1
Res/graphics/manablue.psi  -- 1
Res/graphics/managreen.psi  -- 1
Res/graphics/manared.psi  -- 1
Res/graphics/manawhite.psi  -- 1
Res/graphics/menuicons.png  -- 1
Res/graphics/menuside.png  -- 1
Res/graphics/menutitle.png  -- 2
Res/graphics/particle1.psi  -- 1
Res/graphics/particle2.psi  -- 1
Res/graphics/particle3.psi  -- 1
Res/graphics/particle4.psi  -- 1
Res/graphics/particle5.psi  -- 1
Res/graphics/particles.png  -- 1
Res/graphics/phasebar.png  -- 1
Res/graphics/shadow.png  -- 1
Res/graphics/simon.png  -- 1
Res/graphics/smallface.png  -- 1
Res/graphics/spade_ul.png  -- 1
Res/graphics/spade_ur.png  -- 1
Res/graphics/splash.jpg  -- 2
Res/graphics/stars.psi  -- 1
Res/graphics/style.txt  -- 1
Res/graphics/wallpapers.txt  -- 1
Res/graphics/wallpapers/final_saga2.jpg  -- 1
Res/graphics/white_thumb.jpg  -- 1
Res/haste.wav  -- 1
Res/lang/dontcare.txt  -- 2
Res/lang/en.txt  -- 3
Res/lang/en_cards.txt  -- 1
Res/lang/en_decks.txt  -- 1
Res/lifelink.wav  -- 1
Res/ms0:/PSP/wagic_res/graphics/simon.dat  -- 1
Res/ms0:/wagic_res/graphics/simon.dat  -- 1
Res/mustattack.wav  -- 1
Res/nofizzle.wav  -- 1
Res/none  -- 1
Res/persist.wav  -- 1
Res/player/baka.jpg  -- 521
Res/player/collection.dat  -- 4
Res/player/data.dat  -- 2
Res/player/deck1.txt  -- 2
Res/player/deck2.txt  -- 2
Res/player/deck3.txt  -- 2
Res/player/deck4.txt  -- 2
Res/player/deck5.txt  -- 2
Res/player/deck6.txt  -- 2
Res/player/options.txt  -- 2
Res/player/stats/player_deck1.txt  -- 4
Res/player/stats/player_deck2.txt  -- 4
Res/player/stats/player_deck3.txt  -- 4
Res/player/stats/player_deck4.txt  -- 4
Res/player/stats/player_deck5.txt  -- 4
Res/player/stats/player_deck6.txt  -- 4
Res/player/tasks.dat  -- 2
Res/protection from black.wav  -- 1
Res/protection from blue.wav  -- 1
Res/protection from white.wav  -- 1
Res/reach.wav  -- 1
Res/reachshadow.wav  -- 1
Res/rules/testsuite.txt  -- 1
Res/sets//../_cards.dat  -- 1
Res/sets//./_cards.dat  -- 1
Res/sets//.svn/_cards.dat  -- 1
Res/sets//10E/_cards.dat  -- 2
Res/sets//1111114t.jpg  -- 1
Res/sets//1924t.jpg  -- 1
Res/sets//220579112.jpg  -- 1
Res/sets//2ED/_cards.dat  -- 2
Res/sets//483851111t.jpg  -- 1
Res/sets//4ED/_cards.dat  -- 2
Res/sets//5DN/_cards.dat  -- 2
Res/sets//5ED/_cards.dat  -- 2
Res/sets//6ED/_cards.dat  -- 2
Res/sets//7ED/_cards.dat  -- 2
Res/sets//8ED/_cards.dat  -- 2
Res/sets//9ED/_cards.dat  -- 2
Res/sets//ALA/_cards.dat  -- 2
Res/sets//ALL/_cards.dat  -- 2
Res/sets//APC/_cards.dat  -- 2
Res/sets//ARB/_cards.dat  -- 2
Res/sets//ARC/_cards.dat  -- 2
Res/sets//ARN/_cards.dat  -- 2
Res/sets//ATQ/_cards.dat  -- 2
Res/sets//BOK/_cards.dat  -- 2
Res/sets//BRB/_cards.dat  -- 2
Res/sets//BTD/_cards.dat  -- 2
Res/sets//Brainstorm's 2nd MoveToTop.jpg  -- 1
Res/sets//CFX/_cards.dat  -- 2
Res/sets//CHK/_cards.dat  -- 2
Res/sets//CHR/_cards.dat  -- 2
Res/sets//CSP/_cards.dat  -- 2
Res/sets//DIS/_cards.dat  -- 2
Res/sets//DRK/_cards.dat  -- 2
Res/sets//DST/_cards.dat  -- 2
Res/sets//DVD/_cards.dat  -- 2
Res/sets//EVE/_cards.dat  -- 2
Res/sets//EVG/_cards.dat  -- 2
Res/sets//EVT/_cards.dat  -- 2
Res/sets//EXO/_cards.dat  -- 2
Res/sets//FEM/_cards.dat  -- 2
Res/sets//FUT/_cards.dat  -- 2
Res/sets//FVD/_cards.dat  -- 2
Res/sets//FVE/_cards.dat  -- 2
Res/sets//FVR/_cards.dat  -- 2
Res/sets//GPT/_cards.dat  -- 2
Res/sets//GVL/_cards.dat  -- 2
Res/sets//HML/_cards.dat  -- 2
Res/sets//HOP/_cards.dat  -- 2
Res/sets//ICE/_cards.dat  -- 2
Res/sets//INV/_cards.dat  -- 2
Res/sets//JUD/_cards.dat  -- 2
Res/sets//JVC/_cards.dat  -- 2
Res/sets//LEA/_cards.dat  -- 2
Res/sets//LEB/_cards.dat  -- 2
Res/sets//LEG/_cards.dat  -- 2
Res/sets//LGN/_cards.dat  -- 2
Res/sets//LRW/_cards.dat  -- 2
Res/sets//M10/_cards.dat  -- 2
Res/sets//M11/_cards.dat  -- 2
Res/sets//ME2/_cards.dat  -- 2
Res/sets//ME3/_cards.dat  -- 2
Res/sets//ME4/_cards.dat  -- 2
Res/sets//MED/_cards.dat  -- 2
Res/sets//MIR/_cards.dat  -- 2
Res/sets//MOR/_cards.dat  -- 2
Res/sets//MRD/_cards.dat  -- 2
Res/sets//MRQ/_cards.dat  -- 2
Res/sets//NMS/_cards.dat  -- 2
Res/sets//ODY/_cards.dat  -- 2
Res/sets//ONS/_cards.dat  -- 2
Res/sets//One Dozen Eyes Entwine.jpg  -- 1
Res/sets//P02/_cards.dat  -- 2
Res/sets//PCY/_cards.dat  -- 2
Res/sets//PD2/_cards.dat  -- 2
Res/sets//PDS/_cards.dat  -- 2
Res/sets//PLC/_cards.dat  -- 2
Res/sets//PLS/_cards.dat  -- 2
Res/sets//POR/_cards.dat  -- 2
Res/sets//PPR/_cards.dat  -- 2
Res/sets//PTK/_cards.dat  -- 2
Res/sets//PVC/_cards.dat  -- 2
Res/sets//RAV/_cards.dat  -- 2
Res/sets//ROE/_cards.dat  -- 2
Res/sets//RV/_cards.dat  -- 2
Res/sets//S00/_cards.dat  -- 2
Res/sets//S99/_cards.dat  -- 2
Res/sets//SCG/_cards.dat  -- 2
Res/sets//SHM/_cards.dat  -- 2
Res/sets//SOK/_cards.dat  -- 2
Res/sets//SOM/_cards.dat  -- 2
Res/sets//STH/_cards.dat  -- 2
Res/sets//Saproling.jpg  -- 1
Res/sets//TMP/_cards.dat  -- 2
Res/sets//TOR/_cards.dat  -- 2
Res/sets//TSB/_cards.dat  -- 2
Res/sets//TSP/_cards.dat  -- 2
Res/sets//UDS/_cards.dat  -- 2
Res/sets//UGL/_cards.dat  -- 2
Res/sets//ULG/_cards.dat  -- 2
Res/sets//UNH/_cards.dat  -- 2
Res/sets//USG/_cards.dat  -- 2
Res/sets//VIS/_cards.dat  -- 2
Res/sets//WTH/_cards.dat  -- 2
Res/sets//WWK/_cards.dat  -- 2
Res/sets//ZEN/_cards.dat  -- 2
Res/sets//Zombie.jpg  -- 1
Res/sets//artifact.jpg/_cards.dat  -- 1
Res/sets//artifact_thumb.jpg/_cards.dat  -- 1
Res/sets//back.jpg/_cards.dat  -- 1
Res/sets//back_thumb.jpg/_cards.dat  -- 1
Res/sets//black.jpg/_cards.dat  -- 1
Res/sets//black_thumb.jpg/_cards.dat  -- 1
Res/sets//blue.jpg/_cards.dat  -- 1
Res/sets//blue_thumb.jpg/_cards.dat  -- 1
Res/sets//gold.jpg/_cards.dat  -- 1
Res/sets//gold_thumb.jpg/_cards.dat  -- 1
Res/sets//green.jpg/_cards.dat  -- 1
Res/sets//green_thumb.jpg/_cards.dat  -- 1
Res/sets//land.jpg/_cards.dat  -- 1
Res/sets//land_thumb.jpg/_cards.dat  -- 1
Res/sets//mtg_todo.dat/_cards.dat  -- 1
Res/sets//primitives/_cards.dat  -- 1
Res/sets//red.jpg/_cards.dat  -- 1
Res/sets//red_thumb.jpg/_cards.dat  -- 1
Res/sets//scheme_todo.dat/_cards.dat  -- 1
Res/sets//thumbnails/1111114t.jpg  -- 1
Res/sets//thumbnails/1111135t.jpg  -- 1
Res/sets//thumbnails/1924t.jpg  -- 1
Res/sets//thumbnails/220579111t.jpg  -- 1
Res/sets//thumbnails/220579112.jpg  -- 1
Res/sets//thumbnails/220579112t.jpg  -- 1
Res/sets//thumbnails/22222223.jpg  -- 1
Res/sets//thumbnails/22222226.jpg  -- 1
Res/sets//thumbnails/483851111t.jpg  -- 1
Res/sets//thumbnails/Brainstorm's 2nd MoveToTop.jpg  -- 1
Res/sets//thumbnails/Devour 3 (Mechanic).jpg  -- 1
Res/sets//thumbnails/Devour Sac 3.jpg  -- 1
Res/sets//thumbnails/One Dozen Eyes Entwine.jpg  -- 1
Res/sets//thumbnails/Reinforcements' 3rd Return.jpg  -- 1
Res/sets//thumbnails/Saproling.jpg  -- 1
Res/sets//thumbnails/ZombInfs First Discard.jpg  -- 1
Res/sets//thumbnails/ZombInfs Second Discard.jpg  -- 1
Res/sets//thumbnails/Zombie.jpg  -- 1
Res/sets//white.jpg/_cards.dat  -- 1
Res/sets//white_thumb.jpg/_cards.dat  -- 1
Res/sets/artifact_thumb.jpg  -- 34
Res/sets/black_thumb.jpg  -- 1
Res/sets/gold_thumb.jpg  -- 1
Res/sets/green.jpg  -- 1
Res/sets/green_thumb.jpg  -- 5
Res/sets/primitives/.  -- 1
Res/sets/primitives/..  -- 1
Res/sets/primitives/.svn  -- 1
Res/sets/primitives/borderline.txt  -- 2
Res/sets/primitives/mtg.txt  -- 2
Res/sets/splash.jpg  -- 1
Res/sets/style.txt  -- 1
Res/sets/white_thumb.jpg  -- 1
Res/settings/options.txt  -- 1
Res/settings/prices.dat  -- 1
Res/shadow.wav  -- 1
Res/sound/Track0.mp3  -- 3
Res/sound/Track1.mp3  -- 2
Res/sound/none  -- 1
Res/sound/sfx/Advisor.wav  -- 1
Res/sound/sfx/Ally.wav  -- 1
Res/sound/sfx/Angel.wav  -- 1
Res/sound/sfx/Ape.wav  -- 1
Res/sound/sfx/Archer.wav  -- 1
Res/sound/sfx/Artifact.wav  -- 1
Res/sound/sfx/Assassin.wav  -- 1
Res/sound/sfx/Atog.wav  -- 1
Res/sound/sfx/Aura.wav  -- 1
Res/sound/sfx/Barbarian.wav  -- 1
Res/sound/sfx/Basic.wav  -- 1
Res/sound/sfx/Bat.wav  -- 1
Res/sound/sfx/Bear.wav  -- 1
Res/sound/sfx/Beast.wav  -- 1
Res/sound/sfx/Berserker.wav  -- 1
Res/sound/sfx/Bird.wav  -- 1
Res/sound/sfx/Cat.wav  -- 1
Res/sound/sfx/Centaur.wav  -- 1
Res/sound/sfx/Cleric.wav  -- 1
Res/sound/sfx/Cockatrice.wav  -- 1
Res/sound/sfx/Construct.wav  -- 1
Res/sound/sfx/Creature.wav  -- 1
Res/sound/sfx/Crocodile.wav  -- 1
Res/sound/sfx/Cyclops.wav  -- 1
Res/sound/sfx/Dauthi.wav  -- 1
Res/sound/sfx/Demon.wav  -- 1
Res/sound/sfx/Dragon.wav  -- 1
Res/sound/sfx/Drake.wav  -- 1
Res/sound/sfx/Druid.wav  -- 1
Res/sound/sfx/Dryad.wav  -- 1
Res/sound/sfx/Dwarf.wav  -- 1
Res/sound/sfx/Efreet.wav  -- 1
Res/sound/sfx/Elemental.wav  -- 1
Res/sound/sfx/Elephant.wav  -- 1
Res/sound/sfx/Elf.wav  -- 1
Res/sound/sfx/Elk.wav  -- 1
Res/sound/sfx/Enchantment.wav  -- 1
Res/sound/sfx/Equipment.wav  -- 1
Res/sound/sfx/Faerie.wav  -- 1
Res/sound/sfx/Forest.wav  -- 1
Res/sound/sfx/Frog.wav  -- 1
Res/sound/sfx/Fungus.wav  -- 1
Res/sound/sfx/Giant.wav  -- 1
Res/sound/sfx/Gnome.wav  -- 1
Res/sound/sfx/Goblin.wav  -- 1
Res/sound/sfx/Golem.wav  -- 1
Res/sound/sfx/Horror.wav  -- 1
Res/sound/sfx/Horse.wav  -- 1
Res/sound/sfx/Human.wav  -- 1
Res/sound/sfx/Hydra.wav  -- 1
Res/sound/sfx/Illusion.wav  -- 1
Res/sound/sfx/Imp.wav  -- 1
Res/sound/sfx/Insect.wav  -- 1
Res/sound/sfx/Instant.wav  -- 1
Res/sound/sfx/Island.wav  -- 1
Res/sound/sfx/Juggernaut.wav  -- 1
Res/sound/sfx/Kithkin.wav  -- 1
Res/sound/sfx/Knight.wav  -- 1
Res/sound/sfx/Kobold.wav  -- 1
Res/sound/sfx/Kor.wav  -- 1
Res/sound/sfx/Kraken.wav  -- 1
Res/sound/sfx/Lair.wav  -- 1
Res/sound/sfx/Land.wav  -- 1
Res/sound/sfx/Leech.wav  -- 1
Res/sound/sfx/Legendary.wav  -- 1
Res/sound/sfx/Leviathan.wav  -- 1
Res/sound/sfx/Lhurgoyf.wav  -- 1
Res/sound/sfx/Lizard.wav  -- 1
Res/sound/sfx/Masticore.wav  -- 1
Res/sound/sfx/Mercenary.wav  -- 1
Res/sound/sfx/Merfolk.wav  -- 1
Res/sound/sfx/Metathran.wav  -- 1
Res/sound/sfx/Minion.wav  -- 1
Res/sound/sfx/Minotaur.wav  -- 1
Res/sound/sfx/Monk.wav  -- 1
Res/sound/sfx/Mountain.wav  -- 1
Res/sound/sfx/Mutant.wav  -- 1
Res/sound/sfx/Myr.wav  -- 1
Res/sound/sfx/Nightmare.wav  -- 1
Res/sound/sfx/Nothing.wav  -- 1
Res/sound/sfx/Ogre.wav  -- 1
Res/sound/sfx/Ooze.wav  -- 1
Res/sound/sfx/Orc.wav  -- 1
Res/sound/sfx/Orgg.wav  -- 1
Res/sound/sfx/Ouphe.wav  -- 1
Res/sound/sfx/Pirate.wav  -- 1
Res/sound/sfx/Plains.wav  -- 1
Res/sound/sfx/Plant.wav  -- 1
Res/sound/sfx/Rat.wav  -- 1
Res/sound/sfx/Rebel.wav  -- 1
Res/sound/sfx/Rhino.wav  -- 1
Res/sound/sfx/Rogue.wav  -- 1
Res/sound/sfx/Samurai.wav  -- 1
Res/sound/sfx/Saproling.wav  -- 1
Res/sound/sfx/Scarecrow.wav  -- 1
Res/sound/sfx/Scout.wav  -- 1
Res/sound/sfx/Serpent.wav  -- 1
Res/sound/sfx/Shade.wav  -- 1
Res/sound/sfx/Shaman.wav  -- 1
Res/sound/sfx/Shapeshifter.wav  -- 1
Res/sound/sfx/Siren.wav  -- 1
Res/sound/sfx/Skeleton.wav  -- 1
Res/sound/sfx/Slith.wav  -- 1
Res/sound/sfx/Sliver.wav  -- 1
Res/sound/sfx/Snake.wav  -- 1
Res/sound/sfx/Snow.wav  -- 1
Res/sound/sfx/Soldier.wav  -- 1
Res/sound/sfx/Sorcery.wav  -- 1
Res/sound/sfx/Specter.wav  -- 1
Res/sound/sfx/Sphinx.wav  -- 1
Res/sound/sfx/Spider.wav  -- 1
Res/sound/sfx/Spirit.wav  -- 1
Res/sound/sfx/Swamp.wav  -- 1
Res/sound/sfx/Thopter.wav  -- 1
Res/sound/sfx/Treefolk.wav  -- 1
Res/sound/sfx/Troll.wav  -- 1
Res/sound/sfx/Vampire.wav  -- 1
Res/sound/sfx/Vedalken.wav  -- 1
Res/sound/sfx/Viashino.wav  -- 1
Res/sound/sfx/Wall.wav  -- 1
Res/sound/sfx/Warrior.wav  -- 1
Res/sound/sfx/Wizard.wav  -- 1
Res/sound/sfx/Wolf.wav  -- 1
Res/sound/sfx/Wraith.wav  -- 1
Res/sound/sfx/Wurm.wav  -- 1
Res/sound/sfx/Zombie.wav  -- 1
Res/sound/sfx/affinitygreencreatures.wav  -- 1
Res/sound/sfx/defender.wav  -- 1
Res/sound/sfx/fear.wav  -- 1
Res/sound/sfx/first strike.wav  -- 1
Res/sound/sfx/flash.wav  -- 1
Res/sound/sfx/flying.wav  -- 1
Res/sound/sfx/forestwalk.wav  -- 1
Res/sound/sfx/graveyard.wav  -- 1
Res/sound/sfx/haste.wav  -- 1
Res/sound/sfx/lifelink.wav  -- 1
Res/sound/sfx/mana.wav  -- 1
Res/sound/sfx/mustattack.wav  -- 1
Res/sound/sfx/nofizzle.wav  -- 1
Res/sound/sfx/persist.wav  -- 1
Res/sound/sfx/protection from black.wav  -- 1
Res/sound/sfx/protection from blue.wav  -- 1
Res/sound/sfx/protection from white.wav  -- 1
Res/sound/sfx/reach.wav  -- 1
Res/sound/sfx/reachshadow.wav  -- 1
Res/sound/sfx/shadow.wav  -- 1
Res/sound/sfx/storm.wav  -- 1
Res/sound/sfx/swampwalk.wav  -- 1
Res/sound/sfx/trample.wav  -- 1
Res/sound/sfx/vigor.wav  -- 1
Res/sound/sfx/wither.wav  -- 1
Res/splash.jpg  -- 1
Res/storm.wav  -- 1
Res/style.txt  -- 1
Res/swampwalk.wav  -- 1
Res/test/_tests.txt  -- 1
Res/testsuite.txt  -- 1
Res/themes/White Shrine/BattleIcon.png  -- 1
Res/themes/White Shrine/DefenderIcon.png  -- 1
Res/themes/White Shrine/Ok.png  -- 521
Res/themes/White Shrine/artifact_thumb.jpg  -- 34
Res/themes/White Shrine/back.jpg  -- 1
Res/themes/White Shrine/back_thumb.jpg  -- 1
Res/themes/White Shrine/backdrop.jpg  -- 1
Res/themes/White Shrine/baka.jpg  -- 521
Res/themes/White Shrine/black_thumb.jpg  -- 1
Res/themes/White Shrine/button_shoulder.png  -- 2
Res/themes/White Shrine/f3.png  -- 1
Res/themes/White Shrine/gold.png  -- 1
Res/themes/White Shrine/gold_thumb.jpg  -- 1
Res/themes/White Shrine/goldglow.png  -- 1
Res/themes/White Shrine/green.jpg  -- 1
Res/themes/White Shrine/green_thumb.jpg  -- 5
Res/themes/White Shrine/handback.png  -- 1
Res/themes/White Shrine/magic.png  -- 1
Res/themes/White Shrine/mana.psi  -- 1
Res/themes/White Shrine/manablack.psi  -- 1
Res/themes/White Shrine/manablue.psi  -- 1
Res/themes/White Shrine/managreen.psi  -- 1
Res/themes/White Shrine/manared.psi  -- 1
Res/themes/White Shrine/manawhite.psi  -- 1
Res/themes/White Shrine/menuicons.png  -- 1
Res/themes/White Shrine/menuside.png  -- 1
Res/themes/White Shrine/menutitle.png  -- 2
Res/themes/White Shrine/particle1.psi  -- 1
Res/themes/White Shrine/particle2.psi  -- 1
Res/themes/White Shrine/particle3.psi  -- 1
Res/themes/White Shrine/particle4.psi  -- 1
Res/themes/White Shrine/particle5.psi  -- 1
Res/themes/White Shrine/particles.png  -- 1
Res/themes/White Shrine/phasebar.png  -- 1
Res/themes/White Shrine/shadow.png  -- 1
Res/themes/White Shrine/simon.png  -- 1
Res/themes/White Shrine/smallface.png  -- 1
Res/themes/White Shrine/sound/Track0.mp3  -- 2
Res/themes/White Shrine/sound/Track1.mp3  -- 1
Res/themes/White Shrine/sound/none  -- 1
Res/themes/White Shrine/sound/sfx/Advisor.wav  -- 1
Res/themes/White Shrine/sound/sfx/Ally.wav  -- 1
Res/themes/White Shrine/sound/sfx/Angel.wav  -- 1
Res/themes/White Shrine/sound/sfx/Ape.wav  -- 1
Res/themes/White Shrine/sound/sfx/Archer.wav  -- 1
Res/themes/White Shrine/sound/sfx/Artifact.wav  -- 1
Res/themes/White Shrine/sound/sfx/Assassin.wav  -- 1
Res/themes/White Shrine/sound/sfx/Atog.wav  -- 1
Res/themes/White Shrine/sound/sfx/Aura.wav  -- 1
Res/themes/White Shrine/sound/sfx/Barbarian.wav  -- 1
Res/themes/White Shrine/sound/sfx/Basic.wav  -- 1
Res/themes/White Shrine/sound/sfx/Bat.wav  -- 1
Res/themes/White Shrine/sound/sfx/Bear.wav  -- 1
Res/themes/White Shrine/sound/sfx/Beast.wav  -- 1
Res/themes/White Shrine/sound/sfx/Berserker.wav  -- 1
Res/themes/White Shrine/sound/sfx/Bird.wav  -- 1
Res/themes/White Shrine/sound/sfx/Cat.wav  -- 1
Res/themes/White Shrine/sound/sfx/Centaur.wav  -- 1
Res/themes/White Shrine/sound/sfx/Cleric.wav  -- 1
Res/themes/White Shrine/sound/sfx/Cockatrice.wav  -- 1
Res/themes/White Shrine/sound/sfx/Construct.wav  -- 1
Res/themes/White Shrine/sound/sfx/Creature.wav  -- 1
Res/themes/White Shrine/sound/sfx/Crocodile.wav  -- 1
Res/themes/White Shrine/sound/sfx/Cyclops.wav  -- 1
Res/themes/White Shrine/sound/sfx/Dauthi.wav  -- 1
Res/themes/White Shrine/sound/sfx/Demon.wav  -- 1
Res/themes/White Shrine/sound/sfx/Dragon.wav  -- 1
Res/themes/White Shrine/sound/sfx/Drake.wav  -- 1
Res/themes/White Shrine/sound/sfx/Druid.wav  -- 1
Res/themes/White Shrine/sound/sfx/Dryad.wav  -- 1
Res/themes/White Shrine/sound/sfx/Dwarf.wav  -- 1
Res/themes/White Shrine/sound/sfx/Efreet.wav  -- 1
Res/themes/White Shrine/sound/sfx/Elemental.wav  -- 1
Res/themes/White Shrine/sound/sfx/Elephant.wav  -- 1
Res/themes/White Shrine/sound/sfx/Elf.wav  -- 1
Res/themes/White Shrine/sound/sfx/Elk.wav  -- 1
Res/themes/White Shrine/sound/sfx/Enchantment.wav  -- 1
Res/themes/White Shrine/sound/sfx/Equipment.wav  -- 1
Res/themes/White Shrine/sound/sfx/Faerie.wav  -- 1
Res/themes/White Shrine/sound/sfx/Forest.wav  -- 1
Res/themes/White Shrine/sound/sfx/Frog.wav  -- 1
Res/themes/White Shrine/sound/sfx/Fungus.wav  -- 1
Res/themes/White Shrine/sound/sfx/Giant.wav  -- 1
Res/themes/White Shrine/sound/sfx/Gnome.wav  -- 1
Res/themes/White Shrine/sound/sfx/Goblin.wav  -- 1
Res/themes/White Shrine/sound/sfx/Golem.wav  -- 1
Res/themes/White Shrine/sound/sfx/Horror.wav  -- 1
Res/themes/White Shrine/sound/sfx/Horse.wav  -- 1
Res/themes/White Shrine/sound/sfx/Human.wav  -- 1
Res/themes/White Shrine/sound/sfx/Hydra.wav  -- 1
Res/themes/White Shrine/sound/sfx/Illusion.wav  -- 1
Res/themes/White Shrine/sound/sfx/Imp.wav  -- 1
Res/themes/White Shrine/sound/sfx/Insect.wav  -- 1
Res/themes/White Shrine/sound/sfx/Instant.wav  -- 1
Res/themes/White Shrine/sound/sfx/Island.wav  -- 1
Res/themes/White Shrine/sound/sfx/Juggernaut.wav  -- 1
Res/themes/White Shrine/sound/sfx/Kithkin.wav  -- 1
Res/themes/White Shrine/sound/sfx/Knight.wav  -- 1
Res/themes/White Shrine/sound/sfx/Kobold.wav  -- 1
Res/themes/White Shrine/sound/sfx/Kor.wav  -- 1
Res/themes/White Shrine/sound/sfx/Kraken.wav  -- 1
Res/themes/White Shrine/sound/sfx/Lair.wav  -- 1
Res/themes/White Shrine/sound/sfx/Land.wav  -- 1
Res/themes/White Shrine/sound/sfx/Leech.wav  -- 1
Res/themes/White Shrine/sound/sfx/Legendary.wav  -- 1
Res/themes/White Shrine/sound/sfx/Leviathan.wav  -- 1
Res/themes/White Shrine/sound/sfx/Lhurgoyf.wav  -- 1
Res/themes/White Shrine/sound/sfx/Lizard.wav  -- 1
Res/themes/White Shrine/sound/sfx/Masticore.wav  -- 1
Res/themes/White Shrine/sound/sfx/Mercenary.wav  -- 1
Res/themes/White Shrine/sound/sfx/Merfolk.wav  -- 1
Res/themes/White Shrine/sound/sfx/Metathran.wav  -- 1
Res/themes/White Shrine/sound/sfx/Minion.wav  -- 1
Res/themes/White Shrine/sound/sfx/Minotaur.wav  -- 1
Res/themes/White Shrine/sound/sfx/Monk.wav  -- 1
Res/themes/White Shrine/sound/sfx/Mountain.wav  -- 1
Res/themes/White Shrine/sound/sfx/Mutant.wav  -- 1
Res/themes/White Shrine/sound/sfx/Myr.wav  -- 1
Res/themes/White Shrine/sound/sfx/Nightmare.wav  -- 1
Res/themes/White Shrine/sound/sfx/Nothing.wav  -- 1
Res/themes/White Shrine/sound/sfx/Ogre.wav  -- 1
Res/themes/White Shrine/sound/sfx/Ooze.wav  -- 1
Res/themes/White Shrine/sound/sfx/Orc.wav  -- 1
Res/themes/White Shrine/sound/sfx/Orgg.wav  -- 1
Res/themes/White Shrine/sound/sfx/Ouphe.wav  -- 1
Res/themes/White Shrine/sound/sfx/Pirate.wav  -- 1
Res/themes/White Shrine/sound/sfx/Plains.wav  -- 1
Res/themes/White Shrine/sound/sfx/Plant.wav  -- 1
Res/themes/White Shrine/sound/sfx/Rat.wav  -- 1
Res/themes/White Shrine/sound/sfx/Rebel.wav  -- 1
Res/themes/White Shrine/sound/sfx/Rhino.wav  -- 1
Res/themes/White Shrine/sound/sfx/Rogue.wav  -- 1
Res/themes/White Shrine/sound/sfx/Samurai.wav  -- 1
Res/themes/White Shrine/sound/sfx/Saproling.wav  -- 1
Res/themes/White Shrine/sound/sfx/Scarecrow.wav  -- 1
Res/themes/White Shrine/sound/sfx/Scout.wav  -- 1
Res/themes/White Shrine/sound/sfx/Serpent.wav  -- 1
Res/themes/White Shrine/sound/sfx/Shade.wav  -- 1
Res/themes/White Shrine/sound/sfx/Shaman.wav  -- 1
Res/themes/White Shrine/sound/sfx/Shapeshifter.wav  -- 1
Res/themes/White Shrine/sound/sfx/Siren.wav  -- 1
Res/themes/White Shrine/sound/sfx/Skeleton.wav  -- 1
Res/themes/White Shrine/sound/sfx/Slith.wav  -- 1
Res/themes/White Shrine/sound/sfx/Sliver.wav  -- 1
Res/themes/White Shrine/sound/sfx/Snake.wav  -- 1
Res/themes/White Shrine/sound/sfx/Snow.wav  -- 1
Res/themes/White Shrine/sound/sfx/Soldier.wav  -- 1
Res/themes/White Shrine/sound/sfx/Sorcery.wav  -- 1
Res/themes/White Shrine/sound/sfx/Specter.wav  -- 1
Res/themes/White Shrine/sound/sfx/Sphinx.wav  -- 1
Res/themes/White Shrine/sound/sfx/Spider.wav  -- 1
Res/themes/White Shrine/sound/sfx/Spirit.wav  -- 1
Res/themes/White Shrine/sound/sfx/Swamp.wav  -- 1
Res/themes/White Shrine/sound/sfx/Thopter.wav  -- 1
Res/themes/White Shrine/sound/sfx/Treefolk.wav  -- 1
Res/themes/White Shrine/sound/sfx/Troll.wav  -- 1
Res/themes/White Shrine/sound/sfx/Vampire.wav  -- 1
Res/themes/White Shrine/sound/sfx/Vedalken.wav  -- 1
Res/themes/White Shrine/sound/sfx/Viashino.wav  -- 1
Res/themes/White Shrine/sound/sfx/Wall.wav  -- 1
Res/themes/White Shrine/sound/sfx/Warrior.wav  -- 1
Res/themes/White Shrine/sound/sfx/Wizard.wav  -- 1
Res/themes/White Shrine/sound/sfx/Wolf.wav  -- 1
Res/themes/White Shrine/sound/sfx/Wraith.wav  -- 1
Res/themes/White Shrine/sound/sfx/Wurm.wav  -- 1
Res/themes/White Shrine/sound/sfx/Zombie.wav  -- 1
Res/themes/White Shrine/sound/sfx/affinitygreencreatures.wav  -- 1
Res/themes/White Shrine/sound/sfx/defender.wav  -- 1
Res/themes/White Shrine/sound/sfx/fear.wav  -- 1
Res/themes/White Shrine/sound/sfx/first strike.wav  -- 1
Res/themes/White Shrine/sound/sfx/flash.wav  -- 1
Res/themes/White Shrine/sound/sfx/flying.wav  -- 1
Res/themes/White Shrine/sound/sfx/forestwalk.wav  -- 1
Res/themes/White Shrine/sound/sfx/graveyard.wav  -- 1
Res/themes/White Shrine/sound/sfx/haste.wav  -- 1
Res/themes/White Shrine/sound/sfx/lifelink.wav  -- 1
Res/themes/White Shrine/sound/sfx/mana.wav  -- 1
Res/themes/White Shrine/sound/sfx/mustattack.wav  -- 1
Res/themes/White Shrine/sound/sfx/nofizzle.wav  -- 1
Res/themes/White Shrine/sound/sfx/persist.wav  -- 1
Res/themes/White Shrine/sound/sfx/protection from black.wav  -- 1
Res/themes/White Shrine/sound/sfx/protection from blue.wav  -- 1
Res/themes/White Shrine/sound/sfx/protection from white.wav  -- 1
Res/themes/White Shrine/sound/sfx/reach.wav  -- 1
Res/themes/White Shrine/sound/sfx/reachshadow.wav  -- 1
Res/themes/White Shrine/sound/sfx/shadow.wav  -- 1
Res/themes/White Shrine/sound/sfx/storm.wav  -- 1
Res/themes/White Shrine/sound/sfx/swampwalk.wav  -- 1
Res/themes/White Shrine/sound/sfx/trample.wav  -- 1
Res/themes/White Shrine/sound/sfx/vigor.wav  -- 1
Res/themes/White Shrine/sound/sfx/wither.wav  -- 1
Res/themes/White Shrine/spade_ul.png  -- 1
Res/themes/White Shrine/spade_ur.png  -- 1
Res/themes/White Shrine/splash.jpg  -- 1
Res/themes/White Shrine/stars.psi  -- 1
Res/themes/White Shrine/style.txt  -- 1
Res/themes/White Shrine/wallpapers/final_saga2.jpg  -- 1
Res/themes/White Shrine/white_thumb.jpg  -- 1
Res/themes/White Shrine/wood.png  -- 1
Res/thumbnails/  -- 1
Res/thumbnails/.jpg  -- 1
Res/thumbnails/194078.jpg  -- 1
Res/thumbnails/208249.jpg  -- 1
Res/thumbnails/209000.jpg  -- 1
Res/thumbnails/22222220.jpg  -- 1
Res/thumbnails/42187t.jpg  -- 1
Res/thumbnails/4514111t.jpg  -- 1
Res/thumbnails/4838511t.jpg  -- 1
Res/thumbnails/4838512t.jpg  -- 1
Res/thumbnails/51613t.jpg  -- 1
Res/thumbnails/89069t.jpg  -- 1
Res/thumbnails/Angel Token.jpg  -- 1
Res/thumbnails/Auriok Sunchaser.jpg  -- 1
Res/thumbnails/Bear.jpg  -- 1
Res/thumbnails/Beast Token.jpg  -- 1
Res/thumbnails/Darksteel Myr.jpg  -- 1
Res/thumbnails/Dragon.jpg  -- 1
Res/thumbnails/Insect Token.jpg  -- 1
Res/thumbnails/Insect.jpg  -- 1
Res/thumbnails/Memnite.jpg  -- 1
Res/thumbnails/Saproling.jpg  -- 1
Res/trample.wav  -- 1
Res/vigor.wav  -- 1
Res/wagic_res/graphics/simon.dat  -- 1
Res/wither.wav  -- 1
Rhino.wav  -- 1
Rogue.wav  -- 1
Samurai.wav  -- 1
Saproling.jpg  -- 1
Saproling.wav  -- 1
Scarecrow.wav  -- 1
Scout.wav  -- 1
Serpent.wav  -- 1
Shade.wav  -- 1
Shaman.wav  -- 1
Shapeshifter.wav  -- 1
Siren.wav  -- 1
Skeleton.wav  -- 1
Slith.wav  -- 1
Sliver.wav  -- 1
Snake.wav  -- 1
Snow.wav  -- 1
Soldier.wav  -- 1
Specter.wav  -- 1
Sphinx.wav  -- 1
Spider.wav  -- 1
Spirit.wav  -- 1
Swamp.wav  -- 1
Thopter.wav  -- 1
Treefolk.wav  -- 1
Vedalken.wav  -- 1
Viashino.wav  -- 1
Wall.wav  -- 1
Warrior.wav  -- 1
Wizard.wav  -- 1
Wolf.wav  -- 1
Wraith.wav  -- 1
affinitygreencreatures.wav  -- 1
defender.wav  -- 1
fear.wav  -- 1
first strike.wav  -- 1
flash.wav  -- 1
forestwalk.wav  -- 1
graphics/splash.jpg  -- 1
haste.wav  -- 1
lifelink.wav  -- 1
ms0:/PSP/wagic_res/graphics/simon.dat  -- 1
ms0:/wagic_res/graphics/simon.dat  -- 1
mustattack.wav  -- 1
nofizzle.wav  -- 1
persist.wav  -- 1
protection from black.wav  -- 1
protection from blue.wav  -- 1
protection from white.wav  -- 1
reach.wav  -- 1
reachshadow.wav  -- 1
shadow.wav  -- 1
storm.wav  -- 1
swampwalk.wav  -- 1
testsuite.txt  -- 1
thumbnails/  -- 1
thumbnails/.jpg  -- 1
thumbnails/194078.jpg  -- 1
thumbnails/208249.jpg  -- 1
thumbnails/209000.jpg  -- 1
thumbnails/22222220.jpg  -- 1
thumbnails/42187t.jpg  -- 1
thumbnails/4514111t.jpg  -- 1
thumbnails/4838511t.jpg  -- 1
thumbnails/4838512t.jpg  -- 1
thumbnails/51613t.jpg  -- 1
thumbnails/89069t.jpg  -- 1
thumbnails/Angel Token.jpg  -- 1
thumbnails/Auriok Sunchaser.jpg  -- 1
thumbnails/Bear.jpg  -- 1
thumbnails/Beast Token.jpg  -- 1
thumbnails/Darksteel Myr.jpg  -- 1
thumbnails/Dragon.jpg  -- 1
thumbnails/Insect Token.jpg  -- 1
thumbnails/Insect.jpg  -- 1
thumbnails/Memnite.jpg  -- 1
thumbnails/Saproling.jpg  -- 1
trample.wav  -- 1
vigor.wav  -- 1
wagic_res/graphics/simon.dat  -- 1
wither.wav  -- 1
End File Usage Statistics
-------------------
2011-01-11 10:11:15 +00:00

463 lines
13 KiB
C++

#include "PrecompiledHeader.h"
#include "Credits.h"
#include "GameApp.h"
#include "GameOptions.h"
#include "PlayerData.h"
#include "DeckStats.h"
#include "Translate.h"
#include "MTGDeck.h"
#include "GameObserver.h"
#include "GameStateShop.h"
#include "PlayerData.h"
CreditBonus::CreditBonus(int _value, string _text)
{
value = _value;
text = _text;
}
void CreditBonus::Render(float x, float y, WFont * font)
{
char buffer[512];
sprintf(buffer, "%s: %i", text.c_str(), value);
font->DrawString(buffer, x, y);
}
Credits::Credits()
{
unlocked = -1;
p1 = NULL;
p2 = NULL;
}
Credits::~Credits()
{
for (unsigned int i = 0; i < bonus.size(); ++i)
if (bonus[i])
delete bonus[i];
bonus.clear();
}
void Credits::compute(Player * _p1, Player * _p2, GameApp * _app)
{
p1 = _p1;
p2 = _p2;
app = _app;
showMsg = (WRand() % 3);
GameObserver * g = GameObserver::GetInstance();
if (!g->turn)
return;
PlayerData * playerdata = NEW PlayerData(app->collection);
if (!p1->isAI() && p2->isAI() && p1 != g->gameOver)
{
gameLength = time(0) - g->startedAt;
value = 400;
if (app->gameType != GAME_TYPE_CLASSIC)
value = 200;
int difficulty = options[Options::DIFFICULTY].number;
if (options[Options::DIFFICULTY_MODE_UNLOCKED].number && difficulty)
{
CreditBonus * b = NEW CreditBonus(100 * difficulty, _("Difficulty Bonus"));
bonus.push_back(b);
}
if (p1->life == 1)
{
CreditBonus * b = NEW CreditBonus(111, _("'Live dangerously and you live right' Bonus"));
bonus.push_back(b);
}
int diff = p1->life - p2->life;
if (diff < 0)
diff = 0;
if (diff > 500)
diff = 500;
if (diff)
{
CreditBonus * b = NEW CreditBonus(diff, _("Life Delta Bonus"));
bonus.push_back(b);
}
if (p1->game->library->nb_cards == 0)
{
CreditBonus * b = NEW CreditBonus(391, _("'Decree of Theophilus' Bonus"));
bonus.push_back(b);
}
if ((p2->game->library->nb_cards == 0) && p1->game->library->nb_cards)
{
CreditBonus * b = NEW CreditBonus(p1->game->library->nb_cards * 3, _("Miller Bonus"));
bonus.push_back(b);
}
if (g->turn < 15)
{
CreditBonus * b = NEW CreditBonus((20 - g->turn) * 17, _("'Fast and Furious' Bonus"));
bonus.push_back(b);
}
GameOptionAward * goa = NULL;
// <Tasks handling>
vector<Task*> finishedTasks;
playerdata->taskList->getDoneTasks(_p1, _p2, _app, &finishedTasks);
char buffer[512];
for (vector<Task*>::iterator it = finishedTasks.begin(); it != finishedTasks.end(); it++)
{
sprintf(buffer, _("Task: %s").c_str(), (*it)->getShortDesc().c_str());
CreditBonus * b = NEW CreditBonus((*it)->getReward(), buffer);
bonus.push_back(b);
playerdata->taskList->removeTask(*it);
}
// </Tasks handling>
if (unlocked == -1)
{
DeckStats * stats = DeckStats::GetInstance();
stats->load(p1);
unlocked = isDifficultyUnlocked(stats);
if (unlocked)
{
unlockedTextureName = "unlocked.png";
goa = (GameOptionAward*) &options[Options::DIFFICULTY_MODE_UNLOCKED];
goa->giveAward();
options.save();
}
else if ((unlocked = isMomirUnlocked()))
{
unlockedTextureName = "momir_unlocked.png";
goa = (GameOptionAward*) &options[Options::MOMIR_MODE_UNLOCKED];
goa->giveAward();
options.save();
}
else if ((unlocked = isEvilTwinUnlocked()))
{
unlockedTextureName = "eviltwin_unlocked.png";
goa = (GameOptionAward*) &options[Options::EVILTWIN_MODE_UNLOCKED];
goa->giveAward();
options.save();
}
else if ((unlocked = isRandomDeckUnlocked()))
{
unlockedTextureName = "randomdeck_unlocked.png";
goa = (GameOptionAward*) &options[Options::RANDOMDECK_MODE_UNLOCKED];
goa->giveAward();
options.save();
}
else if ((unlocked = unlockRandomSet()))
{
unlockedTextureName = "set_unlocked.png";
MTGSetInfo * si = setlist.getInfo(unlocked - 1);
if (si)
unlockedString = si->getName(); //Show the set's pretty name for unlocks.
}
else if ((unlocked = IsMoreAIDecksUnlocked(stats)))
{
options[Options::AIDECKS_UNLOCKED].number += 10;
options.save();
unlockedTextureName = "ai_unlocked.png";
}
if (unlocked && options[Options::SFXVOLUME].number > 0)
{
JSample * sample = WResourceManager::Instance()->RetrieveSample("bonus.wav");
if (sample)
{
JSoundSystem::GetInstance()->PlaySample(sample);
}
}
}
vector<CreditBonus *>::iterator it;
if (bonus.size())
{
CreditBonus * b = NEW CreditBonus(value, _("Victory"));
bonus.insert(bonus.begin(), b);
for (it = bonus.begin() + 1; it < bonus.end(); ++it)
value += (*it)->value;
}
playerdata->credits += value;
PriceList::updateKey();
playerdata->taskList->passOneDay();
if (playerdata->taskList->getTaskCount() < 6)
{
playerdata->taskList->addRandomTask();
playerdata->taskList->addRandomTask();
}
}
else
{
unlocked = 0;
playerdata->taskList->passOneDay();
}
playerdata->save();
SAFE_DELETE(playerdata);
}
JQuad * Credits::GetUnlockedQuad(string textureName)
{
if (!textureName.size()) return NULL;
JTexture * unlockedTex = WResourceManager::Instance()->RetrieveTexture(textureName);
if (!unlockedTex) return NULL;
return WResourceManager::Instance()->RetrieveQuad(unlockedTextureName, 2, 2, unlockedTex->mWidth - 4, unlockedTex->mHeight - 4);
}
void Credits::Render()
{
if (!p1)
return;
GameObserver * g = GameObserver::GetInstance();
JRenderer * r = JRenderer::GetInstance();
WFont * f = WResourceManager::Instance()->GetWFont(Fonts::MAIN_FONT);
WFont * f2 = WResourceManager::Instance()->GetWFont(Fonts::MENU_FONT);
WFont * f3 = WResourceManager::Instance()->GetWFont(Fonts::MAGIC_FONT);
f->SetScale(1);
f->SetColor(ARGB(255,255,255,255));
f2->SetScale(1);
f2->SetColor(ARGB(255,255,255,255));
f3->SetScale(1);
f3->SetColor(ARGB(255,255,255,255));
char buffer[512];
if (!g->turn)
{
sprintf(buffer, "%s", _("Please check your deck (not enough cards?)").c_str());
}
else
{
if (!p1->isAI() && p2->isAI())
{
if (g->gameOver != p1)
{
sprintf(buffer, _("Congratulations! You earn %i credits").c_str(), value);
JQuad * unlockedQuad = GetUnlockedQuad(unlockedTextureName);
if (unlockedQuad)
{
showMsg = 0;
r->RenderQuad(unlockedQuad, 20, 20);
}
if (unlockedString.size())
{
f2->DrawString(unlockedString.c_str(), SCREEN_WIDTH / 2, 80, JGETEXT_CENTER);
}
}
else
{
sprintf(buffer, "%s", _("You have been defeated").c_str());
}
}
else
{
int winner = 2;
if (g->gameOver != p1)
{
winner = 1;
}
int p0life = p1->life;
sprintf(buffer, _("Player %i wins (%i)").c_str(), winner, p0life);
}
}
float y = 130;
if (showMsg == 1)
y = 50;
vector<CreditBonus *>::iterator it;
for (it = bonus.begin(); it < bonus.end(); ++it)
{
(*it)->Render(10, y, f3);
y += 12;
}
f2->DrawString(buffer, 10, y);
y += 15;
//!!
if (g->gameOver != p1)
{
sprintf(buffer, _("Game length: %i turns (%i seconds)").c_str(), g->turn, this->gameLength);
f->DrawString(buffer, 10, y);
y += 10;
sprintf(buffer, _("Credits per minute: %i").c_str(), (int) (60 * value / this->gameLength));
f->DrawString(buffer, 10, y);
y += 10;
showMsg = 0;
}
if (showMsg == 1)
{
f2->DrawString(_("There's more!").c_str(), 10, y + 15);
f->DrawString(_("Mods, additional cards, updates and more at:").c_str(), 10, y + 30);
f2->DrawString("-> http://wololo.net/wagic", 10, y + 42);
}
}
int Credits::isDifficultyUnlocked(DeckStats * stats)
{
if (options[Options::DIFFICULTY_MODE_UNLOCKED].number)
return 0;
int nbAIDecks = 0;
int found = 1;
int wins = 0;
while (found)
{
found = 0;
char buffer[512];
char aiSmallDeckName[512];
sprintf(buffer, JGE_GET_RES("ai/baka/deck%i.txt").c_str(), nbAIDecks + 1);
if (fileExists(buffer))
{
found = 1;
nbAIDecks++;
sprintf(aiSmallDeckName, "ai_baka_deck%i", nbAIDecks);
int percentVictories = stats->percentVictories(string(aiSmallDeckName));
if (percentVictories >= 67)
wins++;
if (wins >= 10)
return 1;
}
}
return 0;
}
int Credits::isMomirUnlocked()
{
if (options[Options::MOMIR_MODE_UNLOCKED].number)
return 0;
if (p1->game->inPlay->countByType("land") == 8)
return 1;
return 0;
}
int Credits::isEvilTwinUnlocked()
{
if (options[Options::EVILTWIN_MODE_UNLOCKED].number)
return 0;
if (p1->game->inPlay->nb_cards && (p1->game->inPlay->nb_cards == p2->game->inPlay->nb_cards))
return 1;
return 0;
}
int Credits::isRandomDeckUnlocked()
{
if (0 == options[Options::DIFFICULTY].number)
return 0;
if (options[Options::RANDOMDECK_MODE_UNLOCKED].number)
return 0;
if (p1->life >= 20)
return 1;
return 0;
}
int Credits::addCreditBonus(int value)
{
PlayerData * playerdata = NEW PlayerData();
playerdata->credits += value;
playerdata->save();
SAFE_DELETE(playerdata);
return value;
}
/*
* adds a Card to a deck
* @param cardId id of the card
* @param collection deck representing player's collection
*/
int Credits::addCardToCollection(int cardId, MTGDeck * collection)
{
return collection->add(cardId);
}
/*
* adds a Card to player's collection
* prefer to call the above function if you want to add several cards, since saving is expensive
*/
int Credits::addCardToCollection(int cardId)
{
MTGAllCards * ac = GameApp::collection;
PlayerData * playerdata = NEW PlayerData(ac);
int result = addCardToCollection(cardId, playerdata->collection);
playerdata->collection->save();
return result;
}
int Credits::unlockSetByName(string name)
{
int setId = setlist.findSet(name);
if (setId < 0)
return 0;
GameOptionAward* goa = (GameOptionAward*) &options[Options::optionSet(setId)];
goa->giveAward();
options.save();
return setId + 1; //We add 1 here to show success/failure. Be sure to subtract later.
}
int Credits::unlockRandomSet(bool force)
{
int setId = WRand() % setlist.size();
if (force)
{
int init = setId;
bool found = false;
do
{
if (1 != options[Options::optionSet(setId)].number)
found = true;
else
{
setId++;
if (setId == setlist.size())
setId = 0;
}
} while (setId != init && !found);
}
if (1 == options[Options::optionSet(setId)].number)
return 0;
GameOptionAward* goa = (GameOptionAward*) &options[Options::optionSet(setId)];
goa->giveAward();
options.save();
return setId + 1; //We add 1 here to show success/failure. Be sure to subtract later.
}
int Credits::IsMoreAIDecksUnlocked(DeckStats * stats) {
int currentlyUnlocked = options[Options::AIDECKS_UNLOCKED].number;
// Random rule: having played at least 1.2 times as much games as
// the number of currently unlocked decks in order to go through.
if (stats->nbGames() < currentlyUnlocked * 1.2) return 0;
int nbdecks = 0;
int found = 1;
while (found)
{
found = 0;
char buffer[512];
sprintf(buffer, JGE_GET_RES("ai/baka/deck%i.txt").c_str(), nbdecks + 1);
wagic::ifstream file(buffer);
if (file)
{
found = 1;
file.close();
nbdecks++;
if (nbdecks > currentlyUnlocked)
return 1;
}
}
return 0;
}