Code Monkey home page Code Monkey logo

gmbt's People

Contributors

carnagemarkus avatar piotrmacha avatar szmyk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

gmbt's Issues

Improvements of config changes detection

The current method of detection the configuration changes is based on hashing the whole file and checking the last config's hash from GOTHIC.INI.

It must be replaced by checking only those keys and values from the config, the change of which requires re-unpacking the assets.

It can be done in several ways:

  1. Saving compressed, separated by some mark, values in GOTHIC.INI, for example with this syntax:
[GMBT]
lastConfig=gothicRoot:..\..|modFiles:assets:-mdk:-mdk-overrides|exclude:-mod\dk.ini|defaultWorld:NEWWORLD.ZEN;
  1. Saving config file, eg. in System directory and then checking the differences.

  2. Saving to the other file only those keys and values from the config, the change of which requires re-unpacking the assets and then checking the differences.

Detecting wrong options combinations

For example:

  • gmbt test --reinstall - reinstall needs full test
  • gmbt test --reinstall --merge=scripts - reinstall needs all assets to compile, not only scripts

Gothic not launching after error in previous instance

Expected Behavior

Gothic will launch again after ending with an error message before.

Actual Behavior

Only a Gothic2.exe process is seen in Task Manager, but the game doesn't launch.

Steps to Reproduce the Problem

  1. Launch an instance of GMBT with scripts that have an error.
  2. Close the error message (and the game with it).
  3. Try to relaunch the game again using GMBT.

Specifications

  • Version: v1.0-rc1
  • Platform / Operating System: Windows 10
  • Gothic game version (G1 or G2): G2

In-app updater

To enable a better distribution of the tool, an in-application updater should be created.

It could use a parameter or verb command, eg. gmbt update and provide auto-checking latest release at the end of every instance.

Add `pack` mode

Pack mode should only merge directories and pack assets to VDF.

Add `compile` mode

Compile mode should only merge directories and run Gothic with nomenu argument and kill process after scripts parsing.

Hooks

Hooks

Hooks system will be very similar to git functionality of specifying scripts that git will call based on different events and actions.

Hooks will be defined in YAML config, eg. something like this:

hooks:
  - 'common-pre': 'scripts\pre.bat'
  - 'common-pre-subtitles-convert': 'scripts\pre-subtitles-convert.bat'
  - 'test-pre-subtitles-convert': 'scripts\pre-subtitles-convert-test.bat'
  - 'quickTest-pre-subtitles-convert': 'scripts\pre-subtitles-convert-quick-test.bat'
  - 'fullTest-pre-textures-compile': 'scripts\pre-textures-compile.bat'
  - 'build-pre-game-start': 'scripts\pre-game-start.bat'

 etc...

Proposals of hooks

Common

  • pre
  • post
  • pre-assets-merge
  • pre-subtitles-convert
  • pre-textures-compile
  • pre-game-start

Build

  • pre-vdf-build
  • post-vdf-build

VDF comment parameter

--comment parameter of build verb command which allows user to define/override comment of VDF.

Problem with LeGo's saves system

There is an issue with LeGo's function _BIN_GetSavefilePath() that searches for INI file of a mod and provides that there is always a -game parameter.

However, GMBT uses -ini parameter, so LeGo crashes with error like this:

error

Gothic crashes before run

Expected Behavior

Actual Behavior

Fatal:-1 C: maximum texture size is lower than 32. possible reasons: wrong gfx driver setup (install other driver), bad os state (try to reboot), or insufficient gfx hardware (buy better gfx card!) .... <zTexture.cpp,#588>

Before GMBT it worked properly.

Steps to Reproduce the Problem

  1. Fresh installation (FIX + Starter Pack + System Pack 1.8)
  2. Create directory in _work and paste files from https://github.com/Szmyk/gmbt-example-mod
  3. Change .yml paths from ..\..\.. to ..\..
  4. Run ./FullTest.bat

On fresh it's working, but after trying to build by GMBT i can't run game. I tried to find a solution but without any results.

Specifications

  • Version:
  • Platform / Operating System: Windows 10 Home
  • Gothic game version (G1 or G2): G2

(attach log file which you can find in %APPDATA%/GMBT/logs/**date**/**time**.log)
15-27-02.log

Global configuration

To enable better comfort of using the tool, it is necessary to allow the user to save command line parameters which will be used in the next runs of the tool.

It can be done in two ways:

  • --save argument which will save whole arguments array and using it every time when user is not passing any arguement,

  • gmbt config verb command similar to git config command

User config file

User config file is used by many other tools and IDEs. The config file will be the file which can contain only user related options, eg. default zSpy mode and other default options. For example GMBT will be searching for .gmbt_user.yaml file to parse user options.

Predefined options

Possibility to set predefined console arguments in config file:

options:
  - "world": "-world=WORLD.ZEN"
  - "anotherworld": "--windowed --world=WORLD2.ZEN"

and then using them eg. like this: gmbt test anotherworld.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.