mikäs koodissani mättää?, aina kun tankin panos osuu seinään tai, pillbox:in panos tankkiin niin tulee mav.
Code: Select all
aloitus:
SCREEN 730,500
alku=LoadImage("media\tankwar2.jpg")
aloitus = Timer()
Repeat
DrawImage alku,0,0
If edistys < 100 Then edistys = (Timer()-aloitus) / 100
Color 255, 255, 255
ProgressBar(150, 400, 50, edistys)
If edistys=100 Then
Goto peli
EndIf
DrawScreen
Forever
peli:
Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
Field obj 'yksi kenttä nimeltään 'obj'
End Type
Type AMMUS2 'luo kokoelma, jonka nimi on AMMUS
Field obj2 'yksi kenttä nimeltään 'obj2'
End Type
Type vAMMUS 'luo kokoelma, jonka nimi on AMMUS
Field vobj 'yksi kenttä nimeltään 'vobj'
End Type
Type particles
Field x
Field y
Field vr
Field vg
Field vb
Field xd
Field yd
EndType
FrameLimit 20
DrawToWorld ON
SCREEN 1024,768,cbfullscreen
SetWindow "TANK WAR 2"
kartta = LoadMap("Media\tankkimap1.til","Media\testi3.png")
PlayObject kartta,0,0,1
alaosa = LoadObject("Media\tankkiala3.png", 72)
yläosa = LoadObject("Media\tankkiyla3.png", 72)
ObjectRange yläosa,25
pati=LoadObject("Media\bullet.bmp")
pati2=LoadObject("Media\bullet2.bmp")
ohjus=LoadObject("media\bigbullet.bmp",360)
konari = LoadSound ("Media\konari.wav")
tykki= LoadSound ("media\boom 1.wav")
pbox1 = LoadObject("media\pillbox.bmp",72)
hppalkki=LoadImage("Media/life.jpg")
ObjectRange pbox1,25
ShowObject ohjus,OFF
ShowObject pati,OFF
ShowObject pati2,OFF
//Ladataan tähtäin...
tähtäin=LoadObject("media\target.bmp")
kulma# = 0.0
tankkie=200
pbox1e=100
SetupCollision alaosa,kartta,1, 4, 2
PositionObject pbox1,250,-220
PositionObject alaosa,0,300
RotateObject pbox1,180
Repeat
PositionObject tähtäin,MouseWX(),MouseWY()
ShowMouse OFF
MoveObject alaosa, (KeyDown(208)-KeyDown(200))*2
TurnObject alaosa, (KeyDown(203)-KeyDown(205))*2
If KeyDown(cbkeya) Then TurnObject yläosa,5
kulma = WrapAngle( kulma + (KeyDown(30)-KeyDown(32)*2) )
'Ammu-systeemi. Vain, jos ase on ladattu
If MouseDown(1) And reload=0 Then
PlaySound konari,50
luoti.AMMUS = New(AMMUS) 'luo uusi ammus
luoti\obj=CloneObject(pati) 'tee klooni
'asetetaan pati samaan paikkaan
CloneObjectPosition luoti\obj,yläosa
'käännetään pati samaan suuntaan
CloneObjectOrientation luoti\obj,yläosa
reload=5 'aseen lataus
MoveObject luoti\obj,10, 0
EndIf
'päivitä aseen lataaminen
If reload>0 Then reload=reload-1
'Päivitä kaikki ammukset
For luoti.AMMUS = Each AMMUS
MoveObject luoti\obj,6
If GetMap(2,ObjectX(luoti\obj),ObjectY(luoti\obj)) Then'jos luoti on päällekkäin ukon kanssa tai kartan kanssa...
DeleteObject luoti\obj 'poista objekti
Delete luoti 'poista luoti kokonaan
EndIf
'Ammu-systeemi. Vain, jos ase on ladattu
If MouseDown(2) And reload2=0 Then
PlaySound tykki,50
luoti2.AMMUS2 = New(AMMUS2) 'luo uusi ammus
luoti2\obj2=CloneObject(ohjus) 'tee klooni
'asetetaan pati samaan paikkaan
CloneObjectPosition luoti2\obj2,yläosa
'käännetään pati samaan suuntaan
CloneObjectOrientation luoti2\obj2,yläosa
reload2=50 'aseen lataus
MoveObject luoti2\obj2,10, 0
EndIf
'päivitä aseen lataaminen
If reload2>0 Then reload2=reload2-1
'Päivitä kaikki ammukset
For luoti2.AMMUS2 = Each AMMUS2
MoveObject luoti2\obj2,10
If GetMap(2,ObjectX(luoti2\obj2),ObjectY(luoti2\obj2)) Then'jos luoti on päällekkäin ukon kanssa tai kartan kanssa...
DeleteObject luoti2\obj2 'poista objekti
Delete luoti2 'poista luoti kokonaan
EndIf
Next luoti2
//pillboxin ammustsydeemi
If ObjectSight(yläosa,pbox1)Then
PointObject pbox1,yläosa
EndIf
If ObjectSight(yläosa,pbox1) And vreload=0 Then
vluoti.vAMMUS = New(vAMMUS) 'luo uusi ammus
vluoti\vobj=CloneObject(pati2) 'tee klooni
'asetetaan pati samaan paikkaan
CloneObjectPosition vluoti\vobj,pbox1
'käännetään pati samaan suuntaan
CloneObjectOrientation vluoti\vobj,pbox1
vreload=40 'aseen lataus
MoveObject vluoti\vobj,10, 0
EndIf
'päivitä aseen lataaminen
If vreload>0 Then vreload=vreload-1
'Päivitä v kaikki ammukset
For vluoti.vAMMUS = Each vAMMUS
MoveObject vluoti\vobj,6
If GetMap(2,ObjectX(vluoti\vobj),ObjectY(vluoti\vobj)) Then'jos luoti on päällekkäin ukon kanssa tai kartan kanssa...
DeleteObject vluoti\vobj 'poista objekti
Delete vluoti 'poista luoti kokonaan
EndIf
Next vluoti
If ObjectsOverlap(luoti\obj,pbox1) Then
DeleteObject luoti\obj
Delete luoti
EndIf
Next luoti
DrawImageBox hppalkki,40,40,0,0,tankkie*2,26
CloneObjectPosition yläosa, alaosa
CloneObjectOrientation yläosa, alaosa
PointObject yläosa,tähtäin
TurnObject yläosa, kulma
DrawGame
Text 10,10,FPS() 'print the current FPS
Text 10,25,"pillboxin hp:"+pbox1e
CloneCameraPosition alaosa
DrawScreen
Forever
// CoolBasic Software Development Kit
// FILE: cbFormElements.cb
// VERSION: revision 8
// CONTENTS: Windows Form Elements Function Library for CoolBasic
// Last Updated: 16.10.2006
Dim checked_radio(100)
Dim disabled_radio(100)
Function CmdButton(txt$,x,y,w=0,h=0) 'by alodnal
If w = 0 Then w = TextWidth(txt$)
If h = 0 Then h = TextHeight(txt$)
old_r = getRGB(RED)
old_g = getRGB(GREEN)
old_b = getRGB(BLUE)
If MouseX() >= x And MouseX() <= x+w And MouseY() >= y And MouseY() <= y+h Then
Color 255,255,255
Line x-1,y-1,x+w,y-1
Line x-1,y,x-1,y+h
Color 128,128,128
Line x,y+h,x+w,y+h
Line x+w,y,x+w,y+h-1
Color 64,64,64
Line x+w+1,y-1,x+w+1,y+h
Line x-1,y+h+1,x+w+1,y+h+1
Color 212,208,200
Box x,y,w,h
Color 0,0,0
Text x+(w/2)-(TextWidth(txt)/2)-1,y+(h/2)-(TextHeight(txt)/2),txt
is_clicked = False
If MouseDown(1) Then
Color 212,208,200
Box x,y,w+1,h+1
Color 64,64,64
Line x-1,y-1,x+w,y-1
Line x-1,y,x-1,y+h
Color 128,128,128
Line x,y,x+w-1,y
Line x,y+1,x,y+h-1
Color 255,255,255
Line x+w+1,y-1,x+w+1,y+h
Line x-1,y+h+1,x+w+1,y+h+1
Color 0,0,0
Text x+(w/2)-(TextWidth(txt)/2),y+(h/2)-(TextHeight(txt)/2)+1,txt
is_clicked = False
ElseIf MouseUp(1) Then
is_clicked = True
EndIf
Else
Color 255,255,255
Line x-1,y-1,x+w,y-1
Line x-1,y,x-1,y+h
Color 128,128,128
Line x,y+h,x+w,y+h
Line x+w,y,x+w,y+h-1
Color 64,64,64
Line x+w+1,y-1,x+w+1,y+h
Line x-1,y+h+1,x+w+1,y+h+1
Color 212,208,200
Box x,y,w,h
Color 0,0,0
Text x+(w/2)-(TextWidth(txt)/2)-1,y+(h/2)-(TextHeight(txt)/2),txt
is_clicked = False
EndIf
Color old_r,old_g,old_b
Return is_clicked
End Function
Function ImageButton(img,x,y,w=0,h=0) 'by alodnal
If w = 0 Then w = ImageWidth(img)
If h = 0 Then h = ImageHeight(img)
old_r = getRGB(RED)
old_g = getRGB(GREEN)
old_b = getRGB(BLUE)
Color 212,208,200
Box x,y,w,h
If MouseX() >= x And MouseX() <= x+w And MouseY() >= y And MouseY() <= y+h Then
If MouseDown(1) Then
Color 128,128,128
Line x-1,y-1,x+w-1,y-1
Line x-1,y,x-1,y+h-1
Color 255,255,255
Line x-1,y+w,x+w,y+h
Line x+w,y-1,x+w,y+h-1
DrawImage img,x+(w/2)-(ImageWidth(img)/2),y+(h/2)-(ImageHeight(img)/2)
is_clicked = False
ElseIf MouseUp(1) Then
DrawImage img,x+(w/2)-(ImageWidth(img)/2)-1,y+(h/2)-(ImageHeight(img)/2)
is_clicked = True
Else
Color 255,255,255
Line x-1,y-1,x+w-1,y-1
Line x-1,y,x-1,y+h-1
Color 128,128,128
Line x-1,y+w,x+w,y+h
Line x+w,y-1,x+w,y+h-1
DrawImage img,x+(w/2)-(ImageWidth(img)/2)-1,y+(h/2)-(ImageHeight(img)/2)
is_clicked = False
EndIf
Else
DrawImage img,x+(w/2)-(ImageWidth(img)/2)-1,y+(h/2)-(ImageHeight(img)/2)
is_clicked = False
EndIf
Color old_r,old_g,old_b
Return is_clicked
End Function
Function Inputfield(key,x,y,w,h,returns$,passchar$="") 'by alodnal
old_r = getRGB(RED)
old_g = getRGB(GREEN)
old_b = getRGB(BLUE)
If w < TextWidth("A") Then w = TextWidth("A")
If h < TextHeight("A") Then h = TextHeight("A")
If Len(returns) < 3 Then
is_activated$ = "0"
keytime$ = "00"
blink$ = "00"
stri$ = ""
Else
is_activated$ = Left(returns,1)
keytime$ = Mid(returns,2,2)
blink$ = Mid(returns,4,2)
stri$ = Mid(returns,6,Len(returns)-5)
EndIf
If MouseX() >= x And MouseX() <= x+w And MouseY() >= y And MouseY() <= y+h Then
If MouseHit(1) Then is_activated = "1": blink = "0"
Else
If MouseHit(1) Then is_activated = "0"
EndIf
If is_activated = "1" Then
blink = Int(blink) + 1
For a = 32 To 126
If key = a Or key = 145 Then
stri = StrInsert(stri,Len(stri)+1,Chr(key))
blink = "0"
EndIf
Next a
For b = 160 To 255
If key = 146 Or key = b Then
stri = StrInsert(stri,Len(stri)+1,Chr(key))
blink = "0"
EndIf
Next b
If Len(stri) > 0 Then
If KeyHit(14) Then
stri = StrRemove(stri,Len(stri),1)
blink = "0"
ElseIf KeyDown(14) Then
If Int(keytime) < 20 Then keytime = Int(keytime) + 1
If Int(keytime) >= 20 Then stri = StrRemove(stri,Len(stri),1)
blink = "0"
Else
keytime = "00"
EndIf
EndIf
EndIf
Color 64,64,64
Line x-1,y-1,x+w-1,y-1
Line x-1,y,x-1,y+h-1
Color 212,208,200
Line x-1,y+h,x+w,y+h
Line x+w,y-1,x+w,y+h-1
Color 128,128,128
Line x-2,y-2,x+w,y-2
Line x-2,y-1,x-2,y+h
Color 255,255,255
Line x-2,y+h+1,x+w+1,y+h+1
Line x+w+1,y-2,x+w+1,y+h
Box x,y,w,h
Color 0,0,0
letter_amount = RoundDown(w / TextWidth("A")) - 1
If passchar$ = "" Then
Text x+1,y+(h/2)-(TextHeight("A")/2),Right(stri,letter_amount)
Else
char_amount = Min( Len(stri), letter_amount )
Text x+1,y+(h/2)-(TextHeight("A")/2),String(passchar$,char_amount)
EndIf
If is_activated = "1" Then
If Int(blink) < 21 Then
Line x+TextWidth(Right(stri,letter_amount))+2,y+(h/2)-(TextHeight(stri)/2),x+TextWidth(Right(stri,letter_amount))+2,y+(h/2)+(TextHeight(stri)/2)
ElseIf Int(blink) > 39 Then
blink = "0"
EndIf
EndIf
If Len(keytime) < 2 Then keytime = "0" + keytime
If Len(blink) < 2 Then blink = "0" + blink
Return is_activated + keytime + blink + stri
Color old_r,old_g,old_b
End Function
Function GetText(returns$)
Return Mid(returns,6,Len(returns)-5)
End Function
Function SetText(txt$)
Return "00000" + txt$
End Function
Function Checkbox(txt$,x,y,checked) 'by alodnal
old_r = getRGB(RED)
old_g = getRGB(GREEN)
old_b = getRGB(BLUE)
is_checked = checked
Color 64,64,64
Line x-1,y-1,x+8,y-1
Line x-1,y,x-1,y+8
Color 212,208,200
Line x-1,y+9,x+9,y+9
Line x+9,y-1,x+9,y+8
Color 128,128,128
Line x-2,y-2,x+9,y-2
Line x-2,y-1,x-2,y+9
Color 255,255,255
Line x-2,y+10,x+10,y+10
Line x+10,y-2,x+10,y+9
If MouseX() >= x and MouseX() <= x+9 And MouseY() >= y And MouseY() <= y+9 And MouseDown(1) Then
Color 212,208,200
Box x,y,9,9
ElseIf MouseX() >= x And MouseX() <= x+9 And MouseY() >= y And MouseY() <= y+9 And MouseUp(1) Then
Color 255,255,255
Box x,y,9,9
If is_checked Then
is_checked = False
Else
is_checked = True
EndIf
Else
Color 255,255,255
Box x,y,9,9
EndIf
Color 0,0,0
Text x+11+5,y+(9/2)-(TextHeight(txt)/2),txt
If is_checked Then
Line x+1,y+5,x+3,y+7
Line x+1,y+4,x+3,y+6
Line x+1,y+3,x+3,y+5
Line x+4,y+4,x+7,y+1
Line x+4,y+5,x+7,y+2
Line x+4,y+6,x+7,y+3
EndIf
Color old_r,old_g,old_b
Return is_checked
End Function
Function Radiobutton(stri$,x,y,group,id) 'by cb Programmer
// Onko tämä nappi valittu
If checked_radio(group)=id Then is_checked = True
// Onko nappi disabled, jos ei niin:
If disabled_radio(group)=False Then
If MouseX() >= x and MouseX() <= x+13 And MouseY() >= y And MouseY() <= y+13 And MouseDown(1) Then
Color 128,128,128
Circle x,y,12,0
Color 0,0,0
Circle x+1,y+1,10,0
Color 255,255,255
Line x+10,y+2,x+10,y+3
Line x+11,y+4,x+11,y+7
Line x+10,y+8,x+10,y+9
Line x+8,y+10,x+9,y+10
Line x+4,y+11,x+7,y+11
Line x+2,y+10,x+3,y+10
Color 212,208,200
Circle x+2,y+2,8,1
Color 222,222,222
Line x+10,y+4,x+10,y+7
Line x+9,y+8,x+9,y+9
Line x+8,y+9,x+9,y+9
Line x+4,y+10,x+7,y+10
Line x+2,y+9,x+3,y+9
Line x+2,y+8,x+2,y+9
ElseIf MouseX() >= x And MouseX() <= x+13 And MouseY() >= y And MouseY() <= y+13 And MouseUp(1) Then
Color 128,128,128
Circle x,y,12,0
Color 0,0,0
Circle x+1,y+1,10,0
Color 255,255,255
Line x+10,y+2,x+10,y+3
Line x+11,y+4,x+11,y+7
Line x+10,y+8,x+10,y+9
Line x+8,y+10,x+9,y+10
Line x+4,y+11,x+7,y+11
Line x+2,y+10,x+3,y+10
Circle x+2,y+2,8,1
Color 222,222,222
Line x+10,y+4,x+10,y+7
Line x+9,y+8,x+9,y+9
Line x+8,y+9,x+9,y+9
Line x+4,y+10,x+7,y+10
Line x+2,y+9,x+3,y+9
Line x+2,y+8,x+2,y+9
If is_checked = False Then
is_checked = True
checked_radio(group)=id
Else
is_checked = False
EndIf
Else
Color 128,128,128
Circle x,y,12,0
Color 0,0,0
Circle x+1,y+1,10,0
Color 255,255,255
Line x+10,y+2,x+10,y+3
Line x+11,y+4,x+11,y+7
Line x+10,y+8,x+10,y+9
Line x+8,y+10,x+9,y+10
Line x+4,y+11,x+7,y+11
Line x+2,y+10,x+3,y+10
Circle x+2,y+2,8,1
Color 222,222,222
Line x+10,y+4,x+10,y+7
Line x+9,y+8,x+9,y+9
Line x+8,y+9,x+9,y+9
Line x+4,y+10,x+7,y+10
Line x+2,y+9,x+3,y+9
Line x+2,y+8,x+2,y+9
EndIf
Color 0,0,0
Text x+13,y,stri$
If is_checked = True Then
Color 0,0,0
Circle x+4,y+4,4,1
Return True
Else
Return False
EndIf
// Jos disabled = true
Else
Color 173,173,156
Circle x,y,12,0
Color 119,107,99
Circle x+1,y+1,10,0
Color 255,255,255
Line x+10,y+2,x+10,y+3
Line x+11,y+4,x+11,y+7
Color 231,255,255
Line x+10,y+8,x+10,y+9
Line x+8,y+10,x+9,y+10
Line x+4,y+11,x+7,y+11
Line x+2,y+10,x+3,y+10
Color 239,239,222
Circle x+2,y+2,8,1
Color 222,222,222
Line x+10,y+4,x+10,y+7
Line x+9,y+8,x+9,y+9
Line x+8,y+9,x+9,y+9
Line x+4,y+10,x+7,y+10
Line x+2,y+9,x+3,y+9
Line x+2,y+8,x+2,y+9
Color 173,173,156
Text x+13,y,stri$
EndIf
End Function
Function DisableRadioGroup(group, state=1)
disabled_radio(group) = state
End Function
Function CheckRadioButton(group,id)
checked_radio(group) = id
End Function
Function ProgressBar(x, y, bars, value) 'by Bagard
value = Max(Min(value, 100), 0)
tot_length = bars * 8 + 1
// Tausta
Color 212, 208, 200
Box x+1, y+1, tot_length-1, 11
// Tummat viivat
Color 128, 128, 128
Line x, y, x+tot_length, y
Line x, y+1, x, y+11
// Valkoiset viivat
Color 255, 255, 255
Line x, y+12, x+tot_length, y+12
Line x+tot_length, y, x+tot_length, y+11
// Palkit
Color 10, 36, 106
For i = 0 To RoundDown(bars * (value/100.0))-1
Box x+2+(i*8), y+2, 6, 9
Next i
End Function
// LIST BOX
Const ListsNoMax = 100 'Korkeintaan N listaa
Const ListItemsNoMax = 1000 'Korkeintaan N valintaa per lista
Dim ListItems(ListsNoMax,ListItemsNoMax) As String
Dim ListItemsNo(ListsNoMax)
Dim ListSelection(ListsNoMax)
Dim ListScroll(ListsNoMax)
Dim ListActive(ListsNoMax) As Byte
Dim ListSelectChanged(ListsNoMax) As Byte
Function List(id, x,y, w,h, Scrollbar=1, keySelection=1)
old_r = getRGB(RED)
old_g = getRGB(GREEN)
old_b = getRGB(BLUE)
If w < TextWidth("A") Then w = TextWidth("A")
If h < TextHeight("A") Then h = TextHeight("A")
Color 64,64,64
Line x-1,y-1,x+w-1,y-1
Line x-1,y,x-1,y+h-1
Color 212,208,200
Line x-1,y+h,x+w,y+h
Line x+w,y-1,x+w,y+h-1
Color 128,128,128
Line x-2,y-2,x+w,y-2
Line x-2,y-1,x-2,y+h
Color 255,255,255
Line x-2,y+h+1,x+w+1,y+h+1
Line x+w+1,y-2,x+w+1,y+h
Box x,y,w,h
If MouseDown(1) Then
If MouseX()=>x And MouseX()<=x+w And MouseY()=>y And MouseY()<=y+h Then
If ListActive(id)=False And keySelection Then a=mousemovez() 'pyyhkii hiiren rullan tiedot pois, jottei aktivointi saa listaa rullaamaan hassusti mousemovez
ListActive(id)=True
If MouseHit(1) Then
If Scrollbar=False Or MouseX()<x+w-15 Then
item = (MouseY()-y)/TextHeight("A")+ListScroll(id)
SelectListItem(id,item)
ListSelectChanged(id)=True
End If
End If
Else
ListActive(id)=False
End If
End If
If keySelection And ListActive(id) Then
If KeyHit(cbkeyup) Then ListSelection(id)=Max(ListSelection(id)-1,1):ListSelectChanged(id)=True
If KeyHit(cbkeydown) Then ListSelection(id)=Min(ListSelection(id)+1,ListItemsNo(id)):ListSelectChanged(id)=True
ListScroll(id)=ListScroll(id)-MouseMoveZ()
ListScroll(id) = Max(Min(ListScroll(id),ListItemsNo(id)-h/TextHeight("A")+1),1)
End If
ListSelection(id) = Min(Max(ListSelection(id),0),ListItemsNo(id))
If ListSelection(id)=>ListScroll(id) And ListSelection(id)<ListScroll(id)+h/TextHeight("A") Then
Color cbdarkblue
yy = y+ (ListSelection(id)-ListScroll(id))*TextHeight("A")
Box x+1,yy, w-2, TextHeight("A")
End If
If ListItemsNo(id)>h/TextHeight("A") And Scrollbar Then
If ListActive(id) And MouseDown(1) And MouseX()=>x+w-15 Then
Pros# = ((MouseY()-y)*1.0)/h
ListScroll(id) = Pros *(ListItemsNo(id)-h/TextHeight("A"))+1
ListScroll(id) = Max(Min(ListScroll(id),ListItemsNo(id)-h/TextHeight("A")+1),1)
End If
Color 64,64,64
Box x+w-15,y,15,h, OFF
Color 212,208,200
Box x+w-14,y+1,13,h-2,OFF
Color 212,208,200
Box x+w-13,y+2,11,h-4
Color cbdark
Pros# = (ListScroll(id)-1.0)/(ListItemsNo(id)-h/TextHeight("A"))
yy = y + (h-15)*Pros
Box x+w-15,yy,15,TextHeight("A")
End If
ListScroll(id)=Max(Min(ListScroll(id),ListItemsNo(id)-h/TextHeight("A")+1),1)
Color 0,0,0
MinItem=max(ListScroll(id),1)
MaxItem=min(ListScroll(id)+h/TextHeight("A")-1,ListItemsNo(id))
For i = MinItem To MaxItem
yy=y+TextHeight("A")*(i-ListScroll(id))
Text x+2,yy, ListItems(id,i)
Next i
Color old_r,old_g,old_b
End Function
Function SelectListItem(id,item)
ListSelection(id)=item
End Function
Function SelectListItemString(id,item$)
For i = 1 To ListItemsNo(id)
If ListItems(id,i)=item Then
ListSelection(id)=i
Return True
End If
Next i
Return False
End Function
Function AddListItem(id, item$, selection=0)
If ListItemsNo(id)=ListItemsNoMax Then Return False
ListItemsNo(id)=ListItemsNo(id)+1
ListItems(id,ListItemsNo(id))=item
If selection Then
ListSelection(id)=ListItemsNo(id) : ListSelectChanged(id)=True
ListScroll(id) = Max(ListScroll(id),ListSelection(id))
End If
Return ListItemsNo(id)
End Function
Function DeleteListItem(id, item)
If item=0 Then Return False
For i = item To ListItemsNo(id)
If i<ListItemsNo(id) Then ListItems(id,i)=ListItems(id,i+1) Else ListItems(id,i)=""
Next i
ListItemsNo(id) = ListItemsNo(id)-1
End Function
Function DeleteListItemString(id, itemString$)
For i = 1 To ListItemsNo(id)
If ListItems(id,i)=itemString Then
item=i
Exit
End If
Next i
If item=0 Then Return False
For i = item To ListItemsNo(id)
If i<ListItemsNo(id) Then ListItems(id,i)=ListItems(id,i+1) Else ListItems(id,i)=""
Next i
ListItemsNo(id) = ListItemsNo(id)-1
Return True
End Function
Function FormatList(id)
For i = 1 To ListItemsNo(id)
ListItems(id,i)=""
Next i
ListItemsNo(id)=0
ListSelectionChanged(id)=False
ListSelection(id)=0
End Function
Function ChangeListItem(id,item,NewItem$)
ListItems(id,item) = NewItem
End Function
Function ChangeListItemString(id,item$,NewItem$)
For i = 1 To ListItemsNo(id)
If ListItems(id,i)=item Then
ListItems(id,i) = NewItem
Return True
End If
Next i
Return False
End Function
Function GetListSelection(id)
Return ListItems(id,ListSelection(id))
End Function
Function ListSelectionChanged(id)
If ListSelectChanged(id) Then
ListSelectChanged(id)=False
Return True
Else
Return False
End If
End Function
Function SortList(id,sortType=0)
//sortType: 0: Nouseva aakkosjärjestys; 1: Laskeva aakkosjärjestys
For i = 1 To ListItemsNo(id)
iItem$ = ListItems(id,i)
For j = i+1 To ListItemsNo(id)
jItem$ = ListItems(id,j)
If jItem<iItem And sortType=0 Then
ListItems(id,i)=jItem
ListItems(id,j)=iItem
iItem=jItem
ElseIf jItem>iItem And sortType=1 Then
ListItems(id,i)=jItem
ListItems(id,j)=iItem
iItem=jItem
End If
Next j
Next i
End Function