summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaru <haru@dotalux.com>2016-01-12 16:56:33 +0100
committerHaru <haru@dotalux.com>2016-01-12 17:28:40 +0100
commited05ed85c0bc44980168f730d02dfd379a2bfda9 (patch)
treead2e3ef67876d58982eb355cab55f8b9a2551585
parentc01f74557fb80e8d99fa54140d4741d34a4d5019 (diff)
downloadhercules-ed05ed85c0bc44980168f730d02dfd379a2bfda9.tar.gz
hercules-ed05ed85c0bc44980168f730d02dfd379a2bfda9.tar.bz2
hercules-ed05ed85c0bc44980168f730d02dfd379a2bfda9.tar.xz
hercules-ed05ed85c0bc44980168f730d02dfd379a2bfda9.zip
Replaced 22-bit mask entry with a regular uint32 in the noviewid mapflag implementation
As per ultramage's suggestion in #926 Signed-off-by: Haru <haru@dotalux.com>
-rw-r--r--src/common/mmo.h1
-rw-r--r--src/map/atcommand.c2
-rw-r--r--src/map/map.h2
-rw-r--r--src/map/script.c4
4 files changed, 5 insertions, 4 deletions
diff --git a/src/common/mmo.h b/src/common/mmo.h
index 17e6078fc..37fc63e29 100644
--- a/src/common/mmo.h
+++ b/src/common/mmo.h
@@ -268,6 +268,7 @@ struct item {
//Equip position constants
enum equip_pos {
+ EQP_NONE = 0x000000,
EQP_HEAD_LOW = 0x000001,
EQP_HEAD_MID = 0x000200, //512
EQP_HEAD_TOP = 0x000100, //256
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index 9d03dd057..e223f698c 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -3917,7 +3917,7 @@ ACMD(mapinfo)
strcat(atcmd_output, msg_fd(fd,1096)); // PartyLock |
if (map->list[m_id].flag.guildlock)
strcat(atcmd_output, msg_fd(fd,1097)); // GuildLock |
- if (map->list[m_id].flag.noviewid)
+ if (map->list[m_id].flag.noviewid != EQP_NONE)
strcat(atcmd_output, msg_fd(fd,1079)); // NoViewID |
clif->message(fd, atcmd_output);
diff --git a/src/map/map.h b/src/map/map.h
index 13b7880bd..ff7ca2d38 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -716,7 +716,7 @@ struct map_data {
unsigned noknockback : 1;
unsigned notomb : 1;
unsigned nocashshop : 1;
- unsigned noviewid : 22;
+ uint32 noviewid; ///< noviewid (bitmask - @see enum equip_pos)
} flag;
struct point save;
struct npc_data *npc[MAX_NPC_PER_MAP];
diff --git a/src/map/script.c b/src/map/script.c
index befb85304..5752c8a31 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -11808,7 +11808,7 @@ BUILDIN(setmapflag) {
case MF_RESET: map->list[m].flag.reset = 1; break;
case MF_NOTOMB: map->list[m].flag.notomb = 1; break;
case MF_NOCASHSHOP: map->list[m].flag.nocashshop = 1; break;
- case MF_NOVIEWID: map->list[m].flag.noviewid = (val <= 0) ? 0 : val; break;
+ case MF_NOVIEWID: map->list[m].flag.noviewid = (val <= 0) ? EQP_NONE : val; break;
}
}
@@ -11895,7 +11895,7 @@ BUILDIN(removemapflag) {
case MF_RESET: map->list[m].flag.reset = 0; break;
case MF_NOTOMB: map->list[m].flag.notomb = 0; break;
case MF_NOCASHSHOP: map->list[m].flag.nocashshop = 0; break;
- case MF_NOVIEWID: map->list[m].flag.noviewid = 0; break;
+ case MF_NOVIEWID: map->list[m].flag.noviewid = EQP_NONE; break;
}
}