Skip to content

Commit

Permalink
Merge with EasyRPG upstream (#49)
Browse files Browse the repository at this point in the history
* Emscripten: Sanitize (Sound)fonts

Disable feature when not available.

* FluidSynth: Change SF when the MIDI changes

Live SF change is too much complexity, not working properly.

* FtFont: Improve error handling

- Game will not terminate anymore when a glyph fails to render
- Fix crash when a font fails to load

* Settings: Add Spanish pangram

* Maniac Patch: Added separate Width/Height Values for pictures

Added:
- Separate Width and Height value as per .scale2 parameter in ManiacPatch 211010
- Set Height to Width when using picture effects (as per ManiacPatch)
- Set both Width and Height to Magnify when using .scale parameter

Bugfix:
- Fix ManiacPatch picture rotation not fully working

* Maniac Patch: Fix String Vars with ShowPicture

Added the following:
- Check if we're using a string variable with com.parameters[17]
- Set the name parameter to the String Variable

Fixed the following:
- When using a String Var with ShowPicture, it no longers crash the game with picture ID -1

* Maniac Patch: Added Var and Var Index support for Picture Tint

While testing, I found out the following things:
- You cannot mix multiple Variable types for each parameters
- When using Variables for Picture Tint, parameter 17 is set to 4096 (0x100),
- When using Var Indexes for Picture Tint, parameter 17 is set to 8192 (0x200),
- Before, parameters for red, green, blue and saturation were always constants.
- Surprisingly this feature doesn't work with ShowStringPicture

Added:
- Variable and VarIndex support for Tinting using ShowPicture and MovePicture using bitfields

* New Command: 2002 - Activate Event At [x,y]

`@raw 2002, "", UseVarX,x UseVarY,y`

Activate an event in map remotely, based on its x and y coordinates.

Command made by @MackValentine,
I only refactored it to fit the player specifications.

* 3DS: properly support 3dslink

* NX: fix copy/paste error in custom logging func

* Simple implementation for AntiLagSwitch

* Implemented experimental "map event caches" to drastically increase performance when doing a lot of operations with game_switches & game_variables

* Fix crash when MovePicture is used on an erased picture with a non-default origin.

Fix #3189

* Settings: Only show "Open folder" on Windows, Linux, macOS

* Settings: Support ".soundfont"
WiiU: Disable Pause when focus lost

* Emscripten: Do not lowercase the --game argument (regression fix)

* Title scene: Allow accessing the load scene for file upload in emscripten with Shift

* Emscripten: Fix canvas focus when embedded

* Change Sprite Association: Fix incorrect offset for String Picture

* Use individual cli options for patches.

Useful for the anti lag switch and further patches that require an argument.

Update documentation.

* Improve MapEventCache data structure.

Get rid of the unnecessary pointer.

* Ignore invalid skills when leveling up. They are caused by stale database data and are harmless.

Fix #2977

* Enable animated RPG2k3e spritesheets when using RM2k engine with 'RPG2k3Commands=1'

* Update Gradle

* Update Android SDL to 2.30.1
Minimize diff

* CMake: Add WiiU preset

* CMake Presets: Remove windows-x86 and windows-x64 and replace it with windows.

Ninja does not support setting of the machine type.
Instead the appropriate VS setup script must be executed beforehand.

VS2022 targets are kept as they support this.

* CMake Presets: The Prefix path is now appended, not overwritten

* Resolve flathub linter warnings

* Add former unsupported URL types

* Update flatpak manifest from flathub package
Build liblcf out-of-tree

* 3DS: Fix crash by increasing linear heap memory

* 3DS: Make rendering more robust
- Should work with any resolution now (e.g. wide mode or double)
- Fix bug where the LCD toggles endlessly when keeping button touched
- Draw bottom screen UI in proper layers, not first to last

* Party: Change the startup sanity checks from Warning to Debug

Fix #3008

* metainfo: add 0.8 release

* Rename ActivateEventAt to TriggerEventAt as discussed

* Add "Wait For Single Movement" Event command by @jetrotal

* Redo the X/Y shifting (Sprite clones) on looping maps.

The change doubles the amount of sprites on looping maps but this fixes all the rendering issues, especially with big charsets ($).

Most of the sprites are culled because they are out of bounds on larger maps, so the performance implications are small.

Fix #3149

* Sprite_Character/AirshipShadow: Move functions that are only used by Sprite from Update to Draw.

This is similiar how Pictures do it since years.

Avoids some unnecessary function calls when Player is frame-skipping as less draw related code is processed.

* Image API: Refactor. Return original bit depth of the image.

* Add EasyRPG Patch Flag and lock some extensions behind it.

Is mostly for features that can break games by accident.

Currently behind it is:

- Our custom event commands
- Large charset
- 32 bit image support. Reporting 32 bit images is useful because this prevents that games tested with EasyRPG do not run in RPG_RT by accident.

32 bit is also enabled when: A translation is active or Maniac Patch is used.

* Fix Finger (Touch) Input on Windows

On some devices the ID is not 0-4 but counts upwards.

Introduced a new finger ID field to resolve this.

* Remove __WINRT__ (OS is not developed anymore by Microsoft)

* Windows 11: Disable Window rounding

This looses pixels in the edges of the game.

No error check. Will silently fail when unsupported.

* Fix: Add inih to workflow (liblcf dep)

* New Command 2056 - Spawn Map Event

Command that clones Events from any map inside the current map.

Co-Authored-By: Primekick <thetrueaxer@gmail.com>

* Spawn Map Event - Handling cases where it clones events from its current map

* Spawn Map Event - Overwrite paramater

Updates on DestroyMapEvent

You can also replace an older event with a new one with this optional parameter

* Maniac Patch: Add flag "2" to disable the annoying/game-breaking variable range adjustment.

* String Variable's ToFile - Relax File extension and path

When saving a file, maniacs forces the File in Text/ folder with .txt extension.
Through this PR, if '*' is at the end of filename, the file extension is relaxed.

It also better handles the creation of nested directories.

* Guard more extensions behind the flag

* Generalize ToHero functions to be ToCharacter instead.

Based on work of @jetrotal

* WaitForSingleMovement: Similiar to other waiting commands preserve the state.

Is required to prevent that the variable changes across waits and causes issues.

* Flatpak: add libinih
Fix git revision, in "detached head" state is no prefix

* New Commands: 2053 SetInterpreterFlag

Usages:

2053, "flag Name", on_off_Value_IsVariable, on_off_Value

2053, "dynrpg", 0, 1 // dynrpg patch

* Implemented DirectMenuPatch

* Scene/Window refactor: Instead of actor_id most scenes accept now an instance of Game_Actor

Scenes that can handle multiple actors expect now an vector of actors.
Makes it more flexible.

* Scene_Debug; Minor menueing inconsistency: Play Cursor SE when moving between tabs of the range window

* Scene_Debug: Implemented new debug view for viewing Maniac strings

* Scene_Debug: Implemented new debug view for displaying current interpreter stack states

* Window_StringView: Fixed line numbering for Auto-Linebreak

* Updated Makefile.am

* Use the pixel-based Game_Message::WordWrap function for the new stringview debug window (code assumes monospace font)

* Scene_Debug: Minor refactoring + UX improvement

* Made Game_Interpreter::GetState() return a const reference and moved the actual logic for retrieving the save data to a new method "GetSaveState()"

* Scene_Debug: Fix a small copypaste error

* Introduce "Choices" window for Scene_Debug & refactor a bit to remain compatible with ScopedVars branch

* Interpreter window fix: window would become unselectable due to wrong index. just always set it to 0 on PushUiInterpreterView; no need to remember the index here.

* EasyRpg Flag: Move bmp.reset call to the correct location

* Add nlohmann_json to the buildsystem (required for Emscripten)

Is enabled for all platforms because this will be used by a JSON event command.

(also dropped rang from the license screen, we forgot to delete it earlier)

* Emscripten: Migrate from picojson to nlohmann_json

* Android App: Chinese (Simplified) translation updated

Currently translated at 100.0% (119 of 119 strings)

* New translation (Portuguese) added

Android App: Portuguese (Brazil) translation updated

Currently translated at 70.5% (84 of 119 strings)

* Android App: Lithuanian translation updated

Currently translated at 53.7% (64 of 119 strings)

Android App: Lithuanian translation updated

Currently translated at 30.2% (36 of 119 strings)

New translation (Lithuanian) added

* Android Metadata: Czech translation updated

Currently translated at 100.0% (3 of 3 strings)

Android App: Czech translation updated

Currently translated at 100.0% (119 of 119 strings)

Android Metadata: Czech translation updated

Currently translated at 100.0% (3 of 3 strings)

Android App: Czech translation updated

Currently translated at 100.0% (119 of 119 strings)

Android App: Czech translation updated

Currently translated at 96.6% (115 of 119 strings)

Android App: Czech translation updated

Currently translated at 95.7% (114 of 119 strings)

Android App: Czech translation updated

Currently translated at 94.9% (113 of 119 strings)

Android App: Czech translation updated

Currently translated at 94.1% (112 of 119 strings)

Android App: Czech translation updated

Currently translated at 93.2% (111 of 119 strings)

Android App: Czech translation updated

Currently translated at 89.9% (107 of 119 strings)

Android App: Czech translation updated

Currently translated at 89.0% (106 of 119 strings)

Android App: Czech translation updated

Currently translated at 88.2% (105 of 119 strings)

Android App: Czech translation updated

Currently translated at 85.7% (102 of 119 strings)

Android App: Czech translation updated

Currently translated at 84.0% (100 of 119 strings)

Android App: Czech translation updated

Currently translated at 83.1% (99 of 119 strings)

Android App: Czech translation updated

Currently translated at 81.5% (97 of 119 strings)

Android App: Czech translation updated

Currently translated at 80.6% (96 of 119 strings)

Android App: Czech translation updated

Currently translated at 78.9% (94 of 119 strings)

Android App: Czech translation updated

Currently translated at 77.3% (92 of 119 strings)

Android App: Czech translation updated

Currently translated at 76.4% (91 of 119 strings)

Android App: Czech translation updated

Currently translated at 75.6% (90 of 119 strings)

Android App: Czech translation updated

Currently translated at 74.7% (89 of 119 strings)

Android App: Czech translation updated

Currently translated at 73.1% (87 of 119 strings)

Android App: Czech translation updated

Currently translated at 72.2% (86 of 119 strings)

Android App: Czech translation updated

Currently translated at 71.4% (85 of 119 strings)

Android App: Czech translation updated

Currently translated at 70.5% (84 of 119 strings)

Android App: Czech translation updated

Currently translated at 68.0% (81 of 119 strings)

Android App: Czech translation updated

Currently translated at 67.2% (80 of 119 strings)

Android App: Czech translation updated

Currently translated at 66.3% (79 of 119 strings)

Android App: Czech translation updated

Currently translated at 65.5% (78 of 119 strings)

Android App: Czech translation updated

Currently translated at 64.7% (77 of 119 strings)

Android App: Czech translation updated

Currently translated at 59.6% (71 of 119 strings)

Android App: Czech translation updated

Currently translated at 51.2% (61 of 119 strings)

Android App: Czech translation updated

Currently translated at 31.0% (37 of 119 strings)

New translation (Czech) added

* Android Metadata: Japanese translation updated

Currently translated at 33.3% (1 of 3 strings)

* Android Metadata: Japanese translation updated

Currently translated at 66.6% (2 of 3 strings)

Android App: Japanese translation updated

Currently translated at 74.7% (89 of 119 strings)

Android Metadata: Chinese (Traditional) translation updated

Currently translated at 33.3% (1 of 3 strings)

Android Metadata: Indonesian translation updated

Currently translated at 100.0% (3 of 3 strings)

Android App: Russian translation updated

Currently translated at 96.6% (115 of 119 strings)

Android App: Japanese translation updated

Currently translated at 72.2% (86 of 119 strings)

Android App: Indonesian translation updated

Currently translated at 100.0% (119 of 119 strings)

Android App: Greek translation updated

Currently translated at 43.6% (52 of 119 strings)

* Android App: Portuguese (Brazil) translation updated

Currently translated at 84.0% (100 of 119 strings)

* Android Metadata: French translation updated

Currently translated at 100.0% (3 of 3 strings)

Android App: French translation updated

Currently translated at 100.0% (119 of 119 strings)

Android App: French translation updated

Currently translated at 100.0% (119 of 119 strings)

* Android App: Portuguese (Brazil) translation updated

Currently translated at 99.1% (118 of 119 strings)

Android Metadata: Portuguese (Brazil) translation updated

Currently translated at 66.6% (2 of 3 strings)

Android App: Portuguese (Brazil) translation updated

Currently translated at 95.7% (114 of 119 strings)

Android App: Portuguese (Brazil) translation updated

Currently translated at 94.9% (113 of 119 strings)

* Android Metadata: Chinese (Traditional) translation updated

Currently translated at 100.0% (3 of 3 strings)

Android Metadata: Chinese (Simplified) translation updated

Currently translated at 100.0% (3 of 3 strings)

Android App: Chinese (Traditional) translation updated

Currently translated at 100.0% (119 of 119 strings)

* Android App: Portuguese translation updated

Currently translated at 54.6% (65 of 119 strings)

* Android Metadata: Dutch translation updated

Currently translated at 100.0% (3 of 3 strings)

Android App: Dutch translation updated

Currently translated at 100.0% (119 of 119 strings)

New translation (Dutch) added

* Android Metadata: Portuguese (Brazil) translation updated

Currently translated at 66.6% (2 of 3 strings)

Android Metadata: French translation updated

Currently translated at 100.0% (3 of 3 strings)

Android App: French translation updated

Currently translated at 100.0% (119 of 119 strings)

* MidiOut: Support volume settings

Fix #3083

* FluidLite: Use upstream target name

Show FluidLite in settings instead of FluidSynth

* Settings: Reset font size of bottom help window and font settings when game is changed

* Settings: The font size can now be altered directly with left/right while a font is selected.

Add cursor animation option to Window class.

* Audio: Add Api to get the shared Midi Out Instance

Solves errors and lag in the audio settings when the device is opened multiple times

* Config: Namespace all the enums to reduce global scope pollution

* Config: Unify FPS show settings.

The options are now:
- OFF (Do not show)
- ON (in titlebar when windowed, inside when fullscreen)
- Overlay (show always inside the window)

Last option is disabled when fullscreen option is disabled.

* Font: Unify the rendering functions for shaped and non-shaped fonts

* Font: Resize the mask when the glyph is too large

The mask looks brighter than in Maniac Patch but at least it does not look corrupted anymore.

* Do transparent blitting of the system graphic frame

Fix #2961

* MIDI: Only call seq->play in the Update function. Otherwise can cause a race condition and silence the track.

Fix #3186

* Unlock the font settings when returning to the Game Browser

* Audio Generic: memset was not clearing all the data (works on bytes, not floats)

Use std::fill now which is not this error prone.

Solves audio glitches ("pop") when having no BGM (or MidiOut) and a sound effect ends.

* Settings: Do not play Decision SE twice

* Android: Hardcode the read only strings

Reduces confusion in Weblate due to the Read only strings.

* Android: Remove FastForward button by default

Can be added in the Layout editor.

* FileFinder: Add a helper function to recursively find a game

To be used by the Android GameBrowser

* Android: Fix Saf Write test

* Android: Refactor Player Filesystem API

The JNIEnv-Pointer is now set from the outside.
Makes it possible to call these functions without having SDL initialized.

Remove DeleteLocalRef, as these references are garbage collected automatically when the function returns.

* Android: Use native FileFinder for the game detection of the GameBrowser.

Allows to drop most of the Java scanning code and makes maintanance easier.

* Android: Add progress information to the scanning process

* Implemented SaveEventExecFrame fields "maniac_event_id" (not reset on map change) & "maniac_event_page_id" + extended interpreter debug view

* Window_Interpreter fixes:

- Base frame for CommonEvent interpreters was always shown with Id '0'
- Encountering a "CallEvent" command while traversing up the stack, always set the flag "is_calling_ev_ce", even if it was a map event

* Remove patch-flag checks for debugging info

* ZipFs: Reuse the initial stream (LzhFs already does this)

* Android: Multiple games are now found in subdirectories

This also allows stuff like multiple games in a single zip, zip inside zip etc.

* Android: Sync the FF-Multiplier setting with the INI setting

* Android: Update translations to mention LZH support and lack of 7z-support

* Android: Pass in the title through JNI, cleanup

* Android: Try to load the title image in three ways

1. If only one title image: Use this one
2. By parsing the database
3. By taking the first image in the title folder

This approach is surprisingly fast and the caching skips the scan after the first time.

* Android: Fetch the game name from the INI

The title is then reencoded based on the users encoding setting.

* Android: Add option to rename the game

* Android: Provide soundfont path via command line. Fix typos

* Android: Make it possible to configure the Font

Also minor Soundfont code fixes

* Settings: Hide Font settings when Freetype is missing

Hide Soundfont and Font settings on Android in general (thx SAF)

* Android: Improve font scene, show preview

* Android: Improve wording of the folder buttons

* Android: Remove GameScanner suffix from the cpp files

Originally they were generated by a Header generator but by now Android Studio handles this which is more flexible.

* Add custom error display for platforms
Implemented currently for 3DS and SDL2. Switch and Vita are possible,
however an Error report might be generated on Switch (bad, could get
send to big N) and for Vita one would need to match framebuffer format
and such when dealing with GXM for dialog display. This is not worth
currently, since we likely migrate away from vita2d library in the
future.
Go through platform teardown code. While this may not work for every
case (e.g. out of memory on Wii), this should be cleaner.

* Android: Add RTP status to the Folders activity

Fix #1845

* Android: Add "Toggle FPS" and "Reset Game" to the game drawer

Related #3103

* Regression fix of the Scene refactor: Battle skills were not listed correctly

Somehow the compiler does not complain when you pass an integer to a parameter of type "const Game_Actor&".

* Fix warnings

* Wii U: Bundle Icons and Splash screens

* CMakeLists.txt: Simplify
Support bundling a game for Wii U

* Wii U: Handle main loop
Support shipped games
Better CWD handling

* SDL: use system format for audio
warn if unsupported

* Wii U: use full paths for consistency

* Wii U: Manually handle ProcUI without the WHB wrapper

The ProcUI API is very unstable and querying it crashes when a shutdown was requested.

For more control use it directly.

* Wii U: Fix MakeDirectory logic

Consider "/vol" a valid path

* Wii U: Disable settings that do not work

* ZipFS: Replace the scan backward for determining if it is a ZIP with a single read

Was the only agressive use of "end" in our code.

* Add a custom buffered filebuf that uses a file descriptor

Implemented for the WiiU because IO through std::filebuf appears to be unbuffered.

But can maybe help on other platforms.

Can be toggled by setting USE_CUSTOM_FILE_READBUF to the prefered buffer size.

* Wii U: Put wildmidi config and config.ini in "data"

With the upcoming audiocfg branch it will create "Soundfont" and "Font" folders on startup.
Looks ugly when in the game directory as they are shown.

* Wii U: Update assets

Thanks @jetrotal

* Use custom readbuf on our homebrew platforms

* Make our life on GitHub easier:
- Automatically label pull requests
- Hilight some warnings in the output
- Keep actions updated

* ttyp0 changes (remove Thai and Hebrew), generator fix

Fix #2999

* Spawn Map Event - Support renaming an event

* Refactored the AntiLag "MapCache" structure & moved it to its own namespace

* Refactored several Interpreter related code segments:

- Implemented template method "DecodeTargetEvaluationMode".
  (This logic is shared between ControlVariables, ControlSwitches & ControlStrings but the actual implementation for several special access modes differs between implementations. Support for these modes is evaluated at compile time.)
- Moved some common helper functions into a new file "game_interpreter_shared.cpp" (CheckOperator, ValueOrVariable / CommandStringOrVariable & variants)
- Refactored "ValueOrVariable" & "ValueOrVariableBitfield" into template methods
- Moved some commonly used member function declarations which are needed for certain command argument evaluation methods from Game_Interpreter into a new abstract base class
  (namespace "Game_Interpreter_Shared" is agnostic to the actual implementation of the interpreter)

* Refactor: Moved a few other helper functions from Game_Interpreter to Game_Interpreter_Shared

* game_interpreter_shared: Moved explicit instantiations to .cpp & moved definition of "Game_BaseInterpreterContext" to the bottom of header file

* Refactor explicit template instantiations: Looks like MSVC does some implicit instantiations here while GCC fails

* Rebase: Re-apply warning fixes for moved code segments

* Remove scaling restrictions when using special effects

From Maniac Patch version 240423:
[RPG_RT.exe]
Support for different magnification rates for special drawing of pictures (rotation, waveform, angle).

+ Added check if sprite's width/height is at zero. If so, skip the draw routine (helps avoid a glitchy sprite at the top-left when rotating an infinitely thin picture)
- Removed check for effect mode when setting zoom or width/height.

One thing to note when comparing Maniac and EasyRPG: the former doesn't seem to properly clip the sprite in the corners, when rotating the sprite.

* Maniacs Patch - Call System Functions

In Maniacs, CommandOpenSaveMenu is renamed to "Call System Function".
I implemented what is closer to our code.

Also expanded the code to cover our custom submenus (Cases 8 to 12).

Update game_interpreter_map.cpp

* WaitForSingleMovement: Guard with EasyRpg Extension Check

* Proper casing for LoadMapFile and make RequestMap request always important

* SpawnMapEvent: Add Async handling, Cleanup

* SpawnMapEvent: Suspend the interpreter using Async to avoid crashes when the event vector is altered.

Renamed to CloneMapEvent

* DestroyMapEvent: Implemented

* DestoryMapEvent: Set the main interpreter event ID to 0 when the event running is destroyed.

Prevents triggering the sanity check about an invalid event on the main interpreter.

Fix operator= of Game_CharacterDataStorage.

* Call System Functions: Move EasyRPG Extensions to a higher ID to prevent conflicts

Minor enhancements

* Local Settings - First Commit

If you have a copy of config.ini saved at the same folder as the player app, it will load the game settings from it, instead of the global folder.

-------------------------------------
Update game_config.cpp

* Fix compiling OpenDingux and SDL 1.2

Otherwise, it will complain about undefined references to GetSdlAxis.

* Refactor: Always check isMessageActive() at the beginning in game_Interpreter _map.

* Refactor: check out_of_bounds before calc map_draw_xy

* Refactor:  remove GetEventsXY() since the code is broken and never been used now.

* Android: Use different save paths when multiple games are in one archive

* Android: Bump to SDK 34

* Android: Update deps and gradle to 8.10

* When loading a save remove active BattleAnimations

They can reference stale event data and crash.

Fix #3255

* Equipment: Fix another missed change from actor.GetId to actor.

Detected by ASAN, somehow does not crash without.

Fix #3235

* Emscripten: Expose FS Module again.

Was lost when moving to MODULARIZE.

Fix #3243

* Fix compilation errors when resampling is disabled

* SpawnMapEvent: Update BattleAnimation reference

Prevents crashes...

Had to add multiple player includes as a header was removed.

* SpawnMapEvent: Directly insert sorted. Make FindEventById the same as GetEvent but for lcf::rpg::Event.

* Android: Replace assets with SVG. Works since API 21 which we require.

Also add asset for "Visit Website" and "Fonts".

* Android: Bump SDL2 to 2.30.6

* SDL2: Swap pixel format with a faster one for pixman on Big Endian

Fix WiiU texture copy by manually doing a format conversion.

* Custom Filebuf: Also use it for writing

Has the same performance issues

* Wii U: Move teardown code to atexit

* CMake: Revert the Wii SDL part because it does not work (linker errors)

* WiiU: Address review comments

- ProdUi renamed
- Fixed save path for bundled games
- Moved ProcessProcUi call to the Ui

* WiiU: Map the buttons according to an Xbox-Controller and then swap them with the swap abxy setting

* Add a bool to ProcessEvents to signal program exit.

Calling Player::Exit in the Ui can crash because the Ui is deleted by it.
Also the normal teardown codepath is too slow on WiiU and crashes the console when the home button is used.

* Fix flickering in Yume2kki on map 3D Underworld (ID 1884).

The map uses a MoveRoute with a jump and SetVehicleLocation for party movement in a tight loop which causes heavy flickering in our Player.

This fix does not appear to be completely correct as RPG_RT does not reset the jump flag here but the "damage" is reduced because SetVehicleLocation -1 cannot happen without patching the game.

Fix #3254

Co-Authored-By: Viet Dinh <54ckb0y789@gmail.com>

* Effects: Use the filename for the cache, not the bitmap pointer

The pointer can be reused by a new bitmap and cause wrong animations.

For individual tiles the filename is lost. "filename" in bitmap was renamed
to "id" and gets now filename+tileid in that case.

Fix #3256

Co-Authored-By: Viet Dinh <54ckb0y789@gmail.com>

* Fluidsynth: Exhaust the internal synth buffer to prevent playing of old samples after long pauses

Fix #3135 (this time for real)

* Android: Forgot to commit SDLActivity.java for the SDL2 2.30.6 bump

* Android: Make title encoding detection more robust and filter out UTF16

* Improve debug image size warnings (#3260)

debug size warning tweaks

* Android: Remove deprecated package= option from Manifest

* CMake: Replace the verbose warning when nlohmann is not found with a one-liner

This verbose warning appears when a library has no find module.

* Fix typo ObservervedVarOps -> ObservedVarOps

* Fix 3ds build (wrong var type in WaitForSingleMovement)

* Cast the string constants to char* when tremor is used.

Fixes warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

Tremor never writes to the strings so this is safe to do.

* Switch: Fix build (Add missing return value)

* The Sacred Tears: TRUE uses a modified map tree

Detect this and apply a shift of 1 to all bytes in the map tree to make it work.

* Add transparency to the SpriteEffect key, matching the behaviour of the normal sprite cache.

Fixes a black screen when entering the bedroom in Yume 2kki's Nocturnal Grove (Regression)

Fix #3274

* ManiacGetSaveInfo: Set transparency and apply correct defaults

Fix #3272

* ManiacControlGlobalSave: Fix command not working the first time when using Copy From/To without calling Open.

Bug was that the function returned when the lgs file was missing.

Emscripten: Update the filesystem state

Fix #3270

* Load: Fix Async loading of the map file when command ManiacLoad is used

Fix #3271

* ZIP: Improve encoding detection by only feeding the filename to ICU

Before the string contained full paths, breaking the detection logic because most paths are ASCII

* DestroyMapEvent: Remove the event from the cache

* Clone/DestroyMapEvent: Silence warning when deletion fails while cloning

Add documentation

* Reset UI on WebGL context loss

On Emscripten, the WebGL context may be loss for any reason, for example
when restoring the application from the background, the GPU force-
refreshed the application to reclaim memory, etc. In these cases, canvas
data is lost and this commit accommodates that situation by reinitiali-
zing the UI when the browser has restored the context.

* Fix compile errors from merge

---------

Co-authored-by: Ghabry <gabriel+github@mastergk.de>
Co-authored-by: Tool Man <gchristin2000@bell.net>
Co-authored-by: MackValentine <mackvalentine@gmail.com>
Co-authored-by: Carsten Teibes <dev@f4ke.de>
Co-authored-by: florianessl <github@iessl.at>
Co-authored-by: Mauro Junior <45118493+jetrotal@users.noreply.github.com>
Co-authored-by: Primekick <thetrueaxer@gmail.com>
Co-authored-by: XWX1 <xwx1dot@qq.com>
Co-authored-by: Daniel Paim de Mattos Oliveira <danzpaim@gmail.com>
Co-authored-by: AidasKar15 <aidas14karaliunas@gmail.com>
Co-authored-by: Sadver <kw2xiemg@anonaddy.me>
Co-authored-by: otya <ocha3052@gmail.com>
Co-authored-by: Gabriel <gabriel+easyrpg@mastergk.de>
Co-authored-by: crazep <wdyocmwyh@gmail.com>
Co-authored-by: Carbonara <malicecarbonara@gmail.com>
Co-authored-by: Jesse5800 <zhengnobita2589@163.com>
Co-authored-by: pissolato <rodrigopissolato@gmail.com>
Co-authored-by: lemtom <lemmens.tom11@gmail.com>
Co-authored-by: Dzmitry Kushnarou <dzmitry@kushnarou.pt>
Co-authored-by: fdelapena <fran@fran.cr>
Co-authored-by: gameblabla <gameblabla@protonmail.com>
Co-authored-by: xiaodao <lychees67@gmail.com>
Co-authored-by: lumiscosity <averyrudelphe@gmail.com>
  • Loading branch information
24 people authored Nov 4, 2024
1 parent 8fc8ef1 commit 674b9da
Show file tree
Hide file tree
Showing 412 changed files with 17,225 additions and 12,197 deletions.
5 changes: 1 addition & 4 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,7 @@ src/external/* -diff linguist-vendored
src/midiprogram.h -diff linguist-vendored
src/midisequencer.* -diff linguist-vendored
src/midisynth.* -diff linguist-vendored
src/picojson.h -diff linguist-vendored
CMakePresets.json -diff linguist-generated
builds/android/app/src/main/java/org/libsdl/app/SDL*.java -diff linguist-vendored
builds/android/app/src/main/java/org/libsdl/app/*.java -diff linguist-vendored
builds/android/app/src/main/java/org/libsdl/app/SDLActivity.java diff
builds/android/app/src/main/java/org/libsdl/app/SDLSurface.java diff
builds/android/app/src/main/java/org/libsdl/app/HID*.java -diff linguist-vendored
src/generated/* -diff linguist-generated
12 changes: 12 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: monthly
labels:
- "Building"
#reviewers:
# - carstene1ns
commit-message:
prefix: "CI"
17 changes: 17 additions & 0 deletions .github/gcc_comment_matcher.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"problemMatcher": [
{
"owner": "gcc-problem-matcher",
"pattern": [
{
"regexp": "^(.*?):(\\d+):(\\d*):?\\s+(?:fatal\\s+)?(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
]
}
]
}
98 changes: 98 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
#
# See https://github.com/actions/labeler
# and workflows/pr_labels.yml for reference
#

Building:
- changed-files:
- any-glob-to-any-file:
- .github/**
- CMakeLists.txt
- builds/**
- '!builds/android/app/**'
- Makefile.am
- configure.ac

Documentation:
- changed-files:
- any-glob-to-any-file:
- docs/**
- '**/*.md'
- '**/*.adoc'
- src/docmain.h
- '**/Doxyfile*'
- resources/unix/*.metainfo.xml

Tests:
- changed-files:
- any-glob-to-any-file: [ tests/** ]

Window/Scenes:
- changed-files:
- any-glob-to-any-file: [ src/**/window_*, src/**/scene_* ]

# misc

Audio:
- changed-files:
- any-glob-to-any-file: [ src/**/*audio* ]

FileFinder:
- changed-files:
- any-glob-to-any-file: [ src/**/filefinder*, src/**/filesystem* ]

Fonts:
- changed-files:
- any-glob-to-any-file:
- resources/exfont.png
- resources/ttyp0/**
- resources/shinonome/**
- resources/wenquanyi/**
- src/**/*font*
- src/generated/bitmapfont_*

MIDI:
- changed-files:
- any-glob-to-any-file: [ src/**/*midi* ]

# platforms

3DS:
- changed-files:
- any-glob-to-any-file: [ src/platform/3ds/**, resources/3ds/** ]

Android:
- changed-files:
- any-glob-to-any-file: [ src/platform/android/**, builds/android/app/** ]

Emscripten:
- changed-files:
- any-glob-to-any-file: [ src/platform/emscripten/**, resources/emscripten/** ]

libretro:
- changed-files:
- any-glob-to-any-file: [ src/platform/libretro/** ]

macOS:
- changed-files:
- any-glob-to-any-file: [ src/platform/macos/**, resources/macos/** ]

PSVita:
- changed-files:
- any-glob-to-any-file: [ src/platform/psvita/**, resources/psvita/** ]

Switch:
- changed-files:
- any-glob-to-any-file: [ src/platform/switch/**, resources/switch/** ]

Wii:
- changed-files:
- any-glob-to-any-file: [ src/platform/wii/**, resources/wii/** ]

WiiU:
- changed-files:
- any-glob-to-any-file: [ src/platform/wiiu/**, resources/wiiu/** ]

Win32:
- changed-files:
- any-glob-to-any-file: [ src/platform/windows/**, resources/windows/** ]
27 changes: 27 additions & 0 deletions .github/workflows/pr_labels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: "Label Pull Requests"
on:
pull_request_target:
types: [opened, ready_for_review]

jobs:
update:
permissions:
contents: read
pull-requests: write

runs-on: ubuntu-latest

steps:
- name: Clone repository
uses: actions/checkout@v4
with:
# pull_request_target is run under forks, use main repo source
fetch-depth: 0
repository: EasyRPG/Player
ref: master

- name: Update labels
uses: actions/labeler@v5
with:
sync-labels: true
dot: true
10 changes: 7 additions & 3 deletions .github/workflows/stable-compilation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,10 @@ jobs:
apt-get update
apt-get install -yqq --no-install-recommends --no-install-suggests \
ca-certificates build-essential cmake ninja-build git \
libicu-dev libexpat1-dev libsdl2-dev libpng-dev libpixman-1-dev \
libfmt-dev libfreetype6-dev libharfbuzz-dev libmpg123-dev \
libsndfile-dev libvorbis-dev libopusfile-dev libspeexdsp-dev \
libicu-dev libexpat1-dev libinih-dev nlohmann-json3-dev \
libsdl2-dev libpng-dev libpixman-1-dev libfmt-dev \
libfreetype6-dev libharfbuzz-dev libmpg123-dev libsndfile-dev \
libvorbis-dev libopusfile-dev libspeexdsp-dev \
libdrm-dev libgbm-dev # only needed for sdl2 on debian 11
- name: Clone Repository
Expand All @@ -56,6 +57,9 @@ jobs:
with:
ref: ${{ github.event.inputs.git-ref }}

- name: Use gcc problem matcher
run: echo "::add-matcher::.github/gcc_comment_matcher.json"

- name: Compile
run: |
VER="(GA, `date +%Y-%m-%d`)"
Expand Down
Loading

0 comments on commit 674b9da

Please sign in to comment.