Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
HEModdingWiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Resources/ObjectWorld / GEdit
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Infobox Resource|type=[[Resources#Set Objects|Set Objects]]|extension=.gedit|games=* [[Sonic Forces|Sonic Forces]] * [[Sonic Origins|Sonic Origins]] * [[Sonic Frontiers|Sonic Frontiers]] * [[Shadow Generations|Shadow Generations]]|tools=* [[Tools/Blendhog Level Creator|Blendhog Level Creator]] * [[Tools/DevTools|DevTools]] * [[Tools/HedgeSet|HedgeSet]] * [[Tools/Restoration Issue Pocketknife|Restoration Issue Pocketknife]]|status=Done|container=BINA|name=Object World}} '''Object World''' ''(more well known as GEdit)'' is the set object data format for Hedgehog Engine 2 games. Set object data is a list of objects that should spawn in the stage, such as Springs, Rings, Goal Rings and more. == File Format == It's made up of a list of objects using '''[[Resources/Reflection|Reflection]]''' for their parameters. Each object containing: - '''GUID''', unique for every object as its their identifier - '''Parent GUID''', the object its parented to, referenced by a GUID - '''Object Name''', the name of the object - '''Type Name''', name of the object type - '''Position''', the position of the object - '''Rotation''', the rotation of the object - '''Components''', a list of Game Object Components ''(more known as tags),'' they are used to spawn GOComponents for the Game Object such as GOCActivator (RangeSpawning), to determine the Game Objects spawning distance - '''Parameters''', these are just the parameters of the object, every Object Type has a set of their own, e.g. Springs have a parameter for the velocity for when the player touches them. These are using [[Resources/Reflection|Reflection]]. The reflection resources are included in their entirety (minus BinaryFile container), but the parameter pointer points directly to the data. I.e., in games that use Reflection v2, which contains a small header, the headers are included in the gedit resource, but the pointers point to the internal data object. == Technical info == Structs taken from [https://www.github.com/angryzor/universal-csl universal-csl]<syntaxhighlight lang="c++"> struct ComponentData { unsigned long long unk1; const char* type; unsigned long long size; void* data; // reflection }; </syntaxhighlight><syntaxhighlight lang="c++">struct ObjectTransformData { Position position; Position rotation; }; struct ObjectId { // Forces unsigned int id{}; // Frontiers and onward uint64_t objectId{}; uint64_t groupId{}; }; struct ObjectData { enum class Flag : unsigned int { DEALLOCATE, DEALLOCATE_SPAWNER_DATA, }; Bitset<Flag> flags; const char* gameObjectClass; VariableString name; // const char* in Forces ObjectId id; ObjectId parentID; ObjectTransformData transform; ObjectTransformData localTransform; Array<ComponentData*> componentData; void* spawnerData; // reflection };</syntaxhighlight><syntaxhighlight lang="c++"> struct ObjectWorldData { unsigned int unk1; unsigned int unk2; unsigned char flags; Array<ObjectData*> objects; }; </syntaxhighlight>
Summary:
Please note that all contributions to HEModdingWiki are considered to be released under the Creative Commons Attribution-ShareAlike (see
HEModdingWiki:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Infobox
(
edit
)
Template:Infobox Resource
(
edit
)
Template:Template other
(
edit
)
Module:Infobox
(
edit
)
Module:Infobox/styles.css
(
edit
)