diff options
author | Andrei Karas <akaras@inbox.ru> | 2018-10-04 18:50:37 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2018-10-04 18:50:37 +0300 |
commit | 1e32aa5e41593bf05645e4412c86d8f4a00dac75 (patch) | |
tree | e3ab900ec7f1e969f65e4c301d2086dfcc408d69 | |
parent | 79a55bfd5c029ae833bed01a5a9b497b4dcf1ed7 (diff) | |
download | hercules-1e32aa5e41593bf05645e4412c86d8f4a00dac75.tar.gz hercules-1e32aa5e41593bf05645e4412c86d8f4a00dac75.tar.bz2 hercules-1e32aa5e41593bf05645e4412c86d8f4a00dac75.tar.xz hercules-1e32aa5e41593bf05645e4412c86d8f4a00dac75.zip |
Add packet ZC_CAMERA_INFO.
This packet allow show camera info, or change camera parameters.
-rw-r--r-- | src/map/clif.c | 29 | ||||
-rw-r--r-- | src/map/clif.h | 2 | ||||
-rw-r--r-- | src/map/packets_struct.h | 9 |
3 files changed, 40 insertions, 0 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index c8914d964..152a72cee 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -21922,6 +21922,32 @@ static void clif_parse_memorial_dungeon_command(int fd, struct map_session_data } } +static void clif_camera_showWindow(struct map_session_data *sd) +{ +#if PACKETVER >= 20160525 + struct PACKET_ZC_CAMERA_INFO p; + p.packetType = 0xa78; + p.action = 1; + p.range = 0; + p.rotation = 0; + p.latitude = 0; + clif->send(&p, sizeof(p), &sd->bl, SELF); +#endif +} + +static void clif_camera_change(struct map_session_data *sd, float range, float rotation, float latitude) +{ +#if PACKETVER >= 20160525 + struct PACKET_ZC_CAMERA_INFO p; + p.packetType = 0xa78; + p.action = 0; + p.range = range; + p.rotation = rotation; + p.latitude = latitude; + clif->send(&p, sizeof(p), &sd->bl, SELF); +#endif +} + /*========================================== * Main client packet processing function *------------------------------------------*/ @@ -23086,6 +23112,9 @@ void clif_defaults(void) clif->cz_req_style_change_sub = clif_cz_req_style_change_sub; clif->style_change_response = clif_style_change_response; + clif->camera_showWindow = clif_camera_showWindow; + clif->camera_change = clif_camera_change; + // -- Pet Evolution clif->pPetEvolution = clif_parse_pet_evolution; clif->petEvolutionResult = clif_pet_evolution_result; diff --git a/src/map/clif.h b/src/map/clif.h index e91f19f20..c77dbcb94 100644 --- a/src/map/clif.h +++ b/src/map/clif.h @@ -1552,6 +1552,8 @@ struct clif_interface { void (*petEvolutionResult) (int fd, enum pet_evolution_result result); void (*party_dead_notification) (struct map_session_data *sd); void (*pMemorialDungeonCommand) (int fd, struct map_session_data *sd); + void (*camera_showWindow) (struct map_session_data *sd); + void (*camera_change) (struct map_session_data *sd, float range, float rotation, float latitude); }; #ifdef HERCULES_CORE diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h index c3886730b..29a3355f7 100644 --- a/src/map/packets_struct.h +++ b/src/map/packets_struct.h @@ -2842,6 +2842,15 @@ struct PACKET_ZC_REMOVE_EFFECT { uint32 effectId; } __attribute__((packed)); +struct PACKET_ZC_CAMERA_INFO { + int16 packetType; + int8 action; + float range; + float rotation; + float latitude; +} __attribute__((packed)); + + #if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute #pragma pack(pop) #endif // not NetBSD < 6 / Solaris |