Creation/Dev/Releases/Client/5.006: Difference between revisions

From Graal Bible
Line 12: Line 12:


===Graphics===
===Graphics===
* Video capture:
** press Alt+6 for recording videos, configure it in the options
** the video is saved in the Graal folder under videos/ (*.avi format)
** it is currently saving uncompressed and without sound
* Easy skinning of GUI controls:
** set GuiControl.style to "mytheme.wba" or "mytheme.zip" for skinning controls
** it will replace the graphics and colors for most controls, except the font size/style
** use the new attribute "clientrelative" for GuiWindowCtrl for making them compatible with different styles without needing to reposition the sub controls
** known problems:
*** not all styles look perfectly yet
*** when switching between styles that use the same name for graphics then it might still show the graphics from the old style; restart the game to fix that
*** some controls still use the font type and size defined in the regular GUI profiles (control.profile)
** there are new GUI controls for using taskbar skins:
*** GuiTaskBar - displays a bar with space for a start button on the left side, 'task'-buttons in the middle, and a tray or time display on the right side; if the control is not using any 'style' then it will look like a normal GuiControl
*** GuiStartMenuCtrl - similar to a GuiContextMenuCtrl, but displays a bigger menu like the Windows start menu
*** GuiButtonCtrl.stylesection - buttons can be skinned, by changing 'stylesection' you can specify what look the button should use, e.g. "Taskbar.StartButton", "Taskbar.ButtonHorz"
* players and npcs can be made transparent - you can now use the same attributes like for showimgs/findimgs for setting red,green,blue,alpha and mode
* fixed a bug with reading pngs that had a bad palette size
* added support for 1-bit pngs
* when an image is downloaded from the web and doesn't have a known file extension then the engine is trying to guess the file type by reading the content and displaying it correctly in most cases
* when a web image is not existing then it is printing an error in F2 now and is not saving the data returned by the webserver anymore
* Windows version graphics:
** printing an error in the F2 window when the graphics card is out of video RAM (some images will not appear then)
** trying to free all possible resources when the graphics card is out of video RAM to reduce that error
** when loading images the engine is cutting out all fully transparent parts to minimize the use of video memory
** fixed some problems with icons and classic bodies not refreshing or not displaying
* Linux/Mac version graphics:
** optimized the usage of graphics - it is using directly 8-bit palettized images with OpenGL and for tile drawing (before: always converting to 24 bit or 32 bit)
** smoother drawing of stretched images (like in windows version)
** improved font system which is more compatible, better looking and taking less ressources
* Text drawing: right-aligned italic text is shifted 2 pixels to the left to prevent clipping problems
* Improved support for bmp:
** fixed a bug in the bmp reader so that bmps with odd width or height are correctly displayed
** support for 32 bit bmps
** not crashing on unsupported formats
* particles support text shadow (emitter.particle.textshadow, shadowcolor, shadowoffset)
* Linux/Mac: the scripted effects can be turned off directly in the options now (that only works when servers support those options)


===Sounds===
===Sounds===

Revision as of 10:05, 15 July 2007

Release date

July 13th 2007 for Mac, Linux and Windows

New Features

General

Translation System

GUI

Graphics

  • Video capture:
    • press Alt+6 for recording videos, configure it in the options
    • the video is saved in the Graal folder under videos/ (*.avi format)
    • it is currently saving uncompressed and without sound
  • Easy skinning of GUI controls:
    • set GuiControl.style to "mytheme.wba" or "mytheme.zip" for skinning controls
    • it will replace the graphics and colors for most controls, except the font size/style
    • use the new attribute "clientrelative" for GuiWindowCtrl for making them compatible with different styles without needing to reposition the sub controls
    • known problems:
      • not all styles look perfectly yet
      • when switching between styles that use the same name for graphics then it might still show the graphics from the old style; restart the game to fix that
      • some controls still use the font type and size defined in the regular GUI profiles (control.profile)
    • there are new GUI controls for using taskbar skins:
      • GuiTaskBar - displays a bar with space for a start button on the left side, 'task'-buttons in the middle, and a tray or time display on the right side; if the control is not using any 'style' then it will look like a normal GuiControl
      • GuiStartMenuCtrl - similar to a GuiContextMenuCtrl, but displays a bigger menu like the Windows start menu
      • GuiButtonCtrl.stylesection - buttons can be skinned, by changing 'stylesection' you can specify what look the button should use, e.g. "Taskbar.StartButton", "Taskbar.ButtonHorz"
  • players and npcs can be made transparent - you can now use the same attributes like for showimgs/findimgs for setting red,green,blue,alpha and mode
  • fixed a bug with reading pngs that had a bad palette size
  • added support for 1-bit pngs
  • when an image is downloaded from the web and doesn't have a known file extension then the engine is trying to guess the file type by reading the content and displaying it correctly in most cases
  • when a web image is not existing then it is printing an error in F2 now and is not saving the data returned by the webserver anymore
  • Windows version graphics:
    • printing an error in the F2 window when the graphics card is out of video RAM (some images will not appear then)
    • trying to free all possible resources when the graphics card is out of video RAM to reduce that error
    • when loading images the engine is cutting out all fully transparent parts to minimize the use of video memory
    • fixed some problems with icons and classic bodies not refreshing or not displaying
  • Linux/Mac version graphics:
    • optimized the usage of graphics - it is using directly 8-bit palettized images with OpenGL and for tile drawing (before: always converting to 24 bit or 32 bit)
    • smoother drawing of stretched images (like in windows version)
    • improved font system which is more compatible, better looking and taking less ressources
  • Text drawing: right-aligned italic text is shifted 2 pixels to the left to prevent clipping problems
  • Improved support for bmp:
    • fixed a bug in the bmp reader so that bmps with odd width or height are correctly displayed
    • support for 32 bit bmps
    • not crashing on unsupported formats
  • particles support text shadow (emitter.particle.textshadow, shadowcolor, shadowoffset)
  • Linux/Mac: the scripted effects can be turned off directly in the options now (that only works when servers support those options)

Sounds

  • playlooped() is updating the volume each time it is called depending on the distance to the player
  • music files are now played non-looped by default when using the play() command, use playlooped() if you want to play a looped music or stream
  • when the volume is zero then wavs and mp3s are not downloaded anymore
  • downloaded wav files are automatically played (with the right volume and looping if requested)
  • when a music file (mp3, midi etc.) is played but is not existing yet then it is automatically played once it is downloaded
  • on Windows XP/Vista 64 bit it is by default not trying to use sounds because it freezes Graal, you can turn off this behaviour by setting "tryloadsoundson64bit=true" in the Graal options file - open game_config.txt with Wordpad

Scripting

Bug Fixes

  • General bugs
    • fixed a problem that crashed the client on serverswitch when still having PMs on the player list from players that already logged out
    • when downloading files with the scripted RC into the Graal folder then it is using the correct path and is not moving the file to the level/images/download folder anymore
    • fixed a problem with defaultmovement where the player was not moved on the map when the player was moved by script
    • on vista it doesn't display a runtime error when you close the program anymore
  • Script engine bugs
    • fixed the script garbage collector (deleting unused/unlinked TStaticVar)
    • showimgs/findimgs that are attached to the player via attachtoowner=true are correctly synchronized to the player position (and don't lag behind)
    • hideimg() is not crashing the engine anymore if it contains gani scripts
    • the destroy() function for GuiControls and TStaticVar are not causing crashes anymore, but the objects are disappearing from scripting so you can correctly recreate them
    • fixed a problem with the random function - int(random(0,upperlimit)) was sometimes returning 'upperlimit' due to rounding if a floating point value is very close to an integer value - the random() function is now preventing that the result is identical to the upper limit
    • fixed a script problem where "-" was seen as number (-1)
    • fixed a crash when returning a temp. array from a suspended function (sleep/waitfor in a public function)
    • fixed the modulus operator 'a % b' for the case that a is negative and b is high number (>10000), previously it was giving a negative number which should not happen (-3 % 100000 should give 99997)