the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 185 lines 14 kB view raw
1#include "stdafx.h" 2#include "net.minecraft.stats.h" 3#include "net.minecraft.world.item.h" 4#include "net.minecraft.world.level.tile.h" 5#include "Achievement.h" 6#include "Achievements.h" 7 8 9const int Achievements::ACHIEVEMENT_OFFSET = 0x500000; 10 11// maximum position of achievements (min and max) 12 13int Achievements::xMin = 4294967295; // 4J Stu Was 4294967296 which is 1 larger than maxint. Hopefully no side effects 14int Achievements::yMin = 4294967295; // 4J Stu Was 4294967296 which is 1 larger than maxint. Hopefully no side effects 15int Achievements::xMax = 0; 16int Achievements::yMax = 0; 17 18vector<Achievement *> *Achievements::achievements = new vector<Achievement *>; 19 20Achievement *Achievements::openInventory = NULL; 21Achievement *Achievements::mineWood = NULL; 22Achievement *Achievements::buildWorkbench = NULL; 23Achievement *Achievements::buildPickaxe = NULL; 24Achievement *Achievements::buildFurnace = NULL; 25Achievement *Achievements::acquireIron = NULL; 26Achievement *Achievements::buildHoe = NULL; 27Achievement *Achievements::makeBread = NULL; 28Achievement *Achievements::bakeCake = NULL; 29Achievement *Achievements::buildBetterPickaxe = NULL; 30Achievement *Achievements::cookFish = NULL; 31Achievement *Achievements::onARail = NULL; 32Achievement *Achievements::buildSword = NULL; 33Achievement *Achievements::killEnemy = NULL; 34Achievement *Achievements::killCow = NULL; 35Achievement *Achievements::flyPig = NULL; 36 37Achievement *Achievements::snipeSkeleton = NULL; 38Achievement *Achievements::diamonds = NULL; 39//Achievement *Achievements::portal = NULL; 40Achievement *Achievements::ghast = NULL; 41Achievement *Achievements::blazeRod = NULL; 42Achievement *Achievements::potion = NULL; 43Achievement *Achievements::theEnd = NULL; 44Achievement *Achievements::winGame = NULL; 45Achievement *Achievements::enchantments = NULL; 46//Achievement *Achievements::overkill = NULL; 47//Achievement *Achievements::bookcase = NULL; 48 49// 4J : WESTY : Added new acheivements. 50Achievement *Achievements::leaderOfThePack = NULL; 51Achievement *Achievements::MOARTools = NULL; 52Achievement *Achievements::dispenseWithThis = NULL; 53Achievement *Achievements::InToTheNether = NULL; 54 55// 4J : WESTY : Added other awards. 56Achievement *Achievements::socialPost = NULL; 57Achievement *Achievements::eatPorkChop = NULL; 58Achievement *Achievements::play100Days = NULL; 59Achievement *Achievements::arrowKillCreeper = NULL; 60Achievement *Achievements::mine100Blocks = NULL; 61Achievement *Achievements::kill10Creepers = NULL; 62 63#ifdef _EXTENDED_ACHIEVEMENTS 64Achievement *Achievements::overkill = NULL; // Restored old achivements. 65Achievement *Achievements::bookcase = NULL; // Restored old achivements. 66 67// 4J-JEV: New Achievements for Orbis. 68Achievement *Achievements::adventuringTime = NULL; 69Achievement *Achievements::repopulation = NULL; 70//Achievement *Achievements::porkChop = NULL; 71Achievement *Achievements::diamondsToYou = NULL; 72//Achievement *Achievements::passingTheTime = NULL; 73//Achievement *Achievements::archer = NULL; 74Achievement *Achievements::theHaggler = NULL; 75Achievement *Achievements::potPlanter = NULL; 76Achievement *Achievements::itsASign = NULL; 77Achievement *Achievements::ironBelly = NULL; 78Achievement *Achievements::haveAShearfulDay = NULL; 79Achievement *Achievements::rainbowCollection = NULL; 80Achievement *Achievements::stayinFrosty = NULL; 81Achievement *Achievements::chestfulOfCobblestone = NULL; 82Achievement *Achievements::renewableEnergy = NULL; 83Achievement *Achievements::musicToMyEars = NULL; 84Achievement *Achievements::bodyGuard = NULL; 85Achievement *Achievements::ironMan = NULL; 86Achievement *Achievements::zombieDoctor = NULL; 87Achievement *Achievements::lionTamer = NULL; 88#endif 89 90void Achievements::staticCtor() 91{ 92 Achievements::openInventory = (new Achievement(eAward_TakingInventory, L"openInventory", 0, 0, Item::book, NULL))->setAwardLocallyOnly()->postConstruct(); 93 Achievements::mineWood = (new Achievement(eAward_GettingWood, L"mineWood", 2, 1, Tile::treeTrunk, (Achievement *) openInventory))->postConstruct(); 94 Achievements::buildWorkbench = (new Achievement(eAward_Benchmarking, L"buildWorkBench", 4, -1, Tile::workBench, (Achievement *) mineWood))->postConstruct(); 95 Achievements::buildPickaxe = (new Achievement(eAward_TimeToMine, L"buildPickaxe", 4, 2, Item::pickAxe_wood, (Achievement *) buildWorkbench))->postConstruct(); 96 Achievements::buildFurnace = (new Achievement(eAward_HotTopic, L"buildFurnace", 3, 4, Tile::furnace_lit, (Achievement *) buildPickaxe))->postConstruct(); 97 Achievements::acquireIron = (new Achievement(eAward_AquireHardware, L"acquireIron", 1, 4, Item::ironIngot, (Achievement *) buildFurnace))->postConstruct(); 98 Achievements::buildHoe = (new Achievement(eAward_TimeToFarm, L"buildHoe", 2, -3, Item::hoe_wood, (Achievement *) buildWorkbench))->postConstruct(); 99 Achievements::makeBread = (new Achievement(eAward_BakeBread, L"makeBread", -1, -3, Item::bread, (Achievement *) buildHoe))->postConstruct(); 100 Achievements::bakeCake = (new Achievement(eAward_TheLie, L"bakeCake", 0, -5, Item::cake, (Achievement *) buildHoe))->postConstruct(); 101 Achievements::buildBetterPickaxe = (new Achievement(eAward_GettingAnUpgrade, L"buildBetterPickaxe", 6, 2, Item::pickAxe_stone, (Achievement *) buildPickaxe))->postConstruct(); 102 Achievements::cookFish = (new Achievement(eAward_DeliciousFish, L"cookFish", 2, 6, Item::fish_cooked, (Achievement *) buildFurnace))->postConstruct(); 103 Achievements::onARail = (new Achievement(eAward_OnARail, L"onARail", 2, 3, Tile::rail, (Achievement *) acquireIron))->setGolden()->postConstruct(); 104 Achievements::buildSword = (new Achievement(eAward_TimeToStrike, L"buildSword", 6, -1, Item::sword_wood, (Achievement *) buildWorkbench))->postConstruct(); 105 Achievements::killEnemy = (new Achievement(eAward_MonsterHunter, L"killEnemy", 8, -1, Item::bone, (Achievement *) buildSword))->postConstruct(); 106 Achievements::killCow = (new Achievement(eAward_CowTipper, L"killCow", 7, -3, Item::leather, (Achievement *) buildSword))->postConstruct(); 107 Achievements::flyPig = (new Achievement(eAward_WhenPigsFly, L"flyPig", 8, -4, Item::saddle, (Achievement *) killCow))->setGolden()->postConstruct(); 108 109 // 4J Stu - The order of these achievemnts is very important, as they map directly to data stored in the profile data. New achievements should be added at the end. 110 111 // 4J : WESTY : Added new achievements. Note, params "x", "y", "icon" and "requires" are ignored on xbox. 112 Achievements::leaderOfThePack = (new Achievement(eAward_LeaderOfThePack, L"leaderOfThePack", 0, 0, Tile::treeTrunk, (Achievement *) buildSword))->setAwardLocallyOnly()->postConstruct(); 113 Achievements::MOARTools = (new Achievement(eAward_MOARTools, L"MOARTools", 0, 0, Tile::treeTrunk, (Achievement *) buildSword))->setAwardLocallyOnly()->postConstruct(); 114 Achievements::dispenseWithThis = (new Achievement(eAward_DispenseWithThis, L"dispenseWithThis", 0, 0, Tile::treeTrunk, (Achievement *) buildSword))->postConstruct(); 115 Achievements::InToTheNether = (new Achievement(eAward_InToTheNether, L"InToTheNether", 0, 0, Tile::treeTrunk, (Achievement *) buildSword))->postConstruct(); 116 117 // 4J : WESTY : Added other awards. 118 Achievements::mine100Blocks = (new Achievement(eAward_mine100Blocks, L"mine100Blocks", 0, 0, Tile::treeTrunk, (Achievement *) buildSword))->setAwardLocallyOnly()->postConstruct(); 119 Achievements::kill10Creepers = (new Achievement(eAward_kill10Creepers, L"kill10Creepers", 0, 0, Tile::treeTrunk, (Achievement *) buildSword))->setAwardLocallyOnly()->postConstruct(); 120#ifdef _EXTENDED_ACHIEVEMENTS 121 Achievements::eatPorkChop = (new Achievement(eAward_eatPorkChop, L"eatPorkChop", 0, 0, Tile::treeTrunk, (Achievement *) buildSword))->setAwardLocallyOnly()->postConstruct(); 122#else 123 Achievements::eatPorkChop = (new Achievement(eAward_eatPorkChop, L"eatPorkChop", 0, 0, Tile::treeTrunk, (Achievement *) buildSword))->postConstruct(); 124#endif 125 Achievements::play100Days = (new Achievement(eAward_play100Days, L"play100Days", 0, 0, Tile::treeTrunk, (Achievement *) buildSword))->setAwardLocallyOnly()->postConstruct(); 126 Achievements::arrowKillCreeper = (new Achievement(eAward_arrowKillCreeper, L"arrowKillCreeper", 0, 0, Tile::treeTrunk, (Achievement *) buildSword))->postConstruct(); 127 Achievements::socialPost = (new Achievement(eAward_socialPost, L"socialPost", 0, 0, Tile::treeTrunk, (Achievement *) buildSword))->postConstruct(); 128 129#ifndef _XBOX 130// WARNING: NO NEW ACHIEVMENTS CAN BE ADDED HERE 131// These stats (achievements) are directly followed by new stats/achievements in the profile data, so cannot be changed without migrating the profile data 132 133 // 4J Stu - All new Java achievements removed to stop them using the profile data 134 135 // 4J Stu - This achievment added in 1.8.2, but does not map to any Xbox achievements 136 Achievements::snipeSkeleton = (new Achievement(eAward_snipeSkeleton, L"snipeSkeleton", 7, 0, Item::bow, (Achievement *) killEnemy))->setGolden()->postConstruct(); 137 138 // 4J Stu - These added in 1.0.1, but do not map to any Xbox achievements 139 Achievements::diamonds = (new Achievement(eAward_diamonds, L"diamonds", -1, 5, Item::diamond, (Achievement *) acquireIron) )->postConstruct(); 140 //Achievements::portal = (new Achievement(eAward_portal, L"portal", -1, 7, Tile::obsidian, (Achievement *)diamonds) )->postConstruct(); 141 Achievements::ghast = (new Achievement(eAward_ghast, L"ghast", -4, 8, Item::ghastTear, (Achievement *)ghast) )->setGolden()->postConstruct(); 142 Achievements::blazeRod = (new Achievement(eAward_blazeRod, L"blazeRod", 0, 9, Item::blazeRod, (Achievement *)blazeRod) )->postConstruct(); 143 Achievements::potion = (new Achievement(eAward_potion, L"potion", 2, 8, Item::potion, (Achievement *)potion) )->postConstruct(); 144 Achievements::theEnd = (new Achievement(eAward_theEnd, L"theEnd", 3, 10, Item::eyeOfEnder, (Achievement *)theEnd) )->setGolden()->postConstruct(); 145 Achievements::winGame = (new Achievement(eAward_winGame, L"theEnd2", 4, 13, Tile::dragonEgg, (Achievement *)winGame) )->setGolden()->postConstruct(); 146 Achievements::enchantments = (new Achievement(eAward_enchantments, L"enchantments", -4, 4, Tile::enchantTable, (Achievement *)enchantments) )->postConstruct(); 147 // Achievements::overkill = (new Achievement(eAward_overkill, L"overkill", -4, 1, Item::sword_diamond, (Achievement *)enchantments) )->setGolden()->postConstruct(); 148 // Achievements::bookcase = (new Achievement(eAward_bookcase, L"bookcase", -3, 6, Tile::bookshelf, (Achievement *)enchantments) )->postConstruct(); 149#endif 150 151#ifdef _EXTENDED_ACHIEVEMENTS 152 Achievements::overkill = (new Achievement(eAward_overkill, L"overkill", -4,1, Item::sword_diamond, (Achievement *)enchantments) )->setGolden()->postConstruct(); 153 Achievements::bookcase = (new Achievement(eAward_bookcase, L"bookcase", -3,6, Tile::bookshelf, (Achievement *)enchantments) )->postConstruct(); 154 155 Achievements::adventuringTime = (new Achievement(eAward_adventuringTime, L"adventuringTime", 0,0, Tile::bookshelf, (Achievement*) NULL) )->setAwardLocallyOnly()->postConstruct(); 156 Achievements::repopulation = (new Achievement(eAward_repopulation, L"repopulation", 0,0, Tile::bookshelf, (Achievement*) NULL) )->postConstruct(); 157 //Achievements::porkChoop // // // // // // 158 Achievements::diamondsToYou = (new Achievement(eAward_diamondsToYou, L"diamondsToYou", 0,0, Tile::bookshelf, (Achievement*) NULL) )->postConstruct(); 159 //Achievements::passingTheTime = (new Achievement(eAward_play100Days, L"passingTheTime", 0,0, Tile::bookshelf, (Achievement*) NULL) )->postConstruct(); 160 //Achievements::archer = (new Achievement(eAward_arrowKillCreeper, L"archer", 0,0, Tile::bookshelf, (Achievement*) NULL) )->postConstruct(); 161 Achievements::theHaggler = (new Achievement(eAward_theHaggler, L"theHaggler", 0,0, Tile::bookshelf, (Achievement*) NULL) )->setAwardLocallyOnly()->postConstruct(); 162 Achievements::potPlanter = (new Achievement(eAward_potPlanter, L"potPlanter", 0,0, Tile::bookshelf, (Achievement*) NULL) )->setAwardLocallyOnly()->postConstruct(); 163 Achievements::itsASign = (new Achievement(eAward_itsASign, L"itsASign", 0,0, Tile::bookshelf, (Achievement*) NULL) )->setAwardLocallyOnly()->postConstruct(); 164 Achievements::ironBelly = (new Achievement(eAward_ironBelly, L"ironBelly", 0,0, Tile::bookshelf, (Achievement*) NULL) )->postConstruct(); 165 Achievements::haveAShearfulDay = (new Achievement(eAward_haveAShearfulDay, L"haveAShearfulDay", 0,0, Tile::bookshelf, (Achievement*) NULL) )->postConstruct(); 166 Achievements::rainbowCollection = (new Achievement(eAward_rainbowCollection, L"rainbowCollection", 0,0, Tile::bookshelf, (Achievement*) NULL) )->setAwardLocallyOnly()->postConstruct(); 167 Achievements::stayinFrosty = (new Achievement(eAward_stayinFrosty, L"stayingFrosty", 0,0, Tile::bookshelf, (Achievement*) NULL) )->postConstruct(); 168 Achievements::chestfulOfCobblestone = (new Achievement(eAward_chestfulOfCobblestone, L"chestfulOfCobblestone", 0,0, Tile::bookshelf, (Achievement*) NULL) )->setAwardLocallyOnly()->postConstruct(); 169 Achievements::renewableEnergy = (new Achievement(eAward_renewableEnergy, L"renewableEnergy", 0,0, Tile::bookshelf, (Achievement*) NULL) )->postConstruct(); 170 Achievements::musicToMyEars = (new Achievement(eAward_musicToMyEars, L"musicToMyEars", 0,0, Tile::bookshelf, (Achievement*) NULL) )->postConstruct(); 171 Achievements::bodyGuard = (new Achievement(eAward_bodyGuard, L"bodyGuard", 0,0, Tile::bookshelf, (Achievement*) NULL) )->postConstruct(); 172 Achievements::ironMan = (new Achievement(eAward_ironMan, L"ironMan", 0,0, Tile::bookshelf, (Achievement*) NULL) )->postConstruct(); 173 Achievements::zombieDoctor = (new Achievement(eAward_zombieDoctor, L"zombieDoctor", 0,0, Tile::bookshelf, (Achievement*) NULL) )->postConstruct(); 174 Achievements::lionTamer = (new Achievement(eAward_lionTamer, L"lionTamer", 0,0, Tile::bookshelf, (Achievement*) NULL) )->postConstruct(); 175#endif 176 177} 178 179// Static { System.out.println(achievements.size() + " achievements"); } TODO 180 181 182void Achievements::init() 183{ 184} 185