home *** CD-ROM | disk | FTP | other *** search
- rem Memblock Functionality
-
- rem Standard Setup Code for all examples
- sync on : sync rate 0 : backdrop off
- set text font "arial" : set text size 16
- set text to bold : set text transparent
-
- rem Set values
- SoundNumber=1+rnd(3)
- ImageNumber=1+rnd(3)
- BitmapNumber=1+rnd(3)
- MeshNumber=1+rnd(3)
-
- rem Load media
- load sound "gun.wav",SoundNumber
- load image "face.bmp",ImageNumber
- load bitmap "face.bmp",BitmapNumber
- load mesh "mesh.x",MeshNumber
-
- rem Main loop
- do
-
- rem Produce random values
- MemblockNumber=1+rnd(254)
- MemblockTo=1+rnd(254)
- FromPos=rnd(100)
- ToPos=FromPos+1+rnd(50)
- SizeInBytes=202+rnd(10240)
- TenBytes=10
- ByteValue=rnd(255)
- WordValue=rnd(65535)
- DWORDValue=rnd(22000000)
- FloatValue=rnd(10000)/100.0
-
- rem Try each command at random
- r=rnd(4)
- if MEMBLOCK EXIST(MemblockNumber)=0
- if r=0 then MAKE MEMBLOCK MemblockNumber, SizeInBytes
- if r=1 then MAKE MEMBLOCK FROM SOUND MemblockNumber, SoundNumber
- if r=2 then MAKE MEMBLOCK FROM IMAGE MemblockNumber, ImageNumber
- if r=3 then MAKE MEMBLOCK FROM BITMAP MemblockNumber, BitmapNumber
- if r=4 then MAKE MEMBLOCK FROM MESH MemblockNumber, MeshNumber
- endif
- if MEMBLOCK EXIST(MemblockNumber)=1
- if r=1 then DELETE SOUND SoundNumber
- if r=2 then DELETE IMAGE ImageNumber
- if r=3 then DELETE BITMAP BitmapNumber
- if r=4 then DELETE MESH MeshNumber
- endif
- if MEMBLOCK EXIST(MemblockNumber)=1
- if r=0 then WRITE MEMBLOCK BYTE MemblockNumber, ToPos, ByteValue
- if r=0 then WRITE MEMBLOCK WORD MemblockNumber, ToPos, WordValue
- if r=0 then WRITE MEMBLOCK DWORD MemblockNumber, ToPos, DWORDValue
- if r=0 then WRITE MEMBLOCK FLOAT MemblockNumber, ToPos, FloatValue
- if r=1 then MAKE SOUND FROM MEMBLOCK SoundNumber, MemblockNumber
- if r=2 then MAKE IMAGE FROM MEMBLOCK ImageNumber, MemblockNumber
- if r=3 then MAKE BITMAP FROM MEMBLOCK BitmapNumber, MemblockNumber
- if r=4 then MAKE MESH FROM MEMBLOCK MeshNumber, MemblockNumber
- if r=4 then CHANGE MESH FROM MEMBLOCK MeshNumber, MemblockNumber
- endif
- if MEMBLOCK EXIST(MemblockNumber)=1 and MEMBLOCK EXIST(MemblockTo)=1
- if rnd(5)=1 then COPY MEMBLOCK MemblockNumber, MemblockTo, FromPos, ToPos, TenBytes
- endif
-
- rem Display data
- cls
- print "MEMBLOCK EXPRESSION DATA"
- print
- print "memblock:";MemblockNumber
- print "exist:";MEMBLOCK EXIST(MemblockNumber)
- if MEMBLOCK EXIST(MemblockNumber)=1
- print "ptr:";GET MEMBLOCK PTR(MemblockNumber)
- print "size:";GET MEMBLOCK SIZE(MemblockNumber)
- print "byte:";MEMBLOCK BYTE(MemblockNumber, FromPos)
- print "word:";MEMBLOCK WORD(MemblockNumber, FromPos)
- print "dword:";MEMBLOCK DWORD(MemblockNumber, FromPos)
- print "float:";MEMBLOCK FLOAT(MemblockNumber, FromPos)
- endif
-
- rem Show/play media
- if MEMBLOCK EXIST(MemblockNumber)=1
- if r=1 then PLAY SOUND SoundNumber : SLEEP 100
- if r=2 then PASTE IMAGE ImageNumber,0,0 : SLEEP 100
- if r=3 then COPY BITMAP BitmapNumber,0 : SLEEP 100
- if r=4 then MAKE OBJECT 1,MeshNumber,0 : SYNC : DELETE OBJECT 1 : SLEEP 100
- endif
-
- rem Delete memblocks
- if MEMBLOCK EXIST(MemblockNumber)=1 then DELETE MEMBLOCK MemblockNumber
- if MEMBLOCK EXIST(MemblockTo)=1 then DELETE MEMBLOCK MemblockTo
-
- rem Update screen
- sync
-
- rem End loop
- loop
-