diff options
author | ai4rei <ai4rei@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2011-10-07 21:35:12 +0000 |
---|---|---|
committer | ai4rei <ai4rei@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2011-10-07 21:35:12 +0000 |
commit | 033373a5a75599f8607107cb28b97cc6a653b0b5 (patch) | |
tree | c520e925018ac7de37d05f690d357fcf55b56ec4 /src/char | |
parent | 692dd1e5737b01ef26ba889f60d013cb992c3cec (diff) | |
download | hercules-033373a5a75599f8607107cb28b97cc6a653b0b5.tar.gz hercules-033373a5a75599f8607107cb28b97cc6a653b0b5.tar.bz2 hercules-033373a5a75599f8607107cb28b97cc6a653b0b5.tar.xz hercules-033373a5a75599f8607107cb28b97cc6a653b0b5.zip |
* Merged changes from trunk [14895:14966/trunk].
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/renewal@14967 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/char')
-rw-r--r-- | src/char/CMakeLists.txt | 56 | ||||
-rw-r--r-- | src/char/char.c | 42 |
2 files changed, 55 insertions, 43 deletions
diff --git a/src/char/CMakeLists.txt b/src/char/CMakeLists.txt index 9e0cbd9f4..fa1c3f366 100644 --- a/src/char/CMakeLists.txt +++ b/src/char/CMakeLists.txt @@ -1,33 +1,39 @@ # +# setup +# +set( TXT_CHAR_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE INTERNAL "" ) + + +# # char txt # -if( HAVE_common_base ) +if( BUILD_TXT_SERVERS ) message( STATUS "Creating target char-server" ) set( TXT_CHAR_HEADERS - "${CMAKE_CURRENT_SOURCE_DIR}/char.h" - "${CMAKE_CURRENT_SOURCE_DIR}/int_guild.h" - "${CMAKE_CURRENT_SOURCE_DIR}/int_homun.h" - "${CMAKE_CURRENT_SOURCE_DIR}/int_party.h" - "${CMAKE_CURRENT_SOURCE_DIR}/int_pet.h" - "${CMAKE_CURRENT_SOURCE_DIR}/int_status.h" - "${CMAKE_CURRENT_SOURCE_DIR}/int_storage.h" - "${CMAKE_CURRENT_SOURCE_DIR}/inter.h" + "${TXT_CHAR_SOURCE_DIR}/char.h" + "${TXT_CHAR_SOURCE_DIR}/int_guild.h" + "${TXT_CHAR_SOURCE_DIR}/int_homun.h" + "${TXT_CHAR_SOURCE_DIR}/int_party.h" + "${TXT_CHAR_SOURCE_DIR}/int_pet.h" + "${TXT_CHAR_SOURCE_DIR}/int_status.h" + "${TXT_CHAR_SOURCE_DIR}/int_storage.h" + "${TXT_CHAR_SOURCE_DIR}/inter.h" ) set( TXT_CHAR_SOURCES - "${CMAKE_CURRENT_SOURCE_DIR}/char.c" - "${CMAKE_CURRENT_SOURCE_DIR}/int_guild.c" - "${CMAKE_CURRENT_SOURCE_DIR}/int_homun.c" - "${CMAKE_CURRENT_SOURCE_DIR}/int_party.c" - "${CMAKE_CURRENT_SOURCE_DIR}/int_pet.c" - "${CMAKE_CURRENT_SOURCE_DIR}/int_status.c" - "${CMAKE_CURRENT_SOURCE_DIR}/int_storage.c" - "${CMAKE_CURRENT_SOURCE_DIR}/inter.c" + "${TXT_CHAR_SOURCE_DIR}/char.c" + "${TXT_CHAR_SOURCE_DIR}/int_guild.c" + "${TXT_CHAR_SOURCE_DIR}/int_homun.c" + "${TXT_CHAR_SOURCE_DIR}/int_party.c" + "${TXT_CHAR_SOURCE_DIR}/int_pet.c" + "${TXT_CHAR_SOURCE_DIR}/int_status.c" + "${TXT_CHAR_SOURCE_DIR}/int_storage.c" + "${TXT_CHAR_SOURCE_DIR}/inter.c" ) set( DEPENDENCIES common_base ) set( LIBRARIES ${GLOBAL_LIBRARIES} ) set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ) -set( DEFINITIONS ${GLOBAL_DEFINITIONS} TXT_ONLY ) +set( DEFINITIONS "${GLOBAL_DEFINITIONS} -DTXT_ONLY" ) set( SOURCE_FILES ${COMMON_BASE_HEADERS} ${TXT_CHAR_HEADERS} ${TXT_CHAR_SOURCES} ) source_group( common FILES ${COMMON_BASE_HEADERS} ) source_group( char FILES ${TXT_CHAR_HEADERS} ${TXT_CHAR_SOURCES} ) @@ -35,17 +41,13 @@ include_directories( ${INCLUDE_DIRS} ) add_executable( char-server ${SOURCE_FILES} ) add_dependencies( char-server ${DEPENDENCIES} ) target_link_libraries( char-server ${LIBRARIES} ${DEPENDENCIES} ) -set_target_properties( char-server PROPERTIES COMPILE_DEFINITIONS "${DEFINITIONS}" ) -if( WITH_COMPONENT_RUNTIME ) +set_target_properties( char-server PROPERTIES COMPILE_FLAGS "${DEFINITIONS}" ) +if( INSTALL_COMPONENT_RUNTIME ) cpack_add_component( Runtime_charserver_txt DESCRIPTION "char-server (txt version)" DISPLAY_NAME "char-server" GROUP Runtime ) install( TARGETS char-server DESTINATION "." COMPONENT Runtime_charserver_txt ) -endif() +endif( INSTALL_COMPONENT_RUNTIME ) +set( TARGET_LIST ${TARGET_LIST} char-server CACHE INTERNAL "" ) message( STATUS "Creating target char-server - done" ) -set( HAVE_char-server ON CACHE BOOL "char-server target is available" ) -mark_as_advanced( HAVE_char-server ) -else() -message( STATUS "Skipping target char-server (requires common_base)" ) -unset( HAVE_char-server CACHE ) -endif() +endif( BUILD_TXT_SERVERS ) diff --git a/src/char/char.c b/src/char/char.c index 617e3d10c..dfcbc9230 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -436,7 +436,7 @@ int search_character_online(int aid, int cid) { //Look for online character. struct online_char_data* character; - character = idb_get(online_char_db, aid); + character = (struct online_char_data*)idb_get(online_char_db, aid); if(character && character->char_id == cid && character->server > -1) @@ -1804,33 +1804,33 @@ int mmo_char_tobuf(uint8* buffer, struct mmo_charstatus* p) buf = WBUFP(buffer,0); WBUFL(buf,0) = p->char_id; - WBUFL(buf,4) = min(p->base_exp, LONG_MAX); + WBUFL(buf,4) = min(p->base_exp, INT32_MAX); WBUFL(buf,8) = p->zeny; - WBUFL(buf,12) = min(p->job_exp, LONG_MAX); + WBUFL(buf,12) = min(p->job_exp, INT32_MAX); WBUFL(buf,16) = p->job_level; WBUFL(buf,20) = 0; // probably opt1 WBUFL(buf,24) = 0; // probably opt2 WBUFL(buf,28) = p->option; WBUFL(buf,32) = p->karma; WBUFL(buf,36) = p->manner; - WBUFW(buf,40) = min(p->status_point, SHRT_MAX); + WBUFW(buf,40) = min(p->status_point, INT16_MAX); #if PACKETVER > 20081217 WBUFL(buf,42) = p->hp; WBUFL(buf,46) = p->max_hp; offset+=4; buf = WBUFP(buffer,offset); #else - WBUFW(buf,42) = min(p->hp, SHRT_MAX); - WBUFW(buf,44) = min(p->max_hp, SHRT_MAX); + WBUFW(buf,42) = min(p->hp, INT16_MAX); + WBUFW(buf,44) = min(p->max_hp, INT16_MAX); #endif - WBUFW(buf,46) = min(p->sp, SHRT_MAX); - WBUFW(buf,48) = min(p->max_sp, SHRT_MAX); + WBUFW(buf,46) = min(p->sp, INT16_MAX); + WBUFW(buf,48) = min(p->max_sp, INT16_MAX); WBUFW(buf,50) = DEFAULT_WALK_SPEED; // p->speed; WBUFW(buf,52) = p->class_; WBUFW(buf,54) = p->hair; WBUFW(buf,56) = p->option&0x20 ? 0 : p->weapon; //When the weapon is sent and your option is riding, the client crashes on login!? WBUFW(buf,58) = p->base_level; - WBUFW(buf,60) = min(p->skill_point, SHRT_MAX); + WBUFW(buf,60) = min(p->skill_point, INT16_MAX); WBUFW(buf,62) = p->head_bottom; WBUFW(buf,64) = p->shield; WBUFW(buf,66) = p->head_top; @@ -1838,12 +1838,12 @@ int mmo_char_tobuf(uint8* buffer, struct mmo_charstatus* p) WBUFW(buf,70) = p->hair_color; WBUFW(buf,72) = p->clothes_color; memcpy(WBUFP(buf,74), p->name, NAME_LENGTH); - WBUFB(buf,98) = min(p->str, UCHAR_MAX); - WBUFB(buf,99) = min(p->agi, UCHAR_MAX); - WBUFB(buf,100) = min(p->vit, UCHAR_MAX); - WBUFB(buf,101) = min(p->int_, UCHAR_MAX); - WBUFB(buf,102) = min(p->dex, UCHAR_MAX); - WBUFB(buf,103) = min(p->luk, UCHAR_MAX); + WBUFB(buf,98) = min(p->str, UINT8_MAX); + WBUFB(buf,99) = min(p->agi, UINT8_MAX); + WBUFB(buf,100) = min(p->vit, UINT8_MAX); + WBUFB(buf,101) = min(p->int_, UINT8_MAX); + WBUFB(buf,102) = min(p->dex, UINT8_MAX); + WBUFB(buf,103) = min(p->luk, UINT8_MAX); WBUFW(buf,104) = p->slot; #if PACKETVER >= 20061023 WBUFW(buf,106) = ( p->rename > 0 ) ? 0 : 1; @@ -2208,7 +2208,7 @@ int parse_fromlogin(int fd) memcpy(sd->email, RFIFOP(fd,6), 40); sd->expiration_time = (time_t)RFIFOL(fd,46); sd->gmlevel = RFIFOB(fd,50); - safestrncpy(sd->birthdate, RFIFOP(fd,51), sizeof(sd->birthdate)); + safestrncpy(sd->birthdate, (const char*)RFIFOP(fd,51), sizeof(sd->birthdate)); // continued from char_auth_ok... if( max_connect_user && count_users() >= max_connect_user && sd->gmlevel < gm_allow_level ) @@ -2223,6 +2223,16 @@ int parse_fromlogin(int fd) { // send characters to player mmo_char_send006b(i, sd); +#if PACKETVER >= 20110309 + // PIN code system, disabled + WFIFOHEAD(i, 12); + WFIFOW(i, 0) = 0x08B9; + WFIFOW(i, 2) = 0; + WFIFOW(i, 4) = 0; + WFIFOL(i, 6) = sd->account_id; + WFIFOW(i, 10) = 0; + WFIFOSET(i, 12); +#endif } } RFIFOSKIP(fd,62); |