mirror of
https://github.com/HerculesWS/Hercules
synced 2026-08-15 12:23:13 -04:00
Travis Report Fixes
warn_unused_result shielding, dropped unused variables and fixed battle_calc_return_damage delay behavior (pointer was unchaged; resulting in the var afterwards always as 0) Special Thanks to Xgear. Signed-off-by: shennetsind <ind@henn.et>
This commit is contained in:
parent
55d42874dc
commit
b08910e828
6 changed files with 79 additions and 72 deletions
|
|
@ -150,11 +150,6 @@ void signals_init (void) {
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef SVNVERSION
|
||||
const char *get_svn_revision(void) {
|
||||
return EXPAND_AND_QUOTE(SVNVERSION);
|
||||
}
|
||||
#else// not SVNVERSION
|
||||
const char* get_svn_revision(void) {
|
||||
static char svn_version_buffer[16] = "";
|
||||
FILE *fp;
|
||||
|
|
@ -241,7 +236,6 @@ const char* get_svn_revision(void) {
|
|||
svn_version_buffer[0] = HERC_UNKNOWN_VER;
|
||||
return svn_version_buffer;
|
||||
}
|
||||
#endif
|
||||
/* whats our origin */
|
||||
#define GIT_ORIGIN "refs/remotes/origin/master"
|
||||
/* Grabs the hash from the last time the user updated his working copy (last pull) */
|
||||
|
|
|
|||
|
|
@ -344,8 +344,8 @@ FILE *HCache_open(const char *file, const char *opt) {
|
|||
|
||||
if( opt[0] != 'r' ) {
|
||||
char dT[1] = "k";/* 1-byte key to ensure our method is the latest, we can modify to ensure the method matches */
|
||||
fwrite(dT,sizeof(dT),1,first);
|
||||
fwrite(&HCache->recompile_time,sizeof(HCache->recompile_time),1,first);
|
||||
hwrite(dT,sizeof(dT),1,first);
|
||||
hwrite(&HCache->recompile_time,sizeof(HCache->recompile_time),1,first);
|
||||
}
|
||||
fseek(first, 20, SEEK_SET);/* skip first 20, might wanna store something else later */
|
||||
|
||||
|
|
@ -365,10 +365,19 @@ void HCache_init(void) {
|
|||
} else
|
||||
ShowWarning("Unable to open '%s', caching capabilities have been disabled!\n",SERVER_NAME);
|
||||
}
|
||||
/* transit to fread, shields vs warn_unused_result */
|
||||
size_t hread(void * ptr, size_t size, size_t count, FILE * stream) {
|
||||
return fread(ptr, size, count, stream);
|
||||
}
|
||||
/* transit to fwrite, shields vs warn_unused_result */
|
||||
size_t hwrite(const void * ptr, size_t size, size_t count, FILE * stream) {
|
||||
return fwrite(ptr, size, count, stream);
|
||||
}
|
||||
|
||||
void HCache_defaults(void) {
|
||||
|
||||
HCache = &HCache_s;
|
||||
|
||||
|
||||
HCache->init = HCache_init;
|
||||
|
||||
HCache->check = HCache_check;
|
||||
|
|
|
|||
|
|
@ -31,6 +31,9 @@ extern uint16 GetWord(uint32 val, int idx);
|
|||
extern uint16 MakeWord(uint8 byte0, uint8 byte1);
|
||||
extern uint32 MakeDWord(uint16 word0, uint16 word1);
|
||||
|
||||
size_t hread(void * ptr, size_t size, size_t count, FILE * stream);
|
||||
size_t hwrite(const void * ptr, size_t size, size_t count, FILE * stream);
|
||||
|
||||
/* [Ind/Hercules] Caching */
|
||||
struct HCache_interface {
|
||||
void (*init) (void);
|
||||
|
|
|
|||
|
|
@ -838,21 +838,17 @@ int battle_calc_masteryfix(struct block_list *src, struct block_list *target, ui
|
|||
* Elemental attribute fix.
|
||||
*------------------------------------------*/
|
||||
int battle_calc_elefix(struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int damage, int nk, int n_ele, int s_ele, int s_ele_, bool left, int flag){
|
||||
struct status_data *sstatus, *tstatus;
|
||||
struct status_change *sc;
|
||||
|
||||
struct status_data *tstatus;
|
||||
|
||||
nullpo_ret(src);
|
||||
nullpo_ret(target);
|
||||
|
||||
sstatus = iStatus->get_status_data(src);
|
||||
tstatus = iStatus->get_status_data(target);
|
||||
sc = iStatus->get_sc(src);
|
||||
|
||||
|
||||
if( (nk&NK_NO_ELEFIX) || n_ele )
|
||||
return damage;
|
||||
|
||||
if( damage > 0 )
|
||||
{
|
||||
if( damage > 0 ) {
|
||||
if( left )
|
||||
damage = battle->attr_fix(src, target, damage, s_ele_, tstatus->def_ele, tstatus->ele_lv);
|
||||
else{
|
||||
|
|
@ -863,14 +859,22 @@ int battle_calc_elefix(struct block_list *src, struct block_list *target, uint16
|
|||
damage += battle_attr_fix(src,target,50*skill_lv,ELE_NEUTRAL,tstatus->def_ele, tstatus->ele_lv);
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef RENEWAL
|
||||
if( sc && sc->data[SC_SUB_WEAPONPROPERTY] )
|
||||
{ // Descriptions indicate this means adding a percent of a normal attack in another element. [Skotlex]
|
||||
int temp = battle->calc_base_damage(sstatus, &sstatus->rhw, sc, tstatus->size, BL_CAST(BL_PC, src), (flag?2:0)) * sc->data[SC_SUB_WEAPONPROPERTY]->val2 / 100;
|
||||
damage += battle->attr_fix(src, target, temp, sc->data[SC_SUB_WEAPONPROPERTY]->val1, tstatus->def_ele, tstatus->ele_lv);
|
||||
if( left ){
|
||||
temp = battle->calc_base_damage(sstatus, &sstatus->lhw, sc, tstatus->size, BL_CAST(BL_PC, src), (flag?2:0)) * sc->data[SC_SUB_WEAPONPROPERTY]->val2 / 100;
|
||||
{
|
||||
struct status_data *sstatus;
|
||||
struct status_change *sc;
|
||||
|
||||
sstatus = iStatus->get_status_data(src);
|
||||
sc = iStatus->get_sc(src);
|
||||
|
||||
if( sc && sc->data[SC_SUB_WEAPONPROPERTY] ) { // Descriptions indicate this means adding a percent of a normal attack in another element. [Skotlex]
|
||||
int temp = battle->calc_base_damage(sstatus, &sstatus->rhw, sc, tstatus->size, BL_CAST(BL_PC, src), (flag?2:0)) * sc->data[SC_SUB_WEAPONPROPERTY]->val2 / 100;
|
||||
damage += battle->attr_fix(src, target, temp, sc->data[SC_SUB_WEAPONPROPERTY]->val1, tstatus->def_ele, tstatus->ele_lv);
|
||||
if( left ) {
|
||||
temp = battle->calc_base_damage(sstatus, &sstatus->lhw, sc, tstatus->size, BL_CAST(BL_PC, src), (flag?2:0)) * sc->data[SC_SUB_WEAPONPROPERTY]->val2 / 100;
|
||||
damage += battle->attr_fix(src, target, temp, sc->data[SC_SUB_WEAPONPROPERTY]->val1, tstatus->def_ele, tstatus->ele_lv);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
@ -3210,8 +3214,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
|||
unsigned int skillratio = 100; //Skill dmg modifiers.
|
||||
|
||||
TBL_PC *sd;
|
||||
// TBL_PC *tsd;
|
||||
struct status_change *sc, *tsc;
|
||||
struct status_change *sc;
|
||||
struct Damage ad;
|
||||
struct status_data *sstatus = iStatus->get_status_data(src);
|
||||
struct status_data *tstatus = iStatus->get_status_data(target);
|
||||
|
|
@ -3240,9 +3243,8 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
|||
flag.imdef = nk&NK_IGNORE_DEF?1:0;
|
||||
|
||||
sd = BL_CAST(BL_PC, src);
|
||||
// tsd = BL_CAST(BL_PC, target);
|
||||
|
||||
sc = iStatus->get_sc(src);
|
||||
tsc = iStatus->get_sc(target);
|
||||
|
||||
//Initialize variables that will be used afterwards
|
||||
s_ele = skill->get_ele(skill_id, skill_lv);
|
||||
|
|
@ -3929,7 +3931,7 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
|
|||
{
|
||||
unsigned int skillratio = 100; //Skill dmg modifiers.
|
||||
short temp=0;
|
||||
short s_ele, s_ele_, t_class;
|
||||
short s_ele, s_ele_;
|
||||
int i, nk;
|
||||
bool n_ele = false; // non-elemental
|
||||
|
||||
|
|
@ -4095,7 +4097,6 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
|
|||
return wd;
|
||||
}
|
||||
|
||||
t_class = iStatus->get_class(target);
|
||||
s_ele = s_ele_ = skill->get_ele(skill_id, skill_lv);
|
||||
if( !skill_id || s_ele == -1 )
|
||||
{ //Take weapon's element
|
||||
|
|
@ -5167,7 +5168,7 @@ struct Damage battle_calc_attack(int attack_type,struct block_list *bl,struct bl
|
|||
|
||||
//Calculates BF_WEAPON returned damage.
|
||||
int battle_calc_return_damage(struct block_list* bl, struct block_list *src, int *dmg, int flag, uint16 skill_id, int *delay){
|
||||
int rdamage = 0, damage = *dmg, rdelay = *delay, trdamage = 0;
|
||||
int rdamage = 0, damage = *dmg, trdamage = 0;
|
||||
struct map_session_data* sd;
|
||||
struct status_change* sc;
|
||||
int max_reflect_damage;
|
||||
|
|
@ -5194,18 +5195,18 @@ int battle_calc_return_damage(struct block_list* bl, struct block_list *src, int
|
|||
if( flag & BF_SHORT) {//Bounces back part of the damage.
|
||||
if ( sd && sd->bonus.short_weapon_damage_return ){
|
||||
NORMALIZE_RDAMAGE(damage * sd->bonus.short_weapon_damage_return / 100);
|
||||
rdelay = clif->damage(src, src, iTimer->gettick(), status_get_amotion(src), status_get_dmotion(src), rdamage, 1, 4, 0);
|
||||
*delay = clif->damage(src, src, iTimer->gettick(), status_get_amotion(src), status_get_dmotion(src), rdamage, 1, 4, 0);
|
||||
}
|
||||
if( sc && sc->count ) {
|
||||
if( sc->data[SC_REFLECTSHIELD] && skill_id != WS_CARTTERMINATION ){
|
||||
NORMALIZE_RDAMAGE(damage * sc->data[SC_REFLECTSHIELD]->val2 / 100);
|
||||
rdelay = clif->skill_damage(src, src, iTimer->gettick(), status_get_amotion(src), status_get_dmotion(src), rdamage, 1, CR_REFLECTSHIELD, 1, 4);
|
||||
*delay = clif->skill_damage(src, src, iTimer->gettick(), status_get_amotion(src), status_get_dmotion(src), rdamage, 1, CR_REFLECTSHIELD, 1, 4);
|
||||
}
|
||||
if( sc->data[SC_LG_REFLECTDAMAGE] && rand()%100 < (30 + 10*sc->data[SC_LG_REFLECTDAMAGE]->val1) ) {
|
||||
if( skill_id != HT_LANDMINE && skill_id != HT_CLAYMORETRAP
|
||||
&& skill_id != RA_CLUSTERBOMB && (skill_id <= RA_VERDURETRAP || skill_id > RA_ICEBOUNDTRAP) && skill_id != MA_LANDMINE ){
|
||||
NORMALIZE_RDAMAGE((*dmg) * sc->data[SC_LG_REFLECTDAMAGE]->val2 / 100);
|
||||
rdelay = clif->damage(src, src, iTimer->gettick(), status_get_amotion(src), status_get_dmotion(src), rdamage, 1, 4, 0);
|
||||
*delay = clif->damage(src, src, iTimer->gettick(), status_get_amotion(src), status_get_dmotion(src), rdamage, 1, 4, 0);
|
||||
}
|
||||
}
|
||||
if( sc->data[SC_DEATHBOUND] && skill_id != WS_CARTTERMINATION && !is_boss(src) ) {
|
||||
|
|
@ -5219,18 +5220,18 @@ int battle_calc_return_damage(struct block_list* bl, struct block_list *src, int
|
|||
skill->blown(bl, src, skill->get_blewcount(RK_DEATHBOUND, sc->data[SC_DEATHBOUND]->val1), unit_getdir(src), 0);
|
||||
if( skill_id )
|
||||
status_change_end(bl, SC_DEATHBOUND, INVALID_TIMER);
|
||||
rdelay = clif->damage(src, src, iTimer->gettick(), status_get_amotion(src), status_get_dmotion(src), rdamage, 1, 4, 0);
|
||||
*delay = clif->damage(src, src, iTimer->gettick(), status_get_amotion(src), status_get_dmotion(src), rdamage, 1, 4, 0);
|
||||
}
|
||||
}
|
||||
if( sc->data[SC_SHIELDSPELL_DEF] && sc->data[SC_SHIELDSPELL_DEF]->val1 == 2 && !is_boss(src) ){
|
||||
NORMALIZE_RDAMAGE(damage * sc->data[SC_SHIELDSPELL_DEF]->val2 / 100);
|
||||
rdelay = clif->damage(src, src, iTimer->gettick(), status_get_amotion(src), status_get_dmotion(src), rdamage, 1, 4, 0);
|
||||
*delay = clif->damage(src, src, iTimer->gettick(), status_get_amotion(src), status_get_dmotion(src), rdamage, 1, 4, 0);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (sd && sd->bonus.long_weapon_damage_return){
|
||||
NORMALIZE_RDAMAGE(damage * sd->bonus.long_weapon_damage_return / 100);
|
||||
rdelay = clif->damage(src, src, iTimer->gettick(), status_get_amotion(src), status_get_dmotion(src), rdamage, 1, 4, 0);
|
||||
*delay = clif->damage(src, src, iTimer->gettick(), status_get_amotion(src), status_get_dmotion(src), rdamage, 1, 4, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -720,31 +720,31 @@ void itemdb_write_cached_packages(const char *config_filename) {
|
|||
}
|
||||
|
||||
// first 2 bytes = package count
|
||||
fwrite(&pcount,sizeof(pcount),1,file);
|
||||
hwrite(&pcount,sizeof(pcount),1,file);
|
||||
|
||||
for(i = 0; i < pcount; i++) {
|
||||
unsigned short id = itemdb->packages[i].id, random_qty = itemdb->packages[i].random_qty, must_qty = itemdb->packages[i].must_qty;
|
||||
unsigned short c;
|
||||
//into a package, first 2 bytes = id.
|
||||
fwrite(&id,sizeof(id),1,file);
|
||||
hwrite(&id,sizeof(id),1,file);
|
||||
//next 2 bytes = must count
|
||||
fwrite(&must_qty,sizeof(must_qty),1,file);
|
||||
hwrite(&must_qty,sizeof(must_qty),1,file);
|
||||
//next 2 bytes = random count
|
||||
fwrite(&random_qty,sizeof(random_qty),1,file);
|
||||
hwrite(&random_qty,sizeof(random_qty),1,file);
|
||||
//now we loop into must
|
||||
for(c = 0; c < must_qty; c++) {
|
||||
struct item_package_must_entry *entry = &itemdb->packages[i].must_items[c];
|
||||
unsigned char announce = entry->announce == 1 ? 1 : 0, named = entry->named == 1 ? 1 : 0;
|
||||
//first 2 byte = item id
|
||||
fwrite(&entry->id,sizeof(entry->id),1,file);
|
||||
hwrite(&entry->id,sizeof(entry->id),1,file);
|
||||
//next 2 byte = qty
|
||||
fwrite(&entry->qty,sizeof(entry->qty),1,file);
|
||||
hwrite(&entry->qty,sizeof(entry->qty),1,file);
|
||||
//next 2 byte = hours
|
||||
fwrite(&entry->hours,sizeof(entry->hours),1,file);
|
||||
hwrite(&entry->hours,sizeof(entry->hours),1,file);
|
||||
//next 1 byte = announce (1:0)
|
||||
fwrite(&announce,sizeof(announce),1,file);
|
||||
hwrite(&announce,sizeof(announce),1,file);
|
||||
//next 1 byte = named (1:0)
|
||||
fwrite(&named,sizeof(announce),1,file);
|
||||
hwrite(&named,sizeof(announce),1,file);
|
||||
}
|
||||
//now we loop into random groups
|
||||
for(c = 0; c < random_qty; c++) {
|
||||
|
|
@ -752,23 +752,23 @@ void itemdb_write_cached_packages(const char *config_filename) {
|
|||
unsigned short group_qty = group->random_qty, h;
|
||||
|
||||
//next 2 bytes = how many entries in this group
|
||||
fwrite(&group_qty,sizeof(group_qty),1,file);
|
||||
hwrite(&group_qty,sizeof(group_qty),1,file);
|
||||
//now we loop into the group's list
|
||||
for(h = 0; h < group_qty; h++) {
|
||||
struct item_package_rand_entry *entry = &itemdb->packages[i].random_groups[c].random_list[h];
|
||||
unsigned char announce = entry->announce == 1 ? 1 : 0, named = entry->named == 1 ? 1 : 0;
|
||||
//first 2 byte = item id
|
||||
fwrite(&entry->id,sizeof(entry->id),1,file);
|
||||
hwrite(&entry->id,sizeof(entry->id),1,file);
|
||||
//next 2 byte = qty
|
||||
fwrite(&entry->qty,sizeof(entry->qty),1,file);
|
||||
hwrite(&entry->qty,sizeof(entry->qty),1,file);
|
||||
//next 2 byte = rate
|
||||
fwrite(&entry->rate,sizeof(entry->rate),1,file);
|
||||
hwrite(&entry->rate,sizeof(entry->rate),1,file);
|
||||
//next 2 byte = hours
|
||||
fwrite(&entry->hours,sizeof(entry->hours),1,file);
|
||||
hwrite(&entry->hours,sizeof(entry->hours),1,file);
|
||||
//next 1 byte = announce (1:0)
|
||||
fwrite(&announce,sizeof(announce),1,file);
|
||||
hwrite(&announce,sizeof(announce),1,file);
|
||||
//next 1 byte = named (1:0)
|
||||
fwrite(&named,sizeof(announce),1,file);
|
||||
hwrite(&named,sizeof(announce),1,file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -787,7 +787,7 @@ bool itemdb_read_cached_packages(const char *config_filename) {
|
|||
}
|
||||
|
||||
// first 2 bytes = package count
|
||||
fread(&pcount,sizeof(pcount),1,file);
|
||||
hread(&pcount,sizeof(pcount),1,file);
|
||||
|
||||
CREATE(itemdb->packages, struct item_package, pcount);
|
||||
itemdb->package_count = pcount;
|
||||
|
|
@ -799,11 +799,11 @@ bool itemdb_read_cached_packages(const char *config_filename) {
|
|||
unsigned short c;
|
||||
|
||||
//into a package, first 2 bytes = id.
|
||||
fread(&id,sizeof(id),1,file);
|
||||
hread(&id,sizeof(id),1,file);
|
||||
//next 2 bytes = must count
|
||||
fread(&must_qty,sizeof(must_qty),1,file);
|
||||
hread(&must_qty,sizeof(must_qty),1,file);
|
||||
//next 2 bytes = random count
|
||||
fread(&random_qty,sizeof(random_qty),1,file);
|
||||
hread(&random_qty,sizeof(random_qty),1,file);
|
||||
|
||||
if( !(data = itemdb->exists(id)) )
|
||||
ShowWarning("itemdb_read_packages: unknown package item '%d', skipping..\n",id);
|
||||
|
|
@ -825,15 +825,15 @@ bool itemdb_read_cached_packages(const char *config_filename) {
|
|||
unsigned char announce = 0, named = 0;
|
||||
struct item_data *data;
|
||||
//first 2 byte = item id
|
||||
fread(&mid,sizeof(mid),1,file);
|
||||
hread(&mid,sizeof(mid),1,file);
|
||||
//next 2 byte = qty
|
||||
fread(&qty,sizeof(qty),1,file);
|
||||
hread(&qty,sizeof(qty),1,file);
|
||||
//next 2 byte = hours
|
||||
fread(&hours,sizeof(hours),1,file);
|
||||
hread(&hours,sizeof(hours),1,file);
|
||||
//next 1 byte = announce (1:0)
|
||||
fread(&announce,sizeof(announce),1,file);
|
||||
hread(&announce,sizeof(announce),1,file);
|
||||
//next 1 byte = named (1:0)
|
||||
fread(&named,sizeof(announce),1,file);
|
||||
hread(&named,sizeof(announce),1,file);
|
||||
|
||||
if( !(data = itemdb->exists(mid)) )
|
||||
ShowWarning("itemdb_read_packages: unknown item '%d' in package '%s'!\n",mid,itemdb_name(package->id));
|
||||
|
|
@ -853,7 +853,7 @@ bool itemdb_read_cached_packages(const char *config_filename) {
|
|||
struct item_package_rand_entry *prev = NULL;
|
||||
|
||||
//next 2 bytes = how many entries in this group
|
||||
fread(&group_qty,sizeof(group_qty),1,file);
|
||||
hread(&group_qty,sizeof(group_qty),1,file);
|
||||
|
||||
package->random_groups[c].random_qty = group_qty;
|
||||
CREATE(package->random_groups[c].random_list, struct item_package_rand_entry, package->random_groups[c].random_qty);
|
||||
|
|
@ -868,17 +868,17 @@ bool itemdb_read_cached_packages(const char *config_filename) {
|
|||
if( prev ) prev->next = entry;
|
||||
|
||||
//first 2 byte = item id
|
||||
fread(&mid,sizeof(mid),1,file);
|
||||
hread(&mid,sizeof(mid),1,file);
|
||||
//next 2 byte = qty
|
||||
fread(&qty,sizeof(qty),1,file);
|
||||
hread(&qty,sizeof(qty),1,file);
|
||||
//next 2 byte = rate
|
||||
fread(&rate,sizeof(rate),1,file);
|
||||
hread(&rate,sizeof(rate),1,file);
|
||||
//next 2 byte = hours
|
||||
fread(&hours,sizeof(hours),1,file);
|
||||
hread(&hours,sizeof(hours),1,file);
|
||||
//next 1 byte = announce (1:0)
|
||||
fread(&announce,sizeof(announce),1,file);
|
||||
hread(&announce,sizeof(announce),1,file);
|
||||
//next 1 byte = named (1:0)
|
||||
fread(&named,sizeof(announce),1,file);
|
||||
hread(&named,sizeof(announce),1,file);
|
||||
|
||||
if( !(data = itemdb->exists(mid)) )
|
||||
ShowWarning("itemdb_read_packages: unknown item '%d' in package '%s'!\n",mid,itemdb_name(package->id));
|
||||
|
|
|
|||
|
|
@ -10486,13 +10486,13 @@ BUILDIN(removemapflag)
|
|||
{
|
||||
int16 m,i;
|
||||
const char *str;
|
||||
int val=0;
|
||||
//int val=0;//warning: variable ‘val’ set but not used" - deprecated?
|
||||
|
||||
str=script_getstr(st,2);
|
||||
i=script_getnum(st,3);
|
||||
if(script_hasdata(st,4)){
|
||||
val=script_getnum(st,4);
|
||||
}
|
||||
//if(script_hasdata(st,4)){
|
||||
// val=script_getnum(st,4);
|
||||
//}
|
||||
m = iMap->mapname2mapid(str);
|
||||
if(m >= 0) {
|
||||
switch(i) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue