Skip to content

Changelog

szapp edited this page Nov 17, 2019 · 37 revisions

v2.0.01: Nov 17, 2019

  • Remove Ninja from the patches, into a DLL for compatibility
  • Remove dependency on the SystemPack
  • Unify Ninja for Gothic and Gothic 2 NotR for inter-game compatible patches
  • Make development of patches more intuitive
  • Load and apply patches in order of their timestamps
  • Allow overwriting and adding output units
  • Add console command to view version and build information and loaded patches
  • Increase performance by collecting the patches only once at game start
  • Allow mods to ignore incompatible patches
  • Add strict control over Ikarus and LeGo versions of patches for compatibility
  • Supply (but don’t apply) suitably modified versions of Ikarus and LeGo, such as non-persistent PermMem handles for patches, and merging of LeGo flags on consecutive initializations
  • Supply Ninja version, current mod name and index of patch symbols to Daedalus
  • Log more events in the zSpy
  • Detect and enable the zSpy for logging (if open)
  • Add cautionary measures for adding NPC with a patch
  • Remove invalid NPC objects on game loading
  • Introduce minor safety checks to three external functions
  • Update cutscene infos on game loading
  • Keep removed Daedalus symbols (integer variables) on game loading
  • Extended the list of non-overwritable Daedalus symbols

v1.2: Mar 23, 2018

  • Fix rare bug in animation ninja

v1.1: Mar 14, 2018

  • Ninja for Gothic 1
  • Re-implementation of finding files: old VDFS no longer used = more stability and faster loading times
  • Minor fixes

v1.0: Mar 7, 2018

  • Initial release for Gothic 2

Introduction
    Virtual Disk File System
    Formats
        Single File Formats
        Collected File Formats
    Limitations to Overcome
        Scripts
        Animations
        Output Units

Solution
    Implementation
    Patch Structure
        VDF File Tree
        VDF Header
    Patch Template
    Patch Validator
    Inter-Game Compatibility

Inject Changes
    Daedalus Scripts
        Overwriting Symbols
            Naming Conventions
            Preserved Symbols
        Initialization Functions
            Init_Global
            Menu Creation
        Ikarus and LeGo
            Initializing LeGo
            Modifications to LeGo
            PermMem and Handles
        Daedalus Hooks
        Inserting NPC
        Disallow Saving
        Helper Symbols
            NINJA_VERSION
            NINJA_MODNAME
            NINJA_PATCHES
            NINJA_ID_PATCHNAME
            NINJA_SYMBOLS_START
            NINJA_SYMBOLS…PATCHNAME
        Common Symbols
        Localization
    Animations and Armor
    Output Units

Other Mechanics
    Remove Invalid NPC
    Safety Checks in Externals
    Preserve Integer Variables
    Detect zSpy
    Incompatibility List for Mods

Technical Details

Applications and Examples
    Add New NPC
    Set AI Variables
    Add New Dialogs
    Add New Spells
    Add New World
    Translation Patch

Debugging
    Console
    Logging

Installation
    Requirements
    Instructions

Troubleshooting
    Is Ninja Active
    Is Patch Loaded
    Error Messages

Download

Checksums
    Setup
    In-Game

Changelog

Support this project  

Acknowledgements

Contact and Discussion

Clone this wiki locally