Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
232 commits
Select commit Hold shift + click to select a range
235d06c
clean
sudoker0 Jan 15, 2026
00bef2c
re-added base files
sudoker0 Jan 15, 2026
e82e512
fix xmake launch issue on windows
Thefirey33 Jan 15, 2026
cb6995b
Add rpgpp library files
CDevv Jan 16, 2026
f2b546a
add: screen system, languages (i18n system), the starting screen, bas…
Thefirey33 Jan 16, 2026
11bb206
fix
Thefirey33 Jan 16, 2026
8272c8c
rename "viet.json" to "vn.json"
sudoker0 Jan 16, 2026
af6ac2f
uses en_us as fallback incase no string keys are found for other langs
sudoker0 Jan 16, 2026
df3a876
Welcome Screen improvement
CDevv Jan 16, 2026
26ef3f3
Merge branch 'tgui-fresh' of https://github.com/CDevv/rpgpp into tgui…
CDevv Jan 16, 2026
d8d8e23
Screen changing improvements
CDevv Jan 19, 2026
8734ae4
Project class, opening project files
CDevv Jan 19, 2026
1f57f5d
gui navigation and about screen
Thefirey33 Jan 19, 2026
923635e
move "open project" to guiActions so code doesn't have to be copied o…
Thefirey33 Jan 19, 2026
3e6ed60
Basic tool bar and maps list (resources)
CDevv Jan 20, 2026
d5a77bb
Add file type chooser to resources list
CDevv Jan 20, 2026
e347036
Implement FileViews based on the current file type.
CDevv Jan 21, 2026
7d61d2d
add editor options screen
Thefirey33 Jan 21, 2026
b5994a3
translation "fix" (aka. just removing the fixme, cause machine
sudoker0 Jan 21, 2026
ebcae2f
Introduce WorldView widget and updatable widgets
CDevv Jan 22, 2026
58757a4
compiles fine: add configurationService back to the tgui-fresh branch…
Thefirey33 Jan 22, 2026
c469915
Handle mouse events in WorldView widget
CDevv Jan 23, 2026
e0a2a69
Introduce ProjectFile and VariantWrapper
CDevv Jan 23, 2026
76beb7e
fix debugging issues
Thefirey33 Jan 23, 2026
2fe6d06
add basic tileset viewing
Thefirey33 Jan 23, 2026
77b05da
set configuration warning back to normal
Thefirey33 Jan 23, 2026
7461acd
Introduce PropertiesBox
CDevv Jan 24, 2026
a835dd6
Finish TileSetFileView
CDevv Jan 25, 2026
fed8fd9
stop MSVC from bitching
Thefirey33 Jan 25, 2026
3697e1d
Introduce NewFileDialog
CDevv Jan 26, 2026
1840532
add segmentation fault issues...
Thefirey33 Jan 26, 2026
c1ecec5
Fix segfaults on NewFileDialog confirm button
CDevv Jan 27, 2026
ffa2f5c
Introduce the FileInitVisitor
CDevv Jan 27, 2026
230b995
Multiple opened files
CDevv Jan 28, 2026
d222de9
FIle tabs improvement
CDevv Jan 29, 2026
c15326d
Run Project button works
CDevv Jan 30, 2026
27a549f
New Project window in WelcomeScreen
CDevv Feb 2, 2026
c2c7c32
Saveable files
CDevv Feb 3, 2026
22b0a21
File context menu + generate project binary data
CDevv Feb 3, 2026
698492d
Introduce RoomFileView and RoomView
CDevv Feb 4, 2026
2c8921f
Introduce Room toolbox + Place tool
CDevv Feb 4, 2026
7602fd4
New tools + brush mode in RoomToolbox
CDevv Feb 5, 2026
2f919e7
Collisions Layer for Room
CDevv Feb 5, 2026
eb7cd57
Introduce Action class
CDevv Feb 6, 2026
3fe7537
add vietnamese translations + change translations for "options.language"
sudoker0 Feb 6, 2026
d67eac2
Undo and Redo improvements
CDevv Feb 6, 2026
486cd04
Merge branch 'tgui-fresh' of https://github.com/CDevv/rpgpp into tgui…
CDevv Feb 6, 2026
91c019d
added translations for Vietnamese + modify key to be more clear
sudoker0 Feb 8, 2026
fc07ead
redesign screen navigation to use a deque + small translation key change
sudoker0 Feb 8, 2026
0b2e26d
implement dynamic theme changer, adds Dark/Light default theme, small
sudoker0 Feb 8, 2026
940dd90
FIX: always ensure resources are fetched from the correct path
sudoker0 Feb 8, 2026
7cee9a9
move code for setting the tgui theme into ThemeService
sudoker0 Feb 8, 2026
abcfceb
Add codeql to the actual main branch to analyze
sudoker0 Feb 9, 2026
08e10ca
add tgui-fresh branch to be analyzed
sudoker0 Feb 9, 2026
2d9c7a2
fuuu
sudoker0 Feb 9, 2026
f751305
codeql
sudoker0 Feb 9, 2026
487b1de
can you just build already
sudoker0 Feb 9, 2026
50aee69
Basic Interactables layer
CDevv Feb 9, 2026
46b9056
Introduce MapAction
CDevv Feb 9, 2026
68fb298
Basic Lua Scripting for Interactables
CDevv Feb 10, 2026
01b91ef
Improve the handling of tab closing for FileTab
sudoker0 Feb 11, 2026
9567a19
Added config for debugging in Linux
sudoker0 Feb 11, 2026
e0015d3
Improve build script for editor: automatically copy luajit binaries
sudoker0 Feb 11, 2026
908ac02
FIX (Zed): force setting cwd to the directory containing the editor
sudoker0 Feb 11, 2026
661b2ed
move script.lua to resources/scripts
sudoker0 Feb 11, 2026
6be5613
Better handling of file tab
sudoker0 Feb 12, 2026
a7c3490
Declare magic numbers
sudoker0 Feb 12, 2026
978d25e
Variable rename
sudoker0 Feb 12, 2026
cd53a25
Remove fmt in favor of TextFormat from raylib + more declaring of magic
sudoker0 Feb 12, 2026
af311f8
base changes for the new code editor
Thefirey33 Feb 12, 2026
4741aed
base code editor
Thefirey33 Feb 12, 2026
1f50131
code editor OK
Thefirey33 Feb 12, 2026
36325cf
Cursor position fix, partial selection drawing
CDevv Feb 12, 2026
d24cb96
fix various bugs related to filetabs incorrectly selecting files
sudoker0 Feb 12, 2026
cc8df73
FIX #16: added mitigation by not recreating the fileview when one is
sudoker0 Feb 13, 2026
575c657
added translation for widgets, and small design improvement
sudoker0 Feb 13, 2026
efc5eaf
Auto select next tab when current tab is closed if possible
sudoker0 Feb 13, 2026
1237636
Small redesign of EmptyFileView and implement the view when no file is
sudoker0 Feb 13, 2026
9323a20
correction: auto switch to next tab only when user closes the currently
sudoker0 Feb 13, 2026
0246818
Added gaps between properties
sudoker0 Feb 13, 2026
6a75c38
Automatically apply theme from config file
sudoker0 Feb 13, 2026
51c0ed1
Ensure config file is read from the correct place
sudoker0 Feb 13, 2026
c1f08ab
Move services into it's own folder, and resolve paths in include
sudoker0 Feb 13, 2026
cee4fc2
Added translations for roomFileView and tilesetFileView
sudoker0 Feb 13, 2026
d7fa7b0
Added functionality to do template in translation strings
sudoker0 Feb 13, 2026
b0a9f6c
Update description for TranslatedString
sudoker0 Feb 13, 2026
bc85f26
Proper text selection and selection
CDevv Feb 13, 2026
27448c7
Remove the use of submodule in libs in favor of xmake's cloning
sudoker0 Feb 13, 2026
b355b0f
Remove include from non-existent libs
sudoker0 Feb 13, 2026
7b907f7
Walking the Tree-sitter
CDevv Feb 13, 2026
0793b10
Merge branch 'tgui-fresh' of https://github.com/CDevv/rpgpp into tgui…
CDevv Feb 13, 2026
52eb2a0
Implemented fixes for MSVC
sudoker0 Feb 13, 2026
457bcb0
More fixes for MSVC
sudoker0 Feb 13, 2026
8353f1a
Improve README + added tree-sitter-lua package
sudoker0 Feb 13, 2026
8136d29
Added checks and documentation for tree-sitter CLI
sudoker0 Feb 13, 2026
7f9da7a
Remove checks for tree-sitter CLI (it doesn't fully work on Windows for
sudoker0 Feb 13, 2026
7002d04
You don't need tree-sitter CLI after all!
sudoker0 Feb 13, 2026
9153428
Fix tree-sitter-lua building for Unix platform. Disable compiling for
sudoker0 Feb 14, 2026
9d50466
Implemented building of tree-sitter-lua for Windows
sudoker0 Feb 14, 2026
b89075c
Update description
sudoker0 Feb 14, 2026
d60a9be
Implemented NOOP library, and modify tree-sitter-lua to use NOOP as it's
sudoker0 Feb 14, 2026
d53a4dd
bump version to 100
sudoker0 Feb 14, 2026
5b77bdb
Remove make as dep
sudoker0 Feb 14, 2026
09ddb17
Remove unnessery comment
sudoker0 Feb 14, 2026
5b073bb
Small README and xmake.lua text change
sudoker0 Feb 14, 2026
d746785
Tabs are now identified by their full path, along with modification to
sudoker0 Feb 14, 2026
6672c3c
Base code for tab moving
sudoker0 Feb 14, 2026
01d76f9
implement tree-sitter
Thefirey33 Feb 14, 2026
c0547d1
add syntax highlighting
Thefirey33 Feb 14, 2026
3d62191
Fix highlighting issues on text selection + more test colors
CDevv Feb 14, 2026
6a75274
Implement FileTab dragging and ResizableContainer
sudoker0 Feb 15, 2026
5b75ce2
Implement screen's leftMouseReleased hook, with fix for dragging cursor
sudoker0 Feb 15, 2026
b08b688
Properly calculate the mouse pos relative to screen
sudoker0 Feb 15, 2026
41f7c27
Various bug fixes and added translations
sudoker0 Feb 15, 2026
91f220c
Fix broken newline insertions
CDevv Feb 15, 2026
2922402
Fix screens not getting their size adjusted to the top menubar
sudoker0 Feb 15, 2026
3c90113
tab fix and beginning of re-parser
Thefirey33 Feb 15, 2026
75e4bda
prepare the text changer
Thefirey33 Feb 15, 2026
1a36f4f
Added scrolling to filetab in projectScreen, improve handling of
sudoker0 Feb 15, 2026
a7a6b01
Fix tab randomly re-ordering when dragging tabs too fast + small tab
sudoker0 Feb 15, 2026
49337e4
Complete remake of the toolbar, design and logic wise
sudoker0 Feb 16, 2026
ed2a1f6
Re-added checkbox for brush mode
sudoker0 Feb 16, 2026
127f55a
Improve toolbox design
sudoker0 Feb 17, 2026
de97c4a
Properly resolve includes
sudoker0 Feb 17, 2026
6eea9e1
Added commentary
sudoker0 Feb 17, 2026
885f8af
Code linting: replace 4 spaces with Tab character, per .clang-format
sudoker0 Feb 17, 2026
7b54c75
Syntax highlighting with std::list
CDevv Feb 17, 2026
4420003
Merge branch 'tgui-fresh' of https://github.com/CDevv/rpgpp into tgui…
CDevv Feb 17, 2026
7149668
Fix #17: Always initialize json object to avoid making it an empty ob…
sudoker0 Feb 18, 2026
d026f2d
Code linting: Re-formatted source and include files with clang-format
sudoker0 Feb 18, 2026
9c5d1e3
Disable JSON formatting when exporting .tiles or .rmap file for speed
sudoker0 Feb 18, 2026
e49be68
Added alert functionality
sudoker0 Feb 18, 2026
0fe20c3
Clean up CodeEditor
CDevv Feb 18, 2026
67d9f05
Merge branch 'tgui-fresh' of https://github.com/CDevv/rpgpp into tgui…
sudoker0 Feb 18, 2026
7db8797
fix and or keywords
Thefirey33 Feb 18, 2026
42976b1
changed .gitignore for working on local env
Ivan-Krul Feb 18, 2026
d539746
Do not ignore libs/
CDevv Feb 18, 2026
030732e
revived libs/ from .gitignored
Ivan-Krul Feb 18, 2026
48b2f2d
Merge branch 'tgui-fresh' of https://github.com/CDevv/rpgpp into tgui…
Ivan-Krul Feb 18, 2026
f0d6223
Add interactables from the editor's resources + Properly save interac…
CDevv Feb 19, 2026
a379dd9
Proper interactables props exporting, show different UI for the same …
CDevv Feb 20, 2026
dbe8ad7
Make interactables' props editable + fix tile at 0,0 never being placed
CDevv Feb 20, 2026
cafbd54
editor now opens up file highlighted
Thefirey33 Feb 21, 2026
7a0b16c
well... none of the fixes worked, so this is a pretty empty commit
Thefirey33 Feb 21, 2026
b6ffc40
Saving and loading room Props in editor, dialogue porperty type for i…
CDevv Feb 22, 2026
9ec69a6
Small fix to FileTab
sudoker0 Feb 22, 2026
81acf64
Merge branch 'tgui-fresh' of https://github.com/CDevv/rpgpp into tgui…
Ivan-Krul Feb 22, 2026
59a3c27
fixed a bug with Windows unrecognizing assets
Ivan-Krul Feb 22, 2026
d9882b2
Add support for manaing Props in a Room, add start tile tool, add roo…
CDevv Feb 22, 2026
36f7167
Merge branch 'tgui-fresh' of https://github.com/CDevv/rpgpp into tgui…
CDevv Feb 22, 2026
3d74965
Fix issue when placing props with no interactable
CDevv Feb 22, 2026
dc6cd0f
added german and ukrainian translation sets
Ivan-Krul Feb 22, 2026
e92f172
Clear Music + onTouch property for interactables
CDevv Feb 23, 2026
8b4c86d
changed a bit representation of animation frames for actors
Ivan-Krul Feb 23, 2026
72c1071
modified Editor field representation for less complexity and speed be…
Ivan-Krul Feb 23, 2026
fe5216d
Implement exponential zoom
sudoker0 Feb 24, 2026
3f9a61a
List all types of resources in the resource list
CDevv Feb 24, 2026
ef9a35e
Basic Dialogue support
CDevv Feb 24, 2026
ea4a9a6
changed the about and options screens to the new child window system
Thefirey33 Feb 24, 2026
f362dff
added the idea for fixing the code editor into a TODO and finish up.
Thefirey33 Feb 24, 2026
00ed581
Fix problem with props image not cropping correctly + implement base for
sudoker0 Feb 25, 2026
3437526
Merge branch 'tgui-fresh' of https://github.com/CDevv/rpgpp into tgui…
sudoker0 Feb 25, 2026
5557f44
Fix #22: Added corresponding Unload function to Load function wherever
sudoker0 Feb 25, 2026
bc8ce83
Implemented very, VERY basic viewing of props
sudoker0 Feb 25, 2026
bd7ee51
Added the base for resizable box in raylib canvas
sudoker0 Feb 25, 2026
ddc947e
Finalize Dialogue uspport - line adding and line removing
CDevv Feb 25, 2026
a6de440
Unload the render texture in WorldView
CDevv Feb 26, 2026
46aa6b9
Partial fix #22: Resolved a number of memory leak issues (not all of
sudoker0 Feb 26, 2026
c865667
Partial fix #22: Resolved one memory leak
sudoker0 Feb 26, 2026
3a6bf25
Merge branch 'tgui-fresh' of https://github.com/CDevv/rpgpp into tgui…
sudoker0 Feb 26, 2026
a7d6353
Implemented resizable and draggable atlas/collision box.
sudoker0 Feb 27, 2026
220678e
Basic Project exporting
CDevv Feb 27, 2026
5fca1ce
Added translations, improve properties box, added property box to
sudoker0 Feb 27, 2026
219ee44
Merge branch 'tgui-fresh' of https://github.com/CDevv/rpgpp into tgui…
sudoker0 Feb 27, 2026
1bd9273
workinprogress (1/2): added the ability to edit the collision and
Thefirey33 Feb 28, 2026
08e0d02
Set base for editing the size of atlas/collision rect through the
sudoker0 Feb 28, 2026
3bf949f
code linting: replaced all instance of 4-spaces with tabs
sudoker0 Feb 28, 2026
c1c597e
Added support for nested translation files. Converted en_us and vi
sudoker0 Feb 28, 2026
a81e3e1
added translation checker (available via xmake run translation_checker)
sudoker0 Feb 28, 2026
9b581d7
Added tasks for running translation checker, added notice for
sudoker0 Feb 28, 2026
a640b7c
Implement corner resizing!
sudoker0 Feb 28, 2026
929e7ba
Added translations for empty view
sudoker0 Feb 28, 2026
54edf9a
Added translations for dialogueFileView
sudoker0 Feb 28, 2026
e2ee027
Get filename, not entire path
sudoker0 Feb 28, 2026
5c7963a
Run user's project after build on Windows
CDevv Feb 28, 2026
cedede0
Merge branch 'tgui-fresh' of https://github.com/CDevv/rpgpp into tgui…
CDevv Feb 28, 2026
68c8b5d
Re-implement checker into Lua, command is now "xmake check_translation"
sudoker0 Feb 28, 2026
996e539
Merge branch 'tgui-fresh' of https://github.com/CDevv/rpgpp into tgui…
sudoker0 Feb 28, 2026
3ae528a
Ehh?
sudoker0 Feb 28, 2026
c31d17a
Add bulgarian translation + init audio device in RPG++ base game
CDevv Feb 28, 2026
c4fd758
Added interactable type field (not interactable for some reason)
sudoker0 Feb 28, 2026
58785dd
Merge branch 'tgui-fresh' of https://github.com/CDevv/rpgpp into tgui…
sudoker0 Feb 28, 2026
3e52e67
basic functionality back
Thefirey33 Feb 28, 2026
4d9fddb
Update Vietnamese translation
sudoker0 Mar 1, 2026
5979920
Fix combobox clipping, making it not showing the dropdown
sudoker0 Mar 1, 2026
16ee931
Improve UI for the interactable type dropdown
sudoker0 Mar 1, 2026
1c9551c
[1.5/2] workinprogress: added ability to edit current animation data,…
Thefirey33 Mar 1, 2026
2ff3c34
add TODO for the timeline and finish up for today, because i need sleep
Thefirey33 Mar 1, 2026
ac5e3d7
Merge branch 'tgui-fresh' of https://github.com/CDevv/rpgpp into tgui…
Thefirey33 Mar 1, 2026
4483e15
Modify to use unique_ptr instead of raw pointers
sudoker0 Mar 1, 2026
08fd9e6
Code linting
sudoker0 Mar 1, 2026
2941b70
Background according to current theme, removed gui reloading, added b…
CDevv Mar 1, 2026
a22fc14
Font file support with FontView and FontFileView
CDevv Mar 1, 2026
820bf13
Implemented dynamic language changing
sudoker0 Mar 1, 2026
275187f
finish: animation editor and actorFileView editing
Thefirey33 Mar 1, 2026
8a0f769
Update Vietnamese translation
sudoker0 Mar 1, 2026
ff398c3
Added "bindCustomTranslation"
sudoker0 Mar 1, 2026
ae4250c
Added mechanism to purge dead translation listeners
sudoker0 Mar 2, 2026
6f12d51
Added more translations, added image to readme
sudoker0 Mar 2, 2026
c1ebc63
More translation changes
sudoker0 Mar 2, 2026
de32978
Fix #29: The MenuBar does not cause a segfault on destruction
CDevv Mar 2, 2026
9f911ae
Basic Image viewing within the editor
CDevv Mar 2, 2026
00f2be7
Small update to tasks
sudoker0 Mar 2, 2026
1a0605b
Added TWM theme
sudoker0 Mar 2, 2026
b181501
Sound and music previewing: SoundFileView and SoundPlayer
CDevv Mar 2, 2026
3131cc2
Merge branch 'tgui-fresh' of https://github.com/CDevv/rpgpp into tgui…
CDevv Mar 2, 2026
f5cddb0
Fix: Music did not play when user sets a position before the music wa…
CDevv Mar 2, 2026
8e95c70
Fix bug on Windows for translation checker
sudoker0 Mar 2, 2026
aa0bbf6
Fix #23
sudoker0 Mar 4, 2026
23dc64f
Fuck you #23 :nikoexcited: :nikoexcited: :nikoexcited:
sudoker0 Mar 4, 2026
2bbadc1
Added performance overlay (enable using F3)
sudoker0 Mar 5, 2026
3467c5c
Code linting
sudoker0 Mar 5, 2026
df1979d
Restore certain dynamic theme switching
sudoker0 Mar 6, 2026
5340dd0
ditto
sudoker0 Mar 6, 2026
32bb1c8
base for the conversion to the canvas based code editor
Thefirey33 Mar 6, 2026
6f6cb6e
Merge branch 'tgui-fresh' of https://github.com/CDevv/rpgpp into tgui…
Thefirey33 Mar 6, 2026
fcbba5b
base for the conversion to the canvas based code editor
Thefirey33 Mar 6, 2026
62931da
updated translation set for uk_ua and de_de
Ivan-Krul Mar 7, 2026
2e18c54
Use EmptyFileViews for Scripts for now
CDevv Mar 9, 2026
43cdfc0
Creating Actor and Prop resources
CDevv Mar 9, 2026
8813a90
playtesting.
Thefirey33 Mar 9, 2026
c0d616b
No watching of stream when playtesting on Linux
CDevv Mar 9, 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
  •  
  •  
  •  
Binary file removed .DS_Store
Binary file not shown.
3 changes: 3 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
UseTab: Always
IndentWidth: 4
TabWidth: 4
108 changes: 108 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL Advanced"

on:
push:
branches: ["main", "tgui-fresh"]
pull_request:
branches: ["main", "tgui-fresh"]
schedule:
- cron: "19 2 * * 1"

jobs:
analyze:
name: Analyze (${{ matrix.language }})
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners (GitHub.com only)
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
permissions:
# required for all workflows
security-events: write

# required to fetch internal or private CodeQL packs
packages: read

# only required for workflows in private repositories
actions: read
contents: read

strategy:
fail-fast: false
matrix:
include:
- language: c-cpp
build-mode: manual
# CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'rust', 'swift'
# Use `c-cpp` to analyze code written in C, C++ or both
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive

# Add any setup steps before running the `github/codeql-action/init` action.
# This includes steps like installing compilers or runtimes (`actions/setup-node`
# or others). This is typically only required for manual builds.
# - name: Setup runtime (example)
# uses: actions/setup-example@v1

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality

# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- name: Run manual build steps
if: matrix.build-mode == 'manual'
shell: bash
run: |
sudo add-apt-repository ppa:xmake-io/xmake
sudo apt-get update
sudo apt-get install -y \
libx11-dev \
libxrandr-dev \
libxinerama-dev \
libxcursor-dev \
libxi-dev \
libgl1-mesa-dev \
mesa-common-dev \
xmake
xmake build --all -y

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
with:
category: "/language:${{matrix.language}}"
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ game-src/*/lib/
/game
build/
bin/
libs/
execs/**
*.bin
.cache/
Expand All @@ -58,3 +57,4 @@ imgui.ini
clangd/
game-src/
compile_commands.json
xmake-*.exe
9 changes: 0 additions & 9 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,9 +0,0 @@
[submodule "libs/luajit"]
path = libs/luajit
url = https://luajit.org/git/luajit.git
[submodule "libs/raylib"]
path = libs/raylib
url = https://github.com/raysan5/raylib.git
[submodule "rlImGui"]
path = rlImGui
url = https://github.com/raylib-extras/rlImGui
14 changes: 14 additions & 0 deletions .zed/debug.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[
{
"label": "Debug RPG++ Editor (Linux)",
"build": {
"command": "xmake",
"args": ["build", "--all"],
"cwd": "${ZED_WORKTREE_ROOT}",
},
"program": "${ZED_WORKTREE_ROOT}/build/linux/x86_64/debug/editor",
"request": "launch",
"adapter": "CodeLLDB",
"cwd": "${ZED_WORKTREE_ROOT}/build/linux/x86_64/debug",
},
]
11 changes: 11 additions & 0 deletions .zed/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"show_whitespaces": "selection",
"indent_guides": {
"active_line_width": 1,
"enabled": true,
},
"tab_size": 4,
"hard_tabs": true,
"show_wrap_guides": true,
"project_name": "RPG++",
}
17 changes: 17 additions & 0 deletions .zed/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Project tasks configuration. See https://zed.dev/docs/tasks for documentation.
//
// Example:
[
{
"label": "Run Editor",
"command": "xmake run editor",
},
{
"label": "Run translation checker",
"command": "xmake check_translation",
},
{
"label": "Build All",
"command": "xmake build --all",
},
]
86 changes: 69 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,87 @@
# RPG++

![logo](docs/logo.png)
---

RPG++ is an experimental 2D RPG game engine written in C++. It is currently in early development, but contributions are welcome!

## Building
***This is a fresh restart, there are currently no RPG++ lua bindings, the engine hasn't been implemented in this branch yet.***

<img src="docs/readme_img1.png" alt="screenshot of engine" width="640">

Requirements
---

To build RPG++, you'll need to install the following tools/packages:
- **For all platforms**:
- [xmake](https://xmake.io/) (follow the instructions on the website to install XMake on your system)
- [git](https://git-scm.com/)
- Specifically for _Linux_:
- gcc, g++, make, and ninja (on Debian-based distros, you can install this via `sudo apt install build-essential`)
- libx11-dev, libxrandr-dev, libxinerama-dev, libxcursor-dev, libxi-dev, libgl1-mesa-dev, and mesa-common-dev (Debian-based distros can install this via `sudo apt install libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libgl1-mesa-dev mesa-common-dev`)
- Specifically for _Windows_:
- Visual Studio 2019 or later with Desktop development with C++ (community edition will suffice)

Building
---

Clone the project using git with

This project uses [XMake](https://xmake.io/) so you may need to download it for your system.
```bash
git clone https://github.com/CDevv/rpgpp
```

First, you have to initialize the specified submodules. use `git submodule init` to initialize the paths. Then use, `git submodule update` to clone the submodules to your system.
To build all targets, run

After cloning the submodules to the paths, check your `/rlImGui` directory.
```bash
xmake build --all
```

Additional dependency is LuaJIT. After getting the luajit xmake package, you need to copy the luajit executable into the `execs/` directory.
If xmake failed to build, try force reinstalling the packages with
```bash
xmake clean --all # remove build artifacts
xmake require --clean # remove installed package cache for project
xmake require --force # force install of package
```

Here are the xmake directories on different platforms:
Running
---

Linux: `/home/name/.xmake/packages/l/luajitv2.1.0-beta3/aaeb029456e54f29b904a191c96508d2/bin/`
To start the editor, run

Windows: `AppData\Local\.xmake\packages\l\luajit\v2.1.0-beta3\7780bd1b1c8146cd984bf13d60e49407\bin`
```bash
xmake run editor
```

Mac: `/Users/nikodev/.xmake/packages/l/luajit/v2.1.0-beta3/bin`
Translation
---

(Do not copy it blindly, the commit number might be different)
Translation are located in `resources/translations`, containing JSON files with their names being the language code.

Finally, use `xmake build --all` to build all targets.
Each JSON files is structured as either flattened JSON:
```json
{
"language": "<name_of_language>",
"translation.key": "<translation_value>"
}
```
or nested JSON:
```json
{
"language": "<name_of_language>",
"translation": {
"key": "<translation_value>"
}
}
```
Both types are supported, though we recommend using nested JSON for better organization.

## Running
If you wish to improve an existing language, you can do so by modifying the language file of the language you know. Or if you want to add a new language, create a new JSON file within the folder, specify the language via the `language` key, and then translate the root translation file (en_us.json). The engine will automatically pick it up.

Use `xmake run editor` to run the editor.
To check for translation progress, you can do so via
```
xmake check_translation
```

## License
License
---

This software uses the MIT License.
This software is licensed under the MIT License.
Binary file added docs/readme_img1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed include/.DS_Store
Binary file not shown.
Loading
Loading