Gamestudio Links
Zorro Links
Newest Posts
Change chart colours
by 7th_zorro. 05/11/24 09:25
Data from CSV not parsed correctly
by dr_panther. 05/06/24 18:50
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
1 registered members (AndrewAMD), 1,014 guests, and 1 spider.
Key: Admin, Global Mod, Mod
Newest Members
Hanky27, firatv, wandaluciaia, Mega_Rod, EternallyCurious
19051 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
engine_getvar example with arrays please #219546
08/03/08 06:42
08/03/08 06:42
Joined: Oct 2006
Posts: 106
i_program_games Offline OP
Member
i_program_games  Offline OP
Member

Joined: Oct 2006
Posts: 106
I'm trying to do this with an array and engine_getvar:

var nArray[10];

long type;
void* varptr = engine_getvar("nArray", &type);

*varptr=1; //insert 1 into nArray[0] via pointer dereference
varptr++; //increment pointer to nArray[1]
*varptr=2; //insert 2 into nArray[1] via pointer dereference

However, I don't know how to properly use engine_getvar for arrays. Please provide the proper way to use it for arrays.

Thanks.


Chaos is a paradox consistently inconsistent.
Re: engine_getvar example with arrays please [Re: i_program_games] #219561
08/03/08 09:53
08/03/08 09:53
Joined: Sep 2003
Posts: 9,859
F
FBL Offline
Senior Expert
FBL  Offline
Senior Expert
F

Joined: Sep 2003
Posts: 9,859
if you do pointer arithmentics make sure you cast your pointer to the correct type. Otherwise the calcualted addresses can be wrong.

The easier and better readable way is to use [index] for accessing.
This is slower for huge(!) arrays, but for an array of like 50 members it shouldn't be relevant.

Re: engine_getvar example with arrays please [Re: FBL] #219569
08/03/08 10:46
08/03/08 10:46
Joined: Aug 2000
Posts: 1,140
Baunatal, Germany
Tobias Offline

Moderator
Tobias  Offline

Moderator

Joined: Aug 2000
Posts: 1,140
Baunatal, Germany
Which language are you using after all? engine_getvar makes only sense in C++ but I don't think your code would work in C++. You need varptr to be a var* and not void*.

var* varptr = ...

varptr[1] = _VAR(1);
varptr[2] = _VAR(2);

Re: engine_getvar example with arrays please [Re: Tobias] #219684
08/04/08 01:23
08/04/08 01:23
Joined: Oct 2006
Posts: 106
i_program_games Offline OP
Member
i_program_games  Offline OP
Member

Joined: Oct 2006
Posts: 106
Ok thanks for the responses but I got this simpler solution to work:

//MUST BE IN GLOBAL SCOPE for var_for_name or engine_getvar!!!
var nArray[10];
STRING* gpString= "Foo";

function someFunction()
{
STRING* pString2;

var* pArray = var_for_name("nArray");
var* pString = var_for_name("gpString");//set pString to global gpString

pArray[0]=handle(pString);
pString2=ptr_for_handle(pArray[0]);//now pString2 is the same as pString
}


//P.S. pointer addition DOES work but appears not support the syntax of *(pMyPointer + 5) so I use array notation instead.

So why ever use engine_getvar?



Chaos is a paradox consistently inconsistent.
Re: engine_getvar example with arrays please [Re: Tobias] #219702
08/04/08 06:37
08/04/08 06:37
Joined: Oct 2006
Posts: 106
i_program_games Offline OP
Member
i_program_games  Offline OP
Member

Joined: Oct 2006
Posts: 106
Originally Posted By: Tobias
Which language are you using after all? engine_getvar makes only sense in C++ but I don't think your code would work in C++. You need varptr to be a var* and not void*.

var* varptr = ...

varptr[1] = _VAR(1);
varptr[2] = _VAR(2);


So engine_getvar is intended to be used via C++ dlls? I have gotten it to work in lite-c but this would make sense as var_for_name seems more user friendly in scripting.


Chaos is a paradox consistently inconsistent.

Moderated by  old_bill, Tobias 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1