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;
|
short uid;
|
||||||
coord x; /* is valid if EFF_XY is set in table def. */
|
coord x; /* is valid if EFF_XY is set in table def. */
|
||||||
coord y; /* 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 effic;
|
||||||
signed char mobil;
|
signed char mobil;
|
||||||
unsigned char off;
|
unsigned char off;
|
||||||
|
|
|
@ -48,8 +48,8 @@ struct sctstr {
|
||||||
short sct_elev; /* elevation/depth */
|
short sct_elev; /* elevation/depth */
|
||||||
coord sct_x; /* x coord of sector */
|
coord sct_x; /* x coord of sector */
|
||||||
coord sct_y; /* y coord of sector */
|
coord sct_y; /* y coord of sector */
|
||||||
|
signed char sct_type; /* sector type */
|
||||||
/* end of part matching struct empobj */
|
/* end of part matching struct empobj */
|
||||||
unsigned char sct_type; /* sector type */
|
|
||||||
unsigned char sct_effic; /* 0% to 100% */
|
unsigned char sct_effic; /* 0% to 100% */
|
||||||
short sct_mobil; /* mobility units */
|
short sct_mobil; /* mobility units */
|
||||||
unsigned char sct_loyal; /* updates until civilans "converted" */
|
unsigned char sct_loyal; /* updates until civilans "converted" */
|
||||||
|
@ -65,7 +65,7 @@ struct sctstr {
|
||||||
short sct_fill; /* gunk */
|
short sct_fill; /* gunk */
|
||||||
unsigned char sct_work; /* pct of civ actually working */
|
unsigned char sct_work; /* pct of civ actually working */
|
||||||
unsigned char sct_coastal; /* is this a coastal sector? */
|
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_min; /* ease of mining ore */
|
||||||
unsigned char sct_gmin; /* amount of gold ore */
|
unsigned char sct_gmin; /* amount of gold ore */
|
||||||
unsigned char sct_fertil; /* fertility of soil */
|
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_SHORT, NSC_DEITY, 0, fldoff(sctstr, sct_elev), "elev", EF_BAD},
|
||||||
{NSC_XCOORD, NSC_CONST, 0, fldoff(sctstr, sct_x), "xloc", 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_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_UCHAR, 0, 0, fldoff(sctstr, sct_effic), "effic", EF_BAD},
|
||||||
{NSC_SHORT, 0, 0, fldoff(sctstr, sct_mobil), "mobil", 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},
|
{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_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_work), "work", EF_BAD},
|
||||||
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_coastal), "coastal", 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_min), "min", EF_BAD},
|
||||||
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_gmin), "gold", EF_BAD},
|
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_gmin), "gold", EF_BAD},
|
||||||
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_fertil), "fert", EF_BAD},
|
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_fertil), "fert", EF_BAD},
|
||||||
|
|
|
@ -54,7 +54,7 @@
|
||||||
#include "xy.h"
|
#include "xy.h"
|
||||||
|
|
||||||
static int bmnxtsct(struct nstr_sect *);
|
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
|
int
|
||||||
do_map(int bmap, int unit_type, char *arg, char *map_flags_arg)
|
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.
|
* If OWNER_OR_GOD, the map is for the sector's owner or a deity.
|
||||||
*/
|
*/
|
||||||
static char
|
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))
|
if (CANT_HAPPEN(type > SCT_TYPE_MAX || !dchr[type].d_mnem))
|
||||||
return '?';
|
return '?';
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue