From VbGORE Visual Basic Online RPG Engine
All downloads contain the same files, just using different compression methods.
*.EXE - Self-installing file (12.2 MB)
*.ZIP - Compressed with WinZip (12.8 MB)
*.RAR - Compressed with WinRAR (10.4 MB)
*.7z - Compressed with 7Zip (11.0 MB)
Released on May 9, 2007
This version contains a ton of fixes and cleaning up getting it ready for v1.0, and will probably be the last release before v1.0. Quite a lot of fix changes, so check out the change log. ;)
Fix - All the code: Spent a few days using different analysis programs like Code Fixer, Project Analyzer, VB Watch, and VB Project Cleaner to help me find mostly dead variables left behind from the year+ of work. Surprisingly, there was tons of dead variables, over hundreds, anywhere from local to public scope and even in some heavily used UDTs! I spent most of the time in the Server and Client, cleaning those up completely, but also cleaned up the rest of the projects a bit. Along with the dead variable removing, there was dead code removing, minor optimizations, etc. The code should now hopefully be a wee bit faster, along with a lot less dead code to obfuscate vbGORE.
Add - Cropping algorithm (again): Added back in the cropping algorithm after fixing it up a bit. Hopefully the problems aren't visible like last time. Theres some problems with it, though, but it won't crop down to the game screen but rather 32 pixels in each direction away from the game screen, giving some "buffer room" for the visual artifacts.
Change - Powers of 2 check optimized: Changed the powers of 2 check to use a look-up table instead of on-the-fly calculations to greatly increase the speed of the checks.
Add - Trade help message: Added a message when the user types /trade without any parameters on how to trade.
Fix - Lightning ruining bright mode: Fixed the lightning to not ruin the bright mode by setting the tiles back to normal after flashing.
Fix - Placing graphics in light mode: Fixed graphics to show correctly when they were placed on the map in bright mode to also display in light mode.
Add - Delay to effects: Added the ability to define the delay for effects (in frames) when creating the effects. To show it off, I added it to the spike field, making it look much prettier.
Add - Grh animation delay support: Added support for graphic animation delays by setting a negative framecounter value.
Add - Movement and zooming keys: Added movement and zooming key definitions - forgot to implement the usage for them before.
Add - New connect screen GUI: Added the beautiful new Connect and New User screen created by Zoso.
Change - Client timer: Changed the client timer back to timeGetTime after realizing that the other timer had about a 15-millisecond accuracy. Although this isn't bad for the server because it only has a 10 millisecond accuracy at max for internal-only calculations because of the game loop time, along with packets will often be delayed by a few hundred milliseconds. The most noticeable problem this was causing on the client was the FPS timer was way off the target FPS.
Add - Action on return: Clicking return on the connect form will log you into the game. On the new form, it will create the character.
Add - Transparent controls on login forms: Added transparent controls on the login forms using some subclassing code to catch the hDC of the textboxes and use bitblt to draw the background behind the textbox onto the form so the screen looks much prettier. Replaced the tick box with an image that handles just the same so it, too, supports transparencies.
Fix - Blood / damage / projectile / effect / obj erasing: Fixed the blood and damage erasing code to work correctly after clearing the highest index.
Fix - Compression memory leak: Fixed a little memory leak problem in the compressions algorithm when calling Compression_Compress or Compression_DeCompress. The temporary CompressArray() wasn't being cleared and left in a private scope.
Fix - GrhDatMaker power of 2 checker: Fixed the power of 2 checker to ignore the casing on the ".png" suffix of the files. Also made it only check files which hold numeric file names (minus the suffix), so that way files like "123.png" will be checked while "1 23.png" or "abc.png" will not.
Add - More detailed "power of 2" error: Added more detail to the "power of 2" error on the GrhDatMaker by stating exactly what power of 2 means, and listed a bunch of numbers that the texture's size should be.
Add - Texture unloading delay to map editor: Added the code fo the texture unloading check delay to the map editor, which helps reduce the CPU usage a bit, especially if you have a lot of textures, by checking the textures if they need to be unloaded every 5 seconds instead of every frame.
Fix - Texture / sound unloading: Fixed a little bug in the texture and sound unloading timer that was causing the sounds and textures to see if they needed to be unloaded every frame instead of every 5 seconds.
Add - Dragging items out of inventory: Added the ability to drag items out of the inventory to throw them on the ground.
Fix - Map editor tile info layer color: Fixed the layer color on the map editor's tile info form to not be so close to the background.
Add - Two new hot-keys: Added the quick-reply and quick-target to the hot-keys list, two functions which I completely forgot existed.
Fix - Inventory hot-key: Put the inventory hot-key back as Ctrl + W instead of Ctrl + E.
Change - Smart hot-keys: Hot-keys will now respond differently according to the windows that are open. Control and Alt combo keys are ignored since they don't make input when held, anyways. If a key is pressed when EnterText is set to true, if the write message window is open and has focus, or if a numeric key is pressed when the amount window or NPC chat window are open and has focus then the key command will be ignored.
Fix - Quick-reply text showing: Fixed the text showing correctly on the quick-reply for the whispering.
Fix - Key cache clear timer: Fixed the key cache clear to work correctly by fixing a small typo in the time calculation. Also lowered the time from 500 milliseconds to 200 milliseconds.
Change - Input_Keys_ClearQueue loop size: Changed the Input_Keys_ClearQueue loop to go from 1 to 145 instead of 0 to 255 since I don't know of any keys outside of the 1-145 range and doubt they'd even be used by vbGORE.
Remove - Texture cropping: Unfortunately, had to remove the texture cropping because for some reason it was just refusing to work correctly no matter what I did to it. Hopefully I'll be able to add it back in some day since it was a nice little optimization.
Fix - Targeting crash: Fixed (hopefully) a little bug that could cause the targeting to crash.