Fixed some issues from the CppCheck report.
This commit is contained in:
parent
e07a11186d
commit
35d838c9d2
@ -915,7 +915,6 @@ int mapif_parse_broadcast(int fd)
|
|||||||
int mapif_parse_WisRequest(int fd)
|
int mapif_parse_WisRequest(int fd)
|
||||||
{
|
{
|
||||||
struct WisData* wd;
|
struct WisData* wd;
|
||||||
static int wisid = 0;
|
|
||||||
char name[NAME_LENGTH];
|
char name[NAME_LENGTH];
|
||||||
char esc_name[NAME_LENGTH*2+1];// escaped name
|
char esc_name[NAME_LENGTH*2+1];// escaped name
|
||||||
char* data;
|
char* data;
|
||||||
@ -964,6 +963,7 @@ int mapif_parse_WisRequest(int fd)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
static int wisid = 0;
|
||||||
|
|
||||||
CREATE(wd, struct WisData, 1);
|
CREATE(wd, struct WisData, 1);
|
||||||
|
|
||||||
|
@ -71,10 +71,9 @@ void network_init(){
|
|||||||
|
|
||||||
s->type = NST_FREE;
|
s->type = NST_FREE;
|
||||||
s->disconnect_in_progress = false;
|
s->disconnect_in_progress = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize the correspondig event dispatcher
|
// Initialize the corresponding event dispatcher
|
||||||
evdp_init();
|
evdp_init();
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -317,16 +316,18 @@ void network_disconnect(int32 fd){
|
|||||||
|
|
||||||
int32 network_addlistener(bool v6, const char *addr, uint16 port){
|
int32 network_addlistener(bool v6, const char *addr, uint16 port){
|
||||||
SESSION *s;
|
SESSION *s;
|
||||||
int optval, fd;
|
int fd;
|
||||||
|
#ifdef SO_REUSEADDR
|
||||||
|
int optval;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !defined(ENABLE_IPV6)
|
#if !defined(ENABLE_IPV6)
|
||||||
if(v6 == true){
|
if(v6 == true){
|
||||||
ShowError("network_addlistener(%c, '%s', %u): this release has no IPV6 support.\n", (v6==true?'t':'f'), addr, port);
|
ShowError("network_addlistener(%c, '%s', %u): this release has no IPV6 support.\n", (v6==true?'t':'f'), addr, port);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef ENABLE_IPV6
|
#ifdef ENABLE_IPV6
|
||||||
if(v6 == true)
|
if(v6 == true)
|
||||||
fd = socket(AF_INET6, SOCK_STREAM, 0);
|
fd = socket(AF_INET6, SOCK_STREAM, 0);
|
||||||
@ -336,7 +337,7 @@ int32 network_addlistener(bool v6, const char *addr, uint16 port){
|
|||||||
|
|
||||||
// Error?
|
// Error?
|
||||||
if(fd == -1){
|
if(fd == -1){
|
||||||
ShowError("network_addlistener(%c, '%s', %u): socket() failed (errno: %u / %s)\n", (v6==true?'t':'f'), addr, port, errno, strerror(errno));
|
ShowError("network_addlistener(%c, '%s', %u): socket() failed (errno: %u / %s)\n", (v6==true?'t':'f'), addr, port, errno, strerror(errno));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -347,15 +348,13 @@ int32 network_addlistener(bool v6, const char *addr, uint16 port){
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
s = &g_Session[fd];
|
s = &g_Session[fd];
|
||||||
if(s->type != NST_FREE){ // additional checks.. :)
|
if(s->type != NST_FREE){ // additional checks.. :)
|
||||||
ShowError("network_addlistener(%c, '%s', %u): failed, got fd #%u which is already in use in local session table?!\n", (v6==true?'t':'f'), addr, port, fd);
|
ShowError("network_addlistener(%c, '%s', %u): failed, got fd #%u which is already in use in local session table?!\n", (v6==true?'t':'f'), addr, port, fd);
|
||||||
close(fd);
|
close(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Fill ip addr structs
|
// Fill ip addr structs
|
||||||
#ifdef ENABLE_IPV6
|
#ifdef ENABLE_IPV6
|
||||||
if(v6 == true){
|
if(v6 == true){
|
||||||
@ -363,11 +362,10 @@ int32 network_addlistener(bool v6, const char *addr, uint16 port){
|
|||||||
s->addr.v6.sin6_family = AF_INET6;
|
s->addr.v6.sin6_family = AF_INET6;
|
||||||
s->addr.v6.sin6_port = htons(port);
|
s->addr.v6.sin6_port = htons(port);
|
||||||
if(inet_pton(AF_INET6, addr, &s->addr.v6.sin6_addr) != 1){
|
if(inet_pton(AF_INET6, addr, &s->addr.v6.sin6_addr) != 1){
|
||||||
ShowError("network_addlistener(%c, '%s', %u): failed to parse the given IPV6 address.\n", (v6==true?'t':'f'), addr, port);
|
ShowError("network_addlistener(%c, '%s', %u): failed to parse the given IPV6 address.\n", (v6==true?'t':'f'), addr, port);
|
||||||
close(fd);
|
close(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
#endif
|
#endif
|
||||||
memset(&s->addr.v4, 0x00, sizeof(s->addr.v4));
|
memset(&s->addr.v4, 0x00, sizeof(s->addr.v4));
|
||||||
@ -378,11 +376,10 @@ int32 network_addlistener(bool v6, const char *addr, uint16 port){
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// if OS has support for SO_REUSEADDR, apply the flag
|
// if OS has support for SO_REUSEADDR, apply the flag
|
||||||
// so the address could be used when there're still time_wait sockets outstanding from previous application run.
|
// so the address could be used when there're still time_wait sockets outstanding from previous application run.
|
||||||
#ifdef SO_REUSEADDR
|
#ifdef SO_REUSEADDR
|
||||||
optval=1;
|
optval = 1;
|
||||||
setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval));
|
setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -390,14 +387,14 @@ int32 network_addlistener(bool v6, const char *addr, uint16 port){
|
|||||||
#ifdef ENABLE_IPV6
|
#ifdef ENABLE_IPV6
|
||||||
if(v6 == true){
|
if(v6 == true){
|
||||||
if( bind(fd, (struct sockaddr*)&s->addr.v6, sizeof(s->addr.v6)) == -1) {
|
if( bind(fd, (struct sockaddr*)&s->addr.v6, sizeof(s->addr.v6)) == -1) {
|
||||||
ShowError("network_addlistener(%c, '%s', %u): bind failed (errno: %u / %s)\n", (v6==true?'t':'f'), addr, port, errno, strerror(errno));
|
ShowError("network_addlistener(%c, '%s', %u): bind failed (errno: %u / %s)\n", (v6==true?'t':'f'), addr, port, errno, strerror(errno));
|
||||||
close(fd);
|
close(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
#endif
|
#endif
|
||||||
if( bind(fd, (struct sockaddr*)&s->addr.v4, sizeof(s->addr.v4)) == -1) {
|
if( bind(fd, (struct sockaddr*)&s->addr.v4, sizeof(s->addr.v4)) == -1) {
|
||||||
ShowError("network_addlistener(%c, '%s', %u): bind failed (errno: %u / %s)\n", (v6==true?'t':'f'), addr, port, errno, strerror(errno));
|
ShowError("network_addlistener(%c, '%s', %u): bind failed (errno: %u / %s)\n", (v6==true?'t':'f'), addr, port, errno, strerror(errno));
|
||||||
close(fd);
|
close(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -406,7 +403,7 @@ int32 network_addlistener(bool v6, const char *addr, uint16 port){
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if( listen(fd, l_ListenBacklog) == -1){
|
if( listen(fd, l_ListenBacklog) == -1){
|
||||||
ShowError("network_addlistener(%c, '%s', %u): listen failed (errno: %u / %s)\n", (v6==true?'t':'f'), addr, port, errno, strerror(errno));
|
ShowError("network_addlistener(%c, '%s', %u): listen failed (errno: %u / %s)\n", (v6==true?'t':'f'), addr, port, errno, strerror(errno));
|
||||||
close(fd);
|
close(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -414,20 +411,18 @@ int32 network_addlistener(bool v6, const char *addr, uint16 port){
|
|||||||
|
|
||||||
// Set to nonblock!
|
// Set to nonblock!
|
||||||
if(_setnonblock(fd) == false){
|
if(_setnonblock(fd) == false){
|
||||||
ShowError("network_addlistener(%c, '%s', %u): cannot set to nonblock (errno: %u / %s)\n", (v6==true?'t':'f'), addr, port, errno, strerror(errno));
|
ShowError("network_addlistener(%c, '%s', %u): cannot set to nonblock (errno: %u / %s)\n", (v6==true?'t':'f'), addr, port, errno, strerror(errno));
|
||||||
close(fd);
|
close(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Rgister @ evdp.
|
// Rgister @ evdp.
|
||||||
if( evdp_addlistener(fd, &s->evdp_data) != true){
|
if( evdp_addlistener(fd, &s->evdp_data) != true){
|
||||||
ShowError("network_addlistener(%c, '%s', %u): eventdispatcher subsystem returned an error.\n", (v6==true?'t':'f'), addr, port);
|
ShowError("network_addlistener(%c, '%s', %u): eventdispatcher subsystem returned an error.\n", (v6==true?'t':'f'), addr, port);
|
||||||
close(fd);
|
close(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Apply flags on Session array for this conneciton.
|
// Apply flags on Session array for this conneciton.
|
||||||
if(v6 == true) s->v6 = true;
|
if(v6 == true) s->v6 = true;
|
||||||
else s->v6 = false;
|
else s->v6 = false;
|
||||||
@ -507,8 +502,11 @@ int32 network_connect(bool v6,
|
|||||||
void (*onConnectionLooseHandler)(int32 fd)
|
void (*onConnectionLooseHandler)(int32 fd)
|
||||||
){
|
){
|
||||||
register SESSION *s;
|
register SESSION *s;
|
||||||
int32 fd, optval, ret;
|
int32 fd, ret;
|
||||||
struct sockaddr_in ip4;
|
struct sockaddr_in ip4;
|
||||||
|
#ifdef SO_REUSEADDR
|
||||||
|
int optval;
|
||||||
|
#endif
|
||||||
#ifdef ENABLE_IPV6
|
#ifdef ENABLE_IPV6
|
||||||
struct sockaddr_in6 ip6;
|
struct sockaddr_in6 ip6;
|
||||||
#endif
|
#endif
|
||||||
@ -523,19 +521,18 @@ int32 network_connect(bool v6,
|
|||||||
#ifndef ENABLE_IPV6
|
#ifndef ENABLE_IPV6
|
||||||
// check..
|
// check..
|
||||||
if(v6 == true){
|
if(v6 == true){
|
||||||
ShowError("network_connect(%c, '%s', %u...): tried to create an ipv6 connection, IPV6 is not supported in this release.\n", (v6==true?'t':'f'), addr, port);
|
ShowError("network_connect(%c, '%s', %u...): tried to create an ipv6 connection, IPV6 is not supported in this release.\n", (v6==true?'t':'f'), addr, port);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// check connection limits.
|
// check connection limits.
|
||||||
if(fd >= MAXCONN){
|
if(fd >= MAXCONN){
|
||||||
ShowError("network_connect(%c, '%s', %u...): cannot create new connection, exceeeds more than supported connections (%u)\n", (v6==true?'t':'f'), addr, port );
|
ShowError("network_connect(%c, '%s', %u...): cannot create new connection, exceeeds more than supported connections (%u)\n", (v6==true?'t':'f'), addr, port );
|
||||||
close(fd);
|
close(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Originating IP/Port pair given ?
|
// Originating IP/Port pair given ?
|
||||||
if(from_addr != NULL && *from_addr != 0){
|
if(from_addr != NULL && *from_addr != 0){
|
||||||
//..
|
//..
|
||||||
@ -551,7 +548,7 @@ int32 network_connect(bool v6,
|
|||||||
ip6.sin6_port = htons(from_port);
|
ip6.sin6_port = htons(from_port);
|
||||||
|
|
||||||
if(inet_pton(AF_INET6, from_addr, &ip6.sin6_addr) != 1){
|
if(inet_pton(AF_INET6, from_addr, &ip6.sin6_addr) != 1){
|
||||||
ShowError("network_connect(%c, '%s', %u...): cannot parse originating (from) IPV6 address (errno: %u / %s)\n", (v6==true?'t':'f'), addr, port, errno, strerror(errno));
|
ShowError("network_connect(%c, '%s', %u...): cannot parse originating (from) IPV6 address (errno: %u / %s)\n", (v6==true?'t':'f'), addr, port, errno, strerror(errno));
|
||||||
close(fd);
|
close(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -571,10 +568,9 @@ int32 network_connect(bool v6,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Set non block
|
// Set non block
|
||||||
if(_setnonblock(fd) == false){
|
if(_setnonblock(fd) == false){
|
||||||
ShowError("network_connect(%c, '%s', %u...): cannot set socket to nonblocking (errno: %u / %s)\n", (v6==true?'t':'f'), addr, port, errno, strerror(errno));
|
ShowError("network_connect(%c, '%s', %u...): cannot set socket to nonblocking (errno: %u / %s)\n", (v6==true?'t':'f'), addr, port, errno, strerror(errno));
|
||||||
close(fd);
|
close(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -588,7 +584,7 @@ int32 network_connect(bool v6,
|
|||||||
ip6.sin6_port = htons(port);
|
ip6.sin6_port = htons(port);
|
||||||
|
|
||||||
if(inet_pton(AF_INET6, addr, &ip6.sin6_addr) != 1){
|
if(inet_pton(AF_INET6, addr, &ip6.sin6_addr) != 1){
|
||||||
ShowError("network_connect(%c, '%s', %u...): cannot parse destination IPV6 address (errno: %u / %s)\n", (v6==true?'t':'f'), addr, port, errno, strerror(errno));
|
ShowError("network_connect(%c, '%s', %u...): cannot parse destination IPV6 address (errno: %u / %s)\n", (v6==true?'t':'f'), addr, port, errno, strerror(errno));
|
||||||
close(fd);
|
close(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -604,7 +600,6 @@ int32 network_connect(bool v6,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// Assign Session..
|
// Assign Session..
|
||||||
s = &g_Session[fd];
|
s = &g_Session[fd];
|
||||||
s->type = NST_OUTGOING;
|
s->type = NST_OUTGOING;
|
||||||
@ -622,7 +617,7 @@ int32 network_connect(bool v6,
|
|||||||
|
|
||||||
// Register @ EVDP. as outgoing (see doc of the function)
|
// Register @ EVDP. as outgoing (see doc of the function)
|
||||||
if(evdp_addconnecting(fd, &s->evdp_data) == false){
|
if(evdp_addconnecting(fd, &s->evdp_data) == false){
|
||||||
ShowError("network_connect(%c, '%s', %u...): eventdispatcher subsystem returned an error.\n", (v6==true?'t':'f'), addr, port);
|
ShowError("network_connect(%c, '%s', %u...): eventdispatcher subsystem returned an error.\n", (v6==true?'t':'f'), addr, port);
|
||||||
|
|
||||||
// cleanup session x.x..
|
// cleanup session x.x..
|
||||||
s->type = NST_FREE;
|
s->type = NST_FREE;
|
||||||
@ -635,7 +630,6 @@ int32 network_connect(bool v6,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef ENABLE_IPV6
|
#ifdef ENABLE_IPV6
|
||||||
if(v6 == true)
|
if(v6 == true)
|
||||||
ret = connect(fd, (struct sockaddr*)&ip6, sizeof(ip6));
|
ret = connect(fd, (struct sockaddr*)&ip6, sizeof(ip6));
|
||||||
@ -660,7 +654,6 @@ int32 network_connect(bool v6,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ! The Info Message :~D
|
// ! The Info Message :~D
|
||||||
ShowStatus("network_connect fd#%u (%s:%u) in progress.. \n", fd, addr, port);
|
ShowStatus("network_connect fd#%u (%s:%u) in progress.. \n", fd, addr, port);
|
||||||
|
|
||||||
|
@ -155,14 +155,15 @@ char* trim(char* str)
|
|||||||
// that pointer with the returned value, since the original pointer must be
|
// that pointer with the returned value, since the original pointer must be
|
||||||
// deallocated using the same allocator with which it was allocated. The return
|
// deallocated using the same allocator with which it was allocated. The return
|
||||||
// value must NOT be deallocated using free() etc.
|
// value must NOT be deallocated using free() etc.
|
||||||
char *trim2(char *str,char flag){
|
char *trim2(char *str,char flag) {
|
||||||
char *end;
|
if(flag&1) { // Trim leading space
|
||||||
if(flag&1){ // Trim leading space
|
|
||||||
while(isspace(*str)) str++;
|
while(isspace(*str)) str++;
|
||||||
if(*str == 0) // All spaces?
|
if(*str == 0) // All spaces?
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
if(flag&2){ // Trim trailing space
|
if(flag&2) { // Trim trailing space
|
||||||
|
char *end;
|
||||||
|
|
||||||
end = str + strlen(str) - 1;
|
end = str + strlen(str) - 1;
|
||||||
while(end > str && isspace(*end)) end--;
|
while(end > str && isspace(*end)) end--;
|
||||||
*(end+1) = 0; // Write new null terminator
|
*(end+1) = 0; // Write new null terminator
|
||||||
|
@ -407,7 +407,7 @@ int instance_destroy(short instance_id)
|
|||||||
{
|
{
|
||||||
struct instance_data *im;
|
struct instance_data *im;
|
||||||
struct party_data *p;
|
struct party_data *p;
|
||||||
int i, type = 0, count = 0;
|
int i, type = 0;
|
||||||
unsigned int now = (unsigned int)time(NULL);
|
unsigned int now = (unsigned int)time(NULL);
|
||||||
|
|
||||||
if(instance_id <= 0 || instance_id > MAX_INSTANCE_DATA)
|
if(instance_id <= 0 || instance_id > MAX_INSTANCE_DATA)
|
||||||
@ -447,7 +447,7 @@ int instance_destroy(short instance_id)
|
|||||||
type = 3;
|
type = 3;
|
||||||
|
|
||||||
for(i = 0; i < MAX_MAP_PER_INSTANCE; i++)
|
for(i = 0; i < MAX_MAP_PER_INSTANCE; i++)
|
||||||
count += map_delinstancemap(im->map[i].m);
|
map_delinstancemap(im->map[i].m);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(im->keep_timer != -1) {
|
if(im->keep_timer != -1) {
|
||||||
|
@ -2414,12 +2414,11 @@ static const char* npc_parse_shop(char* w1, char* w2, char* w3, char* w4, const
|
|||||||
|
|
||||||
switch(type) {
|
switch(type) {
|
||||||
case ITEMSHOP: {
|
case ITEMSHOP: {
|
||||||
struct item_data* tmp;
|
|
||||||
if (sscanf(p,",%d:%d,",&nameid,&is_discount) < 1) {
|
if (sscanf(p,",%d:%d,",&nameid,&is_discount) < 1) {
|
||||||
ShowError("npc_parse_shop: Invalid item cost definition in file '%s', line '%d'. Ignoring the rest of the line...\n * w1=%s\n * w2=%s\n * w3=%s\n * w4=%s\n", filepath, strline(buffer,start-buffer), w1, w2, w3, w4);
|
ShowError("npc_parse_shop: Invalid item cost definition in file '%s', line '%d'. Ignoring the rest of the line...\n * w1=%s\n * w2=%s\n * w3=%s\n * w4=%s\n", filepath, strline(buffer,start-buffer), w1, w2, w3, w4);
|
||||||
return strchr(start,'\n'); // skip and continue
|
return strchr(start,'\n'); // skip and continue
|
||||||
}
|
}
|
||||||
if ((tmp = itemdb_exists(nameid)) == NULL) {
|
if (itemdb_exists(nameid) == NULL) {
|
||||||
ShowWarning("npc_parse_shop: Invalid item ID cost in file '%s', line '%d' (id '%d').\n", filepath, strline(buffer,start-buffer), nameid);
|
ShowWarning("npc_parse_shop: Invalid item ID cost in file '%s', line '%d' (id '%d').\n", filepath, strline(buffer,start-buffer), nameid);
|
||||||
return strchr(start,'\n'); // skip and continue
|
return strchr(start,'\n'); // skip and continue
|
||||||
}
|
}
|
||||||
@ -3339,7 +3338,7 @@ static const char* npc_parse_mob(char* w1, char* w2, char* w3, char* w4, const c
|
|||||||
return strchr(start,'\n');// skip and continue
|
return strchr(start,'\n');// skip and continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if( (mob.state.size < 0 || mob.state.size > 2) && size != -1 )
|
if( mob.state.size > 2 && size != -1 )
|
||||||
{
|
{
|
||||||
ShowError("npc_parse_mob: Invalid size number %d for mob ID %d (file '%s', line '%d').\n", mob.state.size, class_, filepath, strline(buffer, start - buffer));
|
ShowError("npc_parse_mob: Invalid size number %d for mob ID %d (file '%s', line '%d').\n", mob.state.size, class_, filepath, strline(buffer, start - buffer));
|
||||||
return strchr(start, '\n');
|
return strchr(start, '\n');
|
||||||
@ -3812,7 +3811,6 @@ void npc_parsesrcfile(const char* filepath, bool runOnInit)
|
|||||||
// More info at http://unicode.org/faq/utf_bom.html#bom5 and http://en.wikipedia.org/wiki/Byte_order_mark#UTF-8
|
// More info at http://unicode.org/faq/utf_bom.html#bom5 and http://en.wikipedia.org/wiki/Byte_order_mark#UTF-8
|
||||||
ShowError("npc_parsesrcfile: Detected unsupported UTF-8 BOM in file '%s'. Stopping (please consider using another character set).\n", filepath);
|
ShowError("npc_parsesrcfile: Detected unsupported UTF-8 BOM in file '%s'. Stopping (please consider using another character set).\n", filepath);
|
||||||
aFree(buffer);
|
aFree(buffer);
|
||||||
fclose(fp);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -863,7 +863,7 @@ static int pet_ai_sub_hard(struct pet_data *pd, struct map_session_data *sd, uns
|
|||||||
if (DIFF_TICK(tick, pd->ud.canmove_tick) < 0)
|
if (DIFF_TICK(tick, pd->ud.canmove_tick) < 0)
|
||||||
return 0; //Can't move yet.
|
return 0; //Can't move yet.
|
||||||
pd->status.speed = (sd->battle_status.speed>>1);
|
pd->status.speed = (sd->battle_status.speed>>1);
|
||||||
if(pd->status.speed <= 0)
|
if(pd->status.speed == 0)
|
||||||
pd->status.speed = 1;
|
pd->status.speed = 1;
|
||||||
if (!unit_walktobl(&pd->bl, &sd->bl, 3, 0))
|
if (!unit_walktobl(&pd->bl, &sd->bl, 3, 0))
|
||||||
pet_randomwalk(pd,tick);
|
pet_randomwalk(pd,tick);
|
||||||
|
@ -9464,7 +9464,7 @@ BUILDIN_FUNC(clone)
|
|||||||
TBL_PC *sd, *msd=NULL;
|
TBL_PC *sd, *msd=NULL;
|
||||||
int char_id,master_id=0,x,y, mode = 0, flag = 0, m;
|
int char_id,master_id=0,x,y, mode = 0, flag = 0, m;
|
||||||
unsigned int duration = 0;
|
unsigned int duration = 0;
|
||||||
const char *map,*event="";
|
const char *map,*event;
|
||||||
|
|
||||||
map=script_getstr(st,2);
|
map=script_getstr(st,2);
|
||||||
x=script_getnum(st,3);
|
x=script_getnum(st,3);
|
||||||
@ -18054,7 +18054,7 @@ static int atcommand_cleanfloor_sub(struct block_list *bl, va_list ap)
|
|||||||
BUILDIN_FUNC(cleanmap)
|
BUILDIN_FUNC(cleanmap)
|
||||||
{
|
{
|
||||||
const char *map;
|
const char *map;
|
||||||
int16 m = -1;
|
int16 m;
|
||||||
int16 x0 = 0, y0 = 0, x1 = 0, y1 = 0;
|
int16 x0 = 0, y0 = 0, x1 = 0, y1 = 0;
|
||||||
|
|
||||||
map = script_getstr(st, 2);
|
map = script_getstr(st, 2);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user