Skip to content
Closed

Release #3678

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
73606e6
Refresh stable compilation workflow
carstene1ns Apr 8, 2025
569975d
Update SDL and CMake requirements
carstene1ns Apr 8, 2025
a6849b2
Fix LZH encoding detection not working because the stream must be rei…
Ghabry Apr 14, 2025
5f510ed
CMakePresets: Must be RelWithDebInfo, not ReleaseWithDebInfo
Ghabry Apr 14, 2025
ba069bb
Vita: Disable optimize-sibling-calls optimisation
Ghabry Apr 15, 2025
6274227
Visual Studio Generator: Remove other configuration types.
Ghabry Apr 24, 2025
dcf8f61
Fix StringIsAscii by explicitly setting the type to "signed char"
Ghabry Apr 23, 2025
388b1c5
Workflow: Add ARM runners
Ghabry Apr 24, 2025
2836415
StringIsAscii: Add unit test
Ghabry Apr 24, 2025
8692f42
Fix: Two of new 0.8.1 engine options were not written to the config INI
florianessl Apr 25, 2025
51e022c
Refactored debug views related to in-game variable display:
florianessl Mar 27, 2025
00da04c
Clean out some uncommented code in Scene_Debug (part of ScopedVars - …
florianessl Apr 16, 2025
a04fa5d
Scene_Debug: Added detailed info & new display option "Pretty Print" …
florianessl Apr 18, 2025
94bf4d4
Minor: Fix four compiler warnings
florianessl Apr 19, 2025
9119582
Refactor: Rename "battle_message" to "game_message_terms" & move some…
florianessl Mar 16, 2025
de96cde
Move "ItemGained" message from battle scene to "game_message_terms.h"
florianessl Mar 16, 2025
20710d8
Implemented new Maniac terms
florianessl Mar 16, 2025
edddbb4
Minor: remove obsolete line
florianessl Apr 19, 2025
c932d51
When doing passability checks always the first event with a tile grap…
Ghabry Apr 29, 2025
fcc2c4b
Update flatpak runtime and dependencies
carstene1ns Apr 8, 2025
4c143e0
Add 0.8.1 release to metainfo
carstene1ns Apr 8, 2025
be90f4d
Feed the snapcraft package zombie some brains
carstene1ns Apr 8, 2025
132a56f
EditorConfig: force yaml (snapcraft) to spaces
carstene1ns Apr 8, 2025
431effb
Address @Ghabry's feedback partially
carstene1ns May 2, 2025
fa7cd9c
Use launcher/wizard for flatpak package
carstene1ns May 2, 2025
95a4c03
Added new settings options for automatically taking screenshots
florianessl Apr 26, 2025
5fcc569
Also enabled auto-screenshots for emscripten & implemented requested …
florianessl Apr 26, 2025
54d071d
Fix Build: Missed namespace for change in Emscripten code
florianessl Apr 26, 2025
5c4935d
Game_Config: Enable screenshot timestamp naming by default
florianessl May 9, 2025
9c3079e
Refactor & Extend EasyRPG feature "SetInterpreterFlag" (#3123), accor…
florianessl Jan 26, 2025
521e7f1
Fix: Destiny script code would never be executed if Player::HasEasyRp…
florianessl Mar 22, 2025
ffdf78f
RuntimeFlags: Refactored some bits that came up in code review
florianessl Mar 24, 2025
4bd8d1a
Fix compiler warning
florianessl Apr 29, 2025
c34f3c2
GetRuntimeFlag: Put the "conf_override_active" check in the header so…
Ghabry May 15, 2025
abe1aca
Fix warnings
Ghabry May 15, 2025
3bd8f6d
Android: Implement Edge-To-Edge Handling required since SDK35
Ghabry Apr 29, 2025
a977908
Android: Add Dark Mode Theme
Ghabry Apr 29, 2025
c46bfe4
Android: Handle Back callback for SDK35+ (using a compat library, so …
Ghabry Apr 29, 2025
802a3db
Android: Add ugly workaround to fix position of the touch buttons
Ghabry Apr 29, 2025
f9fe287
Android: Fix back button not working anymore on most Activities
Ghabry Apr 29, 2025
4f6045c
SDL: Bump Android version
Ghabry May 22, 2025
60fed5c
Fix #3415 (Access violation when enemy targets removed actor in scene…
florianessl May 5, 2025
258dd0d
Battle 2k: Filter removed actor targets in a way similar to how the 2…
Ghabry May 24, 2025
0d32dd2
Translation fix: Files inside "Text" folder would not be considered f…
florianessl May 21, 2025
1b4c6d3
Remove FindText: The function is broken because it either returns a p…
Ghabry May 24, 2025
2fa65e3
FindText: Fix redirection when a translation is active and Game+Save …
Ghabry May 24, 2025
d01f31b
Remove speed_modifier_a and b and use the values from the config dire…
Ghabry May 26, 2025
4dd1e4f
Flip the X coordinates when the battle animation is inverted
florianessl May 26, 2025
d488944
Android App: Hungarian translation updated
vargaviktor May 31, 2025
31a8686
Android App: Chinese (Simplified Han script) translation updated
hhhhczh May 31, 2025
d66f33f
Android App: Japanese translation updated
May 31, 2025
4e5c65b
Android App: Korean translation updated
BinRecycle May 31, 2025
5cd9b20
Android App: Turkish translation updated
RoseMaster0 May 31, 2025
87ca101
Android App: Czech translation updated
May 31, 2025
9f63f5a
Android App: Polish translation updated
lumiscosity May 31, 2025
c162596
Android App: Japanese translation updated
Ghabry May 31, 2025
635fe47
Update translation files
May 31, 2025
ed74574
Android App: Catalan translation updated
May 31, 2025
8b9ec84
Fix: Cloned & destroyed events were not considered when setting up ma…
florianessl Apr 29, 2025
56ba5cb
CloneMapEvent: Added check for "scene" in case the command is called …
florianessl Apr 29, 2025
e2c0700
CommandEasyRpgDestroyMapEvent: Allow usage of values '0' or '10005' f…
florianessl Apr 29, 2025
1d5dd09
Fix: CloneMapEvent might store an invalid value into easyrpg_clone_ev…
florianessl Apr 29, 2025
780739f
SetupFromSave: Make loading code a bit more defensive
Ghabry Jun 1, 2025
11e0ad9
Release 0.8.1.1 (Stun Patch 1)
Ghabry May 31, 2025
78328fa
Merge pull request #3426 from Ghabry/release-0.8.1.1
Ghabry Jun 2, 2025
7bd3ed0
added files etc yk
wys-prog Mar 17, 2026
a4080f5
added files etc yk and removed weirdness arh me dum
wys-prog Mar 17, 2026
dc0d692
adding bases for lua support, and starting work on new bridged types …
wys-prog Mar 24, 2026
b2f0fdf
(just pushing cuz idk)
wys-prog Mar 26, 2026
b98d746
wait guys please
wys-prog Mar 26, 2026
71c9bc1
finally being able to use lua and blabla
wys-prog Mar 29, 2026
9e63707
i cant compile the project so ima js commit to save it lol
wys-prog Jun 2, 2026
8d75f39
review of lio.hpp module, and added a new README as people ain't be r…
wys-prog Jun 4, 2026
ff5ed31
updating code base and maybe adding some thingies idk
wys-prog Jun 12, 2026
ec65311
adding a new tool that would help me with reflection later, and also …
wys-prog Jun 15, 2026
801affc
finishing reflection system, working on a dummy Python script for ref…
wys-prog Jul 25, 2026
f06d429
some changes over reflection support and blabla
wys-prog Jul 27, 2026
a6a4c10
fixes: #3
wys-prog Jul 29, 2026
0cc915f
fixes:
wys-prog Jul 29, 2026
b0f3d9d
removing dump file (wtf)
wys-prog Jul 29, 2026
8bf953d
changes:
wys-prog Aug 1, 2026
78dd608
added support of methods access in user-data types, added support of …
wys-prog Aug 4, 2026
1175615
removed leasy::metadata::NSpace and replaced with leasy::metadata::Do…
wys-prog Aug 7, 2026
0f315de
Working (not finished yet) on the Xglue part of the engine;
wys-prog Aug 10, 2026
676781c
fixed a lot of things. Also: If now you guys see a "games" somewhere …
wys-prog Aug 12, 2026
ff6c006
added encoding metadata (like String types etc) in an assembly.
wys-prog Aug 12, 2026
9f51ad0
some changes etc
wys-prog Aug 13, 2026
3e7e940
Adding a stable Sprite2D node! Kinda tested
wys-prog Aug 15, 2026
df1617f
adding few metadata default functions and supports. Meta2 is not work…
wys-prog Aug 15, 2026
bd5b030
fixes #10
wys-prog Aug 15, 2026
9a4b428
edits: improving lua support.
wys-prog Aug 17, 2026
f753a22
updated the README.md!
wys-prog Aug 17, 2026
a8a8c8a
working idk
wys-prog Aug 26, 2026
497955c
changes: reflected more C++ code and improved some thingies.
wys-prog Aug 29, 2026
9d07b27
reflected audio_decoder_midi.cpp and added fields.hpp
wys-prog Aug 30, 2026
265f134
implemented some more Assembly exports.
wys-prog Sep 3, 2026
17ae9ec
fixes #12
wys-prog Sep 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ insert_final_newline = true
indent_style = space
indent_size = 4

[*.{sh,rb,js,yml,adoc}]
[*.{sh,rb,js,yml,yaml,adoc}]
indent_style = space
indent_size = 2

Expand Down
2 changes: 1 addition & 1 deletion .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Documentation:

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

Window/Scenes:
- changed-files:
Expand Down
22 changes: 17 additions & 5 deletions .github/workflows/stable-compilation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ defaults:

jobs:
docker:
name: ${{ matrix.image }}
runs-on: ubuntu-latest
name: ${{ matrix.image }} (${{ matrix.os.arch }})
runs-on: ${{ matrix.os.name }}
container:
image: ${{ matrix.image }}

Expand All @@ -30,10 +30,22 @@ jobs:
image:
# version of: # CMake | g++ | SDL | support end #
# -------------------------------------------------------------
- ubuntu:20.04 # 3.16.3 | 9.3.0 | 2.0.10 | LTS (4/25) #
- debian:11 # 3.18.4 | 10.2.1 | 2.0.14 | oldstable (8/24) #
- ubuntu:22.04 # 3.22.1 | 11.2.0 | 2.0.20 | LTS (6/27) #
- ubuntu:22.04 # 3.22.1 | 11.2.0 | 2.0.20 | LTS (4/27) #
- debian:12 # 3.25.1 | 12.2.0 | 2.26.5 | stable (6/26) #
- ubuntu:24.04 # 3.28.3 | 13.2.0 | 2.30.0 | LTS (4/29) #
os:
- arch: x86_64
name: ubuntu-latest
- arch: arm64
name: ubuntu-24.04-arm
exclude:
- os:
arch: arm64
image: debian:11
- os:
arch: arm64
image: ubuntu:22.04

steps:
- name: Install dependencies
Expand All @@ -45,7 +57,7 @@ jobs:
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 \
libvorbis-dev libopusfile-dev libspeexdsp-dev liblhasa-dev \
libdrm-dev libgbm-dev # only needed for sdl2 on debian 11

- name: Clone Repository
Expand Down
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -146,3 +146,18 @@ eboot.bin
*.pem
*.keystore
*.jks

# idk guys
games/
EasyRPG Player.app/
./leasy.user.lua
# and doc thingies
docs/html/
docs/latex/
doxygen-awesome-css/
__pycache__/
# tools/
dump/
dump.json
dump.lua
assembly/
124 changes: 106 additions & 18 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,37 @@
cmake_minimum_required(VERSION 3.16...3.31 FATAL_ERROR)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
cmake_minimum_required(VERSION 3.18...3.31 FATAL_ERROR)

project(EasyRPG_Player VERSION 0.8.1
project(EasyRPG_Player VERSION 0.8.1.1
DESCRIPTION "Interpreter for RPG Maker 2000/2003 games"
HOMEPAGE_URL "https://easyrpg.org"
LANGUAGES CXX)
LANGUAGES C CXX)

if (CMAKE_CXX_COMPILER_ID MATCHES "Clang|AppleClang")
set(DEBUG_FLAGS
-g3
-O0
-fno-omit-frame-pointer
-fno-inline
-fno-optimize-sibling-calls

)

set(WARNING_FLAGS
-Wall
-Wextra
-Wpedantic
-Wshadow
-Wconversion
-Wsign-conversion
-Wnull-dereference
-Wdouble-promotion
-Wformat=2
)

set(SANITIZER_FLAGS
-fsanitize=address,undefined
)
endif()

# Extra CMake Module files
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/builds/cmake/Modules")
Expand All @@ -23,6 +51,7 @@ endif()

# C++17 is required
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_C_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS ON)

Expand All @@ -31,6 +60,17 @@ option(BUILD_SHARED_LIBS "Build shared easyrpg_libretro core" ON)

option(CMAKE_FIND_PACKAGE_PREFER_CONFIG "Prefer config files over bundled FindXXX files. Set this to OFF when configuration fails and report a bug." ON)

file(GLOB_RECURSE LEASY_SRC CONFIGURE_DEPENDS
src/leasy/**/*.cpp
src/leasy/**/*.c
src/leasy/**/*.h
src/leasy/**/*.hpp
src/leasy/*.cpp
src/leasy/*.c
src/leasy/*.h
src/leasy/*.hpp
)

# Source Files
add_library(${PROJECT_NAME} OBJECT
src/lcf_data.cpp
Expand Down Expand Up @@ -68,8 +108,6 @@ add_library(${PROJECT_NAME} OBJECT
src/baseui.h
src/battle_animation.cpp
src/battle_animation.h
src/battle_message.cpp
src/battle_message.h
src/bitmap.cpp
src/bitmapfont.h
src/bitmapfont_glyph.h
Expand Down Expand Up @@ -192,6 +230,8 @@ add_library(${PROJECT_NAME} OBJECT
src/game_map.h
src/game_message.cpp
src/game_message.h
src/game_message_terms.cpp
src/game_message_terms.h
src/game_party_base.cpp
src/game_party_base.h
src/game_party.cpp
Expand Down Expand Up @@ -476,6 +516,38 @@ add_library(${PROJECT_NAME} OBJECT
src/window_teleport.h
src/window_varlist.cpp
src/window_varlist.h
${LEASY_SRC}
src/platform/export.cpp
src/leasy/inspections.hpp
src/leasy/meta/node/node.hpp
src/leasy/cli/cli.hpp
src/leasy/cli/cli.cpp
src/leasy/metadata/dumper.cpp
src/leasy/metadata/structs/option.hpp
src/leasy/settings/settings.hpp
src/leasy/meta/node/visual2D/node2d.hpp
src/leasy/meta/node/types.hpp
src/leasy/meta/node/visual2D/sprite2d.hpp
src/leasy/meta/node/node.cpp
src/leasy/meta/node/visual2D/node2d.cpp
src/leasy/metadata/Assembly.hpp
src/leasy/metadata/Domain.hpp
src/leasy/iky7/nameof.cpp
src/leasy/metadata/Domain.cpp
src/leasy/metadata/builtins/arithmetics.cpp
src/leasy/metadata/glues/lua_glues.cpp
src/leasy/metadata/glues/lua_glues.hpp
src/leasy/metadata/glues/glues.cpp
src/leasy/metadata/glues/luatypeparser.hpp
src/leasy/types/string.hpp
src/leasy/types/iterable.hpp
src/leasy/types/string.cpp
src/leasy/meta/node/visual2D/sprite2d.cpp
src/leasy/metadata/builtins/reflection.cpp
src/leasy/kits/support.hpp
src/leasy/kits/cppsupport/functionnal.hpp
src/leasy/metadata/fields.hpp
src/leasy/events.cpp
)

# These are actually unused when building in CMake
Expand Down Expand Up @@ -607,7 +679,7 @@ elseif(PLAYER_TARGET_PLATFORM STREQUAL "SDL2")
# SDL2 depends on some systems on SDL2::SDL2main but SDL2::SDL2 is not always a dependency of it
# Manually add the dependencies
player_find_package(NAME SDL2
VERSION 2.0.5
VERSION 2.0.14
TARGET SDL2::SDL2
REQUIRED)

Expand Down Expand Up @@ -779,6 +851,10 @@ endif()
# Shared by homebrew platforms
if(NINTENDO_3DS OR NINTENDO_WII OR NINTENDO_WIIU OR NINTENDO_WIIU OR NINTENDO_SWITCH OR VITA)
target_compile_options(${PROJECT_NAME} PUBLIC -fno-exceptions -fno-rtti)
if(VITA)
# This optimisation is unstable on Vita (crashes at the end of MainLoop)
target_compile_options(${PROJECT_NAME} PUBLIC -fno-optimize-sibling-calls)
endif()
set(CMAKE_DL_LIBS "") # hack4icu!
set(PLAYER_ENABLE_TESTS OFF)
option(PLAYER_VERSIONED_PACKAGES "Create zip packages with versioned name (for internal use)" ON)
Expand Down Expand Up @@ -1157,15 +1233,21 @@ if(PLAYER_HAS_AUDIO)
endif()
endif()

option(PLAYER_MACOS_BUNDLE "Build macOS app bundle" ON)
# Executable
if(PLAYER_BUILD_EXECUTABLE AND ${PLAYER_TARGET_PLATFORM} MATCHES "^SDL.*$" AND NOT PLAYER_CONSOLE_PORT)
if(APPLE)
set(EXE_NAME "EasyRPG-Player.app")
set_source_files_properties(${${PROJECT_NAME}_BUNDLE_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
add_executable(${EXE_NAME} MACOSX_BUNDLE "src/platform/sdl/main.cpp" ${${PROJECT_NAME}_BUNDLE_ICON})
configure_file(resources/macos/Info.plist.in resources/macos/Info.plist @ONLY)
set_target_properties(${EXE_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/resources/macos/Info.plist")
set_target_properties(${EXE_NAME} PROPERTIES OUTPUT_NAME "EasyRPG Player")
if (APPLE)
if(APPLE AND PLAYER_MACOS_BUNDLE)
set(EXE_NAME "EasyRPG-Player.app")
set_source_files_properties(${${PROJECT_NAME}_BUNDLE_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
add_executable(${EXE_NAME} MACOSX_BUNDLE "src/platform/sdl/main.cpp" ${${PROJECT_NAME}_BUNDLE_ICON})
configure_file(resources/macos/Info.plist.in resources/macos/Info.plist @ONLY)
set_target_properties(${EXE_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/resources/macos/Info.plist")
set_target_properties(${EXE_NAME} PROPERTIES OUTPUT_NAME "EasyRPG Player")
else()
set(EXE_NAME easyrpg-player)
add_executable(${EXE_NAME} "src/platform/sdl/main.cpp")
endif()
else()
set(EXE_NAME ${PROJECT_NAME}_exe)
if(CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
Expand Down Expand Up @@ -1493,26 +1575,26 @@ if(DOXYGEN_FOUND)
add_dependencies(doc player_doc)
endif()

# Unit tests
option(PLAYER_ENABLE_TESTS "Execute unit tests after compilation finishes" ON)
# Unit games
option(PLAYER_ENABLE_TESTS "Execute unit games after compilation finishes" ON)

if(PLAYER_ENABLE_TESTS)
file(GLOB TEST_FILES ${CMAKE_CURRENT_SOURCE_DIR}/tests/*.cpp)
file(GLOB TEST_FILES ${CMAKE_CURRENT_SOURCE_DIR}/games/*.cpp)
add_executable(test_runner_player EXCLUDE_FROM_ALL ${TEST_FILES})
set_target_properties(test_runner_player PROPERTIES
OUTPUT_NAME "test_runner"
WIN32_EXECUTABLE FALSE
)

if(CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
target_compile_definitions(test_runner_player PUBLIC EP_NATIVE_TEST_PATH=\"${CMAKE_CURRENT_SOURCE_DIR}/tests/assets\")
target_compile_definitions(test_runner_player PUBLIC EP_NATIVE_TEST_PATH=\"${CMAKE_CURRENT_SOURCE_DIR}/games/assets\")
target_compile_definitions(test_runner_player PUBLIC EP_TEST_PATH=\"/assets\")
target_compile_definitions(test_runner_player PUBLIC DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS=1)

target_link_libraries(test_runner_player "nodefs.js")
set_property(TARGET test_runner_player PROPERTY LINK_FLAGS "-sALLOW_MEMORY_GROWTH --bind")
else()
target_compile_definitions(test_runner_player PUBLIC EP_TEST_PATH=\"${CMAKE_CURRENT_SOURCE_DIR}/tests/assets\")
target_compile_definitions(test_runner_player PUBLIC EP_TEST_PATH=\"${CMAKE_CURRENT_SOURCE_DIR}/games/assets\")
endif()
target_link_libraries(test_runner_player ${PLAYER_TEST_LIBRARIES})
if(CMAKE_COLOR_DIAGNOSTICS)
Expand Down Expand Up @@ -1680,3 +1762,9 @@ if (${PLAYER_TARGET_PLATFORM} STREQUAL "SDL1")
message(WARNING "SDL1 is deprecated!")
message(WARNING "Please migrate to SDL2 or SDL3!")
endif()

source_group(
TREE "${CMAKE_SOURCE_DIR}/src"
PREFIX "src"
FILES ${PLAYER_SOURCES}
)
Loading