Skip to content

DoM support #327

@JaXt0r

Description

@JaXt0r

Description

Trying to get it to run.

Gameplay start with D.

  • Support oCTriggerScript and call Daedalus function if player reaches its bbox
  • Implement check for video (skip it for now, but set value of played)
  • Check LeGo Trialoge and overwrite functions if neccessary via zenkit::DaedalusVm::override_function
    • Therefore we need to expose and implement this function in ZenKitCS first
  • Implement Trialoge then...

TODOs

  • Textures in .tga format can't be used by ZenKit. For now, let's find them and use proper -c.tex variants created first time Gothic loads --> Solved: Simply start the game in G2 itself via mod loader and select "create textures". Then the correct -c.tex files are generated with mips for us.
  • Load VOBs and their meshes
  • Load NPCs and Daedalus routines
  • Check if perfomance is ok on PCVR
  • Fix Scorpio (401) is trying to Attack us? At least AI_Attack is called... -> Fix it via guilds?

Fixes

  • Graphics.CopyTexture called with region not fitting in destination element: trying to copy to region on GPU (x:0, y:0, width:1024, height:2048) of mip 0 (size: 512x512) --> This error is misleading. The high res ones are downsampled (mip1 or mip2 as first) the error occurs. Let's remove this logic and instead use the high res textures separately to provide the same quality which was expected by the developers of G2/a mod.

Features

  • PreCachingScene.cs -> Dynamically select all worlds inside _work/Data/Worlds/* to create cache from.

Improvements

  • Currently each not found resource throws a warning, but for meshes, we look up mdm, mdh, mrm with a separate warning log at the end. Provide a parameter on ResourceLoader to ignore warning on demand.
  • NPC dialogs without audio need to stay active with its subtitles for the amount of characters. Use a custom speed. (I found the dialogs. Skipping this one for now).

Warnings

  • Detected one or more triangles where the distance between any 2 vertices is greater than 500 units. The resulting Triangle Mesh can impact simulation and query stability. It is recommended to tessellate meshes that have large triangles. Source mesh name:
Image

G2 stuff

  • G2: Guild attitudes between humans are loaded (G2 needs to trigger it from engine, not Daedalus)

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureAdditional feature to implement

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions