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

Fix SDL Without Breaking Eveything Else #1899

Merged
merged 1 commit into from
Mar 8, 2020
Merged

Fix SDL Without Breaking Eveything Else #1899

merged 1 commit into from
Mar 8, 2020

Conversation

time-killer-games
Copy link
Contributor

@time-killer-games time-killer-games commented Mar 7, 2020

Window scale was set to 0x0 this solves the problem by computing window scale correctly.

Screenshot_20200307_124350

it was a one-liner change fundies told me to do a while back. He knew all along this would fix it because he gave me the idea. Yet he went ahead and made a pr with tons of my changes removed that actually benefited the project hugely just to piss me off.
@time-killer-games
Copy link
Contributor Author

@JoshDreamland you mind restarting Appveyor ci?

@codecov
Copy link

codecov bot commented Mar 7, 2020

Codecov Report

Merging #1899 into master will increase coverage by <.01%.
The diff coverage is 100%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #1899      +/-   ##
==========================================
+ Coverage   28.34%   28.35%   +<.01%     
==========================================
  Files         167      167              
  Lines       16983    16983              
==========================================
+ Hits         4814     4815       +1     
+ Misses      12169    12168       -1
Impacted Files Coverage Δ
ENIGMAsystem/SHELL/Platforms/General/PFwindow.cpp 42.55% <100%> (ø) ⬆️
ENIGMAsystem/SHELL/Universal_System/roomsystem.cpp 29.35% <0%> (+0.22%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d5fc829...fec6c17. Read the comment docs.

@time-killer-games
Copy link
Contributor Author

@JoshDreamland now passing and ready to be merged.

@time-killer-games
Copy link
Contributor Author

@JoshDreamland you forgot to mudge

@JoshDreamland
Copy link
Member

It sounded as though fundies had something to say.

@time-killer-games
Copy link
Contributor Author

I'm kinda waiting for that.

@fundies
Copy link
Contributor

fundies commented Mar 8, 2020

While I have confirmed it does fix the problem. I don't remember exactly why. My best guess is the window scale was 0x0 or 1x1 or something but I can't remember for sure. If you know the actual cause please add it to a comment or the commit message for posterity. Also, quit being such a pain in my ass thanks

@fundies fundies mentioned this pull request Mar 8, 2020
@JoshDreamland JoshDreamland merged commit 460577f into enigma-dev:master Mar 8, 2020
@JoshDreamland
Copy link
Member

Documenting it here is fine. Go ahead and update the PR description.

@time-killer-games time-killer-games deleted the patch-34 branch March 8, 2020 17:01
van0014 added a commit to van0014/enigma-dev that referenced this pull request Feb 3, 2021
* Match LGM's default extensions (enigma-dev#1893)

Enables the same set of default extensions (+GTest) in simple tests as in lgm

* More event tests (enigma-dev#1891)

Extends the inheritance tests with more events.

* More useful emake --help (enigma-dev#1892)

Help printing was being suppressed. Additionally, it was a bit stale.

* C++17 for the CI (enigma-dev#1894)

This PR brings the CI up to c++17 but it comes with some good and bad

Good:
* Brings the ci up to gcc-9 and in turn c++17
* Removes our dep on boost filesystem
* Fixed small bug in regression script that caused it to fail when deps changed between commits

Bad:
* "windows.h" has a conflict with std::byte so anywhere it's included I had to wrap it in a macro to fix the conflict.
* Ubuntu's ppa for newest gcc don't have multilib gccs so I had to disable our 64->32bit builds but this is a very uncommon scenario.
* Our current JDI isn't c++17 compliant but only clang on osx seems to care and that job was already broken.

Note: emake still depends on boost options but that can be addressed in a separate PR

* [Win32] Update comment on display_get_x/y() funcs (enigma-dev#1895)

The "primary" monitor on Windows is always the one at 0,0.
https://docs.microsoft.com/en-us/windows/win32/gdi/multiple-monitor-system-metrics

* Collision tests (enigma-dev#1896)

* [FileDropper] Keep Window Focus After File Dropped (enigma-dev#1897)

* Fix GRPC Server Compile Game Crashes (enigma-dev#1902)

* Change emake plugin proto compile method to take a const reference and copy the game into project rather than transfer ownership which caused double delete.
* Use reference capture in proto compile RPC method instead of value capture and copying/casting.
* Update GRPC server to use standard filesystem rather than the Boost one.

* Fix SDL Without Breaking Eveything Else (enigma-dev#1899)

it was a one-liner change fundies told me to do a while back.

* Fix Default Proto Makefile Rules (enigma-dev#1905)

Correct fundies typo (9eefc9a) on proto rules and restore the comment Rusky (eabb1b4) originally added there.

* Default Makefile Consistency (enigma-dev#1906)

Add the underscore we forgot in enigma-dev#1905 to OBJ_DIR in the default makefile so all of the top-level makefiles are consistent with respect to OBJ_DIR usage.

Note: SHELL makefiles still use the old OBJDIR without underscore because fundies did not touch those. However, they could be cleaned up at a later time by also using shared makefiles in a similar fashion.

* c++17 for the engine (enigma-dev#1907)

Stop forcing C++11 and allow C++17 and newer. Also add more badaids around `std::byte` and `windows.h` conflict.

* [Win32, X11, SDL] Set Window Icon from Sprite at Runtime (enigma-dev#1904)

Well, for the first time in the roughly 10 years the ENIGMA game engine has been around, you can now natively set a PNG icon for your game that will show in the title bar, task manager, system monitor, and Alt+Tab process swapper. No thanks to those fat lards Josh, Robert, and fundies. No offense, I love you guys, but I couldn't take it any longer so I decided to step in and add Linux icon support. The Win32 and SDL equivalents have also been added in this pr.

Includes the following functions:

    window_get_icon_index() returns the sprite index of the current icon

    window_get_icon_subimg() returns the sprite subimg of the current icon

    void window_set_icon(ind, subimg) sets the icon to use for the game from the given sprite resource
    Screenshot_20200221_180626
    As a small side note - this pull request also allows capturing SDL's window handle on linux for widget use. Although I still haven't fixed the SDL bug where the game doesn't respond and then segfaults, if you click the close button in the main game window's title bar over and over while a dialog is open. Not many people will do that so it's not a huge bug.

* fix warning ul -> lu (enigma-dev#1909)

* fix asan vertex leaks (enigma-dev#1908)

* fix asan vertex leaks
* fix opengl1
* fix dx

* i made a boo boo, yeah! (forgot icon pr stuff) (enigma-dev#1910)

* Init window_get_icon_index() as -1 (enigma-dev#1915)

this is to prevent it from returning a valid sprite index when no sprite window icon was previously set

* fix shader leaks (enigma-dev#1911)

* fix texture leak (enigma-dev#1913)

* fixes emake output for "--list" & "--server" and moves log files to /tmp (enigma-dev#1917)

* emake better "Collision System" --help (enigma-dev#1920)

* actually disable grpc when no grpc & fix grpc hang on linux (enigma-dev#1919)

* actually disable grpc when no grpc
* fix grpc hang

* [BGRA->ARGB] allow making prepending size optional relative to use case (enigma-dev#1912)

allow making prepending size optional relative to use case

* Include RadialGM build in ENIGMA CI (enigma-dev#1922)

The RGM build will be included as a template from the RadialGM repository. This should cut down on breakages due to changes in ENIGMA.

* More Reliable window_set_showborder() Function (enigma-dev#1923)

The previous method made the window change position to weird places on some lesser used WM's such as Budgie. This implementation should be less WM-dependent and a more universally correct approach.

* [JDI] Remove Deprecated "register" Keyword (enigma-dev#1925)

Includes a small tweak to fix the build on some FreeBSD systems, as well.

* oopsie on debug (enigma-dev#1927)

He forgot to actually check the condition in a few places.
Co-authored-by: Greg Williamson <[email protected]>

* Fix RegistrySpoof Extension (enigma-dev#1929)

Include correct INI header.

* Emake build refactor (enigma-dev#1928)

* Links compiler to emake instead of loading functions at runtime
* Replaces shared makefile system with a library (Engine just `#includes` shared cpps now)
* Move duplicate `darray` to shared (until we remove it permanently)
* Fixes main makefile to depend on files instead of phony targets so things get rebuilt when dep changes

* [All Platforms] Rework Window Handle (enigma-dev#1854)

Refactor how window_handle is implemented to extend support to SDL.

---

This gives extensions (i.e. *.dll, *.dylib, *.so, etc.) and shell scripts (i.e. execute_shell_for_output, execute_shell, execute_program, etc.) access to window handle on all platforms except Android. Android threw errors for unknown types being used for the android window and surface, which is odd because I'm using the exact types specified by SDL docs; i guess i need to include a proper header but I don't know what that is and I've already tried the header I thought i needed but it didn't work out. so anyway, I commented out android's window handle code as a placeholder file for whenever we do add it correctly. As for the other platforms, this pr also makes the window handle more universal, expecting to use the same variable names for the window handle, and related platform-specific things such as an HINSTANCE for Windows (enigma::hInstance), and a X Window System Display * for Linux (engima::x11::disp), and these variable names are shared across the original platforms as well as their SDL equivalents. So, please do not change these variable namess one place, without changing them everywhere else they are used in the engine.

A follow up pr will need to implement external_call/define/free() on all non-Windows platforms, as well as fix the currently broken Windows implementation; this pr is in preparation for that. Also this pull request statically links SDL on all platforms.

* Allow emake to specify ENIGMA path (enigma-dev#1930)

* fix borderless toggle (again) (enigma-dev#1934)

ok, so my last fix wasn't so great. I wanted to keep the client area of the window to not change position on screen when toggling the border, and since every window manager handles this differently, i decided to just revert this back to how it originally was, and forget about that all together.

* Allow Drag and Drop when Running Program as Admin (enigma-dev#1935)

* Fix Drag & Drop Extension for Outdated MinGW (enigma-dev#1940)

* EnigmaBot Authorization (enigma-dev#1943)

Put the authorization token in the HTTP header now as recommended by GitHub.
https://developer.github.com/changes/2020-02-10-deprecating-auth-through-query-param/

* [GetDirectory] Fix WinXP build (enigma-dev#1942)

Also fixes CI.

* GLXContext: Hard-code minimum GL version (enigma-dev#1947)

Fixes some misbehavior on certain graphics cards.

* Turn down GLES version so software renderer works (enigma-dev#1948)

* these functions were written by a dummy (enigma-dev#1949)

the fname argument needs quotes around it to accept spaces and it also needs a space between that and the args argument to the fname and first argument aren't fused together like Frankenstein's monster. Whoever wrote these functions initially was on crack. At least now, it works how it's supposed to, like it does on Windows, thanks to me. I can't believe this has been broken for the 10+ years ENIGMA has been around lol

* Shell Execution Prompts (enigma-dev#1955)

* Update About.ey (enigma-dev#1960)

Add warning about threaded dialogs on OS X.

* Build emake using cmake (enigma-dev#1931)

Partner of enigma-dev/RadialGM#107.

* Type Define Window Identifiers (enigma-dev#1966)

Allows there to be some differentiation between a window id and a std::string that is not a window id.

Additonally, for clarification, I renamed window_id_init() to window_init() because it initializes all window related constants to be retrieved natively from SDL's window, not just the window id number by itself.

* File I/O Test Cleanup (enigma-dev#1952)

* Ensure file I/O test cleans up all files created.
* Test directory deletion too.

* Cleanup Tests (enigma-dev#1956)

* Deduplicate test redundancy.
* Fix common test includes

* AssetArray for sprites (enigma-dev#1937)

Use AssetArray to manage sprite resources. Restructure to co-locate data somewhat (individual coordinate values each had their own vector, before). More work to be done, there. Moves more pixmap tooling into common routines.

* Expand Test Harness (enigma-dev#1946)

* Ensure file I/O test cleans up all files created.
* Migrate harness to Azure
* Use static instance for test harness valid configs.
* Deduplicate test redundancy.
* Iterate regression tests, too.

* Don't center game window on room start (enigma-dev#1968)

* Background tests (enigma-dev#1971)

* [X11] Allow Programatically Setting Window Size... (enigma-dev#1970)

...even when you have a fixed-sized window, (bug-fix).

When the window is not resizable, XResizeWindow merely generates a ConfigureRequest, which is subsequently ignored.

* Fix Sprite Ids (enigma-dev#1979)

* Swap SDL fullscreen modes (enigma-dev#1981)

Try FULLSCREEN_DESKTOP first, then fall back to FULLSCREEN.

* Expand execute_shell security measures to winblows (enigma-dev#1958)

* AssetArray for Backgrounds (enigma-dev#1975)

Use AssetArray for background storage. Similar to the sprites change, but now with fewer breaking mistakes.

* Fix Windows FFI (enigma-dev#1984)

FFI_STDCALL is not available on 64 bit libffi

* Prune some defunct audio systems (enigma-dev#1983)

* Fix string cast (enigma-dev#1990)

DLL code was previously casting to string and then calling `.c_str()` on it; should have casted to `const string&` instead.

* Cross-platform External Libraries (enigma-dev#1992)

* Make an extension for the external functions. (disabled by default since there's a dependency)
* Add the extension to the CI to be built. (though not fully tested yet)
* Use function icon for extension specially exported from Josh's Calico.
* Generalize the external functions & code used to load the library files.

* Fix External Functions Extension Icon (enigma-dev#1995)

* Remove some icky filesystem stuffs from compiler (enigma-dev#1999)

* Fix Rebuild All (enigma-dev#1997)

Guard against null exe filename & fix appending of the file extension.

* Remove "Retry" Button from all Errors... (enigma-dev#1959)

Remove "Retry" Button from all Errors and remove "Ignore" from fatal

* asset_get_index/type (enigma-dev#1986)

* Implement asset_get_index/type
* Have JDI include shared/ in its search directories

* Update backgroundinit.cpp (enigma-dev#2005)

* Update Makefile (enigma-dev#2006)

* Fix gmx path background_room (enigma-dev#2011)

* Move mingw cross jobs to azure / arch (enigma-dev#2010)

* appease ci gods (enigma-dev#2015)

Co-authored-by: Greg Williamson <[email protected]>

* Add new line to DEBUG_MESSAGE (enigma-dev#2013)

* Fix Windows Fullscreen (enigma-dev#2020)

Disable resizing of the window in fullscreen mode.

* Add Shader Uniform Array Functions (enigma-dev#2022)

* Relinking Build Fixes (enigma-dev#1988)

* Fix Conflicting dllimport Macro (enigma-dev#2025)

* Fix Execute Shell for Output Freeze (enigma-dev#2029)

* Temporarily remove window message pump blocking output.
* C99 zero initialize several utility structs.
* Close process and thread handles before reading output as Microsoft does.
* Use synchronous read output loop demonstrated by Microsoft.
* Remove associative UTF-8 conversion of output which was redundant.

* Execute Program Wait Optimization (enigma-dev#2030)

Improve responsiveness by waiting for and processing messages when they are received instead of at fixed intervals.

* Fix Win32/SDL Mouse Capture Anomalies (enigma-dev#2039)

Release mouse capture when all mouse buttons have been released and switch SDL right and middle mouse constants.

* Add Directory Destroy Alias (enigma-dev#2036)

* Show Debug Message Cleanup (enigma-dev#2037)

* Remove `show_debug_message` from the terminal I/O sources.
* Move common definition of function to `Widget_Systems/General/WSdialogs.cpp` for Win32, Cocoa, kdialog, & zenity.
* Flush stderr for the common version.
* Flush stdout for the None system implementation.

* Fix KDialog/Zenity Debug Message (enigma-dev#2042)

Add dispatch for current xlib widget engine.

* DirectSound Global Focus (enigma-dev#2044)

Allow sound to play like GM8.1 when the window is not focused.

* Cleanup Vestigial Catch Mouse (enigma-dev#2046)

* Cleanup Daft Window Procedure (enigma-dev#2045)

* Xlib Display Function Cleanup (enigma-dev#2047)

Delete redundant declarations and wrappers.

* Fix Xlib Sizeable Crash (enigma-dev#2050)

THE STATE OF THE WINDOW SHOULD NOT BE MADE TO DEPEND UPON OTHER STATE OF THE WINDOW THAT IT DOES NOT ACTUALLY DEPEND UPON ITSELF

* Cleanup I/O Handling (enigma-dev#2043)

Generalize the function and like GM8.1 do not exit on close button.

* Win32 Message Pumps Cleanup (enigma-dev#2057)

* SDL Keyboard Direct Scancodes (enigma-dev#2059)

Map the keycode to a scancode that SDL accepts and stop the function from crashing.

* Cleanup Win32 Keyboard Simulation (enigma-dev#2061)

* Stop polling any keyboard state at all, because it isn't necessary.
* Use MapVirtualKey to kindly provide a scancode for the virtual key.
* Use MAPVK_VK_TO_VSC_EX to have the scancode be escaped with the extended key high byte.
* Pass KEYEVENTF_EXTENDEDKEY only when the scancode indicates the virtual key is an extended key.
* Extract all of this into a helper method for good measure.

* Cleanup Win32 Direct Keyboard State (enigma-dev#2060)

Use GetAsyncKeyState like GM to provide actual direct keyboard state, fix crashes, and improve efficiency.

* Game Compilation Interrupt (enigma-dev#2068)

Add a new DLL procedure that flags ENIGMA to send a CTRL+C SIGINT to any child process groups, such as make or the game, it has spawned during the compilation phase. This facilitates an IDE or RPC to provide a stop button to the user which can be enabled as soon as the ide_dia_clear callback is fired.

* POSIX Build Stopping (enigma-dev#2070)

* Launch child processes in a new background process group like Win32.
* Redirect background process group STDIN to /dev/null to avoid SIGTTIN when reading.
* Reads from STDIN will return EOF to the child processes, such as Gradle, so they can properly exit.
* Wait on the process group at 10 millisecond intervals and check if the build is stopping.
* Send a CTRL+C inspired SIGINT to every process in the child process group when stopping.
* Wait on the entire child process group to exit so redirected output is completely flushed when stopping.

* Update Readme.md (enigma-dev#2078)

Include Patreon & Azure build status.

* Add issue templates (enigma-dev#2081)

Add issue template for bug tracker

* Update issue templates (enigma-dev#2082)

Try yaml at top

* fix azure cross build (enigma-dev#2083)

fix for makepkg; seems use .tar.zst now

* Issue Template Configuration & Feature Request Template (enigma-dev#2084)

* Update config.yml ENIGMA website url (enigma-dev#2085)

* Fix BMP Open in Binary (enigma-dev#2086)

* platform include don't need all that path (enigma-dev#2088)

* Termporary fix for CI (enigma-dev#2094)

Temp fix for msys keyring until msys gets updated on CIs

* Fix GMX Timeline Actions (enigma-dev#2093)

Move `ends_with` to shader string utility header as `string_ends_with` conforming to C++20 name and support paths to action node in GMX reader.

* Redo fileio with fstream (enigma-dev#2095)

Rewrite file_io using fstream and add debuging output

* EGM Events (enigma-dev#2089)

having fun

* Fix SDL Clipboard Namespace (enigma-dev#2096)

* Update azure-pipelines.yml (enigma-dev#2097)

* EGM events fixes (enigma-dev#2098)

All readers now take in event_data so the ide can handle loading events.ey. Fixes gmk DND to use object_names instead of ids

* Remove make directory setting. (enigma-dev#1996)

* Argument Relative Assignment Fix (enigma-dev#1991)

* Always assign argument_relative for clarity.

* libEGM GMX Persistent Ids (enigma-dev#1989)

* Use persistent ids across a GMX.
* First instance id in GM classic is actually 100001
* First tile id is 10000001 confirmed by Rusky

* only pad images in create texture (enigma-dev#2008)

* Stop API Enabling (enigma-dev#2103)

Require the stop API to be explicitly enabled so that programs like emake which don't need to run the build in a separate process group will continue to shutdown correctly when terminated.

* Default Font Fix Reflexive (enigma-dev#2106)

* Delete currentfont macro accessors.
* Add CurrentFont reflexive type.
* Add debug message for setting a non-existant non-default font.

* icon leak fix

* Finish EgmEvents (enigma-dev#2104)

* Check in a new events.ey file, and a proto that defines it.

Start work on a generalized, somewhat lax YAML to Proto reader.

* Finish the proto-yaml reader.

It is now capable of reading the new events.ey. It offers generic support for deserializing YAML to proto, including some special behaviors around repeated fields.

Specifically, if a proto message is a key-value pair, or more generally, has a key (name, id, key) field, a map can be used in YAML instead of a sequence specifying IDs. A sequence can also be used in these cases. If there is only one other field than the ID, proto-yaml allows it to be specified directly as the value, completely removing the key/value field names from the YAML.

* Break everything

* Plug the new event reader into the compiler. This kills the crab.

To-do:

- Test harness needs to be hooked in instead of being run ad-hoc with a gross makefile.
- There's an infinite loop somewhere; testing isn't finding it.
- Super check assumptions are wrong; super checks *can* use parameters. Compiler needs to be refactored further around how it treats super checks.
- Case insensitivity in param lookup maps. Currently retrieval of "key" will fail because it's called "Key" in the parameter value map.
- Need a method like ParamSubst that swaps in parameter names instead of argument spellings.
- Tons of migration work to get the whole compiler on the new system. Until then, resource names can't be used in filenames.

* josh helpless w/o me

* Finish adapting the new events file.

As far as I know, this fixes the new event system. Good as old.

Still a lot of work to be done migrating to this new system, but this is a good first step.

Minor to-dos remain:

- Mappings are still case-sensitive. In fact, the engine is case-sensitive, so we have to ToLower the identifying bits of function names.
- Human names for EventDescriptor structs don't replace parameter placeholders with the parameter name, so that's a bit tacky.

Apart from that, I think we're in business.

* fix typo; s/events.res/events.ey

* Fix makefile merges

* Move -lgtest after -lgtest-main

* Remove CommandLine/emake-tests/Makefile and old target.

No longer needed, and conflicting with main rules.

* Fix tests

* Fix tests some more.

Remove C++17 dependencies.
Clean up some crap I never ended up needing.
Make the new event consolidation logic in write_defragged_events consistent with one of the MANY places it is duplicated needlessly in write_object_data.
Long term, we need to rename the UsedEventIndex to DefraggedEvents so that people know what the fuck that is, and just hand that struct over to the write_object_data logic.

Fuck.

* Let Android build depend on libyaml-cpp-dev.

* Build yaml-cpp anew for Android.

* Make ymal-cpp build on Trusty, maybe

* Fix NoMoreHealth, delete events_localless.res

* Pull in EGM changes from rebase branch.

* Freshen. Merge master. Fix conflicts. Fix build.

* Pull in fundies' build fixes for gm2egm.
Thanks, fundies.

* Use proper EGM event filenames.

Prior to this change, EGM uses integer values in all parameters. After this change, only "integer"-type events will use integers in filenames, or else errors will be reported.

* Fix event ordering at the cost of explicitly naming the ID field of events.

* Whatever

* Forbid copy construction of d/varray

* Only generate subcheck functions when needed. Use function body.

* Smear polishing compound on modified areas

* idk, rewrite some more shit

This is exactly like that jockstrap incident, only now we don't have sorlok to dig the holes

Also I'm sleepy and I need to rename like all of this shit later

Did I mention it still can't correctly build a game? I keep uprooting ugly shit. Latest victim: default event storage. They need to live in the  event_parent, but have iterators registered in each root object. Think that's accomplished.

Biggest remaining problem seems to be subchecks, which are marked virtual in the event parent for some fucked-up reason. Real problem is that they're not being implemented in objects that declare them . Shouldn't be hard to fix. They have to stay functions, though, because they need access to locals.

* Smear some more shit around; fix everything?

Seems to work. It's possible `draw_gui` is broken. I don't care to check. It shouldn't be.

As for what else might be broken... life is like a box of chocolates. Sometimes that box is from Russel Stover. Ew.

* Fix includes in ALsystem.h

* Always install newer yaml-cpp for CI.

Old one is fucking ancient and doesn't have Node::Mark().

* Update Main.cpp

* can't subdir protos cause cmake gay

* recuse glob

* add proto yaml to cmake

* rgm changes needed

* Update azure-pipelines.yml

* add cmake dep

* Fix emake tests

* Update connected-components.cpp

* Fix case typos in events.ey

* remove dup File2String

* fix windows shared makefile link of protocols

* Make the hack slightly less hacky and actually work

* fix cmake links

* Removes duplicate legacyEvent2egm event. Moves event conversion from compile to project load for libegm. Now clears legacy_events on load. This fixes egm writting but egm loading still seems to be broken.

* actually read events from egm

* write gmk sprites & backgrounds with logical names so egm conversion is neater

* typo

* fix room creation code

* windows bad

* write better names for all resources

* need to pass size for backgrounds

* proper locals event fix

* windows again

* Update gmk.cpp

* Update events.ey

* Update azure-pipelines.yml

* Convert DnD IDs

* Add event dispatchers, remove prefix/suffix code.

* Fix health.

The codegen is a little undisciplined in that subcheck methods are always emitted for objects, even if they're never used. The cases in which they're used are a bit complicated, so I'm comfortable leaving that alone for right now.

* Delete suffix from Out of Health.

It doesn't need one. I don't know how shit like this ends up in the codebase. If someone's game absolutely depends on running out of health every frame, add a dispatcher.

Co-authored-by: Greg Williamson <[email protected]>
Co-authored-by: Greg Williamson <[email protected]>
Co-authored-by: Greg Williamson <[email protected]>
Co-authored-by: Robert Colton <[email protected]>
Co-authored-by: Greg Williamson <[email protected]>

* force msys upgrades (enigma-dev#2112)

* Buffers CI Test & Functionality (enigma-dev#2114)

* Added basic buffer CI test that covers the basic functions. Will need expanded later.
* Added missing `buffer_u64` and `buffer_text` types that were recently added with same GMSv1.4 enum int values.
* Added missing `buffer_exists` function. Can later be moved to AssetArray for cleanup.
* Tweaked buffer seek past end behavior to match GMSv1.4 for fixed and fast buffer types.
* Flattened the `buffer_sizeof` implementation and added the new types to it.

* Add Function window_has_focus(). (enigma-dev#2079)

* Cleanup focus gain/lost handling between platforms. (enigma-dev#2041)

* Generalize Keyboard Input Processing (enigma-dev#2120)

* arch moved packages (enigma-dev#2123)

fixes cross compile

* Add EventData::value_names_for_type, fix HumanName (enigma-dev#2121)

* Add EventData::value_names_for_type, fix HumanName

* Update event_parser.h (enigma-dev#2127)

* Room Layers Protocol Format (enigma-dev#2116)

Add layers to the room proto with basic fields for name/id/depth/visibility.

* Support object ids in instance destroy (enigma-dev#2132)

* Fix Direct3D9 Texture Creation Crash (enigma-dev#2137)

Push the pixels after the texture is in the vector with a valid id.

* CI fixes (enigma-dev#2142)

Update azure-pipelines.yml

* Better FileDropper Icon - Now with Expressive Yellow! (enigma-dev#2144)

* MinGW renamed a macro. Fixes cross compile job

* searchdirs  fix (enigma-dev#2148)

* Clean up font initialization rounding (enigma-dev#2149)

This rounding probably should be done only when actually rendering the glyph, but for now, this improves the appearance of fonts across the board.

* Fix Direct3D11 White Texture Crash (enigma-dev#2150)

* use dynamically allocated white texture array

* Update DX11d3d.cpp

* Fix D3D11 NONPOT Texture Crash (enigma-dev#2151)

Avoid RawImage leaving scope before its data can be used.

* Fix EGM Mouse Release Events (enigma-dev#2152)

* Fix the order of the left/right mouse release events.

* Remove argument defaults from implementation signatures (enigma-dev#2155)

* Fix Sprite Texture Subimage Index Modulo (enigma-dev#2157)

Fix the other two custom ENIGMA sprite functions too.

* refactor/unify file readers (enigma-dev#2156)

* Adds standard API for all readers/writers in libEGM

* Fix Surfaces and Power of Two Typo (enigma-dev#2159)

Don't resize surface textures to a power of two. Also corrects an old off-by-one in a5bcd1b for the next largest power of two function that was permeating the engine.

* Combine appveyor jobs (enigma-dev#2161)

* Combine appveyor jobs

* oppsie (enigma-dev#2160)

* fix return type in libegm

* shorten libpng include

* Fix D3D11 FFP Shader State Batching (enigma-dev#2162)

Upload the matrices during state flush preventing stale batches from rendering with more recent state.

* add configuration file for emake (enigma-dev#2168)

* Refactor sog to protobutt (enigma-dev#2169)

* Puts SOG in line with other formats so RGM can open and save them. Also removes emakes dep on enigma_struct

* Updates android SDK/NDK (enigma-dev#2171)

also fixes sdl fgets impl

* Fix SDL Gamepad Button Mapping (enigma-dev#2165)

Use a map to translate SDL buttons to GML constants, and add debug mode bounds checking.

* revert ci-hack (enigma-dev#2180)

* revert ci-hack

Co-authored-by: Greg Williamson <[email protected]>
Co-authored-by: time-killer-games <[email protected]>
Co-authored-by: Robert Colton <[email protected]>
Co-authored-by: Greg Williamson <[email protected]>
Co-authored-by: Josh Ventura <[email protected]>
Co-authored-by: Greg Williamson <[email protected]>
Co-authored-by: Greg Williamson <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants