Jump to content

Pacman Progress Bar


Go to solution Solved by UEZ,

Recommended Posts

I am pretty new to Autoit, and I am trying to make a pacman eat the progress bar as it goes along...I have the basic logic down, but I need help with details.  My biggest problem is always having the image on top of the progress bar. Is this possible?

Here is what I have so far.

#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("Form1", 616, 439, 192, 124)

$Progress1 = GUICtrlCreateProgress(88, 232, 454, 17)
$Pic1 = GUICtrlCreatePic("C:Usersz19jmdDesktopimages.jpg", 88, 188, 100, 100, BitOR($WS_EX_TOPMOST,$WS_EX_TOOLWINDOW))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    for $i =0 to 100
        GUICtrlSetData($Progress1,$i)
        GUICtrlSetPos($Pic1,88+$i,188,100,100)
        sleep(1000)
        Next
WEnd
 

 

Thanks!

Link to comment
Share on other sites

it works fine for me. but you can try to disable the progressbar:

.

#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("Form1", 616, 439, 192, 124)

$Progress1 = GUICtrlCreateProgress(88, 232, 454, 17)
GUICtrlSetState(-1,128) ; sgui_disable  <-----------------
$Pic1 = GUICtrlCreatePic("C:\Users\z19jmd\Desktop\images.jpg", 88, 188, 100, 100, BitOR($WS_EX_TOPMOST,$WS_EX_TOOLWINDOW))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    for $i =0 to 100
        GUICtrlSetData($Progress1,$i)
        GUICtrlSetPos($Pic1,88+$i,188,100,100)
        sleep(1000)
        Next
WEnd

.

please use AutoIt tags for codes :)

E.

Edited by Edano

[color=rgb(255,0,0);][font="'comic sans ms', cursive;"]FukuLeaks[/color][/font]

Link to comment
Share on other sites

  • Solution

Do you mean something like this here?

 

;coded by UEZ 2013
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WinAPI.au3>

_GDIPlus_Startup()
$hGUI = GUICreate("Pac-Man Progressbar Beta by UEZ 2013", 640, 200)
GUISetBkColor(0x101040)
$iPB = GUICtrlCreatePic("", 160, 83, 420, 35, $SS_SUNKEN)
$iBtnStart = GUICtrlCreateButton("Start", 40, 80, 40, 40)
$iLabelPerc = GUICtrlCreateLabel("0.00%", 95, 90, 50, 40)
GUICtrlSetFont(-1, 10)
GUICtrlSetColor(-1, 0xF0F0F0)
_GDIPlus_PacmanProgressbar(0, $iPB)
GUISetState()

Do
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            GUIDelete()
            _GDIPlus_Shutdown()
            Exit
        Case $iBtnStart
            $iMax = 133
            For $i = 0 To $iMax
                $fProg = $i / $iMax * 100
                _GDIPlus_PacmanProgressbar($fProg, $iPB)
                GUICtrlSetData($iLabelPerc, StringFormat("%.2f%", $fProg))
                Sleep(30)
            Next
            MsgBox(0, "Test", "Done", 30, $hGUI)
            _GDIPlus_PacmanProgressbar(0, $iPB)
            GUICtrlSetData($iLabelPerc, StringFormat("%.2f%", 0))
    EndSwitch
Until False

; #FUNCTION# ====================================================================================================================
; Name ..........: _GDIPlus_PacmanProgressbar
; Description ...: An alternativ progressbar
; Syntax ........: _GDIPlus_PacmanProgressbar($iProgress, $iCtrl[, $iScalar = 15[, $iPacManSize = 0[, $iDotSize = 0[,
;                  $iPacManColor = 0xFFFFFF00[, $iDotColor = 0xFFFFFFFF[, $iFinishColor = 0xFF00FF00[, $iBGColor = 0xFF404040[,
;                  $iPacManSpeed = 125]]]]]]]])
; Parameters ....: $iProgress           - An integer value between 0 and 100.
;                  $iCtrl               - An integer value (control id).
;                  $iPacManColor        - [optional] An integer value. Default is 0xFFFFFF00.
;                  $iScalar             - [optional] An integer value. Default is 15.
;                  $iPacManSize         - [optional] An integer value. Default is 0 = automatically calculated.
;                  $iDotSize            - [optional] An integer value. Default is 0 = automatically calculated.
;                  $iDotColor           - [optional] An integer value. Default is 0xFFFFFFFF.
;                  $iFinishColor        - [optional] An integer value. Default is 0xFF00FF00.
;                  $iBGColor            - [optional] An integer value. Default is 0xFF404040.
;                  $iPacManSpeed        - [optional] An integer value. Default is 125 (the higher the value the slower the pac-man).
; Return values .: None
; Author ........: UEZ
; Version .......: 0.90 build 2013-07-28 beta
; Modified ......:
; Remarks .......: need GDIPlus.au3
; Related .......: GDI+, GUI
; ===============================================================================================================================
Func _GDIPlus_PacmanProgressbar($iProgress, $iCtrl, $iPacManColor = 0xFFFFFF00, $iScalar = 15, $iPacManSize = 0, $iDotSize = 0, $iDotColor = 0xFFFFFFFF, $iFinishColor = 0xFF00FF00, $iBGColor = 0xFF404040, $iPacManSpeed = 125) ; coded by UEZ build 2013-07-28 beta
    Local $hGUI, $hCtrl, $aResult, $hBitmap, $hGfxCtxt, $aCtrlSize, $hB, $hGDIBmp, $hBrush, $i, $fSpace, $iX, $fDX, $iC = 0, $iProgressMax = 100
    Local Static $iFrame = 0, $iTimer = TimerInit()
    $hCtrl = GUICtrlGetHandle($iCtrl)
    $hGUI = _WinAPI_GetAncestor($hCtrl)
    If @error Then Return SetError(1, 0, -1)
    $aCtrlSize = ControlGetPos($hGUI, "", $iCtrl)
    If @error Then Return SetError(2, 0, -2)
    ;$GWL_STYLE = 0xFFFFFFF0, $GWL_EXSTYLE = 0xFFFFFFEC
    If BitAND(_WinAPI_GetWindowLong($hCtrl, 0xFFFFFFF0), 0x1000) = 0x1000  Or _  ;$SS_SUNKEN
       BitAND(_WinAPI_GetWindowLong($hCtrl, 0xFFFFFFEC), 0x00020000) = 0x00020000 Then $iC += 2 ;$WS_EX_STATICEDGE
    If BitAND(_WinAPI_GetWindowLong($hCtrl, 0xFFFFFFEC), 0x00000200) = 0x00000200 Then $iC += 4 ;$WS_EX_CLIENTEDGE
    If BitAND(_WinAPI_GetWindowLong($hCtrl, 0xFFFFFFF0), 0x00800000) = 0x00800000 Then $iC += 2 ;$WS_BORDER
    $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $aCtrlSize[2] - $iC, "int", $aCtrlSize[3] - $iC, "int", 0, "int", $GDIP_PXF32ARGB, "ptr", 0, "int*", 0)
    $hBitmap = $aResult[6]
    $hGfxCtxt = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsClear($hGfxCtxt, $iBGColor)
    _GDIPlus_GraphicsSetSmoothingMode($hGfxCtxt, 2)
    $hBrush = _GDIPlus_BrushCreateSolid($iDotColor)
    If Not $iDotSize Then $iDotSize = ($aCtrlSize[3] - $iC) / 4
    If Not $iPacManSize Then $iPacManSize = $iDotSize * 2
    $fSpace = $aCtrlSize[2] / $iScalar
    $fDX = -3 + (($aCtrlSize[2] - $iC) - ($fSpace * $iScalar - $fSpace + $iDotSize)) / 2
    If $iProgress < $iProgressMax Then
        For $i = Int($iProgress / 100 * $iScalar) To $iScalar - 2
            $iX = $fDX + $fSpace * $i
            DllCall($ghGDIPDll, "int", "GdipFillEllipse", "handle", $hGfxCtxt, "handle", $hBrush, "float", $iX, "float", (($aCtrlSize[3] - $iC) - $iDotSize) / 2, "float", $iDotSize, "float", $iDotSize)
        Next
        _GDIPlus_BrushSetSolidColor($hBrush, $iFinishColor)
        $iX = $fDX + $fSpace * $i - $iDotSize / 2
        DllCall($ghGDIPDll, "int", "GdipFillEllipse", "handle", $hGfxCtxt, "handle", $hBrush, "float", $iX, "float", (($aCtrlSize[3] - $iC) - $iDotSize) / 2.5, "float", $iDotSize * 1.5, "float", $iDotSize * 1.5)

        _GDIPlus_BrushSetSolidColor($hBrush, $iPacManColor)
        $iX = -$fSpace + $fDX + ($iProgress / $iScalar / 100) * $iScalar * ($aCtrlSize[2] - $iC)
        Switch Mod($iFrame, 2)
            Case 0
                DllCall($ghGDIPDll, "int", "GdipFillPie", "handle", $hGfxCtxt, "handle", $hBrush, "float", $iX, "float", (($aCtrlSize[3] - $iC) - $iPacManSize) / 2, "float", $iPacManSize, "float", $iPacManSize, "float", 45, "float", 270)
            Case Else
                DllCall($ghGDIPDll, "int", "GdipFillEllipse", "handle", $hGfxCtxt, "handle", $hBrush, "float", $iX, "float", (($aCtrlSize[3] - $iC) - $iPacManSize) / 2, "float", $iPacManSize, "float", $iPacManSize)
        EndSwitch
        _GDIPlus_BrushSetSolidColor($hBrush, 0xFF000000)
        DllCall($ghGDIPDll, "int", "GdipFillEllipse", "handle", $hGfxCtxt, "handle", $hBrush, "float", $iX + $iDotSize, "float", $iDotSize / 5 + (($aCtrlSize[3] - $iC) - $iDotSize * 2) / 2, "float", $iDotSize / 4, "float", $iDotSize / 4)
        If TimerDiff($iTimer) > $iPacManSpeed Then
            $iFrame += 1
            $iTimer = TimerInit()
        EndIf
    EndIf
    $hGDIBmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
    $hB = GUICtrlSendMsg($iCtrl, 0x0172, 0, $hGDIBmp) ;$STM_SETIMAGE = 0x0172, $IMAGE_BITMAP = 0
    If $hB Then _WinAPI_DeleteObject($hB)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_GraphicsDispose($hGfxCtxt)
    _GDIPlus_BitmapDispose($hBitmap)
    _WinAPI_DeleteObject($hGDIBmp)
EndFunc   ;==>_GDIPlus_PacmanProgressbar
 

It is beta!

 

Br,

UEZ

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

Do you mean something like this here?

 

#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>

_GDIPlus_Startup()
$hGUI = GUICreate("Packman Progressbar by UEZ 2013", 640, 200)
$iPB = GUICtrlCreatePic("", 160, 80, 420, 40, $SS_SUNKEN)
GUISetBkColor(-1, 0)
$iBtnStart = GUICtrlCreateButton("Start", 60, 80, 40, 40)
_GDIPlus_PacmanProgressbar(0, $iPB, $hGUI)
GUISetState()

Do
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            GUIDelete()
            _GDIPlus_Shutdown()
            Exit
        Case $iBtnStart
            For $i = 0 To 100
                _GDIPlus_PacmanProgressbar($i, $iPB, $hGUI)
                Sleep(20)
            Next
            MsgBox(0, "Test", "Done", 30)
            _GDIPlus_PacmanProgressbar(0, $iPB, $hGUI)
    EndSwitch
Until False

Func _GDIPlus_PacmanProgressbar($iProgress, $iCtrl, $hGUI, $iDotSize = 10, $iBGColor = 0xFF404040) ; coded by UEZ build 2013-07-26 beta
    Local $aResult, $hBitmap, $hGfxCtxt, $aCtrlSize, $hB, $hGDIBmp, $hBrush, $i, $iScalar = 10, $j = $iScalar, $iSpace
    Local Static $iFrame = 0
    $aCtrlSize = ControlGetPos($hGUI, "", $iCtrl)
    If @error Then Return SetError(1, 0, -1)
    $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $aCtrlSize[2] - 2, "int", $aCtrlSize[3] - 2, "int", 0, "int", $GDIP_PXF32ARGB, "ptr", 0, "int*", 0)
    $hBitmap = $aResult[6]
    $hGfxCtxt = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsClear($hGfxCtxt, $iBGColor)
    _GDIPlus_GraphicsSetSmoothingMode($hGfxCtxt, 2)
    $hBrush = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
    $iSpace = $aCtrlSize[2] / $iScalar
    If $iProgress < 100 Then
        For $i = ($iProgress / $iScalar) To ($iScalar - 1)
            $j -= 1
            If $j = $iScalar - 1 Then
                _GDIPlus_BrushSetSolidColor($hBrush, 0xFFFF0000)
                _GDIPlus_GraphicsFillEllipse($hGfxCtxt, $iDotSize + $j * $iSpace, ($aCtrlSize[3] - (1.5 * $iDotSize)) / 2, $iDotSize * 1.5, $iDotSize * 1.5, $hBrush)
            Else
                _GDIPlus_BrushSetSolidColor($hBrush, 0xFFFFFFFF)
                _GDIPlus_GraphicsFillEllipse($hGfxCtxt, $iDotSize + $j * $iSpace, ($aCtrlSize[3] - $iDotSize) / 2, $iDotSize, $iDotSize, $hBrush)
            EndIf
        Next
        If $iProgress Then
            _GDIPlus_BrushSetSolidColor($hBrush, 0xFFFFFF00)
            Switch Mod($iFrame, $iScalar)
                Case 0 To $iScalar / 2 - 1
                    _GDIPlus_GraphicsFillPie($hGfxCtxt, -$iDotSize + $iProgress * ($aCtrlSize[2] / $iScalar) / $iScalar, ($aCtrlSize[3] - $iDotSize * 2) / 2, $iDotSize * 2, $iDotSize * 2, 45, 270, $hBrush)
                Case $iScalar / 2 To $iScalar
                    _GDIPlus_GraphicsFillEllipse($hGfxCtxt, -$iDotSize + $iProgress * ($aCtrlSize[2] / $iScalar) / $iScalar, ($aCtrlSize[3] - $iDotSize * 2) / 2, $iDotSize * 2, $iDotSize * 2, $hBrush)
            EndSwitch
            _GDIPlus_GraphicsFillEllipse($hGfxCtxt, $iProgress * ($aCtrlSize[2] / $iScalar) / $iScalar, $iDotSize / 5 + ($aCtrlSize[3] - $iDotSize * 2) / 2, $iDotSize / 4, $iDotSize / 4)
            $iFrame += 1
        EndIf
    EndIf
    $hGDIBmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
    $hB = GUICtrlSendMsg($iCtrl, 0x0172, 0, $hGDIBmp)
    If $hB Then _WinAPI_DeleteObject($hB)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_GraphicsDispose($hGfxCtxt)
    _GDIPlus_BitmapDispose($hBitmap)
    _WinAPI_DeleteObject($hGDIBmp)
EndFunc
 

It is beta!

 

Br,

UEZ

.

Ha the UEZ Luxus Version. i love it.  :thumbsup:

[color=rgb(255,0,0);][font="'comic sans ms', cursive;"]FukuLeaks[/color][/font]

Link to comment
Share on other sites

sorry a bit off topic - but all those nice loading animations (see also >here) get interrupted by the continuing script itself. so it would be recommendable .to start them as an independent child process, but then it needs some interaction between the parent and the child process, maybe via ini file ?

E.

[color=rgb(255,0,0);][font="'comic sans ms', cursive;"]FukuLeaks[/color][/font]

Link to comment
Share on other sites

Edano,
 
I don't understand what you mean with "get interrupted by the continuing script itself"!

To use Adlib is only an example...

 

Br,

UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

Edano,

 

I don't understand what you mean with "get interrupted by the continuing script itself"!

To use Adlib is only an example...

 

Br,

UEZ

.

i often tried to use loading animations when e.g. a listview builds up. all animations stop when the script is too busy, even adlib and .ani files.

E.

 

could be that i take a deeper look into this issue some time.

Edited by Edano

[color=rgb(255,0,0);][font="'comic sans ms', cursive;"]FukuLeaks[/color][/font]

Link to comment
Share on other sites

Do you mean something like this here?

 

#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>

_GDIPlus_Startup()
$hGUI = GUICreate("Packman Progressbar Beta by UEZ 2013", 640, 200)
$iPB = GUICtrlCreatePic("", 160, 80, 420, 40, $SS_SUNKEN)
GUISetBkColor(-1, 0)
$iBtnStart = GUICtrlCreateButton("Start", 40, 80, 40, 40)
$iLabelPerc = GUICtrlCreateLabel("0.00%", 95, 90, 50, 40)
GUICtrlSetFont(-1, 10)
_GDIPlus_PacmanProgressbar(0, $iPB, $hGUI)
GUISetState()

Do
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            GUIDelete()
            _GDIPlus_Shutdown()
            Exit
        Case $iBtnStart
            $iMax = 177
            For $i = 0 To $iMax
                $fProg = $i / $iMax * 100
                _GDIPlus_PacmanProgressbar($fProg, $iPB, $hGUI, $iMax)
                GUICtrlSetData($iLabelPerc, StringFormat("%.2f%", $fProg))
                Sleep(20)
            Next
            MsgBox(0, "Test", "Done", 30)
            _GDIPlus_PacmanProgressbar(0, $iPB, $hGUI)
            GUICtrlSetData($iLabelPerc, StringFormat("%.2f%", 0))
    EndSwitch
Until False

Func _GDIPlus_PacmanProgressbar($iProgress, $iCtrl, $hGUI, $iProgressMax = 100, $iDotSize = 10, $iBGColor = 0xFF404040) ; coded by UEZ build 2013-07-26 beta
    Local $aResult, $hBitmap, $hGfxCtxt, $aCtrlSize, $hB, $hGDIBmp, $hBrush, $i, $iScalar = 10, $j = $iScalar, $iSpace
    Local Static $iFrame = 0
    $aCtrlSize = ControlGetPos($hGUI, "", $iCtrl)
    If @error Then Return SetError(1, 0, -1)
    $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $aCtrlSize[2] - 2, "int", $aCtrlSize[3] - 2, "int", 0, "int", $GDIP_PXF32ARGB, "ptr", 0, "int*", 0)
    $hBitmap = $aResult[6]
    $hGfxCtxt = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsClear($hGfxCtxt, $iBGColor)
    _GDIPlus_GraphicsSetSmoothingMode($hGfxCtxt, 2)
    $hBrush = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
    $iSpace = $aCtrlSize[2] / $iScalar
    If $iProgress < $iProgressMax Then
        For $i = ($iProgress / $iScalar) To ($iScalar - 1)
            $j -= 1
            If $j = $iScalar - 1 Then
                _GDIPlus_BrushSetSolidColor($hBrush, 0xFFFF0000)
                _GDIPlus_GraphicsFillEllipse($hGfxCtxt, $iDotSize + $j * $iSpace, ($aCtrlSize[3] - (1.5 * $iDotSize)) / 2, $iDotSize * 1.5, $iDotSize * 1.5, $hBrush)
            Else
                _GDIPlus_BrushSetSolidColor($hBrush, 0xFFFFFFFF)
                _GDIPlus_GraphicsFillEllipse($hGfxCtxt, $iDotSize + $j * $iSpace, ($aCtrlSize[3] - $iDotSize) / 2, $iDotSize, $iDotSize, $hBrush)
            EndIf
        Next
        If $iProgress And $iProgress < 100 Then
            _GDIPlus_BrushSetSolidColor($hBrush, 0xFFFFFF00)
            Switch Mod($iFrame, $iScalar)
                Case 0 To $iScalar / 2 - 1
                    _GDIPlus_GraphicsFillPie($hGfxCtxt, -$iDotSize + $iProgress * ($aCtrlSize[2] / $iScalar) / $iScalar, ($aCtrlSize[3] - $iDotSize * 2) / 2, $iDotSize * 2, $iDotSize * 2, 45, 270, $hBrush)
                Case $iScalar / 2 To $iScalar
                    _GDIPlus_GraphicsFillEllipse($hGfxCtxt, -$iDotSize + $iProgress * ($aCtrlSize[2] / $iScalar) / $iScalar, ($aCtrlSize[3] - $iDotSize * 2) / 2, $iDotSize * 2, $iDotSize * 2, $hBrush)
            EndSwitch
            _GDIPlus_GraphicsFillEllipse($hGfxCtxt, $iProgress * ($aCtrlSize[2] / $iScalar) / $iScalar, $iDotSize / 5 + ($aCtrlSize[3] - $iDotSize * 2) / 2, $iDotSize / 4, $iDotSize / 4)
            $iFrame += 1
        EndIf
    EndIf
    $hGDIBmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
    $hB = GUICtrlSendMsg($iCtrl, 0x0172, 0, $hGDIBmp)
    If $hB Then _WinAPI_DeleteObject($hB)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_GraphicsDispose($hGfxCtxt)
    _GDIPlus_BitmapDispose($hBitmap)
    _WinAPI_DeleteObject($hGDIBmp)
EndFunc
 

It is beta!

 

Br,

UEZ

 

 

haha i love all the off-topic replies :D   Thank you for this UEZ! This is perfect (hopefully you don't mind if I use a lot of this code)..

Thanks again!

Link to comment
Share on other sites

you are so lucky that UEZ gave you that :sweating: you are privileged.

It's not for him only  - it's for the community.  ;)

@jdicerch: of course you can use it otherwise I wouldn't publish it.

Br,

UEZ

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...