Skip to content

Commit

Permalink
Hercules Renewal Phase One : pc, party, map, timer
Browse files Browse the repository at this point in the history
Added iPc, iParty, iMap, iTimer to HPM exported interfaces
  • Loading branch information
Earisu authored and euphyy committed Jun 15, 2013
1 parent ba8cf0f commit 0ea143c
Show file tree
Hide file tree
Showing 57 changed files with 5,225 additions and 4,786 deletions.
44 changes: 22 additions & 22 deletions src/char/char.c
Expand Up @@ -188,7 +188,7 @@ static DBData create_online_char_data(DBKey key, va_list args)
character->pincode_enable = -1;
character->fd = -1;
character->waiting_disconnect = INVALID_TIMER;
return DB->ptr2data(character);
return iDB->ptr2data(character);
}

void set_char_charselect(int account_id)
Expand All @@ -207,7 +207,7 @@ void set_char_charselect(int account_id)
character->pincode_enable = *pincode->charselect + *pincode->enabled;

if(character->waiting_disconnect != INVALID_TIMER) {
delete_timer(character->waiting_disconnect, chardb_waiting_disconnect);
iTimer->delete_timer(character->waiting_disconnect, chardb_waiting_disconnect);
character->waiting_disconnect = INVALID_TIMER;
}

Expand Down Expand Up @@ -248,7 +248,7 @@ void set_char_online(int map_id, int char_id, int account_id)

//Get rid of disconnect timer
if(character->waiting_disconnect != INVALID_TIMER) {
delete_timer(character->waiting_disconnect, chardb_waiting_disconnect);
iTimer->delete_timer(character->waiting_disconnect, chardb_waiting_disconnect);
character->waiting_disconnect = INVALID_TIMER;
}

Expand Down Expand Up @@ -293,7 +293,7 @@ void set_char_offline(int char_id, int account_id)
server[character->server].users--;

if(character->waiting_disconnect != INVALID_TIMER){
delete_timer(character->waiting_disconnect, chardb_waiting_disconnect);
iTimer->delete_timer(character->waiting_disconnect, chardb_waiting_disconnect);
character->waiting_disconnect = INVALID_TIMER;
}

Expand Down Expand Up @@ -322,13 +322,13 @@ void set_char_offline(int char_id, int account_id)
*/
static int char_db_setoffline(DBKey key, DBData *data, va_list ap)
{
struct online_char_data* character = (struct online_char_data*)DB->data2ptr(data);
struct online_char_data* character = (struct online_char_data*)iDB->data2ptr(data);
int server = va_arg(ap, int);
if (server == -1) {
character->char_id = -1;
character->server = -1;
if(character->waiting_disconnect != INVALID_TIMER){
delete_timer(character->waiting_disconnect, chardb_waiting_disconnect);
iTimer->delete_timer(character->waiting_disconnect, chardb_waiting_disconnect);
character->waiting_disconnect = INVALID_TIMER;
}
} else if (character->server == server)
Expand All @@ -341,7 +341,7 @@ static int char_db_setoffline(DBKey key, DBData *data, va_list ap)
*/
static int char_db_kickoffline(DBKey key, DBData *data, va_list ap)
{
struct online_char_data* character = (struct online_char_data*)DB->data2ptr(data);
struct online_char_data* character = (struct online_char_data*)iDB->data2ptr(data);
int server_id = va_arg(ap, int);

if (server_id > -1 && character->server != server_id)
Expand Down Expand Up @@ -393,7 +393,7 @@ static DBData create_charstatus(DBKey key, va_list args)
struct mmo_charstatus *cp;
cp = (struct mmo_charstatus *) aCalloc(1,sizeof(struct mmo_charstatus));
cp->char_id = key.i;
return DB->ptr2data(cp);
return iDB->ptr2data(cp);
}

int inventory_to_sql(const struct item items[], int max, int id);
Expand Down Expand Up @@ -2025,7 +2025,7 @@ static void char_auth_ok(int fd, struct char_session_data *sd)
{ //Character already online. KICK KICK KICK
mapif_disconnectplayer(server[character->server].fd, character->account_id, character->char_id, 2);
if (character->waiting_disconnect == INVALID_TIMER)
character->waiting_disconnect = add_timer(gettick()+20000, chardb_waiting_disconnect, character->account_id, 0);
character->waiting_disconnect = iTimer->add_timer(iTimer->gettick()+20000, chardb_waiting_disconnect, character->account_id, 0);
WFIFOHEAD(fd,3);
WFIFOW(fd,0) = 0x81;
WFIFOB(fd,2) = 8;
Expand Down Expand Up @@ -2102,7 +2102,7 @@ void loginif_on_ready(void)
loginif_check_shutdown();

//Send online accounts to login server.
send_accounts_tologin(INVALID_TIMER, gettick(), 0, 0);
send_accounts_tologin(INVALID_TIMER, iTimer->gettick(), 0, 0);

// if no map-server already connected, display a message...
ARR_FIND( 0, ARRAYLENGTH(server), i, server[i].fd > 0 && server[i].map[0] );
Expand Down Expand Up @@ -2383,7 +2383,7 @@ int parse_fromlogin(int fd) {
{ //Kick it from the map server it is on.
mapif_disconnectplayer(server[character->server].fd, character->account_id, character->char_id, 2);
if (character->waiting_disconnect == INVALID_TIMER)
character->waiting_disconnect = add_timer(gettick()+AUTH_TIMEOUT, chardb_waiting_disconnect, character->account_id, 0);
character->waiting_disconnect = iTimer->add_timer(iTimer->gettick()+AUTH_TIMEOUT, chardb_waiting_disconnect, character->account_id, 0);
}
else
{// Manual kick from char server.
Expand Down Expand Up @@ -2452,12 +2452,12 @@ int send_accounts_tologin(int tid, unsigned int tick, int id, intptr_t data);
void do_init_loginif(void)
{
// establish char-login connection if not present
add_timer_func_list(check_connect_login_server, "check_connect_login_server");
add_timer_interval(gettick() + 1000, check_connect_login_server, 0, 0, 10 * 1000);
iTimer->add_timer_func_list(check_connect_login_server, "check_connect_login_server");
iTimer->add_timer_interval(iTimer->gettick() + 1000, check_connect_login_server, 0, 0, 10 * 1000);

// send a list of all online account IDs to login server
add_timer_func_list(send_accounts_tologin, "send_accounts_tologin");
add_timer_interval(gettick() + 1000, send_accounts_tologin, 0, 0, 3600 * 1000); //Sync online accounts every hour
iTimer->add_timer_func_list(send_accounts_tologin, "send_accounts_tologin");
iTimer->add_timer_interval(iTimer->gettick() + 1000, send_accounts_tologin, 0, 0, 3600 * 1000); //Sync online accounts every hour
}

void do_final_loginif(void)
Expand Down Expand Up @@ -4457,7 +4457,7 @@ int broadcast_user_count(int tid, unsigned int tick, int id, intptr_t data)
*/
static int send_accounts_tologin_sub(DBKey key, DBData *data, va_list ap)
{
struct online_char_data* character = DB->data2ptr(data);
struct online_char_data* character = iDB->data2ptr(data);
int* i = va_arg(ap, int*);

if(character->server > -1)
Expand Down Expand Up @@ -4539,7 +4539,7 @@ static int chardb_waiting_disconnect(int tid, unsigned int tick, int id, intptr_
*/
static int online_data_cleanup_sub(DBKey key, DBData *data, va_list ap)
{
struct online_char_data *character= DB->data2ptr(data);
struct online_char_data *character= iDB->data2ptr(data);
if (character->fd != -1)
return 0; //Character still connected
if (character->server == -2) //Unknown server.. set them offline
Expand Down Expand Up @@ -4985,15 +4985,15 @@ int do_init(int argc, char **argv) {
do_init_mapif();

// periodically update the overall user count on all mapservers + login server
add_timer_func_list(broadcast_user_count, "broadcast_user_count");
add_timer_interval(gettick() + 1000, broadcast_user_count, 0, 0, 5 * 1000);
iTimer->add_timer_func_list(broadcast_user_count, "broadcast_user_count");
iTimer->add_timer_interval(iTimer->gettick() + 1000, broadcast_user_count, 0, 0, 5 * 1000);

// Timer to clear (online_char_db)
add_timer_func_list(chardb_waiting_disconnect, "chardb_waiting_disconnect");
iTimer->add_timer_func_list(chardb_waiting_disconnect, "chardb_waiting_disconnect");

// Online Data timers (checking if char still connected)
add_timer_func_list(online_data_cleanup, "online_data_cleanup");
add_timer_interval(gettick() + 1000, online_data_cleanup, 0, 0, 600 * 1000);
iTimer->add_timer_func_list(online_data_cleanup, "online_data_cleanup");
iTimer->add_timer_interval(iTimer->gettick() + 1000, online_data_cleanup, 0, 0, 600 * 1000);

//Cleaning the tables for NULL entrys @ startup [Sirius]
//Chardb clean
Expand Down
8 changes: 4 additions & 4 deletions src/char/int_auction.c
Expand Up @@ -115,7 +115,7 @@ unsigned int auction_create(struct auction_data *auction)
auction->item.expire_time = 0;

auction->auction_id = (unsigned int)SqlStmt_LastInsertId(stmt);
auction->auction_end_timer = add_timer( gettick() + tick , auction_end_timer, auction->auction_id, 0);
auction->auction_end_timer = iTimer->add_timer( iTimer->gettick() + tick , auction_end_timer, auction->auction_id, 0);
ShowInfo("New Auction %u | time left %u ms | By %s.\n", auction->auction_id, tick, auction->seller_name);

CREATE(auction_, struct auction_data, 1);
Expand Down Expand Up @@ -170,7 +170,7 @@ void auction_delete(struct auction_data *auction)
Sql_ShowDebug(sql_handle);

if( auction->auction_end_timer != INVALID_TIMER )
delete_timer(auction->auction_end_timer, auction_end_timer);
iTimer->delete_timer(auction->auction_end_timer, auction_end_timer);

idb_remove(auction_db_, auction_id);
}
Expand All @@ -182,7 +182,7 @@ void inter_auctions_fromsql(void)
struct item *item;
char *data;
StringBuf buf;
unsigned int tick = gettick(), endtick;
unsigned int tick = iTimer->gettick(), endtick;
time_t now = time(NULL);

StrBuf->Init(&buf);
Expand Down Expand Up @@ -234,7 +234,7 @@ void inter_auctions_fromsql(void)
else
endtick = tick + 10000; // 10 Second's to process ended auctions

auction->auction_end_timer = add_timer(endtick, auction_end_timer, auction->auction_id, 0);
auction->auction_end_timer = iTimer->add_timer(endtick, auction_end_timer, auction->auction_id, 0);
idb_put(auction_db_, auction->auction_id, auction);
}

Expand Down
10 changes: 5 additions & 5 deletions src/char/int_guild.c
Expand Up @@ -57,7 +57,7 @@ static int guild_save_timer(int tid, unsigned int tick, int id, intptr_t data)
if( last_id == 0 ) //Save the first guild in the list.
state = 1;

for( g = DB->data2ptr(iter->first(iter, &key)); dbi_exists(iter); g = DB->data2ptr(iter->next(iter, &key)) )
for( g = iDB->data2ptr(iter->first(iter, &key)); dbi_exists(iter); g = iDB->data2ptr(iter->next(iter, &key)) )
{
if( state == 0 && g->guild_id == last_id )
state++; //Save next guild in the list.
Expand Down Expand Up @@ -86,7 +86,7 @@ static int guild_save_timer(int tid, unsigned int tick, int id, intptr_t data)

state = guild_db_->size(guild_db_);
if( state < 1 ) state = 1; //Calculate the time slot for the next save.
add_timer(tick + autosave_interval/state, guild_save_timer, 0, 0);
iTimer->add_timer(tick + autosave_interval/state, guild_save_timer, 0, 0);
return 0;
}

Expand Down Expand Up @@ -729,8 +729,8 @@ int inter_guild_sql_init(void)
//Read exp file
sv->readdb("db", DBPATH"exp_guild.txt", ',', 1, 1, 100, exp_guild_parse_row);

add_timer_func_list(guild_save_timer, "guild_save_timer");
add_timer(gettick() + 10000, guild_save_timer, 0, 0);
iTimer->add_timer_func_list(guild_save_timer, "guild_save_timer");
iTimer->add_timer(iTimer->gettick() + 10000, guild_save_timer, 0, 0);
return 0;
}

Expand All @@ -739,7 +739,7 @@ int inter_guild_sql_init(void)
*/
static int guild_db_final(DBKey key, DBData *data, va_list ap)
{
struct guild *g = DB->data2ptr(data);
struct guild *g = iDB->data2ptr(data);
if (g->save_flag&GS_MASK) {
inter_guild_tosql(g, g->save_flag&GS_MASK);
return 1;
Expand Down
6 changes: 3 additions & 3 deletions src/char/inter.c
Expand Up @@ -935,7 +935,7 @@ int mapif_disconnectplayer(int fd, int account_id, int char_id, int reason)
int check_ttl_wisdata_sub(DBKey key, DBData *data, va_list ap)
{
unsigned long tick;
struct WisData *wd = DB->data2ptr(data);
struct WisData *wd = iDB->data2ptr(data);
tick = va_arg(ap, unsigned long);

if (DIFF_TICK(tick, wd->tick) > WISDATA_TTL && wis_delnum < WISDELLIST_MAX)
Expand All @@ -946,7 +946,7 @@ int check_ttl_wisdata_sub(DBKey key, DBData *data, va_list ap)

int check_ttl_wisdata(void)
{
unsigned long tick = gettick();
unsigned long tick = iTimer->gettick();
int i;

do {
Expand Down Expand Up @@ -1039,7 +1039,7 @@ int mapif_parse_WisRequest(int fd)
memcpy(wd->src, RFIFOP(fd, 4), NAME_LENGTH);
memcpy(wd->dst, RFIFOP(fd,28), NAME_LENGTH);
memcpy(wd->msg, RFIFOP(fd,52), wd->len);
wd->tick = gettick();
wd->tick = iTimer->gettick();
idb_put(wis_db, wd->id, wd);
mapif_wis_message(wd);
}
Expand Down
12 changes: 4 additions & 8 deletions src/common/HPM.c
Expand Up @@ -264,8 +264,8 @@ void hplugins_share_defaults(void) {
HPM->share(&SERVER_TYPE,"SERVER_TYPE");
HPM->share((void*)get_svn_revision,"get_svn_revision");
HPM->share((void*)get_git_hash,"get_git_hash");
HPM->share(DB, "DB");
HPM->share(malloclib, "malloclib");
HPM->share(iDB, "iDB");
HPM->share(iMalloc, "iMalloc");
/* socket */
HPM->share(RFIFOSKIP,"RFIFOSKIP");
HPM->share(WFIFOSET,"WFIFOSET");
Expand All @@ -281,12 +281,8 @@ void hplugins_share_defaults(void) {
/* sql */
HPM->share(SQL,"SQL");
/* timer */
HPM->share(gettick,"gettick");
HPM->share(add_timer,"add_timer");
HPM->share(add_timer_interval,"add_timer_interval");
HPM->share(add_timer_func_list,"add_timer_func_list");
HPM->share(delete_timer,"delete_timer");
HPM->share(get_uptime,"get_uptime");
HPM->share(iTimer,"iTimer");

}
CPCMD(plugins) {
if( HPM->plugin_count == 0 ) {
Expand Down
6 changes: 3 additions & 3 deletions src/common/console.c
Expand Up @@ -101,7 +101,7 @@ CPCMD(help) {
}
/* [Ind/Hercules] */
CPCMD(malloc_usage) {
unsigned int val = (unsigned int)malloclib->usage();
unsigned int val = (unsigned int)iMalloc->usage();
ShowInfo("malloc_usage: %.2f MB\n",(double)(val)/1024);
}
#define CP_DEF_C(x) { #x , NULL , NULL, NULL }
Expand Down Expand Up @@ -369,8 +369,8 @@ void console_parse_init(void) {
exit(EXIT_FAILURE);
}

add_timer_func_list(console->parse_timer, "console_parse_timer");
add_timer_interval(gettick() + 1000, console->parse_timer, 0, 0, 500);/* start listening in 1s; re-try every 0.5s */
iTimer->add_timer_func_list(console->parse_timer, "console_parse_timer");
iTimer->add_timer_interval(iTimer->gettick() + 1000, console->parse_timer, 0, 0, 500);/* start listening in 1s; re-try every 0.5s */

}
#endif /* CONSOLE_INPUT */
Expand Down
14 changes: 7 additions & 7 deletions src/common/core.c
Expand Up @@ -307,7 +307,7 @@ int main (int argc, char **argv) {
}
core_defaults();

malloclib->init();// needed for Show* in display_title() [FlavioJS]
iMalloc->init();// needed for Show* in display_title() [FlavioJS]

console->display_title();

Expand All @@ -322,14 +322,14 @@ int main (int argc, char **argv) {
Sql_Init();
rathread_init();
mempool_init();
DB->init();
iDB->init();
signals_init();

#ifdef _WIN32
cevents_init();
#endif

timer_init();
iTimer->init();

console->init();

Expand All @@ -343,7 +343,7 @@ int main (int argc, char **argv) {
{// Main runtime cycle
int next;
while (runflag != CORE_ST_STOP) {
next = do_timer(gettick_nocache());
next = iTimer->do_timer(iTimer->gettick_nocache());
do_sockets(next);
}
}
Expand All @@ -354,14 +354,14 @@ int main (int argc, char **argv) {
#ifndef MINICORE
HPM->final();
#endif
timer_final();
iTimer->final();
socket_final();
DB->final();
iDB->final();
mempool_final();
rathread_final();
#endif

malloclib->final();
iMalloc->final();

return 0;
}

0 comments on commit 0ea143c

Please sign in to comment.