Type in a type

Blitz3D Forums/Blitz3D Beginners Area/Type in a type

Try this:

Type badger 
	Field var 
	Field nextBadger.badger
End Type 

Type sheep 
	Field firstBadger.badger
	Field lastBadger.badger
End Type 


Function AddBadger.badger(sheep.sheep)
	badger.badger=New badger
	
	If sheep\firstBadger=Null Then
		sheep\firstBadger=badger
	Else
		sheep\lastBadger\nextBadger=badger
	EndIf
	sheep\lastBadger=badger
	
	Return badger
End Function


sheep1.sheep=New sheep
newbadger.badger=AddBadger(sheep1)
newbadger.badger=AddBadger(sheep1)
newbadger.badger=AddBadger(sheep1)


sheep2.sheep=New sheep
newbadger.badger=AddBadger(sheep2)
newbadger.badger=AddBadger(sheep2)
newbadger.badger=AddBadger(sheep2)


currentBadger.badger=sheep1\firstBadger
While currentBadger<>Null
	;do something
	currentBadger=currentBadger\nextBadger
Wend


currentBadger.badger=sheep2\firstBadger
While currentBadger<>Null
	;do something
	currentBadger=currentBadger\nextBadger
Wend