BYOND 5.0 Version 509 Release Notes
Build 509.1319
Fixes (More Info)
Dream Daemon
- client.byond_version was not correctly handled as a read-only var. (Metamorphman)
- call() on an invalid proc name did not fail by saying "bad proc" but instead tried to call the wrong proc. (MrStonedOne)
- locate(/obj) in area did not work correctly in many cases. (GinjaNinja32)
Dream Daemon & Dream Seeker
- animate() could sometimes cause a crash on the client when the first animation had time=0. Additionally, it did not behave correctly in these cases where loop was set. (Lige)
Dream Seeker
- Non-repeat macros were sometimes being culled from the client-side command queue if too many stacked up at once, which is behavior that should only be expected of repeat keys and mouse commands. (Zasif)
Webclient
- Gliding was sometimes inconsistent with Dream Seeker's behavior. (Doohl)
- The webclient did not support microlayers, an ancient feature that helps in some cases to tell which of two items on the same layer should be drawn first. (PopLava)
- Changing glide_size after gliding began did not alter the glide on subsequent ticks. (Doohl)
Features (More Info)
Dream Maker
- The dm.exe compiler will now print out its version when compiling or viewing command line help.
Build 509.1318
Fixes (More Info)
Dream Daemon
- Non-named arguments on calls to animate() when no object was included (i.e., a later stage of the animation) were not interpreted correctly. Now it is not necessary to explicitly name the time argument. (MrStonedOne)
- The default Write() implementation caused a small memory leak when saving atom.transform. This leak would also have been an issue for atoms with a color matrix as their default color. (Fenoopy)
Webclient
- Animated turf icons did not animate when a turf came back into view. (Doohl)
Build 509.1317
Fixes (More Info)
Dream Daemon
- Setting a color matrix with too many colors could cause a crash. (Rotem12)
Dream Seeker
- The titlebar of a window sometimes read as "Dream Seeker" when world.name was set at compile-time. (Rushnut)
Webclient
- Object layering order was sometimes incorrect in the webclient, in cases where two objects shared the same layer. (PopLava)
- Some maptext could cause infinite loops when used with the webclient. (Doohl)
- Only some verbs were read by the client and displayed in the info control. (GreatPirateEra)
Build 509.1316
Fixes (More Info)
Dream Daemon
- Profiler data was saved between reboots, causing crashes in some games, or when recompiling a game or switching to a new game. (MrStonedOne)
Webclient
- Maptext styling regressed in a recent version. (PopLava)
- screen_loc values that were malformed but valid in Dream Seeker were not recognized properly in the webclient. (Rotem12)
- browse(file("anytextfile.txt")) failed to load the text file correctly into the browser control. (Rotem12)
Features (More Info)
Webclient
- The tab-text-color, tab-background-color, tab-font-family, tab-font-style, and tab-font-size options have been implemented for the info control. This control (in the webclient only) also supports setting these options for individual tabs by using id:tabname as the ID in winset().
Build 509.1315
Fixes (More Info)
Dream Daemon
- list.Cut() could lead to reference errors in some cases by not properly clearing junk data. This manifested most often when adding items to the list via list[++list.len]=value. (GinjaNinja32)
Dream Daemon & Dream Seeker
- Overlays changed immediately before a flick() sometimes didn't register, depending on timing. (This fix affects both the client and server.) (PJB3005)
Dream Maker
- Saving an icon file did not reset the modified flag, and therefore did not remove the asterisk next to the filename on its tab. (LordAndrew)
- Dream Maker choked on lines that were too long in a code editor window, causing a crash. (NullQuery)
Webclient
- Popup windows often did not open properly. (Darker Emerald)
- Objects in the player's contents did not get sent properly to the client, causing trouble with accessing their verbs. (Darker Emerald)
- Objects removed from client.screen sometimes didn't disappear. (Darker Emerald)
- When using EYE_PERSPECTIVE, the map didn't draw if the eye was on a different z-level than the player's mob. (Darker Emerald)
- The values of <select> elements were not included in forms submitted from the browser control. (Darker Emerald)
Features (More Info)
Dream Maker
- "Show all files" will now include empty directories in the file tree.
Build 509.1314
Fixes (More Info)
Dream Daemon
- The atom.transform var did not save, and issaved() returned false for that value. (Rushnut)
- issaved() returned null in some cases, instead of always returning only 1 or 0. (LordAndrew)
- Exceptions raised by throw() will no longer use an internal 30-character limit on string length. (NullQuery)
Webclient
- Data attributes were not usable in a custom .dms skin. (NullQuery)
Features (More Info)
Webclient
- <link> tags were not previously allowed in .dms skins. Additionally, the .dms parser was not capable of recognizing the slash at the end of a standalone tag.
Build 509.1313
Fixes (More Info)
Dream Daemon
- The server sent information regarding client.pixel_x/y/z animations incorrectly in some cases. (Lavenblade)
- Certain atoms used within "in world" verbs did not parse properly on the server end, notably when using formatting characters in the atom's name. (Tigercat2000)
Dream Seeker
- When rendering in software mode with a specific zoom level, icons were sometimes positioned incorrectly. (Lavenblade)
- The appearance flag NO_CLIENT_COLOR didn't work in some cases, particularly when client.color was a solid color. (Tigercat2000)
Build 509.1312
Fixes (More Info)
Dream Maker
- Constant values of log(base,value) were compiled backwards, e.g. log(2,8) was 1/3 instead of 3. Calls using vars, like log(2,n), compiled correctly. (Ss4toby)
Webclient
- Adding and removing verbs to a client didn't always update correctly. In addition, removed verbs of any kind didn't get removed from the statpanel. (Ac19189)
- The webclient's rendering options have changed. Now WebGL has "high quality" mode as the default, which acts like Dream Seeker does in trying to get a nearest-integer zoom to preserve pixels without blurring, and "low quality" which is the old rendering method and subject to scaling artifacts. There is also now a new webclient-only skin parameter for the map control: rendering-mode can be set to "WebGL:high", "WebGL:low", or "Canvas2D". (Kozuma3)
- Images added to objects that the client could already see on the previous tick, did not persist and disappeared as soon as the object left the player's view. (Doohl)
Build 509.1311
Fixes (More Info)
Dream Maker
- The attempt to fix the bitwise operators at compile-time created a new bug in which the | and ^ operators accidentally compiled as & when a constant number was included in the expression. (Lummox JR)
Features (More Info)
Dream Maker
- Tabs now show asterisks when they have been modified.
Build 509.1310
Fixes (More Info)
Dream Maker
- Color matrix lists with 10-12 members did not compile correctly, so that the constant row was used as an alpha row instead. (Lummox JR)
Dream Seeker
- When using a color matrix in software rendering mode, icons without matrices that were drawn afterwards might use the same matrix. (Lummox JR)
Webclient
- Regression in 509.1309: Flicks did not appear on some atoms until a glide or other appearance change on the atom, at which point the flick would appear in-progress and continue normally. (Doohl)
- Turf information messages sometimes sent info about more turfs than expected, causing area IDs to be read incorrectly. (Doohl)
- Images without a loc set caused the map renderer to fail. (Doohl)
Build 509.1309
Fixes (More Info)
Dream Maker
- Regression in 509.1306: bitwise operations between non-numeric values were broken. This is a compiler fix. (Doohl)
Webclient
- The deprecated EFFECTS_LAYER and BACKGROUND_LAYER values didn't work properly in the webclient in some cases. (PopLava)
- Command expansion had multiple problems. (Kozuma3)
- Objects sometimes had incorrect pixel offsets, accidentally carried over from other objects, when first coming into view. (Doohl)
Build 509.1308
Fixes (More Info)
Dream Daemon
- Looping through area contents, or copying an area's contents, didn't behave correctly. (Lummox JR)
Dream Seeker
- The installer now properly updates DirectX files required for version 509, in case the user doesn't have them. (Flick)
Build 509.1307
Fixes (More Info)
Dream Daemon
- rand() could sometimes return 1, and rand(x,y) could sometimes return y+1, due to floating point rounding errors. (GinjaNinja32)
- Fixed a regression from 509.1306: Looping through turf contents was broken where "overhanging" movables (with changed bounds or step offsets) was concerned. (FKI)
Dream Maker
- The "Automatically include FILE_DIR" option in build preferences used the user's global config option (which is meant to only affect new projects) rather than defaulting to false when no .int file was available for the project. (MisterPerson)
Dream Seeker
- A layering problem was introduced in version 509.1304 while trying to improve drawing speed for projects with large views. (Tacurumin)
Webclient
- The browser control is better equipped to handle dynamically created links. (MrStonedOne)
Features (More Info)
Dream Maker
- The Find and Find/Replace dialogs now have the find value filled in automatically by the currently selected text, or the word at the cursor position.
Build 509.1306
Fixes (More Info)
DM Language
- Style attributes and stylesheets were not parsed correctly when attribute lists contained extra semicolons. (Lummox JR)
Dream Daemon
- Saving large lists of items (particularly turfs) rather than saving one at a time could cause a stack overflow in some cases. (Ter13)
- When turfs that were animating (for a finite time) were deleted by a map resize, an infinite loop occured when their animation data came due for deletion. (Lummox JR)
- Looping through atoms in area contents was painfully slow. (GinjaNinja32)
Dream Maker
- The compiler optimized out certain bitwise operations: OR or XOR with 0, and AND with 0xFFFF. As a result, variables were not truncated properly to the range allowed by bitwise operations. E.g., (n & 0xFFFF) would not truncate n from 0x10000 to 0. (GinjaNinja32)
Features (More Info)
Dream Seeker
- Maptext now uses a different font quality setting, for smoother results.
Build 509.1305
Fixes (More Info)
Webclient
- The new info control color options didn't work in some browsers and could cause problems at load time. (MrStonedOne)
Features (More Info)
DM Language
- Init procs created by compile-time initializations (e.g., turf/var/badwaytomakealist[0]) now have names that will show up in the profiler, instead of being blank. The names are in the form [path]/proc/(init).
Build 509.1304
Fixes (More Info)
Dream Maker
- Number key macros (not counting Numpad0 through Numpad9) did not parse correctly in .dms files. (Doohl)
Webclient
- Applying an image to an object didn't force its icons to update. Additionally, applying animation to an existing image or changing its appearance did not force the image's loc to update its icons either. (FKI)
- Adding z-levels to the map did not update client-side map dimensions properly. (Doohl)
Features (More Info)
Webclient
- The byond.iconUrl() method has been significantly altered to improve its usefulness. The old method took only a single internal icon ID (representing an individual frame) which we are phasing out. Now instead, it takes parameters for icon cache file ID, state, dir, frame (starting at 1), and moving. These can also be passed via an object literal. The parsing of <img> tags has been improved also and new functionality has been added to handle icons in the output.
- Profiling options have been improved for the webclient. The classic browser interface can be used in a popup browser:
byond://?debug=profile;window=mypopup
Or, mostly unformatted output can be sent to a control, paving the way for a dedicated profiler control:
byond://?debug=profile;output=mycontrol
byond://?debug=profile;switch=off;output=mycontrol
- The prefix-color, suffix-color, and highlight-color options are now supported in the info control as they are in DS.
Build 509.1303
Fixes (More Info)
Dream Daemon
- Bad entries in the ban list could make the Ban tab inaccessible. (MrStonedOne)
- client.bounds was wrong with even-numbered view lengths. (Kaiochao)
- Accounts starting with numbers confused the host ban system. (Pomf123)
Dream Maker
- If the last var accessed before a try/catch was accessed right after the catch(), and another var was accessed in catch() itself, the var access after the catch could be incorrect. (This is a fix to the way worlds are compiled. Affected projects must re-compile.) (Mloc)
- Importing .gif files could create junk pixels in place of transparency. (Doohl)
Dream Seeker
- When a screen object had a screen_loc outside of normal map bounds, and client.color used a matrix, the normal map would display "squished" in hardware mode. (Lummox JR)
- Setting client.color to a matrix could cause crashes in software rendering mode. (ZOMGbies)
- world.name was not allowed to override the window title "Dream Seeker" in the default skin and skins based on it. Now "Dream Seeker" will be treated as an empty title. (Syxoul)
- Key-up macros didn't fire if the message was not received by the right window and there was no associated key-down macro with the repeat flag. (Ter13)
Webclient
- Long words in statpanels (e.g. long-named verbs) did not forcibly break. (Kamuna)
- SIDE_MAP layering was inconsistent with Dream Seeker. (Kamuna)
- Images did not properly carry over the blend_mode of the atom they were attached to. (Kamuna)
- Image animations did not show up when the client was shown the image after the animation was created. (Kamuna)
Features (More Info)
Dream Daemon
- usr.loc and src.loc have been added to runtime error details, when they are movables.
Build 509.1302
Fixes (More Info)
Dream Seeker
- Map icons did not clip properly in hardware mode, allowing them to bleed over into "extended" areas created by screen objects. (Lummox JR)
- When the eye was not aligned with a tile boundary, animating client.color caused a pixel shift. (NOTE: The fix for this issue changes the server and client messaging formats. 509.1300-1301 will not be able to talk to 509.1302 properly.) (Kamuna)
- Using animate() with icon_state or other text values could cause a crash. (Kamuna)
Webclient
- The generated JavaScript for the webclient now removes various, theoretically unnecessary, type and safety checks in favor of faster execution. If any regressions appear as a result of this change, please try to reduce the problem to a simple, repeatable demo if possible for investigation and be sure to make note of any JavaScript console errors. (Doohl)
- When a regular color was multiplied by a color matrix, the resulting matrix was incorrect. (Lummox JR)
Build 509.1301
Fixes (More Info)
Dream Daemon
- Server-side parsing/expansion did not account for format characters, and also did not properly escape a leading single quote when sending back the expansion list. (MrStonedOne)
- Color matrices used in appearances didn't reclaim their memory after the appearance was deleted. (Tobba)
- client.bounds had incorrect values. (Kaiochao)
Dream Maker
- The -o option in dm.exe did not output valid XML for cases when an item in a list used compile-time text such as "[A_CONSTANT]". (PJB3005)
Dream Seeker
- world.name could override the title setting in the main window. Now world.name is only used if the main window's title is empty. (Bravo1)
- Screen objects did not necessarily respect their original order when on the same layer. (Flick)
- Animations could cause a memory leak. (Exentriks Gaming)
- Setting client.color at compile-time or too early in New() resulted in incorrect behavior on first connection, including a possible crash. (Tobba)
Webclient
- Plane was ignored in topdown mode. Additionally, it did not interact correctly with the deprecated special layer options. (Kaiochao)
- Right-clicking atoms on the map did not cause the verb menu to pop up. Additionally, verb commands that included the exact object reference did not work properly and could choose a different object with the same name. (Lummox JR)
- flick() interfered with animate() values besides icon and icon_state. (Doohl)
Build 509.1300
Fixes (More Info)
Dream Daemon
- Creating images with new() caused a memory leak. (FKI)
- The server could sometimes crash when reducing map size. (Rotem12)
Dream Maker
- XML output by the dm.exe -o option was invalid.
- It did not contain an ?xml header.
- There was no root element.
- Some HTML was not properly escaped.
- Characters normally escaped in DM (quotes, backslashes) were doubly escaped.
- Lists did not output anything.
- Associative lists output only the associated values, and a spurious /var tag for each.
(Somepotato)
Dream Seeker
- Animations could crash the client in some circumstances. (MrStonedOne)
- Objects with overlays often did not show up correctly in right-click menus. (Tigercat2000)
DreamSeeker & Webclient
- Maptext size impacted a sprite's perceived width and height, altering its center point used for transformations. (Kaiochao)
Webclient
- When overlays and base atoms both had transforms, the transforms were applied in the wrong order. (Lummox JR)
Features (More Info)
DM Language
- Appearances now have a plane var, used to deprecate EFFECTS_LAYER and BACKGROUND_LAYER. In non-topdown formats, this helps clarify how icons should be sorted. Positive values for plane are drawn above the regular map, and negative values are drawn below. This has been given a range of -100 to 100 in integers, with a default of 0.
- The color var used in appearances now allows you to use matrices, supplied as a list. The format is basically identical to that used by icon.MapColors().
- The new client.color var can be used to provide a color cast over the whole main map. This supports matrix values (ignoring alpha) and can be animated.
- /client now has a new set of vars: bounds, bound_x, bound_y, bound_width, and bound_height. These return pixel coordinates of the viewport, in the same format used by the bounds() proc. (Note: world.map_format and client.dir are not taken into account.)
- bound_x, bound_y are the pixel coordinates of the lower left corner of the viewport. These are affected by client.pixel_x/y/z as well as the eye's pixel and step offsets, edge_limit, etc.
- bound_width, bound_height are the width and height of the viewport, in pixels.
- bounds is a list of all four of the above values, plus a z coordinate.
All of these values are read-only.
- animate() now includes an optional flags parameter. There are only two flags defined presently:
ANIMATION_END_NOW: When interrupting another animation, end it immediately instead of transitioning out.
ANIMATION_LINEAR_TRANSFORM: When interpolating a transform matrix, use strict linear interpolation instead of trying to separate out the rotation. Linear interpolation lends itself to certain mechanical objects, beam effects, etc.
- The value of glide_size now supports fractional numbers, not just integers.
- animate() can now be used with clients for limited values such as pixel offsets.
Dream Daemon
- flick() previously didn't work with /icon datums, requiring a call to fcopy_rsc() first. Now the call is no longer required.
508 Release Notes | View All