Прикольно!
Мне до такого еще далеко...
Объясните пожалуста, зачем нужна точка в функции CfgLoader_ParseParam.TOneCfgParam(OneLine$)
Т.е. функция пишется специально для этого типа?
И еще, я сейчас пишу загрузчик уровня, прокоментируйте пожалуста какие недостатки и подводные камни могут быть
Function LoadLevel(levelName)
sx#=0.0
sy#=0.0
sz#=0.0
Select levelName
Case levelNameMain
file=OpenFile("main.lev")
End Select
While Not Eof(file)
s$=ReadLine(file)
;ищет объект
If StrLeft(s,"ground")=True Then sEntity=CreateTerrain(256)
If StrLeft(s,"tree")=True Then tree.tree=New tree : tree\entity=LoadMesh("tree.b3d")
;ищет параметр
If StrLeft(s,"x")=True Then MoveEntity sEntity,FloatRight(s),0,0
If StrLeft(s,"y")=True Then MoveEntity sEntity,0,FloatRight(s),0
If StrLeft(s,"z")=True Then MoveEntity sEntity,0,0,FloatRight(s)
Wend
CloseFile file
End Function
Function StrLeft%(Str1$,Str2$)
If Left(Str1,Len(Str2))=Str2 Then Return True
End Function
Function FloatRight#(S$)
s=Trim(s)
ReadThis%=True
res$=""
tmp$=""
For i=0 To Len(S)-1
simbol$=Mid(S,Len(s)-i,1)
If ReadThis=True
If (Asc(simbol)>=48 And Asc(simbol)<=57) Or simbol="." Then
res=simbol+res
Else
ReadThis=False
EndIf
EndIf
Next
Return Float(res)
End Function