BYOND 5.0 Version 512 Release Notes
Build 512.1488
Fixes (More Info)
Dream Maker
- The ?. operator didn't handle some complex situations properly where it was the left-hand side of an expression and that expression was in turn the right-hand side of another. This is a compiler fix. (Optimumtact)
- The find/replace dialog lost focus when searching across multiple files. (Spevacus)
Dream Seeker
- Animated cursors did not work for the inactive pointer or various other default pointers. (CthulhuOnIce)
- Maptext was not being counted in the client-side calculation of visual bounds, resulting in some icons not being drawn when maptext dimensions were large even though the maptext extended into the visible area. (Lummox JR)
- In some games, the output control still didn't have its scrollbar appear, nor stay scrolled to the bottom. This seems to be related to the style of the text, so it only occurs in specific games. (Lummox JR)
Build 512.1485
Fixes (More Info)
Dream Seeker
- The options string in browse() was not parsed like a URL-encoded parameter string (as in list2params), which prevented special characters from being escaped. Now it's parsed the same way, except that for legacy reasons a comma is still allowed as a delimiter between items in the list. (MrStonedOne)
- When a turf in visual contents also had another turf in visual contents, moving away from and then back to its Z level in a different place could cause the inner visual contents to shift over. (HindyMinte)
Features (More Info)
Dream Daemon
- The way certain special internal objects (regex, database, icon math) are handled internally has been refactored to improve server stability.
Build 512.1484
Fixes (More Info)
Dream Daemon
- A further possible source of server instability was fixed. (Lummox JR)
Build 512.1483
Fixes (More Info)
Dream Daemon
- Some sources of server instability were fixed. (Lummox JR)
Dream Maker
- The compiler did not handle compilation of null-conditional operators correctly in some cases, resulting in runtime errors. (Mport2004)
Build 512.1479
Fixes (More Info)
Dream Daemon
- Turfs and movable objects did not properly calculate visual bounds on the server side for visual contents, if the turf/movable had no attached images or animation. (Nadrew)
Dream Seeker
- Some kinds of filter animations were broken in a previous build, resulting in wrong values. (Claed)
Build 512.1478
Fixes (More Info)
Dream Daemon
- Setting world.fps or client.fps at runtime could sometimes cause messages to be sent to newly connecting clients before the client was ready to handle them, causing it to disconnect. This especially happened if such changes were done often. (Lummox JR)
- Procs that ended because their src was deleted generated errors in world/Error() and were caught in try/catch, which they shouldn't have been. (Nadrew)
- client.view wasn't respected when set at compile time. This has been changed for all projects compiled in 512 or later. (Lige)
- Old code altering client.lazy_eye automatically when the world size was small resulted in some unexpected/annoying behavior, so it has been disabled for projects compiled in 512 or higher. Also, lazy_eye and EDGE_PERSPECTIVE interacted catastrophically in certain situations, causing a constant jump back and forth on each frame. (Lige)
Dream Maker
- The icon editor was still limited to loading only 512 states, even though the reason for that restriction (the old icon editor) no longer exists. (DistantWorld101)
Dream Seeker
- Parallel animations on the same filter didn't work as expected, causing the later animations to basically cancel out the earlier ones even if they applied to different parameters. (Lummox JR)
- The output control didn't always show a scrollbar, once the scrollbar was needed, until the place it was supposed to be was clicked or the user scrolled up. This has been fixed after exhaustive, painstaking testing. (Lummox JR)
Features (More Info)
Dream Maker
- The hotspot indicator in the icon editor now correctly contrasts with a transparent background in dark mode.
Build 512.1477
Fixes (More Info)
Dream Seeker
- Regression: Statpanels got messed up by the grid formatting fix. (Laser50)
Build 512.1476
Fixes (More Info)
Dream Daemon
- Temporary mutable appearances used in animate() didn't clean up properly, resulting in an appearance leak. (S10Games)
- output() to a specific control wasn't working right when the << operator was overloaded under the world object. (FKI)
- The server did not send visual content updates for screen objects when the player's loc was null. (Lige)
Dream Maker
- Another cause of anomalous step_x/y values in the map editor was found. (Cassy_jenelle)
Dream Seeker
- The save-as dialog did not respect a typed-in filename if the user first selected a file from the list. (Legobumb)
- In grid controls, certain styles were not applied correctly, such as a font-size of 12pt. (Legobumb)
Build 512.1475
Fixes (More Info)
Dream Daemon
- Reading initial() failed for some vars, resulting in major runtime errors. (Afterthought)
Dream Maker
- Step offsets, pixel offsets, and bounds were not always set properly in the map editor. (Vicacrov)
Build 512.1474
Fixes (More Info)
Dream Seeker
- Regression: Non-zero map zooms were broken. (NSBR)
Build 512.1473
Fixes (More Info)
Dream Daemon
- Several forms of output did not use the override proc for << when it was available. Additionally, sending output from the output() proc through an overload will now call the overloaded proc with three arguments: output, target, and window. (Kaiochao)
Dream Daemon & Dream Seeker
- Filter animations had multiple issues, including that removing a filter that was on an infinite animation loop did not have any effect. Filter handling has been improved to fix these issues, which also has the side effect that a reference like obj.filters[1] is more "stable" than before. This change impacts both the client and server. (Flick)
Dream Maker
- Keyboard navigation within the icon editor's state list didn't move the scrollbar. (Repo82)
Dream Seeker
- Blur and motion blur filters with high sizes caused major performance issues, sometimes stalling Dream Seeker. Now, although multiple passes are still used, the renderer will use several low-quality passes at large sizes. (Kaiochao)
- Text-mode rendering was rather broken owing to a failure to re-sort in a correct order. (Kaiochao)
- Edge-based screen_loc values (LEFT, RIGHT, TOP, BOTTOM) did not calculate correctly when using zoom=0 and letterbox=false. (Kaiochao)
Features (More Info)
DM Language
- Breaking change: Assign-with-side-effect operator overloads now include . = src at the beginning of the proc code implicitly, and therefore you may explicitly return null as the result of the operation. This is unlikely to affect any existing code in any important way, but if your code is affected, you must re-compile in the new build and only use 512.1473+ to host. Earlier 512 builds will still interpret a return of null as returning src.
Additionally, the ++ and -- operator overloads were not properly documented.
Dream Daemon
- Some small optimizations have been made to proc code, including constant loads, some var reads, and proc data initialization.
Build 512.1472
Fixes (More Info)
Dream Daemon
- Filter list access for animations, setting vars, etc. sometimes resulted in spurious "index out of bounds" errors. (Lummox JR)
- The server did not send sound information properly, which prevented sound.environment from accepting 0 to reset the environment. (VolAs)
- MouseEntered() is now called right after MouseDrop() in response to the fact that the object under the cursor has changed. This call is generated on the server instead of the client. (Ter13)
- Case insensitivity was not properly handled in some complex regular expressions. (Altoids0)
Dream Maker
- Several issues regarding global color changes in an icon have been fixed. (NSBR)
- The backspace key didn't work correctly in the loop count edit box of the icon pixmap editor. (Nadrew)
- The map editor suffered reduced performance. (Ter13)
Dream Seeker
- Visual contents of objs and mobs did not reset in some cases when they were removed from the map and later re-added, but not deleted in the interim. (Mport2004)
Features (More Info)
Dream Maker
- In the pixmap editor's movie area, you can now insert or delete entire columns. Using a regular delete when a column is selected will ask if you'd rather shift the other columns over. The new insert-columns and delete-columns commands have keyboard shortcuts Shift+Ins and Shift+Del, respectively.
Build 512.1471
Fixes (More Info)
Dream Daemon
- In some cases, the server did not properly send map chunk information that was necessary to handle big icons. (The peoples republic of china)
- Some proc calls using the call() proc were misinterpreted, causing named arguments not to work correctly when calling those procs with an arglist(). (4DPlanner)
Dream Maker
- The map editor has had some updates to improve its ability to handle certain conditions like the use of BACKGROUND_LAYER. (Ter13)
- The compiler did not include some vars in turf underlays that impacted their appearance, when those underlays used modified types (vars set in the map editor). This very old bug, which can be traced back to BYOND 324 because it impacted pixel offsets too, has been corrected. (Ter13)
- Setting parent_type in a way that created a circular reference caused the compiler to hang or crash. (PJB3005)
Dream Seeker
- Animations could cause crashes in unusual circumstances. (Anturke)
- Color matrices and certain situations applying alpha values did not mix properly, resulting in incorrect color matrix calculations. (The peoples republic of china)
- alert() couldn't use buttons starting with a period, which resulted in some broken behavior. (SeymourG)
- blend_mode was not applied properly in icons using flick(). (DarkNinjaNaut)
Build 512.1470
Fixes (More Info)
Dream Seeker
- Another regression in 512.1468 involved the screen-loc mouse parameter: the X pixel offset and Y tile values were accidentally switched. (Anturke)
Build 512.1469
Fixes (More Info)
Dream Seeker
- Regression: Several mouse hit problems cropped up as a result of the overhaul in the last version. (Anturke)
Build 512.1468
Fixes (More Info)
Dream Daemon
- Empty filters lists got saved along with objects. (Kaiochao)
Dream Seeker
- A very large number of objects on a turf, especially objects with large bounds covering multiple turfs, was worse for client performance than it needed to be due to some scalability issues. Although this is obviously still a terrible idea, the scalability problems have been addressed. (Ter13)
- When using an <img> tag in maptext, the alignment of the text's baseline to image bottom caused the text to be incorrectly positioned in some cases, causing the text to be culled. (Kamakiri)
- Mouse hit detection has been substantially reworked to fix some bugs. In particular, when the mouse is over an object in vis_contents it should not treat the parent as the main icon, which it used to do, causing the icon-x/y offsets to be wrong. (Ter13)
- PIXEL_SCALE was inherited by overlays. While this was originally intentional, there are situations where it is not desirable, and most of the situations where it would have been wanted are already handled by KEEP_TOGETHER. So, this flag is no longer inherited. (Ter13)
- Using alpha on an atom with KEEP_TOGETHER rendered the color incorrectly. (Kaiochao)
Features (More Info)
DM Language
- New mouse params, vis-x and vis-y, have been added. These represent the offset in screen coordinates from where the icon's lower left corner gets rendered. Although this is a language feature, it requires the client to use 512.1468 or higher.
Build 512.1467
Fixes (More Info)
Dream Daemon
- Setting an atom's mouse pointer vars to one of the built-in values did not work at runtime. (SpaceManiac)
- jointext() behaved wrongly when given a start argument greater than 1 and a default end argument of 0. (Mport2004)
- Large numbers of turf changes in a short time, especially involving changes to their overlays/underlays, could sometimes cause appearances to be prematurely deleted or rendered invalid, which could cause crashes. This was an intermittent issue brought on by high-stress situations. (NGGJamie)
Dream Maker
- When world.icon_size was not 32, maptext_width and maptext_height could be wrong for some objects on the map. This has been corrected at the compiler level, so worlds with this issue can be recompiled to fix it. (The peoples republic of china)
- Certain complex do-while loop cases could behave incorrectly in the while() condition, as a result of the way they were compiled. (SpaceManiac)
Dream Seeker
- The key-repeat flag has been removed from the screenshot and Options & Messages macros in the default skin. (LordAndrew)
- The client garbage collector has been improved to deal with games that use a lot of large icons, encouraging them to let go of unused icons sooner as memory use goes up. (DragonDesend)
Build 512.1466
Fixes (More Info)
Dream Daemon
- Worlds using turfs with visual contents could experience crashes after reboot, caused by bogus appearance references being retained by each client which then caused appearances to be destroyed prematurely when those references were later cleared. (MrStonedOne)
Dream Seeker
- The overtime column of the profiler didn't clear properly when reading data from servers before 512.1465, so it showed junk data instead of the expected 0. (Zewaka)
Build 512.1465
Fixes (More Info)
Dream Daemon
- Visual contents were not being cleared in some cases such as extreme changes to client pixel offsets. (Mport2004)
- The overlays, underlays, and verbs lists were not readable from a true appearance value, only from a mutable appearance. (Monster860)
Dream Daemon & Dream Seeker
- Visual contents could mistakenly not get used when removing an object from the visible map and adding it to client.screen at the same time. Conversely, visual contents would not reset when adding an object to the visible map and removing it from client.screen at the same time. (The fix for this issue impacts both client and server.) (Mport2004)
Dream Maker
- Pressing the rewind checkbox in the icon editor did not update a currently-animating icon. (Magus8)
- Map files were restricted to 64K rows in the file, preventing extended one-tile-per-row formats from working properly. (Monster860)
Dream Seeker
- For non-transformed atoms, the hit detection for their maptext was incorrect. (PopLava)
- KEEP_TOGETHER groups could be rendered in an incorrect position in certain unusual cases. (Bovine_Buddy)
Features (More Info)
Dream Daemon
- Server profiling now includes an "Overtime" column for the self-CPU time spent in a proc when the proc ends, or calls out to another proc, once world.tick_usage is over 100.
Build 512.1464
Fixes (More Info)
Dream Maker
- Huge icon sizes caused the pixel editing page to open up with controls in odd positions in some cases. (Mport2004)
- Using the selection tool in the icon editor, beginning a selection from outside of the icon could cause crashes. (Crazah)
- Translucent pixels didn't blend properly over translucent/transparent ones, which manifested in weird results when dragging selections in the icon editor. (Magus8)
- Scrollbars in the pixmap editor didn't go all the way to the right of the enlarged image like they were supposed to. (Magus8)
Dream Seeker
- In SIDE_MAP and ISOMETRIC_MAP formats, plane masters were sorted incorrectly. (Marekssj3)
Features (More Info)
Dream Seeker
- In games with a large number of turfs marked as special (needing extra processing on the client), performance has been improved for cases where the number of special turfs experiences huge fluctuation while moving.
Build 512.1463
Fixes (More Info)
Dream Maker
- The ?. operator did not do proper type checking for procs when it was able to. (Memeopolis)
- The global swap-color operation did not affect translucent colors. (AkaneLeone)
Dream Seeker
- Animations on big-icon turfs stopped whenever the player moved far enough out of range. (Zasif)
- When told to forget about an obj or mob, the client would sometimes incorrectly hold onto its list of visual contents. This tended to happen in situations where the object was moved out of view rather than deleted outright. (Mport2004)
Build 512.1462
Fixes (More Info)
Dream Maker
- Expanding the movie size (more frames or more directions) and then undoing while a frame in the expanded area was still selected could result in errors. (NSBR)
- Translucent pixels were not copied into the selection area when using the select tool. (Orange55)
Dream Seeker
- A number of issues appeared in the software-mode renderer. This affected Dream Maker as well. (Memeopolis)
Build 512.1461
Fixes (More Info)
Dream Maker
- Certain icon dimensions could cause the pixmap/movie editor's thumbnails in the movie control to be teeny tiny. (Zasif)
- Icons larger than 32x32 could sometimes crash Dream Maker when pasting into the pixmap editor. Likewise, selecting portions of these icons in the pixmap editor could result in crashes or other problems. (Zasif)
- The rewind setting didn't save properly when checked in the pixmap/movie editor. (Soma Schicksal)
- Inserting a new icon state before an existing one opened the wrong state in the editor, and screwed up undo/redo. (Lummox JR)
Build 512.1460
Fixes (More Info)
Dream Maker
- For icons larger than 32x32, the icon list did not display correctly because the zoom level was wrong. (Lummox JR)
Build 512.1459
Fixes (More Info)
Dream Maker
- The undo/redo feature in the pixmap editor now properly handles regions selected via the Select tool. (Lummox JR)
- When an area being rotated in an icon had an odd width and even height or vice-versa, rotations always caused antialiasing (when antialiasing was enabled) because of the rotation center being at the side of a pixel instead of a pixel center or corner. In these cases, now the center of rotation will be adjusted to avoid the problem. (NSBR)
- In the pixmap/movie editor, when undoing an action that impacted only a single frame of an icon, the selection is no longer changed if the previous action impacted a different frame. (NSBR)
- Switching between find and find-replace dialogs while in the map editor could cause the find text not to reset properly. (Repo82)
- When zoomed in on the map editor, finding an instance on the map would not scroll to the correct position. (Repo82)
- Hitting Ctrl+A in the search box underneath the file or object tree did not select all text. (NSBR)
Dream Seeker
- The SOUND_UPDATE flag did not behave in a logical manner; if a sound was not playing it would be ignored unless it applied to all channels, and when a channel was specified but that channel was not playing, the sound would begin.
The new behavior is that SOUND_UPDATE always takes priority over other considerations, and when it is present the file value of the /sound datum is ignored. A new sound will not start playing if the specified channel is currently not in use. (VolAs)
Features (More Info)
Dream Maker
- Using alphanumeric keys to type in a name used to navigate to a matching state in the old list control. This functionality has been added to the new control.
Build 512.1458
Fixes (More Info)
Dream Maker
- Mousing over the icon sheet could cause "Encountered an improper argument" errors in some cases. (Hiead)
- Deleting/cutting an icon from the icon list could result in a crash. (Sabira)
Features (More Info)
Dream Maker
- The icon editor has had more updates:
- The icon list page has multi-level undo now.
- A toggle between light and dark backgrounds has been added to both the icon list and pixmap editor pages.
- A new Select All (Ctrl+A) option has been added to both pages
- Switch frames easily in the pixmap editor by using the , and . to move forward or back in the animation, and < and > to change direction.
- Toggles have been added for the pixmap grid, and for antialiasing done when rotating.
- The icon list control lets you easily split or combine icons when bringing up a menu via right-click.
Build 512.1457
Fixes (More Info)
Dream Maker
- Zooming in on some large icons caused incorrect image placement within the drawing canvas. (Orange55)
- Using shift+drag or ctrl+drag to swap or copy multiple selections could fail in some cases. (NSBR)
- Changing icon frames resulted in the modify flag being set incorrectly, so closing the file would prompt to save it or abandon changes even though no changes were made. (NSBR)
- The delete command wasn't hooked up to multiple selection in the icon editor. (NSBR)
- Pasting a single frame incorrectly acted like pasting multiple frames, which resulted in bogus warnings and also incorrect pasting behavior. (NSBR)
- The global color editing dialog no longer actually changed the icon. (NSBR)
- Editing some larger-sized icons caused hangs in some cases. (Claed)
- The Export Palette menu option opened the Import tool instead. (Sabira)
Features (More Info)
Dream Maker
- The main icon list control of the icon editor has been replaced in this release. Bad flickering behavior, seen when handling icons with a large number of states, should no longer occur. With the new control, hovering over an icon will show its animation and will also cycle through directions.
Further refinements of this section are still planned, including improved undo/redo behavior which currently is still limited.
Build 512.1456
Fixes (More Info)
Dream Maker
- Clicking in the new movie control failed, because of an issue that didn't appear during testing. (Sabira)
Build 512.1455
Fixes (More Info)
Dream Maker
- In the map editor, Alt+drag now sets pixel offsets instead of step offsets when "nudge as pixels" is on. (Hinashou)
Features (More Info)
Dream Maker
- Huge changes have been made to the icon editor!
- The distinction between the pixmap editor and the movie editor has been eliminated. The two are now fused into a single editing screen for better workflow.
- Icon drawing is now using hardware acceleration for improved performance, plus transparency is way easier to see.
- The size limit for the pixmap editor has been eliminated.
- The new editor features movable splitters, which among other things can be used to enlarge the palette squares.
- A tiled editing mode has been added where you can edit your icon as seamless tiles (topdown only). See the new tile icon in the tool area, or press T.
- Multiple selection in the new movie control will apply to the shift, flip, rotate, and color replacement operations.
- ...and that rotation has been greatly improved.
- The updated movie control allows you to swap (shift+drag) or copy (ctrl+drag) frames easily.
- Changing the delay for multiple frames is a breeze: click-drag to select and click again to edit.
- The animated icon preview will no longer tend to fall behind and animate more slowly than in your games.
- Swapping foreground and background colors is doable now with a single click or by pressing X.
- Palette importing and exporting is now possible, and you can set presets.
Build 512.1454
Fixes (More Info)
Dream Daemon
- Objects that were hard-deleted did not always correctly remove themselves from vis_contents lists. (NSBR)
- In some rare cases, creation of temp files could cause a crash. (Kokutou)
Dream Maker
- Branches of the object tree didn't update properly after changes. (Laser50)
Dream Seeker
- Big icons in visual contents could disappear prematurely in some cases when given a transform and/or pixel offsets. (NSBR)
- Malformed preload_rsc URLs could cause crashes. (DamianQ)
- Client color matrices did not reset properly. (NSBR)
- The lack of micro-layering in visual contents meant that some projects had large icons not display properly when included in vis_contents. Now these use micro-layering just like regular icons. (Travylleb)
Build 512.1453
Fixes (More Info)
Dream Daemon
- Another casualty of the refactor was found: Loading an /icon datum from a file() failed intermittently. (AlcaroIsAFrick)
- Animating filters could, in some rare cases, cause a crash. (KokoroWatari)
Dream Maker
- Static vars in procs were being inherited by subtypes, which wasn't the case before. (Exxion)
Features (More Info)
Dream Maker
- Generating the object tree was slower than it needed to be. Optimizations have improved the speed significantly.
- A new -verbose flag has been added to the command-line compiler to show the new output such as "including [file]". These messages will no longer be output by default. There is no equivalent flag in the IDE version of Dream Maker yet but it may be considered for a future enhancement upon request.
Build 512.1452
Features (More Info)
Dream Maker
- Compiler speed has been greatly improved for large projects. Additionally, the compilation process outputs more info than before, especially during the parsing process when including files.
Build 512.1451
Fixes (More Info)
Dream Maker
- Path handling was incorrect in some situations on Linux. (PJB3005)
Build 512.1450
Fixes (More Info)
Dream Daemon
- Crashes could occur on some internal string operations. (Memeopolis)
Dream Seeker
- Client ticks could lock up due to a problem with the animation of text mode "movies", even when not in text mode. (Yuliy)
Build 512.1449
Fixes (More Info)
Dream Daemon
- Because reading the value of world.log returns file("") instead of a real filename, fdel(world.log) tried to delete the entire contents of the world's directory. I can see no legitimate reason to do this, and therefore fdel("") is ignored now. (Memeopolis)
Dream Seeker
- Client garbage collection could sometimes claim objects newly re-registered for a vis_contents list before said vis_contents list was actually received to protect them from recycling. (SpaceManiac)
- MouseDrag() calls didn't fire in cases where an extreme scaling transform was used, because the cursor was technically still over the same pixel of the dragged object. The logic has been changed to fire the message for any cursor move while a button is held. (Deviant Coder)
Features (More Info)
Dream Daemon
- Memory usage reporting has been improved for greater accuracy:
- The associative portions of list memory were not counted.
- The main array of values for various types (objs, mobs, etc.), although not a large contributor to memory usage, was not previously counted.
- The memory used for image lists attached to objects, mob.group, vis_contents and vis_locs, and animations is now counted.
- Appearance memory was counted inaccurately, resulting in a slightly lower value than it should. This has been fixed.(Some minor data like color matrix usage still isn't counted.)
- Filter memory is now included.
Dream Daemon & Dream Seeker
- A major refactor has been done to move away from using static variables in favor of a new shared-memory string class in many places. Please note this change may break other behaviors unexpectedly. Report any bugs encountered to the Beta Bugs forum.
Build 512.1448
Fixes (More Info)
Dream Daemon
- The locs value was incorrect in cases where an atom's step offsets had not yet been "normalized". (Nadrew)
- min(item) and max(item) returned null if the item was not a list, when they should have returned the item instead. (Super Saiyan X)
Dream Maker
- The compiler was mangling the string tree in some cases, which could result in duplicate string IDs. This could literally cause a situation where "my string" did not equal "my string" at runtime. It also meant that associative list lookups could fail, because list["item"] might not match list["item"] due to the two item strings having different IDs. (Wirewraith)
Dream Seeker
- An error in the group-handling code for client visual bounds caused slowdowns or sometimes even hangs in certain cases. (Nadrew)
- Parallel animations broke under some circumstances, especially when animating pixel offsets. (Ter13)
- Regression: Starting in 512.1443, transforms on plane masters started culling objects incorrectly. (Bravo1)
Build 512.1447
Fixes (More Info)
Dream Daemon
- An issue was discovered in the handling of the unique map cell list, in which the NONE value could be assigned incorrectly to a turf. (DamianQ)
- Movement sometimes ended too early when moving by more than step_size and using non-integer steps. (Kaiochao)
Dream Maker
- Using the new chaining dot operator, accessing list vars resulted in a compiler error. (Lummox JR)
Dream Seeker
- Client visual bounds were incorrect in some cases involving KEEP_APART and/or transforms. This caused some icons to disappear from view prematurely. (Nadrew)
- input() in list handled some characters badly. (SpaceManiac)
- Double-clicking did not initiate mouse drag logic, which in turn meant MouseMove and similar events were bypassed in some situations. (Kaiochao)
- Client pixel offsets set at compile-time didn't appear correctly. (This bug has a server component as well.) (AlcaroIsAFrick)
- Map scrolling was scaled incorrectly for Y when in the SIDE_MAP format. (Kaiochao)
- Mouse hit tests were rounding to the nearest pixel instead of staying within current pixel bounds, causing some incorrect hits in some extreme scaling cases. (Deviant Coder)
Features (More Info)
DM Language
- winset() now allows an associative list to be supplied directly instead of having to use a text string or list2params(). The list will be sent to list2params() internally.
Dream Maker
- while() and do-while() have been optimized in cases where the condition is a constant.
- The const vars in stddef.dm have been changed to #define statements.
Build 512.1446
Fixes (More Info)
Dream Maker
- Using a constant raw string as the first argument in an embedded text expression caused the entire expression to be replaced with the raw string alone. (Lummox JR)
Dream Seeker
- Visual bounds of off-map objects were calculated incorrectly in cases like using KEEP_TOGETHER and vis_contents together. This algorithm has been reworked for better accuracy and efficiency. (Nadrew)
- Transformed objects sometimes got culled from the rendering list and also had messed-up mouse bounds. (Lummox JR)
- Turfs that are on the map and added to visual contents of another object don't stick around as you move around the map. (Lummox JR)
- Maptext bounds were not set correctly in cases where a virtual KEEP_TOGETHER was applied (e.g., alpha, color matrix, or filter). (Eternal_Memories)
- Images did not sync visual contents like they do with appearances, causing glitches in some cases. There is a server component to this issue as well. (Eternal_Memories)
Build 512.1445
Fixes (More Info)
Dream Maker
- Very old bug: The continue keyword in a do-while loop skipped the condition. (SpaceManiac)
- From the primordial swamp: a reference like foo:bar, where bar is both an object var and a global var and foo is an untyped local var, was misread by the compiler as global.bar. (Multiverse7)
- #define macro arguments with a trailing slash didn't compile correctly. (Memeopolis)
Dream Seeker
- When an icon with filtered maptext was displayed, sometimes the icon displayed next was kicked into the wrong upscaling format. (Lummox JR)
- Using a color matrix on an atom with KEEP_TOGETHER or maptext, followed by a simpler atom with the same color matrix, caused incorrect results for translucent pixels. (Lummox JR)
- Color was applied incorrectly to maptext in cases where maptext did not have an explicit or implied KEEP_TOGETHER. (Baellow3)
- Regression: Maptext appeared in the wrong Y position in some complex cases. (Lummox JR)
Features (More Info)
DM Language
- Maptext now supports a new CSS property: -dm-text-outline. The syntax for this is:
-dm-text-outline: <width> <color>
Outlines will be applied before shadows, if both are used.
- Maptext and output controls now support the line-height CSS property. (Output controls currently have limited support, not allowing values below the default 1.2.) Additionally, line-height can be specified as part of the CSS font property.
Build 512.1444
Fixes (More Info)
Dream Maker
- Regression: #define macros didn't work right with some replacement expressions. (SpaceManiac)
Build 512.1443
Fixes (More Info)
Dream Maker
- Using a raw string in #define statement did not substitute the original code correctly when the macro was used. (Lummox JR)
- Using raw strings or comments in macro arguments did not compile correctly. (McBawbaggings)
Dream Seeker
- Rounding errors in the mouse hit routines (due to a point structure based on integers) caused some objects to register mouse hits just outside of their actual bounds. The internal routines have been switched to use floating point for more accuracy. (Ter13)
- Layering has been improved in SIDE_MAP and ISOMETRIC_MAP modes, and in both modes a problem was found where TOPDOWN_LAYER items were positioned incorrectly. (F0lak)
Features (More Info)
DM Language
- The step_x, step_y, and step_size vars now accept non-integer values. This only has an impact on the server end.
Dream Maker
- "Host" and "Compile and Host" options have been added to the Build menu.
- A new macro, DM_BUILD, has been added to the compiler to specify the minor build version.
Build 512.1442
Fixes (More Info)
Dream Daemon
- Calling bounds() with all numeric arguments produced incorrect results, and in some cases could even hang. (Bravo1)
- The default Exited() and Entered() handlers for turf and area weren't registering as valid for pre-512 worlds. (U_CANT_C_ME1)
Dream Seeker
- Certain pixel movements or client pixel offsets could cause area animations to reset inappropriately. (Bravo1)
Features (More Info)
DM Language
- A new skin parameter output.legacy-size, gives you control over the way the output control scales fonts. In the past, the output control always used a different metric for sizing fonts than other controls; setting this new parameter to false will make the output control behave like the others.
Build 512.1441
Fixes (More Info)
Dream Daemon
- Bump() was called with the wrong argument or not at all when movement was blocked by turf.Enter(). (Ter13)
Build 512.1440
Fixes (More Info)
Dream Daemon
- Tough pixel movement cases caused the server to enter an infinite loop. (Ter13)
Build 512.1439
Fixes (More Info)
Dream Daemon
- The previous fix to pixel-movement collisions didn't go far enough to handle some unusual cases. (Lummox JR)
Dream Seeker
- Animating filters could cause crashes in some situations. (ArmitxeX)
- Yet another hang related to images was found. (Subject217)
Build 512.1438
Fixes (More Info)
Dream Daemon
- Enter() and Entered() did not work correctly for areas in all cases. Additionally, when an area was "bumped", the argument to the non-area Bump call was not the turf in that area that actually triggered the bump. (S10Games)
Dream Seeker
- Hanging with turf-based images was still a problem, but was made easier to reproduce by sanity checks added to recent builds. The nature of this fix makes it highly unlikely the hang issue will recur in the future. (S10Games)
Features (More Info)
DM Language
- In stage 2 of the movement overhaul, the Cross/Uncross/Crossed/Uncrossed procs now are used by all atoms, not just movables.
By default, turf.Enter() will call turf.Cross() instead of checking turf density, before calling Cross() for any tile-based contents. This should allow for cleaner implementations by overriding Cross() instead of Enter().
Likewise, the default turf.Exit() will now call turf.Uncross() and then try its tile-based contents.
And of course, turf.Entered() will call turf.Crossed() by default, and likewise for Exited/Uncrossed.
Build 512.1437
Fixes (More Info)
Dream Maker
- Changes to the way the + operator optimized expressions that included constants resulted in bad code output in some cases. (SpaceManiac)
Build 512.1436
Fixes (More Info)
Dream Daemon
- A rare bug was found with pixel movement, that could cause a mover to overlap dense turfs/objects if it was stopped short by another bump. (Additionally, an error in the code for cutting movement short in the event of a bump incorrectly allowed some rare diagonal moves to go through.) The built-in Move() proc has been redesigned to address these issues and should also now avoid calling Cross(), Enter(), etc. more than once for the same object. (Ter13)
Dream Maker
- The compiler made assumptions about optimizing certain expressions such as a + (b + c) that weren't necessarily correct.
Additionally, some operators like + * | & ^ pre-celculated the constant parts of their results, but it cannot be assumed that 1 + a + 2 is the same as a + 3 because of type mixing and operator overloading. The pre-calculation done by these operators has been improved to reflect this. (GinjaNinja32)
- A very ancient syntax for filling in string literals could cause the compiler to crash in all 512 versions up to now. (Exxion)
Dream Seeker
- Turf images and vis_contents didn't always get preserved after a Z-level jump. (SpaceManiac)
Build 512.1435
Fixes (More Info)
Dream Daemon
- Accessing a static var on a datum through its vars list, instead of by name, did not read the correct value. (Cyberboss)
Dream Maker
- Including a multiline raw string with a blank line caused the syntax highlighting to reset after the blank line. (Lummox JR)
Dream Seeker
- A case of occasional heap corruption was found when moving around a map with turf vis_contents. (SpaceManiac)
- Turf images weren't reapplied properly when moving around the map. (SpaceManiac)
- Mapping of gamepad axes was done using incorrect math, resulting in a much wider dead zone and maximum extents of ±0.375. Raw values were correct. (Ter13)
- Y positioning of overlays/vis_contents for edge-relative HUD icons (e.g., BOTTOM) was incorrect. In addition, the position of edge-relative icons broke completely during animate(). (Ter13)
Build 512.1434
Fixes (More Info)
Dream Daemon
- During analysis of init procs to consolidate them, objects could be created that were sometimes not let go of properly or worse, called the soft Del() proc. Now init procs will no longer create atoms, images, or hard datums during anaylysis. (MrStonedOne)
Dream Maker
- A change to the compiler altered the way proc arguments with default values were initialized, and did so incorrectly. You will need to recompile code from previous 512 builds. (MrStonedOne)
- A new cause of proc chaining issues was found in complex expressions, but this time the fix should hold. Projects should be recompiled with this new version. (Deviant Coder)
Build 512.1433
Fixes (More Info)
Dream Maker
- Another problem with the dot-chain and conditional dot operators was revealed--actually an old problem that partially resurfaced. Projects that make use of these operators should recompile. (Deviant Coder)
Dream Seeker
- Visual contents followed the visibility rules for images, which ignore invisibility, rather than the rules for regular objects. As a result, setting invisibility for a parent would still display its visual contents instead of leaving the whole "tree" invisible. (Ter13)
Build 512.1432
Fixes (More Info)
Dream Daemon
- Init proc optimization still had a few things going wrong. (SpaceManiac)
Dream Seeker
- The turf image hang bug still clung to life after multiple rounds of fixes. The previous fixes have been sacked. Turf images are now handled in an entirely different way that should be immune to the hang issue in the future. (D4RK3 54B3R)
- Visual contents on turfs sometimes got mixed up when the map position changed. (SpaceManiac)
Build 512.1431
Fixes (More Info)
Dream Daemon
- The init proc optimization was being done simultaneously with var def optimization, but this caused problems in complex games like SS13. Now the init procs are optimized after var defs. (SpaceManiac)
Build 512.1430
Fixes (More Info)
Dream Daemon
- Vars set in init procs in a parent type were not reset properly in child types. This has been fixed by completely revamping how init procs operate, combining them so only a single init proc is ever called instead of recursing through parent types. That was already a planned optimization, but now it takes the additional step of analyzing init procs so they can be combined intelligently. (SpaceManiac)
- Several bitwise operators did not return correct results in some cases as a result of the new 24-bit twiddling change. Additionally, .dmb files compiled before version 512 will now use 16-bit twiddling as originally planned. (Hydrugen)
Dream Maker
- The nudge left keyboard shortcut was broken when not in "nudge as pixels" mode, changing step_x and pixel_x both instead of only step_x. (Arokha)
Build 512.1429
Fixes (More Info)
Dream Seeker
- A problem with the parser fix from build 1428 caused major issues with right-click menus. (SpaceManiac)
Build 512.1428
Fixes (More Info)
Dream Daemon
- The vis_contents and vis_locs lists were null for the turf with ref 0x100FFFF. This turf also did not act correctly with the parser or several parts of the interface, going way back; those issues have also been corrected. (SpaceManiac)
- The null-conditional dot and colon operators didn't work correctly with operate-and-assign operators such as += and also the ++ and -- operators. The code for these operators has been completely redesigned to avoid this problem.
NOTE: Any projects that use the null-conditional operators, or 512's new dot/colon "chaining", need to be recompiled for the new version!
Also note: When a null-conditional is used as the left side of an assignment, the right-hand side will NOT be evaluated if the null check fails. This means that a?.b = c++ will not increment c if a is null; it is treated as equivalent to if(!isnull(a)) a.b = c++. This was never explicitly stated in the reference but has been documented going forward. (Exxion)
Dream Seeker
- The drop shadow filter caused the image to shift when applying non-integer shadow offsets. (Flick)
- In isometric and side-view modes, map gliding was calculated incorrectly. (Crazah)
Features (More Info)
Dream Daemon
- An optimization has been made to reduce memory and improve object init speed by reorganizing how default vars are looked up.
Build 512.1427
Fixes (More Info)
Dream Daemon
- Datums that exactly matched did not handle the equivalence ~= and ~! operators correctly. (Kaiochao)
- Sometimes "bad filter" runtime errors, or crashes, could occur when creating filters after a reboot. (Lummox JR)
Dream Maker
- Malformed for() statements could cause a compiler crash. (Kisioj)
- An expression with side effects surrounded by parentheses produced a compiler warning, in situations where the same expression without parentheses didn't. (Ninjanomnom)
Dream Seeker
- Hovering over an empty Child control could cause a crash. (Lyntonx2)
- Animating filters in parallel caused animations to freeze and other unpredictable results. (Lummox JR)
- BOTTOM didn't work correctly for screen_loc in some cases, showing the icon in the wrong location. (Ter13)
- Setting client.pixel_w shifted the map in the wrong direction. (Lummox JR)
- Isometric rendering now separates pixel offsets from map offsets for calculating screen position, to avoid jitters. (Crazah)
- Some filter combos could cause an image to appear out of place the first time certain filters were used, which would self-correct in a future frame of the screen. (Zewaka)
- As a result of the new icon frame-sharing code, in some rare cases client-side icon operations could cause a crash. (Nadrew)
- Nonsensical status text appeared when using arrow keys to navigate the list of autocomplete choices for a command. (SpaceManiac)
Features (More Info)
DM Language
- Bitwise operations now work with 24 bits instead of 16.
- A new filter called "wave" has been added. This creates a repeating distortion wave, which can be animated; animating multiple waves can produce a nice water effect, and the shader stacks up to 10 waves in a single call for efficiency.
To use this games must be compiled in the new version and (during beta at least) must require clients to use build 1427 or higher.
Dream Seeker
- Internal change: The rendering code has been moved from Dream Seeker to byondwin.dll so it can be used by Dream Maker in the future.
Build 512.1426
Fixes (More Info)
Dream Daemon
- Including a mutable appearance in its own overlays/underlays caused a crash when trying to resolve it into an immutable appearance. (Exxion)
- The new ID array bag could cause crashes on world reboot because it wasn't being cleared properly. (MrStonedOne)
Dream Seeker
- Layering interactions with big icons screwed up in some cases like when using visual contents. (Ter13)
Build 512.1425
Fixes (More Info)
Dream Daemon
- Forgetting the "type" entry for a filter caused a crash. (Flick)
- The vars list belonging to most objects was not handled properly in json_encode(). (MrStonedOne)
- Emptying vis_locs on deletion of an object caused crashes in some cases, mostly during world shutdown. (Arokha)
Dream Daemon & Dream Seeker
- Parsing of numbers was incorrect in some cases where a similar number was available in a list of choices and a decimal point was in play.
When the parsing is for an input() in list() or argument in list() case, this is handled on the server. Therefore this fix impacts both the client and server. (Demonheroexcell)
Dream Seeker
- The see_in_dark setting was not handled properly in the previous version. (Arokha)
Features (More Info)
Dream Daemon
- Several internal structures have been changed from our old Bag class, which is a red-black tree but uses virtual functions, to a template-based version that does not use virtual functions for better performance. Additionally, ID arrays no longer have an O(N) search for a matching array but can use O(log N) instead thanks to using the new template-baed bag.
- mouse_over_pointer, mouse_drag_pointer, and mouse_drop_pointer are now /tmp vars. There doesn't seem much point in saving them.
Dream Maker
- Dream Maker will now save the last-used map zoom level with the project.
Dream Seeker
- Limited client-side profiling has been added to Dream Seeker.
Build 512.1424
Features (More Info)
Dream Seeker
- Client pre-rendering has been vastly improved, with improvements to view calculations, creating icons from objects, sorting, and more, for speed gains in high-performance games.
Build 512.1423
Fixes (More Info)
Dream Seeker
- PIXEL_SCALE wasn't applied properly in some cases when a mix of color matrix effects and filters were on the screen, and possibly in some other fringe cases. (Yut Put)
- A drop shadow filter applied to a transformed icon could push the icon out of position. (Lummox JR)
- Cursor flickering has been vastly improved. (Xerif)
Features (More Info)
Dream Maker
- Dream Maker now has a "Find Previous" option in the code editor.
Build 512.1422
Fixes (More Info)
Dream Daemon
- Several issues related to stability/security of the host ban system have been fixed. (MrStonedOne)
Features (More Info)
Dream Maker
- The Find box used in the code and map editors has been changed to use the non-modal Find/Replace box instead, but with replacement options hidden when using find only. Because the Find/Replace box is non-modal, this is easier to work with.
Build 512.1421
Fixes (More Info)
Dream Daemon
- A minor fix to html_encode() behavior for non-strings also rather badly broke it, producing incorrect results. (SpaceManiac)
Features (More Info)
Dream Daemon
- A previously hidden feature that provided a status report to Dream Seeker via the browser showed info about connections, world running time, and any sleeping procs. This info is too useful, so an option has been added to Dream Daemon to access it via a new option in the World menu, which will print results in the output window. A similar shortcut option, not using the browser control either, will be added to Dream Seeker in a future build.
Dream Seeker
- A new "drag" parameter has been added to mouse parameters when up/down info is generated by pressing a button other than the one used for dragging. The value of the parameter is the name of the mouse button being held down for the drag.
Build 512.1420
Fixes (More Info)
Dream Daemon
- url_encode() was not properly removing internal macros like \a. (Naksuasdf)
Dream Seeker
- Visual contents of turfs weren't properly preserved in some cases on the client, resulting in cases where the visual contents no longer showed up after changing Z levels. (Deathride58)
Build 512.1419
Fixes (More Info)
Dream Maker
- #define overrides stopped working correctly. (MrStonedOne)
- Some error messages still did not output full path names for their files when using the -full_paths option. (Murrawhip)
Features (More Info)
Dream Maker
- Because changing icon files does not trigger the compiler to ask if you want to compile again when using the Run command, a new "Compile and Run" option has been added that will always compile first. Additionally, this option and Clean Compile now have keyboard shortcuts.
Build 512.1418
Fixes (More Info)
Dream Daemon
- Server-side icon operations did not complete correctly, resulting in icons not appearing. (Lummox JR)
Features (More Info)
Dream Maker
- The parser tried to match words to #define macros using a linear search of all macros, which could be slow for large projects. Macros are now handled via a binary search.
Build 512.1417
Fixes (More Info)
Dream Daemon
- An obscure feature in the parser, allowing a potential argument to be validated by passing it to a proc, was broken way back in version 306. (AlexandraErin)
Dream Seeker
- The parser stumbled on verbs that started with the same word. (SpaceManiac)
- Client-side icon operations could cause crashes under rare circumstances. (Arokha)
- Command expansion with multiple arguments broke after the recent change that fixed expansion with one argument. (AlexandraErin)
- Images that didn't explicitly override dir did not inherit their parent object's dir. (Hydrugen)
Features (More Info)
Dream Maker
- dm.exe now has a -full_paths option to output the full path of any file that has an error or warning, rather than the relative path.
Build 512.1416
Fixes (More Info)
Dream Daemon
- Argument filter procs making use of the "expanding" var didn't receive the correct value for the expanding flag when first called. (AlexandraErin)
Dream Maker
- A few more issues persisted in the icon editor, from the earlier icon change. (Verkister)
Dream Seeker
- If the only change on the map was to an icon's NO_CLIENT_COLOR flag, the map didn't redraw. (SpaceManiac)
- A layering issue appeared in projects using SIDE_MAP when mobs had multiple layers and did not conform to world.icon_size. This may have repercussions for other SIDE_MAP games. Eventually a topological sort will be desired to properly handle all layering issues. (S10Games)
- The choice popup for the input control didn't respond correctly in cases where the input had a built-in command. (AlexandraErin)
Build 512.1415
Fixes (More Info)
Dream Maker
- Several drawing tools in the icon editor were broken as a result of the internal icon format change. (Pixeluptas)
Build 512.1414
Fixes (More Info)
Dream Daemon
- Worlds with very large maps with high "repop" counts (movables that can reset with world.Repop()) failed to load properly. (Yut Put)
Dream Maker
- The delete key didn't work in the file path or obj tree search text boxes. (DamianQ)
Dream Seeker
- In some rare cases where KEEP_TOGETHER groups are nested, an inner group could include a copy of an icon that didn't belong there. (NSBR)
- When a mouse hit was detected on an overlay, it didn't always have the correct icon-x/icon-y parameters relative to the parent icon. (Arokha)
- Image layers got messed up by the previous fix to RESET_TRANSFORM, but only in certain cases. (Yut Put)
- Image flicks sometimes showed up on areas instead if the images weren't in view of the player. (Yut Put)
Features (More Info)
Dream Seeker
- Dream Seeker will now let go of redundant copies of the same image within a single icon. For some games this may save considerable memory. It does not yet handle copies of the same image across multiple icons, although that may be a future improvement.
Build 512.1413
Fixes (More Info)
Dream Daemon
- Attempting to animate a bogus object, or an abstract filter() not attached to an object, did not result in a runtime error. It could however result in a crash in some cases. (Dajinomight)
Dream Seeker
- Images with RESET_TRANSFORM could cause crashes in some cases, and likely led to other weird behavior. (Yut Put)
Features (More Info)
Dream Maker
- Libraries compiled in debug mode are no longer able to force the main project to also use debug mode. In brief, #define DEBUG is internally wrapped in an #ifdef __MAIN__ ... #endif construct.
Dream Seeker
- Independent background color for portions of text is now supported in maptext and in output controls.
Build 512.1412
Fixes (More Info)
Dream Daemon
- Mutable appearances did not handle certain list read conditions properly, resulting in bad refs. (Arokha)
- The internal value used to store the last src for animate() is cleared after a batch of procs is finished, and also during del() for objs, mobs, areas, and images. Previously this reference could cause a movable atom to stick around much longer than intended. (Lige)
Dream Seeker
- Cursors were not spared from client-side garbage collection, resulting in potential crashes and misbehavior. (Yut Put)
- When a HUD object has multiple icons that aren't grouped together, their positions could be incorrect when using screen-edge coordinates such as LEFT, BOTTOM, etc. (Ter13)
Build 512.1411
Fixes (More Info)
Dream Daemon
- Certain operations with vis_locs, such as reading its length, did not work correctly. (Reformist)
- Changing visual contents for a screen object did not necessarily cause them to visually update immediately. (Reformist)
Dream Seeker
- FLOAT_LAYER was often not resolved properly in cases involving screen objects. Also, the routine used to resolve float layers didn't handle layer 0 correctly. (Ter13)
- Another cause of image-related hanging was found, this time related to images on turfs from different Z levels. (FKI)
Build 512.1410
Fixes (More Info)
Dream Seeker
- One more cause of turf image corruption and hangs was discovered. This ought to be the last of them. (MrStonedOne)
Build 512.1409
Fixes (More Info)
Dream Seeker
- Images were not being shown in many cases where the object they belonged to was out of view and not known to the client at the time the image was sent. (Laser50)
Build 512.1408
Fixes (More Info)
Dream Seeker
- Image hanging got worse in some cases and disappeared in others. The cause was certain image data not being cleared correctly due to calling the wrong function. (MrStonedOne)
Build 512.1407
Fixes (More Info)
Dream Seeker
- Yet another cause of image hanging was identified. (Inutaishos)
Build 512.1406
Fixes (More Info)
Dream Daemon
- More regular expression trouble was resulting in a crash for certain kinds of expressions. (MrStonedOne)
Build 512.1405
Fixes (More Info)
Dream Daemon
- A fix to some regular expressions both didn't go far enough and also broke others. (SpaceManiac)
Dream Maker
- Lack of sanity checking in some map handling routines caused the compiler to crash in some rare cases. (Pseudonym)
Dream Seeker
- Another cause for hanging and display problems with turf images was found. (FKI)
Build 512.1404
Fixes (More Info)
Dream Daemon
- Regular expressions failed to handle non-capturing groups correctly in some cases. (Ter13)
Dream Seeker
- FLOAT_PLANE didn't work correctly in multiply-nested cases. (Ter13)
- Client hanging could occur in some cases involving images on turfs. (SpaceManiac)
- Fixing the translation issue with plane masters unintentionally broke other plane transforms such as scaling. Both have been corrected. (IainPeregrine)
Build 512.1403
Fixes (More Info)
Dream Daemon
- Changing an atom's appearance just before a flick() and immediately changing it back resulted in the appearance getting stuck in the altered form, even after the flick ended, until a future update. (Avainer1)
Dream Seeker
- Images could cause hanging in rare cases. (MrStonedOne)
- Plane masters with vertical translations had both the planes and the objects within them drawn in the wrong position. (Flick)
Build 512.1402
Fixes (More Info)
Dream Daemon
- num2text() limited its precision to 20 digits, but floating point is capable of handling more in some cases so the limit has been increased to 100. (Popisfizzy)
- Two specific runtime errors, "bad arg name" and "positional parameters must precede all named args", caused all further proc calls to crash. This is the bug that was being sought out when the proc queue was reverted to its old form, so the proc queue has also been returned to the newer binary insertion form. (MrStonedOne)
Dream Seeker
- Big icons were disappearing when too far out of view if they weren't transformed. (Avainer1)
Build 512.1401
Fixes (More Info)
Dream Seeker
- An earlier change to the way turfs in visual contents are offset has been reverted. They have gone back to using pixel offsets instead of transforms. The reason for this is that in isometric mode, pixel offsets are required to change the logical coordinates used for determining drawing order. (Lummox JR)
Features (More Info)
Dream Daemon
- In response to soft-hanging issues affecting SS13 servers since 512.1396, most likely related to the new binary insertion proc queue introduced in 512.1396, the queue has been reverted to its old form so the issue can be narrowed down.
Build 512.1400
Fixes (More Info)
Dream Daemon
- The |= and ^= operators did not handle null correctly, so an existing numeric value would be cleared when ORed or XORed with null when instead they should have been left alone. (Ninjanomnom)
Dream Seeker
- Certain operations like grabbing drag/drop pointers could result in a crash. (Nadrew)
- When the map was cleared in certain cases, like an eye moving to nowhere, some info on the client did not reset resulting in phantom objects and in some cases unnecessary glides from the old position. (Mystery16)
Build 512.1399
Fixes (More Info)
Dream Daemon
- Multiple reboots caused crashing. (MrStonedOne)
- del(image) did not call the image's Del() proc. (FKI)
- Overloading the ** operator did not work correctly. (Popisfizzy)
- Overloading the % operator did not work correctly. (Popisfizzy)
Dream Seeker
- Plane master transforms could cause the Y drawing position to be incorrect in some cases. (Crazah)
Features (More Info)
Dream Maker
- A new option has been added to the command-line compiler to change and/or remove the error cap.
Build 512.1398
Fixes (More Info)
Dream Daemon
- Logout() was not called when a mob's key change caused a client to disconnect. (MrStonedOne)
Dream Seeker
- Filters that created "overflow" effects like blurs and drop shadows were not taken into account when figuring out bounds, thus causing the objects to appear or disappear prematurely once their unfiltered bounds were out of view. (Lummox JR)
Features (More Info)
Dream Seeker
- Multiple routines related to map assembly (pre-drawing) have been optimized to remove redundancies and in some cases obsolete calls. This should improve client performance across the board.
- Objects drawn within transformed plane masters obeyed the original map bounds rather than taking the plane transform into account, which resulted in unwanted clipping. The plane transformation is now obeyed, which allows for more effects.
Build 512.1397
Fixes (More Info)
Dream Maker
- A change to the compilation of various arithmetic operators turned out to be broken, so it has been reverted. (MrStonedOne)
Build 512.1396
Fixes (More Info)
Dream Daemon
- The world.vars and global.vars lists did not behave like proper lists. (MrStonedOne)
- Images with pixel offsets did not apply those offsets when determining visual bounds. (Lummox JR)
- Setting a movable's bounds so that they overhung the edge of the map would allow movement beyond the map. (Mystery16)
- Many hard-coded procs such as Move() did not handle arglist calls gracefully. This has been rectified for movement-related procs but still needs changing for some other built-in object procs. (FKI)
Dream Seeker
- Prompts for missing verb arguments could cause problems with macros, especially the Any and Any+UP macros. These macros, and any macros fired when "unsticking" keys, will no longer prompt for missing arguments but will simply fail silently in those cases. (Ninjanomnom)
- When the server told the client that turfs with visual contents were no longer needed, the client misinterpreted the message, causing visual glitches. (Tigercat2000)
Features (More Info)
Dream Daemon
- The proc scheduler has been updated to improve response times for various cases arising in complex games. Also, a number of experimental changes have been made under the hood to improve server performance.
Build 512.1395
Fixes (More Info)
Dream Seeker
- Image flicks were based on the old appearance when an updated appearance was pending. (FKI)
- Some values of motion blur still caused crashes. (FKI)
Features (More Info)
Dream Seeker
- Maptext now supports a limited version of the CSS text-shadow property. The limit is that only one shadow is currently allowed.
Build 512.1394
Fixes (More Info)
Dream Daemon & Dream Seeker
- Visual contents did not update properly for screen objects. (CipherWing)
Dream Maker
- Compiled code for the new "chaining" dot operator, and the conditional dot operators, behaved incorrectly in some complex cases. To alleviate this problem, they now compile with new instructions. Please note: Projects compiled from this version of 512 forward that use any of these operators won't work properly in earlier 512 versions; likewise conditional dot operators compiled in earlier 512 versions will not work correctly in the new version. It is important to recompile any 512-specific code you are using to host in the 512 beta. (Mightymo)
Dream Seeker
- Large values for the motion blur filter could result in hanging because of an error in the way the engine tried to break the blur down into multiple passes. (FKI)
- The outline filter had unwanted clamping behavior. This has been eliminated by a refactor, which also speeds up processing of large outlines. (FKI)
Build 512.1393
Fixes (More Info)
Dream Maker
- Double-clicking on an object tree node defined in another project could cause crashes in some situations. (Ter13)
Dream Seeker
- Turfs with other turfs in their vis_contents could sometimes get confused about where their "minimum" turf was, resulting in incorrectly applied transforms that drew objects in the wrong position. (Ter13)
- Screen-edge HUD positioning caused position problems with maptext and KEEP_TOGETHER cases. (Flick)
- Trailing whitespace in JSON caused bad output from json_decode(). (Ninjanomnom)
- Images on turfs didn't update their appearances right away in many cases. (Ter13)
Webclient
- The parser didn't take screen objects into account when handling "in world" verb arguments. (Lummox JR)
Build 512.1392
Fixes (More Info)
Dream Daemon
- Regression: Fixing operator overloads for datum-derived types like obj, etc. broke it for regular datums. (Bandock)
Dream Seeker
- Images used the filters of their parent atoms instead of their own. (Reformist)
Build 512.1391
Fixes (More Info)
Dream Daemon
- Several operators were broken as a result of recent overload changes. (Repo82)
Build 512.1390
Fixes (More Info)
DM Language
- Operator overloads didn't apply to datum-derived types like obj, mob, etc. In addition, output and input can be overridden now. (Kozuma3)
Dream Maker
- The map editor's new code for preserving symbols didn't function correctly in some cases, mangling maps during save. (Repo82)
Dream Seeker
- Some situations involving changes to client.screen and/or client.view could cause objects to appear to shift. (MrStonedOne)
- Visual contents were not taken into account by the client-side garbage collector, resulting in premature deletion. (StarKid29)
- When vis_contents contained turfs, sometimes the wrong turf was displayed. (Repo82)
- Internal blanking of the main turf map did not correctly clear some values related to vis_contents, causing a crash or partial hang in some cases. (Repo82)
- Multiple turfs in visual_contents now handle their offsets as transforms rather than pixel offsets, which is cleaner. (Monster860)
Build 512.1389
Fixes (More Info)
Dream Daemon
- Visual bounds were not set correctly for movables in some cases. (Marekssj3)
Dream Maker
- The operator keyword conflicted with older code such as the AbyssDragon.SET library. The word should once again be usable as a var name or path component. (Mista-mage123)
- Some changes to the map could cause a crash on save or compile. (Exentriks Gaming)
Dream Seeker
- Animating a stack of filters sometimes caused a crash. (Inutaishos)
- Overlay dirs were not handled properly in certain cases. (PJB3005)
Build 512.1388
Fixes (More Info)
Dream Daemon
- vis_contents and vis_locs appeared twice in turf.vars. (Anturke)
- Using the += operator on a filters list failed in multiple cases. (Kozuma3)
- Reading/writing invalid filter vars could cause a crash. Additionally, the len property of the filters list was not accessible and caused the same crash. (Kumorii)
Dream Maker
- The map reader choked on some complex maps due to a flaw in the new symbol-preserving code. (Anturke)
- Syntax highlighting didn't properly "close" raw strings. This only affected highlighting, not compilation. (Kozuma3)
Dream Seeker
- RESET_TRANSFORM could cause crashes in certain cases. This bug is not new to version 512 but it did manifest differently. (Lummox JR)
- New screen_loc parsing handled NORTH incorrectly. (Exentriks Gaming)
Build 512.1387
Fixes (More Info)
Dream Daemon
- The output operator's overload handling acted on the wrong operand, causing output of sound datums to fail. (Inutaishos)
- Filters did not work correctly and could cause a crash in some cases. (Kozuma3)
Build 512.1386
Fixes (More Info)
Dream Daemon
- Look-behind assertions in regular expressions could cause a crash in some cases. (Nopm)
- Calling oview() from a null location included the reference object. (Ter13)
Dream Maker
- Chaining complex assignments like a = b[x++] = c now works correctly, by compiling code that avoids reusing the middle expression. (Lummox JR)
- The compiler allowed .. to be used as if it were a var, creating malformed code. (Lohikar)
- The map editor will no longer assign tag values to generated dir or icon_state instances. Nobody liked them. (Ter13)
- Using a default proc argument value such as arg=src.var sometimes caused strange error messages, such as "cannot read null.var". (Nickr5, Keeth, JBoer)
Features (More Info)
DM Language
- Support for post-processing graphical filters has been added. Currently the filters supported are blur, motion_blur, outline, and drop_shadow. Appearances can have a list of these filters to chain them together.
- Two new operators, ~= and ~!, have been added, which handle equivalence. Whereas == and != say if a value is identical to something else (with some rare exceptions, like 0 and -0), the equivalence operators can be used to ask if they're the same in terms of value even if they're not the same object.
- The behavior of the \ref macro has been changed to not use the object's tag if it has one. Although the tag is more stable, most games that make use of \ref found this behavior inconvenient, and there was no workaround to get a numeric reference. This change will not affect worlds compiled before 512.
- Two new operators, ?. and ?:, have been added. These are null-conditional operators. When reading a?.b, the result will be null and will not crash the proc if a is null. When writing to a?.b, the write will simply not happen if a is null.
- New screen_loc values are now supported. LEFT, TOP, RIGHT, and BOTTOM will align HUD objects to the map control or letterbox edges (whichever is closer). Position offsets can also now be supplied as decimals or as percentages. See screen_loc in the reference for more information on these new coordinates.
- Most atoms, and images, now support a concept called visual contents. Other atoms can be placed in a visual contents list, which means they will be drawn (after images) as if they're attached to their visual locs. This can be used for various special effects and for easing HUD development.
- DM now supports a raw string format, starting with the @ character. There are three formats: @"..." which cannot include newlines, @{"..."} which can, and @(XYZ)...XYZ (where XYZ can be almost anything) which is the same. Raw strings will not parse backslash escapes, or embedded [] expressions. These are very useful for creating regular expressions.
- Strings are now compatible with the [] list index operator for read-only operation. (This is not currently documented.) Negative and zero index values, while usable in other procs, cannot currently apply here; the index must be from 1 to the string's length.
- Proc calls and list reads can now be used in conjunction with the . or : operators. Since procs do not have such a thing as a return types and there is no such thing as a typed list, . and : behave identically in these cases.
- A byond_build var has been added for world and client. The world.byond_build var provides the build number for the server. This var is 0 if an older client is connected, since that information is not available.
- Operator overloading is now possible for most, but not all, operators.
- world.vars and global.vars lists have been added.
Dream Maker
- The map editor will now avoid re-"numbering" map symbols, to avoid making too many changes that would impact a content revision system. It is recommended that you back up your map files before using this new version, just for added safety since the loading and saving behavior has not been touched in a long time prior to this.
511 Release Notes | View All