Menu

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.

Show posts Menu

Messages - Monsieur OUXX

#361
Completed Game Announcements / Re: Metaphobia
Thu 27/06/2019 12:19:03
This is fantastic
#362
Excellent! Another coolio game for AGS legacy
#363
Quote from: notarobotyet on Mon 17/06/2019 09:01:15
Jules Verne could be a great inspiration for pretty much any kind of adventure games.

+1
The Brodebund guys turned it into Myst, but I'm sure it could work for simpler, ore conventional games. Especially if you combine the two separate prequels that are "20,000 leagues under the seas" and "The children of Captain Grant" with the double resolution story/conclusion "Mysterious island" (which has uncanny resemblance with the first seasons of Lost, by the way). Boom: 3 steampunk books, one game.
#364
Quote from: Crimson Wizard on Sun 16/06/2019 19:37:17
PS. I wonder why there's no arrays of arrays in AGS though. From the engine's perspective there should not be any restriction, because dynamic arrays are managed objects, and dynamic arrays can already store references to managed objects. Maybe the only problem is again in AGS compiler not being smart enough to support the syntax.

You suggested that in the past and I started looking into it, but I wasn't good enough to tweak the engine/editor code and make it work.

But really, all we need is a copy and paste of the "Set" object, called "Array", storing int, with basic functions like "Add", "Remove", "SetAt", "GetAt". The difference with a scripted struct being that you can pass pointers to these Arrays and store then in an array.
#365
I know I'm a bit late to the party but

Spoiler


DICTIONARY AND SET

FINALLY




[close]

Those objects provide more or less arrays of pointers to arrays of Strings ( Set* s[] = new Set[100]; s[0] = Set.Create(), where s is the array of pointers, and s[0] is an array of Strings. )

This brings us closer to the awaited ability of manipulating arrays of pointers (or references, whatever) to arrays of int, which, for me, is the holy grail missing from AGS.
It's however still not possible because:
- Those two objects let us manipulate pointers to arrays of Strings, not arrays of int
- There's not "GetAt", even for unsorted sets.

If there was a "Set" object dedicated to storing int values, and if there was a "GetAt" function, then everything would be perfect.
I know that dynamic arrays of dynamic arrays containing int values are already possible if you use Strings as char arrays to store ints and then put those Strings into an array of their own, but that's super slow.
#366
Really really cool. Very happy for you!
#367
Quote from: Mandle on Fri 31/05/2019 15:48:00
About the name of Marty's mother
Spoiler
It works only if the first letter is not a capital letter!
[close]

Ah, good old    if (solution.toUpper() == input.toUpper())
Bugging your programs since 1975!
#368
As per request, I've updated the download link, it's now repaired.

Quote from: eri0o on Sat 06/05/2017 00:12:25
I have the error:
function 'Character::FaceDirection' is already defined

That's because this module was written before AGS finally included a built-in FaceDirection function. Therefore, the module has its own function with the same name, and also defines its own Directions enum. Just rename the module's FaceDirection function (to FaceDirection2 or whatever) or call AGS' native function instead.

Also don't forget that for optimal results you should now put the module's main loop in late_repeatedly_execute_always, otherwise you character's mirror reflection could be one frame late.
#369
Quote from: Crimson Wizard on Thu 11/04/2019 11:22:39
This link is given in the first section of Windows/README.md, but lot of people seem to miss it.

Yes, I do miss it every time. And this time, believe it or not, I was specifically looking for it. I was like "I seem to remember that the built libraries were here somewhere. Oh, I must jave dreamt it".

I'm building with VS2017, and I tried the 2 build configurations (MD and the other one), both in static and dynamic (which means I tried 4 build configurations).
They produce files named like "allegro-debug-static.lib", so each time I tried to rename the file to "alleg.lib", for alfont to be happy. But I knew that the debug static one should have been the correct one. Yet the linker failed to find the proper functions when building alfont.
But as you said, maybe I picked the wrong build configuration for alfont itself. For my personal education: How do I make sure I'm trying to build the configuration for the static version?

That said, it doesn-t really matter now, as I'll use the pre-built ones.
#370
I've built the branch "allegro-4.4.2-agspatch" that I got from https://github.com/adventuregamestudio/lib-allegro, but all it builds is "alleg-debug-static.lib".
It does not generate"alleg.lib" that alfont demands when trying to build it from branch alfont-1.9.1-agspatch.
#371
Quote from: Dualnames on Wed 20/03/2019 11:44:09
I've uploaded both the AGS project file and the source code of the plugin here, https://github.com/Dualnames1/AGSNormalMap I'm working on other stuff right now, so it's hard for me to progress with this currently, i'll come back to it, definitely.

That is awfully generous of you. Thank a lot!
#372
Quote from: Crimson Wizard on Mon 01/04/2019 12:00:54
Hmm, I don't remember if Editor copies subfolders from Compiled/Data too, it probably should be made do that.

Well yes it makes sense, but if /Data remains just a subfolder of the execution folder, then it's just a refinement, not a big change.
#373
Quote from: Crimson Wizard on Fri 29/03/2019 20:40:03
Reading should be possible 100%. What subfolder do you have in mind?

I wasn't clear enough because Cassiebsg sounded puzzled too.
What I want is generate some custom data from the game, and store it in a subfolder so that it doesn't become messy --that's just an OCD thing because there wil be hundreds of files. (if you want to know everything I'm writing a virtual filesystem module, to go around the absence of File.MakeDir, and therefore be able to manage a complete cache from the game). Everything is written and read from this single, flat subfolder.

If this custom subfolder of mine is already present in either of savegame/data/installdir folders, then I can read from it. No problem.

The question is : How does this subfolder arrive there in the first place?
It's for dynamic data, so ideally it would be created by the game. But since it's not an option, then I need to create it myself, beforehand. As a developer, it's easy for me to create manually my Custom subfolder in the Compiled folder and then forget about it. But then that will be the install dir. No good for writing dynamic files there.
Then, remain the game's data and savegame folders, but I don't think I can create a folder there manually before the game is actually "installed" (or at least has run at least once on the system). Creating a subfolder into the /Compiled/Data folder has no effect, apparently. A backup solution would be to deploy my subfolder to appadatadir with a custom installer but I don't want to go there.
#374
You're a life saver.

#375
Quote from: Crimson Wizard on Sat 30/03/2019 19:47:40
Quote from: Monsieur OUXX on Sat 30/03/2019 19:09:35
I'm pondering the creation of a branch off "develop" to add PNG
"develop" is an old branch no longer found in current repository. Current WIP version is in "ags3" branch.

I've forked from the main repository (on GitHub) but I'm slightly confused: I had done a fork already in the past, and now it's reusing the same fork instead of creating a new one (one single fork per project per user???). The files in my fork are from a billion years ago. But a fork is not a branch (or is it?) so I don't know how to rebase it on master or "ags3". Should I try that or should I just clone the "regular repo" (not my fork) and create a branch there directly? I've read the guidelines in the sticky thread and they definitely recommend to fork first.
#376
I'm pondering the creation of a branch off "develop" to add PNG support for DynamicSprite.CreateFromFile. It shouldn't be too hard I believe. It's just a matter of adding a call to this (library "loadpng") where the native Allegro call would normally be done.

Is there any licensing issues though? I mean with libpng and zlib.


For the record, the interesting code is here:
Code: ags

Function "LoadImageFile" in /Engine/ac/global_dynamicsprite.cpp
Function "LoadFromFile" in /Common/gfx/bitmap.cpp
Function "LoadFromFile" in /Common/gfx/allegrobitmap.cpp


#377
EDIT
Spoiler

I still don't get what's the correct way of opening a file from APPDATADIR for reading when I'm debugging.

Is this supposed to work when FILE.png is in "game project folder/Compiled/Data/" ? Because it doesn't.

Code: ags

  String fileName = "$APPDATADIR$/FILE.png"; 
  File* f = File.Open(fileName, eFileRead);
  if (f==null)
    AbortGame(String.Format("Can't find file '%s'", fileName));


[close]

99% of the confusion comes from the fact that I always believe that this "App data" folder targetted by APPDATADIR is the "Data" subfolder inside "compiled". Not C:/ProgramData/Whatnot.

I'm also bummed out by the fact that I want to read and write to a SUBfolder. But that's not possible, I'm now accepting it.
Reason: If I put it in APPDATADIR, then File.Open won't work for writing (because it's a SUBfolder, as per AGS documentation). If I put it in INSTALLDIR then writing will be blocked because safety reasons. And if I want to write to SAVEGAMEDIR then I cannot guarantee that the folder is created there beforehand, and I cannot create it through the script language. Oh well.
#378
Quote from: Crimson Wizard on Thu 28/03/2019 19:23:51
Okay, that may be useful for debugging, but regarding paths, default locations are:

$APPDATADIR$ - C:/ProgramData/Adventure Game Studio/your game name
$SAVEGAMEDIR$ - %USERPROFILE%/Saved Games/your game name
$INSTALLDIR$ - in normal mode: where your game exe is in Compiled/Windows; in test mode it checks both project root and Compiled/Windows.

Thanks.
Inbetween I remembered FillDirList that can help.
#379
Quote from: morganw on Thu 28/03/2019 18:27:04
I think you would need to use $INSTALLDIR$ instead of $APPDATADIR$.
Are you saying that it doesn't work yet, or that it doesn't work as expected?
#380
Suggestion: Add a static function String File.ResolveFile(String fileName) that resolves the full path just like File.Open would, with the possibility of using $APPDATADIR$, $SAVEGAMEDIR$, etc in the file name.
Because I'm frustrated of spending 15 minutes every time I start a new game just to find the right folder where I should place my files. I literally resolve it through trial and error every time.
SMF spam blocked by CleanTalk