diff --git a/include/asset_enums.h b/include/asset_enums.h index 59247c01..1c863d11 100644 --- a/include/asset_enums.h +++ b/include/asset_enums.h @@ -4643,6 +4643,316 @@ typedef enum AssetObjectsEnum { ASSET_OBJECT_MIDICHSET } AssetObjectsEnum; +/********** ASSET_LEVEL_OBJECT_TRANSLATION_TABLE **********/ + +typedef enum AssetLevelObjectTranslationTableEnum { + ASSET_OBJECT_ID_DOME, + ASSET_OBJECT_ID_KREMCAR, + ASSET_OBJECT_ID_BADGERCAR, + ASSET_OBJECT_ID_TORTCAR, + ASSET_OBJECT_ID_CONKACAR, + ASSET_OBJECT_ID_SMARTIETREE, + ASSET_OBJECT_ID_FRONTTYRE, + ASSET_OBJECT_ID_BACKTYRE, + ASSET_OBJECT_ID_HITTESTER, + ASSET_OBJECT_ID_WORLDGATE, + ASSET_OBJECT_ID_MIDIFADE, + ASSET_OBJECT_ID_PARKWARDEN, + ASSET_OBJECT_ID_WARDENSMOKE, + ASSET_OBJECT_ID_ANIMATOR, + ASSET_OBJECT_ID_BOMB, + ASSET_OBJECT_ID_FLOWERS, + ASSET_OBJECT_ID_SMOKE, + ASSET_OBJECT_ID_EXIT, + ASSET_OBJECT_ID_CAMERA_CONTROL, + ASSET_OBJECT_ID_WORLDKEY, + ASSET_OBJECT_ID_SETUPPOINT, + ASSET_OBJECT_ID_AUDIO, + ASSET_OBJECT_ID_AUDIOLINE, + ASSET_OBJECT_ID_DINOSAUR1, + ASSET_OBJECT_ID_CHECKPOINT, + ASSET_OBJECT_ID_LEVELDOOR, + ASSET_OBJECT_ID_FOGCHANGER, + ASSET_OBJECT_ID_AINODE, + ASSET_OBJECT_ID_WEAPONBALLOON, + ASSET_OBJECT_ID_MISSILE, + ASSET_OBJECT_ID_DOME1, + ASSET_OBJECT_ID_SNOWMEN, + ASSET_OBJECT_ID_DOME2, + ASSET_OBJECT_ID_SIGNS, + ASSET_OBJECT_ID_REEDS, + ASSET_OBJECT_ID_BEACHTREE, + ASSET_OBJECT_ID_AUDIOSEQLINE, + ASSET_OBJECT_ID_AUDIOSEQ, + ASSET_OBJECT_ID_STOPWATCHICON, + ASSET_OBJECT_ID_EFFECTBOX, + ASSET_OBJECT_ID_COINCREATOR, + ASSET_OBJECT_ID_TREASURESUCKER, + ASSET_OBJECT_ID_BRIDGE, + ASSET_OBJECT_ID_LAVASPURT, + ASSET_OBJECT_ID_BOMBEXPLOSION, + ASSET_OBJECT_ID_WBALLOONPOP, + ASSET_OBJECT_ID_BUBBLEWEAPON, + ASSET_OBJECT_ID_DOME5, + ASSET_OBJECT_ID_DINOISLE, + ASSET_OBJECT_ID_AUDIOREVERB, + ASSET_OBJECT_ID_POSARROW, + ASSET_OBJECT_ID_WINDSAIL, + ASSET_OBJECT_ID_COLLECTEGG, + ASSET_OBJECT_ID_SKYCONTROL, + ASSET_OBJECT_ID_STOPWATCHHAND, + ASSET_OBJECT_ID_KREMLINHOVER, + ASSET_OBJECT_ID_BADGERHOVER, + ASSET_OBJECT_ID_TORTHOVER, + ASSET_OBJECT_ID_CONKAHOVER, + ASSET_OBJECT_ID_DOME3, + ASSET_OBJECT_ID_GLOVE, + ASSET_OBJECT_ID_FLAMINGTORCH, + ASSET_OBJECT_ID_MIST, + ASSET_OBJECT_ID_DOME4, + ASSET_OBJECT_ID_TEXSCROLL, + ASSET_OBJECT_ID_FAN, + ASSET_OBJECT_ID_KREMPLANE, + ASSET_OBJECT_ID_BADGERPLANE, + ASSET_OBJECT_ID_TORTPLANE, + ASSET_OBJECT_ID_CONKA, + ASSET_OBJECT_ID_LOG, + ASSET_OBJECT_ID_MODECHANGE, + ASSET_OBJECT_ID_JETENGINE, + ASSET_OBJECT_ID_BLUEBERRYBUSH, + ASSET_OBJECT_ID_RUBBERSNOWTREE, + ASSET_OBJECT_ID_SKINNYSNOWTREE, + ASSET_OBJECT_ID_XMASTREE, + ASSET_OBJECT_ID_ALPINESNOWTREE, + ASSET_OBJECT_ID_RUBBERTREE, + ASSET_OBJECT_ID_BOULDER, + ASSET_OBJECT_ID_STOPWATCHMAN, + ASSET_OBJECT_ID_TIGERCAR, + ASSET_OBJECT_ID_TROPHYCAB, + ASSET_OBJECT_ID_COIN, + ASSET_OBJECT_ID_BANJOCAR, + ASSET_OBJECT_ID_CHICKENCAR, + ASSET_OBJECT_ID_MOUSECAR, + ASSET_OBJECT_ID_TIGERHOVER, + ASSET_OBJECT_ID_BANJOHOVER, + ASSET_OBJECT_ID_CHICKENHOVER, + ASSET_OBJECT_ID_MOUSEHOVER, + ASSET_OBJECT_ID_TIGPLANE, + ASSET_OBJECT_ID_BANJOPLANE, + ASSET_OBJECT_ID_CHICKENPLANE, + ASSET_OBJECT_ID_MOUSEPLANE, + ASSET_OBJECT_ID_EGGCREATOR, + ASSET_OBJECT_ID_CHARACTERFLAG, + ASSET_OBJECT_ID_FLYCOIN, + ASSET_OBJECT_ID_GOLDENBALLOON, + ASSET_OBJECT_ID_DOME6, + ASSET_OBJECT_ID_DOME10, + ASSET_OBJECT_ID_PALMTREETOP, + ASSET_OBJECT_ID_WHALE, + ASSET_OBJECT_ID_DINOSAUR2, + ASSET_OBJECT_ID_DINOSAUR3, + ASSET_OBJECT_ID_RGBALIGHT, + ASSET_OBJECT_ID_PALMPLANT, + ASSET_OBJECT_ID_SNOWBALL, + ASSET_OBJECT_ID_BUOY, + ASSET_OBJECT_ID_SILVERCOIN, + ASSET_OBJECT_ID_WEATHER, + ASSET_OBJECT_ID_AIRZIPPERS, + ASSET_OBJECT_ID_FIRTREE, + ASSET_OBJECT_ID_RAMPWHALE, + ASSET_OBJECT_ID_RAMPSWITCH, + ASSET_OBJECT_ID_SEAMONSTER, + ASSET_OBJECT_ID_BONUSGEM, + ASSET_OBJECT_ID_BONUS, + ASSET_OBJECT_ID_DOME7, + ASSET_OBJECT_ID_INTROCAM, + ASSET_OBJECT_ID_MAGICCARPET, + ASSET_OBJECT_ID_LENSFLARE, + ASSET_OBJECT_ID_LENSFLARESWITCH, + ASSET_OBJECT_ID_HAYSTACK, + ASSET_OBJECT_ID_PILLAR, + ASSET_OBJECT_ID_BOULDERANIM, + ASSET_OBJECT_ID_BOOST, + ASSET_OBJECT_ID_MONORAIL, + ASSET_OBJECT_ID_TROPHY, + ASSET_OBJECT_ID_GOLDTROPHY, + ASSET_OBJECT_ID_OILSLICK, + ASSET_OBJECT_ID_PIGHEADCOLOURS, + ASSET_OBJECT_ID_DOME11, + ASSET_OBJECT_ID_RARELOGO, + ASSET_OBJECT_ID_CHECKARROW, + ASSET_OBJECT_ID_BIGBOSSDOOR, + ASSET_OBJECT_ID_FIREBALLATTRACT, + ASSET_OBJECT_ID_FIREBALL, + ASSET_OBJECT_ID_SNOWBALLBOSS, + ASSET_OBJECT_ID_FROG, + ASSET_OBJECT_ID_TICKTROPHY, + ASSET_OBJECT_ID_SHIELD, + ASSET_OBJECT_ID_SELECTIONSHADOW, + ASSET_OBJECT_ID_BUBBLER, + ASSET_OBJECT_ID_PLANETYRE, + ASSET_OBJECT_ID_DOME8, + ASSET_OBJECT_ID_PALMTREETOPCHEA, + ASSET_OBJECT_ID_DOME9, + ASSET_OBJECT_ID_ANIMATION, + ASSET_OBJECT_ID_TIGERANIMPLANE, + ASSET_OBJECT_ID_BADGERANIMWALK, + ASSET_OBJECT_ID_ANIMCAMERA, + ASSET_OBJECT_ID_TIMBERDANCER, + ASSET_OBJECT_ID_PIPSYDANCER, + ASSET_OBJECT_ID_EMPTYHOVER, + ASSET_OBJECT_ID_ANIMDOME, + ASSET_OBJECT_ID_TIMBERANIMCAR, + ASSET_OBJECT_ID_NOENTRYDOOR, + ASSET_OBJECT_ID_N64LOGO, + ASSET_OBJECT_ID_WIZGHOSTS, + ASSET_OBJECT_ID_KREMSELECT, + ASSET_OBJECT_ID_BADGERSELECT, + ASSET_OBJECT_ID_TORTSELECT, + ASSET_OBJECT_ID_TIGERSELECT, + ASSET_OBJECT_ID_BANJOSELECT, + ASSET_OBJECT_ID_CHICKSELECT, + ASSET_OBJECT_ID_MOUSESELECT, + ASSET_OBJECT_ID_LEEFAN, + ASSET_OBJECT_ID_GBPARKWARDEN, + ASSET_OBJECT_ID_GOLDBALOONSPRIT, + ASSET_OBJECT_ID_LIGHTHOUSE, + ASSET_OBJECT_ID_SELECTIONHILL, + ASSET_OBJECT_ID_WIDESCREEN, + ASSET_OBJECT_ID_OVERRIDEPOS, + ASSET_OBJECT_ID_ANIMCAR, + ASSET_OBJECT_ID_TRIGGER, + ASSET_OBJECT_ID_BOLTGLOW, + ASSET_OBJECT_ID_POSTFORPARTY, + ASSET_OBJECT_ID_SPARKLYTHING, + ASSET_OBJECT_ID_ANIMDINOSAUR2, + ASSET_OBJECT_ID_TIMERANIMHOVER, + ASSET_OBJECT_ID_ANIMBADGERPLANE, + ASSET_OBJECT_ID_ANIMDINOSAUR1, + ASSET_OBJECT_ID_ANIMMOUSECAR, + ASSET_OBJECT_ID_ANIMTORT, + ASSET_OBJECT_ID_CHICKENANIMPLAN, + ASSET_OBJECT_ID_EMPTYHOVERANIM, + ASSET_OBJECT_ID_RANGETRIGGER, + ASSET_OBJECT_ID_KREMANIM, + ASSET_OBJECT_ID_MOUSEHOVERANIM, + ASSET_OBJECT_ID_TORTRUNNER, + ASSET_OBJECT_ID_ANIMBANJOPLANE, + ASSET_OBJECT_ID_CONKSELECT, + ASSET_OBJECT_ID_LASERGUN, + ASSET_OBJECT_ID_CONKAANIMCAR, + ASSET_OBJECT_ID_WAVEGENERATOR, + ASSET_OBJECT_ID_WAVEPOWER, + ASSET_OBJECT_ID_BUTTERFLY, + ASSET_OBJECT_ID_LASERBOLT, + ASSET_OBJECT_ID_FISH, + ASSET_OBJECT_ID_ANIMGENIE, + ASSET_OBJECT_ID_SPACESHIP1, + ASSET_OBJECT_ID_SPACESHIP2, + ASSET_OBJECT_ID_POLYGOLDBALOON, + ASSET_OBJECT_ID_GROUNDZIPPER, + ASSET_OBJECT_ID_ASTEROID, + ASSET_OBJECT_ID_PIRATESHIP, + ASSET_OBJECT_ID_BRIGHTSTAR, + ASSET_OBJECT_ID_WATERZIPPERS, + ASSET_OBJECT_ID_SPACESHIP3, + ASSET_OBJECT_ID_DOME12, + ASSET_OBJECT_ID_CHALDOOR, + ASSET_OBJECT_ID_STILLFROG, + ASSET_OBJECT_ID_PARKTROPHY, + ASSET_OBJECT_ID_BUTTERFLYBAIT, + ASSET_OBJECT_ID_BOSSDOOR, + ASSET_OBJECT_ID_PWSAFETELEPOINT, + ASSET_OBJECT_ID_TRICKYTOPS, + ASSET_OBJECT_ID_FLYINGCARPET, + ASSET_OBJECT_ID_DOME14, + ASSET_OBJECT_ID_PIGBOSS, + ASSET_OBJECT_ID_DOME13, + ASSET_OBJECT_ID_DOME15, + ASSET_OBJECT_ID_WALRUS, + ASSET_OBJECT_ID_DRAGONBOSS, + ASSET_OBJECT_ID_LAMPPOST, + ASSET_OBJECT_ID_SPACETREE, + ASSET_OBJECT_ID_MAGICRING, + ASSET_OBJECT_ID_HEADFORPOINT, + ASSET_OBJECT_ID_HOMING, + ASSET_OBJECT_ID_SPACECOLUMN2, + ASSET_OBJECT_ID_SPACECOLUMN3, + ASSET_OBJECT_ID_OCTOPUS, + ASSET_OBJECT_ID_PIGFACEANIMATOR, + ASSET_OBJECT_ID_PTERODACTYL, + ASSET_OBJECT_ID_SMOKECLOUD, + ASSET_OBJECT_ID_DOME16, + ASSET_OBJECT_ID_SWCAR, + ASSET_OBJECT_ID_AMULETPIECE1, + ASSET_OBJECT_ID_AMULETPIECE2, + ASSET_OBJECT_ID_AMULETPIECE3, + ASSET_OBJECT_ID_AMULETPIECE4, + ASSET_OBJECT_ID_STOPWATCHSELECT, + ASSET_OBJECT_ID_TICKTOCKHOVER, + ASSET_OBJECT_ID_TICKTOCKPLANE, + ASSET_OBJECT_ID_SWAMULET1, + ASSET_OBJECT_ID_SWAMULET2, + ASSET_OBJECT_ID_SWAMULET3, + ASSET_OBJECT_ID_SWAMULET4, + ASSET_OBJECT_ID_ANIMKEY, + ASSET_OBJECT_ID_TELEPORT, + ASSET_OBJECT_ID_DIDDYSELECT, + ASSET_OBJECT_ID_ROCKETSIGNPOST, + ASSET_OBJECT_ID_DIDDYHOVER, + ASSET_OBJECT_ID_LIGHTHOUSE1, + ASSET_OBJECT_ID_DIDDYCAR, + ASSET_OBJECT_ID_ANIMGENIE2, + ASSET_OBJECT_ID_DIDDYPLANE, + ASSET_OBJECT_ID_BANJODANCER, + ASSET_OBJECT_ID_SPACECOLUMN1, + ASSET_OBJECT_ID_MISSILEGLOW, + ASSET_OBJECT_ID_TERRYBOSS, + ASSET_OBJECT_ID_HOMINGGLOW, + ASSET_OBJECT_ID_TICKTOCKDANCER, + ASSET_OBJECT_ID_CONKADANCER, + ASSET_OBJECT_ID_GOLDCOIN, + ASSET_OBJECT_ID_TTDOOR, + ASSET_OBJECT_ID_MIDIFADEPOINT, + ASSET_OBJECT_ID_WIZPIGSHIP, + ASSET_OBJECT_ID_TRICKYANIM, + ASSET_OBJECT_ID_DOOROPENER, + ASSET_OBJECT_ID_MINISHIP, + ASSET_OBJECT_ID_OCTOBUBBLE, + ASSET_OBJECT_ID_DOME17, + ASSET_OBJECT_ID_DRAGONANIM, + ASSET_OBJECT_ID_ANIMOCTO, + ASSET_OBJECT_ID_PIGBOSS2, + ASSET_OBJECT_ID_WIZPIG, + ASSET_OBJECT_ID_WALRUS_ANIM, + ASSET_OBJECT_ID_PIGLOG, + ASSET_OBJECT_ID_WIZPIGROCKET, + ASSET_OBJECT_ID_KEITHPIGDOOR, + ASSET_OBJECT_ID_LIGHTNING, + ASSET_OBJECT_ID_MAGNETFX, + ASSET_OBJECT_ID_PIGROCKETEER, + ASSET_OBJECT_ID_PARTICLES2, + ASSET_OBJECT_ID_PIGBOULDER, + ASSET_OBJECT_ID_PIGBOULDER2, + ASSET_OBJECT_ID_PIGBOULDER3, + ASSET_OBJECT_ID_PIGBOULDER4, + ASSET_OBJECT_ID_PIGBOULDER5, + ASSET_OBJECT_ID_BIGPLANET, + ASSET_OBJECT_ID_ROCKETBIT1, + ASSET_OBJECT_ID_ROCKETBIT2, + ASSET_OBJECT_ID_LEVELNAME, + ASSET_OBJECT_ID_TRICKYANIM2, + ASSET_OBJECT_ID_TRICKYANIM3, + ASSET_OBJECT_ID_GENIEHEAD, + ASSET_OBJECT_ID_OCTOBOMB, + ASSET_OBJECT_ID_MIDICHSET, + ASSET_OBJECT_ID_ANIMGENIE3, + NULL_OBJECT_301_ID, + ASSET_OBJECT_ID_LIGHTHOUSE2, + ASSET_OBJECT_ID_CHICKENCHARACTE, + ASSET_OBJECT_ID_INFOPOINT +} AssetLevelObjectTranslationTableEnum; + /********** ASSET_AUDIO **********/ typedef enum AssetAudioEnum { diff --git a/tools/dkr_assets_tool_src/prebuild/makeIncludes/assetEnums.cpp b/tools/dkr_assets_tool_src/prebuild/makeIncludes/assetEnums.cpp index 1515d8bd..c23b9e46 100644 --- a/tools/dkr_assets_tool_src/prebuild/makeIncludes/assetEnums.cpp +++ b/tools/dkr_assets_tool_src/prebuild/makeIncludes/assetEnums.cpp @@ -71,8 +71,8 @@ void AssetEnums::_write_main_asset_enum(std::vector &mainOrder) { } void AssetEnums::_write_single_asset_section_enums(const std::string §ionId, JsonFile *sectionJson) { - if(sectionId != "ASSET_FONTS") { - return; // This function is just for the fonts. + if((sectionId != "ASSET_FONTS") && (sectionId != "ASSET_LEVEL_OBJECT_TRANSLATION_TABLE")) { + return; } _cHeader.write_newline(); _cHeader.write_header_comment(sectionId.c_str()); @@ -80,10 +80,10 @@ void AssetEnums::_write_single_asset_section_enums(const std::string §ionId, std::string sectionEnumName = StringHelper::upper_snake_case_to_pascal_case(sectionId) + "Enum"; WriteableCEnum sectionEnum(sectionEnumName); - fs::path fontSubfolder = sectionJson->get_path("/folder"); - fs::path fontJsonPath = _settings.pathToAssets; - if(!fontSubfolder.empty()) { - fontJsonPath /= fontSubfolder; + fs::path subFolder = sectionJson->get_path("/folder"); + fs::path jsonPath = _settings.pathToAssets; + if(!subFolder.empty()) { + jsonPath /= subFolder; } if(sectionJson->is_value_null("/filename")) { @@ -91,21 +91,40 @@ void AssetEnums::_write_single_asset_section_enums(const std::string §ionId, return; } - fontJsonPath /= sectionJson->get_string("/filename"); - JsonFile *fontsJson; - DebugHelper::assert(JsonHelper::get().get_file(fontJsonPath, &fontsJson), + jsonPath /= sectionJson->get_string("/filename"); + JsonFile *assetJson; + DebugHelper::assert(JsonHelper::get().get_file(jsonPath, &assetJson), "(AssetEnums::_write_single_asset_section_enums) Could not load fonts json!"); - - std::vector fontIds; - fontsJson->get_array("/fonts-order", fontIds); - for(std::string &fontId : fontIds) { - sectionEnum.add_symbol(fontId); + + if(sectionId == "ASSET_FONTS") { + std::vector fontIds; + assetJson->get_array("/fonts-order", fontIds); + for(std::string &fontId : fontIds) { + sectionEnum.add_symbol(fontId); + } + } else if(sectionId == "ASSET_LEVEL_OBJECT_TRANSLATION_TABLE") { + size_t tableLen = assetJson->length_of_array("/table"); + for(size_t i = 0; i < tableLen; i++) { + std::string ptr = "/table/" + std::to_string(i); + if(assetJson->is_value_null(ptr)) { + sectionEnum.add_symbol("NULL_OBJECT_" + std::to_string(i) + "_ID"); + continue; + } + std::string objectId = assetJson->get_string(ptr); + + if(StringHelper::starts_with(objectId, "ASSET_OBJECT_")) { + objectId.insert(13, "ID_"); + } else { + objectId += "_ID"; + } + + sectionEnum.add_symbol(objectId); + } } _cHeader.write_raw_text(sectionEnum.to_string()); } - void AssetEnums::_write_asset_section_enums(const std::string §ionId, JsonFile *sectionJson) { std::string sectionEnumName = StringHelper::upper_snake_case_to_pascal_case(sectionId) + "Enum"; WriteableCEnum sectionEnum(sectionEnumName);