@Green Gandalf
Your very welcome.
Maybe it's better to just make a binairy file.
Like this.
The function MakeInt16() is made thanks to WLGfx.
remstart
Dit kleine programma maakt een binaire file aan met de
volgende gegevens :
1> Players x,y,z coords.
2> Bots x,y,z coords.
3> Lengte van de muziek string.
4> De muziek string.
Dit is voor nu even het formaat van de .DAT file in de
MAPS directory.
Later wordt dit verder uitgebreid met andere entities.
remend
fnr = 1 ` File nummer.
n$ = "test.dat" ` File naam.
`---------------------------------------------------------------------
` De data welke moet worden weggeschreven.
px = 5394 ` Player coords.
py = 100
pz = -148
bx = 5300 ` BOT coords.
by = 20
bz = -200
m$ = "Feel So Different.mp3" ` De muziek voor deze level.
`---------------------------------------------------------------------
open to write fnr,n$
if file open(fnr)=1
write word fnr,px ` De players x,y,z coords.
write word fnr,py
write word fnr,pz
write word fnr,bx ` De BOT x,y,z coords.
write word fnr,by
write word fnr,bz
write byte fnr,len(m$) ` De lengte van de string ( max 255 ).
for t=1 to len(m$) ` De ASCII string letter voor letter.
c =asc( mid$(m$,t) )
write byte fnr,c
next t
endif
close file fnr
`---------------------------------------------------------------------
print "file is aangemaakt."
wait key
`---------------------------------------------------------------------
open to read fnr,n$
if file open(fnr)=1
read word fnr,px ` Lees de x,y,z van de player in.
read word fnr,py
read word fnr,pz
read word fnr,bx ` Lees de x,y,z van de bot in.
read word fnr,by
read word fnr,bz
read byte fnr,ls ` Lengte string.
m$="" ` m$ schoonmaken.
for t=1 to ls ` Lees de string letter voor letter uit de file.
read byte fnr,c
m$=m$+chr$(c)
next t
endif
close file fnr
`---------------------------------------------------------------------
print MakeInt16(px) ` Zet de word's om naar integer.
print MakeInt16(py) ` Zo kloppen de coord's zowel positieve als negatieve
print MakeInt16(pz) ` getallen.
print MakeInt16(bx)
print MakeInt16(by)
print MakeInt16(bz)
print m$
do
loop
end
remstart
De onderstaande function maakt van een 16 bit WORD een 32 bit INTEGER.
Dit levert de juiste negatieve nummers op zoals -512.
Normaal kan dit niet met een WORD deze werkt alleen met positieve waarden
als 500.
Deze function is mede tot stand gekomen dankzij WLGfx bij de TGC forum.
remend
function MakeInt16( inword as word )
local outint as integer
if (inword and 0x8000) `Als <> 0
outint = inword or 0xffff0000
else
outint = inword `Als = 0
endif
endfunction outint
Sorry for the dutch commands.
Use google to translate.
Hoop this helps.
Any questions are welcome.
Cheers Ron.
Programming is learning