EnableExplicit ;######################### ;# ;# Project: Core File ;# Start: 23.01.2015 ;# Update: 27.02.2015 ;# Author: Autonomus ;# Copyright: Autonomus ;# ;######################### ;{ Source Code Log ; ; *** *** ; *** *** ; *** Core File *** ; *** *** ; *** *** ; ; ; + = Add, - = Remove, / = Change ; ; 23.01.2015 ; ; + Core Main Procedure ; + Date & Time [Core_Date.s, Core_Time.s] ; + Text Output (Debug or Requester) ; + Application Informations ; + Version Constant from the IDE [CompileCount] ; + Open Window [Window, Screen, WindowedScreen] ; + New System [Log-System] ; + [Core_List_Main()] and [Core_List_Log()] ; ; 27.01.2015 ; ; + Core_List_Main Functions [Add, Edit, Delete, Output] ; + Core_List_Log Functions [Add, Edit, Delete, Output] ; ; 28.01.2015 ; ; + Log-System Output ; ; 03.02.2015 ; ; / Core File is now an Include File ; ; 04.02.2015 ; ; / Customized the view of Core File Log ; ; 05.02.2015 ; ; + New view for Core File Log ; ; 15.02.2015 ; ; / FullRowSelect Parameter for Core File Log Output ; / Fixed the length of Core File Log for Line Output in Text File ; ; 16.02.2015 ; ; / Renamed some Variables ; + New ErrorMode integrated ["Silent", "Show"] ; + New view in Core File Log Text File ["Detail"] ; + Check [OS Name] and [OS Version] ; + Hardware Variables ; + Prepare Log List ; + Prepare Main List ; + First Tutorial for the Core File (Tutorial for Core File) ; / Expand the ["Edit", "Delete"] parameter for [Core_Main_List_Func()] and [Core_Log_List_Func()] with [id] ; ; ========================= ; ! Reached the first 1000th program line ; ========================= ; ; 17.02.2015 ; ; / Customized the Window with a better overview for [Core_Main_List_Func() -> Output] ; ; 18.02.2015 ; ; + New System Information available [GPU Name] ; + New System Information available [CPU Vendor] ; + New System Information available [CPU Name] ; + New System Information available [CPU Cores] ; + New System Information available [CPU Frequency] ; ; 19.02.2015 ; ; + Real-Time-Search for [Core_Main_List_Func() -> Output] ; + New System Information available [Computername] ; + New System Information available [CPU MMX] ; + New System Information available [CPU SSE] ; + New System Information available [CPU SSE2] ; + New System Information available [CPU SSE3] ; + New System Information available [CPU SSSE3] ; + New System Information available [CPU CMOVcc] ; + New System Information available [CPU 3DNow] ; + New System Information available [CPU Extended3DNow] ; + New System Information available [GPU VRAM] ; ; 20.02.2015 ; ; / Fixed [Core_Main_List_Func() -> Output] after using the Real-Time Search ; + FadeOut on Event CloseWindow ; + New Setting [Core_Set_Win_EffectOnClose] to choose an effect if the Window close ["Default", "FadeOut"] ; / Renamed some Variables ; + New Display-System Functions [Core_Display_ScreenActive()] and [Core_Display_ScreenInactive()] ; ; 21.02.2015 ; ; + Initialize various Libraries like [Sprite, Sprite3D, Keyboard, Mouse, Network] ; / Fixed a bug in [Display-System] ; ; ========================= ; ! Reached 2000th program line ; ========================= ; ; 22.02.2015 ; ; / Fixed position of WindowedScreen ; / Renamed Procedure [Core_Display_WindowShortcuts() -> Core_Display_Shortcuts()] ; / Renamed Procedure [Core_Display_WaitWindowEvent() -> Core_Display_WindowEvent()] ; + Load Fonts (first for Windows only) ; + Developer Console (On Screens, open with #PB_Key_Grave) ; + Screen-Info [Resolution, Color Quality, FPS] ; - Removed System Information [CPU CMOVcc] ; ; 23.02.2015 ; ; + New Function [Core_Func_Runtime()] ; / Fixed a bug in [Core_Check_CPU_Instructions()] ; + New System Information available [CPU Producer] ; ; ========================= ; ! Reached 3000th program line ; ========================= ; ; 24.02.2015 ; ; + New Parameters for [Core_Func_Runtime() -> "SecondsFloat", "SecsF"] ; + New optional Parameters for [Core_Display() -> "Width.i", "Height.i"] ; + New Parameter for [Core_Main_List_Func() -> "Update"] ; / Renamed Procedure [Core_Display_ScreenConsole() -> Core_Display_DevCon()] ; / Fixed bugs in [Display-System -> Core_Display_DevCon()] ; + New Setting [Core_Set_DevCon_Display] to [Hide] or [Show] the Developer Console ; + New Setting [Core_Set_DevCon_DisplayMethod] to choose how opens the Developer Console ; + New Setting [Core_Set_DevCon_Edge] to customized the edge of Developer Console ; + New Setting [Core_Set_DevCon_Transparency] for transparency of Developer Console ; + New Paramters for [Core_Main_List_Func() -> "Sum", "Sub", "Integer"] ; / Fixed a bug in [Core_Main_List_Func()] ; + New areas in [Core_Main() -> "Coordinates", "Colors"] ; ; ========================= ; ! Reached 4000th program line ; ========================= ; ; 25.02.2015 ; ; / Fixed DevCon Egde for various size ; + New Function for DevCon [Ctrl + PageDown = Set DevCon_Edge lower, Ctrl + PageUp = Set DevCon Transparency higher] ; + New Function for DevCon [Ctrl + L = Set DevCon_Edge lower, Ctrl + M = Set DevCon Edge higher] ; + New area in [Core_Main() -> "Mouse"] ; + New Function [Core_Func_Mouse()] ; + New Setting [Core_Set_DevCon_MoveOutOfScreen] to moving DevCon out of the screen ; + New Setting [Core_Set_DevCon_MoveMethod] to move DevCon ; ; 26.02.2015 ; ; / Fixed a bug in [Core_Display_Shortcuts()] ; + New Setting [Core_Set_ScreenInfo_Display] to display Screen Informations ; + New Setting [Core_Set_Mouse_Cursor] to change default mouse graphic ; - Removed Function [Core_Display_ScreenMouse()] ; ; 27.02.2015 ; ; + New System [DevCon-System] ; + New Setting [Core_Set_Mouse_CursorSize] ; + New Function [Core_Func_Keyboard()] ; ; ========================= ; ! Reached 5000th program line ; ========================= ; ;} ;{ Tutorial for Core File ; ; To use the Core File, use the PureBasic Keyword [IncludeFile ""] or [XIncludeFile ""] in your main source code. ; ; The Core File should help you by your projects. ; ; The Core File used Structures and Lists to manage Informations and Settings. ; To work with it, use the command [Core_Main_List_Func()] and one of the ; parameter you need ["Add", "Edit", "Delete", "Output"]. ; An Example: ; ; Core_Main_List_Func("Add") = to add some entries to the Main List ; ; Core_Main_List_Func("Edit") = to edit entries, type the exact [cat] and [entry] or [id] ; ; Core_Main_List_Func("Delete") = to delete entries, type the exact [cat] and [entry] or [id] ; ; Core_Main_List_Func("Output") = to view the content of Main List ; ; Core_Main_List_Func("Prepare") = to add Entries while execute Core File ; ; ; More to the parameters in the Area [Core-System -> Core_Main()]. ; ; The parameters above are the same for [Core_Log_List_Func()]. ; Use the same parameters to use the Log List. ; ; To save the Log from the [Log-System] use the command [Core_Log_List_Func("Output")]. ; The setting [Core_Main() -> Core_Log_Output.i] alllows you to save the Log as a Text File. ; With the setting [Core_Main() -> Core_Log_View.i] you can change the view of the Log. ; ;} ;{ Description of Procedures ; ; All Procedures in the Core File using the prefix [Core_]. ; I try to sort the Procedures by categories, e.g. [Core_Main_List, Core_Log_List, Core_Func(tion), ...]. ; ; Initialize: ; ; Core_Constants() = saves all constants for everything in Core File ; ; Core_Init() = initialize environments like [Sprite, Hardware-Acceleration, Keyboard, ...] ; ; Core_Font() = load and prepare fonts ; ; ; ; Preparation: ; ; Core_Check_OS() = here we check which OS is in use ; ; Core_Check_GPU() = this Procedure tell us which graphic card model is in use ; ; Core_Check_GPU_VRAM() = to get the size of video ram from the Windows-Registry ; ; Core_Check_CPU_Vendor() = prepare the manufactor alternatively the vendor of the Processor ; ; Core_Check_CPU_Name() = to get the model label of the Processor ; ; Core_Check_CPU_MHz() = gives us the Processor Frequency in MHz ; ; Core_Check_CPU_Instructions() = informations about the CPU Support like [MMX, SSE, SSE2, SSE3, ...] ; ; ; ; Core-System: ; ; Core_Main() = saves all [Core_] variables and Settings of Core File ; ; Core_Main_List() = creates the [Structure] and [List] for Core-System ; ; Core_Main_List_Func(Func.s) = has 5 Functions [Add, Edit, Delete, Output, Prepare] ; ; Add = adds new elements to the [Core_Main_List()] ; ; Edit = edit exists elements by [cat] and [entry] or [id] ; ; Delete = either delete complete elements or the content of an element ; ; Prepare = here we can "prepare" first elements manual to [Core_Main_List()] ; ; ; ; Core_Func_Runtime: ; ; Core_Func_Runtime(Func.s) = has 6 Functions [Init, Prepare, Milliseconds, Seconds, Minutes, SecondsFloat] ; ; = to manipulate the Runtime, change [Core_Main() -> Core_RuntimeSpeed.i] ; ; Init = initialization of Runtime, use below of a Repeat ; ; Prepare = prepare a String with elapsed Mins and Secs, use [Core_Run_Display.s] ; ; Milliseconds = to get elapsed Milliseconds ; ; Seconds = to get elapsed Seconds ; ; Minutes = to get elapsed Minutes ; ; SecondsFloat = to use with Var [Core_Run_SecsF.s] to output 1.23, 1.24, 1.25, ... ; ; ; ; ;} ;{ Initialize Declare Core_Func_FileCreate(File.i = 0, Filename.s = "") Declare Core_Func_RTSearch_CoreListMain(Parameter) Declare Core_Func_Win_CloseFadeOut(Win) Declare Core_Func_Runtime(Func.s = "") Declare Core_Func_Mouse(Func.s = "") Procedure Core_Constants() Enumeration ; Graphics #Core_GFX_Mouse #Core_GFX_Mouse3D #Core_GFX_Mouse_90GradeArrow #Core_GFX_Mouse3D_90GradeArrow #Core_GFX_Mouse_ModernArrow #Core_GFX_Mouse3D_ModernArrow #Core_GFX_Mouse_ModernArrowThin #Core_GFX_Mouse3D_ModernArrowThin #Core_GFX_Mouse_Crosshair #Core_GFX_Mouse3D_Crosshair #Core_GFX_Mouse_CrosshairThin #Core_GFX_Mouse3D_CrosshairThin #Core_GFX_DevCon #Core_GFX_DevCon3D #Core_GFX_DevCon_Edge3 #Core_GFX_DevCon3D_Edge3 #Core_GFX_DevCon_Edge4 #Core_GFX_DevCon3D_Edge4 #Core_GFX_DevCon_Edge5 #Core_GFX_DevCon3D_Edge5 #Core_GFX_DevCon_Edge6 #Core_GFX_DevCon3D_Edge6 #Core_GFX_DevCon_Edge7 #Core_GFX_DevCon3D_Edge7 #Core_GFX_DevCon_Edge8 #Core_GFX_DevCon3D_Edge8 #Core_GFX_DevCon_Edge9 #Core_GFX_DevCon3D_Edge9 #Core_GFX_DevCon_Edge10 #Core_GFX_DevCon3D_Edge10 #Core_GFX_DevCon_Edge11 #Core_GFX_DevCon3D_Edge11 #Core_GFX_DevCon_Edge12 #Core_GFX_DevCon3D_Edge12 #Core_GFX_DevCon_Edge13 #Core_GFX_DevCon3D_Edge13 #Core_GFX_DevCon_Edge14 #Core_GFX_DevCon3D_Edge14 #Core_GFX_DevCon_Edge15 #Core_GFX_DevCon3D_Edge15 #Core_GFX_DevCon_Edge16 #Core_GFX_DevCon3D_Edge16 #Core_GFX_DevCon_Edge17 #Core_GFX_DevCon3D_Edge17 #Core_GFX_DevCon_Edge18 #Core_GFX_DevCon3D_Edge18 #Core_GFX_DevCon_Edge19 #Core_GFX_DevCon3D_Edge19 #Core_GFX_DevCon_Edge20 #Core_GFX_DevCon3D_Edge20 ; Fonts #Core_Font_Arial_6 #Core_Font_Arial_6_Bold #Core_Font_Arial_6_Italic #Core_Font_Arial_7 #Core_Font_Arial_7_Bold #Core_Font_Arial_7_Italic #Core_Font_Arial_8 #Core_Font_Arial_8_Bold #Core_Font_Arial_8_Italic #Core_Font_Arial_9 #Core_Font_Arial_9_Bold #Core_Font_Arial_9_Italic #Core_Font_Arial_10 #Core_Font_Arial_10_Bold #Core_Font_Arial_10_Italic #Core_Font_Arial_11 #Core_Font_Arial_11_Bold #Core_Font_Arial_11_Italic #Core_Font_Arial_12 #Core_Font_Arial_12_Bold #Core_Font_Arial_12_Italic #Core_Font_Arial_13 #Core_Font_Arial_13_Bold #Core_Font_Arial_13_Italic #Core_Font_Arial_14 #Core_Font_Arial_14_Bold #Core_Font_Arial_14_Italic #Core_Font_Arial_15 #Core_Font_Arial_15_Bold #Core_Font_Arial_15_Italic #Core_Font_Arial_16 #Core_Font_Arial_16_Bold #Core_Font_Arial_16_Italic #Core_Font_Arial_17 #Core_Font_Arial_17_Bold #Core_Font_Arial_17_Italic #Core_Font_Arial_18 #Core_Font_Arial_18_Bold #Core_Font_Arial_18_Italic ; Core-System #Core_Main_File #Core_Main_Window ; Log-System #Core_Log_File #Core_Log_Window ; Main List Output #Core_Gadget_Main_List_Information #Core_Gadget_Main_List_Entries #Core_Gadget_Main_List_Entries_Text #Core_Gadget_Main_List_Cat #Core_Gadget_Main_List_Cat_Text #Core_Gadget_Main_List_Size #Core_Gadget_Main_List_Size_Text #Core_Gadget_Main_List_Options #Core_Gadget_Main_List_Search #Core_Gadget_Main_List_Search_Input #Core_Gadget_Main_List_Search_Btn #Core_Gadget_Main_List_Search_Result #Core_Gadget_Main_List_Search_Result_Text #Core_Gadget_Main_List_Export #Core_Gadget_Main_List_Export_TextFile_Btn #Core_Gadget_Main_List_Export_XMLFile_Btn #Core_Gadget_Main_List_ListIcon EndEnumeration EndProcedure Procedure Core_Init() Global Core_Sprite.i Global Core_Sprite3D.i Global Core_Keyboard.i Global Core_Mouse.i Global Core_Network.i If InitSprite() Core_Sprite.i = 1 Else Core_Sprite.i = 0 MessageRequester("Core File - Error", "Can't initialize DirectX") EndIf If InitSprite3D() Core_Sprite3D.i = 1 Else Core_Sprite3D.i = 0 MessageRequester("Core File - Error", "Can't initialize Hardware-Acceleration") EndIf If InitKeyboard() Core_Keyboard.i = 1 Else Core_Keyboard.i = 0 MessageRequester("Core File - Error", "Can't initialize Keyboard") EndIf If InitMouse() Core_Mouse.i = 1 Else Core_Mouse.i = 0 MessageRequester("Core File - Error", "Can't initialize Mouse") EndIf If InitNetwork() Core_Network.i = 1 Else Core_Network.i = 0 MessageRequester("Core File - Error", "Can't initialize Network") EndIf EndProcedure Procedure Core_Font() CompilerIf #PB_Compiler_OS = #PB_OS_Windows Global Core_Font_Arial_6.i = LoadFont(#Core_Font_Arial_6, "Arial", 6) Global Core_Font_Arial_6_Bold.i = LoadFont(#Core_Font_Arial_6_Bold, "Arial", 6, #PB_Font_Bold) Global Core_Font_Arial_6_Italic.i = LoadFont(#Core_Font_Arial_6_Italic, "Arial", 6, #PB_Font_Italic) Global Core_Font_Arial_7.i = LoadFont(#Core_Font_Arial_7, "Arial", 7) Global Core_Font_Arial_7_Bold.i = LoadFont(#Core_Font_Arial_7_Bold, "Arial", 7, #PB_Font_Bold) Global Core_Font_Arial_7_Italic.i = LoadFont(#Core_Font_Arial_7_Italic, "Arial", 7, #PB_Font_Italic) Global Core_Font_Arial_8.i = LoadFont(#Core_Font_Arial_8, "Arial", 8) Global Core_Font_Arial_8_Bold.i = LoadFont(#Core_Font_Arial_8_Bold, "Arial", 8, #PB_Font_Bold) Global Core_Font_Arial_8_Italic.i = LoadFont(#Core_Font_Arial_8_Italic, "Arial", 8, #PB_Font_Italic) Global Core_Font_Arial_9.i = LoadFont(#Core_Font_Arial_9, "Arial", 9) Global Core_Font_Arial_9_Bold.i = LoadFont(#Core_Font_Arial_9_Bold, "Arial", 9, #PB_Font_Bold) Global Core_Font_Arial_9_Italic.i = LoadFont(#Core_Font_Arial_9_Italic, "Arial", 9, #PB_Font_Italic) Global Core_Font_Arial_10.i = LoadFont(#Core_Font_Arial_10, "Arial", 10) Global Core_Font_Arial_10_Bold.i = LoadFont(#Core_Font_Arial_10_Bold, "Arial", 10, #PB_Font_Bold) Global Core_Font_Arial_10_Italic.i = LoadFont(#Core_Font_Arial_10_Italic, "Arial", 10, #PB_Font_Italic) Global Core_Font_Arial_11.i = LoadFont(#Core_Font_Arial_11, "Arial", 11) Global Core_Font_Arial_11_Bold.i = LoadFont(#Core_Font_Arial_11_Bold, "Arial", 11, #PB_Font_Bold) Global Core_Font_Arial_11_Italic.i = LoadFont(#Core_Font_Arial_11_Italic, "Arial", 11, #PB_Font_Italic) Global Core_Font_Arial_12.i = LoadFont(#Core_Font_Arial_12, "Arial", 12) Global Core_Font_Arial_12_Bold.i = LoadFont(#Core_Font_Arial_12_Bold, "Arial", 12, #PB_Font_Bold) Global Core_Font_Arial_12_Italic.i = LoadFont(#Core_Font_Arial_12_Italic, "Arial", 12, #PB_Font_Italic) Global Core_Font_Arial_13.i = LoadFont(#Core_Font_Arial_13, "Arial", 13) Global Core_Font_Arial_13_Bold.i = LoadFont(#Core_Font_Arial_13_Bold, "Arial", 13, #PB_Font_Bold) Global Core_Font_Arial_13_Italic.i = LoadFont(#Core_Font_Arial_13_Italic, "Arial", 13, #PB_Font_Italic) Global Core_Font_Arial_14.i = LoadFont(#Core_Font_Arial_14, "Arial", 14) Global Core_Font_Arial_14_Bold.i = LoadFont(#Core_Font_Arial_14_Bold, "Arial", 14, #PB_Font_Bold) Global Core_Font_Arial_14_Italic.i = LoadFont(#Core_Font_Arial_14_Italic, "Arial", 14, #PB_Font_Italic) Global Core_Font_Arial_15.i = LoadFont(#Core_Font_Arial_15, "Arial", 15) Global Core_Font_Arial_15_Bold.i = LoadFont(#Core_Font_Arial_15_Bold, "Arial", 15, #PB_Font_Bold) Global Core_Font_Arial_15_Italic.i = LoadFont(#Core_Font_Arial_15_Italic, "Arial", 15, #PB_Font_Italic) Global Core_Font_Arial_16.i = LoadFont(#Core_Font_Arial_16, "Arial", 16) Global Core_Font_Arial_16_Bold.i = LoadFont(#Core_Font_Arial_16_Bold, "Arial", 16, #PB_Font_Bold) Global Core_Font_Arial_16_Italic.i = LoadFont(#Core_Font_Arial_16_Italic, "Arial", 16, #PB_Font_Italic) Global Core_Font_Arial_17.i = LoadFont(#Core_Font_Arial_17, "Arial", 17) Global Core_Font_Arial_17_Bold.i = LoadFont(#Core_Font_Arial_17_Bold, "Arial", 17, #PB_Font_Bold) Global Core_Font_Arial_17_Italic.i = LoadFont(#Core_Font_Arial_17_Italic, "Arial", 17, #PB_Font_Italic) Global Core_Font_Arial_18.i = LoadFont(#Core_Font_Arial_18, "Arial", 18) Global Core_Font_Arial_18_Bold.i = LoadFont(#Core_Font_Arial_18_Bold, "Arial", 18, #PB_Font_Bold) Global Core_Font_Arial_18_Italic.i = LoadFont(#Core_Font_Arial_18_Italic, "Arial", 18, #PB_Font_Italic) CompilerEndIf EndProcedure ;} ;{ Preparation ;{ OS Procedure Core_Check_OS() Global Core_OS_Name.s = "" Global Core_OS_Version.i = 0 Select OSVersion() ; Windows Case #PB_OS_Windows_NT3_51 : Core_OS_Name.s = "Windows NT 3.51" : Core_OS_Version.i = OSVersion() Case #PB_OS_Windows_95 : Core_OS_Name.s = "Windows 95" : Core_OS_Version.i = OSVersion() Case #PB_OS_Windows_NT_4 : Core_OS_Name.s = "Windows NT 4" : Core_OS_Version.i = OSVersion() Case #PB_OS_Windows_98 : Core_OS_Name.s = "Windows 98" : Core_OS_Version.i = OSVersion() Case #PB_OS_Windows_ME : Core_OS_Name.s = "Windows ME" : Core_OS_Version.i = OSVersion() Case #PB_OS_Windows_2000 : Core_OS_Name.s = "Windows 2000" : Core_OS_Version.i = OSVersion() Case #PB_OS_Windows_XP : Core_OS_Name.s = "Windows XP" : Core_OS_Version.i = OSVersion() Case #PB_OS_Windows_Server_2003 : Core_OS_Name.s = "Windows Server 2003" : Core_OS_Version.i = OSVersion() Case #PB_OS_Windows_Vista : Core_OS_Name.s = "Windows Vista" : Core_OS_Version.i = OSVersion() Case #PB_OS_Windows_Server_2008 : Core_OS_Name.s = "Windows Server 2008" : Core_OS_Version.i = OSVersion() Case #PB_OS_Windows_7 : Core_OS_Name.s = "Windows 7" : Core_OS_Version.i = OSVersion() Case #PB_OS_Windows_Server_2008_R2 : Core_OS_Name.s = "Windows Server 2008 R2" : Core_OS_Version.i = OSVersion() Case #PB_OS_Windows_8 : Core_OS_Name.s = "Windows 8" : Core_OS_Version.i = OSVersion() Case #PB_OS_Windows_Server_2012 : Core_OS_Name.s = "Windows Server 2012" : Core_OS_Version.i = OSVersion() Case #PB_OS_Windows_Future : Core_OS_Name.s = "Windows unbekannt" : Core_OS_Version.i = OSVersion() ; Linux Case #PB_OS_Linux_2_2 : Core_OS_Name.s = "Linux 2.2" : Core_OS_Version.i = OSVersion() Case #PB_OS_Linux_2_4 : Core_OS_Name.s = "Linux 2.4" : Core_OS_Version.i = OSVersion() Case #PB_OS_Linux_2_6 : Core_OS_Name.s = "Linux 2.6" : Core_OS_Version.i = OSVersion() Case #PB_OS_Linux_Future : Core_OS_Name.s = "Linux unbekannt" : Core_OS_Version.i = OSVersion() ; MacOSX Case #PB_OS_MacOSX_10_0 : Core_OS_Name.s = "MacOSX 10.0 " : Core_OS_Version.i = OSVersion() Case #PB_OS_MacOSX_10_1 : Core_OS_Name.s = "MacOSX 10.1 " : Core_OS_Version.i = OSVersion() Case #PB_OS_MacOSX_10_2 : Core_OS_Name.s = "MacOSX 10.2 " : Core_OS_Version.i = OSVersion() Case #PB_OS_MacOSX_10_3 : Core_OS_Name.s = "MacOSX 10.3 " : Core_OS_Version.i = OSVersion() Case #PB_OS_MacOSX_10_4 : Core_OS_Name.s = "MacOSX 10.4 " : Core_OS_Version.i = OSVersion() Case #PB_OS_MacOSX_10_5 : Core_OS_Name.s = "MacOSX 10.5 " : Core_OS_Version.i = OSVersion() Case #PB_OS_MacOSX_10_6 : Core_OS_Name.s = "MacOSX 10.6 " : Core_OS_Version.i = OSVersion() Case #PB_OS_MacOSX_10_7 : Core_OS_Name.s = "MacOSX 10.7 " : Core_OS_Version.i = OSVersion() Case #PB_OS_MacOSX_10_8 : Core_OS_Name.s = "MacOSX 10.8 " : Core_OS_Version.i = OSVersion() Case #PB_OS_MacOSX_Future : Core_OS_Name.s = "MacOSX unbekannt " : Core_OS_Version.i = OSVersion() EndSelect EndProcedure ;} ;{ GPU Procedure Core_Check_GPU_Name() Global Core_GPU_Name.s ; Code by RS-Basic Protected device.DISPLAY_DEVICE Protected settings.DEVMODE device\cb = SizeOf(DISPLAY_DEVICE) settings\dmSize = SizeOf(DEVMODE) EnumDisplayDevices_(#Null,#Null,device,#Null) Core_GPU_Name.s = PeekS(@device\DeviceString,128) EndProcedure ;{ Prepare Check GPU VRAM ; Code by Hi-Toro (All Procedures) Procedure GetWindowsFamily() Define.OSVERSIONINFO os os\dwOSVersionInfoSize = SizeOf(OSVERSIONINFO) GetVersionEx_(@os) ProcedureReturn os\dwPlatformId EndProcedure Procedure VideoMemory() Select GetWindowsFamily () Case #VER_PLATFORM_WIN32_NT If RegOpenKeyEx_ (#HKEY_LOCAL_MACHINE, "HARDWARE\DEVICEMAP\VIDEO", 0, #KEY_READ, @vidkey) = #ERROR_SUCCESS If RegQueryValueEx_ (vidkey, "\Device\Video0", #Null, #Null, #Null, @size) = #ERROR_SUCCESS firstvid$ = Space (size) If RegQueryValueEx_ (vidkey, "\Device\Video0", #Null, #Null, @firstvid$, @size) = #ERROR_SUCCESS If LCase (Left (firstvid$, 18)) = "\registry\machine\" firstdev$ = Right (firstvid$, Len (firstvid$) - 18) EndIf If RegOpenKeyEx_ (#HKEY_LOCAL_MACHINE, firstdev$, 0, #KEY_READ, @devkey) = #ERROR_SUCCESS RegQueryValueEx_ (devkey, "HardwareInformation.MemorySize", #Null, #Null, @totalmem, @size) ; totalmem contains memory size or 0... RegCloseKey_ (devkey) EndIf EndIf EndIf RegCloseKey_ (vidkey) EndIf Case #VER_PLATFORM_WIN32_WINDOWS If RegOpenKeyEx_ (#HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Services\Class\Display\0000\INFO", 0, #KEY_READ, @vidkey) = #ERROR_SUCCESS If RegQueryValueEx_ (vidkey, "VideoMemory", #Null, #Null, #Null, @size) = #ERROR_SUCCESS firstvid$ = Space (size) RegQueryValueEx_ (vidkey, "VideoMemory", #Null, #Null, @totalmem, @size) ; totalmem contains memory size or 0... EndIf RegCloseKey_ (vidkey) EndIf EndSelect ProcedureReturn totalmem EndProcedure ;} Procedure Core_Check_GPU_VRAM() Global Core_GPU_VRAM.i = VideoMemory() / (1024 * 1024) EndProcedure ;} ;{ CPU Procedure.s Core_Check_CPU_Producer() ; Code by ts-soft Protected sBuffer.s Protected Zeiger1.l, Zeiger2.l, Zeiger3.l ! MOV EAX, 0 ! CPUID ; the VendorID is now stored in EBX-EDX-ECX ; very important, first move all results to a save place. ! MOV [p.v_Zeiger1], EBX ; move ebx to the buffer ! MOV [p.v_Zeiger2], EDX ; move edx to the buffer ! MOV [p.v_Zeiger3], ECX ; move ecx to the buffer sBuffer = PeekS(@Zeiger1, 4, #PB_Ascii) sBuffer + PeekS(@Zeiger2, 4, #PB_Ascii) sBuffer + PeekS(@Zeiger3, 4, #PB_Ascii) If FindString(sBuffer, "Intel") <> 0 Producer.s = "Intel" ElseIf FindString(sBuffer, "AMD") <> 0 Producer.s = "AMD" EndIf ProcedureReturn Producer.s EndProcedure Procedure.s Core_Check_CPU_Vendor() ; Code by ts-soft Protected sBuffer.s Protected Zeiger1.l, Zeiger2.l, Zeiger3.l ! MOV EAX, 0 ! CPUID ; the VendorID is now stored in EBX-EDX-ECX ; very important, first move all results to a save place. ! MOV [p.v_Zeiger1], EBX ; move ebx to the buffer ! MOV [p.v_Zeiger2], EDX ; move edx to the buffer ! MOV [p.v_Zeiger3], ECX ; move ecx to the buffer sBuffer = PeekS(@Zeiger1, 4, #PB_Ascii) sBuffer + PeekS(@Zeiger2, 4, #PB_Ascii) sBuffer + PeekS(@Zeiger3, 4, #PB_Ascii) ProcedureReturn sBuffer EndProcedure Procedure.s Core_Check_CPU_Name_Old() ; Code by ts-soft Protected sBuffer.s Protected Zeiger1.l, Zeiger2.l, Zeiger3.l, Zeiger4.l !MOV eax, $80000002 !CPUID ; the CPU-Name is now stored in EAX-EBX-ECX-EDX !MOV [p.v_Zeiger1], EAX ; move eax to the buffer !MOV [p.v_Zeiger2], EBX ; move ebx to the buffer !MOV [p.v_Zeiger3], ECX ; move ecx to the buffer !MOV [p.v_Zeiger4], EDX ; move edx to the buffer ;Now move the content of Zeiger (4*4=16 Bytes to a string sBuffer = PeekS(@Zeiger1, 4, #PB_Ascii) sBuffer + PeekS(@Zeiger2, 4, #PB_Ascii) sBuffer + PeekS(@Zeiger3, 4, #PB_Ascii) sBuffer + PeekS(@Zeiger4, 4, #PB_Ascii) ;Second Part of the Name !MOV eax, $80000003 !CPUID ; the CPU-Name is now stored in EAX-EBX-ECX-EDX !MOV [p.v_Zeiger1], EAX ; move eax to the buffer !MOV [p.v_Zeiger2], EBX ; move ebx to the buffer !MOV [p.v_Zeiger3], ECX ; move ecx to the buffer !MOV [p.v_Zeiger4], EDX ; move edx to the buffer ;Now move the content of Zeiger (4*4=16 Bytes to a string sBuffer + PeekS(@Zeiger1, 4, #PB_Ascii) sBuffer + PeekS(@Zeiger2, 4, #PB_Ascii) sBuffer + PeekS(@Zeiger3, 4, #PB_Ascii) sBuffer + PeekS(@Zeiger4, 4, #PB_Ascii) ;Third Part of the Name !MOV eax, $80000004 !CPUID ; the CPU-Name is now stored in EAX-EBX-ECX-EDX !MOV [p.v_Zeiger1], EAX ; move eax to the buffer !MOV [p.v_Zeiger2], EBX ; move ebx to the buffer !MOV [p.v_Zeiger3], ECX ; move ecx to the buffer !MOV [p.v_Zeiger4], EDX ; move edx to the buffer ;Now move the content of Zeiger (4*4=16 Bytes to a string sBuffer + PeekS(@Zeiger1, 4, #PB_Ascii) sBuffer + PeekS(@Zeiger2, 4, #PB_Ascii) sBuffer + PeekS(@Zeiger3, 4, #PB_Ascii) sBuffer + PeekS(@Zeiger4, 4, #PB_Ascii) ProcedureReturn sBuffer EndProcedure ;{ Prepare Check CPU Name Procedure Core_Check_CPU(StrAdd) ; Code by Helle & ts-soft !mov eax,80000000h ;Test, ob CPU aktuell genug ist um den String zu liefern !cpuid !cmp eax,80000004h !jae @f ;alles o.K. !xor eax,eax ;Rückgabewert = Null für eventuelle Auswertung Fehlschlag ProcedureReturn !@@: !mov esi,[p.v_StrAdd] !xor edi,edi !@@: !mov eax,80000002h !add eax,edi !cpuid !mov [esi],eax !mov [esi+4],ebx !mov [esi+8],ecx !mov [esi+12],edx !inc edi !cmp edi,3 !je @f !add esi,16 !jmp @b !@@: !mov eax,1 ;Rückgabewert <> Null für Erfolg ProcedureReturn EndProcedure ;} Procedure.s Core_Check_CPU_Name() Define CPUStr = AllocateMemory(48) If CPUStr Core_Check_CPU(CPUStr) EndIf ProcedureReturn PeekS(CPUStr, -1, #PB_Ascii) FreeMemory(CPUStr) EndProcedure Procedure.l Core_Check_CPU_MHz() ; Code by akj ; Returns CPU speed in MHz Protected A.q, B.q !RDTSC !MOV dword [p.v_A+4],Edx ; A hi !MOV dword [p.v_A],Eax ; A lo Sleep_(100) !RDTSC !MOV dword [p.v_B+4],Edx ; B hi !MOV dword [p.v_B],Eax ; B lo ProcedureReturn (B-A)/100000 EndProcedure ;{ Check CPU Flags (By THorium, Cross-platform, x86, x64) Procedure.i Core_CPUID_Supported() CompilerSelect #PB_Compiler_Processor CompilerCase #PB_Processor_x86 !pushfd !pop eax !mov edx,eax !xor eax,$00200000 !push eax !popfd !pushfd !pop eax !xor eax,edx !jne Core_CPUID_Supported !xor eax,eax ProcedureReturn !Core_CPUID_Supported: !mov eax,1 ProcedureReturn CompilerCase #PB_Processor_x64 ProcedureReturn #True CompilerEndSelect EndProcedure Procedure.i Core_CPU_MMX_Supported() CompilerSelect #PB_Compiler_Processor CompilerCase #PB_Processor_x86 !mov eax,1 !push ebx !cpuid !pop ebx !test edx,$00800000 !jne Core_CPU_MMX_Supported !xor eax,eax ProcedureReturn !Core_CPU_MMX_Supported: !mov eax,1 ProcedureReturn CompilerCase #PB_Processor_x64 !mov rax,1 !push rbx !cpuid !pop rbx !test edx,$00800000 !jne Core_CPU_MMX_Supported !xor rax,rax ProcedureReturn !Core_CPU_MMX_Supported: !mov rax,1 ProcedureReturn CompilerEndSelect EndProcedure Procedure.i Core_CPU_SSE_Supported() CompilerSelect #PB_Compiler_Processor CompilerCase #PB_Processor_x86 !mov eax,1 !push ebx !cpuid !pop ebx !test edx,$02000000 !jne Core_CPU_SSE_Supported !xor eax,eax ProcedureReturn !Core_CPU_SSE_Supported: !mov eax,1 ProcedureReturn CompilerCase #PB_Processor_x64 !mov rax,1 !push rbx !cpuid !pop rbx !test edx,$02000000 !jne Core_CPU_SSE_Supported !xor rax,rax ProcedureReturn !Core_CPU_SSE_Supported: !mov rax,1 ProcedureReturn CompilerEndSelect EndProcedure Procedure.i Core_CPU_SSE2_Supported() CompilerSelect #PB_Compiler_Processor CompilerCase #PB_Processor_x86 !mov eax,1 !push ebx !cpuid !pop ebx !test edx,$04000000 !jne Core_CPU_SSE2_Supported !xor eax,eax ProcedureReturn !Core_CPU_SSE2_Supported: !mov eax,1 ProcedureReturn CompilerCase #PB_Processor_x64 !mov rax,1 !push rbx !cpuid !pop rbx !test edx,$04000000 !jne Core_CPU_SSE2_Supported !xor rax,rax ProcedureReturn !Core_CPU_SSE2_Supported: !mov rax,1 ProcedureReturn CompilerEndSelect EndProcedure Procedure.i Core_CPU_SSE3_Supported() CompilerSelect #PB_Compiler_Processor CompilerCase #PB_Processor_x86 !mov eax,1 !push ebx !cpuid !pop ebx !test ecx,$00000001 !jne Core_CPU_SSE3_Supported !xor eax,eax ProcedureReturn !Core_CPU_SSE3_Supported: !mov eax,1 ProcedureReturn CompilerCase #PB_Processor_x64 !mov rax,1 !push rbx !cpuid !pop rbx !test ecx,$00000001 !jne Core_CPU_SSE3_Supported !xor rax,rax ProcedureReturn !Core_CPU_SSE3_Supported: !mov rax,1 ProcedureReturn CompilerEndSelect EndProcedure Procedure.i Core_CPU_SSSE3_Supported() CompilerSelect #PB_Compiler_Processor CompilerCase #PB_Processor_x86 !mov eax,1 !push ebx !cpuid !pop ebx !test ecx,$00000200 !jne Core_CPU_SSSE3_Supported !xor eax,eax ProcedureReturn !Core_CPU_SSSE3_Supported: !mov eax,1 ProcedureReturn CompilerCase #PB_Processor_x64 !mov rax,1 !push rbx !cpuid !pop rbx !test ecx,$00000200 !jne Core_CPU_SSSE3_Supported !xor rax,rax ProcedureReturn !Core_CPU_SSSE3_Supported: !mov rax,1 ProcedureReturn CompilerEndSelect EndProcedure Procedure.i Core_CPU_SSE41_Supported() CompilerSelect #PB_Compiler_Processor CompilerCase #PB_Processor_x86 !mov eax,1 !push ebx !cpuid !pop ebx !test ecx,$00080000 !jne Core_CPU_SSE41_Supported !xor eax,eax ProcedureReturn !Core_CPU_SSE41_Supported: !mov eax,1 ProcedureReturn CompilerCase #PB_Processor_x64 !mov rax,1 !push rbx !cpuid !pop rbx !test ecx,$00080000 !jne Core_CPU_SSE41_Supported !xor rax,rax ProcedureReturn !Core_CPU_SSE41_Supported: !mov rax,1 ProcedureReturn CompilerEndSelect EndProcedure Procedure.i Core_CPU_SSE42_Supported() CompilerSelect #PB_Compiler_Processor CompilerCase #PB_Processor_x86 !mov eax,1 !push ebx !cpuid !pop ebx !test ecx,$00100000 !jne Core_CPU_SSE42_Supported !xor eax,eax ProcedureReturn !Core_CPU_SSE42_Supported: !mov eax,1 ProcedureReturn CompilerCase #PB_Processor_x64 !mov rax,1 !push rbx !cpuid !pop rbx !test ecx,$00100000 !jne Core_CPU_SSE42_Supported !xor rax,rax ProcedureReturn !Core_CPU_SSE42_Supported: !mov rax,1 ProcedureReturn CompilerEndSelect EndProcedure ; Code By Autonomus Procedure.i Core_CPU_3DNow_Supported() CompilerSelect #PB_Compiler_Processor CompilerCase #PB_Processor_x86 !mov eax,1 !push ebx !cpuid !pop ebx !test ecx,$80000000 !jne Core_CPU_3DNow_Supported !xor eax,eax ProcedureReturn !Core_CPU_3DNow_Supported: !mov eax,1 ProcedureReturn CompilerCase #PB_Processor_x64 !mov rax,1 !push rbx !cpuid !pop rbx !test ecx,$80000000 !jne Core_CPU_3DNow_Supported !xor rax,rax ProcedureReturn !Core_CPU_3DNow_Supported: !mov rax,1 ProcedureReturn CompilerEndSelect EndProcedure Procedure.i Core_CPU_Ext3DNow_Supported() CompilerSelect #PB_Compiler_Processor CompilerCase #PB_Processor_x86 !mov eax,1 !push ebx !cpuid !pop ebx !test ecx,$40000000 !jne Core_CPU_Ext3DNow_Supported !xor eax,eax ProcedureReturn !Core_CPU_Ext3DNow_Supported: !mov eax,1 ProcedureReturn CompilerCase #PB_Processor_x64 !mov rax,1 !push rbx !cpuid !pop rbx !test ecx,$40000000 !jne Core_CPU_Ext3DNow_Supported !xor rax,rax ProcedureReturn !Core_CPU_Ext3DNow_Supported: !mov rax,1 ProcedureReturn CompilerEndSelect EndProcedure Procedure Core_Check_CPU_Flags() If Core_CPUID_Supported() = #True If Core_CPU_MMX_Supported() <> 0 Global Core_CPU_MMX_Str.s = "MMX Supported" Else Global Core_CPU_MMX_Str.s = "MMX Unsuporrted" EndIf If Core_CPU_SSE_Supported() <> 0 Global Core_CPU_SSE_Str.s = "SSE Supported" Else Global Core_CPU_SSE_Str.s = "SSE Unsuporrted" EndIf If Core_CPU_SSE2_Supported() <> 0 Global Core_CPU_SSE2_Str.s = "SSE2 Supported" Else Global Core_CPU_SSE2_Str.s = "SSE2 Unsuporrted" EndIf If Core_CPU_SSE3_Supported() <> 0 Global Core_CPU_SSE3_Str.s = "SSE3 Supported" Else Global Core_CPU_SSE3_Str.s = "SSE3 Unsuporrted" EndIf If Core_CPU_SSSE3_Supported() <> 0 Global Core_CPU_SSSE3_Str.s = "SSSE3 Supported" Else Global Core_CPU_SSSE3_Str.s = "SSSE3 Unsuporrted" EndIf If Core_CPU_SSE41_Supported() <> 0 Global Core_CPU_SSE41_Str.s = "SSE4.1 Supported" Else Global Core_CPU_SSE41_Str.s = "SSE4.1 Unsuporrted" EndIf If Core_CPU_SSE42_Supported() <> 0 Global Core_CPU_SSE42_Str.s = "SSE4.2 Supported" Else Global Core_CPU_SSE42_Str.s = "SSE4.2 Unsuporrted" EndIf If Core_CPU_3DNow_Supported() <> 0 Global Core_CPU_3DNow_Str.s = "3DNow! Supported" Else Global Core_CPU_3DNow_Str.s = "3DNow! Unsuporrted" EndIf If Core_CPU_Ext3DNow_Supported() <> 0 Global Core_CPU_Ext3DNow_Str.s = "Ext3DNow! Supported" Else Global Core_CPU_Ext3DNow_Str.s = "Ext3DNow! Unsuporrted" EndIf EndIf ;If Core_CPUID_Supported() = #True ; Debug "MMX:" + Chr(32) + Str(Core_CPU_MMX_Supported()) ; Debug "SSE:" + Chr(32) + Str(Core_CPU_SSE_Supported()) ; Debug "SSE2:" + Chr(32) + Str(Core_CPU_SSE2_Supported()) ; Debug "SSE3:" + Chr(32) + Str(Core_CPU_SSE3_Supported()) ; Debug "SSSE3:" + Chr(32) + Str(Core_CPU_SSSE3_Supported()) ; Debug "SSE4.1:" + Chr(32) + Str(Core_CPU_SSE41_Supported()) ; Debug "SSE4.2:" + Chr(32) + Str(Core_CPU_SSE42_Supported()) ; Debug "3DNow!:" + Chr(32) + Str(Core_CPU_3DNow_Supported()) ; Debug "Ext3DNow!:" + Chr(32) + Str(Core_CPU_Ext3DNow_Supported()) ;EndIf EndProcedure ;} ;} ;{ HDD Procedure Core_Check_HDD() Global Core_HDD_Size.i Global Core_HDD_Free.i Structure int64 Long1.l Long2.l EndStructure drive$ = "c:\" If GetDiskFreeSpaceEx_(@drive$, BytesFreeToCaller.int64, TotalBytes.int64, TotalFreeBytes.int64) = 0 MessageRequester("","Drive not ready!",0) End EndIf Core_HDD_Size.i = ((TotalBytes\Long1 >> 20) & $FFF) | (TotalBytes\Long2 << 12) Core_HDD_Free.i = ((TotalFreeBytes\Long1 >> 20) & $FFF) | (TotalFreeBytes\Long2 << 12) EndProcedure ;} ;{ FPS ; Code by ts-soft Procedure.f FPS() Static time.i = -1 Protected currentTime.i = ElapsedMilliseconds() Protected timeDiff.i = currentTime - time time = currentTime If timeDiff > 0 ProcedureReturn 1000. / timeDiff EndIf EndProcedure ;} ;} ;{ Core-System ;############### ;# # ;# Core-System # ;# # ;############### Procedure Core_Main() ; Date & Time Global Core_Date.s = FormatDate("%dd.%mm.%yyyy", Date()) Global Core_Time.s = FormatDate("%hh:%ii:%ss", Date()) ; System Global Core_Sys_OS_Name.s = Core_OS_Name.s Global Core_Sys_OS_Version.i = Core_OS_Version.i Global Core_Sys_Computername.s = ComputerName() Global Core_Sys_Username.s = UserName() Global Core_Sys_CPU_Producer.s = Core_Check_CPU_Producer() Global Core_Sys_CPU_Vendor.s = Core_Check_CPU_Vendor() Global Core_Sys_CPU_Name.s = Core_Check_CPU_Name() Global Core_Sys_CPU_Cores.i = CountCPUs(#PB_System_CPUs) Global Core_Sys_CPU_Freq.i = Core_Check_CPU_MHz() Global Core_Sys_CPU_MMX.i = Core_CPU_MMX_Supported() Global Core_Sys_CPU_MMX_Str.s = Core_CPU_MMX_Str.s Global Core_Sys_CPU_SSE.i = Core_CPU_SSE_Supported() Global Core_Sys_CPU_SSE_Str.s = Core_CPU_SSE_Str.s Global Core_Sys_CPU_SSE2.i = Core_CPU_SSE2_Supported() Global Core_Sys_CPU_SSE2_Str.s = Core_CPU_SSE2_Str.s Global Core_Sys_CPU_SSE3.i = Core_CPU_SSE3_Supported() Global Core_Sys_CPU_SSE3_Str.s = Core_CPU_SSE3_Str.s Global Core_Sys_CPU_SSSE3.i = Core_CPU_SSSE3_Supported() Global Core_Sys_CPU_SSSE3_Str.s = Core_CPU_SSSE3_Str.s Global Core_Sys_CPU_SSE41.i = Core_CPU_SSE41_Supported() Global Core_Sys_CPU_SSE41_Str.s = Core_CPU_SSE41_Str.s Global Core_Sys_CPU_SSE42.i = Core_CPU_SSE42_Supported() Global Core_Sys_CPU_SSE42_Str.s = Core_CPU_SSE42_Str.s Global Core_Sys_CPU_CMOVcc.i = Core_CPU_CMOVcc.i Global Core_Sys_CPU_CMOVcc_Str.s = Core_CPU_CMOVcc_Str.s Global Core_Sys_CPU_3DNow.i = Core_CPU_3DNOW.i Global Core_Sys_CPU_3DNow_Str.s = Core_CPU_3DNOW_Str.s Global Core_Sys_CPU_Ext3DNow.i = Core_CPU_Ext3DNow.i Global Core_Sys_CPU_Ext3DNow_Str.s = Core_CPU_Ext3DNow_Str.s Global Core_Sys_RAM_Total_KB.s = Str(MemoryStatus(#PB_System_TotalPhysical) / 1024) Global Core_Sys_RAM_Total_MB.s = Str(MemoryStatus(#PB_System_TotalPhysical) / (1024 * 1024)) Global Core_Sys_RAM_Total_GB.s = StrF(MemoryStatus(#PB_System_TotalPhysical) / (1024 * 1024 * 1024), 2) Global Core_Sys_GPU_Name.s = Core_GPU_Name.s Global Core_Sys_GPU_VRAM.i = Core_GPU_VRAM.i Global Core_Sys_HDD_Name.s = "" Global Core_Sys_HDD_Size.i = Core_HDD_Size.i Global Core_Sys_HDD_Free.i = Core_HDD_Free.i ; Application Informations Global Core_App_Name.s = "Project 23012015" Global Core_App_Description.s = "To manage projects easier" Global Core_App_Create.s = "23.01.2015" Global Core_App_Update.s = Core_Date.s Global Core_App_Author.s = "Autonomus" Global Core_App_Copyright.s = "Autonomus" Global Core_App_Version.s = "1.0.0." + Str(#PB_Editor_CompileCount) ; Settings Global Core_Set_Debug.i = 2 ;[Valid Values: 0 = "Disabled", 1 = "Debug", 2 = "Window"] Global Core_Set_DevMode.i = 0 ;[Valid Values: 0 = "Disabled", 1 = "Enabled"] Global Core_Set_ErrorMode.i = 1 ;[Valid Values: 0 = "Silent", 1 = "Show"] Global Core_Set_List_DeleteMethod.i = 1 ;[Valid Values: 0 = "Complete", 1 = "Content"] Global Core_Set_Win_EffectOnClose.i = 0 ;[Valid Values: 0 = "Default", 1 = "FadeOut"] Global Core_Set_ScreenInfo_Display.i = 1 ;[Valid Values: 0 = "Disabled", 1 = "Enabled"] Global Core_Set_DevCon_Display.i = 0 ;[Valid Values: 0 = "Hide", 1 = "Show"] Global Core_Set_DevCon_DisplayMethod.i = 0 ;[Valid Values: 0 = "Show/Hide", 1 = "Scroll in/out"] Global Core_Set_DevCon_Edge.i = 5 ;[Valid Values: 3 = "Thin", 20 = "Thick" (3, 4, 5, ... to 20)] Global Core_Set_DevCon_Transparency.i = 255 Global Core_Set_DevCon_MoveOutOfScreen.i = 0 ;[Valid Values: 0 = "Disabled", 1 = "Enabled"] Global Core_Set_DevCon_MoveMethod.i = 1 ;[Valid Values: 0 = "Disabled", 1 = "MouseOnDevCon"] Global Core_Set_Mouse_Cursor.i = 2 ;[Valid Values: 0 = "90 Grade Arrow", 1 = "Modern Arrow", 2 = "Modern Arrow Thin", 3 = "Crosshair", 4 = "Crosshair Thin"] Global Core_Set_Mouse_CursorSize.i = 19 ; Initialization Global Core_Ini_Sprite.i = Core_Sprite.i Global Core_Ini_Sprite3D.i = Core_Sprite3D.i Global Core_Ini_Keyboard.i = Core_Keyboard.i Global Core_Ini_Mouse.i = Core_Mouse.i Global Core_Ini_Network.i = Core_Network.i Global Core_Ini_DevCon.i = 0 Global Core_Ini_DevCon3D.i = 0 ; Runtime Global Core_Run_Start.i = ElapsedMilliseconds() Global Core_Run_Diff.i = 0 Global Core_Run_Act.i = 0 Global Core_Run_Speed.i = 1000 ;[Valid Values: 1000 = "Default/1 Second"] Global Core_Run_SecF.s = "" Global Core_Run_Sec.i = 0 Global Core_Run_Min.i = 0 Global Core_Run_Display.s = "00:00" Global Core_Run_DisplayMethod.i = 1 ;[Valid Values: 0 = "01:15:99", 1 = "01:15", 2 = "01 min 15 sec"] ; Screen Global Core_Scr_Mode.i = 2 ;[Valid Values: 0 = "WindowMinimized", 1 = "Window", 2 = "WindowedScreen", 3 = "Screen"] Global Core_Scr_X.i = 10 Global Core_Scr_Y.i = 10 Global Core_Scr_W.i = 800 Global Core_Scr_H.i = 600 Global Core_Scr_T.s = Core_App_Name.s Global Core_Scr_FC.i = #PB_Window_ScreenCentered ;[Flag: #PB_Window_ScreenCentered] Global Core_Scr_FM.i = #PB_Window_Minimize ;[Flag: #PB_Window_Minimize] Global Core_Scr_D.i = 32 ;[Valid Values: "4", "8", "16", "24", "32"] Global Core_Scr_F.i = #PB_Screen_NoSynchronization ;[Valid Values: "#PB_Screen_NoSynchronization", "#PB_Screen_WaitSynchronization", "#PB_Screen_SmartSynchronization"] Global Core_Scr_AS.i = 0 ;[Valid Values: 0 = "No AutoStretch", 1 = "AutoStretch"] Global Core_Scr_R.i = 50 ;[Valid Values: 50 = "50Hz", 60 = "60Hz", 75 = "75Hz", ...] ; Log-System Settings Global Core_Log_System.i = 1 ;[Valid Values: 0 = "Off", 1 = "On"] Global Core_Log_Output.i = 0 ;[Valid Values: 0 = "Debug", 1 = "Text File", 2 = "Window"] Global Core_Log_View.i = 1 ;[Valid Values: 0 = "Off", 1 = "List", 2 = "Line", 3 = "Detail" ] Global Core_Log_FileOpenAuto.i = 0 ;[Valid Values: 0 = "Not automatic open", 1 = "Automatic open after creating"] Global Core_Log_Filename.s = "Core File Log.txt" ; Message Global Core_Msg_Error_Title.s = "Core File - Error" Global Core_Msg_Error_Sprite.s = "Can't initialize DirectX" Global Core_Msg_Error_Sprite3D.s = "Can't initialize Hardware-Acceleration" Global Core_Msg_Error_Keyboard.s = "Can't init Keyboard" Global Core_Msg_Error_Mouse.s = "Can't init Mouse" Global Core_Msg_Error_Network.s = "Can't init Network" ; Coordinates Global Core_Coo_DevCon_X.i = Core_Scr_W.i - (Core_Scr_W.i * 3 / 4) - (Core_Scr_W.i / 30) Global Core_Coo_DevCon_Y.i = Core_Scr_H.i / 20 Global Core_Coo_DevCon_W.i = Core_Scr_W.i * 3 / 4 Global Core_Coo_DevCon_H.i = Core_Scr_H.i * 3 / 5 Global Core_Coo_DevCon_R.i = 5 ; Colors Global Core_Clr_ScreenInfo_Title.i = RGB($FF, $FF, $FF) Global Core_Clr_ScreenInfo_Text.i = RGB($CC, $CC, $CC) Global Core_Clr_DevCon_EdgeOut.i = $A5A5A5 ;[Default Value: $A5A5A5] Global Core_Clr_DevCon_EdgeIn.i = $FFFFFF ;[Default Value: $FFFFFF] Global Core_Clr_DevCon_Content.i = $494949 ;[Default Value: $494949] ; Mouse Global Core_Mou_StartX.i = (Core_Scr_W.i / 2) - (Core_Set_Mouse_CursorSize.i / 2) Global Core_Mou_StartY.i = (Core_Scr_H.i / 2) - (Core_Set_Mouse_CursorSize.i / 2) Global Core_Mou_X.i = 0 Global Core_Mou_Y.i = 0 Global Core_Mou_OldX.i = 0 Global Core_Mou_OldY.i = 0 Global Core_Mou_WheelUp.i = 0 Global Core_Mou_WheelDown.i = 0 EndProcedure Procedure Core_Main_List() Structure Core_List_Main Core_ID.i Core_Date.s Core_Time.s Core_Cat.s Core_Entry.s Core_Lng.l Core_Int.i Core_Flt.f Core_Qud.q Core_Dbl.d Core_Str.s EndStructure Global NewList Core_List_Main.Core_List_Main() Structure Core_List_Main_Del Core_ID.i Core_Date.s Core_Time.s Core_Cat.s Core_Entry.s Core_Lng.l Core_Int.i Core_Flt.f Core_Qud.q Core_Dbl.d Core_Str.s EndStructure Global NewList Core_List_Main_Del.Core_List_Main_Del() EndProcedure Procedure Core_Main_List_Func(Func.s = "", ID.i = 0, Cat.s = "", Entry.s = "", Lng.l = 0, Int.i = 0, Flt.f = 0, Qud.q = 0, Dbl.d = 0, Str.s = "") If Func.s = "Add" ;{ Add With Core_List_Main() AddElement(Core_List_Main()) \Core_ID.i = ListSize(Core_List_Main()) \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Cat.s = Cat.s \Core_Entry.s = Entry.s \Core_Lng.l = Lng.l \Core_Int.i = Int.i \Core_Flt.f = Flt.f \Core_Qud.q = Qud.q \Core_Dbl.d = Dbl.d \Core_Str.s = Str.s EndWith ;} ElseIf Func.s = "Edit" ;{ Edit ResetList(Core_List_Main()) While NextElement(Core_List_Main()) With Core_List_Main() If \Core_ID.i = ID.i And ID.i > 0 \Core_Cat.s = Cat.s \Core_Entry.s = Entry.s \Core_Lng.l = Lng.l \Core_Int.i = Int.i \Core_Flt.f = Flt.f \Core_Qud.q = Qud.q \Core_Dbl.d = Dbl.d \Core_Str.s = Str.s EndIf If \Core_Cat.s = Cat.s And \Core_Entry.s = Entry.s \Core_Cat.s = Cat.s \Core_Entry.s = Entry.s \Core_Lng.l = Lng.l \Core_Int.i = Int.i \Core_Flt.f = Flt.f \Core_Qud.q = Qud.q \Core_Dbl.d = Dbl.d \Core_Str.s = Str.s EndIf EndWith Wend ;} ElseIf Func.s = "Sum" ;{ Sum ResetList(Core_List_Main()) While NextElement(Core_List_Main()) With Core_List_Main() If \Core_ID.i = ID.i And ID.i > 0 \Core_Cat.s = Cat.s \Core_Entry.s = Entry.s \Core_Lng.l = \Core_Lng.l + Lng.l \Core_Int.i = \Core_Int.i + Int.i \Core_Flt.f = Flt.f \Core_Qud.q = Qud.q \Core_Dbl.d = Dbl.d \Core_Str.s = Str.s EndIf If \Core_Cat.s = Cat.s And \Core_Entry.s = Entry.s \Core_Cat.s = Cat.s \Core_Entry.s = Entry.s \Core_Lng.l = \Core_Lng.l + Lng.l \Core_Int.i = \Core_Int.i + Int.i \Core_Flt.f = Flt.f \Core_Qud.q = Qud.q \Core_Dbl.d = Dbl.d \Core_Str.s = Str.s EndIf EndWith Wend ;} ElseIf Func.s = "Sub" ;{ Sub ResetList(Core_List_Main()) While NextElement(Core_List_Main()) With Core_List_Main() If \Core_ID.i = ID.i And ID.i > 0 \Core_Cat.s = Cat.s \Core_Entry.s = Entry.s \Core_Lng.l = \Core_Lng.l - Lng.l \Core_Int.i = \Core_Int.i - Int.i \Core_Flt.f = Flt.f \Core_Qud.q = Qud.q \Core_Dbl.d = Dbl.d \Core_Str.s = Str.s EndIf If \Core_Cat.s = Cat.s And \Core_Entry.s = Entry.s \Core_Cat.s = Cat.s \Core_Entry.s = Entry.s \Core_Lng.l = \Core_Lng.l - Lng.l \Core_Int.i = \Core_Int.i - Int.i \Core_Flt.f = Flt.f \Core_Qud.q = Qud.q \Core_Dbl.d = Dbl.d \Core_Str.s = Str.s EndIf EndWith Wend ;} ElseIf Func.s = "Delete" ;{ Delete ResetList(Core_List_Main()) While NextElement(Core_List_Main()) With Core_List_Main() If \Core_ID.i = ID.i And ID.i > 0 If Core_Set_List_DeleteMethod.i = 0 DeleteElement(Core_List_Main(), 1) ElseIf Core_Set_List_DeleteMethod.i = 1 \Core_Cat.s = Cat.s \Core_Entry.s = "Deleted on " + Core_Date.s + " at " + Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" EndIf EndIf If \Core_Cat.s = Cat.s And \Core_Entry.s = Entry.s If Core_Set_List_DeleteMethod.i = 0 DeleteElement(Core_List_Main(), 1) ElseIf Core_Set_List_DeleteMethod.i = 1 \Core_Cat.s = Cat.s \Core_Entry.s = "Deleted on " + Core_Date.s + " at " + Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" EndIf EndIf EndWith Wend ;} ElseIf Func.s = "GetInt" ;{ GetInt ResetList(Core_List_Main()) While NextElement(Core_List_Main()) With Core_List_Main() If \Core_ID.i = ID.i And ID.i > 0 ProcedureReturn \Core_Int.i EndIf If \Core_Cat.s = Cat.s And \Core_Entry.s = Entry.s ProcedureReturn \Core_Int.i EndIf EndWith Wend ;} ElseIf Func.s = "Output" ;{ Output If Core_Set_Debug.i = 1 ResetList(Core_List_Main()) While NextElement(Core_List_Main()) With Core_List_Main() Debug "ID: " + Str(\Core_ID.i) Debug "Date: " + \Core_Date.s Debug "Time: " + \Core_Time.s Debug "Cat: " + \Core_Cat.s Debug "Entry: " + \Core_Entry.s Debug "Lng: " + \Core_Lng.l Debug "Int: " + \Core_Int.i Debug "Flt: " + \Core_Flt.f Debug "Qud: " + \Core_Qud.q Debug "Dbl: " + \Core_Dbl.d Debug "Str: " + \Core_Str.s Debug "" EndWith Wend ElseIf Core_Set_Debug.i = 2 ;{ Count Kilobytes and Categories ResetList(Core_List_Main()) While NextElement(Core_List_Main()) With Core_List_Main() If \Core_Cat.s <> "" And \Core_Cat.s <> FoundCat.s FoundCat.s = \Core_Cat.s CountCat.i + 1 EndIf If \Core_ID.i > 0 : CountBytes.i + 4 : EndIf If \Core_Date.s <> "" : CountBytes.i + Len(\Core_Date.s) + 1 : EndIf If \Core_Time.s <> "" : CountBytes.i + Len(\Core_Time.s) + 1 : EndIf If \Core_Cat.s <> "" : CountBytes.i + Len(\Core_Cat.s) + 1 : EndIf If \Core_Entry.s <> "" : CountBytes.i + Len(\Core_Entry.s) + 1 : EndIf If \Core_Lng.l <> 0 : CountBytes.i + 4 : EndIf If \Core_Int.i <> 0 If #PB_Compiler_Processor = #PB_Processor_x86 : CountBytes.i + 4 : ElseIf #PB_Compiler_Processor = #PB_Processor_x64 : CountBytes.i + 8 : EndIf EndIf If \Core_Flt.f <> 0 : CountBytes.i + 4 : EndIf If \Core_Qud.q <> 0 : CountBytes.i + 8 : EndIf If \Core_Dbl.d <> 0 : CountBytes.i + 8 : EndIf If \Core_Str.s <> "" : CountBytes.i + Len(\Core_Str.s) + 1 : EndIf EndWith Wend ;} ;{ Create Window and Gadgets TextColor.i = RGB($33, $99, $FF) ListColor.i = RGB($88, $AA, $FF) OpenWindow(#Core_Main_Window, 10, 10, 900, 650, "Core File - Main List Entries", #PB_Window_ScreenCentered | #PB_Window_SystemMenu) AddKeyboardShortcut(#Core_Main_Window, #PB_Shortcut_Escape, 0) Frame3DGadget(#Core_Gadget_Main_List_Information, 5, 5, 440, 70, "Information") TextGadget(#Core_Gadget_Main_List_Entries, 14, 22, 75, 15, "Entries") SetGadgetColor(#Core_Gadget_Main_List_Entries, #PB_Gadget_FrontColor, TextColor.i) TextGadget(#Core_Gadget_Main_List_Entries_Text, 90, 22, 250, 15, Str(ListSize(Core_List_Main()))) TextGadget(#Core_Gadget_Main_List_Cat, 14, 37, 75, 15, "Categories") SetGadgetColor(#Core_Gadget_Main_List_Cat, #PB_Gadget_FrontColor, TextColor.i) TextGadget(#Core_Gadget_Main_List_Cat_Text, 90, 37, 250, 15, Str(CountCat.i)) TextGadget(#Core_Gadget_Main_List_Size, 14, 52, 75, 15, "Size") SetGadgetColor(#Core_Gadget_Main_List_Size, #PB_Gadget_FrontColor, TextColor.i) TextGadget(#Core_Gadget_Main_List_Size_Text, 90, 52, 250, 15, StrF(CountBytes.i / 1024, 2) + Chr(32) + "Kilobytes") Frame3DGadget(#Core_Gadget_Main_List_Options, 455, 5, 440, 70, "Options") TextGadget(#Core_Gadget_Main_List_Search, 460, 22, 75, 15, "Search") SetGadgetColor(#Core_Gadget_Main_List_Search, #PB_Gadget_FrontColor, TextColor.i) StringGadget(#Core_Gadget_Main_List_Search_Input, 540, 19, 204, 16, "") TextGadget(#Core_Gadget_Main_List_Search_Result, 460, 37, 75, 15, "Result") SetGadgetColor(#Core_Gadget_Main_List_Search_Result, #PB_Gadget_FrontColor, TextColor.i) TextGadget(#Core_Gadget_Main_List_Search_Result_Text, 540, 37, 75, 15, "") TextGadget(#Core_Gadget_Main_List_Export, 460, 52, 75, 15, "Export") SetGadgetColor(#Core_Gadget_Main_List_Export, #PB_Gadget_FrontColor, TextColor.i) ButtonGadget(#Core_Gadget_Main_List_Export_TextFile_Btn, 540, 52, 100, 16, "Text File") DisableGadget(#Core_Gadget_Main_List_Export_TextFile_Btn, 1) ButtonGadget(#Core_Gadget_Main_List_Export_XMLFile_Btn, 645, 52, 100, 16, "XML File") DisableGadget(#Core_Gadget_Main_List_Export_XMLFile_Btn, 1) ListIconGadget(#Core_Gadget_Main_List_ListIcon, 0, 85, 900, 564, "ID", 30, #PB_ListIcon_FullRowSelect) SetGadgetColor(#Core_Gadget_Main_List_ListIcon, #PB_Gadget_BackColor, ListColor.i) AddGadgetColumn(#Core_Gadget_Main_List_ListIcon, 1, "Date", 70) AddGadgetColumn(#Core_Gadget_Main_List_ListIcon, 2, "Time", 60) AddGadgetColumn(#Core_Gadget_Main_List_ListIcon, 3, "Categories", 80) AddGadgetColumn(#Core_Gadget_Main_List_ListIcon, 4, "Entry", 120) AddGadgetColumn(#Core_Gadget_Main_List_ListIcon, 5, "Long", 45) AddGadgetColumn(#Core_Gadget_Main_List_ListIcon, 6, "Integer", 75) AddGadgetColumn(#Core_Gadget_Main_List_ListIcon, 7, "Float", 45) AddGadgetColumn(#Core_Gadget_Main_List_ListIcon, 8, "Quad", 45) AddGadgetColumn(#Core_Gadget_Main_List_ListIcon, 9, "Double", 50) AddGadgetColumn(#Core_Gadget_Main_List_ListIcon, 10, "String", 260) RTS_Thread = CreateThread(@Core_Func_RTSearch_CoreListMain(), 0) ;} ;{ Add Entries to ListIconGadget ResetList(Core_List_Main()) While NextElement(Core_List_Main()) With Core_List_Main() If NextCat.s = \Core_Cat.s Or NextCat.s = "" AddGadgetItem(#Core_Gadget_Main_List_ListIcon, -1, Str(\Core_ID.i) + Chr(10) + \Core_Date.s + Chr(10) + \Core_Time.s + Chr(10) + \Core_Cat.s + Chr(10) + \Core_Entry.s + Chr(10) + \Core_Lng.l + Chr(10) + \Core_Int.i + Chr(10) + \Core_Flt.f + Chr(10) + \Core_Qud.q + Chr(10) + \Core_Dbl.d + Chr(10) + \Core_Str.s) NextCat.s = \Core_Cat.s Else AddGadgetItem(#Core_Gadget_Main_List_ListIcon, -1, "") AddGadgetItem(#Core_Gadget_Main_List_ListIcon, -1, Str(\Core_ID.i) + Chr(10) + \Core_Date.s + Chr(10) + \Core_Time.s + Chr(10) + \Core_Cat.s + Chr(10) + \Core_Entry.s + Chr(10) + \Core_Lng.l + Chr(10) + \Core_Int.i + Chr(10) + \Core_Flt.f + Chr(10) + \Core_Qud.q + Chr(10) + \Core_Dbl.d + Chr(10) + \Core_Str.s) NextCat.s = \Core_Cat.s EndIf EndWith Wend ;} Repeat Event = WaitWindowEvent() If Event = #PB_Event_CloseWindow If RTS_Thread KillThread(RTS_Thread) EndIf If Core_Set_Win_EffectOnClose.i = 0 End ElseIf Core_Set_Win_EffectOnClose.i = 1 CreateThread(@Core_Func_Win_CloseFadeOut(), 1) EndIf EndIf Select Event Case #PB_Event_Menu Select EventMenu() Case 0 If RTS_Thread KillThread(RTS_Thread) EndIf If Core_Set_Win_EffectOnClose.i = 0 End ElseIf Core_Set_Win_EffectOnClose.i = 1 CreateThread(@Core_Func_Win_CloseFadeOut(), 1) EndIf EndSelect Case #PB_Event_Gadget Select EventGadget() EndSelect EndSelect ForEver EndIf ;} ElseIf Func.s = "Prepare" ;{ Prepare Core_Main_List_Func("Add", 0, "System", "OS Name", 0, 0, 0, 0, 0, Core_Sys_OS_Name.s) Core_Main_List_Func("Add", 0, "System", "OS Version", 0, Core_OS_Version.i, 0, 0, 0, Str(Core_OS_Version.i)) Core_Main_List_Func("Add", 0, "System", "Computername", 0, 0, 0, 0, 0, Core_Sys_Computername.s) Core_Main_List_Func("Add", 0, "System", "Username", 0, 0, 0, 0, 0, Core_Sys_Username.s) Core_Main_List_Func("Add", 0, "System", "CPU Producer", 0, 0, 0, 0, 0, Core_Sys_CPU_Producer.s) Core_Main_List_Func("Add", 0, "System", "CPU Vendor", 0, 0, 0, 0, 0, Core_Sys_CPU_Vendor.s) Core_Main_List_Func("Add", 0, "System", "CPU Name", 0, 0, 0, 0, 0, Core_Sys_CPU_Name.s) Core_Main_List_Func("Add", 0, "System", "CPU Cores", 0, Core_Sys_CPU_Cores.i, 0, 0, 0, Str(Core_Sys_CPU_Cores.i) + Chr(32) + "Cores") Core_Main_List_Func("Add", 0, "System", "CPU Frequency", 0, Core_Sys_CPU_Freq.i, 0, 0, 0, Str(Core_Sys_CPU_Freq.i) + Chr(32) + "MHz") Core_Main_List_Func("Add", 0, "System", "CPU MMX", 0, Core_Sys_CPU_MMX.i, 0, 0, 0, Core_CPU_MMX_Str.s) Core_Main_List_Func("Add", 0, "System", "CPU SSE", 0, Core_Sys_CPU_SSE.i, 0, 0, 0, Core_CPU_SSE_Str.s) Core_Main_List_Func("Add", 0, "System", "CPU SSE2", 0, Core_Sys_CPU_SSE2.i, 0, 0, 0, Core_CPU_SSE2_Str.s) Core_Main_List_Func("Add", 0, "System", "CPU SSE3", 0, Core_Sys_CPU_SSE3.i, 0, 0, 0, Core_CPU_SSE3_Str.s) Core_Main_List_Func("Add", 0, "System", "CPU SSSE3", 0, Core_Sys_CPU_SSSE3.i, 0, 0, 0, Core_CPU_SSSE3_Str.s) Core_Main_List_Func("Add", 0, "System", "CPU SSE4.1", 0, Core_Sys_CPU_SSE41.i, 0, 0, 0, Core_CPU_SSE41_Str.s) Core_Main_List_Func("Add", 0, "System", "CPU SSE4.2", 0, Core_Sys_CPU_SSE42.i, 0, 0, 0, Core_CPU_SSE42_Str.s) Core_Main_List_Func("Add", 0, "System", "CPU 3DNow!", 0, Core_Sys_CPU_3DNow.i, 0, 0, 0, Core_CPU_3DNOW_Str.s) Core_Main_List_Func("Add", 0, "System", "CPU Ext3DNow!", 0, Core_Sys_CPU_Ext3DNow.i, 0, 0, 0, Core_CPU_Ext3DNow_Str.s) Core_Main_List_Func("Add", 0, "System", "RAM Total (KB)", 0, 0, 0, 0, 0, Core_Sys_RAM_Total_KB.s + Chr(32) + "Kilobytes") Core_Main_List_Func("Add", 0, "System", "RAM Total (MB)", 0, 0, 0, 0, 0, Core_Sys_RAM_Total_MB.s + Chr(32) + "Megabytes") Core_Main_List_Func("Add", 0, "System", "RAM Total (GB)", 0, 0, 0, 0, 0, Core_Sys_RAM_Total_GB.s + Chr(32) + "Gigabytes") Core_Main_List_Func("Add", 0, "System", "GPU Name", 0, 0, 0, 0, 0, Core_Sys_GPU_Name.s) Core_Main_List_Func("Add", 0, "System", "GPU VRAM", 0, Core_Sys_GPU_VRAM.i, 0, 0, 0, Str(Core_Sys_GPU_VRAM.i) + Chr(32) + "Megabytes") Core_Main_List_Func("Add", 0, "System", "HDD Name", 0, 0, 0, 0, 0, Core_Sys_HDD_Name.s) Core_Main_List_Func("Add", 0, "System", "HDD Size (MB)", 0, Core_Sys_HDD_Size.i, 0, 0, 0, Str(Core_Sys_HDD_Size.i) + Chr(32) + "Megabytes") Core_Main_List_Func("Add", 0, "System", "HDD Free (MB)", 0, Core_Sys_HDD_Free.i, 0, 0, 0, Str(Core_Sys_HDD_Free.i) + Chr(32) + "Megabytes") Core_Main_List_Func("Add", 0, "System", "HDD Size (GB)", 0, Core_Sys_HDD_Size.i / 1024, 0, 0, 0, StrF(Core_Sys_HDD_Size.i / 1024, 2) + Chr(32) + "Gigabytes") Core_Main_List_Func("Add", 0, "System", "HDD Free (GB)", 0, Core_Sys_HDD_Free.i / 1024, 0, 0, 0, StrF(Core_Sys_HDD_Free.i / 1024, 2) + Chr(32) + "Gigabytes") Core_Main_List_Func("Add", 0, "Application", "Name", 0, 0, 0, 0, 0, Core_App_Name.s) Core_Main_List_Func("Add", 0, "Application", "Description", 0, 0, 0, 0, 0, Core_App_Description.s) Core_Main_List_Func("Add", 0, "Application", "Create", 0, 0, 0, 0, 0, Core_App_Create.s) Core_Main_List_Func("Add", 0, "Application", "Update", 0, 0, 0, 0, 0, Core_App_Update.s) Core_Main_List_Func("Add", 0, "Application", "Author", 0, 0, 0, 0, 0, Core_App_Author.s) Core_Main_List_Func("Add", 0, "Application", "Copyright", 0, 0, 0, 0, 0, Core_App_Copyright.s) Core_Main_List_Func("Add", 0, "Application", "Version", 0, 0, 0, 0, 0, Core_App_Version.s) Core_Main_List_Func("Add", 0, "Settings", "Debug", 0, Core_Set_Debug.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Settings", "DevMode", 0, Core_Set_DevMode.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Settings", "ErrorMode", 0, Core_Set_ErrorMode.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Settings", "List_DeleteMethod", 0, Core_Set_List_DeleteMethod.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Settings", "Win_EffectOnClose", 0, Core_Set_Win_EffectOnClose.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Settings", "ScreenInfo_Display", 0, Core_Set_ScreenInfo_Display.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Settings", "DevCon_Display", 0, Core_Set_DevCon_Display.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Settings", "DevCon_DisplayMethod", 0, Core_Set_DevCon_DisplayMethod.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Settings", "DevCon_Edge", 0, Core_Set_DevCon_Edge.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Settings", "DevCon_Transparency", 0, Core_Set_DevCon_Transparency.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Settings", "DevCon_MoveOutOfScreen", 0, Core_Set_DevCon_MoveOutOfScreen.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Settings", "DevCon_MoveMethod", 0, Core_Set_DevCon_MoveMethod.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Settings", "Mouse_Cursor", 0, Core_Set_Mouse_Cursor.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Settings", "Mouse_CursorSize", 0, Core_Set_Mouse_CursorSize.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Initialization", "DirectX", 0, Core_Ini_Sprite.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Initialization", "Hardware-Acceleration", 0, Core_Ini_Sprite3D.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Initialization", "Keyboard", 0, Core_Ini_Keyboard.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Initialization", "Mouse", 0, Core_Ini_Mouse.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Initialization", "Network", 0, Core_Ini_Network.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Initialization", "DevCon", 0, Core_Ini_DevCon.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Initialization", "DevCon3D", 0, Core_Ini_DevCon3D.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Runtime", "Start", 0, Core_Run_Start.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Runtime", "Difference", 0, Core_Run_Diff.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Runtime", "Actual", 0, Core_Run_Act.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Runtime", "Speed", 0, Core_Run_Speed.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Runtime", "SecondsFloat", 0, 0, 0, 0, 0, Core_Run_SecF.s) Core_Main_List_Func("Add", 0, "Runtime", "Seconds", 0, Core_Run_Sec.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Runtime", "Minutes", 0, Core_Run_Min.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Runtime", "Display", 0, 0, 0, 0, 0, Core_Run_Display.s) Core_Main_List_Func("Add", 0, "Runtime", "DisplayMethod", 0, Core_Run_DisplayMethod.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Screen", "Mode", 0, Core_Scr_Mode.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Screen", "X (Coordinate)", 0, Core_Scr_X.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Screen", "Y (Coordinate)", 0, Core_Scr_Y.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Screen", "W (Width)", 0, Core_Scr_W.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Screen", "H (Height)", 0, Core_Scr_H.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Screen", "T (Title)", 0, 0, 0, 0, 0, Core_Scr_T.s) Core_Main_List_Func("Add", 0, "Screen", "FC (Flag Centered)", 0, Core_Scr_FC.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Screen", "FM (Flag Minimize)", 0, Core_Scr_FM.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Screen", "D (Depth)", 0, Core_Scr_D.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Screen", "F (FlipMode)", 0, Core_Scr_F.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Screen", "AS (AutoStretch)", 0, Core_Scr_AS.i, 0, 0, 0, "") Core_Main_List_Func("Add", 0, "Screen", "R (RefreshRate)", 0, Core_Scr_R.i, 0, 0, 0, "") ;} ElseIf Func.s = "Update" ;{ Update ResetList(Core_List_Main()) While NextElement(Core_List_Main()) With Core_List_Main() If Cat.s = "System" Or Cat.s = "All" ;{ System If \Core_Cat.s = "System" If \Core_Entry.s = "OS Name" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_OS_Name.s ElseIf \Core_Entry.s = "OS Version" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Sys_OS_Version.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Str(Core_Sys_OS_Version.i) ElseIf \Core_Entry.s = "Computername" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_Computername.s ElseIf \Core_Entry.s = "Username" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_Username.s ElseIf \Core_Entry.s = "CPU Producer" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_CPU_Producer.s ElseIf \Core_Entry.s = "CPU Vendor" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_CPU_Vendor.s ElseIf \Core_Entry.s = "CPU Name" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_CPU_Name.s ElseIf \Core_Entry.s = "CPU Cores" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Sys_CPU_Cores.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Str(Core_Sys_CPU_Cores.i) ElseIf \Core_Entry.s = "CPU Frequency" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Sys_CPU_Freq.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Str(Core_Sys_CPU_Freq.i) ElseIf \Core_Entry.s = "CPU MMX" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Sys_CPU_MMX.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_CPU_MMX_Str.s ElseIf \Core_Entry.s = "CPU SSE" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Sys_CPU_SSE.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_CPU_SSE_Str.s ElseIf \Core_Entry.s = "CPU SSE2" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Sys_CPU_SSE2.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_CPU_SSE2_Str.s ElseIf \Core_Entry.s = "CPU SSE3" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Sys_CPU_SSE3.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_CPU_SSE3_Str.s ElseIf \Core_Entry.s = "CPU SSSE3" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Sys_CPU_SSSE3.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_CPU_SSSE3_Str.s ElseIf \Core_Entry.s = "CPU SSE4.1" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Sys_CPU_SSE41.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_CPU_SSE41_Str.s ElseIf \Core_Entry.s = "CPU SSE4.2" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Sys_CPU_SSE42.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_CPU_SSE42_Str.s ElseIf \Core_Entry.s = "CPU 3DNow!" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Sys_CPU_3DNow.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_CPU_3DNow_Str.s ElseIf \Core_Entry.s = "CPU Ext3DNow!" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Sys_CPU_Ext3DNow.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_CPU_Ext3DNow_Str.s ElseIf \Core_Entry.s = "RAM Total (KB)" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_RAM_Total_KB.s ElseIf \Core_Entry.s = "RAM Total (MB)" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_RAM_Total_MB.s ElseIf \Core_Entry.s = "RAM Total (GB)" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_RAM_Total_GB.s ElseIf \Core_Entry.s = "GPU Name" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_GPU_Name.s ElseIf \Core_Entry.s = "GPU VRAM" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Sys_GPU_VRAM.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Str(Core_Sys_GPU_VRAM.i) + Chr(32) + "Megabytes" ElseIf \Core_Entry.s = "HDD Name" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Sys_HDD_Name.s ElseIf \Core_Entry.s = "HDD Size (MB)" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Sys_HDD_Size.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Str(Core_Sys_HDD_Size.i) + Chr(32) + "Megabytes" ElseIf \Core_Entry.s = "HDD Free (MB)" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Sys_HDD_Free.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Str(Core_Sys_HDD_Free.i) + Chr(32) + "Megabytes" ElseIf \Core_Entry.s = "HDD Size (GB)" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Sys_HDD_Size.i / 1024 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = StrF(Core_Sys_HDD_Size.i / 1024, 2) + Chr(32) + "Gigabytes" ElseIf \Core_Entry.s = "HDD Free (GB)" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Sys_HDD_Free.i / 1024 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = StrF(Core_Sys_HDD_Free.i / 1024, 2) + Chr(32) + "Gigabytes" EndIf EndIf ;} ElseIf Cat.s = "Application" Or Cat.s = "All" ;{ Application If \Core_Cat.s = "Application" If \Core_Entry.s = "Name" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_App_Name.s ElseIf \Core_Entry.s = "Description" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_App_Description.s ElseIf \Core_Entry.s = "Create" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_App_Create.s ElseIf \Core_Entry.s = "Update" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_App_Update.s ElseIf \Core_Entry.s = "Author" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_App_Author.s ElseIf \Core_Entry.s = "Copyright" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_App_Copyright.s ElseIf \Core_Entry.s = "Version" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_App_Version.s EndIf EndIf ;} ElseIf Cat.s = "Settings" Or Cat.s = "All" ;{ Settings If \Core_Cat.s = "Settings" If \Core_Entry.s = "Debug" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Set_Debug.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "DevMode" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Set_DevMode.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "ErrorMode" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Set_ErrorMode.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "ListDeleteMethod" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Set_List_DeleteMethod.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "Win_EffectOnClose" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Set_Win_EffectOnClose.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "ScreenInfo_Display" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Set_ScreenInfo_Display.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "DevCon_Display" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Set_DevCon_Display.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "DevCon_DisplayMethod" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Set_DevCon_DisplayMethod.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "DevCon_Edge" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Set_DevCon_Edge.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "DevCon_Transparency" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Set_DevCon_Transparency.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "DevCon_MoveOutOfScreen" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Set_DevCon_MoveOutOfScreen.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "DevCon_MoveMethod" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Set_DevCon_MoveMethod.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "Mouse_Cursor" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Set_Mouse_Cursor.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "Mouse_CursorSize" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Set_Mouse_CursorSize.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" EndIf EndIf ;} ElseIf Cat.s = "Initialization" Or Cat.s = "All" ;{ Initialization If \Core_Cat.s = "Initialization" If \Core_Entry.s = "DirectX" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Ini_Sprite.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "Hardware-Acceleration" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Ini_Sprite3D.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "Keyboard" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Ini_Keyboard.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "Mouse" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Ini_Mouse.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "Network" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Ini_Network.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "DevCon" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Ini_DevCon.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "DevCon3D" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Ini_DevCon3D.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" EndIf EndIf ;} ElseIf Cat.s = "Runtime" Or Cat.s = "All" ;{ Runtime If \Core_Cat.s = "Runtime" If \Core_Entry.s = "Start" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Run_Start.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "Difference" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Run_Diff.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "Actual" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Run_Act.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "Speed" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Run_Speed.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "SecondsFloat" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Run_SecF.s ElseIf \Core_Entry.s = "Seconds" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Run_Sec.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "Minutes" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Run_Min.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "Display" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Run_Display.s ElseIf \Core_Entry.s = "DisplayMethod" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Run_DisplayMethod.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" EndIf EndIf ;} ElseIf Cat.s = "Screen" Or Cat.s = "All" ;{ Screen If \Core_Cat.s = "Screen" If \Core_Entry.s = "Mode" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Scr_Mode.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "X (Coordinate)" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Scr_X.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "Y (Coordinate)" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Scr_Y.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "W (Width)" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Scr_W.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "H (Height)" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Scr_H.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "T (Title)" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = 0 \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = Core_Scr_T.s ElseIf \Core_Entry.s = "FC (Flag Centered)" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Scr_FC.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "FM (Flag Minimize)" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Scr_FM.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "D (Depth)" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Scr_D.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "F (FlipMode)" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Scr_F.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "AS (AutoStretch)" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Scr_AS.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" ElseIf \Core_Entry.s = "R (RefreshRate)" \Core_Date.s = Core_Date.s \Core_Time.s = Core_Time.s \Core_Lng.l = 0 \Core_Int.i = Core_Scr_R.i \Core_Flt.f = 0 \Core_Qud.q = 0 \Core_Dbl.d = 0 \Core_Str.s = "" EndIf EndIf ;} EndIf EndWith Wend ;} EndIf EndProcedure Procedure TxtOut(Title.s = "", Text.s = "") If Title.s = "" Title.s = "Test" EndIf If Core_Set_Debug.i = 0 Debug "" Debug "Date: " + Core_Date.s Debug "Time: " + Core_Time.s Debug "" Debug "Version: " + Core_App_Version.s Debug "" ElseIf Core_Set_Debug.i = 1 MessageRequester(Title.s, Text.s) EndIf EndProcedure ;} ;{ Log-System ;############## ;# # ;# Log-System # ;# # ;############## Procedure Core_Log_Main() Global Core_Log_CountChars.i = 0 Global Core_Log_LenID.i = 0 Global Core_Log_LenDate.i = 0 Global Core_Log_LenTime.i = 0 Global Core_Log_LenCat.i = 0 Global Core_Log_LenEntry.i = 0 Global Core_Log_LenInt.i = 0 Global Core_Log_Size.i = 0 Global Core_Log_SizeTotal.i = 0 EndProcedure Procedure Core_Log_List() Structure Core_List_Log Log_ID.i Log_Date.s Log_Time.s Log_Cat.s Log_Entry.s Log_Int.i EndStructure Global NewList Core_List_Log.Core_List_Log() EndProcedure Procedure Core_Log_List_Func(Func.s = "", ID.i = 0, Cat.s = "", Entry.s = "", Int.i = 0) If Func.s = "Add" ;{ Add Core_Log_CountChars.i = 0 With Core_List_Log() AddElement(Core_List_Log()) \Log_ID.i = ListSize(Core_List_Log()) If ListSize(Core_List_Log()) > 0 : If Len(Str(Core_Log_CountChars.i)) < Len(Str(\Log_ID.i)) : Core_Log_CountChars.i = Len(Str(\Log_ID.i)) : EndIf : EndIf \Log_Date.s = Core_Date.s If ListSize(Core_List_Log()) > 0 : If Len(Str(Core_Log_CountChars.i)) < Len(\Log_Date.s) : Core_Log_CountChars.i = Len(\Log_Date.s) : EndIf : EndIf \Log_Time.s = Core_Time.s If ListSize(Core_List_Log()) > 0 : If Len(Str(Core_Log_CountChars.i)) < Len(\Log_Time.s) : Core_Log_CountChars.i = Len(\Log_Time.s) : EndIf : EndIf \Log_Cat.s = Cat.s If ListSize(Core_List_Log()) > 0 : If Len(Str(Core_Log_CountChars.i)) < Len(\Log_Cat.s) : Core_Log_CountChars.i = Len(\Log_Cat.s) : EndIf : EndIf \Log_Entry.s = Entry.s If ListSize(Core_List_Log()) > 0 : If Len(Str(Core_Log_CountChars.i)) < Len(\Log_Entry.s) : Core_Log_CountChars.i = Len(\Log_Entry.s) : EndIf : EndIf \Log_Int.i = Core_Log_CountChars.i EndWith ;} ElseIf Func.s = "Edit" ;{ Edit ResetList(Core_List_Log()) While NextElement(Core_List_Log()) With Core_List_Log() If \Log_ID.i = ID.i And ID.i > 0 \Log_Cat.s = Cat.s \Log_Entry.s = Entry.s \Log_Int.i = Int.i EndIf If \Log_Cat.s = Cat.s And \Log_Entry.s = Entry.s \Log_Cat.s = Cat.s \Log_Entry.s = Entry.s \Log_Int.i = Int.i EndIf EndWith Wend ;} ElseIf Func.s = "Delete" ;{ Delete ResetList(Core_List_Log()) While NextElement(Core_List_Log()) With Core_List_Log() If \Log_ID.i = ID.i And ID.i > 0 If Core_Set_List_DeleteMethod.i = 0 DeleteElement(Core_List_Log(), 1) ElseIf Core_Set_List_DeleteMethod.i = 1 \Log_Cat.s = Cat.s \Log_Entry.s = "Deleted on " + Core_Date.s + " at " + Core_Time.s \Log_Int.i = Int.i EndIf EndIf If \Log_Cat.s = Cat.s And \Log_Entry.s = Entry.s If Core_Set_List_DeleteMethod.i = 0 DeleteElement(Core_List_Log(), 1) ElseIf Core_Set_List_DeleteMethod.i = 1 \Log_Cat.s = Cat.s \Log_Entry.s = "Deleted on " + Core_Date.s + " at " + Core_Time.s \Log_Int.i = Int.i EndIf EndIf EndWith Wend ;} ElseIf Func.s = "Output" ;{ Output If Core_Log_Output.i = 0 If Core_Log_View.i = 1 Debug "=============" Debug "= Core File Log =" Debug "=============" Debug "" EndIf ResetList(Core_List_Log()) While NextElement(Core_List_Log()) With Core_List_Log() If Core_Log_View.i = 1 Debug "ID: " + LSet("", 5, Chr(32)) + Chr(91) + LSet(Chr(32) + Str(\Log_ID.i), Core_Log_CountChars.i + 8, Chr(32)) + Chr(32) + Chr(93) Debug "Date: " + LSet("", 1, Chr(32)) + Chr(91) + LSet(Chr(32) + \Log_Date.s, Core_Log_CountChars.i + 1, Chr(32)) + Chr(32) + Chr(93) Debug "Time: " + LSet("", 1, Chr(32)) + Chr(91) + LSet(Chr(32) + \Log_Time.s, Core_Log_CountChars.i + 3, Chr(32)) + Chr(32) + Chr(93) Debug "Cat: " + LSet("", 3, Chr(32)) + Chr(91) + LSet(Chr(32) + \Log_Cat.s, Core_Log_CountChars.i + 3, Chr(32)) + Chr(32) + Chr(93) Debug "Entry: " + LSet("", 1, Chr(32)) + Chr(91) + LSet(Chr(32) + \Log_Entry.s, Core_Log_CountChars.i, Chr(32)) + Chr(32) + Chr(93) Debug "Int: " + LSet("", 5, Chr(32)) + Chr(91) + LSet(Chr(32) + Str(\Log_Int.i), Core_Log_CountChars.i + 7, Chr(32)) + Chr(32) + Chr(93) Debug "" ElseIf Core_Log_View.i = 2 Debug "ID: " + Str(\Log_ID.i) + Chr(32) + Chr(32) + Chr(32) + Chr(124) + Chr(32) + "Date: " + \Log_Date.s + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(124) + Chr(32) + "Time: " + \Log_Time.s + Chr(32) + Chr(32) + Chr(32) + Chr(124) + Chr(32) + "Cat: " + \Log_Cat.s + Chr(32) + Chr(32) + Chr(32) + Chr(124) + Chr(32) + "Entry: " + \Log_Entry.s + Chr(32) + Chr(32) + Chr(32) + Chr(124) + Chr(32) + "Int: " + \Log_Int.i EndIf EndWith Wend ElseIf Core_Log_Output.i = 1 ResetList(Core_List_Log()) While NextElement(Core_List_Log()) With Core_List_Log() Core_Log_Size.i = Len(Str(\Log_ID.i)) + Len(\Log_Date.s) + Len(\Log_Time.s) + Len(\Log_Cat.s) + Len(\Log_Entry.s) + Len(Str(\Log_Int.i)) Core_Log_SizeTotal.i + Core_Log_Size.i EndWith Wend Core_Log_SizeTotal.i * 2 Core_Func_FileCreate(#Core_Log_File, Core_Log_Filename.s) WriteStringN(#Core_Log_File, "") WriteStringN(#Core_Log_File, Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(42) + Chr(42) + Chr(42) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(42) + Chr(42) + Chr(42)) WriteStringN(#Core_Log_File, Chr(32) + Chr(32) + Chr(32) + Chr(42) + Chr(42) + Chr(42) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(42) + Chr(42) + Chr(42)) WriteStringN(#Core_Log_File, Chr(32) + Chr(32) + Chr(42) + Chr(42) + Chr(42) + Chr(32) + Chr(32) + Chr(32) + "Core File Log" + Chr(32) + Chr(32) + Chr(32) + Chr(42) + Chr(42) + Chr(42)) WriteStringN(#Core_Log_File, Chr(32) + Chr(32) + Chr(32) + Chr(42) + Chr(42) + Chr(42) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(42) + Chr(42) + Chr(42)) WriteStringN(#Core_Log_File, Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(42) + Chr(42) + Chr(42) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(32) + Chr(42) + Chr(42) + Chr(42)) WriteStringN(#Core_Log_File, "") WriteStringN(#Core_Log_File, "") WriteStringN(#Core_Log_File, Chr(32) + Chr(187) + Chr(32) + "Core File Log created on " + Core_Date.s + " at " + Core_Time.s) WriteStringN(#Core_Log_File, "") WriteStringN(#Core_Log_File, Chr(32) + Chr(187) + Chr(32) + "Entries: " + LSet("", 3, Chr(32)) + ListSize(Core_List_Log())) WriteStringN(#Core_Log_File, Chr(32) + Chr(187) + Chr(32) + "Size: " + LSet("", 6, Chr(32)) + Core_Log_SizeTotal.i + Chr(32) + "Byte") WriteStringN(#Core_Log_File, "") WriteStringN(#Core_Log_File, "") ResetList(Core_List_Log()) While NextElement(Core_List_Log()) With Core_List_Log() If Len(Str(\Log_ID.i)) > Core_Log_LenID.i Core_Log_LenID.i = Len(Str(\Log_ID.i)) EndIf If Len(\Log_Date.s) > Core_Log_LenDate.i Core_Log_LenDate.i = Len(\Log_Date.s) EndIf If Len(\Log_Time.s) > Core_Log_LenTime.i Core_Log_LenTime.i = Len(\Log_Time.s) EndIf If Len(\Log_Cat.s) > Core_Log_LenCat.i Core_Log_LenCat.i = Len(\Log_Cat.s) EndIf If Len(\Log_Entry.s) > Core_Log_LenEntry.i Core_Log_LenEntry.i = Len(\Log_Entry.s) EndIf If Len(Str(\Log_Int.i)) > Core_Log_LenInt.i Core_Log_LenInt.i = Len(Str(\Log_Int.i)) EndIf EndWith Wend ResetList(Core_List_Log()) While NextElement(Core_List_Log()) With Core_List_Log() Core_Log_Size.i = Len(Str(\Log_ID.i)) + Len(\Log_Date.s) + Len(\Log_Time.s) + Len(\Log_Cat.s) + Len(\Log_Entry.s) + Len(Str(\Log_Int.i)) Core_Log_Size.i * 2 If Core_Log_View.i = 1 WriteStringN(#Core_Log_File, Chr(32) + "ID: " + LSet("", 3, Chr(32)) + Chr(91) + LSet(Chr(32) + Str(\Log_ID.i), Core_Log_CountChars.i, Chr(32)) + Chr(32) + Chr(93)) WriteStringN(#Core_Log_File, Chr(32) + "Date: " + LSet("", 1, Chr(32)) + Chr(91) + LSet(Chr(32) + \Log_Date.s, Core_Log_CountChars.i, Chr(32)) + Chr(32) + Chr(93)) WriteStringN(#Core_Log_File, Chr(32) + "Time: " + LSet("", 1, Chr(32)) + Chr(91) + LSet(Chr(32) + \Log_Time.s, Core_Log_CountChars.i, Chr(32)) + Chr(32) + Chr(93)) WriteStringN(#Core_Log_File, Chr(32) + "Cat: " + LSet("", 2, Chr(32)) + Chr(91) + LSet(Chr(32) + \Log_Cat.s, Core_Log_CountChars.i, Chr(32)) + Chr(32) + Chr(93)) WriteStringN(#Core_Log_File, Chr(32) + "Entry: " + Chr(91) + LSet(Chr(32) + \Log_Entry.s, Core_Log_CountChars.i, Chr(32)) + Chr(32) + Chr(93)) WriteStringN(#Core_Log_File, Chr(32) + "Int: " + LSet("", 2, Chr(32)) + Chr(91) + LSet(Chr(32) + Str(\Log_Int.i), Core_Log_CountChars.i, Chr(32)) + Chr(32) + Chr(93)) WriteStringN(#Core_Log_File, Chr(32) + "") ElseIf Core_Log_View.i = 2 WriteStringN(#Core_Log_File, Chr(32) + "ID: " + Chr(91) + Chr(32) + Str(\Log_ID.i) + LSet("", Core_Log_LenID.i - Len(Str(\Log_ID.i)), Chr(32)) + Chr(32) + Chr(93) + Chr(32) + "Date: " + Chr(91) + Chr(32) + \Log_Date.s + LSet("", Core_Log_LenDate.i - Len(\Log_Date.s), Chr(32)) + Chr(32) + Chr(93) + Chr(32) + "Time: " + Chr(91) + Chr(32) + \Log_Time.s + LSet("", Core_Log_LenTime.i - Len(\Log_Time.s), Chr(32)) + Chr(32) + Chr(93) + Chr(32) + "Cat: " + Chr(91) + Chr(32) + \Log_Cat.s + LSet("", Core_Log_LenCat.i - Len(\Log_Cat.s), Chr(32)) + Chr(32) + Chr(93) + Chr(32) + "Entry: " + Chr(91) + Chr(32) + \Log_Entry.s + LSet("", Core_Log_LenEntry.i - Len(\Log_Entry.s), Chr(32)) + Chr(32) + Chr(93) + Chr(32) + "Int: " + Chr(91) + Chr(32) + \Log_Int.i + LSet("", Core_Log_LenInt.i - Len(Str(\Log_Int.i)), Chr(32)) + Chr(32) + Chr(93)) ElseIf Core_Log_View.i = 3 WriteStringN(#Core_Log_File, Chr(32) + "ID: " + LSet("", 3, Chr(32)) + Chr(91) + Chr(32) + Str(\Log_ID.i) + LSet("", Core_Log_LenID.i - Len(Str(\Log_ID.i)), Chr(32)) + Chr(32) + Chr(93) + LSet("", Len(Str(\Log_ID.i)) + Len(\Log_Date.s) + Len(\Log_Time.s) - 9, Chr(32)) + "Size: " + Chr(32) + Chr(91) + Chr(32) + Str(Core_Log_Size.i) + Chr(32) + "byte" + Chr(32) + Chr(93)) WriteStringN(#Core_Log_File, Chr(32) + "Date: " + LSet("", 1, Chr(32)) + Chr(91) + Chr(32) + \Log_Date.s + LSet("", Core_Log_LenDate.i - Len(\Log_Date.s), Chr(32)) + Chr(32) + Chr(93) + Chr(32) + "Time: " + LSet("", 1, Chr(32)) + Chr(91) + Chr(32) + \Log_Time.s + LSet("", Core_Log_LenTime.i - Len(\Log_Time.s), Chr(32)) + Chr(32) + Chr(93)) WriteStringN(#Core_Log_File, Chr(32) + "Cat: " + LSet("", 2, Chr(32)) + Chr(91) + Chr(32) + \Log_Cat.s + LSet("", Core_Log_LenCat.i - Len(\Log_Cat.s), Chr(32)) + Chr(32) + Chr(93)) WriteStringN(#Core_Log_File, Chr(32) + "Entry: " + Chr(91) + Chr(32) + \Log_Entry.s + LSet("", Core_Log_LenEntry.i - Len(\Log_Entry.s), Chr(32)) + Chr(32) + Chr(93)) WriteStringN(#Core_Log_File, Chr(32) + "Int: " + LSet("", 2, Chr(32)) + Chr(91) + Chr(32) + Str(\Log_Int.i) + LSet("", Core_Log_LenInt.i - Len(Str(\Log_Int.i)), Chr(32)) + Chr(32) + Chr(93)) WriteStringN(#Core_Log_File, "") EndIf EndWith Wend CloseFile(#Core_Log_File) If Core_Log_FileOpenAuto.i = 1 RunProgram(Core_Log_Filename.s, "", "") EndIf ElseIf Core_Log_Output.i = 2 OpenWindow(#Core_Log_Window, 10, 10, 800, 600, "Core File Log Window", #PB_Window_ScreenCentered) AddKeyboardShortcut(#Core_Log_Window, #PB_Shortcut_Escape, 0) ListIconGadget(0, 0, 50, 800, 550, "ID", 50, #PB_ListIcon_FullRowSelect) AddGadgetColumn(0, 1, "Date", 70) AddGadgetColumn(0, 2, "Time", 60) AddGadgetColumn(0, 3, "Cat", 100) AddGadgetColumn(0, 4, "Entry", 440) AddGadgetColumn(0, 5, "Int", 50) ResetList(Core_List_Log()) While NextElement(Core_List_Log()) With Core_List_Log() AddGadgetItem(0, -1, Str(\Log_ID.i) + Chr(10) + \Log_Date.s + Chr(10) + \Log_Time.s + Chr(10) + \Log_Cat.s + Chr(10) + \Log_Entry.s + Chr(10) + \Log_Int.i) EndWith Wend Repeat Event = WaitWindowEvent() Select Event Case #PB_Event_Menu Select EventMenu() Case 0 : End EndSelect Case #PB_Event_Gadget Select EventGadget() EndSelect EndSelect Until Event = #PB_Event_CloseWindow EndIf ;} ElseIf Func.s = "Prepare" ;{ Prepare Core_Log_List_Func("Add", 0, "System", "OS Name:" + Chr(32) + Core_Sys_OS_Name.s) Core_Log_List_Func("Add", 0, "System", "CPU Name:" + Chr(32) + Core_Sys_CPU_Name.s) Core_Log_List_Func("Add", 0, "System", "RAM (Total):" + Chr(32) + Core_Sys_RAM_GB.s + Chr(32) + "Gigabytes") Core_Log_List_Func("Add", 0, "System", "GPU Name:" + Chr(32) + Core_Sys_GPU_Name.s) Core_Log_List_Func("Add", 0, "Application", "Add" + Chr(32) + ListSize(Core_List_Main()) + " Entries To Main List") ;} EndIf EndProcedure ;} ;{ Display-System ;################## ;# # ;# Display-System # ;# # ;################## Procedure Core_Display(Core_Scr_Mode.i, Width.i = 0, Height.i = 0) If Width.i = 0 Width.i = Core_Scr_W.i Else Core_Scr_W.i = Width.i EndIf If Height.i = 0 Height.i = Core_Scr_H.i Else Core_Scr_H.i = Height.i EndIf If Core_Scr_Mode.i = 0 OpenWindow(0, Core_Scr_X.i, Core_Scr_Y.i, Width.i, Height.i, Core_Scr_T.s, Core_Scr_FM.i) ElseIf Core_Scr_Mode.i = 1 OpenWindow(0, Core_Scr_X.i, Core_Scr_Y.i, Width.i, Height.i, Core_Scr_T.s, Core_Scr_FC.i) ElseIf Core_Scr_Mode.i = 2 If Core_Ini_Sprite.i = 1 OpenWindow(0, Core_Scr_X.i, Core_Scr_Y.i, Width.i, Height.i, Core_Scr_T.s, Core_Scr_FC.i) OpenWindowedScreen(WindowID(0), 0, 0, Width.i, Height.i, Core_Scr_AS.i, 0, 0, Core_Scr_F.i) Else If Core_Set_ErrorMode.i = 1 MessageRequester(Core_Msg_Error_Title.s, Core_Msg_Error_Sprite.s) EndIf EndIf ElseIf Core_Scr_Mode.i = 3 If Core_Ini_Sprite.i = 1 OpenScreen(Width.i, Height.i, Core_Scr_D.i, Core_Scr_T.s, Core_Scr_F.i, Core_Scr_R.i) Else If Core_Set_ErrorMode.i = 1 MessageRequester(Core_Msg_Error_Title.s, Core_Msg_Error_Sprite.s) EndIf EndIf EndIf EndProcedure Procedure Core_Display_Shortcuts(WinID.i = 0, Key.s = "", MenuID.i = 0) If Key.s = "Escape" Or Key.s = "Esc" AddKeyboardShortcut(WinID.i, #PB_Shortcut_Escape, MenuID.i) ElseIf Key.s = "F1" AddKeyboardShortcut(WinID.i, #PB_Shortcut_F1, MenuID.i) ElseIf Key.s = "F2" AddKeyboardShortcut(WinID.i, #PB_Shortcut_F2, MenuID.i) ElseIf Key.s = "F3" AddKeyboardShortcut(WinID.i, #PB_Shortcut_F3, MenuID.i) ElseIf Key.s = "F4" AddKeyboardShortcut(WinID.i, #PB_Shortcut_F4, MenuID.i) ElseIf Key.s = "F5" AddKeyboardShortcut(WinID.i, #PB_Shortcut_F5, MenuID.i) ElseIf Key.s = "F6" AddKeyboardShortcut(WinID.i, #PB_Shortcut_F6, MenuID.i) ElseIf Key.s = "F7" AddKeyboardShortcut(WinID.i, #PB_Shortcut_F7, MenuID.i) ElseIf Key.s = "F8" AddKeyboardShortcut(WinID.i, #PB_Shortcut_F8, MenuID.i) ElseIf Key.s = "F9" AddKeyboardShortcut(WinID.i, #PB_Shortcut_F9, MenuID.i) ElseIf Key.s = "F10" AddKeyboardShortcut(WinID.i, #PB_Shortcut_F10, MenuID.i) ElseIf Key.s = "F11" AddKeyboardShortcut(WinID.i, #PB_Shortcut_F11, MenuID.i) ElseIf Key.s = "F12" AddKeyboardShortcut(WinID.i, #PB_Shortcut_F12, MenuID.i) ElseIf Key.s = "Tab" AddKeyboardShortcut(WinID.i, #PB_Shortcut_Tab, MenuID.i) ElseIf Key.s = "Enter" AddKeyboardShortcut(WinID.i, #PB_Shortcut_Return, MenuID.i) ElseIf Key.s = "Space" AddKeyboardShortcut(WinID.i, #PB_Shortcut_Space, MenuID.i) EndIf EndProcedure Procedure Core_Display_WaitWindowEvent() Repeat ;{ WaitWindowEvent Event = WaitWindowEvent() If Event = 0 Delay(1) EndIf Select Event Case #PB_Event_Menu Select EventMenu() Case 0: End EndSelect Case #PB_Event_Gadget Select EventGadget() EndSelect EndSelect ;} Until Event = #PB_Event_CloseWindow EndProcedure Procedure Core_Display_WindowEvent() Repeat ;{ WindowEvent Event = WindowEvent() If Event = 0 Delay(1) EndIf Select Event Case #PB_Event_Menu Select EventMenu() Case 0: End EndSelect Case #PB_Event_Gadget Select EventGadget() EndSelect EndSelect ;} Until Event = #PB_Event_CloseWindow EndProcedure Procedure Core_Display_ScreenInfo(Posi.i, TextSize.i) Core_Func_Runtime("Prepare") ;{ Coordinates If Posi.i = 0 Core_Co_ScreenInfo_TitleX.i = 5 Core_Co_ScreenInfo_TitleY.i = 5 Core_Co_ScreenInfo_TextX.i = 15 Core_Co_ScreenInfo_TextY.i = 15 Core_Co_ScreenInfo_InfoX.i = 140 Core_Co_ScreenInfo_InfoY.i = 15 ElseIf Posi.i = 1 Core_Co_ScreenInfo_TitleX.i = 5 Core_Co_ScreenInfo_TitleY.i = Core_Scr_H.i - 100 Core_Co_ScreenInfo_TextX.i = 15 Core_Co_ScreenInfo_TextY.i = Core_Scr_H.i - 100 Core_Co_ScreenInfo_InfoX.i = 140 Core_Co_ScreenInfo_InfoY.i = Core_Scr_H.i - 100 EndIf ;} If Core_Set_ScreenInfo_Display.i = 1 StartDrawing(ScreenOutput()) DrawingMode(#PB_2DDrawing_Transparent) ;{ Title If TextSize.i <= 8 : DrawingFont(FontID(#Core_Font_Arial_8_Bold)) : EndIf If TextSize.i = 9 : DrawingFont(FontID(#Core_Font_Arial_9_Bold)) : EndIf If TextSize.i = 10 : DrawingFont(FontID(#Core_Font_Arial_10_Bold)) : EndIf If TextSize.i = 11 : DrawingFont(FontID(#Core_Font_Arial_11_Bold)) : EndIf If TextSize.i >= 12 : DrawingFont(FontID(#Core_Font_Arial_12_Bold)) : EndIf If Posi.i = 0 DrawText(Core_Co_ScreenInfo_TitleX.i, Core_Co_ScreenInfo_TitleY.i, "Screen-Info", Core_Clr_ScreenInfo_Title.i) ElseIf Posi.i = 1 DrawText(Core_Co_ScreenInfo_TitleX.i, Core_Co_ScreenInfo_TitleY.i, "Screen-Info", Core_Clr_ScreenInfo_Title.i) EndIf ;} ;{ Text If TextSize.i <= 8 : DrawingFont(FontID(#Core_Font_Arial_8)) : EndIf If TextSize.i = 9 : DrawingFont(FontID(#Core_Font_Arial_9)) : EndIf If TextSize.i = 10 : DrawingFont(FontID(#Core_Font_Arial_10)) : EndIf If TextSize.i = 11 : DrawingFont(FontID(#Core_Font_Arial_11)) : EndIf If TextSize.i >= 12 : DrawingFont(FontID(#Core_Font_Arial_12)) : EndIf ; Dynamic Text-Align ;DrawText(15, 25, "Resolution:", Core_Clr_ScreenInfo_Text.i) ;DrawText(15 + TextWidth("Resolution") + 5, 25, Str(Core_Scr_W.i) + "x" + Str(Core_Scr_H.i) + "@" + Str(Core_Scr_R.i) + "Hz", Core_Clr_ScreenInfo_Text.i) ;DrawText(15, 40, "Color Quality:", Core_Clr_ScreenInfo_Text.i) ;DrawText(15 + TextWidth("Color Quality") + 5, 40, Str(Core_Scr_D.i) + "-Bit", Core_Clr_ScreenInfo_Text.i) If Posi.i = 0 If TextSize.i < 11 DrawText(Core_Co_ScreenInfo_TextX.i, Core_Co_ScreenInfo_TextY.i + 25, "Resolution:", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_InfoX.i, Core_Co_ScreenInfo_InfoY.i + 25, Str(Core_Scr_W.i) + "x" + Str(Core_Scr_H.i) + "@" + Str(Core_Scr_R.i) + "Hz", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_TextX.i, Core_Co_ScreenInfo_TextY.i + 40, "Color Quality:", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_InfoX.i, Core_Co_ScreenInfo_InfoY.i + 40, Str(Core_Scr_D.i) + "-Bit", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_TextX.i, Core_Co_ScreenInfo_TextY.i + 55, "Frames per second:", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_InfoX.i, Core_Co_ScreenInfo_InfoY.i + 55, StrF(FPS(), 2) + Chr(32) + "FPS", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_TextX.i, Core_Co_ScreenInfo_TextY.i + 70, "Time elapsed:", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_InfoX.i, Core_Co_ScreenInfo_InfoY.i + 70, Core_Run_Display.s, Core_Clr_ScreenInfo_Text.i) ElseIf TextSize.i > 10 DrawText(Core_Co_ScreenInfo_TextX.i, Core_Co_ScreenInfo_TextY.i + 25, "Resolution:", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_InfoX.i + 30, Core_Co_ScreenInfo_TextY.i + 25, Str(Core_Scr_W.i) + "x" + Str(Core_Scr_H.i) + "@" + Str(Core_Scr_R.i) + "Hz", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_TextX.i, Core_Co_ScreenInfo_TextY.i + 40, "Color Quality:", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_InfoX.i + 30, Core_Co_ScreenInfo_TextY.i + 40, Str(Core_Scr_D.i) + "-Bit", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_TextX.i, Core_Co_ScreenInfo_TextY.i + 55, "Frames per second:", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_InfoX.i + 30, Core_Co_ScreenInfo_TextY.i + 55, StrF(FPS(), 2) + Chr(32) + "FPS", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_TextX.i, Core_Co_ScreenInfo_TextY.i + 70, "Time elapsed:", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_InfoX.i + 30, Core_Co_ScreenInfo_TextY.i + 70, Core_Run_Display.s, Core_Clr_ScreenInfo_Text.i) EndIf ElseIf Posi.i = 1 If TextSize.i < 11 DrawText(Core_Co_ScreenInfo_TextX.i, Core_Co_ScreenInfo_TextY.i + 25, "Resolution:", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_InfoX.i, Core_Co_ScreenInfo_TextY.i + 25, Str(Core_Scr_W.i) + "x" + Str(Core_Scr_H.i) + "@" + Str(Core_Scr_R.i) + "Hz", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_TextX.i, Core_Co_ScreenInfo_TextY.i + 40, "Color Quality:", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_InfoX.i, Core_Co_ScreenInfo_TextY.i + 40, Str(Core_Scr_D.i) + "-Bit", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_TextX.i, Core_Co_ScreenInfo_TextY.i + 55, "Frames per second:", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_InfoX.i, Core_Co_ScreenInfo_TextY.i + 55, StrF(FPS(), 2) + Chr(32) + "FPS", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_TextX.i, Core_Co_ScreenInfo_TextY.i + 70, "Time elapsed:", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_InfoX.i, Core_Co_ScreenInfo_TextY.i + 70, Core_Run_Display.s, Core_Clr_ScreenInfo_Text.i) ElseIf TextSize.i > 10 DrawText(Core_Co_ScreenInfo_TextX.i, Core_Co_ScreenInfo_TextY.i + 25, "Resolution:", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_InfoX.i + 30, Core_Co_ScreenInfo_TextY.i + 25, Str(Core_Scr_W.i) + "x" + Str(Core_Scr_H.i) + "@" + Str(Core_Scr_R.i) + "Hz", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_TextX.i, Core_Co_ScreenInfo_TextY.i + 40, "Color Quality:", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_InfoX.i + 30, Core_Co_ScreenInfo_TextY.i + 40, Str(Core_Scr_D.i) + "-Bit", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_TextX.i, Core_Co_ScreenInfo_TextY.i + 55, "Frames per second:", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_InfoX.i + 30, Core_Co_ScreenInfo_TextY.i + 55, StrF(FPS(), 2) + Chr(32) + "FPS", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_TextX.i, Core_Co_ScreenInfo_TextY.i + 70, "Time elapsed:", Core_Clr_ScreenInfo_Text.i) DrawText(Core_Co_ScreenInfo_InfoX.i + 30, Core_Co_ScreenInfo_TextY.i + 70, Core_Run_Display.s, Core_Clr_ScreenInfo_Text.i) EndIf EndIf ;} StopDrawing() EndIf EndProcedure Procedure Core_Display_ScreenKeyboard(Func.s = "") If Func.s = "Input" EndIf EndProcedure Macro Core_Display_ScreenActive() If IsScreenActive() <> 0 ProcedureReturn 1 EndIf ReleaseMouse(0) Core_Display(3) EndMacro Macro Core_Display_ScreenInactive() If IsScreenActive() = 0 ProcedureReturn 0 EndIf ReleaseMouse(1) Core_Display(0) EndMacro ;} ;{ DevCon-System ;################# ;# # ;# DevCon-System # ;# # ;################# Procedure Core_DevCon_Create(Sprite.i, Sprite3D.i, Edge.i) If CreateSprite(Sprite.i, Core_Coo_DevCon_W.i, Core_Coo_DevCon_H.i, #PB_Sprite_Texture) DevCon_Edge.i = Edge.i StartDrawing(SpriteOutput(Sprite.i)) DrawingMode(#PB_2DDrawing_Transparent) ; Edge RoundBox(0, 0, Core_Coo_DevCon_W.i, Core_Coo_DevCon_H.i, Core_Coo_DevCon_R.i, Core_Coo_DevCon_R.i, Core_Clr_DevCon_EdgeOut.i) RoundBox(0, 2, Core_Coo_DevCon_W.i, Core_Coo_DevCon_H.i - 2, Core_Coo_DevCon_R.i, Core_Coo_DevCon_R.i, Core_Clr_DevCon_EdgeOut.i) RoundBox(0, 4, Core_Coo_DevCon_W.i, Core_Coo_DevCon_H.i - 4, Core_Coo_DevCon_R.i, Core_Coo_DevCon_R.i, Core_Clr_DevCon_EdgeOut.i) ; History RoundBox(DevCon_Edge.i, DevCon_Edge.i, Core_Coo_DevCon_W.i - (DevCon_Edge.i * 2), Core_Coo_DevCon_H.i - (DevCon_Edge.i * 2), Core_Coo_DevCon_R.i, Core_Coo_DevCon_R.i, Core_Clr_DevCon_EdgeIn.i) RoundBox(DevCon_Edge.i + 1, DevCon_Edge.i + 1, Core_Coo_DevCon_W.i - ((DevCon_Edge.i + 1) * 2), Core_Coo_DevCon_H.i - ((DevCon_Edge.i + 1) * 2), Core_Coo_DevCon_R.i, Core_Coo_Con_R.i, Core_Clr_DevCon_Content.i) ; Input Box(DevCon_Edge.i, (Core_Coo_DevCon_H.i - (DevCon_Edge.i + 1)) - ((Core_Scr_H.i / 30) + DevCon_Edge.i), Core_Coo_DevCon_W.i - (DevCon_Edge.i * 2), DevCon_Edge.i, Core_Clr_DevCon_EdgeIn.i) Box(DevCon_Edge.i, (Core_Coo_DevCon_H.i - (DevCon_Edge.i + 1)) - ((Core_Scr_H.i / 30) + DevCon_Edge.i) + 1, Core_Coo_DevCon_W.i - (DevCon_Edge.i * 2), DevCon_Edge.i - 2, Core_Clr_DevCon_EdgeOut.i) StopDrawing() Else If Core_Set_ErrorMode.i = 1 MessageRequester("Core File - Error", "Can't create Sprite (DevCon)") EndIf EndIf If Not CreateSprite3D(Sprite3D.i, Sprite.i) If Core_Set_ErrorMode.i = 1 MessageRequester("Core File - Error", "Can't create Sprite3D (DevCon)") EndIf EndIf EndProcedure Procedure Core_DevCon_Func(Func.s = "") If Func.s = "Create" ;{ Create ;{ Bugfix ;================================================== ; Bugfix - same values like in the Core_Main() Core_Coo_DevCon_X.i = Core_Scr_W.i - (Core_Scr_W.i * 3 / 4) - (Core_Scr_W.i / 30) Core_Coo_DevCon_Y.i = Core_Scr_H.i / 20 Core_Coo_DevCon_W.i = Core_Scr_W.i * 3 / 4 Core_Coo_DevCon_H.i = Core_Scr_H.i * 3 / 5 ;================================================== ;} ;{ Create DevCon with variable Edge If CreateSprite(#Core_GFX_DevCon, Core_Coo_DevCon_W.i, Core_Coo_DevCon_H.i, #PB_Sprite_Texture) Core_Ini_DevCon.i = 1 StartDrawing(SpriteOutput(#Core_GFX_DevCon)) DrawingMode(#PB_2DDrawing_Transparent) ; Edge RoundBox(0, 0, Core_Coo_DevCon_W.i, Core_Coo_DevCon_H.i, Core_Coo_DevCon_R.i, Core_Coo_DevCon_R.i, Core_Clr_DevCon_EdgeOut.i) RoundBox(0, 2, Core_Coo_DevCon_W.i, Core_Coo_DevCon_H.i - 2, Core_Coo_DevCon_R.i, Core_Coo_DevCon_R.i, Core_Clr_DevCon_EdgeOut.i) RoundBox(0, 4, Core_Coo_DevCon_W.i, Core_Coo_DevCon_H.i - 4, Core_Coo_DevCon_R.i, Core_Coo_DevCon_R.i, Core_Clr_DevCon_EdgeOut.i) ; History RoundBox(Core_Set_DevCon_Edge.i, Core_Set_DevCon_Edge.i, Core_Coo_DevCon_W.i - (Core_Set_DevCon_Edge.i * 2), Core_Coo_DevCon_H.i - (Core_Set_DevCon_Edge.i * 2), Core_Coo_DevCon_R.i, Core_Coo_DevCon_R.i, Core_Clr_DevCon_EdgeIn.i) RoundBox(Core_Set_DevCon_Edge.i + 1, Core_Set_DevCon_Edge.i + 1, Core_Coo_DevCon_W.i - ((Core_Set_DevCon_Edge.i + 1) * 2), Core_Coo_DevCon_H.i - ((Core_Set_DevCon_Edge.i + 1) * 2), Core_Coo_DevCon_R.i, Core_Coo_Con_R.i, Core_Clr_DevCon_Content.i) ; Input ;RoundBox(0, Core_Coo_DevCon_H.i - (Core_Coo_DevCon_H.i / 10), Core_Coo_DevCon_W.i, Core_Coo_DevCon_H.i / 10, Core_Coo_DevCon_R.i, Core_Coo_DevCon_R.i, Core_Clr_DevCon_EdgeOut.i) ;RoundBox(Core_Set_DevCon_Edge.i, Core_Coo_DevCon_H.i - (Core_Coo_DevCon_H.i / 10) + Core_Set_DevCon_Edge.i, Core_Coo_DevCon_W.i - (Core_Set_DevCon_Edge.i * 2), Core_Coo_DevCon_H.i / 10 - (Core_Set_DevCon_Edge.i * 2), Core_Coo_DevCon_R.i, Core_Coo_DevCon_R.i, Core_Clr_DevCon_EdgeIn.i) ;RoundBox(Core_Set_DevCon_Edge.i + 1, Core_Coo_DevCon_H.i - (Core_Coo_DevCon_H.i / 10) + (Core_Set_DevCon_Edge.i + 1), Core_Coo_DevCon_W.i - ((Core_Set_DevCon_Edge.i + 1) * 2), Core_Coo_DevCon_H.i / 10 - ((Core_Set_DevCon_Edge.i + 1) * 2), Core_Coo_DevCon_R.i, Core_Coo_DevCon_R.i, Core_Clr_DevCon_Content.i) Box(Core_Set_DevCon_Edge.i, (Core_Coo_DevCon_H.i - (Core_Set_DevCon_Edge.i + 1)) - ((Core_Scr_H.i / 30) + Core_Set_DevCon_Edge.i), Core_Coo_DevCon_W.i - (Core_Set_DevCon_Edge.i * 2), Core_Set_DevCon_Edge.i, Core_Clr_DevCon_EdgeIn.i) Box(Core_Set_DevCon_Edge.i, (Core_Coo_DevCon_H.i - (Core_Set_DevCon_Edge.i + 1)) - ((Core_Scr_H.i / 30) + Core_Set_DevCon_Edge.i) + 1, Core_Coo_DevCon_W.i - (Core_Set_DevCon_Edge.i * 2), Core_Set_DevCon_Edge.i - 2, Core_Clr_DevCon_EdgeOut.i) StopDrawing() Else Core_Ini_DevCon.i = 0 If Core_Set_ErrorMode.i = 1 MessageRequester("Core File - Error", "Can't create Sprite (Console)") EndIf EndIf If Core_Ini_DevCon.i = 1 If CreateSprite3D(#Core_GFX_DevCon3D, #Core_GFX_DevCon) Core_Ini_DevCon3D.i = 1 Else Core_Ini_DevCon3D.i = 0 If Core_Set_ErrorMode.i = 1 MessageRequester("Core File - Error", "Can't create Sprite3D (Console)") EndIf EndIf EndIf ;} ;{ Create DevCon with Edge 3 to 20 Core_DevCon_Create(#Core_GFX_DevCon_Edge3, #Core_GFX_DevCon3D_Edge3, 3) Core_DevCon_Create(#Core_GFX_DevCon_Edge4, #Core_GFX_DevCon3D_Edge4, 4) Core_DevCon_Create(#Core_GFX_DevCon_Edge5, #Core_GFX_DevCon3D_Edge5, 5) Core_DevCon_Create(#Core_GFX_DevCon_Edge6, #Core_GFX_DevCon3D_Edge6, 6) Core_DevCon_Create(#Core_GFX_DevCon_Edge7, #Core_GFX_DevCon3D_Edge7, 7) Core_DevCon_Create(#Core_GFX_DevCon_Edge8, #Core_GFX_DevCon3D_Edge8, 8) Core_DevCon_Create(#Core_GFX_DevCon_Edge9, #Core_GFX_DevCon3D_Edge9, 9) Core_DevCon_Create(#Core_GFX_DevCon_Edge10, #Core_GFX_DevCon3D_Edge10, 10) Core_DevCon_Create(#Core_GFX_DevCon_Edge11, #Core_GFX_DevCon3D_Edge11, 11) Core_DevCon_Create(#Core_GFX_DevCon_Edge12, #Core_GFX_DevCon3D_Edge12, 12) Core_DevCon_Create(#Core_GFX_DevCon_Edge13, #Core_GFX_DevCon3D_Edge13, 13) Core_DevCon_Create(#Core_GFX_DevCon_Edge14, #Core_GFX_DevCon3D_Edge14, 14) Core_DevCon_Create(#Core_GFX_DevCon_Edge15, #Core_GFX_DevCon3D_Edge15, 15) Core_DevCon_Create(#Core_GFX_DevCon_Edge16, #Core_GFX_DevCon3D_Edge16, 16) Core_DevCon_Create(#Core_GFX_DevCon_Edge17, #Core_GFX_DevCon3D_Edge17, 17) Core_DevCon_Create(#Core_GFX_DevCon_Edge18, #Core_GFX_DevCon3D_Edge18, 18) Core_DevCon_Create(#Core_GFX_DevCon_Edge19, #Core_GFX_DevCon3D_Edge19, 19) Core_DevCon_Create(#Core_GFX_DevCon_Edge20, #Core_GFX_DevCon3D_Edge20, 20) ;} ;} ElseIf Func.s = "Display" ;{ Display ;{ Control DevCon visibility by released [^] If KeyboardReleased(#PB_Key_Grave) If Core_Set_DevCon_Display.i = 0 Core_Set_DevCon_Display.i = 1 ElseIf Core_Set_DevCon_Display.i = 1 Core_Set_DevCon_Display.i = 0 EndIf EndIf ;} ;{ Control Transparency by pressed + released [Ctrl + D + L] or [Ctrl + D + M] If KeyboardPushed(#PB_Key_LeftControl) And KeyboardPushed(#PB_Key_D) And KeyboardReleased(#PB_Key_L) If Core_Main_List_Func("GetInt", 0, "Settings", "DevCon_Transparency") > 54 Core_Main_List_Func("Sub", 0, "Settings", "DevCon_Transparency", 0, 25) EndIf ElseIf KeyboardPushed(#PB_Key_LeftControl) And KeyboardPushed(#PB_Key_D) And KeyboardReleased(#PB_Key_M) If Core_Main_List_Func("GetInt", 0, "Settings", "DevCon_Transparency") < 231 Core_Main_List_Func("Sum", 0, "Settings", "DevCon_Transparency", 0, 25) EndIf EndIf ;} ;{ Control Edge by pressed + released [Ctrl + D + PageDown] or [Ctrl + D + PageUp] If KeyboardPushed(#PB_Key_LeftControl) And KeyboardPushed(#PB_Key_D) And KeyboardReleased(#PB_Key_PageDown) If Core_Set_DevCon_Edge.i > 3 Core_Set_DevCon_Edge.i - 1 EndIf If Core_Main_List_Func("GetInt", 0, "Settings", "DevCon_Edge") > 3 Core_Main_List_Func("Sub", 0, "Settings", "DevCon_Edge", 0, 1) EndIf ElseIf KeyboardPushed(#PB_Key_LeftControl) And KeyboardPushed(#PB_Key_D) And KeyboardReleased(#PB_Key_PageUp) If Core_Set_DevCon_Edge.i < 20 Core_Set_DevCon_Edge.i + 1 EndIf If Core_Main_List_Func("GetInt", 0, "Settings", "DevCon_Edge") < 20 Core_Main_List_Func("Sum", 0, "Settings", "DevCon_Edge", 0, 1) EndIf EndIf ;} ;{ Check Core_Set_DevCon_Edge If Core_Set_DevCon_Edge.i < 3 : DevCon_GFX.i = #Core_GFX_DevCon3D : EndIf If Core_Set_DevCon_Edge.i = 3 : DevCon_GFX.i = #Core_GFX_DevCon3D_Edge3 : EndIf If Core_Set_DevCon_Edge.i = 4 : DevCon_GFX.i = #Core_GFX_DevCon3D_Edge4 : EndIf If Core_Set_DevCon_Edge.i = 5 : DevCon_GFX.i = #Core_GFX_DevCon3D_Edge5 : EndIf If Core_Set_DevCon_Edge.i = 6 : DevCon_GFX.i = #Core_GFX_DevCon3D_Edge6 : EndIf If Core_Set_DevCon_Edge.i = 7 : DevCon_GFX.i = #Core_GFX_DevCon3D_Edge7 : EndIf If Core_Set_DevCon_Edge.i = 8 : DevCon_GFX.i = #Core_GFX_DevCon3D_Edge8 : EndIf If Core_Set_DevCon_Edge.i = 9 : DevCon_GFX.i = #Core_GFX_DevCon3D_Edge9 : EndIf If Core_Set_DevCon_Edge.i = 10 : DevCon_GFX.i = #Core_GFX_DevCon3D_Edge10 : EndIf If Core_Set_DevCon_Edge.i = 11 : DevCon_GFX.i = #Core_GFX_DevCon3D_Edge11 : EndIf If Core_Set_DevCon_Edge.i = 12 : DevCon_GFX.i = #Core_GFX_DevCon3D_Edge12 : EndIf If Core_Set_DevCon_Edge.i = 13 : DevCon_GFX.i = #Core_GFX_DevCon3D_Edge13 : EndIf If Core_Set_DevCon_Edge.i = 14 : DevCon_GFX.i = #Core_GFX_DevCon3D_Edge14 : EndIf If Core_Set_DevCon_Edge.i = 15 : DevCon_GFX.i = #Core_GFX_DevCon3D_Edge15 : EndIf If Core_Set_DevCon_Edge.i = 16 : DevCon_GFX.i = #Core_GFX_DevCon3D_Edge16 : EndIf If Core_Set_DevCon_Edge.i = 17 : DevCon_GFX.i = #Core_GFX_DevCon3D_Edge17 : EndIf If Core_Set_DevCon_Edge.i = 18 : DevCon_GFX.i = #Core_GFX_DevCon3D_Edge18 : EndIf If Core_Set_DevCon_Edge.i = 19 : DevCon_GFX.i = #Core_GFX_DevCon3D_Edge19 : EndIf If Core_Set_DevCon_Edge.i >= 20 : DevCon_GFX.i = #Core_GFX_DevCon3D_Edge20 : EndIf ;} If Core_Set_DevCon_Display = 1 If Core_Ini_DevCon3D.i = 1 Start3D() Sprite3DQuality(#PB_Sprite3D_BilinearFiltering) DisplaySprite3D(DevCon_GFX.i, Core_Coo_DevCon_X.i, Core_Coo_DevCon_Y.i, Core_Main_List_Func("GetInt", 0, "Settings", "DevCon_Transparency")) Stop3D() ;{ Temp until a 3D solution is done StartDrawing(ScreenOutput()) DrawingMode(#PB_2DDrawing_Transparent) DrawingFont(FontID(#Core_Font_Arial_10_Bold)) DrawText(Core_Coo_DevCon_X.i + (Core_Set_DevCon_Edge.i * 2), Core_Coo_DevCon_Y.i + (Core_Set_DevCon_Edge.i * 2), "[ Developer Console ]", $FFFFFF) DrawingFont(FontID(#Core_Font_Arial_9)) DrawText(Core_Coo_DevCon_X.i + (Core_Set_DevCon_Edge.i * 2), Core_Coo_DevCon_Y.i + (Core_Set_DevCon_Edge.i * 2) + 20, "Hints:", $DDDDDD) DrawText(Core_Coo_DevCon_X.i + (Core_Set_DevCon_Edge.i * 2), Core_Coo_DevCon_Y.i + (Core_Set_DevCon_Edge.i * 2) + 32, "Press [Ctrl + D + Key (L, M)] to set DevCon Transparency lower / higher", $BBBBBB) DrawText(Core_Coo_DevCon_X.i + (Core_Set_DevCon_Edge.i * 2), Core_Coo_DevCon_Y.i + (Core_Set_DevCon_Edge.i * 2) + 44, "Press [Ctrl + D + Key (PageDown, PageUp)] to set DevCon Edge lower / higher", $BBBBBB) DrawText(Core_Coo_DevCon_X.i + (Core_Set_DevCon_Edge.i * 2), Core_Coo_DevCon_Y.i + (Core_Set_DevCon_Edge.i * 2) + 56, "Press [Ctrl + C + Number (0-4)] to change Mouse Cursor", $BBBBBB) StopDrawing() ;} EndIf EndIf ;} EndIf EndProcedure ;} ;{ Functions Procedure Core_Func_FileCreate(File.i = 0, Filename.s = "") If Filename.s <> "" If CreateFile(File.i, Filename.s) If Core_Set_ErrorMode.i = 1 MessageRequester("Core File", "Create File " + Chr(187) + Filename.s + Chr(171) + " successful") EndIf Else If Core_Set_ErrorMode.i = 1 MessageRequester("Core File", "Create File" + Chr(187) + Filename.s + Chr(171) + " failed") EndIf EndIf EndIf EndProcedure Procedure Core_Func_RTSearch_CoreListMain(Parameter) Protected Gadget_Input.i = #Core_Gadget_Main_List_Search_Input Protected Gadget_List.i = #Core_Gadget_Main_List_ListIcon Protected Gadget_Match.i = #Core_Gadget_Main_List_Search_Result_Text Protected Result.i Protected LastInput.s Protected Input.s Repeat LastInput.s = GetGadgetText(Gadget_Input.i) Delay(50) If LastInput.s <> GetGadgetText(Gadget_Input.i) Entries.i = CountGadgetItems(Gadget_List.i) ClearGadgetItems(Gadget_List.i) Input.s = GetGadgetText(Gadget_Input.i) If Input.s <> "" NextCat.s = "" ResetList(Core_List_Main()) While NextElement(Core_List_Main()) With Core_List_Main() If FindString(LCase(\Core_Cat.s), LCase(Input.s)) Or FindString(LCase(\Core_Entry.s), LCase(Input.s)) Or FindString(LCase(\Core_Str.s), LCase(Input.s)) ;AddGadgetItem(#Core_Gadget_Main_List_ListIcon, -1, Str(\Core_ID.i) + Chr(10) + \Core_Date.s + Chr(10) + \Core_Time.s + Chr(10) + \Core_Cat.s + Chr(10) + \Core_Entry.s + Chr(10) + \Core_Lng.l + Chr(10) + \Core_Int.i + Chr(10) + \Core_Flt.f + Chr(10) + \Core_Qud.q + Chr(10) + \Core_Dbl.d + Chr(10) + \Core_Str.s) If NextCat.s = \Core_Cat.s Or NextCat.s = "" AddGadgetItem(Gadget_List.i, -1, Str(\Core_ID.i) + Chr(10) + \Core_Date.s + Chr(10) + \Core_Time.s + Chr(10) + \Core_Cat.s + Chr(10) + \Core_Entry.s + Chr(10) + \Core_Lng.l + Chr(10) + \Core_Int.i + Chr(10) + \Core_Flt.f + Chr(10) + \Core_Qud.q + Chr(10) + \Core_Dbl.d + Chr(10) + \Core_Str.s) NextCat.s = \Core_Cat.s Else AddGadgetItem(Gadget_List.i, -1, "") AddGadgetItem(Gadget_List.i, -1, Str(\Core_ID.i) + Chr(10) + \Core_Date.s + Chr(10) + \Core_Time.s + Chr(10) + \Core_Cat.s + Chr(10) + \Core_Entry.s + Chr(10) + \Core_Lng.l + Chr(10) + \Core_Int.i + Chr(10) + \Core_Flt.f + Chr(10) + \Core_Qud.q + Chr(10) + \Core_Dbl.d + Chr(10) + \Core_Str.s) NextCat.s = \Core_Cat.s EndIf Result.i + 1 If Result.i = 1 SetGadgetText(Gadget_Match.i, Str(Result.i) + Chr(32) + "match") ElseIf Result.i > 1 SetGadgetText(Gadget_Match.i, Str(Result.i) + Chr(32) + "match's") EndIf ElseIf Input.s <> GetGadgetText(Gadget_Input.i) Break EndIf EndWith Wend Result.i = 0 ElseIf Input.s = "" NextCat.s = "" Result.i = 0 SetGadgetText(Gadget_Match.i, "") ResetList(Core_List_Main()) While NextElement(Core_List_Main()) With Core_List_Main() ;AddGadgetItem(Gadget_List.i, -1, Str(\Core_ID.i) + Chr(10) + \Core_Date.s + Chr(10) + \Core_Time.s + Chr(10) + \Core_Cat.s + Chr(10) + \Core_Entry.s + Chr(10) + \Core_Lng.l + Chr(10) + \Core_Int.i + Chr(10) + \Core_Flt.f + Chr(10) + \Core_Qud.q + Chr(10) + \Core_Dbl.d + Chr(10) + \Core_Str.s) If NextCat.s = \Core_Cat.s Or NextCat.s = "" AddGadgetItem(Gadget_List.i, -1, Str(\Core_ID.i) + Chr(10) + \Core_Date.s + Chr(10) + \Core_Time.s + Chr(10) + \Core_Cat.s + Chr(10) + \Core_Entry.s + Chr(10) + \Core_Lng.l + Chr(10) + \Core_Int.i + Chr(10) + \Core_Flt.f + Chr(10) + \Core_Qud.q + Chr(10) + \Core_Dbl.d + Chr(10) + \Core_Str.s) NextCat.s = \Core_Cat.s Else AddGadgetItem(Gadget_List.i, -1, "") AddGadgetItem(Gadget_List.i, -1, Str(\Core_ID.i) + Chr(10) + \Core_Date.s + Chr(10) + \Core_Time.s + Chr(10) + \Core_Cat.s + Chr(10) + \Core_Entry.s + Chr(10) + \Core_Lng.l + Chr(10) + \Core_Int.i + Chr(10) + \Core_Flt.f + Chr(10) + \Core_Qud.q + Chr(10) + \Core_Dbl.d + Chr(10) + \Core_Str.s) NextCat.s = \Core_Cat.s EndIf EndWith Wend EndIf EndIf ForEver EndProcedure Procedure Core_Func_Win_CloseFadeOut(Win) ; ! Only works with Compiler-Option [Threadsafe] ; Code by X0r Protected x, y, w, h, t, winid winid = WindowID(Win) x = WindowX(Win) y = WindowY(Win) w = WindowWidth(Win) h = WindowHeight(Win) t = 255 s = 255 / 10 SetWindowLong_(winid, #GWL_EXSTYLE, GetWindowLong_(winid,#GWL_EXSTYLE)|#WS_EX_LAYERED) DisableWindow(1, 1) For i = 1 To 10 ResizeWindow(Win, x + w * 0.01, y + h * 0.01, w * 0.99, h * 0.99) x + w * 0.005 y + h * 0.005 w * 0.99 h * 0.99 t - s SetLayeredWindowAttributes_(winid, 0, t, 2) Next End EndProcedure Procedure Core_Func_Runtime(Func.s = "") If Func.s = "Init" Core_Run_Act.i = Core_Run_Diff.i Core_Run_Diff.i = ElapsedMilliseconds() - Core_Run_Start.i ElseIf Func.s = "Prepare" Core_Run_Min.i = (Core_Run_Diff.i / Core_Run_Speed.i) / 60 If (Core_Run_Diff.i / Core_Run_Speed.i) > (Core_Run_Act.i / Core_Run_Speed.i) If Core_Run_Sec.i < 59 Core_Run_Sec.i + 1 ElseIf Core_Run_Sec.i = 59 Core_Run_Sec.i = 0 EndIf EndIf If Core_Run_Min.i < 10 Run_Min.s = "0" + Str(Core_Run_Min.i) ElseIf Core_Run_Min.i > 9 Run_Min.s = Str(Core_Run_Min.i) EndIf If Core_Run_Sec.i < 10 Run_Sec.s = "0" + Str(Core_Run_Sec.i) ElseIf Core_Run_Sec.i > 9 Run_Sec.s = Str(Core_Run_Sec.i) EndIf If Core_Run_DisplayMethod.i = 0 Core_Run_Display.s = Run_Min.s + ":" + Run_Sec.s + ":" + Right(Str(Core_Run_Diff.i / 10), 2) ElseIf Core_Run_DisplayMethod.i = 1 Core_Run_Display.s = Run_Min.s + ":" + Run_Sec.s ElseIf Core_Run_DisplayMethod.i = 2 Core_Run_Display.s = Run_Min.s + Chr(32) + "min" + Chr(32) + Run_Sec.s + Chr(32) + "sec" EndIf ElseIf Func.s = "Milliseconds" Or Func.s = "Millisecs" ProcedureReturn (Core_Run_Diff.i) ElseIf Func.s = "Seconds" Or Func.s = "Secs" ProcedureReturn (Core_Run_Diff.i / 1000) ElseIf Func.s = "Minutes" Or Func.s = "Mins" ProcedureReturn (Core_Run_Diff.i / 1000) / 60 ElseIf Func.s = "SecondsFloat" Or Func.s = "SecsF" Core_Run_SecF.s = Str(Core_Func_Runtime("Secs")) + "." + Right(Str(Core_Func_Runtime("Millisecs") / 10), 2) EndIf EndProcedure Procedure Core_Func_Keyboard(Func.s = "") If Func.s = "MouseCursor" If KeyboardPushed(#PB_Key_LeftControl) And KeyboardPushed(#PB_Key_C) And KeyboardReleased(#PB_Key_0) Core_Set_Mouse_Cursor.i = 0 ElseIf KeyboardPushed(#PB_Key_LeftControl) And KeyboardPushed(#PB_Key_C) And KeyboardReleased(#PB_Key_1) Core_Set_Mouse_Cursor.i = 1 ElseIf KeyboardPushed(#PB_Key_LeftControl) And KeyboardPushed(#PB_Key_C) And KeyboardReleased(#PB_Key_2) Core_Set_Mouse_Cursor.i = 2 ElseIf KeyboardPushed(#PB_Key_LeftControl) And KeyboardPushed(#PB_Key_C) And KeyboardReleased(#PB_Key_3) Core_Set_Mouse_Cursor.i = 3 ElseIf KeyboardPushed(#PB_Key_LeftControl) And KeyboardPushed(#PB_Key_C) And KeyboardReleased(#PB_Key_4) Core_Set_Mouse_Cursor.i = 4 EndIf EndIf EndProcedure Procedure Core_Func_Mouse(Func.s = "") If Func.s = "Create" ;{ Create ;{ Create Mouse Cursor by setting If CreateSprite(#Core_GFX_Mouse, 19, 19, #PB_Sprite_Texture) StartDrawing(SpriteOutput(#Core_GFX_Mouse)) DrawingMode(#PB_2DDrawing_Transparent) If Core_Set_Mouse_Cursor.i = 0 ;{ 90 Grade Arrow Box(0, 0, 18, 2, $FFFFFF) Box(2, 2, 18 - 4, 2, $FFFFFF) Box(0, 0, 2, 18, $FFFFFF) Box(2, 2, 2, 18 - 4, $FFFFFF) ;} ElseIf Core_Set_Mouse_Cursor.i = 1 ;{ Modern Arrow Box(0, 0, 1, 1, $FFFFFF) Box(1, 1, 3, 1, $FFFFFF) Box(1, 2, 6, 1, $FFFFFF) Box(1, 3, 9, 1, $FFFFFF) Box(2, 4, 11, 1, $FFFFFF) Box(2, 5, 14, 1, $FFFFFF) Box(2, 6, 17, 1, $FFFFFF) Box(3, 7, 16, 1, $FFFFFF) Box(3, 8, 16, 1, $FFFFFF) Box(3, 9, 16, 1, $FFFFFF) Box(4, 10, 15, 1, $FFFFFF) Box(4, 11, 15, 1, $FFFFFF) Box(4, 12, 15, 1, $FFFFFF) Box(5, 13, 14, 1, $FFFFFF) Box(5, 14, 14, 1, $FFFFFF) Box(5, 15, 14, 1, $FFFFFF) Box(6, 16, 13, 1, $FFFFFF) Box(6, 17, 13, 1, $FFFFFF) Box(6, 18, 13, 1, $FFFFFF) ;} ElseIf Core_Set_Mouse_Cursor.i = 2 ;{ Modern Arrow Thin Box(0, 0, 1, 1, $FFFFFF) Box(1, 1, 2, 1, $FFFFFF) Box(1, 2, 4, 1, $FFFFFF) Box(2, 3, 5, 1, $FFFFFF) Box(2, 4, 7, 1, $FFFFFF) Box(3, 5, 8, 1, $FFFFFF) Box(3, 6, 10, 1, $FFFFFF) Box(4, 7, 11, 1, $FFFFFF) Box(4, 8, 13, 1, $FFFFFF) Box(5, 9, 14, 1, $FFFFFF) Box(5, 10, 14, 1, $FFFFFF) Box(6, 11, 13, 1, $FFFFFF) Box(6, 12, 13, 1, $FFFFFF) Box(7, 13, 12, 1, $FFFFFF) Box(7, 14, 12, 1, $FFFFFF) Box(8, 15, 11, 1, $FFFFFF) Box(8, 16, 11, 1, $FFFFFF) Box(9, 17, 10, 1, $FFFFFF) Box(9, 18, 10, 1, $FFFFFF) ;} ElseIf Core_Set_Mouse_Cursor.i = 3 ;{ Crosshair Box(2, 7, 15, 1, $FFFFFF) Box(1, 8, 17, 1, $FFFFFF) Box(0, 9, 19, 1, $FFFFFF) Box(1, 10, 17, 1, $FFFFFF) Box(2, 11, 15, 1, $FFFFFF) Box(7, 2, 1, 15, $FFFFFF) Box(8, 1, 1, 17, $FFFFFF) Box(9, 0, 1, 19, $FFFFFF) Box(10, 1, 1, 17, $FFFFFF) Box(11, 2, 1, 15, $FFFFFF) ;} ElseIf Core_Set_Mouse_Cursor.i = 4 ;{ Crosshair Thin Box(1, 8, 17, 1, $FFFFFF) Box(0, 9, 19, 1, $FFFFFF) Box(1, 10, 17, 1, $FFFFFF) Box(8, 1, 1, 17, $FFFFFF) Box(9, 0, 1, 19, $FFFFFF) Box(10, 1, 1, 17, $FFFFFF) ;} EndIf StopDrawing() Else If Core_Set_ErrorMode.i = 1 MessageRequester("Core File - Error", "Can't create Sprite3D (Mouse)") EndIf EndIf If Not CreateSprite3D(#Core_GFX_Mouse3D, #Core_GFX_Mouse) If Core_Set_ErrorMode.i = 1 MessageRequester("Core File - Error", "Can't create Sprite3D (Mouse)") EndIf EndIf ;} ;{ Create Mouse Cursor [90GradeArrow] If CreateSprite(#Core_GFX_Mouse_90GradeArrow, 19, 19, #PB_Sprite_Texture) StartDrawing(SpriteOutput(#Core_GFX_Mouse_90GradeArrow)) DrawingMode(#PB_2DDrawing_Transparent) Box(0, 0, 18, 2, $FFFFFF) Box(2, 2, 18 - 4, 2, $FFFFFF) Box(0, 0, 2, 18, $FFFFFF) Box(2, 2, 2, 18 - 4, $FFFFFF) StopDrawing() Else If Core_Set_ErrorMode.i = 1 MessageRequester("Core File - Error", "Can't create Sprite (Mouse)") EndIf EndIf If Not CreateSprite3D(#Core_GFX_Mouse3D_90GradeArrow, #Core_GFX_Mouse_90GradeArrow) If Core_Set_ErrorMode.i = 1 MessageRequester("Core File - Error", "Can't create Sprite3D (Mouse)") EndIf EndIf ;} ;{ Create Mouse Cursor [ModernArrow] If CreateSprite(#Core_GFX_Mouse_ModernArrow, 19, 19, #PB_Sprite_Texture) StartDrawing(SpriteOutput(#Core_GFX_Mouse_ModernArrow)) DrawingMode(#PB_2DDrawing_Transparent) Box(0, 0, 1, 1, $FFFFFF) Box(1, 1, 3, 1, $FFFFFF) Box(1, 2, 6, 1, $FFFFFF) Box(1, 3, 9, 1, $FFFFFF) Box(2, 4, 11, 1, $FFFFFF) Box(2, 5, 14, 1, $FFFFFF) Box(2, 6, 17, 1, $FFFFFF) Box(3, 7, 16, 1, $FFFFFF) Box(3, 8, 16, 1, $FFFFFF) Box(3, 9, 16, 1, $FFFFFF) Box(4, 10, 15, 1, $FFFFFF) Box(4, 11, 15, 1, $FFFFFF) Box(4, 12, 15, 1, $FFFFFF) Box(5, 13, 14, 1, $FFFFFF) Box(5, 14, 14, 1, $FFFFFF) Box(5, 15, 14, 1, $FFFFFF) Box(6, 16, 13, 1, $FFFFFF) Box(6, 17, 13, 1, $FFFFFF) Box(6, 18, 13, 1, $FFFFFF) StopDrawing() Else If Core_Set_ErrorMode.i = 1 MessageRequester("Core File - Error", "Can't create Sprite (Mouse)") EndIf EndIf If Not CreateSprite3D(#Core_GFX_Mouse3D_ModernArrow, #Core_GFX_Mouse_ModernArrow) If Core_Set_ErrorMode.i = 1 MessageRequester("Core File - Error", "Can't create Sprite3D (Mouse)") EndIf EndIf ;} ;{ Create Mouse Cursor [ModernArrowThin] If CreateSprite(#Core_GFX_Mouse_ModernArrowThin, 19, 19, #PB_Sprite_Texture) StartDrawing(SpriteOutput(#Core_GFX_Mouse_ModernArrowThin)) DrawingMode(#PB_2DDrawing_Transparent) Box(0, 0, 1, 1, $FFFFFF) Box(1, 1, 2, 1, $FFFFFF) Box(1, 2, 4, 1, $FFFFFF) Box(2, 3, 5, 1, $FFFFFF) Box(2, 4, 7, 1, $FFFFFF) Box(3, 5, 8, 1, $FFFFFF) Box(3, 6, 10, 1, $FFFFFF) Box(4, 7, 11, 1, $FFFFFF) Box(4, 8, 13, 1, $FFFFFF) Box(5, 9, 14, 1, $FFFFFF) Box(5, 10, 14, 1, $FFFFFF) Box(6, 11, 13, 1, $FFFFFF) Box(6, 12, 13, 1, $FFFFFF) Box(7, 13, 12, 1, $FFFFFF) Box(7, 14, 12, 1, $FFFFFF) Box(8, 15, 11, 1, $FFFFFF) Box(8, 16, 11, 1, $FFFFFF) Box(9, 17, 10, 1, $FFFFFF) Box(9, 18, 10, 1, $FFFFFF) StopDrawing() Else If Core_Set_ErrorMode.i = 1 MessageRequester("Core File - Error", "Can't create Sprite (Mouse)") EndIf EndIf If Not CreateSprite3D(#Core_GFX_Mouse3D_ModernArrowThin, #Core_GFX_Mouse_ModernArrowThin) If Core_Set_ErrorMode.i = 1 MessageRequester("Core File - Error", "Can't create Sprite3D (Mouse)") EndIf EndIf ;} ;{ Create Mouse Cursor [Crosshair] If CreateSprite(#Core_GFX_Mouse_Crosshair, 19, 19, #PB_Sprite_Texture) StartDrawing(SpriteOutput(#Core_GFX_Mouse_Crosshair)) DrawingMode(#PB_2DDrawing_Transparent) Box(2, 7, 15, 1, $FFFFFF) Box(1, 8, 17, 1, $FFFFFF) Box(0, 9, 19, 1, $FFFFFF) Box(1, 10, 17, 1, $FFFFFF) Box(2, 11, 15, 1, $FFFFFF) Box(7, 2, 1, 15, $FFFFFF) Box(8, 1, 1, 17, $FFFFFF) Box(9, 0, 1, 19, $FFFFFF) Box(10, 1, 1, 17, $FFFFFF) Box(11, 2, 1, 15, $FFFFFF) StopDrawing() Else If Core_Set_ErrorMode.i = 1 MessageRequester("Core File - Error", "Can't create Sprite (Mouse)") EndIf EndIf If Not CreateSprite3D(#Core_GFX_Mouse3D_Crosshair, #Core_GFX_Mouse_Crosshair) If Core_Set_ErrorMode.i = 1 MessageRequester("Core File - Error", "Can't create Sprite3D (Mouse)") EndIf EndIf ;} ;{ Create Mouse Cursor [CrosshairThin] If CreateSprite(#Core_GFX_Mouse_CrosshairThin, 19, 19, #PB_Sprite_Texture) StartDrawing(SpriteOutput(#Core_GFX_Mouse_CrosshairThin)) DrawingMode(#PB_2DDrawing_Transparent) Box(1, 8, 17, 1, $FFFFFF) Box(0, 9, 19, 1, $FFFFFF) Box(1, 10, 17, 1, $FFFFFF) Box(8, 1, 1, 17, $FFFFFF) Box(9, 0, 1, 19, $FFFFFF) Box(10, 1, 1, 17, $FFFFFF) StopDrawing() Else If Core_Set_ErrorMode.i = 1 MessageRequester("Core File - Error", "Can't create Sprite (Mouse)") EndIf EndIf If Not CreateSprite3D(#Core_GFX_Mouse3D_CrosshairThin, #Core_GFX_Mouse_CrosshairThin) If Core_Set_ErrorMode.i = 1 MessageRequester("Core File - Error", "Can't create Sprite3D (Mouse)") EndIf EndIf ;} ;} ElseIf Func.s = "StartLocation" ;{ StartLocation MouseLocate(Core_Mou_StartX.i, Core_Mou_StartY.i) ;} ElseIf Func.s = "OldNewCoordinates" ;{ OldNewCoordinates Core_Mou_OldX.i = Core_Mou_X.i Core_Mou_OldY.i = Core_Mou_Y.i Core_Mou_X.i = MouseX() Core_Mou_Y.i = MouseY() ;} ElseIf Func.s = "Display" ;{ Display Start3D() Sprite3DQuality(#PB_Sprite3D_BilinearFiltering) If Core_Set_DevMode.i = 1 Sprite3DBlendingMode(5, 9) ElseIf Core_Set_DevMode.i = 0 Sprite3DBlendingMode(5, 6) EndIf ;ZoomSprite3D(#Core_GFX_Mouse3D, Core_Set_Mouse_CursorSize.i, Core_Set_Mouse_CursorSize.i) ZoomSprite3D(#Core_GFX_Mouse3D, Core_Scr_W.i / Core_Set_Mouse_CursorSize.i, Core_Scr_H.i / Core_Set_Mouse_CursorSize.i) If Core_Set_Mouse_Cursor.i <= 0 DisplaySprite3D(#Core_GFX_Mouse3D_90GradeArrow, MouseX(), MouseY(), 255) ElseIf Core_Set_Mouse_Cursor.i = 1 DisplaySprite3D(#Core_GFX_Mouse3D_ModernArrow, MouseX(), MouseY(), 255) ElseIf Core_Set_Mouse_Cursor.i = 2 DisplaySprite3D(#Core_GFX_Mouse3D_ModernArrowThin, MouseX(), MouseY(), 255) ElseIf Core_Set_Mouse_Cursor.i = 3 DisplaySprite3D(#Core_GFX_Mouse3D_Crosshair, MouseX(), MouseY(), 255) ElseIf Core_Set_Mouse_Cursor.i >= 4 DisplaySprite3D(#Core_GFX_Mouse3D_CrosshairThin, MouseX(), MouseY(), 255) EndIf Stop3D() ;} ElseIf Func.s = "MouseWheel" ;{ MouseWheel If MouseWheel() If MouseWheel() < 0 Core_Mou_WheelDown.i = 1 ElseIf MouseWheel() > -1 Core_Mou_WheelUp.i = 1 EndIf EndIf ;} ElseIf Func.s = "MoveDevCon" ;{ MoveDevCon If Core_Set_DevCon_MoveMethod.i = 1 If MouseX() > Core_Coo_DevCon_X.i And MouseX() < (Core_Coo_DevCon_X.i + Core_Coo_DevCon_W.i) And MouseY() > Core_Coo_DevCon_Y.i And MouseY() < (Core_Coo_DevCon_Y.i + Core_Coo_DevCon_H.i) If Core_Set_DevCon_Display.i = 1 And MouseButton(#PB_MouseButton_Left) If Core_Set_DevCon_MoveOutOfScreen.i = 0 If Core_Coo_DevCon_X > 0 And (Core_Coo_DevCon_X.i + Core_Coo_DevCon_W.i) < Core_Scr_W.i And Core_Coo_DevCon_Y.i > 0 And (Core_Coo_DevCon_Y.i + Core_Coo_DevCon_H.i) < Core_Scr_H.i Core_Coo_DevCon_X.i + (Core_Mou_X.i - Core_Mou_OldX.i) Core_Coo_DevCon_Y.i + (Core_Mou_Y.i - Core_Mou_OldY.i) EndIf Core_Func_Mouse("IsDevConOutside") ElseIf Core_Set_DevCon_MoveOutOfScreen.i = 1 Core_Coo_DevCon_X.i + (Core_Mou_X.i - Core_Mou_OldX.i) Core_Coo_DevCon_Y.i + (Core_Mou_Y.i - Core_Mou_OldY.i) EndIf EndIf EndIf EndIf ;} ElseIf Func.s = "IsDevConOutside" ;{ IsDevConOutside If Core_Coo_DevCon_X.i < 1 Core_Coo_DevCon_X.i = 1 ElseIf (Core_Coo_DevCon_X.i + Core_Coo_DevCon_W.i) > (Core_Scr_W.i - 1) Core_Coo_DevCon_X.i = Core_Scr_W.i - (Core_Coo_DevCon_W.i + 1) ElseIf Core_Coo_DevCon_Y.i < 1 Core_Coo_DevCon_Y.i = 1 ElseIf (Core_Coo_DevCon_Y.i + Core_Coo_DevCon_H.i) > (Core_Scr_H.i - 1) Core_Coo_DevCon_Y.i = Core_Scr_H.i - (Core_Coo_DevCon_H.i + 1) EndIf ;} EndIf EndProcedure ;} ;{ Start Core File ; Ecexute Proccedures Core_Constants() Core_Init() Core_Font() Core_Check_OS() Core_Check_GPU_Name() Core_Check_GPU_VRAM() Core_Check_CPU_Flags() Core_Check_HDD() Core_Main() Core_Main_List() Core_Log_Main() Core_Log_List() ; Add Entries to Main List Core_Main_List_Func("Prepare") ; Add Entries to Log List Core_Log_List_Func("Prepare") ;} ;{ Some Tests ;Core_Main_List_Func("Output") ;Core_Log_List_Func("Output") ;TxtOut("", Chr(9) + Chr(9) + Chr(9) + Chr(9) + Chr(10) + "Date: " + Core_Date.s + Chr(10) + "Time: " + Core_Time.s + Chr(10) + Chr(10) + "Version: " + Core_App_Version.s + Chr(10) + "" + Chr(10)) ;Core_Display(0) ;Core_Display_Shortcuts(0, "Esc", 0) ;Core_Display_WindowEvent() ;} ; IDE Options = PureBasic 5.31 (Windows - x64) ; Folding = IBAAAAAAAAAAAAAAAAAAA- ; EnableXP ; EnableCompileCount = 12 ; EnableBuildCount = 0 ; EnableExeConstant