OniUnPacker/source: Difference between revisions

From OniGalore
Jump to navigation Jump to search
(Third party components - part1)
 
(11 intermediate revisions by 4 users not shown)
Line 7: Line 7:
=== Source folder ===
=== Source folder ===


The source folder contains the following files (ordered alphabetically):
The source folder contains the following files:
{|border="1" cellspacing="0"
* \DataAccess
!File
*: Units for accessing different kinds of containers
!Description
** .\ConnectionManager.pas
|-
*: Handles Connections and keeps track of DataAccess-instances
|icon2.res
** .\DataAccess.pas
|Well, don't know myself for sure ... could be the program-icon-resource-file. But don't know if it's still used for compilation.
*: (Virtual) Base class for access to data containers
|-
** .\Access_OniArchive.pas
|OniUnPacker.bdsproj
*: Access to Oni's archives (.dat in conjunction with .raw and .sep)
|Main Delphi project file.
** .\Access_OUP_ADB.pas
|-
*: Access to OUP's databases (AbsoluteDatabase)
|OniUnPacker.cfg
|Some Delphi configuration parameters for this project. AFAIK it's not really needed to edit/compile the project, but it doesn't hurt to ship it along ;)
|-
|OniUnPacker.dpr
|Main code file. Links to the units etc. Can be used to open the project too.
|-
|OniUnPacker.res
|This one should contain the program icon that's used for compilation.
|-
|Unit1_main.pas/dfm
|Contains the main form and routines for MDI-child managing.
|-
|Unit2_functions.pas
|Collection of global functions.
|-
|Unit3_data.pas
|Global variables, constants, (record) types.
|-
|Unit4_Exporters.pas
|Functions to export (and convert) specific ONI data types.
|-
|Unit5_preview.pas/dfm
|Preview form (currently only for images (TXMP), image maps (TXMB), texture animations (TXAN) and soon UI elements (PSpc)
|-
|Unit6_imgfuncs.pas
|Class TOniImage which provides code for loading, decompressing, decoding, converting, and encoding ONI image files.
|-
|Unit7_txmpreplace.pas/dfm
|TXMP Replacer form.
|-
|Unit8_binedit.pas/dfm
|Binary ONI .dat-file editor with supporting tools like a structure viewer for ONI files and common data type decoder.
|-
|Unit9_data_structures.pas/dfm
|Loads and provides the structure definitions for Binary .dat/.raw editor.
|-
|Unit10_leveldb.pas/dfm
|ONI .dat/.raw <-> OUP level database converter.
|-
|Unit11_extractor.pas/dfm
|Extractor tool for .dat/.raw files.
|-
|Unit12_ValueEdit.pas/dfm
|Provides the value editor for Binary .dat/.raw editor.
|-
|Unit13_rawedit.pas/dfm
|Same as Unit8 but for .raw-files.
|-
|Unit14_settings.pas/dfm
|OUP Settings dialog.
|-
|Unit15_classes.pas/dfm
|ONI data access abstraction classes. Currently for ONIs .dat/.raw files and OUPs level database with Absolute DB backend.
|-
|FOLDER TFileTypeRegistration
|Provides functions to register file-extensions to OUP.
|-
|FOLDER help
|Will be used for the help file project in future.
|}


Note 1: Files which have a .dfm version besides the .pas version are units with forms (windows). Files which that are only there as a .pas are code only, sometimes global functions, some are global classes.
* \FileClasses
*: BLA - DESCRIPTION NEEDED


Note 2: File naming will be changed to a new naming scheme in the future.
* \Global
*: Globally used Units (functions, data, typedefs ...)
** .\Data.pas
*: Contains global constants, variables
** .\DatLinks.pas
*: Generates .dat-linkById-lists for each filetype
** .\DatStructureLoader.pas
*: Loads structure-definition files
** .\Exporters.pas
*: Handles exporting of .dat/.raw-content (including converters)
** .\Functions.pas
*: Common functions like en-/decoding of data
** .\Img_DDSTypes.pas
*: DDS-header-definitions used by OniImageClass
** .\OniImgClass.pas
*: Loading/saving/converting of Oni's texture-data
** .\RawList.pas
*: Generates lists of .raw-contents for files
** .\TypeDefs.pas
*: Definition of globally used types


* \Helper
*: Small helpful forms
** .\LevelDB.dfm/.pas
*: Converts OniArchives to OUP-DBs and vice versa
** .\ValueEdit.dfm/.pas
*: Input form for editing variable contents
** .\WhatLinksHere.dfm/.pas
*: Shows links to (only supported in DBs) / from a file
* \icons
*: Contains icons used in the gui
* \ImportedStuff
*: Units written by others
** .\FolderBrowser.pas
*: Select a folder as you do in any normal windows application.
** .\FTypeReg.pas
*: Set/Get registered file types
** .\OneInst.pas
*: Makes sure that only one instance of OUP can be run at a time
* \Tools
*: Contains the basic tools in OUP like Preview, BinEdit ...
** .\Template.dfm/.pas
*: Template-form used for most tools
** .\BinEdit.dfm/.pas
*: HexEditor for .dat-files with StructureViewer
** .\RawEdit.dfm/.pas
*: HexEditor for .raw-contents
** .\Extractor.dfm/.pas
*: Mass file extractor
** .\Preview.dfm/.pas
*: Preview window (only supports TXMP, TXMB, TXAN, PSpc atm)
** .\TxmpReplace.dfm/.pas
*: Replaces TXMP images by image files
* \ExtraIcos.res
*: Contains the icons used in the gui
* \Main.dfm/.pas
*: Main window of OUP
* \OniUnPacker.bdsproj
*: Delphi project file
* \OniUnPacker.dpr
*: Main unit
* \OniUnPacker.res
*: Program icon
* \Settings.dfm/.pas
*: Settings formular
Note: Files which have a .dfm version besides the .pas version are units with forms (windows). Files which that are only there as a .pas are code only, sometimes global functions, some are global classes.




=== Used third party components ===
=== Used third party components ===


*[http://www.soft-gems.net/VirtualTreeview/ Virtual TreeView]: Used in Binary editors. Really powerful tree view component. (Used v4.4.3, but any newer version should work too). License: Open source (MPL/GPL).
*[https://web.archive.org/web/20070217204248/http://www.soft-gems.net/VirtualTreeview/ Virtual TreeView]: Used in binary editors. Really powerful tree view component. (Used v4.4.3, but any newer version should work too). License: Open source (MPL/GPL).
*[http://www.componentace.com/bde_replacement_database_delphi_absolute_database.htm Absolute Database]: Used for storing level data for OUP. SQL database. You just have to give them your eMail address so they can send you an unlock key, you won't get any spam or newsletters. If you don't want to give them your normal address you can use a spam address like you can get at [http://www.spamgourmet.com spamgourmet]. License: Free for personal use.
*[https://www.componentace.com/bde_replacement_database_delphi_absolute_database.htm Absolute Database]: Used for storing level data for OUP. SQL database. You just have to give them your eMail address so they can send you an unlock key, you won't get any spam or newsletters. If you don't want to give them your normal address you can use a spam address like you can get at [https://www.spamgourmet.com/index.pl spamgourmet]. License: Free for personal use.
 
*[http://www.mirkes.de/de/delphi/vcls/hexedit.php MPHexEditor]: Hex component for binary editors. License: Freeware with source.
*[http://chrilly.net/crossedit.rar CrossEdit]: Input component with value validation. Original code from [https://web.archive.org/web/20160804060817/https://www.torry.net/vcl/edits/diffedits/crossedit.zip here]. License: Freeware with source.
*[http://chrilly.net/twrapgrid.rar WrapGrid]: Used the code from [http://web.archive.org/web/20191108032711/http://www.mindspring.com/~cityzoo/tips/wrapgrid.txt here] and enhanced it for my special purposes. Needed additions are the column colorings, cell hints and images in cells. License: Couldn't find one. Suppose open source.
*[https://jrsoftware.org/tb2k.php Toolbar2000]: Toolbar component. License: Freeware with source.
*[http://www.mitec.cz/Downloads/MDITab.zip]: MDI Tabbar component. License: Freeware with source.
*[https://imaginglib.sourceforge.io/ ImagingLib]: Image-handling library. License: MPL/LGPL.


=== Download ===
[[Category:Outdated modding tools]][[Category:Windows-only modding tools]]
You can always get the newest release at [http://chrilly.net/oup/ http://chrilly.net/oup/]. Each archive contains the binary and the complete [[OBD:OUP_source|source code]] (Delphi 2006, should be working with Delphi 2005 too).

Latest revision as of 18:50, 7 February 2021

OBD.png

OniUnPacker source code information

Source folder

The source folder contains the following files:

  • \DataAccess
    Units for accessing different kinds of containers
    • .\ConnectionManager.pas
    Handles Connections and keeps track of DataAccess-instances
    • .\DataAccess.pas
    (Virtual) Base class for access to data containers
    • .\Access_OniArchive.pas
    Access to Oni's archives (.dat in conjunction with .raw and .sep)
    • .\Access_OUP_ADB.pas
    Access to OUP's databases (AbsoluteDatabase)
  • \FileClasses
    BLA - DESCRIPTION NEEDED
  • \Global
    Globally used Units (functions, data, typedefs ...)
    • .\Data.pas
    Contains global constants, variables
    • .\DatLinks.pas
    Generates .dat-linkById-lists for each filetype
    • .\DatStructureLoader.pas
    Loads structure-definition files
    • .\Exporters.pas
    Handles exporting of .dat/.raw-content (including converters)
    • .\Functions.pas
    Common functions like en-/decoding of data
    • .\Img_DDSTypes.pas
    DDS-header-definitions used by OniImageClass
    • .\OniImgClass.pas
    Loading/saving/converting of Oni's texture-data
    • .\RawList.pas
    Generates lists of .raw-contents for files
    • .\TypeDefs.pas
    Definition of globally used types
  • \Helper
    Small helpful forms
    • .\LevelDB.dfm/.pas
    Converts OniArchives to OUP-DBs and vice versa
    • .\ValueEdit.dfm/.pas
    Input form for editing variable contents
    • .\WhatLinksHere.dfm/.pas
    Shows links to (only supported in DBs) / from a file
  • \icons
    Contains icons used in the gui
  • \ImportedStuff
    Units written by others
    • .\FolderBrowser.pas
    Select a folder as you do in any normal windows application.
    • .\FTypeReg.pas
    Set/Get registered file types
    • .\OneInst.pas
    Makes sure that only one instance of OUP can be run at a time
  • \Tools
    Contains the basic tools in OUP like Preview, BinEdit ...
    • .\Template.dfm/.pas
    Template-form used for most tools
    • .\BinEdit.dfm/.pas
    HexEditor for .dat-files with StructureViewer
    • .\RawEdit.dfm/.pas
    HexEditor for .raw-contents
    • .\Extractor.dfm/.pas
    Mass file extractor
    • .\Preview.dfm/.pas
    Preview window (only supports TXMP, TXMB, TXAN, PSpc atm)
    • .\TxmpReplace.dfm/.pas
    Replaces TXMP images by image files
  • \ExtraIcos.res
    Contains the icons used in the gui
  • \Main.dfm/.pas
    Main window of OUP
  • \OniUnPacker.bdsproj
    Delphi project file
  • \OniUnPacker.dpr
    Main unit
  • \OniUnPacker.res
    Program icon
  • \Settings.dfm/.pas
    Settings formular


Note: Files which have a .dfm version besides the .pas version are units with forms (windows). Files which that are only there as a .pas are code only, sometimes global functions, some are global classes.


Used third party components

  • Virtual TreeView: Used in binary editors. Really powerful tree view component. (Used v4.4.3, but any newer version should work too). License: Open source (MPL/GPL).
  • Absolute Database: Used for storing level data for OUP. SQL database. You just have to give them your eMail address so they can send you an unlock key, you won't get any spam or newsletters. If you don't want to give them your normal address you can use a spam address like you can get at spamgourmet. License: Free for personal use.
  • MPHexEditor: Hex component for binary editors. License: Freeware with source.
  • CrossEdit: Input component with value validation. Original code from here. License: Freeware with source.
  • WrapGrid: Used the code from here and enhanced it for my special purposes. Needed additions are the column colorings, cell hints and images in cells. License: Couldn't find one. Suppose open source.
  • Toolbar2000: Toolbar component. License: Freeware with source.
  • [1]: MDI Tabbar component. License: Freeware with source.
  • ImagingLib: Image-handling library. License: MPL/LGPL.