From e83c989677addb0eb333f9917a116549cd147bae Mon Sep 17 00:00:00 2001 From: FlavioJS Date: Wed, 3 Jan 2007 12:01:43 +0000 Subject: - Fixed FIFO defines in TURBO mode. Ref: http://www.eathena.ws/board/index.php?showtopic=129766 The rest of the TURBO related errors are about the HEAD defines having to be at the start of a block because they contain a variable declaration. (i won't fix these) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9611 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 1 + src/common/socket.c | 2 +- src/common/socket.h | 11 +++++++---- src/map/atcommand.c | 4 ++-- src/map/intif.c | 2 +- src/map/map.c | 2 +- src/map/pc.c | 12 ++++++------ 7 files changed, 19 insertions(+), 15 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 7b4a2ea99..f203e785d 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,7 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2007/01/03 + * Fixed TURBO FIFO defines. * Moved refusal of a known packet versions to clif_parse_WantToConnection and made it check for non-player object with that id. * JK_JOINTBEAT as described in: diff --git a/src/common/socket.c b/src/common/socket.c index ca532f185..ad33c28db 100644 --- a/src/common/socket.c +++ b/src/common/socket.c @@ -655,7 +655,7 @@ int do_sendrecv(int next) free_session_mem(i); //free the bad session continue; } - + if (!FD_ISSET(i, &readfds)) FD_SET(i,&readfds); ret = i; diff --git a/src/common/socket.h b/src/common/socket.h index 71dc07ea9..370fdec5d 100644 --- a/src/common/socket.h +++ b/src/common/socket.h @@ -23,11 +23,13 @@ extern time_t last_tick; extern time_t stall_time; // define declaration +#define TURBO #define RFIFOSPACE(fd) (session[fd]->max_rdata-session[fd]->rdata_size) #ifdef TURBO -#define RFIFOHEAD(fd) char *rbPtr ## fd = session[fd]->rdata+session[fd]->rdata_pos -#define RFIFOP(fd,pos) (&rbPtr ## fd[pos]) +#define RFIFOVAR(fd) rbPtr ## fd +#define RFIFOHEAD(fd) uint8 *RFIFOVAR(fd) = session[fd]->rdata+session[fd]->rdata_pos +#define RFIFOP(fd,pos) ( &RFIFOVAR(fd) + (pos) ) #else //Make it a comment so it does not disrupts the rest of code. #define RFIFOHEAD(fd) // @@ -58,8 +60,9 @@ extern time_t stall_time; #define WFIFOSPACE(fd) (session[fd]->max_wdata-session[fd]->wdata_size) #ifdef TURBO -#define WFIFOHEAD(fd, x) uint8 *wbPtr ## fd = (fd>0&&session[fd])?(session[fd]->wdata+session[fd]->wdata_size):NULL; -#define WFIFOP(fd,pos) (&wbPtr ## fd[pos]) +#define WFIFOVAR(fd) wbPtr ## fd +#define WFIFOHEAD(fd, x) uint8 *WFIFOVAR(fd) = ( (fd) > 0 && session[fd] ? session[fd]->wdata+session[fd]->wdata_size : NULL ) +#define WFIFOP(fd,pos) ( &WFIFOVAR(fd) + (pos) ) #else #define WFIFOHEAD(fd, size) do{ if((fd) && session[fd]->wdata_size + (size) > session[fd]->max_wdata ) realloc_writefifo(fd, size); }while(0) diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 41aa7becd..0d595bef3 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -5011,13 +5011,13 @@ int atcommand_kickall( nullpo_retr(-1, sd); pl_allsd = map_getallusers(&users); - + for (i = 0; i < users; i++) { if ((pl_sd = pl_allsd[i]) && pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can kick only lower or same gm level if (sd->status.account_id != pl_sd->status.account_id) clif_GM_kick(sd, pl_sd, 0); - } } + } clif_displaymessage(fd, msg_txt(195)); // All players have been kicked! diff --git a/src/map/intif.c b/src/map/intif.c index c89d0c567..54c5bf73a 100644 --- a/src/map/intif.c +++ b/src/map/intif.c @@ -40,7 +40,7 @@ static const int packet_len_table[]={ }; extern int char_fd; // inter serverのfdはchar_fdを使う -#define inter_fd (char_fd) // エイリアス +#define inter_fd char_fd // エイリアス //----------------------------------------------------------------- // inter serverへの送信 diff --git a/src/map/map.c b/src/map/map.c index 1247206ab..1032472cc 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -1871,7 +1871,7 @@ static int map_getallpc_sub(DBKey key,void * data,va_list ap) struct map_session_data** map_getallusers(int *users) { static struct map_session_data **all_sd=NULL; static unsigned int all_count = 0; - + if (users == NULL) { //Free up data if (all_sd) aFree(all_sd); diff --git a/src/map/pc.c b/src/map/pc.c index f0eb54ad6..0b2e7a56e 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -4851,13 +4851,13 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) if(sd->duel_invite > 0) duel_reject(sd->duel_invite, sd); } - + pc_setdead(sd); //Reset ticks. sd->hp_loss_tick = sd->sp_loss_tick = 0; - + pc_setglobalreg(sd,"PC_DIE_COUNTER",++sd->die_counter); - + if (sd->state.event_death){ if(!src) pc_setglobalreg(sd, "killerrid", 0); @@ -4865,7 +4865,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) pc_setglobalreg(sd,"killerrid",src->id); npc_script_event(sd,NPCE_DIE); } - + if ( sd && sd->spiritball && (sd->class_&MAPID_BASEMASK)==MAPID_GUNSLINGER ) // maybe also monks' spiritballs ? pc_delspiritball(sd,sd->spiritball,0); @@ -4900,7 +4900,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) ssd->status.manner -= 5; if(ssd->status.manner < 0) sc_start(src,SC_NOCHAT,100,0,0); - + // PK/Karma system code (not enabled yet) [celest] // originally from Kade Online, so i don't know if any of these is correct ^^; // note: karma is measured REVERSE, so more karma = more 'evil' / less honourable, @@ -4926,7 +4926,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) } break; } - + // PK/Karma system code (not enabled yet) [celest] /* -- cgit v1.2.3-70-g09d2