summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgumi <git@gumi.ca>2019-08-17 18:13:59 -0400
committergumi <git@gumi.ca>2020-02-25 13:07:07 -0500
commit9e88b3b422781630a18c13e40cda1c5ea7c111e8 (patch)
tree117b3b978ed21821dbbcafbe718cd622c51b3b40
parent98a8a9e6da2bc13c6283b1e4c1be518290051890 (diff)
downloadevol-hercules-9e88b3b422781630a18c13e40cda1c5ea7c111e8.tar.gz
evol-hercules-9e88b3b422781630a18c13e40cda1c5ea7c111e8.tar.bz2
evol-hercules-9e88b3b422781630a18c13e40cda1c5ea7c111e8.tar.xz
evol-hercules-9e88b3b422781630a18c13e40cda1c5ea7c111e8.zip
ignore login-defined gender (unused on evol) and treat it as non-binary
-rw-r--r--src/echar/char.c16
-rw-r--r--src/echar/char.h2
-rw-r--r--src/echar/init.c3
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);