Age | Commit message (Collapse) | Author | Files | Lines |
|
Improved compatibility, portability and standards conformance.
- Since it is not possible to portably and reliably re-use the core's
symbols in plugins, symbols are no longer exported unless explicitly
required, in the UNIX builds. This mimics the Windows behavior and
adds HPM compatibility to OSes such as FreeBSD. Credits to Andrei Karas
for making this possible.
- For convenience, it is no longer necessary to call GET_SYMBOL, since
the plugin will automatically import all the available symbols when
it's loaded, depending on the included headers.
- Plugins are now supposed to include the "common/hercules.h" header
before including anything else. Incluing common/HPMi.h,
common/cbasetypes.h or conf/core.h is no longer necessary, as those
are guaranteed to be automatically included by hercules.h.
- HPM API version bumped to 1.1.
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Include directives are now directory-independent.
- This will allow building plugins from other directories in future.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Replaced several hardcoded values with the appropriate enums.
- Added documentation for some hardcoded values that haven't been
replaced by enums (yet)
- Minor code legibility improvements.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Introduced on: dab1fba3a88b9c5e86a778a29bd4d565fc937155
|
|
|
|
- Variable scopes reduced
- Parenthesized ambiguous expressions
- Removed or added NULL checks where (un)necessary
- Corrected format strings
- Fixed typos potentially leading to bugs
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
This includes, and is not limited to: mixed or wrong indentation, excess
whitespace (horizontal and vertical), misalignment, trailing spaces.
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
|
|
|
|
|
|
Introduced interfaces: chr, mapif, loginif.
|
|
|
|
|
|
This reverts commit 94657284973f4037596bae468ebfbee5c217e02b.
|
|
This reverts commit b6b3f58795288701d0e162d43fa6f0a47af913b3.
Fixes issue 8184
http://hercules.ws/board/tracker/issue-8184-cart-related/
|
|
- Changed order according to the (upcoming) code style guidelines.
- Fixes several issues caused by missing headers when their include
order is changed or in plugins.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Special thanks to @MishimaHaruna
|
|
#Fixed issue where a corrupted map cache would lead to a crash
*Moved Big-endian compatibility functions to common/utils.h
#Fixed issue 8162
*http://hercules.ws/board/tracker/issue-8162-loadnpc-doesnt-trigger-oninit-of-duplicate-npcs/
*Added options to npc_parse_duplicate
#Fixed issue 8169
*http://hercules.ws/board/tracker/issue-8169-script-command-guildskill-skill-idlevel-not-working-as-intended/
*Changed *guildskill behavior, now it behaves exactly as depicted in the documentation
*Updated *guildskill documentation
#Added missing GBI types to mapif_parse_GuildBasicInfoChange now it's possible to change guild exp, lv, skill point and skill information
#GeoIP revamp
*GeoIP module was partially rewritten
*Added several data checks to prevent corruption and crashes
*Updated GeoIP database
*See https://github.com/maxmind/geoip-api-c/blob/master/libGeoIP/GeoIP.c for more information
#Added packetver checks regarding NST_MARKET
*Now *tradertype warns if user is trying to use this feature with older clients
|
|
(trying to trigger a HPM Hooks rebuild missing from my previous commit)
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
- Modified exp_guild.txt processing to honor the value of MAX_GUILDLEVEL
and correctly handle overflows.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Warnings detected thanks to Xcode's compiler settings (more strict by
default) and clang, warnings mostly but not only related to data sizes
on 64 bit systems, that were silenced until now by very lax compiler
settings.
- This also decreases by a great deal the amount of warnings produced by
MSVC in x64 mode (for the adventurous ones who tried that)
- Also fixed (or silenced in case of false positives) the potential
issues pointed out by the (awesome) clang static analyzer.
- Patch co-produced with Ind, I'm merging and committing in his place!
Signed-off-by: Haru <haru@dotalux.com>
|
|
- This fixes an issue with timers that stop working after about 24-49
days when the tick overflows (note that this may happen much earlier
than that, and at hard to predict times, on some systems)
- Updated the RDTSC help message in the configure script to also warn
users about issues with SpeedStep enabled systems.
- On Windows, tick() still has a resolution of 10~15ms (or even as low
as 100ms on some systems). A TODO comment (thanks, Ai4rei) was added
for a follow-up patch, as I want this one to be as small as possible)
- Note: on Windows versions earlier than 6.x (Vista, Server 2008), the
tick overflow issue is NOT fixed, since they don't support the
function used to retrieve a 64 bit tick. This isn't a big issue, since
those platforms are already - or going soon to be - out of their
extended support period, and it's already advisable to upgrade, for
other reasons. If you're the unfortunate user of such a system, it is
recommended that you reboot your machine at least once every 49 days
for Hercules to work reliably.
- Note: To clear some doubts, since I've already been asked, this has
absolutely NOTHING to do with 32/64 bit CPUs or OSes. It's all about
a variable's size, not the size of registers of your CPU, and your
32bit CPU will be able to handle this just fine.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Also removed duplicate mentions of timer within calls to shorten.
|
|
Adjusting db.c interface name to adhere with the rest (pretty much we try to make it as short as we can, and being there were no conflicts we saw no reason to maintain the 'i')
Signed-off-by: shennetsind <ind@henn.et>
|
|
Added iPc, iParty, iMap, iTimer to HPM exported interfaces
|
|
- Also fixed a bug preventing the plugins to be loeaded because HPMI and HPMI_s weren't HPExport
|
|
Screwed up.
http://hercules.ws/board/tracker/issue-7250-cant-create-party-and-guild/
Follow up 0aee4fd57f2f4135361f4182a08a98cf52ed9d10
Signed-off-by: shennetsind <ind@henn.et>
|
|
Made SQL and strlib functions HPM-friendly, special thanks to Yommy for bringing the issue up.
Added partial map.c support, for the all-handy map[] array, beware that soon the whole map.c renewal design will be commit and when that happens your usage of map.c functions in plugins might require some updates.
Signed-off-by: shennetsind <ind@henn.et>
|
|
Committing on the behalf of mkbu95 who is unable to do it himself, he coded it all and sent me the diff. Thanks mkbu95!
Signed-off-by: shennetsind <ind@henn.et>
|
|
And adding missing ones.
Signed-off-by: shennetsind <ind@henn.et>
|
|
Signed-off-by: shennetsind <ind@henn.et>
|
|
atoll was introduced in a 2011 lib and vc9 and 10 dont have that, dropping to atol since we dont need the int64 and using a tricky conversion to get it to unsigned
http://hercules.ws/board/tracker/issue-7056-compiling-error/
Signed-off-by: shennetsind <ind@henn.et>
|
|
|
|
Replaced strncpy with safestrncpy where I found would be beneficial.
http://hercules.ws/board/tracker/issue-3080-safestrncpy-instead-of-strncpy-where-applicable/
Also modifying headers accordingly.
Signed-off-by: shennetsind <ind@henn.et>
|
|
Char server displaying extra '/' in exp_guild path.
http://hercules.ws/board/tracker/issue-7035-typo-in-charserv-sqlbat/
Signed-off-by: shennetsind <ind@henn.et>
|
|
--removing useless check on skill_id
--fix few broken atcommand due to failed sscanf
-Change skill_amotion_leniency as pointed out on tid:76492 so amotion delay wont be twice by default, (also increase intervall if you do want higher acd)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17072 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
skill_lv
-Optimise type from int to int16 in order to reduce ram consumtion.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17065 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
* Fixed bugreport:6303: official servers now always reshuffle the dice emoticon. To disable change the configuration to 'no'. Thanks to Vianna for providing the information!
* Fixed bugreport:7026: creating a guild and exiting in a short amount of time wouldn't save the guild properly. Thank you clydelion!
* Fixed bugreport:7030: removed warning introduced by r16987. Thanks Mr. Brian and Sir BuildBot for pointing!
* Fixed bugreport:7031: if a player crashed during warp it would cause OnTouch_ to not trigger anymore. Thanks to flaviojs (eA-r15185) for the fix and Napster for pointing out!
* Fixed bugreport:7032: Clementia and Canto Candidus give an additional of +1 str/agi/dex each 10 job levels (from caster). Thanks solvent!
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17034 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
points at battle.c&status.c.
- Implemented reading of renewal exp_guild.txt. (tid:75398)
- Fixed Status Fogwall(Blinding Mist) to be reduced by status/card. (bugreport:4543)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17017 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17012 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
[16969:16991/trunk/src/] will be re-committed in the next 24 hours.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16992 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
Removed /SAFESEH option from MSVC11 projects.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16968 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
-Change some remaining -1 for status ending timer.
-Move some hardcoded msg in msg_athena
-Small optimisation on battle_attr_fix
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16835 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
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
|