Giter VIP home page Giter VIP logo

g2datagui's People

Contributors

dependabot[bot] avatar guernouille avatar krogenth avatar valeour avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

g2datagui's Issues

Fix rendering lag for large combo boxes

Currently there is some lag with certain combo boxes, primarily with items that have 799 entries.

Ideally it would be desired to have no lag whatsoever, however minimizing whatever possible is acceptable.

Places this can be seen are with the EnemyStats, BossStats, MapIcons, MapShop and StartingStats views.

Add Ninja Model support

Currently some code to handle models is written, however the handling of strips to be drawn has not been added.

Research into how model strips work will be needed.

The known sections within the files around models and their motions are:

  • CDDH(header for NJCM list?)
  • NJCM(model)
  • NMDM(model motion)
  • POF0(offset/pointer type)
  • MCS_(unknown)
  • GPHD(header for NMDM list?)
  • MIXL(listing for model motions)
  • GAMT(unknown)

potentially helpful links:

Tasks:

  • add support for parsing the njcm(model) file format
  • add support for parsing the nmdm(model motion) file format
  • add support for parsing entire *.chr, *.chr2, and *.mjn(map) files

Add SCNR file parsing

Similar to the strings.txt files, the *.scn files in content/data/text/*/scnr/ replace each map's dialogue section in their respective *.mdt file.

This comes with 2 major parts that are desired:

  • scnr files(and the dialogue sections in general) contain all of the dialogue in the game, and contains byte-code to specify some actions(receiving items, actions, etc.).
  • scnr files(and the dialogue sections in general) also contain out-bound map transitions. These section is tied to each of the map text-boxes at the end of the dialogue section(the map transition occurs before the transition text). The general transition byte-code is as follows: 0x04 0x3F 0x10 0x00 {index byte?} 0x00 {2 bytes map id}

Selected Enemy/Boss Changes on Hardmode toggle

Describe the bug
When toggling between hardmode/normal, the selected enemy/boss will sometimes be changed.

To Reproduce
Steps to reproduce the behavior:

  1. Select an enemy/boss that isn't the first
  2. Toggle the Hardmode checkbox a few times
  3. Notice that the selected enemy/boss has changed

Expected behavior
It should try to stay with the same enemy index where possible, and only revert to the first when the selected index is out of the new bounds.

Map save goes to improper file location

Describe the bug
Maps are saved to the incorrect file location

To Reproduce
Steps to reproduce the behavior:

  1. Click "Save All".
  2. Notice that map files are generated in the root directory.

Expected behavior
Map files should be stored in the proper maps directory.

Investigate possible GUI libraries

While ImGui is quick to setup, it is not quite as user-friendly as desired. Therefore, investigation of possible GUI libraries that can be used in place of ImGui to provide a more user friendly layout is required.

Possible leads would include:

Other possibilities can be found here: https://old.reddit.com/r/cpp/comments/babfl5/a_pretty_big_list_of_c_gui_libraries/
Ideally we would want standard library conforming, with minimal code requirements so it's easier for others to pick up work.

Flatten visual tree

Currently there are a lot of nested elements in the *.axaml files. To improve performance, it would be ideal to flatten out these files to reduce the burden on the visual tree when rendering.

A few questions

Opening up another to clear a few things up. I wonder if I can edit some things - like editing effects of magic, skills or the cost to get a skill - while on a playthrough safely without losing myself. Could basically build a mod as I go and test out stuff.
Edit: Just saw that you replied to the closed question. By editing as I go, I really meant stuff like corrupting the save/requiring to start a new game. Aside from starting stats, what else would I need to pay attention to? And also.. do you know of a decent save editor? Would likely be pretty helpful to have. I remember doing some small edits to the saves myself via the hexedit, though..

Is it impossible to code water or forest elemental damage? What exactly does something like leafwater chant affect aside from the heals?
And what is "MDT"?

And a few questions about some of the editable lines..
In MS_Param, what does "Target Effect" do? Is it just for visuals, or does it affect gameplay?
What exactly does "multiplier" in there do? I assume it's the per level bonus to damage, but I need to know what it exactly affects.
On the topic of Multipliers, I am a bit confused with skills. I don't exactly know what the multiplier actually does, some numbers seem very off, like for Life Up and the Chants
I assume Element Strength is like.. splitting elemental and non-elemental damage? Any info on that one?

And lastly, how can I edit stuff like base stats, stat gain on levelup, xp needed for levelup and other character specific stuff? Figured they'd be in PC_INIT, but can't seem to find those.

Oh, and who is that new character, Ryduo x)?

Add support for additional language codes

Is your feature request related to a problem? Please describe.
Currently only en_US is supported. There are other languages out there that should realistically be supported.

Describe the solution you'd like
More locale json definitions should be added in G2DataGUI.UI.Common/Assets/Locales.

Have Manaegg list populate from Item database

Is your feature request related to a problem? Please describe.
Currently, if a manaegg name is modified in the Item listing, the new name is not displayed in the Manaegg section.

Describe the solution you'd like
When a new manaegg is defined, or an existing one is modified, the change(s) should appear in the manaegg section.

strings.txt?

Grandia II Anniversary Edition\content\data\text
にある「strings.txt」でアイテム欄の変更が可能のようです。

現在は既存のアイテム名しか変更できないようですが、配布されているハードモードMODなどで新たに追加されたアイテムの名前変更もここでできるのでしょうか?

--

Grandia II Anniversary Edition\content\data\text
It seems that you can change the item name with "strings.txt" in.

Currently it seems that only existing item names can be changed, but is it possible to change the names of newly added items such as the hard mode mods distribute?

Add generating lookup table of enemy indices

Currently, the Maps section only reads in the byte data that links to the enemy/enemies in the Enemy Group section. Instead, being able to link the indices to the correct enemy(and possibly allow editing these index links) would be beneficial to allow easier comprehension of what enemy is being referenced.

These indices are defined based on the gamemode being played, and are split between boss and enemy(both normal enemies and field bosses).

Tasks:

  • parse enemy[_hardmode].csv and boss[_hardmode].csv files to generate lookup
  • add support for modifying these entries(just which enemy is what entry number is fine for now)

Add converter for number to hex

For some items, it would be beneficial to display values as their hexadecimal counterparts. This is primarily for the MapEntries view, where the entry ID is the map ID, based on the map filename(though there is likely another value within each file that specifies their ID).

Tasks:

  • create convert for number to hex string and back to number
  • add use of converter to MapEntries Map ID textbox

Pass data to sub-views appropriately

Currently, sub-views have their own ViewModels, which is fine. However, ideally these things should be passed through binding in the axaml files instead, which does not appear to be possible with UserControl elements, but should be possible with TemplateControl.

Tasks:

  • adjust Map sub-views to take their data from binding
  • adjust enemy sub-views to take data from binding
  • adjust boss sub-views to take data from binding
  • adjust item sub-views to take data from binding
  • adjust levelup sub-view to take data from binding

Add application icon

Currently the application does not use any kind of icon. It would be nice to have an icon to display to help distinguish from anything else running.

Tasks:

  • create ico file
  • add use of ico file to application

Restructure UI file layout

Currently all viewmodels regardless of type are within the UI/ViewModel folder and all content pages are within UI/Views/Content. Ideally, as this project continues to grow in scope, we should make subfolders to classify these files better(i.e. - a subfolder for maps that houses all map files for both ViewModel and Views respectively).

Manaegg spell required levels

Describe the bug
Manaegg Spell Required level should allow values above 5.

To Reproduce
Steps to reproduce the behavior:

  1. Go to the Manaeggs page
  2. Modify a spell's required level to attempt to go above 5
  3. Notice that the level cannot go above 5

Expected behavior
Required level should be allowed to go above 5

Create wiki

There are many areas of the game files from player moves, skills, items, starting stats, and level ups, to enemy stats, maps, music, and anything else. It would be beneficial to have a wiki dedicated to keeping track of all the knowledge(verified and unverified) that is accumulated over time.

General areas:

  • Player moves(MS_PARAM.BIN)
  • Player skills(SK_PARAM.BIN)
  • Player starting stats(PC_INIT.BIN)
  • Player levelups(TB_LVUP.BIN)
  • Player manaeggs(TB_MAGIC.BIN)
  • Player skillbooks(TB_SKILL.BIN)
  • Player special moves(TB_SPCL.BIN)
  • Enemy file structure(/enemy/enemy_hardmode)
  • Boss file structure(boss/boss_hardmode)
  • Maps(primarily *.MDT files)

Use strings.txt

Currently, only the data files themselves are changed, the strings.txt file(s) should also be changed or be the only changes to ensure names are appropriately modified in-game.

Research will be needed to understand how the file can be parsed.

Tasks:

  • add support for switching between each language the game supports
  • add parsing of the stings.txt files
  • have collections pull from strings.txt for what strings.txt replaces

Add map script handling

Maps have a collection of scripts for various pre-defined handling. These vary from character movement, animation(?), screen transitions, etc.

Tasks:

  • add parsing and saving map script data
  • add new sub-view for maps to display script data

Item Description is not maintained after navigating away

Describe the bug
An item's description is not held after being modified.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Items tab
  2. Modify any item's description field
  3. Click a different item
  4. Go back to the previous item
  5. See description reverts back

Expected behavior
An item's description should be saved.

Fix reload visually losing data

For some elements, after reload for each collection is called, will lose some information on some pages. The most notable is the EnemyStats page with the item combo boxes.

This may potentially be associated with #30.

Add sound file handling

Currently, there is little known in regards to how audio is actually handled within the game. This includes how audio looping is handled(the game uses OGG files, but the files do not appear to specify the looping as one would expect), and how music/sound selection is actually handled(how does the game determine what to play and when?).

A possible lead on the audio loading/looping would be the content/data/sound/sound_indices.csv file, which appears to list all audio files, along with an index, and some other data.

As such, there will be several tasks:

  • add parsing and playing of the OGG audio files(or whatever the actual audio files are)
  • determine how the game chooses audio to play(possibly dialogue opcodes?)
  • determine how the game handles looping(external file? handled on a per-map basis?)
  • add parsing & handling of whatever audio selection mechanism there is
  • add parsing & handling of whatever audio looping there is

Add error capturing

Currently data collections use async functions to read data from their files. This should be wrapped in try-catches to verify they ran correctly, and if not, what happened.

We can use a new Collection to house the errors themselves, and a new view and viewmodel to display the errors in-app.

Ideally, something like toast messages would be nice, but if that's not possible, having a sidebar of errors might be acceptable.

Tasks:

  • add try-catches to data collection read functions
  • add new error collection that data collections pass errors to
  • add new view for displaying error messages

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.