Bmax code style
BlitzMax Forums/BlitzMax Beginners Area/Bmax code style
| ||
Hi, I'm trying to write some C++ code from an example peice of code from this forum but I'm stuck, can someone tell me what this is doing?Local array:Int[10] For a:int = 0 to 10 Local type:TType = TType( array[a] ) Next I can't figure out what the type:TType is doing, what is it doing here TType(array[a]) ?? in C++ that would be a constructor! Thanks. |
| ||
Must be one of the worst examples you can find :-) You'll get an ArrayOutOfBounds with that loop for starters... "type" is not a valid variable name. TType() looks like a cast, but it is also defined as a Type. It might be a function too, but I'm not sure you can do that. Certainly you won't be able to cast from int to a type, with much success! |
| ||
HAHA Yeah I know of the code errors. Ah, so it could be a cast of somekind? It's just so bloody vague?! |
| ||
... but isn't it vague due to poor variable names and dodgy coding? Where did you get the example from? |
| ||
Yep the code example was too vague for an answer, it's basically from what I can tell a c++ type_cast to loop though inherited/derived types in a list to find the Type you want, so in Bmax you do this, roughly:For local ent:Entity = EachIn entity_list Local player:Player = Player(ent) ' Player is derived from Entity ' Do some player code Next and my conversion in C++ list<Entity*>::iterator iter; for(iter = entity_list->begin(); iter != entity_list->end(); iter++) { Player* player = dynamic_cast<Player*>(*iter); // Do some player code } |
| ||
But you can more succinctly just write,for local ent:Player = EachIn entity_list 'do stuff next even if entity_list contains objects that are not of type "player". |