Mini-Monster-Mixer
#11
Experiment with these monsters and Mastergy's 3d points program

The 2 attached images are needed:


Code: (Select All)
'Space Monster Ritual - james2464 Nov 18 2022

'Modified 3d points program by Mastergy

'Includes Art and/or Code from Mini-Monster-Mixer v0.2 created by James D. Jarvis

Screen _NewImage(800, 600, 32)

spritesheet = _LoadImage("monsters64.png", 32)
_Delay .5
Dim sprites&(40)
For j = 0 To 39
    sprites&(j) = _NewImage(64, 64, 32)
Next j
ct = 0
Dim c As Long
c = _RGB(0, 0, 0)
For k = 1 To 5
    For j = 1 To 8
        ct = ct + 1
        _PutImage (1, 64)-(64, 1), spritesheet, sprites&(ct), (j * 64 - 63, k * 64 - 63)-(j * 64, k * 64)

        'Cls
        '_PutImage (1, 1), sprites&(ct)
        'Sleep
    Next j
Next k

For j = 0 To 39
    _ClearColor c, sprites&(j)
Next j



'create texture
shadows = 100
Dim texture(shadows - 1)
text_size = 64
'For at = 0 To shadows - 1
'temp = _NewImage(text_size, text_size, 32)
'_Dest temp
'grey = 255 - 252 / (shadows - 1) * at
'Color _RGB(grey, grey, grey)
'Circle (text_size / 2, text_size / 2), text_size * .45
'Paint (text_size / 2, text_size / 2)
'texture(at) = _CopyImage(temp, 33)
'_FreeImage temp
'Next at
For j = 0 To 39
    texture(j) = _CopyImage(sprites&(j), 33)
Next j


texture(0) = _LoadImage("qb64pe-64.png", 33)


'create 3D points in a spherical shape
points_c = 800
space_size = 1000
Dim points(points_c - 1, 2)
For ap = 0 To points_c - 1
    Do
        points(ap, 0) = space_size * Rnd
        points(ap, 1) = space_size * Rnd
        points(ap, 2) = space_size * Rnd
    Loop While Sqr((points(ap, 0) - space_size / 2) ^ 2 + (points(ap, 1) - space_size / 2) ^ 2 + (points(ap, 2) - space_size / 2) ^ 2) > space_size / 2
Next ap

'create spectator
Dim Shared sp(6)
'sp(0) = space_size / 2 'X to center space
'sp(1) = space_size / 2 'Y to center space
'sp(2) = space_size / 2 'Z to center space
sp(0) = 350
sp(1) = 700
sp(2) = 470
sp(3) = -.644 'looking in the direction of the observer XZ
sp(4) = 0 'looking in the direction of the observer YZ
sp(5) = 1 'multiplier X-Y see
sp(6) = 1 'multiplier Z see

'create screen
scr = _NewImage(1000, 1000 / _DesktopWidth * _DesktopHeight, 32)
Screen scr
_MouseHide
_FullScreen
_Dest scr
_DisplayOrder _Hardware , _Software
'Print "turn with the mouse, move with the mouse buttons, adjust the light with the mouse wheel!"
brightness = 90
flag = 0
Do
    _Limit 40

    points(0, 0) = 500: points(0, 1) = 500: points(0, 2) = 470
    points(1, 0) = 500: points(1, 1) = 500: points(1, 2) = 500
    points(2, 0) = 500: points(2, 1) = 500: points(2, 2) = 530



    '====================================================================
    If flag = 0 Then
        ct = 0
        For ap = 0 To points_c - 1

            If ap > 2 Then

                If (points(ap, 0)) > 550 Then
                    ct = ct + 1
                    points(ap, 0) = points(ap, 0) + Rnd * 2 - 1.5
                Else
                    If points(ap, 0) < 450 Then
                        ct = ct + 1
                        points(ap, 0) = points(ap, 0) + Rnd * 2 - .5
                    End If
                End If

                If (points(ap, 1)) > 550 Then
                    ct = ct + 1
                    points(ap, 1) = points(ap, 1) + Rnd * 2 - 1.5
                Else
                    If points(ap, 1) < 450 Then
                        ct = ct + 1
                        points(ap, 1) = points(ap, 1) + Rnd * 2 - .5
                    End If
                End If

                If (points(ap, 2)) > 550 Then
                    ct = ct + 1
                    points(ap, 2) = points(ap, 2) + Rnd * 2 - 1.5
                Else
                    If points(ap, 2) < 450 Then
                        ct = ct + 1
                        points(ap, 2) = points(ap, 2) + Rnd * 2 - .5
                    End If
                End If
            End If
        Next ap

        points(0, 0) = 500: points(0, 1) = 500: points(0, 2) = 470
        points(1, 0) = 500: points(1, 1) = 500: points(1, 2) = 500
        points(2, 0) = 500: points(2, 1) = 500: points(2, 2) = 530

        If ct = 0 Then
            flag = 1
        End If
    End If

    '====================================================================

    If flag = 1 Then
        ct2 = 0
        For ap = 0 To points_c - 1

            nrad = ap / points_c * (_Pi * 2.1)
            nx = Cos(nrad) * 350 + 500
            ny = Sin(nrad) * 350 + 500
            If ap > 2 Then
                If (points(ap, 0)) > nx + .1 Then
                    ct2 = ct2 + 1
                    points(ap, 0) = points(ap, 0) + Rnd * 2 - 1.5
                Else
                    If points(ap, 0) < nx - .1 Then
                        ct2 = ct2 + 1
                        points(ap, 0) = points(ap, 0) + Rnd * 2 - .5
                    End If
                End If

                If (points(ap, 1)) > ny + .1 Then
                    ct2 = ct2 + 1
                    points(ap, 1) = points(ap, 1) + Rnd * 2 - 1.5
                Else
                    If points(ap, 1) < ny - .1 Then
                        ct2 = ct2 + 1
                        points(ap, 1) = points(ap, 1) + Rnd * 2 - .5
                    End If
                End If

                If (points(ap, 2)) > 500.1 Then
                    ct2 = ct2 + 1
                    points(ap, 2) = points(ap, 2) + Rnd * 2 - 1.5
                Else
                    If points(ap, 2) < 499.9 Then
                        ct2 = ct2 + 1
                        points(ap, 2) = points(ap, 2) + Rnd * 2 - .5
                    End If
                End If
            End If
        Next ap

        points(0, 0) = 500: points(0, 1) = 500: points(0, 2) = 470
        points(1, 0) = 500: points(1, 1) = 500: points(1, 2) = 500
        points(2, 0) = 500: points(2, 1) = 500: points(2, 2) = 530
        If ct2 = 0 Then
            flag = 2
            sp(0) = 500
            sp(1) = 1500
            sp(2) = 470
            sp(4) = 0
            sp(3) = 0
            _Delay 1
        End If
    End If
    '====================================================================

    If flag = 2 Then

        'sp(0) = 500
        'sp(1) = 510
        'Sleep


        dv = 50
        d1 = Abs((sp(0) - 500) / dv)
        d2 = Abs((sp(1) - 510) / dv)


        If sp(0) < 500 Then
            sp(0) = sp(0) + d1
        Else
            sp(0) = sp(0) - d1
        End If

        If sp(1) > 510 Then
            sp(1) = sp(1) - d2
        Else
            sp(1) = sp(1) + d2
        End If

        dt = 0
        If Abs(d1) < .002 Then dt = dt + 1
        If Abs(d2) < .002 Then dt = dt + 1

        If dt = 2 Then
            flag = 3
            sp(2) = 470
            sp(4) = 0
            sp(3) = 0
        End If
    End If



    'draw points
    For ap = 0 To points_c - 1
        x = points(ap, 0)
        y = points(ap, 1)
        z = points(ap, 2)
        rotate_to_maptriangle x, y, z 'position of points from the point of view of the observer

        'actual_shadow = Int(Abs(z) * (.3 + brightness)) 'distance proportional texture
        'actual_shadow = brightness

        actual_shadow = ap / 22


        If actual_shadow > shadows - 1 Then actual_shadow = 10
        If actual_shadow <= 2 Then actual_shadow = 3
        If ap < 3 Then actual_shadow = 0

        ps = 2 'point size on the screen
        _MapTriangle (0, 0)-(text_size - 1, 0)-(0, text_size - 1), texture(actual_shadow) To(x - ps, y - ps, z)-(x + ps, y - ps, z)-(x - ps, y + ps, z)
        _MapTriangle (text_size - 1, text_size - 1)-(text_size - 1, 0)-(0, text_size - 1), texture(actual_shadow) To(x + ps, y + ps, z)-(x + ps, y - ps, z)-(x - ps, y + ps, z)

    Next ap



    _Display


    'mouse input axis movement and mousewheel
    mousex = mousex * .6
    mousey = mousey * .6
    mw = 0
    While _MouseInput: mousex = mousex + _MouseMovementX: mousey = mousey + _MouseMovementY: mw = mw + _MouseWheel: Wend 'movement data read

    'control spectator
    mouse_sens = .001 'mouse rotating sensitive
    sp(3) = sp(3) - mousex * mouse_sens
    sp(4) = sp(4) + mousey * mouse_sens
    If Abs(sp(4)) > _Pi / 2 Then sp(4) = _Pi / 2 * Sgn(sp(4))
    vec_x = (Sin(sp(3)) * (Cos(sp(4) + _Pi)))
    vec_y = (Cos(sp(3)) * (Cos(sp(4) + _Pi)))
    vec_z = -Sin(sp(4) + _Pi)
    speed = 2 'moving speed
    moving = Abs(_MouseButton(1) Or _KeyDown(Asc("w"))) * speed - Abs(_MouseButton(2) Or _KeyDown(Asc("s"))) * speed
    sp(0) = sp(0) + vec_x * moving
    sp(1) = sp(1) + vec_y * moving
    sp(2) = sp(2) + vec_z * moving

    'control brightness
    brightness = brightness + mw / 2


Loop Until _KeyDown(27)

Sub rotate_to_maptriangle (x, y, z)
    x2 = x - sp(0)
    y2 = y - sp(1)
    z2 = z - sp(2)
    rotate_2d x2, y2, sp(3)
    rotate_2d y2, z2, sp(4) + _Pi / 2
    x = x2 * sp(5)
    y = y2 * sp(5)
    z = z2 * sp(6)
End Sub

Sub rotate_2d (x, y, ang)
    x1 = x * Cos(ang) - y * Sin(ang)
    y1 = x * Sin(ang) + y * Cos(ang)
    x = x1: y = y1
End Sub


Attached Files Image(s)
       
Reply
#12
WOW!!! That was really neat. An excellent example of how someone can make use of this sort of tool!
Reply
#13
Very cool generator!

- Dav

Find my programs here in Dav's QB64 Corner
Reply
#14
Awesomeballs! James 1 & 2
b = b + ...
Reply
#15
Mini-Monster-Mixer Version 0.3b  (maybe it should be 0.4) 

I adjusted how the colors for the parts are selected so each sheet will be a little more coherent with a slightly wider range.
Adjusted sizes a little bit.
If it doesn't have wings it stands near the bottom of the tile instead of floating like the winged critters.

Code: (Select All)
'Mini-Monster-Mixer v0.3b
'By James D. Jarvis November 2022
'This program uses BASIMAGE coded by Dav for QB64GL 1.4, MAY/2020
'
'generate a sprite sheet of monsters
'each is 64 by 64 pixels but code here can be modified to change that
'
'press c or s to save a sprite sheet to the clipboard so you can paste it into a paint program
'and save is whatever format you desire
'pres <esc> to quit
'
'License: Share sprite sheets as long as they include generated credit bar in image
'any programs using original code or graphics from source or generated by program
' please include the following (or equivalent) line somwhere in comments and documentation:
'Includes Art and/or Code from Mini-Monster-Mixer v0.3b created by James D. Jarvis
'
Randomize Timer
Dim Shared ms&
ms& = _NewImage(512, 360, 32)
Screen ms&
_Title "Mini-Monster-Mixer V0.3b"
Dim Shared part&
Dim Shared kk1 As _Unsigned Long
Dim Shared kk2 As _Unsigned Long
Dim Shared kk3 As _Unsigned Long
Dim Shared kk4 As _Unsigned Long
Dim Shared kk5 As _Unsigned Long
Dim Shared kk6 As _Unsigned Long

Dim Shared clr~&
part& = BASIMAGE1&

Type critterbody_type
    head As Integer
    arm As Integer
    torso As Integer
    leg As Integer
    wing As Integer
    k1 As _Unsigned Long
    k2 As _Unsigned Long
    k3 As _Unsigned Long
    k4 As _Unsigned Long
    k5 As _Unsigned Long
    k6 As _Unsigned Long
    xsiz As Integer
    ysiz As Integer
End Type
monster_limit = 40
Dim klrset(12, 3) As Integer
Dim Shared mlook(monster_limit) As critterbody_type
_Source part&
'read the colors from the color reference bar whichever color is in the top left corner will be transparent
clr~& = Point(0, 0) 'find background color of image
kk1 = Point(0, 1): kk2 = Point(0, 2): kk3 = Point(0, 3): kk4 = Point(0, 4): kk5 = Point(0, 5): kk6 = Point(0, 6)
_Dest part&
Line (0, 0)-(0, 6), clr~& 'erase the color reference bar from the bit map
_ClearColor clr~&, ms& 'set background color as transparent
_ClearColor clr~&, part&
_Source ms&
_Dest ms&
Do
    Cls
    'build a color set for the sprite sheet
    For k = 1 To 12
        If k < 7 Then
            klrset(k, 1) = Int(Rnd * 150 + 105)
            If Rnd * 6 > 4.5 Then klrset(k, 1) = Int(Rnd * 200 + 55)
            klrset(k, 2) = Int(Rnd * 150 + 105)
            klrset(k, 3) = Int(Rnd * 150 + 105)
        Else
            klrset(k, 1) = Int(Rnd * 200 + 33)
            klrset(k, 2) = Int(Rnd * 210 + 33)
            klrset(k, 3) = Int(Rnd * 220 + 33)
            If Rnd * 6 > 4.5 Then klrset(k, 1) = Int(Rnd * 100 + 55)
        End If
    Next k
    mmx = 0: mmy = 0
    For m = 1 To monster_limit
        'create a new set of monster sprites
        'included image source has 16 options for head,arms,torso, and legs
        mlook(m).head = Int(1 + Rnd * 16)
        mlook(m).arm = Int(1 + Rnd * 16)
        mlook(m).torso = Int(1 + Rnd * 16)
        mlook(m).leg = Int(1 + Rnd * 16)
        mlook(m).wing = Int(1 + Rnd * 86)
        'determing colors for this specific monster sprite
        kr = klrset(1 + Int(Rnd * 6), 1): kg = klrset(1 + Int(Rnd * 6), 2): kb = klrset(1 + Int(Rnd * 6), 3)
        kr2 = Int(kr / 2): kg2 = Int(kg / 2): kb2 = Int(kb / 2)
        kr3 = Int(kr2 / (1.2 + Rnd * 3)): kg3 = Int(kg2 / (1.2 + Rnd * 3)): kb3 = Int(kb2 / (1.2 + Rnd * 3))
        mlook(m).k1 = _RGB32(kr, kg, kb)
        mlook(m).k2 = _RGB32(kr2, kg2, kb2)
        mlook(m).k3 = _RGB32(kr3, kg3, kb3)
        mlook(m).k4 = _RGB32(klrset(1 + Int(Rnd * 12), 1) - 10, klrset(1 + Int(Rnd * 12), 2) - 10, klrset(1 + Int(Rnd * 12), 3) - 10)
        kr = klrset(7 + Int(Rnd * 6), 1): kg = klrset(7 + Int(Rnd * 6), 2): kb = klrset(7 + Int(Rnd * 6), 3)
        mlook(m).k5 = _RGB32(kr, kg, kb)
        mlook(m).k6 = _RGB32(Int(kr / (2 + Rnd * 2)), Int(kg / (2 + Rnd * 2)), Int(kb / (2 + Rnd * 2)))
        mlook(m).xsiz = 64 - Int(Rnd * 40) + Int(Rnd * 4)
        If mlook(m).xsiz > 64 Then mlook(m).xsiz = 64
        mlook(m).ysiz = 64 - Int(Rnd * 36) + Int(Rnd * 4)
        If mlook(m).ysiz > 64 Then mlook(m).ysiz = 64


        draw_monster mmx, mmy, m, 6
        mmx = mmx + 64
        If mmx >= _Width Then
            mmx = 0
            mmy = mmy + 64
        End If
    Next m
    md$ = "Monster Sprite Sheet generated " + Date$ + " at " + Time$
    md2$ = "Using Mini-Monster-Mixer V0.3b by James D. Jarvis"
    _PrintString (0, 321), md$
    _PrintString (0, 337), md2$
    Do
        _Limit 60
        kk$ = InKey$
    Loop Until kk$ <> ""
    If kk$ = "C" Or kk$ = "c" Or kk$ = "S" Or kk$ = "s" Then
        _ClipboardImage = ms&
        _Delay 0.3
        Locate 1, 1: Print "Sprite Sheet Saved to Clipboard"
        Sleep 3
    End If
Loop Until kk$ = Chr$(27)
_FreeImage part&
System




Sub draw_monster (Mx, my, mid, scale)
    'generate a monster image from source sprite sheet part& and render to the programs main screen ms&
    tempi& = _NewImage(32, 32, 32)
    'tempi& creates a temporary one sprite image for rendering
    _ClearColor clr~&, tempi&
    _Dest tempi&
    Cls
    hs = Int(Rnd * (scale * 2))
    If mlook(mid).wing < 17 Then _PutImage (0, 0)-(31, 31), part&, tempi&, ((mlook(mid).wing - 1) * 32, 128)-((mlook(mid).wing - 1) * 32 + 31, 128 + 31)
    If mlook(mid).wing > 16 Then
        _PutImage (0, 0)-(31, 31), part&, tempi&, ((mlook(mid).leg - 1) * 32, 96)-((mlook(mid).leg - 1) * 32 + 31, 96 + 31)
    Else
        If Rnd * 100 < 67 Then _PutImage (0, 0)-(31, 31), part&, tempi&, ((mlook(mid).leg - 1) * 32, 96)-((mlook(mid).leg - 1) * 32 + 31, 96 + 31)
    End If
    If mlook(mid).wing > 16 Then
        _PutImage (0, 0)-(31, 31), part&, tempi&, ((mlook(mid).arm - 1) * 32, 32)-((mlook(mid).arm - 1) * 32 + 31, 32 + 31)
    Else
        If Rnd * 100 < 67 Then _PutImage (0, 0)-(31, 31), part&, tempi&, ((mlook(mid).arm - 1) * 32, 32)-((mlook(mid).arm - 1) * 32 + 31, 32 + 31)
    End If
    _PutImage (0 - Int(hs * .8), 0)-(31 + Int(hs * .8), 31), part&, tempi&, ((mlook(mid).torso - 1) * 32, 64)-((mlook(mid).torso - 1) * 32 + 31, 64 + 31)
    _PutImage (0 - hs, 0)-(31 + hs, 31), part&, tempi&, ((mlook(mid).head - 1) * 32, 0)-((mlook(mid).head - 1) * 32 + 31, 31)
    _Source tempi&
    'repaint source image with generate color values for new monster sprite
    For y = 0 To 31
        For x = 0 To 31
            Select Case Point(x, y)
                Case kk1
                    PSet (x, y), mlook(mid).k1
                Case kk2
                    PSet (x, y), mlook(mid).k2
                Case kk3
                    PSet (x, y), mlook(mid).k3
                Case kk4
                    PSet (x, y), mlook(mid).k4
                Case kk5
                    PSet (x, y), mlook(mid).k5
                Case kk6
                    PSet (x, y), mlook(mid).k6
            End Select
        Next x
    Next y
    'generated image in tempi& is rendered to ms& as a 64 by 64 sprite
    If mlook(mid).xsiz = 64 And mlook(mid).ysiz = 64 Then
        _PutImage (Mx, my)-(Mx + 63, my + 63), tempi&, ms&
    Else
        tx = Mx: ty = my
        tx = tx + Int(64 - mlook(mid).xsiz) / 2
        If mlook(mid).wing < 17 Then
            ty = ty + Int((64 - mlook(mid).ysiz) / 2)
        Else
            ty = ty + (64 - mlook(mid).ysiz)
        End If

        _PutImage (tx, ty)-(tx + mlook(mid).xsiz - 1, ty + mlook(mid).ysiz - 1), tempi&, ms&
    End If
    _Source ms&
    _Dest ms&
    _FreeImage tempi&
End Sub

'================================
'PNG file saved using BASIMAGE1&
'================================
'EXAMPLE USAGE OF BASIMAGE1&
'===========================
'SCREEN _NEWIMAGE(600, 600, 32)
'pic& = BASIMAGE1&: _PUTIMAGE (0, 0), pic&

Function BASIMAGE1& 'mparts32a.png
    v& = _NewImage(512, 160, 32)
    Dim m As _MEM: m = _MemImage(v&)
    A$ = ""
    A$ = A$ + "haIkM^PUSS325]gTICFKb<CVJD7<6#X?0>a?M>g^Zh?P42YWTCBeoi?oiiO0"
    A$ = A$ + "00000g:NEZ^>0jcS7nkW6iJG]>UU_^Rn?C6ILj>7Coc?olOTem1jC;_WCee;"
    A$ = A$ + "`W7c>6UGb^NOgl_WaiI=G#EcodlA5n_YWePkKniSX]CceTboJUM5;X]3NKb:"
    A$ = A$ + "ogjnnFhao6TYTEN7=gSfO;U36I\?[foEU_5mWIjkd:Eef_;nW[i`7oWYf?e_"
    A$ = A$ + "dO?[H#VnogiLOlgOZ]n3je\kiNUjgiUXc1NeVjERBcQ?>CJ\G6S5KjMWSmi\"
    A$ = A$ + "6PNmoAYmcekkATmoBm_m>O4m7dLnM7_]\WFI6K=cL5]lMJ^Odal[RoKmkBn?"
    A$ = A$ + "[mj8=7#V?cO]fOFjoFnOge1Yaf=]NZoin=ViPOVNkW2]]:enSJL8]]iMm?A="
    A$ = A$ + "OPTf?=>4E\Wgf\joS:7h]nnkek:mjhbmdkKkMnmGGREoilclimJ[dkoOO=NO"
    A$ = A$ + ">#okM=EkGZ4I<_W_cZ>H]7X\doKnRjg\RodmH#mOK_9Akk\mOK\7_N`;LO7a"
    A$ = A$ + "c0#cgJeQ8bkN??oAoB?F<nlhciV^VK9m_8Z;7WcEkIa5kc2_bnoF<hLKnM>#"
    A$ = A$ + "liNf]oXeoYmcBon^k[i[]ZGilJb\[C?WX?C[4M^7?ncGCD6e1Z^3?O<CmoZN"
    A$ = A$ + "n7e?oS]oSHooJiPmbochIQKioHRofko?bnMYeoAom8go[\foaiJYaS8Ko_Si"
    A$ = A$ + "lm46oc0BJ_VdS5UO7]DEm8^Lo7???Vk\n7=W<ZH0mIPGacno]_O?><jnmcm7"
    A$ = A$ + "W7oWM<8[LNknPlRmJc1nk_WGO#UioG1oCc1b>gCbgID7ZFooMmhH^?O<#Fan"
    A$ = A$ + "\WoUn\\KnWFGNERncm8oi>BSmdS7U_Y5]hO[^4MN#d]G_aQ\6oCilhmLeoUR"
    A$ = A$ + "1Ioi\nZ4kim1I_6P\co_:nWWoGAK?keoDicoGcOJeW<bkZH>P:m_7mo8GkQF"
    A$ = A$ + "O>_TUF#EO7OUnN^TMm8[aKJDalOBeQ:l=?fGEO#eO7g[>_GBk9cfN5iOEmio"
    A$ = A$ + "CZ?P7oc<fGel_lenUiLPB?32Jn#F?k1nkg5Om7O[OWK_JDU^CSZdO1gGdbi["
    A$ = A$ + "H\#Ece9]6P\en_:[1>K^[jolj0_0MO004=FJ<g1mWg]ekmOoKZTZNo?YO_jT"
    A$ = A$ + "FoWdgEX_Yf?00^gLUfo?hNBE_o3Dmof_gdNcDoG:6DMO200^7`ejQf?h^0EW"
    A$ = A$ + "Wnc<en100000i3omn1_7#000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000008KNlhYk[UF^2eiAZkEHC0000P[:_dklZiedmS"
    A$ = A$ + "DoWGlD?FAc^M_Idf00000FUAd]mJ[7okohijSFogke\3=kMJ;0000P<h]^mJ"
    A$ = A$ + "[5`Sn_DIg]7_nHWeU<JG00000kTGjeoBljoDRFoOT[oWOnIIonb6G5MO\>40"
    A$ = A$ + "X6`h>`W6IYoOUfo?mjcDo?J]I<oConY6ObnhCWZcC_:ko00^2\jJ0VIooAli"
    A$ = A$ + "ToU=o4foOF[oYZlY[:IZ93mOMZ>7=2og:XOojBFiLOJcoVQn?_4Yn_gagkHN"
    A$ = A$ + "PA\AdjcHn7KPnoePZOobRboHlge6Xo;SVn_g?OPOZkoWfG=COf\gGEcoLgO^"
    A$ = A$ + "ddfN4aQX]og2#o7l]ego9W3`eoijnF[3PZmkEoOWOg3gQMU:SLmSj?XoG3#o"
    A$ = A$ + "oJ0do1Egg7EooZi0JJ]kjkZW\?OdEcg6oJodfb^Ko[6KjY[_Z^??7dZ]k9o#"
    A$ = A$ + "ZneCoOWi=kTGe]Gi#]OJMM=69WSO_AYo_RmmTK]Sl_Zm_FnoW^ok=nkZ4o_R"
    A$ = A$ + "nWGFmjlj_MenW]ndKOgl[SO^M\N0ng3`8en]ZccdnmHgIc1YmWFWKDlXok9n"
    A$ = A$ + "8EoGAo_Yofc6][KUL>^mXJoLMDZN_f?7aOm77l6?Wc[?6M^]IcoV=o<;okAo"
    A$ = A$ + "mCdo_:kBoOUfo>l[7o_[jAEngS?6iLSjO?j[cL]c`LjoS[mcK;mR7N>WU=_R"
    A$ = A$ + "SolZo?jjONEFiioCeQiG[T>l:iK=KZYYWYn?enSXo[5?kYockkUb[\VSa:?L"
    A$ = A$ + "Vlc\mO_bWVo]Z?I7oGegcfngU_cdo]aZlRdkAPdiX7K6OOEdo7GgOOn\GMHd"
    A$ = A$ + "c_Sl`X7oe:F]9[fWfme[nXmLcUdcddoKon<J_LOZYg?Zo7YN`7[bGOa<joBf"
    A$ = A$ + "dboBiBc<7b>\E5nWNM[lnUL5l?UIV?HWaoAQFFeocD7ZfoJmSknjehhlgc\?"
    A$ = A$ + "jSkIO?eSeHDOZE7lFGe\gXiPI>n[EFM]Dcd7XYc?Cng:?;09=l<\QfcE#3JL"
    A$ = A$ + "C39Kj=_IfL_MH[Zmo>XJo_2k>no9ioXbo[^?e;[Zmof>[]60M]LYm8^_e0\["
    A$ = A$ + "e?\R6JEiokX^g\3oWN\c>dNYfJde1_bc_OG]59MoSijfjoB7KTH`ZkMK7iaE"
    A$ = A$ + "koMAenOejM5fIWJVcH[ZmOU\jlnkbNLmN[?OCFkoIUeP\J<HUk_baOBJgcdf"
    A$ = A$ + "We6Nn\n=R]6mmPO7Jolfb:jo[ffgeW9R\hCD_lKRM7oK[W4n_nnfN\SmmOfV"
    A$ = A$ + "Smg`_Mml7Tlo<[1IeHiXgGeiOljl:jo[HSMfn7EkMWaoNOVl\^WMikZRmc0d"
    A$ = A$ + "oo^RoS<oC4?_TAONFE?oKE\KMggfeWnkiWkLM[1YB^JiOk#o_BlZ1^kmnCmO"
    A$ = A$ + "4[[hK5XooM5oQn?doedoeO_kgkNFfeW7a<h^Vo55SlIW5joebWfkGjg6A4o7"
    A$ = A$ + "aVAeg?ZnO4n_jnfN4YnXU]?Z=7gc[Tni1XjH]ENBUSon6ITg3lM[mC[3#k_?"
    A$ = A$ + "A\o?#maOXooI<gKdjojW?_gWb[jk7:]4eh_?Ul`MbXOoIQn?0D3E[oOggoEE"
    A$ = A$ + "jogMJi6lONe]mW2Sli^;2MjXFG10l=aEAooCYM]KRhmNoGkN]O^kE3ok9g>S"
    A$ = A$ + "EAJk?5l^oOXo30e0_Le]kg6_:_VS:ZhOcfEg>1g?lngn^6kJ<#[<cO;R0Pk4"
    A$ = A$ + "AZA3mO4o10;hJdkBoGbf00h8#o1aO0X:JkC?Zlokng3C0000P[8=]iXdoSbf"
    A$ = A$ + "00000000000000000000000000000000`7do6:M7okY40000`M3iooZ4om]6"
    A$ = A$ + "0000hK4;MOXm30000lmaaooYfNM0H]000000O7dnoWJKmogW_jj;00000H?h"
    A$ = A$ + "IOo]e0DMM500000\?`cl70000hnP_mnO_F;#eooI8l?l?lOMn_jWeIeooYFe"
    A$ = A$ + "ooIHeaoZmOVioGagooZ7oGmh?hOhOho:eOZM_>E<o7=NcmOfm5_dJZNm7Eho"
    A$ = A$ + "FNG;o?kl`Nki?[e4Emhok\oKSm[L?0gih?lOmno:XoWIkWFX_FjLA6_YkgTZ"
    A$ = A$ + "oUEOQVocegio\g_2?goS?7RFlohaR^>XEbXo_Jog[l]gn[fol2M=HgQhoE8o"
    A$ = A$ + "[bgccFo]f?[<f7IO#;6c;llo<d0[:gS__ofN`bhi0LENooiJn_JklS5IO#5i"
    A$ = A$ + "n`o`oNlMTe1nl\m:AlLYmF7R\?XbmodVW[be0`k?bkmOfO^GTJPWmea36MN7"
    A$ = A$ + "eWWeoO4FNX?MoHOooikcgRXj7hU\goE_Bfn_jfoMboB59=a8l]Vf[eacZ>TA"
    A$ = A$ + "k_QlLNiYogCk?3mhZRkNcob#oohW5^g?;jHckNL#cWoL0N_OhmF?lngl_S[1"
    A$ = A$ + "HoJ`Bjl]fMFjolH>ogSL<0eoBSmcdoEgnUlOdnnZgnSdoliIel?mlAF7\lOT"
    A$ = A$ + "aoN_oSAkkFkEboOkkoW^7H]noLN6hJjQaeoceoeboRCooaQh_ToS?nof?jmo"
    A$ = A$ + "a?>DKO8AjChOhoZm?OO7l2mlEjo8S1di0iU<fo?G[Wnck`WoYNaohk3Zjmni"
    A$ = A$ + "lWkAjNno]m7cco_UCaOF7e4o]lO>iogeio_Bn?[WkmE]m3oW_oik1UGRN^_g"
    A$ = A$ + "e3i?70I5oYm3I]oONO#Eao[Rn?Ec_U3#_^X[3Jao\eoioNfjoIn\gQokoN0W"
    A$ = A$ + "M<XbiN[\M;eoWAmXBo;=g7O_8I<o7]MWMN8e7Bal<Z3bm3I^n[Lenin\Ug9o"
    A$ = A$ + "NA5anoUO_>TRoI4CZjmO[AESmPoUeo[#;\:mgZmOe[oZBoK]gWF93mO]aOA_"
    A$ = A$ + "GLNajmR9knQ\dnieQ:Fg1=fCo<1dR3k\n#eki]INlohe6og3PSn?Omo<ciQo"
    A$ = A$ + "]mMeeS\RmLoGeJoZ:f3mojgoOc?lhNVS5Xk3>Sh^F^`g_n?o_k_WoL0Bm;Om"
    A$ = A$ + "2a5;>>>8;]oGLWeO_bn_bj#Fnm:ho[JoO6nFjIOf:iY3DkkoO[8]oolj3Z9f"
    A$ = A$ + "c[3Emn>lKKFnIo_[j3M?eWG7`ihOc_dW1#LaRcko?cnOjW5i:nL`L5l?]D]o"
    A$ = A$ + "cLn?YnP\m==6DQo_2iOEjo<o>7O5mOE8m<XcF7FZ^DCkGnoCNb:f;5ocL=`g"
    A$ = A$ + "alo[4G1m_Z[3EcM^]3^O8Y1EUnoeXmOnmU_RhnaeSToJ0Z^O1000#\Lgeok5"
    A$ = A$ + "3Zag?>]6PlR5#k700Pk6g9=O]fN]?gmc_?4E7G0000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "`eR7?NDNM000000D3HM000000i2_TUOOYioROni7aOFML10000hKUGj\lBFJ"
    A$ = A$ + "_JjnA[ooZ9cAkLA73h[i:oeP9gncboE`8iFI<FXZeO30G1bN>G`_ddjcFogB"
    A$ = A$ + "cWncHlmI]O;moXc9[Do_Gk?CoWI<_UOcoI_c51_bcOA[dNM6mo=XiKIkk[Vo"
    A$ = A$ + "[H]gE=n[JZJl?__GZl]goCejU8ff=doim3J_>SL_:Nn7m6k7Yo]bgcN\#CkW"
    A$ = A$ + "^>P\d0Y[k`jHO[no5geaOdH]gS7Ik_Re0d[l=goGecmOE]oEWG6jomca^:[1"
    A$ = A$ + "8bHPfHm<W3h5Dm^F1joihOJo]f[SRF>n_ckNLnWfanFeomZm7E<`KYM]a43N"
    A$ = A$ + "h#oIoja]B5kk_e^WmmmO7eCJ\]Rh_FoQf[gOlggH[X63>jHo86ogFk;mWN>G"
    A$ = A$ + "4Dico_JmgZmo;bNlgkl\kUn?GG]M<]alBm9kZ>A7[YEhW;ZnoNkoL_nllNn7"
    A$ = A$ + "]m]jLCk#kGjie^B\?[h_FNHTijF]mMN][FGb#gG;G2?oOXo[mj<l_WS5Ilgk"
    A$ = A$ + "aSZ=Z=^Oga6NY=VCSIe8m`amPbWoimif[?Ueom>7g>fKb\OFoYc7g^WEVS^R"
    A$ = A$ + "h_FnXdn?SJ>PAeFSIMXeon_X=f>balBDecoGKo=deP4MkgboI4kYe1]GWQom"
    A$ = A$ + "L\\kogILPK7[G?be>CmPZ_c?>_o?be1hki?_OmoIO^odHg>bm6mcjg>en[:n"
    A$ = A$ + "[5GcLnWAJGI^oo\lI[_oEi:lloO1oio7]oJnT>oVDM9JMXNn?Sh#fSodjkYn"
    A$ = A$ + "?ceoY5ogajodbS\N]W[MVn8;m;J<Gbfle1\ShO5_oclmokenSNmST3jM=5JJ"
    A$ = A$ + "oc_gO?koLO?30===_co\C=aNJ\iX1GgkobEjioo2ncM<JoAm[D^F6kmo:hoG"
    A$ = A$ + "8iW<eo[doA7oKfHgjoS6S\dnYW_mkJaT8NF0Ifo?SnO[4gg7?O?7PFlOgc9W"
    A$ = A$ + "KlgW_ddoSXn8Ig<Nf7FJlImlG^2j?dnl\mIe]oZmO;^kiHOSn?kh_V^9meBW"
    A$ = A$ + "Kea6FjGLm]NkcOg[C?KmO>J]EJLakcXOUjUeNPfQf_EkdkaF=7LEmo8b;ddO"
    A$ = A$ + "SZ_FZOekaS`oG1m7NAZoHg[7bbOkH>GhoajgkMl8X2mOn?]JoBgc<nDjmkWG"
    A$ = A$ + "XW?[?C>BjMAoL0i5[_C0SlicK78]>PM5;T6?i9ocjno4lo<kaFkLkD3bZ_=S"
    A$ = A$ + "W5^FL^giR\NXEfmJoT:dH_fiRboSNn8KoFWKWnGjWm>ggBlG[]6AkfBk_gL#"
    A$ = A$ + "d[;Rf_dN[cHof_`jc2HV_gWJe=nWA`MU_YE6iJndl_dWg1__okAlnagkml9R"
    A$ = A$ + "nN^mKS[iS_]>G4<Bn#Te3000000000000000`H8m0D[`>kjIgVaW9K`J<K>f"
    A$ = A$ + "WRon4hO3:7hCcn00HN>XEC7[>Qf]UMT\WfWI[MZo;iSNGoZeQI\5ONbEV[L7"
    A$ = A$ + "fJf?CKSLOJiGkHmWNlWf7LPEcmlJOYnYMZAfcnBnJGe1=kPe000G7>YGcd^g"
    A$ = A$ + "V]4\WddS_^^MYoB]Ug?3i[^6PI\UE<Khnc=I[XeoedKgicOZga5cGg`j0DGC"
    A$ = A$ + "=K<0gOl[OJoK\nK9mO_[=H4o;EGFe^00HO#WCPZI^Cmo3fEiI08ioEeOUlO?"
    A$ = A$ + "]ONIdj#?k8I;aiYWDgfB;CbFFJeAXoC?gO[CJJbCX1OX]b]I_S_Qe1HZk;eF"
    A$ = A$ + "MdO=Mo_SlYNfNFogkJlTk>JNgZfCkId<]o7dNEkoZi76G=k5=lB6fS?g#Djo"
    A$ = A$ + "FfT[Ec_gAKgBf`bNJJf]bXjoFfY[n_3=KknL5KXH;jO33>=nIR_GkNnNbgn>"
    A$ = A$ + "bM8GAK?i[ToidVZJeCD7VaF7j_hmM\m[kZoGhn]\EkHBeGjimjoI\5?gLdln"
    A$ = A$ + "E]gYe9]XViXfC[oOIokL]dI\n0;OddXKa[Ee\7eNcXc<:FnPXBlolKIjH]Ck"
    A$ = A$ + "eb?>T^4Pno1K;Xog>WTfmXj_JjoBfZWfooMW>[3cH;nl3lHo8[1H6KAooY8^"
    A$ = A$ + "V]eJ3D7gadhU>n1mOQiW6IN[CiNCH??JfNZ3RamAeoUHfnO5K9MON\[GogkJ"
    A$ = A$ + "lNONmkZfC]OKB=hA]WhJ5fUoM^6TA?N?o?ba?XECZ_c^60^fOcVFfCKnmIFG"
    A$ = A$ + "`XfRX>`hgbhion]W7moAb1VAo_5KXG;oN79f;Mo]OGoje;YYoKXmdK^#][oT"
    A$ = A$ + "]4\SfJ0hom=\kh>beBeo]nkQ\YV]QVIgL_1F;QGMK[ja:f`cm\UnO7jRJG_G"
    A$ = A$ + "o?Z=6a^^b16dNMSGc<oG_aP?jhOWJf^l_T]=63hmhml_gSOB[VEW7M=0JJom"
    A$ = A$ + "\WfLlcZohmh4U15n]h?oO<k]jlNRmcFfcHnLYe0#CWm6ke\SemHElD7>jknf"
    A$ = A$ + "jMoEWi;LX1XMMFfiLmolJ0\Nf0RSm4dimlo52WZgBcQe97Djj7IND_i]C_n1"
    A$ = A$ + "SlnCi1:]oQjoE\UUok?gR]omLokd_kXN\Bo^JNPSaQZnGA_N9o;HC[kEcNSj"
    A$ = A$ + "O;Kogi<Xin;^60E]OQe0`_GYihiQcNnGkj]\ao[:dQO;mc[OjfNQVo?ilP=]"
    A$ = A$ + "jG8YokEoUN_DkIMOdRdDWSjoSeUcfn`LFNk3l<o_Ck8g6VO=0cZm[Vk8X1fm"
    A$ = A$ + "nU^?Wi_[Tk^Sa#R]KWJhN_?]nMZo?DGH`_^E^?jmKEG\>f\gcQj_Wn>?mOJJ"
    A$ = A$ + "_MbQ\dm697V?FAeVmbQeJ7SjO9k8LoWfkoCifA_e0dKOoLKMN^_WogiTdAX7"
    A$ = A$ + "GcoLM7=mXciR??gn5igRNnocQ\UFnWDKOhnoNfCa>lh=oWJm1BaIj?eRm7kg"
    A$ = A$ + "8A#QGk]og[]>=g]#\fclhSL?DOYg>>ZgCoKK_GmOnmfMOoMVcYGNC_kARAbQ"
    A$ = A$ + "ia?Co?QfaYnB3K8eg9f^5`[okMMklJeZOF7cCkCcWW6ohY?gcH<]aKMb54cG"
    A$ = A$ + "UnM?nGHL^h_?C>lXngiH7jW?OejmooCnWWO>Bg3goF?oOjeZY5IflE^?j[?W"
    A$ = A$ + "?B;mRQm:NbSo]8>7lC3mo9ko?I?Si2eRiBfB;nKM_Fjfo=2bNmQXKGo[O?lG"
    A$ = A$ + "[>WVeH9]c=am`e]edkgQn_foo8ZfF<V7cUn_Um<\cdc3>alNVJUJS]ldo[L_"
    A$ = A$ + "ShoNj]LMD[[SKcAFSPT]lJ7YkAmh3d?^T6XbLOWjo\bUmjK9kH<gkFJo;<>`"
    A$ = A$ + "]6^G4\A_?oOdkGC?YWnSdmAO]NNK[\#K^;oFDkoG9Nk]?a87`S6N_h_emjEo"
    A$ = A$ + "G[dgojg7g6RcajM>4?7[SMOgneoo`H]e68aXf`mL>B]SIVkQI7CmoM>>XC>_"
    A$ = A$ + "ZnU7]V1dS6eoN_nMJ?][eS=jM=M?OajORJN6JhRnfam^Dk_WoGXmOJ=0JncK"
    A$ = A$ + "MRM=NnnoA_N=ML_J?lO_mJkLhFaIlL8n]HjoM?gW#OTUom47W=noaXo?cl>N"
    A$ = A$ + "7S#Nmkf_noG:?RVn8[Ehdgo_EVCIdiYLT7^DMI#OIYE=E>P`m^RV]7kYM=ch"
    A$ = A$ + "O[ka:^_bJ3nXdoUZ7N^N_nOVLl1^_NmoZ_G0?]OnoReAfmiEki5kFoYmjnio"
    A$ = A$ + "]RD<dZH5ko]hJlG?=TIbmM>?XWhh\aO[Ho3BXUnkWR`>]QdmII3aa\lh]B\D"
    A$ = A$ + "klRfbalPogH`5emUNFo3[1]bJ0VDgM8o>heifoN6[IY5XLMSjoIRMkbNlkQ6"
    A$ = A$ + "?k6g6ln>d_g[_FY_LTi1kjO7ji^Vo8#mO[Ho\]o3col7iofmhicogXgGSAdo"
    A$ = A$ + "]^gEeoo=Nf:]kmYaalL=Smg#0GJ:SL=3ZmWMlW[?[YU?Sn?gN^eoed`OLL<X"
    A$ = A$ + "W[]gl7oM<T`NgWmio;MlAb1WI^eEdm7JN`7\WOaVVgkDo9_][i?Y[QM_ShoC"
    A$ = A$ + "iU2cm[mJ][MhnQ>J>Kond6o<#>UjJdLT70mOfLA<Rnn^Bjoo6C?FNO\VmNNj"
    A$ = A$ + "eJgg<8UogCoGkn^jaO^f]dJ0J7cZnke>3?neH>0_GO?mO_Joj]om^60gJ[:c"
    A$ = A$ + "c<cj0VA?gkekYnha6V[o[CMaSom=gdhJkN_^:#CkOIK:eW8HG?JnKAogSoM`"
    A$ = A$ + "#i]6SM^:dd9lXS<[n3e7CWCml99Fnld[CMLRRnoWHlW[A;Eld_=[MDW_GJnO"
    A$ = A$ + "]aO:cedKl[VV=mLlggNifniW50mhZOno]HTiE\d;5#<gN2]lI_?eL0WaTE_?"
    A$ = A$ + "=o[V?b>?mnlN?Fn_BjUK4]mQnO]D]nSklXW?9abWWNM:SC4dSF]O]jhoOK:6"
    A$ = A$ + "UMXoglCga?2aF=]o3f`hnd6oZYakMOoWS1Wg__fJ3VFSOee8\bLPKnN5kojX"
    A$ = A$ + "S_ckUJ3Oc19koI_g[0AYkke?^d]EdN?T3`7SXlkCWo>RoWH<#ED]nSklWW?9"
    A$ = A$ + "abWWNM:i_6JDOZao;Yn_BL^kh?Ye0H<6V_WofaTNN0nj;eOVodcM:OB[nZL="
    A$ = A$ + "khn?TGkI>#[i_GinML?Fi0FG[4BgO_j1oJU^O?f`:7n^R7mOgfZSMVEoOHoK"
    A$ = A$ + "T?GMlVS7mWA]UVmVEooMY5;UOMXiXMdoW]_]jhO?mO=MkMI7ailWH>P^SmMH"
    A$ = A$ + "WEdnO77lmnnOJoYCTSimNhLb6mVgZcLG[H3[j9?^Hfg?Q=lVKe^fI>g\nk^P"
    A$ = A$ + "eheY]Yal9STk^5oo1[og>o8fZengUn?A1ioiTbbQS7BnYeLZ;^6P[#l_W^mH"
    A$ = A$ + "]Ua]SXn5;nf??IMK\Zfokh`iWgodiH>VghDkMPlBGJgN\QCk8f_9=VBX]h^_"
    A$ = A$ + "Gb6:joW\QR6#?o_3kL7IdeX?T]mToE\o[6=mWMIG?j?_SGR:7<Nb^ncWWG6:"
    A$ = A$ + "GDCOGX?DklFkgj:6oed]K=QAlYU]j>>AI_03?NKBk\3]ogaRS?_o^iLMd`LK"
    A$ = A$ + "S1G3#GMKW[[eeJ0jYo[53LdgIM_NdokIkML=SLMg16]?NJoXT;G]o[VgcGOD"
    A$ = A$ + "KHGj?dO_i39KcD:j#?mocGO[d=?L`m`<bNWTjg_:aO9MkAenGaF7RE5Zo_;]"
    A$ = A$ + "O_fCCWWGoMef5^7?[S`<7N`i[j>6BCoGIlbBmo:e5ne;F7HG[Wj0oje\g8]W"
    A$ = A$ + "_MZ#;T?omMX=[a^eLVa?4E2W<ZnokkSN_dn3ei\T>WUnoPcUN5Ro]SE^n_Sm"
    A$ = A$ + "[i1an]9]ETHZmgAcNWf[G^oB];_jo?4H#]o3fc`Vl[eSm6agkdN0`g>[XQCD"
    A$ = A$ + "HLOoWloo?_0M_hFJoWdoEd]JL`^GXenaABc>;K9Zo_Sio_jjomFCiPi;cHCA"
    A$ = A$ + "]j9en?HC5kZfg_1]OaL07joBcE`_6_nmDMPIc[FN80D9ne`?Zm_]kg#WgcLR"
    A$ = A$ + "Z[1`imOE#JkBIH;AmjM=oo6F?AHim:k9OVmn;V;Z]>eNjoK:?EK<PHOe6en5"
    A$ = A$ + "c[VLoocD?R`V0`g<bUSjfBJgbgoik[kmKll7Y7cem[]gS;\fo;fQ^o<fDKmJ"
    A$ = A$ + "[WC5SMg5Ji5[V_<ZMGIm63EOjYo7Do3O=PlcacEhWKFO:U7^ZM1Pk0Ne]gem"
    A$ = A$ + "Mb>CZKo9YgOE8Jmi[ZnO;OAkh[ZokeOIT_JiS<jKdlQV?gej?Sbf0000n\9k"
    A$ = A$ + "e8ReT:4C6lm4hZHK00000`lLWOnC00000PLiOdR\%%h1"
    btemp$ = ""
    For i& = 1 To Len(A$) Step 4: B$ = Mid$(A$, i&, 4)
        If InStr(1, B$, "%") Then
            For C% = 1 To Len(B$): F$ = Mid$(B$, C%, 1)
                If F$ <> "%" Then C$ = C$ + F$
            Next: B$ = C$: End If: For j = 1 To Len(B$)
            If Mid$(B$, j, 1) = "#" Then
        Mid$(B$, j) = "@": End If: Next
        For t% = Len(B$) To 1 Step -1
            B& = B& * 64 + Asc(Mid$(B$, t%)) - 48
            Next: X$ = "": For t% = 1 To Len(B$) - 1
            X$ = X$ + Chr$(B& And 255): B& = B& \ 256
    Next: btemp$ = btemp$ + X$: Next
    btemp$ = _Inflate$(btemp$)
    _MemPut m, m.OFFSET, btemp$: _MemFree m
    BASIMAGE1& = _CopyImage(v&): _FreeImage v&
End Function
Reply
#16
Up to v0.4 now.

Added 24 additional heads (which may need some refining) and an alternate pose set with 12 variations of forequarters and 12 variations of hindquarters to produce heraldic beasts. 

Code: (Select All)
'Mini-Monster-Mixer v0.4
'By James D. Jarvis November 2022
'This program uses BASIMAGE coded by Dav for QB64GL 1.4, MAY/2020
'
'generate a sprite sheet of monsters
'each is 64 by 64 pixels but code here can be modified to change that
'
'press c or s to save a sprite sheet to the clipboard so you can paste it into a paint program
'and save is whatever format you desire
'pres <esc> to quit
'
'License: Share sprite sheets as long as they include generated credit bar in image
'any programs using original code or graphics from source or generated by program
' please include the following (or equivalent) line somewhere in comments and documentation:
'Includes Art and/or Code from Mini-Monster-Mixer v0.4 created by James D. Jarvis
'
Randomize Timer
Dim Shared ms&
ms& = _NewImage(512, 360, 32)
Screen ms&
_Title "Mini-Monster-Mixer V0.4"
Dim Shared part&
Dim Shared part2&
Dim Shared kk1 As _Unsigned Long
Dim Shared kk2 As _Unsigned Long
Dim Shared kk3 As _Unsigned Long
Dim Shared kk4 As _Unsigned Long
Dim Shared kk5 As _Unsigned Long
Dim Shared kk6 As _Unsigned Long

Dim Shared clr~&
part& = BASIMAGE1&
part2& = BASIMAGE2&

Type critterbody_type
    head As Integer
    arm As Integer
    torso As Integer
    leg As Integer
    wing As Integer
    k1 As _Unsigned Long
    k2 As _Unsigned Long
    k3 As _Unsigned Long
    k4 As _Unsigned Long
    k5 As _Unsigned Long
    k6 As _Unsigned Long
    xsiz As Integer
    ysiz As Integer
End Type
monster_limit = 40
Dim klrset(12, 3) As Integer
Dim Shared mlook(monster_limit) As critterbody_type
_Source part&
'read the colors from the color reference bar whichever color is in the top left corner will be transparent
clr~& = Point(0, 0) 'find background color of image
kk1 = Point(0, 1): kk2 = Point(0, 2): kk3 = Point(0, 3): kk4 = Point(0, 4): kk5 = Point(0, 5): kk6 = Point(0, 6)
_Dest part&
Line (0, 0)-(0, 6), clr~& 'erase the color reference bar from the bit map
_Dest part2&
Line (0, 0)-(0, 6), clr~& 'erase the color reference bar from the bit map
_ClearColor clr~&, ms& 'set background color as transparent
_ClearColor clr~&, part&
_ClearColor clr~&, part2&
_Source ms&
_Dest ms&
Do
    Cls
    'build a color set for the sprite sheet
    For k = 1 To 12
        If k < 7 Then
            klrset(k, 1) = Int(Rnd * 150 + 105)
            If Rnd * 6 > 4.5 Then klrset(k, 1) = Int(Rnd * 200 + 55)
            klrset(k, 2) = Int(Rnd * 150 + 105)
            klrset(k, 3) = Int(Rnd * 150 + 105)
        Else
            klrset(k, 1) = Int(Rnd * 200 + 33)
            klrset(k, 2) = Int(Rnd * 210 + 33)
            klrset(k, 3) = Int(Rnd * 220 + 33)
            If Rnd * 6 > 4.5 Then klrset(k, 1) = Int(Rnd * 100 + 55)
        End If
    Next k
    mmx = 0: mmy = 0
    For m = 1 To monster_limit
        'create a new set of monster sprites
        'included image source has 16 options for head,arms,torso, and legs
        mlook(m).head = Int(1 + Rnd * 40)
        mlook(m).arm = Int(1 + Rnd * 16)
        If mlook(m).head > 16 Then mlook(m).arm = Int(1 + Rnd * 28)
        If mlook(m).arm > 16 Then
            mlook(m).torso = 0
            mlook(m).leg = Int(17 + Rnd * 12)
            mlook(m).wing = 66
        Else
            mlook(m).torso = Int(1 + Rnd * 16)
            mlook(m).leg = Int(1 + Rnd * 16)
            mlook(m).wing = Int(1 + Rnd * 86)
        End If
        'determing colors for this specific monster sprite
        kr = klrset(1 + Int(Rnd * 6), 1): kg = klrset(1 + Int(Rnd * 6), 2): kb = klrset(1 + Int(Rnd * 6), 3)
        kr2 = Int(kr / 2): kg2 = Int(kg / 2): kb2 = Int(kb / 2)
        kr3 = Int(kr2 / (1.2 + Rnd * 3)): kg3 = Int(kg2 / (1.2 + Rnd * 3)): kb3 = Int(kb2 / (1.2 + Rnd * 3))
        mlook(m).k1 = _RGB32(kr, kg, kb)
        mlook(m).k2 = _RGB32(kr2, kg2, kb2)
        mlook(m).k3 = _RGB32(kr3, kg3, kb3)
        mlook(m).k4 = _RGB32(klrset(1 + Int(Rnd * 12), 1) - 10, klrset(1 + Int(Rnd * 12), 2) - 10, klrset(1 + Int(Rnd * 12), 3) - 10)
        kr = klrset(7 + Int(Rnd * 6), 1): kg = klrset(7 + Int(Rnd * 6), 2): kb = klrset(7 + Int(Rnd * 6), 3)
        mlook(m).k5 = _RGB32(kr, kg, kb)
        mlook(m).k6 = _RGB32(Int(kr / (2 + Rnd * 2)), Int(kg / (2 + Rnd * 2)), Int(kb / (2 + Rnd * 2)))
        mlook(m).xsiz = 64 - Int(Rnd * 40) + Int(Rnd * 4)
        If mlook(m).xsiz > 64 Then mlook(m).xsiz = 64
        mlook(m).ysiz = 64 - Int(Rnd * 36) + Int(Rnd * 4)
        If mlook(m).ysiz > 64 Then mlook(m).ysiz = 64


        draw_monster mmx, mmy, m, 6
        mmx = mmx + 64
        If mmx >= _Width Then
            mmx = 0
            mmy = mmy + 64
        End If
    Next m
    md$ = "Monster Sprite Sheet generated " + Date$ + " at " + Time$
    md2$ = "Using Mini-Monster-Mixer V0.4 by James D. Jarvis"
    _PrintString (0, 321), md$
    _PrintString (0, 337), md2$
    Do
        _Limit 60
        kk$ = InKey$
    Loop Until kk$ <> ""
    If kk$ = "C" Or kk$ = "c" Or kk$ = "S" Or kk$ = "s" Then
        _ClipboardImage = ms&
        _Delay 0.3
        Locate 1, 1: Print "Sprite Sheet Saved to Clipboard"
        Sleep 3
    End If
Loop Until kk$ = Chr$(27)
_FreeImage part&
System




Sub draw_monster (Mx, my, mid, scale)
    'generate a monster image from source sprite sheet part& and render to the programs main screen ms&
    tempi& = _NewImage(64, 64, 32)
    'tempi& creates a temporary one sprite image for rendering
    _ClearColor clr~&, tempi&
    _Dest tempi&
    Cls
    hs = Int(Rnd * (scale * 2))
    If mlook(mid).wing < 17 Then _PutImage (0, 0)-(31, 31), part&, tempi&, ((mlook(mid).wing - 1) * 32, 128)-((mlook(mid).wing - 1) * 32 + 31, 128 + 31)
    If mlook(mid).wing > 16 Then
        If mlook(mid).arm < 17 Then
            _PutImage (0, 0)-(31, 31), part&, tempi&, ((mlook(mid).leg - 1) * 32, 96)-((mlook(mid).leg - 1) * 32 + 31, 96 + 31)
        Else
            _PutImage (0 + 19, 0 + 31)-(31 + 19, 31 + 31), part2&, tempi&, ((mlook(mid).leg - 5) * 32, 32)-((mlook(mid).leg - 5) * 32 + 31, 32 + 31)
        End If
    Else
        If Rnd * 100 < 67 Then _PutImage (0, 0)-(31, 31), part&, tempi&, ((mlook(mid).leg - 1) * 32, 96)-((mlook(mid).leg - 1) * 32 + 31, 96 + 31)
    End If
    If mlook(mid).wing > 16 Then
        If mlook(mid).arm < 17 Then _PutImage (0, 0)-(31, 31), part&, tempi&, ((mlook(mid).arm - 1) * 32, 32)-((mlook(mid).arm - 1) * 32 + 31, 32 + 31)
        If mlook(mid).arm > 16 Then _PutImage (7, 12)-(38, 43), part2&, tempi&, ((mlook(mid).arm - 17) * 32, 32)-((mlook(mid).arm - 17) * 32 + 31, 32 + 31)
    Else
        If Rnd * 100 < 67 Then _PutImage (0, 0)-(31, 31), part&, tempi&, ((mlook(mid).arm - 1) * 32, 32)-((mlook(mid).arm - 1) * 32 + 31, 32 + 31)
    End If
    _PutImage (0 - Int(hs * .8), 0)-(31 + Int(hs * .8), 31), part&, tempi&, ((mlook(mid).torso - 1) * 32, 64)-((mlook(mid).torso - 1) * 32 + 31, 64 + 31)
    If mlook(mid).head < 17 Then
        _PutImage (0 - hs, 0)-(31 + hs, 31), part&, tempi&, ((mlook(mid).head - 1) * 32, 0)-((mlook(mid).head - 1) * 32 + 31, 31)
    Else
        If mlook(mid).arm > 16 Then
            _PutImage (7, 0)-(38, 31), part2&, tempi&, ((mlook(mid).head - 17) * 32, 0)-((mlook(mid).head - 17) * 32 + 31, 31)
        Else
            _PutImage (1, -6)-(32, 25), part2&, tempi&, ((mlook(mid).head - 17) * 32, 0)-((mlook(mid).head - 17) * 32 + 31, 31)
        End If
    End If
    _Source tempi&
    'repaint source image with generate color values for new monster sprite
    For y = 0 To 63
        For x = 0 To 63
            Select Case Point(x, y)
                Case kk1
                    PSet (x, y), mlook(mid).k1
                Case kk2
                    PSet (x, y), mlook(mid).k2
                Case kk3
                    PSet (x, y), mlook(mid).k3
                Case kk4
                    PSet (x, y), mlook(mid).k4
                Case kk5
                    PSet (x, y), mlook(mid).k5
                Case kk6
                    PSet (x, y), mlook(mid).k6
            End Select
        Next x
    Next y
    'generated image in tempi& is rendered to ms& as a 64 by 64 sprite
    If mlook(mid).xsiz = 64 And mlook(mid).ysiz = 64 Then
        If mlook(mid).arm < 17 Then
            _PutImage (Mx, my)-(Mx + 63, my + 63), tempi&, ms&, (0, 0)-(31, 31)
        Else
            _PutImage (Mx, my)-(Mx + 63, my + 63), tempi&, ms&, (0, 0)-(63, 63)
        End If
    Else
        tx = Mx: ty = my
        tx = tx + Int(64 - mlook(mid).xsiz) / 2
        If mlook(mid).wing < 17 Then
            ty = ty + Int((64 - mlook(mid).ysiz) / 2)
        Else
            ty = ty + (64 - mlook(mid).ysiz)
        End If

        If mlook(mid).arm < 17 Then
            _PutImage (tx, ty)-(tx + mlook(mid).xsiz - 1, ty + mlook(mid).ysiz - 1), tempi&, ms&, (0, 0)-(31, 31)
        Else
            _PutImage (Mx, my)-(Mx + 63, my + 63), tempi&, ms&, (0, 0)-(63, 63)
        End If

    End If
    _Source ms&
    _Dest ms&
    _FreeImage tempi&
End Sub

'================================
'PNG file saved using BASIMAGE1&
'================================
'EXAMPLE USAGE OF BASIMAGE1&
'===========================
'SCREEN _NEWIMAGE(600, 600, 32)
'pic& = BASIMAGE1&: _PUTIMAGE (0, 0), pic&

Function BASIMAGE1& 'mparts32a.png
    v& = _NewImage(512, 160, 32)
    Dim m As _MEM: m = _MemImage(v&)
    A$ = ""
    A$ = A$ + "haIkM^PUSS325]gTICFKb<CVJD7<6#X?0>a?M>g^Zh?P42YWTCBeoi?oiiO0"
    A$ = A$ + "00000g:NEZ^>0jcS7nkW6iJG]>UU_^Rn?C6ILj>7Coc?olOTem1jC;_WCee;"
    A$ = A$ + "`W7c>6UGb^NOgl_WaiI=G#EcodlA5n_YWePkKniSX]CceTboJUM5;X]3NKb:"
    A$ = A$ + "ogjnnFhao6TYTEN7=gSfO;U36I\?[foEU_5mWIjkd:Eef_;nW[i`7oWYf?e_"
    A$ = A$ + "dO?[H#VnogiLOlgOZ]n3je\kiNUjgiUXc1NeVjERBcQ?>CJ\G6S5KjMWSmi\"
    A$ = A$ + "6PNmoAYmcekkATmoBm_m>O4m7dLnM7_]\WFI6K=cL5]lMJ^Odal[RoKmkBn?"
    A$ = A$ + "[mj8=7#V?cO]fOFjoFnOge1Yaf=]NZoin=ViPOVNkW2]]:enSJL8]]iMm?A="
    A$ = A$ + "OPTf?=>4E\Wgf\joS:7h]nnkek:mjhbmdkKkMnmGGREoilclimJ[dkoOO=NO"
    A$ = A$ + ">#okM=EkGZ4I<_W_cZ>H]7X\doKnRjg\RodmH#mOK_9Akk\mOK\7_N`;LO7a"
    A$ = A$ + "c0#cgJeQ8bkN??oAoB?F<nlhciV^VK9m_8Z;7WcEkIa5kc2_bnoF<hLKnM>#"
    A$ = A$ + "liNf]oXeoYmcBon^k[i[]ZGilJb\[C?WX?C[4M^7?ncGCD6e1Z^3?O<CmoZN"
    A$ = A$ + "n7e?oS]oSHooJiPmbochIQKioHRofko?bnMYeoAom8go[\foaiJYaS8Ko_Si"
    A$ = A$ + "lm46oc0BJ_VdS5UO7]DEm8^Lo7???Vk\n7=W<ZH0mIPGacno]_O?><jnmcm7"
    A$ = A$ + "W7oWM<8[LNknPlRmJc1nk_WGO#UioG1oCc1b>gCbgID7ZFooMmhH^?O<#Fan"
    A$ = A$ + "\WoUn\\KnWFGNERncm8oi>BSmdS7U_Y5]hO[^4MN#d]G_aQ\6oCilhmLeoUR"
    A$ = A$ + "1Ioi\nZ4kim1I_6P\co_:nWWoGAK?keoDicoGcOJeW<bkZH>P:m_7mo8GkQF"
    A$ = A$ + "O>_TUF#EO7OUnN^TMm8[aKJDalOBeQ:l=?fGEO#eO7g[>_GBk9cfN5iOEmio"
    A$ = A$ + "CZ?P7oc<fGel_lenUiLPB?32Jn#F?k1nkg5Om7O[OWK_JDU^CSZdO1gGdbi["
    A$ = A$ + "H\#Ece9]6P\en_:[1>K^[jolj0_0MO004=FJ<g1mWg]ekmOoKZTZNo?YO_jT"
    A$ = A$ + "FoWdgEX_Yf?00^gLUfo?hNBE_o3Dmof_gdNcDoG:6DMO200^7`ejQf?h^0EW"
    A$ = A$ + "Wnc<en100000i3omn1_7#000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000008KNlhYk[UF^2eiAZkEHC0000P[:_dklZiedmS"
    A$ = A$ + "DoWGlD?FAc^M_Idf00000FUAd]mJ[7okohijSFogke\3=kMJ;0000P<h]^mJ"
    A$ = A$ + "[5`Sn_DIg]7_nHWeU<JG00000kTGjeoBljoDRFoOT[oWOnIIonb6G5MO\>40"
    A$ = A$ + "X6`h>`W6IYoOUfo?mjcDo?J]I<oConY6ObnhCWZcC_:ko00^2\jJ0VIooAli"
    A$ = A$ + "ToU=o4foOF[oYZlY[:IZ93mOMZ>7=2og:XOojBFiLOJcoVQn?_4Yn_gagkHN"
    A$ = A$ + "PA\AdjcHn7KPnoePZOobRboHlge6Xo;SVn_g?OPOZkoWfG=COf\gGEcoLgO^"
    A$ = A$ + "ddfN4aQX]og2#o7l]ego9W3`eoijnF[3PZmkEoOWOg3gQMU:SLmSj?XoG3#o"
    A$ = A$ + "oJ0do1Egg7EooZi0JJ]kjkZW\?OdEcg6oJodfb^Ko[6KjY[_Z^??7dZ]k9o#"
    A$ = A$ + "ZneCoOWi=kTGe]Gi#]OJMM=69WSO_AYo_RmmTK]Sl_Zm_FnoW^ok=nkZ4o_R"
    A$ = A$ + "nWGFmjlj_MenW]ndKOgl[SO^M\N0ng3`8en]ZccdnmHgIc1YmWFWKDlXok9n"
    A$ = A$ + "8EoGAo_Yofc6][KUL>^mXJoLMDZN_f?7aOm77l6?Wc[?6M^]IcoV=o<;okAo"
    A$ = A$ + "mCdo_:kBoOUfo>l[7o_[jAEngS?6iLSjO?j[cL]c`LjoS[mcK;mR7N>WU=_R"
    A$ = A$ + "SolZo?jjONEFiioCeQiG[T>l:iK=KZYYWYn?enSXo[5?kYockkUb[\VSa:?L"
    A$ = A$ + "Vlc\mO_bWVo]Z?I7oGegcfngU_cdo]aZlRdkAPdiX7K6OOEdo7GgOOn\GMHd"
    A$ = A$ + "c_Sl`X7oe:F]9[fWfme[nXmLcUdcddoKon<J_LOZYg?Zo7YN`7[bGOa<joBf"
    A$ = A$ + "dboBiBc<7b>\E5nWNM[lnUL5l?UIV?HWaoAQFFeocD7ZfoJmSknjehhlgc\?"
    A$ = A$ + "jSkIO?eSeHDOZE7lFGe\gXiPI>n[EFM]Dcd7XYc?Cng:?;09=l<\QfcE#3JL"
    A$ = A$ + "C39Kj=_IfL_MH[Zmo>XJo_2k>no9ioXbo[^?e;[Zmof>[]60M]LYm8^_e0\["
    A$ = A$ + "e?\R6JEiokX^g\3oWN\c>dNYfJde1_bc_OG]59MoSijfjoB7KTH`ZkMK7iaE"
    A$ = A$ + "koMAenOejM5fIWJVcH[ZmOU\jlnkbNLmN[?OCFkoIUeP\J<HUk_baOBJgcdf"
    A$ = A$ + "We6Nn\n=R]6mmPO7Jolfb:jo[ffgeW9R\hCD_lKRM7oK[W4n_nnfN\SmmOfV"
    A$ = A$ + "Smg`_Mml7Tlo<[1IeHiXgGeiOljl:jo[HSMfn7EkMWaoNOVl\^WMikZRmc0d"
    A$ = A$ + "oo^RoS<oC4?_TAONFE?oKE\KMggfeWnkiWkLM[1YB^JiOk#o_BlZ1^kmnCmO"
    A$ = A$ + "4[[hK5XooM5oQn?doedoeO_kgkNFfeW7a<h^Vo55SlIW5joebWfkGjg6A4o7"
    A$ = A$ + "aVAeg?ZnO4n_jnfN4YnXU]?Z=7gc[Tni1XjH]ENBUSon6ITg3lM[mC[3#k_?"
    A$ = A$ + "A\o?#maOXooI<gKdjojW?_gWb[jk7:]4eh_?Ul`MbXOoIQn?0D3E[oOggoEE"
    A$ = A$ + "jogMJi6lONe]mW2Sli^;2MjXFG10l=aEAooCYM]KRhmNoGkN]O^kE3ok9g>S"
    A$ = A$ + "EAJk?5l^oOXo30e0_Le]kg6_:_VS:ZhOcfEg>1g?lngn^6kJ<#[<cO;R0Pk4"
    A$ = A$ + "AZA3mO4o10;hJdkBoGbf00h8#o1aO0X:JkC?Zlokng3C0000P[8=]iXdoSbf"
    A$ = A$ + "00000000000000000000000000000000`7do6:M7okY40000`M3iooZ4om]6"
    A$ = A$ + "0000hK4;MOXm30000lmaaooYfNM0H]000000O7dnoWJKmogW_jj;00000H?h"
    A$ = A$ + "IOo]e0DMM500000\?`cl70000hnP_mnO_F;#eooI8l?l?lOMn_jWeIeooYFe"
    A$ = A$ + "ooIHeaoZmOVioGagooZ7oGmh?hOhOho:eOZM_>E<o7=NcmOfm5_dJZNm7Eho"
    A$ = A$ + "FNG;o?kl`Nki?[e4Emhok\oKSm[L?0gih?lOmno:XoWIkWFX_FjLA6_YkgTZ"
    A$ = A$ + "oUEOQVocegio\g_2?goS?7RFlohaR^>XEbXo_Jog[l]gn[fol2M=HgQhoE8o"
    A$ = A$ + "[bgccFo]f?[<f7IO#;6c;llo<d0[:gS__ofN`bhi0LENooiJn_JklS5IO#5i"
    A$ = A$ + "n`o`oNlMTe1nl\m:AlLYmF7R\?XbmodVW[be0`k?bkmOfO^GTJPWmea36MN7"
    A$ = A$ + "eWWeoO4FNX?MoHOooikcgRXj7hU\goE_Bfn_jfoMboB59=a8l]Vf[eacZ>TA"
    A$ = A$ + "k_QlLNiYogCk?3mhZRkNcob#oohW5^g?;jHckNL#cWoL0N_OhmF?lngl_S[1"
    A$ = A$ + "HoJ`Bjl]fMFjolH>ogSL<0eoBSmcdoEgnUlOdnnZgnSdoliIel?mlAF7\lOT"
    A$ = A$ + "aoN_oSAkkFkEboOkkoW^7H]noLN6hJjQaeoceoeboRCooaQh_ToS?nof?jmo"
    A$ = A$ + "a?>DKO8AjChOhoZm?OO7l2mlEjo8S1di0iU<fo?G[Wnck`WoYNaohk3Zjmni"
    A$ = A$ + "lWkAjNno]m7cco_UCaOF7e4o]lO>iogeio_Bn?[WkmE]m3oW_oik1UGRN^_g"
    A$ = A$ + "e3i?70I5oYm3I]oONO#Eao[Rn?Ec_U3#_^X[3Jao\eoioNfjoIn\gQokoN0W"
    A$ = A$ + "M<XbiN[\M;eoWAmXBo;=g7O_8I<o7]MWMN8e7Bal<Z3bm3I^n[Lenin\Ug9o"
    A$ = A$ + "NA5anoUO_>TRoI4CZjmO[AESmPoUeo[#;\:mgZmOe[oZBoK]gWF93mO]aOA_"
    A$ = A$ + "GLNajmR9knQ\dnieQ:Fg1=fCo<1dR3k\n#eki]INlohe6og3PSn?Omo<ciQo"
    A$ = A$ + "]mMeeS\RmLoGeJoZ:f3mojgoOc?lhNVS5Xk3>Sh^F^`g_n?o_k_WoL0Bm;Om"
    A$ = A$ + "2a5;>>>8;]oGLWeO_bn_bj#Fnm:ho[JoO6nFjIOf:iY3DkkoO[8]oolj3Z9f"
    A$ = A$ + "c[3Emn>lKKFnIo_[j3M?eWG7`ihOc_dW1#LaRcko?cnOjW5i:nL`L5l?]D]o"
    A$ = A$ + "cLn?YnP\m==6DQo_2iOEjo<o>7O5mOE8m<XcF7FZ^DCkGnoCNb:f;5ocL=`g"
    A$ = A$ + "alo[4G1m_Z[3EcM^]3^O8Y1EUnoeXmOnmU_RhnaeSToJ0Z^O1000#\Lgeok5"
    A$ = A$ + "3Zag?>]6PlR5#k700Pk6g9=O]fN]?gmc_?4E7G0000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "`eR7?NDNM000000D3HM000000i2_TUOOYioROni7aOFML10000hKUGj\lBFJ"
    A$ = A$ + "_JjnA[ooZ9cAkLA73h[i:oeP9gncboE`8iFI<FXZeO30G1bN>G`_ddjcFogB"
    A$ = A$ + "cWncHlmI]O;moXc9[Do_Gk?CoWI<_UOcoI_c51_bcOA[dNM6mo=XiKIkk[Vo"
    A$ = A$ + "[H]gE=n[JZJl?__GZl]goCejU8ff=doim3J_>SL_:Nn7m6k7Yo]bgcN\#CkW"
    A$ = A$ + "^>P\d0Y[k`jHO[no5geaOdH]gS7Ik_Re0d[l=goGecmOE]oEWG6jomca^:[1"
    A$ = A$ + "8bHPfHm<W3h5Dm^F1joihOJo]f[SRF>n_ckNLnWfanFeomZm7E<`KYM]a43N"
    A$ = A$ + "h#oIoja]B5kk_e^WmmmO7eCJ\]Rh_FoQf[gOlggH[X63>jHo86ogFk;mWN>G"
    A$ = A$ + "4Dico_JmgZmo;bNlgkl\kUn?GG]M<]alBm9kZ>A7[YEhW;ZnoNkoL_nllNn7"
    A$ = A$ + "]m]jLCk#kGjie^B\?[h_FNHTijF]mMN][FGb#gG;G2?oOXo[mj<l_WS5Ilgk"
    A$ = A$ + "aSZ=Z=^Oga6NY=VCSIe8m`amPbWoimif[?Ueom>7g>fKb\OFoYc7g^WEVS^R"
    A$ = A$ + "h_FnXdn?SJ>PAeFSIMXeon_X=f>balBDecoGKo=deP4MkgboI4kYe1]GWQom"
    A$ = A$ + "L\\kogILPK7[G?be>CmPZ_c?>_o?be1hki?_OmoIO^odHg>bm6mcjg>en[:n"
    A$ = A$ + "[5GcLnWAJGI^oo\lI[_oEi:lloO1oio7]oJnT>oVDM9JMXNn?Sh#fSodjkYn"
    A$ = A$ + "?ceoY5ogajodbS\N]W[MVn8;m;J<Gbfle1\ShO5_oclmokenSNmST3jM=5JJ"
    A$ = A$ + "oc_gO?koLO?30===_co\C=aNJ\iX1GgkobEjioo2ncM<JoAm[D^F6kmo:hoG"
    A$ = A$ + "8iW<eo[doA7oKfHgjoS6S\dnYW_mkJaT8NF0Ifo?SnO[4gg7?O?7PFlOgc9W"
    A$ = A$ + "KlgW_ddoSXn8Ig<Nf7FJlImlG^2j?dnl\mIe]oZmO;^kiHOSn?kh_V^9meBW"
    A$ = A$ + "Kea6FjGLm]NkcOg[C?KmO>J]EJLakcXOUjUeNPfQf_EkdkaF=7LEmo8b;ddO"
    A$ = A$ + "SZ_FZOekaS`oG1m7NAZoHg[7bbOkH>GhoajgkMl8X2mOn?]JoBgc<nDjmkWG"
    A$ = A$ + "XW?[?C>BjMAoL0i5[_C0SlicK78]>PM5;T6?i9ocjno4lo<kaFkLkD3bZ_=S"
    A$ = A$ + "W5^FL^giR\NXEfmJoT:dH_fiRboSNn8KoFWKWnGjWm>ggBlG[]6AkfBk_gL#"
    A$ = A$ + "d[;Rf_dN[cHof_`jc2HV_gWJe=nWA`MU_YE6iJndl_dWg1__okAlnagkml9R"
    A$ = A$ + "nN^mKS[iS_]>G4<Bn#Te3000000000000000`H8m0D[`>kjIgVaW9K`J<K>f"
    A$ = A$ + "WRon4hO3:7hCcn00HN>XEC7[>Qf]UMT\WfWI[MZo;iSNGoZeQI\5ONbEV[L7"
    A$ = A$ + "fJf?CKSLOJiGkHmWNlWf7LPEcmlJOYnYMZAfcnBnJGe1=kPe000G7>YGcd^g"
    A$ = A$ + "V]4\WddS_^^MYoB]Ug?3i[^6PI\UE<Khnc=I[XeoedKgicOZga5cGg`j0DGC"
    A$ = A$ + "=K<0gOl[OJoK\nK9mO_[=H4o;EGFe^00HO#WCPZI^Cmo3fEiI08ioEeOUlO?"
    A$ = A$ + "]ONIdj#?k8I;aiYWDgfB;CbFFJeAXoC?gO[CJJbCX1OX]b]I_S_Qe1HZk;eF"
    A$ = A$ + "MdO=Mo_SlYNfNFogkJlTk>JNgZfCkId<]o7dNEkoZi76G=k5=lB6fS?g#Djo"
    A$ = A$ + "FfT[Ec_gAKgBf`bNJJf]bXjoFfY[n_3=KknL5KXH;jO33>=nIR_GkNnNbgn>"
    A$ = A$ + "bM8GAK?i[ToidVZJeCD7VaF7j_hmM\m[kZoGhn]\EkHBeGjimjoI\5?gLdln"
    A$ = A$ + "E]gYe9]XViXfC[oOIokL]dI\n0;OddXKa[Ee\7eNcXc<:FnPXBlolKIjH]Ck"
    A$ = A$ + "eb?>T^4Pno1K;Xog>WTfmXj_JjoBfZWfooMW>[3cH;nl3lHo8[1H6KAooY8^"
    A$ = A$ + "V]eJ3D7gadhU>n1mOQiW6IN[CiNCH??JfNZ3RamAeoUHfnO5K9MON\[GogkJ"
    A$ = A$ + "lNONmkZfC]OKB=hA]WhJ5fUoM^6TA?N?o?ba?XECZ_c^60^fOcVFfCKnmIFG"
    A$ = A$ + "`XfRX>`hgbhion]W7moAb1VAo_5KXG;oN79f;Mo]OGoje;YYoKXmdK^#][oT"
    A$ = A$ + "]4\SfJ0hom=\kh>beBeo]nkQ\YV]QVIgL_1F;QGMK[ja:f`cm\UnO7jRJG_G"
    A$ = A$ + "o?Z=6a^^b16dNMSGc<oG_aP?jhOWJf^l_T]=63hmhml_gSOB[VEW7M=0JJom"
    A$ = A$ + "\WfLlcZohmh4U15n]h?oO<k]jlNRmcFfcHnLYe0#CWm6ke\SemHElD7>jknf"
    A$ = A$ + "jMoEWi;LX1XMMFfiLmolJ0\Nf0RSm4dimlo52WZgBcQe97Djj7IND_i]C_n1"
    A$ = A$ + "SlnCi1:]oQjoE\UUok?gR]omLokd_kXN\Bo^JNPSaQZnGA_N9o;HC[kEcNSj"
    A$ = A$ + "O;Kogi<Xin;^60E]OQe0`_GYihiQcNnGkj]\ao[:dQO;mc[OjfNQVo?ilP=]"
    A$ = A$ + "jG8YokEoUN_DkIMOdRdDWSjoSeUcfn`LFNk3l<o_Ck8g6VO=0cZm[Vk8X1fm"
    A$ = A$ + "nU^?Wi_[Tk^Sa#R]KWJhN_?]nMZo?DGH`_^E^?jmKEG\>f\gcQj_Wn>?mOJJ"
    A$ = A$ + "_MbQ\dm697V?FAeVmbQeJ7SjO9k8LoWfkoCifA_e0dKOoLKMN^_WogiTdAX7"
    A$ = A$ + "GcoLM7=mXciR??gn5igRNnocQ\UFnWDKOhnoNfCa>lh=oWJm1BaIj?eRm7kg"
    A$ = A$ + "8A#QGk]og[]>=g]#\fclhSL?DOYg>>ZgCoKK_GmOnmfMOoMVcYGNC_kARAbQ"
    A$ = A$ + "ia?Co?QfaYnB3K8eg9f^5`[okMMklJeZOF7cCkCcWW6ohY?gcH<]aKMb54cG"
    A$ = A$ + "UnM?nGHL^h_?C>lXngiH7jW?OejmooCnWWO>Bg3goF?oOjeZY5IflE^?j[?W"
    A$ = A$ + "?B;mRQm:NbSo]8>7lC3mo9ko?I?Si2eRiBfB;nKM_Fjfo=2bNmQXKGo[O?lG"
    A$ = A$ + "[>WVeH9]c=am`e]edkgQn_foo8ZfF<V7cUn_Um<\cdc3>alNVJUJS]ldo[L_"
    A$ = A$ + "ShoNj]LMD[[SKcAFSPT]lJ7YkAmh3d?^T6XbLOWjo\bUmjK9kH<gkFJo;<>`"
    A$ = A$ + "]6^G4\A_?oOdkGC?YWnSdmAO]NNK[\#K^;oFDkoG9Nk]?a87`S6N_h_emjEo"
    A$ = A$ + "G[dgojg7g6RcajM>4?7[SMOgneoo`H]e68aXf`mL>B]SIVkQI7CmoM>>XC>_"
    A$ = A$ + "ZnU7]V1dS6eoN_nMJ?][eS=jM=M?OajORJN6JhRnfam^Dk_WoGXmOJ=0JncK"
    A$ = A$ + "MRM=NnnoA_N=ML_J?lO_mJkLhFaIlL8n]HjoM?gW#OTUom47W=noaXo?cl>N"
    A$ = A$ + "7S#Nmkf_noG:?RVn8[Ehdgo_EVCIdiYLT7^DMI#OIYE=E>P`m^RV]7kYM=ch"
    A$ = A$ + "O[ka:^_bJ3nXdoUZ7N^N_nOVLl1^_NmoZ_G0?]OnoReAfmiEki5kFoYmjnio"
    A$ = A$ + "]RD<dZH5ko]hJlG?=TIbmM>?XWhh\aO[Ho3BXUnkWR`>]QdmII3aa\lh]B\D"
    A$ = A$ + "klRfbalPogH`5emUNFo3[1]bJ0VDgM8o>heifoN6[IY5XLMSjoIRMkbNlkQ6"
    A$ = A$ + "?k6g6ln>d_g[_FY_LTi1kjO7ji^Vo8#mO[Ho\]o3col7iofmhicogXgGSAdo"
    A$ = A$ + "]^gEeoo=Nf:]kmYaalL=Smg#0GJ:SL=3ZmWMlW[?[YU?Sn?gN^eoed`OLL<X"
    A$ = A$ + "W[]gl7oM<T`NgWmio;MlAb1WI^eEdm7JN`7\WOaVVgkDo9_][i?Y[QM_ShoC"
    A$ = A$ + "iU2cm[mJ][MhnQ>J>Kond6o<#>UjJdLT70mOfLA<Rnn^Bjoo6C?FNO\VmNNj"
    A$ = A$ + "eJgg<8UogCoGkn^jaO^f]dJ0J7cZnke>3?neH>0_GO?mO_Joj]om^60gJ[:c"
    A$ = A$ + "c<cj0VA?gkekYnha6V[o[CMaSom=gdhJkN_^:#CkOIK:eW8HG?JnKAogSoM`"
    A$ = A$ + "#i]6SM^:dd9lXS<[n3e7CWCml99Fnld[CMLRRnoWHlW[A;Eld_=[MDW_GJnO"
    A$ = A$ + "]aO:cedKl[VV=mLlggNifniW50mhZOno]HTiE\d;5#<gN2]lI_?eL0WaTE_?"
    A$ = A$ + "=o[V?b>?mnlN?Fn_BjUK4]mQnO]D]nSklXW?9abWWNM:SC4dSF]O]jhoOK:6"
    A$ = A$ + "UMXoglCga?2aF=]o3f`hnd6oZYakMOoWS1Wg__fJ3VFSOee8\bLPKnN5kojX"
    A$ = A$ + "S_ckUJ3Oc19koI_g[0AYkke?^d]EdN?T3`7SXlkCWo>RoWH<#ED]nSklWW?9"
    A$ = A$ + "abWWNM:i_6JDOZao;Yn_BL^kh?Ye0H<6V_WofaTNN0nj;eOVodcM:OB[nZL="
    A$ = A$ + "khn?TGkI>#[i_GinML?Fi0FG[4BgO_j1oJU^O?f`:7n^R7mOgfZSMVEoOHoK"
    A$ = A$ + "T?GMlVS7mWA]UVmVEooMY5;UOMXiXMdoW]_]jhO?mO=MkMI7ailWH>P^SmMH"
    A$ = A$ + "WEdnO77lmnnOJoYCTSimNhLb6mVgZcLG[H3[j9?^Hfg?Q=lVKe^fI>g\nk^P"
    A$ = A$ + "eheY]Yal9STk^5oo1[og>o8fZengUn?A1ioiTbbQS7BnYeLZ;^6P[#l_W^mH"
    A$ = A$ + "]Ua]SXn5;nf??IMK\Zfokh`iWgodiH>VghDkMPlBGJgN\QCk8f_9=VBX]h^_"
    A$ = A$ + "Gb6:joW\QR6#?o_3kL7IdeX?T]mToE\o[6=mWMIG?j?_SGR:7<Nb^ncWWG6:"
    A$ = A$ + "GDCOGX?DklFkgj:6oed]K=QAlYU]j>>AI_03?NKBk\3]ogaRS?_o^iLMd`LK"
    A$ = A$ + "S1G3#GMKW[[eeJ0jYo[53LdgIM_NdokIkML=SLMg16]?NJoXT;G]o[VgcGOD"
    A$ = A$ + "KHGj?dO_i39KcD:j#?mocGO[d=?L`m`<bNWTjg_:aO9MkAenGaF7RE5Zo_;]"
    A$ = A$ + "O_fCCWWGoMef5^7?[S`<7N`i[j>6BCoGIlbBmo:e5ne;F7HG[Wj0oje\g8]W"
    A$ = A$ + "_MZ#;T?omMX=[a^eLVa?4E2W<ZnokkSN_dn3ei\T>WUnoPcUN5Ro]SE^n_Sm"
    A$ = A$ + "[i1an]9]ETHZmgAcNWf[G^oB];_jo?4H#]o3fc`Vl[eSm6agkdN0`g>[XQCD"
    A$ = A$ + "HLOoWloo?_0M_hFJoWdoEd]JL`^GXenaABc>;K9Zo_Sio_jjomFCiPi;cHCA"
    A$ = A$ + "]j9en?HC5kZfg_1]OaL07joBcE`_6_nmDMPIc[FN80D9ne`?Zm_]kg#WgcLR"
    A$ = A$ + "Z[1`imOE#JkBIH;AmjM=oo6F?AHim:k9OVmn;V;Z]>eNjoK:?EK<PHOe6en5"
    A$ = A$ + "c[VLoocD?R`V0`g<bUSjfBJgbgoik[kmKll7Y7cem[]gS;\fo;fQ^o<fDKmJ"
    A$ = A$ + "[WC5SMg5Ji5[V_<ZMGIm63EOjYo7Do3O=PlcacEhWKFO:U7^ZM1Pk0Ne]gem"
    A$ = A$ + "Mb>CZKo9YgOE8Jmi[ZnO;OAkh[ZokeOIT_JiS<jKdlQV?gej?Sbf0000n\9k"
    A$ = A$ + "e8ReT:4C6lm4hZHK00000`lLWOnC00000PLiOdR\%%h1"
    btemp$ = ""
    For i& = 1 To Len(A$) Step 4: B$ = Mid$(A$, i&, 4)
        If InStr(1, B$, "%") Then
            For C% = 1 To Len(B$): F$ = Mid$(B$, C%, 1)
                If F$ <> "%" Then C$ = C$ + F$
            Next: B$ = C$: End If: For j = 1 To Len(B$)
            If Mid$(B$, j, 1) = "#" Then
        Mid$(B$, j) = "@": End If: Next
        For t% = Len(B$) To 1 Step -1
            B& = B& * 64 + Asc(Mid$(B$, t%)) - 48
            Next: X$ = "": For t% = 1 To Len(B$) - 1
            X$ = X$ + Chr$(B& And 255): B& = B& \ 256
    Next: btemp$ = btemp$ + X$: Next
    btemp$ = _Inflate$(btemp$)
    _MemPut m, m.OFFSET, btemp$: _MemFree m
    BASIMAGE1& = _CopyImage(v&): _FreeImage v&
End Function
Function BASIMAGE2& 'beastparts00.png
    v& = _NewImage(768, 96, 32)
    Dim m As _MEM: m = _MemImage(v&)
    A$ = ""
    A$ = A$ + "haIkM6XLSS326NO9m;inBVKjeEa84P#8TTKc_WiKJZSSAP#`_LjNgOncONm7000000000O4leaY73000000000f3om_omhS1000000000kQ[[[S?60000000"
    A$ = A$ + "0hW8OYU^LlCAGmG3iC?600000000Pb?Qo6e;JnYjooI<^oI\?50000k7??C;J__I]WWW9EiJ6iJ1PEaGiH5>mHIGnjn\gcFSZeaY7KM7k?lH;000PcSeN0b\"
    A$ = A$ + "G7EKQV>SNjomL?nY2oIfQWQgcP?Qm0\KokWR>JnHn[jT5>mh10n=#Y?7]O7mLofj3BKX\S?70d3Ym0Tmge]TfMZf:Z64[c;Mon=`>dooeoM1Qb^n\o6hgjN0"
    A$ = A$ + ">anKn9ZQVN\Ra^DA_MkKm>g_=jE?kCYNWfllZWo;jkm`YSAYjg>G[ObJ2P?7fAmO==mlgWoJ_OnOj#[c]jJN5mGNk[meemYo\?o=VcMZeBoddFBem_2moR5g"
    A$ = A$ + "fDoN]o^Vd>o_=n:<KYoogfJNYiobOV_N>ONf]X]_JWeVWOEno9bok]FOGe2l\ogCUK^M^nk=WN\\IXme>ao>gjYoOUfmTeo;aI=mo[JN`kcfjCiIPi9?igVF"
    A$ = A$ + "PCYooWbn8ijng]foM\7PCYokY`Y[oOB:caFco[:7XXaWJ3^nOnkmKboY??]2delB_OfSQbcekU`c2l[O_<>FA_o7Wn3Zfo?Xm1DR]dmjF>fY^_?EmolJOO7o"
    A$ = A$ + "[[1^>KK_nVnLogaLaCUMYCFjX<?TMM#Y_;=^MFeJOZ_EONi_go\oK1#CG]XnkbZc5\>#cFER?FlN0:VBCoc:dn#c16iH5SSBmO9m?[\n_7]M[Fo7==CjHGjo"
    A$ = A$ + "UFgGhgZnoblkgJ\oWMZdoOO^EeoUZoWZ3#klIJgkL\[>[o^C>GVFdoYe_ZFc7RnOJm?9FEm?NMM]jmoF[oC]OYnf>doc?XceN>oZV7NB893LUc1J7leQFkEM"
    A$ = A$ + "4T^WF#o<IHO[nmFj0:J5VOn]mi]I1ojC;?#CkokB2kEo_TiGejM[]n8hn;]>\D=^bj_EIc;R6_;U00oJFeLo^eog^nfj8gmnk=gW63bfoOKogc_Lmn]WKEim"
    A$ = A$ + "LMnEj^gTnobQTVSU[oWmlnooij=mM0DEoCX_cZ\;O<L2momZmCGo]bjoWboifGjHEfGBVC_HO6c1Fb\Tdl]SlO=oLUkkm]NbVhmEcL1MlTQnkB]MYLMYn0le"
    A$ = A$ + "2cJo_ebGlO=M0]jnYi8CIO1ml=;24doOgG>_lRA:0^bloN7[bfSDoOMSQ_70Bmoofn[9fGY_cQo_Bmom\Ofi0nenoNDl:Sen?]loJ]nG2jo_?g:\O_WkcZnN"
    A$ = A$ + "P7a^[JLlN^mBFkUdk?[=EenHdoIEiNda4m_cSfG_WjoLm#goK]K]eo;iSUj;lG_[h_da^doKM\3mo_[_O_Ph=Ijgml_KmN[9_C:oVnkL=1dWAO6J_Y?K7^>O"
    A$ = A$ + "ZFgfW5D>f_FGoEc_G7CTeo?Um5ddC3hEf_I?09[mG=9DHAgo>b<GT?FT<o:]I[]_HfoJ;S1ZnOja^eoCco[OmjdoGRodW9Pd_W_=[eogcn[Foo^mogfVe[Yd"
    A$ = A$ + "3BjL[`ndn1b?_7iofLb9g_mkK#Bo9omcLNoo[WGFgcFoEFHnekWEM8JoS6M7\emUgLEiNllPBmXknmkAokmLQ\noEKK[WgI9^\JOgboGE<XTREUkCbmZF3lW"
    A$ = A$ + "LngQ\Jno[K=I_eRVHmnN7geM_]Ofjmj=>Jng2f[f_GZI]_EN>_YCf?go_mo;EddoWI_oV6[3ZoOI[o8colGC_^<]_dHiCFo?MnWO^EIGnL>_N0_^`ZRoWCoo"
    A$ = A$ + ";GfWF?8KOg[mGB\WDKi]>#Uc]2k;YeABkm:d1NbWm?M^WZoGZ0hfNnoTejda`:VgUV;dfoe>\?ggY_NefVnmL8YiIejoYn_DmoEKgZlMNnObk1AGje]nokmM"
    A$ = A$ + "TTV_>SOjJ#ZmGQnONNG[>?io^PFaj#YJmbJoGCMPJoW_7PlenKJOF^^DBJff_H6ZV3]G_3moJ7[bVN\m>63WBooWLlW[oggajdoORH`kL?7\bL#ZN_ZXmRe0"
    A$ = A$ + "bo^]kabdRjh_oWlV_Enoc66mOFel>O^H7kiBSM_^[N>iZ:G\meXnONaJ]oo<coj7`dn_2MOBSYZmQCdn_2moA>b<?<bcM9cWoXTfN?TVm7YY3I_#[X>#I^]g"
    A$ = A$ + "LOV[179_Lef\T?B?hj#FM?8YmKc7?[>6X=6fQ]?Al_\VF:gGkiO\Rn1SHoE>gOo<W8koTll9>A^gZc1Yj\nf>B?G`mXoWngj7mW[hOo_RnYB_WE>_cc1h?__"
    A$ = A$ + "MYmUW3^kWmbYokoQkokH]WU]UnmE?6ddlU_MTRaj\2O]WN?ja:b37EgOffOD=oWFo?M?0YW?B^gdeNlon_fA_0YSEKCnj1jgi1mL[dnBOoKWX7Tda^eo_[h?"
    A$ = A$ + "Eo?gF5]NlJP[Bo_WmO_3moUJ\UiMJnh9bmFM>8m_cR_]Sn?GiL`okO:O70OognoZnkokIZoOgJO]b1g]nOYoV8fImOYO^cHoinn_gSno_]5?7KojoePNdng0"
    A$ = A$ + "BNaS8k1HUjoenknQNn<go3EG_7MoUGWN^8ML8L#7O[8GDJ]a^nn6Tb7UboG]]O2?o3jhP^G`C4o;^oZSodeidW5<5Z^oEe?P6_iDR3kH^oRE7H7JoYfVVkaS"
    A$ = A$ + "9[b^BiMlO^JMHDmolinEZoofn_jnlWFM>0OnHWJoiiPW8oGkINN2modHa>km`];Ul]GM:^ec0NEem]6?[NO0lN[B?7\MZ5#;_OE[1hjkUdncg7#faNNl_gN0"
    A$ = A$ + "b>Vc]QdjoM[o_4;fU]Zc9J?fU]]NnCk^?h^kmNZhOmJLiUOoKFHYm1hOgKdinbJ`M>gC]o>Wo?anNkmgNafdPMPWo?5;a7W#7n9Zo8]okMKKN>g9f3nYjm\k"
    A$ = A$ + "joNeo_WhO[NoEXk_0_W2oHgm1h?WoElLo[mgjeFB?[oE>ocSodWc?GgO9>TN<##o_HN0ijFMN`W:D]Ne?Cbm[1kDmOg=?5mogSWmfoCJ^oDiM5kO2mGBfMgS"
    A$ = A$ + "3jg1`kin=Ymo;:jliolCYF`Yid?oMjhhDciW\nWUfomE7jFgO=WIoOk<oS^oGj?GUmigK9=okJ_OO1o_c7nN0fAlGj0eng38nO6Xjoe?fcg1lgSWmgkSb9on"
    A$ = A$ + "Ondi9llW?UmodiYllO>M<hTioL=okDoWdcNBjk4hgJlodfW>oCeo_CoGjkMnC9n3#loDHmMo^[WmoC2Tg10kUWbcooC6N?gmmMoMoLnYjlgecn7D?OO:mG5m"
    A$ = A$ + "ndONZoFh1P?5hJlYolCCkoGPN>0`NQ[i0?3X??feci7000`=JJloddn30000000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000f7hoG520008:Anoi]X_cISoPjhgY73oTidiODkORa`OokO?Zooeo_>=ZmObe=`oOenLleQd[10`jiW`j__jkAaK?h<jGc_7W#3#"
    A$ = A$ + "Do?;Xfk[SXaoXSgKoneoH_noGjNX49O8jHVhdE4IO`ITkac1OBiOmF[VA=0]ioEjolHOTioI`:oOTHHic^Salhca?cNOkRB_oM[1hYXohdk]7lIcYbmN:[oT"
    A$ = A$ + "#Ck1G3\U>0je7M>Aj#bnI_7QXnOVi6lH`8nh\aRRLgFmobaolmo[Q#cOiJ7MKOZ^C5moS^?\Acoh[SfIn7Gg_ej?]a9O<7gnmWgcfoel3NNa9bo7M]=O_C[H"
    A$ = A$ + "l>Nn5]Fb[7chj4L:moULSCWG`[aLji3`W1ginejJ>cHhIEocZG^UF4=m:AR;N>jYCIgnOFaO=oDkeNH\ho]TG^nomhoSYoGCS4oL^]?AO7Ggo8k58Z>AJlU7"
    A$ = A$ + "[gAlooej>`j?]e5Ao>;nfnS=GWU_[]n_<W_S_;PgiHCjklLfWBO6JofCogFe9h[3nLTgma5YNVE^a9RoJmXXa50HED[m_mekL<#kSNjhBILiEo[DOo<NfOIL"
    A$ = A$ + "4=V>[o?[V<^o[YmGkmVEoomJ1i_30n[;oN^nol#_?S<F\dlO9L>nke\nN#]GFJnYfG;gK5[om^FCKl=Jl_enkK?0FJoOMMeL^X?S3?iOS\o7el_GfiPSXoLf"
    A$ = A$ + "W[C_iiMJo8n??WO6k:]^Y_mcAoOiPGoNGaOYHIiHGaoC?o7:V5XOBfnoCJmg<J<TAON=chOKoc_YoHNmiOcXoU[I9bl3ONNVSXi6chocZ9S[_WW_Kmkle5Ae"
    A$ = A$ + "ogg_Jg;#ig[_VXnON4aoO54Z]Tfg`Zcob#7\Um]FW9Y?8B_2Kk_nm0D\_dl[dN2:_>cnQEf=#^^VfOnHT?7I53cFoWdll^\?OL`[KZGGJ^N;bgcfi^NGk\jo"
    A$ = A$ + "eFW]kiOYNmfaZE4o[[Q]cioQ7[\N:IL?7ImoG7I_n;BlWgK=Fn7_lnndoc_OeS1[oV^;]4b[OS\MT[??R6TXmS]Z=<ja\f?Zo?SV<9oG[?Ufk;MoRjoddN[m"
    A$ = A$ + "2DNoLmocXoo]mM0oJiONj?7anS^N;[jbmbo]F[aIfio8k18cjOdiI9]oUcCWgSH7YcGUW5=ogXOUF<fJLUQn?[J9k`nlkYEN\ee>SmYg3[m`eJoeZoOGaO[3"
    A$ = A$ + "?joV=nG]>K`ioIdf<M^ZajiXno8coUS<kc4Im7_OkhfFZOe]6lM5o_[_ofajdGhEZkocclc8JAbZ^<On>ja<SUIlo<dTEY3QiCB[GX_Fjn<SmkecNmnolk1H"
    A$ = A$ + "VeWlG;E;`ceheWikSRoJYNac6_]6;S^7PLd9>nN0b\_\VmYcYlciefdlJGmK6hinoBPNji\d18MmAfGWToMBko>6gY^Zde>K_5NNPD=>Ik;?WcYWM;7eabjJ"
    A$ = A$ + "lBfWN=c4oiSG[h^ElOfl?]iN[ioASeIPE?WM\nS7ObJmOThok[W576Ild^VQ6J=boB:nCLTKm5TOGco_HjogAnWF?hW^no\R?Amo\dSI]fPFoDK=#Ve9nfGh"
    A$ = A$ + "m9NEM>Zoc?ghnmcCo?M]7oL_D`kL#ij\doK]7P<e6e;ogJ=7OOP[an[O?0ll0:Bk7HTiI_SE_ioFj1ejWaaJ_lJ_O\HJK=\MJojHkM^[Wj\dg;cL<YiiFk?N"
    A$ = A$ + "NP7kBe1EZY;5oK[m?WnONlD:f;=GUaLPDng8coIW34Y6Dfn_ej?jAFjJR6oKj=gik>CgfLMojk3#J>HTeJNR1SToE6S[>_c:oHejoUR9lhSekMBoWnIV]>I_"
    A$ = A$ + "H1mmif:J^YlJdjU0meo7go;[[7]oG6jo[\9kelenBeUWY>==V9mJ[m0Tmc7U??jIO0cD?<VmGkN0TVW[\?kLNkoh=_LTlnAlKnlT7M0mdWWALNWfW[YXGOh\"
    A$ = A$ + "k_XioJc[Ngcg\i3NRoG2kQK4o]L8ko]c9Fc;A\_En_el_F<?klQVlDUn:[`oicmlS<Fo5=nGnmG_?G\jPOO=JcWef#Z7PfLA:[o;l]cfLnkG^fl?J^PF]QEY"
    A$ = A$ + "oWJOY3]LCJnbYmobe7M\8E;D[n7mLF[cVeoYYWdN1IjoSd3<C=Adhe[;nJ>OJmUZ;7anBk1`cn?YGKf[5e63c\fckeJKoigcgXfW?W_JmoNcom6oeb=eRcmb"
    A$ = A$ + "obZ?d>]_D]C;=8[X7SnHZMNeJ>gjmR6oieeKeoOg78kioNaOYgO4kg;oGcnljjA]o`aS1jiTQoCWCi7I\n;Jlom[kD?\gHiF;SRm5R_BaKYho<i0Egg_MF1]"
    A$ = A$ + "8g_MdiO_S5]ihE[mWKOYL#]lT\67cjodeAA]_F=>Y39k<CNA6n_dJ<On]nJJ[emc^70nJJ]eomZ3_jL>[iPE^NDJ\<cJ`Xm<jYoOUk1P?WG=FLh?UlG?G7mJ"
    A$ = A$ + "mVgk[gWneaSaF[ied1TALN7f_D;Uoihj=djeTInUdlNdinI[kk9nOMeZ5<cioNaO]NPNGGe;ogSmURgIVGh]_c8mOljoJnl\[oV=nOAleo?_GI]QeHabfJaD"
    A$ = A$ + "]c[mN;9oW?WD\i0ioS<>TdgYG?H]?c=9k9]N<Ck?SoG^VXS9N_9^mUZoTMl_nIm8kolgOFo_G_^Xm3MKk>[kkEo=cL>=]nFiPIe;^G]cNk1HTehS>^J]O^jo"
    A$ = A$ + "]FGIEGjUbWA:ofCObgn3;WgjmjioNZI#mA[J`NN>0c4oG]mia2]J\B7[XV;OLe<G?#=aI6OFao[;YoKmLnog6bNaO]3?[[lVokInWonIZoJdn?Nj1=ZoC?bH"
    A$ = A$ + "mg\ao;ROfXogiJ0[cCSSdOj=fWAM1^oG<ao>Ac_C2>Y]ncJNEZ7H6j=h[Y\je:UOViJ_ImOJmc8fgbgdZk\2oo>mFfoY_O6nOdnMcZ1DZN[E=H[c?COgAdi8"
    A$ = A$ + "U3>[F\AZ?[]70_aPXe;U]oljOXS7^NNaeO6i0mb_meoSU_YXoWonAjme;F49gLfJ#SHojJF3^WOQJ6BmRTZ9WIMG=ogkn0he6W]F4OM6==Gjg_?G^coJaO]3"
    A$ = A$ + "?[]RJONmAYLQ\lO]j;BmKT>G6n?eobHmO6aoZjMMFGTQ6PG2WW6W[6[9>oOCa=;a0Vnob_TTmiceBg?YlQI]9=GCJMeYdo7aoWY>PF]6[hEVmQ>Yog[?7__X"
    A$ = A$ + "W[e]M5F[cGK;M=Je5VI=_UnVNk18JOXfnmfjHedokM]hM]]Hi9FjoSFk_jNn_iC]mgK=ok9oFjNFUKcbW:W[9oWVCVdg1RWLbE_7PA\?oj6AWQE]Rji4iSX["
    A$ = A$ + "g6eo7Y^HFS79M8G6joGilo87[bnBS5Yah\fGZnRD]mG\Gc_fLVgO6[o;aEAO>1moJn]Dl]7;aoOO_[BnZ?oTfGC?Qfh:SiL[egdkYjlBR[icboW9FhY>FcJR"
    A$ = A$ + "4mojJlkcokeSS^NfC?A_[oKGOIGcE[NPD=iX[5jYk_gi:o^gaQflYge9lm0dcVgaaBhK\HV\mWCo?M^T[oG:oFjJl4gXi]]ebTenonmLL]Jk_HfLaAi4fWnI"
    A$ = A$ + "6=gGO^boAFmm7Y6WWm5<Sm;m2:JneSm_HGK>coA?F]medQ`O_`f]3BmYTj7mCOm_DLm]ogik08SlO?c3Fj1Bao;gG]GOMEMjXioL]7SZ1HZlm1FoJmIR6_?U"
    A$ = A$ + "oc_WN[O\:oo>UZ_mYYlcjoFmjTR7Nj=>BoO]jZ_4R3FG_fWakhP[QYWfO=M?JiTJaBYkSge:ado;E>eOMcFk7Co_DmkRfnggKfl[EOA?nn;]LGUn7dNMgenZ"
    A$ = A$ + "o<JWOfL`MfkO4k;E[Vnj<\OdSl\oHjlie:7MLdnI[edgCk?mjU\K_aVElOTiTE?ogK<6enEe7He2TZ=XM^M\ncC=PE4oYnhkjLdJW\jYmbahm1_^TS_Bc3lH"
    A$ = A$ + "_dLB6nOEXXjngNjb9SHkAkS9mIR>_;=?kijYaZIGgM:oG:6henIFg9RoGbkbao7Co_W?SKK;\6VNNY[WO=lJ1SjoggFim2XM>YgG;VacEigSIboi[9mk[bk3"
    A$ = A$ + "HLk7Co_enYh3>jLOU]EbEdbeNacMEbOZbcYiX2miJN?WiQllP<HdeOSJO]J_cJo\>RKoH8mIc:nGBGe>7OmkmidokF]4Sj5oS>g\ciO?eN7Y?P#1aZcG=NkL"
    A$ = A$ + "=[Jm7]No\k1HThOC_GJmCQWWRD>HKhU6C[?_FlEK>:bl_VmOaomGgWWnNg_a[Z;NDk?J]CYLV8imliN?j7XGk8J?Njno8i>B[I>YoCG;5coUkQYMoTnLAZmF"
    A$ = A$ + "FGc[YZM_T^nXeNYnQLm8ImP]LoI]\SUF]A[MaWoiiQfO>^_fjkSKoHJO\R7d2`dgkU2N7gJOFaL]1di[MNkl^nmmmL]dg[LomHkXfGjgmJOnH`S^SNG;mm6g"
    A$ = A$ + "nf8M]BenlF3D;noe]#Fo_D]nfoo1_Un?YHXF<MTi6YSM>ocSUN]_eHBZfPFm2Y[IDoOTeOlSXjoS6o_Xn[ej6UjYdlikGC3]]ak6kjHNITeOeOnG=Jl[7_UH"
    A$ = A$ + "b[Z[EJL<J?`NSK_m?79WWZO`SmUZMacE6M=g9mOYjQAn\AnlDOPVW5;feG3Z^?HggKT?K4OX]^PnmAJM;oea]OKlSOod[YI7kY[GTlCZ6Z8e>l\6\eGKSiAb"
    A$ = A$ + "MWAo_D]NYkO?moaVcemmkNS]ie_?oeMonVe3>bOmd_gjJUZM>Bmk8fgjeSJO_j=d^FYJgJfGjjlXggjJii7NboKGc[o_QG?cEB4=f;E[KTSWllo8e6TZ]XMN"
    A$ = A$ + "ne\ReOm>l>oWAloR7CLnloonjUeCC?WFmiNaLjiLkooc_8_ddoOOMd1^`=8Boc8JGWmNDn\Do>dj5F^c?9oW?W7eoSDoY^oIlh?]?bhn_MO_Xg3_f_^F#T?g"
    A$ = A$ + "H[oc`n]g3OkmRGgG[?o8SSHjo7ON^_m7Gookl72lh2=FmjBG7l\mmURCBn4__7_7WUnOYnnmV?Td9LaRCSjGNdKZIONNjXaMYJ^m\_TnTXe\ic[JemZkm;[k"
    A$ = A$ + "WnCjeeKmGdhoeEmOc?NdkeVCgNXE7#kjenlA63kNngkH\D_QnCYgKTa#deoN>lT7TAl_9f#eoKDokk?7E[?oWnOFOdOGJ^YoLk]>NZmM5o;onkKROmnBSWIk"
    A$ = A$ + "Q9U?=F]`aF3KM?:g7hooTloae][M?RXmSFC8R]UZ97enAR1SN?XGSVNZ8i#cT36eg[]oLjoYi`BedielkUc?So8UCG^GEmlHWGkmhaZAfk2?O9nc9iUYme^W"
    A$ = A$ + "IIoZiKBN:G3RUmSTOGXfVm[ka[=:Ygg2]a#[Fn8ao_CaR6gmfcCjc<jm8Sa#6coA[38eO9ZmWMm_faZc1TRoJeU][oAo\ejoE7_2fAb^NVC^7o_4gk#Goo]?"
    A$ = A$ + ">FLgjn>K=EnmHTeRI\VB:_HTeFOjn?]?#llXang0LmJjae\ejoS_72NMP8fVjodJ;SKoGEgShfgomPG3=jccVGCOdnCB[37gnc]?BZm;1Aj[UnmbihmVYg_f"
    A$ = A$ + "n?nd^IYmomkclcZ?WB<#K^NdiYHahGRfgkHHFk[U_:Uk:MoYe[WenFfAkj\doG^Nj?i#7gAF[;mIS4g7YOUeLe<eJhgSAo\c<o?Knb[;klVAW3SFW_L4anc6"
    A$ = A$ + "oOW7aR;Ld[oBkGgGo_TMl\6FKmgonUQV;Klc1SmIU7HMOj]F^]Vfhi1FiUm^7BSQ\eo_je1Jg7?iABnoE2jomjobi0iZoODOgJm_oiPngWNf_G]8_fOdkQdJ"
    A$ = A$ + "QAdQWIN\fg9]gioXiADkG2VBk7P_70J=InN1\doC7_DMMBWWN?Z^>bkeLO=RKBiQS6WR]>YEO==_Oefgbo[dDHT7UQm;m]keoFZ>YdL6=78Z__SioR?CkGe["
    A$ = A$ + "VQDOBjWIVejk>oOFR<NORno\fW?oc[5OanMIKk[W[V=hm0Vaggij_bmHd_3XNS7_joe>6anmZOkM\F6_aONFaf3QDLHfhoC`o]F7E?FKem<[mm[oGja44g^e"
    A$ = A$ + "e#lhojfgKm`Nf?[ebNf7PDnGdjCJiWn\Oll8alY;MmolonPhG;omUGoKST?KiWEgc;OmUj5KcVB>JieBol4df;I^W7Q5dNmAjkWalEa^lO^ch=]FA?oA^NGn"
    A$ = A$ + "j#?EngYhdnO6fWF3VFgcC>5oNHM]BgkXSmW`j_8Oo[N^GMSS_Zog:^7M[Rcg1f7QTO7eoiJE:_fcmAJl?ClgkmiN<fn_Q[Ilo[oYkdgl_^NW8fGJO4fO6NOW"
    A$ = A$ + "af3#kW[E;_Engmehki?TYmSTGKY5GJ]HFmTmHGN>#FJfjI_:KO9_?Qni1ma:GGmm_6kIBMZnoG4MoUGo4PF7i4JR6I>;jWoDj>hn`YSSdHiCIllYiocZQVN?"
    A$ = A$ + "h=3cdWb<6mDFoUaL_EO;Y[U__o8joY7S\G2=]=AR1FJTNbaOjhN6=Slkc8omOYm\>7enS^?RFMgAeogn\fmL_Z]o<joKo\A^GNcCdF_<bN_c`n=J_C8?:[eL"
    A$ = A$ + "S\>LVll<encmUE7gZ]kcBg_D<idSSNSaC?6n=`YeoNJ>]oWQnOnmi:#M`?9FUfcI^?A]iXkU8[NeFJDNbaoCkoIKoAoN4h_oXfgFcGomBDN_Xn_\=cEo?g>B"
    A$ = A$ + "j_iJnGQ^GKkgng9c_]nhF[E\R5A\aYmeW48Vli`WnLmYmoXfgjIWoK\G`:Ri?5mo?9OJ6KjefoFRoIYUoWZm?mLQVN`<]_mnMF_oNJkoD1a1000000000Jdk"
    A$ = A$ + "O_a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "0000000000000000000`W2o7B^>5%%%0"
    btemp$ = ""
    For i& = 1 To Len(A$) Step 4: B$ = Mid$(A$, i&, 4)
        If InStr(1, B$, "%") Then
            For C% = 1 To Len(B$): F$ = Mid$(B$, C%, 1)
                If F$ <> "%" Then C$ = C$ + F$
            Next: B$ = C$: End If: For j = 1 To Len(B$)
            If Mid$(B$, j, 1) = "#" Then
        Mid$(B$, j) = "@": End If: Next
        For t% = Len(B$) To 1 Step -1
            B& = B& * 64 + Asc(Mid$(B$, t%)) - 48
            Next: X$ = "": For t% = 1 To Len(B$) - 1
            X$ = X$ + Chr$(B& And 255): B& = B& \ 256
    Next: btemp$ = btemp$ + X$: Next
    btemp$ = _Inflate$(btemp$)
    _MemPut m, m.OFFSET, btemp$: _MemFree m
    BASIMAGE2& = _CopyImage(v&): _FreeImage v&
End Function
Reply
#17
This isn't working in QB64 PE v3.8.0

I'm getting:

Memory out of range on line 419:
Code: (Select All)

_MemPut m, m.OFFSET, btemp$: _MemFree m
grymmjack (gj!)
GitHubYouTube | Soundcloud | 16colo.rs
Reply
#18
(07-15-2023, 12:50 AM)grymmjack Wrote: This isn't working in QB64 PE v3.8.0

I'm getting:

Memory out of range on line 419:
Code: (Select All)

_MemPut m, m.OFFSET, btemp$: _MemFree m

It's because of my BASIMAGE routine and the _INFLATE issue with QB64PE v3.7 and higher that @Steffan-68 recently brought to my attention.  The quick fix is easy however, thanks to Steffan:

Change all the lines that say:  btemp$ = _INFLATE$(btemp$)
Into this instead: btemp$ = _INFLATE$(btemp$, m.SIZE)

I'm going to redo my BASIMAGE program to correct this, and update my code that uses SUB's made with it.

- Dav

Find my programs here in Dav's QB64 Corner
Reply
#19
(07-15-2023, 01:13 AM)Dav Wrote:
(07-15-2023, 12:50 AM)grymmjack Wrote: This isn't working in QB64 PE v3.8.0

I'm getting:

Memory out of range on line 419:
Code: (Select All)

_MemPut m, m.OFFSET, btemp$: _MemFree m

It's because of my BASIMAGE routine and the _INFLATE issue with QB64PE v3.7 and higher that @Steffan-68 recently brought to my attention.  The quick fix is easy however, thanks to Steffan:

Change all the lines that say:  btemp$ = _INFLATE$(btemp$)
Into this instead: btemp$ = _INFLATE$(btemp$, m.SIZE)

I'm going to redo my BASIMAGE program to correct this, and update my code that uses SUB's made with it.

- Dav

Just spotted this, thanks for the update.
Reply
#20
A minor update for the issue(s) noted above.
Code: (Select All)
'Mini-Monster-Mixer v0.45
'By James D. Jarvis July 2023
'This program uses BASIMAGE coded by Dav
'
'generate a sprite sheet of monsters
'each is 64 by 64 pixels but code here can be modified to change that
'
'press c or s to save a sprite sheet to the clipboard so you can paste it into a paint program
'and save is whatever format you desire
'pres <esc> to quit
'
'License: Share sprite sheets as long as they include generated credit bar in image
'any programs using original code or graphics from source or generated by program
' please include the following (or equivalent) line somewhere in comments and documentation:
'Includes Art and/or Code from Mini-Monster-Mixer v0.4 created by James D. Jarvis
'
Randomize Timer
Dim Shared ms&
ms& = _NewImage(512, 360, 32)
Screen ms&
_Title "Mini-Monster-Mixer V0.45"
Dim Shared part&
Dim Shared part2&
Dim Shared kk1 As _Unsigned Long
Dim Shared kk2 As _Unsigned Long
Dim Shared kk3 As _Unsigned Long
Dim Shared kk4 As _Unsigned Long
Dim Shared kk5 As _Unsigned Long
Dim Shared kk6 As _Unsigned Long

Dim Shared clr~&
part& = BASIMAGE1&
part2& = BASIMAGE2&

Type critterbody_type
    head As Integer
    arm As Integer
    torso As Integer
    leg As Integer
    wing As Integer
    k1 As _Unsigned Long
    k2 As _Unsigned Long
    k3 As _Unsigned Long
    k4 As _Unsigned Long
    k5 As _Unsigned Long
    k6 As _Unsigned Long
    xsiz As Integer
    ysiz As Integer
End Type
monster_limit = 40
Dim klrset(12, 3) As Integer
Dim Shared mlook(monster_limit) As critterbody_type
_Source part&
'read the colors from the color reference bar whichever color is in the top left corner will be transparent
clr~& = Point(0, 0) 'find background color of image
kk1 = Point(0, 1): kk2 = Point(0, 2): kk3 = Point(0, 3): kk4 = Point(0, 4): kk5 = Point(0, 5): kk6 = Point(0, 6)
_Dest part&
Line (0, 0)-(0, 6), clr~& 'erase the color reference bar from the bit map
_Dest part2&
Line (0, 0)-(0, 6), clr~& 'erase the color reference bar from the bit map
_ClearColor clr~&, ms& 'set background color as transparent
_ClearColor clr~&, part&
_ClearColor clr~&, part2&
_Source ms&
_Dest ms&
Do
    Cls
    'build a color set for the sprite sheet
    For k = 1 To 12
        If k < 7 Then
            klrset(k, 1) = Int(Rnd * 150 + 105)
            If Rnd * 6 > 4.5 Then klrset(k, 1) = Int(Rnd * 200 + 55)
            klrset(k, 2) = Int(Rnd * 150 + 105)
            klrset(k, 3) = Int(Rnd * 150 + 105)
        Else
            klrset(k, 1) = Int(Rnd * 200 + 33)
            klrset(k, 2) = Int(Rnd * 210 + 33)
            klrset(k, 3) = Int(Rnd * 220 + 33)
            If Rnd * 6 > 4.5 Then klrset(k, 1) = Int(Rnd * 100 + 55)
        End If
    Next k
    mmx = 0: mmy = 0
    For m = 1 To monster_limit
        'create a new set of monster sprites
        'included image source has 16 options for head,arms,torso, and legs
        mlook(m).head = Int(1 + Rnd * 40)
        mlook(m).arm = Int(1 + Rnd * 16)
        If mlook(m).head > 16 Then mlook(m).arm = Int(1 + Rnd * 28)
        If mlook(m).arm > 16 Then
            mlook(m).torso = 0
            mlook(m).leg = Int(17 + Rnd * 12)
            mlook(m).wing = 66
        Else
            mlook(m).torso = Int(1 + Rnd * 16)
            mlook(m).leg = Int(1 + Rnd * 16)
            mlook(m).wing = Int(1 + Rnd * 86)
        End If
        'determing colors for this specific monster sprite
        kr = klrset(1 + Int(Rnd * 6), 1): kg = klrset(1 + Int(Rnd * 6), 2): kb = klrset(1 + Int(Rnd * 6), 3)
        kr2 = Int(kr / 2): kg2 = Int(kg / 2): kb2 = Int(kb / 2)
        kr3 = Int(kr2 / (1.2 + Rnd * 3)): kg3 = Int(kg2 / (1.2 + Rnd * 3)): kb3 = Int(kb2 / (1.2 + Rnd * 3))
        mlook(m).k1 = _RGB32(kr, kg, kb)
        mlook(m).k2 = _RGB32(kr2, kg2, kb2)
        mlook(m).k3 = _RGB32(kr3, kg3, kb3)
        mlook(m).k4 = _RGB32(klrset(1 + Int(Rnd * 12), 1) - 10, klrset(1 + Int(Rnd * 12), 2) - 10, klrset(1 + Int(Rnd * 12), 3) - 10)
        kr = klrset(7 + Int(Rnd * 6), 1): kg = klrset(7 + Int(Rnd * 6), 2): kb = klrset(7 + Int(Rnd * 6), 3)
        mlook(m).k5 = _RGB32(kr, kg, kb)
        mlook(m).k6 = _RGB32(Int(kr / (2 + Rnd * 2)), Int(kg / (2 + Rnd * 2)), Int(kb / (2 + Rnd * 2)))
        mlook(m).xsiz = 64 - Int(Rnd * 40) + Int(Rnd * 4)
        If mlook(m).xsiz > 64 Then mlook(m).xsiz = 64
        mlook(m).ysiz = 64 - Int(Rnd * 36) + Int(Rnd * 4)
        If mlook(m).ysiz > 64 Then mlook(m).ysiz = 64


        draw_monster mmx, mmy, m, 6
        mmx = mmx + 64
        If mmx >= _Width Then
            mmx = 0
            mmy = mmy + 64
        End If
    Next m
    md$ = "Monster Sprite Sheet generated " + Date$ + " at " + Time$
    md2$ = "Using Mini-Monster-Mixer V0.45 by James D. Jarvis"
    _PrintString (0, 321), md$
    _PrintString (0, 337), md2$
    Do
        _Limit 60
        kk$ = InKey$
    Loop Until kk$ <> ""
    If kk$ = "C" Or kk$ = "c" Or kk$ = "S" Or kk$ = "s" Then
        _ClipboardImage = ms&
        _Delay 0.3
        Locate 1, 1: Print "Sprite Sheet Saved to Clipboard"
        Sleep 3
    End If
Loop Until kk$ = Chr$(27)
_FreeImage part&
System




Sub draw_monster (Mx, my, mid, scale)
    'generate a monster image from source sprite sheet part& and render to the programs main screen ms&
    tempi& = _NewImage(64, 64, 32)
    'tempi& creates a temporary one sprite image for rendering
    _ClearColor clr~&, tempi&
    _Dest tempi&
    Cls
    hs = Int(Rnd * (scale * 2))
    If mlook(mid).wing < 17 Then _PutImage (0, 0)-(31, 31), part&, tempi&, ((mlook(mid).wing - 1) * 32, 128)-((mlook(mid).wing - 1) * 32 + 31, 128 + 31)
    If mlook(mid).wing > 16 Then
        If mlook(mid).arm < 17 Then
            _PutImage (0, 0)-(31, 31), part&, tempi&, ((mlook(mid).leg - 1) * 32, 96)-((mlook(mid).leg - 1) * 32 + 31, 96 + 31)
        Else
            _PutImage (0 + 19, 0 + 31)-(31 + 19, 31 + 31), part2&, tempi&, ((mlook(mid).leg - 5) * 32, 32)-((mlook(mid).leg - 5) * 32 + 31, 32 + 31)
        End If
    Else
        If Rnd * 100 < 67 Then _PutImage (0, 0)-(31, 31), part&, tempi&, ((mlook(mid).leg - 1) * 32, 96)-((mlook(mid).leg - 1) * 32 + 31, 96 + 31)
    End If
    If mlook(mid).wing > 16 Then
        If mlook(mid).arm < 17 Then _PutImage (0, 0)-(31, 31), part&, tempi&, ((mlook(mid).arm - 1) * 32, 32)-((mlook(mid).arm - 1) * 32 + 31, 32 + 31)
        If mlook(mid).arm > 16 Then _PutImage (7, 12)-(38, 43), part2&, tempi&, ((mlook(mid).arm - 17) * 32, 32)-((mlook(mid).arm - 17) * 32 + 31, 32 + 31)
    Else
        If Rnd * 100 < 67 Then _PutImage (0, 0)-(31, 31), part&, tempi&, ((mlook(mid).arm - 1) * 32, 32)-((mlook(mid).arm - 1) * 32 + 31, 32 + 31)
    End If
    _PutImage (0 - Int(hs * .8), 0)-(31 + Int(hs * .8), 31), part&, tempi&, ((mlook(mid).torso - 1) * 32, 64)-((mlook(mid).torso - 1) * 32 + 31, 64 + 31)
    If mlook(mid).head < 17 Then
        _PutImage (0 - hs, 0)-(31 + hs, 31), part&, tempi&, ((mlook(mid).head - 1) * 32, 0)-((mlook(mid).head - 1) * 32 + 31, 31)
    Else
        If mlook(mid).arm > 16 Then
            _PutImage (7, 0)-(38, 31), part2&, tempi&, ((mlook(mid).head - 17) * 32, 0)-((mlook(mid).head - 17) * 32 + 31, 31)
        Else
            _PutImage (1, -6)-(32, 25), part2&, tempi&, ((mlook(mid).head - 17) * 32, 0)-((mlook(mid).head - 17) * 32 + 31, 31)
        End If
    End If
    _Source tempi&
    'repaint source image with generate color values for new monster sprite
    For y = 0 To 63
        For x = 0 To 63
            Select Case Point(x, y)
                Case kk1
                    PSet (x, y), mlook(mid).k1
                Case kk2
                    PSet (x, y), mlook(mid).k2
                Case kk3
                    PSet (x, y), mlook(mid).k3
                Case kk4
                    PSet (x, y), mlook(mid).k4
                Case kk5
                    PSet (x, y), mlook(mid).k5
                Case kk6
                    PSet (x, y), mlook(mid).k6
            End Select
        Next x
    Next y
    'generated image in tempi& is rendered to ms& as a 64 by 64 sprite
    If mlook(mid).xsiz = 64 And mlook(mid).ysiz = 64 Then
        If mlook(mid).arm < 17 Then
            _PutImage (Mx, my)-(Mx + 63, my + 63), tempi&, ms&, (0, 0)-(31, 31)
        Else
            _PutImage (Mx, my)-(Mx + 63, my + 63), tempi&, ms&, (0, 0)-(63, 63)
        End If
    Else
        tx = Mx: ty = my
        tx = tx + Int(64 - mlook(mid).xsiz) / 2
        If mlook(mid).wing < 17 Then
            ty = ty + Int((64 - mlook(mid).ysiz) / 2)
        Else
            ty = ty + (64 - mlook(mid).ysiz)
        End If

        If mlook(mid).arm < 17 Then
            _PutImage (tx, ty)-(tx + mlook(mid).xsiz - 1, ty + mlook(mid).ysiz - 1), tempi&, ms&, (0, 0)-(31, 31)
        Else
            _PutImage (Mx, my)-(Mx + 63, my + 63), tempi&, ms&, (0, 0)-(63, 63)
        End If

    End If
    _Source ms&
    _Dest ms&
    _FreeImage tempi&
End Sub

'================================
'PNG file saved using BASIMAGE1&
'================================
'EXAMPLE USAGE OF BASIMAGE1&
'===========================
'SCREEN _NEWIMAGE(600, 600, 32)
'pic& = BASIMAGE1&: _PUTIMAGE (0, 0), pic&

Function BASIMAGE1& 'mparts32a.png
    v& = _NewImage(512, 160, 32)
    Dim m As _MEM: m = _MemImage(v&)
    A$ = ""
    A$ = A$ + "haIkM^PUSS325]gTICFKb<CVJD7<6#X?0>a?M>g^Zh?P42YWTCBeoi?oiiO0"
    A$ = A$ + "00000g:NEZ^>0jcS7nkW6iJG]>UU_^Rn?C6ILj>7Coc?olOTem1jC;_WCee;"
    A$ = A$ + "`W7c>6UGb^NOgl_WaiI=G#EcodlA5n_YWePkKniSX]CceTboJUM5;X]3NKb:"
    A$ = A$ + "ogjnnFhao6TYTEN7=gSfO;U36I\?[foEU_5mWIjkd:Eef_;nW[i`7oWYf?e_"
    A$ = A$ + "dO?[H#VnogiLOlgOZ]n3je\kiNUjgiUXc1NeVjERBcQ?>CJ\G6S5KjMWSmi\"
    A$ = A$ + "6PNmoAYmcekkATmoBm_m>O4m7dLnM7_]\WFI6K=cL5]lMJ^Odal[RoKmkBn?"
    A$ = A$ + "[mj8=7#V?cO]fOFjoFnOge1Yaf=]NZoin=ViPOVNkW2]]:enSJL8]]iMm?A="
    A$ = A$ + "OPTf?=>4E\Wgf\joS:7h]nnkek:mjhbmdkKkMnmGGREoilclimJ[dkoOO=NO"
    A$ = A$ + ">#okM=EkGZ4I<_W_cZ>H]7X\doKnRjg\RodmH#mOK_9Akk\mOK\7_N`;LO7a"
    A$ = A$ + "c0#cgJeQ8bkN??oAoB?F<nlhciV^VK9m_8Z;7WcEkIa5kc2_bnoF<hLKnM>#"
    A$ = A$ + "liNf]oXeoYmcBon^k[i[]ZGilJb\[C?WX?C[4M^7?ncGCD6e1Z^3?O<CmoZN"
    A$ = A$ + "n7e?oS]oSHooJiPmbochIQKioHRofko?bnMYeoAom8go[\foaiJYaS8Ko_Si"
    A$ = A$ + "lm46oc0BJ_VdS5UO7]DEm8^Lo7???Vk\n7=W<ZH0mIPGacno]_O?><jnmcm7"
    A$ = A$ + "W7oWM<8[LNknPlRmJc1nk_WGO#UioG1oCc1b>gCbgID7ZFooMmhH^?O<#Fan"
    A$ = A$ + "\WoUn\\KnWFGNERncm8oi>BSmdS7U_Y5]hO[^4MN#d]G_aQ\6oCilhmLeoUR"
    A$ = A$ + "1Ioi\nZ4kim1I_6P\co_:nWWoGAK?keoDicoGcOJeW<bkZH>P:m_7mo8GkQF"
    A$ = A$ + "O>_TUF#EO7OUnN^TMm8[aKJDalOBeQ:l=?fGEO#eO7g[>_GBk9cfN5iOEmio"
    A$ = A$ + "CZ?P7oc<fGel_lenUiLPB?32Jn#F?k1nkg5Om7O[OWK_JDU^CSZdO1gGdbi["
    A$ = A$ + "H\#Ece9]6P\en_:[1>K^[jolj0_0MO004=FJ<g1mWg]ekmOoKZTZNo?YO_jT"
    A$ = A$ + "FoWdgEX_Yf?00^gLUfo?hNBE_o3Dmof_gdNcDoG:6DMO200^7`ejQf?h^0EW"
    A$ = A$ + "Wnc<en100000i3omn1_7#000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000008KNlhYk[UF^2eiAZkEHC0000P[:_dklZiedmS"
    A$ = A$ + "DoWGlD?FAc^M_Idf00000FUAd]mJ[7okohijSFogke\3=kMJ;0000P<h]^mJ"
    A$ = A$ + "[5`Sn_DIg]7_nHWeU<JG00000kTGjeoBljoDRFoOT[oWOnIIonb6G5MO\>40"
    A$ = A$ + "X6`h>`W6IYoOUfo?mjcDo?J]I<oConY6ObnhCWZcC_:ko00^2\jJ0VIooAli"
    A$ = A$ + "ToU=o4foOF[oYZlY[:IZ93mOMZ>7=2og:XOojBFiLOJcoVQn?_4Yn_gagkHN"
    A$ = A$ + "PA\AdjcHn7KPnoePZOobRboHlge6Xo;SVn_g?OPOZkoWfG=COf\gGEcoLgO^"
    A$ = A$ + "ddfN4aQX]og2#o7l]ego9W3`eoijnF[3PZmkEoOWOg3gQMU:SLmSj?XoG3#o"
    A$ = A$ + "oJ0do1Egg7EooZi0JJ]kjkZW\?OdEcg6oJodfb^Ko[6KjY[_Z^??7dZ]k9o#"
    A$ = A$ + "ZneCoOWi=kTGe]Gi#]OJMM=69WSO_AYo_RmmTK]Sl_Zm_FnoW^ok=nkZ4o_R"
    A$ = A$ + "nWGFmjlj_MenW]ndKOgl[SO^M\N0ng3`8en]ZccdnmHgIc1YmWFWKDlXok9n"
    A$ = A$ + "8EoGAo_Yofc6][KUL>^mXJoLMDZN_f?7aOm77l6?Wc[?6M^]IcoV=o<;okAo"
    A$ = A$ + "mCdo_:kBoOUfo>l[7o_[jAEngS?6iLSjO?j[cL]c`LjoS[mcK;mR7N>WU=_R"
    A$ = A$ + "SolZo?jjONEFiioCeQiG[T>l:iK=KZYYWYn?enSXo[5?kYockkUb[\VSa:?L"
    A$ = A$ + "Vlc\mO_bWVo]Z?I7oGegcfngU_cdo]aZlRdkAPdiX7K6OOEdo7GgOOn\GMHd"
    A$ = A$ + "c_Sl`X7oe:F]9[fWfme[nXmLcUdcddoKon<J_LOZYg?Zo7YN`7[bGOa<joBf"
    A$ = A$ + "dboBiBc<7b>\E5nWNM[lnUL5l?UIV?HWaoAQFFeocD7ZfoJmSknjehhlgc\?"
    A$ = A$ + "jSkIO?eSeHDOZE7lFGe\gXiPI>n[EFM]Dcd7XYc?Cng:?;09=l<\QfcE#3JL"
    A$ = A$ + "C39Kj=_IfL_MH[Zmo>XJo_2k>no9ioXbo[^?e;[Zmof>[]60M]LYm8^_e0\["
    A$ = A$ + "e?\R6JEiokX^g\3oWN\c>dNYfJde1_bc_OG]59MoSijfjoB7KTH`ZkMK7iaE"
    A$ = A$ + "koMAenOejM5fIWJVcH[ZmOU\jlnkbNLmN[?OCFkoIUeP\J<HUk_baOBJgcdf"
    A$ = A$ + "We6Nn\n=R]6mmPO7Jolfb:jo[ffgeW9R\hCD_lKRM7oK[W4n_nnfN\SmmOfV"
    A$ = A$ + "Smg`_Mml7Tlo<[1IeHiXgGeiOljl:jo[HSMfn7EkMWaoNOVl\^WMikZRmc0d"
    A$ = A$ + "oo^RoS<oC4?_TAONFE?oKE\KMggfeWnkiWkLM[1YB^JiOk#o_BlZ1^kmnCmO"
    A$ = A$ + "4[[hK5XooM5oQn?doedoeO_kgkNFfeW7a<h^Vo55SlIW5joebWfkGjg6A4o7"
    A$ = A$ + "aVAeg?ZnO4n_jnfN4YnXU]?Z=7gc[Tni1XjH]ENBUSon6ITg3lM[mC[3#k_?"
    A$ = A$ + "A\o?#maOXooI<gKdjojW?_gWb[jk7:]4eh_?Ul`MbXOoIQn?0D3E[oOggoEE"
    A$ = A$ + "jogMJi6lONe]mW2Sli^;2MjXFG10l=aEAooCYM]KRhmNoGkN]O^kE3ok9g>S"
    A$ = A$ + "EAJk?5l^oOXo30e0_Le]kg6_:_VS:ZhOcfEg>1g?lngn^6kJ<#[<cO;R0Pk4"
    A$ = A$ + "AZA3mO4o10;hJdkBoGbf00h8#o1aO0X:JkC?Zlokng3C0000P[8=]iXdoSbf"
    A$ = A$ + "00000000000000000000000000000000`7do6:M7okY40000`M3iooZ4om]6"
    A$ = A$ + "0000hK4;MOXm30000lmaaooYfNM0H]000000O7dnoWJKmogW_jj;00000H?h"
    A$ = A$ + "IOo]e0DMM500000\?`cl70000hnP_mnO_F;#eooI8l?l?lOMn_jWeIeooYFe"
    A$ = A$ + "ooIHeaoZmOVioGagooZ7oGmh?hOhOho:eOZM_>E<o7=NcmOfm5_dJZNm7Eho"
    A$ = A$ + "FNG;o?kl`Nki?[e4Emhok\oKSm[L?0gih?lOmno:XoWIkWFX_FjLA6_YkgTZ"
    A$ = A$ + "oUEOQVocegio\g_2?goS?7RFlohaR^>XEbXo_Jog[l]gn[fol2M=HgQhoE8o"
    A$ = A$ + "[bgccFo]f?[<f7IO#;6c;llo<d0[:gS__ofN`bhi0LENooiJn_JklS5IO#5i"
    A$ = A$ + "n`o`oNlMTe1nl\m:AlLYmF7R\?XbmodVW[be0`k?bkmOfO^GTJPWmea36MN7"
    A$ = A$ + "eWWeoO4FNX?MoHOooikcgRXj7hU\goE_Bfn_jfoMboB59=a8l]Vf[eacZ>TA"
    A$ = A$ + "k_QlLNiYogCk?3mhZRkNcob#oohW5^g?;jHckNL#cWoL0N_OhmF?lngl_S[1"
    A$ = A$ + "HoJ`Bjl]fMFjolH>ogSL<0eoBSmcdoEgnUlOdnnZgnSdoliIel?mlAF7\lOT"
    A$ = A$ + "aoN_oSAkkFkEboOkkoW^7H]noLN6hJjQaeoceoeboRCooaQh_ToS?nof?jmo"
    A$ = A$ + "a?>DKO8AjChOhoZm?OO7l2mlEjo8S1di0iU<fo?G[Wnck`WoYNaohk3Zjmni"
    A$ = A$ + "lWkAjNno]m7cco_UCaOF7e4o]lO>iogeio_Bn?[WkmE]m3oW_oik1UGRN^_g"
    A$ = A$ + "e3i?70I5oYm3I]oONO#Eao[Rn?Ec_U3#_^X[3Jao\eoioNfjoIn\gQokoN0W"
    A$ = A$ + "M<XbiN[\M;eoWAmXBo;=g7O_8I<o7]MWMN8e7Bal<Z3bm3I^n[Lenin\Ug9o"
    A$ = A$ + "NA5anoUO_>TRoI4CZjmO[AESmPoUeo[#;\:mgZmOe[oZBoK]gWF93mO]aOA_"
    A$ = A$ + "GLNajmR9knQ\dnieQ:Fg1=fCo<1dR3k\n#eki]INlohe6og3PSn?Omo<ciQo"
    A$ = A$ + "]mMeeS\RmLoGeJoZ:f3mojgoOc?lhNVS5Xk3>Sh^F^`g_n?o_k_WoL0Bm;Om"
    A$ = A$ + "2a5;>>>8;]oGLWeO_bn_bj#Fnm:ho[JoO6nFjIOf:iY3DkkoO[8]oolj3Z9f"
    A$ = A$ + "c[3Emn>lKKFnIo_[j3M?eWG7`ihOc_dW1#LaRcko?cnOjW5i:nL`L5l?]D]o"
    A$ = A$ + "cLn?YnP\m==6DQo_2iOEjo<o>7O5mOE8m<XcF7FZ^DCkGnoCNb:f;5ocL=`g"
    A$ = A$ + "alo[4G1m_Z[3EcM^]3^O8Y1EUnoeXmOnmU_RhnaeSToJ0Z^O1000#\Lgeok5"
    A$ = A$ + "3Zag?>]6PlR5#k700Pk6g9=O]fN]?gmc_?4E7G0000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "`eR7?NDNM000000D3HM000000i2_TUOOYioROni7aOFML10000hKUGj\lBFJ"
    A$ = A$ + "_JjnA[ooZ9cAkLA73h[i:oeP9gncboE`8iFI<FXZeO30G1bN>G`_ddjcFogB"
    A$ = A$ + "cWncHlmI]O;moXc9[Do_Gk?CoWI<_UOcoI_c51_bcOA[dNM6mo=XiKIkk[Vo"
    A$ = A$ + "[H]gE=n[JZJl?__GZl]goCejU8ff=doim3J_>SL_:Nn7m6k7Yo]bgcN\#CkW"
    A$ = A$ + "^>P\d0Y[k`jHO[no5geaOdH]gS7Ik_Re0d[l=goGecmOE]oEWG6jomca^:[1"
    A$ = A$ + "8bHPfHm<W3h5Dm^F1joihOJo]f[SRF>n_ckNLnWfanFeomZm7E<`KYM]a43N"
    A$ = A$ + "h#oIoja]B5kk_e^WmmmO7eCJ\]Rh_FoQf[gOlggH[X63>jHo86ogFk;mWN>G"
    A$ = A$ + "4Dico_JmgZmo;bNlgkl\kUn?GG]M<]alBm9kZ>A7[YEhW;ZnoNkoL_nllNn7"
    A$ = A$ + "]m]jLCk#kGjie^B\?[h_FNHTijF]mMN][FGb#gG;G2?oOXo[mj<l_WS5Ilgk"
    A$ = A$ + "aSZ=Z=^Oga6NY=VCSIe8m`amPbWoimif[?Ueom>7g>fKb\OFoYc7g^WEVS^R"
    A$ = A$ + "h_FnXdn?SJ>PAeFSIMXeon_X=f>balBDecoGKo=deP4MkgboI4kYe1]GWQom"
    A$ = A$ + "L\\kogILPK7[G?be>CmPZ_c?>_o?be1hki?_OmoIO^odHg>bm6mcjg>en[:n"
    A$ = A$ + "[5GcLnWAJGI^oo\lI[_oEi:lloO1oio7]oJnT>oVDM9JMXNn?Sh#fSodjkYn"
    A$ = A$ + "?ceoY5ogajodbS\N]W[MVn8;m;J<Gbfle1\ShO5_oclmokenSNmST3jM=5JJ"
    A$ = A$ + "oc_gO?koLO?30===_co\C=aNJ\iX1GgkobEjioo2ncM<JoAm[D^F6kmo:hoG"
    A$ = A$ + "8iW<eo[doA7oKfHgjoS6S\dnYW_mkJaT8NF0Ifo?SnO[4gg7?O?7PFlOgc9W"
    A$ = A$ + "KlgW_ddoSXn8Ig<Nf7FJlImlG^2j?dnl\mIe]oZmO;^kiHOSn?kh_V^9meBW"
    A$ = A$ + "Kea6FjGLm]NkcOg[C?KmO>J]EJLakcXOUjUeNPfQf_EkdkaF=7LEmo8b;ddO"
    A$ = A$ + "SZ_FZOekaS`oG1m7NAZoHg[7bbOkH>GhoajgkMl8X2mOn?]JoBgc<nDjmkWG"
    A$ = A$ + "XW?[?C>BjMAoL0i5[_C0SlicK78]>PM5;T6?i9ocjno4lo<kaFkLkD3bZ_=S"
    A$ = A$ + "W5^FL^giR\NXEfmJoT:dH_fiRboSNn8KoFWKWnGjWm>ggBlG[]6AkfBk_gL#"
    A$ = A$ + "d[;Rf_dN[cHof_`jc2HV_gWJe=nWA`MU_YE6iJndl_dWg1__okAlnagkml9R"
    A$ = A$ + "nN^mKS[iS_]>G4<Bn#Te3000000000000000`H8m0D[`>kjIgVaW9K`J<K>f"
    A$ = A$ + "WRon4hO3:7hCcn00HN>XEC7[>Qf]UMT\WfWI[MZo;iSNGoZeQI\5ONbEV[L7"
    A$ = A$ + "fJf?CKSLOJiGkHmWNlWf7LPEcmlJOYnYMZAfcnBnJGe1=kPe000G7>YGcd^g"
    A$ = A$ + "V]4\WddS_^^MYoB]Ug?3i[^6PI\UE<Khnc=I[XeoedKgicOZga5cGg`j0DGC"
    A$ = A$ + "=K<0gOl[OJoK\nK9mO_[=H4o;EGFe^00HO#WCPZI^Cmo3fEiI08ioEeOUlO?"
    A$ = A$ + "]ONIdj#?k8I;aiYWDgfB;CbFFJeAXoC?gO[CJJbCX1OX]b]I_S_Qe1HZk;eF"
    A$ = A$ + "MdO=Mo_SlYNfNFogkJlTk>JNgZfCkId<]o7dNEkoZi76G=k5=lB6fS?g#Djo"
    A$ = A$ + "FfT[Ec_gAKgBf`bNJJf]bXjoFfY[n_3=KknL5KXH;jO33>=nIR_GkNnNbgn>"
    A$ = A$ + "bM8GAK?i[ToidVZJeCD7VaF7j_hmM\m[kZoGhn]\EkHBeGjimjoI\5?gLdln"
    A$ = A$ + "E]gYe9]XViXfC[oOIokL]dI\n0;OddXKa[Ee\7eNcXc<:FnPXBlolKIjH]Ck"
    A$ = A$ + "eb?>T^4Pno1K;Xog>WTfmXj_JjoBfZWfooMW>[3cH;nl3lHo8[1H6KAooY8^"
    A$ = A$ + "V]eJ3D7gadhU>n1mOQiW6IN[CiNCH??JfNZ3RamAeoUHfnO5K9MON\[GogkJ"
    A$ = A$ + "lNONmkZfC]OKB=hA]WhJ5fUoM^6TA?N?o?ba?XECZ_c^60^fOcVFfCKnmIFG"
    A$ = A$ + "`XfRX>`hgbhion]W7moAb1VAo_5KXG;oN79f;Mo]OGoje;YYoKXmdK^#][oT"
    A$ = A$ + "]4\SfJ0hom=\kh>beBeo]nkQ\YV]QVIgL_1F;QGMK[ja:f`cm\UnO7jRJG_G"
    A$ = A$ + "o?Z=6a^^b16dNMSGc<oG_aP?jhOWJf^l_T]=63hmhml_gSOB[VEW7M=0JJom"
    A$ = A$ + "\WfLlcZohmh4U15n]h?oO<k]jlNRmcFfcHnLYe0#CWm6ke\SemHElD7>jknf"
    A$ = A$ + "jMoEWi;LX1XMMFfiLmolJ0\Nf0RSm4dimlo52WZgBcQe97Djj7IND_i]C_n1"
    A$ = A$ + "SlnCi1:]oQjoE\UUok?gR]omLokd_kXN\Bo^JNPSaQZnGA_N9o;HC[kEcNSj"
    A$ = A$ + "O;Kogi<Xin;^60E]OQe0`_GYihiQcNnGkj]\ao[:dQO;mc[OjfNQVo?ilP=]"
    A$ = A$ + "jG8YokEoUN_DkIMOdRdDWSjoSeUcfn`LFNk3l<o_Ck8g6VO=0cZm[Vk8X1fm"
    A$ = A$ + "nU^?Wi_[Tk^Sa#R]KWJhN_?]nMZo?DGH`_^E^?jmKEG\>f\gcQj_Wn>?mOJJ"
    A$ = A$ + "_MbQ\dm697V?FAeVmbQeJ7SjO9k8LoWfkoCifA_e0dKOoLKMN^_WogiTdAX7"
    A$ = A$ + "GcoLM7=mXciR??gn5igRNnocQ\UFnWDKOhnoNfCa>lh=oWJm1BaIj?eRm7kg"
    A$ = A$ + "8A#QGk]og[]>=g]#\fclhSL?DOYg>>ZgCoKK_GmOnmfMOoMVcYGNC_kARAbQ"
    A$ = A$ + "ia?Co?QfaYnB3K8eg9f^5`[okMMklJeZOF7cCkCcWW6ohY?gcH<]aKMb54cG"
    A$ = A$ + "UnM?nGHL^h_?C>lXngiH7jW?OejmooCnWWO>Bg3goF?oOjeZY5IflE^?j[?W"
    A$ = A$ + "?B;mRQm:NbSo]8>7lC3mo9ko?I?Si2eRiBfB;nKM_Fjfo=2bNmQXKGo[O?lG"
    A$ = A$ + "[>WVeH9]c=am`e]edkgQn_foo8ZfF<V7cUn_Um<\cdc3>alNVJUJS]ldo[L_"
    A$ = A$ + "ShoNj]LMD[[SKcAFSPT]lJ7YkAmh3d?^T6XbLOWjo\bUmjK9kH<gkFJo;<>`"
    A$ = A$ + "]6^G4\A_?oOdkGC?YWnSdmAO]NNK[\#K^;oFDkoG9Nk]?a87`S6N_h_emjEo"
    A$ = A$ + "G[dgojg7g6RcajM>4?7[SMOgneoo`H]e68aXf`mL>B]SIVkQI7CmoM>>XC>_"
    A$ = A$ + "ZnU7]V1dS6eoN_nMJ?][eS=jM=M?OajORJN6JhRnfam^Dk_WoGXmOJ=0JncK"
    A$ = A$ + "MRM=NnnoA_N=ML_J?lO_mJkLhFaIlL8n]HjoM?gW#OTUom47W=noaXo?cl>N"
    A$ = A$ + "7S#Nmkf_noG:?RVn8[Ehdgo_EVCIdiYLT7^DMI#OIYE=E>P`m^RV]7kYM=ch"
    A$ = A$ + "O[ka:^_bJ3nXdoUZ7N^N_nOVLl1^_NmoZ_G0?]OnoReAfmiEki5kFoYmjnio"
    A$ = A$ + "]RD<dZH5ko]hJlG?=TIbmM>?XWhh\aO[Ho3BXUnkWR`>]QdmII3aa\lh]B\D"
    A$ = A$ + "klRfbalPogH`5emUNFo3[1]bJ0VDgM8o>heifoN6[IY5XLMSjoIRMkbNlkQ6"
    A$ = A$ + "?k6g6ln>d_g[_FY_LTi1kjO7ji^Vo8#mO[Ho\]o3col7iofmhicogXgGSAdo"
    A$ = A$ + "]^gEeoo=Nf:]kmYaalL=Smg#0GJ:SL=3ZmWMlW[?[YU?Sn?gN^eoed`OLL<X"
    A$ = A$ + "W[]gl7oM<T`NgWmio;MlAb1WI^eEdm7JN`7\WOaVVgkDo9_][i?Y[QM_ShoC"
    A$ = A$ + "iU2cm[mJ][MhnQ>J>Kond6o<#>UjJdLT70mOfLA<Rnn^Bjoo6C?FNO\VmNNj"
    A$ = A$ + "eJgg<8UogCoGkn^jaO^f]dJ0J7cZnke>3?neH>0_GO?mO_Joj]om^60gJ[:c"
    A$ = A$ + "c<cj0VA?gkekYnha6V[o[CMaSom=gdhJkN_^:#CkOIK:eW8HG?JnKAogSoM`"
    A$ = A$ + "#i]6SM^:dd9lXS<[n3e7CWCml99Fnld[CMLRRnoWHlW[A;Eld_=[MDW_GJnO"
    A$ = A$ + "]aO:cedKl[VV=mLlggNifniW50mhZOno]HTiE\d;5#<gN2]lI_?eL0WaTE_?"
    A$ = A$ + "=o[V?b>?mnlN?Fn_BjUK4]mQnO]D]nSklXW?9abWWNM:SC4dSF]O]jhoOK:6"
    A$ = A$ + "UMXoglCga?2aF=]o3f`hnd6oZYakMOoWS1Wg__fJ3VFSOee8\bLPKnN5kojX"
    A$ = A$ + "S_ckUJ3Oc19koI_g[0AYkke?^d]EdN?T3`7SXlkCWo>RoWH<#ED]nSklWW?9"
    A$ = A$ + "abWWNM:i_6JDOZao;Yn_BL^kh?Ye0H<6V_WofaTNN0nj;eOVodcM:OB[nZL="
    A$ = A$ + "khn?TGkI>#[i_GinML?Fi0FG[4BgO_j1oJU^O?f`:7n^R7mOgfZSMVEoOHoK"
    A$ = A$ + "T?GMlVS7mWA]UVmVEooMY5;UOMXiXMdoW]_]jhO?mO=MkMI7ailWH>P^SmMH"
    A$ = A$ + "WEdnO77lmnnOJoYCTSimNhLb6mVgZcLG[H3[j9?^Hfg?Q=lVKe^fI>g\nk^P"
    A$ = A$ + "eheY]Yal9STk^5oo1[og>o8fZengUn?A1ioiTbbQS7BnYeLZ;^6P[#l_W^mH"
    A$ = A$ + "]Ua]SXn5;nf??IMK\Zfokh`iWgodiH>VghDkMPlBGJgN\QCk8f_9=VBX]h^_"
    A$ = A$ + "Gb6:joW\QR6#?o_3kL7IdeX?T]mToE\o[6=mWMIG?j?_SGR:7<Nb^ncWWG6:"
    A$ = A$ + "GDCOGX?DklFkgj:6oed]K=QAlYU]j>>AI_03?NKBk\3]ogaRS?_o^iLMd`LK"
    A$ = A$ + "S1G3#GMKW[[eeJ0jYo[53LdgIM_NdokIkML=SLMg16]?NJoXT;G]o[VgcGOD"
    A$ = A$ + "KHGj?dO_i39KcD:j#?mocGO[d=?L`m`<bNWTjg_:aO9MkAenGaF7RE5Zo_;]"
    A$ = A$ + "O_fCCWWGoMef5^7?[S`<7N`i[j>6BCoGIlbBmo:e5ne;F7HG[Wj0oje\g8]W"
    A$ = A$ + "_MZ#;T?omMX=[a^eLVa?4E2W<ZnokkSN_dn3ei\T>WUnoPcUN5Ro]SE^n_Sm"
    A$ = A$ + "[i1an]9]ETHZmgAcNWf[G^oB];_jo?4H#]o3fc`Vl[eSm6agkdN0`g>[XQCD"
    A$ = A$ + "HLOoWloo?_0M_hFJoWdoEd]JL`^GXenaABc>;K9Zo_Sio_jjomFCiPi;cHCA"
    A$ = A$ + "]j9en?HC5kZfg_1]OaL07joBcE`_6_nmDMPIc[FN80D9ne`?Zm_]kg#WgcLR"
    A$ = A$ + "Z[1`imOE#JkBIH;AmjM=oo6F?AHim:k9OVmn;V;Z]>eNjoK:?EK<PHOe6en5"
    A$ = A$ + "c[VLoocD?R`V0`g<bUSjfBJgbgoik[kmKll7Y7cem[]gS;\fo;fQ^o<fDKmJ"
    A$ = A$ + "[WC5SMg5Ji5[V_<ZMGIm63EOjYo7Do3O=PlcacEhWKFO:U7^ZM1Pk0Ne]gem"
    A$ = A$ + "Mb>CZKo9YgOE8Jmi[ZnO;OAkh[ZokeOIT_JiS<jKdlQV?gej?Sbf0000n\9k"
    A$ = A$ + "e8ReT:4C6lm4hZHK00000`lLWOnC00000PLiOdR\%%h1"
    btemp$ = ""
    For i& = 1 To Len(A$) Step 4: B$ = Mid$(A$, i&, 4)
        If InStr(1, B$, "%") Then
            For C% = 1 To Len(B$): F$ = Mid$(B$, C%, 1)
                If F$ <> "%" Then C$ = C$ + F$
            Next: B$ = C$: End If: For j = 1 To Len(B$)
            If Mid$(B$, j, 1) = "#" Then
        Mid$(B$, j) = "@": End If: Next
        For t% = Len(B$) To 1 Step -1
            B& = B& * 64 + Asc(Mid$(B$, t%)) - 48
            Next: X$ = "": For t% = 1 To Len(B$) - 1
            X$ = X$ + Chr$(B& And 255): B& = B& \ 256
    Next: btemp$ = btemp$ + X$: Next
    btemp$ = _Inflate$(btemp$, m.SIZE)
    _MemPut m, m.OFFSET, btemp$: _MemFree m
    BASIMAGE1& = _CopyImage(v&): _FreeImage v&
End Function
Function BASIMAGE2& 'beastparts00.png
    v& = _NewImage(768, 96, 32)
    Dim m As _MEM: m = _MemImage(v&)
    A$ = ""
    A$ = A$ + "haIkM6XLSS326NO9m;inBVKjeEa84P#8TTKc_WiKJZSSAP#`_LjNgOncONm7000000000O4leaY73000000000f3om_omhS1000000000kQ[[[S?60000000"
    A$ = A$ + "0hW8OYU^LlCAGmG3iC?600000000Pb?Qo6e;JnYjooI<^oI\?50000k7??C;J__I]WWW9EiJ6iJ1PEaGiH5>mHIGnjn\gcFSZeaY7KM7k?lH;000PcSeN0b\"
    A$ = A$ + "G7EKQV>SNjomL?nY2oIfQWQgcP?Qm0\KokWR>JnHn[jT5>mh10n=#Y?7]O7mLofj3BKX\S?70d3Ym0Tmge]TfMZf:Z64[c;Mon=`>dooeoM1Qb^n\o6hgjN0"
    A$ = A$ + ">anKn9ZQVN\Ra^DA_MkKm>g_=jE?kCYNWfllZWo;jkm`YSAYjg>G[ObJ2P?7fAmO==mlgWoJ_OnOj#[c]jJN5mGNk[meemYo\?o=VcMZeBoddFBem_2moR5g"
    A$ = A$ + "fDoN]o^Vd>o_=n:<KYoogfJNYiobOV_N>ONf]X]_JWeVWOEno9bok]FOGe2l\ogCUK^M^nk=WN\\IXme>ao>gjYoOUfmTeo;aI=mo[JN`kcfjCiIPi9?igVF"
    A$ = A$ + "PCYooWbn8ijng]foM\7PCYokY`Y[oOB:caFco[:7XXaWJ3^nOnkmKboY??]2delB_OfSQbcekU`c2l[O_<>FA_o7Wn3Zfo?Xm1DR]dmjF>fY^_?EmolJOO7o"
    A$ = A$ + "[[1^>KK_nVnLogaLaCUMYCFjX<?TMM#Y_;=^MFeJOZ_EONi_go\oK1#CG]XnkbZc5\>#cFER?FlN0:VBCoc:dn#c16iH5SSBmO9m?[\n_7]M[Fo7==CjHGjo"
    A$ = A$ + "UFgGhgZnoblkgJ\oWMZdoOO^EeoUZoWZ3#klIJgkL\[>[o^C>GVFdoYe_ZFc7RnOJm?9FEm?NMM]jmoF[oC]OYnf>doc?XceN>oZV7NB893LUc1J7leQFkEM"
    A$ = A$ + "4T^WF#o<IHO[nmFj0:J5VOn]mi]I1ojC;?#CkokB2kEo_TiGejM[]n8hn;]>\D=^bj_EIc;R6_;U00oJFeLo^eog^nfj8gmnk=gW63bfoOKogc_Lmn]WKEim"
    A$ = A$ + "LMnEj^gTnobQTVSU[oWmlnooij=mM0DEoCX_cZ\;O<L2momZmCGo]bjoWboifGjHEfGBVC_HO6c1Fb\Tdl]SlO=oLUkkm]NbVhmEcL1MlTQnkB]MYLMYn0le"
    A$ = A$ + "2cJo_ebGlO=M0]jnYi8CIO1ml=;24doOgG>_lRA:0^bloN7[bfSDoOMSQ_70Bmoofn[9fGY_cQo_Bmom\Ofi0nenoNDl:Sen?]loJ]nG2jo_?g:\O_WkcZnN"
    A$ = A$ + "P7a^[JLlN^mBFkUdk?[=EenHdoIEiNda4m_cSfG_WjoLm#goK]K]eo;iSUj;lG_[h_da^doKM\3mo_[_O_Ph=Ijgml_KmN[9_C:oVnkL=1dWAO6J_Y?K7^>O"
    A$ = A$ + "ZFgfW5D>f_FGoEc_G7CTeo?Um5ddC3hEf_I?09[mG=9DHAgo>b<GT?FT<o:]I[]_HfoJ;S1ZnOja^eoCco[OmjdoGRodW9Pd_W_=[eogcn[Foo^mogfVe[Yd"
    A$ = A$ + "3BjL[`ndn1b?_7iofLb9g_mkK#Bo9omcLNoo[WGFgcFoEFHnekWEM8JoS6M7\emUgLEiNllPBmXknmkAokmLQ\noEKK[WgI9^\JOgboGE<XTREUkCbmZF3lW"
    A$ = A$ + "LngQ\Jno[K=I_eRVHmnN7geM_]Ofjmj=>Jng2f[f_GZI]_EN>_YCf?go_mo;EddoWI_oV6[3ZoOI[o8colGC_^<]_dHiCFo?MnWO^EIGnL>_N0_^`ZRoWCoo"
    A$ = A$ + ";GfWF?8KOg[mGB\WDKi]>#Uc]2k;YeABkm:d1NbWm?M^WZoGZ0hfNnoTejda`:VgUV;dfoe>\?ggY_NefVnmL8YiIejoYn_DmoEKgZlMNnObk1AGje]nokmM"
    A$ = A$ + "TTV_>SOjJ#ZmGQnONNG[>?io^PFaj#YJmbJoGCMPJoW_7PlenKJOF^^DBJff_H6ZV3]G_3moJ7[bVN\m>63WBooWLlW[oggajdoORH`kL?7\bL#ZN_ZXmRe0"
    A$ = A$ + "bo^]kabdRjh_oWlV_Enoc66mOFel>O^H7kiBSM_^[N>iZ:G\meXnONaJ]oo<coj7`dn_2MOBSYZmQCdn_2moA>b<?<bcM9cWoXTfN?TVm7YY3I_#[X>#I^]g"
    A$ = A$ + "LOV[179_Lef\T?B?hj#FM?8YmKc7?[>6X=6fQ]?Al_\VF:gGkiO\Rn1SHoE>gOo<W8koTll9>A^gZc1Yj\nf>B?G`mXoWngj7mW[hOo_RnYB_WE>_cc1h?__"
    A$ = A$ + "MYmUW3^kWmbYokoQkokH]WU]UnmE?6ddlU_MTRaj\2O]WN?ja:b37EgOffOD=oWFo?M?0YW?B^gdeNlon_fA_0YSEKCnj1jgi1mL[dnBOoKWX7Tda^eo_[h?"
    A$ = A$ + "Eo?gF5]NlJP[Bo_WmO_3moUJ\UiMJnh9bmFM>8m_cR_]Sn?GiL`okO:O70OognoZnkokIZoOgJO]b1g]nOYoV8fImOYO^cHoinn_gSno_]5?7KojoePNdng0"
    A$ = A$ + "BNaS8k1HUjoenknQNn<go3EG_7MoUGWN^8ML8L#7O[8GDJ]a^nn6Tb7UboG]]O2?o3jhP^G`C4o;^oZSodeidW5<5Z^oEe?P6_iDR3kH^oRE7H7JoYfVVkaS"
    A$ = A$ + "9[b^BiMlO^JMHDmolinEZoofn_jnlWFM>0OnHWJoiiPW8oGkINN2modHa>km`];Ul]GM:^ec0NEem]6?[NO0lN[B?7\MZ5#;_OE[1hjkUdncg7#faNNl_gN0"
    A$ = A$ + "b>Vc]QdjoM[o_4;fU]Zc9J?fU]]NnCk^?h^kmNZhOmJLiUOoKFHYm1hOgKdinbJ`M>gC]o>Wo?anNkmgNafdPMPWo?5;a7W#7n9Zo8]okMKKN>g9f3nYjm\k"
    A$ = A$ + "joNeo_WhO[NoEXk_0_W2oHgm1h?WoElLo[mgjeFB?[oE>ocSodWc?GgO9>TN<##o_HN0ijFMN`W:D]Ne?Cbm[1kDmOg=?5mogSWmfoCJ^oDiM5kO2mGBfMgS"
    A$ = A$ + "3jg1`kin=Ymo;:jliolCYF`Yid?oMjhhDciW\nWUfomE7jFgO=WIoOk<oS^oGj?GUmigK9=okJ_OO1o_c7nN0fAlGj0eng38nO6Xjoe?fcg1lgSWmgkSb9on"
    A$ = A$ + "Ondi9llW?UmodiYllO>M<hTioL=okDoWdcNBjk4hgJlodfW>oCeo_CoGjkMnC9n3#loDHmMo^[WmoC2Tg10kUWbcooC6N?gmmMoMoLnYjlgecn7D?OO:mG5m"
    A$ = A$ + "ndONZoFh1P?5hJlYolCCkoGPN>0`NQ[i0?3X??feci7000`=JJloddn30000000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000f7hoG520008:Anoi]X_cISoPjhgY73oTidiODkORa`OokO?Zooeo_>=ZmObe=`oOenLleQd[10`jiW`j__jkAaK?h<jGc_7W#3#"
    A$ = A$ + "Do?;Xfk[SXaoXSgKoneoH_noGjNX49O8jHVhdE4IO`ITkac1OBiOmF[VA=0]ioEjolHOTioI`:oOTHHic^Salhca?cNOkRB_oM[1hYXohdk]7lIcYbmN:[oT"
    A$ = A$ + "#Ck1G3\U>0je7M>Aj#bnI_7QXnOVi6lH`8nh\aRRLgFmobaolmo[Q#cOiJ7MKOZ^C5moS^?\Acoh[SfIn7Gg_ej?]a9O<7gnmWgcfoel3NNa9bo7M]=O_C[H"
    A$ = A$ + "l>Nn5]Fb[7chj4L:moULSCWG`[aLji3`W1ginejJ>cHhIEocZG^UF4=m:AR;N>jYCIgnOFaO=oDkeNH\ho]TG^nomhoSYoGCS4oL^]?AO7Ggo8k58Z>AJlU7"
    A$ = A$ + "[gAlooej>`j?]e5Ao>;nfnS=GWU_[]n_<W_S_;PgiHCjklLfWBO6JofCogFe9h[3nLTgma5YNVE^a9RoJmXXa50HED[m_mekL<#kSNjhBILiEo[DOo<NfOIL"
    A$ = A$ + "4=V>[o?[V<^o[YmGkmVEoomJ1i_30n[;oN^nol#_?S<F\dlO9L>nke\nN#]GFJnYfG;gK5[om^FCKl=Jl_enkK?0FJoOMMeL^X?S3?iOS\o7el_GfiPSXoLf"
    A$ = A$ + "W[C_iiMJo8n??WO6k:]^Y_mcAoOiPGoNGaOYHIiHGaoC?o7:V5XOBfnoCJmg<J<TAON=chOKoc_YoHNmiOcXoU[I9bl3ONNVSXi6chocZ9S[_WW_Kmkle5Ae"
    A$ = A$ + "ogg_Jg;#ig[_VXnON4aoO54Z]Tfg`Zcob#7\Um]FW9Y?8B_2Kk_nm0D\_dl[dN2:_>cnQEf=#^^VfOnHT?7I53cFoWdll^\?OL`[KZGGJ^N;bgcfi^NGk\jo"
    A$ = A$ + "eFW]kiOYNmfaZE4o[[Q]cioQ7[\N:IL?7ImoG7I_n;BlWgK=Fn7_lnndoc_OeS1[oV^;]4b[OS\MT[??R6TXmS]Z=<ja\f?Zo?SV<9oG[?Ufk;MoRjoddN[m"
    A$ = A$ + "2DNoLmocXoo]mM0oJiONj?7anS^N;[jbmbo]F[aIfio8k18cjOdiI9]oUcCWgSH7YcGUW5=ogXOUF<fJLUQn?[J9k`nlkYEN\ee>SmYg3[m`eJoeZoOGaO[3"
    A$ = A$ + "?joV=nG]>K`ioIdf<M^ZajiXno8coUS<kc4Im7_OkhfFZOe]6lM5o_[_ofajdGhEZkocclc8JAbZ^<On>ja<SUIlo<dTEY3QiCB[GX_Fjn<SmkecNmnolk1H"
    A$ = A$ + "VeWlG;E;`ceheWikSRoJYNac6_]6;S^7PLd9>nN0b\_\VmYcYlciefdlJGmK6hinoBPNji\d18MmAfGWToMBko>6gY^Zde>K_5NNPD=>Ik;?WcYWM;7eabjJ"
    A$ = A$ + "lBfWN=c4oiSG[h^ElOfl?]iN[ioASeIPE?WM\nS7ObJmOThok[W576Ild^VQ6J=boB:nCLTKm5TOGco_HjogAnWF?hW^no\R?Amo\dSI]fPFoDK=#Ve9nfGh"
    A$ = A$ + "m9NEM>Zoc?ghnmcCo?M]7oL_D`kL#ij\doK]7P<e6e;ogJ=7OOP[an[O?0ll0:Bk7HTiI_SE_ioFj1ejWaaJ_lJ_O\HJK=\MJojHkM^[Wj\dg;cL<YiiFk?N"
    A$ = A$ + "NP7kBe1EZY;5oK[m?WnONlD:f;=GUaLPDng8coIW34Y6Dfn_ej?jAFjJR6oKj=gik>CgfLMojk3#J>HTeJNR1SToE6S[>_c:oHejoUR9lhSekMBoWnIV]>I_"
    A$ = A$ + "H1mmif:J^YlJdjU0meo7go;[[7]oG6jo[\9kelenBeUWY>==V9mJ[m0Tmc7U??jIO0cD?<VmGkN0TVW[\?kLNkoh=_LTlnAlKnlT7M0mdWWALNWfW[YXGOh\"
    A$ = A$ + "k_XioJc[Ngcg\i3NRoG2kQK4o]L8ko]c9Fc;A\_En_el_F<?klQVlDUn:[`oicmlS<Fo5=nGnmG_?G\jPOO=JcWef#Z7PfLA:[o;l]cfLnkG^fl?J^PF]QEY"
    A$ = A$ + "oWJOY3]LCJnbYmobe7M\8E;D[n7mLF[cVeoYYWdN1IjoSd3<C=Adhe[;nJ>OJmUZ;7anBk1`cn?YGKf[5e63c\fckeJKoigcgXfW?W_JmoNcom6oeb=eRcmb"
    A$ = A$ + "obZ?d>]_D]C;=8[X7SnHZMNeJ>gjmR6oieeKeoOg78kioNaOYgO4kg;oGcnljjA]o`aS1jiTQoCWCi7I\n;Jlom[kD?\gHiF;SRm5R_BaKYho<i0Egg_MF1]"
    A$ = A$ + "8g_MdiO_S5]ihE[mWKOYL#]lT\67cjodeAA]_F=>Y39k<CNA6n_dJ<On]nJJ[emc^70nJJ]eomZ3_jL>[iPE^NDJ\<cJ`Xm<jYoOUk1P?WG=FLh?UlG?G7mJ"
    A$ = A$ + "mVgk[gWneaSaF[ied1TALN7f_D;Uoihj=djeTInUdlNdinI[kk9nOMeZ5<cioNaO]NPNGGe;ogSmURgIVGh]_c8mOljoJnl\[oV=nOAleo?_GI]QeHabfJaD"
    A$ = A$ + "]c[mN;9oW?WD\i0ioS<>TdgYG?H]?c=9k9]N<Ck?SoG^VXS9N_9^mUZoTMl_nIm8kolgOFo_G_^Xm3MKk>[kkEo=cL>=]nFiPIe;^G]cNk1HTehS>^J]O^jo"
    A$ = A$ + "]FGIEGjUbWA:ofCObgn3;WgjmjioNZI#mA[J`NN>0c4oG]mia2]J\B7[XV;OLe<G?#=aI6OFao[;YoKmLnog6bNaO]3?[[lVokInWonIZoJdn?Nj1=ZoC?bH"
    A$ = A$ + "mg\ao;ROfXogiJ0[cCSSdOj=fWAM1^oG<ao>Ac_C2>Y]ncJNEZ7H6j=h[Y\je:UOViJ_ImOJmc8fgbgdZk\2oo>mFfoY_O6nOdnMcZ1DZN[E=H[c?COgAdi8"
    A$ = A$ + "U3>[F\AZ?[]70_aPXe;U]oljOXS7^NNaeO6i0mb_meoSU_YXoWonAjme;F49gLfJ#SHojJF3^WOQJ6BmRTZ9WIMG=ogkn0he6W]F4OM6==Gjg_?G^coJaO]3"
    A$ = A$ + "?[]RJONmAYLQ\lO]j;BmKT>G6n?eobHmO6aoZjMMFGTQ6PG2WW6W[6[9>oOCa=;a0Vnob_TTmiceBg?YlQI]9=GCJMeYdo7aoWY>PF]6[hEVmQ>Yog[?7__X"
    A$ = A$ + "W[e]M5F[cGK;M=Je5VI=_UnVNk18JOXfnmfjHedokM]hM]]Hi9FjoSFk_jNn_iC]mgK=ok9oFjNFUKcbW:W[9oWVCVdg1RWLbE_7PA\?oj6AWQE]Rji4iSX["
    A$ = A$ + "g6eo7Y^HFS79M8G6joGilo87[bnBS5Yah\fGZnRD]mG\Gc_fLVgO6[o;aEAO>1moJn]Dl]7;aoOO_[BnZ?oTfGC?Qfh:SiL[egdkYjlBR[icboW9FhY>FcJR"
    A$ = A$ + "4mojJlkcokeSS^NfC?A_[oKGOIGcE[NPD=iX[5jYk_gi:o^gaQflYge9lm0dcVgaaBhK\HV\mWCo?M^T[oG:oFjJl4gXi]]ebTenonmLL]Jk_HfLaAi4fWnI"
    A$ = A$ + "6=gGO^boAFmm7Y6WWm5<Sm;m2:JneSm_HGK>coA?F]medQ`O_`f]3BmYTj7mCOm_DLm]ogik08SlO?c3Fj1Bao;gG]GOMEMjXioL]7SZ1HZlm1FoJmIR6_?U"
    A$ = A$ + "oc_WN[O\:oo>UZ_mYYlcjoFmjTR7Nj=>BoO]jZ_4R3FG_fWakhP[QYWfO=M?JiTJaBYkSge:ado;E>eOMcFk7Co_DmkRfnggKfl[EOA?nn;]LGUn7dNMgenZ"
    A$ = A$ + "o<JWOfL`MfkO4k;E[Vnj<\OdSl\oHjlie:7MLdnI[edgCk?mjU\K_aVElOTiTE?ogK<6enEe7He2TZ=XM^M\ncC=PE4oYnhkjLdJW\jYmbahm1_^TS_Bc3lH"
    A$ = A$ + "_dLB6nOEXXjngNjb9SHkAkS9mIR>_;=?kijYaZIGgM:oG:6henIFg9RoGbkbao7Co_W?SKK;\6VNNY[WO=lJ1SjoggFim2XM>YgG;VacEigSIboi[9mk[bk3"
    A$ = A$ + "HLk7Co_enYh3>jLOU]EbEdbeNacMEbOZbcYiX2miJN?WiQllP<HdeOSJO]J_cJo\>RKoH8mIc:nGBGe>7OmkmidokF]4Sj5oS>g\ciO?eN7Y?P#1aZcG=NkL"
    A$ = A$ + "=[Jm7]No\k1HThOC_GJmCQWWRD>HKhU6C[?_FlEK>:bl_VmOaomGgWWnNg_a[Z;NDk?J]CYLV8imliN?j7XGk8J?Njno8i>B[I>YoCG;5coUkQYMoTnLAZmF"
    A$ = A$ + "FGc[YZM_T^nXeNYnQLm8ImP]LoI]\SUF]A[MaWoiiQfO>^_fjkSKoHJO\R7d2`dgkU2N7gJOFaL]1di[MNkl^nmmmL]dg[LomHkXfGjgmJOnH`S^SNG;mm6g"
    A$ = A$ + "nf8M]BenlF3D;noe]#Fo_D]nfoo1_Un?YHXF<MTi6YSM>ocSUN]_eHBZfPFm2Y[IDoOTeOlSXjoS6o_Xn[ej6UjYdlikGC3]]ak6kjHNITeOeOnG=Jl[7_UH"
    A$ = A$ + "b[Z[EJL<J?`NSK_m?79WWZO`SmUZMacE6M=g9mOYjQAn\AnlDOPVW5;feG3Z^?HggKT?K4OX]^PnmAJM;oea]OKlSOod[YI7kY[GTlCZ6Z8e>l\6\eGKSiAb"
    A$ = A$ + "MWAo_D]NYkO?moaVcemmkNS]ie_?oeMonVe3>bOmd_gjJUZM>Bmk8fgjeSJO_j=d^FYJgJfGjjlXggjJii7NboKGc[o_QG?cEB4=f;E[KTSWllo8e6TZ]XMN"
    A$ = A$ + "ne\ReOm>l>oWAloR7CLnloonjUeCC?WFmiNaLjiLkooc_8_ddoOOMd1^`=8Boc8JGWmNDn\Do>dj5F^c?9oW?W7eoSDoY^oIlh?]?bhn_MO_Xg3_f_^F#T?g"
    A$ = A$ + "H[oc`n]g3OkmRGgG[?o8SSHjo7ON^_m7Gookl72lh2=FmjBG7l\mmURCBn4__7_7WUnOYnnmV?Td9LaRCSjGNdKZIONNjXaMYJ^m\_TnTXe\ic[JemZkm;[k"
    A$ = A$ + "WnCjeeKmGdhoeEmOc?NdkeVCgNXE7#kjenlA63kNngkH\D_QnCYgKTa#deoN>lT7TAl_9f#eoKDokk?7E[?oWnOFOdOGJ^YoLk]>NZmM5o;onkKROmnBSWIk"
    A$ = A$ + "Q9U?=F]`aF3KM?:g7hooTloae][M?RXmSFC8R]UZ97enAR1SN?XGSVNZ8i#cT36eg[]oLjoYi`BedielkUc?So8UCG^GEmlHWGkmhaZAfk2?O9nc9iUYme^W"
    A$ = A$ + "IIoZiKBN:G3RUmSTOGXfVm[ka[=:Ygg2]a#[Fn8ao_CaR6gmfcCjc<jm8Sa#6coA[38eO9ZmWMm_faZc1TRoJeU][oAo\ejoE7_2fAb^NVC^7o_4gk#Goo]?"
    A$ = A$ + ">FLgjn>K=EnmHTeRI\VB:_HTeFOjn?]?#llXang0LmJjae\ejoS_72NMP8fVjodJ;SKoGEgShfgomPG3=jccVGCOdnCB[37gnc]?BZm;1Aj[UnmbihmVYg_f"
    A$ = A$ + "n?nd^IYmomkclcZ?WB<#K^NdiYHahGRfgkHHFk[U_:Uk:MoYe[WenFfAkj\doG^Nj?i#7gAF[;mIS4g7YOUeLe<eJhgSAo\c<o?Knb[;klVAW3SFW_L4anc6"
    A$ = A$ + "oOW7aR;Ld[oBkGgGo_TMl\6FKmgonUQV;Klc1SmIU7HMOj]F^]Vfhi1FiUm^7BSQ\eo_je1Jg7?iABnoE2jomjobi0iZoODOgJm_oiPngWNf_G]8_fOdkQdJ"
    A$ = A$ + "QAdQWIN\fg9]gioXiADkG2VBk7P_70J=InN1\doC7_DMMBWWN?Z^>bkeLO=RKBiQS6WR]>YEO==_Oefgbo[dDHT7UQm;m]keoFZ>YdL6=78Z__SioR?CkGe["
    A$ = A$ + "VQDOBjWIVejk>oOFR<NORno\fW?oc[5OanMIKk[W[V=hm0Vaggij_bmHd_3XNS7_joe>6anmZOkM\F6_aONFaf3QDLHfhoC`o]F7E?FKem<[mm[oGja44g^e"
    A$ = A$ + "e#lhojfgKm`Nf?[ebNf7PDnGdjCJiWn\Oll8alY;MmolonPhG;omUGoKST?KiWEgc;OmUj5KcVB>JieBol4df;I^W7Q5dNmAjkWalEa^lO^ch=]FA?oA^NGn"
    A$ = A$ + "j#?EngYhdnO6fWF3VFgcC>5oNHM]BgkXSmW`j_8Oo[N^GMSS_Zog:^7M[Rcg1f7QTO7eoiJE:_fcmAJl?ClgkmiN<fn_Q[Ilo[oYkdgl_^NW8fGJO4fO6NOW"
    A$ = A$ + "af3#kW[E;_Engmehki?TYmSTGKY5GJ]HFmTmHGN>#FJfjI_:KO9_?Qni1ma:GGmm_6kIBMZnoG4MoUGo4PF7i4JR6I>;jWoDj>hn`YSSdHiCIllYiocZQVN?"
    A$ = A$ + "h=3cdWb<6mDFoUaL_EO;Y[U__o8joY7S\G2=]=AR1FJTNbaOjhN6=Slkc8omOYm\>7enS^?RFMgAeogn\fmL_Z]o<joKo\A^GNcCdF_<bN_c`n=J_C8?:[eL"
    A$ = A$ + "S\>LVll<encmUE7gZ]kcBg_D<idSSNSaC?6n=`YeoNJ>]oWQnOnmi:#M`?9FUfcI^?A]iXkU8[NeFJDNbaoCkoIKoAoN4h_oXfgFcGomBDN_Xn_\=cEo?g>B"
    A$ = A$ + "j_iJnGQ^GKkgng9c_]nhF[E\R5A\aYmeW48Vli`WnLmYmoXfgjIWoK\G`:Ri?5mo?9OJ6KjefoFRoIYUoWZm?mLQVN`<]_mnMF_oNJkoD1a1000000000Jdk"
    A$ = A$ + "O_a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "0000000000000000000`W2o7B^>5%%%0"
    btemp$ = ""
    For i& = 1 To Len(A$) Step 4: B$ = Mid$(A$, i&, 4)
        If InStr(1, B$, "%") Then
            For C% = 1 To Len(B$): F$ = Mid$(B$, C%, 1)
                If F$ <> "%" Then C$ = C$ + F$
            Next: B$ = C$: End If: For j = 1 To Len(B$)
            If Mid$(B$, j, 1) = "#" Then
        Mid$(B$, j) = "@": End If: Next
        For t% = Len(B$) To 1 Step -1
            B& = B& * 64 + Asc(Mid$(B$, t%)) - 48
            Next: X$ = "": For t% = 1 To Len(B$) - 1
            X$ = X$ + Chr$(B& And 255): B& = B& \ 256
    Next: btemp$ = btemp$ + X$: Next
    btemp$ = _Inflate$(btemp$, m.SIZE)
    _MemPut m, m.OFFSET, btemp$: _MemFree m
    BASIMAGE2& = _CopyImage(v&): _FreeImage v&
End Function
Reply




Users browsing this thread: 3 Guest(s)