Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update local repo #1

Open
wants to merge 694 commits into
base: master
Choose a base branch
from
Open

Conversation

HitCoder9768
Copy link
Owner

No description provided.

RobertBColton and others added 30 commits July 20, 2019 20:38
Look for opening parenthesis of a type cast on the right side of the type, and treat constructors as a cast. Locals will now be correctly picked up and have the correct access when passed as arguments to constructors.
Ensure that string construction is logically equivalent when compared to string literals.
Capture the mouse on mouse down events and release it on mouse up events. This allows the game to detect mouse release outside the game window if the initial mouse press was done inside the game window.
This allows the game to receive mouse release events from outside the game window when the mouse was initially pressed inside the game window.
Combine KDialog and Zenity based on Desktop Environment. Use KDialog on KDE desktop environments, and use Zenity for GTK+ on non-KDE desktop environments. Combines the two widgets systems using a common interface, CommandLineWidgetEngine.
The function needs to offset the button index by one because mb_none is 0, like the other mouse functions.
Static link the library using pkg-config and make font_add definition match its declaration.
Use De Morgan's law to handle virtual key release when leaving its rectangle or releasing the mouse button.
Check if not dirty and return rather than checking if dirty and indenting a block of code. This will make future changes clearer and easier to digest.
Switch fonts over to AssetArray
* Update freetype extension
* Refactor away the font glyph range count and glyphs counts
* Add OffsetVector to AssetArray (#1839)
* Rename Font to SpriteFont, fonts to sprite_fonts; remove bool font::destroyed (#1841)
* Comment out font_exists check in GM test GMKs for now
* Make SDL and Win32 quit use the existing game exit code
* Provide an overload for game_end which does not change the game exit code
* Allow extensions, such as GTest, to effect the exit code
* Change GTest to set the game return exit code to 43 for an expects/soft assert failure
* Fix GTest extension Makefile for Windows so that it links the dll
Bring back the explicit xvfb screen size that a131434 removed.
Update all of the regular CI tests to assert the test harness game return code.
…1831)

Fixes the window_set_sizeable(), update window_set_fullscreen(), and a few new functions (window_set_min/max_width/height()).
You can't minimized the game via alt+tab if both fullscreen and stayontop.
I also intend to rewrite `fileio.cpp` for Win32 that doesn't use POSIX API calls and supports UTF-8, in a different PR.
Previously, execute_program would crash if you dragged the window by the title bar or clicked the close button over an over while a program is running with the wait argument true, and the game would also crash with execute_shell_for_output whenever trying to close a NULL handle, due to trying to run a nonexistent file or invalid command.
The old bitmap reader was difficult to reuse or extend. This new approach trades the single-copy reader approach for the ability to pass in arbitrary blocks of memory to decode. We could technically accomplish the same thing by just using a stringstream under the hood, but I'm not in the mood.

Also plugs in actual bitmap headers instead of trying to do everything in terms of hard-coded offsets in the file. This is in the interest of extending the reader with support for compression schemes (eg, RLE).
Add extension to output executable if it isn't already present. This prevents issues with the compiler toolchain (namely, MinGW) doing so for us, making it impossible to add resources or launch the game.
Someone left it point to their personal dropbox, then eventually deleted it.

Also, DRY
MSVC on a floured french pita lightly drizzled in el chupacabra sauce. Hurry up and act now while supplies last.
RobertBColton and others added 30 commits September 12, 2021 20:01
* Sort headers efficiently
* Fix memory leak on reference-counted COM interfaces by using ComPtr
* Fix memory leak in `sound_effect_set` by using stack-allocated vector for effect description arrays
* Implement all sound effect parameter functions using a generic templated helper
* Use nearest neighbor to set alpha of removed color from images like GM8.1
* Give each sprite frame its own bottom-left transparency pixel like GM8.1
* Use removed color instead of black in transparent areas like GM8.1
* Ensure isolated pixels are always visible like GM8.1
Removes unused POSIX headers which aren't present on Windows.
Fix DnD in emake and add tests
* emake doesn't show error finding input file bug fix
Co-authored-by: saifkandil <saifsaalaheldeen2002@gmail.com>
* fix graphics system build failed
* add vulkan support

* missing newlines
* fix default font

* gmsux

---------

Co-authored-by: Goombert <robertbcolton@gmail.com>
* add short json support

* logic is done

* bug fixes

* fix crash on passing paramenters

* enhance code complexity, few bug fixes

* bug fixes

* update documentation

* fix typo

* fix json crash when passing array of objects

* update documentation

* add unit tests

* fix naming

* bug fixes, add more tests, and improve SOG

* bug fixes, more tests

* add space removal system

* add space removal system

* bug fixes, more tests

* bug fixes

* finalizing tests, bug fixes

* more tests

* fix double quotes read/write

* bug fixes

* update adding missing keys call for better readability

* add tests for JSON readers and parsers

* fix short JSON tests name

* last commit

* add deleted files

* readd deleted files

* few improvements

* improve tests

---------

Co-authored-by: saifkandil <saifsaalaheldeen2002@gmail.com>
* implemented json_encode()

Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>

* fixed json_encode and fixed tests

Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>

* ignore this

Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>

* bug fixes

Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>

* bug fixes

Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>

---------

Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
* moving to std::sstream instead of std::string

---------

Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
… files (#2355)

Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
* add instance_create_depth

* fix instance_copy init order

* Update ENIGMAsystem/SHELL/Universal_System/Instances/instance_create.h

* declare instance_create_depth
* fixed json extension conversion to ds map and improved naming of some files

Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>

* fix #2354

Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>

---------

Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
* fix #2339 the right way

Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>

* Update json.cpp

---------

Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
)

Closes #1881. This is the second part of my first PR #2343.

This PR is part of the ``Google Summer of Code 2023`` program.

I will be updating my Logs inside my [domain](https://k0t0z.github.io).

#### Note: ✔️ means that SOG/unit tests for the
corresponding function are provided.


---------------------------------------------------------------------------------------------------

✅ [Leaderboards
API](https://github.com/YoYoGames/GMEXT-Steamworks/wiki/Leaderboards)
 - ✅ steam_create_leaderboard();
 - ✅ steam_upload_score();
 - ✅ steam_upload_score_ext();
 - ⬜ steam_upload_score_buffer();
 - ⬜ steam_upload_score_buffer_ext();
 - ✅ steam_download_scores();
 - ✅ steam_download_scores_around_user();
 - ✅ steam_download_friends_scores();
 - ⬜ ``LeaderboardEntry`` data type
 - ✅ ``LeaderboardDisplayType`` constant
 - ✅ ``LeaderboardSortOrder`` constant


---------------------------------------------------------------------------------------------------

✅ [Social
API](https://github.com/YoYoGames/GMEXT-Steamworks/wiki/Social)
 - ✅ steam_set_rich_presence();
 - ✅ steam_set_clear_presence();
 - ✅ steam_user_set_played_with();
 - ⬜ steam_get_friends_game_info();
 - ✅ steam_get_user_avatar();
 - ✅ steam_image_get_size();
 - ✅ steam_image_get_rgba();
 - ✅ steam_image_get_bgra();
 - ✅ steam_image_get_argb();
 - ✅ steam_image_create_sprite();


---------------------------------------------------------------------------------------------------

⬜ [Cloud
API](https://github.com/YoYoGames/GMEXT-Steamworks/wiki/Cloud)
 - ⬜ steam_is_cloud_enabled_for_app();
 - ⬜ steam_is_cloud_enabled_for_account();
 - ⬜ steam_get_quota_total();
 - ⬜ steam_get_quota_free();
 - ⬜ steam_file_exists();
 - ⬜ steam_file_size();
 - ⬜ steam_file_persisted();
 - ⬜ steam_file_write();
 - ⬜ steam_file_write_file();
 - ⬜ steam_file_read();
 - ⬜ steam_file_share();
 - ⬜ steam_file_delete();


---------------------------------------------------------------------------------------------------

## Must Be Done Before Merging:

✅ Adding support for other platforms in the Makefile
file.
✅ Switching the ``Default`` property in the Steamworks
& Json extensions YAML file to ``false``.
✅ Switching the ``cxxflags`` property in
``Compilers/Linux/gcc.ey`` to ``-fdiagnostics-color=always``.
⬜ Reviewing all error messages and documentation in
newly added files.
✅ Adding the license to all newly added files.
✅ Providing installation instructions for all
platforms.
✅ Modifying the extension to call ``steam_init();``
automatically when enabled.
✅ Match all naming conventions with GMS's Steamworks
extension.
⬜ Testing the APIs with the latest version of
Steamworks SDK, Steam, OS version, etc.
⬜ Must test all EDL scripts in the example game
provided.
⬜ Providing SOG/unit tests for all functions written
(this need to be studied carefully as in order to test the C++ wrapper
tester must have steam installed and running or I may use mocks).
✅ Clearing garbage files.
✅ ``DEBUG_MESSAGE()`` must exist only in APIs files.
Try to remove it from wrapper files. Try to make the wrapper independent
on ENIGMA.
✅ Fix example game background design.
⬜ Update the example game to match the latest version
of [GMS Steamworks
extension](https://marketplace.yoyogames.com/assets/10709/steamworks-ext).

:white_check_mark: The compiler must write a file next to the exe.
:white_large_square: Review includes.

:white_check_mark: Commit the example game again and remove it from
``.gitignore`` file.
:white_large_square: The extension and the example must be compatible
with GameMaker.
:white_large_square: Set the title for Steamworks demo to ``Created with
ENIGMA``.
:white_large_square: Monitor GMS's terminal behavior.


---------------------------------------------------------------------------------------------------

## Dependencies:

- [Social
API](https://github.com/YoYoGames/GMEXT-Steamworks/wiki/Social) depends
on this #2309 (#2361).


---------------------------------------------------------------------------------------------------

## Good to have:

:white_large_square: Test the changes with
[RGM](https://github.com/enigma-dev/RadialGM).
:white_large_square: Solve all build warnings.

---------

Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
Co-authored-by: saifkandil <saifsaalaheldeen2002@gmail.com>
Co-authored-by: = <=>
Co-authored-by: --replace-all <--replace-all>
Co-authored-by: Robert Colton <robertbcolton@gmail.com>
Fixes #2370.

Previously the userId of the steam users was shown as it is in integer
form.

Since this is not desirable, this PR converts the integer into a
**hexadecimal number** , prepends it with `@i64@` and appends it with
`$i64$` before getting output on the leaderboard.

changed lines 53/54 in the
[file](https://github.com/enigma-dev/enigma-dev/blob/3918af3dc40734465b355a7d52cb9f9f93f5a8d6/ENIGMAsystem/SHELL/Universal_System/Extensions/Steamworks/gameclient/utils/gc_leaderboards_score_downloaded_cookies.cpp#L53)
to handle hex conversion.
The next PR after #2350 and #2343.

This PR contains the following changes:

 1. Update SDK from v1.57 to v1.58a.
2. Improved the Shell Makefile (the part related to the Steamworks
extension).
- Moved building the fake API process inside a separate Makefile
specific to the fake API.
 3. Cleaned some comments including flushing the Steamworks Makefile.
 4. Fixed the README.md file.
 5. Improved documentation.
 6. Created a separate Makefile for the fake Steamworks API.
 7. Added v1.58a official headers.
 8. Fixed .gitignore file.

---------

Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet