Date: Monday July 7, 2003 @ 17:19 Author: ahn Update of /home/netrek/cvsroot/Vanilla/ntserv In directory swashbuckler.real-time.com:/var/tmp/cvs-serv701/ntserv Modified Files: daemonII.c data.c getentry.c getpath.c interface.c queue.c socket.c solicit.c Log Message: * Pre-T mode enhancement from Nick Slager, enabled by default. See RGN for details. **************************************** Index: Vanilla/ntserv/daemonII.c diff -u Vanilla/ntserv/daemonII.c:1.38 Vanilla/ntserv/daemonII.c:1.39 --- Vanilla/ntserv/daemonII.c:1.38 Mon Nov 25 00:05:03 2002 +++ Vanilla/ntserv/daemonII.c Mon Jul 7 17:19:55 2003 @@ -328,6 +328,10 @@ if (practice_mode) return(0); /* No t-mode in practice mode 06/19/94 [007] */ +#ifdef PRETSERVER + if(bot_in_game) return(0); +#endif + MZERO((int *) teams, sizeof(int) * (MAXTEAM + 1)); for (i=0, p=players; i<MAXPLAYER; i++, p++) { if (((p->p_status != PFREE) && @@ -2858,6 +2862,9 @@ if (!(status->gameup & GU_INROBOT)) { if (((tcount[l->pl_owner] == 0) || (NotTmode(ticks))) && (l->pl_flags & l->pl_owner) && +#ifdef PRETSERVER + !bot_in_game && +#endif tm_robots[l->pl_owner] == 0) { rescue(l->pl_owner, NotTmode(ticks)); @@ -3048,7 +3055,11 @@ /* out of Tmode? Terminate. 8/2/91 TC */ - if (NotTmode(ticks)) { + if (NotTmode(ticks) +#ifdef PRETSERVER + && !bot_in_game +#endif + ) { if ((l->pl_flags & (FED|ROM|KLI|ORI)) != j->p_team) /* not in home quad, give them an extra one 8/26/91 TC */ rescue(STERMINATOR, j->p_no); @@ -3683,6 +3694,10 @@ /* Don't kill newbie robot. */ if (status->gameup & GU_NEWBIE && j->p_flags & PFROBOT) continue; #endif +#ifdef PRETSERVER + /* Don't kill pre-T robot. */ + if (status->gameup & GU_PRET && j->p_flags & PFROBOT) continue; +#endif j->p_status = PEXPLODE; j->p_whydead = KWINNER; j->p_whodead = winner->p_no; @@ -4178,6 +4193,12 @@ case NEWBIE_ROBOT: execl(Newbie, "newbie", 0); perror(Newbie); + break; +#endif +#ifdef PRETSERVER + case PRET_ROBOT: + execl(PreT, "pret", 0); + perror(PreT); break; #endif #ifdef DOGFIGHT Index: Vanilla/ntserv/data.c diff -u Vanilla/ntserv/data.c:1.18 Vanilla/ntserv/data.c:1.19 --- Vanilla/ntserv/data.c:1.18 Thu May 10 05:37:11 2001 +++ Vanilla/ntserv/data.c Mon Jul 7 17:19:55 2003 @@ -1,4 +1,4 @@ -/* $Id: data.c,v 1.18 2001/05/10 10:37:11 quisar Exp $ +/* $Id: data.c,v 1.19 2003/07/07 22:19:55 ahn Exp $ */ #include "copyright.h" @@ -267,7 +267,10 @@ #ifdef NEWBIESERVER char Newbie[FNAMESIZE]; #endif -#if defined(BASEPRACTICE) || defined(NEWBIESERVER) +#ifdef PRETSERVER +char PreT[FNAMESIZE]; +#endif +#if defined(BASEPRACTICE) || defined(NEWBIESERVER) || defined(PRETSERVER) char Robodir[FNAMESIZE]; char robofile[FNAMESIZE]; char robot_host[FNAMESIZE]; Index: Vanilla/ntserv/getentry.c diff -u Vanilla/ntserv/getentry.c:1.8 Vanilla/ntserv/getentry.c:1.9 --- Vanilla/ntserv/getentry.c:1.8 Thu Oct 26 05:06:14 2000 +++ Vanilla/ntserv/getentry.c Mon Jul 7 17:19:55 2003 @@ -299,7 +299,7 @@ nextlargest = np[i]; inl = 1 << i; } - if (deadTeam(1 << i) || (np[i] >= 8)) + if (deadTeam(1 << i) || (np[i] >= 8) || (bot_in_game && np[i] >= 4)) allteams &= ~ (1 <<i); } if (nodiag) { @@ -308,7 +308,7 @@ rem >>= 4; allteams &= ~rem; } - if (! status -> tourn) + if((pre_t_mode && inl == 0) || (!pre_t_mode && !status->tourn)) return allteams; /* * We think we are in t-mode and go for re-entry. Index: Vanilla/ntserv/getpath.c diff -u Vanilla/ntserv/getpath.c:1.5 Vanilla/ntserv/getpath.c:1.6 --- Vanilla/ntserv/getpath.c:1.5 Tue May 1 21:00:19 2001 +++ Vanilla/ntserv/getpath.c Mon Jul 7 17:19:55 2003 @@ -86,7 +86,11 @@ sprintf(Newbie,"%s/%s",path,N_NEWBIE); #endif -#if defined(BASEPRACTICE) || defined(NEWBIESERVER) +#ifdef PRETSERVER + sprintf(PreT,"%s/%s",path,N_PRET); +#endif + +#if defined(BASEPRACTICE) || defined(NEWBIESERVER) || defined(PRETSERVER) sprintf(Robodir,"%s/%s",path,N_ROBODIR); #endif Index: Vanilla/ntserv/interface.c diff -u Vanilla/ntserv/interface.c:1.11 Vanilla/ntserv/interface.c:1.12 --- Vanilla/ntserv/interface.c:1.11 Thu Feb 7 04:48:35 2002 +++ Vanilla/ntserv/interface.c Mon Jul 7 17:19:55 2003 @@ -86,19 +86,36 @@ return; } - if(restrict_bomb) { + if(restrict_bomb +#ifdef PRETSERVER + /* if this is the pre-T entertainment we don't require confirmation */ + && !bot_in_game +#endif + ) { if (!status->tourn){ new_warning(UNDEF,"You may not bomb out of T-mode."); return; } } - if ((!status->tourn) && (bombsOutOfTmode == 0)) { + if ((!status->tourn) && (bombsOutOfTmode == 0) +#ifdef PRETSERVER + /* if this is the pre-T entertainment we don't require confirmation */ + && !bot_in_game +#endif + ) { new_warning(42,"Bomb out of T-mode? Please verify your order to bomb."); bombsOutOfTmode++; return; } +#ifdef PRETSERVER + if(bot_in_game && realNumShips(owner) == 0) { + new_warning(UNDEF,"You may not bomb 3rd and 4th space planets."); + return; + } +#endif + if(no_unwarring_bombing) { /* Added ability to take back your own planets from 3rd team 11-15-93 ATH */ if ((status->tourn && realNumShips(owner) < tournplayers) @@ -108,12 +125,17 @@ } } - if(! restrict_bomb) + if(! restrict_bomb +#ifdef PRETSERVER + /* if this is the pre-T entertainment we don't require confirmation */ + && !bot_in_game +#endif + ) { if ((!status->tourn) && (bombsOutOfTmode == 1)) { new_warning(43,"Hoser!"); - bombsOutOfTmode++; - } + bombsOutOfTmode++; + } } if (status->tourn) bombsOutOfTmode = 0; @@ -145,15 +167,28 @@ void beam_down(void) { + int owner; + if (!(me->p_flags & (PFORBIT | PFDOCK))) { new_warning(47, "Must be orbiting or docked to beam down."); - return; + return; } + +#ifdef PRETSERVER + if(pre_t_mode && me->p_flags & PFORBIT) { + owner = planets[me->p_planet].pl_owner; + if(bot_in_game && realNumShips(owner) == 0 && owner != NOBODY) { + new_warning(UNDEF,"You may not drop on 3rd and 4th space planets. Sorry Bill."); + return; + } + } +#endif + if (me->p_flags & PFDOCK) { - if (me->p_team != players[me->p_docked].p_team) { + if (me->p_team != players[me->p_docked].p_team) { new_warning(48,"Comm Officer: Starbase refuses permission to beam our troops over."); return; - } + } } me->p_flags |= PFBEAMDOWN; me->p_flags &= ~(PFSHIELD | PFREPAIR | PFBOMB | PFBEAMUP); Index: Vanilla/ntserv/queue.c diff -u Vanilla/ntserv/queue.c:1.8 Vanilla/ntserv/queue.c:1.9 --- Vanilla/ntserv/queue.c:1.8 Mon Dec 9 01:08:39 2002 +++ Vanilla/ntserv/queue.c Mon Jul 7 17:19:55 2003 @@ -169,6 +169,39 @@ queues[QU_NEWBIE_DMN].q_flags = QU_OPEN; queue_setname(QU_NEWBIE_DMN, "newbie daemon"); #endif +#ifdef PRETSERVER + queues[QU_PRET_PLR].free_slots = MAXPLAYER - TESTERS; + queues[QU_PRET_PLR].max_slots = MAXPLAYER - TESTERS; + queues[QU_PRET_PLR].tournmask = ALLTEAM; + queues[QU_PRET_PLR].low_slot = 0; + queues[QU_PRET_PLR].high_slot = MAXPLAYER - TESTERS; + queues[QU_PRET_PLR].q_flags = QU_OPEN|QU_RESTRICT; + queue_setname(QU_PRET_PLR, "preT player"); + + queues[QU_PRET_BOT].free_slots = MAXPLAYER - TESTERS; + queues[QU_PRET_BOT].max_slots = MAXPLAYER - TESTERS; + queues[QU_PRET_BOT].tournmask = ALLTEAM; + queues[QU_PRET_BOT].low_slot = (MAXPLAYER - TESTERS) / 2; + queues[QU_PRET_BOT].high_slot = MAXPLAYER - (TESTERS / 2); + queues[QU_PRET_BOT].q_flags = QU_OPEN; + queue_setname(QU_PRET_BOT, "preT robot"); + + queues[QU_PRET_OBS].free_slots = (MAXPLAYER - TESTERS) / 2 - 1; + queues[QU_PRET_OBS].max_slots = (MAXPLAYER - TESTERS) / 2 - 1; + queues[QU_PRET_OBS].tournmask = ALLTEAM; + queues[QU_PRET_OBS].low_slot = MAXPLAYER - (TESTERS / 2); + queues[QU_PRET_OBS].high_slot = MAXPLAYER - 1; + queues[QU_PRET_OBS].q_flags = QU_OPEN|QU_RESTRICT|QU_OBSERVER; + queue_setname(QU_PRET_OBS, "preT observer"); + + queues[QU_PRET_DMN].free_slots = 1; + queues[QU_PRET_DMN].max_slots = 1; + queues[QU_PRET_DMN].tournmask = ALLTEAM; + queues[QU_PRET_DMN].low_slot = MAXPLAYER - 1; + queues[QU_PRET_DMN].high_slot = MAXPLAYER; + queues[QU_PRET_DMN].q_flags = QU_OPEN; + queue_setname(QU_PRET_DMN, "preT daemon"); +#endif return 1; } Index: Vanilla/ntserv/socket.c diff -u Vanilla/ntserv/socket.c:1.33 Vanilla/ntserv/socket.c:1.34 --- Vanilla/ntserv/socket.c:1.33 Fri Feb 21 02:33:36 2003 +++ Vanilla/ntserv/socket.c Mon Jul 7 17:19:55 2003 @@ -1,4 +1,4 @@ -/* $Id: socket.c,v 1.33 2003/02/21 08:33:36 cameron Exp $ +/* $Id: socket.c,v 1.34 2003/07/07 22:19:55 ahn Exp $ */ /* @@ -100,7 +100,7 @@ static void handleThresh(struct threshold_cpacket *packet); static void handleSMessageReq(struct mesg_s_cpacket *packet); -#if defined(BASEPRACTICE) || defined(NEWBIESERVER) +#if defined(BASEPRACTICE) || defined(NEWBIESERVER) || defined(PRETSERVER) static void handleOggV(struct oggv_cpacket *packet); #endif #ifdef FEATURE_PACKETS @@ -200,7 +200,7 @@ { 0, NULL }, /* 47 */ { 0, NULL }, /* 48 */ { 0, NULL }, /* 49 */ -#if defined(BASEPRACTICE) || defined(NEWBIESERVER) +#if defined(BASEPRACTICE) || defined(NEWBIESERVER) || defined(PRETSERVER) { sizeof(struct oggv_cpacket), handleOggV }, /* CP_OGGV */ #else { 0, NULL }, /* 50 */ @@ -2029,7 +2029,7 @@ } #endif /*PING*/ -#if defined(BASEPRACTICE) || defined(NEWBIESERVER) +#if defined(BASEPRACTICE) || defined(NEWBIESERVER) || defined(PRETSERVER) /* these are sent by the robots when a parameter changes */ static void handleOggV(struct oggv_cpacket *packet) { Index: Vanilla/ntserv/solicit.c diff -u Vanilla/ntserv/solicit.c:1.18 Vanilla/ntserv/solicit.c:1.19 --- Vanilla/ntserv/solicit.c:1.18 Tue Jul 11 08:49:12 2000 +++ Vanilla/ntserv/solicit.c Mon Jul 7 17:19:55 2003 @@ -224,6 +224,14 @@ else nplayers++; } + else if (status->gameup & GU_PRET) + for (j = 0; j < queues[QU_PRET_PLR].high_slot; j++) + { + if (players[j].p_status == PFREE) + nfree++; + else + nplayers++; + } else for (j = 0; j < queues[QU_PICKUP].high_slot; j++) { @@ -239,6 +247,8 @@ { if (status->gameup & GU_NEWBIE) nfree = -queues[QU_NEWBIE_PLR].count; + else if (status->gameup & GU_PRET) + nfree = -queues[QU_PRET_PLR].count; else nfree = -queues[QU_PICKUP].count; gamefull++; _______________________________________________ vanilla-devel mailing list vanilla-devel at us.netrek.org https://mailman.real-time.com/mailman/listinfo/vanilla-devel