parent
660b194ade
commit
48b4623f3e
6
.github/workflows/build_servers_gcc.yml
vendored
6
.github/workflows/build_servers_gcc.yml
vendored
@ -49,8 +49,10 @@ jobs:
|
||||
|
||||
- name: Command - configure
|
||||
env:
|
||||
CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }} --enable-buildbot=yes'
|
||||
run: ./configure $CONFIGURE_FLAGS
|
||||
CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }}'
|
||||
# -Werror: to treat all warnings as errors
|
||||
# -Wno-error=builtin-declaration-mismatch: otherwise ./configure checks fail
|
||||
run: ./configure $CONFIGURE_FLAGS --enable-buildbot=yes CXXFLAGS='-Werror -Wno-error=builtin-declaration-mismatch'
|
||||
|
||||
- name: Command - make clean
|
||||
run: make clean
|
||||
|
4
.github/workflows/build_servers_msbuild.yml
vendored
4
.github/workflows/build_servers_msbuild.yml
vendored
@ -41,8 +41,8 @@ jobs:
|
||||
|
||||
- name: Build solution in Debug
|
||||
if: ${{ matrix.mode == 'PRE' }}
|
||||
run: msbuild rAthena.sln -t:rebuild -property:Configuration=Debug /p:DefineConstants="BUILDBOT%3BPRERE"
|
||||
run: msbuild rAthena.sln -t:rebuild -property:Configuration=Debug /p:DefineConstants="BUILDBOT%3BPRERE" /warnaserror
|
||||
|
||||
- name: Build solution in Debug
|
||||
if: ${{ matrix.mode == 'RE' }}
|
||||
run: msbuild rAthena.sln -t:rebuild -property:Configuration=Debug /p:DefineConstants="BUILDBOT"
|
||||
run: msbuild rAthena.sln -t:rebuild -property:Configuration=Debug /p:DefineConstants="BUILDBOT" /warnaserror
|
||||
|
@ -96,7 +96,7 @@ void chlogif_pincode_start(int fd, struct char_session_data* sd){
|
||||
TIMER_FUNC(chlogif_send_acc_tologin){
|
||||
if ( chlogif_isconnected() ){
|
||||
// send account list to login server
|
||||
int users = char_get_onlinedb().size();
|
||||
size_t users = char_get_onlinedb().size();
|
||||
int i = 0;
|
||||
|
||||
WFIFOHEAD(login_fd,8+users*4);
|
||||
@ -176,7 +176,7 @@ void chlogif_send_global_accreg(const char *key, unsigned int index, int64 int_v
|
||||
if (!chlogif_isconnected())
|
||||
return;
|
||||
|
||||
int nlen = WFIFOW(login_fd, 2);
|
||||
int16 nlen = WFIFOW( login_fd, 2 );
|
||||
size_t len;
|
||||
|
||||
len = strlen(key)+1;
|
||||
@ -185,7 +185,7 @@ void chlogif_send_global_accreg(const char *key, unsigned int index, int64 int_v
|
||||
nlen += 1;
|
||||
|
||||
safestrncpy(WFIFOCP(login_fd,nlen), key, len);
|
||||
nlen += len;
|
||||
nlen += static_cast<decltype(nlen)>( len );
|
||||
|
||||
WFIFOL(login_fd, nlen) = index;
|
||||
nlen += 4;
|
||||
@ -201,7 +201,7 @@ void chlogif_send_global_accreg(const char *key, unsigned int index, int64 int_v
|
||||
nlen += 1;
|
||||
|
||||
safestrncpy(WFIFOCP(login_fd,nlen), string_value, len);
|
||||
nlen += len;
|
||||
nlen += static_cast<decltype(nlen)>( len );
|
||||
}
|
||||
} else {
|
||||
WFIFOB(login_fd, nlen) = int_value ? 0 : 1;
|
||||
|
@ -195,7 +195,7 @@ void chmapif_send_misc(int fd) {
|
||||
* @param map_id
|
||||
* @param count Number of map from new map-server has
|
||||
**/
|
||||
void chmapif_send_maps(int fd, int map_id, int count, unsigned char *mapbuf) {
|
||||
void chmapif_send_maps( int fd, int map_id, size_t count, unsigned char* mapbuf ){
|
||||
uint16 x;
|
||||
|
||||
if (count == 0) {
|
||||
@ -205,7 +205,7 @@ void chmapif_send_maps(int fd, int map_id, int count, unsigned char *mapbuf) {
|
||||
unsigned char buf[INT16_MAX];
|
||||
// Transmitting maps information to the other map-servers
|
||||
WBUFW(buf,0) = 0x2b04;
|
||||
WBUFW( buf, 2 ) = count * MAP_NAME_LENGTH_EXT + 10;
|
||||
WBUFW( buf, 2 ) = static_cast<int16>( count * MAP_NAME_LENGTH_EXT + 10 );
|
||||
WBUFL(buf,4) = htonl(map_server[map_id].ip);
|
||||
WBUFW(buf,8) = htons(map_server[map_id].port);
|
||||
memcpy( WBUFP( buf, 10 ), mapbuf, count * MAP_NAME_LENGTH_EXT );
|
||||
@ -317,7 +317,7 @@ int chmapif_parse_askscdata(int fd){
|
||||
ShowWarning("Too many status changes for %d:%d, some of them were not loaded.\n", aid, cid);
|
||||
if (count > 0)
|
||||
{
|
||||
WFIFOW(fd,2) = 14 + count*sizeof(struct status_change_data);
|
||||
WFIFOW( fd, 2 ) = static_cast<int16>( 14 + count * sizeof( struct status_change_data ) );
|
||||
WFIFOW(fd,12) = count;
|
||||
WFIFOSET(fd,WFIFOW(fd,2));
|
||||
}
|
||||
@ -574,7 +574,7 @@ int chmapif_parse_req_skillcooldown(int fd){
|
||||
ShowWarning("Too many skillcooldowns for %d:%d, some of them were not loaded.\n", aid, cid);
|
||||
if( count > 0 )
|
||||
{
|
||||
WFIFOW(fd,2) = 14 + count * sizeof(struct skill_cooldown_data);
|
||||
WFIFOW( fd, 2 ) = static_cast<int16>( 14 + count * sizeof( struct skill_cooldown_data ) );
|
||||
WFIFOW(fd,12) = count;
|
||||
WFIFOSET(fd,WFIFOW(fd,2));
|
||||
//Clear the data once loaded.
|
||||
|
@ -264,7 +264,7 @@ void mapif_achievement_load( int fd, uint32 char_id ){
|
||||
|
||||
WFIFOHEAD(fd, num_achievements * sizeof(struct achievement) + 8);
|
||||
WFIFOW(fd, 0) = 0x3862;
|
||||
WFIFOW(fd, 2) = num_achievements * sizeof(struct achievement) + 8;
|
||||
WFIFOW(fd, 2) = static_cast<int16>( num_achievements * sizeof( struct achievement ) + 8 );
|
||||
WFIFOL(fd, 4) = char_id;
|
||||
|
||||
if (num_achievements > 0)
|
||||
|
@ -60,9 +60,12 @@ std::shared_ptr<struct clan> inter_clan_fromsql(int clan_id){
|
||||
clan = std::make_shared<struct clan>();
|
||||
|
||||
clan->id = clan_id;
|
||||
Sql_GetData(sql_handle, 0, &data, &len); memcpy(clan->name, data, min(len, NAME_LENGTH));
|
||||
Sql_GetData(sql_handle, 1, &data, &len); memcpy(clan->master, data, min(len, NAME_LENGTH));
|
||||
Sql_GetData(sql_handle, 2, &data, &len); memcpy(clan->map, data, min(len, MAP_NAME_LENGTH_EXT));
|
||||
Sql_GetData( sql_handle, 0, &data, &len );
|
||||
memcpy( clan->name, data, std::min( len, static_cast<decltype(len)>( NAME_LENGTH ) ) );
|
||||
Sql_GetData( sql_handle, 1, &data, &len );
|
||||
memcpy( clan->master, data, std::min( len, static_cast<decltype(len)>( NAME_LENGTH ) ) );
|
||||
Sql_GetData( sql_handle, 2, &data, &len );
|
||||
memcpy( clan->map, data, std::min( len, static_cast<decltype(len)>( MAP_NAME_LENGTH_EXT ) ) );
|
||||
Sql_GetData(sql_handle, 3, &data, nullptr); clan->max_member = atoi(data);
|
||||
|
||||
clan->connect_member = 0;
|
||||
@ -96,16 +99,13 @@ std::shared_ptr<struct clan> inter_clan_fromsql(int clan_id){
|
||||
}
|
||||
|
||||
int mapif_clan_info( int fd ){
|
||||
int offset;
|
||||
int length;
|
||||
|
||||
length = 4 + clan_db.size() * sizeof( struct clan );
|
||||
size_t offset = 4;
|
||||
size_t length = offset + clan_db.size() * sizeof( struct clan );
|
||||
|
||||
WFIFOHEAD( fd, length );
|
||||
WFIFOW( fd, 0 ) = 0x38A0;
|
||||
WFIFOW( fd, 2 ) = length;
|
||||
WFIFOW( fd, 2 ) = static_cast<int16>( length );
|
||||
|
||||
offset = 4;
|
||||
for( const auto& pair : clan_db ){
|
||||
std::shared_ptr<struct clan> clan = pair.second;
|
||||
|
||||
|
@ -83,9 +83,11 @@ TIMER_FUNC(guild_save_timer){
|
||||
if( state != 2 ) //Reached the end of the guild db without saving.
|
||||
last_id = 0; //Reset guild saved, return to beginning.
|
||||
|
||||
state = guild_db.size();
|
||||
if( state < 1 ) state = 1; //Calculate the time slot for the next save.
|
||||
add_timer(tick + (charserv_config.autosave_interval)/state, guild_save_timer, 0, 0);
|
||||
size_t count = std::max( guild_db.size(), static_cast<size_t>( 1 ) );
|
||||
|
||||
// Calculate the time slot for the next save.
|
||||
add_timer( tick + charserv_config.autosave_interval / count, guild_save_timer, 0, 0 );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -23,18 +23,15 @@
|
||||
* @return Array of found entries. It has *count entries, and it is care of the
|
||||
* caller to aFree() it afterwards.
|
||||
*/
|
||||
struct quest *mapif_quests_fromsql(uint32 char_id, int *count) {
|
||||
struct quest *mapif_quests_fromsql( uint32 char_id, size_t& count ){
|
||||
struct quest *questlog = nullptr;
|
||||
struct quest tmp_quest;
|
||||
SqlStmt *stmt;
|
||||
|
||||
if( !count )
|
||||
return nullptr;
|
||||
|
||||
stmt = SqlStmt_Malloc(sql_handle);
|
||||
if( stmt == nullptr ) {
|
||||
SqlStmt_ShowDebug(stmt);
|
||||
*count = 0;
|
||||
count = 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@ -52,23 +49,27 @@ struct quest *mapif_quests_fromsql(uint32 char_id, int *count) {
|
||||
) {
|
||||
SqlStmt_ShowDebug(stmt);
|
||||
SqlStmt_Free(stmt);
|
||||
*count = 0;
|
||||
count = 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
*count = (int)SqlStmt_NumRows(stmt);
|
||||
if( *count > 0 ) {
|
||||
int i = 0;
|
||||
count = static_cast<std::remove_reference<decltype(count)>::type>( SqlStmt_NumRows( stmt ) );
|
||||
if( count > 0 ) {
|
||||
size_t i = 0;
|
||||
|
||||
questlog = (struct quest *)aCalloc(*count, sizeof(struct quest));
|
||||
questlog = (struct quest *)aCalloc( count, sizeof( struct quest ) );
|
||||
while( SQL_SUCCESS == SqlStmt_NextRow(stmt) ) {
|
||||
if( i >= *count ) //Sanity check, should never happen
|
||||
// Sanity check, should never happen
|
||||
if( i >= count ){
|
||||
break;
|
||||
}
|
||||
|
||||
memcpy(&questlog[i++], &tmp_quest, sizeof(tmp_quest));
|
||||
}
|
||||
if( i < *count ) {
|
||||
|
||||
if( i < count ) {
|
||||
//Should never happen. Compact array
|
||||
*count = i;
|
||||
count = i;
|
||||
questlog = (struct quest *)aRealloc(questlog, sizeof(struct quest) * i);
|
||||
}
|
||||
}
|
||||
@ -136,18 +137,21 @@ bool mapif_quest_update(uint32 char_id, struct quest qd) {
|
||||
* @see inter_parse_frommap
|
||||
*/
|
||||
int mapif_parse_quest_save(int fd) {
|
||||
int i, j, k, old_n, new_n = (RFIFOW(fd,2) - 8) / sizeof(struct quest);
|
||||
uint32 char_id = RFIFOL(fd,4);
|
||||
struct quest *old_qd = nullptr, *new_qd = nullptr;
|
||||
bool success = true;
|
||||
size_t old_n, new_n = ( RFIFOW( fd, 2 ) - 8 ) / sizeof( struct quest );
|
||||
|
||||
if( new_n > 0 )
|
||||
new_qd = (struct quest*)RFIFOP(fd,8);
|
||||
|
||||
old_qd = mapif_quests_fromsql(char_id, &old_n);
|
||||
for( i = 0; i < new_n; i++ ) {
|
||||
old_qd = mapif_quests_fromsql( char_id, old_n );
|
||||
|
||||
for( size_t i = 0, j; i < new_n; i++ ) {
|
||||
ARR_FIND(0, old_n, j, new_qd[i].quest_id == old_qd[j].quest_id);
|
||||
if( j < old_n ) { //Update existing quests
|
||||
size_t k;
|
||||
|
||||
//Only states and counts are changable.
|
||||
ARR_FIND(0, MAX_QUEST_OBJECTIVES, k, new_qd[i].count[k] != old_qd[j].count[k]);
|
||||
if( k != MAX_QUEST_OBJECTIVES || new_qd[i].state != old_qd[j].state )
|
||||
@ -162,8 +166,10 @@ int mapif_parse_quest_save(int fd) {
|
||||
success &= mapif_quest_add(char_id, new_qd[i]);
|
||||
}
|
||||
|
||||
for( i = 0; i < old_n; i++ ) //Quests not in new_qd but in old_qd are to be erased.
|
||||
// Quests not in new_qd but in old_qd are to be erased.
|
||||
for( size_t i = 0; i < old_n; i++ ){
|
||||
success &= mapif_quest_delete(char_id, old_qd[i].quest_id);
|
||||
}
|
||||
|
||||
if( old_qd )
|
||||
aFree(old_qd);
|
||||
@ -189,14 +195,12 @@ int mapif_parse_quest_save(int fd) {
|
||||
*/
|
||||
int mapif_parse_quest_load(int fd) {
|
||||
uint32 char_id = RFIFOL(fd,2);
|
||||
struct quest *tmp_questlog = nullptr;
|
||||
int num_quests;
|
||||
|
||||
tmp_questlog = mapif_quests_fromsql(char_id, &num_quests);
|
||||
size_t num_quests;
|
||||
struct quest* tmp_questlog = mapif_quests_fromsql( char_id, num_quests );
|
||||
|
||||
WFIFOHEAD(fd,num_quests * sizeof(struct quest) + 8);
|
||||
WFIFOW(fd,0) = 0x3860;
|
||||
WFIFOW(fd,2) = num_quests * sizeof(struct quest) + 8;
|
||||
WFIFOW(fd,2) = static_cast<int16>( num_quests * sizeof( struct quest ) + 8 );
|
||||
WFIFOL(fd,4) = char_id;
|
||||
|
||||
if( num_quests > 0 )
|
||||
|
@ -709,7 +709,7 @@ int inter_accreg_fromsql(uint32 account_id, uint32 char_id, int fd, int type)
|
||||
plen += 1;
|
||||
|
||||
safestrncpy(WFIFOCP(fd,plen), data, len);
|
||||
plen += len;
|
||||
plen += static_cast<decltype(plen)>( len );
|
||||
|
||||
Sql_GetData(sql_handle, 1, &data, nullptr);
|
||||
|
||||
@ -723,7 +723,7 @@ int inter_accreg_fromsql(uint32 account_id, uint32 char_id, int fd, int type)
|
||||
plen += 1;
|
||||
|
||||
safestrncpy(WFIFOCP(fd,plen), data, len);
|
||||
plen += len;
|
||||
plen += static_cast<decltype(plen)>( len );
|
||||
|
||||
WFIFOW(fd, 14) += 1;
|
||||
|
||||
@ -789,7 +789,7 @@ int inter_accreg_fromsql(uint32 account_id, uint32 char_id, int fd, int type)
|
||||
plen += 1;
|
||||
|
||||
safestrncpy(WFIFOCP(fd,plen), data, len);
|
||||
plen += len;
|
||||
plen += static_cast<decltype(plen)>( len );
|
||||
|
||||
Sql_GetData(sql_handle, 1, &data, nullptr);
|
||||
|
||||
@ -1038,11 +1038,14 @@ void inter_final(void)
|
||||
* @param fd
|
||||
**/
|
||||
void inter_Storage_sendInfo(int fd) {
|
||||
int size = sizeof(struct s_storage_table), len = 4 + interServerDb.size() * size, offset;
|
||||
size_t offset = 4;
|
||||
size_t size = sizeof( struct s_storage_table );
|
||||
size_t len = offset + interServerDb.size() * size;
|
||||
|
||||
// Send storage table information
|
||||
WFIFOHEAD(fd, len);
|
||||
WFIFOW(fd, 0) = 0x388c;
|
||||
WFIFOW(fd, 2) = len;
|
||||
WFIFOW( fd, 2 ) = static_cast<int16>( len );
|
||||
offset = 4;
|
||||
for( auto storage : interServerDb ){
|
||||
memcpy(WFIFOP(fd, offset), storage.second.get(), size);
|
||||
@ -1297,7 +1300,7 @@ int mapif_parse_Registry(int fd)
|
||||
size_t lenkey = RFIFOB( fd, cursor );
|
||||
const char* src_key= RFIFOCP(fd, cursor + 1);
|
||||
std::string key( src_key, lenkey );
|
||||
cursor += lenkey + 1;
|
||||
cursor += static_cast<decltype(cursor)>( lenkey + 1 );
|
||||
|
||||
uint32 index = RFIFOL(fd, cursor);
|
||||
cursor += 4;
|
||||
@ -1317,7 +1320,7 @@ int mapif_parse_Registry(int fd)
|
||||
size_t len_val = RFIFOB( fd, cursor );
|
||||
const char* src_val= RFIFOCP(fd, cursor + 1);
|
||||
std::string sval( src_val, len_val );
|
||||
cursor += len_val + 1;
|
||||
cursor += static_cast<decltype(cursor)>( len_val + 1 );
|
||||
inter_savereg( account_id, char_id, key.c_str(), index, 0, sval.c_str(), true );
|
||||
break;
|
||||
}
|
||||
|
@ -385,7 +385,7 @@ static void grfio_localpath_create(char* buffer, size_t size, const char* filena
|
||||
|
||||
|
||||
/// Reads a file into a newly allocated buffer (from grf or data directory).
|
||||
void* grfio_reads(const char* fname, int* size)
|
||||
void* grfio_reads(const char* fname, size_t* size)
|
||||
{
|
||||
unsigned char* buf2 = nullptr;
|
||||
|
||||
@ -457,7 +457,7 @@ void* grfio_reads(const char* fname, int* size)
|
||||
}
|
||||
|
||||
int32 grfio_read_rsw_water_level( const char* fname ){
|
||||
unsigned char* rsw = (unsigned char *)grfio_read( fname );
|
||||
unsigned char* rsw = (unsigned char *)grfio_reads( fname );
|
||||
|
||||
if( rsw == nullptr ){
|
||||
// Error already reported in grfio_read
|
||||
@ -714,7 +714,7 @@ static void grfio_resourcecheck(void)
|
||||
{
|
||||
char restable[256];
|
||||
char *buf;
|
||||
int size;
|
||||
size_t size;
|
||||
FILE* fp;
|
||||
int i = 0;
|
||||
|
||||
@ -744,7 +744,7 @@ static void grfio_resourcecheck(void)
|
||||
buf[size] = '\0';
|
||||
|
||||
ptr = buf;
|
||||
while( ptr - buf < size )
|
||||
while( static_cast<size_t>( ptr - buf ) < size )
|
||||
{
|
||||
if( grfio_parse_restable_row(ptr) )
|
||||
++i;
|
||||
|
@ -10,9 +10,8 @@ const int32 RSW_NO_WATER = 1000000;
|
||||
|
||||
void grfio_init(const char* fname);
|
||||
void grfio_final(void);
|
||||
void* grfio_reads(const char* fname, int* size);
|
||||
void* grfio_reads(const char* fname, size_t* size = nullptr);
|
||||
char* grfio_find_file(const char* fname);
|
||||
#define grfio_read(fn) grfio_reads(fn, nullptr)
|
||||
int32 grfio_read_rsw_water_level( const char* fname );
|
||||
|
||||
unsigned long grfio_crc32(const unsigned char *buf, unsigned int len);
|
||||
|
@ -760,7 +760,7 @@ void mmo_send_global_accreg(AccountDB* self, int fd, uint32 account_id, uint32 c
|
||||
Sql* sql_handle = ((AccountDB_SQL*)self)->accounts;
|
||||
AccountDB_SQL* db = (AccountDB_SQL*)self;
|
||||
char* data;
|
||||
int plen = 0;
|
||||
int16 plen = 0;
|
||||
size_t len;
|
||||
|
||||
if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `key`, `index`, `value` FROM `%s` WHERE `account_id`='%" PRIu32 "'", db->global_acc_reg_str_table, account_id) )
|
||||
@ -790,7 +790,7 @@ void mmo_send_global_accreg(AccountDB* self, int fd, uint32 account_id, uint32 c
|
||||
plen += 1;
|
||||
|
||||
safestrncpy(WFIFOCP(fd,plen), data, len);
|
||||
plen += len;
|
||||
plen += static_cast<decltype(plen)>( len );
|
||||
|
||||
Sql_GetData(sql_handle, 1, &data, nullptr);
|
||||
|
||||
@ -804,7 +804,7 @@ void mmo_send_global_accreg(AccountDB* self, int fd, uint32 account_id, uint32 c
|
||||
plen += 1;
|
||||
|
||||
safestrncpy(WFIFOCP(fd,plen), data, len);
|
||||
plen += len;
|
||||
plen += static_cast<decltype(plen)>( len );
|
||||
|
||||
WFIFOW(fd, 14) += 1;
|
||||
|
||||
@ -857,7 +857,7 @@ void mmo_send_global_accreg(AccountDB* self, int fd, uint32 account_id, uint32 c
|
||||
plen += 1;
|
||||
|
||||
safestrncpy(WFIFOCP(fd,plen), data, len);
|
||||
plen += len;
|
||||
plen += static_cast<decltype(plen)>( len );
|
||||
|
||||
Sql_GetData(sql_handle, 1, &data, nullptr);
|
||||
|
||||
|
@ -1651,7 +1651,7 @@ ACMD_FUNC(baselevelup)
|
||||
party_send_levelup(sd);
|
||||
|
||||
if( level > 0 && battle_config.atcommand_levelup_events )
|
||||
npc_script_event(sd,NPCE_BASELVUP);
|
||||
npc_script_event( *sd, NPCE_BASELVUP );
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1709,7 +1709,7 @@ ACMD_FUNC(joblevelup)
|
||||
status_calc_pc(sd, SCO_FORCE);
|
||||
|
||||
if( level > 0 && battle_config.atcommand_levelup_events )
|
||||
npc_script_event(sd,NPCE_JOBLVUP);
|
||||
npc_script_event( *sd, NPCE_JOBLVUP );
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -3758,16 +3758,12 @@ ACMD_FUNC(lostskill)
|
||||
*------------------------------------------*/
|
||||
ACMD_FUNC(spiritball)
|
||||
{
|
||||
uint32 max_spiritballs;
|
||||
int number;
|
||||
nullpo_retr(-1, sd);
|
||||
|
||||
max_spiritballs = zmin(ARRAYLENGTH(sd->spirit_timer), 0x7FFF);
|
||||
|
||||
if( !message || !*message || (number = atoi(message)) < 0 || number > max_spiritballs )
|
||||
{
|
||||
if( !message || !*message || ( number = atoi( message ) ) < 0 || number > MAX_SPIRITBALL ){
|
||||
char msg[CHAT_SIZE_MAX];
|
||||
safesnprintf(msg, sizeof(msg), msg_txt(sd,1028), max_spiritballs); // Please enter a party name (usage: @party <party_name>).
|
||||
safesnprintf( msg, sizeof( msg ), msg_txt( sd, 1028 ), MAX_SPIRITBALL ); // Please enter an amount (usage: @spiritball <number: 0-%d>).
|
||||
clif_displaymessage(fd, msg);
|
||||
return -1;
|
||||
}
|
||||
@ -6154,7 +6150,7 @@ ACMD_FUNC(clearcart)
|
||||
#define MAX_SKILLID_PARTIAL_RESULTS 5
|
||||
#define MAX_SKILLID_PARTIAL_RESULTS_LEN 74 // "skill " (6) + "%d:" (up to 5) + "%s" (up to 30) + " (%s)" (up to 33)
|
||||
ACMD_FUNC(skillid) {
|
||||
int skillen, i, found = 0;
|
||||
int i, found = 0;
|
||||
char partials[MAX_SKILLID_PARTIAL_RESULTS][MAX_SKILLID_PARTIAL_RESULTS_LEN];
|
||||
|
||||
nullpo_retr(-1, sd);
|
||||
@ -6164,7 +6160,7 @@ ACMD_FUNC(skillid) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
skillen = strlen(message);
|
||||
size_t skillen = strlen( message );
|
||||
|
||||
for(const auto & skill : skill_db) {
|
||||
uint16 skill_id = skill.second->nameid;
|
||||
@ -6521,7 +6517,7 @@ ACMD_FUNC(autotrade) {
|
||||
}
|
||||
|
||||
if (battle_config.at_logout_event)
|
||||
npc_script_event(sd, NPCE_LOGOUT); //Logout Event
|
||||
npc_script_event( *sd, NPCE_LOGOUT );
|
||||
|
||||
channel_pcquit(sd,0xF); //leave all chan
|
||||
clif_authfail_fd(sd->fd, 15);
|
||||
@ -8872,7 +8868,7 @@ ACMD_FUNC(showdelay)
|
||||
*------------------------------------------*/
|
||||
ACMD_FUNC(invite)
|
||||
{
|
||||
unsigned int did = sd->duel_group;
|
||||
size_t did = sd->duel_group;
|
||||
map_session_data *target_sd = nullptr;
|
||||
|
||||
memset(atcmd_player_name, '\0', sizeof(atcmd_player_name));
|
||||
@ -8959,7 +8955,7 @@ ACMD_FUNC(duel)
|
||||
target_sd = map_nick2sd(atcmd_player_name,true);
|
||||
|
||||
if(target_sd != nullptr) {
|
||||
unsigned int newduel;
|
||||
size_t newduel;
|
||||
if((newduel = duel_create(sd, 2)) != -1) {
|
||||
if(target_sd->duel_group > 0 || target_sd->duel_invite > 0) {
|
||||
clif_displaymessage(fd, msg_txt(sd,353)); // "Duel: Player already in duel."
|
||||
@ -9691,8 +9687,6 @@ static void atcommand_commands_sub(map_session_data* sd, const int fd, AtCommand
|
||||
clif_displaymessage(fd, msg_txt(sd,273)); // "Commands available:"
|
||||
|
||||
for (cmd = (AtCommandInfo*)dbi_first(iter); dbi_exists(iter); cmd = (AtCommandInfo*)dbi_next(iter)) {
|
||||
unsigned int slen = 0;
|
||||
|
||||
switch( type ) {
|
||||
case COMMAND_CHARCOMMAND:
|
||||
if( cmd->char_groups[sd->group->index] == 0 )
|
||||
@ -9707,7 +9701,7 @@ static void atcommand_commands_sub(map_session_data* sd, const int fd, AtCommand
|
||||
}
|
||||
|
||||
|
||||
slen = strlen(cmd->command);
|
||||
size_t slen = strlen( cmd->command );
|
||||
|
||||
// flush the text buffer if this command won't fit into it
|
||||
if (slen + cur - line_buff >= CHATBOX_SIZE) {
|
||||
@ -9729,7 +9723,8 @@ static void atcommand_commands_sub(map_session_data* sd, const int fd, AtCommand
|
||||
int i, count_bind, gm_lvl = pc_get_group_level(sd);
|
||||
for( i = count_bind = 0; i < atcmd_binding_count; i++ ) {
|
||||
if ( gm_lvl >= ( (type - 1) ? atcmd_binding[i]->level2 : atcmd_binding[i]->level ) ) {
|
||||
unsigned int slen = strlen(atcmd_binding[i]->command);
|
||||
size_t slen = strlen( atcmd_binding[i]->command );
|
||||
|
||||
if ( count_bind == 0 ) {
|
||||
cur = line_buff;
|
||||
memset(line_buff,' ',CHATBOX_SIZE);
|
||||
@ -9823,7 +9818,8 @@ ACMD_FUNC(accinfo) {
|
||||
*/
|
||||
ACMD_FUNC(set) {
|
||||
char reg[46], val[128], name[32];
|
||||
int toset = 0, len;
|
||||
int toset = 0;
|
||||
size_t len;
|
||||
uint32 index;
|
||||
bool is_str = false;
|
||||
int64 uid;
|
||||
@ -11587,7 +11583,7 @@ bool is_atcommand(const int fd, map_session_data* sd, const char* message, int t
|
||||
void atcommand_db_load_groups(){
|
||||
DBIterator *iter = db_iterator(atcommand_db);
|
||||
AtCommandInfo* cmd;
|
||||
int pc_group_max = player_group_db.size();
|
||||
size_t pc_group_max = player_group_db.size();
|
||||
|
||||
for (cmd = (AtCommandInfo*)dbi_first(iter); dbi_exists(iter); cmd = (AtCommandInfo*)dbi_next(iter)) {
|
||||
cmd->at_groups = (char*)aMalloc( pc_group_max * sizeof(char) );
|
||||
|
@ -612,7 +612,7 @@ int bg_team_leave(map_session_data *sd, bool quit, bool deserter)
|
||||
sc_start(nullptr, &sd->bl, SC_ENTRY_QUEUE_NOTIFY_ADMISSION_TIME_OUT, 100, 1, static_cast<t_tick>(bg->deserter_time) * 1000); // Deserter timer
|
||||
}
|
||||
|
||||
return bgteam->members.size();
|
||||
return static_cast<int>( bgteam->members.size() );
|
||||
}
|
||||
|
||||
return -1;
|
||||
|
@ -1311,7 +1311,8 @@ int chrif_save_scdata(map_session_data *sd) { //parses the sc_data of the player
|
||||
}
|
||||
|
||||
WFIFOW(char_fd,12) = count;
|
||||
WFIFOW(char_fd,2) = 14 +count*sizeof(struct status_change_data); //Total packet size
|
||||
// Total packet size
|
||||
WFIFOW( char_fd, 2 ) = static_cast<int16>( 14 + count * sizeof( struct status_change_data ) );
|
||||
WFIFOSET(char_fd,WFIFOW(char_fd,2));
|
||||
#endif
|
||||
return 0;
|
||||
@ -1350,7 +1351,7 @@ int chrif_skillcooldown_save(map_session_data *sd) {
|
||||
return 0;
|
||||
|
||||
WFIFOW(char_fd, 12) = count;
|
||||
WFIFOW(char_fd, 2) = 14 + count * sizeof (struct skill_cooldown_data);
|
||||
WFIFOW( char_fd, 2 ) = static_cast<int16>( 14 + count * sizeof( struct skill_cooldown_data ) );
|
||||
WFIFOSET(char_fd, WFIFOW(char_fd, 2));
|
||||
|
||||
return 0;
|
||||
|
@ -9228,8 +9228,8 @@ void clif_guild_expulsionlist(map_session_data* sd)
|
||||
|
||||
/// Guild chat message (ZC_GUILD_CHAT).
|
||||
/// 017f <packet len>.W <message>.?B
|
||||
void clif_guild_message(const struct mmo_guild &g,uint32 account_id,const char *mes,int len)
|
||||
{// TODO: account_id is not used, candidate for deletion? [Ai4rei]
|
||||
void clif_guild_message( const struct mmo_guild& g, uint32 account_id, const char* mes, size_t len ){
|
||||
// TODO: account_id is not used, candidate for deletion? [Ai4rei]
|
||||
map_session_data *sd;
|
||||
uint8 buf[256];
|
||||
|
||||
@ -9244,7 +9244,7 @@ void clif_guild_message(const struct mmo_guild &g,uint32 account_id,const char *
|
||||
}
|
||||
|
||||
WBUFW(buf, 0) = 0x17f;
|
||||
WBUFW(buf, 2) = len + 5;
|
||||
WBUFW( buf, 2 ) = static_cast<int16>( len + 5 );
|
||||
safestrncpy(WBUFCP(buf,4), mes, len+1);
|
||||
|
||||
if ((sd = guild_getavailablesd(g)) != nullptr)
|
||||
@ -10942,8 +10942,7 @@ void clif_parse_LoadEndAck(int fd,map_session_data *sd)
|
||||
map_foreachpc(clif_friendslist_toggle_sub, sd->status.account_id, sd->status.char_id, 1);
|
||||
|
||||
if (!sd->state.autotrade) { // Don't trigger NPC event or opening vending/buyingstore will be failed
|
||||
//Login Event
|
||||
npc_script_event(sd, NPCE_LOGIN);
|
||||
npc_script_event( *sd, NPCE_LOGIN );
|
||||
}
|
||||
|
||||
// Set facing direction before check below to update client
|
||||
@ -11087,7 +11086,7 @@ void clif_parse_LoadEndAck(int fd,map_session_data *sd)
|
||||
|
||||
// Don't trigger NPC event or opening vending/buyingstore will be failed
|
||||
if(!sd->state.autotrade && mapdata->getMapFlag(MF_LOADEVENT)) // Lance
|
||||
npc_script_event(sd, NPCE_LOADMAP);
|
||||
npc_script_event( *sd, NPCE_LOADMAP );
|
||||
|
||||
if (pc_checkskill(sd, SG_DEVIL) && ((sd->class_&MAPID_THIRDMASK) == MAPID_STAR_EMPEROR || pc_is_maxjoblv(sd)))
|
||||
clif_status_load(&sd->bl, EFST_DEVIL1, 1); //blindness [Komurka]
|
||||
@ -18584,8 +18583,7 @@ void clif_font(map_session_data *sd)
|
||||
/// Required to start the instancing information window on Client
|
||||
/// This window re-appears each "refresh" of client automatically until the keep_limit reaches 0.
|
||||
/// S 0x2cb <Instance name>.61B <Standby Position>.W
|
||||
void clif_instance_create(int instance_id, int num)
|
||||
{
|
||||
void clif_instance_create( int instance_id, size_t num ){
|
||||
#if PACKETVER >= 20071128
|
||||
map_session_data *sd = nullptr;
|
||||
enum send_target target = PARTY;
|
||||
@ -18603,11 +18601,10 @@ void clif_instance_create(int instance_id, int num)
|
||||
|
||||
WBUFW(buf,0) = 0x2cb;
|
||||
safestrncpy(WBUFCP(buf,2), db->name.c_str(), INSTANCE_NAME_LENGTH);
|
||||
WBUFW(buf,63) = num;
|
||||
WBUFW( buf, 63 ) = static_cast<int16>( num );
|
||||
|
||||
clif_send(buf,packet_len(0x2cb),&sd->bl,target);
|
||||
#endif
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/// To announce Instancing queue creation if no maps available
|
||||
|
@ -1032,7 +1032,7 @@ void clif_guild_memberpositionchanged(const struct mmo_guild &g,int idx);
|
||||
void clif_guild_emblem(const map_session_data &sd, const struct mmo_guild &g);
|
||||
void clif_guild_emblem_area(struct block_list* bl);
|
||||
void clif_guild_notice(map_session_data* sd);
|
||||
void clif_guild_message(const struct mmo_guild &g,uint32 account_id,const char *mes,int len);
|
||||
void clif_guild_message( const struct mmo_guild& g, uint32 account_id, const char* mes, size_t len );
|
||||
void clif_guild_reqalliance(map_session_data *sd,uint32 account_id,const char *name);
|
||||
void clif_guild_allianceack(map_session_data *sd,int flag);
|
||||
void clif_guild_delalliance(map_session_data *sd,int guild_id,int flag);
|
||||
@ -1063,7 +1063,7 @@ void clif_bg_queue_lobby_notify(const char *name, map_session_data *sd);
|
||||
void clif_bg_queue_ack_lobby(bool result, const char *name, const char *lobbyname, map_session_data *sd);
|
||||
|
||||
// Instancing
|
||||
void clif_instance_create(int instance_id, int num);
|
||||
void clif_instance_create( int instance_id, size_t num );
|
||||
void clif_instance_changewait(int instance_id, int num);
|
||||
void clif_instance_status(int instance_id, unsigned int limit1, unsigned int limit2);
|
||||
void clif_instance_changestatus(int instance_id, e_instance_notify type, unsigned int limit);
|
||||
|
@ -1387,7 +1387,7 @@ int guild_send_message(map_session_data *sd, const char *mes, size_t len) {
|
||||
/*====================================================
|
||||
* Guild receive a message, will be displayed to whole member
|
||||
*---------------------------------------------------*/
|
||||
int guild_recv_message(int guild_id,uint32 account_id,const char *mes,int len) {
|
||||
int guild_recv_message( int guild_id, uint32 account_id, const char *mes, size_t len ){
|
||||
auto g = guild_search(guild_id);
|
||||
if (!g)
|
||||
return 0;
|
||||
|
@ -91,7 +91,7 @@ int guild_change_emblem( map_session_data& sd, int len, const char* data );
|
||||
int guild_change_emblem_version( map_session_data& sd, int version );
|
||||
int guild_emblem_changed(int len,int guild_id,int emblem_id,const char *data);
|
||||
int guild_send_message(map_session_data *sd, const char *mes, size_t len);
|
||||
int guild_recv_message(int guild_id,uint32 account_id,const char *mes,int len);
|
||||
int guild_recv_message( int guild_id, uint32 account_id, const char *mes, size_t len );
|
||||
int guild_send_dot_remove(map_session_data *sd);
|
||||
int guild_skillupack(int guild_id,uint16 skill_id,uint32 account_id);
|
||||
int guild_break(map_session_data *sd,char *name);
|
||||
|
@ -351,7 +351,9 @@ static TIMER_FUNC(instance_subscription_timer){
|
||||
std::shared_ptr<MapGuild> gd;
|
||||
struct clan *cd;
|
||||
e_instance_mode mode = idata->mode;
|
||||
int ret = instance_addmap(instance_id); // Check that maps have been added
|
||||
|
||||
// Check that maps have been added
|
||||
size_t ret = instance_addmap( instance_id );
|
||||
|
||||
switch(mode) {
|
||||
case IM_NONE:
|
||||
@ -710,7 +712,7 @@ int instance_create(int owner_id, const char *name, e_instance_mode mode) {
|
||||
* @param instance_id: Instance ID to add map to
|
||||
* @return 0 on failure or map count on success
|
||||
*/
|
||||
int instance_addmap(int instance_id) {
|
||||
size_t instance_addmap( int instance_id ){
|
||||
if (instance_id <= 0)
|
||||
return 0;
|
||||
|
||||
|
@ -128,7 +128,7 @@ bool instance_addusers(int instance_id);
|
||||
bool instance_delusers(int instance_id);
|
||||
void instance_generate_mapname(int map_id, int instance_id, char outname[MAP_NAME_LENGTH]);
|
||||
int16 instance_mapid(int16 m, int instance_id);
|
||||
int instance_addmap(int instance_id);
|
||||
size_t instance_addmap( int instance_id );
|
||||
|
||||
void instance_addnpc(std::shared_ptr<s_instance_data> idata);
|
||||
|
||||
|
@ -204,8 +204,7 @@ int intif_rename(map_session_data *sd, int type, char *name)
|
||||
* @param type : Color of msg
|
||||
* @return 0=error occured, 1=msg sent
|
||||
*/
|
||||
int intif_broadcast(const char* mes, int len, int type)
|
||||
{
|
||||
int intif_broadcast( const char* mes, size_t len, int type ){
|
||||
nullpo_ret(mes);
|
||||
if (len < 2)
|
||||
return 0;
|
||||
@ -223,7 +222,7 @@ int intif_broadcast(const char* mes, int len, int type)
|
||||
|
||||
WFIFOHEAD(inter_fd, 16 + lp + len);
|
||||
WFIFOW(inter_fd,0) = 0x3000;
|
||||
WFIFOW(inter_fd,2) = 16 + lp + len;
|
||||
WFIFOW( inter_fd, 2 ) = static_cast<int16>( 16 + lp + len );
|
||||
WFIFOL(inter_fd,4) = 0xFF000000; // 0xFF000000 color signals standard broadcast
|
||||
WFIFOW(inter_fd,8) = 0; // fontType not used with standard broadcast
|
||||
WFIFOW(inter_fd,10) = 0; // fontSize not used with standard broadcast
|
||||
@ -249,8 +248,7 @@ int intif_broadcast(const char* mes, int len, int type)
|
||||
* @param fontY :
|
||||
* @return 0=not send to char-serv, 1=send to char-serv
|
||||
*/
|
||||
int intif_broadcast2(const char* mes, int len, unsigned long fontColor, short fontType, short fontSize, short fontAlign, short fontY)
|
||||
{
|
||||
int intif_broadcast2( const char* mes, size_t len, unsigned long fontColor, short fontType, short fontSize, short fontAlign, short fontY ){
|
||||
nullpo_ret(mes);
|
||||
if (len < 2)
|
||||
return 0;
|
||||
@ -266,7 +264,7 @@ int intif_broadcast2(const char* mes, int len, unsigned long fontColor, short fo
|
||||
|
||||
WFIFOHEAD(inter_fd, 16 + len);
|
||||
WFIFOW(inter_fd,0) = 0x3000;
|
||||
WFIFOW(inter_fd,2) = 16 + len;
|
||||
WFIFOW( inter_fd, 2 ) = static_cast<int16>( 16 + len );
|
||||
WFIFOL(inter_fd,4) = fontColor;
|
||||
WFIFOW(inter_fd,8) = fontType;
|
||||
WFIFOW(inter_fd,10) = fontSize;
|
||||
@ -370,13 +368,15 @@ int intif_wis_reply(int id, int flag)
|
||||
*/
|
||||
int intif_wis_message_to_gm(char *wisp_name, int permission, char *mes)
|
||||
{
|
||||
int mes_len;
|
||||
if (CheckForCharServer())
|
||||
return 0;
|
||||
mes_len = strlen(mes) + 1; // + null
|
||||
|
||||
// + null
|
||||
size_t mes_len = strlen( mes ) + 1;
|
||||
|
||||
WFIFOHEAD(inter_fd, mes_len + 8 + NAME_LENGTH);
|
||||
WFIFOW(inter_fd,0) = 0x3003;
|
||||
WFIFOW(inter_fd,2) = mes_len + 32;
|
||||
WFIFOW( inter_fd, 2 ) = static_cast<int16>( mes_len + 32 );
|
||||
safestrncpy(WFIFOCP(inter_fd,4), wisp_name, NAME_LENGTH);
|
||||
WFIFOL(inter_fd,4+NAME_LENGTH) = permission;
|
||||
safestrncpy(WFIFOCP(inter_fd,8+NAME_LENGTH), mes, mes_len);
|
||||
@ -444,7 +444,7 @@ int intif_saveregistry(map_session_data *sd)
|
||||
plen += 1;
|
||||
|
||||
safestrncpy(WFIFOCP(inter_fd,plen), varname, len); //the key
|
||||
plen += len;
|
||||
plen += static_cast<decltype(plen)>( len );
|
||||
|
||||
WFIFOL(inter_fd, plen) = script_getvaridx(key.i64);
|
||||
plen += 4;
|
||||
@ -468,7 +468,7 @@ int intif_saveregistry(map_session_data *sd)
|
||||
plen += 1;
|
||||
|
||||
safestrncpy(WFIFOCP(inter_fd,plen), p->value, len);
|
||||
plen += len;
|
||||
plen += static_cast<decltype(plen)>( len );
|
||||
} else {
|
||||
script_reg_destroy_single(sd,key.i64,&p->flag);
|
||||
}
|
||||
@ -866,13 +866,12 @@ int intif_guild_addmember(int guild_id,struct guild_member *m)
|
||||
* @param len : size of the name
|
||||
* @return 0=error, 1=msg_sent
|
||||
*/
|
||||
int intif_guild_change_gm(int guild_id, const char* name, int len)
|
||||
{
|
||||
int intif_guild_change_gm( int guild_id, const char* name, size_t len ){
|
||||
if (CheckForCharServer())
|
||||
return 0;
|
||||
WFIFOHEAD(inter_fd, len + 8);
|
||||
WFIFOW(inter_fd, 0)=0x3033;
|
||||
WFIFOW(inter_fd, 2)=len+8;
|
||||
WFIFOW( inter_fd, 2 ) = static_cast<int16>( len + 8 );
|
||||
WFIFOL(inter_fd, 4)=guild_id;
|
||||
safestrncpy(WFIFOCP(inter_fd,8),name,len);
|
||||
WFIFOSET(inter_fd,len+8);
|
||||
|
@ -23,8 +23,8 @@ class map_session_data;
|
||||
|
||||
int intif_parse(int fd);
|
||||
|
||||
int intif_broadcast(const char* mes, int len, int type);
|
||||
int intif_broadcast2(const char* mes, int len, unsigned long fontColor, short fontType, short fontSize, short fontAlign, short fontY);
|
||||
int intif_broadcast( const char* mes, size_t len, int type );
|
||||
int intif_broadcast2( const char* mes, size_t len, unsigned long fontColor, short fontType, short fontSize, short fontAlign, short fontY );
|
||||
int intif_broadcast_obtain_special_item(map_session_data *sd, t_itemid nameid, unsigned int sourceid, unsigned char type);
|
||||
int intif_broadcast_obtain_special_item_npc(map_session_data *sd, t_itemid nameid);
|
||||
int intif_main_message(map_session_data* sd, const char* message);
|
||||
@ -57,7 +57,7 @@ int intif_guild_leave(int guild_id, uint32 account_id, uint32 char_id, int flag,
|
||||
int intif_guild_memberinfoshort(int guild_id, uint32 account_id, uint32 char_id, int online, int lv, int class_);
|
||||
int intif_guild_break(int guild_id);
|
||||
int intif_guild_message(int guild_id, uint32 account_id, const char *mes, size_t len);
|
||||
int intif_guild_change_gm(int guild_id, const char* name, int len);
|
||||
int intif_guild_change_gm( int guild_id, const char* name, size_t len );
|
||||
int intif_guild_change_basicinfo(int guild_id, int type, const void *data, int len);
|
||||
int intif_guild_change_memberinfo(int guild_id, uint32 account_id, uint32 char_id, int type, const void *data, int len);
|
||||
int intif_guild_position(int guild_id, int idx, struct guild_position *p);
|
||||
|
@ -2098,7 +2098,7 @@ int map_quit(map_session_data *sd) {
|
||||
|
||||
pc_itemcd_do(sd,false);
|
||||
|
||||
npc_script_event(sd, NPCE_LOGOUT);
|
||||
npc_script_event( *sd, NPCE_LOGOUT );
|
||||
|
||||
//Unit_free handles clearing the player related data,
|
||||
//map_quit handles extra specific data which is related to quitting normally
|
||||
@ -3699,7 +3699,7 @@ int map_readgat (struct map_data* m)
|
||||
|
||||
sprintf(filename, "data\\%s.gat", m->name);
|
||||
|
||||
gat = (uint8 *) grfio_read(filename);
|
||||
gat = (uint8 *) grfio_reads(filename);
|
||||
if (gat == nullptr)
|
||||
return 0;
|
||||
|
||||
@ -4490,7 +4490,8 @@ enum e_mapflag map_getmapflag_by_name(char* name)
|
||||
bool map_getmapflag_name( enum e_mapflag mapflag, char* output ){
|
||||
const char* constant;
|
||||
const char* prefix = "mf_";
|
||||
int i, len = strlen(prefix);
|
||||
size_t i;
|
||||
size_t len = strlen( prefix );
|
||||
|
||||
// Look it up
|
||||
constant = script_get_constant_str( prefix, mapflag );
|
||||
|
@ -3200,7 +3200,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
|
||||
} else if( mvp_sd && !md->state.npc_killmonster ) {
|
||||
pc_setparam(mvp_sd, SP_KILLEDGID, md->bl.id);
|
||||
pc_setparam(mvp_sd, SP_KILLEDRID, md->mob_id);
|
||||
npc_script_event(mvp_sd, NPCE_KILLNPC); // PCKillNPC [Lance]
|
||||
npc_script_event( *mvp_sd, NPCE_KILLNPC );
|
||||
}
|
||||
}
|
||||
|
||||
@ -6665,8 +6665,8 @@ static void mob_load(void)
|
||||
mob_chat_db.load(); // load before mob_skill_db
|
||||
|
||||
for(int i = 0; i < ARRAYLENGTH(dbsubpath); i++){
|
||||
int n1 = strlen(db_path)+strlen(dbsubpath[i])+1;
|
||||
int n2 = strlen(db_path)+strlen(DBPATH)+strlen(dbsubpath[i])+1;
|
||||
size_t n1 = strlen( db_path ) + strlen( dbsubpath[i] ) + 1;
|
||||
size_t n2 = strlen( db_path ) + strlen( DBPATH ) + strlen( dbsubpath[i] ) + 1;
|
||||
|
||||
char* dbsubpath1 = (char*)aMalloc(n1+1);
|
||||
char* dbsubpath2 = (char*)aMalloc(n2+1);
|
||||
|
@ -4245,7 +4245,6 @@ int npc_convertlabel_db(DBKey key, DBData *data, va_list ap)
|
||||
const char* filepath;
|
||||
struct npc_label_list* label;
|
||||
const char *p;
|
||||
int len;
|
||||
|
||||
nullpo_ret(label_list = va_arg(ap,struct npc_label_list**));
|
||||
nullpo_ret(label_list_num = va_arg(ap,int*));
|
||||
@ -4255,7 +4254,8 @@ int npc_convertlabel_db(DBKey key, DBData *data, va_list ap)
|
||||
p = lname;
|
||||
while( ISALNUM(*p) || *p == '_' )
|
||||
++p;
|
||||
len = p-lname;
|
||||
|
||||
size_t len = p - lname;
|
||||
|
||||
// here we check if the label fit into the buffer
|
||||
if( len > NAME_LENGTH )
|
||||
@ -5654,28 +5654,34 @@ int npc_parsesrcfile(const char* filepath)
|
||||
// fill w1
|
||||
if( pos[3]-pos[2] > ARRAYLENGTH(w1)-1 )
|
||||
ShowWarning("npc_parsesrcfile: w1 truncated, too much data (%d) in file '%s', line '%d'.\n", pos[3]-pos[2], filepath, strline(buffer,p-buffer));
|
||||
int i = min(pos[3]-pos[2], ARRAYLENGTH(w1)-1);
|
||||
memcpy(w1, p+pos[2], i*sizeof(char));
|
||||
w1[i] = '\0';
|
||||
|
||||
size_t index = std::min( pos[3] - pos[2], ARRAYLENGTH( w1 ) - 1 );
|
||||
memcpy( w1, p + pos[2], index * sizeof( char ) );
|
||||
w1[index] = '\0';
|
||||
|
||||
// fill w2
|
||||
if( pos[5]-pos[4] > ARRAYLENGTH(w2)-1 )
|
||||
ShowWarning("npc_parsesrcfile: w2 truncated, too much data (%d) in file '%s', line '%d'.\n", pos[5]-pos[4], filepath, strline(buffer,p-buffer));
|
||||
i = min(pos[5]-pos[4], ARRAYLENGTH(w2)-1);
|
||||
memcpy(w2, p+pos[4], i*sizeof(char));
|
||||
w2[i] = '\0';
|
||||
|
||||
index = std::min( pos[5] - pos[4], ARRAYLENGTH( w2 ) - 1 );
|
||||
memcpy( w2, p + pos[4], index * sizeof( char ) );
|
||||
w2[index] = '\0';
|
||||
|
||||
// fill w3
|
||||
if( pos[7]-pos[6] > ARRAYLENGTH(w3)-1 )
|
||||
ShowWarning("npc_parsesrcfile: w3 truncated, too much data (%d) in file '%s', line '%d'.\n", pos[7]-pos[6], filepath, strline(buffer,p-buffer));
|
||||
i = min(pos[7]-pos[6], ARRAYLENGTH(w3)-1);
|
||||
memcpy(w3, p+pos[6], i*sizeof(char));
|
||||
w3[i] = '\0';
|
||||
|
||||
index = std::min( pos[7] - pos[6], ARRAYLENGTH( w3 ) - 1 );
|
||||
memcpy( w3, p + pos[6], index * sizeof( char ) );
|
||||
w3[index] = '\0';
|
||||
|
||||
// fill w4 (to end of line)
|
||||
if( pos[1]-pos[8] > ARRAYLENGTH(w4)-1 )
|
||||
ShowWarning("npc_parsesrcfile: w4 truncated, too much data (%d) in file '%s', line '%d'.\n", pos[1]-pos[8], filepath, strline(buffer,p-buffer));
|
||||
if (pos[8] != -1) {
|
||||
i = min(pos[1]-pos[8], ARRAYLENGTH(w4)-1);
|
||||
memcpy(w4, p+pos[8], i*sizeof(char));
|
||||
w4[i] = '\0';
|
||||
index = std::min( pos[1] - pos[8], ARRAYLENGTH( w4 ) - 1 );
|
||||
memcpy( w4, p + pos[8], index * sizeof( char ) );
|
||||
w4[index] = '\0';
|
||||
}
|
||||
else
|
||||
w4[0] = '\0';
|
||||
@ -5751,7 +5757,7 @@ int npc_parsesrcfile(const char* filepath)
|
||||
else
|
||||
p = npc_parse_script(w1,w2,w3,w4, p, buffer, filepath);
|
||||
}
|
||||
else if( (i=0, sscanf(w2,"duplicate%n",&i), (i > 0 && w2[i] == '(')) && count > 3 )
|
||||
else if( int i = 0; ( sscanf( w2, "duplicate%n", &i ), ( i > 0 && w2[i] == '(' ) ) && count > 3 )
|
||||
p = npc_parse_duplicate(w1,w2,w3,w4, p, buffer, filepath);
|
||||
else if( (strcmpi(w2,"monster") == 0 || strcmpi(w2,"boss_monster") == 0) && count > 3 )
|
||||
p = npc_parse_mob(w1, w2, w3, w4, p, buffer, filepath);
|
||||
@ -5767,18 +5773,14 @@ int npc_parsesrcfile(const char* filepath)
|
||||
return 1;
|
||||
}
|
||||
|
||||
int npc_script_event(map_session_data* sd, enum npce_event type){
|
||||
size_t npc_script_event( map_session_data& sd, enum npce_event type ){
|
||||
if (type == NPCE_MAX)
|
||||
return 0;
|
||||
if (!sd) {
|
||||
ShowError("npc_script_event: nullptr sd. Event Type %d\n", type);
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::vector<struct script_event_s>& vector = script_event[type];
|
||||
|
||||
for( struct script_event_s& evt : vector ){
|
||||
npc_event_sub( sd, evt.event, evt.event_name );
|
||||
npc_event_sub( &sd, evt.event, evt.event_name );
|
||||
}
|
||||
|
||||
return vector.size();
|
||||
|
@ -1630,7 +1630,7 @@ void npc_unload_duplicates (struct npc_data* nd);
|
||||
int npc_unload(struct npc_data* nd, bool single);
|
||||
int npc_reload(void);
|
||||
void npc_read_event_script(void);
|
||||
int npc_script_event(map_session_data* sd, enum npce_event type);
|
||||
size_t npc_script_event( map_session_data& sd, enum npce_event type );
|
||||
|
||||
int npc_duplicate4instance(struct npc_data *snd, int16 m);
|
||||
int npc_instanceinit(struct npc_data* nd);
|
||||
|
@ -1052,8 +1052,7 @@ int party_send_message(map_session_data *sd,const char *mes, size_t len)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int party_recv_message(int party_id,uint32 account_id,const char *mes,int len)
|
||||
{
|
||||
int party_recv_message( int party_id, uint32 account_id, const char *mes, size_t len ){
|
||||
struct party_data *p;
|
||||
if( (p=party_search(party_id))==nullptr)
|
||||
return 0;
|
||||
|
@ -89,7 +89,7 @@ void party_send_movemap(map_session_data *sd);
|
||||
void party_send_levelup(map_session_data *sd);
|
||||
int party_send_logout(map_session_data *sd);
|
||||
int party_send_message(map_session_data *sd,const char *mes, size_t len);
|
||||
int party_recv_message(int party_id,uint32 account_id,const char *mes,int len);
|
||||
int party_recv_message( int party_id, uint32 account_id, const char *mes, size_t len );
|
||||
int party_skill_check(map_session_data *sd, int party_id, uint16 skill_id, uint16 skill_lv);
|
||||
int party_send_xy_clear(struct party_data *p);
|
||||
void party_exp_share(struct party_data *p,struct block_list *src,t_exp base_exp,t_exp job_exp,int zeny);
|
||||
|
@ -6904,7 +6904,8 @@ enum e_setpos pc_setpos(map_session_data* sd, unsigned short mapindex, int x, in
|
||||
if (sd->state.buyingstore) // Stop buyingstore
|
||||
buyingstore_close(sd);
|
||||
|
||||
npc_script_event(sd, NPCE_LOGOUT);
|
||||
npc_script_event( *sd, NPCE_LOGOUT );
|
||||
|
||||
//remove from map, THEN change x/y coordinates
|
||||
unit_remove_map_pc(sd,clrtype);
|
||||
sd->mapindex = mapindex;
|
||||
@ -8122,7 +8123,7 @@ int pc_checkbaselevelup(map_session_data *sd) {
|
||||
}
|
||||
}
|
||||
clif_misceffect( sd->bl, NOTIFYEFFECT_BASE_LEVEL_UP );
|
||||
npc_script_event(sd, NPCE_BASELVUP); //LORDALFA - LVLUPEVENT
|
||||
npc_script_event( *sd, NPCE_BASELVUP );
|
||||
|
||||
if(sd->status.party_id)
|
||||
party_send_levelup(sd);
|
||||
@ -8180,7 +8181,8 @@ int pc_checkjoblevelup(map_session_data *sd)
|
||||
if (pc_checkskill(sd, SG_DEVIL) && ((sd->class_&MAPID_THIRDMASK) == MAPID_STAR_EMPEROR || pc_is_maxjoblv(sd)) )
|
||||
clif_status_change(&sd->bl, EFST_DEVIL1, 1, 0, 0, 0, 1); //Permanent blind effect from SG_DEVIL.
|
||||
|
||||
npc_script_event(sd, NPCE_JOBLVUP);
|
||||
npc_script_event( *sd, NPCE_JOBLVUP );
|
||||
|
||||
for (; job_level <= sd->status.job_level; job_level++)
|
||||
achievement_update_objective(sd, AG_GOAL_LEVEL, 1, job_level);
|
||||
|
||||
@ -9540,8 +9542,12 @@ void pc_damage(map_session_data *sd,struct block_list *src,unsigned int hp, unsi
|
||||
}
|
||||
|
||||
TIMER_FUNC(pc_close_npc_timer){
|
||||
TBL_PC *sd = map_id2sd(id);
|
||||
if(sd) pc_close_npc(sd,data);
|
||||
map_session_data* sd = map_id2sd( id );
|
||||
|
||||
if( sd != nullptr ){
|
||||
pc_close_npc( sd, static_cast<int>( data ) );
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
/**
|
||||
@ -9768,7 +9774,7 @@ int pc_dead(map_session_data *sd,struct block_list *src)
|
||||
if (src && src->type == BL_PC) {
|
||||
map_session_data *ssd = (map_session_data *)src;
|
||||
pc_setparam(ssd, SP_KILLEDRID, sd->bl.id);
|
||||
npc_script_event(ssd, NPCE_KILLPC);
|
||||
npc_script_event( *ssd, NPCE_KILLPC );
|
||||
|
||||
if (battle_config.pk_mode&2) {
|
||||
ssd->status.manner -= 5;
|
||||
|
@ -932,11 +932,11 @@ static const char* skip_word(const char* p)
|
||||
static int add_word(const char* p)
|
||||
{
|
||||
char* word;
|
||||
int len;
|
||||
int i;
|
||||
|
||||
// Check for a word
|
||||
len = skip_word(p) - p;
|
||||
size_t len = skip_word( p ) - p;
|
||||
|
||||
if( len == 0 )
|
||||
disp_error_message("script:add_word: invalid word. A word consists of undercores and/or alphanumeric characters, and valid variable prefixes/postfixes.", p);
|
||||
|
||||
@ -16870,7 +16870,7 @@ BUILDIN_FUNC(insertchar)
|
||||
{
|
||||
const char *str = script_getstr(st,2);
|
||||
const char *c = script_getstr(st,3);
|
||||
int index = script_getnum(st,4);
|
||||
size_t index = script_getnum( st, 4 );
|
||||
char *output;
|
||||
size_t len = strlen(str);
|
||||
|
||||
@ -17130,7 +17130,8 @@ BUILDIN_FUNC(implode)
|
||||
//-------------------------------------------------------
|
||||
BUILDIN_FUNC(sprintf)
|
||||
{
|
||||
unsigned int len, argc = 0, arg = 0, buf2_len = 0;
|
||||
unsigned int argc = 0, arg = 0;
|
||||
size_t buf2_len = 0;
|
||||
const char* format;
|
||||
char* p;
|
||||
char* q;
|
||||
@ -17142,7 +17143,7 @@ BUILDIN_FUNC(sprintf)
|
||||
// Fetch init data
|
||||
format = script_getstr(st, 2);
|
||||
argc = script_lastdata(st)-2;
|
||||
len = strlen(format);
|
||||
size_t len = strlen( format );
|
||||
|
||||
// Skip parsing, where no parsing is required.
|
||||
if(len == 0) {
|
||||
@ -17271,7 +17272,7 @@ BUILDIN_FUNC(sprintf)
|
||||
// Implements C sscanf.
|
||||
//-------------------------------------------------------
|
||||
BUILDIN_FUNC(sscanf){
|
||||
unsigned int argc, arg = 0, len;
|
||||
unsigned int argc, arg = 0;
|
||||
struct script_data* data;
|
||||
map_session_data* sd = nullptr;
|
||||
const char* str;
|
||||
@ -17288,7 +17289,7 @@ BUILDIN_FUNC(sscanf){
|
||||
format = script_getstr(st, 3);
|
||||
argc = script_lastdata(st)-3;
|
||||
|
||||
len = strlen(format);
|
||||
size_t len = strlen(format);
|
||||
|
||||
|
||||
if (len != 0 && strlen(str) == 0) {
|
||||
@ -17439,7 +17440,7 @@ BUILDIN_FUNC(replacestr)
|
||||
|
||||
int count = 0;
|
||||
int numFinds = 0;
|
||||
int i = 0, f = 0;
|
||||
size_t i = 0, f = 0;
|
||||
|
||||
if(findlen == 0) {
|
||||
ShowError("script:replacestr: Invalid search length.\n");
|
||||
@ -17520,7 +17521,6 @@ BUILDIN_FUNC(countstr)
|
||||
bool usecase = true;
|
||||
|
||||
int numFinds = 0;
|
||||
int i = 0, f = 0;
|
||||
|
||||
if(findlen == 0) {
|
||||
ShowError("script:countstr: Invalid search length.\n");
|
||||
@ -17538,8 +17538,8 @@ BUILDIN_FUNC(countstr)
|
||||
}
|
||||
}
|
||||
|
||||
for(; i < inputlen; i++) {
|
||||
for(f = 0; f <= findlen; f++) {
|
||||
for( size_t i = 0; i < inputlen; i++ ){
|
||||
for( size_t f = 0; f <= findlen; f++ ){
|
||||
if(f == findlen) { //complete match
|
||||
numFinds++;
|
||||
i += findlen - 1;
|
||||
@ -21356,8 +21356,10 @@ BUILDIN_FUNC(bg_info)
|
||||
case BG_INFO_MAPS: {
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < bg->maps.size(); i++)
|
||||
setd_sub_str(st, nullptr, ".@bgmaps$", i, mapindex_id2name(bg->maps[i].mapindex), nullptr);
|
||||
for( i = 0; i < bg->maps.size(); i++ ){
|
||||
setd_sub_str( st, nullptr, ".@bgmaps$", static_cast<int>( i ), mapindex_id2name( bg->maps[i].mapindex ), nullptr );
|
||||
}
|
||||
|
||||
setd_sub_num(st, nullptr, ".@bgmapscount", 0, i, nullptr);
|
||||
script_pushint(st, i);
|
||||
break;
|
||||
|
@ -216,7 +216,7 @@ int skill_get_weapontype( uint16 skill_id ) { skill_get(s
|
||||
int skill_get_ammotype( uint16 skill_id ) { skill_get(skill_id, skill_db.find(skill_id)->require.ammo); }
|
||||
int skill_get_ammo_qty( uint16 skill_id, uint16 skill_lv ) { skill_get_lv(skill_id, skill_lv, skill_db.find(skill_id)->require.ammo_qty); }
|
||||
int skill_get_state( uint16 skill_id ) { skill_get(skill_id, skill_db.find(skill_id)->require.state); }
|
||||
int skill_get_status_count( uint16 skill_id ) { skill_get(skill_id, skill_db.find(skill_id)->require.status.size()); }
|
||||
size_t skill_get_status_count( uint16 skill_id ) { skill_get(skill_id, skill_db.find(skill_id)->require.status.size()); }
|
||||
int skill_get_spiritball( uint16 skill_id, uint16 skill_lv ) { skill_get_lv(skill_id, skill_lv, skill_db.find(skill_id)->require.spiritball); }
|
||||
sc_type skill_get_sc(int16 skill_id) { if (!skill_check(skill_id)) return SC_NONE; return skill_db.find(skill_id)->sc; }
|
||||
|
||||
@ -7545,7 +7545,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
||||
break;
|
||||
}
|
||||
else {
|
||||
int abra_skill_id = 0, abra_skill_lv, checked = 0, checked_max = abra_db.size() * 3;
|
||||
int abra_skill_id = 0, abra_skill_lv;
|
||||
size_t checked = 0, checked_max = abra_db.size() * 3;
|
||||
|
||||
do {
|
||||
auto abra_spell = abra_db.random();
|
||||
|
@ -534,7 +534,6 @@ int skill_get_hp( uint16 skill_id ,uint16 skill_lv );
|
||||
int skill_get_mhp( uint16 skill_id ,uint16 skill_lv );
|
||||
int skill_get_sp( uint16 skill_id ,uint16 skill_lv );
|
||||
int skill_get_ap( uint16 skill_id, uint16 skill_lv );
|
||||
int skill_get_status_count( uint16 skill_id );
|
||||
int skill_get_hp_rate( uint16 skill_id, uint16 skill_lv );
|
||||
int skill_get_sp_rate( uint16 skill_id, uint16 skill_lv );
|
||||
int skill_get_ap_rate( uint16 skill_id, uint16 skill_lv );
|
||||
@ -543,7 +542,7 @@ int skill_get_weapontype( uint16 skill_id );
|
||||
int skill_get_ammotype( uint16 skill_id );
|
||||
int skill_get_ammo_qty( uint16 skill_id, uint16 skill_lv );
|
||||
int skill_get_state(uint16 skill_id);
|
||||
int skill_get_status_count( uint16 skill_id );
|
||||
size_t skill_get_status_count( uint16 skill_id );
|
||||
int skill_get_spiritball( uint16 skill_id, uint16 skill_lv );
|
||||
unsigned short skill_dummy2skill_id(unsigned short skill_id);
|
||||
|
||||
|
@ -1682,7 +1682,7 @@ int status_damage(struct block_list *src,struct block_list *target,int64 dhp, in
|
||||
npc_event(sd, bg->die_event.c_str(), 0);
|
||||
}
|
||||
|
||||
npc_script_event(sd,NPCE_DIE);
|
||||
npc_script_event( *sd, NPCE_DIE );
|
||||
}
|
||||
|
||||
return (int)(hp+sp+ap);
|
||||
|
@ -211,8 +211,9 @@ TIMER_FUNC(unit_teleport_timer){
|
||||
else if(*mast_tid != tid || bl == nullptr)
|
||||
return 0;
|
||||
else {
|
||||
TBL_PC *msd = unit_get_master(bl);
|
||||
if(msd && !check_distance_bl(&msd->bl, bl, data)) {
|
||||
map_session_data* msd = unit_get_master( bl );
|
||||
|
||||
if( msd != nullptr && !check_distance_bl( &msd->bl, bl, static_cast<int>( data ) ) ){
|
||||
*mast_tid = INVALID_TIMER;
|
||||
unit_warp(bl, msd->bl.m, msd->bl.x, msd->bl.y, CLR_TELEPORT );
|
||||
} else // No timer needed
|
||||
@ -706,7 +707,8 @@ TIMER_FUNC(unit_delay_walktoxy_timer){
|
||||
* @return 1: Success 0: Fail (No valid bl or target)
|
||||
*/
|
||||
TIMER_FUNC(unit_delay_walktobl_timer){
|
||||
struct block_list *bl = map_id2bl(id), *tbl = map_id2bl(data);
|
||||
block_list* bl = map_id2bl( id );
|
||||
block_list* tbl = map_id2bl( static_cast<int>( data ) );
|
||||
|
||||
if(!bl || bl->prev == nullptr || tbl == nullptr)
|
||||
return 0;
|
||||
|
@ -2331,7 +2331,7 @@ static bool quest_read_db( char *split[], size_t columns, size_t current ){
|
||||
std::string title = split[17];
|
||||
|
||||
if (columns > 18) { // If the title has a comma in it, concatenate
|
||||
int col = 18;
|
||||
size_t col = 18;
|
||||
|
||||
while (col < columns) {
|
||||
title += ',' + std::string(split[col]);
|
||||
@ -2472,7 +2472,7 @@ static bool instance_readdb_sub( char* str[], size_t columns, size_t current ){
|
||||
body << YAML::Key << "AdditionalMaps";
|
||||
body << YAML::BeginMap;
|
||||
|
||||
for (int i = 7; i < columns; i++) {
|
||||
for( size_t i = 7; i < columns; i++ ){
|
||||
if (!strlen(str[i]))
|
||||
continue;
|
||||
|
||||
@ -3110,7 +3110,8 @@ static bool itemdb_read_randomopt_group( char* str[], size_t columns, size_t cur
|
||||
if (group == nullptr)
|
||||
group_entry.rate.push_back((uint16)strtoul(str[1], nullptr, 10));
|
||||
|
||||
for (int j = 0, k = 2; k < columns && j < MAX_ITEM_RDM_OPT; k += 3) {
|
||||
uint16 j = 0;
|
||||
for( size_t k = 2; k < columns && j < MAX_ITEM_RDM_OPT; k += 3 ){
|
||||
int32 randid_tmp = -1;
|
||||
|
||||
for (const auto &opt : rand_opt_db) {
|
||||
@ -3876,7 +3877,7 @@ static bool skill_parse_row_createarrowdb( char* split[], size_t columns, size_t
|
||||
|
||||
std::map<std::string, uint32> item_created;
|
||||
|
||||
for (uint16 x = 1; x+1 < columns && split[x] && split[x+1]; x += 2) {
|
||||
for( size_t x = 1; x + 1 < columns && split[x] && split[x + 1]; x += 2 ){
|
||||
nameid = static_cast<t_itemid>(strtoul(split[x], nullptr, 10));
|
||||
std::string* item_name = util::umap_find(aegis_itemnames, nameid);
|
||||
|
||||
@ -4132,7 +4133,7 @@ static bool mob_readdb_itemratio( char* str[], size_t columns, size_t current ){
|
||||
if (columns-2 > 0) {
|
||||
body << YAML::Key << "List";
|
||||
body << YAML::BeginMap;
|
||||
for (int i = 0; i < columns-2; i++) {
|
||||
for( size_t i = 0; i < columns - 2; i++ ){
|
||||
uint16 mob_id = static_cast<uint16>(strtoul(str[i+2], nullptr, 10));
|
||||
std::string* mob_name = util::umap_find( aegis_mobnames, mob_id );
|
||||
|
||||
@ -4251,8 +4252,9 @@ static bool pc_readdb_job2( char* fields[], size_t columns, size_t current ){
|
||||
stats.resize(MAX_LEVEL);
|
||||
std::fill(stats.begin(), stats.end(), 0); // Fill with 0 so we don't produce arbitrary stats
|
||||
|
||||
for (int i = 1; i < columns; i++)
|
||||
for( size_t i = 1; i < columns; i++ ){
|
||||
stats[i - 1] = atoi(fields[i]);
|
||||
}
|
||||
|
||||
job_db2.insert({ atoi(fields[0]), stats });
|
||||
return true;
|
||||
|
@ -76,7 +76,7 @@ int read_map(char *name, struct map_data *m)
|
||||
|
||||
// Open map GAT
|
||||
sprintf(filename,"data\\%s.gat", name);
|
||||
gat = (unsigned char *)grfio_read(filename);
|
||||
gat = (unsigned char *)grfio_reads(filename);
|
||||
if (gat == nullptr)
|
||||
return 0;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user