diff options
Diffstat (limited to 'Minecraft.World/CommonStats.cpp')
| -rw-r--r-- | Minecraft.World/CommonStats.cpp | 298 |
1 files changed, 298 insertions, 0 deletions
diff --git a/Minecraft.World/CommonStats.cpp b/Minecraft.World/CommonStats.cpp new file mode 100644 index 00000000..8231070c --- /dev/null +++ b/Minecraft.World/CommonStats.cpp @@ -0,0 +1,298 @@ +#include "stdafx.h" +#include "Achievements.h" +#include "Item.h" +#include "Tile.h" +#include "CommonStats.h" + +Stat *CommonStats::get_stat(int i) +{ + return Stats::get(i); +} + +Stat* CommonStats::get_walkOneM() { return Stats::walkOneM; } + +Stat* CommonStats::get_swimOneM() { return Stats::swimOneM; } + +Stat* CommonStats::get_fallOneM() { return Stats::fallOneM; } + +Stat* CommonStats::get_climbOneM() { return Stats::climbOneM; } + +Stat* CommonStats::get_minecartOneM() { return Stats::minecartOneM; } + +Stat* CommonStats::get_boatOneM() { return Stats::boatOneM; } + +Stat* CommonStats::get_pigOneM() { return Stats::pigOneM; } + +Stat* CommonStats::get_portalsCreated() { return Stats::portalsCreated; } + +Stat* CommonStats::get_cowsMilked() { return Stats::cowsMilked; } + +Stat* CommonStats::get_netherLavaCollected() { return Stats::netherLavaCollected; } + +Stat* CommonStats::get_killsZombie() { return Stats::killsZombie; } + +Stat* CommonStats::get_killsSkeleton() { return Stats::killsSkeleton; } + +Stat* CommonStats::get_killsCreeper() { return Stats::killsCreeper; } + +Stat* CommonStats::get_killsSpider() { return Stats::killsSpider; } + +Stat* CommonStats::get_killsSpiderJockey() { return Stats::killsSpiderJockey; } + +Stat* CommonStats::get_killsZombiePigman() { return Stats::killsZombiePigman; } + +Stat* CommonStats::get_killsSlime() { return Stats::killsSlime; } + +Stat* CommonStats::get_killsGhast() { return Stats::killsGhast; } + +Stat* CommonStats::get_killsNetherZombiePigman() { return Stats::killsNetherZombiePigman; } + +Stat *CommonStats::get_breedEntity(eINSTANCEOF mobType) +{ + if (mobType == eTYPE_COW) return GenericStats::repopulation(); + else return NULL; +} + +Stat *CommonStats::get_tamedEntity(eINSTANCEOF mobType) +{ + if (mobType == eTYPE_OZELOT) return GenericStats::lionTamer(); + else if (mobType == eTYPE_WOLF) return Stats::befriendsWolf; + else return NULL; +} + +Stat *CommonStats::get_craftedEntity(eINSTANCEOF mobType) +{ + if (mobType == eTYPE_VILLAGERGOLEM) return GenericStats::bodyGuard(); + else return NULL; +} + +Stat *CommonStats::get_shearedEntity(eINSTANCEOF mobType) +{ + if (mobType == eTYPE_SHEEP) return GenericStats::haveAShearfulDay(); + else return NULL; +} + +Stat *CommonStats::get_totalBlocksMined() { return Stats::totalBlocksMined; } + +Stat* CommonStats::get_timePlayed() { return Stats::timePlayed; } + +Stat* CommonStats::get_blocksPlaced(int blockId) +{ +#if (defined _EXTENDED_ACHIEVEMENTS) && (!defined _XBOX_ONE) + return Stats::blocksPlaced[blockId]; +#else + return NULL; +#endif +} + +Stat *CommonStats::get_blocksMined(int blockId) { return Stats::blocksMined[blockId]; } + +Stat *CommonStats::get_itemsCollected(int itemId, int itemAux) +{ + // 4J-JEV: We don't need itemsCollected(emerald) so I'm using it to + // stor itemsBought(emerald) so I don't have to make yet another massive + // StatArray for Items Bought. +#if (defined _EXTENDED_ACHIEVEMENTS) && (!defined _XBOX_ONE) + if (itemId == Tile::cloth_Id) return Stats::rainbowCollection[itemAux]; +#endif + + if (itemId != Item::emerald_Id) return Stats::itemsCollected[itemId]; + else return NULL; +} + +Stat *CommonStats::get_itemsCrafted(int itemId) { return Stats::itemsCrafted[itemId]; } + +Stat *CommonStats::get_itemsSmelted(int itemId) { return Stats::itemsCrafted[itemId]; } + +Stat *CommonStats::get_itemsUsed(int itemId) +{ +#if (defined _EXTENDED_ACHIEVEMENTS) && (!defined _XBOX_ONE) + // 4J-JEV: I've done the same thing here, we can't place these items anyway. + if (itemId == Item::porkChop_cooked_Id) return Stats::blocksPlaced[itemId]; +#endif + + return NULL; +} + +Stat *CommonStats::get_itemsBought(int itemId) +{ + // 4J-JEV: We don't need itemsCollected(emerald) so I'm using it to + // stor itemsBought(emerald) so I don't have to make yet another massive + // StatArray for Items Bought. + + if (itemId == Item::emerald_Id) return Stats::itemsCollected[itemId]; + else return NULL; +} + +Stat *CommonStats::get_killsEnderdragon() { return Stats::killsEnderdragon; } + +Stat *CommonStats::get_completeTheEnd() { return Stats::completeTheEnd; } + +Stat *CommonStats::get_enteredBiome(int biomeId) +{ +#if (defined _EXTENDED_ACHIEVEMENTS) && (!defined _XBOX_ONE) + return Stats::biomesVisisted[biomeId]; +#else + return NULL; +#endif +} + +Stat *CommonStats::get_achievement(eAward achievementId) +{ + switch (achievementId) + { + case eAward_TakingInventory: return (Stat *) Achievements::openInventory; + case eAward_GettingWood: return (Stat *) Achievements::mineWood; + case eAward_Benchmarking: return (Stat *) Achievements::buildWorkbench; + case eAward_TimeToMine: return (Stat *) Achievements::buildPickaxe; + case eAward_HotTopic: return (Stat *) Achievements::buildFurnace; + case eAward_AquireHardware: return (Stat *) Achievements::acquireIron; + case eAward_TimeToFarm: return (Stat *) Achievements::buildHoe; + case eAward_BakeBread: return (Stat *) Achievements::makeBread; + case eAward_TheLie: return (Stat *) Achievements::bakeCake; + case eAward_GettingAnUpgrade: return (Stat *) Achievements::buildBetterPickaxe; + case eAward_DeliciousFish: return (Stat *) Achievements::cookFish; + case eAward_OnARail: return (Stat *) Achievements::onARail; + case eAward_TimeToStrike: return (Stat *) Achievements::buildSword; + case eAward_MonsterHunter: return (Stat *) Achievements::killEnemy; + case eAward_CowTipper: return (Stat *) Achievements::killCow; + case eAward_WhenPigsFly: return (Stat *) Achievements::flyPig; + case eAward_LeaderOfThePack: return (Stat *) Achievements::leaderOfThePack; + case eAward_MOARTools: return (Stat *) Achievements::MOARTools; + case eAward_DispenseWithThis: return (Stat *) Achievements::dispenseWithThis; + case eAward_InToTheNether: return (Stat *) Achievements::InToTheNether; + case eAward_mine100Blocks: return (Stat *) Achievements::mine100Blocks; + case eAward_kill10Creepers: return (Stat *) Achievements::kill10Creepers; + case eAward_eatPorkChop: return (Stat *) Achievements::eatPorkChop; + case eAward_play100Days: return (Stat *) Achievements::play100Days; + case eAward_arrowKillCreeper: return (Stat *) Achievements::arrowKillCreeper; + case eAward_socialPost: return (Stat *) Achievements::socialPost; + +#ifndef _XBOX + case eAward_snipeSkeleton: return (Stat *) Achievements::snipeSkeleton; + case eAward_diamonds: return (Stat *) Achievements::diamonds; + case eAward_portal: return (Stat *) NULL; // TODO + case eAward_ghast: return (Stat *) Achievements::ghast; + case eAward_blazeRod: return (Stat *) Achievements::blazeRod; + case eAward_potion: return (Stat *) Achievements::potion; + case eAward_theEnd: return (Stat *) Achievements::theEnd; + case eAward_winGame: return (Stat *) Achievements::winGame; + case eAward_enchantments: return (Stat *) Achievements::enchantments; +#endif + +#ifdef _EXTENDED_ACHIEVEMENTS + case eAward_overkill: return (Stat *) Achievements::overkill; // Restored old ach. + case eAward_bookcase: return (Stat *) Achievements::bookcase; // Restored old ach. + + case eAward_adventuringTime: return (Stat *) Achievements::adventuringTime; + case eAward_repopulation: return (Stat *) Achievements::repopulation; + case eAward_diamondsToYou: return (Stat *) Achievements::diamondsToYou; + //case eAward_passingTheTime: return (Stat *) Achievements::passingTheTime; + //case eAward_archer: return (Stat *) Achievements::archer; + case eAward_theHaggler: return (Stat *) Achievements::theHaggler; + case eAward_potPlanter: return (Stat *) Achievements::potPlanter; + case eAward_itsASign: return (Stat *) Achievements::itsASign; + case eAward_ironBelly: return (Stat *) Achievements::ironBelly; + case eAward_haveAShearfulDay: return (Stat *) Achievements::haveAShearfulDay; + case eAward_rainbowCollection: return (Stat *) Achievements::rainbowCollection; + case eAward_stayinFrosty: return (Stat *) Achievements::stayinFrosty; + case eAward_chestfulOfCobblestone: return (Stat *) Achievements::chestfulOfCobblestone; + case eAward_renewableEnergy: return (Stat *) Achievements::renewableEnergy; + case eAward_musicToMyEars: return (Stat *) Achievements::musicToMyEars; + case eAward_bodyGuard: return (Stat *) Achievements::bodyGuard; + case eAward_ironMan: return (Stat *) Achievements::ironMan; + case eAward_zombieDoctor: return (Stat *) Achievements::zombieDoctor; + case eAward_lionTamer: return (Stat *) Achievements::lionTamer; +#endif + + default: return (Stat *) NULL; + } +} + +byteArray CommonStats::getParam_walkOneM(int distance) +{ + return makeParam(distance); +} + +byteArray CommonStats::getParam_swimOneM(int distance) +{ + return makeParam(distance); +} + +byteArray CommonStats::getParam_fallOneM(int distance) +{ + return makeParam(distance); +} + +byteArray CommonStats::getParam_climbOneM(int distance) +{ + return makeParam(distance); +} + +byteArray CommonStats::getParam_minecartOneM(int distance) +{ + return makeParam(distance); +} + +byteArray CommonStats::getParam_boatOneM(int distance) +{ + return makeParam(distance); +} + +byteArray CommonStats::getParam_pigOneM(int distance) +{ + return makeParam(distance); +} + +byteArray CommonStats::getParam_blocksMined(int id, int data, int count) +{ + return makeParam(count); +} + +byteArray CommonStats::getParam_itemsCollected(int id, int aux, int count) +{ + return makeParam(count); +} + +byteArray CommonStats::getParam_itemsCrafted(int id, int aux, int count) +{ + return makeParam(count); +} + +byteArray CommonStats::getParam_itemsSmelted(int id, int aux, int count) +{ + return makeParam(count); +} + +byteArray CommonStats::getParam_itemsUsed(int id, int aux, int count) +{ + return makeParam(count); +} + +byteArray CommonStats::getParam_itemsBought(int id, int aux, int count) +{ + return makeParam(count); +} + +byteArray CommonStats::getParam_time(int timediff) +{ + return makeParam(timediff); +} + +byteArray CommonStats::getParam_noArgs() +{ + return makeParam(); +} + +byteArray CommonStats::makeParam(int count) +{ + byteArray out( sizeof(int) ); + memcpy(out.data,&count,sizeof(int)); + return out; +} + +int CommonStats::readParam(byteArray paramBlob) +{ + if (paramBlob.length == sizeof(int)) return *( (int*) paramBlob.data ); + else return 1; +}
\ No newline at end of file |
