{"push_id":4369304572,"size":155,"distinct_size":155,"ref":"refs/heads/master","head":"7af84ae0ac62b046decde49329ce5ed241f4a8bf","before":"e29c8f235819f37de9bcaac210d7de67c75c1ce5","commits":[{"sha":"ca9b790695f0bee32fb71c69a11dacf3b665df05","author":{"name":"advil","email":"6e849fb695fa224780b1e434093c472eb01a081e@gmail.com"},"message":"Clean up some heavy-handed artefact code\n\nAny time you checked an artefact property, the old code made an entire\ncopy of the CrawlHashTables for both the artefact props and its known\nstate. Because artefact properties are checked frequently when monsters\nare carrying them (mostly in case they have flight), this could lead to\nheavy world_reacts on some levels, e.g. Vaults 5. This was particularly\nnoticeable with step from time on a debug build.","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/ca9b790695f0bee32fb71c69a11dacf3b665df05"},{"sha":"94313f71df4b4792b899a44b858a16a250ab68ab","author":{"name":"advil","email":"6e849fb695fa224780b1e434093c472eb01a081e@gmail.com"},"message":"Refactor habitability checks around monster flight\n\nThe airborne() call is quite heavy, given how many varied things it must\ncheck. This commit refactors habitability checks to only ever check\nairborne() if all other tests have failed, and if the terrain is\nactually one that would be saved by flight.","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/94313f71df4b4792b899a44b858a16a250ab68ab"},{"sha":"514c71c9f14b3275e8342042a4ef37f9b996f77e","author":{"name":"advil","email":"6e849fb695fa224780b1e434093c472eb01a081e@gmail.com"},"message":"Fix a wizmode / test crash on randbooks","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/514c71c9f14b3275e8342042a4ef37f9b996f77e"},{"sha":"53d2a09ee027fc6ac1441d28e56d93f5809d24fa","author":{"name":"advil","email":"6e849fb695fa224780b1e434093c472eb01a081e@gmail.com"},"message":"Remove clinging\n\nThis is a long-time spoilery corner of dcss monster behavior, and has\nbeen under consideration for removal for years (more or less since\nplayer clinging went). Clinging monsters had weird/unique pathfinding\nbehavior with a bunch of hidden special cases that weren't ever\nwell-communicated (or communicatable) to the player, for example a +4\nsearch radius for players out of los.  The special cases were also kind\nof error-prone, as in the 0.23 bug with clinging monsters behind glass\nwalls. This commit removes clinging without replacement.\n\nIf this is somehow a nerf to spiders, I would just make them able to\nunconditionally cross water. (But I sort of doubt it'll make a\ndifference.)","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/53d2a09ee027fc6ac1441d28e56d93f5809d24fa"},{"sha":"b95ba5eb33dfa013be49267dc0b5d51745c2eca9","author":{"name":"Aidan Holm","email":"3a5bb21ff278db5857a95120bad194447f1274a4@gmail.com"},"message":"Unbrace\n\n[skip ci]","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/b95ba5eb33dfa013be49267dc0b5d51745c2eca9"},{"sha":"a07cd79442eabd825ef869bfa74d8f2a85a7c312","author":{"name":"advil","email":"6e849fb695fa224780b1e434093c472eb01a081e@gmail.com"},"message":"Disable some debugging code even in FULLDEBUG\n\nThis might be useful if this cache ever stops working, but right now\nit's just slowing down FULLDEBUG builds for no good reason.","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/a07cd79442eabd825ef869bfa74d8f2a85a7c312"},{"sha":"166592d65c21614684b86ca9484fb135f3dd0f45","author":{"name":"advil","email":"6e849fb695fa224780b1e434093c472eb01a081e@gmail.com"},"message":"Various refactoring to make expensive calls less likely\n\nThis is all in code paths that are involved in monster movement, so code\nthat is called very frequently. Calls that check enchantments in\nparticular seem to be disproportionately bad.","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/166592d65c21614684b86ca9484fb135f3dd0f45"},{"sha":"eeaa2dc6835b9c2d899a8896209ccbf754ac75fd","author":{"name":"Aidan Holm","email":"3a5bb21ff278db5857a95120bad194447f1274a4@gmail.com"},"message":"Clean up ui.cc and ui.h","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/eeaa2dc6835b9c2d899a8896209ccbf754ac75fd"},{"sha":"8dd68223145be564f3ce92c52fe6d7a1868a2c1d","author":{"name":"Aidan Holm","email":"3a5bb21ff278db5857a95120bad194447f1274a4@gmail.com"},"message":"Make box alignment members protected\n\nThis is necessary since changing box alignment should force a\nrecalculation of the box's size. This was never an issue because noone\nwas changing box alignments after showing the box, but it's better to\nhave proper encapsulation.","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/8dd68223145be564f3ce92c52fe6d7a1868a2c1d"},{"sha":"87cb31babd3cdada52313f8dbeb2c968b880096c","author":{"name":"Aidan Holm","email":"3a5bb21ff278db5857a95120bad194447f1274a4@gmail.com"},"message":"Extract UI debug drawing code\n\nThis is purely a method extraction and shouldn't have any functionality\nchanges.","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/87cb31babd3cdada52313f8dbeb2c968b880096c"},{"sha":"f485fd5ed05ab4e97859faad62a503df372877c5","author":{"name":"Aidan Holm","email":"3a5bb21ff278db5857a95120bad194447f1274a4@gmail.com"},"message":"Refactor widget hover path handling\n\nThis commit moves the hover path inside the UIRoot struct, which avoids\nthe undefined destruction order of statically-allocated instances. I'm\nnot sure that this was ever an issue in practice, but UB is UB, and in\nany case the code is cleaner now.\n\nThis also fixes an issue when setting a widget's parent did not update\nthe hover path. Now, the hover path is truncated if the widget has no\nparent, and recalculated afresh (delivering mousein/out events) if it is\npart of the top layout.\n\nFinally, this commit renames prev_hover_path to hover_path, which makes\nmuch of the code using it easier to read.","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/f485fd5ed05ab4e97859faad62a503df372877c5"},{"sha":"66650a8186066d2a30ae5780ec2bacc2d68c9076","author":{"name":"Aidan Holm","email":"3a5bb21ff278db5857a95120bad194447f1274a4@gmail.com"},"message":"Rename MouseEvent -> wm_mouse_event\n\nPartially for consistency with the other wm_event types, but also\nbecause I want to use MouseEvent as a derived type of a new ui-layer\nspecific Event class, without having to worry about changing all the\ncruft left over in tilereg-*","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/66650a8186066d2a30ae5780ec2bacc2d68c9076"},{"sha":"fe7bffbe7c1604ddcfcd931e99c0c8208fc9c33b","author":{"name":"Aidan Holm","email":"3a5bb21ff278db5857a95120bad194447f1274a4@gmail.com"},"message":"Add improved console cursor positioning API\n\nWidgets may wish to show the console cursor at a particular position,\ne.g. a focused text entry widget should indicate the current cursor\nposition. However, the cursor position is also changed while rendering\nwidgets in general, and widgets have no control over the order in which\nthey are rendered, by design.\n\nThis API allows a widget to explicitly request, for one render cycle,\nthat the on-screen cursor be positioned in a given position. The UI\nframework will then move the cursor to that position after rendering,\njust before the screen is updated.","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/fe7bffbe7c1604ddcfcd931e99c0c8208fc9c33b"},{"sha":"ab78da221fa1b9451d5ca4ac54dbd13a930acf34","author":{"name":"Aidan Holm","email":"3a5bb21ff278db5857a95120bad194447f1274a4@gmail.com"},"message":"Add checkbox widget\n\nThis adds a rudimentary checkbox widget. Currently, hovered checkboxes\nand checkboxes with input focus are visually indistinguishable.","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/ab78da221fa1b9451d5ca4ac54dbd13a930acf34"},{"sha":"5d773dd3d052f2bc08b082897ba04df49c1af4b6","author":{"name":"Aidan Holm","email":"3a5bb21ff278db5857a95120bad194447f1274a4@gmail.com"},"message":"Add text entry widget\n\nThis commit adds a rudimentary textbox widget. It is single-line only,\nand does not support text selection or, indeed, most of the niceties of\nregular OS/toolkit-provided textboxes. That can come later.\n\nThis widget has an inner LineReader class, which is a gutted version of\nthe line_reader class, permitting independent modification. line_reader,\nmeanwhile, will hopefully eventually be removed as more and more UI\nlayouts are widgified.","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/5d773dd3d052f2bc08b082897ba04df49c1af4b6"},{"sha":"50eff3ad4f5e4f6737a577a63fea86ae2ad86e9f","author":{"name":"Aidan Holm","email":"3a5bb21ff278db5857a95120bad194447f1274a4@gmail.com"},"message":"Add hotkey event handling support\n\nThe purpose of this hotkey handling API is to be more explicit about the\npurpose of individual event handlers, replacing the add_event_filter()\nAPI. Hotkey handlers are only called for keydown events, before all\nother handlers get a chance to run.\n\nNote: hotkey handlers get called for *all* keydown events, due to the\nlarge number of handlers that have switch statements.","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/50eff3ad4f5e4f6737a577a63fea86ae2ad86e9f"},{"sha":"74dbbd1b814af887991b7ec45d9a6617290de827","author":{"name":"Aidan Holm","email":"3a5bb21ff278db5857a95120bad194447f1274a4@gmail.com"},"message":"Use new hotkey API","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/74dbbd1b814af887991b7ec45d9a6617290de827"},{"sha":"c74a01a412d251ce939c627290dfa96d0ea3f5b7","author":{"name":"Aidan Holm","email":"3a5bb21ff278db5857a95120bad194447f1274a4@gmail.com"},"message":"Remove Layout::add_event_filter() API","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/c74a01a412d251ce939c627290dfa96d0ea3f5b7"},{"sha":"383bcb09255ea9126ae4c84041fab406ed0a1fe1","author":{"name":"Aidan Holm","email":"3a5bb21ff278db5857a95120bad194447f1274a4@gmail.com"},"message":"Improve Widget::for_each_child() helper\n\nPreviously, it only worked on containers, so if you only had a Widget*\nyou had to use a dynamic_pointer_cast and an if statement: ugly. Now\nregular non-container widgets just do nothing by default. It's also been\ngiven a clearer name.","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/383bcb09255ea9126ae4c84041fab406ed0a1fe1"},{"sha":"37c931e5a9199ec5fd557ec42d052aca8941ee18","author":{"name":"Aidan Holm","email":"3a5bb21ff278db5857a95120bad194447f1274a4@gmail.com"},"message":"Add widget internal child tracking\n\nIt's not uncommon for non-container widgets to have internal children as\nan implementation detail, invisible to the code using the non-container\nwidget. This new API requires such internal children to be explicitly\nmarked as such, allowing the UI system to enumerate them.\n\nfor_each_internal_child() iterates over internal children, and the\nsomewhat verbose for_each_child_including_internal() iterates first over\ninternal widgets, and then over all children. These new APIs are added\nbecause widget users will not expect to see internal non-child widgets\nthey did not add when iterating over a widget.","distinct":true,"url":"https://api.github.com/repos/sosga/dungeon-crawl-stone-soup/commits/37c931e5a9199ec5fd557ec42d052aca8941ee18"}]}
{"actor":{"display_login":"sunfall"}}