* Hunted down the simpler 64bit pointer truncations.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13380 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
1fb636de8a
commit
72542d65cc
@ -3,6 +3,8 @@ Date Added
|
|||||||
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
|
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
|
||||||
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
||||||
|
|
||||||
|
2008/11/22
|
||||||
|
* Hunted down the simpler 64bit pointer truncations. [FlavioJS]
|
||||||
2008/11/18
|
2008/11/18
|
||||||
* Rev. 13375 Autotrade characters will no longer get caught by Urgent Recall. (bugreport:2447) [L0ne_W0lf]
|
* Rev. 13375 Autotrade characters will no longer get caught by Urgent Recall. (bugreport:2447) [L0ne_W0lf]
|
||||||
2008/11/11
|
2008/11/11
|
||||||
|
@ -428,7 +428,7 @@ void _mfree(void *ptr, const char *file, int line, const char *func )
|
|||||||
hash_unfill[ block->unit_hash ] = block;
|
hash_unfill[ block->unit_hash ] = block;
|
||||||
}
|
}
|
||||||
head->size = block->unit_unfill;
|
head->size = block->unit_unfill;
|
||||||
block->unit_unfill = (unsigned short)(((unsigned long)head - (unsigned long)block->data) / block->unit_size);
|
block->unit_unfill = (unsigned short)(((uintptr)head - (uintptr)block->data) / block->unit_size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -212,7 +212,7 @@ static int Sql_P_Keepalive(Sql* self)
|
|||||||
// establish keepalive
|
// establish keepalive
|
||||||
ping_interval = timeout - 30; // 30-second reserve
|
ping_interval = timeout - 30; // 30-second reserve
|
||||||
//add_timer_func_list(Sql_P_KeepaliveTimer, "Sql_P_KeepaliveTimer");
|
//add_timer_func_list(Sql_P_KeepaliveTimer, "Sql_P_KeepaliveTimer");
|
||||||
return add_timer_interval(gettick() + ping_interval*1000, Sql_P_KeepaliveTimer, 0, (int)self, ping_interval*1000);
|
return add_timer_interval(gettick() + ping_interval*1000, Sql_P_KeepaliveTimer, 0, (intptr)self, ping_interval*1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,9 +63,9 @@ int add_timer_func_list(TimerFunc func, char* name)
|
|||||||
for( tfl=tfl_root; tfl != NULL; tfl=tfl->next )
|
for( tfl=tfl_root; tfl != NULL; tfl=tfl->next )
|
||||||
{// check suspicious cases
|
{// check suspicious cases
|
||||||
if( func == tfl->func )
|
if( func == tfl->func )
|
||||||
ShowWarning("add_timer_func_list: duplicating function %08x(%s) as %s.\n",(int)tfl->func,tfl->name,name);
|
ShowWarning("add_timer_func_list: duplicating function %p(%s) as %s.\n",tfl->func,tfl->name,name);
|
||||||
else if( strcmp(name,tfl->name) == 0 )
|
else if( strcmp(name,tfl->name) == 0 )
|
||||||
ShowWarning("add_timer_func_list: function %08X has the same name as %08X(%s)\n",(int)func,(int)tfl->func,tfl->name);
|
ShowWarning("add_timer_func_list: function %p has the same name as %p(%s)\n",func,tfl->func,tfl->name);
|
||||||
}
|
}
|
||||||
CREATE(tfl,struct timer_func_list,1);
|
CREATE(tfl,struct timer_func_list,1);
|
||||||
tfl->next = tfl_root;
|
tfl->next = tfl_root;
|
||||||
@ -256,7 +256,7 @@ int add_timer_interval(unsigned int tick, TimerFunc func, int id, intptr data, i
|
|||||||
|
|
||||||
if( interval < 1 )
|
if( interval < 1 )
|
||||||
{
|
{
|
||||||
ShowError("add_timer_interval: invalid interval (tick=%u %08x[%s] id=%d data=%d diff_tick=%d)\n", tick, (int)func, search_timer_func_list(func), id, data, DIFF_TICK(tick, gettick()));
|
ShowError("add_timer_interval: invalid interval (tick=%u %p[%s] id=%d data=%d diff_tick=%d)\n", tick, func, search_timer_func_list(func), id, data, DIFF_TICK(tick, gettick()));
|
||||||
return INVALID_TIMER;
|
return INVALID_TIMER;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -285,12 +285,12 @@ int delete_timer(int tid, TimerFunc func)
|
|||||||
{
|
{
|
||||||
if( tid < 0 || tid >= timer_data_num )
|
if( tid < 0 || tid >= timer_data_num )
|
||||||
{
|
{
|
||||||
ShowError("delete_timer error : no such timer %d (%08x(%s))\n", tid, (int)func, search_timer_func_list(func));
|
ShowError("delete_timer error : no such timer %d (%p(%s))\n", tid, func, search_timer_func_list(func));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if( timer_data[tid].func != func )
|
if( timer_data[tid].func != func )
|
||||||
{
|
{
|
||||||
ShowError("delete_timer error : function mismatch %08x(%s) != %08x(%s)\n", (int)timer_data[tid].func, search_timer_func_list(timer_data[tid].func), (int)func, search_timer_func_list(func));
|
ShowError("delete_timer error : function mismatch %p(%s) != %p(%s)\n", timer_data[tid].func, search_timer_func_list(timer_data[tid].func), func, search_timer_func_list(func));
|
||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -324,7 +324,7 @@ int settick_timer(int tid, unsigned int tick)
|
|||||||
{// skip timers with the same tick
|
{// skip timers with the same tick
|
||||||
if( old_tick != timer_data[timer_heap[old_pos]].tick )
|
if( old_tick != timer_data[timer_heap[old_pos]].tick )
|
||||||
{
|
{
|
||||||
ShowError("settick_timer: no such timer %d (%08x(%s))\n", tid, (int)timer_data[tid].func, search_timer_func_list(timer_data[tid].func));
|
ShowError("settick_timer: no such timer %d (%p(%s))\n", tid, timer_data[tid].func, search_timer_func_list(timer_data[tid].func));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
++old_pos;
|
++old_pos;
|
||||||
|
@ -183,7 +183,7 @@ static bool account_db_txt_init(AccountDB* self)
|
|||||||
|
|
||||||
// initialize data saving timer
|
// initialize data saving timer
|
||||||
add_timer_func_list(mmo_auth_sync_timer, "mmo_auth_sync_timer");
|
add_timer_func_list(mmo_auth_sync_timer, "mmo_auth_sync_timer");
|
||||||
db->save_timer = add_timer_interval(gettick() + AUTH_SAVING_INTERVAL, mmo_auth_sync_timer, 0, (int)db, AUTH_SAVING_INTERVAL);
|
db->save_timer = add_timer_interval(gettick() + AUTH_SAVING_INTERVAL, mmo_auth_sync_timer, 0, (intptr)db, AUTH_SAVING_INTERVAL);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -8739,7 +8739,7 @@ int atcommand_commands(const int fd, struct map_session_data* sd, const char* co
|
|||||||
slen = (unsigned int)strlen(atcommand_info[i].command);
|
slen = (unsigned int)strlen(atcommand_info[i].command);
|
||||||
|
|
||||||
// flush the text buffer if this command won't fit into it
|
// flush the text buffer if this command won't fit into it
|
||||||
if( ((CHATBOX_SIZE-1+(int)line_buff)-(int)cur) < (int)slen )
|
if( slen + cur - line_buff >= CHATBOX_SIZE )
|
||||||
{
|
{
|
||||||
clif_displaymessage(fd,line_buff);
|
clif_displaymessage(fd,line_buff);
|
||||||
cur = line_buff;
|
cur = line_buff;
|
||||||
|
@ -206,7 +206,7 @@ int battle_delay_damage (unsigned int tick, int amotion, struct block_list *src,
|
|||||||
dat->distance = distance_bl(src, target)+10; //Attack should connect regardless unless you teleported.
|
dat->distance = distance_bl(src, target)+10; //Attack should connect regardless unless you teleported.
|
||||||
if (src->type != BL_PC && amotion > 1000)
|
if (src->type != BL_PC && amotion > 1000)
|
||||||
amotion = 1000; //Aegis places a damage-delay cap of 1 sec to non player attacks. [Skotlex]
|
amotion = 1000; //Aegis places a damage-delay cap of 1 sec to non player attacks. [Skotlex]
|
||||||
add_timer(tick+amotion, battle_delay_damage_sub, src->id, (int)dat);
|
add_timer(tick+amotion, battle_delay_damage_sub, src->id, (intptr)dat);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -633,7 +633,7 @@ int clif_clearunit_area(struct block_list* bl, uint8 type)
|
|||||||
|
|
||||||
static int clif_clearunit_delayed_sub(int tid, unsigned int tick, int id, intptr data)
|
static int clif_clearunit_delayed_sub(int tid, unsigned int tick, int id, intptr data)
|
||||||
{
|
{
|
||||||
struct block_list *bl = (struct block_list *)id;
|
struct block_list *bl = (struct block_list *)data;
|
||||||
clif_clearunit_area(bl, 0);
|
clif_clearunit_area(bl, 0);
|
||||||
aFree(bl);
|
aFree(bl);
|
||||||
return 0;
|
return 0;
|
||||||
@ -644,7 +644,7 @@ int clif_clearunit_delayed(struct block_list* bl, unsigned int tick)
|
|||||||
struct block_list *tbl;
|
struct block_list *tbl;
|
||||||
tbl = (struct block_list*)aMalloc(sizeof (struct block_list));
|
tbl = (struct block_list*)aMalloc(sizeof (struct block_list));
|
||||||
memcpy (tbl, bl, sizeof (struct block_list));
|
memcpy (tbl, bl, sizeof (struct block_list));
|
||||||
add_timer(tick, clif_clearunit_delayed_sub, (int)tbl, 0);
|
add_timer(tick, clif_clearunit_delayed_sub, 0, (intptr)tbl);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1874,7 +1874,7 @@ int guild_castlealldataload(int len,struct guild_castle *gc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// update mapserver castle data with new info
|
// update mapserver castle data with new info
|
||||||
memcpy(&c->guild_id, &gc->guild_id, sizeof(struct guild_castle) - ((int)&c->guild_id - (int)c));
|
memcpy(&c->guild_id, &gc->guild_id, sizeof(struct guild_castle) - ((uintptr)&c->guild_id - (uintptr)c));
|
||||||
|
|
||||||
if( c->guild_id )
|
if( c->guild_id )
|
||||||
{
|
{
|
||||||
|
@ -1632,7 +1632,7 @@ static int mob_delay_item_drop(int tid, unsigned int tick, int id, intptr data)
|
|||||||
{
|
{
|
||||||
struct item_drop_list *list;
|
struct item_drop_list *list;
|
||||||
struct item_drop *ditem, *ditem_prev;
|
struct item_drop *ditem, *ditem_prev;
|
||||||
list=(struct item_drop_list *)id;
|
list=(struct item_drop_list *)data;
|
||||||
ditem = list->item;
|
ditem = list->item;
|
||||||
while (ditem) {
|
while (ditem) {
|
||||||
map_addflooritem(&ditem->item_data,ditem->item_data.amount,
|
map_addflooritem(&ditem->item_data,ditem->item_data.amount,
|
||||||
@ -2218,7 +2218,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
|
|||||||
mob_item_drop(md, dlist, mob_setlootitem(&md->lootitem[i]), 1, 10000, 0);
|
mob_item_drop(md, dlist, mob_setlootitem(&md->lootitem[i]), 1, 10000, 0);
|
||||||
}
|
}
|
||||||
if (dlist->item) //There are drop items.
|
if (dlist->item) //There are drop items.
|
||||||
add_timer(tick + (!battle_config.delay_battle_damage?500:0), mob_delay_item_drop, (int)dlist, 0);
|
add_timer(tick + (!battle_config.delay_battle_damage?500:0), mob_delay_item_drop, 0, (intptr)dlist);
|
||||||
else //No drops
|
else //No drops
|
||||||
ers_free(item_drop_list_ers, dlist);
|
ers_free(item_drop_list_ers, dlist);
|
||||||
} else if (md->lootitem && md->lootitem_count) { //Loot MUST drop!
|
} else if (md->lootitem && md->lootitem_count) { //Loot MUST drop!
|
||||||
@ -2232,7 +2232,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
|
|||||||
dlist->item = NULL;
|
dlist->item = NULL;
|
||||||
for(i = 0; i < md->lootitem_count; i++)
|
for(i = 0; i < md->lootitem_count; i++)
|
||||||
mob_item_drop(md, dlist, mob_setlootitem(&md->lootitem[i]), 1, 10000, 0);
|
mob_item_drop(md, dlist, mob_setlootitem(&md->lootitem[i]), 1, 10000, 0);
|
||||||
add_timer(tick + (!battle_config.delay_battle_damage?500:0), mob_delay_item_drop, (int)dlist, 0);
|
add_timer(tick + (!battle_config.delay_battle_damage?500:0), mob_delay_item_drop, 0, (intptr)dlist);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(mvp_sd && md->db->mexp > 0 && !md->special_state.ai)
|
if(mvp_sd && md->db->mexp > 0 && !md->special_state.ai)
|
||||||
|
@ -434,9 +434,9 @@ int npc_timerevent(int tid, unsigned int tick, int id, intptr data)
|
|||||||
- nd->u.scr.timer_event[ ted->next-1 ].timer;
|
- nd->u.scr.timer_event[ ted->next-1 ].timer;
|
||||||
ted->time+=next;
|
ted->time+=next;
|
||||||
if (sd)
|
if (sd)
|
||||||
sd->npc_timer_id = add_timer(tick+next,npc_timerevent,id,(int)ted);
|
sd->npc_timer_id = add_timer(tick+next,npc_timerevent,id,(intptr)ted);
|
||||||
else
|
else
|
||||||
nd->u.scr.timerid = add_timer(tick+next,npc_timerevent,id,(int)ted);
|
nd->u.scr.timerid = add_timer(tick+next,npc_timerevent,id,(intptr)ted);
|
||||||
} else {
|
} else {
|
||||||
if (sd)
|
if (sd)
|
||||||
sd->npc_timer_id = -1;
|
sd->npc_timer_id = -1;
|
||||||
@ -500,9 +500,9 @@ int npc_timerevent_start(struct npc_data* nd, int rid)
|
|||||||
next = nd->u.scr.timer_event[j].timer - nd->u.scr.timer;
|
next = nd->u.scr.timer_event[j].timer - nd->u.scr.timer;
|
||||||
ted->time = nd->u.scr.timer_event[j].timer;
|
ted->time = nd->u.scr.timer_event[j].timer;
|
||||||
if (sd)
|
if (sd)
|
||||||
sd->npc_timer_id = add_timer(gettick()+next,npc_timerevent,nd->bl.id,(int)ted);
|
sd->npc_timer_id = add_timer(gettick()+next,npc_timerevent,nd->bl.id,(intptr)ted);
|
||||||
else
|
else
|
||||||
nd->u.scr.timerid = add_timer(gettick()+next,npc_timerevent,nd->bl.id,(int)ted);
|
nd->u.scr.timerid = add_timer(gettick()+next,npc_timerevent,nd->bl.id,(intptr)ted);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/*==========================================
|
/*==========================================
|
||||||
|
@ -6393,7 +6393,7 @@ int pc_addeventtimer(struct map_session_data *sd,int tick,const char *name)
|
|||||||
if( i == MAX_EVENTTIMER )
|
if( i == MAX_EVENTTIMER )
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
sd->eventtimer[i] = add_timer(gettick()+tick, pc_eventtimer, sd->bl.id, (int)aStrdup(name));
|
sd->eventtimer[i] = add_timer(gettick()+tick, pc_eventtimer, sd->bl.id, (intptr)aStrdup(name));
|
||||||
sd->eventcount++;
|
sd->eventcount++;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -955,7 +955,7 @@ static int pet_delay_item_drop(int tid, unsigned int tick, int id, intptr data)
|
|||||||
{
|
{
|
||||||
struct item_drop_list *list;
|
struct item_drop_list *list;
|
||||||
struct item_drop *ditem, *ditem_prev;
|
struct item_drop *ditem, *ditem_prev;
|
||||||
list=(struct item_drop_list *)id;
|
list=(struct item_drop_list *)data;
|
||||||
ditem = list->item;
|
ditem = list->item;
|
||||||
while (ditem) {
|
while (ditem) {
|
||||||
map_addflooritem(&ditem->item_data,ditem->item_data.amount,
|
map_addflooritem(&ditem->item_data,ditem->item_data.amount,
|
||||||
@ -1012,7 +1012,7 @@ int pet_lootitem_drop(struct pet_data *pd,struct map_session_data *sd)
|
|||||||
pd->ud.canact_tick = gettick()+10000; // 10*1000msの間拾わない
|
pd->ud.canact_tick = gettick()+10000; // 10*1000msの間拾わない
|
||||||
|
|
||||||
if (dlist->item)
|
if (dlist->item)
|
||||||
add_timer(gettick()+540,pet_delay_item_drop,(int)dlist,0);
|
add_timer(gettick()+540,pet_delay_item_drop,0,(intptr)dlist);
|
||||||
else
|
else
|
||||||
ers_free(item_drop_list_ers, dlist);
|
ers_free(item_drop_list_ers, dlist);
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -3150,7 +3150,7 @@ void run_script_main(struct script_state *st)
|
|||||||
//Delay execution
|
//Delay execution
|
||||||
st->sleep.charid = sd?sd->status.char_id:0;
|
st->sleep.charid = sd?sd->status.char_id:0;
|
||||||
st->sleep.timer = add_timer(gettick()+st->sleep.tick,
|
st->sleep.timer = add_timer(gettick()+st->sleep.tick,
|
||||||
run_script_timer, st->sleep.charid, (int)st);
|
run_script_timer, st->sleep.charid, (intptr)st);
|
||||||
linkdb_insert(&sleep_db, (void*)st->oid, st);
|
linkdb_insert(&sleep_db, (void*)st->oid, st);
|
||||||
//Restore previous script
|
//Restore previous script
|
||||||
if (sd) {
|
if (sd) {
|
||||||
|
@ -803,7 +803,7 @@ int unit_set_walkdelay(struct block_list *bl, unsigned int tick, int delay, int
|
|||||||
//Resume running after can move again [Kevin]
|
//Resume running after can move again [Kevin]
|
||||||
if(ud->state.running)
|
if(ud->state.running)
|
||||||
{
|
{
|
||||||
add_timer(ud->canmove_tick, unit_resume_running, bl->id, (int)ud);
|
add_timer(ud->canmove_tick, unit_resume_running, bl->id, (intptr)ud);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user