Recent Posts

Pages: 1 2 [3] 4 5 ... 10
21
AGI Syntax Help / Re: Need help adding text to parser
« Last post by Kawa on May 21, 2021, 06:11:51 AM »
Would this solution work with the Hercules Monochrome driver that displays a pop-up input dialogue like SCI does?
You mean this input dialogue box?



Maybe if the game is detecting that it's running on Herc and set the same prompt to "Enter input" instead of ">". If it's the engine itself, you'd be SOL. And looking at LSL1 and ScummVM, it seems you would in fact be just that.
22
Hi.

We've finally finished the PQ1 (agi) Hebrew translation project.
It was very fun :)
Thanks for everyone that helped, and especially AGKorson, for WinAGI, and the great support!

https://github.com/adventurebrew/HebrewAdventure/releases/download/pq1_v1/pq1-hebrew-installer.exe



 
23
AGI Syntax Help / Re: Need help adding text to parser
« Last post by MusicallyInspired on May 20, 2021, 04:38:53 PM »
Unfortunately, the input line is not accessible in AGI through commands. The input line buffer is actually maintained in memory at the end of the code segment, just before the main memory heap - it's part of the data overlay, agidata.ovl.

But there are no commands that let you interact directly with that buffer. The get.string command uses a different buffer.

You might be able to fake it by changing the input prompt to include 'ask about', and then get input as usual. This might be a start:
Code: [Select]
if (controller(c49) {
  set.string(inputPrompt, ">ask about ");
  cancel.line();
  accept.input();
  set(f123);
}

I did a quick test of this and it works. When you test for 'said' input, you can check the flag; if it's set, you can respond appropriately. Then reset your input prompt (and the flag). You will also need to make sure you put the check for this flag before any other said tests to avoid unwanted results.

A limitation of this approach is that you can't backspace over 'ask about', because it's part of the input prompt. It might be possible to work around that too, but I'd have to think about it some more.

Would this solution work with the Hercules Monochrome driver that displays a pop-up input dialogue like SCI does?
24
AGI Syntax Help / Re: Need help adding text to parser
« Last post by klownstein on May 19, 2021, 10:04:24 PM »
Thanks for the quick replies. I'd spent quite a few hours over the past several days pouring over the documentation and reading through the WinAGI help files to see if I could get a little more control over the parser before I felt like I'd hit a dead end and needed to ask the experts. It sounds like the closest option will be some type of work around with a small compromise in expectations. Even so, it will be much, much better than having to type "ask about" a zillion times. Thanks again for the responses and the help!
-klownstein
25
AGI Syntax Help / Re: Need help adding text to parser
« Last post by AGKorson on May 19, 2021, 07:53:12 PM »
Unfortunately, the input line is not accessible in AGI through commands. The input line buffer is actually maintained in memory at the end of the code segment, just before the main memory heap - it's part of the data overlay, agidata.ovl.

But there are no commands that let you interact directly with that buffer. The get.string command uses a different buffer.

You might be able to fake it by changing the input prompt to include 'ask about', and then get input as usual. This might be a start:
Code: [Select]
if (controller(c49) {
  set.string(inputPrompt, ">ask about ");
  cancel.line();
  accept.input();
  set(f123);
}

I did a quick test of this and it works. When you test for 'said' input, you can check the flag; if it's set, you can respond appropriately. Then reset your input prompt (and the flag). You will also need to make sure you put the check for this flag before any other said tests to avoid unwanted results.

A limitation of this approach is that you can't backspace over 'ask about', because it's part of the input prompt. It might be possible to work around that too, but I'd have to think about it some more.


26
AGI Syntax Help / Re: Need help adding text to parser
« Last post by gumby on May 19, 2021, 06:27:30 PM »
In SCI, you can do this by appending the string into the buffer before showing the parser input box.  Is something similar possible with AGI?
27
AGI Syntax Help / Need help adding text to parser
« Last post by klownstein on May 19, 2021, 04:13:57 PM »
I am working on an AGI project and want to implement a hot key to add "ask about" to the text parser a la Quest for Glory II. In QFG2, the player can press Ctrl-A and the parser writes "ask about" as if the player had written those words into the parser.

I know how to set up controllers to trigger when the player presses Ctrl-A, but am finding it harder to write anything into the parser and am not sure if it is even possible.

The closest I have been able to get is by using the following command:

get.string(s1, ">ask about ", 22, 0, 40);

This will appear to do what I want, but is not the same as just writing "ask about" in the parser because it stops the game from cycling, prevents you from erasing the words "ask about", because they are not actually in the parser, and requires extra work to provide responses to the question (rather than using the if(said("words")) command, I am having to set and compare strings AND have it work when the player actually writes "ask about" into the parser, more than twice the effort and feels very clunky).

Does anyone know where the information that is written into the parser before the player presses <enter> is stored? Is it in a string somewhere that I can access? Is there any way to modify that information?

What I have works, but does anyone know if it is possible to write words into parser? It would make life so much easier if I could do it that way. Something like:

if(controller(c49){
    cancel.line(); //clears all words from the parser if player has something written there
    MAGIC.COMMAND("ask about");//writes the words "ask about" into the parser
    accept.input();//allows player to type like normal with the words "ask about" having previously been written
}

Ideas?

-klownstein


28
Looks great, your project is progressing well!
29
Been half a year, so what's new?

Working mainly on asset creation and story/puzzle plotting. On that front, I've produced somewhere near 60 or so backgrounds. For a project that was just supposed to be 1/3 of total game, this one is shaping up to be more of a full-length experience than I had anticipated at the outset, but I think that's great because it means I keep having more story and puzzle ideas to flesh out (and a bigger forest to explore). For comparison, Betrayed Alliance Book 1 had 56 Backgrounds, and I feel like I'm nowhere near finished making backgrounds. I would estimate maybe 100 or so would be the final amount for Book 2 (which is in the ballpark of some of the Sierra Originals).

I've also been working on character animations for the main two playable characters. Death screen animations and pictures were a focus earlier this year.



I will admit that work on the game has diminished to about 50% of my usual work in the last couple of months as I've been focusing on my health. I'm generally healthy, but have high blood pressure and have been working to get my weight down so that my blood pressure will reduce as well. So I've been working out more in my "free time" which has cut into my ability to work on the game. But I'm already at the halfway point for my weight goal having lost 18 lbs, so I'm looking forward to not having to focus so much energy on that and can get back to full creative capacity!

Here's some of my newer screens:




30
SCI Development Tools / Re: Wolfenstein 3D fizzlefade (SCI-related)
« Last post by Kawa on May 05, 2021, 02:07:58 PM »
Similar  in technique, at least. You be the judge exactly how similar.

Code: [Select]
word  i, j, x, y, rand = 1234;
rand &= RANDMASK; //#define RANDMASK 0x240
for (j = 0; j < 64; j++)
{
for (i = 0; i < 16; i++)
{
if (rand & 1)
rand = (rand / 2) ^ RANDMASK;
else
rand /= 2;
x = rand % 40;
y = rand / 40;
//reveal or black out rect (x * 8, y * 8, (x * 8) + 8, (y * 8) + 8)
}
}
Code: [Select]
long rndval = 1;
short x, y;
do
{
y =  rndval & 0x000FF; //Y = low 8 bits
x = (rndval & 0x1FF00) >> 8; //X = High 9 bits
unsigned lsb = rndval & 1;
rndval >>= 1;
if (lsb) rndval ^= 0x00012000;
//black out pixel (x, y)
} while (rndval != 1);
Pages: 1 2 [3] 4 5 ... 10

SMF 2.0.14 | SMF © 2017, Simple Machines
Simple Audio Video Embedder

Page created in 0.113 seconds with 17 queries.