Show Posts

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.


Messages - time-killer-games

721
Off-Topic / Re: execute_string is not a bad coding practice!
« on: April 01, 2014, 07:29:40 am »
Quote
...and so could only use and manipulate variables.
That would be pointless because what we could do is just add these...
Quote
Variable Access
variable_global_array2_get
variable_global_array2_set
variable_global_array_get
variable_global_array_set
variable_global_exists
variable_global_get
variable_global_set
variable_local_array2_get
variable_local_array2_set
variable_local_array_get
variable_local_array_set
variable_local_exists
variable_local_get
variable_local_set
...to achieve the same thing. With the variable_*() functions it would be GM 5.3a-8.1 compatible; if we did a custom execute_string() that wouldn't be. And AFAIK doing it this way wouldn't require an interpreter.

722
Off-Topic / Re: execute_string is not a bad coding practice!
« on: April 01, 2014, 04:20:34 am »
I have strong hopes for the day GameMaker:Studio itself will be deprecated and replaced with ENIGMA on hard drives everywhere.

723
General ENIGMA / Re: Splash Functions
« on: April 01, 2014, 04:11:52 am »
Have you got this working on Linux yet? Or is that part still being worked on? Have you found a way to do this for Linux, but you just haven't implemented it fully yet? In any case I'm glad there's been some rapid progress on this! :D

724
Works in Progress / Re: Attack of the Naked Blockheads 3D
« on: March 26, 2014, 08:37:03 pm »
My dropbox is more full than it needs to be so I'll have to find a different host for the thumbnails. Until then, have fun crashing your browsers! :D

725
Yeah but in our case it would be a win/win. However the surfaces get fixed I don't give a fugg.as long as the shit works that's all I care about.

726
Why not just stop arguing by the books and and books and fix the surfaces in the first way of going about it that comes to mind and call it a day? :P Flip a coin or something, at least.

727
Off-Topic / Re: GameMaker Studio & OpenSource - Licensing question
« on: March 24, 2014, 10:32:40 pm »
@Darkstar I thought I already explained this to you. ::P Did you think I was lying?

728
Third Party / Re: FakeFullscreen.dll
« on: March 21, 2014, 08:26:14 pm »
Darkstar - it is in ENIGMA, just have a look at the global game settings, I've used it before and can verify it works.
Quote
[checkbox] Freeze the game when the window loses focus

729
General ENIGMA / Re: Please vote for ENIGMA's new license
« on: March 20, 2014, 10:49:27 pm »
Fuck this topic is a boring read. I'm surprised I picked up any of this. When in doubt, we could always flip a coin or rock paper scissors our way into deciding a new license? I'd find that to be the most rational decision with the given circumstance.

Edit: All I mean by that is that all the license options have their pros and cons, and IMHO, each one has bad enough cons to send this project in the toilet doo-doo hole either way, so it's irrelevant which one we choose. But we need to find a way to "get the best of both worlds" if you know what I mean, that's right, Hannah Montana. I personally find a custom license a best fit, now that I think of it. Is it possible to make a custom non-GPL lisence?

730
Third Party / Re: FakeFullscreen.dll
« on: March 20, 2014, 04:01:10 pm »
Cool, thanks. But I already knew that and used it in the past and I needed it for GM not Enigma. :P
But anyway, at least my discovery fixed the issue for Windows. Now if I could get someone to port that guy's DLL to a DyLib with code:blocks, so it will work on Mac too. :)

731
Third Party / Re: FakeFullscreen.dll
« on: March 20, 2014, 03:38:58 pm »
I know Enigma can do that, I needed GameMaker to do that. :P

But I found an easy solution, a DLL someone else already made.

To see how 'seemless' it is, here are two of games that use it, first-thing shown after their title screens...
*Attack of the Naked Blockheads 3D
*Real Men Wear Pink HD

The only issue is the main game window behind the message box turns solid white, for as long as the message remains opened. But oh well, it's better than
switching to windowed mode. :)

732
Third Party / Re: FakeFullscreen.dll
« on: March 20, 2014, 01:12:31 pm »
They removed that from the global game settings, and they deprecated the associated GML function. No, it won't at all effect the game's performance because the demo I'm going to distribute with the DLL will only switch the game to use fakeFS whenever there's a dialog box opened, so if the main game window is the only window the game has opened, you'll be using true fs instead.

733
Third Party / FakeFullscreen.dll
« on: March 20, 2014, 09:59:31 am »
GMStudio uses "true fullscreen" on windows, mac, and linux meaning if you try to use show_message(), get_open_filename(), etc or any other functions that produce small dialog boxes, the game if running in fullscreen will automatically switch to windowed mode. I'm creating a dll/dylib for Windows and Mac that will force GMS games one these platforms to use "fake fullscreen", meaning it will look identical to "true fullscreen" but it will allow dialog windows to appear without switching the game to windowed mode. Linux and Windows 8 won't be supported until YYG announce the 1.3 extention system works on those platforms.

I'm doing it all in Code:Blocks for cross-compatibility. I made a DLL in the past called HostExe. It launches an external exe, removes the exe's border, and embeds it. It doesn't work anymore because I must have modified it by accident and I don't know how to fix it. But it does remove the external exe's window border, at least. I don't care about HostExe anymore because I'm not working on it. But for a referense to what I was talking about here's the HostExe.dll's source main.cpp...

Code: [Select]
#include "main.h"
#define DLL extern "C" _declspec(dllexport)

HANDLE handle;
HWND apphwnd;
RECT rect;

int CALLBACK EnumWindowsProc(HWND hwnd, LPARAM param)
{
DWORD pID;
DWORD TpID = GetWindowThreadProcessId(hwnd, &pID);
if (TpID == (DWORD)param)
{
apphwnd=hwnd;
return false;
}
return true;
}

HANDLE StartProcess(LPCTSTR program,LPCTSTR args)
{

     HANDLE hProcess = NULL;
     PROCESS_INFORMATION processInfo;
     STARTUPINFO startupInfo;
     ::ZeroMemory(&startupInfo,sizeof(startupInfo));
     startupInfo.cb=sizeof(startupInfo);
     if(::CreateProcess(program,(LPTSTR)args,
                        NULL,
                        NULL,
                        FALSE,
                        0,
                        NULL,
                        NULL,
                        &startupInfo,
                        &processInfo))
        {
Sleep(5000);
::EnumWindows(&EnumWindowsProc,processInfo.dwThreadId);
        hProcess=processInfo.hProcess;
        }
     return hProcess;
}

DLL double HostingStartEmbed(char *Exe)
{
GetClientRect(GetActiveWindow(),&rect);
handle=StartProcess(Exe,"");
if(apphwnd!=NULL)
{
::SetParent(apphwnd,GetActiveWindow());
SetWindowLong(apphwnd, GWL_STYLE, WS_VISIBLE);
::MoveWindow(apphwnd,rect.left,rect.top,rect.right,rect.bottom, true);
}
return 0;
}

DLL double HostingEndEmbed()
{
TerminateProcess(handle,0);
return 0;
}

DLL double HostingSetRectangle(int Left,int Top,int Right,int Bottom)
{
::MoveWindow(apphwnd,Left,Top,Right,Bottom,true);
return 0;
}


The DLL I'm working on now does something similar, it just removes the border of the current game window and resizes the rectangle to fill the entire screen, otherwise known as "fake fullscreen". Though removing the border works in HostExe.dll, I'm not sure why it isn't working in FakeFullscreen.dll. The window isn't resizing, either. The dll can be called from my GMS game without trouble or errors, but the game just runs and acts as if the DLL isn't even being called. Here's the main.cpp code for FakeFullscreen.dll...

Code: [Select]
#include "main.h"
#define DLL extern "C" _declspec(dllexport)

DLL double FakeFullscreen(LPCTSTR Title,int Width,int Height)
{
    HWND Handle;
    Handle=FindWindow(Title, NULL);
    SetWindowLong(Handle, GWL_STYLE, WS_VISIBLE);
    MoveWindow(Handle,0,0,Width,Height,true);
return 0;
}

Anyone have an idea why FakeFullscreen.dll isn't working? I think it has to do with a problem in how I'm using FindWindow(), but then again, I'm using the correct title bar text my game has in the first argument, so idk...

Thanks.
~Samuel

734
Works in Progress / Re: Attack of the Naked Blockheads 3D
« on: March 20, 2014, 07:33:05 am »
Isn't that the same as 'GayStudio', as you've called it? :P

735
Works in Progress / Re: Attack of the Naked Blockheads 3D
« on: March 19, 2014, 06:54:26 pm »
I made it in RobertStudio. The project wouldn't load into enigma, unfortunately.