AGS v2.7 Final: Yet Another Edition

Started by Pumaman, Sat 13/11/2004 21:02:00

Previous topic - Next topic

Pumaman

This is the pre-release final version of AGS 2.7. This means that this is effectively the final release, but due to the extent of the changes in this version it's likely there may still be bugs outstanding. But it should now be safe to try out (remember to back up your game before upgrading) and see if you get any problems.

The main difference of 2.7 to previous versions is object-based scripting.
If you're trying it out for the first time, please read the upgrading guide to get you started.

Changes from Pre-Final 3 to Final:
* Added Character.Speaking property.
* Changed Test Game behaviour to hopefully fix problems with it hanging.
* The mouse.x/y variables are now updated for rep_exec_always.
* Auto-number speech lines now does global and room messages if Narrator speech is selected.
* Auto-number speech lines now tells you which room the error was in, if there is a compile error when re-compiling.
* Updated Intro to Scripting Tutorial to mention OO-style.
* Fixed RunAGSGame crashing if called from a custom script function.
* Fixed interactions getting disconnected and other problems after deleting an object.
* Fixed free disk space crash on game startup on some Win9x systems.
* Fixed clickable z-order of GUI controls to be the same as the visual z-order.
* Fixed occasional animation glitch if the previous loop in the view had no frames.
* Fixed speech animation not playing if DisplayMessage was used with a room message set to display as character speech.
* Fixed dialog scripts not recognising character names with numbers in them.


Changes from Pre-Final 2 to Pre-Final 3:
* Significantly improved script compile speed.
* Added enum for CDAudio first parameter.
* Added GP_NUMINVITEMS to GetGameParameter.
* Fixed pixel-perfect click detection not always working properly with flipped sprites.
* Fixed compile error if you had more than 500 functions in the global script.
* Fixed potential memory overrun crash error in script editor.

Changes from Pre-Final to Pre-Final 2:
* Added Character.Tint/RemoveTint
* Added GUI button Clip Image option, along with corresponding Button.ClipImage script property.
* Fixed single-word words not being compatible with multi-word words that started with the single word in the text parser (ie. "pick" and "pick up" can now both be used successfully)
* Fixed < and > with floats giving spurious compile errors.
* Fixed Auto-number speech lines to work with .Say as well as DisplaySpeech; and also added an option to number Display() lines for the narrator.

Changes from RC3 to Pre-Final:
* Double-clicking a GUI or GUI control now edits its script, rather than it being done via editing the name of the script function.
* Added option to select the transparency and palette settings for the Quick Import options.
* DisplaySpeech no longer changes the mouse cursor if the cursor mode is already the Wait mode.
* Fixed #defined names so that they are not replaced if preceded by a dot.
* Fixed script editor not saving changes if you typed a comma early on while editing an interaction script.
* Fixed GUI Editor allowing you to add controls to a text window GUI.

Changes from RC2 to RC3:
* Added read-only Character.NormalView property.
* Increased max overlays from 10 to 20.
* Any warning messages encountered while loading a game or a room are now written to log file agsedit.log in the game folder to enable easy reviewing.
* PlaySound now returns the channel number that the sound is playing on.
* An error message is now displayed if you try to change an object's X/Y position while it is moving.
* Fixed Character.AddWaypoint not working.
* Fixed ClaimEvent not working with nested events (eg. NewRoom inside on_mouse_click).
* Fixed error message if you had more than 6 script modules.

Changes from RC1 to RC2:
* Global variable enums can now be initialized with enum values.
* Global variable names can now be used as parameter names for 'import' definitions (fixes plugins using an "int object" parameter and so forth).
* Importing a new background with a different size to the old one now gives you an opportunity to cancel.
* Script modules now support on_event and repeatedly_execute_always.
* GUI Control script names can now contain digits 0-9.
* goto-previous dialog command now stops the dialog if there is no previous topic, rather than aborting the game.
* Enabled Quick Import sprite options in 256-colour games.
* Renamed the manual to "ags-help.chm" to make it more obvious what it is when accessing it externally from the editor.
* Fixed PlayMusicQueued skipping some tracks if crossfading was enabled.

Changes from Beta 18 to RC1:
* Added plugin API functions NotifySpriteUpdated, SetSpriteAlphaBlended, QueueGameScriptFunction, RegisterManagedObject, AddManagedObjectReader and RegisterUnserializedObject.
* Added mouse.ChangeModeView function.
* Changing a character's script name now forces a re-compile of the dialog scripts.
* Script names can now contain the digit 0-9 after the first character.
* Enum variables can now be initialized using the enum options.
* Fixed SetChannelVolume not working properly with the ambient sound channel.
* Fixed solid characters not blocking properly bug, introduced in an earlier beta.

Changes from Beta 17 to Beta 18:
* Added script module support for game_start, on_key_press, on_mouse_click and repeatedly_execute.
* Added Left-to-right operator precedence option, along with LRPRECEDENCE define to allow you to check whether it's ticked.
* Added File.ReadRawLine method to enable you to easily process text files.
* Added current room number to Room Areas pane.
* Compiler now checks that array size defined in header matches that defined in the global script.
* Renamed intro.crm to room0.crm, so that it causes no further confusion.
* Improved accuracy of GetMP3PosMillis and voice lip-sync with OGG speech files.
* #define-type lines can now be indented with tabs as well as spaces
* Added short manual page describing script modules.
* Changed shortcut key for Freehand tool in Room Areas to Ctrl+D to stop it conflicting with Edit Script (Ctrl+E).
* Fixed autocomplete not working if a variable's name was a substring of its type.

Changes from Beta 16 to Beta 17:
* Added export/import single GUI function.
* Added #error directive to script language.
* Added Crop Sprite Edges Symmetric option, to leave the central pivot point of the sprite unchanged.
* Added script o-name to characters tab.
* Added enums for parameters to StartCutscene, SetDialogOption, SetSpeechStyle and SetVoiceMode.
* Updated Text Script Equivalent Code in interaction editor to new OO standards.
* Fixed misleading line numbers being given if an error occurred just after returning from a function.
* Fixed tooltips for Diagonal Loops and Solid in Characters tab.
* Fixed object and hotspot o-names not being available in the script editor if you had only just created them.
* Fixed slider background image not being exported as part of Export GUI.
* Renamed "Anti-alias scaled sprites" to "Smooth scaled sprites" in the game Setup program.

Changes from Beta 15 to Beta 16:
* Added back on_event eEventGUIMouseUp and eEventGUIMouseDown.
* Added Object.StopAnimating command.
* Added game.show_single_dialog_option to specify that the dialog option should be displayed, even if only one is available.
* Improved game startup speed and room loading speed.
* Changed script editor Discard Changes shortcut key to Ctrl+E, because Ctrl+D was already used for Duplicate Line.
* Dump Text feature now dumps module scripts, where permissions allow.
* Fixed InventoryItem::IsInteractionAvailable not working.
* Fixed custom inventory window drawing too many columns or rows in hi-res mode.
* Fixed BlinkView and ThinkView giving an error if they were set to -1.
* Fixed Paste From Clipboard sprites getting given an alpha channel if you previously imported an alpha-channel sprite from a file.
* Fixed rare crash which could occur with MoveObject.
* Renamed Talking View to Speech View in Characters tab of editor; renamed Can Be Walked Through to Solid, and renamed No Diagonal Loops to Diagonal Loops.
* Renamed Character.DiagonalWalking property to DiagonalLoops.
* Renamed eEventEnterRoom to eEventEnterRoomBeforeFadein
* Renamed Label.Color property to Label.TextColor

Changes from Beta 14 to Beta 15:
* Converted remaining character variables to properties (AnimationSpeed, Frame, Loop, WalkSpeedX, WalkSpeedY, x, y, z)
* Added GUI OnClick handler to provide a more intuitive way to handle clicks on the GUI background.
* Added autocomplete for enums when using = or == with an enumerated type.
* Added Button.TextColor property.
* Added optional index parameter to AddInventory; and added InvWindow.ItemAtIndex[] property.
* Added EventType enum for on_event
* Added confirmation prompt in script editor if you choose "Discard and exit"; and added Ã, shortcut keys for the exit options.
* Increased max custom properties from 20 to 30.
* Renamed GUI "Foreground color" property to "Border color" since that's all it does.
* Renamed "No interaction" character checkbox to "Clickable" (and thus reversed its behaviour) to make it consistent with the script.
* Move Up/Move Down in script module manager now cause the scripts to be recompiled.
* Fixed autocomplete behaviour with "GUI" vs "gui", "Object" vs "object" etc

Changes from Beta 13 to Beta 14:
* GUI control event functions now take a GUIControl* parameter, representing the activated control. This allows you to use the same handler function for multiple controls, and distinguish which was clicked. Note that if you have any existing event handlers they will no longer work -- you need to add a "GUIControl *control" parameter AS THE FIRST PARAMETER.
* Added ability to use a sprite as the inventory cursor hotspot dot.
* Added enum values to the normal autocomplete list.
* Added Visible property to GUI controls.
* Added AbortGame function to allow script modules to perform checks on their parameters and easily give an error.
* Added Introduction to Pointers section to the manual.
* Updated Default Game and Empty Game templates to object-based scripting.
* Fixed "address too high" error which could occur on some computers.
* Fixed custom inventory windows, which I broke in beta 13.
* Fixed editor crash if you saved the game after creating a script module but without editing its script.

Changes from Beta 12 to Beta 13:
* Added script module support, so that you don't have to cram everything into the global script. This also allows you to easily share code with other people by exporting the module.
* Added script call stack when an error occurs, rather than just the current line number.
* Added support for arrays of pointers.
* Added editor warning message if you Save Room As to a filename that's not roomX.crm or intro.crm
* Added BlinkWhileThinking character property.
* Local variables are now automatically initialized to 0.
* Renamed SaveUntilLocationChange to SaveCursorUntilItLeaves
* Obsoleted GetPlayerCharacter since it is now done with player.ID
* Fixed SetInvDimensions not overriding things properly for backwards compatibility.
* Fixed compile error if one of your GUIs was named "GUI".

Changes from Beta 11 to Beta 12:
* Added 'writeprotected' keyword to allow you to have public read-only member variables.
* Objectised the custom InvWindow (ie. game.top_inv_item becomes invWindow.TopItem), and in the process improved it so that each inv window can display inventory for a specific character, and the inventory item order for each character is remembered.
* Objectised GetTime and GetRawTime since the old way that GetTime worked was horrible.
* Objectised dynamic sprite functions in order to allow automatic disposal of the sprites when the instance is freed. Added DynamicSprite.CreateFromScreenShot as a way of allowing you to get the current game position for a Save with Screenshots GUI.
* Dynamic sprites are now persisted in save games.
* Converted character.inv[] to Character.InventoryQuantity[] property, and added read-only Object.View property.
* Renamed GetXXXXAtLocation to static function XXXX.GetAtScreenXY
* Renamed structs from GameCharacter and GameObject to Character and Object respectively, to make it more intuitive.
* Changed the following functions to take Character* and Object* parameters rather than ints: Character.FaceCharacter, Character.FaceObject, Character.FollowCharacter, Character.IsCollidingWithChar, Character.IsCollidingWithObject, Character.ActiveInventory, Object.IsCollidingWIthObject
* Character.SayBackground now returns an Overlay* rather than the overlay int id.
* Ctrl+Space now allows you to pop up the autocomplete list at any time, like in Visual Studio.
* If Split Resources Files is checked, the sprites are now put into the .001 resource file to stop the EXE getting too big (since it could cause performance problems due to anti-virus software).
* Put some of the most commonly used buttons back on the Room Settings and GUI panes for people who don't like shortcut keys.
* Fixed FollowCharacter not working on two NPC's if Hide Player Character was ticked in the room.
* Fixed editor crash if you deleted a sprite folder whilst editing its name.

Changes from Beta 10 to Beta 11:
* Added support for global pointers in script, so that you can declare a global variable as a pointer. But, consequently:
* SaveGameSlot/SaveGameDialog are now delayed-response functions, just like the RestoreGame ones. This means the game won't actually be saved until the script function finishes.
* Object-ised Overlay functions now that global pointers are supported.
* Added GUI.ControlCount and GUI.Controls[] property, to give you access to the GUI's contained controls.
* Added GUIControl.AsButton/AsLabel/AsListBox/etc to enable you to convert a generic pointer to a specific type.
* Added pathing support to script, so you can doÃ,  lstList.OwningGUI.IDÃ,  orÃ,  gui[3].Controls[2].AsListBox.AddItem();Ã,  and so on.
* Added GUI.Width/Height and GUIControl.Width/Height properties.
* Added [ to Display/Say/etc, to enable you to display the [ character rather than it doing a line break.
* Added "Built in enumerated types" page to the manual, listing all the built-in enums.
* Added enum for GetLocationType return value.
* Objectised IsButtonDown into Mouse.IsButtonDown (almost forgot this one!)
* Changed editor terminology from "GUI objects" to "GUI controls" to stop any confusion.
* Fixed FloatToInt not working properly with negative numbers.
* Fixed IsKeyPressed(13) not working with the numeric keypad Enter key.

Changes from Beta 9 to Beta 10:
* Object-ised hotspots, regions and inventory items. Added script names for hotspots and inv items.
* Changed Character.AddInventory/LoseInventory to take the inventory item object rather than the number. For example:
player.AddInventory(iSmallKey);
* Object-ised GetHotspotAt/GetCharacterAt/GetObjectAt/GetRegionAt/GetInvAt to work like GetGUIAtLocation does.
* Added character.ID, object.ID, GUI.X, GUI.Y, GUIControl.X and GUIControl.Y properties.
* Changed MOD music player from JGMOD to DUMB, and consequently:
Ã,  Fixed some previously unsupported S3M's music files not playing.
Ã,  IT Impluse Tracker format mod files are now supported (music*.it)
* Removed various buttons on the Room Settings and GUI panes, and moved them to new Room and GUI menus, respectively.
* When upgrading an old game, you can now proceed without upgrading the room files (to allow you to just look at, but not actually upgrade, an old game).
* Fixed GUI editor not allowing you to set a label text longer than 25 characters.
* Fixed multi-word words not being allowed in text parser if you changed an existing word.
* Fixed MoveCharacter error messages if a character was following another character and neither were in the current room.





So what's this all about?

Well, I've been having a jibble with the script language lately, and this is its latest state. The main feature here is member function support -- meaning, structs can have functions within them.

What's the point?

It's more intuitive, and more elegant. It also reduces the chances of making mistakes.

Consider this, for example. At the moment, to move the player character you'd do this:

MoveCharacter(EGO, 100, 50);

That's fairly simple -- but you don't always know which functions work on a Character. For example, "StopMoving" stops a character moving but its name doesn't imply that.

So, consider the previous scripting line with the new system:

character[EGO].Walk(100, 50);

With the script editor's autocomplete now supporting struct members, this also means that you can type "character[EGO]." and it will pop up a list of valid methods that you can call on the character.

Where's all this going?

My long-term goal for the scripting language is to bring it up to an object-based standard, on a par with Visual Basic 6. This is in no way fully object oriented, but should be plenty good enough for AGS's purposes.

So am I going to have to change all my scripts?!?!?

No, don't worry - the old MoveCharacter commands will still work as well. But once this new approach has fully matured (hopefully by the 2.63 2.7 Final release), I'll be recommending that all new script is written in the new way.

So er, what's the point of this beta again?

EDIT for beta 2: This beta now implements the complete set of Character functions. They should all work identically to the old MoveCharacter-style functions, so please do try them out.

Because the script language has been changed fairly extensively, I'm basically after people testing it and making sure it doesn't break or crash or anything like that.

Can I create my own member functions?

Yes! To do this, declare a struct in your script header, in the usual way. Then, just add a function import inside it. For example:

struct TestStruct {
Ã,  Ã, int total;
Ã,  Ã, import function AddToTotal(int amount);
};

Then, in the global script, add this:

function TestStruct::AddToTotal(int amount) {
Ã,  this.total += amount;
}

What else do I need to know?

This beta also implements array bounds checking in the script. This should mean that if you do this:

int myArray[5];
myArray[7] = 2;

the engine will generate an error message, rather than leading to the sometimes mysterious results that can otherwise occur.



To emphasise the different nature of this beta, only the essential changed files are included. You can get the missing ones from the 2.62 distribution:

REMEMBER, BACK UP YOUR GAME BEFORE TRYING OUT A NEW VERSION

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

Gregjazz


Joseph DiPerla

Wow, incredible. I will look at it the best I can.

JD
Joseph DiPerla--- http://www.adventurestockpile.com
Play my Star Wars MMORPG: http://sw-bfs.com
See my Fiverr page for translation and other services: https://www.fiverr.com/josephdiperla
Google Plus Adventure Community: https://plus.google.com/communities/116504865864458899575

edmundito

#3
This is nuts.. but also it's awesome because my scripts were getting a little too complicated to look at. I'm just going to have to wait for 2.63 final to polish my game.

... but I'll test it with BJ Source! ;) I unfortunately cannot test performance, because I have a Pentium 4 2.0 ghz and ags runs like it's notepad :P

Dusk

Simply wonderful!
I think that OO scripting will be a giant step forward for AGS.
Thankyou CJ!
I'll try the "experimental" beta as soon as I have a bit of spare time (sigh)

Dan2552

 :D YES! finally!

as it's going more to the VB6 way will you be getting rid of the ;'s at the end of each line??? if not maybe make some kind of thing that does it by itself????

fovmester

No let the ; stay. For all of us that program in C or Java it's comfortable to end a line with a semicolon.

And nice work with the objectorientation. It's certainly the right way to go with the scripting-language. Great work as usual, CJ!

Dan2552

Quote from: fovmester on Sun 14/11/2004 09:21:46
No let the ; stay. For all of us that program in C or Java it's comfortable to end a line with a semicolon.

And nice work with the objectorientation. It's certainly the right way to go with the scripting-language. Great work as usual, CJ!

how about an option in the general settings to have old-style AGS scripting OR new. that way both sides will win (but'd prob take longer and harder to make updates  :-\ )

Pumaman

Quote from: Dan2552 on Sat 13/11/2004 23:12:33
as it's going more to the VB6 way will you be getting rid of the ;'s at the end of each line??? if not maybe make some kind of thing that does it by itself????

Perhaps I should clarify -- I am in no way intending to make the scripting language more like VB; it has a horrible syntax that is prone to mistakes.

The comparison I'm drawing with VB6 is the level of object-orientation I am aiming for.

Ishmael

Yay... I hope this new feature will in the future generate some cleaner code for my interface's... :)
I used to make games but then I took an IRC in the knee.

<Calin> Ishmael looks awesome all the time
\( Ö)/ ¬(Ö ) | Ja minähän en keskellä kirkasta päivää lähden minnekään juoksentelemaan ilman housuja.

Dan2552

Quote from: Pumaman on Sun 14/11/2004 13:34:41
Quote from: Dan2552 on Sat 13/11/2004 23:12:33
as it's going more to the VB6 way will you be getting rid of the ;'s at the end of each line??? if not maybe make some kind of thing that does it by itself????

Perhaps I should clarify -- I am in no way intending to make the scripting language more like VB; it has a horrible syntax that is prone to mistakes.

The comparison I'm drawing with VB6 is the level of object-orientation I am aiming for.


ok. so the only thing being changed to like VB is the easyness of blah.blah = "blah"

i guess it wouldn't work too well without the ;'s. but still maybe one day an option to try and add all the semicolons itself? that would be hard to code though..

edmundito

I think the C-style scripting is here to stay, which I think is much much easier than the BASIC-style scripting, which should have died like 1000 years ago.

Chris, since you mentioned having suggestions for the new names, I'd like to dedicate this reply to it.

First of all, I think it's a good  time to develop the whole naming conventions thing that has been talked about before, and maybe rename some of the functions to something standard and more intuitive. For example, NewRoom, and NewRoomNPC would be character[CHARID].ChangeRoom() or something like that, or maybe just leave it NewRoom.

A concern I have is that with all of these name changes, will the newer version be backwards compatible? and wouldn't that clutter the engine like all backwards compatibility things do? Maybe you should have three versions of the interpreter: Strict (New scripting form only), Transitional (both), and Classic (the one up to 2.62)

I would really say that the whole scripting thing would even derserve the 3.0 stuck to the AGS.

One more question, can there be overloaded functions? that way if you have NewRoom for NewRoom and NewRoomEx, for example.

Dan2552

Quote from: Pumaman on Sun 14/11/2004 13:34:41
Quote from: Dan2552 on Sat 13/11/2004 23:12:33
as it's going more to the VB6 way will you be getting rid of the ;'s at the end of each line??? if not maybe make some kind of thing that does it by itself????

Perhaps I should clarify -- I am in no way intending to make the scripting language more like VB; it has a horrible syntax that is prone to mistakes.

The comparison I'm drawing with VB6 is the level of object-orientation I am aiming for.


i think i'm getting your point now. maybe delphi would have been a better example... that still uses like
blah.blah and uses a semicolon

dont bother explaining it if i get it wrong  :-\ you must spend as much time as you can actually updating rather than telling me i'm stupid. ;)

Pumaman

Quote from: netmonkey on Sun 14/11/2004 21:52:15
thing that has been talked about before, and maybe rename some of the functions to something standard and more intuitive. For example, NewRoom, and NewRoomNPC would be character[CHARID].ChangeRoom() or something like that, or maybe just leave it NewRoom.

Good idea, I think ChangeRoom is more intuitive than NewRoom. In fact, I was thinking of scrapping NewRoomEx and instead having a character[].SetPosition(x, y)  function. Although, that would mean two lines of script instead of one for room changes, so do give me your thoughts, people.

Another thing in terms of naming conventions is to do with the blocking functions. The current system is rather disjoint (some are  blahblahBlocking, others have blocking as a parameter, etc); what do people prefer? Or would you in fact prefer to have some sort of  character[].blocking  attribute, which would then affect all future Move/Animate/etc calls, until you changed it again?

Quote
A concern I have is that with all of these name changes, will the newer version be backwards compatible? and wouldn't that clutter the engine like all backwards compatibility things do? Maybe you should have three versions of the interpreter: Strict (New scripting form only), Transitional (both), and Classic (the one up to 2.62)

The engine clutter is minimal -- internally, both MoveCharacter and character[].Walk point to the same engine function, so it's not much overhead to support.
However, I am planning on a Strict option in the editor, which will only allow you to use the new command names.

Quote
I would really say that the whole scripting thing would even derserve the 3.0 stuck to the AGS.

Well, perhaps 2.7, depends on how extensive the changes turn out to be.

Quote
One more question, can there be overloaded functions? that way if you have NewRoom for NewRoom and NewRoomEx, for example.

That's a possibility -- I'm not sure if they would turn out to be more confusing than useful though.

Radiant

Personally, I would prefer blockingness to be a parameter to the function. I think the function parameter syntax could be more consistent, it doesn't matter much to me which way you make the consistency.
Maybe you could do 'default' parameters? As in the C++ syntax, MoveCharacter (int charid, int x, int y, int blocking = 0, int direct = 0), would that be a viable solution?

auhsor

Good work CJ. It's nice getting more towards object orientated, as I now understand it from learning C++ at uni. When I get around to making a game it will be great to use this style of coding.

Pumaman

Ok, I think the easiest way forward is if I list my proposed changes to the Character functions, then feel free to reply and disagree if there's anything you'd like changed:

AnimateCharacterÃ,  --> (deleted, use the one below instead)
AnimateCharacterExÃ,  --> Character[].Animate(loop,delay,repeat,direction,blocking)
AreCharactersCollidingÃ,  --> Character[].IsCollidingWithChar
AreCharObjCollidingÃ,  Ã, -->Ã,  Character[].IsCollidingWithObject
ChangeCharacterViewÃ,  --> Character[].ChangeView(view)
FaceCharacterÃ,  Ã,  -->Ã,  Character[].FaceCharacter(chartoface)
FaceLocationÃ,  Ã, --> Character[].FaceLocation(x,y)
FollowCharacterÃ,  Ã, (deleted, use the one below instead)
FollowCharacterExÃ,  --> Character[].Follow(charid, dist, eagerness)
GetCharacterPropertyÃ,  -->Ã,  Character[].GetProperty
GetCharacterPropertyTextÃ,  -->Ã,  Character[].GetPropertyText
MoveCharacterÃ,  --> Character[].Walk(x,y,direct,blocking)
MoveCharacterBlockingÃ,  (deleted, use the one above)
MoveCharacterDirectÃ,  Ã, (deleted, use the one above)
MoveCharacterPathÃ,  Ã, -->Ã,  Character[].AddWalkPath(x,y)
MoveCharacterStraightÃ,  --> Character[].WalkStraight(x,y)
MoveCharacterToHotspotÃ,  --> Character[].WalkToHotspot(hotspot, blocking)
MoveCharacterToObjectÃ,  --> Character[].WalkToObject(object, blocking)
MoveToWalkableAreaÃ,  --> Character[].PositionOnWalkableArea
NewRoomÃ,  Ã, -->Ã,  Character[].ChangeRoom(room, x, y)
NewRoomExÃ,  Ã, (deleted, use the one above)
NewRoomNPCÃ,  (deleted, use the one above)
ReleaseCharacterViewÃ,  -->Ã,  Character[].ReleaseView()
RunCharacterInteractionÃ,  --> Character[].RunInteraction(mode)
SetCharacterBaselineÃ,  --> Character[].SetBaseline
SetCharacterBlinkViewÃ,  --> Character[].SetBlinkView
SetCharacterClickable --> Character[].SetClickable
SetCharacterFrame --> Character[].SetFrame
SetCharacterIdle --> Character[].SetIdleState
SetCharacterIgnoreLight --> Character[].SetIgnoreLight
SetCharacterIgnoreWalkbehindsÃ,  --> Character[].SetIgnoreWalkbehinds
SetCharacterProperty --> Character[].SetOption
SetCharacterSpeechView --> Character[].SetTalkView
SetCharacterSpeed --> Character[].SetSpeed(x,y)
SetCharacterSpeedExÃ,  Ã, (deleted, use above)
SetCharacterTransparency --> Character[].SetTransparency(amount)
SetCharacterView --> Character[].SetView
SetCharacterViewEx --> Character[].SetViewAligned
SetCharacterViewOffset --> Character[].SetViewOffset
SetPlayerCharacter--> Character[].SetAsPlayer
SetTalkingColor --> Character[].SetTalkColor
StopMoving --> Character[].StopMoving()
DisplaySpeech -->Ã,  Character[].Talk(message)
DisplaySpeechAt -->Ã,  Character[].TalkAt(x,y,width,message)
DisplaySpeechBackground -->Ã,  Character[].TalkBackground(message)
DisplayThought -->Ã,  Character[].Think(message)
SkipUntilCharacterStops -->Ã,  Character[].SkipUntilDone
AddInventoryToCharacter -->Ã,  Character[].AddInventory
LoseInventoryToCharacter -->Ã,  Character[].LoseInventory



Question:
Is the whole SetView vs ChangeView thing confusing? It does seem to have caused problems in the past -- is there a better name for Change vs Set to better get across what they do?

Scummbuddy

real quick, for those that are being deleted for a more versitile version such as

animatecharacter for animatecharacterEx, can we drop the ex part, and just have animatecharacter like you did with newroomex and newroom?
- 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

None of the new names have an "Ex" in them  :)

Scummbuddy

#19
Oh, jeez, I wasn't thinking, I suppose, when I wrote that.
I will say that I very much agree with everything you've done carrying outÃ,  with this idea. This will be quite an addition to AGS.

Will the "SetCharacterClickable --> Character[].SetClickable" allow for those who wan't to disable the clickable-ness of a character?
- 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

SMF spam blocked by CleanTalk