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>
|
|
|
|
|
|
script_run_item_unequip_script.
|
|
|
|
|
|
- Include directives are now directory-independent.
- This will allow building plugins from other directories in future.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Fixed an issue caused by unescaped characters being written and read out of the .pot unproperly.
This commit also causes map server to print the file it wrote to when terminating
Signed-off-by: shennetsind <ind@henn.et>
|
|
Servers can now run on any number of languages, without editing npc files.
Designed by Haruna and Ind
http://hercules.ws/board/topic/8687-hercules-ultimate-localization-design/
Signed-off-by: shennetsind <ind@henn.et>
|
|
- Rather than failing at runtime, plugins that try to access
non-interfaced, unavailable functions or variables, will now show an
error at compile-time.
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>
|
|
|
|
- Control flow statements (break, case, continue, default, do, for, if,
switch, whilei, else) and sub-function declarations (function) will no
longer show a custom error message when they are incorrectly
capitalized.
- Note: This does not mean that they are no longer case-sensitive. This
only means that no special message will be shown in case such an error
is detected. The script engine will throw a normal error, as it would
with any other kind of typo, rather than treating this as a special
case. Enough time was given to update third party scripts, and it is
now time to clean up our parsing code and get rid of these special
warnings.
- Variables, labels and commands will still show a warning for the time
being, since the side-effects of silently ignoring it could be quite
dangerous. An alternative approach to the case-check will be presented
in future. For now, those who want to disable it (and save a bit on
execution time and memory use), can simply comment out the #define
ENABLE_CASE_CHECK line in script.h, as usual.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Top level commands (function, warp, shop, cashshop, script, trader,
duplicate, monster, boss_monster, mapflag) will no longer show a
custom error message when they are incorrectly capitalized.
- Note: This does not mean that the commands are no longer
case-sensitive. This only means that no special message will be shown
in case such an error is detected. The script engine will throw a
normal error, as it would with any other kind of typo, rather than
treating this as a special case. Enough time was given to update third
party scripts, and it is now time to clean up our parsing code and get
rid of these special warnings.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Commands marked as deprecated will trigger a warning when the script
is loaded. (there are currently no commands marked as such, but some
will come soon)
Signed-off-by: Haru <haru@dotalux.com>
|
|
is about.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Complies with CERT DCL37-C
- Fixes issue #293 (special thanks to elfring)
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Includes in some files weren't sorted alphabetically. Special thanks
to KeiKun.
Signed-off-by: Haru <haru@dotalux.com>
|
|
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>
|
|
- This affects normal execution as well as ./script-checker runs.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- The script command pcre_match and the operator ~= will return the
number of regular expression matches in a given string (roughly
equivalent to the php function preg_match or the perl operator =~)
- The operator ~! is the opposite of ~= (roughly equivalent to the perl
operator !~)
- See script_commands and npc/custom/test.txt for more information.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Fixes the following issues:
- donpcevent could cause a crash when used to a event of the same npc
- input/other-dialog-interactions could cause a crash when sending data to a disabled-fakenpc-id'd.
Special Thanks to Haruna, ossi0110.
Signed-off-by: shennetsind <ind@henn.et>
|
|
- Fixes bugreport:8074, thanks to ahmadshidqi
http://hercules.ws/board/tracker/issue-8074-help-crash/
- Also fixed some DBMap allocation mistakes introduced in 4f3156b.
- Added testcases to the self-test script.
- Made possible thanks to Ind.
Signed-off-by: Haru <haru@dotalux.com>
|
|
different scopes
- Fixes bugreport:8008, special thanks to KeyWorld
http://hercules.ws/board/tracker/issue-8008-copyarray-fail-on-a-referenced-array-argument/
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Updated several functions to properly use the data structures defined
in parts 1 and 2.
- Special thanks to Ind for his help on this, as well as the previous
two parts.
- Fixes some crashes related to variable references passed back and
forth between nested callfunc/callsub scopes (related: 2669e9a,
3259f89, 4f2de07)
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Reorganized regs var/array DBMaps into a specific reg_db structure
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Moved string and numeric mapregs into the same DBMap (for consistency
with the other reg types.)
Signed-off-by: Haru <haru@dotalux.com>
|
|
NPC Error is now printed as well as the original message as proposed by Emistry in http://hercules.ws/board/topic/1864-mapindex-name2id-display-which-npc-caused-this/
Special Thanks to Haru!
Signed-off-by: shennetsind <ind@henn.et>
|
|
a benefit, for example, would be that the compounds are always up to date regardless if new members are added, also added a new compound OPTION_COSTUME
Special Thanks to Haruna, and AnnieRuru for pointing out constdb's outdatedness.
Signed-off-by: shennetsind <ind@henn.et>
|
|
Did not affect write/read, except getarraysize and deletearray.
Special Thanks to Haru!
Signed-off-by: shennetsind <ind@henn.et>
|
|
- Fixes bugreport:8015, thanks to N e s s
http://hercules.ws/board/tracker/issue-8015-error-in-compiling-in-debian-linux-latest-rev/
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Fixes bugreport:8013, thanks to Dastgir Pojee
http://hercules.ws/board/tracker/issue-8013-script-add-str-problem/
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Added script command strtol (conforming to the ISO C90 function)
- Modified script command axtoi to internally use strtol instead of an
unnecessary own implementation.
- Fixed sscanf behavior to conform to the C specifications in case the
input string is empty. It now correctly returns -1, or 0 if the format
string is also empty. Fixes bugreport:8009, thanks to AnnieRuru -
http://hercules.ws/board/tracker/issue-8009-sscanf-should-return-1-if-the-string-field-is-an-empty-string/
Signed-off-by: Haru <haru@dotalux.com>
|
|
http://hercules.ws/board/topic/4283-introducing-hpm-datacheck/
Signed-off-by: shennetsind <ind@henn.et>
|
|
- Fixes issue 7968, thanks to Moguri
http://hercules.ws/board/tracker/issue-7968-trader-npc-not-working/
- Corrected sprite name for KO_KAGE to match latest kRO info (previouly
KO_ZANZOU, conflicting with a Kagerou/Oboro skill identifier)
- Updated self-test script to include checks for constants and for setd
and getd.
- Made possible thanks to Ind.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Special Thanks to Haruna. Also fixed a compiler warning, thanks to ossi0110
Signed-off-by: shennetsind <ind@henn.et>
|
|
http://hercules.ws/board/topic/3886-hercules-1st-2014-megapatch/
Signed-off-by: shennetsind <ind@henn.et>
|
|
- Fixes bugreport:7901, thanks to Angelmelody
http://hercules.ws/board/tracker/issue-7901-about-pass-variable-type-as-function-parameter
- Bonus: debugmes can now take both strings and numbers (i.e. to print a
number variable you no longer need to do 'debugmes "" + .@num;')
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>
|
|
- Removed duplicate code shared between script_hp_add and
script_parse_builtin.
- Improved error handling in script_hp_add to be on par with the
script_parse_builtin version.
- Added script->add_builtin function, providing a hooking point for
plugins (i.e. text editor syntax definition generators) to obtain the
builtin commands list.
- Special thanks to Ind.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Follow up to c6c2ad187c386d8d27d3336dcbdd5a92555493d2
- Special thanks to Ind
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Fixes bugreport:7810, thanks to Wend, kyeme, evilpuncker, jaBote, and
various other people I may be forgetting to mention
http://hercules.ws/board/tracker/issue-7810-disguise-script-command
- Due to the nature of this change, I'm leaving the deprecation messages
lingering around for a while more (as errors rather than warnings), to
make sure they won't pass unnoticed, in case you haven't yet updated
your custom scripts to comply with this.
- Special thanks to Ind.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Any scripts using the wrong case, that were throwing deprecation
warnings until now, will become invalid.
- Related to bugreport:7810.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- [ This commit is part of a larger script engine related update ]
- Suffix ++ and -- operators now behave like in other languages
(updating the variable *after* its value is returned.)
- Prefix ++ and -- operators are added for parity with other
scripting/programming languages. They update the variable they're
applied to *before* returning its value.
- Please note that the implementation of the prefix form of those
operators (like it happens in most languages) is more efficient than
the suffix form. '++.@i' is (slightly) faster than '.@i++', or at
least not slower.
- Fixed some outdated script debug functions.
- Follow-up to c18f438.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- HPMi->addCommand is now addAtcommand, dropped usage of ACMD_A()
- HPMi->addScript is now addScriptCommand, dropped usage of BUILDIN_A()
- HPMi->addCPCommand is now addCPCommand, dropped necessity of CPCMD_A()
- HPMi->addPacket is now addPacket, 5th param (HPMi->pid) is now automatically filled by the macro, therefore param count drops to 4 (packetID,packetLength,packetFunction,packetIncomingPoint).
There is no longer necessity to check for the availability of the commands, the macros will do it on their own and drop a warning about it upon failure.
These changes won't affect pre-compiled plugins.
Signed-off-by: shennetsind <ind@henn.et>
|
|
- Sanitized all potentially unsafe macros (related eA:15259)
- Improved some function-like macros to evaluate their argument only
once and keep it in a temporary variable. This improves performance
in the damage calculation related code.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Reduced number of false positives when parsing .@scope variables.
- Added correct error source information where it previously said
'source not found'.
- Special thanks to Ind.
Signed-off-by: Haru <haru@dotalux.com>
|