summaryrefslogtreecommitdiff
path: root/src/char
diff options
context:
space:
mode:
authorFlavioJS <FlavioJS@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-12-28 19:11:40 +0000
committerFlavioJS <FlavioJS@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-12-28 19:11:40 +0000
commitb27d8f616c4b97e1a35c2f0f347832e316de1c59 (patch)
treed1e7688c8a3051264e9db063c0dc9c9c4cd26dca /src/char
parent9fc3ecf51324fd26aba173daf8c5409695747f79 (diff)
downloadhercules-b27d8f616c4b97e1a35c2f0f347832e316de1c59.tar.gz
hercules-b27d8f616c4b97e1a35c2f0f347832e316de1c59.tar.bz2
hercules-b27d8f616c4b97e1a35c2f0f347832e316de1c59.tar.xz
hercules-b27d8f616c4b97e1a35c2f0f347832e316de1c59.zip
- Part 3 of TheUltraMage's socket cleanup.
- Fixed the packet structure in mmo_char_send006b for PACKETVER 8. - Removed search_str from add_str (add_str already searches for the string). - Native script words like do,while,for,... are case insensitive now. - Changed SCRIPT_HASH_SIZE to 1021 (prime hash sizes give better distributions). - Added alternative hash implementations to the script engine (to try out later). removed int_homun.c from header section of the VS8 map project files git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9588 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/char')
-rw-r--r--src/char/char.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/char/char.c b/src/char/char.c
index dd229999d..16dfe1192 100644
--- a/src/char/char.c
+++ b/src/char/char.c
@@ -1694,7 +1694,12 @@ int mmo_char_send006b(int fd, struct char_session_data *sd) {
for(i = 0; i < found_num; i++) {
p = &char_dat[sd->found_char[i]].status;
+#if PACKETVER > 7
+ j = offset + (found_num * 2) + (i * 106); // increase speed of code
+ WFIFOW(fd,offset+(i*2)) = 1; //TODO: Handle this rename bit: 0 to enable renaming
+#else
j = offset + (i * 106); // increase speed of code
+#endif
WFIFOL(fd,j) = p->char_id;
WFIFOL(fd,j+4) = p->base_exp>LONG_MAX?LONG_MAX:p->base_exp;
@@ -1709,7 +1714,7 @@ int mmo_char_send006b(int fd, struct char_session_data *sd) {
WFIFOL(fd,j+32) = p->karma;
WFIFOL(fd,j+36) = p->manner;
- WFIFOW(fd,j+40) = (p->status_point>SHRT_MAX) ? SHRT_MAX : p->status_point;
+ WFIFOW(fd,j+40) = (p->status_point > SHRT_MAX) ? SHRT_MAX : p->status_point;
WFIFOW(fd,j+42) = (p->hp > SHRT_MAX) ? SHRT_MAX : p->hp;
WFIFOW(fd,j+44) = (p->max_hp > SHRT_MAX) ? SHRT_MAX : p->max_hp;
WFIFOW(fd,j+46) = (p->sp > SHRT_MAX) ? SHRT_MAX : p->sp;
@@ -1719,7 +1724,7 @@ int mmo_char_send006b(int fd, struct char_session_data *sd) {
WFIFOW(fd,j+54) = p->hair;
WFIFOW(fd,j+56) = p->option&0x20?0:p->weapon; //When the weapon is sent and your option is riding, the client crashes on login!?
WFIFOW(fd,j+58) = p->base_level;
- WFIFOW(fd,j+60) = (p->skill_point>SHRT_MAX)? SHRT_MAX : p->skill_point;
+ WFIFOW(fd,j+60) = (p->skill_point > SHRT_MAX) ? SHRT_MAX : p->skill_point;
WFIFOW(fd,j+62) = p->head_bottom;
WFIFOW(fd,j+64) = p->shield;
WFIFOW(fd,j+66) = p->head_top;
@@ -1729,18 +1734,13 @@ int mmo_char_send006b(int fd, struct char_session_data *sd) {
memcpy(WFIFOP(fd,j+74), p->name, NAME_LENGTH);
- WFIFOB(fd,j+98) = (p->str > 255) ? 255 : p->str;
- WFIFOB(fd,j+99) = (p->agi > 255) ? 255 : p->agi;
- WFIFOB(fd,j+100) = (p->vit > 255) ? 255 : p->vit;
- WFIFOB(fd,j+101) = (p->int_ > 255) ? 255 : p->int_;
- WFIFOB(fd,j+102) = (p->dex > 255) ? 255 : p->dex;
- WFIFOB(fd,j+103) = (p->luk > 255) ? 255 : p->luk;
-#if PACKETVER > 7
+ WFIFOB(fd,j+98) = (p->str > UCHAR_MAX) ? UCHAR_MAX : p->str;
+ WFIFOB(fd,j+99) = (p->agi > UCHAR_MAX) ? UCHAR_MAX : p->agi;
+ WFIFOB(fd,j+100) = (p->vit > UCHAR_MAX) ? UCHAR_MAX : p->vit;
+ WFIFOB(fd,j+101) = (p->int_ > UCHAR_MAX) ? UCHAR_MAX : p->int_;
+ WFIFOB(fd,j+102) = (p->dex > UCHAR_MAX) ? UCHAR_MAX : p->dex;
+ WFIFOB(fd,j+103) = (p->luk > UCHAR_MAX) ? UCHAR_MAX : p->luk;
WFIFOW(fd,j+104) = p->char_num;
- WFIFOB(fd,j+106) = 1; //TODO: Handle this rename bit: 0 to enable renaming
-#else
- WFIFOB(fd,j+104) = p->char_num;
-#endif
}
WFIFOSET(fd,WFIFOW(fd,2));