Get an Object from Linked List
BlitzMax Forums/BlitzMax Programming/Get an Object from Linked List
| ||
Hi to all. I am usually using a TList type to store all my game objects. It is very easy to update or draw them in main cycle. But when i need to get a current one of them, i run a loop, and check every linked object for some special field -- an ID for example. I suggest that there is some another and better way to get an object from list, without wasting precious time. Any advices? Thanks in advance! |
| ||
TMaps. |
| ||
For example:Type thing Field id$ Field age Function Create:thing(id$) t:thing=New thing t.id=id thingids.insert id,t 'insert the thing into the map under the key matching its id. t.age=Rand(10,50) 'make up a random age Print t.id+": "+t.age Return t End Function Function withid:thing(id$) 'find the thing corresponding to the given id. If thingids.contains(id) Return thing(thingids.valueforkey(id)) EndIf End Function End Type Global thingids:tmap=New tmap thing.Create("Jim") thing.Create("Bob") Print "thing.withid(~qJim~q).age : "+thing.withid("Jim").age And you can maintain a TList and a TMap at the same time, by the way, and use whichever suits your needs in different parts of the program. |
| ||
I concur. To be more specific I used to used TLists for certain things where I wanted to look something up and then when I found out how TMaps really work I changed to using them. |
| ||
Thanks a lot!! Can you imagine -- i even didn't knew anything about this useful TMap type.. Thanks again! I'm so happy :D |