Thanks, I don't think anyone had realised this.
https://github.com/adventuregamestudio/ags-manual/issues/33
https://github.com/adventuregamestudio/ags-manual/issues/33
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 MenuQuote from: GameWithSound
Adventure Game Studio v3.4 Interpreter
Copyright (c) 1999-2011 Chris Jones and 2011-2018 others
ACI version 3.4.1.15
Initializing allegro
Initializing game data
Located game data file: /home/mwillcock/Downloads/ex/data/3GEEKS - DEMO.ags
Opened game data file: game28.dta
Game data version: 49
Compiled with: 3.4.1.15
Setting up game configuration
Logging scipt to "warnings.log"
Setting up window
Initializing TTF renderer
Initializing mouse: number of buttons reported is 3
Checking memory
Data directory: /home/mwillcock/Downloads/ex/data
Audio vox found and initialized.
Initializing keyboard
Install timer
Sound settings: digital driver ID: 'Auto' (0xffffffff), MIDI driver ID: 'Auto' (0xffffffff)
ALSA lib rawmidi_hw.c:233:(snd_rawmidi_hw_open) open /dev/snd/midiC0D0 failed: No such file or directory
Unable to initialize your audio hardware.
[Problem: /dev/sequencer: No such file or directory]
Installed digital driver ID: 'ALSA' (0x414c5341), MIDI driver ID: 'None' (0x0)
Install exit handler
Initialize path finder library
Game GUI version: 118
Requested script API: v3.4.1 (5), compat level: v3.3.4 (2)
Game title: '3 GEEKS'
Checking for disk space
Initializing MOD/XM player
Game native resolution: 1024 x 768 (32 bit)
Game settings: windowed = no, screen def: max, screen size: 0 x 0, match device ratio: yes, game scale: proportional
Requested graphics driver 'D3D9' not found, will try existing drivers instead
Mouse control: on, base: 1.000000, speed: 1.000000
Initialize sprites
Audio is processed on the main thread
Engine initialization complete
Starting game
***** ENGINE HAS SHUTDOWN
![]() | ![]() |
Quote from: The AuthorIt is my fifth full title, this time about a miserable stock broker and an unemployed musician who while desperately trying to swim out of debt find unlikely answers in the local Ku Klux Klan branch, leading them on an absurd and often comedic adventure.
QuoteDatabase query F.9.1 error: Unknown column 'multiple_winners' in 'where clause'
Quote from: Internal error
[104536ca1a6d4a8a8ff0c1e6] /w/index.php?title=Keyword:_attribute&action=edit Error from line 489 of /home/ags/html/w/extensions/ConfirmEdit/SimpleCaptcha/Captcha.php: Class 'CaptchaTriggers' not found
Backtrace:
#0 /home/ags/html/w/extensions/ConfirmEdit/SimpleCaptcha/Captcha.php(554): SimpleCaptcha->triggersCaptcha(string, Title)
#1 /home/ags/html/w/extensions/ConfirmEdit/SimpleCaptcha/Captcha.php(214): SimpleCaptcha->shouldCheck(WikiPage, string, string, RequestContext)
#2 /home/ags/html/w/extensions/ConfirmEdit/includes/ConfirmEditHooks.php(62): SimpleCaptcha->editShowCaptcha(EditPage)
#3 /home/ags/html/w/includes/Hooks.php(177): ConfirmEditHooks::confirmEditPage(EditPage, array, integer)
#4 /home/ags/html/w/includes/Hooks.php(205): Hooks::callHook(string, array, array, NULL)
#5 /home/ags/html/w/includes/EditPage.php(4346): Hooks::run(string, array)
#6 /home/ags/html/w/includes/EditPage.php(3633): EditPage->getEditButtons(integer)
#7 /home/ags/html/w/includes/EditPage.php(2881): EditPage->showStandardInputs()
#8 /home/ags/html/w/includes/EditPage.php(674): EditPage->showEditForm()
#9 /home/ags/html/w/includes/actions/EditAction.php(60): EditPage->edit()
#10 /home/ags/html/w/includes/MediaWiki.php(500): EditAction->show()
#11 /home/ags/html/w/includes/MediaWiki.php(294): MediaWiki->performAction(Article, Title)
#12 /home/ags/html/w/includes/MediaWiki.php(861): MediaWiki->performRequest()
#13 /home/ags/html/w/includes/MediaWiki.php(524): MediaWiki->main()
#14 /home/ags/html/w/index.php(42): MediaWiki->run()
#15 {main}
Quote from: eri0o on Sat 22/12/2018 14:22:12To be honest, it was more a debug tool that was left in. It turns out that majority time whilst the Editor was in hung state was spent modifying the GUI control in a loop, and nothing to do with the import actions at all. This should be fixed now, so you should see a massive performance increase as well as the progress bar.
I like the new progress bar addition, I think previously AGS just stood there unresponsive, in a folder with too many sprites, this is nice.
Quote from: eri0o on Sat 22/12/2018 14:22:12I think you are right, and just leaving it on 0,0 makes more sense in practice. I'll change it.
On the tiled sprite import, one minor thing, it loads with a number in x,y position, I think the default should be 0,0 (imagining I have a single sheet png, with each images of the same size).
Quote from: eri0o on Sat 22/12/2018 14:22:12I don't think this was modified, but it doesn't seem to work for me either, so I'll have a look.
The is an option to copy a sprite to the clipboard on the sprite navigator, I don't know if that was there before, but when I click, it does nothing.
Quote from: eri0o on Sat 22/12/2018 14:22:12Personally, I'm still aiming for just having sprites on the disk, and 'importing' is just defining the import options for each image. So I would hope that the final result would just be a 'project browser' instead of a 'sprite manager', and you could choose some action on any type of file or folder, or hand-off to any external program. I think the toolbar has a lot of issues anyway, in that things magically appear there depending on what you are editing (since they also include the paint controls), and it contains functions that aren't available in any other place (probably makes sense for choosing a paint brush, but not for mask import/export).
Feature requests for the sprite GUI!:
- I have Aseprite triggering as my external editor, and it opens lightning fast, but a way to view and zoom a imported sprite, in AGS, would be cool.
- sprite GUI, has all things available through the right click on white space, adding a small bar on top of the GUI, with the same functions, would easier. I prefer inside the tab instead of the main toolbar like the rest of AGS, but both would work - one favor low resolution monitor and the other bigger resolution monitors.
- totally new feature: import folder -> would import a folder with pngs, and if a folder with png is inside that folder, recreate the folder structure inside AGS. I think is unneeded as project normally evolve slowly but could enable really fast use of ready made graphics from graphic asset packages.
Quote from: eri0o on Sat 22/12/2018 14:22:12I tried the one in the archive and it seemed to work. If it was an error for 'ProcessClick' it could have been an older copy of the template that hadn't had the fixes made. I think the plan is to release the final version of 3.5 with the templates from here.
Script Compatibility seem kinda broken since BASS template doesn't work anymore.
Quote from: License.txtand
"Copyright Holder" means the copyright holders listed in the file Copyright.txt
Quote from: Copyright.txt...it doesn't seem entirely clear who be defined as 'Copyright Holder' in Artistic License 2.0. Just reading it from a layman's perspective I think you would be okay to distribute compiled versions based on the text in Distribution of Compiled Forms of the Standard Version or Modified Versions without the Source as long as you documented the differences (from an external perspective, so keep your code private) and renamed all references of AGS to something else (so you are complying with option b in section 4):
Copyright (c) 1999-2011 Chris Jones and 2011-2018 various contributors
Quote4(b) ensure that installation of your Modified Version does not prevent the user installing or running the Standard Version. In addition, the Modified Version must bear a name that is different from the name of the Standard Version.That said, I imagine the preferable solution of the original project would probably be to take changes to make the engine backend agnostic, and just declare an interface that anyone could use to add additional platform support. 'Extending' AGS this way would likely fall under Items That are Not Considered Part of a Modified Version and so you wouldn't have to comply with any of the restrictions. How feasible this approach is would be questionable; I imagine it would be significantly more work, but potentially each side of the interface could be funded separately if there was someone else with a commercial interest.
Quote from: Crimson Wizard on Mon 17/12/2018 20:21:43I think this is the relevant info: https://docs.microsoft.com/en-gb/windows/desktop/hidpi/high-dpi-desktop-application-development-on-windows
How does it decide on whether application needs it or not? Maybe there is a way to integrate some info into executable?
Quote from: Chicky on Mon 17/12/2018 20:02:36I doubt this would work, it probably wrote a setting to the registry on your computer and didn't modify anything to do with the game.
Or would you just recommend just setting it to 'Scaling performed by: Application' before deploying the game?
readonly int EXPECTATION_COUNT = 10;
String[] GetEditorExpectations(int count)
{
String expectations[] = new String[EXPECTATION_COUNT];
expectations[0] = "Aggressive";
expectations[1] = "Emotional";
expectations[2] = "Fictional";
expectations[3] = "Friendly";
expectations[4] = "Informative";
expectations[5] = "Interesting";
expectations[6] = "Intrusive";
expectations[7] = "Personally Viewed";
expectations[8] = "Tabloid";
expectations[9] = "Thrilling";
String chosen[] = new String[count];
for (int i = 0; i < count; i ++)
{
int max = EXPECTATION_COUNT - 1 - i;
// pick a phrase
int pick = Random(max);
chosen[i] = expectations[pick];
// shift array elements
for (int j = pick; j < max; j ++)
{
expectations[j] = expectations[j + 1];
}
}
return chosen;
}
String GetExpectationsAsString(String expectations[], int max)
{
String text = "";
for (int i = 1; i <= max; i ++)
{
// everything but the first phrase uses a separator
if (i > 1)
{
if (max > 2)
{
text = text.Append(",");
}
text = text.Append(" ");
}
// the final phrase also includes "and "
if (i == max && max != 1)
{
text = text.Append("and ");
}
text = text.Append(expectations[i - 1]);
}
return text;
}
function WhateverYourTriggerIs()
{
// how many expectations to get
int choose = 3;
// store these somewhere for use later
String expectations[] = GetEditorExpectations(choose);
// get expectations as text
String text = GetExpectationsAsString(expectations, choose);
if (text != null)
{
String display = String.Format("The story is expected to be: %s", text);
Display(display);
}
}
readonly int EXPECTATION_COUNT = 10;
String ChoosePhrase(String phrases[], int count, int current)
{
String expectations = "";
// everything but the first phrase uses a separator
if (current > 1)
{
if (count > 2)
{
expectations = expectations.Append(",");
}
expectations = expectations.Append(" ");
}
// the final phrase also includes "and "
if (current == count && count != 1)
{
expectations = expectations.Append("and ");
}
// pick a phrase
int pick = Random(EXPECTATION_COUNT - current);
expectations = expectations.Append(phrases[pick]);
// if not done
if (current != count)
{
// shift array elements and choose again
for (int i = pick; i < EXPECTATION_COUNT - current; i ++)
{
phrases[i] = phrases[i + 1];
}
expectations = expectations.Append(ChoosePhrase(phrases, count, current + 1));
}
return expectations;
}
String GetEditorExpectations(int count)
{
String interviewExpectations[];
interviewExpectations = new String[EXPECTATION_COUNT];
interviewExpectations[0] = "Aggressive";
interviewExpectations[1] = "Emotional";
interviewExpectations[2] = "Fictional";
interviewExpectations[3] = "Friendly";
interviewExpectations[4] = "Informative";
interviewExpectations[5] = "Interesting";
interviewExpectations[6] = "Intrusive";
interviewExpectations[7] = "Personally Viewed";
interviewExpectations[8] = "Tabloid";
interviewExpectations[9] = "Thrilling";
return ChoosePhrase(interviewExpectations, count, 1);
}
function WhateverYourTriggerIs()
{
String expectations = GetEditorExpectations(3);
if (expectations != null)
{
String display = String.Format("The story is expected to be: %s", expectations);
Display(display);
}
}
By continuing to use this site you agree to the use of cookies. Please visit this page to see exactly how we use these.
Page created in 0.141 seconds with 14 queries.