Popochiu v2.2.1
Popochiu 2.2.0 was a big and pretty stable release: nothing came back to bite us, which left us free to spend this release doing what we should have done right after it: clearing the backlog that had been sitting in the tracker since the 2.1.x line. 2.2.1 is made of fixes, and mostly of the quiet kind: music that refused to play the second time you asked for it, a tap on a touchscreen that advanced a dialog twice or not at all, the editor that fell over the moment you opened a sub-resource menu.
Apparently boring stuff unless you have been affected by them. Well, all of them are gone. On top of that we have retired the methods that have been sitting deprecated since 2.1, which is the one part of this release that can break a project: if you are still on 2.1.x, read the Final Notes before you upgrade. The bug tracker is empty as we write this; if something new turns up, we will not sit on it until the next feature release, as we did the last time.
Fixes
- Music can be played again after it fades out: a cue stopped by a fade never released its player, so the same track stayed silent the next time it was asked for (even from a different room, with the same file). The player now returns to the pool when the fade completes, and a stale tween can no longer reach into a player that has already been handed to another cue.
- One-shot WAV sound effects no longer loop forever in Web exports: the Web backend snapshots the loop mode at the moment playback starts, so setting it at a later stage (a workaround that worked fine for non-web builds) had no effect there. Popochiu now sets it at the right time, until Godot's own bug is closed for good.
- The audio manager no longer files positional cues under the generic group, or the other way round: in a game with a dozen or more files mixing 2D and plain effects, a sound effect could end up in the wrong group and the next cue assigned to it would throw a null pointer. A player's entry is now cleared against the cue it actually played.
- A character's dialog stays where it belongs when a region scales it: the text used to drift further away the smaller the sprite got. It now follows the scaled sprite.
face_clicked()andwalk_to_clicked()no longer crash the game when the object the player last clicked is no longer in the cache. They fail gracefully instead.- An NPC following the player can come back to the room it started in: walking back used to throw
Cannot call method 'create_timer' on a null valueon entry. Characters placed in the editor are now detached before their deletion is deferred, so cross-room followers are added correctly. - Taps on a touchscreen fire once, and they fire at all: with Godot's Emulate Mouse From Touch enabled, a tap arrives as both a screen touch and a synthetic mouse click, and Popochiu used to accept both. Now Popochiu offloads the touch-to-mouse conversion to the OS and Godot Engine and mouse events are now the only pointer source. The engine warns at startup when a touchscreen runs without emulation.
- The editor no longer crashes when opening a sub-resource menu on any sub-resource of any Popochiu scene. The gizmo plugin was claiming Resources it had no business owning, triggering a known Godot issue.
- Deleting the Player-controlled Character now clears the setting from
res://game/popochiu_data.cfg, so the next character you create can be marked as the PC again. - The Setup window no longer logs
Signal 'sources_changed' is already connectedevery time it is closed on an existing game. A regression from the dock rework in 2.2.0, caught straight away.
Documentation
The cross-links between documentation pages have been rebuilt to point at their Markdown source,
which is the only form MkDocs rewrites. Every internal link now resolves whatever base path the
site is served from, be it /popochiu/ on GitHub Pages or a local preview (thanks @cidneyhamilton).
Dead targets and stale anchors were retargeted along the way, and the rules for writing those links
are written down in the contributing conventions, so the next broken one is easier to avoid. The
theme images came out of it lighter (and correct!) too: a few hundred kilobytes of editor detritus
shaved off the logo, the mascot and the home banner. By the way, thanks to @drbbgh for noticing
an issue with the font in the very docs homepage!
Final Notes
- Coming from 2.2.0? There is nothing to do. No migrations to run, no changes to the save
format or to the GUI templates. Copy the addon over and carry on. - Coming from 2.1.x? You must upgrade to 2.2.0 first. 2.2.1 removes the methods that have been
deprecated since 2.1: a script still calling one of them will fail to load so migrations would not
run and this will leave you with a broken project. The migration scripts in 2.2.0 rewrite your scripts to call the new methods, that is why you must upgrade to 2.2.0 first. - Touchscreen projects: keep Emulate Mouse From Touch enabled. Popochiu now reads mouse
events only, and lets Godot or the OS normalise touch into them. Leave the setting on (the
default) on touch devices: with it off, touch does nothing at all and Popochiu says so in the
output panel. On desktop, the setting can stay off exactly as before. A new Touchscreen support
page in the game setup chapter explains all of this out; the feature remains tagged experimental,
and device testing of the fix is still the one thing we would like help with. - Audio workarounds can be retired. If music that would not replay was patched over with timers,
polling, or a forced restart somewhere else in your code, that code is no longer doing anything.
Drop it and let thefinishedsignal do its job. - One deprecation, no breakage. If you extended a GUI template and called
PopochiuUtils.is_click_or_touch_pressed(),is_click_or_touch(),is_double_click_or_double_tap()
orget_click_or_touch_index(), know that they no longer account for touch at all.
The old names still work and warn once in the output; the replacements areis_click_pressed(),
is_click(),is_double_click()andget_click_button_index(). The proxies will be gone in 2.3.