AGS 2.61 Pre-final Edition

Started by Pumaman, Sat 28/02/2004 23:04:11

Previous topic - Next topic

strazer

#140
Thanks, SSH, that would do.
For some reason, I always think of using custom functions last... :P

Still, I'd rather avoid all that script just to remedy such an obscure error.
IMHO, it would be better if he just stopped following. But maybe that's just me...

edmundito

#141
Quote from: Pumaman on Mon 03/05/2004 16:59:08
Robert Eric: yep, it's different in .net. In VB6, Integer = 2 bytes and Long = 4 bytes; in VB .net, Integer = 4 bytes and Long = 8 bytes.

Anyway, RC1 is now up which supports .net plugins. It's messy though, and I really wouldn't recommend using them. If you have a copy of VB6, use that instead.

Anyway, I've added a note to the bottom of the COM Plugins page on how to make a .net plugin work.

Victory has been acquired with C#. Here's the deal, tho.. I guess the Interop.AGSEditor.dll is compatible with all .NET-based plugins, right?

Basically, my main issue was that I didn't want to program it with visual basic, and it seems that microsoft is giving a big push to C#, which is apparently faster than VB. Now, there's also J#, which has the same syntax as Java, and that's what I know... but I read that it was slower than VB.net. I also don't have Visual Basic 6.. only VC++ 6.0 and VS.net 2002. All in all, now you have 3 options with .net: VB, C#, or J#... and they all have a good level of simplicity compared to programming it with C, specially if you can add forms and so forth.

I have an idea for a plugin, but I could also make some simple example with VB.net, C#, and J#....
The Tween Module now supports AGS 3.6.0!

Scorpiorus

Quote from: Pumaman on Sat 28/02/2004 23:04:11CanRunScriptFunctionNow, CallGameScriptFunction.
Superb!! I just want to suggest that thing but that's already in. So, it's now possible to write callback functions in the AGS script. Thanks CJ! :)



Pumaman

QuoteTo me, it makes perfect sense that the following is aborted if the sheperd is not put in the new room in advance.

Hehe ok I'm persuaded, I'll change it for the next version.

Quoteand just so Pumaman knows what I'd like to see in the editor plugin API:

Noted, I'll see what I can do.

QuoteVictory has been acquired with C#. Here's the deal, tho.. I guess the Interop.AGSEditor.dll is compatible with all .NET-based plugins, right?

Presumably, yeah. I think with .net, they have finally made it so VB, C#, J# and C++ all output compatible object code so they should all work together.

I presume you've managed to make a basic plugin with C# judging by what you said, so that's cool :)

Bear in mind though, don't go mad with .net plugins, because most people don't have the necessary runtime installed to use .net DLLs.

edmundito

#144
Here's a performance test I did with J#, C#, and VB on Visual Studio.net 2002:

Procedure Tested (Pseudo-Code):
========================
fibo(n)
{
    if (n < 0) return 0
    else if (n = 1) return 1
    else return fibo(n-1) + fibo(n-2)
}
Results for fibo(40)
==============
C# - roughly 5.2 seconds
J# - roughly 6.4 seconds
VB - roughly 8.4 seconds

However, if you write the procedure with a while loop and no recursion, the total runtime is actually 0 seconds for all three programs!  :o Even if you do like fibo(1 million), which would take a long time to calculate with recursion, it still gives out an answer in less than a millisecond.

----

Wow, in the past few hours I've learned a lot of at least designing the forms... they look great on AGS. However, I keep running into this thing where the panel background color in the editor is white, where in the IDE it has the default control (since it's windows xp, it's that creamish color). Anyway, I can even change the color of the background and it works, but it looks like the default color is white instead of the actual window color. Is this a bug?
The Tween Module now supports AGS 3.6.0!

Pumaman

Interesting about the performance there, I would have thought VB.net would be more equal with the other languages.

As for the background, AGS places the panes onto the standard grey background colour, so if they're coming out white it's probably some strange incompatibility issue with .net.

Gregjazz

There's some great potential now available with that "Z" coordinate. Thanks!

Scorpiorus

Quote from: Geoffkhan on Sat 08/05/2004 20:37:10
There's some great potential now available with that "Z" coordinate. Thanks!
Indeed. For instance, characters' jumping can be implemented with ease.

Thanks!

strazer

#148
When I try to play any video (mpg or avi) with PlayVideo("video.mpg",1,1), my game crashes when the video ends (by itself or via skip):

An exception 0xC0000005 occured in ACWIN.EXE at EIP = 0x00416E6F ; program pointer is +7, ACI version 2.61.744, gtags (6,0)

This doesn't happen in all rooms.
I have tried several combinations of skip and flag settings and disabled all rep_ex functions but I wasn't able to narrow it down to what could be causing this.
Any ideas?

Edit: Yep, that was it.

Pumaman

Well spotted, that happens if there's an ambient sound playing when you use PlayVideo. I'll get it fixed.

strazer

First of all, thanks for the updates! :)

But I've found another problem:

It seems character coordinates don't stay within (curve-shaped) walkable areas.
For example, if you use the GetScalingAt function with player.x and player.y in rep_ex to report the current scaling, sometimes it doesn't work if you walk along the edge of the walkable area.

I've whipped up another demo game here (62kb).

Btw, I've always wondered what the "Edit this .AGSGame" file is for?

MrColossal

I believe I found a little bug:

when importing an image if I click and drag to select all but the bottom pixel when zoomed in and I move the cursor off of the image area even by 1 pixel it shifts the entire box down and if I keep moving the cursor off the edge of the image the box jumps around wildly

I was able to get it by zooming out all the way after reselecting the image i wanted to import, but that's not ideal for every circumstance obviously
"This must be a good time to live in, since Eric bothers to stay here at all"-CJ also: ACHTUNG FRANZ!

TheMagician

I spotted a small problem with the editor:

my Windows task bar is not on the lower edge of the screen (as usual) but on the upper edge.
This works fine with the editor.
Only the Popup window which opens if you click "preview this view" in the view editor  is opened in the top left corner of the screen. This hides its "Close"-button exactly below my Windows task bar.
When it first happened I moved my task bar to the bottom and the moved the "Prieview View" Window to the middle of the screen. Then I closed it.
However,  opening it the next time it reappears in the top left corner again ... and so on.
Is it possible to save the coordinates of the window?

Radiant

Just a bunch of small bugs...

- the ^E 'edit local script' hotkey doesn't always work, even
  if the ^G and ^H keys do. Maybe it depends on the top panel?
- If I do a TintScreen (10,0,0) the screen gets less red,
  instead of more so.
- you might want to mention in the manual that Overlays are
  numbered 101 - 110, and that various common functions such
  as Display() also create overlays [and thus crash the game if
  ten exist already]
- StrGetCharAt() returns a negative value for characters > 127
- it would be nice if the empty game had a 'pointer' cursor

objects
- changing an object's name does not cause the room to be
  marked as 'dirty' for saving
- is it possible within a script to detect the amount of objects
  in a room?
- GetObjectY() actually returns a value one pixel below the
  lowest pixel of the object
- MergeObject places the object in front of all walkbehinds
  even if it has a baseline that should place it behind one
- after you Merge an object, it is still a valid object for
[psimoons@pc305l 13:41 ~/public_html/new] > more question.txt
misc
- the ^E 'edit local script' hotkey doesn't always work, even
  if the ^G and ^H keys do. Maybe it depends on the top panel?
- If I do a TintScreen (10,0,0) the screen gets less red,
  instead of more so.
- you might want to mention in the manual that Overlays are
  numbered 101 - 110, and that various common functions such
  as Display() also create overlays [and thus crash the game if
  ten exist already]
- StrGetCharAt() returns a negative value for characters > 127
- it would be nice if the empty game had a 'pointer' cursor

objects
- changing an object's name does not cause the room to be
  marked as 'dirty' for saving
- is it possible within a script to detect the amount of objects
  in a room?
- GetObjectY() actually returns a value one pixel below the
  lowest pixel of the object
- MergeObject places the object in front of all walkbehinds
  even if it has a baseline that should place it behind one
- after you Merge an object, it is still a valid object for
  subsequent calls to SetObjectPosition, -Graphic etc, only
  the object won't be displayed any more. MergeObject can be
  called again to draw the object once more!

dialogs
- in the dialog editor, 'run-script 0' gives a compiler error
- on_key_press and rep_ex_always won't run while a dialog is
  running (the idea was to have ESC automatically select the
  last dialog obtion, which tends to be 'goodbye')
- why can't I delete a dialog topic?

TerranRich

You repeated a bunch of bugs there, Radiant.

Also, thanks CJ, the new character[].z feature looks great!
Status: Trying to come up with some ideas...

Radiant

Oh, sorry about that. Didn't get much sleep this weekend.
Looking forward to 2.62 very much!
(real ultimate power!!!)

Pumaman

Quote from: strazer on Mon 10/05/2004 01:18:58
It seems character coordinates don't stay within (curve-shaped) walkable areas.
For example, if you use the GetScalingAt function with player.x and player.y in rep_ex to report the current scaling, sometimes it doesn't work if you walk along the edge of the walkable area.

Thanks for the demo game. Yes, this will sometimes happen while a character is moving, as for performance reasons the pathfinder can give slightly inaccurate results.

I can see how this is a problem if your code is relying on GetScalingAt (since internally AGS compensates for this pathfinder error by checking the scaling a couple of pixels around the character).

Perhaps the best solution is to add a GetCharacterScaling function to return the character's current scaling level, I'll have a think about it.

Quote
Btw, I've always wondered what the "Edit this .AGSGame" file is for?

In the version of AGS that was distributed as a windows installer, it created an association for ".AGSGame" files so that you could double-click the "Edit this AGSGame" file to open the game in the editor.

You can create this association manually if you like, just set up .AGSGame files so that their association is:

c:\path\to\ags\agsedit.exe -shelllaunch "%1"

Quotewhen importing an image if I click and drag to select all but the bottom pixel when zoomed in and I move the cursor off of the image area even by 1 pixel it shifts the entire box down and if I keep moving the cursor off the edge of the image the box jumps around wildly

Hmm yeah I can see what you mean here, I'll look into it.

QuoteWhen it first happened I moved my task bar to the bottom and the moved the "Prieview View" Window to the middle of the screen. Then I closed it.
Is it possible to save the coordinates of the window?

Sounds reasonable to me, I'll add it to my list.

Quote
- the ^E 'edit local script' hotkey doesn't always work, even
  if the ^G and ^H keys do. Maybe it depends on the top panel?

Yeah, you have to click in the right hand pane before the accelerator keys there will work, it's a bit annoying but I haven't really got time to fix it.

Quote
- If I do a TintScreen (10,0,0) the screen gets less red,
  instead of more so.

Hehe yeah, the TintScreen command is a bit dodgy. I think (50,50,50) should leave the screen unchanged, then numbers either side increase and decrese the components. It's not a true tint though - a combination of RawDrawFrameTransparent and SetAmbientTint is recommended to get a proper tint effect.

Quoteyou might want to mention in the manual that Overlays are
  numbered 101 - 110,

Well, this is arbitrary and could change at any time, it's not something I want to document

Quoteand that various common functions such
  as Display() also create overlays [and thus crash the game if
  ten exist already]

Good point, will do.

Quote- StrGetCharAt() returns a negative value for characters > 127

Well spotted, I'll get it fixed.

Quote- it would be nice if the empty game had a 'pointer' cursor

I'm not sure about that - other people would complain if it did. The empty game is just that - empty  :P

Quote- changing an object's name does not cause the room to be
  marked as 'dirty' for saving

Aye, this is an oldie, I really must get round to fixing it.

Quote- is it possible within a script to detect the amount of objects  in a room?

No, but I'll add it to my to-do list.

Quote- GetObjectY() actually returns a value one pixel below the lowest pixel of the object

the bug is really the other way round - the object is drawn 1 pixel too high. The co-ordinate you get with GetObjectY is the correct one that is used by the pathfinder, baselines, etc.
In terms of fixing the other issue, I can't really for backwards compatibility reasons - people will have aligned animations and so on to look right with the current way it works. It's just a little oddity we'll have to live with ;)

Quote- MergeObject places the object in front of all walkbehinds
  even if it has a baseline that should place it behind one

MergeObject is effectively RawDrawObject followed by ObjectOff; therefore this will happen. It should probably be better documented though.

Quote- after you Merge an object, it is still a valid object for
  subsequent calls to SetObjectPosition, -Graphic etc, only
  the object won't be displayed any more. MergeObject can be
  called again to draw the object once more!

Hehe this is rather nifty really, I'll leave it as is for now ;)

Quote- in the dialog editor, 'run-script 0' gives a compiler error

The dialog script compiler tends to treat 0 as no parameter, so yeah this will happen. It's not a big enough problem for me to fix, though.

Quote- on_key_press and rep_ex_always won't run while a dialog is
  running (the idea was to have ESC automatically select the
  last dialog obtion, which tends to be 'goodbye')

The game is blocked while dialog options are displayed - and script functions only run while the game is running. This should probably be changed since it would be handy to be able to do stuff while the options are displayed.

Quote- why can't I delete a dialog topic?

Because they're referred to by number, and deleting one would mess up the numbering of the others. Deleting the last one is a possibility though (and other workarounds such as leaving an empty placeholder are possible too).


Thanks for all your comments, guys :)

Scummbuddy

#157
Hmm, I'm using beta 6, and using 3 regions to moveobjectdirect to get a parralax feeling to a scene. I understood it as moveobjectdirect ignored all walkable areas, but when i step onto the first region, the object zooms up towards the closest region, then continues to move 'somewhat' correctly, but still, along the closest walkable area. I hope you understand. Im basically asking, is there something wrong with the MoveObjectDirect command?

Edit* I have since, added a walkable area for it to move along for itself, but it still wants to move up to the other walkable area to move along...

okay, nevermind, i was using what the editor sais was the objects position as the bottom line to do the moving object along, but thats probably what caused the movement of the object up, since the object is said to be at (508, 93), but its bottom middle pixel is at like (555, 142). Sorry.
- Oh great, I'm stuck in colonial times, tentacles are taking over the world, and now the toilets backing up.
- No, I mean it's really STUCK. Like adventure-game stuck.
-Hoagie from DOTT

Pumaman

Scummbuddy: upgrade - RC 1 fixed that so that the editor displays the correct bottom-left co-ordinate for objects.

Snake

Not sure if this is a bug, or just my own fault, but I've noticed this came up with the 2.61 beta:

I've got a GUI with a label that displays text messeges. It's quite simple really. But for some reason when I updated to this version, the text doesn't show up, yet I never messed with any code. I updated then immediately tested the game.
What am I missing?

Thanks in advance,


--Snake
Grim: "You're making me want to quit smoking... stop it!;)"
miguel: "I second Grim, stop this nonsense! I love my cigarettes!"

SMF spam blocked by CleanTalk