So, two quick version updates have now been made within a relatively short time, and we are now at Version 8.2. And as you know I didn't make a news announcement here for V8.1, so in this post I'll give an overview of both V8.1 and V8.2.
Version 8.1 - Bug Fix Update
V8.1 was released mid-January, and it was a 100% bug fix update, correcting 11 problems of various magnitudes. 3 of them were serious bugs, the others were smaller; I'll detail only those 3 worst here, you can read the Version History to check out the rest.
Perhaps the most serious problem that was corrected was the strange "frame loss/skip" issue that was caused by my experiments in V8.0 with a new "Flip"-command method (for those who don't know, "Flip" is the BlitzPlus command name that draws stuff into the screen)...I could write a long technical explanation and speculations here, but to put it shortly: What seemed to work OK on my own computer (a normal desktop PC), caused a visible "frame skip" issue on my friend's computer (a normal laptop PC). The graphics constantly sort of "jumped" forwards, as if a few frames would have been randomly skipped. I don't know what caused it, but it was clearly related to the new method that I tried with the "Flip" command; after I returned to the old method, everything worked fine again. So, V8.1 and all versions that come after it use the good old Flip-method again.
The second bad bug that was fixed was the "Flashing Empty Block" problem...again the reason behind it is complex to explain, but in a nutshell: the program couldn't handle large amounts of transformations during the same frame (1 frame=1/50 seconds). If it had too much stuff to process, some objects temporarily turned into "Empty blocks".
The third major bug that was fixed was related to the "Margin Scroll" feature:
In scrolling levels, Margin scroll caused very small Object/Tile misplacements if next screen was "created" during a "margin scroll frame". The misplacement amount was equal to scroll speed, usually just 1 or 2 pixels...This was a bad bug, because it basically made margin scroll useless, don't know how I have missed this one until now.
Version 8.2 - Let's Add New Stuff: Small Tweaks and Ugly Hacks Part 82
And then we arrive to Version 8.2, which is the actual latest release. And unlike V8.1, which was all about the bugs, the V8.2 is almost exclusively dedicated to new features.
Firstly, there are 3 new "Advanced Player Options":
1. "DISABLE TRANSFORM IF PLAYER OBJ ID IS X"
This allows you to disable the "Action Transform Button" when Player has a certain object form.
2. "PLAYER RESURRECTION START DIRECTION"
This allows you to define the starting direction that the Player Object gets when it is created into the playfield. (Previously you couldn't do this; the Player always faced North)
3. "LIFETIME TR FORCED NEW DIRECTION"
This forces a Player Direction change when a Lifetime Transform happens. (Previously the old direction was always automatically inherited, but you can still leave this to "0" to use the old method)
And then, we have some "hacks" in the Script department:
I changed the script "FIXED MOVE" so that it's Speed can be set to "-2". Doing this causes the text "TELEPORT TO DESTINATION" to appear as the speed value. The effect that this causes, is that the object will Teleport the X/Y pixel amounts that you gave to it, instead of travelling them. And what This means, is that you can use this trick to Teleport into an OFFSET from the object's current XY location, which can be a handy feature sometimes. (Note: we of course already have that separate "Teleport" script, but it allows only "Hard" coordinates)
The script "GOTO PL XY" now has special XY OFFSET controls. When you select this script, You'll see these special controls appear...These allow you to set the XY destination into any offset from the Players current XY location. Very useful for "Player allies" and the like...(Think about the "shield" in R-Type...you send it away, and then it returns to a certain Player XY offset spot)
Both of these "hacks" work, but it's not the prettiest way to do it...At some point I should re-design the whole Script Editor, because it's a mess, both in the program itself and in the code...but I don't know when this will happen. :)
And also I added a new Object "Shooting Method" that is called: "SHOTS DISABLED".
This "Shots Disabled" option was added because a special case was encountered during one game project; we have a Player character that can both swing a sword and shoot projectiles...the sword is a normal "Shot" and the projectiles are "Sub Weapons"...but the character should not be able to do these things at the same time: no shooting during a sword swing, and no sword swings during the shoot animation...
The problem was that the "Player Sub Weapon" could be activated at any time, even if the Object itself had no "shots" and there was no way to prevent this...and so this "Shots Disabled" option was added for all Objects; this new flag is able to disable all "shots", including Player "Sub Weapon Fire".
In addition to all those things mentioned above there are also some other small changes, such as fine tuning the "autofire"-"normal shots" controls logic, and some small visual improvements in the Map Editor. But I won't ramble about them, this post is getting so long already...you can discover them yourselves. :)