From 193063ae6d0dd89342e110a08210fa0b52a162d3 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 18 Apr 2024 20:50:11 -0400 Subject: [PATCH] Added enum for the level_object_translation_table --- include/asset_enums.h | 310 ++++++++++++++++++ .../prebuild/makeIncludes/assetEnums.cpp | 42 ++- 2 files changed, 337 insertions(+), 15 deletions(-) diff --git a/include/asset_enums.h b/include/asset_enums.h index 59247c01..5afed621 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_DOME_ID, + ASSET_OBJECT_KREMCAR_ID, + ASSET_OBJECT_BADGERCAR_ID, + ASSET_OBJECT_TORTCAR_ID, + ASSET_OBJECT_CONKACAR_ID, + ASSET_OBJECT_SMARTIETREE_ID, + ASSET_OBJECT_FRONTTYRE_ID, + ASSET_OBJECT_BACKTYRE_ID, + ASSET_OBJECT_HITTESTER_ID, + ASSET_OBJECT_WORLDGATE_ID, + ASSET_OBJECT_MIDIFADE_ID, + ASSET_OBJECT_PARKWARDEN_ID, + ASSET_OBJECT_WARDENSMOKE_ID, + ASSET_OBJECT_ANIMATOR_ID, + ASSET_OBJECT_BOMB_ID, + ASSET_OBJECT_FLOWERS_ID, + ASSET_OBJECT_SMOKE_ID, + ASSET_OBJECT_EXIT_ID, + ASSET_OBJECT_CAMERA_CONTROL_ID, + ASSET_OBJECT_WORLDKEY_ID, + ASSET_OBJECT_SETUPPOINT_ID, + ASSET_OBJECT_AUDIO_ID, + ASSET_OBJECT_AUDIOLINE_ID, + ASSET_OBJECT_DINOSAUR1_ID, + ASSET_OBJECT_CHECKPOINT_ID, + ASSET_OBJECT_LEVELDOOR_ID, + ASSET_OBJECT_FOGCHANGER_ID, + ASSET_OBJECT_AINODE_ID, + ASSET_OBJECT_WEAPONBALLOON_ID, + ASSET_OBJECT_MISSILE_ID, + ASSET_OBJECT_DOME1_ID, + ASSET_OBJECT_SNOWMEN_ID, + ASSET_OBJECT_DOME2_ID, + ASSET_OBJECT_SIGNS_ID, + ASSET_OBJECT_REEDS_ID, + ASSET_OBJECT_BEACHTREE_ID, + ASSET_OBJECT_AUDIOSEQLINE_ID, + ASSET_OBJECT_AUDIOSEQ_ID, + ASSET_OBJECT_STOPWATCHICON_ID, + ASSET_OBJECT_EFFECTBOX_ID, + ASSET_OBJECT_COINCREATOR_ID, + ASSET_OBJECT_TREASURESUCKER_ID, + ASSET_OBJECT_BRIDGE_ID, + ASSET_OBJECT_LAVASPURT_ID, + ASSET_OBJECT_BOMBEXPLOSION_ID, + ASSET_OBJECT_WBALLOONPOP_ID, + ASSET_OBJECT_BUBBLEWEAPON_ID, + ASSET_OBJECT_DOME5_ID, + ASSET_OBJECT_DINOISLE_ID, + ASSET_OBJECT_AUDIOREVERB_ID, + ASSET_OBJECT_POSARROW_ID, + ASSET_OBJECT_WINDSAIL_ID, + ASSET_OBJECT_COLLECTEGG_ID, + ASSET_OBJECT_SKYCONTROL_ID, + ASSET_OBJECT_STOPWATCHHAND_ID, + ASSET_OBJECT_KREMLINHOVER_ID, + ASSET_OBJECT_BADGERHOVER_ID, + ASSET_OBJECT_TORTHOVER_ID, + ASSET_OBJECT_CONKAHOVER_ID, + ASSET_OBJECT_DOME3_ID, + ASSET_OBJECT_GLOVE_ID, + ASSET_OBJECT_FLAMINGTORCH_ID, + ASSET_OBJECT_MIST_ID, + ASSET_OBJECT_DOME4_ID, + ASSET_OBJECT_TEXSCROLL_ID, + ASSET_OBJECT_FAN_ID, + ASSET_OBJECT_KREMPLANE_ID, + ASSET_OBJECT_BADGERPLANE_ID, + ASSET_OBJECT_TORTPLANE_ID, + ASSET_OBJECT_CONKA_ID, + ASSET_OBJECT_LOG_ID, + ASSET_OBJECT_MODECHANGE_ID, + ASSET_OBJECT_JETENGINE_ID, + ASSET_OBJECT_BLUEBERRYBUSH_ID, + ASSET_OBJECT_RUBBERSNOWTREE_ID, + ASSET_OBJECT_SKINNYSNOWTREE_ID, + ASSET_OBJECT_XMASTREE_ID, + ASSET_OBJECT_ALPINESNOWTREE_ID, + ASSET_OBJECT_RUBBERTREE_ID, + ASSET_OBJECT_BOULDER_ID, + ASSET_OBJECT_STOPWATCHMAN_ID, + ASSET_OBJECT_TIGERCAR_ID, + ASSET_OBJECT_TROPHYCAB_ID, + ASSET_OBJECT_COIN_ID, + ASSET_OBJECT_BANJOCAR_ID, + ASSET_OBJECT_CHICKENCAR_ID, + ASSET_OBJECT_MOUSECAR_ID, + ASSET_OBJECT_TIGERHOVER_ID, + ASSET_OBJECT_BANJOHOVER_ID, + ASSET_OBJECT_CHICKENHOVER_ID, + ASSET_OBJECT_MOUSEHOVER_ID, + ASSET_OBJECT_TIGPLANE_ID, + ASSET_OBJECT_BANJOPLANE_ID, + ASSET_OBJECT_CHICKENPLANE_ID, + ASSET_OBJECT_MOUSEPLANE_ID, + ASSET_OBJECT_EGGCREATOR_ID, + ASSET_OBJECT_CHARACTERFLAG_ID, + ASSET_OBJECT_FLYCOIN_ID, + ASSET_OBJECT_GOLDENBALLOON_ID, + ASSET_OBJECT_DOME6_ID, + ASSET_OBJECT_DOME10_ID, + ASSET_OBJECT_PALMTREETOP_ID, + ASSET_OBJECT_WHALE_ID, + ASSET_OBJECT_DINOSAUR2_ID, + ASSET_OBJECT_DINOSAUR3_ID, + ASSET_OBJECT_RGBALIGHT_ID, + ASSET_OBJECT_PALMPLANT_ID, + ASSET_OBJECT_SNOWBALL_ID, + ASSET_OBJECT_BUOY_ID, + ASSET_OBJECT_SILVERCOIN_ID, + ASSET_OBJECT_WEATHER_ID, + ASSET_OBJECT_AIRZIPPERS_ID, + ASSET_OBJECT_FIRTREE_ID, + ASSET_OBJECT_RAMPWHALE_ID, + ASSET_OBJECT_RAMPSWITCH_ID, + ASSET_OBJECT_SEAMONSTER_ID, + ASSET_OBJECT_BONUSGEM_ID, + ASSET_OBJECT_BONUS_ID, + ASSET_OBJECT_DOME7_ID, + ASSET_OBJECT_INTROCAM_ID, + ASSET_OBJECT_MAGICCARPET_ID, + ASSET_OBJECT_LENSFLARE_ID, + ASSET_OBJECT_LENSFLARESWITCH_ID, + ASSET_OBJECT_HAYSTACK_ID, + ASSET_OBJECT_PILLAR_ID, + ASSET_OBJECT_BOULDERANIM_ID, + ASSET_OBJECT_BOOST_ID, + ASSET_OBJECT_MONORAIL_ID, + ASSET_OBJECT_TROPHY_ID, + ASSET_OBJECT_GOLDTROPHY_ID, + ASSET_OBJECT_OILSLICK_ID, + ASSET_OBJECT_PIGHEADCOLOURS_ID, + ASSET_OBJECT_DOME11_ID, + ASSET_OBJECT_RARELOGO_ID, + ASSET_OBJECT_CHECKARROW_ID, + ASSET_OBJECT_BIGBOSSDOOR_ID, + ASSET_OBJECT_FIREBALLATTRACT_ID, + ASSET_OBJECT_FIREBALL_ID, + ASSET_OBJECT_SNOWBALLBOSS_ID, + ASSET_OBJECT_FROG_ID, + ASSET_OBJECT_TICKTROPHY_ID, + ASSET_OBJECT_SHIELD_ID, + ASSET_OBJECT_SELECTIONSHADOW_ID, + ASSET_OBJECT_BUBBLER_ID, + ASSET_OBJECT_PLANETYRE_ID, + ASSET_OBJECT_DOME8_ID, + ASSET_OBJECT_PALMTREETOPCHEA_ID, + ASSET_OBJECT_DOME9_ID, + ASSET_OBJECT_ANIMATION_ID, + ASSET_OBJECT_TIGERANIMPLANE_ID, + ASSET_OBJECT_BADGERANIMWALK_ID, + ASSET_OBJECT_ANIMCAMERA_ID, + ASSET_OBJECT_TIMBERDANCER_ID, + ASSET_OBJECT_PIPSYDANCER_ID, + ASSET_OBJECT_EMPTYHOVER_ID, + ASSET_OBJECT_ANIMDOME_ID, + ASSET_OBJECT_TIMBERANIMCAR_ID, + ASSET_OBJECT_NOENTRYDOOR_ID, + ASSET_OBJECT_N64LOGO_ID, + ASSET_OBJECT_WIZGHOSTS_ID, + ASSET_OBJECT_KREMSELECT_ID, + ASSET_OBJECT_BADGERSELECT_ID, + ASSET_OBJECT_TORTSELECT_ID, + ASSET_OBJECT_TIGERSELECT_ID, + ASSET_OBJECT_BANJOSELECT_ID, + ASSET_OBJECT_CHICKSELECT_ID, + ASSET_OBJECT_MOUSESELECT_ID, + ASSET_OBJECT_LEEFAN_ID, + ASSET_OBJECT_GBPARKWARDEN_ID, + ASSET_OBJECT_GOLDBALOONSPRIT_ID, + ASSET_OBJECT_LIGHTHOUSE_ID, + ASSET_OBJECT_SELECTIONHILL_ID, + ASSET_OBJECT_WIDESCREEN_ID, + ASSET_OBJECT_OVERRIDEPOS_ID, + ASSET_OBJECT_ANIMCAR_ID, + ASSET_OBJECT_TRIGGER_ID, + ASSET_OBJECT_BOLTGLOW_ID, + ASSET_OBJECT_POSTFORPARTY_ID, + ASSET_OBJECT_SPARKLYTHING_ID, + ASSET_OBJECT_ANIMDINOSAUR2_ID, + ASSET_OBJECT_TIMERANIMHOVER_ID, + ASSET_OBJECT_ANIMBADGERPLANE_ID, + ASSET_OBJECT_ANIMDINOSAUR1_ID, + ASSET_OBJECT_ANIMMOUSECAR_ID, + ASSET_OBJECT_ANIMTORT_ID, + ASSET_OBJECT_CHICKENANIMPLAN_ID, + ASSET_OBJECT_EMPTYHOVERANIM_ID, + ASSET_OBJECT_RANGETRIGGER_ID, + ASSET_OBJECT_KREMANIM_ID, + ASSET_OBJECT_MOUSEHOVERANIM_ID, + ASSET_OBJECT_TORTRUNNER_ID, + ASSET_OBJECT_ANIMBANJOPLANE_ID, + ASSET_OBJECT_CONKSELECT_ID, + ASSET_OBJECT_LASERGUN_ID, + ASSET_OBJECT_CONKAANIMCAR_ID, + ASSET_OBJECT_WAVEGENERATOR_ID, + ASSET_OBJECT_WAVEPOWER_ID, + ASSET_OBJECT_BUTTERFLY_ID, + ASSET_OBJECT_LASERBOLT_ID, + ASSET_OBJECT_FISH_ID, + ASSET_OBJECT_ANIMGENIE_ID, + ASSET_OBJECT_SPACESHIP1_ID, + ASSET_OBJECT_SPACESHIP2_ID, + ASSET_OBJECT_POLYGOLDBALOON_ID, + ASSET_OBJECT_GROUNDZIPPER_ID, + ASSET_OBJECT_ASTEROID_ID, + ASSET_OBJECT_PIRATESHIP_ID, + ASSET_OBJECT_BRIGHTSTAR_ID, + ASSET_OBJECT_WATERZIPPERS_ID, + ASSET_OBJECT_SPACESHIP3_ID, + ASSET_OBJECT_DOME12_ID, + ASSET_OBJECT_CHALDOOR_ID, + ASSET_OBJECT_STILLFROG_ID, + ASSET_OBJECT_PARKTROPHY_ID, + ASSET_OBJECT_BUTTERFLYBAIT_ID, + ASSET_OBJECT_BOSSDOOR_ID, + ASSET_OBJECT_PWSAFETELEPOINT_ID, + ASSET_OBJECT_TRICKYTOPS_ID, + ASSET_OBJECT_FLYINGCARPET_ID, + ASSET_OBJECT_DOME14_ID, + ASSET_OBJECT_PIGBOSS_ID, + ASSET_OBJECT_DOME13_ID, + ASSET_OBJECT_DOME15_ID, + ASSET_OBJECT_WALRUS_ID, + ASSET_OBJECT_DRAGONBOSS_ID, + ASSET_OBJECT_LAMPPOST_ID, + ASSET_OBJECT_SPACETREE_ID, + ASSET_OBJECT_MAGICRING_ID, + ASSET_OBJECT_HEADFORPOINT_ID, + ASSET_OBJECT_HOMING_ID, + ASSET_OBJECT_SPACECOLUMN2_ID, + ASSET_OBJECT_SPACECOLUMN3_ID, + ASSET_OBJECT_OCTOPUS_ID, + ASSET_OBJECT_PIGFACEANIMATOR_ID, + ASSET_OBJECT_PTERODACTYL_ID, + ASSET_OBJECT_SMOKECLOUD_ID, + ASSET_OBJECT_DOME16_ID, + ASSET_OBJECT_SWCAR_ID, + ASSET_OBJECT_AMULETPIECE1_ID, + ASSET_OBJECT_AMULETPIECE2_ID, + ASSET_OBJECT_AMULETPIECE3_ID, + ASSET_OBJECT_AMULETPIECE4_ID, + ASSET_OBJECT_STOPWATCHSELECT_ID, + ASSET_OBJECT_TICKTOCKHOVER_ID, + ASSET_OBJECT_TICKTOCKPLANE_ID, + ASSET_OBJECT_SWAMULET1_ID, + ASSET_OBJECT_SWAMULET2_ID, + ASSET_OBJECT_SWAMULET3_ID, + ASSET_OBJECT_SWAMULET4_ID, + ASSET_OBJECT_ANIMKEY_ID, + ASSET_OBJECT_TELEPORT_ID, + ASSET_OBJECT_DIDDYSELECT_ID, + ASSET_OBJECT_ROCKETSIGNPOST_ID, + ASSET_OBJECT_DIDDYHOVER_ID, + ASSET_OBJECT_LIGHTHOUSE1_ID, + ASSET_OBJECT_DIDDYCAR_ID, + ASSET_OBJECT_ANIMGENIE2_ID, + ASSET_OBJECT_DIDDYPLANE_ID, + ASSET_OBJECT_BANJODANCER_ID, + ASSET_OBJECT_SPACECOLUMN1_ID, + ASSET_OBJECT_MISSILEGLOW_ID, + ASSET_OBJECT_TERRYBOSS_ID, + ASSET_OBJECT_HOMINGGLOW_ID, + ASSET_OBJECT_TICKTOCKDANCER_ID, + ASSET_OBJECT_CONKADANCER_ID, + ASSET_OBJECT_GOLDCOIN_ID, + ASSET_OBJECT_TTDOOR_ID, + ASSET_OBJECT_MIDIFADEPOINT_ID, + ASSET_OBJECT_WIZPIGSHIP_ID, + ASSET_OBJECT_TRICKYANIM_ID, + ASSET_OBJECT_DOOROPENER_ID, + ASSET_OBJECT_MINISHIP_ID, + ASSET_OBJECT_OCTOBUBBLE_ID, + ASSET_OBJECT_DOME17_ID, + ASSET_OBJECT_DRAGONANIM_ID, + ASSET_OBJECT_ANIMOCTO_ID, + ASSET_OBJECT_PIGBOSS2_ID, + ASSET_OBJECT_WIZPIG_ID, + ASSET_OBJECT_WALRUS_ANIM_ID, + ASSET_OBJECT_PIGLOG_ID, + ASSET_OBJECT_WIZPIGROCKET_ID, + ASSET_OBJECT_KEITHPIGDOOR_ID, + ASSET_OBJECT_LIGHTNING_ID, + ASSET_OBJECT_MAGNETFX_ID, + ASSET_OBJECT_PIGROCKETEER_ID, + ASSET_OBJECT_PARTICLES2_ID, + ASSET_OBJECT_PIGBOULDER_ID, + ASSET_OBJECT_PIGBOULDER2_ID, + ASSET_OBJECT_PIGBOULDER3_ID, + ASSET_OBJECT_PIGBOULDER4_ID, + ASSET_OBJECT_PIGBOULDER5_ID, + ASSET_OBJECT_BIGPLANET_ID, + ASSET_OBJECT_ROCKETBIT1_ID, + ASSET_OBJECT_ROCKETBIT2_ID, + ASSET_OBJECT_LEVELNAME_ID, + ASSET_OBJECT_TRICKYANIM2_ID, + ASSET_OBJECT_TRICKYANIM3_ID, + ASSET_OBJECT_GENIEHEAD_ID, + ASSET_OBJECT_OCTOBOMB_ID, + ASSET_OBJECT_MIDICHSET_ID, + ASSET_OBJECT_ANIMGENIE3_ID, + NULL_OBJECT_301_ID, + ASSET_OBJECT_LIGHTHOUSE2_ID, + ASSET_OBJECT_CHICKENCHARACTE_ID, + ASSET_OBJECT_INFOPOINT_ID +} 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..954d5a15 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,33 @@ 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); + sectionEnum.add_symbol(objectId + "_ID"); + } } _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);