From e0f4b3b7fce9b85205e107cc6c79159958803f82 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Tue, 23 Dec 2025 18:13:42 -0500 Subject: [PATCH] Update To 516.1673 (#21676) This PR updates the repo fully to Byond 516.1673. We now have access to Associative Lists, Vectors, Matrices, and a huge number of math improvements tha will allow us to catapult the repo into a new era of simulationism. I have tested this PR to verify that it works. image --- .github/workflows/byond.yml | 12 ++++++------ .tgs.yml | 2 +- code/__DEFINES/byond_compat.dm | 6 +++--- code/__DEFINES/global.dm | 4 ++-- code/__DEFINES/subsystems.dm | 4 ++-- code/controllers/configuration.dm | 6 +++--- code/controllers/globals.dm | 3 ++- code/controllers/subsystems/event.dm | 2 +- code/controllers/subsystems/timer.dm | 4 ++-- code/modules/admin/verbs/atmosdebug.dm | 2 +- code/modules/events/blob.dm | 2 +- code/modules/events/event_container.dm | 2 +- code/unit_tests/map_tests.dm | 2 +- dependencies.sh | 6 +++--- html/changelogs/Hellfirejag-516 update.yml | 5 +++++ 15 files changed, 34 insertions(+), 28 deletions(-) create mode 100644 html/changelogs/Hellfirejag-516 update.yml diff --git a/.github/workflows/byond.yml b/.github/workflows/byond.yml index c4659c0bd70..b60a564a7bc 100644 --- a/.github/workflows/byond.yml +++ b/.github/workflows/byond.yml @@ -381,7 +381,7 @@ jobs: #And natively, the packages that break from a cache - name: Install OS Packages (Native) run: | - sudo apt-get install libgcc-s1:i386 libssl-dev:i386 + sudo apt-get install libgcc-s1:i386 libssl-dev:i386 libcurl4t64 libcurl4t64:i386 #Install flyway - name: Install Flyway @@ -504,7 +504,7 @@ jobs: #And natively, the packages that break from a cache - name: Install OS Packages (Native) run: | - sudo apt-get install libgcc-s1:i386 libssl-dev:i386 + sudo apt-get install libgcc-s1:i386 libssl-dev:i386 libcurl4t64 libcurl4t64:i386 #Install flyway - name: Install Flyway @@ -629,7 +629,7 @@ jobs: #And natively, the packages that break from a cache - name: Install OS Packages (Native) run: | - sudo apt-get install libgcc-s1:i386 libssl-dev:i386 + sudo apt-get install libgcc-s1:i386 libssl-dev:i386 libcurl4t64 libcurl4t64:i386 #Install flyway - name: Install Flyway @@ -754,7 +754,7 @@ jobs: #And natively, the packages that break from a cache - name: Install OS Packages (Native) run: | - sudo apt-get install libgcc-s1:i386 libssl-dev:i386 + sudo apt-get install libgcc-s1:i386 libssl-dev:i386 libcurl4t64 libcurl4t64:i386 #Install flyway - name: Install Flyway @@ -878,7 +878,7 @@ jobs: #And natively, the packages that break from a cache - name: Install OS Packages (Native) run: | - sudo apt-get install libgcc-s1:i386 libssl-dev:i386 + sudo apt-get install libgcc-s1:i386 libssl-dev:i386 libcurl4t64 libcurl4t64:i386 #Install flyway - name: Install Flyway @@ -1001,7 +1001,7 @@ jobs: #And natively, the packages that break from a cache - name: Install OS Packages (Native) run: | - sudo apt-get install libgcc-s1:i386 libssl-dev:i386 + sudo apt-get install libgcc-s1:i386 libssl-dev:i386 libcurl4t64 libcurl4t64:i386 #Install flyway - name: Install Flyway diff --git a/.tgs.yml b/.tgs.yml index f820ba856fa..57d18557e3f 100644 --- a/.tgs.yml +++ b/.tgs.yml @@ -3,7 +3,7 @@ version: 1 # The BYOND version to use (kept in sync with dependencies.sh by the "TGS Test Suite" CI job) # Must be interpreted as a string, keep quoted -byond: "515.1644" +byond: "516.1673" # Folders to create in "/Configuration/GameStaticFiles/" static_files: # Config directory should be static diff --git a/code/__DEFINES/byond_compat.dm b/code/__DEFINES/byond_compat.dm index ccb88af21c5..87671d83dd2 100644 --- a/code/__DEFINES/byond_compat.dm +++ b/code/__DEFINES/byond_compat.dm @@ -1,12 +1,12 @@ // This file contains defines allowing targeting byond versions newer than the supported //Update this whenever you need to take advantage of more recent byond features -#define MIN_COMPILER_VERSION 515 -#define MIN_COMPILER_BUILD 1609 +#define MIN_COMPILER_VERSION 516 +#define MIN_COMPILER_BUILD 1673 #if (DM_VERSION < MIN_COMPILER_VERSION || DM_BUILD < MIN_COMPILER_BUILD) && !defined(SPACEMAN_DMM) && !defined(OPENDREAM) //Don't forget to update this part #error Your version of BYOND is too out-of-date to compile this project. Go to https://secure.byond.com/download and update. -#error You need version 515.1609 or higher +#error You need version 516.1673 or higher #endif // So we want to have compile time guarantees these methods exist on local type diff --git a/code/__DEFINES/global.dm b/code/__DEFINES/global.dm index 92d332e0b6e..d2da0e011e8 100644 --- a/code/__DEFINES/global.dm +++ b/code/__DEFINES/global.dm @@ -1,6 +1,6 @@ //#define TESTING -#if DM_VERSION < 515 && !defined(OPENDREAM) -#error Your version of BYOND is too old to compile the code. At least BYOND 515 is required. +#if DM_VERSION < 516 && !defined(OPENDREAM) +#error Your version of BYOND is too old to compile the code. At least BYOND 516 is required. #endif diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index ed6bde979f2..96aaaa664ba 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -113,8 +113,8 @@ // Effect helpers. #define QUEUE_EFFECT(effect) if (!(effect.datum_flags & DF_ISPROCESSING)) {effect.datum_flags |= DF_ISPROCESSING; SSeffects.effect_systems += effect;} #define QUEUE_VISUAL(visual) if (!(visual.datum_flags & DF_ISPROCESSING)) {visual.datum_flags |= DF_ISPROCESSING; SSeffects.visuals += visual;} -#define STOP_EFFECT(effect) effect.datum_flags &= ~DF_ISPROCESSING; SSeffects.effect_systems -= effect; -#define STOP_VISUAL(visual) visual.datum_flags &= ~DF_ISPROCESSING; SSeffects.visuals -= visual; +#define STOP_EFFECT(effect) SSeffects.effect_systems -= effect; +#define STOP_VISUAL(visual) SSeffects.visuals -= visual; // -- SSfalling -- #define ADD_FALLING_ATOM(atom) if (!atom.multiz_falling) { atom.multiz_falling = 1; SSfalling.falling[atom] = 0; } diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 9decda48d81..1d6f86747d6 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -341,13 +341,13 @@ GLOBAL_LIST_EMPTY(gamemode_cache) var/expected_round_length = 3 * 60 * 60 * 10 // 3 hours // If the first delay has a custom start time // No custom time, no custom time, between 80 to 100 minutes respectively. - var/list/event_first_run = list(EVENT_LEVEL_MUNDANE = null, EVENT_LEVEL_MODERATE = null, EVENT_LEVEL_MAJOR = list("lower" = 48000, "upper" = 60000)) + var/alist/event_first_run = alist(EVENT_LEVEL_MUNDANE = null, EVENT_LEVEL_MODERATE = null, EVENT_LEVEL_MAJOR = list("lower" = 48000, "upper" = 60000)) // The lowest delay until next event // 10, 30, 50 minutes respectively - var/list/event_delay_lower = list(EVENT_LEVEL_MUNDANE = 6000, EVENT_LEVEL_MODERATE = 18000, EVENT_LEVEL_MAJOR = 30000) + var/alist/event_delay_lower = alist(EVENT_LEVEL_MUNDANE = 6000, EVENT_LEVEL_MODERATE = 18000, EVENT_LEVEL_MAJOR = 30000) // The upper delay until next event // 15, 45, 70 minutes respectively - var/list/event_delay_upper = list(EVENT_LEVEL_MUNDANE = 9000, EVENT_LEVEL_MODERATE = 27000, EVENT_LEVEL_MAJOR = 42000) + var/alist/event_delay_upper = alist(EVENT_LEVEL_MUNDANE = 9000, EVENT_LEVEL_MODERATE = 27000, EVENT_LEVEL_MAJOR = 42000) var/ninjas_allowed = 0 var/abandon_allowed = 1 diff --git a/code/controllers/globals.dm b/code/controllers/globals.dm index e8411701644..a0502cc6b58 100644 --- a/code/controllers/globals.dm +++ b/code/controllers/globals.dm @@ -18,7 +18,8 @@ GLOBAL_REAL(GLOB, /datum/controller/global_vars) controller_vars["vars"] = null gvars_datum_in_built_vars = controller_vars + list(NAMEOF(src, gvars_datum_protected_varlist), NAMEOF(src, gvars_datum_in_built_vars), NAMEOF(src, gvars_datum_init_order)) -#if MIN_COMPILER_VERSION >= 515 && MIN_COMPILER_BUILD > 1620 +#if MIN_COMPILER_VERSION >= 517 && MIN_COMPILER_BUILD > 1673 + // As of 516.1673 the issue still exists. Previously this was set to warn past 515.1620. Update this warning if you update the CL. #warn datum.vars hanging a ref should now be fixed, there should be no reason to remove the vars list from our controller's vars list anymore #endif QDEL_IN(exclude_these, 0) //signal logging isn't ready diff --git a/code/controllers/subsystems/event.dm b/code/controllers/subsystems/event.dm index 065ea310376..b88b30e1cce 100644 --- a/code/controllers/subsystems/event.dm +++ b/code/controllers/subsystems/event.dm @@ -27,7 +27,7 @@ SUBSYSTEM_DEF(events) /datum/controller/subsystem/events/Initialize() allEvents = subtypesof(/datum/event) - event_containers = list( + event_containers = alist( EVENT_LEVEL_MUNDANE = new/datum/event_container/mundane, EVENT_LEVEL_MODERATE = new/datum/event_container/moderate, EVENT_LEVEL_MAJOR = new/datum/event_container/major diff --git a/code/controllers/subsystems/timer.dm b/code/controllers/subsystems/timer.dm index cdd20dcf972..6355802f2ce 100644 --- a/code/controllers/subsystems/timer.dm +++ b/code/controllers/subsystems/timer.dm @@ -525,7 +525,7 @@ SUBSYSTEM_DEF(timer) /datum/timedevent/proc/bucketJoin() #if defined(TIMER_DEBUG) // Generate debug-friendly list for timer, more complex but also more expensive - timer_info = list( + timer_info = alist( 1 = id, 2 = timeToRun, 3 = wait, @@ -540,7 +540,7 @@ SUBSYSTEM_DEF(timer) ) #else // Generate a debuggable list for the timer, simpler but wayyyy cheaper, string generation (and ref/copy memes) is a bitch and this saves a LOT of time - timer_info = list( + timer_info = alist( 1 = id, 2 = timeToRun, 3 = wait, diff --git a/code/modules/admin/verbs/atmosdebug.dm b/code/modules/admin/verbs/atmosdebug.dm index 742e2b6a58b..a4770ba9db7 100644 --- a/code/modules/admin/verbs/atmosdebug.dm +++ b/code/modules/admin/verbs/atmosdebug.dm @@ -29,7 +29,7 @@ next_turf: for(var/turf/T in world) for(var/dir in GLOB.cardinals) - var/list/connect_types = list(1 = 0, 2 = 0, 3 = 0) + var/alist/connect_types = alist(1 = 0, 2 = 0, 3 = 0) for(var/obj/machinery/atmospherics/pipe in T) if(dir & pipe.initialize_directions) for(var/connect_type in pipe.connect_types) diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm index a1d9f28b260..17e766b5512 100644 --- a/code/modules/events/blob.dm +++ b/code/modules/events/blob.dm @@ -10,7 +10,7 @@ ..() // This stores the list of the possible number of blobs, weighted towards 2. Adjust if a different weighting if desired. - var/list/numberOfBlobs = list(1 = 1, 2 = 2, 3 = 1) + var/alist/numberOfBlobs = alist(1 = 1, 2 = 2, 3 = 1) // We pick randomly from the list to determine how many we spawn. for(var/i = 1 to pickweight(numberOfBlobs)) diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index 841e2c2f844..0ab823412fe 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -11,7 +11,7 @@ #define ASSIGNMENT_COMMAND_SUPPORT "Command Support" #define ASSIGNMENT_BRIDGE_CREW "Bridge Crew" -GLOBAL_LIST_INIT(severity_to_string, list(EVENT_LEVEL_MUNDANE = "Mundane", EVENT_LEVEL_MODERATE = "Moderate", EVENT_LEVEL_MAJOR = "Major")) +GLOBAL_LIST_INIT(severity_to_string, alist(EVENT_LEVEL_MUNDANE = "Mundane", EVENT_LEVEL_MODERATE = "Moderate", EVENT_LEVEL_MAJOR = "Major")) /datum/event_container var/severity = -1 diff --git a/code/unit_tests/map_tests.dm b/code/unit_tests/map_tests.dm index c251ad6f8f0..4f50184b816 100644 --- a/code/unit_tests/map_tests.dm +++ b/code/unit_tests/map_tests.dm @@ -236,7 +236,7 @@ next_turf: for(var/turf/T in world) for(var/dir in GLOB.cardinals) - var/list/connect_types = list(1 = 0, 2 = 0, 3 = 0) + var/alist/connect_types = alist(1 = 0, 2 = 0, 3 = 0) for(var/obj/machinery/atmospherics/pipe in T) checks++ if(dir & pipe.initialize_directions) diff --git a/dependencies.sh b/dependencies.sh index 21836b2bedc..dc296092ca2 100755 --- a/dependencies.sh +++ b/dependencies.sh @@ -2,16 +2,16 @@ if [ -z ${GITHUB_ENV+x} ]; then GITHUB_ENV=/dev/null; fi -export BYOND_MAJOR=515 +export BYOND_MAJOR=516 echo "BYOND_MAJOR=$BYOND_MAJOR" >> "$GITHUB_ENV" -export BYOND_MINOR=1644 +export BYOND_MINOR=1673 echo "BYOND_MINOR=$BYOND_MINOR" >> "$GITHUB_ENV" export RUST_G_VERSION=v3.1.0+a1 echo "RUST_G_VERSION=$RUST_G_VERSION" >> "$GITHUB_ENV" export FLYWAY_BUILD=9.21.1 echo "FLYWAY_BUILD=$FLYWAY_BUILD" >> "$GITHUB_ENV" -export SPACEMAN_DMM_VERSION=suite-1.8 +export SPACEMAN_DMM_VERSION=suite-1.11 echo "SPACEMAN_DMM_VERSION=$SPACEMAN_DMM_VERSION" >> "$GITHUB_ENV" #node version diff --git a/html/changelogs/Hellfirejag-516 update.yml b/html/changelogs/Hellfirejag-516 update.yml new file mode 100644 index 00000000000..e76d8fd8887 --- /dev/null +++ b/html/changelogs/Hellfirejag-516 update.yml @@ -0,0 +1,5 @@ +author: Hellfirejag +delete-after: True +changes: + - rscadd: "Updated byond to 516.1673." + - bugfix: "Fixed the Effects hard delete."