The Powder Toy Versions Save

Written in C++ and using SDL, The Powder Toy is a desktop version of the classic 'falling sand' physics sandbox, it simulates air pressure and velocity as well as heat.

snapshot-355

5 months ago
  • Default to identity mapping elements not in the palette for pre-98.0 saves
  • Fix can_move being set up too early
  • Fix line debug tool showing up when placing stamps
  • Fix uninitialized read of Engine::dt early after startup again
  • Fix extremely rare pmap corruption
  • Fix another extremely rare pmap corruption
  • Some native clipboard support for some platforms
  • Handle return value from signal in the External clipboard driver

snapshot-354

6 months ago
  • Fix stable/beta ghaction workflows
  • Make curl_multi_wakeup/curl_multi_poll usage optional
  • Fix workflows with complicated publish passwords
  • Give emscripten version a starcatcher-compatible name
  • Remove unnecessary lua_pushlightuserdata usage, use commandInterface global instead
  • Remove luajit ffi particle access
  • Use method indices as LuaLuna thunk upvalues
  • Fix the casing of the new upstream tpt.version keys
  • Use a proper ProgressBar in UpdateActivity
  • Enforce build numbers of official builds in build.sh
  • Fix android workflows
  • Add a --backend=vs job to the ghactions workflow
  • Deprioritize some ghactions jobs
  • Customize ghactions job names
  • List element IDs that don't have an identifier associated in a save
  • Enable basic rendering of custom elements in secondary Renderers
  • Sort out constness of Simulation::PlanMove
  • Move Simulation::platent to Element::LatentHeat
  • Limit access to the LatentHeat property to LATENTHEAT builds
  • Move graphics cache to SimulationData
  • Sort out constness of Simulation and Renderer in graphics functions
  • Factor functions shared between elements into headers
  • Prevent Lua callbacks from being called from secondary SaveRenderers
  • Move palette code to GameSave
  • Fix some LTO-related emscripten link-time error

snapshot-353

7 months ago
  • Snapshot and build numbers have been merged, Snapshot 262 is followed by Snapshot 353
  • Fix changelog spam in the update window
  • Add surface normal debug tool
  • Expose debug constants to lua
  • Factor PlanMove out of Simulation::UpdateParticles
  • Sort out scopes in Simulation::UpdateParticles
  • Fix prop tool not remembering settings in some cases
  • Fix exe description on windows
  • Use curlftpfs for uploading to starcatcher in workflows
  • Remove snapshot_id
  • Sort out version info
  • Auto-focus the input field in the tag list
  • Handle back button on android
  • Make the previous commit work with mod elements too
  • Complain about missing custom elements when opening online saves
  • Remove a few outdated windows-only preprocessor hacks
  • Fix spurious timeout errors from some callbacks
  • Fix guess best scale prompt showing up even when it guesses the default

snapshot-262

7 months ago
  • Add bound checking to Simulation::clear_area
  • Make save history icon not so hard to find, and show up on all saves (not just your own)
  • Fix a bug in the font editor where the last row of a symbol is cleared when shifting the whole symbol up.
  • Center more icons.
  • Center sensors, search and pause icons.
  • misc: Fix sim.partNeighbors table being 0-indexed, rename SIM_MAXVELOCITY to MAX_VELOCITY
  • Add blurry scaling option
  • Change sim.walls to use real wall identifiers, and also have reverse lookup
  • Add ctrl+e shortcut to cycle through edge modes
  • Add enums for gravity/air/edge modes, add more constants to Lua
  • Add shortcut to toggle fullscreen
  • Fix the Maximized property of windows shortcuts not being respected
  • Fix ubuntu 20.04 pipelines
  • Fix input method candidates being aligned wrong in some cases
  • Clean up window creation somewhat
  • Fix occasional crashes upon opening settings
  • Clean up window frame settings somewhat
  • Give untagged build artifacts a distinct app ID

snapshot-261

8 months ago
  • Fix a few warnings
  • Make Lua hook timeout configurable
  • Enable libcurl on android
  • Use mbedtls on windows
  • Bump android toolchain version to 21
  • Update tpt-libs
  • Add version info to bluescreen
  • Sample "into" the PROP tool when it is active
  • Fix custom can_move settings being reset after using tpt.el

snapshot-260

8 months ago
  • Make find mode work with the PROP tool
  • Fix FUSE not burning as fiercely as meant to
  • Fix fs.makeDirectory negating its result
  • Fix crash from Lua prompts when exiting the game completely
  • Fix local browser sometimes failing to load saves
  • Fix RenderView not drawing any simulation content
  • Fix PMODE_SPARK producing black spots
  • Fix crash upon changing tpt.brushID
  • Unify InBounds implementations
  • Move callback parameter of ui.begin* functions up
  • Make ui.beginInput return nil if cancelled
  • Fix rendering of fire effects when their intensity exceeds 1.0f
  • Add tpt.version.vcstag
  • Make PROP tool less annoying to use
  • Fix LuaScriptInterface ctor stack imbalance
  • Remove BOUNDS_CHECK
  • Fix bad 0C constant in GLOW.cpp
  • Bump required meson version to 0.64
  • Clean up tool ID list too
  • Delete E146
  • Emscripten: Make default FPS limit 60
  • Fix failing to change the favourite status of a save crashing the game
  • Enter stamp placement mode when dnd'ing a stamp
  • Fix empty stamp browser crashing upon an attempt to change pages
  • Emscripten: Immediately mark presentable if no url is specified
  • Emscripten: Add Platform::MarkPresentable
  • Handle ptsave urls with GameController
  • More boolean.to_string() fixes in meson.builds
  • Rename tpt.getscript and give it a completion callback
  • Emscripten: Enable modularity
  • Emscripten: Disable a few options
  • Emscripten: Fix a crash from SDL2 by disabling asserts
  • Implement vsync fps limit outside emscripten
  • Emscripten: Disable hopefully all ways to quit
  • Emscripten: Sync session with the website one
  • Emscripten: Attempt to scroll canvas into view
  • Emscripten: Fix dead requests having their status updated
  • Emscripten: Implement more CRT stuff
  • Emscripten: Use custom user agent
  • Emscripten: Support persistent storage
  • Emscripten: Add RequestManager
  • Use name-value pairs for HTTP post data and headers
  • Emscripten: Cosmetics
  • Emscripten: Add "vsync" FPS limit mode
  • Emscripten: Add compatible main loop
  • Emscripten: Pivot EngineProcess
  • Emscripten: Remove blocking prompt functions
  • Emscripten: Remove all other blocking prompt calls
  • Emscripten: Remove direct blocking prompt calls from Lua
  • Emscripten: Add target, update tpt-libs
  • Update streamline description so that it's more helpful and matches intended description from dd8902b2c33c
  • Prefer luajit's bit module over ours
  • Kill stickman/figh immediately if health goes below zero, fixes #929
  • Work around some input method bug on windows
  • Fix some signed integer UB in RNG and related code
  • Fix crash in math.random if a max size interval is specified

snapshot-259

10 months ago
  • Fix crash when overwriting a local save
  • Fix sim.neighbours yielding the center particle
  • Fix crash if a save thumbnail is missing from the server

snapshot-258

11 months ago
  • Complain on windows if the active code page is not UTF-8
  • Use unique_ptr to hold on to SDL_GetPrefPath's result
  • Stop using 32-bit time in SaveInfo
  • Use clip rects to draw progress bar content
  • Don't show a blue screen when the window is already closing
  • Eliminate a GameSave copy in Simulation::Load
  • Enable installation in the meson config
  • Wire up SECURE_CIPHERS_ONLY
  • Enable SECURE_CIPHERS_ONLY with mbedTLS
  • Make Grave (the key under Esc) exiting the console optional
  • Make OptionsView somewhat more manageable
  • Fix crash if an avatar is missing from the server
  • Fix ExecVoteRequest sending AuthHeaders multiple times
  • Fix negative-size rects being returned by Rect::operator &
  • Fix logouts not actually destroying sessions

snapshot-257

11 months ago
  • Add hflip and rotation parameters to sim.loadStamp
  • Fix crash upon an out of bounds Simulation::Load
  • Enable out of bounds pasting in GameView
  • Fix random particles disappearing when pasting
  • Fix pastes not being centred on the cursor
  • Fix crash on exit when multiple windows are open
  • Prevent almost all HTTP requests from blocking
  • Fix mingw builds

snapshot-256

1 year ago
  • Get rid of pointless virtual dtors in Request derivatives
  • Factor RequestManager threading into Libcurl impl
  • Enable non-multipart POST requests
  • Pass particle coordinates to Simulation::Save