Age | Commit message (Collapse) | Author | Files | Lines |
|
This commit ensures that `sd->job` and related variables only contain
MapIDs (i.e. the serverside optimized values, where High Novice is
MAPID_NOVICE | JOBL_UPPER) and are never checked against the
client-based Job Class values.
As a rule of thumb, from now on, when a variable is named `job` or
`jobid`, it is intended to contain a MapID and not a Job Class ID. The
type of such variable shall be an unsigned `uint16` or `uint32`.
To ensure that related third party code is also verified when this
commit is merged, the variable `struct map_session_data::class_ (i.e.
`sd->class_`) is renamed to `job`.
Some issues in related lines are also fixed, including:
- The atcommand `@mount` would not check properly that the requesting
character is a 2nd class Swordsman type.
- `pc->addfame()` would silently accept invalid MapIDs, sending unknown
values to the client (more on this in a subsequent commit).
- `pc->famerank()` would not use the passed job as a bitmask, causing
the caller to have to mask it beforehand (more on this in a
subsequent commit).
- The Soul Linker check in TK_JUMPKICK wasn't future-proof (no harm
caused currently).
- Gunslingers would be able to be targeted by Spiritual Bestowment
(`MO_KITRANSLATION`) and Spiritual Sphere Absorption
(`MO_ABSORBSPIRITS`) due to a faulty check introduced when the
Rebellion class was implemented (causing unintended interaction with
Coins).
Signed-off-by: Haru <haru@dotalux.com>
|
|
This commit ensures that `sd->status.class` and related variables only
contain Job Classes (i.e. the client-compatible values, where High
Novice 4001) and are never checked against the bitmask-based MapID
values.
As a rule of thumb, from now on, when a variable is named `class`, it
is intended to contain a Job Class ID and not a MapID. The type of such
variable shall be a signed `int16` or `int`.
To ensure that related third party code is also verified when this
commit is merged, the variable `struct mmo_charstatus::class_ (i.e.
`sd->status.class_`) is renamed to `class`.
Some issues in related lines are also fixed, including:
- A wrong check in the char server would prevent the correct detection
of babies in code related to the family exp sharing.
- Baby Arch Bishops would not be affected by Eucharistica.
- A wrong check would cause the `questinfo()` script command not to
display its information for most classes (except 1-1 classes).
- Map IDs and Job Classes were mixed up in `itemdb_jobid2mapid()` and
`itemdb_jobmask2mapid()` for 1-1 classes (causing currently no harm,
since they just happen to coincide).
- The Baby Sura class would not cause parties to be marked as
containing a monk type character (for SLS Team Up purposes).
- Baby Geneticists would bypass the cart check when trying to equip
ammunitions.
- Baby Mechanics would bypass the Mado Gear check when trying to equip
ammunitions.
- Transcendent Shadow Chasers would lose the Stalkers' ability to clone
transcendent skills.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Add *makeitem2 script command.
|
|
The script command areawarp has been checking the wrong target map for ages. It has been checking the mapindex rather than the mapid and therefore returned a wrong result.
Original commit: rathena/rathena@ac2ba09
|
|
Supporting apostrophes (`'`) inside constants or variables is no longer
necessary thanks to the more strict AegisName ruleset we're using now.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Cannot be reset by dispell.
Cannot be healed by item/NPC once in BITESCAR.
Heal Skill would end the BiteScar Effect.
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Some possible buffer overflows.
Add attribute for mark fallthrough cases.
Skipped libconfig warnings.
|
|
Based on rAthena commits:
commit 4f13007fec7f08c265620a71c3bc4806d186c0f1
Author: Lemongrass3110 <lemongrass@kstp.at>
Date: Sun Mar 6 21:48:47 2016 +0100
commit 809f220b9f5ef70ee062ee56ae6e8d5f56cb5d32
Author: aleos89 <aleos89@users.noreply.github.com>
Date: Sun Mar 6 16:15:54 2016 -0500
commit 179f73424934d528ebe494dfb66503c182eacb09
Author: aleos89 <aleos89@users.noreply.github.com>
Date: Sun Mar 6 16:10:15 2016 -0500
|
|
- There exists a case where st is NULL, such as when called by
script->cleararray_pc(). This documents such possibility.
- Fixes Coverity CID 152760
- Follow-up to 0f803e7
Signed-off-by: Haru <haru@dotalux.com>
|
|
- GD_MAX is not a valid guild skill ID
- Fixes Coverity CID 152761
- Follow-up to 0f803e7
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
- squash commits.
- fix conflicts during rebase.
- fix travis build warnings.
|
|
Plugin settings should be relative to the the libconfig file root. For
example, a configuration setting of type HPCT_CHAR will be relative to
the root of conf/char/char-server.conf. In order to add a configuration
entry inside the char_configuration block, the full configuration path
(slash-delimited) should be passed to addCharConf(), as in the
following example:
`addCharConf("char_configuration/my_setting", my_parser_function);`
Signed-off-by: Haru <haru@dotalux.com>
|
|
Ported to modern Hercules and cleaned up from Panikon's commits: a0e4da63ef3afcd896603398e2468876681ac54a, b5f487c2676833492a6d4044b5d1f1bb1e552b04
Signed-off-by: Haru <haru@dotalux.com>
|
|
min_level and max_level
Fixes several -Wsign-compare issues
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
- For compliance with gettext's .po file specifications
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
|
|
The script->get_translation_file_name() is more robust (and actually
works) now.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
format string
- Strings passed to sprintf should use the _$() macro instead of _(), to
generate the .pot translation template with a directive to correctly
handle the % sign.
- Strings passed through _() are instead explicitly marked as regular
(non format) strings if they contain '%'.
Signed-off-by: Haru <haru@dotalux.com>
|
|
well)
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
- parse_simpleexpr_paren()
- parse_simpleexpr_number()
- parse_simplexpr_string()
- parse_simpleexpr_name()
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
- The function now checks its arguments, rather than passing them to
the system implementation (safer against arbitrary memory access or
wrong variable type)
- Implemented positional ('%1$d') specifiers (POSIX style)
- See script_commands.txt for details about the supported format
specifiers.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Fixes various signed/unsigned comparisons.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Fixes various signed/unsigned comparisons.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Fixes various signed/unsigned comparisons.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- The command was already deprecated in ca877ec and removed in 7e93d08
- Resolves #1288
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
- The argument was redundant, since the passed value is always the same
as the passed string's length (it doesn't make sense otherwise). The
argument is implicit now. Less typing and less errors.
Signed-off-by: Haru <haru@dotalux.com>
|
|
functions
- Variable types were changed to int
- Corrects several warnings in VS2015
- Affected functions: `clif->broadcast()`, `clif->broadcast2()`,
`intif->broadcast()`, `intif->broadcast2()`
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Chat IDs are signed integers.
- Resolves various warnings, depending on the compiler settings.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Added -Wcast-qual compiler flag
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Sql -> struct Sql
- SqlStmt -> struct SqlStmt
- SqlDataType -> enum SqlDataType
This is expected to improve compile time, by removing #include cycles (and forward declaring instead)
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|