more questions (all will go here)

This forum is currently in read-only mode.
From the Asset Store
Go Gravi Challenging Platformer Game Template For Any Device
    • Can I request certain things on the CVS?
    • Is there a link to download a zip or something of an entire plugin, instead of each file one at a time?
    • Are there functions built into EditTime, or CRunObject that allow you to load and access file information at edittime, or would I have to do that from scratch? Specifically what I'd like to do is save a list of strings in a separate editor and then load this file in construct the way you load a sprite, so it's useable at edittime. After loading them into StringArray:

    // StringArray is a holder for the list loaded at edittime, arraysize is int for number of list items

    string StringArray[arraysize];

    // ExampleString now holds the first item in StringArray

    string ExampleString = StringArray[0];

    // Append all StringArray items so ExampleString becomes

    // "FirstItem|SecondItem|ThirdItem|etc"

    for (int i=1, i<arraysize,i++)


    ExampleString = ExampleString + "|" + StringArray;


    //use ExampleString to create enum for parameter list

    ADDPARAMCOMBO("Example", "This is just an example.",ExampleString.c_str());

    ADDACT("My action", "My category", "Example action (%0)", &ExtObject::aMyAction, "MyAction", 0);

    so basically, you could save a list of things to a file in a separate editor, and then load each item into StringArray. When you go to use MyAction in construct, your parameter list would be determined by that file. Are there any functions built into the SDK for loading and stepping through files, or would I have to do the FileIO from scratch?

    I don't need the whole plugin, but could someone please paste the ENUM from mousekeyboard, the one that let's you choose leftclick,rightclick,a,b,c,TAB,etc... for OnKeyPressed. It would be very helpful, and save me alot of tedium

    I only recently learned about defining macros from the illustrious David, but I don't understand this statement:

    #define ADDPARAMCOMBO(n, d, v)

    I thought it worked something like:

    [quote:2c1hym6h]#define ADDPARAMCOMBO(n, d, v) DoFunction(1,n,d,v,"stuff")

    when it doesn't have a second item, what is getting defined as?

    Thanks alot guys as always. Things are moving along very nicely thanks to all the help from all of you.

  • 1. I don't understand. What do you mean?

    2. Checkout the plugins module with a proper CVS client like TortoiseCVS or SmartCVS.

    3. You can just use the ordinary C runtime functions (fopen etc) to access the disk. You can put any code you like in the DefineACES() function, so what you want to do is possible.


    struct ControlTableEntry {
    	int vk;
    	const char* name;
    ControlTableEntry keyTable[] = {
    	{VK_LBUTTON,	"Left mouse button"},
    	{VK_MBUTTON,	"Middle mouse button"},
    	{VK_RBUTTON,	"Right mouse button"},
    	{VK_TAB,		"Tab"},
    	{VK_RETURN,		"Enter"},
    	{VK_SHIFT,		"Shift"},
    	{VK_LSHIFT,		"Shift (left)"},
    	{VK_RSHIFT,		"Shift (right)"},
    	{VK_CONTROL,	"Control"},
    	{VK_LCONTROL,	"Control (left)"},
    	{VK_RCONTROL,	"Control (right)"},
    	{VK_MENU,		"Alt"},
    	{VK_LMENU,		"Alt (left)"},
    	{VK_RMENU,		"Alt (right)"},
    	{VK_PAUSE,		"Pause"},
    	{VK_ESCAPE,		"Escape"},
    	{VK_SPACE,		"Space"},
    	{VK_HOME,		"Home"},
    	{VK_END,		"End"},
    	{VK_UP,			"Up arrow"},
    	{VK_DOWN,		"Down arrow"},
    	{VK_LEFT,		"Left arrow"},
    	{VK_RIGHT,		"Right arrow"},
    	{VK_INSERT,		"Insert"},
    	{VK_DELETE,		"Delete"},
    	{'0',			"0"},
    	{'1',			"1"},
    	{'2',			"2"},
    	{'3',			"3"},
    	{'4',			"4"},
    	{'5',			"5"},
    	{'6',			"6"},
    	{'7',			"7"},
    	{'8',			"8"},
    	{'9',			"9"},
    	{'A',			"A"},
    	{'B',			"B"},
    	{'C',			"C"},
    	{'D',			"D"},
    	{'E',			"E"},
    	{'F',			"F"},
    	{'G',			"G"},
    	{'H',			"H"},
    	{'I',			"I"},
    	{'J',			"J"},
    	{'K',			"K"},
    	{'L',			"L"},
    	{'M',			"M"},
    	{'N',			"N"},
    	{'O',			"O"},
    	{'P',			"P"},
    	{'Q',			"Q"},
    	{'R',			"R"},
    	{'S',			"S"},
    	{'T',			"T"},
    	{'U',			"U"},
    	{'V',			"V"},
    	{'W',			"W"},
    	{'X',			"X"},
    	{'Y',			"Y"},
    	{'Z',			"Z"},
    	{VK_BACK,		"Backspace"},
    	{VK_NUMPAD0,	"Num pad 0"},
    	{VK_NUMPAD1,	"Num pad 1"},
    	{VK_NUMPAD2,	"Num pad 2"},
    	{VK_NUMPAD3,	"Num pad 3"},
    	{VK_NUMPAD4,	"Num pad 4"},
    	{VK_NUMPAD5,	"Num pad 5"},
    	{VK_NUMPAD6,	"Num pad 6"},
    	{VK_NUMPAD7,	"Num pad 7"},
    	{VK_NUMPAD8,	"Num pad 8"},
    	{VK_NUMPAD9,	"Num pad 9"},
    	{VK_ADD,		"Num pad Add"},
    	{VK_SUBTRACT,	"Num pad Subtract"},
    	{VK_MULTIPLY,	"Num pad Mulitply"},
    	{VK_DIVIDE,		"Num pad Divide"},
    	{VK_DECIMAL,	"Num pad Decimal"},
    	{VK_F1,			"F1"},
    	{VK_F2,			"F2"},
    	{VK_F3,			"F3"},
    	{VK_F4,			"F4"},
    	{VK_F5,			"F5"},
    	{VK_F6,			"F6"},
    	{VK_F7,			"F7"},
    	{VK_F8,			"F8"},
    	{VK_F9,			"F9"},
    	{VK_F10,		"F10"},
    	{VK_F11,		"F11"},
    	{VK_F12,		"F12"},
    	{-1,			""},
    5.  It might help you to buy a C++ reference book or something like that to answer your questions about the language.  #define with nothing after it means the given statement is removed (it is defined as nothing).  Since you probably looked up its definition in the runtime configuration, and the runtime doesn't care about parameter definitions, it is simply removed.  However, the IDE needs to know about parameters, so in the release configuration it is defined as a call to a function.
  • 1. I don't understand. What do you mean?

    Can I request a certain plugin module that isn't already on the CVS, like Mouse/Keyboard? I don't need Mouse/Keyboard, or anything specifically at the moment, but just curious if that's an option


    Thanks you very much ashley, and I will be getting myself a C++ ebook, as per your recommendation.

  • is there a function to translate a string into an expression?

  • What do you mean?

  • whenever there is a value, or a boolean input on the ace table, it can be input as an expression, for instance - set sprite.angle to "45*sprite2.x". i think thats a string that gets broken down and converted into a value? is it possible for a plugin to use some of these same conversion functions internally?

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • is it possible for a plugin to use some of these same conversion functions internally?

    No, those functions aren't available at runtime (even the runtime doesn't use them, because expressions are exported to the runtime in a preprocessed format).

  • I have something I'm going to try tomorrow night, but if one of you already knows whether it's possible, it could potentially save me some time working on something that won't work.

    if I have a property_edit that takes a filename.

    and a property_bool, to click, and make it load the file, on properties update

    I want the acetable to read the value of the filename in the property_edit.

    First, do the ACETable functions get called every time the dialog is called?, or is it only read once when the object is added. if it is called every time:

    The OnPropertiesUpdate (or something like that), is a member of ExtEdit.

    and ACE uses global functions, if I remember correctly. I don't want to use global values unless it's a last resort, and I'm also not sure if it's safe to do so in this situation.

    1. Is there another way to do this?

    2. I can't find the code where adding a sprite object calls the sprite editor dialog. which file should I be looking in?

    3. If sprite is not a special case, does the sdk have a particular way to add dialogs?, or is that what the MFC version is for?

    thanks again for all the help, things are coming along nicely, if anyone's curious.

    Going by how many functions I'm completing per day, and how many are left to write, I should have something cool to show in about a month. It will be far from complete, but it will be something that shows what types of things the plugins will be used for.

  • ACES are only loaded when the program starts up.

    I don't understand your first question.

    It's the 'EditAnimation' function.

  • ok thanks, rich, the first question doesn't make any sense if it only loads the ACE Table once.


    As I've looked through the SDK tracing functions, and #defines and such, Every once in a while I stumble upon comments that say something along the lines of "See SDK docs for more information."

    Is this referring to the ACE table and SDK wiki pages, or is there a docs file somewhere?

  • Eh, they were half written once but they're all out of date now. Ask here if you have any questions about anything. I'll write some SDK documentation eventually...

  • can I see the source for mouse/keyboard?

    and also, can I modify plugins, and share the modified versions on the board? (with a different name of course to avoid conflicts)

    is it possible/how do you set defaults for PARAMCOMBOs?

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)