;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ________ ___ ___ ___ ;; ;; /| ^-,/\ \ /\ \ ___/\ \ ;; ;; //\ _____ \ \ \ / \ \ /\ \ \ \ ;; ;; / \ \ /\__\ \ \ ___ _____\__ \ \ / \__\ \ \ ;; ;; \ \ \_/ /__/_ \ \| ^-,/\ \ \ \ \ / _/_ \ \____ ;; ;; \ \ \\/\ \ \ _ \ \___ \ \ \ \/_/\ \ \ ^-, ;; ;; \ \ \ \__ \ \ | /\ \/ / / \ \ / \ \ \ ___ \ ;; ;; \ \ \_/__\ \ \ \/ \ \__/ /\__ \ \____\__ \ \ \ \ /\ \ ;; ;; \ \ \ \ \ \ \/\ \ \ \ \ \ \ '__' \ ;; ;; \ /-________| \__\ \__\ \_______\ \_________\ \__\ \_______| ;; ;; \ / / / / /\ / / / / / / / / / / ;; ;; ^-/________/ \/__/ \/__/\/_______/\/_________/\/__/\/_______/ ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; ;; GIGAHERTZ GAMES COMMAND LIBRARY ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; ;; Version 1.00 ;; ;; ;; ;; Commands: 83 ;; ;; ;; ;; Active code lines (appr): 820 ;; ;; ;; ;; Last updated: 12-09-2009 ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;[Block] GLOBALS Global Ghz_Lib_Var_Interrupt = True Global Ghz_Lib_Var_CycleRed,Ghz_Lib_Var_CycleGreen,Ghz_Lib_Var_CycleBlue Global Ghz_Lib_Var_DebugWindowBG Global Ghz_Lib_Var_DebugWindowCreated = False Global Ghz_Lib_Var_LastFrame = MilliSecs(),Ghz_Lib_Var_FPS,Ghz_Lib_Var_FPSFrames Global Ghz_Lib_Var_LastTweenFrame = MilliSecs(),Ghz_Lib_Var_LastFrameTime,Ghz_Lib_Var_Tween# Global Ghz_Lib_Var_PageNum Global Ghz_Lib_Var_ScolNum Global Ghz_Lib_Var_i,Ghz_Lib_Var_i2 Global Ghz_Lib_Var_Rows,Ghz_Lib_Var_Cols Global Ghz_Lib_Var_APPID,Ghz_Lib_Var_Server,Ghz_Lib_Var_ServerCreated = False,Ghz_Lib_Var_StreamSender Global Ghz_Lib_Var_VectorNum ;[End block] ;[Block] ARRAYS ;If SetUpArrays = True Dim Ghz_Lib_Arr_KeyRepeatTimer(255) Dim Ghz_Lib_Arr_Pallette(255,2) ;EndIf ;[End block] ;[Block] TYPES Type DebugPage Field Title$,ID Field Ghz_Lib_Var_TextX,Ghz_Lib_Var_TextY Field DebugVar$[20],DebugVarName$[20] Field Selected End Type Type Pixel Field X,Y End Type Type Scol Field ID Field R,G,B End Type Type TextLine Field Content$ End Type Type VectorObject Field ID,ObjectType Field X#,Y#,Width#,Height# Field Fill,ObjectColor$ End Type Type Vector Field ID Field GrabX#,GrabY# Field VectorObject.VectorObject End Type ;[End block] ;FUNCTIONS ;A Function AddVectorObject(Ghz_Lib_Var_VectorID,Ghz_Lib_Var_ObjectID,Ghz_Lib_Var_ObjectType,Ghz_Lib_Var_ObjectX#,Ghz_Lib_Var_ObjectY#,Ghz_Lib_Var_ObjectWidth# = 1,Ghz_Lib_Var_ObjectHeight# = 1,Ghz_Lib_Var_ObjectFill = False,Ghz_Lib_Var_ObjectColor$ = "white") For Vector.Vector = Each Vector If Vector\ID = Ghz_Lib_Var_VectorID Vector\VectorObject.VectorObject = New VectorObject Vector\VectorObject\ID = Ghz_Lib_Var_ObjectID Vector\VectorObject\ObjectType = Ghz_Lib_Var_ObjectType Vector\VectorObject\X = Ghz_Lib_Var_ObjectX Vector\VectorObject\Y = Ghz_Lib_Var_ObjectY Vector\VectorObject\Width = Ghz_Lib_Var_ObjectWidth Vector\VectorObject\Height = Ghz_Lib_Var_ObjectHeight Vector\VectorObject\Fill = Ghz_Lib_Var_ObjectFill Vector\VectorObject\ObjectColor = Ghz_Lib_Var_ObjectColor Return VectorObjectNum EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Graphic does not exist" Else Return -1 EndIf End Function Function APPID(Ghz_Lib_Var_ID) Ghz_Lib_Var_APPID = Ghz_Lib_Var_ID Ghz_Lib_Var_Server = CreateTCPServer(Ghz_Lib_Var_APPID) Ghz_Lib_Var_ServerCreated = True If Ghz_Lib_Var_Server = 0 If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Could not create a server for APP Messages." + Chr(10) + "Please try entering a different ID.") Else Return -1 EndIf EndIf End Function Function APPMessageSender() Return Ghz_Lib_Var_StreamSender End Function ;B Function BitStr$(Ghz_Lib_Var_FileName$,Ghz_Lib_Var_ByteLines = 0) If Not Ghz_Lib_Var_ByteLines = 0 Or Ghz_Lib_Var_ByteLines = 1 If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Invalid value for line separators:" + Chr(10) + Ghz_Lib_Var_ByteLines + Chr(10) + "Please enter 1, 0 or leave blank") Else Return -2 EndIf EndIf If FileType(Ghz_Lib_Var_FileName) <> 1 If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "File not found:" + Chr(10) + Ghz_Lib_Var_FileName) Else Return -1 EndIf EndIf Local Ghz_Lib_Var_BitLineStr$ = "" Local Ghz_Lib_Var_CurrentByteStr$ = "" Local Ghz_Lib_Var_File = ReadFile(Ghz_Lib_Var_FileName) While Not Eof(Ghz_Lib_Var_File) Ghz_Lib_Var_CurrentByteStr = Bin(ReadByte(Ghz_Lib_Var_File)) Ghz_Lib_Var_BitLineStr = Ghz_Lib_Var_BitLineStr + Right(Ghz_Lib_Var_CurrentByteStr,8) If Ghz_Lib_Var_ByteLines = 1 Ghz_Lib_Var_BitLineStr = Ghz_Lib_Var_BitLineStr + "|" EndIf Wend CloseFile Ghz_Lib_Var_File Return Ghz_Lib_Var_BitLineStr End Function ;C Function CenterMouse() MoveMouse GraphicsWidth() / 2,GraphicsHeight() / 2 End Function Function ChangeVectorObject(Ghz_Lib_Var_VectorID,Ghz_Lib_Var_ObjectID,Ghz_Lib_Var_ObjectType,Ghz_Lib_Var_ObjectX#,Ghz_Lib_Var_ObjectY#,Ghz_Lib_Var_ObjectWidth# = 1,Ghz_Lib_Var_ObjectHeight# = 1,Ghz_Lib_Var_ObjectFill = False,Ghz_Lib_Var_ObjectColor$ = "white") Local Ghz_Lib_Var_ObjectExists = False For Vector.Vector = Each Vector If Vector\ID = Ghz_Lib_Var_VectorID For Vector\VectorObject.VectorObject = Each VectorObject If Vector\VectorObject\ID = Ghz_Lib_Var_ObjectID Ghz_Lib_Var_ObjectExists = True Vector\VectorObject\ObjectType = Ghz_Lib_Var_ObjectType Vector\VectorObject\X = Ghz_Lib_Var_ObjectX Vector\VectorObject\Y = Ghz_Lib_Var_ObjectY Vector\VectorObject\Width = Ghz_Lib_Var_ObjectWidth Vector\VectorObject\Height = Ghz_Lib_Var_ObjectHeight Vector\VectorObject\Fill = Ghz_Lib_Var_ObjectFill Vector\VectorObject\ObjectColor = Ghz_Lib_Var_ObjectColor EndIf Next If Ghz_Lib_Var_ObjectExists = False If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Object does not exist" Else Return -2 EndIf EndIf Return EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Graphic does not exist" Else Return -1 EndIf End Function Function CirclesOverLap(Ghz_Lib_Var_Circle1X,Ghz_Lib_Var_Circle1Y,Ghz_Lib_Var_Circle1Size,Ghz_Lib_Var_Circle2X,Ghz_Lib_Var_Circle2Y,Ghz_Lib_Var_Circle2Size) If Distance(Ghz_Lib_Var_Circle1X,Ghz_Lib_Var_Circle1Y,Ghz_Lib_Var_Circle2X,Ghz_Lib_Var_Circle2Y) < Ghz_Lib_Var_Circle1Size + Ghz_Lib_Var_Circle2Size Return 1 Else Return 0 EndIf End Function Function ColorRand() Color Rand(0,255),Rand(0,255),Rand(0,255) End Function Function CountVectorObjects(Ghz_Lib_Var_VectorID) Local Ghz_Lib_Var_ObjectNum For Vector.Vector = Each Vector If Vector\ID = Ghz_Lib_Var_VectorID For Vector\VectorObject.VectorObject = Each VectorObject Ghz_Lib_Var_ObjectNum = Ghz_Lib_Var_ObjectNum + 1 Next Return Ghz_Lib_Var_ObjectNum EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Graphic does not exist" Else Return -1 EndIf End Function Function CreateDebugPage(Ghz_Lib_Var_PageTitle$ = "Untitled") Page.DebugPage = New DebugPage Page\Title = Ghz_Lib_Var_PageTitle Page\Selected = False Ghz_Lib_Var_PageNum = Ghz_Lib_Var_PageNum + 1 Page\ID = Ghz_Lib_Var_PageNum Return Ghz_Lib_Var_PageNum End Function Function CreateFile(Ghz_Lib_Var_FileName$) Local Ghz_Lib_Var_BlankFile = WriteFile(Ghz_Lib_Var_FileName) CloseFile Ghz_Lib_Var_BlankFile End Function Function CreatePack(Ghz_Lib_Var_PackName$,Ghz_Lib_Var_FileName$ = "\\?") Local Ghz_Lib_Var_package = WriteFile(Ghz_Lib_Var_PackName + ".ghzpak") If Not Ghz_Lib_Var_FileName = "\\?" If Not FileType(Ghz_Lib_Var_FileName) = 1 If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "File not found:" + Chr(10) + Ghz_Lib_Var_FileName) Else Return -1 EndIf EndIf CreateFile(Ghz_Lib_Var_PackName + ".ghzpak") Local Ghz_Lib_Var_File = ReadFile(Ghz_Lib_Var_FileName) WriteLine(Ghz_Lib_Var_package,"//" + Chr(223) + "Ghz package file: " + Ghz_Lib_Var_FileName) WriteInt(Ghz_Lib_Var_package,FileSize(Ghz_Lib_Var_FileName)) While Not Eof(Ghz_Lib_Var_File) WriteByte(Ghz_Lib_Var_package,ReadByte(Ghz_Lib_Var_File)) Wend CloseFile Ghz_Lib_Var_File EndIf CloseFile Ghz_Lib_Var_package DeleteFile Ghz_Lib_Var_FileName End Function Function CreateVectorGraphic() Ghz_Lib_Var_VectorNum = Ghz_Lib_Var_VectorNum + 1 Vector.Vector = New Vector Vector\ID = Ghz_Lib_Var_VectorNum Vector\GrabX = 0 Vector\GrabY = 0 Return Ghz_Lib_Var_VectorNum End Function Function CurrentDebugPage() For Page.DebugPage = Each DebugPage If Page\Selected = True Return Page\ID EndIf Next End Function Function CurrentGraphics$() Local Ghz_Lib_Var_GraphicsStr$ = GraphicsWidth() + "x" + GraphicsHeight() + "x" + GraphicsDepth() Return Ghz_Lib_Var_GraphicsStr End Function Function CycleColor() If Ghz_Lib_Var_CycleRed < 255 And Ghz_Lib_Var_CycleGreen < 2 And Ghz_Lib_Var_CycleBlue = 0 Ghz_Lib_Var_CycleRed = Ghz_Lib_Var_CycleRed + 1 If Ghz_Lib_Var_CycleRed = 254 Ghz_Lib_Var_CycleGreen = 1 EndIf ElseIf Ghz_Lib_Var_CycleRed > 253 And Ghz_Lib_Var_CycleGreen < 255 And Ghz_Lib_Var_CycleBlue = 0 Ghz_Lib_Var_CycleGreen = Ghz_Lib_Var_CycleGreen + 1 If Ghz_Lib_Var_CycleGreen = 254 Ghz_Lib_Var_CycleRed = 254 EndIf ElseIf Ghz_Lib_Var_CycleRed < 255 And Ghz_Lib_Var_CycleGreen = 255 And Ghz_Lib_Var_CycleBlue < 2 Ghz_Lib_Var_CycleRed = Ghz_Lib_Var_CycleRed - 1 If Ghz_Lib_Var_CycleRed = 1 Ghz_Lib_Var_CycleBlue = 1 EndIf EndIf If Ghz_Lib_Var_CycleRed = 0 And Ghz_Lib_Var_CycleGreen > 253 And Ghz_Lib_Var_CycleBlue < 255 Ghz_Lib_Var_CycleBlue = Ghz_Lib_Var_CycleBlue + 1 If Ghz_Lib_Var_CycleBlue = 254 Ghz_Lib_Var_CycleGreen = 254 EndIf ElseIf Ghz_Lib_Var_CycleRed < 2 And Ghz_Lib_Var_CycleGreen < 255 And Ghz_Lib_Var_CycleBlue = 255 Ghz_Lib_Var_CycleGreen = Ghz_Lib_Var_CycleGreen - 1 If Ghz_Lib_Var_CycleGreen = 1 Ghz_Lib_Var_CycleRed = 1 EndIf EndIf If Ghz_Lib_Var_CycleRed < 255 And Ghz_Lib_Var_CycleGreen = 0 And Ghz_Lib_Var_CycleBlue > 253 Ghz_Lib_Var_CycleRed = Ghz_Lib_Var_CycleRed + 1 If Ghz_Lib_Var_CycleRed = 254 Ghz_Lib_Var_CycleBlue = 254 EndIf ElseIf Ghz_Lib_Var_CycleRed = 255 And Ghz_Lib_Var_CycleGreen < 2 And Ghz_Lib_Var_CycleBlue < 255 Ghz_Lib_Var_CycleBlue = Ghz_Lib_Var_CycleBlue - 1 If Ghz_Lib_Var_CycleBlue = 1 Ghz_Lib_Var_CycleGreen = 1 EndIf EndIf If Ghz_Lib_Var_CycleRed < 0 Ghz_Lib_Var_CycleRed = 0 EndIf If Ghz_Lib_Var_CycleGreen < 0 Ghz_Lib_Var_CycleGreen = 0 EndIf If Ghz_Lib_Var_CycleBlue < 0 Ghz_Lib_Var_CycleBlue = 0 EndIf Color Ghz_Lib_Var_CycleRed,Ghz_Lib_Var_CycleGreen,Ghz_Lib_Var_CycleBlue End Function ;D Function DeBin(Ghz_Lib_Var_BinNum$) Local Ghz_Lib_Var_TempStr$ Local Ghz_Lib_Var_Number For Ghz_Lib_Var_i = Len(Ghz_Lib_Var_BinNum) To 1 Step -1 Ghz_Lib_Var_TempStr = Ghz_Lib_Var_TempStr + Mid(Ghz_Lib_Var_BinNum,Ghz_Lib_Var_i,1) Next For Ghz_Lib_Var_i = 1 To Len(Ghz_Lib_Var_TempStr) If Mid(Ghz_Lib_Var_TempStr,Ghz_Lib_Var_i,1) = "1" If Ghz_Lib_Var_i = 0 Ghz_Lib_Var_Number = 1 Else Ghz_Lib_Var_Number = Ghz_Lib_Var_Number + (2^(Ghz_Lib_Var_i - 1)) EndIf EndIf Next Return Ghz_Lib_Var_Number End Function Function DebugWindow(Ghz_Lib_Var_WindowX,Ghz_Lib_Var_WindowY,Ghz_Lib_Var_WindowW,Ghz_Lib_Var_WindowH) Local Ghz_Lib_Var_CurrentRed = ColorRed() Local Ghz_Lib_Var_CurrentGreen = ColorGreen() Local Ghz_Lib_Var_CurrentBlue = ColorBlue() Local Ghz_Lib_Var_CurrentBuffer = GraphicsBuffer() If Ghz_Lib_Var_PageNum < 1 page.debugpage = New DebugPage page\selected = True page\title = "Untitled" page\id = 1 Ghz_Lib_Var_PageNum = 1 EndIf For page.debugpage = Each DebugPage If page\selected = True If Ghz_Lib_Var_WindowW < StringWidth(page\title) Ghz_Lib_Var_WindowW = StringWidth(page\title) Ghz_Lib_Var_DebugWindowCreated = False EndIf Exit EndIf Next If Ghz_Lib_Var_DebugWindowCreated = False Ghz_Lib_Var_DebugWindowBG = 0 Ghz_Lib_Var_DebugWindowBG = CreateImage(Ghz_Lib_Var_WindowW,Ghz_Lib_Var_WindowH) Ghz_Lib_Var_DebugWindowCreated = True EndIf If Not ImageWidth(Ghz_Lib_Var_DebugWindowBG) = Ghz_Lib_Var_WindowW Or ImageHeight(Ghz_Lib_Var_DebugWindowBG) = Ghz_Lib_Var_WindowH Ghz_Lib_Var_DebugWindowCreated = False EndIf SetBuffer ImageBuffer(Ghz_Lib_Var_DebugWindowBG) Color 255,255,255 Rect 0,0,Ghz_Lib_Var_WindowW,Ghz_Lib_Var_WindowH Color 0,0,0 For page.debugpage = Each DebugPage If page\selected = True For Ghz_Lib_Var_i = 1 To 20 If page\debugvarname[Ghz_Lib_Var_i] <> "" And page\debugvar[Ghz_Lib_Var_i] <> "" Then Text page\Ghz_Lib_Var_textx + 3,page\Ghz_Lib_Var_texty + ((Ghz_Lib_Var_i - 1) * FontHeight()) + FontHeight() + 2,page\debugvarname[Ghz_Lib_Var_i] + " = " + page\debugvar[Ghz_Lib_Var_i] Next EndIf Next SetBuffer Ghz_Lib_Var_CurrentBuffer DrawBlock Ghz_Lib_Var_DebugWindowBG,Ghz_Lib_Var_WindowX,Ghz_Lib_Var_WindowY Color 0,0,0 Line Ghz_Lib_Var_WindowX + Ghz_Lib_Var_WindowW - 1,Ghz_Lib_Var_WindowY,Ghz_Lib_Var_WindowX + Ghz_Lib_Var_WindowW - 1,Ghz_Lib_Var_WindowY + Ghz_Lib_Var_WindowH - 1 Line Ghz_Lib_Var_WindowX,Ghz_Lib_Var_WindowY + Ghz_Lib_Var_WindowH - 1,Ghz_Lib_Var_WindowX + Ghz_Lib_Var_WindowW - 1,Ghz_Lib_Var_WindowY + Ghz_Lib_Var_WindowH - 1 Line Ghz_Lib_Var_WindowX + 2,Ghz_Lib_Var_WindowY + FontHeight() + 2,Ghz_Lib_Var_WindowX + Ghz_Lib_Var_WindowW - 2,Ghz_Lib_Var_WindowY + FontHeight() + 2 Line Ghz_Lib_Var_WindowX + 2,Ghz_Lib_Var_WindowY + FontHeight() + 2,Ghz_Lib_Var_WindowX + 2,Ghz_Lib_Var_WindowY + Ghz_Lib_Var_WindowH - 2 Color Ghz_Lib_Var_CurrentRed,Ghz_Lib_Var_CurrentGreen,Ghz_Lib_Var_CurrentBlue Rect Ghz_Lib_Var_WindowX + 1,Ghz_Lib_Var_WindowY + 1,Ghz_Lib_Var_WindowW - 2,FontHeight() Rect Ghz_Lib_Var_WindowX + 1,Ghz_Lib_Var_WindowY + FontHeight() + 1,Ghz_Lib_Var_WindowW - 2,Ghz_Lib_Var_WindowH - (FontHeight() + 2),0 Color 0,0,0 For page.debugpage = Each DebugPage If page\selected = True Text Ghz_Lib_Var_WindowX,Ghz_Lib_Var_WindowY,page\title Exit EndIf Next Color Ghz_Lib_Var_CurrentRed,Ghz_Lib_Var_CurrentGreen,Ghz_Lib_Var_CurrentBlue End Function Function DecryptFile(Ghz_Lib_Var_FileName$) If Not FileType(Ghz_Lib_Var_FileName) = 1 If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "File not found:" + Chr(10) + Ghz_Lib_Var_FileName) Else Return -1 EndIf EndIf CopyFile Ghz_Lib_Var_FileName,"Ghz_Dec_Temp.ghz" Local Ghz_Lib_Var_SourceFile = ReadFile("Ghz_Dec_Temp.ghz") Local Ghz_Lib_Var_DestFile = WriteFile(Ghz_Lib_Var_FileName) Local Ghz_Lib_Var_DecryptionType = ReadByte(Ghz_Lib_Var_SourceFile) While Not Eof(Ghz_Lib_Var_SourceFile) WriteByte(Ghz_Lib_Var_DestFile,ReadByte(Ghz_Lib_Var_SourceFile) - Ghz_Lib_Var_DecryptionType) Wend CloseFile Ghz_Lib_Var_SourceFile DeleteFile "Ghz_Dec_Temp.ghz" CloseFile Ghz_Lib_Var_DestFile End Function Function DeHex(Ghz_Lib_Var_HexNumber$) Local Ghz_Lib_Var_Number For Ghz_Lib_Var_i = Len(Ghz_Lib_Var_HexNumber) To 1 Step -1 Select Lower(Mid(Ghz_Lib_Var_HexNumber,Ghz_Lib_Var_i,1)) Case 0,1,2,3,4,5,6,7,8,9 Ghz_Lib_Var_Number = Ghz_Lib_Var_Number + (Int(Mid(Ghz_Lib_Var_HexNumber,Ghz_Lib_Var_i,1)) * (16^(Len(Ghz_Lib_Var_HexNumber) - Ghz_Lib_Var_i))) Case "a" Ghz_Lib_Var_Number = Ghz_Lib_Var_Number + (10 * (16^(Len(Ghz_Lib_Var_HexNumber) - Ghz_Lib_Var_i))) Case "b" Ghz_Lib_Var_Number = Ghz_Lib_Var_Number + (11 * (16^(Len(Ghz_Lib_Var_HexNumber) - Ghz_Lib_Var_i))) Case "c" Ghz_Lib_Var_Number = Ghz_Lib_Var_Number + (12 * (16^(Len(Ghz_Lib_Var_HexNumber) - Ghz_Lib_Var_i))) Case "d" Ghz_Lib_Var_Number = Ghz_Lib_Var_Number + (13 * (16^(Len(Ghz_Lib_Var_HexNumber) - Ghz_Lib_Var_i))) Case "e" Ghz_Lib_Var_Number = Ghz_Lib_Var_Number + (14 * (16^(Len(Ghz_Lib_Var_HexNumber) - Ghz_Lib_Var_i))) Case "f" Ghz_Lib_Var_Number = Ghz_Lib_Var_Number + (15 * (16^(Len(Ghz_Lib_Var_HexNumber) - Ghz_Lib_Var_i))) Default If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Invalid Hexadecimal number: " + Upper(Ghz_Lib_Var_HexNumber) + Chr(10) + "Number can only contain digits 0-9 and A-F.") Else Return -1 EndIf End Select Next Return Ghz_Lib_Var_Number End Function Function Distance#(Ghz_Lib_Var_Point1X#,Ghz_Lib_Var_Point1Y#,Ghz_Lib_Var_Point2X#,Ghz_Lib_Var_Point2Y#) Return Sqr(((Ghz_Lib_Var_Point2X - Ghz_Lib_Var_Point1X) * (Ghz_Lib_Var_Point2X - Ghz_Lib_Var_Point1X)) + ((Ghz_Lib_Var_Point2Y - Ghz_Lib_Var_Point1Y) * (Ghz_Lib_Var_Point2Y - Ghz_Lib_Var_Point1Y))) End Function Function DrawCursor(Ghz_Lib_Var_Cursor,Ghz_Lib_Var_CursorFrame = 0) DrawImage Ghz_Lib_Var_Cursor,MouseX(),MouseY(),Ghz_Lib_Var_CursorFrame End Function Function DrawVectorGraphic(Ghz_Lib_Var_VectorID,Ghz_Lib_Var_VectorX#,Ghz_Lib_Var_VectorY#,Ghz_Lib_Var_ScaleX# = 1,Ghz_Lib_Var_ScaleY# = 1) Local Ghz_Lib_Var_CurrentRed = ColorRed(),Ghz_Lib_Var_CurrentGreen = ColorGreen(),Ghz_Lib_Var_CurrentBlue = ColorBlue() ;Blitz won't draw rectangles and ovals with negative width/height values, so just cut off negative scaling If Ghz_Lib_Var_ScaleX < 0 Then Ghz_Lib_Var_ScaleX = 0 If Ghz_Lib_Var_ScaleY < 0 Then Ghz_Lib_Var_ScaleY = 0 For Vector.Vector = Each Vector If Vector\ID = Ghz_Lib_Var_VectorID For Vector\VectorObject.VectorObject = Each VectorObject Select Lower(Vector\VectorObject\ObjectColor) Case "random","rand","rnd" Color Rand(255),Rand(255),Rand(255) Case "white" Color 255,255,255 Case "red" Color 255,0,0 Case "orange" Color 255,128,0 Case "yellow" Color 255,255,0 Case "green" Color 0,255,0 Case "cyan" Color 0,128,255 Case "blue" Color 0,0,255 Case "purple" Color 128,0,255 Case "pink" Color 255,0,255 Case "grey","gray" Color 128,128,128 Case "black" Color 0,0,0 Default;hexadecimal color Color DeHex(Mid(Vector\VectorObject\ObjectColor,1,2)),DeHex(Mid(Vector\VectorObject\ObjectColor,3,2)),DeHex(Mid(Vector\VectorObject\ObjectColor,5,2)) End Select Select Vector\VectorObject\ObjectType Case 1;pixel Rect Ghz_Lib_Var_VectorX + Vector\VectorObject\X * Ghz_Lib_Var_ScaleX,Ghz_Lib_Var_VectorY + Vector\VectorObject\Y * Ghz_Lib_Var_ScaleY,Ghz_Lib_Var_ScaleX,Ghz_Lib_Var_ScaleY,True Case 2;line Line Ghz_Lib_Var_VectorX + Vector\VectorObject\X * Ghz_Lib_Var_ScaleX,Ghz_Lib_Var_VectorY + Vector\VectorObject\Y * Ghz_Lib_Var_ScaleY,Ghz_Lib_Var_VectorX + Vector\VectorObject\X * Ghz_Lib_Var_ScaleX + Vector\VectorObject\Width * Ghz_Lib_Var_ScaleX,Ghz_Lib_Var_VectorY + Vector\VectorObject\Y * Ghz_Lib_Var_ScaleY + Vector\VectorObject\Height * Ghz_Lib_Var_ScaleY Case 3;rectangle Rect Ghz_Lib_Var_VectorX + Vector\VectorObject\X * Ghz_Lib_Var_ScaleX,Ghz_Lib_Var_VectorY + Vector\VectorObject\Y * Ghz_Lib_Var_ScaleY,Vector\VectorObject\Width * Ghz_Lib_Var_ScaleX,Vector\VectorObject\Height * Ghz_Lib_Var_ScaleY,Vector\VectorObject\Fill Case 4;oval Oval Ghz_Lib_Var_VectorX + Vector\VectorObject\X * Ghz_Lib_Var_ScaleX,Ghz_Lib_Var_VectorY + Vector\VectorObject\Y * Ghz_Lib_Var_ScaleY,Vector\VectorObject\Width * Ghz_Lib_Var_ScaleX,Vector\VectorObject\Height * Ghz_Lib_Var_ScaleY,Vector\VectorObject\Fill End Select Next Color Ghz_Lib_Var_CurrentRed,Ghz_Lib_Var_CurrentGreen,Ghz_Lib_Var_CurrentBlue Return EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Graphic does not exist" Else Return -1 EndIf End Function ;E Function EncryptFile(Ghz_Lib_Var_FileName$,Ghz_Lib_Var_EncryptionType) If Ghz_Lib_Var_EncryptionType < 1 Or Ghz_Lib_Var_EncryptionType > 255 If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Encryption type out of range:" + Chr(10) + Ghz_Lib_Var_EncryptionType + Chr(10) + "Please enter a Ghz_Lib_Var_Number from 1 to 255") Else Return -2 EndIf EndIf If Not FileType(Ghz_Lib_Var_FileName) = 1 If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "File not found:" + Chr(10) + Ghz_Lib_Var_FileName) Else Return -1 EndIf EndIf CopyFile Ghz_Lib_Var_FileName,"Ghz_Enc_Temp.ghz";create a copy of the original to be read from Local Ghz_Lib_Var_SourceFile = ReadFile("Ghz_Enc_Temp.ghz") Local Ghz_Lib_Var_DestFile = WriteFile(Ghz_Lib_Var_FileName) WriteByte(Ghz_Lib_Var_DestFile,Ghz_Lib_Var_EncryptionType) While Not Eof(Ghz_Lib_Var_SourceFile) WriteByte(Ghz_Lib_Var_DestFile,ReadByte(Ghz_Lib_Var_SourceFile) + Ghz_Lib_Var_EncryptionType) Wend CloseFile Ghz_Lib_Var_SourceFile DeleteFile "Ghz_Enc_Temp.ghz" CloseFile Ghz_Lib_Var_DestFile End Function ;F Function FCCColors(Ghz_Lib_Var_FileName$) If FileType(Ghz_Lib_Var_FileName + ".fcc") <> 1 If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR:" + Chr(10) + "File not found:" + Chr(10) + Ghz_Lib_Var_FileName + ".fcc" Else Return -1 EndIf EndIf Local Ghz_Lib_Var_File = ReadFile(Ghz_Lib_Var_FileName + ".fcc") ReadByte Ghz_Lib_Var_File:ReadByte Ghz_Lib_Var_File:ReadByte Ghz_Lib_Var_File Local Ghz_Lib_Var_Palletted = ReadByte(Ghz_Lib_Var_File) If Ghz_Lib_Var_Palletted = 128 Local Ghz_Lib_Var_ColorNum = ReadByte(Ghz_Lib_Var_File) + 1 CloseFile Ghz_Lib_Var_File Return Ghz_Lib_Var_ColorNum Else CloseFile Ghz_Lib_Var_File Return 256 * 256 * 256 EndIf End Function Function FCCFrames(Ghz_Lib_Var_FileName$) If FileType(Ghz_Lib_Var_FileName + ".fcc") <> 1 If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR:" + Chr(10) + "File not found:" + Chr(10) + Ghz_Lib_Var_FileName + ".fcc" Else Return -1 EndIf EndIf Local Ghz_Lib_Var_File = ReadFile(Ghz_Lib_Var_FileName + ".fcc") ReadByte Ghz_Lib_Var_File:ReadByte Ghz_Lib_Var_File Local Ghz_Lib_Var_Frames = ReadByte(Ghz_Lib_Var_File) CloseFile Ghz_Lib_Var_File Return Ghz_Lib_Var_Frames End Function Function FCCFrameHeight(Ghz_Lib_Var_FileName$) If FileType(Ghz_Lib_Var_FileName + ".fcc") <> 1 If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR:" + Chr(10) + "File not found:" + Chr(10) + Ghz_Lib_Var_FileName + ".fcc" Else Return -1 EndIf EndIf Local Ghz_Lib_Var_File = ReadFile(Ghz_Lib_Var_FileName + ".fcc") ReadByte Ghz_Lib_Var_File Local Ghz_Lib_Var_FrameHeight = ReadByte(Ghz_Lib_Var_File) CloseFile Ghz_Lib_Var_File Return Ghz_Lib_Var_FrameHeight + 1 End Function Function FCCFrameWidth(Ghz_Lib_Var_FileName$) If FileType(Ghz_Lib_Var_FileName + ".fcc") <> 1 If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR:" + Chr(10) + "File not found:" + Chr(10) + Ghz_Lib_Var_FileName + ".fcc" Else Return -1 EndIf EndIf Local Ghz_Lib_Var_File = ReadFile(Ghz_Lib_Var_FileName + ".fcc") Local Ghz_Lib_Var_FrameWidth = ReadByte(Ghz_Lib_Var_File) CloseFile Ghz_Lib_Var_File Return Ghz_Lib_Var_FrameWidth + 1 End Function Function FCCPalletted(Ghz_Lib_Var_FileName$) If FileType(Ghz_Lib_Var_FileName + ".fcc") <> 1 If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR:" + Chr(10) + "File not found:" + Chr(10) + Ghz_Lib_Var_FileName + ".fcc" Else Return -1 EndIf EndIf Local Ghz_Lib_Var_File = ReadFile(Ghz_Lib_Var_FileName + ".fcc") ReadByte Ghz_Lib_Var_File:ReadByte Ghz_Lib_Var_File:ReadByte Ghz_Lib_Var_File Local Ghz_Lib_Var_Palletted = ReadByte(Ghz_Lib_Var_File) CloseFile Ghz_Lib_Var_File If Ghz_Lib_Var_Palletted = 128 Return True Else Return False EndIf End Function Function FlipPixel(Ghz_Lib_Var_PixelX,Ghz_Lib_Var_PixelY) Local Ghz_Lib_Var_CurrentRed = ColorRed() Local Ghz_Lib_Var_CurrentGreen = ColorGreen() Local Ghz_Lib_Var_CurrentBlue = ColorBlue() Color 255 - PixelRed(Ghz_Lib_Var_PixelX,Ghz_Lib_Var_PixelY),255 - PixelGreen(Ghz_Lib_Var_PixelX,Ghz_Lib_Var_PixelY),255 - PixelBlue(Ghz_Lib_Var_PixelX,Ghz_Lib_Var_PixelY) Plot Ghz_Lib_Var_PixelX,Ghz_Lib_Var_PixelY Color Ghz_Lib_Var_CurrentRed,Ghz_Lib_Var_CurrentGreen,Ghz_Lib_Var_CurrentBlue End Function Function FlipPixelFast(Ghz_Lib_Var_PixelX,Ghz_Lib_Var_PixelY) WritePixelFast Ghz_Lib_Var_PixelX,Ghz_Lib_Var_PixelY,(255 - PixelBlue(Ghz_Lib_Var_PixelX,Ghz_Lib_Var_PixelY)) + ((255 - PixelGreen(Ghz_Lib_Var_PixelX,Ghz_Lib_Var_PixelY)) * 256) + ((255 - PixelRed(Ghz_Lib_Var_PixelX,Ghz_Lib_Var_PixelY)) * (256 * 256)) End Function Function FloodFill(Ghz_Lib_Var_FillImage,Ghz_Lib_Var_FX,Ghz_Lib_Var_FY,Ghz_Lib_Var_FR,Ghz_Lib_Var_FG,Ghz_Lib_Var_FB,Ghz_Lib_Var_WatchInAction = False) If Ghz_Lib_Var_FX < 0 Or Ghz_Lib_Var_FX > ImageWidth(Ghz_Lib_Var_FillImage) - 1 Or Ghz_Lib_Var_FY < 0 Or Ghz_Lib_Var_FY > ImageHeight(Ghz_Lib_Var_FillImage) - 1 If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Invalid coordinates: " + Ghz_Lib_Var_FX + "," + Ghz_Lib_Var_FY + Chr(10) + "Coords must be within image boundaries") Else Return -1 EndIf EndIf If GraphicsDepth() < 24 If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Unusable graphics depth: " + GraphicsDepth() + " bits" + Chr(10) + "FloodFill() can only be used in 24-bit graphics or higher.") Else Return -2 EndIf EndIf Local Ghz_Lib_Var_CurrentBuffer = GraphicsBuffer() Local Ghz_Lib_Var_CurrentRed = ColorRed() Local Ghz_Lib_Var_CurrentGreen = ColorGreen() Local Ghz_Lib_Var_CurrentBlue = ColorBlue() ;Precalculate the integer value of the RGB color to fill with Local Ghz_Lib_Var_FillColor = Ghz_Lib_Var_FB + (Ghz_Lib_Var_FG * 256) + (Ghz_Lib_Var_FR * (65536)) SetBuffer ImageBuffer(Ghz_Lib_Var_FillImage) If PixelRed(Ghz_Lib_Var_FX,Ghz_Lib_Var_FY) = Ghz_Lib_Var_FR And PixelGreen(Ghz_Lib_Var_FX,Ghz_Lib_Var_FY) = Ghz_Lib_Var_FG And PixelBlue(Ghz_Lib_Var_FX,Ghz_Lib_Var_FY) = Ghz_Lib_Var_FB SetBuffer Ghz_Lib_Var_CurrentBuffer Return EndIf LockBuffer Local Ghz_Lib_Var_TarR = PixelRed(Ghz_Lib_Var_FX,Ghz_Lib_Var_FY) Local Ghz_Lib_Var_TarG = PixelGreen(Ghz_Lib_Var_FX,Ghz_Lib_Var_FY) Local Ghz_Lib_Var_TarB = PixelBlue(Ghz_Lib_Var_FX,Ghz_Lib_Var_FY) Color Ghz_Lib_Var_FR,Ghz_Lib_Var_FG,Ghz_Lib_Var_FB WritePixelFast Ghz_Lib_Var_FX,Ghz_Lib_Var_FY,Ghz_Lib_Var_FillColor Pixel.Pixel = New Pixel Pixel\X = Ghz_Lib_Var_FX Pixel\Y = Ghz_Lib_Var_FY Repeat If KeyHit(1) Then End Local Ghz_Lib_Var_PixelsRemaining = False For Pixel.Pixel = Each Pixel Local Ghz_Lib_Var_PixelLeft = False Local Ghz_Lib_Var_PixelAbove = False Local Ghz_Lib_Var_PixelRight = False Local Ghz_Lib_Var_PixelBelow = False Local Ghz_Lib_Var_PixelX = Pixel\X Local Ghz_Lib_Var_PixelY = Pixel\Y If Pixel\X > 0;check left If PixelRed(Pixel\X - 1,Pixel\Y) = Ghz_Lib_Var_TarR And PixelGreen(Pixel\X - 1,Pixel\Y) = Ghz_Lib_Var_TarG And PixelBlue(Pixel\X - 1,Pixel\Y) = Ghz_Lib_Var_TarB Ghz_Lib_Var_PixelLeft = True Ghz_Lib_Var_PixelsRemaining = True EndIf EndIf If Pixel\Y > 0;check above If PixelRed(Pixel\X,Pixel\Y - 1) = Ghz_Lib_Var_TarR And PixelGreen(Pixel\X,Pixel\Y - 1) = Ghz_Lib_Var_TarG And PixelBlue(Pixel\X,Pixel\Y - 1) = Ghz_Lib_Var_TarB Ghz_Lib_Var_PixelAbove = True Ghz_Lib_Var_PixelsRemaining = True EndIf EndIf If Pixel\X < ImageWidth(Ghz_Lib_Var_FillImage) - 1;check right If PixelRed(Pixel\X + 1,Pixel\Y) = Ghz_Lib_Var_TarR And PixelGreen(Pixel\X + 1,Pixel\Y) = Ghz_Lib_Var_TarG And PixelBlue(Pixel\X + 1,Pixel\Y) = Ghz_Lib_Var_TarB Ghz_Lib_Var_PixelRight = True Ghz_Lib_Var_PixelsRemaining = True EndIf Else Ghz_Lib_Var_PixelRight = False EndIf If Pixel\Y < ImageHeight(Ghz_Lib_Var_FillImage) - 1;check below If PixelRed(Pixel\X,Pixel\Y + 1) = Ghz_Lib_Var_TarR And PixelGreen(Pixel\X,Pixel\Y + 1) = Ghz_Lib_Var_TarG And PixelBlue(Pixel\X,Pixel\Y + 1) = Ghz_Lib_Var_TarB Ghz_Lib_Var_PixelBelow = True Ghz_Lib_Var_PixelsRemaining = True EndIf Else Ghz_Lib_Var_PixelBelow = False EndIf Delete Pixel PixelNum = PixelNum - 1 If Ghz_Lib_Var_PixelLeft = True Pixel.Pixel = New Pixel Pixel\X = Ghz_Lib_Var_PixelX - 1 Pixel\Y = Ghz_Lib_Var_PixelY PixelNum = PixelNum + 1 Ghz_Lib_Var_PixelLeft = False WritePixelFast Pixel\X,Pixel\Y,Ghz_Lib_Var_FillColor EndIf If Ghz_Lib_Var_PixelAbove = True Pixel.Pixel = New Pixel Pixel\X = Ghz_Lib_Var_PixelX Pixel\Y = Ghz_Lib_Var_PixelY - 1 PixelNum = PixelNum + 1 Ghz_Lib_Var_PixelAbove = False WritePixelFast Pixel\X,Pixel\Y,Ghz_Lib_Var_FillColor EndIf If Ghz_Lib_Var_PixelRight = True Pixel.Pixel = New Pixel Pixel\X = Ghz_Lib_Var_PixelX + 1 Pixel\Y = Ghz_Lib_Var_PixelY PixelNum = PixelNum + 1 Ghz_Lib_Var_PixelRight = False WritePixelFast Pixel\X,Pixel\Y,Ghz_Lib_Var_FillColor EndIf If Ghz_Lib_Var_PixelBelow = True Pixel.Pixel = New Pixel Pixel\X = Ghz_Lib_Var_PixelX Pixel\Y = Ghz_Lib_Var_PixelY + 1 PixelNum = PixelNum + 1 Ghz_Lib_Var_PixelBelow = False WritePixelFast Pixel\X,Pixel\Y,Ghz_Lib_Var_FillColor EndIf If Ghz_Lib_Var_WatchInAction = True UnlockBuffer SetBuffer Ghz_Lib_Var_CurrentBuffer DrawImage Ghz_Lib_Var_FillImage,0,0 Flip SetBuffer ImageBuffer(Ghz_Lib_Var_FillImage) LockBuffer EndIf Next Until Ghz_Lib_Var_PixelsRemaining = False UnlockBuffer SetBuffer Ghz_Lib_Var_CurrentBuffer Color Ghz_Lib_Var_CurrentRed,Ghz_Lib_Var_CurrentGreen,Ghz_Lib_Var_CurrentBlue End Function Function FrameRate() Ghz_Lib_Var_FPSFrames = Ghz_Lib_Var_FPSFrames + 1 If MilliSecs() => Ghz_Lib_Var_LastFrame + 1000 Ghz_Lib_Var_FPS = Ghz_Lib_Var_FPSFrames Ghz_Lib_Var_FPSFrames = 0 Ghz_Lib_Var_LastFrame = MilliSecs() EndIf Return Ghz_Lib_Var_FPS End Function Function FreeColor(Ghz_Lib_Var_Ghz_Lib_Var_ScolID) Local Ghz_Lib_Var_ScolExists = False For scol.scol = Each Scol If scol\id = Ghz_Lib_Var_Ghz_Lib_Var_ScolID Ghz_Lib_Var_ScolExists = True Delete scol Exit EndIf Next If Ghz_Lib_Var_ScolExists = False If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Stored color does not exist") Else Return -1 EndIf EndIf End Function Function FreeDebugPage(Ghz_Lib_Var_DebugPageNum) Local Ghz_Lib_Var_DebugPageExists = False For page.debugpage = Each DebugPage If page\id = Ghz_Lib_Var_DebugPageNum Ghz_Lib_Var_DebugPageExists = True Delete page Exit EndIf Next If Ghz_Lib_Var_DebugPageExists = False If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Debug page does not exist") Else Return -1 EndIf EndIf End Function Function FreeVectorGraphic(Ghz_Lib_Var_VectorID) For Vector.Vector = Each Vector If Vector\ID = Ghz_Lib_Var_VectorID For Vector\VectorObject.VectorObject = Each VectorObject Delete Vector\VectorObject Next Delete Vector Return EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Graphic does not exist" Else Return -1 EndIf End Function Function FreeVectorObject(Ghz_Lib_Var_VectorID,Ghz_Lib_Var_ObjectID) Local Ghz_Lib_Var_ObjectExists = False For Vector.Vector = Each Vector If Vector\ID = Ghz_Lib_Var_VectorID For Vector\VectorObject.VectorObject = Each VectorObject If Vector\VectorObject\ID = Ghz_Lib_Var_ObjectID Ghz_Lib_Var_ObjectExists = True Delete Vector\VectorObject EndIf Next If Ghz_Lib_Var_ObjectExists = False If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Object does not exist" Else Return -2 EndIf EndIf Return EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Graphic does not exist" Else Return -1 EndIf End Function ;G Function Grid(Ghz_Lib_Var_GridX,Ghz_Lib_Var_GridY,Ghz_Lib_Var_GridWidth,Ghz_Lib_Var_GridHeight,Ghz_Lib_Var_CellWidth,Ghz_Lib_Var_CellHeight) For Ghz_Lib_Var_Rows = 1 To Ghz_Lib_Var_GridWidth For Ghz_Lib_Var_Cols = 1 To Ghz_Lib_Var_GridHeight Rect ((Ghz_Lib_Var_Rows - 1) * Ghz_Lib_Var_CellWidth) + Ghz_Lib_Var_GridX,((Ghz_Lib_Var_Cols - 1) * Ghz_Lib_Var_CellHeight) + Ghz_Lib_Var_GridY,Ghz_Lib_Var_CellWidth,Ghz_Lib_Var_CellHeight,0 Next Next End Function ;H ;I Function InterruptsOff() Ghz_Lib_Var_Interrupt = False End Function Function InterruptsOn() Ghz_Lib_Var_Interrupt = True End Function ;J ;K ;L Function LoadFCC(Ghz_Lib_Var_FileName$) If FileType(Ghz_Lib_Var_FileName + ".fcc") <> 1 If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR:" + Chr(10) + "File not found:" + Chr(10) + Ghz_Lib_Var_FileName + ".fcc" Else Return -1 EndIf EndIf Local Ghz_Lib_Var_CurrentRed = ColorRed() Local Ghz_Lib_Var_CurrentGreen = ColorGreen() Local Ghz_Lib_Var_CurrentBlue = ColorBlue() Local Ghz_Lib_Var_CurrentBuffer = GraphicsBuffer() Local Ghz_Lib_Var_SpriteFile = ReadFile(Ghz_Lib_Var_FileName + ".fcc") Local Ghz_Lib_Var_FrameW = ReadByte(Ghz_Lib_Var_SpriteFile) + 1 Local Ghz_Lib_Var_FrameH = ReadByte(Ghz_Lib_Var_SpriteFile) + 1 Local Ghz_Lib_Var_FrameNum = ReadByte(Ghz_Lib_Var_SpriteFile) Local Ghz_Lib_Var_Palletted = ReadByte(Ghz_Lib_Var_SpriteFile) If Ghz_Lib_Var_Palletted = 128 Ghz_Lib_Var_Palletted = True Local Ghz_Lib_Var_ColorNum = ReadByte(Ghz_Lib_Var_SpriteFile) Ghz_Lib_Var_ColorNum = Ghz_Lib_Var_ColorNum + 1 For Ghz_Lib_Var_i = 0 To Ghz_Lib_Var_ColorNum - 1 Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i,0) = ReadByte(Ghz_Lib_Var_SpriteFile) Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i,1) = ReadByte(Ghz_Lib_Var_SpriteFile) Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i,2) = ReadByte(Ghz_Lib_Var_SpriteFile) Next Else Ghz_Lib_Var_Palletted = False EndIf Local Ghz_Lib_Var_Sprite = CreateImage(Ghz_Lib_Var_FrameW,Ghz_Lib_Var_FrameH,Ghz_Lib_Var_FrameNum) SetBuffer ImageBuffer(Ghz_Lib_Var_Sprite,0) For Ghz_Lib_Var_Cols = 0 To Ghz_Lib_Var_FrameW - 1;draw the first frame For Ghz_Lib_Var_Rows = 0 To Ghz_Lib_Var_FrameH - 1 If Ghz_Lib_Var_Palletted = True Local Ghz_Lib_Var_ColorByte = ReadByte(Ghz_Lib_Var_SpriteFile) Color Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_ColorByte,0),Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_ColorByte,1),Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_ColorByte,2) Else Color ReadByte(Ghz_Lib_Var_SpriteFile),ReadByte(Ghz_Lib_Var_SpriteFile),ReadByte(Ghz_Lib_Var_SpriteFile) EndIf Plot Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows Next Next For Ghz_Lib_Var_i = 1 To Ghz_Lib_Var_FrameNum - 1 CopyRect 0,0,Ghz_Lib_Var_FrameW,Ghz_Lib_Var_FrameH,0,0,ImageBuffer(Ghz_Lib_Var_Sprite,Ghz_Lib_Var_i - 1),ImageBuffer(Ghz_Lib_Var_Sprite,Ghz_Lib_Var_i) ;copy the previous frame to the current one Local Ghz_Lib_Var_FrameChange = ReadByte(Ghz_Lib_Var_SpriteFile) If Ghz_Lib_Var_FrameChange = 128;different frame SetBuffer ImageBuffer(Ghz_Lib_Var_Sprite,Ghz_Lib_Var_i) Local Ghz_Lib_Var_FrameDiff = ReadInt(Ghz_Lib_Var_SpriteFile) For Ghz_Lib_Var_i2 = 1 To Ghz_Lib_Var_FrameDiff;draw each changed pixel If Ghz_Lib_Var_Palletted = True Ghz_Lib_Var_ColorByte = ReadByte(Ghz_Lib_Var_SpriteFile) Color Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_ColorByte,0),Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_ColorByte,1),Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_ColorByte,2) Else Color ReadByte(Ghz_Lib_Var_SpriteFile),ReadByte(Ghz_Lib_Var_SpriteFile),ReadByte(Ghz_Lib_Var_SpriteFile) EndIf Plot ReadByte(Ghz_Lib_Var_SpriteFile),ReadByte(Ghz_Lib_Var_SpriteFile) Next EndIf Next SetBuffer Ghz_Lib_Var_CurrentBuffer Color Ghz_Lib_Var_CurrentRed,Ghz_Lib_Var_CurrentGreen,Ghz_Lib_Var_CurrentBlue Return Ghz_Lib_Var_Sprite End Function Function LoadVectorGraphic(Ghz_Lib_Var_FileName$) If FileType(Ghz_Lib_Var_FileName + ".vec") <> 1 If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Graphic file not found:" + Chr(10) + Ghz_Lib_Var_FileName + ".vec" Else Return -1 EndIf EndIf Local Ghz_Lib_Var_File = ReadFile(Ghz_Lib_Var_FileName + ".vec") If FileSize(Ghz_Lib_Var_FileName + ".vec") < 8 If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Graphic file is corrupt:" + Chr(10) + Ghz_Lib_Var_FileName + ".vec" Else Return -2 EndIf EndIf Ghz_Lib_Var_VectorNum = Ghz_Lib_Var_VectorNum + 1 Vector.Vector = New Vector Vector\ID = Ghz_Lib_Var_VectorNum Vector\GrabX = ReadInt(Ghz_Lib_Var_File) Vector\GrabY = ReadInt(Ghz_Lib_Var_File) While Not Eof(Ghz_Lib_Var_File) Vector\VectorObject.VectorObject = New VectorObject Vector\VectorObject\ID = ReadInt(Ghz_Lib_Var_File) Vector\VectorObject\ObjectType = ReadByte(Ghz_Lib_Var_File) Vector\VectorObject\X = ReadFloat(Ghz_Lib_Var_File) Vector\VectorObject\Y = ReadFloat(Ghz_Lib_Var_File) Vector\VectorObject\Width = ReadFloat(Ghz_Lib_Var_File) Vector\VectorObject\Height = ReadFloat(Ghz_Lib_Var_File) Vector\VectorObject\Fill = ReadByte(Ghz_Lib_Var_File) Vector\VectorObject\ObjectColor = ReadLine(Ghz_Lib_Var_File) Wend CloseFile Ghz_Lib_Var_File Return Ghz_Lib_Var_VectorNum End Function Function LogDebugPage(Ghz_Lib_Var_DebugPageNum) Local Ghz_Lib_Var_DebugPageExists = False For page.debugpage = Each DebugPage If page\id = Ghz_Lib_Var_DebugPageNum Ghz_Lib_Var_DebugPageExists = True DebugLog "Gigahertz Games Command Library" DebugLog "Debug Page Record" DebugLog "" DebugLog "Page Name: " + page\title DebugLog "" For Ghz_Lib_Var_i = 1 To 20 If page\debugvarname[Ghz_Lib_Var_i] <> "" And page\debugvar[Ghz_Lib_Var_i] <> "" Then DebugLog page\debugvarname[Ghz_Lib_Var_i] + " = " + page\debugvar[Ghz_Lib_Var_i] Next DebugLog "" DebugLog "--------------------------------------------------" DebugLog "" Exit EndIf Next If Ghz_Lib_Var_DebugPageExists = False If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Debug page does not exist") Else Return -1 EndIf EndIf End Function ;M Function MaxColor() Return GfxModeDepth(CountGfxModes()) End Function Function MaxGraphics(Ghz_Lib_Var_WindowMode = 1) If Not Ghz_Lib_Var_WindowMode = 1 Or Ghz_Lib_Var_WindowMode = 2 Or Ghz_Lib_Var_WindowMode = 3 Or Ghz_Lib_Var_WindowMode = 6 Or Ghz_Lib_Var_WindowMode = 7 If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Invalid window mode:" + Chr(10) + Ghz_Lib_Var_WindowMode + Chr(10) + "Please enter 1, 2, 3, 6, 7, or leave blank") Else Return -1 EndIf EndIf Graphics GfxModeWidth(CountGfxModes()),GfxModeHeight(CountGfxModes()),GfxModeDepth(CountGfxModes()),Ghz_Lib_Var_WindowMode End Function Function MouseInCircle(Ghz_Lib_Var_CircleX,Ghz_Lib_Var_CircleY,Ghz_Lib_Var_Width) If Distance(MouseX(),MouseY(),Ghz_Lib_Var_CircleX,Ghz_Lib_Var_CircleY) <= Ghz_Lib_Var_Width Return 1 Else Return 0 EndIf End Function Function MouseInRect(Ghz_Lib_Var_RectX,Ghz_Lib_Var_RectY,Ghz_Lib_Var_Width,Ghz_Lib_Var_Height) If RectsOverlap(MouseX(),MouseY(),1,1,Ghz_Lib_Var_RectX,Ghz_Lib_Var_RectY,Ghz_Lib_Var_Width,Ghz_Lib_Var_Height) Return 1 Else Return 0 EndIf End Function Function MoveFile(Ghz_Lib_Var_Source$,Ghz_Lib_Var_Destination$) If Ghz_Lib_Var_Source = Ghz_Lib_Var_Destination If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Source and destination files/folders are the same") Else Return -2 EndIf EndIf If FileType(Ghz_Lib_Var_Source) <> 1 If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Source file not found:" + Chr(10) + Ghz_Lib_Var_Source) Else Return -1 EndIf EndIf CopyFile(Ghz_Lib_Var_Source,Ghz_Lib_Var_Destination) DeleteFile Ghz_Lib_Var_Source End Function ;N ;O ;P Function PackFile(Ghz_Lib_Var_FileName$,Ghz_Lib_Var_PackName$) If Not FileType(Ghz_Lib_Var_PackName + ".ghzpak") = 1 If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Package not found:" + Chr(10) + Ghz_Lib_Var_PackName + ".ghzpak") Else Return -2 EndIf EndIf If Not FileType(Ghz_Lib_Var_FileName) = 1 If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "File not found:" + Chr(10) + Ghz_Lib_Var_FileName) Else Return -1 EndIf EndIf Local Ghz_Lib_Var_Package = OpenFile(Ghz_Lib_Var_PackName + ".ghzpak") While Not Eof(Ghz_Lib_Var_Package) SeekFile(Ghz_Lib_Var_Package,FileSize(Ghz_Lib_Var_PackName + ".ghzpak")) Wend WriteLine(Ghz_Lib_Var_Package,"//" + Chr(223) + "Ghz package file: " + Ghz_Lib_Var_FileName) WriteInt(Ghz_Lib_Var_Package,FileSize(Ghz_Lib_Var_FileName)) Local Ghz_Lib_Var_File = ReadFile(Ghz_Lib_Var_FileName) While Not Eof(Ghz_Lib_Var_File) WriteByte(Ghz_Lib_Var_Package,ReadByte(Ghz_Lib_Var_File)) Wend CloseFile Ghz_Lib_Var_Package CloseFile Ghz_Lib_Var_File DeleteFile Ghz_Lib_Var_FileName End Function Function PausedKeyDown(Ghz_Lib_Var_key,Ghz_Lib_Var_repeatdelay = 750) If KeyHit(Ghz_Lib_Var_key) Ghz_Lib_Arr_KeyRepeatTimer(Ghz_Lib_Var_key) = MilliSecs() Return 1 EndIf If MilliSecs() => Ghz_Lib_Arr_KeyRepeatTimer(Ghz_Lib_Var_key) + Ghz_Lib_Var_repeatdelay And KeyDown(Ghz_Lib_Var_key) Return 1 EndIf Return 0 End Function Function PixelBlue(Ghz_Lib_Var_PixelX,Ghz_Lib_Var_PixelY) Local Ghz_Lib_Var_CurrentRed = ColorRed() Local Ghz_Lib_Var_CurrentGreen = ColorGreen() Local Ghz_Lib_Var_CurrentBlue = ColorBlue() GetColor(Ghz_Lib_Var_PixelX,Ghz_Lib_Var_PixelY) Local Ghz_Lib_Var_Blue = ColorBlue() Color Ghz_Lib_Var_CurrentRed,Ghz_Lib_Var_CurrentGreen,Ghz_Lib_Var_CurrentBlue Return Ghz_Lib_Var_Blue End Function Function PixelGreen(Ghz_Lib_Var_PixelX,Ghz_Lib_Var_PixelY) Local Ghz_Lib_Var_CurrentRed = ColorRed() Local Ghz_Lib_Var_CurrentGreen = ColorGreen() Local Ghz_Lib_Var_CurrentBlue = ColorBlue() GetColor(Ghz_Lib_Var_PixelX,Ghz_Lib_Var_PixelY) Local Ghz_Lib_Var_Green = ColorGreen() Color Ghz_Lib_Var_CurrentRed,Ghz_Lib_Var_CurrentGreen,Ghz_Lib_Var_CurrentBlue Return Ghz_Lib_Var_Green End Function Function PixelRed(Ghz_Lib_Var_PixelX,Ghz_Lib_Var_PixelY) Local Ghz_Lib_Var_CurrentRed = ColorRed() Local Ghz_Lib_Var_CurrentGreen = ColorGreen() Local Ghz_Lib_Var_CurrentBlue = ColorBlue() GetColor(Ghz_Lib_Var_PixelX,Ghz_Lib_Var_PixelY) Local Ghz_Lib_Var_Red = ColorRed() Color Ghz_Lib_Var_CurrentRed,Ghz_Lib_Var_CurrentGreen,Ghz_Lib_Var_CurrentBlue Return Ghz_Lib_Var_Red End Function Function PrintWrap(Ghz_Lib_Var_ParagraphStr$) Local Ghz_Lib_Var_CurrentLine = 1 Repeat Ghz_Lib_Var_i = 0 TextLine.TextLine = New TextLine Repeat Ghz_Lib_Var_i = Ghz_Lib_Var_i + 1 TextLine\Content = Left(Ghz_Lib_Var_ParagraphStr,Ghz_Lib_Var_i) Until StringWidth(TextLine\Content) > GraphicsWidth() Ghz_Lib_Var_ParagraphStr = Right(Ghz_Lib_Var_ParagraphStr,Len(Ghz_Lib_Var_ParagraphStr) - (Len(TextLine\Content) - 1)) Until StringWidth(Ghz_Lib_Var_ParagraphStr) < GraphicsWidth() For TextLine.TextLine = Each TextLine Print TextLine\Content Delete TextLine Next Print Ghz_Lib_Var_ParagraphStr End Function ;Q ;R Function ReceiveAPPMessage$() If Ghz_Lib_Var_ServerCreated = False If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "APPID must be specified before calling ReceiveAPPMessage()") Else Return -1 EndIf EndIf Local Ghz_Lib_Var_InStream = AcceptTCPStream(Ghz_Lib_Var_Server) If Ghz_Lib_Var_InStream Ghz_Lib_Var_StreamSender = ReadInt(Ghz_Lib_Var_InStream) Local Ghz_Lib_Var_StreamContent$ = ReadString(Ghz_Lib_Var_InStream) CloseTCPStream Ghz_Lib_Var_InStream Return Ghz_Lib_Var_StreamContent Else Return "" EndIf End Function Function RenameDebugPage(Ghz_Lib_Var_DebugPageNum,Ghz_Lib_Var_PageTitle$) For page.debugpage = Each DebugPage If page\id = Ghz_Lib_Var_DebugPageNum page\title = Ghz_Lib_Var_PageTitle Return EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Debug page does not exist" Else Return -1 EndIf End Function Function RenameFile(Ghz_Lib_Var_FileName$,Ghz_Lib_Var_NewFileName$) If FileType(Ghz_Lib_Var_FileName) <> 1 If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "File not found:" + Chr(10) + Ghz_Lib_Var_FileName) Else Return -1 EndIf EndIf CopyFile(Ghz_Lib_Var_FileName,Ghz_Lib_Var_NewFileName) DeleteFile Ghz_Lib_Var_FileName End Function Function RestoreColor(Ghz_Lib_Var_ScolID) Local Ghz_Lib_Var_ScolExists = False For scol.scol = Each Scol If scol\id = Ghz_Lib_Var_ScolID Color scol\r,scol\g,scol\b Ghz_Lib_Var_ScolExists = True EndIf Next If Not Ghz_Lib_Var_ScolExists If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Stored color does not exist") Else Return -1 EndIf EndIf End Function ;S Function SaveColor(Ghz_Lib_Var_SRed,Ghz_Lib_Var_SGreen,Ghz_Lib_Var_SBlue) Ghz_Lib_Var_ScolNum = Ghz_Lib_Var_ScolNum + 1 scol.scol = New Scol scol\r = Ghz_Lib_Var_SRed scol\g = Ghz_Lib_Var_SGreen scol\b = Ghz_Lib_Var_SBlue scol\id = Ghz_Lib_Var_ScolNum Return Ghz_Lib_Var_ScolNum End Function Function SaveDebugPage(Ghz_Lib_Var_FileName$,Ghz_Lib_Var_DebugPageNum) Local Ghz_Lib_Var_File Local Ghz_Lib_Var_DebugPageExists = False For page.debugpage = Each DebugPage If page\id = Ghz_Lib_Var_DebugPageNum Ghz_Lib_Var_DebugPageExists = True Ghz_Lib_Var_File = WriteFile(Ghz_Lib_Var_FileName) WriteLine Ghz_Lib_Var_File,"Gigahertz Games Command Library" WriteLine Ghz_Lib_Var_File,"Debug Page Record File" WriteLine Ghz_Lib_Var_File,"" WriteLine Ghz_Lib_Var_File,"Page Name: " + page\title WriteLine Ghz_Lib_Var_File,"" For Ghz_Lib_Var_i = 1 To 20 If page\debugvarname[Ghz_Lib_Var_i] <> "" And page\debugvar[Ghz_Lib_Var_i] <> "" Then WriteLine Ghz_Lib_Var_File,page\debugvarname[Ghz_Lib_Var_i] + " = " + page\debugvar[Ghz_Lib_Var_i] Next CloseFile Ghz_Lib_Var_File Exit EndIf Next If Ghz_Lib_Var_DebugPageExists = False If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Debug page does not exist") Else Return -1 EndIf EndIf End Function Function SaveFCC(Ghz_Lib_Var_Image,Ghz_Lib_Var_FrameW,Ghz_Lib_Var_FrameH,Ghz_Lib_Var_FrameNum,Ghz_Lib_Var_FileName$,Ghz_Lib_Var_ForceRGB = False);Top Priority If Ghz_Lib_Var_FrameW < 1 Or Ghz_Lib_Var_FrameW > 256 Or Ghz_Lib_Var_FrameH < 1 Or Ghz_Lib_Var_FrameH > 256 If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Image frame size out of range:" + Chr(10) + Ghz_Lib_Var_FrameW + " x " + Ghz_Lib_Var_FrameH + Chr(10) + "Must be between 1 x 1 and 256 x 256" Else Return -1 EndIf EndIf If Ghz_Lib_Var_FrameNum < 2 If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Image must have at least 2 frames" Else Return -2 EndIf EndIf If Ghz_Lib_Var_FrameNum > 255 If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Image cannot have more than 255 frames" Else Return -3 EndIf EndIf If Ghz_Lib_Var_FrameW > ImageWidth(Ghz_Lib_Var_Image) Ghz_Lib_Var_FrameW = ImageWidth(Ghz_Lib_Var_Image) EndIf If Ghz_Lib_Var_FrameH > ImageHeight(Ghz_Lib_Var_Image) Ghz_Lib_Var_FrameH = ImageHeight(Ghz_Lib_Var_Image) EndIf Local Ghz_Lib_Var_CurrentBuffer = BackBuffer() ;create the output sprite file & record the sprite's width, height & frame count Local Ghz_Lib_Var_SpriteFile = WriteFile(Ghz_Lib_Var_FileName + ".fcc") WriteByte Ghz_Lib_Var_SpriteFile,Ghz_Lib_Var_FrameW - 1 WriteByte Ghz_Lib_Var_SpriteFile,Ghz_Lib_Var_FrameH - 1 WriteByte Ghz_Lib_Var_SpriteFile,Ghz_Lib_Var_FrameNum ;[Block] Auto-Palletting to 256 colors If Ghz_Lib_Var_ForceRGB = False Local Ghz_Lib_Var_Palletted = True For Ghz_Lib_Var_i = 0 To 255;reset pallette array Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i,0) = -1 Next Local Ghz_Lib_Var_ColorNum For Ghz_Lib_Var_i = 1 To Ghz_Lib_Var_FrameNum - 1;count the number of colors & record each color For Ghz_Lib_Var_Cols = 0 To Ghz_Lib_Var_FrameW - 1 For Ghz_Lib_Var_Rows = 0 To Ghz_Lib_Var_FrameH - 1 For Ghz_Lib_Var_i2 = 0 To 255 If PixelRed(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) = Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i2,0) And PixelGreen(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) = Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i2,1) And PixelBlue(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) = Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i2,2) Goto PalletteNextPixel Else If Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i2,0) = -1;cell has not been written to yet Ghz_Lib_Var_ColorNum = Ghz_Lib_Var_ColorNum + 1 ;record color Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i2,0) = PixelRed(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i2,1) = PixelGreen(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i2,2) = PixelBlue(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) If Ghz_Lib_Var_ColorNum > 256 Ghz_Lib_Var_Palletted = False Goto SkipPalletting EndIf Goto PalletteNextPixel EndIf EndIf Next .PalletteNextPixel Next Next Next .SkipPalletting Else Ghz_Lib_Var_Palletted = False EndIf ;[End block] If Ghz_Lib_Var_Palletted = True WriteByte Ghz_Lib_Var_SpriteFile,128 WriteByte Ghz_Lib_Var_SpriteFile,Ghz_Lib_Var_ColorNum - 1 For Ghz_Lib_Var_i = 0 To Ghz_Lib_Var_ColorNum - 1;record each color WriteByte Ghz_Lib_Var_SpriteFile,Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i,0);red WriteByte Ghz_Lib_Var_SpriteFile,Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i,1);green WriteByte Ghz_Lib_Var_SpriteFile,Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i,2);blue Next Else WriteByte Ghz_Lib_Var_SpriteFile,127 EndIf SetBuffer ImageBuffer(Ghz_Lib_Var_Image,0);read & store first frame For Ghz_Lib_Var_Cols = 0 To Ghz_Lib_Var_FrameW - 1 For Ghz_Lib_Var_Rows = 0 To Ghz_Lib_Var_FrameH - 1 If Ghz_Lib_Var_Palletted = False WriteByte Ghz_Lib_Var_SpriteFile,PixelGreen(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) WriteByte Ghz_Lib_Var_SpriteFile,PixelBlue(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) WriteByte Ghz_Lib_Var_SpriteFile,PixelRed(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) Else For Ghz_Lib_Var_i = 0 To 255 If PixelRed(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) = Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i,0) And PixelGreen(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) = Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i,1) And PixelBlue(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) = Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i,2) WriteByte Ghz_Lib_Var_SpriteFile,Ghz_Lib_Var_i Goto NextPixel1 EndIf Next .NextPixel1 EndIf Next Next For Ghz_Lib_Var_i = 1 To Ghz_Lib_Var_FrameNum - 1;loop through each frame Local Ghz_Lib_Var_FrameDiff = 0 For Ghz_Lib_Var_Cols = 0 To Ghz_Lib_Var_FrameW - 1;calculate the number of differences from the previous frame For Ghz_Lib_Var_Rows = 0 To Ghz_Lib_Var_FrameH - 1 SetBuffer ImageBuffer(Ghz_Lib_Var_Image,Ghz_Lib_Var_i - 1);previous frame Local Ghz_Lib_Var_PrevRed = PixelRed(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) Local Ghz_Lib_Var_PrevGreen = PixelGreen(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) Local Ghz_Lib_Var_PrevBlue = PixelBlue(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) SetBuffer ImageBuffer(Ghz_Lib_Var_Image,Ghz_Lib_Var_i);current frame If PixelRed(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) <> Ghz_Lib_Var_PrevRed Or PixelGreen(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) <> Ghz_Lib_Var_PrevGreen Or PixelBlue(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) <> Ghz_Lib_Var_PrevBlue Ghz_Lib_Var_FrameDiff = Ghz_Lib_Var_FrameDiff + 1 EndIf Next Next If Ghz_Lib_Var_FrameDiff = 0 WriteByte Ghz_Lib_Var_SpriteFile,127;identical frame Else WriteByte Ghz_Lib_Var_SpriteFile,128;different frame WriteInt Ghz_Lib_Var_SpriteFile,Ghz_Lib_Var_FrameDiff;number of differences For Ghz_Lib_Var_Cols = 0 To Ghz_Lib_Var_FrameW - 1;record each changed pixel For Ghz_Lib_Var_Rows = 0 To Ghz_Lib_Var_FrameH - 1 SetBuffer ImageBuffer(Ghz_Lib_Var_Image,Ghz_Lib_Var_i - 1);previous frame Ghz_Lib_Var_PrevRed = PixelRed(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) Ghz_Lib_Var_PrevGreen = PixelGreen(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) Ghz_Lib_Var_PrevBlue = PixelBlue(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) SetBuffer ImageBuffer(Ghz_Lib_Var_Image,Ghz_Lib_Var_i);current frame If PixelRed(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) <> Ghz_Lib_Var_PrevRed Or PixelGreen(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) <> Ghz_Lib_Var_PrevGreen Or PixelBlue(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) <> Ghz_Lib_Var_PrevBlue ;record the color & location of the changed pixel If Ghz_Lib_Var_Palletted = False WriteByte Ghz_Lib_Var_SpriteFile,PixelGreen(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) WriteByte Ghz_Lib_Var_SpriteFile,PixelBlue(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) WriteByte Ghz_Lib_Var_SpriteFile,PixelRed(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) Else For Ghz_Lib_Var_i2 = 0 To 255 If PixelRed(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) = Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i2,0) And PixelGreen(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) = Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i2,1) And PixelBlue(Ghz_Lib_Var_Cols,Ghz_Lib_Var_Rows) = Ghz_Lib_Arr_Pallette(Ghz_Lib_Var_i2,2) WriteByte Ghz_Lib_Var_SpriteFile,Ghz_Lib_Var_i2 Goto NextPixel2 EndIf Next .NextPixel2 EndIf WriteByte Ghz_Lib_Var_SpriteFile,Ghz_Lib_Var_Cols WriteByte Ghz_Lib_Var_SpriteFile,Ghz_Lib_Var_Rows EndIf Next Next EndIf Next CloseFile Ghz_Lib_Var_SpriteFile SetBuffer Ghz_Lib_Var_CurrentBuffer End Function Function SaveVectorGraphic(Ghz_Lib_Var_VectorID,Ghz_Lib_Var_FileName$) Local Ghz_Lib_Var_File = WriteFile(Ghz_Lib_Var_FileName + ".vec") For Vector.Vector = Each Vector If Vector\ID = Ghz_Lib_Var_VectorID WriteInt Ghz_Lib_Var_File,Vector\GrabX WriteInt Ghz_Lib_Var_File,Vector\GrabY For Vector\VectorObject.VectorObject = Each VectorObject WriteInt Ghz_Lib_Var_File,Vector\VectorObject\ID WriteByte Ghz_Lib_Var_File,Vector\VectorObject\ObjectType WriteFloat Ghz_Lib_Var_File,Vector\VectorObject\X WriteFloat Ghz_Lib_Var_File,Vector\VectorObject\Y WriteFloat Ghz_Lib_Var_File,Vector\VectorObject\Width WriteFloat Ghz_Lib_Var_File,Vector\VectorObject\Height WriteByte Ghz_Lib_Var_File,Vector\VectorObject\Fill WriteLine Ghz_Lib_Var_File,Vector\VectorObject\ObjectColor Next CloseFile Ghz_Lib_Var_File Return EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Graphic does not exist" Else Return -1 EndIf End Function Function ScreenShot(Ghz_Lib_Var_Key,Ghz_Lib_Var_Path$ = "") Local Ghz_Lib_Var_ScrNum = 0 If KeyHit(Ghz_Lib_Var_Key) Repeat Ghz_Lib_Var_ScrNum = Ghz_Lib_Var_ScrNum + 1 Until FileType(Ghz_Lib_Var_Path + "scrn" + Ghz_Lib_Var_ScrNum + ".bmp") <> 1 SaveBuffer(FrontBuffer(),Ghz_Lib_Var_Path + "scrn" + Ghz_Lib_Var_ScrNum + ".bmp") EndIf End Function Function SendAPPMessage(Ghz_Lib_Var_DestAPPID,Ghz_Lib_Var_Message$) If Ghz_Lib_Var_ServerCreated = False If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "APPID must be specified before calling SendAPPMessage().") Else Return -1 EndIf EndIf Local Ghz_Lib_Var_OutStream = OpenTCPStream("127.0.0.1",Ghz_Lib_Var_DestAPPID) If Ghz_Lib_Var_OutStream = 0 Then Return -1 WriteInt Ghz_Lib_Var_OutStream,Ghz_Lib_Var_APPID WriteString Ghz_Lib_Var_OutStream,Ghz_Lib_Var_Message CloseTCPStream Ghz_Lib_Var_OutStream End Function Function SetDebugVar(Ghz_Lib_Var_VarNum,Ghz_Lib_Var_VarContent$,Ghz_Lib_Var_DebugPageNum,Ghz_Lib_Var_VarName$ = "") If Ghz_Lib_Var_VarNum < 0 Or Ghz_Lib_Var_VarNum > 20 If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Debug variable does not exist:" + Chr(10) + Ghz_Lib_Var_VarNum + Chr(10) + "Must be a number between 1 and 20." Else Return -2 EndIf EndIf For page.debugpage = Each DebugPage If page\id = Ghz_Lib_Var_DebugPageNum page\debugvar[Ghz_Lib_Var_VarNum] = Ghz_Lib_Var_VarContent page\debugvarname[Ghz_Lib_Var_VarNum] = Ghz_Lib_Var_VarName Return EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Debug page does not exist") Else Return -1 EndIf End Function Function ShowDebugPage(Ghz_Lib_Var_DebugPageNum,Ghz_Lib_Var_TextX = 0,Ghz_Lib_Var_TextY = 0) Local Ghz_Lib_Var_DebugPageExists = False For page.debugpage = Each DebugPage If page\id = Ghz_Lib_Var_DebugPageNum page\selected = True page\Ghz_Lib_Var_textx = Ghz_Lib_Var_TextX page\Ghz_Lib_Var_texty = Ghz_Lib_Var_TextY Ghz_Lib_Var_DebugPageExists = True Else page\selected = False EndIf Next If Not Ghz_Lib_Var_DebugPageExists If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Debug page does not exist") Else Return -1 EndIf EndIf End Function Function ShutDown(Ghz_Lib_Var_ShutdownType = 1,Ghz_Lib_Var_ShutdownTime = 0,Ghz_Lib_Var_ShutdownComment$ = "",Ghz_Lib_Var_ForceAPPs = False) If Ghz_Lib_Var_ShutdownType < 1 Or Ghz_Lib_Var_ShutdownType > 3 If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Invalid shutdown type: " + Ghz_Lib_Var_ShutdownType + Chr(10) + "Must be one of the following:" + Chr(10) + "1 - Shutdown" + Chr(10) + "2 - Restart" + Chr(10) + "3 - Log off") Else Return -1 EndIf EndIf If Ghz_Lib_Var_ShutdownTime < 0 Then Ghz_Lib_Var_ShutdownTime = 0 If Len(Ghz_Lib_Var_ShutdownComment) > 127 Then Ghz_Lib_Var_ShutdownComment = Left(Ghz_Lib_Var_ShutdownComment,127) If Ghz_Lib_Var_ForceAPPs Select Ghz_Lib_Var_ShutdownType Case 1;shutdown ExecFile "shutdown.exe -s -f -t " + Ghz_Lib_Var_ShutdownTime + " -c " + Chr(34) + Ghz_Lib_Var_ShutdownComment + Chr(34) Case 2;restart ExecFile "shutdown.exe -r -f -t " + Ghz_Lib_Var_ShutdownTime + " -c " + Chr(34) + Ghz_Lib_Var_ShutdownComment + Chr(34) Case 3;log off ExecFile "shutdown.exe -l -f -t " + Ghz_Lib_Var_ShutdownTime + " -c " + Chr(34) + Ghz_Lib_Var_ShutdownComment + Chr(34) End Select Else Select Ghz_Lib_Var_ShutdownType Case 1;shutdown ExecFile "shutdown.exe -s -t " + Ghz_Lib_Var_ShutdownTime + " -c " + Chr(34) + Ghz_Lib_Var_ShutdownComment + Chr(34) Case 2;restart ExecFile "shutdown.exe -r -t " + Ghz_Lib_Var_ShutdownTime + " -c " + Chr(34) + Ghz_Lib_Var_ShutdownComment + Chr(34) Case 3;log off ExecFile "shutdown.exe -l -t " + Ghz_Lib_Var_ShutdownTime + " -c " + Chr(34) + Ghz_Lib_Var_ShutdownComment + Chr(34) End Select EndIf End Function Function StopShutdown() ExecFile "shutdown.exe -a" End Function Function SuperText(Ghz_Lib_Var_TextX#,Ghz_Lib_Var_TextY#,Ghz_Lib_Var_TextStr$,Ghz_Lib_Var_FontShadow = 0,Ghz_Lib_Var_Alignment = 1,Ghz_Lib_Var_TextR = -1,Ghz_Lib_Var_TextG = -1,Ghz_Lib_Var_TextB = -1) Local Ghz_Lib_Var_CurrentRed = ColorRed() Local Ghz_Lib_Var_CurrentGreen = ColorGreen() Local Ghz_Lib_Var_CurrentBlue = ColorBlue() .NextLine For Ghz_Lib_Var_i = 1 To Len(Ghz_Lib_Var_TextStr) If Mid(Ghz_Lib_Var_TextStr,Ghz_Lib_Var_i,1) = Chr(10) TextLine.TextLine = New TextLine TextLine\Content = Left(Ghz_Lib_Var_TextStr,Ghz_Lib_Var_i - 1) Ghz_Lib_Var_TextStr = Right(Ghz_Lib_Var_TextStr,Len(Ghz_Lib_Var_TextStr) - Ghz_Lib_Var_i) Goto NextLine EndIf Next TextLine.TextLine = New TextLine TextLine\Content = Ghz_Lib_Var_TextStr If Ghz_Lib_Var_FontShadow = 0 If Ghz_Lib_Var_TextR > -1 And Ghz_Lib_Var_TextG > -1 And Ghz_Lib_Var_TextB > -1 Color Ghz_Lib_Var_TextR,Ghz_Lib_Var_TextG,Ghz_Lib_Var_TextB EndIf Ghz_Lib_Var_i = 0 For TextLine.TextLine = Each TextLine Select Ghz_Lib_Var_Alignment Case 1;align left Text Ghz_Lib_Var_TextX,Ghz_Lib_Var_TextY + (FontHeight() * Ghz_Lib_Var_i),TextLine\Content Case 2;align right Text Ghz_Lib_Var_TextX - StringWidth(TextLine\Content),Ghz_Lib_Var_TextY + (FontHeight() * Ghz_Lib_Var_i),TextLine\Content Case 3;align center Text Ghz_Lib_Var_TextX,Ghz_Lib_Var_TextY + (FontHeight() * Ghz_Lib_Var_i),TextLine\Content,True End Select Ghz_Lib_Var_i = Ghz_Lib_Var_i + 1 Next Else Ghz_Lib_Var_i = 0 For TextLine.TextLine = Each TextLine Color 0,0,0 Select Ghz_Lib_Var_Alignment Case 1 Text Ghz_Lib_Var_TextX + Ghz_Lib_Var_FontShadow,Ghz_Lib_Var_TextY + Ghz_Lib_Var_FontShadow + (FontHeight() * Ghz_Lib_Var_i),TextLine\Content Case 2 Text Ghz_Lib_Var_TextX - StringWidth(TextLine\Content) + Ghz_Lib_Var_FontShadow,Ghz_Lib_Var_TextY + Ghz_Lib_Var_FontShadow + (FontHeight() * Ghz_Lib_Var_i),TextLine\Content Case 3 Text Ghz_Lib_Var_TextX + Ghz_Lib_Var_FontShadow,Ghz_Lib_Var_TextY + Ghz_Lib_Var_FontShadow + (FontHeight() * Ghz_Lib_Var_i),TextLine\Content,True End Select If Ghz_Lib_Var_TextR > -1 And Ghz_Lib_Var_TextG > -1 And Ghz_Lib_Var_TextB > -1 Color Ghz_Lib_Var_TextR,Ghz_Lib_Var_TextG,Ghz_Lib_Var_TextB Else Ghz_Lib_Var_TextR = Ghz_Lib_Var_CurrentRed Ghz_Lib_Var_TextG = Ghz_Lib_Var_CurrentGreen Ghz_Lib_Var_TextB = Ghz_Lib_Var_CurrentBlue Color Ghz_Lib_Var_TextR,Ghz_Lib_Var_TextG,Ghz_Lib_Var_TextB EndIf Select Ghz_Lib_Var_Alignment Case 1 Text Ghz_Lib_Var_TextX,Ghz_Lib_Var_TextY + (FontHeight() * Ghz_Lib_Var_i),TextLine\Content Case 2 Text Ghz_Lib_Var_TextX - StringWidth(TextLine\Content),Ghz_Lib_Var_TextY + (FontHeight() * Ghz_Lib_Var_i),TextLine\Content Case 3 Text Ghz_Lib_Var_TextX,Ghz_Lib_Var_TextY + (FontHeight() * Ghz_Lib_Var_i),TextLine\Content,True End Select Ghz_Lib_Var_i = Ghz_Lib_Var_i + 1 Next EndIf For TextLine.TextLine = Each TextLine Delete TextLine Next Color Ghz_Lib_Var_CurrentRed,Ghz_Lib_Var_CurrentGreen,Ghz_Lib_Var_CurrentBlue End Function ;T Function TimeAndDate$(Ghz_Lib_Var_12Hour = True) Local Ghz_Lib_Var_Hour$ = Left(CurrentTime(),2) If Ghz_Lib_Var_12Hour = True Select Ghz_Lib_Var_Hour Case "13" Ghz_Lib_Var_Hour = "1" Case "14" Ghz_Lib_Var_Hour = "2" Case "15" Ghz_Lib_Var_Hour = "3" Case "16" Ghz_Lib_Var_Hour = "4" Case "17" Ghz_Lib_Var_Hour = "5" Case "18" Ghz_Lib_Var_Hour = "6" Case "19' Ghz_Lib_Var_Hour = "7" Case "20" Ghz_Lib_Var_Hour = "8" Case "21" Ghz_Lib_Var_Hour = "9" Case "22" Ghz_Lib_Var_Hour = "10" Case "23" Ghz_Lib_Var_Hour = "11" Case "24" Ghz_Lib_Var_Hour = "12" Case "00" Ghz_Lib_Var_Hour = "12" End Select EndIf Local Ghz_Lib_Var_Time$ = Ghz_Lib_Var_Hour + Left(Right(CurrentTime(),6),3) Local Ghz_Lib_Var_Date$ = CurrentDate() Local Ghz_Lib_Var_TimeAndDate$ = Ghz_Lib_Var_Time + ", " + Ghz_Lib_Var_Date Return Ghz_Lib_Var_TimeAndDate End Function Function Triangle(Ghz_Lib_Var_Point1X,Ghz_Lib_Var_Point1Y,Ghz_Lib_Var_Point2X,Ghz_Lib_Var_Point2Y,Ghz_Lib_Var_Point3X,Ghz_Lib_Var_Point3Y) Line Ghz_Lib_Var_Point1X,Ghz_Lib_Var_Point1Y,Ghz_Lib_Var_Point2X,Ghz_Lib_Var_Point2Y Line Ghz_Lib_Var_Point2X,Ghz_Lib_Var_Point2Y,Ghz_Lib_Var_Point3X,Ghz_Lib_Var_Point3Y Line Ghz_Lib_Var_Point3X,Ghz_Lib_Var_Point3Y,Ghz_Lib_Var_Point1X,Ghz_Lib_Var_Point1Y End Function Function Tween#() Return Ghz_Lib_Var_Tween End Function ;U Function Unpack(Ghz_Lib_Var_PackName$) If Not FileType(Ghz_Lib_Var_PackName + ".ghzpak") = 1 If Ghz_Lib_Var_Interrupt = True RuntimeError("GHZLIB ERROR" + Chr(10) + "Package not found:" + Ghz_Lib_Var_PackName + ".ghzpak") Else Return -1 EndIf EndIf Local Ghz_Lib_Var_Package = ReadFile(Ghz_Lib_Var_PackName + ".ghzpak") Local Ghz_Lib_Var_CurrentLine$ Local Ghz_Lib_Var_File While Not Eof(Ghz_Lib_Var_Package) Ghz_Lib_Var_CurrentLine = ReadLine(Ghz_Lib_Var_Package) If Left(Ghz_Lib_Var_CurrentLine,21) = "//" + Chr(223) + "Ghz package file: " If Ghz_Lib_Var_File <> 0 CloseFile Ghz_Lib_Var_File EndIf CreateFile(Right(Ghz_Lib_Var_CurrentLine,Len(Ghz_Lib_Var_CurrentLine) - 21)) Ghz_Lib_Var_File = WriteFile(Right(Ghz_Lib_Var_CurrentLine,Len(Ghz_Lib_Var_CurrentLine) - 21)) Local Ghz_Lib_Var_FileSize = ReadInt(Ghz_Lib_Var_Package) For Ghz_Lib_Var_i = 1 To Ghz_Lib_Var_FileSize WriteByte(Ghz_Lib_Var_File,ReadByte(Ghz_Lib_Var_Package)) Next EndIf Wend CloseFile Ghz_Lib_Var_Package CloseFile Ghz_Lib_Var_File DeleteFile Ghz_Lib_Var_PackName + ".ghzpak" End Function Function UpdateTween(Ghz_Lib_Var_TargetFPS = 60) Ghz_Lib_Var_LastFrameTime = MilliSecs() - Ghz_Lib_Var_LastTweenFrame Ghz_Lib_Var_Tween = Float(Ghz_Lib_Var_LastFrameTime) / Float(1000 / Ghz_Lib_Var_TargetFPS) Ghz_Lib_Var_LastTweenFrame = MilliSecs();reset the timer End Function ;V Function VectorObjectExists(Ghz_Lib_Var_VectorID,Ghz_Lib_Var_ObjectID) For Vector.Vector = Each Vector If Vector\ID = Ghz_Lib_Var_VectorID For Vector\VectorObject.VectorObject = Each VectorObject If Vector\VectorObject\ID = Ghz_Lib_Var_ObjectID Then Return True Next Return False EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Graphic does not exist" Else Return -1 EndIf End Function Function VectorObjectFill(Ghz_Lib_Var_VectorID,Ghz_Lib_Var_ObjectID) For Vector.Vector = Each Vector If Vector\ID = Ghz_Lib_Var_VectorID For Vector\VectorObject.VectorObject = Each VectorObject If Vector\VectorObject\ID = Ghz_Lib_Var_ObjectID Return Vector\VectorObject\Fill EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Object does not exist" Else Return -2 EndIf EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Graphic does not exist" Else Return -1 EndIf End Function Function VectorObjectHeight(Ghz_Lib_Var_VectorID,Ghz_Lib_Var_ObjectID) For Vector.Vector = Each Vector If Vector\ID = Ghz_Lib_Var_VectorID For Vector\VectorObject.VectorObject = Each VectorObject If Vector\VectorObject\ID = Ghz_Lib_Var_ObjectID Return Vector\VectorObject\Height EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Object does not exist" Else Return -2 EndIf EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Graphic does not exist" Else Return -1 EndIf End Function Function VectorObjectColor$(Ghz_Lib_Var_VectorID,Ghz_Lib_Var_ObjectID) For Vector.Vector = Each Vector If Vector\ID = Ghz_Lib_Var_VectorID For Vector\VectorObject.VectorObject = Each VectorObject If Vector\VectorObject\ID = Ghz_Lib_Var_ObjectID Return Vector\VectorObject\ObjectColor EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Object does not exist" Else Return -2 EndIf EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Graphic does not exist" Else Return -1 EndIf End Function Function VectorObjectType(Ghz_Lib_Var_VectorID,Ghz_Lib_Var_ObjectID) For Vector.Vector = Each Vector If Vector\ID = Ghz_Lib_Var_VectorID For Vector\VectorObject.VectorObject = Each VectorObject If Vector\VectorObject\ID = Ghz_Lib_Var_ObjectID Return Vector\VectorObject\ObjectType EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Object does not exist" Else Return -2 EndIf EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Graphic does not exist" Else Return -1 EndIf End Function Function VectorObjectWidth(Ghz_Lib_Var_VectorID,Ghz_Lib_Var_ObjectID) For Vector.Vector = Each Vector If Vector\ID = Ghz_Lib_Var_VectorID For Vector\VectorObject.VectorObject = Each VectorObject If Vector\VectorObject\ID = Ghz_Lib_Var_ObjectID Return Vector\VectorObject\Width EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Object does not exist" Else Return -2 EndIf EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Graphic does not exist" Else Return -1 EndIf End Function Function VectorObjectX(Ghz_Lib_Var_VectorID,Ghz_Lib_Var_ObjectID) For Vector.Vector = Each Vector If Vector\ID = Ghz_Lib_Var_VectorID For Vector\VectorObject.VectorObject = Each VectorObject If Vector\VectorObject\ID = Ghz_Lib_Var_ObjectID Return Vector\VectorObject\X EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Object does not exist" Else Return -2 EndIf EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Graphic does not exist" Else Return -1 EndIf End Function Function VectorObjectY(Ghz_Lib_Var_VectorID,Ghz_Lib_Var_ObjectID) For Vector.Vector = Each Vector If Vector\ID = Ghz_Lib_Var_VectorID For Vector\VectorObject.VectorObject = Each VectorObject If Vector\VectorObject\ID = Ghz_Lib_Var_ObjectID Return Vector\VectorObject\Y EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Object does not exist" Else Return -2 EndIf EndIf Next If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "Vector Graphic does not exist" Else Return -1 EndIf End Function ;W Function WriteFileBytes(Ghz_Lib_Var_Source$,Ghz_Lib_Var_Dest$) If FileType(Ghz_Lib_Var_Source) <> 1 If Ghz_Lib_Var_Interrupt = True RuntimeError "GHZLIB ERROR" + Chr(10) + "File not found:" + Chr(10) + Ghz_Lib_Var_Source Else Return -1 EndIf EndIf Local Ghz_Lib_Var_SourceFile = ReadFile(Ghz_Lib_Var_Source$) Local Ghz_Lib_Var_DestFile = WriteFile(Ghz_Lib_Var_Dest$) Local Ghz_Lib_Var_Content$ = ReadByte(Ghz_Lib_Var_SourceFile) While Not Eof(Ghz_Lib_Var_SourceFile) Ghz_Lib_Var_Content = Ghz_Lib_Var_Content + "," + ReadByte(Ghz_Lib_Var_SourceFile) Wend WriteLine(Ghz_Lib_Var_DestFile,Ghz_Lib_Var_Content) CloseFile Ghz_Lib_Var_SourceFile CloseFile Ghz_Lib_Var_DestFile End Function ;X ;Y ;Z ;~IDEal Editor Parameters: ;~F#22#32#3A#5F#7C#90#9A#C9#D2#FC#109#112#12C#13A#144#169#17B#188#193#1CD ;~F#1E7#23C#25E#284#28D#296#2DC#306#322#338#34E#363#37D#38F#398#425#436#44F#468#480 ;~F#4A5#4B6#4BF#4CF#525#55C#57F#588#59A#5A7#5B4#5D4#5FC#60E#620#632#644#665#67F#694 ;~F#6A6#6C1#6D4#6F6#720#7C7#7D8#7EE#80D#82B#851#85A#8AC#8DC#8E7#8F1#918#924#93B#958 ;~F#975#992#9AF#9CC#9E9#A07 ;~C#Blitz3D