summaryrefslogtreecommitdiff
path: root/src/char/pincode.h
diff options
context:
space:
mode:
authorshennetsind <ind@henn.et>2013-03-09 00:04:28 -0300
committershennetsind <ind@henn.et>2013-03-09 00:04:28 -0300
commitd2d734ce0983fbed72e69f555f57f29de04f30b3 (patch)
treea3332e1eea882a9df5a2253d9a63153a9197851a /src/char/pincode.h
parentbb0f807d0683fcb2c0e9fdd6a5d1e54686dfc816 (diff)
downloadhercules-d2d734ce0983fbed72e69f555f57f29de04f30b3.tar.gz
hercules-d2d734ce0983fbed72e69f555f57f29de04f30b3.tar.bz2
hercules-d2d734ce0983fbed72e69f555f57f29de04f30b3.tar.xz
hercules-d2d734ce0983fbed72e69f555f57f29de04f30b3.zip
Hercules Renewal'd Pin Code
Feature is not, I repeat, NOT complete. the decryption is not fully functional which leads to dial values different from the ones the player used. Credits: lemongrass3110 for the base yommy for the packets LightFighter for the decrypt function (altho its not stable :P) Signed-off-by: shennetsind <ind@henn.et>
Diffstat (limited to 'src/char/pincode.h')
-rw-r--r--src/char/pincode.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/char/pincode.h b/src/char/pincode.h
new file mode 100644
index 000000000..209817c78
--- /dev/null
+++ b/src/char/pincode.h
@@ -0,0 +1,41 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+
+#ifndef _PINCODE_H_
+#define _PINCODE_H_
+
+#include "char.h"
+
+#define PINCODE_OK 0
+#define PINCODE_ASK 1
+#define PINCODE_NOTSET 2
+#define PINCODE_EXPIRED 3
+#define PINCODE_UNUSED 7
+#define PINCODE_WRONG 8
+
+/* Pincode Interface */
+struct pincode_interface {
+ /* vars */
+ int *enabled;
+ int *changetime;
+ int *maxtry;
+ unsigned long *multiplier;
+ unsigned long *baseSeed;
+ /* handler */
+ void (*handle) (int fd, struct char_session_data* sd);
+ void (*decrypt) (unsigned long userSeed, char* pin);
+ void (*error) (int account_id);
+ void (*update) (int account_id, char* pin);
+ void (*state) (int fd, struct char_session_data* sd, uint16 state);
+ void (*new) (int fd, struct char_session_data* sd);
+ void (*change) (int fd, struct char_session_data* sd);
+ int (*compare) (int fd, struct char_session_data* sd, char* pin);
+ void (*check) (int fd, struct char_session_data* sd);
+ bool (*config_read) (char *w1, char *w2);
+} pincode_s;
+
+struct pincode_interface *pincode;
+
+void pincode_defaults(void);
+
+#endif /* _PINCODE_H_ */ \ No newline at end of file