Mirage Source

Free ORPG making software.
It is currently Sun Jun 16, 2024 2:23 pm

All times are UTC




Post new topic Reply to topic  [ 15 posts ] 
Author Message
PostPosted: Wed Sep 26, 2007 7:28 pm 
Offline
Newbie

Joined: Thu Jun 07, 2007 3:28 pm
Posts: 19
I made the mistake of starting 3 years ago on es, and ive built a pretty awesome game, and hopefully i can redo the gameloop and not have to lose all the work.
im hoping you guys can point out some things i can do to get rid of this mess.

ok this is my horrid ES gameloop :P

Code:
Sub GameLoop()
Dim Tick As Long
Dim TickFPS As Long
Dim FPS As Long
Dim x As Long
Dim y As Long
Dim I As Long
Dim rec_back As RECT
Dim FlashCntr As Long
Dim FlashSwitch As Byte
   
    ' Set the focus
    frmMirage.picScreen.SetFocus
   
    ' Set font
    Call SetFont("Fixedsys", 18, 0, 0, 0, 0)
    ' Fixedsys's size can't be changed and bold doesn't seem to work
               
    ' Used for calculating fps
    TickFPS = GetTickCount
    FPS = 0
    FlashCntr = GetTickCount
    FlashSwitch = 0
   
    ' Just need to call this once at game loop so everything runs smoothly..
    DD.RestoreAllSurfaces
    Call InitSurfaces
   
    'Clear out the backbuffer
       
                   
        ' Blit out the map animations if it is time to.
        If MapAnim <> 0 Then
            'Call BltAnimations
        End If
    Do While InGame
        Tick = GetTickCount
       
        rec.Top = 0
        rec.Bottom = frmMirage.picScreen.Height
        rec.Left = 0
        rec.Right = frmMirage.picScreen.Width
        Call DD_BackBuffer.BltColorFill(rec, RGB(0, 0, 0))
               
        'Clear out the middle buffer for drawing
        With rec
            .Top = 0
            .Bottom = frmMirage.picScreen.Height
            .Left = 0
            .Right = frmMirage.picScreen.Width
        End With
        DD_MiddleBuffer.BltColorFill rec, RGB(0, 0, 0)
       
        ' Check to make sure they aren't trying to auto do anything
        If GetAsyncKeyState(VK_UP) >= 0 And DirUp = True Then DirUp = False
        If GetAsyncKeyState(VK_DOWN) >= 0 And DirDown = True Then DirDown = False
        If GetAsyncKeyState(VK_LEFT) >= 0 And DirLeft = True Then DirLeft = False
        If GetAsyncKeyState(VK_RIGHT) >= 0 And DirRight = True Then DirRight = False
        If GetAsyncKeyState(VK_CONTROL) >= 0 And ControlDown = True Then ControlDown = False
        If GetAsyncKeyState(VK_SHIFT) >= 0 And ShiftDown = True Then ShiftDown = False
       
        ' Check to make sure we are still connected
        If Not IsConnected Then InGame = False
       
        ' Check if we need to restore surfaces
        If NeedToRestoreSurfaces Then
            DD.RestoreAllSurfaces
            Call InitSurfaces
        End If
               
    If GettingMap = False Then
        If GetPlayerPOINTS(MyIndex) > 0 Then
            frmMirage.AddStr.Visible = True
            frmMirage.AddDef.Visible = True
            frmMirage.AddSpeed.Visible = True
            frmMirage.AddMagi.Visible = True
        Else
            frmMirage.AddStr.Visible = False
            frmMirage.AddDef.Visible = False
            frmMirage.AddSpeed.Visible = False
            frmMirage.AddMagi.Visible = False
        End If
        ' Visual Inventory
        Dim Q As Long
        Dim Qq As Long
        Dim IT As Long
               
        If GetTickCount > IT + 500 And frmMirage.picInv3.Visible = True Then
            For Q = 0 To MAX_INV - 1
                Qq = Player(MyIndex).Inv(Q + 1).Num
               
                If frmMirage.picInv(Q).Picture <> LoadPicture() Then
                    frmMirage.picInv(Q).Picture = LoadPicture()
                Else
                    If Qq = 0 Then
                        frmMirage.picInv(Q).Picture = LoadPicture()
                    Else
                        Call BitBlt(frmMirage.picInv(Q).hDC, 0, 0, PIC_X, PIC_Y, frmMirage.picItems.hDC, (Item(Qq).pic - Int(Item(Qq).pic / 6) * 6) * PIC_X, Int(Item(Qq).pic / 6) * PIC_Y, SRCCOPY)
                    End If
                End If
            Next Q
        End If
       
        ' Icons
        Dim M As Long
        Dim Mm As Long
        Dim TI As Long
               
        If GetTickCount > TI + 500 And frmMirage.picPlayerSpells.Visible = True Then
            For M = 0 To MAX_PLAYER_SPELLS - 1
                Mm = Player(MyIndex).Spell(M + 1)
               
                If frmMirage.picSpell(M).Picture <> LoadPicture() Then
                    frmMirage.picSpell(M).Picture = LoadPicture()
                Else
                    If Mm = 0 Then
                        frmMirage.picSpell(M).Picture = LoadPicture()
                    Else
                        Call BitBlt(frmMirage.picSpell(M).hDC, 0, 0, PIC_X, PIC_Y, frmMirage.picSpellIcons.hDC, (Spell(Mm).pic - Int(Spell(Mm).pic / 6) * 6) * PIC_X, Int(Spell(Mm).pic / 6) * PIC_Y, SRCCOPY)
                    End If
                End If
            Next M
        End If
                       
NewX = 10
        NewY = 7
       
        NewPlayerY = Player(MyIndex).y - NewY
        NewPlayerX = Player(MyIndex).x - NewX
       
        NewX = NewX * PIC_X
        NewY = NewY * PIC_Y
       
        NewXOffset = Player(MyIndex).XOffset
        NewYOffset = Player(MyIndex).YOffset

If Player(MyIndex).y - 7 < 1 Then
            NewY = Player(MyIndex).y * PIC_Y + Player(MyIndex).YOffset
            NewYOffset = 0
            NewPlayerY = 0
            If Player(MyIndex).y = 7 And Player(MyIndex).Dir = DIR_UP Then
                NewPlayerY = Player(MyIndex).y - 7
                NewY = 7 * PIC_Y
                NewYOffset = Player(MyIndex).YOffset
            End If
        ElseIf Player(MyIndex).y + 8 > MAX_MAPY + 1 Then
            NewY = (Player(MyIndex).y - 16) * PIC_Y + Player(MyIndex).YOffset
            NewYOffset = 0
            NewPlayerY = MAX_MAPY - 13
            If Player(MyIndex).y = 24 And Player(MyIndex).Dir = DIR_DOWN Then
                NewPlayerY = Player(MyIndex).y - 7
                NewY = 7 * PIC_Y
                NewYOffset = Player(MyIndex).YOffset
            End If
        End If
       
        If Player(MyIndex).x - 10 < 1 Then
            NewX = Player(MyIndex).x * PIC_X + Player(MyIndex).XOffset
            NewXOffset = 0
            NewPlayerX = 0
            If Player(MyIndex).x = 10 And Player(MyIndex).Dir = DIR_LEFT Then
                NewPlayerX = Player(MyIndex).x - 10
                NewX = 10 * PIC_X
                NewXOffset = Player(MyIndex).XOffset
            End If
        ElseIf Player(MyIndex).x + 11 > MAX_MAPX + 1 Then
            NewX = (Player(MyIndex).x - 11) * PIC_X + Player(MyIndex).XOffset
            NewXOffset = 0
            NewPlayerX = MAX_MAPX - 19
            If Player(MyIndex).x = 21 And Player(MyIndex).Dir = DIR_RIGHT Then
                NewPlayerX = Player(MyIndex).x - 10
                NewX = 10 * PIC_X
                NewXOffset = Player(MyIndex).XOffset
            End If
        End If
       
        sx = 32
        If MAX_MAPX = 19 Then
            NewX = Player(MyIndex).x * PIC_X + Player(MyIndex).XOffset
            NewXOffset = 0
            NewPlayerX = 0
            NewY = Player(MyIndex).y * PIC_Y + Player(MyIndex).YOffset
            NewYOffset = 0
            NewPlayerY = 0
            sx = 0
        End If

       
    If ScreenMode = 0 Then
        ' Blit out the items
        For I = 1 To MAX_MAP_ITEMS
            If MapItem(I).Num > 0 Then
                Call BltItem(I)
            End If
        Next I
       
        ' Blit out NPC hp bars
        For I = 1 To MAX_MAP_NPCS
            If GetTickCount < MapNpc(I).LastAttack + 5000 Then
                Call BltNpcBars(I)
            End If
        Next I
             
        ' Blit players bar
        For I = 1 To MAX_PLAYERS
            If IsPlaying(I) Then
                If GetPlayerMap(I) = GetPlayerMap(MyIndex) Then
                    'If GetTickCount < Player(MyIndex).LastAttack + 5000 Then
                        Call BltPlayerBars(I)
                    'End If
                End If
                If Player(I).Pet.Map = GetPlayerMap(MyIndex) And Player(I).Pet.Alive = YES Then
                    If GetTickCount < Player(MyIndex).Pet.LastAttack + 5000 Then
                        Call BltPetBars(I)
                    End If
                End If
            End If
        Next I
       
        ' Blit out the sprite change attribute
        For y = 0 To MAX_MAPY
            For x = 0 To MAX_MAPX
                Call BltSpriteChange(x, y)
            Next x
        Next y
       
        ' Blit out the furniture attribute
        For y = 0 To MAX_MAPY
            For x = 0 To MAX_MAPX
                Call BltFurniture(x, y)
            Next x
        Next y
       
        ' Blit out arrows
        For I = 1 To MAX_PLAYERS
            If IsPlaying(I) And GetPlayerMap(I) = GetPlayerMap(MyIndex) Then
                Call BltArrow(I)
            End If
        Next I
       
         ' XCORPSEX
        For I = 1 To MAX_PLAYERS
            If IsPlaying(I) Then
                If Player(I).CorpseMap = GetPlayerMap(MyIndex) Then
                    Call BltPlayerCorpse(I)
                End If
            End If
        Next I
        ' XCORPSEX
       
        ' Blit out the npcs
        For I = 1 To MAX_MAP_NPCS
            Call BltNpc(I)
        Next I
       
       
        ' Blit out players
        For I = 1 To MAX_PLAYERS
        If GetPlayerSpriteAccess(I) < 1 Then
            If IsPlaying(I) Then
                If GetPlayerMap(I) = GetPlayerMap(MyIndex) Then
                    If Player(I).Pet.Alive = YES Then
                        Call BltPet(I)
                    End If
                    Call BltPlayer(I)
                End If
            End If
         End If
        Next I
       
        For I = 1 To MAX_PLAYERS
        If GetPlayerSpriteAccess(I) > 0 Then
            If IsPlaying(I) Then
                If GetPlayerMap(I) = GetPlayerMap(MyIndex) Then
                    If Player(I).Pet.Alive = YES Then
                        Call BltPet(I)
                    End If
                    Call BltAdmin(I)
                End If
            End If
         End If
        Next I
       
        If SIZE_Y > PIC_Y Then
            For I = 1 To MAX_PLAYERS
            If GetPlayerSpriteAccess(I) < 1 Then
                If IsPlaying(I) Then
                    If GetPlayerMap(I) = GetPlayerMap(MyIndex) Then
                        If Player(I).Pet.Alive = YES Then
                            Call BltPetTop(I)
                        End If
                        Call BltPlayerTop(I)
                    End If
                End If
            End If
            Next I
        End If
       
        If SIZE_Y > PIC_Y Then
            For I = 1 To MAX_PLAYERS
            If GetPlayerSpriteAccess(I) > 0 Then
                If IsPlaying(I) Then
                    If GetPlayerMap(I) = GetPlayerMap(MyIndex) Then
                        If Player(I).Pet.Alive = YES Then
                            Call BltPetTop(I)
                        End If
                        Call BltAdminTop(I)
                    End If
                End If
            End If
            Next I
        End If
       
        ' Blit the spells
        For I = 1 To MAX_PLAYERS
            If IsPlaying(I) And GetPlayerMap(I) = GetPlayerMap(MyIndex) Then
                Call BltSpell(I)
            End If
        Next I
       
        ' Blit out the sprite change attribute
        For y = 0 To MAX_MAPY
            For x = 0 To MAX_MAPX
                Call BltSpriteChange2(x, y)
            Next x
        Next y
       
        ' Blit out the npc's top
        For I = 1 To MAX_MAP_NPCS
            Call BltNpcTop(I)
        Next I
    End If
               
   If InEditor = True Then
   Call BltTile
   Call BltFringeTile
   Call BltFringeTile2
   End If

     
    If ScreenMode = 0 Then
        ' Blit out the npcs
        For I = 1 To MAX_MAP_NPCS
            If Map(GetPlayerMap(MyIndex)).Tile(MapNpc(I).x, MapNpc(I).y).Fringe < 1 Then
                If Map(GetPlayerMap(MyIndex)).Tile(MapNpc(I).x, MapNpc(I).y).FAnim < 1 Then
                    If Map(GetPlayerMap(MyIndex)).Tile(MapNpc(I).x, MapNpc(I).y).Fringe2 < 1 Then
                        If Map(GetPlayerMap(MyIndex)).Tile(MapNpc(I).x, MapNpc(I).y).F2Anim < 1 Then
                            Call BltNpcTop(I)
                        End If
                    End If
                End If
            End If
        Next I
    End If
   
    For I = 1 To MAX_PLAYERS
        If IsPlaying(I) = True Then
            If Player(I).LevelUpT + 3000 > GetTickCount Then
                rec.Top = Int(32 / TilesInSheets) * PIC_Y
                rec.Bottom = rec.Top + PIC_Y
                rec.Left = (32 - Int(32 / TilesInSheets) * TilesInSheets) * PIC_X
                rec.Right = rec.Left + 96
               
                If I = MyIndex Then
                    x = NewX + sx
                    y = NewY + sx
                    Call DD_BackBuffer.BltFast(x - 32, y - 10 - Player(I).LevelUp, DD_TileSurf(6), rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
                Else
                    x = GetPlayerX(I) * PIC_X + sx + Player(I).XOffset
                    y = GetPlayerY(I) * PIC_Y + sx + Player(I).YOffset
                    Call DD_BackBuffer.BltFast(x - (NewPlayerX * PIC_X) - 32 - NewXOffset, y - (NewPlayerY * PIC_Y) - 10 - Player(I).LevelUp - NewYOffset, DD_TileSurf(6), rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
                End If
                If Player(I).LevelUp >= 3 Then
                    Player(I).LevelUp = Player(I).LevelUp - 1
                ElseIf Player(I).LevelUp >= 1 Then
                    Player(I).LevelUp = Player(I).LevelUp + 1
                End If
            Else
                Player(I).LevelUpT = 0
            End If
        End If
    Next I
   
    If GettingMap = False Then
        If GameTime = TIME_NIGHT And Map(GetPlayerMap(MyIndex)).Indoors = 0 And InEditor = False Then
            Call Night
        End If
        If frmMapEditor.chkDayNight.Value = 1 And InEditor = True Then
            Call Night
        End If
        If Map(GetPlayerMap(MyIndex)).Indoors = 0 Then Call BltWeather
    End If

    If InEditor = True And Val(GetVar(App.Path & "\Main\Config\config.ini", "CONFIG", "MapGrid")) = 1 Then
        For y = 0 To MAX_MAPY
            For x = 0 To MAX_MAPX
                Call BltTile2(x * 32, y * 32, 0, 5)
            Next x
        Next y
    End If
End If
   
    If InEditor = True And SelectorWidth <> 0 And SelectorHeight <> 0 And frmMapEditor.fraLayers.Visible = True Then
        For y = 0 To SelectorHeight - 1
            For x = 0 To SelectorWidth - 1
                Call BltTile2(MouseX + (x * PIC_X), MouseY + (y * PIC_Y), ((EditorTileY + y) * TilesInSheets) + (EditorTileX + x), EditorSet)
            Next x
        Next y
    End If
   
    rec.Top = 0
        rec.Bottom = frmMirage.picScreen.Height
        rec.Left = 0
        rec.Right = frmMirage.picScreen.Width
   
        Call DD_BackBuffer.BltFast(0, 0, DD_LowerBuffer, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
        Call DD_BackBuffer.BltFast(0, 0, DD_MiddleBuffer, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
        Call DD_BackBuffer.BltFast(0, 0, DD_UpperBuffer, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
   
    ' Lock the backbuffer so we can draw text and names
    TexthDC = DD_BackBuffer.GetDC
    If GettingMap = False Then
        If ScreenMode = 0 Then
            If Val(GetVar(App.Path & "\Main\Config\config.ini", "CONFIG", "NPCDamage")) = 1 Then
                If Val(GetVar(App.Path & "\Main\Config\config.ini", "CONFIG", "PlayerName")) = 0 Then
                    If GetTickCount < NPCDmgTime + 2000 Then
                        Call DrawText(TexthDC, (Int(Len(NPCDmgDamage)) / 2) * 3 + NewX + sx, NewY - 22 - ii + sx, NPCDmgDamage, QBColor(BrightRed))
                    End If
                Else
                    If GetPlayerGuild(MyIndex) <> "" Then
                        If GetTickCount < NPCDmgTime + 2000 Then
                            Call DrawText(TexthDC, (Int(Len(NPCDmgDamage)) / 2) * 3 + NewX + sx, NewY - 42 - ii + sx, NPCDmgDamage, QBColor(BrightRed))
                        End If
                    Else
                        If GetTickCount < NPCDmgTime + 2000 Then
                            Call DrawText(TexthDC, (Int(Len(NPCDmgDamage)) / 2) * 3 + NewX + sx, NewY - 22 - ii + sx, NPCDmgDamage, QBColor(BrightRed))
                        End If
                    End If
                End If
                ii = ii + 1
            End If
           
            If Val(GetVar(App.Path & "\Main\Config\config.ini", "CONFIG", "PlayerDamage")) = 1 Then
                If NPCWho > 0 Then
                    If MapNpc(NPCWho).Num > 0 Then
                        If Val(GetVar(App.Path & "\Main\Config\config.ini", "CONFIG", "NPCName")) = 0 Then
                            If Npc(MapNpc(NPCWho).Num).Big = 0 Then
                                If GetTickCount < DmgTime + 2000 Then
                                    Call DrawText(TexthDC, (MapNpc(NPCWho).x - NewPlayerX) * PIC_X + sx + (Int(Len(DmgDamage)) / 2) * 3 + MapNpc(NPCWho).XOffset - NewXOffset, (MapNpc(NPCWho).y - NewPlayerY) * PIC_Y + sx - 20 + MapNpc(NPCWho).YOffset - NewYOffset - iii, DmgDamage, QBColor(White))
                                End If
                            Else
                                If GetTickCount < DmgTime + 2000 Then
                                    Call DrawText(TexthDC, (MapNpc(NPCWho).x - NewPlayerX) * PIC_X + sx + (Int(Len(DmgDamage)) / 2) * 3 + MapNpc(NPCWho).XOffset - NewXOffset, (MapNpc(NPCWho).y - NewPlayerY) * PIC_Y + sx - 47 + MapNpc(NPCWho).YOffset - NewYOffset - iii, DmgDamage, QBColor(White))
                                End If
                            End If
                        Else
                            If Npc(MapNpc(NPCWho).Num).Big = 0 Then
                                If GetTickCount < DmgTime + 2000 Then
                                    Call DrawText(TexthDC, (MapNpc(NPCWho).x - NewPlayerX) * PIC_X + sx + (Int(Len(DmgDamage)) / 2) * 3 + MapNpc(NPCWho).XOffset - NewXOffset, (MapNpc(NPCWho).y - NewPlayerY) * PIC_Y + sx - 30 + MapNpc(NPCWho).YOffset - NewYOffset - iii, DmgDamage, QBColor(White))
                                End If
                            Else
                                If GetTickCount < DmgTime + 2000 Then
                                    Call DrawText(TexthDC, (MapNpc(NPCWho).x - NewPlayerX) * PIC_X + sx + (Int(Len(DmgDamage)) / 2) * 3 + MapNpc(NPCWho).XOffset - NewXOffset, (MapNpc(NPCWho).y - NewPlayerY) * PIC_Y + sx - 57 + MapNpc(NPCWho).YOffset - NewYOffset - iii, DmgDamage, QBColor(White))
                                End If
                            End If
                        End If
                        iii = iii + 1
                    End If
                End If
            End If
           
            'Draw NPC Names
            If Val(GetVar(App.Path & "\Main\Config\config.ini", "CONFIG", "NPCName")) = 1 Then
                For I = LBound(MapNpc) To UBound(MapNpc)
                    If MapNpc(I).Num > 0 Then
                        Call BltMapNPCName(I)
                    End If
                Next I
            End If
           
            ' Draw Player Names
            If Val(GetVar(App.Path & "\Main\Config\config.ini", "CONFIG", "PlayerName")) = 1 Then
                For I = 1 To MAX_PLAYERS
                    If IsPlaying(I) And GetPlayerMap(I) = GetPlayerMap(MyIndex) Then
                        Call BltPlayerGuildName(I)
                        Call BltPlayerMarriageName(I)
                        If GetTickCount > FlashCntr + 250 Then
                            If FlashSwitch = 1 Then
                                FlashSwitch = 0
                            Else
                                FlashSwitch = 1
                            End If
                            FlashCntr = GetTickCount
                        End If
                        Call BltPlayerName(I, FlashSwitch)
                        If Player(I).Pet.Alive = YES And Player(I).Pet.Map = GetPlayerMap(MyIndex) Then
                            Call BltPetName(I)
                        End If
                        ' XCORPSEX
                        If Player(I).CorpseMap = GetPlayerMap(MyIndex) Then
                       Call BltPlayerCorpseName(I)
                        End If
                        ' XCORPSEX
                    End If
                Next I
            End If
     
            ' speech bubble stuffs
            If Val(GetVar(App.Path & "\Main\Config\config.ini", "CONFIG", "SpeechBubbles")) = 1 Then
                For I = 1 To MAX_PLAYERS
                    If IsPlaying(I) And GetPlayerMap(I) = GetPlayerMap(MyIndex) Then
                        If Bubble(I).Text <> "" Then
                            Call BltPlayerText(I)
                        End If
       
                        If GetTickCount() > Bubble(I).Created + DISPLAY_BUBBLE_TIME Then
                            Bubble(I).Text = ""
                        End If
                    End If
                Next I
            End If
   
           
            ' Blit out attribs if in editor
            If InEditor Then
                For y = 0 To MAX_MAPY
                    For x = 0 To MAX_MAPX
                        With Map(GetPlayerMap(MyIndex)).Tile(x, y)
                            If .Type = TILE_TYPE_BLOCKED Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "B", QBColor(BrightRed))
                            If .Type = TILE_TYPE_WARP Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "W", QBColor(BrightBlue))
                            If .Type = TILE_TYPE_ITEM Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "I", QBColor(White))
                            If .Type = TILE_TYPE_NPCAVOID Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "N", QBColor(White))
                            If .Type = TILE_TYPE_KEY Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "K", QBColor(White))
                            If .Type = TILE_TYPE_KEYOPEN Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "O", QBColor(White))
                            If .Type = TILE_TYPE_HEAL Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "H", QBColor(BrightGreen))
                            If .Type = TILE_TYPE_KILL Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "K", QBColor(BrightRed))
                            If .Type = TILE_TYPE_SHOP Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "S", QBColor(Yellow))
                            If .Type = TILE_TYPE_CBLOCK Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "CB", QBColor(Black))
                            If .Type = TILE_TYPE_ARENA Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "A", QBColor(BrightGreen))
                            If .Type = TILE_TYPE_SOUND Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "PS", QBColor(Yellow))
                            If .Type = TILE_TYPE_SPRITE_CHANGE Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "SC", QBColor(Grey))
                            If .Type = TILE_TYPE_SIGN Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "SI", QBColor(Yellow))
                            If .Type = TILE_TYPE_DOOR Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "D", QBColor(Black))
                            If .Type = TILE_TYPE_NOTICE Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "N", QBColor(BrightGreen))
                            If .Type = TILE_TYPE_CHEST Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "C", QBColor(Brown))
                            If .Type = TILE_TYPE_CLASS_CHANGE Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "CG", QBColor(White))
                            If .Type = TILE_TYPE_SCRIPTED Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "SC", QBColor(Yellow))
                            If .Type = TILE_TYPE_BANK Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "BANK", QBColor(BrightRed))
                            If .Type = TILE_TYPE_HOUSE_BUY Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "PHB", QBColor(Yellow))
                            If .Type = TILE_TYPE_HOUSE Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "PH", QBColor(White))
                            If .Type = TILE_TYPE_FURNITURE Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "F", QBColor(BrightRed))
                            If .Type = TILE_TYPE_FISH Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "FISH", QBColor(Blue))
                            If .Type = TILE_TYPE_MINE Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "MINE", QBColor(Yellow))
                            If .Type = TILE_TYPE_LJACKING Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "LJACK", QBColor(Yellow))
                            If .Type = TILE_TYPE_ROOF Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "RF", QBColor(Red))
                            If .Type = TILE_TYPE_ROOFBLOCK Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "RFB", QBColor(BrightRed))
                            If .Type = TILE_TYPE_WALKTHRU Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "WT", QBColor(Red))
                            If .Type = TILE_TYPE_LOWER_STAT Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "-S", QBColor(BrightRed))
                            If .Type = TILE_TYPE_FORAGING Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "IF", QBColor(Blue))
                            If .Type = TILE_TYPE_SMITH Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "Sm", QBColor(BrightGreen))
                            If .Type = TILE_TYPE_JAILRELEASE Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "JAIL", QBColor(BrightGreen))
                            If .Type = TILE_TYPE_SPAWNGATE Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "GATE", QBColor(BrightGreen))
                            If .Type = TILE_TYPE_CTF Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "CTF", QBColor(BrightCyan))
                            If .Type = TILE_TYPE_GUILDHOUSE_BUY Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "GHB", QBColor(Yellow))
                            If .Type = TILE_TYPE_GUILDHOUSE Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "GH", QBColor(White))
                            If .Type = TILE_TYPE_WATER Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "WATER", QBColor(White))
                            If .Type = TILE_TYPE_SOAEXPANSIONPACK Then Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, "SoA", QBColor(White))
                            If .Light > 0 Then Call DrawText(TexthDC, x * PIC_X + sx + 18 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 14 - (NewPlayerY * PIC_Y) - NewYOffset, "L", QBColor(Yellow))
                        End With
                       
                        If InSpawnEditor Then
                            For I = 1 To MAX_MAP_NPCS
                                If TempNpcSpawn(I).Used = YES Then
                                    If x = TempNpcSpawn(I).x And y = TempNpcSpawn(I).y Then
                                        Call DrawText(TexthDC, x * PIC_X + sx + 8 - (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY * PIC_Y) - NewYOffset, I, QBColor(White))
                                    End If
                                End If
                            Next I
                        End If
                    Next x
                Next y
            End If
           
            ' Blit out there FPS
            If Val(GetVar(App.Path & "\Main\Config\config.ini", "CONFIG", "FPS")) = 1 Then
            Call DrawText(TexthDC, 560, 5, "FPS: " & GameFPS, QBColor(BrightCyan))
            End If
                   
            ' Draw map name
            If Map(GetPlayerMap(MyIndex)).Moral = MAP_MORAL_NONE Then
                Call DrawText(TexthDC, Int((20.5) * PIC_X / 2) - (Int(Len(Trim(Map(GetPlayerMap(MyIndex)).Name)) / 2) * 8) + sx, 2 + sx, Trim(Map(GetPlayerMap(MyIndex)).Name), QBColor(BrightRed))
            ElseIf Map(GetPlayerMap(MyIndex)).Moral = MAP_MORAL_SAFE Then
                Call DrawText(TexthDC, Int((20.5) * PIC_X / 2) - (Int(Len(Trim(Map(GetPlayerMap(MyIndex)).Name)) / 2) * 8) + sx, 2 + sx, Trim(Map(GetPlayerMap(MyIndex)).Name), QBColor(White))
            ElseIf Map(GetPlayerMap(MyIndex)).Moral = MAP_MORAL_NO_PENALTY Then
                Call DrawText(TexthDC, Int((20.5) * PIC_X / 2) - (Int(Len(Trim(Map(GetPlayerMap(MyIndex)).Name)) / 2) * 8) + sx, 2 + sx, Trim(Map(GetPlayerMap(MyIndex)).Name), QBColor(Black))
            ElseIf Map(GetPlayerMap(MyIndex)).Moral = MAP_MORAL_HOUSE Then
                Call DrawText(TexthDC, Int((20.5) * PIC_X / 2) - (Int(Len(Trim(Map(GetPlayerMap(MyIndex)).Name)) / 2) * 8) + sx, 2 + sx, Trim(Map(GetPlayerMap(MyIndex)).Name), QBColor(Yellow))
            ElseIf Map(GetPlayerMap(MyIndex)).Moral = MAP_MORAL_INN Then
                Call DrawText(TexthDC, Int((20.5) * PIC_X / 2) - (Int(Len(Trim(Map(GetPlayerMap(MyIndex)).Name)) / 2) * 8) + sx, 2 + sx, Trim(Map(GetPlayerMap(MyIndex)).Name), QBColor(Green))
            End If

           
            ' Battle messages
            For I = 1 To MAX_BLT_LINE
                If BattlePMsg(I).Index > 0 Then
                    If BattlePMsg(I).Time + 7000 > GetTickCount Then
                        Call DrawText(TexthDC, 1 + sx, BattlePMsg(I).y + frmMirage.picScreen.Height - 15 + sx, Trim(BattlePMsg(I).Msg), QBColor(BattlePMsg(I).Color))
                    Else
                        BattlePMsg(I).done = 0
                    End If
                End If
               
                If BattleMMsg(I).Index > 0 Then
                    If BattleMMsg(I).Time + 7000 > GetTickCount Then
                        Call DrawText(TexthDC, (frmMirage.picScreen.Width - (Len(BattleMMsg(I).Msg) * 8)) + sx, BattleMMsg(I).y + frmMirage.picScreen.Height - 15 + sx, Trim(BattleMMsg(I).Msg), QBColor(BattleMMsg(I).Color))
                    Else
                        BattleMMsg(I).done = 0
                    End If
                End If
            Next I
        End If
    End If

        ' Check if we are getting a map, and if we are tell them so
        If GettingMap = True Then
            Call DrawText(TexthDC, 36, 36, "...Receiving map...", QBColor(BrightCyan))
        End If
                       
        ' Release DC
        Call DD_BackBuffer.ReleaseDC(TexthDC)
       
        ' Blit out emoticons
        For I = 1 To MAX_PLAYERS
            If IsPlaying(I) And GetPlayerMap(I) = GetPlayerMap(MyIndex) Then
                Call BltEmoticons(I)
            End If
        Next I
       
        ' Get the rect for the back buffer to blit from
        rec.Top = 0
        rec.Bottom = (MAX_MAPY + 1) * PIC_Y
        rec.Left = 0
        rec.Right = (MAX_MAPX + 1) * PIC_X
       
        ' Get the rect to blit to
        Call DX.GetWindowRect(frmMirage.picScreen.hwnd, rec_pos)
        rec_pos.Bottom = rec_pos.Top - sx + ((MAX_MAPY + 1) * PIC_Y)
        rec_pos.Right = rec_pos.Left - sx + ((MAX_MAPX + 1) * PIC_X)
        rec_pos.Top = rec_pos.Bottom - ((MAX_MAPY + 1) * PIC_Y)
        rec_pos.Left = rec_pos.Right - ((MAX_MAPX + 1) * PIC_X)
       
        ' Blit the backbuffer
        Call DD_PrimarySurf.Blt(rec_pos, DD_BackBuffer, rec, DDBLT_WAIT)

        If XToGo <> -1 Or YToGo <> -1 Then
            Dim XDif As Long
            Dim YDif As Long
           
            XDif = Abs(GetPlayerX(MyIndex) - XToGo)
            YDif = Abs(GetPlayerY(MyIndex) - YToGo)
           
            If XToGo = GetPlayerX(MyIndex) Or XToGo = -1 Then
                XToGo = -1
                XDif = 0
            Else
                XDif = Abs(GetPlayerX(MyIndex) - XToGo)
            End If
           
            If YToGo = GetPlayerY(MyIndex) Or YToGo = -1 Then
                YToGo = -1
                YDif = 0
            Else
                YDif = Abs(GetPlayerY(MyIndex) - YToGo)
            End If
           
            Debug.Print (XDif & " " & YDif)
           
            If XDif > YDif Then
                If GetPlayerX(MyIndex) - XToGo > 0 Then
                    DirLeft = True
                Else
                    DirRight = True
                End If
            End If
           
            If YDif > XDif Then
                If GetPlayerY(MyIndex) - YToGo > 0 Then
                    DirUp = True
                Else
                    DirDown = True
                End If
            End If
           
            If XDif = YDif And XDif <> 0 And YDif <> 0 Then
                ' I'll be nice and give you the non-directional movement code
                'If Int(Rnd * 2) = 0 Then
                If GetPlayerX(MyIndex) - XToGo > 0 Then
                    DirLeft = True
                Else
                    DirRight = True
                End If
                ' Else
                If GetPlayerY(MyIndex) - YToGo > 0 Then
                    DirUp = True
                Else
                    DirDown = True
                End If
                'End If
            End If
        End If
       
        ' Check if player is trying to move
        Call CheckMovement
   
   
        ' Check to see if player is trying to attack
        Call CheckAttack
       
        ' Process player and pet movements (actually move them)
        For I = 1 To MAX_PLAYERS
            If IsPlaying(I) Then
                Call ProcessMovement(I)
                If Player(I).Pet.Alive = YES Then
                    Call ProcessPetMovement(I)
                End If
            End If
        Next I
       
       
        ' Process npc movements (actually move them)
        For I = 1 To MAX_MAP_NPCS
            If Map(GetPlayerMap(MyIndex)).Npc(I) > 0 Then
                Call ProcessNpcMovement(I)
            End If
        Next I
 
        ' Change map animation every 250 milliseconds
        If GetTickCount > MapAnimTimer + 250 Then
            If MapAnim = 0 Then
                MapAnim = 1
            Else
                MapAnim = 0
            End If
            MapAnimTimer = GetTickCount
        End If
       
        ' Calculate fps
        If GetTickCount > TickFPS + 1000 Then
            GameFPS = FPS
            TickFPS = GetTickCount
            FPS = 0
        Else
            FPS = FPS + 1
        End If
       
        Call MakeMidiLoop
       
        DoEvents
    Loop
   
   
    frmMirage.Visible = False
    frmSendGetData.Visible = True
    Call SetStatus("Destroying game data...")
   
    ' Shutdown the game
    Call GameDestroy
   
    ' Report disconnection if server disconnects
    If IsConnected = False Then
        Call MsgBox("Thank you for playing " & GAME_NAME & "!", vbOKOnly, GAME_NAME)
    End If
   
End Sub


any ideas ? i know its a hell of alot bigger than MS thats for sure


Top
 Profile  
 
PostPosted: Wed Sep 26, 2007 7:30 pm 
Offline
Submit-Happy
User avatar

Joined: Fri Jun 16, 2006 7:01 am
Posts: 2768
Location: Yorkshire, UK
Get rid of the visual inventory, visual spells and the scrolling map code.

See if that helps.

Don't bother replacing it yet, just backup your work then delete all those to see if it's faster.

_________________
Quote:
Robin:
Why aren't maps and shit loaded up in a dynamic array?
Jacob:
the 4 people that know how are lazy
Robin:
Who are those 4 people?
Jacob:
um
you, me, and 2 others?


Image


Top
 Profile  
 
PostPosted: Wed Dec 08, 2021 4:07 am 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 495069
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинйоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоsemiasphalticflux.ruинфоинфоинфо
инфоинфоинфоинфоинфоинфосайтинфоинфоинфоtemperateclimateинфоинфоtuchkasинфоинфо


Top
 Profile  
 
PostPosted: Tue Feb 08, 2022 5:16 pm 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 495069
ever123.9PERFPerfComiCharADIENaugHansDagaSecoAnneKnowPingPourXVIIclasRoseAtlaHereXVIIJohnCher
immoDaviJeweGEZAJewewwwnColiAdriHolmRandIntrPierArthHarpEnglRudoPinkRogeKissBradBeloMIchSKWP
PatrXVIIGeorErneLeonMattHaleXIIIOmatBlinCircJeweUptoHenrAltaWillEmmaEditTadeJohaAlicXVIISeyl
domoOZONNikiMusiFallCircSelaVIIITadeEmilXVIIFernCircBebeZoneGuntNormEvanSoulJohnHeckPrakTrea
ZoneSamuHarrSweeZoneZoneXVIIArthZoneXIIIZoneZonediamZoneZoneStreWestZoneZoneZoneReggZoneZone
ZoneFlexKKOEKOSSHDMIMicrZanuHotpRozaHellGuerBookAdriMistChicWateMistMistSSANFIATToddChapFunk
ValiPastFantThisTracStefDragWindGescSoakvoicBorkTefaMariChoiliveMiltwwwnWoodCannMiltTokiMich
GilldestJameVIIIJameForeonliRandHonoVictYevgEtudEverNoteSeanSaveAustMircAgniBolsllogMetaWind
DigiCapoAtlaNancNintHailHeelCaveExceTuttJeweJeweFranFranMichAutoEnidISBNJameMarlHallKOSSKOSS
KOSSloveSnowKareKrafSONYNagiHansMaurTherEnglHereSaurtuchkasWindWind


Top
 Profile  
 
PostPosted: Fri Mar 11, 2022 5:16 am 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 495069
audiobookkeeper.rucottagenet.rueyesvision.rueyesvisions.comfactoringfee.rufilmzones.rugadwall.rugaffertape.rugageboard.rugagrule.rugallduct.rugalvanometric.rugangforeman.rugangwayplatform.rugarbagechute.rugardeningleave.rugascautery.rugashbucket.rugasreturn.rugatedsweep.rugaugemodel.rugaussianfilter.rugearpitchdiameter.ru
geartreating.rugeneralizedanalysis.rugeneralprovisions.rugeophysicalprobe.rugeriatricnurse.rugetintoaflap.rugetthebounce.ruhabeascorpus.ruhabituate.ruhackedbolt.ruhackworker.ruhadronicannihilation.ruhaemagglutinin.ruhailsquall.ruhairysphere.ruhalforderfringe.ruhalfsiblings.ruhallofresidence.ruhaltstate.ruhandcoding.ruhandportedhead.ruhandradar.ruhandsfreetelephone.ru
hangonpart.ruhaphazardwinding.ruhardalloyteeth.ruhardasiron.ruhardenedconcrete.ruharmonicinteraction.ruhartlaubgoose.ruhatchholddown.ruhaveafinetime.ruhazardousatmosphere.ruheadregulator.ruheartofgold.ruheatageingresistance.ruheatinggas.ruheavydutymetalcutting.rujacketedwall.rujapanesecedar.rujibtypecrane.rujobabandonment.rujobstress.rujogformation.rujointcapsule.rujointsealingmaterial.ru
journallubricator.rujuicecatcher.rujunctionofchannels.rujusticiablehomicide.rujuxtapositiontwin.rukaposidisease.rukeepagoodoffing.rukeepsmthinhand.rukentishglory.rukerbweight.rukerrrotation.rukeymanassurance.rukeyserum.rukickplate.rukillthefattedcalf.rukilowattsecond.rukingweakfish.rukinozones.rukleinbottle.rukneejoint.ruknifesethouse.ruknockonatom.ruknowledgestate.ru
kondoferromagnet.rulabeledgraph.rulaborracket.rulabourearnings.rulabourleasing.rulaburnumtree.rulacingcourse.rulacrimalpoint.rulactogenicfactor.rulacunarycoefficient.ruladletreatediron.rulaggingload.rulaissezaller.rulambdatransition.rulaminatedmaterial.rulammasshoot.rulamphouse.rulancecorporal.rulancingdie.rulandingdoor.rulandmarksensor.rulandreform.rulanduseratio.ru
languagelaboratory.rulargeheart.rulasercalibration.rulaserlens.rulaserpulse.rulaterevent.rulatrinesergeant.rulayabout.ruleadcoating.ruleadingfirm.rulearningcurve.ruleaveword.rumachinesensible.rumagneticequator.ruсайтmailinghouse.rumajorconcern.rumammasdarling.rumanagerialstaff.rumanipulatinghand.rumanualchoke.rumedinfobooks.rump3lists.ru
nameresolution.runaphtheneseries.runarrowmouthed.runationalcensus.runaturalfunctor.runavelseed.runeatplaster.runecroticcaries.runegativefibration.runeighbouringrights.ruobjectmodule.ruobservationballoon.ruobstructivepatent.ruoceanmining.ruoctupolephonon.ruofflinesystem.ruoffsetholder.ruolibanumresinoid.ruonesticket.rupackedspheres.rupagingterminal.rupalatinebones.rupalmberry.ru
papercoating.ruparaconvexgroup.ruparasolmonoplane.ruparkingbrake.rupartfamily.rupartialmajorant.ruquadrupleworm.ruqualitybooster.ruquasimoney.ruquenchedspark.ruquodrecuperet.rurabbetledge.ruradialchaser.ruradiationestimator.rurailwaybridge.rurandomcoloration.rurapidgrowth.rurattlesnakemaster.rureachthroughregion.rureadingmagnifier.rurearchain.rurecessioncone.rurecordedassignment.ru
rectifiersubstation.ruredemptionvalue.rureducingflange.rureferenceantigen.ruregeneratedprotein.rureinvestmentplan.rusafedrilling.rusagprofile.rusalestypelease.rusamplinginterval.rusatellitehydrology.ruscarcecommodity.ruscrapermat.ruscrewingunit.ruseawaterpump.rusecondaryblock.rusecularclergy.ruseismicefficiency.ruselectivediffuser.rusemiasphalticflux.rusemifinishmachining.ruspicetrade.ruspysale.ru
stungun.rutacticaldiameter.rutailstockcenter.rutamecurve.rutapecorrection.rutappingchuck.rutaskreasoning.rutechnicalgrade.rutelangiectaticlipoma.rutelescopicdamper.rutemperateclimate.rutemperedmeasure.rutenementbuilding.rutuchkasultramaficrock.ruultraviolettesting.ru


Top
 Profile  
 
PostPosted: Thu Jun 02, 2022 12:01 am 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 495069
Esco346.1BettCHAPRobeVidhSputLaurBonuYvesFarbMcBaTonywwwcPrakTescMenzTescTescAnnaAlexTennVint
DekoMoreDaviTerrGeorXVIIJeffPoweSlimSchaYankStarYourTerrCharAquaPhilToutRennLoveDekoAlonBeli
ChriToccVoguDancArmaLineCyraSelaCharErlePeteTimoJeweFallFlamgunmArraLangElegElegHarrJuliPush
BeatJoliPALIELEGSpliElegSelaZoneElegCarrZoneZoneGUESNoraJereRogeZonetaglDecoAndrXVIIZoneOLAP
FollZoneAmerZoneZoneZoneChetZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneZonediamZoneZoneZone
ZoneMadeDalePionMeriOPALZanuDavoPlanMiniFirsWitcRevoLyriESIGWoodJuliSQuiSTARFORDXVIIeditjazz
ValiMARABeatBlanBlanCrysAvenWordDiscdowsLEGOsupeViteTeflBoziXVIILaddEaglSophLighFromWhitSkin
DownWolfXVIIArtiVallFyodEmilAcadAcadExecGablMikhHarvStreRogewwwmJeanAnnaatriInteRingVervBern
BethWillInteMoniTerrInteKaziComeRichPublOZONHansSonyRobeKingXVIIHetzMaryRollKlauMorePionPion
PionPeytKurtBryaIntoPeteSleiCharGRETOuveDonaDolpDonotuchkasPapeXVII


Top
 Profile  
 
PostPosted: Fri Sep 09, 2022 10:12 am 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 495069
Sher162.9ReprReprGregOverStayDonaWrigMereTheoPROTWallCosmGardJereDeadLagoSympDoorXVIIletzAris
DaveAwakLaurEricMicrOZONMarcRobeworkMikaXenoHermBonuPhilVasiHerbDoesBasbBookWomeYourXVIIStep
KarlZoneHaroPeteRobeJeffTrasFallMacbCircIainGoodForcVIIIAlexElizDumeStouPoulRaymThomFunkChri
RomaMaurThomXIIIWindJohnSelaColiWindFallHideGellRobeConvSolhGordBillhomoSilvExpeCommXIIISony
ZoneZoneEmptHearZoneZoneDrBrVolaFranFranZoneZoneZoneZoneLouiWindTimoZoneZoneLogiXboxManfSapi
SwamXXIIMiloSennErnsAdobCataBoscINTEGradBookSwarDaliSQuitechFlipHeddOlivPionPROTGoodThisFree
BathSonsSchiPaulMescSpriPunkChilWindLangMoleSmarUnitBvlgAdvaCindPrelAlexJohaSongHoptINTESofi
FantGustRogeVerlDeniSadoEffeHonoGiovPhilRichBrinLeonSimoBariMichNautSpacPlayBlueBallWillXbox
CollPatrXVIIGerdJonaRestRubySimCMichDeerCarlGoogPREFISBNHalfClosVIIIWordBarbVIIILaurSennSenn
SennPhilMagiLenaprojIacoVaniThisDannMarlElizWillDavituchkasJeanDire


Top
 Profile  
 
PostPosted: Wed Oct 12, 2022 11:09 pm 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 495069
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинйоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоtuchkasинфоинфо


Top
 Profile  
 
PostPosted: Thu Nov 03, 2022 1:18 am 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 495069
METI768.9BettBettorzbBrocAmesMariWolfWaitiMPAWereLaceAlivAimeVideImanEllaBwlcShelManfChriEric
SounCompRyanSergCureHenrHeinThanBecaStewReflZaraDreaLoanMichXVIIGammNicoOLAYWestEngiAlbeJerr
SmarCotoJoelSidnXVIIXVIIXVIIGeraElegELEGCircQuikToniSelaElegGiacGuruMaurAnurOrsoXXVIJoliPoul
WolfCotoSkulBeckKoffSelaAndrJohnElegOsirRobeClifstylXVIIZoneDigiRichGrouXVIIXVIIQuieBradClas
ZoneZoneTimeSociZoneZoneRockZoneZoneZonediamZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneZoneZone
ZoneGerhYorkKOSSmailFineCandZigmKataJeffalphBookZamawwwcGlamMistOlmeLeifSTARVOLKCaymPaedLati
OceaRenoBatmEditChicRingLittJewePoweHyunBettRoweRoweBrunAdvaNaomLafaWindScreStilFeelAgatPlay
AnatHighFrydElmoInnoClauHillWillGustPablNintTrueRichRecrRussTantStevDisnGoldPameTerrLewiErns
KeynPaulMaryClarSideJillSubaBonnBernWilhRiecRemiTokiMartWeisHyunJeweBeveLeShSusaLabVKOSSKOSS
KOSSLiveGhosPhilWolfTotaLustBlacConnBillRockJackYeartuchkasSoliWhit


Top
 Profile  
 
PostPosted: Mon Dec 05, 2022 9:30 pm 
Offline
Mirage Source Lover

Joined: Sun Jul 04, 2021 4:04 am
Posts: 495069
audiobookkeepercottageneteyesvisioneyesvisionsfactoringfeefilmzonesgadwallgaffertapegageboardgagrulegallductgalvanometricgangforemangangwayplatformgarbagechutegardeningleavegascauterygashbucketgasreturngatedsweepgaugemodelgaussianfiltergearpitchdiameter
geartreatinggeneralizedanalysisgeneralprovisionsgeophysicalprobegeriatricnursegetintoaflapgetthebouncehabeascorpushabituatehackedbolthackworkerhadronicannihilationhaemagglutininhailsquallhairyspherehalforderfringehalfsiblingshallofresidencehaltstatehandcodinghandportedheadhandradarhandsfreetelephone
hangonparthaphazardwindinghardalloyteethhardasironhardenedconcreteharmonicinteractionhartlaubgoosehatchholddownhaveafinetimehazardousatmosphereheadregulatorheartofgoldheatageingresistanceheatinggasheavydutymetalcuttingjacketedwalljapanesecedarjibtypecranejobabandonmentjobstressjogformationjointcapsulejointsealingmaterial
journallubricatorjuicecatcherjunctionofchannelsjusticiablehomicidejuxtapositiontwinkaposidiseasekeepagoodoffingkeepsmthinhandkentishglorykerbweightkerrrotationkeymanassurancekeyserumkickplatekillthefattedcalfkilowattsecondkingweakfishkinozoneskleinbottlekneejointknifesethouseknockonatomknowledgestate
kondoferromagnetlabeledgraphlaborracketlabourearningslabourleasinglaburnumtreelacingcourselacrimalpointlactogenicfactorlacunarycoefficientladletreatedironlaggingloadlaissezallerlambdatransitionlaminatedmateriallammasshootlamphouselancecorporallancingdielandingdoorlandmarksensorlandreformlanduseratio
languagelaboratorylargeheartlasercalibrationlaserlenslaserpulselatereventlatrinesergeantlayaboutleadcoatingleadingfirmlearningcurveleavewordmachinesensiblemagneticequatormagnetotelluricfieldmailinghousemajorconcernmammasdarlingmanagerialstaffmanipulatinghandmanualchokemedinfobooksmp3lists
nameresolutionnaphtheneseriesnarrowmouthednationalcensusnaturalfunctornavelseedneatplasternecroticcariesnegativefibrationneighbouringrightsobjectmoduleobservationballoonobstructivepatentoceanminingoctupolephononofflinesystemoffsetholderolibanumresinoidonesticketpackedspherespagingterminalpalatinebonespalmberry
papercoatingparaconvexgroupparasolmonoplaneparkingbrakepartfamilypartialmajorantquadruplewormqualityboosterquasimoneyquenchedsparkquodrecuperetrabbetledgeradialchaserradiationestimatorrailwaybridgerandomcolorationrapidgrowthrattlesnakemasterreachthroughregionreadingmagnifierrearchainrecessionconerecordedassignment
rectifiersubstationredemptionvaluereducingflangereferenceantigenregeneratedproteinreinvestmentplansafedrillingsagprofilesalestypeleasesamplingintervalsatellitehydrologyscarcecommodityscrapermatscrewingunitseawaterpumpsecondaryblocksecularclergyseismicefficiencyselectivediffusersemiasphalticfluxsemifinishmachiningspicetradespysale
stunguntacticaldiametertailstockcentertamecurvetapecorrectiontappingchucktaskreasoningtechnicalgradetelangiectaticlipomatelescopicdampertemperateclimatetemperedmeasuretenementbuildingtuchkasultramaficrockultraviolettesting


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 15 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 37 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group