The Daily Click ::. Downloads ::. Application ::. Expression Editor Plus (beta 028 )
 

Expression Editor Plus (beta 028 )
Author: DeadmanDines Submitted: 3rd April, 2008 Favourites:2
Genre: Application Downloads: 297
Rated:


Edited By DeadmanDines on 4/3/2008

Image

The beta is done at last!

This is an application to help you develop expressions for use in MMF. It works as a markup language, letting you write your expressions in E++, using comments and local variables, and then convert them into MMF's expression code.

You then copy and paste it into MMF, and voila! So long as all the objects you refer to in your expression exist, you should have a fully functional expression!

Image

You can organise your sheets within Collections, renaming them, popping them in folders, and so on.

The app contains everything you should need to start using it at once! Any queries and bugs can be posted on the devlog, which lives here:

http://www.create-games.com/project.asp?view=main&id=1046

Known Bugs
Obviously it's a beta, so it's not a perfect puppy!

It may require a restart after the first use before Windows fully registers the *.EPC file format with E++.


I think that's it, any bugs, mention here or on the devlog forums, and other than that: enjoy!!

This is a VERY useful application!!

CHANGES AND FIXES IN b.028:

- Delete error on close: Should be resolved now.
- Bizarre log names: Should be resolved now.
- Right-click menu: Added to RTF text area.
- Stray list object on the right: Removed.

Any others you find, please say

Review This Download



     


http://www.4shared.com/file/42903478/3106d5a9/E_online.html (963 kkb )



Posted by Hempuli 3rd April, 2008

Yay, it's out! Gotta try out
 
Posted by DeadmanDines 3rd April, 2008

To switch sheets, click the blue tab to the left, and double-click a sheet. Single clicks won't cause a switch.
 
Posted by Sphax 3rd April, 2008

It seems to be a very interesting and useful tool. great job.

It could be better if:
- The list on the right was not displayed (if you resize the window, you see it)
- The code was colored
- The right click should works
- There is an error while deleting a folder after closing the application

It's a great work and will be very useful!
Comment edited by Sphax on 4/3/2008
 
Posted by DeadmanDines 3rd April, 2008

LOL @ the list How'd I forget that one!?

Yeah, code colouring with RTF object's a bit of a pain cos it has its own framerate. So it flickers and you see all the selection blocks and stuff.

I'm still trying to figure why that error on close happens, it doesn't always.
 
Posted by Sphax 3rd April, 2008

Maybe because a file is still in use while you try to delete the folder which contain it?
 
Posted by DeadmanDines 3rd April, 2008

I wondered about that, but I've got it at last! It was a problem with Instance Communicator object, for some reason after running a subapp, it thought the instance ID was something enormous like 1887762.

So basically, your object was trying to delete a folder which didn't exist (deleting 'tmp188762' instead of 'tmp1'). Now it should all be dandy

Build 028's up! All please redownload
 
Posted by Sphax 4th April, 2008

Great.

That could be great to have an object manager like MMF2 where you can select expressions from a popup menu. In this one you could create all the expressions of an active object.
 
Posted by DeadmanDines 4th April, 2008

Actually, I'd been thinking that...

...do you know if there's a handy coder who could develop an extension to retrieve expression names and types from MMF extensions? (Sphax, have I ever told you you're great? )

EG:
Action: Load an extension ...
Expression: Number of expressions
Expression$: Get Expression Name
Expression$: Get Expression Type

The last one could maybe return "integer", "string" or if possible, "float".

If this were possible, I could get E++ to scan the MMF extensions directory and then refer internally to the objects currently installed.

So it could possibly try matching datatypes (so it warns if you get a type missmatch error, and isolates where it occurred), or doing auto-complete.

And it could be useful for you in creating the next version of Fusion Updater - imagine if you could show beforehand all the expressions, actions and conditions! It'd enable people to see exactly what an extension does before they try it (some of the names and descriptions aren't always self-explanatory).
Comment edited by DeadmanDines on 4/4/2008
 
Posted by Sphax 4th April, 2008

I think we could interface our applications (FusionManager/E++).

I'll try to see if I can get the list of all the expressions and the popup menu associated.

For example, E++ can open FusionManager in a special mode, the user will be able to select an extension and an expression and return the result to E++.

And FusionManager can open E++ to let the user create an expression.
 
Posted by DeadmanDines 4th April, 2008

Yeah, I'd be happy for FM to bring up E++!

I'm not sure exactly what FusionManager does though? Is it to organise your extensions or something?

What I had planned for E++ was to be able to scan all extensions currently installed and maintain a database of their expressions. Then, while parsing the current expression, it would look up any expressions you have written, to determine their type.

I had also planned a dialog kind of like you described, where a button is pressed and it brings up an object selector. But given the huge number of objects available to MMF, it wouldn't be viable to add expressions from there (imagine using Zip object - you'd have to scroll down hundreds of extensions every time you wanted to add an expression).

My plan had been to allow the user to 'add an object', so objects would appear as icons below your current expression (where E++ is currently grey).

Then, you could clone or rename these objects and left-click them to bring up a popup of their expressions.

I think that'd be fairly streamlined.
 
Posted by Eternal Man [EE] 4th April, 2008
Rated :

This sounds awesome!
Unfortunately im not on MMF2 yet, but when I am, I'll download this immediately!
Good job Dines!

e_e
 
Posted by viva/volt 4th April, 2008
Rated :

This is pretty awesome, but when I make big expressions I don't usually know they're gonna be huge... So I don't remember to open E++ :\.

I made this though:

(Left$(Text$("Text Blitter"),ReverseFind(Text$("Text Blitter")," ",Line Length("Text Blitter")))+NewLine$+Right$(Text$("Text Blitter"),Len(Text$("Text Blitter"))-1-ReverseFind(Text$("Text Blitter")," ",Line Length("Text Blitter"))))+" At "+str$((CompareIntegers$("Immediate If Object",GetValue("Save","Time")/60/60,"<",10,"0"+Str$(GetValue("Save","Time")/60/60),Str$(GetValue("Save","Time")/60/60))+":"+CompareIntegers$("Immediate If Object",GetValue("Save","Time")/60,"<",10,"0"+Str$(GetValue("Save","Time")/60),Str$(GetValue("Save","Time")/60))+":"+CompareIntegers$("Immediate If Object",GetValue("Save","Time")mod 60,"<",10,"0"+Str$(GetValue("Save","Time")mod 60),Str$(GetValue("Save","Time")mod 60))))

{it won't do anything unless you need to spilt a string after a certain number of characters and add a line break then write the time in seconds but in the form 00:00:00)
 
Posted by DeadmanDines 5th April, 2008

Eternal Entertainment: You may find it works for TGF or MMF1.5, if that's what you use right now

It just means that you have to avoid using things like ^ or POW, since raise-to-the-power isn't supported in TGF.
Comment edited by DeadmanDines on 4/5/2008
 
Posted by Bricnic 6th April, 2008

Great idea. I hate accidentally writing the wrong number of ()'s, this should solve that problem
 
Posted by DeadmanDines 8th April, 2008

At least it'll tell you where you did it

But one feature I ought to add is colouring the brackets of the bit you've selected.

I may not get a chance due to work and life commitments, so I may release this opensource.
 
Posted by Sketchy 23rd May, 2008
Rated :

two balls bouncing...
new_A1=((((((Alterable Value A("Ball2"))*(((Alterable Value X("Ball2"))-(Alterable Value X("Ball1")))/(sqr((((Alterable Value X("Ball2"))-(Alterable Value X("Ball1")))*((Alterable Value X("Ball2"))-(Alterable Value X("Ball1"))))+(((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1")))*((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1"))))))))+((Alterable Value B("Ball2"))*(((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1")))/(sqr((((Alterable Value X("Ball2"))-(Alterable Value X("Ball1")))*((Alterable Value X("Ball2"))-(Alterable Value X("Ball1"))))+(((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1")))*((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1")))))))))-(((Alterable Value A("Ball1"))*(((Alterable Value X("Ball2"))-(Alterable Value X("Ball1")))/(sqr((((Alterable Value X("Ball2"))-(Alterable Value X("Ball1")))*((Alterable Value X("Ball2"))-(Alterable Value X("Ball1"))))+(((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1")))*((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1"))))))))+((Alterable Value B("Ball1"))*(((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1")))/(sqr((((Alterable Value X("Ball2"))-(Alterable Value X("Ball1")))*((Alterable Value X("Ball2"))-(Alterable Value X("Ball1"))))+(((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1")))*((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1"))))))))))*(0.5))*(((Alterable Value X("Ball2"))-(Alterable Value X("Ball1")))/(sqr((((Alterable Value X("Ball2"))-(Alterable Value X("Ball1")))*((Alterable Value X("Ball2"))-(Alterable Value X("Ball1"))))+(((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1")))*((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1"))))))))-(((-1*(Alterable Value A("Ball1"))*(((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1")))/(sqr((((Alterable Value X("Ball2"))-(Alterable Value X("Ball1")))*((Alterable Value X("Ball2"))-(Alterable Value X("Ball1"))))+(((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1")))*((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1"))))))))+((Alterable Value B("Ball1"))*(((Alterable Value X("Ball2"))-(Alterable Value X("Ball1")))/(sqr((((Alterable Value X("Ball2"))-(Alterable Value X("Ball1")))*((Alterable Value X("Ball2"))-(Alterable Value X("Ball1"))))+(((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1")))*((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1")))))))))*(((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1")))/(sqr((((Alterable Value X("Ball2"))-(Alterable Value X("Ball1")))*((Alterable Value X("Ball2"))-(Alterable Value X("Ball1"))))+(((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1")))*((Alterable Value Y("Ball2"))-(Alterable Value Y("Ball1"))))))))



"expression too complex" Image


It would be nice if it could automatically split it up somehow, so MMF can actually handle the resulting formula. Otherwise it's very impressive.
Comment edited by Sketchy on 5/23/2008
 
Posted by Muz 16th October, 2008
Rated :

Probably the most useful 'application' ever
 
Posted by Muz 31st December, 2008
Rated :

Been using this recently.. it's a huge, huge help
 
Posted by Torava 29th March, 2009

The file link that you requested is not valid.

That sucks. Giev mirror or something?
 
Posted by pallokallo 24th July, 2009

Yeah download link would be nice
 
Posted by Ted Boomerang 20th August, 2009

yes, please update the link for this. it's really helpful!
 

 



Author

Favourite



Advertisement

Worth A Click