Industrial Park (level editor)

Introduction
Industrial Park is a tool made by community member igorseabra4 in C# using SharpDX. It is an editor capable of opening a number of HIP/HOP files and display the level, with models and textures for level and objects, as well as edit some of the asset types.

The program is still under development, so features are still planned. This is the game/platform compatibility table:

This tool is based off from, and shares a lot of its source code with another one of the creator's tools: Heroes Power Plant, a tool to edit levels in Sonic Heroes. Being also based on the RenderWare engine, both games share their model format. It also gave Industrial Park the convention of being named after a level in the game.



View
These are the commands to move the view:


 * W, A, S, D: move view forward, left, backward, right
 * Shift + (W, S): move view up, down
 * Ctrl + (W, A, S, D): rotate view up, left, down, right
 * Q, E: decrease interval, increase interval (view move speed)
 * 1, 3: decrease rotation interval, increase rotation interval (view rotation speed)
 * R: reset view
 * Z: toggle mouse mode
 * F1: displays the View Config box
 * Mouse wheel: move view forward/backward
 * Right click and drag: move view up, left, down, right
 * Middle click and drag: rotate view

Mouse controls:


 * Mouse wheel to move forward/backward
 * Right click and drag to pan
 * Middle click and drag to rotate view

Mouse mode: similar to a first person camera. The view rotates automatically as you move the mouse. Use the keyboard to move around.

In the Options tab, you can choose a few settings.


 * View Config (F1): displays the View Config box.
 * Add Texture Folder: explained below.
 * Clear Textures: clear textures from program.
 * Use Legacy Asset ID Format: disables using asset names in place of IDs
 * No culling (C): toggles backface culling
 * Wireframe (F): toggles wireframe mode
 * Colors:
 * Background: allows you to choose a new background color for the view.
 * Widget: allows you to choose a new color for unselected widgets.
 * Selection: allows you to choose a new color for selected objects.
 * About: display About box.

In the Display tab, you can choose which asset types are currently being displayed.

View Config
The view config allows you to view and set Industrial Park's 3D view's current position, rotation, movement speed (separate for position and rotation), maximum draw distance and field of view.



Archive Editor
The archive editor is the main way to edit HIP/HOP archives in Industrial Park. You can open any amount of Archive Editors you want to, and each can have one HIP and/or HOP file open. If you wish to edit multiple HIP/HOP files for a level, for example, you can open two Archive Editors each with one of the files. Also, opening a third one with boot.HIP will allow you to view the objects whose models are contained there (such as spatula, underwear and shiny objects).



Closing the Archive Editor through the X button will not close it, only hide it.
 * File Menu:
 * Open: choose a HIP/HOP file to open in this Archive Editor.
 * Save: saves the currently open file and overwrites it.
 * Save As: allows you to pick a new destination to save the file.
 * Name Display Mode: Choose how asset names will be displayed.
 * Export TXD Archive: Allows you to export all of the archive's RWTX assets into a single TXD file.
 * Import TXD Archive: Allows you to choose a TXD file to import; rather than importing the entire archive, the tool will batch create one asset from each texture of the archive and import it as a RWTX asset.
 * Close: closes this Archive Editor and unloads the HIP/HOP file. This doesn't save the file.


 * Layer: assets in HIP/HOP archives are organized into layers. Each layer has a list of assets and if you're adding new assets you should add them to the appropriate layer.
 * Layer Box: this will allow you to pick a layer and view its assets.
 * Layer Type: this will allow you to see and edit a layer's type.
 * Add: this will add a new layer to the archive.
 * Remove: this will delete the selected layer from the archive along with all its assets.


 * Assets: each asset is an individual in-game object with a type and function.
 * Show by type: this will allow you to see in the list only assets of a specific type, or all of them.
 * Find Asset: type an asset ID or name here. If an asset with this ID or name is present, it'll be selected.
 * Add: shows the new asset dialog, which allows you to import raw data for a new asset.
 * Duplicate: duplicates the selected asset. The new asset is a copy with a new name and asset ID.
 * Copy: puts the selected asset on clipboard. You can paste it to a text file and save it, or paste it in a different Archive Editor, for example.
 * Paste: pastes the asset from clipboard. You must have previously copied an asset. If the asset already exists, it'll be given a new name and asset ID.
 * Remove: deletes the selected asset from the archive.


 * View: will move the view to the selected asset's position. This button only works for assets with a position in the world. For most assets, it will show the asset from a short distance, but for the CAM asset, it will place the view in the exact position it assumes ingame for that camera.
 * Export Raw: allows you to export an asset's raw data to a file.
 * Edit Header: allows you to edit an existing asset's AHDR, which includes the ID, name and other information, and also replace the raw data with a new file.
 * Edit Data: opens the selected asset in the internal editor. This allows you to edit some of the asset's data. This editor is only available for some of the assets; for the others, you must export the raw data and edit it externally in a hex editor.

Notes:
 * You can click on an asset in the view to select it in the Archive Editor.
 * For some assets, a transform gizmo will be displayed when it's selected. You can click and drag these arrows to move the object around the world.
 * Industrial Park's gizmos have a glitch in which, if moveable assets are selected in multiple Archive Editors, the gizmos will move all of them at the same time.

Asset Dialog
The Asset Dialog will be shown when adding or editing an asset.



It allows you to edit the information of the asset's AHDR entry, but not the asset's internal data; this can be imported separately as raw data. The Asset ID of the asset will be calculated automatically from the name you type using the BDKR hash algorithm, which is the same one used originally by the developers, but you can type your own one if you wish to (don't do this for RWTX assets!).

Asset Types
The following asset types are supported by the internal editor:


 * The internal editor supports conversion between asset IDs and asset names. This means that, in any place you're supposed to type an asset ID, you can also type the name and the ID will be generated automatically from it; asset IDs will also be automatically replaced by names whenever possible. Type hexadecimal numbers starting with 0x to force use of an asset ID and not a name. This function can be turned off completely in the options.
 * All assets not included in this list must be exported as a raw binary file and edited externally. Events (but not other fields) can be edited for the following asset types: CCRV, CSNM, DSCO, DTRK, DUPC, EGEN, GRSM, GUST, HANG, LITE, LOBM, NGMS, NPC, PARE, PARP, PARS, PEND, PGRS, PRJT, RANM, SCRP, SDFX, SGRP, SLID, SPLN, SSET, SUBT, SURF, TPIK, TRWT, UIFT, UI, UIM, VOLU, ZLIN.

Displaying Textures
You may have noticed that, when you first open a level, it has no textures. Industrial Park cannot load textures directly from the RWTX assets contained in the HOP yet. To enable texture display, you must use Magic.TXD.


 * 1) In the Archive Editor in which you've opened the HOP file, click File -> Export TXD Archive. Choose a path and name to save your TXD as.
 * 2) Open your new TXD file in Magic.TXD and click Export -> Export All. Set the format to PNG and choose any folder to export all your textures to. Now close Magic.TXD.
 * 3) Now that you have all textures exported to a folder, you can use Industrial Park's Add Texture Folder button to load these textures in.

Links

 * Get Industrial Park
 * Source code on GitHub
 * Playlist of video tutorials covering various subjects, including Industrial Park
 * Zip file with all of the Textures already extracted for Battle for Bikini Bottom