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