Worldmap
This page is in progress and may contain incomplete information or editor's notes. |
---|
Todo:
- What is the difference between the stage types HideGalaxy and MiniGalaxy?
All information of the world map like paths, points, galaxies and more are stored in the WorldMap0X.arc file in the ObjectData folder, with X being the world number. WorldMap08.arc is the Grand Galaxy Map.
Each world map is loaded inside a galaxy stage, which in the original game mainly contains the background. The stage files can be found in StageData/WorldMap0XGalaxy/.
General Notes
- Paths from point with ID 0 are automatically unlocked when entering the world for the first time.
- Lubba's talking sequence when first entering the first world, has a hardcoded behavior to show an arrow over the galaxy YosshiHomeGalaxy. If the Galaxy icon with this name does not exist, the game crashes (the galaxy itself does not have to exist).
- A point with a pipe attached to two paths can confuse the game if you try to pass the pipe by clicking with the pointer on a point; Starship Mario will then erroneously go out and in the pipe several times.
- Gourmet Lumas cannot eat star pieces if the required number of star pieces is less than 100; the star pieces then simply fly through him.
- The game remembers various unlock and interaction properties of PointParts objects. If you change and swap them, it can happen that with the old save file the objects are not interactable (e.g. star clusters can no longer be touched).
- The game crashes on the world map if the scenario file for HomeCenterGalaxy doesn't exist.
Structure
The WorldMap0X.arc files contain several BCSV tables, which can be found in the original game either in the root or in a folder called ActorInfo, it doesn't matter if they are in the root or in this folder. The game reads the files either way.
- PointPos: Positions and properties of the points
- PointLink: Paths/connections of the points
- Galaxy: Galaxies and their properties
- PointParts: Various objects like star clusters, pipes and world gates
- SpaceParts: Unknown/Unused. Seems to be a different kind of PointParts.
- PointStream: Unknown/Unused
PointPos
Field Name | Type | Description |
---|---|---|
Index | LONG | Point ID |
Valid | STRING_OFFSET | Should always be set to valid. Invalid makes the point invisible but still accessible through a path, however, the game crashes when you point to it with the pointer. x = invalid o = valid |
SubPoint | STRING_OFFSET | Always false (x). Marks the point as a subpoint (blue and only accessible after unlocking the path). However, this is useless and unused, because the SubPaths already sets the points as subpoints. (More about this below at PointLink) x = false o = true |
ColorChange | STRING_OFFSET | Color of the point. Pink is usually used for Gourmet Luma paths. x = yellow o = pink |
LayerNo | LONG | Unknown; Unused |
PointPosX | FLOAT | X Position |
PointPosY | FLOAT | Y Position |
PointPoxZ | FLOAT | Z Position |
Notes
- The Grand Galaxy Map does not feature the ColorChange field.
- World Map 1, 2 and 6 contain unused, unlinked points which are set as invalid. This suggests that this field may have been used by the developers to temporarily disable points for possible reuse at a later time.
PointLink
Field Name | Type | Description |
---|---|---|
PointIndexA | LONG | Point ID of the first point to link |
PointIndexB | LONG | Point ID of the second point to link |
CloseStageName | STRING_OFFSET | Internal name of the galaxy to be completed to unlock this path. This is used for paths that are only unlocked from certain galaxy paths that should not be reached from the other side. (e.g. FlowerHighlandGalaxy's path). |
CloseStageScenarioNo | LONG | The scenario number to be completed in the galaxy specified in the previous field to unlock this path. 0 = Any scenario -1 = Default for normal paths |
CloseGameFlag | STRING_OFFSET | Required Game Flag to unlock this Path. This field makes the path invisible and inaccessible until the entered game flag is fulfilled. However, this does not unlock the path, it just makes it visible and may need to be unlocked by a galaxy in front of it first. |
IsSubRoute | STRING_OFFSET | Whether the path is displayed as either blue dotted or completely invisible if it has not yet been unlocked. Invisible is often used for Gourmet Luma paths as well as some stargate paths. x = normal/dotted o = invisible |
IsColorChange | STRING_OFFSET | Color of the path. Pink is usually used for Gourmet Luma paths. x = yellow o = pink |
Galaxy
Field Name | Type | Description |
---|---|---|
StageName | STRING_OFFSET | Internal name of the galaxy (ex. RedBlueExGalaxy) |
MiniatureName | STRING_OFFSET | Model name of the mini model to display (ex. MiniRedBlueExGalaxy) |
PointPosIndex | LONG | ID of the point on which the Galaxy is located |
StageType | STRING_OFFSET | Sets various visibility settings depending on the type: Galaxy: Normal Galaxy; always visible MiniGalaxy: Hungry Luma Galaxy; always invisible until the way to it is unlocked HideGalaxy: Hidden Galaxy; always invisible until the way to it is unlocked BossGalaxyLv1: Bowser Jr. Galaxy; Adds a Bowser Jr. flag to a specific part of the mini-model. BossGalaxyLv2: Bowser Galaxy; Adds a Bowser flag to a specific part of the mini model. BossGalaxyLv3: Final Bowser Galaxy; Mini model does not rotate. This does not specify what kind of galaxy it is. |
ScaleMin | FLOAT | Normal scale of the mini model |
ScaleMax | FLOAT | Scale of the mini model when pointed to with pointer |
PosOffsetX | FLOAT | X-offset position of the mini-model from the point. |
PosOffsetY | FLOAT | Y-offset position of the mini-model from the point. |
PosOffsetZ | FLOAT | Z-offset position of the mini-model from the point. |
NamePlatePosY | FLOAT | X-offset position of the name plate from mini model. |
NamePlatePosZ | FLOAT | Z-offset position of the name plate from mini model. |
IconOffsetX | FLOAT | Icon X position in the world selection screen (Grand Galaxy Map) |
IconOffsetY | FLOAT | Icon Y position in the world selection screen (Grand Galaxy Map) |
PointParts
Field Name | Type | Description |
---|---|---|
PartsTypeName | STRING_OFFSET | Name of the object: StarPieceMine: Starbit Cluster StarCheckPoint: Star Gate TicoRouteCreator: Hungry Luma EarthenPipe: Warp Pipe WorldWarpPoint: World Portal StarRoadWarpPoint: Grand World Portal |
PointIndex | LONG | ID of the point on which the object is located |
PartsIndex | LONG | Index for Stargates. Each stargate within a world map requires a unique index. |
Param00 | LONG | Parameter 1. Different usage for each object type. |
Param01 | LONG | Parameter 2. Different usage for each object type. |
Param02 | LONG | Parameter 3. Unused. |
Parameters
PartsTypeName | Param00 | Param01 |
---|---|---|
StarCheckPoint | Required stars | |
TicoRouteCreator | Required starbits | Point ID destination |
EarthenPipe | Point ID destination | |
WorldWarpPoint | World ID destination | Point ID destination |
StarRoadWarpPoint | World ID destination | Point ID destination |
SpaceParts
Field Name | Type | Description |
---|---|---|
PartsTypeName | STRING_OFFSET | |
[4D6DBDAE] | LONG | |
[433A5DB7] | LONG | |
Param00 | LONG | |
Param01 | LONG | |
[912C1F84] | STRING_OFFSET | |
LayerNo | LONG | |
TransX | FLOAT | |
TransY | FLOAT | |
TransZ | FLOAT | |
RotateX | FLOAT | |
RotateY | FLOAT | |
RotateZ | FLOAT | |
ScaleX | FLOAT | |
ScaleY | FLOAT | |
ScaleZ | FLOAT |
PointStream
Field Name | Type | Description |
---|---|---|
StreamName | STRING_OFFSET | |
StreamIndex | LONG | |
PointNum | LONG |
Cameras
All cameras for the different views are in ObjectData/WorldMapCamera.arc/ActorInfo/CameraParam.bcam. A few tracking shots for specific sequences, such as when Mario travels to a galaxy, are controlled by the CAMN camera key animation files and can be found in ObjectData/MarioAnim.arc.
There are more specific cameras, which are partly used to link different camera-usages with the cameras from WorldMapCamera.arc and can be found in the map archives of the individual WorldMap0XGalaxy stages in BCAM format, although some camera codes appear to be completely unused.
Tools
There are two programs for editing world maps.
Whitehole
Version 1.5.1 and higher include a powerful world editor that displays the world map within the 3D view. However, the world map cannot be edited by clicking on the objects, but only by using the bar on the left side. In addition, various parameters such as mini-model positions, name plates and by marking the destination points of certain objects such as pipes can be edited very easily and quickly through the 3D display.
This editor also features the very useful QuickActions tab, which displays time-saving options depending on what type of object is currently selected:
- Add Connected Point Adds a new point to a selected point, complete with connected link.
- Insert Point Halves a selected link and inserts a new point in the center
- Load Default Template Loads a template for creating a new world
Note: If you experience any bugs in later versions, use the one from v.1.5.1. This one is known to have none of the glitches. You may only need to click on Help -> Controls to fix a bug that prevents you from selecting the various settings and values.
World Map Editor
An old tool, which like Whitehole only has a bar for editing, but has little functionality for editing. For example, links and points must be added individually. Some text information are also partially wrong.
It has no 3D view, but a 2D view of the points and paths as well as the kind of paths.
This tool can be useful for quick edits like exchanging galaxynames, since it only needs the WorldMap0X.arc file to edit.