summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorai4rei <ai4rei@54d463be-8e91-2dee-dedb-b68131a5f0ec>2010-12-18 15:20:31 +0000
committerai4rei <ai4rei@54d463be-8e91-2dee-dedb-b68131a5f0ec>2010-12-18 15:20:31 +0000
commit9d7d036456ad886c3a60aa73c4db37822923bf60 (patch)
tree24da1b6036d6015426ffd8b55604f86115c3c569 /src/map
parent2ce4ea3324da64930c77076194e2e8b2b8ab2e49 (diff)
downloadhercules-9d7d036456ad886c3a60aa73c4db37822923bf60.tar.gz
hercules-9d7d036456ad886c3a60aa73c4db37822923bf60.tar.bz2
hercules-9d7d036456ad886c3a60aa73c4db37822923bf60.tar.xz
hercules-9d7d036456ad886c3a60aa73c4db37822923bf60.zip
* Fixed character storage no longer being sorted (bugreport:1982, since r12950).
- Guild storage is now sorted before being displayed rather than after being saved... - Merged storage_gsortitem into storage_sortitem. - Added option 'client_sort_storage' to control storage sorting. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14605 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r--src/map/battle.c1
-rw-r--r--src/map/battle.h1
-rw-r--r--src/map/storage.c21
3 files changed, 12 insertions, 11 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index 4feb6d4ce..32def23f3 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -4005,6 +4005,7 @@ static const struct _battle_data {
{ "mob_slave_keep_target", &battle_config.mob_slave_keep_target, 0, 0, 1, },
{ "autospell_check_range", &battle_config.autospell_check_range, 0, 0, 1, },
{ "client_reshuffle_dice", &battle_config.client_reshuffle_dice, 0, 0, 1, },
+ { "client_sort_storage", &battle_config.client_sort_storage, 0, 0, 1, },
// BattleGround Settings
{ "bg_update_interval", &battle_config.bg_update_interval, 1000, 100, INT_MAX, },
{ "bg_short_attack_damage_rate", &battle_config.bg_short_damage_rate, 80, 0, INT_MAX, },
diff --git a/src/map/battle.h b/src/map/battle.h
index 1a879f5b5..3abc6b0a4 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -479,6 +479,7 @@ extern struct Battle_Config
int mob_slave_keep_target;
int autospell_check_range; //Enable range check for autospell bonus. [L0ne_W0lf]
int client_reshuffle_dice; // Reshuffle /dice
+ int client_sort_storage;
// [BattleGround Settings]
int bg_update_interval;
diff --git a/src/map/storage.c b/src/map/storage.c
index 2e668f08d..e2749bfd9 100644
--- a/src/map/storage.c
+++ b/src/map/storage.c
@@ -42,17 +42,15 @@ static int storage_comp_item(const void *_i1, const void *_i2)
return -1;
return i1->nameid - i2->nameid;
}
-/* In case someone wants to use it in the future.
-static void storage_sortitem(struct storage_data* stor)
-{
- nullpo_retv(stor);
- qsort(stor->items, MAX_STORAGE, sizeof(struct item), storage_comp_item);
-}
-*/
-static void storage_gsortitem(struct guild_storage* gstor)
+
+static void storage_sortitem(struct item* items, unsigned int size)
{
- nullpo_retv(gstor);
- qsort(gstor->storage_, MAX_GUILD_STORAGE, sizeof(struct item), storage_comp_item);
+ nullpo_retv(items);
+
+ if( battle_config.client_sort_storage )
+ {
+ qsort(items, size, sizeof(struct item), storage_comp_item);
+ }
}
/*==========================================
@@ -104,6 +102,7 @@ int storage_storageopen(struct map_session_data *sd)
}
sd->state.storage_flag = 1;
+ storage_sortitem(sd->status.storage.items, ARRAYLENGTH(sd->status.storage.items));
clif_storagelist(sd, sd->status.storage.items, ARRAYLENGTH(sd->status.storage.items));
clif_updatestorageamount(sd,sd->status.storage.storage_amount);
return 0;
@@ -380,6 +379,7 @@ int storage_guild_storageopen(struct map_session_data* sd)
gstor->storage_status = 1;
sd->state.storage_flag = 2;
+ storage_sortitem(gstor->storage_, ARRAYLENGTH(gstor->storage_));
clif_storagelist(sd, gstor->storage_, ARRAYLENGTH(gstor->storage_));
clif_updateguildstorageamount(sd,gstor->storage_amount);
return 0;
@@ -584,7 +584,6 @@ int storage_guild_storagesaved(int guild_id)
if (stor->dirty && stor->storage_status == 0)
{ //Storage has been correctly saved.
stor->dirty = 0;
- storage_gsortitem(stor);
}
return 1;
}