summaryrefslogtreecommitdiff
path: root/src/map/guild.c
AgeCommit message (Collapse)AuthorFilesLines
2012-03-13Enhanced `DBMap` implementation to allow storing integer type data in ↵gepard19841-28/+56
addition to void pointers. - Added enum for data: `int`, `unsigned int` and `void*` - Replaced generic `void*` data with `DBData` struct to hold `int`, `unsigned int` or `void*` (member of `DBNode`) - Added `db_i2data`, `db_ui2data` and `db_ptr2data` functions to cast from `int`/`uint`/`void*` to `DBData` (used in `DBMap::put()`) - Added `db_data2i`, `db_data2ui` and `db_data2ptr` functions to get `int`/`uint`/`void*` from `DBData` - Enabled statistics for new functions in `db_stats` struct - `DBCreateData` functions (used in `DBMap::ensure()`) now return `DBData` instead of `void*` - `DBApply` functions (used in `DBMap::foreach()` and `DBMap::destroy()`) now take `DBData*` as a parameter instead of `void*` - `DBMatcher` functions (used in `DBMap::getall()`) now take `DBData` as a parameter instead of `void*` - `DBReleaser` functions now take `DBData` as parameter instead of `void*` - Default releasers release data if it is `void*` (`DB_DATA_PTR`) type - `DBIterator` functions: `first()`, `last()`, `next()` and `prev()` now return `DBData*` instead of `void*` - `DBIterator::remove()` now returns `int` (1 if node was found and removed, 0 otherwise) instead of `void*` and takes an extra `DBData*` parameter for the data of removed entry - `DBMap::get()` and `DBMap::ensure()` now return `DBData*` instead of `void*` - `DBMap::remove()` and `DBMap::put()` now return `int` (1 if node already existed, 0 otherwise) instead of `void*` and take an extra `DBData*` parameter for the data of removed entry - `DBMap::put()` now takes `DBData` as parameter instead of `void*` - `DBMap::getall()` now puts data into `DBData**` buffer instead of `void**` buffer - Updated macros: - (`i`/`ui`/`str`)`db_get` and (`i`/`ui`/`str`)`db_ensure` were wrapped with `db_data2ptr` to extract data from `DBData*` that is now returned by `DBMap::get()` - added (`i`/`ui`/`str`)`db_iget` and (`i`/`ui`/`str`)`db_uiget` that get `DBData` from `DBMap` and extract `int`/`unsigned int` from it (with `db_data2i`/`db_data2ui`) - `db_put`, `idb_put`, `uidb_put` and `strdb_put` data params were wrapped with `db_ptr2data` to match new signature of `DBMap::put()` (`DBData` instead of `void*`) - added (`i`/`ui`/`str`)`db_iput` and (`i`/`ui`/`str`)`db_uiput` that put `int`/`unsigned int` into `DBMap` (first wrapping it with `DBData`) - added `NULL` in place of extra parameter for removed data in `db_remove` macros - `dbi_first`, `dbi_last`, `dbi_next` and `dbi_prev` were wrapped with `db_data2ptr` to extract data from `DBData*` that is now returned by these `DBIterator` functions - Updated `DBMap` documentation, and fixed a dozen of typos in it. - Updated rest of rA code to reflect `DBMap` changes (mostly required signature changes of `DBCreateData` and `DBApply` functions). - Fixed a bug where `DBMap::put()` would return data of a deleted entry. - Removed some unnecessary pointer casts. - Increased `showmsg.c` static buffer size to fit entire DBMap stats report. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15682 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-03-09Code cleanup: replaced `DBIterator` function calls with macros where possible. gepard19841-6/+6
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15668 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-03-05- Guild Castle code cleanup:gepard19841-63/+93
- all changes to guild castle data are now handled first by map-server and only sent to char-server for saving - ensured that changes made to guild castle during char-server disconnection time will be resent on reconnect - actually removed definition of `MAX_GUILDCASTLE` (r15657) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15658 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-03-04- Guild Castle code cleanup:gepard19841-88/+52
- removed `MAX_GUILDCASTLE` limit - char-server now caches guild castles in `DBMap` - improved guild castle SQL queries to support non-default values of `MAX_GUARDIANS` - disallowed declaring guild castles on maps that are on other map-servers - map-server now requests data for all guild castles from char-server on initial connect (bugreport:287) - removed ''guildcastleinfo events'' as they were esentially duplicated ''OnAgitInit'' - optimized castle data load packets (bugreport:287) - updated WoE scripts to reflect source changes (scripts no longer need or should request castle or guild data) - updated related docs - Added `db_size` macro. - Replaced manual counting of castles occupied by a guild with `guild_checkcastles()` calls. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15657 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-03-02Replaced some magic numbers related to castle guardians with `MAX_GUARDIANS`.gepard19841-18/+8
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15650 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-03-02- Fixed dangling pointer caused by r15644 (partially reverted).gepard19841-4/+16
- Fixed possible memory leaks with guild castle script events. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15647 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-03-01Enabled `DB_OPT_RELEASE_DATA` for several `DBMap`s to simplify data freeing.gepard19841-11/+5
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15644 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-01-17* Merged changes up to eAthena 15054. [ai4rei]eathenabot1-1/+1
* clif cleanup: Changed argument types of some clif functions. - Added enumeration for skill failure codes and made clif_skill_fail use it. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15472 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-01-11Picklog improvements:gepard19841-1/+1
- now it is finally possible to log every item players gain or lose - added 3 log types: `I` for auctioned items, `B` for buying shop transactions and `X` for all other items transactions that don't fall into another category (for detailed explanation on all log types read `conf/log_athena.conf`) - it also fixes items being logged as picked up/gained by player when in fact they were dropped on the ground due to full inventory git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15420 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-12-19* Merged changes up to eAthena 15036.eathenabot1-2/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15167 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-12-11* Merged changes up to eAthena 15032.eathenabot1-2/+2
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15065 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-12-08Performance Improvement on the guild xy timer, removed a unnecessary idb lookupshennetsind1-3/+2
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15034 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-12-08- Forgot to include the ! symbol, whoopsepoque111-1/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15033 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-12-08- Changed guild member x/y timer to not process the guild if no members are ↵epoque111-0/+5
online git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15032 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-10-28* Fixed db/packet_db.txt reading not checking for max. amount of positions.ai4rei1-4/+5
* Introduced MAX_GUILD_SKILL_REQUIRE to fix inconsistency in amount of prereq. guild skills. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14985 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-06-30Replaced custom type 'intptr' with standard 'intptr_t'.ultramage1-5/+5
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14873 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-05-14* Some NPC event related cleaning.ai4rei1-2/+2
- Made event label deprecation message a warning rather than an error, as the scripts still work regardless of whether '::On' is used or not (since r6592). - Introduced constant EVENT_NAME_LENGTH (51) for all event name struct fields to eliminate size inconsistency across all objects (was 50 and 51). - Fixed event names, that are considered special attributes, were not wiped when the value was 0 (since r5707). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14817 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-04-16* Some cleanups related to player and monster states.ai4rei1-1/+1
- Moved user_font and bg_id out of states as they are data, not states. - Reordered members of state structs so that bitfields are packed together (less memory gets wasted). - Other insignificant code tweaks. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14795 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-04-10* Fixed @changegm not updating guild window interface after changing the ↵ai4rei1-2/+13
guild leader (bugreport:408, since r2622, related r3185). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14788 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-03-20* Random accumulated tweaks and fixes.ai4rei1-1/+3
- Added a error message to npc_enable, to spot disablenpc/enablenpc/hideoffnpc/hideonnpc on non-existing NPCs (related r14750). - Replaced inlined npc_name2id code with calls to npc_name2id. - Open Buying Store skill is now exempted from noskill mapflag like Vending as well (bugreport:4815, follow up to r14713). - Fixed signed constant being returned as unsigned value in get_percentage (bugreport:4765, since r12679). - Replaced strlen checks, which checked whether or not a string is empty, with first-byte checks. - Fixed enabling 'fakename' not clearing party and guild name and cleaned up atcommand 'fakename' code. - Cleaned up party/guild name code in clif_charnameack (follow up to r14737). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14751 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-12-30* Made remaining csv databases (guild, castle, homunculus, itemdb, ↵ai4rei1-77/+36
mercenary) use sv_readdb, where applicable (follow up to r14524, r14526 and r14532). - Few databases remain unchanged, which have either a custom layout or are otherwise incompatible with sv_readdb. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14640 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-12-07* Reverted r14563, due to multiple issues which render the source ↵ai4rei1-2/+2
malfunctioning or uncompilable. To be redone later (bugreport:4627). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14567 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-12-07Changed almost all instances of sprintf() to snprintf().Paradox924X1-2/+2
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14563 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-12-02* Added defines for guild notice sizes (MAX_GUILDMES1 and MAX_GUILDMES2).ai4rei1-2/+2
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14544 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-11-22* Fixed guild and guild member exp truncation issue (bugreport:4130, since ↵ai4rei1-1/+1
r14242). - Fixed guild member position, hair, hair color, gender, class and level could potentially become corrupted due to shorts being read as ints (partially since r2986). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14487 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-11-02Applied patch by xazax to clean up various bits of code across mapserver ↵Paradox924X1-2/+1
code. (bugreport:4512) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14438 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-10-11Applied Ai4rei's patch to eliminate unnecessary and redundant castle data ↵Paradox924X1-34/+0
saving. (bugreport:4471) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14420 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-10-09Replaced all nullpo_retr() calls which returned 0 with nullpo_ret() calls.Paradox924X1-28/+28
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14414 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-08-19- Implemented usage of packets 0x7fa and 0x7f7, 0x7f8, 0x7f9. These are used ↵Skotlex1-1/+1
for proper deletion of items as well as movement/spawn packets for Renewal clients. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14383 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-06-01Replaced all occurrences of 'leaved' with 'withdraw'.Paradox924X1-1/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14319 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-05-28Fixed it so you can't add opositions during woe se.L0ne_W0lf1-1/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14310 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-02-09Expanded range for cached and stored-in-db guild member exp (devotion) from ↵Paradox924X1-8/+8
uint32 to uint64. (bugreport:3983) Capped value when sending to client to INT_MAX to prevent confusion. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14242 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-01-25Prevented the changing of alliances to oppositions during WoE. (bugreport:3923)Paradox924X1-0/+2
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14227 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-11-24Cleaned up leftover PACKETVER define on the charserver (followup to r14155).ultramage1-1/+1
Expanded the error message in guild_castledataloadack() to actually provide some useful info. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14168 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-06-16Fixed an exploit that makes guild skill get higher level than the max ↵Inkfish1-2/+3
defined in guild_skill_tree. (bugreport:3241) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13894 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-05-15- Fixed a bunch of invalid memory access bugs as reported by Valgrind.skotlex1-1/+1
- Updated unit_stop_walking to not move character an extra cell when it is already half-way there unless flag 0x4 is passed. (bugreport:3078) - Fixed the monster MD_CASTSENSOR code not correctly setting the monster's aggressive state. - Corrected a few compiler warnings - Changed a bit the code for SC_BOSSMAPINFO so it is not so hideously ugly. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13774 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-02-26- Fixed item Nemesis.zephyrus1-6/+5
- Fixed Tarot Card being used on Emperium. - First Part of BattleGround Implementation (please wait). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13550 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-11-22* Hunted down the simpler 64bit pointer truncations.FlavioJS1-1/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13380 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-10-21Added a check to make sure a player wasn't in a guild when they accepted a ↵Paradox924X1-1/+6
guild invitation. This fixes a few possible problems that could/would arise. (Zomg. My first source commit. =x) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13317 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-09-09Enabled WoE SE to be run independently of WoE. Let's see how long it is ↵L0ne_W0lf1-8/+31
before something blows up, or Ultramage pulls out his hair while cursing my existence. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13202 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-09-04Patched a dormant off-by-one bug in guild leader changing code, which was ↵ultramage1-1/+1
triggered by r11571 and caused guild data corruption on TXT charserver (bugreport:2175). Blame goes to r3185 and r3719. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13191 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-09-01Temporary workaround against the party/guild send_xy_timer dangling pointer ↵ultramage1-2/+3
crash that is somehow still possible (bugreport:2143). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13169 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-26Replaced occurences of '-1' with the more appropriate 'INVALID_TIMER' value ↵ultramage1-1/+1
where appropriate. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12998 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-27Corrected r12662 where a guild break would trigger the OnGuildBreak event ↵ultramage1-1/+1
for all castles (even of other guilds). Corrected some x64 compilation warnings in ers/malloc files. cleaned up a case of bad variable reuse. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12666 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-27Changed the last commit so it must be called with @reloaditemdb2. ↵Kevin1-1/+1
@reloaditemdb only removes the item_data from the itemdb subsystem. If you don't like my code you can uncomment the macro I_HATE_KEVIN in item_db.c so it isn't even compiled. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12662 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-26Uncommented and cleaned up the OnGuildBreak code.Kevin1-6/+4
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12659 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-21* Changed the data field of timers from int to intptr.FlavioJS1-6/+6
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12633 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-08Small party/guild creation cleanup. Added packet comments. Removed fake ↵ultramage1-13/+16
reply packet usage. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12538 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-08Apparently I'm the only one that has it out for the alphabet.Kevin1-5/+4
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12537 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-08Added some aFrees, ultramage is a jerk.Kevin1-0/+2
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12536 54d463be-8e91-2dee-dedb-b68131a5f0ec