diff options
author | Haru <haru@dotalux.com> | 2019-11-17 15:04:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-17 15:04:40 +0100 |
commit | bfd2875be53dc620b47cc7c6f59e231175020d14 (patch) | |
tree | c4f5482fd5198e5645e15691348b51a6bf461618 /src/map/clif.c | |
parent | b5c3c3f6058944fa6c31299d39f0602e7a016afc (diff) | |
parent | 3a36b74d042f5dcbc2314ae215f5e62ff5b0d53f (diff) | |
download | hercules-bfd2875be53dc620b47cc7c6f59e231175020d14.tar.gz hercules-bfd2875be53dc620b47cc7c6f59e231175020d14.tar.bz2 hercules-bfd2875be53dc620b47cc7c6f59e231175020d14.tar.xz hercules-bfd2875be53dc620b47cc7c6f59e231175020d14.zip |
Merge pull request #2568 from 4144/updatepackets
Update packets up to 2019-11-07
Diffstat (limited to 'src/map/clif.c')
-rw-r--r-- | src/map/clif.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index 9f30408e4..5c86edcaa 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -12377,6 +12377,42 @@ static void clif_parse_RemoveOption(int fd, struct map_session_data *sd) } } +static void clif_parse_reqGearOff(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); +static void clif_parse_reqGearOff(int fd, struct map_session_data *sd) +{ +#if PACKETVER_MAIN_NUM >= 20190703 || PACKETVER_RE_NUM >= 20190703 || PACKETVER_ZERO_NUM >= 20190709 + const struct PACKET_CZ_REQ_MOUNTOFF *p = RFIFOP(fd, 0); + switch (p->action) { + case REMOVE_MOUNT_DRAGON: + if (pc_isridingdragon(sd)) + pc->setoption(sd, sd->sc.option &~ OPTION_DRAGON); + break; + case REMOVE_MOUNT_MADO: + if (pc_ismadogear(sd)) + pc->setoption(sd, sd->sc.option &~ OPTION_MADOGEAR); + break; + case REMOVE_MOUNT_PECO: + if (pc_isridingpeco(sd)) + pc->setoption(sd, sd->sc.option &~ OPTION_RIDING); + break; + case REMOVE_MOUNT_FALCON: + if (pc_isfalcon(sd)) + pc->setoption(sd, sd->sc.option &~ OPTION_FALCON); + break; + case REMOVE_MOUNT_CART: + // this packet exists in clients with only new carts [4144] + if (sd->sc.data[SC_PUSH_CART]) + pc->setcart(sd, 0); + break; + case REMOVE_MOUNT_0: + case REMOVE_MOUNT_2: + default: + ShowError("Unknown action in remove mount packet: %d\n", p->action); + break; + } +#endif +} + static void clif_parse_ChangeCart(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); /// Request to change cart's visual look (CZ_REQ_CHANGECART). /// 01af <num>.W @@ -24683,4 +24719,5 @@ void clif_defaults(void) clif->lapineDdukDdak_result = clif_lapineDdukDdak_result; clif->plapineDdukDdak_ack = clif_parse_lapineDdukDdak_ack; clif->plapineDdukDdak_close = clif_parse_lapineDdukDdak_close; + clif->pReqGearOff = clif_parse_reqGearOff; } |