release_notes.gif

12.22.2009 1.60

- Protection has been removed from the IDE and runtime.
- Added SO_NODELTA sprite option to allow sprites to move by same amount of pixels every cycle.
- Added frameindex$ parameter to Explode() function to allow support for exploding only a specific frame.
- Removed protections from interpreter.
- Fixed internal events calls for sprite's procedure.
- Fixed interpreter to handle application interruptions more effectively.
- Added frameindex$ parameter to Explode() function to allow support for exploding only a specific frame.
- Fixed PkgMan.ppl (GetFile, PutFile).
- Fixed GetFile() and PutFile() to support NULL value.
- Fixed PkgMan.ppl/Editor.ppl/Main.ppl/ ProgMan.ppl to use ImageList in toolbar.
- Fixed Toolbar buttons to allow ImageList handles.
- New MainToolBar() function to obtain the toolbar window handle of a specific form.
- Added possibility to call local namespace using :: fct().
- Fixed namespace calling.
- Fixed issues with @ and & operators.
- Fixed PASM, "savesp" operand if optional.
- Fixed particle_Weight() to be particle_Height().
- Some optimizations to the debugger.
- Fixed Distance() function.
- Fixed interpreter memory leak.
- Fix proc/func names not to be replaced by defines.
- Parse error if #ENDIF is not preceeded with a matching #IFDEF or #IFNDEF.
- Optimized the Parser and it is now a lot faster.

12.03.2008 1.53

- Fixed structure +=, -=, *=, /= operators on strings.
- Fixed StarField2.ppl demo to show pixel sprites properly.
- Fixed speed issue by optimizing interpreter caching.
- Fixed ProgMan.ppl syntax errors by replace Inherited() function calls to DefWndProc().
- New SetSpriteSurfaceEx() function that resizes the sprite to match the surface frame sizes.
- Fixed WaitForInput() function to terminate if program exits.
- Fixed & operator to work correctly with arrays and structures.
- Fixed interpreter typed variables freeing when used with some functions.
- Fixed internal variable offset calculation to support pointers as well as strings.
- Fixed range check internals to support pointers as well as strings.
- Removed some copy protection features that triggered Trial mode errors.
- New cPtr() function to transform a pointer from another heap to a valid PPL string.
- Replaced search() by rex_search(rexhandle$, string$, offsetindex$).
- Replaced match() by rex_match(rexhandle$, string$).
- Replace subexpcount() by rex_subexpcount(rexHandle$)
- Replaced subexp() by rex_subexp(rexhandle$, index$, offsetvar$);
- New rex_compile(pattern$) function.
- New rex_free(rexhandle$) function.
- Fixed an issue with struct/array element strings, freeing from memory.
- Fixed UI.PPL syntax that was not compatible anymore with 1.52 and up.
- Fixed runtime error ERROR% assignment of error description.
- Fixed bugs in VFB found by GVLIEMVS.

09.16.2008 1.52

- Renamed function Inherited to DefWndProc.
- New ToByte() function.
- New ToShort() function.
- New IndexOf() and cIndexOf() functions to easily search a list item value (cIndexOf is case sensitive).
- New DelEx(listvar$, index$) to delete a list item at a specific index location.
- Tons of object-oriented engine fixes and optimization.
- New FillEach() function to fill each element of a struct, array, matrix, string or list with a specified value.
- New AddEx() function to allow to create a specified number of blank list elements.
- Changed #inherited operator to inheritcall function.
- New #class syntax when inheriting from another class. #class <classname> inherit <classname>
- Fixed Private and Public functions in multiple object class definitions.
- Fixed bug in Reg_SetKeyValue() function in Registry.ppl library.
- Fixed many GameAPI functions execution speed related to update modes introduced in 1.40.
- Fixed passing list offsets as parameters.
- Fixed struct of struct freing of memory issue.
- Fixed issue with Main and WinMain function naming internally.
- New InheritCall() function to inherit a function call in an object.
- New GameAPI event processing mode. GA_PEEKONLY (default) and GA_WAITFOREVENT which waits for a system event before continuing game cycle.
- New functions: g_SetCycleMode() and g_CycleMode().
- Updated Tiny-Rex library to latest (1.3) to fix some regular expressions bugs.
- Changed Search() function to Search(expr$, string$) -> string$
- Changed SubExp() funciton to SubExp(string$, index$) -> string$
- g_TextOut(), if X value is passed, alignment is relative to it.
- Fixed Int() and Str() functions to remove variable information from the stack.
- Call() function has been fixed not to leak items on the stack.
- Some stack handling fixes.
- #declare, #declareapi, #c_declare, #c_declareapi allow to add parameters at the end within ().
- WaitForInput has a new parameter to process events normally.
- Fixed some issues with game collision detection.
- Lots of internal functions with output parameters accepts array offsets now.
- Fixed Sort() function descending order for string types.
- Fixed ForEach() with array variables to copy string information properly.
- Support for unsigned short has been added via TUSHORT.
- Rewrote internal garbage collector to be more accurate and stable.
- Fixed memory leaks in +=, -=, *=, /=, ++, --, Delete(), Insert(), Replace(), ReplaceEx(), Strip(), Change(), Match(), Search(), NewForm(), NewFormEx(), NewControl().
- Fixed PASM ppl opcode.
- Added g_rvalue(), g_gvalue(), g_bvalue() functions to obtain R G B color values in 565 format.
- New g_rgb565() to convert r,g,b values from 565 color format.
- New GetRValue(), GetGValue(), GetBValue() functions.

03.07.2008 1.51

- OVERRIDE is not allowed in Class definition anymore.
- Fixed internal function call inside a class procedure or function.
- Fixed executable creation in PIDE.
- Removed ByteCode compiler option from PIDE.
- Fixed GameAPI focus restore not to blank screen.
- Fixed Profile result window, sorting of all columns.
- Fixed bugs with IIF() statement.
- IIF() needs to separate arguments with ; and not a ,
- Fixed some bugs with list indexing. Ex: Lst$[10] = 10;

02.29.2008 1.50

- Fixed Upper() function.
- Fixed PIDE project close option when all tabs are closed.
- Fixed PIDE project close button.
- Fixed FreeObject() function stack issue.
- Fixed pass by reference parameters when used with global variables.
- Fixed CallAsm() when called multiple times.
- Fixed Forward Proc or Func declaration within a #namespace.
- Fixed GameAPI sprite sorting to exclude queued deleted sprites.
- Fixed gsgetfile.dll installation issue. Uses 3 different files now.
- Fixed PPL.exe installation on device.
- Fixed ARGV% list variable.
- Fixed mAdd() function.
- Fixed #LIBRARY files are compiled to .ppc files and not linked.
- Fixed IsStructDef() function returns 0 if field not found or its index position in the structure's definition.
- Fixed WM_KEYPRESS in Classes.ini, replaced with WM_CHAR
- Fixed Exit() to exit windowed applications as well.
- Fixed Profiler not to display special codes before procedure name.
- Fixed Profiler summary mode to display average time per hit.
- Fixed Profiler summary mode not to display line #'s anymore.
- Replaced CountStack() function with StackCount() and it returns the value, it doesn't use a variable parameter anymore.
- Added the ability to use a different application handle for stack functions like: StackCount(), DupStack(), DropStack(), ClearStack().
- New String.ppl library with Join(), LPush() and LPop().
- New option in PIDE to specify program parameters.
- New support for matrix elements with +=, -=, *= and /= operators.
- New support for .ppc files in #INCLUDE compiler directive.
- New PO_NODELTA particle option. This allow for particle movement not be relative to delta value of gameapi.
- New ReturnFromAll() function that allow you to return from all functions and procedures you are into to the main program loop. If you don't have any windows in the application, it will exit.
- New CharPos() that allow to fast search for a character in a string.
- New CharRPos() that allow to fast reverse search a character in a string.
- New SizePos() that allow to search only from a fixed number of characters in a string.
- New SizeRPos() that allow to reverse search only from a fixed number of characters in a string.
- New CharSizePos() that allow to fast search only from a fixed number of characters in a string.
- New CharSizeRPos() that allow to fast reverse search only from a fixed number of characters in a string.

12.24.2007 1.42

- Added OnKeyDown, OnKeyUp, OnSetFocus, OnKillFocus events to Game Level Editor GAME component.
- Greatly improved speed of Visual Form Editor and Game Level Editor when lots of controls or sprites.
- Adjusted Visual Form Editor and Game Level Editor, scrollbar issues.
- Centered and PPCBackground buttons are not enabled in Game Level Editor mode.
- Fixed mouse orientation issue on PocketPC.
- Fixed a bug with g_ChangeResolution().

12.20.2007 1.41

- New Short-Circuit boolean expression evaluation.
- New #SHORTCIRCUIT compiler directive to active or deactivate short-cicuit expression evaluation.
- Fixed Round() function to work correctly with negative numbers.
- Fixed black screen when focus is set again on a GameAPI window.
- Fixed debugging of initialization section on a form.
- Fixed UNTIL statement in compiler.
- Fixed PIDE locating extension of filenames when . was used in pathname.
- Fixed Visual Game Level Editor events calling.
- Fixed a little issue with <> operator when a numeric value was compared against a string.
- Fixed structure variables passed as reference bug.
- Fixed Empty() function to correctly empty variables of any types.
- Fixed form background colors display.
- Fixed PIDE visual form editor, control deletion bug.
- Fixed PIDE visual form editor when loading a form with a font name starting with a @.
- Fixed WM_COLLIDE with border to issue sprite handle in wParam$.
- Fixed SetVar() to work with non-existant variables too.
- Optimized some of the internal code in a few places.
- Fixed a few Forms related memory leaks.
- Fixed compiler bug in DEBUG mode with WHILE, FOR, FOREACH, FOREACHREV, REPEAT.
- Fixed ShowModal() bug.
- Changed Struture Warnings in Compiler Options not to be default anymore.
- Added pictures to Target combo menu in the PIDE.

11.30.2007 1.40

- 2 new GameAPI screen update modes. This will speed up immensively some games.
- New APE 2d physic engine with tons of new functions.
- Rewrote the PIDE visual form builder display.
- Added new Math.ppl library with functions to convert from and to Binary.
- Fixed click in gutter area of text in PIDE to add breakpoint.
- Added OnKeyPress event for all controls in PIDE.
- Fixed case in form generator where two | characters could stay grouped together causing compile errors.
- Fixed GameAPI and Windows API events call memory leak when used with PIDE VFB & VFB.
- New g_SetInputOrientation() function to change the orientation of the mouse and keys input only.
- New g_InputOrientation() function to retrieve input orientation.
- PIDE, fixed dragging a control outside a form.
- PIDE, fixed mouse wheel scroll in visual form builder properties.
- PIDE, fixed crash when setting wrong color values in properties.
- PIDE, not neccessary to save file in order to compile or run.
- Added HTML manual folder to PC installation.
- New ReplaceEx() function to allow to specify the count of item to replace.
- New function ACount() to return number of dimension in an array.
- New function AMax() to return the number of elements in a dimension in an array.
- New function ASize() to return the size of an array dimension in bytes.
- Fixed bug in DeleteFileFromPackage() that could corrupt the table of content of the package file.
- Fixed bug when loading bitmaps from memory.
- WaitForInput() now checks to see if GameAPI is still running.
- Save As... in PIDE now points to the current file name.
- Fixed Save As... in PIDE for forms.
- Fixed strange bug on PocketPC when assigning a string to a variable. Most probably memory management bug on WinCE.
- Fixed optimizer (release) bug when used with / operator.
- Global() and Local() don't move % variables.
- Fixed GroupBox loading in PIDE form editor, no need to redraw manually anymore.
- New ScreenWidth() and ScreenHeight() functions in Swapi.ppl.
- Ctrl+Tab and Ctrl+Shift+Tab in PIDE to switch between opened tabs.
- Fix garbage collector with For loops.
- New APEDemo.ppl demo.
- Fixed PIDE, Package Manager and PPL Runtime when target is set to PocketPC.
- Rewrote IsWide() internal function one more time, hoping this time it will work better.
- New option to compile code first on PC, then transfer only the .ppc to run on the PocketPC.
- Form's resolution menu items are now checked on the current resolution setting.
- Display Trial days left in main menu.
- New About box, showing key.
- Fixed PIDE, Adjust Form menu item.
- Added 176 x 220 screen resolution in PIDE.
- PIDE, accept files dragged from Explorer now.
- Fixed GameAPI main loop timers initilization.
- Redone MSDN help since Microsoft changed their web site entirely.
- Fixed NewFormEx to accept CW_USEDEFAULT for form position and size.
- Fixed object-oriented multiple proc/func call.
- Fixed ScaleSprite() function.
- Fixed g_changeresolution() for orientation different then NORTH.
- Fixed GameAPI not to stop when game window loses focus.
- Fixed GameAPI window resume to use the whole screen correctly.
- In PIDE temporary options, the new paths are inserted at the beginning of the list instead of appended.
- Multiple fixes in the object oriented internal engine.
- Fixed breakpoint movement in PIDE when inserting line.
- Cannot use a reserved word as proc/func name without overriding.
- OVERRIDE statement is now accepted in class definition.
- Components Navigator is now putting procedures and variables in the class they belong to.
- CloneSprite() now copies the visible state.
- Fixed IncAngle() to not return 360.
- Fixed IncAngleRad() to return correct value.
- PIDE, fixed "Cancel" button when Run/Compile while "ask for save" option is enabled.
- PIDE, project manager name label now has a Hint window that shows the location of the project filename.
- Watch window new option to force sorting of variables.
- Watch window, fixed display of Structured variables and objects.
- watch window does show private object variables unless they are in Self$.
- PIDE, cannot add files to project if it is not saved first.
- Fixed internal GDI leak when repainting/updating windows and controls.
- Updated to PocketHAL 1.0.3.
- New ShellOrientation() function to return the current device OS screen orientation.
- Fixed bug in Rapi.ppl in function Rapi_CopyFile().
- SpriteX and SpriteY functions now return a double type value.
- New SpriteXInt(), SpriteYInt() functions return an integer type value.
- New function SpritePosInt() that returns integer coordinates.
- Fixed StrToList() when used with unicode strings.
- Optimized ToInt(), Str() and Int() functions.
- Optimized ptr(), &, addr(), @, operators and functions.
- Fixed OVERRIDE statement state that stayed active.
- New IIF(condition, true_expression, false_expression) statement added.
- Call and ObjCall now checks for number of parameter values passed to the proc/func called.
- PIDE, visual form editor, validates name of control when edited.
- Fixed decimal values precision are adjusted when compiled.
- ToInt() function precision adjusted.
- New g_VgaFontWidth() and g_VgaFontHeight() functions.
- New g_AddUpdateRect() function to add an screen update rectangle to UM_SINGLE or UM_MULTIPLE update mode.
- Fixed VarType() and LType() functions to return _ARRAYSTRUCT and _STRINGPTR properly.
- Fixed IsPointer() to support array elements.
- Fixed g_loadfont() to not use DPI_AWARE font height when in legacy (QVGA) mode.
- Fixed SetTextColor when no SetBackColor specified on a control.
- Fixed text and background color of children controls.
- New Project in PIDE, added a check for invalid characters in name of project.
- Fixed gameapi truetype font size on VGA devices.
- New g_IsVgaDevice() function to detect if using a VGA enabled device.
- New g_DeviceDPI() returns the real device DPI.
- Fixed "Enable WM5 & WM6 support" option in the PIDE.

10.05.2007 1.32


- Sprite timers are freed when sprite is deleted.
- Fixed memory leak in sprites collide id's.
- Fixed memory leak in deviceprocessor().
- Upgraded to PocketHAL 1.0.2 to fix some VGA problems (slowdowns, orientation issues).
- Fixed Menu_Set() and Menu_Get() functions in Swapi.ppl library.
- Fixed bug in KillSpriteTimer() function.
- Fixed bug in sprite's timer logic.
- Fixed leaks when forms and controls are destroyed.
- New functions Int64() and ToInt64().
- Fixed mouse events position when SO_FIXED, SO_FIXEDX or SO_FIXEDY is used.
- Added new function IsStructDef() to know if a field has been defined in a structure.
- New Sqldemo_v3.ppl demo.
- Updated sql demos and libraries.
- Fixed PIDE when clicking glutter in Lite mode.
- Added option to get or set menu caption by position instead of by id in Menu_Set, Menu_Get...

09.28.2007 1.31

- Redid the installer scripts to support installation to storage card on device.
- Installer is platform independent.
- Fixed internal wide char detection routine.
- Fixed Custom menu items in PIDE to work with global variables.
- Fixed package.ppl demo code.
- Fixed TDim() to keep structure information.
- New option to turn structure warnings on and off.
- Fixed sprite rendering when no surface attached, display pixel.
- New RenderSpritesEx() function to draw only sprites that are visible within a rectangle of the screen.
- Removed garbage collection from COM functions.
- Removed some internal protection code from GameAPI time critical routines.
- MakeEXE check for runtimes availability at all times.
- Fixed sqlite_pc.dll (updated to latest version and renamed to correct filename).
- Fixed assignment internals, if new value is not wide and variable is already wide, reset flag on variable.
- Fixed new memory management engine to zero out extra bytes.
- Fixed mouse events X,Y coordinates on sprites.
- Fixed creation of executable files.
- Fixed creation of executables when used with an icon on the PC.
- Update gsgetfile.dll to latest version from 2007-08-08.

09.14.2007 1.30

- Brand new .PPC file system. The loading of .ppc files is incredibly fast. No more compilation, linking and optimizing after a .PPC is loaded.
- PIDE, visual form editor now supports multiple control selection.
- Fixed PIDE not to overwrite PIDE.INI in root folder.
- New LoadSpriteAlpha() to load a surface to apply multi-channel transparency.
- Optimized shader for sprite's transparency.
- New IsSprite() function to check if a value is a sprite handle.
- Game Level Editor, fixed ScreenWidth and ScreenHeight values when creating a new game level.
- Game Level Editor, disabled Extended event code.
- Fixed Physic Sprite, Layer, World Sprite
- Fixed Call() function not to allow for private func/proc calls.
- Fixed PRIVATE and PUBLIC statements to be allowed in non-class definitions too.
- Fixed #include statement to use default path first when #code is found.
- Fixed SW_Send() function in swsock.ppl library.
- Fixed g_resume() function to restart timers properly.
- Fixed issue in internal structure copy routine.
- Fixed issue with list variables items not freed upon exiting a function.
- Fixed return() function to pass structures & arrays information properly.
- New G_State() function that returns if the GameAPI is in suspended mode.
- New function G_SetState() to enable timer based GameAPI processing to save on CPU consumption.
- New g_ChangeResolution() function, to switch resolution/orientation on the fly.
- Fixed isometric height adjustments.
- Changed SpriteFrames() function name to SpriteFrameLoop().
- New function, SetSpriteFrameLoop().
- New double type functions in PASM. cos, sin, cosh, sinh, tan, tanh, atan, atan2, log, log10, floor, ceil, exp, toint.
- New function called popf to pull double value from floating point stack in PASM.
- New Object-Oriented function Is() to know if a variable is part of a specific class.
- &procaddress now looks in class definition first.
- Fixed variable set routines (readwrite) to work correctly with strings returned.
- Added a check not allow creation of variables that are not part of a structure or object.
- New GameAPI functions, SetSpriteCurrentLoop() and SpriteCurrentLoop() to set and return the current sprite animation loop counter.
- New functions, SetSpriteColorMask() and SpriteColorMask().
- New parameter added for alpha surface transparency in function DrawSurfaceEx().
- New function SetSpriteAlphaSurface() and SpriteAlphaSurface() to set and get the sprite's alpha transparency surface.
- Fixed variable pointers when used with Free() function.
- Fixed UI.PPL memory leaks.
- Fixed the Debug button in the PIDE not to run continuously.
- GameAPI internal loop exits if GameApi window is closed.
- Fixed PIDE Component Navigator to support Public and Private procedures and functions.
- New function CurrentLine() that returns the current line number being executed.
- New function CurrentFilename() that returns the current source filename being executed.
- PIDE, print code with line numbers now as an option.
- Added AlphaSurface parameter at the end of DrawSurface2.
- New DrawSurface3 with Angle and AlphaSurface support.
- Make executable, cannot change icon if compressed runtimes is checked.
- SpriteX() and SpriteY() returns integer values.
- New ToInt() function to convert a double value to integer.
- Fixed DeleteFileFromPackage() function.
- Fixed .exe mode with Eval() and Run() functions.
- Fixed, exectuables for PocketPC, not to remove necessary resources when changing icon.
- Added SO_RESETANIMSPEED to reset to zero animspeed when animation loop is done.
- PNG loader added to Desktop version of PPL.
- Fixed project manager Save As... to change target PC path.
- Fixed project manager file location, if exist in project folder, will use this one.
- Fixed menu line separator in PIDE not to draw stretched icon on left side.
- Fixed Profiler result % display on code editor.
- Fixed memory analyzer bug.
- Fixed internal structured variable copy algorithm not to alter structure strings.
- Fixed sprite's parent and child internal bug.
- Function RandomSet() supports unlimited amount of values and returns a value.
- Fixed issue with ComInfo() function.
- New Min() and Max() functions.
- Adjusted angled sprite's bounding rectangle calculations.
- PIDE Game generator allow for Generate Library (map code will not initialize GameAPI).
- Fixed Proc/Func declaration compiler error when non-variable found.
- Fixed PIDE Undo behavior in multiple operations.
- Optimized GameApi internal sprite's deletion internals. Should speed up collision detection a bit.
- New sprite option SO_ALPHAWHITE to allow special collision detection with alpha sprite transparency.
- New option in PIDE to turn syntax highlighting off.
- Fixed memory leak when freeing sprite's surface from memory.
- New SO_FREEALPHASURFACE sprite option to free alpha surface if used with SetSpriteAlphaSurface().
- Fixed DrawGrid() bug when used in non-isometric display.
- Fixed display bug with SetBackSprite() when in non-isometric display.
- New TListToArray() function.
- New function StrToListInt() to convert to a list in numerical form.
- Renamed StringToMatrix() to StrToMatrix().
- Renamed MatrixToString() to MatrixToStr().
- New function StrToArray() to split a string into an array.
- New function StrToArrayInt() to split a string into an array as numerical elements.
- New function StrToArrayEx() to split a string into an array.
- New function StrToArrayIntEx() to split a string into an array as numerical elements.
- New function ArrayToStr() to convert an array to a string.
- Watches in debugger now show all Class and Structure's variables.
- Fixed bug when Error log appears after compile or run, the editor centers to the selected code line.
- Added Param$ parameter support in TreeView add and insert functions in Swapi.ppl.
- New ListView_GetParam() and TreeView_GetParam() functions.
- New ListView_SetParam() and TreeView_SetParam() functions.
- New TreeView_Parent() function.
- New TreeView_Prev() function.
- New option to decode .OGG files in memory at load time in LoadSound() function.
- g_CacheText() function returns a surface handle instead of a sprite handle.
- Ability to use functions within " " in declare lines.
- New QuietMode() function to eliminate status bars during loading, parsing, compiling, etc... of files.
- Renamed compiler phases in status window. Replaced 'Parsing' by 'Analyzing' and 'Processing' by 'Parsing'.
- Raised reserved stack memory allocation to 4mb to increase possible recursive calls.
- Optimized some operators (<, >, <=, >=, ==, !=).
- Warnings are issued on Structure elements that are not defined in explicit var check mode.
- New SQLite_demo_v3.ppl test file. (Thanks to Eric Pankoke).
- New SQLite version 3 library files (Thanks to Eric Pankoke).
- Fixed Eval() not to crash when error(s) in code string.
- Fixed compiler to re-load declares from .dll's when used with Eval function.
- FreeSurface() now goes through the sprites to unassign sprite's surface and alpha surface.
- Sprites rendering won't crash if a sprite doesn't have a surface assigned to it.
- Fixed Common.ppl for TreeView notification messages.
- New function called ErrorSprite() which will contain the sprite that caused a crash in RenderSprites().
- Added ability to assign values to matrix element.
- Added ability to assign a matrix to a matrix element.
- Fixed compiler syntax analyst to recognize the following syntax as valid. ([x])
- LoadSpriteFromMem() and LoadSurfaceFromMem() now supports BMP's on PPC and PNG on the PC.
- New ResizeSurface() function added.
- Fixed issue with ShowMessage() to get the real string size before printing.
- Fixed issue in Encrypt() function not to go over the string size when -1 is used to size.
- Fixed issue with #include directive when a fixed path was used.
- Variables in Watches window are now sorted alphabetically.
- DelSprite() will unassign children sprites parent property.
- Fixed Sprite's children assignment in some routines.
- Fixed Object Oriented engine #object directive not to erase previous object's data.
- Fixed g_Resume() to resume to proper state.
- Fixed freeze in PIDE when Component Navigator is ON while typing a (.
- Replaced CRC32() and CRC16() functions with new code to follow PKZIP standards.
- New function SpriteChildren() to return a list of all children of a sprite.
- New function LoadSpriteAlphaFromMem().
- Fixed ListView_Insert() not to convert string to wide string.
- Fixed PIDE, Search In Files recursive search to work properly.
- New LoadStrEx() and wLoadStrEx() functions to load specific number of bytes from a starting position in the file.
- New OpenPackageEx() to only load the package table of contents in memory.
- New function g_proc() to return the current gameapi procedure pointer.
- New functions g_SetPaintProc() and g_PaintProc() to set and return custom paint procedure.
- New g_MainLoop2() function to call the alternate faster game loop.
- New g_SetMainLoop() and g_GetMainLoop() functions.
- New g_LoadVGAFontFromMem() function to load VGAFont data from memory.
- New FileSize() function to return size of file in bytes.
- Fixed Call() function caching bug.
- Fixed GetProc() and GetProcEx() caching bug.
- New function AppUniqueID() to return application unique identifier value.
- Huge memory optimizations in Compiler and List elements.
- PIDE, bug fixed in "Open Selected File".
- New Smartphone Edition installer.
- New g_DrawList function to draw sprites in a special list.
- New WM_ANIMDONE event called when animation of sprite reached last frame.
- New very fast memory management system implemented in the Analyzer, Parser and Compiler.
- New mmCreate(), mmDestroy(), mmAlloc() and mmFree() functions to use the new memory management system.
- Fixed bug with global defines.
- New POOM library. (Thanks to Eric Pankoke).
- New LargeInt() function to convert from a LARGE_INTEGER value.
- New ToLargeInt() function to convert a valut to LARGE_INTEGER value.
- ToArray... functions now create an array variable is target variable is not already.
- Fixed Form Initialization section in the PIDE.
- New RenderSprite() function, to render a single sprite on screen.
- Fixed stack corruption when using Eval() function.
- Fixed small resource leak in g_loadfont().
- New phone api library.
- Added COM functions to garbage collector.
- Fixed some memory leaks in COM functions.
- Fixed garbage collector with loops (while, for, foreach and repeat). Cause memory leaks before.
- The Debug() function now outputs the available memory.
- Added 10 open history menu items to File -> ReOpen.
- Added 5 open history menu items to Project -> ReOpen.
- Fixed PIDE menu bar colors under XP style.
- Fixed Procedure form to erase text entry when selection is made.
- New ImgLoader demo file to show how to display JPG, GIF, PNG files in Windows GUI.
- Updated PocketHAL engine to 1.0.1.

04.12.2007 1.25 (Re-released)

- Fixed the Procedure list not to reset selected item when accessed.
- Fixed Swapi.ppl bug introduced in 1.25.
- Fixed VarType() and LType() to recognize struct strings. New type _STRINGPTR.

04.12.2007 1.25

- Increased size of define value from 1024 to 4096 characters.
- PIDE, fixed close of program when form's codes are loaded and not saved.
- PIDE, fixed Paste menu item in form's code.
- PIDE, fixed Edit menu flickering when form is active.
- PIDE, procedures list form can not be resized.
- PIDE, procedures list is not reset anymore when the procedures list form is activated.
- Fixed VarType() and LType() to support structure's element. Ex: struct.element$.
- GameAPI doesn't consume 100% CPU power when suspended.
- LType() now detects _WIDESTRING type.
- VarType() and LType() can detect _ARRAYSTRUCT variable types.
- Parser / Compiler stops logging errors or warnings after a count of 256.
- G_LoadFont() now has an extra parameter to specify the font background color, default is -1.
- PIDE, fixed debug toolbar buttons (Step over, step into, run to cursor).
- Wait cursor appears in quiet mode compiling. (Executable mode as well).
- New ToIso() function, to convert a grid cell location to pixels location.
- Fixed the Procedure list not to reset selected item when accessed.
- Fixed Swapi.ppl bug introduced in 1.25.
- Fixed VarType() and LType() to recognize struct strings. New type _STRINGPTR.

04.06.2007 1.24

- Fixed variable type clear function.
- Fixed sprite drawing internal not to crash if width and height of sprites are zero.
- No need to use the @ operator to use STRINGS in arrays or structures. PPL recognizes them automatically.
- Fixed parameter passing to pass arrays correctly again.
- Added #c_declare and #c_declareapi to PIDE syntax highlighter words.
- Added tons variant variables conversion routines to ole.ppl.
- Even if errors are found during parsing, the compilation will take place to find other errors.
- Fixed internal ExtractPath() function to return blank string if no valid path found.
- Fixed code generator to use full pathname in #code statements.
- Fixed PIDE, error pane, double-click to work properly again on form codes.
- Fixed optimizer.
- Fixed ScaleSprite() to use 0.5 for 50% and 1.5 for 150% instead of 50 or 150.
- COM engine now uses VT_DATE as SYSTEMTIME.
- Some memory leaks fixed in COM engine.
- Fixed T() to use two parameters.
- Enhanced the optimizer.
- New LO() and HI() functions to extract low and high portion of double as integers.
- Moved VT_XXXX definitions from Windows.ppl to Ole.ppl library.
- PIDE, new Find Previous in Search menu.
- PIDE, new custom drawn menus.
- Update PIDE protection engine to latest version.
- New cursor function declares in Windows.ppl.
- Collision detection for borders assign the T_COLLIDE% and S_COLLIDE% variables.
- PIDE, fixed new project, folder browsing.
- PIDE, added option in new project not to create a sub folder.
- Invoke, GetProperty and SetProperty functions assign the COMERROR% variable correctly.
- New COMERRORDESC% variable is set when COM error description are found.
- PIDE, PIDE.INI configuration file is now stored in local folder.
- Fixed SetSpriteDirection and SetSpriteVelocity functions with 0, 90, 180, 270 angles.
- Fixed Call function to use directly func/proc name instead of just address.
- New GetProcEx() function to allow to search a function specifying the input and output parameters count.
- Optimized the GetProc and Call functions.
- Run, RunEx, RunFile, RunFileEx now returns the application handle when application stays loaded in memory.
- Fixed Call() to call external application's functions.
- Fixed KillApp() if no windows in application to just normally free the application from memory.
- Internal range checking now calculates the smallest memory size due to bytes alignment.
- PIDE, new New Form.. wizard.
- PIDE, new Generate Form Call code menu item.
- Fixed Exit function to work correctly.
- Fixed Encrypt() function to detect correct size of input string.
- New g_fonts() function to adjust the maximum number of characters the g_loadfont will cache.
- g_loadfont() doesn't use 4096 characters to cache by default anymore.
- New functions in Swapi.ppl, Control_BringToFront, Control_SendToBack.
- A wait cursor will appear when an executable created with PPL is loading.

03.16.2007 1.23

- Fixed ListToStr() function bug introduced in 1.22.
- New Edit_Length, Button_Length, Label_Length, Combobox_Length and Listbox_Length functions in swapi.ppl.
- Fixed functions Scrollbox_GetRange and Scrollbox_Get for the PocketPC in Swapi.ppl.
- Added "Auto Hide" option on Procedure Form in PIDE.
- Fixed PIDE Cut, Copy and Paste menu items.
- Added support for unicode strings in g_loadfont, g_drawtext, g_drawtextex, g_cachetext, g_textwidth
- Fixed PIDE to delete .ppc file for forms and .ppl files every time.
- Fixed Linker to remove unused procs/funcs like before.
- Fixed linker in debug mode bug.

03.09.2007 1.22

- New, improved, more stable and faster garbage collector.
- Fixed PPC file save routine.
- Fixed g_AutoDraw() function.
- Added AUTODRAW_DRAWONLY constant.
- Fixed Simple3.ppl to use AUTODRAW_EVENTONLY.
- Fixed memory leak in compiler.
- Fixed memory leak in structure variables.
- Fixed memory leak in gravity collision check in GameAPI engine.
- Fixed memory consumption issue that was introduced in 1.20.
- Reduced memory footprint used by compiler/optimizer.
- Optimized optimizer.
- New optimizer opcodes to increase speed overall.
- Fixed NUMEDIT control in PIDE.
- Fixed form saving in PIDE if only Run is selected.
- Fixed Form menu in PIDE not to flicker anymore.
- Rewrote strtolist() function.
- Fixed ClearSpriteChildren() function.
- Support for unicode strings added, most string functions support them.
- New wLoadStr() and wSaveStr() functions to load a wide string char.
- New wchr() function return a unicode string.
- New wLoadPackageFile() function to support unicode string.
- PIDE, fixed Save all and Project save option.
- Fixed Invoke() to process IDispatch handles on return.
- Changed FreeCOMObject() to Release the objects as well.
- Added wNew() function to create a new unicode string in memory.
- New wGetItem() and wSetItem() functions that support unicode strings.
- New wStr() function to convert to unicode string if needed.
- New functions in Swapi.ppl and Windows.ppl to support Unicode strings in controls.
- New wGetSelText(), wSetSelText(), wGetText(), wSetText() and wGetTextLine() unicode string functions.
- Reduced optimizer number of phases from 5 down to 1.
- Fixed PIDE resize bars not to wrap to border anymore.
- Fixed PIDE so that no successful message will be displayed if registering a runtime didn't work.
- Optimized Local/Global runtime speed.
- Added OnSettingChange event in the PIDE form.

02.27.2007 1.21

- Fixed PPC loading process for executable files.
- Fix scrollbar design and for generation code.
- Fix internal numeric validation function to support E in hexadecimal again. This was broken when trying to add support for the 2.222E-02 format.

02.23.2007 1.20

- Fixed duplicate styles on form in PIDE.
- Fixed WM2003 executable building in the PIDE.
- Fixed text drawing routines to support only characters from 1..255.
- Changed string internal unicode conversions to UTF8 code page.
- Fixed LoadSpriteFromMem() on PocketPC.
- Fixed error log double-click in PIDE when used with a project.
- Added possibility to run a form from within a control code tab in the PIDE.
- Fixed some debugger issues.
- Fixed Exe loader not to generate a temporary .ppc file anymore but to load from memory.
- No logs output when running an executable anymore.
- Fixed PIDE to copy .ppl file to temporary destination folder (run, compiler, makeexe, etc...)
- Fixed wrong file name added to re-open menu items.
- Fixed internal double to string conversion routines to return correct values. (Should speed up interpreter too).
- Fixed Form code generator to #include "swapi.ppl" outside the #namespace of each form.
- #include directive now supports checks for namespaces.
- Better support for embedded namespaces. Up to 128 levels of embedded namespaces supported.
- Fixed SWAPI.PPL TreeView functions errors.
- Control code is always opened next to the form tab to keep form and code tabs together.
- Added a new FreeSound() function.
- Fixed OnSelEndCancel and OnSelEndOK for Combobox in PIDE not to be doubled anymore.
- Fixed PackageFiles() in PkgMan.ppl to work with new version of function.
- Added multi-pass linker processing to reduce .ppc files considerably.
- Fixed Linker to fix bugs with namespaced functions.
- Optimized Linker process.
- Changed GetDC() in StartPaint from Swapi.ppl to GetWindowDC().
- Added support for 640 x 240 resolution in the PIDE form editor.
- New PIDE compiler options for the linker. New sub menu for linker options.
- Removed the #NOLINK compiler directive. Replaced by #LINK compiler directive.
- Fixed syntax error in PIDE when Component Navigator is used as you type source code.
- Fixed Procedures window to only refresh list when tab is changed.
- Fixed PIDE function finder to work correctly if function is commented out.
- Fixed Trunc() function bug.
- Fixed Del() access violation inside a ForEach() statement.
- Fixed Registry.ppl library file to remove RegCreateKey and RegOpenKey on WinCE.
- Fixed RegistryText.ppl demo file.
- Fixed bugs when running single code tab from PIDE to PocketPC.
- Added greater flexibility to G_AutoDraw() function to call WM_PAINT or not.
- Added a new function called TruncEx() that returns a value with a specific number of decimals truncated.
- Fixed internal bug when comparing filename to .ppc file.
- Fixed AppName$ and AppPath$ when running from an .EXE.
- PIDE, new option to change the destination folder when creating .EXE files.
- Added ui_Keypressed$ global variable to UI.PPL library when key is pressed on virtual keyboard.
- Fixed Edit_SetSelStart() function.
- Fixed bug in ArrayToList() function.
- Size overflow check in (struct, array, matrix) element assignment.
- PIDE, new controls display in form editor using categories.
- PIDE, form editor, possible to drag controls to form from list.
- PIDE, possible to stretch controls per pixel using Shift+Arrow keys.
- PIDE, changed "Create Source" menu item caption to "View Source Code".
- Fixed DestroyWindow() function to not UnregisterClass anymore.
- Added new functions to DateTime.ppl library.
- PIDE, when save a form, the ppl code file is generated automatically.
- Swapi.ppl, fixed Menu_TrackPopup to return ID of selected item.
- Fixed Header control text display.
- PIDE, Double-clicking in the Properties dialog will bring you to the right editor.
- Cache file (*.pcf) is generated with each form file to speed up control display.
- PIDE, fixed Find Dialog with WM_PASTE, WM_COPY and WM_CUT messages.
- Fixed SO_FIXED child sprites.
- Menu_Add, Menu_Insert supports "-" caption for separator line in swapi.ppl.
- PIDE, visual form editor, control combobox now displays the ID of the control.
- Optimized global variables.
- PIDE, terminate program doesn't try to stamp executable anymore.
- PIDE, visual form editor and game level editor, new double buffering method used to speed up display.
- Global options when no text is open doesn't crash anymore.
- Save tab size and Keep tabs options now.
- Added battery information functions and defines in Windows.ppl.
- New SetSpriteMap() and DelMapSprites() functions.
- Fixed controls text color not displaying if back color was not specified.
- Added support in the parser and PIDE code formatter for 2.2e-16 type values.
- Optimized PPC file loader.
- Optimized Compiler.
- New RAPI library.
- New ScrollBar functions in Swapi.ppl
- Fixed Scrollbar in PIDE.
- Fixed IsPointer() to work with structure elements.

01.19.2007 1.12

- Revamped PIDE interface to follow Windows GUI guidelines more closely.
- Fixed form code generator if no controls are on form to create correct ppl code.
- Added mouse events to game map control.
- Fixed Override statement compiler error bug.
- Fixed bug in Swapi.ppl Edit_LoadFromList() function.
- Fixed bug in Swapi.ppl, Control_Show and Control_Hide to keep z-order level on control.
- Fixed Access Violation error in Component Navigator.
- Fixed MakeExe() issue when trying to build an Exe for the PPC from the PC.
- Fixed problem with ForEach() loop with Del() inside.
- Fixed DelAll() function returning a blank list pointer everytime.
- Fixed Trim(), LTrim() and RTrim() to support blank strings and to return correct strings.
- Fixed MCount() not to count sub-matrix group as extra.
- Fixed ForEach() to work properly with matrix.
- Fixed MType() to return right type.
- Fixed package file extraction routines.
- Fixed some internal package routines bugs.
- Fixed LoadSpriteFromMem() on PocketPC to support other file types than just bitmaps.
- Some fixes to the AND operator in PASM.
- PPLPUSH in PASM now uses UNSIGNED INT values.
- Fixed ProcessSprites() to recalculate all sprites not just the displayed ones.
- Added STN_DBLCLK to static.ppl library.
- Fixed NewSurface to fill the surface with black by default.
- Fixed Editor installation issues.
- Fixed Edit_Get in swapi.ppl.
- Added some defines in Common.ppl for ProgressBar color messages.
- Fixed LoadSurfaceFromMem() function.
- Fixed Visual Form Editor to tag form as changed when NameSpace option is changed.
- Fixed variable untyping internal code to remove array of structure flag from variable.
- Fixes to PPL multidimensional array row-major ordering.
- New function ColumnMajor() to change ordering of multidimensional array to Column-major storing.
- New function RowMajor() to change ordering of multidimensional array to Row-major storing.
- New functions: SpriteFrameCount(), SetSpriteFrameCount().
- New functions: SpriteDefaultWidth(), SpriteDefaultHeight().
- New function: ScaleSprite().
- Fixed TVN_SELCHANGED and TVN_SELCHANGING for TreeView component in common.ppl.
- Editor/VFB: User menus have been updated and now work in both the editor and the VFB editor.
- VFB: FRM meta data has been updated.
- VFB: Updated some copy write statements.
- VFB: Added some file header comments.
- Editor: Changed the names of the files in the editor project to add "ED_" to the beginning of the name except for editor.ppl and editor.prj.
- VFB: Added the option for namespace code to the forms.
- VFB: Correct problem with generating valid code with no controls on the form.
- VFB: Updated all of the forms to add the namespace option.
- Fixed debugger trace when variables value are invalid.
- Fixed debug command not to restart the debugging after a breakpoint.
- New toolbar functions in Swapi.ppl.
- Fixed toolbar OnClick event message to NM_CLICK.
- Added notification message support variables in HANDLEEVENTPARAMS macro in Swapi.ppl.
- Added notify messages to Windows.ppl library.
- Fixed RadioButton and CheckBox drawing on form in PIDE.
- Fixed Trackbar help location on MSDN.
- Fixed Trackbar event messages.
- New OnHScroll and OnVScroll messages on form.

12.21.2006 1.11

- Fixed DelAll() function.
- Fixed component navigator access violation.
- Fixed bug in version stamping for runtimes.
- Doesn't try to run autorun.ppc by default anymore but autorun.ppl first.
- Fixed Game Level Editor code generator to support more properties.
- Reviewed PPC installed procedure for editor files not being copied over properly.
- Fixed var$[index$] = value assignment to strings.
- Fixed ProcessSprites() to re-calculate sprite rectangles properly.
- Structure, Array and Matrix variable assignment now frees old values before.
- Fixed typo in new project, replaced ::PPForm with ::PPLForm.
- Fixed bug in Inputbox.ppl.
- Fixed menu editor in PIDE to not allow menu items to be in wrong levels.
- Fixed ForEach() with list items, when current list item is deleted.
- When sprite is deleted, particles linked to it are deleted as well.
- Fixed GameAPI.ppl NewParticleGroup function not to compile if Lite or Standard version used.

12.12.2006 1.1

- Removed all functions from Windows.ppl and moved them to Swapi.ppl library.
- Fixed %c in printf() and sprintf() functions.
- New CacheText() function to optimize truetype font drawing by painting to a sprite.
- New SetSpriteLifeTime() and SpriteLifeTime() functions to set the sprite time to exists in milliseconds.
- New SetSpriteAnimVel() and SpriteAnimVel() functions to set the animation speed relative to velocity.
- Fixed GetText() and SetText() functions to use WM_GETTEXT and WM_SETTEXT messages instead of GetWindowText() and SetWindowText() api functions.
- Added GetDoubleClickTime to Windows.ppl library.
- Changed NewParticle to use particle options.
- New particle options: PO_PHYSIC, PO_FREESPRITE, PO_COLLIDE, PO_DIE, PO_LOOP, PO_ROTATE.
- New particle events: WM_PARTICLELOOP, WM_PARTICLEDIE.
- New Explode() function to split a sprite into multiple sprites.
- Fixed memory leak bug introduced in 1.08.
- Fixed DelSprites() to flag the sprites in the deleted sprites list too.
- Fixed DelSprite() to delete the sprite from memory.
- 28 new particle functions to get and set each particle properties.
- New Simplified Windows Socket API with TCP/IP, Bluetooth and Infrared support.
- PIDE: Allow to change default editor font.
- New AddList() function to add a list to another.
- New ADO database library.
- New AdoTest demo program using the new ADODB.PPL library.
- Get and Set procedures are now supported in all variable types (list, structs, objects...).
- New Console Skeleton code in users menu.
- New Registry.ppl library to access Windows registries.
- New RegistryTest.ppl demo.
- New parameter in MakeEXE() function to force target compilation type.
- New (PIDE) navigation treeview that lists all procs/funcs, variables, includes, classes ...
- New support for particles groups in Game Level Editor.
- Added OnEraseBackground event to common control event list.
- Fixed g_suspend bug when focus on application is lost.
- Fixed bug when SO_CHECKCOLLIDE was not specified.
- Fixed bug in g_shut() when back buffer was still open for drawing.
- ProcessParticles() and RenderParticles() are done automatically by the game engine now.
- New GameParticles() function to override game engine settings for particles processing and rendering.
- New FORCELINK function statement to force the linker not to remove the proc or func.
- Fixed numerous #namespace bugs.
- Fixed Game Level Editor selection of the game map.
- Maximum and minimum frame count in some sprite's functions are checked.
- New SetVar() function to set a variable value by using its name as a string, in the same manner as the GetVar() function.
- New .OGG compressed music file support added.
- New support for #namespace in Visual Form Editor in the PIDE.
- Optimized collision detection and fixed memory leak.
- Fixed evaluation of expression or code bug where file pointers were lost on opened files.
- Sort() function has a case sensitive parameter now.
- Fixed PIDE Visual Form Builder, loader to support any caption values.
- Fixed button color drawing in PIDE Visual Form Builder.
- PIDE, when temporary dialog appears (run,compile), make destination text control focused.
- Fixed error 103 when running a form on the PocketPC more than once.
- Fixed error after compiling or running on the PocketPC and form and then switching target to PC.
- Add Control_Enable, Control_Disable and Control_Enabled functions in Swapi.ppl
- Fixed Arrays in structures used with strings bug.
- Fixed StrToList() and StrToListEx() functions.
- Fixed Form_Repaint, Form_Refresh, Control_Repaint and Control_Refresh functions in swapi.ppl.
- New LoadSpriteFromMem() function to load a sprite image from memory.
- New LoadSoundFromMem() function to load a music or a sound from memory.
- New LoadSurfaceFromMem() function to load an image from memory.
- PIDE, new option to run the PPL runtime IDE.
- PIDE, new option to access the package manager utility.
- Fixed PIDE source code formatter to have better support for ~ & |
- Runtime error when trying to access a private variable outside a class.
- Fixed interpreter to automatically free objects from memory.
- Fixed Cos360, Cos256, Sin360 and Sin256 functions to work even without the GameAPI initialized.
- Fixed IncAngle() and IncAngleRad() functions bug.
- Fixed bug in TDIM().
- Checks range out of bounds for array index values. ex: dim(a$, 10, 10); a$[11, 10] = 10; will give an error in range check mode.
- Fixed debugger on PocketPC.
- Fixed debugger users entry watch window to support namespaces.
- Random() now supports double type values.
- Added support for WM_MOUSEHOVER, WM_MOUSELEAVE and WM_MOUSEACTIVATE in Windows.ppl.
- Added support to run Autorun.ppc file, not just Autorun.ppl.
- Fixed mouse events on sprite to calculate origin positions properly for wParam$ and lParam$.
- Fixed debug when used with form, not saving code properly.
- New ExtractFileFromPackageEx() function.
- Fixed SavePackage to support NULL in Filename and Key parameters.
- New AddFileToPackageEx() function to allow specifying a package file name.
- New support for custom layer in Game Level Editor.
- Fixed Add() to support adding a structure variable to a list.
- Fixed Find() to support FO_NUMERIC properly.
- Fixed bug in Find() field index support.
- Fixed ArrayToList to support strings.
- Fixed ArrayToList to support arrays of custom sizes.
- New compiler error message if a Func or Proc is embedded in another one.
- New IsPointer() function to know if an address is storing a pointer or not.
- New InputBoxDemo.ppl demo for InputBox and InputQuery functions.
- Update InputBox.ppl library file.
- Fixed ShowModal on PC to center form correctly.
- Fixed VelLimitLow and VelLimitHigh in Game Level Editor.
- New SpriteVelLimitLow() and SpriteVelLimitHigh() functions.
- Fixed bugs in Redim().
- PIDE, ability to use namespaces or not in Visual form editor.
- Fixed number of arguments checking in = operator. When used with a$, b$, c$ = "ABC" / 3 it now works.

11.10.2006 1.08

- PIDE: Fixed default decimal and thousand separators to '.' and ','.
- Fixed default decimal and thousand separators to '.' and ','.
- Fixed internal sprites processing when sprites are deleted.
- PIDE: Added OnPaint event to all controls and the form.
- PIDE: Fixed form code generator to remove WS_VISIBLE style to form creation correctly.
- PIDE: OnShow will work correctly on forms now.
- Fixed Swapi library to convert strings and integer values when needed.
- PIDE: Fixed Find Next in Replace dialog.
- PIDE: Find and Replace default search string is selected text.
- Fixed List() function to empty list content if already is.
- Fixed memory overflow in assigning variables of fixed sizes. Created with (new(), tdim(), struct(), etc...)
- New SO_PLATFORM sprite option to allow for platformer style collision detection on a simple sprite.
- PIDE: Undo / Redo support when switching documents allowed.
- PIDE: Support for relative directories added back to project manager.
- New SetWndProc() function to change default windows procedure to a control or form.
- Fixed PIDE form generator to work with all Form's events.
- Fixed G_Lock() and G_Unlock() to support the main screen buffer.
- New PASM user menus.
- New ListView_SetColumn() and ListView_GetColumn() functions in SWAPI.
- VFB: Code editor resizes when SIP is up.
- Main: About tab to resize/redraw when SIP is up.
- Fixed list string storage internal bug.
- Added OnCommand to list of form's events.
- Fixed WM_MENUSELECT event define.
- Fixed bug assigning variable to self when using a string value.
- New GDI demo to show how to draw on a control at WM_PAINT time.
- VFB: Added Form_Repaint in code generator.
- VFB: Fixed a form load problem if a control name or a class name began with "meta".
- VFB: Fixed a problem loading the form meta.version data.
- VFB: Fixed a problem in the eventlist dialog not showing the right events.
- VFB: Fixed the PPL generation to not have the visible style.
- VFB: Fixed the PPL generation if a form class name was not PPLForm
- VFB: Fixed the PPL generation event scan for events to add
- VFB: Fixed the PPL generation so that the form never has a parent ID
- VFB: Fixed the form file save to not save the parentID if 0 matching the operation of PIDE.
- VFB: Fixed a problem in the eventlist dialog not leaving defined handlers left aligned to indicate that they exist.

11.04.2006 1.07 (Re-release)

- PIDE: Profiler and memory analyzer, support for other decimal and thousands separators.
- PPL support for locale decimal and thousands separators.
- Fixed SWAPI.PPL Edit_Get() and Edit_Set() functions.
- Removed debug code in interpreter.
- Fixed DelSprite() bug in WM_COLLIDE event.
- The WM2003 version was a debug build that is why it was slow. Fixed with release build.

11.03.2006 1.07

- Fixed DelSprites() bug.
- PIDE: Fixed Game Level Editor bug.
- Fixed runtimes registration bug.
- Enabled structure elements back in sdim() and dim().
- Enabled structure elements as lists.
- Fixed arrays of structures when passed as parameters.
- Fixed structure elements as array when passed as parameters.
- Fixed structure elements as list when passed as parameters.
- Common .dlls and .exes for PocketPC are now installed on PC side.
- PIDE: No LBS_STANDARD style on Listboxes by default anymore.
- Fixed Groupbox colored controls display.
- PIDE: Fixed watch window display for some variable types.
- Fixed g_loadfont().
- Fixed control color processing for default colors.
- Fixed LinkProcs.ppl not to show message with num=xx anymore.
- Fixed PC form background display color.
- PIDE: Fixed Add file to project when not in same folder as project.
- Fixed Sprite's grid collision removal problem when no sprite collide was set.
- Fixed dialog background color.
- Particle collisions is now available through SetParticleCollision(Particle, Id); WM_PARTICLECOLLIDE is then called.
- NewParticle() function returns a particle handle now.
- New function DelParticle().
- Fixed bug in RTrim(), LTrim() and Trim() functions.
- PIDE: Fixed thousand seperator for profiler and memory analyzer results.
- Fixed sprite sorting bug.
- Added AppPath$ to form generator global statement.
- Fixed memory leak in g_TextOutEx() function.
- Fixed memory leak in g_DrawText() and g_DrawTextEx() functions.
- Changed SQLITE_DLL.DLL to SQLITE_PPC.DLL and SQLITE_PC.DLL on the PC.
- Fixed define problem for platform information.
- Fixed Sprites() function returning 0 items when used with NULL parameter.
- PIDE: Fixed watch window when variables information was over 2k.
- Swapi library: Added Form_Repaint, Form_Refresh, Control_Repaint, Control_Refresh.
- PIDE: Form generator added a Form_Repaint after display.
- Fixed runtime errors in errorlog.txt.

10.27.2006 1.06

- If .ppc was build using a different runtime, it will try re-compiling if .ppl is present.
- Fixed Replace to be able to replace only in a selection of text.
- WM2003 version of PPL is now the default .EXE in installation.
- Added a PPC2000 folder on PocketPC with the PPC2000 version of PPL.
- Added a WM2003 version of PPL in WM2003 folder.
- Fixed garbage collector bug introduced in last version.
- New Start menu shortcuts to ArianeSoft website's in install.
- Installation is auto-extracting setup file now.
- PIDE, new PPL Support Forums menu item in Help menu.
- Fixed PIDE Form Editor to set the form to not saved when creating a new one.
- Fixed Classes.ini code to load bitmap images from right location.
- PIDE: Fixed icon display of component list in the visual form editor.
- PIDE: Fixed form generation code to SetWindowPos to all controls so z-order is maintain on PocketPC.
- Fixed g_drawrect() function when bottom value is negative and greater than screen height.
- Updated Main IDE project. (Mainly fixed icons disappearing after compile).
- Fixed ForEach() when working with structs to use pointers instead of values.
- Collision detection now works on tiled sprites.
- New LCopyEx() function to copy list by range.
- New CS_DBLCLKS% global variable to set the double-click events on forms.
- Fixed internal goto not to go past the end of list.
- New ListView_SetSub() function.
- New ListView_SetColumn() function.
- Changed ListView_Add() to a function.
- Disallow &ClassName in PIDE VFB now.
- Fixed bug with ++ and -- operators in expressions.
- Fixed a small remaining bug with menu editor code search.
- Fixed Menu_Enable() in swapi.ppl.
- Added Menu_Gray() in swapi.ppl.
- VFB: Can Run and Compile the current form.
- VFB: Code generator does fix controls order (STATIC in particular).
- Fixed SetGridCells() bug.
- Fixed DelGridCells() bug.
- Fixed collision with a cells instead of a sprite bug.
- PIDE, VFB fixed local() statement placement in non simplified event handling mode.
- Fixed small bug in the display engine to cause angled sprites not to display properly.
- Changed PIDE code generator to use Extended styles on some controls.
- Fixed Classes.ini to support extended styles for ListView and TabControl.
- PIDE, visual form editor fixed Show Grid resetting on form switch.
- PIDE, visual form editor, Preferences change for modification status.
- Fixed bug in list[offset] syntax. The pointer of the list doesn't move anymore.
- Fixed GetTextLine() function.
- Fixed Edit_GetLine() function in the Swapi.ppl.
- Fixed, Replace(), Insert(), Delete(), Change() to support strings pointer. For Structs and Arrays.
- Fixed CenterForm() not to activate hidden windows.
- New Form_ShowModal() function in Swapi.ppl.
- New control styles function in the Swapi.ppl.
- Fixed embedded comments in the parser.
- Runtime error messages for Dim, SDim, TDim, Redim and List if not right variable type.
- New DeviceOwner() function.
- Fixed bugs in DeviceSerial() for PPC2002 and up.
- Added support for 240 x 240 square screen.
- PIDE: Fixed Positions and Dimensions when used with form.
- Removed SO_TOPMOST and SO_BACKGROUND sprite options.
- Updated UI.PPL (thanks to John Bishop).
- Fixed PIDE form generator to use common properties and events on forms as well.
- Fixed GameAPI.ppl for C button.
- New namespaces support in the parser and compiler.
- New SetBackColor() function to set the background color or windows and controls.
- New SetFontColor() function to set the text color of a control.

10.13.2006 1.05

- Added a new g_freevgafont() function.
- Fixed memory analyzer with g_freefont.
- Drag-drop editing back in PIDE now.
- Fixed New Project -> PPL Windows Project issues.
- Removed old code from PASM parser.
- Major Object-Oriented engine upgrade. (All objects are passed and used as reference)
- Fixed passing an object as parameter (as non-pointer and as pointer).
- Fixed public func/proc call when object variable has same name as classname.
- Fixed object's assignment to use reference and not delete original.
- Return objects as references only.
- ForEach now supports objects in lists.
- Fixed Lists to support objects directly instead of just as references.
- Fixed class typing of proc/func.
- Fixed classtyping as expression.
- Fixed object's assignment to arrays. It doesn't have to be a pointer anymore.
- Added a link to PPL IDE in the start menu on install.
- Fixed List() function not to accept struct member variables.
- Fixed version stamping process in the PIDE.
- Changed default Demos location on PocketPC from \My Documents\ to installation folder Demos\.
- Added many defines to Winsock.ppl library.
- Fixed Addr() function to support non-variable values.
- PIDE, fixed procedure list not to display forward proc/func's.
- Fixed UIDemo.ppl demo to shutdown the UI library to free memory.
- Fixed SetSpriteCollideRect() not to be reset when used before some sprite's functions.
- If no return value in WinMain, default to true if it has a mainform else false.
- Fixed memory leak in matrix assignment.
- Form code generation displays some comments on .ppl file not to modify it.
- Fixed bug in PauseSpriteTimer() function.
- Changed PIDE form editor styles and events listbox background from silver to white.
- Fixed forms to receive double click mouse/stylus messages.

10.06.2006 1.04

- Fixed DeleteFileFromPackage() function to rebuild table of content of package file properly.
- PIDE: Watch window, auto-refresh option is now set as default.
- Fixed Readme.txt link on Start Menu.
- PIDE: New option Ask to save files on run/compile.
- PIDE: Fix MSDN Help when no files are open at all.
- PIDE: Fix arrow keys moving groupbox with all child objects.
- PIDE: Fixed Events not showing up properly.
- PIDE: Removed Font Color in font selection dialog. Not supported.
- New WM2003.ppl and WM2005.ppl programs to enable Windows Mobile 2003 / 2005 runtime support.
- PIDE: Fixed Help wne no files are open at all.
- PIDE: Fixed MakeEXE when target is PocketPC.
- PIDE: Optimized PPL runtime verification. It's now very fast.
- PIDE: Fixed right-click in code editor.
- Fixed offset sprites display speed back to normal speed.
- PIDE: Can open files passed as parameters now.
- PIDE: Fixed menu editor event code creation from Proc to Func.
- Fixed tons of internal functions to use integer values and not address parameters.
- Enhanced Particles.ppl demo. It uses a new star image at random times.
- Fixed Copy() function to add one list item if destination list is empty.
- Fixed DIV operator to return integer part of result.
- Fixed LPad() and RPad() functions to work with strings for filling character.
- New G_Draw() function to draw the screen.
- New G_DrawFPS() function to only draw the FPS counters on screen.
- New G_UpdateFPS() function to upate FPS counters.
- Attemtped a fix for the G_LoadFont() function fuschia border issue.
- Fixed ListToStruct() bug.
- VFB, controls in groupbox now moves relative to groupbox.

09.29.2006 1.03

- PIDE, fixed EXE creation.
- PIDE, fixed GroupBox z-ordering.
- PIDE, fixed to support different Windows regional settings.
- PIDE, fixed Profiler and Memory Analyzer not displaying reports some times.
- PIDE, fixed F3 key.
- PIDE, Main, new "Use compressed runtimes" option while creating EXE's.
- Updated ui.ppl with more functions.
- Updated to latest version of Hekkus Sound Library.
- VFB, fixed bug dealing with setting a handler in ppl generation
- VFB, fixed a bug in selecting NewForm vs NewFormEx in PPL generation
- VFB, fixed up/down control direction on VFB global options (introduced with SWAPI)
- VFB, fixed up/down control direction on VFB Form options
- VFB, fixed up/down control direction on VFB Editor options
- VFB, fixed up/down control direction on the control sizing window
- VFB, fixed font size on the PPC display after selecting a font for buttons, checkbox and radio buttons.
- VFB, fixed font size on the PPC display in the preview of the font selection dialog
- VFB, fixed default page properties if not in the .FRM file (reading older beta format).
- Main, added support for compressed RTLs
- Editor, fixed up/down control direction on the Editor Options page

09.27.2006 1.02

-Updated Windows.ppl with more declares and defines.
- Main.ppl project updated.
- When run/compile, default destination folder is same folder as saved file.
- Fixed Tag "Web" unknown error message in the PIDE for different language OS.
- Save as, if can't save, bug fixed.
- New Form and Control functions in SWAPI.PPL.
- Default folder locations has been corrected on first time run or upgrade.
- WS_FORMDEFAULT is not default on form creation now.
- Fixed Groupbox in PIDE. Can only add controls to it if it's selected.
- Control_SetFont() added to SWAPI.PPL.
- Fixed NewFormEx to assign correct height to form.
- Fixed Setup to run PIDE at end.
- Fixed GetWinDir and GetSysDir in Windows.ppl to return \\Windows\\ on PocketPC.
- Fixed Profiler not starting up.
- Fixed Memory Analyzer bug.
- Fixed compiler hang-up bug.
- New Ctrl+F1 in PIDE visual form builder to go to control info. on MSDN directly.
- PIDE, double-click on control with code will just show control code.
- Fixed PIDE not to load the functions list from the PocketPC but only from the PC.
- F1 in PIDE visual form editor brings up form editor help section.
- Fixed compiler variable declaration when forward func or forward proc is used.
- F1 in Game Level Editor brings up the game level editor help section.
- Fixed GameAPI.txt users menu item code.
- Fixed SpritesAt() and SpritesAtRect() to return list of integer pointer values.
- Editor: Fixed Editor options page
- VFB: Fixed VFB editor options page
- VFB: Fixed VFB control property page
- VFB: Fixed a bug in the VFB Font selection for a control. The Font Selection box would not allow you to cancel if the input was left defaulted.
- Main: Added the Post Process ability to the MakeExe.
- Main: Added PostProcess checkbox. If disableed then gray the other post process controls.
- Main: Added the Wait checkbox If checked the calling Make process is forced to wait until the the post process has finished.
- VFB: Added the Edit control for entering the post process command.
- VFB: Added static to describe the text replacements. %s is replaced by the source file name and %e is replaced by the name of the built EXE file.
- VFB: Removed the PostProcess module and all experimental code and removed conditional code that supported it.
- VFB: Added WS_FormDefault and WS_FormCenter for the form
- VFB: Forced new forms to use SEH (Simplified Event Handling)
- VFB: Updated Load and Save to be compatible with the use of Group IDs
- VFB: WS_FORMDEFAULT and WS_FORMCENTER not default anymore.
- PIDE: Redid the whole Find / Replace internal coding. It now works better than before and works on selected text as well.
- PIDE: Extended Event Code is now fixed when loading a form.
- VFB: Changed Control Properties Dialog to add a Group Box ID edit control to the right of the ID of the original ID dialog box.
- VFB: Added setup of the new GroupBox ID edit control and save of the values in the edit control.
- VFB: Added Extended Event Code (EEC) option - New forms default to ON.
- VFB: Grayed EEC option if SEH is unchecked
- VFB: Pushed the Form options to a sub menu like on the PIDE
- VFB: Fixed some SEH declared as proc to func.
- VFB: Added HandleEventParms to SEH functions when EEC is checked.
- VFB: Change to not allow the form control to be deleted.
- VFB: Added code to check if a GroupBox is selected and put GroupBox # to the controls group ID this puts the new control inside the group box.
- VFB: Added code so that when deleting a groupbox, you get a confirmation dialog asking if you want to delete all of the controls associated with that groupbox. If you don't delete them, all of their groupbox IDs are reset to 0;
- VFB: Updated all projects (Main, Editor & VFB) to use the new groupbox changes.
- PIDE: When in standard mode, Game Level Editor use Standard version properties.
- Fixed G_SPEED() function to work properly.
- Added G_UpdateRect() function to only update a portion of the screen.
- Editor: Update users menu files to reflect PIDE.
- Object-Oriented, added polymorphism support.
- Object-Oriented, can now retype objects to different class on the fly to call a proc or func.
- PIDE: In the VFB fixed arrow keys.
- Editor: Fixed users menus loading.
- Fixed debugger trace of variables when used with CR in strings.
- PIDE: On Compile, go to first error line automatically.
- UI.ppl, fixed ListBox when no items to draw.
- Fix PIDE register PPL runtimes behavior.
- Added version information to .ppc files. Checks version of runtime and .ppc on loading.
- Fix LoadSprite() to use original PF bitmap loader if new one doesn't work on PocketPC.
- PIDE, VFB, added a new hint in the properties editor.
- Fixed internal blit to support multiple sprite options mixed together.
- Create .exe's can be done from both platforms for both platforms now.
- PIDE: Fixed form generator to count lines properly in init section.
- PIDE: If GroupBox is not under a child control, then show an error.

09.15.2006 1.01

- Fixed installer to produce shortcuts to PIDE, PPL and Help file.
- Changed installer default folder location for PPL runtimes on the PC.
- Fixed VFB to work with Lite version of PPL.
- Fixed default install folders in PIDE.
- Fixed PtInRect() function to be available in Lite version.
- Fixed PocketPC installer to install all Menus\ folder items properly.
- Fixed Run(), Compile() function to output an error message if file doesn't exist.
- New Register Runtimes option in the PIDE to register both; PC and PocketPC versions of PPL.
- Fixed first time run on the PIDE to give proper folders.
- Added fonts.zip file to installer.
- Demos are in PPL folder.
- PPL\PPL folder renamed to PPL\Runtime
- When first running the PIDE, the default folders are now correct, if you've installed to default locations.
- Fixed PIDE to stamp PPL.EXE's properly now. Pro versions won't show as Standard.
- If Pro or Standard is used, the registration dialogs won't be showing.
- When registering the Lite version dialog won't show when PIDE closes.
- Procedure list form auto-refreshes on activation.
- New Trial key available on ArianeSoft's web site.
- Fixed conditional compiler directive #ELSEIF.

09.14.06 1.0

- Original release of PPL.