Initializing Panels with variables doesn't work

Posted By: krial057

Initializing Panels with variables doesn't work - 06/02/13 12:53

Hello,

I think it is not possible to use variables in Panel struct initializations:

Code:
var test = 2;

typedef struct Custom_Panel{ 
  var test_x; 
} Custom_Panel; 

Custom_Panel* mypan = { test_x = test;}
VECTOR* testVec     = {x = test;}
PANEL* looptxt_pan  = { pos_x  = test;}



I get a "number syntax test" error for the line "PANEL* looptxt_pan = { pos_x = test;}"
However, the variable initialization works for Vector and custom structs(didn't try it with other engine objects yet)

The manual says:
Quote:
Within the struct initialization, any numbers, variables, character strings, or pointers to other structs can be used, but internal engine variables (such as "camera"), and #defines (such as a previously defined "NUMBER_OF_ARRAY_ELEMENTS") can not be used.

But I couldn't find anything that it isn't working with Panels.
Posted By: jcl

Re: Initializing Panels with variables doesn't work - 06/03/13 07:12

A struct can have variables, but you can not initialize variables with other variables. In the manual under "Variables" you can see how to initialize variables.
Posted By: krial057

Re: Initializing Panels with variables doesn't work - 06/03/13 14:06

Quote:
but you can not initialize variables with other variables.

As far as I unterstand the manual, you can in a struct initialization. It says:
Quote:
Within the struct initialization, any numbers, variables, character strings, or pointers to other structs can be used


I also tested it with the Vector struct and it works:

Code:
#include <acknex.h>
var test = 42;
VECTOR* testVec = {x = test;}

function main()
{
	printf("%i", (int)testVec.x);
}



As i said in the original post, it's just not working for Panels...
Posted By: jcl

Re: Initializing Panels with variables doesn't work - 06/03/13 14:47

It is indeed working in your example, due to the method how structs are generated, but this is not the 'official' way. In C, variables can only be initialized with constants, not with other variables. You need a function for setting panel variables dynamically from the content of other variables.
Posted By: krial057

Re: Initializing Panels with variables doesn't work - 06/03/13 15:47

Ok, thank you very much. Maybe change this sentence in the manual then:
Quote:
Within the struct initialization, any numbers, variables, character strings, or pointers to other structs can be used
© 2024 lite-C Forums