233 Fix cryptic level 0 Lua error built-in elements sometimes produce 233 Added chemically strengthening GLAS (#837) 233 Restrict version to 97.0 in saves with reinforced glass 233 Element scroll bar Improvement 233 Free array we get from CommandLineToArgvW 233 New ghactions reltype to ease tpt-libs development 233 Update tpt-libs, use SDL2main the way it's meant to be 233 Fix find mode not highlighting WARP particles 233 Update tpt-libs, add support for android 233 Remove unnecessary .life change from PSNS 233 No changelog given for this version 233 No changelog given for this version 233 No changelog given for this version 233 No changelog given for this version 234 Fix starcatcher-publish step so it actually uploads apks now 234 No changelog given for this version 235 New WTRV + BCOL -> OIL reaction in presence of PTNM 235 Remove inaccuracy in OIL's description 235 Make PHOT change its wavelength upon colliding with charged LITH (#841) 235 Use date in screenshot filenames to ensure each screenshot's filename is unique 235 Let NEUT pass through BGLA 235 Fix a missing #include 235 Fix LITH conducting through INSL 235 No changelog given for this version 236 Fix, Deprecate, Remove, and Replace tpt.element_func / tpt.graphics_func 236 Mark saves with GLAS/QRTZ/TUNG as 97.0-only 236 Fix handling of malformed scale: and proxy: arguments 236 Add sim.partExists and elem.exists 236 Add real v parameter to sim.partCreate 236 Fix PIPE graphics hack giving Lua graphics functions bad particle IDs 236 Fix exception when passing nil to some functions in interface api, fixes #849 237 Add custom gravity mode and replace hardcoded gravity interactions (#820) 237 Fix non-future-proof android NDK path resolution 237 Expose SDL keycodes and scancodes to Lua 237 Don't expose KMOD_SCROLL, apparently it's too new 237 Add PowderCoin icon to font 237 Alias dcolor, pavg0, pavg1 to dcolour, tmp3, tmp4 237 Expose SDL button codes to Lua 237 Make QRTZ slightly change color while growing (#852) 237 Tidy up some conditionals in simulation code. (#854) 238 Return HTTP response headers to Lua 238 Fix 8-bit-uncleanliness of most of the Lua API 238 Clean up DirectionSelector and surrounding code 238 Crop stamp thumbnails that don't fit even when resized 238 Remove dependency on dirent.h on windows 238 Fix invalid stamps names being accepted 238 Update tpt-libs 238 Enable By date button when viewing Favorites 238 Use std::vector consistently for file operations 238 Clean up Client::DoInstallation 238 Fix starcatcher uploads 239 Fix new workflow not creating releases in some cases 239 Fix release assets failing to upload 239 Display link command line when building for windows 240 Fix crash when trying to load a stamp that doesn't exist 241 Fix workflow sometimes releasing debug builds 241 Add CAFile and CAPath config options, use mbedtls in static builds 241 Add notification for missing or bad SSL certificates 241 Make stickman movement strength independent of gravity (#857) 242 Fix a very elusive PHOT reflection crash 242 More Lua API 8-bit-cleanliness changes 242 Add http.getAuthToken 242 Move Read/WriteFile from Client to Platform 242 Move tricky compiler options over to build.sh 242 Fix OOB read when parsing empty string as float 242 Fix uninitialized stickmen 242 Fix BSON.h rolling its own 64-bit integer types 242 Remove long defunct OpenGL code paths 242 Add clip rect feature to Graphics and gfx.setClipRect 243 Fix ghactions mingw-on-linux builds 243 Fix empty string being discarded at beginning of lua log/return lists 243 Use GITHUB_OUTPUT env var for setting job output 243 Unbundle bzip2 and jsoncpp, update tpt-libs 243 Fix font not being given the json dependency 243 Build x86_64 AppImage 243 Remove all PTI code, use libpng to load avatars and thumbnails 243 Disable update checks for AppImages 243 Get png avatars from the static server 243 Fix string handling in text drawing / width functions 243 Target v141 toolset with msvc, update tpt-libs 243 Fix starcatcher uploads 243 Fix starcatcher uploads for real 244 Fix text in some buttons being cut off prematurely 244 Add verb parameter to http.get/post 244 Explicitly specify appimage destination 245 Fix snapshots being configured with ignore_updates=true 246 Update tpt-libs 247 Update tpt-libs 248 Remove GameSave::Collapse and GameSave::originalData 248 Clean up GameSave somewhat 248 Fix PHOT reflecting off thin walls of particles incorrectly 248 Replace max/min pressure with constants (#870) 248 Make file browser respond to search query changes while loading files (#866) 248 Add inverted element filtering to CONV with tmp2 set to 1 (#871) 248 Expose BZ2 to Lua 248 Silence unused variable warnings for fromNewerVersion 248 Make workaround_elusive_bzip2 default to true 248 Restrict tmp2 != 0 CONV to 97.0 248 Fix PSv parsing 249 Fix local browser handling large amounts saves badly 250 Fix nullptr deref in SaveButtons without an associated SaveFile 251 Clean up the feature line a bit 251 Let mods customize app constants 251 Fix the zoom window producing out of bounds coordinates 251 Keep thumbnails of SaveButtons with lazily loaded SaveFiles 251 Unify icons 251 Fix local browser offering to open broken saves 251 Stop setting window icons on windows 251 Bring back mod_id.txt 251 Ignore mod_id.txt if the mod ID is set in meson_options.txt 251 Fix document icons on windows 251 Use bitmap in FloodParts to prevent infinite loops in unusual situations, fixes #882 251 Block solids from being created in detect wall in IsWallBlocking instead, fixes #881 251 Add evt.beforesim and evt.aftersim for running code only when simulation advances 251 Fix compilation with LUACONSOLE turned off 251 Do macos packaging on ghactions 251 FIRE.cpp: minor improvements on readibility (#872) 251 Remove pmap hack in BOMB.cpp 251 UpdateParticles takes a range that is inclusive on both ends 251 Add Lua support for partial sim updates 251 Add diff verb to fonttool.py 251 Fix "End of particles reached" not printing if manually simulating to particle 235008 251 Add discord link to intro text 251 Make GLAS strengthening reaction more controllable and not so arbitrary (#856) 251 Add sim.historyRestore and sim.historyForward 251 Add underline escape sequence to text renderer 251 Migrate AnyType to std::variant 251 Bump macos minimum version to 10.13, update tpt-libs 252 Convert hmap data to gradients 252 Merge data/ into resources/ 252 Silence a few libcurl warnings 252 Have the intro text hide the HUD completely 252 Fix loading of "version 1" PSv saves 252 Fix renderer table gradients 252 Add temperature scales option 252 Use RenderTemperature method in OptionsView, always re-render it on defocus, and remove degree symbol 252 Vote editing 252 Sent SessionKey in a few more places in Client.cpp 252 Make CRMC immune to ACID, fixes #851 252 Merge pull request #847 from xphere07/temperaturescales 252 Update readme date and version numbers 252 Get build.sh app constants from prepare.py 252 Fix property tool converting x / y values as temperatures 252 Tweak "Small 3" character (\uE032) in the font 252 Fix an uninitialized variable warning 252 Extend the BETA part of the intro text 252 Fix white LIFE being created in some cases, such as from EXOT+NEUT 252 Stop relying on _DEBUG 252 Add ability to disable blue screens 252 Redo command line parsing 252 Redo Platform::ExecutableName 252 Update tpt-libs 252 Fix pmap not being updated when setting x / y from Lua 252 Add disable-bluescreen to README, update copyright date 252 Fix vote buttons being wrong on own saves 252 Fix proxy, cafile, capath command line options 252 Add sim.temperatureScale 252 Update build number and readme date 253 Preprocessor purge round 13: X86 253 Refactor HTTP 253 Move Lua HTTP out of LSI 253 Preprocessor purge round 14: NOHTTP 253 Build nolua, nohttp, nogravfft variants on ghactions 253 Preprocessor purge round 15: FONTEDITOR, RENDERER 253 Preprocessor purge round 16: DEBUG 253 Merge hdiutil calls in build.sh 253 Refactor preferences 253 Manage search model requests in SearchModel 253 Preprocessor purge round 17: easy parts of WIN, LIN, MACOSX, AND 253 Make WriteFile replace rather than overwrite 253 Move update code to Platform 253 Move platform-specific code out of entrypoint TUs 253 Preprocessor purge round 18: difficult parts of WIN, LIN, MACOSX, AND 253 Remove PATH_SEP, set PATH_SEP_CHAR in meson.build 253 Migrate Singletons to ExplicitSingleton 253 Include "1" in the list of "true-strings" on the command line 253 Preprocessor purge round 19: Split and minimize usage of Config.h 253 Only save custom GOL data if it changed 253 Skip loading authorship info in render 253 Move more stuff to Editing.cpp 253 Read stamps from stamps.json 253 Provide three levels of install support 253 Factor out game stuff from PowderToySDL.cpp 253 Fix exit behaviour 253 Group platform files into their own directory 253 Group gravity files into their own directory 253 Group request manager files into their own directory 253 Fix updating not deleting the old exe on windows 254 Fix RNG usage 254 Add Simulation::frameCount, save blockair/blockairh and rng state 254 Expose new features to Lua 254 Add ensureDeterminism to saves 254 Properly seed rng at load time for saves that don't carry rng state 254 Protect new math.random against division by 0 254 Fix pmap usage in Simulation::flood_water 254 Remove deprecated PIXPACK/RGB/R/G/B functions 254 Use RGB for constants and gradients, other misc changes 254 Simplify conversion from temperature to color in OptionsView 254 Add RGBA.Pack(), Simplify ui::Colour/RGBA conversions 254 Fix RIME's description (it is formed through deposition, not sublimation) 254 Fix delete key not functioning correctly in textboxes when text is selected 254 Fix various unintended layout changes since 97.0 254 Fix some deprecation warnings 254 Fix some deprecation warnings 254 Fix some deprecation warnings 254 Fix some deprecation warnings 254 Use _rgb literals where possible 254 Fix local save browser crashing in some cases 254 Update README.md 254 Update IntroText.h 254 Merge pull request #918 from triclops200/patch-1 254 Reorganize the constructors of non-owning PlaneAdapter 254 Add fs.isLink 254 Fix progress bars drawing their borders in the wrong place 254 Sanitize GameSave/SaveInfo/SaveFile ownership 254 Fix some deprecation warnings (#920) 254 Fix some deprecation warnings 254 Fix various warnings that had piled up 255 Fix scary mutant spiders (many-headed stickmen) 255 Show save button thumbnail in the preview if it's available 255 Fix vote bars in previews touching the enclosing rects 255 Remove return value from Simulation::Load 255 Request UTF-8 code page at startup on windows 255 Fix paste previews being positioned incorrectly 255 Fix more reflection issues 255 Mark Platform::WinNarrow/WinWiden as to-be-eventually-deprecated 255 Fix unknown HTTP response body size being reported as 0 in some cases 255 Fix some air simulation asymmetries (#897) 255 Tame variable scopes in Air.cpp 256 Pass particle coordinates to Simulation::Save 256 Enable non-multipart POST requests 256 Factor RequestManager threading into Libcurl impl 256 Get rid of pointless virtual dtors in Request derivatives 257 Add hflip and rotation parameters to sim.loadStamp 257 Fix crash upon an out of bounds Simulation::Load 257 Enable out of bounds pasting in GameView 257 Fix random particles disappearing when pasting 257 Fix pastes not being centred on the cursor 257 Fix crash on exit when multiple windows are open 257 Prevent almost all HTTP requests from blocking 257 Fix mingw builds 258 Complain on windows if the active code page is not UTF-8 258 Use unique_ptr to hold on to SDL_GetPrefPath's result 258 Stop using 32-bit time in SaveInfo 258 Use clip rects to draw progress bar content 258 Don't show a blue screen when the window is already closing 258 Eliminate a GameSave copy in Simulation::Load 258 Enable installation in the meson config 258 Wire up SECURE_CIPHERS_ONLY 258 Enable SECURE_CIPHERS_ONLY with mbedTLS 258 Make Grave (the key under Esc) exiting the console optional 258 Make OptionsView somewhat more manageable 258 Fix crash if an avatar is missing from the server 258 Fix ExecVoteRequest sending AuthHeaders multiple times 258 Fix negative-size rects being returned by Rect::operator & 258 Fix logouts not actually destroying sessions 259 Fix crash when overwriting a local save 259 Fix sim.neighbours yielding the center particle 259 Fix crash if a save thumbnail is missing from the server 260 Emscripten: Enable modularity 260 Rename tpt.getscript and give it a completion callback 260 More boolean.to_string() fixes in meson.builds 260 Handle ptsave urls with GameController 260 Emscripten: Add Platform::MarkPresentable 260 Emscripten: Immediately mark presentable if no url is specified 260 Fix empty stamp browser crashing upon an attempt to change pages 260 Enter stamp placement mode when dnd'ing a stamp 260 Fix failing to change the favourite status of a save crashing the game 260 Emscripten: Make default FPS limit 60 260 Delete E146 260 Clean up tool ID list too 260 Bump required meson version to 0.64 260 Fix bad 0C constant in GLOW.cpp 260 Remove BOUNDS_CHECK 260 Fix LuaScriptInterface ctor stack imbalance 260 Make PROP tool less annoying to use 260 Add tpt.version.vcstag 260 Fix rendering of fire effects when their intensity exceeds 1.0f 260 Make ui.beginInput return nil if cancelled 260 Move callback parameter of ui.begin* functions up 260 Unify InBounds implementations 260 Fix crash upon changing tpt.brushID 260 Fix PMODE_SPARK producing black spots 260 Fix RenderView not drawing any simulation content 260 Fix local browser sometimes failing to load saves 260 Fix crash from Lua prompts when exiting the game completely 260 Fix fs.makeDirectory negating its result 260 Fix FUSE not burning as fiercely as meant to 260 Make find mode work with the PROP tool 261 Fix custom can_move settings being reset after using tpt.el 261 Sample "into" the PROP tool when it is active 261 Add version info to bluescreen 261 Update tpt-libs 261 Bump android toolchain version to 21 261 Use mbedtls on windows 261 Enable libcurl on android 261 Make Lua hook timeout configurable 261 Fix a few warnings 262 Give untagged build artifacts a distinct app ID 262 Clean up window frame settings somewhat 262 Fix occasional crashes upon opening settings 262 Clean up window creation somewhat 262 Fix input method candidates being aligned wrong in some cases 262 Fix ubuntu 20.04 pipelines 262 Fix the Maximized property of windows shortcuts not being respected 262 Add shortcut to toggle fullscreen 262 Add enums for gravity/air/edge modes, add more constants to Lua 262 Add ctrl+e shortcut to cycle through edge modes 262 Change sim.walls to use real wall identifiers, and also have reverse lookup 262 Add blurry scaling option 262 misc: Fix sim.partNeighbors table being 0-indexed, rename SIM_MAXVELOCITY to MAX_VELOCITY 262 Center sensors, search and pause icons. 262 Center more icons. 262 Fix a bug in the font editor where the last row of a symbol is cleared 262 Make save history icon not so hard to find, and show up on all saves (not just your own) 262 Add bound checking to Simulation::clear_area 353 Fix guess best scale prompt showing up even when it guesses the default 353 Fix spurious timeout errors from some callbacks 353 Remove a few outdated windows-only preprocessor hacks 353 Complain about missing custom elements when opening online saves 353 Make the previous commit work with mod elements too 353 Handle back button on android 353 Auto-focus the input field in the tag list 353 Sort out version info 353 Remove snapshot_id 353 Use curlftpfs for uploading to starcatcher in workflows 353 Fix exe description on windows 353 Fix prop tool not remembering settings in some cases 353 Sort out scopes in Simulation::UpdateParticles 353 Factor PlanMove out of Simulation::UpdateParticles 353 Expose debug constants to lua 353 Add surface normal debug tool 353 Fix changelog spam in the update window 354 Fix stable/beta ghaction workflows 354 Make curl_multi_wakeup/curl_multi_poll usage optional 354 Fix workflows with complicated publish passwords 354 Give emscripten version a starcatcher-compatible name 354 Remove unnecessary lua_pushlightuserdata usage, use commandInterface global instead 354 Remove luajit ffi particle access 354 Use method indices as LuaLuna thunk upvalues 354 Fix the casing of the new upstream tpt.version keys 354 Use a proper ProgressBar in UpdateActivity 354 Enforce build numbers of official builds in build.sh 354 Fix android workflows 354 Add a --backend=vs job to the ghactions workflow 354 Deprioritize some ghactions jobs 354 Customize ghactions job names 354 List element IDs that don't have an identifier associated in a save 354 Enable basic rendering of custom elements in secondary Renderers 354 Sort out constness of Simulation::PlanMove 354 Move Simulation::platent to Element::LatentHeat 354 Limit access to the LatentHeat property to LATENTHEAT builds 354 Move graphics cache to SimulationData 354 Sort out constness of Simulation and Renderer in graphics functions 354 Factor functions shared between elements into headers 354 Prevent Lua callbacks from being called from secondary SaveRenderers 354 Move palette code to GameSave 354 Fix some LTO-related emscripten link-time error 354 Snapshot 354 355 Default to identity mapping elements not in the palette for pre-98.0 saves 355 Fix can_move being set up too early 355 Fix line debug tool showing up when placing stamps 355 Fix uninitialized read of Engine::dt early after startup again 355 Fix extremely rare pmap corruption 355 Fix another extremely rare pmap corruption 355 Some native clipboard support for some platforms 355 Handle return value from signal in the External clipboard driver 355 Snapshot 355 356 Mark saves as being from the next version in dev builds 356 Complain when pasting save data with missing elements 356 Fix some pasted particles not getting cut off at the edges of the simulation 356 Fix pasting sometimes getting interrupted by the particle limit 356 Add includePressure parameter to sim.loadStamp 356 Fix Textbox width limiting content length 356 Clean up RichLabel 356 Add link to the registration form to LoginView 356 Make marking events as "sim events" slightly harder to mess up 356 Allow tpt.beginGetScript to overwrite existing files unconditionally 356 Retire tpt.beginGetScript in favour of tpt.installScriptManager 356 PHOT reflection now works as it did prior to 920f7646e410 356 Fix link region detection in RichLabels 356 Add sim.listStamps 356 Add tpt.version.beta 356 Fix label sizes in PreviewView 356 Snapshot 356 357 Add beforesimdraw and aftersimdraw events 357 Sample properties when shift is held 357 Implement stamp renaming 357 Clear stamp browser selection when page contents change 357 Fix header return value from HTTPRequest:finish, now returns both name and value again 357 Fix http.post using wrong argument as POST data 357 sim.loadStamp: default includePressure to 1 357 Fix "does not exist" showing up when loading stamps by id or filepath in console 357 Add includePressure to saveStamp as well 357 Add stack trace to bluescreen on some systems 357 Add platform clipboard option to settings 357 Fix requests not being marked done when they fail early 357 Snapshot 357 358 Bump macos runner version to 12 358 Fix bluescreen stack trace not showing exception frames 358 More resist-related comments. 358 LogoutRequest - set checkStatus to true 358 Fix signs loading in wrong position in PSv saves 358 Restore old SOAP foam behaviour and make it work with nonstandard gravity. 358 Attempt to show and demangle symbols in bluescreen stack traces 358 Explain platform clipboard external dependencies in OptionsView 358 Make sure the correct android SDK and platform are installed 358 Add global characters 358 Migrate mingw builds to msys2 ucrt, update tpt-libs 358 Remove THREAD_LOCAL hack, use thread_local 358 Use gh cli for managing releases 358 Add android debug helper script 358 Fix clone producing RSST(RSST). 358 Make android/install-apk always stale 358 Merge branch 'resist' 358 Auto-detect lldb client/server paths 358 Don't export everything for nice stack traces in release builds 358 Remove meson warning about mingw and lto 358 Make TESC create LIGH with same deco color (#901) 358 Allow setting ETRD min and max distance with tmp and tmp2 (#883) 358 Snapshot 358 358 Don't use quick_exit with emscripten 359 Make LDTC copy BIZR, BIZRG and BIZRG's wavelength too. (#936) 359 Fix Platform::ExecutableName on freebsd 359 Hopefully fix msys2 workflows 359 Sanitize the Lua API 359 Fix various warnings that had piled up 359 Rewrite MakeIco 359 Snapshot 359 359 Disable exe icons in mingw ghactions builds 359 Disable custom executable manifest in vs ghactions workflows 360 Fix a deprecation warning about std::result_of_t 360 Organize Lua API into multiple TUs 360 Remove TPTScriptInterface 360 Eliminate polymorphism from the CommandInterface hierarchy 360 Update some github-maintained actions 360 Update some more github-maintained actions 360 Make sure vs-env.sh actually found vs 360 Add some sign api constants 360 Clean up OnMouseClick/Unclick madness 360 Add panning to ScrollPanel when TouchUI is enabled 360 Fix OnMouseEnter/Leave inside Panels 360 Make element search scrollable 360 update error message when starting font editor with no arguments 360 draw air before "beforesimdraw" event is fired, so that graphics work in velocity / pressure display modes 360 compat.lua: Fix tpt.brushx, tpt.brushy, and tpt.watertest 360 Fix potential crash when sparking ETRD 360 Use the recommended ghactions action to set up msys2 360 Fix crash if tpt.installScriptManager fails 360 Snapshot 360 360 Fix mingw github builds 360 Fix sliders accepting clicks from anywhere 360 Fix tooltips in element search 360 Fix element buttons missing from element search 360 Fix sliders accepting clicks from anywhere 360 Fix tooltips in element search 360 Fix element buttons missing from element search 361 Fix sliders accepting clicks from anywhere 361 Fix tooltips in element search 361 Fix element buttons missing from element search 361 Unhardcode powdertoy.co.uk from most places 361 Make emscripten snapshots use starcatcher as the backend 361 Fix save history button not working except on your own saves 361 Add DECOSPACE_ constants 361 Snapshot 361 361 Replace b_strip with strip in github actions script 366 Update version numbers 366 Fix text cutoff issues in save title and search error message 366 The squirrel infestation problem is mostly resolved 366 Update build numbers (v98.2.365) 366 Stop scrolling in ScrollPanels on mousedown 366 Fix RSST/RSSS not respecting the CarriesCtypeIn field. Reset GEL's tmp field when it turns into RSST. 366 Use create_part in resist reactions, and set CarriesCtypeIn for RSSS. 366 Remove `Renderer` field from GraphicsFunContext 366 Remove `Renderer` field from GraphicsFunContext 366 Revert "Remove `Renderer` field from GraphicsFunContext" 366 Make "being transparent to photons" a property PROP_PHOTPASS. 366 Add day/week/month/year selector in the search. 366 Make dropdowns near the top of the screen go down. 366 Clamp window position/size to graphics surface 366 Add elem.PROP_BLACK back for compat 366 Fix more &vec[0] problems 366 Disable --backend=vs build 366 Check starcatcher credentials early 366 Fix "missing custom elements" warnings when loading saves with RSST/RSSS; mark SNOW as carrying ctype as well 366 ICE contains arbitrary elements in ctype as well and should track this in saves 366 Add a limit on the number of SPARK, LFLARE and FLARE effects drawn in one frame. 366 Remove invisible CRACKER and CRACKER2 menu sections 366 Replace resource tools with python scripts 366 Move hidden elements into solid/liquid/gas menus where appropriate 366 Update intro text cracker64 -> Pilihp64 366 Fix assumption that python is called python 366 Improve heat convection in ambient heat. 366 Cap air temp for real. 366 Hopefully fix random hdiutil failures on ghactions 366 Snapshot 366 367 Print address of main on bluescreens 367 Fix some issues with comment submission 367 Fix page count increasing when refreshing comments, disable "Submit" button until comments are refreshed 367 Fix gfx.drawPixel being unable to draw in event.AFTERSIMDRAW 367 Set solid resist ctype/tmp from unbreakable/breakable clone. 367 Fix "Large Screen" dialog not properly updating scale in powder.pref, causing scale to reset back to 1 on the next launch 367 Add CtypeDraw for VOID / PVOD (#953) 367 Remove http scheme variables 367 Simplify Startup.json parsing slightly 367 Use NT and ST for checks against *Transition 367 Complain about http:// URL bases when enforce_https=true 367 add OpenBSD to platforms using exit(3) 367 Add support for clang-cl. Also refactors compiler detection logic. 367 Spam hdiutil until it works 367 Change gravity timing and add support for saving it 367 Snapshot 367 368 Add HiDPI to manifest file, fixes #956 368 Disable the requestHandles.size() assert in Libcurl.cpp 368 Slightly smarter Defer 368 Mark dlls as link-time dependencies of powder.exe 368 Make to-array.py list itself as a dependency of its outputs 368 Fix resource depfile generation 368 Fix broken gravity walls 368 Snapshot 368 369 Replace &range[0] with range.data() where appropriate 369 Fix a few warnings 369 Make pmap size sanity check more precise 369 Separate Simulation members required for rendering 369 Separate Simulation-specific Renderer code 369 Get rid of render and display mode arrays 369 Move zoom further away from Renderer 369 Move brushes further away from Renderer 369 Move sampling further away from Renderer 369 Make Renderer presets static 369 Do rendering on another thread when possible 369 Hide away some more Renderer functions 369 Expose threaded rendering as a setting 369 Unify decoration state 369 Copy the result of rendering only if needed 369 Snapshot 369 370 Fix crash when opening render settings 370 Press F1 in save search to open help text + document new advanced search 370 Fix @tags description 370 Implement Platform::DefaultDdir for android 370 Bump android target sdk version to 33 370 Expose sim.canMove constants 370 Fix find mode always reporting 0 particles found 370 Don't force update powder.pref if the session is still invalid 370 Move tool logic out of Simulation 370 Blow up Tool.cpp into smaller files 370 Move custom GOL management to GameModel 370 Make GameModel tool list persistent 370 Implement Lua tools 370 Snapshot 370 371 Pause renderer thread when needed in GameModel 371 Fix issues with render ui checkboxes: (fixes #970) 371 Port brushes to PlaneAdapter 371 Fix gravity lensing applying uniformly to all of RGB 371 Appease the clang gods (fix CI) 371 Fix yet another extremely rare pmap corruption 371 Fix Lua elements getting deselected when their properties change 371 Store tool identifier to index mapping in tools.index 371 Add MenuSection and MenuVisible properties to Tool 371 Make more Lua tool properties trigger a menu rebuild 371 Fix EndsWidth crash when the suffix is longer than *this 371 Show address of Main in stack traces 371 Fix tools drawing rectangles with tools not doing anything in some cases 371 Migrate Rects to (pos, size) representation 371 Remove the single C TU from the codebase 371 Show placeholder text in text fields even when focused 371 Add sim.listDefaultGol 371 Unify particle property parsing code 371 Fix the position-based selector of !set 371 Deduplicate console command function list 371 Add !get console command 371 Snapshot 371 372 Fix possible crash when creating stamps 372 Ctrl+q - don't trigger quit dialog if alt is also held 372 Fix saves sometimes being one cell larger than intended 372 Snapshot 372 373 Allow only a single instance of the exit prompt 373 Migrate starcatcher-publish step to sftp 373 Fix views leaking when closing themselves 373 Fix chance of NEUT spawning PHOT in GLAS and of PHOT multiplying in GLOW. Originally broken in cda029ff4246 373 Fix nullptr deref when flooding deco 373 Bump some ghactions jobs to macos-13 373 Bump some ghactions jobs to ubuntu-22.04 373 Add support for aarch64 on windows, update tpt-libs 373 Upgrade to C++20 373 Automatically set b_vscrt on Windows 373 Bound-check SOAP links (fixes #973) 373 Snapshot 373 374 Handle steam builds in build.sh 374 Add Select callback to Lua tools 374 Make LuaSmartRef properly non-copyable 374 Fix crash when a Lua tool Perform callback throws an error 374 Fix crash on exit while there are Lua windows visible 374 Fix EMP radius when damaging things around SPRK 374 CRMC low pressure - preserve .temp when breaking 374 Don't complain about missing elements that aren't actually used 374 Make global quit shortcut optional 374 Fix crashes when giving !set invalid property values 374 Fix occasional hang on exit when SRT is enabled 374 Stop copying the gravity process's input every frame 374 Only dispatch the gravity thread if there is work to be done 374 Fix gravity staying broken when pasted over by unrelated data 374 Only use custom LTO flags when we actually want LTO 374 Fix crash on windows when using invalid particle/element property values 374 Make properties and callbacks of non-custom tools read-only 374 Fix unnatural stacking near powers of 2 positions 374 Fix crash when navigating away from a save while voting on it 374 Snapshot 374 378 Migrate embedded files to custom targets 378 Untemplate RGB(A) (fixes #968) (#969) 378 Fix some warnings 378 Update version numbers (99.0) and readme 378 Add clang-tidy support and fix modernize-use-nullptr (#966) 378 Fix the "fake" newer version number being actually older 378 Fix gravity wall being intermittently broken when drawn while paused 378 Add a config option for standard stream redirection to log files 378 Only copy the live portion of parts when SRT is enabled 378 Fix draw cap math 378 Add draw limit variant that mirrors the display's refresh rate 378 Add debug levels for simulation and rendering info 378 Update refresh rate when the window is moved to another display 378 Update tpt-libs 378 Turn Separate Rendering Thread on by default 378 Build number 375 -> 376 (new beta) 378 Version 99.0 (Build 377) 378 Fix Rect::operator & (intersection) 378 Disable steam builds for mods and ordinary official workflows 378 Make SRT work with event.AFTERSIMDRAW 378 Fix create_gain/cherenkov_photon leaving particles partially initialized 378 Fix crash on exit while there are Lua components visible 378 Manage particle lifetime with create/kill_part only 378 Fix some particles flickering when SRT is enabled 378 Fix pasting bailing early when any particle fails to spawn 378 Fix SPRK sometimes being impossible to paste 378 Update tpt-libs 378 Fix missing elements in some older saves not showing up as such 378 Fix more missing elements in some older saves not showing up as such 378 Snapshot 378 379 Allow disabling the automatic update check at startup 379 Remove old latent heat code, but leave LATENTHEAT switch and element 379 Make ambient heat drag effects weaker. 379 Draw air velocity line near cursor when air velocity mode and debug HUD are on. 379 Fix ptsave: being handled before autorun.lua 379 Make a copy of particles before saving them and work off that 379 Fix some cases of bogus missing element warnings 379 Give visual indication of vote/fav requests being in progress 379 Snapshot 379 381 Move velocity line to the debug mode DEBUG_AIRVEL. 381 Prevent a potential division by zero. 381 Add support for aarch64 on linux 381 Fix some warnings 381 Allow http.post to specify form part content type 381 Don't tick the entire user interface every sim tick 381 Remove emscripten-only vsync fps limit type 381 Make the fps cap a per-view property 381 Fix "far away" air heat and velocity code working correctly only in one direction. 381 Prevent heat convection in liquids looking farther than 1px away. 381 Fix LITH breaking temperature limits. 381 Provide a default refresh rate when it cannot be queried 381 Make emscripten work with draw limits 381 Fix crash on startup on emscripten 381 Separate emscripten debug info 381 Very safe optimizations 381 Fix ACID sometimes eating one more particle than allowed (#982) 381 Version 99.1 (Build 380) 381 Disable fake newer version check for stable builds 381 Fix misleading message about updates 381 Fix some tick schedule bugs 381 Fix PIPE rendering garbage when carrying PIPE 381 Prevent our colour codes from making it to stdout 381 Do simulation rendering at a lower rate than UI rendering 381 Remove dt 381 Snapshot 381 382 Remove remaining dependence on tick rate 382 Fix some jerky animations on emscripten 382 Version 99.2 (Build 382) 383 Add gravity mask to snapshots 383 Make gravity mask accessible from Lua 383 cap VIBR .tmp and explosion .temp 383 VIBR.cpp: change std::clamp to restrict_flt to handle NaNs 383 CAUS.cpp - return 1 when type changes to RFRG 383 Fix compatibility sim.TOOL_* constants 383 fix rx/ry arguments to toolBox 383 Fix !set commands defaulting to Kelvin, instead of to current temperature scale 383 Fix possible game crash when using invalid coordinates in !bubble 383 Fix prop sampling ignoring temperature scale 383 Snapshot 383 384 Use a more "relaxed" default position for stickmen. 384 Revert the STKM change since it breaks controllers. 384 Fixed a typo in the rules (#994) 384 Fix infinite air in the lower right corner #580 . 384 Missing element fix no.823712 384 Version 99.3 (Build 3384) 385 Make sure elements include their headers 385 Update element descriptions (#983) 385 Check cell count for being at most 255 when saving 385 Add heat conduction to pipes (#976) 385 Allow creating heat pipes by replacing BRCK with HEAC before color generation 385 Preserve deco in pipe, as long as the pipe wasn't already decorated 386 Fix crash when VIBR releases heat during explosion 386 Restrict some of the Lua API to interface events 386 Change TPT -> The Powder Toy in credits ui 386 Snapshot 386 387 Use transfer_part_to_pipe in special sim code that puts energy particles inside PIPE 387 Fog/Rime can absorb gas to become acidic, condense to acid (#999) 387 Move version strings to meson.build 387 Reword workaround_elusive_bzip2 description 387 Allow common use cases of sim.createParts/Line/Box in simulation contexts 387 Unmark some Lua tool callbacks as interface events 387 Fix elem.loadDefault handling element tools wrong 387 Clarify version number meaning in meson.build 387 Fix infinite loop on some platforms when particle velocity is NaN 387 Unsplit RendererBasic 387 Make heat display scale variable 387 Take COLOUR_HEAT into account in heat display limit calculation 387 Enable dynamic heat display with Shift+6 387 Reduce gravity effects on ambient heat. 387 Add 'console' command line argument 387 Print messages to stdout even if the console is open 387 Simplify event handler management 387 Fix intermittent failure to call event handlers 387 Formalize event handlers as stackable 387 Prevent CtypeDraw from being called in simulation contexts 387 Restrict graphics functions to graphics contexts 387 Make the simulation read-only in some contexts 387 Make tools (and thus elements) read-only in some contexts 387 Disallow particle lifetime management in some contexts 387 Move some Lua context asserts to LSI's header 387 Snapshot 387 387 Fix CI 388 Share object files between powder/render/font 388 Fix STKM never darkening in FIND mode ... unless you were trying to find it 388 Add run-target serve-locally to emscripten builds 388 Specify working directory for the serve-locally target 388 Cache running status of Lua HTTP requests 388 Fix parsing HTTP headers after redirects 388 Bump some ghactions jobs to windows-2022 388 Fix various warnings that had piled up 388 Use X macros here and there 388 Add TempScale enum 388 src/lua/LuaSocketDefault.cpp: add missing include (#1007) 388 Fix returning true from event handlers not doing anything 388 Disable pretty powders while loading saves 388 Update tpt-libs 388 Apply proxy settings to Lua API sockets 388 Clean up RequestManager configuration code slightly 388 Add vorticity confinement 388 Fix infinite air heat near the boundary 388 Snapshot 388