View Single Post
Old April 8, 2019, 14:53   #2
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 56
Posts: 9,169
Donated: $60
Nick will become famous soon enoughNick will become famous soon enough
Yes, it's like that partly because (a) tradition and (b) there's nowhere near 256 different terrain types in V. But the reason for byte instead of int is that for portability of savefiles you need to only save things of a fixed length, and int is platform dependent.

So this can be fixed; the way to do it is
  1. Change the type for feat in struct square to u16b;
  2. Change the saving and loading functions - wr_dungeon_aux() and rd_dungeon_aux() - so that the terrain piece uses u16b instead of byte.

As you say, I suspect ints are used pretty much everywhere else, but there may be the odd other occurrence to look out for. There has been a move for about the last ten years, though, to remove the special fixed length types and replace them with ints unless there's a good reason (like savefiles) not to.

So you can just to do this in PWMangband; there's no actual need to do it in V, but I probably will at some stage, if only to keep the two aligned as much as possible
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote