NickMcConnell / FAangband

First Age Angband
http://nickmcconnell.github.io/FAangband/
85 stars 15 forks source link

Tiles question #315

Closed davidk64fnq closed 2 years ago

davidk64fnq commented 2 years ago

I'm playing using the Gervais tileset. When I encounter a maddened weasel it displays a brown letter r. Is this because the maintainers have looked through the tileset and believe none of the existing tiles are suitable? If somebody wanted to try and provide a tile for the maddened weasel what is the process? Do you knock one up and then submit it on github as a possible enhancement? An issue I see with such an approach is then it is no longer pure Gervais tiles whereas using an ascii letter avoids this. Plus the subjective assessment of whether a submitted tile is sufficiently "like" the genuine Gervais tiles?

NickMcConnell commented 2 years ago

It's actually more a case of me not getting around to doing the tilesets properly. I have an issue (#90) filed for this, but it's not something I'm prioritising at the moment. In fact, the pref file from FA version 1.4 is here, and has a tile for the maddened weasel (and I'm sure others that haven't been done yet). If you felt like doing some, they would be gratefully accepted 😁

davidk64fnq commented 2 years ago

So the maddened weasel is listed as

Maddened weasel

R:50:0x8d:0x9B

in https://github.com/NickMcConnell/FAangband/blob/oldmain/lib/pref/graf-dvg.prf

Would you mind explaining how I translate that to a position in

https://github.com/NickMcConnell/FAangband/blob/oldmain/lib/pref/graf-dvg.prf

so I can see what tile was being used please?

Fully understand if you say "Work it out from the code!"

When you say doing some, do you mean creating new tiles (and maybe altering code to reference them) or altering the code to use unused tiles in current tileset?

(A cursory glance shows there are differences between the Buzzkill 32x32.png and that used currently)

davidk64fnq commented 2 years ago

Another example is a ring of aggravation showing as "=" symbol. If I knew how to edit the code to point that to one of the ring tiles I'd be happy to do so.

NickMcConnell commented 2 years ago

For monsters, as an example you'd want to translate # Grey mushroom patch R:31:0x8e:0xD5 to monster:Grey mushroom patch:0x8E:0xD5 which is the line in https://github.com/NickMcConnell/FAangband/blob/main/lib/tiles/gervais/graf-dvg.prf.

Rings are more complicated, I need to do some coding to make them work properly.

davidk64fnq commented 2 years ago

So if I knew that 0x8d:0x9B for example referred to a tile in

https://github.com/NickMcConnell/FAangband/blob/main/lib/tiles/gervais/32x32.png

that was suitable for representing a maddened weasel I would go into

https://github.com/NickMcConnell/FAangband/blob/main/lib/tiles/gervais/graf-dvg.prf and add something like:

monster:Maddened weasel:0x8d:0x9B

say at the end of the monster list e.g. line 948

But how do I work out which tile is referenced by 0x8d:0x9B in

https://github.com/NickMcConnell/FAangband/blob/main/lib/tiles/gervais/32x32.png

(sorry I made a mistake when asking this in last post but one)

backwardsEric commented 2 years ago

The hexadecimal values are the coordinates of the tile in the image file. (tile row, tile column) = (first hex value - 0x80, second hex value - 0x80). So the maddened weasel is (tile row 13 (counting from 0), tile column 27 (counting from zero)) where (0, 0) is the upper left corner of image. If there hasn't been a rearrangement of the tiles within the image file (the version from 1.4 is here, https://github.com/NickMcConnell/FAangband/blob/oldmain/lib/xtra/graf/32x32.png ; 2.0's version is here, https://github.com/NickMcConnell/FAangband/blob/main/lib/tiles/gervais/32x32.png ), then the hexadecimal values can be transferred as is from the 1.4 preference file to the new version.

davidk64fnq commented 2 years ago

Thanks. So the maddened weasel in version 1.4 used a brown rat and that tile is in the same position in the version 2.0 32x32.png file. So in the short term it could be changed by editing

https://github.com/NickMcConnell/FAangband/blob/main/lib/tiles/gervais/graf-dvg.prf

as above. Is that something I can do? I'm not familiar with the process of effecting the change. I gather I would make it in a branch of the code and then create a pull request? What branch do I use?

If I created a new tile for the maddened weasel would I upload that as an issue for consideration or create a pull request with the png and preference files edited?

davidk64fnq commented 2 years ago

Looking at the pngs I notice for example there are three tiles in the 1.4 version starting at row 11 column 13 that are not present in the 2.0 version - unless they have been moved. In general the 1.4 is 1.34 MB while the 2.0 version is 1.24 MB. Just wondering if this reflects a deliberate cull or whether somehow an older version of the buzzkill file has replaced the version 1.4 one in version 2.0?

backwardsEric commented 2 years ago

In response to your first question, you'd create a branch (based off the main branch of FAangband) to store your changes, likely just to graf-dvg.prf if the changes just supply definitions for monsters that are present in both 1.4 and 2.0 but don't have tile settings for 2.0. Then you'd create a pull request, comparing that branch to what's in FAangband's main. If you modified the tiles themselves, I'd also present that as a pull request, including the necessary changes to the png file and to the preference file.

For the second question, I don't know the specifics of what was changed in the png file. git log --follow on the current version may give you a hint. Nick likely has a better sense of what changed and why.

davidk64fnq commented 2 years ago

Sorry to be so dense but how does R:50:0x8d:0x9B become 13,27? Shouldn't it be 141,155? E.g. 8x16 + 13 = 141

NickMcConnell commented 2 years ago

Subtract 128. The addresses for the tiles are put in the same fields as addresses for ASCII characters, which are 7 bits (0-127). So the tiles are addressed by adding 128 to the dimensions so not to clash.

NickMcConnell commented 2 years ago

Fixed in a4f187a58.