diff options
author | gumi <git@gumi.ca> | 2019-08-17 18:13:59 -0400 |
---|---|---|
committer | gumi <git@gumi.ca> | 2020-02-25 13:07:07 -0500 |
commit | 9e88b3b422781630a18c13e40cda1c5ea7c111e8 (patch) | |
tree | 117b3b978ed21821dbbcafbe718cd622c51b3b40 | |
parent | 98a8a9e6da2bc13c6283b1e4c1be518290051890 (diff) | |
download | plugin-9e88b3b422781630a18c13e40cda1c5ea7c111e8.tar.gz plugin-9e88b3b422781630a18c13e40cda1c5ea7c111e8.tar.bz2 plugin-9e88b3b422781630a18c13e40cda1c5ea7c111e8.tar.xz plugin-9e88b3b422781630a18c13e40cda1c5ea7c111e8.zip |
ignore login-defined gender (unused on evol) and treat it as non-binary
-rw-r--r-- | src/echar/char.c | 16 | ||||
-rw-r--r-- | src/echar/char.h | 2 | ||||
-rw-r--r-- | src/echar/init.c | 3 |
3 files changed, 21 insertions, 0 deletions
diff --git a/src/echar/char.c b/src/echar/char.c index c0d80ba..cac3daf 100644 --- a/src/echar/char.c +++ b/src/echar/char.c @@ -346,3 +346,19 @@ void echat_send_login_serverexit(const int code) WFIFOW(chr->login_fd, 2) = code; WFIFOSET(chr->login_fd, 4); } + +// send non-binary gender to map server +int echar_mmo_gender(const struct char_session_data **sd __attribute__ ((unused)), + const struct mmo_charstatus **p __attribute__ ((unused)), char *sex) +{ + hookStop(); + + switch (*sex) { + case 'M': + return SEX_MALE; + case 'F': + return SEX_FEMALE; + default: + return 3; // FIXME: this enum has no SEX_OTHER + } +} diff --git a/src/echar/char.h b/src/echar/char.h index 23a9a4d..9a59a44 100644 --- a/src/echar/char.h +++ b/src/echar/char.h @@ -29,4 +29,6 @@ void echar_parse_map_serverexit(int mapFd); void echat_send_login_serverexit(const int code); +int echar_mmo_gender(const struct char_session_data **, const struct mmo_charstatus **, char *sex); + #endif // EVOL_CHAR_CHAR diff --git a/src/echar/init.c b/src/echar/init.c index e273b58..1c0ba48 100644 --- a/src/echar/init.c +++ b/src/echar/init.c @@ -66,6 +66,9 @@ HPExport void plugin_init (void) addHookPre(chr, parse_char_connect, echar_parse_char_connect_pre); addHookPre(chr, send_HC_ACK_CHARINFO_PER_PAGE_tail, echar_send_HC_ACK_CHARINFO_PER_PAGE_tail_pre); + // non-binary gender stuff: + addHookPre(chr, mmo_gender, echar_mmo_gender); + addHookPost(chr, send_HC_ACK_CHARINFO_PER_PAGE, echar_send_HC_ACK_CHARINFO_PER_PAGE_post); addHookPost(chr, mmo_char_send_characters, echar_mmo_char_send_characters_post); addHookPost(chr, parse_char_connect, echar_parse_char_connect_post); |