Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a window for tileset debugging #632

Open
lmoureaux opened this issue Sep 10, 2021 · 3 comments
Open

Add a window for tileset debugging #632

lmoureaux opened this issue Sep 10, 2021 · 3 comments
Assignees
Labels
enhancement New feature or request gui This issue requires changes to the user interface

Comments

@lmoureaux
Copy link
Contributor

Is your feature request related to a problem? Please describe.

Understanding how the map is drawn is hard, partly because there is no tool to break down the sprites used to draw an arbitrary tile. Adding a tool to dissect existing tileset would help raise awareness of the map-drawing techniques employed by the various tilesets and be helpful for modders.

Describe the solution you'd like

A window with a button to can pick a tile to debug. Once a tile is selected, the list of sprites used to draw it is displayed.

Describe alternatives you've considered

None so far.

Additional context

Everyone agrees that making new tilesets is hard, especially terrain.

@lmoureaux lmoureaux added the enhancement New feature or request label Sep 10, 2021
@jwrober
Copy link
Collaborator

jwrober commented Sep 10, 2021

Some thoughts on this - the window should be disconnected from the client so you can move it to a second monitor from the main client. The spec files and associated line data should also be displayed for quick troubleshooting. Option to be in "development mode" and edit the spec file(s) in the window would also be pretty cool if the client would be able to refresh to see the change on the fly.

@lmoureaux lmoureaux self-assigned this Sep 10, 2021
@lmoureaux
Copy link
Contributor Author

Very crude implementation that might already be useful:
image

lmoureaux added a commit to lmoureaux/freeciv21 that referenced this issue Sep 11, 2021
lmoureaux added a commit to lmoureaux/freeciv21 that referenced this issue Sep 11, 2021
Since it's going to interact quite a bit with the map view, make it a child of
the view widget.

See longturn#632.
lmoureaux added a commit to lmoureaux/freeciv21 that referenced this issue Sep 11, 2021
lmoureaux added a commit to lmoureaux/freeciv21 that referenced this issue Sep 11, 2021
lmoureaux added a commit to lmoureaux/freeciv21 that referenced this issue Sep 11, 2021
The sprites drawn by each layer are shown. Offsets are not accounted for, and
no reason is given for which sprites were selected. Some layers do not work
(for instance, the grid); they probably require pedge or pcorner.

See longturn#632.
lmoureaux added a commit to lmoureaux/freeciv21 that referenced this issue Sep 11, 2021
This allows one to understand better what the layers are made of and how they
works.

See longturn#632.
lmoureaux added a commit to lmoureaux/freeciv21 that referenced this issue Sep 11, 2021
The outline helps understand where sprites are drawn relative to each other.

See longturn#632.
lmoureaux added a commit to lmoureaux/freeciv21 that referenced this issue Sep 12, 2021
lmoureaux added a commit to lmoureaux/freeciv21 that referenced this issue Sep 12, 2021
Since it's going to interact quite a bit with the map view, make it a child of
the view widget.

See longturn#632.
lmoureaux added a commit to lmoureaux/freeciv21 that referenced this issue Sep 12, 2021
lmoureaux added a commit to lmoureaux/freeciv21 that referenced this issue Sep 12, 2021
lmoureaux added a commit to lmoureaux/freeciv21 that referenced this issue Sep 12, 2021
The sprites drawn by each layer are shown. Offsets are not accounted for, and
no reason is given for which sprites were selected. Some layers do not work
(for instance, the grid); they probably require pedge or pcorner.

See longturn#632.
lmoureaux added a commit to lmoureaux/freeciv21 that referenced this issue Sep 12, 2021
This allows one to understand better what the layers are made of and how they
works.

See longturn#632.
lmoureaux added a commit to lmoureaux/freeciv21 that referenced this issue Sep 12, 2021
The outline helps understand where sprites are drawn relative to each other.

See longturn#632.
lmoureaux added a commit to lmoureaux/freeciv21 that referenced this issue Sep 12, 2021
lmoureaux added a commit that referenced this issue Sep 12, 2021
lmoureaux added a commit that referenced this issue Sep 12, 2021
Since it's going to interact quite a bit with the map view, make it a child of
the view widget.

See #632.
lmoureaux added a commit that referenced this issue Sep 12, 2021
lmoureaux added a commit that referenced this issue Sep 12, 2021
lmoureaux added a commit that referenced this issue Sep 12, 2021
The sprites drawn by each layer are shown. Offsets are not accounted for, and
no reason is given for which sprites were selected. Some layers do not work
(for instance, the grid); they probably require pedge or pcorner.

See #632.
lmoureaux added a commit that referenced this issue Sep 12, 2021
This allows one to understand better what the layers are made of and how they
works.

See #632.
lmoureaux added a commit that referenced this issue Sep 12, 2021
The outline helps understand where sprites are drawn relative to each other.

See #632.
lmoureaux added a commit that referenced this issue Sep 12, 2021
psampathkumar pushed a commit to psampathkumar/freeciv21 that referenced this issue Nov 14, 2021
psampathkumar pushed a commit to psampathkumar/freeciv21 that referenced this issue Nov 14, 2021
Since it's going to interact quite a bit with the map view, make it a child of
the view widget.

See longturn#632.
psampathkumar pushed a commit to psampathkumar/freeciv21 that referenced this issue Nov 14, 2021
psampathkumar pushed a commit to psampathkumar/freeciv21 that referenced this issue Nov 14, 2021
psampathkumar pushed a commit to psampathkumar/freeciv21 that referenced this issue Nov 14, 2021
The sprites drawn by each layer are shown. Offsets are not accounted for, and
no reason is given for which sprites were selected. Some layers do not work
(for instance, the grid); they probably require pedge or pcorner.

See longturn#632.
psampathkumar pushed a commit to psampathkumar/freeciv21 that referenced this issue Nov 14, 2021
This allows one to understand better what the layers are made of and how they
works.

See longturn#632.
psampathkumar pushed a commit to psampathkumar/freeciv21 that referenced this issue Nov 14, 2021
The outline helps understand where sprites are drawn relative to each other.

See longturn#632.
psampathkumar pushed a commit to psampathkumar/freeciv21 that referenced this issue Nov 14, 2021
@jwrober
Copy link
Collaborator

jwrober commented Nov 21, 2021

Per a conversation on Discord, there is still some work to do on this one in a another pull request before it is complete.

lmoureaux added a commit to lmoureaux/freeciv21 that referenced this issue Jan 10, 2022
Any message with a level < LOG_FATAL is now saved so the user can have a look
later on. This is in particular useful for terrain sprites, since they generate
LOG_ERROR messages when missing.

There are still many conditions under which a crash is the only solution.

Related to longturn#632.
Related to longturn#806.
lmoureaux added a commit to lmoureaux/freeciv21 that referenced this issue Jan 10, 2022
Any message with a level < LOG_FATAL is now saved so the user can have a look
later on. This is in particular useful for terrain sprites, since they generate
LOG_ERROR messages when missing.

There are still many conditions under which a crash is the only solution.

Related to longturn#632.
Related to longturn#806.
jwrober pushed a commit that referenced this issue Jan 11, 2022
Any message with a level < LOG_FATAL is now saved so the user can have a look
later on. This is in particular useful for terrain sprites, since they generate
LOG_ERROR messages when missing.

There are still many conditions under which a crash is the only solution.

Related to #632.
Related to #806.
@jwrober jwrober added the gui This issue requires changes to the user interface label Jan 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request gui This issue requires changes to the user interface
Projects
None yet
Development

No branches or pull requests

2 participants