diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index e05882c6ca8..00d7e34c41e 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -270,6 +270,7 @@ var/datum/subsystem/garbage_collector/SSgarbage usr.client.running_find_references = type testing("Beginning search for references to a [type].") + find_references_in_globals() for(var/datum/thing in world) if(usr && usr.client && !usr.client.running_find_references) return for(var/varname in thing.vars) @@ -326,4 +327,735 @@ var/datum/subsystem/garbage_collector/SSgarbage dat += "[path] - [tmplist[path]] times
" usr << browse(dat, "window=qdeletedlog") + +#define SearchVar(X) DoSearchVar(X, #X) + +/datum/proc/DoSearchVar(X, Xname) + if(islist(X)) + if(src in X) + testing("Found [src.type] \ref[src] in global list [Xname].") + else if(istype(X, /datum)) + var/datum/D = X + for(var/V in D.vars) + for(var/varname in D.vars) + var/variable = D.vars[varname] + if(variable == src) + testing("Found [src.type] \ref[src] in [D.type]'s [varname] var. Global: [Xname]") + else if(islist(variable) && src in variable) + testing("Found [src.type] \ref[src] in [D.type]'s [varname] list var. Global: [Xname]") + CHECK_TICK + +//if find_references isn't working for some datum +//update this list using tools/DMTreeToGlobalsList +/datum/proc/find_references_in_globals() + SearchVar(last_irc_status) + SearchVar(inerror) + SearchVar(failed_db_connections) + SearchVar(nextmap) + SearchVar(mapchanging) + SearchVar(rebootingpendingmapchange) + SearchVar(clockwork_construction_value) + SearchVar(clockwork_caches) + SearchVar(clockwork_daemons) + SearchVar(clockwork_generals_invoked) + SearchVar(all_clockwork_objects) + SearchVar(all_clockwork_mobs) + SearchVar(clockwork_component_cache) + SearchVar(ratvar_awakens) + SearchVar(clockwork_gateway_activated) + SearchVar(all_scripture) + SearchVar(pointed_types) + SearchVar(bloody_footprints_cache) + SearchVar(ghost_accs_options) + SearchVar(ghost_others_options) + SearchVar(special_roles) + SearchVar(string_cache) + SearchVar(string_filename_current_key) + SearchVar(cmp_field) + SearchVar(friendly_animal_types) + SearchVar(humanoid_icon_cache) + SearchVar(freeze_item_icons) + SearchVar(E) + SearchVar(Sqrt2) + SearchVar(sqrtTable) + SearchVar(gaussian_next) + SearchVar(skin_tones) + SearchVar(species_list) + SearchVar(roundstart_species) + SearchVar(church_name) + SearchVar(command_name) + SearchVar(religion_name) + SearchVar(syndicate_name) + SearchVar(syndicate_code_phrase) + SearchVar(syndicate_code_response) + SearchVar(zero_character_only) + SearchVar(hex_characters) + SearchVar(alphabet) + SearchVar(binary) + SearchVar(can_embed_types) + SearchVar(WALLITEMS) + SearchVar(WALLITEMS_EXTERNAL) + SearchVar(WALLITEMS_INVERSE) + SearchVar(sortInstance) + SearchVar(config) + SearchVar(protected_config) + SearchVar(host) + SearchVar(join_motd) + SearchVar(station_name) + SearchVar(game_version) + SearchVar(changelog_hash) + SearchVar(ooc_allowed) + SearchVar(dooc_allowed) + SearchVar(abandon_allowed) + SearchVar(enter_allowed) + SearchVar(guests_allowed) + SearchVar(shuttle_frozen) + SearchVar(shuttle_left) + SearchVar(tinted_weldhelh) + SearchVar(Debug) + SearchVar(Debug2) + SearchVar(comms_key) + SearchVar(comms_allowed) + SearchVar(cross_address) + SearchVar(cross_allowed) + SearchVar(medal_hub) + SearchVar(medal_pass) + SearchVar(medals_enabled) + SearchVar(MAX_EX_DEVESTATION_RANGE) + SearchVar(MAX_EX_HEAVY_RANGE) + SearchVar(MAX_EX_LIGHT_RANGE) + SearchVar(MAX_EX_FLASH_RANGE) + SearchVar(MAX_EX_FLAME_RANGE) + SearchVar(DYN_EX_SCALE) + SearchVar(sqladdress) + SearchVar(sqlport) + SearchVar(sqlfdbkdb) + SearchVar(sqlfdbklogin) + SearchVar(sqlfdbkpass) + SearchVar(sqlfdbktableprefix) + SearchVar(dbcon) + SearchVar(master_mode) + SearchVar(secret_force_mode) + SearchVar(wavesecret) + SearchVar(start_state) + SearchVar(NEARSIGHTBLOCK) + SearchVar(EPILEPSYBLOCK) + SearchVar(COUGHBLOCK) + SearchVar(TOURETTESBLOCK) + SearchVar(NERVOUSBLOCK) + SearchVar(BLINDBLOCK) + SearchVar(DEAFBLOCK) + SearchVar(HULKBLOCK) + SearchVar(TELEBLOCK) + SearchVar(FIREBLOCK) + SearchVar(XRAYBLOCK) + SearchVar(CLUMSYBLOCK) + SearchVar(STRANGEBLOCK) + SearchVar(RACEBLOCK) + SearchVar(bad_se_blocks) + SearchVar(good_se_blocks) + SearchVar(op_se_blocks) + SearchVar(NULLED_SE) + SearchVar(NULLED_UI) + SearchVar(global_mutations) + SearchVar(bad_mutations) + SearchVar(good_mutations) + SearchVar(not_good_mutations) + SearchVar(diary) + SearchVar(diaryofmeanpeople) + SearchVar(href_logfile) + SearchVar(bombers) + SearchVar(admin_log) + SearchVar(lastsignalers) + SearchVar(lawchanges) + SearchVar(combatlog) + SearchVar(IClog) + SearchVar(OOClog) + SearchVar(adminlog) + SearchVar(active_turfs_startlist) + SearchVar(admin_notice) + SearchVar(timezoneOffset) + SearchVar(fileaccess_timer) + SearchVar(TAB) + SearchVar(map_ready) + SearchVar(data_core) + SearchVar(CELLRATE) + SearchVar(CHARGELEVEL) + SearchVar(powernets) + SearchVar(map_name) + SearchVar(hair_styles_list) + SearchVar(hair_styles_male_list) + SearchVar(hair_styles_female_list) + SearchVar(facial_hair_styles_list) + SearchVar(facial_hair_styles_male_list) + SearchVar(facial_hair_styles_female_list) + SearchVar(underwear_list) + SearchVar(underwear_m) + SearchVar(underwear_f) + SearchVar(undershirt_list) + SearchVar(undershirt_m) + SearchVar(undershirt_f) + SearchVar(socks_list) + SearchVar(body_markings_list) + SearchVar(tails_list_lizard) + SearchVar(animated_tails_list_lizard) + SearchVar(snouts_list) + SearchVar(horns_list) + SearchVar(frills_list) + SearchVar(spines_list) + SearchVar(legs_list) + SearchVar(animated_spines_list) + SearchVar(tails_list_human) + SearchVar(animated_tails_list_human) + SearchVar(ears_list) + SearchVar(wings_list) + SearchVar(wings_open_list) + SearchVar(r_wings_list) + SearchVar(ghost_forms_with_directions_list) + SearchVar(ghost_forms_with_accessories_list) + SearchVar(security_depts_prefs) + SearchVar(backbaglist) + SearchVar(uplink_spawn_loc_list) + SearchVar(female_clothing_icons) + SearchVar(hit_appends) + SearchVar(scarySounds) + SearchVar(TAGGERLOCATIONS) + SearchVar(guitar_notes) + SearchVar(station_prefixes) + SearchVar(station_names) + SearchVar(station_suffixes) + SearchVar(greek_letters) + SearchVar(phonetic_alphabet) + SearchVar(numbers_as_words) + SearchVar(station_numerals) + SearchVar(cardinal) + SearchVar(alldirs) + SearchVar(diagonals) + SearchVar(accessable_z_levels) + SearchVar(global_map) + SearchVar(landmarks_list) + SearchVar(start_landmarks_list) + SearchVar(department_security_spawns) + SearchVar(generic_event_spawns) + SearchVar(monkeystart) + SearchVar(wizardstart) + SearchVar(newplayer_start) + SearchVar(latejoin) + SearchVar(prisonwarp) + SearchVar(holdingfacility) + SearchVar(xeno_spawn) + SearchVar(tdome1) + SearchVar(tdome2) + SearchVar(tdomeobserve) + SearchVar(tdomeadmin) + SearchVar(prisonsecuritywarp) + SearchVar(prisonwarped) + SearchVar(blobstart) + SearchVar(secequipment) + SearchVar(deathsquadspawn) + SearchVar(emergencyresponseteamspawn) + SearchVar(ruin_landmarks) + SearchVar(awaydestinations) + SearchVar(sortedAreas) + SearchVar(map_templates) + SearchVar(ruins_templates) + SearchVar(space_ruins_templates) + SearchVar(lava_ruins_templates) + SearchVar(shuttle_templates) + SearchVar(shelter_templates) + SearchVar(transit_markers) + SearchVar(clients) + SearchVar(admins) + SearchVar(deadmins) + SearchVar(directory) + SearchVar(stealthminID) + SearchVar(current_watchlist) + SearchVar(player_list) + SearchVar(mob_list) + SearchVar(living_mob_list) + SearchVar(dead_mob_list) + SearchVar(joined_player_list) + SearchVar(silicon_mobs) + SearchVar(pai_list) + SearchVar(ai_names) + SearchVar(wizard_first) + SearchVar(wizard_second) + SearchVar(ninja_titles) + SearchVar(ninja_names) + SearchVar(commando_names) + SearchVar(first_names_male) + SearchVar(first_names_female) + SearchVar(last_names) + SearchVar(lizard_names_male) + SearchVar(lizard_names_female) + SearchVar(clown_names) + SearchVar(mime_names) + SearchVar(carp_names) + SearchVar(golem_names) + SearchVar(plasmaman_names) + SearchVar(verbs) + SearchVar(adjectives) + SearchVar(cable_list) + SearchVar(portals) + SearchVar(airlocks) + SearchVar(mechas_list) + SearchVar(shuttle_caller_list) + SearchVar(machines) + SearchVar(syndicate_shuttle_boards) + SearchVar(navbeacons) + SearchVar(teleportbeacons) + SearchVar(deliverybeacons) + SearchVar(deliverybeacontags) + SearchVar(nuke_list) + SearchVar(alarmdisplay) + SearchVar(chemical_reactions_list) + SearchVar(chemical_reagents_list) + SearchVar(materials_list) + SearchVar(tech_list) + SearchVar(surgeries_list) + SearchVar(crafting_recipes) + SearchVar(rcd_list) + SearchVar(apcs_list) + SearchVar(tracked_implants) + SearchVar(tracked_chem_implants) + SearchVar(poi_list) + SearchVar(pinpointer_list) + SearchVar(zombie_infection_list) + SearchVar(meteor_list) + SearchVar(poll_ignore) + SearchVar(typecache_mob) + SearchVar(tk_maxrange) + SearchVar(Failsafe) + SearchVar(Master) + SearchVar(MC_restart_clear) + SearchVar(MC_restart_timeout) + SearchVar(MC_restart_count) + SearchVar(CURRENT_TICKLIMIT) + SearchVar(SSacid) + SearchVar(SSair) + SearchVar(SSasset) + SearchVar(SSaugury) + SearchVar(SScommunications) + SearchVar(SSdisease) + SearchVar(SSevent) + SearchVar(SSfire_burning) + SearchVar(SSgarbage) + SearchVar(SSicon_smooth) + SearchVar(SSipintel) + SearchVar(SSjob) + SearchVar(SSlighting) + SearchVar(SSmachine) + SearchVar(SSmapping) + SearchVar(SSminimap) + SearchVar(SSmob) + SearchVar(SSnpc) + SearchVar(SSorbit) + SearchVar(SSpai) + SearchVar(pai_card_list) + SearchVar(SSparallax) + SearchVar(SSpersistence) + SearchVar(SSping) + SearchVar(SSradio) + SearchVar(SSreligion) + SearchVar(SSserver) + SearchVar(SSshuttle) + SearchVar(SSspacedrift) + SearchVar(SSsqueak) + SearchVar(SSstickyban) + SearchVar(SSsun) + SearchVar(SStgui) + SearchVar(SSthrowing) + SearchVar(round_start_time) + SearchVar(ticker) + SearchVar(SStimer) + SearchVar(SSvote) + SearchVar(SSweather) + SearchVar(SSfastprocess) + SearchVar(SSflightpacks) + SearchVar(SSobj) + SearchVar(SSprocessing) + SearchVar(record_id_num) + SearchVar(emote_list) + SearchVar(huds) + SearchVar(diseases) + SearchVar(archive_diseases) + SearchVar(advance_cures) + SearchVar(list_symptoms) + SearchVar(dictionary_symptoms) + SearchVar(SYMPTOM_ACTIVATION_PROB) + SearchVar(revdata) + SearchVar(all_status_effects) + SearchVar(wire_colors) + SearchVar(wire_color_directory) + SearchVar(wire_name_directory) + SearchVar(possiblethemes) + SearchVar(max_secret_rooms) + SearchVar(blood_splatter_icons) + SearchVar(all_radios) + SearchVar(radiochannels) + SearchVar(radiochannelsreverse) + SearchVar(SYND_FREQ) + SearchVar(SUPP_FREQ) + SearchVar(SERV_FREQ) + SearchVar(SCI_FREQ) + SearchVar(COMM_FREQ) + SearchVar(MED_FREQ) + SearchVar(ENG_FREQ) + SearchVar(SEC_FREQ) + SearchVar(CENTCOM_FREQ) + SearchVar(AIPRIV_FREQ) + SearchVar(RADIO_TO_AIRALARM) + SearchVar(RADIO_FROM_AIRALARM) + SearchVar(RADIO_CHAT) + SearchVar(RADIO_ATMOSIA) + SearchVar(RADIO_NAVBEACONS) + SearchVar(RADIO_AIRLOCK) + SearchVar(RADIO_MAGNETS) + SearchVar(pointers) + SearchVar(freqtospan) + SearchVar(teleportlocs) + SearchVar(the_station_areas) + SearchVar(possible_items) + SearchVar(possible_items_special) + SearchVar(blobs) + SearchVar(blob_cores) + SearchVar(overminds) + SearchVar(blob_nodes) + SearchVar(blobs_legit) + SearchVar(possible_changeling_IDs) + SearchVar(slots) + SearchVar(slot2slot) + SearchVar(slot2type) + SearchVar(hivemind_bank) + SearchVar(blacklisted_pylon_turfs) + SearchVar(non_revealed_runes) + SearchVar(teleport_runes) + SearchVar(wall_runes) + SearchVar(whiteness) + SearchVar(allDevils) + SearchVar(lawlorify) + SearchVar(gang_name_pool) + SearchVar(gang_colors_pool) + SearchVar(borers) + SearchVar(total_borer_hosts_needed) + SearchVar(bomb_set) + SearchVar(hsboxspawn) + SearchVar(multiverse) + SearchVar(announcement_systems) + SearchVar(doppler_arrays) + SearchVar(HOLOPAD_MODE) + SearchVar(holopads) + SearchVar(news_network) + SearchVar(allCasters) + SearchVar(SAFETY_COOLDOWN) + SearchVar(req_console_assistance) + SearchVar(req_console_supplies) + SearchVar(req_console_information) + SearchVar(allConsoles) + SearchVar(time_last_changed_position) + SearchVar(CALL_SHUTTLE_REASON_LENGTH) + SearchVar(crewmonitor) + SearchVar(possible_uplinker_IDs) + SearchVar(airlock_overlays) + SearchVar(pipeID2State) + SearchVar(telecomms_list) + SearchVar(recentmessages) + SearchVar(message_delay) + SearchVar(year) + SearchVar(year_integer) + SearchVar(explosionid) + SearchVar(fire_overlay) + SearchVar(acid_overlay) + SearchVar(BUMP_TELEPORTERS) + SearchVar(contrabandposters) + SearchVar(legitposters) + SearchVar(blacklisted_glowshroom_turfs) + SearchVar(PDAs) + SearchVar(rod_recipes) + SearchVar(glass_recipes) + SearchVar(reinforced_glass_recipes) + SearchVar(human_recipes) + SearchVar(corgi_recipes) + SearchVar(monkey_recipes) + SearchVar(xeno_recipes) + SearchVar(sinew_recipes) + SearchVar(sandstone_recipes) + SearchVar(sandbag_recipes) + SearchVar(diamond_recipes) + SearchVar(uranium_recipes) + SearchVar(plasma_recipes) + SearchVar(gold_recipes) + SearchVar(silver_recipes) + SearchVar(clown_recipes) + SearchVar(titanium_recipes) + SearchVar(plastitanium_recipes) + SearchVar(snow_recipes) + SearchVar(abductor_recipes) + SearchVar(metal_recipes) + SearchVar(plasteel_recipes) + SearchVar(wood_recipes) + SearchVar(cloth_recipes) + SearchVar(cardboard_recipes) + SearchVar(runed_metal_recipes) + SearchVar(brass_recipes) + SearchVar(disposalpipeID2State) + SearchVar(RPD_recipes) + SearchVar(highlander_claymores) + SearchVar(biblenames) + SearchVar(biblestates) + SearchVar(bibleitemstates) + SearchVar(globalBlankCanvases) + SearchVar(crematoriums) + SearchVar(icons_to_ignore_at_floor_init) + SearchVar(js_byjax) + SearchVar(js_dropdowns) + SearchVar(BSACooldown) + SearchVar(admin_ranks) + SearchVar(admin_verbs_default) + SearchVar(admin_verbs_admin) + SearchVar(admin_verbs_ban) + SearchVar(admin_verbs_sounds) + SearchVar(admin_verbs_fun) + SearchVar(admin_verbs_spawn) + SearchVar(admin_verbs_server) + SearchVar(admin_verbs_debug) + SearchVar(admin_verbs_possess) + SearchVar(admin_verbs_permissions) + SearchVar(admin_verbs_rejuv) + SearchVar(admin_verbs_hideable) + SearchVar(create_object_html) + SearchVar(create_object_forms) + SearchVar(admin_datums) + SearchVar(CMinutes) + SearchVar(Banlist) + SearchVar(whitelist) + SearchVar(TYPES_SHORTCUTS) + SearchVar(intercom_range_display_status) + SearchVar(admin_verbs_debug_mapping) + SearchVar(say_disabled) + SearchVar(VVlocked) + SearchVar(VVicon_edit_lock) + SearchVar(VVckey_edit) + SearchVar(VVpixelmovement) + SearchVar(highlander) + SearchVar(admin_sound) + SearchVar(custom_outfits) + SearchVar(meta_gas_info) + SearchVar(gaslist_cache) + SearchVar(hardcoded_gases) + SearchVar(pipenetwarnings) + SearchVar(the_gateway) + SearchVar(potentialRandomZlevels) + SearchVar(maploader) + SearchVar(use_preloader) + SearchVar(_preloader) + SearchVar(swapmaps_iconcache) + SearchVar(SWAPMAPS_SAV) + SearchVar(SWAPMAPS_TEXT) + SearchVar(swapmaps_mode) + SearchVar(swapmaps_compiled_maxx) + SearchVar(swapmaps_compiled_maxy) + SearchVar(swapmaps_compiled_maxz) + SearchVar(swapmaps_initialized) + SearchVar(swapmaps_loaded) + SearchVar(swapmaps_byname) + SearchVar(sc_safecode1) + SearchVar(sc_safecode2) + SearchVar(sc_safecode3) + SearchVar(sc_safecode4) + SearchVar(sc_safecode5) + SearchVar(exports_list) + SearchVar(clientmessages) + SearchVar(preferences_datums) + SearchVar(ghost_forms) + SearchVar(ghost_orbits) + SearchVar(normal_ooc_colour) + SearchVar(damaged_clothes_icons) + SearchVar(emojis) + SearchVar(non_fakeattack_weapons) + SearchVar(cards_against_space) + SearchVar(chem_t1_reagents) + SearchVar(chem_t2_reagents) + SearchVar(chem_t3_reagents) + SearchVar(chem_t4_reagents) + SearchVar(ENGSEC) + SearchVar(CAPTAIN) + SearchVar(HOS) + SearchVar(WARDEN) + SearchVar(DETECTIVE) + SearchVar(OFFICER) + SearchVar(CHIEF) + SearchVar(ENGINEER) + SearchVar(ATMOSTECH) + SearchVar(ROBOTICIST) + SearchVar(AI) + SearchVar(CYBORG) + SearchVar(MEDSCI) + SearchVar(RD) + SearchVar(SCIENTIST) + SearchVar(CHEMIST) + SearchVar(CMO) + SearchVar(DOCTOR) + SearchVar(GENETICIST) + SearchVar(VIROLOGIST) + SearchVar(CIVILIAN) + SearchVar(HOP) + SearchVar(BARTENDER) + SearchVar(BOTANIST) + SearchVar(COOK) + SearchVar(JANITOR) + SearchVar(LIBRARIAN) + SearchVar(QUARTERMASTER) + SearchVar(CARGOTECH) + SearchVar(MINER) + SearchVar(LAWYER) + SearchVar(CHAPLAIN) + SearchVar(CLOWN) + SearchVar(MIME) + SearchVar(ASSISTANT) + SearchVar(assistant_occupations) + SearchVar(command_positions) + SearchVar(engineering_positions) + SearchVar(medical_positions) + SearchVar(science_positions) + SearchVar(supply_positions) + SearchVar(civilian_positions) + SearchVar(security_positions) + SearchVar(nonhuman_positions) + SearchVar(cap_expand) + SearchVar(cmo_expand) + SearchVar(hos_expand) + SearchVar(hop_expand) + SearchVar(rd_expand) + SearchVar(ce_expand) + SearchVar(qm_expand) + SearchVar(sec_expand) + SearchVar(engi_expand) + SearchVar(atmos_expand) + SearchVar(doc_expand) + SearchVar(mine_expand) + SearchVar(chef_expand) + SearchVar(borg_expand) + SearchVar(available_depts) + SearchVar(cachedbooks) + SearchVar(total_extraction_beacons) + SearchVar(next_mob_id) + SearchVar(firstname) + SearchVar(ghost_darkness_images) + SearchVar(ghost_images_full) + SearchVar(ghost_images_default) + SearchVar(ghost_images_simple) + SearchVar(department_radio_keys) + SearchVar(crit_allowed_modes) + SearchVar(ventcrawl_machinery) + SearchVar(posibrain_notif_cooldown) + SearchVar(NO_SLIP_WHEN_WALKING) + SearchVar(SLIDE) + SearchVar(GALOSHES_DONT_HELP) + SearchVar(SLIDE_ICE) + SearchVar(limb_icon_cache) + SearchVar(ALIEN_AFK_BRACKET) + SearchVar(MIN_IMPREGNATION_TIME) + SearchVar(MAX_IMPREGNATION_TIME) + SearchVar(MIN_ACTIVE_TIME) + SearchVar(MAX_ACTIVE_TIME) + SearchVar(default_martial_art) + SearchVar(plasmaman_on_fire) + SearchVar(ai_list) + SearchVar(announcing_vox) + SearchVar(VOX_CHANNEL) + SearchVar(VOX_DELAY) + SearchVar(vox_sounds) + SearchVar(CHUNK_SIZE) + SearchVar(cameranet) + SearchVar(mulebot_count) + SearchVar(MAX_CHICKENS) + SearchVar(chicken_count) + SearchVar(parasites) + SearchVar(protected_objects) + SearchVar(AISwarmers) + SearchVar(AISwarmersByType) + SearchVar(AISwarmerCapsByType) + SearchVar(slime_colours) + SearchVar(global_modular_computers) + SearchVar(file_uid) + SearchVar(nttransfer_uid) + SearchVar(ntnet_card_uid) + SearchVar(ntnet_global) + SearchVar(ntnrc_uid) + SearchVar(employmentCabinets) + SearchVar(cable_coil_recipes) + SearchVar(gravity_generators) + SearchVar(POWER_IDLE) + SearchVar(POWER_UP) + SearchVar(POWER_DOWN) + SearchVar(GRAV_NEEDS_SCREWDRIVER) + SearchVar(GRAV_NEEDS_WELDING) + SearchVar(GRAV_NEEDS_PLASTEEL) + SearchVar(GRAV_NEEDS_WRENCH) + SearchVar(rad_collectors) + SearchVar(blacklisted_tesla_types) + SearchVar(TOUCH) + SearchVar(INGEST) + SearchVar(VAPOR) + SearchVar(PATCH) + SearchVar(INJECT) + SearchVar(chemical_mob_spawn_meancritters) + SearchVar(chemical_mob_spawn_nicecritters) + SearchVar(message_servers) + SearchVar(blackbox) + SearchVar(keycard_events) + SearchVar(blacklisted_cargo_types) + SearchVar(z_levels_list) + SearchVar(spells) + SearchVar(non_simple_animals) + SearchVar(FrozenAccounts) + SearchVar(stockExchange) + SearchVar(stun_words) + SearchVar(weaken_words) + SearchVar(sleep_words) + SearchVar(vomit_words) + SearchVar(silence_words) + SearchVar(hallucinate_words) + SearchVar(wakeup_words) + SearchVar(heal_words) + SearchVar(hurt_words) + SearchVar(bleed_words) + SearchVar(burn_words) + SearchVar(hot_words) + SearchVar(cold_words) + SearchVar(repulse_words) + SearchVar(attract_words) + SearchVar(whoareyou_words) + SearchVar(saymyname_words) + SearchVar(knockknock_words) + SearchVar(statelaws_words) + SearchVar(move_words) + SearchVar(left_words) + SearchVar(right_words) + SearchVar(up_words) + SearchVar(down_words) + SearchVar(walk_words) + SearchVar(run_words) + SearchVar(helpintent_words) + SearchVar(disarmintent_words) + SearchVar(grabintent_words) + SearchVar(harmintent_words) + SearchVar(throwmode_words) + SearchVar(flip_words) + SearchVar(speak_words) + SearchVar(rest_words) + SearchVar(getup_words) + SearchVar(sit_words) + SearchVar(stand_words) + SearchVar(dance_words) + SearchVar(jump_words) + SearchVar(salute_words) + SearchVar(deathgasp_words) + SearchVar(clap_words) + SearchVar(honk_words) + SearchVar(multispin_words) + SearchVar(GPS_list) + SearchVar(uplinks) + SearchVar(uplink_items) #endif diff --git a/tools/DMTreeToGlobalsList/DMTreeToGlobalsList.csproj b/tools/DMTreeToGlobalsList/DMTreeToGlobalsList.csproj new file mode 100644 index 00000000000..db4350daa48 --- /dev/null +++ b/tools/DMTreeToGlobalsList/DMTreeToGlobalsList.csproj @@ -0,0 +1,59 @@ + + + + + Debug + AnyCPU + {9799169C-0C95-4873-B6B5-211E007A15F4} + Exe + Properties + DMTreeToGlobalsList + DMTreeToGlobalsList + v4.5.2 + 512 + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/DMTreeToGlobalsList/Program.cs b/tools/DMTreeToGlobalsList/Program.cs new file mode 100644 index 00000000000..44258824d46 --- /dev/null +++ b/tools/DMTreeToGlobalsList/Program.cs @@ -0,0 +1,65 @@ +using System; +using System.IO; +using System.Xml; + +namespace DMTreeToGlobalsList +{ + class Program + { + static void Main(string[] args) + { + if (args.Length < 1 || !File.Exists(args[0])) + { + Console.WriteLine("Usage: DMTreeToGlobalsList.exe [Prefix] [Postfix]"); + return; + } + + var XMLPath = args[0]; + string Prefix = "", Postfix = ""; + if (args.Length > 1) + { + Prefix = args[1]; + if (args.Length > 2) + Postfix = args[2]; + } + + XmlDocument Doc; + using (var FS = new FileStream(XMLPath, FileMode.Open, FileAccess.Read)) + { + try + { + while (FS.ReadByte() != '<') ; + } + catch + { + Console.WriteLine("Failed to find start point of XML in output"); + return; + } + FS.Seek(-1, SeekOrigin.Current); + + Doc = new XmlDocument(); + try + { + Doc.Load(FS); + } + catch + { + Console.WriteLine("Failed to load the XML document"); + return; + } + } + try + { + var DMNode = Doc.ChildNodes[1]; + foreach (XmlNode Child in DMNode.ChildNodes) + if (Child.Name == "var") + Console.WriteLine(Prefix + Child.FirstChild.Value.Trim() + Postfix); + } + catch + { + Console.WriteLine("Failed parsing the XML"); + return; + } + } + } +}