Type physical As Double Enum food oyster = 1 trout bloater chocolate truffles cheesecake cream pudding pie End Enum Type ActualFood nombre As Integer size As physical quantity As physical End Type Type foodbox Item(100) As ActualFood max As Integer End Type Sub put_(Byref fb As foodbox, Byval f As Integer, Byval s As physical, Byval q As physical) fb.max += 1 fb.Item(fb.max).nombre = f fb.Item(fb.max).size = s fb.Item(fb.max).quantity = q End Sub Sub GetNext(Byref fb As foodbox, Byref Stuff As ActualFood) If fb.max > 0 Then Stuff = fb.Item(fb.max) fb.max -= 1 End If End Sub Type Gourmand WeightGain As physical SleepTime As physical End Type Sub eats(Byref g As Gourmand, Byref stuff As ActualFood) g.WeightGain += stuff.size * stuff.quantity * 0.75 stuff.size = 0 stuff.quantity = 0 End Sub ' Test Dim As foodbox Hamper Dim As Gourmand MrG Dim As ActualFood Course put_(Hamper, food.pudding, 3, 7) put_(Hamper, food.pie, 7, 3) GetNext(Hamper, Course) eats(MrG, Course) Print MrG.WeightGain ' result 15.75 Sleep