This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 »
31
Issues Help Desk / Re: Incorrect display of g++ messages on Progress window
« on: August 15, 2019, 05:14:44 am »
Yeah, normally it's a lot easier for me to debug errors like this with my own projects, simply because it's apparent enough what the exact code it is referencing is. I don't have access to your code, so it makes it that much more difficult for me to understand, I would recommend joining our discord and getting help from Josh there, or posting this as an issue on GitHub if there isn't already one posted for this.
32
Issues Help Desk / Re: Compile enigma on ClockworkPI GameShell
« on: August 11, 2019, 05:44:57 pm »Don't know if it is possible to do, but you may have to install a desktop environment like LXDE, MATE, DEBIAN etc, if there is not one already installed.
Debian is not a desktop environment. I seriously doubt an entire desktop environment can be installed on this thing.
33
Finished Games / Re: Unravel......A sliding puzzle game
« on: July 31, 2019, 11:16:39 am »
It works in wine, as most enigma games do. I got to level 10.

Good job on this, it was a lot of fun.

Good job on this, it was a lot of fun.

34
Finished Games / Re: Steal the Gold
« on: July 16, 2019, 02:48:41 am »
I just added the first official ENIGMA port for Windows!

35
Finished Games / Re: Steal the Gold
« on: July 13, 2019, 05:57:18 pm »
Added Linux support. Updated the screenshots and description. Still need to update the video to reflect the most recent update.
36
Announcements / Re: UPDATE: Cross-Platorm Widgets API Complete with Full UTF-8 Support
« on: July 04, 2019, 11:35:16 am »
List of Newly Cross-Platform Functions
GML Function:
real show_message(string str)
Description:
Displays a modal information message box with an "OK" button to make it close. When the dialog Is closed, it will return 1 and go back to the main application. The developer may set the message text using the argument.
EDL Function:
real show_message_cancelable(string str)
Description:
Displays a modal information message box with an "OK" button to make it close. Clicking "OK" will return 1, and clicking "Cancel" will return -1. When the function returns, the dialog closes, and the user is then taken back to the main application. The developer may set the message text using the argument.
GML Function:
real show_question(string str)
Description:
Displays a modal question message box with a "Yes" and a "No" button, for the user to choose which to click as their answer. When "Yes" is clicked, 1 is returned or if "No" is clicked, zero is returned. The user will then be sent back to the main application. The developer may set the message text using the argument.
EDL Function:
real show_question_cancelable(string str)
Description:
Displays a modal question message box with a "Yes", a "No", and a "Cancel" button, for the user to choose which to click as their answer. When "Yes" is clicked, 1 is returned. If "No" is clicked, zero is returned. If "Cancel" is clicked, -1 is returned. The developer may set the message text using the argument.
EDL Function:
real show_attempt(string str)
Description:
Displays a modal error message box which will prompt the user as to whether they want to retry a specific action that previously just failed, or cancel the operation. The "Retry" button returns zero, and the "Cancel" button returns -1. The developer may use the argument to specify a description of the action that just failed as the error.
GML Function:
real show_error(string str,real abort)
Description:
Displays a modal error message box which will prompt the user as to whether they want to abort the application, retry the action that errored, or ignore the error. The first argument is the error message text. The second argument is for whether the error message is fatal, meaning it will abort regardless of the button clicked. When the error is not fatal, only the "Abort" button will force the application to close. When non-fatal, clicking the "Retry" button will cause the function to return zero, and the "Ignore" button returns -1. When the application aborts, there is no return value to be retrieved. In ENIGMA, this function has no return value no matter what because Josh is a bitch.
GML Function:
string get_string(string str,string def)
Description:
Displays a modal string input box with the message text defined in the first argument, and the default string to show in the text box used as the second argument. There is an "OK" button, that when clicked the dialog closes and returns the string that is left in the text box. If "Cancel" was clicked, the dialog closes and returns an empty string.
EDL Function:
string get_password(string str,string def)
Description:
Displays a modal string input box with the message text defined in the first argument, and the default string to show in the text box used as the second argument. There is an "OK" button, that when clicked the dialog closes and returns the string that is left in the text box. If "Cancel" was clicked, the dialog closes and returns an empty string. Text entry is hidden.
GML Function:
real get_integer(string str,real def)
Description:
Displays a modal number input box with the message text defined in the first argument, and the default number in the text box used as the second argument. There is an "OK" button, that when clicked the dialog closes and returns the number that is left in the text box. If "Cancel" was clicked, the dialog closes and returns zero. If a value that is not recognized as a valid number is entered, zero is always returned. The default number and the number returned cannot exceed 15 digits, therefore it will always be limited to a value from -999999999999999 to 999999999999999. ENIGMA allows you to go beyond these numbers by displaying scientific notation, because Josh likes stupid shit.
EDL Function:
real get_passcode(string str,real def)
Description:
Displays a modal number input box with the message text defined in the first argument, and the default number in the text box used as the second argument. There is an "OK" button, that when clicked the dialog closes and returns the number that is left in the text box. If "Cancel" was clicked, the dialog closes and returns zero. If a value that is not recognized as a valid number is entered, zero is always returned. The default number and the number returned cannot exceed 15 digits, therefore it will always be limited to a value from -999999999999999 to 999999999999999. Text entry is hidden. ENIGMA allows you to go beyond these numbers by displaying scientific notation, because Josh likes stupid shit.
GML Function:
string get_open_filename(string filter,string fname)
Description:
Displays a modal single file selection dialog using the given filter which is used like "Description1|Extension1|Description2|Extension2A;Extension2B" where the earlier is the description of the file filter and the latter is the extension pattern. The descriptions and extension patterns are separated by a vertical slash character "|", and if one of the descriptions describe multiple file patterns, separate the file patterns with a semicolon. An example of a filter argument can be "Image Files|*.png;*.jpeg;*.jpg;*.gif" which will allow selection of a single png, jpeg, jpg, or gif file. The second argument is the default file name for the dialog to have in the text box. When "Cancel" is chosen an empty string is returned, otherwise the file selected is returned.
GML Function:
string get_open_filename_ext(string filter,string fname,string dir,string title)
Description:
Displays a modal single file selection dialog using the given filter which is used like "Description1|Extension1|Description2|Extension2A;Extension2B" where the earlier is the description of the file filter and the latter is the extension pattern. The descriptions and extension patterns are separated by a vertical slash character "|", and if one of the descriptions describe multiple file patterns, separate the file patterns with a semicolon. An example of a filter argument can be "Image Files|*.png;*.jpeg;*.jpg;*.gif" which will allow selection of a single png, jpeg, jpg, or gif file. The second argument is the default file name for the dialog to have in the text box. When "Cancel" is chosen an empty string is returned, otherwise the file selected is returned. The third argument specifies the default directory for the dialog open in. The last argument changes the window title text.
EDL Function:
string get_open_filenames(string filter,string fname)
Description:
Displays a modal multiple file selection dialog using the given filter which is used like "Description1|Extension1|Description2|Extension2A;Extension2B" where the earlier is the description of the file filter and the latter is the extension pattern. The descriptions and extension patterns are separated by a vertical slash character "|", and if one of the descriptions describe multiple file patterns, separate the file patterns with a semicolon. An example of a filter argument can be "Image Files|*.png;*.jpeg;*.jpg;*.gif" which will allow selection of one or more png, jpeg, jpg, or gif files. The second argument is the default file name for the dialog to have in the text box. When "Cancel" is chosen an empty string is returned, otherwise the file(s) selected are returned.
EDL Function:
string get_open_filenames_ext(string filter,string fname,string dir,string title)
Description:
Displays a modal multiple file selection dialog using the given filter which is used like "Description1|Extension1|Description2|Extension2A;Extension2B" where the earlier is the description of the file filter and the latter is the extension pattern. The descriptions and extension patterns are separated by a vertical slash character "|", and if one of the descriptions describe multiple file patterns, separate the file patterns with a semicolon. An example of a filter argument can be "Image Files|*.png;*.jpeg;*.jpg;*.gif" which will allow selection of one or more png, jpeg, jpg, or gif files. The second argument is the default file name for the dialog to have in the text box. When "Cancel" is chosen an empty string is returned, otherwise the file(s) selected are returned. The third argument specifies the default directory for the dialog open in. The last argument changes the window title text.
GML Function:
string get_save_filename(string filter,string fname)
Description:
Displays a modal single file "save as" dialog using the given filter which is used like "Description1|Extension1|Description2|Extension2A;Extension2B" where the earlier is the description of the file filter and the latter is the extension pattern. The descriptions and extension patterns are separated by a vertical slash character "|", and if one of the descriptions describe multiple file patterns, separate the file patterns with a semicolon. An example of a filter argument can be "Image Files|*.png;*.jpeg;*.jpg;*.gif" which will allow selection of a single png, jpeg, jpg, or gif file. The second argument is the default file name for the dialog to have in the text box. When "Cancel" is chosen an empty string is returned, otherwise the file name entered or selected is returned.
GML Function:
string get_save_filename_ext(string filter,string fname,string dir,string title)
Description:
Displays a modal single file "save as" dialog using the given filter which is used like "Description1|Extension1|Description2|Extension2A;Extension2B" where the earlier is the description of the file filter and the latter is the extension pattern. The descriptions and extension patterns are separated by a vertical slash character "|", and if one of the descriptions describe multiple file patterns, separate the file patterns with a semicolon. An example of a filter argument can be "Image Files|*.png;*.jpeg;*.jpg;*.gif" which will allow selection of a single png, jpeg, jpg, or gif file. The second argument is the default file name for the dialog to have in the text box. When "Cancel" is chosen an empty string is returned, otherwise the file name entered or selected is returned. The third argument specifies the default directory for the dialog open in. The last argument changes the window title text.
GML Function:
string get_directory(string dname)
Description:
Displays a modal single folder selection dialog. Use the argument to define the default place for the dialog to open in. When "Cancel" is chosen, an empty string is returned, otherwise the directory selected is returned, including the trailing slash at the end.
GML Function:
string get_directory_alt(string capt,string root)
Description:
Displays an alternative modal single folder selection dialog. Use the first argument to define the title caption of the dialog. Use the second argument to define the default place for the dialog to open in. When "Cancel" is chosen, an empty string is returned, otherwise the directory selected is returned, including the trailing slash at the end.
GML Function:
real get_color(real defcol)
Description:
Displays a modal color selection dialog. When the "OK" button is clicked, the color that is selected is returned, and if "Cancel" is clicked, the value -1 is returned. Use the argument to specify the default color to be selected when the dialog first opens.
EDL Function:
real get_color_ext(real defcol,string title)
Description:
Displays a modal color selection dialog. When the "OK" button is clicked, the color that is selected is returned, and if "Cancel" is clicked, the value -1 is returned. Use the first argument to specify the default color to be selected when the dialog first opens. Use the second argument to change the default title bar caption.
EDL Function:
string message_get_caption()
Description:
Gets the custom window title bar caption text previously set by message_set_caption(), and returns an empty string if there was no custom window title bar caption text previously set.
EDL Function:
string message_set_caption(string str)
Description:
Sets the custom window title bar caption text of message, question, input, and error-like dialogs. Use an empty string for the argument to reset the value to its default text, which will either be the main game's name/title, or "Error", depending on the type of dialog.
GML Function:
real show_message(string str)
Description:
Displays a modal information message box with an "OK" button to make it close. When the dialog Is closed, it will return 1 and go back to the main application. The developer may set the message text using the argument.
EDL Function:
real show_message_cancelable(string str)
Description:
Displays a modal information message box with an "OK" button to make it close. Clicking "OK" will return 1, and clicking "Cancel" will return -1. When the function returns, the dialog closes, and the user is then taken back to the main application. The developer may set the message text using the argument.
GML Function:
real show_question(string str)
Description:
Displays a modal question message box with a "Yes" and a "No" button, for the user to choose which to click as their answer. When "Yes" is clicked, 1 is returned or if "No" is clicked, zero is returned. The user will then be sent back to the main application. The developer may set the message text using the argument.
EDL Function:
real show_question_cancelable(string str)
Description:
Displays a modal question message box with a "Yes", a "No", and a "Cancel" button, for the user to choose which to click as their answer. When "Yes" is clicked, 1 is returned. If "No" is clicked, zero is returned. If "Cancel" is clicked, -1 is returned. The developer may set the message text using the argument.
EDL Function:
real show_attempt(string str)
Description:
Displays a modal error message box which will prompt the user as to whether they want to retry a specific action that previously just failed, or cancel the operation. The "Retry" button returns zero, and the "Cancel" button returns -1. The developer may use the argument to specify a description of the action that just failed as the error.
GML Function:
real show_error(string str,real abort)
Description:
Displays a modal error message box which will prompt the user as to whether they want to abort the application, retry the action that errored, or ignore the error. The first argument is the error message text. The second argument is for whether the error message is fatal, meaning it will abort regardless of the button clicked. When the error is not fatal, only the "Abort" button will force the application to close. When non-fatal, clicking the "Retry" button will cause the function to return zero, and the "Ignore" button returns -1. When the application aborts, there is no return value to be retrieved. In ENIGMA, this function has no return value no matter what because Josh is a bitch.
GML Function:
string get_string(string str,string def)
Description:
Displays a modal string input box with the message text defined in the first argument, and the default string to show in the text box used as the second argument. There is an "OK" button, that when clicked the dialog closes and returns the string that is left in the text box. If "Cancel" was clicked, the dialog closes and returns an empty string.
EDL Function:
string get_password(string str,string def)
Description:
Displays a modal string input box with the message text defined in the first argument, and the default string to show in the text box used as the second argument. There is an "OK" button, that when clicked the dialog closes and returns the string that is left in the text box. If "Cancel" was clicked, the dialog closes and returns an empty string. Text entry is hidden.
GML Function:
real get_integer(string str,real def)
Description:
Displays a modal number input box with the message text defined in the first argument, and the default number in the text box used as the second argument. There is an "OK" button, that when clicked the dialog closes and returns the number that is left in the text box. If "Cancel" was clicked, the dialog closes and returns zero. If a value that is not recognized as a valid number is entered, zero is always returned. The default number and the number returned cannot exceed 15 digits, therefore it will always be limited to a value from -999999999999999 to 999999999999999. ENIGMA allows you to go beyond these numbers by displaying scientific notation, because Josh likes stupid shit.
EDL Function:
real get_passcode(string str,real def)
Description:
Displays a modal number input box with the message text defined in the first argument, and the default number in the text box used as the second argument. There is an "OK" button, that when clicked the dialog closes and returns the number that is left in the text box. If "Cancel" was clicked, the dialog closes and returns zero. If a value that is not recognized as a valid number is entered, zero is always returned. The default number and the number returned cannot exceed 15 digits, therefore it will always be limited to a value from -999999999999999 to 999999999999999. Text entry is hidden. ENIGMA allows you to go beyond these numbers by displaying scientific notation, because Josh likes stupid shit.
GML Function:
string get_open_filename(string filter,string fname)
Description:
Displays a modal single file selection dialog using the given filter which is used like "Description1|Extension1|Description2|Extension2A;Extension2B" where the earlier is the description of the file filter and the latter is the extension pattern. The descriptions and extension patterns are separated by a vertical slash character "|", and if one of the descriptions describe multiple file patterns, separate the file patterns with a semicolon. An example of a filter argument can be "Image Files|*.png;*.jpeg;*.jpg;*.gif" which will allow selection of a single png, jpeg, jpg, or gif file. The second argument is the default file name for the dialog to have in the text box. When "Cancel" is chosen an empty string is returned, otherwise the file selected is returned.
GML Function:
string get_open_filename_ext(string filter,string fname,string dir,string title)
Description:
Displays a modal single file selection dialog using the given filter which is used like "Description1|Extension1|Description2|Extension2A;Extension2B" where the earlier is the description of the file filter and the latter is the extension pattern. The descriptions and extension patterns are separated by a vertical slash character "|", and if one of the descriptions describe multiple file patterns, separate the file patterns with a semicolon. An example of a filter argument can be "Image Files|*.png;*.jpeg;*.jpg;*.gif" which will allow selection of a single png, jpeg, jpg, or gif file. The second argument is the default file name for the dialog to have in the text box. When "Cancel" is chosen an empty string is returned, otherwise the file selected is returned. The third argument specifies the default directory for the dialog open in. The last argument changes the window title text.
EDL Function:
string get_open_filenames(string filter,string fname)
Description:
Displays a modal multiple file selection dialog using the given filter which is used like "Description1|Extension1|Description2|Extension2A;Extension2B" where the earlier is the description of the file filter and the latter is the extension pattern. The descriptions and extension patterns are separated by a vertical slash character "|", and if one of the descriptions describe multiple file patterns, separate the file patterns with a semicolon. An example of a filter argument can be "Image Files|*.png;*.jpeg;*.jpg;*.gif" which will allow selection of one or more png, jpeg, jpg, or gif files. The second argument is the default file name for the dialog to have in the text box. When "Cancel" is chosen an empty string is returned, otherwise the file(s) selected are returned.
EDL Function:
string get_open_filenames_ext(string filter,string fname,string dir,string title)
Description:
Displays a modal multiple file selection dialog using the given filter which is used like "Description1|Extension1|Description2|Extension2A;Extension2B" where the earlier is the description of the file filter and the latter is the extension pattern. The descriptions and extension patterns are separated by a vertical slash character "|", and if one of the descriptions describe multiple file patterns, separate the file patterns with a semicolon. An example of a filter argument can be "Image Files|*.png;*.jpeg;*.jpg;*.gif" which will allow selection of one or more png, jpeg, jpg, or gif files. The second argument is the default file name for the dialog to have in the text box. When "Cancel" is chosen an empty string is returned, otherwise the file(s) selected are returned. The third argument specifies the default directory for the dialog open in. The last argument changes the window title text.
GML Function:
string get_save_filename(string filter,string fname)
Description:
Displays a modal single file "save as" dialog using the given filter which is used like "Description1|Extension1|Description2|Extension2A;Extension2B" where the earlier is the description of the file filter and the latter is the extension pattern. The descriptions and extension patterns are separated by a vertical slash character "|", and if one of the descriptions describe multiple file patterns, separate the file patterns with a semicolon. An example of a filter argument can be "Image Files|*.png;*.jpeg;*.jpg;*.gif" which will allow selection of a single png, jpeg, jpg, or gif file. The second argument is the default file name for the dialog to have in the text box. When "Cancel" is chosen an empty string is returned, otherwise the file name entered or selected is returned.
GML Function:
string get_save_filename_ext(string filter,string fname,string dir,string title)
Description:
Displays a modal single file "save as" dialog using the given filter which is used like "Description1|Extension1|Description2|Extension2A;Extension2B" where the earlier is the description of the file filter and the latter is the extension pattern. The descriptions and extension patterns are separated by a vertical slash character "|", and if one of the descriptions describe multiple file patterns, separate the file patterns with a semicolon. An example of a filter argument can be "Image Files|*.png;*.jpeg;*.jpg;*.gif" which will allow selection of a single png, jpeg, jpg, or gif file. The second argument is the default file name for the dialog to have in the text box. When "Cancel" is chosen an empty string is returned, otherwise the file name entered or selected is returned. The third argument specifies the default directory for the dialog open in. The last argument changes the window title text.
GML Function:
string get_directory(string dname)
Description:
Displays a modal single folder selection dialog. Use the argument to define the default place for the dialog to open in. When "Cancel" is chosen, an empty string is returned, otherwise the directory selected is returned, including the trailing slash at the end.
GML Function:
string get_directory_alt(string capt,string root)
Description:
Displays an alternative modal single folder selection dialog. Use the first argument to define the title caption of the dialog. Use the second argument to define the default place for the dialog to open in. When "Cancel" is chosen, an empty string is returned, otherwise the directory selected is returned, including the trailing slash at the end.
GML Function:
real get_color(real defcol)
Description:
Displays a modal color selection dialog. When the "OK" button is clicked, the color that is selected is returned, and if "Cancel" is clicked, the value -1 is returned. Use the argument to specify the default color to be selected when the dialog first opens.
EDL Function:
real get_color_ext(real defcol,string title)
Description:
Displays a modal color selection dialog. When the "OK" button is clicked, the color that is selected is returned, and if "Cancel" is clicked, the value -1 is returned. Use the first argument to specify the default color to be selected when the dialog first opens. Use the second argument to change the default title bar caption.
EDL Function:
string message_get_caption()
Description:
Gets the custom window title bar caption text previously set by message_set_caption(), and returns an empty string if there was no custom window title bar caption text previously set.
EDL Function:
string message_set_caption(string str)
Description:
Sets the custom window title bar caption text of message, question, input, and error-like dialogs. Use an empty string for the argument to reset the value to its default text, which will either be the main game's name/title, or "Error", depending on the type of dialog.
37
Announcements / UPDATE: Cross-Platorm Widgets API Complete with Full UTF-8 Support
« on: July 02, 2019, 02:00:48 pm »
Platform: Windows
API: Win32 (VC++)

Platform: macOS
API: Cocoa (Obj-C)

Platform: Ubuntu
API: Zenity (GTK+)

Platform: KDE neon
API: KDialog (Qt5)

What's Changed?
First of all, for those of you targeting Linux who aren't aware, click here for the terminal commands needed to install the appropriate packages and dependencies used in the Linux widget systems - Zenity and KDialog. Installation instructions will be different depending on your Linux distro. Other info is there that Linux and non-Linux users alike may benefit from.
We recently updated Windows Widgets to include the same GML and EDL function set as the other actively supported systems - Cocoa Widgets for macOS, Zenity for Linux distro's using GTK+ for windowing, and KDialog for Linux distro's using KDE for windowing. Windows Widgets also now has full UTF-8 support with these same functions, just as the other systems and platforms already supported. This means we now have a fully cross-platform API that will work seamlessly on all platforms and windowing systems we support.
If you want to use these same exact functions in GameMaker Studio 2 or Unity, you may override GameMaker's implementations with these functions using my Dialog Module extension, or the Unity plugin, which are both free and open source. MIT License. Links to GameMaker Marketplace, Unity, and itch.io as well as GitHub and SourceForge here.
Known Issues
- get_open_filenames() and get_open_filenames_ext() can only return a maximum of 3 files from a given drive's root, so if your files are selected directly from C:\, I:\, etc. without being within a subfolder or subfolders of the given drive, i.e. Program Files, Users, etc. you will not be able to return more than 3 files regardless of how man files you actually selected, if not in drive's root, you will be able to select up to the buffer limit. This is a Windows-only issue. Mac and Linux have no limit to the amount of files you may select. I don't know how to fix this and will need help with it. I don't know what the source of the problem is with Windows multi-select and how I chose to write it.
- get_directory() and get_directory_alt() do not work on Windows XP, this will be fixed in a patch which will check the current Windows Version and if Windows XP then use an older API to take care of the same desired effect - selecting a directory. This will be fixed at some point. I have other priorities ahead of this one right now.
- get_string(), get_password(), get_integer(), and get_passcode() do not resize to fit the contents of the string provided by the first argument to each function. Windows-only bug. Instead, the string will get truncated if long enough. This will probably be fixed when we support the Visual Studio compiler, CMake, so that I may use the same InputBox API I use in the GameMaker extension equivalent which does not have this bug.
- TODO: I need to wipe Josh's ass for him by renaming the current show_error() implementation to show_error_retriable(), this will eliminate the need for the second argument and it will be removed, and also this will mean Josh will let me give the function a return value, like what the GameMaker extension equivalent currently does. Then I'll write a new show_error() implementation from scratch that will only have a 'Abort' and an 'Ignore' button when non-fatal, and just an 'Abort' button when fatal. This can't be done until KDialog support's changing the 'OK' button's text on a single button dialog. It's on KDialog's roadmap, but KDE developers have yet to add it.
Cheers,
Samuel
API: Win32 (VC++)

Platform: macOS
API: Cocoa (Obj-C)

Platform: Ubuntu
API: Zenity (GTK+)

Platform: KDE neon
API: KDialog (Qt5)

What's Changed?
First of all, for those of you targeting Linux who aren't aware, click here for the terminal commands needed to install the appropriate packages and dependencies used in the Linux widget systems - Zenity and KDialog. Installation instructions will be different depending on your Linux distro. Other info is there that Linux and non-Linux users alike may benefit from.
We recently updated Windows Widgets to include the same GML and EDL function set as the other actively supported systems - Cocoa Widgets for macOS, Zenity for Linux distro's using GTK+ for windowing, and KDialog for Linux distro's using KDE for windowing. Windows Widgets also now has full UTF-8 support with these same functions, just as the other systems and platforms already supported. This means we now have a fully cross-platform API that will work seamlessly on all platforms and windowing systems we support.
If you want to use these same exact functions in GameMaker Studio 2 or Unity, you may override GameMaker's implementations with these functions using my Dialog Module extension, or the Unity plugin, which are both free and open source. MIT License. Links to GameMaker Marketplace, Unity, and itch.io as well as GitHub and SourceForge here.
Known Issues
- get_open_filenames() and get_open_filenames_ext() can only return a maximum of 3 files from a given drive's root, so if your files are selected directly from C:\, I:\, etc. without being within a subfolder or subfolders of the given drive, i.e. Program Files, Users, etc. you will not be able to return more than 3 files regardless of how man files you actually selected, if not in drive's root, you will be able to select up to the buffer limit. This is a Windows-only issue. Mac and Linux have no limit to the amount of files you may select. I don't know how to fix this and will need help with it. I don't know what the source of the problem is with Windows multi-select and how I chose to write it.
- get_directory() and get_directory_alt() do not work on Windows XP, this will be fixed in a patch which will check the current Windows Version and if Windows XP then use an older API to take care of the same desired effect - selecting a directory. This will be fixed at some point. I have other priorities ahead of this one right now.
- get_string(), get_password(), get_integer(), and get_passcode() do not resize to fit the contents of the string provided by the first argument to each function. Windows-only bug. Instead, the string will get truncated if long enough. This will probably be fixed when we support the Visual Studio compiler, CMake, so that I may use the same InputBox API I use in the GameMaker extension equivalent which does not have this bug.
- TODO: I need to wipe Josh's ass for him by renaming the current show_error() implementation to show_error_retriable(), this will eliminate the need for the second argument and it will be removed, and also this will mean Josh will let me give the function a return value, like what the GameMaker extension equivalent currently does. Then I'll write a new show_error() implementation from scratch that will only have a 'Abort' and an 'Ignore' button when non-fatal, and just an 'Abort' button when fatal. This can't be done until KDialog support's changing the 'OK' button's text on a single button dialog. It's on KDialog's roadmap, but KDE developers have yet to add it.
Cheers,
Samuel
38
General ENIGMA / anyone here used pling?
« on: June 29, 2019, 08:36:47 pm »
I published my game there recently, seems like a halfway decent platform to share open source games.
https://www.pling.com/s/Games/p/1312080/
It doesn't have many games on it yet though sadly. Might be an opportunity to get exposure. Maybe. Maybe not.
https://www.pling.com/s/Games/p/1312080/
It doesn't have many games on it yet though sadly. Might be an opportunity to get exposure. Maybe. Maybe not.
39
Announcements / [Windows] OpenAL Support Explained and New Dependencies on the Wiki
« on: June 28, 2019, 10:58:38 am »
We have recently updated the Windows Installation Wiki Page to reflect some missing information that explains how to get OpenAL working on Windows machines.
https://enigma-dev.org/docs/Wiki/Install:Windows
First, you'll need libmodplug installed in your MSYS2 packages. This will be required for your game executable to build properly.
Install libmodplug for 32-bit MSYS2
Install libmodplug for 64-bit MSYS2
If you want to use OpenAL for audio, instead of DirectSound, you'll want to make sure you have "libopenal-1.dll" in your game's working directory.
https://enigma-dev.org/edc/games.php?game=97
You can see below a quote below of the information and downloads for libopenal-1.dll found at the link above.
Also due to a bug with ENIGMA currently, you may also need "libgcc_s_dw2-1.dll" and "libwinpthread-1.dll" in your game executable's working directory when compiling for 32-bit specifically. This is not an issue with 64-bit, from what I can gather from my testing. You can find those in your MSYS2 installation folder, or for ease of access, you may also download them from my dropbox: Extra 32-bit DLL's.zip
I hope this helps clear up any questions, comments, or concerns you all may have regarding this audio system.
Samuel
https://enigma-dev.org/docs/Wiki/Install:Windows
First, you'll need libmodplug installed in your MSYS2 packages. This will be required for your game executable to build properly.
Install libmodplug for 32-bit MSYS2
Code: [Select]
pacboy -S libmodplug:i
Install libmodplug for 64-bit MSYS2
Code: [Select]
pacboy -S libmodplug:x
If you want to use OpenAL for audio, instead of DirectSound, you'll want to make sure you have "libopenal-1.dll" in your game's working directory.
https://enigma-dev.org/edc/games.php?game=97
You can see below a quote below of the information and downloads for libopenal-1.dll found at the link above.
Quote
libopenal-1.dll (REQUIRED for the OpenAL Audio System on Windows)
If you want to build ENIGMA games on Windows that use the OpenAL Audio System, which is required for external sound resource loading via sound_add() and other various features DirectSound and other alternatives do not offer, you need to have this DLL in the same directory as your game executable when running and distributing your game.
- Download the 32-bit DLL and put that in the same directory as you 32-bit game executables.
- Download the 64-bit DLL and put that in the same directory as you 64-bit game executables.
- You can not put your 32-bit and 64-bit games in the same directory otherwise you will end up with a name conflict because both the 32-bit and the 64-bit DLL have the same file name and you can't rename them without breaking the ability for your games to recognize them.
Downloads (2):
Windows 32-bit
Windows 64-bit
Also due to a bug with ENIGMA currently, you may also need "libgcc_s_dw2-1.dll" and "libwinpthread-1.dll" in your game executable's working directory when compiling for 32-bit specifically. This is not an issue with 64-bit, from what I can gather from my testing. You can find those in your MSYS2 installation folder, or for ease of access, you may also download them from my dropbox: Extra 32-bit DLL's.zip
I hope this helps clear up any questions, comments, or concerns you all may have regarding this audio system.
Samuel
40
General ENIGMA / Re: Enigma Games Showcase 2019
« on: June 15, 2019, 11:26:57 pm »Enigma is great for creating games. It's faster than Gamemaker's compiler. Its interface is well designed and intuitive. Best of all, 85% of your Gamemaker projects will be compatible with it.
So true - and I had to emphasise it using red letters and big fonts because this is critical
lel
41
Works in Progress / Virtual Visit Maker (Prototype)
« on: May 13, 2019, 01:53:38 am »



Quote
The source code is very messy. This project is just meant to demonstrate you can make an entire game with one GameMaker / ENIGMA object instance with the help of an INI file and loading / unloading external resources at run-time. In this particular case you would be making a first person, point-and-click, adventure-puzzler game.
Please do not steal my sound or graphics that I created and shipped with this project. They are included for demoing and educational purposes only. You may however use the GM81 file however you see fit, to reiterate, without the external resources that I made available with it. Make your own games with this, using your own graphics and audio. The only graphical pieces you are permitted to use are inside the binary blob GM81 file itself and can be viewed when you load the project into GM / LGM.
GM81 project file can be built with the ENIGMA Development Environment using:
- Compiler: MinGW | Platform: Win32 | Graphics: OpenGL 1.1 | Audio: OpenAL
- Compiler: G++ | Platform: Linux X11 | Graphics: OpenGL 1.1 | Audio: OpenAL
...or GameMaker 8.1, but make sure you install the extension package included.
There is a 64-bit Windows EXE included, which was compiled with ENIGMA.
Yeah bro, please check it out. You will be blessed.
https://samuel-venable.itch.io/virtual-visit-maker-prototype
42
General ENIGMA / Re: Leaving the project
« on: May 10, 2019, 07:29:14 pm »
As proven by today's discord session, I unintentionally cause a lot of hell and strife for everyone whenever the discussion ever goes political or religious/anti-religious. It's not just fundies to blame, as he wasn't even around to be a part of what just ended. If my lack of self control continues i think im going to leave discord regardless of fundies not being there, as I'm part of the problem over there.
Sometimes I have even done it intentionally, but that was mainly toward fundies so while one could argue thats more reason for him to not be on there the same could be said for me because my behavior regardless of who else is involved its on me.
Sometimes I have even done it intentionally, but that was mainly toward fundies so while one could argue thats more reason for him to not be on there the same could be said for me because my behavior regardless of who else is involved its on me.
43
General ENIGMA / Re: Leaving the project
« on: May 10, 2019, 02:03:40 pm »
If you are refering to me, I'm definitely not justifying myself. I went on and on about how bad I feel about this whole situation, and my most previous comment was me just trying to lighten up the conversation. In all seriousness, I hope this is something we can all put behind us and continue working together, including cheeseboy, whatever that may look like.
44
General ENIGMA / Re: Leaving the project
« on: May 07, 2019, 03:52:33 pm »
cheese, if you would please, understand. You dont need to be told that. You do understand. Thats the problem. You are right about most the stuff you are saying and everyone is whining about you leaving while pretending they want you to.
And yes, I am an asshat who doesn't listen but admits these things. Asshat for the win!
I love you guys. All of you. This is a community with special needs. That's why I joined it. I have special needs.
And yes, I am an asshat who doesn't listen but admits these things. Asshat for the win!
I love you guys. All of you. This is a community with special needs. That's why I joined it. I have special needs.
45
General ENIGMA / Re: Making love to the project
« on: May 02, 2019, 08:33:31 am »Free fundies Enigma without Fundies is like a child without it's mother A child but a child without its mother
Either fundies made a second account just to post this or we have a GMC'er spying on us. No thanks to this being on the home page.