OniUnPacker/source

From OniGalore
< OniUnPacker
Revision as of 22:44, 31 March 2020 by Iritscen (talk | contribs) (link fixes)
Jump to navigation Jump to search
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.