Make sector types signed
get_empobj_chr() and emp_obj_chr_name() access struct sctstr member sct_type through struct empobj member type. This is technically non-portable, because the two differ in signedness. It was also undocumented. Fix by making sct_type signed. sct_newtype as well, for consistency. map_char() uses unsigned char for a sector type argument. Change that to int. Matches how this is done elsewhere.
This commit is contained in:
parent
f8a35dda1e
commit
fc807a4c0a
4 changed files with 8 additions and 7 deletions
|
@ -56,7 +56,8 @@ struct empobj {
|
|||
short uid;
|
||||
coord x; /* is valid if EFF_XY is set in table def. */
|
||||
coord y; /* is valid if EFF_XY is set in table def. */
|
||||
signed char type;
|
||||
signed char type; /* is valid for sectors and units */
|
||||
/* remaining are valid for units */
|
||||
signed char effic;
|
||||
signed char mobil;
|
||||
unsigned char off;
|
||||
|
|
|
@ -48,8 +48,8 @@ struct sctstr {
|
|||
short sct_elev; /* elevation/depth */
|
||||
coord sct_x; /* x coord of sector */
|
||||
coord sct_y; /* y coord of sector */
|
||||
signed char sct_type; /* sector type */
|
||||
/* end of part matching struct empobj */
|
||||
unsigned char sct_type; /* sector type */
|
||||
unsigned char sct_effic; /* 0% to 100% */
|
||||
short sct_mobil; /* mobility units */
|
||||
unsigned char sct_loyal; /* updates until civilans "converted" */
|
||||
|
@ -65,7 +65,7 @@ struct sctstr {
|
|||
short sct_fill; /* gunk */
|
||||
unsigned char sct_work; /* pct of civ actually working */
|
||||
unsigned char sct_coastal; /* is this a coastal sector? */
|
||||
unsigned char sct_newtype; /* for changing designations */
|
||||
signed char sct_newtype; /* for changing designations */
|
||||
unsigned char sct_min; /* ease of mining ore */
|
||||
unsigned char sct_gmin; /* amount of gold ore */
|
||||
unsigned char sct_fertil; /* fertility of soil */
|
||||
|
|
|
@ -108,7 +108,7 @@ struct castr sect_ca[] = {
|
|||
{NSC_SHORT, NSC_DEITY, 0, fldoff(sctstr, sct_elev), "elev", EF_BAD},
|
||||
{NSC_XCOORD, NSC_CONST, 0, fldoff(sctstr, sct_x), "xloc", EF_BAD},
|
||||
{NSC_YCOORD, NSC_CONST, 0, fldoff(sctstr, sct_y), "yloc", EF_BAD},
|
||||
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_type), "des", EF_SECTOR_CHR},
|
||||
{NSC_CHAR, 0, 0, fldoff(sctstr, sct_type), "des", EF_SECTOR_CHR},
|
||||
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_effic), "effic", EF_BAD},
|
||||
{NSC_SHORT, 0, 0, fldoff(sctstr, sct_mobil), "mobil", EF_BAD},
|
||||
{NSC_UCHAR, NSC_DEITY, 0, fldoff(sctstr, sct_loyal), "loyal", EF_BAD},
|
||||
|
@ -123,7 +123,7 @@ struct castr sect_ca[] = {
|
|||
{NSC_SHORT, 0, 0, fldoff(sctstr, sct_avail), "avail", EF_BAD},
|
||||
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_work), "work", EF_BAD},
|
||||
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_coastal), "coastal", EF_BAD},
|
||||
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_newtype), "newdes", EF_SECTOR_CHR},
|
||||
{NSC_CHAR, 0, 0, fldoff(sctstr, sct_newtype), "newdes", EF_SECTOR_CHR},
|
||||
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_min), "min", EF_BAD},
|
||||
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_gmin), "gold", EF_BAD},
|
||||
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_fertil), "fert", EF_BAD},
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
#include "xy.h"
|
||||
|
||||
static int bmnxtsct(struct nstr_sect *);
|
||||
static char map_char(unsigned char type, natid own, int owner_or_god);
|
||||
static char map_char(int type, natid own, int owner_or_god);
|
||||
|
||||
int
|
||||
do_map(int bmap, int unit_type, char *arg, char *map_flags_arg)
|
||||
|
@ -330,7 +330,7 @@ bmnxtsct(struct nstr_sect *np)
|
|||
* If OWNER_OR_GOD, the map is for the sector's owner or a deity.
|
||||
*/
|
||||
static char
|
||||
map_char(unsigned char type, natid own, int owner_or_god)
|
||||
map_char(int type, natid own, int owner_or_god)
|
||||
{
|
||||
if (CANT_HAPPEN(type > SCT_TYPE_MAX || !dchr[type].d_mnem))
|
||||
return '?';
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue