This document describes which breaking changes have been made to VUEngine Studio and VUEngine Core and which actions need to be taken by the developer in order to update existing VUEngine Studio projects.
Way too many changes to list, unfortunately. Good luck, adventurer!
There have been some changes to the engine config, mainly introducing new config macros to support new wireframe features. Furthermore, several templates have been updated.
You will want to regenerate all auto-generated files once with the Code Generator: Generate Files...
command.
Source file paths referenced from several custom file files are now stored relative to the respective config file, rather than the workspace root. Affected file types:
*.entity
*.image
*.pcm
Adjust file paths if you use any of the above file types. To do so, open the files in source mode, e.g. by clicking the curly braces icon to the top left of the respective file's editor.
Example:
assets/Entity/MyEntity/MyEntity.entity:
"files": [
- "assets/Entity/MyEntity/MyEntity.png"
+ "MyEntity.png"
],
The Entity
class now has different flags to keep track of collision checks and if enabled instead of a single one.
- Removed
allowCollisions
- Added
collisionsEnabled
- Added
checkingCollisions
In this context, a few methods have been renamed.
Collider::activeCollisionChecks
->Collider::checkCollisions
Entity::allowCollisions
->Entity::collisionsEnabled
Entity::activeCollisionChecks
->Entity::checkCollisions
Note that the above also affect inheriting classes like Actor
.
If you use any of these methods or flags in your project, update accordingly.
Example:
- SomeEntity::activeCollisionChecks(this, false);
+ SomeEntity::checkCollisions(this, false);
Some methods related to the VIP's drawing and displaying operations have been renamed.
HardwareManager::enableRendering()
->HardwareManager::startDrawing()
HardwareManager::disableRendering()
->HardwareManager::stopDrawing()
HardwareManager::displayOn()
->HardwareManager::turnDisplayOn()
HardwareManager::displayOff()
->HardwareManager::turnDisplayOff()
VIPManager::enableDrawing()
->VIPManager::startDrawing()
VIPManager::disableDrawing()
->VIPManager::stopDrawing()
VIPManager::displayOn()
->VIPManager::turnDisplayOn()
VIPManager::displayOff()
->VIPManager::turnDisplayOff()
If you use any of these methods in your project, update method calls accordingly.
VirtualList::pushFront
and VirtualList::pushBack
now return a VirtualNode
instead of an int32
.
If you're working with VirtualLists and use the above method(s), you want to update your code accordingly.
- SomeActor::activeCollisionChecks(this, false);
+ SomeActor::checkCollisions(this, false);
The CameraMovementManager->lastCameraDisplacement
vector has been moved to Camera->lastDisplacement
.
If your code accesses the vector, update accordingly.
PositionedEntitySpec
has been updated to include initial rotation and scale. Also, the unused z displacement value has been removed from its position vector.
Update all other occurences of PositionedEntitySpec and PositionedEntityROMSpec accordingly, e.g. in stage specs.
Example:
PositionedEntityROMSpec ExampleStageEntitySpecs[] =
{
- {&ExampleEntitySpec, {8, 16, 4, 0}, 0, NULL, NULL, NULL, false},
+ {&ExampleEntitySpec, {8, 16, 4}, {0, 0, 0}, {1, 1, 1}, 0, NULL, NULL, NULL, false},
The CompilerConfig editor has been rewritten to include additional explanations and be more self explanatory. It now stores memorySections.dram.length
as a positive rather than a negative value. Furthermore, the output
value has been removed.
Open config/CompilerConfig
and change the value of memorySections.dram.length
from a negative to a positive value. When using the graphical editor, the file will be matched against a default config when the editor loads, which should automatically remove the output
value. Upon saving the changes, VUEngine Studio will automatically regenerate all affected files.
Example:
"memorySections": {
"dram": {
- "length": -32,
+ "length": 32,
Following methods have been moved from the Utilities class to the Math class.
- floor
- getDigitsCount
- haveEqualSign
- random
- randomSeed
- resetRandomSeed
If you use any of these methods in your project, update method calls accordingly.
Example:
- int32 flooredValue = (int32)Utilities::floor(value);
+ int32 flooredValue = (int32)Math::floor(value);