summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--GNUmakefile14
-rw-r--r--make.defs4
-rw-r--r--src/char/GNUmakefile4
-rw-r--r--src/char/char.cpp203
-rw-r--r--src/char/char.hpp11
-rw-r--r--src/char/int_guild.cpp77
-rw-r--r--src/char/int_party.cpp54
-rw-r--r--src/char/int_storage.cpp17
-rw-r--r--src/char/inter.cpp27
-rw-r--r--src/char/inter.hpp3
-rw-r--r--src/common/GNUmakefile4
-rw-r--r--src/common/core.cpp6
-rw-r--r--src/common/db.hpp3
-rw-r--r--src/common/grfio.cpp6
-rw-r--r--src/common/md5calc.cpp23
-rw-r--r--src/common/md5calc.hpp4
-rw-r--r--src/common/mmo.hpp8
-rw-r--r--src/common/mt_rand.cpp1
-rw-r--r--src/common/nullpo.cpp17
-rw-r--r--src/common/utils.cpp97
-rw-r--r--src/common/utils.hpp8
-rw-r--r--src/ladmin/GNUmakefile4
-rw-r--r--src/ladmin/ladmin.cpp189
-rw-r--r--src/login/GNUmakefile4
-rw-r--r--src/login/login.cpp257
-rw-r--r--src/map/GNUmakefile4
-rw-r--r--src/map/atcommand.cpp856
-rw-r--r--src/map/atcommand.hpp5
-rw-r--r--src/map/battle.cpp7
-rw-r--r--src/map/chat.cpp12
-rw-r--r--src/map/chat.hpp14
-rw-r--r--src/map/chrif.cpp42
-rw-r--r--src/map/chrif.hpp2
-rw-r--r--src/map/clif.cpp327
-rw-r--r--src/map/clif.hpp41
-rw-r--r--src/map/guild.cpp19
-rw-r--r--src/map/guild.hpp12
-rw-r--r--src/map/intif.cpp83
-rw-r--r--src/map/intif.hpp16
-rw-r--r--src/map/itemdb.cpp15
-rw-r--r--src/map/itemdb.hpp5
-rw-r--r--src/map/magic-expr-eval.hpp5
-rw-r--r--src/map/magic-expr.cpp34
-rw-r--r--src/map/magic-expr.hpp8
-rw-r--r--src/map/magic-interpreter-base.cpp4
-rw-r--r--src/map/magic-interpreter-parser.ypp29
-rw-r--r--src/map/magic-interpreter.hpp6
-rw-r--r--src/map/magic-stmt.cpp19
-rw-r--r--src/map/magic.cpp2
-rw-r--r--src/map/magic.hpp4
-rw-r--r--src/map/map.cpp35
-rw-r--r--src/map/map.hpp28
-rw-r--r--src/map/mob.cpp144
-rw-r--r--src/map/mob.hpp6
-rw-r--r--src/map/npc.cpp60
-rw-r--r--src/map/npc.hpp8
-rw-r--r--src/map/party.cpp23
-rw-r--r--src/map/party.hpp16
-rw-r--r--src/map/pc.cpp64
-rw-r--r--src/map/pc.hpp23
-rw-r--r--src/map/script.cpp1324
-rw-r--r--src/map/script.hpp60
-rw-r--r--src/map/skill-pools.cpp4
-rw-r--r--src/map/skill.cpp331
-rw-r--r--src/map/skill.hpp3
-rw-r--r--src/map/storage.cpp1
-rw-r--r--src/map/tmw.cpp17
-rw-r--r--src/map/tmw.hpp9
-rw-r--r--src/tool/GNUmakefile4
-rw-r--r--src/tool/eathena-monitor.cpp5
-rw-r--r--src/webserver/GNUmakefile4
-rw-r--r--warnings8
72 files changed, 2513 insertions, 2280 deletions
diff --git a/GNUmakefile b/GNUmakefile
index b00e55c..a8914f8 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -40,7 +40,7 @@ PROGS = login-server char-server map-server ladmin eathena-monitor webserver
all: ${PROGS}
clean:
rm -rf ${PROGS} ${BUILD_DIR}/
-common: ${BUILD_DIR}/common/core.o ${BUILD_DIR}/common/db.o ${BUILD_DIR}/common/grfio.o ${BUILD_DIR}/common/lock.o ${BUILD_DIR}/common/md5calc.o ${BUILD_DIR}/common/mt_rand.o ${BUILD_DIR}/common/nullpo.o ${BUILD_DIR}/common/socket.o ${BUILD_DIR}/common/timer.o
+common: ${BUILD_DIR}/common/core.o ${BUILD_DIR}/common/db.o ${BUILD_DIR}/common/grfio.o ${BUILD_DIR}/common/lock.o ${BUILD_DIR}/common/md5calc.o ${BUILD_DIR}/common/mt_rand.o ${BUILD_DIR}/common/nullpo.o ${BUILD_DIR}/common/socket.o ${BUILD_DIR}/common/timer.o ${BUILD_DIR}/common/utils.o
# Top level programs
login-server: ${BUILD_DIR}/login/login
@@ -57,10 +57,10 @@ webserver: ${BUILD_DIR}/webserver/main
cp -f $< $@
# Executable dependencies - generated by hand
-${BUILD_DIR}/char/char: ${BUILD_DIR}/char/char.o ${BUILD_DIR}/char/inter.o ${BUILD_DIR}/char/int_party.o ${BUILD_DIR}/char/int_guild.o ${BUILD_DIR}/char/int_storage.o ${BUILD_DIR}/common/core.o ${BUILD_DIR}/common/socket.o ${BUILD_DIR}/common/timer.o ${BUILD_DIR}/common/db.o ${BUILD_DIR}/common/lock.o ${BUILD_DIR}/common/mt_rand.o
-${BUILD_DIR}/ladmin/ladmin: ${BUILD_DIR}/ladmin/ladmin.o ${BUILD_DIR}/common/md5calc.o ${BUILD_DIR}/common/core.o ${BUILD_DIR}/common/socket.o ${BUILD_DIR}/common/timer.o ${BUILD_DIR}/common/db.o ${BUILD_DIR}/common/mt_rand.o
-${BUILD_DIR}/login/login: ${BUILD_DIR}/login/login.o ${BUILD_DIR}/common/core.o ${BUILD_DIR}/common/socket.o ${BUILD_DIR}/common/timer.o ${BUILD_DIR}/common/db.o ${BUILD_DIR}/common/lock.o ${BUILD_DIR}/common/mt_rand.o ${BUILD_DIR}/common/md5calc.o
-${BUILD_DIR}/map/map: ${BUILD_DIR}/map/map.o ${BUILD_DIR}/map/tmw.o ${BUILD_DIR}/map/magic-interpreter-lexer.o ${BUILD_DIR}/map/magic-interpreter-parser.o ${BUILD_DIR}/map/magic-interpreter-base.o ${BUILD_DIR}/map/magic-expr.o ${BUILD_DIR}/map/magic-stmt.o ${BUILD_DIR}/map/magic.o ${BUILD_DIR}/map/map.o ${BUILD_DIR}/map/chrif.o ${BUILD_DIR}/map/clif.o ${BUILD_DIR}/map/pc.o ${BUILD_DIR}/map/npc.o ${BUILD_DIR}/map/chat.o ${BUILD_DIR}/map/path.o ${BUILD_DIR}/map/itemdb.o ${BUILD_DIR}/map/mob.o ${BUILD_DIR}/map/script.o ${BUILD_DIR}/map/storage.o ${BUILD_DIR}/map/skill.o ${BUILD_DIR}/map/skill-pools.o ${BUILD_DIR}/map/atcommand.o ${BUILD_DIR}/map/battle.o ${BUILD_DIR}/map/intif.o ${BUILD_DIR}/map/trade.o ${BUILD_DIR}/map/party.o ${BUILD_DIR}/map/guild.o ${BUILD_DIR}/common/core.o ${BUILD_DIR}/common/socket.o ${BUILD_DIR}/common/timer.o ${BUILD_DIR}/common/grfio.o ${BUILD_DIR}/common/db.o ${BUILD_DIR}/common/lock.o ${BUILD_DIR}/common/nullpo.o ${BUILD_DIR}/common/mt_rand.o ${BUILD_DIR}/common/md5calc.o
+${BUILD_DIR}/char/char: ${BUILD_DIR}/char/char.o ${BUILD_DIR}/char/inter.o ${BUILD_DIR}/char/int_party.o ${BUILD_DIR}/char/int_guild.o ${BUILD_DIR}/char/int_storage.o ${BUILD_DIR}/common/core.o ${BUILD_DIR}/common/socket.o ${BUILD_DIR}/common/timer.o ${BUILD_DIR}/common/db.o ${BUILD_DIR}/common/lock.o ${BUILD_DIR}/common/mt_rand.o ${BUILD_DIR}/common/utils.o
+${BUILD_DIR}/ladmin/ladmin: ${BUILD_DIR}/ladmin/ladmin.o ${BUILD_DIR}/common/md5calc.o ${BUILD_DIR}/common/core.o ${BUILD_DIR}/common/socket.o ${BUILD_DIR}/common/timer.o ${BUILD_DIR}/common/db.o ${BUILD_DIR}/common/mt_rand.o ${BUILD_DIR}/common/utils.o
+${BUILD_DIR}/login/login: ${BUILD_DIR}/login/login.o ${BUILD_DIR}/common/core.o ${BUILD_DIR}/common/socket.o ${BUILD_DIR}/common/timer.o ${BUILD_DIR}/common/db.o ${BUILD_DIR}/common/lock.o ${BUILD_DIR}/common/mt_rand.o ${BUILD_DIR}/common/md5calc.o ${BUILD_DIR}/common/utils.o
+${BUILD_DIR}/map/map: ${BUILD_DIR}/map/map.o ${BUILD_DIR}/map/tmw.o ${BUILD_DIR}/map/magic-interpreter-lexer.o ${BUILD_DIR}/map/magic-interpreter-parser.o ${BUILD_DIR}/map/magic-interpreter-base.o ${BUILD_DIR}/map/magic-expr.o ${BUILD_DIR}/map/magic-stmt.o ${BUILD_DIR}/map/magic.o ${BUILD_DIR}/map/map.o ${BUILD_DIR}/map/chrif.o ${BUILD_DIR}/map/clif.o ${BUILD_DIR}/map/pc.o ${BUILD_DIR}/map/npc.o ${BUILD_DIR}/map/chat.o ${BUILD_DIR}/map/path.o ${BUILD_DIR}/map/itemdb.o ${BUILD_DIR}/map/mob.o ${BUILD_DIR}/map/script.o ${BUILD_DIR}/map/storage.o ${BUILD_DIR}/map/skill.o ${BUILD_DIR}/map/skill-pools.o ${BUILD_DIR}/map/atcommand.o ${BUILD_DIR}/map/battle.o ${BUILD_DIR}/map/intif.o ${BUILD_DIR}/map/trade.o ${BUILD_DIR}/map/party.o ${BUILD_DIR}/map/guild.o ${BUILD_DIR}/common/core.o ${BUILD_DIR}/common/socket.o ${BUILD_DIR}/common/timer.o ${BUILD_DIR}/common/grfio.o ${BUILD_DIR}/common/db.o ${BUILD_DIR}/common/lock.o ${BUILD_DIR}/common/nullpo.o ${BUILD_DIR}/common/mt_rand.o ${BUILD_DIR}/common/md5calc.o ${BUILD_DIR}/common/utils.o
${BUILD_DIR}/tool/eathena-monitor: ${BUILD_DIR}/tool/eathena-monitor.o
${BUILD_DIR}/tool/adduser: ${BUILD_DIR}/tool/adduser.o ${BUILD_DIR}/common/socket.o
${BUILD_DIR}/tool/itemfrob: ${BUILD_DIR}/tool/itemfrob.o ${BUILD_DIR}/common/timer.o ${BUILD_DIR}/common/socket.o ${BUILD_DIR}/common/db.o ${BUILD_DIR}/common/lock.o ${BUILD_DIR}/char/inter.o ${BUILD_DIR}/char/int_guild.o ${BUILD_DIR}/char/int_party.o ${BUILD_DIR}/char/int_storage.o
@@ -68,7 +68,9 @@ ${BUILD_DIR}/tool/mapfrob: ${BUILD_DIR}/tool/mapfrob.o ${BUILD_DIR}/common/timer
${BUILD_DIR}/tool/marriage-info: ${BUILD_DIR}/tool/marriage-info.o ${BUILD_DIR}/common/timer.o ${BUILD_DIR}/common/socket.o ${BUILD_DIR}/common/db.o ${BUILD_DIR}/common/lock.o ${BUILD_DIR}/char/inter.o ${BUILD_DIR}/char/int_guild.o ${BUILD_DIR}/char/int_party.o ${BUILD_DIR}/char/int_storage.o
${BUILD_DIR}/webserver/main: ${BUILD_DIR}/webserver/main.o ${BUILD_DIR}/webserver/parse.o ${BUILD_DIR}/webserver/generate.o ${BUILD_DIR}/webserver/htmlstyle.o ${BUILD_DIR}/webserver/logs.o ${BUILD_DIR}/webserver/pages/about.o ${BUILD_DIR}/webserver/pages/sample.o ${BUILD_DIR}/webserver/pages/notdone.o
-deps.make:
+# deps.make is *NOT* automatically rebuilt normally
+# but the generated source files do need to be done first
+deps.make: src/map/magic-interpreter-parser.cpp src/map/magic-interpreter-lexer.cpp
for F in `find src/ -name '*.cpp'`; do \
${CXX} ${CPPFLAGS} -MM "$$F" -MT "$$(sed 's/src/$${BUILD_DIR}/;s/\.cpp/.o/' <<< "$$F")"; \
done > deps.make
diff --git a/make.defs b/make.defs
index 9328688..17b06a8 100644
--- a/make.defs
+++ b/make.defs
@@ -2,12 +2,12 @@
CXX = g++
LEX = flex
BISON = bison
-CXXFLAGS = -pipe -g -O2
+CXXFLAGS = -pipe -g -O2 #@warnings
# works on both x86 and x86_64
override CXX += -m32 -std=c++0x
# for linking
override CC = ${CXX}
-override CXXFLAGS += -fstack-protector
+override CXXFLAGS += -fstack-protector -fno-strict-aliasing
diff --git a/src/char/GNUmakefile b/src/char/GNUmakefile
index cd7ad57..0e1aece 100644
--- a/src/char/GNUmakefile
+++ b/src/char/GNUmakefile
@@ -1,7 +1,7 @@
.SUFFIXES:
all:
- make -C ../.. char-server
+ ${MAKE} -C ../.. char-server
clean:
rm -r ../../obj/char/
%::
- make -C ../.. obj/char/$@
+ ${MAKE} -C ../.. obj/char/$@
diff --git a/src/char/char.cpp b/src/char/char.cpp
index a57520b..acb52fd 100644
--- a/src/char/char.cpp
+++ b/src/char/char.cpp
@@ -120,7 +120,7 @@ pid_t pid = 0; // For forked DB writes
//------------------------------
// Writing function of logs file
//------------------------------
-int char_log (char *fmt, ...)
+int char_log (const char *fmt, ...)
{
FILE *logfp;
va_list ap;
@@ -148,30 +148,11 @@ int char_log (char *fmt, ...)
return 0;
}
-//-----------------------------------------------------
-// Function to suppress control characters in a string.
-//-----------------------------------------------------
-int remove_control_chars (unsigned char *str)
-{
- int i;
- int change = 0;
-
- for (i = 0; str[i]; i++)
- {
- if (str[i] < 32)
- {
- str[i] = '_';
- change = 1;
- }
- }
-
- return change;
-}
-
//----------------------------------------------------------------------
// Determine if an account (id) is a GM account
// and returns its level (or 0 if it isn't a GM account or if not found)
//----------------------------------------------------------------------
+static
int isGM (int account_id)
{
int i;
@@ -190,7 +171,7 @@ int isGM (int account_id)
// and returns index if only 1 character is found
// and similar to the searched name.
//----------------------------------------------
-int search_character_index (char *character_name)
+int search_character_index (const char *character_name)
{
int i, quantity, index;
@@ -232,6 +213,7 @@ char *search_character_name (int index)
//-------------------------------------------------
// Function to create the character line (for save)
//-------------------------------------------------
+static
int mmo_char_tostr (char *str, struct mmo_charstatus *p)
{
int i;
@@ -312,6 +294,7 @@ int mmo_char_tostr (char *str, struct mmo_charstatus *p)
//-------------------------------------------------------------------------
// Function to set the character from the line (at read of characters file)
//-------------------------------------------------------------------------
+static
int mmo_char_fromstr (char *str, struct mmo_charstatus *p)
{
int tmp_int[256];
@@ -584,17 +567,17 @@ int mmo_char_fromstr (char *str, struct mmo_charstatus *p)
//---------------------------------
// Function to read characters file
//---------------------------------
+static
int mmo_char_init (void)
{
char line[65536];
- int i;
int ret, line_count;
FILE *fp;
char_max = 256;
CREATE (char_dat, struct mmo_charstatus, 256);
CREATE (online_chars, int, 256);
- for (i = 0; i < char_max; i++)
+ for (int i = 0; i < char_max; i++)
online_chars[i] = -1;
char_num = 0;
@@ -717,6 +700,7 @@ int mmo_char_init (void)
//---------------------------------------------------------
// Function to save characters in files (speed up by [Yor])
//---------------------------------------------------------
+static
void mmo_char_sync (void)
{
char line[65536];
@@ -791,6 +775,7 @@ void mmo_char_sync (void)
//----------------------------------------------------
// Function to save (in a periodic way) datas in files
//----------------------------------------------------
+static
void mmo_char_sync_timer (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
if (pid != 0)
@@ -845,14 +830,17 @@ static void remove_prefix_blanks (char *name)
//-----------------------------------
// Function to create a new character
//-----------------------------------
+static
int make_new_char (int fd, unsigned char *dat)
{
+ // ugh
+ char *cdat = (char *)dat;
int i, j;
struct char_session_data *sd = (struct char_session_data *)session[fd]->session_data;
// remove control characters from the name
- dat[23] = '\0';
- if (remove_control_chars (dat))
+ cdat[23] = '\0';
+ if (remove_control_chars (cdat))
{
char_log
("Make new char error (control char received in the name): (connection #%d, account: %d).\n",
@@ -861,45 +849,46 @@ int make_new_char (int fd, unsigned char *dat)
}
// Eliminate whitespace
- remove_trailing_blanks ((char *) dat);
- remove_prefix_blanks ((char *) dat);
+ remove_trailing_blanks (cdat);
+ remove_prefix_blanks (cdat);
// check lenght of character name
- if (strlen (dat) < 4)
+ if (strlen (cdat) < 4)
{
char_log
("Make new char error (character name too small): (connection #%d, account: %d, name: '%s').\n",
- fd, sd->account_id, dat);
+ fd, sd->account_id, cdat);
return -1;
}
// Check Authorised letters/symbols in the name of the character
if (char_name_option == 1)
{ // only letters/symbols in char_name_letters are authorised
- for (i = 0; dat[i]; i++)
- if (strchr (char_name_letters, dat[i]) == NULL)
+ for (i = 0; cdat[i]; i++)
+ if (strchr (char_name_letters, cdat[i]) == NULL)
{
char_log
("Make new char error (invalid letter in the name): (connection #%d, account: %d), name: %s, invalid letter: %c.\n",
- fd, sd->account_id, dat, dat[i]);
+ fd, sd->account_id, cdat, cdat[i]);
return -1;
}
}
else if (char_name_option == 2)
{ // letters/symbols in char_name_letters are forbidden
- for (i = 0; dat[i]; i++)
- if (strchr (char_name_letters, dat[i]) != NULL)
+ for (i = 0; cdat[i]; i++)
+ if (strchr (char_name_letters, cdat[i]) != NULL)
{
char_log
("Make new char error (invalid letter in the name): (connection #%d, account: %d), name: %s, invalid letter: %c.\n",
- fd, sd->account_id, dat, dat[i]);
+ fd, sd->account_id, cdat, cdat[i]);
return -1;
}
} // else, all letters/symbols are authorised (except control char removed before)
+ // this is why it needs to be unsigned
if (dat[24] + dat[25] + dat[26] + dat[27] + dat[28] + dat[29] != 5 * 6 || // stats
dat[30] >= 9 || // slots (dat[30] can not be negativ)
- dat[33] < 0 || dat[33] >= 20 || // hair style
+ dat[33] >= 20 || // hair style
dat[31] >= 12)
{ // hair color (dat[31] can not be negativ)
char_log
@@ -928,13 +917,13 @@ int make_new_char (int fd, unsigned char *dat)
for (i = 0; i < char_num; i++)
{
- if ((name_ignoring_case != 0 && strcmp (char_dat[i].name, dat) == 0)
+ if ((name_ignoring_case != 0 && strcmp (char_dat[i].name, cdat) == 0)
|| (name_ignoring_case == 0
- && strcasecmp (char_dat[i].name, dat) == 0))
+ && strcasecmp (char_dat[i].name, cdat) == 0))
{
char_log
("Make new char error (name already exists): (connection #%d, account: %d) slot %d, name: %s (actual name of other char: %s), stats: %d+%d+%d+%d+%d+%d=%d, hair: %d, hair color: %d.\n",
- fd, sd->account_id, dat[30], dat, char_dat[i].name,
+ fd, sd->account_id, dat[30], cdat, char_dat[i].name,
dat[24], dat[25], dat[26], dat[27], dat[28], dat[29],
dat[24] + dat[25] + dat[26] + dat[27] + dat[28] + dat[29],
dat[33], dat[31]);
@@ -945,7 +934,7 @@ int make_new_char (int fd, unsigned char *dat)
{
char_log
("Make new char error (slot already used): (connection #%d, account: %d) slot %d, name: %s (actual name of other char: %s), stats: %d+%d+%d+%d+%d+%d=%d, hair: %d, hair color: %d.\n",
- fd, sd->account_id, dat[30], dat, char_dat[i].name,
+ fd, sd->account_id, dat[30], cdat, char_dat[i].name,
dat[24], dat[25], dat[26], dat[27], dat[28], dat[29],
dat[24] + dat[25] + dat[26] + dat[27] + dat[28] + dat[29],
dat[33], dat[31]);
@@ -953,11 +942,11 @@ int make_new_char (int fd, unsigned char *dat)
}
}
- if (strcmp (wisp_server_name, dat) == 0)
+ if (strcmp (wisp_server_name, cdat) == 0)
{
char_log
- ("Make new char error (name used is wisp name for server): (connection #%d, account: %d) slot %d, name: %s (actual name of other char: %d), stats: %d+%d+%d+%d+%d+%d=%d, hair: %d, hair color: %d.\n",
- fd, sd->account_id, dat[30], dat, char_dat[i].name,
+ ("Make new char error (name used is wisp name for server): (connection #%d, account: %d) slot %d, name: %s (actual name of other char: %s), stats: %d+%d+%d+%d+%d+%d=%d, hair: %d, hair color: %d.\n",
+ fd, sd->account_id, dat[30], cdat, char_dat[i].name,
dat[24], dat[25], dat[26], dat[27], dat[28], dat[29],
dat[24] + dat[25] + dat[26] + dat[27] + dat[28] + dat[29],
dat[33], dat[31]);
@@ -981,7 +970,7 @@ int make_new_char (int fd, unsigned char *dat)
char_log
("Creation of New Character: (connection #%d, account: %d) slot %d, character Name: %s, stats: %d+%d+%d+%d+%d+%d=%d, hair: %d, hair color: %d. [%s]\n",
- fd, sd->account_id, dat[30], dat, dat[24], dat[25], dat[26],
+ fd, sd->account_id, dat[30], cdat, dat[24], dat[25], dat[26],
dat[27], dat[28], dat[29],
dat[24] + dat[25] + dat[26] + dat[27] + dat[28] + dat[29], dat[33],
dat[31], ip);
@@ -991,7 +980,7 @@ int make_new_char (int fd, unsigned char *dat)
char_dat[i].char_id = char_id_count++;
char_dat[i].account_id = sd->account_id;
char_dat[i].char_num = dat[30];
- strcpy (char_dat[i].name, dat);
+ strcpy (char_dat[i].name, cdat);
char_dat[i].pc_class = 0;
char_dat[i].base_level = 1;
char_dat[i].job_level = 1;
@@ -1043,7 +1032,8 @@ int make_new_char (int fd, unsigned char *dat)
//----------------------------------------------------
// This function return the name of the job (by [Yor])
//----------------------------------------------------
-char *job_name (int pc_class)
+static
+const char *job_name (int pc_class)
{
switch (pc_class)
{
@@ -1192,6 +1182,7 @@ char *job_name (int pc_class)
//-------------------------------------------------------------
// Function to create the online files (txt and html). by [Yor]
//-------------------------------------------------------------
+static
void create_online_files (void)
{
int i, j, k, l; // for loops
@@ -1448,7 +1439,7 @@ void create_online_files (void)
// displaying of the job
if (online_display_option & 6)
{
- char *jobname = job_name (char_dat[j].pc_class);
+ const char *jobname = job_name (char_dat[j].pc_class);
if ((online_display_option & 6) == 6)
{
fprintf (fp2, " <td>%s %d/%d</td>\n",
@@ -1549,6 +1540,7 @@ void create_online_files (void)
//---------------------------------------------------------------------
// This function return the number of online players in all map-servers
//---------------------------------------------------------------------
+static
int count_users (void)
{
int i, users;
@@ -1577,6 +1569,7 @@ static int find_equip_view (struct mmo_charstatus *p, unsigned int equipmask)
//----------------------------------------
// Function to send characters to a player
//----------------------------------------
+static
int mmo_char_send006b (int fd, struct char_session_data *sd)
{
int i, j, found_num;
@@ -1657,6 +1650,7 @@ int mmo_char_send006b (int fd, struct char_session_data *sd)
return 0;
}
+static
int set_account_reg2 (int acc, int num, struct global_reg *reg)
{
int i, c;
@@ -1676,10 +1670,11 @@ int set_account_reg2 (int acc, int num, struct global_reg *reg)
}
// Divorce a character from it's partner and let the map server know
+static
int char_divorce (struct mmo_charstatus *cs)
{
int i;
- char buf[10];
+ uint8_t buf[10];
if (cs == NULL)
return 0;
@@ -1726,51 +1721,10 @@ int char_divorce (struct mmo_charstatus *cs)
return 0;
}
-//------------------------------------------------------------
-// E-mail check: return 0 (not correct) or 1 (valid). by [Yor]
-//------------------------------------------------------------
-int e_mail_check (unsigned char *email)
-{
- char ch;
- unsigned char *last_arobas;
-
- // athena limits
- if (strlen (email) < 3 || strlen (email) > 39)
- return 0;
-
- // part of RFC limits (official reference of e-mail description)
- if (strchr (email, '@') == NULL || email[strlen (email) - 1] == '@')
- return 0;
-
- if (email[strlen (email) - 1] == '.')
- return 0;
-
- last_arobas = strrchr (email, '@');
-
- if (strstr (last_arobas, "@.") != NULL ||
- strstr (last_arobas, "..") != NULL)
- return 0;
-
- for (ch = 1; ch < 32; ch++)
- {
- if (strchr (last_arobas, ch) != NULL)
- {
- return 0;
- break;
- }
- }
-
- if (strchr (last_arobas, ' ') != NULL ||
- strchr (last_arobas, ';') != NULL)
- return 0;
-
- // all correct
- return 1;
-}
-
//----------------------------------------------------------------------
// Force disconnection of an online player (with account value) by [Yor]
//----------------------------------------------------------------------
+static
int disconnect_player (int accound_id)
{
int i;
@@ -1817,9 +1771,9 @@ static int char_delete (struct mmo_charstatus *cs)
return 0;
}
+static
void parse_tologin (int fd)
{
- int i;
struct char_session_data *sd;
// only login-server can have an access to here.
@@ -1866,6 +1820,7 @@ void parse_tologin (int fd)
printf ("Connected to login-server (connection #%d).\n",
fd);
// if no map-server already connected, display a message...
+ int i;
for (i = 0; i < MAX_MAP_SERVERS; i++)
if (server_fd[i] >= 0 && server[i].map[0][0]) // if map-server online and at least 1 map
break;
@@ -1879,7 +1834,7 @@ void parse_tologin (int fd)
if (RFIFOREST (fd) < 51)
return;
// printf("parse_tologin 2713 : %d\n", RFIFOB(fd,6));
- for (i = 0; i < fd_max; i++)
+ for (int i = 0; i < fd_max; i++)
{
if (session[i] && (sd = (struct char_session_data*)session[i]->session_data)
&& sd->account_id == RFIFOL (fd, 2))
@@ -1922,7 +1877,7 @@ void parse_tologin (int fd)
case 0x2717:
if (RFIFOREST (fd) < 50)
return;
- for (i = 0; i < fd_max; i++)
+ for (int i = 0; i < fd_max; i++)
{
if (session[i] && (sd = (struct char_session_data*)session[i]->session_data))
{
@@ -2026,6 +1981,7 @@ void parse_tologin (int fd)
("Receiving a message for broadcast, but message is void.\n");
else
{
+ int i;
// at least 1 map-server
for (i = 0; i < MAX_MAP_SERVERS; i++)
if (server_fd[i] >= 0)
@@ -2035,7 +1991,7 @@ void parse_tologin (int fd)
("'ladmin': Receiving a message for broadcast, but no map-server is online.\n");
else
{
- char buf[128];
+ uint8_t buf[128];
char message[RFIFOL (fd, 4) + 1]; // +1 to add a null terminated if not exist in the packet
int lp;
char *p;
@@ -2140,7 +2096,7 @@ void parse_tologin (int fd)
WBUFL (buf, 6) = dest_id;
mapif_sendall (buf, 10); // forward package to map servers
- for (i = 0; i < char_num; i++)
+ for (int i = 0; i < char_num; i++)
{
struct mmo_charstatus *c = char_dat + i;
struct storage *s = account2storage (c->account_id);
@@ -2180,7 +2136,7 @@ void parse_tologin (int fd)
if (RFIFOREST (fd) < 6)
return;
// Deletion of all characters of the account
- for (i = 0; i < char_num; i++)
+ for (int i = 0; i < char_num; i++)
{
if (char_dat[i].account_id == RFIFOL (fd, 2))
{
@@ -2260,12 +2216,12 @@ void parse_tologin (int fd)
if (RFIFOREST (fd) < 4 || RFIFOREST (fd) < RFIFOW (fd, 2))
return;
{
- char buf[32000];
+ uint8_t buf[32000];
if (gm_account != NULL)
free (gm_account);
CREATE (gm_account, struct gm_account, (RFIFOW (fd, 2) - 4) / 5);
GM_num = 0;
- for (i = 4; i < RFIFOW (fd, 2); i = i + 5)
+ for (int i = 4; i < RFIFOW (fd, 2); i = i + 5)
{
gm_account[GM_num].account_id = RFIFOL (fd, i);
gm_account[GM_num].level = (int) RFIFOB (fd, i + 4);
@@ -2323,6 +2279,7 @@ void parse_tologin (int fd)
//--------------------------------
// Map-server anti-freeze system
//--------------------------------
+static
void map_anti_freeze_system (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
int i;
@@ -2347,6 +2304,7 @@ void map_anti_freeze_system (timer_id tid, tick_t tick, custom_id_t id, custom_d
}
}
+static
void parse_frommap (int fd)
{
int i, j;
@@ -2875,7 +2833,8 @@ void parse_frommap (int fd)
}
}
-int search_mapserver (char *map)
+static
+int search_mapserver (const char *map)
{
int i, j;
char temp_map[16];
@@ -2911,6 +2870,7 @@ static int char_mapif_init (int fd)
//-----------------------------------------------------
// Test to know if an IP come from LAN or WAN. by [Yor]
//-----------------------------------------------------
+static
int lan_ip_check (unsigned char *p)
{
int i;
@@ -2933,6 +2893,7 @@ int lan_ip_check (unsigned char *p)
return lancheck;
}
+static
void parse_char (int fd)
{
int i, ch;
@@ -3072,12 +3033,8 @@ void parse_char (int fd)
case 0x66: // キャラ選択
if (!sd || RFIFOREST (fd) < 3)
return;
-
- char ip[16];
- unsigned char *sin_addr =
- (unsigned char *) &session[fd]->client_addr.sin_addr;
- sprintf (ip, "%d.%d.%d.%d", sin_addr[0], sin_addr[1],
- sin_addr[2], sin_addr[3]);
+ {
+ const char *ip = ip2str(session[fd]->client_addr.sin_addr);
// if we activated email creation and email is default email
if (email_creation != 0 && strcmp (sd->email, "a@a.com") == 0
@@ -3236,6 +3193,7 @@ void parse_char (int fd)
auth_fifo_pos++;
}
}
+ }
RFIFOSKIP (fd, 3);
break;
@@ -3449,8 +3407,8 @@ void parse_char (int fd)
if (server_fd[i] < 0)
break;
}
- if (i == MAX_MAP_SERVERS || strcmp (RFIFOP (fd, 2), userid)
- || strcmp (RFIFOP (fd, 26), passwd))
+ if (i == MAX_MAP_SERVERS || strcmp ((const char *)RFIFOP (fd, 2), userid)
+ || strcmp ((const char *)RFIFOP (fd, 26), passwd))
{
WFIFOB (fd, 2) = 3;
WFIFOSET (fd, 3);
@@ -3520,7 +3478,7 @@ void parse_char (int fd)
}
// 全てのMAPサーバーにデータ送信(送信したmap鯖の数を返す)
-int mapif_sendall (char *buf, unsigned int len)
+int mapif_sendall (const uint8_t *buf, unsigned int len)
{
int i, c;
@@ -3539,7 +3497,7 @@ int mapif_sendall (char *buf, unsigned int len)
}
// 自分以外の全てのMAPサーバーにデータ送信(送信したmap鯖の数を返す)
-int mapif_sendallwos (int sfd, unsigned char *buf, unsigned int len)
+int mapif_sendallwos (int sfd, const uint8_t *buf, unsigned int len)
{
int i, c;
@@ -3558,7 +3516,7 @@ int mapif_sendallwos (int sfd, unsigned char *buf, unsigned int len)
}
// MAPサーバーにデータ送信(map鯖生存確認有り)
-int mapif_send (int fd, unsigned char *buf, unsigned int len)
+int mapif_send (int fd, const uint8_t *buf, unsigned int len)
{
int i;
@@ -3577,10 +3535,11 @@ int mapif_send (int fd, unsigned char *buf, unsigned int len)
return 0;
}
+static
void send_users_tologin (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
int users = count_users ();
- char buf[16];
+ uint8_t buf[16];
if (login_fd > 0 && session[login_fd])
{
@@ -3595,6 +3554,7 @@ void send_users_tologin (timer_id tid, tick_t tick, custom_id_t id, custom_data_
mapif_sendall (buf, 6);
}
+static
void check_connect_login_server (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
if (login_fd <= 0 || session[login_fd] == NULL)
@@ -3624,26 +3584,10 @@ void check_connect_login_server (timer_id tid, tick_t tick, custom_id_t id, cust
}
}
-//----------------------------------------------------------
-// Return numerical value of a switch configuration by [Yor]
-// on/off, english, français, deutsch, español
-//----------------------------------------------------------
-int config_switch (const char *str)
-{
- if (strcasecmp (str, "on") == 0 || strcasecmp (str, "yes") == 0
- || strcasecmp (str, "oui") == 0 || strcasecmp (str, "ja") == 0
- || strcasecmp (str, "si") == 0)
- return 1;
- if (strcasecmp (str, "off") == 0 || strcasecmp (str, "no") == 0
- || strcasecmp (str, "non") == 0 || strcasecmp (str, "nein") == 0)
- return 0;
-
- return atoi (str);
-}
-
//-------------------------------------------
// Reading Lan Support configuration by [Yor]
//-------------------------------------------
+static
int lan_config_read (const char *lancfgName)
{
int j;
@@ -3761,6 +3705,7 @@ int lan_config_read (const char *lancfgName)
return 0;
}
+static
int char_config_read (const char *cfgName)
{
struct hostent *h = NULL;
diff --git a/src/char/char.hpp b/src/char/char.hpp
index 22b7678..f93e86b 100644
--- a/src/char/char.hpp
+++ b/src/char/char.hpp
@@ -18,14 +18,15 @@ struct mmo_map_server
char map[MAX_MAP_PER_SERVER][16];
};
-int search_character_index (char *character_name);
+int search_character_index (const char *character_name);
char *search_character_name (int index);
-int mapif_sendall (char *buf, unsigned int len);
-int mapif_sendallwos (int fd, unsigned char *buf, unsigned int len);
-int mapif_send (int fd, unsigned char *buf, unsigned int len);
+int mapif_sendall (const uint8_t *buf, unsigned int len);
+int mapif_sendallwos (int fd, const uint8_t *buf, unsigned int len);
+int mapif_send (int fd, const uint8_t *buf, unsigned int len);
-int char_log (char *fmt, ...);
+__attribute__((format(printf, 1, 2)))
+int char_log (const char *fmt, ...);
extern int autosave_interval;
diff --git a/src/char/int_guild.cpp b/src/char/int_guild.cpp
index fe9a95b..318297e 100644
--- a/src/char/int_guild.cpp
+++ b/src/char/int_guild.cpp
@@ -33,6 +33,7 @@ int mapif_guild_info (int fd, struct guild *g);
void guild_break_sub (db_key_t key, db_val_t data, va_list ap);
// ギルドデータの文字列への変換
+static
int inter_guild_tostr (char *str, struct guild *g)
{
int i, c, len;
@@ -76,7 +77,7 @@ int inter_guild_tostr (char *str, struct guild *g)
len += sprintf (str + len, "%d\t", c);
for (i = 0; i < MAX_GUILDALLIANCE; i++)
{
- struct guild_alliance *a = &g->alliance[i];
+ GuildAlliance *a = &g->alliance[i];
if (a->guild_id > 0)
len +=
sprintf (str + len, "%d,%d\t%s\t", a->guild_id, a->opposition,
@@ -90,7 +91,7 @@ int inter_guild_tostr (char *str, struct guild *g)
len += sprintf (str + len, "%d\t", c);
for (i = 0; i < MAX_GUILDEXPLUSION; i++)
{
- struct guild_explusion *e = &g->explusion[i];
+ GuildExpulsion *e = &g->explusion[i];
if (e->account_id > 0)
len += sprintf (str + len, "%d,%d,%d,%d\t%s\t%s\t%s#\t",
e->account_id, e->rsv1, e->rsv2, e->rsv3,
@@ -107,6 +108,7 @@ int inter_guild_tostr (char *str, struct guild *g)
}
// ギルドデータの文字列からの変換
+static
int inter_guild_fromstr (char *str, struct guild *g)
{
int i, j, c;
@@ -218,7 +220,7 @@ int inter_guild_fromstr (char *str, struct guild *g)
str = strchr (str + 1, '\t'); // 位置スキップ
for (i = 0; i < c; i++)
{
- struct guild_alliance *a = &g->alliance[i];
+ GuildAlliance *a = &g->alliance[i];
if (sscanf
(str + 1, "%d,%d\t%[^\t]\t", &tmp_int[0], &tmp_int[1],
tmp_str[0]) < 3)
@@ -237,7 +239,7 @@ int inter_guild_fromstr (char *str, struct guild *g)
str = strchr (str + 1, '\t'); // 位置スキップ
for (i = 0; i < c; i++)
{
- struct guild_explusion *e = &g->explusion[i];
+ GuildExpulsion *e = &g->explusion[i];
if (sscanf (str + 1, "%d,%d,%d,%d\t%[^\t]\t%[^\t]\t%[^\t]\t",
&tmp_int[0], &tmp_int[1], &tmp_int[2], &tmp_int[3],
tmp_str[0], tmp_str[1], tmp_str[2]) < 6)
@@ -271,6 +273,7 @@ int inter_guild_fromstr (char *str, struct guild *g)
}
// ギルド城データの文字列への変換
+static
int inter_guildcastle_tostr (char *str, struct guild_castle *gc)
{
int len;
@@ -287,6 +290,7 @@ int inter_guildcastle_tostr (char *str, struct guild_castle *gc)
}
// ギルド城データの文字列からの変換
+static
int inter_guildcastle_fromstr (char *str, struct guild_castle *gc)
{
int tmp_int[26];
@@ -398,6 +402,7 @@ int inter_guildcastle_fromstr (char *str, struct guild_castle *gc)
}
// ギルド関連データベース読み込み
+static
int inter_guild_readdb (void)
{
int i;
@@ -541,6 +546,7 @@ struct guild *inter_guild_search (int guild_id)
}
// ギルドデータのセーブ用
+static
void inter_guild_save_sub (db_key_t key, db_val_t data, va_list ap)
{
char line[16384];
@@ -552,6 +558,7 @@ void inter_guild_save_sub (db_key_t key, db_val_t data, va_list ap)
}
// ギルド城データのセーブ用
+static
void inter_castle_save_sub (db_key_t key, db_val_t data, va_list ap)
{
char line[16384];
@@ -592,6 +599,7 @@ int inter_guild_save (void)
}
// ギルド名検索用
+static
void search_guildname_sub (db_key_t key, db_val_t data, va_list ap)
{
struct guild *g = (struct guild *) data, **dst;
@@ -604,7 +612,8 @@ void search_guildname_sub (db_key_t key, db_val_t data, va_list ap)
}
// ギルド名検索
-struct guild *search_guildname (char *str)
+static
+struct guild *search_guildname (const char *str)
{
struct guild *g = NULL;
numdb_foreach (guild_db, search_guildname_sub, str, &g);
@@ -634,6 +643,7 @@ int guild_check_empty (struct guild *g)
}
// キャラの競合がないかチェック用
+static
void guild_check_conflict_sub (db_key_t key, db_val_t data, va_list ap)
{
struct guild *g = (struct guild *) data;
@@ -660,6 +670,7 @@ void guild_check_conflict_sub (db_key_t key, db_val_t data, va_list ap)
}
// キャラの競合がないかチェック
+static
int guild_check_conflict (int guild_id, int account_id, int char_id)
{
numdb_foreach (guild_db, guild_check_conflict_sub, guild_id, account_id,
@@ -668,6 +679,7 @@ int guild_check_conflict (int guild_id, int account_id, int char_id)
return 0;
}
+static
int guild_nextexp (int level)
{
if (level < 100)
@@ -677,6 +689,7 @@ int guild_nextexp (int level)
}
// ギルドスキルがあるか確認
+static
int guild_checkskill (struct guild *g, int id)
{
return g->skill[id - 10000].lv;
@@ -745,6 +758,7 @@ int guild_calcinfo (struct guild *g)
// map serverへの通信
// ギルド作成可否
+static
int mapif_guild_created (int fd, int account_id, struct guild *g)
{
WFIFOW (fd, 0) = 0x3830;
@@ -763,6 +777,7 @@ int mapif_guild_created (int fd, int account_id, struct guild *g)
}
// ギルド情報見つからず
+static
int mapif_guild_noinfo (int fd, int guild_id)
{
WFIFOW (fd, 0) = 0x3831;
@@ -793,6 +808,7 @@ int mapif_guild_info (int fd, struct guild *g)
}
// メンバ追加可否
+static
int mapif_guild_memberadded (int fd, int guild_id, int account_id,
int char_id, int flag)
{
@@ -807,6 +823,7 @@ int mapif_guild_memberadded (int fd, int guild_id, int account_id,
}
// 脱退/追放通知
+static
int mapif_guild_leaved (int guild_id, int account_id, int char_id, int flag,
const char *name, const char *mes)
{
@@ -827,6 +844,7 @@ int mapif_guild_leaved (int guild_id, int account_id, int char_id, int flag,
}
// オンライン状態とLv更新通知
+static
int mapif_guild_memberinfoshort (struct guild *g, int idx)
{
unsigned char buf[19];
@@ -857,7 +875,8 @@ int mapif_guild_broken (int guild_id, int flag)
}
// ギルド内発言
-int mapif_guild_message (int guild_id, int account_id, char *mes, int len)
+static
+int mapif_guild_message (int guild_id, int account_id, const char *mes, int len)
{
unsigned char buf[len + 12];
@@ -887,6 +906,7 @@ int mapif_guild_basicinfochanged (int guild_id, int type, const void *data,
}
// ギルドメンバ情報変更通知
+static
int mapif_guild_memberinfochanged (int guild_id, int account_id, int char_id,
int type, const void *data, int len)
{
@@ -905,6 +925,7 @@ int mapif_guild_memberinfochanged (int guild_id, int account_id, int char_id,
}
// ギルドスキルアップ通知
+static
int mapif_guild_skillupack (int guild_id, int skill_num, int account_id)
{
unsigned char buf[14];
@@ -919,6 +940,7 @@ int mapif_guild_skillupack (int guild_id, int skill_num, int account_id)
}
// ギルド同盟/敵対通知
+static
int mapif_guild_alliance (int guild_id1, int guild_id2, int account_id1,
int account_id2, int flag, const char *name1,
const char *name2)
@@ -939,6 +961,7 @@ int mapif_guild_alliance (int guild_id1, int guild_id2, int account_id1,
}
// ギルド役職変更通知
+static
int mapif_guild_position (struct guild *g, int idx)
{
unsigned char buf[sizeof (struct guild_position) + 12];
@@ -955,6 +978,7 @@ int mapif_guild_position (struct guild *g, int idx)
}
// ギルド告知変更通知
+static
int mapif_guild_notice (struct guild *g)
{
unsigned char buf[186];
@@ -969,6 +993,7 @@ int mapif_guild_notice (struct guild *g)
}
// ギルドエンブレム変更通知
+static
int mapif_guild_emblem (struct guild *g)
{
unsigned char buf[2048];
@@ -983,6 +1008,7 @@ int mapif_guild_emblem (struct guild *g)
return 0;
}
+static
int mapif_guild_castle_dataload (int castle_id, int index, int value)
{
unsigned char buf[9];
@@ -996,6 +1022,7 @@ int mapif_guild_castle_dataload (int castle_id, int index, int value)
return 0;
}
+static
int mapif_guild_castle_datasave (int castle_id, int index, int value)
{
unsigned char buf[9];
@@ -1009,6 +1036,7 @@ int mapif_guild_castle_datasave (int castle_id, int index, int value)
return 0;
}
+static
void mapif_guild_castle_alldataload_sub (db_key_t key, db_val_t data, va_list ap)
{
int fd = va_arg (ap, int);
@@ -1019,6 +1047,7 @@ void mapif_guild_castle_alldataload_sub (db_key_t key, db_val_t data, va_list ap
(*p) += sizeof (struct guild_castle);
}
+static
int mapif_guild_castle_alldataload (int fd)
{
int len = 4;
@@ -1035,7 +1064,8 @@ int mapif_guild_castle_alldataload (int fd)
// map serverからの通信
// ギルド作成要求
-int mapif_parse_CreateGuild (int fd, int account_id, char *name,
+static
+int mapif_parse_CreateGuild (int fd, int account_id, const char *name,
struct guild_member *master)
{
struct guild *g;
@@ -1087,6 +1117,7 @@ int mapif_parse_CreateGuild (int fd, int account_id, char *name,
}
// ギルド情報要求
+static
int mapif_parse_GuildInfo (int fd, int guild_id)
{
struct guild *g = (struct guild *)numdb_search (guild_db, guild_id);
@@ -1102,6 +1133,7 @@ int mapif_parse_GuildInfo (int fd, int guild_id)
}
// ギルドメンバ追加要求
+static
int mapif_parse_GuildAddMember (int fd, int guild_id, struct guild_member *m)
{
struct guild *g = (struct guild *)numdb_search (guild_db, guild_id);
@@ -1181,6 +1213,7 @@ int mapif_parse_GuildLeave (int fd, int guild_id, int account_id, int char_id,
}
// オンライン/Lv更新
+static
int mapif_parse_GuildChangeMemberInfoShort (int fd, int guild_id,
int account_id, int char_id,
int online, int lv, int pc_class)
@@ -1231,6 +1264,7 @@ void guild_break_sub (db_key_t key, db_val_t data, va_list ap)
}
// ギルド解散要求
+static
int mapif_parse_BreakGuild (int fd, int guild_id)
{
struct guild *g = (struct guild *)numdb_search (guild_db, guild_id);
@@ -1249,13 +1283,15 @@ int mapif_parse_BreakGuild (int fd, int guild_id)
}
// ギルドメッセージ送信
-int mapif_parse_GuildMessage (int fd, int guild_id, int account_id, char *mes,
+static
+int mapif_parse_GuildMessage (int fd, int guild_id, int account_id, const char *mes,
int len)
{
return mapif_guild_message (guild_id, account_id, mes, len);
}
// ギルド基本データ変更要求
+static
int mapif_parse_GuildBasicInfoChange (int fd, int guild_id, int type,
const char *data, int len)
{
@@ -1288,6 +1324,7 @@ int mapif_parse_GuildBasicInfoChange (int fd, int guild_id, int type,
}
// ギルドメンバデータ変更要求
+static
int mapif_parse_GuildMemberInfoChange (int fd, int guild_id, int account_id,
int char_id, int type,
const char *data, int len)
@@ -1332,6 +1369,7 @@ int mapif_parse_GuildMemberInfoChange (int fd, int guild_id, int account_id,
}
// ギルド役職名変更要求
+static
int mapif_parse_GuildPosition (int fd, int guild_id, int idx,
struct guild_position *p)
{
@@ -1349,6 +1387,7 @@ int mapif_parse_GuildPosition (int fd, int guild_id, int idx,
}
// ギルドスキルアップ要求
+static
int mapif_parse_GuildSkillUp (int fd, int guild_id, int skill_num,
int account_id)
{
@@ -1372,6 +1411,7 @@ int mapif_parse_GuildSkillUp (int fd, int guild_id, int skill_num,
}
// ギルド同盟要求
+static
int mapif_parse_GuildAlliance (int fd, int guild_id1, int guild_id2,
int account_id1, int account_id2, int flag)
{
@@ -1417,6 +1457,7 @@ int mapif_parse_GuildAlliance (int fd, int guild_id1, int guild_id2,
}
// ギルド告知変更要求
+static
int mapif_parse_GuildNotice (int fd, int guild_id, const char *mes1,
const char *mes2)
{
@@ -1430,6 +1471,7 @@ int mapif_parse_GuildNotice (int fd, int guild_id, const char *mes1,
}
// ギルドエンブレム変更要求
+static
int mapif_parse_GuildEmblem (int fd, int len, int guild_id, int dummy,
const char *data)
{
@@ -1443,6 +1485,7 @@ int mapif_parse_GuildEmblem (int fd, int len, int guild_id, int dummy,
return mapif_guild_emblem (g);
}
+static
int mapif_parse_GuildCastleDataLoad (int fd, int castle_id, int index)
{
struct guild_castle *gc = (struct guild_castle *)numdb_search (castle_db, castle_id);
@@ -1537,6 +1580,7 @@ int mapif_parse_GuildCastleDataLoad (int fd, int castle_id, int index)
return 0;
}
+static
int mapif_parse_GuildCastleDataSave (int fd, int castle_id, int index,
int value)
{
@@ -1642,6 +1686,7 @@ int mapif_parse_GuildCastleDataSave (int fd, int castle_id, int index,
}
// ギルドチェック要求
+static
int mapif_parse_GuildCheck (int fd, int guild_id, int account_id, int char_id)
{
return guild_check_conflict (guild_id, account_id, 0 /*char_id*/);
@@ -1657,7 +1702,7 @@ int inter_guild_parse_frommap (int fd)
switch (RFIFOW (fd, 0))
{
case 0x3030:
- mapif_parse_CreateGuild (fd, RFIFOL (fd, 4), RFIFOP (fd, 8),
+ mapif_parse_CreateGuild (fd, RFIFOL (fd, 4), (const char *)RFIFOP (fd, 8),
(struct guild_member *) RFIFOP (fd, 32));
break;
case 0x3031:
@@ -1671,7 +1716,7 @@ int inter_guild_parse_frommap (int fd)
case 0x3034:
mapif_parse_GuildLeave (fd, RFIFOL (fd, 2), RFIFOL (fd, 6),
RFIFOL (fd, 10), RFIFOB (fd, 14),
- RFIFOP (fd, 15));
+ (const char *)RFIFOP (fd, 15));
break;
case 0x3035:
mapif_parse_GuildChangeMemberInfoShort (fd, RFIFOL (fd, 2),
@@ -1686,7 +1731,7 @@ int inter_guild_parse_frommap (int fd)
break;
case 0x3037:
mapif_parse_GuildMessage (fd, RFIFOL (fd, 4), RFIFOL (fd, 8),
- RFIFOP (fd, 12), RFIFOW (fd, 2) - 12);
+ (const char *)RFIFOP (fd, 12), RFIFOW (fd, 2) - 12);
break;
case 0x3038:
mapif_parse_GuildCheck (fd, RFIFOL (fd, 2), RFIFOL (fd, 6),
@@ -1694,14 +1739,14 @@ int inter_guild_parse_frommap (int fd)
break;
case 0x3039:
mapif_parse_GuildBasicInfoChange (fd, RFIFOL (fd, 4),
- RFIFOW (fd, 8), RFIFOP (fd, 10),
+ RFIFOW (fd, 8), (const char *)RFIFOP (fd, 10),
RFIFOW (fd, 2) - 10);
break;
case 0x303A:
mapif_parse_GuildMemberInfoChange (fd, RFIFOL (fd, 4),
RFIFOL (fd, 8), RFIFOL (fd,
12),
- RFIFOW (fd, 16), RFIFOP (fd,
+ RFIFOW (fd, 16), (const char *)RFIFOP (fd,
18),
RFIFOW (fd, 2) - 18);
break;
@@ -1720,12 +1765,12 @@ int inter_guild_parse_frommap (int fd)
RFIFOB (fd, 18));
break;
case 0x303E:
- mapif_parse_GuildNotice (fd, RFIFOL (fd, 2), RFIFOP (fd, 6),
- RFIFOP (fd, 66));
+ mapif_parse_GuildNotice (fd, RFIFOL (fd, 2), (const char *)RFIFOP (fd, 6),
+ (const char *)RFIFOP (fd, 66));
break;
case 0x303F:
mapif_parse_GuildEmblem (fd, RFIFOW (fd, 2) - 12, RFIFOL (fd, 4),
- RFIFOL (fd, 8), RFIFOP (fd, 12));
+ RFIFOL (fd, 8), (const char *)RFIFOP (fd, 12));
break;
case 0x3040:
mapif_parse_GuildCastleDataLoad (fd, RFIFOW (fd, 2),
diff --git a/src/char/int_party.cpp b/src/char/int_party.cpp
index 7d0e0ce..6602ce5 100644
--- a/src/char/int_party.cpp
+++ b/src/char/int_party.cpp
@@ -20,6 +20,7 @@ int party_check_empty (struct party *p);
int mapif_parse_PartyLeave (int fd, int party_id, int account_id);
// パーティデータの文字列への変換
+static
int inter_party_tostr (char *str, struct party *p)
{
int i, len;
@@ -39,6 +40,7 @@ int inter_party_tostr (char *str, struct party *p)
}
// パーティデータの文字列からの変換
+static
int inter_party_fromstr (char *str, struct party *p)
{
int i, j;
@@ -133,6 +135,7 @@ int inter_party_init (void)
}
// パーティーデータのセーブ用
+static
void inter_party_save_sub (db_key_t key, db_val_t data, va_list ap)
{
char line[8192];
@@ -164,6 +167,7 @@ int inter_party_save (void)
}
// パーティ名検索用
+static
void search_partyname_sub (db_key_t key, db_val_t data, va_list ap)
{
struct party *p = (struct party *) data, **dst;
@@ -176,7 +180,8 @@ void search_partyname_sub (db_key_t key, db_val_t data, va_list ap)
}
// パーティ名検索
-struct party *search_partyname (char *str)
+static
+struct party *search_partyname (const char *str)
{
struct party *p = NULL;
numdb_foreach (party_db, search_partyname_sub, str, &p);
@@ -185,6 +190,7 @@ struct party *search_partyname (char *str)
}
// EXP公平分配できるかチェック
+static
int party_check_exp_share (struct party *p)
{
int i;
@@ -228,6 +234,7 @@ int party_check_empty (struct party *p)
}
// キャラの競合がないかチェック用
+static
void party_check_conflict_sub (db_key_t key, db_val_t data, va_list ap)
{
struct party *p = (struct party *) data;
@@ -255,7 +262,8 @@ void party_check_conflict_sub (db_key_t key, db_val_t data, va_list ap)
}
// キャラの競合がないかチェック
-int party_check_conflict (int party_id, int account_id, char *nick)
+static
+int party_check_conflict (int party_id, int account_id, const char *nick)
{
numdb_foreach (party_db, party_check_conflict_sub, party_id, account_id,
nick);
@@ -267,6 +275,7 @@ int party_check_conflict (int party_id, int account_id, char *nick)
// map serverへの通信
// パーティ作成可否
+static
int mapif_party_created (int fd, int account_id, struct party *p)
{
WFIFOW (fd, 0) = 0x3820;
@@ -290,6 +299,7 @@ int mapif_party_created (int fd, int account_id, struct party *p)
}
// パーティ情報見つからず
+static
int mapif_party_noinfo (int fd, int party_id)
{
WFIFOW (fd, 0) = 0x3821;
@@ -302,6 +312,7 @@ int mapif_party_noinfo (int fd, int party_id)
}
// パーティ情報まとめ送り
+static
int mapif_party_info (int fd, struct party *p)
{
unsigned char buf[4 + sizeof (struct party)];
@@ -319,6 +330,7 @@ int mapif_party_info (int fd, struct party *p)
}
// パーティメンバ追加可否
+static
int mapif_party_memberadded (int fd, int party_id, int account_id, int flag)
{
WFIFOW (fd, 0) = 0x3822;
@@ -331,6 +343,7 @@ int mapif_party_memberadded (int fd, int party_id, int account_id, int flag)
}
// パーティ設定変更通知
+static
int mapif_party_optionchanged (int fd, struct party *p, int account_id,
int flag)
{
@@ -353,6 +366,7 @@ int mapif_party_optionchanged (int fd, struct party *p, int account_id,
}
// パーティ脱退通知
+static
int mapif_party_leaved (int party_id, int account_id, char *name)
{
unsigned char buf[34];
@@ -368,6 +382,7 @@ int mapif_party_leaved (int party_id, int account_id, char *name)
}
// パーティマップ更新通知
+static
int mapif_party_membermoved (struct party *p, int idx)
{
unsigned char buf[29];
@@ -397,7 +412,8 @@ int mapif_party_broken (int party_id, int flag)
}
// パーティ内発言
-int mapif_party_message (int party_id, int account_id, char *mes, int len)
+static
+int mapif_party_message (int party_id, int account_id, const char *mes, int len)
{
unsigned char buf[len + 12];
@@ -415,8 +431,9 @@ int mapif_party_message (int party_id, int account_id, char *mes, int len)
// map serverからの通信
// パーティ
-int mapif_parse_CreateParty (int fd, int account_id, char *name, char *nick,
- char *map, int lv)
+static
+int mapif_parse_CreateParty (int fd, int account_id, const char *name, const char *nick,
+ const char *map, int lv)
{
struct party *p;
int i;
@@ -458,6 +475,7 @@ int mapif_parse_CreateParty (int fd, int account_id, char *name, char *nick,
}
// パーティ情報要求
+static
int mapif_parse_PartyInfo (int fd, int party_id)
{
struct party *p = (struct party *)numdb_search (party_db, party_id);
@@ -470,8 +488,9 @@ int mapif_parse_PartyInfo (int fd, int party_id)
}
// パーティ追加要求
+static
int mapif_parse_PartyAddMember (int fd, int party_id, int account_id,
- char *nick, char *map, int lv)
+ const char *nick, const char *map, int lv)
{
struct party *p = (struct party *)numdb_search (party_db, party_id);
if (p == NULL)
@@ -511,6 +530,7 @@ int mapif_parse_PartyAddMember (int fd, int party_id, int account_id,
}
// パーティー設定変更要求
+static
int mapif_parse_PartyChangeOption (int fd, int party_id, int account_id,
int exp, int item)
{
@@ -556,8 +576,9 @@ int mapif_parse_PartyLeave (int fd, int party_id, int account_id)
}
// パーティマップ更新要求
+static
int mapif_parse_PartyChangeMap (int fd, int party_id, int account_id,
- char *map, int online, int lv)
+ const char *map, int online, int lv)
{
struct party *p = (struct party *)numdb_search (party_db, party_id);
if (p == NULL)
@@ -589,6 +610,7 @@ int mapif_parse_PartyChangeMap (int fd, int party_id, int account_id,
}
// パーティ解散要求
+static
int mapif_parse_BreakParty (int fd, int party_id)
{
struct party *p = (struct party *)numdb_search (party_db, party_id);
@@ -602,14 +624,16 @@ int mapif_parse_BreakParty (int fd, int party_id)
}
// パーティメッセージ送信
-int mapif_parse_PartyMessage (int fd, int party_id, int account_id, char *mes,
+static
+int mapif_parse_PartyMessage (int fd, int party_id, int account_id, const char *mes,
int len)
{
return mapif_party_message (party_id, account_id, mes, len);
}
// パーティチェック要求
-int mapif_parse_PartyCheck (int fd, int party_id, int account_id, char *nick)
+static
+int mapif_parse_PartyCheck (int fd, int party_id, int account_id, const char *nick)
{
return party_check_conflict (party_id, account_id, nick);
}
@@ -624,8 +648,8 @@ int inter_party_parse_frommap (int fd)
switch (RFIFOW (fd, 0))
{
case 0x3020:
- mapif_parse_CreateParty (fd, RFIFOL (fd, 2), RFIFOP (fd, 6),
- RFIFOP (fd, 30), RFIFOP (fd, 54),
+ mapif_parse_CreateParty (fd, RFIFOL (fd, 2), (const char *)RFIFOP (fd, 6),
+ (const char *)RFIFOP (fd, 30), (const char *)RFIFOP (fd, 54),
RFIFOW (fd, 70));
break;
case 0x3021:
@@ -633,7 +657,7 @@ int inter_party_parse_frommap (int fd)
break;
case 0x3022:
mapif_parse_PartyAddMember (fd, RFIFOL (fd, 2), RFIFOL (fd, 6),
- RFIFOP (fd, 10), RFIFOP (fd, 34),
+ (const char *)RFIFOP (fd, 10), (const char *)RFIFOP (fd, 34),
RFIFOW (fd, 50));
break;
case 0x3023:
@@ -645,7 +669,7 @@ int inter_party_parse_frommap (int fd)
break;
case 0x3025:
mapif_parse_PartyChangeMap (fd, RFIFOL (fd, 2), RFIFOL (fd, 6),
- RFIFOP (fd, 10), RFIFOB (fd, 26),
+ (const char *)RFIFOP (fd, 10), RFIFOB (fd, 26),
RFIFOW (fd, 27));
break;
case 0x3026:
@@ -653,11 +677,11 @@ int inter_party_parse_frommap (int fd)
break;
case 0x3027:
mapif_parse_PartyMessage (fd, RFIFOL (fd, 4), RFIFOL (fd, 8),
- RFIFOP (fd, 12), RFIFOW (fd, 2) - 12);
+ (const char *)RFIFOP (fd, 12), RFIFOW (fd, 2) - 12);
break;
case 0x3028:
mapif_parse_PartyCheck (fd, RFIFOL (fd, 2), RFIFOL (fd, 6),
- RFIFOP (fd, 10));
+ (const char *)RFIFOP (fd, 10));
break;
default:
return 0;
diff --git a/src/char/int_storage.cpp b/src/char/int_storage.cpp
index b197213..a962b92 100644
--- a/src/char/int_storage.cpp
+++ b/src/char/int_storage.cpp
@@ -21,6 +21,7 @@ static struct dbt *storage_db;
static struct dbt *guild_storage_db;
// 倉庫データを文字列に変換
+static
int storage_tostr (char *str, struct storage *p)
{
int i, f = 0;
@@ -49,6 +50,7 @@ int storage_tostr (char *str, struct storage *p)
}
// 文字列を倉庫データに変換
+static
int storage_fromstr (char *str, struct storage *p)
{
int tmp_int[256];
@@ -118,6 +120,7 @@ int storage_fromstr (char *str, struct storage *p)
return 0;
}
+static
int guild_storage_tostr (char *str, struct guild_storage *p)
{
int i, f = 0;
@@ -145,6 +148,7 @@ int guild_storage_tostr (char *str, struct guild_storage *p)
return 0;
}
+static
int guild_storage_fromstr (char *str, struct guild_storage *p)
{
int tmp_int[256];
@@ -229,6 +233,7 @@ struct storage *account2storage (int account_id)
return s;
}
+static
struct guild_storage *guild2storage (int guild_id)
{
struct guild_storage *gs = NULL;
@@ -314,6 +319,7 @@ int inter_storage_init (void)
return 0;
}
+static
void storage_db_final (db_key_t k, db_val_t data, va_list ap)
{
struct storage *p = (struct storage *) data;
@@ -321,6 +327,7 @@ void storage_db_final (db_key_t k, db_val_t data, va_list ap)
free (p);
}
+static
void guild_storage_db_final (db_key_t k, db_val_t data, va_list ap)
{
struct guild_storage *p = (struct guild_storage *) data;
@@ -335,6 +342,7 @@ void inter_storage_final (void)
return;
}
+static
void inter_storage_save_sub (db_key_t key, db_val_t data, va_list ap)
{
char line[65536];
@@ -367,6 +375,7 @@ int inter_storage_save (void)
return 0;
}
+static
void inter_guild_storage_save_sub (db_key_t key, db_val_t data, va_list ap)
{
char line[65536];
@@ -434,6 +443,7 @@ int inter_guild_storage_delete (int guild_id)
// map serverへの通信
// 倉庫データの送信
+static
int mapif_load_storage (int fd, int account_id)
{
struct storage *s = account2storage (account_id);
@@ -446,6 +456,7 @@ int mapif_load_storage (int fd, int account_id)
}
// 倉庫データ保存完了送信
+static
int mapif_save_storage_ack (int fd, int account_id)
{
WFIFOW (fd, 0) = 0x3811;
@@ -455,6 +466,7 @@ int mapif_save_storage_ack (int fd, int account_id)
return 0;
}
+static
int mapif_load_guild_storage (int fd, int account_id, int guild_id)
{
struct guild_storage *gs = guild2storage (guild_id);
@@ -477,6 +489,7 @@ int mapif_load_guild_storage (int fd, int account_id, int guild_id)
return 0;
}
+static
int mapif_save_guild_storage_ack (int fd, int account_id, int guild_id,
int fail)
{
@@ -492,6 +505,7 @@ int mapif_save_guild_storage_ack (int fd, int account_id, int guild_id,
// map serverからの通信
// 倉庫データ要求受信
+static
int mapif_parse_LoadStorage (int fd)
{
mapif_load_storage (fd, RFIFOL (fd, 2));
@@ -499,6 +513,7 @@ int mapif_parse_LoadStorage (int fd)
}
// 倉庫データ受信&保存
+static
int mapif_parse_SaveStorage (int fd)
{
struct storage *s;
@@ -518,12 +533,14 @@ int mapif_parse_SaveStorage (int fd)
return 0;
}
+static
int mapif_parse_LoadGuildStorage (int fd)
{
mapif_load_guild_storage (fd, RFIFOL (fd, 2), RFIFOL (fd, 6));
return 0;
}
+static
int mapif_parse_SaveGuildStorage (int fd)
{
struct guild_storage *gs;
diff --git a/src/char/inter.cpp b/src/char/inter.cpp
index af95a2d..7752cb4 100644
--- a/src/char/inter.cpp
+++ b/src/char/inter.cpp
@@ -68,6 +68,7 @@ static int wis_dellist[WISDELLIST_MAX], wis_delnum;
//--------------------------------------------------------
// アカウント変数を文字列へ変換
+static
int inter_accreg_tostr (char *str, struct accreg *reg)
{
int j;
@@ -83,6 +84,7 @@ int inter_accreg_tostr (char *str, struct accreg *reg)
}
// アカウント変数を文字列から変換
+static
int inter_accreg_fromstr (const char *str, struct accreg *reg)
{
int j, v, n;
@@ -106,6 +108,7 @@ int inter_accreg_fromstr (const char *str, struct accreg *reg)
}
// アカウント変数の読み込み
+static
int inter_accreg_init (void)
{
char line[8192];
@@ -140,6 +143,7 @@ int inter_accreg_init (void)
}
// アカウント変数のセーブ用
+static
void inter_accreg_save_sub (db_key_t key, db_val_t data, va_list ap)
{
char line[8192];
@@ -155,6 +159,7 @@ void inter_accreg_save_sub (db_key_t key, db_val_t data, va_list ap)
}
// アカウント変数のセーブ
+static
int inter_accreg_save (void)
{
FILE *fp;
@@ -179,6 +184,7 @@ int inter_accreg_save (void)
* 設定ファイルを読み込む
*------------------------------------------
*/
+static
int inter_config_read (const char *cfgName)
{
char line[1024], w1[1024], w2[1024];
@@ -244,7 +250,7 @@ int inter_config_read (const char *cfgName)
}
// ログ書き出し
-int inter_log (char *fmt, ...)
+int inter_log (const char *fmt, ...)
{
FILE *logfp;
va_list ap;
@@ -300,6 +306,7 @@ int inter_mapif_init (int fd)
// sended packets to map-server
// GMメッセージ送信
+static
int mapif_GMmessage (unsigned char *mes, int len)
{
unsigned char buf[len];
@@ -314,6 +321,7 @@ int mapif_GMmessage (unsigned char *mes, int len)
}
// Wisp/page transmission to all map-server
+static
int mapif_wis_message (struct WisData *wd)
{
unsigned char buf[56 + wd->len];
@@ -330,6 +338,7 @@ int mapif_wis_message (struct WisData *wd)
}
// Wisp/page transmission result to map-server
+static
int mapif_wis_end (struct WisData *wd, int flag)
{
unsigned char buf[27];
@@ -344,6 +353,7 @@ int mapif_wis_end (struct WisData *wd, int flag)
}
// アカウント変数送信
+static
int mapif_account_reg (int fd, unsigned char *src)
{
unsigned char buf[WBUFW (src, 2)];
@@ -356,6 +366,7 @@ int mapif_account_reg (int fd, unsigned char *src)
}
// アカウント変数要求返信
+static
int mapif_account_reg_reply (int fd, int account_id)
{
struct accreg *reg = (struct accreg *)numdb_search (accreg_db, account_id);
@@ -384,6 +395,7 @@ int mapif_account_reg_reply (int fd, int account_id)
//--------------------------------------------------------
// Existence check of WISP data
+static
void check_ttl_wisdata_sub (db_key_t key, db_val_t data, va_list ap)
{
unsigned long tick;
@@ -395,6 +407,7 @@ void check_ttl_wisdata_sub (db_key_t key, db_val_t data, va_list ap)
wis_dellist[wis_delnum++] = wd->id;
}
+static
int check_ttl_wisdata (void)
{
unsigned long tick = gettick ();
@@ -424,6 +437,7 @@ int check_ttl_wisdata (void)
// received packets from map-server
// GMメッセージ送信
+static
int mapif_parse_GMmessage (int fd)
{
mapif_GMmessage (RFIFOP (fd, 4), RFIFOW (fd, 2));
@@ -432,6 +446,7 @@ int mapif_parse_GMmessage (int fd)
}
// Wisp/page request to send
+static
int mapif_parse_WisRequest (int fd)
{
struct WisData *wd;
@@ -450,7 +465,7 @@ int mapif_parse_WisRequest (int fd)
}
// search if character exists before to ask all map-servers
- if ((index = search_character_index (RFIFOP (fd, 28))) == -1)
+ if ((index = search_character_index ((const char *)RFIFOP (fd, 28))) == -1)
{
unsigned char buf[27];
WBUFW (buf, 0) = 0x3802;
@@ -463,9 +478,9 @@ int mapif_parse_WisRequest (int fd)
{
// to be sure of the correct name, rewrite it
memset (RFIFOP (fd, 28), 0, 24);
- strncpy (RFIFOP (fd, 28), search_character_name (index), 24);
+ strncpy ((char *)RFIFOP (fd, 28), search_character_name (index), 24);
// if source is destination, don't ask other servers.
- if (strcmp (RFIFOP (fd, 4), RFIFOP (fd, 28)) == 0)
+ if (strcmp ((const char *)RFIFOP (fd, 4), (const char *)RFIFOP (fd, 28)) == 0)
{
unsigned char buf[27];
WBUFW (buf, 0) = 0x3802;
@@ -496,6 +511,7 @@ int mapif_parse_WisRequest (int fd)
}
// Wisp/page transmission result
+static
int mapif_parse_WisReply (int fd)
{
int id = RFIFOL (fd, 2), flag = RFIFOB (fd, 6);
@@ -515,6 +531,7 @@ int mapif_parse_WisReply (int fd)
}
// Received wisp message from map-server for ALL gm (just copy the message and resends it to ALL map-servers)
+static
int mapif_parse_WisToGM (int fd)
{
unsigned char buf[RFIFOW (fd, 2)]; // 0x3003/0x3803 <packet_len>.w <wispname>.24B <min_gm_level>.w <message>.?B
@@ -527,6 +544,7 @@ int mapif_parse_WisToGM (int fd)
}
// アカウント変数保存要求
+static
int mapif_parse_AccReg (int fd)
{
int j, p;
@@ -553,6 +571,7 @@ int mapif_parse_AccReg (int fd)
}
// アカウント変数送信要求
+static
int mapif_parse_AccRegRequest (int fd)
{
// printf("mapif: accreg request\n");
diff --git a/src/char/inter.hpp b/src/char/inter.hpp
index 769324c..56960be 100644
--- a/src/char/inter.hpp
+++ b/src/char/inter.hpp
@@ -9,7 +9,8 @@ int inter_mapif_init (int fd);
int inter_check_length (int fd, int length);
-int inter_log (char *fmt, ...);
+__attribute__((format(printf, 1, 2)))
+int inter_log (const char *fmt, ...);
#define inter_cfgName "conf/inter_athena.conf"
diff --git a/src/common/GNUmakefile b/src/common/GNUmakefile
index 555f81e..d8d841f 100644
--- a/src/common/GNUmakefile
+++ b/src/common/GNUmakefile
@@ -1,7 +1,7 @@
.SUFFIXES:
all:
- make -C ../.. common
+ ${MAKE} -C ../.. common
clean:
rm -r ../../obj/common/
%::
- make -C ../.. obj/common/$@
+ ${MAKE} -C ../.. obj/common/$@
diff --git a/src/common/core.cpp b/src/common/core.cpp
index 38b2260..db26e31 100644
--- a/src/common/core.cpp
+++ b/src/common/core.cpp
@@ -11,10 +11,6 @@
#include "mt_rand.hpp"
#include "nullpo.hpp"
-/// Defined by each server
-extern int do_init (int, char **);
-extern void term_func (void);
-
// Added by Gabuzomeu
//
// This is an implementation of signal() using sigaction() for portability.
@@ -22,7 +18,7 @@ extern void term_func (void);
// Programming in the UNIX Environment_.
//
typedef void (*sigfunc)(int);
-sigfunc compat_signal (int signo, sigfunc func)
+static sigfunc compat_signal (int signo, sigfunc func)
{
struct sigaction sact, oact;
diff --git a/src/common/db.hpp b/src/common/db.hpp
index 145ba13..62125d8 100644
--- a/src/common/db.hpp
+++ b/src/common/db.hpp
@@ -22,6 +22,9 @@ typedef union db_key_t
char *ms __attribute__((deprecated));
const char* s;
numdb_key_t i;
+
+ db_key_t(numdb_key_t n) : i(n) {}
+ db_key_t(const char * z) : s(z) {}
} db_key_t;
typedef void* db_val_t;
typedef uint32_t hash_t;
diff --git a/src/common/grfio.cpp b/src/common/grfio.cpp
index 1b89b18..dd1e707 100644
--- a/src/common/grfio.cpp
+++ b/src/common/grfio.cpp
@@ -29,7 +29,9 @@ static uint16_t filelist_entrys = 0;
static uint16_t filelist_maxentry = 0;
/// First index of the given hash, into the filelist[] array
-static int16_t filelist_hash[256] = {[0 ... 255] = -1};
+#define l -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
+static int16_t filelist_hash[256] = {l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l};
+#undef l
/// Hash a filename
static uint8_t filehash (const char *fname)
@@ -45,6 +47,7 @@ static uint8_t filehash (const char *fname)
}
/// Find the filelist entry for the given filename, or NULL if it is not
+static
FILELIST *filelist_find (const char *fname)
{
int16_t index = filelist_hash[filehash (fname)];
@@ -98,6 +101,7 @@ static FILELIST *filelist_modify (FILELIST * entry)
/// Change fname data/*.gat to lfname data/*.wlk
// TODO even if the file exists, don't keep reopening it every time one loads
+static
void grfio_resnametable (const char *fname, char *lfname)
{
char restable[] = "data/resnametable.txt";
diff --git a/src/common/md5calc.cpp b/src/common/md5calc.cpp
index f00861d..b0f8e5f 100644
--- a/src/common/md5calc.cpp
+++ b/src/common/md5calc.cpp
@@ -309,31 +309,26 @@ bool pass_ok(const char *password, const char *crypted) {
// [M|h]ashes up an IP address and a secret key
// to return a hopefully unique masked IP.
-in_addr_t MD5_ip(char *secret, in_addr_t ip)
+struct in_addr MD5_ip(char *secret, struct in_addr ip)
{
char ipbuf[32];
uint8_t obuf[16];
union {
- struct bytes {
- uint8_t b1;
- uint8_t b2;
- uint8_t b3;
- uint8_t b4;
- } bytes;
- in_addr_t ip;
+ uint8_t bytes[4];
+ struct in_addr ip;
} conv;
// MD5sum a secret + the IP address
memset(&ipbuf, 0, sizeof(ipbuf));
- snprintf(ipbuf, sizeof(ipbuf), "%lu%s", (unsigned long)ip, secret);
+ snprintf(ipbuf, sizeof(ipbuf), "%u%s", ip.s_addr, secret);
/// TODO stop it from being a cstring
MD5_to_bin(MD5_from_cstring(ipbuf), obuf);
- // Fold the md5sum to 32 bits, pack the bytes to an in_addr_t
- conv.bytes.b1 = obuf[0] ^ obuf[1] ^ obuf[8] ^ obuf[9];
- conv.bytes.b2 = obuf[2] ^ obuf[3] ^ obuf[10] ^ obuf[11];
- conv.bytes.b3 = obuf[4] ^ obuf[5] ^ obuf[12] ^ obuf[13];
- conv.bytes.b4 = obuf[6] ^ obuf[7] ^ obuf[14] ^ obuf[15];
+ // Fold the md5sum to 32 bits, pack the bytes to an in_addr
+ conv.bytes[0] = obuf[0] ^ obuf[1] ^ obuf[8] ^ obuf[9];
+ conv.bytes[1] = obuf[2] ^ obuf[3] ^ obuf[10] ^ obuf[11];
+ conv.bytes[2] = obuf[4] ^ obuf[5] ^ obuf[12] ^ obuf[13];
+ conv.bytes[3] = obuf[6] ^ obuf[7] ^ obuf[14] ^ obuf[15];
return conv.ip;
}
diff --git a/src/common/md5calc.hpp b/src/common/md5calc.hpp
index 1dde2ed..2dfaecb 100644
--- a/src/common/md5calc.hpp
+++ b/src/common/md5calc.hpp
@@ -58,7 +58,7 @@ const char *make_salt(void);
/// check plaintext password against saved saltcrypt
bool pass_ok(const char *password, const char *crypted);
-/// This returns an in_addr_t because it is configurable whether it gets called at all
-in_addr_t MD5_ip(char *secret, in_addr_t ip);
+/// This returns an in_addr because it is configurable whether it gets called at all
+struct in_addr MD5_ip(char *secret, struct in_addr ip);
#endif
diff --git a/src/common/mmo.hpp b/src/common/mmo.hpp
index 2ca93b0..151fa03 100644
--- a/src/common/mmo.hpp
+++ b/src/common/mmo.hpp
@@ -185,14 +185,14 @@ struct guild_position
int exp_mode;
};
-struct guild_alliance
+struct GuildAlliance
{
int opposition;
int guild_id;
char name[24];
};
-struct guild_explusion
+struct GuildExpulsion
{
char name[24];
char mes[40];
@@ -217,8 +217,8 @@ struct guild
char mes1[60], mes2[120];
int emblem_len, emblem_id;
char emblem_data[2048];
- struct guild_alliance alliance[MAX_GUILDALLIANCE];
- struct guild_explusion explusion[MAX_GUILDEXPLUSION];
+ GuildAlliance alliance[MAX_GUILDALLIANCE];
+ GuildExpulsion explusion[MAX_GUILDEXPLUSION];
struct guild_skill skill[MAX_GUILDSKILL];
};
diff --git a/src/common/mt_rand.cpp b/src/common/mt_rand.cpp
index 89872ad..676eca1 100644
--- a/src/common/mt_rand.cpp
+++ b/src/common/mt_rand.cpp
@@ -70,6 +70,7 @@ void mt_seed (uint32_t seed)
for (int j = N; *s++ = x, --j; x *= 69069U);
}
+static
void mt_reload (void)
{
// if mt_seed has never been called
diff --git a/src/common/nullpo.cpp b/src/common/nullpo.cpp
index 6dd2736..67c839f 100644
--- a/src/common/nullpo.cpp
+++ b/src/common/nullpo.cpp
@@ -3,6 +3,8 @@
#include <string.h>
#include "nullpo.hpp"
+static void nullpo_info_core (const char *file, int line, const char *func);
+__attribute__((format(printf, 4, 0)))
static void nullpo_info_core (const char *file, int line, const char *func,
const char *fmt, va_list ap);
@@ -26,7 +28,7 @@ bool nullpo_chk (const char *file, int line, const char *func,
if (target)
return 0;
- nullpo_info_core (file, line, func, NULL, NULL);
+ nullpo_info_core (file, line, func);
return 1;
}
@@ -42,14 +44,11 @@ void nullpo_info_f (const char *file, int line, const char *func,
}
void nullpo_info (const char *file, int line, const char *func)
{
- nullpo_info_core (file, line, func, NULL, NULL);
+ nullpo_info_core (file, line, func);
}
/// Actual output function
-static void nullpo_info_core (const char *file, int line, const char *func,
- const char *fmt, va_list ap) __attribute__((format(printf, 4, 0)));
-static void nullpo_info_core (const char *file, int line, const char *func,
- const char *fmt, va_list ap)
+static void nullpo_info_core (const char *file, int line, const char *func)
{
if (!file)
file = "??";
@@ -57,6 +56,12 @@ static void nullpo_info_core (const char *file, int line, const char *func,
func = "unknown";
fprintf (stderr, "%s:%d: in func `%s': NULL pointer\n", file, line, func);
+}
+
+static void nullpo_info_core (const char *file, int line, const char *func,
+ const char *fmt, va_list ap)
+{
+ nullpo_info_core(file, line, func);
if (fmt && *fmt)
{
vfprintf (stderr, fmt, ap);
diff --git a/src/common/utils.cpp b/src/common/utils.cpp
new file mode 100644
index 0000000..fbdd87e
--- /dev/null
+++ b/src/common/utils.cpp
@@ -0,0 +1,97 @@
+#include "utils.hpp"
+
+#include <cstring>
+#include <cstdio>
+#include <cstdlib>
+
+#include <netinet/in.h>
+
+//-----------------------------------------------------
+// Function to suppress control characters in a string.
+//-----------------------------------------------------
+int remove_control_chars (char *str)
+{
+ int i;
+ int change = 0;
+
+ for (i = 0; str[i]; i++)
+ {
+ if (0 <= str[i] && str[i] < 32)
+ {
+ str[i] = '_';
+ change = 1;
+ }
+ }
+
+ return change;
+}
+
+//---------------------------------------------------
+// E-mail check: return 0 (not correct) or 1 (valid).
+//---------------------------------------------------
+int e_mail_check (const char *email)
+{
+ char ch;
+ const char *last_arobas;
+
+ // athena limits
+ if (strlen (email) < 3 || strlen (email) > 39)
+ return 0;
+
+ // part of RFC limits (official reference of e-mail description)
+ if (strchr (email, '@') == NULL || email[strlen (email) - 1] == '@')
+ return 0;
+
+ if (email[strlen (email) - 1] == '.')
+ return 0;
+
+ last_arobas = strrchr (email, '@');
+
+ if (strstr (last_arobas, "@.") != NULL ||
+ strstr (last_arobas, "..") != NULL)
+ return 0;
+
+ for (ch = 1; ch < 32; ch++)
+ {
+ if (strchr (last_arobas, ch) != NULL)
+ {
+ return 0;
+ break;
+ }
+ }
+
+ if (strchr (last_arobas, ' ') != NULL ||
+ strchr (last_arobas, ';') != NULL)
+ return 0;
+
+ // all correct
+ return 1;
+}
+
+//-------------------------------------------------
+// Return numerical value of a switch configuration
+// on/off, english, français, deutsch, español
+//-------------------------------------------------
+int config_switch (const char *str)
+{
+ if (strcasecmp (str, "on") == 0 || strcasecmp (str, "yes") == 0
+ || strcasecmp (str, "oui") == 0 || strcasecmp (str, "ja") == 0
+ || strcasecmp (str, "si") == 0)
+ return 1;
+ if (strcasecmp (str, "off") == 0 || strcasecmp (str, "no") == 0
+ || strcasecmp (str, "non") == 0 || strcasecmp (str, "nein") == 0)
+ return 0;
+
+ return atoi (str);
+}
+
+const char *ip2str(struct in_addr ip, bool extra_dot)
+{
+ const uint8_t *p = (const uint8_t *)(&ip);
+ static char buf[17];
+ if (extra_dot)
+ sprintf(buf, "%d.%d.%d.%d.", p[0], p[1], p[2], p[3]);
+ else
+ sprintf(buf, "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
+ return buf;
+}
diff --git a/src/common/utils.hpp b/src/common/utils.hpp
index 7c7da16..1097bf7 100644
--- a/src/common/utils.hpp
+++ b/src/common/utils.hpp
@@ -1,5 +1,8 @@
#ifndef UTILS_HPP
#define UTILS_HPP
+
+#include "sanity.hpp"
+
/*
Notes about memory allocation in tmwAthena:
There used to be 3 sources of allocation: these macros,
@@ -15,4 +18,9 @@ future calls should either use this or depend on the coming segfault.
if (!((result) = (type *) realloc ((result), sizeof(type) * (number))))\
{ perror("SYSERR: realloc failure"); abort(); } else (void)0
+int remove_control_chars (char *str);
+int e_mail_check (const char *email);
+int config_switch (const char *str);
+const char *ip2str(struct in_addr ip, bool extra_dot = false);
+
#endif //UTILS_HPP
diff --git a/src/ladmin/GNUmakefile b/src/ladmin/GNUmakefile
index 1461bcf..d44f89d 100644
--- a/src/ladmin/GNUmakefile
+++ b/src/ladmin/GNUmakefile
@@ -1,7 +1,7 @@
.SUFFIXES:
all:
- make -C ../.. ladmin
+ ${MAKE} -C ../.. ladmin
clean:
rm -r ../../obj/ladmin/
%::
- make -C ../.. obj/ladmin/$@
+ ${MAKE} -C ../.. obj/ladmin/$@
diff --git a/src/ladmin/ladmin.cpp b/src/ladmin/ladmin.cpp
index 01eb244..dbad7bb 100644
--- a/src/ladmin/ladmin.cpp
+++ b/src/ladmin/ladmin.cpp
@@ -255,6 +255,8 @@ int already_exit_function = 0; // sometimes, the exit function is called twice.
//------------------------------
// Writing function of logs file
//------------------------------
+static __attribute__((format(printf, 1, 2)))
+int ladmin_log (const char *fmt, ...);
int ladmin_log (const char *fmt, ...)
{
FILE *logfp;
@@ -284,29 +286,10 @@ int ladmin_log (const char *fmt, ...)
return 0;
}
-//-----------------------------------------------------
-// Function to suppress control characters in a string.
-//-----------------------------------------------------
-int remove_control_chars (unsigned char *str)
-{
- int i;
- int change = 0;
-
- for (i = 0; str[i]; i++)
- {
- if (str[i] < 32)
- {
- str[i] = '_';
- change = 1;
- }
- }
-
- return change;
-}
-
//---------------------------------------------
// Function to return ordonal text of a number.
//---------------------------------------------
+static
const char *makeordinal (int number)
{
if (defaultlanguage == 'F')
@@ -341,7 +324,8 @@ const char *makeordinal (int number)
//-----------------------------------------------------------------------------------------
// Function to test of the validity of an account name (return 0 if incorrect, and 1 if ok)
//-----------------------------------------------------------------------------------------
-int verify_accountname (char *account_name)
+static
+int verify_accountname (const char *account_name)
{
int i;
@@ -412,51 +396,10 @@ int verify_accountname (char *account_name)
return 1;
}
-//---------------------------------------------------
-// E-mail check: return 0 (not correct) or 1 (valid).
-//---------------------------------------------------
-int e_mail_check (unsigned char *email)
-{
- char ch;
- unsigned char *last_arobas;
-
- // athena limits
- if (strlen (email) < 3 || strlen (email) > 39)
- return 0;
-
- // part of RFC limits (official reference of e-mail description)
- if (strchr (email, '@') == NULL || email[strlen (email) - 1] == '@')
- return 0;
-
- if (email[strlen (email) - 1] == '.')
- return 0;
-
- last_arobas = strrchr (email, '@');
-
- if (strstr (last_arobas, "@.") != NULL ||
- strstr (last_arobas, "..") != NULL)
- return 0;
-
- for (ch = 1; ch < 32; ch++)
- {
- if (strchr (last_arobas, ch) != NULL)
- {
- return 0;
- break;
- }
- }
-
- if (strchr (last_arobas, ' ') != NULL ||
- strchr (last_arobas, ';') != NULL)
- return 0;
-
- // all correct
- return 1;
-}
-
//----------------------------------
// Sub-function: Input of a password
//----------------------------------
+static
int typepasswd (char *password)
{
char password1[1023], password2[1023];
@@ -532,7 +475,8 @@ int typepasswd (char *password)
//------------------------------------------------------------------------------------
// Sub-function: Test of the validity of password (return 0 if incorrect, and 1 if ok)
//------------------------------------------------------------------------------------
-int verify_password (char *password)
+static
+int verify_password (const char *password)
{
int i;
@@ -606,6 +550,7 @@ int verify_password (char *password)
//------------------------------------------------------------------
// Sub-function: Check the name of a command (return complete name)
//-----------------------------------------------------------------
+static
int check_command (char *command)
{
// help
@@ -733,7 +678,8 @@ int check_command (char *command)
//-----------------------------------------
// Sub-function: Display commands of ladmin
//-----------------------------------------
-void display_help (char *param, int language)
+static
+void display_help (const char *param, int language)
{
char command[1023];
int i;
@@ -1592,7 +1538,8 @@ void display_help (char *param, int language)
//-----------------------------
// Sub-function: add an account
//-----------------------------
-int addaccount (char *param, int emailflag)
+static
+int addaccount (const char *param, int emailflag)
{
char name[1023], sex[1023], email[1023], password[1023];
// int i;
@@ -1785,11 +1732,12 @@ int addaccount (char *param, int emailflag)
//---------------------------------------------------------------------------------
// Sub-function: Add/substract time to the final date of a banishment of an account
//---------------------------------------------------------------------------------
-int banaddaccount (char *param)
+static
+int banaddaccount (const char *param)
{
char name[1023], modif[1023];
int year, month, day, hour, minute, second;
- char *p_modif;
+ const char *p_modif;
int value, i;
memset (name, '\0', sizeof (name));
@@ -2080,7 +2028,8 @@ int banaddaccount (char *param)
// Sub-function of sub-function banaccount, unbanaccount or bansetaccount
// Set the final date of a banishment of an account
//-----------------------------------------------------------------------
-int bansetaccountsub (char *name, char *date, char *time)
+static
+int bansetaccountsub (const char *name, const char *date, const char *time)
{
int year, month, day, hour, minute, second;
time_t ban_until_time; // # of seconds 1/1/1970 (timestamp): ban time limit of the account (0 = no ban)
@@ -2299,7 +2248,8 @@ int bansetaccountsub (char *name, char *date, char *time)
//---------------------------------------------------------------------
// Sub-function: Set the final date of a banishment of an account (ban)
//---------------------------------------------------------------------
-int banaccount (char *param)
+static
+int banaccount (const char *param)
{
char name[1023], date[1023], time[1023];
@@ -2347,7 +2297,8 @@ int banaccount (char *param)
//------------------------------------------------------------------------
// Sub-function: Set the final date of a banishment of an account (banset)
//------------------------------------------------------------------------
-int bansetaccount (char *param)
+static
+int bansetaccount (const char *param)
{
char name[1023], date[1023], time[1023];
@@ -2398,7 +2349,8 @@ int bansetaccount (char *param)
//-------------------------------------------------
// Sub-function: unbanishment of an account (unban)
//-------------------------------------------------
-int unbanaccount (char *param)
+static
+int unbanaccount (const char *param)
{
char name[1023];
@@ -2446,7 +2398,8 @@ int unbanaccount (char *param)
// Sub-function: Asking to check the validity of a password
// (Note: never send back a password with login-server!! security of passwords)
//---------------------------------------------------------
-int checkaccount (char *param)
+static
+int checkaccount (const char *param)
{
char name[1023], password[1023];
@@ -2509,7 +2462,8 @@ int checkaccount (char *param)
//------------------------------------------------
// Sub-function: Asking for deletion of an account
//------------------------------------------------
-int delaccount (char *param)
+static
+int delaccount (const char *param)
{
char name[1023];
char letter;
@@ -2599,7 +2553,8 @@ int delaccount (char *param)
//----------------------------------------------------------
// Sub-function: Asking to modification of an account e-mail
//----------------------------------------------------------
-int changeemail (char *param)
+static
+int changeemail (const char *param)
{
char name[1023], email[1023];
@@ -2715,6 +2670,7 @@ int changeemail (char *param)
//-----------------------------------------------------
// Sub-function: Asking of the number of online players
//-----------------------------------------------------
+static
int getlogincount (void)
{
if (defaultlanguage == 'F')
@@ -2738,7 +2694,8 @@ int getlogincount (void)
//----------------------------------------------------------
// Sub-function: Asking to modify the GM level of an account
//----------------------------------------------------------
-int changegmlevel (char *param)
+static
+int changegmlevel (const char *param)
{
char name[1023];
int GM_level;
@@ -2817,7 +2774,8 @@ int changegmlevel (char *param)
//---------------------------------------------
// Sub-function: Asking to obtain an account id
//---------------------------------------------
-int idaccount (char *param)
+static
+int idaccount (const char *param)
{
char name[1023];
@@ -2871,6 +2829,7 @@ int idaccount (char *param)
//----------------------------------------------------------------------------
// Sub-function: Asking to displaying information about an account (by its id)
//----------------------------------------------------------------------------
+static
int infoaccount (int account_id)
{
if (account_id < 0)
@@ -2911,7 +2870,8 @@ int infoaccount (int account_id)
//---------------------------------------
// Sub-function: Send a broadcast message
//---------------------------------------
-int sendbroadcast (short type, char *message)
+static
+int sendbroadcast (short type, const char *message)
{
if (strlen (message) == 0)
{
@@ -2957,6 +2917,7 @@ int sendbroadcast (short type, char *message)
//--------------------------------------------
// Sub-function: Change language of displaying
//--------------------------------------------
+static
int changelanguage (char *language)
{
if (strlen (language) == 0)
@@ -3016,6 +2977,7 @@ int changelanguage (char *language)
//--------------------------------------------------------
// Sub-function: Asking to Displaying of the accounts list
//--------------------------------------------------------
+static
int listaccount (char *param, int type)
{
//int list_first, list_last, list_type; // parameter to display a list of accounts
@@ -3104,7 +3066,8 @@ int listaccount (char *param, int type)
//--------------------------------------------------------
// Sub-function: Frobnicate items
//--------------------------------------------------------
-int itemfrob (char *param)
+static
+int itemfrob (const char *param)
{
int source_id, dest_id;
@@ -3126,7 +3089,8 @@ int itemfrob (char *param)
//--------------------------------------------
// Sub-function: Asking to modify a memo field
//--------------------------------------------
-int changememo (char *param)
+static
+int changememo (const char *param)
{
char name[1023], memo[1023];
@@ -3204,6 +3168,7 @@ int changememo (char *param)
//-----------------------------------------------
// Sub-function: Asking to obtain an account name
//-----------------------------------------------
+static
int nameaccount (int id)
{
if (id < 0)
@@ -3241,7 +3206,8 @@ int nameaccount (int id)
// Sub-function: Asking to modify a password
// (Note: never send back a password with login-server!! security of passwords)
//------------------------------------------
-int changepasswd (char *param)
+static
+int changepasswd (const char *param)
{
char name[1023], password[1023];
@@ -3305,6 +3271,7 @@ int changepasswd (char *param)
// Sub-function: Request to login-server to reload GM configuration file
// this function have no answer
//----------------------------------------------------------------------
+static
int reloadGM (void)
{
WFIFOW (login_fd, 0) = 0x7955;
@@ -3333,7 +3300,8 @@ int reloadGM (void)
//-----------------------------------------------------
// Sub-function: Asking to modify the sex of an account
//-----------------------------------------------------
-int changesex (char *param)
+static
+int changesex (const char *param)
{
char name[1023], sex[1023];
@@ -3407,7 +3375,8 @@ int changesex (char *param)
// Sub-function of sub-function changestate, blockaccount or unblockaccount
// Asking to modify the state of an account
//-------------------------------------------------------------------------
-int changestatesub (char *name, int state, char *error_message7)
+static
+int changestatesub (const char *name, int state, const char *error_message7)
{
char error_message[1023]; // need to use, because we can modify error_message7
@@ -3529,7 +3498,8 @@ int changestatesub (char *name, int state, char *error_message7)
//-------------------------------------------------------
// Sub-function: Asking to modify the state of an account
//-------------------------------------------------------
-int changestate (char *param)
+static
+int changestate (const char *param)
{
char name[1023], error_message[1023];
int state;
@@ -3572,7 +3542,8 @@ int changestate (char *param)
//-------------------------------------------
// Sub-function: Asking to unblock an account
//-------------------------------------------
-int unblockaccount (char *param)
+static
+int unblockaccount (const char *param)
{
char name[1023];
@@ -3612,7 +3583,8 @@ int unblockaccount (char *param)
//-------------------------------------------
// Sub-function: Asking to unblock an account
//-------------------------------------------
-int blockaccount (char *param)
+static
+int blockaccount (const char *param)
{
char name[1023];
@@ -3652,11 +3624,12 @@ int blockaccount (char *param)
//---------------------------------------------------------------------
// Sub-function: Add/substract time to the validity limit of an account
//---------------------------------------------------------------------
-int timeaddaccount (char *param)
+static
+int timeaddaccount (const char *param)
{
char name[1023], modif[1023];
int year, month, day, hour, minute, second;
- char *p_modif;
+ const char *p_modif;
int value, i;
memset (name, '\0', sizeof (name));
@@ -3946,7 +3919,8 @@ int timeaddaccount (char *param)
//-------------------------------------------------
// Sub-function: Set a validity limit of an account
//-------------------------------------------------
-int timesetaccount (char *param)
+static
+int timesetaccount (const char *param)
{
char name[1023], date[1023], time[1023];
int year, month, day, hour, minute, second;
@@ -4185,7 +4159,8 @@ int timesetaccount (char *param)
//------------------------------------------------------------------------------
// Sub-function: Asking to displaying information about an account (by its name)
//------------------------------------------------------------------------------
-int whoaccount (char *param)
+static
+int whoaccount (const char *param)
{
char name[1023];
@@ -4237,6 +4212,7 @@ int whoaccount (char *param)
//--------------------------------------------------------
// Sub-function: Asking of the version of the login-server
//--------------------------------------------------------
+static
int checkloginversion (void)
{
if (defaultlanguage == 'F')
@@ -4257,6 +4233,7 @@ int checkloginversion (void)
// this function wait until user type a command
// and analyse the command.
//---------------------------------------------
+static
int prompt (void)
{
int i, j;
@@ -4586,6 +4563,7 @@ int prompt (void)
//-------------------------------------------------------------
// Function: Parse receiving informations from the login-server
//-------------------------------------------------------------
+static
void parse_fromlogin (int fd)
{
struct char_session_data *sd;
@@ -4681,20 +4659,20 @@ void parse_fromlogin (int fd)
if (RFIFOREST (fd) < 4 || RFIFOREST (fd) < RFIFOW (fd, 2))
return;
{
- char md5str[64] =
- "", md5bin[32], md5key[RFIFOW (fd, 2) - 4 + 1];
+ char md5str[64] = "";
+ uint8_t md5bin[32], md5key[RFIFOW (fd, 2) - 4 + 1];
memcpy (md5key, RFIFOP (fd, 4), RFIFOW (fd, 2) - 4);
md5key[sizeof (md5key) - 1] = '0';
if (passenc == 1)
{
- strncpy (md5str, RFIFOP (fd, 4), RFIFOW (fd, 2) - 4);
+ strncpy (md5str, (const char *)RFIFOP (fd, 4), RFIFOW (fd, 2) - 4);
strcat (md5str, loginserveradminpassword);
}
else if (passenc == 2)
{
strncpy (md5str, loginserveradminpassword,
sizeof (loginserveradminpassword));
- strcat (md5str, RFIFOP (fd, 4));
+ strcat (md5str, (const char *)RFIFOP (fd, 4));
}
MD5_to_bin(MD5_from_cstring(md5str), md5bin);
WFIFOW (login_fd, 0) = 0x7918; // Request for administation login (encrypted password)
@@ -5505,7 +5483,7 @@ void parse_fromlogin (int fd)
case 0x7947: // answer of an account name search
if (RFIFOREST (fd) < 30)
return;
- if (strcmp (RFIFOP (fd, 6), "") == 0)
+ if (strcmp ((const char *)RFIFOP (fd, 6), "") == 0)
{
if (defaultlanguage == 'F')
{
@@ -5935,7 +5913,7 @@ void parse_fromlogin (int fd)
connect_until_time = (time_t) RFIFOL (fd, 140);
ban_until_time = (time_t) RFIFOL (fd, 144);
memset (memo, '\0', sizeof (memo));
- strncpy (memo, RFIFOP (fd, 150), RFIFOW (fd, 148));
+ strncpy (memo, (const char *)RFIFOP (fd, 150), RFIFOW (fd, 148));
if (RFIFOL (fd, 2) == -1)
{
if (defaultlanguage == 'F')
@@ -6170,6 +6148,7 @@ void parse_fromlogin (int fd)
//------------------------------------
// Function to connect to login-server
//------------------------------------
+static
int Connect_login_server (void)
{
if (defaultlanguage == 'F')
@@ -6229,26 +6208,10 @@ int Connect_login_server (void)
return 0;
}
-//-------------------------------------------------
-// Return numerical value of a switch configuration
-// on/off, english, français, deutsch, español
-//-------------------------------------------------
-int config_switch (const char *str)
-{
- if (strcasecmp (str, "on") == 0 || strcasecmp (str, "yes") == 0
- || strcasecmp (str, "oui") == 0 || strcasecmp (str, "ja") == 0
- || strcasecmp (str, "si") == 0)
- return 1;
- if (strcasecmp (str, "off") == 0 || strcasecmp (str, "no") == 0
- || strcasecmp (str, "non") == 0 || strcasecmp (str, "nein") == 0)
- return 0;
-
- return atoi (str);
-}
-
//-----------------------------------
// Reading general configuration file
//-----------------------------------
+static
int ladmin_config_read (const char *cfgName)
{
char line[1024], w1[1024], w2[1024];
diff --git a/src/login/GNUmakefile b/src/login/GNUmakefile
index 912127d..a87b879 100644
--- a/src/login/GNUmakefile
+++ b/src/login/GNUmakefile
@@ -1,7 +1,7 @@
.SUFFIXES:
all:
- make -C ../.. login-server
+ ${MAKE} -C ../.. login-server
clean:
rm -r ../../obj/login/
%::
- make -C ../.. obj/login/$@
+ ${MAKE} -C ../.. obj/login/$@
diff --git a/src/login/login.cpp b/src/login/login.cpp
index 543f32f..ce3fd4e 100644
--- a/src/login/login.cpp
+++ b/src/login/login.cpp
@@ -34,6 +34,9 @@
#include "memwatch.hpp"
#endif
+#include <type_traits>
+static_assert(std::is_same<time_t, long>::value, "much code assumes time_t is a long");
+
int account_id_count = START_ACCOUNT_NUM;
int server_num;
int new_account_flag = 0;
@@ -135,7 +138,8 @@ pid_t pid = 0; // For forked DB writes
//------------------------------
// Writing function of logs file
//------------------------------
-int login_log (char *fmt, ...)
+static __attribute__((format(printf, 1, 2)))
+int login_log (const char *fmt, ...)
{
FILE *logfp;
va_list ap;
@@ -168,6 +172,7 @@ int login_log (char *fmt, ...)
// Determine if an account (id) is a GM account
// and returns its level (or 0 if it isn't a GM account or if not found)
//----------------------------------------------------------------------
+static
int isGM (int account_id)
{
struct gm_account *p = (struct gm_account*) numdb_search (gm_account_db, account_id);
@@ -179,6 +184,7 @@ int isGM (int account_id)
//-------------------------------------------------------
// Reading function of GM accounts file (and their level)
//-------------------------------------------------------
+static
int read_gm_account (void)
{
char line[512];
@@ -278,7 +284,8 @@ int read_gm_account (void)
// Test of the IP mask
// (ip: IP to be tested, str: mask x.x.x.x/# or x.x.x.x/y.y.y.y)
//--------------------------------------------------------------
-int check_ipmask (unsigned int ip, const unsigned char *str)
+static
+int check_ipmask (struct in_addr ip, const char *str)
{
unsigned int mask = 0, i = 0, m, ip2, a0, a1, a2, a3;
unsigned char *p = (unsigned char *) &ip2, *p2 = (unsigned char *) &mask;
@@ -298,7 +305,7 @@ int check_ipmask (unsigned int ip, const unsigned char *str)
p2[3] = a3;
mask = ntohl (mask);
}
- else if (sscanf (str + i, "%d", &m) == 1 && m >= 0 && m <= 32)
+ else if (sscanf (str + i, "%d", &m) == 1 && m <= 32)
{
for (i = 0; i < m && i < 32; i++)
mask = (mask >> 1) | 0x80000000;
@@ -311,17 +318,16 @@ int check_ipmask (unsigned int ip, const unsigned char *str)
// printf("Tested IP: %08x, network: %08x, network mask: %08x\n",
// (unsigned int)ntohl(ip), (unsigned int)ntohl(ip2), (unsigned int)mask);
- return ((ntohl (ip) & mask) == (ntohl (ip2) & mask));
+ return ((ntohl (ip.s_addr) & mask) == (ntohl (ip2) & mask));
}
//---------------------
// Access control by IP
//---------------------
-int check_ip (unsigned int ip)
+static
+int check_ip (struct in_addr ip)
{
int i;
- unsigned char *p = (unsigned char *) &ip;
- char buf[32];
enum
{ ACF_DEF, ACF_ALLOW, ACF_DENY } flag = ACF_DEF;
@@ -337,7 +343,7 @@ int check_ip (unsigned int ip)
// If we have an answer, there is no guarantee to have a 100% correct value.
// And, the waiting time (to check) can be long (over 1 minute to a timeout). That can block the software.
// So, DNS notation isn't authorised for ip checking.
- sprintf (buf, "%d.%d.%d.%d.", p[0], p[1], p[2], p[3]);
+ const char *buf = ip2str(ip, true);
for (i = 0; i < access_allownum; i++)
{
@@ -372,11 +378,10 @@ int check_ip (unsigned int ip)
//--------------------------------
// Access control by IP for ladmin
//--------------------------------
-int check_ladminip (unsigned int ip)
+static
+int check_ladminip (struct in_addr ip)
{
int i;
- unsigned char *p = (unsigned char *) &ip;
- char buf[32];
if (access_ladmin_allownum == 0)
return 1; // When there is no restriction, all IP are authorised.
@@ -390,7 +395,7 @@ int check_ladminip (unsigned int ip)
// If we have an answer, there is no guarantee to have a 100% correct value.
// And, the waiting time (to check) can be long (over 1 minute to a timeout). That can block the software.
// So, DNS notation isn't authorised for ip checking.
- sprintf (buf, "%d.%d.%d.%d.", p[0], p[1], p[2], p[3]);
+ const char *buf = ip2str(ip, true);
for (i = 0; i < access_ladmin_allownum; i++)
{
@@ -404,68 +409,6 @@ int check_ladminip (unsigned int ip)
return 0;
}
-//-----------------------------------------------------
-// Function to suppress control characters in a string.
-//-----------------------------------------------------
-int remove_control_chars (unsigned char *str)
-{
- int i;
- int change = 0;
-
- for (i = 0; str[i]; i++)
- {
- if (str[i] < 32)
- {
- str[i] = '_';
- change = 1;
- }
- }
-
- return change;
-}
-
-//---------------------------------------------------
-// E-mail check: return 0 (not correct) or 1 (valid).
-//---------------------------------------------------
-int e_mail_check (unsigned char *email)
-{
- char ch;
- unsigned char *last_arobas;
-
- // athena limits
- if (strlen (email) < 3 || strlen (email) > 39)
- return 0;
-
- // part of RFC limits (official reference of e-mail description)
- if (strchr (email, '@') == NULL || email[strlen (email) - 1] == '@')
- return 0;
-
- if (email[strlen (email) - 1] == '.')
- return 0;
-
- last_arobas = strrchr (email, '@');
-
- if (strstr (last_arobas, "@.") != NULL ||
- strstr (last_arobas, "..") != NULL)
- return 0;
-
- for (ch = 1; ch < 32; ch++)
- {
- if (strchr (last_arobas, ch) != NULL)
- {
- return 0;
- break;
- }
- }
-
- if (strchr (last_arobas, ' ') != NULL ||
- strchr (last_arobas, ';') != NULL)
- return 0;
-
- // all correct
- return 1;
-}
-
//-----------------------------------------------
// Search an account id
// (return account index or -1 (if not found))
@@ -474,6 +417,7 @@ int e_mail_check (unsigned char *email)
// and returns index if only 1 account is found
// and similar to the searched name.
//-----------------------------------------------
+static
int search_account_index (char *account_name)
{
int i, quantity, index;
@@ -504,6 +448,7 @@ int search_account_index (char *account_name)
//--------------------------------------------------------
// Create a string to save the account in the account file
//--------------------------------------------------------
+static
int mmo_auth_tostr (char *str, struct auth_dat *p)
{
int i;
@@ -530,6 +475,7 @@ int mmo_auth_tostr (char *str, struct auth_dat *p)
//---------------------------------
// Reading of the accounts database
//---------------------------------
+static
int mmo_auth_init (void)
{
FILE *fp;
@@ -967,6 +913,7 @@ int mmo_auth_init (void)
// Writing of the accounts database file
// (accounts are sorted by id before save)
//------------------------------------------
+static
void mmo_auth_sync (void)
{
FILE *fp;
@@ -1036,6 +983,7 @@ void mmo_auth_sync (void)
// update the account DB will not immideately trigger a save. Instead
// we save periodicly on a timer.
//-----------------------------------------------------
+static
void check_auth_sync (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
if (pid != 0)
@@ -1067,6 +1015,7 @@ void check_auth_sync (timer_id tid, tick_t tick, custom_id_t id, custom_data_t d
//--------------------------------------------------------------------
// Packet send to all char-servers, except one (wos: without our self)
//--------------------------------------------------------------------
+static
int charif_sendallwos (int sfd, unsigned char *buf, unsigned int len)
{
int i, c;
@@ -1087,10 +1036,11 @@ int charif_sendallwos (int sfd, unsigned char *buf, unsigned int len)
//-----------------------------------------------------
// Send GM accounts to all char-server
//-----------------------------------------------------
+static
void send_GM_accounts (void)
{
int i;
- char buf[32000];
+ uint8_t buf[32000];
int GM_value;
int len;
@@ -1113,6 +1063,7 @@ void send_GM_accounts (void)
//-----------------------------------------------------
// Check if GM file account have been changed
//-----------------------------------------------------
+static
void check_GM_file (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
struct stat file_stat;
@@ -1138,7 +1089,8 @@ void check_GM_file (timer_id tid, tick_t tick, custom_id_t id, custom_data_t dat
//-------------------------------------
// Account creation (with e-mail check)
//-------------------------------------
-int mmo_auth_new (struct mmo_account *account, char sex, char *email)
+static
+int mmo_auth_new (struct mmo_account *account, char sex, const char *email)
{
time_t timestamp, timestamp_temp;
struct tm *tmtime;
@@ -1208,6 +1160,7 @@ int mmo_auth_new (struct mmo_account *account, char sex, char *email)
//---------------------------------------
// Check/authentification of a connection
//---------------------------------------
+static
int mmo_auth (struct mmo_account *account, int fd)
{
int i;
@@ -1217,12 +1170,8 @@ int mmo_auth (struct mmo_account *account, int fd)
#ifdef PASSWDENC
char md5str[64], md5bin[32];
#endif
- char ip[16];
- unsigned char *sin_addr =
- (unsigned char *) &session[fd]->client_addr.sin_addr;
- sprintf (ip, "%d.%d.%d.%d", sin_addr[0], sin_addr[1], sin_addr[2],
- sin_addr[3]);
+ const char *ip = ip2str(session[fd]->client_addr.sin_addr);
len = strlen (account->userid) - 2;
// Account creation with _M/_F
@@ -1429,6 +1378,7 @@ int mmo_auth (struct mmo_account *account, int fd)
//-------------------------------
// Char-server anti-freeze system
//-------------------------------
+static
void char_anti_freeze_system (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
int i;
@@ -1456,13 +1406,12 @@ void char_anti_freeze_system (timer_id tid, tick_t tick, custom_id_t id, custom_
//--------------------------------
// Packet parsing for char-servers
//--------------------------------
+static
void parse_fromchar (int fd)
{
int i, j, id;
- unsigned char *p = (unsigned char *) &session[fd]->client_addr.sin_addr;
- char ip[16];
- sprintf (ip, "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
+ const char *ip = ip2str(session[fd]->client_addr.sin_addr);
for (id = 0; id < MAX_SERVERS; id++)
if (server_fd[id] == fd)
@@ -1669,7 +1618,7 @@ void parse_fromchar (int fd)
WBUFW (buf, 0) = 0x2721;
WBUFL (buf, 2) = acc;
WBUFL (buf, 6) = 0;
- if (strcmp (RFIFOP (fd, 8), gm_pass) == 0)
+ if (strcmp ((const char *)RFIFOP (fd, 8), gm_pass) == 0)
{
// only non-GM can become GM
if (isGM (acc) == 0)
@@ -1900,7 +1849,7 @@ void parse_fromchar (int fd)
strftime (tmpstr, 24, date_format,
gmtime (&timestamp));
login_log
- ("Char-server '%s': Ban request (account: %d, new final date of banishment: %d (%s), ip: %s).\n",
+ ("Char-server '%s': Ban request (account: %d, new final date of banishment: %ld (%s), ip: %s).\n",
server[id].name, acc,
timestamp,
(timestamp ==
@@ -2206,14 +2155,13 @@ void parse_fromchar (int fd)
//---------------------------------------
// Packet parsing for administation login
//---------------------------------------
+static
void parse_admin (int fd)
{
int i, j;
- unsigned char *p = (unsigned char *) &session[fd]->client_addr.sin_addr;
char *account_name;
- char ip[16];
- sprintf (ip, "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
+ const char *ip = ip2str(session[fd]->client_addr.sin_addr);
if (session[fd]->eof)
{
@@ -2334,8 +2282,8 @@ void parse_admin (int fd)
return;
{
struct mmo_account ma;
- ma.userid = RFIFOP (fd, 2);
- ma.passwd = RFIFOP (fd, 26);
+ ma.userid = (char *)RFIFOP (fd, 2);
+ ma.passwd = (char *)RFIFOP (fd, 26);
memcpy (ma.lastlogin, "-", 2);
ma.sex = RFIFOB (fd, 50);
WFIFOW (fd, 0) = 0x7931;
@@ -2405,12 +2353,13 @@ void parse_admin (int fd)
return;
WFIFOW (fd, 0) = 0x7933;
WFIFOL (fd, 2) = -1;
- account_name = RFIFOP (fd, 2);
+ account_name = (char *)RFIFOP (fd, 2);
account_name[23] = '\0';
remove_control_chars (account_name);
i = search_account_index (account_name);
if (i != -1)
{
+ {
// Char-server is notified of deletion (for characters deletion).
unsigned char buf[65535];
WBUFW (buf, 0) = 0x2730;
@@ -2424,8 +2373,12 @@ void parse_admin (int fd)
("'ladmin': Account deletion (account: %s, id: %d, ip: %s) - saved in next line:\n",
auth_dat[i].userid, auth_dat[i].account_id,
ip);
+ }
+ {
+ char buf[65535];
mmo_auth_tostr (buf, &auth_dat[i]);
login_log ("%s\n", buf);
+ }
// delete account
memset (auth_dat[i].userid, '\0',
sizeof (auth_dat[i].userid));
@@ -2447,14 +2400,14 @@ void parse_admin (int fd)
return;
WFIFOW (fd, 0) = 0x7935;
WFIFOL (fd, 2) = -1;
- account_name = RFIFOP (fd, 2);
+ account_name = (char *)RFIFOP (fd, 2);
account_name[23] = '\0';
remove_control_chars (account_name);
i = search_account_index (account_name);
if (i != -1)
{
memcpy (WFIFOP (fd, 6), auth_dat[i].userid, 24);
- strcpy (auth_dat[i].pass, MD5_saltcrypt(RFIFOP (fd, 26), make_salt()));
+ strcpy (auth_dat[i].pass, MD5_saltcrypt((char *)RFIFOP (fd, 26), make_salt()));
auth_dat[i].pass[39] = '\0';
WFIFOL (fd, 2) = auth_dat[i].account_id;
login_log
@@ -2480,7 +2433,7 @@ void parse_admin (int fd)
int statut;
WFIFOW (fd, 0) = 0x7937;
WFIFOL (fd, 2) = -1;
- account_name = RFIFOP (fd, 2);
+ account_name = (char *)RFIFOP (fd, 2);
account_name[23] = '\0';
remove_control_chars (account_name);
statut = RFIFOL (fd, 26);
@@ -2574,14 +2527,14 @@ void parse_admin (int fd)
return;
WFIFOW (fd, 0) = 0x793b;
WFIFOL (fd, 2) = -1;
- account_name = RFIFOP (fd, 2);
+ account_name = (char *)RFIFOP (fd, 2);
account_name[23] = '\0';
remove_control_chars (account_name);
i = search_account_index (account_name);
if (i != -1)
{
memcpy (WFIFOP (fd, 6), auth_dat[i].userid, 24);
- if ( pass_ok(RFIFOP (fd, 26), auth_dat[i].pass) )
+ if ( pass_ok((char *)RFIFOP (fd, 26), auth_dat[i].pass) )
{
WFIFOL (fd, 2) = auth_dat[i].account_id;
login_log
@@ -2616,7 +2569,7 @@ void parse_admin (int fd)
return;
WFIFOW (fd, 0) = 0x793d;
WFIFOL (fd, 2) = -1;
- account_name = RFIFOP (fd, 2);
+ account_name = (char *)RFIFOP (fd, 2);
account_name[23] = '\0';
remove_control_chars (account_name);
memcpy (WFIFOP (fd, 6), account_name, 24);
@@ -2688,7 +2641,7 @@ void parse_admin (int fd)
return;
WFIFOW (fd, 0) = 0x793f;
WFIFOL (fd, 2) = -1;
- account_name = RFIFOP (fd, 2);
+ account_name = (char *)RFIFOP (fd, 2);
account_name[23] = '\0';
remove_control_chars (account_name);
memcpy (WFIFOP (fd, 6), account_name, 24);
@@ -2848,7 +2801,7 @@ void parse_admin (int fd)
return;
WFIFOW (fd, 0) = 0x7941;
WFIFOL (fd, 2) = -1;
- account_name = RFIFOP (fd, 2);
+ account_name = (char *)RFIFOP (fd, 2);
account_name[23] = '\0';
remove_control_chars (account_name);
memcpy (WFIFOP (fd, 6), account_name, 24);
@@ -2892,7 +2845,7 @@ void parse_admin (int fd)
return;
WFIFOW (fd, 0) = 0x7943;
WFIFOL (fd, 2) = -1;
- account_name = RFIFOP (fd, 2);
+ account_name = (char *)RFIFOP (fd, 2);
account_name[23] = '\0';
remove_control_chars (account_name);
i = search_account_index (account_name);
@@ -2938,7 +2891,7 @@ void parse_admin (int fd)
return;
WFIFOW (fd, 0) = 0x7945;
WFIFOL (fd, 2) = -1;
- account_name = RFIFOP (fd, 2);
+ account_name = (char *)RFIFOP (fd, 2);
account_name[23] = '\0';
remove_control_chars (account_name);
i = search_account_index (account_name);
@@ -2972,7 +2925,7 @@ void parse_admin (int fd)
{
if (auth_dat[i].account_id == RFIFOL (fd, 2))
{
- strncpy (WFIFOP (fd, 6), auth_dat[i].userid, 24);
+ strncpy ((char *)WFIFOP (fd, 6), auth_dat[i].userid, 24);
login_log
("'ladmin': Request (by id) of an account name (account: %s, id: %d, ip: %s)\n",
auth_dat[i].userid, RFIFOL (fd, 2), ip);
@@ -2984,7 +2937,7 @@ void parse_admin (int fd)
login_log
("'ladmin': Name request (by id) of an unknown account (id: %d, ip: %s)\n",
RFIFOL (fd, 2), ip);
- strncpy (WFIFOP (fd, 6), "", 24);
+ strncpy ((char *)WFIFOP (fd, 6), "", 24);
}
WFIFOSET (fd, 30);
RFIFOSKIP (fd, 6);
@@ -2998,7 +2951,7 @@ void parse_admin (int fd)
char tmpstr[2048];
WFIFOW (fd, 0) = 0x7949;
WFIFOL (fd, 2) = -1;
- account_name = RFIFOP (fd, 2);
+ account_name = (char *)RFIFOP (fd, 2);
account_name[23] = '\0';
remove_control_chars (account_name);
timestamp = (time_t) RFIFOL (fd, 26);
@@ -3008,7 +2961,7 @@ void parse_admin (int fd)
{
memcpy (WFIFOP (fd, 6), auth_dat[i].userid, 24);
login_log
- ("'ladmin': Change of a validity limit (account: %s, new validity: %d (%s), ip: %s)\n",
+ ("'ladmin': Change of a validity limit (account: %s, new validity: %ld (%s), ip: %s)\n",
auth_dat[i].userid, timestamp,
(timestamp == 0 ? "unlimited" : tmpstr), ip);
auth_dat[i].connect_until_time = timestamp;
@@ -3018,7 +2971,7 @@ void parse_admin (int fd)
{
memcpy (WFIFOP (fd, 6), account_name, 24);
login_log
- ("'ladmin': Attempt to change the validity limit of an unknown account (account: %s, received validity: %d (%s), ip: %s)\n", account_name, timestamp,
+ ("'ladmin': Attempt to change the validity limit of an unknown account (account: %s, received validity: %ld (%s), ip: %s)\n", account_name, timestamp,
(timestamp == 0 ? "unlimited" : tmpstr), ip);
}
WFIFOL (fd, 30) = timestamp;
@@ -3035,7 +2988,7 @@ void parse_admin (int fd)
char tmpstr[2048];
WFIFOW (fd, 0) = 0x794b;
WFIFOL (fd, 2) = -1;
- account_name = RFIFOP (fd, 2);
+ account_name = (char *)RFIFOP (fd, 2);
account_name[23] = '\0';
remove_control_chars (account_name);
timestamp = (time_t) RFIFOL (fd, 26);
@@ -3048,7 +3001,7 @@ void parse_admin (int fd)
memcpy (WFIFOP (fd, 6), auth_dat[i].userid, 24);
WFIFOL (fd, 2) = auth_dat[i].account_id;
login_log
- ("'ladmin': Change of the final date of a banishment (account: %s, new final date of banishment: %d (%s), ip: %s)\n",
+ ("'ladmin': Change of the final date of a banishment (account: %s, new final date of banishment: %ld (%s), ip: %s)\n",
auth_dat[i].userid, timestamp,
(timestamp == 0 ? "no banishment" : tmpstr), ip);
if (auth_dat[i].ban_until_time != timestamp)
@@ -3073,7 +3026,7 @@ void parse_admin (int fd)
{
memcpy (WFIFOP (fd, 6), account_name, 24);
login_log
- ("'ladmin': Attempt to change the final date of a banishment of an unknown account (account: %s, received final date of banishment: %d (%s), ip: %s)\n",
+ ("'ladmin': Attempt to change the final date of a banishment of an unknown account (account: %s, received final date of banishment: %ld (%s), ip: %s)\n",
account_name, timestamp,
(timestamp == 0 ? "no banishment" : tmpstr), ip);
}
@@ -3092,7 +3045,7 @@ void parse_admin (int fd)
char tmpstr[2048];
WFIFOW (fd, 0) = 0x794d;
WFIFOL (fd, 2) = -1;
- account_name = RFIFOP (fd, 2);
+ account_name = (char *)RFIFOP (fd, 2);
account_name[23] = '\0';
remove_control_chars (account_name);
i = search_account_index (account_name);
@@ -3126,7 +3079,7 @@ void parse_admin (int fd)
strftime (tmpstr, 24, date_format,
gmtime (&timestamp));
login_log
- ("'ladmin': Adjustment of a final date of a banishment (account: %s, (%+d y %+d m %+d d %+d h %+d mn %+d s) -> new validity: %d (%s), ip: %s)\n",
+ ("'ladmin': Adjustment of a final date of a banishment (account: %s, (%+d y %+d m %+d d %+d h %+d mn %+d s) -> new validity: %ld (%s), ip: %s)\n",
auth_dat[i].userid,
(short) RFIFOW (fd, 26), (short) RFIFOW (fd,
28),
@@ -3160,7 +3113,7 @@ void parse_admin (int fd)
strftime (tmpstr, 24, date_format,
gmtime (&auth_dat[i].ban_until_time));
login_log
- ("'ladmin': Impossible to adjust the final date of a banishment (account: %s, %d (%s) + (%+d y %+d m %+d d %+d h %+d mn %+d s) -> ???, ip: %s)\n",
+ ("'ladmin': Impossible to adjust the final date of a banishment (account: %s, %ld (%s) + (%+d y %+d m %+d d %+d h %+d mn %+d s) -> ???, ip: %s)\n",
auth_dat[i].userid,
auth_dat[i].ban_until_time,
(auth_dat[i].ban_until_time ==
@@ -3215,7 +3168,7 @@ void parse_admin (int fd)
}
else
{
- char buf[32000];
+ uint8_t buf[32000];
char message[32000];
WFIFOW (fd, 2) = 0;
memset (message, '\0', sizeof (message));
@@ -3251,7 +3204,7 @@ void parse_admin (int fd)
char tmpstr2[2048];
WFIFOW (fd, 0) = 0x7951;
WFIFOL (fd, 2) = -1;
- account_name = RFIFOP (fd, 2);
+ account_name = (char *)RFIFOP (fd, 2);
account_name[23] = '\0';
remove_control_chars (account_name);
i = search_account_index (account_name);
@@ -3293,7 +3246,7 @@ void parse_admin (int fd)
strftime (tmpstr2, 24, date_format,
gmtime (&timestamp));
login_log
- ("'ladmin': Adjustment of a validity limit (account: %s, %d (%s) + (%+d y %+d m %+d d %+d h %+d mn %+d s) -> new validity: %d (%s), ip: %s)\n",
+ ("'ladmin': Adjustment of a validity limit (account: %s, %ld (%s) + (%+d y %+d m %+d d %+d h %+d mn %+d s) -> new validity: %ld (%s), ip: %s)\n",
auth_dat[i].userid,
auth_dat[i].connect_until_time,
(auth_dat[i].connect_until_time ==
@@ -3317,7 +3270,7 @@ void parse_admin (int fd)
gmtime (&auth_dat
[i].connect_until_time));
login_log
- ("'ladmin': Impossible to adjust a validity limit (account: %s, %d (%s) + (%+d y %+d m %+d d %+d h %+d mn %+d s) -> ???, ip: %s)\n",
+ ("'ladmin': Impossible to adjust a validity limit (account: %s, %ld (%s) + (%+d y %+d m %+d d %+d h %+d mn %+d s) -> ???, ip: %s)\n",
auth_dat[i].userid,
auth_dat[i].connect_until_time,
(auth_dat[i].connect_until_time ==
@@ -3350,7 +3303,7 @@ void parse_admin (int fd)
return;
WFIFOW (fd, 0) = 0x7953;
WFIFOL (fd, 2) = -1;
- account_name = RFIFOP (fd, 2);
+ account_name = (char *)RFIFOP (fd, 2);
account_name[23] = '\0';
remove_control_chars (account_name);
i = search_account_index (account_name);
@@ -3438,7 +3391,7 @@ void parse_admin (int fd)
login_log
("'ladmin': Attempt to obtain information (by the id) of an unknown account (id: %d, ip: %s)\n",
RFIFOL (fd, 2), ip);
- strncpy (WFIFOP (fd, 7), "", 24);
+ strncpy ((char *)WFIFOP (fd, 7), "", 24);
WFIFOW (fd, 148) = 0;
WFIFOSET (fd, 150);
}
@@ -3523,6 +3476,8 @@ void parse_admin (int fd)
//--------------------------------------------
// Test to know if an IP come from LAN or WAN.
//--------------------------------------------
+// TODO fix to not take a ptr-to-uint8_t
+static
int lan_ip_check (unsigned char *p)
{
int i;
@@ -3548,15 +3503,15 @@ int lan_ip_check (unsigned char *p)
//----------------------------------------------------------------------------------------
// Default packet parsing (normal players or administation/char-server connexion requests)
//----------------------------------------------------------------------------------------
+static
void parse_login (int fd)
{
struct mmo_account account;
- int result, i, j;
+ int result, j;
unsigned char *p = (unsigned char *) &session[fd]->client_addr.sin_addr;
- char ip[16];
int host_len;
- sprintf (ip, "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
+ const char *ip = ip2str(session[fd]->client_addr.sin_addr);
if (session[fd]->eof)
{
@@ -3608,10 +3563,10 @@ void parse_login (int fd)
if (RFIFOREST (fd) < ((RFIFOW (fd, 0) == 0x64) ? 55 : 47))
return;
- account.userid = RFIFOP (fd, 6);
+ account.userid = (char *)RFIFOP (fd, 6);
account.userid[23] = '\0';
remove_control_chars (account.userid);
- account.passwd = RFIFOP (fd, 30);
+ account.passwd = (char *)RFIFOP (fd, 30);
if (RFIFOW (fd, 0) == 0x64)
{
account.passwd[23] = '\0';
@@ -3637,7 +3592,7 @@ void parse_login (int fd)
account.userid, ip);
}
- if (!check_ip (session[fd]->client_addr.sin_addr.s_addr))
+ if (!check_ip (session[fd]->client_addr.sin_addr))
{
login_log
("Connection refused: IP isn't authorised (deny/allow, ip: %s).\n",
@@ -3701,8 +3656,8 @@ void parse_login (int fd)
// Load list of char servers into outbound packet
server_num = 0;
- if (version_2 && VERSION_2_SERVERORDER)
- for (i = 0; i < MAX_SERVERS; i++)
+ if (version_2 & VERSION_2_SERVERORDER)
+ for (int i = 0; i < MAX_SERVERS; i++)
{
if (server_fd[i] >= 0)
{
@@ -3727,7 +3682,7 @@ void parse_login (int fd)
}
}
else // Send them in reverse, as the client defaults to the second (!) one
- for (i = MAX_SERVERS - 1; i >= 0; i--)
+ for (int i = MAX_SERVERS - 1; i >= 0; i--)
{
if (server_fd[i] >= 0)
{
@@ -3796,7 +3751,7 @@ void parse_login (int fd)
WFIFOB (fd, 2) = result;
if (result == 6)
{ // 6 = Your are Prohibited to log in until %s
- i = search_account_index (account.userid);
+ int i = search_account_index (account.userid);
if (i != -1)
{
if (auth_dat[i].ban_until_time != 0)
@@ -3854,7 +3809,7 @@ void parse_login (int fd)
// Creation of the coding key
memset (ld->md5key, '\0', sizeof (ld->md5key));
ld->md5keylen = rand () % 4 + 12;
- for (i = 0; i < ld->md5keylen; i++)
+ for (int i = 0; i < ld->md5keylen; i++)
ld->md5key[i] = rand () % 255 + 1;
RFIFOSKIP (fd, 2);
@@ -3870,15 +3825,15 @@ void parse_login (int fd)
return;
{
int GM_value, len;
- unsigned char *server_name;
- account.userid = RFIFOP (fd, 2);
+ char *server_name;
+ account.userid = (char *)RFIFOP (fd, 2);
account.userid[23] = '\0';
remove_control_chars (account.userid);
- account.passwd = RFIFOP (fd, 26);
+ account.passwd = (char *)RFIFOP (fd, 26);
account.passwd[23] = '\0';
remove_control_chars (account.passwd);
account.passwdenc = 0;
- server_name = RFIFOP (fd, 60);
+ server_name = (char *)RFIFOP (fd, 60);
server_name[19] = '\0';
remove_control_chars (server_name);
login_log
@@ -3943,7 +3898,7 @@ void parse_login (int fd)
// send GM account to char-server
len = 4;
WFIFOW (fd, 0) = 0x2732;
- for (i = 0; i < auth_num; i++)
+ for (int i = 0; i < auth_num; i++)
// send only existing accounts. We can not create a GM account when server is online.
if ((GM_value =
isGM (auth_dat[i].account_id)) > 0)
@@ -3995,7 +3950,7 @@ void parse_login (int fd)
WFIFOW (fd, 0) = 0x7919;
WFIFOB (fd, 2) = 1;
if (!check_ladminip
- (session[fd]->client_addr.sin_addr.s_addr))
+ (session[fd]->client_addr.sin_addr))
{
login_log
("'ladmin'-login: Connection in administration mode refused: IP isn't authorised (ladmin_allow, ip: %s).\n",
@@ -4006,8 +3961,8 @@ void parse_login (int fd)
struct login_session_data *ld = (struct login_session_data *)session[fd]->session_data;
if (RFIFOW (fd, 2) == 0)
{ // non encrypted password
- unsigned char *password;
- password = RFIFOP (fd, 4);
+ char *password;
+ password = (char *)RFIFOP (fd, 4);
password[23] = '\0';
remove_control_chars (password);
// If remote administration is enabled and password sent by client matches password read from login server configuration file
@@ -4038,7 +3993,8 @@ void parse_login (int fd)
("'ladmin'-login: error! MD5 key not created/requested for an administration login.\n");
else
{
- char md5str[64] = "", md5bin[32];
+ char md5str[64] = "";
+ uint8_t md5bin[32];
if (RFIFOW (fd, 2) == 1)
{
strncpy (md5str, ld->md5key, sizeof (ld->md5key)); // 20
@@ -4100,6 +4056,8 @@ void parse_login (int fd)
fprintf (logfp,
"---- 00-01-02-03-04-05-06-07 08-09-0A-0B-0C-0D-0E-0F\n");
memset (tmpstr, '\0', sizeof (tmpstr));
+
+ int i;
for (i = 0; i < RFIFOREST (fd); i++)
{
if ((i & 15) == 0)
@@ -4139,26 +4097,10 @@ void parse_login (int fd)
return;
}
-//-------------------------------------------------
-// Return numerical value of a switch configuration
-// on/off, english, français, deutsch, español
-//-------------------------------------------------
-int config_switch (const char *str)
-{
- if (strcasecmp (str, "on") == 0 || strcasecmp (str, "yes") == 0
- || strcasecmp (str, "oui") == 0 || strcasecmp (str, "ja") == 0
- || strcasecmp (str, "si") == 0)
- return 1;
- if (strcasecmp (str, "off") == 0 || strcasecmp (str, "no") == 0
- || strcasecmp (str, "non") == 0 || strcasecmp (str, "nein") == 0)
- return 0;
-
- return atoi (str);
-}
-
//----------------------------------
// Reading Lan Support configuration
//----------------------------------
+static
int login_lan_config_read (const char *lancfgName)
{
int j;
@@ -4291,6 +4233,7 @@ int login_lan_config_read (const char *lancfgName)
//-----------------------------------
// Reading general configuration file
//-----------------------------------
+static
int login_config_read (const char *cfgName)
{
char line[1024], w1[1024], w2[1024];
@@ -4576,6 +4519,7 @@ int login_config_read (const char *cfgName)
//-------------------------------------
// Displaying of configuration warnings
//-------------------------------------
+static
void display_conf_warnings (void)
{
if (admin_state != 0 && admin_state != 1)
@@ -4766,6 +4710,7 @@ void display_conf_warnings (void)
//-------------------------------
// Save configuration in log file
//-------------------------------
+static
void save_config_in_log (void)
{
int i;
diff --git a/src/map/GNUmakefile b/src/map/GNUmakefile
index a02deda..0945926 100644
--- a/src/map/GNUmakefile
+++ b/src/map/GNUmakefile
@@ -1,7 +1,7 @@
.SUFFIXES:
all:
- make -C ../.. map-server
+ ${MAKE} -C ../.. map-server
clean:
rm -r ../../obj/map/
%::
- make -C ../.. obj/map/$@
+ ${MAKE} -C ../.. obj/map/$@
diff --git a/src/map/atcommand.cpp b/src/map/atcommand.cpp
index 8f62ca2..c608af5 100644
--- a/src/map/atcommand.cpp
+++ b/src/map/atcommand.cpp
@@ -10,6 +10,8 @@
#include <time.h>
#include <unistd.h>
+#include <array>
+
#include "../common/socket.hpp"
#include "../common/timer.hpp"
#include "../common/nullpo.hpp"
@@ -38,16 +40,14 @@
static char command_symbol = '@'; // first char of the commands (by [Yor])
-static char msg_table[1000][1024]; // Server messages (0-499 reserved for GM commands, 500-999 reserved for others)
-
#define ATCOMMAND_FUNC(x) int atcommand_ ## x (const int fd, struct map_session_data* sd, const char* command, const char* message)
ATCOMMAND_FUNC (setup);
ATCOMMAND_FUNC (broadcast);
ATCOMMAND_FUNC (localbroadcast);
ATCOMMAND_FUNC (charwarp);
-ATCOMMAND_FUNC (warp);
+//ATCOMMAND_FUNC (warp);
ATCOMMAND_FUNC (where);
-ATCOMMAND_FUNC (goto);
+//ATCOMMAND_FUNC (goto);
ATCOMMAND_FUNC (jump);
ATCOMMAND_FUNC (who);
ATCOMMAND_FUNC (whogroup);
@@ -66,7 +66,7 @@ ATCOMMAND_FUNC (kill);
ATCOMMAND_FUNC (alive);
ATCOMMAND_FUNC (kami);
ATCOMMAND_FUNC (heal);
-ATCOMMAND_FUNC (item);
+//ATCOMMAND_FUNC (item);
ATCOMMAND_FUNC (itemreset);
ATCOMMAND_FUNC (itemcheck);
ATCOMMAND_FUNC (baselevelup);
@@ -79,7 +79,7 @@ ATCOMMAND_FUNC (gvgoff);
ATCOMMAND_FUNC (gvgon);
ATCOMMAND_FUNC (model);
ATCOMMAND_FUNC (go);
-ATCOMMAND_FUNC (spawn);
+//ATCOMMAND_FUNC (spawn);
ATCOMMAND_FUNC (killmonster);
ATCOMMAND_FUNC (killmonster2);
ATCOMMAND_FUNC (refine);
@@ -92,7 +92,7 @@ ATCOMMAND_FUNC (skillpoint);
ATCOMMAND_FUNC (zeny);
ATCOMMAND_FUNC (param);
ATCOMMAND_FUNC (guildlevelup);
-ATCOMMAND_FUNC (recall);
+//ATCOMMAND_FUNC (recall);
ATCOMMAND_FUNC (recallall);
ATCOMMAND_FUNC (revive);
ATCOMMAND_FUNC (character_stats);
@@ -420,6 +420,7 @@ static AtCommandInfo atcommand_info[] = {
* This function return the name of the job (by [Yor])
*----------------------------------------------------
*/
+static
const char *job_name (int pc_class)
{
switch (pc_class)
@@ -566,61 +567,6 @@ const char *job_name (int pc_class)
return "Unknown Job";
}
-//-----------------------------------------------------------
-// Return the message string of the specified number by [Yor]
-//-----------------------------------------------------------
-char *msg_txt (int msg_number)
-{
- if (msg_number >= 0
- && msg_number < (int) (sizeof (msg_table) / sizeof (msg_table[0]))
- && msg_table[msg_number] != NULL && msg_table[msg_number][0] != '\0')
- return msg_table[msg_number];
-
- return "??";
-}
-
-//------------------------------------------------------------
-// E-mail check: return 0 (not correct) or 1 (valid). by [Yor]
-//------------------------------------------------------------
-int e_mail_check (unsigned char *email)
-{
- char ch;
- unsigned char *last_arobas;
-
- // athena limits
- if (strlen (email) < 3 || strlen (email) > 39)
- return 0;
-
- // part of RFC limits (official reference of e-mail description)
- if (strchr (email, '@') == NULL || email[strlen (email) - 1] == '@')
- return 0;
-
- if (email[strlen (email) - 1] == '.')
- return 0;
-
- last_arobas = strrchr (email, '@');
-
- if (strstr (last_arobas, "@.") != NULL ||
- strstr (last_arobas, "..") != NULL)
- return 0;
-
- for (ch = 1; ch < 32; ch++)
- {
- if (strchr (last_arobas, ch) != NULL)
- {
- return 0;
- break;
- }
- }
-
- if (strchr (last_arobas, ' ') != NULL ||
- strchr (last_arobas, ';') != NULL)
- return 0;
-
- // all correct
- return 1;
-}
-
/*==========================================
* get_atcommand_level @コマンドの必要レベルを取得
*------------------------------------------
@@ -744,7 +690,7 @@ is_atcommand (const int fd, struct map_session_data *sd, const char *message,
if (type == AtCommand_Unknown || info.proc == NULL)
{
- sprintf (output, msg_table[153], command); // %s is Unknown Command.
+ sprintf (output, "%s is Unknown Command.", command);
clif_displaymessage (fd, output);
}
else
@@ -752,7 +698,7 @@ is_atcommand (const int fd, struct map_session_data *sd, const char *message,
if (info.proc (fd, sd, command, p) != 0)
{
// Command can not be executed
- sprintf (output, msg_table[154], command); // %s failed.
+ sprintf (output, "%s failed.", command);
clif_displaymessage (fd, output);
}
else
@@ -844,48 +790,6 @@ static int atkillmonster_sub (struct block_list *bl, va_list ap)
}
/*==========================================
- * Read Message Data
- *------------------------------------------
- */
-int msg_config_read (const char *cfgName)
-{
- int msg_number;
- char line[1024], w1[1024], w2[1024];
- FILE *fp;
-
- if ((fp = fopen_ (cfgName, "r")) == NULL)
- {
- printf ("Messages file not found: %s\n", cfgName);
- return 1;
- }
-
- while (fgets (line, sizeof (line) - 1, fp))
- {
- if (line[0] == '/' && line[1] == '/')
- continue;
- if (sscanf (line, "%[^:]: %[^\r\n]", w1, w2) == 2)
- {
- if (strcasecmp (w1, "import") == 0)
- {
- msg_config_read (w2);
- }
- else
- {
- msg_number = atoi (w1);
- if (msg_number >= 0
- && msg_number <
- (int) (sizeof (msg_table) / sizeof (msg_table[0])))
- strcpy (msg_table[msg_number], w2);
- // printf("message #%d: '%s'.\n", msg_number, msg_table[msg_number]);
- }
- }
- }
- fclose_ (fp);
-
- return 0;
-}
-
-/*==========================================
*
*------------------------------------------
*/
@@ -1051,30 +955,30 @@ int atcommand_charwarp (const int fd, struct map_session_data *sd,
}
if (pc_setpos (pl_sd, map_name, x, y, 3) == 0)
{
- clif_displaymessage (pl_sd->fd, msg_table[0]); // Warped.
- clif_displaymessage (fd, msg_table[15]); // Player warped (message sends to player too).
+ clif_displaymessage (pl_sd->fd, "Warped.");
+ clif_displaymessage (fd, "Player warped (message sends to player too).");
}
else
{
- clif_displaymessage (fd, msg_table[1]); // Map not found.
+ clif_displaymessage (fd, "Map not found.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[2]); // Coordinates out of range.
+ clif_displaymessage (fd, "Coordinates out of range.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -1128,16 +1032,16 @@ int atcommand_warp (const int fd, struct map_session_data *sd,
return -1;
}
if (pc_setpos (sd, map_name, x, y, 3) == 0)
- clif_displaymessage (fd, msg_table[0]); // Warped.
+ clif_displaymessage (fd, "Warped.");
else
{
- clif_displaymessage (fd, msg_table[1]); // Map not found.
+ clif_displaymessage (fd, "Map not found.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[2]); // Coordinates out of range.
+ clif_displaymessage (fd, "Coordinates out of range.");
return -1;
}
@@ -1172,7 +1076,7 @@ int atcommand_where (const int fd, struct map_session_data *sd,
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -1217,12 +1121,12 @@ int atcommand_goto (const int fd, struct map_session_data *sd,
return -1;
}
pc_setpos (sd, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y, 3);
- sprintf (output, msg_table[4], character); // Jump to %s
+ sprintf (output, "Jump to %s", character);
clif_displaymessage (fd, output);
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -1264,12 +1168,12 @@ int atcommand_jump (const int fd, struct map_session_data *sd,
return -1;
}
pc_setpos (sd, sd->mapname, x, y, 3);
- sprintf (output, msg_table[5], x, y); // Jump to %d %d
+ sprintf (output, "Jump to %d %d", x, y);
clif_displaymessage (fd, output);
}
else
{
- clif_displaymessage (fd, msg_table[2]); // Coordinates out of range.
+ clif_displaymessage (fd, "Coordinates out of range.");
return -1;
}
@@ -1334,12 +1238,12 @@ int atcommand_who (const int fd, struct map_session_data *sd,
}
if (count == 0)
- clif_displaymessage (fd, msg_table[28]); // No player found.
+ clif_displaymessage (fd, "No player found.");
else if (count == 1)
- clif_displaymessage (fd, msg_table[29]); // 1 player found.
+ clif_displaymessage (fd, "1 player found.");
else
{
- sprintf (output, msg_table[30], count); // %d players found.
+ sprintf (output, "%d players found.", count);
clif_displaymessage (fd, output);
}
@@ -1420,12 +1324,12 @@ int atcommand_whogroup (const int fd, struct map_session_data *sd,
}
if (count == 0)
- clif_displaymessage (fd, msg_table[28]); // No player found.
+ clif_displaymessage (fd, "No player found.");
else if (count == 1)
- clif_displaymessage (fd, msg_table[29]); // 1 player found.
+ clif_displaymessage (fd, "1 player found.");
else
{
- sprintf (output, msg_table[30], count); // %d players found.
+ sprintf (output, "%d players found.", count);
clif_displaymessage (fd, output);
}
@@ -1492,12 +1396,12 @@ int atcommand_whomap (const int fd, struct map_session_data *sd,
}
if (count == 0)
- sprintf (output, msg_table[54], map[map_id].name); // No player found in map '%s'.
+ sprintf (output, "No player found in map '%s'.", map[map_id].name);
else if (count == 1)
- sprintf (output, msg_table[55], map[map_id].name); // 1 player found in map '%s'.
+ sprintf (output, "1 player found in map '%s'.", map[map_id].name);
else
{
- sprintf (output, msg_table[56], count, map[map_id].name); // %d players found in map '%s'.
+ sprintf (output, "%d players found in map '%s'.", count, map[map_id].name);
}
clif_displaymessage (fd, output);
@@ -1580,12 +1484,12 @@ int atcommand_whomapgroup (const int fd, struct map_session_data *sd,
}
if (count == 0)
- sprintf (output, msg_table[54], map[map_id].name); // No player found in map '%s'.
+ sprintf (output, "No player found in map '%s'.", map[map_id].name);
else if (count == 1)
- sprintf (output, msg_table[55], map[map_id].name); // 1 player found in map '%s'.
+ sprintf (output, "1 player found in map '%s'.", map[map_id].name);
else
{
- sprintf (output, msg_table[56], count, map[map_id].name); // %d players found in map '%s'.
+ sprintf (output, "%d players found in map '%s'.", count, map[map_id].name);
}
clif_displaymessage (fd, output);
@@ -1673,12 +1577,12 @@ int atcommand_whogm (const int fd, struct map_session_data *sd,
}
if (count == 0)
- clif_displaymessage (fd, msg_table[150]); // No GM found.
+ clif_displaymessage (fd, "No GM found.");
else if (count == 1)
- clif_displaymessage (fd, msg_table[151]); // 1 GM found.
+ clif_displaymessage (fd, "1 GM found.");
else
{
- sprintf (output, msg_table[152], count); // %d GMs found.
+ sprintf (output, "%d GMs found.", count);
clif_displaymessage (fd, output);
}
@@ -1697,7 +1601,7 @@ int atcommand_save (const int fd, struct map_session_data *sd,
pc_setsavepoint (sd, sd->mapname, sd->bl.x, sd->bl.y);
pc_makesavestatus (sd);
chrif_save (sd);
- clif_displaymessage (fd, msg_table[6]); // Character data respawn point saved.
+ clif_displaymessage (fd, "Character data respawn point saved.");
return 0;
}
@@ -1729,7 +1633,7 @@ int atcommand_load (const int fd, struct map_session_data *sd,
pc_setpos (sd, sd->status.save_point.map, sd->status.save_point.x,
sd->status.save_point.y, 0);
- clif_displaymessage (fd, msg_table[7]); // Warping to respawn point.
+ clif_displaymessage (fd, "Warping to respawn point.");
return 0;
}
@@ -1762,7 +1666,7 @@ int atcommand_speed (const int fd, struct map_session_data *sd,
//sd->walktimer = x;
//この文を追加 by れ
clif_updatestatus (sd, SP_SPEED);
- clif_displaymessage (fd, msg_table[8]); // Speed changed.
+ clif_displaymessage (fd, "Speed changed.");
}
else
{
@@ -1788,14 +1692,14 @@ int atcommand_storage (const int fd, struct map_session_data *sd,
if (sd->state.storage_flag)
{
- clif_displaymessage (fd, msg_table[250]);
+ clif_displaymessage (fd, "msg_table[250]");
return -1;
}
if ((stor = account2storage2 (sd->status.account_id)) != NULL
&& stor->storage_status == 1)
{
- clif_displaymessage (fd, msg_table[250]);
+ clif_displaymessage (fd, "msg_table[250]");
return -1;
}
@@ -1818,20 +1722,20 @@ int atcommand_guildstorage (const int fd, struct map_session_data *sd,
{
if (sd->state.storage_flag)
{
- clif_displaymessage (fd, msg_table[251]);
+ clif_displaymessage (fd, "msg_table[251]");
return -1;
}
if ((stor = account2storage2 (sd->status.account_id)) != NULL
&& stor->storage_status == 1)
{
- clif_displaymessage (fd, msg_table[251]);
+ clif_displaymessage (fd, "msg_table[251]");
return -1;
}
storage_guild_storageopen (sd);
}
else
{
- clif_displaymessage (fd, msg_table[252]);
+ clif_displaymessage (fd, "msg_table[252]");
return -1;
}
@@ -1908,7 +1812,7 @@ int atcommand_option (const int fd, struct map_session_data *sd,
clif_changeoption (&sd->bl);
pc_calcstatus (sd, 0);
- clif_displaymessage (fd, msg_table[9]); // Options changed.
+ clif_displaymessage (fd, "Options changed.");
return 0;
}
@@ -1923,12 +1827,12 @@ int atcommand_hide (const int fd, struct map_session_data *sd,
if (sd->status.option & OPTION_HIDE)
{
sd->status.option &= ~OPTION_HIDE;
- clif_displaymessage (fd, msg_table[10]); // Invisible: Off
+ clif_displaymessage (fd, "Invisible: Off."); // Invisible: Off
}
else
{
sd->status.option |= OPTION_HIDE;
- clif_displaymessage (fd, msg_table[11]); // Invisible: On
+ clif_displaymessage (fd, "Invisible: On."); // Invisible: On
}
clif_changeoption (&sd->bl);
@@ -1943,7 +1847,7 @@ int atcommand_die (const int fd, struct map_session_data *sd,
const char *command, const char *message)
{
pc_damage (NULL, sd, sd->status.hp + 1);
- clif_displaymessage (fd, msg_table[13]); // A pity! You've died.
+ clif_displaymessage (fd, "A pity! You've died.");
return 0;
}
@@ -1972,17 +1876,17 @@ int atcommand_kill (const int fd, struct map_session_data *sd,
if (pc_isGM (sd) >= pc_isGM (pl_sd))
{ // you can kill only lower or same level
pc_damage (NULL, pl_sd, pl_sd->status.hp + 1);
- clif_displaymessage (fd, msg_table[14]); // Character killed.
+ clif_displaymessage (fd, "Character killed.");
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -2004,7 +1908,7 @@ int atcommand_alive (const int fd, struct map_session_data *sd,
clif_updatestatus (sd, SP_HP);
clif_updatestatus (sd, SP_SP);
clif_resurrection (&sd->bl, 1);
- clif_displaymessage (fd, msg_table[16]); // You've been revived! It's a miracle!
+ clif_displaymessage (fd, "You've been revived! It's a miracle!");
return 0;
}
@@ -2072,13 +1976,13 @@ int atcommand_heal (const int fd, struct map_session_data *sd,
{
pc_heal (sd, hp, sp);
if (hp >= 0 && sp >= 0)
- clif_displaymessage (fd, msg_table[17]); // HP, SP recovered.
+ clif_displaymessage (fd, "HP, SP recovered.");
else
- clif_displaymessage (fd, msg_table[156]); // HP or/and SP modified.
+ clif_displaymessage (fd, "HP or/and SP modified.");
}
else
{
- clif_displaymessage (fd, msg_table[157]); // HP and SP are already with the good value.
+ clif_displaymessage (fd, "HP and SP are already with the good value.");
return -1;
}
@@ -2134,11 +2038,11 @@ int atcommand_item (const int fd, struct map_session_data *sd,
get_count)))
clif_additem ((struct map_session_data *) sd, 0, 0, flag);
}
- clif_displaymessage (fd, msg_table[18]); // Item created.
+ clif_displaymessage (fd, "Item created.");
}
else
{
- clif_displaymessage (fd, msg_table[19]); // Invalid item ID or name.
+ clif_displaymessage (fd, "Invalid item ID or name.");
return -1;
}
@@ -2160,7 +2064,7 @@ int atcommand_itemreset (const int fd, struct map_session_data *sd,
&& sd->status.inventory[i].equip == 0)
pc_delitem (sd, i, sd->status.inventory[i].amount, 0);
}
- clif_displaymessage (fd, msg_table[20]); // All of your items have been removed.
+ clif_displaymessage (fd, "All of your items have been removed.");
return 0;
}
@@ -2197,7 +2101,7 @@ int atcommand_baselevelup (const int fd, struct map_session_data *sd,
{
if (sd->status.base_level == battle_config.maximum_level)
{ // check for max level by Valaris
- clif_displaymessage (fd, msg_table[47]); // Base level can't go any higher.
+ clif_displaymessage (fd, "Base level can't go any higher.");
return -1;
} // End Addition
if (level > battle_config.maximum_level || level > (battle_config.maximum_level - sd->status.base_level)) // fix positiv overflow
@@ -2211,13 +2115,13 @@ int atcommand_baselevelup (const int fd, struct map_session_data *sd,
pc_calcstatus (sd, 0);
pc_heal (sd, sd->status.max_hp, sd->status.max_sp);
clif_misceffect (&sd->bl, 0);
- clif_displaymessage (fd, msg_table[21]); // Base level raised.
+ clif_displaymessage (fd, "Base level raised.");
}
else
{
if (sd->status.base_level == 1)
{
- clif_displaymessage (fd, msg_table[158]); // Base level can't go any lower.
+ clif_displaymessage (fd, "Base level can't go any lower.");
return -1;
}
if (level < -battle_config.maximum_level || level < (1 - sd->status.base_level)) // fix negativ overflow
@@ -2235,7 +2139,7 @@ int atcommand_baselevelup (const int fd, struct map_session_data *sd,
clif_updatestatus (sd, SP_BASELEVEL);
clif_updatestatus (sd, SP_NEXTBASEEXP);
pc_calcstatus (sd, 0);
- clif_displaymessage (fd, msg_table[22]); // Base level lowered.
+ clif_displaymessage (fd, "Base level lowered.");
}
return 0;
@@ -2267,7 +2171,7 @@ int atcommand_joblevelup (const int fd, struct map_session_data *sd,
{
if (sd->status.job_level == up_level)
{
- clif_displaymessage (fd, msg_table[23]); // Job level can't go any higher.
+ clif_displaymessage (fd, "Job level can't go any higher.");
return -1;
}
if (level > up_level || level > (up_level - sd->status.job_level)) // fix positiv overflow
@@ -2279,13 +2183,13 @@ int atcommand_joblevelup (const int fd, struct map_session_data *sd,
clif_updatestatus (sd, SP_SKILLPOINT);
pc_calcstatus (sd, 0);
clif_misceffect (&sd->bl, 1);
- clif_displaymessage (fd, msg_table[24]); // Job level raised.
+ clif_displaymessage (fd, "Job level raised.");
}
else
{
if (sd->status.job_level == 1)
{
- clif_displaymessage (fd, msg_table[159]); // Job level can't go any lower.
+ clif_displaymessage (fd, "Job level can't go any lower.");
return -1;
}
if (level < -up_level || level < (1 - sd->status.job_level)) // fix negativ overflow
@@ -2301,7 +2205,7 @@ int atcommand_joblevelup (const int fd, struct map_session_data *sd,
clif_updatestatus (sd, SP_SKILLPOINT);
} // to add: remove status points from skills
pc_calcstatus (sd, 0);
- clif_displaymessage (fd, msg_table[25]); // Job level lowered.
+ clif_displaymessage (fd, "Job level lowered.");
}
return 0;
@@ -2322,7 +2226,7 @@ int atcommand_help (const int fd, struct map_session_data *sd,
if ((fp = fopen_ (help_txt, "r")) != NULL)
{
- clif_displaymessage (fd, msg_table[26]); // Help commands:
+ clif_displaymessage (fd, "Help commands:");
gm_level = pc_isGM (sd);
while (fgets (buf, sizeof (buf) - 1, fp) != NULL)
{
@@ -2345,7 +2249,7 @@ int atcommand_help (const int fd, struct map_session_data *sd,
}
else
{
- clif_displaymessage (fd, msg_table[27]); // File help.txt not found.
+ clif_displaymessage (fd, "File help.txt not found.");
return -1;
}
@@ -2372,7 +2276,7 @@ int atcommand_gm (const int fd, struct map_session_data *sd,
if (pc_isGM (sd))
{ // a GM can not use this function. only a normal player (become gm is not for gm!)
- clif_displaymessage (fd, msg_table[50]); // You already have some GM powers.
+ clif_displaymessage (fd, "You already have some GM powers.");
return -1;
}
else
@@ -2394,7 +2298,7 @@ int atcommand_pvpoff (const int fd, struct map_session_data *sd,
if (battle_config.pk_mode)
{ //disable command if server is in PK mode [Valaris]
- clif_displaymessage (fd, msg_table[52]); // This option cannot be used in PK Mode.
+ clif_displaymessage (fd, "This option cannot be used in PK Mode.");
return -1;
}
@@ -2419,11 +2323,11 @@ int atcommand_pvpoff (const int fd, struct map_session_data *sd,
}
}
}
- clif_displaymessage (fd, msg_table[31]); // PvP: Off.
+ clif_displaymessage (fd, "PvP: Off.");
}
else
{
- clif_displaymessage (fd, msg_table[160]); // PvP is already Off.
+ clif_displaymessage (fd, "PvP is already Off.");
return -1;
}
@@ -2442,7 +2346,7 @@ int atcommand_pvpon (const int fd, struct map_session_data *sd,
if (battle_config.pk_mode)
{ //disable command if server is in PK mode [Valaris]
- clif_displaymessage (fd, msg_table[52]); // This option cannot be used in PK Mode.
+ clif_displaymessage (fd, "This option cannot be used in PK Mode.");
return -1;
}
@@ -2466,11 +2370,11 @@ int atcommand_pvpon (const int fd, struct map_session_data *sd,
}
}
}
- clif_displaymessage (fd, msg_table[32]); // PvP: On.
+ clif_displaymessage (fd, "PvP: On.");
}
else
{
- clif_displaymessage (fd, msg_table[161]); // PvP is already On.
+ clif_displaymessage (fd, "PvP is already On.");
return -1;
}
@@ -2488,11 +2392,11 @@ int atcommand_gvgoff (const int fd, struct map_session_data *sd,
{
map[sd->bl.m].flag.gvg = 0;
clif_send0199 (sd->bl.m, 0);
- clif_displaymessage (fd, msg_table[33]); // GvG: Off.
+ clif_displaymessage (fd, "GvG: Off.");
}
else
{
- clif_displaymessage (fd, msg_table[162]); // GvG is already Off.
+ clif_displaymessage (fd, "GvG is already Off.");
return -1;
}
@@ -2510,11 +2414,11 @@ int atcommand_gvgon (const int fd, struct map_session_data *sd,
{
map[sd->bl.m].flag.gvg = 1;
clif_send0199 (sd->bl.m, 3);
- clif_displaymessage (fd, msg_table[34]); // GvG: On.
+ clif_displaymessage (fd, "GvG: On.");
}
else
{
- clif_displaymessage (fd, msg_table[163]); // GvG is already On.
+ clif_displaymessage (fd, "GvG is already On.");
return -1;
}
@@ -2554,7 +2458,7 @@ int atcommand_model (const int fd, struct map_session_data *sd,
&& (sd->status.pc_class == 12 || sd->status.pc_class == 17))
{
//服の色未実装職の判定
- clif_displaymessage (fd, msg_table[35]); // You can't use this command with this class.
+ clif_displaymessage (fd, "You can't use this command with this class.");
return -1;
}
else
@@ -2562,12 +2466,12 @@ int atcommand_model (const int fd, struct map_session_data *sd,
pc_changelook (sd, LOOK_HAIR, hair_style);
pc_changelook (sd, LOOK_HAIR_COLOR, hair_color);
pc_changelook (sd, LOOK_CLOTHES_COLOR, cloth_color);
- clif_displaymessage (fd, msg_table[36]); // Appearence changed.
+ clif_displaymessage (fd, "Appearence changed.");
}
}
else
{
- clif_displaymessage (fd, msg_table[37]); // An invalid number was specified.
+ clif_displaymessage (fd, "An invalid number was specified.");
return -1;
}
@@ -2600,18 +2504,18 @@ int atcommand_dye (const int fd, struct map_session_data *sd,
if (cloth_color != 0 && sd->status.sex == 1
&& (sd->status.pc_class == 12 || sd->status.pc_class == 17))
{
- clif_displaymessage (fd, msg_table[35]); // You can't use this command with this class.
+ clif_displaymessage (fd, "You can't use this command with this class.");
return -1;
}
else
{
pc_changelook (sd, LOOK_CLOTHES_COLOR, cloth_color);
- clif_displaymessage (fd, msg_table[36]); // Appearence changed.
+ clif_displaymessage (fd, "Appearence changed.");
}
}
else
{
- clif_displaymessage (fd, msg_table[37]); // An invalid number was specified.
+ clif_displaymessage (fd, "An invalid number was specified.");
return -1;
}
@@ -2655,18 +2559,18 @@ int atcommand_hair_style (const int fd, struct map_session_data *sd,
if (hair_style != 0 && sd->status.sex == 1
&& (sd->status.pc_class == 12 || sd->status.pc_class == 17))
{
- clif_displaymessage (fd, msg_table[35]); // You can't use this command with this class.
+ clif_displaymessage (fd, "You can't use this command with this class.");
return -1;
}
else
{
pc_changelook (sd, LOOK_HAIR, hair_style);
- clif_displaymessage (fd, msg_table[36]); // Appearence changed.
+ clif_displaymessage (fd, "Appearence changed.");
}
}
else
{
- clif_displaymessage (fd, msg_table[37]); // An invalid number was specified.
+ clif_displaymessage (fd, "An invalid number was specified.");
return -1;
}
@@ -2710,18 +2614,18 @@ int atcommand_hair_color (const int fd, struct map_session_data *sd,
if (hair_color != 0 && sd->status.sex == 1
&& (sd->status.pc_class == 12 || sd->status.pc_class == 17))
{
- clif_displaymessage (fd, msg_table[35]); // You can't use this command with this class.
+ clif_displaymessage (fd, "You can't use this command with this class.");
return -1;
}
else
{
pc_changelook (sd, LOOK_HAIR_COLOR, hair_color);
- clif_displaymessage (fd, msg_table[36]); // Appearence changed.
+ clif_displaymessage (fd, "Appearence changed.");
}
}
else
{
- clif_displaymessage (fd, msg_table[37]); // An invalid number was specified.
+ clif_displaymessage (fd, "An invalid number was specified.");
return -1;
}
@@ -2804,8 +2708,8 @@ int atcommand_go (const int fd, struct map_session_data *sd,
if (!message || !*message || sscanf (message, "%99s", map_name) < 1
|| town < -3 || town >= (int) (sizeof (data) / sizeof (data[0])))
{
- clif_displaymessage (fd, msg_table[38]); // Invalid location number or name.
- clif_displaymessage (fd, msg_table[82]); // Please, use one of this number/name:
+ clif_displaymessage (fd, "Invalid location number or name.");
+ clif_displaymessage (fd, "Please, use one of this number/name:");
clif_displaymessage (fd,
"-3=(Memo point 2) 4=Alberta 11=Gon Ryun");
clif_displaymessage (fd,
@@ -2934,17 +2838,17 @@ int atcommand_go (const int fd, struct map_session_data *sd,
sd->status.memo_point[-town - 1].x,
sd->status.memo_point[-town - 1].y, 3) == 0)
{
- clif_displaymessage (fd, msg_table[0]); // Warped.
+ clif_displaymessage (fd, "Warped.");
}
else
{
- clif_displaymessage (fd, msg_table[1]); // Map not found.
+ clif_displaymessage (fd, "Map not found.");
return -1;
}
}
else
{
- sprintf (output, msg_table[164], -town - 1); // Your memo point #%d doesn't exist.
+ sprintf (output, "Your memo point #%d doesn't exist.", -town - 1);
clif_displaymessage (fd, output);
return -1;
}
@@ -2969,17 +2873,17 @@ int atcommand_go (const int fd, struct map_session_data *sd,
if (pc_setpos (sd, data[town].map, data[town].x, data[town].y, 3)
== 0)
{
- clif_displaymessage (fd, msg_table[0]); // Warped.
+ clif_displaymessage (fd, "Warped.");
}
else
{
- clif_displaymessage (fd, msg_table[1]); // Map not found.
+ clif_displaymessage (fd, "Map not found.");
return -1;
}
}
else
{ // if you arrive here, you have an error in town variable when reading of names
- clif_displaymessage (fd, msg_table[38]); // Invalid location number or name.
+ clif_displaymessage (fd, "Invalid location number or name.");
return -1;
}
}
@@ -3009,7 +2913,7 @@ int atcommand_spawn (const int fd, struct map_session_data *sd,
if (!message || !*message
|| sscanf (message, "%99s %d %d %d", monster, &number, &x, &y) < 1)
{
- clif_displaymessage (fd, msg_table[143]); // Give a monster name/id please.
+ clif_displaymessage (fd, "Give a monster name/id please.");
return -1;
}
@@ -3019,13 +2923,13 @@ int atcommand_spawn (const int fd, struct map_session_data *sd,
if (mob_id == 0)
{
- clif_displaymessage (fd, msg_table[40]); // Invalid monster ID or name.
+ clif_displaymessage (fd, "Invalid monster ID or name.");
return -1;
}
if (mob_id == 1288)
{
- clif_displaymessage (fd, msg_table[83]); // Cannot spawn emperium.
+ clif_displaymessage (fd, "Cannot spawn emperium.");
return -1;
}
@@ -3066,15 +2970,15 @@ int atcommand_spawn (const int fd, struct map_session_data *sd,
if (count != 0)
if (number == count)
- clif_displaymessage (fd, msg_table[39]); // All monster summoned!
+ clif_displaymessage (fd, "All monster summoned!");
else
{
- sprintf (output, msg_table[240], count); // %d monster(s) summoned!
+ sprintf (output, "%d monster(s) summoned!", count);
clif_displaymessage (fd, output);
}
else
{
- clif_displaymessage (fd, msg_table[40]); // Invalid monster ID or name.
+ clif_displaymessage (fd, "Invalid monster ID or name.");
return -1;
}
@@ -3085,6 +2989,7 @@ int atcommand_spawn (const int fd, struct map_session_data *sd,
*
*------------------------------------------
*/
+static
void atcommand_killmonster_sub (const int fd, struct map_session_data *sd,
const char *message, const int drop)
{
@@ -3106,7 +3011,7 @@ void atcommand_killmonster_sub (const int fd, struct map_session_data *sd,
map_foreachinarea (atkillmonster_sub, map_id, 0, 0, map[map_id].xs,
map[map_id].ys, BL_MOB, drop);
- clif_displaymessage (fd, msg_table[165]); // All monsters killed!
+ clif_displaymessage (fd, "All monsters killed!");
return;
}
@@ -3221,9 +3126,9 @@ int atcommand_produce (const int fd, struct map_session_data *sd,
if (battle_config.error_log)
printf ("@produce NOT WEAPON [%d]\n", item_id);
if (item_id != 0 && itemdb_exists (item_id))
- sprintf (output, msg_table[169], item_id, item_data->name); // This item (%d: '%s') is not an equipment.
+ sprintf (output, "This item (%d: '%s') is not an equipment.", item_id, item_data->name);
else
- sprintf (output, "%s", msg_table[170]); // This item is not an equipment.
+ sprintf (output, "%s", "This item is not an equipment.");
clif_displaymessage (fd, output);
return -1;
}
@@ -3235,6 +3140,7 @@ int atcommand_produce (const int fd, struct map_session_data *sd,
* Sub-function to display actual memo points
*------------------------------------------
*/
+static
void atcommand_memo_sub (struct map_session_data *sd)
{
int i;
@@ -3251,7 +3157,7 @@ void atcommand_memo_sub (struct map_session_data *sd)
sd->status.memo_point[i].map, sd->status.memo_point[i].x,
sd->status.memo_point[i].y);
else
- sprintf (output, msg_table[171], i); // %d - void
+ sprintf (output, "%d - void", i);
clif_displaymessage (sd->fd, output);
}
@@ -3285,7 +3191,7 @@ int atcommand_memo (const int fd, struct map_session_data *sd,
}
if (sd->status.memo_point[position].map[0])
{
- sprintf (output, msg_table[172], position, sd->status.memo_point[position].map, sd->status.memo_point[position].x, sd->status.memo_point[position].y); // You replace previous memo position %d - %s (%d,%d).
+ sprintf (output, "You replace previous memo position %d - %s (%d,%d).", position, sd->status.memo_point[position].map, sd->status.memo_point[position].x, sd->status.memo_point[position].y);
clif_displaymessage (fd, output);
}
memcpy (sd->status.memo_point[position].map, map[sd->bl.m].name,
@@ -3294,7 +3200,7 @@ int atcommand_memo (const int fd, struct map_session_data *sd,
sd->status.memo_point[position].y = sd->bl.y;
clif_skill_memo (sd, 0);
if (pc_checkskill (sd, AL_WARP) <= (position + 1))
- clif_displaymessage (fd, msg_table[173]); // Note: you don't have the 'Warp' skill level to use it.
+ clif_displaymessage (fd, "Note: you don't have the 'Warp' skill level to use it.");
atcommand_memo_sub (sd);
}
else
@@ -3385,14 +3291,14 @@ int atcommand_statuspoint (const int fd, struct map_session_data *sd,
{
sd->status.status_point = (short) new_status_point;
clif_updatestatus (sd, SP_STATUSPOINT);
- clif_displaymessage (fd, msg_table[174]); // Number of status points changed!
+ clif_displaymessage (fd, "Number of status points changed!");
}
else
{
if (point < 0)
- clif_displaymessage (fd, msg_table[41]); // Impossible to decrease the number/value.
+ clif_displaymessage (fd, "Impossible to decrease the number/value.");
else
- clif_displaymessage (fd, msg_table[149]); // Impossible to increase the number/value.
+ clif_displaymessage (fd, "Impossible to increase the number/value.");
return -1;
}
@@ -3425,14 +3331,14 @@ int atcommand_skillpoint (const int fd, struct map_session_data *sd,
{
sd->status.skill_point = (short) new_skill_point;
clif_updatestatus (sd, SP_SKILLPOINT);
- clif_displaymessage (fd, msg_table[175]); // Number of skill points changed!
+ clif_displaymessage (fd, "Number of skill points changed!");
}
else
{
if (point < 0)
- clif_displaymessage (fd, msg_table[41]); // Impossible to decrease the number/value.
+ clif_displaymessage (fd, "Impossible to decrease the number/value.");
else
- clif_displaymessage (fd, msg_table[149]); // Impossible to increase the number/value.
+ clif_displaymessage (fd, "Impossible to increase the number/value.");
return -1;
}
@@ -3465,14 +3371,14 @@ int atcommand_zeny (const int fd, struct map_session_data *sd,
{
sd->status.zeny = new_zeny;
clif_updatestatus (sd, SP_ZENY);
- clif_displaymessage (fd, msg_table[176]); // Number of zenys changed!
+ clif_displaymessage (fd, "Number of zenys changed!");
}
else
{
if (zeny < 0)
- clif_displaymessage (fd, msg_table[41]); // Impossible to decrease the number/value.
+ clif_displaymessage (fd, "Impossible to decrease the number/value.");
else
- clif_displaymessage (fd, msg_table[149]); // Impossible to increase the number/value.
+ clif_displaymessage (fd, "Impossible to increase the number/value.");
return -1;
}
@@ -3535,14 +3441,14 @@ int atcommand_param (const int fd, struct map_session_data *sd,
clif_updatestatus (sd, SP_STR + index);
clif_updatestatus (sd, SP_USTR + index);
pc_calcstatus (sd, 0);
- clif_displaymessage (fd, msg_table[42]); // Stat changed.
+ clif_displaymessage (fd, "Stat changed.");
}
else
{
if (value < 0)
- clif_displaymessage (fd, msg_table[41]); // Impossible to decrease the number/value.
+ clif_displaymessage (fd, "Impossible to decrease the number/value.");
else
- clif_displaymessage (fd, msg_table[149]); // Impossible to increase the number/value.
+ clif_displaymessage (fd, "Impossible to increase the number/value.");
return -1;
}
@@ -3589,13 +3495,13 @@ int atcommand_all_stats (const int fd, struct map_session_data *sd,
}
if (count > 0) // if at least 1 stat modified
- clif_displaymessage (fd, msg_table[84]); // All stats changed!
+ clif_displaymessage (fd, "All stats changed!");
else
{
if (value < 0)
- clif_displaymessage (fd, msg_table[177]); // Impossible to decrease a stat.
+ clif_displaymessage (fd, "Impossible to decrease a stat.");
else
- clif_displaymessage (fd, msg_table[178]); // Impossible to increase a stat.
+ clif_displaymessage (fd, "Impossible to increase a stat.");
return -1;
}
@@ -3624,12 +3530,12 @@ int atcommand_guildlevelup (const int fd, struct map_session_data *sd,
if (sd->status.guild_id <= 0
|| (guild_info = guild_search (sd->status.guild_id)) == NULL)
{
- clif_displaymessage (fd, msg_table[43]); // You're not in a guild.
+ clif_displaymessage (fd, "You're not in a guild.");
return -1;
}
if (strcmp (sd->status.name, guild_info->master) != 0)
{
- clif_displaymessage (fd, msg_table[44]); // You're not the master of your guild.
+ clif_displaymessage (fd, "You're not the master of your guild.");
return -1;
}
@@ -3643,11 +3549,11 @@ int atcommand_guildlevelup (const int fd, struct map_session_data *sd,
{
intif_guild_change_basicinfo (guild_info->guild_id, GBI_GUILDLV,
&added_level, 2);
- clif_displaymessage (fd, msg_table[179]); // Guild level changed.
+ clif_displaymessage (fd, "Guild level changed.");
}
else
{
- clif_displaymessage (fd, msg_table[45]); // Guild level change failed.
+ clif_displaymessage (fd, "Guild level change failed.");
return -1;
}
@@ -3694,18 +3600,18 @@ int atcommand_recall (const int fd, struct map_session_data *sd,
return -1;
}
pc_setpos (pl_sd, sd->mapname, sd->bl.x, sd->bl.y, 2);
- sprintf (output, msg_table[46], character); // %s recalled!
+ sprintf (output, "%s recalled!", character);
clif_displaymessage (fd, output);
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -3740,11 +3646,11 @@ int atcommand_revive (const int fd, struct map_session_data *sd,
clif_updatestatus (pl_sd, SP_HP);
clif_updatestatus (pl_sd, SP_SP);
clif_resurrection (&pl_sd->bl, 1);
- clif_displaymessage (fd, msg_table[51]); // Character revived.
+ clif_displaymessage (fd, "Character revived.");
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -3814,7 +3720,7 @@ int atcommand_character_stats (const int fd, struct map_session_data *sd,
};
sprintf (job_jobname, "Job - %s %s", job_name (pl_sd->status.pc_class),
"(level %d)");
- sprintf (output, msg_table[53], pl_sd->status.name); // '%s' stats:
+ sprintf (output, "'%s' stats:", pl_sd->status.name);
clif_displaymessage (fd, output);
for (i = 0; output_table[i].format != NULL; i++)
{
@@ -3824,7 +3730,7 @@ int atcommand_character_stats (const int fd, struct map_session_data *sd,
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -3878,12 +3784,12 @@ int atcommand_character_stats_all (const int fd, struct map_session_data *sd,
}
if (count == 0)
- clif_displaymessage (fd, msg_table[28]); // No player found.
+ clif_displaymessage (fd, "No player found.");
else if (count == 1)
- clif_displaymessage (fd, msg_table[29]); // 1 player found.
+ clif_displaymessage (fd, "1 player found.");
else
{
- sprintf (output, msg_table[30], count); // %d players found.
+ sprintf (output, "%d players found.", count);
clif_displaymessage (fd, output);
}
@@ -3960,17 +3866,17 @@ int atcommand_character_option (const int fd, struct map_session_data *sd,
}
clif_changeoption (&pl_sd->bl);
pc_calcstatus (pl_sd, 0);
- clif_displaymessage (fd, msg_table[58]); // Character's options changed.
+ clif_displaymessage (fd, "Character's options changed.");
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -3998,18 +3904,18 @@ int atcommand_char_change_sex (const int fd, struct map_session_data *sd,
// check player name
if (strlen (character) < 4)
{
- clif_displaymessage (fd, msg_table[86]); // Sorry, but a player name have at least 4 characters.
+ clif_displaymessage (fd, "Sorry, but a player name have at least 4 characters.");
return -1;
}
else if (strlen (character) > 23)
{
- clif_displaymessage (fd, msg_table[87]); // Sorry, but a player name have 23 characters maximum.
+ clif_displaymessage (fd, "Sorry, but a player name have 23 characters maximum.");
return -1;
}
else
{
chrif_char_ask_name (sd->status.account_id, character, 5, 0, 0, 0, 0, 0, 0); // type: 5 - changesex
- clif_displaymessage (fd, msg_table[88]); // Character name sends to char-server to ask it.
+ clif_displaymessage (fd, "Character name sends to char-server to ask it.");
}
return 0;
@@ -4037,18 +3943,18 @@ int atcommand_char_block (const int fd, struct map_session_data *sd,
// check player name
if (strlen (character) < 4)
{
- clif_displaymessage (fd, msg_table[86]); // Sorry, but a player name have at least 4 characters.
+ clif_displaymessage (fd, "Sorry, but a player name have at least 4 characters.");
return -1;
}
else if (strlen (character) > 23)
{
- clif_displaymessage (fd, msg_table[87]); // Sorry, but a player name have 23 characters maximum.
+ clif_displaymessage (fd, "Sorry, but a player name have 23 characters maximum.");
return -1;
}
else
{
chrif_char_ask_name (sd->status.account_id, character, 1, 0, 0, 0, 0, 0, 0); // type: 1 - block
- clif_displaymessage (fd, msg_table[88]); // Character name sends to char-server to ask it.
+ clif_displaymessage (fd, "Character name sends to char-server to ask it.");
}
return 0;
@@ -4143,25 +4049,25 @@ int atcommand_char_ban (const int fd, struct map_session_data *sd,
if (year == 0 && month == 0 && day == 0 && hour == 0 && minute == 0
&& second == 0)
{
- clif_displaymessage (fd, msg_table[85]); // Invalid time for ban command.
+ clif_displaymessage (fd, "Invalid time for ban command.");
return -1;
}
// check player name
if (strlen (character) < 4)
{
- clif_displaymessage (fd, msg_table[86]); // Sorry, but a player name have at least 4 characters.
+ clif_displaymessage (fd, "Sorry, but a player name have at least 4 characters.");
return -1;
}
else if (strlen (character) > 23)
{
- clif_displaymessage (fd, msg_table[87]); // Sorry, but a player name have 23 characters maximum.
+ clif_displaymessage (fd, "Sorry, but a player name have 23 characters maximum.");
return -1;
}
else
{
chrif_char_ask_name (sd->status.account_id, character, 2, year, month, day, hour, minute, second); // type: 2 - ban
- clif_displaymessage (fd, msg_table[88]); // Character name sends to char-server to ask it.
+ clif_displaymessage (fd, "Character name sends to char-server to ask it.");
}
return 0;
@@ -4188,19 +4094,19 @@ int atcommand_char_unblock (const int fd, struct map_session_data *sd,
// check player name
if (strlen (character) < 4)
{
- clif_displaymessage (fd, msg_table[86]); // Sorry, but a player name have at least 4 characters.
+ clif_displaymessage (fd, "Sorry, but a player name have at least 4 characters.");
return -1;
}
else if (strlen (character) > 23)
{
- clif_displaymessage (fd, msg_table[87]); // Sorry, but a player name have 23 characters maximum.
+ clif_displaymessage (fd, "Sorry, but a player name have 23 characters maximum.");
return -1;
}
else
{
// send answer to login server via char-server
chrif_char_ask_name (sd->status.account_id, character, 3, 0, 0, 0, 0, 0, 0); // type: 3 - unblock
- clif_displaymessage (fd, msg_table[88]); // Character name sends to char-server to ask it.
+ clif_displaymessage (fd, "Character name sends to char-server to ask it.");
}
return 0;
@@ -4227,19 +4133,19 @@ int atcommand_char_unban (const int fd, struct map_session_data *sd,
// check player name
if (strlen (character) < 4)
{
- clif_displaymessage (fd, msg_table[86]); // Sorry, but a player name have at least 4 characters.
+ clif_displaymessage (fd, "Sorry, but a player name have at least 4 characters.");
return -1;
}
else if (strlen (character) > 23)
{
- clif_displaymessage (fd, msg_table[87]); // Sorry, but a player name have 23 characters maximum.
+ clif_displaymessage (fd, "Sorry, but a player name have 23 characters maximum.");
return -1;
}
else
{
// send answer to login server via char-server
chrif_char_ask_name (sd->status.account_id, character, 4, 0, 0, 0, 0, 0, 0); // type: 4 - unban
- clif_displaymessage (fd, msg_table[88]); // Character name sends to char-server to ask it.
+ clif_displaymessage (fd, "Character name sends to char-server to ask it.");
}
return 0;
@@ -4280,7 +4186,7 @@ int atcommand_character_save (const int fd, struct map_session_data *sd,
m = map_mapname2mapid (map_name);
if (m < 0)
{
- clif_displaymessage (fd, msg_table[1]); // Map not found.
+ clif_displaymessage (fd, "Map not found.");
return -1;
}
else
@@ -4293,18 +4199,18 @@ int atcommand_character_save (const int fd, struct map_session_data *sd,
return -1;
}
pc_setsavepoint (pl_sd, map_name, x, y);
- clif_displaymessage (fd, msg_table[57]); // Character's respawn point changed.
+ clif_displaymessage (fd, "Character's respawn point changed.");
}
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -4331,13 +4237,13 @@ int atcommand_night (const int fd, struct map_session_data *sd,
{
pl_sd->opt2 |= STATE_BLIND;
clif_changeoption (&pl_sd->bl);
- clif_displaymessage (pl_sd->fd, msg_table[59]); // Night has fallen.
+ clif_displaymessage (pl_sd->fd, "Night has fallen.");
}
}
}
else
{
- clif_displaymessage (fd, msg_table[89]); // Sorry, it's already the night. Impossible to execute the command.
+ clif_displaymessage (fd, "Sorry, it's already the night. Impossible to execute the command.");
return -1;
}
@@ -4364,13 +4270,13 @@ int atcommand_day (const int fd, struct map_session_data *sd,
{
pl_sd->opt2 &= ~STATE_BLIND;
clif_changeoption (&pl_sd->bl);
- clif_displaymessage (pl_sd->fd, msg_table[60]); // Day has arrived.
+ clif_displaymessage (pl_sd->fd, "Day has arrived.");
}
}
}
else
{
- clif_displaymessage (fd, msg_table[90]); // Sorry, it's already the day. Impossible to execute the command.
+ clif_displaymessage (fd, "Sorry, it's already the day. Impossible to execute the command.");
return -1;
}
@@ -4394,10 +4300,10 @@ int atcommand_doom (const int fd, struct map_session_data *sd,
&& pc_isGM (sd) >= pc_isGM (pl_sd))
{ // you can doom only lower or same gm level
pc_damage (NULL, pl_sd, pl_sd->status.hp + 1);
- clif_displaymessage (pl_sd->fd, msg_table[61]); // The holy messenger has given judgement.
+ clif_displaymessage (pl_sd->fd, "The holy messenger has given judgement.");
}
}
- clif_displaymessage (fd, msg_table[62]); // Judgement was made.
+ clif_displaymessage (fd, "Judgement was made.");
return 0;
}
@@ -4419,10 +4325,10 @@ int atcommand_doommap (const int fd, struct map_session_data *sd,
&& pc_isGM (sd) >= pc_isGM (pl_sd))
{ // you can doom only lower or same gm level
pc_damage (NULL, pl_sd, pl_sd->status.hp + 1);
- clif_displaymessage (pl_sd->fd, msg_table[61]); // The holy messenger has given judgement.
+ clif_displaymessage (pl_sd->fd, "The holy messenger has given judgement.");
}
}
- clif_displaymessage (fd, msg_table[62]); // Judgement was made.
+ clif_displaymessage (fd, "Judgement was made.");
return 0;
}
@@ -4441,7 +4347,7 @@ static void atcommand_raise_sub (struct map_session_data *sd)
clif_updatestatus (sd, SP_HP);
clif_updatestatus (sd, SP_SP);
clif_resurrection (&sd->bl, 1);
- clif_displaymessage (sd->fd, msg_table[63]); // Mercy has been shown.
+ clif_displaymessage (sd->fd, "Mercy has been shown.");
}
}
@@ -4459,7 +4365,7 @@ int atcommand_raise (const int fd, struct map_session_data *sd,
if (session[i])
atcommand_raise_sub ((struct map_session_data *)session[i]->session_data);
}
- clif_displaymessage (fd, msg_table[64]); // Mercy has been granted.
+ clif_displaymessage (fd, "Mercy has been granted.");
return 0;
}
@@ -4480,7 +4386,7 @@ int atcommand_raisemap (const int fd, struct map_session_data *sd,
&& pl_sd->state.auth && sd->bl.m == pl_sd->bl.m)
atcommand_raise_sub (pl_sd);
}
- clif_displaymessage (fd, msg_table[64]); // Mercy has been granted.
+ clif_displaymessage (fd, "Mercy has been granted.");
return 0;
}
@@ -4516,7 +4422,7 @@ int atcommand_character_baselevel (const int fd, struct map_session_data *sd,
{
if (pl_sd->status.base_level == battle_config.maximum_level)
{ // check for max level by Valaris
- clif_displaymessage (fd, msg_table[91]); // Character's base level can't go any higher.
+ clif_displaymessage (fd, "Character's base level can't go any higher.");
return 0;
} // End Addition
if (level > battle_config.maximum_level || level > (battle_config.maximum_level - pl_sd->status.base_level)) // fix positiv overflow
@@ -4533,13 +4439,13 @@ int atcommand_character_baselevel (const int fd, struct map_session_data *sd,
pc_calcstatus (pl_sd, 0);
pc_heal (pl_sd, pl_sd->status.max_hp, pl_sd->status.max_sp);
clif_misceffect (&pl_sd->bl, 0);
- clif_displaymessage (fd, msg_table[65]); // Character's base level raised.
+ clif_displaymessage (fd, "Character's base level raised.");
}
else
{
if (pl_sd->status.base_level == 1)
{
- clif_displaymessage (fd, msg_table[193]); // Character's base level can't go any lower.
+ clif_displaymessage (fd, "Character's base level can't go any lower.");
return -1;
}
if (level < -battle_config.maximum_level || level < (1 - pl_sd->status.base_level)) // fix negativ overflow
@@ -4559,20 +4465,20 @@ int atcommand_character_baselevel (const int fd, struct map_session_data *sd,
clif_updatestatus (pl_sd, SP_NEXTBASEEXP);
clif_updatestatus (pl_sd, SP_BASEEXP);
pc_calcstatus (pl_sd, 0);
- clif_displaymessage (fd, msg_table[66]); // Character's base level lowered.
+ clif_displaymessage (fd, "Character's base level lowered.");
}
// Reset their stat points to prevent extra points from stacking
atcommand_charstreset(fd, sd,"@charstreset", character);
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -4617,7 +4523,7 @@ int atcommand_character_joblevel (const int fd, struct map_session_data *sd,
{
if (pl_sd->status.job_level == max_level)
{
- clif_displaymessage (fd, msg_table[67]); // Character's job level can't go any higher.
+ clif_displaymessage (fd, "Character's job level can't go any higher.");
return -1;
}
if (pl_sd->status.job_level + level > max_level)
@@ -4629,13 +4535,13 @@ int atcommand_character_joblevel (const int fd, struct map_session_data *sd,
clif_updatestatus (pl_sd, SP_SKILLPOINT);
pc_calcstatus (pl_sd, 0);
clif_misceffect (&pl_sd->bl, 1);
- clif_displaymessage (fd, msg_table[68]); // character's job level raised.
+ clif_displaymessage (fd, "character's job level raised.");
}
else
{
if (pl_sd->status.job_level == 1)
{
- clif_displaymessage (fd, msg_table[194]); // Character's job level can't go any lower.
+ clif_displaymessage (fd, "Character's job level can't go any lower.");
return -1;
}
if (pl_sd->status.job_level + level < 1)
@@ -4651,18 +4557,18 @@ int atcommand_character_joblevel (const int fd, struct map_session_data *sd,
clif_updatestatus (pl_sd, SP_SKILLPOINT);
} // to add: remove status points from skills
pc_calcstatus (pl_sd, 0);
- clif_displaymessage (fd, msg_table[69]); // Character's job level lowered.
+ clif_displaymessage (fd, "Character's job level lowered.");
}
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -4694,13 +4600,13 @@ int atcommand_kick (const int fd, struct map_session_data *sd,
clif_GM_kick (sd, pl_sd, 1);
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -4727,7 +4633,7 @@ int atcommand_kickall (const int fd, struct map_session_data *sd,
}
}
- clif_displaymessage (fd, msg_table[195]); // All players have been kicked!
+ clif_displaymessage (fd, "All players have been kicked!");
return 0;
}
@@ -4742,7 +4648,7 @@ int atcommand_allskills (const int fd, struct map_session_data *sd,
pc_allskillup (sd); // all skills
sd->status.skill_point = 0; // 0 skill points
clif_updatestatus (sd, SP_SKILLPOINT); // update
- clif_displaymessage (fd, msg_table[76]); // You have received all skills.
+ clif_displaymessage (fd, "You have received all skills.");
return 0;
}
@@ -4770,23 +4676,23 @@ int atcommand_questskill (const int fd, struct map_session_data *sd,
if (pc_checkskill (sd, skill_id) == 0)
{
pc_skill (sd, skill_id, 1, 0);
- clif_displaymessage (fd, msg_table[70]); // You have learned the skill.
+ clif_displaymessage (fd, "You have learned the skill.");
}
else
{
- clif_displaymessage (fd, msg_table[196]); // You already have this quest skill.
+ clif_displaymessage (fd, "You already have this quest skill.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[197]); // This skill number doesn't exist or isn't a quest skill.
+ clif_displaymessage (fd, "This skill number doesn't exist or isn't a quest skill.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[198]); // This skill number doesn't exist.
+ clif_displaymessage (fd, "This skill number doesn't exist.");
return -1;
}
@@ -4824,29 +4730,29 @@ int atcommand_charquestskill (const int fd, struct map_session_data *sd,
if (pc_checkskill (pl_sd, skill_id) == 0)
{
pc_skill (pl_sd, skill_id, 1, 0);
- clif_displaymessage (fd, msg_table[199]); // This player has learned the skill.
+ clif_displaymessage (fd, "This player has learned the skill.");
}
else
{
- clif_displaymessage (fd, msg_table[200]); // This player already has this quest skill.
+ clif_displaymessage (fd, "This player already has this quest skill.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[197]); // This skill number doesn't exist or isn't a quest skill.
+ clif_displaymessage (fd, "This skill number doesn't exist or isn't a quest skill.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[198]); // This skill number doesn't exist.
+ clif_displaymessage (fd, "This skill number doesn't exist.");
return -1;
}
@@ -4878,23 +4784,23 @@ int atcommand_lostskill (const int fd, struct map_session_data *sd,
sd->status.skill[skill_id].lv = 0;
sd->status.skill[skill_id].flags = 0;
clif_skillinfoblock (sd);
- clif_displaymessage (fd, msg_table[71]); // You have forgotten the skill.
+ clif_displaymessage (fd, "You have forgotten the skill.");
}
else
{
- clif_displaymessage (fd, msg_table[201]); // You don't have this quest skill.
+ clif_displaymessage (fd, "You don't have this quest skill.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[197]); // This skill number doesn't exist or isn't a quest skill.
+ clif_displaymessage (fd, "This skill number doesn't exist or isn't a quest skill.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[198]); // This skill number doesn't exist.
+ clif_displaymessage (fd, "This skill number doesn't exist.");
return -1;
}
@@ -4934,29 +4840,29 @@ int atcommand_charlostskill (const int fd, struct map_session_data *sd,
pl_sd->status.skill[skill_id].lv = 0;
pl_sd->status.skill[skill_id].flags = 0;
clif_skillinfoblock (pl_sd);
- clif_displaymessage (fd, msg_table[202]); // This player has forgotten the skill.
+ clif_displaymessage (fd, "This player has forgotten the skill.");
}
else
{
- clif_displaymessage (fd, msg_table[203]); // This player doesn't have this quest skill.
+ clif_displaymessage (fd, "This player doesn't have this quest skill.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[197]); // This skill number doesn't exist or isn't a quest skill.
+ clif_displaymessage (fd, "This skill number doesn't exist or isn't a quest skill.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[198]); // This skill number doesn't exist.
+ clif_displaymessage (fd, "This skill number doesn't exist.");
return -1;
}
@@ -5022,13 +4928,13 @@ int atcommand_agitstart (const int fd, struct map_session_data *sd,
{
if (agit_flag == 1)
{
- clif_displaymessage (fd, msg_table[73]); // Already it has started siege warfare.
+ clif_displaymessage (fd, "Already it has started siege warfare.");
return -1;
}
agit_flag = 1;
guild_agit_start ();
- clif_displaymessage (fd, msg_table[72]); // Guild siege warfare start!
+ clif_displaymessage (fd, "Guild siege warfare start!");
return 0;
}
@@ -5042,13 +4948,13 @@ int atcommand_agitend (const int fd, struct map_session_data *sd,
{
if (agit_flag == 0)
{
- clif_displaymessage (fd, msg_table[75]); // Siege warfare hasn't started yet.
+ clif_displaymessage (fd, "Siege warfare hasn't started yet.");
return -1;
}
agit_flag = 0;
guild_agit_end ();
- clif_displaymessage (fd, msg_table[74]); // Guild siege warfare end!
+ clif_displaymessage (fd, "Guild siege warfare end!");
return 0;
}
@@ -5101,7 +5007,7 @@ int atcommand_idsearch (const int fd, struct map_session_data *sd,
return -1;
}
- sprintf (output, msg_table[77], item_name); // The reference result of '%s' (name: id):
+ sprintf (output, "The reference result of '%s' (name: id):", item_name);
clif_displaymessage (fd, output);
match = 0;
for (i = 0; i < 20000; i++)
@@ -5110,11 +5016,11 @@ int atcommand_idsearch (const int fd, struct map_session_data *sd,
&& strstr (item->jname, item_name) != NULL)
{
match++;
- sprintf (output, msg_table[78], item->jname, item->nameid); // %s: %d
+ sprintf (output, "%s: %d", item->jname, item->nameid);
clif_displaymessage (fd, output);
}
}
- sprintf (output, msg_table[79], match); // It is %d affair above.
+ sprintf (output, "It is %d affair above.", match);
clif_displaymessage (fd, output);
return 0;
@@ -5146,18 +5052,18 @@ int atcommand_charskreset (const int fd, struct map_session_data *sd,
if (pc_isGM (sd) >= pc_isGM (pl_sd))
{ // you can reset skill points only lower or same gm level
pc_resetskill (pl_sd);
- sprintf (output, msg_table[206], character); // '%s' skill points reseted!
+ sprintf (output, "'%s' skill points reseted!", character);
clif_displaymessage (fd, output);
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -5190,18 +5096,18 @@ int atcommand_charstreset (const int fd, struct map_session_data *sd,
if (pc_isGM (sd) >= pc_isGM (pl_sd))
{ // you can reset stats points only lower or same gm level
pc_resetstate (pl_sd);
- sprintf (output, msg_table[207], character); // '%s' stats points reseted!
+ sprintf (output, "'%s' stats points reseted!", character);
clif_displaymessage (fd, output);
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -5237,18 +5143,18 @@ int atcommand_charreset (const int fd, struct map_session_data *sd,
pc_resetskill (pl_sd);
pc_setglobalreg (pl_sd, "MAGIC_FLAGS", 0); // [Fate] Reset magic quest variables
pc_setglobalreg (pl_sd, "MAGIC_EXP", 0); // [Fate] Reset magic experience
- sprintf (output, msg_table[208], character); // '%s' skill and stats points reseted!
+ sprintf (output, "'%s' skill and stats points reseted!", character);
clif_displaymessage (fd, output);
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -5327,18 +5233,18 @@ int atcommand_char_wipe (const int fd, struct map_session_data *sd,
pc_setglobalreg (pl_sd, "MAGIC_FLAGS", 0); // [Fate] Reset magic quest variables
pc_setglobalreg (pl_sd, "MAGIC_EXP", 0); // [Fate] Reset magic experience
- sprintf (output, "%s: wiped.", character); // '%s' skill and stats points reseted!
+ sprintf (output, "%s: wiped.", character);
clif_displaymessage (fd, output);
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -5384,7 +5290,7 @@ int atcommand_charmodel (const int fd, struct map_session_data *sd,
pl_sd->status.sex == 1 &&
(pl_sd->status.pc_class == 12 || pl_sd->status.pc_class == 17))
{
- clif_displaymessage (fd, msg_table[35]); // You can't use this command with this class.
+ clif_displaymessage (fd, "You can't use this command with this class.");
return -1;
}
else
@@ -5392,18 +5298,18 @@ int atcommand_charmodel (const int fd, struct map_session_data *sd,
pc_changelook (pl_sd, LOOK_HAIR, hair_style);
pc_changelook (pl_sd, LOOK_HAIR_COLOR, hair_color);
pc_changelook (pl_sd, LOOK_CLOTHES_COLOR, cloth_color);
- clif_displaymessage (fd, msg_table[36]); // Appearence changed.
+ clif_displaymessage (fd, "Appearence changed.");
}
}
else
{
- clif_displaymessage (fd, msg_table[37]); // An invalid number was specified.
+ clif_displaymessage (fd, "An invalid number was specified.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -5444,20 +5350,20 @@ int atcommand_charskpoint (const int fd, struct map_session_data *sd,
{
pl_sd->status.skill_point = new_skill_point;
clif_updatestatus (pl_sd, SP_SKILLPOINT);
- clif_displaymessage (fd, msg_table[209]); // Character's number of skill points changed!
+ clif_displaymessage (fd, "Character's number of skill points changed!");
}
else
{
if (point < 0)
- clif_displaymessage (fd, msg_table[41]); // Impossible to decrease the number/value.
+ clif_displaymessage (fd, "Impossible to decrease the number/value.");
else
- clif_displaymessage (fd, msg_table[149]); // Impossible to increase the number/value.
+ clif_displaymessage (fd, "Impossible to increase the number/value.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -5498,20 +5404,20 @@ int atcommand_charstpoint (const int fd, struct map_session_data *sd,
{
pl_sd->status.status_point = new_status_point;
clif_updatestatus (pl_sd, SP_STATUSPOINT);
- clif_displaymessage (fd, msg_table[210]); // Character's number of status points changed!
+ clif_displaymessage (fd, "Character's number of status points changed!");
}
else
{
if (point < 0)
- clif_displaymessage (fd, msg_table[41]); // Impossible to decrease the number/value.
+ clif_displaymessage (fd, "Impossible to decrease the number/value.");
else
- clif_displaymessage (fd, msg_table[149]); // Impossible to increase the number/value.
+ clif_displaymessage (fd, "Impossible to increase the number/value.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -5550,20 +5456,20 @@ int atcommand_charzeny (const int fd, struct map_session_data *sd,
{
pl_sd->status.zeny = new_zeny;
clif_updatestatus (pl_sd, SP_ZENY);
- clif_displaymessage (fd, msg_table[211]); // Character's number of zenys changed!
+ clif_displaymessage (fd, "Character's number of zenys changed!");
}
else
{
if (zeny < 0)
- clif_displaymessage (fd, msg_table[41]); // Impossible to decrease the number/value.
+ clif_displaymessage (fd, "Impossible to decrease the number/value.");
else
- clif_displaymessage (fd, msg_table[149]); // Impossible to increase the number/value.
+ clif_displaymessage (fd, "Impossible to increase the number/value.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -5608,7 +5514,7 @@ int atcommand_recallall (const int fd, struct map_session_data *sd,
}
}
- clif_displaymessage (fd, msg_table[92]); // All characters recalled!
+ clif_displaymessage (fd, "All characters recalled!");
if (count)
{
sprintf (output,
@@ -5670,7 +5576,7 @@ int atcommand_guildrecall (const int fd, struct map_session_data *sd,
pc_setpos (pl_sd, sd->mapname, sd->bl.x, sd->bl.y, 2);
}
}
- sprintf (output, msg_table[93], g->name); // All online characters of the %s guild are near you.
+ sprintf (output, "All online characters of the %s guild are near you.", g->name);
clif_displaymessage (fd, output);
if (count)
{
@@ -5682,7 +5588,7 @@ int atcommand_guildrecall (const int fd, struct map_session_data *sd,
}
else
{
- clif_displaymessage (fd, msg_table[94]); // Incorrect name/ID, or no one from the guild is online.
+ clif_displaymessage (fd, "Incorrect name/ID, or no one from the guild is online.");
return -1;
}
@@ -5739,7 +5645,7 @@ int atcommand_partyrecall (const int fd, struct map_session_data *sd,
pc_setpos (pl_sd, sd->mapname, sd->bl.x, sd->bl.y, 2);
}
}
- sprintf (output, msg_table[95], p->name); // All online characters of the %s party are near you.
+ sprintf (output, "All online characters of the %s party are near you.", p->name);
clif_displaymessage (fd, output);
if (count)
{
@@ -5751,7 +5657,7 @@ int atcommand_partyrecall (const int fd, struct map_session_data *sd,
}
else
{
- clif_displaymessage (fd, msg_table[96]); // Incorrect name or ID, or no one from the party is online.
+ clif_displaymessage (fd, "Incorrect name or ID, or no one from the party is online.");
return -1;
}
@@ -5766,7 +5672,7 @@ int atcommand_reloaditemdb (const int fd, struct map_session_data *sd,
const char *command, const char *message)
{
itemdb_reload ();
- clif_displaymessage (fd, msg_table[97]); // Item database reloaded.
+ clif_displaymessage (fd, "Item database reloaded.");
return 0;
}
@@ -5779,7 +5685,7 @@ int atcommand_reloadmobdb (const int fd, struct map_session_data *sd,
const char *command, const char *message)
{
mob_reload ();
- clif_displaymessage (fd, msg_table[98]); // Monster database reloaded.
+ clif_displaymessage (fd, "Monster database reloaded.");
return 0;
}
@@ -5792,7 +5698,7 @@ int atcommand_reloadskilldb (const int fd, struct map_session_data *sd,
const char *command, const char *message)
{
skill_reload ();
- clif_displaymessage (fd, msg_table[99]); // Skill database reloaded.
+ clif_displaymessage (fd, "Skill database reloaded.");
return 0;
}
@@ -5809,7 +5715,7 @@ int atcommand_reloadscript (const int fd, struct map_session_data *sd,
npc_event_do_oninit ();
- clif_displaymessage (fd, msg_table[100]); // Scripts reloaded.
+ clif_displaymessage (fd, "Scripts reloaded.");
return 0;
}
@@ -5824,7 +5730,7 @@ int atcommand_reloadgmdb ( // by [Yor]
{
chrif_reloadGMdb ();
- clif_displaymessage (fd, msg_table[101]); // Login-server asked to reload GM accounts and their level.
+ clif_displaymessage (fd, "Login-server asked to reload GM accounts and their level.");
return 0;
}
@@ -5868,7 +5774,7 @@ int atcommand_mapinfo (const int fd, struct map_session_data *sd,
if ((m_id = map_mapname2mapid (map_name)) < 0)
{
- clif_displaymessage (fd, msg_table[1]); // Map not found.
+ clif_displaymessage (fd, "Map not found.");
return -1;
}
@@ -6033,7 +5939,7 @@ int atcommand_mount_peco (const int fd, struct map_session_data *sd,
{
if (sd->disguise > 0)
{ // temporary prevention of crash caused by peco + disguise, will look into a better solution [Valaris]
- clif_displaymessage (fd, msg_table[212]); // Cannot mount a Peco while in disguise.
+ clif_displaymessage (fd, "Cannot mount a Peco while in disguise.");
return -1;
}
@@ -6051,11 +5957,11 @@ int atcommand_mount_peco (const int fd, struct map_session_data *sd,
else if (sd->status.pc_class == 4015)
sd->status.pc_class = sd->view_class = 4022;
pc_setoption (sd, sd->status.option | 0x0020);
- clif_displaymessage (fd, msg_table[102]); // Mounted Peco.
+ clif_displaymessage (fd, "Mounted Peco.");
}
else
{
- clif_displaymessage (fd, msg_table[213]); // You can not mount a peco with your job.
+ clif_displaymessage (fd, "You can not mount a peco with your job.");
return -1;
}
}
@@ -6070,7 +5976,7 @@ int atcommand_mount_peco (const int fd, struct map_session_data *sd,
else if (sd->status.pc_class == 4022)
sd->status.pc_class = sd->view_class = 4015;
pc_setoption (sd, sd->status.option & ~0x0020);
- clif_displaymessage (fd, msg_table[214]); // Unmounted Peco.
+ clif_displaymessage (fd, "Unmounted Peco.");
}
return 0;
@@ -6099,7 +6005,7 @@ int atcommand_char_mount_peco (const int fd, struct map_session_data *sd,
{
if (pl_sd->disguise > 0)
{ // temporary prevention of crash caused by peco + disguise, will look into a better solution [Valaris]
- clif_displaymessage (fd, msg_table[215]); // This player cannot mount a Peco while in disguise.
+ clif_displaymessage (fd, "This player cannot mount a Peco while in disguise.");
return -1;
}
@@ -6117,11 +6023,11 @@ int atcommand_char_mount_peco (const int fd, struct map_session_data *sd,
else if (pl_sd->status.pc_class == 4015)
pl_sd->status.pc_class = pl_sd->view_class = 4022;
pc_setoption (pl_sd, pl_sd->status.option | 0x0020);
- clif_displaymessage (fd, msg_table[216]); // Now, this player mounts a peco.
+ clif_displaymessage (fd, "Now, this player mounts a peco.");
}
else
{
- clif_displaymessage (fd, msg_table[217]); // This player can not mount a peco with his/her job.
+ clif_displaymessage (fd, "This player can not mount a peco with his/her job.");
return -1;
}
}
@@ -6136,12 +6042,12 @@ int atcommand_char_mount_peco (const int fd, struct map_session_data *sd,
else if (pl_sd->status.pc_class == 4022)
pl_sd->status.pc_class = pl_sd->view_class = 4015;
pc_setoption (pl_sd, pl_sd->status.option & ~0x0020);
- clif_displaymessage (fd, msg_table[218]); // Now, this player has not more peco.
+ clif_displaymessage (fd, "Now, this player has not more peco.");
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -6175,19 +6081,19 @@ int atcommand_guildspy (const int fd, struct map_session_data *sd,
if (sd->guildspy == g->guild_id)
{
sd->guildspy = 0;
- sprintf (output, msg_table[103], g->name); // No longer spying on the %s guild.
+ sprintf (output, "No longer spying on the %s guild.", g->name);
clif_displaymessage (fd, output);
}
else
{
sd->guildspy = g->guild_id;
- sprintf (output, msg_table[104], g->name); // Spying on the %s guild.
+ sprintf (output, "Spying on the %s guild.", g->name);
clif_displaymessage (fd, output);
}
}
else
{
- clif_displaymessage (fd, msg_table[94]); // Incorrect name/ID, or no one from the guild is online.
+ clif_displaymessage (fd, "Incorrect name/ID, or no one from the guild is online.");
return -1;
}
@@ -6221,19 +6127,19 @@ int atcommand_partyspy (const int fd, struct map_session_data *sd,
if (sd->partyspy == p->party_id)
{
sd->partyspy = 0;
- sprintf (output, msg_table[105], p->name); // No longer spying on the %s party.
+ sprintf (output, "No longer spying on the %s party.", p->name);
clif_displaymessage (fd, output);
}
else
{
sd->partyspy = p->party_id;
- sprintf (output, msg_table[106], p->name); // Spying on the %s party.
+ sprintf (output, "Spying on the %s party.", p->name);
clif_displaymessage (fd, output);
}
}
else
{
- clif_displaymessage (fd, msg_table[96]); // Incorrect name or ID, or no one from the party is online.
+ clif_displaymessage (fd, "Incorrect name or ID, or no one from the party is online.");
return -1;
}
@@ -6261,11 +6167,11 @@ int atcommand_enablenpc (const int fd, struct map_session_data *sd,
if (npc_name2id (NPCname) != NULL)
{
npc_enable (NPCname, 1);
- clif_displaymessage (fd, msg_table[110]); // Npc Enabled.
+ clif_displaymessage (fd, "Npc Enabled.");
}
else
{
- clif_displaymessage (fd, msg_table[111]); // This NPC doesn't exist.
+ clif_displaymessage (fd, "This NPC doesn't exist.");
return -1;
}
@@ -6293,11 +6199,11 @@ int atcommand_disablenpc (const int fd, struct map_session_data *sd,
if (npc_name2id (NPCname) != NULL)
{
npc_enable (NPCname, 0);
- clif_displaymessage (fd, msg_table[112]); // Npc Disabled.
+ clif_displaymessage (fd, "Npc Disabled.");
}
else
{
- clif_displaymessage (fd, msg_table[111]); // This NPC doesn't exist.
+ clif_displaymessage (fd, "This NPC doesn't exist.");
return -1;
}
@@ -6308,7 +6214,8 @@ int atcommand_disablenpc (const int fd, struct map_session_data *sd,
* time in txt for time command (by [Yor])
*------------------------------------------
*/
-char *txt_time (unsigned int duration)
+static
+const char *txt_time (unsigned int duration)
{
int days, hours, minutes, seconds;
char temp[256];
@@ -6328,21 +6235,21 @@ char *txt_time (unsigned int duration)
seconds = duration - (60 * minutes);
if (days < 2)
- sprintf (temp, msg_table[219], days); // %d day
+ sprintf (temp, "%d day", days);
else
- sprintf (temp, msg_table[220], days); // %d days
+ sprintf (temp, "%d days", days);
if (hours < 2)
- sprintf (temp1, msg_table[221], temp, hours); // %s %d hour
+ sprintf (temp1, "%s %d hour", temp, hours);
else
- sprintf (temp1, msg_table[222], temp, hours); // %s %d hours
+ sprintf (temp1, "%s %d hours", temp, hours);
if (minutes < 2)
- sprintf (temp, msg_table[223], temp1, minutes); // %s %d minute
+ sprintf (temp, "%s %d minute", temp1, minutes);
else
- sprintf (temp, msg_table[224], temp1, minutes); // %s %d minutes
+ sprintf (temp, "%s %d minutes", temp1, minutes);
if (seconds < 2)
- sprintf (temp1, msg_table[225], temp, seconds); // %s and %d second
+ sprintf (temp1, "%s and %d second", temp, seconds);
else
- sprintf (temp1, msg_table[226], temp, seconds); // %s and %d seconds
+ sprintf (temp1, "%s and %d seconds", temp, seconds);
return temp1;
}
@@ -6366,64 +6273,64 @@ int atcommand_servertime (const int fd, struct map_session_data *sd,
time (&time_server); // get time in seconds since 1/1/1970
datetime = gmtime (&time_server); // convert seconds in structure
// like sprintf, but only for date/time (Sunday, November 02 2003 15:12:52)
- strftime (temp, sizeof (temp) - 1, msg_table[230], datetime); // Server time (normal time): %A, %B %d %Y %X.
+ strftime (temp, sizeof (temp) - 1, "Server time (normal time): %A, %B %d %Y %X.", datetime);
clif_displaymessage (fd, temp);
if (battle_config.night_duration == 0 && battle_config.day_duration == 0)
{
if (night_flag == 0)
- clif_displaymessage (fd, msg_table[231]); // Game time: The game is in permanent daylight.
+ clif_displaymessage (fd, "Game time: The game is in permanent daylight.");
else
- clif_displaymessage (fd, msg_table[232]); // Game time: The game is in permanent night.
+ clif_displaymessage (fd, "Game time: The game is in permanent night.");
}
else if (battle_config.night_duration == 0)
if (night_flag == 1)
{ // we start with night
timer_data = get_timer (day_timer_tid);
- sprintf (temp, msg_table[233], txt_time ((timer_data->tick - gettick ()) / 1000)); // Game time: The game is actualy in night for %s.
+ sprintf (temp, "Game time: The game is actualy in night for %s.", txt_time ((timer_data->tick - gettick ()) / 1000));
clif_displaymessage (fd, temp);
- clif_displaymessage (fd, msg_table[234]); // Game time: After, the game will be in permanent daylight.
+ clif_displaymessage (fd, "Game time: After, the game will be in permanent daylight.");
}
else
- clif_displaymessage (fd, msg_table[231]); // Game time: The game is in permanent daylight.
+ clif_displaymessage (fd, "Game time: The game is in permanent daylight.");
else if (battle_config.day_duration == 0)
if (night_flag == 0)
{ // we start with day
timer_data = get_timer (night_timer_tid);
- sprintf (temp, msg_table[235], txt_time ((timer_data->tick - gettick ()) / 1000)); // Game time: The game is actualy in daylight for %s.
+ sprintf (temp, "Game time: The game is actualy in daylight for %s.", txt_time ((timer_data->tick - gettick ()) / 1000));
clif_displaymessage (fd, temp);
- clif_displaymessage (fd, msg_table[236]); // Game time: After, the game will be in permanent night.
+ clif_displaymessage (fd, "Game time: After, the game will be in permanent night.");
}
else
- clif_displaymessage (fd, msg_table[232]); // Game time: The game is in permanent night.
+ clif_displaymessage (fd, "Game time: The game is in permanent night.");
else
{
if (night_flag == 0)
{
timer_data = get_timer (night_timer_tid);
timer_data2 = get_timer (day_timer_tid);
- sprintf (temp, msg_table[235], txt_time ((timer_data->tick - gettick ()) / 1000)); // Game time: The game is actualy in daylight for %s.
+ sprintf (temp, "Game time: The game is actualy in daylight for %s.", txt_time ((timer_data->tick - gettick ()) / 1000));
clif_displaymessage (fd, temp);
if (timer_data->tick > timer_data2->tick)
- sprintf (temp, msg_table[237], txt_time ((timer_data->interval - abs (timer_data->tick - timer_data2->tick)) / 1000)); // Game time: After, the game will be in night for %s.
+ sprintf (temp, "Game time: After, the game will be in night for %s.", txt_time ((timer_data->interval - abs (timer_data->tick - timer_data2->tick)) / 1000));
else
- sprintf (temp, msg_table[237], txt_time (abs (timer_data->tick - timer_data2->tick) / 1000)); // Game time: After, the game will be in night for %s.
+ sprintf (temp, "Game time: After, the game will be in night for %s.", txt_time (abs (timer_data->tick - timer_data2->tick) / 1000));
clif_displaymessage (fd, temp);
- sprintf (temp, msg_table[238], txt_time (timer_data->interval / 1000)); // Game time: A day cycle has a normal duration of %s.
+ sprintf (temp, "Game time: A day cycle has a normal duration of %s.", txt_time (timer_data->interval / 1000));
clif_displaymessage (fd, temp);
}
else
{
timer_data = get_timer (day_timer_tid);
timer_data2 = get_timer (night_timer_tid);
- sprintf (temp, msg_table[233], txt_time ((timer_data->tick - gettick ()) / 1000)); // Game time: The game is actualy in night for %s.
+ sprintf (temp, "Game time: The game is actualy in night for %s.", txt_time ((timer_data->tick - gettick ()) / 1000));
clif_displaymessage (fd, temp);
if (timer_data->tick > timer_data2->tick)
- sprintf (temp, msg_table[239], txt_time ((timer_data->interval - abs (timer_data->tick - timer_data2->tick)) / 1000)); // Game time: After, the game will be in daylight for %s.
+ sprintf (temp, "Game time: After, the game will be in daylight for %s.", txt_time ((timer_data->interval - abs (timer_data->tick - timer_data2->tick)) / 1000));
else
- sprintf (temp, msg_table[239], txt_time (abs (timer_data->tick - timer_data2->tick) / 1000)); // Game time: After, the game will be in daylight for %s.
+ sprintf (temp, "Game time: After, the game will be in daylight for %s.", txt_time (abs (timer_data->tick - timer_data2->tick) / 1000));
clif_displaymessage (fd, temp);
- sprintf (temp, msg_table[238], txt_time (timer_data->interval / 1000)); // Game time: A day cycle has a normal duration of %s.
+ sprintf (temp, "Game time: A day cycle has a normal duration of %s.", txt_time (timer_data->interval / 1000));
clif_displaymessage (fd, temp);
}
}
@@ -6482,35 +6389,35 @@ int atcommand_chardelitem (const int fd, struct map_session_data *sd,
count++;
item_position = pc_search_inventory (pl_sd, item_id); // for next loop
}
- sprintf (output, msg_table[113], count); // %d item(s) removed by a GM.
+ sprintf (output, "%d item(s) removed by a GM.", count);
clif_displaymessage (pl_sd->fd, output);
if (number == count)
- sprintf (output, msg_table[114], count); // %d item(s) removed from the player.
+ sprintf (output, "%d item(s) removed from the player.", count);
else
- sprintf (output, msg_table[115], count, count, number); // %d item(s) removed. Player had only %d on %d items.
+ sprintf (output, "%d item(s) removed. Player had only %d on %d items.", count, count, number);
clif_displaymessage (fd, output);
}
else
{
- clif_displaymessage (fd, msg_table[116]); // Character does not have the item.
+ clif_displaymessage (fd, "Character does not have the item.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[19]); // Invalid item ID or name.
+ clif_displaymessage (fd, "Invalid item ID or name.");
return -1;
}
@@ -6556,24 +6463,24 @@ int atcommand_jail (const int fd, struct map_session_data *sd,
if (pc_setpos (pl_sd, "sec_pri.gat", x, y, 3) == 0)
{
pc_setsavepoint (pl_sd, "sec_pri.gat", x, y); // Save Char Respawn Point in the jail room [Lupus]
- clif_displaymessage (pl_sd->fd, msg_table[117]); // GM has send you in jails.
- clif_displaymessage (fd, msg_table[118]); // Player warped in jails.
+ clif_displaymessage (pl_sd->fd, "GM has send you in jails.");
+ clif_displaymessage (fd, "Player warped in jails.");
}
else
{
- clif_displaymessage (fd, msg_table[1]); // Map not found.
+ clif_displaymessage (fd, "Map not found.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -6606,30 +6513,30 @@ int atcommand_unjail (const int fd, struct map_session_data *sd,
{ // you can jail only lower or same GM
if (pl_sd->bl.m != map_mapname2mapid ("sec_pri.gat"))
{
- clif_displaymessage (fd, msg_table[119]); // This player is not in jails.
+ clif_displaymessage (fd, "This player is not in jails.");
return -1;
}
else if (pc_setpos (pl_sd, "prontera.gat", 156, 191, 3) == 0)
{
pc_setsavepoint (pl_sd, "prontera.gat", 156, 191); // Save char respawn point in Prontera
- clif_displaymessage (pl_sd->fd, msg_table[120]); // GM has discharge you.
- clif_displaymessage (fd, msg_table[121]); // Player warped to Prontera.
+ clif_displaymessage (pl_sd->fd, "GM has discharge you.");
+ clif_displaymessage (fd, "Player warped to Prontera.");
}
else
{
- clif_displaymessage (fd, msg_table[1]); // Map not found.
+ clif_displaymessage (fd, "Map not found.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -6662,17 +6569,17 @@ int atcommand_disguise (const int fd, struct map_session_data *sd,
{ // monsters
if (pc_isriding (sd))
{ // temporary prevention of crash caused by peco + disguise, will look into a better solution [Valaris]
- clif_displaymessage (fd, msg_table[227]); // Cannot wear disguise while riding a Peco.
+ clif_displaymessage (fd, "Cannot wear disguise while riding a Peco.");
return -1;
}
sd->disguiseflag = 1; // set to override items with disguise script [Valaris]
sd->disguise = mob_id;
pc_setpos (sd, sd->mapname, sd->bl.x, sd->bl.y, 3);
- clif_displaymessage (fd, msg_table[122]); // Disguise applied.
+ clif_displaymessage (fd, "Disguise applied.");
}
else
{
- clif_displaymessage (fd, msg_table[123]); // Monster/NPC name/id hasn't been found.
+ clif_displaymessage (fd, "Monster/NPC name/id hasn't been found.");
return -1;
}
@@ -6691,11 +6598,11 @@ int atcommand_undisguise (const int fd, struct map_session_data *sd,
clif_clearchar (&sd->bl, 9);
sd->disguise = 0;
pc_setpos (sd, sd->mapname, sd->bl.x, sd->bl.y, 3);
- clif_displaymessage (fd, msg_table[124]); // Undisguise applied.
+ clif_displaymessage (fd, "Undisguise applied.");
}
else
{
- clif_displaymessage (fd, msg_table[125]); // You're not disguised.
+ clif_displaymessage (fd, "You're not disguised.");
return -1;
}
@@ -6771,17 +6678,17 @@ int atcommand_ignorelist (const int fd, struct map_session_data *sd,
if (sd->ignoreAll == 0)
if (count == 0)
- clif_displaymessage (fd, msg_table[126]); // You accept any wisp (no wisper is refused).
+ clif_displaymessage (fd, "You accept any wisp (no wisper is refused).");
else
{
- sprintf (output, msg_table[127], count); // You accept any wisp, except thoses from %d player(s):
+ sprintf (output, "You accept any wisp, except thoses from %d player(s):", count);
clif_displaymessage (fd, output);
}
else if (count == 0)
- clif_displaymessage (fd, msg_table[128]); // You refuse all wisps (no specifical wisper is refused).
+ clif_displaymessage (fd, "You refuse all wisps (no specifical wisper is refused).");
else
{
- sprintf (output, msg_table[129], count); // You refuse all wisps, AND refuse wisps from %d player(s):
+ sprintf (output, "You refuse all wisps, AND refuse wisps from %d player(s):", count);
clif_displaymessage (fd, output);
}
@@ -6829,22 +6736,22 @@ int atcommand_charignorelist (const int fd, struct map_session_data *sd,
if (pl_sd->ignoreAll == 0)
if (count == 0)
{
- sprintf (output, msg_table[130], pl_sd->status.name); // '%s' accept any wisp (no wisper is refused).
+ sprintf (output, "'%s' accept any wisp (no wisper is refused).", pl_sd->status.name);
clif_displaymessage (fd, output);
}
else
{
- sprintf (output, msg_table[131], pl_sd->status.name, count); // '%s' accept any wisp, except thoses from %d player(s):
+ sprintf (output, "'%s' accept any wisp, except thoses from %d player(s):", pl_sd->status.name, count);
clif_displaymessage (fd, output);
}
else if (count == 0)
{
- sprintf (output, msg_table[132], pl_sd->status.name); // '%s' refuse all wisps (no specifical wisper is refused).
+ sprintf (output, "'%s' refuse all wisps (no specifical wisper is refused).", pl_sd->status.name);
clif_displaymessage (fd, output);
}
else
{
- sprintf (output, msg_table[133], pl_sd->status.name, count); // '%s' refuse all wisps, AND refuse wisps from %d player(s):
+ sprintf (output, "'%s' refuse all wisps, AND refuse wisps from %d player(s):", pl_sd->status.name, count);
clif_displaymessage (fd, output);
}
@@ -6859,7 +6766,7 @@ int atcommand_charignorelist (const int fd, struct map_session_data *sd,
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -6893,17 +6800,17 @@ int atcommand_inall (const int fd, struct map_session_data *sd,
{ // you can change wisp option only to lower or same level
if (pl_sd->ignoreAll == 0)
{
- sprintf (output, msg_table[134], pl_sd->status.name); // '%s' already accepts all wispers.
+ sprintf (output, "'%s' already accepts all wispers.", pl_sd->status.name);
clif_displaymessage (fd, output);
return -1;
}
else
{
pl_sd->ignoreAll = 0;
- sprintf (output, msg_table[135], pl_sd->status.name); // '%s' now accepts all wispers.
+ sprintf (output, "'%s' now accepts all wispers.", pl_sd->status.name);
clif_displaymessage (fd, output);
// message to player
- clif_displaymessage (pl_sd->fd, msg_table[136]); // A GM has authorised all wispers for you.
+ clif_displaymessage (pl_sd->fd, "A GM has authorised all wispers for you.");
WFIFOW (pl_sd->fd, 0) = 0x0d2; // R 00d2 <type>.B <fail>.B: type: 0: deny, 1: allow, fail: 0: success, 1: fail
WFIFOB (pl_sd->fd, 2) = 1;
WFIFOB (pl_sd->fd, 3) = 0; // success
@@ -6912,13 +6819,13 @@ int atcommand_inall (const int fd, struct map_session_data *sd,
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -6952,17 +6859,17 @@ int atcommand_exall (const int fd, struct map_session_data *sd,
{ // you can change wisp option only to lower or same level
if (pl_sd->ignoreAll == 1)
{
- sprintf (output, msg_table[137], pl_sd->status.name); // '%s' already blocks all wispers.
+ sprintf (output, "'%s' already blocks all wispers.", pl_sd->status.name);
clif_displaymessage (fd, output);
return -1;
}
else
{
pl_sd->ignoreAll = 1;
- sprintf (output, msg_table[138], pl_sd->status.name); // '%s' blocks now all wispers.
+ sprintf (output, "'%s' blocks now all wispers.", pl_sd->status.name);
clif_displaymessage (fd, output);
// message to player
- clif_displaymessage (pl_sd->fd, msg_table[139]); // A GM has blocked all wispers for you.
+ clif_displaymessage (pl_sd->fd, "A GM has blocked all wispers for you.");
WFIFOW (pl_sd->fd, 0) = 0x0d2; // R 00d2 <type>.B <fail>.B: type: 0: deny, 1: allow, fail: 0: success, 1: fail
WFIFOB (pl_sd->fd, 2) = 0;
WFIFOB (pl_sd->fd, 3) = 0; // success
@@ -6971,13 +6878,13 @@ int atcommand_exall (const int fd, struct map_session_data *sd,
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -7021,30 +6928,30 @@ int atcommand_chardisguise (const int fd, struct map_session_data *sd,
{ // monsters
if (pc_isriding (pl_sd))
{ // temporary prevention of crash caused by peco + disguise, will look into a better solution [Valaris]
- clif_displaymessage (fd, msg_table[228]); // Character cannot wear disguise while riding a Peco.
+ clif_displaymessage (fd, "Character cannot wear disguise while riding a Peco.");
return -1;
}
pl_sd->disguiseflag = 1; // set to override items with disguise script [Valaris]
pl_sd->disguise = mob_id;
pc_setpos (pl_sd, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y,
3);
- clif_displaymessage (fd, msg_table[140]); // Character's disguise applied.
+ clif_displaymessage (fd, "Character's disguise applied.");
}
else
{
- clif_displaymessage (fd, msg_table[123]); // Monster/NPC name/id hasn't been found.
+ clif_displaymessage (fd, "Monster/NPC name/id hasn't been found.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -7080,23 +6987,23 @@ int atcommand_charundisguise (const int fd, struct map_session_data *sd,
pl_sd->disguise = 0;
pc_setpos (pl_sd, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y,
3);
- clif_displaymessage (fd, msg_table[141]); // Character's undisguise applied.
+ clif_displaymessage (fd, "Character's undisguise applied.");
}
else
{
- clif_displaymessage (fd, msg_table[142]); // Character is not disguised.
+ clif_displaymessage (fd, "Character is not disguised.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -7126,28 +7033,28 @@ int atcommand_email (const int fd, struct map_session_data *sd,
if (e_mail_check (actual_email) == 0)
{
- clif_displaymessage (fd, msg_table[144]); // Invalid actual email. If you have default e-mail, give a@a.com.
+ clif_displaymessage (fd, "Invalid actual email. If you have default e-mail, type a@a.com."); // Invalid actual email. If you have default e-mail, give a@a.com.
return -1;
}
else if (e_mail_check (new_email) == 0)
{
- clif_displaymessage (fd, msg_table[145]); // Invalid new email. Please enter a real e-mail.
+ clif_displaymessage (fd, "Invalid new email. Please enter a real e-mail.");
return -1;
}
else if (strcasecmp (new_email, "a@a.com") == 0)
{
- clif_displaymessage (fd, msg_table[146]); // New email must be a real e-mail.
+ clif_displaymessage (fd, "New email must be a real e-mail.");
return -1;
}
else if (strcasecmp (actual_email, new_email) == 0)
{
- clif_displaymessage (fd, msg_table[147]); // New email must be different of the actual e-mail.
+ clif_displaymessage (fd, "New email must be different of the actual e-mail.");
return -1;
}
else
{
chrif_changeemail (sd->status.account_id, actual_email, new_email);
- clif_displaymessage (fd, msg_table[148]); // Information sended to login-server via char-server.
+ clif_displaymessage (fd, "Information sended to login-server via char-server.");
}
return 0;
@@ -7172,7 +7079,7 @@ int atcommand_effect (const int fd, struct map_session_data *sd,
if (flag <= 0)
{
clif_specialeffect (&sd->bl, type, flag);
- clif_displaymessage (fd, msg_table[229]); // Your effect has changed.
+ clif_displaymessage (fd, "Your Effect Has Changed."); // Your effect has changed.
}
else
{
@@ -7182,7 +7089,7 @@ int atcommand_effect (const int fd, struct map_session_data *sd,
&& pl_sd->state.auth)
{
clif_specialeffect (&pl_sd->bl, type, flag);
- clif_displaymessage (pl_sd->fd, msg_table[229]); // Your effect has changed.
+ clif_displaymessage (pl_sd->fd, "Your Effect Has Changed."); // Your effect has changed.
}
}
}
@@ -7329,13 +7236,13 @@ atcommand_character_item_list (const int fd, struct map_session_data *sd,
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -7455,13 +7362,13 @@ atcommand_character_storage_list (const int fd, struct map_session_data *sd,
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -7570,13 +7477,13 @@ atcommand_character_cart_list (const int fd, struct map_session_data *sd,
}
else
{
- clif_displaymessage (fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ clif_displaymessage (fd, "Your GM level don't authorise you to do this action on this player.");
return -1;
}
}
else
{
- clif_displaymessage (fd, msg_table[3]); // Character not found.
+ clif_displaymessage (fd, "Character not found.");
return -1;
}
@@ -7595,9 +7502,9 @@ atcommand_killer (const int fd, struct map_session_data *sd,
sd->special_state.killer = !sd->special_state.killer;
if (sd->special_state.killer)
- clif_displaymessage (fd, msg_table[241]);
+ clif_displaymessage (fd, "You be a killa...");
else
- clif_displaymessage (fd, msg_table[242]);
+ clif_displaymessage (fd, "You gonna be own3d...");
return 0;
}
@@ -7614,9 +7521,9 @@ atcommand_killable (const int fd, struct map_session_data *sd,
sd->special_state.killable = !sd->special_state.killable;
if (sd->special_state.killable)
- clif_displaymessage (fd, msg_table[242]);
+ clif_displaymessage (fd, "You gonna be own3d...");
else
- clif_displaymessage (fd, msg_table[241]);
+ clif_displaymessage (fd, "You be a killa...");
return 0;
}
@@ -7658,7 +7565,7 @@ atcommand_skillon (const int fd, struct map_session_data *sd,
const char *command, const char *message)
{
map[sd->bl.m].flag.noskill = 0;
- clif_displaymessage (fd, msg_table[244]);
+ clif_displaymessage (fd, "Map skills are on.");
return 0;
}
@@ -7672,7 +7579,7 @@ atcommand_skilloff (const int fd, struct map_session_data *sd,
const char *command, const char *message)
{
map[sd->bl.m].flag.noskill = 1;
- clif_displaymessage (fd, msg_table[243]);
+ clif_displaymessage (fd, "Map skills are off.");
return 0;
}
@@ -7802,7 +7709,7 @@ atcommand_chareffect (const int fd, struct map_session_data *sd,
return -1;
clif_specialeffect (&pl_sd->bl, type, 0);
- clif_displaymessage (fd, msg_table[229]); // Your effect has changed.
+ clif_displaymessage (fd, "Your Effect Has Changed."); // Your effect has changed.
return 0;
}
@@ -8282,7 +8189,7 @@ int atcommand_unmute (const int fd, struct map_session_data *sd,
static int magic_base = TMW_MAGIC;
#define magic_skills_nr 6
-static char *magic_skill_names[magic_skills_nr] =
+static const char *magic_skill_names[magic_skills_nr] =
{ "magic", "life", "war", "transmute", "nature", "astral" };
int
@@ -8426,6 +8333,7 @@ atcommand_visible (const int fd, struct map_session_data *sd,
return 0;
}
+static
int atcommand_jump_iterate (const int fd, struct map_session_data *sd,
const char *command, const char *message,
struct map_session_data *(*get_start) (void),
@@ -8468,7 +8376,7 @@ int atcommand_jump_iterate (const int fd, struct map_session_data *sd,
return -1;
}
pc_setpos (sd, map[pl_sd->bl.m].name, pl_sd->bl.x, pl_sd->bl.y, 3);
- sprintf (output, msg_table[4], pl_sd->status.name); // Jump to %s
+ sprintf (output, "Jump to %s", pl_sd->status.name);
clif_displaymessage (fd, output);
sd->followtarget = pl_sd->bl.id;
@@ -8546,7 +8454,7 @@ int atcommand_skillpool_info (const int fd, struct map_session_data *sd,
for (i = 0; i < skill_pool_skills_size; ++i)
{
- char *name = skill_name (skill_pool_skills[i]);
+ const char *name = skill_name (skill_pool_skills[i]);
int lvl = pl_sd->status.skill[skill_pool_skills[i]].lv;
if (lvl)
@@ -8719,10 +8627,10 @@ int atcommand_doomspot(const int fd, struct map_session_data *sd,
&& pc_isGM (sd) >= pc_isGM (pl_sd))
{ // you can doom only lower or same gm level
pc_damage (NULL, pl_sd, pl_sd->status.hp + 1);
- clif_displaymessage (pl_sd->fd, msg_table[61]); // The holy messenger has given judgement.
+ clif_displaymessage (pl_sd->fd, "The holy messenger has given judgement.");
}
}
- clif_displaymessage (fd, msg_table[62]); // Judgement was made.
+ clif_displaymessage (fd, "Judgement was made.");
return 0;
}
diff --git a/src/map/atcommand.hpp b/src/map/atcommand.hpp
index 824a7cf..d35cb4f 100644
--- a/src/map/atcommand.hpp
+++ b/src/map/atcommand.hpp
@@ -209,8 +209,6 @@ AtCommandType atcommand (const int level, const char *message,
AtCommandInfo * info);
int get_atcommand_level (const AtCommandType type);
-char *msg_txt (int msg_number); // [Yor]
-
int atcommand_item (const int fd, struct map_session_data *sd, const char *command, const char *message); // [Valaris]
int atcommand_warp (const int fd, struct map_session_data *sd, const char *command, const char *message); // [Yor]
int atcommand_spawn (const int fd, struct map_session_data *sd, const char *command, const char *message); // [Valaris]
@@ -218,9 +216,10 @@ int atcommand_goto (const int fd, struct map_session_data *sd, const char *comm
int atcommand_recall (const int fd, struct map_session_data *sd, const char *command, const char *message); // [Yor]
int atcommand_config_read (const char *cfgName);
-int msg_config_read (const char *cfgName);
+__attribute__((format(printf, 2, 3)))
void log_atcommand (struct map_session_data *sd, const char *fmt, ...);
+__attribute__((format(printf, 1, 2)))
void gm_log (const char *fmt, ...);
#endif
diff --git a/src/map/battle.cpp b/src/map/battle.cpp
index a46db13..818d77e 100644
--- a/src/map/battle.cpp
+++ b/src/map/battle.cpp
@@ -521,6 +521,7 @@ int battle_get_flee2 (struct block_list *bl)
* 戻りは整数で1以上
*------------------------------------------
*/
+static
int battle_get_critical (struct block_list *bl)
{
int critical = 1;
@@ -625,6 +626,7 @@ int battle_get_atk (struct block_list *bl)
* 戻りは整数で0以上
*------------------------------------------
*/
+static
int battle_get_atk_ (struct block_list *bl)
{
nullpo_retr (0, bl);
@@ -687,6 +689,7 @@ int battle_get_atk2 (struct block_list *bl)
* 戻りは整数で0以上
*------------------------------------------
*/
+static
int battle_get_atk_2 (struct block_list *bl)
{
nullpo_retr (0, bl);
@@ -701,6 +704,7 @@ int battle_get_atk_2 (struct block_list *bl)
* 戻りは整数で0以上
*------------------------------------------
*/
+static
int battle_get_matk1 (struct block_list *bl)
{
struct status_change *sc_data;
@@ -727,6 +731,7 @@ int battle_get_matk1 (struct block_list *bl)
* 戻りは整数で0以上
*------------------------------------------
*/
+static
int battle_get_matk2 (struct block_list *bl)
{
struct status_change *sc_data = battle_get_sc_data (bl);
@@ -1422,6 +1427,7 @@ struct battle_delay_damage_
int damage;
int flag;
};
+static
void battle_delay_damage_sub (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
struct battle_delay_damage_ *dat = (struct battle_delay_damage_ *) data;
@@ -1853,6 +1859,7 @@ int battle_calc_damage (struct block_list *src, struct block_list *bl,
* 修練ダメージ
*------------------------------------------
*/
+static
int battle_addmastery (struct map_session_data *sd, struct block_list *target,
int dmg, int type)
{
diff --git a/src/map/chat.cpp b/src/map/chat.cpp
index 0615b41..cb274f8 100644
--- a/src/map/chat.cpp
+++ b/src/map/chat.cpp
@@ -22,7 +22,7 @@ int chat_triggerevent (struct chat_data *cd);
*------------------------------------------
*/
int chat_createchat (struct map_session_data *sd, int limit, int pub,
- char *pass, char *title, int titlelen)
+ const char *pass, const char *title, int titlelen)
{
struct chat_data *cd;
@@ -65,7 +65,7 @@ int chat_createchat (struct map_session_data *sd, int limit, int pub,
* 既存チャットルームに参加
*------------------------------------------
*/
-int chat_joinchat (struct map_session_data *sd, int chatid, char *pass)
+int chat_joinchat (struct map_session_data *sd, int chatid, const char *pass)
{
struct chat_data *cd;
@@ -165,7 +165,7 @@ int chat_leavechat (struct map_session_data *sd)
* チャットルームの持ち主を譲る
*------------------------------------------
*/
-int chat_changechatowner (struct map_session_data *sd, char *nextownername)
+int chat_changechatowner (struct map_session_data *sd, const char *nextownername)
{
struct chat_data *cd;
struct map_session_data *tmp_sd;
@@ -213,7 +213,7 @@ int chat_changechatowner (struct map_session_data *sd, char *nextownername)
*------------------------------------------
*/
int chat_changechatstatus (struct map_session_data *sd, int limit, int pub,
- char *pass, char *title, int titlelen)
+ const char *pass, const char *title, int titlelen)
{
struct chat_data *cd;
@@ -241,7 +241,7 @@ int chat_changechatstatus (struct map_session_data *sd, int limit, int pub,
* チャットルームから蹴り出す
*------------------------------------------
*/
-int chat_kickchat (struct map_session_data *sd, char *kickusername)
+int chat_kickchat (struct map_session_data *sd, const char *kickusername)
{
struct chat_data *cd;
int i, kickuser;
@@ -273,7 +273,7 @@ int chat_kickchat (struct map_session_data *sd, char *kickusername)
*------------------------------------------
*/
int chat_createnpcchat (struct npc_data *nd, int limit, int pub, int trigger,
- char *title, int titlelen, const char *ev)
+ const char *title, int titlelen, const char *ev)
{
struct chat_data *cd;
diff --git a/src/map/chat.hpp b/src/map/chat.hpp
index 3a9ccb6..fca9217 100644
--- a/src/map/chat.hpp
+++ b/src/map/chat.hpp
@@ -4,17 +4,17 @@
#include "map.hpp"
-int chat_createchat (struct map_session_data *, int, int, char *, char *,
+int chat_createchat (struct map_session_data *, int, int, const char *, const char *,
int);
-int chat_joinchat (struct map_session_data *, int, char *);
+int chat_joinchat (struct map_session_data *, int, const char *);
int chat_leavechat (struct map_session_data *);
-int chat_changechatowner (struct map_session_data *, char *);
-int chat_changechatstatus (struct map_session_data *, int, int, char *,
- char *, int);
-int chat_kickchat (struct map_session_data *, char *);
+int chat_changechatowner (struct map_session_data *, const char *);
+int chat_changechatstatus (struct map_session_data *, int, int, const char *,
+ const char *, int);
+int chat_kickchat (struct map_session_data *, const char *);
int chat_createnpcchat (struct npc_data *nd, int limit, int pub, int trigger,
- char *title, int titlelen, const char *ev);
+ const char *title, int titlelen, const char *ev);
int chat_deletenpcchat (struct npc_data *nd);
int chat_enableevent (struct chat_data *cd);
int chat_disableevent (struct chat_data *cd);
diff --git a/src/map/chrif.cpp b/src/map/chrif.cpp
index 0223e67..24d5d26 100644
--- a/src/map/chrif.cpp
+++ b/src/map/chrif.cpp
@@ -133,13 +133,14 @@ int chrif_save (struct map_session_data *sd)
*
*------------------------------------------
*/
+static
int chrif_connect (int fd)
{
WFIFOW (fd, 0) = 0x2af8;
memcpy (WFIFOP (fd, 2), userid, 24);
memcpy (WFIFOP (fd, 26), passwd, 24);
WFIFOL (fd, 50) = 0;
- WFIFOL (fd, 54) = clif_getip ();
+ WFIFOL (fd, 54) = clif_getip ().s_addr;
WFIFOW (fd, 58) = clif_getport (); // [Valaris] thanks to fov
WFIFOSET (fd, 60);
@@ -150,6 +151,7 @@ int chrif_connect (int fd)
* マップ送信
*------------------------------------------
*/
+static
int chrif_sendmap (int fd)
{
int i;
@@ -170,25 +172,25 @@ int chrif_sendmap (int fd)
* マップ受信
*------------------------------------------
*/
+static
int chrif_recvmap (int fd)
{
- int i, j, ip, port;
- unsigned char *p = (unsigned char *) &ip;
+ int i, j, port;
if (chrif_state < 2) // まだ準備中
return -1;
- ip = RFIFOL (fd, 4);
+ struct in_addr ip;
+ ip.s_addr = RFIFOL (fd, 4);
port = RFIFOW (fd, 8);
for (i = 10, j = 0; i < RFIFOW (fd, 2); i += 16, j++)
{
- map_setipport (RFIFOP (fd, i), ip, port);
+ map_setipport ((const char *)RFIFOP (fd, i), ip, port);
// if (battle_config.etc_log)
// printf("recv map %d %s\n", j, RFIFOP(fd,i));
}
if (battle_config.etc_log)
- printf ("recv map on %d.%d.%d.%d:%d (%d maps)\n", p[0], p[1], p[2],
- p[3], port, j);
+ printf ("recv map on %s:%d (%d maps)\n", ip2str(ip), port, j);
return 0;
}
@@ -198,7 +200,7 @@ int chrif_recvmap (int fd)
*------------------------------------------
*/
int chrif_changemapserver (struct map_session_data *sd, char *name, int x,
- int y, int ip, short port)
+ int y, struct in_addr ip, short port)
{
int i, s_ip;
@@ -220,7 +222,7 @@ int chrif_changemapserver (struct map_session_data *sd, char *name, int x,
memcpy (WFIFOP (char_fd, 18), name, 16);
WFIFOW (char_fd, 34) = x;
WFIFOW (char_fd, 36) = y;
- WFIFOL (char_fd, 38) = ip;
+ WFIFOL (char_fd, 38) = ip.s_addr;
WFIFOL (char_fd, 42) = port;
WFIFOB (char_fd, 44) = sd->status.sex;
WFIFOL (char_fd, 45) = s_ip;
@@ -233,6 +235,7 @@ int chrif_changemapserver (struct map_session_data *sd, char *name, int x,
* マップ鯖間移動ack
*------------------------------------------
*/
+static
int chrif_changemapserverack (int fd)
{
struct map_session_data *sd = map_id2sd (RFIFOL (fd, 2));
@@ -247,8 +250,8 @@ int chrif_changemapserverack (int fd)
pc_authfail (sd->fd);
return 0;
}
- clif_changemapserver (sd, RFIFOP (fd, 18), RFIFOW (fd, 34),
- RFIFOW (fd, 36), RFIFOL (fd, 38), RFIFOW (fd, 42));
+ clif_changemapserver (sd, (const char *)RFIFOP (fd, 18), RFIFOW (fd, 34),
+ RFIFOW (fd, 36), in_addr{RFIFOL (fd, 38)}, RFIFOW (fd, 42));
return 0;
}
@@ -257,6 +260,7 @@ int chrif_changemapserverack (int fd)
*
*------------------------------------------
*/
+static
int chrif_connectack (int fd)
{
if (RFIFOB (fd, 2))
@@ -284,6 +288,7 @@ int chrif_connectack (int fd)
*
*------------------------------------------
*/
+static
int chrif_sendmapack (int fd)
{
if (RFIFOB (fd, 2))
@@ -465,6 +470,7 @@ int chrif_char_ask_name (int id, char *character_name, short operation_type,
* 3: login-server offline
*------------------------------------------
*/
+static
int chrif_char_ask_name_answer (int fd)
{
int acc;
@@ -608,6 +614,7 @@ int chrif_char_ask_name_answer (int fd)
* End of GM change (@GM) (modified by Yor)
*------------------------------------------
*/
+static
int chrif_changedgm (int fd)
{
int acc, level;
@@ -636,6 +643,7 @@ int chrif_changedgm (int fd)
* 性別変化終了 (modified by Yor)
*------------------------------------------
*/
+static
int chrif_changedsex (int fd)
{
int acc, sex, i;
@@ -736,6 +744,7 @@ int chrif_saveaccountreg2 (struct map_session_data *sd)
* アカウント変数通知
*------------------------------------------
*/
+static
int chrif_accountreg2 (int fd)
{
int j, p;
@@ -762,6 +771,7 @@ int chrif_accountreg2 (int fd)
* ack from a map-server divorce request
*------------------------------------------
*/
+static
int chrif_divorce (int char_id, int partner_id)
{
struct map_session_data *sd = NULL;
@@ -808,6 +818,7 @@ int chrif_send_divorce (int char_id)
* Disconnection of a player (account has been deleted in login-server) by [Yor]
*------------------------------------------
*/
+static
int chrif_accountdeletion (int fd)
{
int acc;
@@ -840,6 +851,7 @@ int chrif_accountdeletion (int fd)
* Disconnection of a player (account has been banned of has a status, from login-server) by [Yor]
*------------------------------------------
*/
+static
int chrif_accountban (int fd)
{
int acc;
@@ -930,6 +942,7 @@ int chrif_accountban (int fd)
* Receiving GM accounts and their levels from char-server by [Yor]
*------------------------------------------
*/
+static
int chrif_recvgmaccounts (int fd)
{
printf ("From login-server: receiving of %d GM accounts information.\n",
@@ -1092,6 +1105,7 @@ static int ladmin_itemfrob_c2 (struct block_list *bl, int source_id,
return 0;
}
+static
int ladmin_itemfrob_c (struct block_list *bl, va_list va_args)
{
int source_id = va_arg (va_args, int);
@@ -1099,6 +1113,7 @@ int ladmin_itemfrob_c (struct block_list *bl, va_list va_args)
return ladmin_itemfrob_c2 (bl, source_id, dest_id);
}
+static
void ladmin_itemfrob (int fd)
{
int source_id = RFIFOL (fd, 2);
@@ -1121,6 +1136,7 @@ void ladmin_itemfrob (int fd)
*
*------------------------------------------
*/
+static
void chrif_parse (int fd)
{
int packet_len, cmd;
@@ -1203,7 +1219,7 @@ void chrif_parse (int fd)
chrif_changemapserverack (fd);
break;
case 0x2b09:
- map_addchariddb (RFIFOL (fd, 2), RFIFOP (fd, 6));
+ map_addchariddb (RFIFOL (fd, 2), (const char *)RFIFOP (fd, 6));
break;
case 0x2b0b:
chrif_changedgm (fd);
@@ -1246,6 +1262,7 @@ void chrif_parse (int fd)
* 今このmap鯖に繋がっているクライアント人数をchar鯖へ送る
*------------------------------------------
*/
+static
void send_users_tochar (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
int users = 0, i;
@@ -1276,6 +1293,7 @@ void send_users_tochar (timer_id tid, tick_t tick, custom_id_t id, custom_data_t
* char鯖との接続を確認し、もし切れていたら再度接続する
*------------------------------------------
*/
+static
void check_connect_char_server (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
if (char_fd <= 0 || session[char_fd] == NULL)
diff --git a/src/map/chrif.hpp b/src/map/chrif.hpp
index 5b0341e..82bfe0d 100644
--- a/src/map/chrif.hpp
+++ b/src/map/chrif.hpp
@@ -16,7 +16,7 @@ int chrif_save (struct map_session_data *);
int chrif_charselectreq (struct map_session_data *);
int chrif_changemapserver (struct map_session_data *sd, char *name, int x,
- int y, int ip, short port);
+ int y, struct in_addr ip, short port);
int chrif_searchcharid (int char_id);
int chrif_changegm (int id, const char *pass, int len);
diff --git a/src/map/clif.cpp b/src/map/clif.cpp
index 2d6ddf1..fd22160 100644
--- a/src/map/clif.cpp
+++ b/src/map/clif.cpp
@@ -132,7 +132,7 @@ enum
#define WFIFOPOS2(fd,pos,x0,y0,x1,y1) { WBUFPOS2(WFIFOP(fd,pos),0,x0,y0,x1,y1); }
static char map_ip_str[16];
-static in_addr_t map_ip;
+static struct in_addr map_ip;
static int map_port = 5121;
int map_fd;
char talkie_mes[80];
@@ -141,10 +141,10 @@ char talkie_mes[80];
* map鯖のip設定
*------------------------------------------
*/
-void clif_setip (char *ip)
+void clif_setip (const char *ip)
{
memcpy (map_ip_str, ip, 16);
- map_ip = inet_addr (map_ip_str);
+ map_ip.s_addr = inet_addr (map_ip_str);
}
/*==========================================
@@ -160,7 +160,7 @@ void clif_setport (int port)
* map鯖のip読み出し
*------------------------------------------
*/
-in_addr_t clif_getip (void)
+struct in_addr clif_getip (void)
{
return map_ip;
}
@@ -232,6 +232,7 @@ static char *clif_validate_chat (struct map_session_data *sd, int type,
* clif_sendでAREA*指定時用
*------------------------------------------
*/
+static
int clif_send_sub (struct block_list *bl, va_list ap)
{
unsigned char *buf;
@@ -305,7 +306,8 @@ int clif_send_sub (struct block_list *bl, va_list ap)
*
*------------------------------------------
*/
-int clif_send (unsigned char *buf, int len, struct block_list *bl, int type)
+static
+int clif_send (const uint8_t *buf, int len, struct block_list *bl, int type)
{
int i;
struct map_session_data *sd;
@@ -320,8 +322,8 @@ int clif_send (unsigned char *buf, int len, struct block_list *bl, int type)
if (bl->type == BL_PC)
{
- struct map_session_data *sd = (struct map_session_data *) bl;
- if (sd->status.option & OPTION_INVISIBILITY)
+ struct map_session_data *sd2 = (struct map_session_data *) bl;
+ if (sd2->status.option & OPTION_INVISIBILITY)
{
// Obscure hidden GMs
@@ -661,7 +663,7 @@ int clif_charselectok (int id)
*
*------------------------------------------
*/
-static int clif_set009e (struct flooritem_data *fitem, char *buf)
+static int clif_set009e (struct flooritem_data *fitem, uint8_t *buf)
{
int view;
@@ -690,7 +692,7 @@ static int clif_set009e (struct flooritem_data *fitem, char *buf)
*/
int clif_dropflooritem (struct flooritem_data *fitem)
{
- char buf[64];
+ uint8_t buf[64];
nullpo_retr (0, fitem);
@@ -981,7 +983,7 @@ static int clif_set007b (struct map_session_data *sd, unsigned char *buf)
*/
int clif_npc_class_change (struct block_list *bl, int npc_class, int type)
{
- char buf[16];
+ uint8_t buf[16];
nullpo_retr (0, bl);
@@ -1003,7 +1005,7 @@ int clif_npc_class_change (struct block_list *bl, int npc_class, int type)
*/
int clif_mob_class_change (struct mob_data *md, int class_)
{
- char buf[16];
+ uint8_t buf[16];
int view = mob_get_viewclass (class_);
nullpo_retr (0, md);
@@ -1430,6 +1432,7 @@ int clif_spawnmob (struct mob_data *md)
*
*------------------------------------------
*/
+static
int clif_servertick (struct map_session_data *sd)
{
int fd;
@@ -1499,6 +1502,7 @@ int clif_movechar (struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_quitsave (int fd, struct map_session_data *sd)
{
map_quit (sd);
@@ -1527,7 +1531,7 @@ void clif_setwaitclose (int fd)
*
*------------------------------------------
*/
-int clif_changemap (struct map_session_data *sd, char *mapname, int x, int y)
+int clif_changemap (struct map_session_data *sd, const char *mapname, int x, int y)
{
int fd;
@@ -1551,8 +1555,8 @@ int clif_changemap (struct map_session_data *sd, char *mapname, int x, int y)
*
*------------------------------------------
*/
-int clif_changemapserver (struct map_session_data *sd, char *mapname, int x,
- int y, int ip, int port)
+int clif_changemapserver (struct map_session_data *sd, const char *mapname, int x,
+ int y, struct in_addr ip, int port)
{
int fd;
@@ -1563,7 +1567,7 @@ int clif_changemapserver (struct map_session_data *sd, char *mapname, int x,
memcpy (WFIFOP (fd, 2), mapname, 16);
WFIFOW (fd, 18) = x;
WFIFOW (fd, 20) = y;
- WFIFOL (fd, 22) = ip;
+ WFIFOL (fd, 22) = ip.s_addr;
WFIFOW (fd, 26) = port;
WFIFOSET (fd, packet_len_table[0x92]);
@@ -1576,7 +1580,7 @@ int clif_changemapserver (struct map_session_data *sd, char *mapname, int x,
*/
int clif_fixpos (struct block_list *bl)
{
- char buf[16];
+ uint8_t buf[16];
nullpo_retr (0, bl);
@@ -1679,7 +1683,7 @@ int clif_selllist (struct map_session_data *sd)
*
*------------------------------------------
*/
-int clif_scriptmes (struct map_session_data *sd, int npcid, char *mes)
+int clif_scriptmes (struct map_session_data *sd, int npcid, const char *mes)
{
int fd;
@@ -1689,7 +1693,7 @@ int clif_scriptmes (struct map_session_data *sd, int npcid, char *mes)
WFIFOW (fd, 0) = 0xb4;
WFIFOW (fd, 2) = strlen (mes) + 9;
WFIFOL (fd, 4) = npcid;
- strcpy (WFIFOP (fd, 8), mes);
+ strcpy ((char *)WFIFOP (fd, 8), mes);
WFIFOSET (fd, WFIFOW (fd, 2));
return 0;
@@ -1735,7 +1739,7 @@ int clif_scriptclose (struct map_session_data *sd, int npcid)
*
*------------------------------------------
*/
-int clif_scriptmenu (struct map_session_data *sd, int npcid, char *mes)
+int clif_scriptmenu (struct map_session_data *sd, int npcid, const char *mes)
{
int fd;
@@ -1745,7 +1749,7 @@ int clif_scriptmenu (struct map_session_data *sd, int npcid, char *mes)
WFIFOW (fd, 0) = 0xb7;
WFIFOW (fd, 2) = strlen (mes) + 8;
WFIFOL (fd, 4) = npcid;
- strcpy (WFIFOP (fd, 8), mes);
+ strcpy ((char *)WFIFOP (fd, 8), mes);
WFIFOSET (fd, WFIFOW (fd, 2));
return 0;
@@ -1815,7 +1819,7 @@ int clif_viewpoint (struct map_session_data *sd, int npc_id, int type, int x,
*
*------------------------------------------
*/
-int clif_cutin (struct map_session_data *sd, char *image, int type)
+int clif_cutin (struct map_session_data *sd, const char *image, int type)
{
int fd;
@@ -2682,6 +2686,7 @@ int clif_changelook_towards (struct block_list *bl, int type, int val,
*
*------------------------------------------
*/
+static
int clif_initialstatus (struct map_session_data *sd)
{
int fd;
@@ -2844,7 +2849,7 @@ int clif_unequipitemack (struct map_session_data *sd, int n, int pos, int ok)
*/
int clif_misceffect (struct block_list *bl, int type)
{
- char buf[32];
+ uint8_t buf[32];
nullpo_retr (0, bl);
@@ -2863,7 +2868,7 @@ int clif_misceffect (struct block_list *bl, int type)
*/
int clif_changeoption (struct block_list *bl)
{
- char buf[32];
+ uint8_t buf[32];
short option;
struct status_change *sc_data;
static const int omask[] = { 0x10, 0x20 };
@@ -2933,7 +2938,7 @@ int clif_useitemack (struct map_session_data *sd, int index, int amount,
}
else
{
- char buf[32];
+ uint8_t buf[32];
WBUFW (buf, 0) = 0x1c8;
WBUFW (buf, 2) = index + 2;
@@ -2975,7 +2980,7 @@ int clif_createchat (struct map_session_data *sd, int fail)
*/
int clif_dispchat (struct chat_data *cd, int fd)
{
- char buf[128]; // 最大title(60バイト)+17
+ uint8_t buf[128]; // 最大title(60バイト)+17
if (cd == NULL || *cd->owner == NULL)
return 1;
@@ -2987,7 +2992,7 @@ int clif_dispchat (struct chat_data *cd, int fd)
WBUFW (buf, 12) = cd->limit;
WBUFW (buf, 14) = cd->users;
WBUFB (buf, 16) = cd->pub;
- strcpy (WBUFP (buf, 17), cd->title);
+ strcpy ((char *)WBUFP (buf, 17), cd->title);
if (fd)
{
memcpy (WFIFOP (fd, 0), buf, WBUFW (buf, 2));
@@ -3008,7 +3013,7 @@ int clif_dispchat (struct chat_data *cd, int fd)
*/
int clif_changechatstatus (struct chat_data *cd)
{
- char buf[128]; // 最大title(60バイト)+17
+ uint8_t buf[128]; // 最大title(60バイト)+17
if (cd == NULL || cd->usersd[0] == NULL)
return 1;
@@ -3020,7 +3025,7 @@ int clif_changechatstatus (struct chat_data *cd)
WBUFW (buf, 12) = cd->limit;
WBUFW (buf, 14) = cd->users;
WBUFB (buf, 16) = cd->pub;
- strcpy (WBUFP (buf, 17), cd->title);
+ strcpy ((char *)WBUFP (buf, 17), cd->title);
clif_send (buf, WBUFW (buf, 2), &cd->usersd[0]->bl, CHAT);
return 0;
@@ -3032,7 +3037,7 @@ int clif_changechatstatus (struct chat_data *cd)
*/
int clif_clearchat (struct chat_data *cd, int fd)
{
- char buf[32];
+ uint8_t buf[32];
nullpo_retr (0, cd);
@@ -3102,7 +3107,7 @@ int clif_joinchatok (struct map_session_data *sd, struct chat_data *cd)
*/
int clif_addchat (struct chat_data *cd, struct map_session_data *sd)
{
- char buf[32];
+ uint8_t buf[32];
nullpo_retr (0, sd);
nullpo_retr (0, cd);
@@ -3121,7 +3126,7 @@ int clif_addchat (struct chat_data *cd, struct map_session_data *sd)
*/
int clif_changechatowner (struct chat_data *cd, struct map_session_data *sd)
{
- char buf[64];
+ uint8_t buf[64];
nullpo_retr (0, sd);
nullpo_retr (0, cd);
@@ -3144,7 +3149,7 @@ int clif_changechatowner (struct chat_data *cd, struct map_session_data *sd)
*/
int clif_leavechat (struct chat_data *cd, struct map_session_data *sd)
{
- char buf[32];
+ uint8_t buf[32];
nullpo_retr (0, sd);
nullpo_retr (0, cd);
@@ -3163,7 +3168,7 @@ int clif_leavechat (struct chat_data *cd, struct map_session_data *sd)
* 取り引き要請受け
*------------------------------------------
*/
-int clif_traderequest (struct map_session_data *sd, char *name)
+int clif_traderequest (struct map_session_data *sd, const char *name)
{
int fd;
@@ -3171,7 +3176,7 @@ int clif_traderequest (struct map_session_data *sd, char *name)
fd = sd->fd;
WFIFOW (fd, 0) = 0xe5;
- strcpy (WFIFOP (fd, 2), name);
+ strcpy ((char *)WFIFOP (fd, 2), name);
WFIFOSET (fd, packet_len_table[0xe5]);
return 0;
@@ -3575,6 +3580,7 @@ clif_changelook_accessories (struct block_list *bl,
* PC表示
*------------------------------------------
*/
+static
void clif_getareachar_pc (struct map_session_data *sd,
struct map_session_data *dstsd)
{
@@ -3624,6 +3630,7 @@ void clif_getareachar_pc (struct map_session_data *sd,
* NPC表示
*------------------------------------------
*/
+static
void clif_getareachar_npc (struct map_session_data *sd, struct npc_data *nd)
{
int len;
@@ -3770,6 +3777,7 @@ int clif_damage (struct block_list *src, struct block_list *dst,
*
*------------------------------------------
*/
+static
void clif_getareachar_mob (struct map_session_data *sd, struct mob_data *md)
{
int len;
@@ -3795,6 +3803,7 @@ void clif_getareachar_mob (struct map_session_data *sd, struct mob_data *md)
*
*------------------------------------------
*/
+static
void clif_getareachar_item (struct map_session_data *sd,
struct flooritem_data *fitem)
{
@@ -3825,6 +3834,7 @@ void clif_getareachar_item (struct map_session_data *sd,
* 場所スキルエフェクトが視界に入る
*------------------------------------------
*/
+static
int clif_getareachar_skillunit (struct map_session_data *sd,
struct skill_unit *unit)
{
@@ -3886,6 +3896,7 @@ int clif_getareachar_skillunit (struct map_session_data *sd,
* 場所スキルエフェクトが視界から消える
*------------------------------------------
*/
+static
int clif_clearchar_skillunit (struct skill_unit *unit, int fd)
{
nullpo_retr (0, unit);
@@ -3905,7 +3916,7 @@ int clif_clearchar_skillunit (struct skill_unit *unit, int fd)
*/
int clif_01ac (struct block_list *bl)
{
- char buf[32];
+ uint8_t buf[32];
nullpo_retr (0, bl);
@@ -3920,6 +3931,7 @@ int clif_01ac (struct block_list *bl)
*
*------------------------------------------
*/
+static
int clif_getareachar (struct block_list *bl, va_list ap)
{
struct map_session_data *sd;
@@ -4587,7 +4599,7 @@ int clif_status_change (struct block_list *bl, int type, int flag)
* Send message (modified by [Yor])
*------------------------------------------
*/
-int clif_displaymessage (const int fd, char *mes)
+int clif_displaymessage (int fd, const char *mes)
{
int len_mes = strlen (mes);
@@ -4606,7 +4618,7 @@ int clif_displaymessage (const int fd, char *mes)
* 天の声を送信する
*------------------------------------------
*/
-int clif_GMmessage (struct block_list *bl, char *mes, int len, int flag)
+int clif_GMmessage (struct block_list *bl, const char *mes, int len, int flag)
{
unsigned char lbuf[255];
unsigned char *buf =
@@ -4703,7 +4715,7 @@ int clif_pvpset (struct map_session_data *sd, int pvprank, int pvpnum,
}
else
{
- char buf[32];
+ uint8_t buf[32];
WBUFW (buf, 0) = 0x19a;
WBUFL (buf, 2) = sd->bl.id;
@@ -4726,12 +4738,12 @@ int clif_pvpset (struct map_session_data *sd, int pvprank, int pvpnum,
*
*------------------------------------------
*/
-int clif_send0199 (int map, int type)
+int clif_send0199 (int m, int type)
{
struct block_list bl;
- char buf[16];
+ uint8_t buf[16];
- bl.m = map;
+ bl.m = m;
WBUFW (buf, 0) = 0x199;
WBUFW (buf, 2) = type;
clif_send (buf, packet_len_table[0x199], &bl, ALL_SAMEMAP);
@@ -4759,7 +4771,7 @@ int clif_refine (int fd, struct map_session_data *sd, int fail, int index,
* Wisp/page is transmitted to the destination player
*------------------------------------------
*/
-int clif_wis_message (int fd, char *nick, char *mes, int mes_len) // R 0097 <len>.w <nick>.24B <message>.?B
+int clif_wis_message (int fd, const char *nick, const char *mes, int mes_len) // R 0097 <len>.w <nick>.24B <message>.?B
{
WFIFOW (fd, 0) = 0x97;
WFIFOW (fd, 2) = mes_len + 24 + 4;
@@ -5310,7 +5322,7 @@ int clif_party_invite (struct map_session_data *sd,
* 4 The character is in the same party.
*------------------------------------------
*/
-int clif_party_inviteack (struct map_session_data *sd, char *nick, int flag)
+int clif_party_inviteack (struct map_session_data *sd, const char *nick, int flag)
{
int fd;
@@ -5366,7 +5378,7 @@ int clif_party_option (struct party *p, struct map_session_data *sd, int flag)
*------------------------------------------
*/
int clif_party_leaved (struct party *p, struct map_session_data *sd,
- int account_id, char *name, int flag)
+ int account_id, const char *name, int flag)
{
unsigned char buf[64];
int i;
@@ -5399,7 +5411,7 @@ int clif_party_leaved (struct party *p, struct map_session_data *sd,
* パーティメッセージ送信
*------------------------------------------
*/
-int clif_party_message (struct party *p, int account_id, char *mes, int len)
+int clif_party_message (struct party *p, int account_id, const char *mes, int len)
{
struct map_session_data *sd;
int i;
@@ -5670,7 +5682,7 @@ int clif_bladestop (struct block_list *src, struct block_list *dst, int boolean)
int clif_changemapcell (int m, int x, int y, int cell_type, int type)
{
struct block_list bl;
- char buf[32];
+ uint8_t buf[32];
bl.m = m;
bl.x = x;
@@ -5821,6 +5833,7 @@ int clif_guild_memberlogin_notice (struct guild *g, int idx, int flag)
* ギルドマスター通知(14dへの応答)
*------------------------------------------
*/
+static
int clif_guild_masterormember (struct map_session_data *sd)
{
int type = 0x57, fd;
@@ -5955,7 +5968,7 @@ int clif_guild_allianceinfo (struct map_session_data *sd)
WFIFOW (fd, 0) = 0x14c;
for (i = c = 0; i < MAX_GUILDALLIANCE; i++)
{
- struct guild_alliance *a = &g->alliance[i];
+ GuildAlliance *a = &g->alliance[i];
if (a->guild_id > 0)
{
WFIFOL (fd, c * 32 + 4) = a->opposition;
@@ -6015,6 +6028,7 @@ int clif_guild_memberlist (struct map_session_data *sd)
* ギルド役職名リスト
*------------------------------------------
*/
+static
int clif_guild_positionnamelist (struct map_session_data *sd)
{
int i, fd;
@@ -6041,6 +6055,7 @@ int clif_guild_positionnamelist (struct map_session_data *sd)
* ギルド役職情報リスト
*------------------------------------------
*/
+static
int clif_guild_positioninfolist (struct map_session_data *sd)
{
int i, fd;
@@ -6272,6 +6287,7 @@ int clif_guild_explusion (struct map_session_data *sd, const char *name,
* ギルド追放メンバリスト
*------------------------------------------
*/
+static
int clif_guild_explusionlist (struct map_session_data *sd)
{
int fd;
@@ -6287,7 +6303,7 @@ int clif_guild_explusionlist (struct map_session_data *sd)
WFIFOW (fd, 0) = 0x163;
for (i = c = 0; i < MAX_GUILDEXPLUSION; i++)
{
- struct guild_explusion *e = &g->explusion[i];
+ GuildExpulsion *e = &g->explusion[i];
if (e->account_id > 0)
{
memcpy (WFIFOP (fd, c * 88 + 4), e->name, 24);
@@ -6490,7 +6506,7 @@ static void clif_emotion_towards (struct block_list *bl,
* トーキーボックス
*------------------------------------------
*/
-void clif_talkiebox (struct block_list *bl, char *talkie)
+void clif_talkiebox (struct block_list *bl, const char *talkie)
{
unsigned char buf[86];
@@ -6563,7 +6579,7 @@ void clif_sitting (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
-int clif_disp_onlyself (struct map_session_data *sd, char *mes, int len)
+int clif_disp_onlyself (struct map_session_data *sd, const char *mes, int len)
{
unsigned char lbuf[255];
unsigned char *buf =
@@ -6620,6 +6636,7 @@ int clif_GM_kick (struct map_session_data *sd, struct map_session_data *tsd,
* Wis拒否許可応答
*------------------------------------------
*/
+static
int clif_wisexin (struct map_session_data *sd, int type, int flag)
{
int fd;
@@ -6639,6 +6656,7 @@ int clif_wisexin (struct map_session_data *sd, int type, int flag)
* Wis全拒否許可応答
*------------------------------------------
*/
+static
int clif_wisall (struct map_session_data *sd, int type, int flag)
{
int fd;
@@ -6659,7 +6677,7 @@ int clif_wisall (struct map_session_data *sd, int type, int flag)
*------------------------------------------
*/
void clif_soundeffect (struct map_session_data *sd, struct block_list *bl,
- char *name, int type)
+ const char *name, int type)
{
int fd;
@@ -6719,6 +6737,7 @@ int clif_specialeffect (struct block_list *bl, int type, int flag)
*
*------------------------------------------
*/
+static
void clif_parse_WantToConnection (int fd, struct map_session_data *sd)
{
struct map_session_data *old_sd;
@@ -6772,6 +6791,7 @@ void clif_parse_WantToConnection (int fd, struct map_session_data *sd)
* map侵入時に必要なデータを全て送りつける
*------------------------------------------
*/
+static
void clif_parse_LoadEndAck (int fd, struct map_session_data *sd)
{
// struct item_data* item;
@@ -6928,6 +6948,7 @@ void clif_parse_LoadEndAck (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_TickSend (int fd, struct map_session_data *sd)
{
nullpo_retv (sd);
@@ -6941,6 +6962,7 @@ void clif_parse_TickSend (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_WalkToXY (int fd, struct map_session_data *sd)
{
int x, y;
@@ -7033,6 +7055,7 @@ void clif_parse_QuitGame (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_GetCharNameRequest (int fd, struct map_session_data *sd)
{
struct block_list *bl;
@@ -7063,7 +7086,7 @@ void clif_parse_GetCharNameRequest (int fd, struct map_session_data *sd)
struct guild *g = NULL;
struct party *p = NULL;
- char *guild_name = "", *guild_pos = "", *party_name = "";
+ const char *guild_name = "", *guild_pos = "", *party_name = "";
int send = 0;
@@ -7105,7 +7128,7 @@ void clif_parse_GetCharNameRequest (int fd, struct map_session_data *sd)
if (pc_isGM(sd) >= battle_config.hack_info_GM_level)
{
- in_addr_t ip = ssd->ip;
+ struct in_addr ip = ssd->ip;
WFIFOW (fd, 0) = 0x20C;
// Mask the IP using the char-server password
@@ -7113,7 +7136,7 @@ void clif_parse_GetCharNameRequest (int fd, struct map_session_data *sd)
ip = MD5_ip(chrif_getpasswd (), ssd->ip);
WFIFOL (fd, 2) = account_id;
- WFIFOL (fd, 6) = ip;
+ WFIFOL (fd, 6) = ip.s_addr;
WFIFOSET (fd, packet_len_table[0x20C]);
}
@@ -7122,7 +7145,7 @@ void clif_parse_GetCharNameRequest (int fd, struct map_session_data *sd)
case BL_NPC:
memcpy (WFIFOP (fd, 6), ((struct npc_data *) bl)->name, 24);
{
- char *start = WFIFOP (fd, 6);
+ char *start = (char *)WFIFOP (fd, 6);
char *end = strchr (start, '#'); // [fate] elim hashed out/invisible names for the client
if (end)
while (*end)
@@ -7159,10 +7182,12 @@ void clif_parse_GetCharNameRequest (int fd, struct map_session_data *sd)
* (S 008c <len>.w <message>.?B)
*------------------------------------------
*/
+static
void clif_parse_GlobalMessage (int fd, struct map_session_data *sd)
{
int msg_len = RFIFOW (fd, 2) - 4; /* Header (2) + length (2). */
size_t message_len = 0;
+ // sometimes uint8_t
char *buf = NULL;
char *message = NULL; /* The message text only. */
@@ -7170,8 +7195,7 @@ void clif_parse_GlobalMessage (int fd, struct map_session_data *sd)
if (!(buf = clif_validate_chat (sd, 2, &message, &message_len)))
{
- /* "Your message could not be sent." */
- clif_displaymessage (fd, msg_txt (505));
+ clif_displaymessage (fd, "Your message could not be sent.");
return;
}
@@ -7189,8 +7213,7 @@ void clif_parse_GlobalMessage (int fd, struct map_session_data *sd)
if (tmw_CheckChatSpam (sd, message))
{
free (buf);
- /* "Your message could not be sent." */
- clif_displaymessage (fd, msg_txt (505));
+ clif_displaymessage (fd, "Your message could not be sent.");
return;
}
@@ -7199,7 +7222,8 @@ void clif_parse_GlobalMessage (int fd, struct map_session_data *sd)
WBUFW (buf, 2) = msg_len + 8; /* Header (2) + length (2) + ID (4). */
WBUFL (buf, 4) = sd->bl.id;
- clif_send (buf, msg_len + 8, &sd->bl,
+ // evil multiuse buffer!
+ clif_send ((const uint8_t *)buf, msg_len + 8, &sd->bl,
sd->chatID ? CHAT_WOS : AREA_CHAT_WOC);
}
@@ -7212,7 +7236,7 @@ void clif_parse_GlobalMessage (int fd, struct map_session_data *sd)
return;
}
-int clif_message (struct block_list *bl, char *msg)
+int clif_message (struct block_list *bl, const char *msg)
{
unsigned short msg_len = strlen (msg) + 1;
unsigned char buf[512];
@@ -7236,6 +7260,7 @@ int clif_message (struct block_list *bl, char *msg)
*
*------------------------------------------
*/
+static
void clif_parse_MapMove (int fd, struct map_session_data *sd)
{
// /m /mapmove (as @rura GM command)
@@ -7264,6 +7289,7 @@ void clif_parse_MapMove (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_ChangeDir (int fd, struct map_session_data *sd)
{
unsigned char buf[64];
@@ -7294,6 +7320,7 @@ void clif_parse_ChangeDir (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_Emotion (int fd, struct map_session_data *sd)
{
unsigned char buf[64];
@@ -7316,6 +7343,7 @@ void clif_parse_Emotion (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_HowManyConnections (int fd, struct map_session_data *sd)
{
WFIFOW (fd, 0) = 0xc2;
@@ -7327,6 +7355,7 @@ void clif_parse_HowManyConnections (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_ActionRequest (int fd, struct map_session_data *sd)
{
unsigned int tick;
@@ -7397,6 +7426,7 @@ void clif_parse_ActionRequest (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_Restart (int fd, struct map_session_data *sd)
{
nullpo_retv (sd);
@@ -7445,6 +7475,7 @@ void clif_parse_Restart (int fd, struct map_session_data *sd)
* [remoitnane]
*------------------------------------------
*/
+static
void clif_parse_Wis (int fd, struct map_session_data *sd)
{
size_t message_len = 0;
@@ -7456,8 +7487,7 @@ void clif_parse_Wis (int fd, struct map_session_data *sd)
if (!(buf = clif_validate_chat (sd, 1, &message, &message_len)))
{
- /* "Your message could not be sent." */
- clif_displaymessage (fd, msg_txt (505));
+ clif_displaymessage (fd, "Your message could not be sent.");
return;
}
@@ -7473,8 +7503,7 @@ void clif_parse_Wis (int fd, struct map_session_data *sd)
if (tmw_CheckChatSpam (sd, message))
{
free (buf);
- /* "Your message could not be sent." */
- clif_displaymessage (fd, msg_txt (505));
+ clif_displaymessage (fd, "Your message could not be sent.");
return;
}
@@ -7484,16 +7513,15 @@ void clif_parse_Wis (int fd, struct map_session_data *sd)
* conflict (for instance, "Test" versus "test"), the char-server must
* settle the discrepancy.
*/
- if (!(dstsd = map_nick2sd (RFIFOP (fd, 4)))
- || strcmp (dstsd->status.name, RFIFOP (fd, 4)) != 0)
- intif_wis_message (sd, RFIFOP (fd, 4), message, RFIFOW (fd, 2) - 28);
+ if (!(dstsd = map_nick2sd ((const char *)RFIFOP (fd, 4)))
+ || strcmp (dstsd->status.name, (const char *)RFIFOP (fd, 4)) != 0)
+ intif_wis_message (sd, (const char *)RFIFOP (fd, 4), message, RFIFOW (fd, 2) - 28);
else
{
/* Refuse messages addressed to self. */
if (dstsd->fd == fd)
{
- /* "You cannot page yourself." */
- char *mes = msg_txt (504);
+ const char *mes = "You cannot page yourself.";
clif_wis_message (fd, wisp_server_name, mes, strlen (mes) + 1);
}
else
@@ -7535,6 +7563,7 @@ void clif_parse_Wis (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_GMmessage (int fd, struct map_session_data *sd)
{
char m[512];
@@ -7544,7 +7573,7 @@ void clif_parse_GMmessage (int fd, struct map_session_data *sd)
if ((battle_config.atc_gmonly == 0 || pc_isGM (sd)) &&
(pc_isGM (sd) >= get_atcommand_level (AtCommand_Broadcast)))
{
- strncpy (m, RFIFOP (fd, 4), RFIFOW (fd, 2) - 4);
+ strncpy (m, (const char *)RFIFOP (fd, 4), RFIFOW (fd, 2) - 4);
m[RFIFOW (fd, 2) - 4] = 0;
log_atcommand (sd, "/announce %s", m);
@@ -7559,6 +7588,7 @@ void clif_parse_GMmessage (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_TakeItem (int fd, struct map_session_data *sd)
{
struct flooritem_data *fitem;
@@ -7599,6 +7629,7 @@ void clif_parse_TakeItem (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_DropItem (int fd, struct map_session_data *sd)
{
int item_index, item_amount;
@@ -7634,6 +7665,7 @@ void clif_parse_DropItem (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_UseItem (int fd, struct map_session_data *sd)
{
nullpo_retv (sd);
@@ -7660,6 +7692,7 @@ void clif_parse_UseItem (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_EquipItem (int fd, struct map_session_data *sd)
{
int index;
@@ -7700,6 +7733,7 @@ void clif_parse_EquipItem (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_UnequipItem (int fd, struct map_session_data *sd)
{
int index;
@@ -7732,6 +7766,7 @@ void clif_parse_UnequipItem (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_NpcClicked (int fd, struct map_session_data *sd)
{
nullpo_retv (sd);
@@ -7750,6 +7785,7 @@ void clif_parse_NpcClicked (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_NpcBuySellSelected (int fd, struct map_session_data *sd)
{
npc_buysellsel (sd, RFIFOL (fd, 2), RFIFOB (fd, 6));
@@ -7759,6 +7795,7 @@ void clif_parse_NpcBuySellSelected (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_NpcBuyListSend (int fd, struct map_session_data *sd)
{
int fail = 0, n;
@@ -7778,6 +7815,7 @@ void clif_parse_NpcBuyListSend (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_NpcSellListSend (int fd, struct map_session_data *sd)
{
int fail = 0, n;
@@ -7797,53 +7835,59 @@ void clif_parse_NpcSellListSend (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_CreateChatRoom (int fd, struct map_session_data *sd)
{
- chat_createchat (sd, RFIFOW (fd, 4), RFIFOB (fd, 6), RFIFOP (fd, 7),
- RFIFOP (fd, 15), RFIFOW (fd, 2) - 15);
+ chat_createchat (sd, RFIFOW (fd, 4), RFIFOB (fd, 6), (const char *)RFIFOP (fd, 7),
+ (const char *)RFIFOP (fd, 15), RFIFOW (fd, 2) - 15);
}
/*==========================================
*
*------------------------------------------
*/
+static
void clif_parse_ChatAddMember (int fd, struct map_session_data *sd)
{
- chat_joinchat (sd, RFIFOL (fd, 2), RFIFOP (fd, 6));
+ chat_joinchat (sd, RFIFOL (fd, 2), (const char *)RFIFOP (fd, 6));
}
/*==========================================
*
*------------------------------------------
*/
+static
void clif_parse_ChatRoomStatusChange (int fd, struct map_session_data *sd)
{
- chat_changechatstatus (sd, RFIFOW (fd, 4), RFIFOB (fd, 6), RFIFOP (fd, 7),
- RFIFOP (fd, 15), RFIFOW (fd, 2) - 15);
+ chat_changechatstatus (sd, RFIFOW (fd, 4), RFIFOB (fd, 6), (const char *)RFIFOP (fd, 7),
+ (const char *)RFIFOP (fd, 15), RFIFOW (fd, 2) - 15);
}
/*==========================================
*
*------------------------------------------
*/
+static
void clif_parse_ChangeChatOwner (int fd, struct map_session_data *sd)
{
- chat_changechatowner (sd, RFIFOP (fd, 6));
+ chat_changechatowner (sd, (const char *)RFIFOP (fd, 6));
}
/*==========================================
*
*------------------------------------------
*/
+static
void clif_parse_KickFromChat (int fd, struct map_session_data *sd)
{
- chat_kickchat (sd, RFIFOP (fd, 2));
+ chat_kickchat (sd, (const char *)RFIFOP (fd, 2));
}
/*==========================================
*
*------------------------------------------
*/
+static
void clif_parse_ChatLeave (int fd, struct map_session_data *sd)
{
chat_leavechat (sd);
@@ -7853,6 +7897,7 @@ void clif_parse_ChatLeave (int fd, struct map_session_data *sd)
* 取引要請を相手に送る
*------------------------------------------
*/
+static
void clif_parse_TradeRequest (int fd, struct map_session_data *sd)
{
nullpo_retv (sd);
@@ -7870,6 +7915,7 @@ void clif_parse_TradeRequest (int fd, struct map_session_data *sd)
* 取引要請
*------------------------------------------
*/
+static
void clif_parse_TradeAck (int fd, struct map_session_data *sd)
{
nullpo_retv (sd);
@@ -7881,6 +7927,7 @@ void clif_parse_TradeAck (int fd, struct map_session_data *sd)
* アイテム追加
*------------------------------------------
*/
+static
void clif_parse_TradeAddItem (int fd, struct map_session_data *sd)
{
nullpo_retv (sd);
@@ -7892,6 +7939,7 @@ void clif_parse_TradeAddItem (int fd, struct map_session_data *sd)
* アイテム追加完了(ok押し)
*------------------------------------------
*/
+static
void clif_parse_TradeOk (int fd, struct map_session_data *sd)
{
trade_tradeok (sd);
@@ -7901,6 +7949,7 @@ void clif_parse_TradeOk (int fd, struct map_session_data *sd)
* 取引キャンセル
*------------------------------------------
*/
+static
void clif_parse_TradeCansel (int fd, struct map_session_data *sd)
{
trade_tradecancel (sd);
@@ -7910,6 +7959,7 @@ void clif_parse_TradeCansel (int fd, struct map_session_data *sd)
* 取引許諾(trade押し)
*------------------------------------------
*/
+static
void clif_parse_TradeCommit (int fd, struct map_session_data *sd)
{
trade_tradecommit (sd);
@@ -7919,6 +7969,7 @@ void clif_parse_TradeCommit (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_StopAttack (int fd, struct map_session_data *sd)
{
pc_stopattack (sd);
@@ -7928,6 +7979,7 @@ void clif_parse_StopAttack (int fd, struct map_session_data *sd)
* カートへアイテムを移す
*------------------------------------------
*/
+static
void clif_parse_PutItemToCart (int fd, struct map_session_data *sd)
{
nullpo_retv (sd);
@@ -7941,6 +7993,7 @@ void clif_parse_PutItemToCart (int fd, struct map_session_data *sd)
* カートからアイテムを出す
*------------------------------------------
*/
+static
void clif_parse_GetItemFromCart (int fd, struct map_session_data *sd)
{
nullpo_retv (sd);
@@ -7954,6 +8007,7 @@ void clif_parse_GetItemFromCart (int fd, struct map_session_data *sd)
* 付属品(鷹,ペコ,カート)をはずす
*------------------------------------------
*/
+static
void clif_parse_RemoveOption (int fd, struct map_session_data *sd)
{
if (pc_isriding (sd))
@@ -7978,6 +8032,7 @@ void clif_parse_RemoveOption (int fd, struct map_session_data *sd)
* チェンジカート
*------------------------------------------
*/
+static
void clif_parse_ChangeCart (int fd, struct map_session_data *sd)
{
pc_setcart (sd, RFIFOW (fd, 2));
@@ -7987,6 +8042,7 @@ void clif_parse_ChangeCart (int fd, struct map_session_data *sd)
* ステータスアップ
*------------------------------------------
*/
+static
void clif_parse_StatusUp (int fd, struct map_session_data *sd)
{
pc_statusup (sd, RFIFOW (fd, 2));
@@ -7996,6 +8052,7 @@ void clif_parse_StatusUp (int fd, struct map_session_data *sd)
* スキルレベルアップ
*------------------------------------------
*/
+static
void clif_parse_SkillUp (int fd, struct map_session_data *sd)
{
pc_skillup (sd, RFIFOW (fd, 2));
@@ -8005,6 +8062,7 @@ void clif_parse_SkillUp (int fd, struct map_session_data *sd)
* スキル使用(ID指定)
*------------------------------------------
*/
+static
void clif_parse_UseSkillToId (int fd, struct map_session_data *sd)
{
int skillnum, skilllv, lv, target_id;
@@ -8082,6 +8140,7 @@ void clif_parse_UseSkillToId (int fd, struct map_session_data *sd)
* スキル使用(場所指定)
*------------------------------------------
*/
+static
void clif_parse_UseSkillToPos (int fd, struct map_session_data *sd)
{
int skillnum, skilllv, lv, x, y;
@@ -8152,6 +8211,7 @@ void clif_parse_UseSkillToPos (int fd, struct map_session_data *sd)
* スキル使用(map指定)
*------------------------------------------
*/
+static
void clif_parse_UseSkillMap (int fd, struct map_session_data *sd)
{
nullpo_retv (sd);
@@ -8172,13 +8232,14 @@ void clif_parse_UseSkillMap (int fd, struct map_session_data *sd)
if (sd->invincible_timer != -1)
pc_delinvincibletimer (sd);
- skill_castend_map (sd, RFIFOW (fd, 2), RFIFOP (fd, 4));
+ skill_castend_map (sd, RFIFOW (fd, 2), (const char *)RFIFOP (fd, 4));
}
/*==========================================
* メモ要求
*------------------------------------------
*/
+static
void clif_parse_RequestMemo (int fd, struct map_session_data *sd)
{
pc_memo (sd, -1);
@@ -8188,6 +8249,7 @@ void clif_parse_RequestMemo (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_NpcSelectMenu (int fd, struct map_session_data *sd)
{
nullpo_retv (sd);
@@ -8200,6 +8262,7 @@ void clif_parse_NpcSelectMenu (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_NpcNextClicked (int fd, struct map_session_data *sd)
{
map_scriptcont (sd, RFIFOL (fd, 2));
@@ -8209,6 +8272,7 @@ void clif_parse_NpcNextClicked (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_NpcAmountInput (int fd, struct map_session_data *sd)
{
nullpo_retv (sd);
@@ -8228,6 +8292,7 @@ void clif_parse_NpcAmountInput (int fd, struct map_session_data *sd)
* (S 01d5 <len>.w <npc_ID>.l <message>.?B)
*------------------------------------------
*/
+static
void clif_parse_NpcStringInput (int fd, struct map_session_data *sd)
{
int len;
@@ -8249,7 +8314,7 @@ void clif_parse_NpcStringInput (int fd, struct map_session_data *sd)
}
if (len > 0)
- strncpy (sd->npc_str, RFIFOP (fd, 8), len);
+ strncpy (sd->npc_str, (const char *)RFIFOP (fd, 8), len);
sd->npc_str[len] = '\0';
map_scriptcont (sd, RFIFOL (fd, 4));
@@ -8259,6 +8324,7 @@ void clif_parse_NpcStringInput (int fd, struct map_session_data *sd)
*
*------------------------------------------
*/
+static
void clif_parse_NpcCloseClicked (int fd, struct map_session_data *sd)
{
map_scriptcont (sd, RFIFOL (fd, 2));
@@ -8268,6 +8334,7 @@ void clif_parse_NpcCloseClicked (int fd, struct map_session_data *sd)
* アイテム鑑定
*------------------------------------------
*/
+static
void clif_parse_ItemIdentify (int fd, struct map_session_data *sd)
{
pc_item_identify (sd, RFIFOW (fd, 2) - 2);
@@ -8277,6 +8344,7 @@ void clif_parse_ItemIdentify (int fd, struct map_session_data *sd)
* オートスペル受信
*------------------------------------------
*/
+static
void clif_parse_AutoSpell (int fd, struct map_session_data *sd)
{
skill_autospell (sd, RFIFOW (fd, 2));
@@ -8286,6 +8354,7 @@ void clif_parse_AutoSpell (int fd, struct map_session_data *sd)
* カード使用
*------------------------------------------
*/
+static
void clif_parse_UseCard (int fd, struct map_session_data *sd)
{
clif_use_card (sd, RFIFOW (fd, 2) - 2);
@@ -8295,6 +8364,7 @@ void clif_parse_UseCard (int fd, struct map_session_data *sd)
* カード挿入装備選択
*------------------------------------------
*/
+static
void clif_parse_InsertCard (int fd, struct map_session_data *sd)
{
pc_insert_card (sd, RFIFOW (fd, 2) - 2, RFIFOW (fd, 4) - 2);
@@ -8304,6 +8374,7 @@ void clif_parse_InsertCard (int fd, struct map_session_data *sd)
* 0193 キャラID名前引き
*------------------------------------------
*/
+static
void clif_parse_SolveCharName (int fd, struct map_session_data *sd)
{
int char_id;
@@ -8316,6 +8387,7 @@ void clif_parse_SolveCharName (int fd, struct map_session_data *sd)
* 0197 /resetskill /resetstate
*------------------------------------------
*/
+static
void clif_parse_ResetChar (int fd, struct map_session_data *sd)
{
nullpo_retv (sd);
@@ -8344,6 +8416,7 @@ void clif_parse_ResetChar (int fd, struct map_session_data *sd)
* 019c /lb等
*------------------------------------------
*/
+static
void clif_parse_LGMmessage (int fd, struct map_session_data *sd)
{
unsigned char buf[64];
@@ -8364,6 +8437,7 @@ void clif_parse_LGMmessage (int fd, struct map_session_data *sd)
* カプラ倉庫へ入れる
*------------------------------------------
*/
+static
void clif_parse_MoveToKafra (int fd, struct map_session_data *sd)
{
int item_index, item_amount;
@@ -8387,6 +8461,7 @@ void clif_parse_MoveToKafra (int fd, struct map_session_data *sd)
* カプラ倉庫から出す
*------------------------------------------
*/
+static
void clif_parse_MoveFromKafra (int fd, struct map_session_data *sd)
{
int item_index, item_amount;
@@ -8410,6 +8485,7 @@ void clif_parse_MoveFromKafra (int fd, struct map_session_data *sd)
* カプラ倉庫へカートから入れる
*------------------------------------------
*/
+static
void clif_parse_MoveToKafraFromCart (int fd, struct map_session_data *sd)
{
nullpo_retv (sd);
@@ -8428,6 +8504,7 @@ void clif_parse_MoveToKafraFromCart (int fd, struct map_session_data *sd)
* カプラ倉庫から出す
*------------------------------------------
*/
+static
void clif_parse_MoveFromKafraToCart (int fd, struct map_session_data *sd)
{
nullpo_retv (sd);
@@ -8446,6 +8523,7 @@ void clif_parse_MoveFromKafraToCart (int fd, struct map_session_data *sd)
* カプラ倉庫を閉じる
*------------------------------------------
*/
+static
void clif_parse_CloseKafra (int fd, struct map_session_data *sd)
{
nullpo_retv (sd);
@@ -8463,12 +8541,13 @@ void clif_parse_CloseKafra (int fd, struct map_session_data *sd)
* (S 00f9 <party_name>.24B)
*------------------------------------------
*/
+static
void clif_parse_CreateParty (int fd, struct map_session_data *sd)
{
if (battle_config.basic_skill_check == 0
|| pc_checkskill (sd, NV_PARTY) >= 2)
{
- party_create (sd, RFIFOP (fd, 2));
+ party_create (sd, (const char *)RFIFOP (fd, 2));
}
else
clif_skill_fail (sd, 1, 0, 4);
@@ -8486,12 +8565,13 @@ void clif_parse_CreateParty (int fd, struct map_session_data *sd)
* incomplete here.
*------------------------------------------
*/
+static
void clif_parse_CreateParty2 (int fd, struct map_session_data *sd)
{
if (battle_config.basic_skill_check == 0
|| pc_checkskill (sd, NV_PARTY) >= 2)
{
- party_create (sd, RFIFOP (fd, 2));
+ party_create (sd, (const char *)RFIFOP (fd, 2));
}
else
clif_skill_fail (sd, 1, 0, 4);
@@ -8504,6 +8584,7 @@ void clif_parse_CreateParty2 (int fd, struct map_session_data *sd)
* (S 00fc <account_ID>.l)
*------------------------------------------
*/
+static
void clif_parse_PartyInvite (int fd, struct map_session_data *sd)
{
party_invite (sd, RFIFOL (fd, 2));
@@ -8516,6 +8597,7 @@ void clif_parse_PartyInvite (int fd, struct map_session_data *sd)
* (S 00ff <account_ID>.l <flag>.l)
*------------------------------------------
*/
+static
void clif_parse_ReplyPartyInvite (int fd, struct map_session_data *sd)
{
if (battle_config.basic_skill_check == 0
@@ -8534,6 +8616,7 @@ void clif_parse_ReplyPartyInvite (int fd, struct map_session_data *sd)
* パーティ脱退要求
*------------------------------------------
*/
+static
void clif_parse_LeaveParty (int fd, struct map_session_data *sd)
{
party_leave (sd);
@@ -8543,15 +8626,17 @@ void clif_parse_LeaveParty (int fd, struct map_session_data *sd)
* パーティ除名要求
*------------------------------------------
*/
+static
void clif_parse_RemovePartyMember (int fd, struct map_session_data *sd)
{
- party_removemember (sd, RFIFOL (fd, 2), RFIFOP (fd, 6));
+ party_removemember (sd, RFIFOL (fd, 2), (const char *)RFIFOP (fd, 6));
}
/*==========================================
* パーティ設定変更要求
*------------------------------------------
*/
+static
void clif_parse_PartyChangeOption (int fd, struct map_session_data *sd)
{
party_changeoption (sd, RFIFOW (fd, 2), RFIFOW (fd, 4));
@@ -8565,6 +8650,7 @@ void clif_parse_PartyChangeOption (int fd, struct map_session_data *sd)
* (S 0108 <len>.w <message>.?B)
*------------------------------------------
*/
+static
void clif_parse_PartyMessage (int fd, struct map_session_data *sd)
{
size_t message_len = 0;
@@ -8575,8 +8661,7 @@ void clif_parse_PartyMessage (int fd, struct map_session_data *sd)
if (!(buf = clif_validate_chat (sd, 0, &message, &message_len)))
{
- /* "Your message could not be sent." */
- clif_displaymessage (fd, msg_txt (505));
+ clif_displaymessage (fd, "Your message could not be sent.");
return;
}
@@ -8592,8 +8677,7 @@ void clif_parse_PartyMessage (int fd, struct map_session_data *sd)
if (tmw_CheckChatSpam (sd, message))
{
free (buf);
- /* "Your message could not be sent." */
- clif_displaymessage (fd, msg_txt (505));
+ clif_displaymessage (fd, "Your message could not be sent.");
return;
}
@@ -8605,6 +8689,7 @@ void clif_parse_PartyMessage (int fd, struct map_session_data *sd)
* /monster /item rewriten by [Yor]
*------------------------------------------
*/
+static
void clif_parse_GM_Monster_Item (int fd, struct map_session_data *sd)
{
char monster_item_name[25];
@@ -8646,15 +8731,17 @@ void clif_parse_GM_Monster_Item (int fd, struct map_session_data *sd)
* Note: The account ID seems to be ignored.
*------------------------------------------
*/
+static
void clif_parse_CreateGuild (int fd, struct map_session_data *sd)
{
- guild_create (sd, RFIFOP (fd, 6));
+ guild_create (sd, (const char *)RFIFOP (fd, 6));
}
/*==========================================
* ギルドマスターかどうか確認
*------------------------------------------
*/
+static
void clif_parse_GuildCheckMaster (int fd, struct map_session_data *sd)
{
clif_guild_masterormember (sd);
@@ -8664,6 +8751,7 @@ void clif_parse_GuildCheckMaster (int fd, struct map_session_data *sd)
* ギルド情報要求
*------------------------------------------
*/
+static
void clif_parse_GuildReqeustInfo (int fd, struct map_session_data *sd)
{
switch (RFIFOL (fd, 2))
@@ -8698,6 +8786,7 @@ void clif_parse_GuildReqeustInfo (int fd, struct map_session_data *sd)
* ギルド役職変更
*------------------------------------------
*/
+static
void clif_parse_GuildChangePositionInfo (int fd, struct map_session_data *sd)
{
struct guild *g;
@@ -8717,7 +8806,7 @@ void clif_parse_GuildChangePositionInfo (int fd, struct map_session_data *sd)
for (i = 4; i < RFIFOW (fd, 2); i += 40)
{
guild_change_position (sd, RFIFOL (fd, i), RFIFOL (fd, i + 4),
- RFIFOL (fd, i + 12), RFIFOP (fd, i + 16));
+ RFIFOL (fd, i + 12), (const char *)RFIFOP (fd, i + 16));
}
}
@@ -8725,6 +8814,7 @@ void clif_parse_GuildChangePositionInfo (int fd, struct map_session_data *sd)
* ギルドメンバ役職変更
*------------------------------------------
*/
+static
void clif_parse_GuildChangeMemberPosition (int fd,
struct map_session_data *sd)
{
@@ -8754,6 +8844,7 @@ void clif_parse_GuildChangeMemberPosition (int fd,
* ギルドエンブレム要求
*------------------------------------------
*/
+static
void clif_parse_GuildRequestEmblem (int fd, struct map_session_data *sd)
{
struct guild *g = guild_search (RFIFOL (fd, 2));
@@ -8765,24 +8856,27 @@ void clif_parse_GuildRequestEmblem (int fd, struct map_session_data *sd)
* ギルドエンブレム変更
*------------------------------------------
*/
+static
void clif_parse_GuildChangeEmblem (int fd, struct map_session_data *sd)
{
- guild_change_emblem (sd, RFIFOW (fd, 2) - 4, RFIFOP (fd, 4));
+ guild_change_emblem (sd, RFIFOW (fd, 2) - 4, (const char *)RFIFOP (fd, 4));
}
/*==========================================
* ギルド告知変更
*------------------------------------------
*/
+static
void clif_parse_GuildChangeNotice (int fd, struct map_session_data *sd)
{
- guild_change_notice (sd, RFIFOL (fd, 2), RFIFOP (fd, 6), RFIFOP (fd, 66));
+ guild_change_notice (sd, RFIFOL (fd, 2), (const char *)RFIFOP (fd, 6), (const char *)RFIFOP (fd, 66));
}
/*==========================================
* ギルド勧誘
*------------------------------------------
*/
+static
void clif_parse_GuildInvite (int fd, struct map_session_data *sd)
{
guild_invite (sd, RFIFOL (fd, 2));
@@ -8792,6 +8886,7 @@ void clif_parse_GuildInvite (int fd, struct map_session_data *sd)
* ギルド勧誘返信
*------------------------------------------
*/
+static
void clif_parse_GuildReplyInvite (int fd, struct map_session_data *sd)
{
guild_reply_invite (sd, RFIFOL (fd, 2), RFIFOB (fd, 6));
@@ -8801,20 +8896,22 @@ void clif_parse_GuildReplyInvite (int fd, struct map_session_data *sd)
* ギルド脱退
*------------------------------------------
*/
+static
void clif_parse_GuildLeave (int fd, struct map_session_data *sd)
{
guild_leave (sd, RFIFOL (fd, 2), RFIFOL (fd, 6), RFIFOL (fd, 10),
- RFIFOP (fd, 14));
+ (const char *)RFIFOP (fd, 14));
}
/*==========================================
* ギルド追放
*------------------------------------------
*/
+static
void clif_parse_GuildExplusion (int fd, struct map_session_data *sd)
{
guild_explusion (sd, RFIFOL (fd, 2), RFIFOL (fd, 6), RFIFOL (fd, 10),
- RFIFOP (fd, 14));
+ (const char *)RFIFOP (fd, 14));
}
/*==========================================
@@ -8825,6 +8922,7 @@ void clif_parse_GuildExplusion (int fd, struct map_session_data *sd)
* (S 017e <len>.w <message>.?B)
*------------------------------------------
*/
+static
void clif_parse_GuildMessage (int fd, struct map_session_data *sd)
{
size_t message_len = 0;
@@ -8835,8 +8933,7 @@ void clif_parse_GuildMessage (int fd, struct map_session_data *sd)
if (!(buf = clif_validate_chat (sd, 2, &message, &message_len)))
{
- /* "Your message could not be sent." */
- clif_displaymessage (fd, msg_txt (505));
+ clif_displaymessage (fd, "Your message could not be sent.");
return;
}
@@ -8852,8 +8949,7 @@ void clif_parse_GuildMessage (int fd, struct map_session_data *sd)
if (tmw_CheckChatSpam (sd, message))
{
free (buf);
- /* "Your message could not be sent." */
- clif_displaymessage (fd, msg_txt (505));
+ clif_displaymessage (fd, "Your message could not be sent.");
return;
}
@@ -8865,6 +8961,7 @@ void clif_parse_GuildMessage (int fd, struct map_session_data *sd)
* ギルド同盟要求
*------------------------------------------
*/
+static
void clif_parse_GuildRequestAlliance (int fd, struct map_session_data *sd)
{
guild_reqalliance (sd, RFIFOL (fd, 2));
@@ -8874,6 +8971,7 @@ void clif_parse_GuildRequestAlliance (int fd, struct map_session_data *sd)
* ギルド同盟要求返信
*------------------------------------------
*/
+static
void clif_parse_GuildReplyAlliance (int fd, struct map_session_data *sd)
{
guild_reply_reqalliance (sd, RFIFOL (fd, 2), RFIFOL (fd, 6));
@@ -8883,6 +8981,7 @@ void clif_parse_GuildReplyAlliance (int fd, struct map_session_data *sd)
* ギルド関係解消
*------------------------------------------
*/
+static
void clif_parse_GuildDelAlliance (int fd, struct map_session_data *sd)
{
guild_delalliance (sd, RFIFOL (fd, 2), RFIFOL (fd, 6));
@@ -8892,6 +8991,7 @@ void clif_parse_GuildDelAlliance (int fd, struct map_session_data *sd)
* ギルド敵対
*------------------------------------------
*/
+static
void clif_parse_GuildOpposition (int fd, struct map_session_data *sd)
{
guild_opposition (sd, RFIFOL (fd, 2));
@@ -8901,12 +9001,14 @@ void clif_parse_GuildOpposition (int fd, struct map_session_data *sd)
* ギルド解散
*------------------------------------------
*/
+static
void clif_parse_GuildBreak (int fd, struct map_session_data *sd)
{
- guild_break (sd, RFIFOP (fd, 2));
+ guild_break (sd, (const char *)RFIFOP (fd, 2));
}
// Kick (right click menu for GM "(name) force to quit")
+static
void clif_parse_GMKick (int fd, struct map_session_data *sd)
{
struct block_list *target;
@@ -8948,6 +9050,7 @@ void clif_parse_GMKick (int fd, struct map_session_data *sd)
* /shift
*------------------------------------------
*/
+static
void clif_parse_Shift (int fd, struct map_session_data *sd)
{ // Rewriten by [Yor]
char player_name[25];
@@ -8971,6 +9074,7 @@ void clif_parse_Shift (int fd, struct map_session_data *sd)
* /recall
*------------------------------------------
*/
+static
void clif_parse_Recall (int fd, struct map_session_data *sd)
{ // Added by RoVeRT
char player_name[25];
@@ -8990,6 +9094,7 @@ void clif_parse_Recall (int fd, struct map_session_data *sd)
return;
}
+static
void clif_parse_GMHide (int fd, struct map_session_data *sd)
{ // Modified by [Yor]
nullpo_retv (sd);
@@ -9002,14 +9107,12 @@ void clif_parse_GMHide (int fd, struct map_session_data *sd)
if (sd->status.option & OPTION_HIDE)
{ // OPTION_HIDE = 0x40
sd->status.option &= ~OPTION_HIDE; // OPTION_HIDE = 0x40
- /* "Invisible: Off." */
- clif_displaymessage (fd, msg_txt (10));
+ clif_displaymessage (fd, "Invisible: Off.");
}
else
{
sd->status.option |= OPTION_HIDE; // OPTION_HIDE = 0x40
- /* "Invisible: On." */
- clif_displaymessage (fd, msg_txt (11));
+ clif_displaymessage (fd, "Invisible: On.");
}
clif_changeoption (&sd->bl);
}
@@ -9019,6 +9122,7 @@ void clif_parse_GMHide (int fd, struct map_session_data *sd)
* GMによるチャット禁止時間付与
*------------------------------------------
*/
+static
void clif_parse_GMReqNoChat (int fd, struct map_session_data *sd)
{
int tid = RFIFOL (fd, 2);
@@ -9032,8 +9136,7 @@ void clif_parse_GMReqNoChat (int fd, struct map_session_data *sd)
if (!battle_config.muting_players)
{
- /* "Muting is disabled." */
- clif_displaymessage (fd, msg_txt (245));
+ clif_displaymessage (fd, "Muting is disabled.");
return;
}
@@ -9069,19 +9172,21 @@ void clif_parse_GMReqNoChat (int fd, struct map_session_data *sd)
* GMによるチャット禁止時間参照(?)
*------------------------------------------
*/
+static
void clif_parse_GMReqNoChatCount (int fd, struct map_session_data *sd)
{
int tid = RFIFOL (fd, 2);
WFIFOW (fd, 0) = 0x1e0;
WFIFOL (fd, 2) = tid;
- sprintf (WFIFOP (fd, 6), "%d", tid);
+ sprintf ((char *)WFIFOP (fd, 6), "%d", tid);
// memcpy(WFIFOP(fd,6),"TESTNAME",24);
WFIFOSET (fd, packet_len_table[0x1e0]);
return;
}
+static
void clif_parse_PMIgnore (int fd, struct map_session_data *sd)
{ // Rewritten by [Yor]
char output[1024];
@@ -9091,7 +9196,7 @@ void clif_parse_PMIgnore (int fd, struct map_session_data *sd)
memset (output, '\0', sizeof (output));
- nick = RFIFOP (fd, 2); // speed up
+ nick = (char *)RFIFOP (fd, 2); // speed up
//printf("Ignore: char '%s' state: %d\n", nick, RFIFOB(fd,26));
// we ask for deny (we add nick only if it's not already exist
if (RFIFOB (fd, 26) == 0)
@@ -9221,6 +9326,7 @@ void clif_parse_PMIgnore (int fd, struct map_session_data *sd)
return;
}
+static
void clif_parse_PMIgnoreAll (int fd, struct map_session_data *sd)
{ // Rewritten by [Yor]
//printf("Ignore all: state: %d\n", RFIFOB(fd,2));
@@ -9266,6 +9372,7 @@ void clif_parse_PMIgnoreAll (int fd, struct map_session_data *sd)
return;
}
+static
void clif_parse_skillMessage (int fd, struct map_session_data *sd)
{ // Added by RoVeRT
int skillid, skilllv, x, y;
@@ -9277,12 +9384,13 @@ void clif_parse_skillMessage (int fd, struct map_session_data *sd)
y = RFIFOB (fd, 6);
x = RFIFOB (fd, 8);
- mes = RFIFOP (fd, 10);
+ mes = (char *)RFIFOP (fd, 10);
// skill 220 = graffiti
// printf("skill: %d %d location: %3d %3d message: %s\n", skillid, skilllv, x, y, (char*)mes);
}
+static
int monk (struct map_session_data *sd, struct block_list *target, int type)
{
//R 01d1 <Monk id>L <Target monster id>L <Bool>L
@@ -9300,6 +9408,7 @@ int monk (struct map_session_data *sd, struct block_list *target, int type)
* スパノビの/doridoriによるSPR2倍
*------------------------------------------
*/
+static
void clif_parse_sn_doridori (int fd, struct map_session_data *sd)
{
if (sd)
@@ -9312,6 +9421,7 @@ void clif_parse_sn_doridori (int fd, struct map_session_data *sd)
* スパノビの爆裂波動
*------------------------------------------
*/
+static
void clif_parse_sn_explosionspirits (int fd, struct map_session_data *sd)
{
if (sd)
@@ -9904,6 +10014,7 @@ func_table clif_parse_func_table[0x220] =
// *INDENT-ON*
// Checks for packet flooding
+static
int clif_check_packet_flood(int fd, int cmd)
{
struct map_session_data *sd = (struct map_session_data *)session[fd]->session_data;
@@ -10057,7 +10168,7 @@ static char *clif_validate_chat (struct map_session_data *sd, int type,
return NULL;
}
- p = (char *) (type != 1) ? RFIFOP (fd, 4) : RFIFOP (fd, 28);
+ p = (char *) ((type != 1) ? RFIFOP (fd, 4) : RFIFOP (fd, 28));
buf_len = (type == 1) ? msg_len - min_len: msg_len;
/*
diff --git a/src/map/clif.hpp b/src/map/clif.hpp
index f484a18..01f6a50 100644
--- a/src/map/clif.hpp
+++ b/src/map/clif.hpp
@@ -4,21 +4,16 @@
#include <sys/types.h>
-#ifdef LCCWIN32
-#include <winsock.h>
-typedef unsigned int in_addr_t;
-#else
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
-#endif
#include "map.hpp"
-void clif_setip (char *);
+void clif_setip (const char *);
void clif_setport (int);
-in_addr_t clif_getip (void);
+struct in_addr clif_getip (void);
int clif_getport (void);
int clif_countusers (void);
void clif_setwaitclose (int);
@@ -40,21 +35,21 @@ int clif_spawnmob (struct mob_data *); // area
int clif_walkok (struct map_session_data *); // self
int clif_movechar (struct map_session_data *); // area
int clif_movemob (struct mob_data *); //area
-int clif_changemap (struct map_session_data *, char *, int, int); //self
-int clif_changemapserver (struct map_session_data *, char *, int, int, int, int); //self
+int clif_changemap (struct map_session_data *, const char *, int, int); //self
+int clif_changemapserver (struct map_session_data *, const char *, int, int, struct in_addr, int); //self
int clif_fixpos (struct block_list *); // area
int clif_fixmobpos (struct mob_data *md);
int clif_fixpcpos (struct map_session_data *sd);
int clif_npcbuysell (struct map_session_data *, int); //self
int clif_buylist (struct map_session_data *, struct npc_data *); //self
int clif_selllist (struct map_session_data *); //self
-int clif_scriptmes (struct map_session_data *, int, char *); //self
+int clif_scriptmes (struct map_session_data *, int, const char *); //self
int clif_scriptnext (struct map_session_data *, int); //self
int clif_scriptclose (struct map_session_data *, int); //self
-int clif_scriptmenu (struct map_session_data *, int, char *); //self
+int clif_scriptmenu (struct map_session_data *, int, const char *); //self
int clif_scriptinput (struct map_session_data *, int); //self
int clif_scriptinputstr (struct map_session_data *sd, int npcid); // self
-int clif_cutin (struct map_session_data *, char *, int); //self
+int clif_cutin (struct map_session_data *, const char *, int); //self
int clif_viewpoint (struct map_session_data *, int, int, int, int, int, int); //self
int clif_additem (struct map_session_data *, int, int, int); //self
int clif_delitem (struct map_session_data *, int, int); //self
@@ -85,16 +80,16 @@ int clif_leavechat (struct chat_data *, struct map_session_data *); // chat
int clif_changechatstatus (struct chat_data *); // chat
void clif_emotion (struct block_list *bl, int type);
-void clif_talkiebox (struct block_list *bl, char *talkie);
+void clif_talkiebox (struct block_list *bl, const char *talkie);
void clif_wedding_effect (struct block_list *bl);
void clif_sitting (int fd, struct map_session_data *sd);
//void clif_callpartner(struct map_session_data *sd);
//void clif_sitting(struct map_session_data *sd);
void clif_soundeffect (struct map_session_data *sd, struct block_list *bl,
- char *name, int type);
+ const char *name, int type);
// trade
-int clif_traderequest (struct map_session_data *sd, char *name);
+int clif_traderequest (struct map_session_data *sd, const char *name);
int clif_tradestart (struct map_session_data *sd, int type);
int clif_tradeadditem (struct map_session_data *sd,
struct map_session_data *tsd, int index, int amount);
@@ -182,7 +177,7 @@ int clif_changemapcell (int m, int x, int y, int cell_type, int type);
int clif_status_change (struct block_list *bl, int type, int flag);
-int clif_wis_message (int fd, char *nick, char *mes, int mes_len);
+int clif_wis_message (int fd, const char *nick, const char *mes, int mes_len);
int clif_wis_end (int fd, int flag);
int clif_solved_charname (struct map_session_data *sd, int char_id);
@@ -217,12 +212,12 @@ int clif_party_created (struct map_session_data *sd, int flag);
int clif_party_info (struct party *p, int fd);
int clif_party_invite (struct map_session_data *sd,
struct map_session_data *tsd);
-int clif_party_inviteack (struct map_session_data *sd, char *nick, int flag);
+int clif_party_inviteack (struct map_session_data *sd, const char *nick, int flag);
int clif_party_option (struct party *p, struct map_session_data *sd,
int flag);
int clif_party_leaved (struct party *p, struct map_session_data *sd,
- int account_id, char *name, int flag);
-int clif_party_message (struct party *p, int account_id, char *mes, int len);
+ int account_id, const char *name, int flag);
+int clif_party_message (struct party *p, int account_id, const char *mes, int len);
int clif_party_move (struct party *p, struct map_session_data *sd,
int online);
int clif_party_xy (struct party *p, struct map_session_data *sd);
@@ -258,9 +253,9 @@ int clif_guild_oppositionack (struct map_session_data *sd, int flag);
int clif_guild_broken (struct map_session_data *sd, int flag);
// atcommand
-int clif_displaymessage (const int fd, char *mes);
-int clif_disp_onlyself (struct map_session_data *sd, char *mes, int len);
-int clif_GMmessage (struct block_list *bl, char *mes, int len, int flag);
+int clif_displaymessage (int fd, const char *mes);
+int clif_disp_onlyself (struct map_session_data *sd, const char *mes, int len);
+int clif_GMmessage (struct block_list *bl, const char *mes, int len, int flag);
int clif_heal (int fd, int type, int val);
int clif_resurrection (struct block_list *bl, int type);
int clif_set0199 (int fd, int type);
@@ -271,7 +266,7 @@ int clif_refine (int fd, struct map_session_data *sd, int fail, int index,
int val);
int clif_specialeffect (struct block_list *bl, int type, int flag); // special effects [Valaris]
-int clif_message (struct block_list *bl, char *msg); // messages (from mobs/npcs) [Valaris]
+int clif_message (struct block_list *bl, const char *msg); // messages (from mobs/npcs) [Valaris]
int clif_GM_kickack (struct map_session_data *sd, int id);
int clif_GM_kick (struct map_session_data *sd, struct map_session_data *tsd,
diff --git a/src/map/guild.cpp b/src/map/guild.cpp
index c001f78..eba856d 100644
--- a/src/map/guild.cpp
+++ b/src/map/guild.cpp
@@ -165,6 +165,7 @@ struct guild *guild_search (int guild_id)
return (struct guild *)numdb_search (guild_db, guild_id);
}
+static
void guild_searchname_sub (db_key_t key, db_val_t data, va_list ap)
{
struct guild *g = (struct guild *) data, **dst;
@@ -176,7 +177,7 @@ void guild_searchname_sub (db_key_t key, db_val_t data, va_list ap)
}
// ギルド名検索
-struct guild *guild_searchname (char *str)
+struct guild *guild_searchname (const char *str)
{
struct guild *g = NULL;
numdb_foreach (guild_db, guild_searchname_sub, str, &g);
@@ -189,7 +190,7 @@ struct guild_castle *guild_castle_search (int gcid)
}
// mapnameに対応したアジトのgcを返す
-struct guild_castle *guild_mapname2gc (char *mapname)
+struct guild_castle *guild_mapname2gc (const char *mapname)
{
int i;
struct guild_castle *gc = NULL;
@@ -245,6 +246,7 @@ int guild_getposition (struct map_session_data *sd, struct guild *g)
}
// メンバー情報の作成
+static
void guild_makemember (struct guild_member *m, struct map_session_data *sd)
{
nullpo_retv (sd);
@@ -266,6 +268,7 @@ void guild_makemember (struct guild_member *m, struct map_session_data *sd)
}
// ギルド競合確認
+static
int guild_check_conflict (struct map_session_data *sd)
{
nullpo_retr (0, sd);
@@ -276,6 +279,7 @@ int guild_check_conflict (struct map_session_data *sd)
}
// ギルドのEXPキャッシュをinter鯖にフラッシュする
+static
void guild_payexp_timer_sub (db_key_t key, db_val_t data, va_list ap)
{
int i, *dellist, *delp, dataid = key.i;
@@ -316,7 +320,7 @@ void guild_payexp_timer (timer_id tid, tick_t tick, custom_id_t id, custom_data_
//------------------------------------------------------------------------
/* Process a guild creation request. */
-int guild_create (struct map_session_data *sd, char *name)
+int guild_create (struct map_session_data *sd, const char *name)
{
char pname[24];
@@ -425,6 +429,7 @@ int guild_npc_request_info (int guild_id, const char *event)
}
// 所属キャラの確認
+static
int guild_check_member (const struct guild *g)
{
int i;
@@ -905,7 +910,7 @@ int guild_recv_memberinfoshort (int guild_id, int account_id, int char_id,
}
// ギルド会話送信
-int guild_send_message (struct map_session_data *sd, char *mes, int len)
+int guild_send_message (struct map_session_data *sd, const char *mes, int len)
{
nullpo_retr (0, sd);
@@ -917,7 +922,7 @@ int guild_send_message (struct map_session_data *sd, char *mes, int len)
}
// ギルド会話受信
-int guild_recv_message (int guild_id, int account_id, char *mes, int len)
+int guild_recv_message (int guild_id, int account_id, const char *mes, int len)
{
struct guild *g;
if ((g = guild_search (guild_id)) == NULL)
@@ -1141,6 +1146,7 @@ int guild_skillupack (int guild_id, int skill_num, int account_id)
}
// ギルド同盟数所得
+static
int guild_get_alliance_count (struct guild *g, int flag)
{
int i, c;
@@ -1442,6 +1448,7 @@ int guild_allianceack (int guild_id1, int guild_id2, int account_id1,
}
// ギルド解散通知用
+static
void guild_broken_sub (db_key_t key, db_val_t data, va_list ap)
{
struct guild *g = (struct guild *) data;
@@ -1493,7 +1500,7 @@ int guild_broken (int guild_id, int flag)
}
// ギルド解散
-int guild_break (struct map_session_data *sd, char *name)
+int guild_break (struct map_session_data *sd, const char *name)
{
struct guild *g;
int i;
diff --git a/src/map/guild.hpp b/src/map/guild.hpp
index f6d1356..983934c 100644
--- a/src/map/guild.hpp
+++ b/src/map/guild.hpp
@@ -20,17 +20,17 @@ int guild_isallied (struct guild *g, struct guild_castle *gc);
void do_init_guild (void);
struct guild *guild_search (int guild_id);
-struct guild *guild_searchname (char *str);
+struct guild *guild_searchname (const char *str);
struct guild_castle *guild_castle_search (int gcid);
-struct guild_castle *guild_mapname2gc (char *mapname);
+struct guild_castle *guild_mapname2gc (const char *mapname);
struct map_session_data *guild_getavailablesd (struct guild *g);
int guild_getindex (struct guild *g, int account_id, int char_id);
int guild_getposition (struct map_session_data *sd, struct guild *g);
int guild_payexp (struct map_session_data *sd, int exp);
-int guild_create (struct map_session_data *sd, char *name);
+int guild_create (struct map_session_data *sd, const char *name);
int guild_created (int account_id, int guild_id);
int guild_request_info (int guild_id);
int guild_recv_noinfo (int guild_id);
@@ -73,10 +73,10 @@ int guild_change_emblem (struct map_session_data *sd, int len,
const char *data);
int guild_emblem_changed (int len, int guild_id, int emblem_id,
const char *data);
-int guild_send_message (struct map_session_data *sd, char *mes, int len);
-int guild_recv_message (int guild_id, int account_id, char *mes, int len);
+int guild_send_message (struct map_session_data *sd, const char *mes, int len);
+int guild_recv_message (int guild_id, int account_id, const char *mes, int len);
int guild_skillupack (int guild_id, int skill_num, int account_id);
-int guild_break (struct map_session_data *sd, char *name);
+int guild_break (struct map_session_data *sd, const char *name);
int guild_broken (int guild_id, int flag);
int guild_addcastleinfoevent (int castle_id, int index, const char *name);
diff --git a/src/map/intif.cpp b/src/map/intif.cpp
index 3ccb13a..dfbc665 100644
--- a/src/map/intif.cpp
+++ b/src/map/intif.cpp
@@ -55,7 +55,7 @@ extern int char_fd; // inter serverのfdはchar_fdを使う
// inter serverへの送信
// Message for all GMs on all map servers
-int intif_GMmessage (char *mes, int len, int flag)
+int intif_GMmessage (const char *mes, int len, int flag)
{
int lp = (flag & 0x10) ? 8 : 4;
WFIFOW (inter_fd, 0) = 0x3000;
@@ -68,7 +68,7 @@ int intif_GMmessage (char *mes, int len, int flag)
}
// The transmission of Wisp/Page to inter-server (player not found on this server)
-int intif_wis_message (struct map_session_data *sd, char *nick, char *mes,
+int intif_wis_message (struct map_session_data *sd, const char *nick, const char *mes,
int mes_len)
{
nullpo_retr (0, sd);
@@ -88,6 +88,7 @@ int intif_wis_message (struct map_session_data *sd, char *nick, char *mes,
}
// The reply of Wisp/page
+static
int intif_wis_replay (int id, int flag)
{
WFIFOW (inter_fd, 0) = 0x3002;
@@ -102,7 +103,7 @@ int intif_wis_replay (int id, int flag)
}
// The transmission of GM only Wisp/Page from server to inter-server
-int intif_wis_message_to_gm (char *Wisp_name, int min_gm_level, char *mes,
+int intif_wis_message_to_gm (const char *Wisp_name, int min_gm_level, const char *mes,
int mes_len)
{
WFIFOW (inter_fd, 0) = 0x3003;
@@ -192,7 +193,7 @@ int intif_send_guild_storage (int account_id, struct guild_storage *gstor)
}
// パーティ作成要求
-int intif_create_party (struct map_session_data *sd, char *name)
+int intif_create_party (struct map_session_data *sd, const char *name)
{
nullpo_retr (0, sd);
@@ -291,7 +292,7 @@ int intif_break_party (int party_id)
}
// パーティ会話送信
-int intif_party_message (int party_id, int account_id, char *mes, int len)
+int intif_party_message (int party_id, int account_id, const char *mes, int len)
{
// if(battle_config.etc_log)
// printf("intif_party_message: %s\n",mes);
@@ -305,7 +306,7 @@ int intif_party_message (int party_id, int account_id, char *mes, int len)
}
// パーティ競合チェック要求
-int intif_party_checkconflict (int party_id, int account_id, char *nick)
+int intif_party_checkconflict (int party_id, int account_id, const char *nick)
{
WFIFOW (inter_fd, 0) = 0x3028;
WFIFOL (inter_fd, 2) = party_id;
@@ -389,7 +390,7 @@ int intif_guild_break (int guild_id)
}
// ギルド会話送信
-int intif_guild_message (int guild_id, int account_id, char *mes, int len)
+int intif_guild_message (int guild_id, int account_id, const char *mes, int len)
{
WFIFOW (inter_fd, 0) = 0x3037;
WFIFOW (inter_fd, 2) = len + 12;
@@ -526,26 +527,26 @@ int intif_guild_castle_datasave (int castle_id, int index, int value)
// Packets receive from inter server
// Wisp/Page reception
+static
int intif_parse_WisMessage (int fd)
{ // rewritten by [Yor]
struct map_session_data *sd;
int i;
- char *wisp_source;
if (battle_config.etc_log)
printf
("intif_parse_wismessage: id: %d, from: %s, to: %s, message: '%s'\n",
RFIFOL (fd, 4), RFIFOP (fd, 8), RFIFOP (fd, 32), RFIFOP (fd,
56));
- sd = map_nick2sd (RFIFOP (fd, 32)); // Searching destination player
- if (sd != NULL && strcmp (sd->status.name, RFIFOP (fd, 32)) == 0)
+ sd = map_nick2sd ((const char *)RFIFOP (fd, 32)); // Searching destination player
+ if (sd != NULL && strcmp (sd->status.name, (const char *)RFIFOP (fd, 32)) == 0)
{ // exactly same name (inter-server have checked the name before)
// if player ignore all
if (sd->ignoreAll == 1)
intif_wis_replay (RFIFOL (fd, 4), 2); // flag: 0: success to send wisper, 1: target character is not loged in?, 2: ignored by target
else
{
- wisp_source = RFIFOP (fd, 8); // speed up
+ const char *wisp_source = (const char *)RFIFOP (fd, 8); // speed up
// if player ignore the source character
for (i = 0; i < (sizeof (sd->ignore) / sizeof (sd->ignore[0]));
i++)
@@ -557,7 +558,7 @@ int intif_parse_WisMessage (int fd)
// if source player not found in ignore list
if (i == (sizeof (sd->ignore) / sizeof (sd->ignore[0])))
{
- clif_wis_message (sd->fd, RFIFOP (fd, 8), RFIFOP (fd, 56),
+ clif_wis_message (sd->fd, (const char *)RFIFOP (fd, 8), (const char *)RFIFOP (fd, 56),
RFIFOW (fd, 2) - 56);
intif_wis_replay (RFIFOL (fd, 4), 0); // flag: 0: success to send wisper, 1: target character is not loged in?, 2: ignored by target
}
@@ -569,13 +570,14 @@ int intif_parse_WisMessage (int fd)
}
// Wisp/page transmission result reception
+static
int intif_parse_WisEnd (int fd)
{
struct map_session_data *sd;
if (battle_config.etc_log)
printf ("intif_parse_wisend: player: %s, flag: %d\n", RFIFOP (fd, 2), RFIFOB (fd, 26)); // flag: 0: success to send wisper, 1: target character is not loged in?, 2: ignored by target
- sd = map_nick2sd (RFIFOP (fd, 2));
+ sd = map_nick2sd ((const char *)RFIFOP (fd, 2));
if (sd != NULL)
clif_wis_end (sd->fd, RFIFOB (fd, 26));
@@ -583,6 +585,7 @@ int intif_parse_WisEnd (int fd)
}
// Received wisp message from map-server via char-server for ALL gm
+static
int mapif_parse_WisToGM (int fd)
{ // 0x3003/0x3803 <packet_len>.w <wispname>.24B <min_gm_level>.w <message>.?B
int i, min_gm_level, len;
@@ -616,6 +619,7 @@ int mapif_parse_WisToGM (int fd)
}
// アカウント変数通知
+static
int intif_parse_AccountReg (int fd)
{
int j, p;
@@ -636,6 +640,7 @@ int intif_parse_AccountReg (int fd)
}
// 倉庫データ受信
+static
int intif_parse_LoadStorage (int fd)
{
struct storage *stor;
@@ -688,6 +693,7 @@ int intif_parse_LoadStorage (int fd)
}
// 倉庫データ送信成功
+static
int intif_parse_SaveStorage (int fd)
{
if (battle_config.save_log)
@@ -697,6 +703,7 @@ int intif_parse_SaveStorage (int fd)
return 0;
}
+static
int intif_parse_LoadGuildStorage (int fd)
{
struct guild_storage *gstor;
@@ -760,6 +767,7 @@ int intif_parse_LoadGuildStorage (int fd)
return 0;
}
+static
int intif_parse_SaveGuildStorage (int fd)
{
if (battle_config.save_log)
@@ -772,16 +780,18 @@ int intif_parse_SaveGuildStorage (int fd)
}
// パーティ作成可否
+static
int intif_parse_PartyCreated (int fd)
{
if (battle_config.etc_log)
printf ("intif: party created\n");
party_created (RFIFOL (fd, 2), RFIFOB (fd, 6), RFIFOL (fd, 7),
- RFIFOP (fd, 11));
+ (const char *)RFIFOP (fd, 11));
return 0;
}
// パーティ情報
+static
int intif_parse_PartyInfo (int fd)
{
if (RFIFOW (fd, 2) == 8)
@@ -805,6 +815,7 @@ int intif_parse_PartyInfo (int fd)
}
// パーティ追加通知
+static
int intif_parse_PartyMemberAdded (int fd)
{
if (battle_config.etc_log)
@@ -815,6 +826,7 @@ int intif_parse_PartyMemberAdded (int fd)
}
// パーティ設定変更通知
+static
int intif_parse_PartyOptionChanged (int fd)
{
party_optionchanged (RFIFOL (fd, 2), RFIFOL (fd, 6), RFIFOW (fd, 10),
@@ -823,16 +835,18 @@ int intif_parse_PartyOptionChanged (int fd)
}
// パーティ脱退通知
+static
int intif_parse_PartyMemberLeaved (int fd)
{
if (battle_config.etc_log)
printf ("intif: party member leaved %d %d %s\n", RFIFOL (fd, 2),
- RFIFOL (fd, 6), RFIFOP (fd, 10));
- party_member_leaved (RFIFOL (fd, 2), RFIFOL (fd, 6), RFIFOP (fd, 10));
+ RFIFOL (fd, 6), (const char *)RFIFOP (fd, 10));
+ party_member_leaved (RFIFOL (fd, 2), RFIFOL (fd, 6), (const char *)RFIFOP (fd, 10));
return 0;
}
// パーティ解散通知
+static
int intif_parse_PartyBroken (int fd)
{
party_broken (RFIFOL (fd, 2));
@@ -840,26 +854,29 @@ int intif_parse_PartyBroken (int fd)
}
// パーティ移動通知
+static
int intif_parse_PartyMove (int fd)
{
// if(battle_config.etc_log)
// printf("intif: party move %d %d %s %d %d\n",RFIFOL(fd,2),RFIFOL(fd,6),RFIFOP(fd,10),RFIFOB(fd,26),RFIFOW(fd,27));
- party_recv_movemap (RFIFOL (fd, 2), RFIFOL (fd, 6), RFIFOP (fd, 10),
+ party_recv_movemap (RFIFOL (fd, 2), RFIFOL (fd, 6), (const char *)RFIFOP (fd, 10),
RFIFOB (fd, 26), RFIFOW (fd, 27));
return 0;
}
// パーティメッセージ
+static
int intif_parse_PartyMessage (int fd)
{
// if(battle_config.etc_log)
// printf("intif_parse_PartyMessage: %s\n",RFIFOP(fd,12));
- party_recv_message (RFIFOL (fd, 4), RFIFOL (fd, 8), RFIFOP (fd, 12),
+ party_recv_message (RFIFOL (fd, 4), RFIFOL (fd, 8), (const char *)RFIFOP (fd, 12),
RFIFOW (fd, 2) - 12);
return 0;
}
// ギルド作成可否
+static
int intif_parse_GuildCreated (int fd)
{
guild_created (RFIFOL (fd, 2), RFIFOL (fd, 6));
@@ -867,6 +884,7 @@ int intif_parse_GuildCreated (int fd)
}
// ギルド情報
+static
int intif_parse_GuildInfo (int fd)
{
if (RFIFOW (fd, 2) == 8)
@@ -891,6 +909,7 @@ int intif_parse_GuildInfo (int fd)
}
// ギルドメンバ追加通知
+static
int intif_parse_GuildMemberAdded (int fd)
{
if (battle_config.etc_log)
@@ -902,14 +921,16 @@ int intif_parse_GuildMemberAdded (int fd)
}
// ギルドメンバ脱退/追放通知
+static
int intif_parse_GuildMemberLeaved (int fd)
{
guild_member_leaved (RFIFOL (fd, 2), RFIFOL (fd, 6), RFIFOL (fd, 10),
- RFIFOB (fd, 14), RFIFOP (fd, 55), RFIFOP (fd, 15));
+ RFIFOB (fd, 14), (const char *)RFIFOP (fd, 55), (const char *)RFIFOP (fd, 15));
return 0;
}
// ギルドメンバオンライン状態/Lv変更通知
+static
int intif_parse_GuildMemberInfoShort (int fd)
{
guild_recv_memberinfoshort (RFIFOL (fd, 2), RFIFOL (fd, 6),
@@ -920,6 +941,7 @@ int intif_parse_GuildMemberInfoShort (int fd)
}
// ギルド解散通知
+static
int intif_parse_GuildBroken (int fd)
{
guild_broken (RFIFOL (fd, 2), RFIFOB (fd, 6));
@@ -927,6 +949,7 @@ int intif_parse_GuildBroken (int fd)
}
// ギルド基本情報変更通知
+static
int intif_parse_GuildBasicInfoChanged (int fd)
{
int type = RFIFOW (fd, 8), guild_id = RFIFOL (fd, 4);
@@ -952,6 +975,7 @@ int intif_parse_GuildBasicInfoChanged (int fd)
}
// ギルドメンバ情報変更通知
+static
int intif_parse_GuildMemberInfoChanged (int fd)
{
int type = RFIFOW (fd, 16), guild_id = RFIFOL (fd, 4);
@@ -976,6 +1000,7 @@ int intif_parse_GuildMemberInfoChanged (int fd)
}
// ギルド役職変更通知
+static
int intif_parse_GuildPosition (int fd)
{
if (RFIFOW (fd, 2) != sizeof (struct guild_position) + 12)
@@ -991,6 +1016,7 @@ int intif_parse_GuildPosition (int fd)
}
// ギルドスキル割り振り通知
+static
int intif_parse_GuildSkillUp (int fd)
{
guild_skillupack (RFIFOL (fd, 2), RFIFOL (fd, 6), RFIFOL (fd, 10));
@@ -998,38 +1024,43 @@ int intif_parse_GuildSkillUp (int fd)
}
// ギルド同盟/敵対通知
+static
int intif_parse_GuildAlliance (int fd)
{
guild_allianceack (RFIFOL (fd, 2), RFIFOL (fd, 6), RFIFOL (fd, 10),
- RFIFOL (fd, 14), RFIFOB (fd, 18), RFIFOP (fd, 19),
- RFIFOP (fd, 43));
+ RFIFOL (fd, 14), RFIFOB (fd, 18), (const char *)RFIFOP (fd, 19),
+ (const char *)RFIFOP (fd, 43));
return 0;
}
// ギルド告知変更通知
+static
int intif_parse_GuildNotice (int fd)
{
- guild_notice_changed (RFIFOL (fd, 2), RFIFOP (fd, 6), RFIFOP (fd, 66));
+ guild_notice_changed (RFIFOL (fd, 2), (const char *)RFIFOP (fd, 6), (const char *)RFIFOP (fd, 66));
return 0;
}
// ギルドエンブレム変更通知
+static
int intif_parse_GuildEmblem (int fd)
{
guild_emblem_changed (RFIFOW (fd, 2) - 12, RFIFOL (fd, 4), RFIFOL (fd, 8),
- RFIFOP (fd, 12));
+ (const char *)RFIFOP (fd, 12));
return 0;
}
// ギルド会話受信
+static
int intif_parse_GuildMessage (int fd)
{
- guild_recv_message (RFIFOL (fd, 4), RFIFOL (fd, 8), RFIFOP (fd, 12),
+ guild_recv_message (RFIFOL (fd, 4), RFIFOL (fd, 8), (const char *)RFIFOP (fd, 12),
RFIFOW (fd, 2) - 12);
return 0;
}
// ギルド城データ要求返信
+static
int intif_parse_GuildCastleDataLoad (int fd)
{
return guild_castledataloadack (RFIFOW (fd, 2), RFIFOB (fd, 4),
@@ -1037,6 +1068,7 @@ int intif_parse_GuildCastleDataLoad (int fd)
}
// ギルド城データ変更通知
+static
int intif_parse_GuildCastleDataSave (int fd)
{
return guild_castledatasaveack (RFIFOW (fd, 2), RFIFOB (fd, 4),
@@ -1044,6 +1076,7 @@ int intif_parse_GuildCastleDataSave (int fd)
}
// ギルド城データ一括受信(初期化時)
+static
int intif_parse_GuildCastleAllDataLoad (int fd)
{
return guild_castlealldataload (RFIFOW (fd, 2),
@@ -1084,7 +1117,7 @@ int intif_parse (int fd)
switch (cmd)
{
case 0x3800:
- clif_GMmessage (NULL, RFIFOP (fd, 4), packet_len - 4, 0);
+ clif_GMmessage (NULL, (const char *)RFIFOP (fd, 4), packet_len - 4, 0);
break;
case 0x3801:
intif_parse_WisMessage (fd);
diff --git a/src/map/intif.hpp b/src/map/intif.hpp
index dc002e5..fcca523 100644
--- a/src/map/intif.hpp
+++ b/src/map/intif.hpp
@@ -1,14 +1,14 @@
// $Id: intif.h,v 1.2 2004/09/25 05:32:18 MouseJstr Exp $
#ifndef INTIF_HPP
-#define INFIF_HPP
+#define INTIF_HPP
int intif_parse (int fd);
-int intif_GMmessage (char *mes, int len, int flag);
+int intif_GMmessage (const char *mes, int len, int flag);
-int intif_wis_message (struct map_session_data *sd, char *nick, char *mes,
+int intif_wis_message (struct map_session_data *sd, const char *nick, const char *mes,
int mes_len);
-int intif_wis_message_to_gm (char *Wisp_name, int min_gm_level, char *mes,
+int intif_wis_message_to_gm (const char *Wisp_name, int min_gm_level, const char *mes,
int mes_len);
int intif_saveaccountreg (struct map_session_data *sd);
@@ -19,7 +19,7 @@ int intif_send_storage (struct storage *stor);
int intif_request_guild_storage (int account_id, int guild_id);
int intif_send_guild_storage (int account_id, struct guild_storage *gstor);
-int intif_create_party (struct map_session_data *sd, char *name);
+int intif_create_party (struct map_session_data *sd, const char *name);
int intif_request_partyinfo (int party_id);
int intif_party_addmember (int party_id, int account_id);
int intif_party_changeoption (int party_id, int account_id, int exp,
@@ -27,8 +27,8 @@ int intif_party_changeoption (int party_id, int account_id, int exp,
int intif_party_leave (int party_id, int accound_id);
int intif_party_changemap (struct map_session_data *sd, int online);
int intif_break_party (int party_id);
-int intif_party_message (int party_id, int account_id, char *mes, int len);
-int intif_party_checkconflict (int party_id, int account_id, char *nick);
+int intif_party_message (int party_id, int account_id, const char *mes, int len);
+int intif_party_checkconflict (int party_id, int account_id, const char *nick);
int intif_guild_create (const char *name, const struct guild_member *master);
int intif_guild_request_info (int guild_id);
@@ -38,7 +38,7 @@ int intif_guild_leave (int guild_id, int account_id, int char_id, int flag,
int intif_guild_memberinfoshort (int guild_id, int account_id, int char_id,
int online, int lv, int class_);
int intif_guild_break (int guild_id);
-int intif_guild_message (int guild_id, int account_id, char *mes, int len);
+int intif_guild_message (int guild_id, int account_id, const char *mes, int len);
int intif_guild_checkconflict (int guild_id, int account_id, int char_id);
int intif_guild_change_basicinfo (int guild_id, int type, const void *data,
int len);
diff --git a/src/map/itemdb.cpp b/src/map/itemdb.cpp
index c1255bd..03e59d6 100644
--- a/src/map/itemdb.cpp
+++ b/src/map/itemdb.cpp
@@ -42,13 +42,13 @@ static int itemdb_read_randomitem (void);
static int itemdb_read_itemavail (void);
static int itemdb_read_itemnametable (void);
static int itemdb_read_noequip (void);
-void itemdb_reload (void);
/*==========================================
* 名前で検索用
*------------------------------------------
*/
// name = item alias, so we should find items aliases first. if not found then look for "jname" (full name)
+static
void itemdb_searchname_sub (db_key_t key, db_val_t data, va_list ap)
{
struct item_data *item = (struct item_data *) data, **dst;
@@ -65,6 +65,7 @@ void itemdb_searchname_sub (db_key_t key, db_val_t data, va_list ap)
* 名前で検索用
*------------------------------------------
*/
+static
int itemdb_searchjname_sub (void *key, void *data, va_list ap)
{
struct item_data *item = (struct item_data *) data, **dst;
@@ -259,7 +260,7 @@ int itemdb_isdropable (int nameid)
static int itemdb_read_itemslottable (void)
{
char *buf, *p;
- int s;
+ size_t s;
buf = (char *)grfio_reads ("data\\itemslottable.txt", &s);
if (buf == NULL)
@@ -297,7 +298,7 @@ static int itemdb_readdb (void)
char *str[32], *p, *np;
struct item_data *id;
int i = 0;
- char *filename[] = { "db/item_db.txt", "db/item_db2.txt" };
+ const char *filename[] = { "db/item_db.txt", "db/item_db2.txt" };
for (i = 0; i < 2; i++)
{
@@ -542,7 +543,7 @@ static int itemdb_read_itemavail (void)
static int itemdb_read_itemnametable (void)
{
char *buf, *p;
- int s;
+ size_t s;
buf = (char *)grfio_reads ("data\\idnum2itemdisplaynametable.txt", &s);
@@ -588,7 +589,7 @@ static int itemdb_read_itemnametable (void)
static int itemdb_read_cardillustnametable (void)
{
char *buf, *p;
- int s;
+ size_t s;
buf = (char *)grfio_reads ("data\\num2cardillustnametable.txt", &s);
@@ -677,9 +678,9 @@ static void itemdb_final (db_key_t key, db_val_t data, va_list ap)
nullpo_retv (id = (struct item_data *)data);
if (id->use_script)
- free (id->use_script);
+ free (const_cast<ScriptCode *>(id->use_script));
if (id->equip_script)
- free (id->equip_script);
+ free (const_cast<ScriptCode *>(id->equip_script));
free (id);
}
diff --git a/src/map/itemdb.hpp b/src/map/itemdb.hpp
index ef5eab2..e03892d 100644
--- a/src/map/itemdb.hpp
+++ b/src/map/itemdb.hpp
@@ -3,6 +3,7 @@
#define ITEMDB_HPP
#include "map.hpp"
+#include "script.hpp"
struct item_data
{
@@ -25,8 +26,8 @@ struct item_data
int elv;
int wlv;
int refine;
- char *use_script;
- char *equip_script;
+ const ScriptCode *use_script;
+ const ScriptCode *equip_script;
struct
{
unsigned available:1;
diff --git a/src/map/magic-expr-eval.hpp b/src/map/magic-expr-eval.hpp
index 71c1d86..a08b964 100644
--- a/src/map/magic-expr-eval.hpp
+++ b/src/map/magic-expr-eval.hpp
@@ -6,9 +6,8 @@
static int heading_x[8] = { 0, -1, -1, -1, 0, 1, 1, 1 };
static int heading_y[8] = { 1, 1, 0, -1, -1, -1, 0, 1 };
-int
- magic_signature_check (char *opname, char *funname, char *signature,
- int args_nr, val_t * args, int line, int column);
+int magic_signature_check (const char *opname, const char *funname, const char *signature,
+ int args_nr, val_t * args, int line, int column);
void
magic_area_rect (int *m, int *x, int *y, int *width, int *height,
diff --git a/src/map/magic-expr.cpp b/src/map/magic-expr.cpp
index d75042d..4b4e3a3 100644
--- a/src/map/magic-expr.cpp
+++ b/src/map/magic-expr.cpp
@@ -83,7 +83,8 @@ void magic_clear_var (val_t * v)
}
}
-static char *show_entity (entity_t * entity)
+static
+const char *show_entity (entity_t * entity)
{
switch (entity->type)
{
@@ -109,7 +110,7 @@ static char *show_entity (entity_t * entity)
static void stringify (val_t * v, int within_op)
{
- static char *dirs[8] =
+ static const char *dirs[8] =
{ "south", "south-west", "west", "north-west", "north", "north-east",
"east", "south-east"
};
@@ -180,6 +181,7 @@ static void intify (val_t * v)
v->v.v_int = 1;
}
+static
area_t *area_new (int ty)
{
area_t *retval;
@@ -188,6 +190,7 @@ area_t *area_new (int ty)
return retval;
}
+static
area_t *area_union (area_t * area, area_t * other_area)
{
area_t *retval = area_new (AREA_UNION);
@@ -204,7 +207,7 @@ static void make_area (val_t * v)
{
if (v->ty == TY_LOCATION)
{
- area_t *a = (char *)malloc (sizeof (area_t));
+ area_t *a = (area_t *)malloc (sizeof (area_t));
v->ty = TY_AREA;
a->ty = AREA_LOCATION;
a->a.a_loc = v->v.v_location;
@@ -1238,6 +1241,7 @@ static fun_t functions[] = {
static int functions_are_sorted = 0;
+static
int compare_fun (const void *lhs, const void *rhs)
{
return strcmp (((fun_t *) lhs)->name, ((fun_t *) rhs)->name);
@@ -1436,9 +1440,8 @@ static int type_key (char ty_key)
}
}
-int
-magic_signature_check (char *opname, char *funname, char *signature,
- int args_nr, val_t * args, int line, int column)
+int magic_signature_check (const char *opname, const char *funname, const char *signature,
+ int args_nr, val_t * args, int line, int column)
{
int i;
for (i = 0; i < args_nr; i++)
@@ -1520,8 +1523,13 @@ magic_signature_check (char *opname, char *funname, char *signature,
return 0;
}
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wshadow"
void magic_eval (env_t * env, val_t * dest, expr_t * expr)
{
+#ifdef RECENT_GCC
+#pragma GCC diagnostic pop
+#endif
switch (expr->ty)
{
case EXPR_VAL:
@@ -1598,9 +1606,16 @@ void magic_eval (env_t * env, val_t * dest, expr_t * expr)
dest->ty = TY_UNDEF;
else
{
+#ifdef RECENT_GCC
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wshadow"
+#endif
env_t *env = t->env;
- val_t v = VAR (id);
- magic_copy_var (dest, &v);
+#ifdef RECENT_GCC
+#pragma GCC diagnostic pop
+#endif
+ val_t val = VAR (id);
+ magic_copy_var (dest, &val);
}
}
else
@@ -1620,6 +1635,9 @@ void magic_eval (env_t * env, val_t * dest, expr_t * expr)
break;
}
}
+#ifndef RECENT_GCC
+#pragma GCC diagnostic pop
+#endif
int magic_eval_int (env_t * env, expr_t * expr)
{
diff --git a/src/map/magic-expr.hpp b/src/map/magic-expr.hpp
index 4551585..7a251df 100644
--- a/src/map/magic-expr.hpp
+++ b/src/map/magic-expr.hpp
@@ -29,16 +29,16 @@
*/
typedef struct fun
{
- char *name;
- char *signature;
+ const char *name;
+ const char *signature;
char ret_ty;
int (*fun) (env_t * env, int args_nr, val_t * result, val_t * args);
} fun_t;
typedef struct op
{
- char *name;
- char *signature;
+ const char *name;
+ const char *signature;
int (*op) (env_t * env, int args_nr, val_t * args);
} op_t;
diff --git a/src/map/magic-interpreter-base.cpp b/src/map/magic-interpreter-base.cpp
index 1dc90a5..0305192 100644
--- a/src/map/magic-interpreter-base.cpp
+++ b/src/map/magic-interpreter-base.cpp
@@ -46,7 +46,7 @@ env_t magic_default_env = { &magic_conf, NULL };
static int spells_sorted = 0;
-char *magic_find_invocation (char *spellname)
+const char *magic_find_invocation(const char *spellname)
{
int i;
@@ -99,7 +99,7 @@ static int compare_teleport_anchor (const void *lhs, const void *rhs)
(*((teleport_anchor_t **) rhs))->invocation);
}
-char *magic_find_anchor_invocation (char *anchor_name)
+const char *magic_find_anchor_invocation(const char *anchor_name)
{
int i;
diff --git a/src/map/magic-interpreter-parser.ypp b/src/map/magic-interpreter-parser.ypp
index 2648be9..5fe2646 100644
--- a/src/map/magic-interpreter-parser.ypp
+++ b/src/map/magic-interpreter-parser.ypp
@@ -1,9 +1,13 @@
-%{
-#include "magic-interpreter.hpp"
+%code requires {
#include "magic-expr.hpp"
+}
+%code{
+#include "magic-interpreter-parser.hpp"
+
+#include "magic-interpreter.hpp"
#include <stdarg.h>
-magic_conf_t magic_conf;
+#define YYLEX_PARAM 0, 0
static int
intern_id(const char *id_name);
@@ -49,8 +53,7 @@ add_teleport_anchor(teleport_anchor_t *anchor, int line_nr);
static effect_t *
op_effect(char *name, int args_nr, expr_t **args, int line, int column);
-int
-magic_frontend_lex(void);
+int magic_frontend_lex(YYSTYPE *, YYLTYPE *);
static void
install_proc(proc_t *proc);
@@ -64,8 +67,7 @@ bind_constant(char *name, val_t *val, int line_nr);
static val_t *
find_constant(char *name);
-
-%}
+}
%name-prefix="magic_frontend_"
@@ -678,7 +680,7 @@ effect : '(' effect_list ')'
}
| SCRIPT_DATA
{ $$ = new_effect(EFFECT_SCRIPT);
- $$->e.e_script = parse_script((unsigned char *) $1, @1.first_line);
+ $$->e.e_script = parse_script($1, @1.first_line);
free($1);
if ($$->e.e_script == NULL)
fail(@1.first_line, @1.first_column, "Failed to compile script\n");
@@ -771,8 +773,8 @@ add_teleport_anchor(teleport_anchor_t *anchor, int line_nr)
}
-static void
-fail(int line, int column, const char *fmt, ...)
+static __attribute__((format(printf, 3, 4)))
+void fail(int line, int column, const char *fmt, ...)
{
va_list ap;
fprintf(stderr, "[magic-init] L%d:%d: ", line, column);
@@ -1030,13 +1032,14 @@ find_constant(char *name)
extern FILE *magic_frontend_in;
-int
-magic_init(char *conffile) // must be called after itemdb initialisation
+// must be called after itemdb initialisation
+int magic_init(const char *conffile)
{
int error_flag = 0;
magic_conf.vars_nr = 0;
- magic_conf.var_name = (char **)malloc(1);
+ // can these be left NULL ? I'm afraid to change anything.
+ magic_conf.var_name = (const char **)malloc(1);
magic_conf.vars = (val_t *)malloc(1);
magic_conf.obscure_chance = 95;
diff --git a/src/map/magic-interpreter.hpp b/src/map/magic-interpreter.hpp
index e040975..21e8d39 100644
--- a/src/map/magic-interpreter.hpp
+++ b/src/map/magic-interpreter.hpp
@@ -226,7 +226,7 @@ typedef struct effect
struct effect *true_branch, *false_branch;
} e_if;
expr_t *e_sleep; /* sleep time */
- unsigned char *e_script;
+ const ScriptCode *e_script;
struct
{
int id;
@@ -497,4 +497,8 @@ typedef struct
effect_t *body;
} proc_t;
+// must be called after itemdb initialisation
+int magic_init(const char *);
+void spell_update_location (invocation_t * invocation);
+
#endif /* !defined (MAGIC_INTERPRETER_H) */
diff --git a/src/map/magic-stmt.cpp b/src/map/magic-stmt.cpp
index 20130dd..5dd51d7 100644
--- a/src/map/magic-stmt.cpp
+++ b/src/map/magic-stmt.cpp
@@ -3,10 +3,6 @@
#include "magic-expr-eval.hpp"
#include "magic-interpreter-aux.hpp"
-int
- clif_spawn_fake_npc_for_player (struct map_session_data *sd,
- int fake_npc_id);
-
#define INVISIBLE_NPC 127 /* used for local spell effects */
//#define DEBUG
@@ -683,7 +679,8 @@ static int op_spawn (env_t * env, int args_nr, val_t * args)
return 0;
}
-static char *get_invocation_name (env_t * env)
+static
+const char *get_invocation_name (env_t * env)
{
invocation_t *invocation;
@@ -853,6 +850,7 @@ static op_t operations[] = {
static int operations_sorted = 0;
static int operation_count;
+static
int compare_operations (const void *lhs, const void *rhs)
{
return strcmp (((op_t *) lhs)->name, ((op_t *) rhs)->name);
@@ -1405,16 +1403,14 @@ static int spell_run (invocation_t * invocation, int allow_delete)
if (caster)
{
env_t *env = invocation->env;
- character_t *caster =
- (character_t *) map_id2bl (invocation->caster);
- argrec_t arg[] = { {"@target",.v.i =
+ argrec_t arg[] = { {"@target",
VAR (VAR_TARGET).ty ==
TY_ENTITY ? 0 : VAR (VAR_TARGET).
v.v_int}
,
- {"@caster",.v.i = invocation->caster}
+ {"@caster", invocation->caster}
,
- {"@caster_name$",.v.s = caster ? caster->status.name : ""}
+ {"@caster_name$", caster ? caster->status.name : ""}
};
int message_recipient =
VAR (VAR_SCRIPTTARGET).ty ==
@@ -1501,8 +1497,7 @@ static int spell_run (invocation_t * invocation, int allow_delete)
#undef REFRESH_INVOCATION
}
-extern void spell_update_location (invocation_t * invocation);
-
+static
void spell_execute_d (invocation_t * invocation, int allow_deletion)
{
int delta;
diff --git a/src/map/magic.cpp b/src/map/magic.cpp
index 03b18a4..4311f09 100644
--- a/src/map/magic.cpp
+++ b/src/map/magic.cpp
@@ -122,8 +122,6 @@ int magic_message (character_t * caster, char *spell_, size_t spell_len)
return 0; /* Not a spell */
}
-int magic_init (char *conffile); // must be called after itemdb initialisation
-
void do_init_magic (void)
{
magic_init (MAGIC_CONFIG_FILE);
diff --git a/src/map/magic.hpp b/src/map/magic.hpp
index 0c776ea..168a05f 100644
--- a/src/map/magic.hpp
+++ b/src/map/magic.hpp
@@ -53,14 +53,14 @@ void do_init_magic (void);
*
* Returns NULL if not found
*/
-char *magic_find_invocation (char *spellame);
+const char *magic_find_invocation (const char *spellame);
/**
* Identifies the invocation used to denote a teleport location
*
* Returns NULL if not found
*/
-char *magic_find_anchor_invocation (char *teleport_location);
+const char *magic_find_anchor_invocation (const char *teleport_location);
/**
* Execute a spell invocation and sets up timers to finish
diff --git a/src/map/map.cpp b/src/map/map.cpp
index 3c778df..6470d97 100644
--- a/src/map/map.cpp
+++ b/src/map/map.cpp
@@ -1019,7 +1019,7 @@ int map_addflooritem (struct item *item_data, int amount, int m, int x, int y,
* charid_dbへ追加(返信待ちがあれば返信)
*------------------------------------------
*/
-void map_addchariddb (int charid, char *name)
+void map_addchariddb (int charid, const char *name)
{
struct charid2nick *p = (struct charid2nick *)numdb_search (charid_db, charid);
if (p == NULL)
@@ -1277,7 +1277,7 @@ struct map_session_data *map_get_prev_session (struct map_session_data *d)
* return map_session_data pointer or NULL
*------------------------------------------
*/
-struct map_session_data *map_nick2sd (char *nick)
+struct map_session_data *map_nick2sd (const char *nick)
{
int i, quantity = 0, nicklen;
struct map_session_data *sd = NULL;
@@ -1375,6 +1375,7 @@ int map_addnpc (int m, struct npc_data *nd)
return i;
}
+static
void map_removenpc (void)
{
int i, m, n = 0;
@@ -1406,7 +1407,7 @@ void map_removenpc (void)
* map名からmap番号へ変換
*------------------------------------------
*/
-int map_mapname2mapid (char *name)
+int map_mapname2mapid (const char *name)
{
struct map_data *md = (struct map_data *)strdb_search (map_db, name);
if (md == NULL || md->gat == NULL)
@@ -1418,7 +1419,7 @@ int map_mapname2mapid (char *name)
* 他鯖map名からip,port変換
*------------------------------------------
*/
-int map_mapname2ipport (char *name, int *ip, int *port)
+int map_mapname2ipport (const char *name, struct in_addr *ip, int *port)
{
struct map_data_other_server *mdos = (struct map_data_other_server *)strdb_search (map_db, name);
if (mdos == NULL || mdos->gat)
@@ -1553,7 +1554,7 @@ int map_setcell (int m, int x, int y, int t)
* 他鯖管理のマップをdbに追加
*------------------------------------------
*/
-int map_setipport (char *name, unsigned long ip, int port)
+int map_setipport (const char *name, struct in_addr ip, int port)
{
struct map_data_other_server *mdos = NULL;
@@ -1571,9 +1572,9 @@ int map_setipport (char *name, unsigned long ip, int port)
{
if (md->gat)
{ // local -> check data
- if (ip != clif_getip () || port != clif_getport ())
+ if (ip.s_addr != clif_getip ().s_addr || port != clif_getport ())
{
- printf ("from char server : %s -> %08lx:%d\n", name, ip,
+ printf ("from char server : %s -> %s:%d\n", name, ip2str(ip),
port);
return 1;
}
@@ -1727,6 +1728,7 @@ static int map_readmap (int m, char *fn, char *alias)
* 全てのmapデータを読み込む
*------------------------------------------
*/
+static
int map_readallmap (void)
{
int i, maps_removed = 0;
@@ -1785,6 +1787,7 @@ int map_readallmap (void)
* 読み込むmapを追加する
*------------------------------------------
*/
+static
int map_addmap (char *mapname)
{
if (strcasecmp (mapname, "clear") == 0)
@@ -1868,7 +1871,7 @@ static void map_start_logfile (long suffix)
free (filename_buf);
}
-static void map_set_logfile (char *filename)
+static void map_set_logfile (const char *filename)
{
struct timeval tv;
@@ -1880,7 +1883,7 @@ static void map_set_logfile (char *filename)
MAP_LOG ("log-start v3");
}
-void map_write_log (char *format, ...)
+void map_write_log (const char *format, ...)
{
struct timeval tv;
va_list args;
@@ -1903,7 +1906,8 @@ void map_write_log (char *format, ...)
* 設定ファイルを読み込む
*------------------------------------------
*/
-int map_config_read (char *cfgName)
+static
+int map_config_read (const char *cfgName)
{
char line[1024], w1[1024], w2[1024];
FILE *fp;
@@ -2131,11 +2135,11 @@ int do_init (int argc, char *argv[])
{
int i;
- unsigned char *MAP_CONF_NAME = "conf/map_athena.conf";
- unsigned char *BATTLE_CONF_FILENAME = "conf/battle_athena.conf";
- unsigned char *ATCOMMAND_CONF_FILENAME = "conf/atcommand_athena.conf";
- unsigned char *SCRIPT_CONF_NAME = "conf/script_athena.conf";
- unsigned char *MSG_CONF_NAME = "conf/msg_athena.conf";
+ const char *MAP_CONF_NAME = "conf/map_athena.conf";
+ const char *BATTLE_CONF_FILENAME = "conf/battle_athena.conf";
+ const char *ATCOMMAND_CONF_FILENAME = "conf/atcommand_athena.conf";
+ const char *SCRIPT_CONF_NAME = "conf/script_athena.conf";
+ const char *MSG_CONF_NAME = "conf/msg_athena.conf";
for (i = 1; i < argc; i++)
{
@@ -2159,7 +2163,6 @@ int do_init (int argc, char *argv[])
battle_config_read (BATTLE_CONF_FILENAME);
atcommand_config_read (ATCOMMAND_CONF_FILENAME);
script_config_read (SCRIPT_CONF_NAME);
- msg_config_read (MSG_CONF_NAME);
id_db = numdb_init ();
map_db = strdb_init (16);
diff --git a/src/map/map.hpp b/src/map/map.hpp
index 5d3e0a2..8130739 100644
--- a/src/map/map.hpp
+++ b/src/map/map.hpp
@@ -10,6 +10,7 @@
#include "../common/mmo.hpp"
#include "../common/timer.hpp"
#include "../common/db.hpp"
+#include "script.hpp"
#ifndef MAX
# define MAX(x,y) (((x)>(y)) ? (x) : (y))
@@ -225,7 +226,7 @@ struct map_session_data
int npc_menu;
int npc_amount;
int npc_stack, npc_stackmax;
- char *npc_script, *npc_scriptroot;
+ const ScriptCode *npc_script, *npc_scriptroot;
char *npc_stackbuf;
char npc_str[256];
struct
@@ -404,7 +405,7 @@ struct map_session_data
time_t packet_flood_reset_due;
int packet_flood_in;
- in_addr_t ip;
+ struct in_addr ip;
};
struct npc_timerevent_list
@@ -435,7 +436,7 @@ struct npc_data
{
struct
{
- char *script;
+ const ScriptCode *script;
short xs, ys;
int guild_id;
int timer, timerid, timeramount, nexttimer;
@@ -614,7 +615,7 @@ struct map_data_other_server
{
char name[24];
unsigned char *gat; // NULL固定にして判断
- unsigned long ip;
+ struct in_addr ip;
unsigned int port;
};
#define read_gat(m,x,y) (map[m].gat[(x)+(y)*map[m].xs])
@@ -701,8 +702,8 @@ struct chat_data
{
struct block_list bl;
- unsigned char pass[8]; /* password */
- unsigned char title[61]; /* room title MAX 60 */
+ char pass[8]; /* password */
+ char title[61]; /* room title MAX 60 */
unsigned char limit; /* join limit */
unsigned char trigger;
unsigned char users; /* current users */
@@ -758,7 +759,8 @@ int map_quit (struct map_session_data *);
int map_addnpc (int, struct npc_data *);
extern FILE *map_logfile;
-void map_write_log (char *format, ...);
+__attribute__((format(printf, 1, 2)))
+void map_write_log (const char *format, ...);
#define MAP_LOG(format, args...) {if (map_logfile) map_write_log(format, ##args);}
#define MAP_LOG_PC(sd, fmt, args...) MAP_LOG("PC%d %d:%d,%d " fmt, sd->status.char_id, sd->bl.m, sd->bl.x, sd->bl.y, ## args)
@@ -776,23 +778,23 @@ int map_addflooritem (struct item *, int, int, int, int,
int map_searchrandfreecell (int, int, int, int);
// キャラid=>キャラ名 変換関連
-void map_addchariddb (int charid, char *name);
+void map_addchariddb (int charid, const char *name);
void map_delchariddb (int charid);
int map_reqchariddb (struct map_session_data *sd, int charid);
char *map_charid2nick (int);
struct map_session_data *map_id2sd (int);
struct block_list *map_id2bl (int);
-int map_mapname2mapid (char *);
-int map_mapname2ipport (char *, int *, int *);
-int map_setipport (char *name, unsigned long ip, int port);
-int map_eraseipport (char *name, unsigned long ip, int port);
+int map_mapname2mapid (const char *);
+int map_mapname2ipport (const char *, struct in_addr *, int *);
+int map_setipport (const char *name, struct in_addr ip, int port);
+int map_eraseipport (const char *name, struct in_addr ip, int port);
void map_addiddb (struct block_list *);
void map_deliddb (struct block_list *bl);
int map_foreachiddb (db_func_t, ...);
void map_addnickdb (struct map_session_data *);
int map_scriptcont (struct map_session_data *sd, int id); /* Continues a script either on a spell or on an NPC */
-struct map_session_data *map_nick2sd (char *);
+struct map_session_data *map_nick2sd (const char *);
int compare_item (struct item *a, struct item *b);
struct map_session_data *map_get_first_session (void);
diff --git a/src/map/mob.cpp b/src/map/mob.cpp
index a722920..c329a14 100644
--- a/src/map/mob.cpp
+++ b/src/map/mob.cpp
@@ -44,7 +44,6 @@ struct mob_db mob_db[2001];
static int distance (int, int, int, int);
static int mob_makedummymobdb (int);
static void mob_timer (timer_id, tick_t, custom_id_t, custom_data_t);
-int mobskill_use (struct mob_data *md, unsigned int tick, int event);
int mobskill_deltimer (struct mob_data *md);
int mob_skillid2skillidx (int mob_class, int skillid);
int mobskill_use_id (struct mob_data *md, struct block_list *target,
@@ -90,6 +89,7 @@ static void mob_init (struct mob_data *md);
* The minimum data set for MOB spawning
*------------------------------------------
*/
+static
int mob_spawn_dataset (struct mob_data *md, const char *mobname, int mob_class)
{
nullpo_retr (0, md);
@@ -259,12 +259,13 @@ static void mob_mutate (struct mob_data *md, int stat, int intensity) // inten
}
// This calculates the exp of a given mob
+static
int mob_gen_exp (struct mob_db *mob)
{
if (mob->max_hp <= 1)
return 1;
double mod_def = 100 - mob->def;
- if (mod_def == 0)
+ if (100 == mob->def)
mod_def = 1;
double effective_hp =
((50 - mob->luk) * mob->max_hp / 50.0) +
@@ -338,7 +339,7 @@ static void mob_init (struct mob_data *md)
* The MOB appearance for one time (for scripts)
*------------------------------------------
*/
-int mob_once_spawn (struct map_session_data *sd, char *mapname,
+int mob_once_spawn (struct map_session_data *sd, const char *mapname,
int x, int y, const char *mobname, int mob_class, int amount,
const char *event)
{
@@ -444,7 +445,7 @@ int mob_once_spawn (struct map_session_data *sd, char *mapname,
* The MOB appearance for one time (& area specification for scripts)
*------------------------------------------
*/
-int mob_once_spawn_area (struct map_session_data *sd, char *mapname,
+int mob_once_spawn_area (struct map_session_data *sd, const char *mapname,
int x0, int y0, int x1, int y1,
const char *mobname, int mob_class, int amount,
const char *event)
@@ -494,7 +495,7 @@ int mob_once_spawn_area (struct map_session_data *sd, char *mapname,
* Summoning Guardians [Valaris]
*------------------------------------------
*/
-int mob_spawn_guardian (struct map_session_data *sd, char *mapname,
+int mob_spawn_guardian (struct map_session_data *sd, const char *mapname,
int x, int y, const char *mobname, int mob_class,
int amount, const char *event, int guardian)
{
@@ -663,6 +664,7 @@ int mob_get_equip (int mob_class) // mob equip [Valaris]
* Is MOB in the state in which the present movement is possible or not?
*------------------------------------------
*/
+static
int mob_can_move (struct mob_data *md)
{
nullpo_retr (0, md);
@@ -955,6 +957,7 @@ static int mob_attack (struct mob_data *md, unsigned int tick, int data)
* The callback function of clif_foreachclient
*------------------------------------------
*/
+static
int mob_stopattacked (struct map_session_data *sd, va_list ap)
{
int id;
@@ -1161,6 +1164,7 @@ static void mob_delayspawn (timer_id tid, tick_t tick, custom_id_t m, custom_dat
* spawn timing calculation
*------------------------------------------
*/
+static
int mob_setdelayspawn (int id)
{
unsigned int spawntime, spawntime1, spawntime2, spawntime3;
@@ -1412,6 +1416,7 @@ int mob_stop_walking (struct mob_data *md, int type)
* Reachability to a Specification ID existence place
*------------------------------------------
*/
+static
int mob_can_reach (struct mob_data *md, struct block_list *bl, int range)
{
int dx, dy;
@@ -2542,6 +2547,7 @@ void mob_timer_delete (timer_id tid, tick_t tick, custom_id_t id, custom_data_t
*
*------------------------------------------
*/
+static
int mob_deleteslave_sub (struct block_list *bl, va_list ap)
{
struct mob_data *md;
@@ -2583,7 +2589,7 @@ const static double damage_bonus_factor[DAMAGE_BONUS_COUNT + 1] = {
int mob_damage (struct block_list *src, struct mob_data *md, int damage,
int type)
{
- int i, count, minpos, mindmg;
+ int count, minpos, mindmg;
struct map_session_data *sd = NULL, *tmpsd[DAMAGELOG_SIZE];
struct
{
@@ -2598,7 +2604,6 @@ int mob_damage (struct block_list *src, struct mob_data *md, int damage,
double dmg_rate, tdmg, temp;
struct item item;
int ret;
- int drop_rate;
int skill, sp;
nullpo_retr (0, md); //srcはNULLで呼ばれる場合もあるので、他でチェック
@@ -2659,6 +2664,7 @@ int mob_damage (struct block_list *src, struct mob_data *md, int damage,
{
if (sd != NULL)
{
+ int i;
for (i = 0, minpos = 0, mindmg = 0x7fffffff; i < DAMAGELOG_SIZE;
i++)
{
@@ -2700,6 +2706,7 @@ int mob_damage (struct block_list *src, struct mob_data *md, int damage,
}
nullpo_retr (0, md2);
+ int i;
for (i = 0, minpos = 0, mindmg = 0x7fffffff; i < DAMAGELOG_SIZE;
i++)
{
@@ -2869,7 +2876,9 @@ int mob_damage (struct block_list *src, struct mob_data *md, int damage,
// overkill分は無いけどsumはmax_hpとは違う
tdmg = 0;
- for (i = 0, count = 0, mvp_damage = 0; i < DAMAGELOG_SIZE; i++)
+ count = 0;
+ mvp_damage = 0;
+ for (int i = 0; i < DAMAGELOG_SIZE; i++)
{
if (md->dmglog[i].id == 0)
continue;
@@ -2900,7 +2909,7 @@ int mob_damage (struct block_list *src, struct mob_data *md, int damage,
dmg_rate = 1;
// 経験値の分配
- for (i = 0; i < DAMAGELOG_SIZE; i++)
+ for (int i = 0; i < DAMAGELOG_SIZE; i++)
{
int pid, base_exp, job_exp, flag = 1;
@@ -2983,14 +2992,14 @@ int mob_damage (struct block_list *src, struct mob_data *md, int damage,
pc_gainexp (tmpsd[i], base_exp, job_exp);
}
// 公平分配
- for (i = 0; i < pnum; i++)
+ for (int i = 0; i < pnum; i++)
party_exp_share (pt[i].p, md->bl.m, pt[i].base_exp,
pt[i].job_exp);
// item drop
if (!(type & 1))
{
- for (i = 0; i < 8; i++)
+ for (int i = 0; i < 8; i++)
{
struct delay_item_drop *ditem;
int drop_rate;
@@ -3025,7 +3034,7 @@ int mob_damage (struct block_list *src, struct mob_data *md, int damage,
}
if (sd && sd->state.attack_type == BF_WEAPON)
{
- for (i = 0; i < sd->monster_drop_item_count; i++)
+ for (int i = 0; i < sd->monster_drop_item_count; i++)
{
struct delay_item_drop *ditem;
int race = battle_get_race (&md->bl);
@@ -3061,7 +3070,7 @@ int mob_damage (struct block_list *src, struct mob_data *md, int damage,
}
if (md->lootitem)
{
- for (i = 0; i < md->lootitem_count; i++)
+ for (int i = 0; i < md->lootitem_count; i++)
{
struct delay_item_drop2 *ditem;
@@ -3097,10 +3106,10 @@ int mob_damage (struct block_list *src, struct mob_data *md, int damage,
pc_gainexp (mvp_sd, mexp, 0);
for (j = 0; j < 3; j++)
{
- i = MRAND (3);
+ int i = MRAND (3);
if (mob_db[md->mob_class].mvpitem[i].nameid <= 0)
continue;
- drop_rate = mob_db[md->mob_class].mvpitem[i].p;
+ int drop_rate = mob_db[md->mob_class].mvpitem[i].p;
if (drop_rate <= 0 && battle_config.drop_rate0item == 1)
drop_rate = 1;
if (drop_rate < battle_config.item_drop_mvp_min)
@@ -3149,16 +3158,16 @@ int mob_damage (struct block_list *src, struct mob_data *md, int damage,
sd = mvp_sd;
else
{
- struct map_session_data *tmpsd;
+ struct map_session_data *tmp_sd;
int i;
for (i = 0; i < fd_max; i++)
{
- if (session[i] && (tmpsd = (struct map_session_data *)session[i]->session_data)
- && tmpsd->state.auth)
+ if (session[i] && (tmp_sd = (struct map_session_data *)session[i]->session_data)
+ && tmp_sd->state.auth)
{
- if (md->bl.m == tmpsd->bl.m)
+ if (md->bl.m == tmp_sd->bl.m)
{
- sd = tmpsd;
+ sd = tmp_sd;
break;
}
}
@@ -3304,6 +3313,7 @@ int mob_heal (struct mob_data *md, int heal)
* Added by RoVeRT
*------------------------------------------
*/
+static
int mob_warpslave_sub (struct block_list *bl, va_list ap)
{
struct mob_data *md = (struct mob_data *) bl;
@@ -3322,6 +3332,7 @@ int mob_warpslave_sub (struct block_list *bl, va_list ap)
* Added by RoVeRT
*------------------------------------------
*/
+static
int mob_warpslave (struct mob_data *md, int x, int y)
{
//printf("warp slave\n");
@@ -3417,6 +3428,7 @@ int mob_warp (struct mob_data *md, int m, int x, int y, int type)
* 画面内の取り巻きの数計算用(foreachinarea)
*------------------------------------------
*/
+static
int mob_countslave_sub (struct block_list *bl, va_list ap)
{
int id, *c;
@@ -3438,6 +3450,7 @@ int mob_countslave_sub (struct block_list *bl, va_list ap)
* 画面内の取り巻きの数計算
*------------------------------------------
*/
+static
int mob_countslave (struct mob_data *md)
{
int c = 0;
@@ -3991,6 +4004,7 @@ int mobskill_use_id (struct mob_data *md, struct block_list *target,
* スキル使用(場所指定)
*------------------------------------------
*/
+static
int mobskill_use_pos (struct mob_data *md,
int skill_x, int skill_y, int skill_idx)
{
@@ -4089,6 +4103,7 @@ int mobskill_use_pos (struct mob_data *md,
* Friendly Mob whose HP is decreasing by a nearby MOB is looked for.
*------------------------------------------
*/
+static
int mob_getfriendhpltmaxrate_sub (struct block_list *bl, va_list ap)
{
int rate;
@@ -4109,6 +4124,7 @@ int mob_getfriendhpltmaxrate_sub (struct block_list *bl, va_list ap)
return 0;
}
+static
struct mob_data *mob_getfriendhpltmaxrate (struct mob_data *md, int rate)
{
struct mob_data *fr = NULL;
@@ -4126,6 +4142,7 @@ struct mob_data *mob_getfriendhpltmaxrate (struct mob_data *md, int rate)
* What a status state suits by nearby MOB is looked for.
*------------------------------------------
*/
+static
int mob_getfriendstatus_sub (struct block_list *bl, va_list ap)
{
int cond1, cond2;
@@ -4158,6 +4175,7 @@ int mob_getfriendstatus_sub (struct block_list *bl, va_list ap)
return 0;
}
+static
struct mob_data *mob_getfriendstatus (struct mob_data *md, int cond1,
int cond2)
{
@@ -4180,7 +4198,7 @@ int mobskill_use (struct mob_data *md, unsigned int tick, int event)
{
struct mob_skill *ms;
// struct block_list *target=NULL;
- int i, max_hp;
+ int max_hp;
nullpo_retr (0, md);
nullpo_retr (0, ms = mob_db[md->mob_class].skill);
@@ -4196,24 +4214,24 @@ int mobskill_use (struct mob_data *md, unsigned int tick, int event)
if (md->sc_data[SC_SELFDESTRUCTION].timer != -1) //自爆中はスキルを使わない
return 0;
- for (i = 0; i < mob_db[md->mob_class].maxskill; i++)
+ for (int ii = 0; ii < mob_db[md->mob_class].maxskill; ii++)
{
- int c2 = ms[i].cond2, flag = 0;
+ int c2 = ms[ii].cond2, flag = 0;
struct mob_data *fmd = NULL;
// ディレイ中
- if (DIFF_TICK (tick, md->skilldelay[i]) < ms[i].delay)
+ if (DIFF_TICK (tick, md->skilldelay[ii]) < ms[ii].delay)
continue;
// 状態判定
- if (ms[i].state >= 0 && ms[i].state != md->state.skillstate)
+ if (ms[ii].state >= 0 && ms[ii].state != md->state.skillstate)
continue;
// 条件判定
- flag = (event == ms[i].cond1);
+ flag = (event == ms[ii].cond1);
if (!flag)
{
- switch (ms[i].cond1)
+ switch (ms[ii].cond1)
{
case MSC_ALWAYS:
flag = 1;
@@ -4223,7 +4241,7 @@ int mobskill_use (struct mob_data *md, unsigned int tick, int event)
break;
case MSC_MYSTATUSON: // status[num] on
case MSC_MYSTATUSOFF: // status[num] off
- if (ms[i].cond2 == -1)
+ if (ms[ii].cond2 == -1)
{
int j;
for (j = SC_STONE; j <= SC_BLIND && !flag; j++)
@@ -4232,21 +4250,21 @@ int mobskill_use (struct mob_data *md, unsigned int tick, int event)
}
}
else
- flag = (md->sc_data[ms[i].cond2].timer != -1);
- flag ^= (ms[i].cond1 == MSC_MYSTATUSOFF);
+ flag = (md->sc_data[ms[ii].cond2].timer != -1);
+ flag ^= (ms[ii].cond1 == MSC_MYSTATUSOFF);
break;
case MSC_FRIENDHPLTMAXRATE: // friend HP < maxhp%
flag =
((fmd =
mob_getfriendhpltmaxrate (md,
- ms[i].cond2)) != NULL);
+ ms[ii].cond2)) != NULL);
break;
case MSC_FRIENDSTATUSON: // friend status[num] on
case MSC_FRIENDSTATUSOFF: // friend status[num] off
flag =
((fmd =
- mob_getfriendstatus (md, ms[i].cond1,
- ms[i].cond2)) != NULL);
+ mob_getfriendstatus (md, ms[ii].cond1,
+ ms[ii].cond2)) != NULL);
break;
case MSC_NOTINTOWN: // Only outside of towns.
flag = !map[md->bl.m].flag.town;
@@ -4271,17 +4289,17 @@ int mobskill_use (struct mob_data *md, unsigned int tick, int event)
}
// 確率判定
- if (flag && MRAND (10000) < ms[i].permillage)
+ if (flag && MRAND (10000) < ms[ii].permillage)
{
- if (skill_get_inf (ms[i].skill_id) & 2)
+ if (skill_get_inf (ms[ii].skill_id) & 2)
{
// 場所指定
struct block_list *bl = NULL;
int x = 0, y = 0;
- if (ms[i].target <= MST_AROUND)
+ if (ms[ii].target <= MST_AROUND)
{
- if (ms[i].target == MST_MASTER)
+ if (ms[ii].target == MST_MASTER)
{
bl = &md->bl;
if (md->master_id)
@@ -4289,11 +4307,11 @@ int mobskill_use (struct mob_data *md, unsigned int tick, int event)
}
else
{
- bl = ((ms[i].target == MST_TARGET
- || ms[i].target ==
+ bl = ((ms[ii].target == MST_TARGET
+ || ms[ii].target ==
MST_AROUND5) ? map_id2bl (md->
target_id)
- : (ms[i].target ==
+ : (ms[ii].target ==
MST_FRIEND) ? &fmd->bl : &md->bl);
}
@@ -4306,7 +4324,7 @@ int mobskill_use (struct mob_data *md, unsigned int tick, int event)
if (x <= 0 || y <= 0)
continue;
// 自分の周囲
- if (ms[i].target >= MST_AROUND1)
+ if (ms[ii].target >= MST_AROUND1)
{
int bx = x, by = y, i = 0, c, m = bl->m, r =
ms[i].target - MST_AROUND1;
@@ -4326,7 +4344,7 @@ int mobskill_use (struct mob_data *md, unsigned int tick, int event)
}
}
// 相手の周囲
- if (ms[i].target >= MST_AROUND5)
+ if (ms[ii].target >= MST_AROUND5)
{
int bx = x, by = y, i = 0, c, m = bl->m, r =
(ms[i].target - MST_AROUND5) + 1;
@@ -4345,37 +4363,37 @@ int mobskill_use (struct mob_data *md, unsigned int tick, int event)
y = by;
}
}
- if (!mobskill_use_pos (md, x, y, i))
+ if (!mobskill_use_pos (md, x, y, ii))
return 0;
}
else
{
- if (ms[i].target == MST_MASTER)
+ if (ms[ii].target == MST_MASTER)
{
struct block_list *bl = &md->bl;
if (md->master_id)
bl = map_id2bl (md->master_id);
- if (bl && !mobskill_use_id (md, bl, i))
+ if (bl && !mobskill_use_id (md, bl, ii))
return 0;
}
// ID指定
- if (ms[i].target <= MST_FRIEND)
+ if (ms[ii].target <= MST_FRIEND)
{
struct block_list *bl = NULL;
- bl = ((ms[i].target ==
+ bl = ((ms[ii].target ==
MST_TARGET) ? map_id2bl (md->
- target_id) : (ms[i].target
+ target_id) : (ms[ii].target
==
MST_FRIEND)
? &fmd->bl : &md->bl);
- if (bl && !mobskill_use_id (md, bl, i))
+ if (bl && !mobskill_use_id (md, bl, ii))
return 0;
}
}
- if (ms[i].emotion >= 0)
- clif_emotion (&md->bl, ms[i].emotion);
+ if (ms[ii].emotion >= 0)
+ clif_emotion (&md->bl, ms[ii].emotion);
return 1;
}
}
@@ -4521,30 +4539,30 @@ static int mob_readdb (void)
{
FILE *fp;
char line[1024];
- char *filename[] = { "db/mob_db.txt", "db/mob_db2.txt" };
- int i;
+ const char *filename[] = { "db/mob_db.txt", "db/mob_db2.txt" };
memset (mob_db, 0, sizeof (mob_db));
- for (i = 0; i < 2; i++)
+ for (int j = 0; j < 2; j++)
{
- fp = fopen_ (filename[i], "r");
+ fp = fopen_ (filename[j], "r");
if (fp == NULL)
{
- if (i > 0)
+ if (j > 0)
continue;
return -1;
}
while (fgets (line, 1020, fp))
{
- int mob_class, i;
+ int mob_class;
char *str[57], *p, *np;
if (line[0] == '/' && line[1] == '/')
continue;
- for (i = 0, p = line; i < 57; i++)
+ p = line;
+ for (int i = 0; i < 57; i++)
{
while (*p == '\t' || *p == ' ')
p++;
@@ -4615,7 +4633,7 @@ static int mob_readdb (void)
mob_db[mob_class].amotion = atoi (str[27]);
mob_db[mob_class].dmotion = atoi (str[28]);
- for (i = 0; i < 8; i++)
+ for (int i = 0; i < 8; i++)
{
int rate = 0, type, ratemin, ratemax;
mob_db[mob_class].dropitem[i].nameid = atoi (str[29 + i * 2]);
@@ -4660,7 +4678,7 @@ static int mob_readdb (void)
mob_db[mob_class].mexp =
atoi (str[45]) * battle_config.mvp_exp_rate / 100;
mob_db[mob_class].mexpper = atoi (str[46]);
- for (i = 0; i < 3; i++)
+ for (int i = 0; i < 3; i++)
{
mob_db[mob_class].mvpitem[i].nameid = atoi (str[47 + i * 2]);
mob_db[mob_class].mvpitem[i].p =
@@ -4670,7 +4688,7 @@ static int mob_readdb (void)
mob_db[mob_class].mutations_nr = atoi (str[55]);
mob_db[mob_class].mutation_power = atoi (str[56]);
- for (i = 0; i < MAX_RANDOMMONSTER; i++)
+ for (int i = 0; i < MAX_RANDOMMONSTER; i++)
mob_db[mob_class].summonper[i] = 0;
mob_db[mob_class].maxskill = 0;
@@ -4688,7 +4706,7 @@ static int mob_readdb (void)
mob_db[mob_class].base_exp = mob_gen_exp (&mob_db[mob_class]);
}
fclose_ (fp);
- printf ("read %s done\n", filename[i]);
+ printf ("read %s done\n", filename[j]);
}
return 0;
}
@@ -4936,7 +4954,7 @@ static int mob_readskilldb (void)
"around", MST_AROUND},};
int x;
- char *filename[] = { "db/mob_skill_db.txt", "db/mob_skill_db2.txt" };
+ const char *filename[] = { "db/mob_skill_db.txt", "db/mob_skill_db2.txt" };
for (x = 0; x < 2; x++)
{
diff --git a/src/map/mob.hpp b/src/map/mob.hpp
index 6161bab..19addf2 100644
--- a/src/map/mob.hpp
+++ b/src/map/mob.hpp
@@ -95,14 +95,14 @@ enum
int mobdb_searchname (const char *str);
int mobdb_checkid (const int id);
-int mob_once_spawn (struct map_session_data *sd, char *mapname,
+int mob_once_spawn (struct map_session_data *sd, const char *mapname,
int x, int y, const char *mobname, int class_, int amount,
const char *event);
-int mob_once_spawn_area (struct map_session_data *sd, char *mapname, int x0,
+int mob_once_spawn_area (struct map_session_data *sd, const char *mapname, int x0,
int y0, int x1, int y1, const char *mobname,
int class_, int amount, const char *event);
-int mob_spawn_guardian (struct map_session_data *sd, char *mapname, // Spawning Guardians [Valaris]
+int mob_spawn_guardian (struct map_session_data *sd, const char *mapname, // Spawning Guardians [Valaris]
int x, int y, const char *mobname, int class_, int amount, const char *event, int guardian); // Spawning Guardians [Valaris]
int mob_walktoxy (struct mob_data *md, int x, int y, int easy);
diff --git a/src/map/npc.cpp b/src/map/npc.cpp
index b2612f0..c25f585 100644
--- a/src/map/npc.cpp
+++ b/src/map/npc.cpp
@@ -58,6 +58,7 @@ static struct tm ev_tm_b; // 時計イベント用
* npc_enable_sub 有効時にOnTouchイベントを実行
*------------------------------------------
*/
+static
int npc_enable_sub (struct block_list *bl, va_list ap)
{
struct map_session_data *sd;
@@ -248,6 +249,7 @@ int npc_timer(int tid,unsigned int tick,int id,int data) // Added by RoVeRT
* npc_parse_script->strdb_foreachから呼ばれる
*------------------------------------------
*/
+static
int npc_event_export (void *key, void *data, va_list ap)
{
char *lname = (char *) key;
@@ -287,6 +289,7 @@ int npc_event_export (void *key, void *data, va_list ap)
* 全てのNPCのOn*イベント実行
*------------------------------------------
*/
+static
void npc_event_doall_sub (db_key_t key, db_val_t data, va_list ap)
{
const char *p = key.s;
@@ -324,6 +327,7 @@ int npc_event_doall_l (const char *name, int rid, int argc, argrec_t * args)
return c;
}
+static
void npc_event_do_sub (db_key_t key, db_val_t data, va_list ap)
{
const char *p = key.s;
@@ -367,6 +371,7 @@ int npc_event_do_l (const char *name, int rid, int argc, argrec_t * args)
* 時計イベント実行
*------------------------------------------
*/
+static
void npc_event_do_clock (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
time_t timer;
@@ -415,6 +420,7 @@ int npc_event_do_oninit (void)
* OnTimer NPC event - by RoVeRT
*------------------------------------------
*/
+static
int npc_addeventtimer (struct npc_data *nd, int tick, const char *name)
{
int i;
@@ -436,6 +442,7 @@ int npc_addeventtimer (struct npc_data *nd, int tick, const char *name)
return 0;
}
+static
int npc_deleventtimer (struct npc_data *nd, const char *name)
{
int i;
@@ -453,6 +460,7 @@ int npc_deleventtimer (struct npc_data *nd, const char *name)
return 0;
}
+static
int npc_cleareventtimer (struct npc_data *nd)
{
int i;
@@ -466,6 +474,7 @@ int npc_cleareventtimer (struct npc_data *nd)
return 0;
}
+static
void npc_do_ontimer_sub (db_key_t key, db_val_t data, va_list ap)
{
const char *p = key.s;
@@ -497,9 +506,9 @@ void npc_do_ontimer_sub (db_key_t key, db_val_t data, va_list ap)
}
}
-int npc_do_ontimer (int npc_id, struct map_session_data *sd, int option)
+int npc_do_ontimer (int id, struct map_session_data *sd, int option)
{
- strdb_foreach (ev_db, npc_do_ontimer_sub, &npc_id, sd, option);
+ strdb_foreach (ev_db, npc_do_ontimer_sub, &id, sd, option);
return 0;
}
@@ -508,6 +517,7 @@ int npc_do_ontimer (int npc_id, struct map_session_data *sd, int option)
* npc_parse_script->strdb_foreachから呼ばれる
*------------------------------------------
*/
+static
int npc_timerevent_import (void *key, void *data, va_list ap)
{
char *lname = (char *) key;
@@ -519,7 +529,8 @@ int npc_timerevent_import (void *key, void *data, va_list ap)
{
// タイマーイベント
struct npc_timerevent_list *te = nd->u.scr.timer_event;
- int j, i = nd->u.scr.timeramount;
+ int j;
+ i = nd->u.scr.timeramount;
RECREATE (te, struct npc_timerevent_list, i+1);
for (j = 0; j < i; j++)
{
@@ -542,6 +553,7 @@ int npc_timerevent_import (void *key, void *data, va_list ap)
* タイマーイベント実行
*------------------------------------------
*/
+static
void npc_timerevent (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
int next, t;
@@ -744,6 +756,7 @@ int npc_event (struct map_session_data *sd, const char *eventname,
return 0;
}
+static
void npc_command_sub (db_key_t key, db_val_t data, va_list ap)
{
const char *p = key.s;
@@ -762,7 +775,7 @@ void npc_command_sub (db_key_t key, db_val_t data, va_list ap)
}
}
-int npc_command (struct map_session_data *sd, char *npcname, char *command)
+int npc_command (struct map_session_data *sd, const char *npcname, const char *command)
{
strdb_foreach (ev_db, npc_command_sub, npcname, command);
@@ -1184,6 +1197,7 @@ int npc_selllist (struct map_session_data *sd, int n,
* 読み込むnpcファイルのクリア
*------------------------------------------
*/
+static
void npc_clearsrcfile (void)
{
struct npc_src_list *p = npc_src_first;
@@ -1256,7 +1270,7 @@ void npc_delsrcfile (char *name)
* warp行解析
*------------------------------------------
*/
-int npc_parse_warp (char *w1, char *w2, char *w3, char *w4)
+int npc_parse_warp (const char *w1, const char *w2, const char *w3, const char *w4)
{
int x, y, xs, ys, to_x, to_y, m;
int i, j;
@@ -1431,6 +1445,7 @@ static int npc_parse_shop (char *w1, char *w2, char *w3, char *w4)
* NPCのラベルデータコンバート
*------------------------------------------
*/
+static
void npc_convertlabel_db (db_key_t key, db_val_t data, va_list ap)
{
const char *lname = key.s;
@@ -1438,7 +1453,8 @@ void npc_convertlabel_db (db_key_t key, db_val_t data, va_list ap)
struct npc_data *nd;
struct npc_label_list *lst;
int num;
- char *p = strchr (lname, ':');
+ // this exists for evil purposes
+ char *p = const_cast<char *>(strchr (lname, ':'));
nullpo_retv (ap);
nullpo_retv (nd = va_arg (ap, struct npc_data *));
@@ -1456,6 +1472,7 @@ void npc_convertlabel_db (db_key_t key, db_val_t data, va_list ap)
realloc (lst, sizeof (struct npc_label_list) * (num + 1));
*p = '\0';
+ // temporarily NUL-terminate lname
strncpy (lst[num].name, lname, sizeof(lst[num].name)-1);
lst[num].name[sizeof(lst[num].name)-1] = '\0';
*p = ':';
@@ -1468,16 +1485,17 @@ void npc_convertlabel_db (db_key_t key, db_val_t data, va_list ap)
* script行解析
*------------------------------------------
*/
-static int npc_parse_script (char *w1, char *w2, char *w3, char *w4,
- char *first_line, FILE * fp, int *lines)
+static
+int npc_parse_script (char *w1, char *w2, char *w3, char *w4,
+ const char *first_line, FILE * fp, int *lines)
{
int x, y, dir = 0, m, xs = 0, ys = 0, npc_class = 0; // [Valaris] thanks to fov
char mapname[24];
- unsigned char *srcbuf = NULL, *script;
+ char *srcbuf = NULL;
+ const ScriptCode *script = NULL;
int srcsize = 65536;
int startline = 0;
- unsigned char line[1024];
- int i;
+ char line[1024];
struct npc_data *nd;
int evflag = 0;
struct dbt *label_db;
@@ -1517,6 +1535,7 @@ static int npc_parse_script (char *w1, char *w2, char *w3, char *w4,
srcbuf[0] = 0;
while (1)
{
+ int i;
for (i = strlen (srcbuf) - 1; i >= 0 && isspace (srcbuf[i]); i--);
if (i >= 0 && srcbuf[i] == '}')
break;
@@ -1705,7 +1724,7 @@ static int npc_parse_script (char *w1, char *w2, char *w3, char *w4,
//-----------------------------------------
// イベント用ラベルデータのエクスポート
- for (i = 0; i < nd->u.scr.label_list_num; i++)
+ for (int i = 0; i < nd->u.scr.label_list_num; i++)
{
char *lname = nd->u.scr.label_list[i].name;
int pos = nd->u.scr.label_list[i].pos;
@@ -1736,12 +1755,12 @@ static int npc_parse_script (char *w1, char *w2, char *w3, char *w4,
//-----------------------------------------
// ラベルデータからタイマーイベント取り込み
- for (i = 0; i < nd->u.scr.label_list_num; i++)
+ for (int i = 0; i < nd->u.scr.label_list_num; i++)
{
- int t = 0, k = 0;
+ int t = 0, n = 0;
char *lname = nd->u.scr.label_list[i].name;
int pos = nd->u.scr.label_list[i].pos;
- if (sscanf (lname, "OnTimer%d%n", &t, &k) == 1 && lname[k] == '\0')
+ if (sscanf (lname, "OnTimer%d%n", &t, &n) == 1 && lname[n] == '\0')
{
// タイマーイベント
struct npc_timerevent_list *te = nd->u.scr.timer_event;
@@ -1783,7 +1802,8 @@ static int npc_parse_script (char *w1, char *w2, char *w3, char *w4,
static int npc_parse_function (char *w1, char *w2, char *w3, char *w4,
char *first_line, FILE * fp, int *lines)
{
- char *srcbuf = NULL, *script;
+ char *srcbuf = NULL;
+ const ScriptCode *script;
int srcsize = 65536;
int startline = 0;
char line[1024];
@@ -1854,7 +1874,7 @@ static int npc_parse_function (char *w1, char *w2, char *w3, char *w4,
* mob行解析
*------------------------------------------
*/
-int npc_parse_mob (char *w1, char *w2, char *w3, char *w4)
+int npc_parse_mob (const char *w1, const char *w2, const char *w3, const char *w4)
{
int m, x, y, xs, ys, mob_class, num, delay1, delay2;
int i;
@@ -2125,7 +2145,7 @@ static void ev_db_final (db_key_t key, db_val_t data, va_list ap)
}
struct npc_data *npc_spawn_text (int m, int x, int y,
- int npc_class, char *name, char *message)
+ int npc_class, const char *name, const char *message)
{
struct npc_data *retval =
(struct npc_data *) calloc (1, sizeof (struct npc_data));
@@ -2171,7 +2191,7 @@ static void npc_free_internal (struct npc_data *nd)
{
if (nd->u.scr.script)
{
- free (nd->u.scr.script);
+ free (const_cast<ScriptCode *>(nd->u.scr.script));
nd->u.scr.script = NULL;
}
if (nd->u.scr.label_list)
@@ -2188,6 +2208,7 @@ static void npc_free_internal (struct npc_data *nd)
free (nd);
}
+static
void npc_propagate_update (struct npc_data *nd)
{
map_foreachinarea (npc_enable_sub,
@@ -2244,6 +2265,7 @@ int do_final_npc (void)
return 0;
}
+static
void ev_release (db_key_t key, db_val_t val)
{
free ((char*)key.s);
diff --git a/src/map/npc.hpp b/src/map/npc.hpp
index 6bb9370..6204316 100644
--- a/src/map/npc.hpp
+++ b/src/map/npc.hpp
@@ -12,7 +12,7 @@ int npc_event_dequeue (struct map_session_data *sd);
void npc_event_timer (timer_id, tick_t, custom_id_t, custom_data_t);
int npc_event (struct map_session_data *sd, const char *npcname, int);
int npc_timer_event (const char *eventname); // Added by RoVeRT
-int npc_command (struct map_session_data *sd, char *npcname, char *command);
+int npc_command (struct map_session_data *sd, const char *npcname, const char *command);
int npc_touch_areanpc (struct map_session_data *, int, int, int);
int npc_click (struct map_session_data *, int);
int npc_scriptcont (struct map_session_data *, int);
@@ -20,8 +20,8 @@ int npc_checknear (struct map_session_data *, int);
int npc_buysellsel (struct map_session_data *, int, int);
int npc_buylist (struct map_session_data *, int, unsigned short *);
int npc_selllist (struct map_session_data *, int, unsigned short *);
-int npc_parse_mob (char *w1, char *w2, char *w3, char *w4);
-int npc_parse_warp (char *w1, char *w2, char *w3, char *w4);
+int npc_parse_mob (const char *w1, const char *w2, const char *w3, const char *w4);
+int npc_parse_warp (const char *w1, const char *w2, const char *w3, const char *w4);
int npc_enable (const char *name, int flag);
struct npc_data *npc_name2id (const char *name);
@@ -33,7 +33,7 @@ int npc_get_new_npc_id (void);
*
* \param message The message to speak. If message is NULL, the NPC will not do anything at all.
*/
-struct npc_data *npc_spawn_text (int m, int x, int y, int class_, char *name, char *message); // message is strdup'd within
+struct npc_data *npc_spawn_text (int m, int x, int y, int class_, const char *name, const char *message); // message is strdup'd within
/**
* Uninstalls and frees an NPC
diff --git a/src/map/party.cpp b/src/map/party.cpp
index 1c4088a..95763b8 100644
--- a/src/map/party.cpp
+++ b/src/map/party.cpp
@@ -55,18 +55,19 @@ struct party *party_search (int party_id)
return (struct party *)numdb_search (party_db, party_id);
}
+static
void party_searchname_sub (db_key_t key, db_val_t data, va_list ap)
{
struct party *p = (struct party *) data, **dst;
- char *str;
- str = va_arg (ap, char *);
+ const char *str;
+ str = va_arg (ap, const char *);
dst = va_arg (ap, struct party **);
if (strcasecmp (p->name, str) == 0)
*dst = p;
}
// パーティ名検索
-struct party *party_searchname (char *str)
+struct party *party_searchname (const char *str)
{
struct party *p = NULL;
numdb_foreach (party_db, party_searchname_sub, str, &p);
@@ -74,7 +75,7 @@ struct party *party_searchname (char *str)
}
/* Process a party creation request. */
-int party_create (struct map_session_data *sd, char *name)
+int party_create (struct map_session_data *sd, const char *name)
{
char pname[24];
nullpo_retr (0, sd);
@@ -97,7 +98,7 @@ int party_create (struct map_session_data *sd, char *name)
}
/* Relay the result of a party creation request. */
-int party_created (int account_id, int fail, int party_id, char *name)
+int party_created (int account_id, int fail, int party_id, const char *name)
{
struct map_session_data *sd;
sd = map_id2sd (account_id);
@@ -138,6 +139,7 @@ int party_request_info (int party_id)
}
// 所属キャラの確認
+static
int party_check_member (struct party *p)
{
int i;
@@ -382,7 +384,7 @@ int party_member_added (int party_id, int account_id, int flag)
// パーティ除名要求
int party_removemember (struct map_session_data *sd, int account_id,
- char *name)
+ const char *name)
{
struct party *p;
int i;
@@ -433,7 +435,7 @@ int party_leave (struct map_session_data *sd)
}
// パーティメンバが脱退した
-int party_member_leaved (int party_id, int account_id, char *name)
+int party_member_leaved (int party_id, int account_id, const char *name)
{
struct map_session_data *sd = map_id2sd (account_id);
struct party *p = party_search (party_id);
@@ -512,7 +514,7 @@ int party_optionchanged (int party_id, int account_id, int exp, int item,
}
// パーティメンバの移動通知
-int party_recv_movemap (int party_id, int account_id, char *map, int online,
+int party_recv_movemap (int party_id, int account_id, const char *map, int online,
int lv)
{
struct party *p;
@@ -611,7 +613,7 @@ int party_send_logout (struct map_session_data *sd)
}
// パーティメッセージ送信
-int party_send_message (struct map_session_data *sd, char *mes, int len)
+int party_send_message (struct map_session_data *sd, const char *mes, int len)
{
if (sd->status.party_id == 0)
return 0;
@@ -621,7 +623,7 @@ int party_send_message (struct map_session_data *sd, char *mes, int len)
}
// パーティメッセージ受信
-int party_recv_message (int party_id, int account_id, char *mes, int len)
+int party_recv_message (int party_id, int account_id, const char *mes, int len)
{
struct party *p;
if ((p = party_search (party_id)) == NULL)
@@ -641,6 +643,7 @@ int party_check_conflict (struct map_session_data *sd)
}
// 位置やHP通知用
+static
void party_send_xyhp_timer_sub (db_key_t key, db_val_t data, va_list ap)
{
struct party *p = (struct party *) data;
diff --git a/src/map/party.hpp b/src/map/party.hpp
index e40609a..b4d462e 100644
--- a/src/map/party.hpp
+++ b/src/map/party.hpp
@@ -11,22 +11,22 @@ struct block_list;
void do_init_party (void);
void do_final_party (void);
struct party *party_search (int party_id);
-struct party *party_searchname (char *str);
+struct party *party_searchname (const char *str);
-int party_create (struct map_session_data *sd, char *name);
-int party_created (int account_id, int fail, int party_id, char *name);
+int party_create (struct map_session_data *sd, const char *name);
+int party_created (int account_id, int fail, int party_id, const char *name);
int party_request_info (int party_id);
int party_invite (struct map_session_data *sd, int account_id);
int party_member_added (int party_id, int account_id, int flag);
int party_leave (struct map_session_data *sd);
int party_removemember (struct map_session_data *sd, int account_id,
- char *name);
-int party_member_leaved (int party_id, int account_id, char *name);
+ const char *name);
+int party_member_leaved (int party_id, int account_id, const char *name);
int party_reply_invite (struct map_session_data *sd, int account_id,
int flag);
int party_recv_noinfo (int party_id);
int party_recv_info (struct party *sp);
-int party_recv_movemap (int party_id, int account_id, char *map, int online,
+int party_recv_movemap (int party_id, int account_id, const char *map, int online,
int lv);
int party_broken (int party_id);
int party_optionchanged (int party_id, int account_id, int exp, int item,
@@ -36,8 +36,8 @@ int party_changeoption (struct map_session_data *sd, int exp, int item);
int party_send_movemap (struct map_session_data *sd);
int party_send_logout (struct map_session_data *sd);
-int party_send_message (struct map_session_data *sd, char *mes, int len);
-int party_recv_message (int party_id, int account_id, char *mes, int len);
+int party_send_message (struct map_session_data *sd, const char *mes, int len);
+int party_recv_message (int party_id, int account_id, const char *mes, int len);
int party_check_conflict (struct map_session_data *sd);
diff --git a/src/map/pc.cpp b/src/map/pc.cpp
index 7d02545..256244a 100644
--- a/src/map/pc.cpp
+++ b/src/map/pc.cpp
@@ -64,6 +64,9 @@
pc_readglobalreg(sd, "MAGIC_EXPERIENCE") & 0xffff, \
(pc_readglobalreg(sd, "MAGIC_EXPERIENCE") >> 24) & 0xff)
+timer_id day_timer_tid;
+timer_id night_timer_tid;
+
static int max_weight_base[MAX_PC_CLASS];
static int hp_coefficient[MAX_PC_CLASS];
static int hp_coefficient2[MAX_PC_CLASS];
@@ -526,6 +529,7 @@ int pc_equippoint (struct map_session_data *sd, int n)
return ep;
}
+static
int pc_setinventorydata (struct map_session_data *sd)
{
int i, id;
@@ -540,6 +544,7 @@ int pc_setinventorydata (struct map_session_data *sd)
return 0;
}
+static
int pc_calcweapontype (struct map_session_data *sd)
{
nullpo_retr (0, sd);
@@ -566,6 +571,7 @@ int pc_calcweapontype (struct map_session_data *sd)
return 0;
}
+static
int pc_setequipindex (struct map_session_data *sd)
{
int i, j;
@@ -758,7 +764,6 @@ int pc_authok (int id, int login_id2, time_t connect_until_time,
struct party *p;
struct guild *g;
- int i;
unsigned long tick = gettick ();
struct sockaddr_in sai;
socklen_t sa_len = sizeof(struct sockaddr);
@@ -827,13 +832,13 @@ int pc_authok (int id, int login_id2, time_t connect_until_time,
sd->doridori_counter = 0;
sd->spiritball = 0;
- for (i = 0; i < MAX_SKILL_LEVEL; i++)
+ for (int i = 0; i < MAX_SKILL_LEVEL; i++)
sd->spirit_timer[i] = -1;
- for (i = 0; i < MAX_SKILLTIMERSKILL; i++)
+ for (int i = 0; i < MAX_SKILLTIMERSKILL; i++)
sd->skilltimerskill[i].timer = -1;
memset (&sd->dev, 0, sizeof (struct square));
- for (i = 0; i < 5; i++)
+ for (int i = 0; i < 5; i++)
{
sd->dev.val1[i] = 0;
sd->dev.val2[i] = 0;
@@ -847,7 +852,7 @@ int pc_authok (int id, int login_id2, time_t connect_until_time,
pc_checkitem (sd);
// ステータス異常の初期化
- for (i = 0; i < MAX_STATUSCHANGE; i++)
+ for (int i = 0; i < MAX_STATUSCHANGE; i++)
{
sd->sc_data[i].timer = -1;
sd->sc_data[i].val1 = sd->sc_data[i].val2 = sd->sc_data[i].val3 =
@@ -881,7 +886,7 @@ int pc_authok (int id, int login_id2, time_t connect_until_time,
// イベント関係の初期化
memset (sd->eventqueue, 0, sizeof (sd->eventqueue));
- for (i = 0; i < MAX_EVENTTIMER; i++)
+ for (int i = 0; i < MAX_EVENTTIMER; i++)
sd->eventtimer[i] = -1;
// 位置の設定
@@ -914,7 +919,7 @@ int pc_authok (int id, int login_id2, time_t connect_until_time,
if (night_flag == 1)
{
char tmpstr[1024];
- strcpy (tmpstr, msg_txt (500)); // Actually, it's the night...
+ strcpy (tmpstr, "Actually, it's the night...");
clif_wis_message (sd->fd, wisp_server_name, tmpstr,
strlen (tmpstr) + 1);
sd->opt2 |= STATE_BLIND;
@@ -942,8 +947,7 @@ int pc_authok (int id, int login_id2, time_t connect_until_time,
{
while (fgets (buf, sizeof (buf) - 1, fp) != NULL)
{
- int i;
- for (i = 0; buf[i]; i++)
+ for (int i = 0; buf[i]; i++)
{
if (buf[i] == '\r' || buf[i] == '\n')
{
@@ -969,13 +973,13 @@ int pc_authok (int id, int login_id2, time_t connect_until_time,
// Obtain IP address (if they are still connected)
if (!getpeername(sd->fd, (struct sockaddr *)&sai, &sa_len))
- sd->ip = sai.sin_addr.s_addr;
+ sd->ip = sai.sin_addr;
// message of the limited time of the account
if (connect_until_time != 0)
{ // don't display if it's unlimited or unknow value
char tmpstr[1024];
- strftime (tmpstr, sizeof (tmpstr) - 1, msg_txt (501), gmtime (&connect_until_time)); // "Your account time limit is: %d-%m-%Y %H:%M:%S."
+ strftime (tmpstr, sizeof (tmpstr) - 1, "Your account time limit is: %d-%m-%Y %H:%M:%S.", gmtime (&connect_until_time));
clif_wis_message (sd->fd, wisp_server_name, tmpstr,
strlen (tmpstr) + 1);
}
@@ -1020,6 +1024,7 @@ static int pc_calc_skillpoint (struct map_session_data *sd)
* 覚えられるスキルの計算
*------------------------------------------
*/
+static
int pc_calc_skilltree (struct map_session_data *sd)
{
int i, id = 0, flag;
@@ -1228,6 +1233,7 @@ int pc_checkweighticon (struct map_session_data *sd)
return 0;
}
+static
void pc_set_weapon_look (struct map_session_data *sd)
{
if (sd->attack_spell_override)
@@ -3652,6 +3658,7 @@ int pc_takeitem (struct map_session_data *sd, struct flooritem_data *fitem)
return 0;
}
+static
int pc_isUseitem (struct map_session_data *sd, int n)
{
struct item_data *item;
@@ -3915,6 +3922,7 @@ int pc_item_identify (struct map_session_data *sd, int idx)
* スティル品公開
*------------------------------------------
*/
+static
int pc_show_steal (struct block_list *bl, va_list ap)
{
struct map_session_data *sd;
@@ -4058,7 +4066,7 @@ int pc_steal_coin (struct map_session_data *sd, struct block_list *bl)
* PCの位置設定
*------------------------------------------
*/
-int pc_setpos (struct map_session_data *sd, char *mapname_org, int x, int y,
+int pc_setpos (struct map_session_data *sd, const char *mapname_org, int x, int y,
int clrtype)
{
char mapname[24];
@@ -4124,7 +4132,8 @@ int pc_setpos (struct map_session_data *sd, char *mapname_org, int x, int y,
{
if (sd->mapname[0])
{
- int ip, port;
+ struct in_addr ip;
+ int port;
if (map_mapname2ipport (mapname, &ip, &port) == 0)
{
skill_stop_dancing (&sd->bl, 1);
@@ -4803,6 +4812,7 @@ struct pc_base_job pc_calc_base_job (int b_class)
* PCの攻撃 (timer関数)
*------------------------------------------
*/
+static
void pc_attack_timer (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
struct map_session_data *sd;
@@ -5008,6 +5018,7 @@ int pc_stopattack (struct map_session_data *sd)
return 0;
}
+static
void pc_follow_timer (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
struct map_session_data *sd, *bl;
@@ -5133,6 +5144,7 @@ int pc_checkbaselevelup (struct map_session_data *sd)
* Compute the maximum for sd->skill_point, i.e., the max. number of skill points that can still be filled in
*----------------------------------------
*/
+static
int pc_skillpt_potential (struct map_session_data *sd)
{
int skill_id;
@@ -6928,7 +6940,7 @@ char *pc_readregstr (struct map_session_data *sd, int reg)
* script用文字列変数の値を設定
*------------------------------------------
*/
-int pc_setregstr (struct map_session_data *sd, int reg, char *str)
+int pc_setregstr (struct map_session_data *sd, int reg, const char *str)
{
int i;
@@ -6958,7 +6970,7 @@ int pc_setregstr (struct map_session_data *sd, int reg, char *str)
* script用グローバル変数の値を読む
*------------------------------------------
*/
-int pc_readglobalreg (struct map_session_data *sd, char *reg)
+int pc_readglobalreg (struct map_session_data *sd, const char *reg)
{
int i;
@@ -6977,7 +6989,7 @@ int pc_readglobalreg (struct map_session_data *sd, char *reg)
* script用グローバル変数の値を設定
*------------------------------------------
*/
-int pc_setglobalreg (struct map_session_data *sd, char *reg, int val)
+int pc_setglobalreg (struct map_session_data *sd, const char *reg, int val)
{
int i;
@@ -7029,7 +7041,7 @@ int pc_setglobalreg (struct map_session_data *sd, char *reg, int val)
* script用アカウント変数の値を読む
*------------------------------------------
*/
-int pc_readaccountreg (struct map_session_data *sd, char *reg)
+int pc_readaccountreg (struct map_session_data *sd, const char *reg)
{
int i;
@@ -7048,7 +7060,7 @@ int pc_readaccountreg (struct map_session_data *sd, char *reg)
* script用アカウント変数の値を設定
*------------------------------------------
*/
-int pc_setaccountreg (struct map_session_data *sd, char *reg, int val)
+int pc_setaccountreg (struct map_session_data *sd, const char *reg, int val)
{
int i;
@@ -7097,7 +7109,7 @@ int pc_setaccountreg (struct map_session_data *sd, char *reg, int val)
* script用アカウント変数2の値を読む
*------------------------------------------
*/
-int pc_readaccountreg2 (struct map_session_data *sd, char *reg)
+int pc_readaccountreg2 (struct map_session_data *sd, const char *reg)
{
int i;
@@ -7116,7 +7128,7 @@ int pc_readaccountreg2 (struct map_session_data *sd, char *reg)
* script用アカウント変数2の値を設定
*------------------------------------------
*/
-int pc_setaccountreg2 (struct map_session_data *sd, char *reg, int val)
+int pc_setaccountreg2 (struct map_session_data *sd, const char *reg, int val)
{
int i;
@@ -7192,6 +7204,7 @@ int pc_percentrefinery (struct map_session_data *sd, struct item *item)
* イベントタイマー処理
*------------------------------------------
*/
+static
void pc_eventtimer (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
struct map_session_data *sd = map_id2sd (id);
@@ -7746,6 +7759,7 @@ int pc_checkoversp (struct map_session_data *sd)
* PVP順位計算用(foreachinarea)
*------------------------------------------
*/
+static
int pc_calc_pvprank_sub (struct block_list *bl, va_list ap)
{
struct map_session_data *sd1, *sd2 = NULL;
@@ -8260,7 +8274,6 @@ static int pc_spirit_heal_sp (struct map_session_data *sd, int level)
* HP/SP 自然回復 各クライアント
*------------------------------------------
*/
-static int pc_itemheal_effect (struct map_session_data *sd, int hp, int sp);
static int
pc_quickregenerate_effect (struct quick_regeneration *quick_regen,
@@ -8363,6 +8376,7 @@ static int pc_natural_heal_sub (struct map_session_data *sd, va_list ap)
* HP/SP自然回復 (interval timer関数)
*------------------------------------------
*/
+static
void pc_natural_heal (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
natural_heal_tick = tick;
@@ -8377,7 +8391,7 @@ void pc_natural_heal (timer_id tid, tick_t tick, custom_id_t id, custom_data_t d
* セーブポイントの保存
*------------------------------------------
*/
-int pc_setsavepoint (struct map_session_data *sd, char *mapname, int x, int y)
+int pc_setsavepoint (struct map_session_data *sd, const char *mapname, int x, int y)
{
nullpo_retr (0, sd);
@@ -8440,6 +8454,7 @@ static int pc_autosave_sub (struct map_session_data *sd, va_list ap)
* 自動セーブ (timer関数)
*------------------------------------------
*/
+static
void pc_autosave (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
int interval;
@@ -8487,7 +8502,7 @@ void map_day_timer (timer_id tid, tick_t tick, custom_id_t id, custom_data_t dat
{ // if we want a day
if (night_flag != 0)
{
- strcpy (tmpstr, msg_txt (502)); // The day has arrived!
+ strcpy (tmpstr, "The day has arrived!");
night_flag = 0; // 0=day, 1=night [Yor]
for (i = 0; i < fd_max; i++)
{
@@ -8518,7 +8533,7 @@ void map_night_timer (timer_id tid, tick_t tick, custom_id_t id, custom_data_t d
{ // if we want a night
if (night_flag == 0)
{
- strcpy (tmpstr, msg_txt (503)); // The night has fallen...
+ strcpy (tmpstr, "The night has fallen...");
night_flag = 1; // 0=day, 1=night [Yor]
for (i = 0; i < fd_max; i++)
{
@@ -8559,6 +8574,7 @@ void pc_setstand (struct map_session_data *sd)
* refine_db.txt 精錬データテーブル
*------------------------------------------
*/
+static
int pc_readdb (void)
{
int i, j, k;
diff --git a/src/map/pc.hpp b/src/map/pc.hpp
index 7237957..cc433b8 100644
--- a/src/map/pc.hpp
+++ b/src/map/pc.hpp
@@ -56,8 +56,8 @@ int pc_can_reach (struct map_session_data *, int, int);
int pc_walktoxy (struct map_session_data *, int, int);
int pc_stop_walking (struct map_session_data *, int);
int pc_movepos (struct map_session_data *, int, int);
-int pc_setpos (struct map_session_data *, char *, int, int, int);
-int pc_setsavepoint (struct map_session_data *, char *, int, int);
+int pc_setpos (struct map_session_data *, const char *, int, int, int);
+int pc_setsavepoint (struct map_session_data *, const char *, int, int);
int pc_randomwarp (struct map_session_data *sd, int type);
int pc_memo (struct map_session_data *sd, int i);
@@ -132,7 +132,6 @@ int pc_resetskill (struct map_session_data *);
int pc_equipitem (struct map_session_data *, int, int);
int pc_unequipitem (struct map_session_data *, int, int);
int pc_unequipinvyitem (struct map_session_data *, int, int);
-int pc_checkitem (struct map_session_data *);
int pc_useitem (struct map_session_data *, int);
int pc_damage (struct block_list *, struct map_session_data *, int);
@@ -152,13 +151,13 @@ int pc_setparam (struct map_session_data *, int, int);
int pc_readreg (struct map_session_data *, int);
int pc_setreg (struct map_session_data *, int, int);
char *pc_readregstr (struct map_session_data *sd, int reg);
-int pc_setregstr (struct map_session_data *sd, int reg, char *str);
-int pc_readglobalreg (struct map_session_data *, char *);
-int pc_setglobalreg (struct map_session_data *, char *, int);
-int pc_readaccountreg (struct map_session_data *, char *);
-int pc_setaccountreg (struct map_session_data *, char *, int);
-int pc_readaccountreg2 (struct map_session_data *, char *);
-int pc_setaccountreg2 (struct map_session_data *, char *, int);
+int pc_setregstr (struct map_session_data *sd, int reg, const char *str);
+int pc_readglobalreg (struct map_session_data *, const char *);
+int pc_setglobalreg (struct map_session_data *, const char *, int);
+int pc_readaccountreg (struct map_session_data *, const char *);
+int pc_setaccountreg (struct map_session_data *, const char *, int);
+int pc_readaccountreg2 (struct map_session_data *, const char *);
+int pc_setaccountreg2 (struct map_session_data *, const char *, int);
int pc_percentrefinery (struct map_session_data *sd, struct item *item);
int pc_addeventtimer (struct map_session_data *sd, int tick,
@@ -202,8 +201,8 @@ enum
{ ADDITEM_EXIST, ADDITEM_NEW, ADDITEM_OVERAMOUNT };
// timer for night.day
-timer_id day_timer_tid;
-timer_id night_timer_tid;
+extern timer_id day_timer_tid;
+extern timer_id night_timer_tid;
void map_day_timer (timer_id, tick_t, custom_id_t, custom_data_t); // by [yor]
void map_night_timer (timer_id, tick_t, custom_id_t, custom_data_t); // by [yor]
diff --git a/src/map/script.cpp b/src/map/script.cpp
index 9e851bb..b5b9618 100644
--- a/src/map/script.cpp
+++ b/src/map/script.cpp
@@ -15,6 +15,8 @@
#include <time.h>
#include <math.h>
+#include <cassert>
+
#include "../common/socket.hpp"
#include "../common/timer.hpp"
#include "../common/lock.hpp"
@@ -46,14 +48,14 @@
#define SCRIPT_BLOCK_SIZE 256
enum
{ LABEL_NEXTLINE = 1, LABEL_START };
-static unsigned char *script_buf;
+static ScriptCode *script_buf;
static int script_pos, script_size;
char *str_buf;
int str_pos, str_size;
static struct str_data_t
{
- int type;
+ ScriptCode type;
int str;
int backpatch;
int label;
@@ -106,7 +108,7 @@ static int parse_cmd;
* ローカルプロトタイプ宣言 (必要な物のみ)
*------------------------------------------
*/
-unsigned char *parse_subexpr (unsigned char *, int);
+const char *parse_subexpr (const char *, int);
int buildin_mes (struct script_state *st);
int buildin_goto (struct script_state *st);
int buildin_callsub (struct script_state *st);
@@ -277,13 +279,10 @@ int buildin_get_unactivated_pool_skills (struct script_state *st); // [PO]
int buildin_activate_pool_skill (struct script_state *st); // [fate]
int buildin_deactivate_pool_skill (struct script_state *st); // [fate]
int buildin_check_pool_skill (struct script_state *st); // [fate]
-int buildin_getskilllist (struct script_state *st);
-int buildin_getskilllist (struct script_state *st);
int buildin_clearitem (struct script_state *st);
int buildin_classchange (struct script_state *st);
int buildin_misceffect (struct script_state *st);
int buildin_soundeffect (struct script_state *st);
-int buildin_setcastledata (struct script_state *st);
int buildin_mapwarp (struct script_state *st);
int buildin_inittimer (struct script_state *st);
int buildin_stoptimer (struct script_state *st);
@@ -324,8 +323,8 @@ int mapreg_setregstr (int num, const char *str);
struct
{
int (*func) (struct script_state *);
- char *name;
- char *arg;
+ const char *name;
+ const char *arg;
} buildin_func[] =
{
{
@@ -743,24 +742,27 @@ struct
{
NULL, NULL, NULL},};
-int buildin_message (struct script_state *st); // [MouseJstr]
-
-enum
+#ifdef RECENT_GCC
+enum class ScriptCode : uint8_t
{
- C_NOP, C_POS, C_INT, C_PARAM, C_FUNC, C_STR, C_CONSTSTR, C_ARG,
- C_NAME, C_EOL, C_RETINFO,
+ // tyoes and specials
+ NOP, POS, INT, PARAM, FUNC, STR, CONSTSTR, ARG,
+ NAME, EOL, RETINFO,
- C_LOR, C_LAND, C_LE, C_LT, C_GE, C_GT, C_EQ, C_NE, //operator
- C_XOR, C_OR, C_AND, C_ADD, C_SUB, C_MUL, C_DIV, C_MOD, C_NEG, C_LNOT,
- C_NOT, C_R_SHIFT, C_L_SHIFT
+ // unary and binary operators
+ LOR, LAND, LE, LT, GE, GT, EQ, NE,
+ XOR, OR, AND, ADD, SUB, MUL, DIV, MOD, NEG, LNOT,
+ NOT, R_SHIFT, L_SHIFT
};
+#endif
/*==========================================
* 文字列のハッシュを計算
*------------------------------------------
*/
-static int calc_hash (const unsigned char *p)
+static int calc_hash (const char *s)
{
+ const unsigned char *p = (const unsigned char *)s;
int h = 0;
while (*p)
{
@@ -775,7 +777,7 @@ static int calc_hash (const unsigned char *p)
*------------------------------------------
*/
// 既存のであれば番号、無ければ-1
-static int search_str (const unsigned char *p)
+static int search_str (const char *p)
{
int i;
i = str_hash[calc_hash (p)];
@@ -795,7 +797,7 @@ static int search_str (const unsigned char *p)
*------------------------------------------
*/
// 既存のであれば番号、無ければ登録して新規番号
-static int add_str (const unsigned char *p)
+static int add_str (const char *p)
{
int i;
char *lowcase;
@@ -843,7 +845,7 @@ static int add_str (const unsigned char *p)
memset (str_buf + (str_size - 256), '\0', 256);
}
strcpy (str_buf + str_pos, p);
- str_data[str_num].type = C_NOP;
+ str_data[str_num].type = ScriptCode::NOP;
str_data[str_num].str = str_pos;
str_data[str_num].next = 0;
str_data[str_num].func = NULL;
@@ -862,7 +864,7 @@ static void check_script_buf (int size)
if (script_pos + size >= script_size)
{
script_size += SCRIPT_BLOCK_SIZE;
- script_buf = (char *) realloc (script_buf, script_size);
+ script_buf = (ScriptCode *) realloc (script_buf, script_size);
memset (script_buf + script_size - SCRIPT_BLOCK_SIZE, '\0',
SCRIPT_BLOCK_SIZE);
}
@@ -872,7 +874,8 @@ static void check_script_buf (int size)
* スクリプトバッファに1バイト書き込む
*------------------------------------------
*/
-static void add_scriptb (int a)
+static
+void add_scriptc (ScriptCode a)
{
check_script_buf (1);
script_buf[script_pos++] = a;
@@ -882,14 +885,10 @@ static void add_scriptb (int a)
* スクリプトバッファにデータタイプを書き込む
*------------------------------------------
*/
-static void add_scriptc (int a)
+static
+void add_scriptb (uint8_t a)
{
- while (a >= 0x40)
- {
- add_scriptb ((a & 0x3f) | 0x40);
- a = (a - 0x40) >> 6;
- }
- add_scriptb (a & 0x3f);
+ add_scriptc(static_cast<ScriptCode>(a));
}
/*==========================================
@@ -917,29 +916,29 @@ static void add_scriptl (int l)
switch (str_data[l].type)
{
- case C_POS:
- add_scriptc (C_POS);
- add_scriptb (str_data[l].label);
- add_scriptb (str_data[l].label >> 8);
- add_scriptb (str_data[l].label >> 16);
+ case ScriptCode::POS:
+ add_scriptc (ScriptCode::POS);
+ add_scriptb ({uint8_t(str_data[l].label)});
+ add_scriptb ({uint8_t(str_data[l].label >> 8)});
+ add_scriptb ({uint8_t(str_data[l].label >> 16)});
break;
- case C_NOP:
+ case ScriptCode::NOP:
// ラベルの可能性があるのでbackpatch用データ埋め込み
- add_scriptc (C_NAME);
+ add_scriptc (ScriptCode::NAME);
str_data[l].backpatch = script_pos;
- add_scriptb (backpatch);
- add_scriptb (backpatch >> 8);
- add_scriptb (backpatch >> 16);
+ add_scriptb ({uint8_t(backpatch)});
+ add_scriptb ({uint8_t(backpatch >> 8)});
+ add_scriptb ({uint8_t(backpatch >> 16)});
break;
- case C_INT:
+ case ScriptCode::INT:
add_scripti (str_data[l].val);
break;
default:
// もう他の用途と確定してるので数字をそのまま
- add_scriptc (C_NAME);
- add_scriptb (l);
- add_scriptb (l >> 8);
- add_scriptb (l >> 16);
+ add_scriptc (ScriptCode::NAME);
+ add_scriptb ({uint8_t(l)});
+ add_scriptb ({uint8_t(l >> 8)});
+ add_scriptb ({uint8_t(l >> 16)});
break;
}
}
@@ -948,19 +947,20 @@ static void add_scriptl (int l)
* ラベルを解決する
*------------------------------------------
*/
-void set_label (int l, int pos)
+static
+void set_label (int l, int pos_)
{
int i, next;
- str_data[l].type = C_POS;
- str_data[l].label = pos;
+ str_data[l].type = ScriptCode::POS;
+ str_data[l].label = pos_;
for (i = str_data[l].backpatch; i >= 0 && i != 0x00ffffff;)
{
next = (*(int *) (script_buf + i)) & 0x00ffffff;
- script_buf[i - 1] = C_POS;
- script_buf[i] = pos;
- script_buf[i + 1] = pos >> 8;
- script_buf[i + 2] = pos >> 16;
+ script_buf[i - 1] = ScriptCode::POS;
+ script_buf[i] = static_cast<ScriptCode>(pos_);
+ script_buf[i + 1] = static_cast<ScriptCode>(pos_ >> 8);
+ script_buf[i + 2] = static_cast<ScriptCode>(pos_ >> 16);
i = next;
}
}
@@ -969,7 +969,7 @@ void set_label (int l, int pos)
* スペース/コメント読み飛ばし
*------------------------------------------
*/
-static unsigned char *skip_space (unsigned char *p)
+static const char *skip_space (const char *p)
{
while (1)
{
@@ -998,7 +998,8 @@ static unsigned char *skip_space (unsigned char *p)
* 1単語スキップ
*------------------------------------------
*/
-static unsigned char *skip_word (unsigned char *p)
+static
+const char *skip_word (const char *p)
{
// prefix
if (*p == '$')
@@ -1012,13 +1013,8 @@ static unsigned char *skip_word (unsigned char *p)
if (*p == 'l')
p++; // 一時的変数用(like weiss)
- while (isalnum (*p) || *p == '_' || *p >= 0x81)
- if (*p >= 0x81 && p[1])
- {
- p += 2;
- }
- else
- p++;
+ while (isalnum (*p) || *p == '_')
+ p++;
// postfix
if (*p == '$')
@@ -1027,35 +1023,36 @@ static unsigned char *skip_word (unsigned char *p)
return p;
}
-static unsigned char *startptr;
+static const char *startptr;
static int startline;
/*==========================================
* エラーメッセージ出力
*------------------------------------------
*/
-static void disp_error_message (const char *mes, const unsigned char *pos)
+static void disp_error_message (const char *mes, const char *pos_)
{
- int line, c = 0, i;
- unsigned char *p, *linestart, *lineend;
+ int line;
+ const char *p;
for (line = startline, p = startptr; p && *p; line++)
{
- linestart = p;
- lineend = strchr (p, '\n');
+ const char *linestart = p;
+ char *lineend = const_cast<char *>(strchr (p, '\n'));
+ char c;
if (lineend)
{
c = *lineend;
*lineend = 0;
}
- if (lineend == NULL || pos < lineend)
+ if (lineend == NULL || pos_ < lineend)
{
printf ("%s line %d : ", mes, line);
- for (i = 0;
+ for (int i = 0;
(linestart[i] != '\r') && (linestart[i] != '\n')
&& linestart[i]; i++)
{
- if (linestart + i != pos)
+ if (linestart + i != pos_)
printf ("%c", linestart[i]);
else
printf ("\'%c\'", linestart[i]);
@@ -1074,7 +1071,8 @@ static void disp_error_message (const char *mes, const unsigned char *pos)
* 項の解析
*------------------------------------------
*/
-unsigned char *parse_simpleexpr (unsigned char *p)
+static
+const char *parse_simpleexpr (const char *p)
{
int i;
p = skip_space (p);
@@ -1108,7 +1106,7 @@ unsigned char *parse_simpleexpr (unsigned char *p)
}
else if (*p == '"')
{
- add_scriptc (C_STR);
+ add_scriptc (ScriptCode::STR);
p++;
while (*p && *p != '"')
{
@@ -1131,16 +1129,15 @@ unsigned char *parse_simpleexpr (unsigned char *p)
}
else
{
- int c, l;
- char *p2;
+ int l;
// label , register , function etc
if (skip_word (p) == p)
{
disp_error_message ("unexpected character", p);
exit (1);
}
- p2 = skip_word (p);
- c = *p2;
+ char *p2 = const_cast<char *>(skip_word(p));
+ char c = *p2;
*p2 = 0; // 名前をadd_strする
l = add_str (p);
@@ -1159,11 +1156,11 @@ unsigned char *parse_simpleexpr (unsigned char *p)
*p2 = c;
p = p2;
- if (str_data[l].type != C_FUNC && c == '[')
+ if (str_data[l].type != ScriptCode::FUNC && c == '[')
{
// array(name[i] => getelementofarray(name,i) )
add_scriptl (search_str ("getelementofarray"));
- add_scriptc (C_ARG);
+ add_scriptc (ScriptCode::ARG);
add_scriptl (l);
p = parse_subexpr (p + 1, -1);
p = skip_space (p);
@@ -1172,7 +1169,7 @@ unsigned char *parse_simpleexpr (unsigned char *p)
disp_error_message ("unmatch ']'", p);
exit (1);
}
- add_scriptc (C_FUNC);
+ add_scriptc (ScriptCode::FUNC);
}
else
add_scriptl (l);
@@ -1190,10 +1187,10 @@ unsigned char *parse_simpleexpr (unsigned char *p)
* 式の解析
*------------------------------------------
*/
-unsigned char *parse_subexpr (unsigned char *p, int limit)
+const char *parse_subexpr (const char *p, int limit)
{
- int op, opl, len;
- char *tmpp;
+ ScriptCode op;
+ int opl, len;
#ifdef DEBUG_FUNCIN
if (battle_config.etc_log)
@@ -1203,7 +1200,7 @@ unsigned char *parse_subexpr (unsigned char *p, int limit)
if (*p == '-')
{
- tmpp = skip_space (p + 1);
+ const char *tmpp = skip_space (p + 1);
if (*tmpp == ';' || *tmpp == ',')
{
add_scriptl (LABEL_NEXTLINE);
@@ -1211,9 +1208,9 @@ unsigned char *parse_subexpr (unsigned char *p, int limit)
return p;
}
}
- tmpp = p;
- if ((op = C_NEG, *p == '-') || (op = C_LNOT, *p == '!')
- || (op = C_NOT, *p == '~'))
+ const char *tmpp = p;
+ if ((op = ScriptCode::NEG, *p == '-') || (op = ScriptCode::LNOT, *p == '!')
+ || (op = ScriptCode::NOT, *p == '~'))
{
p = parse_subexpr (p + 1, 100);
add_scriptc (op);
@@ -1221,39 +1218,39 @@ unsigned char *parse_subexpr (unsigned char *p, int limit)
else
p = parse_simpleexpr (p);
p = skip_space (p);
- while (((op = C_ADD, opl = 6, len = 1, *p == '+') ||
- (op = C_SUB, opl = 6, len = 1, *p == '-') ||
- (op = C_MUL, opl = 7, len = 1, *p == '*') ||
- (op = C_DIV, opl = 7, len = 1, *p == '/') ||
- (op = C_MOD, opl = 7, len = 1, *p == '%') ||
- (op = C_FUNC, opl = 8, len = 1, *p == '(') ||
- (op = C_LAND, opl = 1, len = 2, *p == '&' && p[1] == '&') ||
- (op = C_AND, opl = 5, len = 1, *p == '&') ||
- (op = C_LOR, opl = 0, len = 2, *p == '|' && p[1] == '|') ||
- (op = C_OR, opl = 4, len = 1, *p == '|') ||
- (op = C_XOR, opl = 3, len = 1, *p == '^') ||
- (op = C_EQ, opl = 2, len = 2, *p == '=' && p[1] == '=') ||
- (op = C_NE, opl = 2, len = 2, *p == '!' && p[1] == '=') ||
- (op = C_R_SHIFT, opl = 5, len = 2, *p == '>' && p[1] == '>') ||
- (op = C_GE, opl = 2, len = 2, *p == '>' && p[1] == '=') ||
- (op = C_GT, opl = 2, len = 1, *p == '>') ||
- (op = C_L_SHIFT, opl = 5, len = 2, *p == '<' && p[1] == '<') ||
- (op = C_LE, opl = 2, len = 2, *p == '<' && p[1] == '=') ||
- (op = C_LT, opl = 2, len = 1, *p == '<')) && opl > limit)
+ while (((op = ScriptCode::ADD, opl = 6, len = 1, *p == '+') ||
+ (op = ScriptCode::SUB, opl = 6, len = 1, *p == '-') ||
+ (op = ScriptCode::MUL, opl = 7, len = 1, *p == '*') ||
+ (op = ScriptCode::DIV, opl = 7, len = 1, *p == '/') ||
+ (op = ScriptCode::MOD, opl = 7, len = 1, *p == '%') ||
+ (op = ScriptCode::FUNC, opl = 8, len = 1, *p == '(') ||
+ (op = ScriptCode::LAND, opl = 1, len = 2, *p == '&' && p[1] == '&') ||
+ (op = ScriptCode::AND, opl = 5, len = 1, *p == '&') ||
+ (op = ScriptCode::LOR, opl = 0, len = 2, *p == '|' && p[1] == '|') ||
+ (op = ScriptCode::OR, opl = 4, len = 1, *p == '|') ||
+ (op = ScriptCode::XOR, opl = 3, len = 1, *p == '^') ||
+ (op = ScriptCode::EQ, opl = 2, len = 2, *p == '=' && p[1] == '=') ||
+ (op = ScriptCode::NE, opl = 2, len = 2, *p == '!' && p[1] == '=') ||
+ (op = ScriptCode::R_SHIFT, opl = 5, len = 2, *p == '>' && p[1] == '>') ||
+ (op = ScriptCode::GE, opl = 2, len = 2, *p == '>' && p[1] == '=') ||
+ (op = ScriptCode::GT, opl = 2, len = 1, *p == '>') ||
+ (op = ScriptCode::L_SHIFT, opl = 5, len = 2, *p == '<' && p[1] == '<') ||
+ (op = ScriptCode::LE, opl = 2, len = 2, *p == '<' && p[1] == '=') ||
+ (op = ScriptCode::LT, opl = 2, len = 1, *p == '<')) && opl > limit)
{
p += len;
- if (op == C_FUNC)
+ if (op == ScriptCode::FUNC)
{
int i = 0, func = parse_cmd;
const char *plist[128];
- if (str_data[func].type != C_FUNC)
+ if (str_data[func].type != ScriptCode::FUNC)
{
disp_error_message ("expect function", tmpp);
exit (0);
}
- add_scriptc (C_ARG);
+ add_scriptc (ScriptCode::ARG);
while (*p && *p != ')' && i < 128)
{
plist[i] = p;
@@ -1276,7 +1273,7 @@ unsigned char *parse_subexpr (unsigned char *p, int limit)
exit (1);
}
- if (str_data[func].type == C_FUNC
+ if (str_data[func].type == ScriptCode::FUNC
&& script_config.warn_func_mismatch_paramnum)
{
const char *arg = buildin_func[str_data[func].val].arg;
@@ -1291,7 +1288,7 @@ unsigned char *parse_subexpr (unsigned char *p, int limit)
}
}
}
- else // not op == C_FUNC
+ else // not op == ScriptCode::FUNC
{
p = parse_subexpr (p, opl);
}
@@ -1309,7 +1306,8 @@ unsigned char *parse_subexpr (unsigned char *p, int limit)
* 式の評価
*------------------------------------------
*/
-unsigned char *parse_expr (unsigned char *p)
+static
+const char *parse_expr (const char *p)
{
#ifdef DEBUG_FUNCIN
if (battle_config.etc_log)
@@ -1338,11 +1336,11 @@ unsigned char *parse_expr (unsigned char *p)
* 行の解析
*------------------------------------------
*/
-unsigned char *parse_line (unsigned char *p)
+static
+const char *parse_line (const char *p)
{
int i = 0, cmd;
const char *plist[128];
- char *p2;
p = skip_space (p);
if (*p == ';')
@@ -1351,18 +1349,18 @@ unsigned char *parse_line (unsigned char *p)
parse_cmd_if = 0; // warn_cmd_no_commaのために必要
// 最初は関数名
- p2 = p;
+ const char *p2 = p;
p = parse_simpleexpr (p);
p = skip_space (p);
cmd = parse_cmd;
- if (str_data[cmd].type != C_FUNC)
+ if (str_data[cmd].type != ScriptCode::FUNC)
{
disp_error_message ("expect command", p2);
// exit(0);
}
- add_scriptc (C_ARG);
+ add_scriptc (ScriptCode::ARG);
while (p && *p && *p != ';' && i < 128)
{
plist[i] = p;
@@ -1386,9 +1384,9 @@ unsigned char *parse_line (unsigned char *p)
disp_error_message ("need ';'", p);
exit (1);
}
- add_scriptc (C_FUNC);
+ add_scriptc (ScriptCode::FUNC);
- if (str_data[cmd].type == C_FUNC
+ if (str_data[cmd].type == ScriptCode::FUNC
&& script_config.warn_cmd_mismatch_paramnum)
{
const char *arg = buildin_func[str_data[cmd].val].arg;
@@ -1416,7 +1414,7 @@ static void add_buildin_func (void)
for (i = 0; buildin_func[i].func; i++)
{
n = add_str (buildin_func[i].name);
- str_data[n].type = C_FUNC;
+ str_data[n].type = ScriptCode::FUNC;
str_data[n].val = i;
str_data[n].func = buildin_func[i].func;
}
@@ -1450,9 +1448,9 @@ static void read_constdb (void)
name[i] = tolower (name[i]);
n = add_str (name);
if (type == 0)
- str_data[n].type = C_INT;
+ str_data[n].type = ScriptCode::INT;
else
- str_data[n].type = C_PARAM;
+ str_data[n].type = ScriptCode::PARAM;
str_data[n].val = val;
}
}
@@ -1463,9 +1461,9 @@ static void read_constdb (void)
* スクリプトの解析
*------------------------------------------
*/
-unsigned char *parse_script (unsigned char *src, int line)
+const ScriptCode *parse_script (const char *src, int line)
{
- unsigned char *p, *tmpp;
+ const char *p;
int i;
static int first = 1;
@@ -1475,17 +1473,17 @@ unsigned char *parse_script (unsigned char *src, int line)
read_constdb ();
}
first = 0;
- script_buf = (unsigned char *) calloc (SCRIPT_BLOCK_SIZE, 1);
+ script_buf = (ScriptCode *) calloc (SCRIPT_BLOCK_SIZE, 1);
script_pos = 0;
script_size = SCRIPT_BLOCK_SIZE;
- str_data[LABEL_NEXTLINE].type = C_NOP;
+ str_data[LABEL_NEXTLINE].type = ScriptCode::NOP;
str_data[LABEL_NEXTLINE].backpatch = -1;
str_data[LABEL_NEXTLINE].label = -1;
for (i = LABEL_START; i < str_num; i++)
{
- if (str_data[i].type == C_POS || str_data[i].type == C_NAME)
+ if (str_data[i].type == ScriptCode::POS || str_data[i].type == ScriptCode::NAME)
{
- str_data[i].type = C_NOP;
+ str_data[i].type = ScriptCode::NOP;
str_data[i].backpatch = -1;
str_data[i].label = -1;
}
@@ -1511,23 +1509,21 @@ unsigned char *parse_script (unsigned char *src, int line)
{
p = skip_space (p);
// labelだけ特殊処理
- tmpp = skip_space (skip_word (p));
- if (*tmpp == ':')
+ if (*skip_space (skip_word (p)) == ':')
{
- int l, c;
-
- c = *skip_word (p);
- *skip_word (p) = 0;
- l = add_str (p);
+ char *tmpp = const_cast<char *>(skip_word(p));
+ char c = *tmpp;
+ *tmpp = '\0';
+ int l = add_str (p);
if (str_data[l].label != -1)
{
- *skip_word (p) = c;
+ *tmpp = c;
disp_error_message ("dup label ", p);
exit (1);
}
set_label (l, script_pos);
strdb_insert (scriptlabel_db, (const char*)p, script_pos); // 外部用label db登録
- *skip_word (p) = c;
+ *tmpp = c;
p = tmpp + 1;
continue;
}
@@ -1535,33 +1531,33 @@ unsigned char *parse_script (unsigned char *src, int line)
// 他は全部一緒くた
p = parse_line (p);
p = skip_space (p);
- add_scriptc (C_EOL);
+ add_scriptc (ScriptCode::EOL);
set_label (LABEL_NEXTLINE, script_pos);
- str_data[LABEL_NEXTLINE].type = C_NOP;
+ str_data[LABEL_NEXTLINE].type = ScriptCode::NOP;
str_data[LABEL_NEXTLINE].backpatch = -1;
str_data[LABEL_NEXTLINE].label = -1;
}
- add_scriptc (C_NOP);
+ add_scriptc (ScriptCode::NOP);
script_size = script_pos;
- script_buf = (char *) realloc (script_buf, script_pos + 1);
+ script_buf = (ScriptCode *) realloc (script_buf, script_pos + 1);
// 未解決のラベルを解決
for (i = LABEL_START; i < str_num; i++)
{
- if (str_data[i].type == C_NOP)
+ if (str_data[i].type == ScriptCode::NOP)
{
int j, next;
- str_data[i].type = C_NAME;
+ str_data[i].type = ScriptCode::NAME;
str_data[i].label = i;
for (j = str_data[i].backpatch; j >= 0 && j != 0x00ffffff;)
{
next = (*(int *) (script_buf + j)) & 0x00ffffff;
- script_buf[j] = i;
- script_buf[j + 1] = i >> 8;
- script_buf[j + 2] = i >> 16;
+ script_buf[j] = static_cast<ScriptCode>(i);
+ script_buf[j + 1] = static_cast<ScriptCode>(i >> 8);
+ script_buf[j + 2] = static_cast<ScriptCode>(i >> 16);
j = next;
}
}
@@ -1592,6 +1588,7 @@ enum
* ridからsdへの解決
*------------------------------------------
*/
+static
struct map_session_data *script_rid2sd (struct script_state *st)
{
struct map_session_data *sd = map_id2sd (st->rid);
@@ -1606,10 +1603,11 @@ struct map_session_data *script_rid2sd (struct script_state *st)
* 変数の読み取り
*------------------------------------------
*/
+static
int get_val (struct script_state *st, struct script_data *data)
{
struct map_session_data *sd = NULL;
- if (data->type == C_NAME)
+ if (data->type == ScriptCode::NAME)
{
char *name = str_buf + str_data[data->u.num & 0x00ffffff].str;
char prefix = *name;
@@ -1623,7 +1621,7 @@ int get_val (struct script_state *st, struct script_data *data)
if (postfix == '$')
{
- data->type = C_CONSTSTR;
+ data->type = ScriptCode::CONSTSTR;
if (prefix == '@' || prefix == 'l')
{
if (sd)
@@ -1646,12 +1644,12 @@ int get_val (struct script_state *st, struct script_data *data)
else
{
- data->type = C_INT;
- if (str_data[data->u.num & 0x00ffffff].type == C_INT)
+ data->type = ScriptCode::INT;
+ if (str_data[data->u.num & 0x00ffffff].type == ScriptCode::INT)
{
data->u.num = str_data[data->u.num & 0x00ffffff].val;
}
- else if (str_data[data->u.num & 0x00ffffff].type == C_PARAM)
+ else if (str_data[data->u.num & 0x00ffffff].type == ScriptCode::PARAM)
{
if (sd)
data->u.num =
@@ -1694,30 +1692,29 @@ int get_val (struct script_state *st, struct script_data *data)
* 変数の読み取り2
*------------------------------------------
*/
-void *get_val2 (struct script_state *st, int num)
+static
+struct script_data get_val2 (struct script_state *st, int num)
{
struct script_data dat;
- dat.type = C_NAME;
+ dat.type = ScriptCode::NAME;
dat.u.num = num;
get_val (st, &dat);
- if (dat.type == C_INT)
- return (void *) dat.u.num;
- else
- return (void *) dat.u.str;
+ return dat;
}
/*==========================================
* 変数設定用
*------------------------------------------
*/
-static int set_reg (struct map_session_data *sd, int num, char *name, void *v)
+static
+int set_reg (struct map_session_data *sd, int num, const char *name, struct script_data vd)
{
char prefix = *name;
char postfix = name[strlen (name) - 1];
if (postfix == '$')
{
- char *str = (char *) v;
+ const char *str = vd.u.str;
if (prefix == '@' || prefix == 'l')
{
pc_setregstr (sd, num, str);
@@ -1734,8 +1731,8 @@ static int set_reg (struct map_session_data *sd, int num, char *name, void *v)
else
{
// 数値
- int val = (int) v;
- if (str_data[num & 0x00ffffff].type == C_PARAM)
+ int val = vd.u.num;
+ if (str_data[num & 0x00ffffff].type == ScriptCode::PARAM)
{
pc_setparam (sd, str_data[num & 0x00ffffff].val, val);
}
@@ -1762,26 +1759,43 @@ static int set_reg (struct map_session_data *sd, int num, char *name, void *v)
return 0;
}
+static
+int set_reg (struct map_session_data *sd, int num, const char *name, int id)
+{
+ struct script_data vd;
+ vd.u.num = id;
+ return set_reg(sd, num, name, vd);
+}
+
+static
+int set_reg (struct map_session_data *sd, int num, const char *name, const char *zd)
+{
+ struct script_data vd;
+ vd.u.str = zd;
+ return set_reg(sd, num, name, vd);
+}
+
/*==========================================
* 文字列への変換
*------------------------------------------
*/
-char *conv_str (struct script_state *st, struct script_data *data)
+static
+const char *conv_str (struct script_state *st, struct script_data *data)
{
get_val (st, data);
- if (data->type == C_INT)
+ if (data->type == ScriptCode::INT)
{
char *buf;
buf = (char *) calloc (16, 1);
sprintf (buf, "%d", data->u.num);
- data->type = C_STR;
+ data->type = ScriptCode::STR;
data->u.str = buf;
#if 1
}
- else if (data->type == C_NAME)
+ else if (data->type == ScriptCode::NAME)
{
// テンポラリ。本来無いはず
- data->type = C_CONSTSTR;
+ data->type = ScriptCode::CONSTSTR;
data->u.str = str_buf + str_data[data->u.num].str;
#endif
}
@@ -1792,17 +1806,17 @@ char *conv_str (struct script_state *st, struct script_data *data)
* 数値へ変換
*------------------------------------------
*/
+static
int conv_num (struct script_state *st, struct script_data *data)
{
- char *p;
get_val (st, data);
- if (data->type == C_STR || data->type == C_CONSTSTR)
+ if (data->type == ScriptCode::STR || data->type == ScriptCode::CONSTSTR)
{
- p = data->u.str;
+ const char *p = data->u.str;
data->u.num = atoi (p);
- if (data->type == C_STR)
- free (p);
- data->type = C_INT;
+ if (data->type == ScriptCode::STR)
+ free(const_cast<char *>(p));
+ data->type = ScriptCode::INT;
}
return data->u.num;
}
@@ -1811,7 +1825,7 @@ int conv_num (struct script_state *st, struct script_data *data)
* スタックへ数値をプッシュ
*------------------------------------------
*/
-void push_val (struct script_stack *stack, int type, int val)
+void push_val (struct script_stack *stack, ScriptCode type, int val)
{
if (stack->sp >= stack->sp_max)
{
@@ -1833,7 +1847,8 @@ void push_val (struct script_stack *stack, int type, int val)
* スタックへ文字列をプッシュ
*------------------------------------------
*/
-void push_str (struct script_stack *stack, int type, unsigned char *str)
+static
+void push_str (struct script_stack *stack, ScriptCode type, const char *str)
{
if (stack->sp >= stack->sp_max)
{
@@ -1855,19 +1870,20 @@ void push_str (struct script_stack *stack, int type, unsigned char *str)
* スタックへ複製をプッシュ
*------------------------------------------
*/
-void push_copy (struct script_stack *stack, int pos)
+static
+void push_copy (struct script_stack *stack, int pos_)
{
- switch (stack->stack_data[pos].type)
+ switch (stack->stack_data[pos_].type)
{
- case C_CONSTSTR:
- push_str (stack, C_CONSTSTR, stack->stack_data[pos].u.str);
+ case ScriptCode::CONSTSTR:
+ push_str (stack, ScriptCode::CONSTSTR, stack->stack_data[pos_].u.str);
break;
- case C_STR:
- push_str (stack, C_STR, strdup (stack->stack_data[pos].u.str));
+ case ScriptCode::STR:
+ push_str (stack, ScriptCode::STR, strdup (stack->stack_data[pos_].u.str));
break;
default:
- push_val (stack, stack->stack_data[pos].type,
- stack->stack_data[pos].u.num);
+ push_val (stack, stack->stack_data[pos_].type,
+ stack->stack_data[pos_].u.num);
break;
}
}
@@ -1876,14 +1892,15 @@ void push_copy (struct script_stack *stack, int pos)
* スタックからポップ
*------------------------------------------
*/
+static
void pop_stack (struct script_stack *stack, int start, int end)
{
int i;
for (i = start; i < end; i++)
{
- if (stack->stack_data[i].type == C_STR)
+ if (stack->stack_data[i].type == ScriptCode::STR)
{
- free (stack->stack_data[i].u.str);
+ free (const_cast<char *>(stack->stack_data[i].u.str));
}
}
if (stack->sp > end)
@@ -1915,17 +1932,14 @@ int buildin_mes (struct script_state *st)
*/
int buildin_goto (struct script_state *st)
{
- int pos;
-
- if (st->stack->stack_data[st->start + 2].type != C_POS)
+ if (st->stack->stack_data[st->start + 2].type != ScriptCode::POS)
{
printf ("script: goto: not label !\n");
st->state = END;
return 0;
}
- pos = conv_num (st, &(st->stack->stack_data[st->start + 2]));
- st->pos = pos;
+ st->pos = conv_num (st, &(st->stack->stack_data[st->start + 2]));
st->state = GOTO;
return 0;
}
@@ -1936,19 +1950,19 @@ int buildin_goto (struct script_state *st)
*/
int buildin_callfunc (struct script_state *st)
{
- char *scr;
- char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const ScriptCode *scr;
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
- if ((scr = (char*)strdb_search (script_get_userfunc_db (), str)))
+ if ((scr = (const ScriptCode *)strdb_search (script_get_userfunc_db (), str)))
{
int i, j;
for (i = st->start + 3, j = 0; i < st->end; i++, j++)
push_copy (st->stack, i);
- push_val (st->stack, C_INT, j); // 引数の数をプッシュ
- push_val (st->stack, C_INT, st->defsp); // 現在の基準スタックポインタをプッシュ
- push_val (st->stack, C_INT, (int) st->script); // 現在のスクリプトをプッシュ
- push_val (st->stack, C_RETINFO, st->pos); // 現在のスクリプト位置をプッシュ
+ push_val (st->stack, ScriptCode::INT, j); // 引数の数をプッシュ
+ push_val (st->stack, ScriptCode::INT, st->defsp); // 現在の基準スタックポインタをプッシュ
+ push_val (st->stack, ScriptCode::INT, (int) st->script); // 現在のスクリプトをプッシュ
+ push_val (st->stack, ScriptCode::RETINFO, st->pos); // 現在のスクリプト位置をプッシュ
st->pos = 0;
st->script = scr;
@@ -1969,17 +1983,17 @@ int buildin_callfunc (struct script_state *st)
*/
int buildin_callsub (struct script_state *st)
{
- int pos = conv_num (st, &(st->stack->stack_data[st->start + 2]));
+ int pos_ = conv_num (st, &(st->stack->stack_data[st->start + 2]));
int i, j;
for (i = st->start + 3, j = 0; i < st->end; i++, j++)
push_copy (st->stack, i);
- push_val (st->stack, C_INT, j); // 引数の数をプッシュ
- push_val (st->stack, C_INT, st->defsp); // 現在の基準スタックポインタをプッシュ
- push_val (st->stack, C_INT, (int) st->script); // 現在のスクリプトをプッシュ
- push_val (st->stack, C_RETINFO, st->pos); // 現在のスクリプト位置をプッシュ
+ push_val (st->stack, ScriptCode::INT, j); // 引数の数をプッシュ
+ push_val (st->stack, ScriptCode::INT, st->defsp); // 現在の基準スタックポインタをプッシュ
+ push_val (st->stack, ScriptCode::INT, (int) st->script); // 現在のスクリプトをプッシュ
+ push_val (st->stack, ScriptCode::RETINFO, st->pos); // 現在のスクリプト位置をプッシュ
- st->pos = pos;
+ st->pos = pos_;
st->defsp = st->start + 4 + j;
st->state = GOTO;
return 0;
@@ -1994,7 +2008,7 @@ int buildin_getarg (struct script_state *st)
int num = conv_num (st, &(st->stack->stack_data[st->start + 2]));
int max, stsp;
if (st->defsp < 4
- || st->stack->stack_data[st->defsp - 1].type != C_RETINFO)
+ || st->stack->stack_data[st->defsp - 1].type != ScriptCode::RETINFO)
{
printf ("script:getarg without callfunc or callsub!\n");
st->state = END;
@@ -2112,19 +2126,17 @@ int buildin_menu (struct script_state *st)
sd->state.menu_or_input = 0;
if (sd->npc_menu > 0 && sd->npc_menu <= menu_choices)
{
- int pos;
if (st->stack->
- stack_data[st->start + sd->npc_menu * 2 + 1].type != C_POS)
+ stack_data[st->start + sd->npc_menu * 2 + 1].type != ScriptCode::POS)
{
st->state = END;
return 0;
}
- pos =
+ st->pos =
conv_num (st,
&(st->
stack->stack_data[st->start + sd->npc_menu * 2 +
1]));
- st->pos = pos;
st->state = GOTO;
}
}
@@ -2151,12 +2163,12 @@ int buildin_rand (struct script_state *st)
max = tmp;
}
range = max - min + 1;
- push_val (st->stack, C_INT, (range <= 0 ? 0 : MRAND (range)) + min);
+ push_val (st->stack, ScriptCode::INT, (range <= 0 ? 0 : MRAND (range)) + min);
}
else
{
range = conv_num (st, &(st->stack->stack_data[st->start + 2]));
- push_val (st->stack, C_INT, range <= 0 ? 0 : MRAND (range));
+ push_val (st->stack, ScriptCode::INT, range <= 0 ? 0 : MRAND (range));
}
return 0;
}
@@ -2172,7 +2184,7 @@ int buildin_pow (struct script_state *st)
a = conv_num (st, &(st->stack->stack_data[st->start + 2]));
b = conv_num (st, &(st->stack->stack_data[st->start + 3]));
- push_val (st->stack, C_INT, (int) pow (a * 0.001, b));
+ push_val (st->stack, ScriptCode::INT, (int) pow (a * 0.001, b));
return 0;
}
@@ -2184,17 +2196,16 @@ int buildin_pow (struct script_state *st)
int buildin_isat (struct script_state *st)
{
int x, y;
- char *str;
struct map_session_data *sd = script_rid2sd (st);
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
x = conv_num (st, &(st->stack->stack_data[st->start + 3]));
y = conv_num (st, &(st->stack->stack_data[st->start + 4]));
if (!sd)
return 1;
- push_val (st->stack, C_INT,
+ push_val (st->stack, ScriptCode::INT,
(x == sd->bl.x)
&& (y == sd->bl.y) && (!strcmp (str, map[sd->bl.m].name)));
@@ -2208,10 +2219,9 @@ int buildin_isat (struct script_state *st)
int buildin_warp (struct script_state *st)
{
int x, y;
- char *str;
struct map_session_data *sd = script_rid2sd (st);
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
x = conv_num (st, &(st->stack->stack_data[st->start + 3]));
y = conv_num (st, &(st->stack->stack_data[st->start + 4]));
if (strcmp (str, "Random") == 0)
@@ -2241,33 +2251,31 @@ int buildin_warp (struct script_state *st)
* エリア指定ワープ
*------------------------------------------
*/
+static
int buildin_areawarp_sub (struct block_list *bl, va_list ap)
{
int x, y;
- char *map;
- map = va_arg (ap, char *);
+ const char *mapname = va_arg (ap, const char *);
x = va_arg (ap, int);
y = va_arg (ap, int);
- if (strcmp (map, "Random") == 0)
+ if (strcmp (mapname, "Random") == 0)
pc_randomwarp ((struct map_session_data *) bl, 3);
else
- pc_setpos ((struct map_session_data *) bl, map, x, y, 0);
+ pc_setpos ((struct map_session_data *) bl, mapname, x, y, 0);
return 0;
}
int buildin_areawarp (struct script_state *st)
{
int x, y, m;
- char *str;
- char *mapname;
int x0, y0, x1, y1;
- mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
x0 = conv_num (st, &(st->stack->stack_data[st->start + 3]));
y0 = conv_num (st, &(st->stack->stack_data[st->start + 4]));
x1 = conv_num (st, &(st->stack->stack_data[st->start + 5]));
y1 = conv_num (st, &(st->stack->stack_data[st->start + 6]));
- str = conv_str (st, &(st->stack->stack_data[st->start + 7]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 7]));
x = conv_num (st, &(st->stack->stack_data[st->start + 8]));
y = conv_num (st, &(st->stack->stack_data[st->start + 9]));
@@ -2349,7 +2357,7 @@ int buildin_input (struct script_state *st)
int num =
(st->end >
st->start + 2) ? st->stack->stack_data[st->start + 2].u.num : 0;
- char *name =
+ const char *name =
(st->end >
st->start + 2) ? str_buf + str_data[num & 0x00ffffff].str : "";
// char prefix=*name;
@@ -2364,7 +2372,7 @@ int buildin_input (struct script_state *st)
// 文字列
if (st->end > st->start + 2)
{ // 引数1個
- set_reg (sd, num, name, (void *) sd->npc_str);
+ set_reg (sd, num, name, sd->npc_str);
}
else
{
@@ -2385,7 +2393,7 @@ int buildin_input (struct script_state *st)
// 数値
if (st->end > st->start + 2)
{ // 引数1個
- set_reg (sd, num, name, (void *) sd->npc_amount);
+ set_reg (sd, num, name, sd->npc_amount);
}
else
{
@@ -2421,7 +2429,7 @@ int buildin_if (struct script_state *st)
// 関数名をコピー
push_copy (st->stack, st->start + 3);
// 間に引数マーカを入れて
- push_val (st->stack, C_ARG, 0);
+ push_val (st->stack, ScriptCode::ARG, 0);
// 残りの引数をコピー
for (i = st->start + 4; i < st->end; i++)
{
@@ -2444,7 +2452,7 @@ int buildin_set (struct script_state *st)
char prefix = *name;
char postfix = name[strlen (name) - 1];
- if (st->stack->stack_data[st->start + 2].type != C_NAME)
+ if (st->stack->stack_data[st->start + 2].type != ScriptCode::NAME)
{
printf ("script: buildin_set: not name\n");
return 0;
@@ -2456,14 +2464,14 @@ int buildin_set (struct script_state *st)
if (postfix == '$')
{
// 文字列
- char *str = conv_str (st, &(st->stack->stack_data[st->start + 3]));
- set_reg (sd, num, name, (void *) str);
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 3]));
+ set_reg (sd, num, name, str);
}
else
{
// 数値
int val = conv_num (st, &(st->stack->stack_data[st->start + 3]));
- set_reg (sd, num, name, (void *) val);
+ set_reg (sd, num, name, val);
}
return 0;
@@ -2492,12 +2500,10 @@ int buildin_setarray (struct script_state *st)
for (j = 0, i = st->start + 3; i < st->end && j < 128; i++, j++)
{
- void *v;
if (postfix == '$')
- v = (void *) conv_str (st, &(st->stack->stack_data[i]));
+ set_reg(sd, num + (j << 24), name, conv_str(st, &(st->stack->stack_data[i])));
else
- v = (void *) conv_num (st, &(st->stack->stack_data[i]));
- set_reg (sd, num + (j << 24), name, v);
+ set_reg(sd, num + (j << 24), name, conv_num(st, &(st->stack->stack_data[i])));
}
return 0;
}
@@ -2526,12 +2532,12 @@ int buildin_cleararray (struct script_state *st)
sd = script_rid2sd (st);
if (postfix == '$')
- v = (void *) conv_str (st, &(st->stack->stack_data[st->start + 3]));
+ for (i = 0; i < sz; i++)
+ set_reg(sd, num + (i << 24), name, conv_str(st, &(st->stack->stack_data[st->start + 3])));
else
- v = (void *) conv_num (st, &(st->stack->stack_data[st->start + 3]));
+ for (i = 0; i < sz; i++)
+ set_reg(sd, num + (i << 24), name, conv_num(st, &(st->stack->stack_data[st->start + 3])));
- for (i = 0; i < sz; i++)
- set_reg (sd, num + (i << 24), name, v);
return 0;
}
@@ -2580,10 +2586,8 @@ static int getarraysize (struct script_state *st, int num, int postfix)
int i = (num >> 24), c = i;
for (; i < 128; i++)
{
- void *v = get_val2 (st, num + (i << 24));
- if (postfix == '$' && *((char *) v))
- c = i;
- if (postfix != '$' && (int) v)
+ struct script_data vd = get_val2 (st, num + (i << 24));
+ if (postfix == '$' ? bool(vd.u.str) : bool(vd.u.num))
c = i;
}
return c + 1;
@@ -2602,7 +2606,7 @@ int buildin_getarraysize (struct script_state *st)
return 0;
}
- push_val (st->stack, C_INT, getarraysize (st, num, postfix));
+ push_val (st->stack, ScriptCode::INT, getarraysize (st, num, postfix));
return 0;
}
@@ -2652,7 +2656,7 @@ int buildin_deletearray (struct script_state *st)
*/
int buildin_getelementofarray (struct script_state *st)
{
- if (st->stack->stack_data[st->start + 2].type == C_NAME)
+ if (st->stack->stack_data[st->start + 2].type == ScriptCode::NAME)
{
int i = conv_num (st, &(st->stack->stack_data[st->start + 3]));
if (i > 127 || i < 0)
@@ -2660,11 +2664,11 @@ int buildin_getelementofarray (struct script_state *st)
printf
("script: getelementofarray (operator[]): param2 illegal number %d\n",
i);
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
}
else
{
- push_val (st->stack, C_NAME,
+ push_val (st->stack, ScriptCode::NAME,
(i << 24) | st->stack->stack_data[st->start + 2].u.num);
}
}
@@ -2672,7 +2676,7 @@ int buildin_getelementofarray (struct script_state *st)
{
printf
("script: getelementofarray (operator[]): param1 not name !\n");
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
}
return 0;
}
@@ -2760,7 +2764,7 @@ int buildin_countitem (struct script_state *st)
data = &(st->stack->stack_data[st->start + 2]);
get_val (st, data);
- if (data->type == C_STR || data->type == C_CONSTSTR)
+ if (data->type == ScriptCode::STR || data->type == ScriptCode::CONSTSTR)
{
const char *name = conv_str (st, data);
struct item_data *item_data;
@@ -2781,7 +2785,7 @@ int buildin_countitem (struct script_state *st)
if (battle_config.error_log)
printf ("wrong item ID : countitem(%i)\n", nameid);
}
- push_val (st->stack, C_INT, count);
+ push_val (st->stack, ScriptCode::INT, count);
return 0;
}
@@ -2800,7 +2804,7 @@ int buildin_checkweight (struct script_state *st)
data = &(st->stack->stack_data[st->start + 2]);
get_val (st, data);
- if (data->type == C_STR || data->type == C_CONSTSTR)
+ if (data->type == ScriptCode::STR || data->type == ScriptCode::CONSTSTR)
{
const char *name = conv_str (st, data);
struct item_data *item_data = itemdb_searchname (name);
@@ -2813,17 +2817,17 @@ int buildin_checkweight (struct script_state *st)
amount = conv_num (st, &(st->stack->stack_data[st->start + 3]));
if (amount <= 0 || nameid < 500)
{ //if get wrong item ID or amount<=0, don't count weight of non existing items
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
}
sd = script_rid2sd (st);
if (itemdb_weight (nameid) * amount + sd->weight > sd->max_weight)
{
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
}
else
{
- push_val (st->stack, C_INT, 1);
+ push_val (st->stack, ScriptCode::INT, 1);
}
return 0;
@@ -2844,7 +2848,7 @@ int buildin_getitem (struct script_state *st)
data = &(st->stack->stack_data[st->start + 2]);
get_val (st, data);
- if (data->type == C_STR || data->type == C_CONSTSTR)
+ if (data->type == ScriptCode::STR || data->type == ScriptCode::CONSTSTR)
{
const char *name = conv_str (st, data);
struct item_data *item_data = itemdb_searchname (name);
@@ -2899,7 +2903,6 @@ int buildin_getitem2 (struct script_state *st)
{
int nameid, amount, flag = 0;
int iden, ref, attr, c1, c2, c3, c4;
- struct item_data *item_data;
struct item item_tmp;
struct map_session_data *sd;
struct script_data *data;
@@ -2908,7 +2911,7 @@ int buildin_getitem2 (struct script_state *st)
data = &(st->stack->stack_data[st->start + 2]);
get_val (st, data);
- if (data->type == C_STR || data->type == C_CONSTSTR)
+ if (data->type == ScriptCode::STR || data->type == ScriptCode::CONSTSTR)
{
const char *name = conv_str (st, data);
struct item_data *item_data = itemdb_searchname (name);
@@ -2942,7 +2945,7 @@ int buildin_getitem2 (struct script_state *st)
if (nameid > 0)
{
memset (&item_tmp, 0, sizeof (item_tmp));
- item_data = itemdb_search (nameid);
+ struct item_data *item_data = itemdb_search (nameid);
if (item_data->type == 4 || item_data->type == 5)
{
if (ref > 10)
@@ -2989,7 +2992,6 @@ int buildin_makeitem (struct script_state *st)
{
int nameid, amount, flag = 0;
int x, y, m;
- char *mapname;
struct item item_tmp;
struct map_session_data *sd;
struct script_data *data;
@@ -2998,7 +3000,7 @@ int buildin_makeitem (struct script_state *st)
data = &(st->stack->stack_data[st->start + 2]);
get_val (st, data);
- if (data->type == C_STR || data->type == C_CONSTSTR)
+ if (data->type == ScriptCode::STR || data->type == ScriptCode::CONSTSTR)
{
const char *name = conv_str (st, data);
struct item_data *item_data = itemdb_searchname (name);
@@ -3010,7 +3012,7 @@ int buildin_makeitem (struct script_state *st)
nameid = conv_num (st, data);
amount = conv_num (st, &(st->stack->stack_data[st->start + 3]));
- mapname = conv_str (st, &(st->stack->stack_data[st->start + 4]));
+ const char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 4]));
x = conv_num (st, &(st->stack->stack_data[st->start + 5]));
y = conv_num (st, &(st->stack->stack_data[st->start + 6]));
@@ -3055,7 +3057,7 @@ int buildin_delitem (struct script_state *st)
data = &(st->stack->stack_data[st->start + 2]);
get_val (st, data);
- if (data->type == C_STR || data->type == C_CONSTSTR)
+ if (data->type == ScriptCode::STR || data->type == ScriptCode::CONSTSTR)
{
const char *name = conv_str (st, data);
struct item_data *item_data = itemdb_searchname (name);
@@ -3124,11 +3126,11 @@ int buildin_readparam (struct script_state *st)
if (sd == NULL)
{
- push_val (st->stack, C_INT, -1);
+ push_val (st->stack, ScriptCode::INT, -1);
return 0;
}
- push_val (st->stack, C_INT, pc_readparam (sd, type));
+ push_val (st->stack, ScriptCode::INT, pc_readparam (sd, type));
return 0;
}
@@ -3150,17 +3152,17 @@ int buildin_getcharid (struct script_state *st)
sd = script_rid2sd (st);
if (sd == NULL)
{
- push_val (st->stack, C_INT, -1);
+ push_val (st->stack, ScriptCode::INT, -1);
return 0;
}
if (num == 0)
- push_val (st->stack, C_INT, sd->status.char_id);
+ push_val (st->stack, ScriptCode::INT, sd->status.char_id);
if (num == 1)
- push_val (st->stack, C_INT, sd->status.party_id);
+ push_val (st->stack, ScriptCode::INT, sd->status.party_id);
if (num == 2)
- push_val (st->stack, C_INT, sd->status.guild_id);
+ push_val (st->stack, ScriptCode::INT, sd->status.guild_id);
if (num == 3)
- push_val (st->stack, C_INT, sd->status.account_id);
+ push_val (st->stack, ScriptCode::INT, sd->status.account_id);
return 0;
}
@@ -3168,6 +3170,7 @@ int buildin_getcharid (struct script_state *st)
*指定IDのPT名取得
*------------------------------------------
*/
+static
char *buildin_getpartyname_sub (int party_id)
{
struct party *p;
@@ -3194,9 +3197,9 @@ int buildin_getpartyname (struct script_state *st)
party_id = conv_num (st, &(st->stack->stack_data[st->start + 2]));
name = buildin_getpartyname_sub (party_id);
if (name != 0)
- push_str (st->stack, C_STR, name);
+ push_str (st->stack, ScriptCode::STR, name);
else
- push_str (st->stack, C_CONSTSTR, "null");
+ push_str (st->stack, ScriptCode::CONSTSTR, "null");
return 0;
}
@@ -3235,6 +3238,7 @@ int buildin_getpartymember (struct script_state *st)
*指定IDのギルド名取得
*------------------------------------------
*/
+static
char *buildin_getguildname_sub (int guild_id)
{
struct guild *g = NULL;
@@ -3256,9 +3260,9 @@ int buildin_getguildname (struct script_state *st)
int guild_id = conv_num (st, &(st->stack->stack_data[st->start + 2]));
name = buildin_getguildname_sub (guild_id);
if (name != 0)
- push_str (st->stack, C_STR, name);
+ push_str (st->stack, ScriptCode::STR, name);
else
- push_str (st->stack, C_CONSTSTR, "null");
+ push_str (st->stack, ScriptCode::CONSTSTR, "null");
return 0;
}
@@ -3266,6 +3270,7 @@ int buildin_getguildname (struct script_state *st)
*指定IDのGuildMaster名取得
*------------------------------------------
*/
+static
char *buildin_getguildmaster_sub (int guild_id)
{
struct guild *g = NULL;
@@ -3288,9 +3293,9 @@ int buildin_getguildmaster (struct script_state *st)
int guild_id = conv_num (st, &(st->stack->stack_data[st->start + 2]));
master = buildin_getguildmaster_sub (guild_id);
if (master != 0)
- push_str (st->stack, C_STR, master);
+ push_str (st->stack, ScriptCode::STR, master);
else
- push_str (st->stack, C_CONSTSTR, "null");
+ push_str (st->stack, ScriptCode::CONSTSTR, "null");
return 0;
}
@@ -3304,14 +3309,14 @@ int buildin_getguildmasterid (struct script_state *st)
{
if ((sd = map_nick2sd (master)) == NULL)
{
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
return 0;
}
- push_val (st->stack, C_INT, sd->status.char_id);
+ push_val (st->stack, ScriptCode::INT, sd->status.char_id);
}
else
{
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
}
return 0;
}
@@ -3332,25 +3337,25 @@ int buildin_strcharinfo (struct script_state *st)
char *buf;
buf = (char *) calloc (24, 1);
strncpy (buf, sd->status.name, 23);
- push_str (st->stack, C_STR, buf);
+ push_str (st->stack, ScriptCode::STR, buf);
}
if (num == 1)
{
char *buf;
buf = buildin_getpartyname_sub (sd->status.party_id);
if (buf != 0)
- push_str (st->stack, C_STR, buf);
+ push_str (st->stack, ScriptCode::STR, buf);
else
- push_str (st->stack, C_CONSTSTR, "");
+ push_str (st->stack, ScriptCode::CONSTSTR, "");
}
if (num == 2)
{
char *buf;
buf = buildin_getguildname_sub (sd->status.guild_id);
if (buf != 0)
- push_str (st->stack, C_STR, buf);
+ push_str (st->stack, ScriptCode::STR, buf);
else
- push_str (st->stack, C_CONSTSTR, "");
+ push_str (st->stack, ScriptCode::CONSTSTR, "");
}
return 0;
@@ -3383,13 +3388,13 @@ int buildin_getequipid (struct script_state *st)
{
item = sd->inventory_data[i];
if (item)
- push_val (st->stack, C_INT, item->nameid);
+ push_val (st->stack, ScriptCode::INT, item->nameid);
else
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
}
else
{
- push_val (st->stack, C_INT, -1);
+ push_val (st->stack, ScriptCode::INT, -1);
}
return 0;
}
@@ -3421,7 +3426,7 @@ int buildin_getequipname (struct script_state *st)
{
sprintf (buf, "%s-[%s]", pos[num - 1], pos[10]);
}
- push_str (st->stack, C_STR, buf);
+ push_str (st->stack, ScriptCode::STR, buf);
return 0;
}
@@ -3451,7 +3456,7 @@ int buildin_getbrokenid (struct script_state *st)
}
}
- push_val (st->stack, C_INT, id);
+ push_val (st->stack, ScriptCode::INT, id);
return 0;
}
@@ -3503,11 +3508,11 @@ int buildin_getequipisequiped (struct script_state *st)
i = pc_checkequip (sd, equip[num - 1]);
if (i >= 0)
{
- push_val (st->stack, C_INT, 1);
+ push_val (st->stack, ScriptCode::INT, 1);
}
else
{
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
}
return 0;
@@ -3532,11 +3537,11 @@ int buildin_getequipisenableref (struct script_state *st)
|| (sd->inventory_data[i]->def <= 0
&& sd->inventory_data[i]->equip_script != NULL)))
{
- push_val (st->stack, C_INT, 1);
+ push_val (st->stack, ScriptCode::INT, 1);
}
else
{
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
}
return 0;
@@ -3555,9 +3560,9 @@ int buildin_getequipisidentify (struct script_state *st)
sd = script_rid2sd (st);
i = pc_checkequip (sd, equip[num - 1]);
if (i >= 0)
- push_val (st->stack, C_INT, sd->status.inventory[i].identify);
+ push_val (st->stack, ScriptCode::INT, sd->status.inventory[i].identify);
else
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
return 0;
}
@@ -3575,9 +3580,9 @@ int buildin_getequiprefinerycnt (struct script_state *st)
sd = script_rid2sd (st);
i = pc_checkequip (sd, equip[num - 1]);
if (i >= 0)
- push_val (st->stack, C_INT, sd->status.inventory[i].refine);
+ push_val (st->stack, ScriptCode::INT, sd->status.inventory[i].refine);
else
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
return 0;
}
@@ -3595,9 +3600,9 @@ int buildin_getequipweaponlv (struct script_state *st)
sd = script_rid2sd (st);
i = pc_checkequip (sd, equip[num - 1]);
if (i >= 0 && sd->inventory_data[i])
- push_val (st->stack, C_INT, sd->inventory_data[i]->wlv);
+ push_val (st->stack, ScriptCode::INT, sd->inventory_data[i]->wlv);
else
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
return 0;
}
@@ -3615,10 +3620,10 @@ int buildin_getequippercentrefinery (struct script_state *st)
sd = script_rid2sd (st);
i = pc_checkequip (sd, equip[num - 1]);
if (i >= 0)
- push_val (st->stack, C_INT,
+ push_val (st->stack, ScriptCode::INT,
pc_percentrefinery (sd, &sd->status.inventory[i]));
else
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
return 0;
}
@@ -3831,7 +3836,7 @@ int buildin_guildskill (struct script_state *st)
int buildin_getskilllv (struct script_state *st)
{
int id = conv_num (st, &(st->stack->stack_data[st->start + 2]));
- push_val (st->stack, C_INT, pc_checkskill (script_rid2sd (st), id));
+ push_val (st->stack, ScriptCode::INT, pc_checkskill (script_rid2sd (st), id));
return 0;
}
@@ -3849,7 +3854,7 @@ int buildin_getgdskilllv (struct script_state *st)
int guild_id = conv_num (st, &(st->stack->stack_data[st->start + 2]));
int skill_id = conv_num (st, &(st->stack->stack_data[st->start + 3]));
struct guild *g = guild_search (guild_id);
- push_val (st->stack, C_INT,
+ push_val (st->stack, ScriptCode::INT,
(g == NULL) ? -1 : guild_checkskill (g, skill_id));
return 0;
/*
@@ -3861,9 +3866,9 @@ int buildin_getgdskilllv (struct script_state *st)
sd=script_rid2sd(st);
if(sd && sd->status.guild_id > 0) g=guild_search(sd->status.guild_id);
if(sd && g) {
- push_val(st->stack,C_INT, guild_checkskill(g,skill_id+9999) );
+ push_val(st->stack,ScriptCode::INT, guild_checkskill(g,skill_id+9999) );
} else {
- push_val(st->stack,C_INT,-1);
+ push_val(st->stack,ScriptCode::INT,-1);
}
return 0;
*/
@@ -3875,7 +3880,7 @@ int buildin_getgdskilllv (struct script_state *st)
*/
int buildin_basicskillcheck (struct script_state *st)
{
- push_val (st->stack, C_INT, battle_config.basic_skill_check);
+ push_val (st->stack, ScriptCode::INT, battle_config.basic_skill_check);
return 0;
}
@@ -3885,7 +3890,7 @@ int buildin_basicskillcheck (struct script_state *st)
*/
int buildin_getgmlevel (struct script_state *st)
{
- push_val (st->stack, C_INT, pc_isGM (script_rid2sd (st)));
+ push_val (st->stack, ScriptCode::INT, pc_isGM (script_rid2sd (st)));
return 0;
}
@@ -3910,7 +3915,7 @@ int buildin_getopt2 (struct script_state *st)
sd = script_rid2sd (st);
- push_val (st->stack, C_INT, sd->opt2);
+ push_val (st->stack, ScriptCode::INT, sd->opt2);
return 0;
}
@@ -3950,11 +3955,11 @@ int buildin_checkoption (struct script_state *st)
if (sd->status.option & type)
{
- push_val (st->stack, C_INT, 1);
+ push_val (st->stack, ScriptCode::INT, 1);
}
else
{
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
}
return 0;
@@ -3989,11 +3994,11 @@ int buildin_checkcart (struct script_state *st)
if (pc_iscarton (sd))
{
- push_val (st->stack, C_INT, 1);
+ push_val (st->stack, ScriptCode::INT, 1);
}
else
{
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
}
return 0;
}
@@ -4025,11 +4030,11 @@ int buildin_checkfalcon (struct script_state *st)
if (pc_isfalcon (sd))
{
- push_val (st->stack, C_INT, 1);
+ push_val (st->stack, ScriptCode::INT, 1);
}
else
{
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
}
return 0;
@@ -4062,11 +4067,11 @@ int buildin_checkriding (struct script_state *st)
if (pc_isriding (sd))
{
- push_val (st->stack, C_INT, 1);
+ push_val (st->stack, ScriptCode::INT, 1);
}
else
{
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
}
return 0;
@@ -4093,9 +4098,8 @@ int buildin_setriding (struct script_state *st)
int buildin_savepoint (struct script_state *st)
{
int x, y;
- char *str;
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
x = conv_num (st, &(st->stack->stack_data[st->start + 3]));
y = conv_num (st, &(st->stack->stack_data[st->start + 4]));
pc_setsavepoint (script_rid2sd (st), str, x, y);
@@ -4127,18 +4131,18 @@ int buildin_gettimetick (struct script_state *st) /* Asgard Version */
time (&timer);
t = gmtime (&timer);
- push_val (st->stack, C_INT,
+ push_val (st->stack, ScriptCode::INT,
((t->tm_hour) * 3600 + (t->tm_min) * 60 + t->tm_sec));
break;
}
/* Seconds since Unix epoch. */
case 2:
- push_val (st->stack, C_INT, (int) time (NULL));
+ push_val (st->stack, ScriptCode::INT, (int) time (NULL));
break;
/* System tick (unsigned int, and yes, it will wrap). */
case 0:
default:
- push_val (st->stack, C_INT, gettick ());
+ push_val (st->stack, ScriptCode::INT, gettick ());
break;
}
return 0;
@@ -4165,28 +4169,28 @@ int buildin_gettime (struct script_state *st) /* Asgard Version */
switch (type)
{
case 1: //Sec(0~59)
- push_val (st->stack, C_INT, t->tm_sec);
+ push_val (st->stack, ScriptCode::INT, t->tm_sec);
break;
case 2: //Min(0~59)
- push_val (st->stack, C_INT, t->tm_min);
+ push_val (st->stack, ScriptCode::INT, t->tm_min);
break;
case 3: //Hour(0~23)
- push_val (st->stack, C_INT, t->tm_hour);
+ push_val (st->stack, ScriptCode::INT, t->tm_hour);
break;
case 4: //WeekDay(0~6)
- push_val (st->stack, C_INT, t->tm_wday);
+ push_val (st->stack, ScriptCode::INT, t->tm_wday);
break;
case 5: //MonthDay(01~31)
- push_val (st->stack, C_INT, t->tm_mday);
+ push_val (st->stack, ScriptCode::INT, t->tm_mday);
break;
case 6: //Month(01~12)
- push_val (st->stack, C_INT, t->tm_mon + 1);
+ push_val (st->stack, ScriptCode::INT, t->tm_mon + 1);
break;
case 7: //Year(20xx)
- push_val (st->stack, C_INT, t->tm_year + 1900);
+ push_val (st->stack, ScriptCode::INT, t->tm_year + 1900);
break;
default: //(format error)
- push_val (st->stack, C_INT, -1);
+ push_val (st->stack, ScriptCode::INT, -1);
break;
}
return 0;
@@ -4199,18 +4203,17 @@ int buildin_gettime (struct script_state *st) /* Asgard Version */
int buildin_gettimestr (struct script_state *st)
{
char *tmpstr;
- char *fmtstr;
int maxlen;
time_t now = time (NULL);
- fmtstr = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *fmtstr = conv_str (st, &(st->stack->stack_data[st->start + 2]));
maxlen = conv_num (st, &(st->stack->stack_data[st->start + 3]));
tmpstr = (char *) calloc (maxlen + 1, 1);
strftime (tmpstr, maxlen, fmtstr, gmtime (&now));
tmpstr[maxlen] = '\0';
- push_str (st->stack, C_STR, tmpstr);
+ push_str (st->stack, ScriptCode::STR, tmpstr);
return 0;
}
@@ -4239,7 +4242,7 @@ int buildin_guildopenstorage (struct script_state *st)
int ret;
st->state = STOP;
ret = storage_guild_storageopen (sd);
- push_val (st->stack, C_INT, ret);
+ push_val (st->stack, ScriptCode::INT, ret);
return 0;
}
@@ -4250,12 +4253,11 @@ int buildin_guildopenstorage (struct script_state *st)
int buildin_itemskill (struct script_state *st)
{
int id, lv;
- char *str;
struct map_session_data *sd = script_rid2sd (st);
id = conv_num (st, &(st->stack->stack_data[st->start + 2]));
lv = conv_num (st, &(st->stack->stack_data[st->start + 3]));
- str = conv_str (st, &(st->stack->stack_data[st->start + 4]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 4]));
// 詠唱中にスキルアイテムは使用できない
if (sd->skilltimer != -1)
@@ -4293,18 +4295,18 @@ int buildin_getexp (struct script_state *st)
int buildin_monster (struct script_state *st)
{
int mob_class, amount, x, y;
- char *str, *map, *event = "";
+ const char *event = "";
- map = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
x = conv_num (st, &(st->stack->stack_data[st->start + 3]));
y = conv_num (st, &(st->stack->stack_data[st->start + 4]));
- str = conv_str (st, &(st->stack->stack_data[st->start + 5]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 5]));
mob_class = conv_num (st, &(st->stack->stack_data[st->start + 6]));
amount = conv_num (st, &(st->stack->stack_data[st->start + 7]));
if (st->end > st->start + 8)
event = conv_str (st, &(st->stack->stack_data[st->start + 8]));
- mob_once_spawn (map_id2sd (st->rid), map, x, y, str, mob_class, amount,
+ mob_once_spawn (map_id2sd (st->rid), mapname, x, y, str, mob_class, amount,
event);
return 0;
}
@@ -4316,20 +4318,20 @@ int buildin_monster (struct script_state *st)
int buildin_areamonster (struct script_state *st)
{
int mob_class, amount, x0, y0, x1, y1;
- char *str, *map, *event = "";
+ const char *event = "";
- map = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
x0 = conv_num (st, &(st->stack->stack_data[st->start + 3]));
y0 = conv_num (st, &(st->stack->stack_data[st->start + 4]));
x1 = conv_num (st, &(st->stack->stack_data[st->start + 5]));
y1 = conv_num (st, &(st->stack->stack_data[st->start + 6]));
- str = conv_str (st, &(st->stack->stack_data[st->start + 7]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 7]));
mob_class = conv_num (st, &(st->stack->stack_data[st->start + 8]));
amount = conv_num (st, &(st->stack->stack_data[st->start + 9]));
if (st->end > st->start + 10)
event = conv_str (st, &(st->stack->stack_data[st->start + 10]));
- mob_once_spawn_area (map_id2sd (st->rid), map, x0, y0, x1, y1, str, mob_class,
+ mob_once_spawn_area (map_id2sd (st->rid), mapname, x0, y0, x1, y1, str, mob_class,
amount, event);
return 0;
}
@@ -4338,6 +4340,7 @@ int buildin_areamonster (struct script_state *st)
* モンスター削除
*------------------------------------------
*/
+static
int buildin_killmonster_sub (struct block_list *bl, va_list ap)
{
char *event = va_arg (ap, char *);
@@ -4361,10 +4364,9 @@ int buildin_killmonster_sub (struct block_list *bl, va_list ap)
int buildin_killmonster (struct script_state *st)
{
- char *mapname, *event;
int m, allflag = 0;
- mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
- event = conv_str (st, &(st->stack->stack_data[st->start + 3]));
+ const char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *event = conv_str (st, &(st->stack->stack_data[st->start + 3]));
if (strcmp (event, "All") == 0)
allflag = 1;
@@ -4375,6 +4377,7 @@ int buildin_killmonster (struct script_state *st)
return 0;
}
+static
int buildin_killmonsterall_sub (struct block_list *bl, va_list ap)
{
mob_delete ((struct mob_data *) bl);
@@ -4383,9 +4386,8 @@ int buildin_killmonsterall_sub (struct block_list *bl, va_list ap)
int buildin_killmonsterall (struct script_state *st)
{
- char *mapname;
int m;
- mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
if ((m = map_mapname2mapid (mapname)) < 0)
return 0;
@@ -4400,8 +4402,7 @@ int buildin_killmonsterall (struct script_state *st)
*/
int buildin_doevent (struct script_state *st)
{
- char *event;
- event = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *event = conv_str (st, &(st->stack->stack_data[st->start + 2]));
npc_event (map_id2sd (st->rid), event, 0);
return 0;
}
@@ -4412,8 +4413,7 @@ int buildin_doevent (struct script_state *st)
*/
int buildin_donpcevent (struct script_state *st)
{
- char *event;
- event = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *event = conv_str (st, &(st->stack->stack_data[st->start + 2]));
npc_event_do (event);
return 0;
}
@@ -4424,10 +4424,9 @@ int buildin_donpcevent (struct script_state *st)
*/
int buildin_addtimer (struct script_state *st)
{
- char *event;
int tick;
tick = conv_num (st, &(st->stack->stack_data[st->start + 2]));
- event = conv_str (st, &(st->stack->stack_data[st->start + 3]));
+ const char *event = conv_str (st, &(st->stack->stack_data[st->start + 3]));
pc_addeventtimer (script_rid2sd (st), tick, event);
return 0;
}
@@ -4438,8 +4437,7 @@ int buildin_addtimer (struct script_state *st)
*/
int buildin_deltimer (struct script_state *st)
{
- char *event;
- event = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *event = conv_str (st, &(st->stack->stack_data[st->start + 2]));
pc_deleventtimer (script_rid2sd (st), event);
return 0;
}
@@ -4450,9 +4448,8 @@ int buildin_deltimer (struct script_state *st)
*/
int buildin_addtimercount (struct script_state *st)
{
- char *event;
int tick;
- event = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *event = conv_str (st, &(st->stack->stack_data[st->start + 2]));
tick = conv_num (st, &(st->stack->stack_data[st->start + 3]));
pc_addeventtimercount (script_rid2sd (st), event, tick);
return 0;
@@ -4537,7 +4534,7 @@ int buildin_getnpctimer (struct script_state *st)
val = nd->u.scr.timeramount;
break;
}
- push_val (st->stack, C_INT, val);
+ push_val (st->stack, ScriptCode::INT, val);
return 0;
}
@@ -4566,9 +4563,8 @@ int buildin_setnpctimer (struct script_state *st)
*/
int buildin_announce (struct script_state *st)
{
- char *str;
int flag;
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
flag = conv_num (st, &(st->stack->stack_data[st->start + 3]));
if (flag & 0x0f)
@@ -4586,6 +4582,7 @@ int buildin_announce (struct script_state *st)
* 天の声アナウンス(特定マップ)
*------------------------------------------
*/
+static
int buildin_mapannounce_sub (struct block_list *bl, va_list ap)
{
char *str;
@@ -4599,11 +4596,10 @@ int buildin_mapannounce_sub (struct block_list *bl, va_list ap)
int buildin_mapannounce (struct script_state *st)
{
- char *mapname, *str;
int flag, m;
- mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
- str = conv_str (st, &(st->stack->stack_data[st->start + 3]));
+ const char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 3]));
flag = conv_num (st, &(st->stack->stack_data[st->start + 4]));
if ((m = map_mapname2mapid (mapname)) < 0)
@@ -4620,19 +4616,18 @@ int buildin_mapannounce (struct script_state *st)
*/
int buildin_areaannounce (struct script_state *st)
{
- char *map, *str;
int flag, m;
int x0, y0, x1, y1;
- map = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
x0 = conv_num (st, &(st->stack->stack_data[st->start + 3]));
y0 = conv_num (st, &(st->stack->stack_data[st->start + 4]));
x1 = conv_num (st, &(st->stack->stack_data[st->start + 5]));
y1 = conv_num (st, &(st->stack->stack_data[st->start + 6]));
- str = conv_str (st, &(st->stack->stack_data[st->start + 7]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 7]));
flag = conv_num (st, &(st->stack->stack_data[st->start + 8]));
- if ((m = map_mapname2mapid (map)) < 0)
+ if ((m = map_mapname2mapid (mapname)) < 0)
return 0;
map_foreachinarea (buildin_mapannounce_sub,
@@ -4659,7 +4654,7 @@ int buildin_getusers (struct script_state *st)
val = map_getusers ();
break;
}
- push_val (st->stack, C_INT, val);
+ push_val (st->stack, ScriptCode::INT, val);
return 0;
}
@@ -4669,15 +4664,14 @@ int buildin_getusers (struct script_state *st)
*/
int buildin_getmapusers (struct script_state *st)
{
- char *str;
int m;
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
if ((m = map_mapname2mapid (str)) < 0)
{
- push_val (st->stack, C_INT, -1);
+ push_val (st->stack, ScriptCode::INT, -1);
return 0;
}
- push_val (st->stack, C_INT, map[m].users);
+ push_val (st->stack, ScriptCode::INT, map[m].users);
return 0;
}
@@ -4685,12 +4679,15 @@ int buildin_getmapusers (struct script_state *st)
* エリア指定ユーザー数所得
*------------------------------------------
*/
+static
int buildin_getareausers_sub (struct block_list *bl, va_list ap)
{
int *users = va_arg (ap, int *);
(*users)++;
return 0;
}
+
+static
int buildin_getareausers_living_sub (struct block_list *bl, va_list ap)
{
int *users = va_arg (ap, int *);
@@ -4701,9 +4698,8 @@ int buildin_getareausers_living_sub (struct block_list *bl, va_list ap)
int buildin_getareausers (struct script_state *st)
{
- char *str;
int m, x0, y0, x1, y1, users = 0;
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
x0 = conv_num (st, &(st->stack->stack_data[st->start + 3]));
y0 = conv_num (st, &(st->stack->stack_data[st->start + 4]));
x1 = conv_num (st, &(st->stack->stack_data[st->start + 5]));
@@ -4716,12 +4712,12 @@ int buildin_getareausers (struct script_state *st)
}
if ((m = map_mapname2mapid (str)) < 0)
{
- push_val (st->stack, C_INT, -1);
+ push_val (st->stack, ScriptCode::INT, -1);
return 0;
}
map_foreachinarea (living ? buildin_getareausers_living_sub: buildin_getareausers_sub,
m, x0, y0, x1, y1, BL_PC, &users);
- push_val (st->stack, C_INT, users);
+ push_val (st->stack, ScriptCode::INT, users);
return 0;
}
@@ -4729,6 +4725,7 @@ int buildin_getareausers (struct script_state *st)
* エリア指定ドロップアイテム数所得
*------------------------------------------
*/
+static
int buildin_getareadropitem_sub (struct block_list *bl, va_list ap)
{
int item = va_arg (ap, int);
@@ -4741,6 +4738,7 @@ int buildin_getareadropitem_sub (struct block_list *bl, va_list ap)
return 0;
}
+static
int buildin_getareadropitem_sub_anddelete (struct block_list *bl, va_list ap)
{
int item = va_arg (ap, int);
@@ -4757,11 +4755,10 @@ int buildin_getareadropitem_sub_anddelete (struct block_list *bl, va_list ap)
int buildin_getareadropitem (struct script_state *st)
{
- char *str;
int m, x0, y0, x1, y1, item, amount = 0, delitems = 0;
struct script_data *data;
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
x0 = conv_num (st, &(st->stack->stack_data[st->start + 3]));
y0 = conv_num (st, &(st->stack->stack_data[st->start + 4]));
x1 = conv_num (st, &(st->stack->stack_data[st->start + 5]));
@@ -4769,7 +4766,7 @@ int buildin_getareadropitem (struct script_state *st)
data = &(st->stack->stack_data[st->start + 7]);
get_val (st, data);
- if (data->type == C_STR || data->type == C_CONSTSTR)
+ if (data->type == ScriptCode::STR || data->type == ScriptCode::CONSTSTR)
{
const char *name = conv_str (st, data);
struct item_data *item_data = itemdb_searchname (name);
@@ -4785,7 +4782,7 @@ int buildin_getareadropitem (struct script_state *st)
if ((m = map_mapname2mapid (str)) < 0)
{
- push_val (st->stack, C_INT, -1);
+ push_val (st->stack, ScriptCode::INT, -1);
return 0;
}
if (delitems)
@@ -4795,7 +4792,7 @@ int buildin_getareadropitem (struct script_state *st)
map_foreachinarea (buildin_getareadropitem_sub,
m, x0, y0, x1, y1, BL_ITEM, item, &amount);
- push_val (st->stack, C_INT, amount);
+ push_val (st->stack, ScriptCode::INT, amount);
return 0;
}
@@ -4805,8 +4802,7 @@ int buildin_getareadropitem (struct script_state *st)
*/
int buildin_enablenpc (struct script_state *st)
{
- char *str;
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
npc_enable (str, 1);
return 0;
}
@@ -4817,8 +4813,7 @@ int buildin_enablenpc (struct script_state *st)
*/
int buildin_disablenpc (struct script_state *st)
{
- char *str;
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
npc_enable (str, 0);
return 0;
}
@@ -4855,8 +4850,7 @@ int buildin_disablearena (struct script_state *st) // Added by RoVeRT
*/
int buildin_hideoffnpc (struct script_state *st)
{
- char *str;
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
npc_enable (str, 2);
return 0;
}
@@ -4867,8 +4861,7 @@ int buildin_hideoffnpc (struct script_state *st)
*/
int buildin_hideonnpc (struct script_state *st)
{
- char *str;
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
npc_enable (str, 4);
return 0;
}
@@ -4950,7 +4943,7 @@ int buildin_sc_check (struct script_state *st)
&& ((struct map_session_data *) bl)->state.potionpitcher_flag)
bl = map_id2bl (((struct map_session_data *) bl)->skilltarget);
- push_val (st->stack, C_INT, skill_status_change_active (bl, type));
+ push_val (st->stack, ScriptCode::INT, skill_status_change_active (bl, type));
return 0;
}
@@ -4989,7 +4982,7 @@ int buildin_getscrate (struct script_state *st)
sc_def = sc_def_luk2;
rate = rate * sc_def / 100;
- push_val (st->stack, C_INT, rate);
+ push_val (st->stack, ScriptCode::INT, rate);
return 0;
@@ -5111,7 +5104,7 @@ int buildin_changesex (struct script_state *st)
*/
int buildin_waitingroom (struct script_state *st)
{
- char *name, *ev = "";
+ const char *name, *ev = "";
int limit, trigger = 0, pub = 1;
name = conv_str (st, &(st->stack->stack_data[st->start + 2]));
limit = conv_num (st, &(st->stack->stack_data[st->start + 3]));
@@ -5122,7 +5115,7 @@ int buildin_waitingroom (struct script_state *st)
{
struct script_data *data = &(st->stack->stack_data[st->start + 5]);
get_val (st, data);
- if (data->type == C_INT)
+ if (data->type == ScriptCode::INT)
{
// 新Athena仕様(旧Athena仕様と互換性あり)
ev = conv_str (st, &(st->stack->stack_data[st->start + 4]));
@@ -5166,6 +5159,7 @@ int buildin_delwaitingroom (struct script_state *st)
* npcチャット全員蹴り出す
*------------------------------------------
*/
+static
int buildin_waitingroomkickall (struct script_state *st)
{
struct npc_data *nd;
@@ -5247,7 +5241,7 @@ int buildin_getwaitingroomstate (struct script_state *st)
if (nd == NULL
|| (cd = (struct chat_data *) map_id2bl (nd->chat_id)) == NULL)
{
- push_val (st->stack, C_INT, -1);
+ push_val (st->stack, ScriptCode::INT, -1);
return 0;
}
@@ -5273,16 +5267,16 @@ int buildin_getwaitingroomstate (struct script_state *st)
break;
case 4:
- push_str (st->stack, C_CONSTSTR, cd->title);
+ push_str (st->stack, ScriptCode::CONSTSTR, cd->title);
return 0;
case 5:
- push_str (st->stack, C_CONSTSTR, cd->pass);
+ push_str (st->stack, ScriptCode::CONSTSTR, cd->pass);
return 0;
case 16:
- push_str (st->stack, C_CONSTSTR, cd->npc_event);
+ push_str (st->stack, ScriptCode::CONSTSTR, cd->npc_event);
return 0;
}
- push_val (st->stack, C_INT, val);
+ push_val (st->stack, ScriptCode::INT, val);
return 0;
}
@@ -5293,7 +5287,6 @@ int buildin_getwaitingroomstate (struct script_state *st)
int buildin_warpwaitingpc (struct script_state *st)
{
int x, y, i, n;
- char *str;
struct npc_data *nd = (struct npc_data *) map_id2bl (st->oid);
struct chat_data *cd;
@@ -5302,7 +5295,7 @@ int buildin_warpwaitingpc (struct script_state *st)
return 0;
n = cd->trigger & 0x7f;
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
x = conv_num (st, &(st->stack->stack_data[st->start + 3]));
y = conv_num (st, &(st->stack->stack_data[st->start + 4]));
@@ -5339,7 +5332,7 @@ int buildin_warpwaitingpc (struct script_state *st)
int buildin_attachrid (struct script_state *st)
{
st->rid = conv_num (st, &(st->stack->stack_data[st->start + 2]));
- push_val (st->stack, C_INT, (map_id2sd (st->rid) != NULL));
+ push_val (st->stack, ScriptCode::INT, (map_id2sd (st->rid) != NULL));
return 0;
}
@@ -5359,7 +5352,7 @@ int buildin_detachrid (struct script_state *st)
*/
int buildin_isloggedin (struct script_state *st)
{
- push_val (st->stack, C_INT,
+ push_val (st->stack, ScriptCode::INT,
map_id2sd (conv_num
(st,
&(st->stack->stack_data[st->start + 2]))) != NULL);
@@ -5381,10 +5374,9 @@ enum
int buildin_setmapflagnosave (struct script_state *st)
{
int m, x, y;
- char *str, *str2;
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
- str2 = conv_str (st, &(st->stack->stack_data[st->start + 3]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str2 = conv_str (st, &(st->stack->stack_data[st->start + 3]));
x = conv_num (st, &(st->stack->stack_data[st->start + 4]));
y = conv_num (st, &(st->stack->stack_data[st->start + 5]));
m = map_mapname2mapid (str);
@@ -5402,9 +5394,8 @@ int buildin_setmapflagnosave (struct script_state *st)
int buildin_setmapflag (struct script_state *st)
{
int m, i;
- char *str;
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
i = conv_num (st, &(st->stack->stack_data[st->start + 3]));
m = map_mapname2mapid (str);
if (m >= 0)
@@ -5474,9 +5465,8 @@ int buildin_setmapflag (struct script_state *st)
int buildin_removemapflag (struct script_state *st)
{
int m, i;
- char *str;
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
i = conv_num (st, &(st->stack->stack_data[st->start + 3]));
m = map_mapname2mapid (str);
if (m >= 0)
@@ -5547,10 +5537,9 @@ int buildin_removemapflag (struct script_state *st)
int buildin_pvpon (struct script_state *st)
{
int m, i;
- char *str;
struct map_session_data *pl_sd = NULL;
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
m = map_mapname2mapid (str);
if (m >= 0 && !map[m].flag.pvp && !map[m].flag.nopvp)
{
@@ -5584,10 +5573,9 @@ int buildin_pvpon (struct script_state *st)
int buildin_pvpoff (struct script_state *st)
{
int m, i;
- char *str;
struct map_session_data *pl_sd = NULL;
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
m = map_mapname2mapid (str);
if (m >= 0 && map[m].flag.pvp && map[m].flag.nopvp)
{
@@ -5622,9 +5610,7 @@ int buildin_pvpoff (struct script_state *st)
int buildin_gvgon (struct script_state *st)
{
int m;
- char *str;
-
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
m = map_mapname2mapid (str);
if (m >= 0 && !map[m].flag.gvg)
{
@@ -5638,9 +5624,7 @@ int buildin_gvgon (struct script_state *st)
int buildin_gvgoff (struct script_state *st)
{
int m;
- char *str;
-
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
m = map_mapname2mapid (str);
if (m >= 0 && map[m].flag.gvg)
{
@@ -5666,6 +5650,7 @@ int buildin_emotion (struct script_state *st)
return 0;
}
+static
int buildin_maprespawnguildid_sub (struct block_list *bl, va_list ap)
{
int g_id = va_arg (ap, int);
@@ -5699,7 +5684,7 @@ int buildin_maprespawnguildid_sub (struct block_list *bl, va_list ap)
int buildin_maprespawnguildid (struct script_state *st)
{
- char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
int g_id = conv_num (st, &(st->stack->stack_data[st->start + 3]));
int flag = conv_num (st, &(st->stack->stack_data[st->start + 4]));
@@ -5746,9 +5731,9 @@ int buildin_agitcheck (struct script_state *st)
if (cond == 0)
{
if (agit_flag == 1)
- push_val (st->stack, C_INT, 1);
+ push_val (st->stack, ScriptCode::INT, 1);
if (agit_flag == 0)
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
}
else
{
@@ -5774,7 +5759,7 @@ int buildin_flagemblem (struct script_state *st)
int buildin_getcastlename (struct script_state *st)
{
- char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
struct guild_castle *gc;
int i;
char *buf = NULL;
@@ -5791,17 +5776,17 @@ int buildin_getcastlename (struct script_state *st)
}
}
if (buf)
- push_str (st->stack, C_STR, buf);
+ push_str (st->stack, ScriptCode::STR, buf);
else
- push_str (st->stack, C_CONSTSTR, "");
+ push_str (st->stack, ScriptCode::CONSTSTR, "");
return 0;
}
int buildin_getcastledata (struct script_state *st)
{
- char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
int index = conv_num (st, &(st->stack->stack_data[st->start + 3]));
- char *event = NULL;
+ const char *event = NULL;
struct guild_castle *gc;
int i, j;
@@ -5831,95 +5816,95 @@ int buildin_getcastledata (struct script_state *st)
guild_castledataload (gc->castle_id, j);
break; // Initialize[AgitInit]
case 1:
- push_val (st->stack, C_INT, gc->guild_id);
+ push_val (st->stack, ScriptCode::INT, gc->guild_id);
break;
case 2:
- push_val (st->stack, C_INT, gc->economy);
+ push_val (st->stack, ScriptCode::INT, gc->economy);
break;
case 3:
- push_val (st->stack, C_INT, gc->defense);
+ push_val (st->stack, ScriptCode::INT, gc->defense);
break;
case 4:
- push_val (st->stack, C_INT, gc->triggerE);
+ push_val (st->stack, ScriptCode::INT, gc->triggerE);
break;
case 5:
- push_val (st->stack, C_INT, gc->triggerD);
+ push_val (st->stack, ScriptCode::INT, gc->triggerD);
break;
case 6:
- push_val (st->stack, C_INT, gc->nextTime);
+ push_val (st->stack, ScriptCode::INT, gc->nextTime);
break;
case 7:
- push_val (st->stack, C_INT, gc->payTime);
+ push_val (st->stack, ScriptCode::INT, gc->payTime);
break;
case 8:
- push_val (st->stack, C_INT, gc->createTime);
+ push_val (st->stack, ScriptCode::INT, gc->createTime);
break;
case 9:
- push_val (st->stack, C_INT, gc->visibleC);
+ push_val (st->stack, ScriptCode::INT, gc->visibleC);
break;
case 10:
- push_val (st->stack, C_INT, gc->visibleG0);
+ push_val (st->stack, ScriptCode::INT, gc->visibleG0);
break;
case 11:
- push_val (st->stack, C_INT, gc->visibleG1);
+ push_val (st->stack, ScriptCode::INT, gc->visibleG1);
break;
case 12:
- push_val (st->stack, C_INT, gc->visibleG2);
+ push_val (st->stack, ScriptCode::INT, gc->visibleG2);
break;
case 13:
- push_val (st->stack, C_INT, gc->visibleG3);
+ push_val (st->stack, ScriptCode::INT, gc->visibleG3);
break;
case 14:
- push_val (st->stack, C_INT, gc->visibleG4);
+ push_val (st->stack, ScriptCode::INT, gc->visibleG4);
break;
case 15:
- push_val (st->stack, C_INT, gc->visibleG5);
+ push_val (st->stack, ScriptCode::INT, gc->visibleG5);
break;
case 16:
- push_val (st->stack, C_INT, gc->visibleG6);
+ push_val (st->stack, ScriptCode::INT, gc->visibleG6);
break;
case 17:
- push_val (st->stack, C_INT, gc->visibleG7);
+ push_val (st->stack, ScriptCode::INT, gc->visibleG7);
break;
case 18:
- push_val (st->stack, C_INT, gc->Ghp0);
+ push_val (st->stack, ScriptCode::INT, gc->Ghp0);
break;
case 19:
- push_val (st->stack, C_INT, gc->Ghp1);
+ push_val (st->stack, ScriptCode::INT, gc->Ghp1);
break;
case 20:
- push_val (st->stack, C_INT, gc->Ghp2);
+ push_val (st->stack, ScriptCode::INT, gc->Ghp2);
break;
case 21:
- push_val (st->stack, C_INT, gc->Ghp3);
+ push_val (st->stack, ScriptCode::INT, gc->Ghp3);
break;
case 22:
- push_val (st->stack, C_INT, gc->Ghp4);
+ push_val (st->stack, ScriptCode::INT, gc->Ghp4);
break;
case 23:
- push_val (st->stack, C_INT, gc->Ghp5);
+ push_val (st->stack, ScriptCode::INT, gc->Ghp5);
break;
case 24:
- push_val (st->stack, C_INT, gc->Ghp6);
+ push_val (st->stack, ScriptCode::INT, gc->Ghp6);
break;
case 25:
- push_val (st->stack, C_INT, gc->Ghp7);
+ push_val (st->stack, ScriptCode::INT, gc->Ghp7);
break;
default:
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
break;
}
return 0;
}
}
}
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
return 0;
}
int buildin_setcastledata (struct script_state *st)
{
- char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
int index = conv_num (st, &(st->stack->stack_data[st->start + 3]));
int value = conv_num (st, &(st->stack->stack_data[st->start + 4]));
struct guild_castle *gc;
@@ -6027,7 +6012,7 @@ int buildin_setcastledata (struct script_state *st)
int buildin_requestguildinfo (struct script_state *st)
{
int guild_id = conv_num (st, &(st->stack->stack_data[st->start + 2]));
- char *event = NULL;
+ const char *event = NULL;
if (st->end > st->start + 3)
event = conv_str (st, &(st->stack->stack_data[st->start + 3]));
@@ -6052,7 +6037,7 @@ int buildin_getequipcardcnt (struct script_state *st)
i = pc_checkequip (sd, equip[num - 1]);
if (sd->status.inventory[i].card[0] == 0x00ff)
{ // 製造武器はカードなし
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
return 0;
}
do
@@ -6061,12 +6046,12 @@ int buildin_getequipcardcnt (struct script_state *st)
(sd->status.inventory[i].card[c - 1] < 5000))
{
- push_val (st->stack, C_INT, (c));
+ push_val (st->stack, ScriptCode::INT, (c));
return 0;
}
}
while (c--);
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
return 0;
}
@@ -6217,16 +6202,14 @@ int buildin_failedremovecards (struct script_state *st)
int buildin_mapwarp (struct script_state *st) // Added by RoVeRT
{
int x, y, m;
- char *str;
- char *mapname;
int x0, y0, x1, y1;
- mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
x0 = 0;
y0 = 0;
x1 = map[map_mapname2mapid (mapname)].xs;
y1 = map[map_mapname2mapid (mapname)].ys;
- str = conv_str (st, &(st->stack->stack_data[st->start + 3]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 3]));
x = conv_num (st, &(st->stack->stack_data[st->start + 4]));
y = conv_num (st, &(st->stack->stack_data[st->start + 5]));
@@ -6240,10 +6223,8 @@ int buildin_mapwarp (struct script_state *st) // Added by RoVeRT
int buildin_cmdothernpc (struct script_state *st) // Added by RoVeRT
{
- char *npc, *command;
-
- npc = conv_str (st, &(st->stack->stack_data[st->start + 2]));
- command = conv_str (st, &(st->stack->stack_data[st->start + 3]));
+ const char *npc = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *command = conv_str (st, &(st->stack->stack_data[st->start + 3]));
npc_command (map_id2sd (st->rid), npc, command);
return 0;
@@ -6269,6 +6250,7 @@ int buildin_stoptimer (struct script_state *st) // Added by RoVeRT
return 0;
}
+static
int buildin_mobcount_sub (struct block_list *bl, va_list ap) // Added by RoVeRT
{
char *event = va_arg (ap, char *);
@@ -6281,36 +6263,35 @@ int buildin_mobcount_sub (struct block_list *bl, va_list ap) // Added by RoVe
int buildin_mobcount (struct script_state *st) // Added by RoVeRT
{
- char *mapname, *event;
int m, c = 0;
- mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
- event = conv_str (st, &(st->stack->stack_data[st->start + 3]));
+ const char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *event = conv_str (st, &(st->stack->stack_data[st->start + 3]));
if ((m = map_mapname2mapid (mapname)) < 0)
{
- push_val (st->stack, C_INT, -1);
+ push_val (st->stack, ScriptCode::INT, -1);
return 0;
}
map_foreachinarea (buildin_mobcount_sub,
m, 0, 0, map[m].xs, map[m].ys, BL_MOB, event, &c);
- push_val (st->stack, C_INT, (c - 1));
+ push_val (st->stack, ScriptCode::INT, (c - 1));
return 0;
}
int buildin_marriage (struct script_state *st)
{
- char *partner = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *partner = conv_str (st, &(st->stack->stack_data[st->start + 2]));
struct map_session_data *sd = script_rid2sd (st);
struct map_session_data *p_sd = map_nick2sd (partner);
if (sd == NULL || p_sd == NULL || pc_marriage (sd, p_sd) < 0)
{
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
return 0;
}
- push_val (st->stack, C_INT, 1);
+ push_val (st->stack, ScriptCode::INT, 1);
return 0;
}
@@ -6334,11 +6315,11 @@ int buildin_divorce (struct script_state *st)
if (sd == NULL || pc_divorce (sd) < 0)
{
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
return 0;
}
- push_val (st->stack, C_INT, 1);
+ push_val (st->stack, ScriptCode::INT, 1);
return 0;
}
@@ -6359,26 +6340,26 @@ int buildin_strmobinfo (struct script_state *st)
{
char *buf;
buf = mob_db[mob_class].name;
- push_str (st->stack, C_STR, buf);
+ push_str (st->stack, ScriptCode::STR, buf);
return 0;
}
else if (num == 2)
{
char *buf;
buf = mob_db[mob_class].jname;
- push_str (st->stack, C_STR, buf);
+ push_str (st->stack, ScriptCode::STR, buf);
return 0;
}
else if (num == 3)
- push_val (st->stack, C_INT, mob_db[mob_class].lv);
+ push_val (st->stack, ScriptCode::INT, mob_db[mob_class].lv);
else if (num == 4)
- push_val (st->stack, C_INT, mob_db[mob_class].max_hp);
+ push_val (st->stack, ScriptCode::INT, mob_db[mob_class].max_hp);
else if (num == 5)
- push_val (st->stack, C_INT, mob_db[mob_class].max_sp);
+ push_val (st->stack, ScriptCode::INT, mob_db[mob_class].max_sp);
else if (num == 6)
- push_val (st->stack, C_INT, mob_db[mob_class].base_exp);
+ push_val (st->stack, ScriptCode::INT, mob_db[mob_class].base_exp);
else if (num == 7)
- push_val (st->stack, C_INT, mob_db[mob_class].job_exp);
+ push_val (st->stack, ScriptCode::INT, mob_db[mob_class].job_exp);
return 0;
}
@@ -6389,19 +6370,19 @@ int buildin_strmobinfo (struct script_state *st)
int buildin_guardian (struct script_state *st)
{
int mob_class = 0, amount = 1, x = 0, y = 0, guardian = 0;
- char *str, *map, *event = "";
+ const char *event = "";
- map = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
x = conv_num (st, &(st->stack->stack_data[st->start + 3]));
y = conv_num (st, &(st->stack->stack_data[st->start + 4]));
- str = conv_str (st, &(st->stack->stack_data[st->start + 5]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 5]));
mob_class = conv_num (st, &(st->stack->stack_data[st->start + 6]));
amount = conv_num (st, &(st->stack->stack_data[st->start + 7]));
event = conv_str (st, &(st->stack->stack_data[st->start + 8]));
if (st->end > st->start + 9)
guardian = conv_num (st, &(st->stack->stack_data[st->start + 9]));
- mob_spawn_guardian (map_id2sd (st->rid), map, x, y, str, mob_class, amount,
+ mob_spawn_guardian (map_id2sd (st->rid), mapname, x, y, str, mob_class, amount,
event, guardian);
return 0;
@@ -6418,23 +6399,23 @@ int buildin_guardianinfo (struct script_state *st)
struct guild_castle *gc = guild_mapname2gc (map[sd->bl.m].name);
if (guardian == 0 && gc->visibleG0 == 1)
- push_val (st->stack, C_INT, gc->Ghp0);
+ push_val (st->stack, ScriptCode::INT, gc->Ghp0);
if (guardian == 1 && gc->visibleG1 == 1)
- push_val (st->stack, C_INT, gc->Ghp1);
+ push_val (st->stack, ScriptCode::INT, gc->Ghp1);
if (guardian == 2 && gc->visibleG2 == 1)
- push_val (st->stack, C_INT, gc->Ghp2);
+ push_val (st->stack, ScriptCode::INT, gc->Ghp2);
if (guardian == 3 && gc->visibleG3 == 1)
- push_val (st->stack, C_INT, gc->Ghp3);
+ push_val (st->stack, ScriptCode::INT, gc->Ghp3);
if (guardian == 4 && gc->visibleG4 == 1)
- push_val (st->stack, C_INT, gc->Ghp4);
+ push_val (st->stack, ScriptCode::INT, gc->Ghp4);
if (guardian == 5 && gc->visibleG5 == 1)
- push_val (st->stack, C_INT, gc->Ghp5);
+ push_val (st->stack, ScriptCode::INT, gc->Ghp5);
if (guardian == 6 && gc->visibleG6 == 1)
- push_val (st->stack, C_INT, gc->Ghp6);
+ push_val (st->stack, ScriptCode::INT, gc->Ghp6);
if (guardian == 7 && gc->visibleG7 == 1)
- push_val (st->stack, C_INT, gc->Ghp7);
+ push_val (st->stack, ScriptCode::INT, gc->Ghp7);
else
- push_val (st->stack, C_INT, -1);
+ push_val (st->stack, ScriptCode::INT, -1);
return 0;
}
@@ -6451,7 +6432,7 @@ int buildin_getitemname (struct script_state *st)
data = &(st->stack->stack_data[st->start + 2]);
get_val (st, data);
- if (data->type == C_STR || data->type == C_CONSTSTR)
+ if (data->type == ScriptCode::STR || data->type == ScriptCode::CONSTSTR)
{
const char *name = conv_str (st, data);
i_data = itemdb_searchname (name);
@@ -6468,38 +6449,32 @@ int buildin_getitemname (struct script_state *st)
else
strncpy (item_name, "Unknown Item", 23);
- push_str (st->stack, C_STR, item_name);
+ push_str (st->stack, ScriptCode::STR, item_name);
return 0;
}
int buildin_getspellinvocation (struct script_state *st)
{
- char *name;
- char *invocation;
-
- name = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *name = conv_str (st, &(st->stack->stack_data[st->start + 2]));
- invocation = magic_find_invocation (name);
+ const char *invocation = magic_find_invocation (name);
if (!invocation)
invocation = "...";
- push_str (st->stack, C_STR, strdup (invocation));
+ push_str (st->stack, ScriptCode::STR, strdup (invocation));
return 0;
}
int buildin_getanchorinvocation (struct script_state *st)
{
- char *name;
- char *invocation;
-
- name = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *name = conv_str (st, &(st->stack->stack_data[st->start + 2]));
- invocation = magic_find_anchor_invocation (name);
+ const char *invocation = magic_find_anchor_invocation (name);
if (!invocation)
invocation = "...";
- push_str (st->stack, C_STR, strdup (invocation));
+ push_str (st->stack, ScriptCode::STR, strdup (invocation));
return 0;
}
@@ -6507,7 +6482,7 @@ int buildin_getpartnerid (struct script_state *st)
{
struct map_session_data *sd = script_rid2sd (st);
- push_val (st->stack, C_INT, sd->status.partner_id);
+ push_val (st->stack, ScriptCode::INT, sd->status.partner_id);
return 0;
}
@@ -6698,7 +6673,7 @@ int buildin_check_pool_skill (struct script_state *st)
struct map_session_data *sd = script_rid2sd (st);
int skill_id = conv_num (st, &(st->stack->stack_data[st->start + 2]));
- push_val (st->stack, C_INT, skill_pool_is_activated (sd, skill_id));
+ push_val (st->stack, ScriptCode::INT, skill_pool_is_activated (sd, skill_id));
return 0;
}
@@ -6752,7 +6727,7 @@ int buildin_misceffect (struct script_state *st)
{
int type;
int id = 0;
- char *name = NULL;
+ const char *name = NULL;
struct block_list *bl = NULL;
type = conv_num (st, &(st->stack->stack_data[st->start + 2]));
@@ -6763,7 +6738,7 @@ int buildin_misceffect (struct script_state *st)
get_val (st, sdata);
- if (sdata->type == C_STR || sdata->type == C_CONSTSTR)
+ if (sdata->type == ScriptCode::STR || sdata->type == ScriptCode::CONSTSTR)
name = conv_str (st, sdata);
else
id = conv_num (st, sdata);
@@ -6799,10 +6774,9 @@ int buildin_misceffect (struct script_state *st)
int buildin_soundeffect (struct script_state *st)
{
struct map_session_data *sd = script_rid2sd (st);
- char *name;
int type = 0;
- name = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *name = conv_str (st, &(st->stack->stack_data[st->start + 2]));
type = conv_num (st, &(st->stack->stack_data[st->start + 3]));
if (sd)
{
@@ -6920,10 +6894,9 @@ int buildin_unequip_by_id (struct script_state *st)
int buildin_gmcommand (struct script_state *st)
{
struct map_session_data *sd;
- char *cmd;
sd = script_rid2sd (st);
- cmd = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *cmd = conv_str (st, &(st->stack->stack_data[st->start + 2]));
is_atcommand (sd->fd, sd, cmd, 99);
@@ -6938,15 +6911,14 @@ int buildin_gmcommand (struct script_state *st)
int buildin_movenpc (struct script_state *st)
{
struct map_session_data *sd;
- char *map, *npc;
int x, y;
sd = script_rid2sd (st);
- map = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
x = conv_num (st, &(st->stack->stack_data[st->start + 3]));
y = conv_num (st, &(st->stack->stack_data[st->start + 4]));
- npc = conv_str (st, &(st->stack->stack_data[st->start + 5]));
+ const char *npc = conv_str (st, &(st->stack->stack_data[st->start + 5]));
return 0;
}
@@ -6959,12 +6931,11 @@ int buildin_movenpc (struct script_state *st)
int buildin_npcwarp (struct script_state *st)
{
int x, y;
- char *npc;
struct npc_data *nd = NULL;
x = conv_num (st, &(st->stack->stack_data[st->start + 2]));
y = conv_num (st, &(st->stack->stack_data[st->start + 3]));
- npc = conv_str (st, &(st->stack->stack_data[st->start + 4]));
+ const char *npc = conv_str (st, &(st->stack->stack_data[st->start + 4]));
nd = npc_name2id (npc);
if (!nd)
@@ -6995,11 +6966,10 @@ int buildin_npcwarp (struct script_state *st)
int buildin_message (struct script_state *st)
{
- char *msg, *player;
struct map_session_data *pl_sd = NULL;
- player = conv_str (st, &(st->stack->stack_data[st->start + 2]));
- msg = conv_str (st, &(st->stack->stack_data[st->start + 3]));
+ const char *player = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *msg = conv_str (st, &(st->stack->stack_data[st->start + 3]));
if ((pl_sd = map_nick2sd ((char *) player)) == NULL)
return 1;
@@ -7016,11 +6986,10 @@ int buildin_message (struct script_state *st)
int buildin_npctalk (struct script_state *st)
{
- char *str;
char message[255];
struct npc_data *nd = (struct npc_data *) map_id2bl (st->oid);
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
if (nd)
{
@@ -7051,12 +7020,12 @@ int buildin_hasitems (struct script_state *st)
{
if (sd->status.inventory[i].amount)
{
- push_val (st->stack, C_INT, 1);
+ push_val (st->stack, ScriptCode::INT, 1);
return 0;
}
}
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
return 0;
}
@@ -7103,7 +7072,7 @@ int buildin_getlook (struct script_state *st)
break;
}
- push_val (st->stack, C_INT, val);
+ push_val (st->stack, ScriptCode::INT, val);
return 0;
}
@@ -7128,13 +7097,13 @@ int buildin_getsavepoint (struct script_state *st)
case 0:
mapname = (char*)calloc (24, 1);
strncpy (mapname, sd->status.save_point.map, 23);
- push_str (st->stack, C_STR, mapname);
+ push_str (st->stack, ScriptCode::STR, mapname);
break;
case 1:
- push_val (st->stack, C_INT, x);
+ push_val (st->stack, ScriptCode::INT, x);
break;
case 2:
- push_val (st->stack, C_INT, y);
+ push_val (st->stack, ScriptCode::INT, y);
break;
}
return 0;
@@ -7144,6 +7113,7 @@ int buildin_getsavepoint (struct script_state *st)
* areatimer
*------------------------------------------
*/
+static
int buildin_areatimer_sub (struct block_list *bl, va_list ap)
{
int tick;
@@ -7157,17 +7127,15 @@ int buildin_areatimer_sub (struct block_list *bl, va_list ap)
int buildin_areatimer (struct script_state *st)
{
int tick, m;
- char *event;
- char *mapname;
int x0, y0, x1, y1;
- mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *mapname = conv_str (st, &(st->stack->stack_data[st->start + 2]));
x0 = conv_num (st, &(st->stack->stack_data[st->start + 3]));
y0 = conv_num (st, &(st->stack->stack_data[st->start + 4]));
x1 = conv_num (st, &(st->stack->stack_data[st->start + 5]));
y1 = conv_num (st, &(st->stack->stack_data[st->start + 6]));
tick = conv_num (st, &(st->stack->stack_data[st->start + 7]));
- event = conv_str (st, &(st->stack->stack_data[st->start + 8]));
+ const char *event = conv_str (st, &(st->stack->stack_data[st->start + 8]));
if ((m = map_mapname2mapid (mapname)) < 0)
return 0;
@@ -7184,10 +7152,9 @@ int buildin_areatimer (struct script_state *st)
int buildin_isin (struct script_state *st)
{
int x1, y1, x2, y2;
- char *str;
struct map_session_data *sd = script_rid2sd (st);
- str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *str = conv_str (st, &(st->stack->stack_data[st->start + 2]));
x1 = conv_num (st, &(st->stack->stack_data[st->start + 3]));
y1 = conv_num (st, &(st->stack->stack_data[st->start + 4]));
x2 = conv_num (st, &(st->stack->stack_data[st->start + 5]));
@@ -7196,7 +7163,7 @@ int buildin_isin (struct script_state *st)
if (!sd)
return 1;
- push_val (st->stack, C_INT,
+ push_val (st->stack, ScriptCode::INT,
(sd->bl.x >= x1 && sd->bl.x <= x2)
&& (sd->bl.y >= y1 && sd->bl.y <= y2)
&& (!strcmp (str, map[sd->bl.m].name)));
@@ -7230,7 +7197,7 @@ int buildin_isdead (struct script_state *st)
{
struct map_session_data *sd = script_rid2sd (st);
- push_val (st->stack, C_INT, pc_isdead (sd));
+ push_val (st->stack, ScriptCode::INT, pc_isdead (sd));
return 0;
}
@@ -7240,12 +7207,11 @@ int buildin_isdead (struct script_state *st)
*/
int buildin_fakenpcname (struct script_state *st)
{
- char *name, *newname;
int newsprite;
struct npc_data *nd;
- name = conv_str (st, &(st->stack->stack_data[st->start + 2]));
- newname = conv_str (st, &(st->stack->stack_data[st->start + 3]));
+ const char *name = conv_str (st, &(st->stack->stack_data[st->start + 2]));
+ const char *newname = conv_str (st, &(st->stack->stack_data[st->start + 3]));
newsprite = conv_num (st, &(st->stack->stack_data[st->start + 4]));
nd = npc_name2id (name);
if (!nd)
@@ -7270,7 +7236,7 @@ int buildin_getx (struct script_state *st)
{
struct map_session_data *sd = script_rid2sd (st);
- push_val (st->stack, C_INT, sd->bl.x);
+ push_val (st->stack, ScriptCode::INT, sd->bl.x);
return 0;
}
@@ -7282,7 +7248,7 @@ int buildin_gety (struct script_state *st)
{
struct map_session_data *sd = script_rid2sd (st);
- push_val (st->stack, C_INT, sd->bl.y);
+ push_val (st->stack, ScriptCode::INT, sd->bl.y);
return 0;
}
@@ -7293,82 +7259,58 @@ int buildin_gety (struct script_state *st)
* コマンドの読み取り
*------------------------------------------
*/
-static int unget_com_data = -1;
-int get_com (unsigned char *script, int *pos)
-{
- int i, j;
- if (unget_com_data >= 0)
- {
- i = unget_com_data;
- unget_com_data = -1;
- return i;
- }
- if (script[*pos] >= 0x80)
- {
- return C_INT;
- }
- i = 0;
- j = 0;
- while (script[*pos] >= 0x40)
- {
- i = script[(*pos)++] << j;
- j += 6;
- }
- return i + (script[(*pos)++] << j);
-}
-
-/*==========================================
- * コマンドのプッシュバック
- *------------------------------------------
- */
-void unget_com (int c)
+static
+ScriptCode get_com (const ScriptCode *script, int *pos_)
{
- if (unget_com_data != -1)
+ if (static_cast<uint8_t>(script[*pos_]) >= 0x80)
{
- if (battle_config.error_log)
- printf ("unget_com can back only 1 data\n");
+ return ScriptCode::INT;
}
- unget_com_data = c;
+ return script[(*pos_)++];
}
/*==========================================
* 数値の所得
*------------------------------------------
*/
-int get_num (unsigned char *script, int *pos)
+static
+int get_num (const ScriptCode *scr, int *pos_)
{
+ const uint8_t *script = reinterpret_cast<const uint8_t *>(scr);
int i, j;
i = 0;
j = 0;
- while (script[*pos] >= 0xc0)
+ while (script[*pos_] >= 0xc0)
{
- i += (script[(*pos)++] & 0x7f) << j;
+ i += (script[(*pos_)++] & 0x7f) << j;
j += 6;
}
- return i + ((script[(*pos)++] & 0x7f) << j);
+ return i + ((script[(*pos_)++] & 0x7f) << j);
}
/*==========================================
* スタックから値を取り出す
*------------------------------------------
*/
+static
int pop_val (struct script_state *st)
{
if (st->stack->sp <= 0)
return 0;
st->stack->sp--;
get_val (st, &(st->stack->stack_data[st->stack->sp]));
- if (st->stack->stack_data[st->stack->sp].type == C_INT)
+ if (st->stack->stack_data[st->stack->sp].type == ScriptCode::INT)
return st->stack->stack_data[st->stack->sp].u.num;
return 0;
}
-#define isstr(c) ((c).type==C_STR || (c).type==C_CONSTSTR)
+#define isstr(c) ((c).type==ScriptCode::STR || (c).type==ScriptCode::CONSTSTR)
/*==========================================
* 加算演算子
*------------------------------------------
*/
+static
void op_add (struct script_state *st)
{
st->stack->sp--;
@@ -7381,7 +7323,7 @@ void op_add (struct script_state *st)
conv_str (st, &(st->stack->stack_data[st->stack->sp]));
conv_str (st, &(st->stack->stack_data[st->stack->sp - 1]));
}
- if (st->stack->stack_data[st->stack->sp].type == C_INT)
+ if (st->stack->stack_data[st->stack->sp].type == ScriptCode::INT)
{ // ii
st->stack->stack_data[st->stack->sp - 1].u.num +=
st->stack->stack_data[st->stack->sp].u.num;
@@ -7395,11 +7337,11 @@ void op_add (struct script_state *st)
1);
strcpy (buf, st->stack->stack_data[st->stack->sp - 1].u.str);
strcat (buf, st->stack->stack_data[st->stack->sp].u.str);
- if (st->stack->stack_data[st->stack->sp - 1].type == C_STR)
- free (st->stack->stack_data[st->stack->sp - 1].u.str);
- if (st->stack->stack_data[st->stack->sp].type == C_STR)
- free (st->stack->stack_data[st->stack->sp].u.str);
- st->stack->stack_data[st->stack->sp - 1].type = C_STR;
+ if (st->stack->stack_data[st->stack->sp - 1].type == ScriptCode::STR)
+ free(const_cast<char *>(st->stack->stack_data[st->stack->sp - 1].u.str));
+ if (st->stack->stack_data[st->stack->sp].type == ScriptCode::STR)
+ free(const_cast<char *>(st->stack->stack_data[st->stack->sp].u.str));
+ st->stack->stack_data[st->stack->sp - 1].type = ScriptCode::STR;
st->stack->stack_data[st->stack->sp - 1].u.str = buf;
}
}
@@ -7408,30 +7350,31 @@ void op_add (struct script_state *st)
* 二項演算子(文字列)
*------------------------------------------
*/
-void op_2str (struct script_state *st, int op, int sp1, int sp2)
+static
+void op_2str (struct script_state *st, ScriptCode op, int sp1, int sp2)
{
- char *s1 = st->stack->stack_data[sp1].u.str,
- *s2 = st->stack->stack_data[sp2].u.str;
+ const char *s1 = st->stack->stack_data[sp1].u.str;
+ const char *s2 = st->stack->stack_data[sp2].u.str;
int a = 0;
switch (op)
{
- case C_EQ:
+ case ScriptCode::EQ:
a = (strcmp (s1, s2) == 0);
break;
- case C_NE:
+ case ScriptCode::NE:
a = (strcmp (s1, s2) != 0);
break;
- case C_GT:
+ case ScriptCode::GT:
a = (strcmp (s1, s2) > 0);
break;
- case C_GE:
+ case ScriptCode::GE:
a = (strcmp (s1, s2) >= 0);
break;
- case C_LT:
+ case ScriptCode::LT:
a = (strcmp (s1, s2) < 0);
break;
- case C_LE:
+ case ScriptCode::LE:
a = (strcmp (s1, s2) <= 0);
break;
default:
@@ -7439,85 +7382,87 @@ void op_2str (struct script_state *st, int op, int sp1, int sp2)
break;
}
- push_val (st->stack, C_INT, a);
+ push_val (st->stack, ScriptCode::INT, a);
- if (st->stack->stack_data[sp1].type == C_STR)
- free (s1);
- if (st->stack->stack_data[sp2].type == C_STR)
- free (s2);
+ if (st->stack->stack_data[sp1].type == ScriptCode::STR)
+ free(const_cast<char *>(s1));
+ if (st->stack->stack_data[sp2].type == ScriptCode::STR)
+ free(const_cast<char *>(s2));
}
/*==========================================
* 二項演算子(数値)
*------------------------------------------
*/
-void op_2num (struct script_state *st, int op, int i1, int i2)
+static
+void op_2num (struct script_state *st, ScriptCode op, int i1, int i2)
{
switch (op)
{
- case C_SUB:
+ case ScriptCode::SUB:
i1 -= i2;
break;
- case C_MUL:
+ case ScriptCode::MUL:
i1 *= i2;
break;
- case C_DIV:
+ case ScriptCode::DIV:
i1 /= i2;
break;
- case C_MOD:
+ case ScriptCode::MOD:
i1 %= i2;
break;
- case C_AND:
+ case ScriptCode::AND:
i1 &= i2;
break;
- case C_OR:
+ case ScriptCode::OR:
i1 |= i2;
break;
- case C_XOR:
+ case ScriptCode::XOR:
i1 ^= i2;
break;
- case C_LAND:
+ case ScriptCode::LAND:
i1 = i1 && i2;
break;
- case C_LOR:
+ case ScriptCode::LOR:
i1 = i1 || i2;
break;
- case C_EQ:
+ case ScriptCode::EQ:
i1 = i1 == i2;
break;
- case C_NE:
+ case ScriptCode::NE:
i1 = i1 != i2;
break;
- case C_GT:
+ case ScriptCode::GT:
i1 = i1 > i2;
break;
- case C_GE:
+ case ScriptCode::GE:
i1 = i1 >= i2;
break;
- case C_LT:
+ case ScriptCode::LT:
i1 = i1 < i2;
break;
- case C_LE:
+ case ScriptCode::LE:
i1 = i1 <= i2;
break;
- case C_R_SHIFT:
+ case ScriptCode::R_SHIFT:
i1 = i1 >> i2;
break;
- case C_L_SHIFT:
+ case ScriptCode::L_SHIFT:
i1 = i1 << i2;
break;
}
- push_val (st->stack, C_INT, i1);
+ push_val (st->stack, ScriptCode::INT, i1);
}
/*==========================================
* 二項演算子
*------------------------------------------
*/
-void op_2 (struct script_state *st, int op)
+static
+void op_2 (struct script_state *st, ScriptCode op)
{
int i1, i2;
- char *s1 = NULL, *s2 = NULL;
+ const char *s1 = NULL, *s2 = NULL;
i2 = pop_val (st);
if (isstr (st->stack->stack_data[st->stack->sp]))
@@ -7541,7 +7486,7 @@ void op_2 (struct script_state *st, int op)
{
// si,is => error
printf ("script: op_2: int&str, str&int not allow.");
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
}
}
@@ -7549,23 +7494,24 @@ void op_2 (struct script_state *st, int op)
* 単項演算子
*------------------------------------------
*/
-void op_1num (struct script_state *st, int op)
+static
+void op_1num (struct script_state *st, ScriptCode op)
{
int i1;
i1 = pop_val (st);
switch (op)
{
- case C_NEG:
+ case ScriptCode::NEG:
i1 = -i1;
break;
- case C_NOT:
+ case ScriptCode::NOT:
i1 = ~i1;
break;
- case C_LNOT:
+ case ScriptCode::LNOT:
i1 = !i1;
break;
}
- push_val (st->stack, C_INT, i1);
+ push_val (st->stack, ScriptCode::INT, i1);
}
/*==========================================
@@ -7577,7 +7523,7 @@ int run_func (struct script_state *st)
int i, start_sp, end_sp, func;
end_sp = st->stack->sp;
- for (i = end_sp - 1; i >= 0 && st->stack->stack_data[i].type != C_ARG;
+ for (i = end_sp - 1; i >= 0 && st->stack->stack_data[i].type != ScriptCode::ARG;
i--);
if (i == 0)
{
@@ -7592,8 +7538,8 @@ int run_func (struct script_state *st)
st->end = end_sp;
func = st->stack->stack_data[st->start].u.num;
- if (st->stack->stack_data[st->start].type != C_NAME
- || str_data[func].type != C_FUNC)
+ if (st->stack->stack_data[st->start].type != ScriptCode::NAME
+ || str_data[func].type != ScriptCode::FUNC)
{
printf ("run_func: not function and command! \n");
// st->stack->sp=0;
@@ -7610,18 +7556,18 @@ int run_func (struct script_state *st)
{
switch (st->stack->stack_data[i].type)
{
- case C_INT:
+ case ScriptCode::INT:
printf (" int(%d)", st->stack->stack_data[i].u.num);
break;
- case C_NAME:
+ case ScriptCode::NAME:
printf (" name(%s)",
str_buf +
str_data[st->stack->stack_data[i].u.num].str);
break;
- case C_ARG:
+ case ScriptCode::ARG:
printf (" arg");
break;
- case C_POS:
+ case ScriptCode::POS:
printf (" pos(%d)", st->stack->stack_data[i].u.num);
break;
default:
@@ -7641,7 +7587,7 @@ int run_func (struct script_state *st)
if (battle_config.error_log)
printf ("run_func : %s? (%d(%d))\n", str_buf + str_data[func].str,
func, str_data[func].type);
- push_val (st->stack, C_INT, 0);
+ push_val (st->stack, ScriptCode::INT, 0);
}
pop_stack (st->stack, start_sp, end_sp);
@@ -7650,11 +7596,10 @@ int run_func (struct script_state *st)
{
// ユーザー定義関数からの復帰
int olddefsp = st->defsp;
- int i;
pop_stack (st->stack, st->defsp, start_sp); // 復帰に邪魔なスタック削除
if (st->defsp < 4
- || st->stack->stack_data[st->defsp - 1].type != C_RETINFO)
+ || st->stack->stack_data[st->defsp - 1].type != ScriptCode::RETINFO)
{
printf
("script:run_func(return) return without callfunc or callsub!\n");
@@ -7663,7 +7608,7 @@ int run_func (struct script_state *st)
}
i = conv_num (st, &(st->stack->stack_data[st->defsp - 4])); // 引数の数所得
st->pos = conv_num (st, &(st->stack->stack_data[st->defsp - 1])); // スクリプト位置の復元
- st->script = (char *) conv_num (st, &(st->stack->stack_data[st->defsp - 2])); // スクリプトを復元
+ st->script = (ScriptCode *) conv_num (st, &(st->stack->stack_data[st->defsp - 2])); // スクリプトを復元
st->defsp = conv_num (st, &(st->stack->stack_data[st->defsp - 3])); // 基準スタックポインタを復元
pop_stack (st->stack, olddefsp - 4 - i, olddefsp); // 要らなくなったスタック(引数と復帰用データ)削除
@@ -7678,10 +7623,11 @@ int run_func (struct script_state *st)
* スクリプトの実行メイン部分
*------------------------------------------
*/
-int run_script_main (unsigned char *script, int pos, int rid, int oid,
- struct script_state *st, unsigned char *rootscript)
+static
+int run_script_main (const ScriptCode *script, int pos_, int rid, int oid,
+ struct script_state *st, const ScriptCode *rootscript)
{
- int c, rerun_pos;
+ int rerun_pos;
int cmdcount = script_config.check_cmdcount;
int gotocount = script_config.check_gotocount;
struct script_stack *stack = st->stack;
@@ -7692,9 +7638,9 @@ int run_script_main (unsigned char *script, int pos, int rid, int oid,
rerun_pos = st->pos;
for (st->state = 0; st->state == 0;)
{
- switch (c = get_com (script, &st->pos))
+ switch (ScriptCode c = get_com (script, &st->pos))
{
- case C_EOL:
+ case ScriptCode::EOL:
if (stack->sp != st->defsp)
{
if (battle_config.error_log)
@@ -7704,22 +7650,22 @@ int run_script_main (unsigned char *script, int pos, int rid, int oid,
}
rerun_pos = st->pos;
break;
- case C_INT:
- push_val (stack, C_INT, get_num (script, &st->pos));
+ case ScriptCode::INT:
+ push_val (stack, ScriptCode::INT, get_num (script, &st->pos));
break;
- case C_POS:
- case C_NAME:
+ case ScriptCode::POS:
+ case ScriptCode::NAME:
push_val (stack, c, (*(int *) (script + st->pos)) & 0xffffff);
st->pos += 3;
break;
- case C_ARG:
+ case ScriptCode::ARG:
push_val (stack, c, 0);
break;
- case C_STR:
- push_str (stack, C_CONSTSTR, script + st->pos);
- while (script[st->pos++]);
+ case ScriptCode::STR:
+ push_str (stack, ScriptCode::CONSTSTR, reinterpret_cast<const char *>(script + st->pos));
+ while (script[st->pos++] != ScriptCode::NOP);
break;
- case C_FUNC:
+ case ScriptCode::FUNC:
run_func (st);
if (st->state == GOTO)
{
@@ -7734,43 +7680,43 @@ int run_script_main (unsigned char *script, int pos, int rid, int oid,
}
break;
- case C_ADD:
+ case ScriptCode::ADD:
op_add (st);
break;
- case C_SUB:
- case C_MUL:
- case C_DIV:
- case C_MOD:
- case C_EQ:
- case C_NE:
- case C_GT:
- case C_GE:
- case C_LT:
- case C_LE:
- case C_AND:
- case C_OR:
- case C_XOR:
- case C_LAND:
- case C_LOR:
- case C_R_SHIFT:
- case C_L_SHIFT:
+ case ScriptCode::SUB:
+ case ScriptCode::MUL:
+ case ScriptCode::DIV:
+ case ScriptCode::MOD:
+ case ScriptCode::EQ:
+ case ScriptCode::NE:
+ case ScriptCode::GT:
+ case ScriptCode::GE:
+ case ScriptCode::LT:
+ case ScriptCode::LE:
+ case ScriptCode::AND:
+ case ScriptCode::OR:
+ case ScriptCode::XOR:
+ case ScriptCode::LAND:
+ case ScriptCode::LOR:
+ case ScriptCode::R_SHIFT:
+ case ScriptCode::L_SHIFT:
op_2 (st, c);
break;
- case C_NEG:
- case C_NOT:
- case C_LNOT:
+ case ScriptCode::NEG:
+ case ScriptCode::NOT:
+ case ScriptCode::LNOT:
op_1num (st, c);
break;
- case C_NOP:
+ case ScriptCode::NOP:
st->state = END;
break;
default:
if (battle_config.error_log)
- printf ("unknown command : %d @ %d\n", c, pos);
+ printf ("unknown command : %d @ %d\n", c, pos_);
st->state = END;
break;
}
@@ -7825,23 +7771,23 @@ int run_script_main (unsigned char *script, int pos, int rid, int oid,
* スクリプトの実行
*------------------------------------------
*/
-int run_script (unsigned char *script, int pos, int rid, int oid)
+int run_script (const ScriptCode *script, int pos_, int rid, int oid)
{
- return run_script_l (script, pos, rid, oid, 0, NULL);
+ return run_script_l (script, pos_, rid, oid, 0, NULL);
}
-int run_script_l (unsigned char *script, int pos, int rid, int oid,
+int run_script_l (const ScriptCode *script, int pos_, int rid, int oid,
int args_nr, argrec_t * args)
{
struct script_stack stack;
struct script_state st;
struct map_session_data *sd = map_id2sd (rid);
- unsigned char *rootscript = script;
+ const ScriptCode *rootscript = script;
int i;
- if (script == NULL || pos < 0)
+ if (script == NULL || pos_ < 0)
return -1;
- if (sd && sd->npc_stackbuf && sd->npc_scriptroot == (char *) rootscript)
+ if (sd && sd->npc_stackbuf && sd->npc_scriptroot == rootscript)
{
// 前回のスタックを復帰
script = sd->npc_script;
@@ -7863,7 +7809,7 @@ int run_script_l (unsigned char *script, int pos, int rid, int oid,
calloc (stack.sp_max, sizeof (stack.stack_data[0]));
}
st.stack = &stack;
- st.pos = pos;
+ st.pos = pos_;
st.rid = rid;
st.oid = oid;
for (i = 0; i < args_nr; i++)
@@ -7873,7 +7819,7 @@ int run_script_l (unsigned char *script, int pos, int rid, int oid,
else
pc_setreg (sd, add_str (args[i].name), args[i].v.i);
}
- run_script_main (script, pos, rid, oid, &st, rootscript);
+ run_script_main (script, pos_, rid, oid, &st, rootscript);
free (stack.stack_data);
stack.stack_data = NULL;
@@ -8046,7 +7992,7 @@ static int set_posword (char *p)
return 0;
}
-int script_config_read (char *cfgName)
+int script_config_read (const char *cfgName)
{
int i;
char line[1024], w1[1024], w2[1024];
diff --git a/src/map/script.hpp b/src/map/script.hpp
index a96bc5a..6b345c4 100644
--- a/src/map/script.hpp
+++ b/src/map/script.hpp
@@ -2,13 +2,48 @@
#ifndef SCRIPT_HPP
#define SCRIPT_HPP
+// values are private, but gcc < 4.6 doesn't
+// support forward-declared enums
+enum class ScriptCode : uint8_t
+#ifdef RECENT_GCC
+;
+#else
+{
+ // types and specials
+ NOP, POS, INT, PARAM, FUNC, STR, CONSTSTR, ARG,
+ NAME, EOL, RETINFO,
+
+ // unary and binary operators
+ LOR, LAND, LE, LT, GE, GT, EQ, NE,
+ XOR, OR, AND, ADD, SUB, MUL, DIV, MOD, NEG, LNOT,
+ NOT, R_SHIFT, L_SHIFT,
+
+ // really nasty workaround for gcc < 4.6
+
+ x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x2a, x2b, x2c, x2d, x2e, x2f,
+ x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x3a, x3b, x3c, x3d, x3e, x3f,
+ x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x4a, x4b, x4c, x4d, x4e, x4f,
+ x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x5a, x5b, x5c, x5d, x5e, x5f,
+ x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x6a, x6b, x6c, x6d, x6e, x6f,
+ x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x7a, x7b, x7c, x7d, x7e, x7f,
+ x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x8a, x8b, x8c, x8d, x8e, x8f,
+ x90, x91, x92, x93, x94, x95, x96, x97, x98, x99, x9a, x9b, x9c, x9d, x9e, x9f,
+ xa0, xa1, xa2, xa3, xa4, xa5, xa6, xa7, xa8, xa9, xaa, xab, xac, xad, xae, xaf,
+ xb0, xb1, xb2, xb3, xb4, xb5, xb6, xb7, xb8, xb9, xba, xbb, xbc, xbd, xbe, xbf,
+ xc0, xc1, xc2, xc3, xc4, xc5, xc6, xc7, xc8, xc9, xca, xcb, xcc, xcd, xce, xcf,
+ xd0, xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8, xd9, xda, xdb, xdc, xdd, xde, xdf,
+ xe0, xe1, xe2, xe3, xe4, xe5, xe6, xe7, xe8, xe9, xea, xeb, xec, xed, xee, xef,
+ xf0, xf1, xf2, xf3, xf4, xf5, xf6, xf7, xf8, xf9, xfa, xfb, xfc, xfd, xfe, xff,
+};
+#endif
+
struct script_data
{
- int type;
+ ScriptCode type;
union
{
int num;
- char *str;
+ const char *str;
} u;
};
@@ -17,33 +52,38 @@ struct script_stack
int sp, sp_max;
struct script_data *stack_data;
};
+
struct script_state
{
struct script_stack *stack;
int start, end;
int pos, state;
int rid, oid;
- char *script, *new_script;
+ const ScriptCode *script, *new_script;
int defsp, new_pos, new_defsp;
};
-unsigned char *parse_script (unsigned char *, int);
+const ScriptCode *parse_script (const char *, int);
typedef struct argrec
{
- char *name;
- union
+ const char *name;
+ union _aru
{
int i;
- char *s;
+ const char *s;
+
+ _aru() = default;
+ _aru(int n) : i(n) {}
+ _aru(const char *z) : s(z) {}
} v;
} argrec_t;
-int run_script_l (unsigned char *, int, int, int, int, argrec_t * args);
-int run_script (unsigned char *, int, int, int);
+int run_script_l (const ScriptCode *, int, int, int, int, argrec_t * args);
+int run_script (const ScriptCode *, int, int, int);
struct dbt *script_get_label_db (void);
struct dbt *script_get_userfunc_db (void);
-int script_config_read (char *cfgName);
+int script_config_read (const char *cfgName);
int do_init_script (void);
int do_final_script (void);
diff --git a/src/map/skill-pools.cpp b/src/map/skill-pools.cpp
index 6ab6ea5..204036d 100644
--- a/src/map/skill-pools.cpp
+++ b/src/map/skill-pools.cpp
@@ -27,7 +27,7 @@
int skill_pool_skills[MAX_POOL_SKILLS];
int skill_pool_skills_size = 0;
-extern void skill_pool_register (int id)
+void skill_pool_register(int id)
{
if (skill_pool_skills_size + 1 >= MAX_POOL_SKILLS)
{
@@ -39,7 +39,7 @@ extern void skill_pool_register (int id)
skill_pool_skills[skill_pool_skills_size++] = id;
}
-char *skill_name (int skill)
+const char *skill_name (int skill)
{
if (skill > 0 && skill < MAX_SKILL_DB)
return skill_names[skill].desc;
diff --git a/src/map/skill.cpp b/src/map/skill.cpp
index 779af98..dfacf8c 100644
--- a/src/map/skill.cpp
+++ b/src/map/skill.cpp
@@ -830,6 +830,7 @@ int skill_get_mhp (int id, int lv)
return (lv <= 0) ? 0 : skill_db[id].mhp[lv - 1];
}
+static
int skill_get_castnodex (int id, int lv)
{
return (lv <= 0) ? 0 : skill_db[id].castnodex[lv - 1];
@@ -840,9 +841,6 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src,
int skillid, int skilllv, int x,
int y, int flag);
int skill_check_condition (struct map_session_data *sd, int type);
-int skill_castend_damage_id (struct block_list *src, struct block_list *bl,
- int skillid, int skilllv, unsigned int tick,
- int flag);
int skill_frostjoke_scream (struct block_list *bl, va_list ap);
int skill_status_change_timer_sub (struct block_list *bl, va_list ap);
int skill_attack_area (struct block_list *bl, va_list ap);
@@ -1533,6 +1531,7 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl,
/*=========================================================================
スキル攻撃吹き飛ばし処理
-------------------------------------------------------------------------*/
+static
int skill_blown (struct block_list *src, struct block_list *target, int count)
{
int dx = 0, dy = 0, nx, ny;
@@ -2091,6 +2090,7 @@ int skill_attack (int attack_type, struct block_list *src,
static int skill_area_temp[8]; /* 一時変数。必要なら使う。 */
typedef int (*SkillFunc) (struct block_list *, struct block_list *, int, int,
unsigned int, int);
+static
int skill_area_sub (struct block_list *bl, va_list ap)
{
struct block_list *src;
@@ -2237,6 +2237,7 @@ int skill_check_unit_range2 (int m, int x, int y, int range)
* 範囲スキル使用処理小分けここから
*/
/* 対象の数をカウントする。(skill_area_temp[0]を初期化しておくこと) */
+static
int skill_area_sub_count (struct block_list *src, struct block_list *target,
int skillid, int skilllv, unsigned int tick,
int flag)
@@ -2250,7 +2251,7 @@ int skill_area_sub_count (struct block_list *src, struct block_list *target,
*
*------------------------------------------
*/
-static void skill_timerskill (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
+static void skill_timer (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
struct map_session_data *sd = NULL;
struct mob_data *md = NULL;
@@ -2433,7 +2434,7 @@ int skill_addtimerskill (struct block_list *src, unsigned int tick,
if (sd->skilltimerskill[i].timer == -1)
{
sd->skilltimerskill[i].timer =
- add_timer (tick, skill_timerskill, src->id, i);
+ add_timer (tick, skill_timer, src->id, i);
sd->skilltimerskill[i].src_id = src->id;
sd->skilltimerskill[i].target_id = target;
sd->skilltimerskill[i].skill_id = skill_id;
@@ -2458,7 +2459,7 @@ int skill_addtimerskill (struct block_list *src, unsigned int tick,
if (md->skilltimerskill[i].timer == -1)
{
md->skilltimerskill[i].timer =
- add_timer (tick, skill_timerskill, src->id, i);
+ add_timer (tick, skill_timer, src->id, i);
md->skilltimerskill[i].src_id = src->id;
md->skilltimerskill[i].target_id = target;
md->skilltimerskill[i].skill_id = skill_id;
@@ -2496,7 +2497,7 @@ int skill_cleartimerskill (struct block_list *src)
{
if (sd->skilltimerskill[i].timer != -1)
{
- delete_timer (sd->skilltimerskill[i].timer, skill_timerskill);
+ delete_timer (sd->skilltimerskill[i].timer, skill_timer);
sd->skilltimerskill[i].timer = -1;
}
}
@@ -2509,7 +2510,7 @@ int skill_cleartimerskill (struct block_list *src)
{
if (md->skilltimerskill[i].timer != -1)
{
- delete_timer (md->skilltimerskill[i].timer, skill_timerskill);
+ delete_timer (md->skilltimerskill[i].timer, skill_timer);
md->skilltimerskill[i].timer = -1;
}
}
@@ -2532,7 +2533,6 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl,
int flag)
{
struct map_session_data *sd = NULL;
- int i;
nullpo_retr (1, src);
nullpo_retr (1, bl);
@@ -2687,7 +2687,7 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl,
flag);
if (sd)
{
- for (i = 1; i < sd->spiritball_old; i++)
+ for (int i = 1; i < sd->spiritball_old; i++)
skill_addtimerskill (src, tick + i * 200, bl->id, 0,
0, skillid, skilllv, BF_WEAPON,
flag);
@@ -3173,7 +3173,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
struct map_session_data *dstsd = NULL;
struct mob_data *md = NULL;
struct mob_data *dstmd = NULL;
- int i;
int sc_def_vit, sc_def_mdef, strip_fix, strip_time, strip_per;
int sc_dex, sc_luk;
//クラスチェンジ用ボスモンスターID
@@ -3727,7 +3726,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
map_freeblock_unlock ();
return 1;
}
- for (i = 0; i < skilllv; i++)
+ for (int i = 0; i < skilllv; i++)
{
if (!sd->dev.val1[i])
{ // 空きがあったら入れる
@@ -3764,7 +3763,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
if (sd)
{
clif_skill_nodamage (src, bl, skillid, skilllv, 1);
- for (i = 0; i < 5; i++)
+ for (int i = 0; i < 5; i++)
pc_addspiritball (sd, skill_get_time (skillid, skilllv),
5);
}
@@ -3776,7 +3775,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
skill_get_time (skillid, skilllv), 0);
break;
case MO_ABSORBSPIRITS: // 気奪
- i = 0;
+ {
+ int i = 0;
if (sd && dstsd)
{
if (sd == dstsd || map[sd->bl.m].flag.pvp
@@ -3811,6 +3811,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
else
clif_skill_nodamage (src, bl, skillid, skilllv, 0);
break;
+ }
case AC_MAKINGARROW: /* 矢作成 */
/* if(sd) {
@@ -4334,7 +4335,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
skilllv, 0, 0, 0, strip_time, 0);
if (dstsd)
{
- for (i = 0; i < MAX_INVENTORY; i++)
+ for (int i = 0; i < MAX_INVENTORY; i++)
{
if (dstsd->status.inventory[i].equip
&& dstsd->status.inventory[i].equip & 0x0002)
@@ -4364,7 +4365,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
skilllv, 0, 0, 0, strip_time, 0);
if (dstsd)
{
- for (i = 0; i < MAX_INVENTORY; i++)
+ for (int i = 0; i < MAX_INVENTORY; i++)
{
if (dstsd->status.inventory[i].equip
&& dstsd->status.inventory[i].equip & 0x0020)
@@ -4394,7 +4395,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
skilllv, 0, 0, 0, strip_time, 0);
if (dstsd)
{
- for (i = 0; i < MAX_INVENTORY; i++)
+ for (int i = 0; i < MAX_INVENTORY; i++)
{
if (dstsd->status.inventory[i].equip
&& dstsd->status.inventory[i].equip & 0x0010)
@@ -4423,7 +4424,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
skilllv, 0, 0, 0, strip_time, 0);
if (dstsd)
{
- for (i = 0; i < MAX_INVENTORY; i++)
+ for (int i = 0; i < MAX_INVENTORY; i++)
{
if (dstsd->status.inventory[i].equip
&& dstsd->status.inventory[i].equip & 0x0100)
@@ -4956,7 +4957,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
{
struct skill_unit *su = NULL;
struct item item_tmp;
- int flag;
if ((bl->type == BL_SKILL) &&
(su = (struct skill_unit *) bl) &&
(su->group->src_id == src->id || map[bl->m].flag.pvp
@@ -4969,7 +4969,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
{
if (battle_config.skill_removetrap_type == 1)
{
- for (i = 0; i < 10; i++)
+ for (int i = 0; i < 10; i++)
{
if (skill_db[su->group->skill_id].itemid[i] >
0)
@@ -4979,14 +4979,15 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
skill_db[su->group->
skill_id].itemid[i];
item_tmp.identify = 1;
+ int item_flag;
if (item_tmp.nameid
- && (flag =
+ && (item_flag =
pc_additem (sd, &item_tmp,
skill_db[su->
group->skill_id].amount
[i])))
{
- clif_additem (sd, 0, 0, flag);
+ clif_additem (sd, 0, 0, item_flag);
map_addflooritem (&item_tmp,
skill_db[su->
group->skill_id].amount
@@ -5003,10 +5004,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
memset (&item_tmp, 0, sizeof (item_tmp));
item_tmp.nameid = 1065;
item_tmp.identify = 1;
+ int item_flag;
if (item_tmp.nameid
- && (flag = pc_additem (sd, &item_tmp, 1)))
+ && (item_flag = pc_additem (sd, &item_tmp, 1)))
{
- clif_additem (sd, 0, 0, flag);
+ clif_additem (sd, 0, 0, item_flag);
map_addflooritem (&item_tmp, 1, sd->bl.m,
sd->bl.x, sd->bl.y, NULL,
NULL, NULL, 0);
@@ -5143,6 +5145,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
* スキル使用(詠唱完了、ID指定)
*------------------------------------------
*/
+static
void skill_castend_id (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
struct map_session_data *sd = map_id2sd (id) /*,*target_sd=NULL */ ;
@@ -5414,7 +5417,7 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid,
case WZ_METEOR: //メテオストーム
{
- int flag = 0;
+ int flag_ = 0;
for (i = 0; i < 2 + (skilllv >> 1); i++)
{
int j = 0, c;
@@ -5436,21 +5439,21 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid,
&& j < 100);
if (j >= 100)
continue;
- if (flag == 0)
+ if (flag_ == 0)
{
clif_skill_poseffect (src, skillid, skilllv, tmpx, tmpy,
tick);
- flag = 1;
+ flag_ = 1;
}
if (i > 0)
skill_addtimerskill (src, tick + i * 1000, 0, tmpx, tmpy,
skillid, skilllv, (x1 << 16) | y1,
- flag);
+ flag_);
x1 = tmpx;
y1 = tmpy;
}
skill_addtimerskill (src, tick + i * 1000, 0, tmpx, tmpy, skillid,
- skilllv, -1, flag);
+ skilllv, -1, flag_);
}
break;
@@ -5534,7 +5537,7 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid,
*------------------------------------------
*/
int skill_castend_map (struct map_session_data *sd, int skill_num,
- const char *map)
+ const char *mapname)
{
int x = 0, y = 0;
@@ -5563,16 +5566,16 @@ int skill_castend_map (struct map_session_data *sd, int skill_num,
if (battle_config.pc_skill_log)
printf ("PC %d skill castend skill =%d map=%s\n", sd->bl.id,
- skill_num, map);
+ skill_num, mapname);
pc_stop_walking (sd, 0);
- if (strcmp (map, "cancel") == 0)
+ if (strcmp (mapname, "cancel") == 0)
return 0;
switch (skill_num)
{
case AL_TELEPORT: /* テレポート */
- if (strcmp (map, "Random") == 0)
+ if (strcmp (mapname, "Random") == 0)
pc_randomwarp (sd, 3);
else
pc_setpos (sd, sd->status.save_point.map,
@@ -5611,7 +5614,7 @@ int skill_castend_map (struct map_session_data *sd, int skill_num,
for (i = 0; i < sd->skilllv; i++)
{
- if (strcmp (map, p[i]->map) == 0)
+ if (strcmp (mapname, p[i]->map) == 0)
{
x = p[i]->x;
y = p[i]->y;
@@ -5646,8 +5649,8 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src,
int y, int flag)
{
struct skill_unit_group *group;
- int i, count = 1, limit = 10000, val1 = 0, val2 = 0;
- int target = BCT_ENEMY, interval = 1000, range = 0;
+ int i, count = 1, limit_ = 10000, val1_ = 0, val2_ = 0;
+ int target = BCT_ENEMY, interval = 1000, range_ = 0;
int dir = 0, aoe_diameter = 0; // -- aoe_diameter (moonsoul) added for sage Area Of Effect skills
nullpo_retr (0, src);
@@ -5656,8 +5659,8 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src,
{ /* 設定 */
case MG_SAFETYWALL: /* セイフティウォール */
- limit = skill_get_time (skillid, skilllv);
- val2 = skilllv + 1;
+ limit_ = skill_get_time (skillid, skilllv);
+ val2_ = skilllv + 1;
interval = -1;
target = (battle_config.defnotenemy) ? BCT_NOENEMY : BCT_ALL;
break;
@@ -5671,13 +5674,13 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src,
count = 5;
else
count = 3;
- limit = skill_get_time (skillid, skilllv);
- val2 = 4 + skilllv;
+ limit_ = skill_get_time (skillid, skilllv);
+ val2_ = 4 + skilllv;
interval = 1;
break;
case AL_PNEUMA: /* ニューマ */
- limit = skill_get_time (skillid, skilllv);
+ limit_ = skill_get_time (skillid, skilllv);
interval = -1;
target = (battle_config.defnotenemy) ? BCT_NOENEMY : BCT_ALL;
count = 9;
@@ -5685,81 +5688,81 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src,
case AL_WARP: /* ワープポータル */
target = BCT_ALL;
- val1 = skilllv + 6;
+ val1_ = skilllv + 6;
if (flag == 0)
- limit = 2000;
+ limit_ = 2000;
else
- limit = skill_get_time (skillid, skilllv);
+ limit_ = skill_get_time (skillid, skilllv);
break;
case PR_SANCTUARY: /* サンクチュアリ */
count = 21;
- limit = skill_get_time (skillid, skilllv);
- val1 = skilllv + 3;
- val2 = (skilllv > 6) ? 777 : skilllv * 100;
+ limit_ = skill_get_time (skillid, skilllv);
+ val1_ = skilllv + 3;
+ val2_ = (skilllv > 6) ? 777 : skilllv * 100;
target = BCT_ALL;
- range = 1;
+ range_ = 1;
break;
case PR_MAGNUS: /* マグヌスエクソシズム */
count = 33;
- limit = skill_get_time (skillid, skilllv);
+ limit_ = skill_get_time (skillid, skilllv);
interval = 3000;
break;
case WZ_FIREPILLAR: /* ファイアーピラー */
if (flag == 0)
- limit = skill_get_time (skillid, skilllv);
+ limit_ = skill_get_time (skillid, skilllv);
else
- limit = 1000;
+ limit_ = 1000;
interval = 2000;
- val1 = skilllv + 2;
- range = 1;
+ val1_ = skilllv + 2;
+ range_ = 1;
break;
case MG_THUNDERSTORM: /* サンダーストーム */
- limit = 500;
- range = 1;
+ limit_ = 500;
+ range_ = 1;
break;
case WZ_FROSTNOVA: /* フロストノヴァ */
- limit = 500;
- range = 5;
+ limit_ = 500;
+ range_ = 5;
break;
case WZ_HEAVENDRIVE: /* ヘヴンズドライブ */
- limit = 500;
- range = 2;
+ limit_ = 500;
+ range_ = 2;
break;
case WZ_METEOR: /* メテオストーム */
- limit = 500;
- range = 3;
+ limit_ = 500;
+ range_ = 3;
break;
case WZ_SIGHTRASHER:
- limit = 500;
+ limit_ = 500;
count = 41;
break;
case WZ_VERMILION: /* ロードオブヴァーミリオン */
- limit = 4100;
+ limit_ = 4100;
interval = 1000;
- range = 6;
+ range_ = 6;
break;
case WZ_ICEWALL: /* アイスウォール */
- limit = skill_get_time (skillid, skilllv);
+ limit_ = skill_get_time (skillid, skilllv);
count = 5;
break;
case WZ_STORMGUST: /* ストームガスト */
- limit = 4600;
+ limit_ = 4600;
interval = 450;
- range = 5;
+ range_ = 5;
break;
case WZ_QUAGMIRE: /* クァグマイア */
- limit = skill_get_time (skillid, skilllv);
+ limit_ = skill_get_time (skillid, skilllv);
interval = 200;
count = 25;
break;
@@ -5773,45 +5776,45 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src,
case HT_FREEZINGTRAP: /* フリージングトラップ */
case HT_BLASTMINE: /* ブラストマイン */
case HT_CLAYMORETRAP: /* クレイモアートラップ */
- limit = skill_get_time (skillid, skilllv);
- range = 1;
+ limit_ = skill_get_time (skillid, skilllv);
+ range_ = 1;
break;
case HT_TALKIEBOX: /* トーキーボックス */
- limit = skill_get_time (skillid, skilllv);
- range = 1;
+ limit_ = skill_get_time (skillid, skilllv);
+ range_ = 1;
target = BCT_ALL;
break;
case HT_SHOCKWAVE: /* ショックウェーブトラップ */
- limit = skill_get_time (skillid, skilllv);
- range = 1;
- val1 = skilllv * 15 + 10;
+ limit_ = skill_get_time (skillid, skilllv);
+ range_ = 1;
+ val1_ = skilllv * 15 + 10;
break;
case AS_VENOMDUST: /* ベノムダスト */
- limit = skill_get_time (skillid, skilllv);
+ limit_ = skill_get_time (skillid, skilllv);
interval = 1000;
count = 5;
break;
case CR_GRANDCROSS: /* グランドクロス */
count = 29;
- limit = 1000;
+ limit_ = 1000;
interval = 300;
break;
case SA_VOLCANO: /* ボルケーノ */
case SA_DELUGE: /* デリュージ */
case SA_VIOLENTGALE: /* バイオレントゲイル */
- limit = skill_get_time (skillid, skilllv);
+ limit_ = skill_get_time (skillid, skilllv);
count = skilllv <= 2 ? 25 : (skilllv <= 4 ? 49 : 81);
target = BCT_ALL;
break;
case SA_LANDPROTECTOR: /* グランドクロス */
- limit = skill_get_time (skillid, skilllv); // changed to get duration from cast_db (moonsoul)
- val1 = skilllv * 15 + 10;
+ limit_ = skill_get_time (skillid, skilllv); // changed to get duration from cast_db (moonsoul)
+ val1_ = skilllv * 15 + 10;
aoe_diameter = skilllv + skilllv % 2 + 5;
target = BCT_ALL;
count = aoe_diameter * aoe_diameter; // -- this will not function if changed to ^2 (moonsoul)
@@ -5821,8 +5824,8 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src,
case BD_ETERNALCHAOS: /* エターナルカオス */
case BD_ROKISWEIL: /* ロキの叫び */
count = 81;
- limit = skill_get_time (skillid, skilllv);
- range = 5;
+ limit_ = skill_get_time (skillid, skilllv);
+ range_ = 5;
target = BCT_ALL;
break;
case BD_RICHMANKIM:
@@ -5831,165 +5834,165 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src,
case BD_INTOABYSS: /* 深淵の中に */
case BD_SIEGFRIED: /* 不死身のジークフリード */
count = 81;
- limit = skill_get_time (skillid, skilllv);
- range = 5;
+ limit_ = skill_get_time (skillid, skilllv);
+ range_ = 5;
target = BCT_PARTY;
break;
case BA_WHISTLE: /* 口笛 */
count = 49;
- limit = skill_get_time (skillid, skilllv);
- range = 5;
+ limit_ = skill_get_time (skillid, skilllv);
+ range_ = 5;
target = BCT_NOENEMY;
if (src->type == BL_PC)
- val1 =
+ val1_ =
(pc_checkskill
((struct map_session_data *) src,
BA_MUSICALLESSON) + 1) >> 1;
- val2 = ((battle_get_agi (src) / 10) & 0xffff) << 16;
- val2 |= (battle_get_luk (src) / 10) & 0xffff;
+ val2_ = ((battle_get_agi (src) / 10) & 0xffff) << 16;
+ val2_ |= (battle_get_luk (src) / 10) & 0xffff;
break;
case DC_HUMMING: /* ハミング */
count = 49;
- limit = skill_get_time (skillid, skilllv);
- range = 5;
+ limit_ = skill_get_time (skillid, skilllv);
+ range_ = 5;
target = BCT_NOENEMY;
if (src->type == BL_PC)
- val1 =
+ val1_ =
(pc_checkskill
((struct map_session_data *) src,
DC_DANCINGLESSON) + 1) >> 1;
- val2 = battle_get_dex (src) / 10;
+ val2_ = battle_get_dex (src) / 10;
break;
case BA_DISSONANCE: /* 不協和音 */
case DC_UGLYDANCE: /* 自分勝手なダンス */
count = 49;
- limit = skill_get_time (skillid, skilllv);
- range = 5;
+ limit_ = skill_get_time (skillid, skilllv);
+ range_ = 5;
target = BCT_ENEMY;
break;
case DC_DONTFORGETME: /* 私を忘れないで… */
count = 49;
- limit = skill_get_time (skillid, skilllv);
- range = 5;
+ limit_ = skill_get_time (skillid, skilllv);
+ range_ = 5;
target = BCT_ENEMY;
if (src->type == BL_PC)
- val1 =
+ val1_ =
(pc_checkskill
((struct map_session_data *) src,
DC_DANCINGLESSON) + 1) >> 1;
- val2 = ((battle_get_str (src) / 20) & 0xffff) << 16;
- val2 |= (battle_get_agi (src) / 10) & 0xffff;
+ val2_ = ((battle_get_str (src) / 20) & 0xffff) << 16;
+ val2_ |= (battle_get_agi (src) / 10) & 0xffff;
break;
case BA_POEMBRAGI: /* ブラギの詩 */
count = 49;
- limit = skill_get_time (skillid, skilllv);
- range = 5;
+ limit_ = skill_get_time (skillid, skilllv);
+ range_ = 5;
target = BCT_NOENEMY;
if (src->type == BL_PC)
- val1 =
+ val1_ =
pc_checkskill ((struct map_session_data *) src,
BA_MUSICALLESSON);
- val2 = ((battle_get_dex (src) / 10) & 0xffff) << 16;
- val2 |= (battle_get_int (src) / 5) & 0xffff;
+ val2_ = ((battle_get_dex (src) / 10) & 0xffff) << 16;
+ val2_ |= (battle_get_int (src) / 5) & 0xffff;
break;
case BA_APPLEIDUN: /* イドゥンの林檎 */
count = 49;
- limit = skill_get_time (skillid, skilllv);
- range = 5;
+ limit_ = skill_get_time (skillid, skilllv);
+ range_ = 5;
target = BCT_NOENEMY;
if (src->type == BL_PC)
- val1 =
+ val1_ =
((pc_checkskill
((struct map_session_data *) src,
BA_MUSICALLESSON)) & 0xffff) << 16;
else
- val1 = 0;
- val1 |= (battle_get_vit (src)) & 0xffff;
- val2 = 0; //回復用タイムカウンタ(6秒毎に1増加)
+ val1_ = 0;
+ val1_ |= (battle_get_vit (src)) & 0xffff;
+ val2_ = 0; //回復用タイムカウンタ(6秒毎に1増加)
break;
case DC_SERVICEFORYOU: /* サービスフォーユー */
count = 49;
- limit = skill_get_time (skillid, skilllv);
- range = 5;
+ limit_ = skill_get_time (skillid, skilllv);
+ range_ = 5;
target = BCT_PARTY;
if (src->type == BL_PC)
- val1 =
+ val1_ =
(pc_checkskill
((struct map_session_data *) src,
DC_DANCINGLESSON) + 1) >> 1;
- val2 = battle_get_int (src) / 10;
+ val2_ = battle_get_int (src) / 10;
break;
case BA_ASSASSINCROSS: /* 夕陽のアサシンクロス */
count = 49;
- limit = skill_get_time (skillid, skilllv);
- range = 5;
+ limit_ = skill_get_time (skillid, skilllv);
+ range_ = 5;
target = BCT_NOENEMY;
if (src->type == BL_PC)
- val1 =
+ val1_ =
(pc_checkskill
((struct map_session_data *) src,
BA_MUSICALLESSON) + 1) >> 1;
- val2 = battle_get_agi (src) / 20;
+ val2_ = battle_get_agi (src) / 20;
break;
case DC_FORTUNEKISS: /* 幸運のキス */
count = 49;
- limit = skill_get_time (skillid, skilllv);
- range = 5;
+ limit_ = skill_get_time (skillid, skilllv);
+ range_ = 5;
target = BCT_NOENEMY;
if (src->type == BL_PC)
- val1 =
+ val1_ =
(pc_checkskill
((struct map_session_data *) src,
DC_DANCINGLESSON) + 1) >> 1;
- val2 = battle_get_luk (src) / 10;
+ val2_ = battle_get_luk (src) / 10;
break;
case AM_DEMONSTRATION: /* デモンストレーション */
- limit = skill_get_time (skillid, skilllv);
+ limit_ = skill_get_time (skillid, skilllv);
interval = 1000;
- range = 1;
+ range_ = 1;
target = BCT_ENEMY;
break;
case WE_CALLPARTNER: /* あなたに逢いたい */
- limit = skill_get_time (skillid, skilllv);
- range = -1;
+ limit_ = skill_get_time (skillid, skilllv);
+ range_ = -1;
break;
case HP_BASILICA: /* バジリカ */
- limit = skill_get_time (skillid, skilllv);
+ limit_ = skill_get_time (skillid, skilllv);
target = BCT_ALL;
- range = 3;
+ range_ = 3;
//Fix to prevent the priest from walking while Basilica is up.
battle_stopwalking (src, 1);
- skill_status_change_start (src, SC_ANKLE, skilllv, 0, 0, 0, limit,
+ skill_status_change_start (src, SC_ANKLE, skilllv, 0, 0, 0, limit_,
0);
break;
case PA_GOSPEL: /* ゴスペル */
count = 49;
target = BCT_PARTY;
- limit = skill_get_time (skillid, skilllv);
+ limit_ = skill_get_time (skillid, skilllv);
break;
case PF_FOGWALL: /* フォグウォール */
count = 15;
- limit = skill_get_time (skillid, skilllv);
+ limit_ = skill_get_time (skillid, skilllv);
break;
case RG_GRAFFITI: /* Graffiti */
count = 1; // Leave this at 1 [Valaris]
- limit = 600000; // Time length [Valaris]
+ limit_ = 600000; // Time length [Valaris]
break;
};
nullpo_retr (NULL, group =
skill_initunitgroup (src, count, skillid, skilllv,
skill_get_unit_id (skillid, flag & 1)));
- group->limit = limit;
- group->val1 = val1;
- group->val2 = val2;
+ group->limit = limit_;
+ group->val1 = val1_;
+ group->val2 = val2_;
group->target_flag = target;
group->interval = interval;
- group->range = range;
+ group->range = range_;
if (skillid == HT_TALKIEBOX || skillid == RG_GRAFFITI)
{
CREATE (group->valstr, char, 80);
@@ -6087,8 +6090,6 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src,
case WZ_ICEWALL: /* アイスウォール */
{
- static const int dirx[8] = { 0, -1, -1, -1, 0, 1, 1, 1 };
- static const int diry[8] = { 1, 1, 0, -1, -1, -1, 0, 1 };
if (skilllv <= 1)
val1 = 500;
else
@@ -6261,6 +6262,7 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src,
* スキルユニットの発動イベント
*------------------------------------------
*/
+static
int skill_unit_onplace (struct skill_unit *src, struct block_list *bl,
unsigned int tick)
{
@@ -6721,6 +6723,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl,
* スキルユニットから離脱する(もしくはしている)場合
*------------------------------------------
*/
+static
int skill_unit_onout (struct skill_unit *src, struct block_list *bl,
unsigned int tick)
{
@@ -6850,6 +6853,7 @@ int skill_unit_onout (struct skill_unit *src, struct block_list *bl,
* スキルユニットの削除イベント
*------------------------------------------
*/
+static
int skill_unit_ondelete (struct skill_unit *src, struct block_list *bl,
unsigned int tick)
{
@@ -6907,6 +6911,7 @@ int skill_unit_ondelete (struct skill_unit *src, struct block_list *bl,
* スキルユニットの限界イベント
*------------------------------------------
*/
+static
int skill_unit_onlimit (struct skill_unit *src, unsigned int tick)
{
struct skill_unit_group *sg;
@@ -6987,6 +6992,7 @@ int skill_unit_ondamaged (struct skill_unit *src, struct block_list *bl,
* スキル使用(詠唱完了、場所指定)
*------------------------------------------
*/
+static
void skill_castend_pos (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
struct map_session_data *sd = map_id2sd (id) /*,*target_sd=NULL */ ;
@@ -7345,7 +7351,7 @@ static int skill_check_condition_mob_master_sub (struct block_list *bl,
*/
int skill_check_condition (struct map_session_data *sd, int type)
{
- int i, hp, sp, hp_rate, sp_rate, zeny, weapon, state, spiritball, skill,
+ int hp, sp, hp_rate, sp_rate, zeny, weapon, state, spiritball, skill,
lv, mhp;
int index[10], itemid[10], amount[10];
@@ -7418,7 +7424,7 @@ int skill_check_condition (struct map_session_data *sd, int type)
state = skill_db[skill].state;
spiritball = (lv <= 0) ? 0 : skill_db[skill].spiritball[lv - 1];
mhp = skill_get_mhp (skill, lv); /* 消費HP */
- for (i = 0; i < 10; i++)
+ for (int i = 0; i < 10; i++)
{
itemid[i] = skill_db[skill].itemid[i];
amount[i] = skill_db[skill].amount[i];
@@ -7738,7 +7744,7 @@ int skill_check_condition (struct map_session_data *sd, int type)
break;
}
- for (i = 0; i < 10; i++)
+ for (int i = 0; i < 10; i++)
{
int x = lv % 11 - 1;
index[i] = -1;
@@ -7771,7 +7777,7 @@ int skill_check_condition (struct map_session_data *sd, int type)
{
if (skill == AL_WARP && !(type & 2))
return 1;
- for (i = 0; i < 10; i++)
+ for (int i = 0; i < 10; i++)
{
if (index[i] >= 0)
pc_delitem (sd, index[i], amount[i], 0); // アイテム消費
@@ -7910,7 +7916,7 @@ int skill_use_id (struct map_session_data *sd, int target_id,
int skill_num, int skill_lv)
{
unsigned int tick;
- int casttime = 0, delay = 0, skill, range;
+ int casttime = 0, delay = 0, skill, range_;
struct map_session_data *target_sd = NULL;
int forcecast = 0;
struct block_list *bl;
@@ -8093,10 +8099,10 @@ int skill_use_id (struct map_session_data *sd, int target_id,
return 0;
/* 射程と障害物チェック */
- range = skill_get_range (skill_num, skill_lv);
- if (range < 0)
- range = battle_get_range (&sd->bl) - (range + 1);
- if (!battle_check_range (&sd->bl, bl, range))
+ range_ = skill_get_range (skill_num, skill_lv);
+ if (range_ < 0)
+ range_ = battle_get_range (&sd->bl) - (range_ + 1);
+ if (!battle_check_range (&sd->bl, bl, range_))
return 0;
if (bl->type == BL_PC)
@@ -8182,10 +8188,10 @@ int skill_use_id (struct map_session_data *sd, int target_id,
return 0;
target_id = p_sd->bl.id;
//rangeをもう1回検査
- range = skill_get_range (skill_num, skill_lv);
- if (range < 0)
- range = battle_get_range (&sd->bl) - (range + 1);
- if (!battle_check_range (&sd->bl, &p_sd->bl, range))
+ range_ = skill_get_range (skill_num, skill_lv);
+ if (range_ < 0)
+ range_ = battle_get_range (&sd->bl) - (range_ + 1);
+ if (!battle_check_range (&sd->bl, &p_sd->bl, range_))
{
return 0;
}
@@ -8978,6 +8984,7 @@ int skill_landprotector (struct block_list *bl, va_list ap)
* イドゥンの林檎の回復処理(foreachinarea)
*------------------------------------------
*/
+static
int skill_idun_heal (struct block_list *bl, va_list ap)
{
struct skill_unit *unit;
@@ -11331,6 +11338,7 @@ int skill_unitgrouptickset_delete (struct block_list *bl, int group_id)
* スキルユニットタイマー発動処理用(foreachinarea)
*------------------------------------------
*/
+static
int skill_unit_timer_sub_onplace (struct block_list *bl, va_list ap)
{
struct block_list *src;
@@ -11385,6 +11393,7 @@ int skill_unit_timer_sub_ondelete (struct block_list *bl, va_list ap)
* スキルユニットタイマー処理用(foreachobject)
*------------------------------------------
*/
+static
int skill_unit_timer_sub (struct block_list *bl, va_list ap)
{
struct skill_unit *unit;
@@ -11475,6 +11484,7 @@ int skill_unit_timer_sub (struct block_list *bl, va_list ap)
* スキルユニットタイマー処理
*------------------------------------------
*/
+static
void skill_unit_timer (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data)
{
map_freeblock_lock ();
@@ -11488,6 +11498,7 @@ void skill_unit_timer (timer_id tid, tick_t tick, custom_id_t id, custom_data_t
* スキルユニット移動時処理用(foreachinarea)
*------------------------------------------
*/
+static
int skill_unit_out_all_sub (struct block_list *bl, va_list ap)
{
struct skill_unit *unit;
@@ -11543,6 +11554,7 @@ int skill_unit_out_all (struct block_list *bl, unsigned int tick, int range)
* スキルユニット移動時処理用(foreachinarea)
*------------------------------------------
*/
+static
int skill_unit_move_sub (struct block_list *bl, va_list ap)
{
struct skill_unit *unit;
@@ -11601,6 +11613,7 @@ int skill_unit_move (struct block_list *bl, unsigned int tick, int range)
* スキルユニット自体の移動時処理(foreachinarea)
*------------------------------------------
*/
+static
int skill_unit_move_unit_group_sub (struct block_list *bl, va_list ap)
{
struct skill_unit *unit;
@@ -11814,14 +11827,13 @@ static int scan_stat (char *statname)
return 0;
}
-extern void skill_pool_register (int id); // [Fate] Remember that a certain skill ID belongs to a pool skill
-
/*==========================================
* スキル関係ファイル読み込み
* skill_db.txt スキルデータ
* skill_cast_db.txt スキルの詠唱時間とディレイデータ
*------------------------------------------
*/
+static
int skill_readdb (void)
{
int i, j, k, l;
@@ -11933,14 +11945,15 @@ int skill_readdb (void)
skill_db[i].stat = scan_stat (split[16]);
- skill_names[i].desc = strdup (split[17]);
+ char *tmp = strdup (split[17]);
+ skill_names[i].desc = tmp;
{ // replace "_" by " "
- char *s = skill_names[i].desc;
+ char *s = tmp;
while ((s = strchr (s, '_')))
*s = ' ';
- if ((s = strchr (skill_names[i].desc, '\t'))
- || (s = strchr (skill_names[i].desc, ' '))
- || (s = strchr (skill_names[i].desc, '\n')))
+ if ((s = strchr (tmp, '\t'))
+ || (s = strchr (tmp, ' '))
+ || (s = strchr (tmp, '\n')))
*s = '\000';
}
}
diff --git a/src/map/skill.hpp b/src/map/skill.hpp
index e2aaba5..3dea4d3 100644
--- a/src/map/skill.hpp
+++ b/src/map/skill.hpp
@@ -881,11 +881,12 @@ void skill_pool_empty (struct map_session_data *sd); // Deactivate all pool s
int skill_pool_activate (struct map_session_data *sd, int skill); // Skill into skill pool. Return is zero iff okay.
int skill_pool_is_activated (struct map_session_data *sd, int skill); // Skill into skill pool. Return is zero when activated.
int skill_pool_deactivate (struct map_session_data *sd, int skill); // Skill out of skill pool. Return is zero iff okay.
-char *skill_name (int skill); // Yield configurable skill name
+const char *skill_name(int skill); // Yield configurable skill name
int skill_stat (int skill); // Yields the stat associated with a skill. Returns zero if none, or SP_STR, SP_VIT, ... otherwise
int skill_power (struct map_session_data *sd, int skill); // Yields the power of a skill. This is zero if the skill is unknown or if it's a pool skill that is outside of the skill pool,
// otherwise a value from 0 to 255 (with 200 being the `normal maximum')
int skill_power_bl (struct block_list *bl, int skill); // Yields the power of a skill. This is zero if the skill is unknown or if it's a pool skill that is outside of the skill pool,
// otherwise a value from 0 to 255 (with 200 being the `normal maximum')
+void skill_pool_register (int id); // [Fate] Remember that a certain skill ID belongs to a pool skill
#endif
diff --git a/src/map/storage.cpp b/src/map/storage.cpp
index d1d3cb0..7d54343 100644
--- a/src/map/storage.cpp
+++ b/src/map/storage.cpp
@@ -485,6 +485,7 @@ struct guild_storage *guild2storage (int guild_id)
return gs;
}
+static
struct guild_storage *guild2storage2 (int guild_id)
{ //For just locating a storage without creating one. [Skotlex]
return (struct guild_storage *) numdb_search (guild_storage_db, guild_id);
diff --git a/src/map/tmw.cpp b/src/map/tmw.cpp
index 7506270..4b1831b 100644
--- a/src/map/tmw.cpp
+++ b/src/map/tmw.cpp
@@ -30,7 +30,7 @@
#include "storage.hpp"
#include "trade.hpp"
-int tmw_CheckChatSpam (struct map_session_data *sd, char *message)
+int tmw_CheckChatSpam (struct map_session_data *sd, const char *message)
{
nullpo_retr (1, sd);
time_t now = time (NULL);
@@ -86,16 +86,14 @@ int tmw_CheckChatSpam (struct map_session_data *sd, char *message)
(sd->chat_lines_in >= battle_config.chat_spam_warn
|| sd->chat_total_repeats >= battle_config.chat_spam_warn))
{
- /* "WARNING: You are about to be automatically banned for spam!" */
- clif_displaymessage (sd->fd, msg_txt (506));
- /* "WARNING: Please slow down, do not repeat, and do not SHOUT!" */
- clif_displaymessage (sd->fd, msg_txt (507));
+ clif_displaymessage (sd->fd, "WARNING: You are about to be automatically banned for spam!");
+ clif_displaymessage (sd->fd, "WARNING: Please slow down, do not repeat, and do not SHOUT!");
}
return 0;
}
-void tmw_AutoBan(struct map_session_data *sd, char *reason, int length)
+void tmw_AutoBan(struct map_session_data *sd, const char *reason, int length)
{
char anotherbuf[512];
@@ -111,8 +109,7 @@ void tmw_AutoBan(struct map_session_data *sd, char *reason, int length)
map[sd->bl.m].name, sd->bl.x, sd->bl.y,
sd->status.name, length, reason);
- /* "You have been banned for %s spamming. Please do not spam." */
- snprintf (anotherbuf, 511, msg_txt (508), reason);
+ snprintf (anotherbuf, 511, "You have been banned for %s spamming. Please do not spam.", reason);
clif_displaymessage (sd->fd, anotherbuf);
/* type: 2 - ban (year, month, day, hour, minute, second) */
@@ -121,7 +118,7 @@ void tmw_AutoBan(struct map_session_data *sd, char *reason, int length)
}
// Compares the length of two strings and returns that of the shorter
-int tmw_ShorterStrlen (char *s1, char *s2)
+int tmw_ShorterStrlen (const char *s1, const char *s2)
{
int s1_len = strlen (s1);
int s2_len = strlen (s2);
@@ -129,7 +126,7 @@ int tmw_ShorterStrlen (char *s1, char *s2)
}
// Returns true if more than 50% of input message is caps or punctuation
-int tmw_CheckChatLameness (struct map_session_data *sd, char *message)
+int tmw_CheckChatLameness (struct map_session_data *sd, const char *message)
{
int count, lame;
diff --git a/src/map/tmw.hpp b/src/map/tmw.hpp
index 5b20a6c..71de462 100644
--- a/src/map/tmw.hpp
+++ b/src/map/tmw.hpp
@@ -4,11 +4,12 @@
#include "map.hpp"
-int tmw_CheckChatSpam (struct map_session_data *sd, char *message);
-int tmw_ShorterStrlen (char *s1, char *s2);
-int tmw_CheckChatLameness (struct map_session_data *sd, char *message);
+int tmw_CheckChatSpam (struct map_session_data *sd, const char *message);
+int tmw_ShorterStrlen (const char *s1, const char *s2);
+int tmw_CheckChatLameness (struct map_session_data *sd, const char *message);
+__attribute__((format(printf, 1, 2)))
void tmw_GmHackMsg (const char *fmt, ...);
-void tmw_AutoBan (struct map_session_data *sd, char *reason, int length);
+void tmw_AutoBan (struct map_session_data *sd, const char *reason, int length);
void tmw_TrimStr (char *str);
#endif /* TMW_H_ */
diff --git a/src/tool/GNUmakefile b/src/tool/GNUmakefile
index 2efc93b..24ee766 100644
--- a/src/tool/GNUmakefile
+++ b/src/tool/GNUmakefile
@@ -1,7 +1,7 @@
.SUFFIXES:
all:
- make -C ../.. tools
+ ${MAKE} -C ../.. eathena-monitor
clean:
rm -r ../../obj/tool/
%::
- make -C ../.. obj/tool/$@
+ ${MAKE} -C ../.. obj/tool/$@
diff --git a/src/tool/eathena-monitor.cpp b/src/tool/eathena-monitor.cpp
index 1b1abd5..e070c8a 100644
--- a/src/tool/eathena-monitor.cpp
+++ b/src/tool/eathena-monitor.cpp
@@ -73,6 +73,7 @@ const char *config = CONFIG;
pid_t pid_login, pid_map, pid_char;
+static
const char* make_path (const char* base, const char* path) {
size_t base_len = strlen(base);
size_t path_len = strlen(path);
@@ -84,6 +85,7 @@ const char* make_path (const char* base, const char* path) {
return out;
}
+static
void parse_option (char *name, char *value) {
if (!strcasecmp(name, "login_server")) {
login_server = strdup(value);
@@ -100,6 +102,7 @@ void parse_option (char *name, char *value) {
}
}
+static
void read_config(const char *filename) {
FILE *input;
char string[1000];
@@ -138,6 +141,7 @@ void read_config(const char *filename) {
fclose (input);
}
+static
pid_t start_process(const char *exec) {
const char *args[2] = {exec, NULL};
pid_t pid = fork();
@@ -155,6 +159,7 @@ pid_t start_process(const char *exec) {
}
// Kill all children with the same signal we got, then ourself.
+static
void stop_process(int sig) {
if (pid_map) kill(pid_map, sig);
if (pid_login) kill(pid_login, sig);
diff --git a/src/webserver/GNUmakefile b/src/webserver/GNUmakefile
index 9635381..0520440 100644
--- a/src/webserver/GNUmakefile
+++ b/src/webserver/GNUmakefile
@@ -1,7 +1,7 @@
.SUFFIXES:
all:
- make -C ../.. webserver
+ ${MAKE} -C ../.. webserver
clean:
rm -r ../../obj/webserver/
%::
- make -C ../.. obj/webserver/$@
+ ${MAKE} -C ../.. obj/webserver/$@
diff --git a/warnings b/warnings
index 68be903..b9ff330 100644
--- a/warnings
+++ b/warnings
@@ -1,14 +1,12 @@
-Werror=all
-Werror=implicit-function-declaration
-Wextra
--Werror=c++-compat
-Werror=write-strings
-Wunused
-Wshadow
--Wbad-function-cast
-Werror=strict-prototypes
-Werror=old-style-definition
--Wno-missing-declarations
+-Werror=missing-declarations
-Wvla
-Wstack-protector
-Wno-conversion
@@ -22,8 +20,8 @@
-Wtrampolines
-Wfloat-equal
-Wmissing-format-attribute
--Wno-redundant-decls
--Wnested-externs
+-Werror=redundant-decls
-Wno-sign-compare
-Wno-switch
+-Wno-format-zero-length