- Some code-speedups on reading the skill-requirements in skill_check_condition.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5482 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
skotlex 2006-03-07 13:51:42 +00:00
parent 008213f9b4
commit 223025ffd0

View File

@ -7545,21 +7545,30 @@ int skill_check_condition(struct map_session_data *sd,int type)
lv = sd->skilllv; lv = sd->skilllv;
if (lv <= 0) return 0; if (lv <= 0) return 0;
// for the guild skills [celest] // for the guild skills [celest]
hp = skill_get_hp(skill, lv); /* ?Á”ïHP */ if (skill >= GD_SKILLBASE)
sp = skill_get_sp(skill, lv); /* ?Á”ïSP */ skill = GD_SKILLRANGEMIN + skill - GD_SKILLBASE;
if (skill < 0 || skill >= MAX_SKILL_DB)
return 0;
//Code speedup, rather than using skill_get_* over and over again.
if (lv < 1 || lv > MAX_SKILL_LEVEL)
return 0;
hp = skill_db[skill].hp[lv-1]; /* ?Á”ïHP */
sp = skill_db[skill].sp[lv-1]; /* ?Á”ïSP */
if((sd->skillid_old == BD_ENCORE) && skill == sd->skillid_dance) if((sd->skillid_old == BD_ENCORE) && skill == sd->skillid_dance)
sp=sp/2; //アンコ?ル時はSP?チ費が半分 sp=sp/2; //アンコ?ル時はSP?チ費が半分
hp_rate = skill_get_hp_rate(skill, lv); hp_rate = skill_db[skill].hp_rate[lv-1];
sp_rate = skill_get_sp_rate(skill, lv); sp_rate = skill_db[skill].sp_rate[lv-1];
zeny = skill_get_zeny(skill,lv); zeny = skill_db[skill].zeny[lv-1];
weapon = skill_get_weapontype(skill); weapon = skill_db[skill].weapon;
state = skill_get_state(skill); state = skill_db[skill].state;
spiritball = skill_get_spiritball(skill,lv); spiritball = skill_db[skill].spiritball[lv-1];
mhp = skill_get_mhp(skill, lv); /* ?Á”ïHP */ mhp = skill_db[skill].mhp[lv-1]; /* ?Á”ïHP */
for(i = 0; i < 10; i++) { for(i = 0; i < 10; i++) {
itemid[i] = skill_get_itemid(skill, i); itemid[i] = skill_db[skill].itemid[i];
amount[i] = skill_get_itemqty(skill, i); amount[i] = skill_db[skill].amount[i];
} }
if (skill != sd->skillid)
skill = sd->skillid; //Restore skillid for guild skills.
if(mhp > 0) if(mhp > 0)
hp += (sd->status.max_hp * mhp)/100; hp += (sd->status.max_hp * mhp)/100;
if(hp_rate > 0) if(hp_rate > 0)