Harry
Member
|
Memx container of references load method - compiler error
I want to load saved Memx container of references but I have an error on compilation step which shows me that something is wrong with this line:
Code:
T1(TYPE) Bool Memx<TYPE>::load(File &f) {clear(); REP(f.getInt( )) if(!New().load(f))return false; return true;}
in Templates.h.
Error:
Code:
1>d:\microsoft visual studio 9.0\vc\include\esenthelengine\misc\templates.h(305) : error C2171: '!' : illegal on operands of type 'void'
1> d:\microsoft visual studio 9.0\vc\include\esenthelengine\misc\templates.h(305) : while compiling class template member function 'Bool EE::Memx<TYPE>::load(EE::File &)'
1> with
1> [
1> TYPE=EE::Reference<EE::Game::Kinematic>
1> ]
1> d:\forest valley\source\mission.h(41) : see reference to class template instantiation 'EE::Memx<TYPE>' being compiled
1> with
1> [
1> TYPE=EE::Reference<EE::Game::Kinematic>
1> ]
1>d:\microsoft visual studio 9.0\vc\include\esenthelengine\misc\templates.h(305) : error C2451: conditional expression of type 'void' is illegal
1> Expressions of type void cannot be converted to other types
Here is some part of my code:
Code:
Memx<Reference<Game::Kinematic>> sign;
if(!sign.load(f))return false;
If you ask why I want have this here is the answer:
I want create a container of mission pointers, characters which are mission targets etc. and I need to have to them acces even when they aren't in the visible area of world. I tried use just REPA(sign)sign[i].save(f); REPA(sign)sign[i].load(f); but I have some problems because if I save game with sign valid and then during the game I delete it then after loading I have no signs. There are just Kinematic objects which aren't stored in memx container.
Is there any better way in my problem?
|
|
08-15-2011 11:32 PM |
|
Esenthel
Administrator
|
RE: Memx container of references load method - compiler error
//save
sign.save(f);
//load
sign.clear(); REP(f.getInt())sign.New().load(f);
|
|
08-16-2011 11:03 AM |
|
Harry
Member
|
RE: Memx container of references load method - compiler error
Thanks, anyway it doesn't solve my problem. After loading I have immediately error in this part:
Code:
if(sign.elms())
{
if(Dist(sign[0]().matrix.pos() .....)
}
sign.elms() shows me that there is 1 valid element and when I'm trying go through sign container and get index of this element I get -1.
EDIT: Ok, nevermind. I had commented linking references
(This post was last modified: 08-17-2011 10:17 AM by Harry.)
|
|
08-16-2011 12:17 PM |
|