AGS 2.61 Final now released!

Started by Pumaman, Sun 30/05/2004 19:16:45

Previous topic - Next topic

Pumaman

It's time for me to present to you the final version of AGS v2.61...

Changes since Pre-Final:
* Fixed lockup which could occur with some nested interactions.
* Fixed Mouse Moves Over Hotspot being broken for hotspot 0 in beta 2.
* Fixed lockup when trying to delete a sprite which was in use.

All changes since v2.60 SP1:
* Added AreThingsOverlapping, DisableGroundLevelAreas, EnableGroundLevelAreas, FileIsError, HasPlayerBeenInRoom, RawDrawImageResized, RawDrawImageTransparent, SaveCursorForLocationChange, SetCharacterFrame, SetGraphicalVariable, SetGUIObjectEnabled, SetInvItemName, SkipUntilCharacterStops script functions.
* Added operators % ! ^ << >> to scripting engine (remainder, Not, XOR, LeftShift, RightShift).
* Added repeatedly_execute_always script event function, which is called every game loop, even when a blocking function is running. Supported in both the global script and room scripts.
* Added character[].z variable, to allow you to make a character levitate into the air whilst still using the baseline, light levels and interactions of its Y co-ordinate.
* Added OLE Automation support to editor, to allow plugins to interact with the editor, add menu options, new panes, and so forth. This includes support for editor-only plugins which are not included with the game at run-time.
* Added plugin API engine functions BlitSpriteRotated, BlitSpriteTranslucent, CanRunScriptFunctionNow, CallGameScriptFunction, DisableSound, GetDirectSound and UnrequestEventHook; events AGSE_SCRIPTDEBUG and AGSE_AUDIODECODE; and new entry point AGS_EngineShutdown.
* Added view preview window to let you quickly test loop animations.
* Added ability to get a view frame's speed and sprite number from GetGameParameter.
* Added game.speech_text_align variable to control the alignment of lucasarts-style speech.
* Added game.auto_use_walkto_points variable to allow you to stop the engine automatically moving the player to walk-to points.
* Added game.inventory_greys_out variable to enable inventory controls to grey out with the rest of the GUI when disabled.
* Added game.skip_speech_specific_key variable, which allows you to set that only one particular key can skip speech (eg '.' in old lucasarts games).
* Added system.viewport_width, system.viewport_height, system.version text script variables.
* Added "Mouse click only" skip speech style, which only allows speech to be skipped with a mouse click, not a key press.
* Added "Change colour depth" option to Game menu, to make it more intuitive than just being on the Palette pane.
* Implemented Match Brace feature in script editor.
* Changed text window background image positioning and clipping such that you can now have transparent edges on the outside of the border graphics whilst using a background image.
* Newly added GUI Buttons are now set to Run Script by default.
* Added ability to set a tiled background image for GUI sliders.
* Enabled sliders to be grabbed by the entire width of the handle, not just the width of the main slider bar.
* Added "Handle offset" option to sliders, to allow you to manually shift the handle across if the graphic doesn't line up properly.
* Added Cancel button to the InputBox (and the Debug Ctrl+X box).
* Editor welcome dialog now displays game folder name before complete path in Recent Games list.
* Stopped autocomplete list popping up when inside strings and comments in the script editor.
* Increased max dialog messages to 3000.
* Increased max speech files from 2000 to 3000.
* Changed the Object Pos display in the Objects pane of the editor to display the lower-left co-ordinate, as used in the game engine, rather than the top-left.
* Renamed "Blank game" to "Default game", and added "Empty game" template (courtesy of AGA) which has no default sprites at all.
* The Dump Text feature now also dumps the script header if "Text scripts" is selected.
* Changed goto-previous to save a nested history of previous topics so that it can be used to retreat up the dialog tree.
* Ambient sound is now restored properly after a PlayVideo.
* Added low disk space check when saving a save game slot.
* Added option to script editor Find dialog to start search from current location, rather than start of script.
* Lucasarts-style speech now abides by the setting of game.close_mouth_end_speech_time.
* Encrypted strings in compiled files, to prevent the player loading the exe into notepad to cheat.
* Mouseover GUI button pics no longer work while in a blocking cutscene.
* While moving a GUI object, the X/Y co-ordinates update dynamically in the properties window.
* When using FOLLOW_EXACTLY, the following character is now drawn in front of the followed character; an extra option to FollowCharacterEx allows you to reverse this behaviour if you wish.
* Editor now remembers the settings of "Lock sprite to current room" and "Remap colours to game palette" between imports.
* Prevent the user restoring a save game if views have been added to the game since it was saved. This prevents later problems with the SetCharacterView and SetObjectView functions.
* Removed close button from Edit Action window in the interaction editor, to fix the problem where a script could get disconnected from its interaction.
* Removed the "Don't automatically lose inventory" option - it's now always on (not having it checked was a debugging nightmare).
* PlayAmbientSound now does not reset the sound if you play an ambient sound that is already playing.
* CyclePalette now supports rotating the colours in both directions.
* FaceCharacter(EGO,EGO) now does nothing rather than facing left.
* Default hotspot names (eg "Hotspot 1") are no longer output in the translation source file.
* Keypresses are now discarded rather than queued if a blocking script is running when you press the key.
* Skipping cutscene will now skip text boxes if No Auto Remove text is set, rather than hanging the game.
* Fixed character walking on the spot at the end of a move occasionally.
* Fixed Talk cursor flashing up briefly before dialog options turn back on during a conversation.
* Fixed MoveToWalkableArea not working if the character was off the screen.
* Fixed QFG4-style speech not working.
* Fixed crash in DisplayTopBar.
* Fixed Sierra-style speech not supporting flipped view frames.
* Fixed lockup which could occur with some nested interactions.
* Fixed bug where characters could get stuck when using Adjust Speed with Scaling.
* Fixed Setup program not working if it was run from the command line.
* Fixed font wierdness and crashing the first time you run a new game made from a template.
* Fixed "Mouse moves over hotspot" running even if the mouse was actually moving over a GUI on top of the hotspot.
* Fixed GUIs sometimes not re-enabling themselves until the mouse moved over them.
* Fixed continuous idle loops not starting immediately after speech finished.
* Fixed character view not always getting set back to normal view after talking but before dialog options are displayed.
* Fixed script compiler allowing local strings to be returned from functions.
* Fixed crash in SetGlobalString if you passed a very long string to it - now truncates to 200 characters instead.
* Fixed translation output including text from deleted GUI buttons and labels.
* Fixed auto-timeout text not working with DisplayTopBar.
* Fixed editor having problems with finding the right script function to edit if you made a mistake with { } placement.
* Fixed character being moved to non-walkable area if you left a room that it was moving in.
* Fixed editor wiping most of the currently loaded room when you loaded a different game in.
* Fixed editor problem editing script functions if the function was called before it was used
* Fixed DisplaySpeech resetting the character's frame to 0 after they finished talking.
* Fixed compile error if a string ended in a backslash.
* Fixed problem with #define if tabs were used rather than spaces.
* Fixed commented out #define statements so that they are properly ignored by the compiler.
* Fixed 100% CPU usage while a text box was displayed.
* Fixed character portrait remaining on screen when the parser-in- dialog was used.
* Fixed digital speech and music files not being used if the current directory was not the game's directory when the game was run.
* Fixed IsKeyPressed not working with shift, ctrl and alt.
* Fixed idle animation not always kicking in straight away after  the character stopped moving.
* Fixed '@' character not being displayed in GUI labels.
* Fixed region tint problem if the amount was set to 50%
* Fixed error message if you set the game to start in room -1.
* Fixed inventory hotspot colours >32000 not working
* Fixed GUI Properties window appearing on the taskbar.
* Fixed GUI button text not being drawn backwards when Backwards Text was enabled.
* Fixed config file "datadir" setting not working with root directories.
* Fixed editor crash if you pressed Alt+F4 while the GUI Properties window was selected.
* Fixed editor crash if you closed the Interaction Editor while the script editor window was open.


What is COM plugin support?

This is a new type of plugin support, which allows the creation of editor-only plugins. These plugins appear as usual in the Plugin Manager, but rather than adding extra features to your game, they can enhance the editor. Therefore, you can use a COM plugin without making your game rely on any external DLL's.

Currently the AGS Editor provides a full implementation of interfaces to allow access to Dialogs, and not a lot else. If people find it useful, however, I can add further interfaces to the rest of the editor.

What are they useful for? Well, it enables plugins such as:
* globalints list
* sounds list
* export dialogs as text
* view dialogs as tree

For more information, see: http://www.adventuregamestudio.co.uk/accomplug.htm

What are these "#sectionstart" things that are littering my script?

The new #sectionstart and #sectionends have been introduced to once and for all fix problems people have been having editing script functions. Basically, if there was a brace missing somewhere, the editor got all confused when parsing the script file and could screw up the script.
This way, it looks a bit messy, but it also means that there should no longer be any problems with editing script functions.

What's a LeftShift/RightShift/XOR operator?

If you don't know, you don't need to know. They're quite advanced operators that most people won't need.

What's a Remainder operator?

The new % operator (also known as Mod) calculates the remainder of a division. Suppose you have a raw time in seconds and you want to display it as Minutes:Seconds. you can do:

int minutes = raw_time / 60;
int seconds = raw_time % 60;

How does the new repeatedly_execute_always work?

You can add the new function to your global script, as follows:

function repeatedly_execute_always() {
}

It will be called once every game loop, just like repeatedly_execute. There are two main differences though:
* repeatedly_execute_always is always called - even when a blocking function is running
* repeatedly_execute_always cannot call blocking functions itself.

If you try to use a blocking (eg. Wait, MoveCharacterBlocking) or delayed-response (eg. NewRoom, RestoreGameSlot) function from within repeatedly_execute_always, the game will exit with an error.

There are several handy uses for this function, and you'll notice that you can also do tricks with it to interrupt blocking functions. If you call StopMoving, for example, then if the main script is currently blocked on MoveCharacterBlocking, it will resume.

http://www.adventuregamestudio.co.uk/ags_261.zip

If no serious bugs are found in the next few days, this will become the official 2.61 and I'll upload it to the website.

strazer

#1
Thanks a lot, CJ!

Do bug reports still go in this thread?

I've noticed that releasing a view set by SetCharacterFrame always releases the character to loop 0 (facing down) instead of staying with his last used loop.

Edit:
This only happens when using SetCharacterFrame or AnimateCharacter without changing views.

Using the normal view has the advantage that a character doesn't have to be released from another view first before moving. Therefore the SetCharacterFrame function is ideal for making all characters able to blink without having to call ReleaseCharacterView before every action.

The problem is releasing the frame when the character is idle, as described above.
Since I want it all to happen non-blocking in the background, I have to work around this behaviour by saving character loops in an array and repeatedly updating it.
Doesn't work so well at the moment.

It would be really helpful if at least the SetCharacterFrame function wouldn't change character's loops?

Edit2: Yeah, I'm using something like that as a workaround, just a bit more complicated. :)
But I got it to work correctly now. Thanks!

evilspacefart

Holy smokes! I'm still trying to get used to 2.6 and Cj released 2.61 final. Sweet.

Pumaman

strazer: ReleaseCharacterView doesn't touch the loop number. The easiest solution to your problem is to write your own functions - something along the lines of:

int oldLoop;

function MySetCharacterFrame(int charid, int view, int loop, int frame) {
  oldLoop = character[charid].loop;
  SetCharacterFrame(charid,view,loop,frame)
}

function MyReleaseCharacterFrame(int charid) {
  ReleaseCharacterView(charid)
  character[charid].loop = oldLoop;
}

strazer

#4
Btw, do you have the formula handy for how long text is displayed is on the screen?
Something like

x = StrLen(text) * (80 / game.text_speed);

But that's not it. I can't seem to work it out.
It would keep me from having to check if DisplaySpeeches are still valid or not.

Edit:

Works great, thanks.

So I got the blinking working using seperate views, without storing the old loop. It was just getting too complicated (I'm dealing with multiple independent characters here).
Now of course I waste quite a lot of views by having to create an additional blinking view for each character.

Couldn't you make a SetCharacterFrame- or AnimateCharacter-like function that doesn't physically change the character's loop?
I'm thinking of something along the lines of SetMouseCursor, a function that changes the graphic, but not the mode.
It would make it possible to store the blinking sprites in the normal view without having to deal with changing the loop back.

Pumaman

The number of game loops it stays for is:

((StrLen(text) / game.text_speed) + 1) * GetGameSpeed()

Radiant


ravenfusion

I've got 2.61 now, and I'm gonna try it on my laptop too. Thanks Pumaman. :D

SSH

In 2.61 Prefinal, if you select a bunch of sprites to delete and one of them is used in a view, it comes up with the warning box to tell you. And you hit OK.  And it comes up again. And you hit OK. And it comes up again. And you hit OK. And it comes up again. And you hit OK.  and you wish you saved before doing all this...

Infinite loop! Arrghhh!
12

Pumaman

Eeek, how has that happened? I'll get it fixed.

Relight

#10
This is probably old, but maybe no one ever stumbled across it.

DisplayAt(x, y, width, message);

Appears to use the width of the text message itself, instead of the width specified :o

Heh.

(You can look at my box thing in Magintz's box puzzle thread to see this in action - the opening message in player enters room after fadein).

Pumaman

The width you pass is the maximum width of the message box. If the text is shorter than that, the text box will be shrunk accordingly. Perhaps this should be stated more clearly in the documentatino

Pumaman

Ok, I've uploaded a new version with a new build of the editor (2.61.490) which fixes the Delete Sprite lockup that SSH reported, since I can see how annoying it would be.

I don't plan on any further updates to 2.61, and will give it a couple of days before updating the website and announcing it officially.

Relight

Ahhh.... that makes sense. Thanks for the clarification.

jetxl

Joy! the % thingy bring back java class memories.
That repeat_execute_alwais is verrrrrrrrry handy.

dxtr

There seems to be a problem with the "preview this view" function.

If you preview a loop wich has "run next loop after this ..." selected you get a first run with both loops previewed, then it gets stuck on the second one when i think it should restart with the original loop.

bye

Pumaman

Thanks for letting me know, I'll fix it for the next version.

Radiant

Small bug report:

in the view preview, the sprites are aligned by top. In the game, they're aligned by bottom.

if I define a struct thingy { int a, b }; and then define a thingy gizmo, then obviously the variables gizmo.a and gizmo.b are valid. However, checking ' if (gizmo) { do stuff } ' also works; does this actually represent a pointer to gizmo? It should imho be explained in the manual.

Pumaman

I wouldn't say that's a bug, more just the way that the view preview window works. If you think it would look better aligned to the bottom, I can probably change it.

With your second question, yes if you do this:

if (gizmo) {

then you are effectively checking if the pointer to gizmo is non-NULL, which will always evaluate to true (since dynamic memory allocation is not supported).

It's not documented because structs themselves are an unofficial feature and are not in the manual.

Radiant

Okay, but my point was that a view would appear differently in the previewer, than in the game itself. I found out because I had an animation with variable height, that appears perfectly in the game but if you preview it, it jumps around a lot and the character's feet seem to move.

While we're on the subject of trivial details...

* font outline does show on GUIs in the game, but not while in the editor (i.e. if you have a font with auto_outline)

* for character 0, I cannot select view #1 as an Idle view.

* for any GUI, if I set: background color to 9, foreground color to 9, background color to 0, then foreground color to 0, THEN the background color is reset to 16.

* for consistency's sake with C, #0 should be a valid timer

* it appears that GetLocationName doesn't work from within RepExAlways

* putting Display ("") in your repeat_exec causes the game to inexplicably speed up; it's kind of weird

Pumaman

#20
Quote from: Radiant on Thu 10/06/2004 17:03:48
Okay, but my point was that a view would appear differently in the previewer, than in the game itself. I found out because I had an animation with variable height, that appears perfectly in the game but if you preview it, it jumps around a lot and the character's feet seem to move.

Fair point, I'll get it changed.

Quote
* font outline does show on GUIs in the game, but not while in the editor (i.e. if you have a font with auto_outline)

Good point, I'll add it to my list.

Quote
* for character 0, I cannot select view #1 as an Idle view.

Hehe, this is an oldie:
http://www.adventuregamestudio.co.uk/kbview.php?id=17

Quote
* for any GUI, if I set: background color to 9, foreground color to 9, background color to 0, then foreground color to 0, THEN the background color is reset to 16.

I tried this but I couldn't replicate it. Can you manually switch it back to 0?

Quote
* for consistency's sake with C, #0 should be a valid timer

there are various inconsistencies within AGS in terms of 0- vs 1-based sets. At this point, I don't think this is worth changing.

Quote
* it appears that GetLocationName doesn't work from within RepExAlways

It seems ok to me, what exactly do you mean by "doesn't work"?

Quote
* putting Display ("") in your repeat_exec causes the game to inexplicably speed up; it's kind of weird

That is a bit odd - I guess the best behaviour is for Display() to simply do nothing if provided with a blank string.

Scorpiorus

Strange, I've just noticed that the IAGSEngine::AbortGame() function doesn't display an error message supplied but just shows standart "excption XXX error at line XXX" text. It works fine with AGS2.6sp1.

Radiant

Quote
* for any GUI, if I set: background color to 9, foreground color to 9, background color to 0, then foreground color to 0, THEN the background color is reset to 16.
I tried this but I couldn't replicate it. Can you manually switch it back to 0?
yes, so it's not a problem.

Quote
* it appears that GetLocationName doesn't work from within RepExAlways
It seems ok to me, what exactly do you mean by "doesn't work"?
I meant that it caused my game to crash, but I was unable to figure out exactly what went wrong. Sorry that this isn't a very helpful bug report, if I manage to reproduce it somehow I'll let you know.
(I was doing a lucasarts-style GUI and put something in RepExAlways to change a label's text to <command><location> i.e. Pick up Tree; GetLocname kept returning blank strings rather than hotspot or object names)


strazer

But you were not trying to use GetLocationName directly, right?
Because
  GetLocationName (int x, int y, string buffer)
fills the string BUFFER, it doesn't return anything (useful).

Cool_Avenger111

This engine rules.  I can't wait till it's error free so I can start my project (It's all mapped out and graphics are 80% ready).

However, the example Demo game doesn't work with the new version of the engine.  It seems to skip the animations and just "pop" the character whereever you click.

Signed,
       William

scotch

AGS is as bug free as you can really expect it to be, you shouldn't put off a project until it's perfect, it never will be, this is supposed the be a stable version.
The demo game is ancient, I'm surprised it still works at all,  a new one is being worked on slowly.

Cool_Avenger111

*nods* I know...  I just was a bit surprised when it was working with 2.59sp1 (I think that's what it was) and then it didn't for the new one.  I can't wait till the new demo comes out.  I am working on the game, I'm just delaying working with the engine.  When the new demo comes out I'll disect it and start assembleing the "parts" of my game.  Lots of art work is ready, the game is fully diagramed.  Soon as I eithor find an easy to fallow manual or a working demo. 

When I start assembleing everything I'll post up some screenshots and publish the "basics" of it on the Production section of the forum.

I know you are right I shouldn't wait... I did that with GCSW and now the company is gone and I have a ton of art work with no place to go.

Signed,
       William

Pumaman

Quote from: Scorpiorus on Sun 13/06/2004 01:42:30
Strange, I've just noticed that the IAGSEngine::AbortGame() function doesn't display an error message supplied but just shows standart "excption XXX error at line XXX" text. It works fine with AGS2.6sp1.

Well spotted ... the shutdown routine was accidentally changed to free the plugins from memory before displaying the message box, with obvious consequences. I'll get it fixed.

QuoteHowever, the example Demo game doesn't work with the new version of the engine.  It seems to skip the animations and just "pop" the character whereever you click.

Strange, I'd better check it out. If the demo game no longer works properly, then it's probably time to withdraw it completely.

Ghost

once again i must congratulate you, cj, the new version was worth the download...

two things, though:

- the snow plugin doesn't work any more!

- i tried to do a save/load gui to display screenshots of the savegames. works all right, but the screenshot only displays about half the screen it was taken from! first i thought it was because the sreenshots were done in a scrolling room, but in a room one screen big it's the same. I can send you the game template where the error appeared, 'bout 800 k.

SSH

#29
Quote from: Ghost on Tue 15/06/2004 10:46:06
- the snow plugin doesn't work any more!

Make sure you have the latest one: see this thread for more.

Quote
- i tried to do a save/load gui to display screenshots of the savegames. works all right, but the screenshot only displays about half the screen it was taken from! first i thought it was because the sreenshots were done in a scrolling room, but in a room one screen big it's the same. I can send you the game template where the error appeared, 'bout 800 k.
I assume you mean left/rigth half rather than top/bottom half. Make sure that your GUI button that you use to show the pic is the right size, etc. I have done a screenshot save/restore GUI and it worked fine for me.
12

Radiant

Quote from: strazer on Mon 14/06/2004 19:20:01
But you were not trying to use GetLocationName directly, right?
Because
  GetLocationName (int x, int y, string buffer)
fills the string BUFFER, it doesn't return anything (useful).

Yes, I was aware of that :)

Ghost

hm... i use a screen resolution of 320x240 for my game... so i simply made a button of 160x120 (half the screen res). ags always cuts the right half part of the screenshot... can't seem to fix it.

i'll try the new snow plugin, thank's for the thread link, SSH!

Gilbert

Hmmm did you set the size correctly when loading the screenshot?
Like:
spritehandle = LoadSaveSlotScreenshot(slot, 160, 120);

Ghost

i did alter the variables in the start_game section, yes. personally i can live without the saveload screenshots, but i thought it might be a bug, so i posted it...

Pumaman

That's not what Gilbert means.

When you use LoadSaveSlotScreenshot, you have to tell it the size of the button you'll be displaying it on. If you pass 320x200 to it, and then display the result on a 160x100 button, only half of it will be visibel.

Kinoko

Everytime one of these updates rolls around, it's like I'm in a world of "happy". All sorts of little niggley problems I forget about for the most part turn up fixed and I think, "Damn, wish I made my game with THIS version".

One day, I'm sending you a big cake, Puma! ^_^

Ghost

#36
ah, i was a bit unclear.
I wanted to say that I use 160 x 120 as screenshot and button size because it seemed the easiest way to halve the screen res (which is 320x240) and thereby get pictures where you can still see some details.
I actually passed the size of the button (160/120) in the game_start section.


or did I miss something? I'll have a look at the code again...


Gilbert

Quote from: Ghost on Sun 20/06/2004 11:52:31
I actually passed the size of the button (160/120) in the game_start section.

Actually I don't quite understand what did you mean by that.
Remember, if you enabled "Save screenshots in save games" the screenshots are always saved as full screen size (320x240 in your case), they're only resized when you use LoadSaveSlotScreenshot() to put it into a dynamiccally sprite. So you need to set its size correctly whenever you have to display a sprite containing the screenshot, like (as I mentioned before):
spritehandle = LoadSaveSlotScreenshot(slot, 160, 120);

Scorpiorus

Ghost, what if you try displaying a screenshot with the RawDrawImage() function:

int slot = LoadSaveSlotScreenshot(..., 320, 240);
RawDrawImage (0, 0, slot);

Does it look clipped?

SSH

Quote from: Gilbot V7000a on Mon 21/06/2004 03:03:11
Quote from: Ghost on Sun 20/06/2004 11:52:31
I actually passed the size of the button (160/120) in the game_start section.

Actually I don't quite understand what did you mean by that.
Remember, if you enabled "Save screenshots in save games" the screenshots are always saved as full screen size (320x240 in your case),


So then what do game.screenshot_height and game.screenshot_width do then? The manaul says the defaults are 160x100 and they control the size of the savegame file screenshot. However, you still need to load the right size in LoadSaveSlotScreenshot, too. So the image is scaled twice. Maybe changing the game variables clip the picture instead? In my working savegame thingy, I didn't change the game variables at all, even though I used 64x48 pics.


Actually, maybe this is related with game_start not knowing the real screen dimensions. If you set the game variables in game start and have a 320x240 or 640x480 screen size, it might screw it up!

12

Gilbert

heh ssh you're right about the variables, I don't even know they exist (as I'd never used this feature), but yeah the correct size should still be set when you load that as a sprite.

I'm not sure but I think that may not be related to the resolution-not-initialized-yet problem, as I think these size variables were just set as some numbers you required and are not accessed normally until you really save a game.

Scorpiorus

#41
As far as I understand it, both the game.screenshot_height / game.screenshot_width variables and the height and width parameters of the LoadSaveSlotScreenshot function specify the resolution of the sprite. Thus, on game being saved AGS copies & resizes the entire screen using values stored in game.screenshot_height / game.screenshot_width vars, then it saves a picture to a file. On LoadSaveSlotScreenshot function being called AGS reads the image from the saved file, creates a dynamic sprite, and copies the resized (using LoadSaveSlotScreenshot height/width vars) image into it.

I tried to play with LoadSaveSlotScreenshot function but was unable to replicate the problem.

Ghost

okay.

1) in general settings i enable "save screenshots in save games".
2) in game_start i use the game..screenshot width/height and set them to the size of my button (160x120)
3) i rescale the the loadesavescreenshot-thingy to 160x120, too.

i still get the right half of the screenshot cut off, in scrolling rooms and in rooms that are the same size as my game resolution.
I gave up.

since i seem to be the only one having the problem, and since i don't think my code is buggy... could it be my hardware is kinda "in the way"? maybe my graphics card? I use an ANTIQUE ATI Rage2.

SSH

Can you try removing your setting of screenshot width/height from the game_starrt fucntion, please? See if it works... Otherwise, I suggest you upload a game template so that CJ (or others) can have a look.
12

deltamatrix

Looks like you forgot to put repeatedly_execute_always in the script shortcut menu.

A option to create custom shortcuts for your functions would be nice in the future. ;)
BAD WOLF - TORCHWOOD - MR SAXON - THE BEES ARE DISAPPEARING - PANDORICA - RIVER SONG

Gregjazz

Well actually the thing that I noticed the most to do with the "repeatedly_execute_always" thing was the lack of the "section start" and "section end" tags that have been lately added to the rest of the scripts. No biggie.

Radiant

* It appears that objects and characters ignore walk behind #15.

* Object 0 disappears when using MoveObject. Sorry, that wasn't a helpful one, now was it? It only sometimes happens :(

* When you delete an object, its baseline is still visible

* If I put an infinite loop in the on_event(ENTER_ROOM) part, the game hangs and can no longer be aborted with alt-f4

* When you use SetCharacterFrame, that character's actual picture is still modified if it is walking (That may be what you intended but it isn't clear from the help file).

* I would find a function MoveCharacterToXYWhileAnimatingInLoopZ really useful.

* A 'GetWalkbehindBase' function would be very nice. So would 'getwalkbehindat (x,y)'.

* In the sprite manager, a useful functionality would be to 1) increase sprite size by one transparent line of pixels, and 2) move everything in the sprite one pixel to the left/right (both usable for aligning sprites so that they join well together in a view)

* and finally, how about being able to select views by name from the character editor? Or sorting views by name rather than number on the view list.

* My compliments on the stability of AGS; last weekend I tried multi-importing several thousand BMP files all at once, and AGS never even choked.

* However, when multi-importing, the entire folder of sprites is somehow recached in memory and displayed after each individual image is loaded; this means that the process gets linearly slower if you import a lot (i.e. it goes 'load a sprite - display all sprites - load another sprite - display all sprites once more' etc)

Pumaman

Quote from: deltamatrix on Sun 27/06/2004 03:06:10
Looks like you forgot to put repeatedly_execute_always in the script shortcut menu.

As it's a bit of a specialist function, I didn't add it to the Script menu.

QuoteWell actually the thing that I noticed the most to do with the "repeatedly_execute_always" thing was the lack of the "section start" and "section end" tags that have been lately added to the rest of the scripts. No biggie.

The sectionstart things are needed for scripts that are edited via the interaction editor. repeatedly_execute_always is never accessed via the interaction editor (it's always accessed manually), therefore there's no need for the tags.

Quote* If I put an infinite loop in the on_event(ENTER_ROOM) part, the game hangs and can no longer be aborted with alt-f4

What kind of infinite loop? If you do
while (1) { }
then AGS should detect it and abort the game after a few seconds.

I'll look into your other comments.

Radiant

Quote from: Pumaman on Mon 28/06/2004 21:08:51
What kind of infinite loop? If you do
while (1) { }
then AGS should detect it and abort the game after a few seconds.

Yes, like that. If I do it in any other place, AGS aborts with some message about 150001 iterations. However if I do it in ENTER_ROOM, AGS hangs.
(I actually like this abort message a lot, since I have a tendency for using whiles as fors and then forgetting the i++ part)

Pumaman

Quote from: Radiant on Mon 28/06/2004 17:25:57
* It appears that objects and characters ignore walk behind #15.
* When you delete an object, its baseline is still visible

Thanks for the report - I've verified these two as bugs and will get them fixed.

Quote
* If I put an infinite loop in the on_event(ENTER_ROOM) part, the game hangs and can no longer be aborted with alt-f4

I was just trying this out, but I was unable to replicate the problem. I put:

while (1) { }

into the ENTER_ROOM part of on_event, and it detected it and exited correctly. Can you be more specific?

Scorpiorus

#50
I'm not definitely sure if the following problem is related to 2.61 but seems like it is: http://www.adventuregamestudio.co.uk/yabb/index.php?topic=7616.msg185245#msg185245

A link to the snow/rain plugin whose test game has a similar problem with the current AGS version:
http://www.geocities.com/scorpiorus82

Pumaman

Arg you're right ... one of the changes in 2.61 beta 6 indirectly revealed a bug.

If you load a pre-2.55 game into v2.61, all the characters get their movemenet and animation speeds set to 0. A character with a move speed of 0 instantly warps to their destination.

I'll try and release a 2.62 beta 1 as soon as possible to fix this problem. In the meantime, there are two workarounds:

(a) Manually set the move and anim speeds of the characters back to how they should be after upgrading
(b) Get a copy of 2.60 SP1, load your old game into that, then upgrade it to 2.61.

Once again, let me clarify this problem only occurs if you load an old game, or a template, that was made with an AGS version of 2.54 or earlier.

Well spotted Scorpiorus, thanks for the info. Sorry for any inconvenience.

Radiant

Sorry to trouble you but here are more obscure bugs...

If you have a room with 'player character hidden' and you use FaceLocation (EGO, ...), the game hangs.

An option 'abort game on Warnings' would be very useful in locating those warnings (especially as currently, no line number is given, nor an object/character number if appropriate)

Does SetCharacterFrame() set a character's view so that it must be Released() too? (probably yes?)

If you attempt to save the game with the script editor open, an error message pops up. If you now close the script editor BEFORE removing this error, AGSedit crashes as it tries to taskswitch to the no longer existent script window.

If you test the game from the editor, and the game has an initial warning popup (i.e. midi device not found), both the game and the editor hang.

When you create a new sprite folder and don't give it a name, it may end up with a name from a folder that was deleted earlier.

If a string is too long in a local script, sometimes the editor gives error messages like "unrecognized symbol: \"  instead of "string too long". And sometimes the string is just truncated at a certain point. By the way I thought that strings were implemented as pointers, so how can they be too long?

When you delete an object from a room, the baselines of subsequent objects don't change numbers [e.g. if you delete object #3, object #5 becomes #4. However, the baseline of object #5 remains #5]

Pumaman

Quote from: Radiant on Tue 06/07/2004 14:57:54
Does SetCharacterFrame() set a character's view so that it must be Released() too? (probably yes?)

As it says in the manual for SetCharacterFrame, "The frame will be locked to the one you specify until you call ReleaseCharacterView."

Quote
If a string is too long in a local script, sometimes the editor gives error messages like "unrecognized symbol: \"  instead of "string too long". And sometimes the string is just truncated at a certain point. By the way I thought that strings were implemented as pointers, so how can they be too long?

When you delete an object from a room, the baselines of subsequent objects don't change numbers [e.g. if you delete object #3, object #5 becomes #4. However, the baseline of object #5 remains #5]

These two are actually already fixed in my latest build.

Thanks for all the reports, I'll look into your other points.

SMF spam blocked by CleanTalk