Commit Graph
156 Commits
Author SHA1 Message Date
andrewnakas 6fcd427bf6 Trainer 0.4.2: flip trick speed scales only the stick-speed curve (the pop keeps its height); the slow-flip switch says when a session keeps it off 2026-10-06 19:50:09 -06:00
andrewnakas 097d306a15 Trainer 0.4.2: the board bending boost no longer pays ordinary 180s (the off-the-travel rule is off as shipped and capped) 2026-10-06 15:52:25 -06:00
andrewnakas 0c2bd6cccd Trainer 0.4.1: changelog and README for the slow-flip switch and the help tips 2026-10-06 14:51:11 -06:00
andrewnakas 4d6969cbba Trainer: let slow flips stay slow (the finish-before-landing rule can be switched off), help on every control, wrapped tooltips 2026-10-06 14:46:35 -06:00
andrewnakasandClaude Opus 5.5 c3c52168e5 Trainer 0.4.0: the trick line list is called Tricklining; docs
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 13:08:10 -06:00
andrewnakasandClaude Opus 5.5 5df4c1cba0 Trainer: board bending boost with explainers; Skate 3 presets also set the older grind and pumping values
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 12:30:41 -06:00
andrewnakasandClaude Opus 5.5 e88debeaf7 Trainer: trick lines as a list of the Tune tab, with the revert rules folded away
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 12:22:08 -06:00
andrewnakasandClaude Opus 5.5 1bc00b996d Trainer: trick lines tab, play-like selector (skate. / Skate 3 Easy / Normal / Hardcore), tunable revert rules
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 12:16:56 -06:00
andrewnakasandClaude Opus 5.5 5bd986e258 Trainer: revert boost also for landings out of line with the direction of travel
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 11:49:15 -06:00
andrewnakasandClaude Opus 5.5 1c62ea4f36 Trainer: the revert boost logs each landing it judges and why
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 11:39:00 -06:00
andrewnakasandClaude Opus 5.5 afcdfafe2f Trainer: revert speed boost, ported from AutoRevertBoost by Sivaes, jaq and OVM
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 10:40:46 -06:00
andrewnakasandClaude Opus 5.5 8e03e0cdea Trainer: no limits of its own on any value; typed boxes beside the camera sliders
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 10:35:20 -06:00
andrewnakasandClaude Opus 5.5 9fabb88ed1 Trainer: a flip slowed by the trick slider gets longer catch times
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 10:26:33 -06:00
andrewnakasandClaude Opus 5.5 74f9981073 Trainer: write class values and flip curves again when the game resets them; flip speed scales seven curves
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 10:12:13 -06:00
andrewnakasandClaude Opus 5.5 eeca84efea Trainer 0.4.0 (in progress): camera tab, Skate 3 presets, grind pop dial, search, controller menu, preset sharing
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 02:34:22 -06:00
AyeZeeBB 2cdc5ee8df Fix costume merging, restrict server names, add Centrix tag
- Mod merge: rebuild a merged bundle's chunk metadata the way the game
  writes it (one record per chunk, in chunk GUID order), so costumes
  from different mods built on the same game costume keep their
  textures and meshes
- Merge audit checks that layout, and there is a new unit test for it
- Server names: only letters, numbers, spaces and - _ [ ] ( ),
  1 to 64 characters; the server browser hides servers with other names
- New Centrix tag from the backend's "centrix" list: blue and white
  name, badge and item animation, ranked after Dev and before Creator
v1.1.3
2026-10-05 23:39:16 -05:00
zeex64 0d5dfda243 Merge pull request #85 from jnslol/feat/chat-bubbles
Add chat bubbles above each skater
2026-10-05 20:59:03 -05:00
Juan 23151496f1 Add chat bubbles above each skater
A player's recent chat lines show as speech bubbles above their skater: newest nearest the head, older lines stacking upward, each popping in with a slight overshoot before it fades. Emotes render as their images, a message that is nothing but a few emotes shows them jumbo, and a message longer than a handful of lines is cut with an ellipsis so one line can never wall the screen off.

Local display options live under Settings > Interface > Multiplayer (on/off, own messages, distance, duration and how many recent lines stack) and the console gains mp chat-bubbles, chat-bubbles-own, chat-bubbles-distance, chat-bubbles-duration and chat-bubbles-history.

The chat panel and the bubbles now share one rich-text module (chat_rich), and a filtered message keeps its emote names: the bad-word mask is applied, but emote tokens are put back from the original before they are parsed.
2026-10-05 22:46:40 -03:00
AyeZeeBB dcc5e31a67 Update server_host.cpp v1.1.2 2026-10-05 18:57:42 -05:00
AyeZeeBB 137273e274 carry added assets with a changed list, combine in-place values, list repeats once
Merge: carry added assets with a changed list, combine in-place values, list repeats once

Three merge bugs found by auditing 104 installed mods:

- A changed list (the music playlist) reached every bundle copy that holds
  it, but the songs a mod added beside it only reached copies of the bundle
  the mod added them to. The game keeps the playlist in eight bundles, so
  the other seven named songs they did not hold. Added assets now follow
  the change into whichever bundle copy takes it.
- An entry naming an asset that lost its name to another mod's asset is
  now dropped from the list, both in the merged bundle and in the list
  other mods' copies are given.
- Two mods changing values in place in one asset (lighting) kept one mod's
  copy whole and silently dropped the other's. Plain values are now
  combined, the higher-priority mod winning where both changed one. An
  edit that also moved a reference or resized a list is taken whole or not
  at all, and the merge notes whose changes are missing.
- A reference two mods both append to a list is listed once.
2026-10-05 18:53:51 -05:00
AyeZeeBB a9742673da log changes 2026-10-05 17:27:50 -05:00
zeex64 8403d4a548 Merge pull request #66 from wishluna/tolerant-loadout-slots
Load a saved outfit whose slots differ from the template's
2026-10-05 17:10:35 -05:00
zeex64 1466359a14 Merge pull request #45 from xThrasherrr/fix/launcher-empty-arguments
Pass empty launch arguments to the game as ""
2026-10-05 17:05:05 -05:00
zeex64 bdbf5b015a Merge pull request #58 from DeckardDetribine/fix/propagate-added-assets-multi-mod
Vfs: carry added assets from every mod that edits a shared asset
2026-10-05 17:01:45 -05:00
zeex64 f262614119 Merge pull request #52 from xThrasherrr/fix/freecamfov-range
Reject freecamfov values the client would refuse
2026-10-05 17:01:23 -05:00
zeex64 f6d77b88b9 Merge pull request #57 from DeckardDetribine/fix/playlist-lookup-crash-guard
Music: guard the playlist traversal against unresolved song entries
2026-10-05 17:01:00 -05:00
zeex64 2c80bf1b8c Merge branch 'main' into fix/playlist-lookup-crash-guard 2026-10-05 17:00:52 -05:00
zeex64 9f9d611f7d Merge pull request #56 from DeckardDetribine/pr/mod-music-shelf
Music: add a native "Mods" shelf above Featured in the Music Player / Playlist Manager.
2026-10-05 17:00:01 -05:00
zeex64 5cb6cb57ae Merge pull request #53 from xThrasherrr/fix/help-developer-group
Drop the nonexistent Developer group from the help text
2026-10-05 16:59:32 -05:00
zeex64 e877af0620 Merge pull request #50 from VexFlint/fix/linux-console-crlf
Accept CRLF lines on the Linux server console
2026-10-05 16:58:49 -05:00
zeex64 0c3ca2bb68 Merge pull request #49 from VexFlint/fix/systemd-unit-duplicate-log
Send the systemd unit's stdout to the journal, not a second copy of the log
2026-10-05 16:58:30 -05:00
zeex64 f6e191cfbd Merge pull request #48 from DeckardDetribine/pr/mod-music-artwork
Music: custom playlist and song cover artwork for mods
2026-10-05 16:57:56 -05:00
zeex64 e4a534a366 Merge pull request #72 from Vebjorhk/fix/offline-pause-menu-tab
Fix empty Social page and dead Back when reopening offline pause menu
2026-10-05 16:56:46 -05:00
zeex64 022900d9fc Merge pull request #74 from xThrasherrr/feat/server-map-pool
Let server hosts choose the map pool and rotate through it
2026-10-05 16:53:52 -05:00
zeex64 f940e5eb2c Merge pull request #75 from moelrobi/claude/upbeat-fermat-61tz9j
Add server direct messages (msg, msg-party, msg-admins, /w)
2026-10-05 16:48:23 -05:00
AyeZeeBB de631ad9e6 leave out mods that copy store items, chat badge check
- Mods that add copies of store items under new names are no longer
  loaded. The launcher, mod manager and game say why.
- A chat line passed on by the host only shows a Dev/Creator/Homie
  badge when the player's own copy of it arrives too, so a host
  can't put one on a line that player never wrote.
2026-10-05 16:29:37 -05:00
Robin MöllerandClaude Sonnet 5.5 3b3dbf8cd7 Add server direct messages: msg, msg-party, msg-admins and /w
Admins and the console can DM one player, a player's party or all online
admins. Players can whisper with /w. Messages carry a [DM from ...] prefix.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EhQ3AZZ7KQddTqV67tZMLc
2026-10-05 21:19:38 +00:00
xThrasherrr 7007ad0389 Name the missing map when leaving a session over it
The host sends the map's name with map offers and changes, since a player without the map's mod has no manifest to name it from.
2026-10-05 15:09:30 -06:00
xThrasherrr 206885fa62 Add a map pool card to the Multiplayer menu for server admins
The server now sends admins its pool and rotation with the map list, which bumps the protocol to 42: players and servers need this build to connect.
2026-10-05 14:43:12 -06:00
xThrasherrr b643f76c2f Let server hosts choose the map pool and rotate through it 2026-10-05 14:40:25 -06:00
VebjorhkandClaude Opus 5.5 ed6b4c5aff Fix empty Social page and dead Back when reopening offline pause menu
In offline mode, closing the pause menu on Social or Custom Stuff and
opening it again showed an empty Social page, and Back did nothing until
the player switched tabs. The game reopens the page at the last position
in its own tab list (Social at position 4, the Store at position 3)
before insert() swaps the Store for Custom Stuff. Offline that swap
leaves the tab count at 5, so the menu never redraws the page.

Keep a copy of the Store tab last for a moment so the count changes and
the right page is drawn, then drop it again (trim_store). Online, and
reopening on Map, Hub or Skaters, nothing changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 22:32:44 +02:00
ReGlitched dd1913b647 merge bug (material fix) 2026-10-05 12:32:31 -06:00
wishlunaandClaude Fable 5.1 96d44fc8a8 Load a saved outfit whose slots differ from the template's
A mod that adds slots to a template made every outfit saved before it
fail to load (recipe_template_mismatch / slot_mismatch), and switching
the mod off did the same to every outfit saved with it. The preset was
blocked, so the player saw the standard skater until the profile
database was edited by hand.

Match the saved outfit to the template slot by slot instead of by
position. A template slot the outfit has no item for starts on the
game's default. A saved slot the template does not have is held, like
an item from a costume mod that is not installed, and a save writes it
back beside the template's slots. Template key, template version,
scalar count and recipe count still have to match.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 12:01:20 -05:00
ReSkate local bf89ea7038 Music: preserve authored track positioning in mod playlists 2026-10-05 10:53:31 +01:00
ReSkate local 2b39afcb62 Vfs: carry added assets from every mod that edits a shared asset
When several mods change the same game asset (the master music playlist,
for one), only the first mod's edit was read for the imports it names, so
only that mod's added songs, waves and chunks were carried into the other
mods' copies of the bundle (a map's level superbundle). Every later mod's
additions went missing on those levels while the game's own levels kept
them, which showed up as songs vanishing from the playlist on custom maps.

Read the imports of every changed asset, and merge a later mod's edit into
the stored change so the combined document's imports -- and the chunks
they lead to -- are followed too. Add a regression test with two music
mods whose songs must both reach a map's copy of the bundle.
2026-10-05 07:32:27 +01:00
ReSkate local 88e033b33f Music: skip the Mods shelf when no mod declares a playlist
Build the Mods shelf only when an enabled mod declares at least one playlist with songs, read from each mod's reskate-music.json. The shelf must be inserted before the native widgets bind, so it cannot wait for Featured rows to hydrate, and it should not publish an empty shelf when there is nothing to show. With no declared mod playlist the native three shelves are left as they are and a music_mods_shelf_skipped event is logged.
2026-10-05 06:51:05 +01:00
ReSkate local 2e6882ede1 Music: guard the playlist lookup against unresolved song entries
The music player's playlist walk loads a song entry, masks it and reads a flag at [rcx+0x14] before it checks the entry's identity. An unresolved or NULL entry makes that read fault and takes the game down while a playlist is built or opened.

Install a 13-byte in-place guard at the reviewed RVA 0x14f80c7 when the music contracts pass. It keeps the original flag test, shrinks the leading mov eax,0 to xor eax,eax, and adds a jrcxz that skips the dereference when the entry is NULL, landing on the loop increment. The site is matched against its contract bytes before anything is written, so an unsupported image is left untouched, and the guard is applied with VirtualProtect and FlushInstructionCache and then made read-only again.

The contract and patch bytes live with the other music contracts in Engine/Game/Build/20260929/local_music.h; the installer is Extension/Music/local_music_safety.{h,cpp}; local_music_ui.cpp invokes it from initialize_music_functions; cmake/Runtime.cmake builds it. A new dingosdk_music_safety_tests (CTest music_safety) pins the contract length, the decoded instructions and the branch target arithmetic without needing the game.
2026-10-05 06:31:13 +01:00
AyeZeeBB 5bfe4f7bfa tag preview, separate switches and per-item colors
- Split the single switch into "Show my tag" and "Show my items", and
  show the tag as chat and nametags draw it.
- Color whatever is equipped instead of the one hoodie and pink board:
  top, bottoms, shoes, socks, hat, glasses, outfit, costume, deck, grip
  tape, trucks and wheels, each set on its own.
- Each item can use its list's animation (rainbow, red or gold), a
  gradient between two picked colors, one solid color, or be off.
- The choices travel with the player's appearance so everyone sees them.
  Protocol version 41.
v1.1.1
2026-10-05 00:00:45 -05:00
ReSkate local d4d3549799 Music: keep shelf code out of playlist UI module 2026-10-05 05:21:21 +01:00
ReSkate local 96cd684e20 Music: isolate native shelf implementation 2026-10-05 05:20:49 +01:00